!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"substack@538433c"};var t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="67266fe0-3590-4378-8bd1-b593523c93f4",e._sentryDebugIdIdentifier="sentry-dbid-67266fe0-3590-4378-8bd1-b593523c93f4")}catch(e){}}();"use strict";(self.webpackChunksubstack=self.webpackChunksubstack||[]).push([["85929"],{75159:function(e,t,n){n.d(t,{b:()=>p});var r=n(17402);function o(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}var i=n(4006),l=Symbol.for("react.lazy"),a=r[" use ".trim().toString()];function u(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===l&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var s=Symbol("radix.slottable");function c(e){return r.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===s}var d=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{var n,l;let s,d,f,p=(l=n=`Primitive.${t}`,(s=r.forwardRef((e,t)=>{let{children:n,...i}=e;if(u(n)&&"function"==typeof a&&(n=a(n._payload)),r.isValidElement(n)){var l;let e,a,u=(l=n,(a=(e=Object.getOwnPropertyDescriptor(l.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?l.ref:(a=(e=Object.getOwnPropertyDescriptor(l,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?l.props.ref:l.props.ref||l.ref),s=function(e,t){let n={...t};for(let r in t){let o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...e)=>{let t=i(...e);return o(...e),t}:o&&(n[r]=o):"style"===r?n[r]={...o,...i}:"className"===r&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}(i,n.props);return n.type!==r.Fragment&&(s.ref=t?function(...e){return t=>{let n=!1,r=e.map(e=>{let r=o(e,t);return n||"function"!=typeof r||(n=!0),r});if(n)return()=>{for(let t=0;t1?r.Children.only(null):null})).displayName=`${l}.SlotClone`,d=s,(f=r.forwardRef((e,t)=>{let{children:n,...o}=e;u(n)&&"function"==typeof a&&(n=a(n._payload));let l=r.Children.toArray(n),s=l.find(c);if(s){let e=s.props.children,n=l.map(t=>t!==s?t:r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null);return(0,i.Y)(d,{...o,ref:t,children:r.isValidElement(e)?r.cloneElement(e,void 0,n):null})}return(0,i.Y)(d,{...o,ref:t,children:n})})).displayName=`${n}.Slot`,f),m=r.forwardRef((e,n)=>{let{asChild:r,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,i.Y)(r?p:t,{...o,ref:n})});return m.displayName=`Primitive.${t}`,{...e,[t]:m}},{}),f=r.forwardRef((e,t)=>(0,i.Y)(d.label,{...e,ref:t,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));f.displayName="Label";var p=f},38146:function(e,t,n){let r;n.d(t,{l9:()=>G,bL:()=>X,UC:()=>Q,Kq:()=>K,ZL:()=>J});var o=n(17402);function i(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),!1===n||!r.defaultPrevented)return t?.(r)}}function l(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function a(...e){return t=>{let n=!1,r=e.map(e=>{let r=l(e,t);return n||"function"!=typeof r||(n=!0),r});if(n)return()=>{for(let t=0;t{},y=e=>{var t;let n,r,{present:i,children:l}=e,a=function(e){var t,n;let[r,i]=o.useState(),l=o.useRef(null),a=o.useRef(e),u=o.useRef("none"),[s,c]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},o.useReducer((e,t)=>n[e][t]??e,t));return o.useEffect(()=>{let e=g(l.current);u.current="mounted"===s?e:"none"},[s]),m(()=>{let t=l.current,n=a.current;if(n!==e){let r=u.current,o=g(t);e?c("MOUNT"):"none"===o||t?.display==="none"?c("UNMOUNT"):n&&r!==o?c("ANIMATION_OUT"):c("UNMOUNT"),a.current=e}},[e,c]),m(()=>{if(r){let e,t=r.ownerDocument.defaultView??window,n=n=>{let o=g(l.current).includes(CSS.escape(n.animationName));if(n.target===r&&o&&(c("ANIMATION_END"),!a.current)){let n=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=n)})}},o=e=>{e.target===r&&(u.current=g(l.current))};return r.addEventListener("animationstart",o),r.addEventListener("animationcancel",n),r.addEventListener("animationend",n),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",o),r.removeEventListener("animationcancel",n),r.removeEventListener("animationend",n)}}c("ANIMATION_END")},[r,c]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:o.useCallback(e=>{l.current=e?getComputedStyle(e):null,i(e)},[])}}(i),s="function"==typeof l?l({present:a.isPresent}):o.Children.only(l),c=u(a.ref,(t=s,(r=(n=Object.getOwnPropertyDescriptor(t.props,"ref")?.get)&&"isReactWarning"in n&&n.isReactWarning)?t.ref:(r=(n=Object.getOwnPropertyDescriptor(t,"ref")?.get)&&"isReactWarning"in n&&n.isReactWarning)?t.props.ref:t.props.ref||t.ref));return"function"==typeof l||a.isPresent?o.cloneElement(s,{ref:c}):null};function g(e){return e?.animationName||"none"}y.displayName="Presence";var h=Symbol("radix.slottable");function v(e){return o.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===h}var b=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{var n,r;let i,l,u,c=(r=n=`Primitive.${t}`,(i=o.forwardRef((e,t)=>{let{children:n,...r}=e;if(o.isValidElement(n)){var i;let e,l,u=(i=n,(l=(e=Object.getOwnPropertyDescriptor(i.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?i.ref:(l=(e=Object.getOwnPropertyDescriptor(i,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?i.props.ref:i.props.ref||i.ref),s=function(e,t){let n={...t};for(let r in t){let o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...e)=>{let t=i(...e);return o(...e),t}:o&&(n[r]=o):"style"===r?n[r]={...o,...i}:"className"===r&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}(r,n.props);return n.type!==o.Fragment&&(s.ref=t?a(t,u):u),o.cloneElement(n,s)}return o.Children.count(n)>1?o.Children.only(null):null})).displayName=`${r}.SlotClone`,l=i,(u=o.forwardRef((e,t)=>{let{children:n,...r}=e,i=o.Children.toArray(n),a=i.find(v);if(a){let e=a.props.children,n=i.map(t=>t!==a?t:o.Children.count(e)>1?o.Children.only(null):o.isValidElement(e)?e.props.children:null);return(0,s.Y)(l,{...r,ref:t,children:o.isValidElement(e)?o.cloneElement(e,void 0,n):null})}return(0,s.Y)(l,{...r,ref:t,children:n})})).displayName=`${n}.Slot`,u),d=o.forwardRef((e,n)=>{let{asChild:r,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,s.Y)(r?c:t,{...o,ref:n})});return d.displayName=`Primitive.${t}`,{...e,[t]:d}},{}),w=n(97372),x=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),C=o.forwardRef((e,t)=>(0,s.Y)(b.span,{...e,ref:t,style:{...x,...e.style}}));C.displayName="VisuallyHidden";var[E,T]=function(e,t=[]){let n=[],r=()=>{let t=n.map(e=>o.createContext(e));return function(n){let r=n?.[e]||t;return o.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return r.scopeName=e,[function(t,r){let i=o.createContext(r),l=n.length;n=[...n,r];let a=t=>{let{scope:n,children:r,...a}=t,u=n?.[e]?.[l]||i,c=o.useMemo(()=>a,Object.values(a));return(0,s.Y)(u.Provider,{value:c,children:r})};return a.displayName=t+"Provider",[a,function(n,a){let u=a?.[e]?.[l]||i,s=o.useContext(u);if(s)return s;if(void 0!==r)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let o=n(e)[`__scope${r}`];return{...t,...o}},{});return o.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}(r,...t)]}("Tooltip",[f.Bk]),N=(0,f.Bk)(),R="TooltipProvider",_="tooltip.open",[O,M]=E(R),k=e=>{let{__scopeTooltip:t,delayDuration:n=700,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:l}=e,a=o.useRef(!0),u=o.useRef(!1),c=o.useRef(0);return o.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,s.Y)(O,{scope:t,isOpenDelayedRef:a,delayDuration:n,onOpen:o.useCallback(()=>{window.clearTimeout(c.current),a.current=!1},[]),onClose:o.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:o.useCallback(e=>{u.current=e},[]),disableHoverableContent:i,children:l})};k.displayName=R;var P="Tooltip",[Y,L]=E(P),I=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:l,disableHoverableContent:a,delayDuration:u}=e,c=M(P,e.__scopeTooltip),p=N(t),[m,y]=o.useState(null),g=(0,d.B)(),h=o.useRef(0),v=a??c.disableHoverableContent,b=u??c.delayDuration,x=o.useRef(!1),[C,E]=(0,w.i)({prop:r,defaultProp:i??!1,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(_))):c.onClose(),l?.(e)},caller:P}),T=o.useMemo(()=>C?x.current?"delayed-open":"instant-open":"closed",[C]),R=o.useCallback(()=>{window.clearTimeout(h.current),h.current=0,x.current=!1,E(!0)},[E]),O=o.useCallback(()=>{window.clearTimeout(h.current),h.current=0,E(!1)},[E]),k=o.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{x.current=!0,E(!0),h.current=0},b)},[b,E]);return o.useEffect(()=>()=>{h.current&&(window.clearTimeout(h.current),h.current=0)},[]),(0,s.Y)(f.bL,{...p,children:(0,s.Y)(Y,{scope:t,contentId:g,open:C,stateAttribute:T,trigger:m,onTriggerChange:y,onTriggerEnter:o.useCallback(()=>{c.isOpenDelayedRef.current?k():R()},[c.isOpenDelayedRef,k,R]),onTriggerLeave:o.useCallback(()=>{v?O():(window.clearTimeout(h.current),h.current=0)},[O,v]),onOpen:R,onClose:O,disableHoverableContent:v,children:n})})};I.displayName=P;var D="TooltipTrigger",S=o.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,l=L(D,n),a=M(D,n),c=N(n),d=u(t,o.useRef(null),l.onTriggerChange),p=o.useRef(!1),m=o.useRef(!1),y=o.useCallback(()=>p.current=!1,[]);return o.useEffect(()=>()=>document.removeEventListener("pointerup",y),[y]),(0,s.Y)(f.Mz,{asChild:!0,...c,children:(0,s.Y)(b.button,{"aria-describedby":l.open?l.contentId:void 0,"data-state":l.stateAttribute,...r,ref:d,onPointerMove:i(e.onPointerMove,e=>{"touch"!==e.pointerType&&(m.current||a.isPointerInTransitRef.current||(l.onTriggerEnter(),m.current=!0))}),onPointerLeave:i(e.onPointerLeave,()=>{l.onTriggerLeave(),m.current=!1}),onPointerDown:i(e.onPointerDown,()=>{l.open&&l.onClose(),p.current=!0,document.addEventListener("pointerup",y,{once:!0})}),onFocus:i(e.onFocus,()=>{p.current||l.onOpen()}),onBlur:i(e.onBlur,l.onClose),onClick:i(e.onClick,l.onClose)})})});S.displayName=D;var A="TooltipPortal",[$,W]=E(A,{forceMount:void 0}),U=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:o}=e,i=L(A,t);return(0,s.Y)($,{scope:t,forceMount:n,children:(0,s.Y)(y,{present:n||i.open,children:(0,s.Y)(p.Z,{asChild:!0,container:o,children:r})})})};U.displayName=A;var j="TooltipContent",F=o.forwardRef((e,t)=>{let n=W(j,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...i}=e,l=L(j,e.__scopeTooltip);return(0,s.Y)(y,{present:r||l.open,children:l.disableHoverableContent?(0,s.Y)(z,{side:o,...i,ref:t}):(0,s.Y)(V,{side:o,...i,ref:t})})}),V=o.forwardRef((e,t)=>{let n=L(j,e.__scopeTooltip),r=M(j,e.__scopeTooltip),i=o.useRef(null),l=u(t,i),[a,c]=o.useState(null),{trigger:d,onClose:f}=n,p=i.current,{onPointerInTransitChange:m}=r,y=o.useCallback(()=>{c(null),m(!1)},[m]),g=o.useCallback((e,t)=>{let n,r=e.currentTarget,o={x:e.clientX,y:e.clientY},i=function(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),i=Math.abs(t.left-e.x);switch(Math.min(n,r,o,i)){case i:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw Error("unreachable")}}(o,r.getBoundingClientRect());c(((n=[...function(e,t,n=5){let r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}(o,i),...function(e){let{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}(t.getBoundingClientRect())].slice()).sort((e,t)=>e.xt.x?1:e.yt.y)),function(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return(n.pop(),1===t.length&&1===n.length&&t[0].x===n[0].x&&t[0].y===n[0].y)?t:t.concat(n)}(n))),m(!0)},[m]);return o.useEffect(()=>()=>y(),[y]),o.useEffect(()=>{if(d&&p){let e=e=>g(e,p),t=e=>g(e,d);return d.addEventListener("pointerleave",e),p.addEventListener("pointerleave",t),()=>{d.removeEventListener("pointerleave",e),p.removeEventListener("pointerleave",t)}}},[d,p,g,y]),o.useEffect(()=>{if(a){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=d?.contains(t)||p?.contains(t),o=!function(e,t){let{x:n,y:r}=e,o=!1;for(let e=0,i=t.length-1;er!=d>r&&n<(c-u)*(r-s)/(d-s)+u&&(o=!o)}return o}(n,a);r?y():o&&(y(),f())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[d,p,a,f,y]),(0,s.Y)(z,{...e,ref:l})}),[B,H]=E(P,{isInside:!1}),Z=((r=({children:e})=>(0,s.Y)(s.FK,{children:e})).displayName="TooltipContent.Slottable",r.__radixId=h,r),z=o.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:l,onPointerDownOutside:a,...u}=e,d=L(j,n),p=N(n),{onClose:m}=d;return o.useEffect(()=>(document.addEventListener(_,m),()=>document.removeEventListener(_,m)),[m]),o.useEffect(()=>{if(d.trigger){let e=e=>{let t=e.target;t?.contains(d.trigger)&&m()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[d.trigger,m]),(0,s.Y)(c.qW,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:l,onPointerDownOutside:a,onFocusOutside:e=>e.preventDefault(),onDismiss:m,children:(0,s.FD)(f.UC,{"data-state":d.stateAttribute,...p,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,s.Y)(Z,{children:r}),(0,s.Y)(B,{scope:n,isInside:!0,children:(0,s.Y)(C,{id:d.contentId,role:"tooltip",children:i||r})})]})})});F.displayName=j;var q="TooltipArrow";o.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,o=N(n);return H(q,n).isInside?null:(0,s.Y)(f.i3,{...o,...r,ref:t})}).displayName=q;var K=k,X=I,G=S,J=U,Q=F}}]);