@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
@@ -1 +1 @@
1
- import{t as e}from"./react-BZJXY1be.js";import{t}from"./jsx-runtime-DeHZSEgm.js";import{A as n}from"./index-D1SPhBGd.js";import{t as r}from"./registry-CueC1vq1.js";import{CommandPalette as i}from"./CommandPalette-DagPdSGZ.js";import{t as a}from"./demoPaletteItems-NPCSaSU6.js";var o=e(),s=t();function c({onClose:e,startTour:t,watchInLive:c,enterLive:l}){let u=(0,o.useMemo)(()=>a(r,{direct:{dashboards:()=>{window.location.hash=`#/dashboards`},how:t},watchInLive:c,enterLive:l}).map(e=>({...e,watch:e.feature.id===`how`?t:e.watch,preload:e.feature.id===`dashboards`?()=>n(`#/dashboards`)??Promise.resolve():()=>n(`#/live`)??Promise.resolve()})),[l,t,c]);return(0,s.jsx)(i,{items:u,surface:`demo`,onClose:e})}export{c as AppCommandPalette};
1
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./jsx-runtime-DeHZSEgm.js";import{j as n}from"./index-CfcUMOBf.js";import{t as r}from"./registry-DuP_q42N.js";import{CommandPalette as i}from"./CommandPalette-E3reEqYR.js";import{t as a}from"./demoPaletteItems-NPCSaSU6.js";var o=e(),s=t();function c({onClose:e,startTour:t,watchInLive:c,enterLive:l}){let u=(0,o.useMemo)(()=>a(r,{direct:{dashboards:()=>{window.location.hash=`#/dashboards`},how:t},watchInLive:c,enterLive:l}).map(e=>({...e,watch:e.feature.id===`how`?t:e.watch,preload:e.feature.id===`dashboards`?()=>n(`#/dashboards`)??Promise.resolve():()=>n(`#/live`)??Promise.resolve()})),[l,t,c]);return(0,s.jsx)(i,{items:u,surface:`demo`,onClose:e})}export{c as AppCommandPalette};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/registry-CPImC7mO.js","assets/rolldown-runtime-DkW27tQK.js","assets/react-BZJXY1be.js","assets/jsx-runtime-DeHZSEgm.js","assets/icons-gLFQTv74.js","assets/richText-BkxJhl9N.js","assets/format-q0LwBjID.js","assets/scale-Bcgfo6Hp.js","assets/BlockEmpty-B82uCse8.js","assets/compiler-runtime-qQQXpJgv.js","assets/empty-BO1NC9qY.js","assets/registry-types-D3q_LrlV.js","assets/registry-B1KQ1VPZ.css","assets/registry-B0GIHERt.js","assets/motion-DxHSlPN6.js","assets/fitText-DQ2omSN0.js","assets/spreadLabels-CQ8hufvK.js","assets/registry-CuVk7MAI.css","assets/registry-WHd1PwU3.js","assets/registry-DpMI23iE.css","assets/registry-Xl8mAnKq.js","assets/lib-B7OE1ZQQ.js","assets/lib-DMAxsZKm.css","assets/annotations-CftUUB13.js","assets/registry-Dru0JcTa.css","assets/registry-Ci65uThi.js","assets/useSpotlightWalk-DxlxBezO.js","assets/motion-BY_Egaxm.js","assets/registry-BAoRB8rd.css","assets/registry-C28gYnVq.js","assets/sourceHost-BV3t2XDb.js","assets/registry-CRisz4Ca.css","assets/registry-CcOO8UZr.js","assets/registry-2GJZ46M8.css","assets/registry-w4R6c89s.js","assets/preload-helper-CiWYd9n-.js","assets/safeImageUrl-BINWXOTz.js","assets/useValidatedImage-BQi2c66o.js","assets/useTimeout-Cm4yzted.js","assets/safeCssColor-di93BXgG.js","assets/registry-4mMEt1Xy.css","assets/registry-9QjeHgKs.js","assets/registry-DScSjt8p.css","assets/registry-Daypk4uR.js","assets/registry-GeSy4i7R.css","assets/registry-ChQGee7C.js","assets/useFocusTrap-DBtkeyRy.js","assets/portal-BJzn-Tgn.js","assets/index-CfcUMOBf.js","assets/useInView-CXTOAEV3.js","assets/coreIcons-BzqW7Qiz.js","assets/preloadableLazy-MIX1ApBW.js","assets/cachedImport-DW0gP14h.js","assets/lazyRetry-D50B1UMY.js","assets/theme-7IrMJ70_.js","assets/index-D4FIsool.css","assets/registry-Dye5m3qt.css","assets/registry-D_4_HlMg.js","assets/registry-T3i2Q9SI.css","assets/registry-BSX3aFUw.js","assets/registry-C3ezxLR3.css","assets/registry-DO4hGO5e.js","assets/registry-CRM7y8QT.css","assets/registry-7poQfBaM.js","assets/CodeOutput-DF892aIR.js","assets/registry-ZOWzhOHk.css","assets/registry-D4Xdd7dO.js","assets/MindShape-CBcCC7hP.js","assets/useSpatialCanvas-CfmZOXXP.js","assets/Presence-CKSoyuhE.js","assets/geometry-DXAbnb0J.js","assets/MindShape-CaPeUo-a.css","assets/openWorld-BHTJM39n.js","assets/display-BrieMea1.js","assets/types-C42I77wh.js","assets/registry-BZuT2Epw.css","assets/registry-BM9FDQxO.js","assets/quizResult-DB8yeqDr.js","assets/stepDriver-DwjFet6U.js","assets/kokoro-CdL8Kl48.js","assets/spokenText-C88IQJ0M.js","assets/registry-B5S3brjM.css","assets/registry-Vp8VuMV0.js","assets/registry-twSIyxJQ.css","assets/registry-Bv1f5UU4.js","assets/registry-CvylL2BN.css","assets/registry-BRbEINOV.js","assets/registry-tkd3UhWn.css","assets/registry-D8O0apUT.js","assets/registry-BzNLfje1.css","assets/registry-BFbfXK-W.js","assets/registry-UFIuwh3i.css","assets/registry-CPiwQhAm.js","assets/registry-CNgybLQv.css"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./compiler-runtime-qQQXpJgv.js";import{t}from"./jsx-runtime-DeHZSEgm.js";import{n,t as r}from"./preload-helper-CiWYd9n-.js";import{t as i}from"./lazyRetry-D50B1UMY.js";import{n as a}from"./icons-gLFQTv74.js";var o={treemap:`charts1`,sunburst:`charts1`,sankey:`charts1`,network:`charts1`,radar:`charts1`,waterfall:`charts1`,funnel:`charts1`,histogram:`charts1`,boxplot:`charts1`,streamgraph:`charts1`,venn:`charts1`,piedonut:`charts1`,distributioncurve:`charts1`,quadrant:`charts1`,latencydist:`charts1`,captable:`charts1`,lifewheel:`charts1`,violinplot:`charts1`,stemleafplot:`charts1`,tamsam:`charts1`,correlationheatmap:`charts1`,bcgmatrix:`charts1`,flowchord:`charts1`,slopegraph:`charts2`,plot:`charts2`,calheat:`charts2`,bump:`charts2`,marimekko:`charts2`,dumbbell:`charts2`,lollipop:`charts2`,bulletchart:`charts2`,candlestick:`charts2`,gantt:`charts2`,bubble:`charts2`,arearange:`charts2`,waffle:`charts2`,groupedbars:`charts2`,dualaxis:`charts2`,scatterregression:`charts2`,dotplot:`charts2`,controlchart:`charts2`,bridge:`charts2`,areaplot:`charts2`,supplydemand:`charts2`,breakeven:`charts2`,bigo:`charts2`,errorbars:`charts2`,eratimeline:`charts2`,indifferencecurve:`charts2`,payoffdiagram:`charts2`,phasediagram:`charts2`,loaddiagram:`charts2`,ecgstrip:`charts2`,vitalstrip:`charts2`,growthcurve:`charts2`,sleepcycle:`charts2`,seasonband:`charts2`,burnrunway:`charts2`,qqplot:`charts2`,samplingdistribution:`charts2`,hrdiagram:`charts2`,ternaryplot:`charts2`,parliamentseats:`charts2`,surfaceplot:`charts2`,roccurve:`charts2`,gradientdescent:`charts2`,biasvariance:`charts2`,timeseriesdecomposition:`charts2`,precisionrecallcurve:`charts2`,chromatogram:`charts2`,stressstraincurve:`charts2`,gatingplot:`charts2`,gellane:`charts2`,flightchart:`charts2`,paybandchart:`charts2`,linebalance:`charts2`,epicurve:`charts2`,pareto:`charts2`,populationpyramid:`charts2`,parallelcoordinates:`charts2`,scatterplotmatrix:`charts2`,pictogramchart:`charts2`,stackedbars:`charts2`,sparkstat:`stats`,counter:`stats`,herostat:`stats`,trendtile:`stats`,scorebadge:`stats`,percentilebar:`stats`,statpair:`stats`,scorecard:`stats`,deltacascade:`stats`,bulletkpi:`stats`,confusionmatrix:`stats`,kpidashboard:`stats`,abtestresult:`stats`,powersample:`stats`,inventoryreorder:`stats`,boardgamescore:`stats`,cvssscorecard:`stats`,ridgeplot:`stats`,ecdf:`stats`,forestplot:`stats`,matrix:`tables`,datatable:`tables`,pivot:`tables`,leaderboard:`tables`,treetable:`tables`,swimlane:`tables`,footnotetable:`tables`,sparktable:`tables`,smallmultiples:`tables`,comparebars:`tables`,comparematrix:`tables`,matrixgrid:`tables`,sensitivitytable:`tables`,labpanel:`tables`,ingredientmatrix:`tables`,conjugation:`tables`,clearancematrix:`tables`,financialstatement:`tables`,cohortgrid:`tables`,riskmatrix:`tables`,careplan:`tables`,doseladder:`tables`,sizechart:`tables`,pricingtable:`tables`,raci:`tables`,rubric:`tables`,interviewscorecard:`tables`,gradebook:`tables`,datadictionary:`tables`,ablationtable:`tables`,spectrumtable:`tables`,fmeatable:`tables`,billofmaterials:`tables`,complexitysummary:`tables`,expressionheatmap:`tables`,discoverytracker:`tables`,dentaltreatmentplan:`tables`,rollcall:`tables`,collectiontracker:`tables`,cma:`tables`,taxreturnsummary:`tables`,depreciationschedule:`tables`,vendortracker:`tables`,sponsorshiptracker:`tables`,caseload:`tables`,kanban:`flows`,wizard:`flows`,decisiontree:`flows`,goaltree:`flows`,plandag:`flows`,milestones:`flows`,processflow:`flows`,journeymap:`flows`,orgchart:`flows`,roadmap:`flows`,chronologicaltimeline:`flows`,trustmap:`flows`,skilltree:`flows`,businesscanvas:`flows`,headcountplan:`flows`,issuetree:`flows`,logicmodel:`flows`,contentcalendar:`flows`,hypothesiscard:`docs`,docview:`docs`,pdfreader:`docs`,annotateddoc:`docs`,redline:`docs`,citationchain:`docs`,factcheck:`docs`,confidencemeter:`docs`,highlightsnippet:`docs`,annotcallouts:`docs`,sourcelist:`docs`,claimgrid:`docs`,docoutline:`docs`,diffviewer:`docs`,paralleltext:`docs`,clinicaltimeline:`docs`,researchsummary:`docs`,eligibilitycheck:`docs`,evidencetrace:`docs`,reviewsynth:`docs`,resume:`docs`,changelog:`docs`,lessonplan:`docs`,casebrief:`docs`,patentclaimchart:`docs`,storystructure:`docs`,vetpatientchart:`docs`,scoutingreport:`docs`,reasoning:`ai`,toolcalls:`ai`,agenttrace:`ai`,modelcompare:`ai`,tokenstream:`ai`,retrieval:`ai`,whatchanged:`ai`,routing:`ai`,embedmap:`ai`,calibration:`ai`,httpexchange:`ai`,trainingcurve:`ai`,gameboard:`media`,patternpiece:`media`,photo:`media`,diagram:`media`,wireframe:`media`,anatomyfigure:`media`,exposuretriangle:`media`,colorwheel:`media`,artanalysis:`media`,mixerboard:`media`,beforeafter:`media`,carousel:`media`,imagecallouts:`media`,waveform:`media`,videoembed:`media`,geomap:`media`,lightbox:`media`,moodboard:`media`,palette:`media`,svgblock:`media`,sportspitch:`media`,floorplan:`media`,mediacard:`media`,dimensiondrawing:`media`,explodedview:`media`,weldsymbol:`media`,cutlist:`media`,spacefit:`media`,maproute:`media`,moonphase:`media`,skychart:`media`,orbitdiagram:`media`,emotionwheel:`media`,creativetest:`media`,brandguide:`media`,siteplan:`media`,zoningmap:`media`,wordsearch:`media`,playingcards:`media`,stitchchart:`media`,pianoroll:`media`,callout:`layout`,verdictcard:`layout`,scenarioset:`layout`,accordion:`layout`,proscons:`layout`,takeaways:`layout`,faq:`layout`,tabs:`layout`,divider:`layout`,pullquote:`layout`,storystrip:`layout`,casestudy:`layout`,deflist:`layout`,worthit:`layout`,companionnote:`layout`,positioncard:`layout`,differential:`layout`,reframecard:`layout`,breathpacer:`layout`,copingmenu:`layout`,subtextdecode:`layout`,rehearsal:`layout`,messagescriptset:`layout`,talktrack:`layout`,lifeline:`layout`,scansionmark:`layout`,typespec:`layout`,shotlist:`layout`,beatsheet:`layout`,promptset:`layout`,zoneladder:`layout`,picturesequence:`layout`,storyarc:`layout`,devicemark:`layout`,thoughtrecord:`layout`,dosdonts:`layout`,variantswitch:`layout`,progressbar:`status`,stepindicator:`status`,statustimeline:`status`,healthgrid:`status`,emptystate:`status`,skeleton:`status`,sliderinput:`status`,segmented:`status`,rangefilter:`status`,ratinginput:`status`,a11yaudit:`status`,painscale:`status`,habittracker:`status`,streakgrid:`status`,litigationtimeline:`status`,billtracker:`status`,triageboard:`status`,mentalhealthscreen:`status`,usabilityfindings:`status`,roomblockdashboard:`status`,immigrationcase:`status`,modal:`overlays`,confirmdialog:`overlays`,drawer:`overlays`,sheet:`overlays`,popover:`overlays`,hovercard:`overlays`,tooltip:`overlays`,menu:`overlays`,contextmenu:`overlays`,commandk:`overlays`,blanks:`forms`,buttonbar:`forms`,textfield:`forms`,textarea:`forms`,select:`forms`,combobox:`forms`,checkboxgroup:`forms`,radiogroup:`forms`,switchset:`forms`,togglegroup:`forms`,otp:`forms`,actionchecklist:`forms`,preflightchecklist:`forms`,estateplanchecklist:`forms`,visachecklist:`forms`,datepicker:`pickers`,calendarpick:`pickers`,daterange:`pickers`,timepicker:`pickers`,colorpicker:`pickers`,fileupload:`pickers`,tagsinput:`pickers`,numberstepper:`pickers`,searchselect:`pickers`,formpanel:`pickers`,navbar:`nav`,sidenav:`nav`,breadcrumb:`nav`,pagination:`nav`,menubar:`nav`,megamenu:`nav`,toolbar:`nav`,commandbar:`nav`,treeview:`nav`,bottomnav:`nav`,avatar:`display`,avatargroup:`display`,badgeset:`display`,chipset:`display`,kbd:`display`,codeblock:`display`,banner:`display`,toaststack:`display`,spinner:`display`,notification:`display`,algorithmtrace:`diagrams`,argumentmap:`diagrams`,binarytree:`diagrams`,castmap:`diagrams`,causationchain:`diagrams`,circuitdiagram:`diagrams`,controlblockdiagram:`diagrams`,cyclewheel:`diagrams`,datapipeline:`diagrams`,datastructure:`diagrams`,diagramflow:`diagrams`,dptable:`diagrams`,erdiagram:`diagrams`,fiveforces:`diagrams`,fivewhychain:`diagrams`,foodweb:`diagrams`,graphtrace:`diagrams`,hashtable:`diagrams`,logicgates:`diagrams`,mindshape:`diagrams`,nnarchitecture:`diagrams`,pipingschematic:`diagrams`,plasmidmap:`diagrams`,primefactortree:`diagrams`,probabilitytree:`diagrams`,protocolstack:`diagrams`,recursiontree:`diagrams`,sequencediagram:`diagrams`,sortingviz:`diagrams`,gridtrace:`diagrams`,statemachine:`diagrams`,synthesisroute:`diagrams`,sysarchdiagram:`diagrams`,threatmodel:`diagrams`,toulmin:`diagrams`,tournamentbracket:`diagrams`,prooftree:`diagrams`,fishbone:`diagrams`,classdiagram:`diagrams`,trie:`diagrams`,wiringdiagram:`diagrams`,world:`diagrams`,analogymap:`diagrams`,equationblock:`learn`,numberline:`learn`,workedexample:`learn`,quiz:`learn`,flashcard:`learn`,molecularstructure:`learn`,periodictable:`learn`,bodymap:`learn`,geometrycanvas:`learn`,freebodydiagram:`learn`,musicstaff:`learn`,vectorspace:`learn`,reactionmechanism:`learn`,chorddiagram:`learn`,developmentmilestone:`learn`,teachdiagram:`learn`,gridmatrix:`learn`,fractionbar:`learn`,wave:`learn`,energydiagram:`learn`,phylotree:`learn`,parsetree:`learn`,celldiagram:`learn`,raydiagram:`learn`,vectorfield:`learn`,pedigree:`learn`,bohrmodel:`learn`,equationbalancer:`learn`,yieldcalc:`learn`,vseprmolecule:`learn`,unitcircle:`learn`,solidfigure:`learn`,crosssection:`learn`,pianokeys:`learn`,fretboardmap:`learn`,circleoffifths:`learn`,odontogram:`learn`,clockface:`learn`,moneytray:`learn`,placevaluechart:`learn`,shapecard:`learn`,letterform:`learn`,toolscale:`learn`,craftchart:`learn`,dnahelix:`learn`,linespectrum:`learn`,pyramidtiers:`learn`,twocolumnproof:`learn`,gridtransform:`learn`,areamodel:`learn`,polarplot:`learn`,taylorseries:`learn`,phaseportrait:`learn`,sightwordlist:`learn`,alphabetchart:`learn`,columnarithmetic:`learn`,titrationcurve:`learn`,interferencepattern:`learn`,orbitaldiagram:`learn`,pictograph:`learn`,particlemodel:`learn`,morphemebreakdown:`learn`,practicelog:`learn`,taxonrank:`learn`,numbersequence:`learn`,constantcard:`learn`,elementcard:`learn`,energybarchart:`learn`,guitartab:`learn`,karyotype:`learn`,frayermodel:`learn`,numberbond:`learn`,quizsession:`learn`,messagedraft:`compose`,chatthread:`compose`,dialogue:`compose`,variants:`compose`,verse:`compose`,slidedeck:`compose`,voicestyle:`compose`,screenplay:`compose`,socialpost:`compose`,longread:`compose`,ideaboard:`compose`,forecast:`everyday`,weathernow:`everyday`,tierlist:`everyday`,paystub:`everyday`,taxbracket:`everyday`,menucard:`everyday`,familytree:`everyday`,seatingchart:`everyday`,relationshipmap:`everyday`,meetingnotes:`everyday`,stickerchart:`everyday`,statblock:`everyday`,agenda:`everyday`,picks:`everyday`,timezones:`everyday`,transitroute:`everyday`,amortization:`everyday`,receipt:`everyday`,settleup:`everyday`,bracketbar:`everyday`,recipecard:`everyday`,workoutplan:`everyday`,medicationschedule:`everyday`,macrobreakdown:`everyday`,plangrid:`everyday`,budgetallocator:`everyday`,howtosteps:`everyday`,livecompute:`everyday`,countdown:`everyday`,livescore:`everyday`,allocatepeople:`everyday`,nutritionlabel:`everyday`,unitconvert:`everyday`,packlist:`everyday`,pregnancyweek:`everyday`,cycletrack:`everyday`,contractiontimer:`everyday`,prayertimes:`everyday`,labprotocol:`everyday`,caregivercoord:`everyday`,readinglist:`everyday`,cocktailcard:`everyday`,runninglog:`everyday`,userpersona:`everyday`,runofshow:`everyday`,podcastplanner:`everyday`,vaxschedule:`everyday`,claimagecompare:`everyday`,factsheet:`reference`,newsdigest:`reference`,dictionary:`reference`,translation:`reference`,pronunciation:`reference`,gloss:`reference`,scalefelt:`reference`,hearit:`reference`,ipachart:`reference`,scriptstroke:`reference`,phonicsword:`reference`,speciescard:`reference`,etymtree:`reference`,hazardcard:`reference`,termbase:`reference`,sizecompare:`reference`,baseconversion:`reference`,historicalperson:`reference`,onthisday:`reference`,countrycard:`reference`,worldgrid:`reference`,warconflict:`reference`,posbreakdown:`reference`,distinctioncard:`reference`,stacktrace:`code`,syntaxbreakdown:`code`,codewalk:`code`,componentapi:`code`,terminal:`code`,logstream:`code`,gitgraph:`code`,queryplan:`code`,flamegraph:`code`,regexscope:`code`,sequencealign:`code`,thesis:`dashboard`,alignmentgauge:`dashboard`,standingalerts:`dashboard`,sourceslineage:`dashboard`,vestingschedule:`finance`,termsheet:`finance`,fundraisingrounds:`finance`,saferterms:`finance`,dilutionwaterfall:`finance`,threestatementlink:`finance`,yieldcurve:`finance`,efficientfrontier:`finance`,bondladder:`finance`,cashflowtimeline:`finance`};n();var s={charts1:i(()=>r(()=>import(`./registry-CPImC7mO.js`).then(e=>e.n).then(e=>e.charts1Registry),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]))),charts2:i(()=>r(()=>import(`./registry-B0GIHERt.js`).then(e=>e.n).then(e=>e.charts2Registry),__vite__mapDeps([13,1,2,9,3,4,5,6,7,8,10,14,11,15,16,17]))),stats:i(()=>r(()=>import(`./registry-WHd1PwU3.js`).then(e=>e.t).then(e=>e.statsRegistry),__vite__mapDeps([18,1,2,9,3,4,5,6,7,14,11,15,19]))),tables:i(()=>r(()=>import(`./registry-Xl8mAnKq.js`).then(e=>e.t).then(e=>e.tablesRegistry),__vite__mapDeps([20,1,2,9,3,4,5,6,7,8,21,14,22,11,23,24]))),flows:i(()=>r(()=>import(`./registry-Ci65uThi.js`).then(e=>e.n).then(e=>e.flowsRegistry),__vite__mapDeps([25,1,2,3,4,5,6,11,26,27,28]))),docs:i(()=>r(()=>import(`./registry-C28gYnVq.js`).then(e=>e.n).then(e=>e.docsRegistry),__vite__mapDeps([29,1,2,9,3,4,5,8,21,14,22,11,30,31]))),ai:i(()=>r(()=>import(`./registry-CcOO8UZr.js`).then(e=>e.n).then(e=>e.aiRegistry),__vite__mapDeps([32,1,2,9,3,4,5,6,7,21,8,14,22,11,33]))),media:i(()=>r(()=>import(`./registry-w4R6c89s.js`).then(e=>e.n).then(e=>e.mediaRegistry),__vite__mapDeps([34,1,2,9,3,35,4,5,6,36,37,7,8,21,14,22,11,15,38,39,40]))),layout:i(()=>r(()=>import(`./registry-9QjeHgKs.js`).then(e=>e.n).then(e=>e.layoutRegistry),__vite__mapDeps([41,1,2,3,4,5,7,21,8,9,14,22,11,30,42]))),status:i(()=>r(()=>import(`./registry-Daypk4uR.js`).then(e=>e.t).then(e=>e.statusRegistry),__vite__mapDeps([43,1,2,9,3,4,5,11,26,27,44]))),overlays:i(()=>r(()=>import(`./registry-ChQGee7C.js`).then(e=>e.n).then(e=>e.overlaysRegistry),__vite__mapDeps([45,1,2,3,4,46,5,11,47,48,9,49,50,35,51,52,53,54,55,56]))),forms:i(()=>r(()=>import(`./registry-D_4_HlMg.js`).then(e=>e.n).then(e=>e.formsRegistry),__vite__mapDeps([57,1,2,3,48,9,49,50,35,51,52,53,54,55,4,5,21,8,14,22,11,38,58]))),pickers:i(()=>r(()=>import(`./registry-BSX3aFUw.js`).then(e=>e.n).then(e=>e.pickersRegistry),__vite__mapDeps([59,1,2,3,4,5,11,60]))),nav:i(()=>r(()=>import(`./registry-DO4hGO5e.js`).then(e=>e.n).then(e=>e.navRegistry),__vite__mapDeps([61,1,2,3,4,5,11,62]))),display:i(()=>r(()=>import(`./registry-7poQfBaM.js`).then(e=>e.n).then(e=>e.displayRegistry),__vite__mapDeps([63,1,2,3,35,4,5,36,11,64,9,38,65]))),diagrams:i(()=>r(()=>import(`./registry-D4Xdd7dO.js`).then(e=>e.n).then(e=>e.diagramsRegistry),__vite__mapDeps([66,1,2,9,3,4,5,7,8,21,14,22,11,15,67,68,69,50,70,71,72,73,74,75]))),learn:i(()=>r(()=>import(`./registry-BM9FDQxO.js`).then(e=>e.n).then(e=>e.learnRegistry),__vite__mapDeps([76,1,2,9,3,35,52,4,27,5,6,7,8,21,14,22,11,15,16,77,78,79,48,49,50,51,53,54,55,80,81]))),compose:i(()=>r(()=>import(`./registry-Vp8VuMV0.js`).then(e=>e.n).then(e=>e.composeRegistry),__vite__mapDeps([82,1,9,2,3,4,5,8,21,14,22,11,83]))),everyday:i(()=>r(()=>import(`./registry-Bv1f5UU4.js`).then(e=>e.n).then(e=>e.everydayRegistry),__vite__mapDeps([84,1,2,9,3,4,5,6,7,21,8,14,22,11,85]))),reference:i(()=>r(()=>import(`./registry-BRbEINOV.js`).then(e=>e.n).then(e=>e.referenceRegistry),__vite__mapDeps([86,1,2,9,3,4,5,36,21,8,14,22,11,79,48,49,50,35,51,52,53,54,55,80,39,87]))),code:i(()=>r(()=>import(`./registry-D8O0apUT.js`).then(e=>e.n).then(e=>e.codeRegistry),__vite__mapDeps([88,1,2,9,3,4,5,21,8,14,22,11,64,38,89]))),dashboard:i(()=>r(()=>import(`./registry-BFbfXK-W.js`).then(e=>e.n).then(e=>e.dashboardRegistry),__vite__mapDeps([90,1,2,9,3,4,21,8,14,22,11,91]))),finance:i(()=>r(()=>import(`./registry-CPiwQhAm.js`).then(e=>e.n).then(e=>e.financeRegistry),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,21,14,22,11,15,93])))},c=new Map,l=new Map,u=new Set,d=2;function f(e,t,n){for(let r of e){let e=o[r.type];if(e&&t.add(e),n>=d)continue;let i=r.props?.regions;if(Array.isArray(i)){let e=i.map(e=>e&&typeof e==`object`?e.block:null).filter(e=>!!e&&typeof e.type==`string`);e.length&&f(e,t,n+1)}}}function p(e){let t=new Set;return f(e,t,0),t}function m(e){for(let t of e)if(!c.has(t)&&!u.has(t))return!1;return!0}function h(e){let t=[];for(let n of e){if(c.has(n)||u.has(n))continue;let e=l.get(n);e||(e=s[n]().then(e=>{c.set(n,e)}).catch(()=>{u.add(n)}).finally(()=>{l.delete(n)}),l.set(n,e)),t.push(e)}return t.length?Promise.all(t).then(()=>void 0):Promise.resolve()}function g(e){h(p(e))}function _(e){let t=o[e];return t?c.get(t)?.[e]??null:null}function v(e){let t=(e?.blocks??[]).filter(e=>!!e.id);return t.length>=4&&new Set(t.map(e=>e.type)).size>=3}var y=e(),b=t();function x({file:e,loc:t,color:n=`var(--presence-soft)`,onClick:r}){return(0,b.jsxs)(`button`,{className:`source-chip`,onClick:r,style:{color:n},children:[(0,b.jsx)(a.doc,{style:{width:12,height:12}}),(0,b.jsx)(`span`,{children:e}),t&&(0,b.jsxs)(`span`,{className:`mono`,children:[`· `,t]})]})}var S={strong:`Strong evidence`,partial:`Partial evidence`,inferred:`Inferred`,unverified:`Unverified`},C=`Best estimate from the model's knowledge — not verified`;function w({level:e=`strong`,title:t=`How sure Mavéa is, based on your files`}){return(0,b.jsxs)(`span`,{className:`conf `+e,title:t,children:[(0,b.jsxs)(`span`,{className:`bars`,children:[(0,b.jsx)(`i`,{style:{height:5}}),(0,b.jsx)(`i`,{style:{height:8}}),(0,b.jsx)(`i`,{style:{height:11}})]}),S[e]]})}function T(e){let t=(0,y.c)(8),{name:n,color:r,verb:i}=e,a;t[0]===r?a=t[1]:(a=(0,b.jsx)(`span`,{className:`fdot`,style:{background:r}}),t[0]=r,t[1]=a);let o;t[2]===i?o=t[3]:(o=i&&(0,b.jsx)(`span`,{className:`using`,children:i}),t[2]=i,t[3]=o);let s;return t[4]!==n||t[5]!==a||t[6]!==o?(s=(0,b.jsxs)(`span`,{className:`context-pill`,children:[a,o,` `,n]}),t[4]=n,t[5]=a,t[6]=o,t[7]=s):s=t[7],s}var E=8,D=[[86,62],[74,91,55],[68,80],[90,58,76]];function O(e){let t=(0,y.c)(7),{blocks:n,budget:r}=e,i;if(t[0]!==n||t[1]!==r){let e;t[3]===r?e=t[4]:(e=(e,t)=>{let n=Math.min(12,Math.max(1,e.col??6));return(0,b.jsx)(`div`,{className:`col-`+(r!=null&&r<9?12:n),"aria-hidden":`true`,children:(0,b.jsxs)(`div`,{className:`card skel-card skel-fade`,children:[(0,b.jsx)(`span`,{className:`skel-eyebrow`}),D[t%D.length].map(k)]})},t)},t[3]=r,t[4]=e),i=n.slice(0,E).map(e),t[0]=n,t[1]=r,t[2]=i}else i=t[2];let a;return t[5]===i?a=t[6]:(a=(0,b.jsx)(b.Fragment,{children:i}),t[5]=i,t[6]=a),a}function k(e,t){return(0,b.jsx)(`span`,{className:`skel-line`,style:{width:`${e}%`}},t)}export{x as a,p as c,g as d,T as i,m as l,C as n,v as o,w as r,_ as s,O as t,h as u};
@@ -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{o as r}from"./ledger-Cv0LBflx.js";import{t as i}from"./useLedger-1WVXef68.js";import{c as a,l as o}from"./dashboardEvents-BDKxoLch.js";import{n as s,t as c}from"./checkLogModel-BMtruriG.js";var l=e(),u=t(),d=n();function f(e){return e.domains?.length?e.domains.join(`, `):e.manual?`MANUAL`:`MAVÉA`}function p(e){let t=(0,u.c)(34),{entry:n}=e,r;t[0]===n?r=t[1]:(r=c(n),t[0]=n,t[1]=r);let i=r,l=n.kind===`savings`?n.suggestion:void 0,p;t[2]===n.at?p=t[3]:(p=s(n.at),t[2]=n.at,t[3]=p);let m;t[4]===p?m=t[5]:(m=(0,d.jsx)(`span`,{className:`dash-log-time`,children:p}),t[4]=p,t[5]=m);let h;t[6]===i?h=t[7]:(h=i&&(0,d.jsx)(`span`,{className:`dash-log-chip dash-log-chip--${i.tone}`,children:i.label}),t[6]=i,t[7]=h);let g;t[8]!==m||t[9]!==h?(g=(0,d.jsxs)(`div`,{className:`dash-log-row-top`,children:[m,h]}),t[8]=m,t[9]=h,t[10]=g):g=t[10];let _;t[11]===n.text?_=t[12]:(_=(0,d.jsx)(`p`,{className:`dash-log-text`,children:n.text}),t[11]=n.text,t[12]=_);let v;t[13]!==n.id||t[14]!==l?(v=l&&l.state===`open`&&(0,d.jsxs)(`div`,{className:`dash-log-suggestion`,children:[(0,d.jsxs)(`button`,{type:`button`,className:`dash-log-apply-btn`,onClick:()=>a(n.id,l.dashboardId,l.to),children:[`Apply — save ~`,l.savesPerMonth,` searches/mo`]}),(0,d.jsx)(`button`,{type:`button`,className:`dash-log-dismiss-btn`,onClick:()=>o(n.id),children:`Dismiss`})]}),t[13]=n.id,t[14]=l,t[15]=v):v=t[15];let y;t[16]===l?y=t[17]:(y=l&&l.state===`applied`&&(0,d.jsx)(`div`,{className:`dash-log-suggestion`,children:(0,d.jsx)(`span`,{className:`dash-log-applied`,children:`Applied ✓`})}),t[16]=l,t[17]=y);let b;t[18]===n?b=t[19]:(b=f(n),t[18]=n,t[19]=b);let x;t[20]===b?x=t[21]:(x=(0,d.jsx)(`span`,{className:`dash-log-source`,children:b}),t[20]=b,t[21]=x);let S;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,d.jsx)(`span`,{className:`dash-log-dot`,"aria-hidden":`true`}),t[22]=S):S=t[22];let C=n.searches===1?`1 SEARCH`:`NO SEARCH SPENT`,w;t[23]===C?w=t[24]:(w=(0,d.jsx)(`span`,{className:`dash-log-cost`,children:C}),t[23]=C,t[24]=w);let T;t[25]!==x||t[26]!==w?(T=(0,d.jsxs)(`div`,{className:`dash-log-foot`,children:[x,S,w]}),t[25]=x,t[26]=w,t[27]=T):T=t[27];let E;return t[28]!==T||t[29]!==g||t[30]!==_||t[31]!==v||t[32]!==y?(E=(0,d.jsxs)(`li`,{className:`dash-log-row`,children:[g,_,v,y,T]}),t[28]=T,t[29]=g,t[30]=_,t[31]=v,t[32]=y,t[33]=E):E=t[33],E}var m=100;function h({dashboardId:e,now:t,limit:n=m}){let a=i(),o=(0,l.useMemo)(()=>e?a.filter(t=>t.dashboardIds.includes(e)):a,[a,e]),s=(0,l.useMemo)(()=>r(o,t),[o,t]),c=(0,l.useMemo)(()=>o.slice(0,Math.max(0,n)),[o,n]);return(0,d.jsxs)(`section`,{className:`card dash-log-card`,"aria-label":`Check log`,children:[(0,d.jsxs)(`div`,{className:`card-eyebrow dash-log-head`,children:[e?`CHECK LOG · `:``,`TODAY · `,s,` SEARCHES USED`]}),c.length===0?(0,d.jsx)(`p`,{className:`dash-log-empty`,children:`Your check log will appear here.`}):(0,d.jsx)(`ul`,{className:`dash-log-list`,role:`log`,"aria-live":`polite`,"aria-relevant":`additions`,children:c.map(e=>(0,d.jsx)(p,{entry:e},e.id))})]})}export{h as t};
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{o as r}from"./ledger-Cv0LBflx.js";import{t as i}from"./useLedger-1WVXef68.js";import{c as a,l as o}from"./dashboardEvents-D-wLCp1A.js";import{n as s,t as c}from"./checkLogModel-BMtruriG.js";var l=e(),u=t(),d=n();function f(e){return e.domains?.length?e.domains.join(`, `):e.manual?`MANUAL`:`MAVÉA`}function p(e){let t=(0,u.c)(34),{entry:n}=e,r;t[0]===n?r=t[1]:(r=c(n),t[0]=n,t[1]=r);let i=r,l=n.kind===`savings`?n.suggestion:void 0,p;t[2]===n.at?p=t[3]:(p=s(n.at),t[2]=n.at,t[3]=p);let m;t[4]===p?m=t[5]:(m=(0,d.jsx)(`span`,{className:`dash-log-time`,children:p}),t[4]=p,t[5]=m);let h;t[6]===i?h=t[7]:(h=i&&(0,d.jsx)(`span`,{className:`dash-log-chip dash-log-chip--${i.tone}`,children:i.label}),t[6]=i,t[7]=h);let g;t[8]!==m||t[9]!==h?(g=(0,d.jsxs)(`div`,{className:`dash-log-row-top`,children:[m,h]}),t[8]=m,t[9]=h,t[10]=g):g=t[10];let _;t[11]===n.text?_=t[12]:(_=(0,d.jsx)(`p`,{className:`dash-log-text`,children:n.text}),t[11]=n.text,t[12]=_);let v;t[13]!==n.id||t[14]!==l?(v=l&&l.state===`open`&&(0,d.jsxs)(`div`,{className:`dash-log-suggestion`,children:[(0,d.jsxs)(`button`,{type:`button`,className:`dash-log-apply-btn`,onClick:()=>a(n.id,l.dashboardId,l.to),children:[`Apply — save ~`,l.savesPerMonth,` searches/mo`]}),(0,d.jsx)(`button`,{type:`button`,className:`dash-log-dismiss-btn`,onClick:()=>o(n.id),children:`Dismiss`})]}),t[13]=n.id,t[14]=l,t[15]=v):v=t[15];let y;t[16]===l?y=t[17]:(y=l&&l.state===`applied`&&(0,d.jsx)(`div`,{className:`dash-log-suggestion`,children:(0,d.jsx)(`span`,{className:`dash-log-applied`,children:`Applied ✓`})}),t[16]=l,t[17]=y);let b;t[18]===n?b=t[19]:(b=f(n),t[18]=n,t[19]=b);let x;t[20]===b?x=t[21]:(x=(0,d.jsx)(`span`,{className:`dash-log-source`,children:b}),t[20]=b,t[21]=x);let S;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,d.jsx)(`span`,{className:`dash-log-dot`,"aria-hidden":`true`}),t[22]=S):S=t[22];let C=n.searches===1?`1 SEARCH`:`NO SEARCH SPENT`,w;t[23]===C?w=t[24]:(w=(0,d.jsx)(`span`,{className:`dash-log-cost`,children:C}),t[23]=C,t[24]=w);let T;t[25]!==x||t[26]!==w?(T=(0,d.jsxs)(`div`,{className:`dash-log-foot`,children:[x,S,w]}),t[25]=x,t[26]=w,t[27]=T):T=t[27];let E;return t[28]!==T||t[29]!==g||t[30]!==_||t[31]!==v||t[32]!==y?(E=(0,d.jsxs)(`li`,{className:`dash-log-row`,children:[g,_,v,y,T]}),t[28]=T,t[29]=g,t[30]=_,t[31]=v,t[32]=y,t[33]=E):E=t[33],E}var m=100;function h({dashboardId:e,now:t,limit:n=m}){let a=i(),o=(0,l.useMemo)(()=>e?a.filter(t=>t.dashboardIds.includes(e)):a,[a,e]),s=(0,l.useMemo)(()=>r(o,t),[o,t]),c=(0,l.useMemo)(()=>o.slice(0,Math.max(0,n)),[o,n]);return(0,d.jsxs)(`section`,{className:`card dash-log-card`,"aria-label":`Check log`,children:[(0,d.jsxs)(`div`,{className:`card-eyebrow dash-log-head`,children:[e?`CHECK LOG · `:``,`TODAY · `,s,` SEARCHES USED`]}),c.length===0?(0,d.jsx)(`p`,{className:`dash-log-empty`,children:`Your check log will appear here.`}):(0,d.jsx)(`ul`,{className:`dash-log-list`,role:`log`,"aria-live":`polite`,"aria-relevant":`additions`,children:c.map(e=>(0,d.jsx)(p,{entry:e},e.id))})]})}export{h as t};
@@ -1 +1 @@
1
- import{t as e}from"./react-BZJXY1be.js";import{t}from"./jsx-runtime-DeHZSEgm.js";import{n}from"./preloadableLazy-MIX1ApBW.js";import{n as r}from"./icons-gLFQTv74.js";import{n as i,r as a}from"./registry-CueC1vq1.js";var o=e(),s=t();function c({items:e,surface:t,onClose:c,pinned:l=!1}){let[u,d]=(0,o.useState)(``),[f,p]=(0,o.useState)(0),m=(0,o.useRef)(null),h=(0,o.useRef)(null),g=(0,o.useRef)(null),_=(0,o.useMemo)(()=>{let t=u.trim().toLowerCase();if(!t)return e;let n=t.split(/\s+/);return e.filter(e=>{let t=a(e.feature);return n.every(e=>t.includes(e))})},[e,u]),v=(0,o.useMemo)(()=>i.map(e=>({heading:e,items:_.filter(t=>t.feature.group===e)})).filter(e=>e.items.length>0),[_]),y=(0,o.useMemo)(()=>v.flatMap(e=>e.items),[v]);(0,o.useEffect)(()=>{p(0)},[u]),(0,o.useEffect)(()=>(g.current=document.activeElement??null,m.current?.focus(),()=>g.current?.focus?.()),[]),(0,o.useEffect)(()=>{(h.current?.querySelector(`.is-active`))?.scrollIntoView?.({block:`nearest`})},[f]);let b=(0,o.useCallback)(e=>{e.run(),c()},[c]),x=(0,o.useCallback)(e=>{e.watch?.(),c()},[c]);(0,o.useEffect)(()=>{let e=e=>{if(e.key===`Escape`)e.preventDefault(),l||c();else if(e.key===`ArrowDown`)e.preventDefault(),p(e=>Math.min(Math.max(0,y.length-1),e+1));else if(e.key===`ArrowUp`)e.preventDefault(),p(e=>Math.max(0,e-1));else if(e.key===`Enter`){e.preventDefault();let t=y[f];if(!t)return;(e.metaKey||e.ctrlKey)&&t.watch?x(t):b(t)}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[f,y,c,b,x,l]);let S=y[f]?.feature.id;return(0,s.jsx)(`div`,{className:`cmdk-scrim`,onClick:e=>{e.target===e.currentTarget&&!l&&c()},role:`button`,tabIndex:0,"aria-label":`Close`,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.key===` `&&e.preventDefault(),l||c())},children:(0,s.jsxs)(`div`,{className:`cmdk-panel`,role:`dialog`,"aria-modal":`true`,"aria-label":`Find a feature`,children:[(0,s.jsxs)(`div`,{className:`cmdk-search`,children:[(0,s.jsx)(r.sparkle,{className:`cmdk-search-icon`,"aria-hidden":`true`}),(0,s.jsx)(`input`,{ref:m,className:`cmdk-input`,value:u,onChange:e=>d(e.target.value),placeholder:t===`demo`?`Find anything Mavéa can do…`:`Search everything Mavéa can do…`,"aria-label":`Search features`,"aria-activedescendant":S?`cmdk-opt-${S}`:void 0,autoComplete:`off`,spellCheck:!1}),!l&&(0,s.jsx)(`kbd`,{className:`cmdk-kbd`,children:`esc`})]}),t===`demo`&&(0,s.jsx)(`p`,{className:`cmdk-note`,children:`Click any feature to see it in action.`}),(0,s.jsx)(`div`,{className:`cmdk-list`,role:`listbox`,"aria-label":`Features`,ref:h,children:y.length===0?(0,s.jsxs)(`div`,{className:`cmdk-empty`,children:[`No features match “`,u.trim(),`”.`]}):v.map(e=>(0,s.jsxs)(`div`,{className:`more-menu-group`,children:[(0,s.jsx)(`span`,{className:`more-menu-heading`,children:e.heading}),e.items.map(e=>{let t=y.indexOf(e),i=t===f;return(0,s.jsxs)(`div`,{className:`cmdk-row-wrap`,role:`presentation`,children:[(0,s.jsxs)(`button`,{type:`button`,role:`option`,id:`cmdk-opt-${e.feature.id}`,"aria-selected":i,className:`more-menu-row cmdk-row${i?` is-active`:``}${e.available?``:` is-unavailable`}`,onMouseMove:()=>p(t),onClick:()=>b(e),...e.preload?n(e.preload):{},children:[(0,s.jsx)(`span`,{className:`more-menu-name`,children:e.feature.label}),(0,s.jsx)(`span`,{className:`more-menu-blurb`,children:e.available?e.feature.blurb:e.reason??e.feature.blurb})]}),e.watch&&(0,s.jsxs)(`button`,{type:`button`,className:`cmdk-watch`,"aria-label":`See how ${e.feature.label} works`,title:`See how it works — a quick demo (⌘↵)`,onMouseMove:()=>p(t),onClick:()=>x(e),children:[(0,s.jsx)(r.play,{className:`cmdk-watch-ic`,"aria-hidden":`true`}),`See how`]})]},e.feature.id)})]},e.heading))})]})})}export{c as CommandPalette};
1
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./jsx-runtime-DeHZSEgm.js";import{n}from"./preloadableLazy-MIX1ApBW.js";import{n as r}from"./icons-gLFQTv74.js";import{n as i,r as a}from"./registry-DuP_q42N.js";var o=e(),s=t();function c({items:e,surface:t,onClose:c,pinned:l=!1}){let[u,d]=(0,o.useState)(``),[f,p]=(0,o.useState)(0),m=(0,o.useRef)(null),h=(0,o.useRef)(null),g=(0,o.useRef)(null),_=(0,o.useMemo)(()=>{let t=u.trim().toLowerCase();if(!t)return e;let n=t.split(/\s+/);return e.filter(e=>{let t=a(e.feature);return n.every(e=>t.includes(e))})},[e,u]),v=(0,o.useMemo)(()=>i.map(e=>({heading:e,items:_.filter(t=>t.feature.group===e)})).filter(e=>e.items.length>0),[_]),y=(0,o.useMemo)(()=>v.flatMap(e=>e.items),[v]);(0,o.useEffect)(()=>{p(0)},[u]),(0,o.useEffect)(()=>(g.current=document.activeElement??null,m.current?.focus(),()=>g.current?.focus?.()),[]),(0,o.useEffect)(()=>{(h.current?.querySelector(`.is-active`))?.scrollIntoView?.({block:`nearest`})},[f]);let b=(0,o.useCallback)(e=>{e.run(),c()},[c]),x=(0,o.useCallback)(e=>{e.watch?.(),c()},[c]);(0,o.useEffect)(()=>{let e=e=>{if(e.key===`Escape`)e.preventDefault(),l||c();else if(e.key===`ArrowDown`)e.preventDefault(),p(e=>Math.min(Math.max(0,y.length-1),e+1));else if(e.key===`ArrowUp`)e.preventDefault(),p(e=>Math.max(0,e-1));else if(e.key===`Enter`){e.preventDefault();let t=y[f];if(!t)return;(e.metaKey||e.ctrlKey)&&t.watch?x(t):b(t)}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[f,y,c,b,x,l]);let S=y[f]?.feature.id;return(0,s.jsx)(`div`,{className:`cmdk-scrim`,onClick:e=>{e.target===e.currentTarget&&!l&&c()},role:`button`,tabIndex:0,"aria-label":`Close`,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.key===` `&&e.preventDefault(),l||c())},children:(0,s.jsxs)(`div`,{className:`cmdk-panel`,role:`dialog`,"aria-modal":`true`,"aria-label":`Find a feature`,children:[(0,s.jsxs)(`div`,{className:`cmdk-search`,children:[(0,s.jsx)(r.sparkle,{className:`cmdk-search-icon`,"aria-hidden":`true`}),(0,s.jsx)(`input`,{ref:m,className:`cmdk-input`,value:u,onChange:e=>d(e.target.value),placeholder:t===`demo`?`Find anything Mavéa can do…`:`Search everything Mavéa can do…`,"aria-label":`Search features`,"aria-activedescendant":S?`cmdk-opt-${S}`:void 0,autoComplete:`off`,spellCheck:!1}),!l&&(0,s.jsx)(`kbd`,{className:`cmdk-kbd`,children:`esc`})]}),t===`demo`&&(0,s.jsx)(`p`,{className:`cmdk-note`,children:`Click any feature to see it in action.`}),(0,s.jsx)(`div`,{className:`cmdk-list`,role:`listbox`,"aria-label":`Features`,ref:h,children:y.length===0?(0,s.jsxs)(`div`,{className:`cmdk-empty`,children:[`No features match “`,u.trim(),`”.`]}):v.map(e=>(0,s.jsxs)(`div`,{className:`more-menu-group`,children:[(0,s.jsx)(`span`,{className:`more-menu-heading`,children:e.heading}),e.items.map(e=>{let t=y.indexOf(e),i=t===f;return(0,s.jsxs)(`div`,{className:`cmdk-row-wrap`,role:`presentation`,children:[(0,s.jsxs)(`button`,{type:`button`,role:`option`,id:`cmdk-opt-${e.feature.id}`,"aria-selected":i,className:`more-menu-row cmdk-row${i?` is-active`:``}${e.available?``:` is-unavailable`}`,onMouseMove:()=>p(t),onClick:()=>b(e),...e.preload?n(e.preload):{},children:[(0,s.jsx)(`span`,{className:`more-menu-name`,children:e.feature.label}),(0,s.jsx)(`span`,{className:`more-menu-blurb`,children:e.available?e.feature.blurb:e.reason??e.feature.blurb})]}),e.watch&&(0,s.jsxs)(`button`,{type:`button`,className:`cmdk-watch`,"aria-label":`See how ${e.feature.label} works`,title:`See how it works — a quick demo (⌘↵)`,onMouseMove:()=>p(t),onClick:()=>x(e),children:[(0,s.jsx)(r.play,{className:`cmdk-watch-ic`,"aria-hidden":`true`}),`See how`]})]},e.feature.id)})]},e.heading))})]})})}export{c as CommandPalette};
@@ -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{l as r,m as i}from"./index-D1SPhBGd.js";import{n as a}from"./icons-gLFQTv74.js";import{t as o}from"./TopicCanvas-DR26Swr_.js";import{t as s}from"./motion-BY_Egaxm.js";import{t as c}from"./toast-BBNs2h3L.js";import{t as l}from"./Presence-CKSoyuhE.js";import{a as u,c as d,i as f,r as p,t as m}from"./capture-BBxyt5SN.js";import{i as ee,n as te,r as ne,t as re}from"./share-kW3pZ027.js";import{t as ie}from"./FeatureUseNotice-BhljPjUv.js";import{r as h}from"./history-D2EH2X6D.js";import{t as g}from"./replay-zh4xVk5G.js";import"./canvas-DIs20T9l.js";import{t as _}from"./AnnotationLayer-DHHGgh8x.js";var v=e(),y=t(),b=18e4,x=650,S=350;function C(e){let t=[e.spoken??e.narration,...e.tour.map(e=>e.saySpoken??e.say??``)].reduce((e,t)=>e+t.trim().length,0);return 1e3+Math.max(1800,t/14*1e3)}function ae(e){return e.reduce((e,t)=>e+C(t),0)}function oe(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.topicShift===!0||n?.topicShift===void 0&&n?.mode===`replace`)return t}return 0}function w(e,t,n){let r=n.spans[e+1];return r?r.startMs:x+Math.max(0,n.durationMs-x-S)*(e+1)/(t+1)}function T(e,t,n){let r=[],i=0;return e.forEach((e,a)=>{let o=t[a];if(!o)return;let s=g(e),c=s.cues.map((e,t)=>w(t,s.cues.length,o)),l=[0,x,...c,o.durationMs].map(e=>Math.max(0,Math.min(o.durationMs,e))).filter((e,t,n)=>t===0||e>n[t-1]),u=[];for(let t=0;t<l.length-1;t++){let d=l[t],f=l[t+1],p=c.findIndex(e=>e===d),m=p>=0?s.cues[p]:void 0;m&&n.penMarks&&(u=[...u,...m.marks.map((t,n)=>({spot:m.spot,line:m.say,mark:t,delayMs:n*240,...t.kind===`connect`&&typeof t.onIndex==`number`?{toSpot:e.spec.blocks[t.onIndex]?.id}:{}}))]);let ee=[...o.spans].reverse().find(e=>e.startMs<=d&&e.endMs>d);r.push({frame:e,turnIndex:a,startMs:i+d,durationMs:Math.max(1,f-d),spot:n.spotlights?m?.spot??null:null,caption:n.captions?ee?.text??null:null,ink:u,questionOnly:t===0})}i+=o.durationMs}),r}var E=24e3,D=.65,O=.18,k=.35,se=.89,A=6,j=class extends Error{turnIndex;question;constructor(e,t){super(`Narration is unavailable for “${t||`turn ${e+1}`}”.`),this.turnIndex=e,this.question=t,this.name=`RequiredConversationAudioError`}};function M(e){return[e.spoken??e.narration,...e.tour.map(e=>e.saySpoken??e.say??``)].map(e=>e.trim()).filter(Boolean)}function N(e){return e.trim().replace(/\s+/g,` `)}function P(e,t){let n=M(e);return n.length>0&&t.pcm.length>0&&t.spans.length===n.length&&n.every((e,n)=>N(t.spans[n]?.text??``)===N(e)&&t.spans[n].t1>t.spans[n].t0)}function F(e){let t=e.spans.map(e=>({text:e.text,startMs:Math.round((D+e.t0)*1e3),endMs:Math.round((D+e.t1)*1e3)}));return{lines:[{text:t.map(e=>e.text).join(` `),pcm:e.pcm,rate:e.sampleRate}],durationS:D+e.duration+k,spans:t}}async function I(e,t,n){let r=M(e);if(!r.length)throw new j(t,e.question);let i=[];for(let a of r){if(n?.aborted)throw new DOMException(`Cancelled`,`AbortError`);let r=await d(a,n);if(n?.aborted)throw new DOMException(`Cancelled`,`AbortError`);if(!r.length)throw new j(t,e.question);i.push({text:a,pcm:r,rate:E})}let a=[],o=D;for(let e of i){let t=o;o+=e.pcm.length/e.rate,a.push({text:e.text,startMs:Math.round(t*1e3),endMs:Math.round(o*1e3)}),o+=O}return{lines:i,durationS:o+k,spans:a}}async function ce(e,t,n){let i=r();if(!i||typeof OfflineAudioContext>`u`)throw Error(`audio-encoding-unavailable`);let a=[];for(let r=0;r<e.length;r++){let i=e[r],o=t(i);a.push(o&&P(i,o)?F(o):await I(i,r,n))}let o=a.reduce((e,t)=>e+t.durationS,0);if(o*1e3>18e4)throw Error(`conversation-too-long`);let s=0;for(let e of a)for(let t of e.lines)for(let e=0;e<t.pcm.length;e++)s=Math.max(s,Math.abs(t.pcm[e]));let c=s>0?Math.min(A,se/s):1,l=new OfflineAudioContext(1,Math.ceil(o*i.sampleRate),i.sampleRate),u=l.createGain();u.gain.value=c,u.connect(l.destination);let d=0;for(let e of a){let t=d+D;for(let n of e.lines){let e=l.createBuffer(1,n.pcm.length,n.rate);e.getChannelData(0).set(n.pcm);let r=l.createBufferSource();r.buffer=e,r.connect(u),r.start(t),t+=n.pcm.length/n.rate+O}d+=e.durationS}return{buffer:await l.startRendering(),turns:a.map(e=>({durationMs:Math.round(e.durationS*1e3),spans:e.spans})),durationMs:Math.round(o*1e3)}}var le={"1080p":{width:1920,height:1080},"720p":{width:1280,height:720}};function L(e,t,n=i()){let{bitrate:r}=m(e,n);return t===`720p`?Math.round(r*.55):r}async function R(e){document.visibilityState===`hidden`&&await new Promise((t,n)=>{let r=()=>a(new DOMException(`Cancelled`,`AbortError`)),i=()=>{document.visibilityState!==`hidden`&&a()},a=a=>{document.removeEventListener(`visibilitychange`,i),e.removeEventListener(`abort`,r),a?n(a):t()};document.addEventListener(`visibilitychange`,i),e.addEventListener(`abort`,r,{once:!0})})}function ue(){return typeof document<`u`&&(typeof VideoEncoder<`u`&&typeof AudioEncoder<`u`||u()!==null)}async function de(e){let t=i(),n=le[e.size],r=e.scenes[0];r&&await e.applyScene(r,0);let a=getComputedStyle(e.el).backgroundColor,o=await f({el:e.el,audioBuffer:e.audioBuffer,aspect:`16:9`,dims:{w:n.width,h:n.height},quality:e.quality,bitrate:L(e.quality,e.size,t),background:a&&a!==`rgba(0, 0, 0, 0)`?a:void 0,maxDurationMs:e.durationMs}),s=performance.now();try{for(let t=1;t<e.scenes.length;t++){let n=e.scenes[t];for(;performance.now()-s<n.startMs;){if(e.signal.aborted)throw new DOMException(`Cancelled`,`AbortError`);await R(e.signal),await new Promise(e=>setTimeout(e,25))}await e.applyScene(n,t),e.onProgress?.({phase:`render`,completed:t+1,total:e.scenes.length})}for(;performance.now()-s<e.durationMs;){if(e.signal.aborted)throw new DOMException(`Cancelled`,`AbortError`);await R(e.signal),await new Promise(e=>setTimeout(e,25))}e.onProgress?.({phase:`encode`,completed:0,total:1});let t=await o.stop();return e.onProgress?.({phase:`ready`,completed:1,total:1}),{...t,...n}}catch(e){throw o.cancel(),e}}var z=n();function B({scene:e,options:t,frameRef:n,glide:r=!0}){let i=(0,v.useRef)(null),a=(0,v.useRef)(null),[s,c]=(0,v.useState)(0);(0,v.useEffect)(()=>(n?.(i.current),()=>n?.(null)),[n]),(0,v.useEffect)(()=>{let t=a.current;if(!t)return;let n=0;if(e?.spot){let r=[...t.querySelectorAll(`[data-spot-id]`)].find(t=>t.dataset.spotId===e.spot);if(!r)return;let i=t.getBoundingClientRect(),a=r.getBoundingClientRect();n=Math.max(0,t.scrollTop+a.top-i.top-(t.clientHeight-a.height)/2)}typeof t.scrollTo==`function`?t.scrollTo({top:n,behavior:r?`smooth`:`auto`}):t.scrollTop=n;let i=window.setTimeout(()=>c(e=>e+1),420);return()=>window.clearTimeout(i)},[e?.spot,e?.turnIndex,r]);let u=e?.questionOnly??!1,d=e?e.frame.question||e.frame.spec.title:``;return(0,z.jsx)(`div`,{ref:i,className:`cvs-stage`,"data-aspect":`16:9`,"data-question-only":u,"data-captioned":t.captions,children:e?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`header`,{className:`cvs-header`,children:[(0,z.jsxs)(`div`,{className:`cvs-brand`,children:[(0,z.jsx)(`span`,{className:`cvs-brand-dot`}),` Mavéa conversation`]}),(0,z.jsxs)(`div`,{className:`cvs-turn`,children:[`Turn `,e.turnIndex+1]}),(0,z.jsx)(`h2`,{children:d})]}),u?(0,z.jsxs)(`div`,{className:`cvs-ask`,children:[(0,z.jsx)(`span`,{className:`cvs-ask-eyebrow`,children:`Asked`}),(0,z.jsx)(`p`,{className:`cvs-ask-line`,children:d})]}):(0,z.jsxs)(`div`,{ref:a,className:`cvs-canvas`,children:[(0,z.jsx)(`div`,{className:`topic-wrap`,children:(0,z.jsx)(o,{data:e.frame.spec,spot:e.spot,built:{},onProve:()=>{}})},e.turnIndex),t.penMarks&&(0,z.jsx)(_,{spots:e.ink,within:i.current,revision:s})]}),t.captions&&e.caption&&(0,z.jsx)(`div`,{className:`cvs-caption`,children:e.caption}),t.presence&&(0,z.jsx)(`div`,{className:`cvs-presence`,children:(0,z.jsx)(l,{state:u?`thinking`:`speaking`})})]}):(0,z.jsx)(`div`,{className:`cvs-empty`,children:`Choose a turn to preview it.`})})}var fe=[{id:`1080p`,label:`1080p`,hint:`1920×1080`},{id:`720p`,label:`720p`,hint:`1280×720`}],pe=[{id:`balanced`,label:`Balanced`},{id:`high`,label:`High`},{id:`ultra`,label:`Ultra`}],V=650;function H(e=300){return Promise.race([(async()=>{await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e()))})(),new Promise(t=>window.setTimeout(t,e))])}var me=[{key:`captions`,label:`Captions`},{key:`spotlights`,label:`Spotlights`},{key:`penMarks`,label:`Pen marks`},{key:`presence`,label:`Mavéa`}];function U(e){let t=Math.max(0,Math.round(e/1e3));return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}function he(e){let t=(0,y.c)(12),{width:n,height:r,children:i}=e,a=(0,v.useRef)(null),[o,s]=(0,v.useState)(0),c,l;t[0]!==r||t[1]!==n?(c=()=>{let e=a.current;if(!e)return;let t=()=>{let{width:t,height:i}=e.getBoundingClientRect();!t||!i||s(Math.min(t/n,i/r))};if(t(),typeof ResizeObserver>`u`)return;let i=new ResizeObserver(t);return i.observe(e),()=>i.disconnect()},l=[n,r],t[0]=r,t[1]=n,t[2]=c,t[3]=l):(c=t[2],l=t[3]),(0,v.useLayoutEffect)(c,l);let u=`scale(${o})`,d=o?void 0:`hidden`,f;t[4]!==r||t[5]!==u||t[6]!==d||t[7]!==n?(f={width:n,height:r,transform:u,visibility:d},t[4]=r,t[5]=u,t[6]=d,t[7]=n,t[8]=f):f=t[8];let p;return t[9]!==i||t[10]!==f?(p=(0,z.jsx)(`div`,{ref:a,className:`cvs-viewport`,children:(0,z.jsx)(`div`,{className:`cvs-scaler`,style:f,children:i})}),t[9]=i,t[10]=f,t[11]=p):p=t[11],p}function ge(e){return e.map(e=>{let t=C(e);return{durationMs:t,spans:[{text:e.narration,startMs:650,endMs:Math.max(651,t-350)}]}})}function W({frames:e,retainedAudio:t,onShared:n,onBusyChange:r,frameRef:i}){let o=(0,v.useMemo)(()=>e.filter(e=>!!((e.spoken??e.narration).trim()||e.tour.some(e=>(e.saySpoken??e.say)?.trim()))),[e]),[l,u]=(0,v.useState)(()=>new Set(o.length?[h(o[o.length-1])]:[])),d=(0,v.useMemo)(()=>new Set(o.map(h)),[o]),[f,m]=(0,v.useState)({size:`1080p`,quality:`high`,captions:!0,spotlights:!0,penMarks:!0,presence:!0}),g=(0,v.useMemo)(()=>e.filter(e=>l.has(h(e))),[e,l]),_=(0,v.useMemo)(()=>ae(g),[g]),y=(0,v.useMemo)(()=>T(g,ge(g),f),[g,f]),[x,S]=(0,v.useState)(()=>y[0]??null),[C,w]=(0,v.useState)(null),[E,D]=(0,v.useState)(null),[O,k]=(0,v.useState)(null),[se,A]=(0,v.useState)(!1),[M,N]=(0,v.useState)(!1),[P,F]=(0,v.useState)(0),[I,L]=(0,v.useState)(!1),[R,W]=(0,v.useState)(!1),G=(0,v.useRef)(null),K=(0,v.useRef)(null),q=(0,v.useRef)(null),J=C!==null&&C.phase!==`ready`,Y=ue(),X=(0,v.useMemo)(()=>s(),[]),Z=M&&!J&&!X&&y.length>1;(0,v.useEffect)(()=>r?.(J),[J,r]),(0,v.useEffect)(()=>{if(!J){W(!1);return}let e=()=>W(document.visibilityState===`hidden`);return e(),document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[J]),(0,v.useEffect)(()=>N(!0),[]),(0,v.useEffect)(()=>{let e=X?y.findIndex(e=>!e.questionOnly):0;F(Math.max(0,e)),L(!1)},[y,X]),(0,v.useEffect)(()=>{J||S(y[P]??y[0]??null)},[y,P,J]),(0,v.useEffect)(()=>{if(!Z||I)return;let e=y[P]??y[0],t=window.setTimeout(()=>F(e=>(e+1)%y.length),Math.max(V,e?.durationMs??V));return()=>window.clearTimeout(t)},[Z,I,y,P]),(0,v.useEffect)(()=>()=>{G.current?.abort(),K.current?.dispose?.(),K.current=null,r?.(!1)},[r]);let _e=(0,v.useCallback)(async e=>{S(e),await H()},[]),Q=(0,v.useCallback)(()=>{K.current?.dispose?.(),K.current=null,D(null),w(null)},[]),ve=(0,v.useCallback)(async()=>{if(!g.length||_>18e4)return;let e=new AbortController;G.current=e,Q(),k(null),w({phase:`audio`,completed:0,total:g.length}),A(!0);try{await H();let n=q.current;if(!n)throw Error(`capture-stage-unavailable`);let r=await ce(g,t??(()=>null),e.signal),i=T(g,r.turns,f);if(!i.length)throw Error(`empty-video`);w({phase:`render`,completed:1,total:i.length});let a=await de({el:n,scenes:i,audioBuffer:r.buffer,durationMs:r.durationMs,size:f.size,quality:f.quality,signal:e.signal,applyScene:_e,onProgress:w});K.current=a,D(a),w(null)}catch(e){if(e?.name===`AbortError`){w(null);return}let t=e instanceof j?`${e.message} Check the local voice service, then retry.`:e instanceof Error&&e.message===`conversation-too-long`?`The voiced result is over three minutes. Remove a turn and retry.`:e instanceof Error&&e.message===`open-codec-unavailable`?`This browser cannot encode an approved open-media format (AV1/VP9/VP8 with Opus). Try the current Chrome, Edge, or Firefox.`:`The video could not be created in this browser. Your conversation is unchanged.`;k(t),w(null)}finally{A(!1)}},[_e,Q,_,f,t,g]),$=e=>{J||(u(new Set(e.map(h))),Q(),k(null))},ye=le[f.size],be=re(ee(g[0]?.spec.title||g[0]?.question,new Date),E?.type??``),xe=C?C.phase===`audio`?`Preparing required narration…`:C.phase===`render`?`Rendering scene ${C.completed} of ${C.total}…`:C.phase===`encode`?`Finishing the file…`:`Video ready`:``,Se=_>b;return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`div`,{className:`shm-panel cvs-panel`,children:[(0,z.jsx)(`div`,{className:`shm-eyebrow`,children:`▷ CONVERSATION VIDEO`}),(0,z.jsx)(`div`,{className:`cvs-title`,children:`Share this conversation.`}),(0,z.jsx)(`div`,{className:`shm-sub`,children:`Pick the turns worth sending. Mavéa narrates every one. The video renders locally in this browser and is never uploaded.`}),(0,z.jsx)(ie,{kind:`publishing`,from:`live`}),(0,z.jsxs)(`div`,{className:`cvs-presets`,children:[(0,z.jsx)(`button`,{type:`button`,onClick:()=>$(o.slice(-1)),disabled:J,children:`Current turn`}),(0,z.jsx)(`button`,{type:`button`,onClick:()=>$(e.slice(oe(e)).filter(e=>d.has(h(e)))),disabled:J,children:`Current topic`}),(0,z.jsx)(`button`,{type:`button`,onClick:()=>$(o),disabled:J,children:`All turns`})]}),(0,z.jsx)(`div`,{className:`cvs-turns`,role:`group`,"aria-label":`Conversation turns`,children:e.map((e,t)=>{let n=h(e),r=d.has(n);return(0,z.jsxs)(`label`,{className:`cvs-turn-card`,"data-selected":l.has(n),children:[(0,z.jsx)(`input`,{type:`checkbox`,checked:l.has(n),disabled:J||!r,onChange:()=>{u(e=>{let t=new Set(e);return t.has(n)?t.delete(n):t.add(n),t}),Q()}}),(0,z.jsx)(`span`,{className:`cvs-thumb`,"aria-hidden":`true`,children:e.spec.blocks.length}),(0,z.jsxs)(`span`,{className:`cvs-turn-copy`,children:[(0,z.jsx)(`strong`,{children:e.question||e.spec.title}),(0,z.jsxs)(`small`,{children:[new Date(e.at).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`}),r?``:` · no narration`]})]}),(0,z.jsx)(`span`,{className:`cvs-order`,children:t+1})]},n)})}),(0,z.jsxs)(`div`,{className:`shm-group`,children:[(0,z.jsx)(`div`,{className:`shm-label`,children:`Size`}),(0,z.jsx)(`div`,{className:`shm-chips`,children:fe.map(e=>(0,z.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":f.size===e.id,"aria-pressed":f.size===e.id,disabled:J,onClick:()=>{Q(),m(t=>({...t,size:e.id}))},title:e.hint,children:e.label},e.id))})]}),(0,z.jsxs)(`div`,{className:`shm-group`,children:[(0,z.jsx)(`div`,{className:`shm-label`,children:`Quality`}),(0,z.jsx)(`div`,{className:`shm-chips`,children:pe.map(e=>(0,z.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":f.quality===e.id,"aria-pressed":f.quality===e.id,disabled:J,onClick:()=>{Q(),m(t=>({...t,quality:e.id}))},title:p(e.id),children:e.label},e.id))})]}),(0,z.jsxs)(`div`,{className:`shm-group`,children:[(0,z.jsx)(`div`,{className:`shm-label`,children:`Include`}),(0,z.jsxs)(`div`,{className:`shm-chips`,children:[me.map(({key:e,label:t})=>(0,z.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":f[e],"aria-pressed":f[e],disabled:J,onClick:()=>{Q(),m(t=>({...t,[e]:!t[e]}))},children:t},e)),(0,z.jsx)(`span`,{className:`cvs-audio-lock`,children:`● Audio always on`})]})]}),(0,z.jsxs)(`div`,{className:`cvs-meter`,"data-over":Se,children:[(0,z.jsxs)(`span`,{children:[U(_),` selected`]}),(0,z.jsx)(`span`,{children:`3:00 max`}),(0,z.jsx)(`i`,{style:{width:`${Math.min(100,_/b*100)}%`}})]}),O&&(0,z.jsx)(`div`,{className:`cvs-error`,role:`alert`,children:O}),!Y&&(0,z.jsx)(`div`,{className:`cvs-error`,role:`alert`,children:`Video export needs an approved open video codec (AV1/VP9/VP8) and Opus audio. Try the current Chrome, Edge, or Firefox.`}),C&&(0,z.jsxs)(`div`,{className:`cvs-progress`,role:`status`,children:[xe,R&&(0,z.jsx)(`em`,{className:`cvs-paused`,children:`Paused while this window is in the background — come back to it and the render picks up where it left off.`})]}),E&&(0,z.jsxs)(`div`,{className:`cvs-result`,role:`status`,children:[(0,z.jsxs)(`strong`,{children:[`Ready · `,E.width,`×`,E.height]}),(0,z.jsxs)(`span`,{children:[U(E.durationMs),` · `,(E.blob.size/1048576).toFixed(1),` MB`]})]}),(0,z.jsx)(`div`,{className:`shm-actions`,children:E?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`button`,{type:`button`,className:`shm-btn shm-btn-primary`,onClick:()=>{K.current=null,te(E.blob,be,()=>void E.dispose?.()),D(null),c(`Saved to your downloads`,`good`),n?.()},children:`↓ Download video`}),typeof navigator<`u`&&typeof navigator.share==`function`&&(0,z.jsx)(`button`,{type:`button`,className:`shm-btn`,onClick:()=>{ne(E,{title:`Mavéa conversation`,filename:be}).then(e=>{e!==`cancelled`&&(K.current=null,D(null),e===`downloaded`&&c(`Saved to your downloads`,`good`),n?.())})},children:`Share`})]}):J?(0,z.jsx)(`button`,{type:`button`,className:`shm-btn`,onClick:()=>G.current?.abort(),children:`Cancel`}):(0,z.jsx)(`button`,{type:`button`,className:`shm-btn shm-btn-primary`,disabled:!g.length||Se||!Y,onClick:()=>void ve(),children:O?`Retry ${f.size} video`:`Create ${f.size} video`})})]}),(0,z.jsx)(`div`,{className:`shm-stage`,children:(0,z.jsxs)(`div`,{className:`shm-frame`,"data-aspect":`16:9`,children:[M?(0,z.jsx)(he,{width:ye.width,height:ye.height,children:(0,z.jsx)(B,{scene:x,options:f,frameRef:i,glide:!X})}):(0,z.jsx)(`div`,{className:`cvs-stage`,"data-aspect":`16:9`,children:(0,z.jsx)(`div`,{className:`cvs-empty`,role:`status`,children:`Preparing preview…`})}),Z&&(0,z.jsx)(`div`,{className:`shm-controls`,children:(0,z.jsx)(`button`,{type:`button`,className:`shm-sound`,"data-on":I,onClick:()=>L(e=>!e),"aria-pressed":I,title:I?`Play preview`:`Pause preview`,children:I?(0,z.jsx)(a.play,{style:{width:17,height:17}}):(0,z.jsx)(a.pause,{style:{width:17,height:17}})})})]})}),se&&(0,z.jsx)(`div`,{className:`cvs-capture-host`,"data-size":f.size,"aria-hidden":`true`,inert:!0,children:(0,z.jsx)(B,{scene:x,options:f,frameRef:e=>{q.current=e}})})]})}export{W as ConversationVideoStudio};
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{h as r,u as i}from"./index-CfcUMOBf.js";import{n as a}from"./icons-gLFQTv74.js";import{t as o}from"./TopicCanvas-DkzJORfl.js";import{t as s}from"./motion-BY_Egaxm.js";import{t as c}from"./toast-BBNs2h3L.js";import{t as l}from"./Presence-CKSoyuhE.js";import{a as u,c as d,i as f,r as p,t as m}from"./capture-CL9ENM-c.js";import{i as ee,n as te,r as ne,t as re}from"./share-kW3pZ027.js";import{t as ie}from"./FeatureUseNotice-CwHstxBh.js";import{r as h}from"./history-D2EH2X6D.js";import{t as g}from"./replay-rSsGKjEc.js";import"./canvas-BlkTFnVo.js";import{t as _}from"./AnnotationLayer-IiuYsoSa.js";var v=e(),y=t(),b=18e4,x=650,S=350;function C(e){let t=[e.spoken??e.narration,...e.tour.map(e=>e.saySpoken??e.say??``)].reduce((e,t)=>e+t.trim().length,0);return 1e3+Math.max(1800,t/14*1e3)}function ae(e){return e.reduce((e,t)=>e+C(t),0)}function oe(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.topicShift===!0||n?.topicShift===void 0&&n?.mode===`replace`)return t}return 0}function w(e,t,n){let r=n.spans[e+1];return r?r.startMs:x+Math.max(0,n.durationMs-x-S)*(e+1)/(t+1)}function T(e,t,n){let r=[],i=0;return e.forEach((e,a)=>{let o=t[a];if(!o)return;let s=g(e),c=s.cues.map((e,t)=>w(t,s.cues.length,o)),l=[0,x,...c,o.durationMs].map(e=>Math.max(0,Math.min(o.durationMs,e))).filter((e,t,n)=>t===0||e>n[t-1]),u=[];for(let t=0;t<l.length-1;t++){let d=l[t],f=l[t+1],p=c.findIndex(e=>e===d),m=p>=0?s.cues[p]:void 0;m&&n.penMarks&&(u=[...u,...m.marks.map((t,n)=>({spot:m.spot,line:m.say,mark:t,delayMs:n*240,...t.kind===`connect`&&typeof t.onIndex==`number`?{toSpot:e.spec.blocks[t.onIndex]?.id}:{}}))]);let ee=[...o.spans].reverse().find(e=>e.startMs<=d&&e.endMs>d);r.push({frame:e,turnIndex:a,startMs:i+d,durationMs:Math.max(1,f-d),spot:n.spotlights?m?.spot??null:null,caption:n.captions?ee?.text??null:null,ink:u,questionOnly:t===0})}i+=o.durationMs}),r}var E=24e3,D=.65,O=.18,k=.35,se=.89,A=6,j=class extends Error{turnIndex;question;constructor(e,t){super(`Narration is unavailable for “${t||`turn ${e+1}`}”.`),this.turnIndex=e,this.question=t,this.name=`RequiredConversationAudioError`}};function M(e){return[e.spoken??e.narration,...e.tour.map(e=>e.saySpoken??e.say??``)].map(e=>e.trim()).filter(Boolean)}function N(e){return e.trim().replace(/\s+/g,` `)}function P(e,t){let n=M(e);return n.length>0&&t.pcm.length>0&&t.spans.length===n.length&&n.every((e,n)=>N(t.spans[n]?.text??``)===N(e)&&t.spans[n].t1>t.spans[n].t0)}function F(e){let t=e.spans.map(e=>({text:e.text,startMs:Math.round((D+e.t0)*1e3),endMs:Math.round((D+e.t1)*1e3)}));return{lines:[{text:t.map(e=>e.text).join(` `),pcm:e.pcm,rate:e.sampleRate}],durationS:D+e.duration+k,spans:t}}async function I(e,t,n){let r=M(e);if(!r.length)throw new j(t,e.question);let i=[];for(let a of r){if(n?.aborted)throw new DOMException(`Cancelled`,`AbortError`);let r=await d(a,n);if(n?.aborted)throw new DOMException(`Cancelled`,`AbortError`);if(!r.length)throw new j(t,e.question);i.push({text:a,pcm:r,rate:E})}let a=[],o=D;for(let e of i){let t=o;o+=e.pcm.length/e.rate,a.push({text:e.text,startMs:Math.round(t*1e3),endMs:Math.round(o*1e3)}),o+=O}return{lines:i,durationS:o+k,spans:a}}async function ce(e,t,n){let r=i();if(!r||typeof OfflineAudioContext>`u`)throw Error(`audio-encoding-unavailable`);let a=[];for(let r=0;r<e.length;r++){let i=e[r],o=t(i);a.push(o&&P(i,o)?F(o):await I(i,r,n))}let o=a.reduce((e,t)=>e+t.durationS,0);if(o*1e3>18e4)throw Error(`conversation-too-long`);let s=0;for(let e of a)for(let t of e.lines)for(let e=0;e<t.pcm.length;e++)s=Math.max(s,Math.abs(t.pcm[e]));let c=s>0?Math.min(A,se/s):1,l=new OfflineAudioContext(1,Math.ceil(o*r.sampleRate),r.sampleRate),u=l.createGain();u.gain.value=c,u.connect(l.destination);let d=0;for(let e of a){let t=d+D;for(let n of e.lines){let e=l.createBuffer(1,n.pcm.length,n.rate);e.getChannelData(0).set(n.pcm);let r=l.createBufferSource();r.buffer=e,r.connect(u),r.start(t),t+=n.pcm.length/n.rate+O}d+=e.durationS}return{buffer:await l.startRendering(),turns:a.map(e=>({durationMs:Math.round(e.durationS*1e3),spans:e.spans})),durationMs:Math.round(o*1e3)}}var le={"1080p":{width:1920,height:1080},"720p":{width:1280,height:720}};function L(e,t,n=r()){let{bitrate:i}=m(e,n);return t===`720p`?Math.round(i*.55):i}async function R(e){document.visibilityState===`hidden`&&await new Promise((t,n)=>{let r=()=>a(new DOMException(`Cancelled`,`AbortError`)),i=()=>{document.visibilityState!==`hidden`&&a()},a=a=>{document.removeEventListener(`visibilitychange`,i),e.removeEventListener(`abort`,r),a?n(a):t()};document.addEventListener(`visibilitychange`,i),e.addEventListener(`abort`,r,{once:!0})})}function ue(){return typeof document<`u`&&(typeof VideoEncoder<`u`&&typeof AudioEncoder<`u`||u()!==null)}async function de(e){let t=r(),n=le[e.size],i=e.scenes[0];i&&await e.applyScene(i,0);let a=getComputedStyle(e.el).backgroundColor,o=await f({el:e.el,audioBuffer:e.audioBuffer,aspect:`16:9`,dims:{w:n.width,h:n.height},quality:e.quality,bitrate:L(e.quality,e.size,t),background:a&&a!==`rgba(0, 0, 0, 0)`?a:void 0,maxDurationMs:e.durationMs}),s=performance.now();try{for(let t=1;t<e.scenes.length;t++){let n=e.scenes[t];for(;performance.now()-s<n.startMs;){if(e.signal.aborted)throw new DOMException(`Cancelled`,`AbortError`);await R(e.signal),await new Promise(e=>setTimeout(e,25))}await e.applyScene(n,t),e.onProgress?.({phase:`render`,completed:t+1,total:e.scenes.length})}for(;performance.now()-s<e.durationMs;){if(e.signal.aborted)throw new DOMException(`Cancelled`,`AbortError`);await R(e.signal),await new Promise(e=>setTimeout(e,25))}e.onProgress?.({phase:`encode`,completed:0,total:1});let t=await o.stop();return e.onProgress?.({phase:`ready`,completed:1,total:1}),{...t,...n}}catch(e){throw o.cancel(),e}}var z=n();function B({scene:e,options:t,frameRef:n,glide:r=!0}){let i=(0,v.useRef)(null),a=(0,v.useRef)(null),[s,c]=(0,v.useState)(0);(0,v.useEffect)(()=>(n?.(i.current),()=>n?.(null)),[n]),(0,v.useEffect)(()=>{let t=a.current;if(!t)return;let n=0;if(e?.spot){let r=[...t.querySelectorAll(`[data-spot-id]`)].find(t=>t.dataset.spotId===e.spot);if(!r)return;let i=t.getBoundingClientRect(),a=r.getBoundingClientRect();n=Math.max(0,t.scrollTop+a.top-i.top-(t.clientHeight-a.height)/2)}typeof t.scrollTo==`function`?t.scrollTo({top:n,behavior:r?`smooth`:`auto`}):t.scrollTop=n;let i=window.setTimeout(()=>c(e=>e+1),420);return()=>window.clearTimeout(i)},[e?.spot,e?.turnIndex,r]);let u=e?.questionOnly??!1,d=e?e.frame.question||e.frame.spec.title:``;return(0,z.jsx)(`div`,{ref:i,className:`cvs-stage`,"data-aspect":`16:9`,"data-question-only":u,"data-captioned":t.captions,children:e?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`header`,{className:`cvs-header`,children:[(0,z.jsxs)(`div`,{className:`cvs-brand`,children:[(0,z.jsx)(`span`,{className:`cvs-brand-dot`}),` Mavéa conversation`]}),(0,z.jsxs)(`div`,{className:`cvs-turn`,children:[`Turn `,e.turnIndex+1]}),(0,z.jsx)(`h2`,{children:d})]}),u?(0,z.jsxs)(`div`,{className:`cvs-ask`,children:[(0,z.jsx)(`span`,{className:`cvs-ask-eyebrow`,children:`Asked`}),(0,z.jsx)(`p`,{className:`cvs-ask-line`,children:d})]}):(0,z.jsxs)(`div`,{ref:a,className:`cvs-canvas`,children:[(0,z.jsx)(`div`,{className:`topic-wrap`,children:(0,z.jsx)(o,{data:e.frame.spec,spot:e.spot,built:{},onProve:()=>{}})},e.turnIndex),t.penMarks&&(0,z.jsx)(_,{spots:e.ink,within:i.current,revision:s})]}),t.captions&&e.caption&&(0,z.jsx)(`div`,{className:`cvs-caption`,children:e.caption}),t.presence&&(0,z.jsx)(`div`,{className:`cvs-presence`,children:(0,z.jsx)(l,{state:u?`thinking`:`speaking`})})]}):(0,z.jsx)(`div`,{className:`cvs-empty`,children:`Choose a turn to preview it.`})})}var fe=[{id:`1080p`,label:`1080p`,hint:`1920×1080`},{id:`720p`,label:`720p`,hint:`1280×720`}],pe=[{id:`balanced`,label:`Balanced`},{id:`high`,label:`High`},{id:`ultra`,label:`Ultra`}],V=650;function H(e=300){return Promise.race([(async()=>{await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e()))})(),new Promise(t=>window.setTimeout(t,e))])}var me=[{key:`captions`,label:`Captions`},{key:`spotlights`,label:`Spotlights`},{key:`penMarks`,label:`Pen marks`},{key:`presence`,label:`Mavéa`}];function U(e){let t=Math.max(0,Math.round(e/1e3));return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}function he(e){let t=(0,y.c)(12),{width:n,height:r,children:i}=e,a=(0,v.useRef)(null),[o,s]=(0,v.useState)(0),c,l;t[0]!==r||t[1]!==n?(c=()=>{let e=a.current;if(!e)return;let t=()=>{let{width:t,height:i}=e.getBoundingClientRect();!t||!i||s(Math.min(t/n,i/r))};if(t(),typeof ResizeObserver>`u`)return;let i=new ResizeObserver(t);return i.observe(e),()=>i.disconnect()},l=[n,r],t[0]=r,t[1]=n,t[2]=c,t[3]=l):(c=t[2],l=t[3]),(0,v.useLayoutEffect)(c,l);let u=`scale(${o})`,d=o?void 0:`hidden`,f;t[4]!==r||t[5]!==u||t[6]!==d||t[7]!==n?(f={width:n,height:r,transform:u,visibility:d},t[4]=r,t[5]=u,t[6]=d,t[7]=n,t[8]=f):f=t[8];let p;return t[9]!==i||t[10]!==f?(p=(0,z.jsx)(`div`,{ref:a,className:`cvs-viewport`,children:(0,z.jsx)(`div`,{className:`cvs-scaler`,style:f,children:i})}),t[9]=i,t[10]=f,t[11]=p):p=t[11],p}function ge(e){return e.map(e=>{let t=C(e);return{durationMs:t,spans:[{text:e.narration,startMs:650,endMs:Math.max(651,t-350)}]}})}function W({frames:e,retainedAudio:t,onShared:n,onBusyChange:r,frameRef:i}){let o=(0,v.useMemo)(()=>e.filter(e=>!!((e.spoken??e.narration).trim()||e.tour.some(e=>(e.saySpoken??e.say)?.trim()))),[e]),[l,u]=(0,v.useState)(()=>new Set(o.length?[h(o[o.length-1])]:[])),d=(0,v.useMemo)(()=>new Set(o.map(h)),[o]),[f,m]=(0,v.useState)({size:`1080p`,quality:`high`,captions:!0,spotlights:!0,penMarks:!0,presence:!0}),g=(0,v.useMemo)(()=>e.filter(e=>l.has(h(e))),[e,l]),_=(0,v.useMemo)(()=>ae(g),[g]),y=(0,v.useMemo)(()=>T(g,ge(g),f),[g,f]),[x,S]=(0,v.useState)(()=>y[0]??null),[C,w]=(0,v.useState)(null),[E,D]=(0,v.useState)(null),[O,k]=(0,v.useState)(null),[se,A]=(0,v.useState)(!1),[M,N]=(0,v.useState)(!1),[P,F]=(0,v.useState)(0),[I,L]=(0,v.useState)(!1),[R,W]=(0,v.useState)(!1),G=(0,v.useRef)(null),K=(0,v.useRef)(null),q=(0,v.useRef)(null),J=C!==null&&C.phase!==`ready`,Y=ue(),X=(0,v.useMemo)(()=>s(),[]),Z=M&&!J&&!X&&y.length>1;(0,v.useEffect)(()=>r?.(J),[J,r]),(0,v.useEffect)(()=>{if(!J){W(!1);return}let e=()=>W(document.visibilityState===`hidden`);return e(),document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[J]),(0,v.useEffect)(()=>N(!0),[]),(0,v.useEffect)(()=>{let e=X?y.findIndex(e=>!e.questionOnly):0;F(Math.max(0,e)),L(!1)},[y,X]),(0,v.useEffect)(()=>{J||S(y[P]??y[0]??null)},[y,P,J]),(0,v.useEffect)(()=>{if(!Z||I)return;let e=y[P]??y[0],t=window.setTimeout(()=>F(e=>(e+1)%y.length),Math.max(V,e?.durationMs??V));return()=>window.clearTimeout(t)},[Z,I,y,P]),(0,v.useEffect)(()=>()=>{G.current?.abort(),K.current?.dispose?.(),K.current=null,r?.(!1)},[r]);let _e=(0,v.useCallback)(async e=>{S(e),await H()},[]),Q=(0,v.useCallback)(()=>{K.current?.dispose?.(),K.current=null,D(null),w(null)},[]),ve=(0,v.useCallback)(async()=>{if(!g.length||_>18e4)return;let e=new AbortController;G.current=e,Q(),k(null),w({phase:`audio`,completed:0,total:g.length}),A(!0);try{await H();let n=q.current;if(!n)throw Error(`capture-stage-unavailable`);let r=await ce(g,t??(()=>null),e.signal),i=T(g,r.turns,f);if(!i.length)throw Error(`empty-video`);w({phase:`render`,completed:1,total:i.length});let a=await de({el:n,scenes:i,audioBuffer:r.buffer,durationMs:r.durationMs,size:f.size,quality:f.quality,signal:e.signal,applyScene:_e,onProgress:w});K.current=a,D(a),w(null)}catch(e){if(e?.name===`AbortError`){w(null);return}let t=e instanceof j?`${e.message} Check the local voice service, then retry.`:e instanceof Error&&e.message===`conversation-too-long`?`The voiced result is over three minutes. Remove a turn and retry.`:e instanceof Error&&e.message===`open-codec-unavailable`?`This browser cannot encode an approved open-media format (AV1/VP9/VP8 with Opus). Try the current Chrome, Edge, or Firefox.`:`The video could not be created in this browser. Your conversation is unchanged.`;k(t),w(null)}finally{A(!1)}},[_e,Q,_,f,t,g]),$=e=>{J||(u(new Set(e.map(h))),Q(),k(null))},ye=le[f.size],be=re(ee(g[0]?.spec.title||g[0]?.question,new Date),E?.type??``),xe=C?C.phase===`audio`?`Preparing required narration…`:C.phase===`render`?`Rendering scene ${C.completed} of ${C.total}…`:C.phase===`encode`?`Finishing the file…`:`Video ready`:``,Se=_>b;return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`div`,{className:`shm-panel cvs-panel`,children:[(0,z.jsx)(`div`,{className:`shm-eyebrow`,children:`▷ CONVERSATION VIDEO`}),(0,z.jsx)(`div`,{className:`cvs-title`,children:`Share this conversation.`}),(0,z.jsx)(`div`,{className:`shm-sub`,children:`Pick the turns worth sending. Mavéa narrates every one. The video renders locally in this browser and is never uploaded.`}),(0,z.jsx)(ie,{kind:`publishing`,from:`live`}),(0,z.jsxs)(`div`,{className:`cvs-presets`,children:[(0,z.jsx)(`button`,{type:`button`,onClick:()=>$(o.slice(-1)),disabled:J,children:`Current turn`}),(0,z.jsx)(`button`,{type:`button`,onClick:()=>$(e.slice(oe(e)).filter(e=>d.has(h(e)))),disabled:J,children:`Current topic`}),(0,z.jsx)(`button`,{type:`button`,onClick:()=>$(o),disabled:J,children:`All turns`})]}),(0,z.jsx)(`div`,{className:`cvs-turns`,role:`group`,"aria-label":`Conversation turns`,children:e.map((e,t)=>{let n=h(e),r=d.has(n);return(0,z.jsxs)(`label`,{className:`cvs-turn-card`,"data-selected":l.has(n),children:[(0,z.jsx)(`input`,{type:`checkbox`,checked:l.has(n),disabled:J||!r,onChange:()=>{u(e=>{let t=new Set(e);return t.has(n)?t.delete(n):t.add(n),t}),Q()}}),(0,z.jsx)(`span`,{className:`cvs-thumb`,"aria-hidden":`true`,children:e.spec.blocks.length}),(0,z.jsxs)(`span`,{className:`cvs-turn-copy`,children:[(0,z.jsx)(`strong`,{children:e.question||e.spec.title}),(0,z.jsxs)(`small`,{children:[new Date(e.at).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`}),r?``:` · no narration`]})]}),(0,z.jsx)(`span`,{className:`cvs-order`,children:t+1})]},n)})}),(0,z.jsxs)(`div`,{className:`shm-group`,children:[(0,z.jsx)(`div`,{className:`shm-label`,children:`Size`}),(0,z.jsx)(`div`,{className:`shm-chips`,children:fe.map(e=>(0,z.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":f.size===e.id,"aria-pressed":f.size===e.id,disabled:J,onClick:()=>{Q(),m(t=>({...t,size:e.id}))},title:e.hint,children:e.label},e.id))})]}),(0,z.jsxs)(`div`,{className:`shm-group`,children:[(0,z.jsx)(`div`,{className:`shm-label`,children:`Quality`}),(0,z.jsx)(`div`,{className:`shm-chips`,children:pe.map(e=>(0,z.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":f.quality===e.id,"aria-pressed":f.quality===e.id,disabled:J,onClick:()=>{Q(),m(t=>({...t,quality:e.id}))},title:p(e.id),children:e.label},e.id))})]}),(0,z.jsxs)(`div`,{className:`shm-group`,children:[(0,z.jsx)(`div`,{className:`shm-label`,children:`Include`}),(0,z.jsxs)(`div`,{className:`shm-chips`,children:[me.map(({key:e,label:t})=>(0,z.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":f[e],"aria-pressed":f[e],disabled:J,onClick:()=>{Q(),m(t=>({...t,[e]:!t[e]}))},children:t},e)),(0,z.jsx)(`span`,{className:`cvs-audio-lock`,children:`● Audio always on`})]})]}),(0,z.jsxs)(`div`,{className:`cvs-meter`,"data-over":Se,children:[(0,z.jsxs)(`span`,{children:[U(_),` selected`]}),(0,z.jsx)(`span`,{children:`3:00 max`}),(0,z.jsx)(`i`,{style:{width:`${Math.min(100,_/b*100)}%`}})]}),O&&(0,z.jsx)(`div`,{className:`cvs-error`,role:`alert`,children:O}),!Y&&(0,z.jsx)(`div`,{className:`cvs-error`,role:`alert`,children:`Video export needs an approved open video codec (AV1/VP9/VP8) and Opus audio. Try the current Chrome, Edge, or Firefox.`}),C&&(0,z.jsxs)(`div`,{className:`cvs-progress`,role:`status`,children:[xe,R&&(0,z.jsx)(`em`,{className:`cvs-paused`,children:`Paused while this window is in the background — come back to it and the render picks up where it left off.`})]}),E&&(0,z.jsxs)(`div`,{className:`cvs-result`,role:`status`,children:[(0,z.jsxs)(`strong`,{children:[`Ready · `,E.width,`×`,E.height]}),(0,z.jsxs)(`span`,{children:[U(E.durationMs),` · `,(E.blob.size/1048576).toFixed(1),` MB`]})]}),(0,z.jsx)(`div`,{className:`shm-actions`,children:E?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`button`,{type:`button`,className:`shm-btn shm-btn-primary`,onClick:()=>{K.current=null,te(E.blob,be,()=>void E.dispose?.()),D(null),c(`Saved to your downloads`,`good`),n?.()},children:`↓ Download video`}),typeof navigator<`u`&&typeof navigator.share==`function`&&(0,z.jsx)(`button`,{type:`button`,className:`shm-btn`,onClick:()=>{ne(E,{title:`Mavéa conversation`,filename:be}).then(e=>{e!==`cancelled`&&(K.current=null,D(null),e===`downloaded`&&c(`Saved to your downloads`,`good`),n?.())})},children:`Share`})]}):J?(0,z.jsx)(`button`,{type:`button`,className:`shm-btn`,onClick:()=>G.current?.abort(),children:`Cancel`}):(0,z.jsx)(`button`,{type:`button`,className:`shm-btn shm-btn-primary`,disabled:!g.length||Se||!Y,onClick:()=>void ve(),children:O?`Retry ${f.size} video`:`Create ${f.size} video`})})]}),(0,z.jsx)(`div`,{className:`shm-stage`,children:(0,z.jsxs)(`div`,{className:`shm-frame`,"data-aspect":`16:9`,children:[M?(0,z.jsx)(he,{width:ye.width,height:ye.height,children:(0,z.jsx)(B,{scene:x,options:f,frameRef:i,glide:!X})}):(0,z.jsx)(`div`,{className:`cvs-stage`,"data-aspect":`16:9`,children:(0,z.jsx)(`div`,{className:`cvs-empty`,role:`status`,children:`Preparing preview…`})}),Z&&(0,z.jsx)(`div`,{className:`shm-controls`,children:(0,z.jsx)(`button`,{type:`button`,className:`shm-sound`,"data-on":I,onClick:()=>L(e=>!e),"aria-pressed":I,title:I?`Play preview`:`Pause preview`,children:I?(0,z.jsx)(a.play,{style:{width:17,height:17}}):(0,z.jsx)(a.pause,{style:{width:17,height:17}})})})]})}),se&&(0,z.jsx)(`div`,{className:`cvs-capture-host`,"data-size":f.size,"aria-hidden":`true`,inert:!0,children:(0,z.jsx)(B,{scene:x,options:f,frameRef:e=>{q.current=e}})})]})}export{W as ConversationVideoStudio};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TopicCanvas-DkzJORfl.js","assets/rolldown-runtime-DkW27tQK.js","assets/react-BZJXY1be.js","assets/compiler-runtime-qQQXpJgv.js","assets/jsx-runtime-DeHZSEgm.js","assets/preload-helper-CiWYd9n-.js","assets/index-CfcUMOBf.js","assets/useInView-CXTOAEV3.js","assets/coreIcons-BzqW7Qiz.js","assets/preloadableLazy-MIX1ApBW.js","assets/cachedImport-DW0gP14h.js","assets/lazyRetry-D50B1UMY.js","assets/theme-7IrMJ70_.js","assets/index-D4FIsool.css","assets/icons-gLFQTv74.js","assets/CanvasSkeleton-CcHXJqdq.js","assets/CanvasSkeleton-iy6DBvde.css","assets/FallbackCard-ap_4wOfj.js","assets/blockLabel-FogyzEQY.js","assets/FallbackCard-D_6ps1xA.css","assets/useFocusTrap-DBtkeyRy.js","assets/motion-BY_Egaxm.js","assets/useSpatialCanvas-CfmZOXXP.js","assets/richText-BkxJhl9N.js","assets/toast-BBNs2h3L.js","assets/format-q0LwBjID.js","assets/safeImageUrl-BINWXOTz.js","assets/useValidatedImage-BQi2c66o.js","assets/layout-CEoNLr-w.js","assets/catalog-BHjl-1uH.js","assets/http-Lar_UMKb.js","assets/lib-B7OE1ZQQ.js","assets/BlockEmpty-B82uCse8.js","assets/motion-DxHSlPN6.js","assets/lib-DMAxsZKm.css","assets/TopicCanvas-uRuHi99s.css","assets/generateLive-_x2tWkBH.js","assets/history-D2EH2X6D.js","assets/catalog-Db9GWM6N.js","assets/facts-BUGuVUIc.js","assets/blockTypes-DUDdP3pB.js","assets/streamParse-B-Gjwa9T.js","assets/liveSchema-B4bQtO88.js","assets/spokenText-C88IQJ0M.js","assets/sourceHost-BV3t2XDb.js","assets/annotations-CftUUB13.js","assets/screen-DFWKge3-.js","assets/attachments-BW-vki-E.js","assets/providers-B2OCzEo1.js","assets/info-CiqHR5cs.js","assets/shapes-C5fjibEc.js","assets/speed-K5_Ebj-8.js","assets/cache-CvbSI-pr.js","assets/number-Bmf7DqLj.js","assets/validate-CnG23_8J.js","assets/types-C42I77wh.js","assets/json-B0N3XRZU.js","assets/verbatim-DBTj9sPD.js","assets/receipts-ClyzFFGD.js","assets/citation-BsSvaaer.js","assets/officeDoc-GU6Cssjf.js","assets/csv-DAqzYXUs.js","assets/search-ZN7v_P5B.js","assets/store-BWLbFXiY.js","assets/contentVault-xfUwSJ3i.js","assets/keyVault-Aw5Y2PjT.js","assets/ready-DZY1bETr.js","assets/now-C9-UAzTC.js","assets/useLiveConfig-DWz7BRdk.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{t as a}from"./preloadableLazy-MIX1ApBW.js";import{n as o,t as s}from"./theme-7IrMJ70_.js";import{k as c}from"./index-CfcUMOBf.js";import{n as l}from"./icons-gLFQTv74.js";import{t as u}from"./FeatureUseNotice-CwHstxBh.js";import{n as d}from"./history-D2EH2X6D.js";import{_ as f,a as p,g as m,l as h,o as g,p as _,r as v,s as y}from"./store-BfHRbVKz.js";import{r as b}from"./courseSeed-CZdNBTTs.js";import{i as x,n as S,r as C}from"./mastery-CUfDeuqO.js";/* empty css */import{CourseRail as w}from"./CourseRail-C8MJG-zf.js";var T=t(),E=e(),D=n();r();var O=a(()=>i(()=>import(`./TopicCanvas-DkzJORfl.js`).then(e=>e.n).then(e=>({default:e.TopicCanvas})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]))),k=O.Component,A=9e4;function j(){return(0,E.useSyncExternalStore)(f,y,y)}function M(){let e=b();if(e)return{courseId:e.courseId,lessonIdx:e.lessonIdx};try{let e=new URLSearchParams(window.location.hash.split(`?`)[1]??``),t=e.get(`c`)?.trim();if(!t)return null;let n=Number(e.get(`l`));return{courseId:t,lessonIdx:Number.isFinite(n)&&n>=0?Math.round(n):0}}catch{return null}}function N(e,t){try{let n=`#/course?c=${encodeURIComponent(e)}&l=${t}`;window.location.hash!==n&&window.history.replaceState(null,``,n)}catch{}}function P(e,t){let n=Date.now();return{id:d(n),question:t,narration:e.narration,...e.spoken?{spoken:e.spoken}:{},mode:`replace`,tour:(e.tour??[]).map(e=>({index:e.index,...e.say?{say:e.say}:{},...e.saySpoken?{saySpoken:e.saySpoken}:{},...e.mark?{mark:e.mark}:{},...e.marks?{marks:e.marks}:{}})),spec:e.spec,at:n}}function F(){"use no memo";(0,E.useEffect)(()=>s(o()),[]),j(),(0,E.useEffect)(()=>S(),[]);let e=(0,E.useRef)(M()),t=e.current?.courseId,n=t?g(t):void 0,[r,a]=(0,E.useState)(()=>{let t=e.current?.lessonIdx??0;return n?Math.min(Math.max(0,t),n.lessons.length-1):Math.max(0,t)}),[d,f]=(0,E.useState)(`loading`),[y,b]=(0,E.useState)(null),[T,F]=(0,E.useState)(``),[L,R]=(0,E.useState)(null),[V,H]=(0,E.useState)(!1),[U,W]=(0,E.useState)(null),G=(0,E.useRef)(null),K=(0,E.useCallback)(e=>{let n=t?g(t):void 0,r=n?.lessons[e];if(!n||!r)return;G.current?.ctrl.abort(),m(n.id,e),N(n.id,e);let a=`Lesson ${e+1}: ${r.title}`,o=p(n.id,r.id);if(O.preload().catch(()=>{}),o){G.current=null,b(o.spec),F(o.narration),R(null),H(!1),W(null),f(`ready`);return}b(null),F(``),R(null),H(!1),f(`loading`),W(null);let s={ctrl:new AbortController,timedOut:!1};G.current=s;let c=setTimeout(()=>{s.timedOut=!0,s.ctrl.abort()},A);(async()=>{try{let[t,o,c]=await Promise.all([i(()=>import(`./generateLive-_x2tWkBH.js`),__vite__mapDeps([36,18,28,29,37,38,5,1,39,40,41,42,14,4,43,26,44,45,46,47,48,30,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67])),i(()=>import(`./useLiveConfig-DWz7BRdk.js`).then(e=>e.d),__vite__mapDeps([68,1,2,3,49,65,48,30,40,47])),i(()=>import(`./streamParse-B-Gjwa9T.js`).then(e=>e.c),__vite__mapDeps([41,1]))]),l=x(n,e,h(n.id),C(n.topic)),u=o.toModelConfig(o.getLiveConfigV2()),d=``,p=``,m=()=>G.current===s&&!s.ctrl.signal.aborted,g=await t.generateLive(`Teach this lesson: "${r.title}" — ${r.goal}`,[],u,e=>{if(!m())return;d+=e;let t=c.extractNarrationProgress(d);if(!t)return;let n=c.nextSpeakableChunk(t.text,p.length,t.done);n.chunk&&(p=t.text.slice(0,n.consumed),F(p),f(`streaming`))},{lesson:l,signal:s.ctrl.signal,onPartial:e=>{m()&&(b(e.spec),e.narration&&(p=e.narration,F(e.narration)),f(`streaming`))},onPending:e=>{m()&&(R(e),e&&f(`streaming`))},onThinking:e=>{m()&&(H(e),e&&f(`streaming`))}});if(s.ctrl.signal.aborted&&!s.timedOut)return;if(s.timedOut){W(`Building this lesson took too long and was stopped — the model may be slow or rate-limited right now. Try again in a moment.`),f(`error`);return}if(g.error){W(g.error.message),f(`error`);return}v(n.id,r.id,P(g,a)),b(g.spec),F(g.narration),R(null),H(!1),W(null),f(`ready`)}catch{if(s.ctrl.signal.aborted&&!s.timedOut)return;W(s.timedOut?`Building this lesson took too long and was stopped — try again in a moment.`:`Couldn't build this lesson — check your connection and model settings, then try again.`),f(`error`)}finally{clearTimeout(c),G.current===s&&(G.current=null)}})()},[t]);(0,E.useEffect)(()=>(K(r),()=>G.current?.ctrl.abort()),[r,K]);let q=(0,E.useCallback)(e=>{let n=t?g(t):void 0,i=n?.lessons[r];!n||!i||_(n.id,i.id,e)},[t,r]),J=(0,E.useCallback)(()=>{window.location.hash=`#/courses`},[]);if(!n)return(0,D.jsx)(`div`,{className:`mavea-app clr-app`,children:(0,D.jsx)(`main`,{className:`clr-stage clr-stage-center`,children:(0,D.jsxs)(`div`,{className:`clr-empty`,children:[(0,D.jsx)(`div`,{className:`clr-empty-icon`,"aria-hidden":`true`,children:(0,D.jsx)(l.layers,{})}),(0,D.jsx)(`div`,{className:`clr-empty-head`,children:`This lesson isn’t here`}),(0,D.jsx)(`div`,{className:`clr-empty-sub`,children:`The course may have been removed, or the link is out of date. Head back and pick one to open.`}),(0,D.jsxs)(`button`,{type:`button`,className:`clr-btn clr-btn-primary`,onClick:J,children:[(0,D.jsx)(l.chevL,{}),` Back to courses`]})]})})});let Y=d===`loading`||d===`streaming`,X=h(n.id);return(0,D.jsx)(`div`,{className:`mavea-app clr-app`,children:(0,D.jsx)(`main`,{className:`clr-stage`,children:(0,D.jsxs)(`div`,{className:`clr-col`,children:[(0,D.jsx)(u,{kind:`learning`}),(0,D.jsx)(w,{course:n,lessonIdx:r,progress:X,onPrev:()=>a(e=>Math.max(0,e-1)),onNext:()=>a(e=>Math.min(n.lessons.length-1,e+1)),onCheckpoint:q,busy:Y},`${n.id}:${r}`),d===`loading`&&(0,D.jsx)(I,{lessonNumber:r+1,course:n}),d===`streaming`&&(0,D.jsx)(z,{narration:T,pendingShape:L,thinking:V}),d===`error`&&(0,D.jsx)(B,{message:U??`Something went wrong building this lesson.`,onRetry:()=>K(r)}),(d===`streaming`||d===`ready`)&&y&&(0,D.jsx)(`div`,{className:`clr-canvas`,children:(0,D.jsx)(c,{label:`Lesson canvas`,children:(0,D.jsx)(k,{data:y,spot:null,built:{},onProve:()=>{}})})})]})})})}function I(e){let t=(0,T.c)(8),{lessonNumber:n,course:r}=e,i=r.lessons[n-1],a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,D.jsxs)(`div`,{className:`clr-lens`,"aria-hidden":`true`,children:[(0,D.jsx)(`span`,{}),(0,D.jsx)(`span`,{}),(0,D.jsx)(`span`,{})]}),t[0]=a):a=t[0];let o;t[1]===n?o=t[2]:(o=(0,D.jsxs)(`div`,{className:`clr-state-head`,children:[`Building lesson `,n,`…`]}),t[1]=n,t[2]=o);let s;t[3]===i?s=t[4]:(s=i&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`div`,{className:`clr-state-sub`,children:i.goal}),(0,D.jsx)(`div`,{className:`clr-lesson-outline`,"aria-label":`Lesson outline`,children:i.objectives.slice(0,3).map(L)})]}),t[3]=i,t[4]=s);let c;return t[5]!==o||t[6]!==s?(c=(0,D.jsxs)(`div`,{className:`clr-state`,role:`status`,"aria-live":`polite`,children:[a,o,s]}),t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function L(e,t){return(0,D.jsxs)(`div`,{className:`clr-lesson-outline-row`,children:[(0,D.jsx)(`span`,{"aria-hidden":`true`,children:t+1}),(0,D.jsx)(`strong`,{children:e})]},e)}function R(e){return e?`Building ${e.replace(/[_-]+/g,` `)}`:`Building the next section`}function z(e){let t=(0,T.c)(11),{narration:n,pendingShape:r,thinking:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,D.jsx)(`span`,{className:`clr-stream-pulse`,"aria-hidden":`true`}),t[0]=a):a=t[0];let o;t[1]!==r||t[2]!==i?(o=i?`Thinking through the lesson`:R(r),t[1]=r,t[2]=i,t[3]=o):o=t[3];let s;t[4]===o?s=t[5]:(s=(0,D.jsxs)(`div`,{className:`clr-stream-label`,children:[o,`…`]}),t[4]=o,t[5]=s);let c;t[6]===n?c=t[7]:(c=n&&(0,D.jsx)(`p`,{children:n}),t[6]=n,t[7]=c);let l;return t[8]!==s||t[9]!==c?(l=(0,D.jsxs)(`div`,{className:`clr-stream`,role:`status`,"aria-live":`polite`,"aria-atomic":`false`,children:[a,(0,D.jsxs)(`div`,{className:`clr-stream-copy`,children:[s,c]})]}),t[8]=s,t[9]=c,t[10]=l):l=t[10],l}function B(e){let t=(0,T.c)(10),{message:n,onRetry:r}=e,i,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,D.jsx)(`div`,{className:`clr-state-icon clr-state-icon-warn`,"aria-hidden":`true`,children:(0,D.jsx)(l.alert,{})}),a=(0,D.jsx)(`div`,{className:`clr-state-head`,children:`Couldn’t build this lesson`}),t[0]=i,t[1]=a):(i=t[0],a=t[1]);let o;t[2]===n?o=t[3]:(o=(0,D.jsx)(`div`,{className:`clr-state-sub clr-state-error`,children:n}),t[2]=n,t[3]=o);let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,D.jsx)(l.refresh,{}),t[4]=s):s=t[4];let c;t[5]===r?c=t[6]:(c=(0,D.jsxs)(`button`,{type:`button`,className:`clr-btn clr-btn-primary`,onClick:r,children:[s,` Try again`]}),t[5]=r,t[6]=c);let u;return t[7]!==o||t[8]!==c?(u=(0,D.jsxs)(`div`,{className:`clr-state`,children:[i,a,o,c]}),t[7]=o,t[8]=c,t[9]=u):u=t[9],u}export{F as CourseLessonReader};
@@ -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{l as i,n as a}from"./useLiveConfig-9eJ7EM3B.js";import{i as o}from"./store-D2IJF4SA.js";import{d as s,i as c,n as l}from"./store-BfHRbVKz.js";import{t as u}from"./generateCourse-BIBbw-ZJ.js";import{n as d,t as f}from"./useSrsCards-C27o39fF.js";import{t as p}from"./deckLine-NBd3MyGT.js";var m=e(),h=t(),g=n();function _(){let e=(0,h.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,g.jsxs)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:1.7,"aria-hidden":!0,children:[(0,g.jsx)(`circle`,{cx:`6.5`,cy:`6.5`,r:`4`}),(0,g.jsx)(`line`,{x1:`10`,y1:`10`,x2:`14`,y2:`14`})]}),e[0]=t):t=e[0],t}function v(e){let t=(0,h.c)(20),{questions:n,onDone:i}=e,[a,o]=(0,m.useState)(0),[s,c]=(0,m.useState)(!1),l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=[],t[0]=l):l=t[0];let[u,d]=(0,m.useState)(l),[f,p]=(0,m.useState)(0),_;t[1]!==f||t[2]!==a||t[3]!==u||t[4]!==i||t[5]!==n?(_=e=>{let t=f+ +!!e,r=e?u:[...u,n[a].question];if(a+1>=n.length){i({total:n.length,correct:t,missedFronts:r,at:Date.now()});return}p(t),d(r),o(a+1),c(!1)},t[1]=f,t[2]=a,t[3]=u,t[4]=i,t[5]=n,t[6]=_):_=t[6];let v=_,y=n[a],b=a+1,x;t[7]!==n.length||t[8]!==b?(x=(0,g.jsxs)(`div`,{className:`cx-check-progress`,children:[`Question `,b,` of `,n.length]}),t[7]=n.length,t[8]=b,t[9]=x):x=t[9];let S;t[10]===y.question?S=t[11]:(S=(0,g.jsx)(`div`,{className:`cx-check-q`,children:y.question}),t[10]=y.question,t[11]=S);let C;t[12]!==v||t[13]!==y.answer||t[14]!==s?(C=s?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`div`,{className:`cx-check-a`,children:y.answer}),(0,g.jsxs)(`div`,{className:`cx-check-actions`,children:[(0,g.jsxs)(`button`,{type:`button`,className:`cx-btn cx-btn-miss`,onClick:()=>v(!1),children:[(0,g.jsx)(r.x,{}),` Missed it`]}),(0,g.jsxs)(`button`,{type:`button`,className:`cx-btn cx-btn-got`,onClick:()=>v(!0),children:[(0,g.jsx)(r.check,{}),` Got it`]})]})]}):(0,g.jsx)(`button`,{type:`button`,className:`cx-btn cx-btn-reveal`,onClick:()=>c(!0),children:`Show answer`}),t[12]=v,t[13]=y.answer,t[14]=s,t[15]=C):C=t[15];let w;return t[16]!==x||t[17]!==S||t[18]!==C?(w=(0,g.jsxs)(`div`,{className:`cx-check`,children:[x,S,C]}),t[16]=x,t[17]=S,t[18]=C,t[19]=w):w=t[19],w}function y({courseTitle:e}){"use no memo";f();let t=o().decks.find(t=>t.name===e);return t?(0,g.jsxs)(`a`,{className:`cx-deck-link`,href:d.deck(e),children:[(0,g.jsx)(r.layers,{}),p(t)]}):null}function b({course:e,lessonIdx:t,progress:n,onPrev:o,onNext:d,onCheckpoint:f,busy:p}){let h=e.lessons[t],[b,x]=(0,m.useState)(`idle`),[S,C]=(0,m.useState)(null),[w,T]=(0,m.useState)(null),E=(0,m.useRef)(null);(0,m.useEffect)(()=>()=>E.current?.abort(),[]);let D=(0,m.useCallback)(async()=>{if(!h)return;let n=c(e.id,h.id)??h.checkpoint;if(n?.length){C(n),T(null),x(`checking`);return}T(null),x(`loading`);let r=new AbortController;E.current=r;try{let n=i(a()),o=await u(e,t,n,r.signal);if(r.signal.aborted)return;l(e.id,h.id,o),C(o),x(`checking`)}catch(e){if(r.signal.aborted)return;T(e instanceof Error?e.message:`Couldn't write the checkpoint — try again in a moment.`),x(`error`)}finally{E.current===r&&(E.current=null)}},[e,h,t]);if(!h)return null;let O=e.lessons.length,k=n.lessons[h.id],A=k?.status===`done`,j=k?.checkpoint;return(0,g.jsxs)(`aside`,{className:`course-rail`,"aria-label":`Course: ${e.title}`,children:[(0,g.jsxs)(`div`,{className:`cx-top`,children:[(0,g.jsxs)(`button`,{type:`button`,className:`cx-back`,onClick:()=>{window.location.hash=`#/courses`},children:[(0,g.jsx)(r.chevL,{}),` Courses`]}),(0,g.jsxs)(`span`,{className:`cx-position`,children:[`Lesson `,t+1,` of `,O]}),A&&(0,g.jsxs)(`span`,{className:`cx-done`,children:[(0,g.jsx)(r.check,{}),` Done`]})]}),(0,g.jsxs)(`div`,{className:`cx-title-row`,children:[(0,g.jsx)(`span`,{className:`cx-course-title`,children:e.title}),(0,g.jsx)(`h2`,{className:`cx-lesson-title`,children:h.title})]}),h.objectives.length>0&&(0,g.jsx)(`ul`,{className:`cx-objectives`,children:h.objectives.map(e=>(0,g.jsx)(`li`,{children:e},e))}),b===`checking`&&S?.length?(0,g.jsx)(v,{questions:S,onDone:e=>{x(`idle`),C(null),f(e)}}):b===`loading`?(0,g.jsxs)(`div`,{className:`cx-check-pending`,role:`status`,"aria-live":`polite`,children:[(0,g.jsx)(`span`,{className:`cx-check-spinner`,"aria-hidden":`true`}),(0,g.jsx)(`span`,{children:`Writing your check…`})]}):b===`error`?(0,g.jsxs)(`div`,{className:`cx-check-failed`,role:`alert`,children:[(0,g.jsx)(`span`,{className:`cx-check-failed-msg`,children:w}),(0,g.jsx)(`button`,{type:`button`,className:`cx-link`,onClick:()=>void D(),children:`Retry`})]}):(0,g.jsxs)(`div`,{className:`cx-checkpoint-status`,children:[(0,g.jsx)(`span`,{className:j?s(j)?`cx-pass`:`cx-fail`:`cx-untaken`,children:j?`Checkpoint: ${j.correct}/${j.total}`:`Checkpoint not yet taken`}),(0,g.jsx)(`button`,{type:`button`,className:`cx-link`,onClick:()=>void D(),children:j?`Retake`:`Take checkpoint`})]}),(0,g.jsxs)(`div`,{className:`cx-secondary-links`,children:[(0,g.jsx)(y,{courseTitle:e.title}),(0,g.jsxs)(`button`,{type:`button`,className:`cx-zoom-link`,onClick:()=>{window.location.hash=`#/deepzoom?q=${encodeURIComponent(h.title)}`},children:[(0,g.jsx)(_,{}),` Zoom into this`]})]}),(0,g.jsxs)(`div`,{className:`cx-nav`,children:[(0,g.jsxs)(`button`,{type:`button`,className:`cx-btn`,onClick:o,disabled:!!p||t<=0,children:[(0,g.jsx)(r.chevL,{}),` Prev`]}),(0,g.jsxs)(`button`,{type:`button`,className:`cx-btn cx-btn-primary`,onClick:d,disabled:!!p||t>=O-1,children:[`Next `,(0,g.jsx)(r.chevR,{})]})]})]})}export{b as CourseRail};
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{l as i,n as a}from"./useLiveConfig-DWz7BRdk.js";import{i as o}from"./store-D2IJF4SA.js";import{d as s,i as c,n as l}from"./store-BfHRbVKz.js";import{t as u}from"./generateCourse-DU281tDE.js";import{n as d,t as f}from"./useSrsCards-C27o39fF.js";import{t as p}from"./deckLine-NBd3MyGT.js";var m=e(),h=t(),g=n();function _(){let e=(0,h.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,g.jsxs)(`svg`,{viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:1.7,"aria-hidden":!0,children:[(0,g.jsx)(`circle`,{cx:`6.5`,cy:`6.5`,r:`4`}),(0,g.jsx)(`line`,{x1:`10`,y1:`10`,x2:`14`,y2:`14`})]}),e[0]=t):t=e[0],t}function v(e){let t=(0,h.c)(20),{questions:n,onDone:i}=e,[a,o]=(0,m.useState)(0),[s,c]=(0,m.useState)(!1),l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=[],t[0]=l):l=t[0];let[u,d]=(0,m.useState)(l),[f,p]=(0,m.useState)(0),_;t[1]!==f||t[2]!==a||t[3]!==u||t[4]!==i||t[5]!==n?(_=e=>{let t=f+ +!!e,r=e?u:[...u,n[a].question];if(a+1>=n.length){i({total:n.length,correct:t,missedFronts:r,at:Date.now()});return}p(t),d(r),o(a+1),c(!1)},t[1]=f,t[2]=a,t[3]=u,t[4]=i,t[5]=n,t[6]=_):_=t[6];let v=_,y=n[a],b=a+1,x;t[7]!==n.length||t[8]!==b?(x=(0,g.jsxs)(`div`,{className:`cx-check-progress`,children:[`Question `,b,` of `,n.length]}),t[7]=n.length,t[8]=b,t[9]=x):x=t[9];let S;t[10]===y.question?S=t[11]:(S=(0,g.jsx)(`div`,{className:`cx-check-q`,children:y.question}),t[10]=y.question,t[11]=S);let C;t[12]!==v||t[13]!==y.answer||t[14]!==s?(C=s?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`div`,{className:`cx-check-a`,children:y.answer}),(0,g.jsxs)(`div`,{className:`cx-check-actions`,children:[(0,g.jsxs)(`button`,{type:`button`,className:`cx-btn cx-btn-miss`,onClick:()=>v(!1),children:[(0,g.jsx)(r.x,{}),` Missed it`]}),(0,g.jsxs)(`button`,{type:`button`,className:`cx-btn cx-btn-got`,onClick:()=>v(!0),children:[(0,g.jsx)(r.check,{}),` Got it`]})]})]}):(0,g.jsx)(`button`,{type:`button`,className:`cx-btn cx-btn-reveal`,onClick:()=>c(!0),children:`Show answer`}),t[12]=v,t[13]=y.answer,t[14]=s,t[15]=C):C=t[15];let w;return t[16]!==x||t[17]!==S||t[18]!==C?(w=(0,g.jsxs)(`div`,{className:`cx-check`,children:[x,S,C]}),t[16]=x,t[17]=S,t[18]=C,t[19]=w):w=t[19],w}function y({courseTitle:e}){"use no memo";f();let t=o().decks.find(t=>t.name===e);return t?(0,g.jsxs)(`a`,{className:`cx-deck-link`,href:d.deck(e),children:[(0,g.jsx)(r.layers,{}),p(t)]}):null}function b({course:e,lessonIdx:t,progress:n,onPrev:o,onNext:d,onCheckpoint:f,busy:p}){let h=e.lessons[t],[b,x]=(0,m.useState)(`idle`),[S,C]=(0,m.useState)(null),[w,T]=(0,m.useState)(null),E=(0,m.useRef)(null);(0,m.useEffect)(()=>()=>E.current?.abort(),[]);let D=(0,m.useCallback)(async()=>{if(!h)return;let n=c(e.id,h.id)??h.checkpoint;if(n?.length){C(n),T(null),x(`checking`);return}T(null),x(`loading`);let r=new AbortController;E.current=r;try{let n=i(a()),o=await u(e,t,n,r.signal);if(r.signal.aborted)return;l(e.id,h.id,o),C(o),x(`checking`)}catch(e){if(r.signal.aborted)return;T(e instanceof Error?e.message:`Couldn't write the checkpoint — try again in a moment.`),x(`error`)}finally{E.current===r&&(E.current=null)}},[e,h,t]);if(!h)return null;let O=e.lessons.length,k=n.lessons[h.id],A=k?.status===`done`,j=k?.checkpoint;return(0,g.jsxs)(`aside`,{className:`course-rail`,"aria-label":`Course: ${e.title}`,children:[(0,g.jsxs)(`div`,{className:`cx-top`,children:[(0,g.jsxs)(`button`,{type:`button`,className:`cx-back`,onClick:()=>{window.location.hash=`#/courses`},children:[(0,g.jsx)(r.chevL,{}),` Courses`]}),(0,g.jsxs)(`span`,{className:`cx-position`,children:[`Lesson `,t+1,` of `,O]}),A&&(0,g.jsxs)(`span`,{className:`cx-done`,children:[(0,g.jsx)(r.check,{}),` Done`]})]}),(0,g.jsxs)(`div`,{className:`cx-title-row`,children:[(0,g.jsx)(`span`,{className:`cx-course-title`,children:e.title}),(0,g.jsx)(`h2`,{className:`cx-lesson-title`,children:h.title})]}),h.objectives.length>0&&(0,g.jsx)(`ul`,{className:`cx-objectives`,children:h.objectives.map(e=>(0,g.jsx)(`li`,{children:e},e))}),b===`checking`&&S?.length?(0,g.jsx)(v,{questions:S,onDone:e=>{x(`idle`),C(null),f(e)}}):b===`loading`?(0,g.jsxs)(`div`,{className:`cx-check-pending`,role:`status`,"aria-live":`polite`,children:[(0,g.jsx)(`span`,{className:`cx-check-spinner`,"aria-hidden":`true`}),(0,g.jsx)(`span`,{children:`Writing your check…`})]}):b===`error`?(0,g.jsxs)(`div`,{className:`cx-check-failed`,role:`alert`,children:[(0,g.jsx)(`span`,{className:`cx-check-failed-msg`,children:w}),(0,g.jsx)(`button`,{type:`button`,className:`cx-link`,onClick:()=>void D(),children:`Retry`})]}):(0,g.jsxs)(`div`,{className:`cx-checkpoint-status`,children:[(0,g.jsx)(`span`,{className:j?s(j)?`cx-pass`:`cx-fail`:`cx-untaken`,children:j?`Checkpoint: ${j.correct}/${j.total}`:`Checkpoint not yet taken`}),(0,g.jsx)(`button`,{type:`button`,className:`cx-link`,onClick:()=>void D(),children:j?`Retake`:`Take checkpoint`})]}),(0,g.jsxs)(`div`,{className:`cx-secondary-links`,children:[(0,g.jsx)(y,{courseTitle:e.title}),(0,g.jsxs)(`button`,{type:`button`,className:`cx-zoom-link`,onClick:()=>{window.location.hash=`#/deepzoom?q=${encodeURIComponent(h.title)}`},children:[(0,g.jsx)(_,{}),` Zoom into this`]})]}),(0,g.jsxs)(`div`,{className:`cx-nav`,children:[(0,g.jsxs)(`button`,{type:`button`,className:`cx-btn`,onClick:o,disabled:!!p||t<=0,children:[(0,g.jsx)(r.chevL,{}),` Prev`]}),(0,g.jsxs)(`button`,{type:`button`,className:`cx-btn cx-btn-primary`,onClick:d,disabled:!!p||t>=O-1,children:[`Next `,(0,g.jsx)(r.chevR,{})]})]})]})}export{b as CourseRail};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/generateCourse-BIBbw-ZJ.js","assets/rolldown-runtime-DkW27tQK.js","assets/providers-DdJWf_PE.js","assets/http-Lar_UMKb.js","assets/blockTypes-CgNGx27_.js","assets/info-CiqHR5cs.js","assets/attachments-BW-vki-E.js","assets/useLiveConfig-9eJ7EM3B.js","assets/react-BZJXY1be.js","assets/compiler-runtime-qQQXpJgv.js","assets/keyVault-Aw5Y2PjT.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{n as a,r as o}from"./preloadableLazy-MIX1ApBW.js";import{n as s,t as c}from"./theme-f0mztBcq.js";import{A as l}from"./index-D1SPhBGd.js";import{n as u}from"./icons-gLFQTv74.js";import{t as d}from"./useFocusTrap-DBtkeyRy.js";import{t as f}from"./homeTarget-CsO8nY7z.js";import{t as p}from"./DropSelect-C3g0PjuN.js";import{i as m}from"./store-D2IJF4SA.js";import{_ as h,c as g,h as _,l as v,m as y,s as b}from"./store-BfHRbVKz.js";import{i as x,t as S}from"./courseSeed-CZdNBTTs.js";/* empty css */import{n as ee,t as te}from"./useSrsCards-C27o39fF.js";import{t as ne}from"./deckLine-NBd3MyGT.js";var re=t(),C=e(),w=n();r();var T;function E(){return T??=Promise.all([i(()=>import(`./generateCourse-BIBbw-ZJ.js`).then(e=>e.n),__vite__mapDeps([0,1,2,3,4,5,6])),i(()=>import(`./useLiveConfig-9eJ7EM3B.js`).then(e=>e.d),__vite__mapDeps([7,1,8,9,5,10,2,3,4,6]))]),T}function D(){E().catch(()=>{})}function O(){return(0,C.useSyncExternalStore)(h,b,b)}function ie(e,t){S({courseId:e,lessonIdx:t}),window.location.hash=`#/course`}function ae(e,t){let n=e.lessons.filter(e=>t.lessons[e.id]?.status===`done`).length;return n>=e.lessons.length?`complete`:n>0||t.current>0?`in-progress`:`new`}var oe={beginner:`Beginner`,intermediate:`Intermediate`,expert:`Expert`},k=[`Personal finance basics`,`How the internet works`,`Spanish for travel`];function A(e){let t=(0,re.c)(67),{course:n,progress:r,onRemove:i}=e,s=(0,C.useRef)(null),[c,l]=(0,C.useState)(!1),d=n.lessons.length,f;if(t[0]!==n.lessons||t[1]!==r.lessons){let e;t[3]===r.lessons?e=t[4]:(e=e=>r.lessons[e.id]?.status===`done`,t[3]=r.lessons,t[4]=e),f=n.lessons.filter(e),t[0]=n.lessons,t[1]=r.lessons,t[2]=f}else f=t[2];let p=f.length,h;t[5]!==p||t[6]!==d?(h=d?Math.round(p/d*100):0,t[5]=p,t[6]=d,t[7]=h):h=t[7];let g=h,_=ae(n,r),v=Math.max(0,Math.min(r.current,d-1)),y=n.lessons[v],b=`Lesson ${v+1} of ${d}`,x=_===`complete`?`Review`:_===`in-progress`?`Continue`:`Start course`;te();let S;t[8]===n.title?S=t[9]:(S=e=>e.name===n.title,t[8]=n.title,t[9]=S);let T=m().decks.find(S),E,D;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{let e=s.current;if(!e)return;let t=ue,n=()=>{t=o(le)};if(!(`IntersectionObserver`in window))return n(),t;let r=new IntersectionObserver(e=>{e.some(ce)&&(r.disconnect(),n())});return r.observe(e),()=>{r.disconnect(),t()}},D=[],t[10]=E,t[11]=D):(E=t[10],D=t[11]),(0,C.useEffect)(E,D);let O=`cr-card cr-card-${_}`,k;t[12]===n.level?k=t[13]:(k=n.level&&(0,w.jsx)(`span`,{className:`cr-badge`,children:oe[n.level]}),t[12]=n.level,t[13]=k);let A=`cr-status cr-status-`+_,j=_===`complete`?`Complete`:_===`in-progress`?`In progress`:`New`,M;t[14]!==A||t[15]!==j?(M=(0,w.jsx)(`span`,{className:A,children:j}),t[14]=A,t[15]=j,t[16]=M):M=t[16];let N;t[17]!==M||t[18]!==k?(N=(0,w.jsxs)(`div`,{className:`cr-card-top`,children:[k,M]}),t[17]=M,t[18]=k,t[19]=N):N=t[19];let P;t[20]===n.title?P=t[21]:(P=(0,w.jsx)(`h3`,{className:`cr-card-title`,children:n.title}),t[20]=n.title,t[21]=P);let F=n.subtitle||n.topic,I;t[22]===F?I=t[23]:(I=(0,w.jsx)(`p`,{className:`cr-card-sub`,children:F}),t[22]=F,t[23]=I);let L=`${n.title} progress`,R=`${p} of ${d} lessons complete`,z=`${g}%`,B;t[24]===z?B=t[25]:(B=(0,w.jsx)(`div`,{className:`cr-progress-fill`,style:{width:z}}),t[24]=z,t[25]=B);let V;t[26]!==g||t[27]!==L||t[28]!==R||t[29]!==B?(V=(0,w.jsx)(`div`,{className:`cr-progress`,role:`progressbar`,"aria-label":L,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":g,"aria-valuetext":R,children:B}),t[26]=g,t[27]=L,t[28]=R,t[29]=B,t[30]=V):V=t[30];let H;t[31]===b?H=t[32]:(H=(0,w.jsx)(`span`,{children:b}),t[31]=b,t[32]=H);let U;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,w.jsx)(`span`,{className:`cr-card-meta-dot`,"aria-hidden":`true`}),t[33]=U):U=t[33];let W;t[34]!==p||t[35]!==d?(W=(0,w.jsxs)(`span`,{children:[p,`/`,d,` done`]}),t[34]=p,t[35]=d,t[36]=W):W=t[36];let G;t[37]!==H||t[38]!==W?(G=(0,w.jsxs)(`div`,{className:`cr-card-meta`,children:[H,U,W]}),t[37]=H,t[38]=W,t[39]=G):G=t[39];let K;t[40]!==y||t[41]!==_?(K=y&&(0,w.jsxs)(`div`,{className:`cr-current-lesson`,children:[(0,w.jsx)(`span`,{children:_===`complete`?`Review from`:`Up next`}),(0,w.jsx)(`strong`,{children:y.title})]}),t[40]=y,t[41]=_,t[42]=K):K=t[42];let de=T&&(0,w.jsxs)(`a`,{className:`cr-deck-link`,href:ee.deck(n.title),children:[(0,w.jsx)(u.layers,{}),ne(T)]}),q;t[43]!==n.id||t[44]!==r.current?(q=()=>ie(n.id,r.current),t[43]=n.id,t[44]=r.current,t[45]=q):q=t[45];let J,Y;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(J=a(se),Y=(0,w.jsx)(u.play,{}),t[46]=J,t[47]=Y):(J=t[46],Y=t[47]);let X;t[48]!==x||t[49]!==q?(X=(0,w.jsxs)(`button`,{type:`button`,className:`cr-btn cr-btn-primary`,onClick:q,...J,children:[Y,` `,x]}),t[48]=x,t[49]=q,t[50]=X):X=t[50];let Z;t[51]!==c||t[52]!==i?(Z=c?(0,w.jsxs)(`div`,{className:`cr-delete-confirm`,role:`group`,"aria-label":`Confirm course deletion`,children:[(0,w.jsx)(`span`,{children:`Delete?`}),(0,w.jsx)(`button`,{type:`button`,className:`cr-delete-cancel`,onClick:()=>l(!1),children:`Cancel`}),(0,w.jsx)(`button`,{type:`button`,className:`cr-icon-btn cr-icon-danger`,"aria-label":`Confirm delete course`,onClick:i,children:(0,w.jsx)(u.check,{})})]}):(0,w.jsx)(`button`,{type:`button`,className:`cr-icon-btn`,"aria-label":`Delete course`,onClick:()=>l(!0),children:(0,w.jsx)(u.x,{})}),t[51]=c,t[52]=i,t[53]=Z):Z=t[53];let Q;t[54]!==X||t[55]!==Z?(Q=(0,w.jsxs)(`div`,{className:`cr-card-actions`,children:[X,Z]}),t[54]=X,t[55]=Z,t[56]=Q):Q=t[56];let $;return t[57]!==N||t[58]!==P||t[59]!==I||t[60]!==V||t[61]!==G||t[62]!==K||t[63]!==de||t[64]!==Q||t[65]!==O?($=(0,w.jsxs)(`article`,{className:O,ref:s,children:[N,P,I,V,G,K,de,Q]}),t[57]=N,t[58]=P,t[59]=I,t[60]=V,t[61]=G,t[62]=K,t[63]=de,t[64]=Q,t[65]=O,t[66]=$):$=t[66],$}function se(){return l(`#/course`)??Promise.resolve()}function ce(e){return e.isIntersecting}function le(){return l(`#/course`)??Promise.resolve()}function ue(){}function j({initialTopic:e,onClose:t}){let n=(0,C.useRef)(null),r=(0,C.useRef)(null);d(r);let[i,o]=(0,C.useState)(e??``),[s,c]=(0,C.useState)(``),[l,f]=(0,C.useState)(!1),[m,h]=(0,C.useState)(null),g=(0,C.useRef)(null);(0,C.useEffect)(()=>()=>g.current?.abort(),[]);let v=(0,C.useCallback)(()=>{g.current?.abort(),t()},[t]);(0,C.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(e.preventDefault(),v())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[v]);let y=(0,C.useRef)(null);(0,C.useEffect)(()=>{e?.trim()||y.current?.focus()},[]),(0,C.useEffect)(()=>{let e=n.current;if(!e)return;let t=t=>{t.target===e&&v()};return e.addEventListener(`pointerdown`,t),()=>e.removeEventListener(`pointerdown`,t)},[v]);let b=async e=>{if(!e||l)return;f(!0),h(null);let t=new AbortController;g.current=t;try{let[{generateCourse:n},{getLiveConfigV2:r,toModelConfig:i}]=await E(),a=await n(e,i(r()),{level:s||void 0,signal:t.signal});if(t.signal.aborted)return;_(a),ie(a.id,0)}catch(e){if(t.signal.aborted)return;h(e instanceof Error?e.message:`Something went wrong building that course.`),f(!1)}},x=async e=>{e.preventDefault(),await b(i.trim())};return(0,w.jsx)(`div`,{className:`cr-scrim`,ref:n,children:(0,w.jsxs)(`div`,{className:`cr-sheet`,ref:r,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`cr-sheet-title`,"aria-describedby":`cr-sheet-subtitle`,tabIndex:-1,children:[(0,w.jsxs)(`div`,{className:`cr-sheet-head`,children:[(0,w.jsx)(`div`,{className:`cr-sheet-mark`,"aria-hidden":`true`,children:(0,w.jsx)(u.layers,{})}),(0,w.jsxs)(`div`,{className:`cr-sheet-heading`,children:[(0,w.jsx)(`span`,{className:`cr-sheet-title`,id:`cr-sheet-title`,children:`New course`}),(0,w.jsx)(`span`,{className:`cr-sheet-subtitle`,id:`cr-sheet-subtitle`,children:`A tailored syllabus, built around what you want to understand.`})]}),(0,w.jsx)(`button`,{type:`button`,className:`cr-ed-close`,"aria-label":l?`Cancel building course`:`Close`,onClick:v,children:(0,w.jsx)(u.x,{})})]}),(0,w.jsxs)(`form`,{className:`cr-sheet-body`,"aria-busy":l,onSubmit:e=>void x(e),children:[(0,w.jsxs)(`p`,{className:`cr-legal-note`,children:[(0,w.jsx)(`strong`,{children:`Learning aid, not an authority.`}),` Lessons are AI-generated and may be wrong or incomplete. Verify consequential or professional topics with authoritative sources. `,(0,w.jsx)(`a`,{href:`#/legal?from=home`,children:`Details`})]}),(0,w.jsxs)(`label`,{className:`cr-field`,children:[(0,w.jsx)(`span`,{className:`cr-field-label`,children:`Topic`}),(0,w.jsx)(`input`,{ref:y,type:`text`,className:`cr-input`,placeholder:`e.g. linear algebra, the French Revolution, Rust ownership`,value:i,onFocus:D,onChange:e=>{D(),o(e.target.value)},disabled:l,autoComplete:`off`})]}),(0,w.jsx)(`div`,{className:`cr-topic-picks`,"aria-label":`Topic suggestions`,children:k.map(e=>(0,w.jsx)(`button`,{type:`button`,onClick:()=>o(e),disabled:l,children:e},e))}),(0,w.jsxs)(`div`,{className:`cr-field`,children:[(0,w.jsx)(`span`,{className:`cr-field-label`,children:`Starting level`}),(0,w.jsx)(p,{ariaLabel:`Starting level`,triggerClassName:`cr-input`,value:s,onChange:e=>c(e),disabled:l,focusOnMount:!!e?.trim(),options:[{value:``,label:`Pick for me`},{value:`beginner`,label:`Beginner`},{value:`intermediate`,label:`Intermediate`},{value:`expert`,label:`Expert`}]}),(0,w.jsx)(`span`,{className:`cr-field-hint`,children:`Pick for me lets Mavéa infer the right starting point from your topic.`})]}),m&&(0,w.jsx)(`div`,{className:`cr-error`,role:`alert`,children:m}),(0,w.jsx)(`button`,{type:`submit`,className:`cr-btn cr-btn-primary cr-btn-wide`,disabled:!i.trim()||l,...a(()=>E().then(()=>void 0)),children:l?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`span`,{className:`cr-spinner`,"aria-hidden":`true`}),` Building your syllabus…`]}):`Build course`})]})]})})}function M(){"use no memo";let e=f();(0,C.useEffect)(()=>c(s()),[]),O();let t=(0,C.useRef)(x()),[n,r]=(0,C.useState)(!!t.current),[i,a]=(0,C.useState)(t.current??``),o=g(),l=(e=``)=>{a(e),r(!0)};return(0,w.jsxs)(`div`,{className:`mavea-app cr-app`,children:[(0,w.jsxs)(`header`,{className:`cr-nav`,children:[(0,w.jsxs)(`button`,{type:`button`,className:`cr-nav-back`,onClick:()=>{window.location.hash=e.href},children:[(0,w.jsx)(u.chevL,{}),` `,e.label]}),(0,w.jsxs)(`div`,{className:`cr-nav-title`,children:[`Courses`,(0,w.jsxs)(`span`,{className:`cr-nav-sub`,children:[o.length,` course`,o.length===1?``:`s`]})]}),(0,w.jsxs)(`button`,{type:`button`,className:`cr-btn cr-btn-primary`,onClick:()=>l(),children:[(0,w.jsx)(u.plus,{}),` New course`]})]}),(0,w.jsx)(`main`,{className:`cr-main`,children:o.length===0?(0,w.jsxs)(`section`,{className:`cr-empty`,"aria-labelledby":`cr-empty-title`,children:[(0,w.jsxs)(`div`,{className:`cr-empty-copy`,children:[(0,w.jsx)(`div`,{className:`cr-empty-icon`,"aria-hidden":`true`,children:(0,w.jsx)(u.layers,{})}),(0,w.jsx)(`div`,{className:`cr-empty-eyebrow`,children:`No courses yet`}),(0,w.jsx)(`h1`,{className:`cr-empty-head`,id:`cr-empty-title`,children:`Build a clear path through anything`}),(0,w.jsx)(`p`,{className:`cr-empty-sub`,children:`Name what you want to understand. Mavéa maps the syllabus, teaches one focused lesson at a time, and turns missed checkpoints into review cards.`}),(0,w.jsxs)(`button`,{type:`button`,className:`cr-btn cr-btn-primary cr-empty-cta`,onClick:()=>l(),children:[(0,w.jsx)(u.plus,{}),` Build your first course`]}),(0,w.jsxs)(`div`,{className:`cr-starter-row`,"aria-label":`Try a topic`,children:[(0,w.jsx)(`span`,{children:`Or try`}),k.map(e=>(0,w.jsx)(`button`,{type:`button`,onClick:()=>l(e),children:e},e))]})]}),(0,w.jsxs)(`div`,{className:`cr-course-path`,"aria-label":`How a Mavéa course works`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{children:`01`}),(0,w.jsx)(`strong`,{children:`Shape the syllabus`}),(0,w.jsx)(`p`,{children:`A useful sequence, matched to your starting level.`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{children:`02`}),(0,w.jsx)(`strong`,{children:`Learn visually`}),(0,w.jsx)(`p`,{children:`Focused lessons use the clearest canvas for each idea.`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{children:`03`}),(0,w.jsx)(`strong`,{children:`Make it stick`}),(0,w.jsx)(`p`,{children:`Checkpoints and spaced review close the gaps.`})]})]})]}):(0,w.jsx)(`div`,{className:`cr-grid`,children:o.map(e=>(0,w.jsx)(A,{course:e,progress:v(e.id),onRemove:()=>y(e.id)},e.id))})}),n&&(0,w.jsx)(j,{initialTopic:i,onClose:()=>r(!1)})]})}export{M as CoursesApp};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/generateCourse-DU281tDE.js","assets/rolldown-runtime-DkW27tQK.js","assets/providers-B2OCzEo1.js","assets/http-Lar_UMKb.js","assets/blockTypes-DUDdP3pB.js","assets/info-CiqHR5cs.js","assets/attachments-BW-vki-E.js","assets/useLiveConfig-DWz7BRdk.js","assets/react-BZJXY1be.js","assets/compiler-runtime-qQQXpJgv.js","assets/keyVault-Aw5Y2PjT.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{n as a,r as o}from"./preloadableLazy-MIX1ApBW.js";import{n as s,t as c}from"./theme-7IrMJ70_.js";import{j as l}from"./index-CfcUMOBf.js";import{n as u}from"./icons-gLFQTv74.js";import{t as d}from"./useFocusTrap-DBtkeyRy.js";import{t as f}from"./homeTarget-CsO8nY7z.js";import{t as p}from"./DropSelect-C3uYlej-.js";import{i as m}from"./store-D2IJF4SA.js";import{_ as h,c as g,h as _,l as v,m as y,s as b}from"./store-BfHRbVKz.js";import{i as x,t as S}from"./courseSeed-CZdNBTTs.js";/* empty css */import{n as ee,t as te}from"./useSrsCards-C27o39fF.js";import{t as ne}from"./deckLine-NBd3MyGT.js";var re=t(),C=e(),w=n();r();var T;function E(){return T??=Promise.all([i(()=>import(`./generateCourse-DU281tDE.js`).then(e=>e.n),__vite__mapDeps([0,1,2,3,4,5,6])),i(()=>import(`./useLiveConfig-DWz7BRdk.js`).then(e=>e.d),__vite__mapDeps([7,1,8,9,5,10,2,3,4,6]))]),T}function D(){E().catch(()=>{})}function O(){return(0,C.useSyncExternalStore)(h,b,b)}function ie(e,t){S({courseId:e,lessonIdx:t}),window.location.hash=`#/course`}function ae(e,t){let n=e.lessons.filter(e=>t.lessons[e.id]?.status===`done`).length;return n>=e.lessons.length?`complete`:n>0||t.current>0?`in-progress`:`new`}var oe={beginner:`Beginner`,intermediate:`Intermediate`,expert:`Expert`},k=[`Personal finance basics`,`How the internet works`,`Spanish for travel`];function A(e){let t=(0,re.c)(67),{course:n,progress:r,onRemove:i}=e,s=(0,C.useRef)(null),[c,l]=(0,C.useState)(!1),d=n.lessons.length,f;if(t[0]!==n.lessons||t[1]!==r.lessons){let e;t[3]===r.lessons?e=t[4]:(e=e=>r.lessons[e.id]?.status===`done`,t[3]=r.lessons,t[4]=e),f=n.lessons.filter(e),t[0]=n.lessons,t[1]=r.lessons,t[2]=f}else f=t[2];let p=f.length,h;t[5]!==p||t[6]!==d?(h=d?Math.round(p/d*100):0,t[5]=p,t[6]=d,t[7]=h):h=t[7];let g=h,_=ae(n,r),v=Math.max(0,Math.min(r.current,d-1)),y=n.lessons[v],b=`Lesson ${v+1} of ${d}`,x=_===`complete`?`Review`:_===`in-progress`?`Continue`:`Start course`;te();let S;t[8]===n.title?S=t[9]:(S=e=>e.name===n.title,t[8]=n.title,t[9]=S);let T=m().decks.find(S),E,D;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{let e=s.current;if(!e)return;let t=ue,n=()=>{t=o(le)};if(!(`IntersectionObserver`in window))return n(),t;let r=new IntersectionObserver(e=>{e.some(ce)&&(r.disconnect(),n())});return r.observe(e),()=>{r.disconnect(),t()}},D=[],t[10]=E,t[11]=D):(E=t[10],D=t[11]),(0,C.useEffect)(E,D);let O=`cr-card cr-card-${_}`,k;t[12]===n.level?k=t[13]:(k=n.level&&(0,w.jsx)(`span`,{className:`cr-badge`,children:oe[n.level]}),t[12]=n.level,t[13]=k);let A=`cr-status cr-status-`+_,j=_===`complete`?`Complete`:_===`in-progress`?`In progress`:`New`,M;t[14]!==A||t[15]!==j?(M=(0,w.jsx)(`span`,{className:A,children:j}),t[14]=A,t[15]=j,t[16]=M):M=t[16];let N;t[17]!==M||t[18]!==k?(N=(0,w.jsxs)(`div`,{className:`cr-card-top`,children:[k,M]}),t[17]=M,t[18]=k,t[19]=N):N=t[19];let P;t[20]===n.title?P=t[21]:(P=(0,w.jsx)(`h3`,{className:`cr-card-title`,children:n.title}),t[20]=n.title,t[21]=P);let F=n.subtitle||n.topic,I;t[22]===F?I=t[23]:(I=(0,w.jsx)(`p`,{className:`cr-card-sub`,children:F}),t[22]=F,t[23]=I);let L=`${n.title} progress`,R=`${p} of ${d} lessons complete`,z=`${g}%`,B;t[24]===z?B=t[25]:(B=(0,w.jsx)(`div`,{className:`cr-progress-fill`,style:{width:z}}),t[24]=z,t[25]=B);let V;t[26]!==g||t[27]!==L||t[28]!==R||t[29]!==B?(V=(0,w.jsx)(`div`,{className:`cr-progress`,role:`progressbar`,"aria-label":L,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":g,"aria-valuetext":R,children:B}),t[26]=g,t[27]=L,t[28]=R,t[29]=B,t[30]=V):V=t[30];let H;t[31]===b?H=t[32]:(H=(0,w.jsx)(`span`,{children:b}),t[31]=b,t[32]=H);let U;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,w.jsx)(`span`,{className:`cr-card-meta-dot`,"aria-hidden":`true`}),t[33]=U):U=t[33];let W;t[34]!==p||t[35]!==d?(W=(0,w.jsxs)(`span`,{children:[p,`/`,d,` done`]}),t[34]=p,t[35]=d,t[36]=W):W=t[36];let G;t[37]!==H||t[38]!==W?(G=(0,w.jsxs)(`div`,{className:`cr-card-meta`,children:[H,U,W]}),t[37]=H,t[38]=W,t[39]=G):G=t[39];let K;t[40]!==y||t[41]!==_?(K=y&&(0,w.jsxs)(`div`,{className:`cr-current-lesson`,children:[(0,w.jsx)(`span`,{children:_===`complete`?`Review from`:`Up next`}),(0,w.jsx)(`strong`,{children:y.title})]}),t[40]=y,t[41]=_,t[42]=K):K=t[42];let de=T&&(0,w.jsxs)(`a`,{className:`cr-deck-link`,href:ee.deck(n.title),children:[(0,w.jsx)(u.layers,{}),ne(T)]}),q;t[43]!==n.id||t[44]!==r.current?(q=()=>ie(n.id,r.current),t[43]=n.id,t[44]=r.current,t[45]=q):q=t[45];let J,Y;t[46]===Symbol.for(`react.memo_cache_sentinel`)?(J=a(se),Y=(0,w.jsx)(u.play,{}),t[46]=J,t[47]=Y):(J=t[46],Y=t[47]);let X;t[48]!==x||t[49]!==q?(X=(0,w.jsxs)(`button`,{type:`button`,className:`cr-btn cr-btn-primary`,onClick:q,...J,children:[Y,` `,x]}),t[48]=x,t[49]=q,t[50]=X):X=t[50];let Z;t[51]!==c||t[52]!==i?(Z=c?(0,w.jsxs)(`div`,{className:`cr-delete-confirm`,role:`group`,"aria-label":`Confirm course deletion`,children:[(0,w.jsx)(`span`,{children:`Delete?`}),(0,w.jsx)(`button`,{type:`button`,className:`cr-delete-cancel`,onClick:()=>l(!1),children:`Cancel`}),(0,w.jsx)(`button`,{type:`button`,className:`cr-icon-btn cr-icon-danger`,"aria-label":`Confirm delete course`,onClick:i,children:(0,w.jsx)(u.check,{})})]}):(0,w.jsx)(`button`,{type:`button`,className:`cr-icon-btn`,"aria-label":`Delete course`,onClick:()=>l(!0),children:(0,w.jsx)(u.x,{})}),t[51]=c,t[52]=i,t[53]=Z):Z=t[53];let Q;t[54]!==X||t[55]!==Z?(Q=(0,w.jsxs)(`div`,{className:`cr-card-actions`,children:[X,Z]}),t[54]=X,t[55]=Z,t[56]=Q):Q=t[56];let $;return t[57]!==N||t[58]!==P||t[59]!==I||t[60]!==V||t[61]!==G||t[62]!==K||t[63]!==de||t[64]!==Q||t[65]!==O?($=(0,w.jsxs)(`article`,{className:O,ref:s,children:[N,P,I,V,G,K,de,Q]}),t[57]=N,t[58]=P,t[59]=I,t[60]=V,t[61]=G,t[62]=K,t[63]=de,t[64]=Q,t[65]=O,t[66]=$):$=t[66],$}function se(){return l(`#/course`)??Promise.resolve()}function ce(e){return e.isIntersecting}function le(){return l(`#/course`)??Promise.resolve()}function ue(){}function j({initialTopic:e,onClose:t}){let n=(0,C.useRef)(null),r=(0,C.useRef)(null);d(r);let[i,o]=(0,C.useState)(e??``),[s,c]=(0,C.useState)(``),[l,f]=(0,C.useState)(!1),[m,h]=(0,C.useState)(null),g=(0,C.useRef)(null);(0,C.useEffect)(()=>()=>g.current?.abort(),[]);let v=(0,C.useCallback)(()=>{g.current?.abort(),t()},[t]);(0,C.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(e.preventDefault(),v())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[v]);let y=(0,C.useRef)(null);(0,C.useEffect)(()=>{e?.trim()||y.current?.focus()},[]),(0,C.useEffect)(()=>{let e=n.current;if(!e)return;let t=t=>{t.target===e&&v()};return e.addEventListener(`pointerdown`,t),()=>e.removeEventListener(`pointerdown`,t)},[v]);let b=async e=>{if(!e||l)return;f(!0),h(null);let t=new AbortController;g.current=t;try{let[{generateCourse:n},{getLiveConfigV2:r,toModelConfig:i}]=await E(),a=await n(e,i(r()),{level:s||void 0,signal:t.signal});if(t.signal.aborted)return;_(a),ie(a.id,0)}catch(e){if(t.signal.aborted)return;h(e instanceof Error?e.message:`Something went wrong building that course.`),f(!1)}},x=async e=>{e.preventDefault(),await b(i.trim())};return(0,w.jsx)(`div`,{className:`cr-scrim`,ref:n,children:(0,w.jsxs)(`div`,{className:`cr-sheet`,ref:r,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`cr-sheet-title`,"aria-describedby":`cr-sheet-subtitle`,tabIndex:-1,children:[(0,w.jsxs)(`div`,{className:`cr-sheet-head`,children:[(0,w.jsx)(`div`,{className:`cr-sheet-mark`,"aria-hidden":`true`,children:(0,w.jsx)(u.layers,{})}),(0,w.jsxs)(`div`,{className:`cr-sheet-heading`,children:[(0,w.jsx)(`span`,{className:`cr-sheet-title`,id:`cr-sheet-title`,children:`New course`}),(0,w.jsx)(`span`,{className:`cr-sheet-subtitle`,id:`cr-sheet-subtitle`,children:`A tailored syllabus, built around what you want to understand.`})]}),(0,w.jsx)(`button`,{type:`button`,className:`cr-ed-close`,"aria-label":l?`Cancel building course`:`Close`,onClick:v,children:(0,w.jsx)(u.x,{})})]}),(0,w.jsxs)(`form`,{className:`cr-sheet-body`,"aria-busy":l,onSubmit:e=>void x(e),children:[(0,w.jsxs)(`p`,{className:`cr-legal-note`,children:[(0,w.jsx)(`strong`,{children:`Learning aid, not an authority.`}),` Lessons are AI-generated and may be wrong or incomplete. Verify consequential or professional topics with authoritative sources. `,(0,w.jsx)(`a`,{href:`#/legal?from=home`,children:`Details`})]}),(0,w.jsxs)(`label`,{className:`cr-field`,children:[(0,w.jsx)(`span`,{className:`cr-field-label`,children:`Topic`}),(0,w.jsx)(`input`,{ref:y,type:`text`,className:`cr-input`,placeholder:`e.g. linear algebra, the French Revolution, Rust ownership`,value:i,onFocus:D,onChange:e=>{D(),o(e.target.value)},disabled:l,autoComplete:`off`})]}),(0,w.jsx)(`div`,{className:`cr-topic-picks`,"aria-label":`Topic suggestions`,children:k.map(e=>(0,w.jsx)(`button`,{type:`button`,onClick:()=>o(e),disabled:l,children:e},e))}),(0,w.jsxs)(`div`,{className:`cr-field`,children:[(0,w.jsx)(`span`,{className:`cr-field-label`,children:`Starting level`}),(0,w.jsx)(p,{ariaLabel:`Starting level`,triggerClassName:`cr-input`,value:s,onChange:e=>c(e),disabled:l,focusOnMount:!!e?.trim(),options:[{value:``,label:`Pick for me`},{value:`beginner`,label:`Beginner`},{value:`intermediate`,label:`Intermediate`},{value:`expert`,label:`Expert`}]}),(0,w.jsx)(`span`,{className:`cr-field-hint`,children:`Pick for me lets Mavéa infer the right starting point from your topic.`})]}),m&&(0,w.jsx)(`div`,{className:`cr-error`,role:`alert`,children:m}),(0,w.jsx)(`button`,{type:`submit`,className:`cr-btn cr-btn-primary cr-btn-wide`,disabled:!i.trim()||l,...a(()=>E().then(()=>void 0)),children:l?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`span`,{className:`cr-spinner`,"aria-hidden":`true`}),` Building your syllabus…`]}):`Build course`})]})]})})}function M(){"use no memo";let e=f();(0,C.useEffect)(()=>c(s()),[]),O();let t=(0,C.useRef)(x()),[n,r]=(0,C.useState)(!!t.current),[i,a]=(0,C.useState)(t.current??``),o=g(),l=(e=``)=>{a(e),r(!0)};return(0,w.jsxs)(`div`,{className:`mavea-app cr-app`,children:[(0,w.jsxs)(`header`,{className:`cr-nav`,children:[(0,w.jsxs)(`button`,{type:`button`,className:`cr-nav-back`,onClick:()=>{window.location.hash=e.href},children:[(0,w.jsx)(u.chevL,{}),` `,e.label]}),(0,w.jsxs)(`div`,{className:`cr-nav-title`,children:[`Courses`,(0,w.jsxs)(`span`,{className:`cr-nav-sub`,children:[o.length,` course`,o.length===1?``:`s`]})]}),(0,w.jsxs)(`button`,{type:`button`,className:`cr-btn cr-btn-primary`,onClick:()=>l(),children:[(0,w.jsx)(u.plus,{}),` New course`]})]}),(0,w.jsx)(`main`,{className:`cr-main`,children:o.length===0?(0,w.jsxs)(`section`,{className:`cr-empty`,"aria-labelledby":`cr-empty-title`,children:[(0,w.jsxs)(`div`,{className:`cr-empty-copy`,children:[(0,w.jsx)(`div`,{className:`cr-empty-icon`,"aria-hidden":`true`,children:(0,w.jsx)(u.layers,{})}),(0,w.jsx)(`div`,{className:`cr-empty-eyebrow`,children:`No courses yet`}),(0,w.jsx)(`h1`,{className:`cr-empty-head`,id:`cr-empty-title`,children:`Build a clear path through anything`}),(0,w.jsx)(`p`,{className:`cr-empty-sub`,children:`Name what you want to understand. Mavéa maps the syllabus, teaches one focused lesson at a time, and turns missed checkpoints into review cards.`}),(0,w.jsxs)(`button`,{type:`button`,className:`cr-btn cr-btn-primary cr-empty-cta`,onClick:()=>l(),children:[(0,w.jsx)(u.plus,{}),` Build your first course`]}),(0,w.jsxs)(`div`,{className:`cr-starter-row`,"aria-label":`Try a topic`,children:[(0,w.jsx)(`span`,{children:`Or try`}),k.map(e=>(0,w.jsx)(`button`,{type:`button`,onClick:()=>l(e),children:e},e))]})]}),(0,w.jsxs)(`div`,{className:`cr-course-path`,"aria-label":`How a Mavéa course works`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{children:`01`}),(0,w.jsx)(`strong`,{children:`Shape the syllabus`}),(0,w.jsx)(`p`,{children:`A useful sequence, matched to your starting level.`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{children:`02`}),(0,w.jsx)(`strong`,{children:`Learn visually`}),(0,w.jsx)(`p`,{children:`Focused lessons use the clearest canvas for each idea.`})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`span`,{children:`03`}),(0,w.jsx)(`strong`,{children:`Make it stick`}),(0,w.jsx)(`p`,{children:`Checkpoints and spaced review close the gaps.`})]})]})]}):(0,w.jsx)(`div`,{className:`cr-grid`,children:o.map(e=>(0,w.jsx)(A,{course:e,progress:v(e.id),onRemove:()=>y(e.id)},e.id))})}),n&&(0,w.jsx)(j,{initialTopic:i,onClose:()=>r(!1)})]})}export{M as CoursesApp};
@@ -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{w as r}from"./index-D1SPhBGd.js";/* empty css */import{t as i}from"./useDashboards-BMcuCWoz.js";import{t as a}from"./useLedger-1WVXef68.js";import{o,r as s}from"./dataPending-lZUzUEo6.js";import{t as c}from"./TrackerTile-sYD2MM_4.js";var l=e(),u=t(),d=n(),f=3e4,p=12e3,m=3e3;function h(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`})}function g(e){let t=(0,u.c)(9),{state:n}=e;if(n.paused){let e;t[0]===n.resumesAt?e=t[1]:(e=h(n.resumesAt),t[0]=n.resumesAt,t[1]=e);let r;return t[2]===e?r=t[3]:(r=(0,d.jsxs)(`span`,{className:`dash-present-budget dash-present-budget--paused`,children:[`Paused · resumes `,e]}),t[2]=e,t[3]=r),r}let r=`dash-present-budget`+(n.amber?` dash-present-budget--amber`:``),i=n.amber?` · low`:``,a;return t[4]!==n.cap||t[5]!==n.used||t[6]!==r||t[7]!==i?(a=(0,d.jsxs)(`span`,{className:r,children:[n.used,`/`,n.cap,` searches today`,i]}),t[4]=n.cap,t[5]=n.used,t[6]=r,t[7]=i,t[8]=a):a=t[8],a}function _(e){let t=(0,u.c)(42),{onClose:n}=e,r=i(),h=a(),_=o(),b;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(b=[],t[0]=b):b=t[0],(0,l.useEffect)(y,b);let[x,S]=(0,l.useState)(v),C,w;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(C=()=>{let e=window.setInterval(()=>S(Date.now()),f);return()=>window.clearInterval(e)},w=[],t[1]=C,t[2]=w):(C=t[1],w=t[2]),(0,l.useEffect)(C,w);let[T,E]=(0,l.useState)(null),D,O;t[3]===r.length?(D=t[4],O=t[5]):(D=()=>{if(r.length<2){E(null);return}let e=window.matchMedia(`(prefers-reduced-motion: reduce)`),t,n=e=>{if(t!==void 0&&window.clearInterval(t),e){E(null);return}E(0),t=window.setInterval(()=>{E(e=>((e??-1)+1)%r.length)},p)};n(e.matches);let i=e=>n(e.matches);return e.addEventListener(`change`,i),()=>{e.removeEventListener(`change`,i),t!==void 0&&window.clearInterval(t)}},O=[r.length],t[3]=r.length,t[4]=D,t[5]=O),(0,l.useEffect)(D,O);let[k,A]=(0,l.useState)(!1),j,M;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>{let e,t=()=>{A(!1),e!==void 0&&window.clearTimeout(e),e=window.setTimeout(()=>A(!0),m)};return t(),window.addEventListener(`mousemove`,t),()=>{window.removeEventListener(`mousemove`,t),e!==void 0&&window.clearTimeout(e)}},M=[],t[6]=j,t[7]=M):(j=t[6],M=t[7]),(0,l.useEffect)(j,M);let N,P;t[8]===n?(N=t[9],P=t[10]):(N=()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},P=[n],t[8]=n,t[9]=N,t[10]=P),(0,l.useEffect)(N,P);let F;t[11]!==h||t[12]!==x||t[13]!==_.dailySearchBudget?(F=s(h,_.dailySearchBudget,x),t[11]=h,t[12]=x,t[13]=_.dailySearchBudget,t[14]=F):F=t[14];let I=F,L;t[15]===x?L=t[16]:(L=new Date(x).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`}),t[15]=x,t[16]=L);let R=L,z;t[17]===x?z=t[18]:(z=new Date(x).toLocaleDateString([],{weekday:`long`,month:`long`,day:`numeric`}),t[17]=x,t[18]=z);let B=z,V=`dash-present`+(k?` dash-present--cursor-hidden`:``),H;t[19]===R?H=t[20]:(H=(0,d.jsx)(`span`,{className:`dash-present-time`,children:R}),t[19]=R,t[20]=H);let U;t[21]===B?U=t[22]:(U=(0,d.jsx)(`span`,{className:`dash-present-date`,children:B}),t[21]=B,t[22]=U);let W;t[23]!==H||t[24]!==U?(W=(0,d.jsxs)(`div`,{className:`dash-present-clock`,children:[H,U]}),t[23]=H,t[24]=U,t[25]=W):W=t[25];let G;t[26]===I?G=t[27]:(G=(0,d.jsx)(g,{state:I}),t[26]=I,t[27]=G);let K;t[28]!==W||t[29]!==G?(K=(0,d.jsxs)(`header`,{className:`dash-present-head`,children:[W,G]}),t[28]=W,t[29]=G,t[30]=K):K=t[30];let q;t[31]!==I||t[32]!==r||t[33]!==x||t[34]!==T?(q=(0,d.jsx)(`div`,{className:`dash-present-body`,children:r.length===0?(0,d.jsx)(`p`,{className:`dash-present-empty`,children:`Nothing on watch yet.`}):(0,d.jsx)(`div`,{className:`dash-present-grid`,children:r.map((e,t)=>(0,d.jsx)(`div`,{className:`dash-present-tile-wrap`,"data-spotlight":T===null?void 0:t===T?`on`:`off`,children:(0,d.jsx)(c,{dashboard:e,now:x,paused:I.paused})},e.id))})}),t[31]=I,t[32]=r,t[33]=x,t[34]=T,t[35]=q):q=t[35];let J;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,d.jsx)(`p`,{className:`dash-present-hint`,children:`Esc or click anywhere to exit`}),t[36]=J):J=t[36];let Y;return t[37]!==n||t[38]!==V||t[39]!==K||t[40]!==q?(Y=(0,d.jsxs)(`div`,{className:V,role:`presentation`,onClick:n,children:[K,q,J]}),t[37]=n,t[38]=V,t[39]=K,t[40]=q,t[41]=Y):Y=t[41],Y}function v(){return Date.now()}function y(){return r(document)}export{_ as DashPresent};
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"./index-CfcUMOBf.js";/* empty css */import{t as i}from"./useDashboards-GafZIADI.js";import{t as a}from"./useLedger-1WVXef68.js";import{o,r as s}from"./dataPending-lZUzUEo6.js";import{t as c}from"./TrackerTile-CyPD0A6b.js";var l=e(),u=t(),d=n(),f=3e4,p=12e3,m=3e3;function h(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`})}function g(e){let t=(0,u.c)(9),{state:n}=e;if(n.paused){let e;t[0]===n.resumesAt?e=t[1]:(e=h(n.resumesAt),t[0]=n.resumesAt,t[1]=e);let r;return t[2]===e?r=t[3]:(r=(0,d.jsxs)(`span`,{className:`dash-present-budget dash-present-budget--paused`,children:[`Paused · resumes `,e]}),t[2]=e,t[3]=r),r}let r=`dash-present-budget`+(n.amber?` dash-present-budget--amber`:``),i=n.amber?` · low`:``,a;return t[4]!==n.cap||t[5]!==n.used||t[6]!==r||t[7]!==i?(a=(0,d.jsxs)(`span`,{className:r,children:[n.used,`/`,n.cap,` searches today`,i]}),t[4]=n.cap,t[5]=n.used,t[6]=r,t[7]=i,t[8]=a):a=t[8],a}function _(e){let t=(0,u.c)(42),{onClose:n}=e,r=i(),h=a(),_=o(),b;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(b=[],t[0]=b):b=t[0],(0,l.useEffect)(y,b);let[x,S]=(0,l.useState)(v),C,w;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(C=()=>{let e=window.setInterval(()=>S(Date.now()),f);return()=>window.clearInterval(e)},w=[],t[1]=C,t[2]=w):(C=t[1],w=t[2]),(0,l.useEffect)(C,w);let[T,E]=(0,l.useState)(null),D,O;t[3]===r.length?(D=t[4],O=t[5]):(D=()=>{if(r.length<2){E(null);return}let e=window.matchMedia(`(prefers-reduced-motion: reduce)`),t,n=e=>{if(t!==void 0&&window.clearInterval(t),e){E(null);return}E(0),t=window.setInterval(()=>{E(e=>((e??-1)+1)%r.length)},p)};n(e.matches);let i=e=>n(e.matches);return e.addEventListener(`change`,i),()=>{e.removeEventListener(`change`,i),t!==void 0&&window.clearInterval(t)}},O=[r.length],t[3]=r.length,t[4]=D,t[5]=O),(0,l.useEffect)(D,O);let[k,A]=(0,l.useState)(!1),j,M;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(j=()=>{let e,t=()=>{A(!1),e!==void 0&&window.clearTimeout(e),e=window.setTimeout(()=>A(!0),m)};return t(),window.addEventListener(`mousemove`,t),()=>{window.removeEventListener(`mousemove`,t),e!==void 0&&window.clearTimeout(e)}},M=[],t[6]=j,t[7]=M):(j=t[6],M=t[7]),(0,l.useEffect)(j,M);let N,P;t[8]===n?(N=t[9],P=t[10]):(N=()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},P=[n],t[8]=n,t[9]=N,t[10]=P),(0,l.useEffect)(N,P);let F;t[11]!==h||t[12]!==x||t[13]!==_.dailySearchBudget?(F=s(h,_.dailySearchBudget,x),t[11]=h,t[12]=x,t[13]=_.dailySearchBudget,t[14]=F):F=t[14];let I=F,L;t[15]===x?L=t[16]:(L=new Date(x).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`}),t[15]=x,t[16]=L);let R=L,z;t[17]===x?z=t[18]:(z=new Date(x).toLocaleDateString([],{weekday:`long`,month:`long`,day:`numeric`}),t[17]=x,t[18]=z);let B=z,V=`dash-present`+(k?` dash-present--cursor-hidden`:``),H;t[19]===R?H=t[20]:(H=(0,d.jsx)(`span`,{className:`dash-present-time`,children:R}),t[19]=R,t[20]=H);let U;t[21]===B?U=t[22]:(U=(0,d.jsx)(`span`,{className:`dash-present-date`,children:B}),t[21]=B,t[22]=U);let W;t[23]!==H||t[24]!==U?(W=(0,d.jsxs)(`div`,{className:`dash-present-clock`,children:[H,U]}),t[23]=H,t[24]=U,t[25]=W):W=t[25];let G;t[26]===I?G=t[27]:(G=(0,d.jsx)(g,{state:I}),t[26]=I,t[27]=G);let K;t[28]!==W||t[29]!==G?(K=(0,d.jsxs)(`header`,{className:`dash-present-head`,children:[W,G]}),t[28]=W,t[29]=G,t[30]=K):K=t[30];let q;t[31]!==I||t[32]!==r||t[33]!==x||t[34]!==T?(q=(0,d.jsx)(`div`,{className:`dash-present-body`,children:r.length===0?(0,d.jsx)(`p`,{className:`dash-present-empty`,children:`Nothing on watch yet.`}):(0,d.jsx)(`div`,{className:`dash-present-grid`,children:r.map((e,t)=>(0,d.jsx)(`div`,{className:`dash-present-tile-wrap`,"data-spotlight":T===null?void 0:t===T?`on`:`off`,children:(0,d.jsx)(c,{dashboard:e,now:x,paused:I.paused})},e.id))})}),t[31]=I,t[32]=r,t[33]=x,t[34]=T,t[35]=q):q=t[35];let J;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(J=(0,d.jsx)(`p`,{className:`dash-present-hint`,children:`Esc or click anywhere to exit`}),t[36]=J):J=t[36];let Y;return t[37]!==n||t[38]!==V||t[39]!==K||t[40]!==q?(Y=(0,d.jsxs)(`div`,{className:V,role:`presentation`,onClick:n,children:[K,q,J]}),t[37]=n,t[38]=V,t[39]=K,t[40]=q,t[41]=Y):Y=t[41],Y}function v(){return Date.now()}function y(){return r(document)}export{_ as DashPresent};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/generateLive-_x2tWkBH.js","assets/blockLabel-FogyzEQY.js","assets/layout-CEoNLr-w.js","assets/catalog-BHjl-1uH.js","assets/history-D2EH2X6D.js","assets/catalog-Db9GWM6N.js","assets/preload-helper-CiWYd9n-.js","assets/rolldown-runtime-DkW27tQK.js","assets/facts-BUGuVUIc.js","assets/blockTypes-DUDdP3pB.js","assets/streamParse-B-Gjwa9T.js","assets/liveSchema-B4bQtO88.js","assets/icons-gLFQTv74.js","assets/jsx-runtime-DeHZSEgm.js","assets/spokenText-C88IQJ0M.js","assets/safeImageUrl-BINWXOTz.js","assets/sourceHost-BV3t2XDb.js","assets/annotations-CftUUB13.js","assets/screen-DFWKge3-.js","assets/attachments-BW-vki-E.js","assets/providers-B2OCzEo1.js","assets/http-Lar_UMKb.js","assets/info-CiqHR5cs.js","assets/shapes-C5fjibEc.js","assets/speed-K5_Ebj-8.js","assets/cache-CvbSI-pr.js","assets/number-Bmf7DqLj.js","assets/validate-CnG23_8J.js","assets/types-C42I77wh.js","assets/json-B0N3XRZU.js","assets/verbatim-DBTj9sPD.js","assets/receipts-ClyzFFGD.js","assets/citation-BsSvaaer.js","assets/officeDoc-GU6Cssjf.js","assets/csv-DAqzYXUs.js","assets/search-ZN7v_P5B.js","assets/store-BWLbFXiY.js","assets/contentVault-xfUwSJ3i.js","assets/keyVault-Aw5Y2PjT.js","assets/ready-DZY1bETr.js","assets/now-C9-UAzTC.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{n as a}from"./icons-gLFQTv74.js";import{t as o}from"./TopicCanvas-DkzJORfl.js";import{d as s}from"./CanvasSkeleton-CcHXJqdq.js";import{t as c}from"./useFocusTrap-DBtkeyRy.js";import{r as l}from"./sourceHost-BV3t2XDb.js";import"./canvas-BlkTFnVo.js";import{A as u,C as d,E as f,I as p,M as m,N as h,O as g,R as _,d as v,f as y,l as b,o as x,p as S,w as C}from"./store-B39HvB_l.js";import{l as w,n as T,r as ee,u as te}from"./useLiveConfig-DWz7BRdk.js";import{t as E}from"./route-D4kd-D3B.js";import{t as ne}from"./useDashboards-GafZIADI.js";import{a as D,n as re,o as O}from"./dataPending-lZUzUEo6.js";import{a as ie,c as k,i as ae,n as oe,t as A}from"./format-rPI6ZwwH.js";import{n as j,t as M}from"./tiles-pdNi6MGe.js";import{a as N,n as se,o as ce,t as le}from"./useDashboardLoop-B_YA5jLs.js";import{r as ue}from"./predictions-CkVKHq-5.js";import{i as de,n as P,r as fe}from"./confirmAdd-CZPBG1xe.js";import{t as pe}from"./planTracker-BI9z_0gW.js";import{t as me}from"./pin-BwWjjqmt.js";/* empty css */import{t as he}from"./CheckLogRail-BU_rmAFH.js";var F=t(),I=e();function ge(e,t){for(let n of document.elementsFromPoint(e,t)){let e=n.closest(`[data-dash-widget]`);if(e)return e.getAttribute(`data-dash-widget`)}return null}function _e(e,t){let[n,r]=(0,I.useState)(null),[i,a]=(0,I.useState)(null),o=(0,I.useRef)({working:null,draggingId:null,onCommit:t,sourceIds:e,cleanup:null});o.current.onCommit=t,o.current.sourceIds=e,(0,I.useEffect)(()=>()=>o.current.cleanup?.(),[]);let s=(0,I.useCallback)(e=>t=>{if(t.button!==0&&t.pointerType===`mouse`)return;t.preventDefault();let n=[...o.current.sourceIds];o.current.working=n,o.current.draggingId=e,r(n),a(e);let i=e=>{let t=ge(e.clientX,e.clientY),n=o.current.draggingId,i=o.current.working;if(!t||!n||!i||t===n)return;let a=i.indexOf(n),s=i.indexOf(t);if(a<0||s<0||a===s)return;let c=[...i];c.splice(s,0,c.splice(a,1)[0]),o.current.working=c,r(c)},s=()=>{window.removeEventListener(`pointermove`,i),window.removeEventListener(`pointerup`,s),window.removeEventListener(`pointercancel`,s),o.current.cleanup=null;let e=o.current.working;o.current.working=null,o.current.draggingId=null,r(null),a(null),e&&o.current.onCommit(e)};o.current.cleanup=s,window.addEventListener(`pointermove`,i),window.addEventListener(`pointerup`,s),window.addEventListener(`pointercancel`,s)},[]),c=(0,I.useCallback)(e=>t=>{if(t.key!==`ArrowUp`&&t.key!==`ArrowDown`)return;t.preventDefault();let n=o.current.sourceIds,r=n.indexOf(e),i=t.key===`ArrowUp`?r-1:r+1;if(r<0||i<0||i>=n.length)return;let a=[...n];a.splice(i,0,a.splice(r,1)[0]),o.current.onCommit(a)},[]);return{draggingId:i,order:n??e,handleProps:e=>({onPointerDown:s(e),onKeyDown:c(e),tabIndex:0,role:`button`,"aria-label":`Drag to reorder, or use arrow keys`})}}var ve={WATCHING:`watching`,CLEAR:`clear`,TRIGGERED:`triggered`,AWAITING:`awaiting`},ye={ORIGIN:`origin`,ADDED:`added`,LINKED:`linked`},be={CLEAR:1,WATCHING:.75,TRIGGERED:0,AWAITING:0};function xe(e){let t=e.tripwires.filter(e=>e.state!==`AWAITING`);if(t.length===0)return null;let n=t.reduce((e,t)=>e+be[t.state],0);return Math.round(100*n/t.length)}function L(e){return e===null?``:e>=80?`Tracking well`:e>=55?`Holding, with risks`:e>=30?`Slipping`:`Lines are breaking`}var R=new Set([`thesis`,`alignmentgauge`,`standingalerts`,`sourceslineage`]);function Se(e,t){let n=t.block.type;if(!R.has(n)){if(t.metricId&&n===`insight`){let n=e.metrics.find(e=>e.id===t.metricId);if(n){let e=n.lastValue===null?`—`:n.lastRaw??k(String(n.lastValue),n.unit),r=n.lastValue===null?`inferred`:`strong`,i=t.block.props;return{...t.block,props:{...i,stat:e,conf:r}}}}return t.block}let r=e.sources.find(e=>e.kind===`ORIGIN`);if(n===`thesis`){let n=e.tripwires[0],i={reasoning:e.thesis.text,...r?{asOf:r.title}:{},...n?{reconsiderIf:n.label,tripwireState:ve[n.state]}:{}};return{...t.block,props:i}}if(n===`alignmentgauge`){let n=xe(e),r={pct:n,band:L(n)};return{...t.block,props:r}}if(n===`standingalerts`){let n={alerts:e.tripwires.map(e=>({label:e.label,state:ve[e.state]}))};return{...t.block,props:n}}let i={rows:e.sources.map(e=>({kind:ye[e.kind],label:e.title,...e.contributed?{contributed:e.contributed}:{}}))};return{...t.block,props:i}}var z=n();function B(e){return{id:`dash-`+(e.id??e.type),workspace:`Dashboards`,title:``,sub:``,opener:``,context:[],blocks:[{...e,col:12,delay:0}],proof:null,extras:{},group:`home`,suggests:[],keywords:[]}}function Ce(e){let t=(0,F.c)(18),{dashboard:n,widget:r,editing:i,dragging:a,children:s,footer:c}=e,l;t[0]!==n||t[1]!==r?(l=Se(n,r),t[0]=n,t[1]=r,t[2]=l):l=t[2];let u=l,d;t[3]===u?d=t[4]:(d=B(u),t[3]=u,t[4]=d);let f=d,p=`dash-span-${r.span}`,m=i?`dash-tile--editing`:``,h=a?`dash-tile--dragging`:``,g;t[5]!==p||t[6]!==m||t[7]!==h?(g=[`dash-tile`,p,m,h].filter(Boolean),t[5]=p,t[6]=m,t[7]=h,t[8]=g):g=t[8];let _=g.join(` `),v;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(v={},t[9]=v):v=t[9];let y;t[10]===f?y=t[11]:(y=(0,z.jsx)(o,{data:f,spot:null,built:v,onProve:we}),t[10]=f,t[11]=y);let b;return t[12]!==s||t[13]!==_||t[14]!==c||t[15]!==y||t[16]!==r.id?(b=(0,z.jsxs)(`div`,{className:_,"data-dash-widget":r.id,children:[s,y,c]}),t[12]=s,t[13]=_,t[14]=c,t[15]=y,t[16]=r.id,t[17]=b):b=t[17],b}function we(){}function V(){return`w-`+Math.random().toString(36).slice(2,8)}function H(e){let t=new Set(e.widgets.map(e=>e.block.type));return[{key:`note`,label:`Note`,make:()=>({block:{type:`list`,col:12,id:V(),props:{title:`Note`,items:[`Add a note about this dashboard.`]}},span:2})},{key:`thesis`,label:`Reasoning note`,make:()=>({block:{type:`thesis`,col:12,id:V(),props:{reasoning:``}},span:2})},{key:`alignmentgauge`,label:`Alignment gauge`,make:()=>({block:{type:`alignmentgauge`,col:12,id:V(),props:{pct:null}},span:1})},{key:`standingalerts`,label:`Standing alerts`,make:()=>({block:{type:`standingalerts`,col:12,id:V(),props:{alerts:[]}},span:1})},{key:`sourceslineage`,label:`Sources`,make:()=>({block:{type:`sourceslineage`,col:12,id:V(),props:{rows:[]}},span:2})}].filter(e=>e.key===`note`||!t.has(e.key))}function Te(e){let t=(0,F.c)(26),{dashboard:n,onClose:r}=e,[i,a]=(0,I.useState)(`menu`),[o,s]=(0,I.useState)(``),[l,u]=(0,I.useState)(!1),[d,f]=(0,I.useState)(null),p=H(n),m=!!w(T()).apiKey,h;t[0]!==n||t[1]!==r?(h=e=>{let{block:t,span:i}=e.make(),a={id:V(),block:t,span:i,fromSource:`manual`};x(n.id,a),r()},t[0]=n,t[1]=r,t[2]=h):h=t[2];let g=h,_=(0,I.useRef)(!0),b,S;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>(_.current=!0,()=>{_.current=!1}),S=[],t[3]=b,t[4]=S):(b=t[3],S=t[4]),(0,I.useEffect)(b,S);let C;t[5]!==o||t[6]!==n||t[7]!==r||t[8]!==l?(C=async()=>{let e=o.trim();if(!e||l)return;if(n.metrics.length>=12||n.widgets.length>=12){f(`This board is full — remove a card or metric first, then track another number.`);return}u(!0),f(null);let t=await pe(e,w(T()));if(!_.current)return;let i=t.metrics[0];if(!i){u(!1),f(`No single number found in that — the Track bar on the Dashboards home builds richer trackers.`);return}let a=Date.now(),s={id:`m-${a}`,label:i.label,query:i.query,...i.unit?{unit:i.unit}:{},sourceQuote:{text:i.label,saidAt:a},lastValue:null,origin:`empty`},c={id:V(),block:{type:`insight`,col:12,id:`blk-${a}`,num:`1`,props:{title:s.label,stat:`—`,conf:`inferred`,summary:s.label}},span:1,metricId:s.id,fromSource:`manual`},d=P(n);y(n.id,{metrics:[s],tripwires:[],widgets:[c],source:{kind:`ADDED`,conversationId:`manual`,title:`Added by hand`,contributed:`Tracking ${s.label}`,at:a}}),v(n.id,a);let p=await de(n.id,d);if(_.current){if(p!==`confirmed`){u(!1),f(fe(p));return}r()}},t[5]=o,t[6]=n,t[7]=r,t[8]=l,t[9]=C):C=t[9];let ee=C,te=(0,I.useRef)(null),E;t[10]===r?E=t[11]:(E={onEscape:r},t[10]=r,t[11]=E),c(te,E);let ne=(0,I.useRef)(null),D,re;t[12]===i?(D=t[13],re=t[14]):(D=()=>{i===`track`?ne.current?.focus():te.current?.querySelector(`.dash-palette-item`)?.focus()},re=[i],t[12]=i,t[13]=D,t[14]=re),(0,I.useEffect)(D,re);let O,ie;t[15]===r?(O=t[16],ie=t[17]):(O=()=>{let e=te.current?.parentElement;if(!e)return;let t=t=>{e.contains(t.target)||r()};return document.addEventListener(`pointerdown`,t),()=>document.removeEventListener(`pointerdown`,t)},ie=[r],t[15]=r,t[16]=O,t[17]=ie),(0,I.useEffect)(O,ie);let k;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(k=e=>{let t=Array.from(te.current?.querySelectorAll(`.dash-palette-item`)??[]);t.length&&t[(t.indexOf(document.activeElement)+e+t.length)%t.length]?.focus()},t[18]=k):k=t[18];let ae=k,oe=i===`menu`?`menu`:`dialog`,A=i===`menu`?`Add a widget`:`Track a number`,j;t[19]===i?j=t[20]:(j=e=>{i===`menu`&&(e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),ae(e.key===`ArrowDown`?1:-1))},t[19]=i,t[20]=j);let M=i===`menu`?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`button`,{type:`button`,role:`menuitem`,className:`dash-palette-item dash-palette-lead`,onClick:()=>a(`track`),children:`+ Track a number`}),p.map(e=>(0,z.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`dash-palette-item`,onClick:()=>g(e),children:[`+ `,e.label]},e.key))]}):(0,z.jsxs)(`div`,{className:`dash-ptrack`,children:[(0,z.jsxs)(`div`,{className:`dash-ptrack-head`,children:[(0,z.jsx)(`button`,{type:`button`,className:`dash-ptrack-back`,"aria-label":`Back to widget list`,onClick:()=>a(`menu`),children:`←`}),(0,z.jsx)(`span`,{className:`dash-ptrack-kicker`,children:`Track a number`})]}),m?(0,z.jsxs)(`form`,{className:`dash-ptrack-form`,onSubmit:e=>{e.preventDefault(),ee()},children:[(0,z.jsx)(`input`,{ref:ne,className:`dash-ptrack-input`,value:o,placeholder:`BTC price, SF temperature, 10-year yield…`,"aria-label":`What number to track`,disabled:l,onChange:e=>s(e.target.value)}),d&&(0,z.jsx)(`p`,{className:`dash-ptrack-err`,children:d}),(0,z.jsx)(`button`,{type:`submit`,className:`dash-ptrack-go`,disabled:l||!o.trim(),children:l?`Planning…`:`Track · 1 call + 1 search`})]}):(0,z.jsxs)(`p`,{className:`dash-ptrack-gate`,children:[`A tracked number is fetched by real web searches on your own key — nothing is ever made up. `,(0,z.jsx)(`a`,{href:`#/live`,children:`Connect a model in Live`}),` first.`]})]}),N;return t[21]!==oe||t[22]!==A||t[23]!==j||t[24]!==M?(N=(0,z.jsx)(`div`,{ref:te,className:`dash-palette`,role:oe,"aria-label":A,tabIndex:-1,onKeyDown:j,children:M}),t[21]=oe,t[22]=A,t[23]=j,t[24]=M,t[25]=N):N=t[25],N}function Ee(e){let t=(0,F.c)(24),{dashboardId:n,metric:r}=e,i=r.lastValue===null?``:String(r.lastValue),[a,o]=(0,I.useState)(i),[s,c]=(0,I.useState)(i);i!==s&&(c(i),o(i));let l;t[0]!==n||t[1]!==r.id||t[2]!==r.lastValue||t[3]!==r.unit||t[4]!==a?(l=()=>{let e=Number(a.replace(/[^0-9.+-]/g,``));if(a.trim()===``||!Number.isFinite(e))return;let t=Date.now(),i=r.lastValue;m(n,r.id,e,k(String(e),r.unit),`user`,t);let o=S(n);if(o){let{tripwires:e}=ce(o,{[r.id]:i});h(n,e,t)}},t[0]=n,t[1]=r.id,t[2]=r.lastValue,t[3]=r.unit,t[4]=a,t[5]=l):l=t[5];let u=l,d;t[6]===u?d=t[7]:(d=e=>{e.preventDefault(),u()},t[6]=u,t[7]=d);let f=`Set ${r.label}…`,p=`Set ${r.label}`,g;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(g=e=>o(e.target.value),t[8]=g):g=t[8];let _;t[9]!==f||t[10]!==p||t[11]!==a?(_=(0,z.jsx)(`input`,{className:`dash-fill-input`,value:a,inputMode:`decimal`,placeholder:f,"aria-label":p,onChange:g}),t[9]=f,t[10]=p,t[11]=a,t[12]=_):_=t[12];let v;t[13]===r.unit?v=t[14]:(v=r.unit&&(0,z.jsx)(`span`,{className:`dash-fill-unit`,children:r.unit}),t[13]=r.unit,t[14]=v);let y;t[15]===a?y=t[16]:(y=a.trim(),t[15]=a,t[16]=y);let b=y===``,x;t[17]===b?x=t[18]:(x=(0,z.jsx)(`button`,{type:`submit`,className:`dash-fill-save`,disabled:b,children:`Save`}),t[17]=b,t[18]=x);let C;return t[19]!==x||t[20]!==d||t[21]!==_||t[22]!==v?(C=(0,z.jsxs)(`form`,{className:`dash-fill`,onSubmit:d,children:[_,v,x]}),t[19]=x,t[20]=d,t[21]=_,t[22]=v,t[23]=C):C=t[23],C}r();var De=()=>i(()=>import(`./generateLive-_x2tWkBH.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]));function Oe(){return!!w(T()).apiKey}function ke(e){let t=(0,F.c)(15),[n,r]=(0,I.useState)(!1),[i,a]=(0,I.useState)(null),[o,s]=(0,I.useState)(null),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=[],t[0]=c):c=t[0];let l=(0,I.useRef)(c),u=(0,I.useRef)(!1),d=(0,I.useRef)(null),f;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(f=()=>{d.current?.abort(),d.current=null,u.current=!1,l.current=[],r(!1),a(null),s(null)},t[1]=f):f=t[1];let p;t[2]===e.id?p=t[3]:(p=[e.id],t[2]=e.id,t[3]=p),(0,I.useEffect)(f,p);let m,h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m=()=>()=>d.current?.abort(),h=[],t[4]=m,t[5]=h):(m=t[4],h=t[5]),(0,I.useEffect)(m,h);let g;t[6]===e?g=t[7]:(g=t=>{let n=t.trim();if(!n||u.current||!Oe())return;u.current=!0,r(!0),s(n);let i=w(T()),o=e.widgets.map(t=>Se(e,t)),c=new AbortController;d.current=c,De().then(e=>{let{generateLive:t}=e;return t(n,l.current,i,void 0,{selectedBlocks:o,signal:c.signal,caps:{searchMode:`realtime`}})}).then(e=>{c.signal.aborted||(e.error||(l.current=[...l.current,{role:`user`,content:n},{role:`assistant`,content:e.narration}].slice(-8)),a(e))}).catch(()=>{c.signal.aborted||a(null)}).finally(()=>{c.signal.aborted||(u.current=!1,r(!1))})},t[6]=e,t[7]=g);let _=g,v;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(v=()=>{d.current?.abort(),u.current=!1,r(!1),a(null),s(null)},t[8]=v):v=t[8];let y=v,b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=Oe(),t[9]=b):b=t[9];let x;return t[10]!==o||t[11]!==n||t[12]!==i||t[13]!==_?(x={ready:b,loading:n,result:i,lastAsk:o,run:_,reset:y},t[10]=o,t[11]=n,t[12]=i,t[13]=_,t[14]=x):x=t[14],x}var Ae=/^(add|track|watch|monitor|follow)\b/i;function U(e){let t=e.trim();return t&&Ae.test(t)?`add`:`ask`}function W(e){let t=[];return e.tripwires.length>0&&t.push(`Are the numbers holding where I want?`,`Which alert is closest to triggering?`),e.metrics[0]&&t.push(`What does ${e.metrics[0].label} tell me right now?`),t.push(`What changed since the last update?`),t.slice(0,3)}function G(e,t,n){n.length!==0&&me({block:n,question:t,target:e,fromSource:`talk`,firstCheck:!1,source:{kind:`ADDED`,conversationId:`talk`,title:`Asked: “${t}”`,contributed:`Pinned ${Math.min(n.length,4)} from this question`,at:Date.now()}})}function je(e){let t=(0,F.c)(29),{dashboard:n}=e,r=ke(n),[i,a]=(0,I.useState)(``),[s,c]=(0,I.useState)(!1),[l,u]=(0,I.useState)(`ask`),d;t[0]===n?d=t[1]:(d=W(n),t[0]=n,t[1]=d);let f=d,p;t[2]===r?p=t[3]:(p=e=>{c(!1),u(U(e)),r.run(e),a(``)},t[2]=r,t[3]=p);let m=p,h,g;t[4]!==l||t[5]!==n.id||t[6]!==s||t[7]!==r.lastAsk||t[8]!==r.loading||t[9]!==r.result?(h=()=>{l===`add`&&!r.loading&&r.result&&!r.result.error&&r.result.spec.blocks.length>0&&!s&&(G(n.id,r.lastAsk??``,r.result.spec.blocks),c(!0))},g=[l,r.loading,r.result,r.lastAsk,s,n.id],t[4]=l,t[5]=n.id,t[6]=s,t[7]=r.lastAsk,t[8]=r.loading,t[9]=r.result,t[10]=h,t[11]=g):(h=t[10],g=t[11]),(0,I.useEffect)(h,g);let _;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,z.jsx)(`div`,{className:`card-eyebrow dash-talk-eyebrow`,children:`Talk to this dashboard`}),t[12]=_):_=t[12];let v;t[13]!==f||t[14]!==i||t[15]!==m||t[16]!==r.loading||t[17]!==r.ready?(v=r.ready?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{className:`dash-talk-chips`,children:f.map(e=>(0,z.jsxs)(`button`,{type:`button`,className:`dash-talk-chip`,disabled:r.loading,onClick:()=>m(e),children:[(0,z.jsx)(`span`,{className:`dash-talk-chip-orb`}),(0,z.jsxs)(`span`,{className:`dash-talk-chip-t`,children:[`“`,e,`”`]})]},e))}),(0,z.jsxs)(`form`,{className:`dash-talk-ask`,onSubmit:e=>{e.preventDefault(),m(i)},children:[(0,z.jsx)(`input`,{className:`dash-talk-input`,value:i,placeholder:`Ask a question, or type "add …" / "track …" to add it in one step`,onChange:e=>a(e.target.value),disabled:r.loading}),(0,z.jsx)(`button`,{type:`submit`,className:`dash-talk-send`,disabled:r.loading||!i.trim(),children:r.loading?`Thinking…`:`Ask`})]})]}):(0,z.jsxs)(`p`,{className:`dash-talk-gate`,children:[`Connect a model in `,(0,z.jsx)(`a`,{href:`#/live`,children:`Live`}),` to ask questions grounded in this dashboard.`]}),t[13]=f,t[14]=i,t[15]=m,t[16]=r.loading,t[17]=r.ready,t[18]=v):v=t[18];let y;t[19]!==l||t[20]!==n.id||t[21]!==s||t[22]!==r.lastAsk||t[23]!==r.loading||t[24]!==r.result?(y=r.lastAsk&&(0,z.jsxs)(`div`,{className:`dash-talk-answer`,children:[(0,z.jsxs)(`div`,{className:`dash-talk-q`,children:[`“`,r.lastAsk,`”`]}),r.loading?(0,z.jsx)(`div`,{className:`dash-talk-thinking`,children:`Mavéa is looking at your dashboard…`}):r.result?.error?(0,z.jsxs)(`div`,{className:`dash-talk-error`,children:[`That didn’t go through. Check your model in `,(0,z.jsx)(`a`,{href:`#/live`,children:`Live`}),` and try again.`]}):r.result?(0,z.jsxs)(z.Fragment,{children:[r.result.narration&&(0,z.jsx)(`p`,{className:`dash-talk-narration`,children:r.result.narration}),(0,z.jsx)(o,{data:r.result.spec,spot:null,built:{},onProve:K}),r.result.spec.blocks.length>0&&(s?(0,z.jsx)(`div`,{className:`dash-talk-pinned`,children:l===`add`?(0,z.jsx)(z.Fragment,{children:`Auto-added — this read like a command, not a question. Remove it from Edit layout if that’s wrong.`}):`Added to this dashboard ✓`}):l===`add`?null:(0,z.jsx)(`button`,{type:`button`,className:`dash-talk-pin`,onClick:()=>{G(n.id,r.lastAsk??``,r.result.spec.blocks),c(!0)},children:`+ Add this to the dashboard`}))]}):null]}),t[19]=l,t[20]=n.id,t[21]=s,t[22]=r.lastAsk,t[23]=r.loading,t[24]=r.result,t[25]=y):y=t[25];let b;return t[26]!==v||t[27]!==y?(b=(0,z.jsxs)(`section`,{className:`dash-talk`,children:[_,v,y]}),t[26]=v,t[27]=y,t[28]=b):b=t[28],b}function K(){}function q(e){if(!e.history||e.history.length<2)return null;let t=e.history[e.history.length-2].value,n=e.history[e.history.length-1].value;if(n===t)return null;let r=n>t?`up`:`down`,i=Math.round(Math.abs(n-t)*100)/100;if(i===0)return null;let a=Number.isInteger(i)?String(i):i.toFixed(2),o=e.unit===`$`?`$`:``,s=e.unit&&e.unit!==`$`?e.unit:``;return{direction:r,text:`${r===`up`?`+`:`-`}${o}${a}${s}`}}function J(e){return new Date(e).toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`})}function Y(e){if(e<=0)return`due now`;let t=Math.round(e/6e4);if(t<60)return`${t}m`;let n=Math.floor(t/60),r=t%60;if(n<24)return r?`${n}h ${r}m`:`${n}h`;let i=Math.floor(n/24),a=n%24;return a?`${i}d ${a}h`:`${i}d`}function Me({dashboard:e,now:t,checking:n=!1}){let r=(0,I.useMemo)(()=>e.metrics.find(e=>e.lastValue!==null)??e.metrics[0],[e.metrics]),i=ie(e);if(!i||!r)return null;let a=q(r),o=i.label||e.title,s=r.asOf??e.lastRefreshedAt??null,c=e.cadence.data===`manual`?`when you refresh`:Y(e.nextDataAt-t),l=r.history??[];return(0,z.jsxs)(`section`,{className:`card dash-hero`,"aria-label":`${o} — as of last check`,children:[(0,z.jsxs)(`div`,{className:`dash-hero-top`,children:[(0,z.jsxs)(`span`,{className:`dash-hero-eyebrow`,children:[o,`: as of last check`]}),(0,z.jsx)(`span`,{className:`dash-hero-meta`,children:n?`checking for new data…`:`as of ${s?J(s):`not yet checked`} / not real-time — next check ${c}`})]}),(0,z.jsxs)(`div`,{className:`dash-hero-value-row`,children:[(0,z.jsx)(`span`,{className:`dash-hero-value${n?` tile-value--checking`:``}`,children:i.value}),a&&(0,z.jsx)(`span`,{className:`dash-hero-delta dash-hero-delta--${a.direction}`,children:a.text})]}),(0,z.jsx)(`div`,{className:`dash-hero-chart`,children:l.length>=2?(0,z.jsx)(j,{points:l,tone:a?.direction??`flat`}):(0,z.jsx)(`p`,{className:`dash-hero-chart-empty`,children:`Not enough history yet for a chart.`})})]})}function Ne(e){let t=(0,F.c)(6),{dashboard:n}=e,[r,i]=te();if(O().keyNudgeShown||!ee(r)||r.rememberKey||!ae(n))return null;let a=Pe,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,z.jsx)(`p`,{className:`dash-key-nudge-text`,children:`Mavéa checks this with your key, which currently lives only in this tab. Keep it on this device (encrypted) so checks still work after a reload?`}),t[0]=o):o=t[0];let s;t[1]===i?s=t[2]:(s=(0,z.jsx)(`button`,{type:`button`,className:`dash-key-nudge-keep`,onClick:()=>{i({rememberKey:!0}),a()},children:`Keep key on this device`}),t[1]=i,t[2]=s);let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,z.jsx)(`button`,{type:`button`,className:`dash-key-nudge-dismiss`,onClick:a,children:`Not now`}),t[3]=c):c=t[3];let l;return t[4]===s?l=t[5]:(l=(0,z.jsxs)(`div`,{className:`card dash-key-nudge`,children:[o,(0,z.jsxs)(`div`,{className:`dash-key-nudge-actions`,children:[s,c]})]}),t[4]=s,t[5]=l),l}function Pe(){return D({keyNudgeShown:!0})}var Fe={hit:{label:`Called it ✓`,className:`is-hit`},miss:{label:`Missed ✗`,className:`is-miss`},unclear:{label:`Unclear`,className:`is-unclear`}};function Ie(e){let t=(0,F.c)(21),{dashboard:n,now:r}=e,i;t[0]===n.predictionHistory?i=t[1]:(i=n.predictionHistory??[],t[0]=n.predictionHistory,t[1]=i);let a=i,o=a.length>0?a[a.length-1]:null;if(!n.prediction&&!o)return null;let s;t[2]!==n.predictionHistory||t[3]!==r?(s=ue(n.predictionHistory,r),t[2]=n.predictionHistory,t[3]=r,t[4]=s):s=t[4];let c=s,l=o?Fe[o.result]:null,u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,z.jsx)(`span`,{className:`card-eyebrow dash-expects-eyebrow`,children:`Expects by next check`}),t[5]=u):u=t[5];let d;t[6]===n.prediction?d=t[7]:(d=n.prediction&&(0,z.jsx)(`p`,{className:`dash-expects-text`,children:n.prediction.text}),t[6]=n.prediction,t[7]=d);let f;t[8]!==l||t[9]!==o?(f=o&&l&&(0,z.jsxs)(`div`,{className:`dash-expects-grade`,children:[(0,z.jsxs)(`span`,{className:`dash-expects-chip ${l.className}`,children:[`Last call: `,l.label]}),(0,z.jsxs)(`p`,{className:`dash-expects-expected`,children:[`“`,o.expected,`”`]}),o.note&&(0,z.jsx)(`p`,{className:`dash-expects-note`,children:o.note})]}),t[8]=l,t[9]=o,t[10]=f):f=t[10];let p;t[11]!==c.hits||t[12]!==c.total?(p=c.total>0&&(0,z.jsxs)(`span`,{className:`dash-expects-tally`,children:[`Calls this week · `,c.hits,`/`,c.total]}),t[11]=c.hits,t[12]=c.total,t[13]=p):p=t[13];let m;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,z.jsx)(`span`,{className:`dash-expects-label`,children:`Predictions are free — written from checks you already paid for`}),t[14]=m):m=t[14];let h;t[15]===p?h=t[16]:(h=(0,z.jsxs)(`div`,{className:`dash-expects-foot`,children:[p,m]}),t[15]=p,t[16]=h);let g;return t[17]!==d||t[18]!==f||t[19]!==h?(g=(0,z.jsxs)(`div`,{className:`dash-expects`,children:[u,d,f,h]}),t[17]=d,t[18]=f,t[19]=h,t[20]=g):g=t[20],g}function Le(e){let t=(0,F.c)(23),{dashboard:n,now:r}=e,i=N(n.id);if(!(n.tripwires.length>0||n.lastVerdict||n.prediction||i))return null;let a=n.lastVerdict,o;t[0]!==n.tripwires||t[1]!==a?(o=a?n.tripwires.find(e=>e.id===a.tripwireId)??null:null,t[0]=n.tripwires,t[1]=a,t[2]=o):o=t[2];let s=o,c=!!n.lastVerdictError&&(n.lastVerdictAttemptAt??0)>(a?.at??0),l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,z.jsx)(`span`,{className:`card-eyebrow dash-lastcheck-eyebrow`,children:`From the last check`}),t[3]=l):l=t[3];let u;t[4]!==r||t[5]!==a?(u=a&&(0,z.jsx)(`span`,{className:`dash-lastcheck-when`,children:A(a.at,r).replace(/^updated /,`checked `)}),t[4]=r,t[5]=a,t[6]=u):u=t[6];let d;t[7]===u?d=t[8]:(d=(0,z.jsxs)(`div`,{className:`dash-lastcheck-head`,children:[l,u]}),t[7]=u,t[8]=d);let f;t[9]!==n||t[10]!==c||t[11]!==r||t[12]!==i||t[13]!==s||t[14]!==a?(f=a?(0,z.jsxs)(z.Fragment,{children:[s&&(0,z.jsxs)(`p`,{className:`dash-lastcheck-text dash-lastcheck-about`,children:[`About: `,s.label]}),i?(0,z.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-pending`,children:`Mavéa is reading the latest numbers…`}):c&&(0,z.jsxs)(`p`,{className:`dash-lastcheck-text dash-lastcheck-error`,children:[`A newer check just failed: `,n.lastVerdictError]}),(0,z.jsx)(`p`,{className:`dash-lastcheck-text`,children:a.text}),a.grounded===!1&&(0,z.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-qualifier`,children:`Based on background knowledge, not a fresh search.`}),a.sources&&a.sources.length>0&&(0,z.jsx)(`div`,{className:`dash-lastcheck-sources`,children:a.sources.map(X)})]}):i?(0,z.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-pending`,children:`Mavéa is reading the latest numbers…`}):c?(0,z.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-error`,children:n.lastVerdictError}):(0,z.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-muted`,children:oe(n,r)}),t[9]=n,t[10]=c,t[11]=r,t[12]=i,t[13]=s,t[14]=a,t[15]=f):f=t[15];let p;t[16]!==n||t[17]!==r?(p=(0,z.jsx)(Ie,{dashboard:n,now:r}),t[16]=n,t[17]=r,t[18]=p):p=t[18];let m;return t[19]!==d||t[20]!==f||t[21]!==p?(m=(0,z.jsxs)(`section`,{className:`dash-lastcheck`,"aria-label":`From the last check`,children:[d,f,p]}),t[19]=d,t[20]=f,t[21]=p,t[22]=m):m=t[22],m}function X(e){let t=l(e.url);return t?(0,z.jsx)(`a`,{className:`dash-lastcheck-source`,href:t,target:`_blank`,rel:`noopener noreferrer`,title:e.title,children:e.title},e.url):null}var Re=[{v:`15min`,label:`15M`},{v:`hourly`,label:`1H`},{v:`6h`,label:`6H`},{v:`daily`,label:`DAILY`},{v:`manual`,label:`MANUAL`}],ze={"15min":`Every 15 minutes`,hourly:`Hourly`,"6h":`Every 6 hours`,daily:`Daily`,manual:`Manual`};function Z(e){if(e===`manual`)return`Refreshes only when you ask — no automatic searches.`;let t=Math.round(1440/_[e]);return`${ze[e]} ≈ up to ~${t} searches/day while Mavéa is open. You provide the key and pay the search provider; a faster cadence can increase those charges. This is never real-time — each check is a snapshot.`}function Q(e){return new Date(e).toLocaleString(void 0,{weekday:`short`,hour:`numeric`,minute:`2-digit`})}function Be(e){let t=(0,F.c)(23),{dashboard:n,now:r}=e,i=n.cadence.data,a=n.cadence.window,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,z.jsx)(`div`,{className:`card-eyebrow`,children:`Check cadence`}),t[0]=o):o=t[0];let s;t[1]!==n.id||t[2]!==i?(s=Re.map(e=>(0,z.jsx)(`button`,{type:`button`,className:`dash-seg-opt`+(e.v===i?` is-active`:``),"aria-pressed":e.v===i,onClick:()=>u(n.id,{data:e.v}),children:e.label},e.v)),t[1]=n.id,t[2]=i,t[3]=s):s=t[3];let c;t[4]===s?c=t[5]:(c=(0,z.jsx)(`div`,{className:`dash-seg`,role:`group`,"aria-label":`Data refresh cadence`,children:s}),t[4]=s,t[5]=c);let l;t[6]===i?l=t[7]:(l=Z(i),t[6]=i,t[7]=l);let d;t[8]===l?d=t[9]:(d=(0,z.jsx)(`p`,{className:`dash-cadence-cost`,children:l}),t[8]=l,t[9]=d);let f;t[10]!==n.id||t[11]!==a?(f=a&&(0,z.jsxs)(`div`,{className:`dash-cadence-window`,children:[(0,z.jsxs)(`p`,{className:`dash-cadence-window-text`,children:[`Live window: `,(0,z.jsx)(`strong`,{children:a.label}),` · `,Q(a.startAt),`–`,Q(a.endAt)]}),(0,z.jsx)(`button`,{type:`button`,className:`dash-cadence-clear`,onClick:()=>C(n.id,null),children:`Clear`})]}),t[10]=n.id,t[11]=a,t[12]=f):f=t[12];let p;t[13]!==n.id||t[14]!==n.oneShotAt||t[15]!==n.oneShotLabel||t[16]!==r?(p=n.oneShotAt!==void 0&&(0,z.jsxs)(`div`,{className:`dash-cadence-oneshot`,children:[(0,z.jsx)(M,{targetAt:n.oneShotAt,now:r,label:n.oneShotLabel}),(0,z.jsx)(`button`,{type:`button`,className:`dash-cadence-clear`,onClick:()=>b(n.id),children:`Clear`})]}),t[13]=n.id,t[14]=n.oneShotAt,t[15]=n.oneShotLabel,t[16]=r,t[17]=p):p=t[17];let m;return t[18]!==c||t[19]!==d||t[20]!==f||t[21]!==p?(m=(0,z.jsxs)(`section`,{className:`card dash-cadence-card`,"aria-label":`Check cadence`,children:[o,c,d,f,p]}),t[18]=c,t[19]=d,t[20]=f,t[21]=p,t[22]=m):m=t[22],m}var Ve={WATCHING:`Watching`,CLEAR:`Clear`,AWAITING:`Awaiting data`,TRIGGERED:`Triggered`};function He(e){let t=(0,F.c)(15),{tripwire:n}=e,r=n.state===`TRIGGERED`,i=`dash-alertcard-row`+(r?` is-triggered`:``),a=`dash-switch`+(n.state===`AWAITING`?``:` on`),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,z.jsx)(`span`,{className:`dash-switch-knob`}),t[0]=o):o=t[0];let s;t[1]===a?s=t[2]:(s=(0,z.jsx)(`span`,{className:a,"aria-hidden":`true`,children:o}),t[1]=a,t[2]=s);let c=n.sourceQuote.text||n.label,l;t[3]===c?l=t[4]:(l=(0,z.jsx)(`span`,{className:`dash-alertcard-line`,children:c}),t[3]=c,t[4]=l);let u;t[5]!==r||t[6]!==n.state?(u=r?(0,z.jsx)(`span`,{className:`dash-alertcard-crossed`,children:`A line you set has been crossed`}):(0,z.jsx)(`span`,{className:`dash-alertcard-state`,children:Ve[n.state]}),t[5]=r,t[6]=n.state,t[7]=u):u=t[7];let d;t[8]!==l||t[9]!==u?(d=(0,z.jsxs)(`div`,{className:`dash-alertcard-body`,children:[l,u]}),t[8]=l,t[9]=u,t[10]=d):d=t[10];let f;return t[11]!==i||t[12]!==s||t[13]!==d?(f=(0,z.jsxs)(`li`,{className:i,children:[s,d]}),t[11]=i,t[12]=s,t[13]=d,t[14]=f):f=t[14],f}function Ue(e){let t=(0,F.c)(5),{dashboard:n}=e;if(n.tripwires.length===0)return null;let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,z.jsx)(`div`,{className:`card-eyebrow`,children:`Your alerts`}),t[0]=r):r=t[0];let i;t[1]===n.tripwires?i=t[2]:(i=n.tripwires.map(We),t[1]=n.tripwires,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,z.jsxs)(`section`,{className:`card dash-alertcard`,"aria-label":`Your alerts`,children:[r,(0,z.jsx)(`ul`,{className:`dash-alertcard-list`,children:i})]}),t[3]=i,t[4]=a),a}function We(e){return(0,z.jsx)(He,{tripwire:e},e.id)}var Ge={1:`S`,2:`M`,3:`L`};function $(e){let t=(0,F.c)(120),{id:n}=e,r=ne(),i;t[0]!==r||t[1]!==n?(i=r.find(e=>e.id===n)??null,t[0]=r,t[1]=n,t[2]=i):i=t[2];let o=i,[c,l]=(0,I.useState)(!1),[u,m]=(0,I.useState)(!1),h;t[3]===o?.widgets?h=t[4]:(h=o?.widgets.map(Ze)??[],t[3]=o?.widgets,t[4]=h);let _=h,v;t[5]===o?v=t[6]:(v=e=>o&&f(o.id,e),t[5]=o,t[6]=v);let y=_e(_,v),b;t[7]===o?.widgets?b=t[8]:(b=new Map((o?.widgets??[]).map(Xe)),t[7]=o?.widgets,t[8]=b);let x=b,S,C;t[9]===o?(S=t[10],C=t[11]):(S=()=>{o&&s(o.widgets.map(Ye))},C=[o],t[9]=o,t[10]=S,t[11]=C),(0,I.useEffect)(S,C);let w=o?.id,T,D;t[12]===w?(T=t[13],D=t[14]):(T=()=>{w&&p(w)},D=[w],t[12]=w,t[13]=T,t[14]=D),(0,I.useEffect)(T,D);let[O,ie]=(0,I.useState)(Je),k,A;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(A=()=>{let e=window.setInterval(()=>ie(Date.now()),3e4);return()=>window.clearInterval(e)},k=[],t[15]=k,t[16]=A):(k=t[15],A=t[16]),(0,I.useEffect)(A,k);let[j]=te(),M=re(o?.id??``),[N,ce]=(0,I.useState)(`idle`),ue;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(ue=async e=>{ce(`busy`);let t=await se(e);ce(t===`no-model`||t===`failed`||t===`unverified`?t:`idle`)},t[17]=ue):ue=t[17];let de=ue,[P,fe]=(0,I.useState)(`idle`),pe;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(pe=async e=>{fe(`busy`);let t=await le(e);fe(t===`no-model`||t===`failed`?t:`idle`)},t[18]=pe):pe=t[18];let me=pe;if(!o){let e;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,z.jsx)(`p`,{className:`dash-empty-title`,children:`That dashboard isn’t here.`}),t[19]=e):e=t[19];let n;return t[20]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,z.jsx)(`div`,{className:`dash-detail`,children:(0,z.jsxs)(`div`,{className:`dash-empty`,children:[e,(0,z.jsxs)(`p`,{className:`dash-empty-how`,children:[`It may have been removed. `,(0,z.jsx)(`a`,{href:E.gallery,children:`Back to your dashboards →`})]})]})}),t[20]=n):n=t[20],n}let ge;t[21]===o.id?ge=t[22]:(ge=(e,t)=>{g(o.id,e,t>=3?1:t+1)},t[21]=o.id,t[22]=ge);let ve=ge,ye;t[23]!==x||t[24]!==ve||t[25]!==o||t[26]!==c||t[27]!==y?(ye=y.order.map(e=>{let t=x.get(e);if(!t)return null;let n=t.metricId?o.metrics.find(e=>e.id===t.metricId):null,r=!c&&n?.blankKey?(0,z.jsx)(Ee,{dashboardId:o.id,metric:n}):void 0;return(0,z.jsx)(Ce,{dashboard:o,widget:t,editing:c,dragging:y.draggingId===t.id,footer:r,children:c&&(0,z.jsxs)(`div`,{className:`dash-tile-chrome`,children:[(0,z.jsx)(`span`,{className:`dash-tile-handle`,...y.handleProps(t.id),children:`⠿`}),(0,z.jsxs)(`div`,{className:`dash-tile-ctrls`,children:[(0,z.jsx)(`button`,{type:`button`,className:`dash-tile-size`,onClick:()=>ve(t.id,t.span),title:`Resize`,children:Ge[t.span]}),(0,z.jsx)(`button`,{type:`button`,className:`dash-tile-x`,onClick:()=>d(o.id,t.id),"aria-label":`Remove widget`,children:`×`})]})]})},t.id)}),t[23]=x,t[24]=ve,t[25]=o,t[26]=c,t[27]=y,t[28]=ye):ye=t[28];let be=ye,xe;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(xe=(0,z.jsx)(`a`,{className:`dash-back`,href:E.gallery,"aria-label":`Back to dashboards`,children:`←`}),t[29]=xe):xe=t[29];let L;t[30]===o.title?L=t[31]:(L=(0,z.jsx)(`span`,{className:`dash-detail-title`,children:o.title}),t[30]=o.title,t[31]=L);let R;t[32]===o.question?R=t[33]:(R=o.question&&(0,z.jsxs)(`span`,{className:`dash-detail-q`,title:o.question,children:[`“`,o.question,`”`]}),t[32]=o.question,t[33]=R);let Se;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(Se=(0,z.jsx)(`i`,{className:`dash-live-dot`}),t[34]=Se):Se=t[34];let B;t[35]!==o||t[36]!==M||t[37]!==O?(B=M?`checking for new data…`:oe(o,O),t[35]=o,t[36]=M,t[37]=O,t[38]=B):B=t[38];let we=!M&&ae(o)&&o.cadence.data!==`manual`?` · refreshes while open`:``,V;t[39]!==B||t[40]!==we?(V=(0,z.jsxs)(`span`,{className:`dash-detail-clock`,children:[Se,B,we]}),t[39]=B,t[40]=we,t[41]=V):V=t[41];let H;t[42]===o.id?H=t[43]:(H=()=>void de(o.id),t[42]=o.id,t[43]=H);let De=N===`busy`,Oe=N===`busy`?`dash-refresh-spin`:void 0,ke;t[44]===Oe?ke=t[45]:(ke=(0,z.jsx)(a.refresh,{className:Oe}),t[44]=Oe,t[45]=ke);let Ae=N===`busy`?`Refreshing…`:`Refresh now`,U;t[46]!==H||t[47]!==De||t[48]!==ke||t[49]!==Ae?(U=(0,z.jsxs)(`button`,{type:`button`,className:`dash-edit-btn dash-refresh-btn`,onClick:H,disabled:De,title:`Fetch current values now, regardless of cadence`,children:[ke,Ae]}),t[46]=H,t[47]=De,t[48]=ke,t[49]=Ae,t[50]=U):U=t[50];let W;t[51]!==o||t[52]!==j||t[53]!==N?(W=(N===`no-model`||!ee(j)&&ae(o))&&(0,z.jsx)(`span`,{className:`dash-refresh-hint`,children:`Connect a model in Live settings to refresh.`}),t[51]=o,t[52]=j,t[53]=N,t[54]=W):W=t[54];let G;t[55]===N?G=t[56]:(G=N===`failed`&&(0,z.jsx)(`span`,{className:`dash-refresh-hint`,children:`Couldn’t reach your model — check its key or quota, then try again.`}),t[55]=N,t[56]=G);let K;t[57]===N?K=t[58]:(K=N===`unverified`&&(0,z.jsx)(`span`,{className:`dash-refresh-hint`,children:`Checked, but no source could verify new values — keeping the last real ones.`}),t[57]=N,t[58]=K);let q;t[59]!==o.id||t[60]!==o.metrics.length||t[61]!==P?(q=o.metrics.length>0&&(0,z.jsxs)(`button`,{type:`button`,className:`dash-edit-btn dash-read-btn`,onClick:()=>void me(o.id),disabled:P===`busy`,title:`Ask Mavéa to read the latest numbers now`,children:[(0,z.jsx)(a.sparkle,{className:P===`busy`?`dash-refresh-spin`:void 0}),P===`busy`?`Reading…`:`Read the numbers now`]}),t[59]=o.id,t[60]=o.metrics.length,t[61]=P,t[62]=q):q=t[62];let J;t[63]===P?J=t[64]:(J=P===`no-model`&&(0,z.jsx)(`span`,{className:`dash-refresh-hint`,children:`Connect a model in Live settings to read.`}),t[63]=P,t[64]=J);let Y;t[65]===P?Y=t[66]:(Y=P===`failed`&&(0,z.jsx)(`span`,{className:`dash-refresh-hint`,children:`Couldn’t reach your model — check its key or quota, then try again.`}),t[65]=P,t[66]=Y);let Pe=`dash-edit-btn`+(c?` is-active`:``),Fe;t[67]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=()=>{l(qe),m(!1)},t[67]=Fe):Fe=t[67];let Ie=c?`Done`:`Edit layout`,X;t[68]!==Pe||t[69]!==Ie?(X=(0,z.jsx)(`button`,{type:`button`,className:Pe,onClick:Fe,children:Ie}),t[68]=Pe,t[69]=Ie,t[70]=X):X=t[70];let Re;t[71]===o.id?Re=t[72]:(Re=E.settings(o.id),t[71]=o.id,t[72]=Re);let ze;t[73]===Re?ze=t[74]:(ze=(0,z.jsx)(`a`,{className:`dash-gear`,href:Re,"aria-label":`Dashboard settings`,title:`Settings`,children:`⚙`}),t[73]=Re,t[74]=ze);let Z;t[75]!==L||t[76]!==R||t[77]!==V||t[78]!==U||t[79]!==W||t[80]!==G||t[81]!==K||t[82]!==q||t[83]!==J||t[84]!==Y||t[85]!==X||t[86]!==ze?(Z=(0,z.jsxs)(`header`,{className:`dash-detail-head`,children:[xe,L,R,V,U,W,G,K,q,J,Y,X,ze]}),t[75]=L,t[76]=R,t[77]=V,t[78]=U,t[79]=W,t[80]=G,t[81]=K,t[82]=q,t[83]=J,t[84]=Y,t[85]=X,t[86]=ze,t[87]=Z):Z=t[87];let Q;t[88]!==o||t[89]!==c?(Q=!c&&(0,z.jsx)(Ne,{dashboard:o}),t[88]=o,t[89]=c,t[90]=Q):Q=t[90];let Ve;t[91]!==o||t[92]!==M||t[93]!==c||t[94]!==O?(Ve=!c&&(0,z.jsx)(Me,{dashboard:o,now:O,checking:M}),t[91]=o,t[92]=M,t[93]=c,t[94]=O,t[95]=Ve):Ve=t[95];let He;t[96]!==o||t[97]!==c||t[98]!==O?(He=!c&&(0,z.jsx)(Le,{dashboard:o,now:O}),t[96]=o,t[97]=c,t[98]=O,t[99]=He):He=t[99];let We;t[100]!==o||t[101]!==c||t[102]!==u?(We=c&&(0,z.jsxs)(`div`,{className:`dash-edit-bar`,children:[(0,z.jsxs)(`span`,{className:`dash-edit-hint`,children:[`Drag a tile by its `,(0,z.jsx)(`strong`,{children:`⠿`}),` handle to reorder, tap `,(0,z.jsx)(`strong`,{children:`S/M/L`}),` to resize, `,(0,z.jsx)(`strong`,{children:`×`}),` to remove.`]}),(0,z.jsx)(`button`,{type:`button`,className:`dash-edit-add`,onClick:()=>m(Ke),"aria-expanded":u,children:`+ Add widget`}),u&&(0,z.jsx)(Te,{dashboard:o,onClose:()=>m(!1)})]}),t[100]=o,t[101]=c,t[102]=u,t[103]=We):We=t[103];let $;t[104]!==o||t[105]!==c||t[106]!==O||t[107]!==be?($=c?(0,z.jsx)(`div`,{className:`dash-grid`,children:be}):(0,z.jsxs)(`div`,{className:`dash-detail-cols`,children:[(0,z.jsxs)(`div`,{className:`dash-detail-main`,children:[o.widgets.length>0&&(0,z.jsxs)(`div`,{className:`dash-detail-section`,children:[(0,z.jsx)(`div`,{className:`card-eyebrow dash-detail-section-title`,children:`Cards`}),(0,z.jsx)(`div`,{className:`dash-grid`,children:be})]}),(0,z.jsx)(he,{dashboardId:o.id,now:O})]}),(0,z.jsxs)(`div`,{className:`dash-detail-side`,children:[(0,z.jsx)(Be,{dashboard:o,now:O}),(0,z.jsx)(Ue,{dashboard:o})]})]}),t[104]=o,t[105]=c,t[106]=O,t[107]=be,t[108]=$):$=t[108];let Qe;t[109]!==o||t[110]!==c?(Qe=!c&&(0,z.jsx)(je,{dashboard:o},o.id),t[109]=o,t[110]=c,t[111]=Qe):Qe=t[111];let $e;return t[112]!==Z||t[113]!==Q||t[114]!==Ve||t[115]!==He||t[116]!==We||t[117]!==$||t[118]!==Qe?($e=(0,z.jsxs)(`div`,{className:`dash-detail`,children:[Z,Q,Ve,He,We,$,Qe]}),t[112]=Z,t[113]=Q,t[114]=Ve,t[115]=He,t[116]=We,t[117]=$,t[118]=Qe,t[119]=$e):$e=t[119],$e}function Ke(e){return!e}function qe(e){return!e}function Je(){return Date.now()}function Ye(e){return e.block}function Xe(e){return[e.id,e]}function Ze(e){return e.id}export{$ as DashboardDetail};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardLoopRuntime-CAnZX234.js","assets/useDashboardLoop-B_YA5jLs.js","assets/rolldown-runtime-DkW27tQK.js","assets/react-BZJXY1be.js","assets/compiler-runtime-qQQXpJgv.js","assets/preload-helper-CiWYd9n-.js","assets/http-Lar_UMKb.js","assets/store-B39HvB_l.js","assets/friendlyAsk-BBdRZIar.js","assets/contentVault-xfUwSJ3i.js","assets/keyVault-Aw5Y2PjT.js","assets/providers-B2OCzEo1.js","assets/blockTypes-DUDdP3pB.js","assets/info-CiqHR5cs.js","assets/attachments-BW-vki-E.js","assets/useLiveConfig-DWz7BRdk.js","assets/json-B0N3XRZU.js","assets/number-Bmf7DqLj.js","assets/ledger-Cv0LBflx.js","assets/dataPending-lZUzUEo6.js","assets/format-rPI6ZwwH.js","assets/now-C9-UAzTC.js","assets/predictions-CkVKHq-5.js","assets/notify-Bz4wuE4T.js","assets/dashboardEvents-D-wLCp1A.js","assets/spokenText-C88IQJ0M.js","assets/kokoro-CdL8Kl48.js","assets/index-CfcUMOBf.js","assets/useInView-CXTOAEV3.js","assets/jsx-runtime-DeHZSEgm.js","assets/coreIcons-BzqW7Qiz.js","assets/preloadableLazy-MIX1ApBW.js","assets/cachedImport-DW0gP14h.js","assets/lazyRetry-D50B1UMY.js","assets/theme-7IrMJ70_.js","assets/index-D4FIsool.css"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{t as a}from"./preloadableLazy-MIX1ApBW.js";import{a as o,s}from"./index-CfcUMOBf.js";import{t as c}from"./useDashboards-GafZIADI.js";var l=t(),u=e(),d=n();r();var f=a(()=>i(()=>import(`./DashboardLoopRuntime-CAnZX234.js`).then(e=>({default:e.DashboardLoopRuntime})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]))).Component;function p(){let e=(0,l.c)(1),t=(0,u.useSyncExternalStore)(s,o,m),n=c();if(!t||n.length===0)return null;let r;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,d.jsx)(u.Suspense,{fallback:null,children:(0,d.jsx)(f,{})}),e[0]=r):r=e[0],r}function m(){return!1}export{p as DashboardLoopGate};
@@ -0,0 +1 @@
1
+ import{r as e}from"./useDashboardLoop-B_YA5jLs.js";function t(){return e(),null}export{t as DashboardLoopRuntime};
@@ -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{E as r,T as i,v as a}from"./store-DpmbKVs7.js";import{t as o}from"./route-D4kd-D3B.js";import{t as s}from"./useDashboards-BMcuCWoz.js";import{o as c,s as l}from"./format-rPI6ZwwH.js";import{n as u,r as d,t as f}from"./notify-Bz4wuE4T.js";var p=e(),ee=t(),te={"15min":`Every ~15 min while open`,hourly:`Hourly while open`,"6h":`Every 6 hours while open`,daily:`Daily while open`,manual:`Manual only`},m={"15min":4,hourly:3,"6h":2,daily:1,manual:0},h=`You provide the API key and pay that provider directly. Data refreshes and AI analysis can consume quota or incur a third-party charge on every scheduled run. Check your provider’s pricing and make sure this cadence is what you want.`,g=`Nothing runs on its own with this cadence — it only updates when you supply a value yourself, or when you explicitly pull in a conversation (which does spend a call at that moment).`;function ne(e,t,n){let r=n>0,i=r?m[e.data]:0,a=e.ai===`daily`?2:+(e.ai===`weekly`),o=i+(a+ +!!t),s=o>0,c;c=o===0?`none`:o<=1?`minimal`:o<=3?`light`:o<=5?`moderate`:`frequent`;let l=r?te[e.data]:`Free — no live-fetched metrics`,u;return u=t&&a===0?`Only when a line is crossed`:t?`${_(e.ai)} + when a line is crossed`:a===0?`Only when you ask`:_(e.ai),{level:c,usesKey:s,dataLabel:l,aiLabel:u,warning:s?h:g}}function _(e){return e===`daily`?`Daily`:e===`weekly`?`Weekly`:`Manual`}var re={none:`No automatic API usage`,minimal:`Minimal automatic API usage`,light:`Light automatic API usage`,moderate:`Moderate automatic API usage`,frequent:`Frequent automatic API usage`},v=n(),ie=[{v:`on-cross`,label:`When a line crosses`,ai:`on-change`,smart:!0},{v:`daily`,label:`Daily`,ai:`daily`,smart:!1},{v:`weekly`,label:`Weekly`,ai:`weekly`,smart:!1},{v:`ask`,label:`Only when I ask`,ai:`manual`,smart:!1}];function ae(e,t){return e===`daily`?`daily`:e===`weekly`?`weekly`:e===`on-change`&&t?`on-cross`:`ask`}function y(e){let t=(0,ee.c)(119),{id:n}=e,te=s(),m;t[0]!==te||t[1]!==n?(m=te.find(e=>e.id===n)??null,t[0]=te,t[1]=n,t[2]=m):m=t[2];let h=m,g;t[3]===h?g=t[4]:(g=h?ne(h.cadence,h.smartTrigger,l(h)+c(h)):null,t[3]=h,t[4]=g);let _=g,[y,le]=(0,p.useState)(!1),ue,de;t[5]===y?(ue=t[6],de=t[7]):(ue=()=>{if(!y)return;let e=window.setTimeout(()=>le(!1),5e3);return()=>window.clearTimeout(e)},de=[y],t[5]=y,t[6]=ue,t[7]=de),(0,p.useEffect)(ue,de);let[fe,pe]=(0,p.useState)(null),[b,me]=(0,p.useState)(!1),he,ge;t[8]===b?(he=t[9],ge=t[10]):(he=()=>{if(!b)return;let e=window.setTimeout(()=>me(!1),4e3);return()=>window.clearTimeout(e)},ge=[b],t[8]=b,t[9]=he,t[10]=ge),(0,p.useEffect)(he,ge);let _e;if(t[11]===n?_e=t[12]:(_e=[n],t[11]=n,t[12]=_e),(0,p.useEffect)(oe,_e),!h||!_){let e;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,v.jsx)(`p`,{className:`dash-empty-title`,children:`That dashboard isn’t here.`}),t[13]=e):e=t[13];let n;return t[14]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,v.jsx)(`div`,{className:`dash-settings`,children:(0,v.jsxs)(`div`,{className:`dash-empty`,children:[e,(0,v.jsx)(`p`,{className:`dash-empty-how`,children:(0,v.jsx)(`a`,{href:o.gallery,children:`Back to your dashboards →`})})]})}),t[14]=n):n=t[14],n}let ve;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(ve=u(),t[15]=ve):ve=t[15];let ye=ve,be=ye?fe??`A desktop notification while Mavéa is open`:`Not supported in this browser`,xe;t[16]!==h.alerts||t[17]!==h.id?(xe=async()=>{if(h.alerts.push){r(h.id,{alerts:{...h.alerts,push:!1}}),pe(null);return}await d()?(r(h.id,{alerts:{...h.alerts,push:!0}}),pe(null)):pe(`Blocked — allow notifications for this site in your browser, then try again`)},t[16]=h.alerts,t[17]=h.id,t[18]=xe):xe=t[18];let Se=xe,Ce;t[19]===h?Ce=t[20]:(Ce=()=>{f(h,[{id:`test`,label:`Test alert`,metricId:``,comparator:`gt`,threshold:0,state:`TRIGGERED`,sourceQuote:{text:``,saidAt:0}}]),me(!0)},t[19]=h,t[20]=Ce);let we=Ce,x;t[21]===h.id?x=t[22]:(x=o.detail(h.id),t[21]=h.id,t[22]=x);let S;t[23]===x?S=t[24]:(S=(0,v.jsx)(`a`,{className:`dash-back`,href:x,"aria-label":`Back to dashboard`,children:`←`}),t[23]=x,t[24]=S);let Te;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,v.jsx)(`span`,{className:`dash-detail-title`,children:`Settings`}),t[25]=Te):Te=t[25];let C;t[26]===h.title?C=t[27]:(C=(0,v.jsx)(`span`,{className:`dash-detail-q`,children:h.title}),t[26]=h.title,t[27]=C);let w;t[28]!==S||t[29]!==C?(w=(0,v.jsxs)(`header`,{className:`dash-detail-head`,children:[S,Te,C]}),t[28]=S,t[29]=C,t[30]=w):w=t[30];let Ee,T;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(Ee=(0,v.jsx)(`div`,{className:`card-eyebrow`,children:`AI analysis`}),T=(0,v.jsx)(`p`,{className:`dash-set-blurb`,children:`Mavéa reads the latest numbers and tells you, briefly and honestly, what they show and what’s changed since the last check — grounded in a fresh web search. Its read shows up on the dashboard. Each read is one model call on your API key. Choose when it runs:`}),t[31]=Ee,t[32]=T):(Ee=t[31],T=t[32]);let E;t[33]!==h.cadence.ai||t[34]!==h.smartTrigger?(E=ae(h.cadence.ai,h.smartTrigger),t[33]=h.cadence.ai,t[34]=h.smartTrigger,t[35]=E):E=t[35];let D;t[36]===h.id?D=t[37]:(D=e=>{let t=ie.find(t=>t.v===e);t&&(i(h.id,{ai:t.ai}),r(h.id,{smartTrigger:t.smart}))},t[36]=h.id,t[37]=D);let O;t[38]!==E||t[39]!==D?(O=(0,v.jsx)(se,{options:ie,value:E,onPick:D}),t[38]=E,t[39]=D,t[40]=O):O=t[40];let k;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,v.jsx)(`p`,{className:`dash-set-blurb`,children:`Refreshing the numbers themselves — the web searches — is a separate setting on the dashboard. Checking whether a line crossed is a free comparison. This read is the one model call, and you can trigger it anytime from the dashboard with “Read the numbers now.”`}),t[41]=k):k=t[41];let A;t[42]===O?A=t[43]:(A=(0,v.jsxs)(`section`,{className:`card dash-set-card`,children:[Ee,T,O,k]}),t[42]=O,t[43]=A);let j;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,v.jsx)(`div`,{className:`card-eyebrow`,children:`Where alerts go`}),t[44]=j):j=t[44];let M;t[45]!==h.alerts||t[46]!==h.id?(M=()=>r(h.id,{alerts:{...h.alerts,inApp:!h.alerts.inApp}}),t[45]=h.alerts,t[46]=h.id,t[47]=M):M=t[47];let N;t[48]!==h.alerts.inApp||t[49]!==M?(N=(0,v.jsx)(ce,{label:`In-app`,note:`A pop-up notice when a line you set is crossed — this dashboard’s own alert list always updates either way`,on:h.alerts.inApp,onToggle:M}),t[48]=h.alerts.inApp,t[49]=M,t[50]=N):N=t[50];let P;t[51]===Se?P=t[52]:(P=()=>void Se(),t[51]=Se,t[52]=P);let F;t[53]!==h.alerts.push||t[54]!==be||t[55]!==P?(F=(0,v.jsx)(ce,{label:`Push`,note:be,on:h.alerts.push,disabled:!ye,onToggle:P}),t[53]=h.alerts.push,t[54]=be,t[55]=P,t[56]=F):F=t[56];let I;t[57]!==h.alerts.push||t[58]!==b||t[59]!==we?(I=ye&&h.alerts.push&&(0,v.jsxs)(`p`,{className:`dash-alert-test-row`,children:[(0,v.jsx)(`button`,{type:`button`,className:`dash-alert-test`,onClick:we,children:`Send a test`}),b&&(0,v.jsx)(`span`,{className:`dash-alert-test-note`,role:`status`,children:`Sent a test — if nothing appeared, re-check this site’s notification permission.`})]}),t[57]=h.alerts.push,t[58]=b,t[59]=we,t[60]=I):I=t[60];let L;t[61]!==N||t[62]!==F||t[63]!==I?(L=(0,v.jsxs)(`section`,{className:`card dash-set-card`,children:[j,(0,v.jsxs)(`div`,{className:`dash-set-alerts`,children:[N,F,I]})]}),t[61]=N,t[62]=F,t[63]=I,t[64]=L):L=t[64];let De;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(De=(0,v.jsx)(`div`,{className:`card-eyebrow`,children:`Delete this dashboard`}),t[65]=De):De=t[65];let R;t[66]===h.title?R=t[67]:(R=(0,v.jsxs)(`p`,{className:`dash-set-blurb`,children:[`Removes “`,h.title,`” and everything tracked on it. The conversations it was built from are untouched.`]}),t[66]=h.title,t[67]=R);let Oe=`dash-del-btn`+(y?` armed`:``),z;t[68]!==y||t[69]!==h.id?(z=()=>{if(!y){le(!0);return}a(h.id),window.location.hash=o.gallery},t[68]=y,t[69]=h.id,t[70]=z):z=t[70];let ke;t[71]===Symbol.for(`react.memo_cache_sentinel`)?(ke=()=>le(!1),t[71]=ke):ke=t[71];let Ae=y?`Tap again to delete`:`Delete dashboard`,B;t[72]!==Oe||t[73]!==z||t[74]!==Ae?(B=(0,v.jsx)(`button`,{type:`button`,className:Oe,onClick:z,onBlur:ke,children:Ae}),t[72]=Oe,t[73]=z,t[74]=Ae,t[75]=B):B=t[75];let je=y?`Tap again to delete ${h.title}`:``,V;t[76]===je?V=t[77]:(V=(0,v.jsx)(`span`,{className:`dash-sr-only`,"aria-live":`polite`,children:je}),t[76]=je,t[77]=V);let H;t[78]!==R||t[79]!==B||t[80]!==V?(H=(0,v.jsxs)(`section`,{className:`card dash-set-card dash-set-danger`,children:[De,R,B,V]}),t[78]=R,t[79]=B,t[80]=V,t[81]=H):H=t[81];let U;t[82]!==A||t[83]!==L||t[84]!==H?(U=(0,v.jsxs)(`div`,{className:`dash-settings-cols`,children:[A,L,H]}),t[82]=A,t[83]=L,t[84]=H,t[85]=U):U=t[85];let Me;t[86]===Symbol.for(`react.memo_cache_sentinel`)?(Me=(0,v.jsx)(`div`,{className:`card-eyebrow`,children:`On your API key`}),t[86]=Me):Me=t[86];let Ne=`dash-usage-band dash-usage--${_.level}`,Pe=re[_.level],W;t[87]!==Ne||t[88]!==Pe?(W=(0,v.jsx)(`div`,{className:Ne,children:Pe}),t[87]=Ne,t[88]=Pe,t[89]=W):W=t[89];let Fe;t[90]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=(0,v.jsx)(`span`,{children:`Data refresh`}),t[90]=Fe):Fe=t[90];let G;t[91]===_.dataLabel?G=t[92]:(G=(0,v.jsxs)(`div`,{className:`dash-usage-row`,children:[Fe,(0,v.jsx)(`span`,{className:`dash-usage-val`,children:_.dataLabel})]}),t[91]=_.dataLabel,t[92]=G);let Ie;t[93]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=(0,v.jsx)(`span`,{children:`AI analysis`}),t[93]=Ie):Ie=t[93];let K;t[94]===_.aiLabel?K=t[95]:(K=(0,v.jsxs)(`div`,{className:`dash-usage-row`,children:[Ie,(0,v.jsx)(`span`,{className:`dash-usage-val`,children:_.aiLabel})]}),t[94]=_.aiLabel,t[95]=K);let q;t[96]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,v.jsxs)(`div`,{className:`dash-usage-row`,children:[(0,v.jsx)(`span`,{children:`Adding a conversation`}),(0,v.jsx)(`span`,{className:`dash-usage-val`,children:`One model call, each time`})]}),t[96]=q):q=t[96];let J;t[97]!==G||t[98]!==K?(J=(0,v.jsxs)(`div`,{className:`dash-usage-rows`,children:[G,K,q]}),t[97]=G,t[98]=K,t[99]=J):J=t[99];let Y;t[100]===_.warning?Y=t[101]:(Y=(0,v.jsx)(`p`,{className:`dash-usage-warning`,children:_.warning}),t[100]=_.warning,t[101]=Y);let Le,Re;t[102]===Symbol.for(`react.memo_cache_sentinel`)?(Le=(0,v.jsx)(`p`,{className:`dash-usage-warning`,children:`The bands above are the AUTOMATIC cadence only. "Refresh now", "Ask", and pulling in another conversation are things YOU trigger — each one is a real call on your key, regardless of what cadence you've set.`}),Re=(0,v.jsx)(`p`,{className:`dash-usage-warning`,children:`Automatic checks pause for the day once your daily search budget is reached (adjustable in your dashboards settings) — manual actions like Refresh now always work.`}),t[102]=Le,t[103]=Re):(Le=t[102],Re=t[103]);let X;t[104]===h.id?X=t[105]:(X=o.detail(h.id),t[104]=h.id,t[105]=X);let Z;t[106]===X?Z=t[107]:(Z=(0,v.jsx)(`a`,{className:`dash-usage-done`,href:X,children:`Done`}),t[106]=X,t[107]=Z);let Q;t[108]!==W||t[109]!==J||t[110]!==Y||t[111]!==Z?(Q=(0,v.jsxs)(`aside`,{className:`card dash-usage`,"aria-label":`Estimated usage`,children:[Me,W,J,Y,Le,Re,Z]}),t[108]=W,t[109]=J,t[110]=Y,t[111]=Z,t[112]=Q):Q=t[112];let $;t[113]!==U||t[114]!==Q?($=(0,v.jsxs)(`div`,{className:`dash-settings-grid`,children:[U,Q]}),t[113]=U,t[114]=Q,t[115]=$):$=t[115];let ze;return t[116]!==w||t[117]!==$?(ze=(0,v.jsxs)(`div`,{className:`dash-settings`,children:[w,$]}),t[116]=w,t[117]=$,t[118]=ze):ze=t[118],ze}function oe(){window.scrollTo(0,0)}function se(e){let t=(0,ee.c)(9),{options:n,value:r,onPick:i}=e,a;if(t[0]!==i||t[1]!==n||t[2]!==r){let e;t[4]!==i||t[5]!==r?(e=e=>(0,v.jsx)(`button`,{type:`button`,className:`dash-seg-opt`+(e.v===r?` is-active`:``),"aria-pressed":e.v===r,onClick:()=>i(e.v),children:e.label},e.v),t[4]=i,t[5]=r,t[6]=e):e=t[6],a=n.map(e),t[0]=i,t[1]=n,t[2]=r,t[3]=a}else a=t[3];let o;return t[7]===a?o=t[8]:(o=(0,v.jsx)(`div`,{className:`dash-seg`,role:`group`,children:a}),t[7]=a,t[8]=o),o}function ce(e){let t=(0,ee.c)(16),{label:n,note:r,on:i,onToggle:a,disabled:o}=e,s=`dash-check`+(i?` on`:``)+(o?` disabled`:``),c=i?`✓`:``,l;t[0]===c?l=t[1]:(l=(0,v.jsx)(`span`,{className:`dash-check-box`,children:c}),t[0]=c,t[1]=l);let u;t[2]===n?u=t[3]:(u=(0,v.jsx)(`span`,{className:`dash-check-label`,children:n}),t[2]=n,t[3]=u);let d;t[4]===r?d=t[5]:(d=(0,v.jsx)(`span`,{className:`dash-check-note`,children:r}),t[4]=r,t[5]=d);let f;t[6]!==u||t[7]!==d?(f=(0,v.jsxs)(`span`,{className:`dash-check-text`,children:[u,d]}),t[6]=u,t[7]=d,t[8]=f):f=t[8];let p;return t[9]!==o||t[10]!==i||t[11]!==a||t[12]!==s||t[13]!==l||t[14]!==f?(p=(0,v.jsxs)(`button`,{type:`button`,className:s,onClick:a,disabled:o,"aria-pressed":i,children:[l,f]}),t[9]=o,t[10]=i,t[11]=a,t[12]=s,t[13]=l,t[14]=f,t[15]=p):p=t[15],p}export{y as DashboardSettings};
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,S as i,j as a}from"./store-B39HvB_l.js";import{t as o}from"./route-D4kd-D3B.js";import{t as s}from"./useDashboards-GafZIADI.js";import{o as c,s as l}from"./format-rPI6ZwwH.js";import{n as u,r as d,t as f}from"./notify-Bz4wuE4T.js";var p=e(),ee=t(),te={"15min":`Every ~15 min while open`,hourly:`Hourly while open`,"6h":`Every 6 hours while open`,daily:`Daily while open`,manual:`Manual only`},m={"15min":4,hourly:3,"6h":2,daily:1,manual:0},h=`You provide the API key and pay that provider directly. Data refreshes and AI analysis can consume quota or incur a third-party charge on every scheduled run. Check your provider’s pricing and make sure this cadence is what you want.`,g=`Nothing runs on its own with this cadence — it only updates when you supply a value yourself, or when you explicitly pull in a conversation (which does spend a call at that moment).`;function ne(e,t,n){let r=n>0,i=r?m[e.data]:0,a=e.ai===`daily`?2:+(e.ai===`weekly`),o=i+(a+ +!!t),s=o>0,c;c=o===0?`none`:o<=1?`minimal`:o<=3?`light`:o<=5?`moderate`:`frequent`;let l=r?te[e.data]:`Free — no live-fetched metrics`,u;return u=t&&a===0?`Only when a line is crossed`:t?`${_(e.ai)} + when a line is crossed`:a===0?`Only when you ask`:_(e.ai),{level:c,usesKey:s,dataLabel:l,aiLabel:u,warning:s?h:g}}function _(e){return e===`daily`?`Daily`:e===`weekly`?`Weekly`:`Manual`}var re={none:`No automatic API usage`,minimal:`Minimal automatic API usage`,light:`Light automatic API usage`,moderate:`Moderate automatic API usage`,frequent:`Frequent automatic API usage`},v=n(),ie=[{v:`on-cross`,label:`When a line crosses`,ai:`on-change`,smart:!0},{v:`daily`,label:`Daily`,ai:`daily`,smart:!1},{v:`weekly`,label:`Weekly`,ai:`weekly`,smart:!1},{v:`ask`,label:`Only when I ask`,ai:`manual`,smart:!1}];function ae(e,t){return e===`daily`?`daily`:e===`weekly`?`weekly`:e===`on-change`&&t?`on-cross`:`ask`}function y(e){let t=(0,ee.c)(119),{id:n}=e,te=s(),m;t[0]!==te||t[1]!==n?(m=te.find(e=>e.id===n)??null,t[0]=te,t[1]=n,t[2]=m):m=t[2];let h=m,g;t[3]===h?g=t[4]:(g=h?ne(h.cadence,h.smartTrigger,l(h)+c(h)):null,t[3]=h,t[4]=g);let _=g,[y,le]=(0,p.useState)(!1),ue,de;t[5]===y?(ue=t[6],de=t[7]):(ue=()=>{if(!y)return;let e=window.setTimeout(()=>le(!1),5e3);return()=>window.clearTimeout(e)},de=[y],t[5]=y,t[6]=ue,t[7]=de),(0,p.useEffect)(ue,de);let[fe,pe]=(0,p.useState)(null),[b,me]=(0,p.useState)(!1),he,ge;t[8]===b?(he=t[9],ge=t[10]):(he=()=>{if(!b)return;let e=window.setTimeout(()=>me(!1),4e3);return()=>window.clearTimeout(e)},ge=[b],t[8]=b,t[9]=he,t[10]=ge),(0,p.useEffect)(he,ge);let _e;if(t[11]===n?_e=t[12]:(_e=[n],t[11]=n,t[12]=_e),(0,p.useEffect)(oe,_e),!h||!_){let e;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,v.jsx)(`p`,{className:`dash-empty-title`,children:`That dashboard isn’t here.`}),t[13]=e):e=t[13];let n;return t[14]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,v.jsx)(`div`,{className:`dash-settings`,children:(0,v.jsxs)(`div`,{className:`dash-empty`,children:[e,(0,v.jsx)(`p`,{className:`dash-empty-how`,children:(0,v.jsx)(`a`,{href:o.gallery,children:`Back to your dashboards →`})})]})}),t[14]=n):n=t[14],n}let ve;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(ve=u(),t[15]=ve):ve=t[15];let ye=ve,be=ye?fe??`A desktop notification while Mavéa is open`:`Not supported in this browser`,xe;t[16]!==h.alerts||t[17]!==h.id?(xe=async()=>{if(h.alerts.push){a(h.id,{alerts:{...h.alerts,push:!1}}),pe(null);return}await d()?(a(h.id,{alerts:{...h.alerts,push:!0}}),pe(null)):pe(`Blocked — allow notifications for this site in your browser, then try again`)},t[16]=h.alerts,t[17]=h.id,t[18]=xe):xe=t[18];let Se=xe,Ce;t[19]===h?Ce=t[20]:(Ce=()=>{f(h,[{id:`test`,label:`Test alert`,metricId:``,comparator:`gt`,threshold:0,state:`TRIGGERED`,sourceQuote:{text:``,saidAt:0}}]),me(!0)},t[19]=h,t[20]=Ce);let we=Ce,x;t[21]===h.id?x=t[22]:(x=o.detail(h.id),t[21]=h.id,t[22]=x);let S;t[23]===x?S=t[24]:(S=(0,v.jsx)(`a`,{className:`dash-back`,href:x,"aria-label":`Back to dashboard`,children:`←`}),t[23]=x,t[24]=S);let Te;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,v.jsx)(`span`,{className:`dash-detail-title`,children:`Settings`}),t[25]=Te):Te=t[25];let C;t[26]===h.title?C=t[27]:(C=(0,v.jsx)(`span`,{className:`dash-detail-q`,children:h.title}),t[26]=h.title,t[27]=C);let w;t[28]!==S||t[29]!==C?(w=(0,v.jsxs)(`header`,{className:`dash-detail-head`,children:[S,Te,C]}),t[28]=S,t[29]=C,t[30]=w):w=t[30];let Ee,T;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(Ee=(0,v.jsx)(`div`,{className:`card-eyebrow`,children:`AI analysis`}),T=(0,v.jsx)(`p`,{className:`dash-set-blurb`,children:`Mavéa reads the latest numbers and tells you, briefly and honestly, what they show and what’s changed since the last check — grounded in a fresh web search. Its read shows up on the dashboard. Each read is one model call on your API key. Choose when it runs:`}),t[31]=Ee,t[32]=T):(Ee=t[31],T=t[32]);let E;t[33]!==h.cadence.ai||t[34]!==h.smartTrigger?(E=ae(h.cadence.ai,h.smartTrigger),t[33]=h.cadence.ai,t[34]=h.smartTrigger,t[35]=E):E=t[35];let D;t[36]===h.id?D=t[37]:(D=e=>{let t=ie.find(t=>t.v===e);t&&(r(h.id,{ai:t.ai}),a(h.id,{smartTrigger:t.smart}))},t[36]=h.id,t[37]=D);let O;t[38]!==E||t[39]!==D?(O=(0,v.jsx)(se,{options:ie,value:E,onPick:D}),t[38]=E,t[39]=D,t[40]=O):O=t[40];let k;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,v.jsx)(`p`,{className:`dash-set-blurb`,children:`Refreshing the numbers themselves — the web searches — is a separate setting on the dashboard. Checking whether a line crossed is a free comparison. This read is the one model call, and you can trigger it anytime from the dashboard with “Read the numbers now.”`}),t[41]=k):k=t[41];let A;t[42]===O?A=t[43]:(A=(0,v.jsxs)(`section`,{className:`card dash-set-card`,children:[Ee,T,O,k]}),t[42]=O,t[43]=A);let j;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,v.jsx)(`div`,{className:`card-eyebrow`,children:`Where alerts go`}),t[44]=j):j=t[44];let M;t[45]!==h.alerts||t[46]!==h.id?(M=()=>a(h.id,{alerts:{...h.alerts,inApp:!h.alerts.inApp}}),t[45]=h.alerts,t[46]=h.id,t[47]=M):M=t[47];let N;t[48]!==h.alerts.inApp||t[49]!==M?(N=(0,v.jsx)(ce,{label:`In-app`,note:`A pop-up notice when a line you set is crossed — this dashboard’s own alert list always updates either way`,on:h.alerts.inApp,onToggle:M}),t[48]=h.alerts.inApp,t[49]=M,t[50]=N):N=t[50];let P;t[51]===Se?P=t[52]:(P=()=>void Se(),t[51]=Se,t[52]=P);let F;t[53]!==h.alerts.push||t[54]!==be||t[55]!==P?(F=(0,v.jsx)(ce,{label:`Push`,note:be,on:h.alerts.push,disabled:!ye,onToggle:P}),t[53]=h.alerts.push,t[54]=be,t[55]=P,t[56]=F):F=t[56];let I;t[57]!==h.alerts.push||t[58]!==b||t[59]!==we?(I=ye&&h.alerts.push&&(0,v.jsxs)(`p`,{className:`dash-alert-test-row`,children:[(0,v.jsx)(`button`,{type:`button`,className:`dash-alert-test`,onClick:we,children:`Send a test`}),b&&(0,v.jsx)(`span`,{className:`dash-alert-test-note`,role:`status`,children:`Sent a test — if nothing appeared, re-check this site’s notification permission.`})]}),t[57]=h.alerts.push,t[58]=b,t[59]=we,t[60]=I):I=t[60];let L;t[61]!==N||t[62]!==F||t[63]!==I?(L=(0,v.jsxs)(`section`,{className:`card dash-set-card`,children:[j,(0,v.jsxs)(`div`,{className:`dash-set-alerts`,children:[N,F,I]})]}),t[61]=N,t[62]=F,t[63]=I,t[64]=L):L=t[64];let De;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(De=(0,v.jsx)(`div`,{className:`card-eyebrow`,children:`Delete this dashboard`}),t[65]=De):De=t[65];let R;t[66]===h.title?R=t[67]:(R=(0,v.jsxs)(`p`,{className:`dash-set-blurb`,children:[`Removes “`,h.title,`” and everything tracked on it. The conversations it was built from are untouched.`]}),t[66]=h.title,t[67]=R);let Oe=`dash-del-btn`+(y?` armed`:``),z;t[68]!==y||t[69]!==h.id?(z=()=>{if(!y){le(!0);return}i(h.id),window.location.hash=o.gallery},t[68]=y,t[69]=h.id,t[70]=z):z=t[70];let ke;t[71]===Symbol.for(`react.memo_cache_sentinel`)?(ke=()=>le(!1),t[71]=ke):ke=t[71];let Ae=y?`Tap again to delete`:`Delete dashboard`,B;t[72]!==Oe||t[73]!==z||t[74]!==Ae?(B=(0,v.jsx)(`button`,{type:`button`,className:Oe,onClick:z,onBlur:ke,children:Ae}),t[72]=Oe,t[73]=z,t[74]=Ae,t[75]=B):B=t[75];let je=y?`Tap again to delete ${h.title}`:``,V;t[76]===je?V=t[77]:(V=(0,v.jsx)(`span`,{className:`dash-sr-only`,"aria-live":`polite`,children:je}),t[76]=je,t[77]=V);let H;t[78]!==R||t[79]!==B||t[80]!==V?(H=(0,v.jsxs)(`section`,{className:`card dash-set-card dash-set-danger`,children:[De,R,B,V]}),t[78]=R,t[79]=B,t[80]=V,t[81]=H):H=t[81];let U;t[82]!==A||t[83]!==L||t[84]!==H?(U=(0,v.jsxs)(`div`,{className:`dash-settings-cols`,children:[A,L,H]}),t[82]=A,t[83]=L,t[84]=H,t[85]=U):U=t[85];let Me;t[86]===Symbol.for(`react.memo_cache_sentinel`)?(Me=(0,v.jsx)(`div`,{className:`card-eyebrow`,children:`On your API key`}),t[86]=Me):Me=t[86];let Ne=`dash-usage-band dash-usage--${_.level}`,Pe=re[_.level],W;t[87]!==Ne||t[88]!==Pe?(W=(0,v.jsx)(`div`,{className:Ne,children:Pe}),t[87]=Ne,t[88]=Pe,t[89]=W):W=t[89];let Fe;t[90]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=(0,v.jsx)(`span`,{children:`Data refresh`}),t[90]=Fe):Fe=t[90];let G;t[91]===_.dataLabel?G=t[92]:(G=(0,v.jsxs)(`div`,{className:`dash-usage-row`,children:[Fe,(0,v.jsx)(`span`,{className:`dash-usage-val`,children:_.dataLabel})]}),t[91]=_.dataLabel,t[92]=G);let Ie;t[93]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=(0,v.jsx)(`span`,{children:`AI analysis`}),t[93]=Ie):Ie=t[93];let K;t[94]===_.aiLabel?K=t[95]:(K=(0,v.jsxs)(`div`,{className:`dash-usage-row`,children:[Ie,(0,v.jsx)(`span`,{className:`dash-usage-val`,children:_.aiLabel})]}),t[94]=_.aiLabel,t[95]=K);let q;t[96]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,v.jsxs)(`div`,{className:`dash-usage-row`,children:[(0,v.jsx)(`span`,{children:`Adding a conversation`}),(0,v.jsx)(`span`,{className:`dash-usage-val`,children:`One model call, each time`})]}),t[96]=q):q=t[96];let J;t[97]!==G||t[98]!==K?(J=(0,v.jsxs)(`div`,{className:`dash-usage-rows`,children:[G,K,q]}),t[97]=G,t[98]=K,t[99]=J):J=t[99];let Y;t[100]===_.warning?Y=t[101]:(Y=(0,v.jsx)(`p`,{className:`dash-usage-warning`,children:_.warning}),t[100]=_.warning,t[101]=Y);let Le,Re;t[102]===Symbol.for(`react.memo_cache_sentinel`)?(Le=(0,v.jsx)(`p`,{className:`dash-usage-warning`,children:`The bands above are the AUTOMATIC cadence only. "Refresh now", "Ask", and pulling in another conversation are things YOU trigger — each one is a real call on your key, regardless of what cadence you've set.`}),Re=(0,v.jsx)(`p`,{className:`dash-usage-warning`,children:`Automatic checks pause for the day once your daily search budget is reached (adjustable in your dashboards settings) — manual actions like Refresh now always work.`}),t[102]=Le,t[103]=Re):(Le=t[102],Re=t[103]);let X;t[104]===h.id?X=t[105]:(X=o.detail(h.id),t[104]=h.id,t[105]=X);let Z;t[106]===X?Z=t[107]:(Z=(0,v.jsx)(`a`,{className:`dash-usage-done`,href:X,children:`Done`}),t[106]=X,t[107]=Z);let Q;t[108]!==W||t[109]!==J||t[110]!==Y||t[111]!==Z?(Q=(0,v.jsxs)(`aside`,{className:`card dash-usage`,"aria-label":`Estimated usage`,children:[Me,W,J,Y,Le,Re,Z]}),t[108]=W,t[109]=J,t[110]=Y,t[111]=Z,t[112]=Q):Q=t[112];let $;t[113]!==U||t[114]!==Q?($=(0,v.jsxs)(`div`,{className:`dash-settings-grid`,children:[U,Q]}),t[113]=U,t[114]=Q,t[115]=$):$=t[115];let ze;return t[116]!==w||t[117]!==$?(ze=(0,v.jsxs)(`div`,{className:`dash-settings`,children:[w,$]}),t[116]=w,t[117]=$,t[118]=ze):ze=t[118],ze}function oe(){window.scrollTo(0,0)}function se(e){let t=(0,ee.c)(9),{options:n,value:r,onPick:i}=e,a;if(t[0]!==i||t[1]!==n||t[2]!==r){let e;t[4]!==i||t[5]!==r?(e=e=>(0,v.jsx)(`button`,{type:`button`,className:`dash-seg-opt`+(e.v===r?` is-active`:``),"aria-pressed":e.v===r,onClick:()=>i(e.v),children:e.label},e.v),t[4]=i,t[5]=r,t[6]=e):e=t[6],a=n.map(e),t[0]=i,t[1]=n,t[2]=r,t[3]=a}else a=t[3];let o;return t[7]===a?o=t[8]:(o=(0,v.jsx)(`div`,{className:`dash-seg`,role:`group`,children:a}),t[7]=a,t[8]=o),o}function ce(e){let t=(0,ee.c)(16),{label:n,note:r,on:i,onToggle:a,disabled:o}=e,s=`dash-check`+(i?` on`:``)+(o?` disabled`:``),c=i?`✓`:``,l;t[0]===c?l=t[1]:(l=(0,v.jsx)(`span`,{className:`dash-check-box`,children:c}),t[0]=c,t[1]=l);let u;t[2]===n?u=t[3]:(u=(0,v.jsx)(`span`,{className:`dash-check-label`,children:n}),t[2]=n,t[3]=u);let d;t[4]===r?d=t[5]:(d=(0,v.jsx)(`span`,{className:`dash-check-note`,children:r}),t[4]=r,t[5]=d);let f;t[6]!==u||t[7]!==d?(f=(0,v.jsxs)(`span`,{className:`dash-check-text`,children:[u,d]}),t[6]=u,t[7]=d,t[8]=f):f=t[8];let p;return t[9]!==o||t[10]!==i||t[11]!==a||t[12]!==s||t[13]!==l||t[14]!==f?(p=(0,v.jsxs)(`button`,{type:`button`,className:s,onClick:a,disabled:o,"aria-pressed":i,children:[l,f]}),t[9]=o,t[10]=i,t[11]=a,t[12]=s,t[13]=l,t[14]=f,t[15]=p):p=t[15],p}export{y as DashboardSettings};