@mavea/mavea 2.2.0 → 2.2.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.
- package/CHANGELOG.md +26 -0
- package/dist/.vite/manifest.json +354 -354
- package/dist/assets/{AnnotationLayer-HanjTRYY.js → AnnotationLayer-CzXCVZCu.js} +1 -1
- package/dist/assets/{AppCommandPalette-DBiuHUNL.js → AppCommandPalette-D6904cc9.js} +1 -1
- package/dist/assets/{CheckLogRail-CfoGgTqv.js → CheckLogRail-CeRhbIwa.js} +1 -1
- package/dist/assets/{ConversationVideoStudio-CEi_cgBR.js → ConversationVideoStudio-Cyu-M9Us.js} +1 -1
- package/dist/assets/{CourseLessonReader-CaLT_Y6N.js → CourseLessonReader-BvTabDPT.js} +2 -2
- package/dist/assets/{CoursesApp-IfWCeml5.js → CoursesApp-B8kZ6pFr.js} +2 -2
- package/dist/assets/{DashPresent-T7I-lAng.js → DashPresent-Dr0LLNnz.js} +1 -1
- package/dist/assets/{DashboardDetail-BhRSDenD.js → DashboardDetail-B5JZ6fRz.js} +2 -2
- package/dist/assets/{DashboardLoopGate-DBVAR7IS.js → DashboardLoopGate-UHcbTCXN.js} +2 -2
- package/dist/assets/DashboardLoopRuntime-BZutKupS.js +1 -0
- package/dist/assets/{DashboardsApp-C_awJ3hM.js → DashboardsApp-DzVa4Nqd.js} +2 -2
- package/dist/assets/{DeepZoomApp-C-66OasV.js → DeepZoomApp-CN8ZKeS4.js} +1 -1
- package/dist/assets/{DelegatePanel-DaJTDkYu.js → DelegatePanel-DO7J_rk_.js} +1 -1
- package/dist/assets/{DemoGallery-B9F7SUzp.js → DemoGallery-DMQP4JAa.js} +1 -1
- package/dist/assets/{DropSelect-IBjV5Ol1.js → DropSelect-BVDNR47E.js} +1 -1
- package/dist/assets/{ExportModal-gckBiikq.js → ExportModal-BVsirsNU.js} +1 -1
- package/dist/assets/{ExtractionPreview-DDOkCH9u.js → ExtractionPreview-872OE2ZI.js} +1 -1
- package/dist/assets/{FeatureUseNotice-BfnZH8Vt.js → FeatureUseNotice-BNDajs0p.js} +1 -1
- package/dist/assets/{FlagshipCommandPalette-CYQdl3Zu.js → FlagshipCommandPalette-mKkMVsza.js} +1 -1
- package/dist/assets/{FlagshipShowcase-CFMmbeff.js → FlagshipShowcase-CL_KWgKn.js} +1 -1
- package/dist/assets/{FlashcardsApp-KJ1bmlbp.js → FlashcardsApp-COYviD1h.js} +1 -1
- package/dist/assets/GalleryApp-B5z9rsrO.css +1 -0
- package/dist/assets/{GalleryApp-Dh8Nc_So.js → GalleryApp-D96R7Hdy.js} +2 -2
- package/dist/assets/{HonestByDesign-C3LTj4Bx.js → HonestByDesign-DOg91fEf.js} +1 -1
- package/dist/assets/{HowItWorks-C5Dqqvl-.js → HowItWorks-D4lHSwEb.js} +1 -1
- package/dist/assets/{LegalApp-DYVJIUyF.js → LegalApp-BSPhYvKz.js} +1 -1
- package/dist/assets/{LegalMarkdownDocument-CbuQ-pLN.js → LegalMarkdownDocument-DDUOgn72.js} +1 -1
- package/dist/assets/{LegalPageShell-CoEyiZGz.js → LegalPageShell-DSbe8dTr.js} +1 -1
- package/dist/assets/{LibraryOverlay-TQnxY9R8.js → LibraryOverlay-CEhVoSyv.js} +1 -1
- package/dist/assets/{LiveApp-DRnphsFA.js → LiveApp-DtpM4tO0.js} +4 -4
- package/dist/assets/{LiveSettings-Cz3XSqv8.js → LiveSettings-C7luyoWU.js} +1 -1
- package/dist/assets/{MindMapViewerDrawer-AUJlLC2R.js → MindMapViewerDrawer-DxcjLJzB.js} +1 -1
- package/dist/assets/{MindShape-BbuVOTaR.js → MindShape-DhEmAQeq.js} +1 -1
- package/dist/assets/{PinToDashboard-BdXI7oo9.js → PinToDashboard-CQHDENt1.js} +1 -1
- package/dist/assets/{PlanReview-CGRvSRAt.js → PlanReview-f7EY7XTc.js} +1 -1
- package/dist/assets/{PresentationDeck-CoPmOr2f.js → PresentationDeck-Bo1BVx73.js} +1 -1
- package/dist/assets/{PrismApp-DPECS285.js → PrismApp-CBr8XpUt.js} +2 -2
- package/dist/assets/{PrismBriefingPlayer-BvpG7oZs.js → PrismBriefingPlayer-qNjVbmUq.js} +2 -2
- package/dist/assets/{PrismOverlay-c8rcvt4V.js → PrismOverlay-L_lLIH_1.js} +3 -3
- package/dist/assets/{PrismWorkbench-BEaD7Arj.js → PrismWorkbench-DK-1IY4A.js} +1 -1
- package/dist/assets/{PrivacyApp-_O_MR088.js → PrivacyApp-DT8wZumn.js} +1 -1
- package/dist/assets/{ReplayCard-IN-ilb2E.js → ReplayCard-BQr6DWYi.js} +2 -2
- package/dist/assets/{ReplayOverlay-ZRjFP-zf.js → ReplayOverlay-CRVixwg2.js} +1 -1
- package/dist/assets/{RippleApp-D_Gd8Lw8.js → RippleApp-CMY2OCRm.js} +2 -2
- package/dist/assets/{RippleOverlay-vP2KxTiI.js → RippleOverlay-Dwi8Ir43.js} +2 -2
- package/dist/assets/{SeeDontRead-BmUyUai5.js → SeeDontRead-BkeAv1Jd.js} +1 -1
- package/dist/assets/{ShareModal-_KYCohqO.js → ShareModal-DVwc57KT.js} +2 -2
- package/dist/assets/{ShipCourse--ajDej06.js → ShipCourse-BNEPgsV5.js} +1 -1
- package/dist/assets/{SignatureLoop-DDw2gtQ_.js → SignatureLoop-C9GvENvP.js} +1 -1
- package/dist/assets/{SynthesisApp-CilzogOF.js → SynthesisApp-BPAT6v7a.js} +2 -2
- package/dist/assets/{SynthesisOverlay-CAK5h0hB.js → SynthesisOverlay-u_W105hD.js} +1 -1
- package/dist/assets/{TemplatePicker-3w18ViSc.js → TemplatePicker-CAC4ggbJ.js} +1 -1
- package/dist/assets/{TermsApp-BfTGOTq6.js → TermsApp-BlyUsTrJ.js} +1 -1
- package/dist/assets/{TopicCanvas-DSCNWNjv.js → TopicCanvas-CyBGLgb0.js} +2 -2
- package/dist/assets/{TourPrism-Y47m-KGq.js → TourPrism-Cn2YHIwh.js} +1 -1
- package/dist/assets/{TrackerTile-LXFQXcvH.js → TrackerTile-Ds3ks6Bh.js} +2 -2
- package/dist/assets/{TwoSurfaces-CSpKrgfJ.js → TwoSurfaces-cdP8bAG9.js} +1 -1
- package/dist/assets/{WorldOverlay-D5FWgYe3.js → WorldOverlay-DPkQobVE.js} +1 -1
- package/dist/assets/{WowFeatures-e6mkftpD.js → WowFeatures-BBtcWAOz.js} +1 -1
- package/dist/assets/{ZoomDeck-CC9zXPxF.js → ZoomDeck-Cdvkvo2H.js} +1 -1
- package/dist/assets/{audioTrack-w1tZwSoU.js → audioTrack-W_18XwGZ.js} +1 -1
- package/dist/assets/canvas-BX595EVB.js +1 -0
- package/dist/assets/{capture-Bomj_Egy.js → capture-Dyff_zSz.js} +1 -1
- package/dist/assets/{confirmAdd-CUFiPNWz.js → confirmAdd-D_hDIeaD.js} +1 -1
- package/dist/assets/{dashboardEvents-PktCbV72.js → dashboardEvents-BV0Ly6No.js} +1 -1
- package/dist/assets/{deepen-Dz4yTyJs.js → deepen-D8kPrlU5.js} +1 -1
- package/dist/assets/docs-6X4Ki_cV.js +1 -0
- package/dist/assets/{effort-BKGxLYoq.js → effort-QeWrMtZt.js} +1 -1
- package/dist/assets/{generateBeats-BjWC2fwl.js → generateBeats-Da9RmZke.js} +1 -1
- package/dist/assets/{generateLive-BLajGcNK.js → generateLive-CDIkclO4.js} +1 -1
- package/dist/assets/{index-CKRjGbeR.js → index-BMeoXWPR.js} +3 -3
- package/dist/assets/{kokoro-B-rc224u.js → kokoro-DcP-u0Tl.js} +1 -1
- package/dist/assets/{loader-BiYFMeRS.js → loader-BRfSnl9t.js} +2 -2
- package/dist/assets/{notes-nfocTnUv.js → notes-BDCTTA87.js} +1 -1
- package/dist/assets/{perfProbe-BqMK4N56.js → perfProbe-ssw0AtWX.js} +1 -1
- package/dist/assets/{pin-IyE46GaQ.js → pin-Bic4-gim.js} +1 -1
- package/dist/assets/{portal-C2b5NoMN.js → portal-Dpb34d3-.js} +1 -1
- package/dist/assets/{prewarm-Pvdu5Jt0.js → prewarm-xdXDmF8B.js} +1 -1
- package/dist/assets/{quietHours-lWcjQ2Iu.js → quietHours-uFS7n8N6.js} +1 -1
- package/dist/assets/{registry-BD1Zyd46.js → registry-BV02ROnH.js} +1 -1
- package/dist/assets/{registry-OUL5YJry.js → registry-BWx2f_wi.js} +1 -1
- package/dist/assets/{registry-BJFqryP_.js → registry-Bs5HUWIJ.js} +1 -1
- package/dist/assets/registry-CdPShFc3.js +1 -0
- package/dist/assets/{registry-BiT0eNZb.js → registry-DNIasVGX.js} +1 -1
- package/dist/assets/{registry-BTUHr4mQ.js → registry-DueizAoA.js} +1 -1
- package/dist/assets/{registry-CnmuVlAA.js → registry-PAcazQzL.js} +1 -1
- package/dist/assets/{relate-ZHm-ZvaR.js → relate-BHJl3RaA.js} +1 -1
- package/dist/assets/{replay-DBeCo_vn.js → replay-DoRQJHjZ.js} +1 -1
- package/dist/assets/{select-CejTsgpx.js → select-StjZ4ZRN.js} +1 -1
- package/dist/assets/shard010-Bal9PeRL.js +1 -0
- package/dist/assets/shard049-C4_IyApZ.js +1 -0
- package/dist/assets/{useDashboardLoop-SPlr1Mrm.js → useDashboardLoop-DEE_sLT0.js} +1 -1
- package/dist/assets/{walkSync-BtO3jsqQ.js → walkSync-CRhkAQFu.js} +1 -1
- package/dist/demo-assets/CREDITS.md +36 -0
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/DashboardLoopRuntime-B55z8L4b.js +0 -1
- package/dist/assets/GalleryApp-B4KBdNyu.css +0 -1
- package/dist/assets/canvas-BRGFkCD-.js +0 -1
- package/dist/assets/docs-B2aDtm5K.js +0 -1
- package/dist/assets/registry-BmjYillB.js +0 -1
- package/dist/assets/shard010-CQfR6lnk.js +0 -1
- package/dist/assets/shard049-hPaNN2sL.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={countdown:{title:`Time to decide`,icon:`clock`,target:`2026-06-24T17:00:00`,label:`Brightline needs your answer by Tuesday 5pm`,dueWhat:`A yes or no on the offer (a short email is fine)`,consequence:`After this the offer may be released to the next candidate.`,footer:`Need longer? Asking for 48 more hours is normal — most teams say yes.`},blanks:{title:`The parts only you can answer`,icon:`spark`,iconColor:`var(--presence)`,intro:`I've weighed everything I can. Two or three things are yours to fill in.`,slots:[{key:`dealbreaker`,label:`Your hard no`,prompt:`What would make this offer an automatic no?`,kind:`text`,placeholder:`e.g. no relocation help`},{key:`decide_by`,label:`Decide by`,prompt:`When do you actually have to give an answer?`,kind:`date`,accent:`var(--warning)`},{key:`energy`,label:`Energy for a change`,prompt:`How much capacity do you have for a job change right now?`,kind:`choice`,options:[`Low`,`Some`,`Plenty`]}]},reframecard:{title:`A gentler take`,thought:`I bombed that interview, so I am clearly not cut out for this role.`,distortion:`all-or-nothing`,reframe:`One hard interview is a single data point, not a verdict on your whole career — you answe…`,footer:`Notice the jump from <b>one moment</b> to <b>a whole identity</b> — that is the part wort…`},talktrack:{title:`How to open the resignation call`,icon:`mic`,totalTime:`~60s`,lines:[{say:`Thanks for making time, I wanted to tell you this directly rather than over email.`,beat:`warm, steady`,note:`Sets the tone before the news lands.`},{say:`I have decided to move on, and my last day will be two weeks from today.`,beat:`pause here`,note:`Say the date plainly, then stop talking.`},{say:`This was a hard call. I have learned a lot here and I am grateful for it.`,beat:`sincere`},{say:`I want the handover to go smoothly, so let us plan the next two weeks together.`,beat:`~15s`,note:`Ends on partnership, not apology.`}],footer:`Let the silences sit. You do not owe a full explanation, only a clear decision and a clea…`},resume:{name:`John Smith`,title:`Senior Product Manager`,icon:`doc`,iconColor:`var(--presence)`,contact:[`john.smith@example.com`,`Austin, TX`,`example.com/in/johnsmith`],summary:`Product leader with eight years in B2B SaaS, the last three managing a team of five. Led …`,experience:[{role:`Senior Product Manager`,org:`Meridian Analytics`,start:`2022`,location:`Austin, TX`,bullets:[`Led the pricing-model rework that took net revenue retention from 96% to 114%.`,`Grew the team from two to five PMs and stood up a quarterly roadmap review.`,`Owned the platform API surface used by 40+ enterprise integrations.`]},{role:`Product Manager`,org:`Northwind Labs`,start:`2019`,end:`2022`,location:`Remote`,bullets:[`Shipped the self-serve onboarding flow that cut time-to-first-value from 9 days to 36 hou…`,`Ran discovery for the mobile app, now 30% of monthly active usage.`]},{role:`Associate Product Manager`,org:`Fieldstone Software`,start:`2017`,end:`2019`,location:`Chicago, IL`,bullets:[`Owned the reporting-module roadmap for the mid-market tier.`]}],education:[{school:`University of Illinois at Urbana-Champaign`,credential:`B.S. Industrial Engineering`,start:`2013`,end:`2017`,detail:`Minor in Computer Science`}],skills:[`Product strategy`,`Pricing & packaging`,`SQL`,`Roadmapping`,`A/B testing`],footer:`Kept current from your LinkedIn export, in case the new role wants it this week.`},understand:{title:`What I learned about your studio`,conf:`strong`,items:[{text:`You're a <b>branding & web design studio</b> selling to other businesses.`,source:`/about`},{text:`You work in <b>projects with stages</b>, pitch, active, delivered.`,source:`/work`},{text:`Leads come in through a <b>contact form</b> and referrals.`,source:`/contact`},{text:`You bill <b>per project</b>, not hourly.`,source:`/pricing`}]},schema:{title:`The data model I'll build`,entities:[{name:`Company`,color:`var(--presence)`,badge:`B2B`,fields:[{name:`name`,type:`text`,key:!0},{name:`industry`,type:`text`},{name:`website`,type:`url`}]},{name:`Contact`,color:`var(--insight)`,fields:[{name:`name`,type:`text`,key:!0},{name:`email`,type:`email`},{name:`company`,type:`→ Company`}]},{name:`Project`,color:`var(--warning)`,fields:[{name:`title`,type:`text`,key:!0},{name:`stage`,type:`enum`},{name:`value`,type:`money`}]},{name:`Activity`,color:`var(--presence-soft)`,fields:[{name:`type`,type:`enum`},{name:`note`,type:`text`},{name:`contact`,type:`→ Contact`}]}],relations:[{from:`Company`,label:`has many`,to:`Contacts`},{from:`Contact`,label:`has many`,to:`Projects`},{from:`Project`,label:`logs`,to:`Activities`}],footer:`Mirrors how you already work, projects with stages, not generic “deals.”`},buildprog:{title:`Building it`,steps:[{label:`Created the data model`,sub:`4 tables, relationships wired`,status:`done`},{label:`Generated 5 screens`,sub:`from your stages + fields`,status:`done`},{label:`Imported sample data`,sub:`8 leads pulled from your site`,status:`active`},{label:`Connect your contact form`,sub:`needs your permission`,status:`todo`}],footer:`Everything's a draft on your private workspace until you say go.`}};export{e as E};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/liveSchema-eKgFc5D0.js","assets/icons-gLFQTv74.js","assets/jsx-runtime-DeHZSEgm.js","assets/rolldown-runtime-DkW27tQK.js","assets/safeImageUrl-BINWXOTz.js","assets/empty-D51uhW0E.js","assets/catalog-BHjl-1uH.js","assets/sourceHost-BV3t2XDb.js","assets/spokenText-Dy-GZvZV.js","assets/annotations-CftUUB13.js","assets/catalog-vLsIS_Na.js","assets/preload-helper-CiWYd9n-.js","assets/facts-CNQz8OQz.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{c as a,i as o}from"./http-Bqk6nJiH.js";import{i as s}from"./number-zqlPMliA.js";import{E as c,G as l,H as u,L as d,P as f,U as p,V as m,_ as h,b as g,m as _,p as v,s as y,v as b,y as x,z as ee}from"./store-D16dGt7I.js";import{t as te}from"./providers-CPhoN8j0.js";import{n as S,u as C}from"./useLiveConfig-CvOQTr0s.js";import{t as ne}from"./json-J4Y32_i9.js";import{i as w,n as T,r as E}from"./ledger-DHS2di3l.js";import{d as re,i as D,l as O,o as k,u as A}from"./format-BkvssSOr.js";import{t as j}from"./dataPending-DGdCvY5Y.js";import{t as M}from"./now-C9-UAzTC.js";import{n as ie,t as ae}from"./predictions-CkVKHq-5.js";import{t as N}from"./notify-Bz4wuE4T.js";import{a as oe,i as se,r as ce,t as le,u as ue}from"./dashboardEvents-PktCbV72.js";var P=t(),de=n(),fe=`mavea-dashboard-scheduler`;function pe(){if(typeof navigator>`u`)return null;let e=navigator.locks;return typeof e?.request==`function`?e:null}async function me(e){let t=pe();if(!t){await e();return}try{await t.request(fe,{ifAvailable:!0},async t=>{t&&await e()})}catch{await e()}}function he(e){return new Set(e.toLowerCase().replace(/[^a-z0-9 ]/g,` `).replace(/\s+/g,` `).trim().split(` `).filter(e=>e.length>3))}function F(e){return e.replace(/\s+/g,` `).trim().toLowerCase()}var ge={WATCHING:`watching`,CLEAR:`clear`,TRIGGERED:`triggered`,AWAITING:`awaiting`},_e={ORIGIN:`origin`,ADDED:`added`,LINKED:`linked`},ve={CLEAR:1,WATCHING:.75,TRIGGERED:0,AWAITING:0};function ye(e){let t=e.tripwires.filter(e=>e.state!==`AWAITING`);if(t.length===0)return null;let n=t.reduce((e,t)=>e+ve[t.state],0);return Math.round(100*n/t.length)}function be(e){return e===null?``:e>=80?`Tracking well`:e>=55?`Holding, with risks`:e>=30?`Slipping`:`Lines are breaking`}var xe=new Set([`thesis`,`alignmentgauge`,`standingalerts`,`sourceslineage`]);function Se(e){let t=e.block.type;return xe.has(t)?!0:!!e.metricId&&t===`insight`}function Ce(e,t){let n=t.block.type;if(!xe.has(n)){if(t.metricId&&n===`insight`){let n=e.metrics.find(e=>e.id===t.metricId);if(n){let e=n.lastValue===null?`—`:n.lastRaw??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:ge[n.state]}:{}};return{...t.block,props:i}}if(n===`alignmentgauge`){let n=ye(e),r={pct:n,band:be(n)};return{...t.block,props:r}}if(n===`standingalerts`){let n={alerts:e.tripwires.map(e=>({label:e.label,state:ge[e.state]}))};return{...t.block,props:n}}let i={rows:e.sources.map(e=>({kind:_e[e.kind],label:e.title,...e.contributed?{contributed:e.contributed}:{}}))};return{...t.block,props:i}}var we={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 I(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function L(e){return Array.isArray(e)?e:[]}function R(e){return typeof e==`string`?e.trim():typeof e==`number`&&Number.isFinite(e)?String(e):typeof e==`boolean`?e?`yes`:`no`:``}function z(e,...t){for(let n of t){let t=R(e[n]);if(t)return t}return``}function Te(e){if(!I(e))return R(e);let t=z(e,`text`,`label`,`title`,`name`,`item`);if(t){let n=Object.entries(e).filter(([e])=>![`text`,`label`,`title`,`name`,`item`].includes(e)).map(([,e])=>R(e)).filter(Boolean);return n.length?`${t} — ${n.join(` — `)}`:t}return Object.values(e).map(R).filter(Boolean).join(` — `)}function Ee(e,t){let n=I(t)?t:{};switch(e){case`metric`:{let e=s(n.value??n.number??n.amount??t);if(e===null)return null;let r=z(n,`raw`,`display`,`formatted`);return{kind:`metric`,value:e,...r?{raw:r}:{}}}case`series`:{let e=L(n.points??n.data??n.series).map(e=>{let t=I(e)?e:{},n=z(t,`label`,`name`,`x`,`when`,`date`),r=s(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=L(n.items??n.list??n.entries??t).map(Te).filter(Boolean);return e.length?{kind:`list`,items:e}:null}case`table`:{let e=L(n.rows??n.data??t),r=L(n.columns??n.headers??n.cols).map(R).filter(Boolean);!r.length&&I(e[0])&&(r=Object.keys(e[0]).map(R));let i=e.map(e=>Array.isArray(e)?e.map(R):I(e)?r.map(t=>R(e[t])):[]).filter(e=>e.some(Boolean));return r.length&&i.length?{kind:`table`,columns:r,rows:i}:null}case`event`:{let e=L(n.events??n.items??t).map(e=>{let t=I(e)?e:{},n=z(t,`title`,`name`,`event`,`label`);if(!n)return null;let r=z(t,`when`,`date`,`time`,`at`,`start`),i=z(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 De={list:`list`,checklist:`list`,timeline:`event`,datatable:`table`,standings:`table`,chart:`series`,bars:`series`};function B(e){return De[e]??null}function V(e,t){return e.raw??O(String(e.value),t)}function Oe(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:V(t,r),conf:`strong`}:null;case`kpi`:return t.kind===`metric`?{...a,items:[{label:i||`Now`,value:V(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 ke(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 Ae(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 je(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 Me(e,t,n){return t===null?`AWAITING`:Ae(e.comparator,t,n,e.threshold)?`TRIGGERED`:je(e.comparator,t,e.threshold)?`WATCHING`:`CLEAR`}function H(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=Me(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 Ne(e,t){return e.nextDataAt<=t||e.oneShotAt!==void 0&&e.oneShotAt<=t}function U(e){return e.oneShotAt===void 0?e.nextDataAt:Math.min(e.nextDataAt,e.oneShotAt)}function Pe(e,t=Date.now(),n=4){return e.filter(e=>Ne(e,t)).sort((e,t)=>U(e)-U(t)).slice(0,n)}function Fe(e,t=Date.now()){return e.filter(e=>e.nextAiAt<=t).sort((e,t)=>e.nextAiAt-t.nextAiAt)[0]??null}function W(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 G(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 K(e,t){return(e.sources?.length??0)>0||G(t).length>0}function Ie(e){return`- VALUE "${e.label}" — ${e.query}`}function Le(e,t,n){let r=B(e.block.type);return r?`- DATA #${t} [${r}] ${e.refreshQuery}\n return EXACTLY: ${we[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 Re(){return{values:{},widgets:{}}}function ze(e){return{metrics:e.metrics.filter(e=>e.query.trim()!==``&&!e.blankKey),targets:e.widgets.filter(e=>!!e.refreshQuery?.trim()&&!Se(e))}}function Be(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 Ve(e,t,n){let r=n.reduce((e,t)=>e+(B(t.block.type)?300:1200),0);return 400+t.length*120+r+(e.prediction?150:0)}var He=12e3;function q(e){let t=[],n=1200;for(let r of e){let{metrics:e,targets:i}=ze(r);if(e.length===0&&i.length===0)continue;let a=Ve(r,e,i);if(t.length>0&&n+a>He)break;n+=a,t.push({d:r,metrics:e,targets:i})}return t}function Ue(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 We(e,t,n){let r=[...e.metrics.map(Ie),...e.targets.map((e,t)=>Le(e,t,n(e.block.type))),...e.d.prediction?[`- PREVIOUS EXPECTATION (made ${Ue(e.d.prediction.at,t)}): "${e.d.prediction.text}" — grade it.`]:[]];return`DASHBOARD ${e.d.id} "${e.d.title}"\n${r.join(`
|
|
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{c as a,i as o}from"./http-Bqk6nJiH.js";import{i as s}from"./number-zqlPMliA.js";import{E as c,G as l,H as u,L as d,P as f,U as p,V as m,_ as h,b as g,m as _,p as v,s as y,v as b,y as x,z as ee}from"./store-D16dGt7I.js";import{t as te}from"./providers-CPhoN8j0.js";import{n as S,u as C}from"./useLiveConfig-CvOQTr0s.js";import{t as ne}from"./json-J4Y32_i9.js";import{i as w,n as T,r as E}from"./ledger-DHS2di3l.js";import{d as re,i as D,l as O,o as k,u as A}from"./format-BkvssSOr.js";import{t as j}from"./dataPending-DGdCvY5Y.js";import{t as M}from"./now-C9-UAzTC.js";import{n as ie,t as ae}from"./predictions-CkVKHq-5.js";import{t as N}from"./notify-Bz4wuE4T.js";import{a as oe,i as se,r as ce,t as le,u as ue}from"./dashboardEvents-BV0Ly6No.js";var P=t(),de=n(),fe=`mavea-dashboard-scheduler`;function pe(){if(typeof navigator>`u`)return null;let e=navigator.locks;return typeof e?.request==`function`?e:null}async function me(e){let t=pe();if(!t){await e();return}try{await t.request(fe,{ifAvailable:!0},async t=>{t&&await e()})}catch{await e()}}function he(e){return new Set(e.toLowerCase().replace(/[^a-z0-9 ]/g,` `).replace(/\s+/g,` `).trim().split(` `).filter(e=>e.length>3))}function F(e){return e.replace(/\s+/g,` `).trim().toLowerCase()}var ge={WATCHING:`watching`,CLEAR:`clear`,TRIGGERED:`triggered`,AWAITING:`awaiting`},_e={ORIGIN:`origin`,ADDED:`added`,LINKED:`linked`},ve={CLEAR:1,WATCHING:.75,TRIGGERED:0,AWAITING:0};function ye(e){let t=e.tripwires.filter(e=>e.state!==`AWAITING`);if(t.length===0)return null;let n=t.reduce((e,t)=>e+ve[t.state],0);return Math.round(100*n/t.length)}function be(e){return e===null?``:e>=80?`Tracking well`:e>=55?`Holding, with risks`:e>=30?`Slipping`:`Lines are breaking`}var xe=new Set([`thesis`,`alignmentgauge`,`standingalerts`,`sourceslineage`]);function Se(e){let t=e.block.type;return xe.has(t)?!0:!!e.metricId&&t===`insight`}function Ce(e,t){let n=t.block.type;if(!xe.has(n)){if(t.metricId&&n===`insight`){let n=e.metrics.find(e=>e.id===t.metricId);if(n){let e=n.lastValue===null?`—`:n.lastRaw??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:ge[n.state]}:{}};return{...t.block,props:i}}if(n===`alignmentgauge`){let n=ye(e),r={pct:n,band:be(n)};return{...t.block,props:r}}if(n===`standingalerts`){let n={alerts:e.tripwires.map(e=>({label:e.label,state:ge[e.state]}))};return{...t.block,props:n}}let i={rows:e.sources.map(e=>({kind:_e[e.kind],label:e.title,...e.contributed?{contributed:e.contributed}:{}}))};return{...t.block,props:i}}var we={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 I(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function L(e){return Array.isArray(e)?e:[]}function R(e){return typeof e==`string`?e.trim():typeof e==`number`&&Number.isFinite(e)?String(e):typeof e==`boolean`?e?`yes`:`no`:``}function z(e,...t){for(let n of t){let t=R(e[n]);if(t)return t}return``}function Te(e){if(!I(e))return R(e);let t=z(e,`text`,`label`,`title`,`name`,`item`);if(t){let n=Object.entries(e).filter(([e])=>![`text`,`label`,`title`,`name`,`item`].includes(e)).map(([,e])=>R(e)).filter(Boolean);return n.length?`${t} — ${n.join(` — `)}`:t}return Object.values(e).map(R).filter(Boolean).join(` — `)}function Ee(e,t){let n=I(t)?t:{};switch(e){case`metric`:{let e=s(n.value??n.number??n.amount??t);if(e===null)return null;let r=z(n,`raw`,`display`,`formatted`);return{kind:`metric`,value:e,...r?{raw:r}:{}}}case`series`:{let e=L(n.points??n.data??n.series).map(e=>{let t=I(e)?e:{},n=z(t,`label`,`name`,`x`,`when`,`date`),r=s(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=L(n.items??n.list??n.entries??t).map(Te).filter(Boolean);return e.length?{kind:`list`,items:e}:null}case`table`:{let e=L(n.rows??n.data??t),r=L(n.columns??n.headers??n.cols).map(R).filter(Boolean);!r.length&&I(e[0])&&(r=Object.keys(e[0]).map(R));let i=e.map(e=>Array.isArray(e)?e.map(R):I(e)?r.map(t=>R(e[t])):[]).filter(e=>e.some(Boolean));return r.length&&i.length?{kind:`table`,columns:r,rows:i}:null}case`event`:{let e=L(n.events??n.items??t).map(e=>{let t=I(e)?e:{},n=z(t,`title`,`name`,`event`,`label`);if(!n)return null;let r=z(t,`when`,`date`,`time`,`at`,`start`),i=z(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 De={list:`list`,checklist:`list`,timeline:`event`,datatable:`table`,standings:`table`,chart:`series`,bars:`series`};function B(e){return De[e]??null}function V(e,t){return e.raw??O(String(e.value),t)}function Oe(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:V(t,r),conf:`strong`}:null;case`kpi`:return t.kind===`metric`?{...a,items:[{label:i||`Now`,value:V(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 ke(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 Ae(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 je(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 Me(e,t,n){return t===null?`AWAITING`:Ae(e.comparator,t,n,e.threshold)?`TRIGGERED`:je(e.comparator,t,e.threshold)?`WATCHING`:`CLEAR`}function H(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=Me(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 Ne(e,t){return e.nextDataAt<=t||e.oneShotAt!==void 0&&e.oneShotAt<=t}function U(e){return e.oneShotAt===void 0?e.nextDataAt:Math.min(e.nextDataAt,e.oneShotAt)}function Pe(e,t=Date.now(),n=4){return e.filter(e=>Ne(e,t)).sort((e,t)=>U(e)-U(t)).slice(0,n)}function Fe(e,t=Date.now()){return e.filter(e=>e.nextAiAt<=t).sort((e,t)=>e.nextAiAt-t.nextAiAt)[0]??null}function W(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 G(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 K(e,t){return(e.sources?.length??0)>0||G(t).length>0}function Ie(e){return`- VALUE "${e.label}" — ${e.query}`}function Le(e,t,n){let r=B(e.block.type);return r?`- DATA #${t} [${r}] ${e.refreshQuery}\n return EXACTLY: ${we[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 Re(){return{values:{},widgets:{}}}function ze(e){return{metrics:e.metrics.filter(e=>e.query.trim()!==``&&!e.blankKey),targets:e.widgets.filter(e=>!!e.refreshQuery?.trim()&&!Se(e))}}function Be(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 Ve(e,t,n){let r=n.reduce((e,t)=>e+(B(t.block.type)?300:1200),0);return 400+t.length*120+r+(e.prediction?150:0)}var He=12e3;function q(e){let t=[],n=1200;for(let r of e){let{metrics:e,targets:i}=ze(r);if(e.length===0&&i.length===0)continue;let a=Ve(r,e,i);if(t.length>0&&n+a>He)break;n+=a,t.push({d:r,metrics:e,targets:i})}return t}function Ue(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 We(e,t,n){let r=[...e.metrics.map(Ie),...e.targets.map((e,t)=>Le(e,t,n(e.block.type))),...e.d.prediction?[`- PREVIOUS EXPECTATION (made ${Ue(e.d.prediction.at,t)}): "${e.d.prediction.text}" — grade it.`]:[]];return`DASHBOARD ${e.d.id} "${e.d.title}"\n${r.join(`
|
|
3
3
|
`)}`}function Ge(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function Ke(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(Ge(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 qe(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 Je(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 Ye=` 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 Xe(e,t,n={}){let r=Date.now(),c={ok:!0,grounded:!1,perDashboard:{},sources:[],attempts:0};if(e.length===0&&!n.briefingContext)return c;try{let c=te(t.provider),l=e.flatMap(e=>e.targets.filter(e=>!B(e.block.type))),u=new Set(l.flatMap(Be)),d=u.size>0,f=d?await i(()=>import(`./liveSchema-eKgFc5D0.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14])):null,p=e.map(e=>We(e,r,f?f.blockShapeHint:()=>null)).join(`
|
|
4
4
|
|
|
5
5
|
`),m={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`]},h=d===!1,g=Math.min(h?4e3:14e3,Math.max(h?1500:3e3,1200+e.reduce((e,t)=>e+Ve(t.d,t.metrics,t.targets),0)+(n.briefingContext?700:0))),_=M()+` 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 a name, place, brand, or borrowed term a voice would genuinely 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. Annotate sparingly — the said side is one you invent, so a wrong one makes the voice say a word WRONG. Ordinary English words and names are never annotated. `:``)+`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.`,v=`Use web search.\n\n${p}`+(n.briefingContext?`\n\nCONTEXT (already known — do not search these):\n${n.briefingContext}`:``),y=e=>c.generate({system:e?_+Ye:_,history:[],user:v,maxTokens:g,temperature:.15,thinkingLevel:e?`high`:`low`,tools:{webSearch:!0,requireSearch:!0},format:m,...d?{blockTypes:[...u],complexity:`brief`}:{}},t).then(e=>({rr:e,grounded:K(e,a(ne(e.raw)))})),b=await y(!1),x=1;!b.grounded&&e.length>0&&(b=await y(!0),x=2);let{rr:S}=b,C=a(ne(S.raw)),w=K(S,C),T=Ke(C,e),E=S.sources&&S.sources.length?S.sources:G(C),re=[...new Set(E.map(e=>k(e.url)).filter(Boolean))],D=f?f.validateLiveResponse:null,A={};for(let t of e){let e=T[t.d.id]??{},n=Re();if(w&&t.metrics.length>0){let r=a(e.values),i=new Map(Object.entries(r).map(([e,t])=>[F(e),t]));for(let e of t.metrics){let t=s(r[e.label]??i.get(F(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=B(e.block.type);if(!o)return;let s=Ee(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=Oe(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(B(e.block.type))return;let i=r[t];if(!i)return;let a=D({narration:``,title:`x`,sub:``,blocks:[i]},new Set(Be(e)),1,w,!0)?.blocks[0];a&&a.type===e.block.type&&(n.widgets[e.id]=a)})}if(w){let r=ae(e.expects);if(r&&(n.expects=r),t.d.prediction){let t=ie(e.grade);t&&(n.grade=t)}let i=qe(e.disagreement);i&&(n.disagreement=i);let a=Je(e.liveWindow);a&&(n.liveWindow=a)}A[t.d.id]=n}Object.values(A).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 ${x} attempt${x>1?`s`:``}, discarded`})`,{dashboardIds:e.map(e=>e.d.id),raw:S.raw});let j=n.briefingContext&&w&&typeof C.briefing==`string`&&C.briefing.trim()?C.briefing.trim():void 0;return{ok:!0,grounded:w,perDashboard:A,sources:E,attempts:x,...j?{briefing:j}:{}}}catch(t){console.error(`[dashboards] refreshDashboards failed`,t);let n={};for(let t of e)n[t.d.id]=Re();return{ok:!1,grounded:!1,perDashboard:n,sources:[],attempts:0,failure:ke(t)}}}function Ze(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 Qe(e){try{let t=typeof e==`string`?JSON.parse($e(e)):e,n=t?.verdict;return{text:typeof n==`string`&&n.trim()?n.trim():null,sources:Ze(t)}}catch{return{text:typeof e==`string`&&e.trim()?e.trim():null,sources:[]}}}function $e(e){let t=e.indexOf(`{`),n=e.lastIndexOf(`}`);return t>=0&&n>t?e.slice(t,n+1):e}async function J(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:M()+` 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}=Qe(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 et(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 tt(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=et(i.history);if(o!==0&&o===et(a.history))return{text:`${i.label} and ${a.label} have moved together over the last three checks.`,dashboardIds:[e.id]}}return null}function nt(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 rt=5;function it(e){if(e.cadence.data!==`15min`&&e.cadence.data!==`hourly`)return null;let t=e.metrics.find(e=>(e.history?.length??0)>=rt);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 ${rt} checks.`,dashboardIds:[e.id]}:null}function at(e,t){let n=t.note?` ${t.note}`:``;return{text:`Sources disagreed on ${t.metricLabel}: ${t.readings.join(` vs `)}.${n}`,dashboardIds:[e.id]}}var ot=432e5;function st(e,t,n){let r=n-ot;return e.some(e=>e.kind===`insight`&&e.at>=r&&e.text===t.text)}function ct(e,t,n,r=2){let i=[],a=nt(e,n);a&&i.push(a);for(let t of e){let e=tt(t);e&&i.push(e);let n=it(t);n&&i.push(n)}return i.filter(e=>!st(t,e,n)).slice(0,r)}var lt=e({checkAllDashboardsNow:()=>Ct,readDashboardNow:()=>wt,refreshDashboardNow:()=>St,runRefreshBatch:()=>$,selectTickTargets:()=>Tt,useDashboardLoop:()=>Et,useVerdictPending:()=>mt}),ut=15e3,dt=3e5;function ft(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 dt}}var Y=new Set,X=new Set,Z=`mavea-dashboard-verdict-pending`;function Q(e,t){t?X.add(e):X.delete(e);try{typeof window<`u`&&typeof CustomEvent==`function`&&window.dispatchEvent(new CustomEvent(Z,{detail:e}))}catch{}}function pt(e){return window.addEventListener(Z,e),()=>window.removeEventListener(Z,e)}function mt(e){let t=(0,de.c)(2),n;return t[0]===e?n=t[1]:(n=()=>X.has(e),t[0]=e,t[1]=n),(0,P.useSyncExternalStore)(pt,n,ht)}function ht(){return!1}function gt(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 _t=`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===_t)||T({kind:`savings`,text:_t,dashboardIds:[],searches:0})}async function bt(e,t,n,r,i,a,o=!1){let{d:s}=e,l=Object.keys(t.values).length>0||Object.keys(t.widgets).length>0?`updated`:o?`unverified`:`no-change`,u=s.metrics.map(e=>{let n=t.values[e.id];return n?{...e,lastValue:n.value}:e}),d={...s,metrics:u},{tripwires:f,newlyTriggered:p}=H(d,n),m=s.oneShotAt!==void 0&&s.oneShotAt<=a;y(s.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}:{},...m?{consumedOneShot:!0}:{}},a),p.length&&(N(d,p),T({kind:`alert`,text:`${p.map(e=>e.label).join(`, `)} crossed the line you set.`,dashboardIds:[s.id],searches:0}),d.alerts.inApp&&le({dashboardId:s.id,dashboardTitle:s.title,tripwireLabel:p[0].label})),t.disagreement&&T({kind:`insight`,text:at(s,t.disagreement).text,dashboardIds:[s.id],searches:0});let _={...s,tripwires:f},v=W(_,p,a);if(v.fire&&v.trigger&&i){Q(s.id,!0);let e=await J(_,v.trigger,r,a);Q(s.id,!1),e?c(s.id,e,a):g(s.id,a,`Mavéa couldn't get a fresh read — will try again.`),h(s.id,a),T({kind:v.trigger===`scheduled`?`check`:`alert`,text:e?e.text.slice(0,200):`Couldn't get a fresh read on ${s.title}.`,dashboardIds:[s.id],searches:1,...e?.sources?.length?{sourceCount:e.sources.length}:{}})}else v.fire&&v.trigger&&h(s.id,a);return l}async function $(e,t,n,r={}){let i=Date.now(),a={},o=q(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 l=new Map(o.map(e=>[e.d.id,p(e.d.id,i)])),f=e=>{for(let t of l.values())e(t)};if(!n)return a;let h=o.map(e=>e.d.id);j(h,!0);try{let e=await Xe(o,t,r.briefing?{briefingContext:r.briefing.context}:{});if(!e.ok){let t=e.failure??{kind:`network`},n=ft(e.failure,i);f(n=>{u(n,`search`,!1,{detail:d(t)}),m(n,{outcome:`failed`,failure:t,attempts:e.attempts})});for(let e of o)b(e.d.id,i+n),x(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=l.get(r.d.id)??null;u(s,`search`,!0,{count:e.attempts}),u(s,`sources`,e.sources.length>0,{count:e.sources.length,...e.sources.length===0?{detail:`The model answered without citing a live source.`}:{}});let d=Object.keys(o.values).length+Object.keys(o.widgets).length;u(s,`extraction`,d>0,{count:d,...d===0?{detail:`Nothing in the reply matched this tracker’s metrics or cards.`}:{}}),u(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];u(s,`saved`,f===`updated`||f===`no-change`),u(s,`tripwires`,!0),m(s,{outcome:f===`failed`?`failed`:f,attempts:e.attempts,...f===`unverified`?{failure:{kind:`ungrounded`}}:{}})}r.briefing&&e.briefing&&(oe(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=>k(e.url)))].filter(Boolean);return T({kind:`check`,text:gt(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{j(h,!1)}}async function xt(e,t,n,r){let{tripwires:i,newlyTriggered:a}=H(e);f(e.id,i,r),a.length&&(N(e,a),e.alerts.inApp&&le({dashboardId:e.id,dashboardTitle:e.title,tripwireLabel:a[0].label}));let o={...e,tripwires:i},s=W(o,a,r);if(!s.fire||!s.trigger||!n)return;Q(e.id,!0);let l=await J(o,s.trigger,t,r);Q(e.id,!1),l?c(e.id,l,r):g(e.id,r,`Mavéa couldn't get a fresh read — will try again.`),h(e.id,r),T({kind:s.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(Y.has(e))return`busy`;let t=v(e);if(!t)return`busy`;let n=C(S());if(!n.apiKey)return`no-model`;Y.add(e);try{let r=await $([t],n,!0,{manual:!0});return r[e]===`failed`?`failed`:r[e]===`unverified`?`unverified`:`done`}finally{Y.delete(e)}}async function Ct(){let e=C(S());if(!e.apiKey)return`no-model`;let t=_().filter(D),n=t.filter(e=>!Y.has(e.id));if(n.length===0)return t.length>0?`busy`:`done`;for(;n.length>0;){let t=q(n);if(t.length===0)break;let r=t.map(e=>e.d.id);r.forEach(e=>Y.add(e));let i={};try{i=await $(t.map(e=>e.d),e,!0,{manual:!0})}finally{r.forEach(e=>Y.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(X.has(e))return`busy`;let t=v(e);if(!t)return`failed`;let n=C(S());if(!n.apiKey)return`no-model`;let r=Date.now(),i=t.tripwires.find(e=>e.state===`TRIGGERED`),a=i??`scheduled`;Q(e,!0);let o;try{o=await J(t,a,n,r)}finally{Q(e,!1)}return o?c(e,o,r):g(e,r,`Mavéa couldn’t get a fresh read — try again in a moment.`),h(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=Pe(e,r).filter(e=>!i.has(e.id)),o=Fe(e,r);o&&i.has(o.id)&&(o=null);let s=A(t,n,r),c=!1;s.paused&&(c=a.some(D)||!!o,a=a.filter(e=>!D(e)),o=null);let l=q(a);return o&&l.some(e=>e.d.id===o.id)&&(o=null),{dueData:a,dueAi:o,pausedAndBlocked:c}}function Et(){let e=(0,P.useRef)(!1);(0,P.useEffect)(()=>{let t=!0,n=async()=>{if(e.current||!t||typeof document<`u`&&document.visibilityState!==`visible`)return;let n=C(S()),r=!!n.apiKey,i=Date.now(),a=_(),o=re(),s=w();ue(a,s,e=>E(s,e,i),e=>l(e,i-6048e5,i),i);for(let e of ct(a,s,i))T({kind:`insight`,text:e.text,dashboardIds:e.dashboardIds,searches:0});let{dueData:c,dueAi:u,pausedAndBlocked:d}=Tt(a,s,o.dailySearchBudget,i,Y);d&&yt(i);let f=r&&o.briefingEnabled&&ce(i);if(c.length===0&&!u){if(f&&!a.some(D)){let e=se(a,new Set);if(e){let t=await Xe([],n,{briefingContext:e});t.briefing&&(oe(t.briefing,a,i),T({kind:`briefing`,text:`Morning briefing compiled.`,dashboardIds:[],searches:1}))}}return}e.current=!0,c.forEach(e=>Y.add(e.id)),u&&Y.add(u.id);try{if(c.length>0){let e=f?{context:se(a,new Set(q(c).map(e=>e.d.id))),allDashboards:a}:void 0;await $(c,n,r,e?{briefing:e}:{})}u&&await xt(u,n,r,i)}finally{c.forEach(e=>Y.delete(e.id)),u&&Y.delete(u.id),e.current=!1}},r=()=>{me(n).catch(e=>{console.error(`[dashboards] scheduled tick failed`,e)})},i=window.setInterval(r,ut),a=()=>{document.visibilityState===`visible`&&r()};return document.addEventListener(`visibilitychange`,a),r(),()=>{t=!1,window.clearInterval(i),document.removeEventListener(`visibilitychange`,a)}},[])}export{mt as a,he as c,lt as i,F as l,St as n,H as o,Et as r,Ce as s,wt as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{T as e,j as t}from"./kokoro-
|
|
1
|
+
import{T as e,j as t}from"./kokoro-DcP-u0Tl.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,f=1800;function p(e){return e*2+12e3}function m(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 h(e){return new Promise(t=>setTimeout(t,e))}async function g(e,t=a){return await n(e.started,t)??!1}async function _(e,t,r=i){await Promise.all([n(e.finished,p(t)),h(r)])}function v(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)})}function y(e){let t=e;return typeof t.getAnimations==`function`&&t.getAnimations({subtree:!0}).some(e=>e.playState===`running`)}async function b(e,t=`.card`,i=f){await n((async()=>{await r(),await r();let n=e()?.querySelector(t)??null;for(;!n;)await r(),n=e()?.querySelector(t)??null;for(;y(n);)await r()})(),i)}async function x(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{b as a,p as c,g as d,v as f,d as i,m as l,u as n,x as o,l as r,h as s,i as t,_ as u};
|
|
@@ -85,6 +85,42 @@ Drawn in-repo for Mavéa, so no third-party license applies.
|
|
|
85
85
|
| `images/slide-placeholder.svg` | Gradient placeholder tile, slide-lab fixtures |
|
|
86
86
|
| `images/slide-placeholder-light.svg` | Light-theme variant of the placeholder gradient |
|
|
87
87
|
|
|
88
|
+
## `docs/media` — first-party captures of Mavéa itself
|
|
89
|
+
|
|
90
|
+
These ship in the npm package (`package.json` `files` lists `docs/media`) and illustrate the
|
|
91
|
+
README. They are screenshots of this application rendering its own demo fixtures, plus the mascot
|
|
92
|
+
mark, so no third-party licence attaches to the images themselves. They were reviewed on
|
|
93
|
+
2026-08-22 and are gated by `tests/credits-completeness.test.ts` from here on, because a screenshot
|
|
94
|
+
is the one asset that can quietly acquire third-party content later.
|
|
95
|
+
|
|
96
|
+
**What a new capture must be checked for**, since the file itself carries no licence metadata:
|
|
97
|
+
|
|
98
|
+
- **A map.** Tiles are OpenFreeMap / OpenMapTiles over OpenStreetMap data, and ODbL attribution is
|
|
99
|
+
MANDATORY — unlike everything else in this file. `canvas/blocks/media/MapAttribution.tsx` renders
|
|
100
|
+
it in-flow precisely so it survives a raster capture; confirm the credit line is legible in the
|
|
101
|
+
image before committing it (`trip-plan.jpg` is the worked example).
|
|
102
|
+
- **A document, photograph, or source file that is not ours.** Demo fixtures are fiction and the
|
|
103
|
+
bundled photos are CC0, so a capture of the app is clean by default — but a screenshot taken
|
|
104
|
+
against a real PDF, a real repository, or a personal account would carry that content's rights
|
|
105
|
+
into a distributed artifact.
|
|
106
|
+
|
|
107
|
+
| File | Subject |
|
|
108
|
+
| ------------------- | -------------------------------------------------------------- |
|
|
109
|
+
| `answer-ink.jpg` | An answer in the Ink template |
|
|
110
|
+
| `canvas-view.jpg` | The canvas view of a conversation |
|
|
111
|
+
| `course-lesson.jpg` | A generated course lesson |
|
|
112
|
+
| `deck-export.jpg` | The export studio previewing a slide |
|
|
113
|
+
| `deep-zoom.jpg` | Deep Zoom on a canvas |
|
|
114
|
+
| `doc-export.jpg` | The export studio previewing a document page |
|
|
115
|
+
| `doc-prism.jpg` | Prism reading the bundled public-domain NASA memorandum |
|
|
116
|
+
| `living-answer.jpg` | The living world over an answer |
|
|
117
|
+
| `repo-course.jpg` | Ripple on the fictional `acme/auth-service` worked example |
|
|
118
|
+
| `think-map.jpg` | Watch Me Think's live map |
|
|
119
|
+
| `trip-plan.jpg` | A trip itinerary — **contains a map; carries its ODbL credit** |
|
|
120
|
+
| `voice-scrub.jpg` | The voice scrubber over an answer |
|
|
121
|
+
| `mascot-dark.svg` | The Mavéa mark, dark |
|
|
122
|
+
| `mascot-light.svg` | The Mavéa mark, light |
|
|
123
|
+
|
|
88
124
|
## Hotlinked tour imagery — Wikimedia Commons, CC0 (not bundled)
|
|
89
125
|
|
|
90
126
|
The recorded tour replays reference three photos by URL from Wikimedia Commons; the files
|
package/dist/index.html
CHANGED
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
</style>
|
|
137
|
-
<script type="module" crossorigin src="/assets/index-
|
|
137
|
+
<script type="module" crossorigin src="/assets/index-BMeoXWPR.js"></script>
|
|
138
138
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-DkW27tQK.js">
|
|
139
139
|
<link rel="modulepreload" crossorigin href="/assets/react-BZJXY1be.js">
|
|
140
140
|
<link rel="modulepreload" crossorigin href="/assets/compiler-runtime-qQQXpJgv.js">
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./useDashboardLoop-SPlr1Mrm.js";function t(){return e(),null}export{t as DashboardLoopRuntime};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.vlib{background:var(--surface-deep);height:100dvh;color:var(--text-primary);font-family:var(--font);overflow-y:auto}.vlib-bar{z-index:5;background:color-mix(in oklab, var(--surface-deep) 86%, transparent);-webkit-backdrop-filter:var(--glass-blur-soft);backdrop-filter:var(--glass-blur-soft);border-bottom:1px solid var(--line-soft);padding:var(--s-lg) var(--s-2xl);position:sticky;top:0}.vlib-bar-top{justify-content:space-between;align-items:flex-end;gap:var(--s-xl);flex-wrap:wrap;max-width:1400px;margin:0 auto;display:flex}.vlib-back{appearance:none;border:1px solid var(--line);border-radius:var(--r-full);color:var(--text-secondary);cursor:pointer;font:13px/1 var(--font);padding:7px var(--s-md);transition:border-color var(--m-fast), color var(--m-fast), background var(--m-fast);white-space:nowrap;background:0 0;flex-shrink:0;align-self:center}.vlib-back:hover{background:var(--surface-glass);border-color:var(--line-strong);color:var(--text-primary)}.vlib-headline h1{letter-spacing:-.01em;margin:0;font-size:26px;font-weight:600}.vlib-subtitle{margin:var(--s-xs) 0 0;color:var(--text-muted);text-wrap:pretty;max-width:54ch;font-size:14px}.vlib-controls{align-items:center;gap:var(--s-sm);flex-wrap:wrap;flex:320px;max-width:540px;display:flex}.vlib-search{padding:var(--s-sm) var(--s-md);border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-default);color:var(--text-primary);font-size:14px;font-family:var(--font);transition:border-color var(--m-fast) var(--ease-out);outline:none;flex:220px}.vlib-search:focus{border-color:var(--presence)}.vlib-search::placeholder{color:var(--text-faint)}.vlib-variants{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-default);align-items:center;gap:6px;padding:4px;display:inline-flex}.vlib-variant{appearance:none;color:var(--text-secondary);font:12px/1 var(--font);border-radius:var(--r-sm);cursor:pointer;text-transform:capitalize;transition:background var(--m-fast) var(--ease-out), color var(--m-fast) var(--ease-out);background:0 0;border:0;padding:8px 10px}.vlib-variant:hover{color:var(--text-primary)}.vlib-variant.active{background:color-mix(in oklab, var(--presence) 16%, transparent);color:var(--text-primary)}.vlib-theme{border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-default);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;transition:border-color var(--m-fast) var(--ease-out), color var(--m-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.vlib-theme:hover{border-color:var(--line-strong);color:var(--text-primary)}.vlib-theme svg{width:18px;height:18px}.vlib-chips{max-width:1400px;margin:var(--s-md) auto 0;scrollbar-width:none;flex-wrap:nowrap;gap:6px;display:flex;overflow-x:auto}.vlib-chips::-webkit-scrollbar{display:none}.vlib-chip{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-default);color:var(--text-secondary);font-size:12.5px;font-family:var(--font);cursor:pointer;white-space:nowrap;min-height:44px;transition:border-color var(--m-fast) var(--ease-out), background var(--m-fast) var(--ease-out), color var(--m-fast) var(--ease-out);flex-shrink:0;align-items:center;gap:6px;padding:5px 11px;display:inline-flex}.vlib-chip:hover{border-color:var(--line-strong);color:var(--text-primary)}.vlib-chip.active{border-color:var(--presence);background:color-mix(in oklab, var(--presence) 14%, transparent);color:var(--text-primary)}.vlib-chip-n{color:var(--text-faint);font-size:11px}.vlib-chip.active .vlib-chip-n{color:var(--presence)}.vlib-body{max-width:1400px;padding:var(--s-2xl) var(--s-2xl) var(--s-3xl);margin:0 auto}.vlib-section{margin-bottom:var(--s-3xl)}.vlib-section-head{align-items:center;gap:var(--s-sm);margin-bottom:var(--s-lg);padding-bottom:var(--s-sm);border-bottom:1px solid var(--line-soft);display:flex}.vlib-section-head h2{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin:0;font-size:15px;font-weight:600}.vlib-count{color:var(--text-faint);background:var(--surface-elevated);border-radius:var(--r-full);padding:2px 9px;font-size:12px}.vlib-grid{gap:var(--s-xl);grid-template-columns:repeat(auto-fill,minmax(min(400px,100%),1fr));display:grid}.vlib-tile.vlib-wide{grid-column:span 2}.vlib-tile.vlib-full{grid-column:1/-1}@media (width<=900px){.vlib-tile.vlib-wide,.vlib-tile.vlib-full{grid-column:auto}}.vlib-tile{background:var(--surface-default);border:1px solid var(--line-soft);border-radius:var(--r-lg);transition:border-color var(--m-fast) var(--ease-out);content-visibility:auto;contain-intrinsic-size:auto 280px;flex-direction:column;display:flex;overflow:hidden}.vlib--mountall .vlib-tile{content-visibility:visible}.vlib-tile:hover{border-color:var(--line-strong)}.vlib-tile-head{justify-content:space-between;align-items:flex-start;gap:var(--s-sm);padding:var(--s-sm) var(--s-md);border-bottom:1px solid var(--line-soft);background:var(--surface-elevated);display:flex}.vlib-type{font-family:var(--mono);color:var(--text-primary);overflow-wrap:anywhere;min-width:0;font-size:12.5px;font-weight:600}.vlib-fam{color:var(--text-faint);text-align:right;flex-shrink:0;font-size:11px}@media (width<=600px){.vlib-audit{display:none}}@media (width<=640px){.vlib-body{padding:var(--s-lg) var(--s-md) var(--s-2xl)}.vlib-bar{padding:var(--s-md)}.vlib-bar-top{align-items:stretch}.vlib-controls{max-width:none}.vlib-search{flex-basis:100%}.vlib-variants{justify-content:space-between;width:100%}.vlib-tile-head{flex-direction:column}.vlib-fam,.vlib-flag{text-align:left}.vlib-render{padding:var(--s-md)}}.vlib-audit{height:38px;padding:0 var(--s-md);border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-default);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:border-color var(--m-fast) var(--ease-out), color var(--m-fast) var(--ease-out);flex-shrink:0;font-size:12.5px;font-weight:600}.vlib-audit:hover{border-color:var(--line-strong);color:var(--text-primary)}.vlib-audit.active{border-color:color-mix(in oklab, var(--danger) 50%, var(--line));color:var(--danger)}.vlib-flag{font-family:var(--mono);border-radius:var(--r-sm,6px);padding:1px 6px;font-size:10.5px;font-weight:600}.vlib-flag--clip{color:var(--danger);background:color-mix(in oklab, var(--danger) 14%, transparent)}.vlib-flag--scroll{color:var(--warning);background:color-mix(in oklab, var(--warning) 14%, transparent)}.vlib-tile--clip{border-color:color-mix(in oklab, var(--danger) 55%, var(--line))}.vlib-tile--scroll{border-color:color-mix(in oklab, var(--warning) 50%, var(--line))}.vlib-render{padding:var(--s-lg);min-height:160px;position:relative;overflow:hidden}.vlib-render .canvas-header,.vlib-render .context-row{display:none}.vlib-render .card-grid{display:block}.vlib-render .card-grid>[class*=col-]{width:100%}.vlib-render-error{min-height:120px;padding:var(--s-lg);border:1px solid color-mix(in oklab, var(--danger) 45%, var(--line));border-radius:var(--r-md);color:var(--danger);background:color-mix(in oklab, var(--danger) 8%, var(--surface-default));text-align:center;place-items:center;display:grid}.vlib-render--pending{min-height:220px}.vlib-canvas-pending{margin:calc(-1 * var(--s-lg))}.vlib-render--pending:after{content:"";inset:var(--s-lg);border-radius:var(--r-md);background:linear-gradient(100deg, var(--surface-elevated) 0%, var(--surface-glass) 48%, var(--surface-elevated) 100%);position:absolute}.vlib-empty{margin:var(--s-3xl) auto;text-align:center;color:var(--text-muted)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./TopicCanvas-DSCNWNjv.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={eligibilitycheck:{title:`Do you qualify for the first-time buyer down-payment grant`,icon:`proof`,overall:`depends`,requirements:[{rule:`First-time buyer (no owned home in the last 3 years)`,status:`pass`,detail:`You said you have rented for the past 6 years — clears the rule.`},{rule:`Household income under $96,000`,status:`pass`,detail:`You stated $78k combined, comfortably under the cap.`},{rule:`Complete an approved homebuyer education course`,status:`needs-info`,detail:`You have not mentioned a course, and it is required before closing.`,fix:`Finish a HUD-approved class (free, ~8 hours online) and keep the certificate.`},{rule:`Minimum credit score of 640`,status:`fail`,detail:`You mentioned a score around 615, below the 640 floor.`,fix:`Raise it ~25 points — clearing a balance or two often does it within a cycle.`}],caveat:`This weighs the published rules against what you told me — confirm the exact thresholds with the program office before you apply.`},evidencetrace:{title:`Why I flagged onboarding`,icon:`proof`,iconColor:`var(--presence)`,claim:`Confusing onboarding is the <b>top reason</b> first-month accounts churned.`,summary:`12 of 240 churned accounts`,items:[{text:`“I never figured out how to invite my team, so we gave up in week one.”`,source:`ticket #4821`,when:`Apr 12`},{text:`“The setup wizard kept looping me back to the start. Cancelled.”`,source:`cancel survey`,when:`Apr 19`},{text:`“Couldn’t connect our calendar — no clear next step after sign-up.”`,source:`ticket #4910`,when:`Apr 23`},{text:`“Too many empty screens on day one. Didn’t know where to begin.”`,source:`exit interview`,when:`May 2`},{text:`“Import failed silently and I assumed the product was broken.”`,source:`ticket #5033`,when:`May 8`}],caveat:`Self-reported in cancellation flows — weighted toward people who chose to explain why they left.`,footer:`Each line is a verbatim record from a churned account, not a summary.`},reviewsynth:{title:`What buyers say about the cashmere wrap`,rating:4.4,count:1842,distribution:[1180,410,150,60,42],loves:[{theme:`Feels genuinely luxe`,freq:`68% mention`,quote:`Softer than scarves twice the price — it actually feels special.`},{theme:`Generous, drapey size`,freq:`common`,quote:`Big enough to wrap up in on a cold flight, not a flimsy little thing.`}],complaints:[{theme:`Sheds at first`,freq:`1 in 5`,quote:`Lost a few fibers the first week, then it settled down.`},{theme:`Hand-wash only`,freq:`occasional`,quote:`Wish I could toss it in the machine — the care is fussy.`}],dealbreaker:`It must be hand-washed and laid flat — if she would not fuss over it, the machine-washable merino blend is the safer gift.`,footer:`Synthesized from 1,842 verified-purchase reviews.`},annotateddoc:{title:`The trial abstract, annotated`,icon:`doc`,iconColor:`var(--presence)`,docName:`STEP 1 · NEJM 2021 · abstract`,paragraphs:[`In this 68-week, double-blind trial, we randomly assigned 1,961 adults with a body-mass index of 30 or greater to once-weekly semaglutide (2.4 mg) or placebo, plus lifestyle intervention.`,`The mean change in body weight from baseline to week 68 was −14.9% in the semaglutide group, as compared with −2.4% with placebo. Participants who received semaglutide had greater improvements in cardiometabolic risk factors.`,`Nausea and diarrhea were the most common adverse events; they were typically transient and mild-to-moderate and subsided over time.`],highlights:[{phrase:`1,961 adults`,note:`Large, adequately powered sample for a Phase 3 obesity RCT.`,color:`var(--insight)`,author:`Sample`},{phrase:`−14.9%`,note:`The headline efficacy figure, replicated downstream in STEP 2–4.`,color:`var(--presence)`,author:`Endpoint`},{phrase:`Nausea and diarrhea`,note:`Real but tolerable, drives much of the early discontinuation.`,color:`var(--warning)`,author:`Safety`}],footer:`Click a highlight to read why it matters to the verdict.`},redline:{title:`How the abstract's claim was tightened`,icon:`edit`,iconColor:`var(--warning)`,docName:`Draft conclusion · v3 → v4`,tokens:[{text:`Semaglutide `},{del:`cures obesity`,by:`AM`},{ins:`produces clinically meaningful weight loss`,by:`AM`},{text:` and `},{del:`eliminates`,by:`ED`},{ins:`reduces`,by:`ED`},{text:` cardiovascular risk in trial populations.`}],footer:`2 deletions · 2 insertions, softening "cure" to "clinically meaningful."`},citationchain:{title:`Claim → source → sub-evidence`,icon:`link`,iconColor:`var(--presence-soft)`,root:{label:`<b>Semaglutide drives ~15% weight loss</b> at 68 weeks`,cite:`synthesis`,color:`var(--insight)`,strength:`strong`,children:[{label:`STEP 1 randomized trial`,cite:`nejm.org`,color:`var(--presence)`,strength:`strong`,children:[{label:`Table 2, mean change −14.9%`,cite:`p. 994`,strength:`strong`},{label:`Pre-registered endpoint`,cite:`NCT03548935`,strength:`strong`}]},{label:`Cochrane meta-analysis`,cite:`cochrane.org`,color:`var(--presence-soft)`,strength:`strong`,children:[{label:`Pooled across 11 RCTs`,cite:`2024`,strength:`strong`},{label:`Low heterogeneity (I²=22%)`,cite:`forest plot`,strength:`partial`}]}]},footer:`Every node traces to a primary document, expand to walk the chain.`},factcheck:{title:`The load-bearing claims, checked`,icon:`proof`,iconColor:`var(--presence)`,claims:[{claim:`Semaglutide produces ~15% mean weight loss at 68 weeks.`,verdict:`true`,confidence:96,sources:[`nejm.org`,`cochrane.org`],detail:`STEP 1 reported <mark>−14.9%</mark>; the Cochrane synthesis corroborates within 1pt.`},{claim:`Tirzepatide outperforms semaglutide on weight loss.`,verdict:`partly`,confidence:74,sources:[`nejm.org`,`jama.com`],detail:`SURMOUNT-1 (−20.9%) vs STEP 1 (−14.9%), but no head-to-head at matched doses yet.`},{claim:`GLP-1 drugs have cured the obesity epidemic.`,verdict:`false`,confidence:91,sources:[`cdc.gov`,`claims data`],detail:`Population obesity prevalence has not meaningfully fallen; reach is ~2% of eligible adults.`},{claim:`Therapy reduces major cardiovascular events.`,verdict:`true`,confidence:89,sources:[`nejm.org`],detail:`SELECT showed a <mark>20% relative MACE reduction</mark> in overweight CV patients.`}],footer:`Each verdict expands to its sources, green is replicated, amber is single-study.`},confidencemeter:{title:`Confidence in the headline number`,icon:`shield`,iconColor:`var(--insight)`,claim:`<b>~15% weight loss</b> at 68 weeks on semaglutide 2.4mg`,overall:94,segments:[{label:`RCT design`,weight:38,band:`strong`,basis:`Randomized, double-blind, placebo-controlled Phase 3.`},{label:`Replication`,weight:30,band:`strong`,basis:`Reproduced across STEP 1–4 and a Cochrane meta-analysis.`},{label:`Sample size`,weight:18,band:`strong`,basis:`n=1,961 in the anchor trial alone.`},{label:`Generalizability`,weight:14,band:`partial`,basis:`Trial adherence far exceeds real-world persistence.`}],footer:`The only soft segment is generalizing trial results to everyday use.`},highlightsnippet:{title:`The sentence everything hangs on`,icon:`quote`,iconColor:`var(--insight)`,quote:`The mean change in body weight from baseline to week 68 was −14.9% in the semaglutide group, as compared with −2.4% in the placebo group.`,phrase:`−14.9% in the semaglutide group`,source:`NEJM · STEP 1`,locator:`p. 994`,color:`var(--insight)`,footer:`Pulled verbatim, this is the primary endpoint, not a press summary.`},annotcallouts:{title:`Contact sheet · notes`,icon:`doc`,iconColor:`var(--presence)`,caption:`Day 2 selects, what made the cut and why.`,ratio:1.7777777777777777,callouts:[{x:20,y:30,label:`01 · keep`,note:`Cleanest horizon line of the morning, <b>this is the poster</b>.`,color:`var(--presence)`},{x:56,y:26,label:`02 · maybe`,note:`Nice light, but a tourist on the path. <mark>Clone-out or cut.</mark>`,color:`var(--warning)`},{x:38,y:70,label:`03 · cut`,note:`Cloud went flat here, no separation in the greens.`,color:`var(--danger)`},{x:80,y:64,label:`04 · keep`,note:`The transition frame for the hydrangea road.`,color:`var(--insight)`}],footer:`Pins map to the selects in your edit folder.`},sourcelist:{title:`Sources I kept`,icon:`doc`,iconColor:`var(--insight)`,sources:[{domain:`nejm.org`,titleText:`STEP 1: Once-Weekly Semaglutide in Adults with Overweight`,relevance:98,glyph:`N`,color:`var(--insight)`,date:`2021`,snippet:`The anchor efficacy RCT, <mark>−14.9%</mark> mean weight change.`},{domain:`nejm.org`,titleText:`SURMOUNT-1: Tirzepatide for Obesity`,relevance:95,glyph:`N`,color:`var(--insight)`,date:`2022`,snippet:`−20.9% at the 15mg dose over 72 weeks.`},{domain:`nejm.org`,titleText:`SELECT: Semaglutide and Cardiovascular Outcomes`,relevance:92,glyph:`N`,color:`var(--presence)`,date:`2023`,snippet:`20% relative reduction in major adverse CV events.`},{domain:`cochrane.org`,titleText:`GLP-1 agonists for weight management (review)`,relevance:90,glyph:`C`,color:`var(--presence-soft)`,date:`2024`},{domain:`cdc.gov`,titleText:`Adult Obesity Prevalence Maps`,relevance:78,glyph:`C`,color:`var(--text-muted)`,date:`2025`}],footer:`Ranked by relevance, three NEJM RCTs carry the efficacy claim.`},claimgrid:{title:`Claims × evidence, who backs what`,icon:`table`,iconColor:`var(--presence-soft)`,columns:[`STEP 1`,`SURMOUNT-1`,`SELECT`,`Cochrane`,`Claims data`],rows:[{claim:`~15% weight loss`,cells:[{state:`yes`,note:`−14.9% primary endpoint`},{state:`yes`,note:`Exceeds it (−20.9%)`},{state:`partial`,note:`Secondary outcome`},{state:`yes`,note:`Pooled confirmation`},{state:`na`}]},{claim:`Cardiovascular benefit`,cells:[{state:`na`},{state:`na`},{state:`yes`,note:`−20% MACE`},{state:`partial`,note:`Noted, not pooled`},{state:`na`}]},{claim:`Durable in real life`,cells:[{state:`partial`,note:`Only to 68 weeks`},{state:`partial`},{state:`na`},{state:`no`,note:`Trials ≠ adherence`},{state:`no`,note:`33% persist at 1yr`}]},{claim:`Cured obesity epidemic`,cells:[{state:`no`},{state:`no`},{state:`no`},{state:`no`},{state:`no`,note:`Prevalence flat`}]}],footer:`The bottom row is empty of green, which is exactly the headline.`},docoutline:{title:`How the report is structured`,icon:`layers`,iconColor:`var(--insight)`,docName:`GLP-1 evidence review`,activeIndex:1,sections:[{heading:`1 · The question`,loc:`p.1`,weight:6},{heading:`2 · Efficacy evidence`,loc:`p.2`,weight:40,children:[{heading:`2.1 Anchor RCT (STEP 1)`,loc:`p.2`,weight:16},{heading:`2.2 Tirzepatide comparison`,loc:`p.4`,weight:14},{heading:`2.3 Meta-analysis`,loc:`p.5`,weight:10}]},{heading:`3 · Real-world impact`,loc:`p.6`,weight:28,children:[{heading:`3.1 Adherence & persistence`,loc:`p.6`,weight:16},{heading:`3.2 Access & cost`,loc:`p.7`,weight:12}]},{heading:`4 · Verdict & caveats`,loc:`p.8`,weight:14}],footer:`The efficacy section carries the most weight, and the strongest evidence.`},docview:{title:`The method paper, the scheme I used`,icon:`doc`,iconColor:`var(--presence)`,source:`Hoffmann et al. · uploaded · 22 pp`,page:{n:7,of:22},blocks:[{kind:`h2`,text:`§4.1, Pressure-velocity coupling`},{kind:`p`,text:`We use a collocated finite-volume discretization with Rhie–Chow interpolation to suppress checkerboard pressure modes.`},{kind:`p`,text:`Stability requires the under-relaxation factors to satisfy α_p + α_u ≤ 1 on stretched meshes.`,spot:!0},{kind:`eq`,text:`α_p = 0.3 , α_u = 0.7 ⇒ α_p + α_u = 1.0`},{kind:`p`,text:`Outside this bound the continuity residual stalls rather than decays, the failure mode in run 043.`}],note:`This is the line your run 043 violated (you had α_u = 0.85). Run 044 sits exactly on the bound, which is why the residual finally <b>decays instead of stalling</b>.`,footer:`I pulled the stability condition straight from the paper and tied it to why 043 stalled and 044 converged, no re-reading 22 pages.`},pdfreader:{title:`The reference, in full`,icon:`doc`,iconColor:`var(--text-muted)`,source:`NASA CR, A First Course in CFD · public domain`,file:`/demo-assets/pdf/cfd-primer.pdf`,footer:`The actual report, embedded, scroll the real PDF for the derivations behind the scheme.`},diffviewer:{title:`Your answer, corrected`,leftLabel:`submitted`,rightLabel:`key`,lines:[{kind:`ctx`,text:`Step 1: identify the nucleophile`,oldNo:1,newNo:1},{kind:`del`,text:`Step 2: SN1, backside attack`,oldNo:2},{kind:`add`,text:`Step 2: SN2, backside attack inverts config`,newNo:2},{kind:`ctx`,text:`Step 3: name the product`,oldNo:3,newNo:3}]},clinicaltimeline:{title:`Admission timeline, Mr. Alvarez`,events:[{date:`48h ago`,type:`symptom`,label:`Fever 39.1°C, productive cough, dyspnoea on exertion`},{date:`36h ago`,type:`visit`,label:`ED presentation, SpO₂ 91% on room air`},{date:`34h ago`,type:`test`,label:`CXR ordered, right lower lobe infiltrate`},{date:`34h ago`,type:`test`,label:`Blood cultures × 2, CBC, CRP, procalcitonin`},{date:`30h ago`,type:`result`,label:`WBC 14.2, CRP 187, procalcitonin 2.1, bacterial picture`},{date:`29h ago`,type:`diagnosis`,label:`Community-acquired pneumonia, RLL, admitted`},{date:`28h ago`,type:`treatment`,label:`IV amoxicillin-clavulanate started, O₂ via NRB mask`},{date:`Now`,type:`result`,label:`Fever breaking, SpO₂ 96% on 2L nasal cannula`}]},researchsummary:{title:`GLP-1 agonists, evidence summary`,question:`Are GLP-1 receptor agonists effective and safe for long-term weight management in adults with obesity?`,method:`Cochrane systematic review + meta-analysis of 14 RCTs`,sampleSize:`~18,000 participants, follow-up 52–208 weeks`,year:`2023`,findings:[`Semaglutide 2.4 mg achieved mean body-weight reduction of 12–15% vs 2–3% for placebo.`,`All GLP-1 agonists outperformed placebo on the primary weight outcome (high certainty).`,`Cardiovascular event rates fell significantly in high-risk populations (SELECT trial).`,`Gastrointestinal side-effects (nausea, vomiting) are common but typically transient.`],conclusion:`GLP-1 agonists are the most effective pharmacotherapy for obesity currently available. Long-term benefit requires continuous use, discontinuation leads to weight regain within one year.`,limitations:`Most trials exclude people with prior GI surgery; long-term safety beyond 5 years is not yet established.`,source:`Iepsen et al. · Cochrane Database Syst Rev · 2023`},hypothesiscard:{title:`SELECT trial, primary hypothesis`,icon:`proof`,iconColor:`var(--presence)`,h0:`Semaglutide 2.4 mg does not reduce the rate of major adverse cardiovascular events (MACE) versus placebo in adults with overweight or obesity and established cardiovascular disease, without diabetes.`,h1:`Semaglutide 2.4 mg reduces the rate of MACE versus placebo in this population.`,direction:`two-tailed`,alpha:.05,variables:{iv:`Treatment arm, semaglutide 2.4 mg vs placebo`,dv:`Time to first MACE (CV death, non-fatal MI, non-fatal stroke)`},rejected:!0,footer:`HR 0.80 (95% CI 0.72–0.90), p < 0.001 — a highly significant reduction in MACE.`},paralleltext:{title:`One line, three hands`,icon:`layers`,iconColor:`var(--presence)`,caption:`Dante, Inferno I.1 — the opening tercet, original beside two canonical English renderings.`,columns:[{label:`Dante (1320)`,lang:`Italian`},{label:`Longfellow, 1867`,lang:`en`},{label:`Ciardi, 1954`,lang:`en`}],rows:[{cells:[`Nel mezzo del cammin di nostra vita`,`Midway upon the journey of our life`,`Midway in our life’s journey, I went astray`],note:`Ciardi pulls “I went astray” up from line 3 to keep the pentameter; Longfellow tracks the Italian word order.`},{cells:[`mi ritrovai per una selva oscura,`,`I found myself within a forest dark,`,`from the straight road and woke to find myself`],note:`Both keep the dark wood, but Longfellow mirrors the line break while Ciardi enjambs across it.`,diverge:!0},{cells:[`ché la diritta via era smarrita.`,`For the straightforward pathway had been lost.`,`alone in a dark wood. How shall I say`],note:`“diritta via” — the straight way — is rendered literally by Longfellow; Ciardi defers it, ending instead on the speaker’s hesitation.`,diverge:!0}],footer:`Read each row across: the same Italian line, weighed differently for <strong>meter</strong> vs <strong>literal sense</strong>.`},resume:{name:`Jordan Alvarez`,title:`Senior Product Manager`,icon:`doc`,iconColor:`var(--presence)`,contact:[`jordan.alvarez@email.com`,`Austin, TX`,`linkedin.com/in/jordanalvarez`],summary:`Product leader with eight years in B2B SaaS, the last three managing a team of five. Led the usage-based pricing rework that lifted net revenue retention 18 points.`,experience:[{role:`Senior Product Manager`,org:`Meridian Analytics`,start:`2022`,location:`Austin, TX`,bullets:[`Led the pricing-model rework that took net revenue retention from 96% to 114%.`,`Grew the team from two to five PMs and stood up a quarterly roadmap review.`,`Owned the platform API surface used by 40+ enterprise integrations.`]},{role:`Product Manager`,org:`Northwind Labs`,start:`2019`,end:`2022`,location:`Remote`,bullets:[`Shipped the self-serve onboarding flow that cut time-to-first-value from 9 days to 36 hours.`,`Ran discovery for the mobile app, now 30% of monthly active usage.`]},{role:`Associate Product Manager`,org:`Fieldstone Software`,start:`2017`,end:`2019`,location:`Chicago, IL`,bullets:[`Owned the reporting-module roadmap for the mid-market tier.`]}],education:[{school:`University of Illinois at Urbana-Champaign`,credential:`B.S. Industrial Engineering`,start:`2013`,end:`2017`,detail:`Minor in Computer Science`}],skills:[`Product strategy`,`Pricing & packaging`,`SQL`,`Roadmapping`,`A/B testing`,`Stakeholder management`,`API design`],footer:`Kept current from your LinkedIn export, in case the new role wants it this week.`},changelog:{title:`What six weeks of a source publication could look like`,icon:`doc`,iconColor:`var(--presence)`,versions:[{version:`v1.0`,date:`Wk 6`,entries:[{kind:`added`,text:`Public release: docs site and the reviewed source-available snapshot.`},{kind:`added`,text:`Maintainer-built connector catalog.`}]},{version:`v0.4`,date:`Wk 4`,entries:[{kind:`added`,text:`Soft launch to twelve design-partner teams.`},{kind:`changed`,text:`Switched the component schema to the stable v1 contract.`},{kind:`fixed`,text:`Local build no longer requires the internal package registry.`}]},{version:`v0.3`,date:`Wk 3`,entries:[{kind:`added`,text:`PolyForm Noncommercial terms, feedback policy, and legal notices.`},{kind:`deprecated`,text:`The old private-snapshot publication script.`}]},{version:`v0.2`,date:`Wk 2`,entries:[{kind:`removed`,text:`Internal-only connectors, scrubbed from the public snapshot.`},{kind:`security`,text:`Purged secrets accidentally left in the git history before the split.`}]},{version:`v0.1`,date:`Wk 1`,entries:[{kind:`added`,text:`Client and schema carved out into their own repository.`}]}],footer:`Five fictional milestones from carve-out to public source release.`},lessonplan:{title:`Today's tutoring session: reaction mechanisms`,icon:`doc`,iconColor:`var(--presence)`,subject:`Organic Chemistry`,gradeLevel:`Undergraduate · Org Chem II`,objectives:[`Distinguish SN1 from SN2 by substrate, nucleophile strength, and solvent.`,`Predict the major product and stereochemistry for a given substitution reaction.`,`Read a rate law and identify the reaction order it implies.`],materials:[`Flashcard deck`,`Practice problem set 7`,`Molecular model kit`],procedure:[{step:`Warm-up recall`,detail:`Quick flashcard pass on SN1 vs SN2 triggers.`,minutes:10},{step:`Mechanism walkthrough`,detail:`Work three mechanisms on the board, narrating each arrow-pushing step.`,minutes:25},{step:`Paired practice`,detail:`Two students per problem from set 7, then swap and check.`,minutes:20},{step:`Timed mini-mock`,detail:`Five questions, exam conditions, no notes.`,minutes:15},{step:`Debrief`,detail:`Review the two most-missed questions together.`,minutes:10}],assessment:`Exit ticket: one SN1 and one SN2 prediction, graded on mechanism arrows and stereochemistry, not just the final product.`,footer:`Built around the two gaps your last mock exposed: arrow-pushing notation and solvent effects.`},casebrief:{title:`The precedent behind that redline`,icon:`proof`,iconColor:`var(--presence)`,citation:`812 F. Supp. 2d 501 (D. Del. 2019)`,parties:{plaintiff:`Bell Fabrication, Inc.`,defendant:`Meridian Systems, LLC`},facts:`Bell signed a 24-month services agreement with a silent auto-renewal clause requiring 90 days notice to opt out. Bell missed the window by six days and was billed for a full renewal term it no longer wanted.`,issue:`Whether a 90-day auto-renewal notice window, buried in a boilerplate term clause, is enforceable against a sophisticated commercial buyer who never separately negotiated it.`,holding:`Enforceable, but only narrowly — the clause was conspicuously formatted and the buyer had counsel review the contract; the court signaled a shorter, negotiated window would likely have been required otherwise.`,reasoning:`The court weighed three things: whether the term was buried or set apart, whether the buyer had a real chance to negotiate it, and whether 90 days exceeds commercial custom (it found market practice clusters at 30–60 days). All three cut close, so it upheld the clause narrowly rather than setting a bright-line rule.`,footer:`The takeaway for §8.2: a 90-day window is defensible, but only barely, negotiating it down to 30 removes the risk entirely.`},patentclaimchart:{title:`One more diligence check: Acme's sync engine against a live patent`,icon:`table`,iconColor:`var(--presence)`,claimElements:[{id:`1.1`,text:`receiving, at a server, a stream of shipment-location updates from a plurality of mobile devices`},{id:`1.2`,text:`storing each location update in a distributed ledger replicated across at least three nodes`},{id:`1.3`,text:`detecting a conflict between two location updates for the same shipment received within a threshold time window`},{id:`1.4`,text:`automatically resolving the conflict using a timestamp-priority rule without human intervention`},{id:`1.5`,text:`pushing the resolved location to a customer-facing dashboard in real time`}],references:[`Acme's platform (accused)`,`US 9,112,233 (prior art)`],cells:[[{state:`disclosed`,quote:`Edge devices stream GPS pings to the ingest cluster every 4 seconds.`},{state:`disclosed`,quote:`Sensor readings are logged to a central event bus polled by field units.`}],[{state:`disclosed`,quote:`Every update is written to a 3-node Raft-replicated ledger before ack.`},{state:`disclosed`,quote:`Readings are mirrored to a backup store for durability.`}],[{state:`disputed`,quote:`Acme’s docs describe "duplicate suppression," which may or may not be the claimed conflict detection — worth a follow-up question.`},{state:`not-disclosed`}],[{state:`not-disclosed`},{state:`not-disclosed`}],[{state:`disclosed`,quote:`Resolved coordinates post to the live tracking map within 400ms.`},{state:`not-disclosed`}]],footer:`Acme's platform is missing element 1.4 — conflicts get flagged for manual review, not auto-resolved — so it doesn't literally practice the claim; no license carve-out needed to sign. Same gap means this reference doesn't invalidate the patent either, so revisit if Acme ever ships auto-resolution.`},storystructure:{title:`Draft: council approves bridge funding`,icon:`doc`,iconColor:`var(--presence)`,lede:`The City Council voted 5-2 Tuesday night to approve $12 million in emergency funding for a new pedestrian bridge over Route 9, after two years of delay following a fatal crossing accident.`,nutGraf:`The vote ends a contentious two-year debate that pitted residents demanding safer crossings against a council wary of the price tag. Construction is expected to begin next spring and finish by 2028, funded largely by a state safety grant secured last month.`,body:[`Council member Elena Vasquez, who sponsored the funding measure, said the vote “finally puts safety ahead of cost” after years of near-misses at the intersection.`,`The bridge will connect the Riverside neighborhood to the transit hub on the north side of Route 9, a stretch pedestrians currently cross at grade despite a 45 mph speed limit.`,`Two council members who voted no, Raymond Chu and Priya Patel, said they support the bridge in principle but wanted a competitive bid process before locking in a contractor.`,`Construction is slated to begin in April, with the city's public works department targeting a completion date in late 2027.`],background:[`The push for a bridge gained urgency after a cyclist was struck and killed at the intersection in March 2025, prompting a petition that collected more than 3,000 signatures.`,`The city considered a traffic-light-only fix in 2023 but shelved it after a traffic study found it would only reduce, not eliminate, the crossing risk.`,`The $12 million project includes an $8 million state Safe Streets grant awarded last month, with the remaining $4 million drawn from the city's capital reserve fund.`],wordCount:179,wordCountBudget:250,footer:`Inverted pyramid: the vote and its stakes lead, the who-said-what follows, history stays below the fold.`},vetpatientchart:{title:`Biscuit's first wellness exam`,icon:`doc`,iconColor:`var(--presence)`,species:`Canine`,name:`Biscuit`,breed:`Golden Retriever`,sex:`Male`,weightKg:5,vitals:[{label:`Temperature`,value:101.8,unit:`°F`},{label:`Heart rate`,value:150,unit:`bpm`},{label:`Respiratory rate`,value:24,unit:`bpm`},{label:`Body condition score`,value:`5/9`},{label:`Gum color`,value:`Pink`},{label:`Capillary refill`,value:`<2s`}],problems:[`Transient loose stool — post-adoption stress, monitoring`],footer:`All vitals normal for a 9-week Golden. The loose stool is expected from the move; call Maple Animal Care if it persists past a couple more days.`},scoutingreport:{title:`Up next: scouting Thursday's Nuggets`,icon:`chart`,iconColor:`var(--presence)`,opponent:`Denver Nuggets`,tendencies:[`Run their offense almost entirely through Jokić at the elbow, he's averaging 9 assists a game from the post.`,`Switch aggressively on the perimeter, which has bothered Golden State's off-ball movement in past meetings.`,`Struggle to defend in transition, allowing the 4th-most fast-break points in the league.`,`Lean heavily on their bench trio in the second quarter, often their most vulnerable defensive stretch.`],matchupNotes:[{label:`Pace`,note:`Denver plays slower than Golden State prefers; expect the Warriors to push tempo early rather than get pulled into a half-court grind.`},{label:`Rebounding`,note:`The Nuggets crash the offensive glass hard, Golden State needs to box out or risk giving up second-chance points.`},{label:`3-point defense`,note:`Denver ranks middle-of-the-pack defending the arc, exactly where Golden State's offense lives.`}],keyPlayers:[{name:`Nikola Jokić`,role:`C`,note:`Reigning MVP-caliber center who doubles as their point guard from the elbow. He's a step slower going left, force him that direction.`},{name:`Jamal Murray`,role:`PG`,note:`Streaky scorer who heats up in isolation late in games; live with early clock jumpers rather than switching everything off him.`},{name:`Aaron Gordon`,role:`PF`,note:`Their best transition finisher, get back on makes and misses alike.`}],footer:`A win Thursday pulls the Warriors within one game of Denver for the 2-seed, exactly the matchup the West race hinges on.`}};export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
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{t as r}from"./jsx-runtime-DeHZSEgm.js";import{n as i}from"./icons-gLFQTv74.js";import{t as a}from"./richText-BkxJhl9N.js";import{t as o}from"./BlockEmpty-B-giiUPy.js";import"./lib-Dkb5WBRc.js";import{t as s}from"./registry-types-D3q_LrlV.js";import{r as c}from"./sourceHost-BV3t2XDb.js";var l=r(),u={"two-tailed":`two-tailed`,greater:`one-tailed · greater`,less:`one-tailed · less`};function d({title:e=`Hypothesis Test`,icon:t=`proof`,iconColor:n=`var(--presence)`,h0:r,h1:o,direction:s,alpha:c,variables:d,rejected:f,footer:p,delay:m}){let h=i[t]||i.proof,g=typeof f==`boolean`,_=d?.iv,v=d?.dv,y=typeof c==`number`&&Number.isFinite(c),b=s?u[s]:null;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(m||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(h,{className:`ic`,style:{color:n}}),` `,e]}),(_||v||y)&&(0,l.jsxs)(`div`,{className:`hyp-meta`,children:[_&&(0,l.jsxs)(`span`,{className:`hyp-meta-chip`,children:[`IV · `,_]}),v&&(0,l.jsxs)(`span`,{className:`hyp-meta-chip`,children:[`DV · `,v]}),y&&(0,l.jsxs)(`span`,{className:`hyp-meta-chip hyp-alpha tab-num`,children:[`α = `,c]})]}),(0,l.jsxs)(`div`,{className:`hyp-stmt hyp-h0 m-fade-rise m-stagger-item`+(g?f?` rejected`:` retained`:``),style:{"--i":0},children:[(0,l.jsxs)(`div`,{className:`hyp-stmt-head`,children:[(0,l.jsx)(`span`,{className:`hyp-stmt-tag`,children:`H₀ · Null hypothesis`}),g&&(0,l.jsxs)(`span`,{className:`hyp-verdict`,children:[f?(0,l.jsx)(i.x,{className:`ic hyp-verdict-ic`}):(0,l.jsx)(i.check,{className:`ic hyp-verdict-ic`}),f?`Rejected`:`Retained`]})]}),(0,l.jsx)(`div`,{className:`hyp-stmt-body`,children:r})]}),(0,l.jsxs)(`div`,{className:`hyp-stmt hyp-h1 m-fade-rise m-stagger-item`+(g?f?` supported`:` unsupported`:``),style:{"--i":1},children:[(0,l.jsxs)(`div`,{className:`hyp-stmt-head`,children:[(0,l.jsxs)(`span`,{className:`hyp-stmt-tag`,children:[`H₁ · Alternative hypothesis`,b&&(0,l.jsx)(`span`,{className:`hyp-direction`,children:b})]}),g&&(0,l.jsxs)(`span`,{className:`hyp-verdict`,children:[f?(0,l.jsx)(i.check,{className:`ic hyp-verdict-ic`}):(0,l.jsx)(i.x,{className:`ic hyp-verdict-ic`}),f?`Supported`:`Not supported`]})]}),(0,l.jsx)(`div`,{className:`hyp-stmt-body`,children:o})]}),p&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(p)})]})}var f=n();function p({title:e,icon:t=`doc`,iconColor:n=`var(--presence)`,source:r,page:o,blocks:s,note:c,footer:u,delay:d}){let f=i[t]||i.doc,p=s.some(e=>e.spot);return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(d||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(f,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`doc-view`+(p?` has-spot`:``),children:[(0,l.jsxs)(`div`,{className:`doc-view-bar`,children:[(0,l.jsxs)(`span`,{className:`doc-view-file`,children:[(0,l.jsx)(i.doc,{className:`doc-view-fileic`}),` `,r??`Document`]}),o&&(0,l.jsxs)(`span`,{className:`doc-view-page`,children:[`p. `,o.n,` / `,o.of]})]}),(0,l.jsxs)(`div`,{className:`doc-view-page-surface`,children:[s.map((e,t)=>(0,l.jsx)(m,{b:e,spotlit:p&&!!e.spot,dimmed:p&&!e.spot},t)),p&&c&&(0,l.jsxs)(`div`,{className:`doc-view-note`,children:[(0,l.jsx)(`span`,{className:`doc-view-note-pin`}),(0,l.jsx)(`span`,{dangerouslySetInnerHTML:a(c)})]})]})]}),u&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(u)})]})}function m(e){let t=(0,f.c)(8),{b:n,spotlit:r,dimmed:i}=e,o=`doc-view-${n.kind}`+(r?` spotlit`:``)+(i?` dimmed`:``),s;t[0]===n.text?s=t[1]:(s=a(n.text),t[0]=n.text,t[1]=s);let c;t[2]===r?c=t[3]:(c=r?{"data-mark":`underline`}:{},t[2]=r,t[3]=c);let u;return t[4]!==o||t[5]!==s||t[6]!==c?(u=(0,l.jsx)(`div`,{className:o,dangerouslySetInnerHTML:s,...c}),t[4]=o,t[5]=s,t[6]=c,t[7]=u):u=t[7],u}var h=t();function g(e){if(!e||typeof window>`u`)return null;try{let t=new URL(e,window.location.origin);return t.origin!==window.location.origin||t.protocol!==`http:`&&t.protocol!==`https:`||!t.pathname.toLowerCase().endsWith(`.pdf`)&&t.pathname!==`/pdf`?null:`${t.pathname}${t.search}${t.hash}`}catch{return null}}function _({title:e,icon:t=`doc`,iconColor:n=`var(--presence)`,source:r,file:o,embedSrc:s,pages:u=[],footer:d,delay:f}){let p=i[t]||i.doc,[m,_]=(0,h.useState)(1),y=(0,h.useRef)(null),b=(0,h.useRef)([]),x=g(s)??g(o),S=x?null:c(o??``);return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(f||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(p,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`doc-view`,children:[(0,l.jsxs)(`div`,{className:`doc-view-bar`,children:[(0,l.jsxs)(`span`,{className:`doc-view-file`,children:[(0,l.jsx)(i.doc,{className:`doc-view-fileic`}),` `,r??`Document`]}),(0,l.jsx)(`span`,{className:`doc-view-page`,children:o?`PDF`:`p. ${m} / ${u.length}`})]}),x?(0,l.jsx)(`iframe`,{className:`pr-embed`,src:x,title:r||e,sandbox:``,referrerPolicy:`no-referrer`}):o?(0,l.jsx)(`div`,{className:`pr-file-fallback`,children:S?(0,l.jsx)(`a`,{href:S,target:`_blank`,rel:`noopener noreferrer`,children:`Open the PDF in a new tab ↗`}):(0,l.jsx)(`span`,{children:`This PDF link could not be verified.`})}):(0,l.jsx)(`div`,{className:`pr-scroll`,ref:y,onScroll:()=>{let e=y.current;if(!e)return;let t=e.scrollTop+48,n=1;for(let e=0;e<b.current.length;e++){let r=b.current[e];r&&r.offsetTop<=t&&(n=e+1)}n!==m&&_(n)},children:u.map((e,t)=>(0,l.jsxs)(`div`,{className:`pr-sheet`,ref:e=>{b.current[t]=e},children:[(0,l.jsx)(`span`,{className:`pr-sheet-no`,children:t+1}),e.blocks.map((e,t)=>(0,l.jsx)(v,{b:e},t))]},t))})]}),d&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(d)})]})}function v(e){let t=(0,f.c)(5),{b:n}=e,r=`doc-view-${n.kind}`,i;t[0]===n.text?i=t[1]:(i=a(n.text),t[0]=n.text,t[1]=i);let o;return t[2]!==r||t[3]!==i?(o=(0,l.jsx)(`div`,{className:r,dangerouslySetInnerHTML:i}),t[2]=r,t[3]=i,t[4]=o):o=t[4],o}function y({title:e,icon:t=`doc`,iconColor:n=`var(--presence)`,docName:r,paragraphs:o,highlights:s,footer:c,delay:u}){let d=i[t]||i.doc,[f,p]=(0,h.useState)(0),m=(0,h.useMemo)(()=>o.map((e,t)=>{let n=[];s.forEach((t,r)=>{let i=e.indexOf(t.phrase);i>=0&&n.push({s:i,e:i+t.phrase.length,h:r})}),n.sort((e,t)=>e.s-t.s);let r=[],i=0;return n.forEach((n,a)=>{n.s<i||(n.s>i&&r.push({key:`t${t}-${a}`,text:e.slice(i,n.s)}),r.push({key:`h${t}-${a}`,text:e.slice(n.s,n.e),h:n.h}),i=n.e)}),i<e.length&&r.push({key:`t${t}-end`,text:e.slice(i)}),r}),[o,s]),g=s[f];return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(u||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(d,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ad-body`,children:[(0,l.jsxs)(`div`,{className:`ad-doc`,children:[r&&(0,l.jsx)(`div`,{className:`ad-docname mono faint`,children:r}),m.map((e,t)=>(0,l.jsx)(`p`,{className:`ad-para`,children:e.map(e=>{if(e.h===void 0)return(0,l.jsx)(`span`,{children:e.text},e.key);let t=e.h,n=f===t;return(0,l.jsxs)(`span`,{className:`ad-mark ${n?`on`:``}`,style:{"--hl":s[t].color||`var(--presence)`},role:`button`,tabIndex:0,"aria-label":`Show note ${t+1}`,onMouseEnter:()=>p(t),onClick:()=>p(t),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),p(t))},"data-mark":n?`underline`:void 0,children:[e.text,(0,l.jsx)(`sup`,{className:`ad-mark-num tab-num`,children:t+1})]},e.key)})},t))]}),(0,l.jsxs)(`div`,{className:`ad-margin`,children:[g&&(0,l.jsxs)(`div`,{className:`ad-note`,style:{"--hl":g.color||`var(--presence)`},children:[(0,l.jsxs)(`div`,{className:`ad-note-head`,children:[(0,l.jsx)(`span`,{className:`ad-note-num tab-num`,children:f+1}),g.author&&(0,l.jsx)(`span`,{className:`ad-note-author`,children:g.author})]}),(0,l.jsx)(`div`,{className:`ad-note-body`,dangerouslySetInnerHTML:a(g.note)})]},f),(0,l.jsx)(`div`,{className:`ad-dots`,children:s.map((e,t)=>(0,l.jsx)(`button`,{className:`ad-dot ${f===t?`on`:``}`,style:{"--hl":e.color||`var(--presence)`},onClick:()=>p(t),"aria-label":`Note ${t+1}`},t))})]})]}),c&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(c)})]})}function b({title:e,icon:t=`edit`,iconColor:n=`var(--presence)`,docName:r,tokens:o,footer:s,delay:c}){let u=i[t]||i.edit,[d,f]=(0,h.useState)(`review`),p=o.filter(e=>e.ins!=null).length,m=o.filter(e=>e.del!=null).length,g=p+m;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(c||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(u,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`rl-head`,children:[r&&(0,l.jsx)(`span`,{className:`rl-docname mono faint`,children:r}),(0,l.jsxs)(`span`,{className:`rl-count tab-num`,children:[(0,l.jsx)(`span`,{className:`rl-pip ins`}),p,` `,(0,l.jsx)(`span`,{className:`rl-pip del`}),m]})]}),(0,l.jsx)(`div`,{className:`rl-tabs`,children:[{id:`review`,label:`Tracked`,icon:`eye`},{id:`final`,label:`Final`,icon:`check`},{id:`original`,label:`Original`,icon:`undo`}].map(e=>{let t=i[e.icon];return(0,l.jsxs)(`button`,{className:`rl-tab ${d===e.id?`on`:``}`,onClick:()=>f(e.id),children:[(0,l.jsx)(t,{className:`ic`}),` `,e.label]},e.id)})}),(0,l.jsx)(`div`,{className:`rl-doc mode-${d}`,children:o.map((e,t)=>e.text==null?e.ins==null?e.del==null||d===`final`?null:(0,l.jsx)(`span`,{className:`rl-del`,title:e.by?`deleted by ${e.by}`:`deletion`,children:e.del},t):d===`original`?null:(0,l.jsx)(`span`,{className:`rl-ins`,title:e.by?`inserted by ${e.by}`:`insertion`,children:e.ins},t):(0,l.jsx)(`span`,{className:`rl-keep`,children:e.text},t))}),(0,l.jsxs)(`div`,{className:`rl-foot`,children:[d===`review`&&(0,l.jsxs)(`span`,{className:`rl-hint faint`,children:[g,` tracked change`,g===1?``:`s`,` — switch views to accept or reject`]}),d===`final`&&(0,l.jsx)(`span`,{className:`rl-hint`,style:{color:`var(--insight)`},children:`Accepted — showing final copy`}),d===`original`&&(0,l.jsx)(`span`,{className:`rl-hint`,style:{color:`var(--text-muted)`},children:`Rejected — showing original copy`})]}),s&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(s)})]})}var x={strong:{c:`var(--insight)`,t:`strong`},partial:{c:`var(--warning)`,t:`partial`},weak:{c:`var(--danger)`,t:`weak`}};function S({node:e,path:t,depth:n}){let r=!!(e.children&&e.children.length),[o,s]=(0,h.useState)(n<2),c=e.color||(n===0?`var(--presence)`:`var(--insight)`),u=e.strength?x[e.strength]:null;return(0,l.jsxs)(`div`,{className:`cc-node`,style:{"--rail":c},children:[(0,l.jsxs)(`button`,{className:`cc-row ${o?`open`:``} ${r?`has-kids`:`leaf`}`,onClick:()=>r&&s(e=>!e),children:[(0,l.jsx)(`span`,{className:`cc-bullet`,style:{background:c},...n===0?{"data-mark":`circle`}:{}}),r&&(0,l.jsx)(i.chevR,{className:`cc-chev ${o?`open`:``}`}),(0,l.jsx)(`span`,{className:`cc-label`,dangerouslySetInnerHTML:a(e.label)}),e.cite&&(0,l.jsxs)(`span`,{className:`cc-cite mono`,children:[(0,l.jsx)(i.link,{className:`cc-cite-ic`}),e.cite]}),u&&(0,l.jsx)(`span`,{className:`cc-strength`,style:{color:u.c,"--sc":u.c},children:u.t})]}),r&&(0,l.jsx)(`div`,{className:`cc-kids`,"data-open":o,children:o&&e.children.map((e,r)=>(0,l.jsx)(S,{node:e,path:`${t}-${r}`,depth:n+1},`${t}-${r}`))})]})}function ee({title:e,icon:t=`layers`,iconColor:n=`var(--presence)`,root:r,footer:o,delay:s}){let c=i[t]||i.layers;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(s||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(c,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsx)(`div`,{className:`cc-tree`,children:(0,l.jsx)(S,{node:r,path:`r`,depth:0})}),o&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(o)})]})}var C={true:{c:`var(--insight)`,label:`Verified`,icon:`check`},partly:{c:`var(--warning)`,label:`Partly true`,icon:`alert`},false:{c:`var(--danger)`,label:`False`,icon:`x`},unverified:{c:`var(--text-muted)`,label:`Unverified`,icon:`eyeOff`}};function te({title:e,icon:t=`proof`,iconColor:n=`var(--insight)`,claims:r,footer:o,delay:s}){let c=i[t]||i.proof,[u,d]=(0,h.useState)(0);return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(s||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(c,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsx)(`div`,{className:`fc-list`,children:r.map((e,t)=>{let n=C[e.verdict],r=i[n.icon],o=u===t;return(0,l.jsxs)(`div`,{className:`fc-item ${o?`on`:``}`,style:{"--vc":n.c},children:[(0,l.jsxs)(`button`,{className:`fc-head`,onClick:()=>d(o?null:t),children:[(0,l.jsx)(`span`,{className:`fc-verdict`,style:{color:n.c},children:(0,l.jsx)(r,{className:`fc-verdict-ic`})}),(0,l.jsx)(`span`,{className:`fc-claim`,dangerouslySetInnerHTML:a(e.claim)}),(0,l.jsxs)(`span`,{className:`fc-conf tab-num`,style:{color:n.c},children:[Math.round(e.confidence),`%`]}),(0,l.jsx)(i.chevR,{className:`fc-chev ${o?`open`:``}`})]}),(0,l.jsx)(`div`,{className:`fc-bar`,children:(0,l.jsx)(`span`,{className:`fc-bar-fill`,style:{width:e.confidence+`%`,background:n.c}})}),(0,l.jsx)(`div`,{className:`fc-detail`,"data-open":o,children:o&&(0,l.jsxs)(`div`,{className:`fc-detail-in`,children:[(0,l.jsx)(`span`,{className:`fc-tag`,style:{color:n.c,"--vc":n.c},children:n.label}),e.detail&&(0,l.jsx)(`div`,{className:`fc-expl`,dangerouslySetInnerHTML:a(e.detail)}),e.sources&&e.sources.length>0&&(0,l.jsx)(`div`,{className:`fc-sources`,children:e.sources.map((e,t)=>(0,l.jsxs)(`span`,{className:`fc-source mono`,children:[(0,l.jsx)(i.globe,{className:`fc-source-ic`}),` `,e]},t))})]})})]},t)})}),o&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(o)})]})}var w={strong:`var(--insight)`,partial:`var(--warning)`,weak:`var(--danger)`,none:`var(--text-muted)`},T={strong:1,partial:.6,weak:.3,none:0};function E({title:e,icon:t=`shield`,iconColor:n=`var(--insight)`,claim:r,overall:o,segments:s,footer:c,delay:u}){let d=i[t]||i.shield,f=s.reduce((e,t,n)=>{let r=(t.weight||0)*T[t.band||`partial`];return r>e.score?{i:n,score:r}:e},{i:0,score:-1}).i,[p,m]=(0,h.useState)(f),g=s.reduce((e,t)=>e+(t.weight||0),0)||1,_=o??Math.round(s.reduce((e,t)=>e+(t.weight||0)*T[t.band||`partial`],0)/g*100),v=_>=75?`var(--insight)`:_>=45?`var(--warning)`:`var(--danger)`,y=s[p];return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(u||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(d,{className:`ic`,style:{color:n}}),` `,e]}),r&&(0,l.jsx)(`div`,{className:`cm-claim`,dangerouslySetInnerHTML:a(r)}),(0,l.jsxs)(`div`,{className:`insight-stat`,style:{margin:`8px 0 10px`},children:[(0,l.jsxs)(`span`,{className:`big tab-num`,"data-mark":`underline`,style:{color:v},children:[_,`%`]}),(0,l.jsx)(`span`,{className:`cm-conf-label faint`,children:`overall confidence`})]}),(0,l.jsx)(`div`,{className:`cm-track`,children:s.map((e,t)=>{let n=w[e.band||`partial`],r=(e.weight||0)/g*100;return(0,l.jsx)(`button`,{className:`cm-seg ${p===t?`on`:``}`,style:{width:r+`%`,"--c":n},onMouseEnter:()=>m(t)},t)})}),(0,l.jsx)(`div`,{className:`cm-legend`,children:s.map((e,t)=>{let n=w[e.band||`partial`];return(0,l.jsxs)(`button`,{className:`cm-leg ${p===t?`on`:``}`,onMouseEnter:()=>m(t),children:[(0,l.jsx)(`span`,{className:`cm-leg-dot`,style:{background:n}}),(0,l.jsx)(`span`,{className:`cm-leg-label`,children:e.label})]},t)})}),y&&(0,l.jsxs)(`div`,{className:`cm-basis`,style:{"--c":w[y.band||`partial`]},children:[(0,l.jsxs)(`div`,{className:`cm-basis-head`,children:[(0,l.jsx)(`span`,{className:`cm-basis-name`,children:y.label}),(0,l.jsxs)(`span`,{className:`cm-basis-band tab-num`,children:[Math.round(y.weight/g*100),`% weight`]})]}),y.basis&&(0,l.jsx)(`div`,{className:`cm-basis-body`,dangerouslySetInnerHTML:a(y.basis)})]},p),c&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(c)})]})}function D({title:e,icon:t=`quote`,iconColor:n=`var(--presence)`,quote:r,phrase:o,source:s,locator:c,color:u=`var(--presence)`,footer:d,delay:f}){let p=i[t]||i.quote,[m,g]=(0,h.useState)(!0),_=o?r.indexOf(o):-1,v;return v=_>=0?(0,l.jsxs)(l.Fragment,{children:[r.slice(0,_),(0,l.jsx)(`mark`,{className:`hs-mark ${m?`on`:``}`,style:{"--hl":u},children:r.slice(_,_+o.length)}),r.slice(_+o.length)]}):r,(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(f||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(p,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`figure`,{className:`hs-fig`,style:{"--hl":u},children:[(0,l.jsx)(`span`,{className:`hs-quote-glyph`,children:`“`}),(0,l.jsx)(`blockquote`,{className:`hs-quote`,children:v})]}),(0,l.jsxs)(`div`,{className:`hs-foot`,children:[s&&(0,l.jsxs)(`span`,{className:`hs-chip mono`,children:[(0,l.jsx)(i.globe,{className:`hs-chip-ic`}),` `,s,c&&(0,l.jsxs)(`span`,{className:`hs-loc faint`,children:[` · `,c]})]}),(0,l.jsxs)(`button`,{className:`hs-toggle ${m?`on`:``}`,onClick:()=>g(e=>!e),style:{"--hl":u},children:[m?(0,l.jsx)(i.eye,{className:`hs-toggle-ic`}):(0,l.jsx)(i.eyeOff,{className:`hs-toggle-ic`}),m?`Highlighted`:`Plain`]})]}),d&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(d)})]})}function O({title:e,icon:t=`image`,iconColor:n=`var(--presence)`,caption:r,ratio:o=16/9,callouts:s,footer:c,delay:u}){let d=i[t]||i.image,[f,p]=(0,h.useState)(0),m=s[f],g=m?.color||`var(--presence)`;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(u||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(d,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`ac-surface`,style:{aspectRatio:String(o)},children:[(0,l.jsxs)(`svg`,{className:`ac-bg`,viewBox:`0 0 160 90`,preserveAspectRatio:`none`,"aria-hidden":!0,children:[(0,l.jsx)(`defs`,{children:(0,l.jsxs)(`linearGradient`,{id:`acg`,x1:`0`,y1:`0`,x2:`1`,y2:`1`,children:[(0,l.jsx)(`stop`,{offset:`0%`,stopColor:`var(--grid-strong)`}),(0,l.jsx)(`stop`,{offset:`100%`,stopColor:`var(--grid-line)`})]})}),(0,l.jsx)(`rect`,{x:`0`,y:`0`,width:`160`,height:`90`,fill:`url(#acg)`}),[18,36,54,72].map(e=>(0,l.jsx)(`line`,{x1:`10`,y1:e,x2:`150`,y2:e,stroke:`var(--grid-line)`,strokeWidth:`0.6`},e)),[40,80,120].map(e=>(0,l.jsx)(`line`,{x1:e,y1:`8`,x2:e,y2:`82`,stroke:`var(--grid-line)`,strokeWidth:`0.6`},e))]}),s.map((e,t)=>{let n=e.color||`var(--presence)`;return(0,l.jsxs)(`button`,{className:`ac-pin ${f===t?`on`:``}`,style:{left:e.x+`%`,top:e.y+`%`,"--pc":n},onMouseEnter:()=>p(t),onClick:()=>p(t),"aria-label":e.label,"data-mark":t===0?`point`:void 0,children:[(0,l.jsx)(`span`,{className:`ac-pin-ring`}),(0,l.jsx)(`span`,{className:`ac-pin-num tab-num`,children:t+1})]},t)})]}),r&&(0,l.jsx)(`div`,{className:`ac-caption faint`,children:r}),m&&(0,l.jsxs)(`div`,{className:`ac-note`,style:{"--pc":g},children:[(0,l.jsx)(`span`,{className:`ac-note-num tab-num`,children:f+1}),(0,l.jsxs)(`div`,{className:`ac-note-text`,children:[(0,l.jsx)(`span`,{className:`ac-note-label`,children:m.label}),(0,l.jsx)(`span`,{className:`ac-note-body`,dangerouslySetInnerHTML:a(m.note)})]})]},f),(0,l.jsx)(`div`,{className:`ac-thumbs`,children:s.map((e,t)=>(0,l.jsx)(`button`,{className:`ac-thumb tab-num ${f===t?`on`:``}`,style:{"--pc":e.color||`var(--presence)`},onClick:()=>p(t),children:t+1},t))}),c&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(c)})]})}function ne({title:e,icon:t=`globe`,iconColor:n=`var(--presence)`,sources:r,footer:o,delay:s}){let c=i[t]||i.globe,[u,d]=(0,h.useState)(`relevance`),[f,p]=(0,h.useState)(0),m=(0,h.useMemo)(()=>{let e=r.map((e,t)=>t);return e.sort((e,t)=>u===`relevance`?r[t].relevance-r[e].relevance:r[e].domain.localeCompare(r[t].domain)),e},[r,u]);return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(s||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(c,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`sl-tabs`,children:[(0,l.jsxs)(`button`,{className:`sl-tab ${u===`relevance`?`on`:``}`,onClick:()=>d(`relevance`),children:[(0,l.jsx)(i.chart,{className:`ic`}),` Relevance`]}),(0,l.jsxs)(`button`,{className:`sl-tab ${u===`az`?`on`:``}`,onClick:()=>d(`az`),children:[(0,l.jsx)(i.doc,{className:`ic`}),` A–Z`]}),(0,l.jsxs)(`span`,{className:`sl-total faint tab-num`,children:[r.length,` sources`]})]}),(0,l.jsx)(`div`,{className:`sl-list`,children:m.map((e,t)=>{let n=r[e],o=n.color||`var(--presence)`,s=n.glyph||n.domain.replace(/^www\./,``).charAt(0).toUpperCase(),c=f===e;return(0,l.jsxs)(`div`,{className:`sl-row ${c?`on`:``}`,children:[(0,l.jsxs)(`button`,{className:`sl-head`,onClick:()=>p(c?null:e),children:[(0,l.jsx)(`span`,{className:`sl-rank tab-num`,children:t+1}),(0,l.jsx)(`span`,{className:`sl-fav`,style:{"--fc":o,background:`color-mix(in oklab, ${o} 22%, transparent)`,color:o},children:s}),(0,l.jsxs)(`span`,{className:`sl-main`,children:[(0,l.jsx)(`span`,{className:`sl-title`,children:n.titleText}),(0,l.jsxs)(`span`,{className:`sl-domain mono faint`,children:[n.domain,n.date&&(0,l.jsxs)(`span`,{className:`sl-date`,children:[` · `,n.date]})]})]}),(0,l.jsxs)(`span`,{className:`sl-rel`,children:[(0,l.jsx)(`span`,{className:`sl-rel-track`,children:(0,l.jsx)(`span`,{className:`sl-rel-fill`,style:{width:n.relevance+`%`,background:o}})}),(0,l.jsx)(`span`,{className:`sl-rel-num tab-num`,style:{color:o},children:Math.round(n.relevance)})]}),(0,l.jsx)(i.chevR,{className:`sl-chev ${c?`open`:``}`})]}),(0,l.jsxs)(`div`,{className:`sl-detail`,"data-open":c,children:[c&&n.snippet&&(0,l.jsx)(`div`,{className:`sl-snippet`,dangerouslySetInnerHTML:a(n.snippet)}),c&&(0,l.jsxs)(`span`,{className:`sl-open mono`,children:[(0,l.jsx)(i.external,{className:`sl-open-ic`}),` `,n.domain]})]})]},e)})}),o&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(o)})]})}var k={yes:{c:`var(--insight)`,icon:`check`,t:`Supported`},no:{c:`var(--danger)`,icon:`x`,t:`Contradicted`},partial:{c:`var(--warning)`,icon:`alert`,t:`Partial`},na:{c:`var(--text-muted)`,icon:null,t:`No data`}};function re({title:e,icon:t=`table`,iconColor:n=`var(--presence)`,columns:r,rows:o,footer:s,delay:c}){let u=i[t]||i.table,[d,f]=(0,h.useState)({r:0,c:0}),p=d&&o[d.r]&&o[d.r].cells[d.c]?o[d.r].cells[d.c]:null,m=p?k[p.state]:null;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(c||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(u,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsx)(`div`,{className:`cg-scroll`,children:(0,l.jsxs)(`table`,{className:`cg-table`,style:{"--cols":r.length},children:[(0,l.jsx)(`thead`,{children:(0,l.jsxs)(`tr`,{children:[(0,l.jsx)(`th`,{className:`cg-corner`}),r.map((e,t)=>(0,l.jsx)(`th`,{className:`cg-colh`,children:(0,l.jsx)(`span`,{children:e})},t))]})}),(0,l.jsx)(`tbody`,{children:o.map((e,t)=>(0,l.jsxs)(`tr`,{children:[(0,l.jsx)(`th`,{className:`cg-rowh`,scope:`row`,children:e.claim}),r.map((n,r)=>{let a=e.cells[r]?.state??`na`,o=k[a],s=o.icon?i[o.icon]:null,c=d?.r===t&&d?.c===r;return(0,l.jsx)(`td`,{className:`cg-cell ${a} ${c?`on`:``}`,style:{"--cc":o.c},onMouseEnter:()=>f({r:t,c:r}),children:(0,l.jsx)(`span`,{className:`cg-mark`,children:s?(0,l.jsx)(s,{className:`cg-mark-ic`}):(0,l.jsx)(`span`,{className:`cg-dash`,children:`–`})})},r)})]},t))})]})}),p&&m&&(0,l.jsxs)(`div`,{className:`cg-tip`,style:{"--cc":m.c},children:[(0,l.jsx)(`span`,{className:`cg-tip-tag`,style:{color:m.c},children:m.t}),p.note?(0,l.jsx)(`span`,{className:`cg-tip-note`,dangerouslySetInnerHTML:a(p.note)}):(0,l.jsxs)(`span`,{className:`cg-tip-note faint`,children:[o[d.r].claim,` × `,r[d.c]]})]}),s&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(s)})]})}function A(e,t,n,r){e.forEach((e,i)=>{let a=`${n}-${i}`,o=!!(e.children&&e.children.length);r.push({node:e,depth:t,path:a,hasKids:o,index:r.length}),o&&A(e.children,t+1,a,r)})}function ie({title:e,icon:t=`doc`,iconColor:n=`var(--presence)`,docName:r,sections:o,activeIndex:s=0,footer:c,delay:u}){let d=i[t]||i.doc,f=(0,h.useMemo)(()=>{let e=[];return A(o,0,`o`,e),e},[o]),[p,m]=(0,h.useState)(Math.max(0,Math.min(s,f.length-1))),[g,_]=(0,h.useState)({}),v=Math.max(1,...f.map(e=>e.node.weight||0)),y=e=>Object.keys(g).some(t=>g[t]&&e!==t&&e.startsWith(t+`-`)),b=f.length,x=p+1;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(u||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(d,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`do-head`,children:[r&&(0,l.jsx)(`span`,{className:`do-docname mono faint`,children:r}),(0,l.jsxs)(`span`,{className:`do-progress tab-num faint`,children:[(0,l.jsx)(`span`,{style:{color:`var(--presence)`},children:x}),`/`,b]})]}),(0,l.jsx)(`div`,{className:`do-list`,children:f.map(e=>{if(y(e.path))return null;let t=p===e.index,n=t?`var(--presence)`:`var(--text-muted)`,r=!!g[e.path],a=(e.node.weight||0)/v*100;return(0,l.jsxs)(`div`,{className:`do-row ${t?`on`:``}`,style:{"--depth":Math.min(e.depth,6)},children:[(0,l.jsx)(`span`,{className:`do-rail`}),e.hasKids?(0,l.jsx)(`button`,{className:`do-twist`,onClick:t=>{t.stopPropagation(),_(t=>({...t,[e.path]:!t[e.path]}))},"aria-label":r?`expand`:`collapse`,children:(0,l.jsx)(i.chevR,{className:`do-twist-ic ${r?``:`open`}`})}):(0,l.jsx)(`span`,{className:`do-dot`,style:{background:n},...t?{"data-mark":`point`}:{}}),(0,l.jsxs)(`button`,{className:`do-jump`,onClick:()=>m(e.index),children:[(0,l.jsx)(`span`,{className:`do-heading`,children:e.node.heading}),(e.node.weight??0)>0&&(0,l.jsx)(`span`,{className:`do-wbar`,children:(0,l.jsx)(`span`,{className:`do-wfill`,style:{width:a+`%`}})}),e.node.loc&&(0,l.jsx)(`span`,{className:`do-loc mono faint`,children:e.node.loc})]})]},e.path)})}),c&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(c)})]})}var ae={add:`+`,del:`−`,ctx:` `};function j({title:e,icon:t=`doc`,iconColor:n=`var(--presence)`,leftLabel:r=`before`,rightLabel:o=`after`,lines:s,split:c=!1,footer:u,delay:d}){let f=i[t]||i.doc,p=s.filter(e=>e.kind===`add`).length,m=s.filter(e=>e.kind===`del`).length;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(d||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(f,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`dc-diff-head`,children:[(0,l.jsxs)(`span`,{className:`dc-diff-files`,children:[r,` `,(0,l.jsx)(i.chevR,{className:`dc-diff-arrow`}),` `,o]}),(0,l.jsxs)(`span`,{className:`dc-diff-stat`,children:[(0,l.jsxs)(`span`,{className:`add`,"data-mark":`underline`,children:[`+`,p]}),` `,(0,l.jsxs)(`span`,{className:`del`,children:[`−`,m]})]})]}),(0,l.jsx)(`div`,{className:`dc-diff`,children:c?(0,l.jsxs)(`div`,{className:`dc-diff-split`,children:[(0,l.jsx)(`div`,{className:`dc-diff-body`,children:s.filter(e=>e.kind!==`add`).map((e,t)=>(0,l.jsxs)(`div`,{className:`dc-diff-line `+(e.kind===`del`?`del`:`ctx`),children:[(0,l.jsx)(`span`,{className:`dc-diff-gut`,children:e.oldNo??``}),(0,l.jsx)(`span`,{className:`dc-diff-code`,children:e.text})]},t))}),(0,l.jsx)(`div`,{className:`dc-diff-body`,children:s.filter(e=>e.kind!==`del`).map((e,t)=>(0,l.jsxs)(`div`,{className:`dc-diff-line `+(e.kind===`add`?`add`:`ctx`),children:[(0,l.jsx)(`span`,{className:`dc-diff-gut`,children:e.newNo??``}),(0,l.jsx)(`span`,{className:`dc-diff-code`,children:e.text})]},t))})]}):(0,l.jsx)(`div`,{className:`dc-diff-body`,role:`table`,children:s.map((e,t)=>(0,l.jsxs)(`div`,{className:`dc-diff-line `+e.kind,role:`row`,children:[(0,l.jsx)(`span`,{className:`dc-diff-gut`,children:e.oldNo??``}),(0,l.jsx)(`span`,{className:`dc-diff-gut`,children:e.newNo??``}),(0,l.jsx)(`span`,{className:`dc-diff-sign`,children:ae[e.kind]}),(0,l.jsx)(`span`,{className:`dc-diff-code`,children:e.text})]},t))})}),u&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:10},dangerouslySetInnerHTML:a(u)})]})}function M({title:e,icon:t=`layers`,iconColor:n=`var(--presence)`,columns:r,rows:o,caption:s,footer:c,delay:u}){let d=i[t]||i.layers,f=r.length||1,p=`repeat(${f}, minmax(0, 1fr))`,m=o.filter(e=>e.diverge).length;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(u||0)+`ms`},children:[e&&(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(d,{className:`ic`,style:{color:n}}),` `,e]}),s&&(0,l.jsx)(`div`,{className:`pt-caption`,children:s}),(0,l.jsx)(`div`,{className:`pt-scroll`,children:(0,l.jsxs)(`div`,{className:`pt-grid`,style:{"--pt-cols":p},children:[(0,l.jsx)(`div`,{className:`pt-headrow`,style:{gridTemplateColumns:p},children:r.map((e,t)=>(0,l.jsxs)(`div`,{className:`pt-colh`+(t===0?` source`:``),children:[(0,l.jsx)(`span`,{className:`pt-colh-label`,children:e.label}),e.lang&&(0,l.jsx)(`span`,{className:`pt-colh-lang mono`,children:e.lang})]},t))}),o.map((e,t)=>(0,l.jsxs)(`div`,{className:`pt-line`+(e.diverge?` diverge`:``),children:[(0,l.jsx)(`div`,{className:`pt-cells`,style:{gridTemplateColumns:p},children:Array.from({length:f},(t,n)=>(0,l.jsx)(`div`,{className:`pt-cell`+(n===0?` source`:``),children:e.cells[n]??``},n))}),e.note&&(0,l.jsxs)(`div`,{className:`pt-note`,children:[(0,l.jsx)(`span`,{className:`pt-note-rail`,"aria-hidden":`true`}),(0,l.jsx)(`span`,{className:`pt-note-text`,children:e.note})]})]},t))]})}),(c||m>0)&&(0,l.jsxs)(`div`,{className:`pt-foot`,children:[m>0&&(0,l.jsxs)(`span`,{className:`pt-foot-tag`,children:[(0,l.jsx)(`span`,{className:`pt-foot-pip`,"aria-hidden":`true`}),m,` divergence`,m===1?``:`s`]}),c&&(0,l.jsx)(`span`,{className:`pt-foot-note`,dangerouslySetInnerHTML:a(c)})]})]})}var N={symptom:`var(--warning)`,diagnosis:`var(--presence)`,treatment:`var(--insight)`,test:`var(--text-secondary)`,result:`var(--text-primary)`,visit:`var(--text-muted)`},P={symptom:`alert`,diagnosis:`proof`,treatment:`sparkle`,test:`chart`,result:`check`,visit:`clock`};function F({title:e,icon:t=`doc`,iconColor:n=`var(--presence)`,events:r,footer:o,delay:s}){let c=i[t]||i.doc;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(s||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(c,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsx)(`div`,{className:`ct-events`,children:r.map((e,t)=>{let n=N[e.type],a=P[e.type],o=i[a]||i.clock;return(0,l.jsxs)(`div`,{className:`ct-event`,children:[(0,l.jsxs)(`div`,{className:`ct-rail`,children:[(0,l.jsx)(`div`,{className:`ct-dot`,style:{background:n,borderColor:n}}),t<r.length-1&&(0,l.jsx)(`div`,{className:`ct-line`})]}),(0,l.jsxs)(`div`,{className:`ct-body`,children:[(0,l.jsxs)(`div`,{className:`ct-header`,children:[(0,l.jsxs)(`span`,{className:`ct-type-chip`,style:{color:n,background:`color-mix(in oklab, ${n} 12%, transparent)`},children:[(0,l.jsx)(o,{className:`ic`,style:{width:10,height:10}}),e.type]}),(0,l.jsx)(`span`,{className:`ct-date`,children:e.date})]}),(0,l.jsx)(`div`,{className:`ct-label`,children:e.label}),e.note&&(0,l.jsx)(`div`,{className:`ct-note`,children:e.note})]})]},t)})}),o&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(o)})]})}function I({title:e,icon:t=`doc`,iconColor:n=`var(--presence)`,question:r,method:o,sampleSize:s,findings:c,conclusion:u,limitations:d,source:f,year:p,footer:m,delay:h}){let g=i[t]||i.doc;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(h||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(g,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsx)(`div`,{className:`rs-question`,children:r}),(o||s)&&(0,l.jsxs)(`div`,{className:`rs-meta`,children:[o&&(0,l.jsx)(`span`,{className:`rs-meta-chip`,children:o}),s&&(0,l.jsx)(`span`,{className:`rs-meta-chip`,children:s}),p&&(0,l.jsx)(`span`,{className:`rs-meta-chip`,children:p})]}),(0,l.jsxs)(`div`,{className:`rs-findings`,children:[(0,l.jsx)(`div`,{className:`rs-section-label`,children:`Key Findings`}),(0,l.jsx)(`ul`,{className:`rs-findings-list`,children:c.map((e,t)=>(0,l.jsx)(`li`,{className:`rs-finding`,children:e},t))})]}),(0,l.jsxs)(`div`,{className:`rs-conclusion`,children:[(0,l.jsx)(`div`,{className:`rs-section-label`,children:`Conclusion`}),(0,l.jsx)(`div`,{className:`rs-conclusion-body`,children:u})]}),d&&(0,l.jsxs)(`div`,{className:`rs-limitations`,children:[(0,l.jsx)(`div`,{className:`rs-section-label`,children:`Limitations`}),(0,l.jsx)(`div`,{className:`rs-limitations-body`,children:d})]}),f&&(0,l.jsx)(`div`,{className:`rs-source`,children:f}),m&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(m)})]})}var L={pass:{color:`var(--insight)`,label:`Met`,icon:`check`},fail:{color:`var(--danger)`,label:`Not met`,icon:`x`},"needs-info":{color:`var(--warning)`,label:`Needs info`,icon:`alert`}},R={likely:{color:`var(--insight)`,label:`Likely qualify`},"not-yet":{color:`var(--danger)`,label:`Do not qualify yet`},depends:{color:`var(--warning)`,label:`Depends`}};function z({title:e,icon:t=`proof`,iconColor:n=`var(--insight)`,requirements:r,overall:o,caveat:s,footer:c,delay:u}){let d=i[t]||i.proof,f=r??[],p=o?R[o]:void 0;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(u||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(d,{className:`ic`,style:{color:n}}),` `,e]}),p&&(0,l.jsxs)(`div`,{className:`ec-overall`,style:{"--eo":p.color},children:[(0,l.jsx)(`span`,{className:`ec-overall-label`,children:`Overall`}),(0,l.jsx)(`span`,{className:`ec-overall-verdict`,children:p.label})]}),(0,l.jsx)(`ul`,{className:`ec-list`,children:f.map((e,t)=>{let n=L[e.status]??L[`needs-info`],r=i[n.icon]||i.alert;return(0,l.jsxs)(`li`,{className:`ec-row`,style:{"--es":n.color},children:[(0,l.jsx)(`span`,{className:`ec-mark`,children:(0,l.jsx)(r,{className:`ec-mark-ic`})}),(0,l.jsxs)(`div`,{className:`ec-body`,children:[(0,l.jsxs)(`div`,{className:`ec-rule-line`,children:[(0,l.jsx)(`span`,{className:`ec-rule`,children:e.rule}),(0,l.jsx)(`span`,{className:`ec-badge`,children:n.label})]}),e.detail&&(0,l.jsx)(`div`,{className:`ec-detail`,children:e.detail}),e.fix&&(0,l.jsxs)(`div`,{className:`ec-fix`,children:[(0,l.jsx)(`span`,{className:`ec-fix-tag`,children:e.status===`fail`?`To qualify`:`Confirm`}),(0,l.jsx)(`span`,{children:e.fix})]})]})]},t)})}),s&&(0,l.jsxs)(`div`,{className:`ec-caveat`,children:[(0,l.jsx)(i.shield,{className:`ec-caveat-ic`}),(0,l.jsx)(`span`,{children:s})]}),c&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(c)})]})}var B=6;function V({title:e,icon:t=`proof`,iconColor:n=`var(--presence)`,claim:r,summary:o,items:s,caveat:c,footer:u,delay:d}){let f=i[t]||i.proof,p=s??[],[m,g]=(0,h.useState)(!1),_=p.length>B,v=m?p:p.slice(0,B),y=p.length-v.length;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(d||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(f,{className:`ic`,style:{color:n}}),` `,e]}),r&&(0,l.jsxs)(`div`,{className:`et-claim`,children:[(0,l.jsx)(`span`,{className:`et-claim-rail`,style:{background:n}}),(0,l.jsxs)(`div`,{className:`et-claim-body`,children:[(0,l.jsx)(`div`,{className:`et-claim-text`,dangerouslySetInnerHTML:a(r)}),o&&(0,l.jsxs)(`span`,{className:`et-summary`,children:[(0,l.jsx)(i.chart,{className:`et-summary-ic`,style:{width:12,height:12}}),` `,o]})]})]}),(0,l.jsxs)(`div`,{className:`et-records-h`,children:[(0,l.jsx)(i.quote,{className:`et-records-h-ic`,style:{width:12,height:12}}),`Underlying records`,(0,l.jsx)(`span`,{className:`et-records-count tab-num`,children:p.length})]}),(0,l.jsx)(`ul`,{className:`et-records`,children:v.map((e,t)=>(0,l.jsxs)(`li`,{className:`et-record`,children:[(0,l.jsx)(`span`,{className:`et-marker`}),(0,l.jsxs)(`div`,{className:`et-record-body`,children:[(0,l.jsx)(`div`,{className:`et-record-text`,children:e.text}),(e.source||e.when)&&(0,l.jsxs)(`div`,{className:`et-record-meta`,children:[e.source&&(0,l.jsxs)(`span`,{className:`et-source mono`,children:[(0,l.jsx)(i.link,{className:`et-source-ic`,style:{width:11,height:11}}),e.source]}),e.when&&(0,l.jsx)(`span`,{className:`et-when`,children:e.when})]})]})]},t))}),_&&(0,l.jsxs)(`button`,{className:`et-more`,onClick:()=>g(e=>!e),children:[m?`Show fewer`:`Show all ${p.length} records`,!m&&(0,l.jsxs)(`span`,{className:`et-more-n tab-num`,children:[`+`,y]})]}),c&&(0,l.jsxs)(`div`,{className:`et-caveat`,children:[(0,l.jsx)(i.alert,{className:`et-caveat-ic`,style:{width:13,height:13}}),(0,l.jsx)(`span`,{children:c})]}),u&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(u)})]})}function H(e){return(Math.round(e*10)/10).toFixed(1)}function U({title:e,icon:t=`quote`,iconColor:n=`var(--presence)`,rating:r,count:o,distribution:s,loves:c,complaints:u,dealbreaker:d,footer:f,delay:p}){let m=i[t]||i.quote,h=c??[],g=u??[],_=s&&s.length===5?s:null,v=_?Math.max(..._,1):1,y=_?_.reduce((e,t)=>e+t,0):0,b=r??(_&&y>0?_.reduce((e,t,n)=>e+t*(5-n),0)/y:void 0),x=o??(y>0?y:void 0);return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(p||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(m,{className:`ic`,style:{color:n}}),` `,e]}),(b!==void 0||_)&&(0,l.jsxs)(`div`,{className:`rv-summary`,children:[b!==void 0&&(0,l.jsxs)(`div`,{className:`rv-score`,children:[(0,l.jsx)(`span`,{className:`rv-score-val tab-num`,children:H(b)}),(0,l.jsxs)(`span`,{className:`rv-stars`,"aria-hidden":`true`,children:[(0,l.jsx)(`span`,{className:`rv-stars-fill`,style:{width:Math.min(b,5)/5*100+`%`},children:`★★★★★`}),(0,l.jsx)(`span`,{className:`rv-stars-track`,children:`★★★★★`})]}),x!==void 0&&(0,l.jsxs)(`span`,{className:`rv-count`,children:[x.toLocaleString(),` reviews`]})]}),_&&(0,l.jsx)(`div`,{className:`rv-dist`,children:_.map((e,t)=>{let n=5-t;return(0,l.jsxs)(`div`,{className:`rv-dist-row`,children:[(0,l.jsx)(`span`,{className:`rv-dist-star tab-num`,children:n}),(0,l.jsx)(i.spark,{className:`rv-dist-ic`}),(0,l.jsx)(`span`,{className:`rv-dist-track`,children:(0,l.jsx)(`span`,{className:`rv-dist-fill`,style:{width:e/v*100+`%`}})}),(0,l.jsx)(`span`,{className:`rv-dist-n tab-num`,children:e.toLocaleString()})]},t)})})]}),(h.length>0||g.length>0)&&(0,l.jsxs)(`div`,{className:`rv-split`,children:[h.length>0&&(0,l.jsxs)(`section`,{className:`rv-col rv-col--love`,children:[(0,l.jsxs)(`div`,{className:`rv-col-h`,children:[(0,l.jsx)(i.check,{className:`rv-col-ic`}),` People love`]}),(0,l.jsx)(`ul`,{className:`rv-themes`,children:h.map((e,t)=>(0,l.jsx)(W,{theme:e},t))})]}),g.length>0&&(0,l.jsxs)(`section`,{className:`rv-col rv-col--gripe`,children:[(0,l.jsxs)(`div`,{className:`rv-col-h`,children:[(0,l.jsx)(i.x,{className:`rv-col-ic`}),` Complaints`]}),(0,l.jsx)(`ul`,{className:`rv-themes`,children:g.map((e,t)=>(0,l.jsx)(W,{theme:e},t))})]})]}),d&&(0,l.jsxs)(`div`,{className:`rv-dealbreaker`,children:[(0,l.jsx)(i.alert,{className:`rv-db-ic`}),(0,l.jsxs)(`span`,{children:[(0,l.jsx)(`b`,{children:`Biggest dealbreaker:`}),` `,d]})]}),f&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(f)})]})}function W(e){let t=(0,f.c)(12),{theme:n}=e,r;t[0]===n.theme?r=t[1]:(r=(0,l.jsx)(`span`,{className:`rv-theme-name`,children:n.theme}),t[0]=n.theme,t[1]=r);let i;t[2]===n.freq?i=t[3]:(i=n.freq&&(0,l.jsx)(`span`,{className:`rv-theme-freq`,children:n.freq}),t[2]=n.freq,t[3]=i);let a;t[4]!==r||t[5]!==i?(a=(0,l.jsxs)(`div`,{className:`rv-theme-head`,children:[r,i]}),t[4]=r,t[5]=i,t[6]=a):a=t[6];let o;t[7]===n.quote?o=t[8]:(o=n.quote&&(0,l.jsx)(`blockquote`,{className:`rv-quote`,children:`“`+n.quote+`”`}),t[7]=n.quote,t[8]=o);let s;return t[9]!==a||t[10]!==o?(s=(0,l.jsxs)(`li`,{className:`rv-theme`,children:[a,o]}),t[9]=a,t[10]=o,t[11]=s):s=t[11],s}function G({name:e,title:t,icon:n=`doc`,iconColor:r=`var(--presence)`,contact:o,summary:s,experience:c,education:u,skills:d,footer:f,delay:p}){let m=i[n]||i.doc;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(p||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(m,{className:`ic`,style:{color:r}}),` `,e]}),(0,l.jsxs)(`div`,{className:`rz-paper`,children:[(0,l.jsxs)(`div`,{className:`rz-head`,children:[(0,l.jsx)(`div`,{className:`rz-name`,children:e}),t&&(0,l.jsx)(`div`,{className:`rz-title`,children:t}),!!o?.length&&(0,l.jsx)(`div`,{className:`rz-contact`,children:o.map((e,t)=>(0,l.jsx)(`span`,{className:`rz-contact-item`,children:e},t))})]}),s&&(0,l.jsx)(`p`,{className:`rz-summary`,children:s}),c.length>0&&(0,l.jsxs)(`section`,{className:`rz-section`,children:[(0,l.jsx)(`div`,{className:`rz-section-label`,children:`Experience`}),(0,l.jsx)(`div`,{className:`rz-exp-list`,children:c.map((e,t)=>(0,l.jsx)(K,{exp:e,i:t},t))})]}),!!u?.length&&(0,l.jsxs)(`section`,{className:`rz-section`,children:[(0,l.jsx)(`div`,{className:`rz-section-label`,children:`Education`}),(0,l.jsx)(`div`,{className:`rz-edu-list`,children:u.map((e,t)=>(0,l.jsx)(q,{ed:e,i:t},t))})]}),!!d?.length&&(0,l.jsxs)(`section`,{className:`rz-section`,children:[(0,l.jsx)(`div`,{className:`rz-section-label`,children:`Skills`}),(0,l.jsx)(`div`,{className:`rz-skills`,children:d.map((e,t)=>(0,l.jsx)(`span`,{className:`rz-skill m-stagger-item m-fade-rise`,style:{"--i":t},children:e},t))})]})]}),f&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(f)})]})}function K({exp:e,i:t}){let n=[e.start,e.end||`Present`].filter(Boolean).join(` – `);return(0,l.jsxs)(`div`,{className:`rz-exp m-stagger-item m-fade-rise`,style:{"--i":t},children:[(0,l.jsxs)(`div`,{className:`rz-exp-top`,children:[(0,l.jsxs)(`div`,{className:`rz-exp-who`,children:[(0,l.jsx)(`span`,{className:`rz-exp-role`,children:e.role}),(0,l.jsx)(`span`,{className:`rz-exp-org`,children:e.org})]}),(0,l.jsxs)(`div`,{className:`rz-exp-when`,children:[(0,l.jsx)(`span`,{className:`rz-exp-range`,children:n}),e.location&&(0,l.jsx)(`span`,{className:`rz-exp-loc`,children:e.location})]})]}),!!e.bullets?.length&&(0,l.jsx)(`ul`,{className:`rz-bullets`,children:e.bullets.map((e,t)=>(0,l.jsx)(`li`,{children:e},t))})]})}function q({ed:e,i:t}){let n=[e.start,e.end].filter(Boolean).join(` – `);return(0,l.jsxs)(`div`,{className:`rz-edu m-stagger-item m-fade-rise`,style:{"--i":t},children:[(0,l.jsxs)(`div`,{className:`rz-exp-top`,children:[(0,l.jsxs)(`div`,{className:`rz-exp-who`,children:[(0,l.jsx)(`span`,{className:`rz-exp-role`,children:e.school}),(0,l.jsx)(`span`,{className:`rz-exp-org`,children:e.credential})]}),n&&(0,l.jsx)(`div`,{className:`rz-exp-when`,children:(0,l.jsx)(`span`,{className:`rz-exp-range`,children:n})})]}),e.detail&&(0,l.jsx)(`div`,{className:`rz-edu-detail`,children:e.detail})]})}var J={added:`var(--insight)`,changed:`var(--presence)`,fixed:`var(--presence-soft)`,deprecated:`var(--warning-soft)`,removed:`var(--warning)`,security:`var(--danger)`},oe={added:`plus`,changed:`refresh`,fixed:`check`,deprecated:`clock`,removed:`x`,security:`shield`},Y=[`security`,`removed`,`deprecated`,`fixed`,`changed`,`added`];function se(e){let t=Y.length-1;for(let n of e){let e=Y.indexOf(n.kind);e!==-1&&e<t&&(t=e)}return Y[t]??`changed`}function ce({title:e,icon:t=`doc`,iconColor:n=`var(--presence)`,versions:r,footer:o,delay:s}){let c=i[t]||i.doc;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(s||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(c,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsx)(`div`,{className:`cl-versions`,children:r.map((e,t)=>{let n=t===r.length-1,a=e.entries.length?J[se(e.entries)]:`var(--text-muted)`;return(0,l.jsxs)(`div`,{className:`cl-version m-stagger-item m-fade-rise`,style:{"--i":t},children:[(0,l.jsxs)(`div`,{className:`cl-rail`,children:[(0,l.jsx)(`div`,{className:`cl-dot`,style:{borderColor:a,color:a}}),!n&&(0,l.jsx)(`div`,{className:`cl-line`})]}),(0,l.jsxs)(`div`,{className:`cl-body`,children:[(0,l.jsxs)(`div`,{className:`cl-version-head`,children:[(0,l.jsx)(`span`,{className:`cl-version-num`,children:e.version}),e.date&&(0,l.jsx)(`span`,{className:`cl-version-date`,children:e.date})]}),e.entries.length>0&&(0,l.jsx)(`div`,{className:`cl-entries`,children:e.entries.map((e,t)=>{let n=J[e.kind]??`var(--text-muted)`,r=i[oe[e.kind]]||i.doc;return(0,l.jsxs)(`div`,{className:`cl-entry`,children:[(0,l.jsxs)(`span`,{className:`cl-kind`,style:{color:n,background:`color-mix(in oklab, ${n} 14%, transparent)`},children:[(0,l.jsx)(r,{className:`ic`}),e.kind]}),(0,l.jsx)(`span`,{className:`cl-entry-text`,children:e.text})]},t)})})]})]},t)})}),o&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(o)})]})}function le({title:e,icon:t=`doc`,iconColor:n=`var(--presence)`,subject:r,gradeLevel:o,duration:s,objectives:c,materials:u,procedure:d,assessment:f,footer:p,delay:m}){let h=i[t]||i.doc,g=d.reduce((e,t)=>e+(t.minutes||0),0),_=s||(g>0?`${g} min`:void 0);return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(m||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(h,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`lp-paper`,children:[(r||o||_)&&(0,l.jsxs)(`div`,{className:`lp-meta`,children:[r&&(0,l.jsx)(`span`,{className:`lp-meta-chip`,children:r}),o&&(0,l.jsx)(`span`,{className:`lp-meta-chip`,children:o}),_&&(0,l.jsx)(`span`,{className:`lp-meta-chip`,children:_})]}),c.length>0&&(0,l.jsxs)(`section`,{className:`lp-section`,children:[(0,l.jsx)(`div`,{className:`lp-section-label`,children:`Objectives`}),(0,l.jsx)(`ul`,{className:`lp-list`,children:c.map((e,t)=>(0,l.jsx)(`li`,{children:e},t))})]}),!!u?.length&&(0,l.jsxs)(`section`,{className:`lp-section`,children:[(0,l.jsx)(`div`,{className:`lp-section-label`,children:`Materials`}),(0,l.jsx)(`div`,{className:`lp-materials`,children:u.map((e,t)=>(0,l.jsx)(`span`,{className:`lp-material`,children:e},t))})]}),d.length>0&&(0,l.jsxs)(`section`,{className:`lp-section`,children:[(0,l.jsx)(`div`,{className:`lp-section-label`,children:`Procedure`}),(0,l.jsx)(`div`,{className:`lp-steps`,children:d.map((e,t)=>(0,l.jsxs)(`div`,{className:`lp-step m-stagger-item m-fade-rise`,style:{"--i":t},children:[(0,l.jsx)(`span`,{className:`lp-step-num`,children:t+1}),(0,l.jsxs)(`div`,{className:`lp-step-body`,children:[(0,l.jsxs)(`div`,{className:`lp-step-top`,children:[(0,l.jsx)(`span`,{className:`lp-step-text`,children:e.step}),!!e.minutes&&(0,l.jsxs)(`span`,{className:`lp-step-min`,children:[e.minutes,` min`]})]}),e.detail&&(0,l.jsx)(`div`,{className:`lp-step-detail`,children:e.detail})]})]},t))})]}),f&&(0,l.jsxs)(`section`,{className:`lp-section`,children:[(0,l.jsx)(`div`,{className:`lp-section-label`,children:`Assessment`}),(0,l.jsx)(`div`,{className:`lp-assessment`,children:f})]})]}),p&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(p)})]})}var ue=[{key:`facts`,label:`Facts`},{key:`issue`,label:`Issue`},{key:`holding`,label:`Holding`},{key:`reasoning`,label:`Reasoning`}];function de({title:e,icon:t=`doc`,iconColor:n=`var(--presence)`,citation:r,parties:o,facts:s,issue:c,holding:u,reasoning:d,footer:f,delay:p}){let m=i[t]||i.doc,h={facts:s,issue:c,holding:u,reasoning:d};return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(p||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(m,{className:`ic`,style:{color:n}}),` `,e]}),r&&(0,l.jsx)(`div`,{className:`cb-citation`,children:r}),(0,l.jsxs)(`div`,{className:`cb-parties`,children:[(0,l.jsx)(`span`,{className:`cb-party`,children:o.plaintiff}),(0,l.jsx)(`span`,{className:`cb-vs`,children:`v.`}),(0,l.jsx)(`span`,{className:`cb-party`,children:o.defendant})]}),ue.map((e,t)=>(0,l.jsxs)(`section`,{className:`cb-section cb-section--${e.key} m-stagger-item m-fade-rise`,style:{"--i":t},children:[(0,l.jsx)(`div`,{className:`cb-section-label`,children:e.label}),(0,l.jsx)(`div`,{className:`cb-section-body`,children:h[e.key]})]},e.key)),f&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(f)})]})}var X={disclosed:{c:`var(--insight)`,icon:`check`,t:`Disclosed`},"not-disclosed":{c:`var(--text-muted)`,icon:null,t:`Not disclosed`},disputed:{c:`var(--warning)`,icon:`alert`,t:`Disputed`}},fe=new Set([`disclosed`,`not-disclosed`,`disputed`]);function Z(e,t,n){let r=Array.isArray(e)?e[t]:void 0,i=Array.isArray(r)?r[n]:void 0;if(!i||typeof i!=`object`||Array.isArray(i))return{state:`not-disclosed`};let a=i,o=typeof a.state==`string`&&fe.has(a.state)?a.state:`not-disclosed`,s=typeof a.quote==`string`&&a.quote.trim()?a.quote:void 0;return s?{state:o,quote:s}:{state:o}}function pe({title:e,icon:t=`table`,iconColor:n=`var(--presence)`,claimElements:r,references:s,cells:c,footer:u,delay:d}){let f=i[t]||i.table,p=Array.isArray(r)?r:[],m=Array.isArray(s)?s.filter(e=>typeof e==`string`):[],[g,_]=(0,h.useState)(p.length&&m.length?{r:0,c:0}:null);if(p.length===0||m.length===0)return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(d||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(f,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsx)(o,{message:`No claim elements or references to chart`})]});let v=0,y=0;for(let e=0;e<p.length;e++)for(let t=0;t<m.length;t++){let n=Z(c,e,t).state;n===`disclosed`?v++:n===`disputed`&&y++}let b=g?Z(c,g.r,g.c):null,x=b?X[b.state]:null;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(d||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(f,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`pcc-head`,children:[(0,l.jsxs)(`span`,{className:`pcc-count faint`,children:[p.length,` element`,p.length===1?``:`s`,` × `,m.length,` reference`,m.length===1?``:`s`]}),(0,l.jsxs)(`span`,{className:`pcc-tally tab-num faint`,children:[v,` disclosed`,y>0?` · ${y} disputed`:``]})]}),(0,l.jsx)(`div`,{className:`pcc-scroll`,children:(0,l.jsxs)(`table`,{className:`pcc-table`,children:[(0,l.jsxs)(`colgroup`,{children:[(0,l.jsx)(`col`,{className:`pcc-col-el`}),m.map((e,t)=>(0,l.jsx)(`col`,{className:`pcc-col-ref`},t))]}),(0,l.jsx)(`thead`,{children:(0,l.jsxs)(`tr`,{children:[(0,l.jsx)(`th`,{className:`pcc-corner`}),m.map((e,t)=>(0,l.jsx)(`th`,{className:`pcc-refh`,children:(0,l.jsx)(`span`,{children:e})},t))]})}),(0,l.jsx)(`tbody`,{children:p.map((e,t)=>{let n=typeof e?.id==`string`&&e.id.trim()?e.id:String(t+1),r=typeof e?.text==`string`?e.text:``;return(0,l.jsxs)(`tr`,{children:[(0,l.jsxs)(`th`,{className:`pcc-elh`,scope:`row`,children:[(0,l.jsx)(`span`,{className:`pcc-el-num`,children:n}),r&&(0,l.jsx)(`span`,{className:`pcc-el-text`,children:r})]}),m.map((e,n)=>{let r=Z(c,t,n),a=X[r.state],o=a.icon?i[a.icon]:null,s=g?.r===t&&g?.c===n;return(0,l.jsx)(`td`,{className:`pcc-cell ${r.state} ${s?`on`:``}`,style:{"--cc":a.c},onMouseEnter:()=>_({r:t,c:n}),children:(0,l.jsx)(`span`,{className:`pcc-mark`,children:o?(0,l.jsx)(o,{className:`pcc-mark-ic`}):(0,l.jsx)(`span`,{className:`pcc-dash`,children:`–`})})},n)})]},t)})})]})}),b&&x&&(0,l.jsxs)(`div`,{className:`pcc-tip`,style:{"--cc":x.c},children:[(0,l.jsx)(`span`,{className:`pcc-tip-tag`,style:{color:x.c},children:x.t}),b.quote?(0,l.jsx)(`span`,{className:`pcc-tip-note`,dangerouslySetInnerHTML:a(b.quote)}):(0,l.jsxs)(`span`,{className:`pcc-tip-note faint`,children:[p[g.r]?.id||String(g.r+1),` × `,m[g.c]]})]}),u&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(u)})]})}function me(e){let t=e.trim();return t?t.split(/\s+/).length:0}function Q({title:e,icon:t=`doc`,iconColor:n=`var(--presence)`,lede:r,nutGraf:s,body:c,background:u,wordCountBudget:d,wordCount:f,footer:p,delay:m}){let g=i[t]||i.doc,_=Array.isArray(c)?c.filter(e=>typeof e==`string`&&e):[],v=Array.isArray(u)?u.filter(e=>typeof e==`string`&&e):[],[y,b]=(0,h.useState)(!1);if(!r&&!s&&_.length===0)return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(m||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(g,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsx)(o,{message:`No draft to show yet`})]});let x=typeof f==`number`&&Number.isFinite(f)?f:me([r,s,..._].filter(Boolean).join(` `)),S=typeof d==`number`&&Number.isFinite(d)&&x>d;return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(m||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(g,{className:`ic`,style:{color:n}}),` `,e]}),x>0&&(0,l.jsxs)(`div`,{className:`ss-wordcount tab-num faint`,children:[x.toLocaleString(),typeof d==`number`&&Number.isFinite(d)?` / ${d.toLocaleString()} words`:` words`,S&&(0,l.jsx)(`span`,{className:`ss-wordcount-over`,children:` · over budget`})]}),(r||s)&&(0,l.jsxs)(`div`,{className:`ss-lede-block`,children:[r&&(0,l.jsx)(`p`,{className:`ss-lede`,children:r}),s&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(`div`,{className:`ss-nutgraf-label`,children:`Nut graf`}),(0,l.jsx)(`p`,{className:`ss-nutgraf`,children:s})]})]}),_.length>0&&(0,l.jsx)(`div`,{className:`ss-body`,children:_.map((e,t)=>(0,l.jsx)(`p`,{className:`ss-para m-stagger-item m-fade-rise`,style:{"--i":t},children:e},t))}),v.length>0&&(0,l.jsxs)(`div`,{className:`ss-bg`,children:[(0,l.jsxs)(`button`,{className:`ss-bg-toggle`,onClick:()=>b(e=>!e),"aria-expanded":y,children:[(0,l.jsx)(i.chevR,{className:`ss-bg-toggle-ic${y?` open`:``}`}),y?`Hide background`:`Background (${v.length})`]}),y&&(0,l.jsx)(`div`,{className:`ss-bg-body`,children:v.map((e,t)=>(0,l.jsx)(`p`,{className:`ss-bg-para`,children:e},t))})]}),p&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(p)})]})}function he(e){return typeof e==`number`?Number.isFinite(e)?e.toLocaleString():`—`:typeof e==`string`&&e.trim()?e:`—`}function ge({title:e,icon:t=`doc`,iconColor:n=`var(--presence)`,species:r,name:s,breed:c,sex:u,ageYears:d,weightKg:f,vitals:p,problems:m,footer:h,delay:g}){let _=i[t]||i.doc,v=Array.isArray(p)?p:[],y=Array.isArray(m)?m.filter(e=>typeof e==`string`&&e):[];if(!s&&!r)return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(g||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(_,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsx)(o,{message:`No patient on file`})]});let b=[r,c,u,Number.isFinite(d)?`${d}y`:void 0,Number.isFinite(f)?`${f} kg`:void 0].filter(e=>!!e);return(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(g||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(_,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsxs)(`div`,{className:`vpc-signalment`,children:[s&&(0,l.jsx)(`div`,{className:`vpc-name`,children:s}),b.length>0&&(0,l.jsx)(`div`,{className:`vpc-chips`,children:b.map((e,t)=>(0,l.jsx)(`span`,{className:`vpc-chip`,children:e},t))})]}),v.length>0&&(0,l.jsx)(`div`,{className:`vpc-vitals`,children:v.map((e,t)=>(0,l.jsx)(_e,{v:e,i:t},t))}),y.length>0&&(0,l.jsxs)(`div`,{className:`vpc-problems`,children:[(0,l.jsx)(`div`,{className:`vpc-problems-label`,children:`Active problems`}),(0,l.jsx)(`div`,{className:`vpc-problem-list`,children:y.map((e,t)=>(0,l.jsx)(`span`,{className:`vpc-problem-chip m-stagger-item m-fade-rise`,style:{"--i":t},children:e},t))})]}),h&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(h)})]})}function _e({v:e,i:t}){let n=typeof e?.label==`string`&&e.label.trim()?e.label:`Reading`,r=he(e?.value),a=typeof e?.unit==`string`&&e.unit.trim()?e.unit:``,o=!!e?.abnormal;return(0,l.jsxs)(`div`,{className:`vpc-vital m-stagger-item m-fade-rise${o?` abnormal`:``}`,style:{"--i":t},children:[(0,l.jsx)(`span`,{className:`vpc-vital-label`,children:n}),(0,l.jsxs)(`span`,{className:`vpc-vital-value tab-num`,children:[r,a&&(0,l.jsx)(`span`,{className:`vpc-vital-unit`,children:a})]}),o&&(0,l.jsx)(i.alert,{className:`vpc-vital-flag`})]})}function ve({title:e,icon:t=`chart`,iconColor:n=`var(--presence)`,opponent:r,tendencies:s,matchupNotes:c,keyPlayers:u,footer:d,delay:f}){let p=i[t]||i.chart,m=Array.isArray(s)?s.filter(e=>typeof e==`string`&&e):[],h=Array.isArray(c)?c:[],g=Array.isArray(u)?u:[];return!r&&m.length===0?(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(f||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(p,{className:`ic`,style:{color:n}}),` `,e]}),(0,l.jsx)(o,{message:`No scouting notes yet`})]}):(0,l.jsxs)(`div`,{className:`card reveal`,style:{"--delay":(f||0)+`ms`},children:[(0,l.jsxs)(`div`,{className:`card-eyebrow`,children:[(0,l.jsx)(p,{className:`ic`,style:{color:n}}),` `,e]}),r&&(0,l.jsxs)(`div`,{className:`scr-opponent`,children:[(0,l.jsx)(`span`,{className:`scr-opponent-label`,children:`Opponent`}),(0,l.jsx)(`span`,{className:`scr-opponent-name`,children:r})]}),m.length>0&&(0,l.jsxs)(`div`,{className:`scr-section`,children:[(0,l.jsx)(`div`,{className:`scr-section-label`,children:`Tendencies`}),(0,l.jsx)(`ul`,{className:`scr-tendencies`,children:m.map((e,t)=>(0,l.jsx)(`li`,{className:`scr-tendency m-stagger-item m-fade-rise`,style:{"--i":t},children:e},t))})]}),h.length>0&&(0,l.jsxs)(`div`,{className:`scr-section`,children:[(0,l.jsx)(`div`,{className:`scr-section-label`,children:`Matchup notes`}),(0,l.jsx)(`div`,{className:`scr-notes`,children:h.map((e,t)=>(0,l.jsx)(ye,{n:e,i:t},t))})]}),g.length>0&&(0,l.jsxs)(`div`,{className:`scr-section`,children:[(0,l.jsx)(`div`,{className:`scr-section-label`,children:`Key players`}),(0,l.jsx)(`div`,{className:`scr-players`,children:g.map((e,t)=>(0,l.jsx)(be,{p:e,i:t},t))})]}),d&&(0,l.jsx)(`div`,{className:`insight-summary`,style:{marginTop:12},dangerouslySetInnerHTML:a(d)})]})}function ye({n:e,i:t}){let n=typeof e?.label==`string`&&e.label.trim()?e.label:`Note`,r=typeof e?.note==`string`?e.note:``;return r?(0,l.jsxs)(`div`,{className:`scr-note m-stagger-item m-fade-rise`,style:{"--i":t},children:[(0,l.jsx)(`span`,{className:`scr-note-label`,children:n}),(0,l.jsx)(`span`,{className:`scr-note-text`,children:r})]}):null}function be({p:e,i:t}){let n=typeof e?.name==`string`&&e.name.trim()?e.name:`Player`,r=typeof e?.role==`string`&&e.role.trim()?e.role:``,i=typeof e?.note==`string`?e.note:``;return(0,l.jsxs)(`div`,{className:`scr-player m-stagger-item m-fade-rise`,style:{"--i":t},children:[(0,l.jsxs)(`div`,{className:`scr-player-top`,children:[(0,l.jsx)(`span`,{className:`scr-player-name`,children:n}),r&&(0,l.jsx)(`span`,{className:`scr-player-role`,children:r})]}),i&&(0,l.jsx)(`span`,{className:`scr-player-note`,children:i})]})}var xe=e({docsRegistry:()=>$}),$={hypothesiscard:s(d),docview:s(p),pdfreader:s(_),annotateddoc:s(y),redline:s(b),citationchain:s(ee),factcheck:s(te),confidencemeter:s(E),highlightsnippet:(e,t)=>(0,l.jsx)(D,{...e,delay:t.delay}),annotcallouts:s(O),sourcelist:s(ne),claimgrid:s(re),docoutline:s(ie),diffviewer:s(j),paralleltext:s(M),clinicaltimeline:s(F),researchsummary:s(I),eligibilitycheck:s(z),evidencetrace:s(V),reviewsynth:s(U),resume:s(G),changelog:s(ce),lessonplan:s(le),casebrief:s(de),patentclaimchart:s(pe),storystructure:s(Q),vetpatientchart:s(ge),scoutingreport:s(ve)};export{xe as n,$ as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={pdfreader:{title:`The reference, in full`,icon:`doc`,iconColor:`var(--text-muted)`,source:`NASA CR, A First Course in CFD · public domain`,file:`/demo-assets/pdf/cfd-primer.pdf`,footer:`The actual report, embedded, scroll the real PDF for the derivations behind the scheme.`},datastructure:{title:`Binary search tree — searching for 40`,icon:`share`,iconColor:`var(--presence)`,kind:`bst`,nodes:[{id:`a`,value:50,left:`b`,right:`c`},{id:`b`,value:30,left:`d`,right:`e`},{id:`c`,value:70,left:`f`,right:`g`},{id:`d`,value:20},{id:`e`,value:40}],highlight:`e`,footer:`Search visits <b>50 → 30 → 40</b>: 40 < 50 go left, 40 > 30 go right, match. Three …`},bigo:{title:`How algorithm cost grows with input`,icon:`chart`,iconColor:`var(--presence)`,classes:[`o-1`,`o-logn`,`o-n`,`o-nlogn`,`o-n2`],maxN:16,highlight:`o-nlogn`,algorithm:{name:`merge sort`,complexity:`o-nlogn`},xLabel:`input size (n)`,yLabel:`operations`,footer:`Binary search hugs the floor at O(log n), merge sort scales gracefully at O(n log n), but…`},complexitysummary:{title:`Same lookup, three approaches`,icon:`clock`,iconColor:`var(--presence)`,approaches:[{name:`Linear scan`,timeComplexity:`O(n)`,spaceComplexity:`O(1)`,notes:`No setup cost — fine for a one-off search over unsorted data.`},{name:`Binary search`,timeComplexity:`O(log n)`,spaceComplexity:`O(1)`,notes:`Needs the array sorted first; free here since merge sort already sorted it.`},{name:`Merge sort + binary search`,timeComplexity:`O(n log n)`,spaceComplexity:`O(n)`,notes:`Pays off once the same array is searched many times, not for a single query.`}],footer:`For a single lookup, linear scan wins on simplicity; sort once and binary search pays for…`},confusionmatrix:{title:`Classifier results on the held-out test set`,icon:`table`,iconColor:`var(--presence)`,classes:[`Setosa`,`Versicolor`,`Virginica`],matrix:[[50,0,0],[0,47,3],[0,4,46]],showTotals:!0,readout:`perclass`,countLabel:`samples`,footer:`Setosa separates cleanly; the only confusion is between Versicolor and Virginica, where t…`},protocolstack:{title:`The TCP/IP stack: how a request travels down`,icon:`layers`,iconColor:`var(--presence)`,layers:[{name:`Application`,role:`Your request lives here — the actual message a program speaks.`,protocols:[`HTTP`,`DNS`,`TLS`,`SMTP`]},{name:`Transport`,role:`Splits the message into segments and guarantees order & delivery.`,protocols:[`TCP`,`UDP`]},{name:`Internet`,role:`Wraps each segment in a packet and routes it across networks by IP address.`,protocols:[`IP`,`ICMP`]},{name:`Link`,role:`Frames the packet for the local wire and addresses the next hop by MAC.`,protocols:[`Ethernet`,`Wi-Fi`,`ARP`]}],packet:[{header:`Ethernet`,layer:`Link`},{header:`IP`,layer:`Internet`},{header:`TCP`,layer:`Transport`},{header:`HTTP`,layer:`Application`},{header:`Your request`,layer:`Application`}],caption:`Each layer adds its own header on the way down, then the receiver peels them off in rever…`},logicgates:{title:`Half Adder`,icon:`share`,iconColor:`var(--presence)`,inputs:[{id:`A`,label:`A`,value:1},{id:`B`,label:`B`,value:0}],gates:[{id:`sum`,kind:`XOR`,inputs:[`A`,`B`]},{id:`carry`,kind:`AND`,inputs:[`A`,`B`]}],output:{from:`sum`,label:`Sum`},truth:[{row:[0,0],out:0},{row:[0,1],out:1},{row:[1,0],out:1},{row:[1,1],out:0}],caption:`A half adder sums two bits: the XOR gate produces the sum, the AND gate produces the carr…`,footer:`The truth table row matching the live inputs is highlighted; flip A or B in your head and…`},algorithmtrace:{title:`Bubble Sort — First Pass`,icon:`layers`,iconColor:`var(--presence)`,values:[5,1,4,2,8],steps:[{caption:`Start the pass: compare the first adjacent pair, 5 and 1.`,compare:[0,1],pointer:{i:0,j:1}},{caption:`5 > 1, so swap them — the larger value bubbles right.`,swapped:[0,1],pointer:{i:0,j:1}},{caption:`Advance the window and compare 5 and 4.`,compare:[1,2],pointer:{i:1,j:2}},{caption:`5 > 4, swap again.`,swapped:[1,2],pointer:{i:1,j:2}},{caption:`Compare 5 and 2.`,compare:[2,3],pointer:{i:2,j:3}}],caption:`Step through one full pass: each comparison either holds or swaps, walking the largest re…`,footer:`After this pass the maximum (8) is locked in its final position; bubble sort repeats over…`}};export{e as E};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={countdown:{title:`Time to decide`,icon:`clock`,target:`2026-06-24T17:00:00`,label:`Brightline needs your answer by Tuesday 5pm`,dueWhat:`A yes or no on the offer (a short email is fine)`,consequence:`After this the offer may be released to the next candidate.`,footer:`Need longer? Asking for 48 more hours is normal — most teams say yes.`},blanks:{title:`The parts only you can answer`,icon:`spark`,iconColor:`var(--presence)`,intro:`I've weighed everything I can. Two or three things are yours to fill in.`,slots:[{key:`dealbreaker`,label:`Your hard no`,prompt:`What would make this offer an automatic no?`,kind:`text`,placeholder:`e.g. no relocation help`},{key:`decide_by`,label:`Decide by`,prompt:`When do you actually have to give an answer?`,kind:`date`,accent:`var(--warning)`},{key:`energy`,label:`Energy for a change`,prompt:`How much capacity do you have for a job change right now?`,kind:`choice`,options:[`Low`,`Some`,`Plenty`]}]},reframecard:{title:`A gentler take`,thought:`I bombed that interview, so I am clearly not cut out for this role.`,distortion:`all-or-nothing`,reframe:`One hard interview is a single data point, not a verdict on your whole career — you answe…`,footer:`Notice the jump from <b>one moment</b> to <b>a whole identity</b> — that is the part wort…`},talktrack:{title:`How to open the resignation call`,icon:`mic`,totalTime:`~60s`,lines:[{say:`Thanks for making time, I wanted to tell you this directly rather than over email.`,beat:`warm, steady`,note:`Sets the tone before the news lands.`},{say:`I have decided to move on, and my last day will be two weeks from today.`,beat:`pause here`,note:`Say the date plainly, then stop talking.`},{say:`This was a hard call. I have learned a lot here and I am grateful for it.`,beat:`sincere`},{say:`I want the handover to go smoothly, so let us plan the next two weeks together.`,beat:`~15s`,note:`Ends on partnership, not apology.`}],footer:`Let the silences sit. You do not owe a full explanation, only a clear decision and a clea…`},resume:{name:`Jordan Alvarez`,title:`Senior Product Manager`,icon:`doc`,iconColor:`var(--presence)`,contact:[`jordan.alvarez@email.com`,`Austin, TX`,`linkedin.com/in/jordanalvarez`],summary:`Product leader with eight years in B2B SaaS, the last three managing a team of five. Led …`,experience:[{role:`Senior Product Manager`,org:`Meridian Analytics`,start:`2022`,location:`Austin, TX`,bullets:[`Led the pricing-model rework that took net revenue retention from 96% to 114%.`,`Grew the team from two to five PMs and stood up a quarterly roadmap review.`,`Owned the platform API surface used by 40+ enterprise integrations.`]},{role:`Product Manager`,org:`Northwind Labs`,start:`2019`,end:`2022`,location:`Remote`,bullets:[`Shipped the self-serve onboarding flow that cut time-to-first-value from 9 days to 36 hou…`,`Ran discovery for the mobile app, now 30% of monthly active usage.`]},{role:`Associate Product Manager`,org:`Fieldstone Software`,start:`2017`,end:`2019`,location:`Chicago, IL`,bullets:[`Owned the reporting-module roadmap for the mid-market tier.`]}],education:[{school:`University of Illinois at Urbana-Champaign`,credential:`B.S. Industrial Engineering`,start:`2013`,end:`2017`,detail:`Minor in Computer Science`}],skills:[`Product strategy`,`Pricing & packaging`,`SQL`,`Roadmapping`,`A/B testing`],footer:`Kept current from your LinkedIn export, in case the new role wants it this week.`},understand:{title:`What I learned about your studio`,conf:`strong`,items:[{text:`You're a <b>branding & web design studio</b> selling to other businesses.`,source:`/about`},{text:`You work in <b>projects with stages</b>, pitch, active, delivered.`,source:`/work`},{text:`Leads come in through a <b>contact form</b> and referrals.`,source:`/contact`},{text:`You bill <b>per project</b>, not hourly.`,source:`/pricing`}]},schema:{title:`The data model I'll build`,entities:[{name:`Company`,color:`var(--presence)`,badge:`B2B`,fields:[{name:`name`,type:`text`,key:!0},{name:`industry`,type:`text`},{name:`website`,type:`url`}]},{name:`Contact`,color:`var(--insight)`,fields:[{name:`name`,type:`text`,key:!0},{name:`email`,type:`email`},{name:`company`,type:`→ Company`}]},{name:`Project`,color:`var(--warning)`,fields:[{name:`title`,type:`text`,key:!0},{name:`stage`,type:`enum`},{name:`value`,type:`money`}]},{name:`Activity`,color:`var(--presence-soft)`,fields:[{name:`type`,type:`enum`},{name:`note`,type:`text`},{name:`contact`,type:`→ Contact`}]}],relations:[{from:`Company`,label:`has many`,to:`Contacts`},{from:`Contact`,label:`has many`,to:`Projects`},{from:`Project`,label:`logs`,to:`Activities`}],footer:`Mirrors how you already work, projects with stages, not generic “deals.”`},buildprog:{title:`Building it`,steps:[{label:`Created the data model`,sub:`4 tables, relationships wired`,status:`done`},{label:`Generated 5 screens`,sub:`from your stages + fields`,status:`done`},{label:`Imported sample data`,sub:`8 leads pulled from your site`,status:`active`},{label:`Connect your contact form`,sub:`needs your permission`,status:`todo`}],footer:`Everything's a draft on your private workspace until you say go.`}};export{e as E};
|