@mavea/mavea 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +6 -2
  3. package/bin/mavea.mjs +40 -8
  4. package/dist/.vite/manifest.json +393 -393
  5. package/dist/assets/{AnnotationLayer-Cccb12ps.js → AnnotationLayer-BsAcAd59.js} +0 -0
  6. package/dist/assets/{AppCommandPalette-DdOPNZ0e.js → AppCommandPalette-Cucwjk5N.js} +1 -1
  7. package/dist/assets/{CheckLogRail-BibJTid0.js → CheckLogRail-vq2lZ7a5.js} +1 -1
  8. package/dist/assets/ConversationVideoStudio-Df892wqs.js +1 -0
  9. package/dist/assets/{CourseLessonReader-D29Kix4f.js → CourseLessonReader-DKQimh2S.js} +2 -2
  10. package/dist/assets/{CoursesApp-DcDsS_ZS.js → CoursesApp-LeqL6dWT.js} +1 -1
  11. package/dist/assets/{DashPresent-BDWgO9am.js → DashPresent-DZcRdu6R.js} +1 -1
  12. package/dist/assets/{DashboardDetail-BrnAdWfy.js → DashboardDetail-2XL-J4rS.js} +2 -2
  13. package/dist/assets/{DashboardLoopGate-NxMcQ4rD.js → DashboardLoopGate-B95S4oKR.js} +2 -2
  14. package/dist/assets/DashboardLoopRuntime-Wzk85QXi.js +1 -0
  15. package/dist/assets/{DashboardsApp-DxyMn3x_.js → DashboardsApp-ZGuT2QBi.js} +2 -2
  16. package/dist/assets/{DeepZoomApp-nNjqoyYE.js → DeepZoomApp-CPOsar8c.js} +1 -1
  17. package/dist/assets/{DelegatePanel-DN_ZL0j7.js → DelegatePanel-BkTtUMSl.js} +1 -1
  18. package/dist/assets/{DemoGallery-DrSlMsnu.js → DemoGallery-BcQ9yz2u.js} +1 -1
  19. package/dist/assets/{DropSelect-GwIXHA5o.js → DropSelect-GKioj__f.js} +1 -1
  20. package/dist/assets/{ExportModal-DBUjC71U.js → ExportModal-1pWr-c7I.js} +1 -1
  21. package/dist/assets/{ExtractionPreview-D4M6eXqb.js → ExtractionPreview-TKyfEqwM.js} +1 -1
  22. package/dist/assets/{FeatureUseNotice-Bda9jr3W.js → FeatureUseNotice-pQe4YHgJ.js} +1 -1
  23. package/dist/assets/{FlagshipCommandPalette-DAO849RC.js → FlagshipCommandPalette-D1pv3hfZ.js} +1 -1
  24. package/dist/assets/{FlagshipShowcase-g2x-1c70.js → FlagshipShowcase-CCFFcaL7.js} +1 -1
  25. package/dist/assets/{FlashcardsApp-BUKzCr65.js → FlashcardsApp-Dbe-8UkQ.js} +1 -1
  26. package/dist/assets/{GalleryApp-ot_A7ZF-.js → GalleryApp-CCLYcEqn.js} +1 -1
  27. package/dist/assets/{HonestByDesign-DgZFEpEx.js → HonestByDesign-ByOR1sRQ.js} +1 -1
  28. package/dist/assets/{HowItWorks-DPFpdeGE.js → HowItWorks-Dllc30ph.js} +1 -1
  29. package/dist/assets/{LegalApp-C56kWdmK.js → LegalApp-CpblxmmB.js} +1 -1
  30. package/dist/assets/{LegalMarkdownDocument-BBTHuW_M.js → LegalMarkdownDocument-CmxHsXlb.js} +1 -1
  31. package/dist/assets/{LegalPageShell-hMA-7JLf.js → LegalPageShell-CDD6D6T_.js} +1 -1
  32. package/dist/assets/{LibraryOverlay-DSUWcUe4.js → LibraryOverlay-CHmubwG3.js} +1 -1
  33. package/dist/assets/{LiveApp-B62EMybC.js → LiveApp-CSbjhgzM.js} +4 -4
  34. package/dist/assets/{LiveSettings-BITIaMoT.js → LiveSettings-B4T6x41n.js} +3 -3
  35. package/dist/assets/{MindMapViewerDrawer-CKdJtHno.js → MindMapViewerDrawer-BLRBWsTz.js} +1 -1
  36. package/dist/assets/{MindShape-B3lg_z4X.js → MindShape-CaDuLyGa.js} +1 -1
  37. package/dist/assets/{PinToDashboard-DpQjBLPa.js → PinToDashboard-ChK2Ou73.js} +1 -1
  38. package/dist/assets/{PlanReview-CrTbmMAd.js → PlanReview-Dg6VE0xF.js} +1 -1
  39. package/dist/assets/{PresentationDeck-CfYadu9V.js → PresentationDeck-oEd6TXdN.js} +1 -1
  40. package/dist/assets/{PrismApp-bRKK_3JA.js → PrismApp-Bju264hL.js} +2 -2
  41. package/dist/assets/{PrismBriefingPlayer-ChJj6hSS.js → PrismBriefingPlayer-BY0RREUu.js} +2 -2
  42. package/dist/assets/{PrismOverlay-Pp6ZKmTc.js → PrismOverlay-DOWyOUVW.js} +3 -3
  43. package/dist/assets/{PrismWorkbench-BCV7r4Oa.js → PrismWorkbench-9RonO2uv.js} +1 -1
  44. package/dist/assets/{PrivacyApp-A2Bu6LVd.js → PrivacyApp-CBPMqUEA.js} +1 -1
  45. package/dist/assets/{ReplayCard-B6NYiYzQ.js → ReplayCard-BnX73r9n.js} +2 -2
  46. package/dist/assets/{ReplayOverlay-BJKtJ-vc.js → ReplayOverlay-B-Ok0mEs.js} +1 -1
  47. package/dist/assets/{RippleApp-BXt7tenS.js → RippleApp-BnIUhIA0.js} +2 -2
  48. package/dist/assets/{RippleOverlay-BSxubBwj.js → RippleOverlay-C9W7uVOp.js} +2 -2
  49. package/dist/assets/{SeeDontRead-0He5hS2C.js → SeeDontRead-ByW9HnOj.js} +1 -1
  50. package/dist/assets/{ShareModal-xYdZWJxy.js → ShareModal-Mo-dkgAZ.js} +2 -2
  51. package/dist/assets/{ShipCourse-Dg6kCWyH.js → ShipCourse-CT_F9oJH.js} +1 -1
  52. package/dist/assets/{SignatureLoop-QPwB2oNN.js → SignatureLoop-DejFTZ-Y.js} +1 -1
  53. package/dist/assets/{SynthesisApp-DrCq6NDa.js → SynthesisApp-6W04mrMU.js} +2 -2
  54. package/dist/assets/{SynthesisOverlay-DCa-2Pz_.js → SynthesisOverlay-DDyFFiO8.js} +1 -1
  55. package/dist/assets/{TermsApp-zcPDYfuh.js → TermsApp-ZzlhrXhd.js} +1 -1
  56. package/dist/assets/{TopicCanvas-Bw4bMFpe.js → TopicCanvas-CkqP92SC.js} +2 -2
  57. package/dist/assets/{TourPrism-DbinDupp.js → TourPrism-Cng4h9Ly.js} +1 -1
  58. package/dist/assets/{TrackerTile-CrT9u1I4.js → TrackerTile-DuUsFQTj.js} +2 -2
  59. package/dist/assets/{TwoSurfaces-L0CDuyOZ.js → TwoSurfaces-BeYMvVuX.js} +1 -1
  60. package/dist/assets/{WorldOverlay-BcjqG1BR.js → WorldOverlay-DeVpS8HE.js} +1 -1
  61. package/dist/assets/{WowFeatures-CwBk4ZMO.js → WowFeatures-D58JgpLg.js} +1 -1
  62. package/dist/assets/{ZoomDeck-DlnesweX.js → ZoomDeck-CPG2XQhr.js} +1 -1
  63. package/dist/assets/{backup-685QrAjt.js → backup-CtEvuZoL.js} +1 -1
  64. package/dist/assets/canvas-Ct-O9Jok.js +1 -0
  65. package/dist/assets/{capture-DgJLQ_0-.js → capture-CgaD86-q.js} +1 -1
  66. package/dist/assets/{catalog-Db9GWM6N.js → catalog-DfIYAG3v.js} +1 -1
  67. package/dist/assets/{confirmAdd-CZ829Mbx.js → confirmAdd-CxWIORcu.js} +1 -1
  68. package/dist/assets/{dashboardEvents-CiayRLrH.js → dashboardEvents-D1OP4ARB.js} +1 -1
  69. package/dist/assets/{deepen-DAeHHFiI.js → deepen-BhP9OmH3.js} +1 -1
  70. package/dist/assets/{effort-jJe4iMIq.js → effort-Bqti44UZ.js} +1 -1
  71. package/dist/assets/{generateBeats-COflu5Zi.js → generateBeats-CtffeoEa.js} +1 -1
  72. package/dist/assets/{generateLive-DGwnpIip.js → generateLive-D5M8v38b.js} +1 -1
  73. package/dist/assets/{index-LiHcEJt_.js → index-CdUH6Eo9.js} +3 -3
  74. package/dist/assets/{kokoro-DXRj0KQX.js → kokoro-D15HDMcP.js} +1 -1
  75. package/dist/assets/{liveSchema-DyfND6P2.js → liveSchema-B8Y9HZxd.js} +1 -1
  76. package/dist/assets/{loader-DgMLGfAC.js → loader-ChcXMM9W.js} +2 -2
  77. package/dist/assets/{notes-DzIAEESd.js → notes-BG5pIVAJ.js} +1 -1
  78. package/dist/assets/{perfProbe-ezVn1mOu.js → perfProbe-DaLsQQBb.js} +1 -1
  79. package/dist/assets/{pin-BPGVDgnq.js → pin-BcKMUOiV.js} +1 -1
  80. package/dist/assets/{portal-B9DmFo6J.js → portal-BIN_aqvw.js} +1 -1
  81. package/dist/assets/{prewarm-BgUqAJbF.js → prewarm-CyvSJKv4.js} +1 -1
  82. package/dist/assets/{quietHours-DyynzDyC.js → quietHours-D1nboK5q.js} +1 -1
  83. package/dist/assets/{registry-BlujNlQJ.js → registry-BFQQpjO2.js} +1 -1
  84. package/dist/assets/{registry-D06LKiUk.js → registry-C8FuGbOr.js} +1 -1
  85. package/dist/assets/{registry-CEV5h2cu.css → registry-CIcGBgtK.css} +1 -1
  86. package/dist/assets/{registry-BJEvFgoL.js → registry-CcHxIYQN.js} +1 -1
  87. package/dist/assets/{registry-BT6ydF33.js → registry-DPBJYRmC.js} +1 -1
  88. package/dist/assets/registry-DdVZGvkL.js +48 -0
  89. package/dist/assets/{registry-7tKTrzeZ.js → registry-DdgeK4fY.js} +1 -1
  90. package/dist/assets/{registry-Bl7zAWKt.js → registry-Dt0wu9rC.js} +1 -1
  91. package/dist/assets/{relate-aQFFr11O.js → relate-CqYpFpsO.js} +1 -1
  92. package/dist/assets/{replay-CalqEgdW.js → replay-NognvQfM.js} +1 -1
  93. package/dist/assets/{select-wEtBn9U6.js → select-Dp-OeZfq.js} +1 -1
  94. package/dist/assets/shard054-CNzJxw2V.js +1 -0
  95. package/dist/assets/{useDashboardLoop-ifcuVRo-.js → useDashboardLoop-C3iCNS8X.js} +3 -3
  96. package/dist/assets/{useStudy-CySgE3Cx.js → useStudy-CwCIyiTb.js} +1 -1
  97. package/dist/assets/{walkSync-DBne70gg.js → walkSync-DC9iE0BX.js} +1 -1
  98. package/dist/index.html +1 -1
  99. package/package.json +1 -1
  100. package/dist/assets/ConversationVideoStudio-DMIPUCcq.js +0 -1
  101. package/dist/assets/DashboardLoopRuntime-Dsy9u1wa.js +0 -1
  102. package/dist/assets/canvas-C3O7MEA3.js +0 -1
  103. package/dist/assets/registry-KRYoVMCh.js +0 -48
  104. package/dist/assets/shard054-BoC-LNYu.js +0 -1
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/liveSchema-DyfND6P2.js","assets/icons-gLFQTv74.js","assets/jsx-runtime-DeHZSEgm.js","assets/rolldown-runtime-DkW27tQK.js","assets/spokenText-C88IQJ0M.js","assets/safeImageUrl-BINWXOTz.js","assets/catalog-BHjl-1uH.js","assets/sourceHost-BV3t2XDb.js","assets/annotations-CftUUB13.js","assets/catalog-Db9GWM6N.js","assets/preload-helper-CiWYd9n-.js","assets/facts-BUGuVUIc.js","assets/blockTypes-DUDdP3pB.js","assets/streamParse-BX0bAppQ.js"])))=>i.map(i=>d[i]);
2
- import{r as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{t as n}from"./compiler-runtime-qQQXpJgv.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{i as a,t as o}from"./http-Lar_UMKb.js";import{E as s,G as c,H as l,L as u,P as d,U as f,V as p,_ as m,b as h,m as g,p as _,s as v,v as y,y as b,z as ee}from"./store-Ba9vzL4H.js";import{t as te}from"./providers-0DthJW_I.js";import{l as x,n as S}from"./useLiveConfig-B4CmBiAK.js";import{t as ne}from"./json-B0N3XRZU.js";import{i as C}from"./number-zqlPMliA.js";import{i as w,n as T,r as E}from"./ledger-Cv0LBflx.js";import{d as re,i as D,l as O,o as ie,u as k}from"./format-g3dP8OI3.js";import{t as A}from"./dataPending-DGdCvY5Y.js";import{t as j}from"./now-C9-UAzTC.js";import{n as ae,t as oe}from"./predictions-CkVKHq-5.js";import{t as se}from"./notify-Bz4wuE4T.js";import{a as M,i as ce,r as le,t as ue,u as de}from"./dashboardEvents-CiayRLrH.js";var N=t(),fe=n(),pe=`mavea-dashboard-scheduler`;function me(){if(typeof navigator>`u`)return null;let e=navigator.locks;return typeof e?.request==`function`?e:null}async function he(e){let t=me();if(!t){await e();return}try{await t.request(pe,{ifAvailable:!0},async t=>{t&&await e()})}catch{await e()}}function ge(e){return new Set(e.toLowerCase().replace(/[^a-z0-9 ]/g,` `).replace(/\s+/g,` `).trim().split(` `).filter(e=>e.length>3))}function P(e){return e.replace(/\s+/g,` `).trim().toLowerCase()}var _e={WATCHING:`watching`,CLEAR:`clear`,TRIGGERED:`triggered`,AWAITING:`awaiting`},ve={ORIGIN:`origin`,ADDED:`added`,LINKED:`linked`},ye={CLEAR:1,WATCHING:.75,TRIGGERED:0,AWAITING:0};function be(e){let t=e.tripwires.filter(e=>e.state!==`AWAITING`);if(t.length===0)return null;let n=t.reduce((e,t)=>e+ye[t.state],0);return Math.round(100*n/t.length)}function xe(e){return e===null?``:e>=80?`Tracking well`:e>=55?`Holding, with risks`:e>=30?`Slipping`:`Lines are breaking`}var Se=new Set([`thesis`,`alignmentgauge`,`standingalerts`,`sourceslineage`]);function Ce(e){let t=e.block.type;return Se.has(t)?!0:!!e.metricId&&t===`insight`}function we(e,t){let n=t.block.type;if(!Se.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??O(String(n.lastValue),n.unit),r=n.lastValue===null?`inferred`:`strong`,i=t.block.props;return{...t.block,props:{...i,stat:e,conf:r}}}}return t.block}let r=e.sources.find(e=>e.kind===`ORIGIN`);if(n===`thesis`){let n=e.tripwires[0],i={reasoning:e.thesis.text,...r?{asOf:r.title}:{},...n?{reconsiderIf:n.label,tripwireState:_e[n.state]}:{}};return{...t.block,props:i}}if(n===`alignmentgauge`){let n=be(e),r={pct:n,band:xe(n)};return{...t.block,props:r}}if(n===`standingalerts`){let n={alerts:e.tripwires.map(e=>({label:e.label,state:_e[e.state]}))};return{...t.block,props:n}}let i={rows:e.sources.map(e=>({kind:ve[e.kind],label:e.title,...e.contributed?{contributed:e.contributed}:{}}))};return{...t.block,props:i}}var Te={metric:`{"kind":"metric","value":number,"raw"?:string}`,series:`{"kind":"series","points":[{"label":string,"value":number}]}`,list:`{"kind":"list","items":[string]}`,table:`{"kind":"table","columns":[string],"rows":[[string]]}`,event:`{"kind":"event","events":[{"when":string,"title":string,"detail"?:string}]}`};function F(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function I(e){return Array.isArray(e)?e:[]}function L(e){return typeof e==`string`?e.trim():typeof e==`number`&&Number.isFinite(e)?String(e):typeof e==`boolean`?e?`yes`:`no`:``}function R(e,...t){for(let n of t){let t=L(e[n]);if(t)return t}return``}function Ee(e){if(!F(e))return L(e);let t=R(e,`text`,`label`,`title`,`name`,`item`);if(t){let n=Object.entries(e).filter(([e])=>![`text`,`label`,`title`,`name`,`item`].includes(e)).map(([,e])=>L(e)).filter(Boolean);return n.length?`${t} — ${n.join(` — `)}`:t}return Object.values(e).map(L).filter(Boolean).join(` — `)}function De(e,t){let n=F(t)?t:{};switch(e){case`metric`:{let e=C(n.value??n.number??n.amount??t);if(e===null)return null;let r=R(n,`raw`,`display`,`formatted`);return{kind:`metric`,value:e,...r?{raw:r}:{}}}case`series`:{let e=I(n.points??n.data??n.series).map(e=>{let t=F(e)?e:{},n=R(t,`label`,`name`,`x`,`when`,`date`),r=C(t.value??t.y??t.amount);return n&&r!==null?{label:n,value:r}:null}).filter(e=>e!==null);return e.length?{kind:`series`,points:e}:null}case`list`:{let e=I(n.items??n.list??n.entries??t).map(Ee).filter(Boolean);return e.length?{kind:`list`,items:e}:null}case`table`:{let e=I(n.rows??n.data??t),r=I(n.columns??n.headers??n.cols).map(L).filter(Boolean);!r.length&&F(e[0])&&(r=Object.keys(e[0]).map(L));let i=e.map(e=>Array.isArray(e)?e.map(L):F(e)?r.map(t=>L(e[t])):[]).filter(e=>e.some(Boolean));return r.length&&i.length?{kind:`table`,columns:r,rows:i}:null}case`event`:{let e=I(n.events??n.items??t).map(e=>{let t=F(e)?e:{},n=R(t,`title`,`name`,`event`,`label`);if(!n)return null;let r=R(t,`when`,`date`,`time`,`at`,`start`),i=R(t,`detail`,`description`,`note`,`status`);return{when:r,title:n,...i?{detail:i}:{}}}).filter(e=>e!==null);return e.length?{kind:`event`,events:e}:null}}}var Oe={list:`list`,checklist:`list`,timeline:`event`,datatable:`table`,standings:`table`,chart:`series`,bars:`series`};function z(e){return Oe[e]??null}function B(e,t){return e.raw??O(String(e.value),t)}function ke(e,t,n={},r){let i=typeof n.title==`string`?n.title:``,a={...i?{title:i}:{},...n.icon?{icon:n.icon}:{}};switch(e){case`insight`:return t.kind===`metric`?{...n,...a,stat:B(t,r),conf:`strong`}:null;case`kpi`:return t.kind===`metric`?{...a,items:[{label:i||`Now`,value:B(t,r)}]}:t.kind===`series`?{...a,items:t.points.slice(-4).map(e=>({label:e.label,value:String(e.value)}))}:null;case`list`:case`checklist`:{let n=t.kind===`list`?t.items:t.kind===`event`?t.events.map(e=>[e.when,e.title,e.detail].filter(Boolean).join(` — `)):t.kind===`series`?t.points.map(e=>`${e.label} — ${e.value}`):t.kind===`table`?t.rows.map(e=>e.filter(Boolean).join(` — `)):null;return n?.length?e===`checklist`?{...a,rows:n.map(e=>({t:e,st:`todo`}))}:{...a,items:n}:null}case`timeline`:return t.kind===`event`?{...a,events:t.events.map(e=>({time:e.when,title:e.title,...e.detail?{detail:e.detail}:{}}))}:null;case`datatable`:{if(t.kind!==`table`)return null;let e=t.columns.map((e,t)=>({key:`c${t}`,label:e}));return{...a,columns:e,rows:t.rows.map(e=>Object.fromEntries(e.map((e,t)=>[`c${t}`,e])))}}case`standings`:{if(t.kind!==`table`)return null;let e=t.rows.map(e=>({team:e[0]??``,rec:e[1]??``,gb:e[2]??``})).filter(e=>e.team);return e.length?{...a,rows:e}:null}case`chart`:return t.kind===`series`?{...a,labels:t.points.map(e=>e.label),series:[{name:i||`Value`,color:`var(--insight)`,data:t.points.map(e=>e.value)}],conf:`strong`}:null;case`bars`:return t.kind===`series`?{...a,bars:t.points.map(e=>({label:e.label,value:e.value})),conf:`strong`}:null;default:return null}}r();function Ae(e){let t=e instanceof Error?e.message:String(e);if(/\b429\b|rate.?limit/i.test(t)){let e=Number(/(?:in|after)\s+([\d.]+)\s*s/i.exec(t)?.[1]);return Number.isFinite(e)&&e>0?{kind:`rate-limit`,retryAt:Date.now()+Math.min(e*1e3,12e4)}:{kind:`rate-limit`}}return/\b401\b|\b403\b|api key|unauthor/i.test(t)?{kind:`auth`}:/\b5\d\d\b|overloaded|unavailable|capacity/i.test(t)?{kind:`provider-unavailable`}:{kind:`network`}}function je(e,t,n,r){switch(e){case`gt`:return t>r;case`gte`:return t>=r;case`lt`:return t<r;case`lte`:return t<=r;case`crosses_up`:return n!==null&&n<r&&t>=r;case`crosses_down`:return n!==null&&n>r&&t<=r;case`pct_rise`:return n!==null&&n!==0&&(t-n)/Math.abs(n)*100>=r;case`pct_drop`:return n!==null&&n!==0&&(n-t)/Math.abs(n)*100>=r;default:return!1}}function Me(e,t,n){if(n===0)return!0;let r=t/n;switch(e){case`gt`:case`gte`:return r>=.9;case`lt`:case`lte`:return r<=1.1;default:return!0}}function Ne(e,t,n){return t===null?`AWAITING`:je(e.comparator,t,n,e.threshold)?`TRIGGERED`:Me(e.comparator,t,e.threshold)?`WATCHING`:`CLEAR`}function V(e,t={}){let n=new Map(e.metrics.map(e=>[e.id,e])),r=[];return{tripwires:e.tripwires.map(e=>{let i=n.get(e.metricId),a=i?i.lastValue:null,o=Ne(e,a,e.metricId in t?t[e.metricId]:a),s=o===`TRIGGERED`&&e.state!==`TRIGGERED`?{...e,state:o,brokenValue:a??void 0,brokenAt:i?.asOf}:{...e,state:o};return o===`TRIGGERED`&&e.state!==`TRIGGERED`&&r.push(s),s}),newlyTriggered:r}}function Pe(e,t){return e.nextDataAt<=t||e.oneShotAt!==void 0&&e.oneShotAt<=t}function H(e){return e.oneShotAt===void 0?e.nextDataAt:Math.min(e.nextDataAt,e.oneShotAt)}function Fe(e,t=Date.now(),n=4){return e.filter(e=>Pe(e,t)).sort((e,t)=>H(e)-H(t)).slice(0,n)}function Ie(e,t=Date.now()){return e.filter(e=>e.nextAiAt<=t).sort((e,t)=>e.nextAiAt-t.nextAiAt)[0]??null}function U(e,t,n=Date.now()){return e.smartTrigger&&t.length>0?{fire:!0,trigger:t[0]}:(e.cadence.ai===`daily`||e.cadence.ai===`weekly`)&&n>=e.nextAiAt?{fire:!0,trigger:`scheduled`}:{fire:!1,trigger:null}}function W(e){let t=[];for(let n of o(e.sources)){let e=a(n);typeof e.title==`string`&&typeof e.url==`string`&&t.push({title:e.title,url:e.url})}return t}function G(e,t){return(e.sources?.length??0)>0||W(t).length>0}function Le(e){return`- VALUE "${e.label}" — ${e.query}`}function Re(e,t,n){let r=z(e.block.type);return r?`- DATA #${t} [${r}] ${e.refreshQuery}\n return EXACTLY: ${Te[r]}`:`- BLOCK #${t} [${e.block.type}] ${e.refreshQuery}\n`+(n?` expected props (use EXACTLY these field names): ${n}\n`:``)+` current content: ${JSON.stringify(e.block.props??{}).slice(0,600)}`}function ze(){return{values:{},widgets:{}}}function Be(e){return{metrics:e.metrics.filter(e=>e.query.trim()!==``&&!e.blankKey),targets:e.widgets.filter(e=>!!e.refreshQuery?.trim()&&!Ce(e))}}function Ve(e){let t=[e.block.type];if(e.block.type===`composite`){let n=e.block.props.regions;for(let e of n??[]){let n=e?.block?.type;typeof n==`string`&&n&&t.push(n)}}return t}function He(e,t,n){let r=n.reduce((e,t)=>e+(z(t.block.type)?300:1200),0);return 400+t.length*120+r+(e.prediction?150:0)}var Ue=12e3;function K(e){let t=[],n=1200;for(let r of e){let{metrics:e,targets:i}=Be(r);if(e.length===0&&i.length===0)continue;let a=He(r,e,i);if(t.length>0&&n+a>Ue)break;n+=a,t.push({d:r,metrics:e,targets:i})}return t}function We(e,t){let n=Math.max(0,Math.round((t-e)/6e4));if(n<60)return`${n}m ago`;let r=Math.round(n/60);return r<24?`${r}h ago`:`${Math.round(r/24)}d ago`}function Ge(e,t,n){let r=[...e.metrics.map(Le),...e.targets.map((e,t)=>Re(e,t,n(e.block.type))),...e.d.prediction?[`- PREVIOUS EXPECTATION (made ${We(e.d.prediction.at,t)}): "${e.d.prediction.text}" — grade it.`]:[]];return`DASHBOARD ${e.d.id} "${e.d.title}"\n${r.join(`
3
- `)}`}function Ke(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function qe(e,t){let n=e.dashboards;if(n===void 0&&t.length===1)return{[t[0].d.id]:e};let r=new Map,i=[];if(Array.isArray(n))for(let e of n){let t=a(e);i.push(t),typeof t.id==`string`&&t.id&&r.set(t.id,t)}else if(Ke(n))for(let[e,t]of Object.entries(n))r.set(e,a(t));let o={};return t.forEach((e,t)=>{o[e.d.id]=r.get(e.d.id)??i[t]??{}}),o}function Je(e){let t=a(e);if(typeof t.metricLabel!=`string`||!t.metricLabel.trim())return;let n=o(t.readings).filter(e=>typeof e==`string`&&!!e.trim());if(!(n.length<2))return{metricLabel:t.metricLabel.trim(),readings:n,note:typeof t.note==`string`?t.note.trim().slice(0,200):``}}function Ye(e){let t=a(e),n=typeof t.start==`string`?Date.parse(t.start):NaN,r=typeof t.end==`string`?Date.parse(t.end):NaN;if(!(!Number.isFinite(n)||!Number.isFinite(r)||r<=n)&&!(r-n>6048e5))return{startAt:n,endAt:r,label:typeof t.label==`string`?t.label.trim().slice(0,60):``}}var Xe=` YOUR PREVIOUS ATTEMPT DID NOT ACTUALLY SEARCH (no citations came back). Before answering this time, you MUST run a real web search for every DASHBOARD section above and report only what those searches returned, listing the real URLs relied on in "sources" — this is not optional. If search is genuinely unavailable or turns up nothing, return null values and omit "sources" entirely; never invent a value or a source just to satisfy this instruction.`;async function Ze(e,t,n={}){let r=Date.now(),s={ok:!0,grounded:!1,perDashboard:{},sources:[],attempts:0};if(e.length===0&&!n.briefingContext)return s;try{let s=te(t.provider),c=e.flatMap(e=>e.targets.filter(e=>!z(e.block.type))),l=new Set(c.flatMap(Ve)),u=l.size>0,d=u?await i(()=>import(`./liveSchema-DyfND6P2.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13])):null,f=e.map(e=>Ge(e,r,d?d.blockShapeHint:()=>null)).join(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/liveSchema-B8Y9HZxd.js","assets/icons-gLFQTv74.js","assets/jsx-runtime-DeHZSEgm.js","assets/rolldown-runtime-DkW27tQK.js","assets/spokenText-C88IQJ0M.js","assets/safeImageUrl-BINWXOTz.js","assets/catalog-BHjl-1uH.js","assets/sourceHost-BV3t2XDb.js","assets/annotations-CftUUB13.js","assets/catalog-DfIYAG3v.js","assets/preload-helper-CiWYd9n-.js","assets/facts-BUGuVUIc.js","assets/blockTypes-DUDdP3pB.js","assets/streamParse-BX0bAppQ.js"])))=>i.map(i=>d[i]);
2
+ import{r as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{t as n}from"./compiler-runtime-qQQXpJgv.js";import{n as r,t as i}from"./preload-helper-CiWYd9n-.js";import{i as a,t as o}from"./http-Lar_UMKb.js";import{E as s,G as c,H as l,L as u,P as d,U as f,V as p,_ as m,b as h,m as g,p as _,s as v,v as y,y as b,z as ee}from"./store-Ba9vzL4H.js";import{t as te}from"./providers-0DthJW_I.js";import{l as x,n as S}from"./useLiveConfig-B4CmBiAK.js";import{t as ne}from"./json-B0N3XRZU.js";import{i as C}from"./number-zqlPMliA.js";import{i as w,n as T,r as E}from"./ledger-Cv0LBflx.js";import{d as re,i as D,l as O,o as ie,u as k}from"./format-g3dP8OI3.js";import{t as A}from"./dataPending-DGdCvY5Y.js";import{t as j}from"./now-C9-UAzTC.js";import{n as ae,t as oe}from"./predictions-CkVKHq-5.js";import{t as se}from"./notify-Bz4wuE4T.js";import{a as M,i as ce,r as le,t as ue,u as de}from"./dashboardEvents-D1OP4ARB.js";var N=t(),fe=n(),pe=`mavea-dashboard-scheduler`;function me(){if(typeof navigator>`u`)return null;let e=navigator.locks;return typeof e?.request==`function`?e:null}async function he(e){let t=me();if(!t){await e();return}try{await t.request(pe,{ifAvailable:!0},async t=>{t&&await e()})}catch{await e()}}function ge(e){return new Set(e.toLowerCase().replace(/[^a-z0-9 ]/g,` `).replace(/\s+/g,` `).trim().split(` `).filter(e=>e.length>3))}function P(e){return e.replace(/\s+/g,` `).trim().toLowerCase()}var _e={WATCHING:`watching`,CLEAR:`clear`,TRIGGERED:`triggered`,AWAITING:`awaiting`},ve={ORIGIN:`origin`,ADDED:`added`,LINKED:`linked`},ye={CLEAR:1,WATCHING:.75,TRIGGERED:0,AWAITING:0};function be(e){let t=e.tripwires.filter(e=>e.state!==`AWAITING`);if(t.length===0)return null;let n=t.reduce((e,t)=>e+ye[t.state],0);return Math.round(100*n/t.length)}function xe(e){return e===null?``:e>=80?`Tracking well`:e>=55?`Holding, with risks`:e>=30?`Slipping`:`Lines are breaking`}var Se=new Set([`thesis`,`alignmentgauge`,`standingalerts`,`sourceslineage`]);function Ce(e){let t=e.block.type;return Se.has(t)?!0:!!e.metricId&&t===`insight`}function we(e,t){let n=t.block.type;if(!Se.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??O(String(n.lastValue),n.unit),r=n.lastValue===null?`inferred`:`strong`,i=t.block.props;return{...t.block,props:{...i,stat:e,conf:r}}}}return t.block}let r=e.sources.find(e=>e.kind===`ORIGIN`);if(n===`thesis`){let n=e.tripwires[0],i={reasoning:e.thesis.text,...r?{asOf:r.title}:{},...n?{reconsiderIf:n.label,tripwireState:_e[n.state]}:{}};return{...t.block,props:i}}if(n===`alignmentgauge`){let n=be(e),r={pct:n,band:xe(n)};return{...t.block,props:r}}if(n===`standingalerts`){let n={alerts:e.tripwires.map(e=>({label:e.label,state:_e[e.state]}))};return{...t.block,props:n}}let i={rows:e.sources.map(e=>({kind:ve[e.kind],label:e.title,...e.contributed?{contributed:e.contributed}:{}}))};return{...t.block,props:i}}var Te={metric:`{"kind":"metric","value":number,"raw"?:string}`,series:`{"kind":"series","points":[{"label":string,"value":number}]}`,list:`{"kind":"list","items":[string]}`,table:`{"kind":"table","columns":[string],"rows":[[string]]}`,event:`{"kind":"event","events":[{"when":string,"title":string,"detail"?:string}]}`};function F(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function I(e){return Array.isArray(e)?e:[]}function L(e){return typeof e==`string`?e.trim():typeof e==`number`&&Number.isFinite(e)?String(e):typeof e==`boolean`?e?`yes`:`no`:``}function R(e,...t){for(let n of t){let t=L(e[n]);if(t)return t}return``}function Ee(e){if(!F(e))return L(e);let t=R(e,`text`,`label`,`title`,`name`,`item`);if(t){let n=Object.entries(e).filter(([e])=>![`text`,`label`,`title`,`name`,`item`].includes(e)).map(([,e])=>L(e)).filter(Boolean);return n.length?`${t} — ${n.join(` — `)}`:t}return Object.values(e).map(L).filter(Boolean).join(` — `)}function De(e,t){let n=F(t)?t:{};switch(e){case`metric`:{let e=C(n.value??n.number??n.amount??t);if(e===null)return null;let r=R(n,`raw`,`display`,`formatted`);return{kind:`metric`,value:e,...r?{raw:r}:{}}}case`series`:{let e=I(n.points??n.data??n.series).map(e=>{let t=F(e)?e:{},n=R(t,`label`,`name`,`x`,`when`,`date`),r=C(t.value??t.y??t.amount);return n&&r!==null?{label:n,value:r}:null}).filter(e=>e!==null);return e.length?{kind:`series`,points:e}:null}case`list`:{let e=I(n.items??n.list??n.entries??t).map(Ee).filter(Boolean);return e.length?{kind:`list`,items:e}:null}case`table`:{let e=I(n.rows??n.data??t),r=I(n.columns??n.headers??n.cols).map(L).filter(Boolean);!r.length&&F(e[0])&&(r=Object.keys(e[0]).map(L));let i=e.map(e=>Array.isArray(e)?e.map(L):F(e)?r.map(t=>L(e[t])):[]).filter(e=>e.some(Boolean));return r.length&&i.length?{kind:`table`,columns:r,rows:i}:null}case`event`:{let e=I(n.events??n.items??t).map(e=>{let t=F(e)?e:{},n=R(t,`title`,`name`,`event`,`label`);if(!n)return null;let r=R(t,`when`,`date`,`time`,`at`,`start`),i=R(t,`detail`,`description`,`note`,`status`);return{when:r,title:n,...i?{detail:i}:{}}}).filter(e=>e!==null);return e.length?{kind:`event`,events:e}:null}}}var Oe={list:`list`,checklist:`list`,timeline:`event`,datatable:`table`,standings:`table`,chart:`series`,bars:`series`};function z(e){return Oe[e]??null}function B(e,t){return e.raw??O(String(e.value),t)}function ke(e,t,n={},r){let i=typeof n.title==`string`?n.title:``,a={...i?{title:i}:{},...n.icon?{icon:n.icon}:{}};switch(e){case`insight`:return t.kind===`metric`?{...n,...a,stat:B(t,r),conf:`strong`}:null;case`kpi`:return t.kind===`metric`?{...a,items:[{label:i||`Now`,value:B(t,r)}]}:t.kind===`series`?{...a,items:t.points.slice(-4).map(e=>({label:e.label,value:String(e.value)}))}:null;case`list`:case`checklist`:{let n=t.kind===`list`?t.items:t.kind===`event`?t.events.map(e=>[e.when,e.title,e.detail].filter(Boolean).join(` — `)):t.kind===`series`?t.points.map(e=>`${e.label} — ${e.value}`):t.kind===`table`?t.rows.map(e=>e.filter(Boolean).join(` — `)):null;return n?.length?e===`checklist`?{...a,rows:n.map(e=>({t:e,st:`todo`}))}:{...a,items:n}:null}case`timeline`:return t.kind===`event`?{...a,events:t.events.map(e=>({time:e.when,title:e.title,...e.detail?{detail:e.detail}:{}}))}:null;case`datatable`:{if(t.kind!==`table`)return null;let e=t.columns.map((e,t)=>({key:`c${t}`,label:e}));return{...a,columns:e,rows:t.rows.map(e=>Object.fromEntries(e.map((e,t)=>[`c${t}`,e])))}}case`standings`:{if(t.kind!==`table`)return null;let e=t.rows.map(e=>({team:e[0]??``,rec:e[1]??``,gb:e[2]??``})).filter(e=>e.team);return e.length?{...a,rows:e}:null}case`chart`:return t.kind===`series`?{...a,labels:t.points.map(e=>e.label),series:[{name:i||`Value`,color:`var(--insight)`,data:t.points.map(e=>e.value)}],conf:`strong`}:null;case`bars`:return t.kind===`series`?{...a,bars:t.points.map(e=>({label:e.label,value:e.value})),conf:`strong`}:null;default:return null}}r();function Ae(e){let t=e instanceof Error?e.message:String(e);if(/\b429\b|rate.?limit/i.test(t)){let e=Number(/(?:in|after)\s+([\d.]+)\s*s/i.exec(t)?.[1]);return Number.isFinite(e)&&e>0?{kind:`rate-limit`,retryAt:Date.now()+Math.min(e*1e3,12e4)}:{kind:`rate-limit`}}return/\b401\b|\b403\b|api key|unauthor/i.test(t)?{kind:`auth`}:/\b5\d\d\b|overloaded|unavailable|capacity/i.test(t)?{kind:`provider-unavailable`}:{kind:`network`}}function je(e,t,n,r){switch(e){case`gt`:return t>r;case`gte`:return t>=r;case`lt`:return t<r;case`lte`:return t<=r;case`crosses_up`:return n!==null&&n<r&&t>=r;case`crosses_down`:return n!==null&&n>r&&t<=r;case`pct_rise`:return n!==null&&n!==0&&(t-n)/Math.abs(n)*100>=r;case`pct_drop`:return n!==null&&n!==0&&(n-t)/Math.abs(n)*100>=r;default:return!1}}function Me(e,t,n){if(n===0)return!0;let r=t/n;switch(e){case`gt`:case`gte`:return r>=.9;case`lt`:case`lte`:return r<=1.1;default:return!0}}function Ne(e,t,n){return t===null?`AWAITING`:je(e.comparator,t,n,e.threshold)?`TRIGGERED`:Me(e.comparator,t,e.threshold)?`WATCHING`:`CLEAR`}function V(e,t={}){let n=new Map(e.metrics.map(e=>[e.id,e])),r=[];return{tripwires:e.tripwires.map(e=>{let i=n.get(e.metricId),a=i?i.lastValue:null,o=Ne(e,a,e.metricId in t?t[e.metricId]:a),s=o===`TRIGGERED`&&e.state!==`TRIGGERED`?{...e,state:o,brokenValue:a??void 0,brokenAt:i?.asOf}:{...e,state:o};return o===`TRIGGERED`&&e.state!==`TRIGGERED`&&r.push(s),s}),newlyTriggered:r}}function Pe(e,t){return e.nextDataAt<=t||e.oneShotAt!==void 0&&e.oneShotAt<=t}function H(e){return e.oneShotAt===void 0?e.nextDataAt:Math.min(e.nextDataAt,e.oneShotAt)}function Fe(e,t=Date.now(),n=4){return e.filter(e=>Pe(e,t)).sort((e,t)=>H(e)-H(t)).slice(0,n)}function Ie(e,t=Date.now()){return e.filter(e=>e.nextAiAt<=t).sort((e,t)=>e.nextAiAt-t.nextAiAt)[0]??null}function U(e,t,n=Date.now()){return e.smartTrigger&&t.length>0?{fire:!0,trigger:t[0]}:(e.cadence.ai===`daily`||e.cadence.ai===`weekly`)&&n>=e.nextAiAt?{fire:!0,trigger:`scheduled`}:{fire:!1,trigger:null}}function W(e){let t=[];for(let n of o(e.sources)){let e=a(n);typeof e.title==`string`&&typeof e.url==`string`&&t.push({title:e.title,url:e.url})}return t}function G(e,t){return(e.sources?.length??0)>0||W(t).length>0}function Le(e){return`- VALUE "${e.label}" — ${e.query}`}function Re(e,t,n){let r=z(e.block.type);return r?`- DATA #${t} [${r}] ${e.refreshQuery}\n return EXACTLY: ${Te[r]}`:`- BLOCK #${t} [${e.block.type}] ${e.refreshQuery}\n`+(n?` expected props (use EXACTLY these field names): ${n}\n`:``)+` current content: ${JSON.stringify(e.block.props??{}).slice(0,600)}`}function ze(){return{values:{},widgets:{}}}function Be(e){return{metrics:e.metrics.filter(e=>e.query.trim()!==``&&!e.blankKey),targets:e.widgets.filter(e=>!!e.refreshQuery?.trim()&&!Ce(e))}}function Ve(e){let t=[e.block.type];if(e.block.type===`composite`){let n=e.block.props.regions;for(let e of n??[]){let n=e?.block?.type;typeof n==`string`&&n&&t.push(n)}}return t}function He(e,t,n){let r=n.reduce((e,t)=>e+(z(t.block.type)?300:1200),0);return 400+t.length*120+r+(e.prediction?150:0)}var Ue=12e3;function K(e){let t=[],n=1200;for(let r of e){let{metrics:e,targets:i}=Be(r);if(e.length===0&&i.length===0)continue;let a=He(r,e,i);if(t.length>0&&n+a>Ue)break;n+=a,t.push({d:r,metrics:e,targets:i})}return t}function We(e,t){let n=Math.max(0,Math.round((t-e)/6e4));if(n<60)return`${n}m ago`;let r=Math.round(n/60);return r<24?`${r}h ago`:`${Math.round(r/24)}d ago`}function Ge(e,t,n){let r=[...e.metrics.map(Le),...e.targets.map((e,t)=>Re(e,t,n(e.block.type))),...e.d.prediction?[`- PREVIOUS EXPECTATION (made ${We(e.d.prediction.at,t)}): "${e.d.prediction.text}" — grade it.`]:[]];return`DASHBOARD ${e.d.id} "${e.d.title}"\n${r.join(`
3
+ `)}`}function Ke(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function qe(e,t){let n=e.dashboards;if(n===void 0&&t.length===1)return{[t[0].d.id]:e};let r=new Map,i=[];if(Array.isArray(n))for(let e of n){let t=a(e);i.push(t),typeof t.id==`string`&&t.id&&r.set(t.id,t)}else if(Ke(n))for(let[e,t]of Object.entries(n))r.set(e,a(t));let o={};return t.forEach((e,t)=>{o[e.d.id]=r.get(e.d.id)??i[t]??{}}),o}function Je(e){let t=a(e);if(typeof t.metricLabel!=`string`||!t.metricLabel.trim())return;let n=o(t.readings).filter(e=>typeof e==`string`&&!!e.trim());if(!(n.length<2))return{metricLabel:t.metricLabel.trim(),readings:n,note:typeof t.note==`string`?t.note.trim().slice(0,200):``}}function Ye(e){let t=a(e),n=typeof t.start==`string`?Date.parse(t.start):NaN,r=typeof t.end==`string`?Date.parse(t.end):NaN;if(!(!Number.isFinite(n)||!Number.isFinite(r)||r<=n)&&!(r-n>6048e5))return{startAt:n,endAt:r,label:typeof t.label==`string`?t.label.trim().slice(0,60):``}}var Xe=` YOUR PREVIOUS ATTEMPT DID NOT ACTUALLY SEARCH (no citations came back). Before answering this time, you MUST run a real web search for every DASHBOARD section above and report only what those searches returned, listing the real URLs relied on in "sources" — this is not optional. If search is genuinely unavailable or turns up nothing, return null values and omit "sources" entirely; never invent a value or a source just to satisfy this instruction.`;async function Ze(e,t,n={}){let r=Date.now(),s={ok:!0,grounded:!1,perDashboard:{},sources:[],attempts:0};if(e.length===0&&!n.briefingContext)return s;try{let s=te(t.provider),c=e.flatMap(e=>e.targets.filter(e=>!z(e.block.type))),l=new Set(c.flatMap(Ve)),u=l.size>0,d=u?await i(()=>import(`./liveSchema-B8Y9HZxd.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13])):null,f=e.map(e=>Ge(e,r,d?d.blockShapeHint:()=>null)).join(`
4
4
 
5
5
  `),p={type:`object`,properties:{dashboards:{type:`array`,description:`One object per DASHBOARD section above, in the same order, each echoing its id.`,items:{type:`object`,properties:{id:{type:`string`},values:{type:`object`,description:`Map of VALUE label -> current numeric value, or null.`},observations:{type:`array`,description:`Exactly one object per DATA item for this dashboard, in the same order, each in the exact shape that DATA line specifies.`,items:{type:`object`}},blocks:{type:`array`,description:`Exactly one block per BLOCK item for this dashboard, in order.`,items:{type:`object`,properties:{type:{type:`string`},props:{type:`object`}},required:[`type`,`props`]}},expects:{type:`string`,description:`A short "by next check" expectation — omit if nothing here is genuinely predictable.`},grade:{type:`object`,description:`ONLY when this dashboard has a PREVIOUS EXPECTATION line.`,properties:{result:{type:`string`},note:{type:`string`}}},disagreement:{type:`object`,description:`ONLY when two real sources genuinely disagreed on a value.`,properties:{metricLabel:{type:`string`},readings:{type:`array`,items:{type:`string`}},note:{type:`string`}}},liveWindow:{type:`object`,description:`ONLY when search revealed a real, bounded live-event window.`,properties:{start:{type:`string`},end:{type:`string`},label:{type:`string`}}}},required:[`id`]}},...n.briefingContext?{briefing:{type:`string`,description:`2-4 sentences summarizing ALL dashboards (this batch + the given CONTEXT), real values only; use [[shown|said]] pronunciation twins for speech-risky terms.`}}:{},sources:{type:`array`,description:`OMIT unless this call used web search. Real source URLs actually relied on — never invented.`,items:{type:`object`,properties:{title:{type:`string`},url:{type:`string`}},required:[`title`,`url`]}}},required:[`dashboards`]},m=u===!1,h=Math.min(m?4e3:14e3,Math.max(m?1500:3e3,1200+e.reduce((e,t)=>e+He(t.d,t.metrics,t.targets),0)+(n.briefingContext?700:0))),g=j()+` You are checking several standing trackers at once. Return ONLY JSON: {"dashboards": [{"id": string, "values": {...}, "observations": [...], "blocks": [...], "expects"?: string, "grade"?: {...}, "disagreement"?: {...}, "liveWindow"?: {...}}, ...], `+(n.briefingContext?`"briefing": string, `:``)+`"sources": [...]}. Use web search for every DASHBOARD section below — never invent a value or detail. ECHO each dashboard's exact "id" so results map back correctly. For a VALUE item, give its CURRENT real number (no units) or null if unverifiable. For a BLOCK For a DATA item, return ONE object in "observations" (same order as the DATA lines) in the exact shape that line prints — plain data, no component or prop names, and omit the entry entirely rather than inventing a value you did not find. For a BLOCK item, produce exactly one block whose "type" is the EXACT bracketed type given — never substitute a different one — matching its current content for detail level (real names, numbers, dates). Where a BLOCK lists "expected props", copy that shape EXACTLY: the same field names, and an array shown as string[] takes plain strings, never objects. CRITICAL — a "current content" showing something live, in progress, or upcoming is NOT necessarily still true right now: explicitly check whether it has SINCE concluded and report the concluding outcome if so, reasoning from the date/time above which of upcoming/live/finished applies at this exact moment. If a dashboard has a PREVIOUS EXPECTATION line, grade it honestly ("hit" it came true, "miss" it did not, "unclear" if genuinely unknowable yet) — grade ONLY dashboards that have this line, never invent a grade otherwise. Offer a fresh "expects" only when something is genuinely predictable by the next check; most checks have nothing worth predicting, so omit it far more often than not. If two real sources genuinely disagree on a value, report it in "disagreement" instead of silently picking one. If search reveals a real bounded live-event window (a match's actual start/end time) for a dashboard, report it in "liveWindow" with ISO start/end — never invent a time. `+(n.briefingContext?`Also compose "briefing": 2-4 warm, concrete sentences summarizing ALL dashboards — this batch PLUS the CONTEXT lines below (already-known values — do NOT search for those, use them as given) — real values only, never memory. The briefing is displayed and spoken: preserve normal spelling on the left, but wrap every name, place, brand, or non-English term a voice might mispronounce as [[shown|said]] (for example [[Omakase|oh-mah-kah-seh]]). The said side must be lowercase voice-safe syllables matching a native/source-language pronunciation, never IPA or an Anglicized guess. `:``)+`If search genuinely turns up nothing more specific than what is already shown, say so honestly rather than inventing new specifics or repeating the old ones as if just confirmed. CITE SOURCES — every real URL actually relied on, in "sources"; omit it entirely if you used no search.`,_=`Use web search.\n\n${f}`+(n.briefingContext?`\n\nCONTEXT (already known — do not search these):\n${n.briefingContext}`:``),v=e=>s.generate({system:e?g+Xe:g,history:[],user:_,maxTokens:h,temperature:.15,thinkingLevel:e?`high`:`low`,tools:{webSearch:!0,requireSearch:!0},format:p,...u?{blockTypes:[...l],complexity:`brief`}:{}},t).then(e=>({rr:e,grounded:G(e,a(ne(e.raw)))})),y=await v(!1),b=1;!y.grounded&&e.length>0&&(y=await v(!0),b=2);let{rr:x}=y,S=a(ne(x.raw)),w=G(x,S),T=qe(S,e),E=x.sources&&x.sources.length?x.sources:W(S),re=[...new Set(E.map(e=>ie(e.url)).filter(Boolean))],D=d?d.validateLiveResponse:null,k={};for(let t of e){let e=T[t.d.id]??{},n=ze();if(w&&t.metrics.length>0){let r=a(e.values),i=new Map(Object.entries(r).map(([e,t])=>[P(e),t]));for(let e of t.metrics){let t=C(r[e.label]??i.get(P(e.label)));t!==null&&(n.values[e.id]={value:t,raw:O(String(t),e.unit)})}}if(t.targets.length>0&&w){let i=o(e.observations??e.data);t.targets.forEach((e,a)=>{let o=z(e.block.type);if(!o)return;let s=De(o,i[a]);if(!s)return;let c=e.block.props??{},l=e.metricId?t.d.metrics.find(t=>t.id===e.metricId):void 0,u=ke(e.block.type,s,c,l?.unit);u&&(n.widgets[e.id]={...e.block,props:u},ee(t.d.id,e.id,s,r,re))})}if(t.targets.length>0&&D){let r=o(e.blocks);t.targets.forEach((e,t)=>{if(z(e.block.type))return;let i=r[t];if(!i)return;let a=D({narration:``,title:`x`,sub:``,blocks:[i]},new Set(Ve(e)),1,w,!0)?.blocks[0];a&&a.type===e.block.type&&(n.widgets[e.id]=a)})}if(w){let r=oe(e.expects);if(r&&(n.expects=r),t.d.prediction){let t=ae(e.grade);t&&(n.grade=t)}let i=Je(e.disagreement);i&&(n.disagreement=i);let a=Ye(e.liveWindow);a&&(n.liveWindow=a)}k[t.d.id]=n}Object.values(k).every(e=>Object.keys(e.values).length===0&&Object.keys(e.widgets).length===0&&!e.expects)&&console.warn(`[dashboards] refreshDashboards got a response but nothing parsed out of it for any dashboard (${w?`empty/unparseable`:`ungrounded after ${b} attempt${b>1?`s`:``}, discarded`})`,{dashboardIds:e.map(e=>e.d.id),raw:x.raw});let A=n.briefingContext&&w&&typeof S.briefing==`string`&&S.briefing.trim()?S.briefing.trim():void 0;return{ok:!0,grounded:w,perDashboard:k,sources:E,attempts:b,...A?{briefing:A}:{}}}catch(t){console.error(`[dashboards] refreshDashboards failed`,t);let n={};for(let t of e)n[t.d.id]=ze();return{ok:!1,grounded:!1,perDashboard:n,sources:[],attempts:0,failure:Ae(t)}}}function Qe(e){let t=Array.isArray(e?.sources)?e.sources:[],n=[];for(let e of t){let t=e&&typeof e==`object`?e:{};typeof t.title==`string`&&typeof t.url==`string`&&n.push({title:t.title,url:t.url})}return n}function $e(e){try{let t=typeof e==`string`?JSON.parse(et(e)):e,n=t?.verdict;return{text:typeof n==`string`&&n.trim()?n.trim():null,sources:Qe(t)}}catch{return{text:typeof e==`string`&&e.trim()?e.trim():null,sources:[]}}}function et(e){let t=e.indexOf(`{`),n=e.lastIndexOf(`}`);return t>=0&&n>t?e.slice(t,n+1):e}async function q(e,t,n,r=Date.now()){try{let i=te(n.provider),a=t===`scheduled`?null:t,o=a?e.metrics.find(e=>e.id===a.metricId):void 0,s=e.metrics.map(e=>`${e.label}=${e.lastRaw??`—`}`).join(`, `),c=a?`A line the user set just crossed: "${a.label}" — ${o?.label??a.label} is now ${o?.lastRaw??a.brokenValue??`past the threshold`}. Currently tracked: ${s}. Using web search, say briefly and honestly what the latest numbers show and whether this reads as a real move or just noise.`:`Currently tracked: ${s}. Using web search, give a brief, honest read: what the latest numbers show and what has materially changed since the last check.`,l=await i.generate({system:j()+` You give a brief, honest read on the latest numbers a user is tracking: what they show now, what has materially changed since the last check, and — if a specific line was crossed — whether that looks like a real move or noise. One or two plain sentences. Never invent data. CITE YOUR SOURCES — whenever you used web search, include the exact source URLs you actually relied on as a top-level "sources": [{"title": string, "url": string}] array; only real URLs from the search results — never invent one, and omit "sources" entirely if you didn’t search. Return ONLY JSON: {"verdict":"…","sources":[...]}.`,history:[],user:c,maxTokens:700,temperature:.3,thinkingLevel:`low`,tools:{webSearch:!0}},n),{text:u,sources:d}=$e(l.raw);return u?{text:u,at:r,grounded:(l.sources?.length??0)>0||d.length>0,...l.sources&&l.sources.length?{sources:l.sources}:{},...a?{tripwireId:a.id}:{}}:null}catch(e){return console.error(`[dashboards] analyzeMove failed`,e),null}}function tt(e){let t=(e??[]).slice(-3);if(t.length<3)return 0;let[n,r,i]=t;return n.value<r.value&&r.value<i.value?1:n.value>r.value&&r.value>i.value?-1:0}function nt(e){let t=e.metrics.filter(e=>(e.history?.length??0)>=3);for(let n=0;n<t.length;n++)for(let r=n+1;r<t.length;r++){let i=t[n],a=t[r],o=tt(i.history);if(o!==0&&o===tt(a.history))return{text:`${i.label} and ${a.label} have moved together over the last three checks.`,dashboardIds:[e.id]}}return null}function rt(e,t){let n=e.filter(e=>{let n=e.cadence.window;return!!n&&t>=n.startAt&&t<=n.endAt});if(n.length<2)return null;let[r,i]=n;return{text:`${r.title} and ${i.title} overlap right now — their checks are batched into shared searches while both are live.`,dashboardIds:[r.id,i.id]}}var it=5;function at(e){if(e.cadence.data!==`15min`&&e.cadence.data!==`hourly`)return null;let t=e.metrics.find(e=>(e.history?.length??0)>=it);if(!t?.history)return null;let n=t.history.slice(-5);return n.every(e=>e.value===n[0].value)?{text:`${t.label} hasn't moved across ${e.title}'s last ${it} checks.`,dashboardIds:[e.id]}:null}function ot(e,t){let n=t.note?` ${t.note}`:``;return{text:`Sources disagreed on ${t.metricLabel}: ${t.readings.join(` vs `)}.${n}`,dashboardIds:[e.id]}}var st=432e5;function ct(e,t,n){let r=n-st;return e.some(e=>e.kind===`insight`&&e.at>=r&&e.text===t.text)}function lt(e,t,n,r=2){let i=[],a=rt(e,n);a&&i.push(a);for(let t of e){let e=nt(t);e&&i.push(e);let n=at(t);n&&i.push(n)}return i.filter(e=>!ct(t,e,n)).slice(0,r)}var ut=e({checkAllDashboardsNow:()=>Ct,readDashboardNow:()=>wt,refreshDashboardNow:()=>St,runRefreshBatch:()=>$,selectTickTargets:()=>Tt,useDashboardLoop:()=>Et,useVerdictPending:()=>ht}),dt=15e3,ft=3e5;function pt(e,t){switch(e?.kind){case`rate-limit`:return e.retryAt?Math.max(15e3,e.retryAt-t):6e4;case`provider-unavailable`:return 12e4;case`auth`:return 216e5;default:return ft}}var J=new Set,Y=new Set,X=`mavea-dashboard-verdict-pending`;function Z(e,t){t?Y.add(e):Y.delete(e);try{typeof window<`u`&&typeof CustomEvent==`function`&&window.dispatchEvent(new CustomEvent(X,{detail:e}))}catch{}}function mt(e){return window.addEventListener(X,e),()=>window.removeEventListener(X,e)}function ht(e){let t=(0,fe.c)(2),n;return t[0]===e?n=t[1]:(n=()=>Y.has(e),t[0]=e,t[1]=n),(0,N.useSyncExternalStore)(mt,n,gt)}function gt(){return!1}function _t(e,t){return e.map(e=>{let n=t.perDashboard[e.d.id]??{values:{},widgets:{}},r=e.metrics.find(e=>n.values[e.id]);return r?`${e.d.title} at ${n.values[r.id].raw}`:e.targets.some(e=>n.widgets[e.id])?`${e.d.title} updated`:t.grounded?`${e.d.title} checked`:`${e.d.title} — couldn't verify`}).join(` · `)}var Q=`Daily search budget reached — auto-checks paused until midnight. Manual checks still work.`;function vt(e){let t=new Date(e);return t.setHours(0,0,0,0),t.getTime()}function yt(e){let t=vt(e);w().some(e=>e.kind===`savings`&&e.at>=t&&e.text===Q)||T({kind:`savings`,text:Q,dashboardIds:[],searches:0})}async function bt(e,t,n,r,i,a,o=!1){let{d:c}=e,l=Object.keys(t.values).length>0||Object.keys(t.widgets).length>0?`updated`:o?`unverified`:`no-change`,u=c.metrics.map(e=>{let n=t.values[e.id];return n?{...e,lastValue:n.value}:e}),d={...c,metrics:u},{tripwires:f,newlyTriggered:p}=V(d,n),g=c.oneShotAt!==void 0&&c.oneShotAt<=a;v(c.id,{values:Object.entries(t.values).map(([e,t])=>({metricId:e,value:t.value,raw:t.raw,origin:`search`})),blocks:Object.entries(t.widgets).map(([e,t])=>({widgetId:e,block:t})),tripwires:f,outcome:l,...t.expects?{expects:t.expects}:{},...t.grade?{grade:t.grade}:{},...g?{consumedOneShot:!0}:{}},a),p.length&&(se(d,p),T({kind:`alert`,text:`${p.map(e=>e.label).join(`, `)} crossed the line you set.`,dashboardIds:[c.id],searches:0}),d.alerts.inApp&&ue({dashboardId:c.id,dashboardTitle:c.title,tripwireLabel:p[0].label})),t.disagreement&&T({kind:`insight`,text:ot(c,t.disagreement).text,dashboardIds:[c.id],searches:0});let _={...c,tripwires:f},y=U(_,p,a);if(y.fire&&y.trigger&&i){Z(c.id,!0);let e=await q(_,y.trigger,r,a);Z(c.id,!1),e?s(c.id,e,a):h(c.id,a,`Mavéa couldn't get a fresh read — will try again.`),m(c.id,a),T({kind:y.trigger===`scheduled`?`check`:`alert`,text:e?e.text.slice(0,200):`Couldn't get a fresh read on ${c.title}.`,dashboardIds:[c.id],searches:1,...e?.sources?.length?{sourceCount:e.sources.length}:{}})}else y.fire&&y.trigger&&m(c.id,a);return l}async function $(e,t,n,r={}){let i=Date.now(),a={},o=K(e),s=e.filter(e=>!o.some(t=>t.d.id===e.id)),c={};for(let t of e)c[t.id]=Object.fromEntries(t.metrics.map(e=>[e.id,e.lastValue]));for(let e of s)a[e.id]=await bt({d:e,metrics:[],targets:[]},{values:{},widgets:{}},c[e.id],t,n,i);if(o.length===0)return a;let d=new Map(o.map(e=>[e.d.id,f(e.d.id,i)])),m=e=>{for(let t of d.values())e(t)};if(!n)return a;let h=o.map(e=>e.d.id);A(h,!0);try{let e=await Ze(o,t,r.briefing?{briefingContext:r.briefing.context}:{});if(!e.ok){let t=e.failure??{kind:`network`},n=pt(e.failure,i);m(n=>{l(n,`search`,!1,{detail:u(t)}),p(n,{outcome:`failed`,failure:t,attempts:e.attempts})});for(let e of o)y(e.d.id,i+n),b(e.d.id,t,i),a[e.d.id]=`failed`;return a}for(let r of o){let o=e.perDashboard[r.d.id]??{values:{},widgets:{}},s=d.get(r.d.id)??null;l(s,`search`,!0,{count:e.attempts}),l(s,`sources`,e.sources.length>0,{count:e.sources.length,...e.sources.length===0?{detail:`The model answered without citing a live source.`}:{}});let u=Object.keys(o.values).length+Object.keys(o.widgets).length;l(s,`extraction`,u>0,{count:u,...u===0?{detail:`Nothing in the reply matched this tracker’s metrics or cards.`}:{}}),l(s,`grounding`,e.grounded,{...e.grounded?{}:{detail:`Ungrounded — every value from it was discarded.`}}),a[r.d.id]=await bt(r,o,c[r.d.id],t,n,i,!e.grounded);let f=a[r.d.id];l(s,`saved`,f===`updated`||f===`no-change`),l(s,`tripwires`,!0),p(s,{outcome:f===`failed`?`failed`:f,attempts:e.attempts,...f===`unverified`?{failure:{kind:`ungrounded`}}:{}})}r.briefing&&e.briefing&&(M(e.briefing,r.briefing.allDashboards,i),T({kind:`briefing`,text:`Morning briefing compiled — folded into this batched search.`,dashboardIds:o.map(e=>e.d.id),searches:0}));let s=[...new Set(e.sources.map(e=>ie(e.url)))].filter(Boolean);return T({kind:`check`,text:_t(o,e),dashboardIds:o.map(e=>e.d.id),...s.length?{domains:s}:{},searches:1,...e.sources.length?{sourceCount:e.sources.length}:{},...r.manual?{manual:!0}:{}}),a}finally{A(h,!1)}}async function xt(e,t,n,r){let{tripwires:i,newlyTriggered:a}=V(e);d(e.id,i,r),a.length&&(se(e,a),e.alerts.inApp&&ue({dashboardId:e.id,dashboardTitle:e.title,tripwireLabel:a[0].label}));let o={...e,tripwires:i},c=U(o,a,r);if(!c.fire||!c.trigger||!n)return;Z(e.id,!0);let l=await q(o,c.trigger,t,r);Z(e.id,!1),l?s(e.id,l,r):h(e.id,r,`Mavéa couldn't get a fresh read — will try again.`),m(e.id,r),T({kind:c.trigger===`scheduled`?`check`:`alert`,text:l?l.text.slice(0,200):`Couldn't get a fresh read on ${e.title}.`,dashboardIds:[e.id],searches:1,...l?.sources?.length?{sourceCount:l.sources.length}:{}})}async function St(e){if(J.has(e))return`busy`;let t=_(e);if(!t)return`busy`;let n=x(S());if(!n.apiKey)return`no-model`;J.add(e);try{let r=await $([t],n,!0,{manual:!0});return r[e]===`failed`?`failed`:r[e]===`unverified`?`unverified`:`done`}finally{J.delete(e)}}async function Ct(){let e=x(S());if(!e.apiKey)return`no-model`;let t=g().filter(D),n=t.filter(e=>!J.has(e.id));if(n.length===0)return t.length>0?`busy`:`done`;for(;n.length>0;){let t=K(n);if(t.length===0)break;let r=t.map(e=>e.d.id);r.forEach(e=>J.add(e));let i={};try{i=await $(t.map(e=>e.d),e,!0,{manual:!0})}finally{r.forEach(e=>J.delete(e))}if(r.length>0&&r.every(e=>i[e]===`failed`))return`failed`;n=n.filter(e=>!r.includes(e.id))}return`done`}async function wt(e){if(Y.has(e))return`busy`;let t=_(e);if(!t)return`failed`;let n=x(S());if(!n.apiKey)return`no-model`;let r=Date.now(),i=t.tripwires.find(e=>e.state===`TRIGGERED`),a=i??`scheduled`;Z(e,!0);let o;try{o=await q(t,a,n,r)}finally{Z(e,!1)}return o?s(e,o,r):h(e,r,`Mavéa couldn’t get a fresh read — try again in a moment.`),m(e,r),T({kind:i?`alert`:`check`,text:o?o.text.slice(0,200):`Couldn’t get a fresh read on ${t.title}.`,dashboardIds:[e],searches:1,manual:!0,...o?.sources?.length?{sourceCount:o.sources.length}:{}}),o?`done`:`failed`}function Tt(e,t,n,r,i){let a=Fe(e,r).filter(e=>!i.has(e.id)),o=Ie(e,r);o&&i.has(o.id)&&(o=null);let s=k(t,n,r),c=!1;s.paused&&(c=a.some(D)||!!o,a=a.filter(e=>!D(e)),o=null);let l=K(a);return o&&l.some(e=>e.d.id===o.id)&&(o=null),{dueData:a,dueAi:o,pausedAndBlocked:c}}function Et(){let e=(0,N.useRef)(!1);(0,N.useEffect)(()=>{let t=!0,n=async()=>{if(e.current||!t||typeof document<`u`&&document.visibilityState!==`visible`)return;let n=x(S()),r=!!n.apiKey,i=Date.now(),a=g(),o=re(),s=w();de(a,s,e=>E(s,e,i),e=>c(e,i-6048e5,i),i);for(let e of lt(a,s,i))T({kind:`insight`,text:e.text,dashboardIds:e.dashboardIds,searches:0});let{dueData:l,dueAi:u,pausedAndBlocked:d}=Tt(a,s,o.dailySearchBudget,i,J);d&&yt(i);let f=r&&o.briefingEnabled&&le(i);if(l.length===0&&!u){if(f&&!a.some(D)){let e=ce(a,new Set);if(e){let t=await Ze([],n,{briefingContext:e});t.briefing&&(M(t.briefing,a,i),T({kind:`briefing`,text:`Morning briefing compiled.`,dashboardIds:[],searches:1}))}}return}e.current=!0,l.forEach(e=>J.add(e.id)),u&&J.add(u.id);try{if(l.length>0){let e=f?{context:ce(a,new Set(K(l).map(e=>e.d.id))),allDashboards:a}:void 0;await $(l,n,r,e?{briefing:e}:{})}u&&await xt(u,n,r,i)}finally{l.forEach(e=>J.delete(e.id)),u&&J.delete(u.id),e.current=!1}},r=()=>{he(n).catch(e=>{console.error(`[dashboards] scheduled tick failed`,e)})},i=window.setInterval(r,dt),a=()=>{document.visibilityState===`visible`&&r()};return document.addEventListener(`visibilitychange`,a),r(),()=>{t=!1,window.clearInterval(i),document.removeEventListener(`visibilitychange`,a)}},[])}export{ht as a,ge as c,ut as i,P as l,St as n,V as o,Et as r,we as s,wt as t};
@@ -1 +1 @@
1
- import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,r as i,t as a}from"./theme-D5D55hZi.js";import{C as o,S as s,T as c,b as l,w as u,x as d}from"./index-LiHcEJt_.js";import{u as f}from"./useLiveConfig-B4CmBiAK.js";import{a as p,i as m,o as h,t as g}from"./store-D2IJF4SA.js";import{r as _,t as v}from"./queue-Adae4IzW.js";var y=t(),b=e(),x=n(),S=[`smaller`,`normal`,`larger`],C={smaller:`Smaller`,normal:`Normal`,larger:`Larger`},w=`mavea:appearancechange`;function T(e){window.dispatchEvent(new CustomEvent(w,{detail:e}))}function E(){let e=(0,y.c)(11),[t,n]=(0,b.useState)(O),[s,l]=(0,b.useState)(D),[p,m]=f(),h,g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>{let e=e=>{let t=e.detail;t&&(n(t.template),l(t.theme))};return window.addEventListener(w,e),()=>window.removeEventListener(w,e)},g=[],e[0]=h,e[1]=g):(h=e[0],g=e[1]),(0,b.useEffect)(h,g);let _;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(_=e=>{u(document,e),d(document,e),o(e);let t={template:e,theme:r()};n(e),l(t.theme),T(t)},e[2]=_):_=e[2];let v=_,x;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>{a(e),i(e);let t={template:c(),theme:e};n(t.template),l(e),T(t)},e[3]=x):x=e[3];let S=x,C;e[4]===m?C=e[5]:(C=e=>m({fontScale:e}),e[4]=m,e[5]=C);let E=C,k;return e[6]!==t||e[7]!==p.fontScale||e[8]!==E||e[9]!==s?(k={active:t,theme:s,fontScale:p.fontScale,pickTemplate:v,pickTheme:S,pickFontScale:E},e[6]=t,e[7]=p.fontScale,e[8]=E,e[9]=s,e[10]=k):k=e[10],k}function D(){return r()}function O(){return c()}function k(e){let t=(0,y.c)(13),{templateId:n}=e,r;t[0]===n?r=t[1]:(r=l.find(e=>e.id===n)??l[0],t[0]=n,t[1]=r);let i=r,a;t[2]!==i.preview.accent||t[3]!==i.preview.background||t[4]!==i.preview.ink||t[5]!==i.preview.surface?(a={"--preview-bg":i.preview.background,"--preview-surface":i.preview.surface,"--preview-ink":i.preview.ink,"--preview-accent":i.preview.accent},t[2]=i.preview.accent,t[3]=i.preview.background,t[4]=i.preview.ink,t[5]=i.preview.surface,t[6]=a):a=t[6];let o=a,s=`appearance-preview appearance-preview--${i.preview.geometry}`,c;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,x.jsx)(`span`,{className:`appearance-preview-aa`,children:`Aa`}),t[7]=c):c=t[7];let u,d;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,x.jsxs)(`span`,{className:`appearance-preview-copy`,children:[(0,x.jsx)(`i`,{}),(0,x.jsx)(`i`,{})]}),d=(0,x.jsx)(`span`,{className:`appearance-preview-data`,children:`08`}),t[8]=u,t[9]=d):(u=t[8],d=t[9]);let f;return t[10]!==o||t[11]!==s?(f=(0,x.jsxs)(`span`,{className:s,style:o,"aria-hidden":`true`,children:[c,u,d]}),t[10]=o,t[11]=s,t[12]=f):f=t[12],f}function A({active:e,theme:t,fontScale:n,embedded:r=!1,onPickTemplate:i,onPickTheme:a,onPickFontScale:o,onClose:s,optionRefs:c}){let d=(0,b.useId)(),f=(e,t)=>{let n;if(e.key===`ArrowRight`||e.key===`ArrowDown`)n=(t+1)%l.length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)n=(t-1+l.length)%l.length;else if(e.key===`Home`)n=0;else if(e.key===`End`)n=l.length-1;else return;e.preventDefault(),c?.current[n]?.focus()};return(0,x.jsxs)(`div`,{className:`appearance-panel${r?` is-embedded`:``}`,role:r?void 0:`dialog`,"aria-modal":!r||void 0,"aria-labelledby":d,children:[(0,x.jsxs)(`div`,{className:`appearance-head`,children:[(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`h2`,{id:d,children:r?`Appearance`:`Choose your workspace`}),(0,x.jsx)(`p`,{children:`A visual identity for how you think.`})]}),s&&(0,x.jsx)(`button`,{type:`button`,className:`appearance-close`,onClick:s,"aria-label":`Close appearance`,children:`×`})]}),(0,x.jsxs)(`div`,{className:`appearance-mode`,"aria-label":`Color mode`,children:[(0,x.jsx)(`span`,{children:`Color mode`}),(0,x.jsx)(`div`,{className:`appearance-segmented`,children:[`light`,`dark`].map(e=>(0,x.jsxs)(`button`,{type:`button`,"aria-pressed":t===e,className:t===e?`is-active`:``,onClick:()=>a(e),children:[(0,x.jsx)(`span`,{className:`appearance-mode-icon is-${e}`,"aria-hidden":`true`}),e===`light`?`Light`:`Dark`]},e))})]}),(0,x.jsxs)(`div`,{className:`appearance-mode`,"aria-label":`Text size`,children:[(0,x.jsx)(`span`,{children:`Text size`}),(0,x.jsx)(`div`,{className:`appearance-segmented is-triple`,children:S.map(e=>(0,x.jsx)(`button`,{type:`button`,"aria-pressed":n===e,className:n===e?`is-active`:``,onClick:()=>o(e),children:C[e]},e))})]}),(0,x.jsx)(`div`,{className:`appearance-grid`,role:`radiogroup`,"aria-label":`Workspace themes`,children:l.map((t,n)=>(0,x.jsxs)(`button`,{ref:e=>{c&&(c.current[n]=e)},type:`button`,role:`radio`,"aria-label":`${t.label}, ${t.persona}. ${t.tagline} Best for ${t.bestFor}.`,"aria-checked":t.id===e,tabIndex:t.id===e?0:-1,className:`appearance-option${t.id===e?` is-active`:``}`,onClick:()=>i(t.id),onKeyDown:e=>f(e,n),onPointerEnter:()=>u(document,t.id),onFocus:()=>u(document,t.id),children:[(0,x.jsx)(k,{templateId:t.id}),(0,x.jsxs)(`span`,{className:`appearance-option-copy`,children:[(0,x.jsxs)(`span`,{className:`appearance-option-title`,children:[(0,x.jsx)(`strong`,{children:t.label}),(0,x.jsx)(`em`,{children:t.persona})]}),(0,x.jsx)(`span`,{className:`appearance-option-tagline`,children:t.tagline}),(0,x.jsxs)(`span`,{className:`appearance-option-best`,children:[`Best for `,t.bestFor.toLowerCase()]}),(0,x.jsx)(`span`,{className:`appearance-option-font`,children:t.preview.fontRole})]}),(0,x.jsx)(`span`,{className:`appearance-check`,"aria-hidden":`true`,children:`✓`})]},t.id))})]})}function j({triggerClassName:e=`topbar-icon-btn`}={}){let{active:t,theme:n,fontScale:r,pickTemplate:i,pickTheme:a,pickFontScale:o}=E(),[c,u]=(0,b.useState)(!1),d=(0,b.useRef)(null),f=(0,b.useRef)(null),p=(0,b.useRef)([]);(0,b.useEffect)(()=>s(document),[]);let m=(0,b.useCallback)(()=>{u(!1),requestAnimationFrame(()=>f.current?.focus())},[]);(0,b.useEffect)(()=>{if(!c)return;let e=l.findIndex(e=>e.id===t);requestAnimationFrame(()=>{if(window.matchMedia?.(`(max-width: 720px)`).matches??!1){d.current?.querySelector(`.appearance-close`)?.focus({preventScroll:!0});return}p.current[Math.max(0,e)]?.focus({preventScroll:!0})});let n=e=>{d.current&&!d.current.contains(e.target)&&m()},r=e=>{if(e.key===`Escape`){e.preventDefault(),m();return}if(e.key!==`Tab`||!d.current)return;let t=Array.from(d.current.querySelectorAll(`button:not([disabled])`));if(!t.length)return;let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())};return window.addEventListener(`pointerdown`,n),window.addEventListener(`keydown`,r),()=>{window.removeEventListener(`pointerdown`,n),window.removeEventListener(`keydown`,r)}},[t,m,c]);let h=l.find(e=>e.id===t)??l[0];return(0,x.jsxs)(`div`,{className:`tpl-picker appearance-picker`,ref:d,children:[(0,x.jsx)(`button`,{ref:f,type:`button`,className:`${e} tpl-btn appearance-trigger`,onClick:()=>u(e=>!e),title:`Appearance: ${h.label} · ${h.persona} · ${n===`light`?`Light`:`Dark`}`,"aria-label":`Choose appearance (current: ${h.label}, ${h.persona}, ${n} mode)`,"aria-expanded":c,"aria-haspopup":`dialog`,children:(0,x.jsxs)(`span`,{className:`appearance-mark`,"aria-hidden":`true`,children:[(0,x.jsx)(`i`,{style:{background:h.preview.accent}}),(0,x.jsx)(`i`,{style:{background:h.preview.surface}})]})}),c&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`button`,{className:`appearance-backdrop`,type:`button`,onClick:m,"aria-label":`Close appearance`}),(0,x.jsx)(A,{active:t,theme:n,fontScale:r,onPickTemplate:i,onPickTheme:a,onPickFontScale:o,onClose:m,optionRefs:p})]})]})}function M(){let e=(0,y.c)(7),{active:t,theme:n,fontScale:r,pickTemplate:i,pickTheme:a,pickFontScale:o}=E(),s;return e[0]!==t||e[1]!==r||e[2]!==o||e[3]!==i||e[4]!==a||e[5]!==n?(s=(0,x.jsx)(A,{embedded:!0,active:t,theme:n,fontScale:r,onPickTemplate:i,onPickTheme:a,onPickFontScale:o}),e[0]=t,e[1]=r,e[2]=o,e[3]=i,e[4]=a,e[5]=n,e[6]=s):s=e[6],s}function N(e){let[t,n]=(0,b.useState)(e);return(0,b.useEffect)(()=>{if(typeof window>`u`)return;let t=()=>n(e());return t(),window.addEventListener(g,t),window.addEventListener(`focus`,t),document.addEventListener(`visibilitychange`,t),()=>{window.removeEventListener(g,t),window.removeEventListener(`focus`,t),document.removeEventListener(`visibilitychange`,t)}},[]),t}function P(){return N(v)}function F(){return N(h)}function I(){return N(p)}function L(){return N(R)}function R(){return m()}function z(){return N(B)}function B(){return _()}export{P as a,F as i,I as n,M as o,z as r,j as s,L as t};
1
+ import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{n as r,r as i,t as a}from"./theme-D5D55hZi.js";import{C as o,S as s,T as c,b as l,w as u,x as d}from"./index-CdUH6Eo9.js";import{u as f}from"./useLiveConfig-B4CmBiAK.js";import{a as p,i as m,o as h,t as g}from"./store-D2IJF4SA.js";import{r as _,t as v}from"./queue-Adae4IzW.js";var y=t(),b=e(),x=n(),S=[`smaller`,`normal`,`larger`],C={smaller:`Smaller`,normal:`Normal`,larger:`Larger`},w=`mavea:appearancechange`;function T(e){window.dispatchEvent(new CustomEvent(w,{detail:e}))}function E(){let e=(0,y.c)(11),[t,n]=(0,b.useState)(O),[s,l]=(0,b.useState)(D),[p,m]=f(),h,g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>{let e=e=>{let t=e.detail;t&&(n(t.template),l(t.theme))};return window.addEventListener(w,e),()=>window.removeEventListener(w,e)},g=[],e[0]=h,e[1]=g):(h=e[0],g=e[1]),(0,b.useEffect)(h,g);let _;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(_=e=>{u(document,e),d(document,e),o(e);let t={template:e,theme:r()};n(e),l(t.theme),T(t)},e[2]=_):_=e[2];let v=_,x;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>{a(e),i(e);let t={template:c(),theme:e};n(t.template),l(e),T(t)},e[3]=x):x=e[3];let S=x,C;e[4]===m?C=e[5]:(C=e=>m({fontScale:e}),e[4]=m,e[5]=C);let E=C,k;return e[6]!==t||e[7]!==p.fontScale||e[8]!==E||e[9]!==s?(k={active:t,theme:s,fontScale:p.fontScale,pickTemplate:v,pickTheme:S,pickFontScale:E},e[6]=t,e[7]=p.fontScale,e[8]=E,e[9]=s,e[10]=k):k=e[10],k}function D(){return r()}function O(){return c()}function k(e){let t=(0,y.c)(13),{templateId:n}=e,r;t[0]===n?r=t[1]:(r=l.find(e=>e.id===n)??l[0],t[0]=n,t[1]=r);let i=r,a;t[2]!==i.preview.accent||t[3]!==i.preview.background||t[4]!==i.preview.ink||t[5]!==i.preview.surface?(a={"--preview-bg":i.preview.background,"--preview-surface":i.preview.surface,"--preview-ink":i.preview.ink,"--preview-accent":i.preview.accent},t[2]=i.preview.accent,t[3]=i.preview.background,t[4]=i.preview.ink,t[5]=i.preview.surface,t[6]=a):a=t[6];let o=a,s=`appearance-preview appearance-preview--${i.preview.geometry}`,c;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,x.jsx)(`span`,{className:`appearance-preview-aa`,children:`Aa`}),t[7]=c):c=t[7];let u,d;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,x.jsxs)(`span`,{className:`appearance-preview-copy`,children:[(0,x.jsx)(`i`,{}),(0,x.jsx)(`i`,{})]}),d=(0,x.jsx)(`span`,{className:`appearance-preview-data`,children:`08`}),t[8]=u,t[9]=d):(u=t[8],d=t[9]);let f;return t[10]!==o||t[11]!==s?(f=(0,x.jsxs)(`span`,{className:s,style:o,"aria-hidden":`true`,children:[c,u,d]}),t[10]=o,t[11]=s,t[12]=f):f=t[12],f}function A({active:e,theme:t,fontScale:n,embedded:r=!1,onPickTemplate:i,onPickTheme:a,onPickFontScale:o,onClose:s,optionRefs:c}){let d=(0,b.useId)(),f=(e,t)=>{let n;if(e.key===`ArrowRight`||e.key===`ArrowDown`)n=(t+1)%l.length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)n=(t-1+l.length)%l.length;else if(e.key===`Home`)n=0;else if(e.key===`End`)n=l.length-1;else return;e.preventDefault(),c?.current[n]?.focus()};return(0,x.jsxs)(`div`,{className:`appearance-panel${r?` is-embedded`:``}`,role:r?void 0:`dialog`,"aria-modal":!r||void 0,"aria-labelledby":d,children:[(0,x.jsxs)(`div`,{className:`appearance-head`,children:[(0,x.jsxs)(`div`,{children:[(0,x.jsx)(`h2`,{id:d,children:r?`Appearance`:`Choose your workspace`}),(0,x.jsx)(`p`,{children:`A visual identity for how you think.`})]}),s&&(0,x.jsx)(`button`,{type:`button`,className:`appearance-close`,onClick:s,"aria-label":`Close appearance`,children:`×`})]}),(0,x.jsxs)(`div`,{className:`appearance-mode`,"aria-label":`Color mode`,children:[(0,x.jsx)(`span`,{children:`Color mode`}),(0,x.jsx)(`div`,{className:`appearance-segmented`,children:[`light`,`dark`].map(e=>(0,x.jsxs)(`button`,{type:`button`,"aria-pressed":t===e,className:t===e?`is-active`:``,onClick:()=>a(e),children:[(0,x.jsx)(`span`,{className:`appearance-mode-icon is-${e}`,"aria-hidden":`true`}),e===`light`?`Light`:`Dark`]},e))})]}),(0,x.jsxs)(`div`,{className:`appearance-mode`,"aria-label":`Text size`,children:[(0,x.jsx)(`span`,{children:`Text size`}),(0,x.jsx)(`div`,{className:`appearance-segmented is-triple`,children:S.map(e=>(0,x.jsx)(`button`,{type:`button`,"aria-pressed":n===e,className:n===e?`is-active`:``,onClick:()=>o(e),children:C[e]},e))})]}),(0,x.jsx)(`div`,{className:`appearance-grid`,role:`radiogroup`,"aria-label":`Workspace themes`,children:l.map((t,n)=>(0,x.jsxs)(`button`,{ref:e=>{c&&(c.current[n]=e)},type:`button`,role:`radio`,"aria-label":`${t.label}, ${t.persona}. ${t.tagline} Best for ${t.bestFor}.`,"aria-checked":t.id===e,tabIndex:t.id===e?0:-1,className:`appearance-option${t.id===e?` is-active`:``}`,onClick:()=>i(t.id),onKeyDown:e=>f(e,n),onPointerEnter:()=>u(document,t.id),onFocus:()=>u(document,t.id),children:[(0,x.jsx)(k,{templateId:t.id}),(0,x.jsxs)(`span`,{className:`appearance-option-copy`,children:[(0,x.jsxs)(`span`,{className:`appearance-option-title`,children:[(0,x.jsx)(`strong`,{children:t.label}),(0,x.jsx)(`em`,{children:t.persona})]}),(0,x.jsx)(`span`,{className:`appearance-option-tagline`,children:t.tagline}),(0,x.jsxs)(`span`,{className:`appearance-option-best`,children:[`Best for `,t.bestFor.toLowerCase()]}),(0,x.jsx)(`span`,{className:`appearance-option-font`,children:t.preview.fontRole})]}),(0,x.jsx)(`span`,{className:`appearance-check`,"aria-hidden":`true`,children:`✓`})]},t.id))})]})}function j({triggerClassName:e=`topbar-icon-btn`}={}){let{active:t,theme:n,fontScale:r,pickTemplate:i,pickTheme:a,pickFontScale:o}=E(),[c,u]=(0,b.useState)(!1),d=(0,b.useRef)(null),f=(0,b.useRef)(null),p=(0,b.useRef)([]);(0,b.useEffect)(()=>s(document),[]);let m=(0,b.useCallback)(()=>{u(!1),requestAnimationFrame(()=>f.current?.focus())},[]);(0,b.useEffect)(()=>{if(!c)return;let e=l.findIndex(e=>e.id===t);requestAnimationFrame(()=>{if(window.matchMedia?.(`(max-width: 720px)`).matches??!1){d.current?.querySelector(`.appearance-close`)?.focus({preventScroll:!0});return}p.current[Math.max(0,e)]?.focus({preventScroll:!0})});let n=e=>{d.current&&!d.current.contains(e.target)&&m()},r=e=>{if(e.key===`Escape`){e.preventDefault(),m();return}if(e.key!==`Tab`||!d.current)return;let t=Array.from(d.current.querySelectorAll(`button:not([disabled])`));if(!t.length)return;let n=t[0],r=t[t.length-1];e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus())};return window.addEventListener(`pointerdown`,n),window.addEventListener(`keydown`,r),()=>{window.removeEventListener(`pointerdown`,n),window.removeEventListener(`keydown`,r)}},[t,m,c]);let h=l.find(e=>e.id===t)??l[0];return(0,x.jsxs)(`div`,{className:`tpl-picker appearance-picker`,ref:d,children:[(0,x.jsx)(`button`,{ref:f,type:`button`,className:`${e} tpl-btn appearance-trigger`,onClick:()=>u(e=>!e),title:`Appearance: ${h.label} · ${h.persona} · ${n===`light`?`Light`:`Dark`}`,"aria-label":`Choose appearance (current: ${h.label}, ${h.persona}, ${n} mode)`,"aria-expanded":c,"aria-haspopup":`dialog`,children:(0,x.jsxs)(`span`,{className:`appearance-mark`,"aria-hidden":`true`,children:[(0,x.jsx)(`i`,{style:{background:h.preview.accent}}),(0,x.jsx)(`i`,{style:{background:h.preview.surface}})]})}),c&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`button`,{className:`appearance-backdrop`,type:`button`,onClick:m,"aria-label":`Close appearance`}),(0,x.jsx)(A,{active:t,theme:n,fontScale:r,onPickTemplate:i,onPickTheme:a,onPickFontScale:o,onClose:m,optionRefs:p})]})]})}function M(){let e=(0,y.c)(7),{active:t,theme:n,fontScale:r,pickTemplate:i,pickTheme:a,pickFontScale:o}=E(),s;return e[0]!==t||e[1]!==r||e[2]!==o||e[3]!==i||e[4]!==a||e[5]!==n?(s=(0,x.jsx)(A,{embedded:!0,active:t,theme:n,fontScale:r,onPickTemplate:i,onPickTheme:a,onPickFontScale:o}),e[0]=t,e[1]=r,e[2]=o,e[3]=i,e[4]=a,e[5]=n,e[6]=s):s=e[6],s}function N(e){let[t,n]=(0,b.useState)(e);return(0,b.useEffect)(()=>{if(typeof window>`u`)return;let t=()=>n(e());return t(),window.addEventListener(g,t),window.addEventListener(`focus`,t),document.addEventListener(`visibilitychange`,t),()=>{window.removeEventListener(g,t),window.removeEventListener(`focus`,t),document.removeEventListener(`visibilitychange`,t)}},[]),t}function P(){return N(v)}function F(){return N(h)}function I(){return N(p)}function L(){return N(R)}function R(){return m()}function z(){return N(B)}function B(){return _()}export{P as a,F as i,I as n,M as o,z as r,j as s,L as t};
@@ -1 +1 @@
1
- import{T as e,j as t}from"./kokoro-DXRj0KQX.js";import{n,t as r}from"./nextFrame-12y0UrAd.js";var i=1100,a=15e3,o=1e4,s=12e3,c=8e3,l=3500,u=2500,d=3e3;function f(e){return e*2+12e3}function p(e,t=1700){let n=e.trim();return n?Math.min(7e3,Math.max(1500,Math.round(n.split(/\s+/).length*385+500))):t}function m(e){return new Promise(t=>setTimeout(t,e))}async function h(e,t=a){return await n(e.started,t)??!1}async function g(e,t,r=i){await Promise.all([n(e.finished,f(t)),m(r)])}function _(n){let r=n.speaking??e,i=n.subscribe??t;return new Promise(e=>{let t=!1,a=!1,o=()=>{a||(a=!0,c(),clearTimeout(l),e())},s=()=>{t&&!r()&&o()},c=i(s);setTimeout(()=>{t=!0,s()},n.floorMs);let l=setTimeout(o,n.capMs)})}async function v(e){try{await n((async()=>{await r(),await r(),await n(e.loadFams(),c),e.settle&&await e.settle(),e.wantVoice&&e.firstLine&&await n(e.firstLine.started,o)})(),s)}catch{}}export{v as a,p as c,_ as d,d as i,g as l,u as n,m as o,l as r,f as s,i as t,h as u};
1
+ import{T as e,j as t}from"./kokoro-D15HDMcP.js";import{n,t as r}from"./nextFrame-12y0UrAd.js";var i=1100,a=15e3,o=1e4,s=12e3,c=8e3,l=3500,u=2500,d=3e3;function f(e){return e*2+12e3}function p(e,t=1700){let n=e.trim();return n?Math.min(7e3,Math.max(1500,Math.round(n.split(/\s+/).length*385+500))):t}function m(e){return new Promise(t=>setTimeout(t,e))}async function h(e,t=a){return await n(e.started,t)??!1}async function g(e,t,r=i){await Promise.all([n(e.finished,f(t)),m(r)])}function _(n){let r=n.speaking??e,i=n.subscribe??t;return new Promise(e=>{let t=!1,a=!1,o=()=>{a||(a=!0,c(),clearTimeout(l),e())},s=()=>{t&&!r()&&o()},c=i(s);setTimeout(()=>{t=!0,s()},n.floorMs);let l=setTimeout(o,n.capMs)})}async function v(e){try{await n((async()=>{await r(),await r(),await n(e.loadFams(),c),e.settle&&await e.settle(),e.wantVoice&&e.firstLine&&await n(e.firstLine.started,o)})(),s)}catch{}}export{v as a,p as c,_ as d,d as i,g as l,u as n,m as o,l as r,f as s,i as t,h as u};
package/dist/index.html CHANGED
@@ -130,7 +130,7 @@
130
130
  }
131
131
  }
132
132
  </style>
133
- <script type="module" crossorigin src="/assets/index-LiHcEJt_.js"></script>
133
+ <script type="module" crossorigin src="/assets/index-CdUH6Eo9.js"></script>
134
134
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-DkW27tQK.js">
135
135
  <link rel="modulepreload" crossorigin href="/assets/react-BZJXY1be.js">
136
136
  <link rel="modulepreload" crossorigin href="/assets/compiler-runtime-qQQXpJgv.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mavea/mavea",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "type": "module",
5
5
  "description": "Mavéa — an AI Presence interface. Talk to AI. See what it means.",
6
6
  "keywords": [
@@ -1 +0,0 @@
1
- import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{F as r,R as i,f as a}from"./index-LiHcEJt_.js";import{n as o}from"./icons-gLFQTv74.js";import{t as s}from"./TopicCanvas-Bw4bMFpe.js";import{t as c}from"./motion-BY_Egaxm.js";import{t as l}from"./toast-BBNs2h3L.js";import{t as u}from"./Presence-UqXfH4Y-.js";import{a as d,c as f,i as p,l as m,r as h,t as g}from"./capture-DgJLQ_0-.js";import{n as _,r as v,t as y}from"./share--tpc1nLE.js";import{t as b}from"./FeatureUseNotice-Bda9jr3W.js";import{r as x}from"./history-D2EH2X6D.js";import{t as S}from"./replay-CalqEgdW.js";import"./canvas-C3O7MEA3.js";import{t as C}from"./AnnotationLayer-Cccb12ps.js";var w=e(),T=t(),E=18e4,D=650,O=350;function k(e){let t=[e.spoken??e.narration,...e.tour.map(e=>e.saySpoken??e.say??``)].reduce((e,t)=>e+t.trim().length,0);return 1e3+Math.max(1800,t/14*1e3)}function ee(e){return e.reduce((e,t)=>e+k(t),0)}function te(e){let t=k(e),n=[e.spoken??e.narration,...e.tour.map(e=>e.saySpoken??e.say??``)].map(e=>e.trim()).filter(Boolean),r=n.reduce((e,t)=>e+t.length,0),i=t-D-O,a=D;return{durationMs:t,spans:n.map(e=>{let t=Math.round(a);return a+=r?i*e.length/r:0,{text:e,startMs:t,endMs:Math.round(a)}})}}function ne(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n?.topicShift===!0||n?.topicShift===void 0&&n?.mode===`replace`)return t}return 0}function A(e,t,n){let r=n.spans[e+1];return r?r.startMs:D+Math.max(0,n.durationMs-D-O)*(e+1)/(t+1)}function j(e,t,n){let r=[],i=0;return e.forEach((e,a)=>{let o=t[a];if(!o)return;let s=S(e),c=s.cues.map((e,t)=>A(t,s.cues.length,o)),l=[0,D,...c,o.durationMs].map(e=>Math.max(0,Math.min(o.durationMs,e))).filter((e,t,n)=>t===0||e>n[t-1]),u=[];for(let t=0;t<l.length-1;t++){let d=l[t],f=l[t+1],p=c.findIndex(e=>e===d),m=p>=0?s.cues[p]:void 0;m&&n.penMarks&&(u=[...u,...m.marks.map((t,n)=>({spot:m.spot,line:m.say,mark:t,delayMs:n*240,...t.kind===`connect`&&typeof t.onIndex==`number`?{toSpot:e.spec.blocks[t.onIndex]?.id}:{}}))]);let h=[...o.spans].reverse().find(e=>e.startMs<=d&&e.endMs>d);r.push({frame:e,turnIndex:a,startMs:i+d,durationMs:Math.max(1,f-d),spot:n.spotlights?m?.spot??null:null,caption:n.captions?h?.text??null:null,ink:u,questionOnly:t===0})}i+=o.durationMs}),r}var M=24e3,N=.65,P=.18,F=.35,re=.89,I=6,L=class extends Error{turnIndex;question;constructor(e,t){super(`Narration is unavailable for “${t||`turn ${e+1}`}”.`),this.turnIndex=e,this.question=t,this.name=`RequiredConversationAudioError`}};function R(e){return[e.spoken??e.narration,...e.tour.map(e=>e.saySpoken??e.say??``)].map(e=>e.trim()).filter(Boolean)}function z(e){return e.trim().replace(/\s+/g,` `)}function B(e,t){let n=R(e);return n.length>0&&t.pcm.length>0&&t.spans.length===n.length&&n.every((e,n)=>z(t.spans[n]?.text??``)===z(e)&&t.spans[n].t1>t.spans[n].t0)}function V(e){let t=e.spans.map(e=>({text:e.text,startMs:Math.round((N+e.t0)*1e3),endMs:Math.round((N+e.t1)*1e3)})),n=new Float32Array(e.pcm.length);for(let t=0;t<e.pcm.length;t++)n[t]=e.pcm[t]/32768;return{lines:[{text:t.map(e=>e.text).join(` `),pcm:n,rate:e.sampleRate}],durationS:N+e.duration+F,spans:t}}async function H(e,t,n,r){let i=R(e);if(!i.length)throw new L(t,e.question);let a=[];for(let o of i){if(n?.aborted)throw new DOMException(`Cancelled`,`AbortError`);let i=await f(o,n);if(n?.aborted)throw new DOMException(`Cancelled`,`AbortError`);if(!i.length)throw new L(t,e.question);a.push({text:o,pcm:i,rate:M}),r?.(i.length/M+P)}let o=[],s=N;for(let e of a){let t=s;s+=e.pcm.length/e.rate,o.push({text:e.text,startMs:Math.round(t*1e3),endMs:Math.round(s*1e3)}),s+=P}return{lines:a,durationS:s+F,spans:o}}async function ie(e,t,n,i){let a=r();if(a===null||typeof OfflineAudioContext>`u`)throw Error(`audio-encoding-unavailable`);let o=e.map(e=>{let n=t(e);return n&&B(e,n)?V(n):null}),s=o.reduce((e,t)=>e+(t?.durationS??1),0),c=e.reduce((e,t,n)=>e+(o[n]?0:R(t).length),0),l=0,u=new AbortController,d=()=>u.abort();n?.addEventListener(`abort`,d,{once:!0}),n?.aborted&&u.abort();let f=e=>{if(s+=e,i?.(++l,c),s*1e3>18e4)throw u.abort(),Error(`conversation-too-long`)},p;try{p=await m(e,2,(e,t)=>{let n=o[t];return n?Promise.resolve(n):H(e,t,u.signal,f)})}finally{n?.removeEventListener(`abort`,d)}let h=p.reduce((e,t)=>e+t.durationS,0);if(h*1e3>18e4)throw Error(`conversation-too-long`);let g=0;for(let e of p)for(let t of e.lines)for(let e=0;e<t.pcm.length;e++)g=Math.max(g,Math.abs(t.pcm[e]));let _=g>0?Math.min(I,re/g):1,v=new OfflineAudioContext(1,Math.ceil(h*a),a),y=v.createGain();y.gain.value=_,y.connect(v.destination);let b=0;for(let e of p){let t=b+N;for(let n of e.lines){let e=v.createBuffer(1,n.pcm.length,n.rate);e.getChannelData(0).set(n.pcm);let r=v.createBufferSource();r.buffer=e,r.connect(y),r.start(t),t+=n.pcm.length/n.rate+P}b+=e.durationS}return{buffer:await v.startRendering(),turns:p.map(e=>({durationMs:Math.round(e.durationS*1e3),spans:e.spans})),durationMs:Math.round(h*1e3)}}var U={"1080p":{width:1920,height:1080},"720p":{width:1280,height:720}};function W(e,t,n=a()){let{bitrate:r}=g(e,n);return t===`720p`?Math.round(r*.55):r}async function G(e){document.visibilityState===`hidden`&&await new Promise((t,n)=>{let r=()=>a(new DOMException(`Cancelled`,`AbortError`)),i=()=>{document.visibilityState!==`hidden`&&a()},a=a=>{document.removeEventListener(`visibilitychange`,i),e.removeEventListener(`abort`,r),a?n(a):t()};document.addEventListener(`visibilitychange`,i),e.addEventListener(`abort`,r,{once:!0})})}function ae(){return typeof document<`u`&&(typeof VideoEncoder<`u`&&typeof AudioEncoder<`u`||d()!==null)}var K={selector:`.cvs-presence`,bleed:96};async function oe(e){let t=a(),n=U[e.size],r=e.scenes[0];r&&await e.applyScene(r,0);let i=getComputedStyle(e.el).backgroundColor,o=await p({el:e.el,audioBuffer:e.audioBuffer,aspect:`16:9`,dims:{w:n.width,h:n.height},quality:e.quality,bitrate:W(e.quality,e.size,t),background:i&&i!==`rgba(0, 0, 0, 0)`?i:void 0,maxDurationMs:e.durationMs,liveLayer:K,onFrame:e.onFrame,cues:e.scenes.slice(1).map((t,n)=>({atMs:t.startMs,apply:async()=>{let r=n+1;await e.applyScene(t,r),e.onProgress?.({phase:`render`,completed:r+1,total:e.scenes.length})}})),gate:async()=>{if(e.signal.aborted)throw new DOMException(`Cancelled`,`AbortError`);await G(e.signal)}});try{await o.done(),e.onProgress?.({phase:`encode`,completed:0,total:1});let t=await o.stop();return e.onProgress?.({phase:`ready`,completed:1,total:1}),{...t,...n}}catch(e){throw o.cancel(),e}}var q=n();function se({scene:e,options:t,frameRef:n,glide:r=!0}){let a=(0,w.useRef)(null),o=(0,w.useRef)(null),c=(0,w.useRef)(null),l=i(),d=(0,w.useRef)(null),[f,p]=(0,w.useState)(0);(0,w.useEffect)(()=>(n?.(a.current),()=>n?.(null)),[n]),(0,w.useEffect)(()=>{let t=o.current,n=c.current;if(!t||!n)return;let r=d.current!==e?.turnIndex;d.current=e?.turnIndex??null;let i=r?0:null;if(e?.spot){let r=[...t.querySelectorAll(`[data-spot-id]`)].find(t=>t.dataset.spotId===e.spot);if(r){let e=0;for(let n=r;n&&n!==t;n=n.offsetParent)e+=n.offsetTop;i=Math.max(0,Math.min(e-(t.clientHeight-r.offsetHeight)/2,n.offsetHeight-t.clientHeight))}}if(i===null)return;n.style.setProperty(`--cvs-shift`,`${-i}px`);let a=window.setTimeout(()=>p(e=>e+1),420);return()=>window.clearTimeout(a)},[e?.spot,e?.turnIndex]);let m=e?.questionOnly??!1,h=e?e.frame.question||e.frame.spec.title:``;return(0,q.jsx)(`div`,{ref:a,className:`cvs-stage`,"data-aspect":`16:9`,"data-question-only":m,"data-captioned":t.captions,children:e?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`header`,{className:`cvs-header`,children:[(0,q.jsxs)(`div`,{className:`cvs-brand`,children:[(0,q.jsx)(`span`,{className:`cvs-brand-dot`}),` Mavéa conversation`]}),(0,q.jsxs)(`div`,{className:`cvs-turn`,children:[`Turn `,e.turnIndex+1]}),(0,q.jsx)(`h2`,{children:h})]}),m?(0,q.jsxs)(`div`,{className:`cvs-ask`,children:[(0,q.jsx)(`span`,{className:`cvs-ask-eyebrow`,children:`Asked`}),(0,q.jsx)(`p`,{className:`cvs-ask-line`,children:h})]}):(0,q.jsxs)(`div`,{ref:o,className:`cvs-canvas`,children:[(0,q.jsx)(`div`,{className:`topic-wrap`,ref:c,"data-glide":r,children:(0,q.jsx)(s,{data:e.frame.spec,spot:e.spot,built:{},onProve:()=>{}})},e.turnIndex),t.penMarks&&(0,q.jsx)(C,{spots:e.ink,within:a.current,revision:f})]}),t.captions&&e.caption&&(0,q.jsx)(`div`,{className:`cvs-caption`,children:e.caption}),t.presence&&(0,q.jsx)(`div`,{className:`cvs-presence`,ref:l,children:(0,q.jsx)(u,{state:m?`thinking`:`speaking`})})]}):(0,q.jsx)(`div`,{className:`cvs-empty`,children:`Choose a turn to preview it.`})})}var ce=[{id:`1080p`,label:`1080p`,hint:`1920×1080`},{id:`720p`,label:`720p`,hint:`1280×720`}],le=[{id:`balanced`,label:`Balanced`},{id:`high`,label:`High`},{id:`ultra`,label:`Ultra`}],ue=650,de=640,fe=360;function pe(e=300){return Promise.race([(async()=>{await new Promise(e=>requestAnimationFrame(()=>e())),await new Promise(e=>requestAnimationFrame(()=>e()))})(),new Promise(t=>window.setTimeout(t,e))])}var me=[{key:`captions`,label:`Captions`},{key:`spotlights`,label:`Spotlights`},{key:`penMarks`,label:`Pen marks`},{key:`presence`,label:`Mavéa`},{key:`audio`,label:`Audio`}];function he(e){let t=Math.max(0,Math.round(e/1e3));return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}function ge(e){let t=(0,T.c)(12),{width:n,height:r,children:i}=e,a=(0,w.useRef)(null),[o,s]=(0,w.useState)(0),c,l;t[0]!==r||t[1]!==n?(c=()=>{let e=a.current;if(!e)return;let t=()=>{let{width:t,height:i}=e.getBoundingClientRect();!t||!i||s(Math.min(t/n,i/r))};if(t(),typeof ResizeObserver>`u`)return;let i=new ResizeObserver(t);return i.observe(e),()=>i.disconnect()},l=[n,r],t[0]=r,t[1]=n,t[2]=c,t[3]=l):(c=t[2],l=t[3]),(0,w.useLayoutEffect)(c,l);let u=`scale(${o})`,d=o?void 0:`hidden`,f;t[4]!==r||t[5]!==u||t[6]!==d||t[7]!==n?(f={width:n,height:r,transform:u,visibility:d},t[4]=r,t[5]=u,t[6]=d,t[7]=n,t[8]=f):f=t[8];let p;return t[9]!==i||t[10]!==f?(p=(0,q.jsx)(`div`,{ref:a,className:`cvs-viewport`,children:(0,q.jsx)(`div`,{className:`cvs-scaler`,style:f,children:i})}),t[9]=i,t[10]=f,t[11]=p):p=t[11],p}function _e(e){return e.map(e=>{let t=k(e);return{durationMs:t,spans:[{text:e.narration,startMs:650,endMs:Math.max(651,t-350)}]}})}function J({frames:e,retainedAudio:t,onShared:n,onBusyChange:r}){let i=(0,w.useMemo)(()=>e.filter(e=>!!((e.spoken??e.narration).trim()||e.tour.some(e=>(e.saySpoken??e.say)?.trim()))),[e]),[a,s]=(0,w.useState)(()=>new Set(i.length?[x(i[i.length-1])]:[])),u=(0,w.useMemo)(()=>new Set(i.map(x)),[i]),[d,f]=(0,w.useState)({size:`1080p`,quality:`high`,captions:!0,spotlights:!0,penMarks:!0,presence:!0,audio:!0}),p=(0,w.useMemo)(()=>e.filter(e=>a.has(x(e))),[e,a]),m=(0,w.useMemo)(()=>ee(p),[p]),g=(0,w.useMemo)(()=>j(p,_e(p),d),[p,d]),[S,C]=(0,w.useState)(()=>g[0]??null),[T,D]=(0,w.useState)(null),[O,k]=(0,w.useState)(null),[A,M]=(0,w.useState)(null),[N,P]=(0,w.useState)(!1),[F,re]=(0,w.useState)(!1),[I,R]=(0,w.useState)(0),[z,B]=(0,w.useState)(!1),[V,H]=(0,w.useState)(!1),W=(0,w.useRef)(null),G=(0,w.useRef)(null),K=(0,w.useRef)(null),J=(0,w.useRef)(null),ve=(0,w.useRef)(null),Y=T!==null&&T.phase!==`ready`,ye=Y&&T?.phase!==`audio`,be=ae(),X=(0,w.useMemo)(()=>c(),[]),Z=F&&!Y&&!X&&g.length>1;(0,w.useEffect)(()=>r?.(Y),[Y,r]),(0,w.useEffect)(()=>{if(!Y){H(!1);return}let e=()=>H(document.visibilityState===`hidden`);return e(),document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[Y]),(0,w.useEffect)(()=>re(!0),[]),(0,w.useEffect)(()=>{let e=X?g.findIndex(e=>!e.questionOnly):0;R(Math.max(0,e)),B(!1)},[g,X]),(0,w.useEffect)(()=>{Y||C(g[I]??g[0]??null)},[g,I,Y]),(0,w.useEffect)(()=>{if(!Z||z)return;let e=g[I]??g[0],t=window.setTimeout(()=>R(e=>(e+1)%g.length),Math.max(ue,e?.durationMs??ue));return()=>window.clearTimeout(t)},[Z,z,g,I]),(0,w.useEffect)(()=>()=>{W.current?.abort(),G.current?.dispose?.(),G.current=null,r?.(!1)},[r]),(0,w.useEffect)(()=>{let e=J.current;if(!e)return;let t=()=>{e.dataset.overflowing=String(e.scrollHeight>e.clientHeight+1)};if(t(),typeof ResizeObserver>`u`)return;let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[e]);let xe=(0,w.useCallback)(async e=>{C(e),await pe()},[]),Se=(0,w.useCallback)(e=>{let t=ve.current,n=t?.getContext(`2d`);!t||!n||n.drawImage(e,0,0,t.width,t.height)},[]),Q=(0,w.useCallback)(()=>{G.current?.dispose?.(),G.current=null,k(null),D(null)},[]),Ce=(0,w.useCallback)(async()=>{if(!p.length||m>18e4)return;let e=new AbortController;W.current=e,Q(),M(null),D(d.audio?{phase:`audio`,completed:0,total:p.length}:{phase:`render`,completed:1,total:1}),P(!0);try{await pe();let n=K.current;if(!n)throw Error(`capture-stage-unavailable`);let r=d.audio?await ie(p,t??(()=>null),e.signal):null,i=r?r.turns:p.map(te),a=j(p,i,d);if(!a.length)throw Error(`empty-video`);D({phase:`render`,completed:1,total:a.length});let o=await oe({el:n,scenes:a,audioBuffer:r?.buffer??null,durationMs:r?.durationMs??i.reduce((e,t)=>e+t.durationMs,0),size:d.size,quality:d.quality,signal:e.signal,applyScene:xe,onProgress:D,onFrame:Se});G.current=o,k(o),D(null)}catch(e){if(e?.name===`AbortError`){D(null);return}let t=e instanceof L?`${e.message} Check the local voice service, then retry.`:e instanceof Error&&e.message===`conversation-too-long`?`The voiced result is over three minutes. Remove a turn and retry.`:e instanceof Error&&e.message===`open-codec-unavailable`?`This browser cannot encode an approved open-media format (AV1/VP9/VP8 with Opus). Try the current Chrome, Edge, or Firefox.`:`The video could not be created in this browser. Your conversation is unchanged.`;M(t),D(null)}finally{P(!1)}},[xe,Q,m,d,t,p,Se]),$=e=>{Y||(s(new Set(e.map(x))),Q(),M(null))},we=U[d.size],Te=y(v(p[0]?.spec.title||p[0]?.question,new Date),O?.type??``),Ee=T?T.phase===`audio`?`Preparing required narration…`:T.phase===`render`?`Rendering scene ${T.completed} of ${T.total}…`:T.phase===`encode`?`Finishing the file…`:`Video ready`:``,De=m>E;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`shm-panel cvs-panel`,children:[(0,q.jsx)(`div`,{className:`shm-eyebrow`,children:`▷ CONVERSATION VIDEO`}),(0,q.jsx)(`div`,{className:`cvs-title`,children:`Share this conversation.`}),(0,q.jsx)(`div`,{className:`shm-sub`,children:`Pick the turns worth sending. Mavéa narrates every one unless Audio is off. The video renders locally in this browser and is never uploaded.`}),(0,q.jsx)(b,{kind:`publishing`,from:`live`}),(0,q.jsxs)(`div`,{className:`cvs-presets`,children:[(0,q.jsx)(`button`,{type:`button`,onClick:()=>$(i.slice(-1)),disabled:Y,children:`Current turn`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>$(e.slice(ne(e)).filter(e=>u.has(x(e)))),disabled:Y,children:`Current topic`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>$(i),disabled:Y,children:`All turns`})]}),(0,q.jsx)(`div`,{className:`cvs-turns`,role:`group`,"aria-label":`Conversation turns`,ref:J,children:e.map((e,t)=>{let n=x(e),r=u.has(n);return(0,q.jsxs)(`label`,{className:`cvs-turn-card`,"data-selected":a.has(n),children:[(0,q.jsx)(`input`,{type:`checkbox`,checked:a.has(n),disabled:Y||!r,onChange:()=>{s(e=>{let t=new Set(e);return t.has(n)?t.delete(n):t.add(n),t}),Q()}}),(0,q.jsx)(`span`,{className:`cvs-thumb`,"aria-hidden":`true`,children:e.spec.blocks.length}),(0,q.jsxs)(`span`,{className:`cvs-turn-copy`,children:[(0,q.jsx)(`strong`,{children:e.question||e.spec.title}),(0,q.jsxs)(`small`,{children:[new Date(e.at).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`}),r?``:` · no narration`]})]}),(0,q.jsx)(`span`,{className:`cvs-order`,children:t+1})]},n)})}),(0,q.jsxs)(`div`,{className:`shm-group`,children:[(0,q.jsx)(`div`,{className:`shm-label`,children:`Size`}),(0,q.jsx)(`div`,{className:`shm-chips`,children:ce.map(e=>(0,q.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":d.size===e.id,"aria-pressed":d.size===e.id,disabled:Y,onClick:()=>{Q(),f(t=>({...t,size:e.id}))},title:e.hint,children:e.label},e.id))})]}),(0,q.jsxs)(`div`,{className:`shm-group`,children:[(0,q.jsx)(`div`,{className:`shm-label`,children:`Quality`}),(0,q.jsx)(`div`,{className:`shm-chips`,children:le.map(e=>(0,q.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":d.quality===e.id,"aria-pressed":d.quality===e.id,disabled:Y,onClick:()=>{Q(),f(t=>({...t,quality:e.id}))},title:h(e.id),children:e.label},e.id))})]}),(0,q.jsxs)(`div`,{className:`shm-group`,children:[(0,q.jsx)(`div`,{className:`shm-label`,children:`Include`}),(0,q.jsx)(`div`,{className:`shm-chips`,children:me.map(({key:e,label:t})=>(0,q.jsx)(`button`,{type:`button`,className:`shm-chip`,"data-active":d[e],"aria-pressed":d[e],disabled:Y,onClick:()=>{Q(),f(t=>({...t,[e]:!t[e]}))},children:t},e))})]}),(0,q.jsxs)(`div`,{className:`cvs-meter`,"data-over":De,children:[(0,q.jsxs)(`span`,{children:[he(m),` selected`]}),(0,q.jsx)(`span`,{children:`3:00 max`}),(0,q.jsx)(`i`,{style:{width:`${Math.min(100,m/E*100)}%`}})]}),A&&(0,q.jsx)(`div`,{className:`cvs-error`,role:`alert`,children:A}),!be&&(0,q.jsx)(`div`,{className:`cvs-error`,role:`alert`,children:`Video export needs an approved open video codec (AV1/VP9/VP8) and Opus audio. Try the current Chrome, Edge, or Firefox.`}),T&&(0,q.jsxs)(`div`,{className:`cvs-progress`,role:`status`,children:[Ee,V&&(0,q.jsx)(`em`,{className:`cvs-paused`,children:`Paused while this window is in the background — come back to it and the render picks up where it left off.`})]}),O&&(0,q.jsxs)(`div`,{className:`cvs-result`,role:`status`,children:[(0,q.jsxs)(`strong`,{children:[`Ready · `,O.width,`×`,O.height]}),(0,q.jsxs)(`span`,{children:[he(O.durationMs),` · `,(O.blob.size/1048576).toFixed(1),` MB`]})]}),(0,q.jsx)(`div`,{className:`shm-actions`,children:O?(0,q.jsx)(`button`,{type:`button`,className:`shm-btn shm-btn-primary`,onClick:()=>{G.current=null,_(O.blob,Te,()=>void O.dispose?.()),k(null),l(`Saved to your downloads`,`good`),n?.()},children:`↓ Download video`}):Y?(0,q.jsx)(`button`,{type:`button`,className:`shm-btn`,onClick:()=>W.current?.abort(),children:`Cancel`}):(0,q.jsx)(`button`,{type:`button`,className:`shm-btn shm-btn-primary`,disabled:!p.length||De||!be,onClick:()=>void Ce(),children:A?`Retry ${d.size} video`:`Create ${d.size} video`})})]}),(0,q.jsx)(`div`,{className:`shm-stage`,children:(0,q.jsxs)(`div`,{className:`shm-frame`,"data-aspect":`16:9`,children:[ye?(0,q.jsx)(`canvas`,{ref:ve,className:`cvs-monitor`,width:de,height:fe,role:`img`,"aria-label":`The frames being rendered`}):F?(0,q.jsx)(ge,{width:we.width,height:we.height,children:(0,q.jsx)(se,{scene:S,options:d,glide:!X})}):(0,q.jsx)(`div`,{className:`cvs-stage`,"data-aspect":`16:9`,children:(0,q.jsx)(`div`,{className:`cvs-empty`,role:`status`,children:`Preparing preview…`})}),Z&&(0,q.jsx)(`div`,{className:`shm-controls`,children:(0,q.jsx)(`button`,{type:`button`,className:`shm-sound`,"data-on":z,onClick:()=>B(e=>!e),"aria-pressed":z,title:z?`Play preview`:`Pause preview`,children:z?(0,q.jsx)(o.play,{style:{width:17,height:17}}):(0,q.jsx)(o.pause,{style:{width:17,height:17}})})})]})}),N&&(0,q.jsx)(`div`,{className:`cvs-capture-host`,"data-size":d.size,"aria-hidden":`true`,inert:!0,children:(0,q.jsx)(se,{scene:S,options:d,frameRef:e=>{K.current=e}})})]})}export{J as ConversationVideoStudio};
@@ -1 +0,0 @@
1
- import{r as e}from"./useDashboardLoop-ifcuVRo-.js";function t(){return e(),null}export{t as DashboardLoopRuntime};
@@ -1 +0,0 @@
1
- import"./ReplayCard-B6NYiYzQ.js";import"./TopicCanvas-Bw4bMFpe.js";import"./CanvasSkeleton-BmGjJHUQ.js";