"use strict";(self.webpackChunksubstack=self.webpackChunksubstack||[]).push([["3277"],{44424:function(e,t,r){r.d(t,{LY:()=>x,Mz:()=>k,dW:()=>M,sN:()=>S,v2:()=>_,xw:()=>P,yU:()=>E});var n=r(7409),l=r(99282),o=r(98848),i=r(16584),a=r(19425),s=r(94184),c=r.n(s),d=r(2564),u=r(98661),p=r(62372),m=r(60684),h=r(71068),f=r(15771),g=r(61254),v=r(19081),Z=r(10903),w=r(47295),b=r(50368),y=r(4615),X=r(58175),L=r(91400),D=r(42450);let _=(0,u.forwardRef)((e,t)=>{var{trigger:r,children:s,ariaLabel:c="View more",hideOnScroll:d,layerOptions:p,layerClassName:h,onOpen:f,onClose:g,useMobileBottomSheet:v=!0,stopPropagation:w=!1,padding:y=4,disableMenu:X=!1,title:_,Theme:S,customShowClass:N,customHideClass:k}=e,x=(0,o._)(e,["trigger","children","ariaLabel","hideOnScroll","layerOptions","layerClassName","onOpen","onClose","useMobileBottomSheet","stopPropagation","padding","disableMenu","title","Theme","customShowClass","customHideClass"]);"function"!=typeof r&&"string"!=typeof r.type&&r.type.$$typeof!==Symbol.for("react.forward_ref")&&console.error("Menu trigger must be a valid component that forwards a ref that react-laag uses, or a native dom element. See Button/IconButton for example, and preferably use those.");let P=(0,L.XA)(),{triggerProps:Y,layerProps:B,renderLayer:E,isOpen:M,setOpen:z}=(0,Z.x)({layerOptions:(0,n._)({auto:!0,possiblePlacements:["bottom-start","bottom-center","bottom-end","top-start","top-center","top-end"],preferY:"bottom"},p),hideOnScroll:d&&!(v&&P),onClose:g}),[F,H]=(0,u.useState)(!1),A=()=>{z(!1),g&&g()},R=u.Children.map(s,e=>(0,u.cloneElement)(e,{useMobileBottomSheet:v,closeMenu:A})),W=(0,u.useMemo)(()=>({useMobileBottomSheet:v,close:A}),[g,v]),K=(0,l._)((0,n._)({},Y),{ariaLabel:c,onClick:e=>{e.preventDefault(),w&&e.stopPropagation(),X||z(!M),M?null==g||g():null==f||f()}});return(0,i.BX)(b.p.Provider,{value:W,children:["function"==typeof r?r(K):(0,u.cloneElement)(r,K),(M||F)&&E(v&&P?(0,i.tZ)(a.u,{appear:!0,show:M,beforeEnter:()=>H(!0),afterLeave:()=>H(!1),className:D.Z.actionSheetTransition,enterFrom:D.Z.actionSheetHide,enterTo:D.Z.actionSheetShow,leaveFrom:D.Z.actionSheetShow,leaveTo:D.Z.actionSheetHide,children:(0,i.tZ)(O,{Theme:S,children:(0,i.tZ)("div",(0,l._)((0,n._)({},B,x),{children:(0,i.tZ)(m.V,{title:_,onClose:A,ref:t,className:h,children:R})}))})}):(0,i.tZ)(T,{isOpen:M,setAnimating:H,children:(0,i.tZ)(O,{Theme:S,children:(0,i.tZ)("div",(0,l._)((0,n._)({},B,x),{children:(0,i.tZ)(I,{isOpen:M,customHideClass:k,customShowClass:N,children:(0,i.tZ)(C,(0,l._)((0,n._)({className:h,ref:t,padding:y},!d&&{style:{overflowY:"auto"}}),{children:R}))})}))})}))]})});function I(e){let{isOpen:t,customHideClass:r,customShowClass:n,children:l}=e;return(0,i.tZ)(a.u,{appear:!0,unmount:!1,show:t,className:D.Z.transition,enterFrom:null!=r?r:D.Z.hide,enterTo:null!=n?n:D.Z.show,leaveFrom:null!=n?n:D.Z.show,leaveTo:null!=r?r:D.Z.hide,children:l})}function T(e){let{children:t,isOpen:r,setAnimating:n}=e;return(0,i.tZ)(a.u,{appear:!0,unmount:!1,show:r,beforeEnter:()=>n(!0),afterLeave:()=>n(!1),className:D.Z.transition,children:t})}let C=(0,u.forwardRef)((e,t)=>{var{className:r,padding:l=4}=e,a=(0,o._)(e,["className","padding"]);return(0,i.tZ)(y.Sf,{children:(0,i.tZ)(v.tu,(0,n._)({className:c()(D.Z.menu,"elevated",r),bg:"elevated",shadow:"md",border:"detail",radius:"sm",sizing:"border-box",showFocus:!0,gap:2,padding:l,ref:t},a))})}),S=(0,u.forwardRef)((e,t)=>{var r;return(0,i.tZ)(N,(0,l._)((0,n._)({},e),{className:c()(D.Z.menuItem,D.Z["priority_".concat(null!==(r=e.priority)&&void 0!==r?r:"primary")],e.className,{[D.Z.disabled]:!!e.disabled,[D.Z.relative]:!!e.hiddenInput}),children:e.children,ref:t}))});(0,h.zo)({width:16,height:16});let N=(0,u.forwardRef)((e,t)=>{var{children:r,onClick:a,closeMenu:s,leading:c,trailing:d,priority:p="primary",className:m,disabled:h,href:g,download:v,hiddenInput:Z}=e,y=(0,o._)(e,["children","onClick","closeMenu","leading","trailing","priority","className","disabled","href","download","hiddenInput"]);let X=g?"a":f.kG,{close:L}=(0,b.X)();return(0,i.BX)(X,(0,l._)((0,n._)({className:m,resetCss:!0,onClick:e=>{!h&&(a&&a(e),!e.defaultPrevented&&(L?L():s&&s()))},href:h?"javascript:void(0)":g,download:v,ref:t},y),{children:[c&&(0,i.tZ)(k,{children:(0,u.cloneElement)(c,{size:16})}),(0,i.tZ)(Y,{priority:p,children:r}),d&&(0,i.tZ)(k,{children:(0,u.cloneElement)(d,{size:16})}),Z&&(0,i.tZ)(w.U,{children:Z})]}))}),k=(0,h.zo)({display:"flex",flex:"auto",width:24,height:24,alignItems:"center",justifyContent:"center"});function x(e){let{content:t,children:r,leading:o,trailing:a=(0,i.tZ)(d.Z,{size:20}),priority:s="primary"}=e,[c,u,m]=(0,p.XI)(),{triggerProps:f,layerProps:g,renderLayer:v}=(0,p.sJ)({isOpen:c,onParentClose:m,auto:!0,snap:!0,placement:"right-start",possiblePlacements:["left-start","right-start","left-end","right-end"],triggerOffset:0});return(0,i.BX)(i.HY,{children:[(0,i.tZ)(S,(0,l._)((0,n._)({},u,f),{onClick:e=>{e.preventDefault()},leading:o,trailing:a,priority:s,children:t})),c&&v((0,i.tZ)(h.xu,(0,l._)((0,n._)({"data-submenu-root":!0},g,u),{children:(0,i.tZ)(C,{className:D.Z.submenu,padding:4,bg:"elevated",children:r})})))]})}function P(e){let{title:t,children:r,isFirst:n=!1}=e;return(0,i.BX)(v.tu,{gap:2,children:[!n&&(0,i.tZ)(g.iz,{paddingY:4,pullX:4}),t&&(0,i.tZ)(B,{children:t}),r]})}function Y(e){let{priority:t,children:r}=e;return(0,i.tZ)(X.xv.B4,{color:"destructive"===t?"accent-red":"accent"===t?"pub-accent":t,weight:"medium",align:"left",flex:"grow",children:r})}function B(e){let{children:t}=e;return(0,i.tZ)(X.xv.B5,{transform:"uppercase",color:"secondary",weight:"regular",paddingX:4,paddingTop:4,children:t})}function E(e){let{children:t}=e;return(0,i.BX)(i.HY,{children:[(0,i.tZ)(v.tu,{paddingY:4,paddingX:8,children:(0,i.tZ)(X.xv.B4,{color:"secondary",children:t})}),(0,i.tZ)(g.iz,{pullX:8})]})}function M(e){let{children:t}=e;return(0,i.tZ)(P,{children:(0,i.tZ)(v.tu,{paddingY:4,paddingX:8,children:(0,i.tZ)(X.xv.B5,{color:"secondary",children:t})})})}function O(e){let{Theme:t,children:r}=e;return t?(0,i.tZ)(t,{children:r}):r}},17172:function(e,t,r){r.d(t,{aZ:()=>o});var n=r(98661),l=r(41302);function o(e){let t=(0,n.useRef)({isDragging:!1,didDrag:!1,startX:0,startY:0,startTime:0,scrollLeft:0,velX:0,pointerId:0,momentumId:null,overscrollX:0}),{handleOverscroll:r,resetOverscroll:o}=function(e){let t=()=>(e.current&&l.Z.overscrollTransition&&(e.current.classList.add(l.Z.overscrollTransition),e.current.style.transform="",setTimeout(()=>{e.current&&l.Z.overscrollTransition&&e.current.classList.remove(l.Z.overscrollTransition)},200)),0);return{handleOverscroll:(e,r,n)=>{let o=e.scrollWidth-e.clientWidth,i=n;l.Z.overscrollTransition&&e.classList.remove(l.Z.overscrollTransition);let a=t=>{let r=-t/5;return e.style.transform="translateX(".concat(r,"px)"),r};return r<0?(e.scrollLeft=0,i=a(r)):r>o?(e.scrollLeft=o,i=a(r-o)):(i=0,t(),e.scrollLeft=r),i},resetOverscroll:t}}(e),i=()=>{null!==t.current.momentumId&&(cancelAnimationFrame(t.current.momentumId),t.current.momentumId=null)},a=()=>{i(),t.current.momentumId=requestAnimationFrame(s)},s=()=>{if(!e.current)return;let r=t.current;e.current.scrollLeft+=r.velX,r.velX*=.9,Math.abs(r.velX)>.5&&(r.momentumId=requestAnimationFrame(s))},c=()=>{let t=e.current;return!!t&&t.scrollWidth>t.clientWidth},d=r=>{let n=t.current;if(!n.isDragging||r.pointerId!==n.pointerId)return;window.removeEventListener("pointerup",d),window.removeEventListener("pointercancel",d),n.didDrag&&r.preventDefault(),n.isDragging=!1,n.overscrollX=o();let l=e.current;if(l&&(l.releasePointerCapture(r.pointerId),n.didDrag)){let e=e=>{e.preventDefault(),e.stopImmediatePropagation()};l.addEventListener("click",e,{capture:!0,once:!0}),setTimeout(()=>{l.removeEventListener("click",e,{capture:!0})},100),n.didDrag=!1}a()};return{props:{onPointerDown:r=>{if("mouse"!==r.pointerType||0!==r.button||r.ctrlKey||r.metaKey||r.shiftKey||r.altKey||!c()||!e.current)return;r.preventDefault();let n=t.current;n.isDragging=!0,n.didDrag=!1,n.startX=r.pageX,n.startY=r.pageY,n.startTime=Date.now(),n.scrollLeft=e.current.scrollLeft,n.pointerId=r.pointerId,i(),window.addEventListener("pointerup",d),window.addEventListener("pointercancel",d)},onPointerMove:n=>{let l=t.current;if(!l.isDragging||!e.current||n.pointerId!==l.pointerId||!c())return;n.preventDefault(),!l.didDrag&&function(e,t,r,n,l){let o=Math.abs(e-r),i=Math.abs(t-n),a=Date.now()-l;return o>2||i>2||a>50}(n.pageX,n.pageY,l.startX,l.startY,l.startTime)&&(e.current.setPointerCapture(n.pointerId),l.didDrag=!0);let o=n.pageX-l.startX,i=e.current.scrollLeft,a=l.scrollLeft-o;l.overscrollX=r(e.current,a,l.overscrollX),l.velX=e.current.scrollLeft-i},onLostPointerCapture:d},didDrag:()=>t.current.didDrag,hasOverflow:c}}}}]);