@mavea/mavea 1.0.18 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/CHANGELOG.md +59 -3
  2. package/README.md +5 -0
  3. package/dist/.vite/manifest.json +680 -514
  4. package/dist/assets/AnnotationLayer-IiuYsoSa.js +0 -0
  5. package/dist/assets/{AppCommandPalette-DKBglbNo.js → AppCommandPalette-Dm3SedPO.js} +1 -1
  6. package/dist/assets/CanvasSkeleton-CcHXJqdq.js +2 -0
  7. package/dist/assets/{CheckLogRail-Btg7Linv.js → CheckLogRail-BU_rmAFH.js} +1 -1
  8. package/dist/assets/{CommandPalette-DagPdSGZ.js → CommandPalette-E3reEqYR.js} +1 -1
  9. package/dist/assets/{ConversationVideoStudio-EPw6H4lE.js → ConversationVideoStudio-DEZBpJUz.js} +1 -1
  10. package/dist/assets/CourseLessonReader-Bpt-DkJo.js +2 -0
  11. package/dist/assets/{CourseRail-Dx9IIbTZ.js → CourseRail-C8MJG-zf.js} +1 -1
  12. package/dist/assets/{CoursesApp-CzUGaYWZ.js → CoursesApp-DFVkhP2f.js} +2 -2
  13. package/dist/assets/{DashPresent-DXwesMIr.js → DashPresent-DwWDtjrU.js} +1 -1
  14. package/dist/assets/DashboardDetail-D4wkiTux.js +2 -0
  15. package/dist/assets/DashboardLoopGate-B5UBPsvU.js +2 -0
  16. package/dist/assets/DashboardLoopRuntime-CAnZX234.js +1 -0
  17. package/dist/assets/{DashboardSettings-CmZWG3US.js → DashboardSettings-eMhHliVh.js} +1 -1
  18. package/dist/assets/DashboardsApp-BwFtTdWa.js +2 -0
  19. package/dist/assets/{DeepZoomApp-CwqKpjo7.js → DeepZoomApp-CxdcUeFJ.js} +1 -1
  20. package/dist/assets/{DelegatePanel-Bi1qPgGG.js → DelegatePanel-B0kIu8Et.js} +1 -1
  21. package/dist/assets/DemoGallery-B__X0_H3.js +1 -0
  22. package/dist/assets/{DropSelect-C3g0PjuN.js → DropSelect-C3uYlej-.js} +1 -1
  23. package/dist/assets/ExportModal-CDGlhpdH.js +2 -0
  24. package/dist/assets/ExtractionPreview-CloJnrQi.js +18 -0
  25. package/dist/assets/{FeatureUseNotice-BhljPjUv.js → FeatureUseNotice-CwHstxBh.js} +1 -1
  26. package/dist/assets/{FlagshipCommandPalette-DyNsP8k3.js → FlagshipCommandPalette-CHsD5BSH.js} +1 -1
  27. package/dist/assets/{FlagshipShowcase-DHpGPlca.js → FlagshipShowcase-D53Q_4m0.js} +1 -1
  28. package/dist/assets/{FlashcardsApp-Cm50X3Hl.js → FlashcardsApp-CnLfEnDH.js} +1 -1
  29. package/dist/assets/{GalleryApp-BFop9Eu7.js → GalleryApp-2Ffc6CY6.js} +1 -1
  30. package/dist/assets/{HonestByDesign-HeTTCiis.js → HonestByDesign-5jIu2ZC8.js} +1 -1
  31. package/dist/assets/{HowItWorks-gAuUl7VQ.js → HowItWorks-BiJF84EM.js} +1 -1
  32. package/dist/assets/{LegalApp-jOlpLQSV.js → LegalApp-zC-rvTww.js} +1 -1
  33. package/dist/assets/{LegalMarkdownDocument-RSNiyAu0.js → LegalMarkdownDocument-CJ-gRHdX.js} +1 -1
  34. package/dist/assets/{LegalPageShell-Cr90l1I2.js → LegalPageShell-Dyd4Uh3r.js} +1 -1
  35. package/dist/assets/{LibraryOverlay-DEQ5GuIs.js → LibraryOverlay-_xpWdhLN.js} +1 -1
  36. package/dist/assets/{LiveApp-Bl7WBgqJ.css → LiveApp-BNae3fDZ.css} +1 -1
  37. package/dist/assets/LiveApp-DjcJQURO.js +78 -0
  38. package/dist/assets/{LiveSettings-jn26sH4v.js → LiveSettings-BceODlOb.js} +3 -3
  39. package/dist/assets/{MindMapViewerDrawer-CDDzzpFi.js → MindMapViewerDrawer-BuDodC0s.js} +1 -1
  40. package/dist/assets/{MindShape-BeZFay7O.js → MindShape-CBcCC7hP.js} +1 -1
  41. package/dist/assets/PinToDashboard-DBIXvhlF.js +1 -0
  42. package/dist/assets/PlanReview-DUQ7OMvV.js +1 -0
  43. package/dist/assets/PresentationDeck-C518t9pP.js +1 -0
  44. package/dist/assets/PrismApp-DRLl8841.js +2 -0
  45. package/dist/assets/PrismAskController-QRwxRP8D.js +37 -0
  46. package/dist/assets/{PrismBriefingPlayer-BoB_PCTT.js → PrismBriefingPlayer-Kyb8Vs_w.js} +2 -2
  47. package/dist/assets/PrismOverlay-Bj7tCu5Q.js +105 -0
  48. package/dist/assets/{PrismWorkbench-f0rLNBxb.js → PrismWorkbench-BCnhkp-S.js} +1 -1
  49. package/dist/assets/{PrivacyApp-CFs0PM5C.js → PrivacyApp-DHSRr8wq.js} +1 -1
  50. package/dist/assets/{ReplayCard-BkJbY0-I.js → ReplayCard-CKo5reXy.js} +2 -2
  51. package/dist/assets/{ReplayOverlay-Dm_k7FBA.js → ReplayOverlay-DqAwLshS.js} +1 -1
  52. package/dist/assets/{RewindOverlay-BSDbLgcN.js → RewindOverlay-CkJIETE0.js} +1 -1
  53. package/dist/assets/RippleApp-C76VTaZK.js +2 -0
  54. package/dist/assets/{RippleAskController-CywVzqUA.js → RippleAskController-CdlMlRH8.js} +2 -2
  55. package/dist/assets/{RippleOverlay-DVxfWEQ8.js → RippleOverlay-Mvz3CXhD.js} +2 -2
  56. package/dist/assets/{SeeDontRead-Ct4PY63d.js → SeeDontRead-BkySmnP3.js} +1 -1
  57. package/dist/assets/{ShareModal-BILPvqjZ.js → ShareModal-Cl3ryjgK.js} +2 -2
  58. package/dist/assets/{ShipCourse-DGj9BbRM.js → ShipCourse-Cy5ldKLE.js} +1 -1
  59. package/dist/assets/{SignatureLoop-CfM-rTXb.js → SignatureLoop-Cdkifjb8.js} +1 -1
  60. package/dist/assets/SynthesisApp-C5udWwng.js +2 -0
  61. package/dist/assets/{SynthesisOverlay-Dunk_JWD.js → SynthesisOverlay-1o-CJsyX.js} +1 -1
  62. package/dist/assets/{TermsApp-BUQa48cB.js → TermsApp-DIAESAZs.js} +1 -1
  63. package/dist/assets/TopicCanvas-DkzJORfl.js +2 -0
  64. package/dist/assets/{TourPrism-zt1LIaLd.js → TourPrism-Bxp--s0i.js} +1 -1
  65. package/dist/assets/{TrackerTile-sYD2MM_4.js → TrackerTile-CyPD0A6b.js} +2 -2
  66. package/dist/assets/{TwoSurfaces-CLOIlVvY.js → TwoSurfaces-C_0XBpwA.js} +1 -1
  67. package/dist/assets/WhyMachineOverlay-QDSZx5Y7.js +1 -0
  68. package/dist/assets/WorldOverlay-DRdBQMnb.css +1 -0
  69. package/dist/assets/WorldOverlay-DorHCLzw.js +1 -0
  70. package/dist/assets/{WowFeatures-CNVwRlf0.js → WowFeatures-DNEeO2pr.js} +1 -1
  71. package/dist/assets/{ZoomDeck-DNgyW7Nm.js → ZoomDeck-qdlPe_yl.js} +1 -1
  72. package/dist/assets/{annotationAuto-C9weSF2k.js → annotationAuto-BmKrZ3hU.js} +1 -1
  73. package/dist/assets/{annotationReel-va1i-lKs.js → annotationReel-K2FYv-3B.js} +1 -1
  74. package/dist/assets/{backup-D--1WRte.js → backup-PaRBwjJy.js} +1 -1
  75. package/dist/assets/{blockTypes-CgNGx27_.js → blockTypes-DUDdP3pB.js} +1 -1
  76. package/dist/assets/canvas-BlkTFnVo.js +1 -0
  77. package/dist/assets/{capture-BBxyt5SN.js → capture-CL9ENM-c.js} +1 -1
  78. package/dist/assets/confirmAdd-CZPBG1xe.js +1 -0
  79. package/dist/assets/csv-DAqzYXUs.js +5 -0
  80. package/dist/assets/{dashboardEvents-BDKxoLch.js → dashboardEvents-D-wLCp1A.js} +1 -1
  81. package/dist/assets/dashboards-CdzGklae.css +1 -0
  82. package/dist/assets/display-BrieMea1.js +1 -0
  83. package/dist/assets/emphasize-BqCIst-B.js +1 -0
  84. package/dist/assets/engine-2U7mvPIl.js +1 -0
  85. package/dist/assets/engine-BF8FqSbi.css +1 -0
  86. package/dist/assets/explode-qQ7Fzt6V.js +15 -0
  87. package/dist/assets/{generate-CemSUZ8A.js → generate-C9vOL1C2.js} +3 -3
  88. package/dist/assets/generateBeats-DpDpBcgV.js +1 -0
  89. package/dist/assets/{generateCourse-BIBbw-ZJ.js → generateCourse-DU281tDE.js} +1 -1
  90. package/dist/assets/{generateLive-BsXn4Y_d.js → generateLive-_x2tWkBH.js} +18 -18
  91. package/dist/assets/{index-D1SPhBGd.js → index-CfcUMOBf.js} +4 -4
  92. package/dist/assets/index-D4FIsool.css +1 -0
  93. package/dist/assets/{kokoro-C6P0LV4L.js → kokoro-CdL8Kl48.js} +1 -1
  94. package/dist/assets/{liveSchema-B8OByCPH.js → liveSchema-B4bQtO88.js} +22 -21
  95. package/dist/assets/{model-BsQ5ixwB.js → model-DxwoIVpo.js} +1 -1
  96. package/dist/assets/nextFrame-12y0UrAd.js +1 -0
  97. package/dist/assets/notes-CUeZ1cYu.js +1 -0
  98. package/dist/assets/{number-DXgzss0v.js → number-Bmf7DqLj.js} +1 -1
  99. package/dist/assets/officeDoc-GU6Cssjf.js +3 -0
  100. package/dist/assets/openWorld-BHTJM39n.js +1 -0
  101. package/dist/assets/{pen-D9UT-ioQ.js → pen-BAEq0JnM.js} +1 -1
  102. package/dist/assets/{perfProbe-BxyiHsI2.js → perfProbe-3Ip5n0yx.js} +1 -1
  103. package/dist/assets/{pin-qQrH_dBi.js → pin-BwWjjqmt.js} +1 -1
  104. package/dist/assets/{planTracker-CjnznF7v.js → planTracker-BI9z_0gW.js} +1 -1
  105. package/dist/assets/portal-BJzn-Tgn.js +1 -0
  106. package/dist/assets/{prewarm-CAZcnT4x.js → prewarm-CheeUP2L.js} +1 -1
  107. package/dist/assets/providers-B2OCzEo1.js +1 -0
  108. package/dist/assets/{quietHours-_i5Uqz7z.js → quietHours-DCMczU9R.js} +1 -1
  109. package/dist/assets/ready-Ba6nk9O1.js +1 -0
  110. package/dist/assets/{ready-4lPJes2S.js → ready-DZY1bETr.js} +1 -1
  111. package/dist/assets/receipts-ClyzFFGD.js +1 -0
  112. package/dist/assets/{registry-CtvKPLd7.js → registry-BM9FDQxO.js} +1 -1
  113. package/dist/assets/{registry-BzH7mEl7.js → registry-BRbEINOV.js} +1 -1
  114. package/dist/assets/{registry-COkvZrNA.css → registry-BZuT2Epw.css} +1 -1
  115. package/dist/assets/{registry-NbNNn_ra.js → registry-ChQGee7C.js} +1 -1
  116. package/dist/assets/registry-D4Xdd7dO.js +1 -0
  117. package/dist/assets/{registry-CkScyZGa.js → registry-D_4_HlMg.js} +1 -1
  118. package/dist/assets/registry-DuP_q42N.js +1 -0
  119. package/dist/assets/{relate-DHPSGB7a.js → relate-BXcg3Ioz.js} +1 -1
  120. package/dist/assets/{replay-zh4xVk5G.js → replay-rSsGKjEc.js} +1 -1
  121. package/dist/assets/{run-ByCJN-29.js → run-CkaYNX89.js} +1 -1
  122. package/dist/assets/{run-BdDyp6Xv.js → run-aj7robML.js} +2 -2
  123. package/dist/assets/{run-DiPX83_J.js → run-ndUTOxjM.js} +1 -1
  124. package/dist/assets/seed-DN4mRJp-.js +1 -0
  125. package/dist/assets/shapes-C5fjibEc.js +42 -0
  126. package/dist/assets/{spokenText-D3iS8fuI.js → spokenText-C88IQJ0M.js} +1 -1
  127. package/dist/assets/store-B39HvB_l.js +1 -0
  128. package/dist/assets/theme-7IrMJ70_.js +1 -0
  129. package/dist/assets/types-C42I77wh.js +1 -0
  130. package/dist/assets/useDashboardLoop-B_YA5jLs.js +5 -0
  131. package/dist/assets/useDashboards-GafZIADI.js +1 -0
  132. package/dist/assets/useLiveConfig-DWz7BRdk.js +1 -0
  133. package/dist/assets/useSpatialCanvas-CfmZOXXP.js +1 -0
  134. package/dist/assets/{useStudy-B5874Bcg.js → useStudy-CFIuakaM.js} +1 -1
  135. package/dist/assets/validate-CnG23_8J.js +1 -0
  136. package/dist/assets/walkSync-AAocUygp.js +1 -0
  137. package/dist/index.html +13 -12
  138. package/package.json +2 -1
  139. package/dist/assets/AnnotationLayer-DHHGgh8x.js +0 -2
  140. package/dist/assets/CanvasSkeleton-Bx0s36b_.js +0 -2
  141. package/dist/assets/CourseLessonReader-DeAuL1tO.js +0 -2
  142. package/dist/assets/DashboardDetail-CJzB85NC.js +0 -2
  143. package/dist/assets/DashboardLoopRuntime-CEnUpS-I.js +0 -1
  144. package/dist/assets/DashboardsApp-wCgs98G0.js +0 -2
  145. package/dist/assets/DemoGallery-Cg0ykVpG.js +0 -1
  146. package/dist/assets/ExportModal-rxndDhoO.js +0 -2
  147. package/dist/assets/ExtractionPreview-ChRAimKr.js +0 -18
  148. package/dist/assets/LiveApp-CUoQgVo1.js +0 -62
  149. package/dist/assets/PinToDashboard-CSqwDBLD.js +0 -1
  150. package/dist/assets/PlanReview-ChZeUHQO.js +0 -1
  151. package/dist/assets/PresentationDeck-Dj9MQVZC.js +0 -1
  152. package/dist/assets/PrismApp-Dfs6eAuR.js +0 -2
  153. package/dist/assets/PrismAskController-CSsCkRC8.js +0 -37
  154. package/dist/assets/PrismOverlay-CGtr7lBl.js +0 -109
  155. package/dist/assets/RippleApp-DW1rpKHe.js +0 -2
  156. package/dist/assets/SynthesisApp-C43ZO6Ew.js +0 -2
  157. package/dist/assets/TopicCanvas-DR26Swr_.js +0 -2
  158. package/dist/assets/WhyMachineOverlay-Nll4Wco-.js +0 -1
  159. package/dist/assets/canvas-DIs20T9l.js +0 -1
  160. package/dist/assets/confirmAdd-BDNV8RqF.js +0 -1
  161. package/dist/assets/dashboards-Dy4MTJQ5.css +0 -1
  162. package/dist/assets/explode-fgkkWz8o.js +0 -13
  163. package/dist/assets/generateBeats-aqKTlSN2.js +0 -1
  164. package/dist/assets/index-B69GkoTc.css +0 -1
  165. package/dist/assets/notes-U6gRKVHk.js +0 -1
  166. package/dist/assets/officeDoc-Dn8jw1fG.js +0 -3
  167. package/dist/assets/portal-t0bsUEg2.js +0 -1
  168. package/dist/assets/providers-DdJWf_PE.js +0 -1
  169. package/dist/assets/ready-LSwk88I-.js +0 -1
  170. package/dist/assets/registry-CueC1vq1.js +0 -1
  171. package/dist/assets/registry-CxUmdwDk.js +0 -1
  172. package/dist/assets/shapes-DI0LQC8n.js +0 -1
  173. package/dist/assets/store-DpmbKVs7.js +0 -1
  174. package/dist/assets/theme-f0mztBcq.js +0 -1
  175. package/dist/assets/useDashboardLoop-DuckIfJX.js +0 -5
  176. package/dist/assets/useDashboards-BMcuCWoz.js +0 -1
  177. package/dist/assets/useLiveConfig-9eJ7EM3B.js +0 -1
  178. package/dist/assets/useSpatialCanvas-CtVsYmp8.js +0 -1
  179. /package/dist/assets/{registry-DLyrLfe-2.js → registry-DLyrLfe-.js} +0 -0
@@ -0,0 +1 @@
1
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{a as r,i,s as a}from"./spokenText-C88IQJ0M.js";import{t as o}from"./useFocusTrap-DBtkeyRy.js";import{r as s,t as c}from"./useSpatialCanvas-CfmZOXXP.js";import{i as l}from"./format-q0LwBjID.js";import{a as u,i as d,n as f,r as p}from"./scale-Bcgfo6Hp.js";import{t as m}from"./spreadLabels-CQ8hufvK.js";import{i as h,n as g,r as _,t as v}from"./display-BrieMea1.js";import{t as y}from"./types-C42I77wh.js";import{r as b,t as x}from"./sourceHost-BV3t2XDb.js";import{r as S}from"./stepDriver-DwjFet6U.js";import{c as C,l as w,o as T,u as E}from"./walkSync-AAocUygp.js";import{n as D}from"./emphasize-BqCIst-B.js";import{n as O,s as k}from"./receipts-ClyzFFGD.js";import{s as A,t as j}from"./validate-CnG23_8J.js";import{n as M,t as N}from"./engine-2U7mvPIl.js";var P=e(),F=t();function I(e){let t=[];for(let n of e?.points??[]){let e=A(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 L(e,t){let n=e.date?A(e.date.t):null;if(n!==null){let t=e.date?.until?A(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 R(e){return e.filter(e=>e.from!==e.to)}function z(e){return R(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 B(e){let t=[],n=(e,r)=>{let i=I(e.series),a=e.unit??e.series?.unit,o=L(e,i);t.push({id:e.id,label:e.label,role:e.role,depth:e.depth,tier:e.tier,...e.value===void 0?{}:{value:e.value},...a===void 0?{}:{unit:a},...i.length>0?{series:i}:{},...o?{date:o}:{},...e.domain===void 0?{}:{domain:e.domain},...r===void 0?{}:{parentId:r}});for(let t of e.children??[])n(t,e.id)};for(let t of e.nodes)n(t);return{nodes:t,edges:z(e.edges),outcomeId:e.outcomeId}}var V={w:1090,h:650},H=1.4,U=86*H;160*H;var W=116*H,G=9/(11*H),K=e=>String(Math.round(e*100)/100),q=e=>e&&/^[a-z-]{1,24}$/.test(e)?` morph-edge--rel-${e}`:``,J=525949.2*60*1e3,ee=e=>1970+e/J,te=e=>(e-1970)*J,ne=6e4,re=60*ne,ie={minute:ne,hour:re,day:24*re,month:J/12},ae=[{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}],oe=3,se=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],ce=64;function le(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 ue(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=le(i);return n&&a<e?le(i+t.n):a}let r=ie[t.grain]*t.n,i=Math.floor(e/r)*r;return n&&i<e?i+r:i}function de(e,t){let n=new Date(e);if(!Number.isFinite(n.getTime()))return String(Math.round(ee(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 Y(e,t){if(t.grain!==`month`)return e+ie[t.grain]*t.n;let n=new Date(e);return le(n.getUTCFullYear()*12+n.getUTCMonth()+t.n)}function fe(e,t,n){let r=ue(te(e),n,!1),i=ue(te(t),n,!0),a=[];for(let e=r;e<=i&&a.length<ce;e=Y(e,n))a.push({year:ee(e),text:de(e,n.grain)});return{domain:[ee(r),ee(i)],ticks:a}}function pe(e,t,n){let r=Math.max(1,Math.round(p(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 me(e,t,n=6){let[r,i]=e<t?[e,t]:[e-.5,t+.5];if(i-r>=oe)return pe(r,i,n);let a=(i-r)*J/n,o=ae[ae.length-1],s=1/0;for(let e of ae){let t=Math.abs(Math.log(ie[e.grain]*e.n/a));t<s&&(s=t,o=e)}return fe(r,i,o)}var he=8,ge=12,_e=16,ve=6,ye=12+Math.ceil(15.525*H);function be(e,t,n,r=V){let i=new Map;if(e.length===0)return{positions:i,band:null,bbox:t};let a=W+_e,o=44*H+ve,s=Math.max(t.w,r.w),c=Math.max(1,Math.floor((s-24+_e)/a)),l=Math.min(e.length,c),u=Math.ceil(e.length/c),d=l*W+(l-1)*_e,f={id:`shelf`,x:t.x,y:t.y+t.h+he,w:Math.max(t.w,d+24),h:ye+ve+u*o-ve+ge,className:`morph-shelf`,label:n};return e.forEach((e,t)=>{i.set(e.id,{x:f.x+ge+t%c*a,y:f.y+ye+ve+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 X=n(),Z=440,xe=2,Se=1.25,Ce=320;function Q(e){if(!(e===void 0||!Number.isFinite(e))){if(e<.995)return`weaker`;if(e>1.005)return`stronger`}}function $(){let e=(0,F.c)(5),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,X.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,X.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,X.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,X.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,X.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,X.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,X.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,X.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,X.jsxs)(`defs`,{children:[t,n,r,i,(0,X.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,X.jsx)(`circle`,{cx:`5`,cy:`5`,r:`2.6`})})]}),e[4]=a):a=e[4],a}function we(e,t){let n=(0,F.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,Ee);n.forEach((e,t)=>{let n=r[t];n!==null&&(e.style.setProperty(`--path-len`,`${n}px`),e.style.setProperty(`--delay`,`${Z}ms`),e.classList.add(`m-draw-path`))});let i=Te;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,P.useEffect)(r,i)}function Te(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 Ee(e){return typeof e.getTotalLength==`function`?e.getTotalLength():null}function De(e){let t=(0,F.c)(33),{chrome:n,bbox:r,exiting:i,onSettle:a}=e,o=(0,P.useRef)(null);we(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(ke),t[0]=n.bands,t[1]=f);let p;t[2]===n.paths?p=t[3]:(p=n.paths.map(Oe),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,X.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,X.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,X.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,X.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,X.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 Oe(e){return(0,X.jsx)(`path`,{className:e.className,d:e.d,fill:`none`,"data-draw":e.draw?``:void 0},e.id)}function ke(e){return(0,X.jsx)(`rect`,{className:`mv-band ${e.className}`,x:e.x,y:e.y,width:e.w,height:e.h,rx:12},e.id)}function Ae(e){if(e instanceof Element)return e.closest(`.mv-node`)?.dataset.id}var je=(0,P.memo)(function(e){let t=(0,F.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,P.useRef)(null);we(m,i.edgePaths);let{bbox:h}=i,g;if(t[0]!==r||t[1]!==n){let e=new Map(n.map(Ne));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,X.jsx)(De,{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,X.jsx)(De,{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,X.jsx)($,{}),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,X.jsxs)(`g`,{className:`mv-edge-g`,"data-lit":p===e.id?``:void 0,"data-shift":Q(_.get(e.id)),style:_.has(e.id)?{"--mv-shift":_.get(e.id)}:void 0,onClick:d?()=>d(e.id):void 0,children:[d&&(0,X.jsx)(`path`,{className:`mv-edge-hit`,d:e.d,fill:`none`}),(0,X.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,X.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,X.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":Q(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,X.jsxs)(`div`,{className:`mv-face mv-face-card`,children:[(0,X.jsx)(`span`,{className:`mv-label`,children:e.label}),(0,X.jsxs)(`span`,{className:`mv-card-foot`,children:[e.domain!==void 0&&(0,X.jsx)(`span`,{className:`mv-domain`,title:e.domain,"aria-label":e.domain}),e.value!==void 0&&(0,X.jsxs)(`span`,{className:`mv-value`,children:[e.value.toLocaleString(),e.unit??``]}),l?.(e,`card`),e.tier!==void 0&&(0,X.jsx)(`span`,{className:`mv-tier`,children:e.tier})]})]}),(0,X.jsx)(`div`,{className:`mv-face mv-face-entry`,children:(0,X.jsxs)(`span`,{className:`mv-label`,children:[o,o?` `:null,e.label]})}),(0,X.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,X.jsxs)(X.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 Me({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,P.useState)(!1),y=(0,P.useRef)(new Map),b=(0,P.useRef)(0),x=(0,P.useRef)(!1),S=(0,P.useRef)(!1),C=(0,P.useRef)(!1),w=(0,P.useRef)({x:0,y:0}),T=(0,P.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,P.useRef)(T);E.current=T,(0,P.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,Ae(e.target)),clearTimeout(t),t=setTimeout(()=>{x.current=!1},Ce);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,P.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,P.useRef)({dx:0,dy:0}),A=(0,P.useRef)(0),j=(0,P.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,P.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,P.useEffect)(()=>()=>cancelAnimationFrame(A.current),[]);let N=(0,P.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>Se||i<1/Se)&&(b.current=r,E.current(i,t,n,Ae(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)>xe&&!C.current&&(C.current=!0,e.currentTarget.setPointerCapture(e.pointerId)),w.current={x:e.clientX,y:e.clientY},M(n,r)},[M]),F=(0,P.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]),I=(0,P.useCallback)(e=>{C.current||r?.(e)},[r]),L=(0,P.useCallback)(e=>{e.propertyName===`transform`&&p()},[p]),{bbox:R}=c,z={transform:s.transform,width:R.w,height:R.h,"--mv-cam-scale":s.camera.scale};return(0,X.jsx)(`div`,{className:`mv-viewport`,ref:m,"data-panning":_?`true`:void 0,style:{"--mv-cam-scale":s.camera.scale},onPointerDown:O,onPointerMove:N,onPointerUp:F,onPointerCancel:F,children:(0,X.jsx)(`div`,{className:`mv-world`,style:z,"data-morphing":f?``:void 0,onTransitionEnd:L,children:(0,X.jsx)(je,{nodes:t.nodes,edges:t.edges,layout:c,exiting:l,settleExit:d,activate:I,lod:u,renderFace:n,onNodeClick:r,onEdgeClick:i,selectedId:a,litEdgeId:o})})})}function Ne(e){return[e.id,e.shift]}function Pe(e,t){return e===`in`?`zoom-camera`:t?`ascend`:`zoom-camera`}var Fe=880,Ie=340,Le=468,Re=56,ze=26,Be=16,Ve=7,He=30*H;function Ue(e){let t=(e.series??[]).filter(e=>Number.isFinite(e.t)&&Number.isFinite(e.v)).map(e=>({t:ee(e.t),v:e.v})).sort((e,t)=>e.t-t.t);return t.length>0?{node:e,points:t}:null}var We=e=>Ue(e)!==null;function Ge(e,t){let n=e*Math.max(Re,(t-1)*He+30)+(e-1)*ze,r=Math.min(Le,Math.max(Ie,n)),i=Math.max(He,Math.min(ze,r/(4*e)));return{h:(r-(e-1)*i)/e,gap:i}}function Ke(e,t,n){let[r,i]=e===t?f(e,t,n):[e,t],a=p(i-r,n),o=[Math.floor(r/a)*a,Math.ceil(i/a)*a];return{domain:o,ticks:u(o[0]-a*1e-9,o[1],a)}}function qe(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=Ue(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}=Ge(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}=Ke(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=me(t,n);return{x:u.domain,xTicks:u.ticks,bands:c,bandOf:l,height:c.length*a+(c.length-1)*o}}function Je(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 m(o,{gap:He,top:r,bottom:a}))n.set(e,t);o=[]}};for(let e of i)o.length>0&&e.x-o[o.length-1].x>=He&&s(),o.push(e);s()}return n}function Ye(e,t,n){let r=[],i=[];for(let n of e.nodes){let e=Ue(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=d(t.x,[56,56+Fe]),n=t.bands.map(e=>d(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 ${K(56)} ${K(i(t))} L ${K(56+Fe)} ${K(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*Ve);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*Ve/2;s=Math.min(s,i-a),c=Math.max(c,i+a)}),s=Math.min(s,56),c=Math.max(c,56+Fe),l=Math.max(l,56+t.height+28);let u=[...r].sort((e,t)=>e.node.id.localeCompare(t.node.id)),f=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)}}),p=Je(f,e=>({top:56+t.bands[e].top,bottom:56+t.bands[e].top+t.bands[e].h})),h=new Map,g=new Map;for(let e of f){let t=g.get(e.band);t?t.push(e):g.set(e.band,[e])}t.bands.forEach((e,t)=>{let n=g.get(t);if(n===void 0||n.length===0)return;let r=m(n.map(e=>({id:e.id,y:p.get(e.id)??e.y})),{gap:Be,top:56+e.top+6,bottom:56+e.top+e.h-6});for(let[e,t]of r)h.set(e,t)}),u.forEach((t,r)=>{let{x:i,y:s}=f[r],l=n[f[r].band],u=t.points.map((t,n)=>`${n===0?`M`:`L`} ${K(e(t.t))} ${K(l(t.v))}`).join(` `),d=t.node.id;o.paths.push({id:`series:${d}`,d:u,className:`morph-series`,draw:!0});let m=p.get(t.node.id)??s;Math.abs(m-s)>.01&&o.paths.push({id:`leader:${t.node.id}`,d:`M ${K(i)} ${K(s)} L ${K(i)} ${K(m)}`,className:`morph-tick`}),a.set(d,{x:i-15,y:m-15,w:30,h:30,face:`mark`});let g=i+15+8;o.labels.push({id:`label:${t.node.id}`,x:g,y:(h.get(t.node.id)??m)+4,text:t.node.label,className:`morph-series-label`,anchor:`start`}),c=Math.max(c,g+t.node.label.length*Ve)})}let u=be(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 Xe=(e,t)=>({rep:`chart`,...Ye(e,qe([e]),t?.viewport??V)}),Ze=new WeakMap;function Qe(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 $e(e){let t=Ze.get(e);if(t)return t;let n=Qe(e.edges,e=>typeof e.weight==`number`);return Ze.set(e,n),n}var et=340,tt=4,nt=U+30,rt=3;function it(e,t){return e.parentId===void 0&&$e(t).has(e.id)}var at=(e,t)=>{let n=t?.viewport??V,r=e.nodes.filter(e=>e.parentId===void 0),i=r.filter(t=>it(t,e)),a=r.filter(t=>!it(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<tt?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)*nt/2;t.forEach((t,r)=>{s.set(t.id,{x:56+e*et,y:56+n+r*nt,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 ${K(r)} ${K(i)} C ${K(c)} ${K(i)} ${K(c)} ${K(o)} ${K(a)} ${K(o)}`,className:`morph-edge morph-ribbon`+q(e.kind),width:rt+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=be(a,{x:0,y:0,w:112+(Math.max(1,...[...g.keys()].map(e=>e+1))-1)*et+200,h:112+_*nt},`${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}},ot=200;function st(e,t=24){let n=e.length;if(n<2)return;let r=0;for(let t of e)r=Math.max(r,t.w,t.h);r=Math.max(r+t,1);let i=Array(n),a=new Map;for(let o=0;o<ot;o++){a.clear();let o=[],s=[],c=[];for(let t=0;t<n;t++){let n=e[t],l=Math.floor((n.x+n.w/2)/r),u=Math.floor((n.y+n.h/2)/r),d=a.get(l);d===void 0&&(d=new Map,a.set(l,d));let f=d.get(u);f===void 0&&(f=c.length,d.set(u,f),o.push(l),s.push(u),c.push([])),c[f].push(t),i[t]=f}let l=c.map((e,t)=>{let n=[];for(let e=-1;e<=1;e++){let r=a.get(o[t]+e);if(r!==void 0)for(let e=-1;e<=1;e++){let i=r.get(s[t]+e);if(i!==void 0)for(let e of c[i])n.push(e)}}return n.sort((e,t)=>e-t)}),u=Array(c.length).fill(0),d=!1;for(let r=0;r<n;r++){let n=i[r],a=l[n],o=u[n];for(;o<a.length&&a[o]<=r;)o++;u[n]=o;let s=e[r];for(;o<a.length;o++){let n=a[o],i=e[n],c=i.x+i.w/2-(s.x+s.w/2),l=i.y+i.h/2-(s.y+s.h/2);c===0&&l===0&&(c=r-n,l=n-r);let u=(s.w+i.w)/2+t-Math.abs(c),f=(s.h+i.h)/2+t-Math.abs(l);if(!(u<=0||f<=0)){if(d=!0,u<=f){let e=u/2*(c<0?-1:1);s.x-=e,i.x+=e}else{let e=f/2*(l<0?-1:1);s.y-=e,i.y+=e}}}}if(!d)break}}var ct=300,lt=U+4,ut=4,dt=U+ut,ft=ct-200,pt=200+ut,mt=96,ht=30,gt=20,_t=18,vt=15,yt=2.5,bt=1/1.4,xt=1.7,St=2.6,Ct={rows:1,reach:0};function wt(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 Tt(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 Et(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]+ft;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 Dt=12;function Ot(e,t){let n=n=>{let r=(t.h-(n-1)*mt-112)/n,i=Math.max(2,Math.floor((r-64)/lt)+1),a=Tt(e,i),o=Math.max(1,Math.ceil(a.rows.length/n)),{bandRows:s,bandW:c}=Et(a,o),l=200;for(let e of c)l=Math.max(l,e);let u=(n-1)*mt;for(let e=0;e<n;e++)u+=((s[e]??1)-1)*lt+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>=bt)return r;let i=r;for(let e=2;e<=Dt;e++){let t=n(e);if(t.fit>=bt&&t.aspect<=yt)return t;if(t.fit>i.fit&&(i=t),t.perBand===1)break}return i}function kt(e,t,n){let r=Ot(t,n),i=Tt(t,r.rowCap),{columnX:a,bandRows:o}=Et(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)*lt+64;u.push(p+t/2),d.push(t),p+=t,f.push(p+mt/2),p+=mt}return{perBand:r.perBand,columnRows:i.rows,columnX:a,startOf:s,splitOf:c,centreY:u,height:d,gutterY:f}}function At(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 jt(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 Mt(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 Nt(e,t){let n=new Map(e.nodes.map(e=>[e.id,e])),r=Mt(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=At(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)??Ct;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,pt+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??V,b=kt(v,v.map(e=>wt(_.get(e),p)),y),x=new Map;for(let e of v){let t=_.get(e),n=jt(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*lt,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)*lt})})}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+pt,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-U/2,w:200,h:U}});st(t,ut),e.forEach((e,n)=>{c.set(e.id,{x:t[n].x+100,y:t[n].y+U/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(vt,e.h/(t+1)),H=[];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 ${K(e)} ${K(o)} C ${K(e)} ${K(c)} ${K(r)} ${K(c)} ${K(r)} ${K(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 ${K(s)} ${K(c)} C ${K(e)} ${K(c)} ${K(e)} ${K(u)} ${K(l)} ${K(u)}`}else{let e=N.get(r),t=L.get(r)??0;L.set(r,t+1);let n=Math.min(_t,(mt-32)/Math.max(1,e)),i=b.gutterY[r]+O+(t-(e-1)/2)*n,o=j+ht,d=Math.min(l,56)-ht,f=(o+d)/2;a=`M ${K(s)} ${K(c)} C ${K(o)} ${K(c)} ${K(o)} ${K(i)} ${K(f)} ${K(i)} C ${K(d)} ${K(i)} ${K(d)} ${K(u)} ${K(l)} ${K(u)}`}}H.push({id:e.id,d:a,className:`morph-edge`+q(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:xt+Math.min(1,Math.max(0,e.weight))*St}:{}})}let W=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:H,chrome:{bands:E||b.centreY.length<2?[]:b.centreY.map((e,t)=>{let n=Math.max(W.y,e-b.height[t]/2+O-gt),r=Math.min(W.y+W.h,e+b.height[t]/2+O+gt);return{id:`reading-band:${t}`,x:56-gt,y:n,w:j-56+40,h:Math.max(0,r-n),className:`morph-reading-band`}}),paths:[],labels:[]},bbox:W}}var Pt=(e,t)=>({rep:`graph`,...Nt(e,t)}),Ft=920,It=16,Lt=44+It,Rt=12,zt=8,Bt=12;function Vt(e){if(!e.date||!Number.isFinite(e.date.start))return null;let t=ee(e.date.start),n=e.date.end;return{node:e,startYear:t,...n!==void 0&&Number.isFinite(n)&&n>e.date.start?{endYear:ee(n)}:{}}}var Ht=e=>Vt(e)!==null;function Ut(e){let t=1/0,n=-1/0;for(let r of e)for(let e of r.nodes){let r=Vt(e);r&&(t=Math.min(t,r.startYear),n=Math.max(n,r.endYear??r.startYear))}return t===1/0?null:me(t,n,6)}function Wt(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 Gt(e,t,n){let r=[],i=[];for(let n of e.nodes){let e=Vt(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=d(t.domain,[56,56+Ft]),i=Wt(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+Bt,d)*Lt;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 f=u+It+Rt;o.paths.push({id:`axis`,d:`M ${K(56)} ${K(f)} L ${K(56+Ft)} ${K(f)}`,className:`morph-axis`}),t.ticks.forEach((e,t)=>{let r=n(e.year);o.paths.push({id:`tick:${t}`,d:`M ${K(r)} ${K(f)} L ${K(r)} ${K(f+zt)}`,className:`morph-tick`}),o.labels.push({id:`tick-label:${t}`,x:r,y:f+zt+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+Ft),u=f+zt+20;let p=new Set(r.map(e=>e.node.id));for(let t of e.edges){if(t.from===t.to||!p.has(t.from)||!p.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 ${K(r)} ${K(o)} C ${K(r)} ${K(o-l)} ${K(i)} ${K(c-l)} ${K(i)} ${K(c)}`,className:`morph-edge morph-edge--faint`+q(t.kind)})}}let f=be(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);f.band&&o.bands.push(f.band);for(let[e,t]of f.positions)a.set(e,t);return{positions:a,edgePaths:s,chrome:o,bbox:f.bbox}}var Kt=(e,t)=>({rep:`timeline`,...Gt(e,Ut([e]),t?.viewport??V)}),qt={min:G,max:2.2},Jt=56,Yt=1300,Xt=1300,Zt=.7,Qt=120,$t=120,en=[`graph`,`flow`,`timeline`,`chart`],tn={graph:Pt,timeline:Kt,chart:Xe,flow:at},nn={graph:`What caused what`,timeline:`The same causes, in time`,chart:`How much each one moved`,flow:`How much each one contributed`},rn={graph:()=>!0,timeline:Ht,chart:We,flow:it},an=2,on=1/3;function sn(e,t){let n=t.nodes.filter(e=>e.parentId===void 0);if(n.length===0)return!1;let r=n.filter(n=>rn[e](n,t)).length;return r>=Math.min(an,n.length)&&r/n.length>=on}var cn=e=>({x:0,y:0,w:e.w,h:e.h}),ln=(e,t,n)=>[t-e.x,n-e.y];function un(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]=ln(e.bbox,i-Qt,a-Qt);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,P.useState)(e.initialRep??`graph`),[l,u]=(0,P.useState)(()=>new Set),[d,f]=(0,P.useState)(null),p=c({clamp:qt,margin:Jt,...i===void 0?{}:{insetBottom:i}}),m=(0,P.useRef)(void 0),{viewport:h}=p,g=(0,P.useMemo)(()=>h?{w:Math.max(1,h.w-112),h:Math.max(1,h.h-112)}:void 0,[h]),_=(0,P.useMemo)(()=>tn[a](t,{expandedIds:l,previous:m.current,...g?{viewport:g}:{}}),[a,t,l,g]);(0,P.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,P.useRef)(a);v.current=a;let y=(0,P.useRef)(_);y.current=_;let b=(0,P.useRef)(p.camera);b.current=p.camera;let x=(0,P.useRef)(l);x.current=l;let C=(0,P.useRef)(n);C.current=n;let[w,T]=(0,P.useState)(null),{endFlight:E}=p,D=(0,P.useCallback)(()=>{T({layout:y.current,rep:v.current,expandedIds:x.current}),E()},[E]),O=(0,P.useRef)(0),k=(0,P.useRef)(void 0);(0,P.useEffect)(()=>()=>clearTimeout(k.current),[]);let A=(0,P.useCallback)(e=>{if(e===v.current)return;let t=++O.current;f({layout:y.current,token:t}),clearTimeout(k.current),k.current=setTimeout(()=>{t===O.current&&f(null)},Yt),v.current=e,o(e)},[]),j=(0,P.useCallback)(e=>{e===O.current&&(clearTimeout(k.current),f(null))},[]),M=(0,P.useRef)(null),N=(0,P.useCallback)(e=>{let t=new Set(x.current);t.delete(e)||(t.add(e),M.current=e),u(t)},[]),F=(0,P.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:I,setCamera:L,viewportRef:R}=p;(0,P.useEffect)(()=>{let e=M.current;if(M.current=null,e!==null){let t=un(_,e,F);if(t){I(t);return}}I(cn(_.bbox))},[_,F,I,L,R]);let z=(0,P.useMemo)(()=>new Map(t.nodes.map(e=>[e.id,e.parentId])),[t]),B=(0,P.useMemo)(()=>{let e=new Set;for(let t of z.values())t!==void 0&&e.add(t);return e},[z]),V=(0,P.useCallback)(e=>{let t=0,n=e,r=new Set;for(;n!==void 0&&!r.has(n);)r.add(n),n=z.get(n),n!==void 0&&(t+=1);return t},[z]),{zoomAtClient:H}=p,U=(0,P.useCallback)((e,t,n,r)=>{if(e>=1)return r!==void 0&&B.has(r)&&!x.current.has(r)?(N(r),`expand`):(H(e,t,n),`zoom`);let i=R.current?.getBoundingClientRect();if(Pe(`out`,!!i&&(i.width>0||i.height>0)&&s(b.current,cn(y.current.bbox),{w:i.width,h:i.height},Jt,qt))===`zoom-camera`)return H(e,t,n),`zoom`;let a=[...x.current];if(a.length>0){let e=a[0],t=V(e);for(let n of a){let r=V(n);r>t&&(e=n,t=r)}return N(e),`collapse`}return C.current?.(),`ascend`},[B,N,H,R,V]),W=(0,P.useCallback)(e=>{let t=y.current,n=e===null?void 0:t.positions.get(e);if(!n||n.folded){I(cn(t.bbox));return}let[r,i]=ln(t.bbox,n.x-$t,n.y-$t);I({x:r,y:i,w:n.w+240,h:n.h+240})},[I]);(0,P.useEffect)(()=>{if(r!==void 0)return S(r,{count:en.length,setIndex:e=>A(en[Math.min(en.length-1,Math.max(0,Math.trunc(e)))]),spokenFor:()=>void 0,captionFor:e=>{let t=en[e];return t?nn[t]:void 0}})},[r,A]);let G=w?.layout!==_||p.flying;return(0,P.useEffect)(()=>{if(!G)return;let e=setTimeout(D,Xt);return()=>clearTimeout(e)},[G,_,D]),{rep:a,setRep:A,layout:_,exiting:d,settleExit:j,expandedIds:l,toggleExpand:N,cam:p,morphing:G,settle:D,lod:p.camera.scale>=Zt?`near`:`far`,pinch:U,focusNode:W}}function fn({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,X.jsxs)(`label`,{className:`viz-ctl`,style:{"--ctl-c":s,"--ctl-pct":l+`%`},children:[(0,X.jsx)(`span`,{className:`viz-ctl-label`,children:e}),(0,X.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,X.jsx)(`span`,{className:`viz-ctl-val tab-num`,children:o?o(i):i.toLocaleString()})]})}var pn=`No cause is established yet, so there is nothing to push on.`;function mn(e){let t=(0,F.c)(17),{levers:n,onSet:r,onReset:i}=e,a;t[0]===n?a=t[1]:(a=n.every(gn),t[0]=n,t[1]=a);let o=a,s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,X.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,X.jsxs)(`div`,{className:`tr-levers-head`,children:[s,(0,X.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,X.jsx)(`p`,{className:`tr-levers-empty`,children:pn}),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,X.jsx)(fn,{label:e.label,min:0,max:100,value:e.pct,onChange:t=>r(e.id,t),format:hn},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,X.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 hn(e){return`${e}%`}function gn(e){return e.pct===100}var _n=(0,P.memo)(mn);function vn(e){return e.kind}var yn=(0,P.createContext)(null);function bn(){return(0,P.useContext)(yn)}function xn(e){let t=(0,F.c)(19),{id:n,className:r}=e,i=bn(),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,X.jsx)(`span`,{className:`${d} tr-num-qual`,"data-status":`structure`,children:e.resolution.raw});break bb0}a=`button`,o=d,s=vn(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=_(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,X.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,X.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 Sn=8,Cn=6;function wn(e,t,n){return Math.max(Sn,Math.min(e,n-t-Sn))}function Tn(e,t,n){if(!(e.width>0||e.height>0||e.left>0||e.top>0))return{left:wn((n.w-t.w)/2,t.w,n.w),top:wn((n.h-t.h)/2,t.h,n.h)};let r=e.bottom+Cn,i=e.top-Cn-t.h,a=r+t.h+Sn>n.h&&i>=Sn;return{left:wn(e.left,t.w,n.w),top:wn(a?i:r,t.h,n.h)}}var En=320,Dn=340,On=8;function kn(e){let t=(0,F.c)(64),{registry:n,valueId:r,anchorRect:i,trail:a,hinted:s,onMarkHinted:c,onDrill:l,onBack:u,onNavigate:d,onDismiss:f}=e,p=(0,P.useRef)(null),m;t[0]===f?m=t[1]:(m={onEscape:f},t[0]=f,t[1]=m),o(p,m);let[y]=(0,P.useState)(!s),S,C;t[2]===c?(S=t[3],C=t[4]):(S=()=>c(),C=[c],t[2]=c,t[3]=S,t[4]=C),(0,P.useEffect)(S,C);let w=(0,P.useRef)(!0),T;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(T=()=>{w.current||p.current?.focus({preventScroll:!0}),w.current=!1},t[5]=T):T=t[5];let E;t[6]===r?E=t[7]:(E=[r],t[6]=r,t[7]=E),(0,P.useEffect)(T,E);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,P.useEffect)(D,O);let k=n.values,A,j,M,N,I,L,R,z,B,V,H,U,W,G;if(t[11]!==i||t[12]!==u||t[13]!==l||t[14]!==d||t[15]!==n.usedIn||t[16]!==n.values||t[17]!==a||t[18]!==r){U=Symbol.for(`react.early_return_sentinel`);bb0:{if(G=k.get(r),!G){U=null;break bb0}let e=vn(G),o=G.scope,s=n.usedIn.get(r)??[],c=G.kind===`grounded`?G.resolution.receipt:null,f=G.kind===`grounded`&&G.resolution.tier===`T1`,m=c?.url?b(c.url):null,y=c?c.host??(c.url?x(c.url):null):null,S=G.kind===`calculated`?G.calc.inputs:[],C=S.slice(0,On),w=S.length-C.length,T;t[33]!==n.values||t[34]!==a?(T=a.length>0?n.values.get(a[a.length-1]):void 0,t[33]=n.values,t[34]=a,t[35]=T):T=t[35];let E=T,D;t[36]===i?D=t[37]:(D=Tn(i,{w:En,h:Dn},{w:window.innerWidth,h:window.innerHeight}),t[36]=i,t[37]=D);let{left:O,top:P}=D;W=p,A=`tr-card`,j=`dialog`,M=`false`,N=`Where ${G.label} came from`,I=-1,t[38]!==O||t[39]!==P?(L={left:O,top:P,width:En,maxHeight:Dn},t[38]=O,t[39]=P,t[40]=L):L=t[40];let F;t[41]!==u||t[42]!==E?(F=E&&(0,X.jsxs)(`button`,{type:`button`,className:`tr-back`,onClick:u,"aria-label":`Back to ${E.label}`,children:[`‹ back`,(0,X.jsxs)(`span`,{className:`tr-back-to`,children:[` to `,E.label]})]}),t[41]=u,t[42]=E,t[43]=F):F=t[43],R=(0,X.jsxs)(`header`,{className:`tr-head`,children:[F,(0,X.jsx)(`span`,{className:`tr-badge`,"data-status":e,children:v[e]}),(0,X.jsx)(`p`,{className:`tr-figure`,children:_(G)}),(0,X.jsx)(`p`,{className:`tr-label`,children:G.label})]}),z=c&&(0,X.jsxs)(`section`,{className:`tr-sec`,children:[(0,X.jsx)(`h3`,{className:`tr-sec-title`,children:`SOURCE`}),c.quote&&(0,X.jsxs)(`blockquote`,{className:`tr-quote`,children:[`“`,c.quote,`”`]}),f?(0,X.jsx)(`p`,{className:`tr-host`,children:h(c)}):y&&(0,X.jsxs)(`p`,{className:`tr-host`,children:[m?(0,X.jsx)(`a`,{href:m,target:`_blank`,rel:`noreferrer noopener`,children:y}):y,c.date&&(0,X.jsxs)(`span`,{className:`tr-date`,children:[` · `,c.date]})]})]}),B=o&&(o.region||o.period||o.unit)&&(0,X.jsxs)(`section`,{className:`tr-sec`,children:[(0,X.jsx)(`h3`,{className:`tr-sec-title`,children:`SCOPE`}),(0,X.jsx)(`p`,{className:`tr-chips`,children:[o.region,o.period,o.unit].filter(jn).map(An)})]}),V=G.kind===`calculated`&&(0,X.jsxs)(`section`,{className:`tr-sec`,children:[(0,X.jsx)(`h3`,{className:`tr-sec-title`,children:`CALCULATION`}),(0,X.jsx)(`p`,{className:`tr-formula`,children:g(G.calc.formula,e=>n.values.get(e)?.label)}),(0,X.jsx)(`ul`,{className:`tr-inputs`,children:C.map(e=>{let t=n.values.get(e);return(0,X.jsx)(`li`,{children:t?(0,X.jsxs)(`button`,{type:`button`,className:`tr-input`,onClick:()=>l(e),children:[(0,X.jsx)(`span`,{className:`tr-input-label`,children:t.label}),(0,X.jsx)(`span`,{className:`tr-input-val`,children:_(t)})]}):(0,X.jsx)(`span`,{className:`tr-input tr-input-missing`,children:e})},e)})}),w>0&&(0,X.jsxs)(`p`,{className:`tr-more`,children:[`…and `,w,` more`]}),G.calc.note&&(0,X.jsx)(`p`,{className:`tr-note`,children:G.calc.note})]}),H=s.length>0&&(0,X.jsxs)(`section`,{className:`tr-sec`,children:[(0,X.jsx)(`h3`,{className:`tr-sec-title`,children:`USED IN`}),(0,X.jsx)(`ul`,{className:`tr-used`,children:s.map(e=>(0,X.jsx)(`li`,{children:d?(0,X.jsx)(`button`,{type:`button`,className:`tr-usedin`,onClick:()=>d(e),children:e.label}):(0,X.jsx)(`span`,{className:`tr-usedin tr-usedin-flat`,children:e.label})},`${e.surface}:${e.id}:${e.label}`))})]})}t[11]=i,t[12]=u,t[13]=l,t[14]=d,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]=I,t[24]=L,t[25]=R,t[26]=z,t[27]=B,t[28]=V,t[29]=H,t[30]=U,t[31]=W,t[32]=G}else A=t[19],j=t[20],M=t[21],N=t[22],I=t[23],L=t[24],R=t[25],z=t[26],B=t[27],V=t[28],H=t[29],U=t[30],W=t[31],G=t[32];if(U!==Symbol.for(`react.early_return_sentinel`))return U;let K;t[44]!==G.kind||t[45]!==G.resolution?(K=G.kind===`illustrative`&&(0,X.jsxs)(`p`,{className:`tr-caveat`,children:[`Illustrative — shows the shape, not a measured fact. `,G.resolution.illustrative]}),t[44]=G.kind,t[45]=G.resolution,t[46]=K):K=t[46];let q;t[47]===y?q=t[48]:(q=y&&(0,X.jsx)(`p`,{className:`tr-hint`,children:`Any figure like this one opens its own receipt.`}),t[47]=y,t[48]=q);let J;return t[49]!==A||t[50]!==j||t[51]!==M||t[52]!==N||t[53]!==I||t[54]!==L||t[55]!==R||t[56]!==z||t[57]!==B||t[58]!==V||t[59]!==H||t[60]!==K||t[61]!==q||t[62]!==W?(J=(0,X.jsxs)(`div`,{ref:W,className:A,role:j,"aria-modal":M,"aria-label":N,tabIndex:I,style:L,children:[R,z,B,V,H,K,q]}),t[49]=A,t[50]=j,t[51]=M,t[52]=N,t[53]=I,t[54]=L,t[55]=R,t[56]=z,t[57]=B,t[58]=V,t[59]=H,t[60]=K,t[61]=q,t[62]=W,t[63]=J):J=t[63],J}function An(e){return(0,X.jsx)(`span`,{className:`tr-chip`,children:e},e)}function jn(e){return!!e}function Mn(e){let t=(0,F.c)(23),{registry:n,onNavigate:r,children:i,ref:a}=e,[o,s]=(0,P.useState)(null),[c,l]=(0,P.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,P.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,P.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(Nn)},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,X.jsx)(kn,{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,X.jsxs)(yn.Provider,{value:T,children:[i,E]}),t[19]=i,t[20]=E,t[21]=T,t[22]=D):D=t[22],D}function Nn(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 Pn=.33,Fn=.1,In=.005;function Ln(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<=In)return`would barely change`;let a=r>0?`rise`:`fall`;return i>=Pn?`would ${a} meaningfully`:i>=Fn?`would ${a} somewhat`:`would ${a} slightly`}var Rn=.6;function zn(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>=Rn?`much ${r}`:n>=Pn?r:`slightly ${r}`}var Bn=`Recomputed locally from the causes above — a model of what would happen, never an observation.`,Vn=`What was actually measured. This column never moves when a lever is pulled.`;function Hn(e,t){return(e>0?`+`:``)+l(e,t)}function Un(e){return e!==null&&Number.isFinite(e)&&e>=0&&e<=1}function Wn(e){return e.exactBase===null?`nothing measured stands behind this outcome`:`not every step is grounded, so the total stays unmeasured`}function Gn(e){let t=(0,F.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?l(n.exactBase,i):null,t[0]=n.exactBase,t[1]=n.fullyGrounded,t[2]=i,t[3]=s):s=t[3];let c=s,u=r.exactBase??n.exactBase,d=a?`1`:void 0,f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,X.jsx)(`span`,{className:`tr-chip tr-wi-chip`,title:Vn,children:`OBSERVED`}),t[4]=f):f=t[4];let p;t[5]!==n||t[6]!==c||t[7]!==o?(p=(0,X.jsxs)(`div`,{className:`tr-wi-col`,children:[f,c===null?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`p`,{className:`tr-wi-figure tr-wi-dash`,children:`—`}),(0,X.jsx)(`p`,{className:`tr-wi-note tr-wi-why`,children:o??Wn(n)})]}):(0,X.jsx)(`p`,{className:`tr-wi-figure`,children:c})]}),t[5]=n,t[6]=c,t[7]=o,t[8]=p):p=t[8];let m;t[9]!==a||t[10]!==u||t[11]!==r.exactDelta||t[12]!==r.explainedPct||t[13]!==r.fullyGrounded||t[14]!==r.relBase||t[15]!==r.relCur||t[16]!==i?(m=a&&(0,X.jsxs)(`div`,{className:`tr-wi-col tr-wi-hypo`,"data-world":`hypothetical`,children:[(0,X.jsx)(`span`,{className:`tr-chip tr-wi-chip tr-wi-chip-hypo`,title:Bn,children:`HYPOTHETICAL (MODELED)`}),r.fullyGrounded&&u!==null&&r.exactDelta!==null?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`p`,{className:`tr-wi-figure`,children:l(u+r.exactDelta,i)}),(0,X.jsx)(`p`,{className:`tr-wi-delta`,children:Hn(r.exactDelta,i)}),Un(r.explainedPct)&&(0,X.jsxs)(`p`,{className:`tr-wi-note`,children:[Math.round(r.explainedPct*100),`% explained`]})]}):r.relCur===null?(0,X.jsx)(`p`,{className:`tr-wi-figure tr-wi-dash`,children:`—`}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`p`,{className:`tr-wi-figure tr-wi-phrase`,children:Ln(r.relBase??0,r.relCur)}),(0,X.jsx)(`p`,{className:`tr-wi-note`,children:`relative, not measured`})]})]}),t[9]=a,t[10]=u,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]=m):m=t[17];let h;return t[18]!==d||t[19]!==p||t[20]!==m?(h=(0,X.jsxs)(`div`,{className:`tr-wi`,"data-active":d,children:[p,m]}),t[18]=d,t[19]=p,t[20]=m,t[21]=h):h=t[21],h}var Kn=(0,P.memo)(Gn);function qn(e,t){let n=new Map,r=(t,r)=>{if(!e.has(t))return;let i=n.get(t);i?i.push(Object.freeze(r)):n.set(t,[Object.freeze(r)])};for(let e of t)r(e.valueId,{surface:e.surface,id:e.id,label:e.label});for(let t of e.values())if(t.kind===`calculated`)for(let e of t.calc.inputs)r(e,{surface:`calc`,id:t.id,label:`input to ${t.label}`});for(let e of n.values())Object.freeze(e);return Object.freeze({values:e,usedIn:n})}function Jn(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 Yn(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 Xn(e){return{center:e.title,outcomeId:e.outcomeId,nodes:e.nodes.map(Jn),edges:e.edges.map(Yn),provenance:{...e.provenance.illustrative?{illustrative:!0}:{},...e.provenance.notes?.length?{notes:e.provenance.notes}:{}}}}var Zn=1100;function Qn(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=C(t.say),o=n.speakLine?.(t.say)??null,s=o?await E(o):!1;if(n.isCancelled()){a(`cancelled`);return}n.apply(t,r),o&&s?await w(o,i,Zn):await T(i)}a(n.isCancelled()?`cancelled`:`complete`)})()}function $n({beats:e,apply:t,speakLine:n}){let[r,i]=(0,P.useState)(-1),[a,o]=(0,P.useState)(!1),s=(0,P.useRef)(0),c=(0,P.useRef)(e);c.current=e;let l=(0,P.useRef)(t);l.current=t;let u=(0,P.useRef)(n);u.current=n;let d=(0,P.useCallback)(()=>{s.current+=1,o(!1)},[]),f=(0,P.useCallback)(e=>{let t=s.current+=1;o(!0),Qn(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,P.useEffect)(()=>()=>void(s.current+=1),[]),(0,P.useEffect)(()=>{s.current+=1,o(!1),i(-1)},[e]);let p=(0,P.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,P.useCallback)(e=>{let t=c.current.length;t!==0&&f(Math.min(Math.max(e,0),t-1))},[f]),h=(0,P.useCallback)(()=>{d(),i(-1)},[d]);return{index:r,playing:a,caption:r>=0?e[r]?.caption??null:null,toggle:p,seek:m,reset:h}}var er=e=>`node:${e}`,tr=(e,t)=>`node:${e}@${t}`;function nr(e){let t=(0,F.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,X.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,X.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,X.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,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:`wo-track`,role:`group`,"aria-label":`Walkthrough beats`,children:Array.from({length:n},(e,t)=>(0,X.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,X.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,X.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,X.jsx)(`p`,{className:`wo-caption`,"aria-live":`polite`,children:a===null?``:D(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,X.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 rr=170,ir={contributes:`fed by`,causes:`driven by`,dampens:`held back by`,enables:`made possible by`,correlates:`moving together with`},ar={1:`pushed up by`,[-1]:`pushed down by`};function or(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 sr={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 cr(e,t){let n=e.values.get(er(t));if(!n||n.kind===`structure`)return null;let r=_(n);return n.kind===`illustrative`?{say:`Illustratively, about ${r}.`,shown:`Illustratively, about ${r}.`}:{say:`Measured at ${r}.`,shown:`Measured at ${r}.`}}function lr(e){return e.kind?e.kind===`dampens`||e.kind===`enables`||e.kind===`correlates`:e.sign===-1}function ur(e){return e.kind&&ir[e.kind]?ir[e.kind]:ar[e.sign??1]??`fed by`}function dr(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 fr(e,t,n,o={}){let s=dr(t);if(s.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(s.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=s.at(-1)===e.outcomeId?s.length-1:s.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,o]of s.entries()){let u=c.get(o),p=l.get(o)??o,m=d(o),g=o===e.outcomeId&&t===s.length-1,_=m?l.get(m.from)??m.from:null,v;v=g?m?`And it ends here: ${or(p)} — ${ur(m)} ${m.from===h?`it`:or(_??``)}.`:`And it ends here: ${or(p)}.`:m?m.from===h?lr(m)?`Then ${or(p)} — ${ur(m)} it.`:`Then ${or(p)}.`:`${p} — ${ur(m)} ${or(_??``)}.`:t===0?`It starts with ${or(p)}.`:`Alongside it: ${p}.`,h=o;let y=[v],b=[v],x=cr(n,o);x&&(y.push(x.say),b.push(x.shown));let S=u?.detail;S&&(y.push(a(r(S),rr)),b.push(a(i(S),rr))),f.push({nodeId:o,...m?{edgeId:m.id}:{},say:y.join(` `),caption:b.join(` `)})}if(o.closeOn){let t=sr[o.closeOn];f.push({nodeId:e.outcomeId,wide:!0,rep:o.closeOn,say:t,caption:t})}return f}var pr=[{rep:`graph`,label:`Graph`},{rep:`flow`,label:`Contribution`},{rep:`timeline`,label:`Over time`},{rep:`chart`,label:`As a chart`}],mr={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.`},hr=`Shows the shape, not your numbers.`,gr=`an illustrative world measures nothing, so there is no baseline`;function _r(e,t,n,r,i,a,o,s){if(!Number.isFinite(n))return null;let c=l(n,i),u={...i?{unit:i}:{},...s?{period:s}:{}},d={id:e,label:t,...i||s?{scope:u}:{}};return o||r===`T3`?{...d,kind:`illustrative`,resolution:{ok:!0,tier:`T3`,value:n,raw:c,illustrative:a?.quote??hr,surface:`model`}}:!a||!y(r)?null:r===`T1`?{...d,kind:`grounded`,resolution:{ok:!0,tier:`T1`,value:n,raw:c,receipt:a,surface:`user`}}:{...d,kind:`grounded`,resolution:{ok:!0,tier:`T2`,value:n,raw:c,receipt:a,surface:`web`}}}function vr(e,t){let n=e.provenance.illustrative===!0,r=new Map,i=[],a=new Map,o=(e,t)=>{!e||r.has(e.id)||(r.set(e.id,e),i.push(t))},s=e=>{a.set(e.id,e.label);let t=e.series,r=e.unit??t?.unit,i=t=>({valueId:t,surface:`node`,id:e.id,label:e.label});if(e.value!==void 0){let t=er(e.id);o(_r(t,e.label,e.value,e.tier,r,e.receipt,n),i(t))}if(t)for(let r of t.points){let a=tr(e.id,r.t),s=`${e.label} · ${r.t}`,c=r.receipt??t.receipt,l=_r(a,s,r.value,t.tier,t.unit,c,n,r.t);o(l,i(a))}for(let t of e.children??[])s(t)};for(let t of e.nodes)s(t);return R(e.edges).forEach((e,n)=>{let r=`${a.get(e.from)??e.from} ${e.verb??`→`} ${a.get(e.to)??e.to}`,o=t.edges[n]?.id;if(o!==void 0)for(let t of[e.from,e.to])i.push({valueId:er(t),surface:`edge`,id:o,label:r})}),qn(r,i)}function yr(e){let{value:t,...n}=e;return n}function br(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 xr(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 Sr(e){let t=(0,F.c)(11),{spec:n,question:r,failed:i,onRetry:a,onClose:o,view:s,onExpandNode:c,speakLine:l}=e;if(n){let e;return t[0]!==o||t[1]!==c||t[2]!==l||t[3]!==n||t[4]!==s?(e=(0,X.jsx)(wr,{spec:n,view:s,onClose:o,onExpandNode:c,speakLine:l}),t[0]=o,t[1]=c,t[2]=l,t[3]=n,t[4]=s,t[5]=e):e=t[5],e}let u=r??``,d=i===!0,f;return t[6]!==o||t[7]!==a||t[8]!==u||t[9]!==d?(f=(0,X.jsx)(Cr,{title:u,failed:d,onRetry:a,onClose:o}),t[6]=o,t[7]=a,t[8]=u,t[9]=d,t[10]=f):f=t[10],f}function Cr(e){let t=(0,F.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,X.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,X.jsxs)(`div`,{className:`wo-title`,children:[s,(0,X.jsx)(`h2`,{children:n})]}),t[1]=n,t[2]=c);let l;t[3]===a?l=t[4]:(l=a&&(0,X.jsx)(`div`,{className:`wo-head-actions`,children:(0,X.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,X.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,X.jsx)(`div`,{className:`wo-shell`,role:`status`,"aria-live":`polite`,children:r?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`p`,{className:`wo-shell-line`,children:`This world didn’t come back.`}),(0,X.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,X.jsx)(`button`,{type:`button`,className:`wo-btn`,onClick:i,children:`Try again`})]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`span`,{className:`wo-shell-pulse`,"aria-hidden":`true`}),(0,X.jsx)(`p`,{className:`wo-shell-line`,children:`Building this world…`}),(0,X.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,X.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,X.jsx)(`section`,{className:`wo-scrim`,"aria-label":o,children:f}),t[14]=o,t[15]=f,t[16]=p):p=t[16],p}function wr({spec:e,view:t,onClose:n,onExpandNode:r,speakLine:i}){let[a,o]=(0,P.useState)(()=>new Map),[s,c]=(0,P.useState)(null),l=(0,P.useMemo)(()=>{if(a.size===0)return e;let t=e;for(let[e,n]of a)t=j(t,e,n);return t},[e,a]),u=l.provenance.illustrative===!0,d=(0,P.useMemo)(()=>B(l),[l]),f=(0,P.useMemo)(()=>vr(l,d),[l,d]),p=(0,P.useMemo)(()=>Xn(l),[l]),[m,h]=(0,P.useState)(()=>new Map),[g,_]=(0,P.useState)(null),[v,y]=(0,P.useState)(!1),b=(0,P.useMemo)(()=>[...m.values()].some(e=>e!==100),[m]),x=(0,P.useMemo)(()=>[...m].map(([e,t])=>({nodeId:e,pct:t/100})),[m]),S=(0,P.useMemo)(()=>N(p,[]),[p]),C=(0,P.useMemo)(()=>N(p,x),[p,x]),w=(0,P.useMemo)(()=>b?br(S,C):null,[b,S,C]),T=(0,P.useDeferredValue)(w),E=(0,P.useCallback)(e=>sn(e,d),[d]),D=t&&E(t)?t:void 0,A=dn({world:d,insetBottom:v?108:54,...D?{initialRep:D}:{}}),{rep:F,setRep:I,expandedIds:L,toggleExpand:z}=A;(0,P.useEffect)(()=>{D&&I(D)},[D,I]);let V=(0,P.useMemo)(()=>{let e=d.nodes.map(e=>{let t=yr(e),n=T?.get(e.parentId??e.id);return n===void 0?t:{...t,shift:n}});return{...d,nodes:e}},[d,T]),H=(0,P.useMemo)(()=>{let e=new Map,t=n=>{e.set(n.id,n);for(let e of n.children??[])t(e)};for(let e of l.nodes)t(e);return e},[l]),U=(0,P.useMemo)(()=>{let e=R(l.edges);return new Map(d.edges.map((t,n)=>[t.id,e[n]]))},[d,l]),W=(0,P.useMemo)(()=>new Set(d.nodes.map(e=>e.parentId).filter(e=>e!==void 0)),[d]),G=(0,P.useRef)(null),K=(0,P.useCallback)(()=>G.current?.dismiss(),[]),q=(0,P.useCallback)(e=>{(e.surface===`node`||e.surface===`edge`)&&_({kind:e.surface,id:e.id})},[]),[J,ee]=(0,P.useState)(void 0),te=E(`timeline`)?`timeline`:void 0,[ne,re]=(0,P.useState)([]);(0,P.useEffect)(()=>{let e=globalThis.requestIdleCallback,t=()=>re(fr(l,d,f,te?{closeOn:te}:{}));if(typeof e==`function`){let n=e(t,{timeout:2e3});return()=>globalThis.cancelIdleCallback?.(n)}let n=setTimeout(t,1);return()=>clearTimeout(n)},[l,d,f,te]);let{focusNode:ie}=A,ae=(0,P.useCallback)(e=>{e.rep&&I(e.rep),_({kind:`node`,id:e.nodeId}),ee(e.edgeId),e.wide?ie(null):e.rep||ie(e.nodeId)},[ie,I]),{index:oe,playing:se,caption:ce,toggle:le,seek:ue,reset:de}=$n((0,P.useMemo)(()=>({beats:ne,apply:ae,...i?{speakLine:i}:{}}),[ne,ae,i]));(0,P.useEffect)(()=>{y(se||oe>=0)},[se,oe]);let Y=(0,P.useCallback)(()=>{de(),ee(void 0)},[de]),fe=(0,P.useRef)(n);fe.current=n;let pe=(0,P.useRef)(le);pe.current=le;let me=(0,P.useRef)(Y);me.current=Y,(0,P.useEffect)(()=>{let e=e=>{if(e.key===`Escape`){me.current(),fe.current?.();return}(e.key===` `||e.key===`Spacebar`)&&(e.target?.closest(`button, input, select, textarea, [contenteditable="true"]`)||(e.preventDefault(),pe.current()))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);let he=(0,P.useCallback)(e=>{Y(),_({kind:`node`,id:e.id})},[Y]),ge=(0,P.useCallback)(e=>{Y(),_({kind:`edge`,id:e})},[Y]),_e=(0,P.useCallback)((e,t)=>{Y(),h(n=>new Map(n).set(e,t))},[Y]),ve=(0,P.useCallback)(()=>{Y(),h(new Map)},[Y]),ye=(0,P.useCallback)(e=>{!r||s!==null||(c(e),r(e).then(t=>{c(null);let n=t?.nodes.find(t=>t.id===e)?.children;n?.length&&(o(t=>new Map(t).set(e,n)),z(e))},()=>c(null)))},[r,s,z]),be=(0,P.useCallback)((e,t)=>{if(t===`entry`&&F===`timeline`){let t=H.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,X.jsx)(`span`,{className:`wo-when`,children:a})}if(t!==`card`)return null;let n=L.has(e.id),i=W.has(e.id),a=!i&&r!==void 0&&e.parentId===void 0,o=s===e.id;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(xn,{id:er(e.id),className:`wo-num`}),e.shift!==void 0&&zn(e.shift)!==null&&(0,X.jsx)(`span`,{className:`wo-shift`,"data-dir":e.shift<1?`down`:`up`,children:zn(e.shift)}),(i||a)&&(0,X.jsx)(`button`,{type:`button`,className:`wo-expand`,"aria-expanded":n,"aria-busy":o||void 0,disabled:o||a&&s!==null,"aria-label":`${n?`Fold up`:`Break down`} ${e.label}`,onClick:t=>{t.stopPropagation(),i?z(e.id):ye(e.id)},children:o?`breaking down…`:n?`fold up`:`break down`})]})},[W,L,z,r,s,ye,H,F]),Z=H.get(l.outcomeId),xe=(0,P.useMemo)(()=>xr(S,S,Z?.value,u),[S,Z?.value,u]),Se=(0,P.useMemo)(()=>xr(C,S,Z?.value,u),[C,S,Z?.value,u]),Ce=(0,P.useMemo)(()=>({causes:l.nodes.length,links:l.edges.length,sourced:l.nodes.filter(e=>e.receipt!==void 0).length}),[l]),Q=g?.kind===`node`?H.get(g.id):void 0,$=g?.kind===`edge`?U.get(g.id):void 0,we=(0,P.useMemo)(()=>l.nodes.filter(e=>e.role===`root`).map(e=>({id:e.id,label:e.label,pct:m.get(e.id)??100})),[l.nodes,m]);return(0,X.jsx)(Mn,{registry:f,onNavigate:q,ref:G,children:(0,X.jsx)(`section`,{className:`wo-scrim`,"aria-label":`Living answer: ${l.title}`,children:(0,X.jsxs)(`div`,{className:`wo-panel`,children:[(0,X.jsxs)(`header`,{className:`wo-head`,children:[(0,X.jsxs)(`div`,{className:`wo-title`,children:[(0,X.jsx)(`span`,{className:`wo-kicker`,children:`THE LIVING ANSWER`}),(0,X.jsx)(`h2`,{children:l.title})]}),(0,X.jsxs)(`div`,{className:`wo-head-actions`,children:[(0,X.jsx)(`div`,{className:`wo-views`,role:`group`,"aria-label":`View`,children:pr.filter(e=>E(e.rep)).map(e=>(0,X.jsx)(`button`,{type:`button`,className:`wo-chip`,"aria-pressed":F===e.rep,onClick:()=>{Y(),I(e.rep)},children:e.label},e.rep))}),(0,X.jsx)(`button`,{type:`button`,className:`wo-btn`,onClick:ve,disabled:!b,children:`Reset`}),n&&(0,X.jsx)(`button`,{type:`button`,className:`wo-btn wo-btn-close`,onClick:n,"aria-label":`Close`,children:`✕`})]})]}),u&&(0,X.jsx)(`div`,{className:`wo-banner wo-banner-illustrative`,children:`Illustrative model — shows the shape, not your numbers.`}),(0,X.jsx)(`p`,{className:`wo-legend`,children:mr[F]}),(0,X.jsxs)(`div`,{className:`wo-body`,children:[(0,X.jsxs)(`div`,{className:`wo-stage`,onWheelCapture:K,onPointerDownCapture:K,children:[(0,X.jsx)(Me,{stage:A,world:V,renderFace:be,onNodeClick:he,onEdgeClick:ge,selectedId:g?.kind===`node`?g.id:void 0,litEdgeId:J}),(0,X.jsx)(nr,{count:ne.length,index:oe,playing:se,caption:ce,expanded:v,onToggle:le,onSeek:ue})]}),(0,X.jsxs)(`aside`,{className:`wo-rail`,children:[(0,X.jsx)(_n,{levers:we,onSet:_e,onReset:ve}),(0,X.jsx)(Kn,{baseline:xe,current:Se,unit:Z?.unit,active:b,observedNote:u?gr:void 0}),(0,X.jsxs)(`div`,{className:`wo-detail`,children:[(0,X.jsx)(`span`,{className:`wo-rail-kicker`,children:`EVIDENCE`}),!g&&(0,X.jsxs)(`div`,{className:`wo-standing`,children:[(0,X.jsxs)(`dl`,{className:`wo-facts`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`dt`,{children:`Causes`}),(0,X.jsx)(`dd`,{children:Ce.causes})]}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`dt`,{children:`Links`}),(0,X.jsx)(`dd`,{children:Ce.links})]}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`dt`,{children:u?`Illustrative`:`With a source`}),(0,X.jsx)(`dd`,{children:u?`every cause`:Ce.sourced})]})]}),Z&&(0,X.jsxs)(`p`,{className:`wo-standing-outcome`,children:[(0,X.jsx)(`span`,{className:`wo-standing-lead`,children:`It ends at`}),` `,Z.label,Z.detail?(0,X.jsx)(`span`,{className:`wo-standing-note`,children:Z.detail}):null]}),(0,X.jsx)(`p`,{className:`wo-hint`,children:`Tap a cause or a link to see what stands behind it.`})]}),Q&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`h3`,{className:`wo-detail-title`,children:Q.label}),Q.detail&&(0,X.jsx)(`p`,{className:`wo-detail-note`,children:Q.detail}),(0,X.jsx)(`p`,{className:`wo-detail-figure`,children:(0,X.jsx)(xn,{id:er(Q.id)})}),Q.series&&(0,X.jsx)(`ul`,{className:`wo-series`,children:Q.series.points.map((e,t)=>(0,X.jsxs)(`li`,{children:[(0,X.jsx)(`span`,{className:`wo-series-t`,children:e.t}),(0,X.jsx)(xn,{id:tr(Q.id,e.t)})]},`${e.t}:${t}`))})]}),$&&(0,X.jsx)(M,{relation:k($.relation),sign:$.sign,status:$.status??O($),receipts:$.receipts??($.receipt?[$.receipt]:[]),counter:$.counter,provisional:$.provisional})]})]})]})]})})})}export{Sr as WorldOverlay};
@@ -1 +1 @@
1
- import{t as e}from"./compiler-runtime-qQQXpJgv.js";import{t}from"./jsx-runtime-DeHZSEgm.js";import{et as n}from"./index-D1SPhBGd.js";import{t as r}from"./Orb-D8lhTdmY.js";var i=e(),a=t();function o(e){let t=(0,i.c)(17),{reverse:n,eyebrow:r,eyebrowTone:o,title:s,body:c,visual:l}=e,u=`fl-panel`+(n?` reverse`:``),d=`fl-panel-eyebrow tone-`+o,f;t[0]!==r||t[1]!==d?(f=(0,a.jsx)(`div`,{className:d,children:r}),t[0]=r,t[1]=d,t[2]=f):f=t[2];let p;t[3]===s?p=t[4]:(p=(0,a.jsx)(`h3`,{className:`fl-panel-title`,children:s}),t[3]=s,t[4]=p);let m;t[5]===c?m=t[6]:(m=(0,a.jsx)(`p`,{className:`fl-panel-body`,children:c}),t[5]=c,t[6]=m);let h;t[7]!==f||t[8]!==p||t[9]!==m?(h=(0,a.jsxs)(`div`,{className:`fl-panel-copy`,children:[f,p,m]}),t[7]=f,t[8]=p,t[9]=m,t[10]=h):h=t[10];let g;t[11]===l?g=t[12]:(g=(0,a.jsx)(`div`,{className:`fl-panel-visual`,children:l}),t[11]=l,t[12]=g);let _;return t[13]!==u||t[14]!==h||t[15]!==g?(_=(0,a.jsxs)(`div`,{className:u,children:[h,g]}),t[13]=u,t[14]=h,t[15]=g,t[16]=_):_=t[16],_}var s=[`46%`,`52%`,`50%`,`58%`,`74%`,`100%`],c=[[24,72],[98,98],[173,116],[247,98],[322,66],[396,36]],l=[`Q1`,`Q2`,`Q3`,`Q4`,`Q5`,`Q6`];function u(){let e=(0,i.c)(12),t,n,r,o,s,u,m,h,g;if(e[0]===Symbol.for(`react.memo_cache_sentinel`)){let i=c.map(p).join(` `);u=`fl-card fl-pen`,m=(0,a.jsxs)(`div`,{className:`fl-pen-head`,children:[(0,a.jsx)(`span`,{className:`fl-ink-label`,children:`Revenue · the road back`}),(0,a.jsxs)(`span`,{className:`fl-pen-value`,children:[`$4.2M`,(0,a.jsx)(`i`,{className:`fl-pen-delta`,children:`▲ recovering`})]})]}),t=`fl-pen-plot`,n=`0 0 420 184`,r=`true`,o=(0,a.jsx)(`defs`,{children:(0,a.jsxs)(`linearGradient`,{id:`fl-pen-fill`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,a.jsx)(`stop`,{offset:`0`,className:`fl-pen-fill-top`}),(0,a.jsx)(`stop`,{offset:`1`,className:`fl-pen-fill-bot`})]})}),s=(0,a.jsxs)(`g`,{className:`fl-pen-grid`,children:[(0,a.jsx)(`line`,{x1:`24`,y1:`48`,x2:`396`,y2:`48`}),(0,a.jsx)(`line`,{x1:`24`,y1:`84`,x2:`396`,y2:`84`}),(0,a.jsx)(`line`,{x1:`24`,y1:`120`,x2:`396`,y2:`120`}),(0,a.jsx)(`line`,{x1:`24`,y1:`150`,x2:`396`,y2:`150`,className:`base`})]}),h=(0,a.jsx)(`path`,{className:`fl-pen-area`,d:`M${i.replace(/ /g,` L`)} L396,150 L24,150 Z`}),g=(0,a.jsx)(`polyline`,{className:`fl-pen-line`,points:i}),e[0]=t,e[1]=n,e[2]=r,e[3]=o,e[4]=s,e[5]=u,e[6]=m,e[7]=h,e[8]=g}else t=e[0],n=e[1],r=e[2],o=e[3],s=e[4],u=e[5],m=e[6],h=e[7],g=e[8];let _;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,a.jsx)(`g`,{className:`fl-pen-dots`,children:c.map(f)}),e[9]=_):_=e[9];let v;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,a.jsxs)(`svg`,{className:t,viewBox:n,"aria-hidden":r,children:[o,s,h,g,_,(0,a.jsx)(`g`,{className:`fl-pen-axis`,children:l.map(d)}),(0,a.jsx)(`path`,{className:`fl-pen-trend`,pathLength:1,d:`M166,126 C232,122 300,86 384,44 M384,44 l-13,1 m13,-1 l-3,12`}),(0,a.jsx)(`path`,{className:`fl-pen-star`,pathLength:1,d:`M396,18 L399,26 L407,26 L401,32 L403,40 L396,35 L389,40 L391,32 L385,26 L393,26 Z`})]}),e[10]=v):v=e[10];let y;return e[11]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,a.jsxs)(`div`,{className:u,children:[m,v,(0,a.jsxs)(`div`,{className:`fl-pen-options`,children:[(0,a.jsxs)(`span`,{className:`fl-pen-chip`,children:[`Cut marketing`,(0,a.jsx)(`svg`,{viewBox:`0 0 120 26`,preserveAspectRatio:`none`,"aria-hidden":`true`,className:`fl-pen-strike`,children:(0,a.jsx)(`path`,{pathLength:1,d:`M5,15 C34,10 74,18 115,10`})})]}),(0,a.jsx)(`span`,{className:`fl-pen-chip kept`,children:`Raise prices ✓`})]})]}),e[11]=y):y=e[11],y}function d(e,t){return(0,a.jsx)(`text`,{x:c[t][0],y:`172`,children:e},e)}function f(e,t){let[n,r]=e;return(0,a.jsx)(`circle`,{cx:n,cy:r,r:`3.2`},t)}function p(e){let[t,n]=e;return`${t},${n}`}var m=[{id:`bars`,d:`M6,26 V14 M14,26 V6 M22,26 V18`,label:`chart`},{id:`line`,d:`M4,24 L11,14 L18,18 L26,6`,label:`trend`},{id:`donut`,d:`M14,4 A10,10 0 1 1 4,14`,label:`share`},{id:`pin`,d:`M14,4 a8,8 0 0 1 8,8 c0,6 -8,14 -8,14 s-8,-8 -8,-14 a8,8 0 0 1 8,-8`,label:`map`},{id:`steps`,d:`M4,24 H12 V16 H20 V8 H26`,label:`timeline`},{id:`net`,d:`M6,22 L14,8 L24,20 M6,22 L24,20`,label:`network`},{id:`gauge`,d:`M4,22 A11,11 0 0 1 26,22 M15,22 L21,12`,label:`gauge`},{id:`rows`,d:`M5,8 H25 M5,15 H25 M5,22 H17`,label:`table`}];function h(){return(0,a.jsx)(`div`,{className:`fl-card fl-instruments`,children:m.map((e,t)=>(0,a.jsxs)(`span`,{className:`fl-instrument`,style:{"--in-i":String(t)},children:[(0,a.jsx)(`svg`,{viewBox:`0 0 30 30`,"aria-hidden":`true`,children:(0,a.jsx)(`path`,{d:e.d})}),e.label]},e.id))})}function g(){let e=(0,i.c)(4),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,a.jsx)(`div`,{className:`fl-ink-label`,children:`Revenue · last 6 quarters`}),e[0]=t):t=e[0];let n,r;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,a.jsx)(`div`,{className:`fl-ink-bars`,children:s.map(_)}),r=(0,a.jsx)(`span`,{className:`fl-hl-sweep`}),e[1]=n,e[2]=r):(n=e[1],r=e[2]);let o;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,a.jsxs)(`div`,{className:`fl-card fl-ink`,children:[t,(0,a.jsxs)(`div`,{className:`fl-ink-plot`,children:[n,r,(0,a.jsxs)(`span`,{className:`fl-hl-chip`,children:[(0,a.jsx)(`svg`,{viewBox:`0 0 24 24`,"aria-hidden":`true`,children:(0,a.jsx)(`path`,{d:`M3 21l3.2-.9L18 8.3l-2.3-2.3L4 17.6 3 21z M14.7 7l2.3 2.3`})}),`Ask about this`]})]})]}),e[3]=o):o=e[3],o}function _(e,t){return(0,a.jsx)(`div`,{className:`fl-ink-barcol`,children:(0,a.jsx)(`div`,{className:`fl-ink-bar`+(e===`100%`?` peak`:``),style:{height:e}})},t)}function v(){return(0,a.jsxs)(`div`,{className:`fl-card fl-ghostwrap`,children:[(0,a.jsxs)(`div`,{className:`fl-ghost-said`,children:[(0,a.jsx)(`span`,{className:`fl-wave`,"aria-hidden":`true`,children:Array.from({length:12},(e,t)=>(0,a.jsx)(`i`,{style:{"--i":String(t)}},t))}),(0,a.jsxs)(`span`,{className:`fl-ghost-words`,children:[`“…and how does that compare to last year, and`,(0,a.jsx)(`span`,{className:`fl-caret`}),`”`]})]}),(0,a.jsxs)(`div`,{className:`fl-ghost-cards`,children:[(0,a.jsxs)(`div`,{className:`fl-ghost`,children:[(0,a.jsx)(`div`,{className:`fl-ghost-tag`,children:`Forming…`}),(0,a.jsxs)(`div`,{className:`fl-ghost-bars`,children:[(0,a.jsx)(`i`,{style:{height:`50%`}}),(0,a.jsx)(`i`,{style:{height:`80%`}}),(0,a.jsx)(`i`,{style:{height:`65%`}})]})]}),(0,a.jsxs)(`div`,{className:`fl-ghost delay`,children:[(0,a.jsx)(`div`,{className:`fl-ghost-tag`,children:`Forming…`}),(0,a.jsx)(`svg`,{viewBox:`0 0 120 50`,"aria-hidden":`true`,children:(0,a.jsx)(`polyline`,{points:`0,42 24,30 48,34 72,18 96,22 120,8`})})]})]})]})}var y=[{label:`Runway: 14mo`,meta:`4×`,x:92,y:52,tone:`blue`},{label:`Hiring freeze`,meta:`a worry`,x:86,y:200,tone:`amber`},{label:`Ship velocity`,meta:`slowing`,x:300,y:204,tone:`amber`},{label:`Churn signal`,meta:`watch`,x:300,y:50,tone:`pink`},{label:`Pricing`,meta:`your idea`,x:206,y:226,tone:`green`}],b=[[0,3],[3,2],[1,4],[4,2],[0,1]];function x(){let e=(0,i.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,a.jsx)(`svg`,{className:`fl-mindmap-links`,viewBox:`0 0 420 264`,"aria-hidden":`true`,children:b.map(C)}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,a.jsxs)(`div`,{className:`fl-card fl-mindmap`,children:[t,(0,a.jsx)(`div`,{className:`fl-mindmap-hub`,children:(0,a.jsx)(r,{size:46})}),y.map(S)]}),e[1]=n):n=e[1],n}function S(e){return(0,a.jsxs)(`div`,{className:`fl-node tone-`+e.tone,style:{left:`${e.x/420*100}%`,top:`${e.y/264*100}%`},children:[(0,a.jsx)(`div`,{className:`fl-node-label`,children:e.label}),(0,a.jsx)(`div`,{className:`fl-node-meta`,children:e.meta})]},e.label)}function C(e,t){let[n,r]=e,i=y[n],o=y[r],s=(i.x+o.x)/2,c=(i.y+o.y)/2-20;return(0,a.jsx)(`path`,{d:`M${i.x},${i.y} Q${s},${c} ${o.x},${o.y}`},t)}var w=[{icon:`⌨`,label:`Type it`},{icon:`🎙`,label:`Say it`},{icon:`▦`,label:`Drag a card`}];function T(){let e=(0,i.c)(4),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,a.jsx)(`span`,{className:`fl-blank-num good`,children:`$2.1M`}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,a.jsxs)(`span`,{className:`fl-blank-hole`,children:[`your burn / mo`,(0,a.jsx)(`span`,{className:`fl-caret`})]}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,a.jsxs)(`div`,{className:`fl-blank-sentence`,children:[`With `,t,` in the bank and a burn of`,` `,n,`, your runway is `,(0,a.jsx)(`span`,{className:`fl-blank-pending`,children:`— months`}),`.`]}),e[2]=r):r=e[2];let o;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,a.jsxs)(`div`,{className:`fl-card fl-blank`,children:[r,(0,a.jsx)(`div`,{className:`fl-blank-options`,"aria-hidden":`true`,children:w.map(E)})]}),e[3]=o):o=e[3],o}function E(e){return(0,a.jsxs)(`span`,{className:`fl-blank-btn`,children:[(0,a.jsx)(`span`,{className:`fl-blank-icon`,children:e.icon}),e.label]},e.label)}var D=[`“ARR climbed to $15.1M — up 21%.”`,`“The trend held steady all quarter.”`,`“North America still leads, at 54%.”`];function O(){return(0,a.jsxs)(`div`,{className:`fl-card fl-walk`,children:[(0,a.jsx)(`div`,{className:`fl-ink-label`,children:`Q3 revenue · read to you`}),(0,a.jsxs)(`div`,{className:`fl-walk-stage`,children:[(0,a.jsxs)(`div`,{className:`fl-walk-presenter`,children:[(0,a.jsx)(r,{size:44,className:`fl-walk-orb`}),(0,a.jsxs)(`div`,{className:`fl-walk-say`,children:[(0,a.jsx)(`span`,{className:`fl-wave`,"aria-hidden":`true`,children:Array.from({length:8},(e,t)=>(0,a.jsx)(`i`,{style:{"--i":String(t)}},t))}),(0,a.jsx)(`span`,{className:`fl-walk-caps`,children:D.map((e,t)=>(0,a.jsx)(`span`,{className:`fl-walk-line l${t+1}`,children:e},e))})]})]}),(0,a.jsxs)(`div`,{className:`fl-walk-items`,children:[(0,a.jsxs)(`div`,{className:`fl-walk-item`,children:[(0,a.jsx)(`span`,{className:`fl-walk-k`,children:`ARR`}),(0,a.jsx)(`span`,{className:`fl-walk-v`,children:`$15.1M`}),(0,a.jsx)(`span`,{className:`fl-walk-up`,children:`▲ 21%`})]}),(0,a.jsx)(`div`,{className:`fl-walk-item`,children:(0,a.jsx)(`svg`,{className:`fl-walk-spark`,viewBox:`0 0 120 26`,"aria-hidden":`true`,children:(0,a.jsx)(`polyline`,{points:`2,20 22,17 42,19 62,11 82,13 100,6 118,3`})})}),(0,a.jsxs)(`div`,{className:`fl-walk-item`,children:[(0,a.jsx)(`span`,{className:`fl-walk-k`,children:`N. America`}),(0,a.jsx)(`span`,{className:`fl-walk-v`,children:`54%`})]}),(0,a.jsx)(`span`,{className:`fl-walk-spot`,"aria-hidden":`true`})]})]})]})}function k(){let e=(0,i.c)(8),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,a.jsxs)(n,{eyebrow:`Things a chat window can’t do`,children:[`It’s a `,(0,a.jsx)(`em`,{children:`friend at the whiteboard.`})]}),e[0]=t):t=e[0];let r;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,a.jsx)(o,{eyebrow:`Highlight is the interface`,eyebrowTone:`presence`,title:`Highlight the answer to ask.`,body:`Drag across a bar, a row, a figure — the highlight grabs exactly what’s under it, and your next question is grounded on that piece, not the whole answer.`,visual:(0,a.jsx)(g,{})}),e[1]=r):r=e[1];let s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,a.jsx)(o,{reverse:!0,eyebrow:`And the pen is in its hand`,eyebrowTone:`amber`,title:`It draws on its own answers.`,body:`A trend arrow along the recovery, a star on the number that matters, a strike through the option it rules out — the whiteboard marks a good teacher leaves.`,visual:(0,a.jsx)(u,{})}),e[2]=s):s=e[2];let c;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,a.jsx)(o,{eyebrow:`It answers while you talk`,eyebrowTone:`blue`,title:`The answer forms mid-sentence.`,body:`Dashed “ghost” cards sketch the answer taking shape behind your words — and reshape live as your question turns. You see it thinking with you, not after you.`,visual:(0,a.jsx)(v,{})}),e[3]=c):c=e[3];let l;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,a.jsx)(o,{reverse:!0,eyebrow:`Watch it map your thinking`,eyebrowTone:`green`,title:`Ramble. Get a map of your mind.`,body:`Themes emerge from what you actually said — never fixed buckets — with the tensions between them drawn in. A minute of talking becomes a structure you can see.`,visual:(0,a.jsx)(x,{})}),e[4]=l):l=e[4];let d;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,a.jsx)(o,{eyebrow:`The Blank Space`,eyebrowTone:`pink`,title:`It won’t guess. It leaves a space.`,body:`When an answer needs a number only you have, Mavéa leaves a glowing hole to fill — type it, say it, or drag a card in. Uncertainty, made honest and interactive.`,visual:(0,a.jsx)(T,{})}),e[5]=d):d=e[5];let f;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,a.jsx)(o,{reverse:!0,eyebrow:`One canvas, many instruments`,eyebrowTone:`presence`,title:`The answer picks its shape.`,body:`Charts, maps, timelines, networks, tables — hundreds of visual instruments on one canvas, and each answer reaches for the ones that fit.`,visual:(0,a.jsx)(h,{})}),e[6]=f):f=e[6];let p;return e[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,a.jsxs)(a.Fragment,{children:[t,(0,a.jsxs)(`div`,{className:`fl-panels`,children:[r,s,c,l,d,f,(0,a.jsx)(o,{eyebrow:`It reads the answer to you`,eyebrowTone:`presence`,title:`It points, and talks you through.`,body:`Mavéa doesn’t drop a wall of cards and leave. It spotlights each part and speaks to it — walking you through the answer a piece at a time, the way a friend at the whiteboard would.`,visual:(0,a.jsx)(O,{})})]})]}),e[7]=p):p=e[7],p}export{k as WowFeatures};
1
+ import{t as e}from"./compiler-runtime-qQQXpJgv.js";import{t}from"./jsx-runtime-DeHZSEgm.js";import{tt as n}from"./index-CfcUMOBf.js";import{t as r}from"./Orb-D8lhTdmY.js";var i=e(),a=t();function o(e){let t=(0,i.c)(17),{reverse:n,eyebrow:r,eyebrowTone:o,title:s,body:c,visual:l}=e,u=`fl-panel`+(n?` reverse`:``),d=`fl-panel-eyebrow tone-`+o,f;t[0]!==r||t[1]!==d?(f=(0,a.jsx)(`div`,{className:d,children:r}),t[0]=r,t[1]=d,t[2]=f):f=t[2];let p;t[3]===s?p=t[4]:(p=(0,a.jsx)(`h3`,{className:`fl-panel-title`,children:s}),t[3]=s,t[4]=p);let m;t[5]===c?m=t[6]:(m=(0,a.jsx)(`p`,{className:`fl-panel-body`,children:c}),t[5]=c,t[6]=m);let h;t[7]!==f||t[8]!==p||t[9]!==m?(h=(0,a.jsxs)(`div`,{className:`fl-panel-copy`,children:[f,p,m]}),t[7]=f,t[8]=p,t[9]=m,t[10]=h):h=t[10];let g;t[11]===l?g=t[12]:(g=(0,a.jsx)(`div`,{className:`fl-panel-visual`,children:l}),t[11]=l,t[12]=g);let _;return t[13]!==u||t[14]!==h||t[15]!==g?(_=(0,a.jsxs)(`div`,{className:u,children:[h,g]}),t[13]=u,t[14]=h,t[15]=g,t[16]=_):_=t[16],_}var s=[`46%`,`52%`,`50%`,`58%`,`74%`,`100%`],c=[[24,72],[98,98],[173,116],[247,98],[322,66],[396,36]],l=[`Q1`,`Q2`,`Q3`,`Q4`,`Q5`,`Q6`];function u(){let e=(0,i.c)(12),t,n,r,o,s,u,m,h,g;if(e[0]===Symbol.for(`react.memo_cache_sentinel`)){let i=c.map(p).join(` `);u=`fl-card fl-pen`,m=(0,a.jsxs)(`div`,{className:`fl-pen-head`,children:[(0,a.jsx)(`span`,{className:`fl-ink-label`,children:`Revenue · the road back`}),(0,a.jsxs)(`span`,{className:`fl-pen-value`,children:[`$4.2M`,(0,a.jsx)(`i`,{className:`fl-pen-delta`,children:`▲ recovering`})]})]}),t=`fl-pen-plot`,n=`0 0 420 184`,r=`true`,o=(0,a.jsx)(`defs`,{children:(0,a.jsxs)(`linearGradient`,{id:`fl-pen-fill`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,a.jsx)(`stop`,{offset:`0`,className:`fl-pen-fill-top`}),(0,a.jsx)(`stop`,{offset:`1`,className:`fl-pen-fill-bot`})]})}),s=(0,a.jsxs)(`g`,{className:`fl-pen-grid`,children:[(0,a.jsx)(`line`,{x1:`24`,y1:`48`,x2:`396`,y2:`48`}),(0,a.jsx)(`line`,{x1:`24`,y1:`84`,x2:`396`,y2:`84`}),(0,a.jsx)(`line`,{x1:`24`,y1:`120`,x2:`396`,y2:`120`}),(0,a.jsx)(`line`,{x1:`24`,y1:`150`,x2:`396`,y2:`150`,className:`base`})]}),h=(0,a.jsx)(`path`,{className:`fl-pen-area`,d:`M${i.replace(/ /g,` L`)} L396,150 L24,150 Z`}),g=(0,a.jsx)(`polyline`,{className:`fl-pen-line`,points:i}),e[0]=t,e[1]=n,e[2]=r,e[3]=o,e[4]=s,e[5]=u,e[6]=m,e[7]=h,e[8]=g}else t=e[0],n=e[1],r=e[2],o=e[3],s=e[4],u=e[5],m=e[6],h=e[7],g=e[8];let _;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,a.jsx)(`g`,{className:`fl-pen-dots`,children:c.map(f)}),e[9]=_):_=e[9];let v;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,a.jsxs)(`svg`,{className:t,viewBox:n,"aria-hidden":r,children:[o,s,h,g,_,(0,a.jsx)(`g`,{className:`fl-pen-axis`,children:l.map(d)}),(0,a.jsx)(`path`,{className:`fl-pen-trend`,pathLength:1,d:`M166,126 C232,122 300,86 384,44 M384,44 l-13,1 m13,-1 l-3,12`}),(0,a.jsx)(`path`,{className:`fl-pen-star`,pathLength:1,d:`M396,18 L399,26 L407,26 L401,32 L403,40 L396,35 L389,40 L391,32 L385,26 L393,26 Z`})]}),e[10]=v):v=e[10];let y;return e[11]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,a.jsxs)(`div`,{className:u,children:[m,v,(0,a.jsxs)(`div`,{className:`fl-pen-options`,children:[(0,a.jsxs)(`span`,{className:`fl-pen-chip`,children:[`Cut marketing`,(0,a.jsx)(`svg`,{viewBox:`0 0 120 26`,preserveAspectRatio:`none`,"aria-hidden":`true`,className:`fl-pen-strike`,children:(0,a.jsx)(`path`,{pathLength:1,d:`M5,15 C34,10 74,18 115,10`})})]}),(0,a.jsx)(`span`,{className:`fl-pen-chip kept`,children:`Raise prices ✓`})]})]}),e[11]=y):y=e[11],y}function d(e,t){return(0,a.jsx)(`text`,{x:c[t][0],y:`172`,children:e},e)}function f(e,t){let[n,r]=e;return(0,a.jsx)(`circle`,{cx:n,cy:r,r:`3.2`},t)}function p(e){let[t,n]=e;return`${t},${n}`}var m=[{id:`bars`,d:`M6,26 V14 M14,26 V6 M22,26 V18`,label:`chart`},{id:`line`,d:`M4,24 L11,14 L18,18 L26,6`,label:`trend`},{id:`donut`,d:`M14,4 A10,10 0 1 1 4,14`,label:`share`},{id:`pin`,d:`M14,4 a8,8 0 0 1 8,8 c0,6 -8,14 -8,14 s-8,-8 -8,-14 a8,8 0 0 1 8,-8`,label:`map`},{id:`steps`,d:`M4,24 H12 V16 H20 V8 H26`,label:`timeline`},{id:`net`,d:`M6,22 L14,8 L24,20 M6,22 L24,20`,label:`network`},{id:`gauge`,d:`M4,22 A11,11 0 0 1 26,22 M15,22 L21,12`,label:`gauge`},{id:`rows`,d:`M5,8 H25 M5,15 H25 M5,22 H17`,label:`table`}];function h(){return(0,a.jsx)(`div`,{className:`fl-card fl-instruments`,children:m.map((e,t)=>(0,a.jsxs)(`span`,{className:`fl-instrument`,style:{"--in-i":String(t)},children:[(0,a.jsx)(`svg`,{viewBox:`0 0 30 30`,"aria-hidden":`true`,children:(0,a.jsx)(`path`,{d:e.d})}),e.label]},e.id))})}function g(){let e=(0,i.c)(4),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,a.jsx)(`div`,{className:`fl-ink-label`,children:`Revenue · last 6 quarters`}),e[0]=t):t=e[0];let n,r;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,a.jsx)(`div`,{className:`fl-ink-bars`,children:s.map(_)}),r=(0,a.jsx)(`span`,{className:`fl-hl-sweep`}),e[1]=n,e[2]=r):(n=e[1],r=e[2]);let o;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,a.jsxs)(`div`,{className:`fl-card fl-ink`,children:[t,(0,a.jsxs)(`div`,{className:`fl-ink-plot`,children:[n,r,(0,a.jsxs)(`span`,{className:`fl-hl-chip`,children:[(0,a.jsx)(`svg`,{viewBox:`0 0 24 24`,"aria-hidden":`true`,children:(0,a.jsx)(`path`,{d:`M3 21l3.2-.9L18 8.3l-2.3-2.3L4 17.6 3 21z M14.7 7l2.3 2.3`})}),`Ask about this`]})]})]}),e[3]=o):o=e[3],o}function _(e,t){return(0,a.jsx)(`div`,{className:`fl-ink-barcol`,children:(0,a.jsx)(`div`,{className:`fl-ink-bar`+(e===`100%`?` peak`:``),style:{height:e}})},t)}function v(){return(0,a.jsxs)(`div`,{className:`fl-card fl-ghostwrap`,children:[(0,a.jsxs)(`div`,{className:`fl-ghost-said`,children:[(0,a.jsx)(`span`,{className:`fl-wave`,"aria-hidden":`true`,children:Array.from({length:12},(e,t)=>(0,a.jsx)(`i`,{style:{"--i":String(t)}},t))}),(0,a.jsxs)(`span`,{className:`fl-ghost-words`,children:[`“…and how does that compare to last year, and`,(0,a.jsx)(`span`,{className:`fl-caret`}),`”`]})]}),(0,a.jsxs)(`div`,{className:`fl-ghost-cards`,children:[(0,a.jsxs)(`div`,{className:`fl-ghost`,children:[(0,a.jsx)(`div`,{className:`fl-ghost-tag`,children:`Forming…`}),(0,a.jsxs)(`div`,{className:`fl-ghost-bars`,children:[(0,a.jsx)(`i`,{style:{height:`50%`}}),(0,a.jsx)(`i`,{style:{height:`80%`}}),(0,a.jsx)(`i`,{style:{height:`65%`}})]})]}),(0,a.jsxs)(`div`,{className:`fl-ghost delay`,children:[(0,a.jsx)(`div`,{className:`fl-ghost-tag`,children:`Forming…`}),(0,a.jsx)(`svg`,{viewBox:`0 0 120 50`,"aria-hidden":`true`,children:(0,a.jsx)(`polyline`,{points:`0,42 24,30 48,34 72,18 96,22 120,8`})})]})]})]})}var y=[{label:`Runway: 14mo`,meta:`4×`,x:92,y:52,tone:`blue`},{label:`Hiring freeze`,meta:`a worry`,x:86,y:200,tone:`amber`},{label:`Ship velocity`,meta:`slowing`,x:300,y:204,tone:`amber`},{label:`Churn signal`,meta:`watch`,x:300,y:50,tone:`pink`},{label:`Pricing`,meta:`your idea`,x:206,y:226,tone:`green`}],b=[[0,3],[3,2],[1,4],[4,2],[0,1]];function x(){let e=(0,i.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,a.jsx)(`svg`,{className:`fl-mindmap-links`,viewBox:`0 0 420 264`,"aria-hidden":`true`,children:b.map(C)}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,a.jsxs)(`div`,{className:`fl-card fl-mindmap`,children:[t,(0,a.jsx)(`div`,{className:`fl-mindmap-hub`,children:(0,a.jsx)(r,{size:46})}),y.map(S)]}),e[1]=n):n=e[1],n}function S(e){return(0,a.jsxs)(`div`,{className:`fl-node tone-`+e.tone,style:{left:`${e.x/420*100}%`,top:`${e.y/264*100}%`},children:[(0,a.jsx)(`div`,{className:`fl-node-label`,children:e.label}),(0,a.jsx)(`div`,{className:`fl-node-meta`,children:e.meta})]},e.label)}function C(e,t){let[n,r]=e,i=y[n],o=y[r],s=(i.x+o.x)/2,c=(i.y+o.y)/2-20;return(0,a.jsx)(`path`,{d:`M${i.x},${i.y} Q${s},${c} ${o.x},${o.y}`},t)}var w=[{icon:`⌨`,label:`Type it`},{icon:`🎙`,label:`Say it`},{icon:`▦`,label:`Drag a card`}];function T(){let e=(0,i.c)(4),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,a.jsx)(`span`,{className:`fl-blank-num good`,children:`$2.1M`}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,a.jsxs)(`span`,{className:`fl-blank-hole`,children:[`your burn / mo`,(0,a.jsx)(`span`,{className:`fl-caret`})]}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,a.jsxs)(`div`,{className:`fl-blank-sentence`,children:[`With `,t,` in the bank and a burn of`,` `,n,`, your runway is `,(0,a.jsx)(`span`,{className:`fl-blank-pending`,children:`— months`}),`.`]}),e[2]=r):r=e[2];let o;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,a.jsxs)(`div`,{className:`fl-card fl-blank`,children:[r,(0,a.jsx)(`div`,{className:`fl-blank-options`,"aria-hidden":`true`,children:w.map(E)})]}),e[3]=o):o=e[3],o}function E(e){return(0,a.jsxs)(`span`,{className:`fl-blank-btn`,children:[(0,a.jsx)(`span`,{className:`fl-blank-icon`,children:e.icon}),e.label]},e.label)}var D=[`“ARR climbed to $15.1M — up 21%.”`,`“The trend held steady all quarter.”`,`“North America still leads, at 54%.”`];function O(){return(0,a.jsxs)(`div`,{className:`fl-card fl-walk`,children:[(0,a.jsx)(`div`,{className:`fl-ink-label`,children:`Q3 revenue · read to you`}),(0,a.jsxs)(`div`,{className:`fl-walk-stage`,children:[(0,a.jsxs)(`div`,{className:`fl-walk-presenter`,children:[(0,a.jsx)(r,{size:44,className:`fl-walk-orb`}),(0,a.jsxs)(`div`,{className:`fl-walk-say`,children:[(0,a.jsx)(`span`,{className:`fl-wave`,"aria-hidden":`true`,children:Array.from({length:8},(e,t)=>(0,a.jsx)(`i`,{style:{"--i":String(t)}},t))}),(0,a.jsx)(`span`,{className:`fl-walk-caps`,children:D.map((e,t)=>(0,a.jsx)(`span`,{className:`fl-walk-line l${t+1}`,children:e},e))})]})]}),(0,a.jsxs)(`div`,{className:`fl-walk-items`,children:[(0,a.jsxs)(`div`,{className:`fl-walk-item`,children:[(0,a.jsx)(`span`,{className:`fl-walk-k`,children:`ARR`}),(0,a.jsx)(`span`,{className:`fl-walk-v`,children:`$15.1M`}),(0,a.jsx)(`span`,{className:`fl-walk-up`,children:`▲ 21%`})]}),(0,a.jsx)(`div`,{className:`fl-walk-item`,children:(0,a.jsx)(`svg`,{className:`fl-walk-spark`,viewBox:`0 0 120 26`,"aria-hidden":`true`,children:(0,a.jsx)(`polyline`,{points:`2,20 22,17 42,19 62,11 82,13 100,6 118,3`})})}),(0,a.jsxs)(`div`,{className:`fl-walk-item`,children:[(0,a.jsx)(`span`,{className:`fl-walk-k`,children:`N. America`}),(0,a.jsx)(`span`,{className:`fl-walk-v`,children:`54%`})]}),(0,a.jsx)(`span`,{className:`fl-walk-spot`,"aria-hidden":`true`})]})]})]})}function k(){let e=(0,i.c)(8),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,a.jsxs)(n,{eyebrow:`Things a chat window can’t do`,children:[`It’s a `,(0,a.jsx)(`em`,{children:`friend at the whiteboard.`})]}),e[0]=t):t=e[0];let r;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,a.jsx)(o,{eyebrow:`Highlight is the interface`,eyebrowTone:`presence`,title:`Highlight the answer to ask.`,body:`Drag across a bar, a row, a figure — the highlight grabs exactly what’s under it, and your next question is grounded on that piece, not the whole answer.`,visual:(0,a.jsx)(g,{})}),e[1]=r):r=e[1];let s;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,a.jsx)(o,{reverse:!0,eyebrow:`And the pen is in its hand`,eyebrowTone:`amber`,title:`It draws on its own answers.`,body:`A trend arrow along the recovery, a star on the number that matters, a strike through the option it rules out — the whiteboard marks a good teacher leaves.`,visual:(0,a.jsx)(u,{})}),e[2]=s):s=e[2];let c;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,a.jsx)(o,{eyebrow:`It answers while you talk`,eyebrowTone:`blue`,title:`The answer forms mid-sentence.`,body:`Dashed “ghost” cards sketch the answer taking shape behind your words — and reshape live as your question turns. You see it thinking with you, not after you.`,visual:(0,a.jsx)(v,{})}),e[3]=c):c=e[3];let l;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,a.jsx)(o,{reverse:!0,eyebrow:`Watch it map your thinking`,eyebrowTone:`green`,title:`Ramble. Get a map of your mind.`,body:`Themes emerge from what you actually said — never fixed buckets — with the tensions between them drawn in. A minute of talking becomes a structure you can see.`,visual:(0,a.jsx)(x,{})}),e[4]=l):l=e[4];let d;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,a.jsx)(o,{eyebrow:`The Blank Space`,eyebrowTone:`pink`,title:`It won’t guess. It leaves a space.`,body:`When an answer needs a number only you have, Mavéa leaves a glowing hole to fill — type it, say it, or drag a card in. Uncertainty, made honest and interactive.`,visual:(0,a.jsx)(T,{})}),e[5]=d):d=e[5];let f;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,a.jsx)(o,{reverse:!0,eyebrow:`One canvas, many instruments`,eyebrowTone:`presence`,title:`The answer picks its shape.`,body:`Charts, maps, timelines, networks, tables — hundreds of visual instruments on one canvas, and each answer reaches for the ones that fit.`,visual:(0,a.jsx)(h,{})}),e[6]=f):f=e[6];let p;return e[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,a.jsxs)(a.Fragment,{children:[t,(0,a.jsxs)(`div`,{className:`fl-panels`,children:[r,s,c,l,d,f,(0,a.jsx)(o,{eyebrow:`It reads the answer to you`,eyebrowTone:`presence`,title:`It points, and talks you through.`,body:`Mavéa doesn’t drop a wall of cards and leave. It spotlights each part and speaks to it — walking you through the answer a piece at a time, the way a friend at the whiteboard would.`,visual:(0,a.jsx)(O,{})})]})]}),e[7]=p):p=e[7],p}export{k as WowFeatures};
@@ -1 +1 @@
1
- import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r}from"./icons-gLFQTv74.js";import{t as i}from"./useFocusTrap-DBtkeyRy.js";import{t as a}from"./portal-t0bsUEg2.js";import{t as o}from"./useZoomGesture-CN0p0lHL.js";var s=e(),c=t(),l=n();function u(e){let t=(0,c.c)(52),{model:n,level:u,onLevel:d,onJump:f,onClose:p}=e,m=(0,s.useRef)(null);i(m);let h;t[0]!==u||t[1]!==p||t[2]!==d?(h=e=>{e===`out`?d(`breath`):u===`breath`?d(`chapters`):p()},t[0]=u,t[1]=p,t[2]=d,t[3]=h):h=t[3],o(m,h);let g,_;t[4]!==u||t[5]!==p||t[6]!==d?(g=()=>{let e=e=>{e.key===`Escape`?(e.preventDefault(),p()):e.key===`ArrowRight`?(e.preventDefault(),u===`chapters`&&d(`breath`)):e.key===`ArrowLeft`&&(e.preventDefault(),u===`breath`?d(`chapters`):p())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},_=[u,p,d],t[4]=u,t[5]=p,t[6]=d,t[7]=g,t[8]=_):(g=t[7],_=t[8]),(0,s.useEffect)(g,_);let v;t[9]===p?v=t[10]:(v=e=>{e.target===e.currentTarget&&p()},t[9]=p,t[10]=v);let y=v,b;t[11]===y?b=t[12]:(b=e=>{(e.key===`Enter`||e.key===` `)&&(e.key===` `&&e.preventDefault(),y(e))},t[11]=y,t[12]=b);let x=`zoom-deck level-`+u,S;t[13]===p?S=t[14]:(S=(0,l.jsx)(`button`,{type:`button`,className:`zoom-level`,onClick:p,children:`Canvas`}),t[13]=p,t[14]=S);let C=`zoom-level`+(u===`chapters`?` active`:``),w=u===`chapters`,T;t[15]===d?T=t[16]:(T=()=>d(`chapters`),t[15]=d,t[16]=T);let E;t[17]!==T||t[18]!==C||t[19]!==w?(E=(0,l.jsx)(`button`,{type:`button`,className:C,"aria-pressed":w,onClick:T,children:`Chapters`}),t[17]=T,t[18]=C,t[19]=w,t[20]=E):E=t[20];let D=`zoom-level`+(u===`breath`?` active`:``),O=u===`breath`,k;t[21]===d?k=t[22]:(k=()=>d(`breath`),t[21]=d,t[22]=k);let A;t[23]!==D||t[24]!==O||t[25]!==k?(A=(0,l.jsx)(`button`,{type:`button`,className:D,"aria-pressed":O,onClick:k,children:`One breath`}),t[23]=D,t[24]=O,t[25]=k,t[26]=A):A=t[26];let j;t[27]!==E||t[28]!==A||t[29]!==S?(j=(0,l.jsxs)(`div`,{className:`zoom-levelbar`,role:`group`,"aria-label":`Zoom level`,children:[S,E,A]}),t[27]=E,t[28]=A,t[29]=S,t[30]=j):j=t[30];let M;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,l.jsx)(r.x,{}),t[31]=M):M=t[31];let N;t[32]===p?N=t[33]:(N=(0,l.jsx)(`button`,{type:`button`,className:`zoom-close`,onClick:p,"aria-label":`Close zoom`,title:`Close`,children:M}),t[32]=p,t[33]=N);let P;t[34]!==j||t[35]!==N?(P=(0,l.jsxs)(`header`,{className:`zoom-toolbar`,children:[j,N]}),t[34]=j,t[35]=N,t[36]=P):P=t[36];let F;t[37]!==u||t[38]!==n.heading||t[39]!==n.meta||t[40]!==n.rows||t[41]!==f||t[42]!==d?(F=u===`breath`?(0,l.jsxs)(`div`,{className:`zoom-breath`,children:[(0,l.jsxs)(`p`,{className:`zoom-breath-line`,children:[n.heading.replace(/, so far\.$/,``),`: `,n.rows.map((e,t)=>(0,l.jsxs)(`button`,{type:`button`,className:`zoom-breath-topic`,onClick:()=>d(`chapters`),children:[e.title,t<n.rows.length-1?` · `:``]},e.frameIndex))]}),(0,l.jsxs)(`p`,{className:`zoom-meta`,children:[n.meta,` · one breath`]})]}):(0,l.jsxs)(`div`,{className:`zoom-chapters`,children:[(0,l.jsxs)(`header`,{className:`zoom-head`,children:[(0,l.jsx)(`span`,{className:`zoom-title`,children:n.heading}),(0,l.jsx)(`span`,{className:`zoom-meta`,children:n.meta})]}),(0,l.jsx)(`ul`,{className:`zoom-rows`,children:n.rows.map(e=>(0,l.jsx)(`li`,{children:(0,l.jsxs)(`button`,{type:`button`,className:`zoom-row`,onClick:()=>f(e.frameIndex),children:[(0,l.jsxs)(`span`,{className:`zoom-row-title`,children:[e.title,(0,l.jsx)(`span`,{className:`zoom-row-clock`,children:e.clock})]}),(0,l.jsx)(`span`,{className:`zoom-row-line`,children:e.line}),e.corrected&&(0,l.jsx)(`span`,{className:`zoom-row-corrected`,children:e.corrected})]})},e.frameIndex))})]}),t[37]=u,t[38]=n.heading,t[39]=n.meta,t[40]=n.rows,t[41]=f,t[42]=d,t[43]=F):F=t[43];let I;t[44]!==P||t[45]!==F||t[46]!==x?(I=(0,l.jsxs)(`div`,{ref:m,className:x,role:`dialog`,"aria-modal":`true`,"aria-label":`Conversation zoomed out`,tabIndex:-1,children:[P,F]}),t[44]=P,t[45]=F,t[46]=x,t[47]=I):I=t[47];let L;return t[48]!==y||t[49]!==I||t[50]!==b?(L=(0,l.jsx)(a,{children:(0,l.jsx)(`div`,{className:`zoom-scrim`,role:`button`,tabIndex:0,"aria-label":`Close`,onClick:y,onKeyDown:b,children:I})}),t[48]=y,t[49]=I,t[50]=b,t[51]=L):L=t[51],L}export{u as ZoomDeck};
1
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r}from"./icons-gLFQTv74.js";import{t as i}from"./useFocusTrap-DBtkeyRy.js";import{t as a}from"./portal-BJzn-Tgn.js";import{t as o}from"./useZoomGesture-CN0p0lHL.js";var s=e(),c=t(),l=n();function u(e){let t=(0,c.c)(52),{model:n,level:u,onLevel:d,onJump:f,onClose:p}=e,m=(0,s.useRef)(null);i(m);let h;t[0]!==u||t[1]!==p||t[2]!==d?(h=e=>{e===`out`?d(`breath`):u===`breath`?d(`chapters`):p()},t[0]=u,t[1]=p,t[2]=d,t[3]=h):h=t[3],o(m,h);let g,_;t[4]!==u||t[5]!==p||t[6]!==d?(g=()=>{let e=e=>{e.key===`Escape`?(e.preventDefault(),p()):e.key===`ArrowRight`?(e.preventDefault(),u===`chapters`&&d(`breath`)):e.key===`ArrowLeft`&&(e.preventDefault(),u===`breath`?d(`chapters`):p())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},_=[u,p,d],t[4]=u,t[5]=p,t[6]=d,t[7]=g,t[8]=_):(g=t[7],_=t[8]),(0,s.useEffect)(g,_);let v;t[9]===p?v=t[10]:(v=e=>{e.target===e.currentTarget&&p()},t[9]=p,t[10]=v);let y=v,b;t[11]===y?b=t[12]:(b=e=>{(e.key===`Enter`||e.key===` `)&&(e.key===` `&&e.preventDefault(),y(e))},t[11]=y,t[12]=b);let x=`zoom-deck level-`+u,S;t[13]===p?S=t[14]:(S=(0,l.jsx)(`button`,{type:`button`,className:`zoom-level`,onClick:p,children:`Canvas`}),t[13]=p,t[14]=S);let C=`zoom-level`+(u===`chapters`?` active`:``),w=u===`chapters`,T;t[15]===d?T=t[16]:(T=()=>d(`chapters`),t[15]=d,t[16]=T);let E;t[17]!==T||t[18]!==C||t[19]!==w?(E=(0,l.jsx)(`button`,{type:`button`,className:C,"aria-pressed":w,onClick:T,children:`Chapters`}),t[17]=T,t[18]=C,t[19]=w,t[20]=E):E=t[20];let D=`zoom-level`+(u===`breath`?` active`:``),O=u===`breath`,k;t[21]===d?k=t[22]:(k=()=>d(`breath`),t[21]=d,t[22]=k);let A;t[23]!==D||t[24]!==O||t[25]!==k?(A=(0,l.jsx)(`button`,{type:`button`,className:D,"aria-pressed":O,onClick:k,children:`One breath`}),t[23]=D,t[24]=O,t[25]=k,t[26]=A):A=t[26];let j;t[27]!==E||t[28]!==A||t[29]!==S?(j=(0,l.jsxs)(`div`,{className:`zoom-levelbar`,role:`group`,"aria-label":`Zoom level`,children:[S,E,A]}),t[27]=E,t[28]=A,t[29]=S,t[30]=j):j=t[30];let M;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,l.jsx)(r.x,{}),t[31]=M):M=t[31];let N;t[32]===p?N=t[33]:(N=(0,l.jsx)(`button`,{type:`button`,className:`zoom-close`,onClick:p,"aria-label":`Close zoom`,title:`Close`,children:M}),t[32]=p,t[33]=N);let P;t[34]!==j||t[35]!==N?(P=(0,l.jsxs)(`header`,{className:`zoom-toolbar`,children:[j,N]}),t[34]=j,t[35]=N,t[36]=P):P=t[36];let F;t[37]!==u||t[38]!==n.heading||t[39]!==n.meta||t[40]!==n.rows||t[41]!==f||t[42]!==d?(F=u===`breath`?(0,l.jsxs)(`div`,{className:`zoom-breath`,children:[(0,l.jsxs)(`p`,{className:`zoom-breath-line`,children:[n.heading.replace(/, so far\.$/,``),`: `,n.rows.map((e,t)=>(0,l.jsxs)(`button`,{type:`button`,className:`zoom-breath-topic`,onClick:()=>d(`chapters`),children:[e.title,t<n.rows.length-1?` · `:``]},e.frameIndex))]}),(0,l.jsxs)(`p`,{className:`zoom-meta`,children:[n.meta,` · one breath`]})]}):(0,l.jsxs)(`div`,{className:`zoom-chapters`,children:[(0,l.jsxs)(`header`,{className:`zoom-head`,children:[(0,l.jsx)(`span`,{className:`zoom-title`,children:n.heading}),(0,l.jsx)(`span`,{className:`zoom-meta`,children:n.meta})]}),(0,l.jsx)(`ul`,{className:`zoom-rows`,children:n.rows.map(e=>(0,l.jsx)(`li`,{children:(0,l.jsxs)(`button`,{type:`button`,className:`zoom-row`,onClick:()=>f(e.frameIndex),children:[(0,l.jsxs)(`span`,{className:`zoom-row-title`,children:[e.title,(0,l.jsx)(`span`,{className:`zoom-row-clock`,children:e.clock})]}),(0,l.jsx)(`span`,{className:`zoom-row-line`,children:e.line}),e.corrected&&(0,l.jsx)(`span`,{className:`zoom-row-corrected`,children:e.corrected})]})},e.frameIndex))})]}),t[37]=u,t[38]=n.heading,t[39]=n.meta,t[40]=n.rows,t[41]=f,t[42]=d,t[43]=F):F=t[43];let I;t[44]!==P||t[45]!==F||t[46]!==x?(I=(0,l.jsxs)(`div`,{ref:m,className:x,role:`dialog`,"aria-modal":`true`,"aria-label":`Conversation zoomed out`,tabIndex:-1,children:[P,F]}),t[44]=P,t[45]=F,t[46]=x,t[47]=I):I=t[47];let L;return t[48]!==y||t[49]!==I||t[50]!==b?(L=(0,l.jsx)(a,{children:(0,l.jsx)(`div`,{className:`zoom-scrim`,role:`button`,tabIndex:0,"aria-label":`Close`,onClick:y,onKeyDown:b,children:I})}),t[48]=y,t[49]=I,t[50]=b,t[51]=L):L=t[51],L}export{u as ZoomDeck};
@@ -1 +1 @@
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-D9UT-ioQ.js";import"./BriefingPlayer-C0D_2ILa.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
+ 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-BAEq0JnM.js";import"./BriefingPlayer-C0D_2ILa.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 +1 @@
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-D3iS8fuI.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
+ 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 +1 @@
1
- import{n as e}from"./catalog-Db9GWM6N.js";import{t}from"./facts-BUGuVUIc.js";import{t as n}from"./blockTypes-CgNGx27_.js";import{validateLiveResponse as r}from"./liveSchema-B8OByCPH.js";import{d as i,g as a,k as o}from"./store-DpmbKVs7.js";import{i as s,t as c}from"./useLiveConfig-9eJ7EM3B.js";import{i as l,r as u,s as d}from"./store-gohr8YVT.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-BfHRbVKz.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([o(),p(),d(),b()])}async function P(){await N();let e=S();return{app:`mavea`,kind:`backup`,version:1,exportedAt:Date.now(),data:{dashboards:i(),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,o={dashboards:i(),memory:f(),flashcards:_(),library:u(),atlas:x(),courses:S()},c=a(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:i(),memory:f(),flashcards:_(),library:u(),atlas:x(),courses:S()},k={dashboards:Z(n.sections.dashboards,c,r.dashboards??[],o.dashboards,O.dashboards),memory:Z(n.sections.memory,d,r.memory??[],o.memory,O.memory),flashcards:Z(n.sections.flashcards,p,r.flashcards??[],o.flashcards,O.flashcards),library:Z(n.sections.library,b,r.library??[],o.library,O.library),atlas:Z(n.sections.atlas,C,r.atlas??[],o.atlas,O.atlas),courses:Z(n.sections.courses,T,r.courses?.courses??[],o.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
+ import{n as e}from"./catalog-Db9GWM6N.js";import{t}from"./facts-BUGuVUIc.js";import{t as n}from"./blockTypes-DUDdP3pB.js";import{validateLiveResponse as r}from"./liveSchema-B4bQtO88.js";import{P as i,b as a,m as o}from"./store-B39HvB_l.js";import{i as s,t as c}from"./useLiveConfig-DWz7BRdk.js";import{i as l,r as u,s as d}from"./store-gohr8YVT.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-BfHRbVKz.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:o(),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:o(),memory:f(),flashcards:_(),library:u(),atlas:x(),courses:S()},c=a(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:o(),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 +1 @@
1
- var e=new Set([`insight`,`chart`,`breakdown`,`list`,`timeline`,`compare`,`kpi`,`ring`]),t=new Set([...e,`bars`,`stack`,`donut`,`gauge`,`blanks`]);function n(n){return n===`small`?e:t}export{t as n,n as r,e as t};
1
+ var e=new Set([`insight`,`chart`,`breakdown`,`list`,`timeline`,`compare`,`kpi`,`ring`]),t=new Set([...e,`bars`,`stack`,`donut`,`gauge`,`blanks`]),n=`photo`;function r(n){return n===`small`?e:t}export{r as i,t as n,n as r,e as t};
@@ -0,0 +1 @@
1
+ import"./ReplayCard-CKo5reXy.js";import"./TopicCanvas-DkzJORfl.js";import"./CanvasSkeleton-CcHXJqdq.js";
@@ -1,2 +1,2 @@
1
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{l as n,m as r}from"./index-D1SPhBGd.js";import{C as i,i as a,m as o}from"./kokoro-C6P0LV4L.js";var s=24e3,c=.15,l=.18,u=240,d=.008,f=.89,p=6;async function m(e,t){let n=i(e).trim().slice(0,u);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:a(`mavea`),response_format:`pcm`,speed:1}),signal:t});if(e.ok)return o(new Uint8Array(await e.arrayBuffer()),null).samples}catch{if(t?.aborted)return new Float32Array}return new Float32Array}async function h(e,t){let r=e.slides,i=r.map(e=>Math.max(800,Math.round(e.durationMs))),a=n(),o=r.map(e=>e.voiceover.trim()),u=o.find(Boolean);if(!a||typeof OfflineAudioContext>`u`)return{buffer:null,timings:i,missing:o.filter(Boolean).length,...u?{firstMissingLine:u}:{}};let h=await Promise.all(r.map(e=>m(e.voiceover,t))),g=o.filter(Boolean).length,_=h.filter(e=>e.length>0).length,v=Math.max(0,g-_),y=o.find((e,t)=>e&&h[t].length===0);if(_===0)return{buffer:null,timings:i,missing:v,...y?{firstMissingLine:y}:{}};let b=r.map((e,t)=>{let n=h[t].length/s*1e3;return Math.round(n>0?Math.max(i[t],n+l*1e3):i[t])}),x=0;for(let e of h)for(let t=0;t<e.length;t++)x=Math.max(x,Math.abs(e[t]));let S=x>0?Math.min(p,f/x):1,C=a.sampleRate,w=.65+b.reduce((e,t)=>e+t/1e3,0),T=new OfflineAudioContext(1,Math.ceil(w*C),C),E=T.createGain();E.gain.value=S,E.connect(T.destination);let D=c;return b.forEach((e,t)=>{let n=h[t];if(n.length){let e=T.createBuffer(1,n.length,s);e.getChannelData(0).set(n);let t=T.createBufferSource();t.buffer=e;let r=T.createGain(),i=n.length/s,a=Math.min(d,i/2);r.gain.setValueAtTime(0,D),r.gain.linearRampToValueAtTime(1,D+a),r.gain.setValueAtTime(1,D+i-a),r.gain.linearRampToValueAtTime(0,D+i),t.connect(r).connect(E),t.start(D)}D+=e/1e3}),{buffer:await T.startRendering(),timings:b,missing:v,...y?{firstMissingLine:y}:{}}}function g(e){let t=n();if(!t||typeof t.createMediaStreamDestination!=`function`)return null;let r=t.createMediaStreamDestination(),i=t.createBufferSource();i.buffer=e,i.connect(r);let a=!1;return{stream:r.stream,start(){a||(a=!0,t.state!==`running`&&t.resume().catch(()=>{}),i.start())},stop(){try{i.stop()}catch{}try{i.disconnect()}catch{}}}}function _(e,t,n){return t+Math.max(0,n-e)}function v(e,t){return!Number.isFinite(t)||t<=0||e>=t?null:Math.max(0,e)}function y(e){let t=n();if(!t)return null;let r=t.createGain();r.connect(t.destination);let i=null,a=0,o=0,s=!1,c=()=>{try{i?.stop(),i?.disconnect()}catch{}i=null},l=n=>{c(),i=t.createBufferSource(),i.buffer=e,i.connect(r),i.start(0,n),a=n,o=t.currentTime,s=!1};return{play(){t.state!==`running`&&t.resume().catch(()=>{}),l(0)},setMuted(e){r.gain.value=+!e},pause(){s||!i||(a=Math.min(e.duration,_(o,a,t.currentTime)),c(),s=!0)},resume(){if(!s)return;s=!1;let n=v(a,e.duration);n!==null&&(t.state!==`running`&&t.resume().catch(()=>{}),l(n))},stop(){c();try{r.disconnect()}catch{}}}}var b=`opus`,x=[{container:`mp4`,mimeType:`video/mp4`,video:`av1`,audio:b},{container:`webm`,mimeType:`video/webm`,video:`vp9`,audio:b},{container:`webm`,mimeType:`video/webm`,video:`vp8`,audio:b}],S=[`video/webm;codecs=vp9,opus`,`video/webm;codecs=vp8,opus`];async function C(e,t){if(t.audio&&!await e.canEncodeAudio(b,{numberOfChannels:t.audio.numberOfChannels,sampleRate:t.audio.sampleRate,bitrate:t.audioBitrate??192e3}).catch(()=>!1))return null;for(let n of x)if(await e.canEncodeVideo(n.video,{width:t.width,height:t.height,bitrate:t.videoBitrate}).catch(()=>!1))return n;return null}function w(){return typeof MediaRecorder>`u`||typeof MediaRecorder.isTypeSupported!=`function`?null:S.find(e=>MediaRecorder.isTypeSupported(e))??null}var T=201326592,E=864e5,D=256,O=32,k=/^mavea-video-(\d{13})-[a-z0-9]+[.](?:webm|mp4)$/,A=new WeakSet;async function j(e,t=Date.now()){let n=0,r=0;try{let i=e.entries();try{for(;n<D;){let a=await i.next();if(a.done)break;n+=1;let[o,s]=a.value;if(r>=O||s.kind!==`file`)continue;let c=k.exec(o);if(!c)continue;let l=Number(c[1]);if(!(!Number.isSafeInteger(l)||t-l<E))try{await e.removeEntry(o),r+=1}catch{}}}finally{await i.return?.()}}catch{}return r}function M(e){A.has(e)||(A.add(e),j(e))}async function N(e=`webm`){if(typeof navigator>`u`)return null;let t=navigator.storage;if(!t?.getDirectory)return null;try{let n=await t.getDirectory();M(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 P(e,t=`webm`){let n=await N(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 F(){let e=await N();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>T){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 I={balanced:{fps:24,bitrate:6e6},high:{fps:24,bitrate:7e6},ultra:{fps:24,bitrate:8e6}};function L(e,t=r()){let n=I[e],i=t===`lite`?{fps:12,bitrate:6e6}:{fps:24,bitrate:8e6};return{fps:Math.min(n.fps,i.fps),bitrate:Math.min(n.bitrate,i.bitrate)}}function R(e){let{fps:t,bitrate:n}=L(e);return`up to ${t} fps · ${Math.round(n/1e6)} Mbps`}async function z(){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 B(){try{return await t(()=>import(`./dist-DRo0JOkC.js`),[])}catch{return null}}var V={"9:16":{w:1080,h:1920},"1:1":{w:1080,h:1080},"16:9":{w:1920,h:1080}};function H(){if(typeof document>`u`)return!1;let e=w()!==null,t=typeof VideoEncoder<`u`&&globalThis.AudioEncoder!==void 0;return e||t}async function U(e){let t=L(e.quality??`high`),n=e.fps??t.fps,r=e.bitrate??t.bitrate,i=e.background??`#05070c`,{w:a,h:o}=e.dims??V[e.aspect],s=await B();if(!s)throw Error(`rasterizer-unavailable`);let c=e.el.clientWidth||a,l=Math.min(3,Math.max(1,a/c)),u=0,d=0,f=document.createElement(`canvas`);f.width=a,f.height=o;let p=f.getContext(`2d`,{alpha:!1});p.fillStyle=i,p.fillRect(0,0,a,o);let m=document.createElement(`canvas`);m.width=Math.round(a/2),m.height=Math.round(o/2);let h=m.getContext(`2d`),_=!1,v=()=>{h&&(h.drawImage(f,0,0,m.width,m.height),_=!0)},y=()=>new Blob([],{type:`image/png`}),b=async()=>(!_&&u>0&&v(),_?await new Promise(e=>m.toBlob(e,`image/png`))??y():y()),x=async()=>{let t;try{t=await s.domToCanvas(e.el,{scale:l,backgroundColor:i})}catch{d++;return}if(!t.width||!t.height){d++;return}d=0,u++;let n=Math.max(a/t.width,o/t.height),r=t.width*n,c=t.height*n;p.fillStyle=i,p.fillRect(0,0,a,o),p.drawImage(t,(a-r)/2,(o-c)/2,r,c)},S=typeof VideoEncoder<`u`&&globalThis.AudioEncoder!==void 0?await z():null,T=S?await C(S,{width:a,height:o,videoBitrate:r,audio:e.audioBuffer}):null;if(T&&S){let t=await P(S.StreamTarget,T.container),i=t?null:new S.BufferTarget,a=new S.Output({format:T.container===`mp4`?new S.Mp4OutputFormat:new S.WebMOutputFormat,target:t?.target??i}),o=new S.CanvasSource(f,{codec:T.video,bitrate:r});a.addVideoTrack(o);let s=null;if(e.audioBuffer){let t=new S.AudioBufferSource({codec:T.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 c=!0,l=!0,p=performance.now(),h=0,g=1e3/n,y=e.maxDurationMs??1/0;(async()=>{for(;c;){let e=performance.now();if(await x(),!c)break;let t=l?0:(performance.now()-p)/1e3;l=!1;try{await o.add(t,Math.max(1/n,t-h))}catch{break}if(h=t,t*1e3>=y)break;!_&&t>1.2&&u>2&&d===0&&v();let r=performance.now()-e;await new Promise(e=>setTimeout(e,Math.max(0,g-r)))}})();let C=()=>{c=!1,f.width=f.height=0,m.width=m.height=0};return{async stop(){c=!1;let n=await b();o.close(),await a.finalize();let r=t?await t.finish():null;return C(),{blob:r?.blob??new Blob([i?.buffer??new ArrayBuffer(0)],{type:T.mimeType}),type:T.mimeType,poster:n,hasAudio:!!e.audioBuffer,durationMs:Math.round(performance.now()-p),dispose:r?.dispose}},cancel(){c=!1,a.cancel?.(),t?.discard(),C()}}}let E=f.captureStream(n),D=new MediaStream(E.getVideoTracks()),O=e.audioBuffer?g(e.audioBuffer):null,k=O?.stream.getAudioTracks()[0]??null;k&&D.addTrack(k);let A=w();if(!A)throw f.width=f.height=0,m.width=m.height=0,Error(`open-codec-unavailable`);let j=new MediaRecorder(D,{mimeType:A,videoBitsPerSecond:r}),M=await F();j.ondataavailable=e=>M.write(e.data);let N=new Promise(e=>{j.addEventListener(`stop`,()=>e(),{once:!0})}),I=()=>{try{j.state!==`inactive`&&j.stop()}catch{}};j.start(1e3),O?.start();let R=!0,H=performance.now(),U=e.maxDurationMs??1/0,W=1e3/n;(async()=>{for(;R;){let e=performance.now();await x();let t=performance.now()-H;if(t>=U){I();break}!_&&t>1200&&u>2&&d===0&&v();let n=performance.now()-e;await new Promise(e=>setTimeout(e,Math.max(0,W-n)))}})();let G=()=>{R=!1;for(let e of D.getTracks())e.stop();O?.stop(),f.width=f.height=0,m.width=m.height=0};return{async stop(){R=!1;let e=await b();I(),await N;try{let t=await M.finish(),n=Math.round(performance.now()-H);return G(),{blob:t.blob,type:A,poster:e,hasAudio:!!k,durationMs:n,dispose:t.dispose}}catch(e){throw await M.discard(),G(),e}},cancel(){R=!1,I(),M.discard(),G()}}}export{w as a,m as c,U as i,H as n,y as o,R as r,h as s,L as t};
2
+ import{n as e,t}from"./preload-helper-CiWYd9n-.js";import{h as n,u as r}from"./index-CfcUMOBf.js";import{C as i,i as a,m as o}from"./kokoro-CdL8Kl48.js";var s=24e3,c=.15,l=.18,u=240,d=.008,f=.89,p=6;async function m(e,t){let n=i(e).trim().slice(0,u);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:a(`mavea`),response_format:`pcm`,speed:1}),signal:t});if(e.ok)return o(new Uint8Array(await e.arrayBuffer()),null).samples}catch{if(t?.aborted)return new Float32Array}return new Float32Array}async function h(e,t){let n=e.slides,i=n.map(e=>Math.max(800,Math.round(e.durationMs))),a=r(),o=n.map(e=>e.voiceover.trim()),u=o.find(Boolean);if(!a||typeof OfflineAudioContext>`u`)return{buffer:null,timings:i,missing:o.filter(Boolean).length,...u?{firstMissingLine:u}:{}};let h=await Promise.all(n.map(e=>m(e.voiceover,t))),g=o.filter(Boolean).length,_=h.filter(e=>e.length>0).length,v=Math.max(0,g-_),y=o.find((e,t)=>e&&h[t].length===0);if(_===0)return{buffer:null,timings:i,missing:v,...y?{firstMissingLine:y}:{}};let b=n.map((e,t)=>{let n=h[t].length/s*1e3;return Math.round(n>0?Math.max(i[t],n+l*1e3):i[t])}),x=0;for(let e of h)for(let t=0;t<e.length;t++)x=Math.max(x,Math.abs(e[t]));let S=x>0?Math.min(p,f/x):1,C=a.sampleRate,w=.65+b.reduce((e,t)=>e+t/1e3,0),T=new OfflineAudioContext(1,Math.ceil(w*C),C),E=T.createGain();E.gain.value=S,E.connect(T.destination);let D=c;return b.forEach((e,t)=>{let n=h[t];if(n.length){let e=T.createBuffer(1,n.length,s);e.getChannelData(0).set(n);let t=T.createBufferSource();t.buffer=e;let r=T.createGain(),i=n.length/s,a=Math.min(d,i/2);r.gain.setValueAtTime(0,D),r.gain.linearRampToValueAtTime(1,D+a),r.gain.setValueAtTime(1,D+i-a),r.gain.linearRampToValueAtTime(0,D+i),t.connect(r).connect(E),t.start(D)}D+=e/1e3}),{buffer:await T.startRendering(),timings:b,missing:v,...y?{firstMissingLine:y}:{}}}function g(e){let t=r();if(!t||typeof t.createMediaStreamDestination!=`function`)return null;let n=t.createMediaStreamDestination(),i=t.createBufferSource();i.buffer=e,i.connect(n);let a=!1;return{stream:n.stream,start(){a||(a=!0,t.state!==`running`&&t.resume().catch(()=>{}),i.start())},stop(){try{i.stop()}catch{}try{i.disconnect()}catch{}}}}function _(e,t,n){return t+Math.max(0,n-e)}function v(e,t){return!Number.isFinite(t)||t<=0||e>=t?null:Math.max(0,e)}function y(e){let t=r();if(!t)return null;let n=t.createGain();n.connect(t.destination);let i=null,a=0,o=0,s=!1,c=()=>{try{i?.stop(),i?.disconnect()}catch{}i=null},l=r=>{c(),i=t.createBufferSource(),i.buffer=e,i.connect(n),i.start(0,r),a=r,o=t.currentTime,s=!1};return{play(){t.state!==`running`&&t.resume().catch(()=>{}),l(0)},setMuted(e){n.gain.value=+!e},pause(){s||!i||(a=Math.min(e.duration,_(o,a,t.currentTime)),c(),s=!0)},resume(){if(!s)return;s=!1;let n=v(a,e.duration);n!==null&&(t.state!==`running`&&t.resume().catch(()=>{}),l(n))},stop(){c();try{n.disconnect()}catch{}}}}var b=`opus`,x=[{container:`mp4`,mimeType:`video/mp4`,video:`av1`,audio:b},{container:`webm`,mimeType:`video/webm`,video:`vp9`,audio:b},{container:`webm`,mimeType:`video/webm`,video:`vp8`,audio:b}],S=[`video/webm;codecs=vp9,opus`,`video/webm;codecs=vp8,opus`];async function C(e,t){if(t.audio&&!await e.canEncodeAudio(b,{numberOfChannels:t.audio.numberOfChannels,sampleRate:t.audio.sampleRate,bitrate:t.audioBitrate??192e3}).catch(()=>!1))return null;for(let n of x)if(await e.canEncodeVideo(n.video,{width:t.width,height:t.height,bitrate:t.videoBitrate}).catch(()=>!1))return n;return null}function w(){return typeof MediaRecorder>`u`||typeof MediaRecorder.isTypeSupported!=`function`?null:S.find(e=>MediaRecorder.isTypeSupported(e))??null}var T=201326592,E=864e5,D=256,O=32,k=/^mavea-video-(\d{13})-[a-z0-9]+[.](?:webm|mp4)$/,A=new WeakSet;async function j(e,t=Date.now()){let n=0,r=0;try{let i=e.entries();try{for(;n<D;){let a=await i.next();if(a.done)break;n+=1;let[o,s]=a.value;if(r>=O||s.kind!==`file`)continue;let c=k.exec(o);if(!c)continue;let l=Number(c[1]);if(!(!Number.isSafeInteger(l)||t-l<E))try{await e.removeEntry(o),r+=1}catch{}}}finally{await i.return?.()}}catch{}return r}function M(e){A.has(e)||(A.add(e),j(e))}async function N(e=`webm`){if(typeof navigator>`u`)return null;let t=navigator.storage;if(!t?.getDirectory)return null;try{let n=await t.getDirectory();M(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 P(e,t=`webm`){let n=await N(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 F(){let e=await N();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>T){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 I={balanced:{fps:24,bitrate:6e6},high:{fps:24,bitrate:7e6},ultra:{fps:24,bitrate:8e6}};function L(e,t=n()){let r=I[e],i=t===`lite`?{fps:12,bitrate:6e6}:{fps:24,bitrate:8e6};return{fps:Math.min(r.fps,i.fps),bitrate:Math.min(r.bitrate,i.bitrate)}}function R(e){let{fps:t,bitrate:n}=L(e);return`up to ${t} fps · ${Math.round(n/1e6)} Mbps`}async function z(){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 B(){try{return await t(()=>import(`./dist-DRo0JOkC.js`),[])}catch{return null}}var V={"9:16":{w:1080,h:1920},"1:1":{w:1080,h:1080},"16:9":{w:1920,h:1080}};function H(){if(typeof document>`u`)return!1;let e=w()!==null,t=typeof VideoEncoder<`u`&&globalThis.AudioEncoder!==void 0;return e||t}async function U(e){let t=L(e.quality??`high`),n=e.fps??t.fps,r=e.bitrate??t.bitrate,i=e.background??`#05070c`,{w:a,h:o}=e.dims??V[e.aspect],s=await B();if(!s)throw Error(`rasterizer-unavailable`);let c=e.el.clientWidth||a,l=Math.min(3,Math.max(1,a/c)),u=0,d=0,f=document.createElement(`canvas`);f.width=a,f.height=o;let p=f.getContext(`2d`,{alpha:!1});p.fillStyle=i,p.fillRect(0,0,a,o);let m=document.createElement(`canvas`);m.width=Math.round(a/2),m.height=Math.round(o/2);let h=m.getContext(`2d`),_=!1,v=()=>{h&&(h.drawImage(f,0,0,m.width,m.height),_=!0)},y=()=>new Blob([],{type:`image/png`}),b=async()=>(!_&&u>0&&v(),_?await new Promise(e=>m.toBlob(e,`image/png`))??y():y()),x=async()=>{let t;try{t=await s.domToCanvas(e.el,{scale:l,backgroundColor:i})}catch{d++;return}if(!t.width||!t.height){d++;return}d=0,u++;let n=Math.max(a/t.width,o/t.height),r=t.width*n,c=t.height*n;p.fillStyle=i,p.fillRect(0,0,a,o),p.drawImage(t,(a-r)/2,(o-c)/2,r,c)},S=typeof VideoEncoder<`u`&&globalThis.AudioEncoder!==void 0?await z():null,T=S?await C(S,{width:a,height:o,videoBitrate:r,audio:e.audioBuffer}):null;if(T&&S){let t=await P(S.StreamTarget,T.container),i=t?null:new S.BufferTarget,a=new S.Output({format:T.container===`mp4`?new S.Mp4OutputFormat:new S.WebMOutputFormat,target:t?.target??i}),o=new S.CanvasSource(f,{codec:T.video,bitrate:r});a.addVideoTrack(o);let s=null;if(e.audioBuffer){let t=new S.AudioBufferSource({codec:T.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 c=!0,l=!0,p=performance.now(),h=0,g=1e3/n,y=e.maxDurationMs??1/0;(async()=>{for(;c;){let e=performance.now();if(await x(),!c)break;let t=l?0:(performance.now()-p)/1e3;l=!1;try{await o.add(t,Math.max(1/n,t-h))}catch{break}if(h=t,t*1e3>=y)break;!_&&t>1.2&&u>2&&d===0&&v();let r=performance.now()-e;await new Promise(e=>setTimeout(e,Math.max(0,g-r)))}})();let C=()=>{c=!1,f.width=f.height=0,m.width=m.height=0};return{async stop(){c=!1;let n=await b();o.close(),await a.finalize();let r=t?await t.finish():null;return C(),{blob:r?.blob??new Blob([i?.buffer??new ArrayBuffer(0)],{type:T.mimeType}),type:T.mimeType,poster:n,hasAudio:!!e.audioBuffer,durationMs:Math.round(performance.now()-p),dispose:r?.dispose}},cancel(){c=!1,a.cancel?.(),t?.discard(),C()}}}let E=f.captureStream(n),D=new MediaStream(E.getVideoTracks()),O=e.audioBuffer?g(e.audioBuffer):null,k=O?.stream.getAudioTracks()[0]??null;k&&D.addTrack(k);let A=w();if(!A)throw f.width=f.height=0,m.width=m.height=0,Error(`open-codec-unavailable`);let j=new MediaRecorder(D,{mimeType:A,videoBitsPerSecond:r}),M=await F();j.ondataavailable=e=>M.write(e.data);let N=new Promise(e=>{j.addEventListener(`stop`,()=>e(),{once:!0})}),I=()=>{try{j.state!==`inactive`&&j.stop()}catch{}};j.start(1e3),O?.start();let R=!0,H=performance.now(),U=e.maxDurationMs??1/0,W=1e3/n;(async()=>{for(;R;){let e=performance.now();await x();let t=performance.now()-H;if(t>=U){I();break}!_&&t>1200&&u>2&&d===0&&v();let n=performance.now()-e;await new Promise(e=>setTimeout(e,Math.max(0,W-n)))}})();let G=()=>{R=!1;for(let e of D.getTracks())e.stop();O?.stop(),f.width=f.height=0,m.width=m.height=0};return{async stop(){R=!1;let e=await b();I(),await N;try{let t=await M.finish(),n=Math.round(performance.now()-H);return G(),{blob:t.blob,type:A,poster:e,hasAudio:!!k,durationMs:n,dispose:t.dispose}}catch(e){throw await M.discard(),G(),e}},cancel(){R=!1,I(),M.discard(),G()}}}export{w as a,m as c,U as i,H as n,y as o,R as r,h as s,L as t};
@@ -0,0 +1 @@
1
+ import{S as e,j as t,p as n}from"./store-B39HvB_l.js";import{n as r}from"./ledger-Cv0LBflx.js";import{i}from"./format-rPI6ZwwH.js";import{n as a}from"./useDashboardLoop-B_YA5jLs.js";var o=`Checking a live source before this joins your board — a search can take up to a minute. You can close this; the result lands in your check log either way.`;function s(e){return e===`no-model`?`Connect a model with an API key first — a tile only joins the board once a real search has confirmed it returns real data.`:`Couldn't confirm this with a live source, so it wasn't added — a tile only joins the board once a real search returns real data. Try again in a moment, or reword what to track.`}var c=e=>`${e.conversationId}@${e.at}`;function l(e){return{metrics:new Set(e.metrics.map(e=>e.id)),widgets:new Set(e.widgets.map(e=>e.id)),tripwires:new Set(e.tripwires.map(e=>e.id)),sources:new Set(e.sources.map(c))}}function u(r,i){if(i===null){e(r);return}let a=n(r);a&&t(r,{metrics:a.metrics.filter(e=>i.metrics.has(e.id)),widgets:a.widgets.filter(e=>i.widgets.has(e.id)),tripwires:a.tripwires.filter(e=>i.tripwires.has(e.id)),sources:a.sources.filter(e=>i.sources.has(c(e)))})}var d=1500,f=45e3,p=2,m=1e4,h=e=>new Promise(t=>setTimeout(t,e));function g(e,t){return!(n(e)?.metrics??[]).filter(e=>!(t?.metrics.has(e.id)??!1)).some(e=>e.query.trim()!==``&&!e.blankKey&&e.lastValue==null)}var _={unverified:`no live source could confirm it returns real data`,"no-model":`no model was connected to check it with`,failed:`the model could not be reached to check it`};function v(e,t,n,i){u(e,t);let a=_[i];return r({kind:`alert`,text:t===null?`“${n}” wasn’t added — ${a}.`:`The addition to “${n}” was rolled back — ${a}.`,dashboardIds:t===null?[]:[e],searches:0}),i}async function y(e,t){let r=n(e);if(!r)return`failed`;if(!i(r))return`confirmed`;let o=r.title,s=Date.now(),c=async()=>{let t=await a(e);for(let r=0;t===`busy`&&r<f;r+=d){if(await h(d),(n(e)?.lastRefreshedAt??0)>=s)return`landed`;t=await a(e)}return t},l=await c();for(let e=0;e<p&&l===`failed`;e++)await h(m),l=await c();return(l===`done`||l===`landed`)&&g(e,t)?`confirmed`:l===`landed`?v(e,t,o,`unverified`):v(e,t,o,l===`no-model`||l===`failed`?l:`unverified`)}export{y as i,l as n,s as r,o as t};
@@ -0,0 +1,5 @@
1
+ var e=2e4,t=1e3;function n(e){let t=e.slice(0,e.indexOf(`
2
+ `)===-1?e.length:e.indexOf(`
3
+ `)),n={",":0," ":0,";":0},r=!1;for(let e of t)e===`"`?r=!r:!r&&e in n&&(n[e]+=1);let i=`,`;for(let e of Object.keys(n))n[e]>n[i]&&(i=e);return i}function r(e,t){let n=[],r=``,i=[],a=!1,o=()=>{i.push(r),r=``},s=()=>{o(),n.push(i),i=[]};for(let n=0;n<e.length;n+=1){let i=e[n];if(a){i===`"`?e[n+1]===`"`?(r+=`"`,n+=1):a=!1:r+=i;continue}i===`"`?a=!0:i===t?o():i===`
4
+ `?s():i===`\r`?e[n+1]!==`
5
+ `&&s():r+=i}return(r.length>0||i.length>0)&&s(),n}function i(t){let i=t.replace(/^\uFEFF/,``);if(!i.trim())return null;let a=r(i,n(i)).filter(e=>e.length!==1||e[0].trim()!==``);if(a.length===0)return null;let o=a[0].map((e,t)=>e.trim()||`col${t+1}`),s=o.length,c=a.slice(1),l=c.length,u=c.slice(0,e).map(e=>{let t=e.slice(0,s);for(;t.length<s;)t.push(``);return t});return{headers:o,rows:u,sourceRowCount:l,truncated:l>u.length}}export{e as n,t as r,i as t};
@@ -1,2 +1,2 @@
1
- import{t as e}from"./react-BZJXY1be.js";import{a as t,i as n}from"./spokenText-D3iS8fuI.js";import{O as r,k as i}from"./kokoro-C6P0LV4L.js";import{n as a,t as o}from"./contentVault-xfUwSJ3i.js";import{T as s,j as c}from"./store-DpmbKVs7.js";import{n as l,s as u}from"./ledger-Cv0LBflx.js";import{a as d,i as f}from"./format-rPI6ZwwH.js";var p=14,m=2,h=12096e5,g={"15min":()=>`hourly`,hourly:e=>e===0?`daily`:`6h`};function _(e){switch(e){case`15min`:return`every 15 min`;case`hourly`:return`hourly`;case`6h`:return`every 6 hours`;case`daily`:return`daily`;case`manual`:return`manual`}}function v(e,t,n){if(!f(e))return null;let r=g[e.cadence.data];if(!r||t<p||n>m)return null;let i=r(n),a=c[e.cadence.data],o=c[i];if(!Number.isFinite(a)||!Number.isFinite(o)||o<=a)return null;let s=Math.round(t*(1-a/o)*(30/7));return s<=0?null:{dashboardId:e.id,to:i,savesPerMonth:s,checks7d:t,opens7d:n}}function y(e,t,n){let r=n-h;return e.some(e=>e.kind===`savings`&&e.at>=r&&e.suggestion?.dashboardId===t)}function b(e,t,n,r,i,a=3){let o=[];for(let s of e){if(o.length>=a)break;if(y(t,s.id,i))continue;let e=v(s,n(s.id),r(s.id));e&&o.push(e)}return o}function x(e,t){let n=t.opens7d===1?`1 time`:`${t.opens7d} times`;return`You check ${e.title} ${_(e.cadence.data)} but only opened it ${n} this week. Dropping to ${_(t.to)} would save about ${t.savesPerMonth} searches a month.`}function S(e){return{action:`set-cadence`,dashboardId:e.dashboardId,to:e.to,savesPerMonth:e.savesPerMonth,state:`open`}}function C(e,t){let n=new Map(e.map(e=>[e.id,e]));for(let e of t){let t=n.get(e.dashboardId);t&&l({kind:`savings`,text:x(t,e),dashboardIds:[e.dashboardId],searches:0,suggestion:S(e)})}}function ee(e,t,n,r=Date.now()){s(t,{data:n},r),u(e,`applied`),l({kind:`savings`,text:`Applied — cadence dropped to ${_(n)}.`,dashboardIds:[t],searches:0})}function w(e){u(e,`dismissed`)}var T=`mavea-dash-optimizer-date`;function E(e){return new Date(e).toISOString().slice(0,10)}function D(e){try{return typeof localStorage>`u`?!1:localStorage.getItem(T)===E(e)}catch{return!1}}function O(e){try{typeof localStorage<`u`&&localStorage.setItem(T,E(e))}catch{}}function k(e,t,n,r,i=Date.now()){D(i)||(O(i),C(e,b(e,t,n,r,i)))}var A=e(),j=`mavea-dash-briefing-v1`,M=j,N=`mavea-dash-briefing-date`;function P(e){return new Date(e).toISOString().slice(0,10)}function F(e){return!!e&&typeof e==`object`}function I(e){return!F(e)||typeof e.dashboardId!=`string`||!e.dashboardId||typeof e.label!=`string`||typeof e.value!=`string`?null:{dashboardId:e.dashboardId,label:e.label,value:e.value}}function L(e){if(!F(e)||typeof e.date!=`string`||typeof e.text!=`string`||!e.text)return null;let t=typeof e.at==`number`&&Number.isFinite(e.at)?e.at:0,n=Array.isArray(e.chips)?e.chips.map(I).filter(e=>e!==null):[];return{date:e.date,at:t,text:e.text,...typeof e.spoken==`string`&&e.spoken?{spoken:e.spoken}:{},chips:n}}var R;async function z(e){try{if(typeof localStorage>`u`)return;localStorage.setItem(j,await a(e))}catch{}}function te(){try{if(typeof localStorage>`u`)return null;let e=localStorage.getItem(j);if(!e)return null;let t=L(JSON.parse(e));return t&&z(t),t}catch{return null}}async function B(){try{if(typeof localStorage>`u`)return;let e=localStorage.getItem(j);if(!e)return;try{JSON.parse(e);return}catch{}let t=L(await o(e));R=t,typeof window<`u`&&typeof CustomEvent==`function`&&window.dispatchEvent(new CustomEvent(M,{detail:t}))}catch{}}B();function V(){return R??=te(),R}function H(e){R=e,z(e);try{typeof window<`u`&&typeof CustomEvent==`function`&&window.dispatchEvent(new CustomEvent(M,{detail:e}))}catch{}}function U(e){return window.addEventListener(M,e),()=>window.removeEventListener(M,e)}function W(){return(0,A.useSyncExternalStore)(U,V,G)}function G(){return null}function K(){try{return typeof localStorage>`u`?null:localStorage.getItem(N)}catch{return null}}function q(e){try{typeof localStorage<`u`&&localStorage.setItem(N,e)}catch{}}function J(e){return K()!==P(e)}function Y(e){q(P(e))}function X(e,t){let n=[];for(let r of e){if(t.has(r.id))continue;let e=d(r);!e||e.value===`—`||n.push(`- ${r.title}: ${e.label} is ${e.value}`)}return n.join(`
1
+ import{t as e}from"./react-BZJXY1be.js";import{a as t,i as n}from"./spokenText-C88IQJ0M.js";import{O as r,k as i}from"./kokoro-CdL8Kl48.js";import{n as a,t as o}from"./contentVault-xfUwSJ3i.js";import{A as s,R as c}from"./store-B39HvB_l.js";import{n as l,s as u}from"./ledger-Cv0LBflx.js";import{a as d,i as f}from"./format-rPI6ZwwH.js";var p=14,m=2,h=12096e5,g={"15min":()=>`hourly`,hourly:e=>e===0?`daily`:`6h`};function _(e){switch(e){case`15min`:return`every 15 min`;case`hourly`:return`hourly`;case`6h`:return`every 6 hours`;case`daily`:return`daily`;case`manual`:return`manual`}}function v(e,t,n){if(!f(e))return null;let r=g[e.cadence.data];if(!r||t<p||n>m)return null;let i=r(n),a=c[e.cadence.data],o=c[i];if(!Number.isFinite(a)||!Number.isFinite(o)||o<=a)return null;let s=Math.round(t*(1-a/o)*(30/7));return s<=0?null:{dashboardId:e.id,to:i,savesPerMonth:s,checks7d:t,opens7d:n}}function y(e,t,n){let r=n-h;return e.some(e=>e.kind===`savings`&&e.at>=r&&e.suggestion?.dashboardId===t)}function b(e,t,n,r,i,a=3){let o=[];for(let s of e){if(o.length>=a)break;if(y(t,s.id,i))continue;let e=v(s,n(s.id),r(s.id));e&&o.push(e)}return o}function x(e,t){let n=t.opens7d===1?`1 time`:`${t.opens7d} times`;return`You check ${e.title} ${_(e.cadence.data)} but only opened it ${n} this week. Dropping to ${_(t.to)} would save about ${t.savesPerMonth} searches a month.`}function S(e){return{action:`set-cadence`,dashboardId:e.dashboardId,to:e.to,savesPerMonth:e.savesPerMonth,state:`open`}}function C(e,t){let n=new Map(e.map(e=>[e.id,e]));for(let e of t){let t=n.get(e.dashboardId);t&&l({kind:`savings`,text:x(t,e),dashboardIds:[e.dashboardId],searches:0,suggestion:S(e)})}}function ee(e,t,n,r=Date.now()){s(t,{data:n},r),u(e,`applied`),l({kind:`savings`,text:`Applied — cadence dropped to ${_(n)}.`,dashboardIds:[t],searches:0})}function w(e){u(e,`dismissed`)}var T=`mavea-dash-optimizer-date`;function E(e){return new Date(e).toISOString().slice(0,10)}function D(e){try{return typeof localStorage>`u`?!1:localStorage.getItem(T)===E(e)}catch{return!1}}function O(e){try{typeof localStorage<`u`&&localStorage.setItem(T,E(e))}catch{}}function k(e,t,n,r,i=Date.now()){D(i)||(O(i),C(e,b(e,t,n,r,i)))}var A=e(),j=`mavea-dash-briefing-v1`,M=j,N=`mavea-dash-briefing-date`;function P(e){return new Date(e).toISOString().slice(0,10)}function F(e){return!!e&&typeof e==`object`}function I(e){return!F(e)||typeof e.dashboardId!=`string`||!e.dashboardId||typeof e.label!=`string`||typeof e.value!=`string`?null:{dashboardId:e.dashboardId,label:e.label,value:e.value}}function L(e){if(!F(e)||typeof e.date!=`string`||typeof e.text!=`string`||!e.text)return null;let t=typeof e.at==`number`&&Number.isFinite(e.at)?e.at:0,n=Array.isArray(e.chips)?e.chips.map(I).filter(e=>e!==null):[];return{date:e.date,at:t,text:e.text,...typeof e.spoken==`string`&&e.spoken?{spoken:e.spoken}:{},chips:n}}var R;async function z(e){try{if(typeof localStorage>`u`)return;localStorage.setItem(j,await a(e))}catch{}}function te(){try{if(typeof localStorage>`u`)return null;let e=localStorage.getItem(j);if(!e)return null;let t=L(JSON.parse(e));return t&&z(t),t}catch{return null}}async function B(){try{if(typeof localStorage>`u`)return;let e=localStorage.getItem(j);if(!e)return;try{JSON.parse(e);return}catch{}let t=L(await o(e));R=t,typeof window<`u`&&typeof CustomEvent==`function`&&window.dispatchEvent(new CustomEvent(M,{detail:t}))}catch{}}B();function V(){return R??=te(),R}function H(e){R=e,z(e);try{typeof window<`u`&&typeof CustomEvent==`function`&&window.dispatchEvent(new CustomEvent(M,{detail:e}))}catch{}}function U(e){return window.addEventListener(M,e),()=>window.removeEventListener(M,e)}function W(){return(0,A.useSyncExternalStore)(U,V,G)}function G(){return null}function K(){try{return typeof localStorage>`u`?null:localStorage.getItem(N)}catch{return null}}function q(e){try{typeof localStorage<`u`&&localStorage.setItem(N,e)}catch{}}function J(e){return K()!==P(e)}function Y(e){q(P(e))}function X(e,t){let n=[];for(let r of e){if(t.has(r.id))continue;let e=d(r);!e||e.value===`—`||n.push(`- ${r.title}: ${e.label} is ${e.value}`)}return n.join(`
2
2
  `)}function Z(e){let t=[];for(let n of e){let e=d(n);!e||e.value===`—`||t.push({dashboardId:n.id,label:e.label,value:e.value})}return t}function Q(e,r,i){let a=n(e),o=t(e),s={date:P(i),at:i,text:a,...o&&o!==a?{spoken:o}:{},chips:Z(r)};return H(s),Y(i),s}function ne(e,t){i(r(t||e),`mavea`)}var $=`mavea-dashboard-tripwire-toast`;function re(e){try{typeof window<`u`&&typeof CustomEvent==`function`&&window.dispatchEvent(new CustomEvent($,{detail:e}))}catch{}}function ie(e){let t=t=>e(t.detail);return window.addEventListener($,t),()=>window.removeEventListener($,t)}export{Q as a,ee as c,X as i,w as l,ie as n,ne as o,J as r,W as s,re as t,k as u};
@@ -0,0 +1 @@
1
+ .mavea-app.dash-app{flex-direction:column;height:100%;display:flex;overflow-y:auto}.dash-risk-note{width:min(calc(100% - 40px), var(--canvas-col-max));flex:none;margin:12px auto 0}.dash-quota-note{width:min(calc(100% - 40px), var(--canvas-col-max));border:1px solid color-mix(in oklab, var(--warning) 40%, transparent);background:color-mix(in oklab, var(--warning) 8%, var(--surface-elevated));color:var(--text-primary);border-radius:10px;flex:none;margin:12px auto 0;padding:10px 14px;font-size:13px;line-height:1.45}.dash-cta{color:var(--on-presence,#fff);background:linear-gradient(120deg, var(--presence), var(--insight));border-radius:var(--r-full);font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;box-shadow:0 6px 18px -8px color-mix(in oklab, var(--presence) 70%, transparent);transition:transform var(--m-normal) var(--ease-out), box-shadow var(--m-normal) var(--ease-out);border:none;flex:none;align-items:center;gap:8px;padding:11px 20px;text-decoration:none;display:inline-flex}.dash-cta:hover{box-shadow:0 14px 30px -12px color-mix(in oklab, var(--presence) 75%, transparent);transform:translateY(-2px)}.dash-empty{text-align:center;max-width:460px;color:var(--text-secondary);margin:40px auto}.dash-empty-title{color:var(--text-primary);margin:0 0 10px;font-size:17px;font-weight:600}.dash-empty-how{color:var(--text-muted);margin:0;font-size:13.5px;line-height:1.65}.dash-empty-how a{color:var(--presence);text-decoration:none}.dash-detail{width:min(100%, var(--canvas-col-max));flex-direction:column;gap:20px;margin:0 auto;padding:24px 26px 64px;display:flex}.dash-detail-head{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:12px;padding-bottom:14px;display:flex}.dash-back{color:var(--text-muted);flex:none;font-size:18px;line-height:1;text-decoration:none}.dash-back:hover{color:var(--text-primary)}.dash-detail-title{text-overflow:ellipsis;white-space:nowrap;min-width:40px;color:var(--text-primary);flex:0 auto;font-size:18px;font-weight:700;overflow:hidden}.dash-detail-q{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-secondary);flex:1;font-size:13px;font-style:italic;overflow:hidden}.dash-detail-clock{font-family:var(--font-data,var(--font));letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;flex:none;align-items:center;gap:6px;font-size:10px;display:inline-flex}.dash-live-dot{background:var(--presence);border-radius:50%;width:6px;height:6px;animation:1.6s ease-in-out infinite dashPulse}@keyframes dashPulse{0%,to{opacity:1}50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.dash-live-dot{opacity:1;animation:none}}.dash-grid{grid-template-columns:repeat(12,1fr);align-items:stretch;gap:14px;display:grid}.dash-span-1{grid-column:span 4}.dash-span-2{grid-column:span 8}.dash-span-3{grid-column:span 12}.dash-tile{flex-direction:column;min-width:0;display:flex}.dash-tile .card{margin:0}.dash-tile .card-grid,.dash-talk-answer .card-grid{grid-template-columns:1fr;gap:12px;max-width:none;margin:0}.dash-tile .card-grid>[class*=col-],.dash-talk-answer .card-grid>[class*=col-]{grid-column:1/-1}.dash-tile,.dash-tile .card-grid,.dash-tile .card-grid>[class*=col-]{height:100%}@media (width<=760px){.dash-grid{grid-template-columns:1fr}.dash-span-1,.dash-span-2,.dash-span-3{grid-column:auto}}.dash-key-nudge{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;display:flex}.dash-key-nudge-text{color:var(--text-secondary);flex:1;min-width:220px;margin:0;font-size:13px}.dash-key-nudge-actions{flex:none;align-items:center;gap:8px;display:flex}.dash-key-nudge-keep{color:var(--on-presence,#fff);background:var(--presence);border-radius:var(--r-full);cursor:pointer;white-space:nowrap;border:none;padding:7px 14px;font-size:12.5px;font-weight:600}.dash-key-nudge-dismiss{color:var(--text-muted);border:1px solid var(--line-soft);border-radius:var(--r-full);cursor:pointer;white-space:nowrap;background:0 0;padding:7px 14px;font-size:12.5px;font-weight:600}.dash-key-nudge-dismiss:hover{color:var(--text-secondary);border-color:var(--line)}.dash-key-nudge-keep:focus-visible,.dash-key-nudge-dismiss:focus-visible{outline:2px solid var(--presence);outline-offset:2px}.dash-hero{flex-direction:column;gap:14px;display:flex}.dash-hero-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.dash-hero-eyebrow{font-family:var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:var(--presence);font-size:11px;font-weight:600}.dash-hero-meta{font-family:var(--font-data,var(--font));letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);text-align:right;white-space:nowrap;font-size:10.5px}.dash-hero-value-row{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.dash-hero-value{font-family:var(--font-data,var(--font));letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:clamp(32px,6vw,56px);font-weight:700;line-height:1}.dash-hero-delta{font-family:var(--font-data,var(--font));font-variant-numeric:tabular-nums;border-radius:var(--r-full);flex:none;padding:4px 10px;font-size:15px;font-weight:700}.dash-hero-delta--up{color:var(--insight);background:color-mix(in oklab, var(--insight) 16%, transparent)}.dash-hero-delta--down{color:var(--danger);background:color-mix(in oklab, var(--danger) 16%, transparent)}.dash-hero-chart{width:100%;overflow:hidden}.dash-hero-chart .tile-viz-svg{height:72px}.dash-hero-chart-empty{color:var(--text-muted);margin:0;font-size:12px}.dash-lastcheck{border:1px solid color-mix(in oklab, var(--presence) 32%, var(--line));border-radius:var(--r-lg);background:linear-gradient(180deg, color-mix(in oklab, var(--presence) 7%, var(--surface-elevated)), var(--surface-elevated));padding:16px 18px}.dash-lastcheck-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.dash-lastcheck-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--presence);font-weight:600}.dash-lastcheck-when{color:var(--text-secondary);white-space:nowrap;font-size:11.5px}.dash-lastcheck-text{font-family:var(--font-voice,var(--font));color:var(--text-primary);margin:0;font-size:14.5px;line-height:1.5}.dash-lastcheck-sources{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.dash-lastcheck-source{text-overflow:ellipsis;white-space:nowrap;border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-default);max-width:220px;color:var(--text-secondary);padding:3px 9px;font-size:11.5px;text-decoration:none;transition:border-color .14s,color .14s;overflow:hidden}.dash-lastcheck-source:hover{border-color:var(--presence);color:var(--text-primary)}.dash-expects{border-top:1px solid var(--line-soft);flex-direction:column;gap:8px;margin-top:14px;padding-top:14px;display:flex}.dash-expects-eyebrow{color:var(--presence);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.dash-expects-text{font-family:var(--font-voice,var(--font));color:var(--text-primary);margin:0;font-size:14.5px;line-height:1.5}.dash-expects-grade{flex-direction:column;gap:4px;display:flex}.dash-expects-chip{font-family:var(--font-data,var(--font));letter-spacing:.05em;text-transform:uppercase;border-radius:var(--r-full);align-self:flex-start;padding:3px 9px;font-size:11px;font-weight:700}.dash-expects-chip.is-hit{color:var(--insight);background:color-mix(in oklab, var(--insight) 16%, transparent)}.dash-expects-chip.is-miss{color:var(--danger);background:color-mix(in oklab, var(--danger) 16%, transparent)}.dash-expects-chip.is-unclear{color:var(--warning);background:color-mix(in oklab, var(--warning) 18%, transparent)}.dash-expects-expected{font-family:var(--font-voice,var(--font));color:var(--text-secondary);margin:0;font-size:13.5px;font-style:italic;line-height:1.5}.dash-expects-note{color:var(--text-muted);margin:0;font-size:12px}.dash-expects-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.dash-expects-tally,.dash-expects-label{font-family:var(--font-data,var(--font));letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:10px}.dash-cadence-card{flex-direction:column;gap:12px;display:flex}.dash-cadence-cost{color:var(--text-muted);margin:0;font-size:12px;line-height:1.5}.dash-cadence-window,.dash-cadence-oneshot{border:1px solid var(--line-soft);border-radius:var(--r-md);background:var(--surface-glass);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.dash-cadence-window-text{color:var(--text-secondary);margin:0;font-size:12px;line-height:1.45}.dash-cadence-clear{font-family:var(--font-data,var(--font));letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--line);border-radius:var(--r-full);cursor:pointer;background:0 0;flex:none;padding:5px 11px;font-size:11px;font-weight:600;transition:color .14s,border-color .14s}.dash-cadence-clear:hover{color:var(--text-primary);border-color:var(--presence)}.dash-alertcard{flex-direction:column;gap:10px;display:flex}.dash-alertcard-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.dash-alertcard-row{border-radius:var(--r-sm);align-items:center;gap:11px;padding:6px 8px;display:flex}.dash-alertcard-row.is-triggered{background:color-mix(in oklab, var(--danger) 12%, transparent)}.dash-alertcard-body{flex-direction:column;gap:2px;min-width:0;display:flex}.dash-alertcard-line{color:var(--text-primary);font-size:13px;line-height:1.4}.dash-alertcard-state{font-family:var(--font-data,var(--font));letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:600}.dash-alertcard-crossed{font-family:var(--font-data,var(--font));letter-spacing:.04em;text-transform:uppercase;color:var(--danger);font-size:10.5px;font-weight:700}.dash-detail-cols{grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:start;gap:18px;display:grid}.dash-detail-main{flex-direction:column;gap:18px;min-width:0;display:flex}.dash-detail-section{min-width:0}.dash-detail-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;font-weight:600;display:block}.dash-detail-side{flex-direction:column;gap:16px;min-width:0;display:flex}@media (width<=900px){.dash-detail-cols{grid-template-columns:1fr}}.dash-talk{border-top:1px solid var(--line-soft);flex-direction:column;gap:12px;padding-top:16px;display:flex}.dash-talk-eyebrow{margin-bottom:0}.dash-talk-chips{flex-wrap:wrap;gap:8px;display:flex}.dash-talk-chip{background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-full);max-width:min(100%,340px);color:var(--text-primary);cursor:pointer;align-items:center;gap:8px;padding:8px 13px;font-size:12.5px;transition:border-color .14s;display:inline-flex}.dash-talk-chip-t{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dash-talk-chip:hover:not(:disabled){border-color:var(--presence)}.dash-talk-chip:disabled{opacity:.5;cursor:default}.dash-talk-chip-orb{background:radial-gradient(circle at 34% 28%, var(--presence-soft,#a9afff), var(--presence) 60%, var(--presence-deep,#3a43c9));border-radius:50%;flex:none;width:14px;height:14px}.dash-talk-ask{gap:8px;display:flex}.dash-talk-input{background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-full);min-width:0;font-size:14px;font-family:var(--font);color:var(--text-primary);flex:1;padding:12px 18px}.dash-talk-input:focus{border-color:var(--presence);outline:none}.dash-talk-send{background:linear-gradient(120deg, var(--presence), var(--insight));color:var(--on-presence,#fff);border-radius:var(--r-full);cursor:pointer;border:none;flex:none;padding:12px 20px;font-size:13px;font-weight:600}.dash-talk-send:disabled{opacity:.5;cursor:default}.dash-talk-gate,.dash-talk-error{color:var(--text-secondary);font-size:13px;line-height:1.55}.dash-talk-gate a,.dash-talk-error a,.dash-detail-q a{color:var(--presence);text-decoration:none}.dash-talk-answer{border:1px solid var(--line-soft);background:var(--surface-elevated);border-radius:14px;flex-direction:column;gap:10px;padding:14px;display:flex}.dash-talk-q{color:var(--text-secondary);font-size:13px;font-style:italic;font-weight:600}.dash-talk-narration{color:var(--text-primary);margin:0;font-size:13.5px;line-height:1.55}.dash-talk-thinking{color:var(--text-muted);font-size:13px}.xt-scrim{z-index:50;background:color-mix(in oklab, var(--surface-deep,#000) 64%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:center;padding:28px;display:flex;position:fixed;inset:0}.xt-modal{background:var(--surface-elevated);border:1px solid var(--line);width:min(100%,920px);max-height:88vh;box-shadow:var(--shadow-modal);border-radius:18px;flex-direction:column;display:flex;overflow:hidden}.xt-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.xt-head-title{color:var(--text-primary);font-size:15px;font-weight:700}.xt-close{border-radius:var(--r-sm);background:var(--surface-glass);width:28px;height:28px;color:var(--text-muted);cursor:pointer;border:none;flex:none;font-size:17px;line-height:1}.xt-close:hover{color:var(--text-primary)}.xt-empty,.xt-loading{text-align:center;color:var(--text-secondary);padding:40px 28px;font-size:14px}.xt-empty a,.xt-comp-body a{color:var(--presence);text-decoration:none}.xt-split{grid-template-columns:1fr 1.2fr;min-height:0;display:grid;overflow:hidden}.xt-left,.xt-right{flex-direction:column;gap:11px;padding:18px 20px;display:flex;overflow-y:auto}.xt-left{border-right:1px solid var(--line-soft);background:var(--surface-glass)}.xt-section-label{font-family:var(--font-data,var(--font));letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:9.5px;font-weight:600}.xt-line{color:var(--text-secondary);overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.6}.xt-hl{background:color-mix(in oklab, var(--hl,var(--presence)) 18%, transparent);color:var(--text-primary);border-radius:4px;padding:1px 3px;position:relative}.xt-goal{--hl:var(--presence)}.xt-risk{--hl:var(--warning)}.xt-metric{--hl:var(--insight)}.xt-tag{font-family:var(--font-data,var(--font));letter-spacing:.1em;color:var(--hl,var(--presence));vertical-align:middle;margin-left:5px;font-size:9px;font-weight:700}.xt-comp{border:1px solid var(--line-soft);border-radius:var(--r-md);overflow:hidden}.xt-comp.xt-off{opacity:.5}.xt-comp-head{background:color-mix(in oklab, var(--hl,var(--presence)) 12%, transparent);justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;display:flex}.xt-comp--goal{--hl:var(--presence)}.xt-comp--risk{--hl:var(--warning)}.xt-comp--metric{--hl:var(--insight)}.xt-comp-kind{font-family:var(--font-data,var(--font));letter-spacing:.1em;color:var(--hl,var(--presence));font-size:9px;font-weight:700}.xt-comp-toggle{border-radius:var(--r-sm);cursor:pointer;background:var(--surface-glass);color:var(--text-secondary);border:none;padding:4px 10px;font-size:11px;font-weight:600}.xt-comp-toggle:disabled{cursor:default;color:var(--text-muted)}.xt-comp-body{color:var(--text-primary);overflow-wrap:anywhere;padding:10px 12px;font-size:12.5px;line-height:1.5}.dash-plan-estimate{font-family:var(--font-data,var(--font));letter-spacing:.02em;color:var(--text-muted);margin:0;font-size:11px}.xt-confirm-err{color:var(--warning);margin:0;font-size:11.5px;line-height:1.45}.xt-build-row{gap:10px;margin-top:4px;display:flex}.xt-name{border:1.5px solid var(--presence);min-width:0;font-size:14px;font-weight:600;font-family:var(--font);background:var(--surface-default);color:var(--text-primary);border-radius:10px;flex:1;padding:10px 14px}.xt-name:focus{outline:none}.xt-build{cursor:pointer;background:var(--presence);color:var(--on-presence,#fff);border:none;border-radius:10px;flex:none;padding:10px 18px;font-size:13px;font-weight:700}@media (width<=720px){.xt-split{grid-template-columns:1fr}.xt-left{border-right:none;border-bottom:1px solid var(--line-soft)}}.dash-settings{flex-direction:column;gap:20px;width:min(100%,1180px);margin:0 auto;padding:24px 26px 64px;display:flex}.dash-gear{color:var(--text-muted);flex:none;font-size:15px;line-height:1;text-decoration:none}.dash-gear:hover{color:var(--text-primary)}.dash-settings-grid{grid-template-columns:1.4fr 1fr;align-items:start;gap:18px;display:grid}.dash-settings-cols{flex-direction:column;gap:16px;display:flex}.dash-set-card{flex-direction:column;gap:12px;display:flex}.dash-set-blurb{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.5}.dash-seg{flex-wrap:wrap;gap:7px;display:flex}.dash-seg-opt{color:var(--text-secondary);background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;font-size:12.5px;font-weight:600;font-family:var(--font);padding:7px 13px;transition:color .14s,background .14s,border-color .14s}.dash-seg-opt:hover{border-color:var(--presence)}.dash-seg-opt.is-active{color:var(--on-presence,#fff);background:var(--presence);border-color:var(--presence)}.dash-switch{border-radius:var(--r-full);background:var(--track,var(--line));flex:none;width:42px;height:24px;transition:background .16s;position:relative}.dash-switch.on{background:var(--insight)}.dash-switch-knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .16s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.dash-switch.on .dash-switch-knob{transform:translate(18px)}.dash-set-alerts{flex-direction:column;gap:8px;display:flex}.dash-check{cursor:pointer;text-align:left;font-family:var(--font);background:0 0;border:none;align-items:center;gap:11px;padding:4px 0;display:flex}.dash-check.disabled{cursor:default;opacity:.6}.dash-check-box{border-radius:var(--r-sm);border:1px solid var(--line);width:20px;height:20px;color:var(--on-presence,#fff);flex:none;justify-content:center;align-items:center;font-size:12px;display:flex}.dash-check.on .dash-check-box{background:var(--presence);border-color:var(--presence)}.dash-check-text{flex-direction:column;display:flex}.dash-check-label{color:var(--text-primary);font-size:13px}.dash-check-note{color:var(--text-muted);font-size:11px}.dash-alert-test-row{flex-wrap:wrap;align-items:baseline;gap:8px;margin:2px 0 2px 31px;display:flex}.dash-alert-test{font:600 var(--fs-2xs) / 1 var(--font);color:var(--presence);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0}.dash-alert-test-note{font-size:var(--fs-2xs);color:var(--text-muted);max-width:320px;line-height:1.5}.dash-usage{top:calc(var(--bar-h) + 10px);flex-direction:column;gap:12px;display:flex;position:sticky}.dash-usage-band{font-family:var(--font-data,var(--font));letter-spacing:.04em;color:var(--insight);font-size:13px;font-weight:700}.dash-usage--none{color:var(--text-muted)}.dash-usage--minimal,.dash-usage--light{color:var(--insight)}.dash-usage--moderate{color:var(--warning)}.dash-usage--frequent{color:var(--danger)}.dash-usage-rows{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);flex-direction:column;gap:8px;padding:12px 0;display:flex}.dash-usage-row{color:var(--text-secondary);justify-content:space-between;align-items:baseline;gap:12px;font-size:12.5px;display:flex}.dash-usage-val{font-family:var(--font-data,var(--font));color:var(--text-primary);text-align:right;font-size:11.5px}.dash-usage-warning{color:var(--text-muted);margin:0;font-size:12px;line-height:1.55}.dash-usage-done{text-align:center;color:var(--on-presence,#fff);background:var(--presence);border-radius:11px;margin-top:2px;padding:11px;font-size:13px;font-weight:600;text-decoration:none}@media (width<=760px){.dash-settings-grid{grid-template-columns:1fr}.dash-usage{position:static}}.dash-edit-btn{color:var(--presence);background:color-mix(in oklab, var(--presence) 12%, transparent);border:1px solid color-mix(in oklab, var(--presence) 35%, transparent);border-radius:var(--r-sm);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font);flex:none;padding:6px 13px}.dash-edit-btn.is-active{color:var(--on-presence,#fff);background:var(--presence);border-color:var(--presence)}.dash-refresh-btn,.dash-read-btn{align-items:center;gap:6px;display:inline-flex}.dash-refresh-btn:disabled,.dash-read-btn:disabled{cursor:default;opacity:.7}.dash-refresh-btn svg,.dash-read-btn svg{width:13px;height:13px}.dash-read-btn{color:var(--presence)}.dash-refresh-spin{animation:.8s linear infinite dash-refresh-spin}@keyframes dash-refresh-spin{to{transform:rotate(360deg)}}.dash-refresh-hint{color:var(--text-muted);flex:none;font-size:11px}.dash-edit-bar{border:1px solid color-mix(in oklab, var(--presence) 28%, transparent);background:color-mix(in oklab, var(--presence) 8%, transparent);border-radius:var(--r-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex;position:relative}.dash-edit-hint{color:var(--text-secondary);font-size:12.5px}.dash-edit-add{color:var(--on-presence,#fff);background:var(--presence);border-radius:var(--r-sm);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font);border:none;flex:none;padding:7px 14px}.dash-palette{z-index:6;background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-md);min-width:180px;box-shadow:var(--shadow-modal);flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:14px}.dash-palette-item{text-align:left;color:var(--text-primary);border-radius:var(--r-sm);cursor:pointer;font-size:13px;font-family:var(--font);background:0 0;border:none;padding:9px 11px}.dash-palette-item:hover{background:var(--surface-glass)}.dash-tile--editing{border:1.5px dashed color-mix(in oklab, var(--presence) 45%, transparent);border-radius:18px;padding:2px;position:relative}.dash-tile--dragging{opacity:.55}.dash-tile-chrome{z-index:3;background:color-mix(in oklab, var(--surface-elevated) 92%, var(--presence));border-radius:var(--r-lg) var(--r-lg) 0 0;justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;display:flex;position:absolute;top:-1px;left:-1px;right:-1px}.dash-tile-handle{cursor:grab;color:var(--text-muted);border-radius:var(--r-sm);touch-action:none;-webkit-user-select:none;user-select:none;padding:2px 6px;font-size:13px}.dash-tile-handle:hover{color:var(--text-primary);background:var(--surface-glass)}.dash-tile-ctrls{align-items:center;gap:6px;display:inline-flex}.dash-tile-size{font-family:var(--font-data,var(--font));color:var(--presence);background:color-mix(in oklab, var(--presence) 14%, transparent);border-radius:var(--r-sm);cursor:pointer;border:none;padding:3px 8px;font-size:10px;font-weight:700}.dash-tile-x{width:22px;height:22px;color:var(--danger);background:color-mix(in oklab, var(--danger) 12%, transparent);border-radius:var(--r-sm);cursor:pointer;border:none;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.dash-tile--editing .card{margin-top:30px}.dash-overview{width:min(100%, var(--canvas-col-max));flex-direction:column;gap:36px;margin:0 auto;padding:36px 26px 72px;display:flex}.dash-ov-kicker{letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;font-size:11px;font-weight:600}.dash-ov-title{font-family:var(--font-voice,var(--font));letter-spacing:-.02em;color:var(--text-primary);margin:0;font-size:34px;font-weight:600;line-height:1.18}.dash-ov-lede{color:var(--text-secondary);max-width:660px;margin:12px 0 0;font-size:14.5px;line-height:1.6}.dash-ov-cta{align-items:center;gap:16px;margin-top:20px;display:flex}.dash-ov-link{color:var(--presence);font-size:13px;font-weight:600;text-decoration:none}.dash-ov-label{font-family:var(--font-data,var(--font));letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-bottom:16px;font-size:10px;font-weight:600}.dash-ov-steps{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.dash-ov-step,.dash-ov-layer{border:1px solid var(--line-soft);border-radius:var(--r-md);background:var(--surface-elevated);gap:12px;padding:16px;display:flex}.dash-ov-step-n{border-radius:var(--r-sm);width:24px;height:24px;font-family:var(--font-data,var(--font));color:var(--presence);background:color-mix(in oklab, var(--presence) 14%, transparent);flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.dash-ov-step-text{flex-direction:column;gap:4px;min-width:0;display:flex}.dash-ov-step-title{color:var(--text-primary);font-size:13.5px;font-weight:700}.dash-ov-step-body{color:var(--text-muted);font-size:12.5px;line-height:1.55}.dash-ov-layers{flex-direction:column;gap:12px;display:flex}.dash-ov-layer-tag{font-family:var(--font-data,var(--font));letter-spacing:.08em;color:var(--tag,var(--presence));background:color-mix(in oklab, var(--tag,var(--presence)) 14%, transparent);border-radius:var(--r-sm);flex:none;align-self:flex-start;padding:4px 8px;font-size:9px;font-weight:700}.dash-ov-note{color:var(--text-muted);margin:16px 0 0;font-size:12.5px;font-style:italic;line-height:1.6}.xt-fold{border-top:1px solid var(--line-soft);margin-top:14px;padding-top:12px}.xt-fold-label{color:var(--text-muted);margin-bottom:8px;font-size:12px;font-style:italic}.xt-fold-chips{flex-wrap:wrap;gap:8px;display:flex}.xt-fold-chip{color:var(--text-primary);background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-full);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font);padding:7px 13px;transition:border-color .14s}.xt-fold-chip:hover{border-color:var(--insight)}.xt-fold-chip.xt-fold-armed{color:var(--warning);background:color-mix(in oklab, var(--warning) 14%, var(--surface-glass));border-color:color-mix(in oklab, var(--warning) 50%, var(--line))}.dash-fill{align-items:center;gap:6px;margin-top:8px;display:flex}.dash-fill-input{background:var(--surface-elevated);border:1px solid var(--line);min-width:0;font-size:12.5px;font-family:var(--font);color:var(--text-primary);border-radius:9px;flex:1;padding:7px 11px}.dash-fill-input:focus{border-color:var(--presence);outline:none}.dash-fill-unit{color:var(--text-muted);flex:none;font-size:12px}.dash-fill-save{font-size:12px;font-weight:600;font-family:var(--font);cursor:pointer;color:var(--on-presence,#fff);background:var(--presence);border:none;border-radius:9px;flex:none;padding:7px 13px}.dash-fill-save:disabled{opacity:.5;cursor:default}.dash-set-danger{border-color:color-mix(in oklab, var(--danger) 30%, var(--line-soft))}.dash-del-btn{border:1px solid color-mix(in oklab, var(--danger) 40%, transparent);background:color-mix(in oklab, var(--danger) 10%, transparent);color:var(--danger);font-size:13px;font-weight:600;font-family:var(--font);cursor:pointer;border-radius:9px;align-self:flex-start;padding:8px 14px;transition:background .14s,color .14s}.dash-del-btn.armed{background:var(--danger);color:var(--on-presence,#fff)}.dash-talk-pin{border:1px solid color-mix(in oklab, var(--insight) 40%, transparent);background:color-mix(in oklab, var(--insight) 10%, transparent);color:var(--insight);font-size:12.5px;font-weight:600;font-family:var(--font);cursor:pointer;border-radius:9px;align-self:flex-start;margin-top:4px;padding:7px 13px}.dash-talk-pin:hover{background:color-mix(in oklab, var(--insight) 16%, transparent)}.dash-talk-pinned{color:var(--insight);align-self:flex-start;margin-top:4px;font-size:12.5px;font-weight:600}.xt-pick{border-bottom:1px solid var(--line-soft);background:var(--surface-glass);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 20px;display:flex}.xt-pick-label{font-family:var(--font-data,var(--font));letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-size:9.5px;font-weight:600}.xt-pick-chips{flex-wrap:wrap;gap:7px;min-width:0;display:flex}.xt-pick-chip{text-overflow:ellipsis;white-space:nowrap;max-width:220px;color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-full);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font);padding:6px 12px;overflow:hidden}.xt-pick-chip.is-active{color:var(--on-presence,#fff);background:var(--presence);border-color:var(--presence)}.xt-cadence-pick{background:0 0;border-bottom:none;flex-direction:column;align-items:flex-start;gap:8px;padding:0}.dash-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tpl-back{color:var(--text-muted);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font);background:0 0;border:none;padding:0}.tpl-back:hover{color:var(--text-primary)}.tpl-grid{grid-template-columns:repeat(2,1fr);gap:12px;padding:20px;display:grid;overflow-y:auto}.tpl-tile{text-align:left;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-glass);cursor:pointer;font-family:var(--font);flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px;transition:border-color .14s,background .14s;display:flex}.tpl-tile:hover{border-color:var(--presence);background:color-mix(in oklab, var(--presence) 6%, var(--surface-glass))}.tpl-tile-label{color:var(--text-primary);font-size:14px;font-weight:700}.tpl-tile-blurb{color:var(--text-secondary);font-size:12px;line-height:1.45}@media (width<=640px){.tpl-grid{grid-template-columns:1fr}}.tpl-form{flex-direction:column;gap:16px;padding:20px;display:flex;overflow-y:auto}.tpl-field{flex-direction:column;gap:6px;display:flex}.tpl-chip-group{flex-direction:column;gap:8px;display:flex}.tpl-chips{flex-wrap:wrap;gap:8px;display:flex}.tpl-chip{border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface-elevated);cursor:pointer;font-family:var(--font);align-items:center;gap:7px;padding:6px 12px;transition:opacity .14s,border-color .14s;display:flex}.tpl-chip.xt-comp--metric{border-color:color-mix(in oklab, var(--insight) 35%, var(--line))}.tpl-chip.xt-comp--risk{border-color:color-mix(in oklab, var(--warning) 35%, var(--line))}.tpl-chip.xt-comp--goal{border-color:color-mix(in oklab, var(--presence) 35%, var(--line))}.tpl-chip.tpl-chip-off{opacity:.5}.tpl-chip-kind{font-family:var(--font-data,var(--font));letter-spacing:.1em;color:var(--hl,var(--presence));font-size:9px;font-weight:700}.tpl-chip-label{color:var(--text-primary);font-size:12px;font-weight:600}.tpl-chip-state{color:var(--text-muted);font-size:10.5px}.tpl-create{cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);color:var(--on-presence,#fff);background:var(--presence);border:none;border-radius:10px;padding:10px 18px}.tpl-create:disabled{opacity:.5;cursor:default}.tpl-interstitial{flex-direction:column;gap:14px;padding:28px 24px;display:flex}.tpl-interstitial-text{color:var(--text-primary);margin:0;font-size:14px;line-height:1.6}.tpl-interstitial-actions{flex-wrap:wrap;gap:10px;display:flex}.tpl-fold-btn{cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);color:var(--on-presence,#fff);background:var(--presence);border:none;border-radius:10px;padding:10px 16px}.tpl-create-anyway{border:1px solid var(--line);cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font);color:var(--text-secondary);background:var(--surface-glass);border-radius:10px;padding:10px 16px}.tpl-ask-row{gap:10px;display:flex}.tpl-ask-input{border-radius:var(--r-full);flex:1;min-width:0;padding:14px 20px;font-size:15px}.tpl-examples{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.tpl-example-chip{border:1px solid var(--line);border-radius:var(--r-full);font-size:12.5px;font-weight:500;font-family:var(--font);color:var(--text-secondary);background:var(--surface-glass);cursor:pointer;transition:color var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out), background var(--m-fast) var(--ease-out);padding:7px 14px}.tpl-example-chip:hover{color:var(--text-primary);border-color:var(--line-strong);background:var(--surface-glass-strong)}.tpl-example-chip:disabled{opacity:.5;cursor:default}.tpl-gate-note{color:var(--text-muted);margin:14px 0 0;font-size:12.5px;line-height:1.6}.tpl-cadence-note{font-family:var(--font-data,var(--font));letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);align-self:center;margin-right:auto;font-size:10px}
@@ -0,0 +1 @@
1
+ var e={grounded:`GROUNDED`,calculated:`CALCULATED LOCALLY`,illustrative:`ILLUSTRATIVE`,structure:`NO NUMBER`};function t(e){return e.kind===`calculated`?e.raw:e.resolution.raw}function n(e){let t=[];return e.doc!==void 0&&t.push(`doc ${e.doc+1}`),e.page!==void 0&&t.push(`p. ${e.page}`),e.cell!==void 0&&t.push(`cell ${e.cell}`),t.length?`Your file · ${t.join(`, `)}`:`Your file`}var r=/[A-Za-z_][A-Za-z0-9_]*/g;function i(e,t){return e.replace(r,e=>t(e)??e)}export{n as i,i as n,t as r,e as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./jsx-runtime-DeHZSEgm.js";var n=e(),r=t(),i=`percent|points?|seconds?|minutes?|min|hours?|hrs?|days?|weeks?|months?|mo|years?|yrs?|miles?|km|kg|lbs?|watts?`,a=`(?:[kKMGT]?(?:W|Wh|B|bps|Hz|V|A)|ms|km|mi|kg|lb|oz|ft|°[CF]?)`,o=String.raw`\d(?:[\d,]*\d)?(?:\.\d+)?`,s=new RegExp(String.raw`(?<![\w.])(?:`+String.raw`[+\-−]?[$€£]\s?${o}(?:\s?[–—-]\s?${o})?(?:\s?(?:k|K|m|M|bn|B|T|million|billion|trillion)(?![A-Za-z]))?(?:\s?\/\s?[a-z]{1,5})?`+String.raw`|`+String.raw`${o}\s?[–—-]\s?${o}\s?(?:${a}|%)?`+String.raw`|`+String.raw`[+\-−]?${o}\s?(?:%|×|x(?![A-Za-z0-9]))`+String.raw`|`+String.raw`${o}${a}(?![A-Za-z0-9])`+String.raw`|`+String.raw`${o}\s(?:${i})\b`+String.raw`)`,`g`);function c(e){let t=[],n=0;s.lastIndex=0;for(let r=s.exec(e);r;r=s.exec(e))r.index>n&&t.push({text:e.slice(n,r.index),accent:!1}),t.push({text:r[0],accent:!0}),n=r.index+r[0].length;return n<e.length&&t.push({text:e.slice(n),accent:!1}),t}function l(e){return c(e).map((e,t)=>e.accent?(0,r.jsx)(`em`,{className:`hero-accent`,children:e.text},t):(0,r.jsx)(n.Fragment,{children:e.text},t))}export{l as n,c as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{t as r}from"./types-C42I77wh.js";import{r as i,t as a}from"./sourceHost-BV3t2XDb.js";import{o}from"./receipts-ClyzFFGD.js";var s=e(),c=t(),l=n(),u={supported:`SUPPORTED`,contested:`CONTESTED`,provisional:`PROVISIONAL`};function d(e){let t=(0,c.c)(37),{relation:n,sign:r,status:i,receipts:a,counter:s,provisional:d}=e,m=d?`1`:void 0,h;t[0]===n?h=t[1]:(h=(0,l.jsx)(`span`,{className:`tr-rel`,children:n}),t[0]=n,t[1]=h);let g=r===1?`↑`:`↓`,_;t[2]===g?_=t[3]:(_=(0,l.jsx)(`span`,{"aria-hidden":`true`,children:g}),t[2]=g,t[3]=_);let v=r===1?`raises`:`lowers`,y;t[4]===v?y=t[5]:(y=(0,l.jsx)(`span`,{className:`tr-sr`,children:v}),t[4]=v,t[5]=y);let b;t[6]!==r||t[7]!==_||t[8]!==y?(b=(0,l.jsxs)(`span`,{className:`tr-sign`,"data-sign":r,children:[_,y]}),t[6]=r,t[7]=_,t[8]=y,t[9]=b):b=t[9];let x;t[10]===i?x=t[11]:(x=i===`supported`&&(0,l.jsx)(`span`,{"aria-hidden":`true`,children:`✓ `}),t[10]=i,t[11]=x);let S=u[i],C;t[12]!==i||t[13]!==x||t[14]!==S?(C=(0,l.jsxs)(`span`,{className:`tr-badge tr-edge-badge`,"data-status":i,children:[x,S]}),t[12]=i,t[13]=x,t[14]=S,t[15]=C):C=t[15];let w;t[16]!==C||t[17]!==h||t[18]!==b?(w=(0,l.jsxs)(`div`,{className:`tr-edge-head`,children:[h,b,C]}),t[16]=C,t[17]=h,t[18]=b,t[19]=w):w=t[19];let T;t[20]===a?T=t[21]:(T=a.map(f),t[20]=a,t[21]=T);let E;t[22]===a.length?E=t[23]:(E=a.length===0&&(0,l.jsx)(`p`,{className:`tr-unverified`,children:`Mavéa's reading — no source, unverified.`}),t[22]=a.length,t[23]=E);let D;t[24]!==s||t[25]!==i?(D=i===`contested`&&s&&(0,l.jsxs)(`div`,{className:`tr-counter`,children:[(0,l.jsx)(`h4`,{className:`tr-sec-title`,children:`But:`}),(0,l.jsx)(p,{receipt:s})]}),t[24]=s,t[25]=i,t[26]=D):D=t[26];let O=o[n],k;t[27]===O?k=t[28]:(k=(0,l.jsxs)(`p`,{className:`tr-not-as`,children:[`Not represented as: `,O,`.`]}),t[27]=O,t[28]=k);let A;return t[29]!==i||t[30]!==m||t[31]!==w||t[32]!==T||t[33]!==E||t[34]!==D||t[35]!==k?(A=(0,l.jsxs)(`div`,{className:`tr-edge`,"data-status":i,"data-provisional":m,children:[w,T,E,D,k]}),t[29]=i,t[30]=m,t[31]=w,t[32]=T,t[33]=E,t[34]=D,t[35]=k,t[36]=A):A=t[36],A}function f(e,t){return(0,l.jsx)(p,{receipt:e},`${e.url??e.quote}:${t}`)}function p(e){let t=(0,c.c)(13),{receipt:n}=e,r;t[0]===n.url?r=t[1]:(r=n.url?i(n.url):null,t[0]=n.url,t[1]=r);let o=r,s;t[2]!==n.host||t[3]!==n.url?(s=n.host??(n.url?a(n.url):null),t[2]=n.host,t[3]=n.url,t[4]=s):s=t[4];let u=s,d;t[5]===n.quote?d=t[6]:(d=(0,l.jsxs)(`blockquote`,{className:`tr-quote`,children:[`“`,n.quote,`”`]}),t[5]=n.quote,t[6]=d);let f;t[7]!==u||t[8]!==o?(f=u&&(0,l.jsx)(`figcaption`,{className:`tr-host`,children:o?(0,l.jsx)(`a`,{href:o,target:`_blank`,rel:`noreferrer noopener`,children:u}):u}),t[7]=u,t[8]=o,t[9]=f):f=t[9];let p;return t[10]!==d||t[11]!==f?(p=(0,l.jsxs)(`figure`,{className:`tr-receipt`,children:[d,f]}),t[10]=d,t[11]=f,t[12]=p):p=t[12],p}var m=(0,s.memo)(d),h=e=>e<0?0:e>1?1:e;function g(e){let t=new Set(e.nodes.map(e=>e.id)),n=new Map,r=new Map;for(let t of e.nodes)n.set(t.id,0),r.set(t.id,[]);for(let i of e.edges)!t.has(i.from)||!t.has(i.to)||i.from===i.to||(n.set(i.to,(n.get(i.to)??0)+1),r.get(i.from).push(i.to));let i=e.nodes.filter(e=>(n.get(e.id)??0)===0).map(e=>e.id),a=[];for(;i.length;){let e=i.shift();a.push(e);for(let t of r.get(e)??[])n.set(t,(n.get(t)??0)-1),n.get(t)===0&&i.push(t)}return a.length===e.nodes.length?a:null}function _(e){if(e.provenance.illustrative===!0)return!1;let t=e.nodes.find(t=>t.id===e.outcomeId);return!t||typeof t.value!=`number`||!Number.isFinite(t.value)||!r(t.tier)?!1:e.edges.length>0&&e.edges.every(e=>typeof e.weight==`number`&&Number.isFinite(e.weight)&&r(e.tier))}function v(e,t=[]){let n=g(e),r={byNode:new Map(e.nodes.map(e=>[e.id,null])),outcomeDelta:null,explainedPct:null,fullyGrounded:!1,relativeByNode:new Map(e.nodes.map(e=>[e.id,0])),relativeOutcome:null};if(!n)return r;let i=new Map;for(let e of t)e.nodeId&&i.set(e.nodeId,h(e.pct));let a=new Map;for(let t of e.edges)a.has(t.to)||a.set(t.to,[]),a.get(t.to).push(t);let o=e=>{let t=new Map;for(let r of n){let n=a.get(r)??[];if(n.length===0){t.set(r,e.get(r)??1);continue}let i=0,o=!0;for(let e of n){let n=t.get(e.from);if(n==null||typeof e.weight!=`number`){o=!1;break}i+=e.sign*e.weight*n}t.set(r,o?i:null)}return t},s=o(i),c=new Map(e.nodes.map(e=>[e.id,s.get(e.id)??null])),l=new Map;for(let e of n){let t=a.get(e)??[];if(t.length===0){l.set(e,h(i.get(e)??1));continue}let n=0;for(let e of t)n+=e.sign*(l.get(e.from)??0);l.set(e,h(n/t.length))}let u=new Map(e.nodes.map(e=>[e.id,l.get(e.id)??0])),d=l.has(e.outcomeId)?l.get(e.outcomeId):null;if(!_(e))return{byNode:c,outcomeDelta:null,explainedPct:null,fullyGrounded:!1,relativeByNode:u,relativeOutcome:d};let f=o(new Map),p=e.nodes.find(t=>t.id===e.outcomeId).value,m=s.get(e.outcomeId),v=f.get(e.outcomeId);return{byNode:c,outcomeDelta:m!=null&&v!=null?(m-v)*p:null,explainedPct:m??null,fullyGrounded:!0,relativeByNode:u,relativeOutcome:d}}export{m as n,v as t};
@@ -0,0 +1 @@
1
+ .tr-num{font:inherit;color:inherit;cursor:default;background:0 0;border:0;border-radius:2px;margin:0;padding:0;text-decoration:none}button.tr-num:hover,button.tr-num:focus-visible{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:color-mix(in oklab, currentColor 45%, transparent);text-decoration-color:color-mix(in oklab, currentColor 45%, transparent);text-underline-offset:2px;cursor:pointer}button.tr-num:focus-visible{outline:2px solid var(--presence);outline-offset:2px}.tr-num-qual{color:var(--text-muted)}.tr-sr{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tr-card{z-index:70;box-sizing:border-box;background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-floating);flex-direction:column;gap:10px;padding:12px 14px;display:flex;position:fixed;overflow-y:auto}.tr-card:focus-visible{outline:none}.tr-head{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.tr-back{font:500 11px/1.2 var(--font);color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:0 0 2px}.tr-back:hover{color:var(--text-primary)}.tr-back-to{color:var(--text-muted)}.tr-badge{font:600 9.5px/1.4 var(--font-data,var(--font));letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r-full);color:var(--text-muted);background:var(--surface-elevated);padding:2px 6px}.tr-badge[data-status=grounded]{color:var(--presence);background:color-mix(in oklab, var(--presence) 14%, transparent)}.tr-badge[data-status=calculated]{color:var(--insight);background:color-mix(in oklab, var(--insight) 14%, transparent)}.tr-badge[data-status=illustrative]{color:var(--warning);background:color-mix(in oklab, var(--warning) 12%, transparent)}.tr-figure{font:700 20px/1.15 var(--font-data,var(--font));color:var(--text-primary);margin:0}.tr-label{font:500 12px/1.35 var(--font);color:var(--text-secondary);margin:0}.tr-sec{border-top:1px solid var(--line-soft);padding-top:8px}.tr-sec-title{font:600 9.5px/1.4 var(--font-data,var(--font));letter-spacing:.12em;color:var(--text-muted);margin:0 0 6px}.tr-quote{font:400 12px/1.5 var(--font);color:var(--text-secondary);background:var(--surface-elevated);border-left:2px solid var(--presence);border-radius:0 var(--r-sm) var(--r-sm) 0;margin:0;padding:6px 9px}.tr-host{font:500 11px/1.35 var(--font-data,var(--font));color:var(--text-muted);margin:6px 0 0}.tr-host a{color:var(--presence)}.tr-date{color:var(--text-faint)}.tr-chips{flex-wrap:wrap;gap:5px;margin:0;display:flex}.tr-chip{font:500 11px/1.3 var(--font-data,var(--font));color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line-soft);border-radius:var(--r-full);padding:2px 7px}.tr-formula{font:500 12px/1.45 var(--font-data,var(--font));color:var(--text-primary);margin:0 0 6px}.tr-inputs,.tr-used{gap:3px;margin:0;padding:0;list-style:none;display:grid}.tr-input,.tr-usedin{text-align:left;width:100%;font:500 12px/1.4 var(--font);color:var(--text-secondary);border-radius:var(--r-sm);cursor:pointer;transition:background var(--m-fast,.12s) var(--ease-out,ease);background:0 0;border:0;align-items:baseline;gap:8px;padding:3px 5px;display:flex}.tr-input:hover,.tr-usedin:hover{background:var(--surface-elevated);color:var(--text-primary)}.tr-input-label{flex:1;min-width:0}.tr-input-val{font-family:var(--font-data,var(--font));color:var(--text-primary)}.tr-input-missing,.tr-usedin-flat{color:var(--text-faint);cursor:default}.tr-more,.tr-note{font:400 11px/1.4 var(--font);color:var(--text-muted);margin:5px 0 0}.tr-caveat{font:400 11px/1.45 var(--font);color:var(--warning);margin:0}.tr-hint{font:400 11px/1.4 var(--font);color:var(--text-faint);margin:0}.tr-edge{background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-sm);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.tr-edge[data-provisional="1"]{border-style:dashed;border-color:var(--line-soft)}.tr-edge-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tr-rel{font:600 12px/1.3 var(--font);color:var(--text-primary)}.tr-sign{font:600 13px/1 var(--font-data,var(--font));color:var(--text-secondary)}.tr-sign[data-sign="1"]{color:var(--presence)}.tr-sign[data-sign="-1"]{color:var(--warning)}.tr-edge-badge{margin-left:auto}.tr-edge-badge[data-status=supported]{color:var(--presence);background:color-mix(in oklab, var(--presence) 14%, transparent)}.tr-edge-badge[data-status=contested]{color:var(--warning);background:color-mix(in oklab, var(--warning) 12%, transparent)}.tr-edge-badge[data-status=provisional]{color:var(--text-muted);background:var(--surface-elevated);border:1px dashed var(--line)}.tr-receipt{margin:0}.tr-counter{border-top:1px solid var(--line-soft);padding-top:8px}.tr-counter .tr-quote{border-left-color:var(--warning)}.tr-counter .tr-sec-title{color:var(--warning)}.tr-unverified{font:400 12px/1.5 var(--font);color:var(--text-faint);margin:0;font-style:italic}.tr-not-as{font:400 11px/1.45 var(--font);color:var(--text-muted);margin:0}.tr-wi{gap:var(--s-md,14px);align-items:stretch;display:flex}.tr-wi-col{flex-direction:column;flex:1;align-items:flex-start;gap:4px;min-width:0;display:flex}.tr-wi-hypo{padding-left:var(--s-md,14px);border-left:1px dashed var(--line)}.tr-wi-chip{font:600 9.5px/1.4 var(--font-data,var(--font));letter-spacing:.1em;color:var(--text-muted);background:var(--surface-elevated);border-color:#0000}.tr-wi-chip-hypo{color:var(--insight);background:color-mix(in oklab, var(--insight) 12%, transparent);cursor:help}.tr-wi-figure{font:700 clamp(22px, 3vw, 30px) / 1.1 var(--font-data,var(--font));color:var(--text-primary);overflow-wrap:anywhere;margin:0}[data-world=hypothetical] .tr-wi-figure{color:color-mix(in oklab, var(--insight) 76%, var(--text-primary))}.tr-wi-figure.tr-wi-dash{color:var(--text-faint)}.tr-wi-figure.tr-wi-phrase{font:600 15px/1.3 var(--font)}.tr-wi-delta{font:600 13px/1.2 var(--font-data,var(--font));color:var(--text-secondary);margin:0}.tr-wi-note{font:500 11px/1.35 var(--font);color:var(--text-muted);margin:0}.tr-wi-note.tr-wi-why{color:var(--text-faint);text-wrap:pretty;font-style:italic;font-weight:400}.tr-levers{flex-direction:column;gap:8px;display:flex}.tr-levers-head{justify-content:space-between;align-items:center;gap:var(--s-sm,8px);display:flex}.tr-levers-head .tr-sec-title{margin:0}.tr-levers-empty{font:400 12.5px/1.5 var(--font);color:var(--text-muted);margin:0}.tr-levers .viz-ctl-range{min-height:24px}.tr-reset{font:500 12px/1 var(--font);color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;transition:background var(--m-fast,.12s) var(--ease-out,ease);padding:5px 10px}.tr-reset:hover:not(:disabled){background:var(--surface-elevated-2,var(--surface-elevated))}.tr-reset:disabled{opacity:.45;cursor:default}@media (prefers-reduced-motion:reduce){.tr-input,.tr-usedin,.tr-reset{transition:none}}