PageSourceSearch

https://milkroad.com/_next/static/immutable/chunks/29xh5xj1nh-83.js

js milkroad.com collected 2026-09-24 18:51:53 UTC 64,089 bytes, 210 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,294565,e=>{"use strict";var t=e.i(474076),n=e.i(271645),o=e.i(770703),r=e.i(194983),i=e.i(37727);let a=(0,o.default)(()=>e.A(941065).then(e=>e.ProChatConversation),{loadableGenerated:{modules:[780150]},ssr:!1});e.s(["ProChat",0,function({agent:e}){let[o,s]=(0,n.useState)(!1),[l,u]=(0,n.useState)(!1),c=(0,n.useCallback)(()=>u(!1),[]),d=(0,n.useCallback)(()=>{l||s(!0),u(e=>!e)},[l]);return(0,t.jsxs)("div",{className:"fixed right-4 bottom-4 z-40 sm:right-6 sm:bottom-6",children:[o&&(0,t.jsx)(a,{agent:e,onClose:c,open:l}),(0,t.jsx)("button",{type:"button",onClick:d,className:"ml-auto flex size-14 cursor-pointer items-center justify-center rounded-full bg-[#42addb] text-[#101010] smooth-shadow-ring-xl smooth-ring-mr2-ink/30 transition hover:scale-105 hover:bg-[#65c2e8]","aria-label":l?"Close Milk Road assistant":"Open Milk Road assistant","aria-expanded":l,children:l?(0,t.jsx)(i.X,{className:"size-5","aria-hidden":"true"}):(0,t.jsx)(r.MessageCircle,{className:"size-6","aria-hidden":"true"})})]})}])},111265,e=>{"use strict";var t=e.i(474076),n=e.i(271645);let o=(0,n.createContext)(null);e.s(["CampaignDiscountProvider",0,function({code:e,children:n}){return(0,t.jsx)(o.Provider,{value:e?.trim()||null,children:n})},"useCampaignDiscountCode",0,function(){return(0,n.useContext)(o)}])},908955,e=>{"use strict";var t=e.i(474076),n=e.i(271645);let o=(0,n.createContext)(!1);
1e.s(["PriceGoesUpCampaignProvider",0,function({enabled:e,children:n}){return(0,t.jsx)(o.Provider,{value:!0===e,children:n})},"usePriceGoesUpCampaignEnabled",0,function(){return(0,n.useContext)(o)}])},639833,e=>{"use strict";var t=e.i(474076),n=e.i(271645),o=e.i(618566),r=e.i(290390),i=e.i(557136),a=e.i(800833),s=e.i(423490);e.s(["PausedSubscriptionModal",0,function(){let e=(0,a.useRequestLocale)(),[l,u]=(0,n.useState)(!1),{pausedSubscription:c,loading:d}=(0,i.useSubscription)(),h=(0,o.useRouter)(),p=c?`pausedModalDismissed_${c.stripe_subscription_id}_${c.pause_resumes_at}`:null;function m(){p&&localStorage.setItem(p,"1"),u(!1)}if((0,n.useEffect)(()=>{let e=requestAnimationFrame(()=>{u(!d&&!!(p&&!localStorage.getItem(p)))});return()=>cancelAnimationFrame(e)},[d,p]),!l||!c)return null;let f=c.pause_resumes_at&&"9999-12-31T23:59:59.999Z"!==c.pause_resumes_at?new Date(c.pause_resumes_at).toLocaleDateString((0,s.englishRegionalLocale)(e),{month:"long",day:"numeric",year:"numeric"}):null;return(0,t.jsx)(r.Modal,{isOpen:!0,onClose:m,children:(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("div",{className:"text-3xl mb-3",children:"⏸️"}),(0,t.jsx)("h2",{className:"text-xl font-bold text-[#101010] mb-2",children:"Your subscription is paused"}),(0,t.jsx)("p",{className:"text-sm text-gray-500 mb-1",children:"Your PRO access is currently on hold."}),f&&(0,t.jsxs)("p",{className:"text-sm text-gray-500 mb-4",children:["It will automatically resume on"," ",(0,t.jsx)("span",{className:"font-semibold text-[#101010]",children:f}),"."]}),!f&&(0,t.jsx)("div",{className:"mb-4"}),(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsx)("button",{type:"button",onClick:function(){p&&localStorage.setItem(p,"1"),u(!1),h.push("/account/subscription/")},className:"w-full py-3 px-6 bg-[#42addb] rounded-[999px] text-[#101010] font-bold text-sm tracking-[-0.32px] leading-[19.2px] hover:bg-[#42addb]/90 cursor-pointer transition-colors shadow-[0px_0px_0px_4px_#42addb3d]",children:"Resume from Subscriptions"}),(0,t.jsx)("button",{type:"button",onClick:m,className:"w-full py-2 text-gray-400 text-sm underline underline-offset-2 hover:text-gray-600 cursor-pointer transition-colors",children:"Dismiss"})]})]})})}],639833)},585988,e=>{"use strict";var t=e.i(474076),n=e.i(271645),o=e.i(290390),r=e.i(182550);e.i(888974);var i=e.i(534694),a=e.i(822520);e.s(["SubscribedToFreeModal",0,function({isOpen:e,onClose:s,planId:l}){let[u,c]=(0,n.useState)([]),[d,h]=(0,n.useState)(""),[p,m]=(0,n.use
1State)(""),[f,g]=(0,n.useState)(!1),[y,b]=(0,n.useState)(null),v=void 0!==e?e:f,w=void 0!==l?l:y,x=()=>{s?s():g(!1)};return((0,n.useEffect)(()=>{if(void 0===e&&void 0===l){let e=localStorage.getItem("justSubscribedFree");e&&(b(e),g(!0),localStorage.removeItem("justSubscribedFree"))}},[e,l]),(0,n.useEffect)(()=>{if(w&&v){if("free"===w){h(""),m(a.FREE_SIGNUP_MODAL_CONTENT.title),c([...a.FREE_SIGNUP_MODAL_CONTENT.description]);return}let e=i.SUBSCRIPTION_PLANS[w];e&&(h(e.thankYou.logo),m(e.thankYou.title),c(e.thankYou.description))}},[w,v]),w)?(0,t.jsx)(o.Modal,{isOpen:v,onClose:x,children:(0,t.jsxs)("div",{className:"text-center flex flex-col items-center gap-6 max-h-[70vh] overflow-y-auto","data-testid":"subscribed-to-free-modal",children:[d&&(0,t.jsx)("img",{src:d,alt:"Thank you",className:"size-28 object-contain"}),(0,t.jsx)("div",{className:"uppercase text-[#42ADDB] text-xs font-bold tracking-wide",children:"Congrats"}),p&&(0,t.jsx)("h2",{className:"text-4xl font-bold","data-testid":"subscribed-to-free-modal-title",children:p}),u&&(0,t.jsx)("div",{className:"flex flex-col gap-6 text-xs",children:u.map((e,n)=>(0,t.jsx)("p",{className:"text-gray-800",children:e},n))}),(0,t.jsx)(r.Button,{onClick:x,className:"mt-4 w-full px-5 py-5 md:py-6 bg-[#42addb] rounded-[999px] text-[#101010] font-bold text-sm tracking-[-0.32px] leading-[19.2px] hover:bg-[#42addb]/90 disabled:bg-gray-300 disabled:text-gray-500 disabled:cursor-not-allowed cursor-pointer transition-colors shadow-[0px_0px_0px_4px_#42addb3d] disabled:shadow-none",children:"Get Started"})]})}):null}])},29911,597198,699957,e=>{"use strict";var t=e.i(474076),n=e.i(37727),o=e.i(647163);e.s(["ONBOARDING_PRIMARY_BUTTON",0,"inline-flex min-h-12 w-full cursor-pointer items-center justify-center rounded-full bg-[#078fe8] px-8 py-3 text-base font-semibold text-white transition-colors hover:bg-[#007bc9] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#078fe8] disabled:cursor-not-allowed disabled:bg-gray-200 disabled:text-gray-500 sm:w-auto sm:min-w-44 lg:text-lg","OnboardingCard",0,function({title:e,children:r,className:i,closeLabel:a,onClose:s,step:l,stepCount:u,stepPlacement:c="above-title",titleRef:d}){let h=void 0!==l&&void 0!==u;return(0,t.jsxs)("section",{"data-testid":"onboarding-card",className:(0,o.cn)("relative w-full max-w-[680px] rounded-[18px] bg-white px-6 py-7 text-left text-[#091523] outline-[3px] outline-[#078fe8] sm:px-8 sm:py-8",i),children:[(0,t.jsxs)("header",{className:(0,o.cn)("pr-0",s&&"pr-12",h&&"top-right"===c&&"pr-14"),children:[h?(0,t.jsxs)("p",{"data-onboarding-step-label":!0,className:(0,o.cn)("text-[11px] font-medium text-[#626a73] lg:text-xs","top-right"===c?"absolute right-6 top-7 sm:right-8 sm:top-8":"mb-1"),children:["above-title"===c?"STEP ":"",l,"/",u]}):null,(0,t.jsx)("h1",{ref:d,"data-testid":d?"onboarding-card-animated-title":void 0,className:(0,o.cn)("text-[22px] font-semibold leading-tight text-[#091523] sm:text-2xl lg:text-[26px]",h?"tracking-[0.01em]":"tracking-[-0.035em]"),children:e})]}),s?(0,t.jsx)("button",{type:"button","aria-label":a??"Close",className:"absolute right-5 top-5 inline-flex size-11 cursor-pointer items-center justify-center rounded-full text-[#091523] transition-colors hover:bg-[#091523]/5 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#078fe8] sm:right-6 sm:top-6",onClick:s,children:(0,t.jsx)(n.X,{"aria-hidden":"true",className:"size-8",strokeWidth:1.8})}):null,r]})},"OnboardingCardOverlay",0,function({ariaLabel:e="Milk Road PRO onboarding",children:n}){return(0,t.jsx)("dialog",{"data-mr-onboarding-modal":!0,open:!0,"aria-modal":"true","aria-label":e,className:"fixed inset-0 z-[1000] m-0 flex h-full max-h-none w-full max-w-none items-start justify-center overflow-y-auto border-0 bg-[#18344a]/60 p-4 pt-[max(1rem,7vh)] sm:items-center sm:p-8",children:n})}],29911),e.s(["ONBOARDING_COMPLETE_EVENT",0,"mr:onboarding-complete","PASSWORD_SETUP_COMPLETE_EVENT",0,"mr:password-setup-complete"],597198);let r="milkroad:onboarding-flow:progress",i="mr:onboarding-flow-change",a=new Map;function s(e){if(a.has(e))return a.get(e)??null;try{let t=window.localStorage.getItem(r);if(!t)return a.get(e)??null;let n=JSON.parse(t);if(n?.v!==1||n.userId!==e)return null;let o=n.card;return 2===o||3===o||4===o||5===o?o:null}catch{return a.get(e)??null}}e.s(["clearOnboardingFlowCard",0,function(e){let t=null!==s(e);a.set(e,null);try{t&&window.localStorage.removeItem(r),a.delete(e)}catch{}window.dispatchEvent(new Event(i))},"readOnboardingFlowCard",0,s,"subscribeOnboardingFlow",0,function(e){return window.addEventListener(i,e),window.addEventListener("storage",e),()=>{window.removeEventListener(i,e),window.removeEventListener("storage",e)}},"writeOnboardingFlowCard",0,function(e,t){a.set(e,t);try{window.localStorage.setItem(r,JSON.stringify({v:1,userId:e,card:t})),a.delete(e)}catch{}window.dispatchEvent(new Event(i))}],699957)},610961,e=>{"use strict";var t=e.i(474076),n=e.i(271645),o=e.i(618566),r=e.i(29911),i=e.i(695039),a=e.i(671550),s=e.i(597198),l=e.i(605164);let u={2:{title:"What you get with PRO",path:"/",actionLabel:"Next",secondaryLabel:"Skip",content:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{children:["Milk Road PRO takes the guesswork out of investing."," ",(0,t.jsx)("strong",{children:"Our Analysts share high quality investment research with real-time portfolio updates"}),", so you can stay on top of your portfolio in less than 10 minutes/day."]}),(0,t.jsx)("p",{children:"Each Analyst has a portfolio that you can view, complete with the history of every trade they've made and the rationale behind it. You even get ongoing research and updates along the way so you know exactly what's happening with each and every asset."}),(0,t.jsx)("p",{children:"Like I said: guesswork = gone"})]})}
1,3:{title:"Don’t miss a move",path:"/account/notifications",actionLabel:"Set Notifications Now",secondaryLabel:"Set Notifications Later",content:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{children:"The easiest way to stay on top of all the trades and asset updates is with the “Daily Recap” email that we send out every weekday at market close."}),(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:"The Daily Recap summarizes every buy, sell, watchlist add and asset update our Analysts make."})," ","So you get all the alpha, with minimal effort."]}),(0,t.jsxs)("p",{children:["Or, if you're the kind of investor that doesn't like to wait for their alpha,"," ",(0,t.jsx)("strong",{children:"you can turn on “Live Alerts” for any Analyst."})," Get every trade, watchlist and update as soon as it happens. Be aware though, it's a lot of emails, because there's a lot of alpha!"]})]})},4:{title:"Direct access to the people behind the trades",path:"/",actionLabel:"Join The Private Discord",secondaryLabel:"Maybe Later",content:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{children:"Ask questions, challenge ideas, and learn alongside our analysts in a private community that's active every day, with 1,000s of other smart investors."}),(0,t.jsx)("p",{children:"(Private community access is included in your PRO Membership)"})]})},5:{title:"Track your portfolio in PRO",path:"/portfolio/",actionLabel:"Show Me The Features",secondaryLabel:"Not Now",content:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{children:(0,t.jsx)("strong",{children:"You can now track your crypto and stocks all in one place."})}),(0,t.jsxs)("ul",{className:"list-disc space-y-0.5 pl-6",children:[(0,t.jsx)("li",{children:"35+ brokerages (Robinhood, Interactive Brokers and ETrade included)"}),(0,t.jsx)("li",{children:"Exchanges like Coinbase, Binance and Kraken"}),(0,t.jsx)("li",{children:"Any crypto wallet you use (Ledger, MetaMask, Rabby, etc)."})]}),(0,t.jsx)("p",{children:"Don't want to connect your accounts?"}),(0,t.jsx)("p",{children:"Don’t worry, you can add your holdings manually and everything still just works."}),(0,t.jsx)("p",{children:(0,t.jsx)("strong",{children:"Once you’re set up, you’ll unlock a huge range of awesome features."})})]})}};var c=e.i(410657),d=e.i(699957),h=e.i(54749),p=e.i(647163);let m=(0,n.lazy)(()=>e.A(47520).then(e=>({default:e.PortfolioTourController})));function f(){let e=(0,o.usePathname)().replace(/\/$/,"")||"/",f=(0,o.useRouter)(),g=(0,l.usePostHog)(),{user:y,subscriptions:b}=(0,i.useAuth)(),v=(0,c.useOnboardingFlowCard)(y?.id),w=y&&(0,a.hasActiveProSubscription)(b)?v:null,[x,k]=(0,n.useState)(!1),[C,A]=(0,n.use
1State)(!1),j=(0,n.useRef)(null),R=(0,n.useRef)(!1),E=(0,n.useCallback)(t=>{y&&(k(!1),(0,d.writeOnboardingFlowCard)(y.id,t),e!==u[t].path&&f.push(u[t].path))},[e,f,y]),T=(0,n.useCallback)((e=!1)=>{y&&(A(e),(0,d.clearOnboardingFlowCard)(y.id),g?.capture("onboarding_flow_completed"),window.dispatchEvent(new CustomEvent(s.ONBOARDING_COMPLETE_EVENT)))},[g,y]);(0,n.useEffect)(()=>{w&&(R.current||(R.current=!0,g?.capture("onboarding_flow_started",{resumed:2!==w})))},[w,g]),(0,n.useEffect)(()=>{if(!w||x)return;let e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}},[w,x]),(0,n.useEffect)(()=>{w&&!x&&j.current!==w&&(j.current=w,g?.capture("onboarding_flow_card_viewed",{card:w}))},[w,g,x]);let S=(0,n.useCallback)(()=>E(4),[E]),O=(0,n.useCallback)(()=>{switch(w){case 2:E(3);break;case 3:e!==u[3].path&&f.push(u[3].path),k(!0);break;case 4:window.open(h.PRO_DISCORD_INVITE_URL,"_blank","noopener,noreferrer"),E(5);break;case 5:T(!0)}},[w,T,e,f,E]),P=(0,n.useCallback)(()=>{3===w?E(4):4===w?E(5):T()},[w,T,E]);if(!w)return C?(0,t.jsx)(n.Suspense,{fallback:null,children:(0,t.jsx)(m,{startAtFeatures:!0})}):null;let N=u[w];return x?(0,t.jsx)("button",{type:"button",onClick:S,className:"fixed bottom-6 left-1/2 z-[1000] min-h-12 -translate-x-1/2 cursor-pointer whitespace-nowrap rounded-full bg-[#078fe8] px-6 py-3 text-sm font-bold text-white hover:bg-[#007bc9] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#078fe8]",children:"My notifications are set"}):(0,t.jsx)(r.OnboardingCardOverlay,{children:(0,t.jsxs)(r.OnboardingCard,{title:N.title,step:w,stepCount:5,stepPlacement:"top-right",className:"my-auto shrink-0",children:[(0,t.jsx)("div",{className:"mt-5 space-y-4 text-[15px] leading-6 text-[#1a2533] lg:text-base lg:leading-7",children:N.content}),(0,t.jsxs)("div",{className:"mt-7 flex flex-col items-center gap-5 sm:flex-row",children:[(0,t.jsx)("button",{type:"button",className:r.ONBOARDING_PRIMARY_BUTTON,onClick:O,children:N.actionLabel}),(0,t.jsx)("button",{type:"button",className:(0,p.cn)("cursor-pointer text-sm font-medium text-gray-500 transition-colors hover:text-black focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[#078fe8]",5===w&&"sm:ml-auto"),onClick:P,children:N.secondaryLabel})]})]})})}e.s(["OnboardingGateController",0,function(){let e=(0,o.usePathname)(),l=(0,o.useRouter)(),{user:u,profile:c,subscriptions:d}=(0,i.useAuth)(),[h,p]=(0,n.useState)(!1),m=!!u&&(0,a.hasActiveProSubscription)(d)&&c?.onboarding_completed_at===null&&!h&&"/"!==e;return((0,n.useEffect)(()=>{let e=()=>p(!0);return window.addEventListener(s.PASSWORD_SETUP_COMPLETE_EVENT,e),()=>window.removeEventListener(s.PASSWORD_SETUP_COMPLETE_EVENT,e)},[]),(0,n.useEffect)(()=>{m&&l.replace("/")},[l,m]),m)?(0,t.jsx)(r.OnboardingCardOverlay,{children:(0,t.jsxs)(r.OnboardingCard,{title:"Returning to account setup…",children:[(0,t.jsx)("div",{className:"mt-5 text-base leading-7 text-[#1a2533]",children:(0,t.jsx)("p",{children:"Set your password before exploring Milk Road PRO."})}),(0,t.jsx)("div",{className:"mt-7",children:(0,t.jsxs)("output",{className:"flex items-center gap-3 py-2 text-sm font-medium text-[#52616f]",children:[(0,t.jsx)("span",{"aria-hidden":"true",className:"size-4 animate-spin rounded-full border-2 border-[#078fe8]/25 border-t-[#078fe8]"}),"Loading…"]})})]})}):(0,t.jsx)(f,{},u?.id)}],610961)},410657,e=>{"use strict";var t=e.i(271645),n=e.i(699957);let o=()=>void 0;e.s(["useOnboardingFlowCard",0,function(e){let r=(0,t.useCallback)(()=>e?(0,n.readOnboardingFlowCard)(e):null,[e]);return(0,t.useSyncExternalStore)(n.subscribeOnboardingFlow,r,o)}])},290390,e=>{"use strict";var t=e.i(474076),n=e.i(271645),o=e.i(37727),r=e.i(647163);e.s(["Modal",0,function({isOpen:e,onClose:i,children:a,className:s,contentClassName:l,disableBackdropClose:u,backdropClassName:c,closeButtonClassName:d,closeLabel:h="Close modal",dialogLabel:p}){return((0,n.useEffect)(()=>{let t=e=>{"Escape"===e.key&&i()};return e&&(document.addEventListener("keydown",t),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",t),document.body.style.overflow="unset"}},[e,i]),e)?(0,t.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[u?(0,t.jsx)("div",{"aria-hidden":"true",className:(0,r.cn)("absolute inset-0 bg-black/50",c)}):(0,t.jsx)("button",{type:"button","aria-label":h,className:(0,r.cn)("absolute inset-0 cursor-default bg-black/50",c),onClick:i}),(0,t.jsx)("dialog",{open:!0,"aria-modal":"true","aria-label":p,className:(0,r.cn)("relative z-10 m-0 mx-4 w-full max-w-md border-0 bg-transparent p-0",s),children:(0,t.jsxs)("div",{className:(0,r.cn)("bg-white rounded-[20px] shadow-[4px_4px_0px_#42addb] border-[1.5px] border-[#42addb] p-6 lg:p-12",l),children:[(0,t.jsx)("button",{type:"button",onClick:i,"aria-label":h,className:(0,r.cn)("absolute right-4 top-4 cursor-pointer text-gray-400 hover:text-gray-600",d),children:(0,t.jsx)(o.X,{className:"h-5 w-5"})}),a]})})]}):null}])},770027,e=>{"use strict";var t=e.i(474076),n=e.i(647163);let o={default:"max-w-7xl",wide:"max-w-screen-xl",full:"max-w-full"};e.s(["default",0,function({children:e,className:r,width:i="default",as:a="div",padding:s=!0}){return"default"===i&&s?(0,t.jsx)(a,{className:(0,n.cn)("container-main",r),children:e}):(0,t.jsx)(a,{className:(0,n.cn)("mx-auto w-full",o[i],s&&"px-4 sm:px-6 lg:px-8",r),children:e})}],770027)},417901,e=>{"use strict";var t=e.i(474076),n=e.i(618566),o=e.i(255202),r=e.i(989955),i=e.i(247984);e.s(["default",0,function({globalModules:e}){let a=(0,n.usePathname)(),s=e?.filter(({path:e,excludePaths:t})=>{let n=(0,i.stegaClean)(e),o=a.replace(/^\//,"");return"*"===n||o.startsWith(n)&&!t?.some(e=>o.startsWith(e))}).sort((e,t)=>
1e.path.localeCompare(t.path));return(0,t.jsxs)("details",{className:"frosted-glass fixed right-4 bottom-0 rounded-t bg-amber-200/90 text-xs shadow-xl not-hover:opacity-50 open:opacity-100",children:[(0,t.jsx)("summary",{className:"p-2",children:"Draft Mode"}),(0,t.jsxs)("menu",{className:"anim-fade-to-r p-2 pt-0",children:[s?.map(({_id:e,path:n})=>{let i=(0,r.createDataAttribute)({id:e,type:"global-module",path:"path"});return(0,t.jsx)("li",{children:(0,t.jsxs)("button",{className:"inline-flex items-center gap-1 py-0.5","data-sanity":i().toString(),children:[(0,t.jsx)(o.VscSymbolField,{className:"shrink-0"}),"Global modules (",(0,t.jsx)("code",{children:n}),")"]})},e)}),(0,t.jsx)("hr",{className:"my-1"}),(0,t.jsx)("li",{children:(0,t.jsxs)("a",{className:"inline-flex items-center gap-1 py-0.5 hover:underline",href:"/api/draft-mode/disable",children:[(0,t.jsx)(o.VscBeakerStop,{className:"shrink-0"}),"Disable Draft Mode"]})})]})]})}])},124804,e=>{"use strict";var t=e.i(423490);let n="America/New_York";function o(e,o){return new Intl.DateTimeFormat((0,t.englishRegionalLocale)(e),{timeZone:n,month:o,day:"numeric",year:"numeric"})}function r(e){return new Intl.DateTimeFormat((0,t.englishRegionalLocale)(e),{timeZone:n,hour:"2-digit",minute:"2-digit",hourCycle:"h23"})}e.s(["compactTimeAgo",0,function(e,n=t.DEFAULT_REQUEST_LOCALE){let o=Math.floor((Date.now()-new Date(e).getTime())/6e4);if(o<1)return"now";if(o<60)return`${o}m`;let r=Math.floor(o/60);if(r<24)return`${r}h`;let i=Math.floor(r/24);return i<7?`${i}d`:new Date(e).toLocaleDateString((0,t.englishRegionalLocale)(n),{month:"short",day:"numeric"})},"formatFeedItemTimestamp",0,function(e,n=new Date,i=t.DEFAULT_REQUEST_LOCALE){let a=new Date(e),s=Math.floor((n.getTime()-a.getTime())/6e4);if(s<1)return"now";if(s<60)return`${s}m ago`;let l=Math.floor(s/60);return l<24?`${l}h ago`:`${o(i,"long").format(a)} \xb7 ${r(i).format(a)}ET`},"formatFeedItemUtcTimestamp",0,function(e,n=t.DEFAULT_REQUEST_LOCALE){let o=new Date(e),r=(0,t.englishRegionalLocale)(n),i=new Intl.DateTimeFormat(r,{day:"numeric",month:"short",timeZone:"UTC",year:"numeric"}).format(o),a=new Intl.DateTimeFormat(r,{hour:"2-digit",hourCycle:"h23",minute:"2-digit",second:"2-digit",timeZone:"UTC"}
1).format(o);return`${i}, ${a} UTC`},"formatWatchlistBoxTimestamp",0,function(e,n=t.DEFAULT_REQUEST_LOCALE){let i=new Date(e);return`${o(n,"short").format(i)} (${r(n).format(i)} ET)`}])},559535,e=>{"use strict";let t=["all","mentions","likes"];e.s(["isNotificationFilter",0,function(e){return t.some(t=>t===e)},"notificationTypeForFilter",0,function(e){return"mentions"===e?"mention":"likes"===e?"comment_like":null},"notificationsApiUrl",0,function({cursor:e,filter:t,limit:n}){let o=new URLSearchParams({limit:String(n)});return"all"!==t&&o.set("filter",t),null!=e&&o.set("cursor",String(e)),`/api/notifications?${o.toString()}`}])},413873,e=>{"use strict";let t=new Set(["trade","watchlist","post"]),n="America/New_York",o=new Intl.DateTimeFormat("en-US",{timeZone:n,day:"2-digit",month:"2-digit",year:"numeric"}),r=new Intl.DateTimeFormat("en-US",{timeZone:n,day:"numeric",month:"long",year:"numeric"}),i=new Intl.DateTimeFormat("en-US",{timeZone:n,hour:"numeric",hour12:!0,minute:"2-digit"}),a=new Map(Object.entries({trade:"commented on your trade",watchlist:"commented on your watchlist",news:"commented on your post",idea:"commented on your idea",podcast:"commented on your podcast",review:"commented on your review",sponsored:"commented on your post",afterhours:"commented on your Afterhours","pro-ama":"commented on your AMA","pro-report":"commented on your report"}));function s(e,t){return o.format(e)===o.format(t)}function l(e,t){return e.find(e=>e.type===t)?.value??""}e.s(["formatNotificationTimestamp",0,function(e,t=new Date){let n=new Date(e);if(!Number.isFinite(n.getTime()))return"";if(!s(n,t)){var o;let e,t=r.formatToParts(n),a=i.formatToParts(n),s=Number(l(t,"day")),u=`${l(t,"month")} ${(e=(o=s)%100)>=11&&e<=13?`${o}th`:o%10==1?`${o}st`:o%10==2?`${o}nd`:o%10==3?`${o}rd`:`${o}th`}, ${l(t,"year")}`,c=`${l(a,"hour")}:${l(a,"minute")} ${l(a,"dayPeriod")}`;return`${u} - ${c}`}let a=Math.floor(Math.max(0,t.getTime()-n.getTime())/6e4);return a<1?"now":a<60?`${a}m ago`:`${Math.floor(a/60)}h ago`},"groupByTime",0,function(e,t=Date.now()){let n=[],o=[],r=[],i=new Date(t);for(let a of e){let e=new Date(a.createdAt),l=t-e.getTime();s(e,i)?n.push(a):l<6048e5?o.push(a):r.push(a)}let a=[];return n.length>0&&a.push({label:"Today",items:n}),o.length>0&&a.push({label:"This Week",items:o}),r.length>0&&a.push({label:"Earlier",items:r}),a},"notificationHref",0,function(e){if(e.itemHref&&e.itemType&&!t.has(e.itemType)){var n;let t,o;return o=(t=(n=e.itemHref).indexOf("#"))>=0?n.slice(0,t):n,`${o}#comments`}return`/post/${encodeURIComponent(e.itemId)}/`},"verbPhrase",0,function(e){if("reply"===e.type)return"replied to your comment";
1if("comment_like"===e.type)return"liked your comment";if("mention"===e.type)return"mentioned you in a comment";let t=e.itemType??e.itemPreview?.type;return t&&a.get(t)||"commented on your post"}])},283610,e=>{"use strict";let t=null,n=!1;function o(){if(t)return t;let e=window.AudioContext||window.webkitAudioContext;if(!e)return null;try{t=new e}catch{return null}return t}function r(e,t,n,o,r,i){let a=e.createOscillator(),s=e.createGain();a.type="sine",a.frequency.setValueAtTime(t,n),s.gain.setValueAtTime(0,n),s.gain.linearRampToValueAtTime(r,n+.04),s.gain.exponentialRampToValueAtTime(1e-4,n+i),a.connect(s).connect(o),a.start(n),a.stop(n+i+.05)}function i(e){let t=e.currentTime,n=e.createGain();n.gain.setValueAtTime(.6,t),n.connect(e.destination),r(e,880,t,n,.45,.55),r(e,698.46,t+.13,n,.45,.7)}function a(){let e,t=(e=o())?("suspended"===e.state&&e.resume().catch(()=>{}),e):null;if(t){if("suspended"===t.state)return void t.resume().then(()=>{i(t)}).catch(e=>console.warn("[notification-sound] play resume failed",e));i(t)}}window.__playNotificationSound=a,e.s(["installNotificationAudioUnlock",0,function(){if(n)return;n=!0;let e=()=>{let t=o();t&&"suspended"===t.state&&t.resume().then(()=>console.log("[notification-sound] context resumed")).catch(e=>console.warn("[notification-sound] resume failed",e)),window.removeEventListener("pointerdown",e),window.removeEventListener("keydown",e),window.removeEventListener("touchstart",e)};window.addEventListener("pointerdown",e,{once:!0}),window.addEventListener("keydown",e,{once:!0}),window.addEventListener("touchstart",e,{once:!0})},"playNotificationSound",0,a])},540286,e=>{"use strict";var t=e.i(271645),n=e.i(385928),o=e.i(695039),r=e.i(569296),i=e.i(671550),a=e.i(283610),s=e.i(559535);let l="milkroad:notification-received";function u(e,t,n){let o=(0,s.notificationTypeForFilter)(n);return o&&t.type!==o?e:[t,...e.filter(e=>e.id!==t.id)]}let c="milkroad:notifications-marked-read";function d(e,t=!1){return{filter:e,notifications:[],unreadCount:0,nextCursor:null,initialLoading:t,loadingMore:!1,error:null}}function h(e,t){return{filter:e,notifications:t.notifications,unreadCount:t.unreadCount,nextCursor:t.nextCursor,initialLoading:!1,loadingMore:!1,error:null}}e.s(["useNotificationFeed",0,function({filter:e="all",initialPayload:p,realtime:m=!0,summaryOnly:f=!1}={}){let{initialLoading:g,subscriptions:y,user:b}=(0,o.useLiveAuth)(),v=b?.id??null,w=null!==v&&"pro"===(0,i.resolveMemberAccess)(y,{forcePro:(0,n.isDevOverrideEnabled)()}),[x,k]=(0,t.useState)(()=>p?h(e,p):d(e)),C=(0,t.useRef)(null),A=(0,t.useRef)(e),j=(0,t.useRef)(null),R=(0,t.useRef)([]),E=(0,t.useCallback)((e,t)=>{var n,o;return{...h(e,t),notifications:(n=t.notifications,o=R.current,o.reduceRight((t,n)=>u(t,n,e),n))}},[]);(0,t.useEffect)(()=>{w&&m&&(0,a.installNotificationAudioUnlock)()},[w,m]),(0,t.useEffect)(()=>{let e=e=>{let{ids:t}=e.detail,n=new Date().toISOString();k(e=>{if(null===t)return{...e,notifications:e.notifications.map(e=>({...e,readAt:e.readAt??n})),unreadCount:0};let o=new Set(t),r=e.notifications.filter(e=>o.has(e.id)),i=r.length>0?r.filter(e=>null===e.readAt).length:o.size;return{...e,notifications:e.notifications.map(e=>o.has(e.id)?{...e,readAt:e.readAt??n}:e),unreadCount:Math.max(0,e.unreadCount-i)}})};return window.addEventListener(c,e),()=>window.removeEventListener(c,e)},[]),(0,t.useEffect)(()=>{A.current=e},[e]),(0,t.useEffect)(()=>{if(m)return;let t=t=>{let{notification:n,unreadCount:o}=t.detail;R.current=u(R.current,n,"all"),k(t=>t.filter!==e?t:{...t,notifications:u(t.notifications,n,e),unreadCount:o})};return window.addEventListener(l,t),()=>window.removeEventListener(l,t)},[e,m]),(0,t.useEffect)(()=>{var t;let n,o,i;if(g)return()=>void 0;if(!w||!v)return k(d(e)),()=>void 0;let u=!1,c=new AbortController;if(void 0!==p&&"all"===e?k(t=>t.filter===e?t:E(e,p)):(k(d(e,!0)),fetch(f?"/api/notifications/unread-count":(0,s.notificationsApiUrl)({filter:e,limit:20}),{signal:c.signal}).then(async e=>{if(401===e.status)throw Error("unauthorized");if(!e.ok)throw Error(`status ${e.status}`);return await e.json()}).then(t=>{!u&&(f&&"count"in t?k({...d(e),unreadCount:t.count}):"notifications"in t&&k(E(e,t)))}).catch(e=>{u||e instanceof DOMException&&"AbortError"===e.name||(console.error("[notifications] initial fetch failed",e),k(e=>({...e,initialLoading:!1,error:"fetch_failed"})))})),!m)return()=>{u=!0,c.abort()};let y=C.current??(0,r.createClient)();C.current=y;let b=(t=async t=>{try{(0,a.playNotificationSound)()}catch{}try{let n=await fetch((0,s.notificationsApiUrl)({filter:e,limit:f?1:20}),{signal:c.signal});if(!n.ok)return;let o=await n.json();if(u)return;k(t=>f?{...t,error:null,initialLoading:!1,unreadCount:o.unreadCount}:h(e,o));let r=o.notifications.find(e=>e.id===t);r&&window.dispatchEvent(new CustomEvent(l,{detail:{notification:r,unreadCount:o.unreadCount}}))}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)return;console.error("[notifications] realtime refresh failed",e)}},n=!1,o=null,i=null,(async()=>{let{data:e}=await y.auth.getSession();if(n)return;e.session?.access_token&&y.realtime.setAuth(e.session.access_token),i=y.auth.onAuthStateChange((e,t)=>{t?.access_token&&y.realtime.setAuth(t.access_token)});let r=`notifications:${v}:${Math.random().toString(36).slice(2)}`;o=y.channel(r).on("postgres_changes",{event:"INSERT",schema:"public",table:"feed_notifications",filter:`recipient_user_id=eq.${v}`},e=>{t(Number(e.new.id))}).subscribe((e,t)=>{})})(),()=>{n=!0,i?.data.subscription.unsubscribe(),o&&y.removeChannel(o)});return()=>{u=!0,c.abort(),b()}},[g,w,e,p,m,E,f,v]);let T=(0,t.useCallback)(async e=>{if(w&&v&&(e?0!==e.length:0!==x.unreadCount)){window.dispatchEvent(new CustomEvent(c,{detail:{ids:e??null}}));try{await fetch("/api/notifications/mark-read",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e?{ids:e}:{}),keepalive:!0}),e||k(e=>({...e,unreadCount:0}))}catch(e){console.error("[notifications] mark-read failed",e)}}},[w,x.unreadCount,v]),S=(0,t.useCallback)(async()=>
1{if(!w||!v||null===x.nextCursor||x.loadingMore)return;let t=`${e}:${x.nextCursor}`;if(j.current!==t){j.current=t,k(e=>({...e,loadingMore:!0}));try{let t=await fetch((0,s.notificationsApiUrl)({cursor:x.nextCursor,filter:e,limit:20}));if(!t.ok)throw Error(`status ${t.status}`);let n=await t.json();if(A.current!==e)return;k(t=>({...t.filter===e?t:d(e),notifications:t.filter===e?[...t.notifications,...n.notifications]:n.notifications,nextCursor:n.nextCursor,loadingMore:!1}))}catch(t){console.error("[notifications] load more failed",t),A.current===e&&k(e=>({...e,loadingMore:!1}))}finally{j.current===t&&(j.current=null)}}},[w,e,x.nextCursor,x.loadingMore,v]),O=x.filter===e?x:d(e,!0);return{notifications:O.notifications,unreadCount:O.unreadCount,initialLoading:O.initialLoading,loadingMore:O.loadingMore,error:O.error,hasMore:null!==O.nextCursor,markRead:T,loadMore:S}}],540286)},54749,e=>{"use strict";var t=e.i(167225);let n={M0xt:{profileUsername:"m0xt",location:"Czech Republic",xUrl:"https://x.com/m0xt_",order:1,searchAliases:["Martin"],portfolioType:"DIVERSIFIED PORTFOLIO",aboutMe:`Martin hunts one thing. He calls it the gap.
2
3The gap is when the market is confidently wrong about something specific, and the price hasn't caught up yet. That's the whole job.
4
5His favorite quote comes from hedge fund legend Steve Mandel: *“I don't need an analyst to tell me when a 10 PE stock is cheap. I need an analyst to tell me when a 40 PE stock is cheap.”*
6
7Translation: anyone can spot the bargain bin. The money is in the stuff that looks expensive but isn't.
8
9### Where he plays
10
11Any sector, any country (developed or emerging), no preference.
12
13Recent hunting grounds include consumer fintech, payments plumbing, Korean holding companies, memory chips, crypto balance sheets morphing into AI infrastructure, and industrial giants breaking themselves into pieces.
14
15### Background
16
17Martin (m0xt) is a Milk Road PRO analyst covering crypto, public equities, and thematic research. He publishes research and investment reports, and builds his portfolio in public for PRO members.
18
19Before joining Milk Road two years ago, he worked as a futures trader and then as an onchain analyst, with expertise in governance and market structure. He holds an MBA in Economics.`,aboutPortfolio:`### How he invests
20
21Rule number one: write down exactly what the crowd is getting wrong before anything else happens.
22
23Wrong about the business? Wrong about an asset sitting on the balance sheet doing nothing? Wrong about how fast earnings bounce back? Wrong about the price, because somebody is being forced to sell? Wrong about something coming down the road that nobody has clocked?
24
25Pick one. Name it. If he can't, the gap is just vibes, and vibes are not a thesis.
26
27Every idea then runs the same seven steps and ends on a position size, never a price target. As he puts it: *“I don't need to be early. I need to be right.”*
28
29### What he's looking for (and what he avoids)
30
31Seven setups, over and over:
32
33- Costs got cut, revenue didn't, and margins are about to pop
34- A shrinking boring business hiding a fast-growing one inside it
35- An asset earning $0 today that's about to earn a lot
36- Earnings that look bad for a temporary, boring, accounting reason
37- Spinoffs and holding companies trading for less than the sum of their parts
38- An activist investor showing up to shake the tree
39- A bundle of products the market keeps pricing separately
40
41Underneath all seven sits one question he asks about every single name: is the market comparing this thing to the wrong stuff?
42
43Klarna gets filed under “buy now pay later” when it's really a payments network with a bank stapled to it. Galaxy Digital gets filed under “crypto stock” while it quietly turns into an AI data center.`,showResearch:!0,showWatchlist:!0,sanityAuthorId:t.default.env.SANITY_AUTHOR_ID_M0XT||""},John:{profileUsername:"john",location:"United States",xUrl:"https://x.com/BitcoinJesusETH",order:6,displayName:"John Gillen",portfolioType:"CRYPTO FOCUSED PORTFOLIO",sanityAuthorId:t.default.env.SANITY_AUTHOR_ID_JOHN||"",aboutMe:`John is a crypto investor with an unusually boring strategy, and he means that as a compliment.
44
45Buy high-quality digital assets, hold them for years while the rest of the market discovers what he already figured out. Don't do much else.
46
47He knows this means missing opportunities. He's fine with it. As he puts it: *“Chasing every opportunity means you miss most of them.”*
48
49His investing philosophy comes from King Solomon, which is not a sentence you read often in crypto:
50
51**“Buy the truth and sell it not.” -Proverbs 23:23**
52
53### Where he plays
54
55Bitcoin and Ethereum first, with the rest of the crypto market as a smaller, more opportunistic allocation. He believes there's still real underappreciated value across altcoins. He just isn't willing to bet the portfolio on it.
56
57### Background
58
59John is the host of Milk Road Macro and a digital asset investor focused on long-term value creation in crypto markets.
60
61Credentials:
62
63- General Partner and Head of Research at TRU Capital
64- Relationship Manager & Digital Asset Strategy Advisor at Iniativ Equity Partners
65- Digital Asset Consultant
66- Former Vice President of Client Services and Relationship Management at Aladdin by BlackRock
67- Former Writer for Discover Crypto`,aboutPortfolio:`### How he invests
68
693 to 10 positions, heavily concentrated in Bitcoin and Ethereum, and no limit to how much cash he holds (it all depends on his market outlook).
70
71Bitcoin and Ethereum are three-year-plus holds. Altcoin trades can be shorter, within a cycle.
72
73No leverage. No speculative trading. Spot crypto, held with conviction, and that's the entire mechanism.
74
75He also has a rule for handling drawdowns that's mostly about managing himself: hold, post Batman GIFs on X, and wait. If something drops 25 to 30% and nothing has actually changed except that people are scared, that's the opportunity. But he waits for confirmation first. Don't try and catch a falling knife.
76
77### What he's looking for (and what he avoids)
78
79Four questions, in order:
80
811. Are we in a Bitcoin bull market? If not, be patient.
822. Is the market undervaluing this asset based on demand, revenue, or some other number you can actually point at?
833. Did a genuinely strong project just take a sentiment hit for reasons unrelated to the project? Think Solana crashing after FTX blew up.
844. If yes, accumulate and hold for years while the market figures it out.
85
86He focuses far more on buying the bottom than selling the top. Dollar-cost average in, dollar-cost average out. When your stomach drops and there's blood in the streets, buy. When you feel euphoric and want to screenshot your portfolio, sell.
87
88The hard nos are short: no leverage, no memecoins, no meme stocks, no panic selling, and no calling the top.
89
90He takes a little profit every cycle, quietly, on big green days deep into a bull market. If a blow-off top shows up and a bunch of on-chain indicators fire at once, he'll sell a bit more. He wants a confluence of signals, never just one.
91
92Two rules he lives by: don't trade on emotion, and don't sell winners to buy losers.`,showResearch:!0,showWatchlist:!0},Kyle:{profileUsername:"kyle",location:"Canada",xUrl:"https://x.com/KyleReidhead",order:5,searchAliases:["Kyle Reidhead"],portfolioType:"DIVERSIFIED PORTFOLIO",aboutMe:`Kyle invests in technology. Not “tech stocks” the way a stock screener means it, but actual technology that's about to change a product, reshape a business, or create an industry that didn't exist last year.
93
94His one big idea: the market almost always underestimates how big that change gets, and how long it runs.
95
96AI, blockchains, robotics, space. Sometimes it's a brand new company. Sometimes it's an old company quietly bolting the new thing onto what it already does.
97
98He also refuses to treat crypto as its own special corner of the portfolio. It's a sector. Same as robotics or biotech.
99
100And the bar he holds himself to is high: beat the Nasdaq 100 and Bitcoin. Both. Not one or the other.
101
102### Where he plays
103
104AI, blockchains, robotics, and space, across public stocks and crypto treated as one single universe rather than two.
105
106### Background
107
108Kyle is the Co-Owner of Milk Road and Head of Research at Milk Road PRO. He is also the founder of Impact3, a strategic communications firm for revolutionary tech companies.
109
110Kyle is always at the forefront of new technologies and looks for opportunities to invest or build within those innovations. This insight and vision helps him understand where markets are heading and how to invest in it.`,aboutPortfolio:`### How he invests
111
1128 to 15 positions, sized by conviction. No leverage, no options, no shorting. If he's bearish on something, he expresses it by simply not owning it.
113
114He holds for 1 to 3 years. Ride the cycle or the story to the target, then rotate into the next thing.
115
116When something he owns drops 30% on news that has nothing to do with why he owns it? That's not a scare, it's an opportunity and he buys, aggressively.
117
118### What he's looking for (and what he avoids)
119
120One of these has to be true. Both is better:
121
122- The market has priced something badly and Kyle sees what they don't
123- A wave of demand the market is underestimating, not whether it happens but how big and how long it runs
124
125He likes buying things that have already been beaten up, so the downside is mitigated. Nvidia at its cheapest forward earnings multiple in a decade, that kind of thing.
126
127The company has to already make money and be run by a team that's pulled it off before. He isn't betting on whether a business shows up. He's betting nobody realizes how big the existing one gets.
128
129The hard nos: no shorting, no memecoins or pure-hype crypto with nothing underneath, no pre-revenue moonshots run by unproven founders. What he's dodging in all three cases is the same thing - crowd excitement as the actual investment.
130
131Selling is simple. Thesis breaks, he's out, whatever the price. He'll trim when the hype gets loud and the price is already running. But loud hype on something that's already been crushed? That's the opposite signal. That's a buy.`,showResearch:!0,showWatchlist:!0,sanityAuthorId:t.default.env.SANITY_AUTHOR_ID_KYLE||""},Melvin:{profileUsername:"melvin",location:"United States",xUrl:"https://x.com/MelvinInvests",order:2,portfolioType:"AI FOCUSED PORTFOLIO",aboutMe:`Melvin has one thesis, and everything he owns is a different expression of it: AI needs an enormous amount of physical infrastru
131cture, and building it is going to take longer and cost more than anyone currently thinks.
132
133Memory chips, data centers, networking gear, power, robots - those aren't five bets to him. They're five doors into the same room.
134
135### Where he plays
136
137AI infrastructure, top to bottom. Memory semiconductors, cloud providers renting out GPUs, optical networking, chip designers, power, and humanoid robotics, plus a handful of smaller satellite bets around the edges.
138
139### Background
140
141Melvin is an AI writer at Milk Road, focused on value-driven equity investing, particularly within AI and technology.
142
143His approach centers on identifying companies whose long-term fundamentals are stronger than current market sentiment suggests, and sharing those opportunities with the PRO community.`,aboutPortfolio:`### How he invests
144
145His entire philosophy fits in one Warren Buffett line: *“Anytime stocks go down, I like it. I am a net buyer of stock.”*
146
147When everyone else is panicking, Melvin's first instinct is to go look at what just went on sale. That's not a personality quirk, it's the strategy. Most of his best entries came from somebody else's bad week.
148
149He runs a wider book than most conviction investors, usually over 15 positions plus cash, with two names doing the heavy lifting and everything else sized down from there. There's no maximum position size because conviction sets the size.
150
151Core infrastructure names can get big. Speculative moonshots stay deliberately small.
152
153These are long-term holds by default, but not on autopilot. Money moves when the story changes or when something better shows up.
154
155### What he's looking for (and what he avoids)
156
157Two things get his attention:
158
159- A structural wave in AI infrastructure the market hasn't fully priced yet
160- A selloff or dislocation that puts a good company on sale for reasons that have nothing to do with the company
161
162Everything also has to clear one gate: a real, established business. Not a story that could evaporate overnight.
163
164On the way out, his rules are guidelines rather than triggers. He usually pulls his original money off the table once a position doubles, unless conviction is unusually high. A 10-15% trim is common around a 50% gain. Losses get cut early instead of nursed. And taxes never get a vote in the investing decision.
165
166But the real reason he sells is because the story broke, or he found somewhere better to put the money.`,showResearch:!0,showWatchlist:!0,sanityAuthorId:t.default.env.SANITY_AUTHOR_ID_MELVIN||""},Vincent:{profileUsername:"vincent",location:"Austria",xUrl:"https://x.com/WhiteCollarExit",order:3,portfolioType:"AI FOCUSED PORTFOLIO",aboutMe:`Vincent isn't betting on AI. He's betting on what AI does to everything else.
167
168He thinks AI gets way bigger than people expect. He also thinks the best returns won't come from the companies building the AI itself.
169
170They'll come from the choke points. The stuff every AI company has to buy, rent, or get permission to use.
171
172Power, memory, fiber, chip materials, business software, payment rails, healthcare and robots.
173
174That looks like eight different bets. To Vincent it's one bet seen from eight angles.
175
176### Where he plays
177
178Everywhere AI shows up except the AI models themselves. Power, memory, connectivity, chip materials, business software, payment rails, healthcare, robotics, and crypto.
179
180### Background
181
182Vincent is an AI markets analyst and Milk Road AI PRO researcher.
183
184He studies AI as an economic system and publishes deep-dive research on the companies shaping the AI economy, while also advising C-level teams on AI adoption across multiple industries.`,aboutPortfolio:`### How he invests
185
186A handful of big positions he really believes in, plus some small lottery tickets and crypto around the edges.
187
188Long-term by default, but never on autopilot. Every position gets ranked against every other one, constantly. Nothing stays just because it's already there.
189
190There's no maximum position size. Size comes down to three questions. How sure is he? How soon does it pay off? And how lopsided is the upside versus the downside?
191
192A company with proven demand, limited supply, real earnings coming, and a beaten-down price can become a very big position. Something great but years away stays small, no matter how good the story sounds.
193
194### What he's looking for (and what he avoids)
195
196Four boxes to tick:
197
198- AI has to be genuinely changing this business.
199- The market can't have priced it in yet.
200- There has to be proof it's happening, not just a story.
201- The company has to actually be able to make money from it.
202
203His favorite setup is the old, boring, misunderstood company that AI quietly turns into a growth business. Best of all when a temporary panic knocks the price down while nothing has actually gone wrong.
204
205Selling is a judgment call, not a formula. He splits it into two buckets, and the difference is the whole point:
206
207- **Price risk** is when the stock drops. That's a reason to take another look, and often a reason to buy more.
208- **Thesis risk** is when the company gets worse at capturing the opportunity. That's when he sells.
209
210He'll also trim when the good news is fully priced in, when the stock needs everything to go perfectly to work, or when something better comes along.`,showResearch:!0,showWatchlist:!0,sanityAuthorId:t.default.env.SANITY_AUTHOR_ID_VINCENT||""}};e.s(["PRO_DISCORD_INVITE_URL",0,"https://discord.gg/Hzk7d9zWdf","analystConfig",0,n,"getAnalystConfig",0,function(e){return n[e]??null}])},326999,e=>{"use strict";var t=e.i(271645),n=e.i(981140),o=e.i(820783),r=e.i(30030),i=e.i(610772),a=e.i(369340),s=e.i(726330),l=e.i(765491),u=e.i(774606),c=e.i(296626),d=e.i(248425),h=e.i(303536),p=e.i(985369),m=e.i(186312),f=e.i(991918),g=e.i(474076),y="Dialog",[b,v]=(0,r.createContextScope)(y),[w,x]=b(y),k=e=>{let{__scopeDialog:n,children:o,open:r,defaultOpen:s,onOpenChange:l,modal:u=!0}=e,c=t.useRef(null),d=t.useRef(null),[h,p]=(0,a.useControllableState)({prop:r,defaultProp:s??!1,onChange:l,caller:y});return(0,g.jsx)(w,{scope:n,triggerRef:c,contentRef:d,contentId:(0,i.useId)(),titleId:(0,i.useId)(),descriptionId:(0,i.useId)(),open:h,onOpenChange:p,onOpenToggle:t.useCallback(()=>p(e=>!e),[p]),modal:u,children:o})};k.displayName=y;var C="DialogTrigger",A=t.forwardRef((e,t)=>{let{__scopeDialog:r,...i}=e,a=x(C,r),s=(0,o.useComposedRefs)(t,a.triggerRef);return(0,g.jsx)(d.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":z(a.open),...i,ref:s,onClick:(0,n.composeEventHandlers)(e.onClick,a.onOpenToggle)})});A.displayName=C;var j="DialogPortal",[R,E]=b(j,{forceMount:void 0}),T=e=>{let{__scopeDialog:n,forceMount:o,children:r,container:i}=e,a=x(j,n);return(0,g.jsx)(R,{scope:n,forceMount:o,children:t.Children.map(r,e=>(0,g.jsx)(c.Presence,{present:o||a.open,children:(0,g.jsx)(u.Portal,{asChild:!0,container:i,children:e})}))})};T.displayName=j;var S="DialogOverlay",O=t.forwardRef((e,t)=>{let n=E(S,e.__scopeDialog),{forceMount:o=n.forceMount,...r}=e,i=x(S,e.__scopeDialog);return i.modal?(0,g.jsx)(c.Presence,{present:o||i.open,children:(0,g.jsx)(N,{...r,ref:t})}):null});O.displayName=S;var P=(0,f.createSlot)("DialogOverlay.RemoveScroll"),N=t.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=x(S,n),a=(0,s.useDismissableLayerSurface)(),l=(0,o.useComposedRefs)(t,a);return(0,g.jsx)(p.RemoveScroll,{as:P,allowPinchZoom:!0,shards:[i.contentRef],children:(0,g.jsx)(d.Primitive.div,{"data-state":z(i.open),...r,ref:l,style:{pointerEvents:"auto",...r.style}})})}),I="DialogContent",D=t.forwardRef((e,t)=>{let n=E(I,e.__scopeDialog),{forceMount:o=n.forceMount,...r}=e,i=x(I,e.__scopeDialog);return(0,g.jsx)(c.Presence,{present:o||i.open,children:i.modal?(0,g.jsx)(_,{...r,ref:t}):(0,g.jsx)(M,{...r,ref:t})})});D.displayName=I;var _=t.forwardRef((e,r)=>{let i=x(I,e.__scopeDialog),a=t.useRef(null),s=(0,o.useComposedRefs)(r,i.contentRef,a);return t.useEffect(()=>{let e=a.current;if(e)return(0,m.hideOthers)(e)},[]),(0,g.jsx)(L,{...e,ref:s,trapFocus:i.open,disableOutsidePointerEvents:i.open,onCloseAutoFocus:(0,n.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),i.triggerRef.current?.focus()}
210),onPointerDownOutside:(0,n.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:(0,n.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault())})}),M=t.forwardRef((e,n)=>{let o=x(I,e.__scopeDialog),r=t.useRef(!1),i=t.useRef(!1);return(0,g.jsx)(L,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||o.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,"pointerdown"===t.detail.originalEvent.type&&(i.current=!0));let n=t.target;o.triggerRef.current?.contains(n)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}})}),L=t.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:i,...a}=e,u=x(I,n);return(0,h.useFocusGuards)(),(0,g.jsx)(g.Fragment,{children:(0,g.jsx)(l.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:i,children:(0,g.jsx)(s.DismissableLayer,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":z(u.open),...a,ref:t,deferPointerDownOutside:!0,onDismiss:()=>u.onOpenChange(!1)})})})}),F="DialogTitle",H=t.forwardRef((e,t)=>{let{__scopeDialog:n,...o}=e,r=x(F,n);return(0,g.jsx)(d.Primitive.h2,{id:r.titleId,...o,ref:t})});H.displayName=F;var U="DialogDescription",$=t.forwardRef((e,t)=>{let{__scopeDialog:n,...o}=e,r=x(U,n);return(0,g.jsx)(d.Primitive.p,{id:r.descriptionId,...o,ref:t})});$.displayName=U;var B="DialogClose",W=t.forwardRef((e,t)=>{let{__scopeDialog:o,...r}=e,i=x(B,o);return(0,g.jsx)(d.Primitive.button,{type:"button",...r,ref:t,onClick:(0,n.composeEventHandlers)(e.onClick,()=>i.onOpenChange(!1))})});function z(e){return e?"open":"closed"}W.displayName=B,e.s(["Close",0,W,"Content",0,D,"Description",0,$,"Overlay",0,O,"Portal",0,T,"Root",0,k,"Title",0,H,"Trigger",0,A])},178761,969874,e=>{"use strict";var t=e.i(271645),n=e.i(981140),o=e.i(820783),r=e.i(30030),i=e.i(726330),a=e.i(303536),s=e.i(765491),l=e.i(610772),u=e.i(258950),c=e.i(953760),d=e.i(248425),h=e.i(474076),p=t.forwardRef((e,t)=>{let{children:n,width:o=10,height:r=5,...i}=e;return(0,h.jsx)(d.Primitive.svg,{...i,ref:t,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:(0,h.jsx)("polygon",{points:"0,0 30,0 15,10"})})});p.displayName="Arrow";var m=e.i(30207),f=e.i(934620),g="Popper",[y,b]=(0,r.createContextScope)(g),[v,w]=y(g),x=e=>{let{__scopePopper:n,children:o}=e,[r,i]=t.useState(null),[a,s]=t.useState(void 0);return(0,h.jsx)(v,{scope:n,anchor:r,onAnchorChange:i,placementState:a,setPlacementState:s,children:o})};x.displayName=g;var k="PopperAnchor",C=t.forwardRef((e,n)=>{let{__scopePopper:r,virtualRef:i,...a}=e,s=w(k,r),l=t.useRef(null),u=s.onAnchorChange,c=t.useCallback(e=>{l.current=e,e&&u(e)},[u]),p=(0,o.useComposedRefs)(n,c),m=t.useRef(null);t.useEffect(()=>{if(!i)return;let e=m.current;m.current=i.current,e!==m.current&&u(m.current)});let f=s.placementState&&I(s.placementState),g=f?.[0],y=f?.[1];return i?null:(0,h.jsx)(d.Primitive.div,{"data-radix-popper-side":g,"data-radix-popper-align":y,...a,ref:p})});C.displayName=k;var A="PopperContent",[j,R]=y(A),E=t.forwardRef((e,n)=>{let{__scopePopper:r,side:i="bottom",sideOffset:a=0,align:s="center",alignOffset:l=0,arrowPadding:p=0,avoidCollisions:g=!0,collisionBoundary:y=[],collisionPadding:b=0,sticky:v="partial",hideWhenDetached:x=!1,updatePositionStrategy:k="optimized",onPlaced:C,...R}=e,E=w(A,r),[T,S]=t.useState(null),O=(0,o.useComposedRefs)(n,e=>S(e)),[D,_]=t.useState(null),M=function(e){let[n,o]=t.useState(void 0);return(0,f.useLayoutEffect)(()=>{if(e){o({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let n,r;if(!Array.isArray(t)||!t.length)return;let i=t[0];if("borderBoxSize"in i){let e=i.borderBoxSize,t=Array.isArray(e)?e[0]:e;n=t.inlineSize,r=t.blockSize}else n=e.offsetWidth,r=e.offsetHeight;o({width:n,height:r})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}o(void 0)},[e]),n}(D),L=M?.width??0,F=M?.height??0,H="number"==typeof b?b:{top:0,right:0,bottom:0,left:0,...b},U=Array.isArray(y)?y:[y],$=U.length>0,B={padding:H,boundary:U.filter(P),altBoundary:$},{refs:W,floatingStyles:z,placement:q,isPositioned:V,middlewareData:G}=(0,u.useFloating)({strategy:"fixed",placement:i+("center"!==s?"-"+s:""),whileElementsMounted:(...e)=>(0,c.autoUpdate)(...e,{animationFrame:"always"===k}),elements:{reference:E.anchor},middleware:[(0,u.offset)({mainAxis:a+F,alignmentAxis:l}),g&&(0,u.shift)({mainAxis:!0,crossAxis:!1,limiter:"partial"===v?(0,u.limitShift)():void 0,...B}),g&&(0,u.flip)({...B}),(0,u.size)({...B,apply:({elements:e,rects:t,availableWidth:n,availableHeight:o})=>{let{width:r,height:i}=t.reference,a=e.floating.style;a.setProperty("--radix-popper-available-width",`${n}px`),a.setProperty("--radix-popper-available-height",`${o}px`),a.setProperty("--radix-popper-anchor-width",`${r}px`),a.setProperty("--radix-popper-anchor-height",`${i}px`)}}),D&&(0,u.arrow)({element:D,padding:p}),N({arrowWidth:L,arrowHeight:F}),x&&(0,u.hide)({strategy:"referenceHidden",...B,boundary:$?B.boundary:void 0})]}),Y=E.setPlacementState;(0,f.useLayoutEffect)(()=>(Y(q),()=>{Y(void 0)}),[q,Y]);let[K,Z]=I(q),J=(0,m.useCallbackRef)(C);(0,f.useLayoutEffect)(()=>{V&&J?.()},[V,J]);let X=G.arrow?.x,Q=G.arrow?.y,ee=G.arrow?.centerOffset!==0,[et,en]=t.useState();return(0,f.useLayoutEffect)(()=>{T&&en(window.getComputedStyle(T).zIndex)},[T]),(0,h.jsx)("div",{ref:W.setFloating,"data-radix-popper-content-wrapper":"",style:{...z,transform:V?z.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:et,"--radix-popper-transform-origin":[G.transformOrigin?.x,G.transformOrigin?.y].join(" "),...G.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,h.jsx)(j,{scope:r,placedSide:K,placedAlign:Z,onArrowChange:_,arrowX:X,arrowY:Q,shouldHideArrow:ee,children:(0,h.jsx)(d.Primitive.div,{"data-side":K,"data-align":Z,...R,ref:O,style:{...R.style,animation:V?void 0:"none"}})})})});E.displayName=A;var T="PopperArrow",S={top:"bottom",right:"left",bottom:"top",left:"r
210ight"},O=t.forwardRef(function(e,t){let{__scopePopper:n,...o}=e,r=R(T,n),i=S[r.placedSide];return(0,h.jsx)("span",{ref:r.onArrowChange,style:{position:"absolute",left:r.arrowX,top:r.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[r.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[r.placedSide],visibility:r.shouldHideArrow?"hidden":void 0},children:(0,h.jsx)(p,{...o,ref:t,style:{...o.style,display:"block"}})})});function P(e){return null!==e}O.displayName=T;var N=e=>({name:"transformOrigin",options:e,fn(t){let{placement:n,rects:o,middlewareData:r}=t,i=r.arrow?.centerOffset!==0,a=i?0:e.arrowWidth,s=i?0:e.arrowHeight,[l,u]=I(n),c={start:"0%",center:"50%",end:"100%"}[u],d=(r.arrow?.x??0)+a/2,h=(r.arrow?.y??0)+s/2,p="",m="";return"bottom"===l?(p=i?c:`${d}px`,m=`${-s}px`):"top"===l?(p=i?c:`${d}px`,m=`${o.floating.height+s}px`):"right"===l?(p=`${-s}px`,m=i?c:`${h}px`):"left"===l&&(p=`${o.floating.width+s}px`,m=i?c:`${h}px`),{data:{x:p,y:m}}}});function I(e){let[t,n="center"]=e.split("-");return[t,n]}var D=e.i(774606),_=e.i(296626),M=e.i(991918),L=e.i(369340),F=e.i(186312),H=e.i(985369),U="Popover",[$,B]=(0,r.createContextScope)(U,[b]),W=b(),[z,q]=$(U),V=e=>{let{__scopePopover:n,children:o,open:r,defaultOpen:i,onOpenChange:a,modal:s=!1}=e,u=W(n),c=t.useRef(null),[d,p]=t.useState(!1),[m,f]=(0,L.useControllableState)({prop:r,defaultProp:i??!1,onChange:a,caller:U});return(0,h.jsx)(x,{...u,children:(0,h.jsx)(z,{scope:n,contentId:(0,l.useId)(),triggerRef:c,open:m,onOpenChange:f,onOpenToggle:t.useCallback(()=>f(e=>!e),[f]),hasCustomAnchor:d,onCustomAnchorAdd:t.useCallback(()=>p(!0),[]),onCustomAnchorRemove:t.useCallback(()=>p(!1),[]),modal:s,children:o})})};V.displayName=U;var G="PopoverAnchor",Y=t.forwardRef((e,n)=>{let{__scopePopover:o,...r}=e,i=q(G,o),a=W(o),{onCustomAnchorAdd:s,onCustomAnchorRemove:l}=i;return t.useEffect(()=>(s(),()=>l()),[s,l]),(0,h.jsx)(C,{...a,...r,ref:n})});Y.displayName=G;var K="PopoverTrigger",Z=t.forwardRef((e,t)=>{let{__scopePopover:r,...i}=e,a=q(K,r),s=W(r),l=(0,o.useComposedRefs)(t,a.triggerRef),u=(0,h.jsx)(d.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":el(a.open),...i,ref:l,onClick:(0,n.composeEventHandlers)(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?u:(0,h.jsx)(C,{asChild:!0,...s,children:u})});Z.displayName=K;var J="PopoverPortal",[X,Q]=$(J,{forceMount:void 0}),ee=e=>{let{__scopePopover:t,forceMount:n,children:o,container:r}=e,i=q(J,t);return(0,h.jsx)(X,{scope:t,forceMount:n,children:(0,h.jsx)(_.Presence,{present:n||i.open,children:(0,h.jsx)(D.Portal,{asChild:!0,container:r,children:o})})})};ee.displayName=J;var et="PopoverContent",en=t.forwardRef((e,t)=>{let n=Q(et,e.__scopePopover),{forceMount:o=n.forceMount,...r}=e,i=q(et,e.__scopePopover);return(0,h.jsx)(_.Presence,{present:o||i.open,children:i.modal?(0,h.jsx)(er,{...r,ref:t}):(0,h.jsx)(ei,{...r,ref:t})})});en.displayName=et;var eo=(0,M.createSlot)("PopoverContent.RemoveScroll"),er=t.forwardRef((e,r)=>{let i=q(et,e.__scopePopover),a=t.useRef(null),s=(0,o.useComposedRefs)(r,a),l=t.useRef(!1);return t.useEffect(()=>{let e=a.current;if(e)return(0,F.hideOthers)(e)},[]),(0,h.jsx)(H.RemoveScroll,{as:eo,allowPinchZoom:!0,children:(0,h.jsx)(ea,{...e,ref:s,trapFocus:i.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,n.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),l.current||i.triggerRef.current?.focus()}),onPointerDownOutside:(0,n.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;l.current=2===t.button||n},{checkForDefaultPrevented:!1}),onFocusOutside:(0,n.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),ei=t.forwardRef((e,n)=>{let o=q(et,e.__scopePopover),r=t.useRef(!1),i=t.useRef(!1);return(0,h.jsx)(ea,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||o.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,"pointerdown"===t.detail.originalEvent.type&&(i.current=!0));let n=t.target;o.triggerRef.current?.contains(n)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}})}),ea=t.forwardRef((e,t)=>
210{let{__scopePopover:n,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:l,disableOutsidePointerEvents:u,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:p,onInteractOutside:m,...f}=e,g=q(et,n),y=W(n);return(0,a.useFocusGuards)(),(0,h.jsx)(s.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:l,children:(0,h.jsx)(i.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:u,onInteractOutside:m,onEscapeKeyDown:c,onPointerDownOutside:d,onFocusOutside:p,onDismiss:()=>g.onOpenChange(!1),deferPointerDownOutside:!0,children:(0,h.jsx)(E,{"data-state":el(g.open),role:"dialog",id:g.contentId,...y,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),es="PopoverClose";function el(e){return e?"open":"closed"}t.forwardRef((e,t)=>{let{__scopePopover:o,...r}=e,i=q(es,o);return(0,h.jsx)(d.Primitive.button,{type:"button",...r,ref:t,onClick:(0,n.composeEventHandlers)(e.onClick,()=>i.onOpenChange(!1))})}).displayName=es,t.forwardRef((e,t)=>{let{__scopePopover:n,...o}=e,r=W(n);return(0,h.jsx)(O,{...r,...o,ref:t})}).displayName="PopoverArrow",e.s(["Anchor",0,Y,"Content",0,en,"Portal",0,ee,"Root",0,V,"Trigger",0,Z],178761);var eu=e.i(647163);let ec=(0,t.forwardRef)(function({avoidCollisions:e=!0,className:t,collisionPadding:n=12,hideWhenDetached:o=!0,sticky:r="always",...i},a){return(0,h.jsx)(en,{ref:a,avoidCollisions:e,collisionPadding:n,"data-viewport-safe-popover":"",hideWhenDetached:o,sticky:r,className:(0,eu.cn)("max-h-[var(--radix-popover-content-available-height)] max-w-[calc(100vw-1.5rem)] overflow-y-auto",t),...i})});e.s(["ViewportSafePopoverContent",0,ec],969874)},115057,e=>{"use strict";let t=(0,e.i(475254).default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);e.s(["ArrowUpRight",0,t],115057)},245423,e=>{"use strict";let t=(0,e.i(475254).default)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]);e.s(["Bell",0,t],245423)},664659,e=>{"use strict";let t=(0,e.i(475254).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,t],664659)},717521,e=>{"use strict";let t=(0,e.i(475254).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["default",0,t])},531278,e=>{"use strict";var t=e.i(717521);e.s(["Loader2",()=>t.default])},194983,e=>{"use strict";let t=(0,e.i(475254).default)("message-circle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);e.s(["MessageCircle",0,t],194983)},555436,e=>{"use strict";let t=(0,e.i(475254).default)("search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);e.s(["Search",0,t],555436)},284614,e=>{"use strict";let t=(0,e.i(475254).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["User",0,t],284614)},115910,e=>{"use strict";let t=(0,e.i(770703).default)(()=>e.A(896535),{ssr:!1});e.s(["VisualEditing",0,t])},12985,e=>{"use strict";var t=e.i(622289),n=e.i(680902);let o=0;function r(e=1){o=e}function i(){(0,t.c)("[nuqs] Aborting queues"),n.t.abortAll(),n.n.abort().forEach(e=>n.t.queuedQuerySync.emit(e))}var a=e.i(271645),s=e.i(618566);function l(){r(0),i()}function u(){!function(e=i){(o=Math.max(0,o-1))>0||e()}(()=>{queueMicrotask(i)})}function c(){return(0,a.useEffect)(()=>(!function(){var e;if(e="next/app","u"<typeof history||(history.nuqs?.version&&"2.8.9"!==history.nuqs.version?(console.error((0,t.s)(409),history.nuqs.version,"2.8.9",e),!0):!!history.nuqs?.adapters?.includes(e)))return;
210let n=history.replaceState,o=history.pushState;history.replaceState=function(e,t,o){return u(),n.call(history,e,t,o)},history.pushState=function(e,t,n){return u(),o.call(history,e,t,n)},history.nuqs=history.nuqs??{version:"2.8.9",adapters:[]},history.nuqs.adapters.push("next/app")}(),window.addEventListener("popstate",l),()=>window.removeEventListener("popstate",l)),[]),null}let d=(0,t.n)(function(){let e=(0,s.useRouter)(),[n,o]=(0,a.useOptimistic)((0,s.useSearchParams)());return{searchParams:n,updateUrl:(0,a.useCallback)((n,i)=>{(0,a.startTransition)(()=>{i.shallow||o(n);let a=function(e){let{origin:n,pathname:o,hash:r}=location;return n+o+(0,t.o)(e)+r}(n);(0,t.c)("[nuqs next/app] Updating url: %s",a);let s="push"===i.history?history.pushState:history.replaceState;r(3),s.call(history,null,"",a),i.scroll&&window.scrollTo(0,0),i.shallow||e.replace(a,{scroll:!1})})},[]),rateLimitFactor:3,autoResetQueueOnUpdate:!0}});e.s(["NuqsAdapter",0,function({children:e,...t}){return(0,a.createElement)(d,{...t,children:[(0,a.createElement)(a.Suspense,{key:"nuqs-adapter-suspense-navspy",children:(0,a.createElement)(c)}),e]})}],12985)}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.