@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
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/backup-ZrlVatXc.js","assets/catalog-Db9GWM6N.js","assets/preload-helper-CiWYd9n-.js","assets/rolldown-runtime-DkW27tQK.js","assets/facts-BUGuVUIc.js","assets/blockTypes-DUDdP3pB.js","assets/liveSchema-B4bQtO88.js","assets/icons-gLFQTv74.js","assets/jsx-runtime-DeHZSEgm.js","assets/spokenText-C88IQJ0M.js","assets/safeImageUrl-BINWXOTz.js","assets/catalog-BHjl-1uH.js","assets/sourceHost-BV3t2XDb.js","assets/annotations-CftUUB13.js","assets/streamParse-B-Gjwa9T.js","assets/store-CsjDEADX.js","assets/friendlyAsk-BBdRZIar.js","assets/contentVault-xfUwSJ3i.js","assets/keyVault-Aw5Y2PjT.js","assets/useLiveConfig-Cpy0_E_-.js","assets/react-BZJXY1be.js","assets/compiler-runtime-qQQXpJgv.js","assets/info-CiqHR5cs.js","assets/providers-BovElgRL.js","assets/http-Lar_UMKb.js","assets/attachments-BW-vki-E.js","assets/store-gohr8YVT.js","assets/store-BWLbFXiY.js","assets/store-D2IJF4SA.js","assets/store-D-f8ZuaK.js","assets/store-BfHRbVKz.js","assets/ready-jtAUOb62.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{b as a,m as o,nt as s,o as c,v as l,x as u}from"./index-zIa6h_8b.js";import{n as d}from"./icons-gLFQTv74.js";import{t as f}from"./useFocusTrap-DBtkeyRy.js";import{c as p,d as m,l as h,o as g,u as _}from"./kokoro-B3oG_8sd.js";import{t as v}from"./FeatureUseNotice-Dc3GNBvy.js";import{i as y,r as b}from"./info-CiqHR5cs.js";import{t as x}from"./time-BHTmJR1s.js";import{t as S}from"./providers-BovElgRL.js";import{i as C,l as w,n as T,o as E,s as D,t as ee,u as te}from"./useLiveConfig-Cpy0_E_-.js";import{n as ne}from"./store-gohr8YVT.js";import{a as re,d as ie,f as ae,l as oe,m as se,n as ce,p as le,r as ue,s as de,u as fe}from"./quietHours-DI1ayIIq.js";import{i as pe,n as me,r as he,s as O}from"./store-BWLbFXiY.js";import{n as ge,o as _e,t as ve}from"./useStudy-5CsF_L-s.js";import{t as ye}from"./DropSelect-QcBm3N4D.js";import{g as be}from"./store-D2IJF4SA.js";var k=t(),A=e(),j=n(),xe={display:`flex`,flexDirection:`column`,gap:4,fontSize:13,background:`var(--surface-default)`,border:`1px solid var(--line)`,borderRadius:8,padding:`7px 10px`},M={flex:`0 0 auto`,background:`transparent`,border:`none`,color:`var(--text-muted)`,cursor:`pointer`,font:`inherit`,lineHeight:1,padding:0};function Se(e){let t=(0,k.c)(40),{node:n,ago:r}=e,[i,a]=(0,A.useState)(!1),[o,s]=(0,A.useState)(n.body),c=(0,A.useRef)(null),l,u;t[0]===i?(l=t[1],u=t[2]):(l=()=>{i&&c.current?.focus()},u=[i],t[0]=i,t[1]=l,t[2]=u),(0,A.useEffect)(l,u);let d;t[3]!==o||t[4]!==n.body||t[5]!==n.id?(d=()=>{let e=o.trim();e&&e!==n.body&&he(n.id,e),a(!1)},t[3]=o,t[4]=n.body,t[5]=n.id,t[6]=d):d=t[6];let f=d,p;t[7]===n.body?p=t[8]:(p=()=>{s(n.body),a(!1)},t[7]=n.body,t[8]=p);let m=p,h,g;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(h={display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:8},g={fontFamily:`var(--font-data, inherit)`,fontSize:10.5,fontWeight:600,color:`var(--presence)`,letterSpacing:`0.02em`},t[9]=h,t[10]=g):(h=t[9],g=t[10]);let _;t[11]===n.concept?_=t[12]:(_=(0,j.jsx)(`span`,{style:g,children:n.concept}),t[11]=n.concept,t[12]=_);let v;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(v={fontSize:10.5,color:`var(--text-muted)`,whiteSpace:`nowrap`},t[13]=v):v=t[13];let y;t[14]===r?y=t[15]:(y=(0,j.jsx)(`span`,{style:v,children:r}),t[14]=r,t[15]=y);let b;t[16]!==i||t[17]!==n.concept?(b=!i&&(0,j.jsx)(`button`,{type:`button`,onClick:()=>a(!0),title:`Edit this fact`,"aria-label":`Edit: ${n.concept}`,style:{...M,fontSize:12},children:`Edit`}),t[16]=i,t[17]=n.concept,t[18]=b):b=t[18];let x;t[19]===n.id?x=t[20]:(x=()=>me(n.id),t[19]=n.id,t[20]=x);let S=`Forget: ${n.concept}`,C;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(C={...M,fontSize:16},t[21]=C):C=t[21];let w;t[22]!==x||t[23]!==S?(w=(0,j.jsx)(`button`,{type:`button`,onClick:x,title:`Forget this concept`,"aria-label":S,style:C,children:`×`}),t[22]=x,t[23]=S,t[24]=w):w=t[24];let T;t[25]!==b||t[26]!==w||t[27]!==_||t[28]!==y?(T=(0,j.jsxs)(`div`,{style:h,children:[_,y,b,w]}),t[25]=b,t[26]=w,t[27]=_,t[28]=y,t[29]=T):T=t[29];let E;t[30]!==m||t[31]!==o||t[32]!==i||t[33]!==n.body||t[34]!==n.concept||t[35]!==f?(E=i?(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:[(0,j.jsx)(`textarea`,{ref:c,value:o,onChange:e=>s(e.target.value),rows:3,"aria-label":`Edit memory: ${n.concept}`,style:{font:`inherit`,fontSize:13,lineHeight:1.4,color:`var(--text-primary)`,background:`var(--surface-elevated)`,border:`1px solid var(--line)`,borderRadius:6,padding:`6px 8px`,resize:`vertical`,width:`100%`,boxSizing:`border-box`}}),(0,j.jsxs)(`div`,{style:{display:`flex`,gap:8,justifyContent:`flex-end`},children:[(0,j.jsx)(`button`,{type:`button`,onClick:m,style:{...M,fontSize:12},children:`Cancel`}),(0,j.jsx)(`button`,{type:`button`,onClick:f,disabled:!o.trim(),style:{...M,fontSize:12,color:`var(--presence)`,fontWeight:600},children:`Save`})]})]}):(0,j.jsx)(`span`,{style:{color:`var(--text-primary)`,lineHeight:1.4},children:n.body}),t[30]=m,t[31]=o,t[32]=i,t[33]=n.body,t[34]=n.concept,t[35]=f,t[36]=E):E=t[36];let D;return t[37]!==T||t[38]!==E?(D=(0,j.jsxs)(`li`,{style:xe,children:[T,E]}),t[37]=T,t[38]=E,t[39]=D):D=t[39],D}function Ce(e){let t=e.concept.indexOf(`.`);return t<0?e.concept:e.concept.slice(0,t)}function we(e){return{profile:`About you`,preferences:`Preferences`,topics:`Topics`,threads:`Open threads`,projects:`Projects`,work:`Work`,life:`Life`}[e]??e.slice(0,1).toUpperCase()+e.slice(1)}function Te(e){let t=new Map;for(let n of e){let e=Ce(n),r=t.get(e);r?r.push(n):t.set(e,[n])}return[...t.keys()].sort((e,t)=>e===`profile`?-1:t===`profile`?1:e.localeCompare(t)).map(e=>({namespace:e,nodes:t.get(e).slice().sort((e,t)=>t.updatedAt-e.updatedAt)}))}function N(e){if(!e)return``;try{return new Date(e).toISOString().split(`T`)[0]}catch{return``}}function Ee(e){let t=N(e.updatedAt);return`${t?`---\nconcept: ${e.concept}\nupdated: ${t}\n---`:`---\nconcept: ${e.concept}\n---`}\n\n${e.body}`}function P(e){return e.length?[...e].sort((e,t)=>e.concept===`profile`?-1:t.concept===`profile`?1:e.concept.localeCompare(t.concept)).map(Ee).join(`
|
|
3
|
-
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
`):``}function De(e){let t=P(e);if(t)try{let e=new Blob([t],{type:`text/markdown;charset=utf-8`}),n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=`mavea-memory.md`,r.click(),URL.revokeObjectURL(n)}catch{}}var F=420,I=300,L=6,R=[`var(--presence)`,`var(--insight)`,`var(--warning)`,`var(--presence-soft)`,`var(--insight-soft)`,`var(--warning-soft)`],z={profile:R[0],preferences:R[3],topics:R[1],threads:R[4],projects:R[2]};function Oe(e){return z[e]??R[B(e)%R.length]}function B(e){let t=0;for(let n=0;n<e.length;n++)t=Math.imul(31,t)+e.charCodeAt(n)|0;return Math.abs(t)}function ke(e){let t=[],n=new Set,r=(e,t)=>[e,t].sort().join(`\0`),i=e.filter(e=>e.updatedAt>0).sort((e,t)=>e.updatedAt-t.updatedAt);for(let e=0;e<i.length;e++)for(let a=e+1;a<i.length&&i[a].updatedAt-i[e].updatedAt<200;a++){let o=r(i[e].concept,i[a].concept);n.has(o)||(n.add(o),t.push({a:i[e].concept,b:i[a].concept,cooccurred:!0}))}let a=new Set(e.map(e=>e.concept));for(let i of e){let e=i.concept.split(`.`)[0];if(e!==i.concept&&a.has(e)){let a=r(i.concept,e);n.has(a)||(n.add(a),t.push({a:i.concept,b:e,cooccurred:!1}))}}return t}function V(e,t){let n=[...e].sort((e,t)=>e.concept.localeCompare(t.concept)),r=new Map;n.forEach((e,t)=>{let i=t/Math.max(1,n.length)*Math.PI*2,a=Math.min(F,I)*.3;r.set(e.concept,{x:F/2+Math.cos(i)*a,y:I/2+Math.sin(i)*a,vx:0,vy:0})});let i=[...r.values()],a=.82;for(let e=0;e<80;e++){let o=1-e/80,s=.08*Math.sqrt(F*I/Math.max(1,n.length));for(let e=0;e<i.length;e++){let t=i[e];for(let n=e+1;n<i.length;n++){let e=i[n],r=e.x-t.x||.01,a=e.y-t.y||.01,c=Math.hypot(r,a)||.01,l=s*s/c*1.5;t.vx-=r/c*l*o,t.vy-=a/c*l*o,e.vx+=r/c*l*o,e.vy+=a/c*l*o}}for(let e of t){let t=r.get(e.a),n=r.get(e.b);if(!t||!n)continue;let i=n.x-t.x,a=n.y-t.y,s=Math.hypot(i,a)||.01,c=(s-(e.cooccurred?85:120))*.05*o;t.vx+=i/s*c,t.vy+=a/s*c,n.vx-=i/s*c,n.vy-=a/s*c}for(let e of r.values())e.vx+=(F/2-e.x)*.006*o,e.vy+=(I/2-e.y)*.006*o;let c=0;for(let e of i){let t=Math.abs(e.vx)+Math.abs(e.vy);t>c&&(c=t),e.x=Math.max(20,Math.min(400,e.x+e.vx)),e.y=Math.max(20,Math.min(280,e.y+e.vy)),e.vx*=a,e.vy*=a}if(c<.4)break}let o=new Map;for(let[e,t]of r)o.set(e,{x:t.x,y:t.y});return o}function Ae(e){let t=(0,k.c)(39),{nodes:n}=e,[r,i]=(0,A.useState)(null),[a,o]=(0,A.useState)(null),s;t[0]===n?s=t[1]:(s=ke(n),t[0]=n,t[1]=s);let c=s,l;t[2]!==c||t[3]!==n?(l=V(n,c),t[2]=c,t[3]=n,t[4]=l):l=t[4];let u=l,d;t[5]===c?d=t[6]:(d=c.filter(je),t[5]=c,t[6]=d);let f=d.length,p;t[7]!==a||t[8]!==n?(p=a?n.find(e=>e.concept===a):null,t[7]=a,t[8]=n,t[9]=p):p=t[9];let m=p;if(n.length===0){let e;return t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,j.jsx)(`div`,{className:`mg-empty`,children:`Your knowledge graph appears here as you talk — start a conversation to add concepts.`}),t[10]=e):e=t[10],e}let h;if(t[11]!==c||t[12]!==r||t[13]!==u){let e;t[15]!==r||t[16]!==u?(e=(e,t)=>{let n=u.get(e.a),i=u.get(e.b);if(!n||!i)return null;let a=r===e.a||r===e.b,o=e.cooccurred?.55:.2;return(0,j.jsx)(`line`,{x1:n.x,y1:n.y,x2:i.x,y2:i.y,className:`mg-edge`+(e.cooccurred?` mg-edge--strong`:``),style:{opacity:r?a?o+.3:.05:o}},t)},t[15]=r,t[16]=u,t[17]=e):e=t[17],h=c.map(e),t[11]=c,t[12]=r,t[13]=u,t[14]=h}else h=t[14];let g;if(t[18]!==a||t[19]!==r||t[20]!==n||t[21]!==u){let e;t[23]!==a||t[24]!==r||t[25]!==u?(e=e=>{let t=u.get(e.concept);if(!t)return null;let n=Oe(Ce(e)),s=Math.max(7,Math.min(18,7+e.body.length/400*11)),c=r===e.concept,l=a===e.concept,d=e.concept.split(`.`).pop()??e.concept,f=O(e.source),p=e.kind===`procedural`,m=l?1:f?.82:.42,h=p||l||!f?n:`none`,g=p?2:l?1.5:+!f;return(0,j.jsxs)(`g`,{className:`mg-node`,transform:`translate(${t.x},${t.y})`,onMouseEnter:()=>i(e.concept),onMouseLeave:()=>i(null),onClick:()=>o(l?null:e.concept),style:{opacity:r&&!c?.3:1},children:[(0,j.jsx)(`title`,{children:`${e.concept} · ${f?`confirmed`:`unconfirmed`}${p?` · lesson`:``}`}),c&&(0,j.jsx)(`circle`,{r:s+5,fill:n,style:{opacity:.15},"aria-hidden":`true`}),(0,j.jsx)(`circle`,{r:s,fill:n,style:{opacity:m},stroke:h,strokeWidth:g,strokeDasharray:f?void 0:`3 2`,strokeOpacity:.5}),(0,j.jsx)(`text`,{className:`mg-label`,y:s+13,textAnchor:`middle`,style:{fill:n,opacity:c||l?1:.65},children:d})]},e.concept)},t[23]=a,t[24]=r,t[25]=u,t[26]=e):e=t[26],g=n.map(e),t[18]=a,t[19]=r,t[20]=n,t[21]=u,t[22]=g}else g=t[22];let _;t[27]!==h||t[28]!==g?(_=(0,j.jsxs)(`svg`,{className:`mg-svg`,viewBox:`0 0 ${F} ${I}`,width:`100%`,height:`auto`,"aria-label":`Memory concept graph`,children:[h,g]}),t[27]=h,t[28]=g,t[29]=_):_=t[29];let v;t[30]===m?v=t[31]:(v=m&&(0,j.jsxs)(`div`,{className:`mg-detail`,onClick:()=>o(null),title:`Click to close`,role:`button`,tabIndex:0,onKeyDown:e=>e.key===`Enter`&&o(null),children:[(0,j.jsx)(`span`,{className:`mg-detail-concept`,children:m.concept}),(0,j.jsx)(`p`,{className:`mg-detail-body`,children:m.body})]}),t[30]=m,t[31]=v);let y;t[32]!==n.length||t[33]!==f?(y=n.length<L?(0,j.jsxs)(`div`,{className:`mg-warmup`,children:[(0,j.jsx)(`div`,{className:`mg-warmup-track`,children:(0,j.jsx)(`div`,{className:`mg-warmup-fill`,style:{width:`${n.length/L*100}%`}})}),(0,j.jsxs)(`span`,{className:`mg-warmup-label`,children:[L-n.length,` more`,` `,L-n.length===1?`concept`:`concepts`,` until your map fills in`]})]}):(0,j.jsxs)(`p`,{className:`mg-foot`,children:[f,` connection`,f===1?``:`s`,` across `,n.length,` `,`concepts`]}),t[32]=n.length,t[33]=f,t[34]=y):y=t[34];let b;return t[35]!==_||t[36]!==v||t[37]!==y?(b=(0,j.jsxs)(`div`,{className:`mg-wrap`,children:[_,v,y]}),t[35]=_,t[36]=v,t[37]=y,t[38]=b):b=t[38],b}function je(e){return e.cooccurred}r();var Me=1e6;function Ne(e){return e instanceof DOMException&&e.name===`AbortError`}function Pe(e){return e===`provider-api-keys`?`provider API keys`:e===`search-api-keys`?`search API keys`:`GitHub tokens`}function H(e,t,n=`${t}s`){return`${e} ${e===1?t:n}`}function Fe(e,t){return new Promise((n,r)=>{let i=new FileReader,a=()=>t.removeEventListener(`abort`,s),o=e=>{a(),i.onload=null,i.onerror=null,i.onabort=null,e()},s=()=>{i.readyState===FileReader.LOADING?i.abort():o(()=>r(new DOMException(`Import cancelled`,`AbortError`)))};i.onload=()=>o(()=>typeof i.result==`string`?n(i.result):r(Error(`The selected file could not be read as text.`))),i.onerror=()=>o(()=>r(i.error??Error(`The selected file could not be read.`))),i.onabort=()=>o(()=>r(new DOMException(`Import cancelled`,`AbortError`))),t.addEventListener(`abort`,s,{once:!0}),t.aborted?s():i.readAsText(e)})}function Ie({children:e,label:t=`More options`,defaultOpen:n=!1}){let[r,i]=(0,A.useState)(n);return(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:12},children:[(0,j.jsxs)(`button`,{type:`button`,onClick:()=>i(e=>!e),"aria-expanded":r,style:{display:`flex`,alignItems:`center`,gap:6,alignSelf:`flex-start`,padding:`4px 2px`,border:`none`,background:`transparent`,color:`var(--text-muted)`,cursor:`pointer`,font:`inherit`,fontSize:12,fontWeight:600,letterSpacing:`0.02em`},children:[(0,j.jsx)(`span`,{"aria-hidden":`true`,style:{display:`inline-block`,transition:`transform 150ms ease`,transform:r?`rotate(90deg)`:`none`,fontSize:10},children:`▶`}),t]}),r&&(0,j.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:12,paddingLeft:10,borderLeft:`2px solid var(--line)`},children:e})]})}function Le(e){return{padding:`5px 14px`,borderRadius:8,border:`1px solid ${e?`var(--presence)`:`var(--line)`}`,background:e?`color-mix(in oklab, var(--presence) 12%, var(--surface-elevated))`:`var(--surface-default)`,color:e?`var(--presence)`:`var(--text-secondary)`,cursor:`pointer`,font:`inherit`,fontSize:12,fontWeight:e?600:400}}var Re={background:`var(--surface-elevated)`,border:`1px solid var(--line)`,borderRadius:16,padding:16,display:`flex`,flexDirection:`column`,gap:12,width:`min(460px, calc(100vw - 32px))`,boxShadow:`var(--shadow-modal)`},U={fontSize:12,color:`var(--text-muted)`,textTransform:`uppercase`,letterSpacing:`0.06em`},ze={background:`var(--surface-default)`,border:`1px solid var(--line)`,borderRadius:10,padding:`9px 11px`,color:`var(--text-primary)`,font:`inherit`,width:`100%`};function Be(e,t){try{return localStorage.getItem(e)||t}catch{return t}}function Ve(e){let t=m(e);if(t){g(`mavea`,t.kokoro);try{localStorage.setItem(h,e)}catch{}}}var W=[`model`,`settings`,`you`,`data`];function G(e){let t=(0,k.c)(27),{label:n,on:r,onToggle:i,note:a}=e,o=(0,A.useId)(),s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s={display:`flex`,alignItems:`flex-start`,gap:10,cursor:`pointer`},t[0]=s):s=t[0];let c=r?`var(--presence)`:`var(--track)`,l;t[1]===c?l=t[2]:(l={flex:`0 0 auto`,width:38,height:22,borderRadius:999,border:`1px solid var(--line-strong)`,background:c,position:`relative`,cursor:`pointer`,transition:`background 140ms ease`,marginTop:1},t[1]=c,t[2]=l);let u=r?18:2,d=r?`#fff`:`var(--text-muted)`,f;t[3]!==u||t[4]!==d?(f=(0,j.jsx)(`span`,{style:{position:`absolute`,top:2,left:u,width:16,height:16,borderRadius:`50%`,background:d,transition:`left 140ms ease, background 140ms ease`}}),t[3]=u,t[4]=d,t[5]=f):f=t[5];let p;t[6]!==n||t[7]!==o||t[8]!==r||t[9]!==i||t[10]!==l||t[11]!==f?(p=(0,j.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":r,"aria-label":n,"aria-describedby":o,onClick:i,style:l,children:f}),t[6]=n,t[7]=o,t[8]=r,t[9]=i,t[10]=l,t[11]=f,t[12]=p):p=t[12];let m,h;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(m={display:`flex`,flexDirection:`column`,gap:2},h={fontSize:13},t[13]=m,t[14]=h):(m=t[13],h=t[14]);let g;t[15]===n?g=t[16]:(g=(0,j.jsx)(`span`,{style:h,children:n}),t[15]=n,t[16]=g);let _;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(_={fontSize:12,color:`var(--text-muted)`},t[17]=_):_=t[17];let v;t[18]!==a||t[19]!==o?(v=(0,j.jsx)(`span`,{id:o,style:_,children:a}),t[18]=a,t[19]=o,t[20]=v):v=t[20];let y;t[21]!==g||t[22]!==v?(y=(0,j.jsxs)(`div`,{style:m,children:[g,v]}),t[21]=g,t[22]=v,t[23]=y):y=t[23];let b;return t[24]!==y||t[25]!==p?(b=(0,j.jsxs)(`label`,{style:s,children:[p,y]}),t[24]=y,t[25]=p,t[26]=b):b=t[26],b}function He(e){let t=(0,k.c)(14),{label:n,confirmLabel:r,onConfirm:i}=e,[a,o]=(0,A.useState)(!1),s,c;t[0]===a?(s=t[1],c=t[2]):(s=()=>{if(!a)return;let e=window.setTimeout(()=>o(!1),5e3);return()=>window.clearTimeout(e)},c=[a],t[0]=a,t[1]=s,t[2]=c),(0,A.useEffect)(s,c);let l;t[3]!==a||t[4]!==i?(l=()=>{if(!a){o(!0);return}o(!1),i()},t[3]=a,t[4]=i,t[5]=l):l=t[5];let u=a?`color-mix(in oklab, var(--warning) 10%, transparent)`:`transparent`,d=`1px solid ${a?`var(--warning)`:`var(--line)`}`,f=a?`var(--warning)`:`var(--text-muted)`,p;t[6]!==u||t[7]!==d||t[8]!==f?(p={background:u,border:d,borderRadius:8,padding:`3px 9px`,color:f,cursor:`pointer`,font:`inherit`,fontSize:12},t[6]=u,t[7]=d,t[8]=f,t[9]=p):p=t[9];let m=a?r:n,h;return t[10]!==l||t[11]!==p||t[12]!==m?(h=(0,j.jsx)(`button`,{type:`button`,onClick:l,style:p,children:m}),t[10]=l,t[11]=p,t[12]=m,t[13]=h):h=t[13],h}function K(e){let t=(0,k.c)(24),{value:n,options:r,onPick:i,label:a}=e,o;if(t[0]!==r||t[1]!==n){let e;t[3]===n?e=t[4]:(e=e=>e.value===n,t[3]=n,t[4]=e),o=r.findIndex(e),t[0]=r,t[1]=n,t[2]=o}else o=t[2];let s=Math.max(0,o),c;t[5]!==s||t[6]!==i||t[7]!==r?(c=e=>{let t=e.key===`ArrowRight`||e.key===`ArrowDown`?1:e.key===`ArrowLeft`||e.key===`ArrowUp`?-1:0;if(!t)return;e.preventDefault();let n=(s+t+r.length)%r.length;i(r[n].value),(e.currentTarget.parentElement?.children[n])?.focus()},t[5]=s,t[6]=i,t[7]=r,t[8]=c):c=t[8];let l=c,u;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(u={display:`flex`,gap:4,padding:3,borderRadius:10,background:`var(--track)`,border:`1px solid var(--line)`},t[9]=u):u=t[9];let d;if(t[10]!==s||t[11]!==l||t[12]!==i||t[13]!==r||t[14]!==n){let e;t[16]!==s||t[17]!==l||t[18]!==i||t[19]!==n?(e=(e,t)=>{let r=e.value===n;return(0,j.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":r,tabIndex:t===s?0:-1,onClick:()=>i(e.value),onKeyDown:l,style:{flex:1,display:`flex`,flexDirection:`column`,alignItems:`center`,gap:1,padding:`6px 8px`,borderRadius:8,border:`none`,cursor:`pointer`,background:r?`var(--surface-elevated)`:`transparent`,boxShadow:r?`0 1px 2px rgba(0,0,0,0.12)`:`none`,color:`inherit`,font:`inherit`},children:[(0,j.jsx)(`span`,{style:{fontSize:13,fontWeight:r?600:400},children:e.label}),e.badge&&(0,j.jsx)(`span`,{style:{fontSize:10.5,color:`var(--text-muted)`},children:e.badge})]},e.value)},t[16]=s,t[17]=l,t[18]=i,t[19]=n,t[20]=e):e=t[20],d=r.map(e),t[10]=s,t[11]=l,t[12]=i,t[13]=r,t[14]=n,t[15]=d}else d=t[15];let f;return t[21]!==a||t[22]!==d?(f=(0,j.jsx)(`div`,{role:`radiogroup`,"aria-label":a,style:u,children:d}),t[21]=a,t[22]=d,t[23]=f):f=t[23],f}function Ue({onClose:e,initialTab:t,initialAdvancedYouOpen:n}){let[r]=te(),{style:g,newPerDay:me}=ge(),he=ve(),O=y(r.provider),k=r.models[r.provider]??``,xe=k||O.defaultModel,M=r.keys[r.provider]??``,Ce=S(r.provider).capabilities,N=ie(),Ee=(0,A.useMemo)(()=>Math.max(1,Math.round(JSON.stringify(N).length/1024)),[N]),P=se(),[F,I]=(0,A.useState)(ce),[L,R]=(0,A.useState)(`list`),[z,Oe]=(0,A.useState)(t??`model`),[B,ke]=(0,A.useState)(null),[V,je]=(0,A.useState)(!1),[Ue,We]=(0,A.useState)(!1),q=(0,A.useRef)(0),J=(0,A.useRef)(!1),Ge=(0,A.useRef)(null),Y=(0,A.useRef)(null),[X,Ke]=(0,A.useState)(!1),[qe,Je]=(0,A.useState)(null),[Ye,Xe]=(0,A.useState)(null),Ze=(0,A.useRef)(null),Z=(0,A.useRef)(null),Q=(0,A.useRef)(null),[$,Qe]=(0,A.useState)(null),[$e,et]=(0,A.useState)(null),[tt,nt]=(0,A.useState)(null),rt=(0,A.useRef)(null);f(rt,{onEscape:e}),(0,A.useEffect)(()=>(J.current=!0,()=>{J.current=!1,q.current+=1,Y.current?.abort(),Z.current?.abort(),fe()}),[]);function it(){let e=ee(),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`mavea-live-v2.json`,r.click(),URL.revokeObjectURL(n)}async function at(e){let t=e.target.files?.[0];if(e.target.value=``,!t||Y.current)return;if(Xe(null),Je(null),t.size>Me){Xe(`That file is too large to be a Mavéa settings file.`);return}let n=new AbortController;Y.current=n,Ke(!0);try{let e=await Fe(t,n.signal),r=C(e);if(J.current){let e=r.appliedFields.length?`Imported ${H(r.appliedFields.length,`setting`)}.`:`No recognized settings found.`,t=r.credentialsIgnored.length?` Ignored ${r.credentialsIgnored.map(Pe).join(`, `)}; credentials are never imported.`:` Credentials were not imported.`;Je(`${e}${t}`)}}catch(e){J.current&&!Ne(e)&&Xe(e instanceof Error?e.message:`Import failed.`)}finally{Y.current===n&&(Y.current=null,J.current&&Ke(!1))}}async function ot(){if(!Q.current){Q.current=`export`,Qe(`export`),nt(null),et(null);try{let{downloadBackup:e}=await i(async()=>{let{downloadBackup:e}=await import(`./backup-ZrlVatXc.js`);return{downloadBackup:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]));await e(),J.current&&et(`Backup downloaded.`)}catch{J.current&&nt(`Couldn’t build the backup — please try again.`)}finally{Q.current=null,J.current&&Qe(null)}}}async function st(e){let t=e.target.files?.[0];if(e.target.value=``,!t||Q.current)return;Q.current=`import`,Qe(`import`),nt(null),et(null);let n=new AbortController;Z.current=n;try{let{importBackup:e,MAX_BACKUP_BYTES:r}=await i(async()=>{let{importBackup:e,MAX_BACKUP_BYTES:t}=await import(`./backup-ZrlVatXc.js`);return{importBackup:e,MAX_BACKUP_BYTES:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]));if(t.size>r)throw Error(`That file is too large to be a Mavéa backup.`);let a=await e(await Fe(t,n.signal)),o=[[a.dashboards,`dashboard`],[a.memory,`memory item`],[a.flashcards,`card`],[a.library,`saved canvas`,`saved canvases`],[a.atlas,`map record`],[a.courses,`course`]].filter(([e])=>e>0).map(([e,t,n])=>`${e} ${e===1?t:n??`${t}s`}`);if(J.current){let e=Object.values(a.sections),t=e.reduce((e,t)=>e+t.rejected,0),n=e.reduce((e,t)=>e+t.conflicts,0),r=e.reduce((e,t)=>e+t.evictedExisting,0),i=[o.length?`Merged ${o.join(`, `)}.`:`Nothing new to merge from that file.`];a.settingsApplied&&i.push(`Recognized settings were applied.`),n&&i.push(`${H(n,`incoming ID`)} matched records already present.`),t&&i.push(`${H(t,`entry`,`entries`)} ${t===1?`was`:`were`} rejected as invalid.`),r&&i.push(`${H(r,`existing record`)} ${r===1?`was`:`were`} evicted by bounded store capacity.`),a.credentialsIgnored.length&&i.push(`Ignored ${a.credentialsIgnored.map(Pe).join(`, `)}; credentials are never imported.`),a.versionAhead&&i.push(`This backup uses a newer format; only recognized data was merged.`),i.push(`Changes are visible now; persistence is best-effort because browser storage writes cannot be verified.`),et(i.join(` `))}}catch(e){J.current&&!Ne(e)&&nt(e instanceof Error?e.message:`Import failed.`)}finally{Z.current===n&&(Z.current=null),Q.current=null,J.current&&Qe(null)}}let[ct,lt]=(0,A.useState)(()=>Be(h,p)),[ut,dt]=(0,A.useState)(()=>l()),ft=(0,A.useCallback)(e=>{dt(e),u(e),o(a())},[]),pt=(0,A.useCallback)(async()=>{let e=++q.current;je(!0),We(!1);try{let{checkLiveReady:t}=await i(async()=>{let{checkLiveReady:e}=await import(`./ready-jtAUOb62.js`).then(e=>e.n);return{checkLiveReady:e}},__vite__mapDeps([31,3,24,23,5,22,25])),n=await t(w(T()),{tts:!1});e===q.current&&ke({llm:n.llm,model:n.model,statusCode:n.statusCode})}catch{e===q.current&&(ke(null),We(!0))}finally{e===q.current&&je(!1)}},[]);(0,A.useEffect)(()=>{let e=setTimeout(()=>void pt(),400);return()=>clearTimeout(e)},[r.provider,xe,M,pt]);let mt=V?`var(--text-muted)`:B?.llm&&B?.model?`var(--insight)`:`var(--warning)`,ht=V?`Checking…`:Ue?`Couldn’t check readiness — try again`:B?.llm&&B?.model?`Ready`:B?.llm?`Reachable — model not found`:O.needsKey&&!M?`Add your API key`:B?.statusCode===401||B?.statusCode===400?`Invalid API key`:B?.statusCode===403?`Key lacks permission`:B?.statusCode===404?`Model not found`:B?.statusCode===void 0?`Not reachable`:`Error ${B.statusCode}`;return(0,j.jsxs)(`div`,{ref:rt,style:Re,role:`dialog`,"aria-modal":`true`,"aria-label":`Mavéa settings`,children:[(0,j.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,j.jsxs)(`span`,{style:{fontWeight:700,fontSize:15,display:`flex`,alignItems:`center`,gap:8},children:[(0,j.jsx)(d.sparkle,{style:{width:16,height:16,flex:`0 0 auto`,color:`var(--presence)`}}),`Settings`]}),e&&(0,j.jsx)(`button`,{onClick:e,title:`Close`,"aria-label":`Close settings`,style:{display:`inline-grid`,placeItems:`center`,width:28,height:28,padding:0,border:`none`,borderRadius:6,background:`transparent`,color:`var(--text-secondary)`,cursor:`pointer`,flexShrink:0},children:(0,j.jsx)(d.x,{style:{width:16,height:16}})})]}),(0,j.jsx)(`div`,{className:`ls-tabs`,role:`tablist`,"aria-label":`Settings sections`,children:W.map((e,t)=>(0,j.jsx)(`button`,{type:`button`,role:`tab`,id:`ls-tab-${e}`,"aria-selected":z===e,"aria-controls":`ls-panel-${e}`,tabIndex:z===e?0:-1,className:`ls-tab${z===e?` active`:``}`,onClick:()=>Oe(e),onKeyDown:e=>{let n=e.key===`ArrowRight`?1:e.key===`ArrowLeft`?-1:0;if(!n)return;e.preventDefault();let r=W[(t+n+W.length)%W.length];Oe(r),document.getElementById(`ls-tab-${r}`)?.focus()},children:e===`model`?`Model`:e===`settings`?`Settings`:e===`you`?`You`:`Your data`},e))}),(0,j.jsxs)(`div`,{className:`ls-body`,role:`tabpanel`,id:`ls-panel-${z}`,"aria-labelledby":`ls-tab-${z}`,children:[z===`model`&&(0,j.jsxs)(`div`,{className:`settings-model-connect`,children:[(0,j.jsx)(`div`,{className:`settings-provider-picker`,style:{display:`flex`,flexWrap:`wrap`,gap:8},"aria-label":`Model providers`,children:b.map(e=>{let t=e.id===r.provider;return(0,j.jsx)(`button`,{onClick:()=>E({provider:e.id}),style:{...ze,width:`auto`,cursor:`pointer`,borderColor:t?`var(--presence)`:`var(--line)`,boxShadow:t?`0 0 0 1px var(--presence)`:`none`,opacity:t?1:.7},"aria-pressed":t,children:e.label},e.id)})}),(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:[(0,j.jsx)(`span`,{style:U,children:`Model`}),(0,j.jsx)(le,{provider:r.provider,value:k,onChange:e=>D(r.provider,`model`,e)},r.provider)]}),O.needsKey&&(0,j.jsxs)(`label`,{className:`settings-api-key-field`,style:{display:`flex`,flexDirection:`column`,gap:6},children:[(0,j.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,j.jsx)(`span`,{style:U,children:`API key`}),!r.rememberKey&&(0,j.jsx)(`span`,{className:`settings-session-only`,"aria-label":`Key is not saved to disk`,children:`session only`})]}),(0,j.jsx)(`input`,{style:ze,type:`password`,value:M,onChange:e=>D(r.provider,`key`,e.target.value),placeholder:r.provider===`anthropic`?`sk-ant-…`:`paste your key`,spellCheck:!1,autoComplete:`off`}),(0,j.jsxs)(`span`,{style:{fontSize:12,color:`var(--text-muted)`},children:[`Kept in memory unless Remember can store encrypted ciphertext on this device. If browser encryption is unavailable, it stays session-only and is never saved as plaintext. Sent through this deployment to`,` `,O.label.split(` · `)[1]??O.label,` when used.`]})]}),(0,j.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,fontSize:13},children:[(0,j.jsx)(`span`,{style:{width:8,height:8,borderRadius:8,background:mt,flex:`0 0 auto`},"aria-hidden":!0}),(0,j.jsx)(`span`,{role:`status`,"aria-live":`polite`,"aria-busy":V,children:ht}),(0,j.jsx)(`span`,{style:{color:`var(--text-muted)`},children:`·`}),(0,j.jsx)(`span`,{style:{color:`var(--text-muted)`},children:O.hint}),(0,j.jsx)(`button`,{onClick:()=>void pt(),disabled:V,style:{marginLeft:`auto`,background:`transparent`,border:`1px solid var(--line)`,borderRadius:8,padding:`4px 10px`,color:`var(--text-muted)`,cursor:V?`wait`:`pointer`,font:`inherit`,fontSize:12},title:`Re-check readiness`,children:`Recheck`})]}),O.needsKey&&(0,j.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:8,fontSize:13},children:[(0,j.jsx)(`input`,{type:`checkbox`,checked:r.rememberKey,onChange:e=>E({rememberKey:e.target.checked})}),(0,j.jsx)(`span`,{children:`Remember key on this device`}),(0,j.jsx)(`span`,{style:{color:`var(--text-muted)`,fontSize:12},children:r.rememberKey?`encrypted on this device when supported; otherwise session-only — never saved as plaintext`:`kept in memory only — cleared on reload`})]}),(0,j.jsx)(ae,{}),(0,j.jsxs)(`div`,{className:`settings-transfer-row`,"aria-busy":X,children:[(0,j.jsx)(`button`,{type:`button`,className:`settings-transfer-btn`,onClick:it,children:`Export settings`}),(0,j.jsx)(`button`,{type:`button`,className:`settings-transfer-btn`,disabled:X,onClick:()=>Ge.current?.click(),children:X?`Importing settings…`:`Import settings`}),(0,j.jsx)(`input`,{ref:Ge,type:`file`,accept:`application/json,.json`,disabled:X,style:{display:`none`},"aria-hidden":`true`,onChange:e=>void at(e)}),(0,j.jsx)(`span`,{style:{fontSize:12,color:`var(--text-muted)`},children:`API and search keys are never included.`}),Ye&&(0,j.jsx)(`span`,{className:`settings-import-error`,role:`alert`,children:Ye}),qe&&(0,j.jsx)(`span`,{style:{fontSize:12,color:`var(--text-muted)`},role:`status`,children:qe})]})]}),z===`settings`&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(_e,{}),(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:[(0,j.jsx)(`span`,{style:{fontSize:13,fontWeight:600},children:`Web search`}),(0,j.jsx)(K,{label:`Web search`,value:r.searchMode,options:[{value:`off`,label:`Off`},{value:`realtime`,label:`Real-time`}],onPick:e=>E({searchMode:e})}),(0,j.jsx)(`span`,{style:{fontSize:12,color:`var(--text-muted)`},children:r.searchMode===`off`?`Answers from the model's own knowledge — no web calls.`:Ce.nativeWebSearch?`Grounds fresh asks in live results with citations when a question needs it.`:`This model has no built-in search, so Real-time won't ground anything right now. The four direct providers support it; on OpenRouter it depends on the selected model. Pick a search-capable model or leave this off.`})]}),(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:[(0,j.jsx)(`span`,{style:{fontSize:13,fontWeight:600},children:`Explanation level`}),(0,j.jsx)(K,{label:`Explanation level`,value:r.explainLevel,options:[{value:`simple`,label:`Simple`,badge:`like I'm 5`},{value:`standard`,label:`Standard`,badge:`default`},{value:`deep`,label:`In-depth`,badge:`full rigor`}],onPick:e=>E({explainLevel:e})}),(0,j.jsx)(`span`,{style:{fontSize:12,color:`var(--text-muted)`},children:`How answers are written: Simple uses shorter sentences, everyday analogies, and fewer, more-labelled visuals; In-depth goes further — mechanisms, numbers, edge cases. You can also just say "explain it simpler" or "go deeper". (How long Mavéa thinks is Thinking time, below.)`})]}),(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:[(0,j.jsx)(`span`,{style:{fontSize:13,fontWeight:600},children:`Thinking time`}),(0,j.jsx)(K,{label:`Thinking time`,value:r.quality,options:[{value:`fast`,label:`Fast`,badge:`snappiest`},{value:`balanced`,label:`Balanced`,badge:`default`},{value:`thorough`,label:`Thorough`,badge:`thinks longer`}],onPick:e=>E({quality:e})}),(0,j.jsx)(`span`,{style:{fontSize:12,color:`var(--text-muted)`},children:`How long Mavéa reasons before answering — speed versus care on hard questions. (How the answer is written is Explanation level, above.)`})]}),(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:[(0,j.jsx)(`span`,{style:{fontSize:13,fontWeight:600},children:`Visual richness`}),(0,j.jsx)(K,{label:`Visual richness`,value:ut,options:[{value:`auto`,label:`Auto`,badge:`recommended`},{value:`full`,label:`Full`},{value:`lite`,label:`Lite`,badge:`older machines`}],onPick:e=>ft(e)}),(0,j.jsx)(`span`,{style:{fontSize:12,color:`var(--text-muted)`},children:`Auto matches the effects to your machine. Lite calms the animated face and drops the glass blur so Mavéa stays smooth on older or lower-powered computers.`})]}),(0,j.jsxs)(Ie,{children:[(0,j.jsx)(G,{label:`Pen mode`,on:r.annotationsEnabled,onToggle:()=>{let e=!r.annotationsEnabled;E({annotationsEnabled:e,teachMode:e})},note:`Mavéa draws on the canvas as it speaks — circling numbers, striking out misconceptions, annotating every walkthrough stop. Muted walks also write margin notes beside the cards, so you keep the marked-up answer. Off: the pen stays quiet entirely.`}),r.searchMode!==`off`&&(0,j.jsxs)(`span`,{style:{fontSize:12,color:`var(--text-muted)`,display:`flex`,gap:6},children:[(0,j.jsx)(d.globe,{style:{width:14,height:14,flex:`0 0 auto`,marginTop:1}}),`You'll see "Searching…" whenever a search actually runs.`]}),(0,j.jsx)(G,{label:`Living answers`,on:r.worldEnabled,onToggle:()=>E({worldEnabled:!r.worldEnabled}),note:`When you ask why something happened, Mavéa offers the causal web behind the answer — every arrow shows its source, and follow-ups reshape the same web instead of starting over. Offering one is free: it is generated only when you open it, once, and then it's kept.`}),(0,j.jsx)(G,{label:`Keep a library`,on:r.libraryEnabled,onToggle:()=>E({libraryEnabled:!r.libraryEnabled}),note:`Saves the canvases you generate on this device so you can pick any one back up from the welcome screen. On by default; turn it off or clear the library any time.`}),P.length>0&&(0,j.jsx)(`div`,{style:{marginLeft:48},children:(0,j.jsx)(He,{label:`Clear library (${P.length})`,confirmLabel:`Confirm clear ${P.length===1?`saved canvas`:`${P.length} saved canvases`}`,onConfirm:ne})})]})]}),z===`you`&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(v,{kind:`stored-data`,from:`live`}),(0,j.jsx)(G,{label:`Remember me`,on:r.memoryEnabled,onToggle:()=>E({memoryEnabled:!r.memoryEnabled}),note:`Stored facts stay on this device. While Memory is enabled, relevant facts are included in future requests to your selected model provider. You can inspect, edit, export, or forget each stored fact below.`}),(0,j.jsxs)(`div`,{style:{marginLeft:48,display:`flex`,flexDirection:`column`,gap:8},children:[N.length===0?(0,j.jsx)(`span`,{style:{fontSize:12,color:`var(--text-muted)`},children:r.memoryEnabled?`Nothing remembered yet — Mavéa will build a concept wiki as you talk.`:`No stored concepts. Memory is off, so future conversations will not add any.`}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`},children:[(0,j.jsx)(`div`,{role:`group`,"aria-label":`Memory view`,style:{display:`flex`,gap:2,padding:2,borderRadius:8,background:`var(--track)`,border:`1px solid var(--line)`,alignSelf:`flex-start`},children:[`list`,`graph`].map(e=>(0,j.jsx)(`button`,{type:`button`,"aria-pressed":L===e,onClick:()=>R(e),style:{padding:`4px 12px`,borderRadius:6,border:`none`,background:L===e?`var(--surface-elevated)`:`transparent`,boxShadow:L===e?`0 1px 2px rgba(0,0,0,0.12)`:`none`,color:L===e?`var(--text-primary)`:`var(--text-muted)`,cursor:`pointer`,font:`inherit`,fontSize:12,fontWeight:L===e?600:400},children:e===`list`?`Concepts`:`Graph`},e))}),(0,j.jsx)(He,{label:`Forget all`,confirmLabel:`Confirm forget ${N.length===1?`1 concept`:`${N.length} concepts`}`,onConfirm:pe})]}),L===`graph`?(0,j.jsx)(Ae,{nodes:N}):(0,j.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8,maxHeight:280,overflowY:`auto`},children:Te(N).map(({namespace:e,nodes:t})=>(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:[(0,j.jsx)(`span`,{style:{fontFamily:`var(--font-data, inherit)`,fontSize:10,letterSpacing:`0.14em`,textTransform:`uppercase`,color:`var(--text-muted)`,margin:`2px 2px 0`},children:we(e)}),(0,j.jsx)(`ul`,{style:{listStyle:`none`,margin:0,padding:0,display:`flex`,flexDirection:`column`,gap:6},children:t.map(e=>(0,j.jsx)(Se,{node:e,ago:x(e.updatedAt)},e.id))})]},e))}),(0,j.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:8},children:[(0,j.jsxs)(`span`,{style:{fontSize:11.5,color:`var(--text-muted)`},children:[N.length,` `,N.length===1?`concept`:`concepts`,` · `,Ee,` KB on this device`]}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>De(N),style:{background:`transparent`,border:`1px solid var(--line)`,borderRadius:8,padding:`3px 9px`,color:`var(--text-muted)`,cursor:`pointer`,font:`inherit`,fontSize:12},children:`Export memory`})]})]}),(0,j.jsxs)(`span`,{style:{fontSize:12,color:`var(--text-muted)`,display:`flex`,gap:6},children:[(0,j.jsx)(d.sparkle,{style:{width:14,height:14,flex:`0 0 auto`,marginTop:1}}),r.memoryEnabled?`Stored on this device, and sent to ${O.label.split(` · `)[1]??O.label} inside each prompt to personalize answers — the same path as your questions.`:`Memory is off. Existing concepts stay on this device until you forget them, but they are not included in prompts.`]})]}),(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:8},children:[(0,j.jsx)(`span`,{style:U,children:`Voice`}),(0,j.jsx)(`span`,{style:{fontSize:12,color:`var(--text-muted)`},children:`Microphone audio goes through this deployment to its configured Whisper endpoint; the default is loopback-only. Spoken replies use its configured Kokoro endpoint. Mavéa does not fall back to a browser-vendor speech service.`}),(0,j.jsx)(`div`,{style:{display:`flex`,gap:12,alignItems:`center`},children:(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:4,flex:1},children:[(0,j.jsx)(`span`,{style:{fontSize:11,color:`var(--text-muted)`},children:`Mavéa`}),(0,j.jsxs)(`div`,{style:{display:`flex`,gap:6},children:[(0,j.jsx)(`div`,{style:{flex:1},children:(0,j.jsx)(ye,{ariaLabel:`Mavéa's voice`,value:ct,onChange:e=>{lt(e),Ve(e);let t=m(e);t&&oe(t)},options:_.map(e=>({value:e.id,label:e.label,note:e.tone}))})}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>{let e=m(ct);e&&oe(e)},style:{...ze,width:`auto`,padding:`6px 10px`,cursor:`pointer`,fontSize:11},title:`Preview voice`,"aria-label":`Preview Mavéa's voice`,children:`▶`})]})]})}),(0,j.jsx)(de,{})]}),he.total>0&&(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:[(0,j.jsx)(`span`,{style:U,children:`Flashcards`}),(0,j.jsx)(K,{label:`Flashcards`,value:g,options:[{value:`collection`,label:`Just save them`},{value:`spaced`,label:`Help me remember`}],onPick:e=>be(e)}),(0,j.jsx)(`span`,{style:{fontSize:12,color:`var(--text-muted)`},children:g===`collection`?`A plain pile you flip through when you feel like it. No dates, no counts, nothing waiting for you.`:`Each card comes back just before you'd forget it. New ones join ${me} a day, so a big pile never lands at once.`})]}),(0,j.jsxs)(Ie,{defaultOpen:n,children:[(0,j.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:6},children:[(0,j.jsxs)(`span`,{style:{fontSize:11,color:`var(--text-muted)`},children:[`Hold to talk key `,(0,j.jsx)(`span`,{style:{opacity:.6},children:`(Hold mode only)`})]}),(0,j.jsx)(`div`,{style:{display:`flex`,gap:6},children:[{key:`Alt`,label:`Alt`},{key:`Control`,label:`Ctrl`},{key:`Shift`,label:`Shift`}].map(({key:e,label:t})=>{let n=(r.pttKey||`Alt`)===e;return(0,j.jsx)(`button`,{type:`button`,onClick:()=>E({pttKey:e}),style:Le(n),"aria-pressed":n,title:`Hold ${t} to talk (shows as ${re(e,r.pttSide)} in the hint)`,children:t},e)})}),(0,j.jsx)(`div`,{style:{display:`flex`,gap:6},children:[{side:`any`,label:`Either side`},{side:`left`,label:`Left`},{side:`right`,label:`Right`}].map(({side:e,label:t})=>{let n=(r.pttSide||`any`)===e;return(0,j.jsx)(`button`,{type:`button`,onClick:()=>E({pttSide:e}),style:Le(n),"aria-pressed":n,title:e===`any`?`Either side of the key talks`:`Only the ${t.toLowerCase()} key talks`,children:t},e)})})]}),(0,j.jsx)(G,{label:`Morning brief`,on:r.morningBrief,onToggle:()=>E({morningBrief:!r.morningBrief}),note:`On the first open of the day, Mavéa opens with a quick read on the things you track.`}),(0,j.jsx)(G,{label:`Save flashcards automatically`,on:r.autoSaveFlashcards,onToggle:()=>E({autoSaveFlashcards:!r.autoSaveFlashcards}),note:`When an answer already contains flashcards, keep them without asking. Off by default — the usual way is tapping “Cards” on the answer you want. Every save shows a pill with Undo, so it's never silent.`}),(0,j.jsx)(G,{label:`Quiet hours`,on:F,onToggle:()=>{ue(!F),I(!F)},note:`10 PM – 6 AM: the screen dims and voice output is reduced. Audibility still depends on your device volume and surroundings.`})]})]}),z===`data`&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(v,{kind:`stored-data`,from:`live`}),(0,j.jsxs)(`p`,{style:{fontSize:13,lineHeight:1.5,color:`var(--text-secondary)`,margin:0},children:[`Export a backup, or import one you saved. `,(0,j.jsx)(`strong`,{children:`Saved on this browser.`}),` Some content uses device-bound browser encryption; preferences and other records may use ordinary browser storage. A raw storage copy is not a portable backup — to move data to incognito, another port, browser, or computer, export it here and import it there.`]}),(0,j.jsxs)(`ul`,{style:{margin:0,paddingLeft:18,fontSize:12,lineHeight:1.6,color:`var(--text-muted)`},children:[(0,j.jsx)(`li`,{children:`Includes supported dashboards, memory, flashcards, saved canvases, map records, courses, and settings.`}),(0,j.jsxs)(`li`,{children:[`Provider/search keys and GitHub tokens are `,(0,j.jsx)(`strong`,{children:`never included`}),`. Active turn history, refresh ledgers, caches, Ripple tracking, and device-only appearance, audio, and performance preferences are also excluded.`]}),(0,j.jsxs)(`li`,{children:[`Importing `,(0,j.jsx)(`strong`,{children:`merges`}),` recognized data. It does not clear a store first, but bounded stores can evict older records when an import exceeds their capacity.`]}),(0,j.jsx)(`li`,{children:`The file is plain, unencrypted JSON: keep it somewhere safe, import only files you trust.`})]}),(0,j.jsxs)(`div`,{className:`settings-transfer-row`,"aria-busy":$!==null,children:[(0,j.jsx)(`button`,{type:`button`,className:`settings-transfer-btn`,disabled:$!==null,onClick:()=>void ot(),children:$===`export`?`Exporting backup…`:`Export a backup`}),(0,j.jsx)(`button`,{type:`button`,className:`settings-transfer-btn`,disabled:$!==null,onClick:()=>Ze.current?.click(),children:$===`import`?`Importing backup…`:`Import a backup`}),(0,j.jsx)(`input`,{ref:Ze,type:`file`,accept:`application/json,.json`,disabled:$!==null,style:{display:`none`},"aria-hidden":`true`,onChange:e=>void st(e)}),$e&&(0,j.jsx)(`span`,{style:{fontSize:12,color:`var(--text-muted)`},role:`status`,children:$e}),tt&&(0,j.jsx)(`span`,{className:`settings-import-error`,role:`alert`,children:tt})]})]}),(0,j.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,flexWrap:`wrap`,gap:`6px 12px`,paddingTop:14,borderTop:`1px solid var(--line-soft)`,color:`var(--text-muted)`,fontSize:10.5},children:[(0,j.jsx)(`a`,{href:`#/terms?from=live`,style:{color:`inherit`},children:`Terms`}),(0,j.jsx)(`a`,{href:`#/privacy?from=live`,style:{color:`inherit`},children:`Privacy`}),(0,j.jsx)(`a`,{href:`#/legal?from=live`,style:{color:`inherit`},children:`Important information`}),(0,j.jsx)(`a`,{href:s(`LICENSE.txt`),target:`_blank`,rel:`noreferrer noopener`,style:{color:`inherit`},children:`License`}),(0,j.jsx)(`button`,{type:`button`,onClick:c,style:{marginLeft:`auto`,padding:0,border:0,color:`inherit`,background:`transparent`,font:`inherit`,textDecoration:`underline`,textUnderlineOffset:3,cursor:`pointer`},children:`Review legal acknowledgement now`})]})]})]})}export{Ue as LiveSettings};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.mg-wrap{flex-direction:column;gap:8px;display:flex}.mg-svg{background:var(--surface-deep);border:1px solid var(--line);border-radius:10px;width:100%;height:auto;overflow:visible}.mg-edge{stroke:var(--line-strong);stroke-width:1px;transition:opacity .12s}.mg-edge--strong{stroke-width:1.5px}.mg-node{cursor:pointer}.mg-node circle{transition:opacity .12s}.mg-label{font-family:var(--font-data,inherit);letter-spacing:.03em;pointer-events:none;font-size:9px;transition:opacity .12s}.mg-detail{border-radius:var(--r-sm);background:var(--surface-default);border:1px solid var(--line);cursor:pointer;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.mg-detail-concept{font-family:var(--font-data,inherit);color:var(--presence);letter-spacing:.02em;font-size:10.5px;font-weight:600}.mg-detail-body{color:var(--text-primary);margin:0;font-size:12.5px;line-height:1.45}.mg-warmup{align-items:center;gap:8px;padding:6px 0 2px;display:flex}.mg-warmup-track{border-radius:var(--r-full);background:var(--track);flex:1;height:3px;overflow:hidden}.mg-warmup-fill{border-radius:var(--r-full);background:var(--presence);height:100%;transition:width .4s}.mg-warmup-label{font-family:var(--font-data,inherit);letter-spacing:.04em;color:var(--text-muted);white-space:nowrap;flex:none;font-size:10px}.mg-foot{font-family:var(--font-data,inherit);letter-spacing:.04em;color:var(--text-muted);text-align:right;margin:0;font-size:10px}.mg-empty{text-align:center;color:var(--text-muted);padding:24px 0;font-size:12.5px;line-height:1.5}
|
|
@@ -1 +0,0 @@
|
|
|
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{t as r}from"./useSpatialCanvas-CfmZOXXP.js";import{t as i}from"./Presence-UqXfH4Y-.js";var a=e(),o=t(),s=1e3,c=26,l=150,u=105,d=82,f=16,p=1.5,m=324,h=252;.1*s;var g=120,_=80;.82*s;var v=120;function y(e,t,n,r=[],i=!1){let a=Array.from(e.keys()),o=t*2+c,s=n*2+c,d=168+Math.max(0,a.length-6)*10,f=i?m:d+u,p=i?h:d+n*.9,g=i?h:p+l;for(let i=0;i<400;i++){for(let[t,n]of a.entries()){let r=e.get(n);if(r.x===500&&r.y===329){let e=t/Math.max(1,a.length)*2*Math.PI;r.x=500+Math.cos(e),r.y=329+Math.sin(e)}let i=r.x-500,o=r.y-329,s=o>=0?g:p,c=i/f,l=o/s,u=Math.hypot(c,l)||1;u<1&&(r.x=500+c/u*f,r.y=329+l/u*s)}let i=!1;for(let t=0;t<a.length;t++)for(let n=t+1;n<a.length;n++){let r=e.get(a[t]),c=e.get(a[n]),l=c.x-r.x,u=c.y-r.y;l===0&&u===0&&(l=t-n,u=n-t);let d=o-Math.abs(l),f=s-Math.abs(u);if(d>0&&f>0){if(i=!0,d<=f){let e=d/2*(l<0?-1:1);r.x-=e,c.x+=e}else{let e=f/2*(u<0?-1:1);r.y-=e,c.y+=e}}}for(let o of a){let a=e.get(o);for(let e of r){let r=t+e.hw+c-Math.abs(a.x-e.x),o=n+e.hh+c-Math.abs(a.y-e.y);r<=0||o<=0||(i=!0,o<=r?a.y+=a.y>=e.y?o:-o:a.x+=a.x>=e.x?r:-r)}}if(!i)break}}function b(e,t,n){let r=Array.from(t.values()),i=new Map(n.map(e=>[e.id,e.members]));for(let n of e){let a=(i.get(n.id)??[]).map(e=>t.get(e.id)).filter(e=>!!e);if(a.length){let e=Math.min(...a.map(e=>e.x)),t=Math.max(...a.map(e=>e.x)),r=Math.min(...a.map(e=>e.y)),i=Math.max(...a.map(e=>e.y)),o=(e+t)/2,s=(r+i)/2,c=o-500,l=s-329;Math.abs(l)>=Math.abs(c)?(n.x=o,n.y=l>=0?i+78+f+14:r-78-f-14):(n.y=s,n.x=c>=0?t+150+d+14:e-150-d-14)}for(let t=0;t<80;t++){let t=!1,i=[...r.map(e=>({point:e,hw:150,hh:78})),...e.filter(e=>e!==n).map(e=>({point:e,hw:d,hh:f}))];for(let e of i){let r=d+e.hw+12-Math.abs(n.x-e.point.x),i=f+e.hh+10-Math.abs(n.y-e.point.y);r<=0||i<=0||(t=!0,i<=r?n.y+=n.y>=e.point.y?i:-i:n.x+=n.x>=e.point.x?r:-r)}if(!t)break}}}function x(e,t,n,r=!1,i=!1){let a=new Map,o=new Map,c=[],l=new Map(e.map(e=>[e.id,e])),u=new Set,d=[];for(let e of t??[]){let t=e.atomIds.map(e=>l.get(e)).filter(e=>!!e);t.length!==0&&(t.forEach(e=>u.add(e.id)),d.push({id:e.id,label:e.label,members:t}))}let f=e.filter(e=>!u.has(e.id));if(f.length&&d.push({id:`__rest`,members:f}),d.length===0)return{positions:a,centroidOf:o,labels:c};let m=d.length,h=m===1,x=h?0:Math.min(250,180+m*20);if(d.forEach((e,t)=>{let r=t/m*2*Math.PI-Math.PI/2,i=h?500:500+x*Math.cos(r),s=h?329:329+x*Math.sin(r);e.label&&c.push({id:e.id,label:e.label,x:i,y:s});let l=e.members.length,u=Math.max(318,230+l*26),d=l<=1?h?u:0:h?u:Math.min(220,110+l*16),f={x:i,y:s};e.members.forEach((e,r)=>{let c=n?.get(e.id);if(c)a.set(e.id,{x:c.x,y:c.y});else{let n=r/Math.max(1,l)*2*Math.PI-Math.PI/2+t*.4;a.set(e.id,{x:i+d*Math.cos(n),y:s+d*Math.sin(n)})}o.set(e.id,f)})}),y(a,150,78,[...r?[{x:820,y:630,hw:v,hh:78}]:[],...i?[{x:100,y:84,hw:g,hh:_}]:[]],i),i){let e=s*.42;for(let t of a.values()){let n=t.x-500,r=Math.abs(n)*p;t.x=500+Math.sign(n)*Math.min(r,Math.max(Math.abs(n),e))}}for(let e of d){let t=e.members.map(e=>a.get(e.id)).filter(e=>!!e);if(!t.length)continue;let n={x:t.reduce((e,t)=>e+t.x,0)/t.length,y:t.reduce((e,t)=>e+t.y,0)/t.length};for(let t of e.members)a.has(t.id)&&o.set(t.id,n)}return b(c,a,d),{positions:a,centroidOf:o,labels:c}}var S=n(),C={person:`#2E9C8E`,option:`#5B63E8`,want:`#B07A2E`,fear:`#C9705E`,constraint:`#7A8194`,tradeoff:`#8B6FD4`,contradiction:`#C9705E`,open_loop:`#C98A1B`,action:`#5B63E8`,value:`#B07A2E`,question:`#C98A1B`},w={person:`Person`,option:`Option`,want:`Want`,fear:`Worry`,constraint:`Constraint`,tradeoff:`Tradeoff`,contradiction:`Contradiction`,open_loop:`Open loop`,action:`Action`,value:`Value`,question:`Question`},T=96,E=18,D=104;function O(e,t,n,r){let i=n-e,a=r-t,o=Math.hypot(i,a)||1,s=-a/o,c=i/o,l=(e+n)/2,u=(t+r)/2,d=l+s*52,f=u+c*52,p=.25*e+.5*d+.25*n+s*18,m=.25*t+.5*f+.25*r+c*18;return{d:`M ${e} ${t} Q ${d} ${f} ${n} ${r}`,lx:p,ly:m}}function ee({atom:e,x:t,y:n,order:r,onRemove:i}){let[o,s]=(0,a.useState)(!1),c=C[e.kind]??`#7A8194`,l=e.status===`stable`;return(0,S.jsxs)(`div`,{className:`ms-card`,"data-status":e.status,"data-open":o?`true`:void 0,style:{left:`${t}px`,top:`${n}px`,"--ms-kind-color":c,"--ms-i":r},onClick:()=>l&&s(e=>!e),role:l?`button`:void 0,tabIndex:l?0:void 0,"aria-expanded":l?o:void 0,onKeyDown:e=>e.key===`Enter`&&l&&s(e=>!e),children:[i&&(0,S.jsx)(`button`,{type:`button`,className:`ms-card-remove`,"aria-label":`Remove “${e.label}”`,onClick:t=>{t.stopPropagation(),i(e.id)},children:`×`}),(0,S.jsxs)(`div`,{className:`ms-card-header`,children:[(0,S.jsx)(`span`,{className:`ms-kind-dot`,"aria-hidden":`true`}),(0,S.jsx)(`span`,{className:`ms-kind-label`,children:w[e.kind]})]}),(0,S.jsx)(`div`,{className:`ms-atom-label`,children:e.label}),l&&(0,S.jsxs)(`div`,{className:`ms-card-quote`,"aria-hidden":!o,children:[(0,S.jsx)(`span`,{className:`ms-you-said`,children:`you said · `}),e.quote]})]})}function te({unsaid:e,onConfirm:t,onDismiss:n}){let r=!!(t||n);return(0,S.jsxs)(`div`,{className:`ms-card ms-unsaid`,"data-status":`maybe`,"data-interactive":r?`true`:void 0,style:{left:`820px`,top:`630px`,"--ms-i":20},"aria-label":`Maybe: ${e.label}`,children:[(0,S.jsxs)(`div`,{className:`ms-card-header`,children:[(0,S.jsx)(`span`,{className:`ms-kind-dot`,style:{background:`var(--warning)`},"aria-hidden":`true`}),(0,S.jsx)(`span`,{className:`ms-kind-label`,style:{color:`var(--warning)`},children:`Maybe`})]}),(0,S.jsx)(`div`,{className:`ms-atom-label`,children:e.label}),(0,S.jsx)(`div`,{className:`ms-card-quote`,children:e.why}),r&&(0,S.jsxs)(`div`,{className:`ms-unsaid-actions`,children:[t&&(0,S.jsx)(`button`,{type:`button`,className:`ms-unsaid-btn ms-unsaid-confirm`,onClick:e=>{e.stopPropagation(),t()},children:`Yes, that's it`}),n&&(0,S.jsx)(`button`,{type:`button`,className:`ms-unsaid-btn ms-unsaid-dismiss`,onClick:e=>{e.stopPropagation(),n()},children:`Not this`})]})]})}function ne(e){let t=(0,o.c)(4),{signal:n}=e,r;return t[0]!==n.content||t[1]!==n.id||t[2]!==n.kind?(r=(0,S.jsx)(`div`,{className:`ms-signal-chip`,"data-kind":n.kind,"aria-live":`polite`,children:n.content},n.id),t[0]=n.content,t[1]=n.id,t[2]=n.kind,t[3]=r):r=t[3],r}function re(e,t){let n=e.links.filter(e=>e.kind===`tensions`).length,r=e.atoms.filter(e=>e.kind===`question`).length,i=e.atoms.filter(e=>e.kind===`option`).length,a=e.atoms.length;return t&&n>0?n===1?`1 tension. ${t.a.label} vs ${t.b.label}.`:`${n} tensions. The real pull: ${t.a.label} vs ${t.b.label}.`:r>=3?`${r} open questions.`:i>=2?`${i} options. ${a} things on your mind.`:`${a} thought${a===1?``:`s`}. Here's what I heard.`}function k({center:e,atoms:t=[],links:n=[],clusters:o,unsaid:c,title:l,phase:u=`settled`,intent:d=`general`,isRevealing:f=!1,modelUnavailable:p=!1,currentSignal:m,onAction:h,onRemoveAtom:g,onConfirmUnsaid:_,onDismissUnsaid:v,liveTranscript:y,thoughtCount:b,delay:w=0,asBlock:k=!0}){let A=(0,a.useRef)(new Map),j=u===`settled`,M=`${j}|${(o??[]).map(e=>`${e.id}:${e.atomIds.join(`,`)}`).join(`|`)}`,N=(0,a.useRef)(``),P=M===N.current?A.current:void 0,{positions:F,centroidOf:I,labels:L}=(0,a.useMemo)(()=>x(t,o,P,!!c,j),[t,o,c,j]);A.current=F,N.current=M;let R=!!h&&t.length>0,z=r({clamp:{min:.12,max:1.6},margin:20,insetBottom:R?D:0}),{fitTo:B}=z,V=(0,a.useMemo)(()=>{let e=318,t=195.6;for(let n of F.values())e=Math.max(e,Math.abs(n.x-500)+150),t=Math.max(t,Math.abs(n.y-329)+78);for(let n of L)e=Math.max(e,Math.abs(n.x-500)+T),t=Math.max(t,Math.abs(n.y-329)+E);return c&&(e=Math.max(e,470),t=Math.max(t,379)),e+=24,t+=24,{x:500-e,y:329-t,w:2*e,h:2*t}},[F,L,c]);(0,a.useEffect)(()=>{B(V)},[V,B]);let H=[...n].sort((e,t)=>(e.kind===`tensions`)-+(t.kind===`tensions`)),U=(0,a.useMemo)(()=>new Map(t.map(e=>[e.id,e])),[t]),W=(0,a.useMemo)(()=>{let e=n.filter(e=>e.kind===`tensions`&&!e.provisional&&e.label);if(e.length===0)return null;let t=e=>U.get(e)?.weight??1,r=e.map(e=>({l:e,w:t(e.from)+t(e.to)})).sort((e,t)=>t.w-e.w||(e.l.from+e.l.to).localeCompare(t.l.from+t.l.to))[0],i=U.get(r.l.from),a=U.get(r.l.to);return!i||!a?null:{a:i,b:a,label:r.l.label}},[n,U]),G=(0,a.useMemo)(()=>t.filter(e=>(e.kind===`open_loop`||e.kind===`action`||e.kind===`question`)&&e.quote&&e.status!==`maybe`).map(e=>({id:e.id,label:e.label,quote:e.quote})),[t]),[K,q]=(0,a.useState)(null),[ie,ae]=(0,a.useState)(()=>new Set),oe=(0,a.useCallback)(e=>{ae(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),J=(0,a.useRef)(!1),Y=(0,a.useRef)(!1),X=(0,a.useRef)(u===`settled`);(0,a.useEffect)(()=>{u===`settled`&&(d===`planning`&&!Y.current?(Y.current=!0,q(`plan`)):W&&!J.current&&d!==`planning`&&(J.current=!0,q(`tension`)));let e=X.current;X.current=u===`settled`,e&&u!==`settled`&&(J.current=!1,Y.current=!1,q(null))},[u,W,d]);let se=u===`listening`?`listening`:u===`pausing`?`thinking`:`idle`,ce=u===`settled`?{decision:`THE DECISION`,planning:`THE PLAN`,exploration:`THE QUESTION`,processing:`WHAT'S GOING ON`,general:`WHAT I HEARD`}[d]??`WHAT I HEARD`:`WHAT I'M HEARING`,le={decision:`Help me decide`,planning:`Build this plan`,exploration:`Take me deeper`,processing:`Help me understand`,general:`Answer this`}[d]??`Answer this`,Z=(0,a.useRef)(null),ue=e=>{!j||e.button!==0||e.target.closest(`.ms-card, .ms-hub, button`)||(Z.current={x:e.clientX,y:e.clientY},e.currentTarget.setPointerCapture(e.pointerId))},de=e=>{let t=Z.current;t&&(z.pan(e.clientX-t.x,e.clientY-t.y),Z.current={x:e.clientX,y:e.clientY})},Q=e=>{Z.current&&(Z.current=null,e.currentTarget.releasePointerCapture?.(e.pointerId))},$=(0,S.jsxs)(`div`,{className:`ms-canvas`,ref:z.viewportRef,onPointerDown:ue,onPointerMove:de,onPointerUp:Q,onPointerCancel:Q,onWheel:e=>{j&&z.zoomAtClient(e.deltaY<0?1.12:1/1.12,e.clientX,e.clientY)},"data-interactive":!0,"data-explorable":j?`true`:void 0,style:{"--ms-cam-scale":z.camera.scale},"data-phase":u,"data-revealing":f?`true`:void 0,"data-has-actions":h&&t.length>0?`true`:void 0,role:`region`,"aria-label":`Mindshape — the shape of your thought`,children:[(0,S.jsxs)(`div`,{className:`ms-world`,style:{transform:z.transform,"--ms-cam-scale":z.camera.scale},children:[L.map(e=>(0,S.jsx)(`div`,{className:`ms-cluster-label`,style:{left:`${e.x}px`,top:`${e.y}px`},"aria-hidden":`true`,children:e.label},e.id)),(0,S.jsxs)(`svg`,{className:`ms-svg`,viewBox:`0 0 ${s} 700`,"aria-hidden":`true`,children:[t.filter(e=>e.status===`stable`).map((e,t)=>{let n=F.get(e.id),r=I.get(e.id);return!n||!r?null:(0,S.jsx)(`path`,{className:`ms-spoke`,d:`M ${r.x} ${r.y} L ${n.x} ${n.y}`,pathLength:1,style:{"--ms-spoke-i":t}},`spoke-${e.id}`)}),H.map((e,t)=>{let n=F.get(e.from),r=F.get(e.to);if(!n||!r)return null;let i=e.kind===`tensions`,a=C[U.get(e.from)?.kind??`fear`],{d:o,lx:s,ly:c}=O(n.x,n.y,r.x,r.y),l=i&&W&&e.from===W.a.id&&e.to===W.b.id;return(0,S.jsxs)(`g`,{children:[(0,S.jsx)(`path`,{className:i?`ms-thread`:`ms-link`,"data-kind":e.kind,"data-hero":l?`true`:void 0,d:o,pathLength:i?1:void 0,stroke:i?a:void 0,style:{animationDelay:`${.3+t*.12}s`}}),i&&e.label&&(0,S.jsx)(`text`,{className:`ms-thread-label`,x:s,y:c,textAnchor:`middle`,dominantBaseline:`middle`,children:e.label})]},`link-${e.from}-${e.to}-${e.kind}`)})]}),j&&e&&(0,S.jsx)(`div`,{className:`ms-hub`,style:{left:`500px`,top:`329px`},"aria-live":`polite`,children:(0,S.jsx)(`span`,{className:`ms-hub-text`,children:e})}),t.map((e,t)=>{let n=F.get(e.id);return n?(0,S.jsx)(ee,{atom:e,x:n.x,y:n.y,order:t,onRemove:g},e.id):null}),c&&(0,S.jsx)(te,{unsaid:c,onConfirm:_,onDismiss:v})]}),(0,S.jsxs)(`div`,{className:`ms-center`,children:[m&&u!==`settled`&&(0,S.jsx)(ne,{signal:m}),!j&&(0,S.jsx)(`div`,{className:`ms-center-pip-wrap`,children:(0,S.jsx)(i,{state:se,emotion:`neutral`,gaze:`center`})}),(0,S.jsx)(`div`,{className:`ms-center-label`,"aria-hidden":`true`,children:ce}),e&&!j&&(0,S.jsx)(`div`,{className:`ms-center-question`,"aria-live":`polite`,children:e}),u===`settled`&&(t.length>0?(0,S.jsx)(`div`,{className:`ms-synthesis-line`,"aria-live":`polite`,children:re({atoms:t,links:n},W)}):p?(0,S.jsx)(`div`,{className:`ms-synthesis-line`,"aria-live":`polite`,children:`I couldn't reach the model just now — nothing you said was lost. Try again in a moment.`}):(0,S.jsx)(`div`,{className:`ms-synthesis-line`,"aria-live":`polite`,children:`Didn't catch enough to map yet — keep talking and I'll shape it.`})),b!==void 0&&b>=0&&u!==`settled`&&(0,S.jsxs)(`div`,{className:`ms-thought-count`,"aria-live":`polite`,children:[(0,S.jsx)(`span`,{className:`ms-mic-dot`,"aria-hidden":`true`}),(()=>{let e=Math.max(b,t.length);return e===0?`Listening…`:`${e} thought${e===1?``:`s`}`})()]}),y&&(0,S.jsx)(`div`,{className:`ms-live-text`,"aria-live":`polite`,"aria-label":`Currently hearing`,children:y})]}),u===`settled`&&W&&K===`tension`&&(0,S.jsxs)(`div`,{className:`ms-tension-callout`,role:`dialog`,"aria-label":`The tension`,children:[(0,S.jsx)(`button`,{type:`button`,className:`ms-tension-close`,"aria-label":`Dismiss`,onClick:()=>q(null),children:`×`}),(0,S.jsx)(`span`,{className:`ms-tension-eyebrow`,children:`THE TENSION`}),(0,S.jsxs)(`p`,{className:`ms-tension-body`,children:[`You keep coming back to `,(0,S.jsxs)(`strong`,{children:[`“`,W.a.label,`.”`]}),` But you also said`,` `,(0,S.jsxs)(`strong`,{children:[`“`,W.b.label,`.”`]}),` Those may not be the same reason.`]}),h&&(0,S.jsx)(`button`,{type:`button`,className:`ms-tension-cta`,onClick:()=>h(`tell-apart`,{tension:{a:W.a.label,b:W.b.label}}),children:`Help me tell them apart →`})]}),K===`plan`&&(0,S.jsxs)(`div`,{className:`ms-plan`,role:`dialog`,"aria-label":`Turn into a plan`,children:[(0,S.jsxs)(`header`,{className:`ms-plan-head`,children:[(0,S.jsx)(`span`,{className:`ms-plan-title`,children:`The open loops, as steps you control`}),(0,S.jsx)(`button`,{type:`button`,className:`ms-tension-close`,"aria-label":`Close the plan`,onClick:()=>q(null),children:`×`})]}),G.length>0?(0,S.jsx)(`ol`,{className:`ms-plan-steps`,children:G.map(e=>{let t=ie.has(e.id);return(0,S.jsxs)(`li`,{className:`ms-plan-step`,"data-done":t?`true`:void 0,children:[(0,S.jsx)(`button`,{type:`button`,className:`ms-plan-check`,role:`checkbox`,"aria-checked":t,"aria-label":`Mark “${e.label}” done`,onClick:()=>oe(e.id),children:t&&(0,S.jsx)(`span`,{className:`ms-plan-check-mark`,"aria-hidden":`true`,children:`✓`})}),(0,S.jsxs)(`span`,{className:`ms-plan-step-body`,children:[(0,S.jsx)(`span`,{className:`ms-plan-step-label`,children:e.label}),(0,S.jsxs)(`span`,{className:`ms-plan-step-trace`,children:[`from “`,e.quote,`”`]})]})]},e.id)})}):(0,S.jsx)(`p`,{className:`ms-plan-empty`,children:`No open loops to turn into steps yet — keep talking and they’ll surface.`}),(0,S.jsxs)(`footer`,{className:`ms-plan-foot`,children:[(0,S.jsx)(`span`,{className:`ms-plan-note`,children:`Every step traces back to something you said — nothing invented.`}),h&&G.length>0&&(0,S.jsx)(`button`,{type:`button`,className:`ms-action-btn ms-action-primary`,onClick:()=>h(`commit-plan`),children:`Make it real →`})]})]}),u===`settled`&&K===`kept`&&(0,S.jsxs)(`div`,{className:`ms-kept`,role:`dialog`,"aria-label":`Kept this shape`,children:[(0,S.jsx)(`button`,{type:`button`,className:`ms-tension-close`,"aria-label":`Close`,onClick:()=>q(null),children:`×`}),(0,S.jsx)(`span`,{className:`ms-kept-eyebrow`,children:`KEPT THIS SHAPE`}),(0,S.jsx)(`p`,{className:`ms-kept-body`,children:`This is the shape of what you were thinking. It’s yours to revisit.`}),h&&(0,S.jsxs)(`div`,{className:`ms-kept-actions`,children:[(0,S.jsx)(`button`,{type:`button`,className:`ms-kept-btn`,onClick:()=>h(`answer`),children:`↻ Replay`}),(0,S.jsx)(`button`,{type:`button`,className:`ms-kept-btn`,onClick:()=>h(`share`),children:`↗ Share`}),(0,S.jsx)(`button`,{type:`button`,className:`ms-kept-btn`,onClick:()=>h(`present`),children:`▶ Present mode`})]}),(0,S.jsx)(`span`,{className:`ms-kept-memory`,children:`Nothing was saved to memory — Mavéa asks first before keeping anything personal.`})]}),h&&t.length>0&&(0,S.jsxs)(`div`,{className:`ms-actions`,role:`group`,"aria-label":`What to do with this map`,children:[(0,S.jsx)(`button`,{type:`button`,className:`ms-action-btn ms-action-primary`,onClick:()=>h(`answer`),children:le}),(0,S.jsx)(`button`,{type:`button`,className:`ms-action-btn`+(K===`plan`?` is-active`:``),"aria-pressed":K===`plan`,onClick:()=>q(e=>e===`plan`?null:`plan`),children:`Turn into a plan`}),u===`settled`&&(0,S.jsx)(`button`,{type:`button`,className:`ms-action-btn`+(K===`kept`?` is-active`:``),"aria-pressed":K===`kept`,onClick:()=>q(e=>e===`kept`?null:`kept`),children:`That’s it`}),u===`settled`&&(0,S.jsx)(`button`,{type:`button`,className:`ms-action-btn`,onClick:()=>h(`add-more`),children:`Add more`}),(0,S.jsx)(`button`,{type:`button`,className:`ms-action-btn`,onClick:()=>h(`not-quite`),children:`Not quite`})]})]});return k?(0,S.jsxs)(`div`,{className:`card reveal`,style:{"--delay":`${w}ms`},children:[l&&(0,S.jsx)(`div`,{className:`card-eyebrow`,children:l}),$]}):$}export{k as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.mavea-app.watch-thinking .presence-layer,.mavea-app.watch-thinking .block-actions,.mavea-app.watch-thinking .ink-user-overlay{display:none}.ms-stage-fill{z-index:2;--ms-bottom-reserve:calc(var(--dock-h,76px) + 8px);padding:70px 32px var(--ms-bottom-reserve) calc(32px + var(--rail-w,0px));box-sizing:border-box;background:radial-gradient(ellipse 70% 55% at 50% 44%, var(--surface-elevated) 0%, var(--surface-default) 100%);justify-content:center;align-items:center;transition:background .8s;display:flex;position:fixed;inset:0}.ms-stage-fill[data-phase=settled]{padding-bottom:var(--ms-bottom-reserve);background:radial-gradient(ellipse 70% 55% at 50% 44%, color-mix(in oklab, var(--surface-elevated) 85%, var(--insight) 15%) 0%, var(--surface-default) 100%)}.ms-stage-fill .ms-canvas{aspect-ratio:auto;background:0 0;border-radius:0;width:100%;max-width:none;height:100%;max-height:none;margin-inline:0}.ms-stage-fill[data-phase=settled]{z-index:39}.ms-exit{z-index:3;font:600 10.5px/1 var(--font-data,var(--font));letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);background:var(--surface-elevated);border:1px solid var(--line-soft);border-radius:var(--r-full);cursor:pointer;opacity:.72;align-items:center;gap:5px;padding:7px 13px 7px 9px;transition:opacity .16s,color .16s,border-color .16s;display:inline-flex;position:absolute;top:72px;right:16px}.ms-exit:hover,.ms-exit:focus-visible{opacity:1;color:var(--text-primary);border-color:var(--line-strong)}.ms-exit svg{width:13px;height:13px}.ms-canvas{aspect-ratio:10/7;background:var(--surface-default);border-radius:10px;width:100%;max-width:640px;margin-inline:auto;position:relative;overflow:hidden}.ms-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ms-spoke{fill:none;stroke:var(--text-muted);stroke-width:1px;opacity:.26;stroke-dasharray:1;stroke-dashoffset:1px;animation:.5s forwards ms-draw-spoke;animation-delay:calc(var(--ms-spoke-i,0) * 60ms + .1s)}@keyframes ms-draw-spoke{to{stroke-dashoffset:0}}.ms-thread{fill:none;stroke-width:1.5px;stroke-dasharray:5 4;opacity:0;animation:.4s forwards ms-fade-thread}@keyframes ms-fade-thread{0%{opacity:0}to{opacity:.7}}.ms-thread-label{fill:var(--text-muted);font-family:inherit;font-size:9px;font-style:italic}.ms-link{fill:none;stroke:color-mix(in oklab, var(--insight) 55%, var(--text-muted));stroke-width:1.25px;opacity:0;animation:.4s forwards ms-fade-link}@keyframes ms-fade-link{to{opacity:.4}}.ms-center{pointer-events:none;text-align:center;flex-direction:column;align-items:center;gap:4px;transition:left .7s cubic-bezier(.22,1,.36,1),top .7s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;top:47%;left:50%;transform:translate(-50%,-50%)}.ms-canvas[data-explorable=true]{cursor:grab;touch-action:none}.ms-canvas[data-explorable=true]:active{cursor:grabbing}.ms-hub{box-sizing:border-box;text-align:center;background:color-mix(in oklab, var(--surface-elevated) 92%, var(--presence) 8%);border:1.5px solid color-mix(in oklab, var(--presence) 26%, var(--line));width:260px;height:260px;box-shadow:0 4px 20px color-mix(in oklab, var(--presence) 12%, transparent);pointer-events:none;opacity:0;border-radius:50%;place-items:center;padding:30px;animation:.55s .3s forwards ms-hub-in;display:grid;position:absolute;transform:translate(-50%,-50%)}.ms-hub-text{font-size:max(11px, calc(13px * var(--ms-card-scale,1)));color:var(--text-primary);font-weight:500;line-height:1.35}@keyframes ms-hub-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.ms-hub{opacity:1;animation:none}}.ms-orb .presence[data-state=listening],.ms-orb .presence[data-state=thinking],.ms-orb .presence[data-state=loading],.ms-orb .presence[data-state=speaking]{animation:none;transform:none}.ms-orb .presence .mascot,.ms-orb .presence .mascot .jelly{animation:none}.ms-orb .presence .mascot .bell{filter:none}.ms-orb .presence .mascot .curtains.long,.ms-orb .presence .mascot .band,.ms-orb .presence .mascot .glint.g2,.ms-orb .presence .mascot .bell-sheen{display:none}.ms-orb .presence .mascot .curtains.short{display:inline}.ms-orb .presence .mascot .eye{transform:scale(1.25)}.ms-canvas[data-phase=settled] .ms-center{border-radius:var(--r-sm);background:color-mix(in oklab, var(--surface-elevated) 88%, transparent);border:1px solid var(--line-soft,var(--line));text-align:left;flex-direction:column;align-items:flex-start;gap:2px;width:max-content;max-width:340px;padding:10px 14px 12px;display:inline-flex;top:20px;left:24px;transform:none;box-shadow:0 1px 4px #0000000d}.ms-canvas[data-phase=settled] .ms-center-pip-wrap{grid-area:1/1/span 8}.ms-canvas[data-phase=settled] .ms-center-pip-wrap .presence{--face-size:54px}.ms-canvas[data-phase=settled] .ms-center-label,.ms-canvas[data-phase=settled] .ms-center-question,.ms-canvas[data-phase=settled] .ms-synthesis-line{text-align:left;max-width:260px;transform:none}.ms-canvas[data-phase=settled] .ms-center-question{font-size:13px;line-height:1.35}.ms-canvas[data-phase=settled] .ms-synthesis-line{background:0 0;padding:0;font-size:10.5px}.ms-center-pip-wrap .presence{--face-size:80px}.ms-center-pip-wrap .presence .mascot .shimmer,.ms-center-pip-wrap .presence .mascot .band,.ms-center-pip-wrap .presence .mascot .glint.g2{display:none}.ms-center-pip-wrap .presence .mascot .curtain .strand{stroke-width:4.2px}.ms-center-pip-wrap .presence .mascot .bell{filter:none}.ms-center-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);opacity:0;font-size:9px;font-weight:700;line-height:1;transition:opacity .4s}.ms-canvas[data-phase=listening] .ms-center-label,.ms-canvas[data-phase=pausing] .ms-center-label,.ms-canvas[data-phase=settled] .ms-center-label{opacity:1}.ms-center-question{max-width:180px;color:var(--text-primary,var(--text-muted));opacity:0;font-size:11px;font-weight:500;line-height:1.4;transition:opacity .6s .3s}.ms-center-label,.ms-center-question{transform:scale(clamp(.68, var(--ms-cam-scale,1), 1));transform-origin:top}.ms-canvas[data-phase=settled] .ms-center-question{opacity:1}.ms-live-text{max-width:220px;color:var(--text-secondary);text-align:center;opacity:0;-webkit-line-clamp:2;pointer-events:none;-webkit-box-orient:vertical;font-size:10px;font-style:italic;font-weight:400;line-height:1.4;transition:opacity .2s;display:-webkit-box;overflow:hidden}.ms-canvas[data-phase=listening] .ms-live-text,.ms-canvas[data-phase=pausing] .ms-live-text{opacity:1}.ms-thought-count{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);opacity:0;pointer-events:none;align-items:center;gap:5px;font-size:9px;font-weight:600;transition:opacity .3s;display:flex}.ms-canvas[data-phase=listening] .ms-thought-count,.ms-canvas[data-phase=pausing] .ms-thought-count{opacity:1}.ms-mic-dot{background:var(--insight);border-radius:50%;width:5px;height:5px;animation:1.4s ease-in-out infinite ms-mic-pulse}.ms-canvas[data-phase=pausing] .ms-mic-dot{background:var(--text-muted);animation:none}@keyframes ms-mic-pulse{0%,to{opacity:1}50%{opacity:.3}}.ms-zoom-controls{z-index:2;flex-direction:column;gap:4px;display:flex;position:absolute;bottom:14px;right:14px}.ms-zoom-btn{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-elevated);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;place-items:center;font-size:16px;line-height:1;transition:background .15s,color .15s;display:grid}.ms-zoom-btn:hover{background:var(--surface-glass-strong);color:var(--text-primary)}.ms-zoom-layer{transform-origin:50%;will-change:transform;position:absolute;inset:0}.ms-cluster-label{text-align:center;letter-spacing:.01em;max-width:150px;color:var(--text-muted);background:color-mix(in oklab, var(--surface-elevated) 80%, transparent);pointer-events:none;opacity:0;border-radius:7px;padding:2px 7px;font-size:11px;font-weight:650;line-height:1.2;animation:.6s .3s forwards ms-cluster-rise;position:absolute;transform:translate(-50%,-50%)}@keyframes ms-cluster-rise{0%{opacity:0;transform:translate(-50%,-42%)}to{opacity:.85;transform:translate(-50%,-50%)}}@media (prefers-reduced-motion:reduce){.ms-cluster-label{opacity:.85;animation:none}}.ms-card{width:calc(184px * var(--ms-card-scale,1));background:var(--surface-elevated);border:1.5px solid var(--ms-kind-color,var(--grid-line));border-radius:var(--r-sm);cursor:default;opacity:0;animation:.35s forwards ms-card-in;animation-delay:calc(var(--ms-i,0) * 70ms + .1s);padding:7px 9px 8px;transition:box-shadow .2s;position:absolute;transform:translate(-50%,-50%)scale(.95);box-shadow:0 1px 4px #0000000f}@keyframes ms-card-in{to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.ms-card[data-status=forming]{opacity:0;animation:.35s forwards ms-card-forming-in;animation-delay:calc(var(--ms-i,0) * 70ms + .1s);border-style:dashed}@keyframes ms-card-forming-in{to{opacity:.65;transform:translate(-50%,-50%)scale(.97)}}.ms-card[data-status=stable]{cursor:pointer;box-shadow:0 2px 8px #0000001a}.ms-card[data-status=stable]:hover{box-shadow:0 3px 12px #00000024}.ms-card.ms-unsaid{width:calc(240px * var(--ms-card-scale,1));background:color-mix(in oklab, var(--warning) 9%, var(--surface-elevated));border-color:var(--warning);border-style:dashed}.ms-card.ms-unsaid .ms-atom-label{overflow-wrap:anywhere}:root[data-theme=light] .ms-card.ms-unsaid{background:color-mix(in oklab, var(--warning) 8%, var(--surface-elevated))}:root[data-theme=dark] .ms-card.ms-unsaid{background:color-mix(in oklab, var(--warning) 14%, var(--surface-elevated))}.ms-card-header{align-items:center;gap:5px;margin-bottom:4px;display:flex}.ms-kind-dot{background:var(--ms-kind-color,var(--text-muted));border-radius:50%;flex-shrink:0;width:7px;height:7px}.ms-kind-label{font-size:max(9px, calc(9px * var(--ms-card-scale,1)));letter-spacing:.02em;text-transform:uppercase;color:var(--ms-kind-color,var(--text-muted));filter:brightness(.85);font-weight:700;line-height:1}.ms-atom-label{font-size:calc(11.5px * var(--ms-card-scale,1));color:var(--text-primary,inherit);word-break:break-word;font-weight:600;line-height:1.35}.ms-card-quote{max-height:0;font-size:calc(10.5px * var(--ms-card-scale,1));color:var(--text-muted);margin-top:0;line-height:1.45;transition:max-height .28s;overflow:hidden}.ms-card[data-open=true] .ms-card-quote{max-height:80px;margin-top:5px}.ms-you-said{color:var(--text-muted);font-style:italic;font-weight:600}.ms-card-remove{background:color-mix(in oklab, var(--surface-elevated) 88%, var(--text-muted));width:17px;height:17px;color:var(--text-muted);cursor:pointer;opacity:0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:13px;line-height:1;transition:opacity .15s,color .15s,background .15s;display:flex;position:absolute;top:2px;right:2px}.ms-card:hover .ms-card-remove,.ms-card:focus-within .ms-card-remove{opacity:1}.ms-card-remove:hover,.ms-card-remove:focus-visible{background:var(--warning,#c9705e);color:#fff;opacity:1}@media (hover:none){.ms-card-remove{opacity:1}}.ms-actions{background:linear-gradient(to top, var(--surface-default) 78%, transparent);flex-wrap:wrap;justify-content:center;gap:6px;padding:10px 12px;transition:transform .4s cubic-bezier(.22,1,.36,1) .6s;display:flex;position:absolute;bottom:28px;left:0;right:0;transform:translateY(calc(100% + 14px))}.ms-canvas[data-has-actions=true] .ms-actions,.ms-canvas[data-phase=settled] .ms-actions{transform:translateY(0)}.ms-action-btn{border:1.5px solid var(--grid-line);background:var(--surface-elevated);color:var(--text-primary,inherit);cursor:pointer;white-space:nowrap;border-radius:20px;padding:5px 11px;font-size:11px;font-weight:600;transition:background .15s,box-shadow .15s}.ms-action-btn:hover{background:color-mix(in oklab, var(--surface-elevated) 80%, var(--insight,#5b63e8));box-shadow:0 2px 6px #0000001a}.ms-action-primary{background:var(--insight,#5b63e8);border-color:var(--insight,#5b63e8);color:#fff}.ms-action-primary:hover{background:color-mix(in oklab, var(--insight,#5b63e8) 85%, #000)}.ms-action-btn.is-active{border-color:var(--insight,#5b63e8);background:color-mix(in oklab, var(--insight,#5b63e8) 14%, var(--surface-elevated));color:var(--insight,#5b63e8)}.ms-tension-callout{z-index:14;border-radius:var(--r-md,14px);border:1px solid color-mix(in oklab, var(--warning) 40%, var(--grid-line));background:var(--surface-elevated);width:min(300px,60%);box-shadow:var(--shadow-modal,0 18px 48px #00000047);transform-origin:100% 0;flex-direction:column;gap:8px;padding:14px 16px 16px;animation:.4s cubic-bezier(.22,1,.36,1) both ms-panel-in-corner;display:flex;position:absolute;top:16px;right:16px}@container (width<=460px){.ms-tension-callout{transform-origin:bottom;width:auto;inset:auto 12px 12px}}.ms-tension-eyebrow{font-family:var(--font-data);letter-spacing:.14em;color:var(--warning);font-size:9px;font-weight:700}.ms-tension-body{color:var(--text-primary,inherit);margin:0;font-size:13px;line-height:1.5}.ms-tension-body strong{color:var(--text-primary,inherit);font-weight:600}.ms-tension-cta{border:1.5px solid color-mix(in oklab, var(--warning) 55%, var(--grid-line));background:color-mix(in oklab, var(--warning) 12%, var(--surface-elevated));color:color-mix(in oklab, var(--warning) 78%, var(--text-primary,#222));cursor:pointer;border-radius:18px;align-self:flex-start;margin-top:2px;padding:6px 12px;font-size:11.5px;font-weight:600;transition:background .15s}.ms-tension-cta:hover{background:color-mix(in oklab, var(--warning) 22%, var(--surface-elevated))}.ms-tension-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px;font-size:16px;line-height:1;position:absolute;top:8px;right:10px}.ms-tension-close:hover{color:var(--text-primary,inherit)}.ms-plan,.ms-kept{z-index:16;border-radius:var(--r-lg,18px);border:1px solid var(--grid-line);background:var(--surface-elevated);width:min(440px,86%);max-height:78%;box-shadow:var(--shadow-modal,0 24px 60px #00000052);flex-direction:column;gap:12px;padding:20px 22px 22px;animation:.4s cubic-bezier(.22,1,.36,1) both ms-panel-in;display:flex;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.ms-plan-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.ms-plan-title{color:var(--text-primary,inherit);font-size:14px;font-weight:600}.ms-plan-steps{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.ms-plan-step{align-items:flex-start;gap:10px;display:flex}.ms-plan-check{border:1.5px solid color-mix(in oklab, var(--insight,#5b63e8) 55%, var(--grid-line));background:color-mix(in oklab, var(--insight,#5b63e8) 8%, transparent);cursor:pointer;border-radius:5px;flex:none;justify-content:center;align-items:center;width:18px;height:18px;margin-top:1px;padding:0;transition:background .15s,border-color .15s;display:inline-flex}.ms-plan-check:hover{border-color:var(--insight,#5b63e8);background:color-mix(in oklab, var(--insight,#5b63e8) 16%, transparent)}.ms-plan-check[aria-checked=true]{background:var(--insight,#5b63e8);border-color:var(--insight,#5b63e8)}.ms-plan-check-mark{color:#fff;font-size:11px;font-weight:800;line-height:1}.ms-plan-step[data-done=true] .ms-plan-step-label{color:var(--text-muted);text-decoration:line-through}.ms-plan-step-body{flex-direction:column;gap:2px;display:flex}.ms-plan-step-label{color:var(--text-primary,inherit);font-size:13px;font-weight:600;line-height:1.35}.ms-plan-step-trace{color:var(--text-muted);font-size:11px;font-style:italic;line-height:1.4}.ms-plan-empty{color:var(--text-muted);margin:0;font-size:13px}.ms-plan-foot{border-top:1px solid var(--grid-line);justify-content:space-between;align-items:center;gap:12px;margin-top:2px;padding-top:12px;display:flex}.ms-plan-note{color:var(--text-muted);font-size:11px;line-height:1.4}.ms-kept{text-align:left;align-items:flex-start;width:min(380px,84%)}.ms-kept-eyebrow{font-family:var(--font-data);letter-spacing:.14em;color:var(--insight,#5b63e8);font-size:9px;font-weight:700}.ms-kept-body{color:var(--text-primary,inherit);margin:0;font-size:14px;line-height:1.5}.ms-kept-actions{flex-wrap:wrap;gap:8px;display:flex}.ms-kept-btn{border:1.5px solid var(--grid-line);background:var(--surface-default);color:var(--text-primary,inherit);cursor:pointer;border-radius:20px;padding:7px 14px;font-size:12px;font-weight:600;transition:border-color .15s}.ms-kept-btn:hover{border-color:var(--insight,#5b63e8)}.ms-kept-memory{color:var(--text-muted);font-size:11px;line-height:1.45}@keyframes ms-panel-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes ms-panel-in-corner{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ms-signal-chip{white-space:nowrap;letter-spacing:.01em;color:var(--text-secondary);background:color-mix(in oklab, var(--surface-elevated) 88%, transparent);border:1px solid var(--line-soft);border-radius:var(--r-full);pointer-events:none;padding:4px 11px;font-size:10px;font-style:italic;font-weight:500;animation:.4s forwards ms-signal-in;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}@keyframes ms-signal-in{0%{opacity:0;transform:translate(-50%)translateY(4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.ms-signal-chip[data-kind=tension]{color:var(--warning);border-color:color-mix(in oklab, var(--warning) 35%, var(--line-soft))}.ms-signal-chip[data-kind=unsaid]{color:var(--insight);border-color:color-mix(in oklab, var(--insight) 30%, var(--line-soft))}@keyframes ms-breathe{0%,to{opacity:.55}50%{opacity:.8}}.ms-card[data-status=forming]{animation:.35s forwards ms-card-forming-in,2s ease-in-out .5s infinite ms-breathe}.ms-synthesis-line{max-width:220px;color:var(--text-secondary);background:color-mix(in oklab, var(--surface-elevated) 90%, transparent);text-align:center;opacity:0;transform:scale(clamp(.8, var(--ms-cam-scale,1), 1));transform-origin:top;border-radius:9px;padding:3px 9px;font-size:10px;font-style:italic;font-weight:400;line-height:1.45;transition:opacity .5s}.ms-canvas[data-phase=settled] .ms-synthesis-line{opacity:1;transition-delay:.9s}.ms-canvas[data-phase=settled] .ms-center-question{font-size:12.5px;font-weight:600}@keyframes ms-card-settle-glow{0%{box-shadow:0 0 #0000}35%{box-shadow:0 0 0 3px color-mix(in oklab, var(--ms-kind-color,var(--insight)) 28%, transparent)}to{box-shadow:0 2px 8px #00000014}}.ms-canvas[data-revealing=true] .ms-world .ms-card[data-status=stable]{animation:.35s forwards ms-card-in,.7s forwards ms-card-settle-glow;animation-delay:calc(var(--ms-i,0) * 40ms + .2s), calc(var(--ms-i,0) * 40ms + .2s)}@keyframes ms-thread-draw{0%{stroke-dashoffset:1px;opacity:.2}to{stroke-dashoffset:0;opacity:.7}}.ms-canvas[data-revealing=true] .ms-thread[data-hero=true]{stroke-dasharray:1;stroke-dashoffset:1px;animation:.8s .6s forwards ms-thread-draw}.ms-canvas[data-revealing=true] .ms-actions{opacity:0;animation:.4s 1.2s forwards ms-actions-rise}@keyframes ms-actions-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.ms-unsaid-actions{gap:6px;margin-top:8px;display:flex}.ms-unsaid-btn{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-default);color:var(--text-secondary);cursor:pointer;text-align:center;white-space:nowrap;flex:1;padding:4px 8px;font-size:10px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.ms-unsaid-btn:hover{background:var(--surface-elevated);color:var(--text-primary)}.ms-unsaid-confirm:hover{border-color:var(--insight);color:var(--insight)}.ms-unsaid-dismiss:hover{border-color:var(--text-muted)}@media (prefers-reduced-motion:reduce){.ms-spoke,.ms-thread,.ms-link{stroke-dashoffset:0;animation:none}.ms-card,.ms-card[data-status=forming]{opacity:1;animation:none;transform:translate(-50%,-50%)scale(1)}.ms-spoke{opacity:.26}.ms-thread{opacity:.7}.ms-link{opacity:.4}.ms-card[data-status=forming]{opacity:.65;transform:translate(-50%,-50%)scale(.97)}.ms-card-quote,.ms-actions{transition:none}.ms-tension-callout,.ms-plan,.ms-kept{animation:none}.ms-signal-chip,.ms-canvas[data-revealing=true] .ms-world .ms-card[data-status=stable]{opacity:1;animation:none}.ms-canvas[data-revealing=true] .ms-thread[data-hero=true]{opacity:.7;stroke-dashoffset:0;animation:none}.ms-canvas[data-revealing=true] .ms-actions{opacity:1;animation:none;transform:none}}.ms-world{transform-origin:0 0;will-change:transform;--ms-counter:clamp(1, calc(1 / var(--ms-cam-scale,1)), 1.6);width:1000px;height:700px;transition:transform 1.1s cubic-bezier(.22,.9,.3,1);position:absolute;top:0;left:0}.ms-canvas .ms-center{top:50%}.ms-world .ms-spoke,.ms-world .ms-thread,.ms-world .ms-link{vector-effect:non-scaling-stroke}.ms-world .ms-card{transform:translate(-50%, -50%) scale(var(--ms-counter));transition:transform 1.1s cubic-bezier(.22,.9,.3,1),box-shadow .2s}.ms-world .ms-card[data-status=forming]{transform:translate(-50%, -50%) scale(calc(var(--ms-counter) * .97))}.ms-world .ms-card{animation-name:ms-card-in-world}.ms-world .ms-card[data-status=forming]{animation-name:ms-card-forming-in-world}@keyframes ms-card-in-world{to{opacity:1;transform:translate(-50%, -50%) scale(var(--ms-counter))}}@keyframes ms-card-forming-in-world{to{opacity:.65;transform:translate(-50%, -50%) scale(calc(var(--ms-counter) * .97))}}.ms-world .ms-cluster-label{transform:translate(-50%, -50%) scale(var(--ms-counter));animation-name:ms-cluster-rise-in-world}@keyframes ms-cluster-rise-in-world{0%{opacity:0;transform:translate(-50%, -42%) scale(var(--ms-counter))}to{opacity:.85;transform:translate(-50%, -50%) scale(var(--ms-counter))}}@media (prefers-reduced-motion:reduce){.ms-world{transition:none}.ms-world .ms-card{transition:box-shadow .2s}}
|
|
@@ -1 +0,0 @@
|
|
|
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{i as r,n as i,o as a}from"./notes-B6eX5XWk.js";import{t as o}from"./registry-DLyrLfe-.js";import{t as s}from"./pageVisibility-BxUVsw7Z.js";var c=t(),l=e(),u=n(),d=10,f=5,p=1500,m=60,h=1.5;function g(e){return`${Math.floor(e/60)}:${(e%60).toString().padStart(2,`0`)}`}function _(e){return e instanceof HTMLElement?e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e.isContentEditable:!1}var v=[{keys:`→ / Space / Page Down`,action:`Next slide`},{keys:`← / Page Up`,action:`Previous slide`},{keys:`Home / End`,action:`First / last slide`},{keys:`0–9, then Enter`,action:`Jump to a slide number`},{keys:`B`,action:`Blackout the screen`},{keys:`W`,action:`Whiteout the screen`},{keys:`F`,action:`Toggle fullscreen`},{keys:`O or G`,action:`Overview — every slide at once`},{keys:`S`,action:`Presenter notes`},{keys:`R`,action:`Reset the timer`},{keys:`X`,action:`Skip this slide for this run (restore it from the overview)`},{keys:`?`,action:`This help`},{keys:`Esc`,action:`Close the topmost panel — or end the show`}];function ee(e){let t=(0,c.c)(24),{slides:n,skipped:i,skin:a,selected:o,presentedIndex:s,onJump:l,onToggleSkip:d,onClose:f}=e,p;t[0]===f?p=t[1]:(p=(0,u.jsx)(`button`,{type:`button`,className:`preso-overview-close`,onClick:f,"aria-label":`Close overview`,children:`×`}),t[0]=f,t[1]=p);let m;t[2]===i.size?m=t[3]:(m=i.size>0&&(0,u.jsxs)(`div`,{className:`preso-overview-skipnote`,children:[i.size,` slide`,i.size===1?``:`s`,` skipped this run`]}),t[2]=i.size,t[3]=m);let h;if(t[4]!==l||t[5]!==d||t[6]!==s||t[7]!==o||t[8]!==a||t[9]!==n){let e;t[11]!==l||t[12]!==d||t[13]!==s||t[14]!==o||t[15]!==a||t[16]!==n.length?(e=(e,t)=>{let i=s(t),c=i<0;return(0,u.jsxs)(`div`,{className:`preso-overview-cell`+(!c&&i===o?` is-selected`:``)+(c?` is-skipped`:``),children:[(0,u.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":!c&&i===o,className:`preso-overview-open`,"aria-label":c?`Slide ${t+1}, skipped — restore it`:`Go to slide ${t+1}`,onClick:()=>c?d(e.id):l(i),children:[(0,u.jsx)(`span`,{className:`preso-overview-thumb`,children:(0,u.jsx)(r,{slide:e,skin:a,ctx:{index:t,total:n.length}})}),(0,u.jsx)(`span`,{className:`preso-overview-num`,children:t+1})]}),(0,u.jsx)(`button`,{type:`button`,className:`preso-overview-skip`,"aria-label":c?`Restore slide ${t+1}`:`Skip slide ${t+1} this run`,title:c?`Restore`:`Skip for this run`,onClick:()=>d(e.id),children:c?`↩`:`×`})]},e.id)},t[11]=l,t[12]=d,t[13]=s,t[14]=o,t[15]=a,t[16]=n.length,t[17]=e):e=t[17],h=n.map(e),t[4]=l,t[5]=d,t[6]=s,t[7]=o,t[8]=a,t[9]=n,t[10]=h}else h=t[10];let g;t[18]===h?g=t[19]:(g=(0,u.jsx)(`div`,{className:`preso-overview-grid`,children:h}),t[18]=h,t[19]=g);let _;return t[20]!==p||t[21]!==m||t[22]!==g?(_=(0,u.jsxs)(`div`,{className:`preso-overview`,role:`listbox`,"aria-label":`All slides`,children:[p,m,g]}),t[20]=p,t[21]=m,t[22]=g,t[23]=_):_=t[23],_}function te(e){let t=(0,c.c)(6),{onClose:n}=e,r;t[0]===n?r=t[1]:(r=(0,u.jsx)(`button`,{type:`button`,className:`preso-help-close`,onClick:n,"aria-label":`Close help`,children:`×`}),t[0]=n,t[1]=r);let i;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,u.jsx)(`h2`,{className:`preso-help-title`,children:`Keyboard shortcuts`}),t[2]=i):i=t[2];let a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,u.jsx)(`dl`,{className:`preso-help-list`,children:v.map(y)}),t[3]=a):a=t[3];let o;return t[4]===r?o=t[5]:(o=(0,u.jsxs)(`div`,{className:`preso-help`,role:`dialog`,"aria-modal":`true`,"aria-label":`Keyboard shortcuts`,children:[r,i,a]}),t[4]=r,t[5]=o),o}function y(e){return(0,u.jsxs)(`div`,{className:`preso-help-row`,children:[(0,u.jsx)(`dt`,{children:e.keys}),(0,u.jsx)(`dd`,{children:e.action})]},e.keys)}function ne(e){let t=(0,c.c)(3),{mode:n,onDismiss:r}=e,i=`preso-curtain preso-curtain-${n}`,a;return t[0]!==r||t[1]!==i?(a=(0,u.jsx)(`div`,{className:i,role:`presentation`,onClick:r}),t[0]=r,t[1]=i,t[2]=a):a=t[2],a}function b({spec:e,question:t,narration:n,skinId:c,autoAdvanceMs:v,onExit:y}){let[b]=(0,l.useState)(()=>Date.now()),x=(0,l.useMemo)(()=>a(e?[e]:[],b),[e,b]).slides,[S,re]=(0,l.useState)(new Set),C=(0,l.useMemo)(()=>x.filter(e=>!S.has(e.id)),[x,S]),w=(0,l.useCallback)(e=>{re(t=>{let n=new Set(t);return n.has(e)?n.delete(e):x.filter(e=>!t.has(e.id)).length>1&&n.add(e),n})},[x]),T=o[c],[E,D]=(0,l.useState)(0),[O,k]=(0,l.useState)(!1),[ie,ae]=(0,l.useState)(0),[A,j]=(0,l.useState)(null),[M,N]=(0,l.useState)(!1),[P,F]=(0,l.useState)(0),[I,L]=(0,l.useState)(!1),[R,z]=(0,l.useState)(``),oe=(0,l.useRef)(null),B=(0,l.useRef)(null),V=(0,l.useRef)(null),H=C.length,U=(0,l.useCallback)(e=>Math.max(0,Math.min(H-1,e)),[H]),W=(0,l.useCallback)(()=>D(e=>U(e+1)),[U]),G=(0,l.useCallback)(()=>D(e=>U(e-1)),[U]),K=(0,l.useCallback)(()=>ae(0),[]),q=(0,l.useCallback)(()=>{let e=oe.current;e&&(document.fullscreenElement===e?document.exitFullscreen().catch(()=>{}):e.requestFullscreen?.().catch(()=>{}))},[]);(0,l.useEffect)(()=>()=>{B.current!==null&&window.clearTimeout(B.current)},[]);let se=(0,l.useCallback)(e=>{z(t=>t+e),B.current!==null&&window.clearTimeout(B.current),B.current=window.setTimeout(()=>z(``),p)},[]),ce=(0,l.useCallback)(()=>{B.current!==null&&(window.clearTimeout(B.current),B.current=null),R&&D(U(Number(R)-1)),z(``)},[R,U]);(0,l.useEffect)(()=>{let e=window.setInterval(()=>{s()||ae(e=>e+1)},1e3);return()=>window.clearInterval(e)},[]),(0,l.useEffect)(()=>{if(!v)return;let e=window.setInterval(()=>{s()||D(e=>e>=H-1?e:U(e+1))},v);return()=>window.clearInterval(e)},[v,H,U]),(0,l.useEffect)(()=>{let e=e=>{if(!_(e.target)){if(e.key===`Escape`){I?(e.preventDefault(),e.stopPropagation(),L(!1)):M?(e.preventDefault(),e.stopPropagation(),N(!1)):A?(e.preventDefault(),e.stopPropagation(),j(null)):O?(e.preventDefault(),e.stopPropagation(),k(!1)):y();return}if(I){e.key===`?`&&(e.preventDefault(),L(!1));return}if(M){if(e.key===`ArrowRight`){e.preventDefault(),F(e=>Math.min(H-1,e+1));return}if(e.key===`ArrowLeft`){e.preventDefault(),F(e=>Math.max(0,e-1));return}if(e.key===`ArrowDown`){e.preventDefault(),F(e=>Math.min(H-1,e+f));return}if(e.key===`ArrowUp`){e.preventDefault(),F(e=>Math.max(0,e-f));return}if(e.key===`Enter`){e.preventDefault(),D(P),N(!1);return}}if(R&&!/^[0-9]$/.test(e.key)&&e.key!==`Enter`&&(B.current!==null&&(window.clearTimeout(B.current),B.current=null),z(``)),e.key===`ArrowRight`||e.key===`PageDown`||e.key===` `)e.preventDefault(),j(null),W();else if(e.key===`ArrowLeft`||e.key===`PageUp`)e.preventDefault(),j(null),G();else if(e.key===`Home`)e.preventDefault(),j(null),D(0);else if(e.key===`End`)e.preventDefault(),j(null),D(H-1);else if(e.key===`s`||e.key===`S`)k(e=>!e);else if(e.key===`b`||e.key===`B`)j(e=>e===`black`?null:`black`);else if(e.key===`w`||e.key===`W`)j(e=>e===`white`?null:`white`);else if(e.key===`f`||e.key===`F`)q();else if(e.key===`o`||e.key===`O`||e.key===`g`||e.key===`G`)M?N(!1):(F(U(E)),N(!0));else if(e.key===`?`)L(e=>!e);else if(e.key===`x`||e.key===`X`){let e=C[U(E)];e&&w(e.id)}else e.key===`r`||e.key===`R`?K():e.key===`Enter`?R&&(e.preventDefault(),ce()):/^[0-9]$/.test(e.key)&&(e.preventDefault(),se(e.key))}};return window.addEventListener(`keydown`,e,{capture:!0}),()=>window.removeEventListener(`keydown`,e,{capture:!0})},[W,G,H,U,E,y,I,M,P,A,O,R,q,K,se,ce,C,w]);let J=U(E),Y=C[J],X=(0,l.useRef)(J),le=J>=X.current?`next`:`prev`,[Z,Q]=(0,l.useState)(null);(0,l.useEffect)(()=>{if(X.current===J)return;Q(X.current),X.current=J;let e=window.setTimeout(()=>Q(null),380);return()=>window.clearTimeout(e)},[J]);let ue=Y?.notes??(Y?.kind===`cover`?n||t||``:i(Y)),$=C[J+1],de=$?i($):`— end —`,fe=H?Math.round((J+1)/H*100):0,pe=(0,l.useCallback)(e=>{(e.pointerType===`touch`||e.pointerType===`pen`)&&(e.target instanceof Element&&e.target.closest(`button`)||(V.current={x:e.clientX,y:e.clientY}))},[]),me=(0,l.useCallback)(e=>{let t=V.current;if(V.current=null,!t||e.pointerType!==`touch`&&e.pointerType!==`pen`)return;let n=e.clientX-t.x,r=e.clientY-t.y;Math.abs(n)<m||Math.abs(n)<Math.abs(r)*h||(j(null),n<0?W():G())},[W,G]),he=A?A===`black`?`Screen blacked out.`:`Screen whited out.`:H?`Slide ${J+1} of ${H}: ${i(Y)||Y?.kind||``}`:``;return(0,u.jsxs)(`div`,{className:`preso-deck`,role:`region`,"aria-label":`Presentation`,style:{background:`#0a0c11`},ref:oe,children:[(0,u.jsx)(`div`,{className:`preso-sr`,"aria-live":`polite`,"aria-atomic":`true`,children:he}),(0,u.jsx)(`div`,{className:`preso-stage`,onPointerDown:pe,onPointerUp:me,children:(0,u.jsxs)(`div`,{className:`preso-skinframe`,style:{aspectRatio:`16 / 9`,width:`min(86vw, calc(84vh * 16 / 9))`,margin:`auto`,position:`relative`,borderRadius:12,overflow:`hidden`,border:`1px solid rgba(255,255,255,.08)`,boxShadow:`0 30px 90px rgba(0,0,0,.55)`},children:[Z!==null&&Z!==J&&C[Z]&&(0,u.jsx)(`div`,{className:`preso-slide-ghost`,"aria-hidden":!0,children:(0,u.jsx)(r,{slide:C[Z],skin:T,ctx:{index:Z,total:H}})}),Y&&(0,u.jsx)(`div`,{className:`preso-slide-anim preso-dir-${le}`,children:(0,u.jsx)(r,{slide:Y,skin:T,ctx:{index:J,total:H}})},J)]})}),(0,u.jsx)(`button`,{type:`button`,className:`preso-zone preso-zone-prev`,onClick:G,"aria-label":`Previous slide`,disabled:E===0}),(0,u.jsx)(`button`,{type:`button`,className:`preso-zone preso-zone-next`,onClick:W,"aria-label":`Next slide`,disabled:E>=H-1}),(0,u.jsxs)(`div`,{className:`preso-rail`,children:[R&&(0,u.jsxs)(`span`,{className:`preso-jumpchip`,role:`status`,children:[(0,u.jsx)(`span`,{"aria-hidden":!0,children:`→`}),` `,R]}),(0,u.jsxs)(`span`,{className:`preso-count`,children:[J+1,` / `,H]}),(0,u.jsx)(`button`,{type:`button`,className:`preso-jump`,onClick:()=>D(0),"aria-label":`First slide`,disabled:J===0,children:`⤒`}),H<=d&&(0,u.jsx)(`div`,{className:`preso-dots`,role:`presentation`,children:C.map((e,t)=>(0,u.jsx)(`button`,{type:`button`,className:`preso-dot`+(t===J?` is-active`:``),onClick:()=>D(t),"aria-label":`Go to slide ${t+1}`,"aria-current":t===J},t))}),(0,u.jsx)(`button`,{type:`button`,className:`preso-jump`,onClick:()=>D(H-1),"aria-label":`Last slide`,disabled:J>=H-1,children:`⤓`}),(0,u.jsx)(`button`,{type:`button`,className:`preso-notes-btn`+(O?` is-on`:``),onClick:()=>k(e=>!e),"aria-pressed":O,title:`Presenter notes (S)`,children:`Notes`})]}),O&&(0,u.jsxs)(`aside`,{className:`preso-presenter`,"aria-label":`Presenter notes`,children:[(0,u.jsxs)(`div`,{className:`preso-presenter-head`,children:[(0,u.jsx)(`button`,{type:`button`,className:`preso-timer`,onClick:K,title:`Reset timer (R)`,children:g(ie)}),(0,u.jsxs)(`span`,{className:`preso-presenter-pct`,children:[fe,`%`]}),(0,u.jsx)(`button`,{type:`button`,className:`preso-presenter-close`,onClick:()=>k(!1),"aria-label":`Hide presenter notes`,children:`×`})]}),(0,u.jsx)(`div`,{className:`preso-presenter-progress`,"aria-hidden":!0,children:(0,u.jsx)(`span`,{style:{width:`${fe}%`}})}),(0,u.jsxs)(`p`,{className:`preso-presenter-slide`,children:[J+1,`. `,i(Y)||Y?.kind]}),(0,u.jsx)(`p`,{className:`preso-presenter-notes`,children:ue||`No notes for this slide.`}),(0,u.jsxs)(`div`,{className:`preso-presenter-next`,children:[(0,u.jsx)(`span`,{className:`preso-presenter-next-label`,children:`Next`}),$?(0,u.jsx)(`div`,{className:`preso-presenter-thumb`,children:(0,u.jsx)(r,{slide:$,skin:T,ctx:{index:J+1,total:H}})}):null,(0,u.jsx)(`span`,{className:`preso-presenter-next-text`,children:de})]})]}),A&&(0,u.jsx)(ne,{mode:A,onDismiss:()=>j(null)}),M&&(0,u.jsx)(ee,{slides:x,skipped:S,skin:T,selected:P,presentedIndex:e=>S.has(x[e].id)?-1:x.slice(0,e).filter(e=>!S.has(e.id)).length,onJump:e=>{D(e),N(!1)},onToggleSkip:w,onClose:()=>N(!1)}),I&&(0,u.jsx)(te,{onClose:()=>L(!1)})]})}export{b as PresentationDeck};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PrismWorkbench-DHLvpguj.js","assets/compiler-runtime-qQQXpJgv.js","assets/rolldown-runtime-DkW27tQK.js","assets/react-BZJXY1be.js","assets/jsx-runtime-DeHZSEgm.js","assets/useLiveConfig-Cpy0_E_-.js","assets/info-CiqHR5cs.js","assets/keyVault-Aw5Y2PjT.js","assets/providers-BovElgRL.js","assets/http-Lar_UMKb.js","assets/blockTypes-DUDdP3pB.js","assets/attachments-BW-vki-E.js","assets/PrismOverlay-DJDGPGxo.js","assets/preload-helper-CiWYd9n-.js","assets/cachedImport-DW0gP14h.js","assets/preloadableLazy-MIX1ApBW.js","assets/lazyRetry-D50B1UMY.js","assets/index-zIa6h_8b.js","assets/useInView-CXTOAEV3.js","assets/coreIcons-DDTChE1H.js","assets/theme-7IrMJ70_.js","assets/index-DrzNHwlO.css","assets/useFocusTrap-DBtkeyRy.js","assets/toast-BBNs2h3L.js","assets/sourceHost-BV3t2XDb.js","assets/penStrokes-DlHnO9xE.js","assets/gesture-Bouqjr3g.js","assets/types-CaO6xOn5.js","assets/verbatim-DBTj9sPD.js","assets/officeDoc-GU6Cssjf.js","assets/csv-DAqzYXUs.js","assets/pen-DNMslo3e.js","assets/streamParse-B-Gjwa9T.js","assets/citation-BsSvaaer.js","assets/search-ZN7v_P5B.js","assets/PrismOverlay-BTfAicBt.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{n as a,t as o}from"./preloadableLazy-MIX1ApBW.js";import{n as s,t as c}from"./theme-7IrMJ70_.js";import{k as l}from"./index-zIa6h_8b.js";import{n as u}from"./icons-gLFQTv74.js";import{t as d}from"./FeatureUseNotice-Dc3GNBvy.js";import{t as ee}from"./homeTarget-CsO8nY7z.js";import{a as te,s as ne,t as re,u as ie}from"./attachments-BW-vki-E.js";/* empty css */var ae=t(),f=e(),p=n();r();var m=o(()=>i(()=>import(`./PrismWorkbench-DHLvpguj.js`).then(e=>({default:e.PrismWorkbench})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]))),h=m.Component,g={"too-large":`File is too large. Documents up to 40 MB, images up to 10 MB.`,unsupported:`Unsupported file type. Try a PDF, Word doc, spreadsheet, image, or text file.`};function _(){let e=(0,ae.c)(39),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=ee(),e[0]=t):t=e[0];let n=t,r;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],e[1]=r):r=e[1],(0,f.useEffect)(ue,r);let i;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=[],e[2]=i):i=e[2];let[o,s]=(0,f.useState)(i),[c,_]=(0,f.useState)(null),[y,b]=(0,f.useState)(!1),[x,S]=(0,f.useState)(!1),[C,w]=(0,f.useState)(null),T=(0,f.useRef)(null),E;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(E=async e=>{if(!e||e.length===0)return;m.preload().catch(le),w(null);let t=Array.from(e).flatMap(e=>{let t=te(e);return t?(w(g[t]),[]):[e]});t.length>0&&s(e=>{let n=new Set(e.map(ce));return[...e,...t.filter(e=>!n.has(e.name))]}),T.current&&(T.current.value=``)},e[3]=E):E=e[3];let D=E,O;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(O=e=>{s(t=>t.filter(t=>t.name!==e))},e[4]=O):O=e[4];let de=O,k;e[5]!==y||e[6]!==o?(k=async()=>{if(o.length===0||y)return;b(!0),w(null),m.preload().catch(se);let e=await Promise.all(o.map(ie)),t=e.flatMap(oe);t.length===o.length?_(t):w(g[e.find(v)?.error??`unsupported`]),b(!1)},e[5]=y,e[6]=o,e[7]=k):k=e[7];let A=k,j;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(j=e=>{e.preventDefault(),S(!1),D(e.dataTransfer.files)},e[8]=j):j=e[8];let M=j,N;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(N=e=>{e.preventDefault(),S(!0)},e[9]=N):N=e[9];let P=N,F;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(F=e=>{e.currentTarget.contains(e.relatedTarget)||S(!1)},e[10]=F):F=e[10];let I=F;if(c){let t;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(t=()=>_(null),e[11]=t):t=e[11];let n;return e[12]===c?n=e[13]:(n=(0,p.jsx)(l,{label:`Prism workbench`,overlay:!0,children:(0,p.jsx)(h,{pdf:c,onClose:t})}),e[12]=c,e[13]=n),n}let L;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(L=()=>{window.location.hash=n.href},e[14]=L):L=e[14];let R;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,p.jsxs)(`header`,{className:`prism-app-header`,children:[(0,p.jsx)(`button`,{type:`button`,className:`prism-app-back`,onClick:L,"aria-label":`Back to ${n.label}`,title:`Back to ${n.label}`,children:(0,p.jsx)(u.chevL,{})}),(0,p.jsx)(`span`,{className:`prism-app-brand`,children:`Prism`})]}),e[15]=R):R=e[15];let z;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,p.jsxs)(`div`,{className:`prism-app-hero`,children:[(0,p.jsx)(`h1`,{className:`prism-app-title`,children:`Understand any document`}),(0,p.jsx)(`p`,{className:`prism-app-lede`,children:`Drop a PDF, Word doc, spreadsheet, or text file. Prism maps every claim, finding, and risk — every card cites its exact source.`}),(0,p.jsx)(d,{kind:`upload`})]}),e[16]=z):z=e[16];let B=`prism-dropzone${x?` prism-dropzone--over`:``}`,V;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(V=()=>T.current?.click(),e[17]=V):V=e[17];let H,U;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(H=e=>{(e.key===`Enter`||e.key===` `)&&T.current?.click()},U=a(m.preload),e[18]=H,e[19]=U):(H=e[18],U=e[19]);let W,G;e[20]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,p.jsx)(`input`,{ref:T,type:`file`,accept:re,multiple:!0,className:`prism-dropzone-input`,onChange:e=>void D(e.target.files),"aria-hidden":`true`}),G=(0,p.jsx)(u.upload,{}),e[20]=W,e[21]=G):(W=e[20],G=e[21]);let K=x?`Drop to add`:o.length>0?`Drop more files or click to add`:`Drop files or click to browse`,q;e[22]===K?q=e[23]:(q=(0,p.jsx)(`span`,{className:`prism-dropzone-label`,children:K}),e[22]=K,e[23]=q);let J;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,p.jsx)(`span`,{className:`prism-dropzone-hint`,children:`PDF · Word · Excel · PowerPoint · Image · Text`}),e[24]=J):J=e[24];let Y;e[25]!==B||e[26]!==q?(Y=(0,p.jsxs)(`div`,{className:B,onDrop:M,onDragOver:P,onDragLeave:I,onClick:V,role:`button`,tabIndex:0,"aria-label":`Upload a document`,onKeyDown:H,...U,children:[W,G,q,J]}),e[25]=B,e[26]=q,e[27]=Y):Y=e[27];let X;e[28]===C?X=e[29]:(X=C&&(0,p.jsx)(`p`,{className:`prism-app-error`,role:`alert`,children:C}),e[28]=C,e[29]=X);let Z;e[30]!==A||e[31]!==y||e[32]!==o?(Z=o.length>0&&(0,p.jsxs)(`div`,{className:`prism-staged`,children:[(0,p.jsx)(`p`,{className:`prism-staged-label`,children:o.length===1?`1 document ready`:`${o.length} documents ready`}),(0,p.jsx)(`ul`,{className:`prism-staged-list`,children:o.map(e=>(0,p.jsxs)(`li`,{className:`prism-staged-item`,children:[(0,p.jsx)(u.doc,{}),(0,p.jsx)(`span`,{className:`prism-staged-name`,children:ne({name:e.name,mime:e.type,data:``,size:e.size})}),(0,p.jsx)(`button`,{type:`button`,className:`prism-staged-remove`,onClick:t=>{t.stopPropagation(),de(e.name)},"aria-label":`Remove ${e.name}`,children:(0,p.jsx)(u.x,{})})]},e.name))}),(0,p.jsxs)(`button`,{type:`button`,className:`prism-confirm-btn`,onClick:()=>void A(),disabled:y,...a(m.preload),children:[y?`Preparing documents…`:`Open in Prism`,(0,p.jsx)(u.chevR,{})]})]}),e[30]=A,e[31]=y,e[32]=o,e[33]=Z):Z=e[33];let Q;e[34]===Symbol.for(`react.memo_cache_sentinel`)?(Q=(0,p.jsxs)(`ul`,{className:`prism-app-features`,children:[(0,p.jsxs)(`li`,{children:[(0,p.jsx)(`strong`,{children:`Maps claims spatially`}),` — regions, findings, and risks laid out so you can see the whole shape at once.`]}),(0,p.jsxs)(`li`,{children:[(0,p.jsx)(`strong`,{children:`Every card cites its source`}),` — verbatim quote + page number, always. If Mavéa can't cite it, the card doesn't exist.`]}),(0,p.jsxs)(`li`,{children:[(0,p.jsx)(`strong`,{children:`Ask the whole document`}),` — highlight any claim and ask a follow-up; the answer lights up the exact lines it came from.`]})]}),e[34]=Q):Q=e[34];let $;return e[35]!==Y||e[36]!==X||e[37]!==Z?($=(0,p.jsxs)(`div`,{className:`prism-app`,children:[R,(0,p.jsxs)(`main`,{className:`prism-app-main`,children:[z,Y,X,Z,Q]})]}),e[35]=Y,e[36]=X,e[37]=Z,e[38]=$):$=e[38],$}function v(e){return e.error}function oe(e){return e.attachment?[e.attachment]:[]}function se(){}function ce(e){return e.name}function le(){}function ue(){return c(s())}export{_ as PrismApp};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.prism-ask{z-index:25;box-sizing:border-box;background:color-mix(in oklab, var(--surface-elevated) 92%, transparent);border:1px solid var(--line-strong);width:min(340px,42vw);max-height:min(60%,520px);box-shadow:var(--shadow-floating);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;flex-direction:column;animation:.32s both prism-ask-in;display:flex;position:absolute;bottom:16px;left:16px;overflow:hidden}@keyframes prism-ask-in{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){.prism-ask{animation:none}}.prism-ask-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.prism-ask-title{letter-spacing:.01em;color:var(--text-primary);align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.prism-ask-spark{background:var(--presence);width:8px;height:8px;box-shadow:0 0 10px color-mix(in oklab, var(--presence) 70%, transparent);border-radius:50%}.prism-ask-min{appearance:none;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:13px;line-height:1}.prism-ask-min:hover{color:var(--text-primary);background:var(--surface-glass)}.prism-ask-thread{flex-direction:column;flex:1;gap:14px;min-height:0;padding:12px;display:flex;overflow-y:auto}.prism-ask-empty{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.5}.prism-ask-turn{flex-direction:column;gap:7px;display:flex}.prism-ask-q{max-width:92%;color:var(--text-primary);background:color-mix(in oklab, var(--presence) 16%, var(--surface-elevated));border:1px solid color-mix(in oklab, var(--presence) 28%, transparent);border-radius:12px 12px 3px;align-self:flex-end;margin:0;padding:7px 11px;font-size:12.5px;line-height:1.4}.prism-ask-pending{color:var(--text-secondary);align-items:center;gap:8px;margin:0;font-size:12px;display:inline-flex}.prism-ask-dot{background:var(--presence);border-radius:50%;width:7px;height:7px;animation:1.1s ease-in-out infinite prism-ask-pulse}@keyframes prism-ask-pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.prism-ask-dot{animation:none}}.prism-ask-err{color:color-mix(in oklab, var(--danger) 80%, var(--text-primary));margin:0;font-size:12px}.prism-ask-a{flex-direction:column;gap:8px;display:flex}.prism-ask-cover{letter-spacing:.06em;text-transform:uppercase;color:color-mix(in oklab, var(--cover-color) 85%, #fff);background:color-mix(in oklab, var(--cover-color) 14%, transparent);border:1px solid color-mix(in oklab, var(--cover-color) 34%, transparent);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:3px 9px;font-size:9.5px;font-weight:600;display:inline-flex}.prism-ask-cover[data-coverage=none]{border-style:dashed}.prism-ask-cover-dot{background:var(--cover-color);border-radius:50%;width:6px;height:6px}.prism-ask-text{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.prism-ask-spans{flex-wrap:wrap;gap:6px;display:flex}.prism-ask-chip{appearance:none;cursor:pointer;font:inherit;letter-spacing:.02em;color:color-mix(in oklab, var(--presence) 70%, var(--text-secondary));background:color-mix(in oklab, var(--presence) 10%, var(--surface-elevated));border:1px solid color-mix(in oklab, var(--presence) 34%, transparent);border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.prism-ask-chip:hover{background:color-mix(in oklab, var(--presence) 22%, var(--surface-elevated));color:var(--text-primary)}.prism-ask-chip.is-active{background:color-mix(in oklab, var(--presence) 32%, var(--surface-elevated));border-color:var(--presence);color:var(--text-primary)}.prism-ask-outside{border:1px dashed var(--line-strong);background:color-mix(in oklab, var(--insight) 6%, var(--surface-deep));border-radius:10px;flex-direction:column;gap:5px;margin-top:2px;padding:8px 10px;display:flex}.prism-ask-outside-tag{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:8.5px;font-weight:700}.prism-ask-outside-fact{color:var(--text-secondary);margin:0;font-size:12.5px;line-height:1.45}.prism-ask-outside-cite{color:color-mix(in oklab, var(--insight) 60%, var(--text-secondary));font-size:11.5px;font-style:italic;line-height:1.4;text-decoration:none}.prism-ask-outside-cite:hover{text-decoration:underline}.prism-ask-outside-host{color:var(--text-muted);font-style:normal}.prism-ask-form{border-top:1px solid var(--line);background:var(--surface-deep);align-items:flex-end;gap:8px;padding:10px;display:flex}.prism-ask-input{resize:none;max-height:96px;font:inherit;color:var(--text-primary);background:var(--surface-elevated);border:1px solid var(--line-strong);border-radius:9px;flex:1;padding:8px 10px;font-size:13px;line-height:1.4}.prism-ask-input::placeholder{color:var(--text-muted)}.prism-ask-input:focus{border-color:color-mix(in oklab, var(--presence) 55%, transparent);box-shadow:0 0 0 3px color-mix(in oklab, var(--presence) 18%, transparent);outline:none}.prism-ask-send{appearance:none;cursor:pointer;border:1px solid color-mix(in oklab, var(--presence) 40%, transparent);background:color-mix(in oklab, var(--presence) 22%, var(--surface-elevated));width:34px;height:34px;color:var(--text-primary);border-radius:9px;flex:none;font-size:15px;line-height:1}.prism-ask-send:hover:not(:disabled){background:color-mix(in oklab, var(--presence) 36%, var(--surface-elevated))}.prism-ask-send:disabled{opacity:.4;cursor:default}@media (width<=560px){.prism-ask{width:auto;left:12px;right:12px}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.prism-scrim{z-index:52;background:rgba(var(--scrim-rgb), .72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:center;align-items:center;padding:2.5vh 2.5vw;display:flex;position:fixed;inset:0}.prism-panel{border-radius:var(--r-xl);background:var(--surface-deep);border:1px solid var(--line);width:min(1700px,100%);height:95vh;box-shadow:var(--shadow-modal);color:var(--text-primary);flex-direction:column;display:flex;overflow:hidden}.prism-scrim[data-expanded=true]{padding:0}.prism-scrim[data-expanded=true] .prism-panel{border:none;border-radius:0;width:100%;height:100%}.prism-head{background:var(--surface-deep);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:13px 20px;display:flex}.prism-legend{background:var(--surface-deep);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 16px;padding:9px 20px;display:flex}.prism-legend-item{align-items:center;gap:7px;min-width:0;display:inline-flex}.prism-legend-swatch{border-radius:3px;flex:none;width:10px;height:10px}.prism-legend-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-size:12px;overflow:hidden}.prism-legend-count{font-family:var(--font-data);color:var(--text-muted);border-radius:var(--r-full);background:var(--surface-glass);padding:1px 6px;font-size:9.5px}.prism-legend-cross{font-family:var(--font-data);letter-spacing:.04em;color:color-mix(in oklab, var(--danger) 80%, white 20%);margin-left:auto;font-size:10px}.prism-file{min-width:0;color:var(--text-muted);align-items:center;gap:9px;display:flex}.prism-file-name{font-family:var(--font-data);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;min-width:42px;font-size:11px;overflow:hidden}.prism-file-pages{font-family:var(--font-data);color:var(--text-muted);flex:none;font-size:11px}.prism-head-right{flex:none;align-items:center;gap:14px;display:flex}.prism-phase{font-family:var(--font-data);letter-spacing:.14em;color:var(--text-muted);align-items:center;gap:7px;font-size:10px;display:inline-flex}.prism-phase-dot{background:var(--presence);opacity:.35;border-radius:50%;width:6px;height:6px}.prism-phase[data-active=true] .prism-phase-dot{opacity:1;animation:1.5s ease-in-out infinite prism-pulse}@keyframes prism-pulse{0%,to{opacity:1}50%{opacity:.4}}.prism-replay,.prism-close{border:1px solid var(--line-strong);color:var(--text-secondary);cursor:pointer;font:inherit;background:0 0}.prism-replay{border-radius:var(--r-full);padding:6px 13px;font-size:11px;font-weight:600}.prism-replay:hover{color:var(--text-primary);border-color:var(--line-strong)}.prism-close{width:30px;height:30px;color:var(--text-muted);border-radius:50%;font-size:13px;line-height:1}.prism-close:hover{color:var(--text-primary);border-color:var(--line-strong)}.prism-split{flex:1;min-height:0;display:flex}.prism-stage{background:radial-gradient(ellipse 80% 72% at 50% 46%, var(--surface-elevated) 0%, var(--surface-deep) 100%);flex:1;min-width:0;position:relative;overflow:hidden}.prism-split[data-pdfonly=true] .prism-stage{display:none}.prism-divider{cursor:col-resize;background:var(--surface-deep);border-left:1px solid var(--line);touch-action:none;flex:none;justify-content:center;align-items:center;width:10px;display:flex}.prism-divider:hover,.prism-divider:focus-visible{background:color-mix(in oklab, var(--presence) 18%, var(--surface-deep));outline:none}.prism-divider-grip{background:var(--line-strong);border-radius:2px;width:2px;height:36px}.prism-divider:hover .prism-divider-grip,.prism-divider:focus-visible .prism-divider-grip{background:var(--presence)}.prism-page-wrap{width:var(--pdf-pct,44%);flex:none;min-width:0;min-height:0;display:flex;position:relative}@media (width<=720px){.prism-split[data-split=true] .prism-stage,.prism-divider{display:none}.prism-page-wrap{width:100%}}.prism-page-nav{color:var(--text-secondary);flex:none;align-items:center;gap:6px;font-size:11px;display:inline-flex}.prism-page-nav-btn{border:1px solid var(--line-strong);width:22px;height:22px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:background .12s;display:inline-flex}.prism-page-nav-btn:disabled{opacity:.3;cursor:default}.prism-page-nav-btn:not(:disabled):hover{background:var(--surface-elevated)}.prism-page-nav-at{white-space:nowrap;font-family:var(--font-data);letter-spacing:.04em}.prism-page-nav-of{color:var(--text-muted)}.prism-page{background:var(--surface-deep);flex-direction:column;flex:1;min-width:0;min-height:0;animation:.32s cubic-bezier(.4,0,.2,1) both prism-page-in;display:flex}@keyframes prism-page-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.prism-page{animation:none}}.prism-page-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 16px;display:flex}.prism-page-tag{font-family:var(--font-data);letter-spacing:.12em;white-space:nowrap;font-size:9.5px;font-weight:600}.prism-page-title{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:600;overflow:hidden}.prism-page-zoom{border-radius:var(--r-sm);border:1px solid var(--line-strong);flex:none;margin-left:auto;display:inline-flex;overflow:hidden}.prism-page-zoom button{width:26px;height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:15px;line-height:1}.prism-page-zoom button:hover{background:var(--surface-glass);color:var(--text-primary)}.prism-page-zoom button+button{border-left:1px solid var(--line-strong)}.prism-page-close{border:1px solid var(--line-strong);width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;flex:none;font-size:12px;line-height:1}.prism-page-close:hover{color:var(--text-primary);border-color:var(--line-strong)}.prism-page-scroll{scrollbar-gutter:stable;flex:1;justify-content:center;align-items:flex-start;padding:16px;display:flex;position:relative;overflow:auto}.prism-page-scroll.is-pannable{cursor:grab}.prism-page-scroll.is-panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.prism-page-frame{flex:none;margin:auto;position:relative}.prism-page-holder{width:100%;height:100%;position:relative}.prism-page-canvas{border-radius:var(--r-sm);width:100%;height:100%;display:block;box-shadow:0 8px 28px #00000080}.prism-page-status{text-align:center;color:var(--text-muted);padding:40px 24px;font-size:13px;line-height:1.6}.prism-page-fallback{border:1px solid var(--line-strong);border-radius:var(--r-lg,18px);background:linear-gradient(135deg, color-mix(in srgb, var(--surface-elevated) 94%, var(--presence) 6%), var(--surface));width:min(560px,100% - 32px);color:var(--text-primary);gap:14px;margin:auto;padding:clamp(24px,5vw,44px);display:grid;box-shadow:0 18px 54px #0003}.prism-page-fallback-kicker{font-family:var(--font-data,var(--font));letter-spacing:.1em;text-transform:uppercase;color:var(--presence);font-size:11px;font-weight:650}.prism-page-fallback>strong{font-family:var(--font-display,var(--font));font-size:clamp(20px,3vw,28px);line-height:1.15}.prism-page-fallback blockquote,.prism-page-fallback p{font-family:var(--font-body,var(--font));color:var(--text-secondary);margin:0;font-size:clamp(15px,2vw,18px);line-height:1.65}.prism-page-fallback blockquote{border-left:3px solid color-mix(in srgb, var(--presence) 70%, transparent);padding-left:18px}.prism-page-fallback-note{color:var(--text-muted);font-size:12px;line-height:1.55}.prism-slide-figure{flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100%;margin:0;padding:16px;display:flex}.prism-slide-stage{flex:none;line-height:0;position:relative}.prism-slide-img{border-radius:var(--r-sm);border:1px solid var(--line);background:#fff;width:100%;height:100%;display:block}.prism-slide-quote{color:var(--text-primary);background:var(--surface-elevated);border-left:3px solid;border-radius:8px;flex-direction:column;align-self:stretch;gap:5px;padding:11px 14px;font-size:14px;line-height:1.5;display:flex}.prism-slide-quote-label{font-family:var(--font-data);letter-spacing:.08em;text-transform:uppercase;font-size:8.5px;font-weight:700}.prism-slide-unit{flex:none;margin:auto;position:relative}.prism-slide-frame{flex:none;margin:0;position:relative}.prism-slide-canvas{transform-origin:0 0;box-sizing:border-box;border-radius:var(--r-md);background:var(--surface-elevated);width:960px;height:540px;box-shadow:0 0 0 1px var(--line), var(--shadow-raised);color:var(--text-secondary);flex-direction:column;gap:28px;padding:64px 72px;display:flex;position:absolute;top:0;left:0;overflow:hidden}.prism-slide-title{color:var(--text-primary);margin:0;font-weight:700;line-height:1.2}.prism-slide-body{flex-direction:column;gap:14px;line-height:1.45;display:flex;overflow:hidden}.prism-slide-body-line{margin:0}.prism-slide-flat{white-space:pre-wrap;word-break:break-word;line-height:1.6;overflow:hidden}.prism-page-marks{pointer-events:none;position:absolute;inset:0}.prism-page-mark{border-radius:2px;animation:.5s .15s both prism-mark-in;position:absolute}.prism-page-figure{border:2.5px solid;border-radius:6px;animation:.5s .15s both prism-mark-in;position:absolute}@keyframes prism-mark-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.prism-page-mark,.prism-page-figure{animation:none}}.prism-pen{pointer-events:none;z-index:2;position:absolute;top:0;left:0;overflow:visible}.prism-pen-stroke,.prism-pen-halo,.prism-pen-head{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:prism-pen-draw 1s cubic-bezier(.45, 0, .3, 1) var(--ink-delay,0s) forwards}.prism-pen-stroke{stroke-width:4.6px;opacity:.92}.prism-pen-halo{stroke-width:12px;opacity:.13}.prism-pen-head{stroke-width:4.2px;opacity:.92;animation-duration:.28s;animation-delay:calc(var(--ink-delay,0s) + .96s)}@keyframes prism-pen-draw{to{stroke-dashoffset:0}}.prism-pen-glyph{fill:currentColor;opacity:0;animation:prism-glyph-in .4s ease-out calc(var(--ink-delay,0s) + .6s) forwards;font-family:Bradley Hand,Segoe Print,Comic Sans MS,Marker Felt,cursive;font-weight:700}@keyframes prism-glyph-in{0%{opacity:0}to{opacity:.92}}@media (prefers-reduced-motion:reduce){.prism-pen-stroke,.prism-pen-halo,.prism-pen-head{stroke-dashoffset:0;animation:none}.prism-pen-glyph{opacity:.92;animation:none}}.prism-pen-caption{z-index:4;background:color-mix(in oklab, var(--surface-deep) 88%, transparent);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px;align-items:center;gap:10px;padding:10px 12px 10px 14px;animation:.4s both prism-mark-in;display:flex;position:absolute;bottom:14px;left:16px;right:16px;box-shadow:0 8px 28px #0006}.prism-pen-caption-text{min-width:0;color:var(--text-secondary);flex:1;font-size:12.5px;line-height:1.4}.prism-pen-mute{border:1px solid var(--line-strong);background:var(--surface-elevated);width:30px;height:30px;color:inherit;cursor:pointer;border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.prism-pen-mute:hover{border-color:var(--line-strong)}.prism-pen-mute[aria-pressed=true]{border-color:color-mix(in oklab, var(--presence) 60%, transparent)}@media (prefers-reduced-motion:reduce){.prism-pen-caption{animation:none}}.prism-page-foot{border-top:1px solid var(--line);color:var(--text-muted);flex:none;padding:10px 16px;font-size:11px}.prism-office-mark{color:inherit;border-radius:2px;padding:0 1px}.prism-doc-unit{width:100%;margin:auto;position:relative}.prism-doc-sheet{box-sizing:border-box;border-radius:var(--r-md);background:var(--surface-elevated);box-shadow:0 0 0 1px var(--line), var(--shadow-raised);padding:32px 40px}.prism-doc-text{color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;line-height:1.7;position:relative}.prism-sheet-unit{width:100%;margin:auto;position:relative}.prism-sheet-scroll{scrollbar-gutter:stable;border-radius:var(--r-md);box-shadow:0 0 0 1px var(--line);overflow:auto visible}.prism-sheet-inner{width:max-content;min-width:100%;position:relative}.prism-sheet-table{border-collapse:collapse;background:var(--surface-elevated);width:100%;font-size:inherit}.prism-sheet-table th,.prism-sheet-table td{text-align:left;vertical-align:baseline;white-space:nowrap;color:var(--text-secondary);border-bottom:1px solid var(--line);padding:7px 12px}.prism-sheet-table thead th{z-index:1;background:var(--surface-deep);color:var(--text-primary);font-weight:600;font-family:var(--font-data);letter-spacing:.02em;border-bottom:1px solid var(--line-strong);font-size:.85em;position:sticky;top:0}.prism-sheet-table tbody tr:hover td{background:var(--surface-glass)}.prism-sheet-num{font-family:var(--font-data);font-variant-numeric:tabular-nums;text-align:right}.prism-sheet-cell-hit{color:var(--text-primary);font-weight:600}.prism-sheet-truncated{color:var(--text-muted);margin:8px 2px 0;font-size:11px}.prism-page-conns{border-top:1px solid var(--line);background:var(--surface-deep);flex:none;align-items:center;gap:10px;padding:8px 14px;display:flex;overflow-x:auto}.prism-page-conns-label{font-family:var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);flex:none;font-size:9px}.prism-page-conns-list{gap:6px;display:flex}.prism-page-conn{text-overflow:ellipsis;white-space:nowrap;border-radius:var(--r-full);border:1px solid var(--line-strong);max-width:200px;color:var(--text-secondary);cursor:pointer;background:0 0;flex:none;padding:4px 10px;font-size:11px;transition:border-color .15s,color .15s;overflow:hidden}.prism-page-conn:hover{border-color:color-mix(in oklab, var(--presence) 50%, var(--line-strong));color:var(--text-primary)}.prism-doc{z-index:6;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.prism-doc[data-igniting=true] .prism-doc-page{animation:.7s forwards prism-doc-out}@keyframes prism-doc-out{to{opacity:0;transform:scale(.5)}}.prism-doc-page{background:var(--surface-elevated);border:1px solid var(--line);width:196px;height:256px;box-shadow:0 18px 44px #00000073, 6px 6px 0 -1px var(--surface-elevated), 12px 12px 0 -2px var(--surface-deep);border-radius:6px;flex-direction:column;gap:8px;padding:20px 18px;display:flex;overflow:hidden}.prism-doc-eyebrow{font-family:var(--font-data);letter-spacing:.12em;color:var(--text-muted);font-size:7px}.prism-doc-title{color:var(--text-primary);font-size:12px;font-weight:700;line-height:1.25}.prism-doc-lines{flex-direction:column;gap:5px;margin-top:6px;display:flex}.prism-doc-line{background:var(--line);border-radius:2px;height:3px}.prism-shock{border:1.5px solid var(--presence);pointer-events:none;border-radius:50%;width:200px;height:200px;animation:.9s ease-out forwards prism-shock;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes prism-shock{0%{opacity:.55;transform:translate(-50%,-50%)scale(.35)}to{opacity:0;transform:translate(-50%,-50%)scale(3.4)}}.prism-shard{border:1px solid var(--line);opacity:0;pointer-events:none;background:#fff;border-radius:2px;animation:1.2s cubic-bezier(.2,.7,.3,1) forwards prism-shard;position:absolute;top:50%;left:50%;box-shadow:0 4px 12px #0006}@keyframes prism-shard{0%{opacity:.9;transform:translate(-50%,-50%)translate(0)rotate(0)}to{transform:translate(-50%, -50%) translate(var(--sx), var(--sy)) rotate(var(--sr));opacity:0}}@media (prefers-reduced-motion:reduce){.prism-shock,.prism-shard,.prism-doc[data-igniting=true] .prism-doc-page{animation:none}}.prism-blooming{flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;inset:0}.prism-bloom-orb{background:radial-gradient(circle at 34% 28%, #a9afff 0%, var(--presence) 55%, #3a43c9 100%);border-radius:48% 52% 50% 50%/52% 50% 50% 48%;width:46px;height:46px;animation:1.4s ease-in-out infinite prism-breathe}@keyframes prism-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.prism-bloom-orb{animation:none}}.prism-bloom-label{font-family:var(--font-data);letter-spacing:.04em;color:var(--text-muted);font-size:11px}.prism-error{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:0 18%;display:flex;position:absolute;inset:0}.prism-error-msg{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.6}.prism-error-retry{border:1px solid var(--line-strong);color:var(--text-primary);font:inherit;cursor:pointer;background:0 0;border-radius:10px;padding:8px 18px;font-size:13px;font-weight:600}.prism-error-retry:hover{border-color:var(--line-strong)}.prism-world{transform-origin:0 0;will-change:transform;animation:.6s both prism-world-in;position:absolute;top:0;left:0}@keyframes prism-world-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.prism-world,.prism-phase[data-active=true] .prism-phase-dot{animation:none}}.prism-stage{cursor:grab;touch-action:none}.prism-stage.is-panning{cursor:grabbing}.prism-stage.is-panning .prism-claim{pointer-events:none}.prism-zoom{z-index:12;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:color-mix(in oklab, var(--surface-elevated) 90%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-direction:column;gap:1px;display:flex;position:absolute;bottom:16px;right:16px;overflow:hidden}.prism-zoom button{width:32px;height:30px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:16px;line-height:1}.prism-zoom button:hover{background:var(--surface-glass);color:var(--text-primary)}.prism-zoom button+button{border-top:1px solid var(--line-strong)}.prism-region{pointer-events:none;z-index:1;position:absolute;transform:translate(-50%,-50%)}.prism-region-glow{background:radial-gradient(ellipse, color-mix(in oklab, var(--region-color) 16%, transparent) 0%, transparent 70%);border-radius:50%;width:340px;height:260px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.prism-region-name{z-index:30;border-radius:var(--r-full);background:color-mix(in oklab, var(--surface-deep) 85%, transparent);border:1px solid color-mix(in oklab, var(--region-color) 30%, var(--line-strong));font-family:var(--font-data);letter-spacing:.16em;text-transform:uppercase;color:color-mix(in oklab, var(--region-color) 70%, var(--text-primary) 30%);white-space:nowrap;padding:3px 11px;font-size:11px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.prism-links{z-index:0;pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.prism-links line{stroke:color-mix(in oklab, var(--presence) 22%, transparent);stroke-width:1.25px;stroke-linecap:round}.prism-threads{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.prism-thread{--thread-color:var(--danger)}.prism-thread[data-relation=in-tension]{--thread-color:var(--warning)}.prism-thread[data-relation=agrees]{--thread-color:var(--insight)}.prism-thread path{stroke:var(--thread-color);stroke-width:1.5px;stroke-linecap:round;opacity:.55;transition:opacity .3s}.prism-thread[data-relation=contradicts] path{stroke-dasharray:5 3}.prism-thread[data-relation=in-tension] path{stroke-dasharray:1 4;stroke-width:1.7px}.prism-thread[data-relation=agrees] path{stroke-dasharray:none;stroke-width:1.7px}.prism-thread[data-cross=true] path{stroke-width:2px;opacity:.7}.prism-thread.prism-thread-hot path{opacity:1;stroke-width:2.2px}.prism-thread-label{text-align:center;width:100%;font-family:var(--font-data);letter-spacing:.04em;color:color-mix(in oklab, var(--thread-color) 70%, var(--text-primary) 30%);white-space:nowrap;font-size:8px;font-weight:600;display:inline-block}.prism-claim{border-radius:var(--r-sm);border:1px solid color-mix(in oklab, var(--kind-color) 45%, var(--line-strong));background:var(--surface-elevated);text-align:left;cursor:pointer;width:max-content;max-width:184px;color:inherit;z-index:5;flex-direction:column;gap:3px;padding:8px 11px 9px;transition:opacity .3s,border-color .3s,box-shadow .3s,transform .3s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 10px 28px #00000059}.prism-claim:hover{border-color:var(--kind-color)}.prism-claim.is-open{z-index:20;max-width:240px;box-shadow:0 16px 38px color-mix(in oklab, var(--kind-color) 30%, #0006)}.prism-claim.is-flagged{border-color:color-mix(in oklab, var(--danger) 60%, var(--line-strong))}.prism-claim.is-dim{opacity:.16}.prism-claim.is-cited:not(.is-dim){border-color:color-mix(in oklab, var(--presence) 72%, transparent);box-shadow:0 0 0 1px color-mix(in oklab, var(--presence) 55%, transparent), 0 0 24px color-mix(in oklab, var(--presence) 32%, transparent);z-index:10}.prism-recon-label{color:color-mix(in oklab, var(--danger) 88%, #fff);background:color-mix(in oklab, var(--danger) 18%, var(--surface-deep));border-color:color-mix(in oklab, var(--danger) 48%, transparent);font-weight:700}.prism-standing[data-recon=true] .prism-standing-dot{background:var(--danger)}.prism-claim.is-objected:not(.is-dim){border-color:color-mix(in oklab, var(--danger) 72%, transparent);box-shadow:0 0 0 1px color-mix(in oklab, var(--danger) 55%, transparent), 0 0 24px color-mix(in oklab, var(--danger) 30%, transparent);z-index:9}.prism-claim[data-role=load-bearing]:not(.is-dim){border-color:color-mix(in oklab, var(--kind-color) 78%, transparent);max-width:200px;box-shadow:0 12px 30px #0006, 0 0 0 1px color-mix(in oklab, var(--kind-color) 40%, transparent), 0 0 22px color-mix(in oklab, var(--kind-color) 26%, transparent);z-index:8}.prism-claim[data-role=load-bearing] .prism-claim-title{font-size:14px}.prism-claim[data-role=context]:not(.is-dim):not(.is-open){opacity:.84}.prism-claim[data-role=context]:not(.is-dim):hover{opacity:1}.prism-claim-key{font-family:var(--font-data);letter-spacing:.1em;color:color-mix(in oklab, var(--kind-color) 80%, var(--text-primary) 20%);white-space:nowrap;font-size:8px;font-weight:700}.prism-claim-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.prism-claim-kind{font-family:var(--font-data);letter-spacing:.1em;color:var(--kind-color);align-items:center;gap:6px;font-size:8px;font-weight:600;display:inline-flex}.prism-claim-dot{background:var(--kind-color);border-radius:2px;width:7px;height:7px}.prism-claim-page{font-family:var(--font-data);color:var(--text-muted);font-size:8px;font-weight:600}.prism-claim-title{color:var(--text-primary);font-size:13px;font-weight:600;line-height:1.25}.prism-claim-body{flex-direction:column;gap:7px;margin-top:4px;display:flex}.prism-claim-quote{color:var(--text-secondary);border-left:2px solid var(--kind-color);padding-left:8px;font-size:11px;font-style:italic;line-height:1.4}.prism-claim-flag{font-family:var(--font-data);color:color-mix(in oklab, var(--danger) 70%, var(--text-primary) 30%);align-items:center;font-size:9px;font-weight:600;display:inline-flex}.prism-claim-hint{letter-spacing:.04em;color:var(--kind-color);opacity:.7;font-size:9px;font-weight:600}.prism-claim-state{font-family:var(--font-data);letter-spacing:.06em;text-transform:lowercase;color:var(--text-muted);font-size:8px;font-weight:600}.prism-claim-state[data-state=anchored],.prism-claim-state[data-state=agrees]{color:color-mix(in oklab, var(--insight) 62%, var(--text-primary) 38%)}.prism-claim-state[data-state=in-tension]{color:color-mix(in oklab, var(--warning) 70%, var(--text-primary) 30%)}.prism-claim-state[data-state=contradicts]{color:color-mix(in oklab, var(--danger) 70%, var(--text-primary) 30%)}.prism-seal{border:1px solid color-mix(in oklab, var(--seal-color) 42%, transparent);background:color-mix(in oklab, var(--seal-color) 14%, transparent);font-family:var(--font-data);letter-spacing:.08em;color:color-mix(in oklab, var(--seal-color) 78%, var(--text-primary) 22%);border-radius:999px;align-self:flex-start;align-items:center;gap:5px;margin-top:2px;padding:2px 7px;font-size:8px;font-weight:700;display:inline-flex}.prism-seal-dot{background:var(--seal-color);border-radius:999px;width:6px;height:6px}.prism-seal[data-verdict=unsupported]{border-style:dashed}.prism-claim-verdict{border-radius:var(--r-sm);border:1px solid color-mix(in oklab, var(--seal-color) 30%, transparent);background:color-mix(in oklab, var(--seal-color) 8%, transparent);flex-direction:column;gap:5px;margin-top:2px;padding:7px 9px;display:flex}.prism-verdict-head{flex-direction:column;gap:2px;display:flex}.prism-verdict-label{font-family:var(--font-data);letter-spacing:.1em;color:color-mix(in oklab, var(--seal-color) 82%, var(--text-primary) 18%);font-size:8px;font-weight:700}.prism-verdict-note{color:var(--text-secondary);overflow-wrap:anywhere;font-size:10px;line-height:1.35}.prism-verdict-cite{border:1px dashed color-mix(in oklab, var(--seal-color) 40%, transparent);border-radius:var(--r-xs,6px);background:color-mix(in oklab, var(--seal-color) 6%, transparent);color:var(--text-secondary);overflow-wrap:anywhere;padding:5px 8px;font-size:10px;font-style:italic;line-height:1.4;text-decoration:none;display:block}.prism-verdict-cite:before{content:"🌐 ";font-style:normal}.prism-verdict-cite:hover{border-color:var(--seal-color)}.prism-verdict-host{font-style:normal;font-family:var(--font-data);letter-spacing:.04em;color:color-mix(in oklab, var(--seal-color) 70%, var(--text-muted) 30%);margin-top:2px;font-size:8px;font-weight:600;display:block}.prism-counter{border:1px solid color-mix(in oklab, var(--insight) 24%, transparent);background:color-mix(in oklab, var(--insight) 8%, transparent);font-family:var(--font-data);letter-spacing:.03em;color:var(--text-secondary);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:9px;display:inline-flex}.prism-counter strong{color:color-mix(in oklab, var(--insight) 72%, #fff 28%);font-weight:700}@media (width<=560px){.prism-counter,.prism-phase-label,.prism-replay-label{display:none}.prism-head{gap:8px;padding:10px 14px}.prism-head-right{gap:8px}.prism-replay{padding:6px 10px}}.prism-standing{border-top:1px solid var(--line);background:color-mix(in oklab, var(--warning) 7%, transparent);align-items:center;gap:9px;padding:9px 18px;display:flex}.prism-standing[data-verifying=true]{background:color-mix(in oklab, var(--insight) 6%, transparent)}.prism-standing-dot{background:var(--warning);border-radius:999px;flex:none;width:8px;height:8px}.prism-standing[data-verifying=true] .prism-standing-dot{background:var(--insight);animation:1.4s ease-in-out infinite prism-standing-pulse}.prism-standing-text{color:var(--text-primary);font-size:12px;font-weight:600;line-height:1.3}@keyframes prism-standing-pulse{0%,to{opacity:1}50%{opacity:.4}}@media (prefers-reduced-motion:reduce){.prism-standing[data-verifying=true] .prism-standing-dot{animation:none}}.prism-foot{background:var(--surface-deep);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 18px;padding:13px 22px;display:flex}.prism-foot-quiet{justify-content:center}.prism-foot-stat{min-width:160px;color:var(--text-muted);white-space:nowrap;flex:200px;font-size:11.5px}.prism-foot-actions{flex-wrap:wrap;flex:2 auto;justify-content:flex-end;align-items:center;gap:9px;display:flex}.prism-foot-group{background:color-mix(in oklab, var(--surface-elevated) 55%, transparent);border-radius:12px;align-items:center;gap:6px;padding:4px 8px 4px 3px;display:flex}.prism-foot-group-label{font-family:var(--font-data);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;padding:0 1px 0 5px;font-size:9px;font-weight:600}.prism-foot-group--quiet{border-left:1px solid var(--line);background:0 0;gap:4px;margin-left:4px;padding-left:12px}.prism-foot-btn{border:1px solid var(--line-strong);color:var(--text-secondary);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border-radius:10px;padding:8px 15px;font-size:12.5px;font-weight:600}.prism-foot-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--line-strong)}.prism-foot-btn--primary{background:var(--presence-deep);color:#fff;border-color:#0000}.prism-foot-btn--primary:hover:not(:disabled){color:#fff;opacity:.88}.prism-foot-btn.is-active{border-color:color-mix(in oklab, var(--danger) 55%, transparent);color:color-mix(in oklab, var(--danger) 70%, var(--text-primary) 30%);background:color-mix(in oklab, var(--danger) 10%, transparent)}.prism-foot-btn:disabled{opacity:.4;cursor:default}.prism-legend-panel{background:var(--surface-deep);border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:24px 40px;padding:18px 22px 20px;display:grid}@media (width<=720px){.prism-legend-panel{grid-template-columns:1fr;gap:18px}}.prism-legend-col{flex-direction:column;gap:10px;display:flex}.prism-legend-title{font-family:var(--font-data);letter-spacing:.12em;color:var(--text-muted);font-size:9px;font-weight:600}.prism-legend-kinds,.prism-legend-threads{grid-template-columns:1fr 1fr;gap:7px 18px;margin:0;padding:0;list-style:none;display:grid}.prism-legend-threads{grid-template-columns:1fr}.prism-legend-kind,.prism-legend-thread{align-items:center;gap:7px;font-size:11.5px;display:flex}.prism-legend-kind-dot{border-radius:3px;flex:none;width:9px;height:9px}.prism-legend-kind-name,.prism-legend-thread-name{color:var(--text-primary);font-weight:600}.prism-legend-kind-desc,.prism-legend-thread-desc{color:var(--text-muted)}.prism-legend-thread-line{flex:none;overflow:visible}.prism-legend-thread-line line{stroke-width:1.7px;stroke-linecap:round}.prism-legend-thread-line[data-relation=agrees] line{stroke:var(--insight)}.prism-legend-thread-line[data-relation=contradicts] line{stroke:var(--danger);stroke-dasharray:5 3}.prism-legend-thread-line[data-relation=in-tension] line{stroke:var(--warning);stroke-dasharray:1 4}.prism-legend-note{color:var(--text-muted);margin:4px 0 0;font-size:11px;line-height:1.5}.prism-legend-note strong{color:var(--text-secondary);font-weight:600}.prism-margin{pointer-events:none;position:absolute;top:0;bottom:0}.prism-margin-note{border-left:2.5px solid var(--note-c,var(--presence));background:color-mix(in oklab, var(--note-c,var(--presence)) 6%, var(--surface-elevated));box-shadow:var(--shadow-raised);color:var(--text-primary);-webkit-line-clamp:4;opacity:0;animation:prism-note-in .42s var(--ease-out,ease) both;animation-delay:var(--ink-delay,0s);border-radius:8px;-webkit-box-orient:vertical;padding:8px 10px 8px 12px;font-size:11.5px;font-style:italic;line-height:1.45;display:-webkit-box;position:absolute;left:0;right:0;overflow:hidden}@keyframes prism-note-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}.prism-note-arrows{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.prism-note-arrow,.prism-note-arrow-head{stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;opacity:.75;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1px;animation:prism-note-draw .6s var(--ease-out,ease) forwards;animation-delay:calc(var(--ink-delay,0s) + .12s)}.prism-note-arrow-head{animation-delay:calc(var(--ink-delay,0s) + .62s);animation-duration:.22s}@keyframes prism-note-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.prism-margin-note{opacity:1;animation:none}.prism-note-arrow,.prism-note-arrow-head{stroke-dashoffset:0;animation:none}}.prism-page-unit{flex:none;margin:auto;position:relative}.prism-page-unit>.prism-page-frame{margin:0}.syn-lenses{background:var(--surface-deep);border:1px solid var(--line);border-radius:var(--r-full,999px);gap:2px;max-width:100%;margin-inline:auto;padding:3px;display:flex;overflow:hidden}.syn-lens{border-radius:var(--r-full,999px);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.syn-lens:hover{color:var(--text-primary)}.syn-lens.is-active{background:var(--surface-elevated);color:var(--text-primary);box-shadow:0 1px 3px #0000001f}.syn-lens-n{border-radius:var(--r-full,999px);background:var(--presence);color:#fff;min-width:18px;height:18px;font-family:var(--font-data,monospace);place-items:center;padding:0 5px;font-size:11px;font-weight:700;display:inline-grid}.syn-obj{border-radius:var(--r-full,999px);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;z-index:3;align-items:center;gap:7px;max-width:220px;padding:7px 12px;font-size:12px;font-weight:650;transition:opacity .2s,transform .12s;display:inline-flex;position:absolute;overflow:hidden;transform:translate(-50%,-50%)}.syn-obj:hover{transform:translate(-50%,-50%)scale(1.04)}.syn-obj.is-dim{opacity:.14}.syn-obj-contradicts{background:color-mix(in srgb, var(--danger) 16%, var(--surface-elevated));border:1px solid var(--danger);color:var(--danger)}.syn-obj-in-tension{background:color-mix(in srgb, var(--warning) 16%, var(--surface-elevated));border:1px solid var(--warning);color:color-mix(in srgb, var(--warning) 80%, var(--text-primary))}.syn-obj-dot{background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.syn-gap{background:repeating-linear-gradient(-45deg, var(--surface-deep), var(--surface-deep) 6px, transparent 6px, transparent 12px);border:1px dashed var(--line-strong);color:var(--text-secondary)}.syn-consensus{border:1.5px dashed color-mix(in srgb, var(--insight) 55%, transparent);background:color-mix(in srgb, var(--insight) 7%, transparent);cursor:pointer;z-index:1;border-radius:50%;transition:opacity .2s;position:absolute}.syn-consensus.is-dim{opacity:.12}.syn-consensus-badge{border-radius:var(--r-full,999px);background:var(--insight);color:#fff;font-family:var(--font-data,monospace);white-space:nowrap;padding:2px 9px;font-size:10.5px;font-weight:700;position:absolute;top:-11px;left:50%;transform:translate(-50%)}.syn-detail-panel{background:var(--surface-elevated);flex-direction:column;display:flex;position:relative;overflow:hidden}.syn-detail-close{z-index:2;position:absolute;top:12px;right:12px}.syn-detail{flex-direction:column;flex:auto;gap:10px;padding:18px;display:flex;overflow-y:auto}.syn-detail-kind{font-family:var(--font-data,monospace);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--r-full,999px);background:var(--surface-deep);color:var(--text-muted);align-self:flex-start;padding:3px 9px;font-size:10.5px;font-weight:700}.syn-detail-kind[data-rel=contradicts]{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.syn-detail-kind[data-rel=in-tension]{color:color-mix(in srgb, var(--warning) 85%, var(--text-primary));background:color-mix(in srgb, var(--warning) 12%, transparent)}.syn-detail-kind[data-rel=agrees]{color:var(--insight);background:color-mix(in srgb, var(--insight) 12%, transparent)}.syn-detail-title{margin:0;font-size:16px;font-weight:700;line-height:1.3}.syn-banner{border-radius:var(--r-sm,10px);background:color-mix(in srgb, var(--warning) 12%, transparent);border:1px solid color-mix(in srgb, var(--warning) 40%, var(--line));color:color-mix(in srgb, var(--warning) 85%, var(--text-primary));margin:0;padding:8px 10px;font-size:12.5px}.syn-tape,.syn-members{flex-direction:column;gap:8px;display:flex}.syn-tape-side,.syn-member{text-align:left;border-radius:var(--r-sm,10px);border:1px solid var(--line);background:var(--surface-deep);color:var(--text-primary);cursor:pointer;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.syn-tape-side:hover,.syn-member:hover{border-color:var(--line-strong)}.syn-tape-cite{font-family:var(--font-data,monospace);color:var(--text-muted);font-size:11px}.syn-tape-quote{font-size:13.5px;line-height:1.4}.syn-delta{font-family:var(--font-data,monospace);color:var(--text-secondary);margin:0;font-size:13px;font-weight:700}.syn-interrogate{border-radius:var(--r-sm,10px);border:1px solid var(--presence);background:color-mix(in srgb, var(--presence) 12%, transparent);color:var(--presence);cursor:pointer;align-self:flex-start;margin-top:4px;padding:8px 14px;font-size:13px;font-weight:650}.syn-interrogate:hover{background:color-mix(in srgb, var(--presence) 20%, transparent)}.syn-receipt,.syn-consensus-count{margin:0;font-size:14px}.syn-searched-label{color:var(--text-muted);margin:4px 0 0;font-size:12px}.syn-searched{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.syn-searched li{font-family:var(--font-data,monospace);border-radius:var(--r-full,999px);background:var(--surface-deep);border:1px solid var(--line);color:var(--text-secondary);padding:3px 9px;font-size:12px}.syn-proposition{margin:0;font-size:14.5px;font-weight:600;line-height:1.4}.syn-note,.syn-proposition-note{color:var(--text-muted);font-size:12px}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.recap-scrim{z-index:52;background:rgba(var(--scrim-rgb), .62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);justify-content:center;align-items:flex-start;padding:9vh 24px 24px;display:flex;position:fixed;inset:0;overflow-y:auto}.recap-panel{border-radius:var(--r-xl);background:var(--surface-elevated);border:1px solid var(--line);width:min(720px,100%);box-shadow:var(--shadow-modal);flex-direction:column;gap:20px;padding:30px 34px 26px;display:flex}.recap-head{border-top:2px solid var(--text-primary);flex-direction:column;gap:8px;padding-top:22px;display:flex}.recap-title{color:var(--text-primary);margin:0}.recap-meta{font-family:var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:11px}.recap-rows{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.recap-row{border:1px solid var(--line-soft);border-radius:var(--r-lg);background:color-mix(in oklab, var(--surface-elevated) 72%, transparent);cursor:pointer;text-align:left;width:100%;font:inherit;color:var(--text-primary);align-items:baseline;gap:18px;padding:15px 20px;display:flex}.recap-row:hover{border-color:var(--line-strong)}.recap-row-key{font-family:var(--font-data);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);flex-direction:column;flex:0 0 96px;gap:2px;font-size:10px;font-weight:700;display:flex;overflow:hidden}.recap-row-clock{font-weight:400}.recap-row-line{flex:1;min-width:0;font-size:15px;line-height:1.5}.recap-actions{gap:10px;display:flex}.recap-share{border-radius:var(--r-full);background:var(--presence);color:#fff;font:600 13.5px/1 var(--font);cursor:pointer;border:none;padding:10px 18px}.recap-keep{border:1px solid var(--line);border-radius:var(--r-full);background:color-mix(in oklab, var(--surface-elevated) 80%, transparent);color:var(--text-primary);font:500 13.5px/1 var(--font);cursor:pointer;padding:10px 18px}@media (width<=600px){.recap-row{flex-direction:column;gap:6px}.recap-row-key{flex-direction:row;flex:none;gap:10px}}.recap-row-corrected{font:600 10.5px/1.4 var(--font-data,var(--font));letter-spacing:.04em;color:var(--warning);margin-top:4px;display:block}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/RippleOverlay-D7ItTvS-.js","assets/react-BZJXY1be.js","assets/rolldown-runtime-DkW27tQK.js","assets/compiler-runtime-qQQXpJgv.js","assets/jsx-runtime-DeHZSEgm.js","assets/preload-helper-CiWYd9n-.js","assets/cachedImport-DW0gP14h.js","assets/preloadableLazy-MIX1ApBW.js","assets/lazyRetry-D50B1UMY.js","assets/index-zIa6h_8b.js","assets/useInView-CXTOAEV3.js","assets/coreIcons-DDTChE1H.js","assets/theme-7IrMJ70_.js","assets/index-DrzNHwlO.css","assets/useFocusTrap-DBtkeyRy.js","assets/useSpatialCanvas-CfmZOXXP.js","assets/FeatureUseNotice-Dc3GNBvy.js","assets/FeatureUseNotice-CsCxxfOl.css","assets/cache-CvbSI-pr.js","assets/buildShip-BgFg98tH.js","assets/parseDiff-D8uBQ9mQ.js","assets/incident-D3bmMmES.js","assets/githubToken-Bwa7V9YT.js","assets/keyVault-Aw5Y2PjT.js","assets/colors-D49Req-e.js","assets/courseStore-DfafnL-9.js","assets/RippleOverlay-_iiZsQVZ.css","assets/useLiveConfig-Cpy0_E_-.js","assets/info-CiqHR5cs.js","assets/providers-BovElgRL.js","assets/http-Lar_UMKb.js","assets/blockTypes-DUDdP3pB.js","assets/attachments-BW-vki-E.js","assets/kokoro-B3oG_8sd.js","assets/spokenText-C88IQJ0M.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./jsx-runtime-DeHZSEgm.js";import{n,t as r}from"./preload-helper-CiWYd9n-.js";import{t as i}from"./lazyRetry-D50B1UMY.js";import{t as a}from"./preloadableLazy-MIX1ApBW.js";import{n as o,t as s}from"./theme-7IrMJ70_.js";import{c,k as l}from"./index-zIa6h_8b.js";import{t as u}from"./homeTarget-CsO8nY7z.js";var d=e(),f=t();n();var p=a(()=>r(()=>import(`./RippleOverlay-D7ItTvS-.js`).then(e=>({default:e.RippleOverlay})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]))),m=p.Component,h=i(()=>r(()=>import(`./seed-b1xc0dj2.js`),[]));function g(){(0,d.useEffect)(()=>s(o()),[]);let[e,t]=(0,d.useState)(null);(0,d.useEffect)(()=>{let e=!0;return p.preload().catch(()=>{}),h().then(({SEED_SHIP:n})=>{e&&t(n)}),()=>{e=!1}},[]);let[n,i]=(0,d.useState)(null);(0,d.useEffect)(()=>{let e=!0,t=window.setTimeout(()=>{r(async()=>{let{getLiveConfigV2:e,toModelConfig:t}=await import(`./useLiveConfig-Cpy0_E_-.js`).then(e=>e.d);return{getLiveConfigV2:e,toModelConfig:t}},__vite__mapDeps([27,2,1,3,28,23,29,30,31,32])).then(({getLiveConfigV2:t,toModelConfig:n})=>{if(!e)return;let r=n(t());i(r.apiKey?r:null)})},250);return()=>{e=!1,window.clearTimeout(t)}},[]);let a=(0,d.useCallback)(e=>{r(()=>import(`./kokoro-B3oG_8sd.js`).then(e=>e.M).then(t=>t.speak(e,`mavea`)),__vite__mapDeps([33,2,9,1,3,10,4,11,5,7,6,8,12,13,34]))},[]);return e?(0,f.jsx)(l,{label:`Ripple overview`,children:(0,f.jsx)(m,{model:e,cfg:n,speak:a,onClose:()=>{window.location.hash=u().href}})}):(0,f.jsx)(c,{})}export{g as RippleApp};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/generate-Dl2EJ_SR.js","assets/streamParse-B-Gjwa9T.js","assets/rolldown-runtime-DkW27tQK.js","assets/providers-BovElgRL.js","assets/http-Lar_UMKb.js","assets/blockTypes-DUDdP3pB.js","assets/info-CiqHR5cs.js","assets/attachments-BW-vki-E.js","assets/cache-CvbSI-pr.js","assets/incident-D3bmMmES.js","assets/githubBrowser-BDiuD9dz.js","assets/githubToken-Bwa7V9YT.js","assets/keyVault-Aw5Y2PjT.js","assets/owners-HRBX7JN_.js","assets/codeContext-goNoLAIr.js","assets/ShipRead-CJJmY-wy.js","assets/compiler-runtime-qQQXpJgv.js","assets/react-BZJXY1be.js","assets/jsx-runtime-DeHZSEgm.js","assets/ShipIncident-DMLb14Lx.js","assets/ShipIncident-BUHvFFiC.css","assets/ShipWorkspace-_MtKAiKH.js","assets/colors-D49Req-e.js","assets/ShipWorkspace-D6XQpGEN.css","assets/ShipCascade-Bf-qDWMb.js","assets/ShipCascade-CyFnrlET.css","assets/ShipMigration-ZnzL-1rC.js","assets/ShipMigration-BznCskNg.css","assets/ShipRollout-Dt2TgI0L.js","assets/ShipRollout-CqeObx5b.css","assets/ShipCourse-Up9gRR07.js","assets/DropSelect-QcBm3N4D.js","assets/index-zIa6h_8b.js","assets/useInView-CXTOAEV3.js","assets/coreIcons-DDTChE1H.js","assets/preload-helper-CiWYd9n-.js","assets/preloadableLazy-MIX1ApBW.js","assets/cachedImport-DW0gP14h.js","assets/lazyRetry-D50B1UMY.js","assets/theme-7IrMJ70_.js","assets/index-DrzNHwlO.css","assets/DropSelect-DilESAgA.css","assets/store-D2IJF4SA.js","assets/parseDiff-D8uBQ9mQ.js","assets/courseStore-DfafnL-9.js","assets/links--u_phi0x.js","assets/ShipCourse-DcT7PUSm.css","assets/ShipOnboarding-DUxtx2Vr.js","assets/ShipOnboarding-BC9Vxkpa.css","assets/ShipHotspots-lGioTtf1.js","assets/ShipHotspots-CLOMutPv.css","assets/ShipSuggestions-BrAXTjAR.js","assets/ShipSuggestions-BKRvk5Mj.css","assets/ShipGate-D4BP41-h.js","assets/ShipGate-BVZfCllb.css","assets/RippleAskController-9SxpZnHX.js","assets/json-B0N3XRZU.js","assets/verbatim-DBTj9sPD.js","assets/RippleAskController-BNAUoIW0.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{t as a}from"./cachedImport-DW0gP14h.js";import{n as o,t as s}from"./preloadableLazy-MIX1ApBW.js";import{k as c}from"./index-zIa6h_8b.js";import{t as l}from"./useFocusTrap-DBtkeyRy.js";import{t as u}from"./useSpatialCanvas-CfmZOXXP.js";import{t as d}from"./FeatureUseNotice-Dc3GNBvy.js";import{i as f,n as p,t as m}from"./cache-CvbSI-pr.js";import{t as h}from"./buildShip-BgFg98tH.js";import{n as g,t as _}from"./parseDiff-D8uBQ9mQ.js";import{t as v,u as y}from"./incident-D3bmMmES.js";import{i as b,r as x,t as S}from"./githubToken-Bwa7V9YT.js";import{n as C,r as w}from"./colors-D49Req-e.js";import{n as ee,r as te}from"./courseStore-DfafnL-9.js";var T=e(),E=.82;function D(e,t){let n=e.find(e=>e.type===`pr`)??e[0],r=n?.id??``,i=e.filter(e=>e.id!==r),a=e=>230+(e-1)*210,o=e=>Math.max(4,Math.floor(2*Math.PI*a(e)*E/204)),s=[];n&&s.push({node:n,x:0,y:0});let c=1,l=0,u=o(c);for(let e of i){l>=u&&(c+=1,l=0,u=o(c));let t=a(c),n=l/u*Math.PI*2-Math.PI/2+c*.5;s.push({node:e,x:0+Math.cos(n)*t,y:0+Math.sin(n)*t*E}),l+=1}for(let e=0;e<240;e++){let e=!1;for(let t=0;t<s.length;t++)for(let n=t+1;n<s.length;n++){let i=s[t],a=s[n],o=a.x-i.x,c=a.y-i.y,l=204-Math.abs(o),u=112-Math.abs(c);if(!(l<=0||u<=0)){if(e=!0,l<u){let e=(l/2+.5)*(o<0?-1:1);i.node.id!==r&&(i.x-=e),a.node.id!==r&&(a.x+=e)}else{let e=(u/2+.5)*(c<0?-1:1);i.node.id!==r&&(i.y-=e),a.node.id!==r&&(a.y+=e)}}}if(!e)break}let d=1/0,f=1/0,p=-1/0,m=-1/0;for(let e of s)d=Math.min(d,e.x-84),f=Math.min(f,e.y-38),p=Math.max(p,e.x+84),m=Math.max(m,e.y+38);let h=80-d,g=80-f;for(let e of s)e.x+=h,e.y+=g;let _=p-d+160,v=m-f+160;return{centerId:r,nodes:s,w:_,h:v,bbox:{x:0,y:0,w:_,h:v}}}var O=n();function ne({nodes:e,edges:t,altitude:n,onAsk:r,animate:i}){let[a,o]=(0,T.useState)(`severity`),[s,c]=(0,T.useState)(!1),[l,d]=(0,T.useState)(null),f=(0,T.useMemo)(()=>{let n=s?e.filter(e=>e.type===`pr`||e.crossRepo):e,r=new Set(n.map(e=>e.id));return D(n,t.filter(e=>r.has(e.from)&&r.has(e.to)))},[e,t,s]),p=(0,T.useMemo)(()=>{let e=new Map;for(let t of f.nodes)e.set(t.node.id,t);return e},[f]),m=(0,T.useMemo)(()=>{let e=new Map,t=p.get(f.centerId);if(!t)return e;let n=1;for(let e of f.nodes)n=Math.max(n,Math.hypot(e.x-t.x,e.y-t.y));for(let r of f.nodes){let i=Math.hypot(r.x-t.x,r.y-t.y);e.set(r.node.id,Math.round(i/n*460))}return e},[f,p]),h=p.get(f.centerId),g=u({clamp:{min:.7,max:2.2},margin:56}),{fitTo:_}=g;(0,T.useEffect)(()=>{_(f.bbox)},[f,_]);let[v,y]=(0,T.useState)(!1),b=(0,T.useRef)(!1),x=(0,T.useRef)(!1),S=(0,T.useRef)({x:0,y:0}),ee=(0,T.useCallback)(e=>{b.current=!0,x.current=!1,y(!0),S.current={x:e.clientX,y:e.clientY},e.currentTarget.setPointerCapture(e.pointerId)},[]),te=(0,T.useCallback)(e=>{if(!b.current)return;let t=e.clientX-S.current.x,n=e.clientY-S.current.y;Math.abs(t)+Math.abs(n)>2&&(x.current=!0),S.current={x:e.clientX,y:e.clientY},g.pan(t,n)},[g]),E=(0,T.useCallback)(e=>{b.current=!1,y(!1);try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}},[]),ne=g.viewportRef,{zoomAtClient:k}=g;(0,T.useEffect)(()=>{let e=ne.current;if(!e)return;let t=e=>{e.preventDefault(),k(e.deltaY<0?1.12:1/1.12,e.clientX,e.clientY)};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[ne,k]);let A=g.camera.scale>=.7,j=a===`traffic`,M=l?p.get(l)?.node??null:null,N=e.some(e=>typeof e.traffic==`number`),P=e.some(e=>e.crossRepo===!0);return(0,O.jsxs)(`div`,{className:`ripple-impact`,children:[(0,O.jsxs)(`div`,{className:`ripple-impact-controls`,children:[N&&(0,O.jsxs)(`div`,{className:`ripple-lens`,role:`group`,"aria-label":`Map lens`,children:[(0,O.jsx)(`button`,{type:`button`,"data-active":a===`severity`?`true`:void 0,onClick:()=>o(`severity`),children:`Severity`}),(0,O.jsx)(`button`,{type:`button`,"data-active":a===`traffic`?`true`:void 0,onClick:()=>o(`traffic`),children:`Traffic`})]}),P&&(0,O.jsxs)(`label`,{className:`ripple-crossrepo`,children:[(0,O.jsx)(`input`,{type:`checkbox`,checked:s,onChange:e=>c(e.target.checked)}),`Cross-repo only`]}),(0,O.jsx)(`div`,{className:`ripple-zoombtns`,children:(0,O.jsx)(`button`,{type:`button`,onClick:()=>_(f.bbox),title:`Fit the whole map`,"aria-label":`Fit`,children:`⊡`})})]}),(0,O.jsxs)(`div`,{className:`ripple-stage`+(v?` is-panning`:``),ref:g.viewportRef,onPointerDown:ee,onPointerMove:te,onPointerUp:E,onPointerCancel:E,children:[(0,O.jsxs)(`div`,{className:`ripple-world`,"data-animate":i?`true`:void 0,style:{width:f.w,height:f.h,transform:g.transform},children:[i&&h&&(0,O.jsx)(`span`,{className:`ripple-enter-pulse`,"aria-hidden":`true`,style:{left:h.x,top:h.y}}),(0,O.jsx)(`svg`,{className:`ripple-edges`,width:f.w,height:f.h,viewBox:`0 0 ${f.w} ${f.h}`,"aria-hidden":`true`,children:f.nodes.filter(e=>e.node.id!==f.centerId).map(e=>{let n=p.get(f.centerId);if(!n)return null;let r=t.find(t=>t.from===n.node.id&&t.to===e.node.id)??t.find(t=>t.to===n.node.id&&t.from===e.node.id),i=w(e.node.status),a=j?1.3+(e.node.traffic??0)*3:r?.breaking?2.4:1.6;return(0,O.jsx)(`line`,{x1:n.x,y1:n.y,x2:e.x,y2:e.y,stroke:i,strokeWidth:a,strokeLinecap:`round`,strokeDasharray:r?.breaking?`6 5`:r?.dashed?`2 6`:void 0,className:`ripple-edge`+(r?.breaking?` ripple-edge-break`:``),style:{animationDelay:`${m.get(e.node.id)??0}ms`},opacity:l&&l!==e.node.id?.25:.7},e.node.id)})}),A&&f.nodes.filter(e=>e.node.id!==f.centerId).map(e=>{let n=p.get(f.centerId);if(!n)return null;let r=t.find(t=>t.from===n.node.id&&t.to===e.node.id)??t.find(t=>t.to===n.node.id&&t.from===e.node.id);return r?(0,O.jsx)(`div`,{className:`ripple-edge-verb`,style:{left:(n.x+e.x)/2,top:(n.y+e.y)/2,color:w(e.node.status)},children:r.verb},`v-${e.node.id}`):null}),f.nodes.map(e=>{let t=e.node,n=t.id===f.centerId,r=w(t.status),i=j&&!n?1+(t.traffic??0)*.24:1;return(0,O.jsx)(`button`,{type:`button`,className:`ripple-node`,"data-center":n?`true`:void 0,"data-status":t.status,"data-open":l===t.id?`true`:void 0,style:{left:e.x-84,top:e.y-38,width:168,minHeight:76,transform:`scale(${i.toFixed(3)})`,borderColor:r,opacity:l&&l!==t.id?.55:1,animationDelay:`${m.get(t.id)??0}ms`},onClick:()=>{x.current||d(e=>e===t.id?null:t.id)},children:n?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`span`,{className:`ripple-node-eyebrow`,style:{color:r},children:`THIS CHANGE`}),(0,O.jsx)(`span`,{className:`ripple-node-name ripple-node-name-lg`,children:t.label})]}):(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(`span`,{className:`ripple-node-top`,children:[(0,O.jsx)(`span`,{className:`ripple-node-dot`,style:{background:r},"aria-hidden":`true`}),(0,O.jsx)(`span`,{className:`ripple-node-status`,style:{color:r},children:C(t.status)}),t.severity&&(0,O.jsx)(`span`,{className:`ripple-node-sev`,style:{background:r},children:t.severity})]}),(0,O.jsx)(`span`,{className:`ripple-node-name`,children:t.label}),A&&(0,O.jsxs)(`span`,{className:`ripple-node-meta`,children:[t.team??t.owner??``,t.trafficLabel?` · ${t.trafficLabel}`:``]}),t.crossRepo&&(0,O.jsx)(`span`,{className:`ripple-node-repo`,children:`other repo`})]})},t.id)})]}),(0,O.jsx)(`div`,{className:`ripple-map-legend`,"aria-hidden":`true`,children:[`breaks`,`migration`,`untested`,`affected`,`safe`].map(e=>(0,O.jsxs)(`span`,{className:`ripple-map-legend-item`,children:[(0,O.jsx)(`span`,{className:`ripple-node-dot`,style:{background:w(e)}}),C(e).toLowerCase()]},e))})]}),M&&(0,O.jsxs)(`aside`,{className:`ripple-inspect`,"aria-label":`${M.label} detail`,children:[(0,O.jsxs)(`div`,{className:`ripple-inspect-head`,children:[(0,O.jsxs)(`div`,{className:`ripple-inspect-titles`,children:[(0,O.jsx)(`span`,{className:`ripple-node-status`,style:{color:w(M.status)},children:C(M.status)}),M.severity&&(0,O.jsxs)(`span`,{className:`ripple-inspect-sev`,style:{background:w(M.status)},children:[`would page · `,M.severity]})]}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-iconbtn`,onClick:()=>d(null),"aria-label":`Close detail`,children:`✕`})]}),(0,O.jsx)(`div`,{className:`ripple-inspect-name`,children:M.label}),(0,O.jsxs)(`div`,{className:`ripple-inspect-owner`,children:[M.team?`owned by ${M.team}`:``,M.cite?(0,O.jsxs)(`span`,{className:`ripple-inspect-cite`,children:[` · `,M.cite.ref]}):null]}),M.trafficLabel&&(0,O.jsxs)(`div`,{className:`ripple-inspect-traffic`,children:[(0,O.jsx)(`strong`,{children:M.trafficLabel}),(0,O.jsx)(`span`,{children:`live traffic, from tracing — not the diff`})]}),M.contract&&(0,O.jsxs)(`div`,{className:`ripple-inspect-block`,children:[(0,O.jsx)(`div`,{className:`ripple-eyebrow`,children:`The contract`}),(0,O.jsx)(`p`,{children:M.contract})]}),M.problem&&(0,O.jsxs)(`div`,{className:`ripple-inspect-block ripple-inspect-problem`,style:{borderColor:`color-mix(in oklab, ${w(M.status)} 40%, transparent)`},children:[(0,O.jsx)(`div`,{className:`ripple-eyebrow`,style:{color:w(M.status)},children:`What happens`}),(0,O.jsx)(`p`,{children:M.problem})]}),M.altitudeNotes?.[n]&&(0,O.jsxs)(`div`,{className:`ripple-inspect-block`,children:[(0,O.jsx)(`div`,{className:`ripple-eyebrow`,children:`At your altitude`}),(0,O.jsx)(`p`,{children:M.altitudeNotes[n]})]}),M.fix&&(0,O.jsxs)(`div`,{className:`ripple-inspect-fix`,children:[(0,O.jsx)(`div`,{className:`ripple-eyebrow`,children:`Mavéa’s call`}),(0,O.jsx)(`p`,{children:M.fix})]}),r&&(0,O.jsxs)(`button`,{type:`button`,className:`ripple-ask-btn`,onClick:()=>r(M),children:[`Ask about `,M.label]})]})]})}function k(e){let t=e.lastIndexOf(`/`),n=t>0?e.slice(0,t):``;return n?n.split(`/`).slice(0,2).join(`/`):`(root)`}function A(e){let t=e.split(`/`);return t[t.length-1]||e}function j(e){let t=e.toLowerCase();return/\b(api|routes?|server|http|controllers?|handlers?)\b/.test(t)?`Routes + request handling.`:/\b(auth|identity|session|login)\b/.test(t)?`Tokens, sessions, permissions.`:/\b(db|data|models?|schema|migrations?|store)\b/.test(t)?`Schemas, queries, persistence.`:/\b(billing|payments?|charge|orders?)\b/.test(t)?`The money path.`:/\b(jobs?|workers?|queue|tasks?|cron)\b/.test(t)?`Async / background work.`:/\b(ui|components?|views?|pages?|client|web)\b/.test(t)?`The user interface.`:/\b(tests?|__tests__|spec|e2e)\b/.test(t)?`Tests.`:/\b(lib|utils?|shared|common|helpers?)\b/.test(t)?`Shared utilities.`:/\b(config|infra|deploy|ci|scripts?)\b/.test(t)?`Config + tooling.`:/\b(webhooks?|events?|integrations?|connectors?)\b/.test(t)?`Outbound events / integrations.`:``}function M(e){return e.find(e=>/\/(index|main|mod|app|server)\.[a-z]+$/i.test(e))||([...e].sort((e,t)=>e.length-t.length)[0]??e[0]??``)}function N(e,t,n=!1){let r=e.filter(e=>typeof e==`string`&&e.length>0),i=new Map;for(let e of r){let t=k(e);(i.get(t)??i.set(t,[]).get(t)).push(e)}let a=[...i.entries()].sort((e,t)=>t[1].length-e[1].length),o=a.map(([e,t],n)=>{let r=M(t),i=`${t.length} file${t.length===1?``:`s`}`,a=j(e);return{id:`m${n}`,name:e,purpose:a||i,entry:r,owner:``,health:i,explain:`${a?a+` `:``}${i} in ${e}.`+(r?` Start with ${A(r)} and follow what it imports.`:``),startHere:t.slice(0,3).map(A),depends:[],usedBy:[]}}),s=[{id:`pr`,label:t.split(`/`).pop()||t,sub:`THIS REPO`,type:`pr`,status:`affected`,scope:`in-pr`}],c=[],l=a.slice(0,9);l.forEach(([e,t],n)=>{let r=`n${n}`,i=M(t);s.push({id:r,label:e,sub:`${t.length} file${t.length===1?``:`s`}`,type:`module`,status:`affected`,scope:`in-pr`,contract:`${j(e)||`${t.length} files`}`+(i?` · start with ${A(i)}`:``)}),c.push({from:`pr`,to:r,verb:`contains`,status:`affected`})});let u=a.slice(0,4).map(([e])=>e).join(`, `);return{pr:{repo:t,title:`${r.length} file${r.length===1?``:`s`}`,files:r.length,summary:`${t} — ${r.length} file${r.length===1?``:`s`} across ${i.size} area${i.size===1?``:`s`}${u?` (${u})`:``}. Start with the busiest areas and follow what they touch.`,risks:[],readScope:`Read the repo tree: ${r.length} file${r.length===1?``:`s`}.`},nodes:s,edges:c,changes:[],cascades:[],rollout:[],workTypes:[],hotspots:[],suggestions:[],suppressedNits:0,modules:o,onboarding:{firstWeek:a.slice(0,5).map(([e,t])=>({team:e.toUpperCase(),title:e,sub:j(e)||`${t.length} files`,file:M(t)})),requestLife:[]},gate:{decision:`watch`,shipSafe:!1,unackedP0:0,requires:[],deployOrder:`unset`,conditions:[],rationale:`Exploring the repo — there’s no change to gate here.`},provenance:{source:`github`,example:!1,notes:[`Exploring ${t} — ${r.length} files grouped into ${i.size} areas.`,`This is the code as it stands, not a change. The gate and diff views don’t apply.`,...a.length>l.length?[`The map shows the ${l.length} busiest areas; the full list is in Onboarding.`]:[],...n?[`Large repo — only the first slice of files was read.`]:[]]}}}var P={tier:`slow-cheap`,enrichMaxTokens:1600,courseCount:3,coursesMaxTokens:2600,closingMaxTokens:3600,lessonMaxTokens:3600,fetchCodeContext:!1,thinkingLevel:`minimal`},F={tier:`frontier-deep`,enrichMaxTokens:2600,courseCount:5,coursesMaxTokens:3e3,closingMaxTokens:4e3,lessonMaxTokens:7e3,fetchCodeContext:!0,thinkingLevel:`low`},re={tier:`frontier-fast`,enrichMaxTokens:2600,courseCount:5,coursesMaxTokens:3e3,closingMaxTokens:4e3,lessonMaxTokens:6e3,fetchCodeContext:!0,thinkingLevel:`minimal`},ie=e=>!!e&&/(localhost|127\.0\.0\.1|0\.0\.0\.0|host\.docker\.internal|:11434)/i.test(e);function ae(e){let t=e.model.toLowerCase();return ie(e.baseUrl)||/:free\b/.test(t)?`slow-cheap`:/\bopus\b/.test(t)||/\bgpt-5(?!.*mini)/.test(t)||/(^|[^a-z])o[1-9](-|\b)/.test(t)||/gemini-[0-9.]*-?pro/.test(t)||/\bsonnet\b/.test(t)&&!/haiku/.test(t)?`frontier-deep`:`frontier-fast`}function oe(e){switch(ae(e)){case`slow-cheap`:return P;case`frontier-deep`:return F;default:return re}}var se=/^[A-Za-z0-9._-]+$/,I=e=>({kind:`invalid`,reason:e});function ce(e,t){let n=e.trim().replace(/^git@github\.com:/i,`github.com/`);if(!n)return I(`Paste a GitHub PR, compare, or repo URL — or owner/repo#123.`);let r=n.replace(/^https?:\/\//i,``).replace(/^www\./i,``),i=/^github\.com\/(.+)$/i.exec(r),a=/^[A-Za-z0-9._-]+\/[A-Za-z0-9._-]+\/(?:pull|pulls|compare|tree|blob)\b/i.test(n),o=i?i[1]:a?n:null;if(o){let e=o.split(`#`)[0].split(`?`)[0].replace(/\/+$/,``).split(`/`),t=e[0]??``,n=(e[1]??``).replace(/\.git$/,``);if(!t||!n||!se.test(t)||!se.test(n))return I(`That GitHub URL is missing an owner/repo.`);let r=`${t}/${n}`,i=e[2],a=e.slice(3);if(!i)return{kind:`repo`,repo:r};if(i===`pull`||i===`pulls`){let e=(a[0]??``).replace(/\D.*$/,``);return e?{kind:`pr`,repo:r,prNumber:e}:I(`That pull-request URL has no number.`)}if(i===`compare`){let e=decodeURIComponent(a.join(`/`)),t=/^(.+?)\.{2,3}(.+)$/.exec(e);return t?{kind:`compare`,repo:r,base:t[1],head:t[2]}:I(`A compare URL looks like base...head.`)}if(i===`tree`||i===`blob`){let e=a[0],t=a.slice(1).join(`/`);return i===`blob`&&t&&(t=t.replace(/\/?[^/]*$/,``)),{kind:`tree`,repo:r,ref:e||void 0,path:t||void 0}}return{kind:`repo`,repo:r}}let s=/^([A-Za-z0-9._-]+)\/([A-Za-z0-9._-]+?)(?:\.git)?#(\d+)$/.exec(n);if(s)return{kind:`pr`,repo:`${s[1]}/${s[2]}`,prNumber:s[3]};let c=/^([A-Za-z0-9._-]+)\/([A-Za-z0-9._-]+?)(?:\.git)?\/?$/.exec(n);if(c)return{kind:`repo`,repo:`${c[1]}/${c[2]}`};let l=/^#?(\d+)$/.exec(n);return l?t?{kind:`pr`,repo:t,prNumber:l[1]}:I(`Enter owner/repo#number, or connect a default repo first.`):I(`Paste a GitHub PR, compare, or repo URL — or owner/repo#123.`)}var L=`mavea.ripple.tracked.v1`,R=20;function z(){try{let e=localStorage.getItem(L);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>e&&e.id&&e.model):[]}catch{return[]}}function B(e){try{localStorage.setItem(L,JSON.stringify(e.slice(0,R)))}catch{}}function le(){return z().sort((e,t)=>t.savedAt-e.savedAt)}function ue(e){B(z().filter(t=>t.id!==e))}var de=t();function fe(e){return(/^(.*?[.!?])(\s|$)/.exec(e.trim())?.[1]??e).trim()}function pe(e){let t=(0,de.c)(65),{model:n,altitude:r,onNavigate:i,onAsk:a}=e,{pr:o,gate:s}=n,c=n.changes.length===0,l;t[0]!==c||t[1]!==s?(l=c?{label:`Explore`,tone:`neutral`}:s.decision===`pass`?{label:`Clear to ship`,tone:`safe`}:s.decision===`block`?{label:`Hold`,tone:`breaks`}:{label:`Review first`,tone:`watch`},t[0]=c,t[1]=s,t[2]=l):l=t[2];let u=l,d=c?`${Math.max(0,n.nodes.length-1)} areas · ${o.files??0} files`:`+${o.added??0} −${o.removed??0} · ${o.files??n.changes.length} file${(o.files??n.changes.length)===1?``:`s`}`,f;t[3]===o.summary?f=t[4]:(f=fe(o.summary),t[3]=o.summary,t[4]=f);let p=f,m=o.risks[0]?.text,h;t[5]!==n.courses||t[6]!==n.modules?(h=n.courses?.length||n.modules.length?[{id:`onboarding`,label:n.courses?.length?`Onboard · ${n.courses.length} course${n.courses.length===1?``:`s`}`:`Onboarding`}]:[],t[5]=n.courses,t[6]=n.modules,t[7]=h):h=t[7];let g;t[8]===n.changes.length?g=t[9]:(g=n.changes.length?[{id:`workspace`,label:`${n.changes.length} change${n.changes.length===1?``:`s`}`}]:[],t[8]=n.changes.length,t[9]=g);let _;t[10]===n.cascades.length?_=t[11]:(_=n.cascades.length?[{id:`cascade`,label:`The cascade`}]:[],t[10]=n.cascades.length,t[11]=_);let v;t[12]===n.migration?v=t[13]:(v=n.migration?[{id:`migration`,label:`The migration`}]:[],t[12]=n.migration,t[13]=v);let y;t[14]===n.rollout.length?y=t[15]:(y=n.rollout.length?[{id:`rollout`,label:`Safe rollout`}]:[],t[14]=n.rollout.length,t[15]=y);let b;t[16]===n.suggestions.length?b=t[17]:(b=n.suggestions.length?[{id:`suggestions`,label:`${n.suggestions.length} suggestion${n.suggestions.length===1?``:`s`}`}]:[],t[16]=n.suggestions.length,t[17]=b);let x;t[18]===n.hotspots.length?x=t[19]:(x=n.hotspots.length?[{id:`hotspots`,label:`The story`}]:[],t[18]=n.hotspots.length,t[19]=x);let S;t[20]===n.incident?S=t[21]:(S=n.incident?[{id:`incident`,label:`Incident`}]:[],t[20]=n.incident,t[21]=S);let C;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(C={id:`read`,label:`Full read`},t[22]=C):C=t[22];let w;t[23]===c?w=t[24]:(w=c?[]:[{id:`gate`,label:`The gate`}],t[23]=c,t[24]=w);let ee;t[25]!==S||t[26]!==w||t[27]!==h||t[28]!==g||t[29]!==_||t[30]!==v||t[31]!==y||t[32]!==b||t[33]!==x?(ee=[...h,...g,..._,...v,...y,...b,...x,...S,C,...w],t[25]=S,t[26]=w,t[27]=h,t[28]=g,t[29]=_,t[30]=v,t[31]=y,t[32]=b,t[33]=x,t[34]=ee):ee=t[34];let te=ee,T;t[35]===u.label?T=t[36]:(T=(0,O.jsx)(`span`,{className:`ripple-verdict-badge`,children:u.label}),t[35]=u.label,t[36]=T);let E;t[37]===d?E=t[38]:(E=(0,O.jsx)(`span`,{className:`ripple-verdict-scale`,children:d}),t[37]=d,t[38]=E);let D;t[39]!==T||t[40]!==E?(D=(0,O.jsxs)(`div`,{className:`ripple-verdict-top`,children:[T,E]}),t[39]=T,t[40]=E,t[41]=D):D=t[41];let k;t[42]===p?k=t[43]:(k=(0,O.jsx)(`p`,{className:`ripple-verdict-what`,children:p}),t[42]=p,t[43]=k);let A;t[44]!==c||t[45]!==m?(A=m?(0,O.jsxs)(`div`,{className:`ripple-verdict-one`,children:[(0,O.jsx)(`span`,{className:`ripple-verdict-one-tag`,children:c?`Where to start`:`The one thing to check`}),(0,O.jsx)(`span`,{className:`ripple-verdict-one-text`,children:m})]}):!c&&(0,O.jsxs)(`div`,{className:`ripple-verdict-one ripple-verdict-clean`,children:[(0,O.jsx)(`span`,{className:`ripple-verdict-one-tag`,children:`Reads clean`}),(0,O.jsx)(`span`,{className:`ripple-verdict-one-text`,children:`Nothing risky pulled to the top — review and ship.`})]}),t[44]=c,t[45]=m,t[46]=A):A=t[46];let j;t[47]!==D||t[48]!==k||t[49]!==A||t[50]!==u.tone?(j=(0,O.jsxs)(`div`,{className:`ripple-verdict-head`,"data-tone":u.tone,children:[D,k,A]}),t[47]=D,t[48]=k,t[49]=A,t[50]=u.tone,t[51]=j):j=t[51];let M;t[52]!==r||t[53]!==n.edges||t[54]!==n.nodes||t[55]!==a?(M=(0,O.jsx)(`div`,{className:`ripple-verdict-map`,children:(0,O.jsx)(ne,{nodes:n.nodes,edges:n.edges,altitude:r,onAsk:a,animate:!0})}),t[52]=r,t[53]=n.edges,t[54]=n.nodes,t[55]=a,t[56]=M):M=t[56];let N;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,O.jsx)(`span`,{className:`ripple-verdict-chips-tag`,children:`Go deeper`}),t[57]=N):N=t[57];let P;t[58]!==te||t[59]!==i?(P=(0,O.jsxs)(`div`,{className:`ripple-verdict-chips`,"aria-label":`Go deeper`,children:[N,te.map(e=>(0,O.jsx)(`button`,{type:`button`,className:`ripple-verdict-chip`,onClick:()=>i(e.id),children:e.label},e.id))]}),t[58]=te,t[59]=i,t[60]=P):P=t[60];let F;return t[61]!==j||t[62]!==M||t[63]!==P?(F=(0,O.jsxs)(`div`,{className:`ripple-verdict`,children:[j,M,P]}),t[61]=j,t[62]=M,t[63]=P,t[64]=F):F=t[64],F}r();var V=a(()=>i(()=>import(`./generate-Dl2EJ_SR.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]))),me=(...e)=>V().then(t=>t.enrichShipModel(...e)),he=(...e)=>V().then(t=>t.enrichIncident(...e)),ge=(...e)=>V().then(t=>t.enrichOrientation(...e)),_e=(...e)=>V().then(t=>t.enrichCourses(...e)),ve=(...e)=>V().then(t=>t.enrichCourseClosing(...e)),ye=(...e)=>V().then(t=>t.enrichLesson(...e)),be=(...e)=>V().then(t=>t.gatherLessonCode(...e)),xe=a(()=>i(()=>import(`./githubBrowser-BDiuD9dz.js`).then(e=>e.i),__vite__mapDeps([10,2,4,11,12]))),Se=(...e)=>xe().then(t=>t.fetchPrDiff(...e)),Ce=(...e)=>xe().then(t=>t.compareRefs(...e)),we=(...e)=>xe().then(t=>t.fetchRepoTree(...e)),H=a(()=>i(()=>import(`./owners-HRBX7JN_.js`),__vite__mapDeps([13,10,2,4,11,12]))),Te=(...e)=>H().then(t=>t.resolveOwners(...e)),Ee=a(()=>i(()=>import(`./codeContext-goNoLAIr.js`),__vite__mapDeps([14,10,2,4,11,12]))),De=(...e)=>Ee().then(t=>t.gatherCodeContext(...e)),Oe=e=>e?/^([\w.-]+\/[\w.-]+)/.exec(e.trim())?.[1]:void 0,ke=s(()=>i(()=>import(`./ShipRead-CJJmY-wy.js`).then(e=>({default:e.ShipRead})),__vite__mapDeps([15,16,2,17,18]))),Ae=s(()=>i(()=>import(`./ShipIncident-DMLb14Lx.js`).then(e=>({default:e.ShipIncident})),__vite__mapDeps([19,17,2,16,18,20]))),je=s(()=>i(()=>import(`./ShipWorkspace-_MtKAiKH.js`).then(e=>({default:e.ShipWorkspace})),__vite__mapDeps([21,17,2,16,18,22,23]))),Me=s(()=>i(()=>import(`./ShipCascade-Bf-qDWMb.js`).then(e=>({default:e.ShipCascade})),__vite__mapDeps([24,17,2,16,18,22,25]))),Ne=s(()=>i(()=>import(`./ShipMigration-ZnzL-1rC.js`).then(e=>({default:e.ShipMigration})),__vite__mapDeps([26,16,2,17,18,27]))),Pe=s(()=>i(()=>import(`./ShipRollout-Dt2TgI0L.js`).then(e=>({default:e.ShipRollout})),__vite__mapDeps([28,16,2,17,18,29]))),Fe=s(()=>i(()=>import(`./ShipCourse-Up9gRR07.js`).then(e=>({default:e.ShipCourse})),__vite__mapDeps([30,17,2,16,18,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46]))),Ie=s(()=>i(()=>import(`./ShipOnboarding-DUxtx2Vr.js`).then(e=>({default:e.ShipOnboarding})),__vite__mapDeps([47,17,2,16,18,48]))),Le=s(()=>i(()=>import(`./ShipHotspots-lGioTtf1.js`).then(e=>({default:e.ShipHotspots})),__vite__mapDeps([49,17,2,16,18,50]))),Re=s(()=>i(()=>import(`./ShipSuggestions-BrAXTjAR.js`).then(e=>({default:e.ShipSuggestions})),__vite__mapDeps([51,17,2,16,18,52]))),U=s(()=>i(()=>import(`./ShipGate-D4BP41-h.js`).then(e=>({default:e.ShipGate})),__vite__mapDeps([53,17,2,18,54]))),ze=s(()=>i(()=>import(`./RippleAskController-9SxpZnHX.js`).then(e=>({default:e.RippleAskController})),__vite__mapDeps([55,17,2,16,18,3,4,5,6,7,56,57,10,11,12,45,58]))),Be=ze.Component,Ve=ke.Component,He=Ae.Component,Ue=je.Component,We=Me.Component,Ge=Ne.Component,Ke=Pe.Component,qe=Fe.Component,Je=Ie.Component,Ye=Le.Component,Xe=Re.Component,Ze=U.Component,Qe=(e,t)=>`${e}::${t}`;function $e(e){try{return localStorage.getItem(e)}catch{return null}}function et(e,t){try{localStorage.setItem(e,t)}catch{}}var tt=[{id:`newgrad`,label:`New grad`},{id:`working`,label:`Working`},{id:`principal`,label:`Principal`}],nt=new Set([`anthropic`,`openai`,`gemini`,`grok`,`openrouter`]);function rt(e){return{read:ke.preload,incident:Ae.preload,workspace:je.preload,cascade:Me.preload,migration:Ne.preload,rollout:Pe.preload,course:Fe.preload,onboarding:Ie.preload,hotspots:Le.preload,suggestions:Re.preload,gate:U.preload}[e]?.()??Promise.resolve()}var it={understand:`Understand`,ship:`Ship the change`},W=e=>e===`course`?`courses`:e===`onboarding`?`orientation`:`verdict`,at=[{id:`verdict`,label:`Overview`,intent:`The verdict, the one thing to check, and the change rippling out.`,jobs:[`ship`],applies:e=>e.changes.length>0},{id:`read`,label:`Mavéa’s read`,intent:`The whole change in two sentences, risks pulled to the top.`,jobs:[`ship`,`understand`],applies:e=>!!e.pr.summary||e.changes.length>0},{id:`course`,label:`Courses`,intent:`A leveled curriculum built from THIS code — beginner → expert, with checkpoints.`,jobs:[`understand`],applies:(e,t)=>!!e.courses?.length||t.courses===`enriching`||t.hasRepo},{id:`onboarding`,label:`Map & request life`,intent:`The modules, who owns what, and a request’s life through the code.`,jobs:[`understand`],applies:(e,t)=>e.modules.length>0||t.hasRepo},{id:`incident`,label:`Incident`,intent:`A live alert, traced back to its likely cause — the rollback and who to wake.`,jobs:[`ship`,`understand`],applies:e=>!!e.incident},{id:`workspace`,label:`Workspace`,intent:`Pick a change — its diff, intent, and cause & effect assemble.`,jobs:[`ship`],applies:e=>e.changes.length>0},{id:`impact`,label:`Impact map`,intent:`Everything this change touches, and what those changes hit downstream.`,jobs:[`ship`,`understand`],applies:e=>e.nodes.length>0},{id:`cascade`,label:`The cascade`,intent:`How one line becomes a P0 — hop by hop, before anyone gets paged.`,jobs:[`ship`],applies:e=>e.cascades.length>0},{id:`migration`,label:`The migration`,intent:`The cost of a schema change isn’t in the SQL — it’s in the table size.`,jobs:[`ship`],applies:e=>!!e.migration},{id:`rollout`,label:`Safe rollout`,intent:`One safe order — so you ship with your eyes open.`,jobs:[`ship`],applies:e=>e.rollout.length>0},{id:`hotspots`,label:`The story`,intent:`Why a line exists, what it broke, and who to ask.`,jobs:[`understand`],applies:e=>e.hotspots.length>0},{id:`suggestions`,label:`Suggestions`,intent:`The “did you think about X?” a staff engineer would raise — grounded, and rare.`,jobs:[`ship`],applies:e=>e.suggestions.length>0},{id:`gate`,label:`The gate`,intent:`A picture for you, a pre-merge check for the agents.`,jobs:[`ship`],applies:e=>e.changes.length>0}];function G({model:e,cfg:t,speak:n,showcase:r,onClose:i}){let[a,s]=(0,T.useState)(!1),[u,C]=(0,T.useState)(!1),[w,E]=(0,T.useState)(`verdict`),[D,k]=(0,T.useState)(`working`),[A,j]=(0,T.useState)(e),M=(0,T.useRef)(e),[P,F]=(0,T.useState)({verdict:`floor`,orientation:`floor`,courses:`floor`}),re=(0,T.useRef)(0),ie=(0,T.useRef)(null),ae=(0,T.useRef)(null),se=(0,T.useRef)(null),I=(0,T.useRef)(null),L=(0,T.useRef)(!1),R=(0,T.useRef)(!1),z=(0,T.useRef)(void 0),B=(0,T.useRef)(void 0),de=(0,T.useRef)(void 0),fe=(0,T.useRef)(null),[V,xe]=(0,T.useState)(!1),[H,Ee]=(0,T.useState)(!1),[ke,Ae]=(0,T.useState)(0),[je,Me]=(0,T.useState)(null),Ne=(0,T.useRef)([]),Pe=(0,T.useRef)(new Map),Fe=(0,T.useRef)(new Map),Ie=(0,T.useCallback)(e=>{Me(t=>({text:e,nonce:(t?.nonce??0)+1})),Ee(!0)},[]),Le=(0,T.useMemo)(()=>t?{model:A,cfg:t,altitude:D,diffText:fe.current?.text,repo:z.current,gitRef:B.current,treePaths:Ne.current,lessonDetails:Fe.current,fileCache:Pe.current}:null,[t,A,D]),Re=(0,T.useCallback)(()=>{Ae(e=>e+1),Ne.current=[],Pe.current.clear(),Fe.current.clear()},[]),U=(0,T.useCallback)(()=>{ie.current?.abort(),ae.current?.abort(),se.current?.abort(),I.current?.abort()},[]);(0,T.useEffect)(()=>U,[U]);let G=(0,T.useRef)(0);(0,T.useEffect)(()=>{j(e),M.current=e,z.current=void 0,L.current=!0,R.current=!0,F({verdict:`done`,orientation:e.modules.length?`done`:`floor`,courses:e.courses?.length?`done`:`floor`})},[e]);let ot=(0,T.useRef)(!1);(0,T.useEffect)(()=>{ot.current||(ot.current=!0,!(!e.provenance.example||r)&&($e(`ripple.seenWorkedExample`)===`1`?(Mt(`github`),Y(!0)):et(`ripple.seenWorkedExample`,`1`)))},[e.provenance.example,r]);let K=(0,T.useMemo)(()=>t&&nt.has(t.provider)?t:{provider:`gemini`,model:`gemini-3.5-flash`,apiKey:``},[t]),q=(0,T.useMemo)(()=>oe(K),[K]),[st,ct]=(0,T.useState)(()=>$e(`ripple.hint.fastModel.dismissed`)===`1`),[lt,ut]=(0,T.useState)(!1),dt=(0,T.useCallback)(()=>{ct(!0),et(`ripple.hint.fastModel.dismissed`,`1`)},[]),ft=(0,T.useCallback)((e,t,n)=>{let r=++re.current;ie.current?.abort();let i=new AbortController;ie.current=i,xe(!1),F(e=>({...e,verdict:`enriching`})),(async()=>{let a=n&&q.fetchCodeContext?await De(e,n,void 0,i.signal).catch(()=>``):``;if(i.signal.aborted||re.current!==r)return;let o=await me(e,t,K,{signal:i.signal,codeContext:a||void 0,maxTokens:q.enrichMaxTokens,thinkingLevel:q.thinkingLevel,onPartial:t=>{re.current===r&&j(y(e,t,K.model))}});re.current===r&&(o?(j(o),M.current=o,F(e=>({...e,verdict:`done`}))):(j(e),M.current=e,F(e=>({...e,verdict:`error`}))))})()},[K,q]),pt=(0,T.useCallback)((e,t,n)=>{let r=h(g(e),t);return r.changes.length===0?0:(G.current++,U(),M.current=r,z.current=n,B.current=r.pr.branch||void 0,de.current=void 0,fe.current={text:e,repo:n},L.current=!1,R.current=!1,Re(),j(r),E(`verdict`),ut(!0),F({verdict:`enriching`,orientation:`floor`,courses:`floor`}),ft(r,e,n),r.changes.length)},[U,ft,Re]),mt=(0,T.useCallback)(()=>{let e=fe.current;e&&ft(M.current,e.text,e.repo)},[ft]),ht=(0,T.useCallback)(e=>{let t=M.current;return t.modules.length?t.modules:N(t.changes.map(e=>e.file),e,!1).modules},[]),gt=(0,T.useCallback)((e=!1)=>{let t=z.current;if(!t||L.current&&!e)return;L.current=!0,ae.current?.abort();let n=new AbortController;ae.current=n,F(e=>({...e,orientation:`enriching`})),(async()=>{let e=await ge({...M.current,modules:ht(t)},t,B.current,K,{signal:n.signal,maxTokens:q.enrichMaxTokens,thinkingLevel:q.thinkingLevel}).catch(()=>null);if(n.signal.aborted)return;let r=e?await Te(e,t,B.current,n.signal).catch(()=>e):{...M.current,modules:ht(t)};n.signal.aborted||(j(e=>({...e,modules:r.modules,nodes:r.nodes,onboarding:r.onboarding})),F(t=>({...t,orientation:e?`done`:`error`})))})()},[K,q,ht]),J=(0,T.useCallback)((e=!1,t)=>{let n=z.current;if(!n||R.current&&!e)return;R.current=!0,se.current?.abort();let r=new AbortController;se.current=r;let i=setTimeout(()=>r.abort(),9e4);F(e=>({...e,courses:`enriching`})),(async()=>{try{let i=f(`courses|${n}|${B.current??``}|${t??``}`,K.model),a=e?null:await m(i);if(r.signal.aborted)return;let o={...M.current,modules:ht(n)},s=a?.courses??await _e(o,n,B.current,K,{signal:r.signal,count:q.courseCount,maxTokens:q.coursesMaxTokens,thinkingLevel:q.thinkingLevel,focus:t}).catch(()=>void 0);if(r.signal.aborted)return;if(s?.length){j(e=>({...e,courses:s})),F(e=>({...e,courses:`done`}));let e=a?a.commitSha:de.current;a||p(i,{courses:s,commitSha:de.current}),te(n,{commitSha:e??``,ref:B.current??``,model:K.model,builtAt:Date.now(),courseTitles:s.map(e=>e.title)})}else F(e=>({...e,courses:`error`}))}finally{clearTimeout(i)}})()},[K,q,ht]),_t=(0,T.useCallback)(()=>J(!0),[J]),[vt,yt]=(0,T.useState)(void 0),bt=(0,T.useCallback)(e=>{yt(e),R.current=!1,J(!0,e)},[J]),xt=(0,T.useCallback)((e,t)=>{let n=z.current;return n?Ce(e,t,n):Promise.resolve({ok:!1,detail:`No connected repo.`})},[]),St=(0,T.useCallback)(async(e,t,n=!1,r)=>{let i=z.current;if(!i)return null;let{codeContext:a,contentHash:o}=await be(t,B.current,i),s=f(`lesson|${i}|${e.title}|${t.title}|${r??`working`}|${o}`,K.model);if(!n){let n=await m(s);if(n)return Fe.current.set(Qe(e.title,t.title),n),n}let c=await ye(e,t,a,K,{maxTokens:q.lessonMaxTokens,thinkingLevel:q.thinkingLevel,altitude:r}).catch(()=>null);return c&&(p(s,c),Fe.current.set(Qe(e.title,t.title),c)),c},[K,q]),Ct=(0,T.useCallback)(async(e,t=!1)=>{let n=z.current;if(!n)return;let r=f(`closing|${n}|${e.title}|${B.current??``}`,K.model);if(!t){let e=await m(r);if(e)return e}let i=new AbortController,a=setTimeout(()=>i.abort(),9e4),o=await ve(e,K,{signal:i.signal,maxTokens:q.closingMaxTokens,thinkingLevel:q.thinkingLevel}).catch(()=>void 0).finally(()=>clearTimeout(a));return o&&p(r,o),o},[K,q]),wt=(0,T.useCallback)(e=>{E(e);let t=W(e);t===`courses`?J():t===`orientation`&>()},[J,gt]),[Tt,Y]=(0,T.useState)(!1),[Et,Dt]=(0,T.useState)(``),[Ot,kt]=(0,T.useState)(``),At=(0,T.useCallback)(()=>{let e=Et.trim();if(!_(e)){kt("That doesn’t look like a unified diff — paste the output of `git diff` (or a .diff / .patch file).");return}if(pt(e)===0){kt(`No changed files found in that diff.`);return}Y(!1),Dt(``),kt(``)},[Et,pt]),[jt,Mt]=(0,T.useState)(`github`),[Nt,Pt]=(0,T.useState)(()=>le()),Ft=(0,T.useCallback)(e=>{Pt(le()),Mt(e),Ht(``),Z(``),rn(``),on(x()),Y(!0)},[]),[It,Lt]=(0,T.useState)(``),[Rt,zt]=(0,T.useState)(``),Bt=(0,T.useCallback)(()=>{let e=It.trim();if(!e){zt(`Paste the alert, error, or log line that fired.`);return}G.current++;let t=A.changes.length>0&&!A.provenance.example?A:void 0,n=v(e,t);if(j(n),E(`incident`),Y(!1),Lt(``),zt(``),K){I.current?.abort();let t=new AbortController;I.current=t,he(n,e,K,t.signal).then(e=>j(t=>t.incident===n.incident?e:t))}},[It,A,K]),[Vt,Ht]=(0,T.useState)(``),[X,Ut]=(0,T.useState)(``),[Wt,Gt]=(0,T.useState)(``),[Kt,qt]=(0,T.useState)(``),[Jt,Yt]=(0,T.useState)(``),[Xt,Zt]=(0,T.useState)(``),[Qt,$t]=(0,T.useState)(``),[en,Z]=(0,T.useState)(``),[Q,tn]=(0,T.useState)(!1),[nn,rn]=(0,T.useState)(``),[an,on]=(0,T.useState)(!1),sn=(0,T.useRef)(null);(0,T.useEffect)(()=>()=>sn.current?.abort(),[]);let cn=(0,T.useCallback)(async e=>{let t=G.current;sn.current?.abort();let n=new AbortController;sn.current=n,tn(!0),Z(``);let r=await e(n.signal);if(!(n.signal.aborted||t!==G.current)){if(tn(!1),!r.ok||!r.diff){Z(r.detail);return}if(pt(r.diff,r.label,Oe(r.label))===0){Z(`That diff had no changed files to analyze.`);return}Y(!1)}},[pt]),ln=(0,T.useCallback)(()=>{let e=Wt.trim();if(!e){Z(`Enter a pull-request number.`);return}cn(t=>Se(e,X.trim()||void 0,t))},[Wt,X,cn]),un=(0,T.useCallback)(()=>{let e=Kt.trim(),t=Jt.trim();if(!e||!t){Z(`Enter a base and a head ref to compare.`);return}cn(n=>Ce(e,t,X.trim()||void 0,n))},[Kt,Jt,X,cn]),dn=(0,T.useCallback)(()=>{let e=nn.trim();e&&b(e).then(e=>{on(e),rn(``),e&&Z(``)})},[nn]),fn=(0,T.useCallback)(()=>{S().then(()=>{on(!1),rn(``)})},[]),pn=(0,T.useCallback)(async(e,t,n)=>{let r=(e??X).trim()||void 0,i=(t??Xt).trim()||void 0,a=(n??Qt).trim(),o=G.current;sn.current?.abort();let s=new AbortController;sn.current=s,tn(!0),Z(``);let c=await we(i,r,s.signal);if(s.signal.aborted||o!==G.current)return;if(tn(!1),!c.ok||!c.paths){Z(c.detail);return}let l=a.replace(/^\/+|\/+$/g,``),u=l?c.paths.filter(e=>e===l||e.startsWith(l+`/`)):c.paths;if(u.length===0){Z(`No files under “${l}”.`);return}let d=N(u,l?`${c.label??`repo`}/${l}`:c.label??`repo`,c.truncated),f=Oe(c.label),p=i,m=f?!!ee(f):!1;G.current++,U(),++re.current,M.current=d,z.current=f,B.current=p,de.current=c.sha,fe.current=null,L.current=!1,R.current=!1,Re(),Ne.current=u,j(d),E(m?`course`:`onboarding`),ut(!0),Y(!1),F({verdict:`done`,orientation:`floor`,courses:`floor`}),f&&(gt(),m&&J())},[Xt,X,Qt,U,gt,J,Re]),mn=(0,T.useCallback)(()=>{let e=ce(Vt,X.trim()||void 0);if(e.kind===`invalid`){Z(e.reason);return}if(Z(``),e.kind===`pr`)cn(t=>Se(e.prNumber,e.repo,t));else if(e.kind===`compare`)cn(t=>Ce(e.base,e.head,e.repo,t));else{let t=e.kind===`tree`?e.ref:void 0,n=e.kind===`tree`?e.path:void 0;pn(e.repo,t,n)}},[Vt,X,cn,pn]),hn=A.changes.length>0?`ship`:`understand`,gn=(0,T.useMemo)(()=>{let e={orientation:P.orientation,courses:P.courses,hasRepo:!!z.current},t=at.filter(t=>t.applies(A,e)),n=hn===`ship`?`understand`:`ship`,r=t.filter(e=>e.jobs.includes(hn)),i=t.filter(e=>!e.jobs.includes(hn)&&e.jobs.includes(n));return[{job:hn,items:r},{job:n,items:i}].filter(e=>e.items.length>0)},[A,P.orientation,P.courses,hn]),_n=(0,T.useMemo)(()=>gn.flatMap(e=>e.items),[gn]);(0,T.useEffect)(()=>{_n.length&&!_n.some(e=>e.id===w)&&E(_n[0].id)},[_n,w]);let vn=(0,T.useCallback)(e=>{u&&n&&n(`${e.label}. ${e.problem??e.contract??``} ${e.fix??``}`.trim()),Ie(`Explain ${e.label}${e.contract?` — ${e.contract}`:``}`)},[u,n,Ie]),yn=(0,T.useCallback)(e=>{let t=A;switch(e){case`verdict`:return t.pr.summary;case`read`:return t.pr.summary;case`incident`:return t.incident?`${t.incident.symptom}. ${t.incident.rootCause}`:``;case`workspace`:return`Here are all ${t.changes.length} changes, grouped by subsystem. Pick one to see its diff and what it touches.`;case`impact`:{let e=t.nodes.filter(e=>e.status===`breaks`).length;return e?`Everything this change touches. ${e} of these break — the coral lines are where.`:`Everything this change touches. Nothing breaks downstream.`}case`cascade`:{let e=t.cascades[0];return e?`Watch how one line becomes a ${e.incidentSeverity}: ${e.trigger}, and ${e.incident}.`:``}case`migration`:return t.migration?`The migration looks harmless, but on ${t.migration.rows} rows it costs ${t.migration.lockCost}.`:``;case`rollout`:return`Ship in this order and the change never breaks a caller mid-rollout.`;case`course`:return t.courses?.length?`A guided curriculum — ${t.courses.length} ${t.courses.length===1?`course`:`courses`} that take you from oriented to fearless, built from this code.`:`A leveled course, built from this code, so you can change it without fear.`;case`onboarding`:return`Understand the whole service — module by module, and a request's life through it.`;case`hotspots`:return`The story behind the lines worth knowing before you touch them.`;case`suggestions`:return`${t.suggestions.length} things worth your time. ${t.suppressedNits} shallow nits suppressed.`;case`gate`:return t.gate.rationale;default:return``}},[A]);(0,T.useEffect)(()=>{let e=e=>{if(e.key===`Escape`){if(Tt){Y(!1);return}if(H){Ee(!1);return}i()}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[i,Tt,H]);let bn=(0,T.useRef)(null);l(bn);let $=A.pr,xn=A.provenance.example,Sn=(0,T.useCallback)(()=>{switch(w){case`verdict`:return(0,O.jsx)(pe,{model:A,altitude:D,onNavigate:e=>wt(e),onAsk:vn});case`read`:return(0,O.jsx)(Ve,{model:A,altitude:D});case`incident`:return(0,O.jsx)(He,{model:A,altitude:D});case`impact`:return(0,O.jsx)(ne,{nodes:A.nodes,edges:A.edges,altitude:D,onAsk:vn});case`workspace`:return(0,O.jsx)(Ue,{model:A,altitude:D});case`cascade`:return(0,O.jsx)(We,{model:A});case`migration`:return(0,O.jsx)(Ge,{model:A,altitude:D});case`rollout`:return(0,O.jsx)(Ke,{model:A,altitude:D});case`course`:return(0,O.jsx)(qe,{model:A,altitude:D,building:P.courses===`enriching`,onRegenerate:z.current?_t:void 0,loadLessonDetail:z.current?St:void 0,loadCourseClosing:z.current?Ct:void 0,courseFocus:vt,onCourseFocus:z.current?bt:void 0,speak:u?n:void 0,commitSha:z.current?de.current:void 0,compareSinceBuilt:z.current?xt:void 0,openFullAnalysis:z.current?pt:void 0,onAskAboutLesson:Ie});case`onboarding`:return(0,O.jsx)(Je,{model:A,altitude:D});case`hotspots`:return(0,O.jsx)(Ye,{model:A,altitude:D});case`suggestions`:return(0,O.jsx)(Xe,{model:A,altitude:D});case`gate`:return(0,O.jsx)(Ze,{model:A,altitude:D});default:throw Error(`Ripple: no section renderer for "${w}"`)}},[w,A,D,vn,wt,P.courses,_t,St,Ct,vt,bt,xt,pt,u,n,Ie]);return(0,O.jsx)(`div`,{className:`ripple-scrim`,"data-expanded":a?`true`:void 0,onClick:i,role:`button`,tabIndex:0,"aria-label":`Close Ripple`,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i())},children:(0,O.jsxs)(`section`,{className:`ripple-panel`,role:`dialog`,"aria-label":`Ripple`,ref:bn,onClick:e=>e.stopPropagation(),children:[(0,O.jsxs)(`header`,{className:`ripple-head`,children:[(0,O.jsxs)(`div`,{className:`ripple-id`,children:[(0,O.jsx)(`span`,{className:`ripple-word`,children:`Ripple`}),(0,O.jsx)(`span`,{className:`ripple-sep`,"aria-hidden":`true`}),(0,O.jsx)(`span`,{className:`ripple-repo`,children:$.repo}),$.number&&(0,O.jsx)(`span`,{className:`ripple-pr`,children:$.number}),$.branch&&(0,O.jsxs)(`span`,{className:`ripple-branch`,children:[$.branch,$.base?` → ${$.base}`:``]})]}),(0,O.jsxs)(`div`,{className:`ripple-head-right`,children:[($.added!=null||$.removed!=null)&&(0,O.jsxs)(`span`,{className:`ripple-stat`,children:[$.added!=null&&(0,O.jsxs)(`span`,{className:`ripple-add`,children:[`+`,$.added.toLocaleString()]}),` `,$.removed!=null&&(0,O.jsxs)(`span`,{className:`ripple-del`,children:[`−`,$.removed.toLocaleString()]}),$.files==null?``:` · ${$.files} files`]}),$.p0Ways?(0,O.jsxs)(`span`,{className:`ripple-p0`,title:`Ways this change could cause a P0`,children:[(0,O.jsx)(`span`,{className:`ripple-p0-dot`,"aria-hidden":`true`}),$.p0Ways,` `,$.p0Ways===1?`way`:`ways`,` to cause a P0`]}):null,(0,O.jsx)(`button`,{type:`button`,className:`ripple-ask-toggle`+(H?` is-active`:``),onClick:()=>Ee(e=>!e),...o(ze.preload),"aria-pressed":H,"aria-label":H?`Close the ask rail`:`Ask about this repo or PR`,title:H?`Hide ask`:`Ask about this repo or PR`,children:`Ask`}),n&&(0,O.jsx)(`button`,{type:`button`,className:`ripple-iconbtn`,onClick:()=>C(e=>!e),"aria-pressed":u,"aria-label":u?`Turn narration off`:`Turn narration on`,title:u?`Narration on — the orb speaks the walkthrough`:`Narration off`,children:u?`🔊`:`🔇`}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-iconbtn`,onClick:()=>s(e=>!e),"aria-label":a?`Exit full screen`:`Expand to full screen`,title:a?`Exit full screen`:`Full screen`,children:a?`⤡`:`⤢`}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-iconbtn`,onClick:i,"aria-label":`Close Ripple`,children:`✕`})]})]}),q.tier===`slow-cheap`&<&&!st&&(0,O.jsxs)(`div`,{className:`ripple-hint`,role:`note`,children:[(0,O.jsx)(`span`,{className:`ripple-hint-text`,children:`Tip: a flash or lite model makes Ripple feel instant — your model still works, it’s just slower here.`}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-hint-dismiss`,onClick:dt,"aria-label":`Dismiss tip`,children:`Got it`})]}),(xn||(A.provenance.notes?.length??0)>0)&&(0,O.jsxs)(`div`,{className:`ripple-example`,"data-real":xn?void 0:`true`,role:`note`,children:[(0,O.jsx)(`span`,{className:`ripple-example-dot`,"aria-hidden":`true`}),(0,O.jsx)(`span`,{className:`ripple-example-text`,children:xn?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`strong`,{children:`Worked example`}),` — a sample of a GitHub-connected analysis, not your code. It shows only what GitHub gives us (diff, files, in-repo callers).`]}):(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`strong`,{children:A.changes.length===0?`Exploring`:`From your diff`}),` —`,` `,A.provenance.notes?.[0]]})}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-example-cta`,onClick:()=>Ft(`github`),children:xn?`Run on your own code →`:`New`})]}),(0,O.jsxs)(`div`,{className:`ripple-body`,children:[(0,O.jsxs)(`nav`,{className:`ripple-rail`,"aria-label":`Sections`,children:[gn.map(e=>(0,O.jsxs)(`div`,{className:`ripple-rail-group`,children:[gn.length>1&&(0,O.jsx)(`div`,{className:`ripple-rail-grouplabel`,children:it[e.job]}),e.items.map(e=>(0,O.jsxs)(`button`,{type:`button`,className:`ripple-rail-item`,"data-ripple-section":e.id,"data-active":e.id===w?`true`:void 0,"data-enriching":P[W(e.id)]===`enriching`?`true`:void 0,onClick:()=>{if(wt(e.id),u&&n){let t=yn(e.id);t&&n(t)}},...o(()=>rt(e.id)),children:[(0,O.jsx)(`span`,{className:`ripple-rail-label`,children:e.label}),P[W(e.id)]===`enriching`&&(0,O.jsx)(`span`,{className:`ripple-rail-spark`,"aria-hidden":`true`})]},e.id))]},e.job)),(0,O.jsxs)(`div`,{className:`ripple-rail-altitude`,children:[(0,O.jsx)(`div`,{className:`ripple-eyebrow`,children:`Explain for`}),(0,O.jsx)(`div`,{className:`ripple-alt`,role:`group`,"aria-label":`Explanation altitude`,children:tt.map(e=>(0,O.jsx)(`button`,{type:`button`,"data-active":D===e.id?`true`:void 0,onClick:()=>k(e.id),children:e.label},e.id))})]})]}),(0,O.jsxs)(`div`,{className:`ripple-main`,children:[P[W(w)]===`enriching`&&W(w)!==`courses`&&(0,O.jsxs)(`div`,{className:`ripple-sharpening-wrap`,children:[(0,O.jsxs)(`div`,{className:`ripple-sharpening`,role:`status`,"aria-live":`polite`,children:[(0,O.jsx)(`span`,{className:`ripple-sharpening-dot`,"aria-hidden":`true`}),W(w)===`orientation`?`Reading the repo to map it out…`:`Sharpening with the model’s read…`]}),(0,O.jsx)(`div`,{className:`ripple-progress`,"aria-hidden":`true`})]}),W(w)===`verdict`&&P.verdict===`error`&&!V&&(0,O.jsxs)(`div`,{className:`ripple-verdict-err`,role:`note`,children:[(0,O.jsx)(`span`,{className:`ripple-verdict-err-text`,children:`The model’s read didn’t land — showing the grounded floor. Connect a key in Settings → Live, or try again.`}),(0,O.jsxs)(`div`,{className:`ripple-verdict-err-actions`,children:[(0,O.jsx)(`button`,{type:`button`,className:`ripple-verdict-err-retry`,onClick:mt,children:`Try again`}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-verdict-err-dismiss`,onClick:()=>xe(!0),"aria-label":`Dismiss`,children:`Dismiss`})]})]}),(0,O.jsx)(c,{label:`${at.find(e=>e.id===w)?.label??`Ripple`} section`,children:Sn()})]}),H&&(0,O.jsx)(c,{label:`Ripple ask rail`,children:(0,O.jsx)(Be,{ctx:Le,onClose:()=>Ee(!1),altitude:D,seed:je,repo:$.repo||``,gitRef:$.branch||`HEAD`,focusFile:A.changes[0]?.file??A.modules[0]?.entry},ke)})]}),Tt&&(0,O.jsx)(`div`,{className:`ripple-paste`,role:`dialog`,"aria-label":`Run Ripple on a diff`,children:(0,O.jsxs)(`div`,{className:`ripple-paste-card`,children:[(0,O.jsxs)(`div`,{className:`ripple-paste-head`,children:[(0,O.jsxs)(`div`,{children:[(0,O.jsx)(`div`,{className:`ripple-paste-title`,children:`Run Ripple on your code`}),(0,O.jsx)(`div`,{className:`ripple-paste-sub`,children:`Read-only — Ripple analyzes a change and never writes, comments, or merges.`})]}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-iconbtn`,onClick:()=>Y(!1),"aria-label":`Cancel`,children:`✕`})]}),(0,O.jsx)(d,{kind:`code`,from:`live`}),jt===`incident`?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`textarea`,{className:`ripple-paste-input`,value:It,onChange:e=>{Lt(e.target.value),Rt&&zt(``)},placeholder:`PagerDuty: [payments-api] P1 — 5xx rate 38% on /charge
|
|
3
|
-
or paste the error / log line that fired`,spellCheck:!1}),Rt&&(0,O.jsx)(`div`,{className:`ripple-paste-err`,children:Rt}),(0,O.jsxs)(`div`,{className:`ripple-paste-actions`,children:[(0,O.jsx)(`button`,{type:`button`,className:`ripple-paste-go`,onClick:Bt,children:`Trace it back`}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-paste-cancel`,onClick:()=>Y(!1),children:`Cancel`})]}),(0,O.jsx)(`div`,{className:`ripple-paste-hint`,children:`Ripple traces the alert back to its likely cause — read-only. If a change is open, the trace grounds in it. It never reverts, deploys, or pages anyone.`})]}):jt===`tracked`?(0,O.jsx)(`div`,{className:`ripple-tracked`,children:Nt.length===0?(0,O.jsxs)(`div`,{className:`ripple-tracked-empty`,children:[`Nothing tracked yet. Open a change and hit `,(0,O.jsx)(`strong`,{children:`☆ Track`}),` to keep an eye on it — it’s saved on this device only.`]}):Nt.map(e=>(0,O.jsxs)(`div`,{className:`ripple-tracked-row`,children:[(0,O.jsxs)(`button`,{type:`button`,className:`ripple-tracked-open`,onClick:()=>{j(e.model),E(`verdict`),Y(!1)},children:[(0,O.jsx)(`span`,{className:`ripple-tracked-label`,children:e.label}),(0,O.jsxs)(`span`,{className:`ripple-tracked-meta`,children:[e.source,` · `,e.model.changes.length||e.model.modules.length,` items`]})]}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-iconbtn`,"aria-label":`Untrack ${e.label}`,onClick:()=>{ue(e.id),Pt(le())},children:`✕`})]},e.id))}):jt===`paste`?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`textarea`,{className:`ripple-paste-input`,value:Et,onChange:e=>{Dt(e.target.value),Ot&&kt(``)},placeholder:`diff --git a/auth/token.ts b/auth/token.ts
|
|
4
|
-
@@ -42 +42 @@
|
|
5
|
-
-validateToken(t: string)
|
|
6
|
-
+validateToken(t: string, opts: VerifyOpts)`,spellCheck:!1}),Ot&&(0,O.jsx)(`div`,{className:`ripple-paste-err`,children:Ot}),(0,O.jsxs)(`div`,{className:`ripple-paste-actions`,children:[(0,O.jsx)(`button`,{type:`button`,className:`ripple-paste-go`,onClick:At,children:`Analyze diff`}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-paste-cancel`,onClick:()=>Y(!1),children:`Cancel`})]}),(0,O.jsx)(`div`,{className:`ripple-paste-hint`,children:`Parsed on your device first. The deterministic floor stays local; optional model enrichment sends relevant diff and code context through this deployment to your selected model.`})]}):(0,O.jsxs)(`div`,{className:`ripple-gh`,children:[(0,O.jsxs)(`label`,{className:`ripple-gh-field`,children:[(0,O.jsxs)(`span`,{children:[`Paste a GitHub link`,X.trim()?(0,O.jsxs)(`em`,{children:[` — or a PR number for `,X.trim()]}):null]}),(0,O.jsx)(`input`,{value:Vt,onChange:e=>{Ht(e.target.value),en&&Z(``)},onKeyDown:e=>{e.key===`Enter`&&mn()},placeholder:`github.com/owner/repo/pull/482 · owner/repo · a compare URL`,spellCheck:!1})]}),(0,O.jsxs)(`div`,{className:`ripple-paste-actions`,children:[(0,O.jsx)(`button`,{type:`button`,className:`ripple-paste-go`,disabled:Q,onClick:mn,children:Q?`Loading…`:`Analyze`}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-paste-cancel`,onClick:()=>Y(!1),children:`Cancel`})]}),en&&(0,O.jsx)(`div`,{className:`ripple-paste-err`,children:en}),(0,O.jsx)(`div`,{className:`ripple-paste-hint`,children:`Read-only — Ripple reads the diff, files, and in-repo callers of a PR, branch, or repo. It never comments, approves, or merges. Public repos need nothing.`}),(0,O.jsxs)(`div`,{className:`ripple-gh-token`,children:[(0,O.jsxs)(`div`,{className:`ripple-gh-row`,children:[(0,O.jsxs)(`label`,{className:`ripple-gh-field ripple-gh-grow`,children:[(0,O.jsxs)(`span`,{children:[`GitHub token `,(0,O.jsx)(`em`,{children:`— only for private repos`})]}),(0,O.jsx)(`input`,{type:`password`,value:nn,onChange:e=>rn(e.target.value),onKeyDown:e=>{e.key===`Enter`&&nn.trim()&&dn()},placeholder:an?`Saved on this device — paste a new token to replace it`:`github_pat_… or ghp_… (optional)`,autoComplete:`off`,spellCheck:!1})]}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-paste-go`,disabled:!nn.trim(),onClick:dn,children:`Save`}),an&&(0,O.jsx)(`button`,{type:`button`,className:`ripple-paste-cancel`,onClick:fn,children:`Remove`})]}),(0,O.jsx)(`div`,{className:`ripple-paste-hint`,children:`Stored encrypted in this browser and sent directly by the browser to api.github.com for read requests. The token itself is not included in model prompts. Use it only on a trusted device.`}),(0,O.jsxs)(`div`,{className:`ripple-paste-hint`,children:[`Best: a `,(0,O.jsx)(`strong`,{children:`fine-grained`}),` token with`,` `,(0,O.jsx)(`strong`,{children:`Contents: read-only`}),`, scoped to the repos you want — one token covers every repo it’s granted. A classic `,(0,O.jsx)(`code`,{children:`repo`}),`-scoped token reaches all of your private repos.`]})]}),(0,O.jsxs)(`details`,{className:`ripple-gh-adv`,children:[(0,O.jsx)(`summary`,{children:`Advanced — exact PR #, compare refs, or a folder`}),(0,O.jsxs)(`label`,{className:`ripple-gh-field`,children:[(0,O.jsxs)(`span`,{children:[`Repository `,(0,O.jsx)(`em`,{children:`— or paste a full GitHub link above`})]}),(0,O.jsx)(`input`,{value:X,onChange:e=>Ut(e.target.value),placeholder:`owner/repo`,spellCheck:!1})]}),(0,O.jsxs)(`div`,{className:`ripple-gh-row`,children:[(0,O.jsxs)(`label`,{className:`ripple-gh-field ripple-gh-grow`,children:[(0,O.jsx)(`span`,{children:`Pull request #`}),(0,O.jsx)(`input`,{value:Wt,onChange:e=>{Gt(e.target.value),en&&Z(``)},placeholder:`4821`,spellCheck:!1})]}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-paste-go`,disabled:Q,onClick:ln,children:Q?`Loading…`:`Load PR`})]}),(0,O.jsx)(`div`,{className:`ripple-gh-or`,children:`or compare two refs (branch · tag · SHA)`}),(0,O.jsxs)(`div`,{className:`ripple-gh-row`,children:[(0,O.jsxs)(`label`,{className:`ripple-gh-field ripple-gh-grow`,children:[(0,O.jsx)(`span`,{children:`Base`}),(0,O.jsx)(`input`,{value:Kt,onChange:e=>qt(e.target.value),placeholder:`main`,spellCheck:!1})]}),(0,O.jsxs)(`label`,{className:`ripple-gh-field ripple-gh-grow`,children:[(0,O.jsx)(`span`,{children:`Head`}),(0,O.jsx)(`input`,{value:Jt,onChange:e=>Yt(e.target.value),placeholder:`feat/short-lived-tokens`,spellCheck:!1})]}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-paste-go`,disabled:Q,onClick:un,children:Q?`Loading…`:`Compare`})]}),(0,O.jsx)(`div`,{className:`ripple-gh-or`,children:`or explore the whole repo (or a folder) — no change`}),(0,O.jsxs)(`div`,{className:`ripple-gh-row`,children:[(0,O.jsxs)(`label`,{className:`ripple-gh-field ripple-gh-grow`,children:[(0,O.jsxs)(`span`,{children:[`Ref `,(0,O.jsx)(`em`,{children:`— branch / tag / SHA, defaults to HEAD`})]}),(0,O.jsx)(`input`,{value:Xt,onChange:e=>Zt(e.target.value),placeholder:`main`,spellCheck:!1})]}),(0,O.jsxs)(`label`,{className:`ripple-gh-field ripple-gh-grow`,children:[(0,O.jsxs)(`span`,{children:[`Folder `,(0,O.jsx)(`em`,{children:`— optional path`})]}),(0,O.jsx)(`input`,{value:Qt,onChange:e=>$t(e.target.value),placeholder:`src/auth`,spellCheck:!1})]}),(0,O.jsx)(`button`,{type:`button`,className:`ripple-paste-go`,disabled:Q,onClick:()=>void pn(),children:Q?`Loading…`:`Explore`})]})]})]})]})})]})})}export{G as RippleOverlay};
|