@mavea/mavea 1.0.13 → 1.0.14

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 (163) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +4 -3
  3. package/dist/.vite/manifest.json +587 -605
  4. package/dist/assets/{AppCommandPalette-D_g8-7C0.js → AppCommandPalette-D5nd3VO_.js} +1 -1
  5. package/dist/assets/{BlockEmpty-Ddhgr5pu.js → BlockEmpty-BZn5ETuL.js} +1 -1
  6. package/dist/assets/{BriefingPlayer-D-QhLgXI.js → BriefingPlayer-JnrrvxYE.js} +1 -1
  7. package/dist/assets/{CanvasSkeleton-BIiOmCMG.js → CanvasSkeleton-D00MzkIV.js} +2 -2
  8. package/dist/assets/{CheckLogRail-ZrDqyjQ7.js → CheckLogRail--9iHharq.js} +1 -1
  9. package/dist/assets/{CodeOutput-D7sVg1Nr.js → CodeOutput-408gGn9V.js} +1 -1
  10. package/dist/assets/{CommandPalette-DNa2q8E_.js → CommandPalette-BIUG6Sn7.js} +1 -1
  11. package/dist/assets/{CourseLessonReader-BIpGjcJk.js → CourseLessonReader-Yp2qEsDx.js} +2 -2
  12. package/dist/assets/{CourseRail-CQaotzN0.js → CourseRail-BVvnoWBR.js} +1 -1
  13. package/dist/assets/{CoursesApp-q3kZJmu1.js → CoursesApp-0N_F1p_u.js} +2 -2
  14. package/dist/assets/{CrossExamPanel-BIJslibV.js → CrossExamPanel-CocJ_GxK.js} +1 -1
  15. package/dist/assets/{DashPresent-DGSE0vYM.js → DashPresent-G8Actzx7.js} +1 -1
  16. package/dist/assets/{DashboardDetail-BpaLNg8R.js → DashboardDetail-BpSe8wBT.js} +2 -2
  17. package/dist/assets/DashboardLoopRuntime-CHPDkO3Y.js +1 -0
  18. package/dist/assets/{DashboardOverview-8x3OxX2i.js → DashboardOverview-Cdhy4x4b.js} +1 -1
  19. package/dist/assets/{DashboardSettings-f_zxcs5j.js → DashboardSettings-ChPkh0t4.js} +1 -1
  20. package/dist/assets/DashboardsApp-mp-V3d1i.js +2 -0
  21. package/dist/assets/{DeepZoomApp-E7bDmzuL.js → DeepZoomApp-mZHk132w.js} +1 -1
  22. package/dist/assets/{DelegatePanel-_9RZiLHM.css → DelegatePanel-Cf85-0qE.css} +1 -1
  23. package/dist/assets/DelegatePanel-Dtl0oHaA.js +33 -0
  24. package/dist/assets/{DemoGallery-DDzX8Z7I.js → DemoGallery-By2LV_U_.js} +1 -1
  25. package/dist/assets/{DropSelect-BMZYAX6q.js → DropSelect-CeCNaut0.js} +1 -1
  26. package/dist/assets/{ExportModal-CTMJaU1l.js → ExportModal-CZ1-Vihb.js} +2 -2
  27. package/dist/assets/{ExtractionPreview-C9wq7CrK.js → ExtractionPreview-CRkYnwCo.js} +1 -1
  28. package/dist/assets/{FlagshipCTA-DPNSflKv.js → FlagshipCTA-DNtUnl0n.js} +1 -1
  29. package/dist/assets/{FlagshipCommandPalette-55zqyPFm.js → FlagshipCommandPalette-DpP8joXb.js} +1 -1
  30. package/dist/assets/{FlagshipShowcase-BWpoPWOn.js → FlagshipShowcase-CoOezhT-.js} +1 -1
  31. package/dist/assets/{FlashcardsApp-apCj3I17.js → FlashcardsApp-REEdMdKG.js} +1 -1
  32. package/dist/assets/{ForecastPanel-CMRD-UKn.js → ForecastPanel-CpR32hwb.js} +1 -1
  33. package/dist/assets/{GalleryApp-CcsbirLT.js → GalleryApp-DJZRHjMH.js} +1 -1
  34. package/dist/assets/{HonestByDesign-DU4qmc61.js → HonestByDesign-CiOj_fA7.js} +1 -1
  35. package/dist/assets/{HowItWorks-CkZXftN-.js → HowItWorks-Ch2CgkVd.js} +1 -1
  36. package/dist/assets/{LegalApp-BmZpqH-6.js → LegalApp-BisEJynn.js} +1 -1
  37. package/dist/assets/{LegalMarkdownDocument-CcbAfubz.js → LegalMarkdownDocument-B7Yj_aRR.js} +1 -1
  38. package/dist/assets/{LegalPageShell-raMATqhx.js → LegalPageShell-k9e22JlP.js} +1 -1
  39. package/dist/assets/{LeverPanel-DVUgGcYW.js → LeverPanel-CXSDqinv.js} +1 -1
  40. package/dist/assets/{Library-D725dNcx.js → Library-CmpF6gOU.js} +1 -1
  41. package/dist/assets/{LibraryOverlay-D7PzQIpH.js → LibraryOverlay-BErgFYxu.js} +1 -1
  42. package/dist/assets/LiveApp-DZ7t3P1O.js +61 -0
  43. package/dist/assets/LiveApp-Dj_6EQuL.css +1 -0
  44. package/dist/assets/LiveSettings-BY5E3Ka8.js +6 -0
  45. package/dist/assets/{MindMapViewerDrawer-CIMuABKE.js → MindMapViewerDrawer-Bc_qHdm9.js} +1 -1
  46. package/dist/assets/MindShape-DGOmKwov.css +1 -0
  47. package/dist/assets/{MindShape-0KPrv0CF.js → MindShape-ULBAjrfD.js} +1 -1
  48. package/dist/assets/{PinToDashboard-ML4NFCAU.js → PinToDashboard-WgEX4YoY.js} +1 -1
  49. package/dist/assets/{PlanReview-CbJ_7Ld1.js → PlanReview-Dd3sxa_o.js} +1 -1
  50. package/dist/assets/{Presence-B_zDfiE7.js → Presence-DgzicbeF.js} +1 -1
  51. package/dist/assets/{PresentationDeck-Tm3PUdh5.js → PresentationDeck-Cx26X-wh.js} +1 -1
  52. package/dist/assets/{PrismApp-Bc-6PO_P.js → PrismApp-FPqASfhZ.js} +2 -2
  53. package/dist/assets/{PrismAskController-OwqFx5Pk.js → PrismAskController-Ds1tSE9S.js} +1 -1
  54. package/dist/assets/{PrismBriefingPlayer-Bu_ZxYdh.js → PrismBriefingPlayer-BzqCK6JP.js} +2 -2
  55. package/dist/assets/{PrismOverlay-UTsJ8R5d.js → PrismOverlay-Cq3DBJ-N.js} +4 -4
  56. package/dist/assets/{PrivacyApp-BLXan6dm.js → PrivacyApp-B8PGc-x5.js} +1 -1
  57. package/dist/assets/{Recap-5rYrcMCC.js → Recap-RwhzouRe.js} +1 -1
  58. package/dist/assets/{ReelJelly-Dg3XGB0c.js → ReelJelly-B2JQsaRI.js} +1 -1
  59. package/dist/assets/{ReplayCard-wMIMlorH.js → ReplayCard-DUBvQLBt.js} +2 -2
  60. package/dist/assets/{ReplayOverlay-BomkTonB.js → ReplayOverlay-CzUFHdjK.js} +1 -1
  61. package/dist/assets/{RewindOverlay-Izf89nG9.js → RewindOverlay-CMx_cVxX.js} +1 -1
  62. package/dist/assets/{RippleApp-8QSIEjTX.js → RippleApp-B186b8KW.js} +2 -2
  63. package/dist/assets/{RippleAskController-Cd86GrKs.js → RippleAskController-BA_kGOmL.js} +1 -1
  64. package/dist/assets/{RippleOverlay-SCrXZTqz.js → RippleOverlay-CkbkIgzC.js} +2 -2
  65. package/dist/assets/{SeeDontRead-Bp8qsF20.js → SeeDontRead-BZ4xFEKE.js} +1 -1
  66. package/dist/assets/{ShareModal-C-sD-aia.js → ShareModal-DNpc-U9U.js} +1 -1
  67. package/dist/assets/{ShipCascade-Cq_I4c_v.js → ShipCascade-BmTE193h.js} +1 -1
  68. package/dist/assets/{ShipCourse-CzsJyMnT.js → ShipCourse-K2vnS3Sw.js} +1 -1
  69. package/dist/assets/{ShipHotspots-OMjPhQWP.js → ShipHotspots-DILwqPxh.js} +1 -1
  70. package/dist/assets/{ShipIncident-Cqn6ZmKz.js → ShipIncident-DXXciEP7.js} +1 -1
  71. package/dist/assets/{ShipMigration-5_ZWn7K9.js → ShipMigration-rhBm0Tre.js} +1 -1
  72. package/dist/assets/{ShipOnboarding-Yr8oKgmQ.js → ShipOnboarding-9KCVVAkX.js} +1 -1
  73. package/dist/assets/{ShipRead-Bnw7mnv3.js → ShipRead-CMe1DNik.js} +1 -1
  74. package/dist/assets/{ShipRollout-ECsDrqAd.js → ShipRollout-BA4x-btU.js} +1 -1
  75. package/dist/assets/{ShipSuggestions-C6oDw2F8.js → ShipSuggestions-Jm45jfFl.js} +1 -1
  76. package/dist/assets/{ShipWorkspace-BT6gZrqd.js → ShipWorkspace--x-q6Ly3.js} +1 -1
  77. package/dist/assets/{SignatureLoop-D7sibSnc.js → SignatureLoop-B_cHyXgU.js} +1 -1
  78. package/dist/assets/{SynthesisApp-B768x2r_.js → SynthesisApp-CvR_8g1C.js} +2 -2
  79. package/dist/assets/{SynthesisOverlay-Ds0MhZLQ.js → SynthesisOverlay-DFFD69hf.js} +1 -1
  80. package/dist/assets/{TermsApp-Da8FeMj3.js → TermsApp-BxLgLSna.js} +1 -1
  81. package/dist/assets/{TopicCanvas-D64O3lvD.js → TopicCanvas-CKvJb_8Y.js} +2 -2
  82. package/dist/assets/{TopicCanvas-D2Nax9II.css → TopicCanvas-uRuHi99s.css} +1 -1
  83. package/dist/assets/{TourPrism-CTf1G-Vv.js → TourPrism-bqOmSZ9T.js} +1 -1
  84. package/dist/assets/{TrackerTile-DeujTCk-.js → TrackerTile-BuAVmOyi.js} +2 -2
  85. package/dist/assets/{TwoSurfaces-kyK2yqm0.js → TwoSurfaces-CjtKXWJr.js} +1 -1
  86. package/dist/assets/{UnderstoodPanel-Dgwk_Cuj.js → UnderstoodPanel-BWFbpk9o.js} +1 -1
  87. package/dist/assets/{WhyMachineOverlay-C4eQC0lg.js → WhyMachineOverlay-D6pGEE78.js} +1 -1
  88. package/dist/assets/{WowFeatures-CaBZ5WPM.js → WowFeatures-CLx5VoKn.js} +1 -1
  89. package/dist/assets/{ZoomDeck-DnCtbhx1.js → ZoomDeck-R6MLUt4Z.js} +1 -1
  90. package/dist/assets/{alternateFinishes-FSV_gA1A.js → alternateFinishes-C8DBTwo_.js} +1 -1
  91. package/dist/assets/{annotationAuto-x_dV8z65.js → annotationAuto-ofVcqRve.js} +1 -1
  92. package/dist/assets/{annotationReel-SeXzv0P-.js → annotationReel-CdAmTPlv.js} +1 -1
  93. package/dist/assets/{backup-0zODkqi-.js → backup-TgoSxdwf.js} +1 -1
  94. package/dist/assets/canvas-BrUiUI9Q.js +1 -0
  95. package/dist/assets/{catalog-Car_1ocN.js → catalog-BrmxA4bP.js} +1 -1
  96. package/dist/assets/{dashboardEvents-BqcPN-K8.js → dashboardEvents-DT6ye9n7.js} +1 -1
  97. package/dist/assets/{dist-BTg4yEWr.js → dist-COAFD72d.js} +1 -1
  98. package/dist/assets/{fit-I3tuibfX.js → fit-BtKObM5Q.js} +1 -1
  99. package/dist/assets/{generateLive-Dk24OxVt.js → generateLive-BvE3kOrf.js} +1 -1
  100. package/dist/assets/gesture-Bouqjr3g.js +2 -0
  101. package/dist/assets/{index-CWqRe4-B.js → index-DOpl5xzv.js} +3 -3
  102. package/dist/assets/{jspdf.es.min-wkD3BzGZ.js → jspdf.es.min-DSMzCXtv.js} +1 -1
  103. package/dist/assets/{kokoro-B-3GqktX.js → kokoro-B-MNB16v.js} +1 -1
  104. package/dist/assets/{lib-CwruVYU_.js → lib-BLt1wpw2.js} +1 -1
  105. package/dist/assets/{liveSchema-CCpVMy0H.js → liveSchema-DbjsSolX.js} +2 -2
  106. package/dist/assets/{motion-CURfDtdH.js → motion-DKmdzFji.js} +1 -1
  107. package/dist/assets/{notes-BG5QP-Dj.js → notes-D_uDKcr5.js} +1 -1
  108. package/dist/assets/{pdf-x4qTBJIZ.js → pdf-uUFiTOYW.js} +1 -1
  109. package/dist/assets/{penStrokes-9Q_l7NTt.js → penStrokes-DlHnO9xE.js} +1 -1
  110. package/dist/assets/{perfProbe-BFwfpxJt.js → perfProbe-DIAQR2bi.js} +1 -1
  111. package/dist/assets/{pin-DRN5H7py.js → pin-DoSzEmTm.js} +1 -1
  112. package/dist/assets/{portal-BYHo9LOD.js → portal-4sKB1Tgc.js} +1 -1
  113. package/dist/assets/{pptxgen.es-DGywGiaX.js → pptxgen.es-BVKKMlmO.js} +1 -1
  114. package/dist/assets/{prewarm-CQNCE4Uq.js → prewarm-D31Si_08.js} +1 -1
  115. package/dist/assets/{quietHours-CKjQ2pGY.js → quietHours-sfkvrkJv.js} +1 -1
  116. package/dist/assets/registry--yZ1HduK.js +1 -0
  117. package/dist/assets/{registry-CfTTYQrE.js → registry-B3RfPAd6.js} +1 -1
  118. package/dist/assets/{registry-DBsjgIxw.js → registry-B3u3--Kv.js} +1 -1
  119. package/dist/assets/{registry-DFmFBfRz.js → registry-BOS6AdnB.js} +1 -1
  120. package/dist/assets/{registry-Dw42uggW.js → registry-BWzoIPXp.js} +1 -1
  121. package/dist/assets/{registry-CNr6L-3z.js → registry-Bj8q4igW.js} +1 -1
  122. package/dist/assets/{registry-_T6pLDPG.js → registry-BnSnMnyk.js} +2 -2
  123. package/dist/assets/{registry-aUZZeh27.js → registry-BpccSYOo.js} +1 -1
  124. package/dist/assets/{registry-BueBIP-N.js → registry-C4KB6Ls0.js} +1 -1
  125. package/dist/assets/{registry-cPmSqaRu.js → registry-CAZ7ubmd.js} +1 -1
  126. package/dist/assets/{registry-1BWL6SXY.js → registry-CYnKlcEy.js} +1 -1
  127. package/dist/assets/{registry-BZQeYzgv.js → registry-Chzw1Udo.js} +1 -1
  128. package/dist/assets/{registry-DrqQbf_n.js → registry-CkXIaQmB.js} +1 -1
  129. package/dist/assets/{registry-BklPTZre.js → registry-CrKVDfq8.js} +1 -1
  130. package/dist/assets/registry-D5oMqeSa.js +1 -0
  131. package/dist/assets/{registry-9S6KiKjR.js → registry-DOsiT4_6.js} +1 -1
  132. package/dist/assets/{registry-Bl3NkU-0.js → registry-DsjrEa0W.js} +1 -1
  133. package/dist/assets/{registry-Bc6_RQ8l.js → registry-DssqYPgu.js} +1 -1
  134. package/dist/assets/{registry-CqfjqOX5.js → registry-DxtkIiAV.js} +2 -2
  135. package/dist/assets/{registry-Bpx4VBWb.js → registry-DzNYBJ_a.js} +1 -1
  136. package/dist/assets/{registry-GLjcQX0n.js → registry-NdA9xh9G.js} +1 -1
  137. package/dist/assets/{registry-D84Bs-bD.js → registry-VRtsyPV7.js} +1 -1
  138. package/dist/assets/{registry-DEgW3zel.js → registry-d3dHoriR.js} +1 -1
  139. package/dist/assets/{registry-BpBiRe-o.js → registry-fLKnCnS5.js} +1 -1
  140. package/dist/assets/{relate-yq30L3hZ.js → relate-BG7aZWOq.js} +1 -1
  141. package/dist/assets/{shikiHighlight-BgZoQAHs.js → shikiHighlight-D9nfk5pW.js} +1 -1
  142. package/dist/assets/{useDashboardLoop-mGmJwv27.js → useDashboardLoop-CJ0M7ZXf.js} +3 -3
  143. package/dist/assets/{useLiveConfig-vMyjo2gV.js → useLiveConfig-DIvKKKpP.js} +1 -1
  144. package/dist/assets/{useSpatialCanvas-CEXy6ZC2.js → useSpatialCanvas-L0r29F7F.js} +1 -1
  145. package/dist/assets/{useSpotlightWalk-B9XJ6OLK.js → useSpotlightWalk-oyvTWe20.js} +1 -1
  146. package/dist/assets/{useSrsCards-Vc6B2_he.js → useSrsCards-BLNBqRe7.js} +1 -1
  147. package/dist/assets/{useStudy-6QnY-Fw_.js → useStudy-hvN-iGz0.js} +1 -1
  148. package/dist/assets/{useZoomGesture-BONUz5cE.js → useZoomGesture-Dl_Cfmxm.js} +1 -1
  149. package/dist/index.html +1 -1
  150. package/package.json +1 -1
  151. package/dist/assets/DashboardLoopRuntime-14yzj-xx.js +0 -1
  152. package/dist/assets/DashboardsApp-mvMbGmp0.js +0 -2
  153. package/dist/assets/DelegatePanel-pwRk9pFf.js +0 -26
  154. package/dist/assets/LiveApp-B8Jw1Q0h.js +0 -61
  155. package/dist/assets/LiveApp-DQhDk2ma.css +0 -1
  156. package/dist/assets/LiveSettings-BQ06gZB7.js +0 -6
  157. package/dist/assets/MindShape-Bel2yDqO.css +0 -1
  158. package/dist/assets/RehearsalPanel-BCU615wg.css +0 -1
  159. package/dist/assets/RehearsalPanel-CM4466Os.js +0 -6
  160. package/dist/assets/canvas-uhcwigAL.js +0 -1
  161. package/dist/assets/gesture-DabMpPcq.js +0 -2
  162. package/dist/assets/registry-BffpZK5w.js +0 -1
  163. package/dist/assets/registry-Z3TIPbYJ.js +0 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/generateLive-Dk24OxVt.js","assets/blockLabel-DAqaHKy3.js","assets/liveSchema-CCpVMy0H.js","assets/catalog-Car_1ocN.js","assets/index-CWqRe4-B.js","assets/chunk-BVpWp9h4.js","assets/jsx-runtime-DaSxXjOY.js","assets/react-BQSORdFI.js","assets/lazyRetry-D50B1UMY.js","assets/index-CepQEz75.css","assets/facts-BBTt3ImG.js","assets/annotations-D2K9A5GB.js","assets/providers-wzm7E8Pa.js","assets/http-CJCtjYpA.js","assets/info-CiqHR5cs.js","assets/icons-CHVz6kv_.js","assets/catalog-BHjl-1uH.js","assets/safeImageUrl-CUkucDUu.js","assets/sourceHost-BV3t2XDb.js","assets/spokenText-D4zPX9JY.js","assets/streamParse-DRgMHWye.js","assets/shapes-Cw7tCHIp.js","assets/contentVault-DzTYWcbD.js","assets/keyVault-DEsNh9FR.js","assets/now-C9-UAzTC.js","assets/number-DXgzss0v.js","assets/layout-BFQOzXtG.js","assets/screen-DLR7p_yP.js","assets/search-Be63DJkp.js","assets/speed-DwPw9KSv.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{J as n,ht as r,q as i}from"./index-CWqRe4-B.js";import{n as a}from"./icons-CHVz6kv_.js";import{t as o}from"./useFocusTrap-DbfG6zbM.js";import{t as s}from"./TopicCanvas-D64O3lvD.js";import{f as c}from"./CanvasSkeleton-BIiOmCMG.js";import{r as l}from"./sourceHost-BV3t2XDb.js";import"./canvas-uhcwigAL.js";import{A as u,B as d,F as f,L as p,M as m,P as h,R as g,_,b as v,k as y,m as b,o as x,s as S,x as ee,y as te}from"./useStudy-6QnY-Fw_.js";import{l as C,n as w,r as T,u as ne}from"./useLiveConfig-vMyjo2gV.js";import{f as re,g as E,h as D}from"./dashboardEvents-BqcPN-K8.js";import{a as ie,i as O,t as ae}from"./CheckLogRail-ZrDqyjQ7.js";import{a as oe,i as se,n as ce,t as k}from"./format-hc2QOoIu.js";import{a as A,n as le,o as ue,s as j,t as de}from"./useDashboardLoop-mGmJwv27.js";import{r as fe}from"./predictions-CYS7Vo39.js";import{t as pe}from"./planTracker-7AMCQPNx.js";import{t as me}from"./pin-DRN5H7py.js";/* empty css */var M=r(),N=e();function P(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 he(e,t){let[n,r]=(0,N.useState)(null),[i,a]=(0,N.useState)(null),o=(0,N.useRef)({working:null,draggingId:null,onCommit:t,sourceIds:e,cleanup:null});o.current.onCommit=t,o.current.sourceIds=e,(0,N.useEffect)(()=>()=>o.current.cleanup?.(),[]);let s=(0,N.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=P(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,N.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 ge={WATCHING:`watching`,CLEAR:`clear`,TRIGGERED:`triggered`,AWAITING:`awaiting`},_e={ORIGIN:`origin`,ADDED:`added`,LINKED:`linked`},ve={CLEAR:1,WATCHING:.75,TRIGGERED:0,AWAITING:0};function ye(e){let t=e.tripwires.filter(e=>e.state!==`AWAITING`);if(t.length===0)return null;let n=t.reduce((e,t)=>e+ve[t.state],0);return Math.round(100*n/t.length)}function be(e){return e===null?``:e>=80?`Tracking well`:e>=55?`Holding, with risks`:e>=30?`Slipping`:`Lines are breaking`}var xe=new Set([`thesis`,`alignmentgauge`,`standingalerts`,`sourceslineage`]);function Se(e,t){let n=t.block.type;if(!xe.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??`${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:ge[n.state]}:{}};return{...t.block,props:i}}if(n===`alignmentgauge`){let n=ye(e),r={pct:n,band:be(n)};return{...t.block,props:r}}if(n===`standingalerts`){let n={alerts:e.tripwires.map(e=>({label:e.label,state:ge[e.state]}))};return{...t.block,props:n}}let i={rows:e.sources.map(e=>({kind:_e[e.kind],label:e.title,...e.contributed?{contributed:e.contributed}:{}}))};return{...t.block,props:i}}var F=t();function Ce(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 we(e){let t=(0,M.c)(18),{dashboard:n,widget:r,editing:i,dragging:a,children:o,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=Ce(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,F.jsx)(s,{data:f,spot:null,built:v,onProve:I}),t[10]=f,t[11]=y);let b;return t[12]!==o||t[13]!==_||t[14]!==c||t[15]!==y||t[16]!==r.id?(b=(0,F.jsxs)(`div`,{className:_,"data-dash-widget":r.id,children:[o,y,c]}),t[12]=o,t[13]=_,t[14]=c,t[15]=y,t[16]=r.id,t[17]=b):b=t[17],b}function I(){}function L(){return`w-`+Math.random().toString(36).slice(2,8)}function Te(e){let t=new Set(e.widgets.map(e=>e.block.type));return[{key:`note`,label:`Note`,make:()=>({block:{type:`list`,col:12,id:L(),props:{title:`Note`,items:[`Add a note about this dashboard.`]}},span:2})},{key:`thesis`,label:`Reasoning note`,make:()=>({block:{type:`thesis`,col:12,id:L(),props:{reasoning:``}},span:2})},{key:`alignmentgauge`,label:`Alignment gauge`,make:()=>({block:{type:`alignmentgauge`,col:12,id:L(),props:{pct:null}},span:1})},{key:`standingalerts`,label:`Standing alerts`,make:()=>({block:{type:`standingalerts`,col:12,id:L(),props:{alerts:[]}},span:1})},{key:`sourceslineage`,label:`Sources`,make:()=>({block:{type:`sourceslineage`,col:12,id:L(),props:{rows:[]}},span:2})}].filter(e=>e.key===`note`||!t.has(e.key))}function Ee(e){let t=(0,M.c)(26),{dashboard:n,onClose:r}=e,[i,a]=(0,N.useState)(`menu`),[s,c]=(0,N.useState)(``),[l,u]=(0,N.useState)(!1),[d,f]=(0,N.useState)(null),p=Te(n),m=!!C(w()).apiKey,h;t[0]!==n||t[1]!==r?(h=e=>{let{block:t,span:i}=e.make(),a={id:L(),block:t,span:i,fromSource:`manual`};b(n.id,a),r()},t[0]=n,t[1]=r,t[2]=h):h=t[2];let g=h,_=(0,N.useRef)(!0),y,x;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>(_.current=!0,()=>{_.current=!1}),x=[],t[3]=y,t[4]=x):(y=t[3],x=t[4]),(0,N.useEffect)(y,x);let S;t[5]!==s||t[6]!==n||t[7]!==r||t[8]!==l?(S=async()=>{let e=s.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,C(w()));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(),o={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:L(),block:{type:`insight`,col:12,id:`blk-${a}`,num:`1`,props:{title:o.label,stat:`—`,conf:`inferred`,summary:o.label}},span:1,metricId:o.id,fromSource:`manual`};v(n.id,{metrics:[o],tripwires:[],widgets:[c],source:{kind:`ADDED`,conversationId:`manual`,title:`Added by hand`,contributed:`Tracking ${o.label}`,at:a}}),te(n.id,a),le(n.id),r()},t[5]=s,t[6]=n,t[7]=r,t[8]=l,t[9]=S):S=t[9];let ee=S,T=(0,N.useRef)(null),ne;t[10]===r?ne=t[11]:(ne={onEscape:r},t[10]=r,t[11]=ne),o(T,ne);let re=(0,N.useRef)(null),E,D;t[12]===i?(E=t[13],D=t[14]):(E=()=>{i===`track`?re.current?.focus():T.current?.querySelector(`.dash-palette-item`)?.focus()},D=[i],t[12]=i,t[13]=E,t[14]=D),(0,N.useEffect)(E,D);let ie,O;t[15]===r?(ie=t[16],O=t[17]):(ie=()=>{let e=T.current?.parentElement;if(!e)return;let t=t=>{e.contains(t.target)||r()};return document.addEventListener(`pointerdown`,t),()=>document.removeEventListener(`pointerdown`,t)},O=[r],t[15]=r,t[16]=ie,t[17]=O),(0,N.useEffect)(ie,O);let ae;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(ae=e=>{let t=Array.from(T.current?.querySelectorAll(`.dash-palette-item`)??[]);t.length&&t[(t.indexOf(document.activeElement)+e+t.length)%t.length]?.focus()},t[18]=ae):ae=t[18];let oe=ae,se=i===`menu`?`menu`:`dialog`,ce=i===`menu`?`Add a widget`:`Track a number`,k;t[19]===i?k=t[20]:(k=e=>{i===`menu`&&(e.key!==`ArrowDown`&&e.key!==`ArrowUp`||(e.preventDefault(),oe(e.key===`ArrowDown`?1:-1)))},t[19]=i,t[20]=k);let A=i===`menu`?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`button`,{type:`button`,role:`menuitem`,className:`dash-palette-item dash-palette-lead`,onClick:()=>a(`track`),children:`+ Track a number`}),p.map(e=>(0,F.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`dash-palette-item`,onClick:()=>g(e),children:[`+ `,e.label]},e.key))]}):(0,F.jsxs)(`div`,{className:`dash-ptrack`,children:[(0,F.jsxs)(`div`,{className:`dash-ptrack-head`,children:[(0,F.jsx)(`button`,{type:`button`,className:`dash-ptrack-back`,"aria-label":`Back to widget list`,onClick:()=>a(`menu`),children:`←`}),(0,F.jsx)(`span`,{className:`dash-ptrack-kicker`,children:`Track a number`})]}),m?(0,F.jsxs)(`form`,{className:`dash-ptrack-form`,onSubmit:e=>{e.preventDefault(),ee()},children:[(0,F.jsx)(`input`,{ref:re,className:`dash-ptrack-input`,value:s,placeholder:`BTC price, SF temperature, 10-year yield…`,"aria-label":`What number to track`,disabled:l,onChange:e=>c(e.target.value)}),d&&(0,F.jsx)(`p`,{className:`dash-ptrack-err`,children:d}),(0,F.jsx)(`button`,{type:`submit`,className:`dash-ptrack-go`,disabled:l||!s.trim(),children:l?`Planning…`:`Track · 1 call + 1 search`})]}):(0,F.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,F.jsx)(`a`,{href:`#/live`,children:`Connect a model in Live`}),` first.`]})]}),ue;return t[21]!==se||t[22]!==ce||t[23]!==k||t[24]!==A?(ue=(0,F.jsx)(`div`,{ref:T,className:`dash-palette`,role:se,"aria-label":ce,tabIndex:-1,onKeyDown:k,children:A}),t[21]=se,t[22]=ce,t[23]=k,t[24]=A,t[25]=ue):ue=t[25],ue}function De(e){let t=(0,M.c)(24),{dashboardId:n,metric:r}=e,[i,a]=(0,N.useState)(r.lastValue===null?``:String(r.lastValue)),o;t[0]!==n||t[1]!==r.id||t[2]!==r.lastValue||t[3]!==r.unit||t[4]!==i?(o=()=>{let e=Number(i.replace(/[^0-9.+-]/g,``));if(i.trim()===``||!Number.isFinite(e))return;let t=Date.now(),a=r.lastValue;p(n,r.id,e,`${e}${r.unit??``}`,`user`,t);let o=ee(n);if(o){let{tripwires:e}=j(o,{[r.id]:a});g(n,e,t)}},t[0]=n,t[1]=r.id,t[2]=r.lastValue,t[3]=r.unit,t[4]=i,t[5]=o):o=t[5];let s=o,c;t[6]===s?c=t[7]:(c=e=>{e.preventDefault(),s()},t[6]=s,t[7]=c);let l=`Set ${r.label}…`,u=`Set ${r.label}`,d;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=e=>a(e.target.value),t[8]=d):d=t[8];let f;t[9]!==l||t[10]!==u||t[11]!==i?(f=(0,F.jsx)(`input`,{className:`dash-fill-input`,value:i,inputMode:`decimal`,placeholder:l,"aria-label":u,onChange:d}),t[9]=l,t[10]=u,t[11]=i,t[12]=f):f=t[12];let m;t[13]===r.unit?m=t[14]:(m=r.unit&&(0,F.jsx)(`span`,{className:`dash-fill-unit`,children:r.unit}),t[13]=r.unit,t[14]=m);let h;t[15]===i?h=t[16]:(h=i.trim(),t[15]=i,t[16]=h);let _=h===``,v;t[17]===_?v=t[18]:(v=(0,F.jsx)(`button`,{type:`submit`,className:`dash-fill-save`,disabled:_,children:`Save`}),t[17]=_,t[18]=v);let y;return t[19]!==v||t[20]!==c||t[21]!==f||t[22]!==m?(y=(0,F.jsxs)(`form`,{className:`dash-fill`,onSubmit:c,children:[f,m,v]}),t[19]=v,t[20]=c,t[21]=f,t[22]=m,t[23]=y):y=t[23],y}n();var R=()=>i(()=>import(`./generateLive-Dk24OxVt.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]));function Oe(){return!!C(w()).apiKey}function z(e){let t=(0,M.c)(15),[n,r]=(0,N.useState)(!1),[i,a]=(0,N.useState)(null),[o,s]=(0,N.useState)(null),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=[],t[0]=c):c=t[0];let l=(0,N.useRef)(c),u=(0,N.useRef)(!1),d=(0,N.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,N.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,N.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=C(w()),o=e.widgets.map(t=>Se(e,t)),c=new AbortController;d.current=c,R().then(e=>{let{generateLive:t}=e;return t(n,l.current,i,void 0,{selectedBlocks:o,signal:c.signal})}).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 B=/^(add|track|watch|monitor|follow)\b/i;function ke(e){let t=e.trim();return t&&B.test(t)?`add`:`ask`}function Ae(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 V(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,M.c)(29),{dashboard:n}=e,r=z(n),[i,a]=(0,N.useState)(``),[o,c]=(0,N.useState)(!1),[l,u]=(0,N.useState)(`ask`),d;t[0]===n?d=t[1]:(d=Ae(n),t[0]=n,t[1]=d);let f=d,p;t[2]===r?p=t[3]:(p=e=>{c(!1),u(ke(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]!==o||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&&!o&&(V(n.id,r.lastAsk??``,r.result.spec.blocks),c(!0))},g=[l,r.loading,r.result,r.lastAsk,o,n.id],t[4]=l,t[5]=n.id,t[6]=o,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,N.useEffect)(h,g);let _;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,F.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,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`div`,{className:`dash-talk-chips`,children:f.map(e=>(0,F.jsxs)(`button`,{type:`button`,className:`dash-talk-chip`,disabled:r.loading,onClick:()=>m(e),children:[(0,F.jsx)(`span`,{className:`dash-talk-chip-orb`}),(0,F.jsxs)(`span`,{className:`dash-talk-chip-t`,children:[`“`,e,`”`]})]},e))}),(0,F.jsxs)(`form`,{className:`dash-talk-ask`,onSubmit:e=>{e.preventDefault(),m(i)},children:[(0,F.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,F.jsx)(`button`,{type:`submit`,className:`dash-talk-send`,disabled:r.loading||!i.trim(),children:r.loading?`Thinking…`:`Ask`})]})]}):(0,F.jsxs)(`p`,{className:`dash-talk-gate`,children:[`Connect a model in `,(0,F.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]!==o||t[22]!==r.lastAsk||t[23]!==r.loading||t[24]!==r.result?(y=r.lastAsk&&(0,F.jsxs)(`div`,{className:`dash-talk-answer`,children:[(0,F.jsxs)(`div`,{className:`dash-talk-q`,children:[`“`,r.lastAsk,`”`]}),r.loading?(0,F.jsx)(`div`,{className:`dash-talk-thinking`,children:`Mavéa is looking at your dashboard…`}):r.result?.error?(0,F.jsxs)(`div`,{className:`dash-talk-error`,children:[`That didn’t go through. Check your model in `,(0,F.jsx)(`a`,{href:`#/live`,children:`Live`}),` and try again.`]}):r.result?(0,F.jsxs)(F.Fragment,{children:[r.result.narration&&(0,F.jsx)(`p`,{className:`dash-talk-narration`,children:r.result.narration}),(0,F.jsx)(s,{data:r.result.spec,spot:null,built:{},onProve:Me}),r.result.spec.blocks.length>0&&(o?(0,F.jsx)(`div`,{className:`dash-talk-pinned`,children:l===`add`?(0,F.jsx)(F.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,F.jsx)(`button`,{type:`button`,className:`dash-talk-pin`,onClick:()=>{V(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]=o,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,F.jsxs)(`section`,{className:`dash-talk`,children:[_,v,y]}),t[26]=v,t[27]=y,t[28]=b):b=t[28],b}function Me(){}function H(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,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 U(e){return new Date(e).toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`})}function W(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 Ne({dashboard:e,now:t,checking:n=!1}){let r=(0,N.useMemo)(()=>e.metrics.find(e=>e.lastValue!==null)??e.metrics[0],[e.metrics]),i=oe(e);if(!i||!r)return null;let a=H(r),o=i.label||e.title,s=r.asOf??e.lastRefreshedAt??null,c=e.cadence.data===`manual`?`when you refresh`:W(e.nextDataAt-t),l=r.history??[];return(0,F.jsxs)(`section`,{className:`card dash-hero`,"aria-label":`${o} — as of last check`,children:[(0,F.jsxs)(`div`,{className:`dash-hero-top`,children:[(0,F.jsxs)(`span`,{className:`dash-hero-eyebrow`,children:[o,`: as of last check`]}),(0,F.jsx)(`span`,{className:`dash-hero-meta`,children:n?`checking for new data…`:`as of ${s?U(s):`not yet checked`} / not real-time — next check ${c}`})]}),(0,F.jsxs)(`div`,{className:`dash-hero-value-row`,children:[(0,F.jsx)(`span`,{className:`dash-hero-value${n?` tile-value--checking`:``}`,children:i.value}),a&&(0,F.jsx)(`span`,{className:`dash-hero-delta dash-hero-delta--${a.direction}`,children:a.text})]}),(0,F.jsx)(`div`,{className:`dash-hero-chart`,children:l.length>=2?(0,F.jsx)(ie,{points:l,tone:a?.direction??`flat`}):(0,F.jsx)(`p`,{className:`dash-hero-chart-empty`,children:`Not enough history yet for a chart.`})})]})}function Pe(e){let t=(0,M.c)(6),{dashboard:n}=e,[r,i]=ne();if(E().keyNudgeShown||!T(r)||r.rememberKey||!se(n))return null;let a=G,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,F.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,F.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,F.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,F.jsxs)(`div`,{className:`card dash-key-nudge`,children:[o,(0,F.jsxs)(`div`,{className:`dash-key-nudge-actions`,children:[s,c]})]}),t[4]=s,t[5]=l),l}function G(){return D({keyNudgeShown:!0})}var K={hit:{label:`Called it ✓`,className:`is-hit`},miss:{label:`Missed ✗`,className:`is-miss`},unclear:{label:`Unclear`,className:`is-unclear`}};function q(e){let t=(0,M.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=fe(n.predictionHistory,r),t[2]=n.predictionHistory,t[3]=r,t[4]=s):s=t[4];let c=s,l=o?K[o.result]:null,u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,F.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,F.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,F.jsxs)(`div`,{className:`dash-expects-grade`,children:[(0,F.jsxs)(`span`,{className:`dash-expects-chip ${l.className}`,children:[`Last call: `,l.label]}),(0,F.jsxs)(`p`,{className:`dash-expects-expected`,children:[`“`,o.expected,`”`]}),o.note&&(0,F.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,F.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,F.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,F.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,F.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 Fe(e){let t=(0,M.c)(23),{dashboard:n,now:r}=e,i=A(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,F.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,F.jsx)(`span`,{className:`dash-lastcheck-when`,children:k(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,F.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,F.jsxs)(F.Fragment,{children:[s&&(0,F.jsxs)(`p`,{className:`dash-lastcheck-text dash-lastcheck-about`,children:[`About: `,s.label]}),i?(0,F.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-pending`,children:`Mavéa is reading the latest numbers…`}):c&&(0,F.jsxs)(`p`,{className:`dash-lastcheck-text dash-lastcheck-error`,children:[`A newer check just failed: `,n.lastVerdictError]}),(0,F.jsx)(`p`,{className:`dash-lastcheck-text`,children:a.text}),a.grounded===!1&&(0,F.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,F.jsx)(`div`,{className:`dash-lastcheck-sources`,children:a.sources.map(Ie)})]}):i?(0,F.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-pending`,children:`Mavéa is reading the latest numbers…`}):c?(0,F.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-error`,children:n.lastVerdictError}):(0,F.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-muted`,children:ce(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,F.jsx)(q,{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,F.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 Ie(e){let t=l(e.url);return t?(0,F.jsx)(`a`,{className:`dash-lastcheck-source`,href:t,target:`_blank`,rel:`noopener noreferrer`,title:e.title,children:e.title},e.url):null}var Le=[{v:`15min`,label:`15M`},{v:`hourly`,label:`1H`},{v:`6h`,label:`6H`},{v:`daily`,label:`DAILY`},{v:`manual`,label:`MANUAL`}],Re={"15min":`Every 15 minutes`,hourly:`Hourly`,"6h":`Every 6 hours`,daily:`Daily`,manual:`Manual`};function J(e){if(e===`manual`)return`Refreshes only when you ask — no automatic searches.`;let t=Math.round(1440/d[e]);return`${Re[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 Y(e){return new Date(e).toLocaleString(void 0,{weekday:`short`,hour:`numeric`,minute:`2-digit`})}function ze(e){let t=(0,M.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,F.jsx)(`div`,{className:`card-eyebrow`,children:`Check cadence`}),t[0]=o):o=t[0];let s;t[1]!==n.id||t[2]!==i?(s=Le.map(e=>(0,F.jsx)(`button`,{type:`button`,className:`dash-seg-opt`+(e.v===i?` is-active`:``),"aria-pressed":e.v===i,onClick:()=>f(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,F.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=J(i),t[6]=i,t[7]=l);let d;t[8]===l?d=t[9]:(d=(0,F.jsx)(`p`,{className:`dash-cadence-cost`,children:l}),t[8]=l,t[9]=d);let p;t[10]!==n.id||t[11]!==a?(p=a&&(0,F.jsxs)(`div`,{className:`dash-cadence-window`,children:[(0,F.jsxs)(`p`,{className:`dash-cadence-window-text`,children:[`Live window: `,(0,F.jsx)(`strong`,{children:a.label}),` · `,Y(a.startAt),`–`,Y(a.endAt)]}),(0,F.jsx)(`button`,{type:`button`,className:`dash-cadence-clear`,onClick:()=>u(n.id,null),children:`Clear`})]}),t[10]=n.id,t[11]=a,t[12]=p):p=t[12];let m;t[13]!==n.id||t[14]!==n.oneShotAt||t[15]!==n.oneShotLabel||t[16]!==r?(m=n.oneShotAt!==void 0&&(0,F.jsxs)(`div`,{className:`dash-cadence-oneshot`,children:[(0,F.jsx)(O,{targetAt:n.oneShotAt,now:r,label:n.oneShotLabel}),(0,F.jsx)(`button`,{type:`button`,className:`dash-cadence-clear`,onClick:()=>_(n.id),children:`Clear`})]}),t[13]=n.id,t[14]=n.oneShotAt,t[15]=n.oneShotLabel,t[16]=r,t[17]=m):m=t[17];let h;return t[18]!==c||t[19]!==d||t[20]!==p||t[21]!==m?(h=(0,F.jsxs)(`section`,{className:`card dash-cadence-card`,"aria-label":`Check cadence`,children:[o,c,d,p,m]}),t[18]=c,t[19]=d,t[20]=p,t[21]=m,t[22]=h):h=t[22],h}var X={WATCHING:`Watching`,CLEAR:`Clear`,AWAITING:`Awaiting data`,TRIGGERED:`Triggered`};function Z(e){let t=(0,M.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,F.jsx)(`span`,{className:`dash-switch-knob`}),t[0]=o):o=t[0];let s;t[1]===a?s=t[2]:(s=(0,F.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,F.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,F.jsx)(`span`,{className:`dash-alertcard-crossed`,children:`A line you set has been crossed`}):(0,F.jsx)(`span`,{className:`dash-alertcard-state`,children:X[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,F.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,F.jsxs)(`li`,{className:i,children:[s,d]}),t[11]=i,t[12]=s,t[13]=d,t[14]=f):f=t[14],f}function Be(e){let t=(0,M.c)(5),{dashboard:n}=e;if(n.tripwires.length===0)return null;let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,F.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(Q),t[1]=n.tripwires,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,F.jsxs)(`section`,{className:`card dash-alertcard`,"aria-label":`Your alerts`,children:[r,(0,F.jsx)(`ul`,{className:`dash-alertcard-list`,children:i})]}),t[3]=i,t[4]=a),a}function Q(e){return(0,F.jsx)(Z,{tripwire:e},e.id)}var Ve={1:`S`,2:`M`,3:`L`};function $(e){let t=(0,M.c)(117),{id:n}=e,r=x(),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,[s,l]=(0,N.useState)(!1),[u,d]=(0,N.useState)(!1),f;t[3]===o?.widgets?f=t[4]:(f=o?.widgets.map(qe)??[],t[3]=o?.widgets,t[4]=f);let p=f,g;t[5]===o?g=t[6]:(g=e=>o&&m(o.id,e),t[5]=o,t[6]=g);let _=he(p,g),v;t[7]===o?.widgets?v=t[8]:(v=new Map((o?.widgets??[]).map(Ke)),t[7]=o?.widgets,t[8]=v);let b=v,ee,te;t[9]===o?(ee=t[10],te=t[11]):(ee=()=>{o&&c(o.widgets.map(Ge))},te=[o],t[9]=o,t[10]=ee,t[11]=te),(0,N.useEffect)(ee,te);let C=o?.id,w,E;t[12]===C?(w=t[13],E=t[14]):(w=()=>{C&&ue(C)},E=[C],t[12]=C,t[13]=w,t[14]=E),(0,N.useEffect)(w,E);let[D,ie]=(0,N.useState)(We),O,oe;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(oe=()=>{let e=window.setInterval(()=>ie(Date.now()),3e4);return()=>window.clearInterval(e)},O=[],t[15]=O,t[16]=oe):(O=t[15],oe=t[16]),(0,N.useEffect)(oe,O);let[k]=ne(),A=re(o?.id??``),[j,fe]=(0,N.useState)(`idle`),pe;t[17]===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[17]=pe):pe=t[17];let me=pe,[P,ge]=(0,N.useState)(`idle`),_e;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(_e=async e=>{ge(`busy`);let t=await de(e);ge(t===`no-model`||t===`failed`?t:`idle`)},t[18]=_e):_e=t[18];let ve=_e;if(!o){let e;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,F.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,F.jsx)(`div`,{className:`dash-detail`,children:(0,F.jsxs)(`div`,{className:`dash-empty`,children:[e,(0,F.jsxs)(`p`,{className:`dash-empty-how`,children:[`It may have been removed. `,(0,F.jsx)(`a`,{href:S.gallery,children:`Back to your dashboards →`})]})]})}),t[20]=n):n=t[20],n}let ye;t[21]===o.id?ye=t[22]:(ye=(e,t)=>{h(o.id,e,t>=3?1:t+1)},t[21]=o.id,t[22]=ye);let be=ye,xe;t[23]!==b||t[24]!==be||t[25]!==o||t[26]!==s||t[27]!==_?(xe=_.order.map(e=>{let t=b.get(e);if(!t)return null;let n=t.metricId?o.metrics.find(e=>e.id===t.metricId):null,r=!s&&n?.blankKey?(0,F.jsx)(De,{dashboardId:o.id,metric:n}):void 0;return(0,F.jsx)(we,{dashboard:o,widget:t,editing:s,dragging:_.draggingId===t.id,footer:r,children:s&&(0,F.jsxs)(`div`,{className:`dash-tile-chrome`,children:[(0,F.jsx)(`span`,{className:`dash-tile-handle`,..._.handleProps(t.id),children:`⠿`}),(0,F.jsxs)(`div`,{className:`dash-tile-ctrls`,children:[(0,F.jsx)(`button`,{type:`button`,className:`dash-tile-size`,onClick:()=>be(t.id,t.span),title:`Resize`,children:Ve[t.span]}),(0,F.jsx)(`button`,{type:`button`,className:`dash-tile-x`,onClick:()=>y(o.id,t.id),"aria-label":`Remove widget`,children:`×`})]})]})},t.id)}),t[23]=b,t[24]=be,t[25]=o,t[26]=s,t[27]=_,t[28]=xe):xe=t[28];let Se=xe,Ce;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(Ce=(0,F.jsx)(`a`,{className:`dash-back`,href:S.gallery,"aria-label":`Back to dashboards`,children:`←`}),t[29]=Ce):Ce=t[29];let I;t[30]===o.title?I=t[31]:(I=(0,F.jsx)(`span`,{className:`dash-detail-title`,children:o.title}),t[30]=o.title,t[31]=I);let L;t[32]===o.question?L=t[33]:(L=o.question&&(0,F.jsxs)(`span`,{className:`dash-detail-q`,title:o.question,children:[`“`,o.question,`”`]}),t[32]=o.question,t[33]=L);let Te;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,F.jsx)(`i`,{className:`dash-live-dot`}),t[34]=Te):Te=t[34];let R;t[35]!==o||t[36]!==A||t[37]!==D?(R=A?`checking for new data…`:ce(o,D),t[35]=o,t[36]=A,t[37]=D,t[38]=R):R=t[38];let Oe=!A&&se(o)&&o.cadence.data!==`manual`?` · refreshes while open`:``,z;t[39]!==R||t[40]!==Oe?(z=(0,F.jsxs)(`span`,{className:`dash-detail-clock`,children:[Te,R,Oe]}),t[39]=R,t[40]=Oe,t[41]=z):z=t[41];let B;t[42]===o.id?B=t[43]:(B=()=>void me(o.id),t[42]=o.id,t[43]=B);let ke=j===`busy`,Ae=j===`busy`?`dash-refresh-spin`:void 0,V;t[44]===Ae?V=t[45]:(V=(0,F.jsx)(a.refresh,{className:Ae}),t[44]=Ae,t[45]=V);let Me=j===`busy`?`Refreshing…`:`Refresh now`,H;t[46]!==B||t[47]!==ke||t[48]!==V||t[49]!==Me?(H=(0,F.jsxs)(`button`,{type:`button`,className:`dash-edit-btn dash-refresh-btn`,onClick:B,disabled:ke,title:`Fetch current values now, regardless of cadence`,children:[V,Me]}),t[46]=B,t[47]=ke,t[48]=V,t[49]=Me,t[50]=H):H=t[50];let U;t[51]!==o||t[52]!==k||t[53]!==j?(U=(j===`no-model`||!T(k)&&se(o))&&(0,F.jsx)(`span`,{className:`dash-refresh-hint`,children:`Connect a model in Live settings to refresh.`}),t[51]=o,t[52]=k,t[53]=j,t[54]=U):U=t[54];let W;t[55]===j?W=t[56]:(W=j===`failed`&&(0,F.jsx)(`span`,{className:`dash-refresh-hint`,children:`Couldn’t reach your model — check its key or quota, then try again.`}),t[55]=j,t[56]=W);let G;t[57]!==o.id||t[58]!==o.metrics.length||t[59]!==P?(G=o.metrics.length>0&&(0,F.jsxs)(`button`,{type:`button`,className:`dash-edit-btn dash-read-btn`,onClick:()=>void ve(o.id),disabled:P===`busy`,title:`Ask Mavéa to read the latest numbers now`,children:[(0,F.jsx)(a.sparkle,{className:P===`busy`?`dash-refresh-spin`:void 0}),P===`busy`?`Reading…`:`Read the numbers now`]}),t[57]=o.id,t[58]=o.metrics.length,t[59]=P,t[60]=G):G=t[60];let K;t[61]===P?K=t[62]:(K=P===`no-model`&&(0,F.jsx)(`span`,{className:`dash-refresh-hint`,children:`Connect a model in Live settings to read.`}),t[61]=P,t[62]=K);let q;t[63]===P?q=t[64]:(q=P===`failed`&&(0,F.jsx)(`span`,{className:`dash-refresh-hint`,children:`Couldn’t reach your model — check its key or quota, then try again.`}),t[63]=P,t[64]=q);let Ie=`dash-edit-btn`+(s?` is-active`:``),Le;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(Le=()=>{l(Ue),d(!1)},t[65]=Le):Le=t[65];let Re=s?`Done`:`Edit layout`,J;t[66]!==Ie||t[67]!==Re?(J=(0,F.jsx)(`button`,{type:`button`,className:Ie,onClick:Le,children:Re}),t[66]=Ie,t[67]=Re,t[68]=J):J=t[68];let Y;t[69]===o.id?Y=t[70]:(Y=S.settings(o.id),t[69]=o.id,t[70]=Y);let X;t[71]===Y?X=t[72]:(X=(0,F.jsx)(`a`,{className:`dash-gear`,href:Y,"aria-label":`Dashboard settings`,title:`Settings`,children:`⚙`}),t[71]=Y,t[72]=X);let Z;t[73]!==I||t[74]!==L||t[75]!==z||t[76]!==H||t[77]!==U||t[78]!==W||t[79]!==G||t[80]!==K||t[81]!==q||t[82]!==J||t[83]!==X?(Z=(0,F.jsxs)(`header`,{className:`dash-detail-head`,children:[Ce,I,L,z,H,U,W,G,K,q,J,X]}),t[73]=I,t[74]=L,t[75]=z,t[76]=H,t[77]=U,t[78]=W,t[79]=G,t[80]=K,t[81]=q,t[82]=J,t[83]=X,t[84]=Z):Z=t[84];let Q;t[85]!==o||t[86]!==s?(Q=!s&&(0,F.jsx)(Pe,{dashboard:o}),t[85]=o,t[86]=s,t[87]=Q):Q=t[87];let $;t[88]!==o||t[89]!==A||t[90]!==s||t[91]!==D?($=!s&&(0,F.jsx)(Ne,{dashboard:o,now:D,checking:A}),t[88]=o,t[89]=A,t[90]=s,t[91]=D,t[92]=$):$=t[92];let Je;t[93]!==o||t[94]!==s||t[95]!==D?(Je=!s&&(0,F.jsx)(Fe,{dashboard:o,now:D}),t[93]=o,t[94]=s,t[95]=D,t[96]=Je):Je=t[96];let Ye;t[97]!==o||t[98]!==s||t[99]!==u?(Ye=s&&(0,F.jsxs)(`div`,{className:`dash-edit-bar`,children:[(0,F.jsxs)(`span`,{className:`dash-edit-hint`,children:[`Drag a tile by its `,(0,F.jsx)(`strong`,{children:`⠿`}),` handle to reorder, tap `,(0,F.jsx)(`strong`,{children:`S/M/L`}),` to resize, `,(0,F.jsx)(`strong`,{children:`×`}),` to remove.`]}),(0,F.jsx)(`button`,{type:`button`,className:`dash-edit-add`,onClick:()=>d(He),"aria-expanded":u,children:`+ Add widget`}),u&&(0,F.jsx)(Ee,{dashboard:o,onClose:()=>d(!1)})]}),t[97]=o,t[98]=s,t[99]=u,t[100]=Ye):Ye=t[100];let Xe;t[101]!==o||t[102]!==s||t[103]!==D||t[104]!==Se?(Xe=s?(0,F.jsx)(`div`,{className:`dash-grid`,children:Se}):(0,F.jsxs)(`div`,{className:`dash-detail-cols`,children:[(0,F.jsxs)(`div`,{className:`dash-detail-main`,children:[o.widgets.length>0&&(0,F.jsxs)(`div`,{className:`dash-detail-section`,children:[(0,F.jsx)(`div`,{className:`card-eyebrow dash-detail-section-title`,children:`Cards`}),(0,F.jsx)(`div`,{className:`dash-grid`,children:Se})]}),(0,F.jsx)(ae,{dashboardId:o.id})]}),(0,F.jsxs)(`div`,{className:`dash-detail-side`,children:[(0,F.jsx)(ze,{dashboard:o,now:D}),(0,F.jsx)(Be,{dashboard:o})]})]}),t[101]=o,t[102]=s,t[103]=D,t[104]=Se,t[105]=Xe):Xe=t[105];let Ze;t[106]!==o||t[107]!==s?(Ze=!s&&(0,F.jsx)(je,{dashboard:o},o.id),t[106]=o,t[107]=s,t[108]=Ze):Ze=t[108];let Qe;return t[109]!==Z||t[110]!==Q||t[111]!==$||t[112]!==Je||t[113]!==Ye||t[114]!==Xe||t[115]!==Ze?(Qe=(0,F.jsxs)(`div`,{className:`dash-detail`,children:[Z,Q,$,Je,Ye,Xe,Ze]}),t[109]=Z,t[110]=Q,t[111]=$,t[112]=Je,t[113]=Ye,t[114]=Xe,t[115]=Ze,t[116]=Qe):Qe=t[116],Qe}function He(e){return!e}function Ue(e){return!e}function We(){return Date.now()}function Ge(e){return e.block}function Ke(e){return[e.id,e]}function qe(e){return e.id}export{$ as DashboardDetail};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/generateLive-BvE3kOrf.js","assets/blockLabel-DAqaHKy3.js","assets/liveSchema-DbjsSolX.js","assets/catalog-BrmxA4bP.js","assets/index-DOpl5xzv.js","assets/chunk-BVpWp9h4.js","assets/jsx-runtime-DaSxXjOY.js","assets/react-BQSORdFI.js","assets/lazyRetry-D50B1UMY.js","assets/index-CepQEz75.css","assets/facts-BBTt3ImG.js","assets/annotations-D2K9A5GB.js","assets/providers-wzm7E8Pa.js","assets/http-CJCtjYpA.js","assets/info-CiqHR5cs.js","assets/icons-CHVz6kv_.js","assets/catalog-BHjl-1uH.js","assets/safeImageUrl-CUkucDUu.js","assets/sourceHost-BV3t2XDb.js","assets/spokenText-D4zPX9JY.js","assets/streamParse-DRgMHWye.js","assets/shapes-Cw7tCHIp.js","assets/contentVault-DzTYWcbD.js","assets/keyVault-DEsNh9FR.js","assets/now-C9-UAzTC.js","assets/number-DXgzss0v.js","assets/layout-BFQOzXtG.js","assets/screen-DLR7p_yP.js","assets/search-Be63DJkp.js","assets/speed-DwPw9KSv.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{J as n,ht as r,q as i}from"./index-DOpl5xzv.js";import{n as a}from"./icons-CHVz6kv_.js";import{t as o}from"./useFocusTrap-DbfG6zbM.js";import{t as s}from"./TopicCanvas-CKvJb_8Y.js";import{f as c}from"./CanvasSkeleton-D00MzkIV.js";import{r as l}from"./sourceHost-BV3t2XDb.js";import"./canvas-BrUiUI9Q.js";import{A as u,B as d,F as f,L as p,M as m,P as h,R as g,_,b as v,k as y,m as b,o as x,s as S,x as ee,y as te}from"./useStudy-hvN-iGz0.js";import{l as C,n as w,r as T,u as ne}from"./useLiveConfig-DIvKKKpP.js";import{f as re,g as E,h as D}from"./dashboardEvents-DT6ye9n7.js";import{a as ie,i as O,t as ae}from"./CheckLogRail--9iHharq.js";import{a as oe,i as se,n as ce,t as k}from"./format-hc2QOoIu.js";import{a as A,n as le,o as ue,s as j,t as de}from"./useDashboardLoop-CJ0M7ZXf.js";import{r as fe}from"./predictions-CYS7Vo39.js";import{t as pe}from"./planTracker-7AMCQPNx.js";import{t as me}from"./pin-DoSzEmTm.js";/* empty css */var M=r(),N=e();function P(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 he(e,t){let[n,r]=(0,N.useState)(null),[i,a]=(0,N.useState)(null),o=(0,N.useRef)({working:null,draggingId:null,onCommit:t,sourceIds:e,cleanup:null});o.current.onCommit=t,o.current.sourceIds=e,(0,N.useEffect)(()=>()=>o.current.cleanup?.(),[]);let s=(0,N.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=P(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,N.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 ge={WATCHING:`watching`,CLEAR:`clear`,TRIGGERED:`triggered`,AWAITING:`awaiting`},_e={ORIGIN:`origin`,ADDED:`added`,LINKED:`linked`},ve={CLEAR:1,WATCHING:.75,TRIGGERED:0,AWAITING:0};function ye(e){let t=e.tripwires.filter(e=>e.state!==`AWAITING`);if(t.length===0)return null;let n=t.reduce((e,t)=>e+ve[t.state],0);return Math.round(100*n/t.length)}function be(e){return e===null?``:e>=80?`Tracking well`:e>=55?`Holding, with risks`:e>=30?`Slipping`:`Lines are breaking`}var xe=new Set([`thesis`,`alignmentgauge`,`standingalerts`,`sourceslineage`]);function Se(e,t){let n=t.block.type;if(!xe.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??`${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:ge[n.state]}:{}};return{...t.block,props:i}}if(n===`alignmentgauge`){let n=ye(e),r={pct:n,band:be(n)};return{...t.block,props:r}}if(n===`standingalerts`){let n={alerts:e.tripwires.map(e=>({label:e.label,state:ge[e.state]}))};return{...t.block,props:n}}let i={rows:e.sources.map(e=>({kind:_e[e.kind],label:e.title,...e.contributed?{contributed:e.contributed}:{}}))};return{...t.block,props:i}}var F=t();function Ce(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 we(e){let t=(0,M.c)(18),{dashboard:n,widget:r,editing:i,dragging:a,children:o,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=Ce(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,F.jsx)(s,{data:f,spot:null,built:v,onProve:I}),t[10]=f,t[11]=y);let b;return t[12]!==o||t[13]!==_||t[14]!==c||t[15]!==y||t[16]!==r.id?(b=(0,F.jsxs)(`div`,{className:_,"data-dash-widget":r.id,children:[o,y,c]}),t[12]=o,t[13]=_,t[14]=c,t[15]=y,t[16]=r.id,t[17]=b):b=t[17],b}function I(){}function L(){return`w-`+Math.random().toString(36).slice(2,8)}function Te(e){let t=new Set(e.widgets.map(e=>e.block.type));return[{key:`note`,label:`Note`,make:()=>({block:{type:`list`,col:12,id:L(),props:{title:`Note`,items:[`Add a note about this dashboard.`]}},span:2})},{key:`thesis`,label:`Reasoning note`,make:()=>({block:{type:`thesis`,col:12,id:L(),props:{reasoning:``}},span:2})},{key:`alignmentgauge`,label:`Alignment gauge`,make:()=>({block:{type:`alignmentgauge`,col:12,id:L(),props:{pct:null}},span:1})},{key:`standingalerts`,label:`Standing alerts`,make:()=>({block:{type:`standingalerts`,col:12,id:L(),props:{alerts:[]}},span:1})},{key:`sourceslineage`,label:`Sources`,make:()=>({block:{type:`sourceslineage`,col:12,id:L(),props:{rows:[]}},span:2})}].filter(e=>e.key===`note`||!t.has(e.key))}function Ee(e){let t=(0,M.c)(26),{dashboard:n,onClose:r}=e,[i,a]=(0,N.useState)(`menu`),[s,c]=(0,N.useState)(``),[l,u]=(0,N.useState)(!1),[d,f]=(0,N.useState)(null),p=Te(n),m=!!C(w()).apiKey,h;t[0]!==n||t[1]!==r?(h=e=>{let{block:t,span:i}=e.make(),a={id:L(),block:t,span:i,fromSource:`manual`};b(n.id,a),r()},t[0]=n,t[1]=r,t[2]=h):h=t[2];let g=h,_=(0,N.useRef)(!0),y,x;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(y=()=>(_.current=!0,()=>{_.current=!1}),x=[],t[3]=y,t[4]=x):(y=t[3],x=t[4]),(0,N.useEffect)(y,x);let S;t[5]!==s||t[6]!==n||t[7]!==r||t[8]!==l?(S=async()=>{let e=s.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,C(w()));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(),o={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:L(),block:{type:`insight`,col:12,id:`blk-${a}`,num:`1`,props:{title:o.label,stat:`—`,conf:`inferred`,summary:o.label}},span:1,metricId:o.id,fromSource:`manual`};v(n.id,{metrics:[o],tripwires:[],widgets:[c],source:{kind:`ADDED`,conversationId:`manual`,title:`Added by hand`,contributed:`Tracking ${o.label}`,at:a}}),te(n.id,a),le(n.id),r()},t[5]=s,t[6]=n,t[7]=r,t[8]=l,t[9]=S):S=t[9];let ee=S,T=(0,N.useRef)(null),ne;t[10]===r?ne=t[11]:(ne={onEscape:r},t[10]=r,t[11]=ne),o(T,ne);let re=(0,N.useRef)(null),E,D;t[12]===i?(E=t[13],D=t[14]):(E=()=>{i===`track`?re.current?.focus():T.current?.querySelector(`.dash-palette-item`)?.focus()},D=[i],t[12]=i,t[13]=E,t[14]=D),(0,N.useEffect)(E,D);let ie,O;t[15]===r?(ie=t[16],O=t[17]):(ie=()=>{let e=T.current?.parentElement;if(!e)return;let t=t=>{e.contains(t.target)||r()};return document.addEventListener(`pointerdown`,t),()=>document.removeEventListener(`pointerdown`,t)},O=[r],t[15]=r,t[16]=ie,t[17]=O),(0,N.useEffect)(ie,O);let ae;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(ae=e=>{let t=Array.from(T.current?.querySelectorAll(`.dash-palette-item`)??[]);t.length&&t[(t.indexOf(document.activeElement)+e+t.length)%t.length]?.focus()},t[18]=ae):ae=t[18];let oe=ae,se=i===`menu`?`menu`:`dialog`,ce=i===`menu`?`Add a widget`:`Track a number`,k;t[19]===i?k=t[20]:(k=e=>{i===`menu`&&(e.key!==`ArrowDown`&&e.key!==`ArrowUp`||(e.preventDefault(),oe(e.key===`ArrowDown`?1:-1)))},t[19]=i,t[20]=k);let A=i===`menu`?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`button`,{type:`button`,role:`menuitem`,className:`dash-palette-item dash-palette-lead`,onClick:()=>a(`track`),children:`+ Track a number`}),p.map(e=>(0,F.jsxs)(`button`,{type:`button`,role:`menuitem`,className:`dash-palette-item`,onClick:()=>g(e),children:[`+ `,e.label]},e.key))]}):(0,F.jsxs)(`div`,{className:`dash-ptrack`,children:[(0,F.jsxs)(`div`,{className:`dash-ptrack-head`,children:[(0,F.jsx)(`button`,{type:`button`,className:`dash-ptrack-back`,"aria-label":`Back to widget list`,onClick:()=>a(`menu`),children:`←`}),(0,F.jsx)(`span`,{className:`dash-ptrack-kicker`,children:`Track a number`})]}),m?(0,F.jsxs)(`form`,{className:`dash-ptrack-form`,onSubmit:e=>{e.preventDefault(),ee()},children:[(0,F.jsx)(`input`,{ref:re,className:`dash-ptrack-input`,value:s,placeholder:`BTC price, SF temperature, 10-year yield…`,"aria-label":`What number to track`,disabled:l,onChange:e=>c(e.target.value)}),d&&(0,F.jsx)(`p`,{className:`dash-ptrack-err`,children:d}),(0,F.jsx)(`button`,{type:`submit`,className:`dash-ptrack-go`,disabled:l||!s.trim(),children:l?`Planning…`:`Track · 1 call + 1 search`})]}):(0,F.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,F.jsx)(`a`,{href:`#/live`,children:`Connect a model in Live`}),` first.`]})]}),ue;return t[21]!==se||t[22]!==ce||t[23]!==k||t[24]!==A?(ue=(0,F.jsx)(`div`,{ref:T,className:`dash-palette`,role:se,"aria-label":ce,tabIndex:-1,onKeyDown:k,children:A}),t[21]=se,t[22]=ce,t[23]=k,t[24]=A,t[25]=ue):ue=t[25],ue}function De(e){let t=(0,M.c)(24),{dashboardId:n,metric:r}=e,[i,a]=(0,N.useState)(r.lastValue===null?``:String(r.lastValue)),o;t[0]!==n||t[1]!==r.id||t[2]!==r.lastValue||t[3]!==r.unit||t[4]!==i?(o=()=>{let e=Number(i.replace(/[^0-9.+-]/g,``));if(i.trim()===``||!Number.isFinite(e))return;let t=Date.now(),a=r.lastValue;p(n,r.id,e,`${e}${r.unit??``}`,`user`,t);let o=ee(n);if(o){let{tripwires:e}=j(o,{[r.id]:a});g(n,e,t)}},t[0]=n,t[1]=r.id,t[2]=r.lastValue,t[3]=r.unit,t[4]=i,t[5]=o):o=t[5];let s=o,c;t[6]===s?c=t[7]:(c=e=>{e.preventDefault(),s()},t[6]=s,t[7]=c);let l=`Set ${r.label}…`,u=`Set ${r.label}`,d;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(d=e=>a(e.target.value),t[8]=d):d=t[8];let f;t[9]!==l||t[10]!==u||t[11]!==i?(f=(0,F.jsx)(`input`,{className:`dash-fill-input`,value:i,inputMode:`decimal`,placeholder:l,"aria-label":u,onChange:d}),t[9]=l,t[10]=u,t[11]=i,t[12]=f):f=t[12];let m;t[13]===r.unit?m=t[14]:(m=r.unit&&(0,F.jsx)(`span`,{className:`dash-fill-unit`,children:r.unit}),t[13]=r.unit,t[14]=m);let h;t[15]===i?h=t[16]:(h=i.trim(),t[15]=i,t[16]=h);let _=h===``,v;t[17]===_?v=t[18]:(v=(0,F.jsx)(`button`,{type:`submit`,className:`dash-fill-save`,disabled:_,children:`Save`}),t[17]=_,t[18]=v);let y;return t[19]!==v||t[20]!==c||t[21]!==f||t[22]!==m?(y=(0,F.jsxs)(`form`,{className:`dash-fill`,onSubmit:c,children:[f,m,v]}),t[19]=v,t[20]=c,t[21]=f,t[22]=m,t[23]=y):y=t[23],y}n();var R=()=>i(()=>import(`./generateLive-BvE3kOrf.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]));function Oe(){return!!C(w()).apiKey}function z(e){let t=(0,M.c)(15),[n,r]=(0,N.useState)(!1),[i,a]=(0,N.useState)(null),[o,s]=(0,N.useState)(null),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=[],t[0]=c):c=t[0];let l=(0,N.useRef)(c),u=(0,N.useRef)(!1),d=(0,N.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,N.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,N.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=C(w()),o=e.widgets.map(t=>Se(e,t)),c=new AbortController;d.current=c,R().then(e=>{let{generateLive:t}=e;return t(n,l.current,i,void 0,{selectedBlocks:o,signal:c.signal})}).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 B=/^(add|track|watch|monitor|follow)\b/i;function ke(e){let t=e.trim();return t&&B.test(t)?`add`:`ask`}function Ae(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 V(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,M.c)(29),{dashboard:n}=e,r=z(n),[i,a]=(0,N.useState)(``),[o,c]=(0,N.useState)(!1),[l,u]=(0,N.useState)(`ask`),d;t[0]===n?d=t[1]:(d=Ae(n),t[0]=n,t[1]=d);let f=d,p;t[2]===r?p=t[3]:(p=e=>{c(!1),u(ke(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]!==o||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&&!o&&(V(n.id,r.lastAsk??``,r.result.spec.blocks),c(!0))},g=[l,r.loading,r.result,r.lastAsk,o,n.id],t[4]=l,t[5]=n.id,t[6]=o,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,N.useEffect)(h,g);let _;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,F.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,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`div`,{className:`dash-talk-chips`,children:f.map(e=>(0,F.jsxs)(`button`,{type:`button`,className:`dash-talk-chip`,disabled:r.loading,onClick:()=>m(e),children:[(0,F.jsx)(`span`,{className:`dash-talk-chip-orb`}),(0,F.jsxs)(`span`,{className:`dash-talk-chip-t`,children:[`“`,e,`”`]})]},e))}),(0,F.jsxs)(`form`,{className:`dash-talk-ask`,onSubmit:e=>{e.preventDefault(),m(i)},children:[(0,F.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,F.jsx)(`button`,{type:`submit`,className:`dash-talk-send`,disabled:r.loading||!i.trim(),children:r.loading?`Thinking…`:`Ask`})]})]}):(0,F.jsxs)(`p`,{className:`dash-talk-gate`,children:[`Connect a model in `,(0,F.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]!==o||t[22]!==r.lastAsk||t[23]!==r.loading||t[24]!==r.result?(y=r.lastAsk&&(0,F.jsxs)(`div`,{className:`dash-talk-answer`,children:[(0,F.jsxs)(`div`,{className:`dash-talk-q`,children:[`“`,r.lastAsk,`”`]}),r.loading?(0,F.jsx)(`div`,{className:`dash-talk-thinking`,children:`Mavéa is looking at your dashboard…`}):r.result?.error?(0,F.jsxs)(`div`,{className:`dash-talk-error`,children:[`That didn’t go through. Check your model in `,(0,F.jsx)(`a`,{href:`#/live`,children:`Live`}),` and try again.`]}):r.result?(0,F.jsxs)(F.Fragment,{children:[r.result.narration&&(0,F.jsx)(`p`,{className:`dash-talk-narration`,children:r.result.narration}),(0,F.jsx)(s,{data:r.result.spec,spot:null,built:{},onProve:Me}),r.result.spec.blocks.length>0&&(o?(0,F.jsx)(`div`,{className:`dash-talk-pinned`,children:l===`add`?(0,F.jsx)(F.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,F.jsx)(`button`,{type:`button`,className:`dash-talk-pin`,onClick:()=>{V(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]=o,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,F.jsxs)(`section`,{className:`dash-talk`,children:[_,v,y]}),t[26]=v,t[27]=y,t[28]=b):b=t[28],b}function Me(){}function H(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,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 U(e){return new Date(e).toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`})}function W(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 Ne({dashboard:e,now:t,checking:n=!1}){let r=(0,N.useMemo)(()=>e.metrics.find(e=>e.lastValue!==null)??e.metrics[0],[e.metrics]),i=oe(e);if(!i||!r)return null;let a=H(r),o=i.label||e.title,s=r.asOf??e.lastRefreshedAt??null,c=e.cadence.data===`manual`?`when you refresh`:W(e.nextDataAt-t),l=r.history??[];return(0,F.jsxs)(`section`,{className:`card dash-hero`,"aria-label":`${o} — as of last check`,children:[(0,F.jsxs)(`div`,{className:`dash-hero-top`,children:[(0,F.jsxs)(`span`,{className:`dash-hero-eyebrow`,children:[o,`: as of last check`]}),(0,F.jsx)(`span`,{className:`dash-hero-meta`,children:n?`checking for new data…`:`as of ${s?U(s):`not yet checked`} / not real-time — next check ${c}`})]}),(0,F.jsxs)(`div`,{className:`dash-hero-value-row`,children:[(0,F.jsx)(`span`,{className:`dash-hero-value${n?` tile-value--checking`:``}`,children:i.value}),a&&(0,F.jsx)(`span`,{className:`dash-hero-delta dash-hero-delta--${a.direction}`,children:a.text})]}),(0,F.jsx)(`div`,{className:`dash-hero-chart`,children:l.length>=2?(0,F.jsx)(ie,{points:l,tone:a?.direction??`flat`}):(0,F.jsx)(`p`,{className:`dash-hero-chart-empty`,children:`Not enough history yet for a chart.`})})]})}function Pe(e){let t=(0,M.c)(6),{dashboard:n}=e,[r,i]=ne();if(E().keyNudgeShown||!T(r)||r.rememberKey||!se(n))return null;let a=G,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,F.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,F.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,F.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,F.jsxs)(`div`,{className:`card dash-key-nudge`,children:[o,(0,F.jsxs)(`div`,{className:`dash-key-nudge-actions`,children:[s,c]})]}),t[4]=s,t[5]=l),l}function G(){return D({keyNudgeShown:!0})}var K={hit:{label:`Called it ✓`,className:`is-hit`},miss:{label:`Missed ✗`,className:`is-miss`},unclear:{label:`Unclear`,className:`is-unclear`}};function q(e){let t=(0,M.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=fe(n.predictionHistory,r),t[2]=n.predictionHistory,t[3]=r,t[4]=s):s=t[4];let c=s,l=o?K[o.result]:null,u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,F.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,F.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,F.jsxs)(`div`,{className:`dash-expects-grade`,children:[(0,F.jsxs)(`span`,{className:`dash-expects-chip ${l.className}`,children:[`Last call: `,l.label]}),(0,F.jsxs)(`p`,{className:`dash-expects-expected`,children:[`“`,o.expected,`”`]}),o.note&&(0,F.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,F.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,F.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,F.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,F.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 Fe(e){let t=(0,M.c)(23),{dashboard:n,now:r}=e,i=A(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,F.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,F.jsx)(`span`,{className:`dash-lastcheck-when`,children:k(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,F.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,F.jsxs)(F.Fragment,{children:[s&&(0,F.jsxs)(`p`,{className:`dash-lastcheck-text dash-lastcheck-about`,children:[`About: `,s.label]}),i?(0,F.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-pending`,children:`Mavéa is reading the latest numbers…`}):c&&(0,F.jsxs)(`p`,{className:`dash-lastcheck-text dash-lastcheck-error`,children:[`A newer check just failed: `,n.lastVerdictError]}),(0,F.jsx)(`p`,{className:`dash-lastcheck-text`,children:a.text}),a.grounded===!1&&(0,F.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,F.jsx)(`div`,{className:`dash-lastcheck-sources`,children:a.sources.map(Ie)})]}):i?(0,F.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-pending`,children:`Mavéa is reading the latest numbers…`}):c?(0,F.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-error`,children:n.lastVerdictError}):(0,F.jsx)(`p`,{className:`dash-lastcheck-text dash-lastcheck-muted`,children:ce(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,F.jsx)(q,{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,F.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 Ie(e){let t=l(e.url);return t?(0,F.jsx)(`a`,{className:`dash-lastcheck-source`,href:t,target:`_blank`,rel:`noopener noreferrer`,title:e.title,children:e.title},e.url):null}var Le=[{v:`15min`,label:`15M`},{v:`hourly`,label:`1H`},{v:`6h`,label:`6H`},{v:`daily`,label:`DAILY`},{v:`manual`,label:`MANUAL`}],Re={"15min":`Every 15 minutes`,hourly:`Hourly`,"6h":`Every 6 hours`,daily:`Daily`,manual:`Manual`};function J(e){if(e===`manual`)return`Refreshes only when you ask — no automatic searches.`;let t=Math.round(1440/d[e]);return`${Re[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 Y(e){return new Date(e).toLocaleString(void 0,{weekday:`short`,hour:`numeric`,minute:`2-digit`})}function ze(e){let t=(0,M.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,F.jsx)(`div`,{className:`card-eyebrow`,children:`Check cadence`}),t[0]=o):o=t[0];let s;t[1]!==n.id||t[2]!==i?(s=Le.map(e=>(0,F.jsx)(`button`,{type:`button`,className:`dash-seg-opt`+(e.v===i?` is-active`:``),"aria-pressed":e.v===i,onClick:()=>f(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,F.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=J(i),t[6]=i,t[7]=l);let d;t[8]===l?d=t[9]:(d=(0,F.jsx)(`p`,{className:`dash-cadence-cost`,children:l}),t[8]=l,t[9]=d);let p;t[10]!==n.id||t[11]!==a?(p=a&&(0,F.jsxs)(`div`,{className:`dash-cadence-window`,children:[(0,F.jsxs)(`p`,{className:`dash-cadence-window-text`,children:[`Live window: `,(0,F.jsx)(`strong`,{children:a.label}),` · `,Y(a.startAt),`–`,Y(a.endAt)]}),(0,F.jsx)(`button`,{type:`button`,className:`dash-cadence-clear`,onClick:()=>u(n.id,null),children:`Clear`})]}),t[10]=n.id,t[11]=a,t[12]=p):p=t[12];let m;t[13]!==n.id||t[14]!==n.oneShotAt||t[15]!==n.oneShotLabel||t[16]!==r?(m=n.oneShotAt!==void 0&&(0,F.jsxs)(`div`,{className:`dash-cadence-oneshot`,children:[(0,F.jsx)(O,{targetAt:n.oneShotAt,now:r,label:n.oneShotLabel}),(0,F.jsx)(`button`,{type:`button`,className:`dash-cadence-clear`,onClick:()=>_(n.id),children:`Clear`})]}),t[13]=n.id,t[14]=n.oneShotAt,t[15]=n.oneShotLabel,t[16]=r,t[17]=m):m=t[17];let h;return t[18]!==c||t[19]!==d||t[20]!==p||t[21]!==m?(h=(0,F.jsxs)(`section`,{className:`card dash-cadence-card`,"aria-label":`Check cadence`,children:[o,c,d,p,m]}),t[18]=c,t[19]=d,t[20]=p,t[21]=m,t[22]=h):h=t[22],h}var X={WATCHING:`Watching`,CLEAR:`Clear`,AWAITING:`Awaiting data`,TRIGGERED:`Triggered`};function Z(e){let t=(0,M.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,F.jsx)(`span`,{className:`dash-switch-knob`}),t[0]=o):o=t[0];let s;t[1]===a?s=t[2]:(s=(0,F.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,F.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,F.jsx)(`span`,{className:`dash-alertcard-crossed`,children:`A line you set has been crossed`}):(0,F.jsx)(`span`,{className:`dash-alertcard-state`,children:X[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,F.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,F.jsxs)(`li`,{className:i,children:[s,d]}),t[11]=i,t[12]=s,t[13]=d,t[14]=f):f=t[14],f}function Be(e){let t=(0,M.c)(5),{dashboard:n}=e;if(n.tripwires.length===0)return null;let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,F.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(Q),t[1]=n.tripwires,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,F.jsxs)(`section`,{className:`card dash-alertcard`,"aria-label":`Your alerts`,children:[r,(0,F.jsx)(`ul`,{className:`dash-alertcard-list`,children:i})]}),t[3]=i,t[4]=a),a}function Q(e){return(0,F.jsx)(Z,{tripwire:e},e.id)}var Ve={1:`S`,2:`M`,3:`L`};function $(e){let t=(0,M.c)(117),{id:n}=e,r=x(),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,[s,l]=(0,N.useState)(!1),[u,d]=(0,N.useState)(!1),f;t[3]===o?.widgets?f=t[4]:(f=o?.widgets.map(qe)??[],t[3]=o?.widgets,t[4]=f);let p=f,g;t[5]===o?g=t[6]:(g=e=>o&&m(o.id,e),t[5]=o,t[6]=g);let _=he(p,g),v;t[7]===o?.widgets?v=t[8]:(v=new Map((o?.widgets??[]).map(Ke)),t[7]=o?.widgets,t[8]=v);let b=v,ee,te;t[9]===o?(ee=t[10],te=t[11]):(ee=()=>{o&&c(o.widgets.map(Ge))},te=[o],t[9]=o,t[10]=ee,t[11]=te),(0,N.useEffect)(ee,te);let C=o?.id,w,E;t[12]===C?(w=t[13],E=t[14]):(w=()=>{C&&ue(C)},E=[C],t[12]=C,t[13]=w,t[14]=E),(0,N.useEffect)(w,E);let[D,ie]=(0,N.useState)(We),O,oe;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(oe=()=>{let e=window.setInterval(()=>ie(Date.now()),3e4);return()=>window.clearInterval(e)},O=[],t[15]=O,t[16]=oe):(O=t[15],oe=t[16]),(0,N.useEffect)(oe,O);let[k]=ne(),A=re(o?.id??``),[j,fe]=(0,N.useState)(`idle`),pe;t[17]===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[17]=pe):pe=t[17];let me=pe,[P,ge]=(0,N.useState)(`idle`),_e;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(_e=async e=>{ge(`busy`);let t=await de(e);ge(t===`no-model`||t===`failed`?t:`idle`)},t[18]=_e):_e=t[18];let ve=_e;if(!o){let e;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,F.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,F.jsx)(`div`,{className:`dash-detail`,children:(0,F.jsxs)(`div`,{className:`dash-empty`,children:[e,(0,F.jsxs)(`p`,{className:`dash-empty-how`,children:[`It may have been removed. `,(0,F.jsx)(`a`,{href:S.gallery,children:`Back to your dashboards →`})]})]})}),t[20]=n):n=t[20],n}let ye;t[21]===o.id?ye=t[22]:(ye=(e,t)=>{h(o.id,e,t>=3?1:t+1)},t[21]=o.id,t[22]=ye);let be=ye,xe;t[23]!==b||t[24]!==be||t[25]!==o||t[26]!==s||t[27]!==_?(xe=_.order.map(e=>{let t=b.get(e);if(!t)return null;let n=t.metricId?o.metrics.find(e=>e.id===t.metricId):null,r=!s&&n?.blankKey?(0,F.jsx)(De,{dashboardId:o.id,metric:n}):void 0;return(0,F.jsx)(we,{dashboard:o,widget:t,editing:s,dragging:_.draggingId===t.id,footer:r,children:s&&(0,F.jsxs)(`div`,{className:`dash-tile-chrome`,children:[(0,F.jsx)(`span`,{className:`dash-tile-handle`,..._.handleProps(t.id),children:`⠿`}),(0,F.jsxs)(`div`,{className:`dash-tile-ctrls`,children:[(0,F.jsx)(`button`,{type:`button`,className:`dash-tile-size`,onClick:()=>be(t.id,t.span),title:`Resize`,children:Ve[t.span]}),(0,F.jsx)(`button`,{type:`button`,className:`dash-tile-x`,onClick:()=>y(o.id,t.id),"aria-label":`Remove widget`,children:`×`})]})]})},t.id)}),t[23]=b,t[24]=be,t[25]=o,t[26]=s,t[27]=_,t[28]=xe):xe=t[28];let Se=xe,Ce;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(Ce=(0,F.jsx)(`a`,{className:`dash-back`,href:S.gallery,"aria-label":`Back to dashboards`,children:`←`}),t[29]=Ce):Ce=t[29];let I;t[30]===o.title?I=t[31]:(I=(0,F.jsx)(`span`,{className:`dash-detail-title`,children:o.title}),t[30]=o.title,t[31]=I);let L;t[32]===o.question?L=t[33]:(L=o.question&&(0,F.jsxs)(`span`,{className:`dash-detail-q`,title:o.question,children:[`“`,o.question,`”`]}),t[32]=o.question,t[33]=L);let Te;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,F.jsx)(`i`,{className:`dash-live-dot`}),t[34]=Te):Te=t[34];let R;t[35]!==o||t[36]!==A||t[37]!==D?(R=A?`checking for new data…`:ce(o,D),t[35]=o,t[36]=A,t[37]=D,t[38]=R):R=t[38];let Oe=!A&&se(o)&&o.cadence.data!==`manual`?` · refreshes while open`:``,z;t[39]!==R||t[40]!==Oe?(z=(0,F.jsxs)(`span`,{className:`dash-detail-clock`,children:[Te,R,Oe]}),t[39]=R,t[40]=Oe,t[41]=z):z=t[41];let B;t[42]===o.id?B=t[43]:(B=()=>void me(o.id),t[42]=o.id,t[43]=B);let ke=j===`busy`,Ae=j===`busy`?`dash-refresh-spin`:void 0,V;t[44]===Ae?V=t[45]:(V=(0,F.jsx)(a.refresh,{className:Ae}),t[44]=Ae,t[45]=V);let Me=j===`busy`?`Refreshing…`:`Refresh now`,H;t[46]!==B||t[47]!==ke||t[48]!==V||t[49]!==Me?(H=(0,F.jsxs)(`button`,{type:`button`,className:`dash-edit-btn dash-refresh-btn`,onClick:B,disabled:ke,title:`Fetch current values now, regardless of cadence`,children:[V,Me]}),t[46]=B,t[47]=ke,t[48]=V,t[49]=Me,t[50]=H):H=t[50];let U;t[51]!==o||t[52]!==k||t[53]!==j?(U=(j===`no-model`||!T(k)&&se(o))&&(0,F.jsx)(`span`,{className:`dash-refresh-hint`,children:`Connect a model in Live settings to refresh.`}),t[51]=o,t[52]=k,t[53]=j,t[54]=U):U=t[54];let W;t[55]===j?W=t[56]:(W=j===`failed`&&(0,F.jsx)(`span`,{className:`dash-refresh-hint`,children:`Couldn’t reach your model — check its key or quota, then try again.`}),t[55]=j,t[56]=W);let G;t[57]!==o.id||t[58]!==o.metrics.length||t[59]!==P?(G=o.metrics.length>0&&(0,F.jsxs)(`button`,{type:`button`,className:`dash-edit-btn dash-read-btn`,onClick:()=>void ve(o.id),disabled:P===`busy`,title:`Ask Mavéa to read the latest numbers now`,children:[(0,F.jsx)(a.sparkle,{className:P===`busy`?`dash-refresh-spin`:void 0}),P===`busy`?`Reading…`:`Read the numbers now`]}),t[57]=o.id,t[58]=o.metrics.length,t[59]=P,t[60]=G):G=t[60];let K;t[61]===P?K=t[62]:(K=P===`no-model`&&(0,F.jsx)(`span`,{className:`dash-refresh-hint`,children:`Connect a model in Live settings to read.`}),t[61]=P,t[62]=K);let q;t[63]===P?q=t[64]:(q=P===`failed`&&(0,F.jsx)(`span`,{className:`dash-refresh-hint`,children:`Couldn’t reach your model — check its key or quota, then try again.`}),t[63]=P,t[64]=q);let Ie=`dash-edit-btn`+(s?` is-active`:``),Le;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(Le=()=>{l(Ue),d(!1)},t[65]=Le):Le=t[65];let Re=s?`Done`:`Edit layout`,J;t[66]!==Ie||t[67]!==Re?(J=(0,F.jsx)(`button`,{type:`button`,className:Ie,onClick:Le,children:Re}),t[66]=Ie,t[67]=Re,t[68]=J):J=t[68];let Y;t[69]===o.id?Y=t[70]:(Y=S.settings(o.id),t[69]=o.id,t[70]=Y);let X;t[71]===Y?X=t[72]:(X=(0,F.jsx)(`a`,{className:`dash-gear`,href:Y,"aria-label":`Dashboard settings`,title:`Settings`,children:`⚙`}),t[71]=Y,t[72]=X);let Z;t[73]!==I||t[74]!==L||t[75]!==z||t[76]!==H||t[77]!==U||t[78]!==W||t[79]!==G||t[80]!==K||t[81]!==q||t[82]!==J||t[83]!==X?(Z=(0,F.jsxs)(`header`,{className:`dash-detail-head`,children:[Ce,I,L,z,H,U,W,G,K,q,J,X]}),t[73]=I,t[74]=L,t[75]=z,t[76]=H,t[77]=U,t[78]=W,t[79]=G,t[80]=K,t[81]=q,t[82]=J,t[83]=X,t[84]=Z):Z=t[84];let Q;t[85]!==o||t[86]!==s?(Q=!s&&(0,F.jsx)(Pe,{dashboard:o}),t[85]=o,t[86]=s,t[87]=Q):Q=t[87];let $;t[88]!==o||t[89]!==A||t[90]!==s||t[91]!==D?($=!s&&(0,F.jsx)(Ne,{dashboard:o,now:D,checking:A}),t[88]=o,t[89]=A,t[90]=s,t[91]=D,t[92]=$):$=t[92];let Je;t[93]!==o||t[94]!==s||t[95]!==D?(Je=!s&&(0,F.jsx)(Fe,{dashboard:o,now:D}),t[93]=o,t[94]=s,t[95]=D,t[96]=Je):Je=t[96];let Ye;t[97]!==o||t[98]!==s||t[99]!==u?(Ye=s&&(0,F.jsxs)(`div`,{className:`dash-edit-bar`,children:[(0,F.jsxs)(`span`,{className:`dash-edit-hint`,children:[`Drag a tile by its `,(0,F.jsx)(`strong`,{children:`⠿`}),` handle to reorder, tap `,(0,F.jsx)(`strong`,{children:`S/M/L`}),` to resize, `,(0,F.jsx)(`strong`,{children:`×`}),` to remove.`]}),(0,F.jsx)(`button`,{type:`button`,className:`dash-edit-add`,onClick:()=>d(He),"aria-expanded":u,children:`+ Add widget`}),u&&(0,F.jsx)(Ee,{dashboard:o,onClose:()=>d(!1)})]}),t[97]=o,t[98]=s,t[99]=u,t[100]=Ye):Ye=t[100];let Xe;t[101]!==o||t[102]!==s||t[103]!==D||t[104]!==Se?(Xe=s?(0,F.jsx)(`div`,{className:`dash-grid`,children:Se}):(0,F.jsxs)(`div`,{className:`dash-detail-cols`,children:[(0,F.jsxs)(`div`,{className:`dash-detail-main`,children:[o.widgets.length>0&&(0,F.jsxs)(`div`,{className:`dash-detail-section`,children:[(0,F.jsx)(`div`,{className:`card-eyebrow dash-detail-section-title`,children:`Cards`}),(0,F.jsx)(`div`,{className:`dash-grid`,children:Se})]}),(0,F.jsx)(ae,{dashboardId:o.id})]}),(0,F.jsxs)(`div`,{className:`dash-detail-side`,children:[(0,F.jsx)(ze,{dashboard:o,now:D}),(0,F.jsx)(Be,{dashboard:o})]})]}),t[101]=o,t[102]=s,t[103]=D,t[104]=Se,t[105]=Xe):Xe=t[105];let Ze;t[106]!==o||t[107]!==s?(Ze=!s&&(0,F.jsx)(je,{dashboard:o},o.id),t[106]=o,t[107]=s,t[108]=Ze):Ze=t[108];let Qe;return t[109]!==Z||t[110]!==Q||t[111]!==$||t[112]!==Je||t[113]!==Ye||t[114]!==Xe||t[115]!==Ze?(Qe=(0,F.jsxs)(`div`,{className:`dash-detail`,children:[Z,Q,$,Je,Ye,Xe,Ze]}),t[109]=Z,t[110]=Q,t[111]=$,t[112]=Je,t[113]=Ye,t[114]=Xe,t[115]=Ze,t[116]=Qe):Qe=t[116],Qe}function He(e){return!e}function Ue(e){return!e}function We(){return Date.now()}function Ge(e){return e.block}function Ke(e){return[e.id,e]}function qe(e){return e.id}export{$ as DashboardDetail};
@@ -0,0 +1 @@
1
+ import{r as e}from"./useDashboardLoop-CJ0M7ZXf.js";function t(){return e(),null}export{t as DashboardLoopRuntime};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-DaSxXjOY.js";import{s as t}from"./useStudy-6QnY-Fw_.js";var n=e(),r=[{n:`1`,title:`You ask`,body:`Type anything worth following — “Yankees scores”, “AAPL price”, “weather in Denver” — or talk it through in Live if it’s something you’re reasoning about.`},{n:`2`,title:`Mavéa plans it`,body:`It designs the live cards: which numbers to watch, which shapes fit the data (a scoreboard, a forecast, a chart), and the exact standing query each one re-runs. If what you asked is a fixed fact — something that won’t change — Mavéa just answers it once instead of tracking it.`},{n:`3`,title:`You review`,body:`The plan is yours before it exists — toggle pieces off, rename it, or fold it into a dashboard you already have.`},{n:`4`,title:`It stays live`,body:`While Mavéa is open it refreshes on the cadence you picked, shows only real fetched data, and flags anything that crosses a line you set. Dashboards due around the same time share a batch of searches rather than each firing its own, and your predictions, their grading, and the morning briefing all ride along on those same checks — no extra searches spent.`},{n:`5`,title:`You shape it`,body:`Drag tiles to reorder, resize, add or remove. Talk to it anytime — “add …” adds in one step. Tune how often it refreshes.`}],i=[{tag:`PUSH`,accent:`var(--insight)`,name:`Push notifications`,body:`A native browser notification — gated on a permission grant you give explicitly. There’s no push subscription or background listener, so it can only fire while Mavéa is open, same as everything else here.`}],a=[{tag:`FREE`,accent:`var(--insight)`,name:`What you and your conversations give it`,body:`The context from your conversations, the values you supply, and any later chat on the topic — all free.`},{tag:`FREE`,accent:`var(--insight)`,name:`The threshold checks`,body:`Checking whether a number crossed a line you set is a plain comparison — it runs constantly at no cost.`},{tag:`YOUR KEY`,accent:`var(--presence)`,name:`The interpretation`,body:`Mavéa reading the latest numbers and telling you what changed is one model call on your own key — it fires when a line you set is crossed, on a schedule you pick, or the moment you tap “Read the numbers now.” On its own, most days: none.`},{tag:`BUDGET`,accent:`var(--warning)`,name:`Your daily search budget`,body:`You set a daily cap on automatic searches across all your dashboards together. Hit it and automatic checks pause for the day — nothing silently keeps spending. "Refresh now" and every other action you trigger yourself still works; only the on-its-own checking waits until tomorrow.`}];function o(){return(0,n.jsxs)(`div`,{className:`dash-overview`,children:[(0,n.jsxs)(`section`,{className:`dash-ov-hero`,children:[(0,n.jsx)(`div`,{className:`dash-ov-kicker`,children:`Dashboards`}),(0,n.jsx)(`h1`,{className:`dash-ov-title`,children:`Ask for anything. Mavéa keeps it live.`}),(0,n.jsx)(`p`,{className:`dash-ov-lede`,children:`Track anything in one sentence — scores, a price, the weather, a story — and Mavéa plans the live cards and keeps them current while it’s open. Set a line on any number and it flags the moment that line is crossed.`}),(0,n.jsxs)(`div`,{className:`dash-ov-cta`,children:[(0,n.jsx)(`a`,{className:`dash-cta`,href:t.gallery,children:`Track something →`}),(0,n.jsx)(`a`,{className:`dash-ov-link`,href:`#/live`,children:`Or start in Live →`})]})]}),(0,n.jsxs)(`section`,{className:`dash-ov-section`,children:[(0,n.jsx)(`div`,{className:`dash-ov-label`,children:`The lifecycle`}),(0,n.jsx)(`div`,{className:`dash-ov-steps`,children:r.map(e=>(0,n.jsxs)(`div`,{className:`dash-ov-step`,children:[(0,n.jsx)(`span`,{className:`dash-ov-step-n`,children:e.n}),(0,n.jsxs)(`div`,{className:`dash-ov-step-text`,children:[(0,n.jsx)(`div`,{className:`dash-ov-step-title`,children:e.title}),(0,n.jsx)(`div`,{className:`dash-ov-step-body`,children:e.body})]})]},e.n))})]}),(0,n.jsxs)(`section`,{className:`dash-ov-section`,children:[(0,n.jsx)(`div`,{className:`dash-ov-label`,children:`How it stays current — and what it costs`}),(0,n.jsx)(`div`,{className:`dash-ov-layers`,children:a.map(e=>(0,n.jsxs)(`div`,{className:`dash-ov-layer`,children:[(0,n.jsx)(`span`,{className:`dash-ov-layer-tag`,style:{"--tag":e.accent},children:e.tag}),(0,n.jsxs)(`div`,{className:`dash-ov-step-text`,children:[(0,n.jsx)(`div`,{className:`dash-ov-step-title`,children:e.name}),(0,n.jsx)(`div`,{className:`dash-ov-step-body`,children:e.body})]})]},e.name))}),(0,n.jsx)(`p`,{className:`dash-ov-note`,children:`Mavéa never shows a made-up number, and it only refreshes while it’s open — no silent background billing. Each dashboard’s settings show its API usage and a reminder to check your model’s pricing, and your budget page shows real counts of what’s actually run — never an invented figure.`})]}),(0,n.jsxs)(`section`,{className:`dash-ov-section`,children:[(0,n.jsx)(`div`,{className:`dash-ov-label`,children:`Alerts`}),(0,n.jsx)(`div`,{className:`dash-ov-layers`,children:i.map(e=>(0,n.jsxs)(`div`,{className:`dash-ov-layer`,children:[(0,n.jsx)(`span`,{className:`dash-ov-layer-tag`,style:{"--tag":e.accent},children:e.tag}),(0,n.jsxs)(`div`,{className:`dash-ov-step-text`,children:[(0,n.jsx)(`div`,{className:`dash-ov-step-title`,children:e.name}),(0,n.jsx)(`div`,{className:`dash-ov-step-body`,children:e.body})]})]},e.name))}),(0,n.jsx)(`p`,{className:`dash-ov-note`,children:`In-dashboard notices are on by default; push is off until you turn it on per dashboard, in its own settings.`})]})]})}export{o as DashboardOverview};
1
+ import{t as e}from"./jsx-runtime-DaSxXjOY.js";import{s as t}from"./useStudy-hvN-iGz0.js";var n=e(),r=[{n:`1`,title:`You ask`,body:`Type anything worth following — “Yankees scores”, “AAPL price”, “weather in Denver” — or talk it through in Live if it’s something you’re reasoning about.`},{n:`2`,title:`Mavéa plans it`,body:`It designs the live cards: which numbers to watch, which shapes fit the data (a scoreboard, a forecast, a chart), and the exact standing query each one re-runs. If what you asked is a fixed fact — something that won’t change — Mavéa just answers it once instead of tracking it.`},{n:`3`,title:`You review`,body:`The plan is yours before it exists — toggle pieces off, rename it, or fold it into a dashboard you already have.`},{n:`4`,title:`It stays live`,body:`While Mavéa is open it refreshes on the cadence you picked, shows only real fetched data, and flags anything that crosses a line you set. Dashboards due around the same time share a batch of searches rather than each firing its own, and your predictions, their grading, and the morning briefing all ride along on those same checks — no extra searches spent.`},{n:`5`,title:`You shape it`,body:`Drag tiles to reorder, resize, add or remove. Talk to it anytime — “add …” adds in one step. Tune how often it refreshes.`}],i=[{tag:`PUSH`,accent:`var(--insight)`,name:`Push notifications`,body:`A native browser notification — gated on a permission grant you give explicitly. There’s no push subscription or background listener, so it can only fire while Mavéa is open, same as everything else here.`}],a=[{tag:`FREE`,accent:`var(--insight)`,name:`What you and your conversations give it`,body:`The context from your conversations, the values you supply, and any later chat on the topic — all free.`},{tag:`FREE`,accent:`var(--insight)`,name:`The threshold checks`,body:`Checking whether a number crossed a line you set is a plain comparison — it runs constantly at no cost.`},{tag:`YOUR KEY`,accent:`var(--presence)`,name:`The interpretation`,body:`Mavéa reading the latest numbers and telling you what changed is one model call on your own key — it fires when a line you set is crossed, on a schedule you pick, or the moment you tap “Read the numbers now.” On its own, most days: none.`},{tag:`BUDGET`,accent:`var(--warning)`,name:`Your daily search budget`,body:`You set a daily cap on automatic searches across all your dashboards together. Hit it and automatic checks pause for the day — nothing silently keeps spending. "Refresh now" and every other action you trigger yourself still works; only the on-its-own checking waits until tomorrow.`}];function o(){return(0,n.jsxs)(`div`,{className:`dash-overview`,children:[(0,n.jsxs)(`section`,{className:`dash-ov-hero`,children:[(0,n.jsx)(`div`,{className:`dash-ov-kicker`,children:`Dashboards`}),(0,n.jsx)(`h1`,{className:`dash-ov-title`,children:`Ask for anything. Mavéa keeps it live.`}),(0,n.jsx)(`p`,{className:`dash-ov-lede`,children:`Track anything in one sentence — scores, a price, the weather, a story — and Mavéa plans the live cards and keeps them current while it’s open. Set a line on any number and it flags the moment that line is crossed.`}),(0,n.jsxs)(`div`,{className:`dash-ov-cta`,children:[(0,n.jsx)(`a`,{className:`dash-cta`,href:t.gallery,children:`Track something →`}),(0,n.jsx)(`a`,{className:`dash-ov-link`,href:`#/live`,children:`Or start in Live →`})]})]}),(0,n.jsxs)(`section`,{className:`dash-ov-section`,children:[(0,n.jsx)(`div`,{className:`dash-ov-label`,children:`The lifecycle`}),(0,n.jsx)(`div`,{className:`dash-ov-steps`,children:r.map(e=>(0,n.jsxs)(`div`,{className:`dash-ov-step`,children:[(0,n.jsx)(`span`,{className:`dash-ov-step-n`,children:e.n}),(0,n.jsxs)(`div`,{className:`dash-ov-step-text`,children:[(0,n.jsx)(`div`,{className:`dash-ov-step-title`,children:e.title}),(0,n.jsx)(`div`,{className:`dash-ov-step-body`,children:e.body})]})]},e.n))})]}),(0,n.jsxs)(`section`,{className:`dash-ov-section`,children:[(0,n.jsx)(`div`,{className:`dash-ov-label`,children:`How it stays current — and what it costs`}),(0,n.jsx)(`div`,{className:`dash-ov-layers`,children:a.map(e=>(0,n.jsxs)(`div`,{className:`dash-ov-layer`,children:[(0,n.jsx)(`span`,{className:`dash-ov-layer-tag`,style:{"--tag":e.accent},children:e.tag}),(0,n.jsxs)(`div`,{className:`dash-ov-step-text`,children:[(0,n.jsx)(`div`,{className:`dash-ov-step-title`,children:e.name}),(0,n.jsx)(`div`,{className:`dash-ov-step-body`,children:e.body})]})]},e.name))}),(0,n.jsx)(`p`,{className:`dash-ov-note`,children:`Mavéa never shows a made-up number, and it only refreshes while it’s open — no silent background billing. Each dashboard’s settings show its API usage and a reminder to check your model’s pricing, and your budget page shows real counts of what’s actually run — never an invented figure.`})]}),(0,n.jsxs)(`section`,{className:`dash-ov-section`,children:[(0,n.jsx)(`div`,{className:`dash-ov-label`,children:`Alerts`}),(0,n.jsx)(`div`,{className:`dash-ov-layers`,children:i.map(e=>(0,n.jsxs)(`div`,{className:`dash-ov-layer`,children:[(0,n.jsx)(`span`,{className:`dash-ov-layer-tag`,style:{"--tag":e.accent},children:e.tag}),(0,n.jsxs)(`div`,{className:`dash-ov-step-text`,children:[(0,n.jsx)(`div`,{className:`dash-ov-step-title`,children:e.name}),(0,n.jsx)(`div`,{className:`dash-ov-step-body`,children:e.body})]})]},e.name))}),(0,n.jsx)(`p`,{className:`dash-ov-note`,children:`In-dashboard notices are on by default; push is off until you turn it on per dashboard, in its own settings.`})]})]})}export{o as DashboardOverview};
@@ -1 +1 @@
1
- import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{ht as n}from"./index-CWqRe4-B.js";import{F as r,I as i,O as a,o,s}from"./useStudy-6QnY-Fw_.js";import{o as c,s as l}from"./format-hc2QOoIu.js";import{n as u,r as d,t as f}from"./notify-Bz4wuE4T.js";var p=e(),ee=n(),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=t(),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=o(),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:s.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){i(h.id,{alerts:{...h.alerts,push:!1}}),pe(null);return}await d()?(i(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=s.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}),i(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=()=>i(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=s.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=s.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-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{ht as n}from"./index-DOpl5xzv.js";import{F as r,I as i,O as a,o,s}from"./useStudy-hvN-iGz0.js";import{o as c,s as l}from"./format-hc2QOoIu.js";import{n as u,r as d,t as f}from"./notify-Bz4wuE4T.js";var p=e(),ee=n(),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=t(),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=o(),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:s.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){i(h.id,{alerts:{...h.alerts,push:!1}}),pe(null);return}await d()?(i(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=s.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}),i(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=()=>i(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=s.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=s.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};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/AppCommandPalette-D5nd3VO_.js","assets/index-DOpl5xzv.js","assets/chunk-BVpWp9h4.js","assets/jsx-runtime-DaSxXjOY.js","assets/react-BQSORdFI.js","assets/lazyRetry-D50B1UMY.js","assets/index-CepQEz75.css","assets/CommandPalette-BIUG6Sn7.js","assets/icons-CHVz6kv_.js","assets/registry-D5oMqeSa.js","assets/CommandPalette-Bb-eErih.css","assets/demoPaletteItems-NPCSaSU6.js","assets/planTracker-7AMCQPNx.js","assets/providers-wzm7E8Pa.js","assets/http-CJCtjYpA.js","assets/info-CiqHR5cs.js","assets/json-B0N3XRZU.js","assets/now-C9-UAzTC.js","assets/PlanReview-Dd3sxa_o.js","assets/useStudy-hvN-iGz0.js","assets/contentVault-DzTYWcbD.js","assets/keyVault-DEsNh9FR.js","assets/store-DrBDvqXF.js","assets/queue-J4h7E3uc.js","assets/store-DXmC_fP2.js","assets/queue-DHeyJ32F.css","assets/useLiveConfig-DIvKKKpP.js","assets/useDashboardLoop-CJ0M7ZXf.js","assets/dashboardEvents-DT6ye9n7.js","assets/spokenText-D4zPX9JY.js","assets/format-hc2QOoIu.js","assets/kokoro-B-MNB16v.js","assets/notify-Bz4wuE4T.js","assets/predictions-CYS7Vo39.js","assets/number-DXgzss0v.js","assets/relate-BG7aZWOq.js","assets/dashboards-rcWxdoXI.css","assets/RewindOverlay-CMx_cVxX.js","assets/motion-DKmdzFji.js","assets/CheckLogRail--9iHharq.js","assets/CheckLogRail-F4AlgAcc.css","assets/useFocusTrap-DbfG6zbM.js","assets/RewindOverlay-C92qgvmi.css","assets/DashPresent-G8Actzx7.js","assets/TrackerTile-BuAVmOyi.js","assets/DashPresent-DQYcgp-W.css","assets/DashboardDetail-BpSe8wBT.js","assets/TopicCanvas-CKvJb_8Y.js","assets/FallbackCard-B489rTd9.js","assets/blockLabel-DAqaHKy3.js","assets/FallbackCard-D_6ps1xA.css","assets/CanvasSkeleton-D00MzkIV.js","assets/CanvasSkeleton-iy6DBvde.css","assets/lib-BLt1wpw2.js","assets/BlockEmpty-BZn5ETuL.js","assets/lib-DMAxsZKm.css","assets/format-DlZTyeMy.js","assets/useSpatialCanvas-L0r29F7F.js","assets/useValidatedImage-D2fhA198.js","assets/catalog-BHjl-1uH.js","assets/richText-BkxJhl9N.js","assets/safeImageUrl-CUkucDUu.js","assets/toast-BBNs2h3L.js","assets/layout-BFQOzXtG.js","assets/TopicCanvas-uRuHi99s.css","assets/canvas-BrUiUI9Q.js","assets/ReplayCard-DUBvQLBt.js","assets/ShareModal-DNpc-U9U.js","assets/ReelJelly-B2JQsaRI.js","assets/geometry-DXAbnb0J.js","assets/registry-BnSnMnyk.js","assets/fit-BtKObM5Q.js","assets/share-QHGHNDhQ.js","assets/FeatureUseNotice-CoK5HkbR.js","assets/FeatureUseNotice-CsCxxfOl.css","assets/threads-CkMgrSDP.js","assets/ShareModal-PobtP7AJ.css","assets/annotationReel-CdAmTPlv.js","assets/sourceHost-BV3t2XDb.js","assets/pin-DoSzEmTm.js","assets/pin-Bya3BL_a.css","assets/DashboardSettings-ChPkh0t4.js","assets/DashboardOverview-Cdhy4x4b.js","assets/DashboardLoopRuntime-CHPDkO3Y.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{B as n,F as r,I as i,J as a,L as o,M as s,N as c,at as l,ht as u,j as d,k as f,mt as p,ot as m,q as h,st as g,z as _}from"./index-DOpl5xzv.js";import{n as v}from"./icons-CHVz6kv_.js";import{t as y}from"./useFocusTrap-DbfG6zbM.js";import{d as b,u as x}from"./kokoro-B-MNB16v.js";import{t as S}from"./FeatureUseNotice-CoK5HkbR.js";import{r as C}from"./sourceHost-BV3t2XDb.js";import{t as w}from"./homeTarget-BcZYH3DY.js";import"./queue-J4h7E3uc.js";import{S as T,a as E,c as D,d as ee,f as O,l as k,o as A,s as j}from"./useStudy-hvN-iGz0.js";import{l as M,n as N,r as te,u as ne}from"./useLiveConfig-DIvKKKpP.js";import{g as P,n as re,o as ie,p as F,s as I}from"./dashboardEvents-DT6ye9n7.js";import{o as L,t as ae}from"./CheckLogRail--9iHharq.js";import{i as R}from"./format-hc2QOoIu.js";import{n as oe,r as se,t as z}from"./TrackerTile-BuAVmOyi.js";/* empty css */var B=e(),V=u(),H=t();function U({href:e,label:t=`Mavéa`,className:n}){return(0,H.jsxs)(`a`,{className:n,href:e,"aria-label":`${t} home`,children:[(0,H.jsx)(`span`,{className:`jelly-mark`}),t]})}var W=p();function G(e){let t=(t,n,r)=>({label:t,blurb:n,onClick:()=>{window.location.hash=r},preload:()=>d(r)??Promise.resolve(),show:r!==e.omitHash}),n=(t,n)=>({label:t,blurb:n,onClick:e.enterLive,show:!0});return{create:[n(`New`,`Start a fresh session`)],practice:[n(`Rehearse`,`Practice a hard conversation — take the seat, or send your Mavéa`),t(`Study`,`Go through your flashcards, and organize your decks`,`#/flashcards`),t(`Courses`,`Turn a topic into a structured syllabus — a lesson at a time, at your pace`,`#/courses`)],share:[n(`Present`,`Fill the room — the chrome falls away, the mic stays live`),n(`Export`,`Choose a template and export a polished PDF`),n(`Share`,`Share this conversation as a story`)],explore:[{label:`Search all features`,blurb:`Browse Mavéa’s feature index · ${_}`,onClick:e.openPalette,show:!0},n(`Atlas`,`Kept conversations and topics, as a place`),n(`Watch me think`,`A live map of your thinking`),t(`Prism`,`Split your document into a map of its claims`,`#/prism`),t(`Ripple`,`Model a code change’s impact, risks, and a proposed ship order`,`#/ripple`),t(`Dashboards`,`Dashboards that refresh on schedule while Mavéa is open`,`#/dashboards`),t(`Deep Zoom`,`Telescope any topic from big picture to finest detail`,`#/deepzoom`)]}}a();var K=i(()=>h(()=>import(`./AppCommandPalette-D5nd3VO_.js`).then(e=>({default:e.AppCommandPalette})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]))),ce=K.Component;function le(e){let t=(0,V.c)(26),{omitHash:i}=e,{open:a,openPalette:o,closePalette:s}=n(),c=ue,u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=()=>{m(),c()},t[0]=u):u=t[0];let d=u,p;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(p=e=>()=>{m(),l(e),g(),c()},t[1]=p):p=t[1];let h=p,_;t[2]!==i||t[3]!==o?(_=G({openPalette:o,enterLive:c,omitHash:i}),t[2]=i,t[3]=o,t[4]=_):_=t[4];let v=_,y=E(),b;t[5]===v.create?b=t[6]:(b=(0,H.jsx)(O,{label:`Create`,items:v.create}),t[5]=v.create,t[6]=b);let x;t[7]!==v.practice||t[8]!==y?(x=(0,H.jsx)(O,{label:`Practice`,items:v.practice,badge:y}),t[7]=v.practice,t[8]=y,t[9]=x):x=t[9];let S;t[10]===v.share?S=t[11]:(S=(0,H.jsx)(O,{label:`Share`,items:v.share}),t[10]=v.share,t[11]=S);let C;t[12]===v.explore?C=t[13]:(C=(0,H.jsx)(O,{label:`Explore`,items:v.explore}),t[12]=v.explore,t[13]=C);let w;t[14]===o?w=t[15]:(w=(0,H.jsx)(r,{onOpen:o,preload:K.preload}),t[14]=o,t[15]=w);let T;t[16]!==s||t[17]!==a?(T=a&&(0,W.createPortal)((0,H.jsx)(f,{label:`Feature search`,overlay:!0,children:(0,H.jsx)(ce,{onClose:s,startTour:d,watchInLive:h,enterLive:c})}),document.body),t[16]=s,t[17]=a,t[18]=T):T=t[18];let D;return t[19]!==b||t[20]!==x||t[21]!==S||t[22]!==C||t[23]!==w||t[24]!==T?(D=(0,H.jsxs)(H.Fragment,{children:[b,x,S,C,w,T]}),t[19]=b,t[20]=x,t[21]=S,t[22]=C,t[23]=w,t[24]=T,t[25]=D):D=t[25],D}function ue(){window.location.hash=`#/live`}function de(e,t){let n=e.cadence.window;return!!n&&t>=n.startAt&&t<=n.endAt}function fe(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`})}function pe(e){let t=(0,V.c)(18),{state:n}=e;if(n.paused){let e;t[0]===n.resumesAt?e=t[1]:(e=fe(n.resumesAt),t[0]=n.resumesAt,t[1]=e);let r;return t[2]===e?r=t[3]:(r=(0,H.jsx)(`div`,{className:`dash-budget dash-budget--paused`,title:`Automatic checks are paused until your budget resets`,children:(0,H.jsxs)(`span`,{className:`dash-budget-label`,children:[`PAUSED · RESUMES `,e]})}),t[2]=e,t[3]=r),r}let r;t[4]!==n.cap||t[5]!==n.used?(r=n.cap>0?Math.min(100,Math.round(n.used/n.cap*100)):0,t[4]=n.cap,t[5]=n.used,t[6]=r):r=t[6];let i=r,a=`dash-budget`+(n.amber?` dash-budget--amber`:``),o=`${n.used} of ${n.cap} searches used today`,s=`${i}%`,c;t[7]===s?c=t[8]:(c=(0,H.jsx)(`span`,{className:`dash-budget-track`,children:(0,H.jsx)(`span`,{className:`dash-budget-fill`,style:{width:s}})}),t[7]=s,t[8]=c);let l=n.amber?` · LOW`:``,u;t[9]!==n.cap||t[10]!==n.used||t[11]!==l?(u=(0,H.jsxs)(`span`,{className:`dash-budget-label`,children:[n.used,`/`,n.cap,` SEARCHES TODAY`,l]}),t[9]=n.cap,t[10]=n.used,t[11]=l,t[12]=u):u=t[12];let d;return t[13]!==a||t[14]!==o||t[15]!==c||t[16]!==u?(d=(0,H.jsxs)(`div`,{className:a,title:o,children:[c,u]}),t[13]=a,t[14]=o,t[15]=c,t[16]=u,t[17]=d):d=t[17],d}function me(e){let t=(0,V.c)(28),{view:n}=e,r=A(),i=L(),a=P(),[o,s]=(0,B.useState)(he),c,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=()=>{let e=window.setInterval(()=>s(Date.now()),3e4);return()=>window.clearInterval(e)},l=[],t[0]=c,t[1]=l):(c=t[0],l=t[1]),(0,B.useEffect)(c,l);let u;t[2]===r?u=t[3]:(u=r.filter(R),t[2]=r,t[3]=u);let d=u.length,f=r.some(e=>de(e,o)),p;t[4]!==i||t[5]!==o||t[6]!==a.dailySearchBudget?(p=F(i,a.dailySearchBudget,o),t[4]=i,t[5]=o,t[6]=a.dailySearchBudget,t[7]=p):p=t[7];let m=p,h;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,H.jsx)(U,{className:`dash-topbar-brand`,href:w().href}),t[8]=h):h=t[8];let g=`dash-watch-pill`+(f?` dash-watch-pill--live`:``),_;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,H.jsx)(`i`,{className:`dash-live-dot`,"aria-hidden":`true`}),t[9]=_):_=t[9];let v;t[10]!==d||t[11]!==g?(v=(0,H.jsxs)(`span`,{className:g,children:[_,d,` ON WATCH`]}),t[10]=d,t[11]=g,t[12]=v):v=t[12];let y;t[13]===m?y=t[14]:(y=(0,H.jsx)(pe,{state:m}),t[13]=m,t[14]=y);let b;t[15]===n?b=t[16]:(b=n!==`overview`&&(0,H.jsx)(`a`,{className:`dash-topbar-link`,href:j.overview,children:`How it works`}),t[15]=n,t[16]=b);let x;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,H.jsx)(`a`,{className:`dash-topbar-link`,href:`#/live`,children:`Live`}),t[17]=x):x=t[17];let S;t[18]!==b||t[19]!==v||t[20]!==y?(S=(0,H.jsxs)(`div`,{className:`dash-topbar-scroll`,children:[v,y,b,x]}),t[18]=b,t[19]=v,t[20]=y,t[21]=S):S=t[21];let C;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,H.jsx)(`span`,{className:`topbar-spacer`}),t[22]=C):C=t[22];let T,E;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,H.jsx)(`nav`,{className:`dash-topbar-nav`,"aria-label":`App`,children:(0,H.jsx)(le,{omitHash:j.gallery})}),E=(0,H.jsx)(`span`,{className:`topbar-divider`,"aria-hidden":`true`}),t[23]=T,t[24]=E):(T=t[23],E=t[24]);let D;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,H.jsxs)(`div`,{className:`dash-topbar-tools`,children:[(0,H.jsx)(`a`,{className:`dash-topbar-action`,href:j.rewind,children:`✦ Rewind`}),(0,H.jsx)(`a`,{className:`dash-topbar-action`,href:j.present,children:`▸ Present`}),(0,H.jsx)(ee,{triggerClassName:`ctrl`})]}),t[25]=D):D=t[25];let O;return t[26]===S?O=t[27]:(O=(0,H.jsxs)(`header`,{className:`dash-topbar`,children:[h,S,C,T,E,D]}),t[26]=S,t[27]=O),O}function he(){return Date.now()}function ge({label:e,value:t,dashboardId:n,kind:r=`presence`}){return(0,H.jsxs)(`a`,{className:`metric-chip metric-chip--${r}`,href:j.detail(n),children:[(0,H.jsx)(`span`,{className:`metric-chip-value`,children:t}),(0,H.jsx)(`span`,{className:`metric-chip-label`,children:e})]})}function _e(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`})}function ve({briefing:e}){let[t,n]=(0,B.useState)(!1),r=(0,B.useRef)(t);return r.current=t,(0,B.useEffect)(()=>{if(!t)return;let e=window.setInterval(()=>{b()||n(!1)},300);return()=>window.clearInterval(e)},[t]),(0,B.useEffect)(()=>()=>{r.current&&x()},[]),(0,H.jsxs)(`section`,{className:`card briefing-hero`,children:[(0,H.jsxs)(`div`,{className:`briefing-hero-head`,children:[(0,H.jsxs)(`span`,{className:`card-eyebrow briefing-hero-eyebrow`,children:[`MORNING BRIEFING · `,_e(e.at),` · COMPILED WHILE CHECKING YOUR DASHBOARDS`]}),(0,H.jsx)(`button`,{type:`button`,className:`briefing-hero-listen`,onClick:()=>{if(t){x(),n(!1);return}ie(e.text,e.spoken),n(!0)},"aria-pressed":t,children:t?`◼ STOP`:`▸ LISTEN`})]}),(0,H.jsx)(`p`,{className:`briefing-hero-text`,children:e.text}),e.chips.length>0&&(0,H.jsx)(`div`,{className:`briefing-hero-chips`,children:e.chips.map(e=>(0,H.jsx)(ge,{label:e.label,value:e.value,dashboardId:e.dashboardId},e.dashboardId))})]})}function ye(e){let t=(0,V.c)(31),{dashboard:n,now:r}=e,i;t[0]!==n||t[1]!==r?(i=se(n,r),t[0]=n,t[1]=r,t[2]=i):i=t[2];let a=i,o=n.cadence.window;if(!o||a.vizKind!==`livescore`){let e;return t[3]!==n||t[4]!==r?(e=(0,H.jsx)(`div`,{className:`featured-live featured-live--fallback`,children:(0,H.jsx)(z,{dashboard:n,now:r})}),t[3]=n,t[4]=r,t[5]=e):e=t[5],e}let s=a.everChecked?`AS OF ${a.asOf}`:a.asOf,c;t[6]===n.id?c=t[7]:(c=j.detail(n.id),t[6]=n.id,t[7]=c);let l;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,H.jsxs)(`span`,{className:`card-eyebrow featured-live-eyebrow`,children:[(0,H.jsx)(`i`,{className:`dash-live-dot`,"aria-hidden":`true`}),`LIVE NOW`]}),t[8]=l):l=t[8];let u;t[9]===n.title?u=t[10]:(u=(0,H.jsxs)(`div`,{className:`featured-live-head`,children:[l,(0,H.jsx)(`h3`,{className:`featured-live-title`,children:n.title})]}),t[9]=n.title,t[10]=u);let d;t[11]!==o||t[12]!==r?(d=(0,H.jsx)(oe,{liveWindow:o,now:r}),t[11]=o,t[12]=r,t[13]=d):d=t[13];let f;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,H.jsx)(`span`,{className:`featured-live-check-label`,children:`FROM THE LAST CHECK`}),t[14]=f):f=t[14];let p;t[15]===a.value?p=t[16]:(p=(0,H.jsx)(`span`,{className:`featured-live-check-value`,children:a.value}),t[15]=a.value,t[16]=p);let m;t[17]===a.context?m=t[18]:(m=(0,H.jsx)(`span`,{className:`featured-live-check-context`,children:a.context}),t[17]=a.context,t[18]=m);let h;t[19]!==p||t[20]!==m?(h=(0,H.jsxs)(`p`,{className:`featured-live-check`,children:[f,p,m]}),t[19]=p,t[20]=m,t[21]=h):h=t[21];let g;t[22]!==s||t[23]!==o.label?(g=(0,H.jsxs)(`div`,{className:`featured-live-foot`,children:[s,` · `,o.label,` ONLY`]}),t[22]=s,t[23]=o.label,t[24]=g):g=t[24];let _;return t[25]!==g||t[26]!==c||t[27]!==u||t[28]!==d||t[29]!==h?(_=(0,H.jsxs)(`a`,{className:`card featured-live`,href:c,children:[u,d,h,g]}),t[25]=g,t[26]=c,t[27]=u,t[28]=d,t[29]=h,t[30]=_):_=t[30],_}function be(e){let t=(0,V.c)(17),{answer:n,onTrackAnyway:r}=e;if(!n){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,H.jsx)(`p`,{className:`dash-answer-text dash-answer-text--fallback`,children:`Mavéa couldn’t reach your model for that — try tracking it instead.`}),t[0]=e):e=t[0];let n;return t[1]===r?n=t[2]:(n=(0,H.jsxs)(`div`,{className:`dash-answer`,children:[e,(0,H.jsx)(`button`,{type:`button`,className:`dash-answer-track`,onClick:r,children:`Track it anyway →`})]}),t[1]=r,t[2]=n),n}let i;t[3]===n.text?i=t[4]:(i=(0,H.jsx)(`p`,{className:`dash-answer-text`,children:n.text}),t[3]=n.text,t[4]=i);let a;t[5]===n.grounded?a=t[6]:(a=!n.grounded&&(0,H.jsx)(`p`,{className:`dash-answer-qualifier`,children:`Based on background knowledge, not a fresh search.`}),t[5]=n.grounded,t[6]=a);let o;t[7]===n.sources?o=t[8]:(o=n.sources.length>0&&(0,H.jsx)(`div`,{className:`dash-answer-sources`,children:n.sources.map(xe)}),t[7]=n.sources,t[8]=o);let s;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,H.jsx)(`span`,{className:`dash-answer-badge`,children:`Answered once — nothing worth re-checking`}),t[9]=s):s=t[9];let c;t[10]===r?c=t[11]:(c=(0,H.jsxs)(`div`,{className:`dash-answer-foot`,children:[s,(0,H.jsx)(`button`,{type:`button`,className:`dash-answer-track`,onClick:r,children:`Track it anyway →`})]}),t[10]=r,t[11]=c);let l;return t[12]!==i||t[13]!==a||t[14]!==o||t[15]!==c?(l=(0,H.jsxs)(`div`,{className:`dash-answer`,children:[i,a,o,c]}),t[12]=i,t[13]=a,t[14]=o,t[15]=c,t[16]=l):l=t[16],l}function xe(e){let t=C(e.url);return t?(0,H.jsx)(`a`,{className:`dash-answer-source`,href:t,target:`_blank`,rel:`noopener noreferrer`,title:e.title,children:e.title},e.url):null}a();var q;function J(){return q??=h(()=>import(`./planTracker-7AMCQPNx.js`).then(e=>e.n),__vite__mapDeps([12,2,13,14,15,16,17])),q}var Y=i(()=>h(()=>import(`./PlanReview-Dd3sxa_o.js`).then(e=>({default:e.PlanReview})),__vite__mapDeps([18,1,2,3,4,5,6,19,20,21,22,23,24,25,26,13,14,15,27,28,29,30,31,32,33,16,17,34,35,36]))),Se=Y.Component;function Ce(){return Promise.all([J(),Y.preload()]).then(()=>void 0)}function we({inert:e=!1}){let t=(0,B.useRef)(null),n=(0,B.useRef)(null),[r,i]=(0,B.useState)(``),[a,s]=(0,B.useState)(!1),[c,l]=(0,B.useState)(null),u=(0,B.useRef)(0),d=()=>{u.current++,l(null)};y(n,{onEscape:d,active:!!c}),(0,B.useEffect)(()=>{if(e)return;let n=e=>{(e.metaKey||e.ctrlKey)&&!e.altKey&&!e.shiftKey&&e.key.toLowerCase()===`k`&&(e.preventDefault(),t.current?.focus())};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e]),(0,B.useEffect)(()=>()=>{u.current++},[]);let p=async()=>{let e=r.trim();if(!e||a)return;s(!0);let t=++u.current,{planTracker:n,answerOnce:i}=await J(),o=await n(e,M(N()));if(t!==u.current)return;if(s(!1),o.kind!==`static`){l({step:`review`,plan:o});return}l({step:`answering`,plan:o});let c=await i(e,M(N()));t===u.current&&l({step:`answer`,plan:o,answer:c})},m=e=>{u.current++,l(null),i(``),window.location.hash=j.detail(e)};return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`form`,{className:`dash-composer-bar`,onSubmit:e=>{e.preventDefault(),p()},children:[(0,H.jsx)(`input`,{ref:t,className:`dash-composer-input`,value:r,onChange:e=>i(e.target.value),placeholder:`Track anything — Mavéa will suggest what's worth checking, and how often`,"aria-label":`Track anything`,disabled:a,...o(Ce)}),(0,H.jsx)(`kbd`,{className:`dash-composer-kbd`,"aria-hidden":`true`,children:`⌘K`}),(0,H.jsx)(`button`,{type:`submit`,className:`dash-composer-submit`,disabled:!r.trim()||a,children:a?`Planning…`:`Track`})]}),c&&(0,H.jsx)(`div`,{className:`xt-scrim`,onClick:e=>{e.target===e.currentTarget&&d()},role:`button`,tabIndex:0,"aria-label":`Close`,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.key===` `&&e.preventDefault(),d())},children:(0,H.jsxs)(`div`,{className:`xt-modal`,ref:n,tabIndex:-1,role:`dialog`,"aria-modal":`true`,"aria-label":`Track anything`,children:[(0,H.jsxs)(`div`,{className:`xt-head`,children:[c.step===`review`?(0,H.jsx)(`button`,{type:`button`,className:`tpl-back`,onClick:d,children:`‹ Change what to track`}):(0,H.jsx)(`span`,{className:`xt-head-title`,children:c.plan.title}),(0,H.jsx)(`button`,{type:`button`,className:`xt-close`,onClick:d,"aria-label":`Close`,children:`×`})]}),c.step===`answering`&&(0,H.jsx)(`div`,{className:`xt-loading`,children:`Mavéa is checking that…`}),c.step===`answer`&&(0,H.jsx)(be,{answer:c.answer,onTrackAnyway:()=>l({step:`review`,plan:c.plan})}),c.step===`review`&&(0,H.jsx)(f,{label:`tracker plan`,children:(0,H.jsx)(Se,{plan:c.plan,ask:r,existing:T(),onDone:m})})]})})]})}var Te=8e3;function Ee({message:e,onDismiss:t,kind:n=`presence`,href:r}){let i=(0,B.useRef)(t);return i.current=t,(0,B.useEffect)(()=>{let e=window.setTimeout(()=>i.current(),Te);return()=>window.clearTimeout(e)},[]),(0,H.jsxs)(`div`,{className:`dash-toast dash-toast--${n}`,role:`status`,children:[r?(0,H.jsx)(`a`,{className:`dash-toast-text dash-toast-link`,href:r,children:e}):(0,H.jsx)(`span`,{className:`dash-toast-text`,children:e}),(0,H.jsx)(`button`,{type:`button`,className:`dash-toast-close`,onClick:t,"aria-label":`Dismiss`,children:`×`})]})}a();var De=[`AAPL price`,`Yankees scores`,`Weather in Denver`,`Bitcoin price`];function Oe(e,t){let n=e.cadence.window;return!!n&&t>=n.startAt&&t<=n.endAt}function ke(e){return new Date(e).toISOString().slice(0,10)}function X(e){let t=(0,V.c)(11),{eyebrow:n,sub:r}=e,i;t[0]===n?i=t[1]:(i=(0,H.jsx)(`span`,{className:`tile-name`,children:n}),t[0]=n,t[1]=i);let a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,H.jsx)(`span`,{className:`tile-cadence`,children:`EXAMPLE`}),t[2]=a):a=t[2];let o;t[3]===i?o=t[4]:(o=(0,H.jsxs)(`div`,{className:`tile-top`,children:[i,a]}),t[3]=i,t[4]=o);let s;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,H.jsx)(`div`,{className:`tile-value-row`,children:(0,H.jsx)(`span`,{className:`tile-value`,children:`—`})}),t[5]=s):s=t[5];let c;t[6]===r?c=t[7]:(c=(0,H.jsx)(`p`,{className:`tile-context`,children:r}),t[6]=r,t[7]=c);let l;return t[8]!==o||t[9]!==c?(l=(0,H.jsxs)(`div`,{className:`tile-frame tile-frame--ghost`,"aria-hidden":`true`,children:[o,s,c]}),t[8]=o,t[9]=c,t[10]=l):l=t[10],l}function Ae(){let e=(0,V.c)(4),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,H.jsx)(`p`,{className:`dash-empty-title`,children:`Nothing on watch yet.`}),e[0]=t):t=e[0];let n;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,H.jsxs)(`p`,{className:`dash-empty-how`,children:[`Type anything worth following in the bar below — scores, a price, the weather, a story — and Mavéa plans the live cards and keeps them current. Or talk it through in`,` `,(0,H.jsx)(`a`,{href:`#/live`,children:`Live`}),` and build one from that conversation instead.`]}),e[1]=n):n=e[1];let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,H.jsxs)(`p`,{className:`dash-empty-how`,children:[`New here? `,(0,H.jsx)(`a`,{href:j.overview,children:`See how it works →`})]}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,H.jsxs)(`div`,{className:`card dash-empty dash-empty--hero`,children:[t,n,r,(0,H.jsx)(`div`,{className:`dash-home-examples`,children:De.map(je)})]}),e[3]=i):i=e[3],i}function je(e){return(0,H.jsx)(`span`,{className:`dash-home-example-chip`,children:e},e)}function Z(){let e=A(),t=L(),n=P(),r=I(),[i]=ne(),[a,o]=(0,B.useState)(()=>Date.now());(0,B.useEffect)(()=>{let e=window.setInterval(()=>o(Date.now()),3e4);return()=>window.clearInterval(e)},[]);let s=(0,B.useMemo)(()=>e.find(e=>Oe(e,a))??null,[e,a]),c=r!==null&&r.date===ke(a),l=(0,B.useMemo)(()=>F(t,n.dailySearchBudget,a),[t,n.dailySearchBudget,a]),u=e.length===0,d=(0,B.useMemo)(()=>e.some(R),[e]),f=te(i),[p,m]=(0,B.useState)(null);(0,B.useEffect)(()=>re(m),[]);let[g,_]=(0,B.useState)(!1),y=async()=>{_(!0);try{let{checkAllDashboardsNow:e}=await h(async()=>{let{checkAllDashboardsNow:e}=await import(`./useDashboardLoop-CJ0M7ZXf.js`).then(e=>e.i);return{checkAllDashboardsNow:e}},__vite__mapDeps([27,2,1,3,4,5,6,13,14,15,19,20,21,22,23,24,25,26,28,29,30,31,32,33,16,17,34]));await e()}finally{_(!1)}},[b,x]=(0,B.useState)(0);return(0,B.useEffect)(()=>{let e=0,t=0;return e=requestAnimationFrame(()=>{x(1),t=requestAnimationFrame(()=>x(2))}),()=>{cancelAnimationFrame(e),cancelAnimationFrame(t)}},[]),(0,H.jsxs)(`div`,{className:`dash-home`,children:[p&&(0,H.jsx)(Ee,{kind:`danger`,message:`${p.dashboardTitle}: ${p.tripwireLabel} crossed the line you set.`,href:j.detail(p.dashboardId),onDismiss:()=>m(null)},`${p.dashboardId}-${p.tripwireLabel}`),(0,H.jsxs)(`div`,{className:`dash-home-grid`,children:[(0,H.jsxs)(`div`,{className:`dash-home-main`,children:[!u&&!f&&d&&(0,H.jsxs)(`div`,{className:`dash-connect-banner`,children:[(0,H.jsx)(`span`,{className:`dash-connect-banner-text`,children:`These trackers can't fetch anything yet — connect a model to start filling them.`}),(0,H.jsx)(`a`,{className:`dash-connect-banner-link`,href:`#/live`,children:`Connect a model in Live →`})]}),u?(0,H.jsx)(Ae,{}):(0,H.jsxs)(H.Fragment,{children:[c&&r&&(0,H.jsx)(ve,{briefing:r}),s&&(0,H.jsx)(ye,{dashboard:s,now:a})]}),b>=1&&(0,H.jsxs)(`section`,{className:`dash-track`,children:[(0,H.jsxs)(`div`,{className:`dash-track-head`,children:[(0,H.jsxs)(`span`,{className:`dash-track-eyebrow`,children:[`TRACKING · `,e.length]}),(0,H.jsxs)(`div`,{className:`dash-track-head-right`,children:[(0,H.jsx)(`span`,{className:`dash-track-honesty`,children:`NOT REAL-TIME — EVERY VALUE IS AS OF ITS LAST WEB SEARCH`}),f&&d&&(0,H.jsxs)(`button`,{type:`button`,className:`dash-check-all-btn`,onClick:()=>void y(),disabled:g,title:`Check every tracker with live content now`,children:[(0,H.jsx)(v.refresh,{className:g?`dash-refresh-spin`:void 0}),g?`Checking…`:`Check all`]})]})]}),(0,H.jsx)(`div`,{className:`dash-track-grid`,children:u?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(X,{eyebrow:`AAPL`,sub:`Stock price`}),(0,H.jsx)(X,{eyebrow:`Yankees`,sub:`Latest score`}),(0,H.jsx)(X,{eyebrow:`Denver`,sub:`This week's forecast`})]}):e.map(e=>(0,H.jsx)(z,{dashboard:e,now:a,paused:l.paused},e.id))})]})]}),(0,H.jsx)(`aside`,{className:`dash-home-rail`,children:b>=2&&(0,H.jsx)(ae,{})})]}),(0,H.jsx)(we,{})]})}a();var Me=i(()=>h(()=>import(`./RewindOverlay-CMx_cVxX.js`).then(e=>({default:e.RewindOverlay})),__vite__mapDeps([37,1,2,3,4,5,6,38,19,20,21,22,23,24,25,26,13,14,15,39,28,29,30,31,40,33,41,42]))),Ne=i(()=>h(()=>import(`./DashPresent-G8Actzx7.js`).then(e=>({default:e.DashPresent})),__vite__mapDeps([43,1,2,3,4,5,6,19,20,21,22,23,24,25,26,13,14,15,39,28,29,30,31,40,44,8,45]))),Pe=i(()=>h(()=>import(`./DashboardDetail-BpSe8wBT.js`).then(e=>({default:e.DashboardDetail})),__vite__mapDeps([46,1,2,3,4,5,6,47,48,49,8,50,51,52,53,54,38,55,56,57,58,59,60,61,62,63,14,64,65,66,67,68,69,70,71,72,73,74,29,75,41,31,76,77,78,19,20,21,22,23,24,25,26,13,15,39,28,30,40,27,32,33,16,17,34,79,80,12,36]))),Fe=i(()=>h(()=>import(`./DashboardSettings-ChPkh0t4.js`).then(e=>({default:e.DashboardSettings})),__vite__mapDeps([81,1,2,3,4,5,6,19,20,21,22,23,24,25,26,13,14,15,30,32]))),Q=i(()=>h(()=>import(`./DashboardOverview-Cdhy4x4b.js`).then(e=>({default:e.DashboardOverview})),__vite__mapDeps([82,3,2,19,1,4,5,6,20,21,22,23,24,25,26,13,14,15]))),Ie=i(()=>h(()=>import(`./DashboardLoopRuntime-CHPDkO3Y.js`).then(e=>({default:e.DashboardLoopRuntime})),__vite__mapDeps([83,27,2,1,3,4,5,6,13,14,15,19,20,21,22,23,24,25,26,28,29,30,31,32,33,16,17,34]))),Le=Me.Component,Re=Ne.Component,ze=Pe.Component,Be=Fe.Component,Ve=Q.Component,He=Ie.Component;function $(){window.location.hash=j.gallery}function Ue(){let e=(0,V.c)(24),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0],(0,B.useEffect)(We,t);let[n,r]=(0,B.useState)(!1),i,a;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=()=>{let e=window.setTimeout(()=>r(!0),600);return()=>window.clearTimeout(e)},a=[],e[1]=i,e[2]=a):(i=e[1],a=e[2]),(0,B.useEffect)(i,a);let o=k(),s;e[3]===o?s=e[4]:(s=D(o),e[3]=o,e[4]=s);let c=s;if(c.view===`present`){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,H.jsx)(f,{label:`Dashboard presentation`,children:(0,H.jsx)(Re,{onClose:$})}),e[5]=t):t=e[5],t}let l;bb0:switch(c.view){case`detail`:{let t;e[6]===c.id?t=e[7]:(t=c.id?(0,H.jsx)(f,{label:`Dashboard detail`,children:(0,H.jsx)(ze,{id:c.id})}):(0,H.jsx)(Z,{}),e[6]=c.id,e[7]=t),l=t;break bb0}case`settings`:{let t;e[8]===c.id?t=e[9]:(t=c.id?(0,H.jsx)(f,{label:`Dashboard settings`,children:(0,H.jsx)(Be,{id:c.id})}):(0,H.jsx)(Z,{}),e[8]=c.id,e[9]=t),l=t;break bb0}case`overview`:{let t;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,H.jsx)(f,{label:`Dashboard overview`,children:(0,H.jsx)(Ve,{})}),e[10]=t):t=e[10],l=t;break bb0}case`rewind`:case`gallery`:default:{let t;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,H.jsx)(Z,{}),e[11]=t):t=e[11],l=t}}let u=l,d;e[12]===c.view?d=e[13]:(d=(0,H.jsx)(me,{view:c.view}),e[12]=c.view,e[13]=d);let p;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,H.jsx)(S,{kind:`monitoring`,className:`dash-risk-note`}),e[14]=p):p=e[14];let m;e[15]===n?m=e[16]:(m=n&&(0,H.jsx)(B.Suspense,{fallback:(0,H.jsx)(`span`,{hidden:!0,"aria-hidden":`true`}),children:(0,H.jsx)(He,{})}),e[15]=n,e[16]=m);let h;e[17]===c.view?h=e[18]:(h=c.view===`rewind`&&(0,H.jsx)(f,{label:`Weekly rewind`,overlay:!0,children:(0,H.jsx)(Le,{onClose:$})}),e[17]=c.view,e[18]=h);let g;return e[19]!==u||e[20]!==d||e[21]!==m||e[22]!==h?(g=(0,H.jsxs)(`div`,{className:`mavea-app dash-app`,children:[d,p,u,m,h]}),e[19]=u,e[20]=d,e[21]=m,e[22]=h,e[23]=g):g=e[23],g}function We(){return s(c())}export{Ue as DashboardsApp};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{M as n,N as r,P as i,ht as a}from"./index-CWqRe4-B.js";import{t as o}from"./FeatureUseNotice-CoK5HkbR.js";import{t as s}from"./providers-wzm7E8Pa.js";import{t as c}from"./homeTarget-BcZYH3DY.js";import{l,n as u}from"./useLiveConfig-vMyjo2gV.js";import{n as d}from"./courseSeed-CZdNBTTs.js";var f=e(),p=a(),m=[`×1`,`×10`,`×100`,`×1k`,`×10k`,`×100k`,`×1M`,`×10M`,`×100M`,`×1B`,`×10B`,`×100B`,`×1T`,`×10T`,`×100T`,`×1Q`,`×10Q`,`×100Q`,`×1Qn`,`×10Qn`];function h(e,t){if(!e||typeof e!=`object`)return null;let n=e,r=Array.isArray(n.subtopics)?n.subtopics.map(String).filter(Boolean).slice(0,8):[];if(r.length===0)return null;let i=Math.max(0,Math.min(r.length-1,Number(n.selectedIndex??0)));return{scale:t,multiplier:m[t]??`×${10**t}`,scaleLabel:String(n.scaleLabel??`SCALE ${t}`).toUpperCase(),title:String(n.title??``).trim(),body:String(n.body??``).trim(),subtopics:r,selectedIndex:i}}function g(e){return e.replace(/^```[a-z]*\n?/,``).replace(/\n?```$/,``).trim()}function _(e,t,n){let r;try{r=typeof e==`string`?JSON.parse(g(e)):e}catch{let t=typeof e==`string`?e.match(/\{[\s\S]*\}/):null;r=t?JSON.parse(t[0]):{}}let i=Array.isArray(r.levels)?r.levels:Array.isArray(r)?r:[],a=[];for(let e=0;e<Math.min(i.length,n);e++){let n=h(i[e],t+e);n&&a.push(n)}return a}var v=`You are a "Powers of Ten" semantic telescope builder.
1
+ import{t as e}from"./react-BQSORdFI.js";import{t}from"./jsx-runtime-DaSxXjOY.js";import{M as n,N as r,P as i,ht as a}from"./index-DOpl5xzv.js";import{t as o}from"./FeatureUseNotice-CoK5HkbR.js";import{t as s}from"./providers-wzm7E8Pa.js";import{t as c}from"./homeTarget-BcZYH3DY.js";import{l,n as u}from"./useLiveConfig-DIvKKKpP.js";import{n as d}from"./courseSeed-CZdNBTTs.js";var f=e(),p=a(),m=[`×1`,`×10`,`×100`,`×1k`,`×10k`,`×100k`,`×1M`,`×10M`,`×100M`,`×1B`,`×10B`,`×100B`,`×1T`,`×10T`,`×100T`,`×1Q`,`×10Q`,`×100Q`,`×1Qn`,`×10Qn`];function h(e,t){if(!e||typeof e!=`object`)return null;let n=e,r=Array.isArray(n.subtopics)?n.subtopics.map(String).filter(Boolean).slice(0,8):[];if(r.length===0)return null;let i=Math.max(0,Math.min(r.length-1,Number(n.selectedIndex??0)));return{scale:t,multiplier:m[t]??`×${10**t}`,scaleLabel:String(n.scaleLabel??`SCALE ${t}`).toUpperCase(),title:String(n.title??``).trim(),body:String(n.body??``).trim(),subtopics:r,selectedIndex:i}}function g(e){return e.replace(/^```[a-z]*\n?/,``).replace(/\n?```$/,``).trim()}function _(e,t,n){let r;try{r=typeof e==`string`?JSON.parse(g(e)):e}catch{let t=typeof e==`string`?e.match(/\{[\s\S]*\}/):null;r=t?JSON.parse(t[0]):{}}let i=Array.isArray(r.levels)?r.levels:Array.isArray(r)?r:[],a=[];for(let e=0;e<Math.min(i.length,n);e++){let n=h(i[e],t+e);n&&a.push(n)}return a}var v=`You are a "Powers of Ten" semantic telescope builder.
2
2
 
3
3
  Given a topic or question, produce EXACTLY 10 zoom levels — level 1 is the broadest possible view of the entire field, level 10 is the finest mechanism or detail.
4
4
 
@@ -1 +1 @@
1
- .dlg-scrim{z-index:70;background:rgb(var(--scrim-rgb,15 14 18) / 58%);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);animation:dlgScrimIn var(--m-normal) var(--ease-out);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dlg-panel{--dlg-them:var(--text-secondary);background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-lg);width:min(600px,100%);max-height:min(84vh,780px);box-shadow:var(--shadow-modal);animation:dlgPanelIn var(--m-normal) var(--ease-out);flex-direction:column;padding:22px 24px;display:flex;overflow:hidden}.dlg-panel[data-stage=brief],.dlg-panel[data-stage=done]{scrollbar-gutter:stable;overflow-y:auto}.dlg-panel[data-stage=done] .dlg-table{flex:none}.dlg-panel[data-stage=done] .dlg-log{flex:none;overflow:visible}.dlg-head{flex:none;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.dlg-head-id{align-items:flex-start;gap:10px;min-width:0;display:flex}.dlg-title h2{font-family:var(--font-voice,inherit);letter-spacing:-.01em;margin:0;font-size:25px;font-weight:500;line-height:1.1}.dlg-kicker{color:var(--text-muted);margin:3px 0 0;font-size:12.5px;line-height:1.4}.dlg-x{border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface-glass);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;transition:color var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out), background var(--m-fast) var(--ease-out);flex:none;place-items:center;display:grid}.dlg-x:hover{color:var(--text-primary);border-color:var(--line-strong);background:var(--surface-glass-strong)}.dlg-panel :focus-visible{outline:2px solid var(--presence);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dlg-brief{flex-direction:column;gap:18px;display:flex}.dlg-lede{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}.dlg-lede strong{color:var(--text-primary);font-weight:600}.dlg-seeds{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dlg-seeds-label{font-family:var(--font-data,inherit);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-right:2px;font-size:10px}.dlg-seed{font:inherit;color:var(--text-secondary);background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-full);cursor:pointer;transition:color var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out), background var(--m-fast) var(--ease-out);padding:6px 12px;font-size:12.5px}.dlg-seed:hover,.dlg-seed[aria-pressed=true]{color:var(--text-primary);border-color:color-mix(in oklab, var(--presence) 45%, var(--line));background:color-mix(in oklab, var(--presence) 9%, var(--surface-glass))}.dlg-group{border:none;flex-direction:column;gap:11px;margin:0;padding:0;display:flex}.dlg-group>legend{font-family:var(--font-data,inherit);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:8px;margin-bottom:3px;padding:0;font-size:10.5px;display:flex}.dlg-group.dlg-seed-fill{animation:dlgSeedFill .7s var(--ease-out)}.dlg-field{flex-direction:column;gap:6px;display:flex}.dlg-field-name{color:var(--text-secondary);font-size:12.5px;font-weight:500}.dlg-field-hint{color:var(--text-muted);font-size:11.5px;line-height:1.45}.dlg-field input,.dlg-field textarea{font:inherit;font-family:var(--font-ui,inherit);color:var(--text-primary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);transition:border-color var(--m-fast) var(--ease-out), background var(--m-fast) var(--ease-out);outline:none;min-width:0;padding:11px 13px;font-size:15px;line-height:1.5}.dlg-field textarea{resize:vertical;min-height:46px}.dlg-field input::placeholder,.dlg-field textarea::placeholder{color:var(--text-faint)}.dlg-field input:focus,.dlg-field textarea:focus{border-color:var(--presence);background:color-mix(in oklab, var(--presence) 5%, var(--surface-elevated))}.dlg-group-line{border-radius:var(--r-md);border:1px solid color-mix(in oklab, var(--warning) 34%, var(--line));background:color-mix(in oklab, var(--warning) 5%, var(--surface-elevated));padding:14px}.dlg-group-line>legend{color:color-mix(in oklab, var(--warning) 55%, var(--text-secondary))}.dlg-enforced{font-family:var(--font-data,inherit);letter-spacing:.12em;color:var(--warning);background:color-mix(in oklab, var(--warning) 16%, transparent);border:1px solid color-mix(in oklab, var(--warning) 40%, transparent);border-radius:var(--r-full);padding:2px 7px;font-size:8.5px}.dlg-line-note{color:var(--text-muted);margin:0;font-size:11.5px;line-height:1.5}.dlg-group-line .dlg-field input{background:var(--surface-default);border-color:color-mix(in oklab, var(--warning) 30%, var(--line))}.dlg-group-line .dlg-field input:focus{border-color:var(--warning);background:color-mix(in oklab, var(--warning) 6%, var(--surface-default))}.dlg-line-chips{flex-wrap:wrap;gap:7px;margin:2px 0 0;padding:0;list-style:none;display:flex}.dlg-line-chip{color:color-mix(in oklab, var(--warning) 40%, var(--text-primary));background:color-mix(in oklab, var(--warning) 12%, var(--surface-default));border:1px solid color-mix(in oklab, var(--warning) 32%, transparent);border-radius:var(--r-full);align-items:center;gap:5px;padding:4px 10px 4px 8px;font-size:12px;font-weight:500;display:inline-flex}.dlg-line-chip svg{color:var(--warning);flex:none}.dlg-brief-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.dlg-start{font:inherit;color:var(--text-on-accent,#fff);background:var(--presence);border-radius:var(--r-full);cursor:pointer;box-shadow:0 6px 18px -8px var(--glow-presence);transition:filter var(--m-fast) var(--ease-out), box-shadow var(--m-fast) var(--ease-out);border:none;padding:11px 22px;font-size:14px;font-weight:600}.dlg-start:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 10px 26px -8px var(--glow-presence)}.dlg-start:disabled{opacity:.4;cursor:default;box-shadow:none}.dlg-brief-cost{font-family:var(--font-data,inherit);color:var(--text-muted);font-size:11px}.dlg-table{flex-direction:column;flex:1;gap:14px;min-height:0;display:flex}.dlg-tablescape{min-height:96px;animation:dlgRise var(--m-expressive) var(--ease-out) both;flex:none;grid-template-columns:1fr auto 1fr;align-items:start;gap:10px;display:grid}.dlg-seat{flex-direction:column;align-items:center;gap:2px;min-width:0;display:flex;overflow:visible}.dlg-jelly{flex:none;width:64px;position:relative;overflow:visible}.dlg-jelly .presence{--face-size:64px}.dlg-seat-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:84px;font-size:12px;font-weight:600;overflow:hidden}.dlg-seat-tag{font-family:var(--font-data,inherit);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);border:1px dashed color-mix(in oklab, var(--text-secondary) 45%, transparent);border-radius:var(--r-full);padding:1px 7px;font-size:8.5px}.dlg-seat.theirs .dlg-jelly.ghost{opacity:.82}.dlg-seat.theirs .dlg-jelly.ghost .presence{--dlg-ghost:var(--text-secondary);--mascot-bell-1:color-mix(in oklab, var(--dlg-ghost) 52%, var(--surface-elevated));--mascot-bell-2:color-mix(in oklab, var(--dlg-ghost) 38%, var(--surface-elevated));--mascot-bell-3:color-mix(in oklab, var(--dlg-ghost) 58%, var(--surface-elevated));--mascot-cur-1:color-mix(in oklab, var(--dlg-ghost) 48%, transparent);--mascot-cur-2:color-mix(in oklab, var(--dlg-ghost) 38%, transparent);--mascot-cur-3:color-mix(in oklab, var(--dlg-ghost) 44%, transparent);--mascot-cur-4:color-mix(in oklab, var(--dlg-ghost) 34%, transparent);--mascot-bell-op:.55;--mascot-glow:transparent}.dlg-seat.theirs .dlg-jelly.ghost .presence .aura{display:none}.dlg-seat.theirs .dlg-jelly.ghost .presence .mascot .glyph .stroke{stroke:var(--dlg-ghost)}.dlg-seat.theirs .dlg-jelly.ghost .presence .mascot .glyph .dot,.dlg-seat.theirs .dlg-jelly.ghost .presence .mascot .glyph .halo{fill:var(--dlg-ghost)}.dlg-jelly.ghost:after{content:"";aspect-ratio:1;border:1.5px dashed color-mix(in oklab, var(--text-secondary) 55%, transparent);pointer-events:none;border-radius:50%;width:76%;position:absolute;top:42%;left:50%;translate:-50% -50%}.dlg-jelly .presence .mascot .curtains.long,.dlg-jelly .presence .mascot .band,.dlg-jelly .presence .mascot .glint.g2,.dlg-jelly .presence .mascot .bell-sheen{display:none}.dlg-jelly .presence .mascot .curtains.short{display:inline}.dlg-jelly .presence .mascot .bell{filter:none}.dlg-jelly .presence .mascot .eye{transform:scale(1.3)}.dlg-jelly .presence .mascot .smile{stroke-width:5px}.dlg-jelly.brief{width:44px;margin-top:-2px}.dlg-jelly.brief .presence{--face-size:44px}@media (prefers-reduced-motion:no-preference){:root[data-voice-sync=on] .dlg-jelly .presence[data-state=speaking] .mascot .mouth-open{animation:mascot-talk calc(.9s / var(--motion-scale,1)) var(--ease-in-out) infinite;opacity:initial;transform:initial}}.dlg-meta{flex-direction:column;flex:none;align-items:center;gap:5px;display:flex}.dlg-clock{font-family:var(--font-data,inherit);color:var(--text-muted);font-size:12px}.dlg-rounds{flex-direction:column;align-items:center;gap:5px;display:flex}.dlg-rounds-label{font-family:var(--font-data,inherit);letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);font-size:9.5px}.dlg-rounds-track{gap:4px;display:flex}.dlg-rounds-track i{border-radius:var(--r-full);background:var(--track);width:5px;height:5px}.dlg-rounds-track i.on{background:var(--presence)}.dlg-rounds-track i.now{background:color-mix(in oklab, var(--presence) 55%, transparent);animation:dlgPulse 1.1s var(--ease-in-out) infinite}.dlg-side{align-items:center;gap:6px;min-width:0;display:inline-flex}.dlg-avatar{border-radius:var(--r-full);flex:none;width:18px;height:18px}.dlg-side.yours .dlg-avatar{background:radial-gradient(circle at 34% 30%, var(--presence-soft), var(--presence) 58%, var(--presence-deep));box-shadow:0 0 0 3px color-mix(in oklab, var(--presence) 16%, transparent)}.dlg-side.theirs .dlg-avatar{background:color-mix(in oklab, var(--dlg-them) 10%, transparent);border:1.5px dashed color-mix(in oklab, var(--dlg-them) 60%, transparent)}.dlg-side-text{flex-direction:column;min-width:0;display:flex}.dlg-side-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.dlg-offer{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-elevated-2);animation:dlgRise var(--m-expressive) var(--ease-out) 90ms both;flex:none;padding:13px 16px;position:relative;overflow:hidden}.dlg-offer:before{content:"";background:var(--line-strong);width:3px;transition:background var(--m-normal) var(--ease-out);position:absolute;inset:0 auto 0 0}.dlg-offer[data-by=yours]:before{background:var(--presence)}.dlg-offer[data-by=theirs]:before{background:color-mix(in oklab, var(--dlg-them) 70%, transparent)}.dlg-offer-eyebrow{font-family:var(--font-data,inherit);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-bottom:5px;font-size:9.5px;display:block}.dlg-offer-text{color:var(--text-primary);text-wrap:pretty;animation:dlgOfferIn var(--m-normal) var(--ease-out);margin:0;font-size:15.5px;font-weight:500;line-height:1.45}.dlg-offer-by{color:var(--text-muted);margin-top:5px;font-size:11.5px;display:block}.dlg-offer-empty{color:var(--text-muted);margin:0;font-size:14px;font-style:italic}.dlg-log{scrollbar-gutter:stable;min-height:0;animation:dlgRise var(--m-expressive) var(--ease-out) .17s both;flex-direction:column;flex:1;gap:12px;margin:0;padding:2px;list-style:none;display:flex;overflow-y:auto}.dlg-turn{border-radius:var(--r-md);max-width:82%;animation:dlgTurnIn var(--m-normal) var(--ease-out);flex-direction:column;gap:6px;padding:10px 13px;display:flex}.dlg-turn.yours{background:color-mix(in oklab, var(--presence) 10%, var(--surface-elevated));border:1px solid color-mix(in oklab, var(--presence) 22%, var(--line));border-bottom-left-radius:5px;align-self:flex-start}.dlg-turn.theirs{background:var(--surface-elevated);border:1px solid var(--line-strong);border-bottom-right-radius:5px;align-self:flex-end}.dlg-turn.theirs .dlg-side{flex-direction:row-reverse}.dlg-turn.theirs .dlg-turn-say,.dlg-turn.theirs .dlg-turn-tag{text-align:right;align-self:flex-end}.dlg-turn-say{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:14px;line-height:1.5}.dlg-turn-tag{font-family:var(--font-data,inherit);letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-full);align-self:flex-start;padding:2px 8px;font-size:9px;display:inline-flex}.dlg-turn-tag.agreed{color:var(--insight);background:color-mix(in oklab, var(--insight) 12%, transparent);border-color:color-mix(in oklab, var(--insight) 34%, transparent)}.dlg-turn.accept{background:color-mix(in oklab, var(--insight) 12%, var(--surface-elevated));border-color:color-mix(in oklab, var(--insight) 36%, var(--line))}.dlg-referee{max-width:92%;color:color-mix(in oklab, var(--warning) 30%, var(--text-secondary));background:color-mix(in oklab, var(--warning) 9%, var(--surface-elevated));border:1px dashed color-mix(in oklab, var(--warning) 42%, var(--line));border-radius:var(--r-full);text-align:center;animation:dlgTurnIn var(--m-normal) var(--ease-out);align-self:center;align-items:center;gap:7px;padding:6px 13px;font-size:12px;line-height:1.4;display:inline-flex}.dlg-referee svg{color:var(--warning);flex:none}.dlg-turn.thinking{background:var(--surface-glass);border:1px solid var(--line);padding:9px 13px}.dlg-typing{align-items:center;gap:4px;padding:2px 0;display:inline-flex}.dlg-turn.thinking.theirs .dlg-typing{align-self:flex-end}.dlg-typing i{border-radius:var(--r-full);background:var(--text-muted);width:5px;height:5px;animation:dlgBounce 1.2s var(--ease-in-out) infinite}.dlg-turn.thinking.yours .dlg-typing i{background:var(--presence)}.dlg-typing i:nth-child(2){animation-delay:.16s}.dlg-typing i:nth-child(3){animation-delay:.32s}.dlg-foot{animation:dlgRise var(--m-expressive) var(--ease-out) .24s both;flex:none;display:flex}.dlg-stop{font:inherit;color:var(--text-secondary);border:1px solid var(--line);border-radius:var(--r-full);cursor:pointer;transition:color var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out);background:0 0;padding:8px 16px;font-size:13px}.dlg-stop:hover{color:var(--text-primary);border-color:var(--line-strong)}.dlg-result{border-radius:var(--r-md);animation:dlgResultIn var(--m-expressive) var(--ease-out);flex-direction:column;flex:none;gap:11px;padding:16px;display:flex;position:relative;overflow:visible}.dlg-result.deal,.dlg-result.approved{background:color-mix(in oklab, var(--insight) 9%, var(--surface-elevated));border:1px solid color-mix(in oklab, var(--insight) 34%, var(--line))}.dlg-result.nodeal{background:var(--surface-elevated);border:1px solid var(--line-strong)}.dlg-result.deal:before{content:"";z-index:-1;border-radius:inherit;background:radial-gradient(closest-side, color-mix(in oklab, var(--insight) 14%, transparent), transparent 70%);pointer-events:none;animation:.9s both dlgScrimIn;position:absolute;inset:-40% -20%}.dlg-result.deal .dlg-result-head{animation:dlgRise .48s var(--ease-out) both}.dlg-result.deal .dlg-result-terms{animation:dlgRise .48s var(--ease-out) .14s both}.dlg-result.deal .dlg-result-honest{animation:dlgRise .48s var(--ease-out) .3s both}.dlg-result.deal .dlg-debrief{animation:dlgRise .48s var(--ease-out) .38s both}.dlg-result-head{align-items:center;gap:10px;display:flex}.dlg-result-head h3{font-family:var(--font-voice,inherit);color:var(--text-primary);margin:0;font-size:18px;font-weight:500}.dlg-result-mark{border-radius:var(--r-full);width:28px;height:28px;color:var(--text-on-accent,#fff);background:var(--insight);box-shadow:0 0 0 4px color-mix(in oklab, var(--insight) 18%, transparent);flex:none;place-items:center;display:grid}.dlg-result-mark.line{box-shadow:none;background:0 0;position:relative}.dlg-result-mark.line:after{content:"";border-radius:var(--r-full);background:var(--text-muted);width:18px;height:2px}.dlg-result-terms{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:15.5px;font-weight:500;line-height:1.5}.dlg-result-honest{color:var(--text-secondary);margin:0;font-size:12.5px;line-height:1.55}.dlg-result-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:2px;display:flex}.dlg-debrief{border-top:1px dashed var(--line);flex-direction:column;gap:10px;margin-top:4px;padding-top:12px;display:flex}.dlg-debrief-eyebrow{font-family:var(--font-data,inherit);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);font-size:9.5px}.dlg-debrief-wait{color:var(--text-muted);margin:0;font-size:12.5px}.dlg-debrief[data-state=loading] .dlg-debrief-wait{animation:dlgPulse 1.4s var(--ease-in-out) infinite}.dlg-debrief-retry{font:inherit;color:var(--presence);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:12px;text-decoration:underline}.dlg-debrief-group h4{color:var(--text-primary);margin:0 0 6px;font-size:12.5px;font-weight:600}.dlg-debrief-group ul,.dlg-debrief-group ol{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.dlg-debrief-point{color:var(--text-primary);margin:0;font-size:13px;line-height:1.5}.dlg-debrief-quote{color:var(--text-secondary);margin:3px 0 0;font-size:12px;font-style:italic;line-height:1.45}.dlg-debrief-quote-who{margin-right:4px;font-style:normal;font-weight:600}.dlg-debrief-openers{padding-left:18px}.dlg-debrief-openers li{color:var(--text-primary);font-size:13px;line-height:1.5}.dlg-debrief-footnote{color:var(--text-muted);margin:2px 0 0;font-size:11px;line-height:1.4}.dlg-hold{font:inherit;color:var(--text-on-accent,#fff);background:var(--insight);border-radius:var(--r-full);cursor:pointer;box-shadow:0 6px 18px -8px var(--glow-insight);border:none;padding:11px 20px;font-size:13.5px;font-weight:600;position:relative;overflow:hidden}.dlg-hold-fill{transform-origin:0;background:color-mix(in oklab, var(--text-on-accent,#fff) 26%, transparent);position:absolute;inset:0;transform:scaleX(0)}.dlg-hold.holding .dlg-hold-fill{transition:transform 1.2s linear;transform:scaleX(1)}.dlg-hold-label{position:relative}.dlg-pass,.dlg-done{font:inherit;color:var(--text-secondary);border:1px solid var(--line);border-radius:var(--r-full);cursor:pointer;transition:color var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out);background:0 0;align-self:flex-start;padding:9px 18px;font-size:13px}.dlg-pass:hover,.dlg-done:hover{color:var(--text-primary);border-color:var(--line-strong)}.dlg-followup{flex-direction:column;flex:none;gap:8px;padding-top:2px;display:flex}.dlg-followup-btn{font:inherit;color:var(--presence);background:color-mix(in oklab, var(--presence) 10%, transparent);border:1px solid color-mix(in oklab, var(--presence) 30%, transparent);border-radius:var(--r-full);cursor:pointer;transition:background var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out);align-self:flex-start;padding:9px 16px;font-size:13px;font-weight:600}.dlg-followup-btn:hover{background:color-mix(in oklab, var(--presence) 16%, transparent);border-color:color-mix(in oklab, var(--presence) 45%, transparent)}.dlg-followup-btn.ghost{color:var(--text-secondary);border-color:var(--line);background:0 0}.dlg-followup-btn.ghost:hover{color:var(--text-primary);border-color:var(--line-strong)}.dlg-followup-hint{color:var(--text-muted);font-size:11px}.dlg-followup-actions{flex-wrap:wrap;gap:10px;display:flex}.dlg-runs{border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-glass);flex-direction:column;flex:none;gap:4px;padding:10px 12px;display:flex}.dlg-runs-item{font-family:var(--font-data,inherit);color:var(--text-secondary);font-size:11px}@keyframes dlgScrimIn{0%{opacity:0}}@keyframes dlgPanelIn{0%{opacity:0;transform:translateY(10px)scale(.985)}}@keyframes dlgTurnIn{0%{opacity:0;transform:translateY(7px)}}@keyframes dlgOfferIn{0%{opacity:0;transform:translateY(4px)}}@keyframes dlgResultIn{0%{opacity:0;transform:translateY(9px)scale(.99)}}@keyframes dlgRise{0%{opacity:0;transform:translateY(16px)}}@keyframes dlgBounce{0%,60%,to{opacity:.55;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@keyframes dlgPulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes dlgSeedFill{0%{filter:brightness(1.15)saturate(1.3)}to{filter:brightness()saturate()}}@media (width<=560px){.dlg-scrim{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);align-items:flex-end;padding:0}.dlg-panel{border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-height:94dvh;padding:18px 18px calc(18px + env(safe-area-inset-bottom,0px));animation:dlgSheetIn var(--m-normal) var(--ease-out)}.dlg-field input,.dlg-field textarea{padding:12px 13px;font-size:16px}.dlg-start,.dlg-stop,.dlg-hold,.dlg-pass,.dlg-done,.dlg-seed,.dlg-followup-btn{min-height:44px}.dlg-x{width:40px;height:40px}.dlg-turn{max-width:90%}.dlg-jelly:not(.brief){width:52px}.dlg-jelly:not(.brief) .presence{--face-size:52px}.dlg-seat-name{font-size:11px}}@media (width<=400px){.dlg-jelly:not(.brief){width:48px}.dlg-jelly:not(.brief) .presence{--face-size:48px}.dlg-seat-name{max-width:64px;font-size:10.5px}.dlg-seat-tag{padding:1px 5px;font-size:8px}}@keyframes dlgSheetIn{0%{opacity:0;transform:translateY(24px)}}@media (prefers-reduced-motion:reduce){.dlg-scrim,.dlg-panel,.dlg-turn,.dlg-referee,.dlg-offer-text,.dlg-result,.dlg-result.deal:before,.dlg-result-head,.dlg-result-terms,.dlg-result-honest,.dlg-debrief,.dlg-debrief[data-state=loading] .dlg-debrief-wait,.dlg-tablescape,.dlg-offer,.dlg-log,.dlg-foot,.dlg-group.dlg-seed-fill,.dlg-rounds-track i.now,.dlg-typing i{animation:none}}
1
+ .dlg-scrim{z-index:70;background:rgb(var(--scrim-rgb,15 14 18) / 58%);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);animation:dlgScrimIn var(--m-normal) var(--ease-out);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dlg-panel{--dlg-them:var(--text-secondary);background:var(--surface-default);border:1px solid var(--line);border-radius:var(--r-lg);width:min(600px,100%);max-height:min(84vh,780px);box-shadow:var(--shadow-modal);animation:dlgPanelIn var(--m-normal) var(--ease-out);flex-direction:column;padding:22px 24px;display:flex;overflow:hidden}.dlg-panel[data-stage=brief],.dlg-panel[data-stage=done]{scrollbar-gutter:stable;overflow-y:auto}.dlg-panel[data-stage=done] .dlg-table{flex:none}.dlg-panel[data-stage=done] .dlg-log{flex:none;overflow:visible}.dlg-head{flex:none;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.dlg-head-id{align-items:flex-start;gap:10px;min-width:0;display:flex}.dlg-title h2{font-family:var(--font-voice,inherit);letter-spacing:-.01em;margin:0;font-size:25px;font-weight:500;line-height:1.1}.dlg-kicker{color:var(--text-muted);margin:3px 0 0;font-size:12.5px;line-height:1.4}.dlg-x{border:1px solid var(--line);border-radius:var(--r-full);background:var(--surface-glass);width:34px;height:34px;color:var(--text-secondary);cursor:pointer;transition:color var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out), background var(--m-fast) var(--ease-out);flex:none;place-items:center;display:grid}.dlg-x:hover{color:var(--text-primary);border-color:var(--line-strong);background:var(--surface-glass-strong)}.dlg-panel :focus-visible{outline:2px solid var(--presence);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dlg-brief{flex-direction:column;gap:18px;display:flex}.dlg-lede{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}.dlg-lede strong{color:var(--text-primary);font-weight:600}.dlg-seeds{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dlg-seeds-label{font-family:var(--font-data,inherit);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-right:2px;font-size:10px}.dlg-seed{font:inherit;color:var(--text-secondary);background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-full);cursor:pointer;transition:color var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out), background var(--m-fast) var(--ease-out);padding:6px 12px;font-size:12.5px}.dlg-seed:hover,.dlg-seed[aria-pressed=true]{color:var(--text-primary);border-color:color-mix(in oklab, var(--presence) 45%, var(--line));background:color-mix(in oklab, var(--presence) 9%, var(--surface-glass))}.dlg-group{border:none;flex-direction:column;gap:11px;margin:0;padding:0;display:flex}.dlg-group>legend{font-family:var(--font-data,inherit);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:8px;margin-bottom:3px;padding:0;font-size:10.5px;display:flex}.dlg-group.dlg-seed-fill{animation:dlgSeedFill .7s var(--ease-out)}.dlg-field{flex-direction:column;gap:6px;display:flex}.dlg-field-name{color:var(--text-secondary);font-size:12.5px;font-weight:500}.dlg-field-hint{color:var(--text-muted);font-size:11.5px;line-height:1.45}.dlg-field input,.dlg-field textarea{font:inherit;font-family:var(--font-ui,inherit);color:var(--text-primary);background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-sm);transition:border-color var(--m-fast) var(--ease-out), background var(--m-fast) var(--ease-out);outline:none;min-width:0;padding:11px 13px;font-size:15px;line-height:1.5}.dlg-field textarea{resize:vertical;min-height:46px}.dlg-field input::placeholder,.dlg-field textarea::placeholder{color:var(--text-faint)}.dlg-field input:focus,.dlg-field textarea:focus{border-color:var(--presence);background:color-mix(in oklab, var(--presence) 5%, var(--surface-elevated))}.dlg-group-line{border-radius:var(--r-md);border:1px solid color-mix(in oklab, var(--warning) 34%, var(--line));background:color-mix(in oklab, var(--warning) 5%, var(--surface-elevated));padding:14px}.dlg-group-line>legend{color:color-mix(in oklab, var(--warning) 55%, var(--text-secondary))}.dlg-enforced{font-family:var(--font-data,inherit);letter-spacing:.12em;color:var(--warning);background:color-mix(in oklab, var(--warning) 16%, transparent);border:1px solid color-mix(in oklab, var(--warning) 40%, transparent);border-radius:var(--r-full);padding:2px 7px;font-size:8.5px}.dlg-line-note{color:var(--text-muted);margin:0;font-size:11.5px;line-height:1.5}.dlg-group-line .dlg-field input{background:var(--surface-default);border-color:color-mix(in oklab, var(--warning) 30%, var(--line))}.dlg-group-line .dlg-field input:focus{border-color:var(--warning);background:color-mix(in oklab, var(--warning) 6%, var(--surface-default))}.dlg-line-chips{flex-wrap:wrap;gap:7px;margin:2px 0 0;padding:0;list-style:none;display:flex}.dlg-line-chip{color:color-mix(in oklab, var(--warning) 40%, var(--text-primary));background:color-mix(in oklab, var(--warning) 12%, var(--surface-default));border:1px solid color-mix(in oklab, var(--warning) 32%, transparent);border-radius:var(--r-full);align-items:center;gap:5px;padding:4px 10px 4px 8px;font-size:12px;font-weight:500;display:inline-flex}.dlg-line-chip svg{color:var(--warning);flex:none}.dlg-brief-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.dlg-start{font:inherit;color:var(--text-on-accent,#fff);background:var(--presence);border-radius:var(--r-full);cursor:pointer;box-shadow:0 6px 18px -8px var(--glow-presence);transition:filter var(--m-fast) var(--ease-out), box-shadow var(--m-fast) var(--ease-out);border:none;padding:11px 22px;font-size:14px;font-weight:600}.dlg-start:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 10px 26px -8px var(--glow-presence)}.dlg-start:disabled{opacity:.4;cursor:default;box-shadow:none}.dlg-brief-cost{font-family:var(--font-data,inherit);color:var(--text-muted);font-size:11px}.dlg-table{flex-direction:column;flex:1;gap:14px;min-height:0;display:flex}.dlg-tablescape{min-height:96px;animation:dlgRise var(--m-expressive) var(--ease-out) both;flex:none;grid-template-columns:1fr auto 1fr;align-items:start;gap:10px;display:grid}.dlg-seat{flex-direction:column;align-items:center;gap:2px;min-width:0;display:flex;overflow:visible}.dlg-jelly{flex:none;width:64px;position:relative;overflow:visible}.dlg-jelly .presence{--face-size:64px}.dlg-seat-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:84px;font-size:12px;font-weight:600;overflow:hidden}.dlg-seat-tag{font-family:var(--font-data,inherit);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);border:1px dashed color-mix(in oklab, var(--text-secondary) 45%, transparent);border-radius:var(--r-full);padding:1px 7px;font-size:8.5px}.dlg-seat.theirs .dlg-jelly.ghost{opacity:.82}.dlg-seat.theirs .dlg-jelly.ghost .presence{--dlg-ghost:var(--text-secondary);--mascot-bell-1:color-mix(in oklab, var(--dlg-ghost) 52%, var(--surface-elevated));--mascot-bell-2:color-mix(in oklab, var(--dlg-ghost) 38%, var(--surface-elevated));--mascot-bell-3:color-mix(in oklab, var(--dlg-ghost) 58%, var(--surface-elevated));--mascot-cur-1:color-mix(in oklab, var(--dlg-ghost) 48%, transparent);--mascot-cur-2:color-mix(in oklab, var(--dlg-ghost) 38%, transparent);--mascot-cur-3:color-mix(in oklab, var(--dlg-ghost) 44%, transparent);--mascot-cur-4:color-mix(in oklab, var(--dlg-ghost) 34%, transparent);--mascot-bell-op:.55;--mascot-glow:transparent}.dlg-seat.theirs .dlg-jelly.ghost .presence .aura{display:none}.dlg-seat.theirs .dlg-jelly.ghost .presence .mascot .glyph .stroke{stroke:var(--dlg-ghost)}.dlg-seat.theirs .dlg-jelly.ghost .presence .mascot .glyph .dot,.dlg-seat.theirs .dlg-jelly.ghost .presence .mascot .glyph .halo{fill:var(--dlg-ghost)}.dlg-jelly.ghost:after{content:"";aspect-ratio:1;border:1.5px dashed color-mix(in oklab, var(--text-secondary) 55%, transparent);pointer-events:none;border-radius:50%;width:76%;position:absolute;top:42%;left:50%;translate:-50% -50%}.dlg-jelly .presence .mascot .curtains.long,.dlg-jelly .presence .mascot .band,.dlg-jelly .presence .mascot .glint.g2,.dlg-jelly .presence .mascot .bell-sheen{display:none}.dlg-jelly .presence .mascot .curtains.short{display:inline}.dlg-jelly .presence .mascot .bell{filter:none}.dlg-jelly .presence .mascot .eye{transform:scale(1.3)}.dlg-jelly .presence .mascot .smile{stroke-width:5px}.dlg-jelly.brief{width:44px;margin-top:-2px}.dlg-jelly.brief .presence{--face-size:44px}@media (prefers-reduced-motion:no-preference){:root[data-voice-sync=on] .dlg-jelly .presence[data-state=speaking] .mascot .mouth-open{animation:mascot-talk calc(.9s / var(--motion-scale,1)) var(--ease-in-out) infinite;opacity:initial;transform:initial}}.dlg-meta{flex-direction:column;flex:none;align-items:center;gap:5px;display:flex}.dlg-clock{font-family:var(--font-data,inherit);color:var(--text-muted);font-size:12px}.dlg-rounds{flex-direction:column;align-items:center;gap:5px;display:flex}.dlg-rounds-label{font-family:var(--font-data,inherit);letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);font-size:9.5px}.dlg-rounds-track{gap:4px;display:flex}.dlg-rounds-track i{border-radius:var(--r-full);background:var(--track);width:5px;height:5px}.dlg-rounds-track i.on{background:var(--presence)}.dlg-rounds-track i.now{background:color-mix(in oklab, var(--presence) 55%, transparent);animation:dlgPulse 1.1s var(--ease-in-out) infinite}.dlg-side{align-items:center;gap:6px;min-width:0;display:inline-flex}.dlg-avatar{border-radius:var(--r-full);flex:none;width:18px;height:18px}.dlg-side.yours .dlg-avatar{background:radial-gradient(circle at 34% 30%, var(--presence-soft), var(--presence) 58%, var(--presence-deep));box-shadow:0 0 0 3px color-mix(in oklab, var(--presence) 16%, transparent)}.dlg-side.theirs .dlg-avatar{background:color-mix(in oklab, var(--dlg-them) 10%, transparent);border:1.5px dashed color-mix(in oklab, var(--dlg-them) 60%, transparent)}.dlg-side-text{flex-direction:column;min-width:0;display:flex}.dlg-side-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.dlg-offer{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-elevated-2);animation:dlgRise var(--m-expressive) var(--ease-out) 90ms both;flex:none;padding:13px 16px;position:relative;overflow:hidden}.dlg-offer:before{content:"";background:var(--line-strong);width:3px;transition:background var(--m-normal) var(--ease-out);position:absolute;inset:0 auto 0 0}.dlg-offer[data-by=yours]:before{background:var(--presence)}.dlg-offer[data-by=theirs]:before{background:color-mix(in oklab, var(--dlg-them) 70%, transparent)}.dlg-offer-eyebrow{font-family:var(--font-data,inherit);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-bottom:5px;font-size:9.5px;display:block}.dlg-offer-text{color:var(--text-primary);text-wrap:pretty;animation:dlgOfferIn var(--m-normal) var(--ease-out);margin:0;font-size:15.5px;font-weight:500;line-height:1.45}.dlg-offer-by{color:var(--text-muted);margin-top:5px;font-size:11.5px;display:block}.dlg-offer-empty{color:var(--text-muted);margin:0;font-size:14px;font-style:italic}.dlg-log{scrollbar-gutter:stable;min-height:0;animation:dlgRise var(--m-expressive) var(--ease-out) .17s both;flex-direction:column;flex:1;gap:12px;margin:0;padding:2px;list-style:none;display:flex;overflow-y:auto}.dlg-turn{border-radius:var(--r-md);max-width:82%;animation:dlgTurnIn var(--m-normal) var(--ease-out);flex-direction:column;gap:6px;padding:10px 13px;display:flex}.dlg-turn.yours{background:color-mix(in oklab, var(--presence) 10%, var(--surface-elevated));border:1px solid color-mix(in oklab, var(--presence) 22%, var(--line));border-bottom-left-radius:5px;align-self:flex-start}.dlg-turn.theirs{background:var(--surface-elevated);border:1px solid var(--line-strong);border-bottom-right-radius:5px;align-self:flex-end}.dlg-turn.theirs .dlg-side{flex-direction:row-reverse}.dlg-turn.theirs .dlg-turn-say,.dlg-turn.theirs .dlg-turn-tag{text-align:right;align-self:flex-end}.dlg-turn-say{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:14px;line-height:1.5}.dlg-turn-tag{font-family:var(--font-data,inherit);letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-full);align-self:flex-start;padding:2px 8px;font-size:9px;display:inline-flex}.dlg-turn-tag.agreed{color:var(--insight);background:color-mix(in oklab, var(--insight) 12%, transparent);border-color:color-mix(in oklab, var(--insight) 34%, transparent)}.dlg-turn.accept{background:color-mix(in oklab, var(--insight) 12%, var(--surface-elevated));border-color:color-mix(in oklab, var(--insight) 36%, var(--line))}.dlg-referee{max-width:92%;color:color-mix(in oklab, var(--warning) 30%, var(--text-secondary));background:color-mix(in oklab, var(--warning) 9%, var(--surface-elevated));border:1px dashed color-mix(in oklab, var(--warning) 42%, var(--line));border-radius:var(--r-full);text-align:center;animation:dlgTurnIn var(--m-normal) var(--ease-out);align-self:center;align-items:center;gap:7px;padding:6px 13px;font-size:12px;line-height:1.4;display:inline-flex}.dlg-referee svg{color:var(--warning);flex:none}.dlg-turn.thinking{background:var(--surface-glass);border:1px solid var(--line);padding:9px 13px}.dlg-typing{align-items:center;gap:4px;padding:2px 0;display:inline-flex}.dlg-turn.thinking.theirs .dlg-typing{align-self:flex-end}.dlg-typing i{border-radius:var(--r-full);background:var(--text-muted);width:5px;height:5px;animation:dlgBounce 1.2s var(--ease-in-out) infinite}.dlg-turn.thinking.yours .dlg-typing i{background:var(--presence)}.dlg-typing i:nth-child(2){animation-delay:.16s}.dlg-typing i:nth-child(3){animation-delay:.32s}.dlg-foot{animation:dlgRise var(--m-expressive) var(--ease-out) .24s both;flex:none;display:flex}.dlg-stop{font:inherit;color:var(--text-secondary);border:1px solid var(--line);border-radius:var(--r-full);cursor:pointer;transition:color var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out);background:0 0;padding:8px 16px;font-size:13px}.dlg-stop:hover{color:var(--text-primary);border-color:var(--line-strong)}.dlg-result{border-radius:var(--r-md);animation:dlgResultIn var(--m-expressive) var(--ease-out);flex-direction:column;flex:none;gap:11px;padding:16px;display:flex;position:relative;overflow:visible}.dlg-result.deal,.dlg-result.approved{background:color-mix(in oklab, var(--insight) 9%, var(--surface-elevated));border:1px solid color-mix(in oklab, var(--insight) 34%, var(--line))}.dlg-result.nodeal{background:var(--surface-elevated);border:1px solid var(--line-strong)}.dlg-result.deal:before{content:"";z-index:-1;border-radius:inherit;background:radial-gradient(closest-side, color-mix(in oklab, var(--insight) 14%, transparent), transparent 70%);pointer-events:none;animation:.9s both dlgScrimIn;position:absolute;inset:-40% -20%}.dlg-result.deal .dlg-result-head{animation:dlgRise .48s var(--ease-out) both}.dlg-result.deal .dlg-result-terms{animation:dlgRise .48s var(--ease-out) .14s both}.dlg-result.deal .dlg-result-honest{animation:dlgRise .48s var(--ease-out) .3s both}.dlg-result.deal .dlg-debrief{animation:dlgRise .48s var(--ease-out) .38s both}.dlg-result-head{align-items:center;gap:10px;display:flex}.dlg-result-head h3{font-family:var(--font-voice,inherit);color:var(--text-primary);margin:0;font-size:18px;font-weight:500}.dlg-result-mark{border-radius:var(--r-full);width:28px;height:28px;color:var(--text-on-accent,#fff);background:var(--insight);box-shadow:0 0 0 4px color-mix(in oklab, var(--insight) 18%, transparent);flex:none;place-items:center;display:grid}.dlg-result-mark.line{box-shadow:none;background:0 0;position:relative}.dlg-result-mark.line:after{content:"";border-radius:var(--r-full);background:var(--text-muted);width:18px;height:2px}.dlg-result-terms{color:var(--text-primary);text-wrap:pretty;margin:0;font-size:15.5px;font-weight:500;line-height:1.5}.dlg-result-honest{color:var(--text-secondary);margin:0;font-size:12.5px;line-height:1.55}.dlg-result-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:2px;display:flex}.dlg-debrief{border-top:1px dashed var(--line);flex-direction:column;gap:10px;margin-top:4px;padding-top:12px;display:flex}.dlg-debrief-eyebrow{font-family:var(--font-data,inherit);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);font-size:9.5px}.dlg-debrief-wait{color:var(--text-muted);margin:0;font-size:12.5px}.dlg-debrief[data-state=loading] .dlg-debrief-wait{animation:dlgPulse 1.4s var(--ease-in-out) infinite}.dlg-debrief-retry{font:inherit;color:var(--presence);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:12px;text-decoration:underline}.dlg-debrief-group h4{color:var(--text-primary);margin:0 0 6px;font-size:12.5px;font-weight:600}.dlg-debrief-group ul,.dlg-debrief-group ol{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.dlg-debrief-point{color:var(--text-primary);margin:0;font-size:13px;line-height:1.5}.dlg-debrief-quote{color:var(--text-secondary);margin:3px 0 0;font-size:12px;font-style:italic;line-height:1.45}.dlg-debrief-quote-who{margin-right:4px;font-style:normal;font-weight:600}.dlg-debrief-openers{padding-left:18px}.dlg-debrief-openers li{color:var(--text-primary);font-size:13px;line-height:1.5}.dlg-debrief-footnote{color:var(--text-muted);margin:2px 0 0;font-size:11px;line-height:1.4}.dlg-hold{font:inherit;color:var(--text-on-accent,#fff);background:var(--insight);border-radius:var(--r-full);cursor:pointer;box-shadow:0 6px 18px -8px var(--glow-insight);border:none;padding:11px 20px;font-size:13.5px;font-weight:600;position:relative;overflow:hidden}.dlg-hold-fill{transform-origin:0;background:color-mix(in oklab, var(--text-on-accent,#fff) 26%, transparent);position:absolute;inset:0;transform:scaleX(0)}.dlg-hold.holding .dlg-hold-fill{transition:transform 1.2s linear;transform:scaleX(1)}.dlg-hold-label{position:relative}.dlg-pass,.dlg-done{font:inherit;color:var(--text-secondary);border:1px solid var(--line);border-radius:var(--r-full);cursor:pointer;transition:color var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out);background:0 0;align-self:flex-start;padding:9px 18px;font-size:13px}.dlg-pass:hover,.dlg-done:hover{color:var(--text-primary);border-color:var(--line-strong)}.dlg-followup{flex-direction:column;flex:none;gap:8px;padding-top:2px;display:flex}.dlg-followup-btn{font:inherit;color:var(--presence);background:color-mix(in oklab, var(--presence) 10%, transparent);border:1px solid color-mix(in oklab, var(--presence) 30%, transparent);border-radius:var(--r-full);cursor:pointer;transition:background var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out);align-self:flex-start;padding:9px 16px;font-size:13px;font-weight:600}.dlg-followup-btn:hover{background:color-mix(in oklab, var(--presence) 16%, transparent);border-color:color-mix(in oklab, var(--presence) 45%, transparent)}.dlg-followup-btn.ghost{color:var(--text-secondary);border-color:var(--line);background:0 0}.dlg-followup-btn.ghost:hover{color:var(--text-primary);border-color:var(--line-strong)}.dlg-followup-hint{color:var(--text-muted);font-size:11px}.dlg-followup-actions{flex-wrap:wrap;gap:10px;display:flex}.dlg-runs{border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-glass);flex-direction:column;flex:none;gap:4px;padding:10px 12px;display:flex}.dlg-runs-item{font-family:var(--font-data,inherit);color:var(--text-secondary);font-size:11px}@keyframes dlgScrimIn{0%{opacity:0}}@keyframes dlgPanelIn{0%{opacity:0;transform:translateY(10px)scale(.985)}}@keyframes dlgTurnIn{0%{opacity:0;transform:translateY(7px)}}@keyframes dlgOfferIn{0%{opacity:0;transform:translateY(4px)}}@keyframes dlgResultIn{0%{opacity:0;transform:translateY(9px)scale(.99)}}@keyframes dlgRise{0%{opacity:0;transform:translateY(16px)}}@keyframes dlgBounce{0%,60%,to{opacity:.55;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@keyframes dlgPulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes dlgSeedFill{0%{filter:brightness(1.15)saturate(1.3)}to{filter:brightness()saturate()}}@media (width<=560px){.dlg-scrim{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);align-items:flex-end;padding:0}.dlg-panel{border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-height:94dvh;padding:18px 18px calc(18px + env(safe-area-inset-bottom,0px));animation:dlgSheetIn var(--m-normal) var(--ease-out)}.dlg-field input,.dlg-field textarea{padding:12px 13px;font-size:16px}.dlg-start,.dlg-stop,.dlg-hold,.dlg-pass,.dlg-done,.dlg-seed,.dlg-followup-btn{min-height:44px}.dlg-x{width:40px;height:40px}.dlg-turn{max-width:90%}.dlg-jelly:not(.brief){width:52px}.dlg-jelly:not(.brief) .presence{--face-size:52px}.dlg-seat-name{font-size:11px}}@media (width<=400px){.dlg-jelly:not(.brief){width:48px}.dlg-jelly:not(.brief) .presence{--face-size:48px}.dlg-seat-name{max-width:64px;font-size:10.5px}.dlg-seat-tag{padding:1px 5px;font-size:8px}}@keyframes dlgSheetIn{0%{opacity:0;transform:translateY(24px)}}.dlg-seatpick{gap:10px;display:flex}.dlg-seatpick-opt{border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-glass);cursor:pointer;text-align:left;font:inherit;flex-direction:column;flex:1;gap:3px;padding:10px 14px;display:flex}.dlg-seatpick-opt:hover{border-color:var(--line-strong)}.dlg-seatpick-opt[aria-checked=true]{border-color:color-mix(in oklab, var(--presence) 55%, transparent);background:color-mix(in oklab, var(--presence) 8%, transparent)}.dlg-seatpick-name{color:var(--text-primary);font-size:13px;font-weight:600}.dlg-seatpick-sub{color:var(--text-muted);font-size:11.5px;line-height:1.4}.dlg-memory{color:var(--text-secondary);cursor:pointer;align-items:center;gap:9px;font-size:12.5px;display:flex}.dlg-seat-you{border:1.5px dashed color-mix(in oklab, var(--presence) 55%, transparent);background:color-mix(in oklab, var(--presence) 7%, transparent);border-radius:50%;width:44px;height:44px;margin:10px 0 6px}.dlg-take-badge{font-family:var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:var(--warning);font-size:10.5px}.dlg-failed{color:var(--text-secondary);font-size:12.5px}.dlg-failed button{color:var(--presence);font:inherit;cursor:pointer;background:0 0;border:none;font-size:12.5px;font-weight:600;text-decoration:underline}.dlg-coach{border-radius:var(--r-md);background:color-mix(in oklab, var(--warning) 11%, transparent);border:1px solid color-mix(in oklab, var(--warning) 30%, transparent);flex-direction:column;gap:7px;padding:14px 16px;display:flex}.dlg-coach-kicker{font-family:var(--font-data);letter-spacing:.16em;color:var(--warning);font-size:9.5px;font-weight:700}.dlg-coach-note,.dlg-coach-tip{color:var(--text-primary);margin:0;font-size:13px;line-height:1.55}.dlg-coach-tip{color:var(--text-secondary)}.dlg-coach-wait{color:var(--text-muted);margin:0;font-size:12px;font-style:italic}.dlg-compose{gap:9px;display:flex}.dlg-compose input{border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-glass);color:var(--text-primary);font:inherit;flex:1;padding:9px 13px;font-size:13.5px}.dlg-say{border-radius:var(--r-full);background:var(--presence);color:#fff;cursor:pointer;font:inherit;border:none;flex:none;padding:9px 18px;font-size:13px;font-weight:600}.dlg-say:disabled{opacity:.45;cursor:default}.dlg-take-actions{align-items:center;gap:10px;display:flex}.dlg-end-take,.dlg-real-debrief{border-radius:var(--r-full);border:1px solid var(--line);color:var(--text-secondary);cursor:pointer;font:inherit;background:0 0;padding:8px 16px;font-size:12.5px;font-weight:600}.dlg-end-take{border-color:color-mix(in oklab, var(--warning) 45%, transparent);color:var(--warning)}.dlg-end-take:hover:not(:disabled){background:color-mix(in oklab, var(--warning) 10%, transparent)}.dlg-end-take:disabled{opacity:.45;cursor:default}.dlg-real-debrief{margin-left:auto}.dlg-real-debrief:hover{color:var(--text-primary);border-color:var(--line-strong)}@media (prefers-reduced-motion:reduce){.dlg-scrim,.dlg-panel,.dlg-turn,.dlg-referee,.dlg-offer-text,.dlg-result,.dlg-result.deal:before,.dlg-result-head,.dlg-result-terms,.dlg-result-honest,.dlg-debrief,.dlg-debrief[data-state=loading] .dlg-debrief-wait,.dlg-tablescape,.dlg-offer,.dlg-log,.dlg-foot,.dlg-group.dlg-seed-fill,.dlg-rounds-track i.now,.dlg-typing i{animation:none}}