@mavea/mavea 1.0.17 → 1.0.18

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 (670) hide show
  1. package/DISCLAIMER.md +4 -1
  2. package/PRIVACY.md +14 -8
  3. package/README.md +61 -23
  4. package/TERMS.md +11 -1
  5. package/THIRD-PARTY.txt +25248 -621
  6. package/bin/mavea.mjs +156 -147
  7. package/dist/.vite/manifest.json +2159 -1730
  8. package/dist/assets/AnnotationLayer-ClU-e6qL.css +1 -0
  9. package/dist/assets/AnnotationLayer-DHHGgh8x.js +2 -0
  10. package/dist/assets/AppCommandPalette-DKBglbNo.js +1 -0
  11. package/dist/assets/AtlasView-B82UfrEX.js +1 -0
  12. package/dist/assets/BlockEmpty-B82uCse8.js +1 -0
  13. package/dist/assets/BriefingPlayer-C0D_2ILa.js +1 -0
  14. package/dist/assets/CanvasSkeleton-Bx0s36b_.js +2 -0
  15. package/dist/assets/CardEditor-DABIhGdQ.js +1 -0
  16. package/dist/assets/CheckLogRail-BOaXnqWK.css +1 -0
  17. package/dist/assets/CheckLogRail-Btg7Linv.js +1 -0
  18. package/dist/assets/{CodeOutput-H8TQzjqL.js → CodeOutput-DF892aIR.js} +3 -3
  19. package/dist/assets/CommandPalette-DagPdSGZ.js +1 -0
  20. package/dist/assets/ConversationVideoStudio-CIAMxElj.css +1 -0
  21. package/dist/assets/ConversationVideoStudio-EPw6H4lE.js +1 -0
  22. package/dist/assets/CourseLessonReader-DeAuL1tO.js +2 -0
  23. package/dist/assets/CourseRail-Dx9IIbTZ.js +1 -0
  24. package/dist/assets/CoursesApp-CzUGaYWZ.js +2 -0
  25. package/dist/assets/CrossExamPanel-CdIYUu-B.js +1 -0
  26. package/dist/assets/DashPresent-DXwesMIr.js +1 -0
  27. package/dist/assets/DashboardDetail-CJzB85NC.js +2 -0
  28. package/dist/assets/DashboardLoopRuntime-CEnUpS-I.js +1 -0
  29. package/dist/assets/DashboardOverview-C3hv9sm1.js +1 -0
  30. package/dist/assets/DashboardSettings-CmZWG3US.js +1 -0
  31. package/dist/assets/{DashboardsApp-Dx-EsaPW.css → DashboardsApp-B6yUtkKB.css} +1 -1
  32. package/dist/assets/DashboardsApp-wCgs98G0.js +2 -0
  33. package/dist/assets/{DeepZoomApp-CQaTT2Uh.js → DeepZoomApp-CwqKpjo7.js} +2 -2
  34. package/dist/assets/DelegatePanel-Bi1qPgGG.js +33 -0
  35. package/dist/assets/DemoGallery-Cg0ykVpG.js +1 -0
  36. package/dist/assets/DropSelect-C3g0PjuN.js +1 -0
  37. package/dist/assets/DropSelect-DilESAgA.css +1 -0
  38. package/dist/assets/ExportModal-rxndDhoO.js +2 -0
  39. package/dist/assets/ExtractionPreview-ChRAimKr.js +18 -0
  40. package/dist/assets/{FallbackCard-B489rTd9.js → FallbackCard-ap_4wOfj.js} +1 -1
  41. package/dist/assets/FeatureUseNotice-BhljPjUv.js +1 -0
  42. package/dist/assets/FlagshipCTA-uoeGMQas.js +1 -0
  43. package/dist/assets/FlagshipCommandPalette-DyNsP8k3.js +1 -0
  44. package/dist/assets/FlagshipShowcase-DHpGPlca.js +1 -0
  45. package/dist/assets/FlashcardsApp-Cm50X3Hl.js +1 -0
  46. package/dist/assets/ForecastPanel-zPUh2ClQ.js +1 -0
  47. package/dist/assets/GalleryApp-BFop9Eu7.js +1 -0
  48. package/dist/assets/{HonestByDesign-CCOt31nx.js → HonestByDesign-HeTTCiis.js} +1 -1
  49. package/dist/assets/{HowItWorks-auW5XXCZ.js → HowItWorks-gAuUl7VQ.js} +1 -1
  50. package/dist/assets/LegalApp-jOlpLQSV.js +1 -0
  51. package/dist/assets/{LegalMarkdownDocument-DBjLz9Yf.js → LegalMarkdownDocument-RSNiyAu0.js} +2 -2
  52. package/dist/assets/LegalPageShell-CmxGCdqJ.css +1 -0
  53. package/dist/assets/LegalPageShell-Cr90l1I2.js +1 -0
  54. package/dist/assets/LeverPanel-D1SNRGdm.js +1 -0
  55. package/dist/assets/Library-DmdzY2se.js +1 -0
  56. package/dist/assets/LibraryOverlay-DEQ5GuIs.js +1 -0
  57. package/dist/assets/LiveApp-Bl7WBgqJ.css +1 -0
  58. package/dist/assets/LiveApp-CUoQgVo1.js +62 -0
  59. package/dist/assets/LiveSettings-jn26sH4v.js +6 -0
  60. package/dist/assets/MindMapViewerDrawer-CDDzzpFi.js +1 -0
  61. package/dist/assets/MindShape-BeZFay7O.js +1 -0
  62. package/dist/assets/MindShape-CaPeUo-a.css +1 -0
  63. package/dist/assets/{Orb-B0NEVfqL.js → Orb-D8lhTdmY.js} +1 -1
  64. package/dist/assets/PinToDashboard-CSqwDBLD.js +1 -0
  65. package/dist/assets/PlanReview-ChZeUHQO.js +1 -0
  66. package/dist/assets/Presence-CKSoyuhE.js +1 -0
  67. package/dist/assets/PresentationDeck-Dj9MQVZC.js +1 -0
  68. package/dist/assets/PrismApp-Dfs6eAuR.js +2 -0
  69. package/dist/assets/PrismAskController-CSsCkRC8.js +37 -0
  70. package/dist/assets/PrismBriefingPlayer-BoB_PCTT.js +2 -0
  71. package/dist/assets/PrismOverlay-CGtr7lBl.js +109 -0
  72. package/dist/assets/PrismWorkbench-f0rLNBxb.js +1 -0
  73. package/dist/assets/{PrivacyApp-rhzy-5HG.js → PrivacyApp-CFs0PM5C.js} +16 -10
  74. package/dist/assets/Recap-T9DtFaEk.js +1 -0
  75. package/dist/assets/ReelJelly-D5e-jt-8.js +1 -0
  76. package/dist/assets/ReplayCard-BkJbY0-I.js +2 -0
  77. package/dist/assets/ReplayCard-Cs6mzTRa.css +1 -0
  78. package/dist/assets/ReplayOverlay-Dm_k7FBA.js +1 -0
  79. package/dist/assets/ReplayOverlay-DzkcTnCA.css +1 -0
  80. package/dist/assets/RewindOverlay-BSDbLgcN.js +1 -0
  81. package/dist/assets/RippleApp-DW1rpKHe.js +2 -0
  82. package/dist/assets/RippleAskController-CywVzqUA.js +34 -0
  83. package/dist/assets/RippleOverlay-DVxfWEQ8.js +6 -0
  84. package/dist/assets/SeeDontRead-Ct4PY63d.js +1 -0
  85. package/dist/assets/ShareModal-BILPvqjZ.js +2 -0
  86. package/dist/assets/{ShareModal-PobtP7AJ.css → ShareModal-D1QuQEko.css} +1 -1
  87. package/dist/assets/ShipCascade-Bf-qDWMb.js +1 -0
  88. package/dist/assets/ShipCourse-DGj9BbRM.js +1 -0
  89. package/dist/assets/{ShipGate-BYYu9WVq.js → ShipGate-D4BP41-h.js} +1 -1
  90. package/dist/assets/ShipHotspots-lGioTtf1.js +1 -0
  91. package/dist/assets/{ShipIncident-Xod2gbjc.js → ShipIncident-DMLb14Lx.js} +1 -1
  92. package/dist/assets/ShipMigration-ZnzL-1rC.js +1 -0
  93. package/dist/assets/ShipOnboarding-DUxtx2Vr.js +1 -0
  94. package/dist/assets/ShipRead-CJJmY-wy.js +1 -0
  95. package/dist/assets/ShipRollout-Dt2TgI0L.js +1 -0
  96. package/dist/assets/ShipSuggestions-BrAXTjAR.js +1 -0
  97. package/dist/assets/ShipWorkspace-_MtKAiKH.js +2 -0
  98. package/dist/assets/SignatureLoop-CfM-rTXb.js +1 -0
  99. package/dist/assets/SrsReview-B1B2VekR.css +1 -0
  100. package/dist/assets/SrsReview-DhWNYYv7.js +1 -0
  101. package/dist/assets/SynthesisApp-C43ZO6Ew.js +2 -0
  102. package/dist/assets/SynthesisOverlay-Dunk_JWD.js +66 -0
  103. package/dist/assets/{TermsApp-Dk2jpxq-.js → TermsApp-BUQa48cB.js} +13 -3
  104. package/dist/assets/TopbarMenu-DQXxqSWY.js +1 -0
  105. package/dist/assets/TopicCanvas-DR26Swr_.js +2 -0
  106. package/dist/assets/TourPrism-zt1LIaLd.js +1 -0
  107. package/dist/assets/TrackerTile-sYD2MM_4.js +2 -0
  108. package/dist/assets/TwoSurfaces-CLOIlVvY.js +1 -0
  109. package/dist/assets/UnderstoodPanel-DmJph4el.js +1 -0
  110. package/dist/assets/WhyMachineOverlay-Nll4Wco-.js +1 -0
  111. package/dist/assets/WowFeatures-CNVwRlf0.js +1 -0
  112. package/dist/assets/ZoomDeck-DNgyW7Nm.js +1 -0
  113. package/dist/assets/__vite-browser-external-gfE6fZcA.js +1 -0
  114. package/dist/assets/alternateFinishes-Cgks49KV.js +494 -0
  115. package/dist/assets/annotationAuto-C9weSF2k.js +1 -0
  116. package/dist/assets/annotationReel-va1i-lKs.js +1 -0
  117. package/dist/assets/annotations-CftUUB13.js +1 -0
  118. package/dist/assets/attachments-BW-vki-E.js +1 -0
  119. package/dist/assets/backup-D--1WRte.js +1 -0
  120. package/dist/assets/blockLabel-FogyzEQY.js +1 -0
  121. package/dist/assets/blockTypes-CgNGx27_.js +1 -0
  122. package/dist/assets/buildShip-BgFg98tH.js +1 -0
  123. package/dist/assets/cache-CvbSI-pr.js +1 -0
  124. package/dist/assets/canvas-DIs20T9l.js +1 -0
  125. package/dist/assets/capture-BBxyt5SN.js +2 -0
  126. package/dist/assets/catalog-Db9GWM6N.js +1 -0
  127. package/dist/assets/{cfo.generated-Bjl5OGay.js → cfo.generated-j5CXp1Zz.js} +1 -1
  128. package/dist/assets/chapters-Dqm4iLDa.js +1 -0
  129. package/dist/assets/charts2-CaKGzkgJ.js +1 -0
  130. package/dist/assets/checkLogModel-BMtruriG.js +1 -0
  131. package/dist/assets/{citation-BcvmjKS8.js → citation-BsSvaaer.js} +1 -1
  132. package/dist/assets/{codeContext-0UMRSGRr.js → codeContext-goNoLAIr.js} +1 -1
  133. package/dist/assets/compiler-runtime-qQQXpJgv.js +1 -0
  134. package/dist/assets/{compose-BJ9EfcQS.js → compose-D-OsDiU9.js} +1 -1
  135. package/dist/assets/confirmAdd-BDNV8RqF.js +1 -0
  136. package/dist/assets/{contentVault-DzTYWcbD.js → contentVault-xfUwSJ3i.js} +1 -1
  137. package/dist/assets/coreIcons-BzqW7Qiz.js +1 -0
  138. package/dist/assets/cpp-CJIxL8VH.js +1 -0
  139. package/dist/assets/cpp-Cts1PyIS.js +1 -0
  140. package/dist/assets/dash-composer-DeNWVwpU.css +1 -0
  141. package/dist/assets/dashboardEvents-BDKxoLch.js +2 -0
  142. package/dist/assets/dashboards-Dy4MTJQ5.css +1 -0
  143. package/dist/assets/dataPending-lZUzUEo6.js +1 -0
  144. package/dist/assets/{diagrams-CaSfjT4I.js → diagrams-1DJMD4j-.js} +1 -1
  145. package/dist/assets/dist-DRo0JOkC.js +14 -0
  146. package/dist/assets/{dist-DIKAXwpM.js → dist-kNHRtoqd.js} +21 -21
  147. package/dist/assets/empty-BO1NC9qY.js +1 -0
  148. package/dist/assets/{explode-WBykfhqW.js → explode-fgkkWz8o.js} +1 -1
  149. package/dist/assets/facts-BUGuVUIc.js +1 -0
  150. package/dist/assets/fit-CMu7prjb.js +1 -0
  151. package/dist/assets/fitText-DQ2omSN0.js +1 -0
  152. package/dist/assets/format-q0LwBjID.js +1 -0
  153. package/dist/assets/{format-hc2QOoIu.js → format-rPI6ZwwH.js} +1 -1
  154. package/dist/assets/friendlyAsk-BBdRZIar.js +1 -0
  155. package/dist/assets/{generate-8odaTyr4.js → generate-CemSUZ8A.js} +3 -3
  156. package/dist/assets/generateBeats-aqKTlSN2.js +1 -0
  157. package/dist/assets/{generateCourse-Cj_-vDWu.js → generateCourse-BIBbw-ZJ.js} +1 -1
  158. package/dist/assets/generateLive-BsXn4Y_d.js +51 -0
  159. package/dist/assets/githubBrowser-BDiuD9dz.js +1 -0
  160. package/dist/assets/githubToken-Bwa7V9YT.js +1 -0
  161. package/dist/assets/history-D2EH2X6D.js +1 -0
  162. package/dist/assets/homeTarget-CsO8nY7z.js +1 -0
  163. package/dist/assets/http-Lar_UMKb.js +2 -0
  164. package/dist/assets/{icons-CHVz6kv_.js → icons-gLFQTv74.js} +1 -1
  165. package/dist/assets/incident-D3bmMmES.js +10 -0
  166. package/dist/assets/index-B69GkoTc.css +1 -0
  167. package/dist/assets/index-D1SPhBGd.js +22 -0
  168. package/dist/assets/index.es-yrxxdux0.js +5 -0
  169. package/dist/assets/jspdf.es.min-Bbaa2Qun.js +79 -0
  170. package/dist/assets/jsx-runtime-DeHZSEgm.js +1 -0
  171. package/dist/assets/katex-CiJ_n4H9.js +257 -0
  172. package/dist/assets/keyVault-Aw5Y2PjT.js +1 -0
  173. package/dist/assets/kokoro-C6P0LV4L.js +1 -0
  174. package/dist/assets/layout-CEoNLr-w.js +1 -0
  175. package/dist/assets/{layout-CkO0Psde.js → layout-CHn3XWJd.js} +1 -1
  176. package/dist/assets/learn-CXstDWJf.js +1 -0
  177. package/dist/assets/ledger-Cv0LBflx.js +1 -0
  178. package/dist/assets/lib-B7OE1ZQQ.js +1 -0
  179. package/dist/assets/liveSchema-B8OByCPH.js +99 -0
  180. package/dist/assets/maplibre-gl-CrDadnl3.js +801 -0
  181. package/dist/assets/maplibre-gl-worker-DZ7nj4vd.js +11 -0
  182. package/dist/assets/{mastery-D7xYf5D7.js → mastery-CUfDeuqO.js} +2 -2
  183. package/dist/assets/{media-CsrUl279.js → media-BvwzACIX.js} +1 -1
  184. package/dist/assets/{model-BE0UHu1w.js → model-BsQ5ixwB.js} +1 -1
  185. package/dist/assets/motion-BY_Egaxm.js +1 -0
  186. package/dist/assets/motion-DxHSlPN6.js +1 -0
  187. package/dist/assets/{neighborhoods-DFqKm9Xi.js → neighborhoods-D7QjURnE.js} +1 -1
  188. package/dist/assets/notes-U6gRKVHk.js +1 -0
  189. package/dist/assets/officeDoc-Dn8jw1fG.js +3 -0
  190. package/dist/assets/openchemlib-Cz_MN0FG.js +23 -0
  191. package/dist/assets/{owners-FXDGInVq.js → owners-HRBX7JN_.js} +1 -1
  192. package/dist/assets/parseDiff-D8uBQ9mQ.js +2 -0
  193. package/dist/assets/pdf-CUAVYiYW.js +54 -0
  194. package/dist/assets/pdf.worker.min-CHFwMXne.mjs +29 -0
  195. package/dist/assets/pen-D9UT-ioQ.js +24 -0
  196. package/dist/assets/{perfProbe-Xs39DqMh.js → perfProbe-BxyiHsI2.js} +1 -1
  197. package/dist/assets/{php-CYrBA5iX.js → php-CQT4wx5i.js} +1 -1
  198. package/dist/assets/pin-D-4Zjiik.css +1 -0
  199. package/dist/assets/pin-qQrH_dBi.js +1 -0
  200. package/dist/assets/planTracker-CjnznF7v.js +1 -0
  201. package/dist/assets/portal-t0bsUEg2.js +1 -0
  202. package/dist/assets/{pptxgen.es-CveAizg8.js → pptxgen.es-zw8PIOkD.js} +11 -11
  203. package/dist/assets/predictions-CkVKHq-5.js +1 -0
  204. package/dist/assets/preload-helper-CiWYd9n-.js +1 -0
  205. package/dist/assets/preloadableLazy-MIX1ApBW.js +1 -0
  206. package/dist/assets/{prewarm-K5WcvrNh.js → prewarm-CAZcnT4x.js} +1 -1
  207. package/dist/assets/prism.generated-BQkO5r6r.js +41 -0
  208. package/dist/assets/{prismExtract.worker-Cws9K1NG.js → prismExtract.worker-OxGWMXXN.js} +1 -1
  209. package/dist/assets/prismGround.worker-C9hyveb3.js +1 -0
  210. package/dist/assets/prismLayout.worker-CJa4orCT.js +1 -0
  211. package/dist/assets/providers-DdJWf_PE.js +1 -0
  212. package/dist/assets/purify.es-JEAr64Sr.js +3 -0
  213. package/dist/assets/{queue-J4h7E3uc.js → queue-Adae4IzW.js} +1 -1
  214. package/dist/assets/quietHours-_i5Uqz7z.js +1 -0
  215. package/dist/assets/quizResult-DB8yeqDr.js +1 -0
  216. package/dist/assets/react-BZJXY1be.js +1 -0
  217. package/dist/assets/ready-4lPJes2S.js +1 -0
  218. package/dist/assets/ready-LSwk88I-.js +1 -0
  219. package/dist/assets/{reference-sJzyMiL4.js → reference-BjexflMu.js} +1 -1
  220. package/dist/assets/registry-4mMEt1Xy.css +1 -0
  221. package/dist/assets/registry-7poQfBaM.js +4 -0
  222. package/dist/assets/registry-9QjeHgKs.js +1 -0
  223. package/dist/assets/registry-B0GIHERt.js +1 -0
  224. package/dist/assets/{registry-DpaaVbmL.css → registry-B1KQ1VPZ.css} +1 -1
  225. package/dist/assets/registry-B5S3brjM.css +1 -0
  226. package/dist/assets/registry-BFbfXK-W.js +1 -0
  227. package/dist/assets/registry-BSX3aFUw.js +1 -0
  228. package/dist/assets/registry-Bv1f5UU4.js +2 -0
  229. package/dist/assets/registry-BzH7mEl7.js +1 -0
  230. package/dist/assets/registry-C28gYnVq.js +1 -0
  231. package/dist/assets/registry-COkvZrNA.css +1 -0
  232. package/dist/assets/registry-CPImC7mO.js +1 -0
  233. package/dist/assets/registry-CPiwQhAm.js +1 -0
  234. package/dist/assets/registry-CcOO8UZr.js +1 -0
  235. package/dist/assets/registry-Ci65uThi.js +1 -0
  236. package/dist/assets/registry-CkScyZGa.js +1 -0
  237. package/dist/assets/registry-CtvKPLd7.js +1 -0
  238. package/dist/assets/{registry-upbw6pyj.css → registry-CuVk7MAI.css} +1 -1
  239. package/dist/assets/{registry-D5oMqeSa.js → registry-CueC1vq1.js} +1 -1
  240. package/dist/assets/registry-CvylL2BN.css +1 -0
  241. package/dist/assets/registry-CxUmdwDk.js +1 -0
  242. package/dist/assets/registry-D8O0apUT.js +2 -0
  243. package/dist/assets/registry-DLyrLfe-2.js +1 -0
  244. package/dist/assets/registry-DO4hGO5e.js +1 -0
  245. package/dist/assets/{registry-Xzq_Rpmm.css → registry-DScSjt8p.css} +1 -1
  246. package/dist/assets/registry-Daypk4uR.js +1 -0
  247. package/dist/assets/registry-Dd1lcXrO.js +2 -0
  248. package/dist/assets/{registry-DWcNVyI2.css → registry-DpMI23iE.css} +1 -1
  249. package/dist/assets/registry-NbNNn_ra.js +1 -0
  250. package/dist/assets/registry-Vp8VuMV0.js +9 -0
  251. package/dist/assets/registry-WHd1PwU3.js +1 -0
  252. package/dist/assets/registry-Xl8mAnKq.js +1 -0
  253. package/dist/assets/registry-tkd3UhWn.css +1 -0
  254. package/dist/assets/{registry-ei6fIgBT.css → registry-twSIyxJQ.css} +1 -1
  255. package/dist/assets/registry-types-D3q_LrlV.js +1 -0
  256. package/dist/assets/registry-w4R6c89s.js +48 -0
  257. package/dist/assets/{relate-CEND9Qlk.js → relate-DHPSGB7a.js} +1 -1
  258. package/dist/assets/replay-zh4xVk5G.js +1 -0
  259. package/dist/assets/rolldown-runtime-DkW27tQK.js +1 -0
  260. package/dist/assets/route-D4kd-D3B.js +1 -0
  261. package/dist/assets/{ruby-BhrksQMt.js → ruby-D_UtGFHI.js} +1 -1
  262. package/dist/assets/{run-Dc2ZJz6n.js → run-BdDyp6Xv.js} +2 -2
  263. package/dist/assets/run-ByCJN-29.js +23 -0
  264. package/dist/assets/run-DiPX83_J.js +21 -0
  265. package/dist/assets/safeImageUrl-BINWXOTz.js +1 -0
  266. package/dist/assets/screen-DFWKge3-.js +1 -0
  267. package/dist/assets/search-ZN7v_P5B.js +1 -0
  268. package/dist/assets/shapes-DI0LQC8n.js +1 -0
  269. package/dist/assets/shard005-Dp5TM33O.js +1 -0
  270. package/dist/assets/shard006-DpJfkjmW.js +1 -0
  271. package/dist/assets/shard007-CIQN8OfZ.js +1 -0
  272. package/dist/assets/shard008-BFiyL7r6.js +1 -0
  273. package/dist/assets/shard009-0s30Tkk9.js +1 -0
  274. package/dist/assets/shard010-DPhgF5ck.js +1 -0
  275. package/dist/assets/shard011-C2jVsC25.js +1 -0
  276. package/dist/assets/shard012-DYtN5yzJ.js +1 -0
  277. package/dist/assets/shard013-1D6_Qy9C.js +1 -0
  278. package/dist/assets/shard014-D8s7GHnm.js +1 -0
  279. package/dist/assets/shard015-16W6KgnL.js +1 -0
  280. package/dist/assets/shard016-B4PpWmro.js +1 -0
  281. package/dist/assets/shard017-BO1sA5b3.js +1 -0
  282. package/dist/assets/shard018-D4gn8z25.js +1 -0
  283. package/dist/assets/shard019-vSbfaqRA.js +1 -0
  284. package/dist/assets/shard020-DwbHP8bp.js +1 -0
  285. package/dist/assets/{shard021-2FE-tze4.js → shard021-BhEyVVAL.js} +1 -1
  286. package/dist/assets/shard022-BdT7zFy3.js +1 -0
  287. package/dist/assets/shard023-Dga_NQcm.js +1 -0
  288. package/dist/assets/shard024-CXHofcxc.js +1 -0
  289. package/dist/assets/shard025-a4CQKYw1.js +1 -0
  290. package/dist/assets/shard026-0rhLKfDL.js +1 -0
  291. package/dist/assets/shard027-C9GMfOtn.js +1 -0
  292. package/dist/assets/shard028-D9__rPnw.js +1 -0
  293. package/dist/assets/shard029-BSdYKGgG.js +1 -0
  294. package/dist/assets/shard030-DceOU7pS.js +1 -0
  295. package/dist/assets/shard031-C6_p076r.js +1 -0
  296. package/dist/assets/shard032-Cah16sJi.js +1 -0
  297. package/dist/assets/shard033-D-iobGzc.js +1 -0
  298. package/dist/assets/shard034-DIyfCKl8.js +1 -0
  299. package/dist/assets/shard035-BHWs8v0a.js +1 -0
  300. package/dist/assets/shard036-AhOPHqzq.js +1 -0
  301. package/dist/assets/shard037-CuAGDOOu.js +1 -0
  302. package/dist/assets/shard038-CYdtnPjK.js +1 -0
  303. package/dist/assets/shard039-DgvXKOyi.js +1 -0
  304. package/dist/assets/shard040-DO012waT.js +1 -0
  305. package/dist/assets/shard041-BeUicA1R.js +1 -0
  306. package/dist/assets/shard042-D2zbq14A.js +1 -0
  307. package/dist/assets/shard043-BKoTEB-H.js +1 -0
  308. package/dist/assets/shard044-bmYKfH3A.js +1 -0
  309. package/dist/assets/shard045-i_R1olD9.js +1 -0
  310. package/dist/assets/shard046-CFk2L0GQ.js +1 -0
  311. package/dist/assets/shard047-pjHCnVaT.js +1 -0
  312. package/dist/assets/shard048-Cc7tGz6R.js +1 -0
  313. package/dist/assets/shard049-C9eoD-6Z.js +1 -0
  314. package/dist/assets/shard050-V3c_ZDrB.js +1 -0
  315. package/dist/assets/shard051-D1ISwZzf.js +1 -0
  316. package/dist/assets/shard052-Dy09xx3S.js +1 -0
  317. package/dist/assets/shard053-Bi4Z4cwW.js +1 -0
  318. package/dist/assets/shard054-BoC-LNYu.js +1 -0
  319. package/dist/assets/shard055-D2NJeMN1.js +1 -0
  320. package/dist/assets/shard056-sSFMbxXN.js +1 -0
  321. package/dist/assets/shard057-DhNK5nyZ.js +1 -0
  322. package/dist/assets/shard058-Du4SjxeD.js +1 -0
  323. package/dist/assets/shard059-fGiLnJzG.js +1 -0
  324. package/dist/assets/shard060-l84MDY2t.js +1 -0
  325. package/dist/assets/shard061-B3aIa7Aa.js +1 -0
  326. package/dist/assets/{shard061-C9A8iNiq.js → shard062-BJ8OX6CJ.js} +1 -1
  327. package/dist/assets/shard063-CMo-7Qit.js +1 -0
  328. package/dist/assets/shard064-B0EEOnfG.js +1 -0
  329. package/dist/assets/shard065-D-StlUHp.js +1 -0
  330. package/dist/assets/share-kW3pZ027.js +1 -0
  331. package/dist/assets/shikiHighlight-BwX78OP8.js +153 -0
  332. package/dist/assets/speed-K5_Ebj-8.js +1 -0
  333. package/dist/assets/spokenText-D3iS8fuI.js +1 -0
  334. package/dist/assets/spreadLabels-CQ8hufvK.js +1 -0
  335. package/dist/assets/src-DG1n-LFe.js +1 -0
  336. package/dist/assets/store-BWLbFXiY.js +1 -0
  337. package/dist/assets/{store-BMRQiV1z.js → store-BfHRbVKz.js} +1 -1
  338. package/dist/assets/store-D-f8ZuaK.js +1 -0
  339. package/dist/assets/store-D2IJF4SA.js +0 -0
  340. package/dist/assets/store-DpObYU1u.js +1 -0
  341. package/dist/assets/store-DpmbKVs7.js +1 -0
  342. package/dist/assets/store-gohr8YVT.js +1 -0
  343. package/dist/assets/{streamParse-DRgMHWye.js → streamParse-B-Gjwa9T.js} +1 -1
  344. package/dist/assets/svgLabel-BQMDdcT2.js +1 -0
  345. package/dist/assets/swift-CyEgAFGc.js +1 -0
  346. package/dist/assets/theme-f0mztBcq.js +1 -0
  347. package/dist/assets/threads-Cu2t3070.js +1 -0
  348. package/dist/assets/tiles-CBiVVjtT.css +1 -0
  349. package/dist/assets/tiles-pdNi6MGe.js +1 -0
  350. package/dist/assets/types-CaO6xOn5.js +1 -0
  351. package/dist/assets/useDashboardLoop-DuckIfJX.js +5 -0
  352. package/dist/assets/useDashboards-BMcuCWoz.js +1 -0
  353. package/dist/assets/{useFocusTrap-DbfG6zbM.js → useFocusTrap-DBtkeyRy.js} +1 -1
  354. package/dist/assets/useInView-CXTOAEV3.js +1 -0
  355. package/dist/assets/useLedger-1WVXef68.js +1 -0
  356. package/dist/assets/useLiveConfig-9eJ7EM3B.js +1 -0
  357. package/dist/assets/useSpatialCanvas-CtVsYmp8.js +1 -0
  358. package/dist/assets/useSpotlightWalk-DxlxBezO.js +1 -0
  359. package/dist/assets/useSrsCards-C27o39fF.js +1 -0
  360. package/dist/assets/useStudy-B5874Bcg.js +1 -0
  361. package/dist/assets/{useTimeout-BRYvu2jQ.js → useTimeout-Cm4yzted.js} +1 -1
  362. package/dist/assets/{useValidatedImage-D2fhA198.js → useValidatedImage-BQi2c66o.js} +1 -1
  363. package/dist/assets/useZoomGesture-CN0p0lHL.js +1 -0
  364. package/dist/assets/verbatim-DBTj9sPD.js +1 -0
  365. package/dist/assets/worker-D7eK-Ya8.js +2 -0
  366. package/dist/demo-assets/CREDITS.md +75 -24
  367. package/dist/demo-assets/pdf/cfd-primer.pdf +0 -0
  368. package/dist/demo-assets/video/azores-film.webm +0 -0
  369. package/dist/fonts/LICENSE.txt +32 -28
  370. package/dist/fonts/OFL-1.1.txt +81 -0
  371. package/dist/fonts/PROVENANCE.md +38 -0
  372. package/dist/index.html +14 -8
  373. package/dist/legal/DISCLAIMER.md +4 -1
  374. package/dist/legal/PRIVACY.md +14 -8
  375. package/dist/legal/TERMS.md +11 -1
  376. package/dist/legal/THIRD-PARTY.txt +25248 -621
  377. package/dist/pdfjs/LICENSE_JBIG2 +196 -0
  378. package/dist/pdfjs/LICENSE_OPENJPEG +39 -0
  379. package/dist/pdfjs/LICENSE_PDFJS_JBIG2 +13 -0
  380. package/dist/pdfjs/LICENSE_PDFJS_OPENJPEG +22 -0
  381. package/dist/pdfjs/LICENSE_PDFJS_QCMS +22 -0
  382. package/dist/pdfjs/LICENSE_QCMS +21 -0
  383. package/dist/pdfjs/jbig2.wasm +0 -0
  384. package/dist/pdfjs/openjpeg.wasm +0 -0
  385. package/dist/pdfjs/qcms_bg.wasm +0 -0
  386. package/docker-compose.yml +40 -7
  387. package/docs/media/answer-ink.jpg +0 -0
  388. package/docs/media/canvas-view.jpg +0 -0
  389. package/docs/media/deck-export.jpg +0 -0
  390. package/docs/media/deep-zoom.jpg +0 -0
  391. package/docs/media/doc-export.jpg +0 -0
  392. package/docs/media/doc-prism.jpg +0 -0
  393. package/docs/media/repo-course.jpg +0 -0
  394. package/docs/media/think-map.jpg +0 -0
  395. package/docs/media/trip-plan.jpg +0 -0
  396. package/docs/media/voice-scrub.jpg +0 -0
  397. package/package.json +71 -60
  398. package/voice/start-whisper.sh +28 -0
  399. package/voice/whisper.Dockerfile +44 -0
  400. package/dist/assets/AppCommandPalette-B3E1gTd4.js +0 -1
  401. package/dist/assets/AtlasView-B8b67dk0.js +0 -1
  402. package/dist/assets/BlockEmpty-DQkdduUE.js +0 -1
  403. package/dist/assets/BriefingPlayer-CRKTlKa3.js +0 -1
  404. package/dist/assets/CanvasSkeleton-cQ6KF-6z.js +0 -2
  405. package/dist/assets/CardEditor-DzJXb0G7.js +0 -1
  406. package/dist/assets/CheckLogRail-C6nouD1Y.js +0 -1
  407. package/dist/assets/CheckLogRail-F4AlgAcc.css +0 -1
  408. package/dist/assets/CommandPalette-CSvgbXxg.js +0 -1
  409. package/dist/assets/CourseLessonReader-1KDKwxIj.js +0 -2
  410. package/dist/assets/CourseRail-BijCpApU.js +0 -1
  411. package/dist/assets/CoursesApp-BWkdYL07.js +0 -2
  412. package/dist/assets/CrossExamPanel-Cn7b5y7B.js +0 -1
  413. package/dist/assets/DashPresent-B025i7iJ.js +0 -1
  414. package/dist/assets/DashboardDetail-CZLnxgp0.js +0 -2
  415. package/dist/assets/DashboardLoopRuntime-7MpMUcMg.js +0 -1
  416. package/dist/assets/DashboardOverview-COyleu7v.js +0 -1
  417. package/dist/assets/DashboardSettings-DUfUqbsp.js +0 -1
  418. package/dist/assets/DashboardsApp-6xMz2qCP.js +0 -2
  419. package/dist/assets/DelegatePanel-D4OrMa2D.js +0 -33
  420. package/dist/assets/DemoGallery-Bt92vKqc.js +0 -1
  421. package/dist/assets/DropSelect-Q310fTbf.js +0 -1
  422. package/dist/assets/ExportModal-D0zXlC8w.js +0 -2
  423. package/dist/assets/ExtractionPreview-0SZYynDs.js +0 -18
  424. package/dist/assets/FeatureUseNotice-CoK5HkbR.js +0 -1
  425. package/dist/assets/FlagshipCTA-D845jkdt.js +0 -1
  426. package/dist/assets/FlagshipCommandPalette-DHMnyG7j.js +0 -1
  427. package/dist/assets/FlagshipShowcase-BuR3PZvU.js +0 -1
  428. package/dist/assets/FlashcardsApp-BzWb4cRP.js +0 -1
  429. package/dist/assets/ForecastPanel-lTnux0EB.js +0 -1
  430. package/dist/assets/GalleryApp-D0NGZ1_t.js +0 -1
  431. package/dist/assets/LegalApp-DXDomKFv.js +0 -1
  432. package/dist/assets/LegalPageShell-BG5UUk-9.js +0 -1
  433. package/dist/assets/LegalPageShell-C_HottbD.css +0 -1
  434. package/dist/assets/LeverPanel-CvYnTLjh.js +0 -1
  435. package/dist/assets/Library-Cl1gE9Qg.js +0 -1
  436. package/dist/assets/LibraryOverlay-CX4cJLqD.js +0 -1
  437. package/dist/assets/LiveApp-CDckMWYX.js +0 -61
  438. package/dist/assets/LiveApp-Dj_6EQuL.css +0 -1
  439. package/dist/assets/LiveSettings-DgfIXanM.js +0 -6
  440. package/dist/assets/MindMapViewerDrawer-ClU9wgSH.js +0 -1
  441. package/dist/assets/MindShape-DjHtMW_5.css +0 -1
  442. package/dist/assets/MindShape-yF19n9qq.js +0 -1
  443. package/dist/assets/PinToDashboard-CpIDAcIU.js +0 -1
  444. package/dist/assets/PlanReview-CPcqOxjp.js +0 -1
  445. package/dist/assets/Presence-CHGZ1JRp.js +0 -1
  446. package/dist/assets/PresentationDeck-CrtiWjiM.js +0 -1
  447. package/dist/assets/PrismApp-D7RbekoX.js +0 -2
  448. package/dist/assets/PrismAskController-D6_7Epdb.js +0 -37
  449. package/dist/assets/PrismBriefingPlayer-Dq5_KRU3.js +0 -2
  450. package/dist/assets/PrismOverlay-CduGpA8D.js +0 -131
  451. package/dist/assets/Quiz-CUwtekfu.js +0 -1
  452. package/dist/assets/Recap-BPg2xEPo.js +0 -1
  453. package/dist/assets/ReelJelly-LWeMsFpj.js +0 -1
  454. package/dist/assets/ReplayCard-C3dGQfxG.js +0 -2
  455. package/dist/assets/ReplayOverlay-C9W603B5.js +0 -1
  456. package/dist/assets/RewindOverlay-BIWmxQlx.js +0 -1
  457. package/dist/assets/RippleApp-C9-KFvkn.js +0 -2
  458. package/dist/assets/RippleAskController-DEKz-6Vn.js +0 -34
  459. package/dist/assets/RippleOverlay-CfXvnUHE.js +0 -6
  460. package/dist/assets/SeeDontRead-DrG1qBxJ.js +0 -1
  461. package/dist/assets/ShareModal-eJ6sdMpf.js +0 -32
  462. package/dist/assets/ShipCascade-BP8qL0yM.js +0 -1
  463. package/dist/assets/ShipCourse-BoqW58VU.js +0 -1
  464. package/dist/assets/ShipHotspots-_9XPhZg2.js +0 -1
  465. package/dist/assets/ShipMigration-BdkaiJ9D.js +0 -1
  466. package/dist/assets/ShipOnboarding-CblWatXR.js +0 -1
  467. package/dist/assets/ShipRead-BBn7xkOF.js +0 -1
  468. package/dist/assets/ShipRollout-i5BY3YnP.js +0 -1
  469. package/dist/assets/ShipSuggestions-liytLgC-.js +0 -1
  470. package/dist/assets/ShipWorkspace-C3VQwGn1.js +0 -2
  471. package/dist/assets/SignatureLoop-Ba7plTb5.js +0 -1
  472. package/dist/assets/SrsReview-BoaYb6XN.js +0 -1
  473. package/dist/assets/SrsReview-DmGdGxT0.css +0 -1
  474. package/dist/assets/SynthesisApp-Ch0tWRBS.js +0 -2
  475. package/dist/assets/SynthesisOverlay-DMZndCzV.js +0 -66
  476. package/dist/assets/TopicCanvas-DX0Z1ZHv.js +0 -2
  477. package/dist/assets/TourPrism-6fWPMU4Z.js +0 -1
  478. package/dist/assets/TrackerTile-BboQpBGy.js +0 -2
  479. package/dist/assets/TwoSurfaces-Cabk1rES.js +0 -1
  480. package/dist/assets/UnderstoodPanel-B6jfiKx1.js +0 -1
  481. package/dist/assets/WhyMachineOverlay-BRNibJSf.js +0 -1
  482. package/dist/assets/WowFeatures-C7f4qzIf.js +0 -1
  483. package/dist/assets/ZoomDeck-BtlVyhwv.js +0 -1
  484. package/dist/assets/__vite-browser-external-BufR4LQa.js +0 -1
  485. package/dist/assets/alternateFinishes-CVUX4x0C.js +0 -494
  486. package/dist/assets/annotationAuto-BjWqgseH.js +0 -1
  487. package/dist/assets/annotationReel-B5A2RZkx.js +0 -1
  488. package/dist/assets/annotations-D2K9A5GB.js +0 -1
  489. package/dist/assets/backup-d46KwktS.js +0 -1
  490. package/dist/assets/blockLabel-DAqaHKy3.js +0 -1
  491. package/dist/assets/cache-BumECILO.js +0 -1
  492. package/dist/assets/canvas-BuMP6u6i.js +0 -1
  493. package/dist/assets/catalog-Bv0dWU_C.js +0 -1
  494. package/dist/assets/chapters-Cbe53c3W.js +0 -1
  495. package/dist/assets/charts2-tyUiQPff.js +0 -1
  496. package/dist/assets/chunk-BVpWp9h4.js +0 -1
  497. package/dist/assets/confirmAdd-CWWtX1VN.js +0 -1
  498. package/dist/assets/cpp-BGdv8dzs.js +0 -1
  499. package/dist/assets/cpp-CNAAXZl-.js +0 -1
  500. package/dist/assets/dashboardEvents-Be4sftHN.js +0 -2
  501. package/dist/assets/dashboards-rcWxdoXI.css +0 -1
  502. package/dist/assets/dist-xRGLOZwv.js +0 -14
  503. package/dist/assets/facts-BBTt3ImG.js +0 -1
  504. package/dist/assets/fit-CuHWhwsj.js +0 -1
  505. package/dist/assets/fitText-CDFmCQzl.js +0 -1
  506. package/dist/assets/format-DlZTyeMy.js +0 -1
  507. package/dist/assets/generateBeats-b64CL54v.js +0 -1
  508. package/dist/assets/generateLive-CMbGT3eM.js +0 -52
  509. package/dist/assets/githubBrowser-DywfDeYx.js +0 -1
  510. package/dist/assets/githubToken-DtcLYqwm.js +0 -11
  511. package/dist/assets/homeTarget-BcZYH3DY.js +0 -1
  512. package/dist/assets/http-CJCtjYpA.js +0 -2
  513. package/dist/assets/index-CepQEz75.css +0 -1
  514. package/dist/assets/index-Dbr1j8Fe.js +0 -22
  515. package/dist/assets/index.es-CRLiWwiA.js +0 -5
  516. package/dist/assets/jspdf.es.min-ydC1TxUW.js +0 -79
  517. package/dist/assets/jsx-runtime-DaSxXjOY.js +0 -1
  518. package/dist/assets/katex-BMCG0xok.js +0 -257
  519. package/dist/assets/keyVault-DEsNh9FR.js +0 -1
  520. package/dist/assets/kokoro-DsmNzulR.js +0 -1
  521. package/dist/assets/layout-BFQOzXtG.js +0 -1
  522. package/dist/assets/leaflet-src-C_xhOQY7.js +0 -1
  523. package/dist/assets/learn-DVfqN-nf.js +0 -1
  524. package/dist/assets/lib-B6qSkBPa.js +0 -1
  525. package/dist/assets/liveSchema-B1MGdSkK.js +0 -99
  526. package/dist/assets/motion-luJxBPnj.js +0 -1
  527. package/dist/assets/notes-3WQ6b0Mi.js +0 -1
  528. package/dist/assets/officeDoc-B6nEhNp4.js +0 -3
  529. package/dist/assets/openchemlib-nMLMmg26.js +0 -23
  530. package/dist/assets/pdf-RyoPCIGN.js +0 -11
  531. package/dist/assets/pdf.worker.min-yatZIOMy.mjs +0 -21
  532. package/dist/assets/pin-Bya3BL_a.css +0 -1
  533. package/dist/assets/pin-Cj-LMfpK.js +0 -1
  534. package/dist/assets/planTracker-7AMCQPNx.js +0 -1
  535. package/dist/assets/portal-zyqZwnb1.js +0 -1
  536. package/dist/assets/predictions-CYS7Vo39.js +0 -1
  537. package/dist/assets/prism.generated-BhbHDHR6.js +0 -41
  538. package/dist/assets/prismGround.worker-CIvKqxm2.js +0 -1
  539. package/dist/assets/prismLayout.worker-CZO2CY7B.js +0 -1
  540. package/dist/assets/providers-wzm7E8Pa.js +0 -1
  541. package/dist/assets/purify.es-adlwq8Pz.js +0 -3
  542. package/dist/assets/quietHours-BklvMqsV.js +0 -1
  543. package/dist/assets/react-BQSORdFI.js +0 -1
  544. package/dist/assets/registry-1h9idbfk.js +0 -2
  545. package/dist/assets/registry-2zthbrHC.js +0 -1
  546. package/dist/assets/registry-4O5l9cd5.js +0 -1
  547. package/dist/assets/registry-5a-E7vEN.css +0 -1
  548. package/dist/assets/registry-BRB85vr4.js +0 -2
  549. package/dist/assets/registry-BVHiKEwE.css +0 -1
  550. package/dist/assets/registry-BcZXBr3y.css +0 -1
  551. package/dist/assets/registry-BdMZ_4cm.js +0 -2
  552. package/dist/assets/registry-Bnp_yh8G.js +0 -4
  553. package/dist/assets/registry-C1IrZBk8.js +0 -1
  554. package/dist/assets/registry-C5DK98Hl.js +0 -1
  555. package/dist/assets/registry-CK0-re_Q.js +0 -49
  556. package/dist/assets/registry-COrl_Heq.js +0 -1
  557. package/dist/assets/registry-CQUQlrSx.js +0 -1
  558. package/dist/assets/registry-CXa3qXl3.js +0 -1
  559. package/dist/assets/registry-C_baBbqq.js +0 -5
  560. package/dist/assets/registry-CjY5POtx.js +0 -1
  561. package/dist/assets/registry-CoBAqOlY.js +0 -1
  562. package/dist/assets/registry-DJj-o3MQ.js +0 -1
  563. package/dist/assets/registry-DVzLacl_.css +0 -1
  564. package/dist/assets/registry-DfCCnIfu.js +0 -1
  565. package/dist/assets/registry-DfgFkD3J.js +0 -1
  566. package/dist/assets/registry-Dhlx1mF4.js +0 -1
  567. package/dist/assets/registry-Dkc7hN5T.js +0 -1
  568. package/dist/assets/registry-DmQlNN3y.js +0 -1
  569. package/dist/assets/registry-DnEh7nbX.js +0 -1
  570. package/dist/assets/registry-VD94nLXO.js +0 -1
  571. package/dist/assets/registry-aIH-Im5Y.css +0 -1
  572. package/dist/assets/registry-mFD4P5dI.js +0 -1
  573. package/dist/assets/registry-sDzDmht4.js +0 -1
  574. package/dist/assets/registry-types-DMuK0vJ6.js +0 -1
  575. package/dist/assets/run-BYP2YlZT.js +0 -23
  576. package/dist/assets/run-DSVvshaB.js +0 -21
  577. package/dist/assets/safeImageUrl-CUkucDUu.js +0 -1
  578. package/dist/assets/screen-DLR7p_yP.js +0 -1
  579. package/dist/assets/search-Be63DJkp.js +0 -1
  580. package/dist/assets/shapes-Cw7tCHIp.js +0 -1
  581. package/dist/assets/shard005-DLVkh9IH.js +0 -1
  582. package/dist/assets/shard006-B6efKHov.js +0 -1
  583. package/dist/assets/shard007-AFdZLe38.js +0 -1
  584. package/dist/assets/shard008-LbSBzwRx.js +0 -1
  585. package/dist/assets/shard009-D_6-SUDb.js +0 -1
  586. package/dist/assets/shard010-DbOj-uZW.js +0 -1
  587. package/dist/assets/shard011-BYSz7EEW.js +0 -1
  588. package/dist/assets/shard012-B5Ypj7OV.js +0 -1
  589. package/dist/assets/shard013-BtsliNIe.js +0 -1
  590. package/dist/assets/shard014-15sjmk68.js +0 -1
  591. package/dist/assets/shard015-nnXrqru_.js +0 -1
  592. package/dist/assets/shard016-BayXFE13.js +0 -1
  593. package/dist/assets/shard017-Cy4cGexs.js +0 -1
  594. package/dist/assets/shard018-aO-BYJ8H.js +0 -1
  595. package/dist/assets/shard019-gxaTeA3I.js +0 -1
  596. package/dist/assets/shard020-BibJdMI0.js +0 -1
  597. package/dist/assets/shard022-IXiyG-JK.js +0 -1
  598. package/dist/assets/shard023-314F6NJS.js +0 -1
  599. package/dist/assets/shard024-cN5rpQ_X.js +0 -1
  600. package/dist/assets/shard025-KKTaXOGE.js +0 -1
  601. package/dist/assets/shard026-C2Dkd1t6.js +0 -1
  602. package/dist/assets/shard027-Xy-8x9As.js +0 -1
  603. package/dist/assets/shard028-Bul-klUj.js +0 -1
  604. package/dist/assets/shard029-BbRSUcUZ.js +0 -1
  605. package/dist/assets/shard030-GYllsFVC.js +0 -1
  606. package/dist/assets/shard031-DMigeiyn.js +0 -1
  607. package/dist/assets/shard032-CcvmzK0l.js +0 -1
  608. package/dist/assets/shard033-11AU702M.js +0 -1
  609. package/dist/assets/shard034-Bx3urxjM.js +0 -1
  610. package/dist/assets/shard035-DBdEeyCt.js +0 -1
  611. package/dist/assets/shard036-vYgoRBqS.js +0 -1
  612. package/dist/assets/shard037-DP4MMw91.js +0 -1
  613. package/dist/assets/shard038-ffxsv7d6.js +0 -1
  614. package/dist/assets/shard039-C1JHHNp9.js +0 -1
  615. package/dist/assets/shard040-JbVvCSO_.js +0 -1
  616. package/dist/assets/shard041-5L_eFwGx.js +0 -1
  617. package/dist/assets/shard042-C9nsGL79.js +0 -1
  618. package/dist/assets/shard043-Dx_9HSKI.js +0 -1
  619. package/dist/assets/shard044-B3QQNC4A.js +0 -1
  620. package/dist/assets/shard045-B7z0WHO6.js +0 -1
  621. package/dist/assets/shard046-D1yDablJ.js +0 -1
  622. package/dist/assets/shard047-DJi3AgeT.js +0 -1
  623. package/dist/assets/shard048-D_2ipfUr.js +0 -1
  624. package/dist/assets/shard049-1aGgWZdd.js +0 -1
  625. package/dist/assets/shard050-Bjwa0Og4.js +0 -1
  626. package/dist/assets/shard051-Cx_GAk3v.js +0 -1
  627. package/dist/assets/shard052-LaeOD3V5.js +0 -1
  628. package/dist/assets/shard053-D-da7Foj.js +0 -1
  629. package/dist/assets/shard054-CM8eSRQk.js +0 -1
  630. package/dist/assets/shard055-QRpDl4Vs.js +0 -1
  631. package/dist/assets/shard056-DkY7CQm3.js +0 -1
  632. package/dist/assets/shard057-BVCgf7o0.js +0 -1
  633. package/dist/assets/shard058-93aGtdrX.js +0 -1
  634. package/dist/assets/shard059-rJE9X1_I.js +0 -1
  635. package/dist/assets/shard060-Lu_hfl1r.js +0 -1
  636. package/dist/assets/shard062-BBIpEYZO.js +0 -1
  637. package/dist/assets/shard063-C_uen3Ub.js +0 -1
  638. package/dist/assets/shard064-DAHUsHST.js +0 -1
  639. package/dist/assets/share-QHGHNDhQ.js +0 -1
  640. package/dist/assets/shikiHighlight-SCFIB43b.js +0 -153
  641. package/dist/assets/speed-DwPw9KSv.js +0 -1
  642. package/dist/assets/spokenText-D4zPX9JY.js +0 -1
  643. package/dist/assets/src-B-t8Mww-.js +0 -2
  644. package/dist/assets/store-DXmC_fP2.js +0 -0
  645. package/dist/assets/store-Dn23_Ymr.js +0 -1
  646. package/dist/assets/store-DoJn3lBF.js +0 -1
  647. package/dist/assets/store-DrBDvqXF.js +0 -1
  648. package/dist/assets/swift-DonLKvLd.js +0 -1
  649. package/dist/assets/threads-CkMgrSDP.js +0 -1
  650. package/dist/assets/useDashboardLoop-C8Mcbcto.js +0 -5
  651. package/dist/assets/useLiveConfig-BW1WkpTc.js +0 -1
  652. package/dist/assets/useSpatialCanvas-C5TNlpeK.js +0 -1
  653. package/dist/assets/useSpotlightWalk-dA3IdI-1.js +0 -1
  654. package/dist/assets/useSrsCards-C7Xni9C0.js +0 -1
  655. package/dist/assets/useStudy-DHRIx8p-.js +0 -1
  656. package/dist/assets/useZoomGesture-BsPXvLw2.js +0 -1
  657. package/dist/assets/verbatim-CBMzUDlf.js +0 -1
  658. package/dist/assets/worker-BbLKfGzm.js +0 -2
  659. package/dist/demo-assets/video/azores-film.mp4 +0 -0
  660. /package/dist/assets/{shard065-C2edvdvh.js → shard066-C2edvdvh.js} +0 -0
  661. /package/dist/assets/{shard066-DFcuVhZm.js → shard067-DFcuVhZm.js} +0 -0
  662. /package/dist/assets/{shard067-BN8DM8JZ.js → shard068-BN8DM8JZ.js} +0 -0
  663. /package/dist/assets/{shard068-i464K77p.js → shard069-i464K77p.js} +0 -0
  664. /package/dist/assets/{shard069-Dm9m2a5U.js → shard070-Dm9m2a5U.js} +0 -0
  665. /package/dist/assets/{shard070-BPVvR8GH.js → shard071-BPVvR8GH.js} +0 -0
  666. /package/dist/assets/{shard071-Bal_0d9L.js → shard072-Bal_0d9L.js} +0 -0
  667. /package/dist/assets/{shard072-CBQu62kt.js → shard073-CBQu62kt.js} +0 -0
  668. /package/dist/assets/{shard073-D5BRae0w.js → shard074-D5BRae0w.js} +0 -0
  669. /package/dist/assets/{shard074-DtFvcBnZ.js → shard075-DtFvcBnZ.js} +0 -0
  670. /package/dist/assets/{queue-DHeyJ32F.css → templates-DHeyJ32F.css} +0 -0
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{t as n}from"./compiler-runtime-qQQXpJgv.js";import{i as r,n as i}from"./info-CiqHR5cs.js";import{r as a,t as o}from"./keyVault-Aw5Y2PjT.js";import"./providers-DdJWf_PE.js";var s=e({LIVE_V2_EVENT:()=>f,SECRET_PERSISTENCE_EVENT:()=>p,exportConfig:()=>J,getLiveConfigV2:()=>A,getSecretPersistenceStatus:()=>R,hasModelConfigured:()=>q,importConfig:()=>te,importConfigWithSummary:()=>Z,resetLiveConfig:()=>W,setLiveConfigV2:()=>H,setProviderField:()=>G,toCaps:()=>Q,toModelConfig:()=>K,useLiveConfig:()=>$,whenSecretPersistenceSettled:()=>z}),c=n(),l=t(),u=`mavea-live-v2`,d=`mavea-live-v2:secrets`,f=u,p=`${u}:secret-persistence`,m=25e4,h=512,g={provider:`gemini`,models:{},keys:{},rememberKey:!1,webSearch:!1,searchMode:`off`,quality:`balanced`,searchProvider:`wikipedia`,searchKeys:{},memoryEnabled:!1,autoSaveFlashcards:!1,generativeBlocks:!0,libraryEnabled:!0,teachMode:!1,annotationsEnabled:!0,morningBrief:!1,explainLevel:`standard`,fontScale:`normal`,pttKey:`Alt`,pttSide:`any`,voiceSpeed:1};function _(e){return e===`left`||e===`right`?e:`any`}var v=null;function y(e){return i.some(t=>t.id===e)?e:g.provider}function b(e){let t={};if(e&&typeof e==`object`)for(let n of i){let r=e[n.id];typeof r==`string`&&r.length<=h&&(t[n.id]=r)}return t}function x(e,t){return typeof e==`boolean`?e:t}function S(e){return typeof e==`number`&&Number.isFinite(e)?Math.min(2,Math.max(.75,e)):g.voiceSpeed}function C(e){return e===`wikipedia`||e===`brave`||e===`tavily`?e:g.searchProvider}function w(e){return e===`off`||e===`realtime`?e:void 0}function T(e){return e===`fast`||e===`balanced`||e===`thorough`?e:g.quality}function E(e){return e===`simple`||e===`deep`?e:g.explainLevel}function D(e){return e===`smaller`||e===`larger`?e:g.fontScale}function O(e){let t={};if(e&&typeof e==`object`)for(let n of[`brave`,`tavily`]){let r=e[n];typeof r==`string`&&r.length<=h&&(t[n]=r)}return t}function k(){try{if(typeof localStorage>`u`)return{...g};let e=localStorage.getItem(u);if(!e)return{...g};let t=JSON.parse(e),n=x(t.webSearch,g.webSearch),r=w(t.searchMode)??(t.searchMode===void 0&&n?`realtime`:`off`);return{provider:y(t.provider),models:b(t.models),keys:b(t.keys),rememberKey:x(t.rememberKey,g.rememberKey),webSearch:n,searchMode:r,quality:T(t.quality),searchProvider:C(t.searchProvider),searchKeys:O(t.searchKeys),memoryEnabled:x(t.memoryEnabled,g.memoryEnabled),autoSaveFlashcards:x(t.autoSaveFlashcards,g.autoSaveFlashcards),generativeBlocks:x(t.generativeBlocks,g.generativeBlocks),libraryEnabled:x(t.libraryEnabled,g.libraryEnabled),teachMode:x(t.teachMode,g.teachMode),annotationsEnabled:x(t.annotationsEnabled,g.annotationsEnabled),morningBrief:x(t.morningBrief,g.morningBrief),explainLevel:E(t.explainLevel),fontScale:D(t.fontScale),pttKey:typeof t.pttKey==`string`&&t.pttKey?t.pttKey:g.pttKey,pttSide:_(t.pttSide),voiceSpeed:S(t.voiceSpeed)}}catch{return{...g}}}function A(){return v||(v=k(),v)}function j(e){try{typeof window<`u`&&typeof CustomEvent==`function`&&window.dispatchEvent(new CustomEvent(u,{detail:e}))}catch{}}function M(e){return Object.keys(e.keys).length>0||Object.keys(e.searchKeys).length>0}var N=0,P=!1,F=`not-requested`,I=Promise.resolve();function L(e){F=e;try{typeof window<`u`&&typeof CustomEvent==`function`&&window.dispatchEvent(new CustomEvent(p,{detail:e}))}catch{}}function R(){return F}async function z(){return await I,F}async function B(e){let t=++N;if(typeof localStorage>`u`){L(e.rememberKey&&M(e)?`session-only`:`not-requested`);return}if(!e.rememberKey||!M(e)){if(e.rememberKey&&!P){L(`pending`);return}try{localStorage.removeItem(d)}catch{}t===N&&L(`not-requested`);return}L(`pending`);try{let n=await a(JSON.stringify({keys:e.keys,searchKeys:e.searchKeys}));if(t!==N)return;localStorage.setItem(d,n),L(`persisted`)}catch{if(t!==N)return;try{localStorage.removeItem(d)}catch{}L(`session-only`)}}async function V(){if(typeof localStorage>`u`){L(`unavailable`);return}let e;try{e=localStorage.getItem(d)}catch{P=!0,L(`unavailable`);return}if(!e){P=!0,L(`not-requested`);return}let t=N;try{let n=JSON.parse(await o(e));if(t===N){let e=A();v={...e,keys:{...e.keys,...b(n.keys)},searchKeys:{...e.searchKeys,...O(n.searchKeys)}},j(v),L(`persisted`)}}catch{t===N&&L(`unavailable`)}finally{P=!0}}function H(e){let t={...A(),...e};v=t;try{if(typeof localStorage<`u`){let e={...t,keys:{},searchKeys:{}};localStorage.setItem(u,JSON.stringify(e)),I=B(t)}else L(t.rememberKey?M(t)?`session-only`:`unavailable`:`not-requested`)}catch{L(t.rememberKey?M(t)?`session-only`:`unavailable`:`not-requested`)}return j(t),t}function U(){typeof localStorage>`u`||(M(A())?(P=!0,H({})):I=V())}U();function W(){return H(g)}function G(e,t,n){let r=A(),i=t===`model`?`models`:`keys`;return H({[i]:{...r[i],[e]:n}})}function K(e){return{provider:e.provider,model:e.models[e.provider]||r(e.provider).defaultModel,apiKey:e.keys[e.provider]}}function q(e){let t=r(e.provider);return!!(e.models[e.provider]||t.defaultModel)&&(!t.needsKey||!!e.keys[e.provider])}function J(){let e={...A(),keys:{},searchKeys:{},rememberKey:!1};return JSON.stringify(e,null,2)}var ee=[`provider`,`models`,`webSearch`,`searchMode`,`quality`,`searchProvider`,`memoryEnabled`,`autoSaveFlashcards`,`generativeBlocks`,`libraryEnabled`,`teachMode`,`annotationsEnabled`,`morningBrief`,`explainLevel`,`fontScale`,`pttKey`,`pttSide`,`voiceSpeed`];function Y(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function X(e){return typeof e==`string`||Array.isArray(e)?e.length>0:e&&typeof e==`object`?Object.keys(e).length>0:e!=null}function Z(e,t={}){if((typeof TextEncoder==`function`?new TextEncoder().encode(e).byteLength:e.length*2)>m)throw Error(`Invalid config file — the settings object is too large.`);let n;try{n=JSON.parse(e)}catch{throw Error(`Invalid config file — could not parse JSON.`)}if(!n||typeof n!=`object`||Array.isArray(n))throw Error(`Invalid config file — expected a settings object.`);let r=n;if(Object.keys(r).length>64)throw Error(`Invalid config file — the settings object has too many fields.`);let i=A(),a=t.mode===`merge`?{...i,...r}:r,o=x(a.webSearch,g.webSearch),s=w(a.searchMode)??(a.searchMode===void 0&&o?`realtime`:`off`),c={provider:y(a.provider),models:b(a.models),keys:i.keys,rememberKey:t.preserveSecretState!==!1&&i.rememberKey,webSearch:o,searchMode:s,quality:T(a.quality),searchProvider:C(a.searchProvider),searchKeys:i.searchKeys,memoryEnabled:x(a.memoryEnabled,g.memoryEnabled),autoSaveFlashcards:x(a.autoSaveFlashcards,g.autoSaveFlashcards),generativeBlocks:x(a.generativeBlocks,g.generativeBlocks),libraryEnabled:x(a.libraryEnabled,g.libraryEnabled),teachMode:x(a.teachMode,g.teachMode),annotationsEnabled:x(a.annotationsEnabled,g.annotationsEnabled),morningBrief:x(a.morningBrief,g.morningBrief),explainLevel:E(a.explainLevel),fontScale:D(a.fontScale),pttKey:typeof a.pttKey==`string`&&a.pttKey.length>0&&a.pttKey.length<=32?a.pttKey:g.pttKey,pttSide:_(a.pttSide),voiceSpeed:S(a.voiceSpeed)},l=[];return Y(r,`keys`)&&X(r.keys)&&l.push(`provider-api-keys`),Y(r,`searchKeys`)&&X(r.searchKeys)&&l.push(`search-api-keys`),[`githubToken`,`github_token`,`ghToken`].some(e=>Y(r,e)&&X(r[e]))&&l.push(`github-token`),{config:H(c),credentialsIgnored:l,appliedFields:ee.filter(e=>Y(r,e))}}function te(e,t){return Z(e,t).config}function Q(e){return{webSearch:e.searchMode!==`off`,searchMode:e.searchMode,quality:e.quality,memoryEnabled:e.memoryEnabled,generativeBlocks:e.generativeBlocks,explainLevel:e.explainLevel}}function $(){let e=(0,c.c)(4),[t,n]=(0,l.useState)(ne),r,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{if(typeof window>`u`)return;let e=()=>n(A());return window.addEventListener(f,e),e(),()=>window.removeEventListener(f,e)},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,l.useEffect)(r,i);let a;return e[2]===t?a=e[3]:(a=[t,H],e[2]=t,e[3]=a),a}function ne(){return A()}export{W as a,Q as c,s as d,Z as i,K as l,A as n,H as o,q as r,G as s,J as t,$ as u};
@@ -0,0 +1 @@
1
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";var n=e(),r=t(),i={min:.1,max:4};function a(e,t=i){return Math.min(t.max,Math.max(t.min,e))}function o(e,t,n=0){let r=Math.max(e.w,1),i=Math.max(e.h,1),a=Math.max(t.w-n*2,1),o=Math.max(t.h-n*2,1);return Math.min(a/r,o/i)}function s(e,t,n=0,r=i){let s=a(o(e,t,n),r),c=e.x+e.w/2,l=e.y+e.h/2;return{x:t.w/2-c*s,y:t.h/2-l*s,scale:s}}function c(e,t,n,r,o=i){let s=a(e.scale*t,o);if(s===e.scale)return e;let c=(n-e.x)/e.scale,l=(r-e.y)/e.scale;return{x:n-c*s,y:r-l*s,scale:s}}function l(e,t,n){return{...e,x:e.x+t,y:e.y+n}}function u(e,t,n,r,o=i){let s=a(n,o);return{x:r.w/2-e*s,y:r.h/2-t*s,scale:s}}function d(e){return`translate(${Math.round(e.x)}px, ${Math.round(e.y)}px) scale(${e.scale})`}function f(e,t,n){return{x:(t-e.x)/e.scale,y:(n-e.y)/e.scale}}function p(e){let t=(0,r.c)(27),a;t[0]===e?a=t[1]:(a=e===void 0?{}:e,t[0]=e,t[1]=a);let o=a,u=o.clamp?.min??i.min,f=o.clamp?.max??i.max,p=o.margin??0,m=o.insetBottom??0,h=(0,n.useRef)(null),g;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(g={x:0,y:0,scale:1},t[2]=g):g=t[2];let[_,v]=(0,n.useState)(g),y=(0,n.useRef)(null),b;t[3]===m?b=t[4]:(b=()=>{let e=h.current;if(!e)return null;let t=e.getBoundingClientRect();return t.width===0&&t.height===0?null:{w:t.width,h:Math.max(1,t.height-m)}},t[3]=m,t[4]=b);let x=b,S;t[5]!==f||t[6]!==u||t[7]!==p||t[8]!==x?(S=e=>{if(y.current=e,!e)return;let t=x();t&&v(s(e,t,p,{min:u,max:f}))},t[5]=f,t[6]=u,t[7]=p,t[8]=x,t[9]=S):S=t[9];let C=S,w;t[10]!==f||t[11]!==u?(w=(e,t,n)=>{let r=h.current;if(!r)return;let i=r.getBoundingClientRect();v(r=>c(r,e,t-i.left,n-i.top,{min:u,max:f}))},t[10]=f,t[11]=u,t[12]=w):w=t[12];let T=w,E;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(E=(e,t)=>{v(n=>l(n,e,t))},t[13]=E):E=t[13];let D=E,O,k;t[14]!==f||t[15]!==u||t[16]!==p||t[17]!==x?(O=()=>{let e=h.current;if(!e||typeof ResizeObserver>`u`)return;let t=0,n=new ResizeObserver(()=>{cancelAnimationFrame(t),t=requestAnimationFrame(()=>{let e=y.current;if(!e)return;let t=x();t&&v(s(e,t,p,{min:u,max:f}))})});return n.observe(e),()=>{cancelAnimationFrame(t),n.disconnect()}},k=[x,p,u,f],t[14]=f,t[15]=u,t[16]=p,t[17]=x,t[18]=O,t[19]=k):(O=t[18],k=t[19]),(0,n.useEffect)(O,k);let A;t[20]===_?A=t[21]:(A=d(_),t[20]=_,t[21]=A);let j;return t[22]!==_||t[23]!==C||t[24]!==A||t[25]!==T?(j={camera:_,transform:A,viewportRef:h,fitTo:C,zoomAtClient:T,pan:D,setCamera:v},t[22]=_,t[23]=C,t[24]=A,t[25]=T,t[26]=j):j=t[26],j}export{u as n,f as r,p as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./motion-BY_Egaxm.js";var n=e();function r(e,r,i,a=1700){let o=(0,n.useMemo)(t,[]);(0,n.useEffect)(()=>{if(!e||o||r<2)return;i(0);let t=0,n=window.setInterval(()=>{t=(t+1)%r,i(t)},a);return()=>window.clearInterval(n)},[e,o,r,a,i])}export{r as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./store-D2IJF4SA.js";var r=t(),i=e(),a=`#/flashcards`;function o(e){if(!e.startsWith(a))return{view:`gallery`};let t=e.slice(12).replace(/^\//,``).split(`/`).filter(Boolean);return t.length===0?{view:`gallery`}:t[0]===`deck`&&t[1]?{view:`deck`,deck:decodeURIComponent(t[1])}:{view:`gallery`}}var s={gallery:a,deck:e=>`${a}/deck/${encodeURIComponent(e)}`};function c(){let e=(0,r.c)(2),[t,n]=(0,i.useState)(l),a,o;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>{let e=()=>n(window.location.hash);return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},o=[],e[0]=a,e[1]=o):(a=e[0],o=e[1]),(0,i.useEffect)(a,o),t}function l(){return typeof window<`u`?window.location.hash:``}function u(){let e=(0,r.c)(2),[t,a]=(0,i.useState)(0),o,s;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{if(typeof window>`u`)return;let e=()=>a(d);return window.addEventListener(n,e),()=>window.removeEventListener(n,e)},s=[],e[0]=o,e[1]=s):(o=e[0],s=e[1]),(0,i.useEffect)(o,s),t}function d(e){return e+1}export{c as i,s as n,o as r,u as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,r as i,t as a}from"./theme-f0mztBcq.js";import{C as o,D as s,E as c,S as l,T as u,w as d}from"./index-D1SPhBGd.js";import{u as f}from"./useLiveConfig-9eJ7EM3B.js";import{a as p,i as m,o as h,t as g}from"./store-D2IJF4SA.js";import{r as _,t as v}from"./queue-Adae4IzW.js";var y=t(),b=e(),x=n(),S=[`smaller`,`normal`,`larger`],C={smaller:`Smaller`,normal:`Normal`,larger:`Larger`},w=`mavea:appearancechange`;function T(e){window.dispatchEvent(new CustomEvent(w,{detail:e}))}function E(){let e=(0,y.c)(11),[t,n]=(0,b.useState)(O),[l,d]=(0,b.useState)(D),[p,m]=f(),h,g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>{let e=e=>{let t=e.detail;t&&(n(t.template),d(t.theme))};return window.addEventListener(w,e),()=>window.removeEventListener(w,e)},g=[],e[0]=h,e[1]=g):(h=e[0],g=e[1]),(0,b.useEffect)(h,g);let _;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(_=e=>{c(document,e),o(document,e),u(e);let t={template:e,theme:r()};n(e),d(t.theme),T(t)},e[2]=_):_=e[2];let v=_,x;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>{a(e),i(e);let t={template:s(),theme:e};n(t.template),d(e),T(t)},e[3]=x):x=e[3];let S=x,C;e[4]===m?C=e[5]:(C=e=>m({fontScale:e}),e[4]=m,e[5]=C);let E=C,k;return e[6]!==t||e[7]!==p.fontScale||e[8]!==E||e[9]!==l?(k={active:t,theme:l,fontScale:p.fontScale,pickTemplate:v,pickTheme:S,pickFontScale:E},e[6]=t,e[7]=p.fontScale,e[8]=E,e[9]=l,e[10]=k):k=e[10],k}function D(){return r()}function O(){return s()}function k(e){let t=(0,y.c)(13),{templateId:n}=e,r;t[0]===n?r=t[1]:(r=l.find(e=>e.id===n)??l[0],t[0]=n,t[1]=r);let i=r,a;t[2]!==i.preview.accent||t[3]!==i.preview.background||t[4]!==i.preview.ink||t[5]!==i.preview.surface?(a={"--preview-bg":i.preview.background,"--preview-surface":i.preview.surface,"--preview-ink":i.preview.ink,"--preview-accent":i.preview.accent},t[2]=i.preview.accent,t[3]=i.preview.background,t[4]=i.preview.ink,t[5]=i.preview.surface,t[6]=a):a=t[6];let o=a,s=`appearance-preview appearance-preview--${i.preview.geometry}`,c;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,x.jsx)(`span`,{className:`appearance-preview-aa`,children:`Aa`}),t[7]=c):c=t[7];let u,d;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,x.jsxs)(`span`,{className:`appearance-preview-copy`,children:[(0,x.jsx)(`i`,{}),(0,x.jsx)(`i`,{})]}),d=(0,x.jsx)(`span`,{className:`appearance-preview-data`,children:`08`}),t[8]=u,t[9]=d):(u=t[8],d=t[9]);let f;return t[10]!==o||t[11]!==s?(f=(0,x.jsxs)(`span`,{className:s,style:o,"aria-hidden":`true`,children:[c,u,d]}),t[10]=o,t[11]=s,t[12]=f):f=t[12],f}function A({active:e,theme:t,fontScale:n,embedded:r=!1,onPickTemplate:i,onPickTheme:a,onPickFontScale:o,onClose:s,optionRefs:c}){let u=(0,b.useId)(),d=(e,t)=>{let n;if(e.key===`ArrowRight`||e.key===`ArrowDown`)n=(t+1)%l.length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)n=(t-1+l.length)%l.length;else if(e.key===`Home`)n=0;else if(e.key===`End`)n=l.length-1;else return;e.preventDefault(),c?.current[n]?.focus()};return(0,x.jsxs)(`div`,{className:`appearance-panel${r?` is-embedded`:``}`,role:r?void 0:`dialog`,"aria-modal":!r||void 0,"aria-labelledby":u,children:[(0,x.jsxs)(`div`,{className:`appearance-head`,children:[(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`h2`,{id:u,children:r?`Appearance`:`Choose your workspace`}),(0,x.jsx)(`p`,{children:`A visual identity for how you think.`})]}),s&&(0,x.jsx)(`button`,{type:`button`,className:`appearance-close`,onClick:s,"aria-label":`Close appearance`,children:`×`})]}),(0,x.jsxs)(`div`,{className:`appearance-mode`,"aria-label":`Color mode`,children:[(0,x.jsx)(`span`,{children:`Color mode`}),(0,x.jsx)(`div`,{className:`appearance-segmented`,children:[`light`,`dark`].map(e=>(0,x.jsxs)(`button`,{type:`button`,"aria-pressed":t===e,className:t===e?`is-active`:``,onClick:()=>a(e),children:[(0,x.jsx)(`span`,{className:`appearance-mode-icon is-${e}`,"aria-hidden":`true`}),e===`light`?`Light`:`Dark`]},e))})]}),(0,x.jsxs)(`div`,{className:`appearance-mode`,"aria-label":`Text size`,children:[(0,x.jsx)(`span`,{children:`Text size`}),(0,x.jsx)(`div`,{className:`appearance-segmented is-triple`,children:S.map(e=>(0,x.jsx)(`button`,{type:`button`,"aria-pressed":n===e,className:n===e?`is-active`:``,onClick:()=>o(e),children:C[e]},e))})]}),(0,x.jsx)(`div`,{className:`appearance-grid`,role:`radiogroup`,"aria-label":`Workspace themes`,children:l.map((t,n)=>(0,x.jsxs)(`button`,{ref:e=>{c&&(c.current[n]=e)},type:`button`,role:`radio`,"aria-label":`${t.label}, ${t.persona}. ${t.tagline} Best for ${t.bestFor}.`,"aria-checked":t.id===e,tabIndex:t.id===e?0:-1,className:`appearance-option${t.id===e?` is-active`:``}`,onClick:()=>i(t.id),onKeyDown:e=>d(e,n),children:[(0,x.jsx)(k,{templateId:t.id}),(0,x.jsxs)(`span`,{className:`appearance-option-copy`,children:[(0,x.jsxs)(`span`,{className:`appearance-option-title`,children:[(0,x.jsx)(`strong`,{children:t.label}),(0,x.jsx)(`em`,{children:t.persona})]}),(0,x.jsx)(`span`,{className:`appearance-option-tagline`,children:t.tagline}),(0,x.jsxs)(`span`,{className:`appearance-option-best`,children:[`Best for `,t.bestFor.toLowerCase()]}),(0,x.jsx)(`span`,{className:`appearance-option-font`,children:t.preview.fontRole})]}),(0,x.jsx)(`span`,{className:`appearance-check`,"aria-hidden":`true`,children:`✓`})]},t.id))})]})}function j({triggerClassName:e=`topbar-icon-btn`}={}){let{active:t,theme:n,fontScale:r,pickTemplate:i,pickTheme:a,pickFontScale:o}=E(),[s,u]=(0,b.useState)(!1),f=(0,b.useRef)(null),p=(0,b.useRef)(null),m=(0,b.useRef)([]);(0,b.useEffect)(()=>d(document),[]);let h=(0,b.useCallback)(()=>{u(!1),requestAnimationFrame(()=>p.current?.focus())},[]);(0,b.useEffect)(()=>{if(!s)return;c(document);let e=l.findIndex(e=>e.id===t);requestAnimationFrame(()=>{if(window.matchMedia?.(`(max-width: 720px)`).matches??!1){f.current?.querySelector(`.appearance-close`)?.focus({preventScroll:!0});return}m.current[Math.max(0,e)]?.focus({preventScroll:!0})});let n=e=>{f.current&&!f.current.contains(e.target)&&h()},r=e=>{if(e.key===`Escape`){e.preventDefault(),h();return}if(e.key!==`Tab`||!f.current)return;let t=Array.from(f.current.querySelectorAll(`button:not([disabled])`));if(!t.length)return;let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())};return window.addEventListener(`pointerdown`,n),window.addEventListener(`keydown`,r),()=>{window.removeEventListener(`pointerdown`,n),window.removeEventListener(`keydown`,r)}},[t,h,s]);let g=l.find(e=>e.id===t)??l[0];return(0,x.jsxs)(`div`,{className:`tpl-picker appearance-picker`,ref:f,children:[(0,x.jsx)(`button`,{ref:p,type:`button`,className:`${e} tpl-btn appearance-trigger`,onClick:()=>u(e=>!e),title:`Appearance: ${g.label} · ${g.persona} · ${n===`light`?`Light`:`Dark`}`,"aria-label":`Choose appearance (current: ${g.label}, ${g.persona}, ${n} mode)`,"aria-expanded":s,"aria-haspopup":`dialog`,children:(0,x.jsxs)(`span`,{className:`appearance-mark`,"aria-hidden":`true`,children:[(0,x.jsx)(`i`,{style:{background:g.preview.accent}}),(0,x.jsx)(`i`,{style:{background:g.preview.surface}})]})}),s&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`button`,{className:`appearance-backdrop`,type:`button`,onClick:h,"aria-label":`Close appearance`}),(0,x.jsx)(A,{active:t,theme:n,fontScale:r,onPickTemplate:i,onPickTheme:a,onPickFontScale:o,onClose:h,optionRefs:m})]})]})}function M(){let e=(0,y.c)(7),{active:t,theme:n,fontScale:r,pickTemplate:i,pickTheme:a,pickFontScale:o}=E(),s;return e[0]!==t||e[1]!==r||e[2]!==o||e[3]!==i||e[4]!==a||e[5]!==n?(s=(0,x.jsx)(A,{embedded:!0,active:t,theme:n,fontScale:r,onPickTemplate:i,onPickTheme:a,onPickFontScale:o}),e[0]=t,e[1]=r,e[2]=o,e[3]=i,e[4]=a,e[5]=n,e[6]=s):s=e[6],s}function N(e){let[t,n]=(0,b.useState)(e);return(0,b.useEffect)(()=>{if(typeof window>`u`)return;let t=()=>n(e());return t(),window.addEventListener(g,t),window.addEventListener(`focus`,t),document.addEventListener(`visibilitychange`,t),()=>{window.removeEventListener(g,t),window.removeEventListener(`focus`,t),document.removeEventListener(`visibilitychange`,t)}},[]),t}function P(){return N(v)}function F(){return N(h)}function I(){return N(p)}function L(){return N(R)}function R(){return m()}function z(){return N(B)}function B(){return _()}export{P as a,F as i,I as n,M as o,z as r,j as s,L as t};
@@ -1 +1 @@
1
- import{t as e}from"./react-BQSORdFI.js";var t=e();function n(e,n){let r=(0,t.useRef)(e);r.current=e,(0,t.useEffect)(()=>{if(n===null)return;let e=window.setTimeout(()=>r.current(),n);return()=>window.clearTimeout(e)},[n])}export{n as t};
1
+ import{t as e}from"./react-BZJXY1be.js";var t=e();function n(e,n){let r=(0,t.useRef)(e);r.current=e,(0,t.useEffect)(()=>{if(n===null)return;let e=window.setTimeout(()=>r.current(),n);return()=>window.clearTimeout(e)},[n])}export{n as t};
@@ -1 +1 @@
1
- import{t as e}from"./react-BQSORdFI.js";var t=e();function n(e,t,n){return new Promise(r=>{if(typeof Image>`u`||n.aborted){r(null);return}let i=new Image,a=!1,o=t=>{a||(a=!0,window.clearTimeout(c),n.removeEventListener(`abort`,s),i.onload=null,i.onerror=null,i.src=``,r(t?e:null))},s=()=>o(!1),c=window.setTimeout(()=>o(!1),t);n.addEventListener(`abort`,s),i.onload=()=>o(i.naturalWidth>0),i.onerror=()=>o(!1),i.referrerPolicy=`no-referrer`,i.decoding=`async`,i.src=e})}function r(e,r=8e3){let i=e.join(`|`),[a,o]=(0,t.useState)(()=>e.some(e=>e&&e.trim())?{src:null,state:`checking`}:{src:null,state:`none`});return(0,t.useEffect)(()=>{let t=e.filter(e=>typeof e==`string`&&e.trim());if(!t.length){o({src:null,state:`none`});return}let i=new AbortController;return o({src:null,state:`checking`}),Promise.all(t.map(e=>n(e,r,i.signal))).then(e=>{if(i.signal.aborted)return;let t=e.find(e=>e!==null)??null;o(t?{src:t,state:`ready`}:{src:null,state:`none`})}),()=>i.abort()},[i,r]),a}export{r as t};
1
+ import{t as e}from"./react-BZJXY1be.js";var t=e();function n(e,t,n){return new Promise(r=>{if(typeof Image>`u`||n.aborted){r(null);return}let i=new Image,a=!1,o=t=>{a||(a=!0,window.clearTimeout(c),n.removeEventListener(`abort`,s),i.onload=null,i.onerror=null,i.src=``,r(t?e:null))},s=()=>o(!1),c=window.setTimeout(()=>o(!1),t);n.addEventListener(`abort`,s),i.onload=()=>o(i.naturalWidth>0),i.onerror=()=>o(!1),i.referrerPolicy=`no-referrer`,i.decoding=`async`,i.src=e})}function r(e,r=8e3){let i=e.join(`|`),[a,o]=(0,t.useState)(()=>e.some(e=>e&&e.trim())?{src:null,state:`checking`}:{src:null,state:`none`});return(0,t.useEffect)(()=>{let t=e.filter(e=>typeof e==`string`&&e.trim());if(!t.length){o({src:null,state:`none`});return}let i=new AbortController;return o({src:null,state:`checking`}),Promise.all(t.map(e=>n(e,r,i.signal))).then(e=>{if(i.signal.aborted)return;let t=e.find(e=>e!==null)??null;o(t?{src:t,state:`ready`}:{src:null,state:`none`})}),()=>i.abort()},[i,r]),a}export{r as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";var n=t(),r=e(),i=90;function a(e,t){let a=(0,n.c)(6),o=(0,r.useRef)(0),s;a[0]!==t||a[1]!==e.current?(s=()=>{let n=e.current;if(!n)return;let r=e=>{e.ctrlKey&&(e.preventDefault(),o.current+=e.deltaY,o.current>=i?(o.current=0,t(`out`)):o.current<=-90&&(o.current=0,t(`in`)))};return n.addEventListener(`wheel`,r,{passive:!1}),()=>n.removeEventListener(`wheel`,r)},a[0]=t,a[1]=e.current,a[2]=s):s=a[2];let c;a[3]!==t||a[4]!==e?(c=[e,t],a[3]=t,a[4]=e,a[5]=c):c=a[5],(0,r.useEffect)(s,c)}export{a as t};
@@ -0,0 +1 @@
1
+ function e(e){return e.normalize(`NFKC`).replace(/­/g,``).replace(/[‘’‛]/g,`'`).replace(/[“”]/g,`"`).replace(/[‐-―]/g,`-`).replace(/-\s+/g,``).replace(/\s+/g,` `).replace(/([$€£¥]) (?=[\d(])/g,`$1`).trim().toLowerCase()}function t(t,n){let r=e(t);return r.length!==0&&e(n).includes(r)}function n(t){let n=e(t);return t=>{let r=e(t);return r.length>0&&n.includes(r)}}var r=new WeakMap;function i(t,n){let i=r.get(t);return i||(i=[],r.set(t,i)),i[n]??=e(t[n])}function a(t,n,r){let a=e(t);if(a.length===0)return 0;if(r&&r>=1&&r<=n.length&&i(n,r-1).includes(a))return r;for(let e=0;e<n.length;e+=1)if(i(n,e).includes(a))return e+1;return 0}function o(e){let t=e.normalize(`NFKC`),n=[],r=[],i=!1,a=(e,t)=>{i&&n.length>0&&(n.push(` `),r.push(t)),i=!1,n.push(e),r.push(t)};for(let e=0;e<t.length;e++){let n=t[e];if(n!==`­`){if(/\s/.test(n)){i=!0;continue}if(`'‘’‛`.includes(n)){a(`'`,e);continue}if(`“”`.includes(n)){a(`"`,e);continue}if(n>=`‐`&&n<=`―`){if(/\s/.test(t[e+1]??``)){let n=e+1;for(;n<t.length&&/\s/.test(t[n]);)n++;e=n-1;continue}a(`-`,e);continue}if(n===`-`&&/\s/.test(t[e+1]??``)){let n=e+1;for(;n<t.length&&/\s/.test(t[n]);)n++;e=n-1;continue}if(`$€£¥`.includes(n)&&i===!1){a(n,e);let r=e+1;for(;r<t.length&&/\s/.test(t[r]);)r++;r>e+1&&/[\d(]/.test(t[r]??``)&&(e=r-1);continue}a(n.toLowerCase(),e)}}return{text:n.join(``),idx:r,source:t}}function s(e,t){if(e.length<2||t.length<2)return+(e===t);let n=new Map;for(let t=0;t<e.length-1;t++){let r=e.slice(t,t+2);n.set(r,(n.get(r)??0)+1)}let r=0;for(let e=0;e<t.length-1;e++){let i=t.slice(e,e+2),a=n.get(i)??0;a>0&&(n.set(i,a-1),r++)}return 2*r/(e.length+t.length-2)}var c=.82,l=12;function u(e){let t=[],n=/\S+/g,r;for(;r=n.exec(e);)t.push({t:r[0],start:r.index,end:r.index+r[0].length});return t}function d(e,t){if(e===t||e.length>=4&&t.length>=4&&s(e,t)>=.7)return!0;if(e.length>=5||t.length>=5){let[n,r]=e.length<=t.length?[e,t]:[t,e];if(n.length/r.length>=.5&&(r.startsWith(n)||r.endsWith(n)))return!0}return!1}var f=14,p=.78,m=2.8;function h(e,t){let n=e.split(` `).filter(Boolean);if(n.length<4)return null;let r=[];for(let e=0;e<t.length&&r.length<240;e++)(d(n[0],t[e].t)||d(n[1],t[e].t))&&r.push(e);let i=null;for(let a of r){let r=a,o=0,s=-1,c=-1;for(let e of n){let n=Math.min(t.length,r+f);for(let i=r;i<n;i++)if(d(e,t[i].t)){o++,s<0&&(s=i),c=i,r=i+1;break}}if(s<0||c<0)continue;let l=o/n.length,u=t[c].end-t[s].start;l<p||u>e.length*m||(!i||l>i.ratio||l===i.ratio&&u<i.span)&&(i={ratio:l,span:u,start:t[s].start,end:t[c].end})}return i?{start:i.start,end:i.end}:null}function g(n,r){let i=e(n);if(i.length<l)return null;let a=o(r);if(a.text.length<i.length/2)return null;let d=a.text.indexOf(i),f,p;if(d>=0)f=d,p=d+i.length;else{let e=Math.max(2,Math.floor(i.length/8)),t=-1,n=0;for(let r=0;r+i.length<=a.text.length;r+=e){let e=s(i,a.text.slice(r,r+i.length));e>n&&(n=e,t=r)}if(t<0)return null;let r=Math.max(4,Math.floor(i.length*.15)),o=t,d=i.length;for(let c=Math.max(0,t-e);c<=Math.min(a.text.length-1,t+e);c++)for(let e of[i.length-r,i.length,i.length+r]){if(e<l||c+e>a.text.length)continue;let t=s(i,a.text.slice(c,c+e));t>n&&(n=t,o=c,d=e)}if(n>=c)f=o,p=o+d;else{let e=h(i,u(a.text));if(!e)return null;f=e.start,p=e.end}}for(;f>0&&a.text[f-1]!==` `;)f--;for(;p<a.text.length&&a.text[p]!==` `;)p++;let m=a.idx[f],g=a.idx[p-1];if(m===void 0||g===void 0)return null;let _=a.source.slice(m,g+1).trim();return _.length<l||!t(_,r)?null:_}export{g as a,e as i,t as n,n as r,a as t};
@@ -0,0 +1,2 @@
1
+ (function(){let e=e=>e===32||e===9||e===10||e===13||/\p{Zs}/u.test(String.fromCodePoint(e)),t=e=>e===9||e===10||e===13?!1:/\p{Cc}|\p{Cf}/u.test(String.fromCodePoint(e)),n=e=>e>=33&&e<=47||e>=58&&e<=64||e>=91&&e<=96||e>=123&&e<=126||/\p{P}/u.test(String.fromCodePoint(e)),r=e=>e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=173824&&e<=177983||e>=177984&&e<=178207||e>=178208&&e<=183983||e>=63744&&e<=64255||e>=194560&&e<=195103;function i(n,i){let a=``;for(let o of n){let n=o.codePointAt(0);if(!(n===0||n===65533||t(n))){if(e(n)){a+=` `;continue}i.handleChineseChars&&r(n)?a+=` ${o} `:a+=o}}return i.stripAccents&&(a=a.normalize(`NFD`).replace(/\p{Mn}/gu,``)),i.lowercase&&(a=a.toLowerCase()),a}function a(e){let t=[];for(let r of e.split(/\s+/)){if(!r)continue;let e=``;for(let i of r)n(i.codePointAt(0))?(e&&=(t.push(e),``),t.push(i)):e+=i;e&&t.push(e)}return t}function o(e,t){let n=[...e];if(n.length>t.params.maxChars)return[t.unkId];let r=[],i=0;for(;i<n.length;){let e=n.length,a=-1;for(;e>i;){let r=(i>0?t.params.prefix:``)+n.slice(i,e).join(``),o=t.vocab.get(r);if(o!==void 0){a=o;break}--e}if(a===-1)return[t.unkId];r.push(a),i=e}return r}function s(e,t){let n=[];for(let r of a(i(e,t.params)))for(let e of o(r,t))n.push(e);return n}function c(e,t){let n=s(e,t),r=new Float32Array(t.dim);if(n.length===0)return r;let i=new Float64Array(t.dim);for(let e of n){let n=e*t.dim;for(let e=0;e<t.dim;e++)i[e]+=t.matrix[n+e]}let a=0,o=1/n.length;for(let e=0;e<t.dim;e++){let n=i[e]*t.scale*o;r[e]=n,a+=n*n}if(a=Math.sqrt(a),a>0){let e=1/a;for(let n=0;n<t.dim;n++)r[n]*=e}return r}function l(e,t){let n=0;for(let r=0;r<e.length;r++)n+=e[r]*t[r];return n}let u=null;function d(e,t,n){let r=new Float32Array(t);for(let i=0;i<t;i++){let t=parseInt(e.substr(i*2,2),16);r[i]=(t>127?t-256:t)*n}return r}let f=45e3;async function p(e,t){let n=await(await fetch(`${e}index.json`,{signal:AbortSignal.timeout(f)})).json();if(n.modelId!==t)throw Error(`semantic asset model ${n.modelId} != expected ${t}`);let[r,i]=await Promise.all([fetch(`${e}${n.matrix.file}`,{signal:AbortSignal.timeout(f)}).then(e=>e.arrayBuffer()),fetch(`${e}vocab.txt`,{signal:AbortSignal.timeout(f)}).then(e=>e.text())]),a=new Map,o=i.split(`
2
+ `);for(let e=0;e<o.length;e++)a.set(o[e],e);let s={matrix:new Int8Array(r),scale:n.matrix.scale,dim:n.dim,vocab:a,unkId:a.get(n.tokenizer.unkToken)??0,params:n.tokenizer},{types:c,vectors:l,scale:u}=n.components;return{model:s,types:c,vecs:l.map(e=>d(e,n.dim,u))}}function m(e){if(!u)return[];let t=c(e,u.model),n=[];for(let e=0;e<u.types.length;e++){let r=l(t,u.vecs[e]);r>.18&&n.push([u.types[e],r])}return n.sort((e,t)=>t[1]-e[1]),n.slice(0,12)}self.onmessage=async e=>{let t=e.data;if(t.type===`init`){try{u=await p(t.base,t.modelId),self.postMessage({type:`ready`})}catch(e){self.postMessage({type:`error`,message:String(e)})}return}if(t.type===`fit`){self.postMessage({type:`result`,id:t.id,fits:m(t.query)});return}if(t.type===`embed`){let e=u?c(t.text,u.model):new Float32Array;self.postMessage({type:`embedded`,id:t.id,vec:e},[e.buffer])}}})();
@@ -1,40 +1,91 @@
1
1
  # Demo asset credits & licenses
2
2
 
3
- Every file in this folder is **free for commercial use**. Sources and licenses are listed below.
4
- Attribution is not required by these licenses, but is recorded here as good practice.
3
+ The copyright licences or public-domain status reviewed for these files permit their use in a
4
+ commercial product, subject to the linked terms. Source links are recorded even where attribution
5
+ is optional. This review does not grant or warrant separate publicity, privacy, trademark, property,
6
+ or other depicted-subject rights; avoid implying endorsement and review the intended use.
5
7
 
6
8
  ## Images — Pexels License (free for commercial use, no attribution required)
7
9
 
8
- <https://www.pexels.com/license/> · each file is the still photo at `https://www.pexels.com/photo/<id>/`
9
-
10
- | File | Pexels photo ID | Subject |
11
- | ----------------------------- | --------------- | -------------------------------------------- |
12
- | `images/sete-cidades.jpg` | 20500286 | Sete Cidades twin crater lakes, São Miguel |
13
- | `images/furnas-lake.jpg` | 26890903 | Furnas crater lake with hydrangeas |
14
- | `images/green-coast.jpg` | 20500273 | Green coast and hydrangeas, São Miguel |
15
- | `images/patchwork-fields.jpg` | 33557780 | Aerial patchwork fields under a volcano |
16
- | `images/cliff-fields.jpg` | 33557773 | Clifftop fields meeting the Atlantic |
17
- | `images/basalt-cliffs.jpg` | 33515018 | Basalt sea cliffs |
18
- | `images/crater-panorama.jpg` | 26772400 | Crater landscape panorama with lakes |
19
- | `images/capelinhos.jpg` | 27288120 | Capelinhos lighthouse on volcanic ash, Faial |
20
- | `images/overcast-coast.jpg` | 30548370 | Moody overcast coastline |
21
- | `images/ponta-delgada.jpg` | 20738549 | Portas da Cidade arches, Ponta Delgada |
22
- | `images/village-street.jpg` | 27426091 | Hillside village street |
10
+ <https://www.pexels.com/license/> · each ID below links to the exact source page. Pexels says credit
11
+ is optional but encouraged; these links preserve source provenance even though the original import
12
+ did not retain the creator names.
13
+
14
+ | File | Pexels photo ID | Subject |
15
+ | ----------------------------- | -------------------------------------------------- | -------------------------------------------- |
16
+ | `images/sete-cidades.jpg` | [20500286](https://www.pexels.com/photo/20500286/) | Sete Cidades twin crater lakes, São Miguel |
17
+ | `images/furnas-lake.jpg` | [26890903](https://www.pexels.com/photo/26890903/) | Furnas crater lake with hydrangeas |
18
+ | `images/green-coast.jpg` | [20500273](https://www.pexels.com/photo/20500273/) | Green coast and hydrangeas, São Miguel |
19
+ | `images/patchwork-fields.jpg` | [33557780](https://www.pexels.com/photo/33557780/) | Aerial patchwork fields under a volcano |
20
+ | `images/cliff-fields.jpg` | [33557773](https://www.pexels.com/photo/33557773/) | Clifftop fields meeting the Atlantic |
21
+ | `images/basalt-cliffs.jpg` | [33515018](https://www.pexels.com/photo/33515018/) | Basalt sea cliffs |
22
+ | `images/crater-panorama.jpg` | [26772400](https://www.pexels.com/photo/26772400/) | Crater landscape panorama with lakes |
23
+ | `images/capelinhos.jpg` | [27288120](https://www.pexels.com/photo/27288120/) | Capelinhos lighthouse on volcanic ash, Faial |
24
+ | `images/overcast-coast.jpg` | [30548370](https://www.pexels.com/photo/30548370/) | Moody overcast coastline |
25
+ | `images/ponta-delgada.jpg` | [20738549](https://www.pexels.com/photo/20738549/) | Portas da Cidade arches, Ponta Delgada |
26
+ | `images/village-street.jpg` | [27426091](https://www.pexels.com/photo/27426091/) | Hillside village street |
23
27
 
24
28
  ## Video — Pexels License (free for commercial use, no attribution required)
25
29
 
26
- | File | Pexels video ID | Subject |
27
- | ----------------------- | --------------- | ------------------------------------------ |
28
- | `video/azores-film.mp4` | 11600665 | Coastal drone footage, Azores (SD 640×360) |
30
+ | File | Pexels video ID | Subject |
31
+ | ------------------------ | -------------------------------------------------- | ---------------------------------------------------- |
32
+ | `video/azores-film.webm` | [11600665](https://www.pexels.com/video/11600665/) | Coastal drone footage, Azores (SD 640×360; VP9/Opus) |
29
33
 
30
34
  ## PDF — Public domain (work of the U.S. Government)
31
35
 
32
- | File | Source | Notes |
33
- | -------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
34
- | `pdf/cfd-primer.pdf` | NASA NTRS, document ID 20020038755 — _"A Textbook for a First Course in Computational Fluid Dynamics"_ | Work of the U.S. Government; public use permitted. <https://ntrs.nasa.gov/citations/20020038755> |
36
+ | File | Source | Notes |
37
+ | -------------------- | ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
38
+ | `pdf/cfd-primer.pdf` | NASA NTRS, document ID 19950004435 — _"Computational Fluid Dynamics Uses in Fluid Dynamics/Aerodynamics Education"_ | Four-page excerpt from a U.S. Government work; NASA records it as "Public Use Permitted." <https://ntrs.nasa.gov/citations/19950004435> |
39
+
40
+ ## First-party — original Mavéa assets (no external source)
41
+
42
+ Drawn in-repo for Mavéa, so no third-party license applies.
43
+
44
+ | File | Subject |
45
+ | ------------------------------------ | ----------------------------------------------- |
46
+ | `images/slide-placeholder.svg` | Gradient placeholder tile, slide-lab fixtures |
47
+ | `images/slide-placeholder-light.svg` | Light-theme variant of the placeholder gradient |
48
+
49
+ ## Hotlinked tour imagery — Wikimedia Commons, CC0 (not bundled)
50
+
51
+ The recorded tour replays reference three photos by URL from Wikimedia Commons; the files
52
+ themselves are never bundled in this repo or the npm package. Commons licenses per file, so each
53
+ was individually verified as **CC0 (public-domain dedication — free for commercial use, no
54
+ attribution required)** via the Commons API. The license gate (`scripts/check-licenses.mjs`)
55
+ fails on any baked remote media URL that has not been reviewed and listed there.
56
+
57
+ | Hotlinked file (Commons) | Creator | License | Subject |
58
+ | ------------------------------------------------------------------------------------------------------------------ | ---------------------- | ------- | ---------------------------------- |
59
+ | [Shibuya crossing at night](https://commons.wikimedia.org/wiki/File:Shibuya_crossing_at_night.jpg) | Syced | CC0 | Shibuya scramble crossing at night |
60
+ | [Lantern of Kaminarimon Gate](https://commons.wikimedia.org/wiki/File:Lantern_of_Kaminarimon_Gate.JPG) | Tokumeigakarinoaoshima | CC0 | Kaminarimon gate lantern, Asakusa |
61
+ | [View of Mount Fuji from Lake Ashi](https://commons.wikimedia.org/wiki/File:View_of_Mount_Fuji_from_Lake_Ashi.jpg) | Quercus acuta | CC0 | Mt. Fuji across Lake Ashi |
62
+
63
+ ## Integrity manifest
64
+
65
+ The JPEGs and PDF entered the repository on July 21, 2026. The WebM is the reviewed open-codec
66
+ replacement for the original Pexels download. The hashes below pin the exact bytes covered by this
67
+ record; replacing a file requires a new source and licence review.
68
+
69
+ ```text
70
+ fd101a07ae5ae9123c39f80b26023c5c8c6b5ff2984ad17105019d980a5699b6 images/basalt-cliffs.jpg
71
+ fd813b07dd13d65cd5a86e68d7829788d61e5b620d2fbc676a928d2db0247cea images/capelinhos.jpg
72
+ c92cf97105b82d2c5f1dd8d6d775f37b75f852133c239b6e72bde57c65cc4ad6 images/cliff-fields.jpg
73
+ 3eb0d7fb01cb5ca2978edac95806a536a32d7b5876666b29494468c4f0572f57 images/crater-panorama.jpg
74
+ 094315f1f59a1cb107cdf38d25cf022168e28eec854ac5304591d9f79650f9e6 images/furnas-lake.jpg
75
+ a02161080c956edc361ba3065d633317067909685df638a3e27fc9acc07385fb images/green-coast.jpg
76
+ dbe1d9ae483ae7ff1e01b533ec4c76c04639c4463b0190c5de5c02c323b436d7 images/overcast-coast.jpg
77
+ 1c382a563eaba7182f5ff26bf45d5768a59ebc0dc6ea3175cf6b33dde8575cba images/patchwork-fields.jpg
78
+ 4301abe0d6856c60abdbb970aa2fefef802a7d6a1eec67fab027147ec8814247 images/ponta-delgada.jpg
79
+ b0581aec85088ab0782c12c18130aee5ed5767444631edc4274bd40ef2ab0d94 images/sete-cidades.jpg
80
+ 71c10a7bc14be45f34e07cec3681ac94b308a34b70c40b56f4678d078ad33ca6 images/village-street.jpg
81
+ 76a89237e8243457bee4239146525a07ce0a38086cf5d3087d576ea0faf6f9c9 video/azores-film.webm
82
+ 036b352582b28ca11ef6e9bb430d85c9c7ec5669d9a6a157784456494f355c67 pdf/cfd-primer.pdf
83
+ 2f129598caae4154e2bf4e9396ebe375aac5412a0af4c525f9af4a0c1019095a images/slide-placeholder-light.svg
84
+ 4eb299f59439acfdd6ebc4ed30dbfe8a65428215cec661b131e420e964ce6d59 images/slide-placeholder.svg
85
+ ```
35
86
 
36
87
  ## Where they're used
37
88
 
38
89
  - **`creative`** (the Azores photo-story) — images across the moodboard, carousel, lightbox, before/after,
39
- image-callouts and the `photo` frame; `azores-film.mp4` in the videoembed.
90
+ image-callouts and the `photo` frame; `azores-film.webm` in the videoembed.
40
91
  - **`compsci`** (the simulation run) — `cfd-primer.pdf` embedded in the `pdfreader` as the real reference.
Binary file
@@ -1,34 +1,38 @@
1
- The font files in this directory (including export/families/) are licensed under the SIL Open
2
- Font License 1.1 (https://openfontlicense.org), which permits free commercial use, bundling, and
3
- redistribution:
1
+ The font files in this directory and export/families/ are distributed under the SIL Open Font
2
+ License 1.1. The complete license is in OFL-1.1.txt. It permits commercial use and bundling subject
3
+ to its conditions, including the restriction against selling a font by itself, preservation of
4
+ the copyright notice and license, and Reserved Font Name rules for modified versions.
4
5
 
5
- - Hanken Grotesk Copyright 2020 The Hanken Grotesk Project Authors
6
- https://github.com/marcologous/hanken-grotesk
7
- - IBM Plex Mono — Copyright 2017 IBM Corp.
8
- https://github.com/IBM/plex
9
- - Newsreader — Copyright 2020 Production Type
10
- https://github.com/productiontype/Newsreader
6
+ Copyright and Reserved Font Name notices, copied from the shipped font metadata:
7
+
8
+ - Archivo — Copyright 2020 The Archivo Project Authors (https://github.com/Omnibus-Type/Archivo)
9
+ - Bodoni Moda — Copyright 2020 The Bodoni Moda Project Authors
10
+ (https://github.com/indestructible-type/Bodoni)
11
+ - EB Garamond — Copyright 2017 The EB Garamond Project Authors
12
+ (https://github.com/octaviopardo/EBGaramond12)
13
+ - Hanken Grotesk — Copyright 2021 The Hanken Grotesk Project Authors
14
+ (https://github.com/marcologous/hanken-grotesk)
15
+ - IBM Plex Sans — Copyright 2019 IBM Corp. All rights reserved.
16
+ - IBM Plex Mono — Copyright 2017 IBM Corp. All rights reserved.
11
17
  - Instrument Serif — Copyright 2022 The Instrument Serif Project Authors
12
- https://github.com/Instrument/instrument-serif
18
+ (https://github.com/Instrument/instrument-serif)
13
19
  - JetBrains Mono — Copyright 2020 The JetBrains Mono Project Authors
14
- https://github.com/JetBrains/JetBrainsMono
15
- - Archivo — Copyright 2020 The Archivo Project Authors
16
- https://github.com/Omnibus-Type/Archivo
17
- - Space Grotesk — Copyright 2020 The Space Grotesk Project Authors
18
- https://github.com/floriankarsten/space-grotesk
19
- - Bodoni Moda — Copyright 2020 The Bodoni Moda Project Authors
20
- https://github.com/indestructible-type/Bodoni
21
- - IBM Plex Sans — Copyright 2017 IBM Corp.
22
- https://github.com/IBM/plex
23
- - Lora — Copyright 2011 The Lora Project Authors
24
- https://github.com/cyrealtype/Lora-Cyrillic
20
+ (https://github.com/JetBrains/JetBrainsMono)
25
21
  - Libre Franklin — Copyright 2020 The Libre Franklin Project Authors
26
- https://github.com/googlefonts/Libre-Franklin
27
- - Source Serif 4 — Copyright 2014 The Source Serif 4 Project Authors
28
- https://github.com/adobe-fonts/source-serif
22
+ (https://github.com/googlefonts/Libre-Franklin)
23
+ - Lora — Copyright 2011 The Lora Project Authors
24
+ (https://github.com/cyrealtype/Lora-Cyrillic), with Reserved Font Name "Lora".
25
+ - Newsreader — Copyright 2020 The Newsreader Project Authors
26
+ (http://github.com/productiontype/Newsreader)
27
+ - Source Serif 4 — © 2014–2021 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved
28
+ Font Name “Source”.
29
+ - Space Grotesk — Copyright 2020 The Space Grotesk Project Authors
30
+ (https://github.com/floriankarsten/space-grotesk)
29
31
  - Spectral — Copyright 2017 The Spectral Project Authors
30
- https://github.com/productiontype/Spectral
31
- - EB Garamond — Copyright 2017 The EB Garamond Project Authors
32
- https://github.com/octaviopardo/EBGaramond12
32
+ (https://github.com/productiontype/Spectral)
33
33
 
34
- Latin-subset woff2 builds as served by Google Fonts.
34
+ PROVENANCE.md records every shipped filename, embedded version, and SHA-256 digest. These are
35
+ Google Fonts-served Latin-subset WOFF2 binaries and were not modified by this project after
36
+ retrieval. The original retrieval timestamp was not retained; the files entered this repository on
37
+ July 21, 2026. Do not replace or regenerate them without updating the manifest and reviewing any
38
+ Reserved Font Name conditions.
@@ -0,0 +1,81 @@
1
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
2
+ This license is copied below, and is also available with a FAQ at:
3
+ https://openfontlicense.org
4
+
5
+ -----------------------------------------------------------
6
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
7
+ -----------------------------------------------------------
8
+
9
+ PREAMBLE
10
+ The goals of the Open Font License (OFL) are to stimulate worldwide
11
+ development of collaborative font projects, to support the font creation
12
+ efforts of academic and linguistic communities, and to provide a free and
13
+ open framework in which fonts may be shared and improved in partnership
14
+ with others.
15
+ The OFL allows the licensed fonts to be used, studied, modified and
16
+ redistributed freely as long as they are not sold by themselves. The
17
+ fonts, including any derivative works, can be bundled, embedded,
18
+ redistributed and/or sold with any software provided that any reserved
19
+ names are not used by derivative works. The fonts and derivatives,
20
+ however, cannot be released under any other type of license. The
21
+ requirement for fonts to remain under this license does not apply
22
+ to any document created using the fonts or their derivatives.
23
+ DEFINITIONS
24
+ "Font Software" refers to the set of files released by the Copyright
25
+ Holder(s) under this license and clearly marked as such. This may
26
+ include source files, build scripts and documentation.
27
+
28
+ "Reserved Font Name" refers to any names specified as such after the
29
+ copyright statement(s).
30
+
31
+ "Original Version" refers to the collection of Font Software components as
32
+ distributed by the Copyright Holder(s).
33
+ "Modified Version" refers to any derivative made by adding to, deleting,
34
+ or substituting -- in part or in whole -- any of the components of the
35
+ Original Version, by changing formats or by porting the Font Software to a
36
+ new environment.
37
+
38
+ "Author" refers to any designer, engineer, programmer, technical
39
+ writer or other person who contributed to the Font Software.
40
+ PERMISSION & CONDITIONS
41
+ Permission is hereby granted, free of charge, to any person obtaining
42
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
43
+ redistribute, and sell modified and unmodified copies of the Font
44
+ Software, subject to the following conditions:
45
+
46
+ 1) Neither the Font Software nor any of its individual components,
47
+ in Original or Modified Versions, may be sold by itself.
48
+ 2) Original or Modified Versions of the Font Software may be bundled,
49
+ redistributed and/or sold with any software, provided that each copy
50
+ contains the above copyright notice and this license. These can be
51
+ included either as stand-alone text files, human-readable headers or
52
+ in the appropriate machine-readable metadata fields within text or
53
+ binary files as long as those fields can be easily viewed by the user.
54
+ 3) No Modified Version of the Font Software may use the Reserved Font
55
+ Name(s) unless explicit written permission is granted by the corresponding
56
+ Copyright Holder. This restriction only applies to the primary font name as
57
+ presented to the users.
58
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
59
+ Software shall not be used to promote, endorse or advertise any
60
+ Modified Version, except to acknowledge the contribution(s) of the
61
+ Copyright Holder(s) and the Author(s) or with their explicit written
62
+ permission.
63
+ 5) The Font Software, modified or unmodified, in part or in whole,
64
+ must be distributed entirely under this license, and must not be
65
+ distributed under any other license. The requirement for fonts to
66
+ remain under this license does not apply to any document created
67
+ using the Font Software.
68
+
69
+ TERMINATION
70
+ This license becomes null and void if any of the above conditions are
71
+ not met.
72
+ DISCLAIMER
73
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
74
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
75
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
76
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
77
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
78
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
79
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
80
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
81
+ OTHER DEALINGS IN THE FONT SOFTWARE.
@@ -0,0 +1,38 @@
1
+ # Font provenance
2
+
3
+ All files are Google Fonts-served Latin-subset WOFF2 binaries recorded in this repository on July
4
+ 21, 2026. The exact download timestamp was not retained. Versions and copyright/RFN notices below
5
+ come from each file's OpenType `name` table; SHA-256 identifies the exact shipped bytes.
6
+
7
+ | File | Embedded version | SHA-256 |
8
+ | ----------------------------------------- | ---------------- | ------------------------------------------------------------------ |
9
+ | `archivo-var-latin.woff2` | 2.001 | `7150c0ec5ad356453013d11affec1fbab95de0dd2dcecb043b4f1cb7f87c4ba4` |
10
+ | `bodoni-moda-400-italic-latin.woff2` | 2.005 | `068e05ed09c93380583f8a61fd0a640aab30cfb464fc3ba7c94b09eb124574fb` |
11
+ | `bodoni-moda-var-latin.woff2` | 2.005 | `c1de3473cec36815a9cfb203f3b6202971e26ac642017d08f097df2368cfe195` |
12
+ | `eb-garamond-var-italic-latin.woff2` | 1.003 | `d2761541b314509e02df3539cd35fc712954a48a50f4e0ab424dde817c699c2a` |
13
+ | `eb-garamond-var-latin.woff2` | 1.003 | `68fd4b247dde89984ee835d99953d235e4927be2b1b732ad81173b519869cee8` |
14
+ | `hanken-grotesk-var-latin.woff2` | 3.013 | `1f21c6eaa0000f3329cfcfac966b43d5bebf5aa610303e33294ac31bc6f4bb59` |
15
+ | `ibm-plex-sans-var-latin.woff2` | 3.201 | `056e4e2459f57a0033c8c9c844ff19d6e42ac8602027803d4345823bcc939818` |
16
+ | `instrument-serif-400-italic-latin.woff2` | 1.000 | `6ee678c33f388dd7ba59700ebea635deb98821baafd817b09891f7927177f702` |
17
+ | `instrument-serif-400-latin.woff2` | 1.000 | `60c06664b5a95c7de6cc3e00d1f9034d78bd1e40b564016b241674449a067d4d` |
18
+ | `jetbrains-mono-var-latin.woff2` | 2.211 | `2c32b9b3ee358c119e210f6f5195f9bd34894d78a785ff2e95d60e718e400af4` |
19
+ | `libre-franklin-var-latin.woff2` | 3.000 | `d21d1545591ddfa2ce9c208879298e9086b1a8dba7c81d50b686c70a259e91e8` |
20
+ | `lora-var-italic-latin.woff2` | 3.008 | `3d536d49566e82a7905c8b0096758005f6616029ac08528d1f4789c1100dff6a` |
21
+ | `lora-var-latin.woff2` | 3.008 | `6b102ab35aa1f2b315788bb4853434ed1e52137603bf7a3da71a682276748d45` |
22
+ | `newsreader-var-italic-latin.woff2` | 1.003 | `a99fb127682b9af538780d21420037452197b0d37dfd273eb108f8a3665d5501` |
23
+ | `newsreader-var-latin.woff2` | 1.003 | `01817351be3edfc1714fe6d60ddea6a22a169a5ebd033b50c7f9495e5d9c386a` |
24
+ | `plex-mono-400-latin.woff2` | 2.3 | `c36f509c0a8f9f85f29cb44bc8701d8a9e0b14c499e77a884f789ead7093a7ac` |
25
+ | `plex-mono-500-latin.woff2` | 2.3 | `a76f53ca6612e7b3828eec2311098675b7f9849ae4169a8bcef6302aec02a6c0` |
26
+ | `plex-mono-600-latin.woff2` | 2.3 | `ad4580d8cb4b5f627c2d18457656732f7f7b070f7837fbc380e08054157e6f6c` |
27
+ | `source-serif-4-var-latin.woff2` | 4.004 | `286e05e5e444f44e50724df445808458dea58507e9805bba012b3b12d08ca122` |
28
+ | `space-grotesk-var-latin.woff2` | 2.000 | `a0d054c4af557de20afd6ca59f47ab353bcaec49c63ff04b6c9d39d0f8910557` |
29
+ | `spectral-400-italic-latin.woff2` | 2.005 | `7cfafd3583aecfe216f860d7a1c5689e86f7f92681946ca582d042c1c96b37d7` |
30
+ | `spectral-400-latin.woff2` | 2.005 | `bcb83e9c56d40c5111a2bdbc3d8bdabf66bd31337e968f1c223b61879b8d3cad` |
31
+ | `spectral-500-italic-latin.woff2` | 2.005 | `a0533b33ddd6bedf5dd9fc6762b44cc536cff6f408a115146f5f003c2c7edd96` |
32
+ | `spectral-500-latin.woff2` | 2.005 | `79ce505722da87b9a2fa21a16cd0d7f426f1624fd16413e11be377bc9e922a3b` |
33
+ | `spectral-600-latin.woff2` | 2.005 | `1fb6ca29fc243e8bfdfce12d8d6806f322bcc62d38036986812be28fb1f41f0a` |
34
+
35
+ The complete OFL 1.1 text is in `OFL-1.1.txt`; exact copyright and Reserved Font Name notices are
36
+ in `LICENSE.txt`. The upstream repositories are linked there. The files have not been modified by
37
+ this project after retrieval. A future subset, conversion, rename, or other binary change must be
38
+ treated as a modified font and reviewed against the OFL and any Reserved Font Name before release.
package/dist/index.html CHANGED
@@ -21,8 +21,8 @@
21
21
  renders on screen and then comes out BLANK in the exported PDF/PPTX — which is
22
22
  how map tiles and photos silently vanished from exports. No new trust: these
23
23
  origins are already trusted to paint pixels.
24
- img-src data:/blob: (object-URL images) + the photo / map-tile allow-list
25
- media-src blob: — Kokoro TTS mp3 plays from an object URL
24
+ img-src data:/blob: (object-URL images) + reviewed Wikimedia files / map tiles
25
+ media-src blob: — Kokoro TTS WAV plays from an object URL
26
26
  worker-src blob: — the VAD / onnx worker
27
27
  frame-src self — the PDF reader may frame a same-origin PDF/proxy URL; its render
28
28
  boundary rejects every external or active-scheme frame source
@@ -32,7 +32,7 @@
32
32
  -->
33
33
  <meta
34
34
  http-equiv="Content-Security-Policy"
35
- content="default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; font-src 'self'; img-src 'self' data: blob: https://upload.wikimedia.org https://commons.wikimedia.org https://images.unsplash.com https://images.pexels.com https://cdn.pixabay.com https://images-assets.nasa.gov https://www.nasa.gov https://*.basemaps.cartocdn.com; connect-src 'self' https://en.wikipedia.org https://api.anthropic.com https://api.openai.com https://generativelanguage.googleapis.com https://openrouter.ai https://api.x.ai https://api.github.com https://api.search.brave.com https://api.tavily.com https://upload.wikimedia.org https://commons.wikimedia.org https://images.unsplash.com https://images.pexels.com https://cdn.pixabay.com https://images-assets.nasa.gov https://www.nasa.gov https://*.basemaps.cartocdn.com; media-src 'self' blob:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'"
35
+ content="default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; style-src 'self' 'unsafe-inline'; font-src 'self'; img-src 'self' data: blob: https://upload.wikimedia.org https://tiles.openfreemap.org; connect-src 'self' https://en.wikipedia.org https://api.anthropic.com https://api.openai.com https://generativelanguage.googleapis.com https://openrouter.ai https://api.x.ai https://api.github.com https://api.search.brave.com https://api.tavily.com https://upload.wikimedia.org https://tiles.openfreemap.org; media-src 'self' blob:; worker-src 'self' blob:; frame-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'"
36
36
  />
37
37
  <title>Mavéa · Talk to AI. See what it means.</title>
38
38
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
@@ -101,13 +101,19 @@
101
101
  }
102
102
  }
103
103
  </style>
104
- <script type="module" crossorigin src="/assets/index-Dbr1j8Fe.js"></script>
105
- <link rel="modulepreload" crossorigin href="/assets/chunk-BVpWp9h4.js">
106
- <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-DaSxXjOY.js">
107
- <link rel="modulepreload" crossorigin href="/assets/react-BQSORdFI.js">
104
+ <script type="module" crossorigin src="/assets/index-D1SPhBGd.js"></script>
105
+ <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-DkW27tQK.js">
106
+ <link rel="modulepreload" crossorigin href="/assets/react-BZJXY1be.js">
107
+ <link rel="modulepreload" crossorigin href="/assets/compiler-runtime-qQQXpJgv.js">
108
+ <link rel="modulepreload" crossorigin href="/assets/useInView-CXTOAEV3.js">
109
+ <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-DeHZSEgm.js">
110
+ <link rel="modulepreload" crossorigin href="/assets/coreIcons-BzqW7Qiz.js">
111
+ <link rel="modulepreload" crossorigin href="/assets/preload-helper-CiWYd9n-.js">
108
112
  <link rel="modulepreload" crossorigin href="/assets/cachedImport-DW0gP14h.js">
109
113
  <link rel="modulepreload" crossorigin href="/assets/lazyRetry-D50B1UMY.js">
110
- <link rel="stylesheet" crossorigin href="/assets/index-CepQEz75.css">
114
+ <link rel="modulepreload" crossorigin href="/assets/preloadableLazy-MIX1ApBW.js">
115
+ <link rel="modulepreload" crossorigin href="/assets/theme-f0mztBcq.js">
116
+ <link rel="stylesheet" crossorigin href="/assets/index-B69GkoTc.css">
111
117
  </head>
112
118
  <body>
113
119
  <div id="boot" role="status" aria-busy="true" aria-label="Loading Mavéa">
@@ -1,6 +1,6 @@
1
1
  # Mavéa Disclaimer
2
2
 
3
- Effective: July 16, 2026
3
+ Effective: August 11, 2026
4
4
 
5
5
  Mavéa uses probabilistic AI systems and can be wrong.
6
6
 
@@ -10,6 +10,9 @@ Mavéa uses probabilistic AI systems and can be wrong.
10
10
  - Mavéa 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 high-impact decisions.
11
11
  - You are responsible for the prompts, files, audio, accounts, credentials, and actions you provide or authorize.
12
12
  - Model, search, speech, hosting, OAuth, media, and connected-action providers are independent third parties. Their terms, privacy practices, availability, and charges apply. All costs are your responsibility.
13
+ - Container engines and desktop tooling are separate products with their own licences and possible commercial subscription charges.
14
+ - Open-media source licences, codec selections, and published patent commitments are not a guarantee that no third party will assert patent rights in every implementation, territory, or use. Obtain qualified patent advice where needed.
15
+ - Copyright licences and attributions for third-party images, video, fonts, maps, documents, and demos do not necessarily clear privacy, publicity, trademark, property, or other depicted-subject rights. Preserve notices and obtain any additional permission your use requires.
13
16
  - Credentials and relevant content travel through the deployment operator's same-origin proxy before reaching selected providers. The operator can access them in transit.
14
17
  - Confirmed actions may create external communications, account changes, charges, or other consequences. Review every action and use test accounts and backups where appropriate.
15
18
 
@@ -1,6 +1,6 @@
1
1
  # Mavéa Privacy Notice
2
2
 
3
- Effective: July 19, 2026
3
+ Effective: August 11, 2026
4
4
 
5
5
  This notice describes the current, unmodified local and self-hosted Mavéa software. It does not describe a future hosted service. Local-first does not mean every feature stays on your device: connected features send data through the deployment to third parties you choose. If a person or organization deploys Mavéa for others, that operator must provide any additional privacy notices and controls required for its deployment.
6
6
 
@@ -8,6 +8,8 @@ This notice describes the current, unmodified local and self-hosted Mavéa softw
8
8
 
9
9
  The Mavéa Maintainers publish software. They do not receive your prompts or browser-local data merely because you install or run it. The person or organization hosting the copy you use is the **deployment operator**. When you self-host, you control that deployment and its logs, storage, configuration, and provider accounts.
10
10
 
11
+ Where data-protection law such as the GDPR or UK GDPR applies to a deployment, the deployment operator normally acts as the controller of personal data processed through it — that is you, when you self-host for yourself. The Maintainers are neither a controller nor a processor of that data, because it never reaches them.
12
+
11
13
  The unmodified project has no Mavéa user-account system, first-party cloud database, advertising network, product-analytics service, telemetry, or conversation-retention service. Normal network requests can still be visible to the deployment host, infrastructure providers, and the third-party services described below. A modified or separately hosted deployment may behave differently, and its operator is responsible for disclosing any additional collection, logging, accounts, analytics, retention, or sharing it adds.
12
14
 
13
15
  The current repository does not set analytics or advertising cookies and does not include first-party usage tracking. A modified deployment that adds cookies, analytics, advertising, or other tracking must disclose and manage those technologies separately.
@@ -21,7 +23,8 @@ Depending on the features you use, browser storage may contain:
21
23
  - preferences such as theme, performance, visual richness, voice, and setup state;
22
24
  - drafts, tracked items, presentation settings, and recent feature state;
23
25
  - provider and model configuration;
24
- - remembered provider, search, or optional GitHub credentials; and
26
+ - remembered provider, search, or optional GitHub credentials;
27
+ - temporary in-progress and finished video-export files in origin-private browser storage until the export is consumed or discarded; and
25
28
  - short-lived demo, tour, route, and in-progress session data.
26
29
 
27
30
  Saved content is encrypted in browser storage only where the relevant feature and browser support it. Course data, mastery and progress, some Ripple data and analysis caches, preferences, metadata, and fallback content can be stored in ordinary local storage or IndexedDB. Anyone who can use your unlocked device or browser profile, and malicious extensions or same-origin code, may be able to access browser data.
@@ -48,9 +51,11 @@ Prism and Synthesis stage and extract supported files locally where possible, bu
48
51
 
49
52
  ## 5. Voice, microphone, speech, and reels
50
53
 
51
- If you enable listening, the browser captures microphone input and its speech-recognition implementation converts speech to text. Depending on the mode, browser, and operating system, audio may be processed by a remote browser-vendor service or sent through the deployment's configured speech-to-text endpoint. Recognized transcripts may then be sent to your selected model provider.
54
+ If you enable listening, the browser captures microphone input. Audio is processed by the deployment's configured speech-to-text endpoint by default a local one on the same machine, though an operator can configure a different endpoint which converts speech to text. Recognized transcripts may then be sent to your selected model provider, including while listening continues.
55
+
56
+ The browser sends captured audio to the speech-to-text endpoint configured by the deployment. The unmodified Mavéa client does not intentionally persist microphone audio itself and does not include it in later conversation-model requests; it sends the resulting transcript instead. A remote or modified speech endpoint, deployment proxy, infrastructure provider, browser extension, or operator can receive, log, or retain the audio under its own configuration and terms. Captured audio is discarded by the client as it is transcribed, and the microphone is released when you stop listening or the tab becomes hidden. The client does not intentionally create a voiceprint or identify speakers. In a listening mode, whatever is said near you can be transcribed too — see the Terms for your responsibilities toward other people.
52
57
 
53
- Spoken answers send narration text to the configured text-to-speech service. Reel rendering and encoding are performed in the browser, but optional model direction and narration use the selected providers. A finished export leaves Mavéa only when you save, publish, or send it to a destination you choose.
58
+ Spoken answers send narration text to the configured text-to-speech service. Reel and conversation-video cuts are directed, rendered, and encoded in your browser; no model provider is called. Reel narration text is sent to the configured text-to-speech service. During a video export, encoded chunks and the finished clip may be held in origin-private browser storage so a large video does not have to remain in JavaScript memory. Normal cancellation, replacement, sharing, and download cleanup remove those temporary files; a download can retain its temporary file for up to 60 seconds while the browser takes ownership. A crash, forced close, or storage failure can interrupt cleanup and leave a temporary file behind. A later video export makes a bounded, best-effort pass that removes only Mavéa temporary video files more than 24 hours old; clearing the site's browser data also removes them. A finished export leaves Mavéa only when you save, publish, or send it to a destination you choose.
54
59
 
55
60
  ## 6. Services that can receive data
56
61
 
@@ -58,15 +63,16 @@ According to the feature and configuration you choose, recipients can include:
58
63
 
59
64
  - Google Gemini, Anthropic Claude, OpenAI, xAI Grok, OpenRouter, or another model endpoint you configure;
60
65
  - configured web-search providers and Wikipedia;
61
- - your browser vendor's speech-recognition service and the configured speech-to-text or text-to-speech service;
66
+ - the configured speech-to-text or text-to-speech service;
62
67
  - GitHub, Google Calendar, or another configured action destination;
63
- - map-tile, font, image, and other content hosts such as OpenStreetMap, CARTO, Google Fonts, Wikimedia, or configured image sources used by a view you open;
64
- - a notification relay URL you configure, which can receive dashboard titles, alert labels, values, units, and timestamps;
68
+ - OpenFreeMap's tile host when you open a map, and Wikimedia's upload host for the small set of individually reviewed tour images; these requests expose ordinary network metadata such as your IP address and user agent to those hosts;
65
69
  - the jsDelivr content-delivery network, from which the local command-line server downloads version-pinned voice-recognition assets once on first voice use and then serves them from its own cache; and
66
70
  - the deployment host, reverse proxy, network, and infrastructure providers.
67
71
 
68
72
  Those parties process data under their own terms and privacy notices. They may retain requests, use data for abuse prevention or service improvement, or process it in other countries according to your account settings and their policies. The Maintainers do not control those practices. Review each recipient's terms, retention, training, security, location, and deletion settings before use. Mavéa cannot delete data retained by those providers.
69
73
 
74
+ For OpenAI Responses requests, the unmodified client sends `store: false` to avoid optional response-object storage. That setting does not disable all OpenAI processing or retention; provider abuse-monitoring, safety, legal, account, and feature-specific retention can still apply. Other providers and custom endpoints have their own controls. Review the current provider documentation and your account settings rather than assuming that Mavéa can guarantee zero retention.
75
+
70
76
  ## 7. Why information is processed
71
77
 
72
78
  Information is processed only as needed to:
@@ -84,7 +90,7 @@ The unmodified project does not sell personal information or use it for cross-co
84
90
 
85
91
  Memory-only values disappear on reload. Session storage generally remains until the tab or browser session ends. Local storage and IndexedDB remain until a feature removes the item, you use an available clear, forget, or reset control, you clear site data, or the browser evicts it. Some session history is capped and expires, but many course, progress, dashboard, memory, and Ripple records have no automatic expiration. Clearing all browser site data is the broadest local deletion control. Removing browser data does not delete copies already sent elsewhere.
86
92
 
87
- Gateway tokens remain until disconnected or removed by the gateway operator. Server, proxy, infrastructure, browser-vendor, and provider retention depends on the relevant operator, logs, backups, account settings, and third-party policy. Contact those parties for deletion of data they control and revoke credentials at the issuing service.
93
+ Gateway tokens remain until disconnected or removed by the gateway operator. Server, proxy, infrastructure, and provider retention depends on the relevant operator, logs, backups, account settings, and third-party policy. Contact those parties for deletion of data they control and revoke credentials at the issuing service.
88
94
 
89
95
  Exports, downloaded files, backups, browser sync, system backups, provider records, and recipients of anything you share must be deleted separately.
90
96