@mavea/mavea 1.0.7
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 +159 -0
- package/DISCLAIMER.md +16 -0
- package/LICENSE +75 -0
- package/PRIVACY.md +127 -0
- package/README.md +248 -0
- package/SECURITY.md +72 -0
- package/SUPPORT.md +13 -0
- package/TERMS.md +122 -0
- package/THIRD-PARTY.txt +639 -0
- package/TRADEMARKS.md +15 -0
- package/bin/mavea.mjs +1079 -0
- package/dist/.vite/manifest.json +4261 -0
- package/dist/_headers +52 -0
- package/dist/assets/AppCommandPalette-DUMSp3rd.js +1 -0
- package/dist/assets/AtlasView-B5fkQhO6.css +1 -0
- package/dist/assets/AtlasView-Dl2fssaG.js +1 -0
- package/dist/assets/BlockEmpty-CLtVQf6c.js +1 -0
- package/dist/assets/BriefingPlayer-DO205Qkh.js +1 -0
- package/dist/assets/BriefingPlayer-TpFZB77N.css +1 -0
- package/dist/assets/CanvasSkeleton-BZZPCuRZ.js +2 -0
- package/dist/assets/CanvasSkeleton-iy6DBvde.css +1 -0
- package/dist/assets/CardEditor-BY1bZiV6.css +1 -0
- package/dist/assets/CardEditor-DzJXb0G7.js +1 -0
- package/dist/assets/CheckLogRail-F4AlgAcc.css +1 -0
- package/dist/assets/CheckLogRail-wUfby67Z.js +1 -0
- package/dist/assets/CodeOutput-Kh6ldxQz.js +97 -0
- package/dist/assets/CommandPalette-Bb-eErih.css +1 -0
- package/dist/assets/CommandPalette-Kl00mMZm.js +1 -0
- package/dist/assets/CourseLessonReader-COmTQdSK.css +1 -0
- package/dist/assets/CourseLessonReader-MBHoknUz.js +2 -0
- package/dist/assets/CourseRail-CUa7uIGG.css +1 -0
- package/dist/assets/CourseRail-q6x5cCpW.js +1 -0
- package/dist/assets/CoursesApp-v89OVJvg.js +2 -0
- package/dist/assets/CrossExamPanel-CZ0ShGma.css +1 -0
- package/dist/assets/CrossExamPanel-DH04p6VS.js +1 -0
- package/dist/assets/DashPresent-BYXbPuGj.js +1 -0
- package/dist/assets/DashPresent-DQYcgp-W.css +1 -0
- package/dist/assets/DashboardDetail-B50ZkeVK.js +2 -0
- package/dist/assets/DashboardLoopRuntime-CFXPx3v_.js +1 -0
- package/dist/assets/DashboardOverview-C-FdGWM5.js +1 -0
- package/dist/assets/DashboardSettings-Dmw6JTbI.js +1 -0
- package/dist/assets/DashboardsApp-Dx-EsaPW.css +1 -0
- package/dist/assets/DashboardsApp-JSY_bVfi.js +2 -0
- package/dist/assets/DeepZoomApp-BFNwli7l.js +37 -0
- package/dist/assets/DeepZoomApp-fRXCJHHZ.css +1 -0
- package/dist/assets/DelegatePanel-BK7rEhIc.js +26 -0
- package/dist/assets/DelegatePanel-_9RZiLHM.css +1 -0
- package/dist/assets/DemoGallery-BPtVG7_y.js +1 -0
- package/dist/assets/DropSelect-DUhdQSta.js +1 -0
- package/dist/assets/ExportModal-D4WpAg2c.css +1 -0
- package/dist/assets/ExportModal-D65cGyj_.js +2 -0
- package/dist/assets/ExtractionPreview-Iwfg2Ogl.js +18 -0
- package/dist/assets/FallbackCard-B489rTd9.js +1 -0
- package/dist/assets/FallbackCard-D_6ps1xA.css +1 -0
- package/dist/assets/FeatureUseNotice-CWt7gOwS.css +1 -0
- package/dist/assets/FeatureUseNotice-DPtQ0OGb.js +1 -0
- package/dist/assets/FlagshipCTA-BXntKhxb.js +1 -0
- package/dist/assets/FlagshipCommandPalette-BDJfasI-.js +1 -0
- package/dist/assets/FlagshipShowcase-DJ8Gxk_G.js +1 -0
- package/dist/assets/FlashcardsApp-CLNo4WX7.js +1 -0
- package/dist/assets/ForecastPanel-Da2ZBUrE.css +1 -0
- package/dist/assets/ForecastPanel-PBO2-dgS.js +1 -0
- package/dist/assets/GalleryApp-B1CB3_81.css +1 -0
- package/dist/assets/GalleryApp-DM03CMRy.js +1 -0
- package/dist/assets/HonestByDesign-Dqyth6nW.js +1 -0
- package/dist/assets/HowItWorks-C0zosIvq.js +1 -0
- package/dist/assets/LegalApp-DZBdExTy.js +1 -0
- package/dist/assets/LegalMarkdownDocument-CSZhRG5r.js +3 -0
- package/dist/assets/LegalPageShell-C_HottbD.css +1 -0
- package/dist/assets/LegalPageShell-DTeXqWyc.js +1 -0
- package/dist/assets/LeverPanel-DhpJY76O.css +1 -0
- package/dist/assets/LeverPanel-aZfhtVJX.js +1 -0
- package/dist/assets/Library-D2XGNXz7.js +1 -0
- package/dist/assets/Library-DmrtHjUf.css +1 -0
- package/dist/assets/LibraryOverlay-B2WQSgwr.js +1 -0
- package/dist/assets/LibraryOverlay-CnKWDMG_.css +1 -0
- package/dist/assets/LiveApp-B9zwXlGC.js +61 -0
- package/dist/assets/LiveApp-BVZGpJ1S.css +1 -0
- package/dist/assets/LiveSettings-CmgrMqvK.css +1 -0
- package/dist/assets/LiveSettings-D9OcWlm6.js +6 -0
- package/dist/assets/MindMapViewerDrawer-YYyZqmAd.js +1 -0
- package/dist/assets/MindShape-Ca3MXEgK.css +1 -0
- package/dist/assets/MindShape-mTlN5mPZ.js +1 -0
- package/dist/assets/Orb-B0NEVfqL.js +1 -0
- package/dist/assets/PinToDashboard-_kIOHs0k.js +1 -0
- package/dist/assets/PlanReview-33V8GTNB.js +1 -0
- package/dist/assets/Presence-CzLJIeSD.js +1 -0
- package/dist/assets/PresentationDeck-BDoGecxr.js +1 -0
- package/dist/assets/PrismApp-PfBTFhMF.js +2 -0
- package/dist/assets/PrismAskController-DBoxQSJR.css +1 -0
- package/dist/assets/PrismAskController-DbQDrlU9.js +37 -0
- package/dist/assets/PrismBriefingPlayer-1fvlfLR8.js +2 -0
- package/dist/assets/PrismOverlay-B7lEspdu.js +131 -0
- package/dist/assets/PrismOverlay-BTfAicBt.css +1 -0
- package/dist/assets/PrivacyApp-CR4lRs0L.js +128 -0
- package/dist/assets/Quiz-CUwtekfu.js +1 -0
- package/dist/assets/Recap-DCiiWNiV.css +1 -0
- package/dist/assets/Recap-H5fhj5Tc.js +1 -0
- package/dist/assets/ReelJelly-3jSVsJsy.js +1 -0
- package/dist/assets/RehearsalPanel-BCU615wg.css +1 -0
- package/dist/assets/RehearsalPanel-BVgjrOPg.js +6 -0
- package/dist/assets/ReplayCard-BpYO5vX-.js +2 -0
- package/dist/assets/ReplayOverlay-DXmVdeIr.js +1 -0
- package/dist/assets/RewindOverlay-BusfWeFq.js +1 -0
- package/dist/assets/RewindOverlay-C92qgvmi.css +1 -0
- package/dist/assets/RippleApp-9KrJPYgN.js +2 -0
- package/dist/assets/RippleAskController-BNAUoIW0.css +1 -0
- package/dist/assets/RippleAskController-CO9wE7hU.js +34 -0
- package/dist/assets/RippleOverlay-DMHLbfh8.js +6 -0
- package/dist/assets/RippleOverlay-_iiZsQVZ.css +1 -0
- package/dist/assets/SeeDontRead-C389viue.js +1 -0
- package/dist/assets/ShareModal-C8S7ySls.css +1 -0
- package/dist/assets/ShareModal-ClnEkudw.js +32 -0
- package/dist/assets/ShipCascade-BUtwvQoW.js +1 -0
- package/dist/assets/ShipCascade-CyFnrlET.css +1 -0
- package/dist/assets/ShipCourse-B7lG6DYW.js +1 -0
- package/dist/assets/ShipCourse-DcT7PUSm.css +1 -0
- package/dist/assets/ShipGate-BVZfCllb.css +1 -0
- package/dist/assets/ShipGate-BYYu9WVq.js +2 -0
- package/dist/assets/ShipHotspots-Bj2CovtT.js +1 -0
- package/dist/assets/ShipHotspots-CLOMutPv.css +1 -0
- package/dist/assets/ShipIncident-BUHvFFiC.css +1 -0
- package/dist/assets/ShipIncident-DcmindmE.js +2 -0
- package/dist/assets/ShipMigration-BznCskNg.css +1 -0
- package/dist/assets/ShipMigration-s0hVjDQl.js +1 -0
- package/dist/assets/ShipOnboarding-BC9Vxkpa.css +1 -0
- package/dist/assets/ShipOnboarding-ekbHL7OH.js +1 -0
- package/dist/assets/ShipRead-BVNgQT6L.js +1 -0
- package/dist/assets/ShipRollout-BdUQzMyP.js +1 -0
- package/dist/assets/ShipRollout-CqeObx5b.css +1 -0
- package/dist/assets/ShipSuggestions-B6fKYh8L.js +1 -0
- package/dist/assets/ShipSuggestions-BKRvk5Mj.css +1 -0
- package/dist/assets/ShipWorkspace-3D3Rrs1p.js +2 -0
- package/dist/assets/ShipWorkspace-D6XQpGEN.css +1 -0
- package/dist/assets/SignatureLoop-C60r8Wm5.js +1 -0
- package/dist/assets/SrsReview-BoaYb6XN.js +1 -0
- package/dist/assets/SrsReview-DmGdGxT0.css +1 -0
- package/dist/assets/SynthesisApp-vJ2Jq0Qe.js +2 -0
- package/dist/assets/SynthesisOverlay-CkERphvG.js +66 -0
- package/dist/assets/TermsApp-C70tW6m6.js +123 -0
- package/dist/assets/TopicCanvas-CT0eSj2M.js +2 -0
- package/dist/assets/TopicCanvas-D2Nax9II.css +1 -0
- package/dist/assets/TourPrism-BvucSkcs.js +1 -0
- package/dist/assets/TrackerTile-CasZNmt4.js +2 -0
- package/dist/assets/TwoSurfaces-C90X7Aj5.js +1 -0
- package/dist/assets/UnderstoodPanel-CHPD2Ttj.js +1 -0
- package/dist/assets/UnderstoodPanel-Q6GX1TFq.css +1 -0
- package/dist/assets/WhyMachineOverlay-BZk3PVTl.css +1 -0
- package/dist/assets/WhyMachineOverlay-CB0_n6Sy.js +1 -0
- package/dist/assets/WowFeatures-Ci_H5QYX.js +1 -0
- package/dist/assets/ZoomDeck-B2SjNwY7.css +1 -0
- package/dist/assets/ZoomDeck-BQHO79ZU.js +1 -0
- package/dist/assets/__vite-browser-external-BufR4LQa.js +1 -0
- package/dist/assets/ai-Ba4lZJ9Y.js +12 -0
- package/dist/assets/alternateFinishes-DZ-rkpkX.js +494 -0
- package/dist/assets/annotationAuto-B0nihA4F.js +1 -0
- package/dist/assets/annotationReel-BcU9Q0Sw.js +1 -0
- package/dist/assets/annotations-D2K9A5GB.js +1 -0
- package/dist/assets/backup-c-Btapzp.js +1 -0
- package/dist/assets/blockLabel-DAqaHKy3.js +1 -0
- package/dist/assets/c-DWGmR78Y.js +1 -0
- package/dist/assets/c-SSSlmE39.js +1 -0
- package/dist/assets/cache-BumECILO.js +1 -0
- package/dist/assets/canvas-QTEIiK23.js +1 -0
- package/dist/assets/catalog-BHjl-1uH.js +2 -0
- package/dist/assets/catalog-Dqaq2YFd.js +1 -0
- package/dist/assets/cfo.generated-Bjl5OGay.js +1 -0
- package/dist/assets/chapters-BiUsDClQ.js +1 -0
- package/dist/assets/charts1-EOoxU_K3.js +1 -0
- package/dist/assets/charts2-tyUiQPff.js +1 -0
- package/dist/assets/chunk-BVpWp9h4.js +1 -0
- package/dist/assets/citation-BcvmjKS8.js +1 -0
- package/dist/assets/code-CpjYCNS8.js +8 -0
- package/dist/assets/codeContext-0UMRSGRr.js +5 -0
- package/dist/assets/colors-D49Req-e.js +1 -0
- package/dist/assets/compose-BJ9EfcQS.js +3 -0
- package/dist/assets/contentVault-DzTYWcbD.js +1 -0
- package/dist/assets/core-DEFyprhs.js +1 -0
- package/dist/assets/corpus.generated-oX9uU93S.js +11 -0
- package/dist/assets/courseSeed-CZdNBTTs.js +1 -0
- package/dist/assets/courseStore-DfafnL-9.js +1 -0
- package/dist/assets/courses-BkH1ntDL.css +1 -0
- package/dist/assets/cpp-BGdv8dzs.js +1 -0
- package/dist/assets/cpp-CNAAXZl-.js +1 -0
- package/dist/assets/csharp-oqKa8noW.js +1 -0
- package/dist/assets/css-CdtkT07m.js +1 -0
- package/dist/assets/css-LbU1hoFO.js +1 -0
- package/dist/assets/dag-C3Xx8pOD.js +2 -0
- package/dist/assets/dashboardEvents-DR9d_c74.js +2 -0
- package/dist/assets/dashboards-rcWxdoXI.css +1 -0
- package/dist/assets/deckLine-NBd3MyGT.js +1 -0
- package/dist/assets/demoPaletteItems-NPCSaSU6.js +1 -0
- package/dist/assets/dev.generated-DYgVxL_4.js +73 -0
- package/dist/assets/diagrams-CaSfjT4I.js +1 -0
- package/dist/assets/diff-woXpYk--.js +1 -0
- package/dist/assets/display-OvC57CMc.js +9 -0
- package/dist/assets/dist-BFx3nZg4.js +2785 -0
- package/dist/assets/dist-xRGLOZwv.js +14 -0
- package/dist/assets/docs-B2aDtm5K.js +1 -0
- package/dist/assets/everyday-CoZa4kDZ.js +1 -0
- package/dist/assets/explode-WBykfhqW.js +13 -0
- package/dist/assets/extractNumbers-CuhagRkd.js +1 -0
- package/dist/assets/facts-BBTt3ImG.js +1 -0
- package/dist/assets/finance-Bxn_Q1p0.js +1 -0
- package/dist/assets/fit-0HxU-rtB.js +1 -0
- package/dist/assets/fitText-CDFmCQzl.js +1 -0
- package/dist/assets/flows-BL81J7yN.js +1 -0
- package/dist/assets/format-DlZTyeMy.js +1 -0
- package/dist/assets/format-hc2QOoIu.js +1 -0
- package/dist/assets/forms-DeoXOxdD.js +1 -0
- package/dist/assets/generate-8odaTyr4.js +17 -0
- package/dist/assets/generateBeats-b64CL54v.js +1 -0
- package/dist/assets/generateCourse-Cj_-vDWu.js +28 -0
- package/dist/assets/generateLive-D4B30fnF.js +52 -0
- package/dist/assets/geometry-DXAbnb0J.js +1 -0
- package/dist/assets/gesture-DabMpPcq.js +2 -0
- package/dist/assets/github-dark-C-LZuMrd.js +1 -0
- package/dist/assets/github-light-EUqPIrTm.js +1 -0
- package/dist/assets/githubBrowser-DywfDeYx.js +1 -0
- package/dist/assets/githubToken-DtcLYqwm.js +11 -0
- package/dist/assets/go-rLFTqkRN.js +1 -0
- package/dist/assets/homeTarget-BgWKI_E1.js +1 -0
- package/dist/assets/html-BcACZWSP.js +1 -0
- package/dist/assets/html-DDNsd9lV.js +1 -0
- package/dist/assets/http-CJCtjYpA.js +2 -0
- package/dist/assets/icons-CHVz6kv_.js +1 -0
- package/dist/assets/index-CepQEz75.css +1 -0
- package/dist/assets/index-y8GL67bB.js +22 -0
- package/dist/assets/index.es-CRLiWwiA.js +5 -0
- package/dist/assets/info-CiqHR5cs.js +1 -0
- package/dist/assets/java-BtIQNnN0.js +1 -0
- package/dist/assets/java-DxlWrXwe.js +1 -0
- package/dist/assets/javascript-BzbQS41l.js +1 -0
- package/dist/assets/javascript-Yelw-5ZN.js +1 -0
- package/dist/assets/json-B0N3XRZU.js +1 -0
- package/dist/assets/json-B88Oqtu5.js +1 -0
- package/dist/assets/json-CaljABEy.js +1 -0
- package/dist/assets/jspdf.es.min-C-Pf79px.js +79 -0
- package/dist/assets/jsx-D3KKoC5L.js +1 -0
- package/dist/assets/jsx-hEbJ82HF.js +1 -0
- package/dist/assets/jsx-runtime-DaSxXjOY.js +1 -0
- package/dist/assets/katex-BMCG0xok.js +257 -0
- package/dist/assets/keyVault-DEsNh9FR.js +1 -0
- package/dist/assets/kokoro-D4GKpSL0.js +1 -0
- package/dist/assets/kotlin-DhhofPvG.js +1 -0
- package/dist/assets/layout-BFQOzXtG.js +1 -0
- package/dist/assets/layout-CkO0Psde.js +1 -0
- package/dist/assets/lazyRetry-D50B1UMY.js +1 -0
- package/dist/assets/leaflet-src-C_xhOQY7.js +1 -0
- package/dist/assets/learn-DVfqN-nf.js +1 -0
- package/dist/assets/lib-DMAxsZKm.css +1 -0
- package/dist/assets/lib-VFqp6Y3w.js +1 -0
- package/dist/assets/links--u_phi0x.js +1 -0
- package/dist/assets/liveSchema-CJ49PX5R.js +98 -0
- package/dist/assets/markdown-BYOwaDjH.js +1 -0
- package/dist/assets/mastery-BPjxP0fN.js +4 -0
- package/dist/assets/media-CsrUl279.js +43 -0
- package/dist/assets/model-BE0UHu1w.js +27 -0
- package/dist/assets/motion-S0NRruNj.js +1 -0
- package/dist/assets/nav-Czm-NzPV.js +1 -0
- package/dist/assets/neighborhoods-C-1Tjr1r.js +1 -0
- package/dist/assets/notes-A9t4jdfx.css +1 -0
- package/dist/assets/notes-lROPCorS.js +1 -0
- package/dist/assets/notify-Bz4wuE4T.js +1 -0
- package/dist/assets/now-C9-UAzTC.js +1 -0
- package/dist/assets/number-DXgzss0v.js +1 -0
- package/dist/assets/officeDoc-B6nEhNp4.js +3 -0
- package/dist/assets/openchemlib-nMLMmg26.js +23 -0
- package/dist/assets/overlays-JxbHtA2o.js +1 -0
- package/dist/assets/owners-FXDGInVq.js +2 -0
- package/dist/assets/pageVisibility-BxUVsw7Z.js +1 -0
- package/dist/assets/pdf-Df7PCH7q.js +11 -0
- package/dist/assets/pdf.worker.min-yatZIOMy.mjs +21 -0
- package/dist/assets/penStrokes-9Q_l7NTt.js +1 -0
- package/dist/assets/perfProbe-COAp9PAa.js +1 -0
- package/dist/assets/php-CYrBA5iX.js +1 -0
- package/dist/assets/pickers-B4-3HOR8.js +1 -0
- package/dist/assets/pin-Bya3BL_a.css +1 -0
- package/dist/assets/pin-CXSuPJYL.js +1 -0
- package/dist/assets/planTracker-7AMCQPNx.js +1 -0
- package/dist/assets/portal-DMw7C32j.js +1 -0
- package/dist/assets/pptxgen.es-CvTILmV9.js +115 -0
- package/dist/assets/predictions-CYS7Vo39.js +1 -0
- package/dist/assets/prewarm--whjQhWJ.js +1 -0
- package/dist/assets/prism-app-CXYElq8-.css +1 -0
- package/dist/assets/prism.generated-BhbHDHR6.js +41 -0
- package/dist/assets/prismExtract.worker-Cws9K1NG.js +13 -0
- package/dist/assets/prismGround.worker-CIvKqxm2.js +1 -0
- package/dist/assets/prismLayout.worker-CZO2CY7B.js +1 -0
- package/dist/assets/providers-wzm7E8Pa.js +1 -0
- package/dist/assets/purify.es-adlwq8Pz.js +3 -0
- package/dist/assets/python-gzcpVVnB.js +1 -0
- package/dist/assets/queue-DHeyJ32F.css +1 -0
- package/dist/assets/queue-J4h7E3uc.js +1 -0
- package/dist/assets/quietHours-BvcsBKKK.js +1 -0
- package/dist/assets/react-BQSORdFI.js +1 -0
- package/dist/assets/reference-sJzyMiL4.js +1 -0
- package/dist/assets/registry-1GuPBfQK.js +1 -0
- package/dist/assets/registry-2GJZ46M8.css +1 -0
- package/dist/assets/registry-2v0jlh5Q.js +2 -0
- package/dist/assets/registry-B8DStMJk.js +1 -0
- package/dist/assets/registry-B940W2j5.js +1 -0
- package/dist/assets/registry-BAoRB8rd.css +1 -0
- package/dist/assets/registry-BPvIPLke.js +1 -0
- package/dist/assets/registry-BVHiKEwE.css +1 -0
- package/dist/assets/registry-BcZXBr3y.css +1 -0
- package/dist/assets/registry-BffpZK5w.js +1 -0
- package/dist/assets/registry-BgGeRiDA.js +2 -0
- package/dist/assets/registry-Buq5uuCv.js +1 -0
- package/dist/assets/registry-BzNLfje1.css +1 -0
- package/dist/assets/registry-C3ezxLR3.css +1 -0
- package/dist/assets/registry-CAusoyBh.js +1 -0
- package/dist/assets/registry-CEVrY72Z.js +1 -0
- package/dist/assets/registry-CKjKq6ct.js +1 -0
- package/dist/assets/registry-CNgybLQv.css +1 -0
- package/dist/assets/registry-CRM7y8QT.css +1 -0
- package/dist/assets/registry-CRisz4Ca.css +1 -0
- package/dist/assets/registry-Cg7qUZPS.js +1 -0
- package/dist/assets/registry-Cix-yqch.js +1 -0
- package/dist/assets/registry-CtbuZWYz.css +1 -0
- package/dist/assets/registry-DCI_BeFJ.js +5 -0
- package/dist/assets/registry-DDLSYDVA.js +1 -0
- package/dist/assets/registry-DI1wSG1Y.js +1 -0
- package/dist/assets/registry-DJinB5ye.js +2 -0
- package/dist/assets/registry-DUvXX_d0.js +1 -0
- package/dist/assets/registry-DVzLacl_.css +1 -0
- package/dist/assets/registry-DWcNVyI2.css +1 -0
- package/dist/assets/registry-D_URPoL4.js +1 -0
- package/dist/assets/registry-Dkc7hN5T.js +1 -0
- package/dist/assets/registry-DmQlNN3y.js +1 -0
- package/dist/assets/registry-DpaaVbmL.css +1 -0
- package/dist/assets/registry-Dpb8EXHn.js +49 -0
- package/dist/assets/registry-Dru0JcTa.css +1 -0
- package/dist/assets/registry-DujBAgn_.js +1 -0
- package/dist/assets/registry-Dye5m3qt.css +1 -0
- package/dist/assets/registry-GeSy4i7R.css +1 -0
- package/dist/assets/registry-QcULZpdE.js +4 -0
- package/dist/assets/registry-T3i2Q9SI.css +1 -0
- package/dist/assets/registry-UFIuwh3i.css +1 -0
- package/dist/assets/registry-Xzq_Rpmm.css +1 -0
- package/dist/assets/registry-ZOWzhOHk.css +1 -0
- package/dist/assets/registry-aIH-Im5Y.css +1 -0
- package/dist/assets/registry-aazwkBJp.js +1 -0
- package/dist/assets/registry-ei6fIgBT.css +1 -0
- package/dist/assets/registry-types-DMuK0vJ6.js +1 -0
- package/dist/assets/registry-upbw6pyj.css +1 -0
- package/dist/assets/registry-zRPjWNl5.js +1 -0
- package/dist/assets/relate-A9ZeaaAI.js +1 -0
- package/dist/assets/richText-BkxJhl9N.js +1 -0
- package/dist/assets/ruby-BhrksQMt.js +1 -0
- package/dist/assets/run-BYP2YlZT.js +23 -0
- package/dist/assets/run-C_0B_41W.js +21 -0
- package/dist/assets/run-DSVvshaB.js +21 -0
- package/dist/assets/rust-Cfkwpbl8.js +1 -0
- package/dist/assets/safeCssColor-di93BXgG.js +1 -0
- package/dist/assets/safeImageUrl-CUkucDUu.js +1 -0
- package/dist/assets/scale-Bcgfo6Hp.js +1 -0
- package/dist/assets/screen-DLR7p_yP.js +1 -0
- package/dist/assets/search-DnjHupRf.js +1 -0
- package/dist/assets/seed-b1xc0dj2.js +1 -0
- package/dist/assets/shapes-RqjqC0ay.js +1 -0
- package/dist/assets/shard000-DM_rqD7W.js +1 -0
- package/dist/assets/shard001-gQEQs7_F.js +1 -0
- package/dist/assets/shard002-DbDas-W-.js +1 -0
- package/dist/assets/shard003-DxMszG4_.js +1 -0
- package/dist/assets/shard004-DZMpLBw1.js +1 -0
- package/dist/assets/shard005-DLVkh9IH.js +1 -0
- package/dist/assets/shard006-B6efKHov.js +1 -0
- package/dist/assets/shard007-AFdZLe38.js +1 -0
- package/dist/assets/shard008-LbSBzwRx.js +1 -0
- package/dist/assets/shard009-D_6-SUDb.js +1 -0
- package/dist/assets/shard010-DbOj-uZW.js +1 -0
- package/dist/assets/shard011-BYSz7EEW.js +1 -0
- package/dist/assets/shard012-B5Ypj7OV.js +1 -0
- package/dist/assets/shard013-BtsliNIe.js +1 -0
- package/dist/assets/shard014-15sjmk68.js +1 -0
- package/dist/assets/shard015-nnXrqru_.js +1 -0
- package/dist/assets/shard016-BayXFE13.js +1 -0
- package/dist/assets/shard017-Cy4cGexs.js +1 -0
- package/dist/assets/shard018-aO-BYJ8H.js +1 -0
- package/dist/assets/shard019-gxaTeA3I.js +1 -0
- package/dist/assets/shard020-BibJdMI0.js +1 -0
- package/dist/assets/shard021-2FE-tze4.js +1 -0
- package/dist/assets/shard022-IXiyG-JK.js +1 -0
- package/dist/assets/shard023-314F6NJS.js +1 -0
- package/dist/assets/shard024-cN5rpQ_X.js +1 -0
- package/dist/assets/shard025-KKTaXOGE.js +1 -0
- package/dist/assets/shard026-C2Dkd1t6.js +1 -0
- package/dist/assets/shard027-Xy-8x9As.js +1 -0
- package/dist/assets/shard028-Bul-klUj.js +1 -0
- package/dist/assets/shard029-BbRSUcUZ.js +1 -0
- package/dist/assets/shard030-GYllsFVC.js +1 -0
- package/dist/assets/shard031-DMigeiyn.js +1 -0
- package/dist/assets/shard032-CcvmzK0l.js +1 -0
- package/dist/assets/shard033-11AU702M.js +1 -0
- package/dist/assets/shard034-Bx3urxjM.js +1 -0
- package/dist/assets/shard035-DBdEeyCt.js +1 -0
- package/dist/assets/shard036-vYgoRBqS.js +1 -0
- package/dist/assets/shard037-DP4MMw91.js +1 -0
- package/dist/assets/shard038-ffxsv7d6.js +1 -0
- package/dist/assets/shard039-C1JHHNp9.js +1 -0
- package/dist/assets/shard040-JbVvCSO_.js +1 -0
- package/dist/assets/shard041-5L_eFwGx.js +1 -0
- package/dist/assets/shard042-C9nsGL79.js +1 -0
- package/dist/assets/shard043-Dx_9HSKI.js +1 -0
- package/dist/assets/shard044-B3QQNC4A.js +1 -0
- package/dist/assets/shard045-B7z0WHO6.js +1 -0
- package/dist/assets/shard046-D1yDablJ.js +1 -0
- package/dist/assets/shard047-DJi3AgeT.js +1 -0
- package/dist/assets/shard048-D_2ipfUr.js +1 -0
- package/dist/assets/shard049-1aGgWZdd.js +1 -0
- package/dist/assets/shard050-Bjwa0Og4.js +1 -0
- package/dist/assets/shard051-Cx_GAk3v.js +1 -0
- package/dist/assets/shard052-LaeOD3V5.js +1 -0
- package/dist/assets/shard053-D-da7Foj.js +1 -0
- package/dist/assets/shard054-CM8eSRQk.js +1 -0
- package/dist/assets/shard055-QRpDl4Vs.js +1 -0
- package/dist/assets/shard056-DkY7CQm3.js +1 -0
- package/dist/assets/shard057-BVCgf7o0.js +1 -0
- package/dist/assets/shard058-93aGtdrX.js +1 -0
- package/dist/assets/shard059-rJE9X1_I.js +1 -0
- package/dist/assets/shard060-Lu_hfl1r.js +1 -0
- package/dist/assets/shard061-C9A8iNiq.js +1 -0
- package/dist/assets/shard062-BBIpEYZO.js +1 -0
- package/dist/assets/shard063-C_uen3Ub.js +1 -0
- package/dist/assets/shard064-DAHUsHST.js +1 -0
- package/dist/assets/shard065-C2edvdvh.js +1 -0
- package/dist/assets/shard066-DFcuVhZm.js +1 -0
- package/dist/assets/shard067-BN8DM8JZ.js +1 -0
- package/dist/assets/shard068-i464K77p.js +1 -0
- package/dist/assets/shard069-Dm9m2a5U.js +1 -0
- package/dist/assets/shard070-BPVvR8GH.js +1 -0
- package/dist/assets/shard071-Bal_0d9L.js +1 -0
- package/dist/assets/shard072-CBQu62kt.js +1 -0
- package/dist/assets/shard073-D5BRae0w.js +1 -0
- package/dist/assets/shard074-DtFvcBnZ.js +1 -0
- package/dist/assets/share-QHGHNDhQ.js +1 -0
- package/dist/assets/shellscript-BiGZg9Om.js +1 -0
- package/dist/assets/shellscript-CqHdAlCp.js +1 -0
- package/dist/assets/shikiHighlight-DUCYbsJ2.js +153 -0
- package/dist/assets/sourceHost-BV3t2XDb.js +1 -0
- package/dist/assets/speed-DwPw9KSv.js +1 -0
- package/dist/assets/spokenText-D4zPX9JY.js +1 -0
- package/dist/assets/sql-0Qcw9ht3.js +1 -0
- package/dist/assets/sql-CP0rg-5b.js +1 -0
- package/dist/assets/src-DbgF7cRH.js +2 -0
- package/dist/assets/stats-BeP5Bws0.js +1 -0
- package/dist/assets/status-BY02LIJt.js +1 -0
- package/dist/assets/stepDriver-DwjFet6U.js +1 -0
- package/dist/assets/store-4JNNn732.js +1 -0
- package/dist/assets/store-BFC7DZcg.js +1 -0
- package/dist/assets/store-BFrJaSxJ.js +1 -0
- package/dist/assets/store-DXmC_fP2.js +0 -0
- package/dist/assets/store-DgG0C1Qx.js +1 -0
- package/dist/assets/streamParse-DRgMHWye.js +2 -0
- package/dist/assets/student.generated-DS_acPaJ.js +1 -0
- package/dist/assets/swift-DonLKvLd.js +1 -0
- package/dist/assets/tables-Dzd3rTqG.js +1 -0
- package/dist/assets/time-BHTmJR1s.js +1 -0
- package/dist/assets/toast-BBNs2h3L.js +1 -0
- package/dist/assets/toml-CcmNWLt0.js +1 -0
- package/dist/assets/traveler.generated-Beun9X7y.js +1 -0
- package/dist/assets/tsx-5f3ulCja.js +1 -0
- package/dist/assets/tsx-BOvsFOI6.js +1 -0
- package/dist/assets/typeof-B5XbjTb1.js +1 -0
- package/dist/assets/typescript-Utq2Cl8c.js +1 -0
- package/dist/assets/typescript-j_1H8WHN.js +1 -0
- package/dist/assets/useDashboardLoop-B6ByHWoE.js +5 -0
- package/dist/assets/useFocusTrap-DbfG6zbM.js +1 -0
- package/dist/assets/useLiveConfig-X9Wxh90k.js +1 -0
- package/dist/assets/useSpatialCanvas-DogK9457.js +1 -0
- package/dist/assets/useSpotlightWalk-rMbmNBKK.js +1 -0
- package/dist/assets/useSrsCards-CagZefwX.js +1 -0
- package/dist/assets/useStudy-Bflreq2a.js +1 -0
- package/dist/assets/useTimeout-BRYvu2jQ.js +1 -0
- package/dist/assets/useValidatedImage-D2fhA198.js +1 -0
- package/dist/assets/useZoomGesture-CYc3tf2z.js +1 -0
- package/dist/assets/verbatim-CBMzUDlf.js +1 -0
- package/dist/assets/worker-BbLKfGzm.js +2 -0
- package/dist/assets/xml-WY0zc4PG.js +1 -0
- package/dist/assets/yaml-CxbubiML.js +1 -0
- package/dist/assets/yaml-DijMHRDA.js +1 -0
- package/dist/demo-assets/CREDITS.md +40 -0
- 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/slide-placeholder-light.svg +9 -0
- package/dist/demo-assets/images/slide-placeholder.svg +9 -0
- package/dist/demo-assets/images/village-street.jpg +0 -0
- package/dist/demo-assets/pdf/cfd-primer.pdf +0 -0
- package/dist/demo-assets/video/azores-film.mp4 +0 -0
- package/dist/favicon.svg +19 -0
- package/dist/fonts/LICENSE.txt +34 -0
- package/dist/fonts/archivo-var-latin.woff2 +0 -0
- package/dist/fonts/bodoni-moda-400-italic-latin.woff2 +0 -0
- package/dist/fonts/bodoni-moda-var-latin.woff2 +0 -0
- package/dist/fonts/eb-garamond-var-italic-latin.woff2 +0 -0
- package/dist/fonts/eb-garamond-var-latin.woff2 +0 -0
- package/dist/fonts/export/families/archivo.css +12 -0
- package/dist/fonts/export/families/bodoni-moda.css +23 -0
- package/dist/fonts/export/families/eb-garamond.css +22 -0
- package/dist/fonts/export/families/ibm-plex-sans.css +12 -0
- package/dist/fonts/export/families/instrument-serif.css +22 -0
- package/dist/fonts/export/families/jetbrains-mono.css +12 -0
- package/dist/fonts/export/families/libre-franklin.css +12 -0
- package/dist/fonts/export/families/lora.css +22 -0
- package/dist/fonts/export/families/source-serif-4.css +12 -0
- package/dist/fonts/export/families/space-grotesk.css +12 -0
- package/dist/fonts/export/families/spectral.css +52 -0
- package/dist/fonts/fonts.css +141 -0
- package/dist/fonts/hanken-grotesk-var-latin.woff2 +0 -0
- package/dist/fonts/ibm-plex-sans-var-latin.woff2 +0 -0
- package/dist/fonts/instrument-serif-400-italic-latin.woff2 +0 -0
- package/dist/fonts/instrument-serif-400-latin.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-var-latin.woff2 +0 -0
- package/dist/fonts/libre-franklin-var-latin.woff2 +0 -0
- package/dist/fonts/lora-var-italic-latin.woff2 +0 -0
- package/dist/fonts/lora-var-latin.woff2 +0 -0
- package/dist/fonts/newsreader-var-italic-latin.woff2 +0 -0
- package/dist/fonts/newsreader-var-latin.woff2 +0 -0
- package/dist/fonts/plex-mono-400-latin.woff2 +0 -0
- package/dist/fonts/plex-mono-500-latin.woff2 +0 -0
- package/dist/fonts/plex-mono-600-latin.woff2 +0 -0
- package/dist/fonts/source-serif-4-var-latin.woff2 +0 -0
- package/dist/fonts/space-grotesk-var-latin.woff2 +0 -0
- package/dist/fonts/spectral-400-italic-latin.woff2 +0 -0
- package/dist/fonts/spectral-400-latin.woff2 +0 -0
- package/dist/fonts/spectral-500-italic-latin.woff2 +0 -0
- package/dist/fonts/spectral-500-latin.woff2 +0 -0
- package/dist/fonts/spectral-600-latin.woff2 +0 -0
- package/dist/index.html +117 -0
- package/dist/legal/DISCLAIMER.md +16 -0
- package/dist/legal/LICENSE.txt +75 -0
- package/dist/legal/PRIVACY.md +127 -0
- package/dist/legal/SECURITY.md +72 -0
- package/dist/legal/SUPPORT.md +13 -0
- package/dist/legal/TERMS.md +122 -0
- package/dist/legal/THIRD-PARTY.txt +639 -0
- package/dist/legal/TRADEMARKS.md +15 -0
- package/dist/ort-wasm-simd-threaded.mjs +59 -0
- package/dist/sw.js +30 -0
- package/dist/vad.worklet.bundle.min.js +1 -0
- package/docker-compose.yml +33 -0
- package/gateway/README.md +99 -0
- package/gateway/actions-gateway.mjs +537 -0
- package/gateway/connectors.d.mts +27 -0
- package/gateway/connectors.mjs +463 -0
- package/gateway/guard.mjs +110 -0
- package/gateway/tokenStore.mjs +134 -0
- package/package.json +143 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ripple-verdict{gap:var(--s-md);flex-direction:column;height:100%;min-height:0;display:flex}.ripple-verdict-head{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-elevated);padding:var(--s-md) var(--s-lg);position:relative;overflow:hidden}.ripple-verdict-head:before{content:"";background:var(--tone,var(--presence));width:4px;position:absolute;inset:0 auto 0 0}.ripple-verdict-head[data-tone=safe]{--tone:var(--insight)}.ripple-verdict-head[data-tone=watch]{--tone:var(--warning)}.ripple-verdict-head[data-tone=breaks]{--tone:var(--danger)}.ripple-verdict-head[data-tone=neutral]{--tone:var(--presence)}.ripple-verdict-top{justify-content:space-between;align-items:center;gap:var(--s-md);display:flex}.ripple-verdict-badge{letter-spacing:-.01em;color:var(--tone);font-size:18px;font-weight:700}.ripple-verdict-scale{color:var(--text-muted);white-space:nowrap;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px}.ripple-verdict-what{color:var(--text-primary);text-wrap:pretty;margin:8px 0 0;font-size:15px;line-height:1.5}.ripple-verdict-one{border-top:1px solid var(--line);align-items:baseline;gap:10px;margin-top:12px;padding-top:12px;display:flex}.ripple-verdict-one-tag{letter-spacing:.08em;text-transform:uppercase;color:var(--tone,var(--text-muted));flex:none;padding-top:2px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:700}.ripple-verdict-one-text{color:var(--text-secondary);font-size:13.5px;line-height:1.5}.ripple-verdict-clean .ripple-verdict-one-tag{color:var(--insight)}.ripple-verdict-map{border:1px solid var(--line);border-radius:var(--r-md);flex:1;min-height:0;position:relative;overflow:hidden}.ripple-verdict-map>*{height:100%}.ripple-verdict-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ripple-verdict-chips-tag{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-right:2px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:700}.ripple-verdict-chip{color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-full);cursor:pointer;min-height:44px;padding:5px 13px;font-size:12px;font-weight:600;transition:border-color .15s,color .15s,background .15s}.ripple-verdict-chip:hover{color:var(--text-primary);border-color:var(--presence);background:color-mix(in oklab, var(--presence) 8%, transparent)}.ripple-scrim{z-index:52;background:rgba(var(--scrim-rgb), .72);-webkit-backdrop-filter:blur(8px);animation:ripple-fade var(--m-fast,.16s) var(--ease-out);justify-content:center;align-items:center;padding:2.5vh 2vw;display:flex;position:fixed;inset:0}.ripple-scrim[data-expanded=true]{padding:0}@keyframes ripple-fade{0%{opacity:0}}.ripple-panel{background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-lg);width:min(1700px,100%);height:95vh;box-shadow:var(--shadow-modal);flex-direction:column;display:flex;overflow:hidden}.ripple-scrim[data-expanded=true] .ripple-panel{border:0;border-radius:0;width:100%;height:100%}.ripple-head{justify-content:space-between;align-items:center;row-gap:6px;gap:var(--s-md);padding:12px var(--s-lg);border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;display:flex}.ripple-id{flex:auto;align-items:center;gap:11px;min-width:0;display:flex}.ripple-word{letter-spacing:-.01em;color:var(--text-primary);font-size:15px;font-weight:700}.ripple-sep{background:var(--line-strong);width:1px;height:13px}.ripple-repo,.ripple-pr,.ripple-branch,.ripple-stat{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px;overflow:hidden}.ripple-repo{color:var(--text-secondary)}.ripple-pr{color:var(--presence);font-weight:600}.ripple-branch{color:var(--text-muted)}.ripple-head-right{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:12px;max-width:100%;display:flex}.ripple-stat{color:var(--text-muted)}.ripple-add{color:var(--insight)}.ripple-del{color:var(--danger)}.ripple-p0{color:var(--danger);background:color-mix(in oklab, var(--danger) 14%, transparent);border:1px solid color-mix(in oklab, var(--danger) 32%, transparent);border-radius:var(--r-full);white-space:nowrap;align-items:center;gap:7px;padding:4px 11px;font-size:11.5px;font-weight:600;display:inline-flex}.ripple-p0-dot{background:var(--danger);border-radius:50%;width:6px;height:6px}.ripple-iconbtn{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-elevated);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;transition:background var(--m-fast) var(--ease-out), color var(--m-fast) var(--ease-out);justify-content:center;align-items:center;font-size:13px;display:flex}.ripple-iconbtn:hover{background:var(--surface-elevated-2);color:var(--text-primary)}.ripple-example{padding:8px var(--s-lg);color:var(--text-secondary);background:color-mix(in oklab, var(--warning) 9%, transparent);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:9px;font-size:12px;display:flex}.ripple-example strong{color:var(--text-primary)}.ripple-example-dot{background:var(--warning);border-radius:50%;flex:none;width:7px;height:7px}.ripple-hint{align-items:center;gap:var(--s-md);padding:7px var(--s-lg);color:var(--text-secondary);background:color-mix(in oklab, var(--presence) 7%, transparent);border-bottom:1px solid var(--line);flex:none;font-size:12px;display:flex}.ripple-hint-text{flex:1;min-width:0}.ripple-hint-dismiss{color:var(--text-primary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;flex:none;padding:4px 12px;font-size:12px;font-weight:600}.ripple-hint-dismiss:hover{background:color-mix(in oklab, var(--presence) 14%, var(--surface-elevated))}.ripple-body{flex:1;min-height:0;display:flex}.ripple-rail{width:212px;padding:var(--s-2) var(--s-sm);border-right:1px solid var(--line);background:var(--surface-deep);scrollbar-gutter:stable;flex-direction:column;flex:none;gap:2px;display:flex;overflow-y:auto}.ripple-rail-group{flex-direction:column;gap:2px;display:flex}.ripple-rail-group+.ripple-rail-group{margin-top:var(--s-sm)}.ripple-rail-grouplabel{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding:6px 12px 3px;font-size:9px;font-weight:700}.ripple-rail-item{text-align:left;border-radius:var(--r-sm);color:var(--text-secondary);cursor:pointer;min-height:44px;transition:background var(--m-fast) var(--ease-out), color var(--m-fast) var(--ease-out);background:0 0;border:1px solid #0000;align-items:center;padding:9px 12px;font-size:13px;display:flex}.ripple-rail-item:hover{background:var(--surface-elevated);color:var(--text-primary)}.ripple-rail-item[data-active=true]{background:color-mix(in oklab, var(--presence) 16%, transparent);border-color:color-mix(in oklab, var(--presence) 34%, transparent);color:var(--text-primary);font-weight:600}.ripple-rail-label{min-width:0}.ripple-main{min-width:0;padding:var(--s-lg) var(--s-xl);scrollbar-gutter:stable;flex:1;overflow:auto}@media (width<=720px){.ripple-body{flex-direction:column}.ripple-rail{align-items:center;gap:var(--s-sm);width:100%;padding:6px var(--s-sm);border-right:none;border-bottom:1px solid var(--line);flex-direction:row;overflow:auto hidden}.ripple-rail-group{flex-direction:row;flex:none;gap:6px}.ripple-rail-group+.ripple-rail-group{padding-left:var(--s-sm);border-left:1px solid var(--line);margin-top:0}.ripple-rail-grouplabel{display:none}.ripple-rail-item{white-space:nowrap;flex:none}.ripple-rail-altitude{padding:0 0 0 var(--s-sm);border-top:none;border-left:1px solid var(--line);flex:none;margin:0 0 0 auto}.ripple-rail-altitude .ripple-eyebrow{display:none}.ripple-main{padding:var(--s-md) var(--s-lg)}}.ripple-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;font-weight:600}.ripple-read{gap:var(--s-xl);grid-template-columns:1.55fr 1fr;align-items:start;display:grid}@media (width<=900px){.ripple-read{grid-template-columns:1fr}}.ripple-read-main{flex-direction:column;gap:14px;display:flex}.ripple-read-summary{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:21px;line-height:1.5}.ripple-read-scope{color:var(--text-muted);border-top:1px solid var(--line);margin:0;padding-top:14px;font-size:12.5px;line-height:1.6}.ripple-read-risks{background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-md);flex-direction:column;gap:12px;display:flex}.ripple-risk{align-items:flex-start;gap:11px;display:flex}.ripple-risk-dot{border-radius:50%;flex:none;width:7px;height:7px;margin-top:5px}.ripple-risk-text{color:var(--text-primary);font-size:13px;line-height:1.45}.ripple-risk-empty{color:var(--text-muted);font-size:13px}.ripple-verdict-err{align-items:center;gap:var(--s-md);margin:0 0 var(--s-md);padding:8px var(--s-lg);color:var(--text-secondary);background:color-mix(in oklab, var(--danger) 9%, transparent);border:1px solid color-mix(in oklab, var(--danger) 28%, var(--line));border-radius:var(--r-md);font-size:12.5px;line-height:1.5;display:flex}.ripple-verdict-err-text{flex:1;min-width:0}.ripple-verdict-err-actions{align-items:center;gap:var(--s-sm);flex:none;display:flex}.ripple-verdict-err-retry{color:var(--text-primary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;padding:4px 12px;font-size:12px;font-weight:600}.ripple-verdict-err-retry:hover{background:color-mix(in oklab, var(--danger) 14%, var(--surface-elevated))}.ripple-verdict-err-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:4px 10px;font-size:12px}.ripple-verdict-err-dismiss:hover{color:var(--text-secondary)}.ripple-impact{gap:var(--s-2);flex-direction:column;height:100%;min-height:280px;display:flex;position:relative}.ripple-impact-controls{flex:none;align-items:center;gap:8px;display:flex}.ripple-lens{border:1px solid var(--line);border-radius:var(--r-sm);display:inline-flex;overflow:hidden}.ripple-lens button{color:var(--text-secondary);cursor:pointer;transition:background var(--m-fast) var(--ease-out);background:0 0;border:0;padding:5px 13px;font-size:12px}.ripple-lens button[data-active=true]{background:var(--surface-elevated-2);color:var(--text-primary);font-weight:600}.ripple-crossrepo{color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:inline-flex}.ripple-crossrepo input{accent-color:var(--presence)}.ripple-zoombtns{margin-left:auto}.ripple-zoombtns button{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-elevated);width:48px;height:48px;color:var(--text-secondary);cursor:pointer;font-size:13px}.ripple-zoombtns button:hover{background:var(--surface-elevated-2);color:var(--text-primary)}.ripple-stage{border:1px solid var(--line);border-radius:var(--r-md);background:radial-gradient(ellipse 70% 70% at 50% 48%, var(--surface-elevated) 0%, var(--surface-default) 70%, var(--surface-deep) 100%);cursor:grab;touch-action:none;flex:1;min-height:240px;position:relative;overflow:hidden}.ripple-stage.is-panning{cursor:grabbing}.ripple-world{transform-origin:0 0;transition:transform var(--m-normal) var(--ease-out);position:absolute;top:0;left:0}@media (prefers-reduced-motion:reduce){.ripple-world{transition:none}}.ripple-edges{pointer-events:none;position:absolute;inset:0;overflow:visible}.ripple-edge-break{animation:.8s linear infinite ripple-dash}@keyframes ripple-dash{to{stroke-dashoffset:-22px}}@media (prefers-reduced-motion:reduce){.ripple-edge-break{animation:none}}.ripple-edge-verb{letter-spacing:.05em;background:color-mix(in oklab, var(--surface-default) 88%, transparent);border-radius:var(--r-full);pointer-events:none;white-space:nowrap;padding:1px 6px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:600;position:absolute;transform:translate(-50%,-50%)}.ripple-node{transform-origin:50%;text-align:left;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--surface-elevated);cursor:pointer;transition:opacity var(--m-fast) var(--ease-out), box-shadow var(--m-fast) var(--ease-out);flex-direction:column;align-items:flex-start;gap:3px;padding:8px 11px;display:flex;position:absolute;box-shadow:0 8px 20px #00000038}.ripple-node:hover{box-shadow:0 10px 26px #0000004d}.ripple-node[data-center=true]{background:var(--surface-elevated-2);justify-content:center;align-items:center;box-shadow:0 14px 34px #0006}.ripple-node[data-open=true]{box-shadow:0 0 0 3px color-mix(in oklab, var(--presence) 40%, transparent)}.ripple-node-eyebrow{letter-spacing:.12em;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:7.5px;font-weight:700}.ripple-node-name{color:var(--text-primary);font-size:12.5px;font-weight:700;line-height:1.2}.ripple-node-name-lg{font-size:14px}.ripple-node-top{align-items:center;gap:6px;display:flex}.ripple-node-dot{border-radius:50%;flex:none;width:7px;height:7px}.ripple-node-status{letter-spacing:.08em;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:7.5px;font-weight:700}.ripple-node-sev{color:#fff;border-radius:var(--r-full);margin-left:auto;padding:1px 6px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:7px;font-weight:700}.ripple-node-meta{color:var(--text-secondary);font-size:9.5px}.ripple-node-repo{color:var(--warning);background:color-mix(in oklab, var(--warning) 14%, transparent);border-radius:4px;padding:1px 5px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:7.5px}.ripple-map-legend{background:color-mix(in oklab, var(--surface-default) 86%, transparent);border:1px solid var(--line);border-radius:var(--r-sm);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);gap:12px;padding:6px 10px;display:flex;position:absolute;bottom:12px;left:12px}.ripple-map-legend-item{color:var(--text-secondary);align-items:center;gap:5px;font-size:9.5px;display:inline-flex}.ripple-inspect{gap:var(--s-2);width:344px;max-width:80%;padding:var(--s-md);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-md);z-index:3;flex-direction:column;display:flex;position:absolute;top:52px;bottom:0;right:0;overflow:auto;box-shadow:-16px 0 44px #00000052}.ripple-inspect-head{justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.ripple-inspect-titles{align-items:center;gap:8px;display:flex}.ripple-inspect-sev{color:#fff;border-radius:var(--r-full);padding:2px 8px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:8px;font-weight:700}.ripple-inspect-name{color:var(--text-primary);font-size:18px;font-weight:700}.ripple-inspect-owner{color:var(--text-secondary);font-size:11.5px}.ripple-inspect-cite{color:var(--text-muted);font-family:IBM Plex Mono,ui-monospace,monospace}.ripple-inspect-traffic{background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-sm);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.ripple-inspect-traffic strong{color:var(--text-primary);font-size:13px}.ripple-inspect-traffic span{color:var(--text-muted);font-size:10.5px}.ripple-inspect-block{flex-direction:column;gap:5px;display:flex}.ripple-inspect-block p{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:13px;line-height:1.5}.ripple-inspect-problem{background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 12px}.ripple-inspect-fix{border-top:1px solid var(--line);padding-top:var(--s-2);flex-direction:column;gap:5px;display:flex}.ripple-inspect-fix p{color:var(--text-primary);margin:0;font-size:13px;font-weight:500;line-height:1.5}.ripple-ask-btn{border:1px solid color-mix(in oklab, var(--presence) 40%, transparent);border-radius:var(--r-sm);background:color-mix(in oklab, var(--presence) 16%, transparent);color:var(--text-primary);cursor:pointer;margin-top:auto;padding:9px 14px;font-size:12.5px;font-weight:600}.ripple-ask-btn:hover{background:color-mix(in oklab, var(--presence) 24%, transparent)}.ripple-rail-altitude{padding:var(--s-2) 4px 4px;border-top:1px solid var(--line);flex-direction:column;gap:7px;margin-top:auto;display:flex}.ripple-alt{border:1px solid var(--line);border-radius:var(--r-sm);display:flex;overflow:hidden}.ripple-alt button{color:var(--text-secondary);border:0;border-right:1px solid var(--line);cursor:pointer;transition:background var(--m-fast) var(--ease-out);background:0 0;flex:1;padding:6px 4px;font-size:10.5px}.ripple-alt button:last-child{border-right:0}.ripple-alt button[data-active=true]{background:color-mix(in oklab, var(--presence) 18%, transparent);color:var(--text-primary);font-weight:600}.ripple-example-text{flex:1;min-width:0}.ripple-example[data-real=true]{background:color-mix(in oklab, var(--presence) 9%, transparent)}.ripple-example[data-real=true] .ripple-example-dot{background:var(--presence)}.ripple-example-cta{color:var(--presence);background:color-mix(in oklab, var(--presence) 12%, transparent);border:1px solid color-mix(in oklab, var(--presence) 32%, transparent);border-radius:var(--r-full);cursor:pointer;white-space:nowrap;transition:background var(--m-fast) var(--ease-out);flex:none;margin-left:auto;padding:4px 12px;font-size:11.5px;font-weight:600}.ripple-example-cta:hover{background:color-mix(in oklab, var(--presence) 20%, transparent)}.ripple-paste{z-index:10;padding:var(--s-lg);background:color-mix(in oklab, var(--surface-deep) 60%, transparent);-webkit-backdrop-filter:blur(3px);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ripple-paste-card{gap:var(--s-2);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-md);width:min(720px,100%);max-height:88%;box-shadow:var(--shadow-modal);padding:var(--s-lg);flex-direction:column;display:flex}.ripple-paste-head{justify-content:space-between;align-items:flex-start;gap:var(--s-2);display:flex}.ripple-paste-title{color:var(--text-primary);font-size:17px;font-weight:700}.ripple-paste-sub{color:var(--text-secondary);margin-top:3px;font-size:12.5px;line-height:1.5}.ripple-paste-sub code{color:var(--text-primary);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px}.ripple-paste-input{resize:vertical;width:100%;min-height:240px;color:var(--text-primary);background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;line-height:1.55}.ripple-paste-input:focus{border-color:color-mix(in oklab, var(--presence) 50%, transparent);outline:none}.ripple-paste-err{color:var(--danger);font-size:12.5px;line-height:1.45}.ripple-paste-actions{gap:var(--s-sm);display:flex}.ripple-paste-go{border-radius:var(--r-sm);background:var(--presence);color:#fff;cursor:pointer;border:0;padding:8px 16px;font-size:13px;font-weight:600}.ripple-paste-go:hover{background:var(--presence-deep)}.ripple-paste-cancel{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-elevated-2);color:var(--text-secondary);cursor:pointer;padding:8px 16px;font-size:13px;font-weight:600}.ripple-enriching{color:var(--presence);align-items:center;gap:6px;margin-left:10px;font-size:11px;display:inline-flex}.ripple-enriching-dot{background:var(--presence);border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite ripple-pulse}@keyframes ripple-pulse{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.ripple-enriching-dot{animation:none}}@media (prefers-reduced-motion:no-preference){.ripple-world[data-animate=true] .ripple-node:not([data-center]),.ripple-world[data-animate=true] .ripple-edge{animation:.44s ease-out backwards ripple-enter}.ripple-world[data-animate=true] .ripple-node[data-center]{animation:.36s cubic-bezier(.2,.9,.2,1) backwards ripple-enter-pop}}@keyframes ripple-enter{0%{opacity:0}}@keyframes ripple-enter-pop{0%{opacity:0;transform:scale(.86)}}.ripple-enter-pulse{border:2px solid var(--presence);pointer-events:none;z-index:0;opacity:0;border-radius:50%;width:64px;height:64px;margin:-32px 0 0 -32px;position:absolute}@media (prefers-reduced-motion:no-preference){.ripple-enter-pulse{animation:1.2s ease-out forwards ripple-enter-ring}}@keyframes ripple-enter-ring{0%{opacity:.5;transform:scale(.5)}to{opacity:0;transform:scale(6.5)}}@keyframes ripple-build-pulse{0%,to{opacity:.7;box-shadow:0 0 0 0 color-mix(in oklab, var(--presence) 45%, transparent);transform:scale(.85)}50%{opacity:1;box-shadow:0 0 0 16px color-mix(in oklab, var(--presence) 0%, transparent);transform:scale(1)}}.ripple-sharpening{margin:0 0 var(--s-md);color:var(--text-secondary);background:color-mix(in oklab, var(--presence) 8%, var(--surface-default));border:1px solid color-mix(in oklab, var(--presence) 22%, var(--line));border-radius:999px;align-self:flex-start;align-items:center;gap:7px;padding:5px 11px;font-size:12px;font-weight:600;display:inline-flex}.ripple-sharpening-dot{background:var(--presence);border-radius:50%;width:7px;height:7px}.ripple-rail-spark{background:var(--presence);border-radius:50%;width:6px;height:6px;margin-left:auto}@media (prefers-reduced-motion:no-preference){.ripple-sharpening-dot,.ripple-rail-spark{animation:1.4s ease-in-out infinite ripple-build-pulse}}.ripple-sharpening-wrap{margin:0 0 var(--s-md);flex-direction:column;gap:8px;display:flex}.ripple-sharpening-wrap .ripple-sharpening{margin:0}.ripple-skel-bar{background:linear-gradient(90deg, color-mix(in oklab, var(--presence) 5%, var(--surface-elevated-2)) 25%, color-mix(in oklab, var(--presence) 22%, var(--surface-elevated-2)) 50%, color-mix(in oklab, var(--presence) 5%, var(--surface-elevated-2)) 75%);background-size:200% 100%;border-radius:6px}.ripple-progress{background:color-mix(in oklab, var(--presence) 12%, var(--surface-default));border-radius:999px;max-width:480px;height:3px;position:relative;overflow:hidden}.ripple-progress:after{content:"";border-radius:inherit;background:linear-gradient(90deg, transparent, var(--presence), transparent);width:40%;position:absolute;top:0;bottom:0;left:-40%}@keyframes ripple-shimmer{0%{background-position:180% 0}to{background-position:-180% 0}}@keyframes ripple-indeterminate{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion:no-preference){.ripple-skel-bar{animation:1.6s linear infinite ripple-shimmer}.ripple-progress:after{animation:1.15s ease-in-out infinite ripple-indeterminate}}.ripple-intake-tabs{background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-sm);align-self:flex-start;gap:2px;max-width:100%;padding:3px;display:flex;overflow-x:auto}.ripple-intake-tabs button{color:var(--text-secondary);border-radius:calc(var(--r-sm) - 3px);cursor:pointer;white-space:nowrap;transition:background var(--m-fast) var(--ease-out);background:0 0;border:0;flex:none;padding:6px 14px;font-size:12.5px;font-weight:600}.ripple-intake-tabs button[data-active=true]{background:var(--surface-elevated-2);color:var(--text-primary)}.ripple-paste-hint{color:var(--text-muted);font-size:11.5px;line-height:1.5}.ripple-paste-hint code{color:var(--text-secondary);font-family:IBM Plex Mono,ui-monospace,monospace}.ripple-paste-go:disabled{opacity:.6;cursor:default}.ripple-gh{gap:var(--s-2);flex-direction:column;display:flex}.ripple-gh-field{flex-direction:column;gap:5px;display:flex}.ripple-gh-field>span{color:var(--text-secondary);font-size:11px}.ripple-gh-field>span em{color:var(--text-muted);font-style:normal}.ripple-gh-field input{color:var(--text-primary);background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 11px;font-size:13px}.ripple-gh-field input:focus{border-color:color-mix(in oklab, var(--presence) 50%, transparent);outline:none}.ripple-gh-row{gap:var(--s-sm);align-items:flex-end;display:flex}.ripple-gh-grow{flex:1;min-width:0}.ripple-gh-or{color:var(--text-muted);text-align:center;border-top:1px solid var(--line);padding-top:var(--s-2);margin-top:2px;font-size:11px}.ripple-gh-token{gap:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--line);flex-direction:column;margin-top:2px;display:flex}.ripple-gh-adv{border-top:1px solid var(--line);padding-top:var(--s-2);margin-top:2px}.ripple-gh-adv>summary{cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;font-size:11.5px;list-style:none}.ripple-gh-adv>summary::-webkit-details-marker{display:none}.ripple-gh-adv>summary:before{content:"▸ ";color:var(--text-muted)}.ripple-gh-adv[open]>summary:before{content:"▾ "}.ripple-gh-adv[open]{gap:var(--s-2);flex-direction:column;display:flex}.ripple-ask-toggle{color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-full);cursor:pointer;white-space:nowrap;transition:background var(--m-fast) var(--ease-out), color var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out);padding:5px 12px;font-size:11.5px;font-weight:700}.ripple-ask-toggle:hover{background:var(--surface-elevated-2);color:var(--text-primary)}.ripple-ask-toggle.is-active{background:color-mix(in oklab, var(--presence) 20%, transparent);border-color:color-mix(in oklab, var(--presence) 40%, transparent);color:var(--text-primary)}.ripple-track-btn{color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-full);cursor:pointer;white-space:nowrap;transition:background var(--m-fast) var(--ease-out), color var(--m-fast) var(--ease-out);padding:5px 11px;font-size:11.5px;font-weight:600}.ripple-track-btn:hover{background:var(--surface-elevated-2);color:var(--text-primary)}.ripple-tracked{gap:var(--s-sm);flex-direction:column;max-height:320px;display:flex;overflow:auto}.ripple-tracked-empty{color:var(--text-secondary);padding:var(--s-md) 0;font-size:13px;line-height:1.55}.ripple-tracked-empty strong{color:var(--text-primary)}.ripple-tracked-row{align-items:center;gap:var(--s-sm);display:flex}.ripple-tracked-open{justify-content:space-between;align-items:center;gap:var(--s-2);text-align:left;background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;min-width:0;transition:border-color var(--m-fast) var(--ease-out);flex:1;padding:11px 13px;display:flex}.ripple-tracked-open:hover{border-color:color-mix(in oklab, var(--presence) 40%, transparent)}.ripple-tracked-label{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.ripple-tracked-meta{color:var(--text-muted);flex:none;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{dt as n,ht as r,ut as i}from"./index-y8GL67bB.js";var a=r(),o=e(),s=t(),c=[{w:`100%`},{w:`94%`,data:!0},{w:`97%`},{w:`88%`,data:!0},{w:`100%`},{w:`91%`,data:!0},{w:`96%`},{w:`70%`,data:!0},{w:`82%`}],l=[`42%`,`54%`,`48%`,`70%`,`100%`];function u(e,t,n,r){let i=(0,a.c)(6),[s,c]=(0,o.useState)(0),l,u;return i[0]!==r||i[1]!==t||i[2]!==n||i[3]!==e?(l=()=>{if(!r)return;if(window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches||document.documentElement.dataset.perf===`lite`){c(e);return}let i=0,a=0,o=t=>{a||=t;let r=Math.min(1,(t-a)/n);c(e*(1-(1-r)**3)),r<1&&(i=requestAnimationFrame(o))},s=window.setTimeout(()=>{i=requestAnimationFrame(o)},t);return()=>{clearTimeout(s),cancelAnimationFrame(i)}},u=[r,e,t,n],i[0]=r,i[1]=t,i[2]=n,i[3]=e,i[4]=l,i[5]=u):(l=i[4],u=i[5]),(0,o.useEffect)(l,u),s}function d(){let[e,t]=n({threshold:.3,nearestScrollRoot:!0}),r=u(23.8,1100,900,t);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(i,{eyebrow:`Why it feels different`,children:[`Stop reading paragraphs.`,(0,s.jsx)(`br`,{}),(0,s.jsx)(`em`,{className:`fl-grad`,children:`Start seeing answers.`})]}),(0,s.jsxs)(`div`,{className:`fl-compare`+(t?` sd-play`:``),ref:e,children:[(0,s.jsxs)(`div`,{className:`fl-compare-wall`,children:[(0,s.jsx)(`div`,{className:`fl-compare-label`,children:`The usual answer · a wall of text`}),(0,s.jsx)(`div`,{className:`fl-wall-lines`,children:c.map((e,t)=>(0,s.jsx)(`div`,{className:`fl-wall-line`+(e.data?` data`:``),style:{width:e.w,"--wl-i":String(t)}},t))}),(0,s.jsx)(`div`,{className:`fl-compare-hand`,children:`…still reading?`})]}),(0,s.jsxs)(`div`,{className:`fl-compare-seen`,children:[(0,s.jsx)(`div`,{className:`fl-compare-label accent`,children:`Mavéa · the same answer, seen`}),(0,s.jsxs)(`div`,{className:`fl-seen-stat`,children:[(0,s.jsxs)(`span`,{className:`fl-seen-num`,children:[`$`,r.toFixed(1),`M`]}),(0,s.jsx)(`span`,{className:`fl-seen-delta`,children:`▲ 18%`})]}),(0,s.jsx)(`div`,{className:`fl-seen-cap`,children:`Q3 revenue · best quarter on record`}),(0,s.jsx)(`div`,{className:`fl-seen-bars`,children:l.map((e,t)=>(0,s.jsx)(`div`,{className:`fl-seen-bar`+(e===`100%`?` peak`:``),style:{"--h":e,"--sb-i":String(t)}},t))}),(0,s.jsx)(`div`,{className:`fl-seen-note`,children:`Illustrative numbers`})]})]})]})}export{d as SeeDontRead};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.reel{background:var(--reel-wash);width:100%;height:100%;color:var(--reel-ink);--reel-sans:var(--font,"Hanken Grotesk", system-ui, sans-serif);--reel-mono:var(--font-data,"IBM Plex Mono", ui-monospace, monospace);--reel-serif:"Newsreader", Georgia, "Times New Roman", serif;--reel-tick:#e8742f;--reel-draw:#c8763a;place-items:center;display:grid;position:relative;overflow:hidden}.reel:focus{outline:none}.reel:focus-visible{box-shadow:inset 0 0 0 3px color-mix(in oklab, var(--reel-accent) 70%, white 12%)}.reel[data-palette=aurora]{--reel-accent:#4f46e5;--reel-accent-2:#7c3aed;--reel-glow:#635bff8c;--reel-bg:linear-gradient(180deg, #edecfe 0%, #f8f7ff 62%, #efeefb 100%);--reel-wash:radial-gradient(120% 90% at 50% 0%, #1a1840 0%, #0b0a18 60%, #07060f 100%);--reel-ink:#1c1a3a;--reel-orb-1:#6d6dff;--reel-orb-2:#3a2db0}.reel[data-palette=ember]{--reel-accent:#e0603a;--reel-accent-2:#f4923c;--reel-glow:#e0603a80;--reel-bg:linear-gradient(180deg, #fde9de 0%, #fff6f1 62%, #fdeee6 100%);--reel-wash:radial-gradient(120% 90% at 50% 0%, #3a160c 0%, #170a07 60%, #0d0605 100%);--reel-ink:#34190f;--reel-orb-1:#f4923c;--reel-orb-2:#b5380f}.reel[data-palette=ocean]{--reel-accent:#0f9bad;--reel-accent-2:#2ad0e6;--reel-glow:#0faabd80;--reel-bg:linear-gradient(180deg, #e2f4f6 0%, #f1fbfc 62%, #e8f7f8 100%);--reel-wash:radial-gradient(120% 90% at 50% 0%, #06343a 0%, #04181c 60%, #03090c 100%);--reel-ink:#0c2b30;--reel-orb-1:#2ad0e6;--reel-orb-2:#0c6f7d}.reel[data-palette=chalk]{--reel-accent:#6f7588;--reel-accent-2:#9aa1b4;--reel-glow:#7d839866;--reel-bg:linear-gradient(180deg, #eaecf1 0%, #f8f9fb 62%, #eef0f4 100%);--reel-wash:radial-gradient(120% 90% at 50% 0%, #2a2d3a 0%, #131520 60%, #0c0d14 100%);--reel-ink:#2a2d3a;--reel-orb-1:#c3c8d6;--reel-orb-2:#7d8398}.reel-board{--ru:1cqh;--rw:1cqw;background:var(--reel-bg);isolation:isolate;width:100%;max-width:100%;height:100%;color:var(--reel-ink);position:relative;overflow:hidden;container-type:size}.reel-darkwash{z-index:1;background:var(--reel-wash);position:absolute;inset:0}.reel-board[data-surface=dark]{--reel-ink:#eef1ff}.reel-board[data-surface=dark] .reel-wordmark{color:#fff}.reel-board[data-surface=dark] .reel-seg{background:#fff3}.reel-board:before{content:"";width:calc(var(--ru) * 80);height:calc(var(--ru) * 80);background:radial-gradient(circle at 50% 50%, var(--reel-glow) 0%, transparent 62%);z-index:0;animation:24s ease-in-out infinite reel-glow-drift;position:absolute;top:14%;left:50%;transform:translate(-50%,-50%)}.reel-top{inset:calc(var(--ru) * 3.2) calc(var(--rw) * 4.4) auto calc(var(--rw) * 4.4);z-index:4;align-items:center;gap:calc(var(--ru) * 1.4);display:flex;position:absolute}.reel-progress{inset:calc(var(--ru) * 2) calc(var(--rw) * 4.4) auto calc(var(--rw) * 4.4);z-index:5;gap:calc(var(--rw) * 1);display:flex;position:absolute}.reel-seg-hit{appearance:none;background:0 0;border:0;flex:1;align-items:center;padding:0;display:flex}.reel-progress[data-interactive=true] .reel-seg-hit{cursor:pointer;padding-block:calc(var(--ru) * 1.4);margin-block:calc(var(--ru) * -1.4)}.reel-progress[data-interactive=true] .reel-seg-hit:hover .reel-seg{background:color-mix(in oklab, var(--reel-ink) 30%, transparent)}.reel-seg{width:100%;height:calc(var(--ru) * .55);border-radius:var(--r-full);background:color-mix(in oklab, var(--reel-ink) 16%, transparent);overflow:hidden}.reel-seg>i{height:100%;width:var(--fill,0%);background:var(--reel-accent);border-radius:inherit;display:block}.reel-wordmark{align-items:center;gap:calc(var(--ru) * 1.1);font:600 calc(var(--ru) * 2.4) / 1 var(--reel-sans);color:var(--reel-ink);display:inline-flex}.reel-dot{width:calc(var(--ru) * 1.3);height:calc(var(--ru) * 1.3);background:var(--reel-accent);border-radius:50%;animation:1.8s ease-in-out infinite reel-pulse}.reel-palettename{font:500 calc(var(--ru) * 2) / 1 var(--reel-mono);letter-spacing:.18em;color:var(--reel-accent);text-transform:uppercase;margin-left:auto}.reel-jelly{width:calc(var(--ru) * 18);height:calc(var(--ru) * 19.8);filter:drop-shadow(0 calc(var(--ru) * 1.4) calc(var(--ru) * 4.5) var(--reel-glow));animation:5.5s ease-in-out infinite reel-floaty}.reel-jelly svg{width:100%;height:100%;display:block}.reel-jelly[data-size=sm]{width:calc(var(--ru) * 13);height:calc(var(--ru) * 14.3)}.reel-jelly-stop.s1{stop-color:var(--reel-orb-1)}.reel-jelly-stop.s2{stop-color:color-mix(in oklab, var(--reel-orb-1) 45%, var(--reel-orb-2))}.reel-jelly-stop.s3{stop-color:var(--reel-orb-2)}.reel-jelly-bell{opacity:.96}.reel-jelly-sheen{fill:none;stroke:#ffffffe6;stroke-width:4px;stroke-linecap:round;opacity:.55}.reel-jelly-strands path{fill:none;stroke-width:3.5px;stroke-linecap:round;opacity:.75}.reel-jelly-strands .c1{stroke:var(--reel-orb-1)}.reel-jelly-strands .c2{stroke:var(--reel-accent-2)}.reel-jelly-strands .c3{stroke:var(--reel-accent)}.reel-jelly-strands .c4{stroke:var(--reel-orb-2)}.reel-jelly-cheek{fill:#ff9fb6;opacity:.35}.reel-jelly-ball,.reel-jelly-glint{fill:#fff}.reel-jelly-pupil{fill:#252c55}.reel-jelly-smile{fill:none;stroke:#fff;stroke-width:3.6px;stroke-linecap:round}.reel-jelly-pos{z-index:2;position:absolute;top:8.5%;left:50%;transform:translate(-50%)}.reel-stage{z-index:3;position:absolute;inset:29% 0 12%}.reel-board[data-bleed=true] .reel-stage{inset:11% 0 10%}.reel-finish-loading{border:1px solid color-mix(in oklab, var(--reel-accent) 22%, transparent);border-radius:calc(var(--ru) * 2.4);background:color-mix(in oklab, var(--reel-accent) 8%, transparent);width:min(72%,280px);height:min(46%,240px);margin:auto}.reel-pause-badge{z-index:6;pointer-events:none;opacity:0;place-items:center;transition:opacity .18s;display:grid;position:absolute;inset:0}.reel-pause-badge[data-show=true]{opacity:1}.reel-pause-glyph{align-items:center;gap:calc(var(--ru) * 1);width:calc(var(--ru) * 12);height:calc(var(--ru) * 12);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:oklab(0% none none/.45);border-radius:50%;justify-content:center;display:flex}.reel-pause-glyph span{width:calc(var(--ru) * 1.6);height:calc(var(--ru) * 5.2);border-radius:calc(var(--ru) * .4);background:#fff}.reel-board[data-aspect="1:1"] .reel-jelly-pos{top:6.5%}.reel-board[data-aspect="1:1"] .reel-jelly{width:calc(var(--ru) * 9);height:calc(var(--ru) * 9.9)}.reel-board[data-aspect="1:1"] .reel-stage{inset:27% 3% 10%}.reel-board[data-aspect="1:1"][data-bleed=true] .reel-stage{inset:13% 2% 9%}.reel-board[data-aspect="1:1"]:before{top:10%}.reel-board[data-aspect="16:9"] .reel-jelly-pos{top:50%;left:21%;transform:translate(-50%,-50%)}.reel-board[data-aspect="16:9"] .reel-jelly{width:calc(var(--ru) * 22);height:calc(var(--ru) * 24.2)}.reel-board[data-aspect="16:9"] .reel-stage{inset:14% 6% 10% 39%}.reel-board[data-aspect="16:9"][data-bleed=true] .reel-stage{inset:12% 6% 9%}.reel-board[data-aspect="16:9"]:before{top:50%;left:21%}.reel-trans{position:absolute;inset:0}.reel-trans[data-trans=fade]{animation:.5s forwards reel-trans-fade}.reel-trans[data-trans=up]{animation:.55s cubic-bezier(.2,.7,.3,1) forwards reel-trans-up}.reel-trans[data-trans=left]{animation:.55s cubic-bezier(.2,.7,.3,1) forwards reel-trans-left}.reel-trans[data-trans=zoom]{animation:.55s cubic-bezier(.2,.7,.3,1) forwards reel-trans-zoom}.reel-trans[data-trans=wipe]{animation:.62s cubic-bezier(.4,0,.2,1) forwards reel-trans-wipe}@keyframes reel-trans-fade{0%{opacity:0}to{opacity:1}}@keyframes reel-trans-up{0%{opacity:0;transform:translateY(calc(var(--ru) * 7))}to{opacity:1;transform:translateY(0)}}@keyframes reel-trans-left{0%{opacity:0;transform:translateX(calc(var(--rw) * 9))}to{opacity:1;transform:translate(0)}}@keyframes reel-trans-zoom{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes reel-trans-wipe{0%{opacity:0;clip-path:inset(0 0 100%)}to{opacity:1;clip-path:inset(0)}}.reel-card{width:calc(var(--rw) * 84);max-width:92%;padding:calc(var(--ru) * 4) calc(var(--rw) * 4.4);border-radius:calc(var(--ru) * 4);background:color-mix(in oklab, #fff 88%, var(--reel-accent) 6%);border:1px solid color-mix(in oklab, var(--reel-ink) 12%, transparent);box-shadow:0 calc(var(--ru) * 6) calc(var(--ru) * 14) calc(var(--ru) * -6) #14102c73, inset 0 1px 0 #fff9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:relative;overflow:hidden}.reel-eyebrow{align-items:center;gap:calc(var(--ru) * 1.2);row-gap:calc(var(--ru) * .8);font:500 calc(var(--ru) * 2) / 1 var(--reel-mono);letter-spacing:.08em;text-transform:uppercase;color:color-mix(in oklab, var(--reel-ink) 62%, transparent);flex-wrap:wrap;display:flex}.reel-part-chip{height:calc(var(--ru) * 3.2);padding:0 calc(var(--rw) * 1.6);border-radius:var(--r-full);background:color-mix(in oklab, var(--reel-accent) 18%, transparent);color:var(--reel-accent);white-space:nowrap;align-items:center;display:inline-flex}.reel-frame-slide{align-items:center;gap:calc(var(--ru) * 3);text-align:center;flex-direction:column;display:flex}.reel-prompt{font:700 calc(var(--ru) * 7.4) / 1.12 var(--reel-sans);letter-spacing:-.02em;color:var(--reel-ink);max-width:calc(var(--rw) * 88);text-wrap:balance}.reel-prompt .q{color:var(--reel-accent)}.reel-caret{width:calc(var(--rw) * .5);height:calc(var(--ru) * 6);vertical-align:text-bottom;margin-left:calc(var(--rw) * .6);background:var(--reel-accent);animation:1s step-end infinite reel-blink;display:inline-block}.reel-wordmark-xl{font:200 calc(var(--ru) * 18) / 1 var(--reel-sans);letter-spacing:-.02em;background:linear-gradient(120deg, var(--reel-orb-1), var(--reel-accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.reel-tagline{font:500 calc(var(--ru) * 3) / 1.3 var(--reel-sans);color:color-mix(in oklab, var(--reel-ink) 64%, transparent);text-wrap:balance}.reel-card h3{margin:calc(var(--ru) * 2.4) 0 0;font:700 calc(var(--ru) * 4.6) / 1.08 var(--reel-sans);letter-spacing:-.01em;color:var(--reel-ink);text-wrap:balance}.reel-bignum{font:700 calc(var(--ru) * 17) / .92 var(--reel-sans);letter-spacing:-.03em;color:var(--reel-accent)}.reel-fade{animation:.6s cubic-bezier(.2,.7,.3,1) forwards reel-fade-up}.reel-flipcard{width:100%;height:calc(var(--ru) * 38);transform-style:preserve-3d;animation:3.6s cubic-bezier(.6,0,.2,1) .5s both reel-flip;position:relative}.reel-flipface{backface-visibility:hidden;border-radius:calc(var(--ru) * 3);gap:calc(var(--ru) * 1.6);text-align:center;padding:calc(var(--ru) * 3) calc(var(--rw) * 4);font:600 calc(var(--ru) * 3.6) / 1.32 var(--reel-sans);background:color-mix(in oklab, var(--reel-ink) 6%, transparent);color:var(--reel-ink);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.reel-flipback{background:linear-gradient(135deg, var(--reel-accent), var(--reel-accent-2));color:#fff;transform:rotateY(180deg)}.reel-flipkick{font:600 calc(var(--ru) * 2) / 1 var(--reel-mono);letter-spacing:.1em;text-transform:uppercase;opacity:.7}.reel-quote{gap:calc(var(--ru) * 2);max-width:calc(var(--rw) * 84);flex-direction:column;display:flex}.reel-quote-mark{font:700 calc(var(--ru) * 18) / .5 var(--reel-serif);color:var(--reel-accent)}.reel-quote-body{font:700 calc(var(--ru) * 5.6) / 1.28 var(--reel-sans);letter-spacing:-.01em;color:var(--reel-ink);text-wrap:balance;margin:0}.reel-quote-body mark{background:color-mix(in oklab, var(--reel-accent) 28%, transparent);color:inherit;padding:0 calc(var(--rw) * .4);border-radius:calc(var(--ru) * .6)}@keyframes reel-glow-drift{0%,to{opacity:.85;transform:translate(-50%,-50%)scale(1)}50%{opacity:1;transform:translate(-50%,-46%)scale(1.16)}}@keyframes reel-floaty{0%,to{transform:translateY(0)}50%{transform:translateY(calc(var(--ru) * -2.4))}}@keyframes reel-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}@keyframes reel-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes reel-fade-up{0%{opacity:0;transform:translateY(calc(var(--ru) * 2))}to{opacity:1;transform:translateY(0)}}@keyframes reel-grow-bar{0%{transform:scaleY(.12)}to{transform:scaleY(1)}}@keyframes reel-grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes reel-draw{0%{stroke-dashoffset:var(--len,1)}to{stroke-dashoffset:0}}@keyframes reel-ring{to{stroke-dashoffset:var(--to,0)}}@keyframes reel-flip{0%,38%{transform:rotateY(0)}62%,to{transform:rotateY(180deg)}}@keyframes reel-pop{0%{opacity:0;transform:scale(.7)}60%{opacity:1;transform:scale(1.03)}to{transform:scale(1)}}@keyframes reel-rise{0%{opacity:0;transform:translateY(calc(var(--ru) * 3))}to{opacity:1;transform:translateY(0)}}@keyframes reel-sheen{to{background-position:200%}}@keyframes reel-seg-fill{0%{width:0%}to{width:100%}}@media (prefers-reduced-motion:reduce){.reel-jelly,.reel-board:before,.reel-dot,.reel-drawing{animation:none!important}.reel-stage *{animation-duration:.01ms!important;animation-iteration-count:1!important}}.shm-scrim{z-index:80;box-sizing:border-box;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);scrollbar-gutter:stable both-edges;background:#020408db;place-items:center;width:100vw;height:100dvh;padding:24px;display:grid;position:fixed;inset:0;overflow:auto}.shm-modal{align-items:center;gap:clamp(24px,5vw,72px);width:100%;max-width:1100px;display:flex;position:relative}.shm-panel{flex-direction:column;flex:1 1 0;gap:18px;max-width:480px;display:flex}.shm-eyebrow{font:700 13px/1 var(--font);letter-spacing:.12em;color:var(--presence-soft)}.shm-headline{font:700 clamp(28px, 4.4vw, 44px)/1.12 var(--font);color:#f3f6fc;letter-spacing:-.02em}.shm-sub{font:450 16px/1.5 var(--font);color:#ecf2f8a3;max-width:400px}.shm-kbd-hint{font:500 12px/1.4 var(--font);color:#ecf2f875;flex-wrap:wrap;align-items:center;gap:6px;display:flex}.shm-kbd-hint kbd{min-width:20px;height:20px;font:600 11px/1 var(--font);color:#ecf2f8c7;background:#ffffff0f;border:1px solid #fff3;border-radius:5px;justify-content:center;align-items:center;margin-right:2px;padding:0 5px;display:inline-flex}.shm-group{flex-direction:column;gap:9px;display:flex}.shm-label{font:500 11px/1 var(--font);letter-spacing:.2em;text-transform:uppercase;color:#ecf2f880}.shm-chips{flex-wrap:wrap;gap:8px;display:flex}.shm-dot{border-radius:50%;width:13px;height:13px;box-shadow:inset 0 0 0 1px #ffffff40}.shm-shape{opacity:.9;background:currentColor;border-radius:3px}.shm-chip{border-radius:var(--r-full);color:#ecf2f89e;font:600 13px/1 var(--font);cursor:pointer;background:0 0;border:1px solid #ffffff24;align-items:center;gap:8px;padding:9px 14px;transition:border-color .16s,background .16s,color .16s,transform 80ms;display:inline-flex}.shm-chip:hover:not(:disabled){color:#eef2f8;background:#ffffff0f;border-color:#ffffff57}.shm-chip:active:not(:disabled){transform:scale(.96)}.shm-chip[data-active=true]{color:#fff;background:#ffffff21;border-color:#ffffff8c}.shm-chip:disabled{opacity:.45;cursor:default}.shm-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:2px;display:flex}.shm-btn{color:#ecf2f8e6;font:650 16px/1 var(--font);cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:14px;align-items:center;gap:8px;padding:12px 22px;transition:border-color .16s,background .16s,transform 80ms,box-shadow .16s;display:inline-flex}.shm-btn:hover:not(:disabled){background:#ffffff0f;border-color:#fff6}.shm-btn:active:not(:disabled){transform:scale(.97)}.shm-btn:disabled{opacity:.55;cursor:default}.shm-btn-primary{background:var(--presence);color:#fff;box-shadow:0 8px 24px -10px var(--presence);border:none}.shm-btn-primary:hover:not(:disabled){background:var(--presence);filter:brightness(1.08);box-shadow:0 12px 30px -10px var(--presence)}.shm-remix{border-radius:var(--r-full);color:#ecf2f8d1;font:600 14px/1 var(--font);cursor:pointer;background:0 0;border:1px solid #ffffff2e;margin-left:auto;padding:10px 16px;transition:border-color .16s,background .16s,transform .4s}.shm-remix:hover:not(:disabled){background:#ffffff0f;border-color:#fff6}.shm-remix:active:not(:disabled){transform:rotate(180deg)}.shm-remix:disabled{opacity:.5;cursor:default}.shm-spin{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite shm-spin}@keyframes shm-spin{to{transform:rotate(360deg)}}.shm-progress{opacity:0;flex-direction:column;gap:6px;height:0;transition:height .2s,opacity .2s;display:flex;overflow:hidden}.shm-progress[data-on=true]{opacity:1;height:34px}.shm-progress-bar{background:#ffffff1f;border-radius:999px;height:4px;overflow:hidden}.shm-progress-bar>i{border-radius:inherit;background:var(--presence);width:40%;height:100%;animation:1.1s ease-in-out infinite shm-indet;display:block}@keyframes shm-indet{0%{margin-left:-40%}to{margin-left:100%}}.shm-progress-text{font:500 12px/1 var(--font);color:#ecf2f899}.shm-stage{flex:none;place-items:center;display:grid}.shm-frame{box-shadow:0 40px 120px -28px #000, 0 0 0 1px var(--line);background:var(--surface-deep);position:relative;overflow:hidden}.shm-frame[data-directed=true]{animation:.28s ease-out shm-directed-in}@keyframes shm-directed-in{0%{opacity:.78}to{opacity:1}}.shm-frame[data-aspect="9:16"]{aspect-ratio:9/16;border-radius:30px;height:min(90vh,880px)}.shm-frame[data-aspect="1:1"]{aspect-ratio:1;border-radius:28px;height:min(82vh,760px)}.shm-frame[data-aspect="16:9"]{aspect-ratio:16/9;border-radius:22px;width:min(66vw,880px)}.shm-controls{z-index:10;gap:8px;display:flex;position:absolute;bottom:12px;left:12px}.shm-sound{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;width:40px;height:40px;font:17px/1 var(--font);cursor:pointer;background:#08070f80;border:1px solid #ffffff38;border-radius:999px;place-items:center;transition:border-color .16s,background .16s,transform 80ms;display:grid}.shm-sound:hover:not(:disabled){background:#08070fb3;border-color:#fff6}.shm-sound:active:not(:disabled){transform:scale(.92)}.shm-sound[data-on=true]{border-color:var(--presence);box-shadow:0 0 0 2px color-mix(in oklab, var(--presence) 50%, transparent)}.shm-sound:disabled{opacity:.6;cursor:default}.shm-composing{color:#ecf2f8b3;height:100%;font:500 15px/1 var(--font);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.shm-composing-dot{background:var(--presence);border-radius:50%;width:12px;height:12px;animation:1.4s ease-in-out infinite pulseDot}.shm-close{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#ecf2f8d9;width:40px;height:40px;font:600 16px/1 var(--font);cursor:pointer;background:#14141e99;border:1px solid #ffffff2e;border-radius:999px;place-items:center;transition:background .16s,border-color .16s,transform 80ms;display:grid;position:absolute;top:12px;right:12px}.shm-close:hover{background:#282837cc;border-color:#fff6}.shm-close:active{transform:scale(.92)}@media (width<=820px){.shm-modal{flex-direction:column-reverse;gap:20px}.shm-panel{width:100%;max-width:100%}.shm-frame[data-aspect="9:16"]{height:min(54vh,520px)}.shm-frame[data-aspect="1:1"]{height:min(50vh,460px)}.shm-frame[data-aspect="16:9"]{width:min(92vw,560px)}.shm-close{top:4px;right:4px}}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/src-DbgF7cRH.js","assets/chunk-BVpWp9h4.js","assets/__vite-browser-external-BufR4LQa.js","assets/providers-wzm7E8Pa.js","assets/http-CJCtjYpA.js","assets/info-CiqHR5cs.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./chunk-BVpWp9h4.js";import{t}from"./react-BQSORdFI.js";import{t as n}from"./jsx-runtime-DaSxXjOY.js";import{J as r,L as i,c as a,ht as o,q as s}from"./index-y8GL67bB.js";import{n as c}from"./icons-CHVz6kv_.js";import{t as l}from"./useFocusTrap-DbfG6zbM.js";import{n as u,t as d}from"./share-QHGHNDhQ.js";import{t as f}from"./toast-BBNs2h3L.js";import{C as p,D as m,E as h,T as g,a as _,i as v,n as y,o as b,r as x,s as ee,t as S,w as C}from"./registry-2v0jlh5Q.js";import{t as w}from"./ReelJelly-3jSVsJsy.js";import{n as T,r as E}from"./spokenText-D4zPX9JY.js";import{r as D,x as O,y as k}from"./kokoro-D4GKpSL0.js";import{t as te}from"./FeatureUseNotice-DPtQ0OGb.js";var A=t();r();var j={balanced:{fps:30,bitrate:6e6},high:{fps:30,bitrate:1e7},ultra:{fps:60,bitrate:16e6}};function ne(e){let{fps:t,bitrate:n}=j[e];return`up to ${t} fps · ${Math.round(n/1e6)} Mbps`}async function M(){try{let{Output:e,Mp4OutputFormat:t,BufferTarget:n,CanvasSource:r,MediaStreamAudioTrackSource:i,canEncodeVideo:a}=await s(async()=>{let{Output:e,Mp4OutputFormat:t,BufferTarget:n,CanvasSource:r,MediaStreamAudioTrackSource:i,canEncodeVideo:a}=await import(`./src-DbgF7cRH.js`);return{Output:e,Mp4OutputFormat:t,BufferTarget:n,CanvasSource:r,MediaStreamAudioTrackSource:i,canEncodeVideo:a}},__vite__mapDeps([0,1,2]));return{Output:e,Mp4OutputFormat:t,BufferTarget:n,CanvasSource:r,MediaStreamAudioTrackSource:i,canEncodeVideo:a}}catch{return null}}async function N(){try{return await s(()=>import(`./dist-xRGLOZwv.js`),[])}catch{return null}}var P={"9:16":{w:1080,h:1920},"1:1":{w:1080,h:1080},"16:9":{w:1920,h:1080}};function re(){if(typeof document>`u`)return!1;let e=typeof MediaRecorder<`u`,t=typeof VideoEncoder<`u`&&globalThis.AudioEncoder!==void 0;return e||t}async function F(e){let t=j[e.quality??`high`],n=e.fps??t.fps,{w:r,h:i}=P[e.aspect],a=e.audioStream?.getAudioTracks()[0]??null,o=await N();if(!o)throw Error(`rasterizer-unavailable`);let s=e.el.clientWidth||r,c=Math.min(3,Math.max(1,r/s)),l=0,u=0,d=document.createElement(`canvas`);d.width=r,d.height=i;let f=d.getContext(`2d`,{alpha:!1});f.fillStyle=`#05070c`,f.fillRect(0,0,r,i);let p=document.createElement(`canvas`);p.width=Math.round(r/2),p.height=Math.round(i/2);let m=p.getContext(`2d`),h=!1,g=()=>{m&&(m.drawImage(d,0,0,p.width,p.height),h=!0)},_=()=>new Blob([],{type:`image/png`}),v=async()=>(!h&&l>0&&g(),h?await new Promise(e=>p.toBlob(e,`image/png`))??_():_()),y=async()=>{let t;try{t=await o.domToCanvas(e.el,{scale:c,backgroundColor:`#05070c`})}catch{u++;return}if(!t.width||!t.height){u++;return}u=0,l++;let n=Math.max(r/t.width,i/t.height),a=t.width*n,s=t.height*n;f.fillStyle=`#05070c`,f.fillRect(0,0,r,i),f.drawImage(t,(r-a)/2,(i-s)/2,a,s)},b=typeof VideoEncoder<`u`&&globalThis.AudioEncoder!==void 0?await M():null;if(b&&await b.canEncodeVideo(`avc`).catch(()=>!1)&&b){let r=new b.Output({format:new b.Mp4OutputFormat,target:new b.BufferTarget}),i=new b.CanvasSource(d,{codec:`avc`,bitrate:t.bitrate});if(r.addVideoTrack(i),a){let e=new b.MediaStreamAudioTrackSource(a,{codec:`aac`,bitrate:192e3});e.errorPromise.catch(()=>{}),r.addAudioTrack(e)}await r.start();let o=!0,s=!0,c=performance.now(),f=0,m=1e3/n,_=e.maxDurationMs??1/0;(async()=>{for(;o;){let e=performance.now();if(await y(),!o)break;let t=s?0:(performance.now()-c)/1e3;s=!1;try{await i.add(t,Math.max(1/n,t-f))}catch{break}if(f=t,t*1e3>=_)break;!h&&t>1.2&&l>2&&u===0&&g();let r=performance.now()-e;await new Promise(e=>setTimeout(e,Math.max(0,m-r)))}})();let x=()=>{o=!1,a?.stop(),d.width=d.height=0,p.width=p.height=0};return{async stop(){o=!1;let e=await v();await r.finalize();let t=r.target.buffer;return x(),{blob:new Blob([t??new ArrayBuffer(0)],{type:`video/mp4`}),type:`video/mp4`,poster:e,hasAudio:!!a,durationMs:Math.round(performance.now()-c)}},cancel(){o=!1,r.cancel?.(),x()}}}let x=d.captureStream(n),ee=new MediaStream(x.getVideoTracks());a&&ee.addTrack(a);let S=MediaRecorder.isTypeSupported(`video/webm;codecs=vp9,opus`)?`video/webm;codecs=vp9,opus`:`video/webm`,C=new MediaRecorder(ee,{mimeType:S,videoBitsPerSecond:t.bitrate}),w=[];C.ondataavailable=e=>e.data.size&&w.push(e.data);let T=new Promise(e=>{C.addEventListener(`stop`,()=>e(),{once:!0})}),E=()=>{try{C.state!==`inactive`&&C.stop()}catch{}};C.start();let D=!0,O=performance.now(),k=e.maxDurationMs??1/0,te=1e3/n;(async()=>{for(;D;){let e=performance.now();await y();let t=performance.now()-O;if(t>=k){E();break}!h&&t>1200&&l>2&&u===0&&g();let n=performance.now()-e;await new Promise(e=>setTimeout(e,Math.max(0,te-n)))}})();let A=()=>{D=!1;for(let e of ee.getTracks())e.stop();a?.stop(),d.width=d.height=0,p.width=p.height=0};return{async stop(){D=!1;let e=await v();E(),await T;let t=new Blob(w,{type:S}),n=Math.round(performance.now()-O);return A(),{blob:t,type:S,poster:e,hasAudio:!!a,durationMs:n}},cancel(){D=!1,E(),A()}}}var I=n();function ie({slide:e}){"use no memo";let t=b(e);return(0,I.jsx)(t.Slide,{slots:t.slots})}var ae=o(),oe=(0,A.createContext)(0),L=new Set([`hidden`,`clip`,`auto`,`scroll`]);function R(e){let t=(0,ae.c)(11),{children:n}=e,r=(0,A.useRef)(null),i=(0,A.useRef)(null),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a={k:1,x:0,y:0},t[0]=a):a=t[0];let[o,s]=(0,A.useState)(a),c=(0,A.useContext)(oe),l;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>{let e=r.current,t=i.current;if(!e||!t)return;let n=()=>{let n=e.clientHeight,r=e.clientWidth;if(!n||!r)return;let i=t.style.transform;t.style.transform=`none`,t.style.left=`0`,t.style.top=`0`;let a=[],o=[...t.querySelectorAll(`*`)],c=new Set;for(let e of t.querySelectorAll(`[data-reel-marquee]`)){for(let n=e;n&&n!==t;n=n.parentElement)c.add(n);for(let t of e.querySelectorAll(`*`))c.add(t)}let l=new Set,u=[];for(let e of o){if(c.has(e))continue;let t=getComputedStyle(e);if(t.webkitLineClamp!==`none`){l.add(e);continue}!L.has(t.overflowX)&&!L.has(t.overflowY)||u.push(e)}for(let e of u)a.push({el:e,o:e.style.overflow,m:e.style.maxHeight}),e.style.overflow=`visible`,e.style.maxHeight=`none`;let d=e=>{for(let n=e;n&&n!==t;n=n.parentElement)if(l.has(n))return!0;return!1},f=e=>{let n=0,r=0;for(let i=e;i&&i!==t&&t.contains(i);i=i.offsetParent)n+=i.offsetLeft,r+=i.offsetTop;return{x:n,y:r}},p=t.scrollWidth,m=t.scrollHeight;for(let e of o)if(!c.has(e)&&!d(e)){if(e.scrollWidth>p&&(p=e.scrollWidth),e.scrollHeight>m&&(m=e.scrollHeight),e.scrollWidth>e.clientWidth+1){let t=f(e);t.x+e.scrollWidth>p&&(p=t.x+e.scrollWidth)}if(e.scrollHeight>e.clientHeight+1){let t=f(e);t.y+e.scrollHeight>m&&(m=t.y+e.scrollHeight)}}for(let e of l){let t=f(e);t.x+e.clientWidth>p&&(p=t.x+e.clientWidth),t.y+e.clientHeight>m&&(m=t.y+e.clientHeight)}for(let e of a)e.el.style.overflow=e.o,e.el.style.maxHeight=e.m;if(t.style.transform=i,!m||!p)return;let h=Math.min(1,n*.95/m,r*.92/p),g=Number.isFinite(h)&&h>0?Math.floor(h*1e3)/1e3:1,_=t.firstElementChild,v=_?.offsetWidth||p,y=_?f(_).x:0,b=Math.max(0,(r-v*g)/2-y*g),x=Math.max(0,(n-m*g)/2);s(e=>Math.abs(e.k-g)>.002||Math.abs(e.x-b)>.5||Math.abs(e.y-x)>.5?{k:g,x:b,y:x}:e)};n();let a=!1,o=0;typeof document<`u`&&document.fonts?.ready&&document.fonts.ready.then(()=>{a||(o=requestAnimationFrame(n))});let c=requestAnimationFrame(n),l=0,u=new ResizeObserver(()=>{cancelAnimationFrame(l),l=requestAnimationFrame(n)});return u.observe(e),u.observe(t),()=>{a=!0,u.disconnect(),cancelAnimationFrame(l),cancelAnimationFrame(c),cancelAnimationFrame(o)}},t[1]=l):l=t[1];let u;t[2]!==n||t[3]!==c?(u=[n,c],t[2]=n,t[3]=c,t[4]=u):u=t[4],(0,A.useLayoutEffect)(l,u);let d;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(d={position:`absolute`,inset:0,overflow:`hidden`},t[5]=d):d=t[5];let f=`translate(${o.x}px, ${o.y}px) scale(${o.k})`,p;t[6]===f?p=t[7]:(p={position:`absolute`,left:0,top:0,transformOrigin:`top left`,transform:f},t[6]=f,t[7]=p);let m;return t[8]!==n||t[9]!==p?(m=(0,I.jsx)(`div`,{ref:r,style:d,children:(0,I.jsx)(`div`,{ref:i,style:p,children:n})}),t[8]=n,t[9]=p,t[10]=m):m=t[10],m}var z=[`up`,`left`,`zoom`,`wipe`,`fade`];function B(e,t){let n=e/t;return n<.8?`9:16`:n<1.3?`1:1`:`16:9`}function V(e){let t=e.clientWidth,n=e.clientHeight;if(!t||!n)return!1;let r=Math.min(t,n)/100,i=r*16/9,a=B(t,n),o=`${r}px`,s=e.style.getPropertyValue(`--rw`)!==o||e.dataset.aspect!==a;return e.style.setProperty(`--ru`,`${i}px`),e.style.setProperty(`--rw`,o),e.dataset.aspect=a,s}var H=e=>e.template!==`title`&&e.template!==`outro`,se=e=>e.template===`outro`,U=e=>e.template===`title`;function W(e,t){let n=0;for(let r=0;r<t&&r<e.length;r++)H(e[r])&&n++;return n}function ce(e,t){let n=e[t];return n&&H(n)?W(e,t):-1}function le({script:e,timings:t,loop:n=!1,onDone:r,frameRef:i,playKey:a=0,playing:o=!0,initialIndex:s=0,onCycle:c,interactive:l=!1,paused:u,onPausedChange:d}){let f=e.slides,p=f.map((e,n)=>Math.max(800,Math.round(t?.[n]??e.durationMs))),m=Math.max(0,Math.min(s,f.length-1)),[h,g]=(0,A.useState)(m),[_,y]=(0,A.useState)(0),b=u!==void 0,[ee,S]=(0,A.useState)(!1),C=b?u:ee,T=(0,A.useCallback)(()=>{b?d?.(!C):S(e=>!e)},[b,C,d]),[E,D]=(0,A.useState)(0),O=(0,A.useRef)(!1),k=(0,A.useRef)(null),te=(0,A.useRef)(null),j=(0,A.useRef)(i);j.current=i;let ne=(0,A.useCallback)(e=>{te.current=e,j.current?.(e)},[]);(0,A.useEffect)(()=>{l&&te.current?.focus({preventScroll:!0})},[l]);let M=(0,A.useRef)(!1);M.current=C;let N=(0,A.useRef)(null),P=(0,A.useRef)(0),re=(0,A.useCallback)(e=>{k.current=e,e&&V(e)&&D(e=>e+1)},[]);if((0,A.useLayoutEffect)(()=>{let e=k.current;if(!e)return;let t=new ResizeObserver(()=>{V(e)&&D(e=>e+1)});return t.observe(e),()=>t.disconnect()},[]),(0,A.useEffect)(()=>{o&&(O.current=!1,g(m),y(e=>e+1))},[a,o]),(0,A.useEffect)(()=>{if(!o||C||h>=f.length)return;let e=N.current??p[h];N.current=null,P.current=Date.now();let t=window.setTimeout(()=>{h+1<f.length?g(h+1):n?(g(0),y(e=>e+1),c?.()):O.current||(O.current=!0,r?.())},e);return()=>{window.clearTimeout(t),M.current&&(N.current=Math.max(0,e-(Date.now()-P.current)))}},[h,f.length,n,r,a,o,C]),(0,A.useEffect)(()=>{N.current=null},[h]),!f.length)return null;let F=f[Math.min(h,f.length-1)],ae=W(f,h),L=ce(f,h),B=f.filter(H).length,le=e=>{let t=-1;for(let n=0;n<f.length;n++)if(H(f[n])&&t++,t===e){g(n),y(e=>e+1);return}},ue=e=>{if(!B)return;let t=H(F)?L+e:e>0?ae:ae-1;le(Math.max(0,Math.min(B-1,t)))},G=f.reduce((e,t,n)=>(U(t)&&e.push(n),e),[]),K=e=>{if(G.length<=1)return;let t=G.filter(e=>e<=h).length-1;g(G[Math.max(0,Math.min(G.length-1,t+e))]),y(e=>e+1)},de=e=>{switch(e.key){case`ArrowRight`:e.preventDefault(),ue(1);break;case`ArrowLeft`:e.preventDefault(),ue(-1);break;case`ArrowDown`:e.preventDefault(),K(1);break;case`ArrowUp`:e.preventDefault(),K(-1);break;case` `:case`Spacebar`:e.preventDefault(),T();break;default:break}},q=v(F.template)===`dark`,J=x(F.template),Y=h===0?`fade`:z[(h+e.seed)%z.length];return(0,I.jsx)(`div`,{className:`reel`,"data-palette":e.palette,"data-vibe":e.vibe,ref:ne,role:l?`application`:void 0,tabIndex:l?0:void 0,onKeyDown:l?de:void 0,"aria-label":l?`Reel preview. Left and right arrows step between beats, up and down jump sections, space bar pauses.`:void 0,children:(0,I.jsxs)(`div`,{className:`reel-board`,ref:re,"data-surface":q?`dark`:`light`,"data-bleed":J?`true`:`false`,children:[q&&(0,I.jsx)(`div`,{className:`reel-darkwash`,"aria-hidden":`true`}),(0,I.jsx)(`div`,{className:`reel-progress`,"data-interactive":l,"aria-hidden":!l,children:Array.from({length:B},(e,t)=>{let n=t===L,r=t<ae||se(F),i=(0,I.jsx)(`span`,{className:`reel-seg`,children:(0,I.jsx)(`i`,{style:n?{width:0,animation:`reel-seg-fill ${p[h]}ms linear forwards`,animationPlayState:C?`paused`:`running`}:{width:r?`100%`:`0%`}})},`seg`);return l?(0,I.jsx)(`button`,{type:`button`,className:`reel-seg-hit`,onClick:()=>le(t),"aria-label":`Jump to beat ${t+1}`,children:i},t):(0,I.jsx)(`span`,{className:`reel-seg-hit`,children:i},t)})}),(0,I.jsxs)(`div`,{className:`reel-top`,children:[(0,I.jsxs)(`span`,{className:`reel-wordmark`,children:[(0,I.jsx)(`span`,{className:`reel-dot`,"aria-hidden":`true`}),`Mavéa`]}),(0,I.jsx)(`span`,{className:`reel-palettename`,children:e.palette})]}),!J&&(0,I.jsx)(`div`,{className:`reel-jelly-pos`,"aria-hidden":`true`,children:(0,I.jsx)(w,{})}),(0,I.jsx)(`div`,{className:`reel-stage`,children:(0,I.jsx)(`div`,{className:`reel-trans`,"data-trans":Y,children:(0,I.jsx)(oe.Provider,{value:E,children:(0,I.jsx)(R,{children:(0,I.jsx)(ie,{slide:F})})})},`${_}-${h}`)}),(0,I.jsx)(`div`,{className:`reel-pause-badge`,"data-show":l&&C,"aria-hidden":`true`,children:(0,I.jsxs)(`div`,{className:`reel-pause-glyph`,children:[(0,I.jsx)(`span`,{}),(0,I.jsx)(`span`,{})]})})]})})}function ue(e){let t=[];for(let n of e)t.length===0||n.mode===`replace`?t.push([n]):t[t.length-1].push(n);return t}var G=/^(how|what|why|should|can|could|would|will|plan|show|make|build|tell|give|explain|who|when|where|which|is|are|do|does|did|help|me)\b[\s,]*/i,K=/\s*[,;:]\s+|\s+—\s+|\s+–\s+|\s+\band\b\s+|\s+\bbut\b\s+|\s+\bso\b\s+/i;function de(e){let t=e[0];if(!t)return``;let n=t.spec?.title?.trim();if(n)return m(n,h.heading);let r=(t.question||``).trim();if(!r)return``;let i=r.replace(G,``).replace(/[?!.]+$/,``).trim(),a=(i.split(K)[0]||``).trim()||i;return a?m(a.charAt(0).toUpperCase()+a.slice(1),h.heading):``}r();var q={palette:`aurora`,vibe:`clean`,maxSlides:6};function J(e){return m(e[0]?.question||e[0]?.spec?.title||`Mavéa`,h.title)}function Y(e){return e[0]?.spec?.topic||e[0]?.spec?.title||J(e)}function fe(e){return(e||``).replace(/\s+/g,` `).split(/(?<=[.!?])\s+/).map(e=>e.trim()).filter(e=>e.length>1)}function pe(e){return(e.narration||e.spec?.found||e.spec?.sub||``).trim()}function X(e){return(e.spoken||e.narration||e.spec?.found||e.spec?.sub||``).trim()}var me=0;function he(e,t,n,r,i){let a=m(E(r.voiceover),h.voiceover);return{id:`s${me++}`,content:e,template:t,slots:y(e,n,i),voiceover:a,durationMs:Math.max(r.ms,a?Math.round(a.length/13*1e3)+500:0),sourceBlockId:r.sourceBlockId}}function ge(e,t,n,r,i,a){return he(e,S(e,i,a,_(e,t)),t,n,r)}function _e(e,t){return Math.max(1,Math.min(t,Math.floor((e-1)/2)))}function Z(e,t,n=0){let r=Math.max(t,e-1-t);return Math.max(1,Math.floor(r/t)+ +(n<r%t))}function ve(e,t,n,r){let i=J(e.frames);return he(`title`,`title`,{question:i,kicker:e.heading||de(e.frames)||void 0,part:n>1?{index:t+1,count:n}:void 0},{voiceover:i,ms:g.intro},r)}function ye(e,t,n){let r=e.flatMap(e=>e.frames),i=J(r),a=Y(r),o=[];e.forEach((t,n)=>{let r={topic:Y(t.frames),question:J(t.frames)};o.push(ve(t,n,e.length,r)),o.push(...t.content)});let s={topic:a,question:i};return o.push(he(`outro`,`outro`,{wordmark:`Mavéa`,tagline:`Talk to AI. See what it means.`},{voiceover:`Made with Mavéa.`,ms:g.outro},s)),{topic:a,question:i,palette:t.palette,vibe:t.vibe,seed:n,slides:o,durationMs:o.reduce((e,t)=>e+t.durationMs,0)}}function be(e,t){return{...e,seed:t,slides:e.slides.map((e,n)=>e.content===`title`||e.content===`outro`?e:{...e,template:S(e.content,t,n,_(e.content,e.slots),e.template)})}}function xe(e,t,n){let r=e.flatMap(e=>e.spec?.blocks??[]).map(e=>({shown:T((e.note||``).trim()),spoken:E((e.noteSpoken||e.note||``).trim())})).filter(e=>e.shown.length>8),i=r.map(e=>e.shown),a=r.map(e=>e.spoken||e.shown),o=[];if(e.forEach((e,t)=>{let n=pe(e),r=fe(X(e)),s=fe(T(n));s.length&&o.push({speaksFor:t,covers:!0,content:`quote`,raw:{quote:s[0]},voiceover:r.slice(0,2).join(` `)}),t===0&&i.length>=2&&o.push({speaksFor:t,covers:!1,content:`list`,raw:{items:i.slice(0,4)},voiceover:a.slice(0,3).join(`. `)})}),!o.length){let e=t.question;o.push({speaksFor:0,covers:!0,content:`quote`,raw:{quote:e},voiceover:e})}let s=new Set;for(let e of[!0,!1])for(let t of o){if(s.size>=n)break;t.covers===e&&!s.has(t)&&s.add(t)}return o.filter(e=>s.has(e)).map((e,n)=>ge(e.content,e.raw,{voiceover:e.voiceover,ms:g.default},t,0,n+1))}function Q(e,t){let n=ue(e);return n.slice(-_e(t,n.length))}function Se(e,t={}){let n={...q,...t},r=Q(e,n.maxSlides);return ye(r.map((e,t)=>({frames:e,content:xe(e,{topic:Y(e),question:J(e)},Z(n.maxSlides,r.length,t))})),n,0)}var $=p,Ce=`You are Mavéa's reel director. You recut a finished conversation into a short, vertical (9:16) social video — a sequence of card "beats" for TikTok/Reels/Shorts. Each beat is ONE card with very little room.
|
|
3
|
+
|
|
4
|
+
Return ONLY JSON: {"heading": <string>, "slides":[{ "type": <content-type>, "slots": {…}, "voiceover": <string> }]}. Give 3 to 5 content beats (the intro question and the outro are added for you — do NOT include them).
|
|
5
|
+
|
|
6
|
+
"heading" is a short, punchy title for this reel — a headline that sums up what it's about, at most 32 characters. It sits ABOVE the literal question (which is quoted verbatim elsewhere), so it must NOT just restate the question — it's the sharper, sub-editor's version of it.
|
|
7
|
+
|
|
8
|
+
Choose a "type" per beat — the kind of thing it says — and fill its slots:
|
|
9
|
+
- stat {value,label,unit?,prior?} — one headline number.
|
|
10
|
+
- metrics {items:[{label,pct}],next?} — a few labelled percentages.
|
|
11
|
+
- ranked {title?,items:[{label,score,pct}]} — a ranked comparison.
|
|
12
|
+
- quote {quote,highlight?,attribution?} — one strong sentence.
|
|
13
|
+
- list {items:[string],title?} — up to 4 short points.
|
|
14
|
+
- concept {title,subtitle?,tag?} — a concept/term and a one-line gloss.
|
|
15
|
+
- conceptmap {center,nodes:[{label}]} — a concept and what connects to it.
|
|
16
|
+
- qa {question,answer} — a question and its answer.
|
|
17
|
+
- chat {messages:[{role:"user"|"mavea",text}]} — a short exchange.
|
|
18
|
+
- diagram {label,equation?,vectors?:[{label}],note?} — a formula / diagram idea.
|
|
19
|
+
- steps {stops:[{label,state:"done"|"active"|"todo"}]} — a path or milestones.
|
|
20
|
+
- recap {topic,metrics:[{label,value}]} — a tidy summary of figures.
|
|
21
|
+
|
|
22
|
+
Rules:
|
|
23
|
+
- REAL DATA ONLY. Use only facts, numbers and wording present in the conversation. Never invent a number, label or statistic. If a type needs data the conversation doesn't have, choose a different type.
|
|
24
|
+
- IT MUST FIT THE CARD — write to these MAX CHARACTER limits so every value fits its slide with nothing cut. A beat may be re-styled into any look for its type, so write to the tightest. Counts are characters incl. spaces:
|
|
25
|
+
${[`stat — value ≤${$.stat.value}, label ≤${$.stat.label}, unit ≤${$.stat.unit}, prior ≤${$.stat.prior}.`,`metrics — ≤${$.metrics.items} items, each label ≤${$.metrics.label}; next ≤${$.metrics.next}.`,`ranked — ≤${$.ranked.items} items, label ≤${$.ranked.label}, score ≤${$.ranked.score}; title ≤${$.ranked.title}.`,`quote — quote ≤${$.quote.quote}, highlight ≤${$.quote.highlight}, attribution ≤${$.quote.attribution}.`,`list — ≤${$.list.items} items, each ≤${$.list.item}.`,`concept — title ≤${$.concept.title} (1–2 words), subtitle ≤${$.concept.subtitle}, tag ≤${$.concept.tag}.`,`conceptmap — center ≤${$.conceptmap.center}, ≤${$.conceptmap.nodes} nodes, each label ≤${$.conceptmap.node}.`,`qa — question ≤${$.qa.question}, answer ≤${$.qa.answer}.`,`chat — ≤${$.chat.messages} messages, each ≤${$.chat.message}.`,`diagram — label ≤${$.diagram.label}, equation ≤${$.diagram.equation}, note ≤${$.diagram.note}.`,`steps — ≤${$.steps.stops} stops, each label ≤${$.steps.label}.`,`recap — topic ≤${$.recap.topic}, ≤${$.recap.metrics} metrics, label ≤${$.recap.label}, value ≤${$.recap.value}.`].map(e=>` · ${e}`).join(`
|
|
26
|
+
`)}
|
|
27
|
+
- Match each beat to the type that fits it best; vary the types across the reel.
|
|
28
|
+
- "voiceover" is what's spoken over the slide — one natural, conversational sentence. Condense hard — trim filler, keep the punchy core.
|
|
29
|
+
- In every voiceover, preserve normal spelling on the left and provide native/source-language pronunciation for every name, place, brand, or non-English term a voice might misread as [[shown|said]], for example "[[Omakase|oh-mah-kah-seh]]". The said side must be lowercase voice-safe phonetic syllables, never IPA or an Anglicized guess. This is required and does not change the visible slot text.`,we={type:`object`,properties:{heading:{type:`string`},slides:{type:`array`,items:{type:`object`,properties:{type:{type:`string`,enum:C},slots:{type:`object`},voiceover:{type:`string`}},required:[`type`,`slots`,`voiceover`]}}},required:[`slides`]};function Te(e){let t=(e.note||``).trim(),n=``;try{let t=JSON.stringify(e.props);t&&t!==`{}`&&(n=` data=${m(t,220)}`)}catch{}return`- [${e.type}]${t?` ${m(t,120)}`:``}${n}`}function Ee(e){return e.slice(0,4).map(e=>{let t=(e.spec?.blocks??[]).slice(0,8).map(Te).join(`
|
|
30
|
+
`);return`Q: ${e.question}\nMavea: ${m(pe(e),400)}\nCards:\n${t}`}).join(`
|
|
31
|
+
|
|
32
|
+
`)}function De(e){let t=e;if(typeof e==`string`){let n=e.indexOf(`{`),r=e.lastIndexOf(`}`);if(n<0||r<0)return{slides:[],heading:``};try{t=JSON.parse(e.slice(n,r+1))}catch{return{slides:[],heading:``}}}let n=t;return{slides:Array.isArray(n?.slides)?n.slides:[],heading:typeof n?.heading==`string`?n.heading:``}}async function Oe(e,t,n,r){let i=new AbortController,a=setTimeout(()=>i.abort(),18e3);try{let{getAdapter:a}=await s(async()=>{let{getAdapter:e}=await import(`./providers-wzm7E8Pa.js`).then(e=>e.n);return{getAdapter:e}},__vite__mapDeps([3,1,4,5])),{slides:o,heading:c}=De((await a(t.provider).generate({system:Ce,history:[],user:`Recut this conversation into ${r} or fewer content beats.\n\n${Ee(e)}`,maxTokens:Math.min(2200,350+r*260),temperature:.6,format:we,signal:i.signal},t)).raw),l=new Set(C),u=[];for(let e of o){let t=e,i=t.type;if(!i||!l.has(i))continue;let a=t.slots&&typeof t.slots==`object`?t.slots:{};if(u.push(ge(i,a,{voiceover:t.voiceover||t.caption||``,ms:g.default},n,0,u.length+1)),u.length>=r)break}return u.length?{frames:e,content:u,heading:c?m(c,h.heading):void 0}:null}catch{return null}finally{clearTimeout(a)}}var ke=3;async function Ae(e,t,n={}){let r={...q,...n},i=Q(e,r.maxSlides),a=e=>Z(r.maxSlides,i.length,e);try{let o=[];for(let[r,s]of i.entries()){let i={topic:Y(s),question:J(s)};if(r<ke){let c=await Oe(s,t,i,a(r));if(!c)return Se(e,n);o.push(c)}else o.push({frames:s,content:xe(s,i,a(r))})}return ye(o,r,0)}catch{return Se(e,n)}}var je=24e3,Me=.15,Ne=.18,Pe=240,Fe=.008,Ie=.89,Le=6;async function Re(e,t,n){let r=k(e).trim().slice(0,Pe);if(!r)return new Float32Array;for(let e=0;e<2;e++)try{let e=await fetch(`/tts/v1/audio/speech`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({model:`kokoro`,input:r,voice:t,response_format:`pcm`,speed:1}),signal:n});if(e.ok)return O(new Uint8Array(await e.arrayBuffer()),null).samples}catch{if(n?.aborted)return new Float32Array}return new Float32Array}async function ze(e,t){let n=e.slides,r=n.map(e=>Math.max(800,Math.round(e.durationMs))),i=a();if(!i||typeof OfflineAudioContext>`u`)return{buffer:null,timings:r,missing:0};let o=D(`mavea`),s=await Promise.all(n.map(e=>Re(e.voiceover,o,t))),c=n.filter(e=>e.voiceover.trim()).length,l=s.filter(e=>e.length>0).length,u=Math.max(0,c-l);if(l===0)return{buffer:null,timings:r,missing:u};let d=n.map((e,t)=>{let n=s[t].length/je*1e3;return Math.round(n>0?Math.max(r[t],n+Ne*1e3):r[t])}),f=0;for(let e of s)for(let t=0;t<e.length;t++)f=Math.max(f,Math.abs(e[t]));let p=f>0?Math.min(Le,Ie/f):1,m=i.sampleRate,h=.65+d.reduce((e,t)=>e+t/1e3,0),g=new OfflineAudioContext(1,Math.ceil(h*m),m),_=g.createGain();_.gain.value=p,_.connect(g.destination);let v=Me;return d.forEach((e,t)=>{let n=s[t];if(n.length){let e=g.createBuffer(1,n.length,je);e.getChannelData(0).set(n);let t=g.createBufferSource();t.buffer=e;let r=g.createGain(),i=n.length/je,a=Math.min(Fe,i/2);r.gain.setValueAtTime(0,v),r.gain.linearRampToValueAtTime(1,v+a),r.gain.setValueAtTime(1,v+i-a),r.gain.linearRampToValueAtTime(0,v+i),t.connect(r).connect(_),t.start(v)}v+=e/1e3}),{buffer:await g.startRendering(),timings:d,missing:u}}function Be(e){let t=a();if(!t||typeof t.createMediaStreamDestination!=`function`)return null;let n=t.createMediaStreamDestination(),r=t.createBufferSource();r.buffer=e,r.connect(n);let i=!1;return{stream:n.stream,start(){i||(i=!0,t.state!==`running`&&t.resume().catch(()=>{}),r.start())},stop(){try{r.stop()}catch{}try{r.disconnect()}catch{}}}}function Ve(e,t,n){return t+Math.max(0,n-e)}function He(e,t){return!Number.isFinite(t)||t<=0||e>=t?null:Math.max(0,e)}function Ue(e){let t=a();if(!t)return null;let n=t.createGain();n.connect(t.destination);let r=null,i=0,o=0,s=!1,c=()=>{try{r?.stop(),r?.disconnect()}catch{}r=null},l=a=>{c(),r=t.createBufferSource(),r.buffer=e,r.connect(n),r.start(0,a),i=a,o=t.currentTime,s=!1};return{play(){t.state!==`running`&&t.resume().catch(()=>{}),l(0)},setMuted(e){n.gain.value=+!e},pause(){s||!r||(i=Math.min(e.duration,Ve(o,i,t.currentTime)),c(),s=!0)},resume(){if(!s)return;s=!1;let n=He(i,e.duration);n!==null&&(t.state!==`running`&&t.resume().catch(()=>{}),l(n))},stop(){c();try{n.disconnect()}catch{}}}}var We=[{id:`aurora`,label:`Aurora`,dot:`linear-gradient(135deg,#6d6dff,#a78bfa)`,blurb:`Indigo`},{id:`ember`,label:`Ember`,dot:`linear-gradient(135deg,#f4923c,#e0603a)`,blurb:`Warm amber`},{id:`ocean`,label:`Ocean`,dot:`linear-gradient(135deg,#2ad0e6,#0f9bad)`,blurb:`Deep teal`},{id:`chalk`,label:`Chalk`,dot:`linear-gradient(135deg,#c3c8d6,#7d8398)`,blurb:`Editorial`}],Ge=e({ShareModal:()=>Qe}),Ke=[{id:`9:16`,label:`Story`,w:12,h:20},{id:`1:1`,label:`Square`,w:16,h:16},{id:`16:9`,label:`Landscape`,w:20,h:12}],qe=[{id:`balanced`,label:`Balanced`},{id:`high`,label:`High`},{id:`ultra`,label:`Ultra`}],Je={idle:``,voicing:`Synthesizing narration…`,recording:`Recording the reel…`,saving:`Finishing the file…`,error:`Something went wrong`},Ye=new Map;function Xe(e,t,n){let r=Ye.get(e);if(r)return r;let i=Ae(t,n);if(Ye.set(e,i),Ye.size>8){let e=Ye.keys().next().value;e&&Ye.delete(e)}return i}function Ze(e){return e.slides.map(e=>e.voiceover).join(`\0`)}function Qe({frames:e,script:t,cfg:n,onClose:r,onShared:a}){let[o,s]=(0,A.useState)(`9:16`),[p,m]=(0,A.useState)(`aurora`),[h,g]=(0,A.useState)(`high`),[_,v]=(0,A.useState)(()=>t??(e?.length?Se(e):null)),[y,b]=(0,A.useState)(!1),[x,S]=(0,A.useState)(!1),[C,w]=(0,A.useState)(!1),[T,E]=(0,A.useState)(`idle`),[D,O]=(0,A.useState)(!1),[k,j]=(0,A.useState)(!1),[M,N]=(0,A.useState)(!1),[P,ie]=(0,A.useState)(!1),[ae,oe]=(0,A.useState)(0),L=T===`voicing`||T===`recording`||T===`saving`,R=(0,A.useRef)(null),z=(0,A.useRef)(null),B=(0,A.useRef)(null),V=(0,A.useRef)(void 0),H=(0,A.useRef)(`share`),se=(0,A.useRef)(`high`);se.current=h;let U=(0,A.useRef)(null),W=(0,A.useRef)(null),[ce,ue]=(0,A.useState)(null),G=(0,A.useRef)(!1),K=(0,A.useCallback)(()=>{G.current=!0},[]),de=(0,A.useMemo)(()=>i(()=>ee().then(()=>void 0)),[]),q=(0,A.useRef)(null),[J,Y]=(0,A.useState)(!1);(0,A.useEffect)(()=>{if(typeof window>`u`||!window.matchMedia)return;let e=window.matchMedia(`(max-width: 760px)`),t=()=>Y(e.matches);return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),l(q,{onEscape:(0,A.useCallback)(()=>{L||r()},[L,r]),initialFocus:R});let fe=(e??[]).map(e=>`${e.at}:${e.question}`).join(`|`),pe=n?`${n.provider}:${n.model}:${n.baseUrl??``}`:``;(0,A.useEffect)(()=>{let r=!0;if(G.current=!1,b(!1),U.current?.stop(),U.current=null,W.current=null,ue(null),j(!1),ie(!1),oe(0),t)return v(t),()=>{r=!1};let i=e??[];return v(Se(i)),n&&Xe(`${fe}\u0001${pe}`,i,n).then(e=>{!r||G.current||(v(e),b(!0))}),()=>{r=!1}},[fe,pe,t]);let X=(0,A.useMemo)(()=>_?{..._,palette:p}:null,[_,p]),me=_?Math.max(6,Math.round(_.durationMs/1e3)):0,he=ce?Math.max(6,Math.round(ce.reduce((e,t)=>e+t,0)/1e3)):null,ge=he??me,_e=X?`${o}-${x?`rec`:`preview-${X.seed}-${ce?`synced`:`rough`}`}`:null,Z=(0,A.useRef)(!1);Z.current=k;let ve=(0,A.useCallback)(async()=>{if(K(),k){U.current?.setMuted(!0),j(!1);return}if(!X)return;let e=Ze(X),t=W.current;if(!t||t.sig!==e){N(!0);try{t={sig:e,...await ze(X)},W.current=t}finally{N(!1)}}t.buffer&&(U.current||=Ue(t.buffer),U.current?.setMuted(!1),U.current?.play(),P&&U.current?.pause(),ue(t.timings),j(!0))},[k,X,P,K]);(0,A.useEffect)(()=>()=>{U.current?.stop(),U.current=null},[]);let ye=(0,A.useCallback)(e=>{K(),ie(e),Z.current&&(e?U.current?.pause():U.current?.resume())},[K]),xe=(0,A.useCallback)(()=>{K(),ie(!1),oe(e=>e+1),Z.current&&U.current?.play()},[K]),Q=(0,A.useCallback)((e=`idle`)=>{z.current?.cancel(),z.current=null,B.current?.stop(),B.current=null,V.current=void 0,S(!1),w(!1),E(e)},[]);(0,A.useEffect)(()=>()=>Q(),[Q]),(0,A.useEffect)(()=>{if(!x||!D||z.current||!R.current)return;let e=!1,t=(V.current??[]).reduce((e,t)=>e+t,0);return F({el:R.current,audioStream:B.current?.stream??null,aspect:o,quality:se.current,maxDurationMs:t?t+900:void 0}).then(t=>{if(e){t.cancel();return}z.current=t,B.current?.start(),w(!0)}).catch(()=>{f(`Couldn't render the clip in this browser`,`warn`),Q(`error`)}),()=>{e=!0}},[x,D,o,Q]);let $=(0,A.useCallback)(e=>{if(L||!X)return;if(K(),!re()){f(`This browser can't render a video clip`,`warn`);return}H.current=e,E(`voicing`);let t=Ze(X),n=W.current;(n&&n.sig===t?Promise.resolve(n):ze(X)).then(e=>{W.current={sig:t,...e};let{buffer:n,timings:r,missing:i}=e;V.current=r,B.current=n?Be(n):null,i>0&&f(`${i} narration line${i===1?``:`s`} couldn’t be voiced — exporting the rest.`,`warn`),w(!1),O(!1),E(`recording`),S(!0)}).catch(()=>{f(`Could not prepare the narration`,`warn`),Q(`error`)})},[L,X,Q,K]),Ce=(0,A.useCallback)(async()=>{let e=z.current;if(!e){Q();return}z.current=null,E(`saving`);try{let t=await e.stop();H.current===`download`?(d(t.blob),f(`Saved to your downloads`,`good`)):await u(t,{title:`My Mavéa reel`,text:`Made with Mavéa`})===`downloaded`&&f(`Saved to your downloads`,`good`),a?.(),Q()}catch{f(`Could not finish the clip`,`warn`),Q(`error`)}},[Q,a]);if(!t&&!e?.length)return null;let we=()=>{K(),ie(!1),v(e=>e&&be(e,e.seed+1))};return(0,I.jsx)(`div`,{className:`shm-scrim`,role:`presentation`,onClick:L?void 0:e=>e.target===e.currentTarget&&r(),children:(0,I.jsxs)(`div`,{ref:q,className:`shm-modal`,role:`dialog`,"aria-modal":`true`,"aria-label":`Share your Mavéa session as a clip`,style:J?{flexDirection:`column`}:void 0,children:[(0,I.jsxs)(`div`,{className:`shm-panel`,children:[(0,I.jsx)(`div`,{className:`shm-eyebrow`,children:`▷ MAVÉA REPLAY`}),(0,I.jsxs)(`div`,{className:`shm-headline`,children:[`Your session, as`,he?``:` about`,` a`,` `,(0,I.jsx)(`span`,{style:{color:`var(--presence-soft)`},children:ge?`${ge}-second`:``}),` `,`clip.`]}),(0,I.jsx)(`div`,{className:`shm-sub`,children:`Auto-cut from the conversation and rendered in this browser. Model direction and narration may use your selected providers; sharing sends the finished file to the destination you choose.`}),(0,I.jsx)(te,{kind:`publishing`,from:`live`}),X&&!x&&(0,I.jsxs)(`div`,{className:`shm-kbd-hint`,"aria-hidden":`true`,children:[(0,I.jsx)(`kbd`,{children:`←`}),(0,I.jsx)(`kbd`,{children:`→`}),` beats · `,(0,I.jsx)(`kbd`,{children:`↑`}),(0,I.jsx)(`kbd`,{children:`↓`}),` sections · `,(0,I.jsx)(`kbd`,{children:`space`}),` pause`]}),(0,I.jsxs)(`div`,{className:`shm-group`,children:[(0,I.jsx)(`div`,{className:`shm-label`,children:`Palette`}),(0,I.jsx)(`div`,{className:`shm-chips`,children:We.map(e=>(0,I.jsxs)(`button`,{type:`button`,className:`shm-chip`,"data-active":p===e.id,disabled:L,onClick:()=>{K(),m(e.id)},title:e.blurb,children:[(0,I.jsx)(`span`,{className:`shm-dot`,style:{background:e.dot},"aria-hidden":`true`}),e.label]},e.id))})]}),(0,I.jsxs)(`div`,{className:`shm-group`,children:[(0,I.jsx)(`div`,{className:`shm-label`,children:`Format`}),(0,I.jsx)(`div`,{className:`shm-chips`,children:Ke.map(e=>(0,I.jsxs)(`button`,{type:`button`,className:`shm-chip`,"data-active":o===e.id,disabled:L,onClick:()=>{K(),s(e.id)},children:[(0,I.jsx)(`span`,{className:`shm-shape`,style:{width:e.w,height:e.h},"aria-hidden":`true`}),e.label]},e.id))})]}),(0,I.jsxs)(`div`,{className:`shm-group`,children:[(0,I.jsx)(`div`,{className:`shm-label`,children:`Quality`}),(0,I.jsx)(`div`,{className:`shm-chips`,children:qe.map(e=>(0,I.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":h===e.id,disabled:L,onClick:()=>{K(),g(e.id)},title:ne(e.id),children:e.label},e.id))})]}),(0,I.jsxs)(`div`,{className:`shm-actions`,children:[(0,I.jsxs)(`button`,{type:`button`,className:`shm-btn shm-btn-primary`,disabled:L||!X,onClick:()=>$(`share`),children:[L?(0,I.jsx)(`span`,{className:`shm-spin`,"aria-hidden":`true`}):`⤴`,L?Je[T]:`Share`]}),(0,I.jsx)(`button`,{type:`button`,className:`shm-btn`,disabled:L||!X,onClick:()=>$(`download`),children:`↓ Download`}),(0,I.jsx)(`button`,{type:`button`,className:`shm-remix`,...de,disabled:L||!_||!!t,onClick:we,title:`Re-roll the look (same content, free)`,children:`↻ Remix`})]}),(0,I.jsxs)(`div`,{className:`shm-progress`,"data-on":L,"aria-hidden":!L,children:[(0,I.jsx)(`div`,{className:`shm-progress-bar`,children:(0,I.jsx)(`i`,{})}),(0,I.jsx)(`span`,{className:`shm-progress-text`,children:Je[T]||` `})]})]}),(0,I.jsx)(`div`,{className:`shm-stage`,children:(0,I.jsxs)(`div`,{className:`shm-frame`,"data-aspect":o,"data-directed":y,children:[X?(0,I.jsx)(le,{script:X,timings:x?V.current:ce??void 0,loop:!x,playing:x?C:!0,playKey:x?0:ae,paused:x?void 0:P,onPausedChange:x?void 0:ye,initialIndex:!x&&X.seed>0?Math.max(0,X.slides.findIndex(e=>e.content!==`title`&&e.content!==`outro`)):0,interactive:!x,onCycle:()=>{Z.current&&U.current?.play()},frameRef:e=>{R.current=e,e&&O(!0)},onDone:x?Ce:void 0},_e):(0,I.jsxs)(`div`,{className:`shm-composing`,children:[(0,I.jsx)(`span`,{className:`shm-composing-dot`}),`Composing your reel…`]}),X&&!x&&(0,I.jsxs)(`div`,{className:`shm-controls`,children:[(0,I.jsx)(`button`,{type:`button`,className:`shm-sound`,"data-on":k,onClick:ve,disabled:M,"aria-pressed":k,title:k?`Mute preview`:`Play sound`,children:M?(0,I.jsx)(`span`,{className:`shm-spin`,"aria-hidden":`true`}):k?(0,I.jsx)(c.speaker,{style:{width:18,height:18}}):(0,I.jsx)(c.speakerOff,{style:{width:18,height:18}})}),(0,I.jsx)(`button`,{type:`button`,className:`shm-sound`,"data-on":P,onClick:()=>ye(!P),"aria-pressed":P,title:P?`Play`:`Pause`,children:P?(0,I.jsx)(c.play,{style:{width:17,height:17}}):(0,I.jsx)(c.pause,{style:{width:17,height:17}})}),(0,I.jsx)(`button`,{type:`button`,className:`shm-sound`,onClick:xe,title:`Replay from the start`,children:(0,I.jsx)(c.refresh,{style:{width:17,height:17}})})]})]})}),(0,I.jsx)(`button`,{type:`button`,className:`shm-close`,onClick:L?void 0:r,"aria-label":`Close`,children:`✕`})]})})}export{Ge as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{ht as n}from"./index-y8GL67bB.js";import{t as r}from"./colors-D49Req-e.js";var i=e(),a=n(),o=t();function s(e){return e===`P0`?`var(--danger)`:`var(--warning)`}function c(){let e=(0,a.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,o.jsx)(`svg`,{className:`ripple-casc-chevron`,viewBox:`0 0 16 16`,"aria-hidden":`true`,focusable:`false`,children:(0,o.jsx)(`path`,{d:`M5.5 3.5 L10 8 L5.5 12.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`,strokeLinejoin:`round`})}),e[0]=t):t=e[0],t}function l(){let e=(0,a.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,o.jsxs)(`svg`,{className:`ripple-casc-check`,viewBox:`0 0 18 18`,"aria-hidden":`true`,focusable:`false`,children:[(0,o.jsx)(`circle`,{cx:`9`,cy:`9`,r:`8`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`}),(0,o.jsx)(`path`,{d:`M5.5 9.2 L8 11.6 L12.5 6.4`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`,strokeLinejoin:`round`})]}),e[0]=t):t=e[0],t}function u({cascade:e}){return(0,o.jsxs)(`div`,{className:`ripple-casc-row`,children:[(0,o.jsxs)(`article`,{className:`ripple-casc-card ripple-casc-trigger`,style:{"--casc-tint":`var(--presence)`},children:[(0,o.jsxs)(`div`,{className:`ripple-casc-eyebrow`,children:[(0,o.jsx)(`span`,{className:`ripple-eyebrow`,children:`Your change`}),e.triggerRef?.ref&&(0,o.jsx)(`code`,{className:`ripple-casc-ref`,children:e.triggerRef.ref})]}),(0,o.jsx)(`p`,{className:`ripple-casc-title`,children:e.trigger})]}),e.hops.map((e,t)=>(0,o.jsxs)(`div`,{className:`ripple-casc-step`,children:[(0,o.jsx)(c,{}),(0,o.jsxs)(`article`,{className:`ripple-casc-card ripple-casc-hop`,style:{"--casc-tint":r(e.severity)},children:[(0,o.jsx)(`div`,{className:`ripple-eyebrow ripple-casc-hop-eyebrow`,children:e.context}),(0,o.jsx)(`p`,{className:`ripple-casc-title`,children:e.label})]})]},`${e.context}-${t}`)),(0,o.jsxs)(`div`,{className:`ripple-casc-step`,children:[(0,o.jsx)(c,{}),(0,o.jsxs)(`article`,{className:`ripple-casc-card ripple-casc-incident`,children:[(0,o.jsxs)(`div`,{className:`ripple-casc-incident-top`,children:[(0,o.jsx)(`span`,{className:`ripple-casc-sev`,style:{"--casc-sev":s(e.incidentSeverity)},children:e.incidentSeverity}),(0,o.jsx)(`span`,{className:`ripple-eyebrow ripple-casc-incident-label`,children:`Incident`})]}),(0,o.jsx)(`p`,{className:`ripple-casc-incident-text`,children:e.incident})]})]})]})}function d({model:e}){let{cascades:t}=e,[n,r]=(0,i.useState)(()=>new Set),a=e=>r(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n});return t.length===0?(0,o.jsx)(`div`,{className:`ripple-casc-empty`,role:`status`,children:`No cascade found — nothing in this change reaches far enough to page someone.`}):(0,o.jsxs)(`section`,{className:`ripple-casc`,"aria-label":`How one line becomes an incident`,children:[(0,o.jsxs)(`header`,{className:`ripple-casc-intro`,children:[(0,o.jsx)(`div`,{className:`ripple-eyebrow`,children:`The cascade`}),(0,o.jsx)(`p`,{className:`ripple-casc-lede`,children:`Each chain is one line turning into a page — read it left to right, then read how it’s caught.`})]}),t.map((e,t)=>{let r=n.has(t),i=`ripple-casc-${t}`;return(0,o.jsxs)(`div`,{className:`ripple-casc-item`,children:[t>0&&(0,o.jsx)(`div`,{className:`ripple-casc-divider`,"aria-hidden":`true`}),(0,o.jsxs)(`button`,{type:`button`,className:`ripple-casc-bar`,"aria-expanded":!r,"aria-controls":i,onClick:()=>a(t),children:[(0,o.jsx)(`span`,{className:`ripple-casc-bar-sev`,style:{"--casc-sev":s(e.incidentSeverity)},"aria-hidden":`true`,children:e.incidentSeverity}),(0,o.jsxs)(`span`,{className:`ripple-casc-bar-text`,id:i,children:[e.trigger,` `,(0,o.jsx)(`span`,{className:`ripple-casc-bar-arrow`,children:`→`}),` `,(0,o.jsx)(`strong`,{children:e.incident})]}),(0,o.jsx)(`span`,{className:`ripple-casc-bar-toggle`,"aria-hidden":`true`,children:r?`Show chain`:`Hide chain`})]}),!r&&(0,o.jsxs)(`div`,{className:`ripple-casc-detail`,children:[(0,o.jsx)(`div`,{className:`ripple-casc-scroll`,children:(0,o.jsx)(u,{cascade:e})}),(0,o.jsxs)(`p`,{className:`ripple-casc-resolution`,children:[(0,o.jsx)(`span`,{className:`ripple-casc-resolution-icon`,"aria-hidden":`true`,children:(0,o.jsx)(l,{})}),(0,o.jsxs)(`span`,{className:`ripple-casc-resolution-text`,children:[(0,o.jsx)(`strong`,{children:`Caught before merge.`}),` `,e.caughtBeforeMerge]})]})]})]},`${e.trigger}-${t}`)})]})}export{d as ShipCascade};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ripple-casc{gap:var(--s-md);flex-direction:column;display:flex}.ripple-casc-intro{flex-direction:column;gap:7px;display:flex}.ripple-casc-lede{max-width:60ch;color:var(--text-secondary);text-wrap:pretty;margin:0;font-size:13px;line-height:1.55}.ripple-casc-empty{color:var(--text-muted);font-size:13px;line-height:1.5}.ripple-casc-item{gap:var(--s-2);flex-direction:column;display:flex}.ripple-casc-divider{height:1px;margin-bottom:var(--s-2);background:var(--line)}.ripple-casc-bar{text-align:left;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-elevated);cursor:pointer;width:100%;transition:background var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out);align-items:center;gap:11px;padding:9px 12px;display:flex}.ripple-casc-bar:hover{background:var(--surface-elevated-2);border-color:color-mix(in oklab, var(--text-muted) 40%, var(--line))}.ripple-casc-bar-sev{letter-spacing:.06em;color:var(--casc-sev);background:color-mix(in oklab, var(--casc-sev) 16%, transparent);border:1px solid color-mix(in oklab, var(--casc-sev) 36%, transparent);border-radius:var(--r-full);flex:none;padding:2px 8px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;font-weight:700}.ripple-casc-bar-text{min-width:0;color:var(--text-secondary);overflow-wrap:anywhere;flex:1;font-size:13px;line-height:1.45}.ripple-casc-bar-text strong{color:var(--text-primary);font-weight:600}.ripple-casc-bar-arrow{color:var(--text-muted)}.ripple-casc-bar-toggle{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);flex:none;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:600}.ripple-casc-detail{gap:var(--s-2);flex-direction:column;display:flex}.ripple-casc-scroll{margin:0 calc(-1 * var(--s-2));padding:4px var(--s-2);overflow-x:auto}.ripple-casc-row{align-items:stretch;gap:var(--s-2);flex-wrap:wrap;display:flex}.ripple-casc-step{align-items:stretch;gap:var(--s-2);min-width:0;display:flex}.ripple-casc-chevron{width:16px;height:16px;color:var(--text-muted);flex:none;align-self:center}.ripple-casc-card{border-radius:var(--r-md);flex-direction:column;flex:200px;gap:6px;min-width:184px;max-width:320px;padding:11px 13px;display:flex;overflow:hidden}.ripple-casc-trigger,.ripple-casc-hop{background:color-mix(in oklab, var(--casc-tint) 10%, var(--surface-elevated));border:1px solid color-mix(in oklab, var(--casc-tint) 34%, transparent)}.ripple-casc-trigger{box-shadow:inset 3px 0 0 var(--casc-tint)}.ripple-casc-hop{box-shadow:inset 3px 0 0 color-mix(in oklab, var(--casc-tint) 70%, transparent)}.ripple-casc-eyebrow{align-items:center;gap:7px;min-width:0;display:flex}.ripple-casc-ref{min-width:0;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;overflow:hidden}.ripple-casc-hop-eyebrow{color:var(--casc-tint)}.ripple-casc-title{color:var(--text-primary);text-wrap:pretty;overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:600;line-height:1.4}.ripple-casc-incident{background:var(--surface-elevated-2);border:1px solid color-mix(in oklab, var(--danger) 30%, var(--line));min-width:184px;max-width:320px;box-shadow:inset 3px 0 0 var(--danger), 0 10px 26px color-mix(in oklab, var(--danger) 16%, transparent);flex:200px}.ripple-casc-incident-top{align-items:center;gap:8px;display:flex}.ripple-casc-sev{letter-spacing:.06em;color:var(--casc-sev);background:color-mix(in oklab, var(--casc-sev) 18%, transparent);border:1px solid color-mix(in oklab, var(--casc-sev) 42%, transparent);border-radius:var(--r-full);padding:2px 9px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:700}.ripple-casc-incident-label{color:color-mix(in oklab, var(--danger) 80%, var(--text-secondary))}.ripple-casc-incident-text{color:var(--text-primary);text-wrap:pretty;overflow-wrap:anywhere;margin:0;font-size:14px;font-weight:700;line-height:1.35}.ripple-casc-resolution{border-radius:var(--r-sm);background:color-mix(in oklab, var(--insight) 9%, transparent);border:1px solid color-mix(in oklab, var(--insight) 26%, transparent);align-items:flex-start;gap:10px;margin:0;padding:10px 12px;display:flex}.ripple-casc-resolution-icon{color:var(--insight);flex:none;margin-top:1px;display:flex}.ripple-casc-check{width:18px;height:18px}.ripple-casc-resolution-text{color:var(--text-secondary);text-wrap:pretty;font-size:13px;line-height:1.5}.ripple-casc-resolution-text strong{color:var(--insight);font-weight:600}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{ht as n}from"./index-y8GL67bB.js";import{t as r}from"./DropSelect-DUhdQSta.js";import{n as i}from"./store-DXmC_fP2.js";import{v as a}from"./githubToken-DtcLYqwm.js";import{n as o,t as s}from"./courseStore-DfafnL-9.js";import{t as c}from"./links--u_phi0x.js";var l=e(),u=n(),d=`mavea.ripple.course.v2`,f=`mavea.ripple.course.v1`;function p(){try{let e=localStorage.getItem(f);if(!e)return{};let t=JSON.parse(e);if(!t||typeof t!=`object`||Array.isArray(t))return{};let n={};for(let[e,r]of Object.entries(t))Array.isArray(r)&&(n[e]={lessons:r.filter(e=>typeof e==`number`)});return Object.keys(n).length>0&&h(n),n}catch{return{}}}function m(){try{let e=localStorage.getItem(d);if(e===null)return p();let t=JSON.parse(e);return t&&typeof t==`object`&&!Array.isArray(t)?t:{}}catch{return{}}}function h(e){try{localStorage.setItem(d,JSON.stringify(e))}catch{}}function g(e){return new Set(m()[e]?.lessons??[])}function _(e,t,n){let r=m(),i=new Set(r[e]?.lessons??[]);return n?i.add(t):i.delete(t),r[e]={...r[e],lessons:[...i].sort((e,t)=>e-t)},h(r),i}function v(e){return m()[e]?.quiz}function y(e,t,n){let r=m();r[e]={lessons:r[e]?.lessons??[],quiz:{correct:t,total:n,passedAt:Date.now()}},h(r)}function b(e,t){return t>0&&e>=t-1}function x(e){return!!(!(e.lessonsTotal>0&&e.lessonsDone>=e.lessonsTotal)||e.hasQuiz&&!e.quizPassed)}var S=t();function C(e){let t=(0,u.c)(86),{course:n,lesson:r,altitude:i,fileUrl:a,loadLessonDetail:o,speak:s,onAskAboutLesson:c}=e,[d,f]=(0,l.useState)(r.detail??null),[p,m]=(0,l.useState)(`idle`),[h,g]=(0,l.useState)(null),_=(0,l.useRef)(!1),v=(0,l.useRef)(!0),y=(0,l.useRef)(null),b=(0,l.useRef)(0),x,C;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(x=()=>()=>{v.current=!1,y.current!==null&&clearTimeout(y.current)},C=[],t[0]=x,t[1]=C):(x=t[0],C=t[1]),(0,l.useEffect)(x,C);let k;t[2]!==i||t[3]!==n||t[4]!==r||t[5]!==o?(k=e=>{if(!o)return;y.current!==null&&clearTimeout(y.current);let t=b.current+=1;m(`loading`),f(null);let a=s=>{o(n,r,e,i).then(e=>{!v.current||t!==b.current||(e?(f(e),m(`idle`)):s>0?y.current=setTimeout(()=>a(s-1),2e3):m(`error`))})};a(1)},t[2]=i,t[3]=n,t[4]=r,t[5]=o,t[6]=k):k=t[6];let A=k,j;t[7]!==r.detail||t[8]!==o||t[9]!==A?(j=()=>{if(r.detail){f(r.detail);return}!o||_.current||(_.current=!0,A(!1))},t[7]=r.detail,t[8]=o,t[9]=A,t[10]=j):j=t[10];let M;t[11]!==r||t[12]!==o||t[13]!==A?(M=[r,o,A],t[11]=r,t[12]=o,t[13]=A,t[14]=M):M=t[14],(0,l.useEffect)(j,M);let N;t[15]===d?.walkthrough?N=t[16]:(N=d?.walkthrough??[],t[15]=d?.walkthrough,t[16]=N);let P=N,F,I;t[17]!==s||t[18]!==h||t[19]!==P?(F=()=>{if(h===null||!s)return;let e=P[h];e&&s(`${e.focus?e.focus+`. `:``}${e.explain}`)},I=[h,P,s],t[17]=s,t[18]=h,t[19]=P,t[20]=F,t[21]=I):(F=t[20],I=t[21]),(0,l.useEffect)(F,I);let L=r.goal,R=r.explainFor?.[i]??r.goal,z;t[22]!==n||t[23]!==L||t[24]!==r.title||t[25]!==c?(z=c&&(0,S.jsx)(`button`,{type:`button`,className:`ripple-lesson-ask`,onClick:()=>c(`In "${n.title}" — ${r.title}: ${L||`what should I understand here?`}`),children:`Ask about this lesson`}),t[22]=n,t[23]=L,t[24]=r.title,t[25]=c,t[26]=z):z=t[26];let B=z;if(d){let e,n,r;if(t[27]!==B||t[28]!==d.overview||t[29]!==L){let i=d.overview.split(/\n\n+/).filter(te);t[33]===L?e=t[34]:(e=L&&(0,S.jsx)(`p`,{className:`ripple-course-lede`,children:L}),t[33]=L,t[34]=e),n=B,r=i.length>0&&(0,S.jsx)(`div`,{className:`ripple-lesson-overview`,children:i.map(ee)}),t[27]=B,t[28]=d.overview,t[29]=L,t[30]=e,t[31]=n,t[32]=r}else e=t[30],n=t[31],r=t[32];let i;t[35]!==a||t[36]!==h||t[37]!==P?(i=P.length>0&&(0,S.jsxs)(`section`,{className:`ripple-course-group`,children:[(0,S.jsxs)(`div`,{className:`ripple-lesson-spot-head`,children:[(0,S.jsx)(`div`,{className:`ripple-eyebrow`,children:`Spotlight — walk the real code`}),(0,S.jsxs)(`button`,{type:`button`,className:`ripple-course-reveal`,onClick:()=>g(0),"aria-label":`Step through the code one part at a time`,children:[`▶ Step through (`,P.length,`)`]})]}),h===null?(0,S.jsx)(`ol`,{className:`ripple-walk`,children:P.map((e,t)=>(0,S.jsxs)(`li`,{className:`ripple-walk-step`,children:[(0,S.jsxs)(`div`,{className:`ripple-walk-where`,children:[(0,S.jsx)(`span`,{className:`ripple-walk-num`,"aria-hidden":`true`,children:t+1}),(0,S.jsx)(O,{file:e.file,focus:e.focus,url:a(e.file)})]}),e.code&&(0,S.jsx)(`pre`,{className:`ripple-walk-code`,children:(0,S.jsx)(`code`,{children:e.code})}),(0,S.jsx)(`p`,{className:`ripple-walk-explain`,children:e.explain})]},t))}):(0,S.jsx)(ne,{steps:P,index:h,fileUrl:a,onPrev:()=>g(D),onNext:()=>g(e=>e===null?null:Math.min(P.length-1,e+1)),onClose:()=>g(null)})]}),t[35]=a,t[36]=h,t[37]=P,t[38]=i):i=t[38];let s;t[39]===d.concepts?s=t[40]:(s=d.concepts.length>0&&(0,S.jsxs)(`section`,{className:`ripple-course-group`,children:[(0,S.jsx)(`div`,{className:`ripple-eyebrow`,children:`Key concepts`}),(0,S.jsx)(`dl`,{className:`ripple-lesson-concepts`,children:d.concepts.map(E)})]}),t[39]=d.concepts,t[40]=s);let c;t[41]===d.pitfalls?c=t[42]:(c=d.pitfalls&&d.pitfalls.length>0&&(0,S.jsxs)(`section`,{className:`ripple-course-caution`,role:`note`,children:[(0,S.jsx)(`div`,{className:`ripple-eyebrow`,children:`Watch out for`}),(0,S.jsx)(`ul`,{className:`ripple-lesson-pitfalls`,children:d.pitfalls.map(T)})]}),t[41]=d.pitfalls,t[42]=c);let l;t[43]===d.exercise?l=t[44]:(l=d.exercise&&(0,S.jsxs)(`section`,{className:`ripple-course-group ripple-lesson-exercise`,children:[(0,S.jsx)(`div`,{className:`ripple-eyebrow`,children:`Try it`}),(0,S.jsx)(`p`,{className:`ripple-lesson-task`,children:d.exercise.task}),d.exercise.hint&&(0,S.jsxs)(`p`,{className:`ripple-lesson-hint`,children:[`Hint — `,d.exercise.hint]}),d.exercise.check&&(0,S.jsxs)(`p`,{className:`ripple-lesson-check`,children:[`How you’ll know it worked — `,d.exercise.check]})]}),t[43]=d.exercise,t[44]=l);let u;t[45]!==o||t[46]!==A?(u=o&&(0,S.jsx)(`button`,{type:`button`,className:`ripple-lesson-regen`,onClick:()=>A(!0),title:`Rewrite this lesson from the latest code`,children:`↻ Rewrite this lesson`}),t[45]=o,t[46]=A,t[47]=u):u=t[47];let f;return t[48]!==e||t[49]!==n||t[50]!==r||t[51]!==i||t[52]!==s||t[53]!==c||t[54]!==l||t[55]!==u?(f=(0,S.jsxs)(S.Fragment,{children:[e,n,r,i,s,c,l,u]}),t[48]=e,t[49]=n,t[50]=r,t[51]=i,t[52]=s,t[53]=c,t[54]=l,t[55]=u,t[56]=f):f=t[56],f}if(p===`loading`){let e,n;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,S.jsx)(`span`,{className:`ripple-sharpening-dot`,"aria-hidden":`true`}),n=(0,S.jsx)(`div`,{className:`ripple-course-skeleton-title`,children:`Writing this lesson from the real code…`}),t[57]=e,t[58]=n):(e=t[57],n=t[58]);let i;t[59]===r.read?i=t[60]:(i=r.read.slice(0,3).join(`, `)||`the relevant files`,t[59]=r.read,t[60]=i);let a;return t[61]===i?a=t[62]:(a=(0,S.jsxs)(`div`,{className:`ripple-course-skeleton`,role:`status`,"aria-live":`polite`,children:[e,n,(0,S.jsxs)(`div`,{className:`ripple-course-skeleton-sub`,children:[`Reading `,i,` to teach it properly — with a walk through the actual code.`]})]}),t[61]=i,t[62]=a),a}if(p===`error`){let e;t[63]===L?e=t[64]:(e=L&&(0,S.jsx)(`p`,{className:`ripple-course-lede`,children:L}),t[63]=L,t[64]=e);let n;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,S.jsx)(`p`,{children:`Couldn’t write this lesson from the code just now.`}),t[65]=n):n=t[65];let r;t[66]===A?r=t[67]:(r=(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-reveal`,onClick:()=>A(!0),children:`Try again`}),t[66]=A,t[67]=r);let i;return t[68]!==e||t[69]!==r?(i=(0,S.jsxs)(`div`,{className:`ripple-course-empty`,children:[e,n,r]}),t[68]=e,t[69]=r,t[70]=i):i=t[70],i}let re;t[71]===R?re=t[72]:(re=(0,S.jsx)(`p`,{className:`ripple-course-explain`,children:R}),t[71]=R,t[72]=re);let ie;t[73]!==a||t[74]!==r.read?(ie=r.read.length>0&&(0,S.jsxs)(`section`,{className:`ripple-course-group`,children:[(0,S.jsx)(`div`,{className:`ripple-eyebrow`,children:`Open and read`}),(0,S.jsx)(`div`,{className:`ripple-course-files`,children:r.read.map(e=>(0,S.jsx)(O,{file:e,url:a(e)},e))})]}),t[73]=a,t[74]=r.read,t[75]=ie):ie=t[75];let ae;t[76]===r.concepts?ae=t[77]:(ae=r.concepts.length>0&&(0,S.jsxs)(`section`,{className:`ripple-course-group`,children:[(0,S.jsx)(`div`,{className:`ripple-eyebrow`,children:`Key concepts`}),(0,S.jsx)(`ul`,{className:`ripple-course-concepts`,children:r.concepts.map(w)})]}),t[76]=r.concepts,t[77]=ae);let V;t[78]===r.caution?V=t[79]:(V=r.caution&&(0,S.jsxs)(`section`,{className:`ripple-course-caution`,role:`note`,children:[(0,S.jsx)(`div`,{className:`ripple-eyebrow`,children:`Be careful here — and why`}),(0,S.jsx)(`p`,{className:`ripple-course-caution-text`,children:r.caution})]}),t[78]=r.caution,t[79]=V);let oe;return t[80]!==B||t[81]!==re||t[82]!==ie||t[83]!==ae||t[84]!==V?(oe=(0,S.jsxs)(S.Fragment,{children:[re,B,ie,ae,V]}),t[80]=B,t[81]=re,t[82]=ie,t[83]=ae,t[84]=V,t[85]=oe):oe=t[85],oe}function w(e,t){return(0,S.jsx)(`li`,{children:e},t)}function T(e,t){return(0,S.jsx)(`li`,{children:e},t)}function E(e,t){return(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`dt`,{children:e.term}),(0,S.jsx)(`dd`,{children:e.explain})]},t)}function D(e){return e===null?null:Math.max(0,e-1)}function ee(e,t){return(0,S.jsx)(`p`,{children:e},t)}function te(e){return e.trim().length>0}function O(e){let t=(0,u.c)(3),{file:n,focus:r,url:i}=e,a=r?`${n} · ${r}`:n,o;return t[0]!==a||t[1]!==i?(o=i?(0,S.jsxs)(`a`,{className:`ripple-course-file ripple-course-file-link`,href:i,target:`_blank`,rel:`noreferrer noopener`,children:[a,` ↗`]}):(0,S.jsx)(`code`,{className:`ripple-course-file`,children:a}),t[0]=a,t[1]=i,t[2]=o):o=t[2],o}function ne(e){let t=(0,u.c)(36),{steps:n,index:r,fileUrl:i,onPrev:a,onNext:o,onClose:s}=e,c=n[r],l=r+1,d;t[0]!==n.length||t[1]!==l?(d=(0,S.jsxs)(`span`,{className:`ripple-spotlight-count`,children:[l,` / `,n.length]}),t[0]=n.length,t[1]=l,t[2]=d):d=t[2];let f=c.file,p=c.focus,m;t[3]!==i||t[4]!==c.file?(m=i(c.file),t[3]=i,t[4]=c.file,t[5]=m):m=t[5];let h;t[6]!==c.file||t[7]!==c.focus||t[8]!==m?(h=(0,S.jsx)(O,{file:f,focus:p,url:m}),t[6]=c.file,t[7]=c.focus,t[8]=m,t[9]=h):h=t[9];let g;t[10]===s?g=t[11]:(g=(0,S.jsx)(`button`,{type:`button`,className:`ripple-spotlight-x`,onClick:s,"aria-label":`Exit spotlight`,children:`✕`}),t[10]=s,t[11]=g);let _;t[12]!==d||t[13]!==h||t[14]!==g?(_=(0,S.jsxs)(`div`,{className:`ripple-spotlight-bar`,children:[d,h,g]}),t[12]=d,t[13]=h,t[14]=g,t[15]=_):_=t[15];let v;t[16]===c.code?v=t[17]:(v=c.code&&(0,S.jsx)(`pre`,{className:`ripple-walk-code ripple-spotlight-code`,children:(0,S.jsx)(`code`,{children:c.code})}),t[16]=c.code,t[17]=v);let y;t[18]===c.explain?y=t[19]:(y=(0,S.jsx)(`p`,{className:`ripple-spotlight-explain`,children:c.explain}),t[18]=c.explain,t[19]=y);let b=r===0,x;t[20]!==a||t[21]!==b?(x=(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-skip`,onClick:a,disabled:b,children:`← Back`}),t[20]=a,t[21]=b,t[22]=x):x=t[22];let C;t[23]!==r||t[24]!==s||t[25]!==o||t[26]!==n.length?(C=r<n.length-1?(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-done`,onClick:o,children:`Next →`}):(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-done`,onClick:s,children:`Done ✓`}),t[23]=r,t[24]=s,t[25]=o,t[26]=n.length,t[27]=C):C=t[27];let w;t[28]!==x||t[29]!==C?(w=(0,S.jsxs)(`div`,{className:`ripple-spotlight-nav`,children:[x,C]}),t[28]=x,t[29]=C,t[30]=w):w=t[30];let T;return t[31]!==y||t[32]!==w||t[33]!==_||t[34]!==v?(T=(0,S.jsxs)(`div`,{className:`ripple-spotlight`,role:`group`,"aria-label":`Code spotlight`,children:[_,v,y,w]}),t[31]=y,t[32]=w,t[33]=_,t[34]=v,t[35]=T):T=t[35],T}function k(e){let t=(0,u.c)(56),{questions:n,onFinish:r,children:i}=e,[a,o]=(0,l.useState)(0),[s,c]=(0,l.useState)(`ask`),[d,f]=(0,l.useState)(null),[p,m]=(0,l.useState)(!1),[h,g]=(0,l.useState)(0),[_,v]=(0,l.useState)(!1),[y,x]=(0,l.useState)(null),C=n.length,w=n[Math.min(a,C-1)],T=!!(w.choices&&w.choices.length>=2&&w.correct!==void 0),E;t[0]===s?E=t[1]:(E=e=>{s!==`graded`&&(m(e),c(`graded`),e&&g(j))},t[0]=s,t[1]=E);let D=E,ee;t[2]!==D||t[3]!==s||t[4]!==w.correct?(ee=e=>{s!==`graded`&&(f(e),D(e===w.correct))},t[2]=D,t[3]=s,t[4]=w.correct,t[5]=ee):ee=t[5];let te=ee,O;t[6]===s?O=t[7]:(O=()=>{s===`ask`&&c(`revealed`)},t[6]=s,t[7]=O);let ne=O,k;t[8]!==h||t[9]!==a||t[10]!==r||t[11]!==C?(k=()=>{if(a+1>=C){let e={correct:h,total:C};x(e),v(!0),r?.(e);return}o(A),c(`ask`),f(null),m(!1)},t[8]=h,t[9]=a,t[10]=r,t[11]=C,t[12]=k):k=t[12];let M=k;if(_&&y){let e=y.total-y.correct,n=b(y.correct,y.total),r=n?`true`:void 0,a;t[13]!==y.correct||t[14]!==y.total?(a=(0,S.jsxs)(`div`,{className:`ripple-quiz-score-num`,children:[y.correct,`/`,y.total]}),t[13]=y.correct,t[14]=y.total,t[15]=a):a=t[15];let o=n?`You know this one — nice work.`:`Worth another pass — ${e} to revisit.`,s;t[16]===o?s=t[17]:(s=(0,S.jsx)(`p`,{className:`ripple-quiz-score-text`,children:o}),t[16]=o,t[17]=s);let c;t[18]!==r||t[19]!==a||t[20]!==s?(c=(0,S.jsxs)(`div`,{className:`ripple-quiz-score`,"data-passed":r,role:`status`,children:[a,s]}),t[18]=r,t[19]=a,t[20]=s,t[21]=c):c=t[21];let l;return t[22]!==i||t[23]!==c?(l=(0,S.jsxs)(`div`,{className:`ripple-quiz-done`,children:[c,i]}),t[22]=i,t[23]=c,t[24]=l):l=t[24],l}let N=`Question ${a+1} of ${C}`,P=a+1,F;t[25]!==P||t[26]!==C?(F=(0,S.jsxs)(`div`,{className:`ripple-quiz-progress`,children:[`Question `,P,` of `,C]}),t[25]=P,t[26]=C,t[27]=F):F=t[27];let I;t[28]===w.question?I=t[29]:(I=(0,S.jsx)(`p`,{className:`ripple-course-q`,children:w.question}),t[28]=w.question,t[29]=I);let L;t[30]!==D||t[31]!==T||t[32]!==s||t[33]!==te||t[34]!==d||t[35]!==w.answer||t[36]!==w.choices||t[37]!==w.correct||t[38]!==ne?(L=T?(0,S.jsx)(`ul`,{className:`ripple-quiz-choices`,children:w.choices.map((e,t)=>{let n=`idle`;return s===`graded`&&(t===w.correct?n=`correct`:t===d&&(n=`wrong`)),(0,S.jsx)(`li`,{children:(0,S.jsx)(`button`,{type:`button`,className:`ripple-quiz-choice`,"data-state":n,onClick:()=>te(t),disabled:s===`graded`,"aria-pressed":d===t,children:e})},t)})}):(0,S.jsxs)(`div`,{className:`ripple-quiz-plain`,children:[s===`ask`&&(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-reveal`,onClick:ne,children:`Show answer`}),s!==`ask`&&(0,S.jsx)(`p`,{className:`ripple-course-a`,children:w.answer}),s===`revealed`&&(0,S.jsxs)(`div`,{className:`ripple-quiz-selfgrade`,children:[(0,S.jsx)(`span`,{className:`ripple-quiz-selfgrade-prompt`,children:`Did you get it?`}),(0,S.jsx)(`button`,{type:`button`,className:`ripple-quiz-selfgrade-btn`,"data-answer":`yes`,onClick:()=>D(!0),children:`Yes, I had it`}),(0,S.jsx)(`button`,{type:`button`,className:`ripple-quiz-selfgrade-btn`,"data-answer":`no`,onClick:()=>D(!1),children:`Not quite`})]})]}),t[30]=D,t[31]=T,t[32]=s,t[33]=te,t[34]=d,t[35]=w.answer,t[36]=w.choices,t[37]=w.correct,t[38]=ne,t[39]=L):L=t[39];let R;t[40]!==s||t[41]!==w.explain||t[42]!==p?(R=s===`graded`&&(0,S.jsxs)(`div`,{className:`ripple-quiz-feedback`,"data-right":p?`true`:void 0,children:[(0,S.jsx)(`p`,{className:`ripple-quiz-feedback-label`,children:p?`Correct`:`Not quite`}),w.explain&&(0,S.jsx)(`p`,{className:`ripple-quiz-explain`,children:w.explain})]}),t[40]=s,t[41]=w.explain,t[42]=p,t[43]=R):R=t[43];let z;t[44]!==M||t[45]!==a||t[46]!==s||t[47]!==C?(z=s===`graded`&&(0,S.jsx)(`div`,{className:`ripple-quiz-actions`,children:(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-done`,onClick:M,children:a+1>=C?`See your score →`:`Next question →`})}),t[44]=M,t[45]=a,t[46]=s,t[47]=C,t[48]=z):z=t[48];let B;return t[49]!==R||t[50]!==z||t[51]!==N||t[52]!==F||t[53]!==I||t[54]!==L?(B=(0,S.jsxs)(`div`,{className:`ripple-quiz`,role:`group`,"aria-label":N,children:[F,I,L,R,z]}),t[49]=R,t[50]=z,t[51]=N,t[52]=F,t[53]=I,t[54]=L,t[55]=B):B=t[55],B}function A(e){return e+1}function j(e){return e+1}var M=e=>e.slice(0,7),N={beginner:`Beginner`,intermediate:`Intermediate`,expert:`Expert`};function P({title:e,sub:t,preview:n=!1}){return(0,S.jsxs)(`div`,{className:`ripple-course-skeleton`+(n?` ripple-course-skeleton--preview`:``),role:`status`,"aria-live":`polite`,children:[(0,S.jsxs)(`div`,{className:`ripple-course-skeleton-head`,children:[(0,S.jsx)(`span`,{className:`ripple-sharpening-dot`,"aria-hidden":`true`}),(0,S.jsx)(`div`,{className:`ripple-course-skeleton-title`,children:e})]}),(0,S.jsx)(`div`,{className:`ripple-course-skeleton-sub`,children:t}),(0,S.jsx)(`div`,{className:`ripple-progress`,"aria-hidden":`true`}),n&&(0,S.jsx)(`div`,{className:`ripple-course-skeleton-lessons`,"aria-hidden":`true`,children:[0,1,2,3].map(e=>(0,S.jsxs)(`div`,{className:`ripple-skel-lesson`,children:[(0,S.jsx)(`span`,{className:`ripple-skel-bar ripple-skel-step`}),(0,S.jsxs)(`span`,{className:`ripple-skel-lines`,children:[(0,S.jsx)(`span`,{className:`ripple-skel-bar ripple-skel-line-title`}),(0,S.jsx)(`span`,{className:`ripple-skel-bar ripple-skel-line-meta`})]})]},e))})]})}function F(e){let t=(0,u.c)(137),{model:n,altitude:d,building:f,onRegenerate:p,loadLessonDetail:m,loadCourseClosing:h,courseFocus:w,onCourseFocus:T,speak:E,commitSha:D,compareSinceBuilt:ee,openFullAnalysis:te,onAskAboutLesson:O}=e,ne;t[0]===n.courses?ne=t[1]:(ne=n.courses??[],t[0]=n.courses,t[1]=ne);let A=ne,j=n.pr.repo||``,F=n.pr.branch||`HEAD`,V=j?o(j):void 0,oe=!!(!n.provenance.example&&j&&D&&V?.commitSha&&V.commitSha!==D),[H,se]=(0,l.useState)(0),U=A[Math.min(H,Math.max(0,A.length-1))],W=U?`${j||`repo`}::${U.title}`:`repo`,ce;t[2]===W?ce=t[3]:(ce=()=>g(W),t[2]=W,t[3]=ce);let[G,le]=(0,l.useState)(ce),ue,de;t[4]===W?(ue=t[5],de=t[6]):(ue=()=>le(g(W)),de=[W],t[4]=W,t[5]=ue,t[6]=de),(0,l.useEffect)(ue,de);let fe;t[7]===W?fe=t[8]:(fe=(e,t)=>{le(new Set(_(W,e,t)))},t[7]=W,t[8]=fe);let pe=fe,[K,q]=(0,l.useState)(0),[me,he]=(0,l.useState)(!1),ge;t[9]===W?ge=t[10]:(ge=()=>v(W),t[9]=W,t[10]=ge);let[J,_e]=(0,l.useState)(ge),[ve,ye]=(0,l.useState)(0),[be,xe]=(0,l.useState)(!1),Se;t[11]!==H||t[12]!==A||t[13]!==W||t[14]!==q||t[15]!==xe?(Se=()=>{let e=g(W),t=(A[H]?.lessons??[]).findIndex((t,n)=>!e.has(n));q(t===-1?0:t),_e(v(W)),ye(0),xe(!1)},t[11]=H,t[12]=A,t[13]=W,t[14]=q,t[15]=xe,t[16]=Se):Se=t[16];let Ce;t[17]!==H||t[18]!==A||t[19]!==W?(Ce=[W,H,A],t[17]=H,t[18]=A,t[19]=W,t[20]=Ce):Ce=t[20],(0,l.useEffect)(Se,Ce);let we;t[21]===he?we=t[22]:(we=()=>he(!1),t[21]=he,t[22]=we);let Te;t[23]!==K||t[24]!==H?(Te=[K,H],t[23]=K,t[24]=H,t[25]=Te):Te=t[25],(0,l.useEffect)(we,Te);let[Ee,De]=(0,l.useState)(null),[Oe,ke]=(0,l.useState)(`idle`),[Ae,je]=(0,l.useState)(0),Me=(0,l.useRef)(null),Ne;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(Ne=()=>{De(null),ke(`idle`),Me.current=null},t[26]=Ne):Ne=t[26];let Pe;t[27]===H?Pe=t[28]:(Pe=[H],t[27]=H,t[28]=Pe),(0,l.useEffect)(Ne,Pe);let Fe,Ie;t[29]!==K||t[30]!==Ae||t[31]!==H||t[32]!==A||t[33]!==h?(Fe=()=>{let e=A[H];if(!e||!h||K<e.lessons.length||e.quiz?.length||e.capstone)return;let t=`${H}:${Ae}`;if(Me.current===t)return;Me.current=t;let n=!0;return ke(`loading`),h(e).then(e=>{n&&(e&&(e.quiz?.length||e.capstone)?(De(e),ke(`ready`)):ke(`error`))}),()=>{n=!1}},Ie=[A,H,K,h,Ae],t[29]=K,t[30]=Ae,t[31]=H,t[32]=A,t[33]=h,t[34]=Fe,t[35]=Ie):(Fe=t[34],Ie=t[35]),(0,l.useEffect)(Fe,Ie);let Le;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(Le=()=>je(ae),t[36]=Le):Le=t[36];let Re=Le,[Y,ze]=(0,l.useState)(null),[Be,Ve]=(0,l.useState)(``),[He,Ue]=(0,l.useState)(!1),[We,Ge]=(0,l.useState)(!1),[Ke,qe]=(0,l.useState)(``),Je;if(t[37]===Symbol.for(`react.memo_cache_sentinel`)?(Je=()=>{ze(null),Ve(``),Ue(!1),qe(``)},t[37]=Je):Je=t[37],(0,l.useEffect)(Je,[V?.commitSha,D]),A.length===0||!U){if(f){let e;return t[38]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,S.jsx)(P,{title:`Building your curriculum from the code…`,sub:`Reading the README, the areas, and the real files to write a leveled course you can climb without fear.`,preview:!0}),t[38]=e):e=t[38],e}let e;return t[39]===p?e=t[40]:(e=(0,S.jsx)(`div`,{className:`ripple-course-empty`,children:p?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`p`,{children:`Couldn’t build a course from this view yet.`}),(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-reveal`,onClick:p,children:`Try again`})]}):(0,S.jsx)(`p`,{children:`Connect a model in Settings to generate a course from this code.`})}),t[39]=p,t[40]=e),e}let X=U.lessons,Z=X[Math.min(K,X.length-1)],Ye=X.reduce(ie,0),Xe;t[41]!==G.size||t[42]!==X.length?(Xe=Math.round(G.size/X.length*100),t[41]=G.size,t[42]=X.length,t[43]=Xe):Xe=t[43];let Ze=Xe,Qe;t[44]!==Ee?.quiz||t[45]!==U.quiz?(Qe=U.quiz??Ee?.quiz??[],t[44]=Ee?.quiz,t[45]=U.quiz,t[46]=Qe):Qe=t[46];let Q=Qe,$=U.capstone??Ee?.capstone,$e=X.length>0&&(Q.length>0||!!$||!!h),et=$e&&K>=X.length,tt=K<X.length-1||$e,nt;t[47]===W?nt=t[48]:(nt=e=>{y(W,e.correct,e.total),_e(v(W))},t[47]=W,t[48]=nt);let rt=nt,it;t[49]!==U.title||t[50]!==Q||t[51]!==j?(it=()=>{ye(i(Q.map(re),{deck:`Ripple · ${j||`this repo`}`,tags:[U.title],source:{topic:U.title,ts:Date.now()},origin:`auto`}).length)},t[49]=U.title,t[50]=Q,t[51]=j,t[52]=it):it=t[52];let at=it,ot;t[53]!==ve||t[54]!==at?(ot=()=>ve>0?(0,S.jsxs)(`p`,{className:`ripple-quiz-flash-saved`,children:[`+`,ve,` card`,ve===1?``:`s`,` saved to your deck`]}):(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-reveal`,onClick:at,children:`Keep these as flashcards`}),t[53]=ve,t[54]=at,t[55]=ot):ot=t[55];let st=ot,ct=oe&&Y?s(X,Y):new Set,lt=async()=>{if(Y)return Y;if(!ee||!V?.commitSha||!D)return null;Ge(!0),qe(``);let e=await ee(V.commitSha,D);if(Ge(!1),!e.ok||!e.diff)return qe(e.detail||`Couldn’t load what changed.`),null;let t=a(e.diff).files.map(B);return ze(t),Ve(e.diff),t},ut=()=>{if(He){Ue(!1);return}lt().then(e=>{e&&Ue(!0)})},dt=()=>{lt().then(e=>{if(!e)return;let t=s(X,e);t.size>0&&q(Math.min(...t))})},ft=()=>{!Be||!te||!V||!D||te(Be,`${j} ${M(V.commitSha)}...${M(D)}`,j)},pt;t[56]===j?pt=t[57]:(pt=e=>{let t=`${j||`repo`}::${e.title}`,n=v(t);return{lessonsDone:g(t).size,lessonsTotal:e.lessons.length,hasQuiz:(e.quiz?.length??0)>0,quizPassed:!!n&&b(n.correct,n.total)}},t[56]=j,t[57]=pt);let mt=pt,ht;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(ht=(0,S.jsx)(`span`,{className:`ripple-course-pill`,children:`Guided curriculum`}),t[58]=ht):ht=t[58];let gt;t[59]!==f||t[60]!==w||t[61]!==n.modules||t[62]!==T?(gt=T&&n.modules.length>1&&(0,S.jsxs)(`div`,{className:`ripple-course-focus`,title:`Build the course around one area — best on a large repo, where a whole-repo course only skims. Whole repo prioritises the highest-impact areas.`,children:[(0,S.jsx)(`span`,{className:`ripple-course-focus-label`,children:`Focus`}),(0,S.jsx)(r,{ariaLabel:`Course focus`,triggerClassName:`ripple-course-focus-select`,value:w??``,onChange:e=>T(e||void 0),disabled:f,options:[{value:``,label:`Whole repo`},...n.modules.slice(0,50).map(z)]})]}),t[59]=f,t[60]=w,t[61]=n.modules,t[62]=T,t[63]=gt):gt=t[63];let _t;t[64]!==f||t[65]!==p?(_t=p&&(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-regen`,onClick:p,disabled:f,title:`Rebuild the curriculum from the latest code`,children:f?`Rebuilding…`:`↻ Regenerate`}),t[64]=f,t[65]=p,t[66]=_t):_t=t[66];let vt;t[67]!==gt||t[68]!==_t?(vt=(0,S.jsxs)(`div`,{className:`ripple-course-head-top`,children:[ht,gt,_t]}),t[67]=gt,t[68]=_t,t[69]=vt):vt=t[69];let yt;t[70]!==H||t[71]!==A||t[72]!==mt||t[73]!==j?(yt=A.length>1&&(0,S.jsx)(`div`,{className:`ripple-course-tracks`,role:`tablist`,"aria-label":`Courses`,children:A.map((e,t)=>{let n=g(`${j||`repo`}::${e.title}`).size,r=n>=e.lessons.length,i=t>0?A[t-1]:void 0,a=!!i&&x(mt(i));return(0,S.jsxs)(`button`,{type:`button`,role:`tab`,className:`ripple-course-track`,"data-active":t===H?`true`:void 0,"data-locked":a?`true`:void 0,"aria-selected":t===H,onClick:()=>se(t),children:[(0,S.jsxs)(`span`,{className:`ripple-course-track-top`,children:[(0,S.jsx)(`span`,{className:`ripple-course-step`,"data-done":r?`true`:void 0,children:r?`✓`:t+1}),e.level?(0,S.jsx)(`span`,{className:`ripple-course-level`,"data-level":e.level,children:N[e.level]}):(0,S.jsxs)(`span`,{className:`ripple-course-track-meta`,children:[n,`/`,e.lessons.length]})]}),(0,S.jsx)(`span`,{className:`ripple-course-track-title`,children:e.title}),a&&(0,S.jsxs)(`span`,{className:`ripple-course-track-lock`,children:[(0,S.jsx)(`span`,{"aria-hidden":`true`,children:`🔒`}),` Usually after “`,i.title,`” —`,` `,(0,S.jsx)(`span`,{className:`ripple-course-track-skip`,children:`I already know this, skip ahead`})]})]},e.title)})}),t[70]=H,t[71]=A,t[72]=mt,t[73]=j,t[74]=yt):yt=t[74];let bt;t[75]===U.title?bt=t[76]:(bt=(0,S.jsx)(`h2`,{className:`ripple-course-title`,children:U.title}),t[75]=U.title,t[76]=bt);let xt;t[77]===U.subtitle?xt=t[78]:(xt=U.subtitle&&(0,S.jsx)(`p`,{className:`ripple-course-sub`,children:U.subtitle}),t[77]=U.subtitle,t[78]=xt);let St=Ye>0?` · ~${Ye} min`:``,Ct;t[79]!==G.size||t[80]!==X.length||t[81]!==St?(Ct=(0,S.jsxs)(`div`,{className:`ripple-course-meta`,children:[X.length,` lessons`,St,` · `,G.size,`/`,X.length,` done`]}),t[79]=G.size,t[80]=X.length,t[81]=St,t[82]=Ct):Ct=t[82];let wt=`${Ze}%`,Tt;t[83]===wt?Tt=t[84]:(Tt=(0,S.jsx)(`div`,{className:`ripple-course-bar`,"aria-hidden":`true`,children:(0,S.jsx)(`span`,{style:{width:wt}})}),t[83]=wt,t[84]=Tt);let Et;t[85]!==vt||t[86]!==yt||t[87]!==bt||t[88]!==xt||t[89]!==Ct||t[90]!==Tt?(Et=(0,S.jsxs)(`header`,{className:`ripple-course-head`,children:[vt,yt,bt,xt,Ct,Tt]}),t[85]=vt,t[86]=yt,t[87]=bt,t[88]=xt,t[89]=Ct,t[90]=Tt,t[91]=Et):Et=t[91];let Dt=oe&&V&&(0,S.jsxs)(`div`,{className:`ripple-course-stale`,role:`status`,children:[(0,S.jsx)(`div`,{className:`ripple-eyebrow`,children:`The code moved`}),(0,S.jsxs)(`p`,{className:`ripple-course-stale-text`,children:[`The code moved since this course was built (`,(0,S.jsx)(`code`,{children:M(V.commitSha)}),` →`,` `,(0,S.jsx)(`code`,{children:M(D)}),`).`]}),Ke&&(0,S.jsx)(`p`,{className:`ripple-course-stale-err`,children:Ke}),(0,S.jsxs)(`div`,{className:`ripple-course-stale-actions`,children:[(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-stale-btn`,onClick:ut,disabled:We,children:We?`Loading…`:He?`Hide what changed`:`See what changed`}),(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-stale-btn`,onClick:dt,disabled:We,children:`Refresh stale lessons`}),p&&(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-stale-btn`,onClick:p,disabled:f,children:`Rebuild course`})]}),He&&Y&&(0,S.jsxs)(`div`,{className:`ripple-course-changed-panel`,children:[(0,S.jsx)(`ul`,{children:Y.slice(0,20).map(R)}),Y.length>20&&(0,S.jsxs)(`p`,{className:`ripple-course-changed-more`,children:[`+`,Y.length-20,` more file`,Y.length-20==1?``:`s`]}),te&&(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-stale-btn`,onClick:ft,children:`Open as a full analysis →`})]})]}),Ot=X.map((e,t)=>{let n=G.has(t),r=ct.has(t);return(0,S.jsxs)(`button`,{type:`button`,className:`ripple-course-item`,"data-active":t===K?`true`:void 0,"data-done":n?`true`:void 0,"data-stale":r?`true`:void 0,onClick:()=>q(t),children:[(0,S.jsx)(`span`,{className:`ripple-course-num`,"aria-hidden":`true`,children:n?`✓`:t+1}),(0,S.jsxs)(`span`,{className:`ripple-course-item-body`,children:[(0,S.jsxs)(`span`,{className:`ripple-course-item-title`,children:[e.title,r&&(0,S.jsx)(`span`,{className:`ripple-course-item-stale`,title:`Its files changed since this course was built`,children:`stale`})]}),e.minutes?(0,S.jsxs)(`span`,{className:`ripple-course-item-min`,children:[`~`,e.minutes,` min`]}):null]})]},t)}),kt;t[92]!==$e||t[93]!==$||t[94]!==X.length||t[95]!==et||t[96]!==Q.length||t[97]!==q?(kt=$e&&(0,S.jsxs)(`button`,{type:`button`,className:`ripple-course-item ripple-course-item-quiz`,"data-active":et?`true`:void 0,onClick:()=>q(X.length),children:[(0,S.jsx)(`span`,{className:`ripple-course-num`,"aria-hidden":`true`,children:`★`}),(0,S.jsxs)(`span`,{className:`ripple-course-item-body`,children:[(0,S.jsx)(`span`,{className:`ripple-course-item-title`,children:Q.length>0?`Quiz`:$?`Capstone`:`Wrap-up`}),(0,S.jsx)(`span`,{className:`ripple-course-item-min`,children:Q.length>0?`${Q.length} question${Q.length===1?``:`s`}`:$?`Closing project`:`Quiz & capstone`})]})]}),t[92]=$e,t[93]=$,t[94]=X.length,t[95]=et,t[96]=Q.length,t[97]=q,t[98]=kt):kt=t[98];let At;t[99]!==Ot||t[100]!==kt?(At=(0,S.jsxs)(`nav`,{className:`ripple-course-list`,"aria-label":`Lessons`,children:[Ot,kt]}),t[99]=Ot,t[100]=kt,t[101]=At):At=t[101];let jt;t[102]!==K||t[103]!==d||t[104]!==$||t[105]!==Oe||t[106]!==U||t[107]!==H||t[108]!==G||t[109]!==rt||t[110]!==st||t[111]!==tt||t[112]!==Z||t[113]!==X.length||t[114]!==m||t[115]!==pe||t[116]!==O||t[117]!==et||t[118]!==Q||t[119]!==J||t[120]!==F||t[121]!==j||t[122]!==be||t[123]!==Re||t[124]!==me||t[125]!==q||t[126]!==xe||t[127]!==he||t[128]!==E?(jt=(0,S.jsx)(`article`,{className:`ripple-course-lesson`,"aria-live":`polite`,children:et?(0,S.jsx)(S.Fragment,{children:Q.length===0&&!$&&Oe===`loading`?(0,S.jsx)(P,{title:`Writing the quiz & capstone for ${U.title}…`,sub:`A few end-of-week questions and a small hands-on project, grounded in what this week studied.`}):Q.length===0&&!$&&Oe===`error`?(0,S.jsxs)(`div`,{className:`ripple-course-empty`,children:[(0,S.jsx)(`p`,{children:`Couldn’t build the quiz & capstone for this course yet.`}),(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-reveal`,onClick:Re,children:`Try again`})]}):(0,S.jsxs)(S.Fragment,{children:[Q.length>0&&(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`div`,{className:`ripple-eyebrow`,children:`Course quiz`}),(0,S.jsx)(`h3`,{className:`ripple-course-lesson-title`,children:`Test yourself`}),(0,S.jsxs)(`p`,{className:`ripple-course-explain`,children:[`Answer these to be sure you really understood `,U.title,`.`]}),J&&!be?(0,S.jsxs)(`div`,{className:`ripple-quiz-done`,children:[(0,S.jsxs)(`div`,{className:`ripple-quiz-score`,"data-passed":b(J.correct,J.total)?`true`:void 0,role:`status`,children:[(0,S.jsxs)(`div`,{className:`ripple-quiz-score-num`,children:[J.correct,`/`,J.total]}),(0,S.jsx)(`p`,{className:`ripple-quiz-score-text`,children:b(J.correct,J.total)?`You know this one — nice work.`:`Worth another pass — ${J.total-J.correct} to revisit.`})]}),(0,S.jsx)(`div`,{className:`ripple-quiz-flashcards`,children:st()}),(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-skip`,onClick:()=>xe(!0),children:`Retake the quiz`})]}):(0,S.jsx)(k,{questions:Q,onFinish:e=>{rt(e),xe(!1)},children:(0,S.jsx)(`div`,{className:`ripple-quiz-flashcards`,children:st()})},`quiz:${H}`)]}),$&&(0,S.jsxs)(`section`,{className:`ripple-course-capstone`,children:[(0,S.jsx)(`div`,{className:`ripple-eyebrow`,children:`Capstone`}),(0,S.jsx)(`h4`,{className:`ripple-course-capstone-title`,children:$.title}),(0,S.jsx)(`p`,{className:`ripple-course-capstone-brief`,children:$.brief}),$.steps.length>0&&(0,S.jsxs)(`div`,{className:`ripple-course-group`,children:[(0,S.jsx)(`div`,{className:`ripple-course-capstone-label`,children:`Do this`}),(0,S.jsx)(`ol`,{className:`ripple-course-capstone-steps`,children:$.steps.map(L)})]}),$.acceptance.length>0&&(0,S.jsxs)(`div`,{className:`ripple-course-group`,children:[(0,S.jsx)(`div`,{className:`ripple-course-capstone-label`,children:`You’ll know it worked when`}),(0,S.jsx)(`ul`,{className:`ripple-course-capstone-accept`,children:$.acceptance.map(I)})]})]})]})}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`div`,{className:`ripple-eyebrow`,children:[`Lesson `,K+1,` of `,X.length,Z.minutes?` · ~${Z.minutes} min`:``]}),(0,S.jsx)(`h3`,{className:`ripple-course-lesson-title`,children:Z.title}),(0,S.jsx)(C,{course:U,lesson:Z,altitude:d,repo:j,gitRef:F,fileUrl:e=>c(j,F,e),loadLessonDetail:m,speak:E,onAskAboutLesson:O},`${H}:${K}:${d}`),Z.checkpoint&&(0,S.jsxs)(`section`,{className:`ripple-course-checkpoint`,children:[(0,S.jsx)(`div`,{className:`ripple-eyebrow`,children:`Check yourself`}),(0,S.jsx)(`p`,{className:`ripple-course-q`,children:Z.checkpoint.question}),me?(0,S.jsx)(`p`,{className:`ripple-course-a`,children:Z.checkpoint.answer}):(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-reveal`,onClick:()=>he(!0),children:`Show answer`})]}),(0,S.jsxs)(`div`,{className:`ripple-course-actions`,children:[(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-done`,onClick:()=>{let e=G.has(K);pe(K,!e),!e&&tt&&q(K+1)},children:G.has(K)?`Done ✓`:tt?`Mark done & next →`:`Mark done ✓`}),tt&&(0,S.jsx)(`button`,{type:`button`,className:`ripple-course-skip`,onClick:()=>q(K+1),children:K===X.length-1?`Take the quiz →`:`Skip ahead`})]})]})}),t[102]=K,t[103]=d,t[104]=$,t[105]=Oe,t[106]=U,t[107]=H,t[108]=G,t[109]=rt,t[110]=st,t[111]=tt,t[112]=Z,t[113]=X.length,t[114]=m,t[115]=pe,t[116]=O,t[117]=et,t[118]=Q,t[119]=J,t[120]=F,t[121]=j,t[122]=be,t[123]=Re,t[124]=me,t[125]=q,t[126]=xe,t[127]=he,t[128]=E,t[129]=jt):jt=t[129];let Mt;t[130]!==At||t[131]!==jt?(Mt=(0,S.jsxs)(`div`,{className:`ripple-course-body`,children:[At,jt]}),t[130]=At,t[131]=jt,t[132]=Mt):Mt=t[132];let Nt;return t[133]!==Et||t[134]!==Dt||t[135]!==Mt?(Nt=(0,S.jsxs)(`div`,{className:`ripple-course`,children:[Et,Dt,Mt]}),t[133]=Et,t[134]=Dt,t[135]=Mt,t[136]=Nt):Nt=t[136],Nt}function I(e,t){return(0,S.jsx)(`li`,{children:e},t)}function L(e,t){return(0,S.jsx)(`li`,{children:e},t)}function R(e){return(0,S.jsx)(`li`,{children:e},e)}function z(e){return{value:e.name,label:e.name}}function B(e){return e.path}function re(e){return{front:e.question,back:e.answer}}function ie(e,t){return e+(t.minutes??0)}function ae(e){return e+1}export{F as ShipCourse};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ripple-course{gap:var(--s-md);flex-direction:column;height:100%;min-height:0;display:flex}.ripple-course-empty{align-items:flex-start;gap:var(--s-sm);color:var(--text-secondary);flex-direction:column;font-size:14px;display:flex}.ripple-course-skeleton{padding:var(--s-lg);flex-direction:column;gap:10px;max-width:520px;display:flex}.ripple-course-skeleton-head{align-items:center;gap:8px;display:flex}.ripple-course-skeleton-title{color:var(--text-primary);font-size:15px;font-weight:700}.ripple-course-skeleton-sub{color:var(--text-secondary);text-wrap:pretty;font-size:13px;line-height:1.55}.ripple-course-skeleton-lessons{flex-direction:column;gap:12px;margin-top:6px;display:flex}.ripple-skel-lesson{align-items:center;gap:12px;display:flex}.ripple-skel-step{border-radius:50%;flex:none;width:26px;height:26px}.ripple-skel-lines{flex-direction:column;flex:1;gap:7px;display:flex}.ripple-skel-line-title{width:62%;height:11px}.ripple-skel-line-meta{width:34%;height:9px}.ripple-skel-lesson:nth-child(2) .ripple-skel-line-title{width:74%}.ripple-skel-lesson:nth-child(3) .ripple-skel-line-title{width:54%}.ripple-skel-lesson:nth-child(4) .ripple-skel-line-title{width:68%}@media (prefers-reduced-motion:no-preference){.ripple-skel-lesson{opacity:0;animation:ripple-skel-in .42s var(--ease-out,ease-out) forwards}.ripple-skel-lesson:first-child{animation-delay:60ms}.ripple-skel-lesson:nth-child(2){animation-delay:.15s}.ripple-skel-lesson:nth-child(3){animation-delay:.24s}.ripple-skel-lesson:nth-child(4){animation-delay:.33s}@keyframes ripple-skel-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}}.ripple-course-head{flex:none}.ripple-course-head-top{justify-content:space-between;align-items:center;gap:var(--s-sm);display:flex}.ripple-course-regen{color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;flex:none;padding:4px 10px;font-size:11.5px;font-weight:600}.ripple-course-regen:hover:not(:disabled){color:var(--text-primary);background:color-mix(in oklab, var(--presence) 12%, var(--surface-elevated))}.ripple-course-regen:disabled{opacity:.6;cursor:default}.ripple-course-focus{color:var(--text-muted);flex:none;align-items:center;gap:6px;margin-left:auto;font-size:11.5px;font-weight:600;display:inline-flex}.ripple-course-focus-select{color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;max-width:220px;padding:4px 7px;font-size:11.5px;font-weight:600}.ripple-course-focus-select:hover:not(:disabled){color:var(--text-primary);border-color:color-mix(in oklab, var(--presence) 45%, var(--line))}.ripple-course-focus-select:disabled{opacity:.6;cursor:default}.ripple-course-pill{letter-spacing:.09em;text-transform:uppercase;color:var(--presence);background:color-mix(in oklab, var(--presence) 12%, transparent);border-radius:var(--r-full);padding:3px 9px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:700;display:inline-block}.ripple-course-tracks{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.ripple-course-track{text-align:left;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-default);cursor:pointer;flex-direction:column;flex:180px;gap:3px;padding:9px 12px;transition:border-color .15s,background .15s;display:flex}.ripple-course-track:hover{border-color:color-mix(in oklab, var(--presence) 40%, var(--line))}.ripple-course-track[data-active=true]{border-color:var(--presence);background:color-mix(in oklab, var(--presence) 8%, transparent)}.ripple-course-track-top{justify-content:space-between;align-items:center;gap:6px;display:flex}.ripple-course-step{width:18px;height:18px;color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.ripple-course-step[data-done=true]{color:#fff;background:var(--insight);border-color:#0000}.ripple-course-track-title{color:var(--text-primary);font-size:13px;font-weight:600;line-height:1.25}.ripple-course-track-meta{color:var(--text-muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px}.ripple-course-title{letter-spacing:-.01em;color:var(--text-primary);margin:12px 0 0;font-size:20px;font-weight:700}.ripple-course-sub{color:var(--text-secondary);margin:2px 0 0;font-size:13px}.ripple-course-meta{color:var(--text-muted);margin-top:8px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px}.ripple-course-bar{border-radius:var(--r-full);background:var(--surface-elevated);height:5px;margin-top:8px;overflow:hidden}.ripple-course-bar>span{background:linear-gradient(90deg, var(--presence), var(--insight));border-radius:inherit;height:100%;transition:width .3s;display:block}.ripple-course-stale{margin-top:var(--s-sm);border-radius:var(--r-md);background:color-mix(in oklab, var(--warning) 9%, transparent);border:1px solid color-mix(in oklab, var(--warning) 28%, transparent);border-left:3px solid var(--warning);flex:none;padding:11px 14px}.ripple-course-stale .ripple-eyebrow{color:var(--warning)}.ripple-course-stale-text{color:var(--text-primary);margin:6px 0 0;font-size:13.5px;line-height:1.5}.ripple-course-stale-text code{background:var(--surface-elevated);border-radius:var(--r-sm);padding:1px 6px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px}.ripple-course-stale-err{color:var(--danger);margin:6px 0 0;font-size:12.5px}.ripple-course-stale-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.ripple-course-stale-btn{color:var(--warning);border:1px solid color-mix(in oklab, var(--warning) 34%, transparent);border-radius:var(--r-sm);cursor:pointer;background:0 0;padding:5px 12px;font-size:12px;font-weight:600}.ripple-course-stale-btn:hover:not(:disabled){background:color-mix(in oklab, var(--warning) 12%, transparent)}.ripple-course-stale-btn:disabled{opacity:.6;cursor:default}.ripple-course-changed-panel{border-top:1px solid color-mix(in oklab, var(--warning) 24%, transparent);margin-top:10px;padding-top:10px}.ripple-course-changed-panel ul{flex-direction:column;gap:3px;max-height:160px;margin:0;padding-left:18px;display:flex;overflow-y:auto}.ripple-course-changed-panel li{color:var(--text-secondary);word-break:break-all;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px}.ripple-course-changed-more{color:var(--text-muted);margin:6px 0 0;font-size:12px}.ripple-course-changed-panel .ripple-course-stale-btn{margin-top:10px}.ripple-course-item-stale{letter-spacing:.06em;text-transform:uppercase;color:var(--warning);background:color-mix(in oklab, var(--warning) 14%, transparent);border-radius:var(--r-full);vertical-align:middle;margin-left:7px;padding:1px 6px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:8.5px;font-weight:700}.ripple-course-body{gap:var(--s-md);flex:1;grid-template-columns:minmax(220px,300px) 1fr;min-height:0;display:grid}.ripple-course-list{flex-direction:column;gap:4px;padding-right:4px;display:flex;overflow-y:auto}.ripple-course-item{text-align:left;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-default);cursor:pointer;align-items:center;gap:11px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.ripple-course-item:hover{border-color:color-mix(in oklab, var(--presence) 40%, var(--line))}.ripple-course-item[data-active=true]{border-color:var(--presence);background:color-mix(in oklab, var(--presence) 8%, transparent)}.ripple-course-num{width:24px;height:24px;color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.ripple-course-item[data-done=true] .ripple-course-num{color:#fff;background:var(--insight);border-color:#0000}.ripple-course-item-body{flex-direction:column;gap:1px;min-width:0;display:flex}.ripple-course-item-title{color:var(--text-primary);font-size:13px;font-weight:600}.ripple-course-item-min{color:var(--text-muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px}.ripple-course-lesson{min-width:0;padding:var(--s-md) var(--s-lg);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-elevated);overflow-y:auto}.ripple-course-lesson-title{color:var(--text-primary);margin:6px 0 0;font-size:18px;font-weight:700}.ripple-course-goal,.ripple-course-explain{color:var(--text-primary);text-wrap:pretty;white-space:pre-wrap;margin:8px 0 0;font-size:14.5px;line-height:1.6}.ripple-course-file-link{cursor:pointer;text-decoration:none;transition:border-color .15s,background .15s}.ripple-course-file-link:hover{border-color:var(--presence);background:color-mix(in oklab, var(--presence) 16%, transparent)}.ripple-course-group{margin-top:var(--s-md)}.ripple-course-files{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.ripple-course-file{color:var(--presence);background:color-mix(in oklab, var(--presence) 9%, transparent);border:1px solid color-mix(in oklab, var(--presence) 22%, transparent);border-radius:var(--r-sm);word-break:break-all;padding:3px 8px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px}.ripple-course-concepts{flex-direction:column;gap:5px;margin:6px 0 0;padding-left:18px;display:flex}.ripple-course-concepts li{color:var(--text-secondary);font-size:13.5px;line-height:1.5}.ripple-course-checkpoint{margin-top:var(--s-md);padding:var(--s-sm) var(--s-md);border-radius:var(--r-sm);background:color-mix(in oklab, var(--warning) 8%, transparent);border:1px solid color-mix(in oklab, var(--warning) 24%, transparent)}.ripple-course-q{color:var(--text-primary);margin:4px 0 0;font-size:13.5px;font-weight:600;line-height:1.5}.ripple-course-a{color:var(--text-secondary);text-wrap:pretty;border-top:1px solid color-mix(in oklab, var(--warning) 24%, transparent);margin:8px 0 0;padding-top:8px;font-size:13.5px;line-height:1.55}.ripple-course-reveal{color:var(--warning);border:1px solid color-mix(in oklab, var(--warning) 34%, transparent);border-radius:var(--r-sm);cursor:pointer;background:0 0;margin-top:8px;padding:4px 11px;font-size:12px;font-weight:600}.ripple-course-reveal:hover{background:color-mix(in oklab, var(--warning) 12%, transparent)}.ripple-course-actions{margin-top:var(--s-lg);align-items:center;gap:10px;display:flex}.ripple-course-done{color:#fff;background:var(--presence);border-radius:var(--r-sm);cursor:pointer;border:none;padding:8px 16px;font-size:13px;font-weight:600;transition:filter .15s}.ripple-course-done:hover{filter:brightness(1.08)}.ripple-course-skip{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:12.5px}.ripple-course-skip:hover{color:var(--text-secondary)}@media (width<=720px){.ripple-course-body{grid-template-columns:1fr}}.ripple-course-level{letter-spacing:.08em;text-transform:uppercase;border-radius:var(--r-full);color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);padding:2px 7px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:8.5px;font-weight:700}.ripple-course-level[data-level=beginner]{color:var(--insight);background:color-mix(in oklab, var(--insight) 12%, transparent);border-color:color-mix(in oklab, var(--insight) 28%, transparent)}.ripple-course-level[data-level=intermediate]{color:var(--presence);background:color-mix(in oklab, var(--presence) 12%, transparent);border-color:color-mix(in oklab, var(--presence) 28%, transparent)}.ripple-course-level[data-level=expert]{color:var(--warning);background:color-mix(in oklab, var(--warning) 12%, transparent);border-color:color-mix(in oklab, var(--warning) 28%, transparent)}.ripple-course-caution{border-radius:var(--r-md);background:color-mix(in oklab, var(--warning) 9%, transparent);border:1px solid color-mix(in oklab, var(--warning) 28%, transparent);border-left:3px solid var(--warning);margin-top:4px;padding:11px 14px}.ripple-course-caution .ripple-eyebrow{color:var(--warning)}.ripple-course-caution-text{color:var(--text-primary);text-wrap:pretty;margin:6px 0 0;font-size:13.5px;line-height:1.55}.ripple-course-item-quiz .ripple-course-num{color:var(--presence)}.ripple-quiz{margin-top:var(--s-md);padding:var(--s-md) var(--s-lg);border-radius:var(--r-md);background:var(--surface-elevated);border:1px solid var(--line)}.ripple-quiz-progress{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10.5px;font-weight:700}.ripple-quiz .ripple-course-q{margin-top:6px}.ripple-quiz-choices{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.ripple-quiz-choice{text-align:left;width:100%;color:var(--text-primary);background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;padding:10px 13px;font-size:13.5px;transition:border-color .15s,background .15s}.ripple-quiz-choice:hover:not(:disabled){border-color:color-mix(in oklab, var(--presence) 40%, var(--line))}.ripple-quiz-choice:disabled{cursor:default}.ripple-quiz-choice[data-state=correct]{border-color:color-mix(in oklab, var(--insight) 50%, var(--line));background:color-mix(in oklab, var(--insight) 14%, transparent);color:var(--text-primary)}.ripple-quiz-choice[data-state=wrong]{border-color:color-mix(in oklab, var(--danger) 50%, var(--line));background:color-mix(in oklab, var(--danger) 12%, transparent)}.ripple-quiz-plain{margin-top:10px}.ripple-quiz-selfgrade{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.ripple-quiz-selfgrade-prompt{color:var(--text-secondary);font-size:12.5px}.ripple-quiz-selfgrade-btn{border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;color:var(--text-secondary);background:0 0;padding:5px 12px;font-size:12px;font-weight:600}.ripple-quiz-selfgrade-btn:hover{color:var(--text-primary);background:var(--surface-default)}.ripple-quiz-selfgrade-btn[data-answer=yes]{color:var(--insight);border-color:color-mix(in oklab, var(--insight) 34%, transparent)}.ripple-quiz-selfgrade-btn[data-answer=no]{color:var(--danger);border-color:color-mix(in oklab, var(--danger) 34%, transparent)}.ripple-quiz-feedback{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.ripple-quiz-feedback-label{color:var(--danger);margin:0;font-size:12.5px;font-weight:700}.ripple-quiz-feedback[data-right=true] .ripple-quiz-feedback-label{color:var(--insight)}.ripple-quiz-explain{color:var(--text-secondary);text-wrap:pretty;margin:6px 0 0;font-size:13.5px;line-height:1.55}.ripple-quiz-actions{margin-top:var(--s-md)}.ripple-quiz-done{margin-top:var(--s-md);flex-direction:column;align-items:flex-start;gap:12px;display:flex}.ripple-quiz-score{padding:var(--s-md) var(--s-lg);border-radius:var(--r-md);background:color-mix(in oklab, var(--warning) 9%, var(--surface-elevated));border:1px solid color-mix(in oklab, var(--warning) 26%, var(--line));width:100%}.ripple-quiz-score[data-passed=true]{background:color-mix(in oklab, var(--insight) 10%, var(--surface-elevated));border-color:color-mix(in oklab, var(--insight) 30%, var(--line))}.ripple-quiz-score-num{color:var(--text-primary);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:24px;font-weight:700}.ripple-quiz-score-text{color:var(--text-secondary);margin:4px 0 0;font-size:13.5px}.ripple-quiz-flashcards{align-items:center;display:flex}.ripple-quiz-flash-saved{color:var(--insight);margin:0;font-size:12.5px;font-weight:600}.ripple-course-track[data-locked=true]{border-style:dashed}.ripple-course-track-lock{color:var(--text-muted);margin-top:5px;font-size:10.5px;line-height:1.4;display:block}.ripple-course-track-skip{color:var(--presence);text-underline-offset:2px;font-weight:600;text-decoration:underline}.ripple-course-capstone{margin-top:var(--s-lg);padding:var(--s-md) var(--s-lg);border-radius:var(--r-md);background:color-mix(in oklab, var(--presence) 6%, var(--surface-elevated));border:1px solid color-mix(in oklab, var(--presence) 24%, var(--line))}.ripple-course-capstone-title{color:var(--text-primary);margin:6px 0 0;font-size:15.5px;font-weight:700}.ripple-course-capstone-brief{color:var(--text-secondary);text-wrap:pretty;margin:6px 0 0;font-size:13.5px;line-height:1.6}.ripple-course-capstone-label{letter-spacing:.03em;color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:700}.ripple-course-capstone-steps,.ripple-course-capstone-accept{flex-direction:column;gap:5px;margin:6px 0 0;padding-left:18px;display:flex}.ripple-course-capstone-steps li,.ripple-course-capstone-accept li{color:var(--text-primary);font-size:13.5px;line-height:1.5}.ripple-course-capstone-accept li{color:var(--text-secondary)}.ripple-course-lede{color:var(--text-secondary);margin:0 0 var(--s-md);font-size:13.5px;font-weight:600}.ripple-lesson-overview{gap:var(--s-sm);margin-bottom:var(--s-lg);flex-direction:column;display:flex}.ripple-lesson-overview p{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:14px;line-height:1.7}.ripple-lesson-spot-head{justify-content:space-between;align-items:center;gap:var(--s-sm);margin-bottom:var(--s-sm);display:flex}.ripple-walk{gap:var(--s-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ripple-walk-step{border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--s-md);background:var(--surface-default)}.ripple-walk-where{align-items:center;gap:8px;margin-bottom:8px;display:flex}.ripple-walk-num{width:20px;height:20px;color:var(--presence);background:color-mix(in oklab, var(--presence) 14%, transparent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.ripple-walk-code,.ripple-spotlight-code{background:var(--surface-deep);border:1px solid var(--line);border-radius:var(--r-sm);max-width:100%;color:var(--text-primary);white-space:pre;tab-size:2;margin:0 0 8px;padding:10px 12px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;line-height:1.6;overflow-x:auto}.ripple-walk-explain{color:var(--text-secondary);text-wrap:pretty;margin:0;font-size:13.5px;line-height:1.6}.ripple-lesson-concepts{flex-direction:column;gap:10px;margin:0;display:flex}.ripple-lesson-concepts dt{color:var(--text-primary);font-size:13px;font-weight:700}.ripple-lesson-concepts dd{color:var(--text-secondary);text-wrap:pretty;margin:2px 0 0;font-size:13.5px;line-height:1.6}.ripple-lesson-pitfalls{color:var(--text-secondary);flex-direction:column;gap:6px;margin:0;padding-left:18px;font-size:13.5px;line-height:1.55;display:flex}.ripple-lesson-exercise .ripple-lesson-task{color:var(--text-primary);margin:0;font-size:14px;line-height:1.6}.ripple-lesson-hint{color:var(--text-muted);margin:6px 0 0;font-size:12.5px}.ripple-lesson-check{color:var(--insight);margin:6px 0 0;font-size:12.5px;font-weight:600}.ripple-lesson-regen{margin-top:var(--s-md);color:var(--text-secondary);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;background:0 0;align-self:flex-start;padding:4px 10px;font-size:11.5px}.ripple-lesson-ask{color:color-mix(in oklab, var(--presence) 75%, var(--text-secondary));background:color-mix(in oklab, var(--presence) 9%, transparent);border:1px solid color-mix(in oklab, var(--presence) 30%, transparent);border-radius:var(--r-full);cursor:pointer;transition:background var(--m-fast) var(--ease-out), color var(--m-fast) var(--ease-out);align-self:flex-start;margin-bottom:4px;padding:4px 12px;font-size:11.5px;font-weight:600}.ripple-lesson-ask:hover{color:var(--text-primary);background:color-mix(in oklab, var(--presence) 20%, transparent)}.ripple-lesson-regen:hover{color:var(--text-primary);background:var(--surface-elevated)}.ripple-spotlight{border:1px solid color-mix(in oklab, var(--presence) 32%, var(--line));border-radius:var(--r-md);padding:var(--s-md);background:color-mix(in oklab, var(--presence) 5%, var(--surface-default))}.ripple-spotlight-bar{align-items:center;gap:8px;margin-bottom:8px;display:flex}.ripple-spotlight-count{color:var(--presence);flex:none;font-size:11px;font-weight:700}.ripple-spotlight-x{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:none;margin-left:auto;font-size:13px}.ripple-spotlight-explain{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:14px;line-height:1.7}.ripple-spotlight-nav{gap:var(--s-sm);margin-top:var(--s-md);display:flex}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ripple-gate{gap:var(--s-lg);flex-direction:column;max-width:760px;display:flex}.ripple-gate-verdict{align-items:flex-start;gap:var(--s-md);padding:var(--s-md);border:1px solid color-mix(in oklab, var(--gate-accent) 32%, var(--line));border-left:3px solid var(--gate-accent);border-radius:var(--r-md);background:color-mix(in oklab, var(--gate-accent) 8%, var(--surface-elevated));display:flex}.ripple-gate-badge{border-radius:var(--r-sm);background:var(--gate-accent);color:var(--surface-default);letter-spacing:-.01em;white-space:nowrap;flex:none;align-self:center;padding:8px 16px;font-size:15px;font-weight:700}.ripple-gate-verdict-text{flex-direction:column;gap:5px;min-width:0;display:flex}.ripple-gate-summary{color:var(--text-secondary);margin:0;font-size:14.5px;line-height:1.4}.ripple-gate-summary strong{color:var(--gate-accent);font-size:17px;font-weight:700}.ripple-gate-rationale{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:13px;line-height:1.55}.ripple-gate-conditions{flex-direction:column;gap:10px;display:flex}.ripple-gate-cond-list{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-elevated);flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.ripple-gate-cond{padding:11px var(--s-md);align-items:center;gap:11px;display:flex}.ripple-gate-cond+.ripple-gate-cond{border-top:1px solid var(--line)}.ripple-gate-cond-pill{text-align:center;border-radius:var(--r-full);letter-spacing:.08em;width:64px;color:var(--cond-accent);background:color-mix(in oklab, var(--cond-accent) 14%, transparent);border:1px solid color-mix(in oklab, var(--cond-accent) 34%, transparent);flex:none;padding:3px 0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:700}.ripple-gate-cond-label{min-width:0;color:var(--text-primary);text-wrap:pretty;flex:1;font-size:13px;line-height:1.4}.ripple-gate-cond-actor{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-default);color:var(--text-muted);flex:none;padding:2px 9px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10.5px;font-weight:600}.ripple-gate-cond-actor[data-actor=human]{color:var(--presence);border-color:color-mix(in oklab, var(--presence) 32%, transparent);background:color-mix(in oklab, var(--presence) 12%, transparent)}.ripple-gate-requires{flex-direction:column;gap:10px;display:flex}.ripple-gate-req-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ripple-gate-chip{color:var(--text-primary);border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface-elevated-2);word-break:break-word;padding:4px 10px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px;font-weight:600}.ripple-gate-req-empty{color:var(--text-muted);font-size:12.5px}.ripple-gate-deploy{color:var(--text-muted);margin-left:auto;font-size:12px}.ripple-gate-deploy strong{color:var(--text-secondary);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px;font-weight:600}.ripple-gate-deploy strong[data-enforced=true]{color:var(--insight)}.ripple-gate-agents{flex-direction:column;gap:10px;display:flex}.ripple-gate-terminal{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-elevated-2);overflow:hidden}.ripple-gate-term-head{justify-content:space-between;align-items:center;gap:var(--s-2);padding:9px var(--s-md);border-bottom:1px solid var(--line);background:color-mix(in oklab, var(--text-muted) 6%, transparent);display:flex}.ripple-gate-term-prompt{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;font-weight:600;overflow:hidden}.ripple-gate-term-arg{color:var(--presence)}.ripple-gate-term-status{letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r-full);color:var(--danger);background:color-mix(in oklab, var(--danger) 14%, transparent);border:1px solid color-mix(in oklab, var(--danger) 32%, transparent);flex:none;padding:3px 10px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;font-weight:700}.ripple-gate-term-status[data-clear=true]{color:var(--insight);background:color-mix(in oklab, var(--insight) 14%, transparent);border-color:color-mix(in oklab, var(--insight) 32%, transparent)}.ripple-gate-term-body{padding:var(--s-md);color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;margin:0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12.5px;line-height:1.7;overflow-x:auto}.ripple-gate-term-line{display:block}.ripple-gate-term-brace,.ripple-gate-term-key,.ripple-gate-term-punct{color:var(--text-muted)}.ripple-gate-review{padding:var(--s-md);border:1px dashed var(--line);border-radius:var(--r-md);background:color-mix(in oklab, var(--surface-elevated) 60%, transparent);flex-direction:column;gap:8px;display:flex}.ripple-gate-review-head{justify-content:space-between;align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.ripple-gate-review-actions{flex-wrap:wrap;gap:7px;display:flex}.ripple-gate-rev-btn{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-elevated);color:var(--text-secondary);cursor:pointer;transition:background var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out), color var(--m-fast) var(--ease-out);padding:6px 13px;font-size:12px;font-weight:600}.ripple-gate-rev-btn:hover{background:var(--surface-elevated-2);color:var(--text-primary)}.ripple-gate-rev-btn[data-kind=approve]:hover{border-color:color-mix(in oklab, var(--insight) 40%, transparent);color:var(--insight)}.ripple-gate-rev-btn[data-kind=changes]:hover{border-color:color-mix(in oklab, var(--danger) 40%, transparent);color:var(--danger)}.ripple-gate-rev-btn[data-kind=comment]:hover{border-color:color-mix(in oklab, var(--presence) 40%, transparent);color:var(--presence)}.ripple-gate-rev-btn:focus-visible{outline:2px solid var(--presence);outline-offset:2px}.ripple-gate-review-note{color:var(--text-muted);text-wrap:pretty;margin:0;font-size:11.5px;line-height:1.5}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";var n=e(),r=t(),i={block:{label:`Blocked`,token:`var(--danger)`},watch:{label:`Watch`,token:`var(--warning)`},pass:{label:`Safe to ship`,token:`var(--insight)`}};function a(e){return e===`met`?`var(--insight)`:e===`failed`?`var(--danger)`:`var(--text-muted)`}function o(e){return e===`met`?`MET`:e===`failed`?`FAILED`:`PENDING`}function s(e){return e===`human`?`you`:`agent`}function c({model:e}){let{gate:t,pr:c}=e,l=i[t.decision],u=c.number??`pr`,[d,f]=(0,n.useState)(!1),p=(0,n.useRef)(void 0),m=(0,n.useCallback)(()=>{let e=[`${c.repo||`change`} ${c.number??``} — ${l.label}`.trim(),t.rationale,``,...t.conditions.map(e=>`[${o(e.status)}] ${e.label} (${s(e.actor)})`),t.requires.length?`\nRequires: ${t.requires.join(`, `)}`:``].join(`
|
|
2
|
+
`);navigator.clipboard?.writeText(e).then(()=>{f(!0),window.clearTimeout(p.current),p.current=window.setTimeout(()=>f(!1),1800)},()=>void 0)},[t,c,l]);(0,n.useEffect)(()=>()=>window.clearTimeout(p.current),[]);let h=(0,n.useMemo)(()=>[{key:`ship_safe`,value:String(t.shipSafe),valueColor:t.shipSafe?`var(--insight)`:`var(--danger)`},{key:`unacked_p0`,value:String(t.unackedP0),valueColor:t.unackedP0>0?`var(--danger)`:`var(--insight)`},{key:`requires`,value:`[${t.requires.map(e=>`"${e}"`).join(`, `)}]`,valueColor:`var(--insight)`},{key:`deploy_order`,value:`"${t.deployOrder}"`,valueColor:`var(--text-secondary)`}],[t.shipSafe,t.unackedP0,t.requires,t.deployOrder]),g=t.shipSafe?`clear`:`blocked`;return(0,r.jsxs)(`div`,{className:`ripple-gate`,children:[(0,r.jsxs)(`header`,{className:`ripple-gate-verdict`,style:{"--gate-accent":l.token},children:[(0,r.jsx)(`span`,{className:`ripple-gate-badge`,children:l.label}),(0,r.jsxs)(`div`,{className:`ripple-gate-verdict-text`,children:[(0,r.jsxs)(`p`,{className:`ripple-gate-summary`,children:[(0,r.jsx)(`strong`,{children:t.unackedP0}),` un-acknowledged P0 path`,t.unackedP0===1?``:`s`]}),(0,r.jsx)(`p`,{className:`ripple-gate-rationale`,children:t.rationale})]})]}),(0,r.jsxs)(`section`,{className:`ripple-gate-conditions`,"aria-label":`Merge conditions`,children:[(0,r.jsx)(`div`,{className:`ripple-eyebrow`,children:`Merge conditions`}),(0,r.jsx)(`ul`,{className:`ripple-gate-cond-list`,children:t.conditions.map(e=>(0,r.jsxs)(`li`,{className:`ripple-gate-cond`,style:{"--cond-accent":a(e.status)},children:[(0,r.jsx)(`span`,{className:`ripple-gate-cond-pill`,children:o(e.status)}),(0,r.jsx)(`span`,{className:`ripple-gate-cond-label`,children:e.label}),(0,r.jsx)(`span`,{className:`ripple-gate-cond-actor`,"data-actor":e.actor,title:e.actor===`human`?`A human must clear this`:`An agent's check clears this`,children:s(e.actor)})]},e.id))})]}),(0,r.jsxs)(`section`,{className:`ripple-gate-requires`,"aria-label":`Requires`,children:[(0,r.jsx)(`div`,{className:`ripple-eyebrow`,children:`Requires`}),(0,r.jsxs)(`div`,{className:`ripple-gate-req-row`,children:[t.requires.length>0?t.requires.map(e=>(0,r.jsx)(`code`,{className:`ripple-gate-chip`,children:e},e)):(0,r.jsx)(`span`,{className:`ripple-gate-req-empty`,children:`No external prerequisites.`}),(0,r.jsxs)(`span`,{className:`ripple-gate-deploy`,children:[`deploy order:`,` `,(0,r.jsx)(`strong`,{"data-enforced":t.deployOrder===`enforced`,children:t.deployOrder})]})]})]}),(0,r.jsxs)(`section`,{className:`ripple-gate-agents`,"aria-label":`For your agents`,children:[(0,r.jsx)(`div`,{className:`ripple-eyebrow`,children:`For your agents`}),(0,r.jsxs)(`div`,{className:`ripple-gate-terminal`,children:[(0,r.jsxs)(`div`,{className:`ripple-gate-term-head`,children:[(0,r.jsxs)(`span`,{className:`ripple-gate-term-prompt`,children:[`mavea.gate(`,(0,r.jsx)(`span`,{className:`ripple-gate-term-arg`,children:u}),`)`]}),(0,r.jsx)(`span`,{className:`ripple-gate-term-status`,"data-clear":t.shipSafe,children:g})]}),(0,r.jsxs)(`pre`,{className:`ripple-gate-term-body`,children:[(0,r.jsx)(`span`,{className:`ripple-gate-term-brace`,children:`{`}),h.map((e,t)=>(0,r.jsxs)(`span`,{className:`ripple-gate-term-line`,children:[` `,(0,r.jsx)(`span`,{className:`ripple-gate-term-key`,children:e.key}),(0,r.jsx)(`span`,{className:`ripple-gate-term-punct`,children:`: `}),(0,r.jsx)(`span`,{style:{color:e.valueColor},children:e.value}),t<h.length-1&&(0,r.jsx)(`span`,{className:`ripple-gate-term-punct`,children:`,`})]},e.key)),(0,r.jsx)(`span`,{className:`ripple-gate-term-brace`,children:`}`})]})]})]}),(0,r.jsxs)(`section`,{className:`ripple-gate-review`,"aria-label":`Read-only`,children:[(0,r.jsxs)(`div`,{className:`ripple-gate-review-head`,children:[(0,r.jsx)(`div`,{className:`ripple-eyebrow`,children:`Read-only`}),(0,r.jsx)(`div`,{className:`ripple-gate-review-actions`,children:(0,r.jsx)(`button`,{type:`button`,className:`ripple-gate-rev-btn`,"data-kind":`copy`,onClick:m,children:d?`Copied ✓`:`Copy this read`})})]}),(0,r.jsx)(`p`,{className:`ripple-gate-review-note`,children:`Ripple is read-only — it never posts, comments, approves, or merges. It reads your code and shows the consequence; any action is yours to take.`})]})]})}export{c as ShipGate};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{ht as n}from"./index-y8GL67bB.js";var r=e(),i=n(),a=t();function o(e){return e===`haunted`?`var(--danger)`:e===`hot`?`var(--warning)`:`var(--insight)`}function s(e){return e===`incident`?`var(--danger)`:`var(--presence)`}function c(e){let t=(0,i.c)(50),{model:n}=e,{hotspots:s}=n,[c,d]=(0,r.useState)(s[0]?.id??``),f;t[0]!==s||t[1]!==c?(f=s.find(e=>e.id===c)??s[0],t[0]=s,t[1]=c,t[2]=f):f=t[2];let p=f;if(!p){let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,a.jsxs)(`div`,{className:`ripple-hot-empty`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`The story behind any line`}),(0,a.jsx)(`p`,{children:`No load-bearing lines surfaced for this change.`})]}),t[3]=e):e=t[3],e}let m;t[4]===p.cls?m=t[5]:(m=o(p.cls),t[4]=p.cls,t[5]=m);let h=m,g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,a.jsx)(`div`,{className:`ripple-eyebrow ripple-hot-list-head`,children:`The story behind any line`}),t[6]=g):g=t[6];let _;if(t[7]!==p.id||t[8]!==s){let e;t[10]===p.id?e=t[11]:(e=e=>{let t=e.id===p.id;return(0,a.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t,className:`ripple-hot-item`,"data-active":t,onClick:()=>d(e.id),children:[(0,a.jsx)(`span`,{className:`ripple-hot-cls`,style:{color:o(e.cls),background:`color-mix(in oklab, ${o(e.cls)} 16%, transparent)`,borderColor:`color-mix(in oklab, ${o(e.cls)} 34%, transparent)`},children:e.cls}),(0,a.jsx)(`span`,{className:`ripple-hot-symbol`,children:e.symbol}),(0,a.jsx)(`span`,{className:`ripple-hot-file`,children:e.file})]},e.id)},t[10]=p.id,t[11]=e),_=s.map(e),t[7]=p.id,t[8]=s,t[9]=_}else _=t[9];let v;t[12]===_?v=t[13]:(v=(0,a.jsxs)(`div`,{className:`ripple-hot-list`,role:`tablist`,"aria-label":`Load-bearing lines`,children:[g,_]}),t[12]=_,t[13]=v);let y=`color-mix(in oklab, ${h} 14%, transparent)`,b=`color-mix(in oklab, ${h} 30%, transparent)`,x;t[14]!==h||t[15]!==y||t[16]!==b?(x={color:h,background:y,borderColor:b},t[14]=h,t[15]=y,t[16]=b,t[17]=x):x=t[17];let S;t[18]!==p.symbol||t[19]!==x?(S=(0,a.jsx)(`code`,{className:`ripple-hot-chip`,style:x,children:p.symbol}),t[18]=p.symbol,t[19]=x,t[20]=S):S=t[20];let C;t[21]===p.file?C=t[22]:(C=(0,a.jsx)(`span`,{className:`ripple-hot-detail-file`,children:p.file}),t[21]=p.file,t[22]=C);let w;t[23]!==C||t[24]!==S?(w=(0,a.jsxs)(`div`,{className:`ripple-hot-detail-head`,children:[S,C]}),t[23]=C,t[24]=S,t[25]=w):w=t[25];let T;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`Why this line exists`}),t[26]=T):T=t[26];let E;t[27]===p.whyExists?E=t[28]:(E=(0,a.jsxs)(`section`,{className:`ripple-hot-why`,children:[T,(0,a.jsx)(`p`,{children:p.whyExists})]}),t[27]=p.whyExists,t[28]=E);let D;t[29]!==h||t[30]!==p.incident?(D=p.incident&&(0,a.jsxs)(`section`,{className:`ripple-hot-incident`,style:{background:`color-mix(in oklab, ${h} 9%, transparent)`,borderColor:`color-mix(in oklab, ${h} 28%, transparent)`},children:[(0,a.jsxs)(`div`,{className:`ripple-hot-incident-head`,children:[(0,a.jsx)(`span`,{className:`ripple-hot-sev`,style:{background:h},children:p.incident.severity}),(0,a.jsx)(`code`,{className:`ripple-hot-incident-id`,children:p.incident.id})]}),(0,a.jsx)(`p`,{children:p.incident.text})]}),t[29]=h,t[30]=p.incident,t[31]=D):D=t[31];let O;t[32]===p.decisionTrail?O=t[33]:(O=p.decisionTrail&&p.decisionTrail.length>0&&(0,a.jsxs)(`section`,{className:`ripple-hot-trail`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`The decision trail`}),(0,a.jsx)(`ol`,{className:`ripple-hot-timeline`,children:p.decisionTrail.map(u)})]}),t[32]=p.decisionTrail,t[33]=O);let k;t[34]===p.ask?k=t[35]:(k=p.ask&&(0,a.jsxs)(`section`,{className:`ripple-hot-ask`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`Who to actually ask`}),(0,a.jsxs)(`div`,{className:`ripple-hot-ask-card`,children:[(0,a.jsx)(`span`,{className:`ripple-hot-avatar`,"aria-hidden":`true`,children:p.ask.name.charAt(0)}),(0,a.jsxs)(`div`,{className:`ripple-hot-ask-who`,children:[(0,a.jsx)(`span`,{className:`ripple-hot-ask-name`,children:p.ask.name}),(0,a.jsx)(`span`,{className:`ripple-hot-ask-team`,children:p.ask.team})]})]}),(0,a.jsx)(`p`,{className:`ripple-hot-ask-why`,children:p.ask.why}),p.ask.note&&(0,a.jsx)(`p`,{className:`ripple-hot-ask-note`,children:p.ask.note})]}),t[34]=p.ask,t[35]=k);let A;t[36]===p.riskSignals?A=t[37]:(A=p.riskSignals&&p.riskSignals.length>0&&(0,a.jsxs)(`section`,{className:`ripple-hot-signals`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`Risk signals`}),(0,a.jsx)(`dl`,{className:`ripple-hot-signal-grid`,children:p.riskSignals.map(l)})]}),t[36]=p.riskSignals,t[37]=A);let j;t[38]!==k||t[39]!==A?(j=(0,a.jsxs)(`div`,{className:`ripple-hot-cols`,children:[k,A]}),t[38]=k,t[39]=A,t[40]=j):j=t[40];let M;t[41]!==w||t[42]!==E||t[43]!==D||t[44]!==O||t[45]!==j?(M=(0,a.jsxs)(`div`,{className:`ripple-hot-detail`,role:`tabpanel`,children:[w,E,D,O,j]}),t[41]=w,t[42]=E,t[43]=D,t[44]=O,t[45]=j,t[46]=M):M=t[46];let N;return t[47]!==M||t[48]!==v?(N=(0,a.jsxs)(`div`,{className:`ripple-hot`,children:[v,M]}),t[47]=M,t[48]=v,t[49]=N):N=t[49],N}function l(e,t){return(0,a.jsxs)(`div`,{className:`ripple-hot-signal`,children:[(0,a.jsx)(`dt`,{children:e.k}),(0,a.jsx)(`dd`,{children:e.v})]},`${e.k}-${t}`)}function u(e,t){return(0,a.jsxs)(`li`,{className:`ripple-hot-event`,children:[(0,a.jsx)(`span`,{className:`ripple-hot-event-dot`,style:{background:s(e.kind)},"aria-hidden":`true`}),(0,a.jsxs)(`div`,{className:`ripple-hot-event-body`,children:[(0,a.jsxs)(`div`,{className:`ripple-hot-event-top`,children:[(0,a.jsx)(`time`,{className:`ripple-hot-event-date`,children:e.date}),(0,a.jsx)(`span`,{className:`ripple-hot-event-kind`,children:e.kind})]}),(0,a.jsx)(`span`,{className:`ripple-hot-event-label`,children:e.label})]})]},`${e.date}-${t}`)}export{c as ShipHotspots};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ripple-hot{gap:var(--s-lg);grid-template-columns:minmax(220px,320px) 1fr;align-items:start;display:grid}@media (width<=860px){.ripple-hot{grid-template-columns:1fr}}.ripple-hot-list{flex-direction:column;gap:6px;min-width:0;display:flex}.ripple-hot-list-head{margin-bottom:4px}.ripple-hot-item{text-align:left;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-elevated);cursor:pointer;width:100%;min-width:0;transition:background var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out);grid-template-columns:auto 1fr;grid-template-areas:"cls symbol""cls file";align-items:center;gap:2px 10px;padding:11px 12px;display:grid}.ripple-hot-item:hover{background:var(--surface-elevated-2)}.ripple-hot-item[data-active=true]{border-color:color-mix(in oklab, var(--presence) 38%, transparent);background:color-mix(in oklab, var(--presence) 12%, var(--surface-elevated))}.ripple-hot-cls{letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r-full);white-space:nowrap;border:1px solid #0000;grid-area:cls;align-self:center;padding:3px 8px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:8px;font-weight:700}.ripple-hot-symbol{min-width:0;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;grid-area:symbol;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;font-weight:600;overflow:hidden}.ripple-hot-file{min-width:0;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;grid-area:file;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;overflow:hidden}.ripple-hot-detail{gap:var(--s-md);flex-direction:column;min-width:0;display:flex}.ripple-hot-detail-head{flex-wrap:wrap;align-items:center;gap:10px;padding-bottom:2px;display:flex}.ripple-hot-chip{border-radius:var(--r-sm);word-break:break-word;border:1px solid #0000;max-width:100%;padding:5px 11px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:13px;font-weight:600}.ripple-hot-detail-file{color:var(--text-muted);overflow-wrap:anywhere;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px}.ripple-hot-why{flex-direction:column;gap:7px;display:flex}.ripple-hot-why p{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:14.5px;line-height:1.55}.ripple-hot-incident{border-radius:var(--r-md);padding:var(--s-2) 14px;border:1px solid #0000;flex-direction:column;gap:8px;display:flex}.ripple-hot-incident-head{align-items:center;gap:9px;display:flex}.ripple-hot-sev{letter-spacing:.06em;color:var(--surface-deep);border-radius:var(--r-full);padding:2px 9px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:8.5px;font-weight:700}.ripple-hot-incident-id{color:var(--text-secondary);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-weight:600}.ripple-hot-incident p{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:13px;line-height:1.5}.ripple-hot-trail{flex-direction:column;gap:11px;display:flex}.ripple-hot-timeline{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ripple-hot-event{gap:13px;padding-bottom:14px;display:flex;position:relative}.ripple-hot-event:last-child{padding-bottom:0}.ripple-hot-event:before{content:"";background:var(--line);width:1px;position:absolute;top:13px;bottom:0;left:4px}.ripple-hot-event:last-child:before{display:none}.ripple-hot-event-dot{z-index:1;width:9px;height:9px;box-shadow:0 0 0 3px var(--surface-default);border-radius:50%;flex:none;margin-top:4px;position:relative}.ripple-hot-event-body{flex-direction:column;gap:2px;min-width:0;display:flex}.ripple-hot-event-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ripple-hot-event-date{color:var(--text-muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px}.ripple-hot-event-kind{letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);background:var(--surface-elevated-2);border-radius:var(--r-full);padding:2px 7px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:8px;font-weight:700}.ripple-hot-event-label{color:var(--text-primary);text-wrap:pretty;font-size:13px;line-height:1.45}.ripple-hot-cols{gap:var(--s-md);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (width<=640px){.ripple-hot-cols{grid-template-columns:1fr}}.ripple-hot-ask,.ripple-hot-signals{background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;gap:9px;min-width:0;padding:14px;display:flex}.ripple-hot-ask-card{align-items:center;gap:11px;min-width:0;display:flex}.ripple-hot-avatar{width:36px;height:36px;color:var(--surface-deep);background:linear-gradient(135deg, var(--presence), color-mix(in oklab, var(--presence) 55%, var(--insight)));border-radius:50%;flex:none;place-items:center;font-size:15px;font-weight:700;display:grid}.ripple-hot-ask-who{flex-direction:column;gap:1px;min-width:0;display:flex}.ripple-hot-ask-name{color:var(--text-primary);overflow-wrap:anywhere;font-size:14px;font-weight:700}.ripple-hot-ask-team{color:var(--text-secondary);overflow-wrap:anywhere;font-size:11px}.ripple-hot-ask-why{color:var(--text-secondary);text-wrap:pretty;margin:0;font-size:12.5px;line-height:1.5}.ripple-hot-ask-note{color:var(--text-primary);background:color-mix(in oklab, var(--warning) 11%, transparent);border:1px solid color-mix(in oklab, var(--warning) 28%, transparent);border-radius:var(--r-sm);text-wrap:pretty;margin:0;padding:9px 11px;font-size:12px;line-height:1.45}.ripple-hot-signal-grid{flex-direction:column;margin:0;display:flex}.ripple-hot-signal{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;display:flex}.ripple-hot-signal:first-child{border-top:0;padding-top:0}.ripple-hot-signal dt{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);flex:none;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;font-weight:600}.ripple-hot-signal dd{text-align:right;color:var(--text-primary);text-wrap:pretty;margin:0;font-size:12.5px;font-weight:500}.ripple-hot-empty{color:var(--text-secondary);flex-direction:column;gap:8px;display:flex}.ripple-hot-empty p{margin:0;font-size:14px;line-height:1.5}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ripple-inc{gap:var(--s-lg);flex-direction:column;max-width:760px;display:flex}.ripple-inc-empty{color:var(--text-secondary);font-size:14px}.ripple-inc-symptom{align-items:flex-start;gap:var(--s-2);background:color-mix(in oklab, var(--danger) 10%, transparent);border:1px solid color-mix(in oklab, var(--danger) 30%, transparent);border-radius:var(--r-md);padding:var(--s-md);display:flex}.ripple-inc-sev{color:#fff;background:var(--danger);border-radius:var(--r-full);flex:none;padding:3px 9px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:700}.ripple-inc-symptom-line{color:var(--text-primary);margin-top:3px;font-size:17px;font-weight:600;line-height:1.35}.ripple-inc-service{color:var(--text-muted);margin-top:4px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px}.ripple-inc-block{gap:var(--s-2);flex-direction:column;display:flex}.ripple-inc-chain{flex-direction:column;display:flex}.ripple-inc-hop{gap:11px;padding-bottom:14px;display:flex;position:relative}.ripple-inc-hop:not(:last-child):before{content:"";background:var(--line);width:2px;position:absolute;top:14px;bottom:0;left:5px}.ripple-inc-hop-dot{border:2px solid var(--danger);background:var(--surface-default);z-index:1;border-radius:50%;flex:none;width:12px;height:12px;margin-top:2px}.ripple-inc-hop-ctx{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:600}.ripple-inc-hop-label{color:var(--text-primary);margin-top:2px;font-size:13.5px}.ripple-inc-cause p{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:15px;line-height:1.55}.ripple-inc-rollback{gap:var(--s-2);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-md);flex-direction:column;display:flex}.ripple-inc-rollback-head{justify-content:space-between;align-items:center;gap:var(--s-2);display:flex}.ripple-inc-steps{flex-direction:column;gap:6px;margin:0;padding-left:20px;display:flex}.ripple-inc-steps li{color:var(--text-primary);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12.5px;line-height:1.5}.ripple-inc-note{color:var(--text-muted);font-size:11.5px}.ripple-inc-people{gap:var(--s-sm);flex-direction:column;display:flex}.ripple-inc-person{background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);align-items:flex-start;gap:11px;padding:11px 13px;display:flex}.ripple-inc-avatar{background:linear-gradient(135deg, var(--presence), var(--presence-deep));color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:flex}.ripple-inc-person-name{color:var(--text-primary);font-size:13.5px;font-weight:700}.ripple-inc-person-team{color:var(--text-secondary);font-size:11px}.ripple-inc-person-why{color:var(--text-muted);margin-top:2px;font-size:11.5px}.ripple-inc-timeline{flex-direction:column;gap:7px;display:flex}.ripple-inc-tl-row{gap:12px;font-size:12.5px;display:flex}.ripple-inc-tl-time{color:var(--text-muted);text-align:right;flex:none;width:64px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px}.ripple-inc-tl-label{color:var(--text-primary)}.ripple-inc-evidence{color:var(--text-muted);border-top:1px solid var(--line);padding-top:var(--s-2);font-size:11.5px;line-height:1.5}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{ht as n}from"./index-y8GL67bB.js";var r=e(),i=n(),a=t();function o(e){let t=(0,i.c)(41),{model:n}=e,o=n.incident,[p,m]=(0,r.useState)(!1),h=(0,r.useRef)(void 0),g;t[0]===o?g=t[1]:(g=()=>{o?.rollback.length&&navigator.clipboard?.writeText(o.rollback.map(f).join(`
|
|
2
|
+
`)).then(()=>{m(!0),window.clearTimeout(h.current),h.current=window.setTimeout(()=>m(!1),1800)},d)},t[0]=o,t[1]=g);let _=g,v,y;if(t[2]===Symbol.for(`react.memo_cache_sentinel`)?(v=()=>()=>window.clearTimeout(h.current),y=[],t[2]=v,t[3]=y):(v=t[2],y=t[3]),(0,r.useEffect)(v,y),!o){let e;return t[4]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,a.jsx)(`div`,{className:`ripple-inc-empty`,children:`No incident loaded.`}),t[4]=e):e=t[4],e}let b;t[5]===o.severity?b=t[6]:(b=o.severity&&(0,a.jsx)(`span`,{className:`ripple-inc-sev`,children:o.severity}),t[5]=o.severity,t[6]=b);let x;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`The page`}),t[7]=x):x=t[7];let S;t[8]===o.symptom?S=t[9]:(S=(0,a.jsx)(`div`,{className:`ripple-inc-symptom-line`,children:o.symptom}),t[8]=o.symptom,t[9]=S);let C;t[10]===o.service?C=t[11]:(C=o.service&&(0,a.jsx)(`div`,{className:`ripple-inc-service`,children:o.service}),t[10]=o.service,t[11]=C);let w;t[12]!==S||t[13]!==C?(w=(0,a.jsxs)(`div`,{className:`ripple-inc-symptom-text`,children:[x,S,C]}),t[12]=S,t[13]=C,t[14]=w):w=t[14];let T;t[15]!==b||t[16]!==w?(T=(0,a.jsxs)(`div`,{className:`ripple-inc-symptom`,children:[b,w]}),t[15]=b,t[16]=w,t[17]=T):T=t[17];let E;t[18]===o.chain?E=t[19]:(E=o.chain.length>0&&(0,a.jsxs)(`div`,{className:`ripple-inc-block`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`The trace back`}),(0,a.jsx)(`div`,{className:`ripple-inc-chain`,children:o.chain.map(u)})]}),t[18]=o.chain,t[19]=E);let D;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`Likely root cause`}),t[20]=D):D=t[20];let O;t[21]===o.rootCause?O=t[22]:(O=(0,a.jsxs)(`div`,{className:`ripple-inc-cause`,children:[D,(0,a.jsx)(`p`,{children:o.rootCause})]}),t[21]=o.rootCause,t[22]=O);let k;t[23]!==p||t[24]!==_||t[25]!==o.rollback?(k=o.rollback.length>0&&(0,a.jsxs)(`div`,{className:`ripple-inc-rollback`,children:[(0,a.jsxs)(`div`,{className:`ripple-inc-rollback-head`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`Rollback — a draft you run`}),(0,a.jsx)(`button`,{type:`button`,className:`ripple-track-btn`,onClick:_,children:p?`Copied ✓`:`Copy steps`})]}),(0,a.jsx)(`ol`,{className:`ripple-inc-steps`,children:o.rollback.map(l)}),(0,a.jsx)(`div`,{className:`ripple-inc-note`,children:`Ripple never reverts, deploys, or pages — this is yours to run.`})]}),t[23]=p,t[24]=_,t[25]=o.rollback,t[26]=k):k=t[26];let A;t[27]===o.whoToWake?A=t[28]:(A=o.whoToWake.length>0&&(0,a.jsxs)(`div`,{className:`ripple-inc-block`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`Who to wake`}),(0,a.jsx)(`div`,{className:`ripple-inc-people`,children:o.whoToWake.map(c)})]}),t[27]=o.whoToWake,t[28]=A);let j;t[29]===o.timeline?j=t[30]:(j=o.timeline.length>0&&(0,a.jsxs)(`div`,{className:`ripple-inc-block`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`War-room timeline`}),(0,a.jsx)(`div`,{className:`ripple-inc-timeline`,children:o.timeline.map(s)})]}),t[29]=o.timeline,t[30]=j);let M;t[31]===o.evidence?M=t[32]:(M=o.evidence&&(0,a.jsx)(`div`,{className:`ripple-inc-evidence`,children:o.evidence}),t[31]=o.evidence,t[32]=M);let N;return t[33]!==E||t[34]!==O||t[35]!==k||t[36]!==A||t[37]!==j||t[38]!==M||t[39]!==T?(N=(0,a.jsxs)(`div`,{className:`ripple-inc`,children:[T,E,O,k,A,j,M]}),t[33]=E,t[34]=O,t[35]=k,t[36]=A,t[37]=j,t[38]=M,t[39]=T,t[40]=N):N=t[40],N}function s(e,t){return(0,a.jsxs)(`div`,{className:`ripple-inc-tl-row`,children:[(0,a.jsx)(`span`,{className:`ripple-inc-tl-time`,children:e.time}),(0,a.jsx)(`span`,{className:`ripple-inc-tl-label`,children:e.label})]},t)}function c(e,t){return(0,a.jsxs)(`div`,{className:`ripple-inc-person`,children:[(0,a.jsx)(`span`,{className:`ripple-inc-avatar`,"aria-hidden":`true`,children:e.name.charAt(0)}),(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`div`,{className:`ripple-inc-person-name`,children:e.name}),(0,a.jsx)(`div`,{className:`ripple-inc-person-team`,children:e.team}),(0,a.jsx)(`div`,{className:`ripple-inc-person-why`,children:e.why})]})]},t)}function l(e,t){return(0,a.jsx)(`li`,{children:e},t)}function u(e,t){return(0,a.jsxs)(`div`,{className:`ripple-inc-hop`,children:[(0,a.jsx)(`span`,{className:`ripple-inc-hop-dot`,"aria-hidden":`true`}),(0,a.jsxs)(`div`,{className:`ripple-inc-hop-body`,children:[(0,a.jsx)(`div`,{className:`ripple-inc-hop-ctx`,children:e.context}),(0,a.jsx)(`div`,{className:`ripple-inc-hop-label`,children:e.label})]})]},t)}function d(){}function f(e,t){return`${t+1}. ${e}`}export{o as ShipIncident};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ripple-mig{gap:var(--s-xl);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (width<=900px){.ripple-mig{grid-template-columns:1fr}}.ripple-mig-none{color:var(--text-muted);margin:0;font-size:13px}.ripple-mig-left,.ripple-mig-right{gap:var(--s-md);flex-direction:column;min-width:0;display:flex}.ripple-mig-code{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-default);overflow:hidden}.ripple-mig-code-bar{justify-content:space-between;align-items:center;gap:var(--s-2);padding:9px var(--s-2);border-bottom:1px solid var(--line);background:var(--surface-elevated);display:flex}.ripple-mig-code-file{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px;overflow:hidden}.ripple-mig-code-tag{color:var(--text-muted);flex:none;font-size:10.5px;font-style:italic}.ripple-mig-code-body{padding:var(--s-2) 0;flex-direction:column;display:flex}.ripple-mig-code-row{padding:2px var(--s-md);background:color-mix(in oklab, var(--insight) 7%, transparent);align-items:flex-start;gap:10px;display:flex}.ripple-mig-code-gutter{color:var(--insight);-webkit-user-select:none;user-select:none;flex:none;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12.5px;line-height:1.7}.ripple-mig-code-line{color:var(--text-primary);white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12.5px;line-height:1.7}.ripple-mig-stats{gap:var(--s-2);grid-template-columns:1fr 1fr;display:grid}.ripple-mig-stat{padding:var(--s-md);border:1px solid color-mix(in oklab, var(--danger) 30%, transparent);border-radius:var(--r-md);background:color-mix(in oklab, var(--danger) 9%, transparent);flex-direction:column;gap:4px;min-width:0;display:flex}.ripple-mig-stat-num{letter-spacing:-.01em;color:var(--danger);overflow-wrap:anywhere;font-size:26px;font-weight:700;line-height:1.15}.ripple-mig-stat-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;font-weight:600}.ripple-mig-explain{padding:var(--s-md);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-elevated);flex-direction:column;gap:9px;display:flex}.ripple-mig-explain-body{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:13px;line-height:1.55}.ripple-mig-inline{color:var(--danger);background:color-mix(in oklab, var(--danger) 12%, transparent);border-radius:var(--r-sm);white-space:nowrap;padding:1px 6px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px}.ripple-mig-steps{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ripple-mig-step{gap:var(--s-2);min-width:0;display:flex}.ripple-mig-step-rail{flex:none;justify-content:center;width:13px;display:flex;position:relative}.ripple-mig-step-rail:before{content:"";background:color-mix(in oklab, var(--insight) 40%, transparent);width:1.5px;position:absolute;top:7px;bottom:0}.ripple-mig-step:last-child .ripple-mig-step-rail:before{display:none}.ripple-mig-step-dot{z-index:1;background:var(--insight);width:11px;height:11px;box-shadow:0 0 0 4px color-mix(in oklab, var(--insight) 18%, transparent);border-radius:50%;margin-top:4px;position:relative}.ripple-mig-step-body{padding-bottom:var(--s-md);flex-direction:column;gap:3px;min-width:0;display:flex}.ripple-mig-step:last-child .ripple-mig-step-body{padding-bottom:0}.ripple-mig-step-title{color:var(--text-primary);text-wrap:pretty;font-size:13.5px;font-weight:600;line-height:1.3}.ripple-mig-step-detail{color:var(--text-secondary);text-wrap:pretty;font-size:12.5px;line-height:1.5}.ripple-mig-tell{margin-top:var(--s-2);padding:var(--s-2) var(--s-md);border:1px solid var(--line);border-left:2px solid color-mix(in oklab, var(--warning) 50%, transparent);border-radius:var(--r-sm);background:color-mix(in oklab, var(--warning) 7%, transparent);align-items:flex-start;gap:10px;display:flex}.ripple-mig-tell-dot{background:var(--warning);border-radius:50%;flex:none;width:7px;height:7px;margin-top:6px}.ripple-mig-tell-body{flex-direction:column;gap:3px;min-width:0;display:flex}.ripple-mig-tell-label{letter-spacing:.1em;text-transform:uppercase;color:var(--warning);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;font-weight:600}.ripple-mig-tell-text{color:var(--text-secondary);text-wrap:pretty;font-size:12.5px;line-height:1.5}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-DaSxXjOY.js";import{ht as t}from"./index-y8GL67bB.js";var n=t(),r=e();function i(e){let t=(0,n.c)(51),{model:i}=e,{migration:s}=i;if(!s){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,r.jsx)(`p`,{className:`ripple-mig-none`,children:`No schema migration in this change.`}),t[0]=e):e=t[0],e}let{file:c,sql:l,rows:u,lockCost:d,expand:f,note:p}=s,m;if(t[1]!==l){let e=(l??[]).join(` `);m=/\bnot\s+null\b/i.test(e)&&/\bdefault\b/i.test(e),t[1]=l,t[2]=m}else m=t[2];let h=m,g;t[3]===u?g=t[4]:(g=!!u&&/\d/.test(u),t[3]=u,t[4]=g);let _=g,v;t[5]===c?v=t[6]:(v=(0,r.jsx)(`span`,{className:`ripple-mig-code-file`,children:c}),t[5]=c,t[6]=v);let y;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,r.jsx)(`span`,{className:`ripple-mig-code-tag`,children:`looks harmless`}),t[7]=y):y=t[7];let b;t[8]===v?b=t[9]:(b=(0,r.jsxs)(`div`,{className:`ripple-mig-code-bar`,children:[v,y]}),t[8]=v,t[9]=b);let x;t[10]===l?x=t[11]:(x=l&&l.length>0&&(0,r.jsx)(`div`,{className:`ripple-mig-code-body`,"aria-label":`The migration SQL`,children:l.map(o)}),t[10]=l,t[11]=x);let S;t[12]!==b||t[13]!==x?(S=(0,r.jsxs)(`div`,{className:`ripple-mig-code`,children:[b,x]}),t[12]=b,t[13]=x,t[14]=S):S=t[14];let C;t[15]===u?C=t[16]:(C=u&&(0,r.jsxs)(`div`,{className:`ripple-mig-stat`,children:[(0,r.jsx)(`span`,{className:`ripple-mig-stat-num`,children:u}),(0,r.jsx)(`span`,{className:`ripple-mig-stat-label`,children:`rows`})]}),t[15]=u,t[16]=C);let w;t[17]===d?w=t[18]:(w=(0,r.jsx)(`span`,{className:`ripple-mig-stat-num`,children:d}),t[17]=d,t[18]=w);let T;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,r.jsx)(`span`,{className:`ripple-mig-stat-label`,children:`the cost`}),t[19]=T):T=t[19];let E;t[20]===w?E=t[21]:(E=(0,r.jsxs)(`div`,{className:`ripple-mig-stat`,children:[w,T]}),t[20]=w,t[21]=E);let D;t[22]!==E||t[23]!==C?(D=(0,r.jsxs)(`div`,{className:`ripple-mig-stats`,children:[C,E]}),t[22]=E,t[23]=C,t[24]=D):D=t[24];let O=h?`Why this locks writes`:`Why this is worth a second look`,k;t[25]===O?k=t[26]:(k=(0,r.jsx)(`div`,{className:`ripple-eyebrow`,children:O}),t[25]=O,t[26]=k);let A;t[27]!==h||t[28]!==u||t[29]!==_?(A=(0,r.jsx)(`p`,{className:`ripple-mig-explain-body`,children:h?(0,r.jsxs)(r.Fragment,{children:[`Adding a `,(0,r.jsx)(`code`,{className:`ripple-mig-inline`,children:`NOT NULL DEFAULT`}),` column forces the database to rewrite`,` `,_?`every one of the ${u} rows`:`every existing row`,` behind an exclusive lock — until that finishes, nothing can write to this table.`]}):(0,r.jsxs)(r.Fragment,{children:[`A schema change like this can hold an exclusive lock on the table while it runs, blocking writes until it’s done — whether that’s instant or an outage comes down to `,_?`its ${u} rows`:`how large the real table is`,`.`]})}),t[27]=h,t[28]=u,t[29]=_,t[30]=A):A=t[30];let j;t[31]!==k||t[32]!==A?(j=(0,r.jsxs)(`aside`,{className:`ripple-mig-explain`,children:[k,A]}),t[31]=k,t[32]=A,t[33]=j):j=t[33];let M;t[34]!==D||t[35]!==j||t[36]!==S?(M=(0,r.jsxs)(`div`,{className:`ripple-mig-left`,children:[S,D,j]}),t[34]=D,t[35]=j,t[36]=S,t[37]=M):M=t[37];let N;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,r.jsx)(`div`,{className:`ripple-eyebrow`,children:`Ship it this way instead — expand / contract`}),t[38]=N):N=t[38];let P;t[39]===f?P=t[40]:(P=f.map(a),t[39]=f,t[40]=P);let F;t[41]===P?F=t[42]:(F=(0,r.jsx)(`ol`,{className:`ripple-mig-steps`,children:P}),t[41]=P,t[42]=F);let I;t[43]===p?I=t[44]:(I=p&&(0,r.jsxs)(`div`,{className:`ripple-mig-tell`,children:[(0,r.jsx)(`span`,{className:`ripple-mig-tell-dot`,"aria-hidden":`true`}),(0,r.jsxs)(`div`,{className:`ripple-mig-tell-body`,children:[(0,r.jsx)(`span`,{className:`ripple-mig-tell-label`,children:`And tell the team:`}),(0,r.jsx)(`span`,{className:`ripple-mig-tell-text`,children:p})]})]}),t[43]=p,t[44]=I);let L;t[45]!==F||t[46]!==I?(L=(0,r.jsxs)(`div`,{className:`ripple-mig-right`,children:[N,F,I]}),t[45]=F,t[46]=I,t[47]=L):L=t[47];let R;return t[48]!==M||t[49]!==L?(R=(0,r.jsxs)(`div`,{className:`ripple-mig`,children:[M,L]}),t[48]=M,t[49]=L,t[50]=R):R=t[50],R}function a(e,t){return(0,r.jsxs)(`li`,{className:`ripple-mig-step`,children:[(0,r.jsx)(`span`,{className:`ripple-mig-step-rail`,"aria-hidden":`true`,children:(0,r.jsx)(`span`,{className:`ripple-mig-step-dot`})}),(0,r.jsxs)(`div`,{className:`ripple-mig-step-body`,children:[(0,r.jsx)(`span`,{className:`ripple-mig-step-title`,children:e.title}),(0,r.jsx)(`span`,{className:`ripple-mig-step-detail`,children:e.detail})]})]},t)}function o(e,t){return(0,r.jsxs)(`div`,{className:`ripple-mig-code-row`,children:[(0,r.jsx)(`span`,{className:`ripple-mig-code-gutter`,"aria-hidden":`true`,children:`+`}),(0,r.jsx)(`code`,{className:`ripple-mig-code-line`,children:e})]},t)}export{i as ShipMigration};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ripple-onb{gap:var(--s-lg);flex-direction:column;display:flex}.ripple-onb-head{align-items:center;gap:var(--s-2) var(--s-md);flex-wrap:wrap;display:flex}.ripple-onb-pill{letter-spacing:.14em;text-transform:uppercase;color:var(--insight);background:color-mix(in oklab, var(--insight) 13%, transparent);border:1px solid color-mix(in oklab, var(--insight) 30%, transparent);border-radius:var(--r-sm);padding:4px 10px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;font-weight:700}.ripple-onb-title{letter-spacing:-.01em;color:var(--text-primary);text-wrap:pretty;margin:0;font-size:20px;font-weight:700}.ripple-onb-panes{gap:var(--s-lg);grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;display:grid}@media (width<=860px){.ripple-onb-panes{grid-template-columns:1fr}}.ripple-onb-list{gap:var(--s-2);flex-direction:column;min-width:0;display:flex}.ripple-onb-item{text-align:left;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-elevated);cursor:pointer;transition:border-color var(--m-fast) var(--ease-out), background var(--m-fast) var(--ease-out);flex-direction:column;gap:4px;padding:12px 14px;display:flex;overflow:hidden}.ripple-onb-item:hover{background:var(--surface-elevated-2)}.ripple-onb-item[data-active=true]{border-color:color-mix(in oklab, var(--presence) 42%, transparent);background:color-mix(in oklab, var(--presence) 13%, transparent)}.ripple-onb-item-name{color:var(--text-primary);font-size:14px;font-weight:700;line-height:1.25}.ripple-onb-item-purpose{color:var(--text-secondary);text-wrap:pretty;font-size:12px;line-height:1.45}.ripple-onb-item-foot{flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-top:2px;display:flex}.ripple-onb-item-owner{color:var(--text-muted);font-size:10.5px}.ripple-onb-item-health{color:var(--text-muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px}.ripple-onb-detail{gap:var(--s-md);min-width:0;padding:var(--s-md) var(--s-lg);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-default);flex-direction:column;display:flex;overflow:hidden}.ripple-onb-detail-head{flex-direction:column;gap:6px;display:flex}.ripple-onb-detail-name{letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:19px;font-weight:700}.ripple-onb-detail-purpose{color:var(--text-secondary);text-wrap:pretty;margin:0;font-size:13px;line-height:1.5}.ripple-onb-detail-meta{flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:2px;display:flex}.ripple-onb-entry{color:var(--presence);background:color-mix(in oklab, var(--presence) 11%, transparent);border-radius:var(--r-sm);text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;padding:2px 8px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px;overflow:hidden}.ripple-onb-detail-owner{color:var(--text-muted);font-size:11.5px}.ripple-onb-explain{padding:12px var(--s-md);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-elevated);flex-direction:column;gap:7px;display:flex}.ripple-onb-explain p{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:13px;line-height:1.55}.ripple-onb-group{flex-direction:column;gap:8px;display:flex}.ripple-onb-chips{flex-wrap:wrap;gap:7px;display:flex}.ripple-onb-chip{color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);overflow-wrap:anywhere;max-width:100%;padding:4px 9px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px}.ripple-onb-chip-go{color:var(--presence);background:color-mix(in oklab, var(--presence) 11%, transparent);border-color:color-mix(in oklab, var(--presence) 26%, transparent)}.ripple-onb-foot{gap:var(--s-lg);border-top:1px solid var(--line);padding-top:var(--s-lg);flex-direction:column;display:flex}.ripple-onb-life-top{margin-bottom:var(--s-md);padding-bottom:var(--s-md);border-bottom:1px solid var(--line)}.ripple-onb-week{gap:var(--s-2);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:10px 0 0;padding:0;list-style:none;display:grid}.ripple-onb-step{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-elevated);align-items:flex-start;gap:11px;padding:12px 14px;display:flex;overflow:hidden}.ripple-onb-step-num{width:24px;height:24px;color:var(--presence);background:color-mix(in oklab, var(--presence) 14%, transparent);border:1px solid color-mix(in oklab, var(--presence) 30%, transparent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;font-weight:700;display:flex}.ripple-onb-step-body{flex-direction:column;gap:3px;min-width:0;display:flex}.ripple-onb-step-team{color:var(--text-muted)}.ripple-onb-step-title{color:var(--text-primary);text-wrap:pretty;font-size:13px;font-weight:700;line-height:1.25}.ripple-onb-step-sub{color:var(--text-secondary);text-wrap:pretty;font-size:11.5px;line-height:1.45}.ripple-onb-step-file{color:var(--text-muted);overflow-wrap:anywhere;margin-top:1px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10.5px}.ripple-onb-life{flex-direction:column;gap:10px;display:flex}.ripple-onb-trace{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ripple-onb-trace-step{align-items:center;gap:8px;display:inline-flex}.ripple-onb-chevron{color:var(--text-muted);font-size:14px;line-height:1}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{ht as n}from"./index-y8GL67bB.js";var r=e(),i=n(),a=t();function o(e){let t=(0,i.c)(24),{model:n}=e,{modules:o,onboarding:d}=n,[f,p]=(0,r.useState)(o[0]?.id),m;t[0]!==o||t[1]!==f?(m=o.find(e=>e.id===f)??o[0],t[0]=o,t[1]=f,t[2]=m):m=t[2];let h=m,g;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,a.jsxs)(`header`,{className:`ripple-onb-head`,children:[(0,a.jsx)(`span`,{className:`ripple-onb-pill`,children:`No PR needed`}),(0,a.jsx)(`h2`,{className:`ripple-onb-title`,children:`Understand the whole service`})]}),t[3]=g):g=t[3];let _;t[4]===d?_=t[5]:(_=d&&d.requestLife.length>0&&(0,a.jsxs)(`section`,{className:`ripple-onb-life ripple-onb-life-top`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`A request’s life`}),(0,a.jsx)(`div`,{className:`ripple-onb-trace`,children:d.requestLife.map((e,t)=>(0,a.jsxs)(`span`,{className:`ripple-onb-trace-step`,children:[(0,a.jsx)(`code`,{className:`ripple-onb-chip`,children:e}),t<d.requestLife.length-1&&(0,a.jsx)(`span`,{className:`ripple-onb-chevron`,"aria-hidden":`true`,children:`›`})]},`${e}-${t}`))})]}),t[4]=d,t[5]=_);let v;if(t[6]!==o||t[7]!==h?.id){let e;t[9]===h?.id?e=t[10]:(e=e=>{let t=e.id===h?.id;return(0,a.jsxs)(`button`,{type:`button`,className:`ripple-onb-item`,"data-active":t,"aria-pressed":t,onClick:()=>p(e.id),children:[(0,a.jsx)(`span`,{className:`ripple-onb-item-name`,children:e.name}),(0,a.jsx)(`span`,{className:`ripple-onb-item-purpose`,children:e.purpose}),(0,a.jsxs)(`span`,{className:`ripple-onb-item-foot`,children:[(0,a.jsx)(`span`,{className:`ripple-onb-item-owner`,children:e.owner}),(0,a.jsx)(`span`,{className:`ripple-onb-item-health`,children:e.health})]})]},e.id)},t[9]=h?.id,t[10]=e),v=o.map(e),t[6]=o,t[7]=h?.id,t[8]=v}else v=t[8];let y;t[11]===v?y=t[12]:(y=(0,a.jsx)(`nav`,{className:`ripple-onb-list`,"aria-label":`Service modules`,children:v}),t[11]=v,t[12]=y);let b;t[13]===h?b=t[14]:(b=h&&(0,a.jsxs)(`article`,{className:`ripple-onb-detail`,"aria-live":`polite`,children:[(0,a.jsxs)(`div`,{className:`ripple-onb-detail-head`,children:[(0,a.jsx)(`h3`,{className:`ripple-onb-detail-name`,children:h.name}),(0,a.jsx)(`p`,{className:`ripple-onb-detail-purpose`,children:h.purpose}),(0,a.jsxs)(`div`,{className:`ripple-onb-detail-meta`,children:[(0,a.jsx)(`code`,{className:`ripple-onb-entry`,children:h.entry}),(0,a.jsxs)(`span`,{className:`ripple-onb-detail-owner`,children:[h.owner,` · `,h.health]})]})]}),(0,a.jsxs)(`div`,{className:`ripple-onb-explain`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`Mavéa explains`}),(0,a.jsx)(`p`,{children:h.explain})]}),h.startHere.length>0&&(0,a.jsxs)(`section`,{className:`ripple-onb-group`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`Start here`}),(0,a.jsx)(`div`,{className:`ripple-onb-chips`,children:h.startHere.map(u)})]}),h.depends.length>0&&(0,a.jsxs)(`section`,{className:`ripple-onb-group`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`Depends on`}),(0,a.jsx)(`div`,{className:`ripple-onb-chips`,children:h.depends.map(l)})]}),h.usedBy.length>0&&(0,a.jsxs)(`section`,{className:`ripple-onb-group`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`Used by`}),(0,a.jsx)(`div`,{className:`ripple-onb-chips`,children:h.usedBy.map(c)})]})]}),t[13]=h,t[14]=b);let x;t[15]!==y||t[16]!==b?(x=(0,a.jsxs)(`div`,{className:`ripple-onb-panes`,children:[y,b]}),t[15]=y,t[16]=b,t[17]=x):x=t[17];let S;t[18]===d?S=t[19]:(S=d&&(0,a.jsx)(`footer`,{className:`ripple-onb-foot`,children:(0,a.jsxs)(`section`,{children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`Your first week, in order`}),(0,a.jsx)(`ol`,{className:`ripple-onb-week`,children:d.firstWeek.map(s)})]})}),t[18]=d,t[19]=S);let C;return t[20]!==_||t[21]!==x||t[22]!==S?(C=(0,a.jsxs)(`div`,{className:`ripple-onb`,children:[g,_,x,S]}),t[20]=_,t[21]=x,t[22]=S,t[23]=C):C=t[23],C}function s(e,t){return(0,a.jsxs)(`li`,{className:`ripple-onb-step`,children:[(0,a.jsx)(`span`,{className:`ripple-onb-step-num`,"aria-hidden":`true`,children:t+1}),(0,a.jsxs)(`span`,{className:`ripple-onb-step-body`,children:[(0,a.jsx)(`span`,{className:`ripple-eyebrow ripple-onb-step-team`,children:e.team}),(0,a.jsx)(`span`,{className:`ripple-onb-step-title`,children:e.title}),(0,a.jsx)(`span`,{className:`ripple-onb-step-sub`,children:e.sub}),(0,a.jsx)(`code`,{className:`ripple-onb-step-file`,children:e.file})]})]},`${e.title}-${t}`)}function c(e){return(0,a.jsx)(`span`,{className:`ripple-onb-chip`,children:e},e)}function l(e){return(0,a.jsx)(`span`,{className:`ripple-onb-chip`,children:e},e)}function u(e){return(0,a.jsx)(`code`,{className:`ripple-onb-chip ripple-onb-chip-go`,children:e},e)}export{o as ShipOnboarding};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-DaSxXjOY.js";import{ht as t}from"./index-y8GL67bB.js";var n=t(),r=e();function i(e){return e===`breaks`?`var(--danger)`:e===`watch`?`var(--warning)`:`var(--insight)`}function a(e){let t=(0,n.c)(29),{model:i,altitude:a}=e,{pr:c,gate:l}=i,u;t[0]===i.changes?u=t[1]:(u=i.changes.filter(s),t[0]=i.changes,t[1]=u);let d=u.length,f=c.files??i.changes.length,p=f===1?`file`:`files`,m=l.decision===`block`?`Hold`:l.decision===`watch`?`Review first`:l.decision===`pass`?`Clear to ship`:`Exploring`,h=a===`principal`?`${m}.`+(d?` ${d} breaking.`:``)+` ${f} ${p} touched.`:a===`newgrad`?`Here’s the lay of the land — take it one piece at a time, you don’t need the whole system in your head.`:null,g=a===`newgrad`?c.risks.length?`The “Before you merge” notes are the questions to raise in review — you don’t need every answer yet, just to ask.`:`Nothing risky is pulling at the top, so this is a friendly one to read end to end.`:null,_;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,r.jsx)(`div`,{className:`ripple-eyebrow`,children:`What this change does`}),t[2]=_):_=t[2];let v;t[3]===h?v=t[4]:(v=h&&(0,r.jsx)(`p`,{className:`ripple-read-lead`,children:h}),t[3]=h,t[4]=v);let y;t[5]===c.summary?y=t[6]:(y=(0,r.jsx)(`p`,{className:`ripple-read-summary`,children:c.summary}),t[5]=c.summary,t[6]=y);let b;t[7]!==a||t[8]!==c.readScope?(b=a!==`principal`&&c.readScope&&(0,r.jsxs)(`p`,{className:`ripple-read-scope`,children:[c.readScope,` Mavéa paraphrases nothing it can’t cite — expand any claim to its line.`]}),t[7]=a,t[8]=c.readScope,t[9]=b):b=t[9];let x;t[10]===g?x=t[11]:(x=g&&(0,r.jsx)(`p`,{className:`ripple-read-scope`,children:g}),t[10]=g,t[11]=x);let S;t[12]!==v||t[13]!==y||t[14]!==b||t[15]!==x?(S=(0,r.jsxs)(`div`,{className:`ripple-read-main`,children:[_,v,y,b,x]}),t[12]=v,t[13]=y,t[14]=b,t[15]=x,t[16]=S):S=t[16];let C;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,r.jsx)(`div`,{className:`ripple-eyebrow`,children:`Before you merge`}),t[17]=C):C=t[17];let w;t[18]===c.risks?w=t[19]:(w=c.risks.map(o),t[18]=c.risks,t[19]=w);let T;t[20]===c.risks.length?T=t[21]:(T=c.risks.length===0&&(0,r.jsx)(`div`,{className:`ripple-risk-empty`,children:`Nothing is pulling at the top — this one reads clean.`}),t[20]=c.risks.length,t[21]=T);let E;t[22]!==T||t[23]!==w?(E=(0,r.jsxs)(`aside`,{className:`ripple-read-risks`,"aria-label":`Before you merge`,children:[C,w,T]}),t[22]=T,t[23]=w,t[24]=E):E=t[24];let D;return t[25]!==a||t[26]!==E||t[27]!==S?(D=(0,r.jsxs)(`div`,{className:`ripple-read`,"data-altitude":a,children:[S,E]}),t[25]=a,t[26]=E,t[27]=S,t[28]=D):D=t[28],D}function o(e,t){return(0,r.jsxs)(`div`,{className:`ripple-risk`,children:[(0,r.jsx)(`span`,{className:`ripple-risk-dot`,style:{background:i(e.level)},"aria-hidden":`true`}),(0,r.jsx)(`span`,{className:`ripple-risk-text`,children:e.text})]},t)}function s(e){return e.risk===`breaks`}export{a as ShipRead};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-DaSxXjOY.js";import{ht as t}from"./index-y8GL67bB.js";var n=t(),r=e();function i(){let e=(0,n.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,r.jsxs)(`svg`,{className:`ripple-roll-tri`,viewBox:`0 0 24 24`,width:`18`,height:`18`,"aria-hidden":`true`,focusable:`false`,children:[(0,r.jsx)(`path`,{d:`M12 3.2 22 20.4H2L12 3.2Z`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinejoin:`round`}),(0,r.jsx)(`path`,{d:`M12 9.4v5`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`}),(0,r.jsx)(`circle`,{cx:`12`,cy:`17.4`,r:`1.05`,fill:`currentColor`})]}),e[0]=t):t=e[0],t}function a(e){let t=(0,n.c)(5),{model:a}=e,{rollout:c}=a,l;if(t[0]!==c){let e=c.find(s),n;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,r.jsxs)(`div`,{className:`ripple-roll-intro`,children:[(0,r.jsx)(`div`,{className:`ripple-eyebrow`,children:`Safe rollout order`}),(0,r.jsx)(`p`,{className:`ripple-roll-lead`,children:`Ship in this sequence and the change never breaks a caller — every consumer learns the new contract before the producer drops the old one.`})]}),t[2]=n):n=t[2];let a=c.map(o),u;t[3]===a?u=t[4]:(u=(0,r.jsx)(`ol`,{className:`ripple-roll-grid`,children:a}),t[3]=a,t[4]=u),l=(0,r.jsxs)(`div`,{className:`ripple-roll`,children:[n,u,e&&(0,r.jsxs)(`aside`,{className:`ripple-roll-trap`,"aria-label":`The trap in this rollout`,children:[(0,r.jsxs)(`div`,{className:`ripple-roll-trap-head`,children:[(0,r.jsx)(i,{}),(0,r.jsx)(`span`,{className:`ripple-eyebrow ripple-roll-trap-eyebrow`,children:`The trap`})]}),(0,r.jsxs)(`p`,{className:`ripple-roll-trap-body`,children:[`Step `,e.order,` — `,(0,r.jsx)(`strong`,{children:e.deploy.toLowerCase()}),` (`,e.team,`) — is the one you instinctively do first. Drop the old contract before its consumers are ready and every one of them breaks the moment it ships. Mavéa puts the consumer upgrades ahead of the producer: the old path stays alive until the last caller can speak the new one, then it’s removed.`]})]})]}),t[0]=c,t[1]=l}else l=t[1];return l}function o(e){return(0,r.jsxs)(`li`,{className:`ripple-roll-step`,"data-trap":e.trap?`true`:void 0,children:[(0,r.jsxs)(`div`,{className:`ripple-roll-head`,children:[(0,r.jsx)(`span`,{className:`ripple-roll-order`,"data-trap":e.trap?`true`:void 0,"aria-hidden":`true`,children:e.order}),(0,r.jsx)(`span`,{className:`ripple-eyebrow ripple-roll-team`,children:e.team})]}),(0,r.jsx)(`div`,{className:`ripple-roll-deploy`,children:e.deploy}),(0,r.jsx)(`p`,{className:`ripple-roll-note`,children:e.note})]},e.order)}function s(e){return e.trap}export{a as ShipRollout};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ripple-roll{gap:var(--s-lg);flex-direction:column;display:flex}.ripple-roll-intro{flex-direction:column;gap:8px;display:flex}.ripple-roll-lead{max-width:64ch;color:var(--text-secondary);text-wrap:pretty;margin:0;font-size:14px;line-height:1.55}.ripple-roll-grid{gap:var(--s-md) 0;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:0;padding:0;list-style:none;display:grid}.ripple-roll-step{min-width:0;padding:2px var(--s-md);border-left:1px solid var(--line);flex-direction:column;gap:9px;display:flex}.ripple-roll-step:first-child{border-left-color:#0000}.ripple-roll-step[data-trap=true]{border-left-color:color-mix(in oklab, var(--warning) 42%, transparent)}.ripple-roll-head{align-items:center;gap:9px;min-width:0;display:flex}.ripple-roll-order{width:26px;height:26px;color:var(--text-primary);background:color-mix(in oklab, var(--insight) 20%, transparent);border:1px solid color-mix(in oklab, var(--insight) 40%, transparent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12.5px;font-weight:700;display:inline-flex}.ripple-roll-order[data-trap=true]{background:color-mix(in oklab, var(--warning) 20%, transparent);border-color:color-mix(in oklab, var(--warning) 44%, transparent)}.ripple-roll-team{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ripple-roll-deploy{color:var(--text-primary);text-wrap:pretty;font-size:14px;font-weight:700;line-height:1.25}.ripple-roll-note{color:var(--text-secondary);text-wrap:pretty;margin:0;font-size:12.5px;line-height:1.5}.ripple-roll-trap{padding:var(--s-md);border:1px solid color-mix(in oklab, var(--danger) 32%, transparent);border-radius:var(--r-md);background:color-mix(in oklab, var(--danger) 9%, transparent);flex-direction:column;gap:9px;display:flex}.ripple-roll-trap-head{color:var(--danger);align-items:center;gap:8px;display:flex}.ripple-roll-tri{flex:none}.ripple-roll-trap-eyebrow{color:var(--danger)}.ripple-roll-trap-body{max-width:72ch;color:var(--text-primary);text-wrap:pretty;margin:0;font-size:13px;line-height:1.55}.ripple-roll-trap-body strong{color:var(--danger);font-weight:700}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{ht as n}from"./index-y8GL67bB.js";var r=e(),i=n(),a=t(),o={CONCURRENCY:`var(--presence)`,COMPATIBILITY:`var(--warning)`,RESILIENCE:`var(--danger)`,OBSERVABILITY:`var(--insight)`,DATA:`var(--presence-deep)`};function s(e){return o[e.split(/[\s/]/)[0]?.toUpperCase()??``]??`var(--presence)`}function c(e){let t=(0,i.c)(19),{model:n}=e,{suggestions:o,suppressedNits:c}=n,[l,u]=(0,r.useState)(o[0]?.id??null),d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`What a principal would flag`}),t[0]=d):d=t[0];let f;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,a.jsx)(`span`,{className:`ripple-sg-orb`,"aria-hidden":`true`}),t[1]=f):f=t[1];let p;t[2]===o.length?p=t[3]:(p=(0,a.jsxs)(`span`,{className:`ripple-sg-count`,children:[(0,a.jsx)(`strong`,{children:o.length}),` worth your time`]}),t[2]=o.length,t[3]=p);let m;t[4]===c?m=t[5]:(m=c>0&&(0,a.jsxs)(`span`,{className:`ripple-sg-muted`,children:[c,` shallow nits suppressed`]}),t[4]=c,t[5]=m);let h;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,a.jsxs)(`span`,{className:`ripple-sg-grounded`,children:[(0,a.jsx)(`svg`,{viewBox:`0 0 12 12`,"aria-hidden":`true`,focusable:`false`,children:(0,a.jsx)(`path`,{d:`M2.5 6.4 4.8 8.8 9.5 3.4`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`,strokeLinejoin:`round`})}),`Every one is grounded`]}),t[6]=h):h=t[6];let g;t[7]!==p||t[8]!==m?(g=(0,a.jsxs)(`div`,{className:`ripple-sg-signal`,children:[f,p,m,h]}),t[7]=p,t[8]=m,t[9]=g):g=t[9];let _;t[10]!==l||t[11]!==o?(_=o.length===0?(0,a.jsx)(`div`,{className:`ripple-sg-empty`,children:`Nothing rose above the noise floor — this change reads clean to a principal eye.`}):(0,a.jsx)(`ul`,{className:`ripple-sg-list`,children:o.map(e=>{let t=e.id===l,n=s(e.category),r=`ripple-sg-panel-${e.id}`;return(0,a.jsxs)(`li`,{className:`ripple-sg-card`,"data-open":t,style:{"--ripple-sg-accent":n},children:[(0,a.jsxs)(`button`,{type:`button`,className:`ripple-sg-trigger`,"aria-expanded":t,"aria-controls":r,onClick:()=>u(t?null:e.id),children:[(0,a.jsx)(`span`,{className:`ripple-sg-cat`,children:e.category}),(0,a.jsx)(`span`,{className:`ripple-sg-title`,children:e.title}),(0,a.jsx)(`span`,{className:`ripple-sg-gist`,children:e.gist}),(0,a.jsx)(`svg`,{className:`ripple-sg-chev`,viewBox:`0 0 12 12`,"aria-hidden":`true`,focusable:`false`,children:(0,a.jsx)(`path`,{d:`M3 4.5 6 7.5 9 4.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`})})]}),t&&(0,a.jsxs)(`div`,{className:`ripple-sg-body`,id:r,children:[(0,a.jsx)(`p`,{className:`ripple-sg-why`,children:e.why}),(0,a.jsxs)(`div`,{className:`ripple-sg-evidence`,children:[(0,a.jsx)(`div`,{className:`ripple-eyebrow`,children:`Why you’re seeing this`}),(0,a.jsx)(`p`,{className:`ripple-sg-evidence-text`,children:e.evidence})]}),(0,a.jsxs)(`div`,{className:`ripple-sg-fix`,children:[(0,a.jsx)(`span`,{className:`ripple-sg-check`,"aria-hidden":`true`,children:(0,a.jsx)(`svg`,{viewBox:`0 0 14 14`,focusable:`false`,children:(0,a.jsx)(`path`,{d:`M3 7.4 5.8 10.2 11 4`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.7`,strokeLinecap:`round`,strokeLinejoin:`round`})})}),(0,a.jsxs)(`p`,{className:`ripple-sg-fix-text`,children:[(0,a.jsx)(`span`,{className:`ripple-sg-fix-label`,children:`Suggested:`}),` `,e.fix]})]})]})]},e.id)})}),t[10]=l,t[11]=o,t[12]=_):_=t[12];let v;t[13]===c?v=t[14]:(v=c>0&&(0,a.jsxs)(`div`,{className:`ripple-sg-suppressed`,role:`note`,children:[(0,a.jsxs)(`strong`,{children:[c,` nits suppressed`]}),` — formatting, naming, import order… Mavéa won’t spend your attention on them.`]}),t[13]=c,t[14]=v);let y;return t[15]!==g||t[16]!==_||t[17]!==v?(y=(0,a.jsxs)(`div`,{className:`ripple-sg`,children:[d,g,_,v]}),t[15]=g,t[16]=_,t[17]=v,t[18]=y):y=t[18],y}export{c as ShipSuggestions};
|