@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.
Files changed (557) hide show
  1. package/CHANGELOG.md +159 -0
  2. package/DISCLAIMER.md +16 -0
  3. package/LICENSE +75 -0
  4. package/PRIVACY.md +127 -0
  5. package/README.md +248 -0
  6. package/SECURITY.md +72 -0
  7. package/SUPPORT.md +13 -0
  8. package/TERMS.md +122 -0
  9. package/THIRD-PARTY.txt +639 -0
  10. package/TRADEMARKS.md +15 -0
  11. package/bin/mavea.mjs +1079 -0
  12. package/dist/.vite/manifest.json +4261 -0
  13. package/dist/_headers +52 -0
  14. package/dist/assets/AppCommandPalette-DUMSp3rd.js +1 -0
  15. package/dist/assets/AtlasView-B5fkQhO6.css +1 -0
  16. package/dist/assets/AtlasView-Dl2fssaG.js +1 -0
  17. package/dist/assets/BlockEmpty-CLtVQf6c.js +1 -0
  18. package/dist/assets/BriefingPlayer-DO205Qkh.js +1 -0
  19. package/dist/assets/BriefingPlayer-TpFZB77N.css +1 -0
  20. package/dist/assets/CanvasSkeleton-BZZPCuRZ.js +2 -0
  21. package/dist/assets/CanvasSkeleton-iy6DBvde.css +1 -0
  22. package/dist/assets/CardEditor-BY1bZiV6.css +1 -0
  23. package/dist/assets/CardEditor-DzJXb0G7.js +1 -0
  24. package/dist/assets/CheckLogRail-F4AlgAcc.css +1 -0
  25. package/dist/assets/CheckLogRail-wUfby67Z.js +1 -0
  26. package/dist/assets/CodeOutput-Kh6ldxQz.js +97 -0
  27. package/dist/assets/CommandPalette-Bb-eErih.css +1 -0
  28. package/dist/assets/CommandPalette-Kl00mMZm.js +1 -0
  29. package/dist/assets/CourseLessonReader-COmTQdSK.css +1 -0
  30. package/dist/assets/CourseLessonReader-MBHoknUz.js +2 -0
  31. package/dist/assets/CourseRail-CUa7uIGG.css +1 -0
  32. package/dist/assets/CourseRail-q6x5cCpW.js +1 -0
  33. package/dist/assets/CoursesApp-v89OVJvg.js +2 -0
  34. package/dist/assets/CrossExamPanel-CZ0ShGma.css +1 -0
  35. package/dist/assets/CrossExamPanel-DH04p6VS.js +1 -0
  36. package/dist/assets/DashPresent-BYXbPuGj.js +1 -0
  37. package/dist/assets/DashPresent-DQYcgp-W.css +1 -0
  38. package/dist/assets/DashboardDetail-B50ZkeVK.js +2 -0
  39. package/dist/assets/DashboardLoopRuntime-CFXPx3v_.js +1 -0
  40. package/dist/assets/DashboardOverview-C-FdGWM5.js +1 -0
  41. package/dist/assets/DashboardSettings-Dmw6JTbI.js +1 -0
  42. package/dist/assets/DashboardsApp-Dx-EsaPW.css +1 -0
  43. package/dist/assets/DashboardsApp-JSY_bVfi.js +2 -0
  44. package/dist/assets/DeepZoomApp-BFNwli7l.js +37 -0
  45. package/dist/assets/DeepZoomApp-fRXCJHHZ.css +1 -0
  46. package/dist/assets/DelegatePanel-BK7rEhIc.js +26 -0
  47. package/dist/assets/DelegatePanel-_9RZiLHM.css +1 -0
  48. package/dist/assets/DemoGallery-BPtVG7_y.js +1 -0
  49. package/dist/assets/DropSelect-DUhdQSta.js +1 -0
  50. package/dist/assets/ExportModal-D4WpAg2c.css +1 -0
  51. package/dist/assets/ExportModal-D65cGyj_.js +2 -0
  52. package/dist/assets/ExtractionPreview-Iwfg2Ogl.js +18 -0
  53. package/dist/assets/FallbackCard-B489rTd9.js +1 -0
  54. package/dist/assets/FallbackCard-D_6ps1xA.css +1 -0
  55. package/dist/assets/FeatureUseNotice-CWt7gOwS.css +1 -0
  56. package/dist/assets/FeatureUseNotice-DPtQ0OGb.js +1 -0
  57. package/dist/assets/FlagshipCTA-BXntKhxb.js +1 -0
  58. package/dist/assets/FlagshipCommandPalette-BDJfasI-.js +1 -0
  59. package/dist/assets/FlagshipShowcase-DJ8Gxk_G.js +1 -0
  60. package/dist/assets/FlashcardsApp-CLNo4WX7.js +1 -0
  61. package/dist/assets/ForecastPanel-Da2ZBUrE.css +1 -0
  62. package/dist/assets/ForecastPanel-PBO2-dgS.js +1 -0
  63. package/dist/assets/GalleryApp-B1CB3_81.css +1 -0
  64. package/dist/assets/GalleryApp-DM03CMRy.js +1 -0
  65. package/dist/assets/HonestByDesign-Dqyth6nW.js +1 -0
  66. package/dist/assets/HowItWorks-C0zosIvq.js +1 -0
  67. package/dist/assets/LegalApp-DZBdExTy.js +1 -0
  68. package/dist/assets/LegalMarkdownDocument-CSZhRG5r.js +3 -0
  69. package/dist/assets/LegalPageShell-C_HottbD.css +1 -0
  70. package/dist/assets/LegalPageShell-DTeXqWyc.js +1 -0
  71. package/dist/assets/LeverPanel-DhpJY76O.css +1 -0
  72. package/dist/assets/LeverPanel-aZfhtVJX.js +1 -0
  73. package/dist/assets/Library-D2XGNXz7.js +1 -0
  74. package/dist/assets/Library-DmrtHjUf.css +1 -0
  75. package/dist/assets/LibraryOverlay-B2WQSgwr.js +1 -0
  76. package/dist/assets/LibraryOverlay-CnKWDMG_.css +1 -0
  77. package/dist/assets/LiveApp-B9zwXlGC.js +61 -0
  78. package/dist/assets/LiveApp-BVZGpJ1S.css +1 -0
  79. package/dist/assets/LiveSettings-CmgrMqvK.css +1 -0
  80. package/dist/assets/LiveSettings-D9OcWlm6.js +6 -0
  81. package/dist/assets/MindMapViewerDrawer-YYyZqmAd.js +1 -0
  82. package/dist/assets/MindShape-Ca3MXEgK.css +1 -0
  83. package/dist/assets/MindShape-mTlN5mPZ.js +1 -0
  84. package/dist/assets/Orb-B0NEVfqL.js +1 -0
  85. package/dist/assets/PinToDashboard-_kIOHs0k.js +1 -0
  86. package/dist/assets/PlanReview-33V8GTNB.js +1 -0
  87. package/dist/assets/Presence-CzLJIeSD.js +1 -0
  88. package/dist/assets/PresentationDeck-BDoGecxr.js +1 -0
  89. package/dist/assets/PrismApp-PfBTFhMF.js +2 -0
  90. package/dist/assets/PrismAskController-DBoxQSJR.css +1 -0
  91. package/dist/assets/PrismAskController-DbQDrlU9.js +37 -0
  92. package/dist/assets/PrismBriefingPlayer-1fvlfLR8.js +2 -0
  93. package/dist/assets/PrismOverlay-B7lEspdu.js +131 -0
  94. package/dist/assets/PrismOverlay-BTfAicBt.css +1 -0
  95. package/dist/assets/PrivacyApp-CR4lRs0L.js +128 -0
  96. package/dist/assets/Quiz-CUwtekfu.js +1 -0
  97. package/dist/assets/Recap-DCiiWNiV.css +1 -0
  98. package/dist/assets/Recap-H5fhj5Tc.js +1 -0
  99. package/dist/assets/ReelJelly-3jSVsJsy.js +1 -0
  100. package/dist/assets/RehearsalPanel-BCU615wg.css +1 -0
  101. package/dist/assets/RehearsalPanel-BVgjrOPg.js +6 -0
  102. package/dist/assets/ReplayCard-BpYO5vX-.js +2 -0
  103. package/dist/assets/ReplayOverlay-DXmVdeIr.js +1 -0
  104. package/dist/assets/RewindOverlay-BusfWeFq.js +1 -0
  105. package/dist/assets/RewindOverlay-C92qgvmi.css +1 -0
  106. package/dist/assets/RippleApp-9KrJPYgN.js +2 -0
  107. package/dist/assets/RippleAskController-BNAUoIW0.css +1 -0
  108. package/dist/assets/RippleAskController-CO9wE7hU.js +34 -0
  109. package/dist/assets/RippleOverlay-DMHLbfh8.js +6 -0
  110. package/dist/assets/RippleOverlay-_iiZsQVZ.css +1 -0
  111. package/dist/assets/SeeDontRead-C389viue.js +1 -0
  112. package/dist/assets/ShareModal-C8S7ySls.css +1 -0
  113. package/dist/assets/ShareModal-ClnEkudw.js +32 -0
  114. package/dist/assets/ShipCascade-BUtwvQoW.js +1 -0
  115. package/dist/assets/ShipCascade-CyFnrlET.css +1 -0
  116. package/dist/assets/ShipCourse-B7lG6DYW.js +1 -0
  117. package/dist/assets/ShipCourse-DcT7PUSm.css +1 -0
  118. package/dist/assets/ShipGate-BVZfCllb.css +1 -0
  119. package/dist/assets/ShipGate-BYYu9WVq.js +2 -0
  120. package/dist/assets/ShipHotspots-Bj2CovtT.js +1 -0
  121. package/dist/assets/ShipHotspots-CLOMutPv.css +1 -0
  122. package/dist/assets/ShipIncident-BUHvFFiC.css +1 -0
  123. package/dist/assets/ShipIncident-DcmindmE.js +2 -0
  124. package/dist/assets/ShipMigration-BznCskNg.css +1 -0
  125. package/dist/assets/ShipMigration-s0hVjDQl.js +1 -0
  126. package/dist/assets/ShipOnboarding-BC9Vxkpa.css +1 -0
  127. package/dist/assets/ShipOnboarding-ekbHL7OH.js +1 -0
  128. package/dist/assets/ShipRead-BVNgQT6L.js +1 -0
  129. package/dist/assets/ShipRollout-BdUQzMyP.js +1 -0
  130. package/dist/assets/ShipRollout-CqeObx5b.css +1 -0
  131. package/dist/assets/ShipSuggestions-B6fKYh8L.js +1 -0
  132. package/dist/assets/ShipSuggestions-BKRvk5Mj.css +1 -0
  133. package/dist/assets/ShipWorkspace-3D3Rrs1p.js +2 -0
  134. package/dist/assets/ShipWorkspace-D6XQpGEN.css +1 -0
  135. package/dist/assets/SignatureLoop-C60r8Wm5.js +1 -0
  136. package/dist/assets/SrsReview-BoaYb6XN.js +1 -0
  137. package/dist/assets/SrsReview-DmGdGxT0.css +1 -0
  138. package/dist/assets/SynthesisApp-vJ2Jq0Qe.js +2 -0
  139. package/dist/assets/SynthesisOverlay-CkERphvG.js +66 -0
  140. package/dist/assets/TermsApp-C70tW6m6.js +123 -0
  141. package/dist/assets/TopicCanvas-CT0eSj2M.js +2 -0
  142. package/dist/assets/TopicCanvas-D2Nax9II.css +1 -0
  143. package/dist/assets/TourPrism-BvucSkcs.js +1 -0
  144. package/dist/assets/TrackerTile-CasZNmt4.js +2 -0
  145. package/dist/assets/TwoSurfaces-C90X7Aj5.js +1 -0
  146. package/dist/assets/UnderstoodPanel-CHPD2Ttj.js +1 -0
  147. package/dist/assets/UnderstoodPanel-Q6GX1TFq.css +1 -0
  148. package/dist/assets/WhyMachineOverlay-BZk3PVTl.css +1 -0
  149. package/dist/assets/WhyMachineOverlay-CB0_n6Sy.js +1 -0
  150. package/dist/assets/WowFeatures-Ci_H5QYX.js +1 -0
  151. package/dist/assets/ZoomDeck-B2SjNwY7.css +1 -0
  152. package/dist/assets/ZoomDeck-BQHO79ZU.js +1 -0
  153. package/dist/assets/__vite-browser-external-BufR4LQa.js +1 -0
  154. package/dist/assets/ai-Ba4lZJ9Y.js +12 -0
  155. package/dist/assets/alternateFinishes-DZ-rkpkX.js +494 -0
  156. package/dist/assets/annotationAuto-B0nihA4F.js +1 -0
  157. package/dist/assets/annotationReel-BcU9Q0Sw.js +1 -0
  158. package/dist/assets/annotations-D2K9A5GB.js +1 -0
  159. package/dist/assets/backup-c-Btapzp.js +1 -0
  160. package/dist/assets/blockLabel-DAqaHKy3.js +1 -0
  161. package/dist/assets/c-DWGmR78Y.js +1 -0
  162. package/dist/assets/c-SSSlmE39.js +1 -0
  163. package/dist/assets/cache-BumECILO.js +1 -0
  164. package/dist/assets/canvas-QTEIiK23.js +1 -0
  165. package/dist/assets/catalog-BHjl-1uH.js +2 -0
  166. package/dist/assets/catalog-Dqaq2YFd.js +1 -0
  167. package/dist/assets/cfo.generated-Bjl5OGay.js +1 -0
  168. package/dist/assets/chapters-BiUsDClQ.js +1 -0
  169. package/dist/assets/charts1-EOoxU_K3.js +1 -0
  170. package/dist/assets/charts2-tyUiQPff.js +1 -0
  171. package/dist/assets/chunk-BVpWp9h4.js +1 -0
  172. package/dist/assets/citation-BcvmjKS8.js +1 -0
  173. package/dist/assets/code-CpjYCNS8.js +8 -0
  174. package/dist/assets/codeContext-0UMRSGRr.js +5 -0
  175. package/dist/assets/colors-D49Req-e.js +1 -0
  176. package/dist/assets/compose-BJ9EfcQS.js +3 -0
  177. package/dist/assets/contentVault-DzTYWcbD.js +1 -0
  178. package/dist/assets/core-DEFyprhs.js +1 -0
  179. package/dist/assets/corpus.generated-oX9uU93S.js +11 -0
  180. package/dist/assets/courseSeed-CZdNBTTs.js +1 -0
  181. package/dist/assets/courseStore-DfafnL-9.js +1 -0
  182. package/dist/assets/courses-BkH1ntDL.css +1 -0
  183. package/dist/assets/cpp-BGdv8dzs.js +1 -0
  184. package/dist/assets/cpp-CNAAXZl-.js +1 -0
  185. package/dist/assets/csharp-oqKa8noW.js +1 -0
  186. package/dist/assets/css-CdtkT07m.js +1 -0
  187. package/dist/assets/css-LbU1hoFO.js +1 -0
  188. package/dist/assets/dag-C3Xx8pOD.js +2 -0
  189. package/dist/assets/dashboardEvents-DR9d_c74.js +2 -0
  190. package/dist/assets/dashboards-rcWxdoXI.css +1 -0
  191. package/dist/assets/deckLine-NBd3MyGT.js +1 -0
  192. package/dist/assets/demoPaletteItems-NPCSaSU6.js +1 -0
  193. package/dist/assets/dev.generated-DYgVxL_4.js +73 -0
  194. package/dist/assets/diagrams-CaSfjT4I.js +1 -0
  195. package/dist/assets/diff-woXpYk--.js +1 -0
  196. package/dist/assets/display-OvC57CMc.js +9 -0
  197. package/dist/assets/dist-BFx3nZg4.js +2785 -0
  198. package/dist/assets/dist-xRGLOZwv.js +14 -0
  199. package/dist/assets/docs-B2aDtm5K.js +1 -0
  200. package/dist/assets/everyday-CoZa4kDZ.js +1 -0
  201. package/dist/assets/explode-WBykfhqW.js +13 -0
  202. package/dist/assets/extractNumbers-CuhagRkd.js +1 -0
  203. package/dist/assets/facts-BBTt3ImG.js +1 -0
  204. package/dist/assets/finance-Bxn_Q1p0.js +1 -0
  205. package/dist/assets/fit-0HxU-rtB.js +1 -0
  206. package/dist/assets/fitText-CDFmCQzl.js +1 -0
  207. package/dist/assets/flows-BL81J7yN.js +1 -0
  208. package/dist/assets/format-DlZTyeMy.js +1 -0
  209. package/dist/assets/format-hc2QOoIu.js +1 -0
  210. package/dist/assets/forms-DeoXOxdD.js +1 -0
  211. package/dist/assets/generate-8odaTyr4.js +17 -0
  212. package/dist/assets/generateBeats-b64CL54v.js +1 -0
  213. package/dist/assets/generateCourse-Cj_-vDWu.js +28 -0
  214. package/dist/assets/generateLive-D4B30fnF.js +52 -0
  215. package/dist/assets/geometry-DXAbnb0J.js +1 -0
  216. package/dist/assets/gesture-DabMpPcq.js +2 -0
  217. package/dist/assets/github-dark-C-LZuMrd.js +1 -0
  218. package/dist/assets/github-light-EUqPIrTm.js +1 -0
  219. package/dist/assets/githubBrowser-DywfDeYx.js +1 -0
  220. package/dist/assets/githubToken-DtcLYqwm.js +11 -0
  221. package/dist/assets/go-rLFTqkRN.js +1 -0
  222. package/dist/assets/homeTarget-BgWKI_E1.js +1 -0
  223. package/dist/assets/html-BcACZWSP.js +1 -0
  224. package/dist/assets/html-DDNsd9lV.js +1 -0
  225. package/dist/assets/http-CJCtjYpA.js +2 -0
  226. package/dist/assets/icons-CHVz6kv_.js +1 -0
  227. package/dist/assets/index-CepQEz75.css +1 -0
  228. package/dist/assets/index-y8GL67bB.js +22 -0
  229. package/dist/assets/index.es-CRLiWwiA.js +5 -0
  230. package/dist/assets/info-CiqHR5cs.js +1 -0
  231. package/dist/assets/java-BtIQNnN0.js +1 -0
  232. package/dist/assets/java-DxlWrXwe.js +1 -0
  233. package/dist/assets/javascript-BzbQS41l.js +1 -0
  234. package/dist/assets/javascript-Yelw-5ZN.js +1 -0
  235. package/dist/assets/json-B0N3XRZU.js +1 -0
  236. package/dist/assets/json-B88Oqtu5.js +1 -0
  237. package/dist/assets/json-CaljABEy.js +1 -0
  238. package/dist/assets/jspdf.es.min-C-Pf79px.js +79 -0
  239. package/dist/assets/jsx-D3KKoC5L.js +1 -0
  240. package/dist/assets/jsx-hEbJ82HF.js +1 -0
  241. package/dist/assets/jsx-runtime-DaSxXjOY.js +1 -0
  242. package/dist/assets/katex-BMCG0xok.js +257 -0
  243. package/dist/assets/keyVault-DEsNh9FR.js +1 -0
  244. package/dist/assets/kokoro-D4GKpSL0.js +1 -0
  245. package/dist/assets/kotlin-DhhofPvG.js +1 -0
  246. package/dist/assets/layout-BFQOzXtG.js +1 -0
  247. package/dist/assets/layout-CkO0Psde.js +1 -0
  248. package/dist/assets/lazyRetry-D50B1UMY.js +1 -0
  249. package/dist/assets/leaflet-src-C_xhOQY7.js +1 -0
  250. package/dist/assets/learn-DVfqN-nf.js +1 -0
  251. package/dist/assets/lib-DMAxsZKm.css +1 -0
  252. package/dist/assets/lib-VFqp6Y3w.js +1 -0
  253. package/dist/assets/links--u_phi0x.js +1 -0
  254. package/dist/assets/liveSchema-CJ49PX5R.js +98 -0
  255. package/dist/assets/markdown-BYOwaDjH.js +1 -0
  256. package/dist/assets/mastery-BPjxP0fN.js +4 -0
  257. package/dist/assets/media-CsrUl279.js +43 -0
  258. package/dist/assets/model-BE0UHu1w.js +27 -0
  259. package/dist/assets/motion-S0NRruNj.js +1 -0
  260. package/dist/assets/nav-Czm-NzPV.js +1 -0
  261. package/dist/assets/neighborhoods-C-1Tjr1r.js +1 -0
  262. package/dist/assets/notes-A9t4jdfx.css +1 -0
  263. package/dist/assets/notes-lROPCorS.js +1 -0
  264. package/dist/assets/notify-Bz4wuE4T.js +1 -0
  265. package/dist/assets/now-C9-UAzTC.js +1 -0
  266. package/dist/assets/number-DXgzss0v.js +1 -0
  267. package/dist/assets/officeDoc-B6nEhNp4.js +3 -0
  268. package/dist/assets/openchemlib-nMLMmg26.js +23 -0
  269. package/dist/assets/overlays-JxbHtA2o.js +1 -0
  270. package/dist/assets/owners-FXDGInVq.js +2 -0
  271. package/dist/assets/pageVisibility-BxUVsw7Z.js +1 -0
  272. package/dist/assets/pdf-Df7PCH7q.js +11 -0
  273. package/dist/assets/pdf.worker.min-yatZIOMy.mjs +21 -0
  274. package/dist/assets/penStrokes-9Q_l7NTt.js +1 -0
  275. package/dist/assets/perfProbe-COAp9PAa.js +1 -0
  276. package/dist/assets/php-CYrBA5iX.js +1 -0
  277. package/dist/assets/pickers-B4-3HOR8.js +1 -0
  278. package/dist/assets/pin-Bya3BL_a.css +1 -0
  279. package/dist/assets/pin-CXSuPJYL.js +1 -0
  280. package/dist/assets/planTracker-7AMCQPNx.js +1 -0
  281. package/dist/assets/portal-DMw7C32j.js +1 -0
  282. package/dist/assets/pptxgen.es-CvTILmV9.js +115 -0
  283. package/dist/assets/predictions-CYS7Vo39.js +1 -0
  284. package/dist/assets/prewarm--whjQhWJ.js +1 -0
  285. package/dist/assets/prism-app-CXYElq8-.css +1 -0
  286. package/dist/assets/prism.generated-BhbHDHR6.js +41 -0
  287. package/dist/assets/prismExtract.worker-Cws9K1NG.js +13 -0
  288. package/dist/assets/prismGround.worker-CIvKqxm2.js +1 -0
  289. package/dist/assets/prismLayout.worker-CZO2CY7B.js +1 -0
  290. package/dist/assets/providers-wzm7E8Pa.js +1 -0
  291. package/dist/assets/purify.es-adlwq8Pz.js +3 -0
  292. package/dist/assets/python-gzcpVVnB.js +1 -0
  293. package/dist/assets/queue-DHeyJ32F.css +1 -0
  294. package/dist/assets/queue-J4h7E3uc.js +1 -0
  295. package/dist/assets/quietHours-BvcsBKKK.js +1 -0
  296. package/dist/assets/react-BQSORdFI.js +1 -0
  297. package/dist/assets/reference-sJzyMiL4.js +1 -0
  298. package/dist/assets/registry-1GuPBfQK.js +1 -0
  299. package/dist/assets/registry-2GJZ46M8.css +1 -0
  300. package/dist/assets/registry-2v0jlh5Q.js +2 -0
  301. package/dist/assets/registry-B8DStMJk.js +1 -0
  302. package/dist/assets/registry-B940W2j5.js +1 -0
  303. package/dist/assets/registry-BAoRB8rd.css +1 -0
  304. package/dist/assets/registry-BPvIPLke.js +1 -0
  305. package/dist/assets/registry-BVHiKEwE.css +1 -0
  306. package/dist/assets/registry-BcZXBr3y.css +1 -0
  307. package/dist/assets/registry-BffpZK5w.js +1 -0
  308. package/dist/assets/registry-BgGeRiDA.js +2 -0
  309. package/dist/assets/registry-Buq5uuCv.js +1 -0
  310. package/dist/assets/registry-BzNLfje1.css +1 -0
  311. package/dist/assets/registry-C3ezxLR3.css +1 -0
  312. package/dist/assets/registry-CAusoyBh.js +1 -0
  313. package/dist/assets/registry-CEVrY72Z.js +1 -0
  314. package/dist/assets/registry-CKjKq6ct.js +1 -0
  315. package/dist/assets/registry-CNgybLQv.css +1 -0
  316. package/dist/assets/registry-CRM7y8QT.css +1 -0
  317. package/dist/assets/registry-CRisz4Ca.css +1 -0
  318. package/dist/assets/registry-Cg7qUZPS.js +1 -0
  319. package/dist/assets/registry-Cix-yqch.js +1 -0
  320. package/dist/assets/registry-CtbuZWYz.css +1 -0
  321. package/dist/assets/registry-DCI_BeFJ.js +5 -0
  322. package/dist/assets/registry-DDLSYDVA.js +1 -0
  323. package/dist/assets/registry-DI1wSG1Y.js +1 -0
  324. package/dist/assets/registry-DJinB5ye.js +2 -0
  325. package/dist/assets/registry-DUvXX_d0.js +1 -0
  326. package/dist/assets/registry-DVzLacl_.css +1 -0
  327. package/dist/assets/registry-DWcNVyI2.css +1 -0
  328. package/dist/assets/registry-D_URPoL4.js +1 -0
  329. package/dist/assets/registry-Dkc7hN5T.js +1 -0
  330. package/dist/assets/registry-DmQlNN3y.js +1 -0
  331. package/dist/assets/registry-DpaaVbmL.css +1 -0
  332. package/dist/assets/registry-Dpb8EXHn.js +49 -0
  333. package/dist/assets/registry-Dru0JcTa.css +1 -0
  334. package/dist/assets/registry-DujBAgn_.js +1 -0
  335. package/dist/assets/registry-Dye5m3qt.css +1 -0
  336. package/dist/assets/registry-GeSy4i7R.css +1 -0
  337. package/dist/assets/registry-QcULZpdE.js +4 -0
  338. package/dist/assets/registry-T3i2Q9SI.css +1 -0
  339. package/dist/assets/registry-UFIuwh3i.css +1 -0
  340. package/dist/assets/registry-Xzq_Rpmm.css +1 -0
  341. package/dist/assets/registry-ZOWzhOHk.css +1 -0
  342. package/dist/assets/registry-aIH-Im5Y.css +1 -0
  343. package/dist/assets/registry-aazwkBJp.js +1 -0
  344. package/dist/assets/registry-ei6fIgBT.css +1 -0
  345. package/dist/assets/registry-types-DMuK0vJ6.js +1 -0
  346. package/dist/assets/registry-upbw6pyj.css +1 -0
  347. package/dist/assets/registry-zRPjWNl5.js +1 -0
  348. package/dist/assets/relate-A9ZeaaAI.js +1 -0
  349. package/dist/assets/richText-BkxJhl9N.js +1 -0
  350. package/dist/assets/ruby-BhrksQMt.js +1 -0
  351. package/dist/assets/run-BYP2YlZT.js +23 -0
  352. package/dist/assets/run-C_0B_41W.js +21 -0
  353. package/dist/assets/run-DSVvshaB.js +21 -0
  354. package/dist/assets/rust-Cfkwpbl8.js +1 -0
  355. package/dist/assets/safeCssColor-di93BXgG.js +1 -0
  356. package/dist/assets/safeImageUrl-CUkucDUu.js +1 -0
  357. package/dist/assets/scale-Bcgfo6Hp.js +1 -0
  358. package/dist/assets/screen-DLR7p_yP.js +1 -0
  359. package/dist/assets/search-DnjHupRf.js +1 -0
  360. package/dist/assets/seed-b1xc0dj2.js +1 -0
  361. package/dist/assets/shapes-RqjqC0ay.js +1 -0
  362. package/dist/assets/shard000-DM_rqD7W.js +1 -0
  363. package/dist/assets/shard001-gQEQs7_F.js +1 -0
  364. package/dist/assets/shard002-DbDas-W-.js +1 -0
  365. package/dist/assets/shard003-DxMszG4_.js +1 -0
  366. package/dist/assets/shard004-DZMpLBw1.js +1 -0
  367. package/dist/assets/shard005-DLVkh9IH.js +1 -0
  368. package/dist/assets/shard006-B6efKHov.js +1 -0
  369. package/dist/assets/shard007-AFdZLe38.js +1 -0
  370. package/dist/assets/shard008-LbSBzwRx.js +1 -0
  371. package/dist/assets/shard009-D_6-SUDb.js +1 -0
  372. package/dist/assets/shard010-DbOj-uZW.js +1 -0
  373. package/dist/assets/shard011-BYSz7EEW.js +1 -0
  374. package/dist/assets/shard012-B5Ypj7OV.js +1 -0
  375. package/dist/assets/shard013-BtsliNIe.js +1 -0
  376. package/dist/assets/shard014-15sjmk68.js +1 -0
  377. package/dist/assets/shard015-nnXrqru_.js +1 -0
  378. package/dist/assets/shard016-BayXFE13.js +1 -0
  379. package/dist/assets/shard017-Cy4cGexs.js +1 -0
  380. package/dist/assets/shard018-aO-BYJ8H.js +1 -0
  381. package/dist/assets/shard019-gxaTeA3I.js +1 -0
  382. package/dist/assets/shard020-BibJdMI0.js +1 -0
  383. package/dist/assets/shard021-2FE-tze4.js +1 -0
  384. package/dist/assets/shard022-IXiyG-JK.js +1 -0
  385. package/dist/assets/shard023-314F6NJS.js +1 -0
  386. package/dist/assets/shard024-cN5rpQ_X.js +1 -0
  387. package/dist/assets/shard025-KKTaXOGE.js +1 -0
  388. package/dist/assets/shard026-C2Dkd1t6.js +1 -0
  389. package/dist/assets/shard027-Xy-8x9As.js +1 -0
  390. package/dist/assets/shard028-Bul-klUj.js +1 -0
  391. package/dist/assets/shard029-BbRSUcUZ.js +1 -0
  392. package/dist/assets/shard030-GYllsFVC.js +1 -0
  393. package/dist/assets/shard031-DMigeiyn.js +1 -0
  394. package/dist/assets/shard032-CcvmzK0l.js +1 -0
  395. package/dist/assets/shard033-11AU702M.js +1 -0
  396. package/dist/assets/shard034-Bx3urxjM.js +1 -0
  397. package/dist/assets/shard035-DBdEeyCt.js +1 -0
  398. package/dist/assets/shard036-vYgoRBqS.js +1 -0
  399. package/dist/assets/shard037-DP4MMw91.js +1 -0
  400. package/dist/assets/shard038-ffxsv7d6.js +1 -0
  401. package/dist/assets/shard039-C1JHHNp9.js +1 -0
  402. package/dist/assets/shard040-JbVvCSO_.js +1 -0
  403. package/dist/assets/shard041-5L_eFwGx.js +1 -0
  404. package/dist/assets/shard042-C9nsGL79.js +1 -0
  405. package/dist/assets/shard043-Dx_9HSKI.js +1 -0
  406. package/dist/assets/shard044-B3QQNC4A.js +1 -0
  407. package/dist/assets/shard045-B7z0WHO6.js +1 -0
  408. package/dist/assets/shard046-D1yDablJ.js +1 -0
  409. package/dist/assets/shard047-DJi3AgeT.js +1 -0
  410. package/dist/assets/shard048-D_2ipfUr.js +1 -0
  411. package/dist/assets/shard049-1aGgWZdd.js +1 -0
  412. package/dist/assets/shard050-Bjwa0Og4.js +1 -0
  413. package/dist/assets/shard051-Cx_GAk3v.js +1 -0
  414. package/dist/assets/shard052-LaeOD3V5.js +1 -0
  415. package/dist/assets/shard053-D-da7Foj.js +1 -0
  416. package/dist/assets/shard054-CM8eSRQk.js +1 -0
  417. package/dist/assets/shard055-QRpDl4Vs.js +1 -0
  418. package/dist/assets/shard056-DkY7CQm3.js +1 -0
  419. package/dist/assets/shard057-BVCgf7o0.js +1 -0
  420. package/dist/assets/shard058-93aGtdrX.js +1 -0
  421. package/dist/assets/shard059-rJE9X1_I.js +1 -0
  422. package/dist/assets/shard060-Lu_hfl1r.js +1 -0
  423. package/dist/assets/shard061-C9A8iNiq.js +1 -0
  424. package/dist/assets/shard062-BBIpEYZO.js +1 -0
  425. package/dist/assets/shard063-C_uen3Ub.js +1 -0
  426. package/dist/assets/shard064-DAHUsHST.js +1 -0
  427. package/dist/assets/shard065-C2edvdvh.js +1 -0
  428. package/dist/assets/shard066-DFcuVhZm.js +1 -0
  429. package/dist/assets/shard067-BN8DM8JZ.js +1 -0
  430. package/dist/assets/shard068-i464K77p.js +1 -0
  431. package/dist/assets/shard069-Dm9m2a5U.js +1 -0
  432. package/dist/assets/shard070-BPVvR8GH.js +1 -0
  433. package/dist/assets/shard071-Bal_0d9L.js +1 -0
  434. package/dist/assets/shard072-CBQu62kt.js +1 -0
  435. package/dist/assets/shard073-D5BRae0w.js +1 -0
  436. package/dist/assets/shard074-DtFvcBnZ.js +1 -0
  437. package/dist/assets/share-QHGHNDhQ.js +1 -0
  438. package/dist/assets/shellscript-BiGZg9Om.js +1 -0
  439. package/dist/assets/shellscript-CqHdAlCp.js +1 -0
  440. package/dist/assets/shikiHighlight-DUCYbsJ2.js +153 -0
  441. package/dist/assets/sourceHost-BV3t2XDb.js +1 -0
  442. package/dist/assets/speed-DwPw9KSv.js +1 -0
  443. package/dist/assets/spokenText-D4zPX9JY.js +1 -0
  444. package/dist/assets/sql-0Qcw9ht3.js +1 -0
  445. package/dist/assets/sql-CP0rg-5b.js +1 -0
  446. package/dist/assets/src-DbgF7cRH.js +2 -0
  447. package/dist/assets/stats-BeP5Bws0.js +1 -0
  448. package/dist/assets/status-BY02LIJt.js +1 -0
  449. package/dist/assets/stepDriver-DwjFet6U.js +1 -0
  450. package/dist/assets/store-4JNNn732.js +1 -0
  451. package/dist/assets/store-BFC7DZcg.js +1 -0
  452. package/dist/assets/store-BFrJaSxJ.js +1 -0
  453. package/dist/assets/store-DXmC_fP2.js +0 -0
  454. package/dist/assets/store-DgG0C1Qx.js +1 -0
  455. package/dist/assets/streamParse-DRgMHWye.js +2 -0
  456. package/dist/assets/student.generated-DS_acPaJ.js +1 -0
  457. package/dist/assets/swift-DonLKvLd.js +1 -0
  458. package/dist/assets/tables-Dzd3rTqG.js +1 -0
  459. package/dist/assets/time-BHTmJR1s.js +1 -0
  460. package/dist/assets/toast-BBNs2h3L.js +1 -0
  461. package/dist/assets/toml-CcmNWLt0.js +1 -0
  462. package/dist/assets/traveler.generated-Beun9X7y.js +1 -0
  463. package/dist/assets/tsx-5f3ulCja.js +1 -0
  464. package/dist/assets/tsx-BOvsFOI6.js +1 -0
  465. package/dist/assets/typeof-B5XbjTb1.js +1 -0
  466. package/dist/assets/typescript-Utq2Cl8c.js +1 -0
  467. package/dist/assets/typescript-j_1H8WHN.js +1 -0
  468. package/dist/assets/useDashboardLoop-B6ByHWoE.js +5 -0
  469. package/dist/assets/useFocusTrap-DbfG6zbM.js +1 -0
  470. package/dist/assets/useLiveConfig-X9Wxh90k.js +1 -0
  471. package/dist/assets/useSpatialCanvas-DogK9457.js +1 -0
  472. package/dist/assets/useSpotlightWalk-rMbmNBKK.js +1 -0
  473. package/dist/assets/useSrsCards-CagZefwX.js +1 -0
  474. package/dist/assets/useStudy-Bflreq2a.js +1 -0
  475. package/dist/assets/useTimeout-BRYvu2jQ.js +1 -0
  476. package/dist/assets/useValidatedImage-D2fhA198.js +1 -0
  477. package/dist/assets/useZoomGesture-CYc3tf2z.js +1 -0
  478. package/dist/assets/verbatim-CBMzUDlf.js +1 -0
  479. package/dist/assets/worker-BbLKfGzm.js +2 -0
  480. package/dist/assets/xml-WY0zc4PG.js +1 -0
  481. package/dist/assets/yaml-CxbubiML.js +1 -0
  482. package/dist/assets/yaml-DijMHRDA.js +1 -0
  483. package/dist/demo-assets/CREDITS.md +40 -0
  484. package/dist/demo-assets/images/basalt-cliffs.jpg +0 -0
  485. package/dist/demo-assets/images/capelinhos.jpg +0 -0
  486. package/dist/demo-assets/images/cliff-fields.jpg +0 -0
  487. package/dist/demo-assets/images/crater-panorama.jpg +0 -0
  488. package/dist/demo-assets/images/furnas-lake.jpg +0 -0
  489. package/dist/demo-assets/images/green-coast.jpg +0 -0
  490. package/dist/demo-assets/images/overcast-coast.jpg +0 -0
  491. package/dist/demo-assets/images/patchwork-fields.jpg +0 -0
  492. package/dist/demo-assets/images/ponta-delgada.jpg +0 -0
  493. package/dist/demo-assets/images/sete-cidades.jpg +0 -0
  494. package/dist/demo-assets/images/slide-placeholder-light.svg +9 -0
  495. package/dist/demo-assets/images/slide-placeholder.svg +9 -0
  496. package/dist/demo-assets/images/village-street.jpg +0 -0
  497. package/dist/demo-assets/pdf/cfd-primer.pdf +0 -0
  498. package/dist/demo-assets/video/azores-film.mp4 +0 -0
  499. package/dist/favicon.svg +19 -0
  500. package/dist/fonts/LICENSE.txt +34 -0
  501. package/dist/fonts/archivo-var-latin.woff2 +0 -0
  502. package/dist/fonts/bodoni-moda-400-italic-latin.woff2 +0 -0
  503. package/dist/fonts/bodoni-moda-var-latin.woff2 +0 -0
  504. package/dist/fonts/eb-garamond-var-italic-latin.woff2 +0 -0
  505. package/dist/fonts/eb-garamond-var-latin.woff2 +0 -0
  506. package/dist/fonts/export/families/archivo.css +12 -0
  507. package/dist/fonts/export/families/bodoni-moda.css +23 -0
  508. package/dist/fonts/export/families/eb-garamond.css +22 -0
  509. package/dist/fonts/export/families/ibm-plex-sans.css +12 -0
  510. package/dist/fonts/export/families/instrument-serif.css +22 -0
  511. package/dist/fonts/export/families/jetbrains-mono.css +12 -0
  512. package/dist/fonts/export/families/libre-franklin.css +12 -0
  513. package/dist/fonts/export/families/lora.css +22 -0
  514. package/dist/fonts/export/families/source-serif-4.css +12 -0
  515. package/dist/fonts/export/families/space-grotesk.css +12 -0
  516. package/dist/fonts/export/families/spectral.css +52 -0
  517. package/dist/fonts/fonts.css +141 -0
  518. package/dist/fonts/hanken-grotesk-var-latin.woff2 +0 -0
  519. package/dist/fonts/ibm-plex-sans-var-latin.woff2 +0 -0
  520. package/dist/fonts/instrument-serif-400-italic-latin.woff2 +0 -0
  521. package/dist/fonts/instrument-serif-400-latin.woff2 +0 -0
  522. package/dist/fonts/jetbrains-mono-var-latin.woff2 +0 -0
  523. package/dist/fonts/libre-franklin-var-latin.woff2 +0 -0
  524. package/dist/fonts/lora-var-italic-latin.woff2 +0 -0
  525. package/dist/fonts/lora-var-latin.woff2 +0 -0
  526. package/dist/fonts/newsreader-var-italic-latin.woff2 +0 -0
  527. package/dist/fonts/newsreader-var-latin.woff2 +0 -0
  528. package/dist/fonts/plex-mono-400-latin.woff2 +0 -0
  529. package/dist/fonts/plex-mono-500-latin.woff2 +0 -0
  530. package/dist/fonts/plex-mono-600-latin.woff2 +0 -0
  531. package/dist/fonts/source-serif-4-var-latin.woff2 +0 -0
  532. package/dist/fonts/space-grotesk-var-latin.woff2 +0 -0
  533. package/dist/fonts/spectral-400-italic-latin.woff2 +0 -0
  534. package/dist/fonts/spectral-400-latin.woff2 +0 -0
  535. package/dist/fonts/spectral-500-italic-latin.woff2 +0 -0
  536. package/dist/fonts/spectral-500-latin.woff2 +0 -0
  537. package/dist/fonts/spectral-600-latin.woff2 +0 -0
  538. package/dist/index.html +117 -0
  539. package/dist/legal/DISCLAIMER.md +16 -0
  540. package/dist/legal/LICENSE.txt +75 -0
  541. package/dist/legal/PRIVACY.md +127 -0
  542. package/dist/legal/SECURITY.md +72 -0
  543. package/dist/legal/SUPPORT.md +13 -0
  544. package/dist/legal/TERMS.md +122 -0
  545. package/dist/legal/THIRD-PARTY.txt +639 -0
  546. package/dist/legal/TRADEMARKS.md +15 -0
  547. package/dist/ort-wasm-simd-threaded.mjs +59 -0
  548. package/dist/sw.js +30 -0
  549. package/dist/vad.worklet.bundle.min.js +1 -0
  550. package/docker-compose.yml +33 -0
  551. package/gateway/README.md +99 -0
  552. package/gateway/actions-gateway.mjs +537 -0
  553. package/gateway/connectors.d.mts +27 -0
  554. package/gateway/connectors.mjs +463 -0
  555. package/gateway/guard.mjs +110 -0
  556. package/gateway/tokenStore.mjs +134 -0
  557. package/package.json +143 -0
@@ -0,0 +1 @@
1
+ .ripple-sg{gap:var(--s-md);flex-direction:column;display:flex}.ripple-sg-signal{padding:12px var(--s-md);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-elevated);flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.ripple-sg-orb{background:radial-gradient(circle at 35% 30%, var(--presence) 0%, var(--presence-deep) 75%);width:11px;height:11px;box-shadow:0 0 0 4px color-mix(in oklab, var(--presence) 22%, transparent);border-radius:50%;flex:none}.ripple-sg-count{color:var(--text-secondary);font-size:14px}.ripple-sg-count strong{color:var(--text-primary);font-size:16px}.ripple-sg-muted{color:var(--text-muted);font-size:12.5px}.ripple-sg-grounded{letter-spacing:.1em;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-full);align-items:center;gap:6px;margin-left:auto;padding:4px 11px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;font-weight:700;display:inline-flex}.ripple-sg-grounded svg{flex:none;width:12px;height:12px}.ripple-sg-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.ripple-sg-card{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-elevated);transition:border-color var(--m-fast) var(--ease-out);overflow:hidden}.ripple-sg-card[data-open=true]{border-color:color-mix(in oklab, var(--ripple-sg-accent) 45%, var(--line))}.ripple-sg-trigger{border:0;border-left:3px solid var(--ripple-sg-accent);text-align:left;width:100%;color:inherit;cursor:pointer;transition:background var(--m-fast) var(--ease-out);background:0 0;border-radius:0;grid-template-columns:1fr auto;align-items:start;gap:3px 12px;padding:14px 16px;display:grid}.ripple-sg-trigger:hover{background:var(--surface-elevated-2)}.ripple-sg-cat{letter-spacing:.12em;text-transform:uppercase;color:var(--ripple-sg-accent);grid-column:1;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;font-weight:700}.ripple-sg-title{color:var(--text-primary);text-wrap:pretty;grid-column:1;font-size:15px;font-weight:650;line-height:1.35}.ripple-sg-gist{color:var(--text-secondary);text-wrap:pretty;grid-column:1;font-size:12.5px;line-height:1.5}.ripple-sg-chev{width:14px;height:14px;color:var(--text-muted);transition:transform var(--m-fast) var(--ease-out);flex:none;grid-area:1/2/span 3;align-self:center}.ripple-sg-card[data-open=true] .ripple-sg-chev{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.ripple-sg-chev{transition:none}}.ripple-sg-body{gap:var(--s-2);border-left:3px solid var(--ripple-sg-accent);flex-direction:column;padding:0 16px 16px;display:flex}.ripple-sg-why{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:13.5px;line-height:1.6}.ripple-sg-evidence{background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-sm);flex-direction:column;gap:6px;padding:11px 12px;display:flex}.ripple-sg-evidence-text{color:var(--text-muted);overflow-wrap:anywhere;margin:0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;line-height:1.65}.ripple-sg-fix{align-items:flex-start;gap:9px;display:flex}.ripple-sg-check{width:18px;height:18px;color:var(--insight);background:color-mix(in oklab, var(--insight) 16%, transparent);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-top:1px;display:inline-flex}.ripple-sg-check svg{width:11px;height:11px}.ripple-sg-fix-text{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:13.5px;line-height:1.55}.ripple-sg-fix-label{color:var(--text-secondary);font-weight:600}.ripple-sg-suppressed{color:var(--text-muted);border:1px dashed var(--line-strong);border-radius:var(--r-md);padding:12px var(--s-md);text-wrap:pretty;font-size:12.5px;line-height:1.6}.ripple-sg-suppressed strong{color:var(--text-secondary);font-weight:600}.ripple-sg-empty{color:var(--text-muted);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-md);font-size:13.5px;line-height:1.6}
@@ -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";import{t as r}from"./colors-D49Req-e.js";var i=e(),a=n(),o=t();function s(e){switch(e){case`updated`:return`var(--insight)`;case`breaks`:return`var(--danger)`;case`affected`:return`var(--presence)`;default:return`var(--text-muted)`}}function c(e){return e===`add`?`+`:e===`del`?`−`:``}function l(e){let t=[],n=new Map;for(let r of e){let e=n.get(r.subsystem);e||(e=[],n.set(r.subsystem,e),t.push({subsystem:r.subsystem,items:e})),e.push(r)}return t}function u({model:e}){let{changes:t}=e,n=(0,i.useMemo)(()=>l(t),[t]),a=(0,i.useMemo)(()=>(t.find(e=>e.risk===`breaks`)??t[0])?.id,[t]),[s,u]=(0,i.useState)(a);(0,i.useEffect)(()=>{u(a)},[t.map(e=>e.file).join(`
2
+ `)]);let f=t.find(e=>e.id===s)??t[0];if(!f)return(0,o.jsx)(`div`,{className:`ripple-ws-empty`,children:`No changes in this diff — nothing for the workspace to read.`});let{diff:p}=f,m=f.blastOutside??0;return(0,o.jsxs)(`div`,{className:`ripple-ws`,children:[(0,o.jsx)(`nav`,{className:`ripple-ws-col ripple-ws-list`,"aria-label":`Changes in this pull request`,children:n.map(e=>(0,o.jsxs)(`div`,{className:`ripple-ws-group`,children:[(0,o.jsxs)(`div`,{className:`ripple-ws-group-head`,children:[(0,o.jsx)(`span`,{className:`ripple-eyebrow`,children:e.subsystem}),(0,o.jsx)(`span`,{className:`ripple-ws-group-count`,children:e.items.length})]}),e.items.map(e=>{let t=e.id===f.id,n=e.risk===`breaks`||e.risk===`watch`;return(0,o.jsxs)(`button`,{type:`button`,className:`ripple-ws-row`,"data-active":t,"aria-current":t?`true`:void 0,onClick:()=>u(e.id),children:[(0,o.jsx)(`span`,{className:`ripple-ws-row-dot`,style:{background:r(e.risk)},"aria-hidden":`true`}),(0,o.jsx)(`span`,{className:`ripple-ws-row-title`,children:e.title}),(0,o.jsx)(`span`,{className:`ripple-ws-row-file`,children:e.file}),n&&(0,o.jsx)(`span`,{className:`ripple-ws-row-badge`,style:{color:r(e.risk),background:`color-mix(in oklab, ${r(e.risk)} 15%, transparent)`},children:e.risk===`breaks`?`BREAKS`:`WATCH`})]},e.id)})]},e.subsystem))}),(0,o.jsxs)(`div`,{className:`ripple-ws-col ripple-ws-detail`,children:[(0,o.jsx)(`h3`,{className:`ripple-ws-detail-title`,children:f.title}),(0,o.jsxs)(`div`,{className:`ripple-ws-block`,children:[(0,o.jsx)(`span`,{className:`ripple-eyebrow`,children:`Mavéa’s read`}),(0,o.jsx)(`p`,{children:f.intent})]}),(0,o.jsxs)(`div`,{className:`ripple-ws-diff`,children:[(0,o.jsxs)(`div`,{className:`ripple-ws-diff-head`,children:[(0,o.jsx)(`span`,{className:`ripple-ws-diff-file`,children:p.file}),(0,o.jsxs)(`span`,{className:`ripple-ws-diff-stat`,children:[(0,o.jsxs)(`span`,{className:`ripple-ws-diff-add`,children:[`+`,p.add]}),(0,o.jsxs)(`span`,{className:`ripple-ws-diff-del`,children:[`−`,p.del]})]})]}),(0,o.jsx)(`div`,{className:`ripple-ws-diff-body`,children:p.lines.map((e,t)=>(0,o.jsxs)(`div`,{className:`ripple-ws-diff-line`,"data-t":e.t??`ctx`,children:[(0,o.jsx)(`span`,{className:`ripple-ws-diff-sign`,"aria-hidden":`true`,children:c(e.t)}),(0,o.jsx)(`span`,{className:`ripple-ws-diff-code`,children:e.c})]},t))})]}),(0,o.jsxs)(`div`,{className:`ripple-ws-block ripple-ws-why`,children:[(0,o.jsx)(`span`,{className:`ripple-eyebrow`,children:`Why it’s here`}),(0,o.jsx)(`p`,{children:f.why})]})]}),(0,o.jsxs)(`aside`,{className:`ripple-ws-col ripple-ws-aside`,"aria-label":`Cause and effect`,children:[(0,o.jsxs)(`div`,{className:`ripple-ws-section`,children:[(0,o.jsx)(`span`,{className:`ripple-eyebrow`,children:`Cause & effect`}),(0,o.jsxs)(`div`,{className:`ripple-ws-tiles`,children:[(0,o.jsxs)(`div`,{className:`ripple-ws-tile`,children:[(0,o.jsx)(`span`,{className:`ripple-ws-tile-num`,children:f.blastFiles??0}),(0,o.jsx)(`span`,{className:`ripple-ws-tile-label`,children:`files affected`})]}),(0,o.jsxs)(`div`,{className:`ripple-ws-tile`,"data-alarm":m>0,children:[(0,o.jsx)(`span`,{className:`ripple-ws-tile-num`,children:m}),(0,o.jsx)(`span`,{className:`ripple-ws-tile-label`,children:`outside this PR`})]})]})]}),(0,o.jsxs)(`div`,{className:`ripple-ws-section`,children:[(0,o.jsx)(`span`,{className:`ripple-eyebrow`,children:`What depends on this`}),f.links.length>0?(0,o.jsx)(`div`,{className:`ripple-ws-callers`,children:f.links.map(e=>(0,o.jsx)(d,{link:e},`${e.name}:${e.ref}`))}):(0,o.jsx)(`p`,{className:`ripple-ws-empty`,children:`Nothing else calls into this change — it’s a leaf.`})]}),f.risks&&f.risks.length>0&&(0,o.jsxs)(`div`,{className:`ripple-ws-section`,children:[(0,o.jsx)(`span`,{className:`ripple-eyebrow`,children:`Risk notes`}),(0,o.jsx)(`div`,{className:`ripple-ws-risks`,children:f.risks.map((e,t)=>(0,o.jsxs)(`div`,{className:`ripple-ws-risk`,style:{background:`color-mix(in oklab, ${r(e.level)} 10%, transparent)`,border:`1px solid color-mix(in oklab, ${r(e.level)} 28%, transparent)`},children:[(0,o.jsx)(`span`,{className:`ripple-ws-risk-dot`,style:{background:r(e.level)},"aria-hidden":`true`}),(0,o.jsx)(`span`,{className:`ripple-ws-risk-text`,children:e.text})]},t))})]})]})]})}function d(e){let t=(0,a.c)(21),{link:n}=e,r;t[0]===n.status?r=t[1]:(r=s(n.status),t[0]=n.status,t[1]=r);let i=r,c=n.scope===`cross-repo`,l;t[2]===n.name?l=t[3]:(l=(0,o.jsx)(`span`,{className:`ripple-ws-caller-name`,children:n.name}),t[2]=n.name,t[3]=l);let u;t[4]===n.ref?u=t[5]:(u=(0,o.jsx)(`span`,{className:`ripple-ws-caller-ref`,children:n.ref}),t[4]=n.ref,t[5]=u);let d;t[6]!==l||t[7]!==u?(d=(0,o.jsxs)(`span`,{className:`ripple-ws-caller-main`,children:[l,u]}),t[6]=l,t[7]=u,t[8]=d):d=t[8];let f=`color-mix(in oklab, ${i} 15%, transparent)`,p;t[9]!==i||t[10]!==f?(p={color:i,background:f},t[9]=i,t[10]=f,t[11]=p):p=t[11];let m;t[12]===n.status?m=t[13]:(m=n.status.toUpperCase(),t[12]=n.status,t[13]=m);let h=c?` · OUTSIDE PR`:``,g;t[14]!==p||t[15]!==m||t[16]!==h?(g=(0,o.jsxs)(`span`,{className:`ripple-ws-caller-badge`,style:p,children:[m,h]}),t[14]=p,t[15]=m,t[16]=h,t[17]=g):g=t[17];let _;return t[18]!==d||t[19]!==g?(_=(0,o.jsxs)(`div`,{className:`ripple-ws-caller`,children:[d,g]}),t[18]=d,t[19]=g,t[20]=_):_=t[20],_}export{u as ShipWorkspace};
@@ -0,0 +1 @@
1
+ .ripple-ws{gap:var(--s-lg);grid-template-columns:minmax(0,.92fr) minmax(0,1.5fr) minmax(0,1.05fr);align-items:start;min-width:0;display:grid}@media (width<=1080px){.ripple-ws{grid-template-columns:1fr}}.ripple-ws-col{flex-direction:column;gap:14px;min-width:0;display:flex}.ripple-ws-list{gap:var(--s-md);flex-direction:column;min-width:0;display:flex}.ripple-ws-group{flex-direction:column;gap:4px;min-width:0;display:flex}.ripple-ws-group-head{justify-content:space-between;align-items:baseline;gap:8px;padding:0 4px 2px;display:flex}.ripple-ws-group-count{color:var(--text-muted);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;font-weight:600}.ripple-ws-row{text-align:left;border-radius:var(--r-sm);cursor:pointer;width:100%;transition:background var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out);background:0 0;border:1px solid #0000;grid-template-columns:auto 1fr auto;grid-template-areas:"dot title badge""dot file badge";align-items:center;gap:1px 9px;padding:8px 10px;display:grid}.ripple-ws-row:hover{background:var(--surface-elevated)}.ripple-ws-row[data-active=true]{background:color-mix(in oklab, var(--presence) 14%, transparent);border-color:color-mix(in oklab, var(--presence) 34%, transparent)}.ripple-ws-row-dot{border-radius:50%;flex:none;grid-area:dot;width:8px;height:8px}.ripple-ws-row-title{min-width:0;color:var(--text-primary);text-wrap:pretty;grid-area:title;font-size:13px;font-weight:600;line-height:1.3}.ripple-ws-row-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-ws-row-badge{letter-spacing:.08em;white-space:nowrap;border-radius:4px;grid-area:badge;align-self:center;padding:2px 5px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:8px;font-weight:700}.ripple-ws-detail{flex-direction:column;gap:16px;min-width:0;display:flex}.ripple-ws-detail-title{letter-spacing:-.01em;color:var(--text-primary);text-wrap:pretty;margin:0;font-size:22px;font-weight:700;line-height:1.3}.ripple-ws-block{flex-direction:column;gap:6px;min-width:0;display:flex}.ripple-ws-block p{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:14px;line-height:1.55}.ripple-ws-diff{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-default);overflow:hidden}.ripple-ws-diff-head{border-bottom:1px solid var(--line);background:var(--surface-elevated);justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.ripple-ws-diff-file{min-width:0;color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11.5px;font-weight:600;overflow:hidden}.ripple-ws-diff-stat{flex:none;align-items:center;gap:8px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;font-weight:600;display:inline-flex}.ripple-ws-diff-add{color:var(--insight)}.ripple-ws-diff-del{color:var(--danger)}.ripple-ws-diff-body{flex-direction:column;padding:6px 0;display:flex}.ripple-ws-diff-line{grid-template-columns:18px 1fr;align-items:baseline;column-gap:4px;padding:1px 12px 1px 8px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px;line-height:1.6;display:grid}.ripple-ws-diff-sign{text-align:center;-webkit-user-select:none;user-select:none;color:var(--text-muted)}.ripple-ws-diff-code{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;color:var(--text-secondary)}.ripple-ws-diff-line[data-t=add]{background:color-mix(in oklab, var(--insight) 11%, transparent)}.ripple-ws-diff-line[data-t=add] .ripple-ws-diff-sign{color:var(--insight)}.ripple-ws-diff-line[data-t=add] .ripple-ws-diff-code{color:var(--text-primary)}.ripple-ws-diff-line[data-t=del]{background:color-mix(in oklab, var(--danger) 11%, transparent)}.ripple-ws-diff-line[data-t=del] .ripple-ws-diff-sign{color:var(--danger)}.ripple-ws-diff-line[data-t=del] .ripple-ws-diff-code{color:var(--text-primary)}.ripple-ws-why{border-left:2px solid color-mix(in oklab, var(--presence) 55%, transparent);flex-direction:column;gap:6px;padding-left:14px;display:flex}.ripple-ws-aside{flex-direction:column;gap:18px;min-width:0;display:flex}.ripple-ws-section{flex-direction:column;gap:9px;min-width:0;display:flex}.ripple-ws-tiles{grid-template-columns:1fr 1fr;gap:10px;display:grid}.ripple-ws-tile{background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);flex-direction:column;gap:3px;min-width:0;padding:11px 13px;display:flex}.ripple-ws-tile[data-alarm=true]{background:color-mix(in oklab, var(--danger) 12%, transparent);border-color:color-mix(in oklab, var(--danger) 30%, transparent)}.ripple-ws-tile-num{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1}.ripple-ws-tile[data-alarm=true] .ripple-ws-tile-num{color:var(--danger)}.ripple-ws-tile-label{color:var(--text-secondary);font-size:11px;line-height:1.3}.ripple-ws-callers{flex-direction:column;gap:6px;display:flex}.ripple-ws-caller{background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);align-items:center;gap:9px;min-width:0;padding:8px 11px;display:flex}.ripple-ws-caller-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ripple-ws-caller-name{color:var(--text-primary);text-wrap:pretty;font-size:12.5px;font-weight:600}.ripple-ws-caller-ref{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;overflow:hidden}.ripple-ws-caller-badge{letter-spacing:.06em;text-align:right;text-wrap:balance;border-radius:4px;flex:none;max-width:42%;padding:3px 6px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:8px;font-weight:700}.ripple-ws-empty{color:var(--text-muted);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);text-wrap:pretty;padding:11px 13px;font-size:12.5px;line-height:1.5}.ripple-ws-risks{flex-direction:column;gap:7px;display:flex}.ripple-ws-risk{border-radius:var(--r-sm);align-items:flex-start;gap:9px;min-width:0;padding:9px 11px;display:flex}.ripple-ws-risk-dot{border-radius:50%;flex:none;width:7px;height:7px;margin-top:5px}.ripple-ws-risk-text{color:var(--text-primary);text-wrap:pretty;font-size:12.5px;line-height:1.45}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-DaSxXjOY.js";import{ht as t,ut as n}from"./index-y8GL67bB.js";import{t as r}from"./Orb-B0NEVfqL.js";var i=t(),a=e(),o=[{title:`Chicago · 4-Day Architectu…`,time:`3:14`,snip:`help me plan a trip t…`,tone:`blue`},{title:`Chicago · 4-Day Culinary…`,time:`3:14`,snip:`what are the restaura…`,tone:`green`},{title:`Chicago · 4-Day Itinerary`,time:`3:14`,snip:`what other things sh…`,tone:`amber`,active:!0}],s=[{name:`Speakeasies`,tag:`Hidden & exclusive`,w:`48%`,tone:`presence`},{name:`Live music`,tag:`Blues & jazz`,w:`78%`,tone:`warning`},{name:`Cocktail bars`,tag:`Modern & craft`,w:`46%`,tone:`presence`}],c=[`Reservations are essential for popular speakeasies.`,`Check the music schedule for blues clubs in advance.`,`Use the “L” train or a rideshare; parking is difficult.`,`Dress codes vary; check the venue’s site before going.`],l=[{left:`62%`,top:`34%`,tone:`presence`,n:`2`},{left:`54%`,top:`66%`,tone:`warning`,n:`3`},{left:`60%`,top:`70%`,tone:`insight`,n:`1`,ring:!0}];function u(e){let t=[];for(let n=-48;n<=448;n+=24)t.push(e?`M${n},-48 V248`:`M-48,${n} H448`);return t.join(` `)}function d(){let e=(0,i.c)(3),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,a.jsx)(`rect`,{className:`fl-m-land`,width:`400`,height:`200`}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,a.jsx)(`path`,{className:`fl-m-minor`,d:u(!0)}),e[1]=n):n=e[1];let r;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,a.jsxs)(`svg`,{className:`fl-map-art`,viewBox:`0 0 400 200`,preserveAspectRatio:`xMidYMid slice`,"aria-hidden":`true`,children:[t,(0,a.jsxs)(`g`,{className:`fl-m-streets`,transform:`rotate(-8 200 100)`,children:[n,(0,a.jsx)(`path`,{className:`fl-m-minor`,d:u(!1)}),(0,a.jsx)(`path`,{className:`fl-m-major`,d:`M88,-48 V248 M168,-48 V248 M248,-48 V248`}),(0,a.jsx)(`path`,{className:`fl-m-major`,d:`M-48,64 H448 M-48,128 H448`}),(0,a.jsx)(`path`,{className:`fl-m-major`,d:`M-10,214 L300,-14`})]}),(0,a.jsx)(`path`,{className:`fl-m-park`,d:`M196,132 C218,124 244,128 250,146 C255,162 236,176 214,174 C192,172 180,152 196,132 Z`}),(0,a.jsx)(`path`,{className:`fl-m-river`,d:`M284,36 C238,52 206,44 168,58 C136,70 104,62 70,76`}),(0,a.jsx)(`path`,{className:`fl-m-water`,d:`M285,0 C270,60 276,140 262,200 L400,200 L400,0 Z`}),(0,a.jsx)(`path`,{className:`fl-m-shore`,d:`M285,0 C270,60 276,140 262,200`}),(0,a.jsx)(`path`,{className:`fl-m-current`,d:`M310,52 C326,46 342,50 356,42`}),(0,a.jsx)(`path`,{className:`fl-m-current`,d:`M318,120 C336,114 350,120 366,110`})]}),e[2]=r):r=e[2],r}function f(){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n,{eyebrow:`The signature move`,children:[`It listens. It speaks. `,(0,a.jsx)(`em`,{children:`Then it draws.`})]}),(0,a.jsxs)(`div`,{className:`fl-window`,children:[(0,a.jsxs)(`div`,{className:`fl-window-bar`,children:[(0,a.jsx)(`span`,{className:`fl-light r`}),(0,a.jsx)(`span`,{className:`fl-light y`}),(0,a.jsx)(`span`,{className:`fl-light g`}),(0,a.jsxs)(`div`,{className:`fl-window-title`,children:[(0,a.jsx)(r,{size:18,className:`fl-orb-inline`}),(0,a.jsx)(`span`,{className:`fl-window-topic`,children:`Chicago Nightlife: A Curated Guide`}),(0,a.jsx)(`span`,{className:`fl-live`,style:{color:`var(--text-muted)`},children:`Example`})]})]}),(0,a.jsxs)(`div`,{className:`fl-window-body`,children:[(0,a.jsxs)(`aside`,{className:`fl-rail`,children:[(0,a.jsxs)(`div`,{className:`fl-rail-head`,children:[(0,a.jsx)(`span`,{children:`This session`}),(0,a.jsx)(`span`,{className:`fl-rail-chip`,children:`Replay`})]}),o.map(e=>(0,a.jsxs)(`div`,{className:`fl-rail-row`+(e.active?` active`:``),children:[(0,a.jsx)(`div`,{className:`fl-rail-title tone-`+e.tone,children:e.title}),(0,a.jsxs)(`div`,{className:`fl-rail-snip`,children:[(0,a.jsx)(`span`,{className:`fl-rail-time`,children:e.time}),(0,a.jsx)(`span`,{className:`fl-rail-text`,children:e.snip})]})]},e.title))]}),(0,a.jsxs)(`div`,{className:`fl-canvas`,children:[(0,a.jsxs)(`div`,{className:`fl-finding`,children:[(0,a.jsxs)(`div`,{className:`fl-finding-kicker`,children:[(0,a.jsx)(`svg`,{viewBox:`0 0 24 24`,"aria-hidden":`true`,children:(0,a.jsx)(`path`,{d:`M12 2l1.6 6.4L20 10l-6.4 1.6L12 18l-1.6-6.4L4 10l6.4-1.6z`})}),`Finding 1`]}),(0,a.jsx)(`div`,{className:`fl-finding-title`,children:`The Chicago after-dark vibe`}),(0,a.jsxs)(`p`,{className:`fl-finding-text`,children:[`Chicago’s nightlife thrives on variety. Whether you’re after a quiet, high-end cocktail lounge or a high-energy blues bar, there’s a district for it.`,(0,a.jsx)(`span`,{className:`fl-caret`})]}),(0,a.jsx)(`span`,{className:`fl-badge inferred`,children:`Inferred`})]}),(0,a.jsxs)(`div`,{className:`fl-fig`,children:[(0,a.jsx)(`div`,{className:`fl-fig-label`,children:`Fig. 1 — Nightlife hotspots`}),(0,a.jsxs)(`div`,{className:`fl-map`,children:[(0,a.jsx)(d,{}),(0,a.jsxs)(`div`,{className:`fl-map-zoom`,children:[(0,a.jsx)(`span`,{children:`+`}),(0,a.jsx)(`span`,{children:`−`})]}),l.map((e,t)=>(0,a.jsx)(`span`,{className:`fl-pin tone-`+e.tone+(e.ring?` ring`:``),style:{left:e.left,top:e.top,"--pin-i":String(t)},children:e.n},e.n)),(0,a.jsx)(`span`,{className:`fl-map-attr`,children:`Illustrated map`})]}),(0,a.jsx)(`div`,{className:`fl-fig-note`,children:`Illustrated example · 3 locations`})]}),(0,a.jsxs)(`div`,{className:`fl-cardrow`,children:[(0,a.jsxs)(`div`,{className:`fl-mini`,children:[(0,a.jsx)(`div`,{className:`fl-mini-label`,children:`▦ Nightlife categories`}),s.map((e,t)=>(0,a.jsxs)(`div`,{className:`fl-bar`,children:[(0,a.jsxs)(`div`,{className:`fl-bar-top`,children:[(0,a.jsx)(`span`,{className:`fl-bar-name`,children:e.name}),(0,a.jsx)(`span`,{className:`fl-bar-tag`,children:e.tag})]}),(0,a.jsx)(`div`,{className:`fl-bar-track`,children:(0,a.jsx)(`div`,{className:`fl-bar-fill tone-`+e.tone,style:{"--w":e.w,"--bar-i":String(t)}})})]},e.name))]}),(0,a.jsxs)(`div`,{className:`fl-mini`,children:[(0,a.jsx)(`div`,{className:`fl-mini-label`,children:`✦ Pro-tips for Chicago nights`}),c.map((e,t)=>(0,a.jsxs)(`div`,{className:`fl-tip`,style:{"--tip-i":String(t)},children:[(0,a.jsx)(`svg`,{viewBox:`0 0 24 24`,"aria-hidden":`true`,children:(0,a.jsx)(`path`,{pathLength:1,d:`M20 6L9 17l-5-5`})}),(0,a.jsx)(`span`,{children:e})]},e))]})]}),(0,a.jsxs)(`div`,{className:`fl-dock`,children:[(0,a.jsx)(`span`,{className:`fl-dock-mic`,children:(0,a.jsx)(`svg`,{viewBox:`0 0 24 24`,"aria-hidden":`true`,children:(0,a.jsx)(`path`,{d:`M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3zM5 11a7 7 0 0 0 14 0M12 18v3`})})}),(0,a.jsx)(`span`,{className:`fl-dock-text`,children:`Talk, or type — anything.`}),(0,a.jsxs)(`span`,{className:`fl-dock-mark`,children:[(0,a.jsx)(`svg`,{viewBox:`0 0 24 24`,"aria-hidden":`true`,children:(0,a.jsx)(`path`,{d:`M3 21l3.2-.9L18 8.3l-2.3-2.3L4 17.6 3 21z M14.7 7l2.3 2.3`})}),`Highlight`]}),(0,a.jsx)(`span`,{className:`fl-dock-send`,children:(0,a.jsx)(`svg`,{viewBox:`0 0 24 24`,"aria-hidden":`true`,children:(0,a.jsx)(`path`,{d:`M5 12h14M13 6l6 6-6 6`})})})]})]})]})]})]})}export{f as SignatureLoop};
@@ -0,0 +1 @@
1
+ import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{t as n}from"./useFocusTrap-DbfG6zbM.js";import{n as r}from"./queue-J4h7E3uc.js";import{m as i,o as a,u as o}from"./store-DXmC_fP2.js";var s=e(),c={spaced:{eyebrow:`REVIEW`,dialogLabel:`Review your cards`,emptyHead:`Nothing ready`,emptySub:`No cards are ready to study here yet.`,doneHead:`Session done`,doneSub:(e,t)=>`${e} of ${t} answered confidently.`,moreLeft:`That's this round. The rest will keep.`,filters:[{key:`all`,label:`All`,showCount:!0},{key:`due`,label:`Due`,showCount:!0},{key:`new`,label:`New`,showCount:!0},{key:`struggling`,label:`Struggling`,showCount:!0},{key:`suspended`,label:`Suspended`,showCount:!0}],filterAdjective:{due:`Due`,new:`New`,struggling:`Struggling`},status:{parked:`Suspended`,fresh:`New`,touched:`Scheduled`},parkVerb:{park:`Suspend`,unpark:`Unsuspend`,title:`Suspend (skip in study)`}},collection:{eyebrow:`FLASHCARDS`,dialogLabel:`Flip through your cards`,emptyHead:`Nothing to flip`,emptySub:`No cards here yet. Tap "Cards" on any answer to start a pile.`,doneHead:`Done`,doneSub:(e,t)=>`You got ${e} of ${t}.`,moreLeft:`That's this round. The rest will keep.`,filters:[{key:`all`,label:`All`,showCount:!0},{key:`unseen`,label:`Unseen`,showCount:!1},{key:`missed`,label:`Missed`,showCount:!1},{key:`suspended`,label:`Parked`,showCount:!1}],filterAdjective:{unseen:`Unseen`,missed:`Missed`},status:{parked:`Parked`,fresh:`Unseen`,touched:`Seen`},parkVerb:{park:`Park`,unpark:`Unpark`,title:`Park (skip in study)`}}};function l(e){return c[e]}var u=t(),d={spaced:[{key:`again`,label:`Again`,tint:`var(--danger)`,good:!1,apply:e=>i(e,0)},{key:`hard`,label:`Hard`,tint:`var(--warning)`,good:!1,apply:e=>i(e,2)},{key:`good`,label:`Good`,tint:`var(--presence)`,good:!0,apply:e=>i(e,4)},{key:`easy`,label:`Easy`,tint:`var(--insight)`,good:!0,apply:e=>i(e,5)}],collection:[{key:`missed`,label:`Not yet`,tint:`var(--warning)`,good:!1,requeue:!0,apply:e=>o(e,!1)},{key:`got`,label:`Got it`,tint:`var(--presence)`,good:!0,apply:e=>o(e,!0)}]};function f({onClose:e,scope:t,title:i}){let o=(0,s.useRef)(null);n(o);let c=(0,s.useMemo)(()=>a(),[]),f=l(c),p=d[c],[m]=(0,s.useState)(()=>r(t??{})),[h,g]=(0,s.useState)(0),[_,v]=(0,s.useState)(!1),[y,b]=(0,s.useState)(!1),[x,S]=(0,s.useState)(0),[C,w]=(0,s.useState)(()=>Object.fromEntries(p.map(e=>[e.key,0]))),[T,E]=(0,s.useState)([]),D=(0,s.useRef)(new Set);(0,s.useEffect)(()=>{let t=t=>{if(t.key===`Escape`){e();return}if(!y&&m.length!==0){if(t.key===` `&&!_){t.preventDefault(),v(!0);return}if(_){let e=Number(t.key);Number.isInteger(e)&&e>=1&&e<=p.length&&k(p[e-1])}}};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[_,y,m.length,e,p]);let O=(0,s.useRef)(()=>{}),k=(0,s.useCallback)(e=>{O.current(e)},[]);(0,s.useEffect)(()=>{O.current=e=>{let t=[...m,...T];if(h>=t.length)return;let n=t[h];e.apply(n.id),e.good&&S(e=>e+1),w(t=>({...t,[e.key]:(t[e.key]??0)+1}));let r=T;e.requeue&&!D.current.has(n.id)&&(D.current.add(n.id),r=[...T,n],E(r));let i=h+1;i>=m.length+r.length?b(!0):(g(i),v(!1))}},[h,m,T]);let A=[...m,...T],j=A[h],M=m.length,N=h>=M?`${A.length-h} to look at again`:`${h+1} / ${M}`,P=t=>{t.target===t.currentTarget&&e()};return(0,u.jsx)(`div`,{className:`srs-scrim`,role:`button`,tabIndex:0,"aria-label":`Close`,onClick:P,onKeyDown:e=>{e.key!==`Enter`&&e.key!==` `||(e.key===` `&&e.preventDefault(),P(e))},children:(0,u.jsxs)(`div`,{className:`srs-shell`,ref:o,role:`dialog`,"aria-label":f.dialogLabel,tabIndex:-1,children:[(0,u.jsxs)(`div`,{className:`srs-header`,children:[(0,u.jsx)(`div`,{className:`srs-eyebrow`,children:i??f.eyebrow}),M>0&&!y&&(0,u.jsx)(`div`,{className:`srs-progress`,children:N}),(0,u.jsx)(`button`,{type:`button`,className:`srs-close-btn`,onClick:e,"aria-label":`Close review session`,children:`✕`})]}),M===0&&(0,u.jsxs)(`div`,{className:`srs-center`,children:[(0,u.jsx)(`div`,{className:`srs-big-icon`,"aria-hidden":`true`,children:`✓`}),(0,u.jsx)(`div`,{className:`srs-done-head`,children:f.emptyHead}),(0,u.jsx)(`div`,{className:`srs-done-sub`,children:f.emptySub}),(0,u.jsx)(`button`,{type:`button`,className:`srs-close-action`,onClick:e,children:`Close`})]}),y&&(0,u.jsxs)(`div`,{className:`srs-center`,children:[(0,u.jsx)(`div`,{className:`srs-big-icon`,"aria-hidden":`true`,children:`🎉`}),(0,u.jsx)(`div`,{className:`srs-done-head`,children:f.doneHead}),(0,u.jsx)(`div`,{className:`srs-done-sub`,children:f.doneSub(x,M)}),(0,u.jsx)(`div`,{className:`srs-done-breakdown`,"aria-label":`How it went`,children:p.map(e=>(0,u.jsxs)(`span`,{className:`srs-done-chip`,style:{borderColor:e.tint},children:[(0,u.jsx)(`span`,{className:`srs-done-chip-n`,children:C[e.key]??0}),e.label]},e.key))}),(0,u.jsx)(`button`,{type:`button`,className:`srs-close-action`,onClick:e,children:`Close`})]}),M>0&&!y&&j&&(0,u.jsxs)(`div`,{className:`srs-body`,children:[j.deck&&(0,u.jsx)(`div`,{className:`srs-tag`,children:j.deck}),(0,u.jsx)(`div`,{className:`srs-flip-scene`,onClick:()=>{_||v(!0)},role:`button`,tabIndex:0,"aria-label":_?`Card back`:`Tap to reveal answer`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&!_&&(e.preventDefault(),v(!0))},children:(0,u.jsxs)(`div`,{className:`srs-flip-card${_?` flipped`:``}`,children:[(0,u.jsxs)(`div`,{className:`srs-face srs-face-front`,children:[(0,u.jsx)(`div`,{className:`srs-face-label`,children:`QUESTION`}),(0,u.jsx)(`div`,{className:`srs-face-text`,children:j.front}),(0,u.jsx)(`div`,{className:`srs-tap-hint`,children:`tap to flip`})]}),(0,u.jsxs)(`div`,{className:`srs-face srs-face-back`,children:[(0,u.jsx)(`div`,{className:`srs-face-label`,children:`ANSWER`}),(0,u.jsx)(`div`,{className:`srs-face-text`,children:j.back})]})]})}),_&&(0,u.jsx)(`div`,{className:`srs-grades`,"data-count":p.length,children:p.map((e,t)=>(0,u.jsxs)(`button`,{type:`button`,className:`srs-grade-btn`,style:{border:`1px solid ${e.tint}`},onClick:()=>k(e),title:`Press ${t+1}`,children:[(0,u.jsx)(`span`,{className:`srs-grade-label`,children:e.label}),(0,u.jsx)(`span`,{className:`srs-grade-key`,children:t+1})]},e.key))}),!_&&(0,u.jsx)(`div`,{className:`srs-flip-prompt`,children:`Space to flip · Escape to close`})]})]})})}export{f as SrsReview,l as t};
@@ -0,0 +1 @@
1
+ .srs-scrim{z-index:90;background:rgba(var(--scrim-rgb), .72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.srs-shell{background:var(--surface-elevated);border:1px solid var(--line-soft);width:min(520px,100%);box-shadow:var(--shadow-modal);border-radius:20px;flex-direction:column;display:flex;position:relative;overflow:hidden}.srs-header{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:20px 24px 16px;display:flex}.srs-eyebrow{font:700 10.5px/1 var(--font);letter-spacing:.14em;color:var(--text-muted)}.srs-progress{font:600 13px/1 var(--font);color:var(--text-secondary);margin-left:auto}.srs-close-btn{border:1px solid var(--line-soft);width:30px;height:30px;color:var(--text-muted);cursor:pointer;transition:color var(--m-quick), border-color var(--m-quick);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;font-size:13px;line-height:1;display:flex}.srs-close-btn:hover{color:var(--text-primary);border-color:var(--line-mid)}.srs-header:has(.srs-progress) .srs-close-btn{margin-left:0}.srs-body{flex-direction:column;align-items:center;gap:20px;padding:28px 24px;display:flex}.srs-tag{font:600 10.5px/1 var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--presence-soft);background:color-mix(in oklab, var(--presence) 14%, transparent);border:1px solid color-mix(in oklab, var(--presence) 30%, transparent);border-radius:var(--r-full);padding:4px 12px}.srs-flip-scene{perspective:1000px;cursor:pointer;width:100%}.srs-flip-card{width:100%;min-height:200px;transform-style:preserve-3d;transition:transform .42s cubic-bezier(.4,0,.2,1);position:relative}.srs-flip-card.flipped{transform:rotateY(180deg)}.srs-face{backface-visibility:hidden;border-radius:14px;flex-direction:column;gap:12px;min-height:200px;padding:28px 28px 20px;display:flex;position:absolute;inset:0}.srs-face-front{background:var(--surface-elevated-2);border:1px solid var(--line-soft)}.srs-face-back{background:color-mix(in oklab, var(--insight) 8%, var(--surface-elevated));border:1px solid color-mix(in oklab, var(--insight) 28%, transparent);transform:rotateY(180deg)}.srs-face-label{font:700 9.5px/1 var(--font);letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint)}.srs-face-text{font:450 18px/1.55 var(--font);color:var(--text-primary);word-break:break-word;flex:1}.srs-tap-hint{font:450 11.5px/1 var(--font);color:var(--text-faint);text-align:right;margin-top:auto}.srs-grades{gap:10px;width:100%;display:flex}@media (width<=480px){.srs-grades{grid-template-columns:1fr 1fr;display:grid}}.srs-grades[data-count="2"]{max-width:420px;margin-inline:auto}.srs-grade-btn{border-radius:var(--r-md);cursor:pointer;transition:background var(--m-quick);background:0 0;flex-direction:column;flex:1;align-items:center;gap:0;padding:11px 8px;display:flex}.srs-grade-btn:hover{background:var(--surface-glass)}.srs-grade-label{font:600 13.5px/1 var(--font);color:var(--text-primary);display:block}.srs-grade-key{font:500 10px/1 var(--font);color:var(--text-muted);margin-top:4px;display:block}.srs-flip-prompt{font:450 11.5px/1 var(--font);color:var(--text-faint);text-align:center}.srs-center{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:48px 24px 40px;display:flex}.srs-big-icon{color:var(--text-secondary);font-size:48px;line-height:1}.srs-done-head{font:700 22px/1.2 var(--font);color:var(--text-primary)}.srs-done-sub{font:450 14px/1.55 var(--font);color:var(--text-secondary);max-width:320px}.srs-done-breakdown{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px;display:flex}.srs-done-chip{border:1px solid var(--line-mid);border-radius:var(--r-full);font:500 12px/1 var(--font);color:var(--text-secondary);align-items:center;gap:6px;padding:5px 11px;display:inline-flex}.srs-done-chip-n{font:700 13px/1 var(--font);color:var(--text-primary)}.srs-close-action{border-radius:var(--r-full);border:1px solid var(--line-mid);color:var(--text-primary);font:600 14px/1 var(--font);cursor:pointer;transition:background var(--m-quick), border-color var(--m-quick);background:0 0;margin-top:8px;padding:10px 28px}.srs-close-action:hover{background:var(--surface-glass)}
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PrismOverlay-B7lEspdu.js","assets/index-y8GL67bB.js","assets/chunk-BVpWp9h4.js","assets/jsx-runtime-DaSxXjOY.js","assets/react-BQSORdFI.js","assets/lazyRetry-D50B1UMY.js","assets/index-CepQEz75.css","assets/providers-wzm7E8Pa.js","assets/http-CJCtjYpA.js","assets/info-CiqHR5cs.js","assets/sourceHost-BV3t2XDb.js","assets/toast-BBNs2h3L.js","assets/penStrokes-9Q_l7NTt.js","assets/gesture-DabMpPcq.js","assets/citation-BcvmjKS8.js","assets/verbatim-CBMzUDlf.js","assets/officeDoc-B6nEhNp4.js","assets/search-DnjHupRf.js","assets/streamParse-DRgMHWye.js","assets/useFocusTrap-DbfG6zbM.js","assets/PrismOverlay-BTfAicBt.css","assets/SynthesisOverlay-CkERphvG.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{I as n,J as r,L as i,M as a,N as o,k as s,q as c}from"./index-y8GL67bB.js";import{n as l}from"./icons-CHVz6kv_.js";import{t as u}from"./FeatureUseNotice-DPtQ0OGb.js";import{a as d,g as f,o as p,p as m,u as h}from"./providers-wzm7E8Pa.js";import{t as g}from"./homeTarget-BgWKI_E1.js";import{l as _,n as v}from"./useLiveConfig-X9Wxh90k.js";/* empty css */import{n as y,r as b}from"./officeDoc-B6nEhNp4.js";var x=e(),S=/\.(pdf|docx|pptx|xlsx|csv|tsv|txt|text|md|markdown|json|jsonl|ndjson|ya?ml|toml|xml|log|tab|js|ts|jsx|tsx|py|rb|go|rs|java|c|h|cpp|cs|sh|sql|css|html?)$/i,C=/(^|\/)(\.git|node_modules|\.DS_Store|__pycache__|\.venv|dist|build|__MACOSX)(\/|$)/i;function w(e){return e.filter(e=>{let t=e.webkitRelativePath||e.name;return S.test(e.name)&&!C.test(t)})}async function T(e,t={}){let{max:n=200,onProgress:r}=t,i=w(e),a=i.slice(0,n),o=[];for(let e=0;e<a.length;e+=1){let t=await m(a[e]);t.ok&&t.attachment&&o.push(t.attachment),r?.(e+1,a.length)}return{sources:o,skipped:i.length-o.length}}var E={docx:`application/vnd.openxmlformats-officedocument.wordprocessingml.document`,pptx:`application/vnd.openxmlformats-officedocument.presentationml.presentation`,xlsx:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`};function D(e){let t=e.split(`.`).pop()?.toLowerCase()??``;return t===`pdf`?`application/pdf`:E[t]??``}async function O(e){let t;try{t=await b(e.data?y(e.data):await p(e))}catch{return[]}if(!t)return[];let n=[];for(let[e,r]of t){if(n.length>=200)break;if(e.endsWith(`/`)||r.length===0||C.test(e))continue;let t=e.split(`/`).pop()??e;if(!t||t.startsWith(`.`))continue;let i={name:t,mime:D(t),data:``,size:r.length,bytes:Uint8Array.from(r).buffer};f(i)&&n.push(i)}return n}function k(e){return e.mime===`application/zip`||e.mime===`application/x-zip-compressed`||/\.zip$/i.test(e.name)}var A=[[`Foci et al. 2024. In the treatment arm we observed 42% improvement at 12 weeks on the primary endpoint. No serious adverse events were reported over the study period.`],[`Maso et al. 2023. Across the full cohort there was no significant effect at 24 weeks on the relapse rate, a secondary endpoint.`],[`Nyra 2024. The trial recorded 38% improvement at 12 weeks in the treatment arm, with mild adverse events in 12% of patients. Adoption remains limited outside academic centers.`],[`Cost Review 2023. The analysis finds the annual treatment cost is $18,400 per patient at list price.`],[`Ledger 2022. After rebates, the intervention costs $9,200 per patient annually.`],[`Adoption Survey 2024. Among surveyed sites, 62% of clinics adopted the protocol within the first year.`]],j={sources:[{id:`s0`,fileName:`foci-2024.pdf`,kind:`pdf`,pageCount:1,label:`Foci et al. 2024`},{id:`s1`,fileName:`maso-2023.pdf`,kind:`pdf`,pageCount:1,label:`Maso et al. 2023`},{id:`s2`,fileName:`nyra-2024.pdf`,kind:`pdf`,pageCount:1,label:`Nyra 2024`},{id:`s3`,fileName:`cost-review-2023.pdf`,kind:`pdf`,pageCount:1,label:`Cost Review 2023`},{id:`s4`,fileName:`ledger-2022.pdf`,kind:`pdf`,pageCount:1,label:`Ledger 2022`},{id:`s5`,fileName:`adoption-survey-2024.pdf`,kind:`pdf`,pageCount:1,label:`Adoption Survey 2024`}],themes:[{id:`Efficacy`,name:`Efficacy`,sourceCount:3,claimCount:3},{id:`Safety`,name:`Safety`,sourceCount:2,claimCount:2},{id:`Cost`,name:`Cost`,sourceCount:2,claimCount:2},{id:`Adoption`,name:`Adoption`,sourceCount:2,claimCount:2}],claims:[{id:`s0c0`,quote:`42% improvement at 12 weeks on the primary endpoint`,page:1,kind:`stat`,title:`42% improvement at 12 weeks`,ask:`On which endpoint?`,role:`load-bearing`,region:`Efficacy`,source:0},{id:`s1c0`,quote:`no significant effect at 24 weeks on the relapse rate`,page:1,kind:`finding`,title:`No effect at 24 weeks`,ask:`Which endpoint?`,role:`load-bearing`,region:`Efficacy`,source:1},{id:`s2c0`,quote:`38% improvement at 12 weeks in the treatment arm`,page:1,kind:`stat`,title:`38% improvement at 12 weeks`,ask:`How measured?`,role:`supporting`,region:`Efficacy`,source:2},{id:`s0c1`,quote:`No serious adverse events were reported`,page:1,kind:`finding`,title:`No serious adverse events`,ask:`Over what period?`,role:`supporting`,region:`Safety`,source:0},{id:`s2c1`,quote:`mild adverse events in 12% of patients`,page:1,kind:`risk`,title:`Mild adverse events in 12%`,ask:`Which events?`,role:`supporting`,region:`Safety`,source:2},{id:`s3c0`,quote:`annual treatment cost is $18,400 per patient`,page:1,kind:`stat`,title:`Cost $18,400 per patient`,ask:`List or net price?`,role:`load-bearing`,region:`Cost`,source:3},{id:`s4c0`,quote:`the intervention costs $9,200 per patient annually`,page:1,kind:`stat`,title:`Cost $9,200 per patient`,ask:`Before or after rebates?`,role:`load-bearing`,region:`Cost`,source:4},{id:`s5c0`,quote:`62% of clinics adopted the protocol`,page:1,kind:`stat`,title:`62% of clinics adopted`,ask:`Over what window?`,role:`supporting`,region:`Adoption`,source:5},{id:`s2c2`,quote:`Adoption remains limited outside academic centers`,page:1,kind:`finding`,title:`Limited outside academia`,ask:`Why limited?`,role:`context`,region:`Adoption`,source:2}],threads:[{a:`s0c0`,b:`s1c0`,relation:`in-tension`,crossDoc:!0},{a:`s3c0`,b:`s4c0`,relation:`contradicts`,crossDoc:!0},{a:`s0c0`,b:`s2c0`,relation:`agrees`,crossDoc:!0}],contradictions:[{id:`x0`,theme:`Efficacy`,a:`s0c0`,b:`s1c0`,relation:`in-tension`,sharedQuantity:`drug efficacy`,comparable:!1,caveat:`timeframe`,label:`Two trials disagree on efficacy`,seedQuestion:`Are these comparable? "42% improvement at 12 weeks" (12week) vs "No effect at 24 weeks" (24week) — do they measure the same endpoint, population, and timeframe?`},{id:`x1`,theme:`Cost`,a:`s3c0`,b:`s4c0`,relation:`contradicts`,sharedQuantity:`annual treatment cost`,comparable:!0,matchPhrase:`per patient`,delta:{aValue:18400,bValue:9200,unit:`$`},label:`Sources disagree on annual treatment cost`,seedQuestion:`Are these comparable? "Cost $18,400 per patient" (unspecified scope) vs "Cost $9,200 per patient" (unspecified scope) — do they measure the same endpoint, population, and timeframe?`}],gaps:[{id:`g0`,theme:`Safety`,facet:{id:`f0`,label:`Pediatric population`,surfaceForms:[`pediatric`,`paediatric`,`children`,`under 18`]},sourcesScanned:6,coveredCount:0,kind:`absent`,searchedForms:[`pediatric`,`paediatric`,`children`,`under 18`],label:`No coverage — Pediatric population`},{id:`g1`,theme:`Efficacy`,facet:{id:`f1`,label:`Long-term outcomes`,surfaceForms:[`long-term`,`long term`,`follow-up`,`5-year`]},sourcesScanned:6,coveredCount:0,kind:`absent`,searchedForms:[`long-term`,`long term`,`follow-up`,`5-year`],label:`No coverage — Long-term outcomes`}],consensus:[{id:`c0`,theme:`Efficacy`,proposition:`The treatment improves the primary endpoint at 12 weeks.`,memberClaimIds:[`s0c0`,`s2c0`],sourceCount:2,corpusSize:6,band:{unit:`%`,min:38,max:42}}],counts:{contradictions:2,gaps:2,consensus:2},pageCount:6},M=t();r();var N=n(()=>c(()=>import(`./PrismOverlay-B7lEspdu.js`).then(e=>({default:e.PrismOverlay})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]))),P=n(()=>c(()=>import(`./SynthesisOverlay-CkERphvG.js`).then(e=>({default:e.SynthesisOverlay})),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,0,10,11,12,13,14,15,16,17,18,19,20]))),F=N.Component,I=P.Component,L=Math.round(d/(1024*1024));async function R(e){return{name:e.name,mime:e.type||`application/zip`,data:``,size:e.size,file:e}}function z(){let e=g();(0,x.useEffect)(()=>a(o()),[]);let[t,n]=(0,x.useState)([]),[r,c]=(0,x.useState)(null),[d,f]=(0,x.useState)(!1),[p,m]=(0,x.useState)(!1),[y,b]=(0,x.useState)(null),S=(0,x.useRef)(null),C=(0,x.useRef)(null);(0,x.useEffect)(()=>{let e=C.current;e&&(e.setAttribute(`webkitdirectory`,``),e.setAttribute(`directory`,``))},[]);let w=(0,x.useMemo)(()=>_(v()),[]),[E]=(0,x.useState)(()=>new URLSearchParams(window.location.hash.split(`?`)[1]??``).get(`demo`)===`1`),D=(0,x.useCallback)(async e=>{if(!e||e.length===0)return;P.preload().catch(()=>{}),m(!0),b(null);let r=Array.from(e),i=r.filter(e=>B(e)&&e.size<=41943040),a=r.filter(e=>B(e)&&e.size>41943040),o=r.filter(e=>!B(e));try{let e=[],r=await T(o);e.push(...r.sources);for(let t of i)try{e.push(...await O(await R(t)))}catch{}n(t=>{let n=new Set(t.map(V)),r=[...t,...e.filter(e=>!n.has(V(e)))];return r.length>200?r.slice(0,200):r}),a.length>0?b(`Archive is too large — up to ${L} MB per .zip.`):e.length===0?b(`No readable sources found. Add PDFs, docs, or text/data files.`):t.length+e.length>200&&b(`Capped at 200 sources.`)}catch{b(`Those files couldn't be read. Try PDFs, docs, or text/data files.`)}finally{m(!1),S.current&&(S.current.value=``),C.current&&(C.current.value=``)}},[t.length]),k=(0,x.useCallback)(e=>{n(t=>t.filter((t,n)=>n!==e))},[]),z=(0,x.useCallback)(e=>{e.preventDefault(),f(!1),D(e.dataTransfer.files)},[D]);return E?(0,M.jsx)(s,{label:`Synthesis world`,overlay:!0,children:(0,M.jsx)(I,{cfg:w,demo:{spec:j,corpus:A},onClose:()=>{window.location.hash=e.href}})}):r?(0,M.jsx)(s,{label:r.mode===`prism`?`Prism workbench`:`Synthesis world`,overlay:!0,children:r.mode===`prism`?(0,M.jsx)(F,{pdf:r.sources,cfg:w,onClose:()=>c(null)}):(0,M.jsx)(I,{sources:r.sources,cfg:w,onClose:()=>c(null)})}):(0,M.jsxs)(`div`,{className:`prism-app`,children:[(0,M.jsxs)(`header`,{className:`prism-app-header`,children:[(0,M.jsx)(`button`,{type:`button`,className:`prism-app-back`,onClick:()=>{window.location.hash=e.href},"aria-label":`Back to ${e.label}`,title:`Back to ${e.label}`,children:(0,M.jsx)(l.chevL,{})}),(0,M.jsx)(`span`,{className:`prism-app-brand`,children:`Synthesis`})]}),(0,M.jsxs)(`main`,{className:`prism-app-main`,children:[(0,M.jsxs)(`div`,{className:`prism-app-hero`,children:[(0,M.jsx)(`h1`,{className:`prism-app-title`,children:`Drop in 100 sources. Walk the one result.`}),(0,M.jsx)(`p`,{className:`prism-app-lede`,children:`Point Mavéa at a whole topic — a folder of papers, a data room, a quarter of notes — and it fuses them into one map: where they agree, where they fight, and where they’re silent.`}),(0,M.jsx)(u,{kind:`upload`})]}),(0,M.jsxs)(`div`,{className:`prism-dropzone${d?` prism-dropzone--over`:``}`,onDrop:z,onDragOver:e=>{e.preventDefault(),f(!0)},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||f(!1)},onClick:()=>S.current?.click(),role:`button`,tabIndex:0,"aria-label":`Add sources`,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&S.current?.click()},...i(P.preload),children:[(0,M.jsx)(`input`,{ref:S,type:`file`,multiple:!0,className:`prism-dropzone-input`,onChange:e=>void D(e.target.files),"aria-hidden":`true`}),(0,M.jsx)(`input`,{ref:C,type:`file`,className:`prism-dropzone-input`,onChange:e=>void D(e.target.files),"aria-hidden":`true`}),(0,M.jsx)(l.upload,{}),(0,M.jsx)(`span`,{className:`prism-dropzone-label`,children:d?`Drop to add`:p?`Reading…`:`Drop a folder, a .zip, or files`}),(0,M.jsx)(`span`,{className:`prism-dropzone-hint`,children:`PDF · Word · Excel · PowerPoint · Text · CSV — or a whole folder / archive`}),(0,M.jsx)(`button`,{type:`button`,style:{marginTop:12,padding:`7px 16px`,whiteSpace:`nowrap`,borderRadius:`var(--r-full, 999px)`,border:`1px solid var(--line)`,background:`var(--surface-elevated)`,color:`var(--text-secondary)`,fontSize:13,cursor:`pointer`},onClick:e=>{e.stopPropagation(),C.current?.click()},children:`Choose a folder…`})]}),y&&(0,M.jsx)(`p`,{className:`prism-app-error`,role:`status`,children:y}),t.length>0&&(0,M.jsxs)(`div`,{className:`prism-staged`,children:[(0,M.jsx)(`p`,{className:`prism-staged-label`,children:t.length===1?`1 source ready`:`${t.length} sources ready`}),(0,M.jsx)(`ul`,{className:`prism-staged-list`,children:t.slice(0,60).map((e,t)=>(0,M.jsxs)(`li`,{className:`prism-staged-item`,children:[(0,M.jsx)(l.doc,{}),(0,M.jsx)(`span`,{className:`prism-staged-name`,children:h(e)}),(0,M.jsx)(`button`,{type:`button`,className:`prism-staged-remove`,onClick:e=>{e.stopPropagation(),k(t)},"aria-label":`Remove ${e.name}`,children:(0,M.jsx)(l.x,{})})]},`${V(e)}-${t}`))}),t.length>60&&(0,M.jsxs)(`p`,{className:`prism-staged-label`,children:[`+ `,t.length-60,` more`]}),(()=>{let e=e=>{(e===`prism`?N.preload():P.preload()).catch(()=>{}),c({sources:t,mode:e})},n=t.length;return n<=2?(0,M.jsxs)(`button`,{type:`button`,className:`prism-confirm-btn`,onClick:()=>e(`prism`),...i(N.preload),children:[n===1?`Open in Prism`:`Compare 2 documents`,(0,M.jsx)(l.chevR,{})]}):n===3?(0,M.jsxs)(`div`,{className:`prism-confirm-row`,children:[(0,M.jsx)(`button`,{type:`button`,className:`prism-confirm-btn prism-confirm-alt`,onClick:()=>e(`prism`),...i(N.preload),children:`Compare 3`}),(0,M.jsxs)(`button`,{type:`button`,className:`prism-confirm-btn`,onClick:()=>e(`synth`),...i(P.preload),children:[`Synthesize 3 sources`,(0,M.jsx)(l.chevR,{})]})]}):(0,M.jsxs)(`button`,{type:`button`,className:`prism-confirm-btn`,onClick:()=>e(`synth`),...i(P.preload),children:[`Synthesize `,n,` sources`,(0,M.jsx)(l.chevR,{})]})})()]})]})]})}function B(e){return k({name:e.name,mime:e.type,data:``,size:e.size})}function V(e){return`${e.name}:${e.size}`}export{z as SynthesisApp};
@@ -0,0 +1,66 @@
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,v as i,x as a}from"./providers-wzm7E8Pa.js";import{i as o,n as s}from"./verbatim-CBMzUDlf.js";import{PrismOverlay as c,a as l,c as u,d,l as f,o as p,s as m}from"./PrismOverlay-B7lEspdu.js";var h=e(),g=n(),_=/[a-z0-9]{4,}/g;function v(e){return new Set(e.toLowerCase().match(_)??[])}function y(e,t){if(e.size===0||t.size===0)return 0;let n=0;for(let r of e)t.has(r)&&(n+=1);return n/(e.size+t.size-n)}function b(e,t=12){let n=new Map;for(let t of e.toLowerCase().match(_)??[])n.set(t,(n.get(t)??0)+1);return[...n.entries()].sort((e,t)=>t[1]-e[1]||(e[0]<t[0]?-1:1)).slice(0,t).map(([e])=>e)}function x(e,t=2){return e.replace(/\s+/g,` `).split(/(?<=[.!?])\s+/).map(e=>e.trim()).filter(Boolean).slice(0,t)}var S={thousand:1e3,k:1e3,million:1e6,m:1e6,billion:1e9,bn:1e9,b:1e9,trillion:0xe8d4a51000};function C(e){let t=e.toLowerCase();return t===`%`||t===`percent`||t===`pct`?`pct`:/^(week|wk|month|mo|year|yr|day)s?$/.test(t)?`time`:/^(mg|kg|µg|mcg|g|ml|l)$/.test(t)?`dose`:`count`}var w=/(\$|€|£|¥)?\s?(\d{1,3}(?:,\d{3})+|\d+)(?:\.(\d+))?\s?(thousand|million|billion|trillion|bn)?\s?(%|percent|pct|mg|kg|µg|mcg|ml|weeks?|wks?|months?|mos?|years?|yrs?|days?)?/gi;function T(e){let t=[];for(let n of e.matchAll(w)){let[e,r,i,a,o,s]=n;if(!i)continue;let c=Number(`${i.replace(/,/g,``)}${a?`.${a}`:``}`);if(!Number.isFinite(c))continue;o&&(c*=S[o.toLowerCase()]??1);let l=(r??s??``).trim(),u=r?`money`:s?C(s):`count`;t.push({value:c,unit:l,family:u,raw:e.trim()})}return t}function E(e,t){for(let n of T(e))if(!t||n.family===t)return n;return null}function D(e){let t=` ${e.toLowerCase()} `;return/\b(p[ae]diatric|children|child|adolescents?|infants?|neonat|under[\s-]?18|aged? \d{1,2})\b/.test(t)?`pediatric`:/\b(elderly|geriatric|older adults?|aged 65)\b/.test(t)?`elderly`:/\b(adults?|grown[\s-]?ups?)\b/.test(t)?`adult`:null}function O(e){let t=e.toLowerCase(),n=t.match(/\b(\d{1,3})\s?(week|wk|month|mo|year|yr|day)s?\b/);if(n)return`${n[1]}${n[2].replace(/s$/,``)}`;let r=t.match(/\bphase\s?([1-4]|i{1,3}|iv)\b/);if(r)return`phase${r[1]}`;let i=t.match(/\bby\s(20\d{2})\b/);return i?`by${i[1]}`:null}function k(e,t){let n=D(e),r=D(t);if(n&&r&&n!==r)return`population`;let i=O(e),a=O(t);return i&&a&&i!==a?`timeframe`:null}function ee(e){let t=e.slice(0,1200),n=t.match(/\b([A-Z][a-zà-ÿ]+)\s+et al\.?,?\s*(\d{4})/);if(n)return`${n[1]} et al. ${n[2]}`;let r=t.match(/\b([A-Z][a-zà-ÿ]+)\s*\(?(19|20)\d{2}\)?/);return r?`${r[1]} ${r[0].match(/\d{4}/)?.[0]??``}`.trim():``}function te(e,t={}){let{minOverlap:n=.12,topK:r=120,maxDocFraction:i=.35,crossSourceOnly:a=!0}=t,o=e.length;if(o<2)return[];let s=e.map(e=>v(e.text)),c=e.map(e=>e.source),l=new Map;s.forEach((e,t)=>{for(let n of e){let e=l.get(n);e?e.push(t):l.set(n,[t])}});let u=Math.max(6,Math.floor(o*i)),d=new Set,f=[];for(let t of l.values())if(!(t.length<2||t.length>u))for(let r=0;r<t.length;r+=1)for(let i=r+1;i<t.length;i+=1){let o=t[r],l=t[i];if(a&&c[o]===c[l])continue;let u=o<l?`${o}|${l}`:`${l}|${o}`;if(d.has(u))continue;d.add(u);let p=y(s[o],s[l]);if(p>=n){let t=e[o],n=e[l];f.push(t.id<n.id?{a:t.id,b:n.id,overlap:p}:{a:n.id,b:t.id,overlap:p})}}return f.sort((e,t)=>t.overlap-e.overlap||(e.a<t.a?-1:e.a>t.a?1:e.b<t.b?-1:1)),f.slice(0,r)}function A(e){let t=new Map,n=e=>{let n=e;for(;t.get(n)!==n;)n=t.get(n);let r=e;for(;t.get(r)!==n;){let e=t.get(r);t.set(r,n),r=e}return n},r=e=>{t.has(e)||t.set(e,e)};for(let{a:i,b:a}of e)r(i),r(a),t.set(n(i),n(a));let i=new Map;for(let e of t.keys()){let t=n(e),r=i.get(t);r?r.push(e):i.set(t,[e])}return[...i.values()].map(e=>e.slice().sort())}var j=[`pct`,`money`,`dose`,`count`];function M(e,t){let n=Math.max(1,Math.abs(e),Math.abs(t));return Math.abs(e-t)<=.005*n}function N(e,t){return t.some(t=>s(e,t))}function P(e,t,n,r,i){if(t.source===n.source)return null;let a=String(e.relation).toLowerCase();if(a!==`contradicts`&&a!==`in-tension`)return null;let o=k(t.quote,n.quote),s=(e.matchPhrase??``).trim(),c=s.length>0&&N(s,r)&&N(s,i),l,u=!1;for(let e of j){let r=E(t.quote,e),i=E(n.quote,e);if(r&&i){M(r.value,i.value)?u=!0:l={aValue:r.value,bValue:i.value,unit:r.unit||i.unit};break}}let d=!!e.comparable&&c&&!o&&!u,f=a===`contradicts`&&d?`contradicts`:`in-tension`,p;return o?p=o:!d&&!u&&a===`contradicts`&&(p=`scope`),{relation:f,comparable:d,...c?{matchPhrase:s}:{},...p?{caveat:p}:{},...l?{delta:l}:{}}}function F(e,t,n,r={}){let{minCorpus:i=3,minSurfaceForms:a=3,minCorpusForThin:o=10,thinFraction:s=.1}=r;return t<i||n<a?null:e<=0?`absent`:t>=o&&e<=Math.max(1,Math.ceil(t*s))?`thin`:null}function I(e,t){let n=new Set;for(let r of e){let e=t.get(r);e!==void 0&&n.add(e)}return n.size}function L(e,t=2){return e>=t}function R(e){if(e&&typeof e==`object`)return e;let t=String(e),n=t.indexOf(`{`);if(n<0)return null;let r=0,i=!1,a=!1;for(let e=n;e<t.length;e+=1){let o=t[e];if(i){a?a=!1:o===`\\`?a=!0:o===`"`&&(i=!1);continue}if(o===`"`)i=!0;else if(o===`{`)r+=1;else if(o===`}`&&(--r,r===0))try{return JSON.parse(t.slice(n,e+1))}catch{return null}}return null}function z(e){return typeof e==`string`?e:``}function B(e,t){if(!e)return[];let n=e[t];return Array.isArray(n)?n:[]}var V=`You compare pairs of grounded claims from different sources and return strict JSON only. You never invent a quote; a shared "matchPhrase" must be copied verbatim from the claims. When two claims measure different endpoints, populations, or timeframes you mark them "not-comparable".`;function ne(e){return`These are candidate claim pairs, each from two DIFFERENT sources in a large corpus. For each
2
+ pair, decide how the two claims relate on the ONE quantity they share.
3
+
4
+ Pairs:
5
+ ${e.map((e,t)=>`[p${t}]\n A (${e.a.id}): "${e.a.quote}"\n B (${e.b.id}): "${e.b.quote}"`).join(`
6
+ `)}
7
+
8
+ Return ONLY a JSON object (no prose, no fences):
9
+ { "pairs": [ { "id": "p0", "relation": "contradicts|in-tension|agrees|not-comparable",
10
+ "sharedQuantity": "the one thing both measure, e.g. 'drug efficacy'", "comparable": true,
11
+ "matchPhrase": "a short phrase copied VERBATIM that appears in BOTH claims' text, proving same scope",
12
+ "point": "for agrees only: the shared point in one sentence" } ] }
13
+
14
+ Rules:
15
+ - "agrees" (be generous — this is how consensus is found): the two claims make the same or a mutually
16
+ SUPPORTING point — e.g. both report a benefit on the same outcome, or point the same direction on a
17
+ shared measure — even if the specifics differ. Give the shared "point" in one sentence.
18
+ - "contradicts" (be strict — a false one is worse than a missed one): they DIRECTLY conflict on the
19
+ SAME measured quantity, same population, same timeframe. When a contradiction is at all doubtful,
20
+ use "in-tension" (related but pulling different ways) or "not-comparable" instead.
21
+ - "not-comparable": they are about genuinely different things with no shared outcome or measure.
22
+ - "comparable": true ONLY when the two truly measure the same thing on the same scope.
23
+ - "matchPhrase": copy a phrase that is present, word-for-word, in BOTH claims above (proving they talk
24
+ about the same scope). Omit it if there is no shared verbatim phrase.
25
+ - Every "id" MUST be one of the [p#] ids above.`}function H(e){let t=[D(e),O(e)].filter(Boolean);return t.length?t.join(`, `):`unspecified scope`}function re(e,t){return`Are these comparable? "${e.title}" (${H(e.quote)}) vs "${t.title}" (${H(t.quote)}) — do they measure the same endpoint, population, and timeframe?`}function U(e,t){let n=t.trim();return e===`contradicts`?n?`Sources disagree on ${n}`:`Two sources disagree`:n?`Tension over ${n}`:`Sources in tension`}async function W(e,t){let n=[];for(let r of e){let e=t.claimById.get(r.a),i=t.claimById.get(r.b);e&&i&&e.source!==i.source&&n.push({a:e,b:i,pair:r})}if(n.length===0)return{contradictions:[],agreements:[]};let i=Math.min(8192,Math.max(2048,300+n.length*100)),a;try{a=(await r(t.cfg.provider).generate({system:V,history:[],user:ne(n),maxTokens:i,temperature:0,format:null,...t.signal?{signal:t.signal}:{}},t.cfg)).raw}catch{return{contradictions:[],agreements:[]}}let o=R(a),s=o&&Array.isArray(o.pairs)?o.pairs:[],c=[],l=[],u=0,d=new Set;for(let e of s){if(!e||typeof e!=`object`)continue;let r=e,i=Number(String(r.id).replace(/^p/,``)),a=Number.isInteger(i)?n[i]:void 0;if(!a)continue;let o=[a.a.id,a.b.id].sort().join(`|`);if(d.has(o))continue;d.add(o);let s=z(r.relation).toLowerCase();if(s===`agrees`){l.push({a:a.a.id,b:a.b.id,point:z(r.point).trim()});continue}let f=P({relation:s,sharedQuantity:z(r.sharedQuantity),comparable:!!r.comparable,matchPhrase:z(r.matchPhrase)},a.a,a.b,t.corpus[a.a.source]??[],t.corpus[a.b.source]??[]);if(!f)continue;let p=z(r.sharedQuantity).trim();c.push({id:`x${u}`,theme:a.a.region,a:a.a.id,b:a.b.id,relation:f.relation,sharedQuantity:p,comparable:f.comparable,label:U(f.relation,p),seedQuestion:re(a.a,a.b),...f.matchPhrase?{matchPhrase:f.matchPhrase}:{},...f.caveat?{caveat:f.caveat}:{},...f.delta?{delta:f.delta}:{}}),u+=1}return{contradictions:c,agreements:l}}function G(e){let t=o(e);if(!t)return null;let n=t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);return RegExp(`(?:^|[^a-z0-9])${n}(?:[^a-z0-9]|$)`)}function K(e,t){for(let n of t.surfaceForms){let t=G(n);if(t&&t.test(e))return!0}return!1}function q(e,t){let n=[];return t.forEach((t,r)=>{K(t,e)&&n.push(r)}),{coveredCount:n.length,coveringSources:n}}function J(e,t){return t===`absent`?`No coverage — ${e.label}`:`Thin coverage — ${e.label}`}function Y(e,t,n,r={}){let i=t.length,a=[];return e.forEach((e,o)=>{let{coveredCount:s}=q(e,t),c=F(s,i,e.surfaceForms.length,r);c&&a.push({id:`g${o}`,theme:n(e),facet:e,sourcesScanned:i,coveredCount:s,kind:c,searchedForms:e.surfaceForms.slice(),label:J(e,c)})}),a}function X(e){let t=Array.isArray(e)?e:[],n=[];return t.forEach((e,t)=>{if(!e||typeof e!=`object`)return;let r=e,i=typeof r.label==`string`?r.label.trim():``,a=Array.isArray(r.surfaceForms)?Array.from(new Set(r.surfaceForms.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(e=>e.length>=3))):[];!i||a.length===0||n.push({id:`f${t}`,label:i,surfaceForms:a,...typeof r.rationale==`string`&&r.rationale.trim()?{rationale:r.rationale.trim()}:{}})}),n}var ie=8,ae=5e3,oe=6;function se(e){let t=e.replace(/\.[a-z0-9]+$/i,``).trim();return t.length>40?`${t.slice(0,39).trimEnd()}…`:t||`Source`}async function ce(e,t){if(t)return{att:e,pages:t.slice(),kind:`text`};try{if(i(e)){let t=await m(e);return t.pages&&t.pages.length>0?{att:e,pages:t.pages,kind:`office`}:{att:e,pages:[],kind:`image-deck`}}return a(e)?{att:e,pages:await u(e)??[],kind:`text`}:{att:e,pages:await f(e)??[],kind:`pdf`}}catch{return{att:e,pages:[],kind:`pdf`}}}async function le(e,t,n){let r=Array(e.length),i=0;return await Promise.all(Array.from({length:Math.min(t,e.length)},async()=>{for(;;){let t=i;if(i+=1,t>=e.length)return;r[t]=await n(e[t],t)}})),r}async function ue(e,t,n,i,a){try{return R((await r(e.provider).generate({system:t,history:[],user:n,maxTokens:i,temperature:0,format:null,...a?{signal:a}:{}},e)).raw)}catch{return null}}async function de(e,t,n,i,a){try{let o=await r(e.provider).generate({system:t,history:[],user:n,maxTokens:i,temperature:0,format:null,...a?{signal:a}:{}},e);return typeof o.raw==`string`?o.raw:JSON.stringify(o.raw)}catch{return``}}var fe=`You organize a corpus of sources into a small set of themes and list the facets a complete treatment would cover, returning strict JSON only. You never claim a facet is present or absent — you only name what to expect and the words it would appear under.`;function pe(e){let t=e.map((e,t)=>`[${t}] ${e.label}\n terms: ${e.terms.join(`, `)}\n "${e.lead.join(` `)}"`).join(`
26
+ `);return`Below are short digests of ${e.length} sources in one corpus (top terms + a lead line each).
27
+
28
+ ${t}
29
+
30
+ Return ONLY a JSON object (no prose, no fences):
31
+ {
32
+ "themes": ["Efficacy", "Safety", "Cost", "Adoption"],
33
+ "facets": [ { "label": "Pediatric population", "theme": "Safety",
34
+ "surfaceForms": ["pediatric","paediatric","children","under 18"], "rationale": "why a full treatment would cover it" } ]
35
+ }
36
+
37
+ Rules:
38
+ - "themes": 3-7 broad topics that span the corpus (NOT one per source) — the map's regions.
39
+ - "facets": the sub-topics a COMPLETE treatment of these themes would address. For each, give 3-8
40
+ surface forms — the exact words/synonyms it would appear under IF a source covered it (so absence can
41
+ be checked literally). "theme" must be one of "themes". Do NOT say whether any source covers it.
42
+ - Base everything on the digests above — do not invent facets unrelated to this corpus.`}var me=`You extract grounded, verbatim-quoted claims from sources and tag each with a theme, returning strict JSON only. Every quote must be copied character-for-character from the source text.`;function he(e,t,n){let r=e.reduce((e,t)=>e+t.length,0),i=e.map((e,n)=>({i:n,t:e,s:ge(e,t)})),a=r<=n?i:i.slice().sort((e,t)=>t.s-e.s||e.i-t.i),o=[],s=0;for(let e of a)if(o.push({i:e.i,t:e.t}),s+=e.t.length,s>=n&&o.length>=2)break;return o.sort((e,t)=>e.i-t.i).map(e=>`[p.${e.i+1}]\n${e.t.slice(0,Math.max(400,Math.round(n/o.length)))}`).join(`
43
+
44
+ `)}function ge(e,t){let n=e.toLowerCase(),r=0;for(let e of t)n.includes(e)&&(r+=1);return r}function _e(e,t){let n=e.map(e=>`=== source ${e.source} — ${e.label} ===\n${e.slice}`).join(`
45
+
46
+ `);return`Themes for this corpus (tag every claim with exactly one): ${t.join(` | `)}
47
+
48
+ Extract the most important claims from each source below. Copy each "quote" VERBATIM from that source's
49
+ text (it is verified word-for-word — anything not found is dropped). Cite the "page" from its [p.N]
50
+ marker, and the "source" number from its heading.
51
+
52
+ ${n}
53
+
54
+ Return ONLY a JSON object (no prose, no fences):
55
+ { "claims": [ { "source": 0, "quote": "verbatim phrase (6-160 chars)", "page": 3,
56
+ "theme": "one of the themes above", "kind": "forecast|stat|finding|risk|definition|method|diagram",
57
+ "title": "a 3-7 word headline", "role": "load-bearing|supporting|context",
58
+ "ask": "a short follow-up question" } ] }
59
+
60
+ Rules:
61
+ - Copy quotes character-for-character from the text above; never paraphrase or round.
62
+ - "theme" MUST be one of: ${t.join(`, `)}.
63
+ - Extract 6-12 DISTINCT claims from EACH source — cover its different facets (definition, mechanism,
64
+ specific findings and numbers, health effects, risks, evidence quality), not just the opening lines.
65
+ Favor specific, checkable statements — especially ones with a number, a finding, or a direct claim
66
+ another source might agree or disagree with. Mark only a few "load-bearing".`}var ve=new Set([`forecast`,`stat`,`finding`,`risk`,`definition`,`method`,`diagram`]),ye=new Set([`load-bearing`,`supporting`,`context`]);function be(e){let t=z(e).toLowerCase();return ve.has(t)?t:`finding`}function xe(e){let t=z(e).toLowerCase().trim();return ye.has(t)?t:`supporting`}function Z(e){let t=z(e.quote),n=Number(e.page),r=Number(e.source);return!t||!Number.isInteger(n)||!Number.isInteger(r)?null:{source:r,quote:t,page:n,theme:z(e.theme).trim(),kind:be(e.kind),title:z(e.title).trim()||t.slice(0,40),role:xe(e.role),ask:z(e.ask).trim()||`What does this mean?`}}function Se(e){let t=R(e),n=t&&Array.isArray(t.claims)?t.claims:null;if(n&&n.length){let e=n.filter(e=>!!e&&typeof e==`object`).map(Z).filter(e=>e!==null);if(e.length)return e}return Ce(e)}function Ce(e){let t=[];for(let n=0;n<e.length;n+=1){if(e[n]!==`{`)continue;let r=0,i=!1,a=!1,o=-1;for(let t=n;t<e.length;t+=1){let n=e[t];if(i){a?a=!1:n===`\\`?a=!0:n===`"`&&(i=!1);continue}if(n===`"`)i=!0;else if(n===`{`)r+=1;else if(n===`}`&&(--r,r===0)){o=t;break}}if(o<0)break;let s=e.slice(n,o+1);if(s.includes(`"quote"`))try{let e=Z(JSON.parse(s));e&&(t.push(e),n=o)}catch{}}return t}function we(e,t){let n=[];for(let r=0;r<e.length;r+=Math.max(1,t))n.push(e.slice(r,r+t));return n}async function Te(e,t,n,r={}){let{pagesOverride:i,onProgress:a,batchSize:s=ie}=r,c=0;a?.(`Reading ${e.length} sources…`);let l=(await le(e,oe,(e,t)=>ce(e,i?.[t]))).filter(e=>e.pages.length>0);if(l.length===0)return{spec:null,error:`No readable text could be extracted from these sources.`,callCount:c,proposed:0};let u=l.map((e,t)=>({id:`s${t}`,fileName:e.att.name,kind:e.kind,pageCount:e.pages.length,label:ee(e.pages.join(` `))||se(e.att.name),...e.slideImages?{slideImages:e.slideImages}:{}})),f=l.map(e=>e.pages),p=l.map((e,t)=>{let n=e.pages.join(` `);return{label:u[t].label,terms:b(n,12),lead:x(n,2)}});a?.(`Finding themes…`);let m=Math.min(4096,Math.max(1600,900+p.length*45)),h=await ue(t,fe,pe(p),m,n);c+=1;let g=Ee(B(h,`themes`).map(z)),_=new Set(g),y=X(B(h,`facets`)),S=new Map;for(let e of B(h,`facets`))if(e&&typeof e==`object`){let t=e,n=z(t.label).trim(),r=z(t.theme).trim();n&&_.has(r)&&S.set(n,r)}let C=g[0]??`Findings`;g.length===0&&g.push(C),a?.(`Mapping claims…`);let w=v(g.join(` `)),T=l.map((e,t)=>({source:t,label:u[t].label,slice:he(e.pages,w,ae)})),E=[],D=0;for(let e of we(T,s)){let r=await de(t,me,_e(e,g),Math.min(8192,1500+e.length*850),n);c+=1;let i=Se(r);D+=i.length;for(let t of e)(await d(i.filter(e=>e.source===t.source),f[t.source])).forEach((e,n)=>{let r=_.has(e.theme)?e.theme:C;E.push({id:`s${t.source}c${n}`,quote:e.quote,page:e.page,kind:e.kind,title:e.title,ask:e.ask,role:e.role,region:r,source:t.source})})}if(E.length===0)return{spec:null,error:`No claims could be grounded across these sources.`,callCount:c,corpus:f,proposed:D};a?.(`Finding contradictions…`);let O=new Map(E.map(e=>[e.id,e])),k=new Map(E.map(e=>[e.id,e.source])),A=te(E.map(e=>({id:e.id,source:e.source,text:`${e.title}. ${e.quote}`}))),{contradictions:j,agreements:M}=await W(A,{claimById:O,corpus:f,cfg:t,signal:n});A.length>0&&(c+=1);let N=Oe(M,O,k,l.length),P=Y(y,f.map(e=>o(e.join(` `))),e=>S.get(e.label)??``),F=De(g,E),I=[...j.map(e=>({a:e.a,b:e.b,relation:e.relation,crossDoc:!0})),...M.map(e=>({a:e.a,b:e.b,relation:`agrees`,crossDoc:!0}))],L=new Set;for(let e of N)for(let t of e.memberClaimIds){let e=k.get(t);e!==void 0&&L.add(e)}let R={sources:u,themes:F,claims:E,threads:I,contradictions:j,gaps:P,consensus:N,counts:{contradictions:j.length,gaps:P.length,consensus:L.size},pageCount:u.reduce((e,t)=>e+t.pageCount,0)},V=u.map(()=>0);for(let e of E)V[e.source]!==void 0&&(V[e.source]+=1);return{spec:R,corpus:f,sourcesAtt:l.map(e=>e.att),callCount:c,proposed:D,debug:{facetCount:y.length,candidatePairs:A.length,agreements:M.length,claimsBySource:V}}}function Ee(e){let t=new Set,n=[];for(let r of e){let e=r.trim();if(!e)continue;let i=e.toLowerCase();if(!t.has(i)&&(t.add(i),n.push(e),n.length>=8))break}return n}function De(e,t){let n=new Map;for(let e of t){let t=n.get(e.region)??{sources:new Set,count:0};t.sources.add(e.source),t.count+=1,n.set(e.region,t)}let r=[...e,...[...n.keys()].filter(t=>!e.includes(t))],i=[];for(let e of r){let t=n.get(e);t&&i.push({id:e,name:e,sourceCount:t.sources.size,claimCount:t.count})}return i}function Oe(e,t,n,r){let i=A(e.map(e=>({a:e.a,b:e.b}))),a=[],o=0;for(let s of i){let i=I(s,n);if(!L(i))continue;let c=new Set(s),l=e.find(e=>c.has(e.a)&&c.has(e.b)&&e.point),u=t.get(s[0]);a.push({id:`c${o}`,theme:u?.region??``,proposition:l?.point||u?.title||`Sources agree`,memberClaimIds:s,sourceCount:i,corpusSize:r,...Q(s,t)}),o+=1}return a}function Q(e,t){for(let n of[`pct`,`money`,`dose`,`count`]){let r=[],i=``;for(let a of e){let e=t.get(a),o=e&&E(e.quote,n);o&&(r.push(o.value),i||=o.unit)}if(r.length>=2)return{band:{unit:i,min:Math.min(...r),max:Math.max(...r)}}}return{}}var ke=900;function Ae(e){let t=(0,g.c)(15),[n,r]=(0,h.useState)(`idle`),[i,a]=(0,h.useState)(null),[o,s]=(0,h.useState)(null),[c,l]=(0,h.useState)(null),[u,d]=(0,h.useState)(0),[f,p]=(0,h.useState)(``),[m,_]=(0,h.useState)(null),v=(0,h.useRef)(null),y=(0,h.useRef)(null),b=(0,h.useRef)(0),x;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(x=()=>{v.current?.abort(),v.current=null,y.current!==null&&(clearTimeout(y.current),y.current=null)},t[0]=x):x=t[0];let S=x,C,w;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(C=()=>S,w=[S],t[1]=C,t[2]=w):(C=t[1],w=t[2]),(0,h.useEffect)(C,w);let T;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(T=()=>{S(),b.current+=1,r(`idle`),a(null),s(null),l(null),d(0),p(``),_(null)},t[3]=T):T=t[3];let E=T,D;t[4]===e?D=t[5]:(D=t=>{if(!e){_(`Connect a model to synthesize a corpus.`),r(`error`);return}S();let n=b.current+=1,i=new AbortController;v.current=i,a(null),s(null),d(0),_(null),p(`Reading ${t.length} sources…`),r(`igniting`),y.current=setTimeout(()=>{b.current===n&&r(je)},ke),Te(t,e,i.signal,{onProgress:e=>{b.current===n&&p(e)}}).then(e=>{b.current===n&&(e.spec?(a(e.spec),s(e.corpus??null),l(e.sourcesAtt??null),d(e.proposed),r(`settled`)):(_(e.error??`This corpus could not be synthesized.`),r(`error`)))}).catch(e=>{b.current===n&&(i.signal.aborted||(_(e instanceof Error?e.message:`Synthesis failed.`),r(`error`)))})},t[4]=e,t[5]=D);let O=D,k;return t[6]!==o||t[7]!==m||t[8]!==n||t[9]!==u||t[10]!==c||t[11]!==i||t[12]!==f||t[13]!==O?(k={phase:n,spec:i,corpus:o,sourcesAtt:c,proposed:u,stage:f,error:m,synthesize:O,reset:E},t[6]=o,t[7]=m,t[8]=n,t[9]=u,t[10]=c,t[11]=i,t[12]=f,t[13]=O,t[14]=k):k=t[14],k}function je(e){return e===`igniting`?`blooming`:e}function Me(e){return{documents:e.sources.map(e=>({fileName:e.fileName,pageCount:e.pageCount,...e.slideImages?{slideImages:e.slideImages}:{}})),fileName:e.sources[0]?.fileName??`corpus`,pageCount:e.pageCount,claims:e.claims,regions:e.themes.map(e=>e.name),threads:e.threads}}var Ne=t(),$=[`var(--presence)`,`var(--insight)`,`var(--warning)`,`var(--presence-deep)`,`var(--insight-soft)`,`var(--danger)`];function Pe({sources:e,cfg:t,search:n,onClose:r,demo:i}){let a=Ae(t),o=i?`settled`:a.phase,s=i?i.spec:a.spec,u=i?i.corpus:a.corpus;(0,h.useEffect)(()=>{if(!i)return e&&e.length>0&&a.synthesize(e),()=>a.reset()},[e]);let[d,f]=(0,h.useState)(`all`),[m,g]=(0,h.useState)(null);(0,h.useEffect)(()=>{if(!s||s.claims.length<48)return;let e=!0;return l(s,$).then(t=>{e&&g({spec:s,result:t})}),()=>{e=!1}},[s]);let _=(0,h.useMemo)(()=>s?s.claims.length<48?p(s,$):m?.spec===s?m.result:null:null,[s,m]),v=(0,h.useMemo)(()=>s?Me(s):null,[s]),y=(0,h.useCallback)(e=>s?.sources[e]?.label??`Source ${e+1}`,[s]),b=(0,h.useMemo)(()=>i?(i.spec.sources??[]).map(e=>({name:e.fileName,mime:`text/plain`,data:``,size:0})):(a.sourcesAtt??e??[]).slice(),[i,a.sourcesAtt,e]),x={phase:o,spec:v,corpus:u,proposed:i?s?.claims.length??0:a.proposed,error:a.error,stage:a.stage},S=s&&_?{lens:d,setLens:f,counts:s.counts,contradictions:_.contradictions,gaps:_.gaps,consensus:_.consensus,sourceLabel:y}:void 0;return(0,Ne.jsx)(c,{pdf:b,cfg:i?null:t,...n?{search:n}:{},onClose:r,world:x,...S?{corpusChrome:S}:{}})}export{Pe as SynthesisOverlay};
@@ -0,0 +1,123 @@
1
+ import{t as e}from"./jsx-runtime-DaSxXjOY.js";import{ht as t}from"./index-y8GL67bB.js";import{t as n}from"./LegalMarkdownDocument-CSZhRG5r.js";var r=t(),i=`# Mavéa Terms of Use
2
+
3
+ Effective: July 19, 2026
4
+
5
+ These Terms of Use (the **Terms**) govern your use of the Mavéa application, command-line package, demos, documentation, and related materials (collectively, the **Service**). **Licensor** means each applicable copyright holder offering software under the PolyForm license. **Maintainers** means the people who publish or contribute to Mavéa; a Maintainer is not necessarily a Licensor. **Deployment operator** means the person or organization hosting the copy you use. **Responsible Party** means the applicable Licensor, Maintainer, or deployment operator responsible for a statement, obligation, service, or claim. In these Terms, **we**, **us**, or **our** means the relevant Responsible Party or Parties in context. A separately operated deployment remains independent from the Licensors and Maintainers unless the same person or organization serves both roles.
6
+
7
+ The [PolyForm Noncommercial License 1.0.0](./LICENSE) separately governs copyright and patent permission for the software source and distributions. If these Terms conflict with that license about rights in the software, the license controls.
8
+
9
+ ## 1. Acceptance and eligibility
10
+
11
+ By downloading, installing, accessing, or using the Service, or by selecting the in-product acceptance checkbox, you agree to these Terms and the PolyForm license and acknowledge the [Privacy Notice](./PRIVACY.md) and [Disclaimer](./DISCLAIMER.md). If you use Mavéa for an organization, you represent that you have authority to accept these Terms for it. If you do not agree, do not use the Service.
12
+
13
+ You must be at least 18 years old, legally capable of entering this agreement, and permitted to use the Service under applicable law. The Service is not directed to children. A parent or guardian should not provide a child access to connected model, upload, microphone, or action features.
14
+
15
+ ## 2. Noncommercial software permission
16
+
17
+ Mavéa is source-available under the PolyForm Noncommercial License 1.0.0. It is not distributed under an Open Source Initiative-approved open-source license. The license permits only the purposes it defines as noncommercial. Commercial use requires separate written permission or a separate license from the applicable Licensor. No statement, issue response, demonstration, or failure to enforce creates a commercial license or any permission beyond a written license.
18
+
19
+ The noncommercial restriction applies to recipients of the PolyForm license. It does not prevent a Licensor from commercializing Mavéa, offering paid or commercial licenses, licensing it under different terms, or assigning or transferring rights it owns or controls in a financing, merger, acquisition, asset sale, or other transaction.
20
+
21
+ The license does not grant rights in the Mavéa name, logos, trade dress, domains, or other brand features. See the [Trademark Policy](./TRADEMARKS.md).
22
+
23
+ ## 3. Local and self-hosted operation
24
+
25
+ The current Service is designed for local or self-hosted operation. The Licensors and Maintainers do not currently provide a Mavéa-hosted account, cloud storage, telemetry, analytics, or conversation-retention service. They do not receive your prompts or browser-local data merely because you install or run Mavéa. A separate deployment operator is responsible for its deployment, notices, access controls, security, data practices, and legal compliance.
26
+
27
+ You are responsible for selecting, configuring, operating, and securing your device, browser, network, reverse proxy, deployment, credentials, backups, and connected accounts. Do not expose a development server, local proxy, or actions gateway to an untrusted network.
28
+
29
+ ## 4. AI output and no professional advice
30
+
31
+ The Service uses probabilistic artificial-intelligence systems. Outputs, citations, calculations, classifications, summaries, transcriptions, translations, confidence labels, and visualizations may be false, fabricated, inaccurate, incomplete, misleading, biased, offensive, unsafe, or outdated. A polished presentation, citation, calculation, validation check, or natural voice does not guarantee accuracy, originality, legality, quality, or fitness for a particular purpose.
32
+
33
+ You must independently review and verify important output against qualified professionals and original sources before relying on, publishing, sharing, or acting on it. The Service is not a substitute for qualified professional judgment and does not provide medical, legal, financial, tax, accounting, safety, engineering, mental-health, or other professional advice. Do not use it for emergencies or as the sole basis for decisions that may affect a person's rights, health, safety, finances, employment, education, housing, insurance, or access to essential services. You remain responsible for deciding whether and how to use every output.
34
+
35
+ ## 5. Third-party services, credentials, and costs
36
+
37
+ Mavéa can communicate with model, search, speech, media, hosting, OAuth, and action providers that you select. Those services are independent third parties and are governed by their own contracts, privacy policies, acceptable-use rules, retention practices, availability, and pricing.
38
+
39
+ You provide and control your own accounts, API keys, OAuth grants, and other credentials. Requests send relevant credentials and content through the deployment's same-origin proxy before reaching the selected third party. The proxy operator can access that material in transit. You must use a deployment operator you trust.
40
+
41
+ All costs of using the Service are your responsibility, including hardware, electricity, network access, hosting, domains, model tokens, search requests, speech services, storage, OAuth applications, connected-account activity, taxes, and any other third-party charges. Labels such as "fast", "balanced", or "thorough" are relative product descriptions, not price quotes or spending limits. You are responsible for provider budgets, quotas, and billing alerts.
42
+
43
+ We do not control and are not responsible for third-party services, content, security, billing, downtime, changes, or data practices. Links and integrations do not imply endorsement.
44
+
45
+ Provider, service, and model names (for example Google Gemini, Anthropic Claude, OpenAI GPT, xAI Grok, and OpenRouter) are trademarks of their respective owners. Mavéa uses them only to identify the third-party services you can connect; no affiliation with, sponsorship by, or endorsement from those owners is implied.
46
+
47
+ ## 6. User content and sensitive information
48
+
49
+ You retain any rights you have in prompts, files, audio, credentials, account data, and other material you provide (**User Content**). You give the deployment operator and selected providers only the permission reasonably needed to receive, transmit, process, display, and return User Content for features you request. You are responsible for User Content and must have all rights, notices, consents, workplace approvals, permissions, and lawful bases needed to process it with the Service and your selected third parties.
50
+
51
+ Do not provide secrets or sensitive, regulated, confidential, privileged, export-controlled, or personal information unless you have assessed the deployment and every recipient and have a lawful basis to do so. Do not submit information about children or third parties without appropriate authority. Mavéa is not a confidential or privileged channel. The Responsible Parties do not acquire ownership of User Content merely because you use the software.
52
+
53
+ If you export a backup of your data, the resulting file is plain, unencrypted content under your sole control — you are responsible for storing, transmitting, and deleting it safely, and for only importing backups you trust. Backups exclude your provider and search keys.
54
+
55
+ ## 7. Connected actions
56
+
57
+ Some features can propose actions in connected accounts, such as drafting or sending content, creating calendar entries, or opening a draft pull request. An action is intended to run only after confirmation, but software, providers, networks, and account permissions can fail.
58
+
59
+ Before confirming, review the target, recipients, arguments, permissions, charges, facts, confidential information, intellectual-property rights, accessibility, and likely consequences. You are solely responsible for actions you authorize, including irreversible changes, repository changes, generated messages, exports, presentations, shared reels, external communications, account activity, publishing, and third-party fees. A preview, confirmation screen, or successful provider response does not guarantee the intended result. Use sandbox or test accounts where possible and keep independent backups.
60
+
61
+ ## 8. Acceptable use
62
+
63
+ You may not use the Service to:
64
+
65
+ - violate law or another person's rights;
66
+ - violate export-control or economic-sanctions laws;
67
+ - evade the PolyForm Noncommercial License or remove required notices;
68
+ - gain unauthorized access to systems, credentials, accounts, or data;
69
+ - distribute malware, exploit vulnerabilities, or interfere with services;
70
+ - impersonate others or deceptively present AI output as verified fact;
71
+ - make fully automated high-impact decisions about people without lawful authority, qualified review, and appropriate safeguards; or
72
+ - use the Service in an emergency, weapons system, life-support system, or other environment where failure could foreseeably cause death, personal injury, or severe property or environmental harm.
73
+
74
+ ## 9. Ownership and feedback
75
+
76
+ Except for third-party materials and User Content, rights in Mavéa and its associated intellectual property remain with their applicable rights holders. No rights are granted except those expressly stated in the PolyForm license and these Terms.
77
+
78
+ As between you and the Responsible Parties, the Responsible Parties do not claim ownership of output generated for you. That does not mean output is copyrightable, unique, accurate, original, lawful, or free of third-party rights. Similar output may be produced for others. You are responsible for clearance, attribution, review, and compliance before commercial or public use.
79
+
80
+ You may submit issue reports and feature suggestions without including code, patches, documentation changes, confidential information, or trade secrets. You grant the applicable Licensors and Maintainers, and their successors and assigns, a worldwide, perpetual, irrevocable, royalty-free right to use, modify, publish, and commercialize ideas and feedback you voluntarily submit, without restriction or compensation. This does not transfer ownership of inventions or copyrighted materials that are not included in your feedback.
81
+
82
+ ## 10. Availability, changes, and support
83
+
84
+ The Service may contain bugs, security defects, incomplete features, generated examples, or breaking changes and may be modified, interrupted, or discontinued without notice. We have no obligation to maintain, update, support, secure, or continue any feature or version. There is no promise of uptime, compatibility, preservation of data, or continued availability. Keep independent copies of anything important. Any support is provided at the Maintainers' discretion under the [Support Policy](./SUPPORT.md).
85
+
86
+ We may update these Terms by changing the effective date and the acceptance version shipped with the Service. Continued use after an updated version is presented and accepted is governed by the updated Terms.
87
+
88
+ ## 11. Disclaimers
89
+
90
+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SERVICE IS PROVIDED **AS IS** AND **AS AVAILABLE**, WITH ALL FAULTS AND WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EXPRESS, IMPLIED, OR STATUTORY. WE DISCLAIM WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, ACCURACY, RELIABILITY, SECURITY, AVAILABILITY, QUIET ENJOYMENT, AND THAT THE SERVICE OR OUTPUT WILL BE ERROR-FREE, COMPLETE, CURRENT, OR SUITABLE FOR YOUR NEEDS.
91
+
92
+ YOU ASSUME ALL RISK ARISING FROM INSTALLATION, CONFIGURATION, ACCESS, USE, OUTPUT, CONNECTED ACCOUNTS, AND THIRD-PARTY SERVICES. THE [DISCLAIMER](./DISCLAIMER.md) PROVIDES A PLAIN-LANGUAGE SUMMARY BUT DOES NOT LIMIT THIS SECTION.
93
+
94
+ Some jurisdictions do not allow certain disclaimers, so parts of this section may not apply to you.
95
+
96
+ ## 12. Limitation of liability
97
+
98
+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, WE AND OUR AFFILIATES, SUCCESSORS, LICENSORS, SERVICE PROVIDERS, AND REPRESENTATIVES WILL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, CONSEQUENTIAL, OR PUNITIVE DAMAGES; LOSS OF PROFITS, REVENUE, SAVINGS, BUSINESS, OPPORTUNITY, GOODWILL, USE, OR DATA; BUSINESS INTERRUPTION; COST OF SUBSTITUTE SERVICES; THIRD-PARTY CLAIMS; OR DAMAGES ARISING FROM AI OUTPUT, SECURITY INCIDENTS, CONNECTED ACTIONS, OR THIRD-PARTY SERVICES, UNDER ANY THEORY OF LIABILITY, EVEN IF ADVISED OF THE POSSIBILITY.
99
+
100
+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, OUR TOTAL AGGREGATE LIABILITY ARISING OUT OF OR RELATING TO THE SERVICE OR THESE TERMS WILL NOT EXCEED THE GREATER OF (A) THE AMOUNT YOU PAID US DIRECTLY FOR THE SERVICE DURING THE 12 MONTHS BEFORE THE EVENT GIVING RISE TO THE CLAIM OR (B) US$100.
101
+
102
+ These limitations do not exclude liability that cannot legally be excluded or limited.
103
+
104
+ ## 13. Indemnity
105
+
106
+ To the maximum extent permitted by law, you will defend, indemnify, and hold us and our affiliates, successors, representatives, and service providers harmless from claims, demands, losses, liabilities, damages, judgments, costs, and reasonable legal fees arising from your User Content, deployment, credentials, connected accounts, confirmed actions, violation of these Terms or law, infringement of another person's rights, or commercial or otherwise unlicensed use of Mavéa.
107
+
108
+ This section does not apply where prohibited by law.
109
+
110
+ ## 14. Suspension and termination
111
+
112
+ Your software license ends as described in the PolyForm license. We may also stop providing access to any service we operate if we reasonably believe you violated these Terms or created risk or legal exposure. Sections that by their nature should survive termination—including ownership, disclaimers, liability limits, indemnity, and this paragraph—will survive.
113
+
114
+ ## 15. General terms
115
+
116
+ These Terms, the PolyForm license, and the policies linked here are the entire agreement about the Service and replace prior statements on that subject. If a provision is unenforceable, it will be enforced to the maximum extent permitted and the remaining provisions will remain effective. A waiver must be in writing and is not a continuing waiver. You may not assign these Terms without written consent from the relevant party. An applicable rights holder or deployment operator may assign these Terms and transfer rights it owns or controls in connection with a reorganization, financing, merger, acquisition, sale of assets or intellectual property, or similar transaction.
117
+
118
+ No governing-law, arbitration, venue, or class-action-waiver clause is included in this version. Applicable law determines those questions unless and until a later version, reviewed for the relevant owners and jurisdictions, states otherwise.
119
+
120
+ ## 16. Contact
121
+
122
+ For a hosted copy, contact the person or organization that gave you access. For the public repository, use the Mavéa GitHub issue tracker for non-sensitive questions. Do not put confidential information in a public issue. Security reports must follow [SECURITY.md](./SECURITY.md).
123
+ `,a=e();function o(){let e=(0,r.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,a.jsx)(n,{markdown:i,page:`terms`,kicker:`Project terms`}),e[0]=t):t=e[0],t}export{o as TermsApp};