@mavea/mavea 2.0.1 → 2.1.1

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 (264) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/PRIVACY.md +9 -2
  3. package/README.md +7 -1
  4. package/SECURITY.md +1 -1
  5. package/TERMS.md +12 -4
  6. package/TRADEMARKS.md +3 -1
  7. package/dist/.vite/manifest.json +878 -838
  8. package/dist/assets/AnnotationLayer-0YQgrjN3.js +2 -0
  9. package/dist/assets/AnnotationLayer-BRYhJ1LB.css +1 -0
  10. package/dist/assets/{AppCommandPalette-Cucwjk5N.js → AppCommandPalette-CeNtZzhG.js} +1 -1
  11. package/dist/assets/{AtlasView-DO_p0TdZ.js → AtlasView-CYZ9sfXb.js} +1 -1
  12. package/dist/assets/BlockEmpty-B-giiUPy.js +1 -0
  13. package/dist/assets/{CadenceCard-DxceyiPA.js → CadenceCard-j1V7XOxX.js} +1 -1
  14. package/dist/assets/{CheckLogRail-vq2lZ7a5.js → CheckLogRail-CPKGKw7i.js} +1 -1
  15. package/dist/assets/{CommandPalette-Bs6tpdZl.js → CommandPalette-Cz8h94Jd.js} +1 -1
  16. package/dist/assets/ConversationVideoStudio-BLU1b2u_.js +1 -0
  17. package/dist/assets/CourseLessonReader-Ci4BguIU.js +2 -0
  18. package/dist/assets/CourseLessonReader-DNHFQOkX.css +1 -0
  19. package/dist/assets/{CourseRail-CUa7uIGG.css → CourseRail-BDQIWara.css} +1 -1
  20. package/dist/assets/{CourseRail-BQmUsG6v.js → CourseRail-DD8gtAn4.js} +1 -1
  21. package/dist/assets/CoursesApp-CErXxpH-.js +2 -0
  22. package/dist/assets/{DashPresent-DZcRdu6R.js → DashPresent-w5oqKZpo.js} +1 -1
  23. package/dist/assets/DashboardDetail-Dej7CPf7.js +2 -0
  24. package/dist/assets/DashboardLoopGate-DzJol3Os.js +2 -0
  25. package/dist/assets/DashboardLoopRuntime-CX63-Gn4.js +1 -0
  26. package/dist/assets/{DashboardSettings-DJon1Q4o.js → DashboardSettings-5tn-dw6G.js} +1 -1
  27. package/dist/assets/DashboardsApp-BQtz_4UA.js +2 -0
  28. package/dist/assets/DeepZoomApp-STtNq9C3.js +37 -0
  29. package/dist/assets/DelegatePanel-C2_s1eW9.js +33 -0
  30. package/dist/assets/{DemoGallery-BcQ9yz2u.js → DemoGallery-CXoaPF9b.js} +1 -1
  31. package/dist/assets/{DropSelect-GKioj__f.js → DropSelect-rrPFJVkl.js} +1 -1
  32. package/dist/assets/{ExportModal-1pWr-c7I.js → ExportModal-BS3He6V7.js} +1 -1
  33. package/dist/assets/ExportModal-sX8MPVPW.css +1 -0
  34. package/dist/assets/{ExtractionPreview-TKyfEqwM.js → ExtractionPreview-CQ73RXM8.js} +2 -2
  35. package/dist/assets/FeatureUseNotice-lFcApjaS.js +1 -0
  36. package/dist/assets/{FlagshipCommandPalette-D1pv3hfZ.js → FlagshipCommandPalette-D6gjWvTe.js} +1 -1
  37. package/dist/assets/{FlagshipShowcase-CCFFcaL7.js → FlagshipShowcase-mZDqHQtE.js} +1 -1
  38. package/dist/assets/{FlashcardsApp-Dbe-8UkQ.js → FlashcardsApp-C8gRaBO8.js} +1 -1
  39. package/dist/assets/GalleryApp-ChsuVZqR.js +1 -0
  40. package/dist/assets/{HonestByDesign-ByOR1sRQ.js → HonestByDesign-Czur9n6R.js} +1 -1
  41. package/dist/assets/{HowItWorks-Dllc30ph.js → HowItWorks-CA9WdZQ6.js} +1 -1
  42. package/dist/assets/LegalApp-BCnZfHNq.js +1 -0
  43. package/dist/assets/{LegalMarkdownDocument-CmxHsXlb.js → LegalMarkdownDocument-CNsihJ1F.js} +1 -1
  44. package/dist/assets/{LegalPageShell-CDD6D6T_.js → LegalPageShell-8HHhJAPo.js} +1 -1
  45. package/dist/assets/Library-CDgWdTiF.js +1 -0
  46. package/dist/assets/{LibraryOverlay-CHmubwG3.js → LibraryOverlay-CGDPmvnX.js} +1 -1
  47. package/dist/assets/LiveApp-CEaISHEZ.css +1 -0
  48. package/dist/assets/LiveApp-CnTYFYf1.js +79 -0
  49. package/dist/assets/LiveSettings-Bx7Uu6Fl.js +6 -0
  50. package/dist/assets/{MindMapViewerDrawer-BLRBWsTz.js → MindMapViewerDrawer-CBLaSq-i.js} +1 -1
  51. package/dist/assets/{MindShape-CaDuLyGa.js → MindShape-QuVL_EXi.js} +1 -1
  52. package/dist/assets/{PinToDashboard-ChK2Ou73.js → PinToDashboard-CddhBx85.js} +1 -1
  53. package/dist/assets/{PlanReview-Dg6VE0xF.js → PlanReview-DCPDkqLj.js} +1 -1
  54. package/dist/assets/PresentationDeck-DV8AeOrh.js +1 -0
  55. package/dist/assets/PrismApp-BHcClSEQ.js +2 -0
  56. package/dist/assets/{PrismAskController-C4MuB8om.js → PrismAskController-BgwijoI2.js} +1 -1
  57. package/dist/assets/PrismBriefingPlayer-CDkaBWup.js +2 -0
  58. package/dist/assets/PrismOverlay-5ZVXu4WL.css +1 -0
  59. package/dist/assets/PrismOverlay-DRWAI9Mh.js +105 -0
  60. package/dist/assets/PrismWorkbench-B2uSg63W.js +1 -0
  61. package/dist/assets/{PrivacyApp-CBPMqUEA.js → PrivacyApp-CoFgfPwJ.js} +10 -3
  62. package/dist/assets/ReplayCard-CLlaKpWg.js +2 -0
  63. package/dist/assets/ReplayOverlay-W3KwhRaQ.js +1 -0
  64. package/dist/assets/{RewindOverlay-BO7YgDsW.js → RewindOverlay-okltPbfw.js} +1 -1
  65. package/dist/assets/{RippleApp-BnIUhIA0.js → RippleApp-CEJvJl-c.js} +2 -2
  66. package/dist/assets/{RippleAskController-BzdwYcYY.js → RippleAskController-BqnazbZ7.js} +1 -1
  67. package/dist/assets/{RippleOverlay-C9W7uVOp.js → RippleOverlay-DHnHEYoS.js} +2 -2
  68. package/dist/assets/{SeeDontRead-ByW9HnOj.js → SeeDontRead-tA-fTWQW.js} +1 -1
  69. package/dist/assets/ShareModal-Ys5NYDZR.js +2 -0
  70. package/dist/assets/{ShipCourse-CT_F9oJH.js → ShipCourse-C3pjBELa.js} +1 -1
  71. package/dist/assets/{SignatureLoop-DejFTZ-Y.js → SignatureLoop-BNjDbepH.js} +1 -1
  72. package/dist/assets/SynthesisApp-BCsFms4h.js +2 -0
  73. package/dist/assets/SynthesisOverlay-iqXO09rf.js +66 -0
  74. package/dist/assets/TemplatePicker-PWw_xyWb.js +1 -0
  75. package/dist/assets/{TermsApp-ZzlhrXhd.js → TermsApp-B1D2SwN7.js} +13 -5
  76. package/dist/assets/TopicCanvas-xwDjwqxn.js +2 -0
  77. package/dist/assets/{TourPrism-Cng4h9Ly.js → TourPrism-Do4evVOo.js} +1 -1
  78. package/dist/assets/{TrackerTile-DuUsFQTj.js → TrackerTile-Dp7fvG4P.js} +2 -2
  79. package/dist/assets/{TwoSurfaces-BeYMvVuX.js → TwoSurfaces-CZA6zuue.js} +1 -1
  80. package/dist/assets/WorldOverlay-CLWtwuSl.css +1 -0
  81. package/dist/assets/WorldOverlay-EwAFBDvq.js +2 -0
  82. package/dist/assets/{WowFeatures-D58JgpLg.js → WowFeatures-DRKs2UGb.js} +1 -1
  83. package/dist/assets/{ZoomDeck-CPG2XQhr.js → ZoomDeck-qJqKFxkc.js} +1 -1
  84. package/dist/assets/{alternateFinishes-Cgks49KV.js → alternateFinishes-BHcX08Hs.js} +2 -2
  85. package/dist/assets/annotationAuto-B8_I3PNS.js +1 -0
  86. package/dist/assets/annotationReel-BA8Fv9Or.js +1 -0
  87. package/dist/assets/audioTrack-myyVq6Sp.js +1 -0
  88. package/dist/assets/{BlockEmpty-B82uCse8.js → axis-DHAV38YM.js} +1 -1
  89. package/dist/assets/backup-DkCsHNEE.js +1 -0
  90. package/dist/assets/cache-7UEbF3S6.js +1 -0
  91. package/dist/assets/canvas-OSBUSYbY.js +1 -0
  92. package/dist/assets/capture-MMxmbgt1.js +2 -0
  93. package/dist/assets/{catalog-DfIYAG3v.js → catalog-CRekRbKO.js} +1 -1
  94. package/dist/assets/chapters-DcdG3Lu8.js +1 -0
  95. package/dist/assets/{codeContext-goNoLAIr.js → codeContext-CFnI3GLf.js} +1 -1
  96. package/dist/assets/{confirmAdd-CxWIORcu.js → confirmAdd-VLwpBNf_.js} +1 -1
  97. package/dist/assets/contentVault-XKWjF2FB.js +1 -0
  98. package/dist/assets/{dashboardEvents-D1OP4ARB.js → dashboardEvents-CiE91_oj.js} +1 -1
  99. package/dist/assets/{deepen-BhP9OmH3.js → deepen-FZiVqiEc.js} +1 -1
  100. package/dist/assets/effort-CQY4uJMS.js +39 -0
  101. package/dist/assets/empty-D51uhW0E.js +1 -0
  102. package/dist/assets/explode-niun7Zqc.js +15 -0
  103. package/dist/assets/{format-g3dP8OI3.js → format-BkvssSOr.js} +1 -1
  104. package/dist/assets/{generate-COfYQFmT.js → generate-BZobrQPX.js} +1 -1
  105. package/dist/assets/{generateBeats-CtffeoEa.js → generateBeats-Ci99Isyk.js} +1 -1
  106. package/dist/assets/generateCourse-DPL0bO3L.js +28 -0
  107. package/dist/assets/generateLive-DzBVo6Yg.js +24 -0
  108. package/dist/assets/{gesture-Bouqjr3g.js → gesture-BBS5nQEi.js} +2 -2
  109. package/dist/assets/{githubBrowser-BDiuD9dz.js → githubBrowser-CErQprLW.js} +1 -1
  110. package/dist/assets/homeTarget-CDc-r2mj.js +1 -0
  111. package/dist/assets/http-Bqk6nJiH.js +2 -0
  112. package/dist/assets/index-CFE0vqqO.css +1 -0
  113. package/dist/assets/{index-CdUH6Eo9.js → index-yJfYsjAB.js} +4 -4
  114. package/dist/assets/json-J4Y32_i9.js +1 -0
  115. package/dist/assets/kokoro-DogSQaQB.js +1 -0
  116. package/dist/assets/{ledger-Cv0LBflx.js → ledger-DHS2di3l.js} +1 -1
  117. package/dist/assets/lens-DyGK7Owa.js +1 -0
  118. package/dist/assets/{lib-u95BsX_B.js → lib-Dkb5WBRc.js} +1 -1
  119. package/dist/assets/liveSchema-Z_39HuDI.js +125 -0
  120. package/dist/assets/{loader-ChcXMM9W.js → loader-BPVv7hEn.js} +2 -2
  121. package/dist/assets/{model-CAewjw45.js → model-FR-9md4s.js} +1 -1
  122. package/dist/assets/{neighborhoods-CqECCmo8.js → neighborhoods-B56WegJs.js} +1 -1
  123. package/dist/assets/notes-C-RNIoXo.js +1 -0
  124. package/dist/assets/offers-eBNj_lSP.js +1 -0
  125. package/dist/assets/{openWorld-BHTJM39n.js → openWorld-B4VY6xO7.js} +1 -1
  126. package/dist/assets/{owners-HRBX7JN_.js → owners-CP-4Q59L.js} +1 -1
  127. package/dist/assets/{pen-DtEW1xf4.js → pen-UKrUHlDA.js} +1 -1
  128. package/dist/assets/{penStrokes-DlHnO9xE.js → penStrokes-CTC3AYiz.js} +1 -1
  129. package/dist/assets/{perfProbe-DaLsQQBb.js → perfProbe-q5Gt55We.js} +1 -1
  130. package/dist/assets/{pin-BcKMUOiV.js → pin-BReqt-Wx.js} +1 -1
  131. package/dist/assets/{planTracker-BwoKEftp.js → planTracker-BA-x4jbw.js} +1 -1
  132. package/dist/assets/{portal-BIN_aqvw.js → portal-XWyi6FIz.js} +1 -1
  133. package/dist/assets/prewarm-DOqg5zPk.js +1 -0
  134. package/dist/assets/providers-CPhoN8j0.js +1 -0
  135. package/dist/assets/quietHours-kEvnJP2S.js +1 -0
  136. package/dist/assets/{ready-yBSGJubb.js → ready-_sg3IJkE.js} +1 -1
  137. package/dist/assets/{registry-DdgeK4fY.js → registry-B7zPuTCI.js} +1 -1
  138. package/dist/assets/{registry-BFQQpjO2.js → registry-BB0UFcJi.js} +1 -1
  139. package/dist/assets/registry-BQuygaKz.js +1 -0
  140. package/dist/assets/{registry-Bl2qfp5V.js → registry-Bjf2Ggs6.js} +1 -1
  141. package/dist/assets/{registry-CE1T0z9x.js → registry-BmjYillB.js} +1 -1
  142. package/dist/assets/{registry-DGNSqTxE.js → registry-BodYWiga.js} +1 -1
  143. package/dist/assets/{registry-Dt0wu9rC.js → registry-BvtWVDCw.js} +1 -1
  144. package/dist/assets/{registry-BdHj_oIs.js → registry-C3bIc5Kp.js} +1 -1
  145. package/dist/assets/{registry-C8FuGbOr.js → registry-CQ0bMOV_.js} +1 -1
  146. package/dist/assets/{registry-CvylL2BN.css → registry-CmWPyj7Q.css} +1 -1
  147. package/dist/assets/{registry-CcHxIYQN.js → registry-CnDAxBcl.js} +1 -1
  148. package/dist/assets/{registry-BDXwUn3i.js → registry-CvtHBjkb.js} +1 -1
  149. package/dist/assets/{registry-Dd1lcXrO.js → registry-Cz5cZREW.js} +2 -2
  150. package/dist/assets/registry-DTNUXJuV.js +1 -0
  151. package/dist/assets/{registry-DdVZGvkL.js → registry-Di1fTdpi.js} +1 -1
  152. package/dist/assets/registry-GxnzELw0.js +1 -0
  153. package/dist/assets/{registry-Cgo4C0ux.js → registry-JRteQJcE.js} +1 -1
  154. package/dist/assets/registry-MwJlqlFZ.js +1 -0
  155. package/dist/assets/{registry-B53EEn8S.js → registry-YrewlFlo.js} +1 -1
  156. package/dist/assets/{registry-qRfnKTt4.js → registry-uiAoJKXu.js} +1 -1
  157. package/dist/assets/{relate-CqYpFpsO.js → relate-CsRMEWBw.js} +1 -1
  158. package/dist/assets/{replay-NognvQfM.js → replay-BlrkSDMO.js} +1 -1
  159. package/dist/assets/{run-CwMSPOps.js → run-BVgCc5Xi.js} +1 -1
  160. package/dist/assets/{run-DCQrxgHA.js → run-CW67JOGe.js} +1 -1
  161. package/dist/assets/{run-CuHaB8wF.js → run-DqsfL9JC.js} +1 -1
  162. package/dist/assets/{select-Dp-OeZfq.js → select-BuqyXI8k.js} +1 -1
  163. package/dist/assets/sentenceCase-CLDiNB0f.js +1 -0
  164. package/dist/assets/shard070-BmNyRhxw.js +1 -0
  165. package/dist/assets/spokenText-Dy-GZvZV.js +1 -0
  166. package/dist/assets/store-C9s8Bfz0.js +1 -0
  167. package/dist/assets/store-CgA7mKy1.js +1 -0
  168. package/dist/assets/store-D16dGt7I.js +1 -0
  169. package/dist/assets/{store-BWLbFXiY.js → store-DqOaVRLn.js} +1 -1
  170. package/dist/assets/store-gfPI5TVE.js +1 -0
  171. package/dist/assets/useDashboardLoop-CA3LNVME.js +5 -0
  172. package/dist/assets/{useDashboards-lgQnk2Al.js → useDashboards-B-EjE8FH.js} +1 -1
  173. package/dist/assets/{useLedger-1WVXef68.js → useLedger-D4cXEwI0.js} +1 -1
  174. package/dist/assets/useLiveConfig-CvOQTr0s.js +1 -0
  175. package/dist/assets/useStudy-70Iz4ZVn.js +1 -0
  176. package/dist/assets/validate-MQG0EcTD.js +4 -0
  177. package/dist/assets/walkSync-BfK0U5vB.js +1 -0
  178. package/dist/fonts/LICENSE.txt +2 -0
  179. package/dist/fonts/PROVENANCE.md +1 -0
  180. package/dist/fonts/caveat-var-latin.woff2 +0 -0
  181. package/dist/fonts/fonts.css +10 -0
  182. package/dist/index.html +6 -2
  183. package/dist/legal/PRIVACY.md +9 -2
  184. package/dist/legal/SECURITY.md +1 -1
  185. package/dist/legal/TERMS.md +12 -4
  186. package/dist/legal/TRADEMARKS.md +3 -1
  187. package/docs/media/living-answer.jpg +0 -0
  188. package/package.json +1 -1
  189. package/dist/assets/AnnotationLayer-BsAcAd59.js +0 -0
  190. package/dist/assets/AnnotationLayer-ClU-e6qL.css +0 -1
  191. package/dist/assets/BriefingPlayer-74mRKyjl.js +0 -1
  192. package/dist/assets/ConversationVideoStudio-Df892wqs.js +0 -1
  193. package/dist/assets/CourseLessonReader-COmTQdSK.css +0 -1
  194. package/dist/assets/CourseLessonReader-DKQimh2S.js +0 -2
  195. package/dist/assets/CoursesApp-LeqL6dWT.js +0 -2
  196. package/dist/assets/DashboardDetail-2XL-J4rS.js +0 -2
  197. package/dist/assets/DashboardLoopGate-B95S4oKR.js +0 -2
  198. package/dist/assets/DashboardLoopRuntime-Wzk85QXi.js +0 -1
  199. package/dist/assets/DashboardsApp-ZGuT2QBi.js +0 -2
  200. package/dist/assets/DeepZoomApp-CPOsar8c.js +0 -37
  201. package/dist/assets/DelegatePanel-BkTtUMSl.js +0 -33
  202. package/dist/assets/ExportModal-D4WpAg2c.css +0 -1
  203. package/dist/assets/FeatureUseNotice-pQe4YHgJ.js +0 -1
  204. package/dist/assets/GalleryApp-CCLYcEqn.js +0 -1
  205. package/dist/assets/LegalApp-CpblxmmB.js +0 -1
  206. package/dist/assets/Library-CVj7R6F4.js +0 -1
  207. package/dist/assets/LiveApp-CSbjhgzM.js +0 -79
  208. package/dist/assets/LiveApp-CziqEsOb.css +0 -1
  209. package/dist/assets/LiveSettings-B4T6x41n.js +0 -6
  210. package/dist/assets/PresentationDeck-oEd6TXdN.js +0 -1
  211. package/dist/assets/PrismApp-Bju264hL.js +0 -2
  212. package/dist/assets/PrismBriefingPlayer-BY0RREUu.js +0 -2
  213. package/dist/assets/PrismOverlay-BwnF4BEn.css +0 -1
  214. package/dist/assets/PrismOverlay-DOWyOUVW.js +0 -105
  215. package/dist/assets/PrismWorkbench-9RonO2uv.js +0 -1
  216. package/dist/assets/ReplayCard-BnX73r9n.js +0 -2
  217. package/dist/assets/ReplayOverlay-B-Ok0mEs.js +0 -1
  218. package/dist/assets/ShareModal-Mo-dkgAZ.js +0 -2
  219. package/dist/assets/SynthesisApp-6W04mrMU.js +0 -2
  220. package/dist/assets/SynthesisOverlay-DDyFFiO8.js +0 -66
  221. package/dist/assets/TopicCanvas-CkqP92SC.js +0 -2
  222. package/dist/assets/WorldOverlay-D7ay5y4D.css +0 -1
  223. package/dist/assets/WorldOverlay-DeVpS8HE.js +0 -2
  224. package/dist/assets/annotationAuto-B2UdfJNj.js +0 -1
  225. package/dist/assets/annotationReel-K2FYv-3B.js +0 -1
  226. package/dist/assets/backup-CtEvuZoL.js +0 -1
  227. package/dist/assets/cache-CvbSI-pr.js +0 -1
  228. package/dist/assets/canvas-Ct-O9Jok.js +0 -1
  229. package/dist/assets/capture-CgaD86-q.js +0 -2
  230. package/dist/assets/chapters-CIvdCeBC.js +0 -1
  231. package/dist/assets/contentVault-xfUwSJ3i.js +0 -1
  232. package/dist/assets/effort-Bqti44UZ.js +0 -39
  233. package/dist/assets/empty-BO1NC9qY.js +0 -1
  234. package/dist/assets/explode-CPnvJiTg.js +0 -15
  235. package/dist/assets/friendlyAsk-BBdRZIar.js +0 -1
  236. package/dist/assets/generateCourse-BldPpgdh.js +0 -28
  237. package/dist/assets/generateLive-D5M8v38b.js +0 -24
  238. package/dist/assets/homeTarget-CwFsJYwb.js +0 -1
  239. package/dist/assets/http-Lar_UMKb.js +0 -2
  240. package/dist/assets/index-BIUYTk1W.css +0 -1
  241. package/dist/assets/json-B0N3XRZU.js +0 -1
  242. package/dist/assets/kokoro-D15HDMcP.js +0 -1
  243. package/dist/assets/lens-ChFJD9il.js +0 -1
  244. package/dist/assets/liveSchema-B8Y9HZxd.js +0 -100
  245. package/dist/assets/notes-BG5pIVAJ.js +0 -1
  246. package/dist/assets/prewarm-CyvSJKv4.js +0 -1
  247. package/dist/assets/providers-0DthJW_I.js +0 -1
  248. package/dist/assets/quietHours-D1nboK5q.js +0 -1
  249. package/dist/assets/registry-BQzvA61G.js +0 -1
  250. package/dist/assets/registry-CPImC7mO.js +0 -1
  251. package/dist/assets/registry-DPBJYRmC.js +0 -1
  252. package/dist/assets/registry-QbArAJKB.js +0 -1
  253. package/dist/assets/shard070-Dm9m2a5U.js +0 -1
  254. package/dist/assets/spokenText-C88IQJ0M.js +0 -1
  255. package/dist/assets/store-Ba9vzL4H.js +0 -1
  256. package/dist/assets/store-BwyOArJl.js +0 -1
  257. package/dist/assets/store-D-f8ZuaK.js +0 -1
  258. package/dist/assets/store-ruEsXJjU.js +0 -1
  259. package/dist/assets/useDashboardLoop-C3iCNS8X.js +0 -5
  260. package/dist/assets/useLiveConfig-B4CmBiAK.js +0 -1
  261. package/dist/assets/useStudy-CwCIyiTb.js +0 -1
  262. package/dist/assets/validate-sGUCmPAs.js +0 -4
  263. package/dist/assets/walkSync-DC9iE0BX.js +0 -1
  264. /package/dist/assets/{BriefingPlayer-DHV4vMga.css → PrismBriefingPlayer-DHV4vMga.css} +0 -0
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/lens-ChFJD9il.js","assets/display-CAb_PiGv.js","assets/facts-BUGuVUIc.js","assets/types-DuEbJpIA.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{a,i as o,s}from"./spokenText-C88IQJ0M.js";import{i as c,n as l,t as u}from"./loader-ChcXMM9W.js";import{t as d}from"./useFocusTrap-CJmpNZv2.js";import{r as f,t as p}from"./useSpatialCanvas-CfmZOXXP.js";import{i as m}from"./format-q0LwBjID.js";import{a as h,i as g,n as _,r as v}from"./scale-Bcgfo6Hp.js";import{t as y}from"./spreadLabels-CQ8hufvK.js";import{a as b,i as x,n as S,t as C}from"./display-CAb_PiGv.js";import{t as w}from"./types-C42I77wh.js";import{r as T,t as E}from"./sourceHost-BV3t2XDb.js";import{r as D}from"./stepDriver-DwjFet6U.js";import{c as O,l as k,o as A,u as j}from"./walkSync-DC9iE0BX.js";import{n as M}from"./emphasize-BqCIst-B.js";import{c as N,s as P,t as F}from"./validate-sGUCmPAs.js";import{n as I,s as L}from"./receipts-D7zveV-I.js";import{n as R,r as z}from"./value-Dx7DZob4.js";import{t as B}from"./types-DuEbJpIA.js";import{n as V,t as H}from"./engine-BiM6INsW.js";var U=e(),W=t(),G=n();function ee(e){return e.kind}var K=.33,te=.1,q=.005;function ne(e,t){if(!Number.isFinite(e)||!Number.isFinite(t))return`would barely change`;let n=Math.abs(e)>1e-9?Math.abs(e):1,r=(t-e)/n,i=Math.abs(r);if(i<=q)return`would barely change`;let a=r>0?`rise`:`fall`;return i>=K?`would ${a} meaningfully`:i>=te?`would ${a} somewhat`:`would ${a} slightly`}var re=.6;function ie(e){if(!Number.isFinite(e))return null;let t=e-1,n=Math.abs(t);if(n<=.005)return null;let r=t>0?`stronger`:`weaker`;return n>=re?`much ${r}`:n>=K?r:`slightly ${r}`}function ae(e){let t=[];for(let n of e?.points??[]){let e=P(n.t);e===null||!Number.isFinite(n.value)||t.push({t:e,v:n.value})}return t.sort((e,t)=>e.t-t.t)}function oe(e,t){let n=e.date?P(e.date.t):null;if(n!==null){let t=e.date?.until?P(e.date.until):null;return t!==null&&t>n?{start:n,end:t}:{start:n}}if(t.length===0)return null;let r=t[0].t,i=t[t.length-1].t;return i>r?{start:r,end:i}:{start:r}}function se(e){return e.filter(e=>e.from!==e.to)}function ce(e){return se(e).map((e,t)=>({id:e.id??`${e.from}->${e.to}#${t}`,from:e.from,to:e.to,sign:e.sign,...e.relation===void 0?{}:{kind:e.relation},...typeof e.weight==`number`?{weight:e.weight}:{},...e.provisional?{provisional:!0}:{}}))}function le(e){let t=[],n=(e,r,i=0)=>{if(i>1)return;let a=ae(e.series),o=e.unit??e.series?.unit,s=oe(e,a);t.push({id:e.id,label:e.label,role:e.role,depth:e.depth,tier:e.tier,...e.value===void 0?{}:{value:e.value},...o===void 0?{}:{unit:o},...a.length>0?{series:a}:{},...s?{date:s}:{},...s&&e.date&&w(e.date.tier??`T0`)?{dateGrounded:!0}:{},...e.domain===void 0?{}:{domain:e.domain},...r===void 0?{}:{parentId:r}});for(let t of e.children??[])n(t,e.id,i+1)};for(let t of e.nodes)n(t);return{nodes:t,edges:ce(e.edges),outcomeId:e.outcomeId}}var ue={w:1090,h:650},de=1.4,fe=86*de;160*de;var pe=116*de,me=9/(11*de),J=e=>String(Math.round(e*100)/100),he=e=>e&&/^[a-z-]{1,24}$/.test(e)?` morph-edge--rel-${e}`:``,ge=525949.2*60*1e3,Y=e=>1970+e/ge,_e=e=>(e-1970)*ge,ve=6e4,ye=60*ve,be={minute:ve,hour:ye,day:24*ye,month:ge/12},xe=[{grain:`minute`,n:1},{grain:`minute`,n:5},{grain:`minute`,n:10},{grain:`minute`,n:15},{grain:`minute`,n:30},{grain:`hour`,n:1},{grain:`hour`,n:2},{grain:`hour`,n:3},{grain:`hour`,n:6},{grain:`hour`,n:12},{grain:`day`,n:1},{grain:`day`,n:2},{grain:`day`,n:5},{grain:`day`,n:10},{grain:`month`,n:1},{grain:`month`,n:2},{grain:`month`,n:3},{grain:`month`,n:6}],X=3,Se=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],Ce=64;function we(e){let t=new Date(0);return t.setUTCFullYear(Math.floor(e/12),(e%12+12)%12,1),t.setUTCHours(0,0,0,0),t.getTime()}function Te(e,t,n){if(t.grain===`month`){let r=new Date(e),i=Math.floor((r.getUTCFullYear()*12+r.getUTCMonth())/t.n)*t.n,a=we(i);return n&&a<e?we(i+t.n):a}let r=be[t.grain]*t.n,i=Math.floor(e/r)*r;return n&&i<e?i+r:i}function Ee(e,t){let n=new Date(e);if(!Number.isFinite(n.getTime()))return String(Math.round(Y(e)));let r=`${Se[n.getUTCMonth()]} ${n.getUTCFullYear()}`;if(t===`month`)return r;let i=`${n.getUTCDate()} ${r}`;if(t===`day`||n.getUTCHours()===0&&n.getUTCMinutes()===0)return i;let a=e=>String(e).padStart(2,`0`);return`${a(n.getUTCHours())}:${a(n.getUTCMinutes())}`}function De(e,t){if(t.grain!==`month`)return e+be[t.grain]*t.n;let n=new Date(e);return we(n.getUTCFullYear()*12+n.getUTCMonth()+t.n)}function Oe(e,t,n){let r=Te(_e(e),n,!1),i=Te(_e(t),n,!0),a=[];for(let e=r;e<=i&&a.length<Ce;e=De(e,n))a.push({year:Y(e),text:Ee(e,n.grain)});return{domain:[Y(r),Y(i)],ticks:a}}function ke(e,t,n){let r=Math.max(1,Math.round(v(t-e,n))),i=Math.floor(e/r)*r,a=Math.ceil(t/r)*r,o=[];for(let e=i;e<=a&&o.length<Ce;e+=r)o.push({year:e,text:String(e)});return{domain:[i,a],ticks:o}}function Ae(e,t,n=6){let[r,i]=e<t?[e,t]:[e-.5,t+.5];if(i-r>=X)return ke(r,i,n);let a=(i-r)*ge/n,o=xe[xe.length-1],s=1/0;for(let e of xe){let t=Math.abs(Math.log(be[e.grain]*e.n/a));t<s&&(s=t,o=e)}return Oe(r,i,o)}var je=8,Z=12,Me=16,Ne=6,Pe=12+Math.ceil(15.525*de);function Q(e,t,n,r=ue){let i=new Map;if(e.length===0)return{positions:i,band:null,bbox:t};let a=pe+Me,o=44*de+Ne,s=Math.max(t.w,r.w),c=Math.max(1,Math.floor((s-24+Me)/a)),l=Math.min(e.length,c),u=Math.ceil(e.length/c),d=l*pe+(l-1)*Me,f={id:`shelf`,x:t.x,y:t.y+t.h+je,w:Math.max(t.w,d+24),h:Pe+Ne+u*o-Ne+Z,className:`morph-shelf`,label:n};return e.forEach((e,t)=>{i.set(e.id,{x:f.x+Z+t%c*a,y:f.y+Pe+Ne+Math.floor(t/c)*o,w:116,h:44,face:`entry`,shelved:!0})}),{positions:i,band:f,bbox:{x:t.x,y:t.y,w:Math.max(t.w,f.w),h:f.y+f.h-t.y}}}var Fe=440,Ie=2,Le=1.25,$=320;function Re(e){if(!(e===void 0||!Number.isFinite(e))){if(e<.995)return`weaker`;if(e>1.005)return`stronger`}}function ze(){let e=(0,W.c)(5),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,G.jsx)(`marker`,{id:`mv-arrow`,className:`mv-marker mv-marker-up`,viewBox:`0 0 10 10`,refX:`9`,refY:`5`,markerUnits:`userSpaceOnUse`,markerWidth:13,markerHeight:13,orient:`auto`,children:(0,G.jsx)(`path`,{d:`M0.5 1 L9.5 5 L0.5 9 Z`})}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,G.jsx)(`marker`,{id:`mv-arrow-damp`,className:`mv-marker mv-marker-down`,viewBox:`0 0 10 10`,refX:`8`,refY:`5`,markerUnits:`userSpaceOnUse`,markerWidth:17,markerHeight:17,orient:`auto`,children:(0,G.jsx)(`path`,{d:`M8 0.6 L8 9.4`})}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,G.jsx)(`marker`,{id:`mv-arrow-open`,className:`mv-marker mv-marker-open`,viewBox:`0 0 10 10`,refX:`9`,refY:`5`,markerUnits:`userSpaceOnUse`,markerWidth:13,markerHeight:13,orient:`auto`,children:(0,G.jsx)(`path`,{d:`M1 1.4 L9 5 L1 8.6 Z`})}),e[2]=r):r=e[2];let i;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,G.jsx)(`marker`,{id:`mv-arrow-ring`,className:`mv-marker mv-marker-ring`,viewBox:`0 0 10 10`,refX:`7.4`,refY:`5`,markerUnits:`userSpaceOnUse`,markerWidth:13,markerHeight:13,orient:`auto`,children:(0,G.jsx)(`circle`,{cx:`5`,cy:`5`,r:`3`})}),e[3]=i):i=e[3];let a;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,G.jsxs)(`defs`,{children:[t,n,r,i,(0,G.jsx)(`marker`,{id:`mv-dot`,className:`mv-marker mv-marker-dot`,viewBox:`0 0 10 10`,refX:`5`,refY:`5`,markerUnits:`userSpaceOnUse`,markerWidth:9,markerHeight:9,orient:`auto`,children:(0,G.jsx)(`circle`,{cx:`5`,cy:`5`,r:`2.6`})})]}),e[4]=a):a=e[4],a}function Be(e,t){let n=(0,W.c)(5),r;n[0]===e.current?r=n[1]:(r=()=>{let t=e.current;if(!t||window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches)return;let n=t.querySelectorAll(`[data-draw]:not(.m-draw-path):not([data-drawn])`),r=Array.from(n,He);n.forEach((e,t)=>{let n=r[t];n!==null&&(e.style.setProperty(`--path-len`,`${n}px`),e.style.setProperty(`--delay`,`${Fe}ms`),e.classList.add(`m-draw-path`))});let i=Ve;return t.addEventListener(`animationend`,i),()=>t.removeEventListener(`animationend`,i)},n[0]=e.current,n[1]=r);let i;n[2]!==t||n[3]!==e?(i=[e,t],n[2]=t,n[3]=e,n[4]=i):i=n[4],(0,U.useEffect)(r,i)}function Ve(e){if(e.animationName!==`mavea-draw`)return;let t=e.target;t.classList.remove(`m-draw-path`),t.style.removeProperty(`--path-len`),t.style.removeProperty(`--delay`),t.dataset.drawn=``}function He(e){return typeof e.getTotalLength==`function`?e.getTotalLength():null}function Ue(e){let t=(0,W.c)(33),{chrome:n,bbox:r,exiting:i,onSettle:a}=e,o=(0,U.useRef)(null);Be(o,n.paths);let s=i?``:void 0,c=i?!0:void 0,l=r.w,u=r.h,d=`${r.x} ${r.y} ${r.w} ${r.h}`,f;t[0]===n.bands?f=t[1]:(f=n.bands.map(Ge),t[0]=n.bands,t[1]=f);let p;t[2]===n.paths?p=t[3]:(p=n.paths.map(We),t[2]=n.paths,t[3]=p);let m;t[4]!==r.h||t[5]!==r.w||t[6]!==d||t[7]!==f||t[8]!==p?(m=(0,G.jsxs)(`svg`,{ref:o,className:`mv-chrome-svg`,width:l,height:u,viewBox:d,"aria-hidden":`true`,children:[f,p]}),t[4]=r.h,t[5]=r.w,t[6]=d,t[7]=f,t[8]=p,t[9]=m):m=t[9];let h;if(t[10]!==r.x||t[11]!==r.y||t[12]!==n.bands){let e;t[14]!==r.x||t[15]!==r.y?(e=e=>e.label===void 0?null:(0,G.jsx)(`div`,{className:`mv-shelf-label`,style:{left:e.x-r.x+12,top:e.y-r.y+12},children:e.label},`${e.id}:label`),t[14]=r.x,t[15]=r.y,t[16]=e):e=t[16],h=n.bands.map(e),t[10]=r.x,t[11]=r.y,t[12]=n.bands,t[13]=h}else h=t[13];let g;if(t[17]!==r.x||t[18]!==r.y||t[19]!==n.labels){let e;t[21]!==r.x||t[22]!==r.y?(e=e=>(0,G.jsx)(`div`,{className:`mv-chrome-label ${e.className}`,"data-anchor":e.anchor??`start`,style:{left:e.x-r.x,top:e.y-r.y},children:e.text},e.id),t[21]=r.x,t[22]=r.y,t[23]=e):e=t[23],g=n.labels.map(e),t[17]=r.x,t[18]=r.y,t[19]=n.labels,t[20]=g}else g=t[20];let _;t[24]!==g||t[25]!==h?(_=(0,G.jsxs)(`div`,{className:`mv-chrome-labels`,children:[h,g]}),t[24]=g,t[25]=h,t[26]=_):_=t[26];let v;return t[27]!==a||t[28]!==s||t[29]!==_||t[30]!==c||t[31]!==m?(v=(0,G.jsxs)(`div`,{className:`mv-chrome`,"data-exiting":s,onTransitionEnd:a,"aria-hidden":c,children:[m,_]}),t[27]=a,t[28]=s,t[29]=_,t[30]=c,t[31]=m,t[32]=v):v=t[32],v}function We(e){return(0,G.jsx)(`path`,{className:e.className,d:e.d,fill:`none`,"data-draw":e.draw?``:void 0},e.id)}function Ge(e){return(0,G.jsx)(`rect`,{className:`mv-band ${e.className}`,x:e.x,y:e.y,width:e.w,height:e.h,rx:12},e.id)}function Ke(e){if(e instanceof Element)return e.closest(`.mv-node`)?.dataset.id}var qe=(0,U.memo)(function(e){let t=(0,W.c)(49),{nodes:n,edges:r,layout:i,exiting:a,settleExit:o,activate:s,lod:c,renderFace:l,onNodeClick:u,onEdgeClick:d,selectedId:f,litEdgeId:p}=e,m=(0,U.useRef)(null);Be(m,i.edgePaths);let{bbox:h}=i,g;if(t[0]!==r||t[1]!==n){let e=new Map(n.map(Ye));g=new Map;for(let t of r){let n=e.get(t.from);n!==void 0&&Number.isFinite(n)&&g.set(t.id,n)}t[0]=r,t[1]=n,t[2]=g}else g=t[2];let _=g,v;t[3]!==a||t[4]!==o?(v=a&&(0,G.jsx)(Ue,{chrome:a.layout.chrome,bbox:a.layout.bbox,exiting:!0,onSettle:()=>o(a.token)},a.token),t[3]=a,t[4]=o,t[5]=v):v=t[5];let y;t[6]!==h||t[7]!==i.chrome||t[8]!==i.rep?(y=(0,G.jsx)(Ue,{chrome:i.chrome,bbox:h},i.rep),t[6]=h,t[7]=i.chrome,t[8]=i.rep,t[9]=y):y=t[9];let b=h.w,x=h.h,S=`${h.x} ${h.y} ${h.w} ${h.h}`,C;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,G.jsx)(ze,{}),t[10]=C):C=t[10];let w;if(t[11]!==_||t[12]!==i.edgePaths||t[13]!==p||t[14]!==d){let e;t[16]!==_||t[17]!==p||t[18]!==d?(e=e=>(0,G.jsxs)(`g`,{className:`mv-edge-g`,"data-lit":p===e.id?``:void 0,"data-shift":Re(_.get(e.id)),style:_.has(e.id)?{"--mv-shift":_.get(e.id)}:void 0,onClick:d?()=>d(e.id):void 0,children:[d&&(0,G.jsx)(`path`,{className:`mv-edge-hit`,d:e.d,fill:`none`}),(0,G.jsx)(`path`,{className:e.className,d:e.d,fill:`none`,"data-draw":``,style:e.width===void 0?void 0:{"--mv-edge-w":e.width}})]},e.id),t[16]=_,t[17]=p,t[18]=d,t[19]=e):e=t[19],w=i.edgePaths.map(e),t[11]=_,t[12]=i.edgePaths,t[13]=p,t[14]=d,t[15]=w}else w=t[15];let T;t[20]!==h.h||t[21]!==h.w||t[22]!==S||t[23]!==w?(T=(0,G.jsxs)(`svg`,{ref:m,className:`mv-edges`,width:b,height:x,viewBox:S,"aria-hidden":`true`,children:[C,w]}),t[20]=h.h,t[21]=h.w,t[22]=S,t[23]=w,t[24]=T):T=t[24];let E;if(t[25]!==s||t[26]!==h.x||t[27]!==h.y||t[28]!==i.positions||t[29]!==c||t[30]!==n||t[31]!==u||t[32]!==l||t[33]!==f){let e;t[35]!==s||t[36]!==h.x||t[37]!==h.y||t[38]!==i.positions||t[39]!==c||t[40]!==u||t[41]!==l||t[42]!==f?(e=(e,t)=>{let n=i.positions.get(e.id);if(!n)return null;let r={"--nx":`${n.x+n.w/2-h.x}px`,"--ny":`${n.y+n.h/2-h.y}px`,"--mv-i":t,...e.shift===void 0?{}:{"--mv-shift":e.shift}},a=u!==void 0&&!n.folded,o=l?.(e,`entry`);return(0,G.jsxs)(`div`,{className:`mv-node`,"data-id":e.id,"data-role":e.role,"data-tier":e.tier,"data-domain":e.domain,"data-series":e.series?.length?``:void 0,"data-face":n.face,"data-shelved":n.shelved?``:void 0,"data-folded":n.folded?``:void 0,"data-shift":Re(e.shift),"data-selected":f===e.id?``:void 0,"data-lod":c,style:r,"aria-hidden":n.folded?!0:void 0,role:a?`button`:void 0,tabIndex:a?0:void 0,onClick:a?()=>s(e):void 0,onKeyDown:a?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),u?.(e))}:void 0,children:[(0,G.jsxs)(`div`,{className:`mv-face mv-face-card`,children:[(0,G.jsx)(`span`,{className:`mv-label`,children:e.label}),(0,G.jsxs)(`span`,{className:`mv-card-foot`,children:[e.domain!==void 0&&(0,G.jsx)(`span`,{className:`mv-domain`,title:e.domain,"aria-label":e.domain}),e.value!==void 0&&(0,G.jsxs)(`span`,{className:`mv-value`,children:[e.value.toLocaleString(),e.unit??``]}),l?.(e,`card`),e.tier!==void 0&&(0,G.jsx)(`span`,{className:`mv-tier`,children:e.tier})]})]}),(0,G.jsx)(`div`,{className:`mv-face mv-face-entry`,children:(0,G.jsxs)(`span`,{className:`mv-label`,children:[o,o?` `:null,e.label]})}),(0,G.jsx)(`div`,{className:`mv-face mv-face-mark`,children:l?.(e,`mark`)})]},e.id)},t[35]=s,t[36]=h.x,t[37]=h.y,t[38]=i.positions,t[39]=c,t[40]=u,t[41]=l,t[42]=f,t[43]=e):e=t[43],E=n.map(e),t[25]=s,t[26]=h.x,t[27]=h.y,t[28]=i.positions,t[29]=c,t[30]=n,t[31]=u,t[32]=l,t[33]=f,t[34]=E}else E=t[34];let D;return t[44]!==v||t[45]!==y||t[46]!==T||t[47]!==E?(D=(0,G.jsxs)(G.Fragment,{children:[v,y,T,E]}),t[44]=v,t[45]=y,t[46]=T,t[47]=E,t[48]=D):D=t[48],D});function Je({stage:e,world:t,renderFace:n,onNodeClick:r,onEdgeClick:i,selectedId:a,litEdgeId:o}){let{cam:s,layout:c,exiting:l,lod:u,settleExit:d,morphing:f,settle:p}=e,{viewportRef:m,zoomAtClient:h,pan:g}=s,[_,v]=(0,U.useState)(!1),y=(0,U.useRef)(new Map),b=(0,U.useRef)(0),x=(0,U.useRef)(!1),S=(0,U.useRef)(!1),C=(0,U.useRef)(!1),w=(0,U.useRef)({x:0,y:0}),T=(0,U.useCallback)((t,n,r,i)=>{if(x.current){h(t,n,r);return}e.pinch(t,n,r,i)!==`zoom`&&(x.current=!0)},[e,h]),E=(0,U.useRef)(T);E.current=T,(0,U.useEffect)(()=>{let e=m.current;if(!e)return;let t,n=e=>{if(e.preventDefault(),p(),e.ctrlKey){E.current(Math.exp(-e.deltaY/100),e.clientX,e.clientY,Ke(e.target)),clearTimeout(t),t=setTimeout(()=>{x.current=!1},$);return}h(e.deltaY<0?1.12:1/1.12,e.clientX,e.clientY)};return e.addEventListener(`wheel`,n,{passive:!1}),()=>{clearTimeout(t),e.removeEventListener(`wheel`,n)}},[m,h,p]);let D=()=>{let[e,t]=[...y.current.values()];return{x:(e.x+t.x)/2,y:(e.y+t.y)/2,d:Math.hypot(e.x-t.x,e.y-t.y)}},O=(0,U.useCallback)(e=>{if(p(),y.current.set(e.pointerId,{x:e.clientX,y:e.clientY}),y.current.size>=2){e.currentTarget.setPointerCapture(e.pointerId),S.current=!1,v(!1),b.current=0;return}S.current=!0,C.current=!1,v(!0),w.current={x:e.clientX,y:e.clientY}},[p]),k=(0,U.useRef)({dx:0,dy:0}),A=(0,U.useRef)(0),j=(0,U.useCallback)(()=>{A.current!==0&&(cancelAnimationFrame(A.current),A.current=0);let{dx:e,dy:t}=k.current;(e!==0||t!==0)&&(k.current={dx:0,dy:0},g(e,t))},[g]),M=(0,U.useCallback)((e,t)=>{k.current.dx+=e,k.current.dy+=t,A.current===0&&(A.current=requestAnimationFrame(()=>{A.current=0;let e=k.current;k.current={dx:0,dy:0},(e.dx!==0||e.dy!==0)&&g(e.dx,e.dy)}))},[g]);(0,U.useEffect)(()=>()=>cancelAnimationFrame(A.current),[]);let N=(0,U.useCallback)(e=>{let t=y.current;if(!t.has(e.pointerId))return;if(t.set(e.pointerId,{x:e.clientX,y:e.clientY}),t.size>=2){let{x:t,y:n,d:r}=D();if(b.current===0){b.current=r;return}let i=r/b.current;(i>Le||i<1/Le)&&(b.current=r,E.current(i,t,n,Ke(e.target)));return}if(!S.current)return;let n=e.clientX-w.current.x,r=e.clientY-w.current.y;Math.abs(n)+Math.abs(r)>Ie&&!C.current&&(C.current=!0,e.currentTarget.setPointerCapture(e.pointerId)),w.current={x:e.clientX,y:e.clientY},M(n,r)},[M]),P=(0,U.useCallback)(e=>{j(),y.current.delete(e.pointerId),y.current.size<2&&(b.current=0,x.current=!1),y.current.size===0&&(S.current=!1,v(!1)),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId)},[j]),F=(0,U.useCallback)(e=>{C.current||r?.(e)},[r]),I=(0,U.useCallback)(e=>{e.propertyName===`transform`&&p()},[p]),{bbox:L}=c,R={transform:s.transform,width:L.w,height:L.h,"--mv-cam-scale":s.camera.scale};return(0,G.jsx)(`div`,{className:`mv-viewport`,ref:m,"data-panning":_?`true`:void 0,style:{"--mv-cam-scale":s.camera.scale},onPointerDown:O,onPointerMove:N,onPointerUp:P,onPointerCancel:P,children:(0,G.jsx)(`div`,{className:`mv-world`,style:R,"data-morphing":f?``:void 0,onTransitionEnd:I,children:(0,G.jsx)(qe,{nodes:t.nodes,edges:t.edges,layout:c,exiting:l,settleExit:d,activate:F,lod:u,renderFace:n,onNodeClick:r,onEdgeClick:i,selectedId:a,litEdgeId:o})})})}function Ye(e){return[e.id,e.shift]}function Xe(e,t){return e===`in`?`zoom-camera`:t?`ascend`:`zoom-camera`}var Ze=880,Qe=340,$e=468,et=56,tt=26,nt=16,rt=7,it=30*de;function at(e){let t=(e.series??[]).filter(e=>Number.isFinite(e.t)&&Number.isFinite(e.v)).map(e=>({t:Y(e.t),v:e.v})).sort((e,t)=>e.t-t.t);return t.length>0?{node:e,points:t}:null}var ot=e=>at(e)!==null;function st(e,t){let n=e*Math.max(et,(t-1)*it+30)+(e-1)*tt,r=Math.min($e,Math.max(Qe,n)),i=Math.max(it,Math.min(tt,r/(4*e)));return{h:(r-(e-1)*i)/e,gap:i}}function ct(e,t,n){let[r,i]=e===t?_(e,t,n):[e,t],a=v(i-r,n),o=[Math.floor(r/a)*a,Math.ceil(i/a)*a];return{domain:o,ticks:h(o[0]-a*1e-9,o[1],a)}}function lt(e){let t=1/0,n=-1/0,r=new Map;for(let i of e){let e=new Map;for(let a of i.nodes){let i=at(a);if(!i)continue;let o=a.unit??``,s=r.get(o);s||r.set(o,s={lo:1/0,hi:-1/0,marks:0}),e.set(o,(e.get(o)??0)+1);for(let e of i.points)t=Math.min(t,e.t),n=Math.max(n,e.t),s.lo=Math.min(s.lo,e.v),s.hi=Math.max(s.hi,e.v)}for(let[t,n]of e){let e=r.get(t);e.marks=Math.max(e.marks,n)}}if(t===1/0)return null;let i=1;for(let e of r.values())i=Math.max(i,e.marks);let{h:a,gap:o}=st(r.size,i),s=Math.max(2,Math.min(5,Math.round(a/60))),c=[],l=new Map;for(let[e,t]of r){let{domain:n,ticks:r}=ct(t.lo,t.hi,s);l.set(e,c.length),c.push({unit:e,domain:n,ticks:r,top:c.length*(a+o),h:a})}let u=Ae(t,n);return{x:u.domain,xTicks:u.ticks,bands:c,bandOf:l,height:c.length*a+(c.length-1)*o}}function ut(e,t){let n=new Map,r=new Map;for(let t of e){let e=r.get(t.band);e?e.push(t):r.set(t.band,[t])}for(let[e,i]of r){let{top:r,bottom:a}=t(e);i.sort((e,t)=>e.x-t.x||e.y-t.y||e.id.localeCompare(t.id));let o=[],s=()=>{if(o.length!==0){for(let[e,t]of y(o,{gap:it,top:r,bottom:a}))n.set(e,t);o=[]}};for(let e of i)o.length>0&&e.x-o[o.length-1].x>=it&&s(),o.push(e);s()}return n}function dt(e,t,n){let r=[],i=[];for(let n of e.nodes){let e=at(n);e&&t?r.push(e):i.push(n)}let a=new Map,o={bands:[],paths:[],labels:[]},s=1/0,c=-1/0,l=56;if(r.length>0&&t){let e=g(t.x,[56,56+Ze]),n=t.bands.map(e=>g(e.domain,[56+e.top+e.h,56+e.top])),i=e=>t.bandOf.get(e.unit??``)??0;t.bands.forEach((e,r)=>{let i=n[r];for(let t of e.ticks)o.paths.push({id:`grid:${r}:${t}`,d:`M ${J(56)} ${J(i(t))} L ${J(56+Ze)} ${J(i(t))}`,className:`morph-gridline`}),o.labels.push({id:`ytick:${r}:${t}`,x:46,y:i(t)+4,text:String(t),className:`morph-axis-label`,anchor:`end`}),s=Math.min(s,46-String(t).length*rt);t.bands.length>1&&o.labels.push({id:`unit:${r}`,x:56,y:56+e.top-11,text:e.unit===``?`no unit`:e.unit,className:`morph-axis-label`,anchor:`start`})}),t.xTicks.forEach((n,r)=>{let i=e(n.year);o.labels.push({id:`xtick:${r}`,x:i,y:56+t.height+22,text:n.text,className:`morph-axis-label`,anchor:`middle`});let a=n.text.length*rt/2;s=Math.min(s,i-a),c=Math.max(c,i+a)}),s=Math.min(s,56),c=Math.max(c,56+Ze),l=Math.max(l,56+t.height+28);let u=[...r].sort((e,t)=>e.node.id.localeCompare(t.node.id)),d=u.map(t=>{let r=i(t.node),a=t.points[t.points.length-1];return{id:t.node.id,band:r,x:e(a.t),y:n[r](a.v)}}),f=ut(d,e=>({top:56+t.bands[e].top,bottom:56+t.bands[e].top+t.bands[e].h})),p=new Map,m=new Map;for(let e of d){let t=m.get(e.band);t?t.push(e):m.set(e.band,[e])}t.bands.forEach((e,t)=>{let n=m.get(t);if(n===void 0||n.length===0)return;let r=y(n.map(e=>({id:e.id,y:f.get(e.id)??e.y})),{gap:nt,top:56+e.top+6,bottom:56+e.top+e.h-6});for(let[e,t]of r)p.set(e,t)}),u.forEach((t,r)=>{let{x:i,y:s}=d[r],l=n[d[r].band],u=t.points.map((t,n)=>`${n===0?`M`:`L`} ${J(e(t.t))} ${J(l(t.v))}`).join(` `),m=t.node.id;o.paths.push({id:`series:${m}`,d:u,className:`morph-series`,draw:!0});let h=f.get(t.node.id)??s;Math.abs(h-s)>.01&&o.paths.push({id:`leader:${t.node.id}`,d:`M ${J(i)} ${J(s)} L ${J(i)} ${J(h)}`,className:`morph-tick`}),a.set(m,{x:i-15,y:h-15,w:30,h:30,face:`mark`});let g=i+15+8;o.labels.push({id:`label:${t.node.id}`,x:g,y:(p.get(t.node.id)??h)+4,text:t.node.label,className:`morph-series-label`,anchor:`start`}),c=Math.max(c,g+t.node.label.length*rt)})}let u=Q(i,s===1/0?{x:0,y:0,w:112,h:112}:{x:s-56,y:0,w:c-s+112,h:l+56},`${i.length} with nothing measured over time — the chart cannot plot these`,n);u.band&&o.bands.push(u.band);for(let[e,t]of u.positions)a.set(e,t);return{positions:a,edgePaths:[],chrome:o,bbox:u.bbox}}var ft=(e,t)=>({rep:`chart`,...dt(e,lt([e]),t?.viewport??ue)}),pt=new WeakMap;function mt(e,t){let n=new Set;for(let r of e)r.from===r.to||!t(r)||(n.add(r.from),n.add(r.to));return n}function ht(e){let t=pt.get(e);if(t)return t;let n=mt(e.edges,e=>typeof e.weight==`number`);return pt.set(e,n),n}var gt=340,_t=4,vt=fe+30,yt=3;function bt(e,t){return e.parentId===void 0&&ht(t).has(e.id)}var xt=(e,t)=>{let n=t?.viewport??ue,r=e.nodes.filter(e=>e.parentId===void 0),i=r.filter(t=>bt(t,e)),a=r.filter(t=>!bt(t,e)),o=e.nodes.filter(e=>e.parentId!==void 0),s=new Map,c={bands:[],paths:[],labels:[]},l=[],u=new Set(i.map(e=>e.id)),d=e.edges.filter(e=>e.from!==e.to&&typeof e.weight==`number`&&u.has(e.from)&&u.has(e.to)),f=i.reduce((e,t)=>Math.min(e,t.depth??0),1/0),p=new Map;for(let e of d)p.set(e.from,(p.get(e.from)??0)+(e.weight??0));let m=i.reduce((e,t)=>Math.max(e,Number.isFinite(f)?(t.depth??0)-f:0),0),h=e=>{let t=Number.isFinite(f)?(e.depth??0)-f:0;return m<=0?0:m<_t?t:Math.round(t/m*3)},g=new Map;for(let e of i){let t=h(e),n=g.get(t);n?n.push(e):g.set(t,[e])}for(let e of g.values())e.sort((e,t)=>(p.get(t.id)??0)-(p.get(e.id)??0)||e.id.localeCompare(t.id));let _=Math.max(1,...[...g.values()].map(e=>e.length));for(let[e,t]of g){let n=(_-t.length)*vt/2;t.forEach((t,r)=>{s.set(t.id,{x:56+e*gt,y:56+n+r*vt,w:200,h:64,face:`card`})})}for(let e of d){let t=s.get(e.from),n=s.get(e.to),r=t.x+t.w,i=t.y+t.h/2,a=n.x,o=n.y+n.h/2,c=(r+a)/2,u=Math.min(1,Math.max(0,e.weight??0));l.push({id:e.id,d:`M ${J(r)} ${J(i)} C ${J(c)} ${J(i)} ${J(c)} ${J(o)} ${J(a)} ${J(o)}`,className:`morph-edge morph-ribbon`+he(e.kind),width:yt+u*23})}for(let e of o){let t=(e.parentId===void 0?void 0:s.get(e.parentId))??{x:56,y:56};s.set(e.id,{x:t.x,y:t.y,w:200,h:64,face:`card`,folded:!0})}let v=Q(a,{x:0,y:0,w:112+(Math.max(1,...[...g.keys()].map(e=>e+1))-1)*gt+200,h:112+_*vt},`${a.length} with no measured share — the ribbons cannot size these`,n);for(let[e,t]of v.positions)s.set(e,t);return v.band&&c.bands.push(v.band),{rep:`flow`,positions:s,edgePaths:l,chrome:c,bbox:v.bbox}},St=200;function Ct(e,t=24){let n=e.length;if(n<2)return;let r=e.map(e=>Math.max(e.w,e.h)),i=2*[...r].sort((e,t)=>e-t)[n>>1],a=[];for(let e=0;e<n;e++)r[e]>i&&a.push(e);a.length>n/8&&(a=[]);let o=Array(n).fill(!0);for(let e of a)o[e]=!1;let s=0;for(let e=0;e<n;e++)o[e]&&(s=Math.max(s,r[e]));s=Math.max(s+t,1);let c=(n,r)=>{let i=e[n],a=e[r],o=a.x+a.w/2-(i.x+i.w/2),s=a.y+a.h/2-(i.y+i.h/2);o===0&&s===0&&(o=n-r,s=r-n);let c=(i.w+a.w)/2+t-Math.abs(o),l=(i.h+a.h)/2+t-Math.abs(s);if(c<=0||l<=0)return!1;if(c<=l){let e=c/2*(o<0?-1:1);i.x-=e,a.x+=e}else{let e=l/2*(s<0?-1:1);i.y-=e,a.y+=e}return!0},l=Array(n),u=new Map;for(let t=0;t<St;t++){u.clear();let t=[],r=[],i=[];for(let a=0;a<n;a++){if(!o[a])continue;let n=e[a],c=Math.floor((n.x+n.w/2)/s),d=Math.floor((n.y+n.h/2)/s),f=u.get(c);f===void 0&&(f=new Map,u.set(c,f));let p=f.get(d);p===void 0&&(p=i.length,f.set(d,p),t.push(c),r.push(d),i.push([])),i[p].push(a),l[a]=p}let d=i.map((e,n)=>{let a=[];for(let e=-1;e<=1;e++){let o=u.get(t[n]+e);if(o!==void 0)for(let e=-1;e<=1;e++){let t=o.get(r[n]+e);if(t!==void 0)for(let e of i[t])a.push(e)}}return a.sort((e,t)=>e-t)}),f=Array(i.length).fill(0),p=!1,m=0;for(let e=0;e<n;e++){for(;m<a.length&&a[m]<=e;)m++;if(!o[e]){for(let t=e+1;t<n;t++)c(e,t)&&(p=!0);continue}let t=l[e],r=d[t],i=f[t];for(;i<r.length&&r[i]<=e;)i++;f[t]=i;let s=m;for(;i<r.length||s<a.length;){let t=s>=a.length||i<r.length&&r[i]<a[s]?r[i++]:a[s++];c(e,t)&&(p=!0)}}if(!p)break}}var wt=300,Tt=fe+4,Et=4,Dt=fe+Et,Ot=wt-200,kt=200+Et,At=96,jt=30,Mt=20,Nt=18,Pt=15,Ft=2.5,It=1/1.4,Lt=1.7,Rt=2.6,zt={rows:1,reach:0};function Bt(e,t){let n=e.map(e=>t(e.id).rows).sort((e,t)=>t-e),r=e.map(e=>t(e.id).reach).sort((e,t)=>t-e),i=[0],a=0;for(let e of n)i.push(a+=e);return{size:e.length,rows:a,tallest:i,reaches:r}}function Vt(e,t){let n=[],r=[],i=[],a=[];for(let o of e){let e=Math.max(1,Math.min(o.size,Math.ceil(o.rows/t))),s=Math.ceil(o.size/e),c=Math.ceil(o.size/s);i.push(n.length),a.push(s);for(let e=0;e<c;e++)n.push(o.tallest[Math.min(s,o.size-e*s)]),r.push(200+(o.reaches[e]??0))}return{rows:n,widths:r,start:i,per:a}}function Ht(e,t){let n=[],r=[],i=[];for(let a=0;a<e.rows.length;a++){let o=Math.floor(a/t),s=a%t===0?0:n[a-1]+e.widths[a-1]+Ot;n.push(s),r[o]=Math.max(r[o]??1,e.rows[a]),i[o]=Math.max(i[o]??0,s+e.widths[a])}return{columnX:n,bandRows:r,bandW:i}}var Ut=12;function Wt(e,t){let n=n=>{let r=(t.h-(n-1)*At-112)/n,i=Math.max(2,Math.floor((r-64)/Tt)+1),a=Vt(e,i),o=Math.max(1,Math.ceil(a.rows.length/n)),{bandRows:s,bandW:c}=Ht(a,o),l=200;for(let e of c)l=Math.max(l,e);let u=(n-1)*At;for(let e=0;e<n;e++)u+=((s[e]??1)-1)*Tt+64;return{bands:n,rowCap:i,perBand:o,fit:Math.min(t.w/(l+112),t.h/(u+112)),aspect:l/u}},r=n(1);if(e.length<2||r.fit>=It)return r;let i=r;for(let e=2;e<=Ut;e++){let t=n(e);if(t.fit>=It&&t.aspect<=Ft)return t;if(t.fit>i.fit&&(i=t),t.perBand===1)break}return i}function Gt(e,t,n){let r=Wt(t,n),i=Vt(t,r.rowCap),{columnX:a,bandRows:o}=Ht(i,r.perBand),s=new Map,c=new Map;e.forEach((e,t)=>{s.set(e,i.start[t]),c.set(e,i.per[t])});let l=o.length>0?o:[1],u=[],d=[],f=[],p=0;for(let e of l){let t=(e-1)*Tt+64;u.push(p+t/2),d.push(t),p+=t,f.push(p+At/2),p+=At}return{perBand:r.perBand,columnRows:i.rows,columnX:a,startOf:s,splitOf:c,centreY:u,height:d,gutterY:f}}function Kt(e,t){let n=new Map,r=new Set;for(let t of e)typeof t.depth==`number`&&Number.isFinite(t.depth)?(n.set(t.id,t.depth),r.add(t.id)):n.set(t.id,0);let i=t.edges.filter(e=>e.from!==e.to&&n.has(e.from)&&n.has(e.to)),a=new Map,o=new Map(e.map(e=>[e.id,0]));for(let e of i){let t=a.get(e.from);t===void 0?a.set(e.from,[e.to]):t.push(e.to),o.set(e.to,o.get(e.to)+1)}let s=(e,t)=>r.has(e)?t:t+1,c=e.filter(e=>o.get(e.id)===0).map(e=>e.id),l=new Set;for(let e=0;e<c.length;e++){let t=c[e];l.add(t);let r=n.get(t);for(let e of a.get(t)??[]){let t=s(e,r);t>n.get(e)&&n.set(e,t);let i=o.get(e)-1;o.set(e,i),i===0&&c.push(e)}}if(l.size<e.length){let t=i.filter(e=>!l.has(e.to));for(let r=e.length;r>0;r--){let e=!1;for(let r of t){let t=s(r.to,n.get(r.from));t>n.get(r.to)&&(n.set(r.to,t),e=!0)}if(!e)break}}let u=t.outcomeId;if(u!==void 0&&n.has(u)&&!r.has(u)&&(a.get(u)?.length??0)===0){let e=-1/0;for(let t of n.values())t>e&&(e=t);n.set(u,e)}return n}function qt(e,t){let n=new Map(e.map(e=>[e.id,0])),r=new Map(e.map(e=>[e.id,0])),i=new Map,a=0;for(let o of e)for(let e of t.get(o.id)??[]){if(e===o.id||!n.has(e))continue;let t=i.get(e);t===void 0?i.set(e,[o.id]):t.push(o.id),r.set(o.id,r.get(o.id)+1),a++}if(a===0)return n;let o=e.filter(e=>r.get(e.id)===0).map(e=>e.id);for(let e=0;e<o.length;e++){let t=o[e],a=n.get(t);for(let e of i.get(t)??[]){a+1>n.get(e)&&n.set(e,a+1);let t=r.get(e)-1;r.set(e,t),t===0&&o.push(e)}}return n}function Jt(e,t){let n=new Map,r=new Set,i=[],a=new Set;for(let o of e){if(n.has(o.id))continue;i.length=0,a.clear();let e=o,s=0,c=!1;for(;;){let o=e.parentId===void 0?void 0:t.get(e.parentId);if(o===void 0){n.set(e.id,null);break}if(i.push(e),a.add(e.id),n.has(o.id)){c=r.has(o.id),s=n.get(o.id)??0;break}if(a.has(o.id)){c=!0;break}e=o}if(c)for(let e of i)n.set(e.id,null),r.add(e.id);else for(let e=i.length-1;e>=0;e--)n.set(i[e].id,++s)}return n}function Yt(e,t){let n=new Map(e.nodes.map(e=>[e.id,e])),r=Jt(e.nodes,n),i=e.nodes.filter(e=>r.get(e.id)===null),a=e.nodes.filter(e=>r.get(e.id)!==null).sort((e,t)=>r.get(e.id)-r.get(t.id)||e.id.localeCompare(t.id)),o=t?.expandedIds,s=t?.previous,c=new Map,l=Kt(i,e),u=new Set(i.map(e=>e.id)),d=new Set;for(let e of a){let t=e.parentId;o?.has(t)===!0&&(u.has(t)||d.has(t))&&d.add(e.id)}let f=new Map,p=e=>f.get(e)??zt;for(let e=a.length-1;e>=0;e--){let t=a[e];if(!d.has(t.id))continue;let n=p(t.id),r=f.get(t.parentId);f.set(t.parentId,{rows:(r?.rows??0)+n.rows,reach:Math.max(r?.reach??0,kt+n.reach)})}let m=new Map,h=new Map;for(let e of a){let t=h.get(e.parentId)??0;m.set(e.id,t),h.set(e.parentId,t+p(e.id).rows)}let g=new Map;for(let t of e.edges)!u.has(t.from)||!u.has(t.to)||(g.has(t.to)||g.set(t.to,[]),g.get(t.to).push(t.from));let _=new Map;for(let e of i){let t=l.get(e.id),n=_.get(t);n===void 0?_.set(t,[e]):n.push(e)}let v=[..._.keys()].sort((e,t)=>e-t),y=t?.viewport??ue,b=Gt(v,v.map(e=>Bt(_.get(e),p)),y),x=new Map;for(let e of v){let t=_.get(e),n=qt(t,g),r=t.map((e,t)=>{let r=(g.get(e.id)??[]).map(e=>c.get(e)?.y).filter(e=>e!==void 0);return{n:e,bary:r.length?r.reduce((e,t)=>e+t,0)/r.length:s?.get(e.id)?.y??t*Tt,rank:n.get(e.id)}});r.sort((e,t)=>e.rank-t.rank||e.bary-t.bary||e.n.id.localeCompare(t.n.id));let i=b.startOf.get(e),a=b.splitOf.get(e),o=[],l=[];r.forEach((e,t)=>{let n=Math.floor(t/a);o.push(l[n]??0),l[n]=(l[n]??0)+p(e.n.id).rows}),r.forEach((e,t)=>{let n=Math.floor(t/a),r=i+n,s=Math.floor(r/b.perBand),u=p(e.n.id).rows;x.set(e.n.id,s),c.set(e.n.id,{x:b.columnX[r],y:b.centreY[s]+(o[t]+(u-1)/2-(l[n]-1)/2)*Tt})})}for(let e of a){let t=e.parentId,n=c.get(t);if(x.set(e.id,x.get(t)??0),d.has(e.id)){let r=p(e.id).rows,i=h.get(t);c.set(e.id,{x:n.x+kt,y:n.y+(m.get(e.id)+(r-1)/2-(i-1)/2)*Dt})}else c.set(e.id,{x:n.x,y:n.y})}if(d.size>0){let e=[...i,...a.filter(e=>d.has(e.id))],t=e.map(e=>{let t=c.get(e.id);return{x:t.x-100,y:t.y-fe/2,w:200,h:fe}});Ct(t,Et),e.forEach((e,n)=>{c.set(e.id,{x:t[n].x+100,y:t[n].y+fe/2})});for(let e of a){if(d.has(e.id))continue;let t=c.get(e.parentId);c.set(e.id,{x:t.x,y:t.y})}}let S=1/0,C=1/0,w=-1/0,T=-1/0;for(let e of c.values())S=Math.min(S,e.x-100),C=Math.min(C,e.y-32),w=Math.max(w,e.x+100),T=Math.max(T,e.y+32);let E=c.size===0,D=E?0:56-S,O=E?0:56-C,k=new Map;for(let t of e.nodes){let e=c.get(t.id);k.set(t.id,{x:e.x+D-100,y:e.y+O-32,w:200,h:64,face:`card`,...r.get(t.id)!==null&&!d.has(t.id)?{folded:!0}:{}})}let A=e=>u.has(e)||d.has(e),j=E?56:w+D,M=e.edges.filter(e=>A(e.from)&&A(e.to)).map(e=>{let t=k.get(e.from),n=k.get(e.to),r=x.get(e.from)??0,i=x.get(e.to)??0,a=r===i?-1:Math.max(r,i)-1;return{e,from:t,to:n,gutter:a,vertical:a<0&&n.x<=t.x&&Math.abs(n.y-t.y)>1}}),N=new Map,P=new Map,F=new Map,I=(e,t)=>void e.set(t,(e.get(t)??0)+1);for(let e of M)e.gutter>=0&&I(N,e.gutter),!e.vertical&&(I(P,e.e.to),I(F,e.e.from));let L=new Map,R=new Map,z=new Map,B=(e,t,n)=>e.y+e.h/2+(n-(t-1)/2)*Math.min(Pt,e.h/(t+1)),V=[];for(let{e,from:t,to:n,gutter:r,vertical:i}of M){let a;if(i){let e=t.x+t.w/2,r=n.x+n.w/2,i=n.y>t.y,o=i?t.y+t.h:t.y,s=i?n.y:n.y+n.h,c=(o+s)/2;a=`M ${J(e)} ${J(o)} C ${J(e)} ${J(c)} ${J(r)} ${J(c)} ${J(r)} ${J(s)}`}else{let i=z.get(e.from)??0,o=R.get(e.to)??0;z.set(e.from,i+1),R.set(e.to,o+1);let s=t.x+t.w,c=B(t,F.get(e.from),i),l=n.x,u=B(n,P.get(e.to),o);if(r<0){let e=(s+l)/2;a=`M ${J(s)} ${J(c)} C ${J(e)} ${J(c)} ${J(e)} ${J(u)} ${J(l)} ${J(u)}`}else{let e=N.get(r),t=L.get(r)??0;L.set(r,t+1);let n=Math.min(Nt,(At-32)/Math.max(1,e)),i=b.gutterY[r]+O+(t-(e-1)/2)*n,o=j+jt,d=Math.min(l,56)-jt,f=(o+d)/2;a=`M ${J(s)} ${J(c)} C ${J(o)} ${J(c)} ${J(o)} ${J(i)} ${J(f)} ${J(i)} C ${J(d)} ${J(i)} ${J(d)} ${J(u)} ${J(l)} ${J(u)}`}}V.push({id:e.id,d:a,className:`morph-edge`+he(e.kind)+(e.sign===-1?` morph-edge--damp`:``)+(e.provisional?` morph-edge--provisional`:``)+(r<0?``:` morph-edge--wrap`),...typeof e.weight==`number`&&Number.isFinite(e.weight)?{width:Lt+Math.min(1,Math.max(0,e.weight))*Rt}:{}})}let H=E?{x:0,y:0,w:112,h:112}:{x:0,y:0,w:w-S+112,h:T-C+112};return{positions:k,edgePaths:V,chrome:{bands:E||b.centreY.length<2?[]:b.centreY.map((e,t)=>{let n=Math.max(H.y,e-b.height[t]/2+O-Mt),r=Math.min(H.y+H.h,e+b.height[t]/2+O+Mt);return{id:`reading-band:${t}`,x:56-Mt,y:n,w:j-56+40,h:Math.max(0,r-n),className:`morph-reading-band`}}),paths:[],labels:[]},bbox:H}}var Xt=(e,t)=>({rep:`graph`,...Yt(e,t)}),Zt=920,Qt=16,$t=44+Qt,en=12,tn=8,nn=12;function rn(e){if(!e.date||!Number.isFinite(e.date.start))return null;let t=Y(e.date.start),n=e.date.end;return{node:e,startYear:t,...n!==void 0&&Number.isFinite(n)&&n>e.date.start?{endYear:Y(n)}:{}}}var an=e=>rn(e)!==null;function on(e){let t=1/0,n=-1/0;for(let r of e)for(let e of r.nodes){let r=rn(e);r&&(t=Math.min(t,r.startYear),n=Math.max(n,r.endYear??r.startYear))}return t===1/0?null:Ae(t,n,6)}function sn(e){let t=1;for(;t<e;)t*=2;let n=Array(t*2).fill(1/0),r=0;return(e,i)=>{let a=1;if(n[1]<=i)for(;a<t;)a=n[a*2]<=i?a*2:a*2+1;else a=t+r++;let o=a-t;for(n[a]=e;a>1;)a>>=1,n[a]=Math.min(n[a*2],n[a*2+1]);return o}}function cn(e,t,n){let r=[],i=[];for(let n of e.nodes){let e=rn(n);e&&t?r.push(e):i.push(n)}r.sort((e,t)=>e.startYear-t.startYear||e.node.id.localeCompare(t.node.id));let a=new Map,o={bands:[],paths:[],labels:[]},s=[],c=1/0,l=-1/0,u=56;if(r.length>0&&t){let n=g(t.domain,[56,56+Zt]),i=sn(r.length);for(let e of r){let t=n(e.startYear),r=e.endYear===void 0?t:n(e.endYear),s=e.endYear===void 0?t-80:t,d=Math.min(s,t)-32,f=Math.max(s+160,r)+32,p=56+i(f+nn,d)*$t;a.set(e.node.id,{x:s,y:p,w:160,h:44,face:`entry`}),e.endYear!==void 0&&o.bands.push({id:`period:${e.node.id}`,x:t,y:p-6,w:Math.max(r-t,2),h:56,className:`morph-period`}),c=Math.min(c,d),l=Math.max(l,f),u=Math.max(u,p+44)}let d=u+Qt+en;o.paths.push({id:`axis`,d:`M ${J(56)} ${J(d)} L ${J(56+Zt)} ${J(d)}`,className:`morph-axis`}),t.ticks.forEach((e,t)=>{let r=n(e.year);o.paths.push({id:`tick:${t}`,d:`M ${J(r)} ${J(d)} L ${J(r)} ${J(d+tn)}`,className:`morph-tick`}),o.labels.push({id:`tick-label:${t}`,x:r,y:d+tn+16,text:e.text,className:`morph-axis-label`,anchor:`middle`}),c=Math.min(c,r-e.text.length*3.5),l=Math.max(l,r+e.text.length*3.5)}),c=Math.min(c,56),l=Math.max(l,56+Zt),u=d+tn+20;let f=new Set(r.map(e=>e.node.id));for(let t of e.edges){if(t.from===t.to||!f.has(t.from)||!f.has(t.to))continue;let e=a.get(t.from),n=a.get(t.to),r=e.x+e.w/2,i=n.x+n.w/2,o=e.y,c=n.y,l=Math.min(72,Math.max(20,Math.abs(i-r)*.2));s.push({id:t.id,d:`M ${J(r)} ${J(o)} C ${J(r)} ${J(o-l)} ${J(i)} ${J(c-l)} ${J(i)} ${J(c)}`,className:`morph-edge morph-edge--faint`+he(t.kind)})}}let d=Q(i,c===1/0?{x:0,y:0,w:112,h:112}:{x:c-56,y:0,w:l-c+112,h:u+56},`${i.length} with no date — the timeline cannot place these`,n);d.band&&o.bands.push(d.band);for(let[e,t]of d.positions)a.set(e,t);return{positions:a,edgePaths:s,chrome:o,bbox:d.bbox}}var ln=(e,t)=>({rep:`timeline`,...cn(e,on([e]),t?.viewport??ue)}),un={min:me,max:2.2},dn=56,fn=1300,pn=1300,mn=.7,hn=120,gn=120,_n=[`graph`,`flow`,`timeline`,`chart`],vn={graph:Xt,timeline:ln,chart:ft,flow:xt},yn={graph:`What caused what`,timeline:`The same causes, in time`,chart:`How much each one moved`,flow:`How much each one contributed`},bn={graph:()=>!0,timeline:an,chart:ot,flow:bt},xn=2,Sn=1/3;function Cn(e,t){let n=t.nodes.filter(e=>e.parentId===void 0);if(n.length===0)return!1;let r=n.filter(n=>bn[e](n,t)).length;return r>=Math.min(xn,n.length)&&r/n.length>=Sn}var wn=e=>({x:0,y:0,w:e.w,h:e.h}),Tn=(e,t,n)=>[t-e.x,n-e.y];function En(e,t,n){let r=e.positions.get(t);if(!r)return null;let i=r.x,a=r.y,o=r.x+r.w,s=r.y+r.h;for(let r of n.get(t)??[]){let t=e.positions.get(r);!t||t.folded||(i=Math.min(i,t.x),a=Math.min(a,t.y),o=Math.max(o,t.x+t.w),s=Math.max(s,t.y+t.h))}let[c,l]=Tn(e.bbox,i-hn,a-hn);return{x:c,y:l,w:o-i+240,h:s-a+240}}function Dn(e){let{world:t,onAscend:n,driverId:r,insetBottom:i}=e,[a,o]=(0,U.useState)(e.initialRep??`graph`),[s,c]=(0,U.useState)(()=>new Set),[l,u]=(0,U.useState)(null),d=p({clamp:un,margin:dn,...i===void 0?{}:{insetBottom:i}}),m=(0,U.useRef)(void 0),{viewport:h}=d,g=(0,U.useMemo)(()=>h?{w:Math.max(1,h.w-112),h:Math.max(1,h.h-112)}:void 0,[h]),_=(0,U.useMemo)(()=>vn[a](t,{expandedIds:s,previous:m.current,...g?{viewport:g}:{}}),[a,t,s,g]);(0,U.useEffect)(()=>{let e=new Map;for(let[t,n]of _.positions)e.set(t,{x:n.x,y:n.y});m.current=e},[_]);let v=(0,U.useRef)(a);v.current=a;let y=(0,U.useRef)(_);y.current=_;let b=(0,U.useRef)(d.camera);b.current=d.camera;let x=(0,U.useRef)(s);x.current=s;let S=(0,U.useRef)(n);S.current=n;let[C,w]=(0,U.useState)(null),{endFlight:T}=d,E=(0,U.useCallback)(()=>{w({layout:y.current,rep:v.current,expandedIds:x.current}),T()},[T]),O=(0,U.useRef)(0),k=(0,U.useRef)(void 0);(0,U.useEffect)(()=>()=>clearTimeout(k.current),[]);let A=(0,U.useCallback)(e=>{if(e===v.current)return;let t=++O.current;u({layout:y.current,token:t}),clearTimeout(k.current),k.current=setTimeout(()=>{t===O.current&&u(null)},fn),v.current=e,o(e)},[]),j=(0,U.useCallback)(e=>{e===O.current&&(clearTimeout(k.current),u(null))},[]),M=(0,U.useRef)(null),N=(0,U.useCallback)(e=>{let t=new Set(x.current);t.delete(e)||(t.add(e),M.current=e),c(t)},[]),P=(0,U.useMemo)(()=>{let e=new Map;for(let n of t.nodes){if(n.parentId===void 0)continue;let t=e.get(n.parentId);t?t.push(n.id):e.set(n.parentId,[n.id])}return e},[t]),{fitTo:F,setCamera:I,viewportRef:L}=d;(0,U.useEffect)(()=>{let e=M.current;if(M.current=null,e!==null){let t=En(_,e,P);if(t){F(t);return}}F(wn(_.bbox))},[_,P,F,I,L]);let R=(0,U.useMemo)(()=>new Map(t.nodes.map(e=>[e.id,e.parentId])),[t]),z=(0,U.useMemo)(()=>{let e=new Set;for(let t of R.values())t!==void 0&&e.add(t);return e},[R]),B=(0,U.useCallback)(e=>{let t=0,n=e,r=new Set;for(;n!==void 0&&!r.has(n);)r.add(n),n=R.get(n),n!==void 0&&(t+=1);return t},[R]),{zoomAtClient:V}=d,H=(0,U.useCallback)((e,t,n,r)=>{if(e>=1)return r!==void 0&&z.has(r)&&!x.current.has(r)?(N(r),`expand`):(V(e,t,n),`zoom`);let i=L.current?.getBoundingClientRect();if(Xe(`out`,!!i&&(i.width>0||i.height>0)&&f(b.current,wn(y.current.bbox),{w:i.width,h:i.height},dn,un))===`zoom-camera`)return V(e,t,n),`zoom`;let a=[...x.current];if(a.length>0){let e=a[0],t=B(e);for(let n of a){let r=B(n);r>t&&(e=n,t=r)}return N(e),`collapse`}return S.current?.(),`ascend`},[z,N,V,L,B]),W=(0,U.useCallback)(e=>{let t=y.current,n=e===null?void 0:t.positions.get(e);if(!n||n.folded){F(wn(t.bbox));return}let[r,i]=Tn(t.bbox,n.x-gn,n.y-gn);F({x:r,y:i,w:n.w+240,h:n.h+240})},[F]);(0,U.useEffect)(()=>{if(r!==void 0)return D(r,{count:_n.length,setIndex:e=>A(_n[Math.min(_n.length-1,Math.max(0,Math.trunc(e)))]),spokenFor:()=>void 0,captionFor:e=>{let t=_n[e];return t?yn[t]:void 0}})},[r,A]);let G=C?.layout!==_||d.flying;return(0,U.useEffect)(()=>{if(!G)return;let e=setTimeout(E,pn);return()=>clearTimeout(e)},[G,_,E]),{rep:a,setRep:A,layout:_,exiting:l,settleExit:j,expandedIds:s,toggleExpand:N,cam:d,morphing:G,settle:E,lod:d.camera.scale>=mn?`near`:`far`,pinch:H,focusNode:W}}function On({label:e,min:t,max:n,step:r=1,value:i,onChange:a,format:o,color:s=`var(--presence)`}){let c=n-t||1,l=(i-t)/c*100;return(0,G.jsxs)(`label`,{className:`viz-ctl`,style:{"--ctl-c":s,"--ctl-pct":l+`%`},children:[(0,G.jsx)(`span`,{className:`viz-ctl-label`,children:e}),(0,G.jsx)(`input`,{type:`range`,className:`viz-ctl-range`,min:t,max:n,step:r,value:i,"aria-label":e,onChange:e=>a(Number(e.target.value))}),(0,G.jsx)(`span`,{className:`viz-ctl-val tab-num`,children:o?o(i):i.toLocaleString()})]})}var kn=`No cause is established yet, so there is nothing to push on.`;function An(e){let t=(0,W.c)(17),{levers:n,onSet:r,onReset:i}=e,a;t[0]===n?a=t[1]:(a=n.every(Mn),t[0]=n,t[1]=a);let o=a,s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,G.jsx)(`h3`,{className:`tr-sec-title`,children:`WHAT IF`}),t[2]=s):s=t[2];let c;t[3]!==i||t[4]!==o?(c=(0,G.jsxs)(`div`,{className:`tr-levers-head`,children:[s,(0,G.jsx)(`button`,{type:`button`,className:`tr-reset`,onClick:i,disabled:o,children:`Reset`})]}),t[3]=i,t[4]=o,t[5]=c):c=t[5];let l;t[6]===n.length?l=t[7]:(l=n.length===0&&(0,G.jsx)(`p`,{className:`tr-levers-empty`,children:kn}),t[6]=n.length,t[7]=l);let u;if(t[8]!==n||t[9]!==r){let e;t[11]===r?e=t[12]:(e=e=>(0,G.jsx)(On,{label:e.label,min:0,max:100,value:e.pct,onChange:t=>r(e.id,t),format:jn},e.id),t[11]=r,t[12]=e),u=n.map(e),t[8]=n,t[9]=r,t[10]=u}else u=t[10];let d;return t[13]!==c||t[14]!==l||t[15]!==u?(d=(0,G.jsxs)(`div`,{className:`tr-levers`,children:[c,l,u]}),t[13]=c,t[14]=l,t[15]=u,t[16]=d):d=t[16],d}function jn(e){return`${e}%`}function Mn(e){return e.pct===100}var Nn=(0,U.memo)(An),Pn=(0,U.createContext)(null);function Fn(){return(0,U.useContext)(Pn)}function In(e){let t=(0,W.c)(19),{id:n,className:r}=e,i=Fn(),a,o,s,c,l,u;if(t[0]!==r||t[1]!==n||t[2]!==i){u=Symbol.for(`react.early_return_sentinel`);bb0:{let e=i?.registry.values.get(n);if(!e){u=null;break bb0}let d=`tr-num`+(r?` ${r}`:``);if(e.kind===`structure`){u=(0,G.jsx)(`span`,{className:`${d} tr-num-qual`,"data-status":`structure`,children:e.resolution.raw});break bb0}a=`button`,o=d,s=ee(e),t[9]!==n||t[10]!==i?(c=e=>i?.open(n,e.currentTarget),t[9]=n,t[10]=i,t[11]=c):c=t[11],l=x(e)}t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=s,t[6]=c,t[7]=l,t[8]=u}else a=t[3],o=t[4],s=t[5],c=t[6],l=t[7],u=t[8];if(u!==Symbol.for(`react.early_return_sentinel`))return u;let d;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,G.jsx)(`span`,{className:`tr-sr`,children:`, source available`}),t[12]=d):d=t[12];let f;return t[13]!==a||t[14]!==o||t[15]!==s||t[16]!==c||t[17]!==l?(f=(0,G.jsxs)(`button`,{type:a,className:o,"data-status":s,onClick:c,children:[l,d]}),t[13]=a,t[14]=o,t[15]=s,t[16]=c,t[17]=l,t[18]=f):f=t[18],f}var Ln=8,Rn=6;function zn(e,t,n){return Math.max(Ln,Math.min(e,n-t-Ln))}function Bn(e,t,n){if(!(e.width>0||e.height>0||e.left>0||e.top>0))return{left:zn((n.w-t.w)/2,t.w,n.w),top:zn((n.h-t.h)/2,t.h,n.h)};let r=e.bottom+Rn,i=e.top-Rn-t.h,a=r+t.h+Ln>n.h&&i>=Ln;return{left:zn(e.left,t.w,n.w),top:zn(a?i:r,t.h,n.h)}}var Vn=320,Hn=340,Un=8;function Wn(e){let t=(0,W.c)(64),{registry:n,valueId:r,anchorRect:i,trail:a,hinted:o,onMarkHinted:s,onDrill:c,onBack:l,onNavigate:u,onDismiss:f}=e,p=(0,U.useRef)(null),m;t[0]===f?m=t[1]:(m={onEscape:f},t[0]=f,t[1]=m),d(p,m);let[h]=(0,U.useState)(!o),g,_;t[2]===s?(g=t[3],_=t[4]):(g=()=>s(),_=[s],t[2]=s,t[3]=g,t[4]=_),(0,U.useEffect)(g,_);let v=(0,U.useRef)(!0),y;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>{v.current||p.current?.focus({preventScroll:!0}),v.current=!1},t[5]=y):y=t[5];let w;t[6]===r?w=t[7]:(w=[r],t[6]=r,t[7]=w),(0,U.useEffect)(y,w);let D,O;t[8]===f?(D=t[9],O=t[10]):(D=()=>{let e=e=>{let t=p.current;t&&e.target instanceof Node&&!t.contains(e.target)&&f()};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},O=[f],t[8]=f,t[9]=D,t[10]=O),(0,U.useEffect)(D,O);let k=n.values,A,j,M,N,P,F,I,L,R,z,B,V,H,K;if(t[11]!==i||t[12]!==l||t[13]!==c||t[14]!==u||t[15]!==n.usedIn||t[16]!==n.values||t[17]!==a||t[18]!==r){V=Symbol.for(`react.early_return_sentinel`);bb0:{if(K=k.get(r),!K){V=null;break bb0}let e=ee(K),o=K.scope,s=n.usedIn.get(r)??[],d=K.kind===`grounded`?K.resolution.receipt:null,f=K.kind===`grounded`&&K.resolution.tier===`T1`,m=d?.url?T(d.url):null,h=d?d.host??(d.url?E(d.url):null):null,g=K.kind===`calculated`?K.calc.inputs:[],_=g.slice(0,Un),v=g.length-_.length,y;t[33]!==n.values||t[34]!==a?(y=a.length>0?n.values.get(a[a.length-1]):void 0,t[33]=n.values,t[34]=a,t[35]=y):y=t[35];let w=y,D;t[36]===i?D=t[37]:(D=Bn(i,{w:Vn,h:Hn},{w:window.innerWidth,h:window.innerHeight}),t[36]=i,t[37]=D);let{left:O,top:U}=D;H=p,A=`tr-card`,j=`dialog`,M=`false`,N=`Where ${K.label} came from`,P=-1,t[38]!==O||t[39]!==U?(F={left:O,top:U,width:Vn,maxHeight:Hn},t[38]=O,t[39]=U,t[40]=F):F=t[40];let W;t[41]!==l||t[42]!==w?(W=w&&(0,G.jsxs)(`button`,{type:`button`,className:`tr-back`,onClick:l,"aria-label":`Back to ${w.label}`,children:[`‹ back`,(0,G.jsxs)(`span`,{className:`tr-back-to`,children:[` to `,w.label]})]}),t[41]=l,t[42]=w,t[43]=W):W=t[43],I=(0,G.jsxs)(`header`,{className:`tr-head`,children:[W,(0,G.jsx)(`span`,{className:`tr-badge`,"data-status":e,children:C[e]}),(0,G.jsx)(`p`,{className:`tr-figure`,children:x(K)}),(0,G.jsx)(`p`,{className:`tr-label`,children:K.label})]}),L=d&&(0,G.jsxs)(`section`,{className:`tr-sec`,children:[(0,G.jsx)(`h3`,{className:`tr-sec-title`,children:`SOURCE`}),d.quote&&(0,G.jsxs)(`blockquote`,{className:`tr-quote`,children:[`“`,d.quote,`”`]}),f?(0,G.jsx)(`p`,{className:`tr-host`,children:b(d)}):h&&(0,G.jsxs)(`p`,{className:`tr-host`,children:[m?(0,G.jsx)(`a`,{href:m,target:`_blank`,rel:`noreferrer noopener`,children:h}):h,d.date&&(0,G.jsxs)(`span`,{className:`tr-date`,children:[` · `,d.date]})]})]}),R=o&&(o.region||o.period||o.unit)&&(0,G.jsxs)(`section`,{className:`tr-sec`,children:[(0,G.jsx)(`h3`,{className:`tr-sec-title`,children:`SCOPE`}),(0,G.jsx)(`p`,{className:`tr-chips`,children:[o.region,o.period,o.unit].filter(Kn).map(Gn)})]}),z=K.kind===`calculated`&&(0,G.jsxs)(`section`,{className:`tr-sec`,children:[(0,G.jsx)(`h3`,{className:`tr-sec-title`,children:`CALCULATION`}),(0,G.jsx)(`p`,{className:`tr-formula`,children:S(K.calc.formula,e=>n.values.get(e)?.label)}),(0,G.jsx)(`ul`,{className:`tr-inputs`,children:_.map(e=>{let t=n.values.get(e);return(0,G.jsx)(`li`,{children:t?(0,G.jsxs)(`button`,{type:`button`,className:`tr-input`,onClick:()=>c(e),children:[(0,G.jsx)(`span`,{className:`tr-input-label`,children:t.label}),(0,G.jsx)(`span`,{className:`tr-input-val`,children:x(t)})]}):(0,G.jsx)(`span`,{className:`tr-input tr-input-missing`,children:e})},e)})}),v>0&&(0,G.jsxs)(`p`,{className:`tr-more`,children:[`…and `,v,` more`]}),K.calc.note&&(0,G.jsx)(`p`,{className:`tr-note`,children:K.calc.note})]}),B=s.length>0&&(0,G.jsxs)(`section`,{className:`tr-sec`,children:[(0,G.jsx)(`h3`,{className:`tr-sec-title`,children:`USED IN`}),(0,G.jsx)(`ul`,{className:`tr-used`,children:s.map(e=>(0,G.jsx)(`li`,{children:u?(0,G.jsx)(`button`,{type:`button`,className:`tr-usedin`,onClick:()=>u(e),children:e.label}):(0,G.jsx)(`span`,{className:`tr-usedin tr-usedin-flat`,children:e.label})},`${e.surface}:${e.id}:${e.label}`))})]})}t[11]=i,t[12]=l,t[13]=c,t[14]=u,t[15]=n.usedIn,t[16]=n.values,t[17]=a,t[18]=r,t[19]=A,t[20]=j,t[21]=M,t[22]=N,t[23]=P,t[24]=F,t[25]=I,t[26]=L,t[27]=R,t[28]=z,t[29]=B,t[30]=V,t[31]=H,t[32]=K}else A=t[19],j=t[20],M=t[21],N=t[22],P=t[23],F=t[24],I=t[25],L=t[26],R=t[27],z=t[28],B=t[29],V=t[30],H=t[31],K=t[32];if(V!==Symbol.for(`react.early_return_sentinel`))return V;let te;t[44]!==K.kind||t[45]!==K.resolution?(te=K.kind===`illustrative`&&(0,G.jsxs)(`p`,{className:`tr-caveat`,children:[`Illustrative — shows the shape, not a measured fact. `,K.resolution.illustrative]}),t[44]=K.kind,t[45]=K.resolution,t[46]=te):te=t[46];let q;t[47]===h?q=t[48]:(q=h&&(0,G.jsx)(`p`,{className:`tr-hint`,children:`Any figure like this one opens its own receipt.`}),t[47]=h,t[48]=q);let ne;return t[49]!==A||t[50]!==j||t[51]!==M||t[52]!==N||t[53]!==P||t[54]!==F||t[55]!==I||t[56]!==L||t[57]!==R||t[58]!==z||t[59]!==B||t[60]!==te||t[61]!==q||t[62]!==H?(ne=(0,G.jsxs)(`div`,{ref:H,className:A,role:j,"aria-modal":M,"aria-label":N,tabIndex:P,style:F,children:[I,L,R,z,B,te,q]}),t[49]=A,t[50]=j,t[51]=M,t[52]=N,t[53]=P,t[54]=F,t[55]=I,t[56]=L,t[57]=R,t[58]=z,t[59]=B,t[60]=te,t[61]=q,t[62]=H,t[63]=ne):ne=t[63],ne}function Gn(e){return(0,G.jsx)(`span`,{className:`tr-chip`,children:e},e)}function Kn(e){return!!e}function qn(e){let t=(0,W.c)(23),{registry:n,onNavigate:r,children:i,ref:a}=e,[o,s]=(0,U.useState)(null),[c,l]=(0,U.useState)(!1),u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=()=>s(null),t[0]=u):u=t[0];let d;t[1]===n?d=t[2]:(d=[n],t[1]=n,t[2]=d),(0,U.useEffect)(u,d);let f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>s(null),t[3]=f):f=t[3];let p=f,m,h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>({dismiss:p}),h=[p],t[4]=m,t[5]=h):(m=t[4],h=t[5]),(0,U.useImperativeHandle)(a,m,h);let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(e,t)=>{t.focus(),s({valueId:e,anchorRect:t.getBoundingClientRect(),trail:[]})},t[6]=g):g=t[6];let _=g,v;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(v=()=>l(!0),t[7]=v):v=t[7];let y=v,b;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>{s(t=>t&&{valueId:e,anchorRect:t.anchorRect,trail:[...t.trail,t.valueId]})},t[8]=b):b=t[8];let x=b,S;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(S=()=>{s(Jn)},t[9]=S):S=t[9];let C=S,w;t[10]!==c||t[11]!==r||t[12]!==n?(w={registry:n,open:_,onNavigate:r,hinted:c,markHinted:y},t[10]=c,t[11]=r,t[12]=n,t[13]=w):w=t[13];let T=w,E;t[14]!==o||t[15]!==c||t[16]!==r||t[17]!==n?(E=o&&(0,G.jsx)(Wn,{registry:n,valueId:o.valueId,anchorRect:o.anchorRect,trail:o.trail,hinted:c,onMarkHinted:y,onDrill:x,onBack:C,onNavigate:r,onDismiss:p}),t[14]=o,t[15]=c,t[16]=r,t[17]=n,t[18]=E):E=t[18];let D;return t[19]!==i||t[20]!==E||t[21]!==T?(D=(0,G.jsxs)(Pn.Provider,{value:T,children:[i,E]}),t[19]=i,t[20]=E,t[21]=T,t[22]=D):D=t[22],D}function Jn(e){let t=e?.trail[e.trail.length-1];return!e||t===void 0?e:{valueId:t,anchorRect:e.anchorRect,trail:e.trail.slice(0,-1)}}var Yn=`Recomputed locally from the causes above — a model of what would happen, never an observation.`,Xn=`What was actually measured. This column never moves when a lever is pulled.`;function Zn(e,t){return(e>0?`+`:``)+m(e,t)}function Qn(e){return e!==null&&Number.isFinite(e)&&e>=0&&e<=1}function $n(e){return e.exactBase===null?`nothing measured stands behind this outcome`:`not every step is grounded, so the total stays unmeasured`}function er(e){let t=(0,W.c)(22),{baseline:n,current:r,unit:i,active:a,observedNote:o}=e,s;t[0]!==n.exactBase||t[1]!==n.fullyGrounded||t[2]!==i?(s=n.fullyGrounded&&n.exactBase!==null?m(n.exactBase,i):null,t[0]=n.exactBase,t[1]=n.fullyGrounded,t[2]=i,t[3]=s):s=t[3];let c=s,l=r.exactBase??n.exactBase,u=a?`1`:void 0,d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,G.jsx)(`span`,{className:`tr-chip tr-wi-chip`,title:Xn,children:`OBSERVED`}),t[4]=d):d=t[4];let f;t[5]!==n||t[6]!==c||t[7]!==o?(f=(0,G.jsxs)(`div`,{className:`tr-wi-col`,children:[d,c===null?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`tr-wi-figure tr-wi-dash`,children:`—`}),(0,G.jsx)(`p`,{className:`tr-wi-note tr-wi-why`,children:o??$n(n)})]}):(0,G.jsx)(`p`,{className:`tr-wi-figure`,children:c})]}),t[5]=n,t[6]=c,t[7]=o,t[8]=f):f=t[8];let p;t[9]!==a||t[10]!==l||t[11]!==r.exactDelta||t[12]!==r.explainedPct||t[13]!==r.fullyGrounded||t[14]!==r.relBase||t[15]!==r.relCur||t[16]!==i?(p=a&&(0,G.jsxs)(`div`,{className:`tr-wi-col tr-wi-hypo`,"data-world":`hypothetical`,children:[(0,G.jsx)(`span`,{className:`tr-chip tr-wi-chip tr-wi-chip-hypo`,title:Yn,children:`HYPOTHETICAL (MODELED)`}),r.fullyGrounded&&l!==null&&r.exactDelta!==null?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`tr-wi-figure`,children:m(l+r.exactDelta,i)}),(0,G.jsx)(`p`,{className:`tr-wi-delta`,children:Zn(r.exactDelta,i)}),Qn(r.explainedPct)&&(0,G.jsxs)(`p`,{className:`tr-wi-note`,children:[Math.round(r.explainedPct*100),`% explained`]})]}):r.relCur===null?(0,G.jsx)(`p`,{className:`tr-wi-figure tr-wi-dash`,children:`—`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`tr-wi-figure tr-wi-phrase`,children:ne(r.relBase??0,r.relCur)}),(0,G.jsx)(`p`,{className:`tr-wi-note`,children:`relative, not measured`})]})]}),t[9]=a,t[10]=l,t[11]=r.exactDelta,t[12]=r.explainedPct,t[13]=r.fullyGrounded,t[14]=r.relBase,t[15]=r.relCur,t[16]=i,t[17]=p):p=t[17];let h;return t[18]!==u||t[19]!==f||t[20]!==p?(h=(0,G.jsxs)(`div`,{className:`tr-wi`,"data-active":u,children:[f,p]}),t[18]=u,t[19]=f,t[20]=p,t[21]=h):h=t[21],h}var tr=(0,U.memo)(er);function nr(e){return{id:e.id,label:e.label,role:e.role,depth:e.depth,tier:e.tier,...e.value===void 0?{}:{value:e.value},...e.unit?{unit:e.unit}:{},...e.receipt?{receipt:e.receipt}:{}}}function rr(e){let t=e.receipts?.[0]??e.receipt;return{from:e.from,to:e.to,sign:e.sign,tier:e.tier,...e.verb?{verb:e.verb}:{},...e.weight===void 0?{}:{weight:e.weight},...t&&!e.provisional?{receipt:t}:{},...e.provisional?{provisional:!0}:{}}}function ir(e){return{center:e.title,outcomeId:e.outcomeId,nodes:e.nodes.map(nr),edges:e.edges.map(rr),provenance:{...e.provenance.illustrative?{illustrative:!0}:{},...e.provenance.notes?.length?{notes:e.provenance.notes}:{}}}}var ar=e=>`node:${e}`,or=(e,t)=>`node:${e}@${t}`;function sr(e,t){let n=e.provenance.illustrative===!0,r=[],i=[],a=[],o=new Map,s=[],c=new Map,l=(e,t,n)=>{!e||o.has(e.id)||(o.set(e.id,e),s.push(t),i.push(n))},u=(e,t)=>{c.set(e.id,e.label),r.push({id:e.id,label:e.label,role:e.role,...e.detail===void 0?{}:{detail:e.detail},...e.domain===void 0?{}:{domain:e.domain},...t===void 0?{}:{parentId:t}});let i=e.series,a=e.unit??i?.unit,o=t=>({valueId:t,surface:`node`,id:e.id,label:e.label});if(e.value!==void 0){let t=ar(e.id);l(R(t,e.label,e.value,e.tier,a,e.receipt,n),o(t),{valueId:t,entityId:e.id})}if(i)for(let t of i.points){let r=or(e.id,t.t),a=R(r,`${e.label} · ${t.t}`,t.value,i.tier,i.unit,t.receipt??i.receipt,n,t.t);l(a,o(r),{valueId:r,entityId:e.id,at:t.t})}for(let t of e.children??[])u(t,e.id)};for(let t of e.nodes)u(t);return se(e.edges).forEach((e,n)=>{let r=`${c.get(e.from)??e.from} ${e.verb??`→`} ${c.get(e.to)??e.to}`,i=t.edges[n]?.id;if(i!==void 0){a.push({id:i,from:e.from,to:e.to,...e.relation===void 0?{}:{kind:e.relation},...e.sign===void 0?{}:{sign:e.sign},...e.weight===void 0?{}:{weight:e.weight}});for(let t of[e.from,e.to])s.push({valueId:ar(t),surface:`edge`,id:i,label:r})}}),{title:e.title,entities:r,relations:a,facts:i,trust:z(o,s),outcomeId:e.outcomeId,...n?{illustrative:n}:{}}}var cr=1100;function lr(e,t,n,r){let i=!1,a=e=>{i||(i=!0,r(e))};(async()=>{for(let r=Math.max(0,t);r<e.length;r++){let t=e[r];if(!t)continue;if(n.isCancelled()){a(`cancelled`);return}let i=O(t.say),o=n.speakLine?.(t.say)??null,s=o?await j(o):!1;if(n.isCancelled()){a(`cancelled`);return}n.apply(t,r),o&&s?await k(o,i,cr):await A(i)}a(n.isCancelled()?`cancelled`:`complete`)})()}function ur({beats:e,apply:t,speakLine:n}){let[r,i]=(0,U.useState)(-1),[a,o]=(0,U.useState)(!1),s=(0,U.useRef)(0),c=(0,U.useRef)(e);c.current=e;let l=(0,U.useRef)(t);l.current=t;let u=(0,U.useRef)(n);u.current=n;let d=(0,U.useCallback)(()=>{s.current+=1,o(!1)},[]),f=(0,U.useCallback)(e=>{let t=s.current+=1;o(!0),lr(c.current,e,{speakLine:e=>u.current?.(e)??null,apply:(e,t)=>{i(t),l.current(e,t)},isCancelled:()=>s.current!==t},()=>{s.current===t&&o(!1)})},[]);(0,U.useEffect)(()=>()=>void(s.current+=1),[]),(0,U.useEffect)(()=>{s.current+=1,o(!1),i(-1)},[e]);let p=(0,U.useCallback)(()=>{if(a){d();return}let e=c.current.length;e!==0&&f(r>=0&&r<e-1?r:0)},[a,r,f,d]),m=(0,U.useCallback)(e=>{let t=c.current.length;t!==0&&f(Math.min(Math.max(e,0),t-1))},[f]),h=(0,U.useCallback)(()=>{d(),i(-1)},[d]);return{index:r,playing:a,caption:r>=0?e[r]?.caption??null:null,toggle:p,seek:m,reset:h}}function dr(e){let t=(0,W.c)(28),{count:n,index:r,playing:i,caption:a,expanded:o,onToggle:s,onSeek:c}=e;if(n===0)return null;let l=Math.min(Math.max(r,-1),n-1),u=i?``:void 0,d=o?``:void 0,f=`${o?108:54}px`,p;t[0]===f?p=t[1]:(p={"--wo-transport-h":f},t[0]=f,t[1]=p);let m=p,h=i?`Pause the walkthrough`:`Walk me through it`,g=i?`❙❙`:`▶`,_;t[2]===g?_=t[3]:(_=(0,G.jsx)(`span`,{className:`wo-play-glyph`,"aria-hidden":`true`,children:g}),t[2]=g,t[3]=_);let v=i?`Pause`:`Walk me through it`,y;t[4]===v?y=t[5]:(y=(0,G.jsx)(`span`,{className:`wo-play-label`,children:v}),t[4]=v,t[5]=y);let b;t[6]!==s||t[7]!==y||t[8]!==h||t[9]!==_?(b=(0,G.jsxs)(`button`,{type:`button`,className:`wo-play`,onClick:s,"aria-label":h,children:[_,y]}),t[6]=s,t[7]=y,t[8]=h,t[9]=_,t[10]=b):b=t[10];let x;t[11]!==l||t[12]!==n||t[13]!==o||t[14]!==c?(x=o&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`wo-track`,role:`group`,"aria-label":`Walkthrough beats`,children:Array.from({length:n},(e,t)=>(0,G.jsx)(`button`,{type:`button`,className:`wo-tick`,"data-state":t<l?`past`:t===l?`now`:`ahead`,onClick:()=>c(t),"aria-label":`Beat ${t+1} of ${n}`,"aria-current":t===l?`step`:void 0},t))}),(0,G.jsxs)(`span`,{className:`wo-transport-count`,"aria-hidden":`true`,children:[l<0?n:l+1,`/`,n]})]}),t[11]=l,t[12]=n,t[13]=o,t[14]=c,t[15]=x):x=t[15];let S;t[16]!==b||t[17]!==x?(S=(0,G.jsxs)(`div`,{className:`wo-transport-row`,children:[b,x]}),t[16]=b,t[17]=x,t[18]=S):S=t[18];let C;t[19]!==a||t[20]!==o?(C=o&&(0,G.jsx)(`p`,{className:`wo-caption`,"aria-live":`polite`,children:a===null?``:M(a)}),t[19]=a,t[20]=o,t[21]=C):C=t[21];let w;return t[22]!==u||t[23]!==S||t[24]!==C||t[25]!==d||t[26]!==m?(w=(0,G.jsxs)(`div`,{className:`wo-transport`,"data-playing":u,"data-open":d,style:m,children:[S,C]}),t[22]=u,t[23]=S,t[24]=C,t[25]=d,t[26]=m,t[27]=w):w=t[27],w}var fr=170,pr={contributes:`fed by`,causes:`driven by`,dampens:`held back by`,enables:`made possible by`,correlates:`moving together with`},mr={1:`pushed up by`,[-1]:`pushed down by`};function hr(e){let t=e.split(` `,1)[0]??``;return t.length===0||/[A-Z]/.test(t.slice(1))?e:e[0].toLowerCase()+e.slice(1)}var gr={graph:`And that is how the causes fit together.`,timeline:`And here are the same causes, in time.`,chart:`And here is what each one actually measured.`,flow:`And here is how much each one contributed.`};function _r(e,t){let n=e.values.get(ar(t));if(!n||n.kind===`structure`)return null;let r=x(n);return n.kind===`illustrative`?{say:`Illustratively, about ${r}.`,shown:`Illustratively, about ${r}.`}:{say:`Measured at ${r}.`,shown:`Measured at ${r}.`}}function vr(e){return e.kind?e.kind===`dampens`||e.kind===`enables`||e.kind===`correlates`:e.sign===-1}function yr(e){return e.kind&&pr[e.kind]?pr[e.kind]:mr[e.sign??1]??`fed by`}function br(e){let t=e.nodes.filter(e=>e.parentId===void 0),n=new Set(t.map(e=>e.id)),r=e.edges.filter(e=>n.has(e.from)&&n.has(e.to)),i=new Map(t.map(e=>[e.id,e.depth??0])),a=new Map;for(let e of r)a.set(e.from,(a.get(e.from)??0)+(e.weight??0));let o=new Map(t.map(e=>[e.id,0]));for(let e of r)o.set(e.to,(o.get(e.to)??0)+1);let s=(e,t)=>(i.get(e)??0)-(i.get(t)??0)||(a.get(t)??0)-(a.get(e)??0)||(e<t?-1:+(e>t)),c=t.filter(e=>o.get(e.id)===0).map(e=>e.id),l=[],u=new Set;for(;c.length>0;){c.sort(s);let e=c.shift();if(!(e===void 0||u.has(e))){u.add(e),l.push(e);for(let t of r){if(t.from!==e)continue;let n=(o.get(t.to)??0)-1;o.set(t.to,n),n<=0&&!u.has(t.to)&&c.push(t.to)}}}for(let e of t.map(e=>e.id).sort(s))u.has(e)||l.push(e);return l}function xr(e,t,n,r={}){let i=br(t);if(i.length<2)return[];let c=new Map(e.nodes.map(e=>[e.id,e])),l=new Map(t.nodes.map(e=>[e.id,e.label])),u=new Map(i.map((e,t)=>[e,t])),d=e=>t.edges.filter(t=>t.to===e&&u.has(t.from)&&(u.get(t.from)??0)<(u.get(e)??0)).sort((e,t)=>(t.weight??0)-(e.weight??0)||(e.id<t.id?-1:1))[0],f=[],p=i.at(-1)===e.outcomeId?i.length-1:i.length,m=p===1?`One cause, one outcome. Here is how it connects.`:`${p} causes, one outcome. Here is how they connect.`;f.push({nodeId:e.outcomeId,wide:!0,rep:`graph`,say:m,caption:m});let h=null;for(let[t,r]of i.entries()){let u=c.get(r),p=l.get(r)??r,m=d(r),g=r===e.outcomeId&&t===i.length-1,_=m?l.get(m.from)??m.from:null,v;v=g?m?`And it ends here: ${hr(p)}, ${yr(m)} ${m.from===h?`it`:hr(_??``)}.`:`And it ends here: ${hr(p)}.`:m?m.from===h?vr(m)?`Then ${hr(p)}, ${yr(m)} it.`:`Then ${hr(p)}.`:`${p}, ${yr(m)} ${hr(_??``)}.`:t===0?`It starts with ${hr(p)}.`:`Alongside it: ${p}.`,h=r;let y=[v],b=[v],x=_r(n,r);x&&(y.push(x.say),b.push(x.shown));let S=u?.detail;S&&(y.push(s(a(S),fr)),b.push(s(o(S),fr))),f.push({nodeId:r,...m?{edgeId:m.id}:{},say:y.join(` `),caption:b.join(` `)})}if(r.closeOn){let t=gr[r.closeOn];f.push({nodeId:e.outcomeId,wide:!0,rep:r.closeOn,say:t,caption:t})}return f}r();var Sr=[{rep:`graph`,label:`Graph`},{rep:`flow`,label:`Contribution`},{rep:`timeline`,label:`Over time`},{rep:`chart`,label:`As a chart`}],Cr={graph:`Left to right is what led to what. Colour is the direction of the push; thickness is how much of the outcome the link explains.`,timeline:`Left to right is WHEN, read against the axis below; a bar is how long a cause lasted. Height only keeps entries from overlapping — it means nothing.`,chart:`Each mark is a cause plotted against its own measured history. Causes with nothing measured are held aside rather than drawn at zero.`,flow:`Ribbon thickness is how much of the outcome that link was MEASURED to explain. A cause whose links carry no measured share is held aside rather than drawn thin, which would read as a finding nobody made.`},wr=`an illustrative world measures nothing, so there is no baseline`;function Tr(e,t){for(let n of e){if(n.id===t)return n.children;let e=n.children===void 0?void 0:Tr(n.children,t);if(e)return e}}function Er(e){let{value:t,...n}=e;return n}function Dr(e,t){let n=new Map;for(let[r,i]of e.relativeByNode){let e=t.relativeByNode.get(r)??0;i>0&&n.set(r,e/i)}return n}function Or(e,t,n,r){return{exactBase:n??null,exactDelta:e.outcomeDelta,explainedPct:e.explainedPct,fullyGrounded:e.fullyGrounded&&!r,relBase:t.relativeOutcome,relCur:e.relativeOutcome}}function kr(e){let t=(0,W.c)(12),{spec:n,question:r,failed:i,onRetry:a,onClose:o,view:s,onExpandNode:c,autoWalk:l,speakLine:u}=e;if(n){let e;return t[0]!==l||t[1]!==o||t[2]!==c||t[3]!==u||t[4]!==n||t[5]!==s?(e=(0,G.jsx)(jr,{spec:n,view:s,onClose:o,onExpandNode:c,autoWalk:l,speakLine:u}),t[0]=l,t[1]=o,t[2]=c,t[3]=u,t[4]=n,t[5]=s,t[6]=e):e=t[6],e}let d=r??``,f=i===!0,p;return t[7]!==o||t[8]!==a||t[9]!==d||t[10]!==f?(p=(0,G.jsx)(Ar,{title:d,failed:f,onRetry:a,onClose:o}),t[7]=o,t[8]=a,t[9]=d,t[10]=f,t[11]=p):p=t[11],p}function Ar(e){let t=(0,W.c)(17),{title:n,failed:r,onRetry:i,onClose:a}=e,o=`Living answer: ${n}`,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,G.jsx)(`span`,{className:`wo-kicker`,children:`THE LIVING ANSWER`}),t[0]=s):s=t[0];let c;t[1]===n?c=t[2]:(c=(0,G.jsxs)(`div`,{className:`wo-title`,children:[s,(0,G.jsx)(`h2`,{children:n})]}),t[1]=n,t[2]=c);let l;t[3]===a?l=t[4]:(l=a&&(0,G.jsx)(`div`,{className:`wo-head-actions`,children:(0,G.jsx)(`button`,{type:`button`,className:`wo-btn wo-btn-close`,onClick:a,"aria-label":`Close`,children:`✕`})}),t[3]=a,t[4]=l);let u;t[5]!==c||t[6]!==l?(u=(0,G.jsxs)(`header`,{className:`wo-head`,children:[c,l]}),t[5]=c,t[6]=l,t[7]=u):u=t[7];let d;t[8]!==r||t[9]!==i?(d=(0,G.jsx)(`div`,{className:`wo-shell`,role:`status`,"aria-live":`polite`,children:r?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`wo-shell-line`,children:`This world didn’t come back.`}),(0,G.jsx)(`p`,{className:`wo-shell-note`,children:`Nothing was built, and Mavéa won’t stand in a causal web it can’t source. The answer behind this card is untouched.`}),i&&(0,G.jsx)(`button`,{type:`button`,className:`wo-btn`,onClick:i,children:`Try again`})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`wo-shell-pulse`,"aria-hidden":`true`}),(0,G.jsx)(`p`,{className:`wo-shell-line`,children:`Building this world…`}),(0,G.jsx)(`p`,{className:`wo-shell-note`,children:`One model call, grounded in what this answer already found. Once it is built it is kept — re-opening it, and replaying this turn, costs nothing.`})]})}),t[8]=r,t[9]=i,t[10]=d):d=t[10];let f;t[11]!==u||t[12]!==d?(f=(0,G.jsxs)(`div`,{className:`wo-panel`,children:[u,d]}),t[11]=u,t[12]=d,t[13]=f):f=t[13];let p;return t[14]!==o||t[15]!==f?(p=(0,G.jsx)(`section`,{className:`wo-scrim`,"aria-label":o,children:f}),t[14]=o,t[15]=f,t[16]=p):p=t[16],p}function jr({spec:e,view:t,onClose:n,onExpandNode:r,autoWalk:a,speakLine:o}){let[s,d]=(0,U.useState)(()=>new Map),[f,p]=(0,U.useState)(null),m=(0,U.useMemo)(()=>{if(s.size===0)return e;let t=e;for(let[e,n]of s)t=F(t,e,n);return t},[e,s]),h=m.provenance.illustrative===!0,g=(0,U.useMemo)(()=>le(m),[m]),_=(0,U.useMemo)(()=>sr(m,g),[m,g]),v=_.trust,y=(0,U.useMemo)(()=>ir(m),[m]),[b,x]=(0,U.useState)(()=>new Map),[S,C]=(0,U.useState)(null),[w,T]=(0,U.useState)(!1),E=(0,U.useMemo)(()=>[...b.values()].some(e=>e!==100),[b]),D=(0,U.useMemo)(()=>[...b].map(([e,t])=>({nodeId:e,pct:t/100})),[b]),O=(0,U.useMemo)(()=>H(y,[]),[y]),k=(0,U.useMemo)(()=>H(y,D),[y,D]),A=(0,U.useMemo)(()=>E?Dr(O,k):null,[E,O,k]),j=(0,U.useDeferredValue)(A),M=(0,U.useCallback)(e=>Cn(e,g),[g]),P=t&&M(t)?t:void 0,R=Dn({world:g,insetBottom:w?108:54,...P?{initialRep:P}:{}}),{rep:z,setRep:W,expandedIds:ee,toggleExpand:K}=R;(0,U.useEffect)(()=>{P&&W(P)},[P,W]);let te=(0,U.useMemo)(()=>{let e=g.nodes.map(e=>{let t=Er(e),n=j?.get(e.parentId??e.id),r=N(e.label);return{...t,label:r,...n===void 0?{}:{shift:n}}});return{...g,nodes:e}},[g,j]),q=(0,U.useMemo)(()=>{let e=new Map,t=n=>{e.set(n.id,n);for(let e of n.children??[])t(e)};for(let e of m.nodes)t(e);return e},[m]),ne=(0,U.useMemo)(()=>{let e=se(m.edges);return new Map(g.edges.map((t,n)=>[t.id,e[n]]))},[g,m]),re=(0,U.useMemo)(()=>new Set(g.nodes.map(e=>e.parentId).filter(e=>e!==void 0)),[g]),ae=(0,U.useRef)(null),oe=(0,U.useCallback)(()=>ae.current?.dismiss(),[]),ce=(0,U.useCallback)(e=>{(e.surface===`node`||e.surface===`edge`)&&C({kind:e.surface,id:e.id})},[]),[ue,de]=(0,U.useState)(void 0),fe=M(`timeline`)?`timeline`:void 0,[pe,me]=(0,U.useState)([]);(0,U.useEffect)(()=>{let e=globalThis.requestIdleCallback,t=()=>me(xr(m,g,v,fe?{closeOn:fe}:{}));if(typeof e==`function`){let n=e(t,{timeout:2e3});return()=>globalThis.cancelIdleCallback?.(n)}let n=setTimeout(t,1);return()=>clearTimeout(n)},[m,g,v,fe]);let{focusNode:J}=R,he=(0,U.useCallback)(e=>{e.rep&&W(e.rep),C({kind:`node`,id:e.nodeId}),de(e.edgeId),e.wide?J(null):e.rep||J(e.nodeId)},[J,W]),{index:ge,playing:Y,caption:_e,toggle:ve,seek:ye,reset:be}=ur((0,U.useMemo)(()=>({beats:pe,apply:he,...o?{speakLine:o}:{}}),[pe,he,o]));(0,U.useEffect)(()=>{T(Y||ge>=0)},[Y,ge]);let xe=(0,U.useRef)(!1);(0,U.useEffect)(()=>{!a||xe.current||pe.length===0||(xe.current=!0,ve())},[a,pe.length,ve]);let X=(0,U.useCallback)(()=>{be(),de(void 0)},[be]),Se=(0,U.useRef)(n);Se.current=n;let Ce=(0,U.useRef)(ve);Ce.current=ve;let we=(0,U.useRef)(X);we.current=X,(0,U.useEffect)(()=>{let e=e=>{if(e.key===`Escape`){we.current(),Se.current?.();return}(e.key===` `||e.key===`Spacebar`)&&(e.target?.closest(`button, input, select, textarea, [contenteditable="true"]`)||(e.preventDefault(),Ce.current()))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);let Te=(0,U.useCallback)(e=>{X(),C({kind:`node`,id:e.id})},[X]),Ee=(0,U.useCallback)(e=>{X(),C({kind:`edge`,id:e})},[X]),De=(0,U.useCallback)((e,t)=>{X(),x(n=>new Map(n).set(e,t))},[X]),Oe=(0,U.useCallback)(()=>{X(),x(new Map)},[X]),ke=(0,U.useCallback)(e=>g.nodes.find(t=>t.id===e)?.parentId===void 0,[g]),Ae=(0,U.useCallback)(e=>{!r||f!==null||(p(e),r(e,m).then(t=>{p(null);let n=t===null?void 0:Tr(t.nodes,e);n?.length&&(d(t=>new Map(t).set(e,n)),ke(e)?K(e):C({kind:`node`,id:e}))},()=>p(null)))},[r,ke,f,m,K]),je=(0,U.useCallback)((e,t)=>{if(t===`entry`&&z===`timeline`){let t=q.get(e.id),n=t?.date,r=t?.series?.points,i=n?.until!==void 0||(r?.length??0)>1,a=n?.t??r?.[0]?.t;return i||!a?null:(0,G.jsx)(`span`,{className:`wo-when`,"data-said":e.dateGrounded?``:void 0,children:a})}if(t!==`card`)return null;let n=ee.has(e.id),i=re.has(e.id),a=e.parentId===void 0,o=!i&&r!==void 0,s=i&&a,c=f===e.id;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(In,{id:ar(e.id),className:`wo-num`}),e.shift!==void 0&&ie(e.shift)!==null&&(0,G.jsx)(`span`,{className:`wo-shift`,"data-dir":e.shift<1?`down`:`up`,children:ie(e.shift)}),(s||o)&&(0,G.jsx)(`button`,{type:`button`,className:`wo-expand`,"aria-expanded":n,"aria-busy":c||void 0,disabled:c||o&&f!==null,"aria-label":`${s&&n?`Fold up`:`Break down`} ${e.label}`,onClick:t=>{t.stopPropagation(),s?K(e.id):Ae(e.id)},children:c?`breaking down…`:s&&n?`fold up`:`break down`})]})},[re,ee,K,r,f,Ae,q,z]),Z=q.get(m.outcomeId),Me=(0,U.useMemo)(()=>Or(O,O,Z?.value,h),[O,Z?.value,h]),Ne=(0,U.useMemo)(()=>Or(k,O,Z?.value,h),[k,O,Z?.value,h]),Pe=(0,U.useMemo)(()=>({causes:m.nodes.length,links:m.edges.length,sourced:m.nodes.filter(e=>e.receipt!==void 0).length}),[m]),Q=S?.kind===`node`?q.get(S.id):void 0,Fe=(0,U.useMemo)(()=>Q===void 0?[]:B(_,Q.id),[_,Q]),[Ie,Le]=(0,U.useState)(null);(0,U.useEffect)(()=>{if(Q===void 0){Le(null);return}let e=!0;return(async()=>{let{hierarchyLens:t}=await i(async()=>{let{hierarchyLens:e}=await import(`./lens-ChFJD9il.js`);return{hierarchyLens:e}},__vite__mapDeps([0,1,2,3]));if(!e)return;let n=t.compile(_,Q.id);if(n===null){Le(null);return}await c(l([n.block]));let r=u(n.block.type);e&&r&&Le({plan:n,render:r})})(),()=>{e=!1}},[_,Q]);let $=S?.kind===`edge`?ne.get(S.id):void 0,Re=(0,U.useMemo)(()=>m.nodes.filter(e=>e.role===`root`).map(e=>({id:e.id,label:N(e.label),pct:b.get(e.id)??100})),[m.nodes,b]);return(0,G.jsx)(qn,{registry:v,onNavigate:ce,ref:ae,children:(0,G.jsx)(`section`,{className:`wo-scrim`,"aria-label":`Living answer: ${m.title}`,children:(0,G.jsxs)(`div`,{className:`wo-panel`,children:[(0,G.jsxs)(`header`,{className:`wo-head`,children:[(0,G.jsxs)(`div`,{className:`wo-title`,children:[(0,G.jsx)(`span`,{className:`wo-kicker`,children:`THE LIVING ANSWER`}),(0,G.jsx)(`h2`,{children:m.title})]}),(0,G.jsxs)(`div`,{className:`wo-head-actions`,children:[(0,G.jsx)(`div`,{className:`wo-views`,role:`group`,"aria-label":`View`,children:Sr.filter(e=>M(e.rep)).map(e=>(0,G.jsx)(`button`,{type:`button`,className:`wo-chip`,"aria-pressed":z===e.rep,onClick:()=>{X(),W(e.rep)},children:e.label},e.rep))}),(0,G.jsx)(`button`,{type:`button`,className:`wo-btn`,onClick:Oe,disabled:!E,children:`Reset`}),n&&(0,G.jsx)(`button`,{type:`button`,className:`wo-btn wo-btn-close`,onClick:n,"aria-label":`Close`,children:`✕`})]})]}),h&&(0,G.jsx)(`div`,{className:`wo-banner wo-banner-illustrative`,children:`Illustrative model — shows the shape, not your numbers.`}),(0,G.jsx)(`p`,{className:`wo-legend`,children:Cr[z]}),(0,G.jsxs)(`div`,{className:`wo-body`,children:[(0,G.jsxs)(`div`,{className:`wo-stage`,onWheelCapture:oe,onPointerDownCapture:oe,children:[(0,G.jsx)(Je,{stage:R,world:te,renderFace:je,onNodeClick:Te,onEdgeClick:Ee,selectedId:S?.kind===`node`?S.id:void 0,litEdgeId:ue}),(0,G.jsx)(dr,{count:pe.length,index:ge,playing:Y,caption:_e,expanded:w,onToggle:ve,onSeek:ye})]}),(0,G.jsxs)(`aside`,{className:`wo-rail`,children:[(0,G.jsx)(Nn,{levers:Re,onSet:De,onReset:Oe}),(0,G.jsx)(tr,{baseline:Me,current:Ne,unit:Z?.unit,active:E,observedNote:h?wr:void 0}),(0,G.jsxs)(`div`,{className:`wo-detail`,children:[(0,G.jsx)(`span`,{className:`wo-rail-kicker`,children:`EVIDENCE`}),!S&&(0,G.jsxs)(`div`,{className:`wo-standing`,children:[(0,G.jsxs)(`dl`,{className:`wo-facts`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Causes`}),(0,G.jsx)(`dd`,{children:Pe.causes})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Links`}),(0,G.jsx)(`dd`,{children:Pe.links})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:h?`Illustrative`:`With a source`}),(0,G.jsx)(`dd`,{children:h?`every cause`:Pe.sourced})]})]}),Z&&(0,G.jsxs)(`p`,{className:`wo-standing-outcome`,children:[(0,G.jsx)(`span`,{className:`wo-standing-lead`,children:`It ends at`}),` `,Z.label,Z.detail?(0,G.jsx)(`span`,{className:`wo-standing-note`,children:Z.detail}):null]}),(0,G.jsx)(`p`,{className:`wo-hint`,children:`Tap a cause or a link to see what stands behind it.`})]}),Q&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`h3`,{className:`wo-detail-title`,children:Q.label}),Q.detail&&(0,G.jsx)(`p`,{className:`wo-detail-note`,children:Q.detail}),(0,G.jsx)(`p`,{className:`wo-detail-figure`,children:(0,G.jsx)(In,{id:ar(Q.id)})}),Q.series&&(0,G.jsx)(`ul`,{className:`wo-series`,children:Q.series.points.map((e,t)=>(0,G.jsxs)(`li`,{children:[(0,G.jsx)(`span`,{className:`wo-series-t`,children:e.t}),(0,G.jsx)(In,{id:or(Q.id,e.t)})]},`${e.t}:${t}`))}),(Ie||Fe.length>0)&&(0,G.jsxs)(`div`,{className:`wo-parts`,children:[(0,G.jsx)(`span`,{className:`wo-rail-kicker`,children:`WHAT THIS IS MADE OF`}),Ie?Ie.render(Ie.plan.block.props,{delay:0}):(0,G.jsx)(`ul`,{className:`wo-part-list`,children:Fe.map(e=>(0,G.jsx)(`li`,{children:N(e.label)},e.id))})]})]}),$&&(0,G.jsx)(V,{relation:L($.relation),sign:$.sign,status:$.status??I($),receipts:$.receipts??($.receipt?[$.receipt]:[]),counter:$.counter,provisional:$.provisional})]})]})]})]})})})}export{kr as WorldOverlay};
@@ -1 +0,0 @@
1
- import{g as e}from"./attachments-BW-vki-E.js";import{a as t,i as n,m as r,n as i,o as a}from"./pen-DtEW1xf4.js";import"./BriefingPlayer-74mRKyjl.js";var o=new Map;function s(){let e=typeof navigator<`u`?navigator:void 0,t=e?.deviceMemory??8,n=e?.hardwareConcurrency??8;return t<=4||n<=4?900:1100}var c={"load-bearing":0,supporting:1,context:2};function l(e,t,n){if(t&&t.length){let r=new Map(e.claims.map(e=>[e.id,e])),i=a(t,e.threads,n),o=new Set,s=[];for(let e of i)for(let t of e.claimIds){if(o.has(t))continue;o.add(t);let e=r.get(t);e&&s.push(e)}for(let t of e.claims)o.has(t.id)||s.push(t);return s}return[...e.claims].sort((e,t)=>c[e.role]-c[t.role]||e.page-t.page)}async function u(a,c,u={}){let d=u.max??6,f=u.verdicts??o,p=l(a,u.placed,f).slice(0,d),m=s(),h=[];for(let a of p){let o=c[a.source];if(!o)continue;let s=i(a),l={isFigure:a.kind===`diagram`,seed:`${a.source}:${a.page}:${a.quote}`,color:t(a.kind),title:a.title,explanation:n(a),...s?{accent:s}:{}};if(e(o)){let e=await r(o,a.page,a.quote,m,a.kind===`diagram`).catch(()=>null);if(e)try{h.push({...l,pageImage:e.canvas.toDataURL(`image/jpeg`,.8),imgW:e.canvas.width,imgH:e.canvas.height,rects:e.rects.map(e=>({x:e.x,y:e.y,w:e.w,h:e.h})),figure:e.figure?{x:e.figure.x,y:e.figure.y,w:e.figure.w,h:e.figure.h}:void 0});continue}catch{}}h.push({...l,pageImage:``,imgW:0,imgH:0,rects:[]})}return h}export{u as autoAnnotationSteps};
@@ -1 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-DkW27tQK.js";import{c as t,l as n,n as r,u as i}from"./registry-Dd1lcXrO.js";import{r as a}from"./spokenText-C88IQJ0M.js";var o=e({buildAnnotationReel:()=>d}),s=8,c=0;function l(e,t,o,s,l){let u=i(a(s.voiceover),n.voiceover);return{id:`a${c++}`,content:e,template:t,slots:r(e,o,l),voiceover:u,durationMs:Math.max(s.ms,u?Math.round(u.length/13*1e3)+500:0)}}function u(e){return e.replace(/\.[a-z0-9]+$/i,``).trim()||e}function d(e,n){let r=`Inside ${u(n.fileName)}`,i={topic:n.fileName,question:r},a=l(`title`,`title`,{question:r},{voiceover:r,ms:t.intro},i),o=e.slice(0,s).map(e=>{let n=e.explanation||e.title,r=e.title&&!n.includes(e.title)?`${e.title}. ${n}`:n;return l(`markup`,`documentMarkup`,{...e},{voiceover:r,ms:t.default},i)}),c=l(`outro`,`outro`,{wordmark:`Mavéa`,tagline:`See what it means.`},{voiceover:`Made with Mavéa.`,ms:t.outro},i),d=[a,...o,c];return{topic:n.fileName,question:r,palette:n.palette??`aurora`,vibe:n.vibe??`clean`,seed:0,slides:d,durationMs:d.reduce((e,t)=>e+t.durationMs,0)}}export{o as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./catalog-DfIYAG3v.js";import{t}from"./facts-BUGuVUIc.js";import{t as n}from"./blockTypes-DUDdP3pB.js";import{validateLiveResponse as r}from"./liveSchema-B8Y9HZxd.js";import{F as i,m as a,x as o}from"./store-Ba9vzL4H.js";import{i as s,t as c}from"./useLiveConfig-B4CmBiAK.js";import{i as l,r as u,s as d}from"./store-BwyOArJl.js";import{a as f,l as p,o as m}from"./store-BWLbFXiY.js";import{a as h,c as g,r as _,s as v}from"./store-D2IJF4SA.js";import{r as y,s as b,t as x}from"./store-D-f8ZuaK.js";import{c as S,l as C,u as w}from"./store-B2Rpbqgg.js";var T=25e6,E=32,D=5e5,O=256,k=32768,A=24,j={dashboards:{count:24,entryBytes:1e6},memory:{count:50,entryBytes:16e3},flashcards:{count:1e3,entryBytes:32e3},library:{count:12,entryBytes:24e4},atlas:{count:500,entryBytes:16e3},courses:{count:60,entryBytes:3e5}},M=Object.freeze([{id:`provider-api-keys`,reason:`credential`},{id:`search-api-keys`,reason:`credential`},{id:`github-token`,reason:`credential`},{id:`active-session-and-turn-history`,reason:`not-yet-portable`},{id:`turn-bookmarks`,reason:`not-yet-portable`},{id:`dashboard-refresh-ledger`,reason:`not-yet-portable`},{id:`dashboard-morning-briefing`,reason:`not-yet-portable`},{id:`dashboard-budget-open-and-optimizer-state`,reason:`device-preference`},{id:`course-generated-frame-cache`,reason:`ephemeral-cache`},{id:`course-checkpoint-cache`,reason:`ephemeral-cache`},{id:`course-mastery`,reason:`not-yet-portable`},{id:`ripple-course-progress-and-metadata`,reason:`not-yet-portable`},{id:`ripple-tracked-items`,reason:`not-yet-portable`},{id:`appearance-audio-performance-preferences`,reason:`device-preference`},{id:`setup-tour-demo-and-feature-hints`,reason:`device-preference`},{id:`legal-acceptance-record`,reason:`device-preference`},{id:`one-shot-navigation-seeds`,reason:`ephemeral-cache`}]);async function N(){await Promise.all([i(),p(),d(),b()])}async function P(){await N();let e=S();return{app:`mavea`,kind:`backup`,version:1,exportedAt:Date.now(),data:{dashboards:a(),memory:f(),flashcards:_(),study:h(),library:u(),atlas:x(),courses:{courses:e,progress:Object.fromEntries(e.map(e=>[e.id,C(e.id)]))},settings:JSON.parse(c())}}}async function F(){let e=JSON.stringify(await P()),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t);try{let e=document.createElement(`a`);e.href=n,e.download=`mavea-backup-${new Date().toISOString().slice(0,10)}.json`,e.click()}finally{URL.revokeObjectURL(n)}}function I(e){return typeof TextEncoder==`function`?new TextEncoder().encode(e).byteLength:e.length*2}function L(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function R(e){let t=0,n=(e,r)=>{if(t+=1,t>D||r>E)throw Error(`That backup is too complex to import safely.`);if(typeof e==`string`&&e.length>k)throw Error(`That backup contains an oversized text field.`);if(Array.isArray(e)){for(let t of e)n(t,r+1);return}if(L(e)){let t=Object.entries(e);if(t.length>O)throw Error(`That backup contains an oversized object.`);for(let[e,i]of t){if(e.length>256)throw Error(`That backup contains an oversized field name.`);n(i,r+1)}}};n(e,0)}function z(e,t){try{return L(e)&&I(JSON.stringify(e))<=t}catch{return!1}}function B(e,t){let n=Array.isArray(e)?e:[],{count:r,entryBytes:i}=j[t],a=n.slice(0,r).filter(e=>z(e,i));return{incoming:n.length,entries:a,rejected:n.length-a.length}}var V=new Set([...n,...t.map(e=>e.type)]);async function H(t){let n=new Set,r=e=>{if(Array.isArray(e))for(let t of e.slice(0,A))L(t)&&typeof t.type==`string`&&n.add(t.type)};for(let e of t)if(L(e.spec)&&r(e.spec.blocks),Array.isArray(e.widgets))for(let t of e.widgets)L(t)&&r([t.block]);await e(n)}function U(e,t){return!Array.isArray(e)||e.length>A?null:r({title:t||`Imported canvas`,blocks:e},V,A,!0)}function W(e){if(!Array.isArray(e.blocks)||e.blocks.length>A)return null;let t=r({title:e.title,sub:e.sub,narration:e.opener,topic:e.topic,blocks:e.blocks,sources:e.sources,bend:e.bend,blanks:e.blanks,track:e.track},V,A,!0);return t?{id:`live`,workspace:`Live`,title:t.title,sub:t.sub,opener:t.narration,context:[],blocks:t.blocks,proof:null,...t.topic?{topic:t.topic}:{},...t.track?{track:t.track}:{},...t.bend?{bend:t.bend}:{},...t.blanks?.length?{blanks:t.blanks,awaiting:!0}:{},...t.sources?.length?{sources:t.sources}:{},extras:{},group:`home`,suggests:[],keywords:[]}:null}async function G(e){await H(e);let t=[];for(let n of e){if(!L(n.spec))continue;let e=W(n.spec);e&&t.push({...n,spec:e})}return t}async function K(e){return await H(e),e.map(e=>{if(!Array.isArray(e.widgets))return e;let t=[];for(let n of e.widgets.slice(0,12)){if(!L(n))continue;let e=U([n.block],`Imported dashboard widget`)?.blocks[0];e&&t.push({id:typeof n.id==`string`?n.id:``,block:e,span:n.span===2||n.span===3?n.span:1,fromSource:typeof n.fromSource==`string`?n.fromSource:``,...typeof n.metricId==`string`?{metricId:n.metricId}:{},...typeof n.refreshQuery==`string`?{refreshQuery:n.refreshQuery}:{}})}return{...e,widgets:t}})}function q(e){if(!L(e))return[];let t=[],n=e=>typeof e==`string`||Array.isArray(e)?e.length>0:L(e)?Object.keys(e).length>0:e!=null;return Object.prototype.hasOwnProperty.call(e,`keys`)&&n(e.keys)&&t.push(`provider-api-keys`),Object.prototype.hasOwnProperty.call(e,`searchKeys`)&&n(e.searchKeys)&&t.push(`search-api-keys`),[`githubToken`,`github_token`,`ghToken`].some(t=>Object.prototype.hasOwnProperty.call(e,t)&&n(e[t]))&&t.push(`github-token`),t}function J(e,t,n){return{incoming:t,accepted:n,rejected:t-n,limit:j[e].count}}async function Y(e){let t=I(e);if(t>25e6)throw Error(`That file is too large to be a Mavéa backup.`);let n;try{n=JSON.parse(e)}catch{throw Error(`This file isn’t valid JSON — it may be corrupted or not a Mavéa backup.`)}if(R(n),!L(n)||n.app!==`mavea`||n.kind!==`backup`||typeof n.version!=`number`||!Number.isSafeInteger(n.version)||n.version<1||!L(n.data))throw Error(`This file isn’t a Mavéa backup.`);let r=n.data,i=B(r.dashboards,`dashboards`),a=B(r.memory,`memory`),o=B(r.flashcards,`flashcards`),s=B(r.library,`library`),c=B(r.atlas,`atlas`),l=L(r.courses)?r.courses:{},u=B(l.courses,`courses`),[d,f]=await Promise.all([K(i.entries),G(s.entries)]),p={};if(L(l.progress)){let e=new Set(u.entries.flatMap(e=>typeof e.id==`string`&&e.id?[e.id]:[]));for(let[t,n]of Object.entries(l.progress))e.has(t)&&z(n,15e4)&&(p[t]=n)}let m={app:`mavea`,kind:`backup`,version:n.version,exportedAt:typeof n.exportedAt==`number`&&Number.isFinite(n.exportedAt)?n.exportedAt:0,data:{dashboards:d,memory:a.entries,flashcards:o.entries,study:r.study,library:f,atlas:c.entries,courses:{courses:u.entries,progress:p},...L(r.settings)?{settings:r.settings}:{}}},h={dashboards:J(`dashboards`,i.incoming,d.length),memory:J(`memory`,a.incoming,a.entries.length),flashcards:J(`flashcards`,o.incoming,o.entries.length),library:J(`library`,s.incoming,f.length),atlas:J(`atlas`,c.incoming,c.entries.length),courses:J(`courses`,u.incoming,u.entries.length)},g=q(r.settings),_=n.version>1,v=new Set([`durability-unverified`,`import-may-evict-existing`,`stores-excluded`]);return g.length&&v.add(`credentials-ignored`),_&&v.add(`future-version`),Object.values(h).some(e=>e.rejected>0)&&v.add(`entries-rejected`),{bundle:m,preflight:{version:n.version,versionAhead:_,byteLength:t,credentialsPresent:g,warnings:[...v],excludedStores:M,sections:h}}}function X(e){let t=new Set;for(let n of e)L(n)&&typeof n.id==`string`&&n.id&&t.add(n.id);return t}function Z(e,t,n,r,i){let a=X(n),o=X(r),s=X(i),c=0,l=0;for(let e of a)o.has(e)&&(c+=1);for(let e of o)s.has(e)||(l+=1);return{...e,accepted:t,rejected:e.incoming-t,conflicts:c,evictedExisting:l}}async function Q(e){let[{bundle:t,preflight:n}]=await Promise.all([Y(e),N()]),{data:r}=t,i={dashboards:a(),memory:f(),flashcards:_(),library:u(),atlas:x(),courses:S()},c=o(r.dashboards??[]),d=m(r.memory??[]),p=v(r.flashcards??[]),h=g(r.study),b=l(r.library??[]),C=y(r.atlas??[]),T=r.courses?w(r.courses.courses,r.courses.progress):0,E=!1,D=[...n.credentialsPresent];if(r.settings){let e=s(JSON.stringify(r.settings),{mode:`merge`,preserveSecretState:!0});E=e.appliedFields.length>0,D=[...new Set([...D,...e.credentialsIgnored])]}let O={dashboards:a(),memory:f(),flashcards:_(),library:u(),atlas:x(),courses:S()},k={dashboards:Z(n.sections.dashboards,c,r.dashboards??[],i.dashboards,O.dashboards),memory:Z(n.sections.memory,d,r.memory??[],i.memory,O.memory),flashcards:Z(n.sections.flashcards,p,r.flashcards??[],i.flashcards,O.flashcards),library:Z(n.sections.library,b,r.library??[],i.library,O.library),atlas:Z(n.sections.atlas,C,r.atlas??[],i.atlas,O.atlas),courses:Z(n.sections.courses,T,r.courses?.courses??[],i.courses,O.courses)},A=new Set(n.warnings);return D.length&&A.add(`credentials-ignored`),Object.values(k).some(e=>e.rejected>0)&&A.add(`entries-rejected`),Object.values(k).some(e=>e.evictedExisting>0)&&A.add(`import-may-evict-existing`),{dashboards:c,memory:d,flashcards:p,studyStyle:h,library:b,atlas:C,courses:T,settingsApplied:E,versionAhead:n.versionAhead,credentialsIgnored:D,warnings:[...A],excludedStores:M,durability:`best-effort-unverified`,preflight:n,sections:k}}export{T as MAX_BACKUP_BYTES,F as downloadBackup,Q as importBackup};
@@ -1 +0,0 @@
1
- var e=`analyses`;function t(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function n(e,n){return`${t(e)}|${n}|v5`}var r=new Map;function i(e){return r.get(e)?.value??null}function a(e,t){if(r.set(e,{key:e,value:t,savedAt:Date.now()}),r.size>60){let e=null,t=1/0;for(let n of r.values())n.savedAt<t&&(t=n.savedAt,e=n.key);e&&r.delete(e)}}function o(){try{return typeof indexedDB<`u`&&indexedDB!==null}catch{return!1}}function s(){return new Promise(t=>{try{let n=indexedDB.open(`mavea-ripple`,1);n.onupgradeneeded=()=>{let t=n.result;t.objectStoreNames.contains(e)||t.createObjectStore(e,{keyPath:`key`}).createIndex(`savedAt`,`savedAt`)},n.onsuccess=()=>t(n.result),n.onerror=()=>t(null)}catch{t(null)}})}async function c(t){if(!o())return i(t);let n=await s();return n?new Promise(r=>{try{let i=n.transaction(e,`readonly`).objectStore(e).get(t);i.onsuccess=()=>{let e=i.result;r(e?e.value:null),n.close()},i.onerror=()=>{r(null),n.close()}}catch{r(i(t))}}):i(t)}async function l(t,n){if(!o()){a(t,n);return}let r=await s();if(!r){a(t,n);return}await new Promise(i=>{try{let a=r.transaction(e,`readwrite`);a.objectStore(e).put({key:t,value:n,savedAt:Date.now()}),a.oncomplete=()=>{u(r).finally(()=>{i(),r.close()})},a.onerror=()=>{i(),r.close()}}catch{a(t,n),i()}})}function u(t){return new Promise(n=>{try{let r=t.transaction(e,`readwrite`).objectStore(e),i=r.count();i.onsuccess=()=>{let e=i.result-60;if(e<=0){n();return}let t=0,a=r.index(`savedAt`).openCursor();a.onsuccess=()=>{let r=a.result;r&&t<e?(r.delete(),t++,r.continue()):n()},a.onerror=()=>n()},i.onerror=()=>n()}catch{n()}})}export{n as i,l as n,t as r,c as t};
@@ -1 +0,0 @@
1
- import"./ReplayCard-BnX73r9n.js";import"./TopicCanvas-CkqP92SC.js";import"./CanvasSkeleton-BmGjJHUQ.js";
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/src-DG1n-LFe.js","assets/rolldown-runtime-DkW27tQK.js","assets/__vite-browser-external-gfE6fZcA.js"])))=>i.map(i=>d[i]);
2
- import{n as e,t}from"./preload-helper-CiWYd9n-.js";import{F as n,N as r,f as i}from"./index-CdUH6Eo9.js";import{C as a,i as o,m as s}from"./kokoro-D15HDMcP.js";async function c(e,t,n){let r=Array(e.length),i=0,a=!1,o=async()=>{for(;!a;){let t=i++;if(t>=e.length)return;try{r[t]=await n(e[t],t)}catch(e){throw a=!0,e}}},s=Math.max(1,Math.min(t,e.length));return await Promise.all(Array.from({length:s},o)),r}var l=24e3,u=.15,d=.18,f=240,p=.008,m=.89,h=6;async function g(e,t){let n=a(e).trim().slice(0,f);if(!n)return new Float32Array;for(let e=0;e<2;e++)try{let e=await fetch(`/tts/v1/audio/speech`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({model:`kokoro`,input:n,voice:o(`mavea`),response_format:`pcm`,speed:1}),signal:t});if(e.ok)return s(new Uint8Array(await e.arrayBuffer()),null).samples}catch{if(t?.aborted)return new Float32Array}return new Float32Array}async function _(e,t,r){let i=e.slides,a=i.map(e=>Math.max(800,Math.round(e.durationMs))),o=n(),s=i.map(e=>e.voiceover.trim()),f=s.find(Boolean);if(o===null||typeof OfflineAudioContext>`u`)return{buffer:null,timings:a,missing:s.filter(Boolean).length,...f?{firstMissingLine:f}:{}};let _=0,v=await c(i,2,async e=>{let n=await g(e.voiceover,t);return r?.(++_,i.length),n}),y=s.filter(Boolean).length,b=v.filter(e=>e.length>0).length,x=Math.max(0,y-b),S=s.find((e,t)=>e&&v[t].length===0);if(b===0)return{buffer:null,timings:a,missing:x,...S?{firstMissingLine:S}:{}};let C=i.map((e,t)=>{let n=v[t].length/l*1e3;return Math.round(n>0?Math.max(a[t],n+d*1e3):a[t])}),w=0;for(let e of v)for(let t=0;t<e.length;t++)w=Math.max(w,Math.abs(e[t]));let ee=w>0?Math.min(h,m/w):1,T=.65+C.reduce((e,t)=>e+t/1e3,0),E=new OfflineAudioContext(1,Math.ceil(T*o),o),D=E.createGain();D.gain.value=ee,D.connect(E.destination);let O=u;return C.forEach((e,t)=>{let n=v[t];if(n.length){let e=E.createBuffer(1,n.length,l);e.getChannelData(0).set(n);let t=E.createBufferSource();t.buffer=e;let r=E.createGain(),i=n.length/l,a=Math.min(p,i/2);r.gain.setValueAtTime(0,O),r.gain.linearRampToValueAtTime(1,O+a),r.gain.setValueAtTime(1,O+i-a),r.gain.linearRampToValueAtTime(0,O+i),t.connect(r).connect(D),t.start(O)}O+=e/1e3}),{buffer:await E.startRendering(),timings:C,missing:x,...S?{firstMissingLine:S}:{}}}function v(e){let t=r();if(!t)return null;let{ctx:n,release:i}=t;if(typeof n.createMediaStreamDestination!=`function`)return i(),null;let a=n.createMediaStreamDestination(),o=n.createBufferSource();o.buffer=e,o.connect(a);let s=!1;return{stream:a.stream,start(){s||(s=!0,n.state!==`running`&&n.resume().catch(()=>{}),o.start())},stop(){try{o.stop()}catch{}try{o.disconnect()}catch{}i()}}}function y(e,t,n){return t+Math.max(0,n-e)}function b(e,t){return!Number.isFinite(t)||t<=0||e>=t?null:Math.max(0,e)}function x(e){let t=r();if(!t)return null;let{ctx:n,release:i}=t,a=n.createGain();a.connect(n.destination);let o=null,s=0,c=0,l=!1,u=()=>{try{o?.stop(),o?.disconnect()}catch{}o=null},d=t=>{u(),o=n.createBufferSource(),o.buffer=e,o.connect(a),o.start(0,t),s=t,c=n.currentTime,l=!1};return{play(){n.state!==`running`&&n.resume().catch(()=>{}),d(0)},setMuted(e){a.gain.value=+!e},pause(){l||!o||(s=Math.min(e.duration,y(c,s,n.currentTime)),u(),l=!0)},resume(){if(!l)return;l=!1;let t=b(s,e.duration);t!==null&&(n.state!==`running`&&n.resume().catch(()=>{}),d(t))},stop(){u();try{a.disconnect()}catch{}i()}}}var S=`opus`,C=[{container:`mp4`,mimeType:`video/mp4`,video:`av1`,audio:S},{container:`webm`,mimeType:`video/webm`,video:`vp9`,audio:S},{container:`webm`,mimeType:`video/webm`,video:`vp8`,audio:S}],w=[`video/webm;codecs=vp9,opus`,`video/webm;codecs=vp8,opus`];async function ee(e,t){if(t.audio&&!await e.canEncodeAudio(S,{numberOfChannels:t.audio.numberOfChannels,sampleRate:t.audio.sampleRate,bitrate:t.audioBitrate??192e3}).catch(()=>!1))return null;for(let n of C)if(await e.canEncodeVideo(n.video,{width:t.width,height:t.height,bitrate:t.videoBitrate}).catch(()=>!1))return n;return null}function T(){return typeof MediaRecorder>`u`||typeof MediaRecorder.isTypeSupported!=`function`?null:w.find(e=>MediaRecorder.isTypeSupported(e))??null}function E(e,{fps:t,capS:n}){let r=null,i=!0;return{realtime:!1,accepting:()=>i,async end(a){if(r===null||!i)return;let o=r;r=null;try{await e.add(o,Math.max(1/t,Math.min(a,n)-o))}catch{i=!1}},begin(e){i&&(r=e)},finish(){if(i){i=!1;try{e.close()}catch{}}}}}function D(){return{realtime:!0,accepting:()=>!0,async end(){},begin(){},finish(){}}}function O(e){let t=e.effect?.getComputedTiming();return t?.progress!==null&&t?.progress!==void 0}function k(e){let t=e.effect;return!t||!(`target`in t)?null:t.target}function te(e){let t=new WeakMap,n=[];return{refresh(r){n=e.getAnimations({subtree:!0}).map(e=>{if(!t.has(e)){t.set(e,r);try{e.pause()}catch{}}return{animation:e,target:k(e)}})},seek(e){for(let{animation:r}of n)try{r.currentTime=e-(t.get(r)??0)}catch{}},activeInside(e){return n.some(({animation:t,target:n})=>n!==null&&e.contains(n)&&O(t))},activeOutside(e){return n.some(({animation:t,target:n})=>!(e&&n&&e.contains(n))&&O(t))},release(){for(let{animation:e}of n)try{e.play()}catch{}n=[]}}}var A=201326592,j=864e5,M=256,N=32,P=/^mavea-video-(\d{13})-[a-z0-9]+[.](?:webm|mp4)$/,F=new WeakSet;async function I(e,t=Date.now()){let n=0,r=0;try{let i=e.entries();try{for(;n<M;){let a=await i.next();if(a.done)break;n+=1;let[o,s]=a.value;if(r>=N||s.kind!==`file`)continue;let c=P.exec(o);if(!c)continue;let l=Number(c[1]);if(!(!Number.isSafeInteger(l)||t-l<j))try{await e.removeEntry(o),r+=1}catch{}}}finally{await i.return?.()}}catch{}return r}function L(e){F.has(e)||(F.add(e),I(e))}async function R(e=`webm`){if(typeof navigator>`u`)return null;let t=navigator.storage;if(!t?.getDirectory)return null;try{let n=await t.getDirectory();L(n);let r=`mavea-video-${Date.now()}-${Math.random().toString(36).slice(2)}.${e}`,i=await n.getFileHandle(r,{create:!0});return{handle:i,name:r,root:n,writable:await i.createWritable()}}catch{return null}}async function ne(e,t=`webm`){let n=await R(t);return n?{target:new e(n.writable,{chunked:!0,chunkSize:4194304}),async finish(){return{blob:await n.handle.getFile(),dispose:()=>n.root.removeEntry(n.name).catch(()=>{})}},async discard(){await n.writable.abort().catch(()=>{}),await n.root.removeEntry(n.name).catch(()=>{})}}:null}async function re(){let e=await R();if(e){let t=!1,n=null,r=Promise.resolve();return{write(i){t||!i.size||(r=r.then(()=>e.writable.write(i)).catch(e=>{n=e instanceof Error?e:Error(`temporary-video-write-failed`)}))},async finish(){if(await r,n)throw n;return await e.writable.close(),{blob:await e.handle.getFile(),dispose:()=>e.root.removeEntry(e.name).catch(()=>{})}},async discard(){t=!0,await r.catch(()=>{}),await e.writable.abort().catch(()=>{}),await e.root.removeEntry(e.name).catch(()=>{})}}}let t=[],n=0,r=null,i=!1;return{write(e){if(!(i||!e.size||r)){if(n+=e.size,n>A){r=Error(`temporary-video-storage-unavailable`),t.length=0;return}t.push(e)}},async finish(){if(r)throw r;return{blob:new Blob(t,{type:`video/webm`})}},async discard(){i=!0,t.length=0}}}e();var z={balanced:{fps:15,bitrate:6e6},high:{fps:24,bitrate:7e6},ultra:{fps:24,bitrate:8e6}};function ie(e,t=i()){let n=z[e],r=t===`lite`?{fps:12,bitrate:6e6}:{fps:24,bitrate:8e6};return{fps:Math.min(n.fps,r.fps),bitrate:Math.min(n.bitrate,r.bitrate)}}function ae(e){let{fps:t,bitrate:n}=ie(e);return`up to ${t} fps · ${Math.round(n/1e6)} Mbps`}async function oe(){try{let{Output:e,Mp4OutputFormat:n,WebMOutputFormat:r,BufferTarget:i,StreamTarget:a,CanvasSource:o,AudioBufferSource:s,canEncodeVideo:c,canEncodeAudio:l}=await t(async()=>{let{Output:e,Mp4OutputFormat:t,WebMOutputFormat:n,BufferTarget:r,StreamTarget:i,CanvasSource:a,AudioBufferSource:o,canEncodeVideo:s,canEncodeAudio:c}=await import(`./src-DG1n-LFe.js`);return{Output:e,Mp4OutputFormat:t,WebMOutputFormat:n,BufferTarget:r,StreamTarget:i,CanvasSource:a,AudioBufferSource:o,canEncodeVideo:s,canEncodeAudio:c}},__vite__mapDeps([0,1,2]));return{Output:e,Mp4OutputFormat:n,WebMOutputFormat:r,BufferTarget:i,StreamTarget:a,CanvasSource:o,AudioBufferSource:s,canEncodeVideo:c,canEncodeAudio:l}}catch{return null}}async function se(){try{return await t(()=>import(`./dist-DRo0JOkC.js`),[])}catch{return null}}var ce={"9:16":{w:1080,h:1920},"1:1":{w:1080,h:1080},"16:9":{w:1920,h:1080}},le=12,B=400,ue=500;function de(e,t){let n=performance.now(),r=0,i=0,a=()=>{n=performance.now(),r++},o=new MutationObserver(e=>{n=performance.now();for(let n of e)t&&(n.target===t||t.contains(n.target))?i++:r++});return o.observe(e,{subtree:!0,childList:!0,attributes:!0,characterData:!0}),e.addEventListener(`load`,a,!0),e.addEventListener(`scroll`,a,!0),{still(){return performance.now()-n<B||typeof e.getAnimations!=`function`||e.querySelector(`canvas, video`)?!1:e.getAnimations({subtree:!0}).every(e=>e.playState!==`running`)},changes:()=>r,layerChanges:()=>i,hasLiveMedia:()=>!!e.querySelector(`canvas, video`),dispose(){o.disconnect(),e.removeEventListener(`load`,a,!0),e.removeEventListener(`scroll`,a,!0)}}}function V(){if(typeof document>`u`)return!1;let e=T()!==null,t=typeof VideoEncoder<`u`&&globalThis.AudioEncoder!==void 0;return e||t}async function H(e){let t=ie(e.quality??`high`),n=e.fps??t.fps,r=e.bitrate??t.bitrate,i=e.background??`#05070c`,{w:a,h:o}=e.dims??ce[e.aspect],s=e.maxDurationMs??1/0,c=s/1e3,l=await se();if(!l)throw Error(`rasterizer-unavailable`);let u=typeof VideoEncoder<`u`&&globalThis.AudioEncoder!==void 0?await oe():null,d=u?await ee(u,{width:a,height:o,videoBitrate:r,audio:e.audioBuffer}):null,f=!!(d&&u),p=!!e.cues&&Number.isFinite(s)&&f&&typeof e.el.getAnimations==`function`,m=e.el.clientWidth||a,h=Math.min(3,Math.max(1,a/m)),g=p&&e.liveLayer?e.el.querySelector(e.liveLayer.selector):null,_=g instanceof HTMLElement?g:null,y=_?e.liveLayer?.bleed??0:0,b=_?.getBoundingClientRect(),x=b?{w:Math.ceil(b.width+y*2),h:Math.ceil(b.height+y*2)}:null,S=_?document.createElement(`canvas`):null;S&&(S.width=a,S.height=o);let C=S?.getContext(`2d`,{alpha:!1})??null,w=!!(_&&x&&C),O,k=null;try{O=await l.createContext(e.el,{scale:h,backgroundColor:i,filter:w?e=>e!==_:void 0}),w&&_&&x&&(k=await l.createContext(_,{scale:h,backgroundColor:null,width:x.w,height:x.h,style:{padding:`${y}px`}}))}catch{throw Error(`rasterizer-unavailable`)}let A=_&&k&&S&&C?{el:_,context:k,canvas:S,ctx:C}:null,j=0,M=0,N=null,P=()=>{M++,M>=le&&!N&&(N=Error(`rasterizer-failed`))},F=de(e.el,A?.el??null),I=()=>{F.dispose(),l.destroyContext(O),k&&l.destroyContext(k)},L=document.createElement(`canvas`);L.width=a,L.height=o;let R=L.getContext(`2d`,{alpha:!1});R.fillStyle=i,R.fillRect(0,0,a,o);let z=document.createElement(`canvas`);z.width=Math.round(a/2),z.height=Math.round(o/2);let ae=z.getContext(`2d`),B=!1,V=()=>{ae&&(ae.drawImage(L,0,0,z.width,z.height),B=!0)},H=()=>new Blob([],{type:`image/png`}),fe=async()=>(!B&&j>0&&V(),B?await new Promise(e=>z.toBlob(e,`image/png`))??H():H()),U=async e=>{let t;try{t=await l.domToCanvas(e)}catch{return P(),null}return!t.width||!t.height?(P(),null):(M=0,t)},pe=0,me=()=>{if(j++,!e.onFrame)return;let t=performance.now();t-pe<ue||(pe=t,e.onFrame(L))},W={scale:1,offsetX:0,offsetY:0},he=(e,t)=>{let n=Math.max(a/t.width,o/t.height),r=t.width*n,s=t.height*n;W={scale:n,offsetX:(a-r)/2,offsetY:(o-s)/2},e.fillStyle=i,e.fillRect(0,0,a,o),e.drawImage(t,W.offsetX,W.offsetY,r,s)},ge=async()=>{let e=await U(O);return e?(he(R,e),me(),!0):!1},G={x:0,y:0,w:x?.w??0,h:x?.h??0},_e=()=>{if(!A)return;let t=e.el.getBoundingClientRect(),n=A.el.getBoundingClientRect();G={...G,x:n.left-t.left-y,y:n.top-t.top-y}};_e();let ve=async(e,t)=>{if(!A)return ge();let n=e?await U(O):null;if(e&&!n)return!1;let r=t?await U(A.context):null;if(t&&!r)return!1;n&&he(A.ctx,n);let i=W.scale*h,a=Math.round(W.offsetX+G.x*i),o=Math.round(W.offsetY+G.y*i),s=Math.round(G.w*i),c=Math.round(G.h*i);return n?R.drawImage(A.canvas,0,0):R.drawImage(A.canvas,a,o,s,c,a,o,s,c),r&&R.drawImage(r,a,o,s,c),me(),!0},K=0,ye=null,be=()=>ye===null?K:performance.now()-ye,q=!0,J=0,Y=e.cues??[],xe=async e=>{let t=!1;for(;J<Y.length&&Y[J].atMs<=e;)await Y[J].apply(),J++,t=!0;return t},Se=async t=>{let r=te(e.el),i=-1,a=-1,o=-1,s=!1,l=!1;try{for(let u=0;q&&t.accepting()&&!N;u++){let d=u/n;if(d>=c)break;let f=d*1e3;if(e.gate&&await e.gate(),!q)break;let p=await xe(f);p&&_e(),(p||F.changes()+F.layerChanges()!==i)&&(r.refresh(f),i=F.changes()+F.layerChanges()),r.seek(f);let m=F.changes(),h=F.layerChanges(),g=m!==a,_=h!==o,v=r.activeOutside(A?.el??null),y=A?r.activeInside(A.el):!1,b=F.hasLiveMedia(),x=u===0||g||v||s||b,S=!!A&&(x||_||y||l);if(s=v,l=y,x||S){await t.end(d);let e=A?await ve(x,S):await ge();if(!q||!t.accepting()||N)break;e&&(a=m,o=h),t.begin(d)}K=Math.min((u+1)/n,c)*1e3,!B&&d>1.2&&j>2&&M===0&&V(),await new Promise(e=>setTimeout(e,0))}}finally{r.release()}},Ce=async t=>{let r=performance.now();ye=r;let i=!0;for(;q&&t.accepting()&&!N;){let a=performance.now();if(e.gate&&await e.gate(),!q)break;if(await xe(performance.now()-r),i||!F.still()){if(await t.end((performance.now()-r)/1e3),await ge(),!q||!t.accepting()||N)break;t.begin(i?0:(performance.now()-r)/1e3),i=!1}let o=performance.now()-r;if(K=o,o>=s)break;!B&&o>1200&&j>2&&M===0&&V();let c=performance.now()-a;await new Promise(e=>setTimeout(e,Math.max(0,1e3/n-c)))}},we=e=>p&&!e.realtime?Se(e):Ce(e);if(d&&u){let t=await ne(u.StreamTarget,d.container),i=t?null:new u.BufferTarget,a=new u.Output({format:d.container===`mp4`?new u.Mp4OutputFormat:new u.WebMOutputFormat,target:t?.target??i}),o=new u.CanvasSource(L,{codec:d.video,bitrate:r});a.addVideoTrack(o);let s=null;if(e.audioBuffer){let t=new u.AudioBufferSource({codec:d.audio,bitrate:192e3});a.addAudioTrack(t);let n=e.audioBuffer;s=async()=>{try{await t.add(n),t.close()}catch{}}}await a.start(),s?.();let l=E(o,{fps:n,capS:c}),f=we(l);f.catch(()=>{});let p=()=>{q=!1,I(),L.width=L.height=0,z.width=z.height=0,A&&(A.canvas.width=A.canvas.height=0)};return{done:()=>f,async stop(){if(q=!1,N||j===0)throw a.cancel?.(),t?.discard(),p(),N??Error(`rasterizer-failed`);await l.end(be()/1e3);let n=await fe();l.finish(),await a.finalize();let r=t?await t.finish():null;return p(),{blob:r?.blob??new Blob([i?.buffer??new ArrayBuffer(0)],{type:d.mimeType}),type:d.mimeType,poster:n,hasAudio:!!e.audioBuffer,durationMs:Math.round(be()),dispose:r?.dispose}},cancel(){q=!1,a.cancel?.(),t?.discard(),p()}}}let Te=L.captureStream(n),Ee=new MediaStream(Te.getVideoTracks()),De=e.audioBuffer?v(e.audioBuffer):null,Oe=De?.stream.getAudioTracks()[0]??null;Oe&&Ee.addTrack(Oe);let ke=T();if(!ke)throw I(),L.width=L.height=0,z.width=z.height=0,Error(`open-codec-unavailable`);let X=new MediaRecorder(Ee,{mimeType:ke,videoBitsPerSecond:r}),Z=await re();X.ondataavailable=e=>Z.write(e.data);let Ae=new Promise(e=>{X.addEventListener(`stop`,()=>e(),{once:!0})}),Q=()=>{try{X.state!==`inactive`&&X.stop()}catch{}};X.start(1e3),De?.start();let je=we(D()).finally(()=>{(N||K>=s)&&Q()});je.catch(()=>{});let $=()=>{q=!1,I();for(let e of Ee.getTracks())e.stop();De?.stop(),L.width=L.height=0,z.width=z.height=0,A&&(A.canvas.width=A.canvas.height=0)};return{done:()=>je,async stop(){if(q=!1,N||j===0)throw Q(),Z.discard(),$(),N??Error(`rasterizer-failed`);let e=await fe();Q(),await Ae;try{let t=await Z.finish(),n=Math.round(be());return $(),{blob:t.blob,type:ke,poster:e,hasAudio:!!Oe,durationMs:n,dispose:t.dispose}}catch(e){throw await Z.discard(),$(),e}},cancel(){q=!1,Q(),Z.discard(),$()}}}export{T as a,g as c,H as i,c as l,V as n,x as o,ae as r,_ as s,ie as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./blockLabel-FogyzEQY.js";import{t}from"./threads-DNfxMTwx.js";var n=[`var(--presence)`,`var(--insight)`,`var(--warning)`,`var(--presence-deep)`,`var(--insight-soft)`,`var(--danger)`,`var(--presence-soft)`,`var(--warning-soft)`],r=/^(how|what|why|should|can|could|would|will|plan|show|make|build|tell|give|explain|who|when|where|which|is|are|do|does|did|help|me)\b[\s,]*/i;function i(e,t=36){let n=e.trim().replace(/\s+/g,` `);if(n.length<=t)return n;let r=n.slice(0,t),i=r.lastIndexOf(` `);return(i>t*.5?r.slice(0,i):r).replace(/[\s,.;:–-]+$/,``)+`…`}function a(e){let t=e.spec?.title?.trim();if(t)return i(t);let n=e.question?.replace(r,``).trim();return n?i(n.charAt(0).toUpperCase()+n.slice(1)):`Moment`}function o(e){let t=e.toLowerCase();return/\b(build|model|schema|architecture|data model|pipeline|system|wire up)\b/.test(t)?`layers`:/\b(prove|verify|evidence|sources?|cite|citation|try|test|double-check|check)\b/.test(t)?`check`:/\b(card|dashboard|one-?pager|slide|widget|panel)\b/.test(t)?`screen`:/\b(show me|show|generate|draw|chart|graph|diagram|render|visuali[sz]e|design|map)\b/.test(t)?`sparkle`:`mic`}var s={compare:`table`,standings:`table`,scoreboard:`table`,table:`table`,kpi:`table`,chart:`chart`,bars:`chart`,stack:`chart`,scatter:`chart`,heat:`chart`,donut:`chart`,gauge:`chart`,ring:`chart`,map:`globe`,geomap:`globe`,gallery:`image`,timeline:`clock`,quotes:`quote`,pullquote:`quote`,checklist:`check`,checks:`check`,insight:`spark`,codemap:`layers`,schema:`layers`,diff:`layers`,flow:`layers`,pipeline:`layers`},c=new Set([`divider`]),l=8;function u(t){let n=[],r=new Set;for(let i of t){let t=i.id;if(!(!t||r.has(t)||c.has(i.type))&&(r.add(t),n.push({id:t,label:e(i),icon:s[i.type]??`spark`}),n.length>=l))break}return n}function d(e,r){let i=[],s=t(e,r??null);return e.forEach((e,t)=>{let r={frameIndex:t,question:e.question||``,icon:o(e.question||``),mode:e.mode,elements:u(e.spec?.blocks??[])};if(s[t]){let o=i.length;i.push({id:`ch-`+t,title:a(e),color:e.spec?.tint||n[o%n.length],moments:[r]})}else i[i.length-1].moments.push(r)}),i}function f(e){return e.reduce((e,t)=>e+t.moments.length,0)}export{f as n,d as r,n as t};
@@ -1 +0,0 @@
1
- import{i as e,n as t}from"./keyVault-Aw5Y2PjT.js";var n=`content-key-v1`;async function r(t){let r=JSON.stringify(t);try{return await e(r,n)}catch{return r}}async function i(e){return JSON.parse(await t(e,n))}export{r as n,i as t};
@@ -1,39 +0,0 @@
1
- import{f as e}from"./index-CdUH6Eo9.js";import{s as t}from"./spokenText-C88IQJ0M.js";import{d as n,h as r,v as i,y as a}from"./attachments-BW-vki-E.js";import{t as o}from"./providers-0DthJW_I.js";import{r as s}from"./speed-BOytg6bC.js";import{i as c,n as l,r as u,t as d}from"./cache-CvbSI-pr.js";import{a as f,d as p,i as m,l as h,o as g,r as _,u as v}from"./validate-sGUCmPAs.js";import{n as y}from"./number-zqlPMliA.js";import{a as ee,c as b,i as x,l as te,n as ne,o as re,r as ie,s as S}from"./officeDoc-GU6Cssjf.js";import{n as ae,r as oe,t as C}from"./csv-DAqzYXUs.js";import"./search-ZN7v_P5B.js";var w=null,T=!1,E=!1,D=0,se=3e5,O;function k(){clearTimeout(O),O=setTimeout(()=>{A.size?k():M()},se)}function ce(){if(typeof navigator<`u`){let e=navigator;if(e.connection?.saveData||typeof e.deviceMemory==`number`&&e.deviceMemory>0&&e.deviceMemory<=4)return!0}return typeof document<`u`&&e()===`lite`}var A=new Map;function j(){if(!(w||E)&&!ce()){if(typeof Worker>`u`){E=!0;return}try{w=new Worker(new URL(`/assets/worker-D7eK-Ya8.js`,``+import.meta.url),{type:`module`}),w.onmessage=e=>{let t=e.data;if(t.type===`ready`)T=!0,k();else if(t.type===`error`)E=!0,M();else if(t.type===`result`){let e=A.get(t.id);A.delete(t.id),e?.kind===`fit`&&e.resolve(t.fits)}else if(t.type===`embedded`){let e=A.get(t.id);A.delete(t.id),e?.kind===`embed`&&e.resolve(t.vec.length?t.vec:null)}},w.onerror=()=>{E=!0,M()},w.postMessage({type:`init`,base:fe,modelId:de})}catch{E=!0}}}function M(){clearTimeout(O),O=void 0;for(let e of A.values())e.resolve(null);A.clear();try{w?.terminate()}catch{}w=null,T=!1}function le(e,t=80){if(j(),!T||!w)return Promise.resolve(null);let n=++D;return new Promise(r=>{let i=setTimeout(()=>{A.delete(n),r(null)},t);A.set(n,{kind:`fit`,resolve:e=>{clearTimeout(i),r(e?new Map(e):null)}}),w.postMessage({type:`fit`,id:n,query:e}),k()})}function ue(e,t=80){if(j(),!T||!w)return Promise.resolve(null);let n=++D;return new Promise(r=>{let i=setTimeout(()=>{A.delete(n),r(null)},t);A.set(n,{kind:`embed`,resolve:e=>{clearTimeout(i),r(e)}}),w.postMessage({type:`embed`,id:n,text:e}),k()})}var de=`minishlab/potion-base-8M`,fe=`/semantic/`,pe=/\b(poems?|haikus?|limericks?|sonnets?|ballads?|rhymes?|riddles?|puns?|jokes?|knock[- ]?knock|tongue[- ]?twisters?|lullab(?:y|ies)|raps?)\b/i,me=/\b(write|compose|make(?:\s+me|\s+up)?|tell(?:\s+me)?\s+(?:a|an)|sing|invent|create|generate|come up with)\b[^.?!]{0,40}\b(story|stories|song|lyrics?|tale|fable|fiction|script|screenplay|verse|jingle)\b/i;function he(e){let t=e.toLowerCase();return pe.test(t)||me.test(t)}var N=e=>!he(e),P=`HARD HONESTY RULES:
2
- - A node "value", a series point, or an edge "weight" (a 0..1 share of the outcome it explains) may ONLY be given when you can quote it VERBATIM from SOURCES — put that exact sentence in "quote" and set "tier":"T2" (or "T1" if it came from the user's own attached data). The weights of the edges INTO the outcome should sum to ≤ 1.
3
- - If a cause, link, or figure comes from general knowledge with NO source sentence, set "tier":"T0" and OMIT value/weight/series/quote. Never invent a number, a percentage, or a citation.
4
- - If SOURCES is empty, EVERY node and edge is "T0" with no numbers — a qualitative structure only.
5
- - Every point of a "series" needs its OWN verbatim quote containing that point's digits. A series you cannot quote point-by-point must be omitted entirely, never smoothed or estimated.
6
- - "sign" is 1 (reinforces) or -1 (dampens). "role" is "root" | "mechanism" | "outcome". "depth" grows from roots (0) to the outcome. Edges may only join TOP-LEVEL nodes — "children" are a breakdown of one node, never causal actors.
7
- - Node "id" is a short stable slug of the label (lowercase, hyphens: "cheap-credit"), because a later turn has to be able to name the same node again.
8
- - "date" is WHEN a cause happened, as a plain string: a year ("1986"), an ISO date ("1986-01-28"), or an ISO timestamp. Give one for every node you can place in time, even in an all-T0 world with no numbers anywhere, because it is what lets the reader lay the same causes out on a timeline. Omit it only when you would be guessing at the year. Where a source sentence states the date, make that the node's "quote" — a date the sources back is shown as established, and one only you know is shown as your own.
9
- - "domain" is the sphere a node belongs to, one of: economy | policy | technology | science | environment | society | health | conflict. It is a description, not a claim, so it needs no source — but OMIT it when no single sphere fits, and never stretch one to cover a node.`,F=`Shape: {"title":"the question, verbatim","outcomeId":"<id of the outcome node>","nodes":[{"id":"","label":"","role":"","depth":0,"domain":"","date":"1986-01-28","tier":"T0","value":0,"unit":"","quote":"","detail":"","series":{"tier":"T0","unit":"","points":[{"t":"2008","value":0,"quote":""}]},"children":[{"id":"","label":"","tier":"T0"}]}],"edges":[{"from":"","to":"","verb":"","weight":0,"sign":1,"tier":"T0","quote":"","relation":""}],"provenance":{"illustrative":false}}`,I=`You are Mavéa's causal world-builder. Given a causal question and SOURCES, build the web that explains it: root causes → mechanisms → the outcome, each node carrying whatever the sources actually prove about it. Return ONLY compact JSON, no prose.
10
-
11
- ${P}
12
- ${F}`,L=`You are Mavéa's causal world-builder, EXTENDING a world that already exists. The user asked a follow-up about the SAME web. Return ONLY compact JSON, no prose.
13
-
14
- ECHO THE IDS: every node you re-describe MUST reuse its EXISTING id, verbatim, from the roster you are given — that is the only way your answer lands on the world the user is looking at. Only a genuinely new cause gets a new slug id. Re-state "title" exactly as given.
15
- A DELTA, NOT A WORLD: return ONLY the nodes the follow-up actually touches, and only the edges you are adding — every node you leave out keeps exactly what it already has. Re-listing the unchanged web wastes the reader's money and risks overwriting facts that are already proven.
16
- Answer the follow-up by ENRICHING the nodes it is about (add a "series", a "children" breakdown, a "detail" sentence, a missing edge) — do not rebuild the web from scratch and do not rename anything.
17
-
18
- ${P}
19
- ${F}`,R={type:`object`,properties:{quote:{type:`string`},url:{type:`string`},host:{type:`string`},date:{type:`string`}},required:[`quote`]},ge={type:`object`,properties:{tier:{type:`string`,enum:[`T0`,`T1`,`T2`,`T3`]},unit:{type:`string`},quote:{type:`string`},points:{type:`array`,items:{type:`object`,properties:{t:{type:`string`},value:{type:`number`},quote:{type:`string`}},required:[`t`,`value`]}}},required:[`tier`,`points`]},_e={type:`object`,properties:{id:{type:`string`},label:{type:`string`},domain:{type:`string`,enum:[...g]},tier:{type:`string`,enum:[`T0`,`T1`,`T2`,`T3`]},value:{type:`number`},unit:{type:`string`},quote:{type:`string`}},required:[`id`,`label`]},ve={type:`object`,properties:{title:{type:`string`},outcomeId:{type:`string`},nodes:{type:`array`,minItems:2,items:{type:`object`,properties:{id:{type:`string`},label:{type:`string`},role:{type:`string`,enum:[`root`,`mechanism`,`outcome`]},depth:{type:`number`},domain:{type:`string`,enum:[...g]},date:{type:`string`},tier:{type:`string`,enum:[`T0`,`T1`,`T2`,`T3`]},value:{type:`number`},unit:{type:`string`},quote:{type:`string`},detail:{type:`string`},series:ge,children:{type:`array`,items:_e}},required:[`id`,`label`,`role`]}},edges:{type:`array`,items:{type:`object`,properties:{from:{type:`string`},to:{type:`string`},verb:{type:`string`},weight:{type:`number`},sign:{type:`number`},tier:{type:`string`,enum:[`T0`,`T1`,`T2`,`T3`]},quote:{type:`string`},relation:{type:`string`},receipts:{type:`array`,items:R},counter:R},required:[`from`,`to`,`sign`]}},provenance:{type:`object`,properties:{illustrative:{type:`boolean`}}}},required:[`title`,`nodes`,`edges`]};function z(e){let t={slow:5,standard:8}[s(e)]??12;return{maxTokens:400+t*300,nodeCap:t}}var ye=`(none — use only general knowledge; mark EVERY node and edge "T0" with no numbers and no series)`;function B(e){return e.text.trim()?e.text.trim().slice(0,6e3):ye}function be(e,t,n){return`QUESTION: ${e.trim()}
20
-
21
- SOURCES:
22
- ${B(t)}
23
-
24
- Build the causal world (${n} nodes max). Quote SOURCES verbatim for any number, series point or weight; otherwise T0 with no numbers. DATE every cause you can place in time — a year is enough, and this is not a number needing a source. Reply as compact JSON on one line.`}function xe(e){return e.nodes.map(e=>`${e.id} = ${e.label}`).join(`
25
- `)}function Se(e,t,n,r){return`TITLE (re-state verbatim): ${e.title}
26
-
27
- EXISTING NODES — reuse these ids exactly:
28
- ${xe(e)}
29
-
30
- FOLLOW-UP: ${t.trim()}
31
-
32
- SOURCES:
33
- ${B(n)}
34
-
35
- Answer the follow-up on THIS world with a DELTA — only the nodes it changes (${r} nodes max, existing ids echoed), never the whole web again. Quote SOURCES verbatim for any number, series point or weight; otherwise T0 with no numbers. DATE every cause you can place in time — a year is enough, and this is not a number needing a source. Reply as compact JSON on one line.`}async function V(e,t,n,r,i,a){let s;try{s=(await o(n.provider).generate({system:e,history:[],user:t,maxTokens:r,thinkingLevel:`minimal`,format:ve,...a?{signal:a}:{}},n)).raw}catch{return null}return a?.aborted?null:_(s,i)}var H=new Map;function Ce(e,t,n){return c(`world:${e}\0${t.text}`,n.provider)}function we(e,t,n,r){let i=Ce(e,t,n),a=H.get(i);if(a)return a;let o=Te(i,e,t,n,r);for(H.set(i,o);H.size>16;){let e=H.keys().next().value;if(e===void 0||e===i)break;H.delete(e)}return o.then(e=>{e||H.delete(i)},()=>H.delete(i)),o}async function Te(e,t,n,r,i){try{let t=await d(e);if(t)return t}catch{}let{maxTokens:a,nodeCap:o}=z(r.model??r.provider),s=await V(I,be(t,n,o),r,a,n,i);if(s)try{await l(e,s)}catch{}return s}var Ee=.5;async function De(e,t,n,r,i){let{maxTokens:a,nodeCap:o}=z(r.model??r.provider),s=await V(L,Se(e,t,n,o),r,a,n,i);return!s||f(e,s)<Ee?null:m(e,s)}function Oe(e,t){let n=[],r=/<c\b([^>]*?)(?:\/>|>([\s\S]*?)<\/c>)/g,i;for(;(i=r.exec(e))!==null;){let e=i[1],r=/\br="([A-Z]+\d+)"/.exec(e)?.[1];if(!r)continue;let a=ie(r);if(!a)continue;let o=re(e,i[2]??``,t);o!==``&&n.push({col:a.col,row:a.row,addr:r,text:o})}return n}async function ke(e){let t;try{t=await te(S(e))}catch{return null}if(!t)return null;let n=t.get(`xl/sharedStrings.xml`),r=n?ee(b(n)):[],i=[...t.keys()].filter(e=>/^xl\/worksheets\/sheet\d+\.xml$/.test(e)).sort((e,t)=>Number(e.match(/(\d+)\.xml$/)[1])-Number(t.match(/(\d+)\.xml$/)[1]));if(i.length===0)return null;let a=t.get(`xl/workbook.xml`),o=a?/<sheet[^>]*name="([^"]+)"/.exec(b(a))?.[1]??`Sheet1`:`Sheet1`,s=Oe(b(t.get(i[0])),r);if(s.length===0)return null;let c=[...new Set(s.map(e=>e.row))].sort((e,t)=>e-t),l=c[0],u=s.filter(e=>e.row===l).sort((e,t)=>e.col-t.col),d=u.map(e=>e.col),f=u.map((e,t)=>e.text||`col${t+1}`),p=new Map(s.map(e=>[`${e.col}:${e.row}`,e.text])),m=c.filter(e=>e>l),h=m.length,g=m.slice(0,ae),_=[],v=[];for(let e of g)_.push(d.map(t=>p.get(`${t}:${e}`)??``)),v.push(d.map(t=>`${x(t)}${e}`));return{headers:f,rows:_,addrs:v,sheet:o,sourceRowCount:h,truncated:h>_.length}}var U=/^\d{4}-\d{2}-\d{2}([ T]\d{2}:\d{2}(:\d{2})?)?$|^\d{1,2}[/-]\d{1,2}[/-]\d{2,4}$/,W=/^(true|false|yes|no)$/i;function G(e){let t=e.trim();if(!t)return null;let n=y(t);if(!n)return null;let r=n.kind===`pct`?`%`:/^[$€£]/.test(t)?t[0]:void 0;return{value:n.value,...r?{unit:r}:{}}}function Ae(e){let t=e.trim();return t?G(t)?`number`:U.test(t)?`date`:W.test(t)?`boolean`:`text`:`empty`}function je(e,t,n){let r=n.filter(e=>e.trim()!==``);if(r.length===0)return{key:e,label:t,type:`empty`,values:n.map(()=>null),raw:n,parsedFraction:0};let i=r.slice(0,oe),a={number:0,date:0,boolean:0,text:0,empty:0};for(let e of i)a[Ae(e)]+=1;let o=i.length,s=`text`;a.number/o>=.7?s=`number`:a.date/o>=.7?s=`date`:a.boolean/o>=.7&&(s=`boolean`);let c=0,l,u=n.map(e=>{let t=e.trim();if(!t)return null;if(s===`number`){let e=G(t);return e?(c+=1,e.unit&&!l&&(l=e.unit),e.value):null}return s===`boolean`?W.test(t)?(c+=1,/^(true|yes)$/i.test(t)):null:s===`date`?U.test(t)?(c+=1,t):null:(c+=1,t)});return{key:e,label:t,type:s,values:u,raw:n,parsedFraction:r.length?c/r.length:0,...l?{unit:l}:{}}}function Me(e,t,n){let r=e.toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_+|_+$/g,``)||`col${t+1}`,i=r,a=2;for(;n.has(i);)i=`${r}_${a++}`;return n.add(i),i}function Ne(e){let t=new Set;return e.headers.map((n,r)=>{let i=e.rows.map(e=>e[r]??``),a=je(Me(n,r,t),n,i);return e.addrs&&(a.addrs=e.rows.map((t,n)=>e.addrs[n]?.[r]??``)),a})}async function Pe(e,t){let r,i;if(a(e))i=`xlsx`,r=await ke(e.data);else if(n(e)){i=`csv`;try{r=C(new TextDecoder(`utf-8`).decode(S(e.data)))}catch{r=null}}else return{reason:`Not a CSV or Excel file.`};if(!r||r.headers.length===0)return{reason:`Could not read a table from ${e.name}.`};let o=Ne(r);return{dataset:{id:u(`${e.name}:${e.data.slice(0,2e5)}`),file:e.name,...r.sheet?{sheet:r.sheet}:{},columns:o,rowCount:r.rows.length,sourceRowCount:r.sourceRowCount,truncated:r.truncated,origin:i,parsedAt:t}}}var Fe=200;function Ie(e){let t=[`${e.file}: ${e.columns.map(e=>e.label).join(`, `)}`],n=Math.min(e.rowCount,Fe);for(let r=0;r<n;r+=1)t.push(e.columns.map(e=>`${e.label} ${e.raw[r]??``}`.trim()).join(` | `));return t.join(`
36
- `)}async function Le(e){let t=[];for(let o of e)try{if(n(o)||a(o)){let{dataset:e}=await Pe(o,0);e&&t.push(Ie(e))}else if(i(o))t.push(new TextDecoder(`utf-8`).decode(S(o.data)));else if(r(o)){let e=await ne(o);e&&t.push(e.join(`
37
- `))}}catch{}return t.join(`
38
-
39
- `)}var Re=8e3,K=new Map;function ze(e,t){for(K.delete(e),K.set(e,t);K.size>2;){let e=K.keys().next().value;if(e===void 0)break;K.delete(e)}}async function Be(e){let t=K.get(e);if(!t)return h;let n=await Promise.all(t.attachments.map(async e=>({source:{kind:`file`,title:e.name},text:await Le([e])})));return v([...n,...t.sources.map(p)],Re)}var Ve=/\b(just (?:tell me|give me|the answer)|in one line|one[- ]liner|in a (?:sentence|word|line)|in a few words|brief(?:ly)?|tl;?dr|short (?:version|answer)|keep it (?:short|brief)|quick (?:answer|version|recap|rundown|summary)|in short|the short version|bottom line|in a nutshell|the gist)\b/,He=/\b(tell me about|explain|overview|how (?:do|does|to|can|is|are|did|would|should)|why|guide|walk\s?(?:me\s)?through|break\s?down|breakdown|deep\s?dive|everything|compare|comparison|versus|vs\.?|pros and cons|plan|itinerary|roadmap|review|analy[sz]e|dashboard|trends?|history of|all about|summary of)\b/,q=/\b(teach (?:me|us)|help me (?:understand|learn|grasp|wrap my head around)|walk me through|crash course|get (?:me |us )?up to speed|bring me up to speed|from scratch|(?:the )?(?:basics|fundamentals|essentials|core concepts|key concepts) of|study (?:for|guide|plan)|prep(?:are)? (?:me |us )?for (?:my |an? |the |our )?(?:\w+ )?(?:interview|exam|test|quiz|midterm|final|cert\w*)|(?:interview|exam) prep|tutorial|lesson on|learn (?:about |how )?[a-z]+)\b/,Ue=[/^[\s\d().,+\-*/^%×÷=]+\??$/,/\bwhat(?:'s| is| are| was)?\s*[\d().,\s+\-*/^%×÷]+\s*\??$/,/\b(calculate|compute|solve)\b/,/\b\d+(?:\.\d+)?\s*%\s*of\s+\d/,/\bconvert\b/,/\bhow many\s+\w+\s+(?:in|are in|per)\b/,/\b\d+\s*[a-z]+\s+(?:in|to)\s+[a-z]+\b/,/\b(define|definition of)\b/,/\bwhat does\s+.+\s+mean\b/,/\bcapital of\b/];function We(e){let t=e.toLowerCase().trim();if(!t)return`rich`;let n=Ve.test(t);return q.test(t)||He.test(t)?n?`brief`:`rich`:Ue.some(e=>e.test(t))?`lean`:n?`brief`:`rich`}function Ge(e){return q.test(e.toLowerCase())}var Ke=/\b(deriv\w*|prove|proof|theorem|integral|derivative|equation|algebra|calculus|optimi[sz]e|trade-?offs?|step[-\s]?by[-\s]?step|reason\w* through|figure out|work out|why (?:does|is|are|do)|analy[sz]e|compare\b.*\bvs\b|root cause|debug|diagnose|strategy|plan\b.*\b(?:budget|trip|itinerary|migration))\b/;function J(e){return Ke.test(e.toLowerCase())}function qe(e,t){return e===`lean`?`minimal`:t?`low`:`minimal`}var Y=[`minimal`,`low`,`medium`,`high`];function X(e,t){let n=Y.indexOf(e);return Y[Math.min(Y.length-1,Math.max(0,n+t))]}function Je(e,t,n=`fast`){let r=J(t);return e===`lean`&&!r?`minimal`:X(qe(e,r),n===`thorough`?2:+(n===`balanced`))}var Ye=.1,Xe=.3,Ze=.75;function Qe(e,t,n){return t.creative?Ze:e===`lean`||J(n)||t.troubleshoot?Ye:Xe}var Z=140,Q=320;function $e(e,n){let r=n===`lean`||n===`brief`?Z:Q;return t(e.trim(),r)}function $(e){return e===`lean`||e===`brief`?Z:Q}var et=`OUTPUT ORDER — emit the "narration" field FIRST in the JSON, before "title", "sub", and "blocks", and write it as complete sentences. It is spoken aloud the moment it streams, so it must lead.`;function tt(e){return e===`lean`||e===`brief`?`SPOKEN LINE ("narration") — keep it to ONE short sentence (≈${$(e)} characters). Right to the point.`:`SPOKEN LINE ("narration") — at most two or three short sentences (≈${$(`rich`)} characters), like a person talking. The visuals carry the detail; never narrate the whole canvas.`}export{Qe as a,Ge as c,De as d,we as f,j as g,le as h,tt as i,ze as l,ue as m,$e as n,Je as o,N as p,$ as r,We as s,et as t,Be as u};
@@ -1 +0,0 @@
1
- function e(e){return e.some(e=>typeof e==`number`&&Number.isFinite(e))}export{e as t};
@@ -1,15 +0,0 @@
1
- import{t as e}from"./providers-0DthJW_I.js";import{r as t}from"./speed-BOytg6bC.js";import{i as n,n as r,t as i}from"./cache-CvbSI-pr.js";import{t as a}from"./json-B0N3XRZU.js";import{r as o}from"./verbatim-DBTj9sPD.js";import{a as s}from"./number-zqlPMliA.js";import{a as c,i as l,n as u,r as d,s as f,t as p}from"./receipts-D7zveV-I.js";var m=new Set([`root`,`mechanism`,`outcome`]),h=[`T0`,`T1`,`T2`,`T3`],g=e=>e===`T1`||e===`T2`;function _(e,t){if(typeof e!=`string`)return null;let n=e.trim();return n?n.length>t?n.slice(0,t):n:null}var v=e=>e<0?0:e>1?1:e;function y(e){return o(e??``)}function b(e,t){let n=typeof e==`string`?a(e):e;if(!n||typeof n!=`object`||Array.isArray(n))return null;let r=n,i=_(r.center,140);if(!i)return null;let o=r.provenance&&typeof r.provenance==`object`?r.provenance:{},c=o.illustrative===!0,b=y(t),x=[];for(let e of Array.isArray(r.nodes)?r.nodes:[]){if(!e||typeof e!=`object`)continue;let t=e,n=_(t.id,40),r=_(t.label,120);if(!n||!r)continue;let i=m.has(t.role)?t.role:`mechanism`,a=typeof t.depth==`number`&&Number.isFinite(t.depth)?Math.max(0,Math.round(t.depth)):i===`root`?0:i===`outcome`?2:1,o=h.includes(t.tier)?t.tier:`T0`,u=typeof t.value==`number`&&Number.isFinite(t.value)?t.value:void 0,f=_(t.unit,12)??void 0,p=l(t),v;g(o)?p&&b(p)?(v=d(t.receipt,p),u!==void 0&&!s(u,p)&&(u=void 0)):(o=`T0`,u=void 0):o===`T3`?(!c||u===void 0)&&(o=`T0`,u=void 0):u=void 0,x.push({id:n,label:r,role:i,depth:a,tier:o,...u===void 0?{}:{value:u},...f?{unit:f}:{},...v?{receipt:v}:{}})}if(x.length<2)return null;let S=new Set(x.map(e=>e.id)),C=[];for(let e of Array.isArray(r.edges)?r.edges:[]){if(!e||typeof e!=`object`)continue;let t=e,n=_(t.from,40),r=_(t.to,40);if(!n||!r||!S.has(n)||!S.has(r)||n===r)continue;let i=t.sign===-1?-1:1,a=_(t.verb,24)??void 0,o=h.includes(t.tier)?t.tier:`T0`,s=typeof t.weight==`number`&&Number.isFinite(t.weight)?v(t.weight):void 0,c=p(t,b),m=t.relation==null?void 0:f(t.relation),y=t.counter,x=y&&typeof y==`object`?l(y):null,w=x&&b(x)?d(y,x):void 0,T=!1;g(o)&&s!==void 0&&c.length>0||(o=`T0`,s=void 0,T=!0);let E={from:n,to:r,sign:i,tier:o,...a?{verb:a}:{},...s===void 0?{}:{weight:s},...c.length?{receipt:c[0],receipts:c}:{},...w?{counter:w}:{},...m?{relation:m}:{},...T?{provisional:!0}:{}};C.push({...E,status:u(E)})}let w=_(r.outcomeId,40);(!w||!S.has(w))&&(w=(x.find(e=>e.role===`outcome`)??x.reduce((e,t)=>t.depth>e.depth?t:e)).id);let T=Array.isArray(o.notes)?o.notes.map(e=>String(e)).slice(0,6):void 0;return{center:i,outcomeId:w,nodes:x,edges:C,provenance:{...c?{illustrative:!0}:{},...T&&T.length?{notes:T}:{}}}}var x=`You are Mavéa's causal explainer. Given a "why" question and SOURCES, build a causal web: root causes → mechanisms → the outcome. Return ONLY compact JSON, no prose.
2
-
3
- HARD HONESTY RULES:
4
- - A node's numeric "value" or an edge's "weight" (a 0..1 share of the outcome it explains) may ONLY be given when you can quote it VERBATIM from SOURCES — put that exact sentence in "quote" and set "tier":"T2" (or "T1" if it came from the user's own attached data). weights of the edges INTO the outcome should sum to ≤ 1.
5
- - If a cause or link comes from general knowledge with NO source sentence, set "tier":"T0" and OMIT value/weight/quote. Never invent a number, a percentage, or a citation.
6
- - If SOURCES is empty, EVERY node and edge is "T0" with no numbers — a qualitative structure only.
7
- - "sign" is 1 (reinforces) or -1 (dampens). "role" is "root" | "mechanism" | "outcome". "depth" grows from roots (0) to the outcome.
8
- - "relation" says what the link CLAIMS, one of: contributes | causes | dampens | enables | correlates. Choose the WEAKEST one that is true — "causes" asserts a sole or direct cause, and most links are "contributes". Use "correlates" when the two move together and you cannot say which drives which.
9
- - A link may carry up to 3 "receipts" (each an independently quotable sentence), and a "counter" receipt quoting a source that DISPUTES it. Both are held to the same rule as everything else: verbatim from SOURCES or omitted.
10
- Shape: {"center":"the question","outcomeId":"<id of the outcome node>","nodes":[{"id":"","label":"","role":"","depth":0,"tier":"T0","value":0,"unit":"","quote":""}],"edges":[{"from":"","to":"","verb":"","weight":0,"sign":1,"tier":"T0","quote":"","relation":""}],"provenance":{"illustrative":false}}`,S={type:`object`,properties:{id:{type:`string`},label:{type:`string`},role:{type:`string`,enum:[`root`,`mechanism`,`outcome`]},depth:{type:`number`},tier:{type:`string`,enum:[`T0`,`T1`,`T2`,`T3`]},value:{type:`number`},unit:{type:`string`},quote:{type:`string`}},required:[`id`,`label`,`role`]},C={type:`object`,properties:{quote:{type:`string`},url:{type:`string`},host:{type:`string`},date:{type:`string`}},required:[`quote`]},w={type:`object`,properties:{from:{type:`string`},to:{type:`string`},verb:{type:`string`},weight:{type:`number`},sign:{type:`number`},tier:{type:`string`,enum:[`T0`,`T1`,`T2`,`T3`]},quote:{type:`string`},relation:{type:`string`,enum:[...c]},receipts:{type:`array`,items:C},counter:C},required:[`from`,`to`,`sign`]},T={type:`object`,properties:{center:{type:`string`},outcomeId:{type:`string`},nodes:{type:`array`,minItems:2,items:S},edges:{type:`array`,items:w},provenance:{type:`object`,properties:{illustrative:{type:`boolean`}}}},required:[`center`,`nodes`,`edges`]};function E(e){let n={slow:6,standard:9}[t(e)]??12;return{maxTokens:250+n*170,nodeCap:n}}function D(e,t,n){let r=t.trim()?t.trim().slice(0,6e3):`(none — use only general knowledge; mark EVERY node and edge "T0" with no numbers)`;return`QUESTION: ${e.trim()}
11
-
12
- SOURCES:
13
- ${r}
14
-
15
- Build the causal web (${n} nodes max). Quote SOURCES verbatim for any number/weight; otherwise T0 with no numbers. Reply as compact JSON on one line.`}async function O(t,a,o,s){let c=n(`why:${t}\0${a}`,o.provider);try{let e=await i(c);if(e)return e}catch{}let{maxTokens:l,nodeCap:u}=E(o.model??o.provider),d;try{d=(await e(o.provider).generate({system:x,history:[],user:D(t,a,u),maxTokens:l,thinkingLevel:`minimal`,format:T,...s?{signal:s}:{}},o)).raw}catch{return null}if(s?.aborted)return null;let f=b(d,a);if(f)try{await r(c,f)}catch{}return f}export{O as explodeWhy};
@@ -1 +0,0 @@
1
- function e(e){let t=(e??``).trim();if(!t)return``;if(/^You are Mavéa, an AI presence\.\s*Generate a concise morning brief/i.test(t))return`Morning brief`;let n=t.match(/^Correction —[\s\S]*?it's actually "([^"]+)"/i);if(n)return`Correction: ${n[1]}`;if(/^Fuse these/i.test(t)){let e=t.match(/between "([^"]+)" and "([^"]+)"/i);return e?`Fuse: ${e[1]} × ${e[2]}`:`Fuse`}let r=t.match(/^Refresh this — is "([^"]+)" still current/i);if(r)return r[1];if(/^I just thought out loud for about/i.test(t))return`Your thinking, sorted`;let i=t.match(/^I've been thinking out loud(?: and here's what it comes down to: ([^\n]+))?/i);return i?i[1]?.trim()||`Your thinking`:t}export{e as t};
@@ -1,28 +0,0 @@
1
- import{r as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./providers-0DthJW_I.js";var n=e({generateCheckpoint:()=>x,generateCourse:()=>b}),r=3,i=9,a=9e4;function o(e,t){let n=e instanceof Error?e.message:String(e);return/\b429\b|rate.?limit|quota|resource.?exhausted/i.test(n)?`${t} is rate-limiting right now — wait a moment and try again.`:/\b40[13]\b|api key|unauthor|permission/i.test(n)?`${t} rejected the request — check its API key in settings.`:/\b5\d\d\b|overloaded|unavailable/i.test(n)?`${t} had a server error — try again in a moment.`:`Couldn't reach ${t} to build the course — check your connection and its key, then try again.`}var s=2;function c(e){return e.replace(/^```[a-z]*\n?/,``).replace(/\n?```$/,``).trim()}function l(e){return typeof e==`string`&&e.trim().length>0}function u(e,t){return Array.isArray(e)?e.filter(l).map(e=>e.trim()).slice(0,t):[]}function d(e){return Array.isArray(e)?e.map(e=>{if(!e||typeof e!=`object`)return null;let t=e;return!l(t.question)||!l(t.answer)?null:{question:t.question.trim(),answer:t.answer.trim()}}).filter(e=>e!==null):[]}function f(e,t){if(!e||typeof e!=`object`)return null;let n=e;if(!l(n.title)||!l(n.goal))return null;let r=u(n.objectives,4);return r.length<2?null:{id:`l${t+1}`,title:n.title.trim(),goal:n.goal.trim(),objectives:r,concepts:u(n.concepts,8),...typeof n.minutes==`number`&&Number.isFinite(n.minutes)&&n.minutes>0?{minutes:Math.round(n.minutes)}:{}}}var p=new Set([`beginner`,`intermediate`,`expert`]);function m(e){return typeof e==`string`&&p.has(e)?e:void 0}function h(){try{let e=globalThis.crypto;if(e?.randomUUID)return e.randomUUID()}catch{}return`course-${Date.now().toString(36)}-${Math.floor(Math.random()*1e9).toString(36)}`}var g=`You are building a self-paced course syllabus — a real curriculum a motivated learner could follow lesson by lesson, each a single sitting that concretely builds on the one before.
2
-
3
- Rules:
4
- - 5-7 lessons. Each lesson is ONE sitting (15-30 min) with a narrow, specific scope — never a vague "overview" lesson.
5
- - Keep every field TIGHT: a syllabus, not prose. goal is a short phrase; objectives and concepts are short phrases, never full sentences. Brevity here is a hard requirement — it is what makes the course appear quickly.
6
- - Each lesson's objectives are exactly 2-3 CONCRETE, TESTABLE things the learner can DO afterward (e.g. "derive binary search's time complexity", not "understand binary search").
7
- - Lessons build in a real order: lesson N assumes everything taught in lessons 1..N-1 and never re-teaches it from scratch.
8
- - concepts: 2-3 short noun-phrase tags for what this lesson covers (used for tracking mastery later).
9
- - NEVER invent a fact, a number, or a claim you are not confident is correct. If a topic has genuine ambiguity or a detail you are unsure of, keep the lesson at a level of description you ARE sure of rather than fabricating specifics.
10
-
11
- Return ONLY valid JSON, no markdown fences, no prose:
12
- {
13
- "title": "a real course title",
14
- "subtitle": "one line on what the learner will be able to do by the end",
15
- "level": "beginner" | "intermediate" | "expert",
16
- "lessons": [
17
- { "title": "...", "minutes": 20, "goal": "one sentence on this lesson's payoff", "objectives": ["...", "..."], "concepts": ["...", "..."] }
18
- ]
19
- }`,_=`You write a short self-check for ONE lesson a learner just finished.
20
-
21
- Rules:
22
- - EXACTLY ${s} questions, each a short-answer question that tests one of THIS lesson's own objectives — never generic trivia, never anything outside the lesson's scope.
23
- - Each answer is the real, correct answer in one short line, phrased so a learner can self-grade against it.
24
- - NEVER invent a fact you are not confident is correct.
25
-
26
- Return ONLY valid JSON, no markdown fences, no prose:
27
- { "checkpoint": [{ "question": "...", "answer": "..." }, { "question": "...", "answer": "..." }] }`;function v(e){try{return JSON.parse(c(e))}catch{let t=e.match(/\{[\s\S]*\}/);return t?JSON.parse(t[0]):{}}}async function y(e,n,r,i){let s=t(e.provider),c=new AbortController,l={current:!1},u=setTimeout(()=>{l.current=!0,c.abort()},a),d=()=>c.abort();i.signal&&(i.signal.aborted?c.abort():i.signal.addEventListener(`abort`,d,{once:!0}));let f;try{f=await s.generate({system:n,history:[],user:r,maxTokens:i.maxTokens,temperature:i.temperature,format:null,signal:c.signal},e)}catch(t){throw l.current?Error(i.timeoutMessage,{cause:t}):i.signal?.aborted?t:Error(o(t,e.provider),{cause:t})}finally{clearTimeout(u),i.signal?.removeEventListener(`abort`,d)}return v(typeof f.raw==`string`?f.raw:``)}async function b(e,t,n={}){let a=await y(t,g,n.level?`Topic: "${e}"\nTarget level: ${n.level}`:`Topic: "${e}"`,{signal:n.signal,maxTokens:3200,temperature:.4,timeoutMessage:`Building the course took too long and was stopped — the model may be slow or rate-limited right now. Try again, or pick a more specific topic.`}),o=(Array.isArray(a.lessons)?a.lessons:[]).map((e,t)=>f(e,t)).filter(e=>e!==null).slice(0,i);if(o.length<r)throw Error(`Couldn't build a real course on "${e}" — only ${o.length} usable lesson${o.length===1?``:`s`} came back. Try a more specific topic, or try again.`);let s=n.level??m(a.level);return{id:h(),topic:e.trim(),title:l(a.title)?a.title.trim():e.trim(),lessons:o,createdAt:Date.now(),model:t.model,...l(a.subtitle)?{subtitle:a.subtitle.trim()}:{},...s?{level:s}:{}}}async function x(e,t,n,r){let i=e.lessons[t];if(!i)throw Error(`That lesson is no longer part of this course.`);let a=d((await y(n,_,[`Lesson: ${i.title}`,`Goal: ${i.goal}`,`Objectives:`,...i.objectives.map(e=>`- ${e}`)].join(`
28
- `),{signal:r,maxTokens:400,temperature:.3,timeoutMessage:`Writing the checkpoint took too long and was stopped — the model may be slow or rate-limited right now. Try again in a moment.`})).checkpoint);if(a.length<s)throw Error(`Couldn't write a checkpoint for "${i.title}" — try again in a moment.`);return a.slice(0,s)}export{n,x as t};