chatroom-cli 1.101.5 → 1.102.0
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.
|
@@ -112,4 +112,4 @@ Error generating stack: `+a.message+`
|
|
|
112
112
|
*
|
|
113
113
|
* This source code is licensed under the MIT license found in the
|
|
114
114
|
* LICENSE file in the root directory of this source tree.
|
|
115
|
-
*/var tv;function rA(){if(tv)return Vd;tv=1;var n=Qo(),i=hS();function r(p,y){return p===y&&(p!==0||1/p===1/y)||p!==p&&y!==y}var o=typeof Object.is=="function"?Object.is:r,c=i.useSyncExternalStore,f=n.useRef,d=n.useEffect,m=n.useMemo,g=n.useDebugValue;return Vd.useSyncExternalStoreWithSelector=function(p,y,v,S,E){var x=f(null);if(x.current===null){var w={hasValue:!1,value:null};x.current=w}else w=x.current;x=m(function(){function D(F){if(!C){if(C=!0,j=F,F=S(F),E!==void 0&&w.hasValue){var B=w.value;if(E(B,F))return k=B}return k=F}if(B=k,o(j,F))return B;var U=S(F);return E!==void 0&&E(B,U)?(j=F,B):(j=F,k=U)}var C=!1,j,k,q=v===void 0?null:v;return[function(){return D(y())},q===null?void 0:function(){return D(q())}]},[y,v,S,E]);var _=c(p,x[0],x[1]);return d(function(){w.hasValue=!0,w.value=_},[_]),g(_),_},Vd}var nv;function aA(){return nv||(nv=1,Yd.exports=rA()),Yd.exports}var oA=aA();const lA=wh(19),cA=lA?fA:dA;function mS(n,i,r,o,c){return cA(n,i,r,o,c)}function uA(n,i,r,o,c){const f=O.useCallback(()=>i(n.getSnapshot(),r,o,c),[n,i,r,o,c]);return sA.useSyncExternalStore(n.subscribe,f,f)}function fA(n,i,r,o,c){return uA(n,i,r,o,c)}function dA(n,i,r,o,c){return oA.useSyncExternalStoreWithSelector(n.subscribe,n.getSnapshot,n.getSnapshot,f=>i(f,r,o,c))}class hA{constructor(i){tt(this,"subscribe",i=>(this.listeners.add(i),()=>{this.listeners.delete(i)}));tt(this,"getSnapshot",()=>this.state);this.state=i,this.listeners=new Set,this.updateTick=0}setState(i){if(this.state===i)return;this.state=i,this.updateTick+=1;const r=this.updateTick;for(const o of this.listeners){if(r!==this.updateTick)return;o(i)}}update(i){for(const r in i)if(!Object.is(this.state[r],i[r])){this.setState({...this.state,...i});return}}set(i,r){Object.is(this.state[i],r)||this.setState({...this.state,[i]:r})}notifyAll(){const i={...this.state};this.setState(i)}use(i,r,o,c){return mS(this,i,r,o,c)}}class pS extends hA{constructor(i,r={},o){super(i),this.context=r,this.selectors=o}useSyncedValue(i,r){O.useDebugValue(i);const o=this;Xe(()=>{o.state[i]!==r&&o.set(i,r)},[o,i,r])}useSyncedValueWithCleanup(i,r){const o=this;Xe(()=>(o.state[i]!==r&&o.set(i,r),()=>{o.set(i,void 0)}),[o,i,r])}useSyncedValues(i){const r=this,o=Object.values(i);Xe(()=>{r.update(i)},[r,...o])}useControlledProp(i,r){O.useDebugValue(i);const o=this,c=r!==void 0;Xe(()=>{c&&!Object.is(o.state[i],r)&&o.setState({...o.state,[i]:r})},[o,i,r,c])}select(i,r,o,c){const f=this.selectors[i];return f(this.state,r,o,c)}useState(i,r,o,c){return O.useDebugValue(i),mS(this,this.selectors[i],r,o,c)}useContextCallback(i,r){O.useDebugValue(i);const o=$e(r??Rh);this.context[i]=o}useStateSetter(i){const r=O.useRef(void 0);return r.current===void 0&&(r.current=o=>{this.set(i,o)}),r.current}observe(i,r){let o;typeof i=="function"?o=i:o=this.selectors[i];let c=o(this.state);return r(c,c,this),this.subscribe(f=>{const d=o(f);if(!Object.is(c,d)){const m=c;c=d,r(d,m,this)}})}}const mA={open:Ve(n=>n.open),transitionStatus:Ve(n=>n.transitionStatus),domReferenceElement:Ve(n=>n.domReferenceElement),referenceElement:Ve(n=>n.positionReference??n.referenceElement),floatingElement:Ve(n=>n.floatingElement),floatingId:Ve(n=>n.floatingId)};class au extends pS{constructor(r){const{syncOnly:o,nested:c,onOpenChange:f,triggerElements:d,...m}=r;super({...m,positionReference:m.referenceElement,domReferenceElement:m.referenceElement},{onOpenChange:f,dataRef:{current:{}},events:iS(),nested:c,triggerElements:d},mA);tt(this,"syncOpenEvent",(r,o)=>{(!r||!this.state.open||o!=null&&gO(o))&&(this.context.dataRef.current.openEvent=r?o:void 0)});tt(this,"dispatchOpenChange",(r,o)=>{this.syncOpenEvent(r,o.event);const c={open:r,reason:o.reason,nativeEvent:o.event,nested:this.context.nested,triggerElement:o.trigger};this.context.events.emit("openchange",c)});tt(this,"setOpen",(r,o)=>{var c,f,d,m;if(this.syncOnly){(f=(c=this.context).onOpenChange)==null||f.call(c,r,o);return}this.dispatchOpenChange(r,o),(m=(d=this.context).onOpenChange)==null||m.call(d,r,o)});this.syncOnly=o}}function pA(n){const{popupStore:i,treatPopupAsFloatingElement:r=!1,floatingRootContext:o,floatingId:c,nested:f,onOpenChange:d}=n,m=i.useState("open"),g=i.useState("activeTriggerElement"),p=i.useState(r?"popupElement":"positionerElement"),y=i.context.triggerElements,v=d,S=O.useRef(null);o===void 0&&S.current===null&&(S.current=new au({open:m,transitionStatus:void 0,referenceElement:g,floatingElement:p,triggerElements:y,onOpenChange:v,floatingId:c,syncOnly:!0,nested:f}));const E=o??S.current;return i.useSyncedValue("floatingId",c),Xe(()=>{const x={open:m,floatingId:c,referenceElement:g,floatingElement:p};Je(g)&&(x.domReferenceElement=g),E.state.positionReference===E.state.referenceElement&&(x.positionReference=g),E.update(x)},[m,c,g,p,E]),E.context.onOpenChange=v,E.context.nested=f,E}function gA(n,i=!1,r=!1){const[o,c]=O.useState(n&&i?"idle":void 0),[f,d]=O.useState(n);return n&&!f&&(d(!0),c("starting")),!n&&f&&o!=="ending"&&!r&&c("ending"),!n&&!f&&o==="ending"&&c(void 0),Xe(()=>{if(!n&&f&&o!=="ending"&&r){const m=di.request(()=>{c("ending")});return()=>{di.cancel(m)}}},[n,f,o,r]),Xe(()=>{if(!n||i)return;const m=di.request(()=>{c(void 0)});return()=>{di.cancel(m)}},[i,n]),Xe(()=>{if(!n||!i)return;n&&f&&o!=="idle"&&c("starting");const m=di.request(()=>{c("idle")});return()=>{di.cancel(m)}},[i,n,f,o]),{mounted:f,setMounted:d,transitionStatus:o}}let Bo=function(n){return n.startingStyle="data-starting-style",n.endingStyle="data-ending-style",n}({});const yA={[Bo.startingStyle]:""},bA={[Bo.endingStyle]:""},vA={transitionStatus(n){return n==="starting"?yA:n==="ending"?bA:null}};function gS(n,i=!1,r=!0){const o=Hh();return $e((c,f=null)=>{o.cancel();const d=Li(n);if(d==null)return;const m=d,g=()=>{Ms.flushSync(c)};if(typeof m.getAnimations!="function"||globalThis.BASE_UI_ANIMATIONS_DISABLED){c();return}function p(){Promise.all(m.getAnimations().map(y=>y.finished)).then(()=>{f!=null&&f.aborted||g()}).catch(()=>{if(r){f!=null&&f.aborted||g();return}const y=m.getAnimations();!(f!=null&&f.aborted)&&y.length>0&&y.some(v=>v.pending||v.playState!=="finished")&&p()})}if(i){const y=Bo.startingStyle;if(!m.hasAttribute(y)){o.request(p);return}const v=new MutationObserver(()=>{m.hasAttribute(y)||(v.disconnect(),p())});v.observe(m,{attributes:!0,attributeFilter:[y]}),f==null||f.addEventListener("abort",()=>v.disconnect(),{once:!0});return}o.request(p)})}function yS(n){const{enabled:i=!0,open:r,ref:o,onComplete:c}=n,f=$e(c),d=gS(o,r,!1);O.useEffect(()=>{if(!i)return;const m=new AbortController;return d(f,m.signal),()=>{m.abort()}},[i,r,f,d])}const bS={tabIndex:-1,[uh]:""};function SA(n){return i=>i==="touch"?n.current:!0}function xA(n,i,r=!1){const o=Po(),c=_a()!=null,f=O.useRef(null);n===void 0&&f.current===null&&(f.current=i(o,c));const d=n??f.current;return pA({popupStore:d,treatPopupAsFloatingElement:r,floatingRootContext:d.state.floatingRootContext,floatingId:o,nested:c,onOpenChange:d.setOpen}),{store:d,internalStore:f.current}}function EA(n,i){const r=O.useRef(null),o=O.useRef(null);return O.useCallback(c=>{if(n===void 0)return;let f=!1;if(r.current!==null){const d=r.current,m=o.current,g=i.context.triggerElements.getById(d);m&&g===m&&(i.context.triggerElements.delete(d),f=!0),r.current=null,o.current=null}if(c!==null&&(r.current=n,o.current=c,i.context.triggerElements.add(n,c),f=!0),f){const d=i.context.triggerElements.size;i.select("open")&&i.state.triggerCount!==d&&i.set("triggerCount",d)}},[i,n])}function TA(n,i,r,o=!1){i?n.preventUnmountingOnClose=!1:o&&(n.preventUnmountingOnClose=!0);const c=(r==null?void 0:r.id)??null;(c||i)&&(n.activeTriggerId=c,n.activeTriggerElement=r??null)}function wA(n){let i=!1;return n.preventUnmountOnClose=()=>{i=!0},()=>i}function RA(n,i,r,o){nA(()=>{i===void 0&&n.state.open===!1&&r&&(n.state={...n.state,open:!0,activeTriggerId:o,preventUnmountingOnClose:!1})})}function OA(n,i,r,o){const c=r.useState("isMountedByTrigger",n),f=EA(n,r),d=$e(m=>{if(f(m),!m)return;const g=r.select("open"),p=r.select("activeTriggerId");if(p===n){r.update({activeTriggerElement:m,...g?o:null});return}p==null&&g&&r.update({activeTriggerId:n,activeTriggerElement:m,...o})});return Xe(()=>{c&&r.update({activeTriggerElement:i.current,...o})},[c,r,i,...Object.values(o)]),{registerTrigger:d,isMountedByThisTrigger:c}}function CA(n,i={}){const{closeOnActiveTriggerUnmount:r=!1}=i,o=n.useState("open"),c=n.useState("triggerCount");Xe(()=>{if(!o){n.state.triggerCount!==0&&n.set("triggerCount",0);return}const f=n.context.triggerElements.size,d={};n.state.triggerCount!==f&&(d.triggerCount=f);const m=n.select("activeTriggerId");let g=null;if(m){const p=n.context.triggerElements.getById(m);p?p!==n.state.activeTriggerElement&&(d.activeTriggerElement=p):g=m}if(!g&&!m&&f===1){const p=n.context.triggerElements.entries().next();if(!p.done){const[y,v]=p.value;d.activeTriggerId=y,d.activeTriggerElement=v}}(d.triggerCount!==void 0||d.activeTriggerId!==void 0||d.activeTriggerElement!==void 0)&&n.update(d),g&&r&&queueMicrotask(()=>{if(n.select("open")&&n.select("activeTriggerId")===g&&!n.context.triggerElements.getById(g)){const p=Xt(xO);n.setOpen(!1,p),p.isCanceled||n.update({activeTriggerId:null,activeTriggerElement:null})}})},[o,n,c,r])}function AA(n,i,r){const{mounted:o,setMounted:c,transitionStatus:f}=gA(n),d=i.useState("preventUnmountingOnClose"),m=n?!1:d;i.useSyncedValues({mounted:o,transitionStatus:f,preventUnmountingOnClose:m});const g=$e(()=>{var p,y;c(!1),i.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1,preventUnmountingOnClose:!1}),r==null||r(),(y=(p=i.context).onOpenChangeComplete)==null||y.call(p,!1)});return yS({enabled:o&&!n&&!m,open:n,ref:i.context.popupRef,onComplete(){n||g()}}),{forceUnmount:g,transitionStatus:f}}function _A(n,i){n.useSyncedValues(i),Xe(()=>()=>{n.update({activeTriggerProps:Wt,inactiveTriggerProps:Wt,popupProps:Wt})},[n])}function MA(n,i){Xe(()=>{!i&&n.state.openMethod!==null&&n.set("openMethod",null)},[i,n]),Xe(()=>()=>{n.state.openMethod!==null&&n.set("openMethod",null)},[n])}class Kh{constructor(){this.elementsSet=new Set,this.idMap=new Map}add(i,r){const o=this.idMap.get(i);o!==r&&(o!==void 0&&this.elementsSet.delete(o),this.elementsSet.add(r),this.idMap.set(i,r))}delete(i){const r=this.idMap.get(i);r&&(this.elementsSet.delete(r),this.idMap.delete(i))}hasElement(i){return this.elementsSet.has(i)}hasMatchingElement(i){for(const r of this.elementsSet)if(i(r))return!0;return!1}getById(i){return this.idMap.get(i)}entries(){return this.idMap.entries()}elements(){return this.elementsSet.values()}get size(){return this.idMap.size}}function NA(){return new au({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:new Kh,floatingId:void 0,syncOnly:!1,nested:!1,onOpenChange:void 0})}function DA(){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:NA(),floatingId:void 0,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:Wt,inactiveTriggerProps:Wt,popupProps:Wt}}function zA(n,i,r=!1){return new au({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:n,floatingId:i,syncOnly:!0,nested:r,onOpenChange:void 0})}const No=Ve(n=>n.triggerIdProp??n.activeTriggerId),Zh=Ve(n=>n.openProp??n.open),iv=Ve(n=>{var r;return(((r=n.popupElement)==null?void 0:r.id)??n.floatingId)||void 0});function vS(n,i){return i!==void 0&&Zh(n)&&No(n)===i}function kA(n,i){return vS(n,i)?!0:i!==void 0&&Zh(n)&&No(n)==null&&n.triggerCount===1}const jA={open:Zh,mounted:Ve(n=>n.mounted),transitionStatus:Ve(n=>n.transitionStatus),floatingRootContext:Ve(n=>n.floatingRootContext),triggerCount:Ve(n=>n.triggerCount),preventUnmountingOnClose:Ve(n=>n.preventUnmountingOnClose),payload:Ve(n=>n.payload),activeTriggerId:No,activeTriggerElement:Ve(n=>n.mounted?n.activeTriggerElement:null),popupId:iv,isTriggerActive:Ve((n,i)=>i!==void 0&&No(n)===i),isOpenedByTrigger:Ve((n,i)=>vS(n,i)),isMountedByTrigger:Ve((n,i)=>i!==void 0&&No(n)===i&&n.mounted),triggerProps:Ve((n,i)=>i?n.activeTriggerProps:n.inactiveTriggerProps),triggerPopupId:Ve((n,i)=>kA(n,i)?iv(n):void 0),popupProps:Ve(n=>n.popupProps),popupElement:Ve(n=>n.popupElement),positionerElement:Ve(n=>n.positionerElement)};function UA(n){const{open:i=!1,onOpenChange:r,elements:o={}}=n,c=Po(),f=_a()!=null,d=Qi(()=>new au({open:i,transitionStatus:void 0,onOpenChange:r,referenceElement:o.reference??null,floatingElement:o.floating??null,triggerElements:new Kh,floatingId:c,syncOnly:!1,nested:f})).current;return Xe(()=>{const m={open:i,floatingId:c};o.reference!==void 0&&(m.referenceElement=o.reference,m.domReferenceElement=Je(o.reference)?o.reference:null),o.floating!==void 0&&(m.floatingElement=o.floating),d.update(m)},[i,c,o.reference,o.floating,d]),d.context.onOpenChange=r,d.context.nested=f,d}function LA(n={}){const{nodeId:i,externalTree:r}=n,o=UA(n),c=n.rootContext||o,f=c.useState("referenceElement"),d=c.useState("floatingElement"),m=c.useState("domReferenceElement"),g=c.useState("open"),p=c.useState("floatingId"),[y,v]=O.useState(null),[S,E]=O.useState(void 0),[x,w]=O.useState(void 0),_=O.useRef(null),D=Ma(r),C=O.useMemo(()=>({reference:f,floating:d,domReference:m}),[f,d,m]),j=PC({...n,elements:{...C,...y&&{reference:y}}}),k=Je(S)?S:null,q=x===void 0?c.state.floatingElement:x;c.useSyncedValue("referenceElement",S??null),c.useSyncedValue("domReferenceElement",S===void 0?m:k),c.useSyncedValue("floatingElement",q);const F=O.useCallback(ae=>{const W=Je(ae)?{getBoundingClientRect:()=>ae.getBoundingClientRect(),getClientRects:()=>ae.getClientRects(),contextElement:ae}:ae;v(W),j.refs.setReference(W)},[j.refs]),B=O.useCallback(ae=>{(Je(ae)||ae===null)&&(_.current=ae,E(ae)),(Je(j.refs.reference.current)||j.refs.reference.current===null||ae!==null&&!Je(ae))&&j.refs.setReference(ae)},[j.refs,E]),U=O.useCallback(ae=>{w(ae),j.refs.setFloating(ae)},[j.refs]),K=O.useMemo(()=>({...j.refs,setReference:B,setFloating:U,setPositionReference:F,domReference:_}),[j.refs,B,U,F]),se=O.useMemo(()=>({...j.elements,domReference:m}),[j.elements,m]),pe=O.useMemo(()=>({...j,dataRef:c.context.dataRef,open:g,onOpenChange:c.setOpen,events:c.context.events,floatingId:p,refs:K,elements:se,nodeId:i,rootStore:c}),[j,K,se,i,c,g,p]);return Xe(()=>{m&&(_.current=m)},[m]),Xe(()=>{c.context.dataRef.current.floatingContext=pe;const ae=D==null?void 0:D.nodesRef.current.find(W=>W.id===i);ae&&(ae.context=pe)}),O.useMemo(()=>({...j,context:pe,refs:K,elements:se,rootStore:c}),[j,K,se,pe,c])}class Ph{constructor(){tt(this,"dispose",()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()});tt(this,"disposeEffect",()=>this.dispose);this.pointerType=void 0,this.interactedInside=!1,this.handler=void 0,this.blockMouseMove=!0,this.performedPointerEventsMutation=!1,this.pointerEventsScopeElement=null,this.pointerEventsReferenceElement=null,this.pointerEventsFloatingElement=null,this.restTimeoutPending=!1,this.openChangeTimeout=new ei,this.restTimeout=new ei,this.handleCloseOptions=void 0}static create(){return new Ph}}const Zc=new WeakMap;function Pc(n){var r,o,c;if(!n.performedPointerEventsMutation)return;const i=n.pointerEventsScopeElement;i&&Zc.get(i)===n&&((r=n.pointerEventsScopeElement)==null||r.style.removeProperty("pointer-events"),(o=n.pointerEventsReferenceElement)==null||o.style.removeProperty("pointer-events"),(c=n.pointerEventsFloatingElement)==null||c.style.removeProperty("pointer-events"),Zc.delete(i)),n.performedPointerEventsMutation=!1,n.pointerEventsScopeElement=null,n.pointerEventsReferenceElement=null,n.pointerEventsFloatingElement=null}function SS(n,i){const{scopeElement:r,referenceElement:o,floatingElement:c}=i,f=Zc.get(r);f&&f!==n&&Pc(f),Pc(n),n.performedPointerEventsMutation=!0,n.pointerEventsScopeElement=r,n.pointerEventsReferenceElement=o,n.pointerEventsFloatingElement=c,Zc.set(r,n),r.style.pointerEvents="none",o.style.pointerEvents="auto",c.style.pointerEvents="auto"}function xS(n){const i=n.context.dataRef.current,r=Qi(()=>i.hoverInteractionState??Ph.create()).current;return i.hoverInteractionState||(i.hoverInteractionState=r),Lh(i.hoverInteractionState.disposeEffect),i.hoverInteractionState}function BA(n,i={}){const{enabled:r=!0,closeDelay:o=0,nodeId:c}=i,f="rootStore"in n?n.rootStore:n,d=f.useState("open"),m=f.useState("floatingElement"),g=f.useState("domReferenceElement"),{dataRef:p}=f.context,y=Ma(),v=_a(),S=xS(f),E=Ea(),x=$e(()=>{var D;return L0((D=p.current.openEvent)==null?void 0:D.type,S.interactedInside)}),w=$e(()=>{var D;return SO((D=p.current.openEvent)==null?void 0:D.type)}),_=$e(()=>{Pc(S)});Xe(()=>{d||(S.pointerType=void 0,S.restTimeoutPending=!1,S.interactedInside=!1,_())},[d,S,_]),O.useEffect(()=>_,[_]),Xe(()=>{var D,C,j,k,q;if(r&&d&&(D=S.handleCloseOptions)!=null&&D.blockPointerEvents&&w()&&Je(g)&&m){const F=g,B=m,U=ut(m),K=(j=(C=y==null?void 0:y.nodesRef.current.find(W=>W.id===v))==null?void 0:C.context)==null?void 0:j.elements.floating;K&&(K.style.pointerEvents="");const se=S.pointerEventsScopeElement!==B?S.pointerEventsScopeElement:null,pe=K!==B?K:null,ae=((q=(k=S.handleCloseOptions)==null?void 0:k.getScope)==null?void 0:q.call(k))??se??pe??F.closest("[data-rootownerid]")??U.body;return SS(S,{scopeElement:ae,referenceElement:F,floatingElement:B}),()=>{_()}}},[r,d,g,m,S,w,y,v,_]),O.useEffect(()=>{if(!r)return;function D(){return!!(y&&v&&_s(y.nodesRef.current,v).length>0)}function C(U){const K=fh(o,"close",S.pointerType),se=()=>{f.setOpen(!1,Xt(xn,U)),y==null||y.events.emit("floating.closed",U)};K?S.openChangeTimeout.start(K,se):(S.openChangeTimeout.clear(),se())}function j(U){const K=$n(U);if(!bO(K)){S.interactedInside=!1;return}S.interactedInside=(K==null?void 0:K.closest("[aria-haspopup]"))!=null}function k(){S.openChangeTimeout.clear(),E.clear(),y==null||y.events.off("floating.closed",F),_()}function q(U){var ae;if(D()&&y){y.events.on("floating.closed",F);return}if(U0(U.relatedTarget,f.context.triggerElements))return;const K=((ae=p.current.floatingContext)==null?void 0:ae.nodeId)??c,se=U.relatedTarget;if(!(y&&K&&Je(se)&&_s(y.nodesRef.current,K,!1).some(W=>{var le;return Me((le=W.context)==null?void 0:le.elements.floating,se)}))){if(S.handler){S.handler(U);return}_(),w()&&!x()&&C(U)}}function F(U){!y||!v||D()||E.start(0,()=>{y.events.off("floating.closed",F),f.setOpen(!1,Xt(xn,U)),y.events.emit("floating.closed",U)})}const B=m;return qi(B&&Ke(B,"mouseenter",k),B&&Ke(B,"mouseleave",q),B&&Ke(B,"pointerdown",j,!0),()=>{y==null||y.events.off("floating.closed",F)})},[r,m,f,p,o,c,w,x,_,S,y,v,E])}const HA={current:null};function qA(n,i={}){var ie;const{enabled:r=!0,delay:o=0,handleClose:c=null,mouseOnly:f=!1,restMs:d=0,move:m=!0,triggerElementRef:g=HA,externalTree:p,isActiveTrigger:y=!0,getHandleCloseContext:v,isClosing:S,shouldOpen:E}=i,x="rootStore"in n?n.rootStore:n,{dataRef:w,events:_}=x.context,D=Ma(p),C=xS(x),j=O.useRef(!1),k=En(c),q=En(o),F=En(d),B=En(r),U=En(E),K=En(S),se=$e(()=>{var N;return L0((N=w.current.openEvent)==null?void 0:N.type,C.interactedInside)}),pe=$e(()=>{var N;return((N=U.current)==null?void 0:N.call(U))!==!1}),ae=$e((N,Q,I)=>{const oe=x.context.triggerElements;if(oe.hasElement(Q))return!N||!Me(N,Q);if(!Je(I))return!1;const Y=I;return oe.hasMatchingElement(T=>Me(T,Y))&&(!N||!Me(N,Y))}),W=$e(()=>{if(!C.handler)return;ut(x.select("domReferenceElement")).removeEventListener("mousemove",C.handler),C.handler=void 0}),le=$e(()=>{Pc(C)});return y&&(C.handleCloseOptions=(ie=k.current)==null?void 0:ie.__options),O.useEffect(()=>W,[W]),O.useEffect(()=>{if(!r)return;function N(Q){Q.open?j.current=!1:(j.current=Q.reason===xn,W(),C.openChangeTimeout.clear(),C.restTimeout.clear(),C.blockMouseMove=!0,C.restTimeoutPending=!1)}return _.on("openchange",N),()=>{_.off("openchange",N)}},[r,_,C,W]),O.useEffect(()=>{if(!r)return;function N(Y,T=!0){const H=fh(q.current,"close",C.pointerType);H?C.openChangeTimeout.start(H,()=>{x.setOpen(!1,Xt(xn,Y)),D==null||D.events.emit("floating.closed",Y)}):T&&(C.openChangeTimeout.clear(),x.setOpen(!1,Xt(xn,Y)),D==null||D.events.emit("floating.closed",Y))}const Q=g.current??(y?x.select("domReferenceElement"):null);if(!Je(Q))return;function I(Y){var ft;if(C.openChangeTimeout.clear(),C.blockMouseMove=!1,f&&!jo(C.pointerType))return;const T=Nb(F.current),H=fh(q.current,"open",C.pointerType),te=$n(Y),ne=Y.currentTarget??null,re=x.select("domReferenceElement");let ee=ne;if(Je(te)&&!x.context.triggerElements.hasElement(te)){for(const vt of x.context.triggerElements.elements())if(Me(vt,te)){ee=vt;break}}Je(ne)&&Je(re)&&!x.context.triggerElements.hasElement(ne)&&Me(ne,re)&&(ee=re);const ge=ee==null?!1:ae(re,ee,te),ce=x.select("open"),fe=((ft=K.current)==null?void 0:ft.call(K))??x.select("transitionStatus")==="ending",Ze=!ce&&fe&&j.current,nt=!ge&&Je(ee)&&Je(re)&&Me(re,ee)&&Ze,ve=T>0&&!H,ze=ge&&(ce||Ze)||nt,Oe=!ce||ge;if(ze){pe()&&x.setOpen(!0,Xt(xn,Y,ee));return}ve||(H?C.openChangeTimeout.start(H,()=>{Oe&&pe()&&x.setOpen(!0,Xt(xn,Y,ee))}):Oe&&pe()&&x.setOpen(!0,Xt(xn,Y,ee)))}function oe(Y){if(se()){le();return}W();const T=x.select("domReferenceElement"),H=ut(T);C.restTimeout.clear(),C.restTimeoutPending=!1;const te=w.current.floatingContext??(v==null?void 0:v());if(U0(Y.relatedTarget,x.context.triggerElements))return;if(k.current&&te){x.select("open")||C.openChangeTimeout.clear();const re=g.current;C.handler=k.current({...te,tree:D,x:Y.clientX,y:Y.clientY,onClose(){le(),W(),B.current&&!se()&&re===x.select("domReferenceElement")&&N(Y,!0)}}),H.addEventListener("mousemove",C.handler),C.handler(Y);return}(C.pointerType==="touch"?!Me(x.select("floatingElement"),Y.relatedTarget):!0)&&N(Y)}return m?qi(Ke(Q,"mousemove",I,{once:!0}),Ke(Q,"mouseenter",I),Ke(Q,"mouseleave",oe)):qi(Ke(Q,"mouseenter",I),Ke(Q,"mouseleave",oe))},[W,le,w,q,x,r,k,C,y,ae,se,f,m,F,g,D,B,v,K,pe]),O.useMemo(()=>{if(!r)return;function N(Q){C.pointerType=Q.pointerType}return{onPointerDown:N,onPointerEnter:N,onMouseMove(Q){var re,ee,ge;const{nativeEvent:I}=Q,oe=Q.currentTarget,Y=x.select("domReferenceElement"),T=x.select("open"),H=ae(Y,oe,Q.target);if(f&&!jo(C.pointerType))return;if(T&&H&&((re=C.handleCloseOptions)!=null&&re.blockPointerEvents)){const ce=x.select("floatingElement");if(ce){const fe=((ge=(ee=C.handleCloseOptions)==null?void 0:ee.getScope)==null?void 0:ge.call(ee))??oe.ownerDocument.body;SS(C,{scopeElement:fe,referenceElement:oe,floatingElement:ce})}}const te=Nb(F.current);if(T&&!H||te===0||!H&&C.restTimeoutPending&&Q.movementX**2+Q.movementY**2<2)return;C.restTimeout.clear();function ne(){if(C.restTimeoutPending=!1,se())return;const ce=x.select("open");!C.blockMouseMove&&(!ce||H)&&pe()&&x.setOpen(!0,Xt(xn,I,oe))}C.pointerType==="touch"?Ms.flushSync(()=>{ne()}):H&&T?ne():(C.restTimeoutPending=!0,C.restTimeout.start(te,ne))}}},[r,C,se,ae,f,x,F,pe])}const sv=.1,YA=sv*sv,lt=.5;function wc(n,i,r,o,c,f){return o>=i!=f>=i&&n<=(c-r)*(i-o)/(f-o)+r}function Rc(n,i,r,o,c,f,d,m,g,p){let y=!1;return wc(n,i,r,o,c,f)&&(y=!y),wc(n,i,c,f,d,m)&&(y=!y),wc(n,i,d,m,g,p)&&(y=!y),wc(n,i,g,p,r,o)&&(y=!y),y}function VA(n,i,r){return n>=r.x&&n<=r.x+r.width&&i>=r.y&&i<=r.y+r.height}function Oc(n,i,r,o,c,f){const d=Math.min(r,c),m=Math.max(r,c),g=Math.min(o,f),p=Math.max(o,f);return n>=d&&n<=m&&i>=g&&i<=p}function GA(n={}){const{blockPointerEvents:i=!1}=n,r=new ei,o=({x:c,y:f,placement:d,elements:m,onClose:g,nodeId:p,tree:y})=>{const v=d==null?void 0:d.split("-")[0];let S=!1,E=null,x=null,w=typeof performance<"u"?performance.now():0;function _(C,j){const k=performance.now(),q=k-w;if(E===null||x===null||q===0)return E=C,x=j,w=k,!1;const F=C-E,B=j-x,U=F*F+B*B,K=q*q*YA;return E=C,x=j,w=k,U<K}function D(){r.clear(),g()}return function(j){r.clear();const k=m.domReference,q=m.floating;if(!k||!q||v==null||c==null||f==null)return;const{clientX:F,clientY:B}=j,U=$n(j),K=j.type==="mouseleave",se=Me(q,U),pe=Me(k,U);if(se&&(S=!0,!K))return;if(pe&&(S=!1,!K)){S=!0;return}if(K&&Je(j.relatedTarget)&&Me(q,j.relatedTarget))return;function ae(){return!!(y&&_s(y.nodesRef.current,p).length>0)}function W(){ae()||D()}if(ae())return;const le=k.getBoundingClientRect(),ie=q.getBoundingClientRect(),N=c>ie.right-ie.width/2,Q=f>ie.bottom-ie.height/2,I=ie.width>le.width,oe=ie.height>le.height,Y=(I?le:ie).left,T=(I?le:ie).right,H=(oe?le:ie).top,te=(oe?le:ie).bottom;if(v==="top"&&f>=le.bottom-1||v==="bottom"&&f<=le.top+1||v==="left"&&c>=le.right-1||v==="right"&&c<=le.left+1){W();return}let ne=!1;switch(v){case"top":ne=Oc(F,B,Y,le.top+1,T,ie.bottom-1);break;case"bottom":ne=Oc(F,B,Y,ie.top+1,T,le.bottom-1);break;case"left":ne=Oc(F,B,ie.right-1,te,le.left+1,H);break;case"right":ne=Oc(F,B,le.right-1,te,ie.left+1,H);break}if(ne)return;if(S&&!VA(F,B,le)){W();return}if(!K&&_(F,B)){W();return}let re=!1;switch(v){case"top":{const ee=I?lt/2:lt*4,ge=I||N?c+ee:c-ee,ce=I?c-ee:N?c+ee:c-ee,fe=f+lt+1,Ze=N||I?ie.bottom-lt:ie.top,nt=N?I?ie.bottom-lt:ie.top:ie.bottom-lt;re=Rc(F,B,ge,fe,ce,fe,ie.left,Ze,ie.right,nt);break}case"bottom":{const ee=I?lt/2:lt*4,ge=I||N?c+ee:c-ee,ce=I?c-ee:N?c+ee:c-ee,fe=f-lt,Ze=N||I?ie.top+lt:ie.bottom,nt=N?I?ie.top+lt:ie.bottom:ie.top+lt;re=Rc(F,B,ge,fe,ce,fe,ie.left,Ze,ie.right,nt);break}case"left":{const ee=oe?lt/2:lt*4,ge=oe||Q?f+ee:f-ee,ce=oe?f-ee:Q?f+ee:f-ee,fe=c+lt+1,Ze=Q||oe?ie.right-lt:ie.left,nt=Q?oe?ie.right-lt:ie.left:ie.right-lt;re=Rc(F,B,Ze,ie.top,nt,ie.bottom,fe,ge,fe,ce);break}case"right":{const ee=oe?lt/2:lt*4,ge=oe||Q?f+ee:f-ee,ce=oe?f-ee:Q?f+ee:f-ee,fe=c-lt,Ze=Q||oe?ie.left+lt:ie.right,nt=Q?oe?ie.left+lt:ie.right:ie.left+lt;re=Rc(F,B,fe,ge,fe,ce,Ze,ie.top,nt,ie.bottom);break}}re?S||r.start(40,W):W()}};return o.__options={...n,blockPointerEvents:i},o}const ES=O.createContext(void 0);function Io(n){const i=O.useContext(ES);if(i===void 0&&!n)throw new Error(ur(47));return i}function QA(){return{...DA(),disabled:!1,modal:!1,focusManagerModal:!1,instantType:void 0,openMethod:null,openChangeReason:null,titleElementId:void 0,descriptionElementId:void 0,stickIfOpen:!0,nested:!1,openOnHover:!1,closeDelay:0,hasViewport:!1}}const XA={...jA,disabled:Ve(n=>n.disabled),instantType:Ve(n=>n.instantType),openMethod:Ve(n=>n.openMethod),openChangeReason:Ve(n=>n.openChangeReason),modal:Ve(n=>n.modal),focusManagerModal:Ve(n=>n.focusManagerModal),stickIfOpen:Ve(n=>n.stickIfOpen),titleElementId:Ve(n=>n.titleElementId),descriptionElementId:Ve(n=>n.descriptionElementId),openOnHover:Ve(n=>n.openOnHover),closeDelay:Ve(n=>n.closeDelay),hasViewport:Ve(n=>n.hasViewport)};class Ih extends pS{constructor(r,o,c=!1){const f={...QA(),...r},d=new Kh;f.open&&(r==null?void 0:r.mounted)===void 0&&(f.mounted=!0),f.floatingRootContext=zA(d,o,c);super(f,{popupRef:O.createRef(),backdropRef:O.createRef(),internalBackdropRef:O.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerFocusTargetRef:O.createRef(),beforeContentFocusGuardRef:O.createRef(),stickIfOpenTimeout:new ei,triggerElements:d},XA);tt(this,"setOpen",(r,o)=>{var y,v;const c=o.reason===xn,f=o.reason===Uo&&o.event.detail===0,d=!r&&(o.reason===H0||o.reason==null),m=wA(o),g=this.select("activeTriggerId");if(!r&&o.reason===EO&&o.trigger==null&&g!=null&&(o.trigger=this.context.triggerElements.getById(g)??this.select("activeTriggerElement")??void 0),(v=(y=this.context).onOpenChange)==null||v.call(y,r,o),o.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(r,o);const p=()=>{const S={open:r,openChangeReason:o.reason};TA(S,r,o.trigger,m()),this.update(S)};c?(this.set("stickIfOpen",!0),this.context.stickIfOpenTimeout.start(PO,()=>{this.set("stickIfOpen",!1)}),Ms.flushSync(p)):p(),f||d?this.set("instantType",f?"click":"dismiss"):o.reason===Lo?this.set("instantType","focus"):this.set("instantType",void 0)});tt(this,"disposeEffect",()=>this.context.stickIfOpenTimeout.disposeEffect())}static useStore(r,o){const{store:c,internalStore:f}=xA(r,(d,m)=>new Ih(o,d,m));return O.useEffect(()=>f==null?void 0:f.disposeEffect(),[f]),c}}function rv({props:n}){const{children:i,open:r,defaultOpen:o=!1,onOpenChange:c,onOpenChangeComplete:f,modal:d=!1,handle:m,triggerId:g,defaultTriggerId:p=null}=n,y=Ih.useStore(m==null?void 0:m.store,{modal:d,open:o,openProp:r,activeTriggerId:p,triggerIdProp:g});RA(y,r,o,p),y.useControlledProp("openProp",r),y.useControlledProp("triggerIdProp",g);const v=y.useState("open"),S=y.useState("mounted"),E=y.useState("payload"),x=_a()!=null;y.useContextCallback("onOpenChange",c),y.useContextCallback("onOpenChangeComplete",f),MA(y,v),CA(y);const{forceUnmount:w}=AA(v,y,()=>{y.update({stickIfOpen:!0,openChangeReason:null})});y.useSyncedValues({modal:d,nested:x}),O.useEffect(()=>{v||y.context.stickIfOpenTimeout.clear()},[y,v]);const _=O.useCallback(()=>{y.setOpen(!1,Xt(TO))},[y]);O.useImperativeHandle(n.actionsRef,()=>({unmount:w,close:_}),[w,_]);const D=v||S,C=O.useMemo(()=>({store:y}),[y]);return A.jsxs(ES.Provider,{value:C,children:[D&&A.jsx(KA,{store:y,modal:d}),typeof i=="function"?i({payload:E}):i]})}function FA(n){return Io(!0)?A.jsx(rv,{props:n}):A.jsx(rC,{children:A.jsx(rv,{props:n})})}function KA({store:n,modal:i}){const r=n.useState("floatingRootContext"),o=hC(r,{outsidePressEvent:{mouse:i==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}}),c=o.reference??Wt,f=o.trigger??Wt,d=O.useMemo(()=>Fo(bS,o.floating),[o.floating]);return _A(n,{activeTriggerProps:c,inactiveTriggerProps:f,popupProps:d}),null}let Jh=function(n){return n.open="data-open",n.closed="data-closed",n[n.startingStyle=Bo.startingStyle]="startingStyle",n[n.endingStyle=Bo.endingStyle]="endingStyle",n.anchorHidden="data-anchor-hidden",n.side="data-side",n.align="data-align",n}({}),ph=function(n){return n.popupOpen="data-popup-open",n.pressed="data-pressed",n}({});const ZA={[ph.popupOpen]:""},PA={[ph.popupOpen]:"",[ph.pressed]:""},IA={[Jh.open]:""},JA={[Jh.closed]:""},WA={[Jh.anchorHidden]:""},$A={open(n){return n?ZA:null}},e2={open(n){return n?PA:null}},TS={open(n){return n?IA:JA},anchorHidden(n){return n?WA:null}},t2=300;function n2(n){return Po(n,"base-ui")}function i2(n,i){const r=O.useRef(null);function o(f){Ms.flushSync(()=>{n.setOpen(!1,Xt(Lo,f.nativeEvent,f.currentTarget))});const d=QO(r.current);d==null||d.focus()}function c(f){var m;const d=n.select("positionerElement");if(d&&ra(f,d))(m=n.context.beforeContentFocusGuardRef.current)==null||m.focus();else{Ms.flushSync(()=>{n.setOpen(!1,Xt(Lo,f.nativeEvent,f.currentTarget))});let g=GO(n.context.triggerFocusTargetRef.current||i.current);for(;g!==null&&Me(d,g);){const p=g;if(g=Qh(g),g===p)break}g==null||g.focus()}}return{preFocusGuardRef:r,handlePreFocusGuardFocus:o,handleFocusTargetFocus:c}}function s2(n){const i=O.useRef(""),r=O.useCallback(c=>{c.defaultPrevented||(i.current=c.pointerType,n(c,c.pointerType))},[n]);return{onClick:O.useCallback(c=>{if(c.detail===0){n(c,"keyboard");return}"pointerType"in c?n(c,c.pointerType):n(c,i.current),i.current=""},[n]),onPointerDown:r}}function r2(n,i){const r=$e((f,d)=>{(typeof n=="function"?n():n)||i(d||(su?"touch":""))}),{onClick:o,onPointerDown:c}=s2(r);return O.useMemo(()=>({onClick:o,onPointerDown:c}),[o,c])}const a2=O.forwardRef(function(i,r){const{render:o,className:c,style:f,disabled:d=!1,nativeButton:m=!0,handle:g,payload:p,openOnHover:y=!1,delay:v=t2,closeDelay:S=0,id:E,...x}=i,w=Io(!0),_=(g==null?void 0:g.store)??(w==null?void 0:w.store);if(!_)throw new Error(ur(74));const D=n2(E),C=_.useState("isTriggerActive",D),j=_.useState("floatingRootContext"),k=_.useState("isOpenedByTrigger",D),q=_.useState("triggerPopupId",D),F=O.useRef(null),{registerTrigger:B,isMountedByThisTrigger:U}=OA(D,F,_,{payload:p,disabled:d,openOnHover:y,closeDelay:S}),K=_.useState("openChangeReason"),se=_.useState("stickIfOpen"),pe=_.useState("openMethod"),ae=_.useState("focusManagerModal"),W=qA(j,{enabled:!d&&j!=null&&y&&(pe!=="touch"||K!==Uo),mouseOnly:!0,move:!1,handleClose:GA(),restMs:v,delay:{close:S},triggerElementRef:F,isActiveTrigger:C,isClosing:()=>_.select("transitionStatus")==="ending"}),le=uC(j,{enabled:j!=null,stickIfOpen:se}),ie=r2(()=>_.select("open"),re=>{_.set("openMethod",re)}),N=_.useState("triggerProps",U),{getButtonProps:Q,buttonRef:I}=N0({disabled:d,native:m}),oe={open(re){return re&&K===Uo?e2.open(re):$A.open(re)}},{preFocusGuardRef:Y,handlePreFocusGuardFocus:T,handleFocusTargetFocus:H}=i2(_,F),ne=Ra("button",i,{state:{disabled:d,open:k},ref:[I,r,B,F],props:[le.reference,W,N,ie,{[eS]:"",id:D,"aria-haspopup":"dialog","aria-expanded":k,"aria-controls":q},x,Q],stateAttributesMapping:oe});return U&&!ae?A.jsxs(O.Fragment,{children:[A.jsx(Ta,{ref:Y,onFocus:T}),A.jsx(O.Fragment,{children:ne},D),A.jsx(Ta,{ref:_.context.triggerFocusTargetRef,onFocus:H})]}):A.jsx(O.Fragment,{children:ne},D)}),wS=O.createContext(void 0);function o2(){const n=O.useContext(wS);if(n===void 0)throw new Error(ur(45));return n}const l2=O.forwardRef(function(i,r){const{keepMounted:o=!1,...c}=i,{store:f}=Io();return f.useState("mounted")||o?A.jsx(wS.Provider,{value:o,children:A.jsx(tC,{ref:r,...c})}):null});function c2(n){return wh(19)?n:n?"true":void 0}const RS=O.createContext(void 0);function u2(){const n=O.useContext(RS);if(!n)throw new Error(ur(46));return n}const f2=O.createContext(void 0);function d2(){const n=O.useContext(f2);return(n==null?void 0:n.direction)??"ltr"}const h2=n=>({name:"arrow",options:n,async fn(i){var oe,Y;const{x:r,y:o,placement:c,rects:f,platform:d,elements:m,middlewareData:g}=i,{element:p,padding:y=0,offsetParent:v="real"}=Gi(n,i)||{};if(p==null)return{};const S=Y0(y),E={x:r,y:o},x=Vh(c),w=Yh(x),_=await d.getDimensions(p),D=x==="y",C=D?"top":"left",j=D?"bottom":"right",k=D?"clientHeight":"clientWidth",q=f.reference[w]+f.reference[x]-E[x]-f.floating[w],F=E[x]-f.reference[x],B=v==="real"?await((oe=d.getOffsetParent)==null?void 0:oe.call(d,p)):m.floating;let U=m.floating[k]||f.floating[w];(!U||!await((Y=d.isElement)==null?void 0:Y.call(d,B)))&&(U=m.floating[k]||f.floating[w]);const K=q/2-F/2,se=U/2-_[w]/2-1,pe=Math.min(S[C],se),ae=Math.min(S[j],se),W=pe,le=U-_[w]-ae,ie=U/2-_[w]/2+K,N=q0(W,ie,le),Q=!g.arrow&&Ds(c)!=null&&ie!==N&&f.reference[w]/2-(ie<W?pe:ae)-_[w]/2<0,I=Q?ie<W?ie-W:ie-le:0;return{[x]:E[x]+I,data:{[x]:N,centerOffset:ie-N-I,...Q&&{alignmentOffset:I}},reset:Q}}}),m2=(n,i)=>({...h2(n),options:[n,i]}),p2=tA().fn,g2={name:"hide",async fn(n){var m;const{width:i,height:r,x:o,y:c}=n.rects.reference,f=i===0&&r===0&&o===0&&c===0;return{data:{referenceHidden:((m=(await p2(n)).data)==null?void 0:m.referenceHidden)||f}}}},jc={sideX:"left",sideY:"top"},y2={name:"adaptiveOrigin",async fn(n){var C,j;const{x:i,y:r,rects:{floating:o},elements:{floating:c},platform:f,strategy:d,placement:m}=n,g=kt(c),p=g.getComputedStyle(c);if(!(p.transitionDuration!=="0s"&&p.transitionDuration!==""))return{x:i,y:r,data:jc};const v=await((C=f.getOffsetParent)==null?void 0:C.call(f,c));let S={width:0,height:0};if(d==="fixed"&&(g!=null&&g.visualViewport))S={width:g.visualViewport.width,height:g.visualViewport.height};else if(v===g){const k=ut(c);S={width:k.documentElement.clientWidth,height:k.documentElement.clientHeight}}else await((j=f.isElement)==null?void 0:j.call(f,v))&&(S=await f.getDimensions(v));const E=Dn(m);let x=i,w=r;E==="left"&&(x=S.width-(i+o.width)),E==="top"&&(w=S.height-(r+o.height));const _=E==="left"?"right":jc.sideX,D=E==="top"?"bottom":jc.sideY;return{x,y:w,data:{sideX:_,sideY:D}}}};function OS(n,i,r){const o=n==="inline-start"||n==="inline-end";return{top:"top",right:o?r?"inline-start":"inline-end":"right",bottom:"bottom",left:o?r?"inline-end":"inline-start":"left"}[i]}function av(n,i,r){const{rects:o,placement:c}=n;return{side:OS(i,Dn(c),r),align:Ds(c)||"center",anchor:{width:o.reference.width,height:o.reference.height},positioner:{width:o.floating.width,height:o.floating.height}}}function b2(n){var gr,pi;const{anchor:i,positionMethod:r="absolute",side:o="bottom",sideOffset:c=0,align:f="center",alignOffset:d=0,collisionBoundary:m,collisionPadding:g=5,sticky:p=!1,arrowPadding:y=5,disableAnchorTracking:v=!1,inline:S,keepMounted:E=!1,floatingRootContext:x,mounted:w,collisionAvoidance:_,shiftCrossAxis:D=!1,nodeId:C,adaptiveOrigin:j,lazyFlip:k=!1,externalTree:q}=n,[F,B]=O.useState(null);!w&&F!==null&&B(null);const U=_.side||"flip",K=_.align||"flip",se=_.fallbackAxisSide||"end",pe=typeof i=="function"?i:void 0,ae=$e(pe),W=pe?ae:i,le=En(i),ie=En(w),Q=d2()==="rtl",I=F||{top:"top",right:"right",bottom:"bottom",left:"left","inline-end":Q?"left":"right","inline-start":Q?"right":"left"}[o],oe=f==="center"?I:`${I}-${f}`;let Y=g;const T=1,H=o==="bottom"?T:0,te=o==="top"?T:0,ne=o==="right"?T:0,re=o==="left"?T:0;typeof Y=="number"?Y={top:Y+H,right:Y+re,bottom:Y+te,left:Y+ne}:Y&&(Y={top:(Y.top||0)+H,right:(Y.right||0)+re,bottom:(Y.bottom||0)+te,left:(Y.left||0)+ne});const ee={boundary:m==="clipping-ancestors"?"clippingAncestors":m,padding:Y},ge=O.useRef(null),ce=En(c),fe=En(d),Ze=typeof c!="function"?c:0,nt=typeof d!="function"?d:0,ve=[];S&&ve.push(S),ve.push(IC(Fe=>{const Ot=av(Fe,o,Q),Vt=typeof ce.current=="function"?ce.current(Ot):ce.current,Ft=typeof fe.current=="function"?fe.current(Ot):fe.current;return{mainAxis:Vt,crossAxis:Ft,alignmentAxis:Ft}},[Ze,nt,Q,o]));const ze=K==="none"&&U!=="shift",Oe=!ze&&(p||D||U==="shift"),ft=U==="none"?null:$C({...ee,padding:{top:Y.top+T,right:Y.right+T,bottom:Y.bottom+T,left:Y.left+T},mainAxis:!D&&U==="flip",crossAxis:K==="flip"?"alignment":!1,fallbackAxisSideDirection:se}),vt=ze?null:JC(Fe=>{const Ot=ut(Fe.elements.floating).documentElement;return{...ee,rootBoundary:D?{x:0,y:0,width:Ot.clientWidth,height:Ot.clientHeight}:void 0,mainAxis:K!=="none",crossAxis:Oe,limiter:p||D?void 0:WC(Vt=>{if(!ge.current)return{};const{width:Ft,height:an}=ge.current.getBoundingClientRect(),wn=Fn(Dn(Vt.placement)),ni=wn==="y"?Ft:an,ii=wn==="y"?Y.left+Y.right:Y.top+Y.bottom;return{offset:ni/2+ii/2}})}},[ee,p,D,Y,K]);U==="shift"||K==="shift"||f==="center"?ve.push(vt,ft):ve.push(ft,vt),ve.push(eA({...ee,apply({elements:{floating:Fe},availableWidth:Ot,availableHeight:Vt,rects:Ft}){if(!ie.current)return;const an=Fe.style;an.setProperty("--available-width",`${Ot}px`),an.setProperty("--available-height",`${Vt}px`);const wn=kt(Fe).devicePixelRatio||1,{x:ni,y:ii,width:dn,height:Na}=Ft.reference,yr=(Math.round((ni+dn)*wn)-Math.round(ni*wn))/wn,br=(Math.round((ii+Na)*wn)-Math.round(ii*wn))/wn;an.setProperty("--anchor-width",`${yr}px`),an.setProperty("--anchor-height",`${br}px`)}}),m2(Fe=>({element:ge.current||ut(Fe.elements.floating).createElement("div"),padding:y,offsetParent:"floating"}),[y]),{name:"transformOrigin",fn(Fe){var Sr,el,tl;const{elements:Ot,middlewareData:Vt,placement:Ft,rects:an,y:wn}=Fe,ni=Dn(Ft),ii=Fn(ni),dn=ge.current,Na=((Sr=Vt.arrow)==null?void 0:Sr.x)||0,yr=((el=Vt.arrow)==null?void 0:el.y)||0,br=(dn==null?void 0:dn.clientWidth)||0,Jo=(dn==null?void 0:dn.clientHeight)||0,zs=Na+br/2,vr=yr+Jo/2,Wo=Math.abs(((tl=Vt.shift)==null?void 0:tl.y)||0),$o=an.reference.height/2,hn=typeof c=="function"?c(av(Fe,o,Q)):c,Ut=Wo>hn,en={top:`${zs}px calc(100% + ${hn}px)`,bottom:`${zs}px ${-hn}px`,left:`calc(100% + ${hn}px) ${vr}px`,right:`${-hn}px ${vr}px`}[ni],Fi=`${zs}px ${an.reference.y+$o-wn}px`;return Ot.floating.style.setProperty("--transform-origin",Oe&&ii==="y"&&Ut?Fi:en),{}}},g2,j),Xe(()=>{!w&&x&&x.update({referenceElement:null,floatingElement:null,domReferenceElement:null,positionReference:null})},[w,x]);const Re=O.useMemo(()=>({elementResize:!v&&typeof ResizeObserver<"u",layoutShift:!v&&typeof IntersectionObserver<"u"}),[v]),{refs:ke,elements:Ee,x:mt,y:dt,middlewareData:je,update:xt,placement:ue,context:xe,isPositioned:ht,floatingStyles:Be}=LA({rootContext:x,open:E?w:void 0,placement:oe,middleware:ve,strategy:r,whileElementsMounted:E?void 0:(...Fe)=>Jb(...Fe,Re),nodeId:C,externalTree:q}),{sideX:pt,sideY:jt}=je.adaptiveOrigin||jc,sn=ht?r:"fixed",rn=O.useMemo(()=>{const Fe=j?{position:sn,[pt]:mt,[jt]:dt}:{position:sn,...Be};return ht||(Fe.opacity=0),Fe},[j,sn,pt,mt,jt,dt,Be,ht]),ti=O.useRef(null);Xe(()=>{if(!w)return;const Fe=le.current,Ot=typeof Fe=="function"?Fe():Fe,Ft=(ov(Ot)?Ot.current:Ot)||null||null;Ft!==ti.current&&(ke.setPositionReference(Ft),ti.current=Ft)},[w,ke,W,le]),O.useEffect(()=>{if(!w)return;const Fe=le.current;typeof Fe!="function"&&ov(Fe)&&Fe.current!==ti.current&&(ke.setPositionReference(Fe.current),ti.current=Fe.current)},[w,ke,W,le]),O.useEffect(()=>{if(E&&w&&Ee.reference&&Ee.floating)return Jb(Ee.reference,Ee.floating,xt,Re)},[E,w,Ee,xt,Re]);const fn=Dn(ue),qt=OS(o,fn,Q),Tn=Ds(ue)||"center",Yt=!!((gr=je.hide)!=null&&gr.referenceHidden);Xe(()=>{k&&w&&ht&&B(fn)},[k,w,ht,fn]);const mr=O.useMemo(()=>{var Fe,Ot;return{position:"absolute",top:(Fe=je.arrow)==null?void 0:Fe.y,left:(Ot=je.arrow)==null?void 0:Ot.x}},[je.arrow]),pr=((pi=je.arrow)==null?void 0:pi.centerOffset)!==0;return O.useMemo(()=>({positionerStyles:rn,arrowStyles:mr,arrowRef:ge,arrowUncentered:pr,side:qt,align:Tn,physicalSide:fn,anchorHidden:Yt,refs:ke,context:xe,isPositioned:ht,update:xt}),[rn,mr,ge,pr,qt,Tn,fn,Yt,ke,xe,ht,xt])}function ov(n){return n!=null&&"current"in n}const v2=O.forwardRef(function(i,r){const{cutout:o,...c}=i;let f;if(o){const d=o.getBoundingClientRect();f=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${d.left}px ${d.top}px,${d.left}px ${d.bottom}px,${d.right}px ${d.bottom}px,${d.right}px ${d.top}px,${d.left}px ${d.top}px)`}return A.jsx("div",{ref:r,role:"presentation","data-base-ui-inert":"",...c,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:f}})});function CS(n){return n==="starting"?IO:Wt}function S2(n,i,{styles:r,transitionStatus:o,props:c,refs:f,hidden:d,inert:m=!1}){const g={...r};return m&&(g.pointerEvents="none"),Ra("div",n,{state:i,ref:f,props:[{role:"presentation",hidden:d,style:g},CS(o),c],stateAttributesMapping:TS})}let lv={},cv={},uv="";function x2(n){if(typeof document>"u")return!1;const i=ut(n);return kt(i).innerWidth-i.documentElement.clientWidth>0}function E2(n){if(!(typeof CSS<"u"&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||typeof document>"u")return!1;const r=ut(n),o=r.documentElement,c=r.body,f=hr(o)?o:c,d=f.style.overflowY,m=o.style.scrollbarGutter;o.style.scrollbarGutter="stable",f.style.overflowY="scroll";const g=f.offsetWidth;f.style.overflowY="hidden";const p=f.offsetWidth;return f.style.overflowY=d,o.style.scrollbarGutter=m,g===p}function T2(n){const i=ut(n),r=i.documentElement,o=i.body,c=hr(r)?r:o,f={overflowY:c.style.overflowY,overflowX:c.style.overflowX};return Object.assign(c.style,{overflowY:"hidden",overflowX:"hidden"}),()=>{Object.assign(c.style,f)}}function w2(n){var E;const i=ut(n),r=i.documentElement,o=i.body,c=kt(r);let f=0,d=0,m=!1;const g=di.create();if(Aa&&(((E=c.visualViewport)==null?void 0:E.scale)??1)!==1)return()=>{};function p(){const x=c.getComputedStyle(r),w=c.getComputedStyle(o),C=(x.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";f=r.scrollTop,d=r.scrollLeft,lv={scrollbarGutter:r.style.scrollbarGutter,overflowY:r.style.overflowY,overflowX:r.style.overflowX},uv=r.style.scrollBehavior,cv={position:o.style.position,height:o.style.height,width:o.style.width,boxSizing:o.style.boxSizing,overflowY:o.style.overflowY,overflowX:o.style.overflowX,scrollBehavior:o.style.scrollBehavior};const j=r.scrollHeight>r.clientHeight,k=r.scrollWidth>r.clientWidth,q=x.overflowY==="scroll"||w.overflowY==="scroll",F=x.overflowX==="scroll"||w.overflowX==="scroll",B=Math.max(0,c.innerWidth-o.clientWidth),U=Math.max(0,c.innerHeight-o.clientHeight),K=parseFloat(w.marginTop)+parseFloat(w.marginBottom),se=parseFloat(w.marginLeft)+parseFloat(w.marginRight),pe=hr(r)?r:o;if(m=E2(n),m){r.style.scrollbarGutter=C,pe.style.overflowY="hidden",pe.style.overflowX="hidden";return}Object.assign(r.style,{scrollbarGutter:C,overflowY:"hidden",overflowX:"hidden"}),(j||q)&&(r.style.overflowY="scroll"),(k||F)&&(r.style.overflowX="scroll"),Object.assign(o.style,{position:"relative",height:K||U?`calc(100dvh - ${K+U}px)`:"100dvh",width:se||B?`calc(100vw - ${se+B}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),o.scrollTop=f,o.scrollLeft=d,r.setAttribute("data-base-ui-scroll-locked",""),r.style.scrollBehavior="unset"}function y(){Object.assign(r.style,lv),Object.assign(o.style,cv),m||(r.scrollTop=f,r.scrollLeft=d,r.removeAttribute("data-base-ui-scroll-locked"),r.style.scrollBehavior=uv)}function v(){y(),g.request(p)}p();const S=Ke(c,"resize",v);return()=>{g.cancel(),y(),typeof c.removeEventListener=="function"&&S()}}class R2{constructor(){tt(this,"lockCount",0);tt(this,"restore",null);tt(this,"timeoutLock",ei.create());tt(this,"timeoutUnlock",ei.create());tt(this,"release",()=>{this.lockCount-=1,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)});tt(this,"unlock",()=>{var i;this.lockCount===0&&this.restore&&((i=this.restore)==null||i.call(this),this.restore=null)})}acquire(i){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(i)),this.release}lock(i){if(this.lockCount===0||this.restore!==null)return;const o=ut(i).documentElement,c=kt(o).getComputedStyle(o).overflowY;if(c==="hidden"||c==="clip"){this.restore=Rh;return}const f=su||!x2(i);this.restore=f?T2(i):w2(i)}}const O2=new R2;function C2(n=!0,i=null){Xe(()=>{if(n)return O2.acquire(i)},[n,i])}const A2=20;function _2(n,i,r,o){const[c,f]=O.useState(!1);Xe(()=>{if(!n||!i||r==null){f(!1);return}const d=ut(r).documentElement.clientWidth,m=r.offsetWidth;f(d>0&&m>0&&m>=d-A2)},[n,i,r]),C2(n&&(!i||c),o)}const M2=O.forwardRef(function(i,r){const{render:o,className:c,style:f,anchor:d,positionMethod:m="absolute",side:g="bottom",align:p="center",sideOffset:y=0,alignOffset:v=0,collisionBoundary:S="clipping-ancestors",collisionPadding:E=5,arrowPadding:x=5,sticky:w=!1,disableAnchorTracking:_=!1,collisionAvoidance:D=JO,...C}=i,{store:j}=Io(),k=o2(),q=iC(),F=j.useState("floatingRootContext"),B=j.useState("mounted"),U=j.useState("open"),K=j.useState("openChangeReason"),se=j.useState("activeTriggerElement"),pe=j.useState("modal"),ae=j.useState("openMethod"),W=j.useState("positionerElement"),le=j.useState("instantType"),ie=j.useState("transitionStatus"),N=j.useState("hasViewport"),Q=O.useRef(null),I=gS(W,!1,!1),oe=b2({anchor:d,floatingRootContext:F,positionMethod:m,mounted:B,side:g,sideOffset:y,align:p,alignOffset:v,arrowPadding:x,collisionBoundary:S,collisionPadding:E,sticky:w,disableAnchorTracking:_,keepMounted:k,nodeId:q,collisionAvoidance:D,adaptiveOrigin:N?y2:void 0}),Y=F.useState("domReferenceElement");Xe(()=>{const ne=Y,re=Q.current;if(ne&&(Q.current=ne),re&&ne&&ne!==re){j.set("instantType",void 0);const ee=new AbortController;return I(()=>{j.set("instantType","trigger-change")},ee.signal),()=>{ee.abort()}}},[Y,I,j]),_2(U&&pe===!0&&K!==xn,ae==="touch",W,se);const T=O.useCallback(ne=>{j.set("positionerElement",ne)},[j]),H={open:U,side:oe.side,align:oe.align,anchorHidden:oe.anchorHidden,instant:le},te=S2(i,H,{styles:oe.positionerStyles,transitionStatus:ie,props:C,refs:[r,T],hidden:!B,inert:!U});return A.jsxs(RS.Provider,{value:oe,children:[B&&pe===!0&&K!==xn&&A.jsx(v2,{ref:j.context.internalBackdropRef,inert:c2(!U),cutout:se}),A.jsx(sC,{id:q,children:te})]})}),N2="ArrowUp",D2="ArrowDown",z2="ArrowLeft",k2="ArrowRight",j2="Home",U2="End",L2=new Set([z2,k2]),B2=new Set([N2,D2]),H2=new Set([...L2,...B2]),q2=new Set([...H2,j2,U2]),Y2=O.createContext(void 0);function V2(n){return O.useContext(Y2)}const G2=O.createContext(void 0);function Q2(){const[n,i]=O.useState(0),r=$e(()=>(i(c=>c+1),()=>{i(c=>Math.max(0,c-1))}));return{context:O.useMemo(()=>({register:r}),[r]),hasClosePart:n>0}}function X2(n){const{value:i,children:r}=n;return A.jsx(G2.Provider,{value:i,children:r})}const F2={...TS,...vA},K2=O.forwardRef(function(i,r){const{render:o,className:c,style:f,initialFocus:d,finalFocus:m,...g}=i,{store:p}=Io(),y=u2(),v=V2()!=null,{context:S,hasClosePart:E}=Q2(),x=p.useState("open"),w=p.useState("openMethod"),_=p.useState("instantType"),D=p.useState("transitionStatus"),C=p.useState("popupProps"),j=p.useState("titleElementId"),k=p.useState("descriptionElementId"),q=p.useState("modal"),F=p.useState("mounted"),B=p.useState("openChangeReason"),U=p.useState("activeTriggerElement"),K=p.useState("floatingRootContext"),se=K.useState("floatingId"),pe=p.useState("disabled"),ae=p.useState("openOnHover"),W=p.useState("closeDelay"),le=g.id??se;yS({open:x,ref:p.context.popupRef,onComplete(){var Y,T;x&&((T=(Y=p.context).onOpenChangeComplete)==null||T.call(Y,!0))}}),BA(K,{enabled:ae&&!pe,closeDelay:W});const ie=d===void 0?SA(p.context.popupRef):d,N=q!==!1&&E;p.useSyncedValue("focusManagerModal",N);const Q=O.useCallback(Y=>{p.set("popupElement",Y)},[p]),I={open:x,side:y.side,align:y.align,instant:_,transitionStatus:D},oe=Ra("div",i,{state:I,ref:[r,p.context.popupRef,Q],props:[C,{id:le,role:"dialog",...bS,"aria-labelledby":j,"aria-describedby":k,onKeyDown(Y){v&&q2.has(Y.key)&&Y.stopPropagation()}},CS(D),g],stateAttributesMapping:F2});return A.jsx(cC,{context:K,openInteractionType:w,modal:N,disabled:!F||B===xn,initialFocus:ie,returnFocus:m,restoreFocus:"popup",previousFocusableElement:Rt(U)?U:void 0,nextFocusableElement:p.context.triggerFocusTargetRef,beforeContentFocusGuardRef:p.context.beforeContentFocusGuardRef,children:A.jsx(X2,{value:S,children:oe})})}),Z2="bg-chatroom-bg-primary text-chatroom-text-primary border border-chatroom-border rounded-none shadow-md",P2=`z-50 pointer-events-auto outline-none ${Z2}`;function AS({modal:n=!1,...i}){return A.jsx(FA,{"data-slot":"popover",modal:n,...i})}function _S(n){return A.jsx(a2,{"data-slot":"popover-trigger",...n})}function MS({className:n,align:i="start",side:r="bottom",sideOffset:o=4,...c}){return A.jsx(l2,{children:A.jsx(M2,{align:i,side:r,sideOffset:o,className:"isolate z-50",children:A.jsx(K2,{className:un("w-72 origin-(--transform-origin) overflow-hidden p-0 data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95",P2,n),...c})})})}function NS({options:n,value:i,onChange:r,disabled:o,isLoading:c,isError:f,placeholder:d="Select…",allLabel:m="All",searchPlaceholder:g="Search…",emptyLabel:p="No results",ariaLabel:y,triggerClassName:v,contentClassName:S,allowClear:E=!0}){var U;const[x,w]=O.useState(!1),{searchTerm:_,setSearchTerm:D,handleOpenChange:C}=nO(w),j=(U=n.find(K=>K.value===i))==null?void 0:U.label,k=c?"Loading…":f?"Failed to load":j??d,q=O.useMemo(()=>$R(n,_,K=>`${K.label} ${K.value}`),[n,_]),F=o||c||f,B=A.jsxs("button",{type:"button",disabled:F,className:un(z0,v),"aria-label":y,"aria-busy":c,children:[A.jsx("span",{className:"truncate",children:k}),A.jsx(Jc,{size:12,className:k0})]});return A.jsxs(AS,{open:x,onOpenChange:C,children:[A.jsx(_S,{render:B}),A.jsxs(MS,{className:un("w-64",S),children:[A.jsx(tO,{value:_,onChange:D,placeholder:g}),A.jsxs(eO,{maxHeightClassName:"max-h-60",children:[E&&A.jsx(Vc,{selected:!i,onSelect:()=>{r(void 0),C(!1)},children:m}),q.map(K=>A.jsx(Vc,{selected:i===K.value,onSelect:()=>{r(K.value),C(!1)},children:K.label},K.value)),!q.length&&A.jsx("div",{className:"px-3 py-2 text-xs text-chatroom-text-muted",children:p})]})]})]})}function DS({chatrooms:n,value:i,onChange:r,disabled:o,isLoading:c,isError:f}){return A.jsxs("label",{className:"flex items-center gap-2 text-xs",children:[A.jsx("span",{className:"text-chatroom-text-muted",children:"Chatroom"}),A.jsx(NS,{options:n.map(d=>({value:d.id,label:d.displayName})),value:i,onChange:d=>{d&&r(d)},disabled:o,isLoading:c,isError:f,placeholder:"Select chatroom",allowClear:!1,searchPlaceholder:"Search chatrooms…",ariaLabel:"Filter by chatroom",triggerClassName:"min-w-[10rem]"})]})}const Wh="1h",zS={"1h":"Last 1 hour","3h":"Last 3 hours","1d":"Last 1 day"},kS={"1h":36e5,"3h":108e5,"1d":864e5};function Ic(n,i=Date.now()){return n.timeRange==="custom"&&n.fromMs!==void 0&&n.toMs!==void 0?{fromMs:n.fromMs,toMs:n.toMs}:{fromMs:i-(kS[n.timeRange]??36e5),toMs:i}}function I2(n){const i=n.timeRange??"1h";return i!=="custom"?zS[i]:n.fromMs!==void 0&&n.toMs!==void 0?`${new Date(n.fromMs).toLocaleString()} – ${new Date(n.toMs).toLocaleString()}`:"Custom range"}const Cc=n=>{const i=new Date(n),r=o=>String(o).padStart(2,"0");return`${i.getFullYear()}-${r(i.getMonth()+1)}-${r(i.getDate())}T${r(i.getHours())}:${r(i.getMinutes())}`},fv=n=>{const i=new Date(n).getTime();return Number.isFinite(i)?i:void 0},J2=["1h","3h","1d"];function jS({value:n,onChange:i,disabled:r}){const[o,c]=O.useState(!1),[f,d]=O.useState(null),[m,g]=O.useState(null),p=n.timeRange??Wh,y=f??(p==="custom"&&n.fromMs!==void 0?Cc(n.fromMs):""),v=m??(p==="custom"&&n.toMs!==void 0?Cc(n.toMs):""),S=()=>{const x=Date.now(),w=n.fromMs??x-kS["1h"],_=n.toMs??x;d(Cc(w)),g(Cc(_)),i({timeRange:"custom",fromMs:w,toMs:_})},E=()=>{const x=fv(y),w=fv(v);x===void 0||w===void 0||x>w||(i({timeRange:"custom",fromMs:x,toMs:w}),c(!1))};return A.jsxs("label",{className:"flex items-center gap-2 text-xs",children:[A.jsx("span",{className:"text-chatroom-text-muted",children:"Time"}),A.jsxs(AS,{open:o,onOpenChange:c,children:[A.jsx(_S,{render:A.jsxs("button",{type:"button",disabled:r,className:un(z0,"min-w-[10rem]"),"aria-label":"Filter by time range",children:[A.jsx("span",{className:"truncate",children:I2(n)}),A.jsx(Jc,{size:12,className:k0})]})}),A.jsxs(MS,{className:"w-72 p-0",align:"start",children:[J2.map(x=>A.jsx(Vc,{selected:p===x,onSelect:()=>{d(null),g(null),i({timeRange:x,fromMs:void 0,toMs:void 0}),c(!1)},children:zS[x]},x)),A.jsx(Vc,{selected:p==="custom",onSelect:S,children:"Custom range…"}),p==="custom"&&A.jsxs("div",{className:"space-y-2 border-t border-chatroom-border px-3 py-2",children:[A.jsxs("label",{className:"flex flex-col gap-1 text-[11px] text-chatroom-text-muted",children:["Start",A.jsx("input",{type:"datetime-local",value:y,onChange:x=>d(x.target.value),className:"rounded-none border border-chatroom-border bg-chatroom-bg-secondary px-2 py-1 text-xs text-chatroom-text-primary"})]}),A.jsxs("label",{className:"flex flex-col gap-1 text-[11px] text-chatroom-text-muted",children:["End",A.jsx("input",{type:"datetime-local",value:v,onChange:x=>g(x.target.value),className:"rounded-none border border-chatroom-border bg-chatroom-bg-secondary px-2 py-1 text-xs text-chatroom-text-primary"})]}),A.jsx("button",{type:"button",onClick:E,className:"w-full border border-chatroom-border bg-chatroom-bg-tertiary px-2 py-1.5 text-xs hover:bg-chatroom-bg-hover",children:"Apply"})]})]})]})]})}function W2({chatrooms:n,chatroomsLoading:i,chatroomsError:r,values:o,onChange:c,disabled:f}){return A.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[A.jsx(jS,{value:{timeRange:o.timeRange,fromMs:o.fromMs,toMs:o.toMs},onChange:d=>c({...o,...d}),disabled:f}),A.jsx(DS,{chatrooms:n,value:o.chatroomId,onChange:d=>c({...o,chatroomId:d}),disabled:f,isLoading:i,isError:r})]})}function $2({hasChatroom:n}){return A.jsxs("div",{className:"flex min-h-[400px] flex-1 flex-col items-center justify-center gap-2 border border-chatroom-border bg-chatroom-bg-secondary p-6 text-center",role:"status",children:[A.jsx(d0,{className:"size-8 text-chatroom-text-muted","aria-hidden":!0}),A.jsx("p",{className:"text-sm text-chatroom-text-secondary",children:n?"No events in this time range":"Select a chatroom to view events"})]})}const e_=["role","message","reason","taskId","agentId","phase","status","harness"];function t_(n){for(const r of e_){const o=n[r];if(typeof o=="string"&&o.trim())return o.length>80?`${o.slice(0,77)}…`:o;if(typeof o=="number")return String(o)}const i=new Set(["type","timestamp","chatroomId","_id"]);for(const[r,o]of Object.entries(n)){if(i.has(r)||o==null)continue;const c=`${r}: ${typeof o=="string"?o:JSON.stringify(o)}`;return c.length>80?`${c.slice(0,77)}…`:c}return""}function n_({entry:n,selected:i,onSelect:r}){return A.jsxs("div",{role:"button",tabIndex:0,onClick:()=>r==null?void 0:r(n),onKeyDown:o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),r==null||r(n))},className:`flex items-center gap-3 border-b border-chatroom-border px-3 py-2 text-xs ${i?"bg-chatroom-bg-hover":"hover:bg-chatroom-bg-hover"}`,children:[A.jsx("span",{className:"w-20 shrink-0 font-mono text-chatroom-text-muted",children:new Date(n.timestamp).toLocaleTimeString()}),A.jsx(_0,{type:n.type}),A.jsx("span",{className:"min-w-0 truncate text-chatroom-text-secondary",children:t_(n.payload)})]})}function i_(n,i=48){return n.scrollHeight-n.scrollTop-n.clientHeight<=i}function US(n){const i=O.useRef(null),[r,o]=O.useState(!0),c=O.useRef(n),f=O.useCallback((g="auto")=>{const p=i.current;p&&(p.scrollTo({top:p.scrollHeight,behavior:g}),o(!0),c.current=n)},[n]),d=O.useCallback(()=>{const g=i.current;if(!g)return;const p=i_(g);o(p),p&&(c.current=n)},[n]),m=!r&&n>c.current;return{scrollRef:i,isPinned:r,hasUnseenBelow:m,scrollToEnd:f,handleScroll:d}}function LS({rows:n=8}){return A.jsx("div",{className:"flex flex-col gap-1 p-3","aria-busy":"true","aria-label":"Loading logs",children:Array.from({length:n},(i,r)=>A.jsxs("div",{className:"flex gap-3 py-1",children:[A.jsx(_o,{className:"h-4 w-16 shrink-0"}),A.jsx(_o,{className:"h-4 w-12 shrink-0"}),A.jsx(_o,{className:"h-4 w-24 shrink-0"}),A.jsx(_o,{className:"h-4 min-w-0 flex-1"})]},r))})}function s_({entries:n,isLoading:i,error:r,hasChatroom:o,selectedEntry:c,onSelectEntry:f}){const{scrollRef:d,isPinned:m,hasUnseenBelow:g,scrollToEnd:p,handleScroll:y}=US(n.length);return O.useEffect(()=>{m&&!i&&!r&&n.length>0&&p("smooth")},[n.length,m,i,r,p]),i?A.jsx("div",{className:"min-h-[400px] flex-1 border border-chatroom-border bg-chatroom-bg-secondary",children:A.jsx(LS,{})}):r?A.jsx("div",{className:"flex min-h-[400px] flex-1 items-center border border-chatroom-border bg-chatroom-bg-secondary p-4 text-chatroom-status-error",children:r}):!o||n.length===0?A.jsx($2,{hasChatroom:o}):A.jsxs("div",{className:"relative min-h-[400px] flex-1",children:[A.jsx("div",{ref:d,onScroll:y,className:"h-full overflow-auto border border-chatroom-border bg-chatroom-bg-secondary",children:n.map(v=>A.jsx(n_,{entry:v,selected:(c==null?void 0:c.id)===v.id,onSelect:f},v.id))}),!m&&g&&A.jsxs("button",{type:"button",onClick:()=>p("smooth"),className:"absolute bottom-3 right-3 inline-flex items-center gap-1 rounded-md bg-chatroom-accent px-2 py-1 text-xs text-chatroom-text-on-accent shadow",children:[A.jsx(Jc,{className:"size-3"}),"Jump to new"]})]})}function BS({title:n="Session logs",actions:i}){return A.jsxs("div",{className:"flex items-center justify-between gap-4",children:[A.jsx("h2",{className:"text-lg font-medium tracking-tight",children:n}),i]})}function HS(){return Hv({queryKey:["daemon","chatrooms"],queryFn:async()=>{const n=await CR();if(!n.ok)throw new Error(n.error.message);return n.data.chatrooms},staleTime:6e4})}function r_(n){const i=n.chatroomId,[r,o]=O.useState([]),[c,f]=O.useState(!1),[d,m]=O.useState(null);return O.useEffect(()=>{if(!i)return;let g=!0,p;return(async()=>{try{const y=Ic(n),v=await AR({chatroomId:i,fromTimestamp:y.fromMs,toTimestamp:y.toMs,limit:500});if(!v.ok)throw new Error(v.error.message);g&&(o(v.data.entries),p=_R(S=>{var w;const E=(w=S.payload)==null?void 0:w.chatroomId,x=Ic(n);S.timestamp<x.fromMs||S.timestamp>x.toMs||typeof E!="string"||E!==i||o(_=>_.some(D=>D.id===S.id)?_:[..._,S])}))}catch(y){g&&m(y instanceof Error?y.message:"Failed to load event stream")}finally{g&&f(!1)}})(),()=>{g=!1,p==null||p()}},[i,n]),{entries:i?r:[],isLoading:i?c:!1,error:i?d:null}}const a_=n=>n&&["1h","3h","1d","custom"].includes(n)?n:void 0;function dv(n){const i=new URLSearchParams(n.startsWith("?")?n.slice(1):n),r=a_(i.get("timeRange")),o=i.get("from"),c=i.get("to"),f=Number(o),d=Number(c),m=i.get("chatroomId");return{...m?{chatroomId:m}:{},...r?{timeRange:r}:{},...Number.isFinite(f)&&o?{fromMs:f}:{},...Number.isFinite(d)&&c?{toMs:d}:{}}}function o_(n){const i=new URLSearchParams(window.location.search);n.chatroomId?i.set("chatroomId",n.chatroomId):i.delete("chatroomId");const r=n.timeRange??Wh;i.set("timeRange",r),r==="custom"&&n.fromMs!==void 0&&n.toMs!==void 0?(i.set("from",String(n.fromMs)),i.set("to",String(n.toMs))):(i.delete("from"),i.delete("to"));const o=i.toString();window.history.replaceState(null,"",`${window.location.pathname}${o?`?${o}`:""}`)}function l_(){const[n,i]=O.useState(()=>dv(window.location.search)),r=O.useCallback(o=>{i(o),o_(o)},[]);return O.useEffect(()=>{const o=()=>i(dv(window.location.search));return window.addEventListener("popstate",o),()=>window.removeEventListener("popstate",o)},[]),{filters:n,setFilters:r}}function c_(){const{filters:n,setFilters:i}=l_(),r=HS(),{entries:o,isLoading:c,error:f}=r_(n),[d,m]=O.useState(null);return O.useEffect(()=>{m(null)},[n.chatroomId,n.timeRange,n.fromMs,n.toMs]),A.jsxs("section",{className:"flex min-h-0 flex-1 flex-col gap-3 p-6",children:[A.jsx(BS,{title:"Event stream",actions:A.jsx(W2,{chatrooms:r.data??[],chatroomsLoading:r.isLoading,chatroomsError:r.isError,values:n,onChange:i,disabled:c})}),A.jsxs("div",{className:"flex min-h-0 flex-1 gap-0",children:[A.jsx("div",{className:"flex min-w-0 flex-1 flex-col",children:A.jsx(s_,{entries:o,isLoading:c,error:f,hasChatroom:!!n.chatroomId,selectedEntry:d,onSelectEntry:m},[n.chatroomId,n.timeRange,n.fromMs,n.toMs].join(":"))}),d&&A.jsx(WR,{entry:d,onClose:()=>m(null)})]})]})}function $h(n){var r;const i=(r=n.metadata)==null?void 0:r.harness;return typeof i=="string"?i:n.source.startsWith("harness:")?n.source.slice(8):void 0}function em(n){var r;const i=(r=n.metadata)==null?void 0:r.chatroomId;return typeof i=="string"?i:void 0}function qS(n){var r;const i=(r=n.metadata)==null?void 0:r.role;return typeof i=="string"?i:void 0}function YS({line:n,chatroomName:i}){const r=em(n),o=qS(n),c=$h(n);return!r&&!o&&!c?null:A.jsxs("div",{className:"flex shrink-0 flex-wrap gap-1",children:[r&&A.jsx(sa,{variant:"outline",className:"text-chatroom-text-secondary",children:i??r}),o&&A.jsx(sa,{variant:"outline",className:"text-chatroom-status-info",children:o}),c&&A.jsx(sa,{variant:"outline",className:"text-chatroom-text-secondary",children:c})]})}const u_={debug:"text-chatroom-text-muted border-chatroom-border",info:"text-chatroom-status-info border-chatroom-status-info/40",warn:"text-chatroom-status-warning border-chatroom-status-warning/40",error:"text-chatroom-status-error border-chatroom-status-error/40"};function VS({level:n}){return A.jsx(sa,{variant:"outline",className:un("font-mono uppercase",u_[n]),children:n})}function f_({line:n,chatroomName:i,onClose:r}){return A.jsxs("aside",{className:"flex w-96 max-w-[40%] shrink-0 flex-col border-l border-chatroom-border bg-chatroom-bg-primary",role:"dialog","aria-modal":"true","aria-label":"Log detail",children:[A.jsxs("div",{className:"flex items-center justify-between border-b border-chatroom-border px-4 py-3",children:[A.jsx("h3",{className:"text-sm font-medium",children:"Log detail"}),A.jsx(D0,{variant:"ghost",size:"sm",onClick:r,"aria-label":"Close detail panel",children:A.jsx(h0,{className:"size-4"})})]}),A.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-3 overflow-auto p-4 text-xs",children:[A.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[A.jsx(VS,{level:n.level}),A.jsx("span",{className:"text-chatroom-text-muted",children:new Date(n.timestamp).toISOString()})]}),A.jsx(YS,{line:n,chatroomName:i}),A.jsxs("div",{className:"text-chatroom-text-muted",children:["Source: ",A.jsx("span",{className:"text-chatroom-text-primary",children:n.source}),n.stream&&A.jsxs(A.Fragment,{children:[" · Stream: ",n.stream]}),n.id!=null&&A.jsxs(A.Fragment,{children:[" · ID: ",n.id]})]}),A.jsx("pre",{className:"whitespace-pre-wrap font-mono text-xs",children:n.message}),n.metadata&&Object.keys(n.metadata).length>0&&A.jsxs("div",{children:[A.jsx("p",{className:"mb-1 text-chatroom-text-muted",children:"Metadata"}),A.jsx("pre",{className:"whitespace-pre-wrap border border-chatroom-border bg-chatroom-bg-secondary p-2 font-mono text-[11px]",children:JSON.stringify(n.metadata,null,2)})]})]})]})}function hv({label:n,options:i,value:r,onChange:o,disabled:c,allLabel:f="All"}){return A.jsxs("label",{className:"flex items-center gap-2 text-xs",children:[A.jsx("span",{className:"text-chatroom-text-muted",children:n}),A.jsx(NS,{options:i.map(d=>({value:d,label:d})),value:r,onChange:o,disabled:c,placeholder:f,allLabel:f,searchPlaceholder:`Search ${n.toLowerCase()}…`,ariaLabel:n})]})}function d_({chatrooms:n,chatroomsLoading:i,chatroomsError:r,roles:o,harnesses:c,values:f,onChange:d,disabled:m}){return A.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[A.jsx(jS,{value:{timeRange:f.timeRange,fromMs:f.fromMs,toMs:f.toMs},onChange:g=>d({...f,...g}),disabled:m}),A.jsx(DS,{chatrooms:n,value:f.chatroomId,onChange:g=>d({...f,chatroomId:g}),disabled:m,isLoading:i,isError:r}),A.jsx(hv,{label:"Role",options:o,value:f.role,onChange:g=>d({...f,role:g}),disabled:m,allLabel:"All roles"}),A.jsx(hv,{label:"Harness",options:c,value:f.harness,onChange:g=>d({...f,harness:g}),disabled:m,allLabel:"All harnesses"})]})}function h_({hasChatroom:n}){return A.jsxs("div",{className:"flex min-h-[400px] flex-1 flex-col items-center justify-center gap-2 border border-chatroom-border bg-chatroom-bg-secondary p-6 text-center",role:"status",children:[A.jsx(Ew,{className:"size-8 text-chatroom-text-muted","aria-hidden":!0}),A.jsx("p",{className:"text-sm text-chatroom-text-secondary",children:n?"No logs in this time range":"Select a chatroom to view logs"}),n&&A.jsx("p",{className:"text-xs text-chatroom-text-muted",children:"Start an agent session to see output here"})]})}function m_({message:n}){return A.jsxs("div",{className:"flex min-h-[400px] flex-1 flex-col items-center justify-center gap-2 border border-chatroom-status-error/30 bg-chatroom-bg-secondary p-6 text-center",role:"alert",children:[A.jsx(Sw,{className:"size-8 text-chatroom-status-error","aria-hidden":!0}),A.jsx("p",{className:"text-sm text-chatroom-status-error",children:"Failed to load logs"}),A.jsx("p",{className:"text-xs text-chatroom-text-muted",children:n})]})}function p_({line:n,chatroomName:i,selected:r,onSelect:o}){const c=new Date(n.timestamp).toISOString().slice(11,19),d=!$h(n)||!n.source.startsWith("harness:"),m=()=>o==null?void 0:o(n);return A.jsxs("div",{className:un("flex gap-3 rounded-none px-1 py-1.5 -mx-1",o&&"cursor-pointer hover:bg-chatroom-bg-hover",r&&"bg-chatroom-bg-hover"),role:o?"button":void 0,tabIndex:o?0:void 0,onClick:o?m:void 0,onKeyDown:o?g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),m())}:void 0,children:[A.jsx("span",{className:"shrink-0 text-chatroom-text-muted",children:c}),A.jsx(VS,{level:n.level}),A.jsx(YS,{line:n,chatroomName:i}),d&&A.jsx("span",{className:"shrink-0 text-chatroom-text-muted",children:n.source}),A.jsx("span",{className:"min-w-0 flex-1 line-clamp-2",children:n.message})]})}function g_({lines:n,isLoading:i,error:r,hasChatroom:o,selectedLine:c,onSelectLine:f,getChatroomName:d}){const{scrollRef:m,isPinned:g,hasUnseenBelow:p,scrollToEnd:y,handleScroll:v}=US(n.length);if(O.useEffect(()=>{g&&!i&&!r&&n.length>0&&y("smooth")},[n.length,g,i,r,y]),i)return A.jsx("div",{className:"min-h-[400px] flex-1 border border-chatroom-border bg-chatroom-bg-secondary",children:A.jsx(LS,{})});if(r)return A.jsx(m_,{message:r});if(n.length===0)return A.jsx(h_,{hasChatroom:o});const S=c?c.id??`${c.timestamp}-${c.message.slice(0,32)}`:null;return A.jsxs("div",{className:"relative min-h-[400px] flex-1",children:[A.jsx("div",{ref:m,onScroll:v,className:"h-full overflow-auto border border-chatroom-border bg-chatroom-bg-secondary p-3 font-mono text-xs",children:n.map((E,x)=>{var C;const w=E.id??`${E.timestamp}-${x}`,_=E.id??`${E.timestamp}-${E.message.slice(0,32)}`,D=(C=E.metadata)==null?void 0:C.chatroomId;return A.jsx(p_,{line:E,chatroomName:typeof D=="string"?d==null?void 0:d(D):void 0,selected:S===_,onSelect:f},w)})}),!g&&p&&A.jsxs("button",{type:"button",onClick:()=>y("smooth"),className:"absolute bottom-3 right-3 inline-flex items-center gap-1 rounded-md bg-chatroom-accent px-2 py-1 text-xs text-chatroom-text-on-accent shadow",children:[A.jsx(Jc,{className:"size-3"}),"Jump to new"]})]})}function mv(n,i){const r=Ic(i);return n.timestamp>=r.fromMs&&n.timestamp<=r.toMs&&em(n)===i.chatroomId&&(!i.role||qS(n)===i.role)&&(!i.harness||$h(n)===i.harness)}function y_(n){const i=n.chatroomId,[r,o]=O.useState([]),[c,f]=O.useState({roles:[],harnesses:[]}),[d,m]=O.useState(!1),[g,p]=O.useState(null);return O.useEffect(()=>{if(!i)return;let y=!0,v;return(async()=>{try{const S=await OR(i);if(!y)return;S.ok&&f(S.data);const E=Ic(n),x=await RR({chatroomId:i,role:n.role,harness:n.harness,fromTimestamp:E.fromMs,toTimestamp:E.toMs,limit:500});if(!x.ok)throw new Error(x.error.message);if(!y)return;o(x.data.entries.filter(w=>mv(w,n))),v=MR(w=>{mv(w,n)&&o(_=>[..._,w])})}catch(S){y&&p(S instanceof Error?S.message:"Failed to load logs")}finally{y&&m(!1)}})(),()=>{y=!1,v==null||v()}},[i,n]),{lines:i?r:[],dimensions:i?c:{roles:[],harnesses:[]},isLoading:i?d:!1,error:i?g:null}}function b_(n={}){return y_(n)}const v_=n=>n&&["1h","3h","1d","custom"].includes(n)?n:void 0;function pv(n){const i=new URLSearchParams(n.startsWith("?")?n.slice(1):n),r=v_(i.get("timeRange")),o=Number(i.get("from")),c=Number(i.get("to")),f=i.get("chatroomId"),d=i.get("role"),m=i.get("harness");return{...f?{chatroomId:f}:{},...d?{role:d}:{},...m?{harness:m}:{},...r?{timeRange:r}:{},...Number.isFinite(o)&&i.get("from")?{fromMs:o}:{},...Number.isFinite(c)&&i.get("to")?{toMs:c}:{}}}function S_(n){const i=new URLSearchParams;n.chatroomId&&i.set("chatroomId",n.chatroomId),n.role&&i.set("role",n.role),n.harness&&i.set("harness",n.harness);const r=n.timeRange??Wh;return i.set("timeRange",r),r==="custom"&&n.fromMs!==void 0&&n.toMs!==void 0&&(i.set("from",String(n.fromMs)),i.set("to",String(n.toMs))),i.toString()}function x_(n){const i=S_(n);window.history.replaceState(null,"",`${window.location.pathname}${i?`?${i}`:""}`)}function E_(){const[n,i]=O.useState(()=>pv(window.location.search)),r=O.useCallback(o=>{i(o),x_(o)},[]);return O.useEffect(()=>{const o=()=>i(pv(window.location.search));return window.addEventListener("popstate",o),()=>window.removeEventListener("popstate",o)},[]),{filters:n,setFilters:r}}function T_(){const{filters:n,setFilters:i}=E_(),[r,o]=O.useState(null),c=HS(),f=O.useMemo(()=>c.data??[],[c.data]),d=O.useMemo(()=>new Map(f.map(E=>[E.id,E.displayName])),[f]),{lines:m,dimensions:g,isLoading:p,error:y}=b_(n),v=E=>d.get(E),S=r?v(em(r)??""):void 0;return A.jsxs("section",{className:"flex min-h-0 flex-1 flex-col gap-3 p-6",children:[A.jsx(BS,{actions:A.jsx(d_,{chatrooms:f,chatroomsLoading:c.isLoading,chatroomsError:c.isError,roles:g.roles,harnesses:g.harnesses,values:n,onChange:i,disabled:p})}),A.jsxs("div",{className:"flex min-h-0 flex-1 gap-0",children:[A.jsx("div",{className:"flex min-w-0 flex-1 flex-col",children:A.jsx(g_,{lines:m,isLoading:p,error:y,hasChatroom:!!n.chatroomId,selectedLine:r,onSelectLine:o,getChatroomName:v},n.chatroomId??n.timeRange)}),r&&A.jsx(f_,{line:r,chatroomName:S,onClose:()=>o(null)})]})]})}function w_(){var o,c;const{activeTab:n,setActiveTab:i}=Cw(),r=NR();return A.jsx(cw,{header:A.jsx(ww,{status:A.jsx(lw,{isLoading:r.isLoading,isError:r.isError,port:(o=r.data)==null?void 0:o.port,service:(c=r.data)==null?void 0:c.service})}),nav:A.jsxs(Rw,{children:[A.jsx(Eb,{active:n==="logs",onClick:()=>i("logs"),children:"Logs"}),A.jsx(Eb,{active:n==="event-stream",onClick:()=>i("event-stream"),children:"Event Stream"})]}),children:n==="logs"?A.jsx(T_,{}):A.jsx(c_,{})})}const R_=new k1({defaultOptions:{queries:{staleTime:3e4,refetchOnWindowFocus:!1}}}),gv=document.getElementById("root");gv&&J1.createRoot(gv).render(A.jsx(O.StrictMode,{children:A.jsx(l1,{client:R_,children:A.jsx(w_,{})})}));
|
|
115
|
+
*/var tv;function rA(){if(tv)return Vd;tv=1;var n=Qo(),i=hS();function r(p,y){return p===y&&(p!==0||1/p===1/y)||p!==p&&y!==y}var o=typeof Object.is=="function"?Object.is:r,c=i.useSyncExternalStore,f=n.useRef,d=n.useEffect,m=n.useMemo,g=n.useDebugValue;return Vd.useSyncExternalStoreWithSelector=function(p,y,v,S,E){var x=f(null);if(x.current===null){var w={hasValue:!1,value:null};x.current=w}else w=x.current;x=m(function(){function D(F){if(!C){if(C=!0,j=F,F=S(F),E!==void 0&&w.hasValue){var B=w.value;if(E(B,F))return k=B}return k=F}if(B=k,o(j,F))return B;var U=S(F);return E!==void 0&&E(B,U)?(j=F,B):(j=F,k=U)}var C=!1,j,k,q=v===void 0?null:v;return[function(){return D(y())},q===null?void 0:function(){return D(q())}]},[y,v,S,E]);var _=c(p,x[0],x[1]);return d(function(){w.hasValue=!0,w.value=_},[_]),g(_),_},Vd}var nv;function aA(){return nv||(nv=1,Yd.exports=rA()),Yd.exports}var oA=aA();const lA=wh(19),cA=lA?fA:dA;function mS(n,i,r,o,c){return cA(n,i,r,o,c)}function uA(n,i,r,o,c){const f=O.useCallback(()=>i(n.getSnapshot(),r,o,c),[n,i,r,o,c]);return sA.useSyncExternalStore(n.subscribe,f,f)}function fA(n,i,r,o,c){return uA(n,i,r,o,c)}function dA(n,i,r,o,c){return oA.useSyncExternalStoreWithSelector(n.subscribe,n.getSnapshot,n.getSnapshot,f=>i(f,r,o,c))}class hA{constructor(i){tt(this,"subscribe",i=>(this.listeners.add(i),()=>{this.listeners.delete(i)}));tt(this,"getSnapshot",()=>this.state);this.state=i,this.listeners=new Set,this.updateTick=0}setState(i){if(this.state===i)return;this.state=i,this.updateTick+=1;const r=this.updateTick;for(const o of this.listeners){if(r!==this.updateTick)return;o(i)}}update(i){for(const r in i)if(!Object.is(this.state[r],i[r])){this.setState({...this.state,...i});return}}set(i,r){Object.is(this.state[i],r)||this.setState({...this.state,[i]:r})}notifyAll(){const i={...this.state};this.setState(i)}use(i,r,o,c){return mS(this,i,r,o,c)}}class pS extends hA{constructor(i,r={},o){super(i),this.context=r,this.selectors=o}useSyncedValue(i,r){O.useDebugValue(i);const o=this;Xe(()=>{o.state[i]!==r&&o.set(i,r)},[o,i,r])}useSyncedValueWithCleanup(i,r){const o=this;Xe(()=>(o.state[i]!==r&&o.set(i,r),()=>{o.set(i,void 0)}),[o,i,r])}useSyncedValues(i){const r=this,o=Object.values(i);Xe(()=>{r.update(i)},[r,...o])}useControlledProp(i,r){O.useDebugValue(i);const o=this,c=r!==void 0;Xe(()=>{c&&!Object.is(o.state[i],r)&&o.setState({...o.state,[i]:r})},[o,i,r,c])}select(i,r,o,c){const f=this.selectors[i];return f(this.state,r,o,c)}useState(i,r,o,c){return O.useDebugValue(i),mS(this,this.selectors[i],r,o,c)}useContextCallback(i,r){O.useDebugValue(i);const o=$e(r??Rh);this.context[i]=o}useStateSetter(i){const r=O.useRef(void 0);return r.current===void 0&&(r.current=o=>{this.set(i,o)}),r.current}observe(i,r){let o;typeof i=="function"?o=i:o=this.selectors[i];let c=o(this.state);return r(c,c,this),this.subscribe(f=>{const d=o(f);if(!Object.is(c,d)){const m=c;c=d,r(d,m,this)}})}}const mA={open:Ve(n=>n.open),transitionStatus:Ve(n=>n.transitionStatus),domReferenceElement:Ve(n=>n.domReferenceElement),referenceElement:Ve(n=>n.positionReference??n.referenceElement),floatingElement:Ve(n=>n.floatingElement),floatingId:Ve(n=>n.floatingId)};class au extends pS{constructor(r){const{syncOnly:o,nested:c,onOpenChange:f,triggerElements:d,...m}=r;super({...m,positionReference:m.referenceElement,domReferenceElement:m.referenceElement},{onOpenChange:f,dataRef:{current:{}},events:iS(),nested:c,triggerElements:d},mA);tt(this,"syncOpenEvent",(r,o)=>{(!r||!this.state.open||o!=null&&gO(o))&&(this.context.dataRef.current.openEvent=r?o:void 0)});tt(this,"dispatchOpenChange",(r,o)=>{this.syncOpenEvent(r,o.event);const c={open:r,reason:o.reason,nativeEvent:o.event,nested:this.context.nested,triggerElement:o.trigger};this.context.events.emit("openchange",c)});tt(this,"setOpen",(r,o)=>{var c,f,d,m;if(this.syncOnly){(f=(c=this.context).onOpenChange)==null||f.call(c,r,o);return}this.dispatchOpenChange(r,o),(m=(d=this.context).onOpenChange)==null||m.call(d,r,o)});this.syncOnly=o}}function pA(n){const{popupStore:i,treatPopupAsFloatingElement:r=!1,floatingRootContext:o,floatingId:c,nested:f,onOpenChange:d}=n,m=i.useState("open"),g=i.useState("activeTriggerElement"),p=i.useState(r?"popupElement":"positionerElement"),y=i.context.triggerElements,v=d,S=O.useRef(null);o===void 0&&S.current===null&&(S.current=new au({open:m,transitionStatus:void 0,referenceElement:g,floatingElement:p,triggerElements:y,onOpenChange:v,floatingId:c,syncOnly:!0,nested:f}));const E=o??S.current;return i.useSyncedValue("floatingId",c),Xe(()=>{const x={open:m,floatingId:c,referenceElement:g,floatingElement:p};Je(g)&&(x.domReferenceElement=g),E.state.positionReference===E.state.referenceElement&&(x.positionReference=g),E.update(x)},[m,c,g,p,E]),E.context.onOpenChange=v,E.context.nested=f,E}function gA(n,i=!1,r=!1){const[o,c]=O.useState(n&&i?"idle":void 0),[f,d]=O.useState(n);return n&&!f&&(d(!0),c("starting")),!n&&f&&o!=="ending"&&!r&&c("ending"),!n&&!f&&o==="ending"&&c(void 0),Xe(()=>{if(!n&&f&&o!=="ending"&&r){const m=di.request(()=>{c("ending")});return()=>{di.cancel(m)}}},[n,f,o,r]),Xe(()=>{if(!n||i)return;const m=di.request(()=>{c(void 0)});return()=>{di.cancel(m)}},[i,n]),Xe(()=>{if(!n||!i)return;n&&f&&o!=="idle"&&c("starting");const m=di.request(()=>{c("idle")});return()=>{di.cancel(m)}},[i,n,f,o]),{mounted:f,setMounted:d,transitionStatus:o}}let Bo=function(n){return n.startingStyle="data-starting-style",n.endingStyle="data-ending-style",n}({});const yA={[Bo.startingStyle]:""},bA={[Bo.endingStyle]:""},vA={transitionStatus(n){return n==="starting"?yA:n==="ending"?bA:null}};function gS(n,i=!1,r=!0){const o=Hh();return $e((c,f=null)=>{o.cancel();const d=Li(n);if(d==null)return;const m=d,g=()=>{Ms.flushSync(c)};if(typeof m.getAnimations!="function"||globalThis.BASE_UI_ANIMATIONS_DISABLED){c();return}function p(){Promise.all(m.getAnimations().map(y=>y.finished)).then(()=>{f!=null&&f.aborted||g()}).catch(()=>{if(r){f!=null&&f.aborted||g();return}const y=m.getAnimations();!(f!=null&&f.aborted)&&y.length>0&&y.some(v=>v.pending||v.playState!=="finished")&&p()})}if(i){const y=Bo.startingStyle;if(!m.hasAttribute(y)){o.request(p);return}const v=new MutationObserver(()=>{m.hasAttribute(y)||(v.disconnect(),p())});v.observe(m,{attributes:!0,attributeFilter:[y]}),f==null||f.addEventListener("abort",()=>v.disconnect(),{once:!0});return}o.request(p)})}function yS(n){const{enabled:i=!0,open:r,ref:o,onComplete:c}=n,f=$e(c),d=gS(o,r,!1);O.useEffect(()=>{if(!i)return;const m=new AbortController;return d(f,m.signal),()=>{m.abort()}},[i,r,f,d])}const bS={tabIndex:-1,[uh]:""};function SA(n){return i=>i==="touch"?n.current:!0}function xA(n,i,r=!1){const o=Po(),c=_a()!=null,f=O.useRef(null);n===void 0&&f.current===null&&(f.current=i(o,c));const d=n??f.current;return pA({popupStore:d,treatPopupAsFloatingElement:r,floatingRootContext:d.state.floatingRootContext,floatingId:o,nested:c,onOpenChange:d.setOpen}),{store:d,internalStore:f.current}}function EA(n,i){const r=O.useRef(null),o=O.useRef(null);return O.useCallback(c=>{if(n===void 0)return;let f=!1;if(r.current!==null){const d=r.current,m=o.current,g=i.context.triggerElements.getById(d);m&&g===m&&(i.context.triggerElements.delete(d),f=!0),r.current=null,o.current=null}if(c!==null&&(r.current=n,o.current=c,i.context.triggerElements.add(n,c),f=!0),f){const d=i.context.triggerElements.size;i.select("open")&&i.state.triggerCount!==d&&i.set("triggerCount",d)}},[i,n])}function TA(n,i,r,o=!1){i?n.preventUnmountingOnClose=!1:o&&(n.preventUnmountingOnClose=!0);const c=(r==null?void 0:r.id)??null;(c||i)&&(n.activeTriggerId=c,n.activeTriggerElement=r??null)}function wA(n){let i=!1;return n.preventUnmountOnClose=()=>{i=!0},()=>i}function RA(n,i,r,o){nA(()=>{i===void 0&&n.state.open===!1&&r&&(n.state={...n.state,open:!0,activeTriggerId:o,preventUnmountingOnClose:!1})})}function OA(n,i,r,o){const c=r.useState("isMountedByTrigger",n),f=EA(n,r),d=$e(m=>{if(f(m),!m)return;const g=r.select("open"),p=r.select("activeTriggerId");if(p===n){r.update({activeTriggerElement:m,...g?o:null});return}p==null&&g&&r.update({activeTriggerId:n,activeTriggerElement:m,...o})});return Xe(()=>{c&&r.update({activeTriggerElement:i.current,...o})},[c,r,i,...Object.values(o)]),{registerTrigger:d,isMountedByThisTrigger:c}}function CA(n,i={}){const{closeOnActiveTriggerUnmount:r=!1}=i,o=n.useState("open"),c=n.useState("triggerCount");Xe(()=>{if(!o){n.state.triggerCount!==0&&n.set("triggerCount",0);return}const f=n.context.triggerElements.size,d={};n.state.triggerCount!==f&&(d.triggerCount=f);const m=n.select("activeTriggerId");let g=null;if(m){const p=n.context.triggerElements.getById(m);p?p!==n.state.activeTriggerElement&&(d.activeTriggerElement=p):g=m}if(!g&&!m&&f===1){const p=n.context.triggerElements.entries().next();if(!p.done){const[y,v]=p.value;d.activeTriggerId=y,d.activeTriggerElement=v}}(d.triggerCount!==void 0||d.activeTriggerId!==void 0||d.activeTriggerElement!==void 0)&&n.update(d),g&&r&&queueMicrotask(()=>{if(n.select("open")&&n.select("activeTriggerId")===g&&!n.context.triggerElements.getById(g)){const p=Xt(xO);n.setOpen(!1,p),p.isCanceled||n.update({activeTriggerId:null,activeTriggerElement:null})}})},[o,n,c,r])}function AA(n,i,r){const{mounted:o,setMounted:c,transitionStatus:f}=gA(n),d=i.useState("preventUnmountingOnClose"),m=n?!1:d;i.useSyncedValues({mounted:o,transitionStatus:f,preventUnmountingOnClose:m});const g=$e(()=>{var p,y;c(!1),i.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1,preventUnmountingOnClose:!1}),r==null||r(),(y=(p=i.context).onOpenChangeComplete)==null||y.call(p,!1)});return yS({enabled:o&&!n&&!m,open:n,ref:i.context.popupRef,onComplete(){n||g()}}),{forceUnmount:g,transitionStatus:f}}function _A(n,i){n.useSyncedValues(i),Xe(()=>()=>{n.update({activeTriggerProps:Wt,inactiveTriggerProps:Wt,popupProps:Wt})},[n])}function MA(n,i){Xe(()=>{!i&&n.state.openMethod!==null&&n.set("openMethod",null)},[i,n]),Xe(()=>()=>{n.state.openMethod!==null&&n.set("openMethod",null)},[n])}class Kh{constructor(){this.elementsSet=new Set,this.idMap=new Map}add(i,r){const o=this.idMap.get(i);o!==r&&(o!==void 0&&this.elementsSet.delete(o),this.elementsSet.add(r),this.idMap.set(i,r))}delete(i){const r=this.idMap.get(i);r&&(this.elementsSet.delete(r),this.idMap.delete(i))}hasElement(i){return this.elementsSet.has(i)}hasMatchingElement(i){for(const r of this.elementsSet)if(i(r))return!0;return!1}getById(i){return this.idMap.get(i)}entries(){return this.idMap.entries()}elements(){return this.elementsSet.values()}get size(){return this.idMap.size}}function NA(){return new au({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:new Kh,floatingId:void 0,syncOnly:!1,nested:!1,onOpenChange:void 0})}function DA(){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:NA(),floatingId:void 0,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:Wt,inactiveTriggerProps:Wt,popupProps:Wt}}function zA(n,i,r=!1){return new au({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:n,floatingId:i,syncOnly:!0,nested:r,onOpenChange:void 0})}const No=Ve(n=>n.triggerIdProp??n.activeTriggerId),Zh=Ve(n=>n.openProp??n.open),iv=Ve(n=>{var r;return(((r=n.popupElement)==null?void 0:r.id)??n.floatingId)||void 0});function vS(n,i){return i!==void 0&&Zh(n)&&No(n)===i}function kA(n,i){return vS(n,i)?!0:i!==void 0&&Zh(n)&&No(n)==null&&n.triggerCount===1}const jA={open:Zh,mounted:Ve(n=>n.mounted),transitionStatus:Ve(n=>n.transitionStatus),floatingRootContext:Ve(n=>n.floatingRootContext),triggerCount:Ve(n=>n.triggerCount),preventUnmountingOnClose:Ve(n=>n.preventUnmountingOnClose),payload:Ve(n=>n.payload),activeTriggerId:No,activeTriggerElement:Ve(n=>n.mounted?n.activeTriggerElement:null),popupId:iv,isTriggerActive:Ve((n,i)=>i!==void 0&&No(n)===i),isOpenedByTrigger:Ve((n,i)=>vS(n,i)),isMountedByTrigger:Ve((n,i)=>i!==void 0&&No(n)===i&&n.mounted),triggerProps:Ve((n,i)=>i?n.activeTriggerProps:n.inactiveTriggerProps),triggerPopupId:Ve((n,i)=>kA(n,i)?iv(n):void 0),popupProps:Ve(n=>n.popupProps),popupElement:Ve(n=>n.popupElement),positionerElement:Ve(n=>n.positionerElement)};function UA(n){const{open:i=!1,onOpenChange:r,elements:o={}}=n,c=Po(),f=_a()!=null,d=Qi(()=>new au({open:i,transitionStatus:void 0,onOpenChange:r,referenceElement:o.reference??null,floatingElement:o.floating??null,triggerElements:new Kh,floatingId:c,syncOnly:!1,nested:f})).current;return Xe(()=>{const m={open:i,floatingId:c};o.reference!==void 0&&(m.referenceElement=o.reference,m.domReferenceElement=Je(o.reference)?o.reference:null),o.floating!==void 0&&(m.floatingElement=o.floating),d.update(m)},[i,c,o.reference,o.floating,d]),d.context.onOpenChange=r,d.context.nested=f,d}function LA(n={}){const{nodeId:i,externalTree:r}=n,o=UA(n),c=n.rootContext||o,f=c.useState("referenceElement"),d=c.useState("floatingElement"),m=c.useState("domReferenceElement"),g=c.useState("open"),p=c.useState("floatingId"),[y,v]=O.useState(null),[S,E]=O.useState(void 0),[x,w]=O.useState(void 0),_=O.useRef(null),D=Ma(r),C=O.useMemo(()=>({reference:f,floating:d,domReference:m}),[f,d,m]),j=PC({...n,elements:{...C,...y&&{reference:y}}}),k=Je(S)?S:null,q=x===void 0?c.state.floatingElement:x;c.useSyncedValue("referenceElement",S??null),c.useSyncedValue("domReferenceElement",S===void 0?m:k),c.useSyncedValue("floatingElement",q);const F=O.useCallback(ae=>{const W=Je(ae)?{getBoundingClientRect:()=>ae.getBoundingClientRect(),getClientRects:()=>ae.getClientRects(),contextElement:ae}:ae;v(W),j.refs.setReference(W)},[j.refs]),B=O.useCallback(ae=>{(Je(ae)||ae===null)&&(_.current=ae,E(ae)),(Je(j.refs.reference.current)||j.refs.reference.current===null||ae!==null&&!Je(ae))&&j.refs.setReference(ae)},[j.refs,E]),U=O.useCallback(ae=>{w(ae),j.refs.setFloating(ae)},[j.refs]),K=O.useMemo(()=>({...j.refs,setReference:B,setFloating:U,setPositionReference:F,domReference:_}),[j.refs,B,U,F]),se=O.useMemo(()=>({...j.elements,domReference:m}),[j.elements,m]),pe=O.useMemo(()=>({...j,dataRef:c.context.dataRef,open:g,onOpenChange:c.setOpen,events:c.context.events,floatingId:p,refs:K,elements:se,nodeId:i,rootStore:c}),[j,K,se,i,c,g,p]);return Xe(()=>{m&&(_.current=m)},[m]),Xe(()=>{c.context.dataRef.current.floatingContext=pe;const ae=D==null?void 0:D.nodesRef.current.find(W=>W.id===i);ae&&(ae.context=pe)}),O.useMemo(()=>({...j,context:pe,refs:K,elements:se,rootStore:c}),[j,K,se,pe,c])}class Ph{constructor(){tt(this,"dispose",()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()});tt(this,"disposeEffect",()=>this.dispose);this.pointerType=void 0,this.interactedInside=!1,this.handler=void 0,this.blockMouseMove=!0,this.performedPointerEventsMutation=!1,this.pointerEventsScopeElement=null,this.pointerEventsReferenceElement=null,this.pointerEventsFloatingElement=null,this.restTimeoutPending=!1,this.openChangeTimeout=new ei,this.restTimeout=new ei,this.handleCloseOptions=void 0}static create(){return new Ph}}const Zc=new WeakMap;function Pc(n){var r,o,c;if(!n.performedPointerEventsMutation)return;const i=n.pointerEventsScopeElement;i&&Zc.get(i)===n&&((r=n.pointerEventsScopeElement)==null||r.style.removeProperty("pointer-events"),(o=n.pointerEventsReferenceElement)==null||o.style.removeProperty("pointer-events"),(c=n.pointerEventsFloatingElement)==null||c.style.removeProperty("pointer-events"),Zc.delete(i)),n.performedPointerEventsMutation=!1,n.pointerEventsScopeElement=null,n.pointerEventsReferenceElement=null,n.pointerEventsFloatingElement=null}function SS(n,i){const{scopeElement:r,referenceElement:o,floatingElement:c}=i,f=Zc.get(r);f&&f!==n&&Pc(f),Pc(n),n.performedPointerEventsMutation=!0,n.pointerEventsScopeElement=r,n.pointerEventsReferenceElement=o,n.pointerEventsFloatingElement=c,Zc.set(r,n),r.style.pointerEvents="none",o.style.pointerEvents="auto",c.style.pointerEvents="auto"}function xS(n){const i=n.context.dataRef.current,r=Qi(()=>i.hoverInteractionState??Ph.create()).current;return i.hoverInteractionState||(i.hoverInteractionState=r),Lh(i.hoverInteractionState.disposeEffect),i.hoverInteractionState}function BA(n,i={}){const{enabled:r=!0,closeDelay:o=0,nodeId:c}=i,f="rootStore"in n?n.rootStore:n,d=f.useState("open"),m=f.useState("floatingElement"),g=f.useState("domReferenceElement"),{dataRef:p}=f.context,y=Ma(),v=_a(),S=xS(f),E=Ea(),x=$e(()=>{var D;return L0((D=p.current.openEvent)==null?void 0:D.type,S.interactedInside)}),w=$e(()=>{var D;return SO((D=p.current.openEvent)==null?void 0:D.type)}),_=$e(()=>{Pc(S)});Xe(()=>{d||(S.pointerType=void 0,S.restTimeoutPending=!1,S.interactedInside=!1,_())},[d,S,_]),O.useEffect(()=>_,[_]),Xe(()=>{var D,C,j,k,q;if(r&&d&&(D=S.handleCloseOptions)!=null&&D.blockPointerEvents&&w()&&Je(g)&&m){const F=g,B=m,U=ut(m),K=(j=(C=y==null?void 0:y.nodesRef.current.find(W=>W.id===v))==null?void 0:C.context)==null?void 0:j.elements.floating;K&&(K.style.pointerEvents="");const se=S.pointerEventsScopeElement!==B?S.pointerEventsScopeElement:null,pe=K!==B?K:null,ae=((q=(k=S.handleCloseOptions)==null?void 0:k.getScope)==null?void 0:q.call(k))??se??pe??F.closest("[data-rootownerid]")??U.body;return SS(S,{scopeElement:ae,referenceElement:F,floatingElement:B}),()=>{_()}}},[r,d,g,m,S,w,y,v,_]),O.useEffect(()=>{if(!r)return;function D(){return!!(y&&v&&_s(y.nodesRef.current,v).length>0)}function C(U){const K=fh(o,"close",S.pointerType),se=()=>{f.setOpen(!1,Xt(xn,U)),y==null||y.events.emit("floating.closed",U)};K?S.openChangeTimeout.start(K,se):(S.openChangeTimeout.clear(),se())}function j(U){const K=$n(U);if(!bO(K)){S.interactedInside=!1;return}S.interactedInside=(K==null?void 0:K.closest("[aria-haspopup]"))!=null}function k(){S.openChangeTimeout.clear(),E.clear(),y==null||y.events.off("floating.closed",F),_()}function q(U){var ae;if(D()&&y){y.events.on("floating.closed",F);return}if(U0(U.relatedTarget,f.context.triggerElements))return;const K=((ae=p.current.floatingContext)==null?void 0:ae.nodeId)??c,se=U.relatedTarget;if(!(y&&K&&Je(se)&&_s(y.nodesRef.current,K,!1).some(W=>{var le;return Me((le=W.context)==null?void 0:le.elements.floating,se)}))){if(S.handler){S.handler(U);return}_(),w()&&!x()&&C(U)}}function F(U){!y||!v||D()||E.start(0,()=>{y.events.off("floating.closed",F),f.setOpen(!1,Xt(xn,U)),y.events.emit("floating.closed",U)})}const B=m;return qi(B&&Ke(B,"mouseenter",k),B&&Ke(B,"mouseleave",q),B&&Ke(B,"pointerdown",j,!0),()=>{y==null||y.events.off("floating.closed",F)})},[r,m,f,p,o,c,w,x,_,S,y,v,E])}const HA={current:null};function qA(n,i={}){var ie;const{enabled:r=!0,delay:o=0,handleClose:c=null,mouseOnly:f=!1,restMs:d=0,move:m=!0,triggerElementRef:g=HA,externalTree:p,isActiveTrigger:y=!0,getHandleCloseContext:v,isClosing:S,shouldOpen:E}=i,x="rootStore"in n?n.rootStore:n,{dataRef:w,events:_}=x.context,D=Ma(p),C=xS(x),j=O.useRef(!1),k=En(c),q=En(o),F=En(d),B=En(r),U=En(E),K=En(S),se=$e(()=>{var N;return L0((N=w.current.openEvent)==null?void 0:N.type,C.interactedInside)}),pe=$e(()=>{var N;return((N=U.current)==null?void 0:N.call(U))!==!1}),ae=$e((N,Q,I)=>{const oe=x.context.triggerElements;if(oe.hasElement(Q))return!N||!Me(N,Q);if(!Je(I))return!1;const Y=I;return oe.hasMatchingElement(T=>Me(T,Y))&&(!N||!Me(N,Y))}),W=$e(()=>{if(!C.handler)return;ut(x.select("domReferenceElement")).removeEventListener("mousemove",C.handler),C.handler=void 0}),le=$e(()=>{Pc(C)});return y&&(C.handleCloseOptions=(ie=k.current)==null?void 0:ie.__options),O.useEffect(()=>W,[W]),O.useEffect(()=>{if(!r)return;function N(Q){Q.open?j.current=!1:(j.current=Q.reason===xn,W(),C.openChangeTimeout.clear(),C.restTimeout.clear(),C.blockMouseMove=!0,C.restTimeoutPending=!1)}return _.on("openchange",N),()=>{_.off("openchange",N)}},[r,_,C,W]),O.useEffect(()=>{if(!r)return;function N(Y,T=!0){const H=fh(q.current,"close",C.pointerType);H?C.openChangeTimeout.start(H,()=>{x.setOpen(!1,Xt(xn,Y)),D==null||D.events.emit("floating.closed",Y)}):T&&(C.openChangeTimeout.clear(),x.setOpen(!1,Xt(xn,Y)),D==null||D.events.emit("floating.closed",Y))}const Q=g.current??(y?x.select("domReferenceElement"):null);if(!Je(Q))return;function I(Y){var ft;if(C.openChangeTimeout.clear(),C.blockMouseMove=!1,f&&!jo(C.pointerType))return;const T=Nb(F.current),H=fh(q.current,"open",C.pointerType),te=$n(Y),ne=Y.currentTarget??null,re=x.select("domReferenceElement");let ee=ne;if(Je(te)&&!x.context.triggerElements.hasElement(te)){for(const vt of x.context.triggerElements.elements())if(Me(vt,te)){ee=vt;break}}Je(ne)&&Je(re)&&!x.context.triggerElements.hasElement(ne)&&Me(ne,re)&&(ee=re);const ge=ee==null?!1:ae(re,ee,te),ce=x.select("open"),fe=((ft=K.current)==null?void 0:ft.call(K))??x.select("transitionStatus")==="ending",Ze=!ce&&fe&&j.current,nt=!ge&&Je(ee)&&Je(re)&&Me(re,ee)&&Ze,ve=T>0&&!H,ze=ge&&(ce||Ze)||nt,Oe=!ce||ge;if(ze){pe()&&x.setOpen(!0,Xt(xn,Y,ee));return}ve||(H?C.openChangeTimeout.start(H,()=>{Oe&&pe()&&x.setOpen(!0,Xt(xn,Y,ee))}):Oe&&pe()&&x.setOpen(!0,Xt(xn,Y,ee)))}function oe(Y){if(se()){le();return}W();const T=x.select("domReferenceElement"),H=ut(T);C.restTimeout.clear(),C.restTimeoutPending=!1;const te=w.current.floatingContext??(v==null?void 0:v());if(U0(Y.relatedTarget,x.context.triggerElements))return;if(k.current&&te){x.select("open")||C.openChangeTimeout.clear();const re=g.current;C.handler=k.current({...te,tree:D,x:Y.clientX,y:Y.clientY,onClose(){le(),W(),B.current&&!se()&&re===x.select("domReferenceElement")&&N(Y,!0)}}),H.addEventListener("mousemove",C.handler),C.handler(Y);return}(C.pointerType==="touch"?!Me(x.select("floatingElement"),Y.relatedTarget):!0)&&N(Y)}return m?qi(Ke(Q,"mousemove",I,{once:!0}),Ke(Q,"mouseenter",I),Ke(Q,"mouseleave",oe)):qi(Ke(Q,"mouseenter",I),Ke(Q,"mouseleave",oe))},[W,le,w,q,x,r,k,C,y,ae,se,f,m,F,g,D,B,v,K,pe]),O.useMemo(()=>{if(!r)return;function N(Q){C.pointerType=Q.pointerType}return{onPointerDown:N,onPointerEnter:N,onMouseMove(Q){var re,ee,ge;const{nativeEvent:I}=Q,oe=Q.currentTarget,Y=x.select("domReferenceElement"),T=x.select("open"),H=ae(Y,oe,Q.target);if(f&&!jo(C.pointerType))return;if(T&&H&&((re=C.handleCloseOptions)!=null&&re.blockPointerEvents)){const ce=x.select("floatingElement");if(ce){const fe=((ge=(ee=C.handleCloseOptions)==null?void 0:ee.getScope)==null?void 0:ge.call(ee))??oe.ownerDocument.body;SS(C,{scopeElement:fe,referenceElement:oe,floatingElement:ce})}}const te=Nb(F.current);if(T&&!H||te===0||!H&&C.restTimeoutPending&&Q.movementX**2+Q.movementY**2<2)return;C.restTimeout.clear();function ne(){if(C.restTimeoutPending=!1,se())return;const ce=x.select("open");!C.blockMouseMove&&(!ce||H)&&pe()&&x.setOpen(!0,Xt(xn,I,oe))}C.pointerType==="touch"?Ms.flushSync(()=>{ne()}):H&&T?ne():(C.restTimeoutPending=!0,C.restTimeout.start(te,ne))}}},[r,C,se,ae,f,x,F,pe])}const sv=.1,YA=sv*sv,lt=.5;function wc(n,i,r,o,c,f){return o>=i!=f>=i&&n<=(c-r)*(i-o)/(f-o)+r}function Rc(n,i,r,o,c,f,d,m,g,p){let y=!1;return wc(n,i,r,o,c,f)&&(y=!y),wc(n,i,c,f,d,m)&&(y=!y),wc(n,i,d,m,g,p)&&(y=!y),wc(n,i,g,p,r,o)&&(y=!y),y}function VA(n,i,r){return n>=r.x&&n<=r.x+r.width&&i>=r.y&&i<=r.y+r.height}function Oc(n,i,r,o,c,f){const d=Math.min(r,c),m=Math.max(r,c),g=Math.min(o,f),p=Math.max(o,f);return n>=d&&n<=m&&i>=g&&i<=p}function GA(n={}){const{blockPointerEvents:i=!1}=n,r=new ei,o=({x:c,y:f,placement:d,elements:m,onClose:g,nodeId:p,tree:y})=>{const v=d==null?void 0:d.split("-")[0];let S=!1,E=null,x=null,w=typeof performance<"u"?performance.now():0;function _(C,j){const k=performance.now(),q=k-w;if(E===null||x===null||q===0)return E=C,x=j,w=k,!1;const F=C-E,B=j-x,U=F*F+B*B,K=q*q*YA;return E=C,x=j,w=k,U<K}function D(){r.clear(),g()}return function(j){r.clear();const k=m.domReference,q=m.floating;if(!k||!q||v==null||c==null||f==null)return;const{clientX:F,clientY:B}=j,U=$n(j),K=j.type==="mouseleave",se=Me(q,U),pe=Me(k,U);if(se&&(S=!0,!K))return;if(pe&&(S=!1,!K)){S=!0;return}if(K&&Je(j.relatedTarget)&&Me(q,j.relatedTarget))return;function ae(){return!!(y&&_s(y.nodesRef.current,p).length>0)}function W(){ae()||D()}if(ae())return;const le=k.getBoundingClientRect(),ie=q.getBoundingClientRect(),N=c>ie.right-ie.width/2,Q=f>ie.bottom-ie.height/2,I=ie.width>le.width,oe=ie.height>le.height,Y=(I?le:ie).left,T=(I?le:ie).right,H=(oe?le:ie).top,te=(oe?le:ie).bottom;if(v==="top"&&f>=le.bottom-1||v==="bottom"&&f<=le.top+1||v==="left"&&c>=le.right-1||v==="right"&&c<=le.left+1){W();return}let ne=!1;switch(v){case"top":ne=Oc(F,B,Y,le.top+1,T,ie.bottom-1);break;case"bottom":ne=Oc(F,B,Y,ie.top+1,T,le.bottom-1);break;case"left":ne=Oc(F,B,ie.right-1,te,le.left+1,H);break;case"right":ne=Oc(F,B,le.right-1,te,ie.left+1,H);break}if(ne)return;if(S&&!VA(F,B,le)){W();return}if(!K&&_(F,B)){W();return}let re=!1;switch(v){case"top":{const ee=I?lt/2:lt*4,ge=I||N?c+ee:c-ee,ce=I?c-ee:N?c+ee:c-ee,fe=f+lt+1,Ze=N||I?ie.bottom-lt:ie.top,nt=N?I?ie.bottom-lt:ie.top:ie.bottom-lt;re=Rc(F,B,ge,fe,ce,fe,ie.left,Ze,ie.right,nt);break}case"bottom":{const ee=I?lt/2:lt*4,ge=I||N?c+ee:c-ee,ce=I?c-ee:N?c+ee:c-ee,fe=f-lt,Ze=N||I?ie.top+lt:ie.bottom,nt=N?I?ie.top+lt:ie.bottom:ie.top+lt;re=Rc(F,B,ge,fe,ce,fe,ie.left,Ze,ie.right,nt);break}case"left":{const ee=oe?lt/2:lt*4,ge=oe||Q?f+ee:f-ee,ce=oe?f-ee:Q?f+ee:f-ee,fe=c+lt+1,Ze=Q||oe?ie.right-lt:ie.left,nt=Q?oe?ie.right-lt:ie.left:ie.right-lt;re=Rc(F,B,Ze,ie.top,nt,ie.bottom,fe,ge,fe,ce);break}case"right":{const ee=oe?lt/2:lt*4,ge=oe||Q?f+ee:f-ee,ce=oe?f-ee:Q?f+ee:f-ee,fe=c-lt,Ze=Q||oe?ie.left+lt:ie.right,nt=Q?oe?ie.left+lt:ie.right:ie.left+lt;re=Rc(F,B,fe,ge,fe,ce,Ze,ie.top,nt,ie.bottom);break}}re?S||r.start(40,W):W()}};return o.__options={...n,blockPointerEvents:i},o}const ES=O.createContext(void 0);function Io(n){const i=O.useContext(ES);if(i===void 0&&!n)throw new Error(ur(47));return i}function QA(){return{...DA(),disabled:!1,modal:!1,focusManagerModal:!1,instantType:void 0,openMethod:null,openChangeReason:null,titleElementId:void 0,descriptionElementId:void 0,stickIfOpen:!0,nested:!1,openOnHover:!1,closeDelay:0,hasViewport:!1}}const XA={...jA,disabled:Ve(n=>n.disabled),instantType:Ve(n=>n.instantType),openMethod:Ve(n=>n.openMethod),openChangeReason:Ve(n=>n.openChangeReason),modal:Ve(n=>n.modal),focusManagerModal:Ve(n=>n.focusManagerModal),stickIfOpen:Ve(n=>n.stickIfOpen),titleElementId:Ve(n=>n.titleElementId),descriptionElementId:Ve(n=>n.descriptionElementId),openOnHover:Ve(n=>n.openOnHover),closeDelay:Ve(n=>n.closeDelay),hasViewport:Ve(n=>n.hasViewport)};class Ih extends pS{constructor(r,o,c=!1){const f={...QA(),...r},d=new Kh;f.open&&(r==null?void 0:r.mounted)===void 0&&(f.mounted=!0),f.floatingRootContext=zA(d,o,c);super(f,{popupRef:O.createRef(),backdropRef:O.createRef(),internalBackdropRef:O.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerFocusTargetRef:O.createRef(),beforeContentFocusGuardRef:O.createRef(),stickIfOpenTimeout:new ei,triggerElements:d},XA);tt(this,"setOpen",(r,o)=>{var y,v;const c=o.reason===xn,f=o.reason===Uo&&o.event.detail===0,d=!r&&(o.reason===H0||o.reason==null),m=wA(o),g=this.select("activeTriggerId");if(!r&&o.reason===EO&&o.trigger==null&&g!=null&&(o.trigger=this.context.triggerElements.getById(g)??this.select("activeTriggerElement")??void 0),(v=(y=this.context).onOpenChange)==null||v.call(y,r,o),o.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(r,o);const p=()=>{const S={open:r,openChangeReason:o.reason};TA(S,r,o.trigger,m()),this.update(S)};c?(this.set("stickIfOpen",!0),this.context.stickIfOpenTimeout.start(PO,()=>{this.set("stickIfOpen",!1)}),Ms.flushSync(p)):p(),f||d?this.set("instantType",f?"click":"dismiss"):o.reason===Lo?this.set("instantType","focus"):this.set("instantType",void 0)});tt(this,"disposeEffect",()=>this.context.stickIfOpenTimeout.disposeEffect())}static useStore(r,o){const{store:c,internalStore:f}=xA(r,(d,m)=>new Ih(o,d,m));return O.useEffect(()=>f==null?void 0:f.disposeEffect(),[f]),c}}function rv({props:n}){const{children:i,open:r,defaultOpen:o=!1,onOpenChange:c,onOpenChangeComplete:f,modal:d=!1,handle:m,triggerId:g,defaultTriggerId:p=null}=n,y=Ih.useStore(m==null?void 0:m.store,{modal:d,open:o,openProp:r,activeTriggerId:p,triggerIdProp:g});RA(y,r,o,p),y.useControlledProp("openProp",r),y.useControlledProp("triggerIdProp",g);const v=y.useState("open"),S=y.useState("mounted"),E=y.useState("payload"),x=_a()!=null;y.useContextCallback("onOpenChange",c),y.useContextCallback("onOpenChangeComplete",f),MA(y,v),CA(y);const{forceUnmount:w}=AA(v,y,()=>{y.update({stickIfOpen:!0,openChangeReason:null})});y.useSyncedValues({modal:d,nested:x}),O.useEffect(()=>{v||y.context.stickIfOpenTimeout.clear()},[y,v]);const _=O.useCallback(()=>{y.setOpen(!1,Xt(TO))},[y]);O.useImperativeHandle(n.actionsRef,()=>({unmount:w,close:_}),[w,_]);const D=v||S,C=O.useMemo(()=>({store:y}),[y]);return A.jsxs(ES.Provider,{value:C,children:[D&&A.jsx(KA,{store:y,modal:d}),typeof i=="function"?i({payload:E}):i]})}function FA(n){return Io(!0)?A.jsx(rv,{props:n}):A.jsx(rC,{children:A.jsx(rv,{props:n})})}function KA({store:n,modal:i}){const r=n.useState("floatingRootContext"),o=hC(r,{outsidePressEvent:{mouse:i==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}}),c=o.reference??Wt,f=o.trigger??Wt,d=O.useMemo(()=>Fo(bS,o.floating),[o.floating]);return _A(n,{activeTriggerProps:c,inactiveTriggerProps:f,popupProps:d}),null}let Jh=function(n){return n.open="data-open",n.closed="data-closed",n[n.startingStyle=Bo.startingStyle]="startingStyle",n[n.endingStyle=Bo.endingStyle]="endingStyle",n.anchorHidden="data-anchor-hidden",n.side="data-side",n.align="data-align",n}({}),ph=function(n){return n.popupOpen="data-popup-open",n.pressed="data-pressed",n}({});const ZA={[ph.popupOpen]:""},PA={[ph.popupOpen]:"",[ph.pressed]:""},IA={[Jh.open]:""},JA={[Jh.closed]:""},WA={[Jh.anchorHidden]:""},$A={open(n){return n?ZA:null}},e2={open(n){return n?PA:null}},TS={open(n){return n?IA:JA},anchorHidden(n){return n?WA:null}},t2=300;function n2(n){return Po(n,"base-ui")}function i2(n,i){const r=O.useRef(null);function o(f){Ms.flushSync(()=>{n.setOpen(!1,Xt(Lo,f.nativeEvent,f.currentTarget))});const d=QO(r.current);d==null||d.focus()}function c(f){var m;const d=n.select("positionerElement");if(d&&ra(f,d))(m=n.context.beforeContentFocusGuardRef.current)==null||m.focus();else{Ms.flushSync(()=>{n.setOpen(!1,Xt(Lo,f.nativeEvent,f.currentTarget))});let g=GO(n.context.triggerFocusTargetRef.current||i.current);for(;g!==null&&Me(d,g);){const p=g;if(g=Qh(g),g===p)break}g==null||g.focus()}}return{preFocusGuardRef:r,handlePreFocusGuardFocus:o,handleFocusTargetFocus:c}}function s2(n){const i=O.useRef(""),r=O.useCallback(c=>{c.defaultPrevented||(i.current=c.pointerType,n(c,c.pointerType))},[n]);return{onClick:O.useCallback(c=>{if(c.detail===0){n(c,"keyboard");return}"pointerType"in c?n(c,c.pointerType):n(c,i.current),i.current=""},[n]),onPointerDown:r}}function r2(n,i){const r=$e((f,d)=>{(typeof n=="function"?n():n)||i(d||(su?"touch":""))}),{onClick:o,onPointerDown:c}=s2(r);return O.useMemo(()=>({onClick:o,onPointerDown:c}),[o,c])}const a2=O.forwardRef(function(i,r){const{render:o,className:c,style:f,disabled:d=!1,nativeButton:m=!0,handle:g,payload:p,openOnHover:y=!1,delay:v=t2,closeDelay:S=0,id:E,...x}=i,w=Io(!0),_=(g==null?void 0:g.store)??(w==null?void 0:w.store);if(!_)throw new Error(ur(74));const D=n2(E),C=_.useState("isTriggerActive",D),j=_.useState("floatingRootContext"),k=_.useState("isOpenedByTrigger",D),q=_.useState("triggerPopupId",D),F=O.useRef(null),{registerTrigger:B,isMountedByThisTrigger:U}=OA(D,F,_,{payload:p,disabled:d,openOnHover:y,closeDelay:S}),K=_.useState("openChangeReason"),se=_.useState("stickIfOpen"),pe=_.useState("openMethod"),ae=_.useState("focusManagerModal"),W=qA(j,{enabled:!d&&j!=null&&y&&(pe!=="touch"||K!==Uo),mouseOnly:!0,move:!1,handleClose:GA(),restMs:v,delay:{close:S},triggerElementRef:F,isActiveTrigger:C,isClosing:()=>_.select("transitionStatus")==="ending"}),le=uC(j,{enabled:j!=null,stickIfOpen:se}),ie=r2(()=>_.select("open"),re=>{_.set("openMethod",re)}),N=_.useState("triggerProps",U),{getButtonProps:Q,buttonRef:I}=N0({disabled:d,native:m}),oe={open(re){return re&&K===Uo?e2.open(re):$A.open(re)}},{preFocusGuardRef:Y,handlePreFocusGuardFocus:T,handleFocusTargetFocus:H}=i2(_,F),ne=Ra("button",i,{state:{disabled:d,open:k},ref:[I,r,B,F],props:[le.reference,W,N,ie,{[eS]:"",id:D,"aria-haspopup":"dialog","aria-expanded":k,"aria-controls":q},x,Q],stateAttributesMapping:oe});return U&&!ae?A.jsxs(O.Fragment,{children:[A.jsx(Ta,{ref:Y,onFocus:T}),A.jsx(O.Fragment,{children:ne},D),A.jsx(Ta,{ref:_.context.triggerFocusTargetRef,onFocus:H})]}):A.jsx(O.Fragment,{children:ne},D)}),wS=O.createContext(void 0);function o2(){const n=O.useContext(wS);if(n===void 0)throw new Error(ur(45));return n}const l2=O.forwardRef(function(i,r){const{keepMounted:o=!1,...c}=i,{store:f}=Io();return f.useState("mounted")||o?A.jsx(wS.Provider,{value:o,children:A.jsx(tC,{ref:r,...c})}):null});function c2(n){return wh(19)?n:n?"true":void 0}const RS=O.createContext(void 0);function u2(){const n=O.useContext(RS);if(!n)throw new Error(ur(46));return n}const f2=O.createContext(void 0);function d2(){const n=O.useContext(f2);return(n==null?void 0:n.direction)??"ltr"}const h2=n=>({name:"arrow",options:n,async fn(i){var oe,Y;const{x:r,y:o,placement:c,rects:f,platform:d,elements:m,middlewareData:g}=i,{element:p,padding:y=0,offsetParent:v="real"}=Gi(n,i)||{};if(p==null)return{};const S=Y0(y),E={x:r,y:o},x=Vh(c),w=Yh(x),_=await d.getDimensions(p),D=x==="y",C=D?"top":"left",j=D?"bottom":"right",k=D?"clientHeight":"clientWidth",q=f.reference[w]+f.reference[x]-E[x]-f.floating[w],F=E[x]-f.reference[x],B=v==="real"?await((oe=d.getOffsetParent)==null?void 0:oe.call(d,p)):m.floating;let U=m.floating[k]||f.floating[w];(!U||!await((Y=d.isElement)==null?void 0:Y.call(d,B)))&&(U=m.floating[k]||f.floating[w]);const K=q/2-F/2,se=U/2-_[w]/2-1,pe=Math.min(S[C],se),ae=Math.min(S[j],se),W=pe,le=U-_[w]-ae,ie=U/2-_[w]/2+K,N=q0(W,ie,le),Q=!g.arrow&&Ds(c)!=null&&ie!==N&&f.reference[w]/2-(ie<W?pe:ae)-_[w]/2<0,I=Q?ie<W?ie-W:ie-le:0;return{[x]:E[x]+I,data:{[x]:N,centerOffset:ie-N-I,...Q&&{alignmentOffset:I}},reset:Q}}}),m2=(n,i)=>({...h2(n),options:[n,i]}),p2=tA().fn,g2={name:"hide",async fn(n){var m;const{width:i,height:r,x:o,y:c}=n.rects.reference,f=i===0&&r===0&&o===0&&c===0;return{data:{referenceHidden:((m=(await p2(n)).data)==null?void 0:m.referenceHidden)||f}}}},jc={sideX:"left",sideY:"top"},y2={name:"adaptiveOrigin",async fn(n){var C,j;const{x:i,y:r,rects:{floating:o},elements:{floating:c},platform:f,strategy:d,placement:m}=n,g=kt(c),p=g.getComputedStyle(c);if(!(p.transitionDuration!=="0s"&&p.transitionDuration!==""))return{x:i,y:r,data:jc};const v=await((C=f.getOffsetParent)==null?void 0:C.call(f,c));let S={width:0,height:0};if(d==="fixed"&&(g!=null&&g.visualViewport))S={width:g.visualViewport.width,height:g.visualViewport.height};else if(v===g){const k=ut(c);S={width:k.documentElement.clientWidth,height:k.documentElement.clientHeight}}else await((j=f.isElement)==null?void 0:j.call(f,v))&&(S=await f.getDimensions(v));const E=Dn(m);let x=i,w=r;E==="left"&&(x=S.width-(i+o.width)),E==="top"&&(w=S.height-(r+o.height));const _=E==="left"?"right":jc.sideX,D=E==="top"?"bottom":jc.sideY;return{x,y:w,data:{sideX:_,sideY:D}}}};function OS(n,i,r){const o=n==="inline-start"||n==="inline-end";return{top:"top",right:o?r?"inline-start":"inline-end":"right",bottom:"bottom",left:o?r?"inline-end":"inline-start":"left"}[i]}function av(n,i,r){const{rects:o,placement:c}=n;return{side:OS(i,Dn(c),r),align:Ds(c)||"center",anchor:{width:o.reference.width,height:o.reference.height},positioner:{width:o.floating.width,height:o.floating.height}}}function b2(n){var gr,pi;const{anchor:i,positionMethod:r="absolute",side:o="bottom",sideOffset:c=0,align:f="center",alignOffset:d=0,collisionBoundary:m,collisionPadding:g=5,sticky:p=!1,arrowPadding:y=5,disableAnchorTracking:v=!1,inline:S,keepMounted:E=!1,floatingRootContext:x,mounted:w,collisionAvoidance:_,shiftCrossAxis:D=!1,nodeId:C,adaptiveOrigin:j,lazyFlip:k=!1,externalTree:q}=n,[F,B]=O.useState(null);!w&&F!==null&&B(null);const U=_.side||"flip",K=_.align||"flip",se=_.fallbackAxisSide||"end",pe=typeof i=="function"?i:void 0,ae=$e(pe),W=pe?ae:i,le=En(i),ie=En(w),Q=d2()==="rtl",I=F||{top:"top",right:"right",bottom:"bottom",left:"left","inline-end":Q?"left":"right","inline-start":Q?"right":"left"}[o],oe=f==="center"?I:`${I}-${f}`;let Y=g;const T=1,H=o==="bottom"?T:0,te=o==="top"?T:0,ne=o==="right"?T:0,re=o==="left"?T:0;typeof Y=="number"?Y={top:Y+H,right:Y+re,bottom:Y+te,left:Y+ne}:Y&&(Y={top:(Y.top||0)+H,right:(Y.right||0)+re,bottom:(Y.bottom||0)+te,left:(Y.left||0)+ne});const ee={boundary:m==="clipping-ancestors"?"clippingAncestors":m,padding:Y},ge=O.useRef(null),ce=En(c),fe=En(d),Ze=typeof c!="function"?c:0,nt=typeof d!="function"?d:0,ve=[];S&&ve.push(S),ve.push(IC(Fe=>{const Ot=av(Fe,o,Q),Vt=typeof ce.current=="function"?ce.current(Ot):ce.current,Ft=typeof fe.current=="function"?fe.current(Ot):fe.current;return{mainAxis:Vt,crossAxis:Ft,alignmentAxis:Ft}},[Ze,nt,Q,o]));const ze=K==="none"&&U!=="shift",Oe=!ze&&(p||D||U==="shift"),ft=U==="none"?null:$C({...ee,padding:{top:Y.top+T,right:Y.right+T,bottom:Y.bottom+T,left:Y.left+T},mainAxis:!D&&U==="flip",crossAxis:K==="flip"?"alignment":!1,fallbackAxisSideDirection:se}),vt=ze?null:JC(Fe=>{const Ot=ut(Fe.elements.floating).documentElement;return{...ee,rootBoundary:D?{x:0,y:0,width:Ot.clientWidth,height:Ot.clientHeight}:void 0,mainAxis:K!=="none",crossAxis:Oe,limiter:p||D?void 0:WC(Vt=>{if(!ge.current)return{};const{width:Ft,height:an}=ge.current.getBoundingClientRect(),wn=Fn(Dn(Vt.placement)),ni=wn==="y"?Ft:an,ii=wn==="y"?Y.left+Y.right:Y.top+Y.bottom;return{offset:ni/2+ii/2}})}},[ee,p,D,Y,K]);U==="shift"||K==="shift"||f==="center"?ve.push(vt,ft):ve.push(ft,vt),ve.push(eA({...ee,apply({elements:{floating:Fe},availableWidth:Ot,availableHeight:Vt,rects:Ft}){if(!ie.current)return;const an=Fe.style;an.setProperty("--available-width",`${Ot}px`),an.setProperty("--available-height",`${Vt}px`);const wn=kt(Fe).devicePixelRatio||1,{x:ni,y:ii,width:dn,height:Na}=Ft.reference,yr=(Math.round((ni+dn)*wn)-Math.round(ni*wn))/wn,br=(Math.round((ii+Na)*wn)-Math.round(ii*wn))/wn;an.setProperty("--anchor-width",`${yr}px`),an.setProperty("--anchor-height",`${br}px`)}}),m2(Fe=>({element:ge.current||ut(Fe.elements.floating).createElement("div"),padding:y,offsetParent:"floating"}),[y]),{name:"transformOrigin",fn(Fe){var Sr,el,tl;const{elements:Ot,middlewareData:Vt,placement:Ft,rects:an,y:wn}=Fe,ni=Dn(Ft),ii=Fn(ni),dn=ge.current,Na=((Sr=Vt.arrow)==null?void 0:Sr.x)||0,yr=((el=Vt.arrow)==null?void 0:el.y)||0,br=(dn==null?void 0:dn.clientWidth)||0,Jo=(dn==null?void 0:dn.clientHeight)||0,zs=Na+br/2,vr=yr+Jo/2,Wo=Math.abs(((tl=Vt.shift)==null?void 0:tl.y)||0),$o=an.reference.height/2,hn=typeof c=="function"?c(av(Fe,o,Q)):c,Ut=Wo>hn,en={top:`${zs}px calc(100% + ${hn}px)`,bottom:`${zs}px ${-hn}px`,left:`calc(100% + ${hn}px) ${vr}px`,right:`${-hn}px ${vr}px`}[ni],Fi=`${zs}px ${an.reference.y+$o-wn}px`;return Ot.floating.style.setProperty("--transform-origin",Oe&&ii==="y"&&Ut?Fi:en),{}}},g2,j),Xe(()=>{!w&&x&&x.update({referenceElement:null,floatingElement:null,domReferenceElement:null,positionReference:null})},[w,x]);const Re=O.useMemo(()=>({elementResize:!v&&typeof ResizeObserver<"u",layoutShift:!v&&typeof IntersectionObserver<"u"}),[v]),{refs:ke,elements:Ee,x:mt,y:dt,middlewareData:je,update:xt,placement:ue,context:xe,isPositioned:ht,floatingStyles:Be}=LA({rootContext:x,open:E?w:void 0,placement:oe,middleware:ve,strategy:r,whileElementsMounted:E?void 0:(...Fe)=>Jb(...Fe,Re),nodeId:C,externalTree:q}),{sideX:pt,sideY:jt}=je.adaptiveOrigin||jc,sn=ht?r:"fixed",rn=O.useMemo(()=>{const Fe=j?{position:sn,[pt]:mt,[jt]:dt}:{position:sn,...Be};return ht||(Fe.opacity=0),Fe},[j,sn,pt,mt,jt,dt,Be,ht]),ti=O.useRef(null);Xe(()=>{if(!w)return;const Fe=le.current,Ot=typeof Fe=="function"?Fe():Fe,Ft=(ov(Ot)?Ot.current:Ot)||null||null;Ft!==ti.current&&(ke.setPositionReference(Ft),ti.current=Ft)},[w,ke,W,le]),O.useEffect(()=>{if(!w)return;const Fe=le.current;typeof Fe!="function"&&ov(Fe)&&Fe.current!==ti.current&&(ke.setPositionReference(Fe.current),ti.current=Fe.current)},[w,ke,W,le]),O.useEffect(()=>{if(E&&w&&Ee.reference&&Ee.floating)return Jb(Ee.reference,Ee.floating,xt,Re)},[E,w,Ee,xt,Re]);const fn=Dn(ue),qt=OS(o,fn,Q),Tn=Ds(ue)||"center",Yt=!!((gr=je.hide)!=null&&gr.referenceHidden);Xe(()=>{k&&w&&ht&&B(fn)},[k,w,ht,fn]);const mr=O.useMemo(()=>{var Fe,Ot;return{position:"absolute",top:(Fe=je.arrow)==null?void 0:Fe.y,left:(Ot=je.arrow)==null?void 0:Ot.x}},[je.arrow]),pr=((pi=je.arrow)==null?void 0:pi.centerOffset)!==0;return O.useMemo(()=>({positionerStyles:rn,arrowStyles:mr,arrowRef:ge,arrowUncentered:pr,side:qt,align:Tn,physicalSide:fn,anchorHidden:Yt,refs:ke,context:xe,isPositioned:ht,update:xt}),[rn,mr,ge,pr,qt,Tn,fn,Yt,ke,xe,ht,xt])}function ov(n){return n!=null&&"current"in n}const v2=O.forwardRef(function(i,r){const{cutout:o,...c}=i;let f;if(o){const d=o.getBoundingClientRect();f=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${d.left}px ${d.top}px,${d.left}px ${d.bottom}px,${d.right}px ${d.bottom}px,${d.right}px ${d.top}px,${d.left}px ${d.top}px)`}return A.jsx("div",{ref:r,role:"presentation","data-base-ui-inert":"",...c,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:f}})});function CS(n){return n==="starting"?IO:Wt}function S2(n,i,{styles:r,transitionStatus:o,props:c,refs:f,hidden:d,inert:m=!1}){const g={...r};return m&&(g.pointerEvents="none"),Ra("div",n,{state:i,ref:f,props:[{role:"presentation",hidden:d,style:g},CS(o),c],stateAttributesMapping:TS})}let lv={},cv={},uv="";function x2(n){if(typeof document>"u")return!1;const i=ut(n);return kt(i).innerWidth-i.documentElement.clientWidth>0}function E2(n){if(!(typeof CSS<"u"&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||typeof document>"u")return!1;const r=ut(n),o=r.documentElement,c=r.body,f=hr(o)?o:c,d=f.style.overflowY,m=o.style.scrollbarGutter;o.style.scrollbarGutter="stable",f.style.overflowY="scroll";const g=f.offsetWidth;f.style.overflowY="hidden";const p=f.offsetWidth;return f.style.overflowY=d,o.style.scrollbarGutter=m,g===p}function T2(n){const i=ut(n),r=i.documentElement,o=i.body,c=hr(r)?r:o,f={overflowY:c.style.overflowY,overflowX:c.style.overflowX};return Object.assign(c.style,{overflowY:"hidden",overflowX:"hidden"}),()=>{Object.assign(c.style,f)}}function w2(n){var E;const i=ut(n),r=i.documentElement,o=i.body,c=kt(r);let f=0,d=0,m=!1;const g=di.create();if(Aa&&(((E=c.visualViewport)==null?void 0:E.scale)??1)!==1)return()=>{};function p(){const x=c.getComputedStyle(r),w=c.getComputedStyle(o),C=(x.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";f=r.scrollTop,d=r.scrollLeft,lv={scrollbarGutter:r.style.scrollbarGutter,overflowY:r.style.overflowY,overflowX:r.style.overflowX},uv=r.style.scrollBehavior,cv={position:o.style.position,height:o.style.height,width:o.style.width,boxSizing:o.style.boxSizing,overflowY:o.style.overflowY,overflowX:o.style.overflowX,scrollBehavior:o.style.scrollBehavior};const j=r.scrollHeight>r.clientHeight,k=r.scrollWidth>r.clientWidth,q=x.overflowY==="scroll"||w.overflowY==="scroll",F=x.overflowX==="scroll"||w.overflowX==="scroll",B=Math.max(0,c.innerWidth-o.clientWidth),U=Math.max(0,c.innerHeight-o.clientHeight),K=parseFloat(w.marginTop)+parseFloat(w.marginBottom),se=parseFloat(w.marginLeft)+parseFloat(w.marginRight),pe=hr(r)?r:o;if(m=E2(n),m){r.style.scrollbarGutter=C,pe.style.overflowY="hidden",pe.style.overflowX="hidden";return}Object.assign(r.style,{scrollbarGutter:C,overflowY:"hidden",overflowX:"hidden"}),(j||q)&&(r.style.overflowY="scroll"),(k||F)&&(r.style.overflowX="scroll"),Object.assign(o.style,{position:"relative",height:K||U?`calc(100dvh - ${K+U}px)`:"100dvh",width:se||B?`calc(100vw - ${se+B}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),o.scrollTop=f,o.scrollLeft=d,r.setAttribute("data-base-ui-scroll-locked",""),r.style.scrollBehavior="unset"}function y(){Object.assign(r.style,lv),Object.assign(o.style,cv),m||(r.scrollTop=f,r.scrollLeft=d,r.removeAttribute("data-base-ui-scroll-locked"),r.style.scrollBehavior=uv)}function v(){y(),g.request(p)}p();const S=Ke(c,"resize",v);return()=>{g.cancel(),y(),typeof c.removeEventListener=="function"&&S()}}class R2{constructor(){tt(this,"lockCount",0);tt(this,"restore",null);tt(this,"timeoutLock",ei.create());tt(this,"timeoutUnlock",ei.create());tt(this,"release",()=>{this.lockCount-=1,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)});tt(this,"unlock",()=>{var i;this.lockCount===0&&this.restore&&((i=this.restore)==null||i.call(this),this.restore=null)})}acquire(i){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(i)),this.release}lock(i){if(this.lockCount===0||this.restore!==null)return;const o=ut(i).documentElement,c=kt(o).getComputedStyle(o).overflowY;if(c==="hidden"||c==="clip"){this.restore=Rh;return}const f=su||!x2(i);this.restore=f?T2(i):w2(i)}}const O2=new R2;function C2(n=!0,i=null){Xe(()=>{if(n)return O2.acquire(i)},[n,i])}const A2=20;function _2(n,i,r,o){const[c,f]=O.useState(!1);Xe(()=>{if(!n||!i||r==null){f(!1);return}const d=ut(r).documentElement.clientWidth,m=r.offsetWidth;f(d>0&&m>0&&m>=d-A2)},[n,i,r]),C2(n&&(!i||c),o)}const M2=O.forwardRef(function(i,r){const{render:o,className:c,style:f,anchor:d,positionMethod:m="absolute",side:g="bottom",align:p="center",sideOffset:y=0,alignOffset:v=0,collisionBoundary:S="clipping-ancestors",collisionPadding:E=5,arrowPadding:x=5,sticky:w=!1,disableAnchorTracking:_=!1,collisionAvoidance:D=JO,...C}=i,{store:j}=Io(),k=o2(),q=iC(),F=j.useState("floatingRootContext"),B=j.useState("mounted"),U=j.useState("open"),K=j.useState("openChangeReason"),se=j.useState("activeTriggerElement"),pe=j.useState("modal"),ae=j.useState("openMethod"),W=j.useState("positionerElement"),le=j.useState("instantType"),ie=j.useState("transitionStatus"),N=j.useState("hasViewport"),Q=O.useRef(null),I=gS(W,!1,!1),oe=b2({anchor:d,floatingRootContext:F,positionMethod:m,mounted:B,side:g,sideOffset:y,align:p,alignOffset:v,arrowPadding:x,collisionBoundary:S,collisionPadding:E,sticky:w,disableAnchorTracking:_,keepMounted:k,nodeId:q,collisionAvoidance:D,adaptiveOrigin:N?y2:void 0}),Y=F.useState("domReferenceElement");Xe(()=>{const ne=Y,re=Q.current;if(ne&&(Q.current=ne),re&&ne&&ne!==re){j.set("instantType",void 0);const ee=new AbortController;return I(()=>{j.set("instantType","trigger-change")},ee.signal),()=>{ee.abort()}}},[Y,I,j]),_2(U&&pe===!0&&K!==xn,ae==="touch",W,se);const T=O.useCallback(ne=>{j.set("positionerElement",ne)},[j]),H={open:U,side:oe.side,align:oe.align,anchorHidden:oe.anchorHidden,instant:le},te=S2(i,H,{styles:oe.positionerStyles,transitionStatus:ie,props:C,refs:[r,T],hidden:!B,inert:!U});return A.jsxs(RS.Provider,{value:oe,children:[B&&pe===!0&&K!==xn&&A.jsx(v2,{ref:j.context.internalBackdropRef,inert:c2(!U),cutout:se}),A.jsx(sC,{id:q,children:te})]})}),N2="ArrowUp",D2="ArrowDown",z2="ArrowLeft",k2="ArrowRight",j2="Home",U2="End",L2=new Set([z2,k2]),B2=new Set([N2,D2]),H2=new Set([...L2,...B2]),q2=new Set([...H2,j2,U2]),Y2=O.createContext(void 0);function V2(n){return O.useContext(Y2)}const G2=O.createContext(void 0);function Q2(){const[n,i]=O.useState(0),r=$e(()=>(i(c=>c+1),()=>{i(c=>Math.max(0,c-1))}));return{context:O.useMemo(()=>({register:r}),[r]),hasClosePart:n>0}}function X2(n){const{value:i,children:r}=n;return A.jsx(G2.Provider,{value:i,children:r})}const F2={...TS,...vA},K2=O.forwardRef(function(i,r){const{render:o,className:c,style:f,initialFocus:d,finalFocus:m,...g}=i,{store:p}=Io(),y=u2(),v=V2()!=null,{context:S,hasClosePart:E}=Q2(),x=p.useState("open"),w=p.useState("openMethod"),_=p.useState("instantType"),D=p.useState("transitionStatus"),C=p.useState("popupProps"),j=p.useState("titleElementId"),k=p.useState("descriptionElementId"),q=p.useState("modal"),F=p.useState("mounted"),B=p.useState("openChangeReason"),U=p.useState("activeTriggerElement"),K=p.useState("floatingRootContext"),se=K.useState("floatingId"),pe=p.useState("disabled"),ae=p.useState("openOnHover"),W=p.useState("closeDelay"),le=g.id??se;yS({open:x,ref:p.context.popupRef,onComplete(){var Y,T;x&&((T=(Y=p.context).onOpenChangeComplete)==null||T.call(Y,!0))}}),BA(K,{enabled:ae&&!pe,closeDelay:W});const ie=d===void 0?SA(p.context.popupRef):d,N=q!==!1&&E;p.useSyncedValue("focusManagerModal",N);const Q=O.useCallback(Y=>{p.set("popupElement",Y)},[p]),I={open:x,side:y.side,align:y.align,instant:_,transitionStatus:D},oe=Ra("div",i,{state:I,ref:[r,p.context.popupRef,Q],props:[C,{id:le,role:"dialog",...bS,"aria-labelledby":j,"aria-describedby":k,onKeyDown(Y){v&&q2.has(Y.key)&&Y.stopPropagation()}},CS(D),g],stateAttributesMapping:F2});return A.jsx(cC,{context:K,openInteractionType:w,modal:N,disabled:!F||B===xn,initialFocus:ie,returnFocus:m,restoreFocus:"popup",previousFocusableElement:Rt(U)?U:void 0,nextFocusableElement:p.context.triggerFocusTargetRef,beforeContentFocusGuardRef:p.context.beforeContentFocusGuardRef,children:A.jsx(X2,{value:S,children:oe})})}),Z2="bg-chatroom-bg-primary text-chatroom-text-primary border border-chatroom-border rounded-none shadow-md",P2=`z-50 pointer-events-auto outline-none ${Z2}`;function AS({modal:n=!1,...i}){return A.jsx(FA,{"data-slot":"popover",modal:n,...i})}function _S(n){return A.jsx(a2,{"data-slot":"popover-trigger",...n})}function MS({className:n,align:i="start",side:r="bottom",sideOffset:o=4,...c}){return A.jsx(l2,{children:A.jsx(M2,{align:i,side:r,sideOffset:o,className:"isolate z-50",children:A.jsx(K2,{className:un("w-72 origin-(--transform-origin) overflow-hidden p-0 data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95",P2,n),...c})})})}function NS({options:n,value:i,onChange:r,disabled:o,isLoading:c,isError:f,placeholder:d="Select…",allLabel:m="All",searchPlaceholder:g="Search…",emptyLabel:p="No results",ariaLabel:y,triggerClassName:v,contentClassName:S,allowClear:E=!0}){var U;const[x,w]=O.useState(!1),{searchTerm:_,setSearchTerm:D,handleOpenChange:C}=nO(w),j=(U=n.find(K=>K.value===i))==null?void 0:U.label,k=c?"Loading…":f?"Failed to load":j??d,q=O.useMemo(()=>$R(n,_,K=>`${K.label} ${K.value}`),[n,_]),F=o||c||f,B=A.jsxs("button",{type:"button",disabled:F,className:un(z0,v),"aria-label":y,"aria-busy":c,children:[A.jsx("span",{className:"truncate",children:k}),A.jsx(Jc,{size:12,className:k0})]});return A.jsxs(AS,{open:x,onOpenChange:C,children:[A.jsx(_S,{render:B}),A.jsxs(MS,{className:un("w-64",S),children:[A.jsx(tO,{value:_,onChange:D,placeholder:g}),A.jsxs(eO,{maxHeightClassName:"max-h-60",children:[E&&A.jsx(Vc,{selected:!i,onSelect:()=>{r(void 0),C(!1)},children:m}),q.map(K=>A.jsx(Vc,{selected:i===K.value,onSelect:()=>{r(K.value),C(!1)},children:K.label},K.value)),!q.length&&A.jsx("div",{className:"px-3 py-2 text-xs text-chatroom-text-muted",children:p})]})]})]})}function DS({chatrooms:n,value:i,onChange:r,disabled:o,isLoading:c,isError:f}){return A.jsxs("label",{className:"flex items-center gap-2 text-xs",children:[A.jsx("span",{className:"text-chatroom-text-muted",children:"Chatroom"}),A.jsx(NS,{options:n.map(d=>({value:d.id,label:d.displayName})),value:i,onChange:d=>{d&&r(d)},disabled:o,isLoading:c,isError:f,placeholder:"Select chatroom",allowClear:!1,searchPlaceholder:"Search chatrooms…",ariaLabel:"Filter by chatroom",triggerClassName:"min-w-[10rem]"})]})}const Wh="1h",zS={"1h":"Last 1 hour","3h":"Last 3 hours","1d":"Last 1 day"},kS={"1h":36e5,"3h":108e5,"1d":864e5};function Ic(n,i=Date.now()){return n.timeRange==="custom"&&n.fromMs!==void 0&&n.toMs!==void 0?{fromMs:n.fromMs,toMs:n.toMs}:{fromMs:i-(kS[n.timeRange]??36e5),toMs:i}}function I2(n){const i=n.timeRange??"1h";return i!=="custom"?zS[i]:n.fromMs!==void 0&&n.toMs!==void 0?`${new Date(n.fromMs).toLocaleString()} – ${new Date(n.toMs).toLocaleString()}`:"Custom range"}const Cc=n=>{const i=new Date(n),r=o=>String(o).padStart(2,"0");return`${i.getFullYear()}-${r(i.getMonth()+1)}-${r(i.getDate())}T${r(i.getHours())}:${r(i.getMinutes())}`},fv=n=>{const i=new Date(n).getTime();return Number.isFinite(i)?i:void 0},J2=["1h","3h","1d"];function jS({value:n,onChange:i,disabled:r}){const[o,c]=O.useState(!1),[f,d]=O.useState(null),[m,g]=O.useState(null),p=n.timeRange??Wh,y=f??(p==="custom"&&n.fromMs!==void 0?Cc(n.fromMs):""),v=m??(p==="custom"&&n.toMs!==void 0?Cc(n.toMs):""),S=()=>{const x=Date.now(),w=n.fromMs??x-kS["1h"],_=n.toMs??x;d(Cc(w)),g(Cc(_)),i({timeRange:"custom",fromMs:w,toMs:_})},E=()=>{const x=fv(y),w=fv(v);x===void 0||w===void 0||x>w||(i({timeRange:"custom",fromMs:x,toMs:w}),c(!1))};return A.jsxs("label",{className:"flex items-center gap-2 text-xs",children:[A.jsx("span",{className:"text-chatroom-text-muted",children:"Time"}),A.jsxs(AS,{open:o,onOpenChange:c,children:[A.jsx(_S,{render:A.jsxs("button",{type:"button",disabled:r,className:un(z0,"min-w-[10rem]"),"aria-label":"Filter by time range",children:[A.jsx("span",{className:"truncate",children:I2(n)}),A.jsx(Jc,{size:12,className:k0})]})}),A.jsxs(MS,{className:"w-72 p-0",align:"start",children:[J2.map(x=>A.jsx(Vc,{selected:p===x,onSelect:()=>{d(null),g(null),i({timeRange:x,fromMs:void 0,toMs:void 0}),c(!1)},children:zS[x]},x)),A.jsx(Vc,{selected:p==="custom",onSelect:S,children:"Custom range…"}),p==="custom"&&A.jsxs("div",{className:"space-y-2 border-t border-chatroom-border px-3 py-2",children:[A.jsxs("label",{className:"flex flex-col gap-1 text-[11px] text-chatroom-text-muted",children:["Start",A.jsx("input",{type:"datetime-local",value:y,onChange:x=>d(x.target.value),className:"rounded-none border border-chatroom-border bg-chatroom-bg-secondary px-2 py-1 text-xs text-chatroom-text-primary"})]}),A.jsxs("label",{className:"flex flex-col gap-1 text-[11px] text-chatroom-text-muted",children:["End",A.jsx("input",{type:"datetime-local",value:v,onChange:x=>g(x.target.value),className:"rounded-none border border-chatroom-border bg-chatroom-bg-secondary px-2 py-1 text-xs text-chatroom-text-primary"})]}),A.jsx("button",{type:"button",onClick:E,className:"w-full border border-chatroom-border bg-chatroom-bg-tertiary px-2 py-1.5 text-xs hover:bg-chatroom-bg-hover",children:"Apply"})]})]})]})]})}function W2({chatrooms:n,chatroomsLoading:i,chatroomsError:r,values:o,onChange:c,disabled:f}){return A.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[A.jsx(jS,{value:{timeRange:o.timeRange,fromMs:o.fromMs,toMs:o.toMs},onChange:d=>c({...o,...d}),disabled:f}),A.jsx(DS,{chatrooms:n,value:o.chatroomId,onChange:d=>c({...o,chatroomId:d}),disabled:f,isLoading:i,isError:r})]})}function $2({hasChatroom:n}){return A.jsxs("div",{className:"flex min-h-[400px] flex-1 flex-col items-center justify-center gap-2 border border-chatroom-border bg-chatroom-bg-secondary p-6 text-center",role:"status",children:[A.jsx(d0,{className:"size-8 text-chatroom-text-muted","aria-hidden":!0}),A.jsx("p",{className:"text-sm text-chatroom-text-secondary",children:n?"No events in this time range":"Select a chatroom to view events"})]})}const e_=["role","message","reason","taskId","agentId","phase","status","harness"];function t_(n){for(const r of e_){const o=n[r];if(typeof o=="string"&&o.trim())return o.length>80?`${o.slice(0,77)}…`:o;if(typeof o=="number")return String(o)}const i=new Set(["type","timestamp","chatroomId","_id"]);for(const[r,o]of Object.entries(n)){if(i.has(r)||o==null)continue;const c=`${r}: ${typeof o=="string"?o:JSON.stringify(o)}`;return c.length>80?`${c.slice(0,77)}…`:c}return""}function n_({entry:n,selected:i,onSelect:r}){return A.jsxs("div",{role:"button",tabIndex:0,onClick:()=>r==null?void 0:r(n),onKeyDown:o=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),r==null||r(n))},className:`flex items-center gap-3 border-b border-chatroom-border px-3 py-2 text-xs ${i?"bg-chatroom-bg-hover":"hover:bg-chatroom-bg-hover"}`,children:[A.jsx("span",{className:"w-20 shrink-0 font-mono text-chatroom-text-muted",children:new Date(n.timestamp).toLocaleTimeString()}),A.jsx(_0,{type:n.type}),A.jsx("span",{className:"min-w-0 truncate text-chatroom-text-secondary",children:t_(n.payload)})]})}function i_(n,i=48){return n.scrollHeight-n.scrollTop-n.clientHeight<=i}function US(n){const i=O.useRef(null),[r,o]=O.useState(!0),c=O.useRef(n),f=O.useCallback((g="auto")=>{const p=i.current;p&&(p.scrollTo({top:p.scrollHeight,behavior:g}),o(!0),c.current=n)},[n]),d=O.useCallback(()=>{const g=i.current;if(!g)return;const p=i_(g);o(p),p&&(c.current=n)},[n]),m=!r&&n>c.current;return{scrollRef:i,isPinned:r,hasUnseenBelow:m,scrollToEnd:f,handleScroll:d}}function LS({rows:n=8}){return A.jsx("div",{className:"flex flex-col gap-1 p-3","aria-busy":"true","aria-label":"Loading logs",children:Array.from({length:n},(i,r)=>A.jsxs("div",{className:"flex gap-3 py-1",children:[A.jsx(_o,{className:"h-4 w-16 shrink-0"}),A.jsx(_o,{className:"h-4 w-12 shrink-0"}),A.jsx(_o,{className:"h-4 w-24 shrink-0"}),A.jsx(_o,{className:"h-4 min-w-0 flex-1"})]},r))})}function s_({entries:n,isLoading:i,error:r,hasChatroom:o,selectedEntry:c,onSelectEntry:f}){const{scrollRef:d,isPinned:m,hasUnseenBelow:g,scrollToEnd:p,handleScroll:y}=US(n.length);return O.useEffect(()=>{m&&!i&&!r&&n.length>0&&p()},[n.length,m,i,r,p]),i?A.jsx("div",{className:"min-h-[400px] flex-1 border border-chatroom-border bg-chatroom-bg-secondary",children:A.jsx(LS,{})}):r?A.jsx("div",{className:"flex min-h-[400px] flex-1 items-center border border-chatroom-border bg-chatroom-bg-secondary p-4 text-chatroom-status-error",children:r}):!o||n.length===0?A.jsx($2,{hasChatroom:o}):A.jsxs("div",{className:"relative min-h-[400px] flex-1",children:[A.jsx("div",{ref:d,onScroll:y,className:"h-full overflow-auto border border-chatroom-border bg-chatroom-bg-secondary",children:n.map(v=>A.jsx(n_,{entry:v,selected:(c==null?void 0:c.id)===v.id,onSelect:f},v.id))}),!m&&g&&A.jsxs("button",{type:"button",onClick:()=>p(),className:"absolute bottom-3 right-3 inline-flex items-center gap-1 rounded-md bg-chatroom-accent px-2 py-1 text-xs text-chatroom-text-on-accent shadow",children:[A.jsx(Jc,{className:"size-3"}),"Jump to new"]})]})}function BS({title:n="Session logs",actions:i}){return A.jsxs("div",{className:"flex items-center justify-between gap-4",children:[A.jsx("h2",{className:"text-lg font-medium tracking-tight",children:n}),i]})}function HS(){return Hv({queryKey:["daemon","chatrooms"],queryFn:async()=>{const n=await CR();if(!n.ok)throw new Error(n.error.message);return n.data.chatrooms},staleTime:6e4})}function r_(n){const i=n.chatroomId,[r,o]=O.useState([]),[c,f]=O.useState(!1),[d,m]=O.useState(null);return O.useEffect(()=>{if(!i)return;let g=!0,p;return(async()=>{try{const y=Ic(n),v=await AR({chatroomId:i,fromTimestamp:y.fromMs,toTimestamp:y.toMs,limit:500});if(!v.ok)throw new Error(v.error.message);g&&(o(v.data.entries),p=_R(S=>{var w;const E=(w=S.payload)==null?void 0:w.chatroomId,x=Ic(n);S.timestamp<x.fromMs||S.timestamp>x.toMs||typeof E!="string"||E!==i||o(_=>_.some(D=>D.id===S.id)?_:[..._,S])}))}catch(y){g&&m(y instanceof Error?y.message:"Failed to load event stream")}finally{g&&f(!1)}})(),()=>{g=!1,p==null||p()}},[i,n]),{entries:i?r:[],isLoading:i?c:!1,error:i?d:null}}const a_=n=>n&&["1h","3h","1d","custom"].includes(n)?n:void 0;function dv(n){const i=new URLSearchParams(n.startsWith("?")?n.slice(1):n),r=a_(i.get("timeRange")),o=i.get("from"),c=i.get("to"),f=Number(o),d=Number(c),m=i.get("chatroomId");return{...m?{chatroomId:m}:{},...r?{timeRange:r}:{},...Number.isFinite(f)&&o?{fromMs:f}:{},...Number.isFinite(d)&&c?{toMs:d}:{}}}function o_(n){const i=new URLSearchParams(window.location.search);n.chatroomId?i.set("chatroomId",n.chatroomId):i.delete("chatroomId");const r=n.timeRange??Wh;i.set("timeRange",r),r==="custom"&&n.fromMs!==void 0&&n.toMs!==void 0?(i.set("from",String(n.fromMs)),i.set("to",String(n.toMs))):(i.delete("from"),i.delete("to"));const o=i.toString();window.history.replaceState(null,"",`${window.location.pathname}${o?`?${o}`:""}`)}function l_(){const[n,i]=O.useState(()=>dv(window.location.search)),r=O.useCallback(o=>{i(o),o_(o)},[]);return O.useEffect(()=>{const o=()=>i(dv(window.location.search));return window.addEventListener("popstate",o),()=>window.removeEventListener("popstate",o)},[]),{filters:n,setFilters:r}}function c_(){const{filters:n,setFilters:i}=l_(),r=HS(),{entries:o,isLoading:c,error:f}=r_(n),[d,m]=O.useState(null);return O.useEffect(()=>{m(null)},[n.chatroomId,n.timeRange,n.fromMs,n.toMs]),A.jsxs("section",{className:"flex min-h-0 flex-1 flex-col gap-3 p-6",children:[A.jsx(BS,{title:"Event stream",actions:A.jsx(W2,{chatrooms:r.data??[],chatroomsLoading:r.isLoading,chatroomsError:r.isError,values:n,onChange:i,disabled:c})}),A.jsxs("div",{className:"flex min-h-0 flex-1 gap-0",children:[A.jsx("div",{className:"flex min-w-0 flex-1 flex-col",children:A.jsx(s_,{entries:o,isLoading:c,error:f,hasChatroom:!!n.chatroomId,selectedEntry:d,onSelectEntry:m},[n.chatroomId,n.timeRange,n.fromMs,n.toMs].join(":"))}),d&&A.jsx(WR,{entry:d,onClose:()=>m(null)})]})]})}function $h(n){var r;const i=(r=n.metadata)==null?void 0:r.harness;return typeof i=="string"?i:n.source.startsWith("harness:")?n.source.slice(8):void 0}function em(n){var r;const i=(r=n.metadata)==null?void 0:r.chatroomId;return typeof i=="string"?i:void 0}function qS(n){var r;const i=(r=n.metadata)==null?void 0:r.role;return typeof i=="string"?i:void 0}function YS({line:n,chatroomName:i}){const r=em(n),o=qS(n),c=$h(n);return!r&&!o&&!c?null:A.jsxs("div",{className:"flex shrink-0 flex-wrap gap-1",children:[r&&A.jsx(sa,{variant:"outline",className:"text-chatroom-text-secondary",children:i??r}),o&&A.jsx(sa,{variant:"outline",className:"text-chatroom-status-info",children:o}),c&&A.jsx(sa,{variant:"outline",className:"text-chatroom-text-secondary",children:c})]})}const u_={debug:"text-chatroom-text-muted border-chatroom-border",info:"text-chatroom-status-info border-chatroom-status-info/40",warn:"text-chatroom-status-warning border-chatroom-status-warning/40",error:"text-chatroom-status-error border-chatroom-status-error/40"};function VS({level:n}){return A.jsx(sa,{variant:"outline",className:un("font-mono uppercase",u_[n]),children:n})}function f_({line:n,chatroomName:i,onClose:r}){return A.jsxs("aside",{className:"flex w-96 max-w-[40%] shrink-0 flex-col border-l border-chatroom-border bg-chatroom-bg-primary",role:"dialog","aria-modal":"true","aria-label":"Log detail",children:[A.jsxs("div",{className:"flex items-center justify-between border-b border-chatroom-border px-4 py-3",children:[A.jsx("h3",{className:"text-sm font-medium",children:"Log detail"}),A.jsx(D0,{variant:"ghost",size:"sm",onClick:r,"aria-label":"Close detail panel",children:A.jsx(h0,{className:"size-4"})})]}),A.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-3 overflow-auto p-4 text-xs",children:[A.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[A.jsx(VS,{level:n.level}),A.jsx("span",{className:"text-chatroom-text-muted",children:new Date(n.timestamp).toISOString()})]}),A.jsx(YS,{line:n,chatroomName:i}),A.jsxs("div",{className:"text-chatroom-text-muted",children:["Source: ",A.jsx("span",{className:"text-chatroom-text-primary",children:n.source}),n.stream&&A.jsxs(A.Fragment,{children:[" · Stream: ",n.stream]}),n.id!=null&&A.jsxs(A.Fragment,{children:[" · ID: ",n.id]})]}),A.jsx("pre",{className:"whitespace-pre-wrap font-mono text-xs",children:n.message}),n.metadata&&Object.keys(n.metadata).length>0&&A.jsxs("div",{children:[A.jsx("p",{className:"mb-1 text-chatroom-text-muted",children:"Metadata"}),A.jsx("pre",{className:"whitespace-pre-wrap border border-chatroom-border bg-chatroom-bg-secondary p-2 font-mono text-[11px]",children:JSON.stringify(n.metadata,null,2)})]})]})]})}function hv({label:n,options:i,value:r,onChange:o,disabled:c,allLabel:f="All"}){return A.jsxs("label",{className:"flex items-center gap-2 text-xs",children:[A.jsx("span",{className:"text-chatroom-text-muted",children:n}),A.jsx(NS,{options:i.map(d=>({value:d,label:d})),value:r,onChange:o,disabled:c,placeholder:f,allLabel:f,searchPlaceholder:`Search ${n.toLowerCase()}…`,ariaLabel:n})]})}function d_({chatrooms:n,chatroomsLoading:i,chatroomsError:r,roles:o,harnesses:c,values:f,onChange:d,disabled:m}){return A.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[A.jsx(jS,{value:{timeRange:f.timeRange,fromMs:f.fromMs,toMs:f.toMs},onChange:g=>d({...f,...g}),disabled:m}),A.jsx(DS,{chatrooms:n,value:f.chatroomId,onChange:g=>d({...f,chatroomId:g}),disabled:m,isLoading:i,isError:r}),A.jsx(hv,{label:"Role",options:o,value:f.role,onChange:g=>d({...f,role:g}),disabled:m,allLabel:"All roles"}),A.jsx(hv,{label:"Harness",options:c,value:f.harness,onChange:g=>d({...f,harness:g}),disabled:m,allLabel:"All harnesses"})]})}function h_({hasChatroom:n}){return A.jsxs("div",{className:"flex min-h-[400px] flex-1 flex-col items-center justify-center gap-2 border border-chatroom-border bg-chatroom-bg-secondary p-6 text-center",role:"status",children:[A.jsx(Ew,{className:"size-8 text-chatroom-text-muted","aria-hidden":!0}),A.jsx("p",{className:"text-sm text-chatroom-text-secondary",children:n?"No logs in this time range":"Select a chatroom to view logs"}),n&&A.jsx("p",{className:"text-xs text-chatroom-text-muted",children:"Start an agent session to see output here"})]})}function m_({message:n}){return A.jsxs("div",{className:"flex min-h-[400px] flex-1 flex-col items-center justify-center gap-2 border border-chatroom-status-error/30 bg-chatroom-bg-secondary p-6 text-center",role:"alert",children:[A.jsx(Sw,{className:"size-8 text-chatroom-status-error","aria-hidden":!0}),A.jsx("p",{className:"text-sm text-chatroom-status-error",children:"Failed to load logs"}),A.jsx("p",{className:"text-xs text-chatroom-text-muted",children:n})]})}function p_({line:n,chatroomName:i,selected:r,onSelect:o}){const c=new Date(n.timestamp).toISOString().slice(11,19),d=!$h(n)||!n.source.startsWith("harness:"),m=()=>o==null?void 0:o(n);return A.jsxs("div",{className:un("flex gap-3 rounded-none px-1 py-1.5 -mx-1",o&&"cursor-pointer hover:bg-chatroom-bg-hover",r&&"bg-chatroom-bg-hover"),role:o?"button":void 0,tabIndex:o?0:void 0,onClick:o?m:void 0,onKeyDown:o?g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),m())}:void 0,children:[A.jsx("span",{className:"shrink-0 text-chatroom-text-muted",children:c}),A.jsx(VS,{level:n.level}),A.jsx(YS,{line:n,chatroomName:i}),d&&A.jsx("span",{className:"shrink-0 text-chatroom-text-muted",children:n.source}),A.jsx("span",{className:"min-w-0 flex-1 line-clamp-2",children:n.message})]})}function g_({lines:n,isLoading:i,error:r,hasChatroom:o,selectedLine:c,onSelectLine:f,getChatroomName:d}){const{scrollRef:m,isPinned:g,hasUnseenBelow:p,scrollToEnd:y,handleScroll:v}=US(n.length);if(O.useEffect(()=>{g&&!i&&!r&&n.length>0&&y()},[n.length,g,i,r,y]),i)return A.jsx("div",{className:"min-h-[400px] flex-1 border border-chatroom-border bg-chatroom-bg-secondary",children:A.jsx(LS,{})});if(r)return A.jsx(m_,{message:r});if(n.length===0)return A.jsx(h_,{hasChatroom:o});const S=c?c.id??`${c.timestamp}-${c.message.slice(0,32)}`:null;return A.jsxs("div",{className:"relative min-h-[400px] flex-1",children:[A.jsx("div",{ref:m,onScroll:v,className:"h-full overflow-auto border border-chatroom-border bg-chatroom-bg-secondary p-3 font-mono text-xs",children:n.map((E,x)=>{var C;const w=E.id??`${E.timestamp}-${x}`,_=E.id??`${E.timestamp}-${E.message.slice(0,32)}`,D=(C=E.metadata)==null?void 0:C.chatroomId;return A.jsx(p_,{line:E,chatroomName:typeof D=="string"?d==null?void 0:d(D):void 0,selected:S===_,onSelect:f},w)})}),!g&&p&&A.jsxs("button",{type:"button",onClick:()=>y(),className:"absolute bottom-3 right-3 inline-flex items-center gap-1 rounded-md bg-chatroom-accent px-2 py-1 text-xs text-chatroom-text-on-accent shadow",children:[A.jsx(Jc,{className:"size-3"}),"Jump to new"]})]})}function mv(n,i){const r=Ic(i);return n.timestamp>=r.fromMs&&n.timestamp<=r.toMs&&em(n)===i.chatroomId&&(!i.role||qS(n)===i.role)&&(!i.harness||$h(n)===i.harness)}function y_(n){const i=n.chatroomId,[r,o]=O.useState([]),[c,f]=O.useState({roles:[],harnesses:[]}),[d,m]=O.useState(!1),[g,p]=O.useState(null);return O.useEffect(()=>{if(!i)return;let y=!0,v;return(async()=>{try{const S=await OR(i);if(!y)return;S.ok&&f(S.data);const E=Ic(n),x=await RR({chatroomId:i,role:n.role,harness:n.harness,fromTimestamp:E.fromMs,toTimestamp:E.toMs,limit:500});if(!x.ok)throw new Error(x.error.message);if(!y)return;o(x.data.entries.filter(w=>mv(w,n))),v=MR(w=>{mv(w,n)&&o(_=>[..._,w])})}catch(S){y&&p(S instanceof Error?S.message:"Failed to load logs")}finally{y&&m(!1)}})(),()=>{y=!1,v==null||v()}},[i,n]),{lines:i?r:[],dimensions:i?c:{roles:[],harnesses:[]},isLoading:i?d:!1,error:i?g:null}}function b_(n={}){return y_(n)}const v_=n=>n&&["1h","3h","1d","custom"].includes(n)?n:void 0;function pv(n){const i=new URLSearchParams(n.startsWith("?")?n.slice(1):n),r=v_(i.get("timeRange")),o=Number(i.get("from")),c=Number(i.get("to")),f=i.get("chatroomId"),d=i.get("role"),m=i.get("harness");return{...f?{chatroomId:f}:{},...d?{role:d}:{},...m?{harness:m}:{},...r?{timeRange:r}:{},...Number.isFinite(o)&&i.get("from")?{fromMs:o}:{},...Number.isFinite(c)&&i.get("to")?{toMs:c}:{}}}function S_(n){const i=new URLSearchParams;n.chatroomId&&i.set("chatroomId",n.chatroomId),n.role&&i.set("role",n.role),n.harness&&i.set("harness",n.harness);const r=n.timeRange??Wh;return i.set("timeRange",r),r==="custom"&&n.fromMs!==void 0&&n.toMs!==void 0&&(i.set("from",String(n.fromMs)),i.set("to",String(n.toMs))),i.toString()}function x_(n){const i=S_(n);window.history.replaceState(null,"",`${window.location.pathname}${i?`?${i}`:""}`)}function E_(){const[n,i]=O.useState(()=>pv(window.location.search)),r=O.useCallback(o=>{i(o),x_(o)},[]);return O.useEffect(()=>{const o=()=>i(pv(window.location.search));return window.addEventListener("popstate",o),()=>window.removeEventListener("popstate",o)},[]),{filters:n,setFilters:r}}function T_(){const{filters:n,setFilters:i}=E_(),[r,o]=O.useState(null),c=HS(),f=O.useMemo(()=>c.data??[],[c.data]),d=O.useMemo(()=>new Map(f.map(E=>[E.id,E.displayName])),[f]),{lines:m,dimensions:g,isLoading:p,error:y}=b_(n),v=E=>d.get(E),S=r?v(em(r)??""):void 0;return A.jsxs("section",{className:"flex min-h-0 flex-1 flex-col gap-3 p-6",children:[A.jsx(BS,{actions:A.jsx(d_,{chatrooms:f,chatroomsLoading:c.isLoading,chatroomsError:c.isError,roles:g.roles,harnesses:g.harnesses,values:n,onChange:i,disabled:p})}),A.jsxs("div",{className:"flex min-h-0 flex-1 gap-0",children:[A.jsx("div",{className:"flex min-w-0 flex-1 flex-col",children:A.jsx(g_,{lines:m,isLoading:p,error:y,hasChatroom:!!n.chatroomId,selectedLine:r,onSelectLine:o,getChatroomName:v},n.chatroomId??n.timeRange)}),r&&A.jsx(f_,{line:r,chatroomName:S,onClose:()=>o(null)})]})]})}function w_(){var o,c;const{activeTab:n,setActiveTab:i}=Cw(),r=NR();return A.jsx(cw,{header:A.jsx(ww,{status:A.jsx(lw,{isLoading:r.isLoading,isError:r.isError,port:(o=r.data)==null?void 0:o.port,service:(c=r.data)==null?void 0:c.service})}),nav:A.jsxs(Rw,{children:[A.jsx(Eb,{active:n==="logs",onClick:()=>i("logs"),children:"Logs"}),A.jsx(Eb,{active:n==="event-stream",onClick:()=>i("event-stream"),children:"Event Stream"})]}),children:n==="logs"?A.jsx(T_,{}):A.jsx(c_,{})})}const R_=new k1({defaultOptions:{queries:{staleTime:3e4,refetchOnWindowFocus:!1}}}),gv=document.getElementById("root");gv&&J1.createRoot(gv).render(A.jsx(O.StrictMode,{children:A.jsx(l1,{client:R_,children:A.jsx(w_,{})})}));
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Chatroom Daemon</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-DhoKpKhF.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="/assets/index-CSkceQeY.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|