teodor-new-chat-ui 1.5.7 → 1.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +9 -9
- package/dist/index.umd.js +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -2416,18 +2416,18 @@ function Fn({
|
|
|
2416
2416
|
}
|
|
2417
2417
|
}, K = (N) => N.title || `Thread ${N.threadId.slice(0, 8)}`;
|
|
2418
2418
|
return /* @__PURE__ */ S("div", { className: `flex flex-col h-full ${e} ${a.container || ""}`, children: [
|
|
2419
|
-
t && /* @__PURE__ */ c("div", { className: a.header || "flex-shrink-0 p-4 border-b bg-
|
|
2419
|
+
t && /* @__PURE__ */ c("div", { className: a.header || "flex-shrink-0 p-4 border-b bg-slate-800 border-slate-700 text-slate-100", children: /* @__PURE__ */ S(ae, { onClick: F, disabled: B || C, className: a.createButton || "w-full !bg-slate-700 hover:!bg-slate-600 !text-slate-100 !border-slate-600", size: "sm", children: [
|
|
2420
2420
|
/* @__PURE__ */ c(Ei, { size: 16, className: "mr-2" }),
|
|
2421
2421
|
B ? "Creating..." : "New Conversation"
|
|
2422
2422
|
] }) }),
|
|
2423
|
-
/* @__PURE__ */ c($o, { className: `flex-1 ${a.threadList || ""}`, style: { maxHeight: o }, children: /* @__PURE__ */ c("div", { className: "p-2 space-y-1 pb-4", children: C ? /* @__PURE__ */ c("div", { className: "text-center py-8 text-slate-
|
|
2424
|
-
/* @__PURE__ */ c(Ti, { className: "w-8 h-8 mx-auto mb-2 opacity-40 text-slate-
|
|
2425
|
-
/* @__PURE__ */ c("p", { className: "text-sm text-slate-
|
|
2423
|
+
/* @__PURE__ */ c($o, { className: `flex-1 ${a.threadList || ""}`, style: { maxHeight: o }, children: /* @__PURE__ */ c("div", { className: "p-2 space-y-1 pb-4", children: C ? /* @__PURE__ */ c("div", { className: "text-center py-8 text-slate-400", children: "Loading…" }) : w.length === 0 ? /* @__PURE__ */ S("div", { className: "text-center py-8 text-slate-400", children: [
|
|
2424
|
+
/* @__PURE__ */ c(Ti, { className: "w-8 h-8 mx-auto mb-2 opacity-40 text-slate-500" }),
|
|
2425
|
+
/* @__PURE__ */ c("p", { className: "text-sm text-slate-500", children: "No conversations yet" })
|
|
2426
2426
|
] }) : w.slice().sort((N, V) => new Date(V.updatedAt || V.createdAt || "").getTime() - new Date(N.updatedAt || N.createdAt || "").getTime()).map((N) => /* @__PURE__ */ S(
|
|
2427
2427
|
"div",
|
|
2428
2428
|
{
|
|
2429
2429
|
onClick: () => U(N.threadId),
|
|
2430
|
-
className: `group relative p-3 rounded-lg cursor-pointer transition-colors border ${(s ?? b) === N.threadId ? `${a.activeThread || "bg-slate-
|
|
2430
|
+
className: `group relative p-3 rounded-lg cursor-pointer transition-colors border ${(s ?? b) === N.threadId ? `${a.activeThread || "bg-slate-600 border-slate-500"} ` : `${a.threadItem || "bg-slate-700 border-slate-600 hover:bg-slate-600"}`} ${a.threadItem || ""} text-slate-100`,
|
|
2431
2431
|
children: [
|
|
2432
2432
|
/* @__PURE__ */ S("div", { className: "flex items-center justify-between", children: [
|
|
2433
2433
|
/* @__PURE__ */ c("div", { className: "flex-1 min-w-0", children: P === N.threadId ? /* @__PURE__ */ S("div", { className: "flex items-center gap-2", onClick: (V) => V.stopPropagation(), children: [
|
|
@@ -2435,8 +2435,8 @@ function Fn({
|
|
|
2435
2435
|
/* @__PURE__ */ c(ae, { variant: "ghost", size: "sm", onClick: () => q(N.threadId), className: "h-6 w-6 p-0", children: /* @__PURE__ */ c(po, { size: 12 }) }),
|
|
2436
2436
|
/* @__PURE__ */ c(ae, { variant: "ghost", size: "sm", onClick: G, className: "h-6 w-6 p-0", children: /* @__PURE__ */ c(mt, { size: 12 }) })
|
|
2437
2437
|
] }) : /* @__PURE__ */ S(De, { children: [
|
|
2438
|
-
/* @__PURE__ */ c("div", { className: "font-medium text-sm truncate text-slate-
|
|
2439
|
-
/* @__PURE__ */ S("div", { className: "flex items-center gap-2 text-xs text-slate-
|
|
2438
|
+
/* @__PURE__ */ c("div", { className: "font-medium text-sm truncate text-slate-100", children: K(N) }),
|
|
2439
|
+
/* @__PURE__ */ S("div", { className: "flex items-center gap-2 text-xs text-slate-400 mt-1", children: [
|
|
2440
2440
|
/* @__PURE__ */ c(Ri, { size: 10 }),
|
|
2441
2441
|
/* @__PURE__ */ c("span", { children: le(N.updatedAt || N.createdAt) })
|
|
2442
2442
|
] })
|
|
@@ -2449,14 +2449,14 @@ function Fn({
|
|
|
2449
2449
|
variant: "ghost",
|
|
2450
2450
|
size: "sm",
|
|
2451
2451
|
onClick: (V) => z(N.threadId, V),
|
|
2452
|
-
className: "h-6 w-6 p-0 text-red-
|
|
2452
|
+
className: "h-6 w-6 p-0 text-red-400 hover:text-red-300 hover:bg-red-900/20",
|
|
2453
2453
|
title: "Delete thread",
|
|
2454
2454
|
children: /* @__PURE__ */ c(Ai, { size: 12 })
|
|
2455
2455
|
}
|
|
2456
2456
|
)
|
|
2457
2457
|
] })
|
|
2458
2458
|
] }),
|
|
2459
|
-
s === N.threadId && /* @__PURE__ */ c("div", { className: "absolute left-0 top-1/2 -translate-y-1/2 w-1 h-8 bg-blue-
|
|
2459
|
+
s === N.threadId && /* @__PURE__ */ c("div", { className: "absolute left-0 top-1/2 -translate-y-1/2 w-1 h-8 bg-blue-400 rounded-r" })
|
|
2460
2460
|
]
|
|
2461
2461
|
},
|
|
2462
2462
|
N.threadId
|
package/dist/index.umd.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
`).replace(/<ul>/gi,"").replace(/<\/ul>/gi,`
|
|
11
11
|
`).replace(/<ol>/gi,"").replace(/<\/ol>/gi,`
|
|
12
12
|
`).replace(/<li>(.*?)<\/li>/gi,`- $1
|
|
13
|
-
`).trim():r.replace(/</g,"<").replace(/>/g,">").trim()}function qi(e,t=qe){if(!e||typeof e!="string")throw new Error("Invalid content: must be a non-empty string");if(e.length>t)throw new Error(`Message exceeds maximum length of ${t} characters`);return e}function Ji(e){let t;return typeof e=="string"?t=e:typeof e=="object"&&e!==null?t=JSON.stringify(e):t=String(e),qi(t),Xi(t)}function ut({className:e="",placeholder:t="Type your message...",autoFocus:r=!0,maxHeight:n="600px",streamingDebounceMs:o=40,enableFileUpload:a=!1,enableMessageEditing:i=!0,customStyles:c={},onMessageSent:d,onError:u}){const{currentThreadId:f,messages:h,isStreaming:g,streamingAssistantId:m,error:y,send:p,stop:b,lastCheckpointId:v,listCheckpoints:w,navigateToCheckpoint:x,returnToLatest:S}=mr(),[E,I]=N.useState(""),[T,k]=N.useState(null),[D,O]=N.useState(null),[$,z]=N.useState([]),[G,L]=N.useState(!1),[j,B]=N.useState([]),[W,M]=N.useState(null),Z=N.useRef(null),q=N.useRef(null),ce=N.useRef(null),[de,Y]=N.useState("desktop");N.useEffect(()=>{const P=()=>{const U=window.innerWidth;Y(U<640?"phone":U<1024?"tablet":"desktop")};return P(),window.addEventListener("resize",P),()=>window.removeEventListener("resize",P)},[]),N.useEffect(()=>{var P;(P=Z.current)==null||P.scrollIntoView({behavior:"smooth"})},[h]),N.useEffect(()=>{var P;r&&((P=q.current)==null||P.focus())},[r]),N.useEffect(()=>{y&&!G&&(u==null||u(y))},[y,G,u]),N.useEffect(()=>{let P=!0;if(!f){B([]),M(null);return}return w(f).then(U=>{var ae,pe;if(!P)return;B(U.checkpoints||[]);const R=((pe=(ae=U.checkpoints)==null?void 0:ae.slice().sort((he,mn)=>new Date(mn.createdAt).getTime()-new Date(he.createdAt).getTime())[0])==null?void 0:pe.checkpointId)||null;M(he=>he??R)}).catch(()=>{}),()=>{P=!1}},[f,w]),N.useEffect(()=>{v&&M(v)},[v]);const C=P=>{if(P.length>qe)return`Message too long (${P.length}/${qe} characters)`;try{return Ji(P),null}catch(U){return(U==null?void 0:U.message)||"Invalid message"}},K=P=>{const U=P.content||[],R=U.filter(ae=>ae.type==="text").map(ae=>ae.text).join("");if(R)return R;try{return JSON.stringify(U,null,2)}catch{return String(U)}},ie=P=>{var pe;if(!j.length)return[];const U=(((pe=h[P])==null?void 0:pe.role)??"user")==="user",R=U?P+2:P+1;return j.filter(he=>(he.messagesLen??-1)>=(U?R:0)).filter(he=>U?(he.messagesLen??0)>=R:(he.messagesLen??0)===R).map(he=>({checkpoint_id:he.checkpointId,checkpoint_ns:he.checkpointNs,message_count:he.messagesLen??0,last_message_preview:he.preview??void 0,ts:new Date(he.createdAt).getTime(),isCurrent:he.checkpointId===W})).sort((he,mn)=>(he.ts||0)-(mn.ts||0))},F=P=>{if(P===void 0)return{canGoBack:!1,canGoForward:!1,currentIndex:0,totalBranches:0};const U=ie(P);if(U.length<=1)return{canGoBack:!1,canGoForward:!1,currentIndex:0,totalBranches:U.length};const R=Math.max(0,U.findIndex(ae=>ae.isCurrent));return{canGoBack:R>0,canGoForward:R<U.length-1,currentIndex:R,totalBranches:U.length}},J=async()=>{const P=E.trim();if(!P&&$.length===0)return;const U=C(P);if(U){O(U);return}try{const R=window.__editingCheckpointId||W||void 0;await p(P,{checkpointId:R,payloadExtras:T?{edit:!0,originalMessageId:T}:void 0,attachments:$}),d==null||d(P),I(""),O(null),z([]),delete window.__editingCheckpointId,k(null),q.current&&(q.current.style.height="auto")}catch(R){const ae=(R==null?void 0:R.message)||"Failed to send message";O(ae),u==null||u(ae)}},oe=(P,U)=>{i&&(k(P),I(U),O(null),setTimeout(()=>{q.current&&(q.current.focus(),q.current.style.height="auto",q.current.style.height=q.current.scrollHeight+"px")},0))},Q=async(P,U)=>{const R=h.find(pe=>pe.id===P);if(!R){O("Message not found");return}const ae=K(R);k(P),I(ae),window.__editingCheckpointId=U,setTimeout(()=>{var pe;return(pe=q.current)==null?void 0:pe.focus()},0)},_=()=>{k(null),I(""),O(null),delete window.__editingCheckpointId,q.current&&(q.current.style.height="auto")},X=P=>{P.key==="Enter"&&!P.shiftKey?(P.preventDefault(),J()):P.key==="Escape"&&T&&(P.preventDefault(),_())},H=P=>{const U=Array.from(P.target.files||[]);z(R=>[...R,...U])},le=P=>z(U=>U.filter((R,ae)=>P!==ae)),fe=async P=>{f&&(await x(P),M(P))},me=async()=>{await S(),M(null)};return s.jsxs("div",{className:`flex flex-col h-full ${e} ${c.container||""}`,children:[!!y&&!G&&s.jsxs("div",{className:"bg-red-50 border border-red-200 text-red-800 px-4 py-2 text-sm flex items-center justify-between",children:[s.jsx("span",{children:y}),s.jsx(se,{variant:"ghost",size:"sm",onClick:()=>L(!0),className:"text-red-800 hover:bg-red-100",children:s.jsx(V.X,{size:16})})]}),f&&j.length>0&&s.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 border-b bg-background/50 text-xs",children:[s.jsx(V.GitBranch,{className:"h-4 w-4 opacity-70"}),s.jsx("span",{className:"opacity-70",children:"Checkpoint:"}),s.jsxs("select",{className:"border rounded px-2 py-1 text-xs",value:W??"",onChange:P=>{const U=P.target.value||null;U?fe(U):me()},children:[s.jsx("option",{value:"",children:"Latest"}),j.slice().sort((P,U)=>new Date(U.createdAt).getTime()-new Date(P.createdAt).getTime()).map(P=>s.jsxs("option",{value:P.checkpointId,children:[new Date(P.createdAt).toLocaleString()," ",P.preview?`— ${P.preview.slice(0,30)}`:""]},P.checkpointId))]})]}),s.jsxs("div",{className:`flex-1 overflow-y-auto p-4 space-y-4 ${c.messagesArea||""}`,style:{maxHeight:n},children:[h.length===0?s.jsx("div",{className:"flex items-center justify-center py-8 text-muted-foreground",children:"No messages yet. Start a conversation!"}):h.map((P,U)=>s.jsx(_n,{message:P,messageIndex:U,isStreamingMessage:g&&m===P.id,streamingDebounceMs:o,isEditing:T===P.id,showActions:i,showTimestamp:!1,showAgentName:!0,layoutSize:de,truncateToolMessages:!1,toolMessagePreviewLength:200,checkpointBranches:ie(U),currentCheckpointId:W??void 0,temporalNavigation:F(U),onSwitchToCheckpoint:fe,onReturnToMainThread:me,onNavigateToPreviousBranch:()=>{const R=ie(U),ae=Math.max(0,R.findIndex(pe=>pe.isCurrent));ae>0&&fe(R[ae-1].checkpoint_id)},onNavigateToNextBranch:()=>{const R=ie(U),ae=Math.max(0,R.findIndex(pe=>pe.isCurrent));ae>=0&&ae<R.length-1&&fe(R[ae+1].checkpoint_id)},onEdit:(R,ae)=>oe(R,ae),onEditFromCheckpoint:Q,onRegenerate:()=>{const R=[...h].reverse().find(pe=>pe.role==="user"),ae=R?K(R):"";ae&&p(ae,{checkpointId:W??void 0})},onCancelEdit:_},P.id||U)),s.jsx("div",{ref:Z})]}),s.jsxs("div",{className:`flex-shrink-0 border-t p-4 ${c.inputArea||""}`,children:[T&&s.jsx("div",{className:"mb-3 p-3 bg-blue-50 border border-blue-200 rounded-lg",children:s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(V.Edit3,{size:16,className:"text-blue-600"}),s.jsx("span",{className:"text-sm font-medium text-blue-800",children:"Editing message"})]}),s.jsx(se,{variant:"ghost",size:"sm",onClick:_,className:"text-blue-600 hover:bg-blue-100",children:s.jsx(V.X,{size:16})})]})}),a&&s.jsxs("div",{className:"mb-3",children:[s.jsx("input",{ref:ce,type:"file",multiple:!0,onChange:P=>H(P),className:"hidden"}),$.length>0&&s.jsx("div",{className:"mb-3 flex flex-wrap gap-2",children:$.map((P,U)=>s.jsxs("div",{className:"flex items-center gap-2 bg-gray-100 rounded-lg px-3 py-2 text-sm",children:[s.jsx(V.Paperclip,{size:14}),s.jsx("span",{className:"truncate max-w-[150px]",children:P.name}),s.jsx(se,{variant:"ghost",size:"sm",onClick:()=>le(U),className:"h-4 w-4 p-0 text-gray-500 hover:text-red-500",children:s.jsx(V.X,{size:12})})]},U))})]}),D&&s.jsx("div",{className:"mb-3 text-sm text-red-600 bg-red-50 border border-red-200 rounded px-3 py-2",children:D}),s.jsxs("div",{className:"flex items-end gap-2",children:[a&&s.jsx(se,{type:"button",onClick:()=>{var P;return(P=ce.current)==null?void 0:P.click()},size:"icon",variant:"outline",disabled:g,title:"Attach files",children:s.jsx(V.Paperclip,{size:16})}),s.jsx("div",{className:"flex-1",children:s.jsx(En,{ref:q,value:E,onChange:P=>{I(P.target.value),O(null),q.current&&(q.current.style.height="auto",q.current.style.height=q.current.scrollHeight+"px")},onKeyDown:X,placeholder:T?"Edit your message...":t,className:`resize-none min-h-[44px] max-h-[20rem] ${T?"border-blue-400 bg-blue-50":""} ${D?"border-red-400":""}`,disabled:!1,maxLength:qe,rows:1})}),s.jsx("div",{children:g?s.jsx(se,{type:"button",onClick:b,size:"icon",variant:"outline",className:"shrink-0",title:"Stop generating",children:s.jsx(V.Square,{size:16})}):s.jsx(se,{type:"button",onClick:J,size:"icon",disabled:!E.trim()&&$.length===0,className:`shrink-0 ${c.sendButton||""}`,title:T?"Save changes":"Send message",children:s.jsx(V.Send,{size:16})})})]}),E.length>qe*.8&&s.jsxs("div",{className:"mt-2 text-xs text-gray-500 text-right",children:[E.length,"/",qe]})]})]})}const ft=l.forwardRef(({className:e,type:t,...r},n)=>s.jsx("input",{type:t,className:A("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...r}));ft.displayName="Input";function ge(e){const t=l.useRef(e);return l.useEffect(()=>{t.current=e}),l.useMemo(()=>(...r)=>{var n;return(n=t.current)==null?void 0:n.call(t,...r)},[])}var Zi=l.createContext(void 0);function Dn(e){const t=l.useContext(Zi);return e||t||"ltr"}function yr(e,[t,r]){return Math.min(r,Math.max(t,e))}function Qi(e,t){return l.useReducer((r,n)=>t[r][n]??r,e)}var xr="ScrollArea",[Ln,Wf]=Le(xr),[Ri,ye]=Ln(xr),$n=l.forwardRef((e,t)=>{const{__scopeScrollArea:r,type:n="hover",dir:o,scrollHideDelay:a=600,...i}=e,[c,d]=l.useState(null),[u,f]=l.useState(null),[h,g]=l.useState(null),[m,y]=l.useState(null),[p,b]=l.useState(null),[v,w]=l.useState(0),[x,S]=l.useState(0),[E,I]=l.useState(!1),[T,k]=l.useState(!1),D=ne(t,$=>d($)),O=Dn(o);return s.jsx(Ri,{scope:r,type:n,dir:O,scrollHideDelay:a,scrollArea:c,viewport:u,onViewportChange:f,content:h,onContentChange:g,scrollbarX:m,onScrollbarXChange:y,scrollbarXEnabled:E,onScrollbarXEnabledChange:I,scrollbarY:p,onScrollbarYChange:b,scrollbarYEnabled:T,onScrollbarYEnabledChange:k,onCornerWidthChange:w,onCornerHeightChange:S,children:s.jsx(te.div,{dir:O,...i,ref:D,style:{position:"relative","--radix-scroll-area-corner-width":v+"px","--radix-scroll-area-corner-height":x+"px",...e.style}})})});$n.displayName=xr;var Fn="ScrollAreaViewport",Bn=l.forwardRef((e,t)=>{const{__scopeScrollArea:r,children:n,nonce:o,...a}=e,i=ye(Fn,r),c=l.useRef(null),d=ne(t,c,i.onViewportChange);return s.jsxs(s.Fragment,{children:[s.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),s.jsx(te.div,{"data-radix-scroll-area-viewport":"",...a,ref:d,style:{overflowX:i.scrollbarXEnabled?"scroll":"hidden",overflowY:i.scrollbarYEnabled?"scroll":"hidden",...e.style},children:s.jsx("div",{ref:i.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});Bn.displayName=Fn;var Ae="ScrollAreaScrollbar",Sr=l.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=ye(Ae,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:i}=o,c=e.orientation==="horizontal";return l.useEffect(()=>(c?a(!0):i(!0),()=>{c?a(!1):i(!1)}),[c,a,i]),o.type==="hover"?s.jsx(ec,{...n,ref:t,forceMount:r}):o.type==="scroll"?s.jsx(tc,{...n,ref:t,forceMount:r}):o.type==="auto"?s.jsx(zn,{...n,ref:t,forceMount:r}):o.type==="always"?s.jsx(Cr,{...n,ref:t}):null});Sr.displayName=Ae;var ec=l.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=ye(Ae,e.__scopeScrollArea),[a,i]=l.useState(!1);return l.useEffect(()=>{const c=o.scrollArea;let d=0;if(c){const u=()=>{window.clearTimeout(d),i(!0)},f=()=>{d=window.setTimeout(()=>i(!1),o.scrollHideDelay)};return c.addEventListener("pointerenter",u),c.addEventListener("pointerleave",f),()=>{window.clearTimeout(d),c.removeEventListener("pointerenter",u),c.removeEventListener("pointerleave",f)}}},[o.scrollArea,o.scrollHideDelay]),s.jsx(Te,{present:r||a,children:s.jsx(zn,{"data-state":a?"visible":"hidden",...n,ref:t})})}),tc=l.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=ye(Ae,e.__scopeScrollArea),a=e.orientation==="horizontal",i=Pt(()=>d("SCROLL_END"),100),[c,d]=Qi("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return l.useEffect(()=>{if(c==="idle"){const u=window.setTimeout(()=>d("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(u)}},[c,o.scrollHideDelay,d]),l.useEffect(()=>{const u=o.viewport,f=a?"scrollLeft":"scrollTop";if(u){let h=u[f];const g=()=>{const m=u[f];h!==m&&(d("SCROLL"),i()),h=m};return u.addEventListener("scroll",g),()=>u.removeEventListener("scroll",g)}},[o.viewport,a,d,i]),s.jsx(Te,{present:r||c!=="hidden",children:s.jsx(Cr,{"data-state":c==="hidden"?"hidden":"visible",...n,ref:t,onPointerEnter:ee(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:ee(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),zn=l.forwardRef((e,t)=>{const r=ye(Ae,e.__scopeScrollArea),{forceMount:n,...o}=e,[a,i]=l.useState(!1),c=e.orientation==="horizontal",d=Pt(()=>{if(r.viewport){const u=r.viewport.offsetWidth<r.viewport.scrollWidth,f=r.viewport.offsetHeight<r.viewport.scrollHeight;i(c?u:f)}},10);return Je(r.viewport,d),Je(r.content,d),s.jsx(Te,{present:n||a,children:s.jsx(Cr,{"data-state":a?"visible":"hidden",...o,ref:t})})}),Cr=l.forwardRef((e,t)=>{const{orientation:r="vertical",...n}=e,o=ye(Ae,e.__scopeScrollArea),a=l.useRef(null),i=l.useRef(0),[c,d]=l.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=jn(c.viewport,c.content),f={...n,sizes:c,onSizesChange:d,hasThumb:u>0&&u<1,onThumbChange:g=>a.current=g,onThumbPointerUp:()=>i.current=0,onThumbPointerDown:g=>i.current=g};function h(g,m){return ic(g,i.current,c,m)}return r==="horizontal"?s.jsx(rc,{...f,ref:t,onThumbPositionChange:()=>{if(o.viewport&&a.current){const g=o.viewport.scrollLeft,m=Kn(g,c,o.dir);a.current.style.transform=`translate3d(${m}px, 0, 0)`}},onWheelScroll:g=>{o.viewport&&(o.viewport.scrollLeft=g)},onDragScroll:g=>{o.viewport&&(o.viewport.scrollLeft=h(g,o.dir))}}):r==="vertical"?s.jsx(nc,{...f,ref:t,onThumbPositionChange:()=>{if(o.viewport&&a.current){const g=o.viewport.scrollTop,m=Kn(g,c);a.current.style.transform=`translate3d(0, ${m}px, 0)`}},onWheelScroll:g=>{o.viewport&&(o.viewport.scrollTop=g)},onDragScroll:g=>{o.viewport&&(o.viewport.scrollTop=h(g))}}):null}),rc=l.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...o}=e,a=ye(Ae,e.__scopeScrollArea),[i,c]=l.useState(),d=l.useRef(null),u=ne(t,d,a.onScrollbarXChange);return l.useEffect(()=>{d.current&&c(getComputedStyle(d.current))},[d]),s.jsx(Hn,{"data-orientation":"horizontal",...o,ref:u,sizes:r,style:{bottom:0,left:a.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:a.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":At(r)+"px",...e.style},onThumbPointerDown:f=>e.onThumbPointerDown(f.x),onDragScroll:f=>e.onDragScroll(f.x),onWheelScroll:(f,h)=>{if(a.viewport){const g=a.viewport.scrollLeft+f.deltaX;e.onWheelScroll(g),Yn(g,h)&&f.preventDefault()}},onResize:()=>{d.current&&a.viewport&&i&&n({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:Tt(i.paddingLeft),paddingEnd:Tt(i.paddingRight)}})}})}),nc=l.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...o}=e,a=ye(Ae,e.__scopeScrollArea),[i,c]=l.useState(),d=l.useRef(null),u=ne(t,d,a.onScrollbarYChange);return l.useEffect(()=>{d.current&&c(getComputedStyle(d.current))},[d]),s.jsx(Hn,{"data-orientation":"vertical",...o,ref:u,sizes:r,style:{top:0,right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":At(r)+"px",...e.style},onThumbPointerDown:f=>e.onThumbPointerDown(f.y),onDragScroll:f=>e.onDragScroll(f.y),onWheelScroll:(f,h)=>{if(a.viewport){const g=a.viewport.scrollTop+f.deltaY;e.onWheelScroll(g),Yn(g,h)&&f.preventDefault()}},onResize:()=>{d.current&&a.viewport&&i&&n({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:Tt(i.paddingTop),paddingEnd:Tt(i.paddingBottom)}})}})}),[oc,Wn]=Ln(Ae),Hn=l.forwardRef((e,t)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:o,onThumbChange:a,onThumbPointerUp:i,onThumbPointerDown:c,onThumbPositionChange:d,onDragScroll:u,onWheelScroll:f,onResize:h,...g}=e,m=ye(Ae,r),[y,p]=l.useState(null),b=ne(t,D=>p(D)),v=l.useRef(null),w=l.useRef(""),x=m.viewport,S=n.content-n.viewport,E=ge(f),I=ge(d),T=Pt(h,10);function k(D){if(v.current){const O=D.clientX-v.current.left,$=D.clientY-v.current.top;u({x:O,y:$})}}return l.useEffect(()=>{const D=O=>{const $=O.target;(y==null?void 0:y.contains($))&&E(O,S)};return document.addEventListener("wheel",D,{passive:!1}),()=>document.removeEventListener("wheel",D,{passive:!1})},[x,y,S,E]),l.useEffect(I,[n,I]),Je(y,T),Je(m.content,T),s.jsx(oc,{scope:r,scrollbar:y,hasThumb:o,onThumbChange:ge(a),onThumbPointerUp:ge(i),onThumbPositionChange:I,onThumbPointerDown:ge(c),children:s.jsx(te.div,{...g,ref:b,style:{position:"absolute",...g.style},onPointerDown:ee(e.onPointerDown,D=>{D.button===0&&(D.target.setPointerCapture(D.pointerId),v.current=y.getBoundingClientRect(),w.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",m.viewport&&(m.viewport.style.scrollBehavior="auto"),k(D))}),onPointerMove:ee(e.onPointerMove,k),onPointerUp:ee(e.onPointerUp,D=>{const O=D.target;O.hasPointerCapture(D.pointerId)&&O.releasePointerCapture(D.pointerId),document.body.style.webkitUserSelect=w.current,m.viewport&&(m.viewport.style.scrollBehavior=""),v.current=null})})})}),Et="ScrollAreaThumb",Un=l.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=Wn(Et,e.__scopeScrollArea);return s.jsx(Te,{present:r||o.hasThumb,children:s.jsx(sc,{ref:t,...n})})}),sc=l.forwardRef((e,t)=>{const{__scopeScrollArea:r,style:n,...o}=e,a=ye(Et,r),i=Wn(Et,r),{onThumbPositionChange:c}=i,d=ne(t,h=>i.onThumbChange(h)),u=l.useRef(void 0),f=Pt(()=>{u.current&&(u.current(),u.current=void 0)},100);return l.useEffect(()=>{const h=a.viewport;if(h){const g=()=>{if(f(),!u.current){const m=cc(h,c);u.current=m,c()}};return c(),h.addEventListener("scroll",g),()=>h.removeEventListener("scroll",g)}},[a.viewport,f,c]),s.jsx(te.div,{"data-state":i.hasThumb?"visible":"hidden",...o,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:ee(e.onPointerDownCapture,h=>{const m=h.target.getBoundingClientRect(),y=h.clientX-m.left,p=h.clientY-m.top;i.onThumbPointerDown({x:y,y:p})}),onPointerUp:ee(e.onPointerUp,i.onThumbPointerUp)})});Un.displayName=Et;var Nr="ScrollAreaCorner",Vn=l.forwardRef((e,t)=>{const r=ye(Nr,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?s.jsx(ac,{...e,ref:t}):null});Vn.displayName=Nr;var ac=l.forwardRef((e,t)=>{const{__scopeScrollArea:r,...n}=e,o=ye(Nr,r),[a,i]=l.useState(0),[c,d]=l.useState(0),u=!!(a&&c);return Je(o.scrollbarX,()=>{var h;const f=((h=o.scrollbarX)==null?void 0:h.offsetHeight)||0;o.onCornerHeightChange(f),d(f)}),Je(o.scrollbarY,()=>{var h;const f=((h=o.scrollbarY)==null?void 0:h.offsetWidth)||0;o.onCornerWidthChange(f),i(f)}),u?s.jsx(te.div,{...n,ref:t,style:{width:a,height:c,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function Tt(e){return e?parseInt(e,10):0}function jn(e,t){const r=e/t;return isNaN(r)?0:r}function At(e){const t=jn(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*t;return Math.max(n,18)}function ic(e,t,r,n="ltr"){const o=At(r),a=o/2,i=t||a,c=o-i,d=r.scrollbar.paddingStart+i,u=r.scrollbar.size-r.scrollbar.paddingEnd-c,f=r.content-r.viewport,h=n==="ltr"?[0,f]:[f*-1,0];return Gn([d,u],h)(e)}function Kn(e,t,r="ltr"){const n=At(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-o,i=t.content-t.viewport,c=a-n,d=r==="ltr"?[0,i]:[i*-1,0],u=yr(e,d);return Gn([0,i],[0,c])(u)}function Gn(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}function Yn(e,t){return e>0&&e<t}var cc=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return function o(){const a={left:e.scrollLeft,top:e.scrollTop},i=r.left!==a.left,c=r.top!==a.top;(i||c)&&t(),r=a,n=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(n)};function Pt(e,t){const r=ge(e),n=l.useRef(0);return l.useEffect(()=>()=>window.clearTimeout(n.current),[]),l.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,t)},[r,t])}function Je(e,t){const r=ge(t);ue(()=>{let n=0;if(e){const o=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return o.observe(e),()=>{window.cancelAnimationFrame(n),o.unobserve(e)}}},[e,r])}var Xn=$n,lc=Bn,dc=Vn;const qn=l.forwardRef(({className:e,children:t,...r},n)=>s.jsxs(Xn,{ref:n,className:A("relative overflow-hidden",e),...r,children:[s.jsx(lc,{className:"h-full w-full rounded-[inherit] overflow-auto",children:t}),s.jsx(Jn,{}),s.jsx(dc,{})]}));qn.displayName=Xn.displayName;const Jn=l.forwardRef(({className:e,orientation:t="vertical",...r},n)=>s.jsx(Sr,{ref:n,orientation:t,className:A("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...r,children:s.jsx(Un,{className:"relative flex-1 rounded-full bg-border"})}));Jn.displayName=Sr.displayName;function kt({className:e="",showCreateButton:t=!0,showDeleteButton:r=!0,showEditTitle:n=!0,maxHeight:o="400px",customStyles:a={},currentThreadId:i=null,navigateToThread:c,api:d,onThreadSelect:u,onThreadCreate:f,onThreadDelete:h}){const{api:g,loadThread:m,threads:y,refreshThreads:p,currentThreadId:b}=mr(),v=N.useMemo(()=>d??g??new pr,[d,g]),[w,x]=N.useState(y??[]),[S,E]=N.useState(!1),[I,T]=N.useState(null),[k,D]=N.useState(null),[O,$]=N.useState(""),[z,G]=N.useState(!1);N.useEffect(()=>{x(y??[])},[y]);const L=async()=>{try{E(!0),await p()}catch(C){T((C==null?void 0:C.message)||String(C))}finally{E(!1)}},j=async C=>{try{await m(C),c==null||c(C),u==null||u(C)}catch(K){console.error("Failed to select thread:",K)}},B=async()=>{try{G(!0);const C=await v.createThread();await L(),await m(C.threadId),f==null||f(C.threadId),c==null||c(C.threadId)}catch(C){console.error("Failed to create thread:",C)}finally{G(!1)}},W=async(C,K)=>{if(K.stopPropagation(),!!confirm("Delete this thread?"))try{await v.deleteThread(C),await L(),h==null||h(C)}catch(ie){console.error("Failed to delete thread:",ie)}},M=(C,K)=>{K.stopPropagation(),D(C.threadId),$(C.title||`Thread ${C.threadId.slice(0,8)}`)},Z=async C=>{if(O.trim())try{await v.updateThread(C,O.trim()),D(null),$(""),await L()}catch(K){console.error("Failed to update title:",K)}},q=()=>{D(null),$("")},ce=(C,K)=>{C.key==="Enter"?Z(K):C.key==="Escape"&&q()},de=C=>{if(!C)return"";try{const K=new Date(C),F=new Date().getTime()-K.getTime(),J=Math.floor(F/(1e3*60*60*24));return J===0?K.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):J===1?"Yesterday":J<7?`${J} days ago`:K.toLocaleDateString()}catch{return""}},Y=C=>C.title||`Thread ${C.threadId.slice(0,8)}`;return s.jsxs("div",{className:`flex flex-col h-full ${e} ${a.container||""}`,children:[t&&s.jsx("div",{className:a.header||"flex-shrink-0 p-4 border-b bg-white border-slate-200 text-slate-900",children:s.jsxs(se,{onClick:B,disabled:z||S,className:`w-full ${a.createButton||""}`,size:"sm",children:[s.jsx(V.Plus,{size:16,className:"mr-2"}),z?"Creating...":"New Conversation"]})}),s.jsx(qn,{className:`flex-1 ${a.threadList||""}`,style:{maxHeight:o},children:s.jsx("div",{className:"p-2 space-y-1 pb-4",children:S?s.jsx("div",{className:"text-center py-8 text-slate-500",children:"Loading…"}):w.length===0?s.jsxs("div",{className:"text-center py-8 text-slate-500",children:[s.jsx(V.MessageSquare,{className:"w-8 h-8 mx-auto mb-2 opacity-40 text-slate-400"}),s.jsx("p",{className:"text-sm text-slate-600",children:"No conversations yet"})]}):w.slice().sort((C,K)=>new Date(K.updatedAt||K.createdAt||"").getTime()-new Date(C.updatedAt||C.createdAt||"").getTime()).map(C=>s.jsxs("div",{onClick:()=>j(C.threadId),className:`group relative p-3 rounded-lg cursor-pointer transition-colors border ${(i??b)===C.threadId?`${a.activeThread||"bg-slate-100 border-slate-300"} `:`${a.threadItem||"bg-white border-slate-200 hover:bg-slate-50"}`} ${a.threadItem||""} text-slate-900`,children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("div",{className:"flex-1 min-w-0",children:k===C.threadId?s.jsxs("div",{className:"flex items-center gap-2",onClick:K=>K.stopPropagation(),children:[s.jsx(ft,{value:O,onChange:K=>$(K.target.value),onKeyDown:K=>ce(K,C.threadId),className:"h-6 text-sm",autoFocus:!0}),s.jsx(se,{variant:"ghost",size:"sm",onClick:()=>Z(C.threadId),className:"h-6 w-6 p-0",children:s.jsx(V.Check,{size:12})}),s.jsx(se,{variant:"ghost",size:"sm",onClick:q,className:"h-6 w-6 p-0",children:s.jsx(V.X,{size:12})})]}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"font-medium text-sm truncate text-slate-900",children:Y(C)}),s.jsxs("div",{className:"flex items-center gap-2 text-xs text-slate-500 mt-1",children:[s.jsx(V.Calendar,{size:10}),s.jsx("span",{children:de(C.updatedAt||C.createdAt)})]})]})}),s.jsxs("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity ml-2",children:[n&&k!==C.threadId&&s.jsx(se,{variant:"ghost",size:"sm",onClick:K=>M(C,K),className:"h-6 w-6 p-0",title:"Edit title",children:s.jsx(V.Edit3,{size:12})}),r&&s.jsx(se,{variant:"ghost",size:"sm",onClick:K=>W(C.threadId,K),className:"h-6 w-6 p-0 text-red-600 hover:text-red-500 hover:bg-red-50",title:"Delete thread",children:s.jsx(V.Trash2,{size:12})})]})]}),i===C.threadId&&s.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-8 bg-blue-500 rounded-r"})]},C.threadId))})})]})}const Zn=N.createContext(null);function uc({children:e,basePath:t="/chat"}){const r=N.useMemo(()=>t?t==="/"?"":t.endsWith("/")?t.slice(0,-1):t:"/chat",[t]),n={basePath:r,buildThreadPath:o=>`${r}/${o}`,buildBasePath:()=>r};return s.jsx(Zn.Provider,{value:n,children:e})}function fc(){const e=N.useContext(Zn);return e||{basePath:"/chat",buildThreadPath:t=>`/chat/${t}`,buildBasePath:()=>"/chat"}}const Er=768;function hc(){const[e,t]=l.useState(void 0);return l.useEffect(()=>{const r=window.matchMedia(`(max-width: ${Er-1}px)`),n=()=>{t(window.innerWidth<Er)};return r.addEventListener("change",n),t(window.innerWidth<Er),()=>r.removeEventListener("change",n)},[]),!!e}var pc="Separator",Qn="horizontal",gc=["horizontal","vertical"],Rn=l.forwardRef((e,t)=>{const{decorative:r,orientation:n=Qn,...o}=e,a=mc(n)?n:Qn,c=r?{role:"none"}:{"aria-orientation":a==="vertical"?a:void 0,role:"separator"};return s.jsx(te.div,{"data-orientation":a,...c,...o,ref:t})});Rn.displayName=pc;function mc(e){return gc.includes(e)}var eo=Rn;const Tr=l.forwardRef(({className:e,orientation:t="horizontal",decorative:r=!0,...n},o)=>s.jsx(eo,{ref:o,decorative:r,orientation:t,className:A("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...n}));Tr.displayName=eo.displayName;function vc(e,t=globalThis==null?void 0:globalThis.document){const r=ge(e);l.useEffect(()=>{const n=o=>{o.key==="Escape"&&r(o)};return t.addEventListener("keydown",n,{capture:!0}),()=>t.removeEventListener("keydown",n,{capture:!0})},[r,t])}var bc="DismissableLayer",Ar="dismissableLayer.update",wc="dismissableLayer.pointerDownOutside",yc="dismissableLayer.focusOutside",to,ro=l.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),It=l.forwardRef((e,t)=>{const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:o,onFocusOutside:a,onInteractOutside:i,onDismiss:c,...d}=e,u=l.useContext(ro),[f,h]=l.useState(null),g=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,m]=l.useState({}),y=ne(t,T=>h(T)),p=Array.from(u.layers),[b]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),v=p.indexOf(b),w=f?p.indexOf(f):-1,x=u.layersWithOutsidePointerEventsDisabled.size>0,S=w>=v,E=Cc(T=>{const k=T.target,D=[...u.branches].some(O=>O.contains(k));!S||D||(o==null||o(T),i==null||i(T),T.defaultPrevented||c==null||c())},g),I=Nc(T=>{const k=T.target;[...u.branches].some(O=>O.contains(k))||(a==null||a(T),i==null||i(T),T.defaultPrevented||c==null||c())},g);return vc(T=>{w===u.layers.size-1&&(n==null||n(T),!T.defaultPrevented&&c&&(T.preventDefault(),c()))},g),l.useEffect(()=>{if(f)return r&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(to=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(f)),u.layers.add(f),no(),()=>{r&&u.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=to)}},[f,g,r,u]),l.useEffect(()=>()=>{f&&(u.layers.delete(f),u.layersWithOutsidePointerEventsDisabled.delete(f),no())},[f,u]),l.useEffect(()=>{const T=()=>m({});return document.addEventListener(Ar,T),()=>document.removeEventListener(Ar,T)},[]),s.jsx(te.div,{...d,ref:y,style:{pointerEvents:x?S?"auto":"none":void 0,...e.style},onFocusCapture:ee(e.onFocusCapture,I.onFocusCapture),onBlurCapture:ee(e.onBlurCapture,I.onBlurCapture),onPointerDownCapture:ee(e.onPointerDownCapture,E.onPointerDownCapture)})});It.displayName=bc;var xc="DismissableLayerBranch",Sc=l.forwardRef((e,t)=>{const r=l.useContext(ro),n=l.useRef(null),o=ne(t,n);return l.useEffect(()=>{const a=n.current;if(a)return r.branches.add(a),()=>{r.branches.delete(a)}},[r.branches]),s.jsx(te.div,{...e,ref:o})});Sc.displayName=xc;function Cc(e,t=globalThis==null?void 0:globalThis.document){const r=ge(e),n=l.useRef(!1),o=l.useRef(()=>{});return l.useEffect(()=>{const a=c=>{if(c.target&&!n.current){let d=function(){oo(wc,r,u,{discrete:!0})};const u={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=d,t.addEventListener("click",o.current,{once:!0})):d()}else t.removeEventListener("click",o.current);n.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",a),t.removeEventListener("click",o.current)}},[t,r]),{onPointerDownCapture:()=>n.current=!0}}function Nc(e,t=globalThis==null?void 0:globalThis.document){const r=ge(e),n=l.useRef(!1);return l.useEffect(()=>{const o=a=>{a.target&&!n.current&&oo(yc,r,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function no(){const e=new CustomEvent(Ar);document.dispatchEvent(e)}function oo(e,t,r,{discrete:n}){const o=r.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&o.addEventListener(e,t,{once:!0}),n?Ei(o,a):o.dispatchEvent(a)}var Pr="focusScope.autoFocusOnMount",kr="focusScope.autoFocusOnUnmount",so={bubbles:!1,cancelable:!0},Ec="FocusScope",Ir=l.forwardRef((e,t)=>{const{loop:r=!1,trapped:n=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...i}=e,[c,d]=l.useState(null),u=ge(o),f=ge(a),h=l.useRef(null),g=ne(t,p=>d(p)),m=l.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;l.useEffect(()=>{if(n){let p=function(x){if(m.paused||!c)return;const S=x.target;c.contains(S)?h.current=S:Fe(h.current,{select:!0})},b=function(x){if(m.paused||!c)return;const S=x.relatedTarget;S!==null&&(c.contains(S)||Fe(h.current,{select:!0}))},v=function(x){if(document.activeElement===document.body)for(const E of x)E.removedNodes.length>0&&Fe(c)};document.addEventListener("focusin",p),document.addEventListener("focusout",b);const w=new MutationObserver(v);return c&&w.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",p),document.removeEventListener("focusout",b),w.disconnect()}}},[n,c,m.paused]),l.useEffect(()=>{if(c){co.add(m);const p=document.activeElement;if(!c.contains(p)){const v=new CustomEvent(Pr,so);c.addEventListener(Pr,u),c.dispatchEvent(v),v.defaultPrevented||(Tc(_c(ao(c)),{select:!0}),document.activeElement===p&&Fe(c))}return()=>{c.removeEventListener(Pr,u),setTimeout(()=>{const v=new CustomEvent(kr,so);c.addEventListener(kr,f),c.dispatchEvent(v),v.defaultPrevented||Fe(p??document.body,{select:!0}),c.removeEventListener(kr,f),co.remove(m)},0)}}},[c,u,f,m]);const y=l.useCallback(p=>{if(!r&&!n||m.paused)return;const b=p.key==="Tab"&&!p.altKey&&!p.ctrlKey&&!p.metaKey,v=document.activeElement;if(b&&v){const w=p.currentTarget,[x,S]=Ac(w);x&&S?!p.shiftKey&&v===S?(p.preventDefault(),r&&Fe(x,{select:!0})):p.shiftKey&&v===x&&(p.preventDefault(),r&&Fe(S,{select:!0})):v===w&&p.preventDefault()}},[r,n,m.paused]);return s.jsx(te.div,{tabIndex:-1,...i,ref:g,onKeyDown:y})});Ir.displayName=Ec;function Tc(e,{select:t=!1}={}){const r=document.activeElement;for(const n of e)if(Fe(n,{select:t}),document.activeElement!==r)return}function Ac(e){const t=ao(e),r=io(t,e),n=io(t.reverse(),e);return[r,n]}function ao(e){const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const o=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||o?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function io(e,t){for(const r of e)if(!Pc(r,{upTo:t}))return r}function Pc(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function kc(e){return e instanceof HTMLInputElement&&"select"in e}function Fe(e,{select:t=!1}={}){if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&kc(e)&&t&&e.select()}}var co=Ic();function Ic(){let e=[];return{add(t){const r=e[0];t!==r&&(r==null||r.pause()),e=lo(e,t),e.unshift(t)},remove(t){var r;e=lo(e,t),(r=e[0])==null||r.resume()}}}function lo(e,t){const r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r}function _c(e){return e.filter(t=>t.tagName!=="A")}var Oc="Portal",_r=l.forwardRef((e,t)=>{var c;const{container:r,...n}=e,[o,a]=l.useState(!1);ue(()=>a(!0),[]);const i=r||o&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return i?vn.createPortal(s.jsx(te.div,{...n,ref:t}),i):null});_r.displayName=Oc;var Or=0;function uo(){l.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??fo()),document.body.insertAdjacentElement("beforeend",e[1]??fo()),Or++,()=>{Or===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),Or--}},[])}function fo(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Pe=function(){return Pe=Object.assign||function(t){for(var r,n=1,o=arguments.length;n<o;n++){r=arguments[n];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a])}return t},Pe.apply(this,arguments)};function ho(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}function Mc(e,t,r){if(r||arguments.length===2)for(var n=0,o=t.length,a;n<o;n++)(a||!(n in t))&&(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))}typeof SuppressedError=="function"&&SuppressedError;var _t="right-scroll-bar-position",Ot="width-before-scroll-bar",Dc="with-scroll-bars-hidden",Lc="--removed-body-scroll-bar-size";function Mr(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function $c(e,t){var r=N.useState(function(){return{value:e,callback:t,facade:{get current(){return r.value},set current(n){var o=r.value;o!==n&&(r.value=n,r.callback(n,o))}}}})[0];return r.callback=t,r.facade}var Fc=typeof window<"u"?l.useLayoutEffect:l.useEffect,po=new WeakMap;function Bc(e,t){var r=$c(null,function(n){return e.forEach(function(o){return Mr(o,n)})});return Fc(function(){var n=po.get(r);if(n){var o=new Set(n),a=new Set(e),i=r.current;o.forEach(function(c){a.has(c)||Mr(c,null)}),a.forEach(function(c){o.has(c)||Mr(c,i)})}po.set(r,e)},[e]),r}function zc(e){return e}function Wc(e,t){t===void 0&&(t=zc);var r=[],n=!1,o={read:function(){if(n)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:e},useMedium:function(a){var i=t(a,n);return r.push(i),function(){r=r.filter(function(c){return c!==i})}},assignSyncMedium:function(a){for(n=!0;r.length;){var i=r;r=[],i.forEach(a)}r={push:function(c){return a(c)},filter:function(){return r}}},assignMedium:function(a){n=!0;var i=[];if(r.length){var c=r;r=[],c.forEach(a),i=r}var d=function(){var f=i;i=[],f.forEach(a)},u=function(){return Promise.resolve().then(d)};u(),r={push:function(f){i.push(f),u()},filter:function(f){return i=i.filter(f),r}}}};return o}function Hc(e){e===void 0&&(e={});var t=Wc(null);return t.options=Pe({async:!0,ssr:!1},e),t}var go=function(e){var t=e.sideCar,r=ho(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var n=t.read();if(!n)throw new Error("Sidecar medium not found");return l.createElement(n,Pe({},r))};go.isSideCarExport=!0;function Uc(e,t){return e.useMedium(t),go}var mo=Hc(),Dr=function(){},Mt=l.forwardRef(function(e,t){var r=l.useRef(null),n=l.useState({onScrollCapture:Dr,onWheelCapture:Dr,onTouchMoveCapture:Dr}),o=n[0],a=n[1],i=e.forwardProps,c=e.children,d=e.className,u=e.removeScrollBar,f=e.enabled,h=e.shards,g=e.sideCar,m=e.noRelative,y=e.noIsolation,p=e.inert,b=e.allowPinchZoom,v=e.as,w=v===void 0?"div":v,x=e.gapMode,S=ho(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),E=g,I=Bc([r,t]),T=Pe(Pe({},S),o);return l.createElement(l.Fragment,null,f&&l.createElement(E,{sideCar:mo,removeScrollBar:u,shards:h,noRelative:m,noIsolation:y,inert:p,setCallbacks:a,allowPinchZoom:!!b,lockRef:r,gapMode:x}),i?l.cloneElement(l.Children.only(c),Pe(Pe({},T),{ref:I})):l.createElement(w,Pe({},T,{className:d,ref:I}),c))});Mt.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},Mt.classNames={fullWidth:Ot,zeroRight:_t};var Vc=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function jc(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=Vc();return t&&e.setAttribute("nonce",t),e}function Kc(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Gc(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var Yc=function(){var e=0,t=null;return{add:function(r){e==0&&(t=jc())&&(Kc(t,r),Gc(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Xc=function(){var e=Yc();return function(t,r){l.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}},vo=function(){var e=Xc(),t=function(r){var n=r.styles,o=r.dynamic;return e(n,o),null};return t},qc={left:0,top:0,right:0,gap:0},Lr=function(e){return parseInt(e||"",10)||0},Jc=function(e){var t=window.getComputedStyle(document.body),r=t[e==="padding"?"paddingLeft":"marginLeft"],n=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[Lr(r),Lr(n),Lr(o)]},Zc=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return qc;var t=Jc(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},Qc=vo(),Ze="data-scroll-locked",Rc=function(e,t,r,n){var o=e.left,a=e.top,i=e.right,c=e.gap;return r===void 0&&(r="margin"),`
|
|
13
|
+
`).trim():r.replace(/</g,"<").replace(/>/g,">").trim()}function qi(e,t=qe){if(!e||typeof e!="string")throw new Error("Invalid content: must be a non-empty string");if(e.length>t)throw new Error(`Message exceeds maximum length of ${t} characters`);return e}function Ji(e){let t;return typeof e=="string"?t=e:typeof e=="object"&&e!==null?t=JSON.stringify(e):t=String(e),qi(t),Xi(t)}function ut({className:e="",placeholder:t="Type your message...",autoFocus:r=!0,maxHeight:n="600px",streamingDebounceMs:o=40,enableFileUpload:a=!1,enableMessageEditing:i=!0,customStyles:c={},onMessageSent:d,onError:u}){const{currentThreadId:f,messages:h,isStreaming:g,streamingAssistantId:m,error:y,send:p,stop:b,lastCheckpointId:v,listCheckpoints:w,navigateToCheckpoint:x,returnToLatest:S}=mr(),[E,I]=N.useState(""),[T,k]=N.useState(null),[D,O]=N.useState(null),[$,z]=N.useState([]),[G,L]=N.useState(!1),[j,B]=N.useState([]),[W,M]=N.useState(null),Z=N.useRef(null),q=N.useRef(null),ce=N.useRef(null),[de,Y]=N.useState("desktop");N.useEffect(()=>{const P=()=>{const U=window.innerWidth;Y(U<640?"phone":U<1024?"tablet":"desktop")};return P(),window.addEventListener("resize",P),()=>window.removeEventListener("resize",P)},[]),N.useEffect(()=>{var P;(P=Z.current)==null||P.scrollIntoView({behavior:"smooth"})},[h]),N.useEffect(()=>{var P;r&&((P=q.current)==null||P.focus())},[r]),N.useEffect(()=>{y&&!G&&(u==null||u(y))},[y,G,u]),N.useEffect(()=>{let P=!0;if(!f){B([]),M(null);return}return w(f).then(U=>{var ae,pe;if(!P)return;B(U.checkpoints||[]);const R=((pe=(ae=U.checkpoints)==null?void 0:ae.slice().sort((he,mn)=>new Date(mn.createdAt).getTime()-new Date(he.createdAt).getTime())[0])==null?void 0:pe.checkpointId)||null;M(he=>he??R)}).catch(()=>{}),()=>{P=!1}},[f,w]),N.useEffect(()=>{v&&M(v)},[v]);const C=P=>{if(P.length>qe)return`Message too long (${P.length}/${qe} characters)`;try{return Ji(P),null}catch(U){return(U==null?void 0:U.message)||"Invalid message"}},K=P=>{const U=P.content||[],R=U.filter(ae=>ae.type==="text").map(ae=>ae.text).join("");if(R)return R;try{return JSON.stringify(U,null,2)}catch{return String(U)}},ie=P=>{var pe;if(!j.length)return[];const U=(((pe=h[P])==null?void 0:pe.role)??"user")==="user",R=U?P+2:P+1;return j.filter(he=>(he.messagesLen??-1)>=(U?R:0)).filter(he=>U?(he.messagesLen??0)>=R:(he.messagesLen??0)===R).map(he=>({checkpoint_id:he.checkpointId,checkpoint_ns:he.checkpointNs,message_count:he.messagesLen??0,last_message_preview:he.preview??void 0,ts:new Date(he.createdAt).getTime(),isCurrent:he.checkpointId===W})).sort((he,mn)=>(he.ts||0)-(mn.ts||0))},F=P=>{if(P===void 0)return{canGoBack:!1,canGoForward:!1,currentIndex:0,totalBranches:0};const U=ie(P);if(U.length<=1)return{canGoBack:!1,canGoForward:!1,currentIndex:0,totalBranches:U.length};const R=Math.max(0,U.findIndex(ae=>ae.isCurrent));return{canGoBack:R>0,canGoForward:R<U.length-1,currentIndex:R,totalBranches:U.length}},J=async()=>{const P=E.trim();if(!P&&$.length===0)return;const U=C(P);if(U){O(U);return}try{const R=window.__editingCheckpointId||W||void 0;await p(P,{checkpointId:R,payloadExtras:T?{edit:!0,originalMessageId:T}:void 0,attachments:$}),d==null||d(P),I(""),O(null),z([]),delete window.__editingCheckpointId,k(null),q.current&&(q.current.style.height="auto")}catch(R){const ae=(R==null?void 0:R.message)||"Failed to send message";O(ae),u==null||u(ae)}},oe=(P,U)=>{i&&(k(P),I(U),O(null),setTimeout(()=>{q.current&&(q.current.focus(),q.current.style.height="auto",q.current.style.height=q.current.scrollHeight+"px")},0))},Q=async(P,U)=>{const R=h.find(pe=>pe.id===P);if(!R){O("Message not found");return}const ae=K(R);k(P),I(ae),window.__editingCheckpointId=U,setTimeout(()=>{var pe;return(pe=q.current)==null?void 0:pe.focus()},0)},_=()=>{k(null),I(""),O(null),delete window.__editingCheckpointId,q.current&&(q.current.style.height="auto")},X=P=>{P.key==="Enter"&&!P.shiftKey?(P.preventDefault(),J()):P.key==="Escape"&&T&&(P.preventDefault(),_())},H=P=>{const U=Array.from(P.target.files||[]);z(R=>[...R,...U])},le=P=>z(U=>U.filter((R,ae)=>P!==ae)),fe=async P=>{f&&(await x(P),M(P))},me=async()=>{await S(),M(null)};return s.jsxs("div",{className:`flex flex-col h-full ${e} ${c.container||""}`,children:[!!y&&!G&&s.jsxs("div",{className:"bg-red-50 border border-red-200 text-red-800 px-4 py-2 text-sm flex items-center justify-between",children:[s.jsx("span",{children:y}),s.jsx(se,{variant:"ghost",size:"sm",onClick:()=>L(!0),className:"text-red-800 hover:bg-red-100",children:s.jsx(V.X,{size:16})})]}),f&&j.length>0&&s.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 border-b bg-background/50 text-xs",children:[s.jsx(V.GitBranch,{className:"h-4 w-4 opacity-70"}),s.jsx("span",{className:"opacity-70",children:"Checkpoint:"}),s.jsxs("select",{className:"border rounded px-2 py-1 text-xs",value:W??"",onChange:P=>{const U=P.target.value||null;U?fe(U):me()},children:[s.jsx("option",{value:"",children:"Latest"}),j.slice().sort((P,U)=>new Date(U.createdAt).getTime()-new Date(P.createdAt).getTime()).map(P=>s.jsxs("option",{value:P.checkpointId,children:[new Date(P.createdAt).toLocaleString()," ",P.preview?`— ${P.preview.slice(0,30)}`:""]},P.checkpointId))]})]}),s.jsxs("div",{className:`flex-1 overflow-y-auto p-4 space-y-4 ${c.messagesArea||""}`,style:{maxHeight:n},children:[h.length===0?s.jsx("div",{className:"flex items-center justify-center py-8 text-muted-foreground",children:"No messages yet. Start a conversation!"}):h.map((P,U)=>s.jsx(_n,{message:P,messageIndex:U,isStreamingMessage:g&&m===P.id,streamingDebounceMs:o,isEditing:T===P.id,showActions:i,showTimestamp:!1,showAgentName:!0,layoutSize:de,truncateToolMessages:!1,toolMessagePreviewLength:200,checkpointBranches:ie(U),currentCheckpointId:W??void 0,temporalNavigation:F(U),onSwitchToCheckpoint:fe,onReturnToMainThread:me,onNavigateToPreviousBranch:()=>{const R=ie(U),ae=Math.max(0,R.findIndex(pe=>pe.isCurrent));ae>0&&fe(R[ae-1].checkpoint_id)},onNavigateToNextBranch:()=>{const R=ie(U),ae=Math.max(0,R.findIndex(pe=>pe.isCurrent));ae>=0&&ae<R.length-1&&fe(R[ae+1].checkpoint_id)},onEdit:(R,ae)=>oe(R,ae),onEditFromCheckpoint:Q,onRegenerate:()=>{const R=[...h].reverse().find(pe=>pe.role==="user"),ae=R?K(R):"";ae&&p(ae,{checkpointId:W??void 0})},onCancelEdit:_},P.id||U)),s.jsx("div",{ref:Z})]}),s.jsxs("div",{className:`flex-shrink-0 border-t p-4 ${c.inputArea||""}`,children:[T&&s.jsx("div",{className:"mb-3 p-3 bg-blue-50 border border-blue-200 rounded-lg",children:s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(V.Edit3,{size:16,className:"text-blue-600"}),s.jsx("span",{className:"text-sm font-medium text-blue-800",children:"Editing message"})]}),s.jsx(se,{variant:"ghost",size:"sm",onClick:_,className:"text-blue-600 hover:bg-blue-100",children:s.jsx(V.X,{size:16})})]})}),a&&s.jsxs("div",{className:"mb-3",children:[s.jsx("input",{ref:ce,type:"file",multiple:!0,onChange:P=>H(P),className:"hidden"}),$.length>0&&s.jsx("div",{className:"mb-3 flex flex-wrap gap-2",children:$.map((P,U)=>s.jsxs("div",{className:"flex items-center gap-2 bg-gray-100 rounded-lg px-3 py-2 text-sm",children:[s.jsx(V.Paperclip,{size:14}),s.jsx("span",{className:"truncate max-w-[150px]",children:P.name}),s.jsx(se,{variant:"ghost",size:"sm",onClick:()=>le(U),className:"h-4 w-4 p-0 text-gray-500 hover:text-red-500",children:s.jsx(V.X,{size:12})})]},U))})]}),D&&s.jsx("div",{className:"mb-3 text-sm text-red-600 bg-red-50 border border-red-200 rounded px-3 py-2",children:D}),s.jsxs("div",{className:"flex items-end gap-2",children:[a&&s.jsx(se,{type:"button",onClick:()=>{var P;return(P=ce.current)==null?void 0:P.click()},size:"icon",variant:"outline",disabled:g,title:"Attach files",children:s.jsx(V.Paperclip,{size:16})}),s.jsx("div",{className:"flex-1",children:s.jsx(En,{ref:q,value:E,onChange:P=>{I(P.target.value),O(null),q.current&&(q.current.style.height="auto",q.current.style.height=q.current.scrollHeight+"px")},onKeyDown:X,placeholder:T?"Edit your message...":t,className:`resize-none min-h-[44px] max-h-[20rem] ${T?"border-blue-400 bg-blue-50":""} ${D?"border-red-400":""}`,disabled:!1,maxLength:qe,rows:1})}),s.jsx("div",{children:g?s.jsx(se,{type:"button",onClick:b,size:"icon",variant:"outline",className:"shrink-0",title:"Stop generating",children:s.jsx(V.Square,{size:16})}):s.jsx(se,{type:"button",onClick:J,size:"icon",disabled:!E.trim()&&$.length===0,className:`shrink-0 ${c.sendButton||""}`,title:T?"Save changes":"Send message",children:s.jsx(V.Send,{size:16})})})]}),E.length>qe*.8&&s.jsxs("div",{className:"mt-2 text-xs text-gray-500 text-right",children:[E.length,"/",qe]})]})]})}const ft=l.forwardRef(({className:e,type:t,...r},n)=>s.jsx("input",{type:t,className:A("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...r}));ft.displayName="Input";function ge(e){const t=l.useRef(e);return l.useEffect(()=>{t.current=e}),l.useMemo(()=>(...r)=>{var n;return(n=t.current)==null?void 0:n.call(t,...r)},[])}var Zi=l.createContext(void 0);function Dn(e){const t=l.useContext(Zi);return e||t||"ltr"}function yr(e,[t,r]){return Math.min(r,Math.max(t,e))}function Qi(e,t){return l.useReducer((r,n)=>t[r][n]??r,e)}var xr="ScrollArea",[Ln,Wf]=Le(xr),[Ri,ye]=Ln(xr),$n=l.forwardRef((e,t)=>{const{__scopeScrollArea:r,type:n="hover",dir:o,scrollHideDelay:a=600,...i}=e,[c,d]=l.useState(null),[u,f]=l.useState(null),[h,g]=l.useState(null),[m,y]=l.useState(null),[p,b]=l.useState(null),[v,w]=l.useState(0),[x,S]=l.useState(0),[E,I]=l.useState(!1),[T,k]=l.useState(!1),D=ne(t,$=>d($)),O=Dn(o);return s.jsx(Ri,{scope:r,type:n,dir:O,scrollHideDelay:a,scrollArea:c,viewport:u,onViewportChange:f,content:h,onContentChange:g,scrollbarX:m,onScrollbarXChange:y,scrollbarXEnabled:E,onScrollbarXEnabledChange:I,scrollbarY:p,onScrollbarYChange:b,scrollbarYEnabled:T,onScrollbarYEnabledChange:k,onCornerWidthChange:w,onCornerHeightChange:S,children:s.jsx(te.div,{dir:O,...i,ref:D,style:{position:"relative","--radix-scroll-area-corner-width":v+"px","--radix-scroll-area-corner-height":x+"px",...e.style}})})});$n.displayName=xr;var Fn="ScrollAreaViewport",Bn=l.forwardRef((e,t)=>{const{__scopeScrollArea:r,children:n,nonce:o,...a}=e,i=ye(Fn,r),c=l.useRef(null),d=ne(t,c,i.onViewportChange);return s.jsxs(s.Fragment,{children:[s.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:o}),s.jsx(te.div,{"data-radix-scroll-area-viewport":"",...a,ref:d,style:{overflowX:i.scrollbarXEnabled?"scroll":"hidden",overflowY:i.scrollbarYEnabled?"scroll":"hidden",...e.style},children:s.jsx("div",{ref:i.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});Bn.displayName=Fn;var Ae="ScrollAreaScrollbar",Sr=l.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=ye(Ae,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:i}=o,c=e.orientation==="horizontal";return l.useEffect(()=>(c?a(!0):i(!0),()=>{c?a(!1):i(!1)}),[c,a,i]),o.type==="hover"?s.jsx(ec,{...n,ref:t,forceMount:r}):o.type==="scroll"?s.jsx(tc,{...n,ref:t,forceMount:r}):o.type==="auto"?s.jsx(zn,{...n,ref:t,forceMount:r}):o.type==="always"?s.jsx(Cr,{...n,ref:t}):null});Sr.displayName=Ae;var ec=l.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=ye(Ae,e.__scopeScrollArea),[a,i]=l.useState(!1);return l.useEffect(()=>{const c=o.scrollArea;let d=0;if(c){const u=()=>{window.clearTimeout(d),i(!0)},f=()=>{d=window.setTimeout(()=>i(!1),o.scrollHideDelay)};return c.addEventListener("pointerenter",u),c.addEventListener("pointerleave",f),()=>{window.clearTimeout(d),c.removeEventListener("pointerenter",u),c.removeEventListener("pointerleave",f)}}},[o.scrollArea,o.scrollHideDelay]),s.jsx(Te,{present:r||a,children:s.jsx(zn,{"data-state":a?"visible":"hidden",...n,ref:t})})}),tc=l.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=ye(Ae,e.__scopeScrollArea),a=e.orientation==="horizontal",i=Pt(()=>d("SCROLL_END"),100),[c,d]=Qi("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return l.useEffect(()=>{if(c==="idle"){const u=window.setTimeout(()=>d("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(u)}},[c,o.scrollHideDelay,d]),l.useEffect(()=>{const u=o.viewport,f=a?"scrollLeft":"scrollTop";if(u){let h=u[f];const g=()=>{const m=u[f];h!==m&&(d("SCROLL"),i()),h=m};return u.addEventListener("scroll",g),()=>u.removeEventListener("scroll",g)}},[o.viewport,a,d,i]),s.jsx(Te,{present:r||c!=="hidden",children:s.jsx(Cr,{"data-state":c==="hidden"?"hidden":"visible",...n,ref:t,onPointerEnter:ee(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:ee(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),zn=l.forwardRef((e,t)=>{const r=ye(Ae,e.__scopeScrollArea),{forceMount:n,...o}=e,[a,i]=l.useState(!1),c=e.orientation==="horizontal",d=Pt(()=>{if(r.viewport){const u=r.viewport.offsetWidth<r.viewport.scrollWidth,f=r.viewport.offsetHeight<r.viewport.scrollHeight;i(c?u:f)}},10);return Je(r.viewport,d),Je(r.content,d),s.jsx(Te,{present:n||a,children:s.jsx(Cr,{"data-state":a?"visible":"hidden",...o,ref:t})})}),Cr=l.forwardRef((e,t)=>{const{orientation:r="vertical",...n}=e,o=ye(Ae,e.__scopeScrollArea),a=l.useRef(null),i=l.useRef(0),[c,d]=l.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=jn(c.viewport,c.content),f={...n,sizes:c,onSizesChange:d,hasThumb:u>0&&u<1,onThumbChange:g=>a.current=g,onThumbPointerUp:()=>i.current=0,onThumbPointerDown:g=>i.current=g};function h(g,m){return ic(g,i.current,c,m)}return r==="horizontal"?s.jsx(rc,{...f,ref:t,onThumbPositionChange:()=>{if(o.viewport&&a.current){const g=o.viewport.scrollLeft,m=Kn(g,c,o.dir);a.current.style.transform=`translate3d(${m}px, 0, 0)`}},onWheelScroll:g=>{o.viewport&&(o.viewport.scrollLeft=g)},onDragScroll:g=>{o.viewport&&(o.viewport.scrollLeft=h(g,o.dir))}}):r==="vertical"?s.jsx(nc,{...f,ref:t,onThumbPositionChange:()=>{if(o.viewport&&a.current){const g=o.viewport.scrollTop,m=Kn(g,c);a.current.style.transform=`translate3d(0, ${m}px, 0)`}},onWheelScroll:g=>{o.viewport&&(o.viewport.scrollTop=g)},onDragScroll:g=>{o.viewport&&(o.viewport.scrollTop=h(g))}}):null}),rc=l.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...o}=e,a=ye(Ae,e.__scopeScrollArea),[i,c]=l.useState(),d=l.useRef(null),u=ne(t,d,a.onScrollbarXChange);return l.useEffect(()=>{d.current&&c(getComputedStyle(d.current))},[d]),s.jsx(Hn,{"data-orientation":"horizontal",...o,ref:u,sizes:r,style:{bottom:0,left:a.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:a.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":At(r)+"px",...e.style},onThumbPointerDown:f=>e.onThumbPointerDown(f.x),onDragScroll:f=>e.onDragScroll(f.x),onWheelScroll:(f,h)=>{if(a.viewport){const g=a.viewport.scrollLeft+f.deltaX;e.onWheelScroll(g),Yn(g,h)&&f.preventDefault()}},onResize:()=>{d.current&&a.viewport&&i&&n({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:Tt(i.paddingLeft),paddingEnd:Tt(i.paddingRight)}})}})}),nc=l.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...o}=e,a=ye(Ae,e.__scopeScrollArea),[i,c]=l.useState(),d=l.useRef(null),u=ne(t,d,a.onScrollbarYChange);return l.useEffect(()=>{d.current&&c(getComputedStyle(d.current))},[d]),s.jsx(Hn,{"data-orientation":"vertical",...o,ref:u,sizes:r,style:{top:0,right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":At(r)+"px",...e.style},onThumbPointerDown:f=>e.onThumbPointerDown(f.y),onDragScroll:f=>e.onDragScroll(f.y),onWheelScroll:(f,h)=>{if(a.viewport){const g=a.viewport.scrollTop+f.deltaY;e.onWheelScroll(g),Yn(g,h)&&f.preventDefault()}},onResize:()=>{d.current&&a.viewport&&i&&n({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:Tt(i.paddingTop),paddingEnd:Tt(i.paddingBottom)}})}})}),[oc,Wn]=Ln(Ae),Hn=l.forwardRef((e,t)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:o,onThumbChange:a,onThumbPointerUp:i,onThumbPointerDown:c,onThumbPositionChange:d,onDragScroll:u,onWheelScroll:f,onResize:h,...g}=e,m=ye(Ae,r),[y,p]=l.useState(null),b=ne(t,D=>p(D)),v=l.useRef(null),w=l.useRef(""),x=m.viewport,S=n.content-n.viewport,E=ge(f),I=ge(d),T=Pt(h,10);function k(D){if(v.current){const O=D.clientX-v.current.left,$=D.clientY-v.current.top;u({x:O,y:$})}}return l.useEffect(()=>{const D=O=>{const $=O.target;(y==null?void 0:y.contains($))&&E(O,S)};return document.addEventListener("wheel",D,{passive:!1}),()=>document.removeEventListener("wheel",D,{passive:!1})},[x,y,S,E]),l.useEffect(I,[n,I]),Je(y,T),Je(m.content,T),s.jsx(oc,{scope:r,scrollbar:y,hasThumb:o,onThumbChange:ge(a),onThumbPointerUp:ge(i),onThumbPositionChange:I,onThumbPointerDown:ge(c),children:s.jsx(te.div,{...g,ref:b,style:{position:"absolute",...g.style},onPointerDown:ee(e.onPointerDown,D=>{D.button===0&&(D.target.setPointerCapture(D.pointerId),v.current=y.getBoundingClientRect(),w.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",m.viewport&&(m.viewport.style.scrollBehavior="auto"),k(D))}),onPointerMove:ee(e.onPointerMove,k),onPointerUp:ee(e.onPointerUp,D=>{const O=D.target;O.hasPointerCapture(D.pointerId)&&O.releasePointerCapture(D.pointerId),document.body.style.webkitUserSelect=w.current,m.viewport&&(m.viewport.style.scrollBehavior=""),v.current=null})})})}),Et="ScrollAreaThumb",Un=l.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=Wn(Et,e.__scopeScrollArea);return s.jsx(Te,{present:r||o.hasThumb,children:s.jsx(sc,{ref:t,...n})})}),sc=l.forwardRef((e,t)=>{const{__scopeScrollArea:r,style:n,...o}=e,a=ye(Et,r),i=Wn(Et,r),{onThumbPositionChange:c}=i,d=ne(t,h=>i.onThumbChange(h)),u=l.useRef(void 0),f=Pt(()=>{u.current&&(u.current(),u.current=void 0)},100);return l.useEffect(()=>{const h=a.viewport;if(h){const g=()=>{if(f(),!u.current){const m=cc(h,c);u.current=m,c()}};return c(),h.addEventListener("scroll",g),()=>h.removeEventListener("scroll",g)}},[a.viewport,f,c]),s.jsx(te.div,{"data-state":i.hasThumb?"visible":"hidden",...o,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:ee(e.onPointerDownCapture,h=>{const m=h.target.getBoundingClientRect(),y=h.clientX-m.left,p=h.clientY-m.top;i.onThumbPointerDown({x:y,y:p})}),onPointerUp:ee(e.onPointerUp,i.onThumbPointerUp)})});Un.displayName=Et;var Nr="ScrollAreaCorner",Vn=l.forwardRef((e,t)=>{const r=ye(Nr,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?s.jsx(ac,{...e,ref:t}):null});Vn.displayName=Nr;var ac=l.forwardRef((e,t)=>{const{__scopeScrollArea:r,...n}=e,o=ye(Nr,r),[a,i]=l.useState(0),[c,d]=l.useState(0),u=!!(a&&c);return Je(o.scrollbarX,()=>{var h;const f=((h=o.scrollbarX)==null?void 0:h.offsetHeight)||0;o.onCornerHeightChange(f),d(f)}),Je(o.scrollbarY,()=>{var h;const f=((h=o.scrollbarY)==null?void 0:h.offsetWidth)||0;o.onCornerWidthChange(f),i(f)}),u?s.jsx(te.div,{...n,ref:t,style:{width:a,height:c,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function Tt(e){return e?parseInt(e,10):0}function jn(e,t){const r=e/t;return isNaN(r)?0:r}function At(e){const t=jn(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*t;return Math.max(n,18)}function ic(e,t,r,n="ltr"){const o=At(r),a=o/2,i=t||a,c=o-i,d=r.scrollbar.paddingStart+i,u=r.scrollbar.size-r.scrollbar.paddingEnd-c,f=r.content-r.viewport,h=n==="ltr"?[0,f]:[f*-1,0];return Gn([d,u],h)(e)}function Kn(e,t,r="ltr"){const n=At(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-o,i=t.content-t.viewport,c=a-n,d=r==="ltr"?[0,i]:[i*-1,0],u=yr(e,d);return Gn([0,i],[0,c])(u)}function Gn(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}function Yn(e,t){return e>0&&e<t}var cc=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return function o(){const a={left:e.scrollLeft,top:e.scrollTop},i=r.left!==a.left,c=r.top!==a.top;(i||c)&&t(),r=a,n=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(n)};function Pt(e,t){const r=ge(e),n=l.useRef(0);return l.useEffect(()=>()=>window.clearTimeout(n.current),[]),l.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,t)},[r,t])}function Je(e,t){const r=ge(t);ue(()=>{let n=0;if(e){const o=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return o.observe(e),()=>{window.cancelAnimationFrame(n),o.unobserve(e)}}},[e,r])}var Xn=$n,lc=Bn,dc=Vn;const qn=l.forwardRef(({className:e,children:t,...r},n)=>s.jsxs(Xn,{ref:n,className:A("relative overflow-hidden",e),...r,children:[s.jsx(lc,{className:"h-full w-full rounded-[inherit] overflow-auto",children:t}),s.jsx(Jn,{}),s.jsx(dc,{})]}));qn.displayName=Xn.displayName;const Jn=l.forwardRef(({className:e,orientation:t="vertical",...r},n)=>s.jsx(Sr,{ref:n,orientation:t,className:A("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...r,children:s.jsx(Un,{className:"relative flex-1 rounded-full bg-border"})}));Jn.displayName=Sr.displayName;function kt({className:e="",showCreateButton:t=!0,showDeleteButton:r=!0,showEditTitle:n=!0,maxHeight:o="400px",customStyles:a={},currentThreadId:i=null,navigateToThread:c,api:d,onThreadSelect:u,onThreadCreate:f,onThreadDelete:h}){const{api:g,loadThread:m,threads:y,refreshThreads:p,currentThreadId:b}=mr(),v=N.useMemo(()=>d??g??new pr,[d,g]),[w,x]=N.useState(y??[]),[S,E]=N.useState(!1),[I,T]=N.useState(null),[k,D]=N.useState(null),[O,$]=N.useState(""),[z,G]=N.useState(!1);N.useEffect(()=>{x(y??[])},[y]);const L=async()=>{try{E(!0),await p()}catch(C){T((C==null?void 0:C.message)||String(C))}finally{E(!1)}},j=async C=>{try{await m(C),c==null||c(C),u==null||u(C)}catch(K){console.error("Failed to select thread:",K)}},B=async()=>{try{G(!0);const C=await v.createThread();await L(),await m(C.threadId),f==null||f(C.threadId),c==null||c(C.threadId)}catch(C){console.error("Failed to create thread:",C)}finally{G(!1)}},W=async(C,K)=>{if(K.stopPropagation(),!!confirm("Delete this thread?"))try{await v.deleteThread(C),await L(),h==null||h(C)}catch(ie){console.error("Failed to delete thread:",ie)}},M=(C,K)=>{K.stopPropagation(),D(C.threadId),$(C.title||`Thread ${C.threadId.slice(0,8)}`)},Z=async C=>{if(O.trim())try{await v.updateThread(C,O.trim()),D(null),$(""),await L()}catch(K){console.error("Failed to update title:",K)}},q=()=>{D(null),$("")},ce=(C,K)=>{C.key==="Enter"?Z(K):C.key==="Escape"&&q()},de=C=>{if(!C)return"";try{const K=new Date(C),F=new Date().getTime()-K.getTime(),J=Math.floor(F/(1e3*60*60*24));return J===0?K.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):J===1?"Yesterday":J<7?`${J} days ago`:K.toLocaleDateString()}catch{return""}},Y=C=>C.title||`Thread ${C.threadId.slice(0,8)}`;return s.jsxs("div",{className:`flex flex-col h-full ${e} ${a.container||""}`,children:[t&&s.jsx("div",{className:a.header||"flex-shrink-0 p-4 border-b bg-slate-800 border-slate-700 text-slate-100",children:s.jsxs(se,{onClick:B,disabled:z||S,className:a.createButton||"w-full !bg-slate-700 hover:!bg-slate-600 !text-slate-100 !border-slate-600",size:"sm",children:[s.jsx(V.Plus,{size:16,className:"mr-2"}),z?"Creating...":"New Conversation"]})}),s.jsx(qn,{className:`flex-1 ${a.threadList||""}`,style:{maxHeight:o},children:s.jsx("div",{className:"p-2 space-y-1 pb-4",children:S?s.jsx("div",{className:"text-center py-8 text-slate-400",children:"Loading…"}):w.length===0?s.jsxs("div",{className:"text-center py-8 text-slate-400",children:[s.jsx(V.MessageSquare,{className:"w-8 h-8 mx-auto mb-2 opacity-40 text-slate-500"}),s.jsx("p",{className:"text-sm text-slate-500",children:"No conversations yet"})]}):w.slice().sort((C,K)=>new Date(K.updatedAt||K.createdAt||"").getTime()-new Date(C.updatedAt||C.createdAt||"").getTime()).map(C=>s.jsxs("div",{onClick:()=>j(C.threadId),className:`group relative p-3 rounded-lg cursor-pointer transition-colors border ${(i??b)===C.threadId?`${a.activeThread||"bg-slate-600 border-slate-500"} `:`${a.threadItem||"bg-slate-700 border-slate-600 hover:bg-slate-600"}`} ${a.threadItem||""} text-slate-100`,children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("div",{className:"flex-1 min-w-0",children:k===C.threadId?s.jsxs("div",{className:"flex items-center gap-2",onClick:K=>K.stopPropagation(),children:[s.jsx(ft,{value:O,onChange:K=>$(K.target.value),onKeyDown:K=>ce(K,C.threadId),className:"h-6 text-sm",autoFocus:!0}),s.jsx(se,{variant:"ghost",size:"sm",onClick:()=>Z(C.threadId),className:"h-6 w-6 p-0",children:s.jsx(V.Check,{size:12})}),s.jsx(se,{variant:"ghost",size:"sm",onClick:q,className:"h-6 w-6 p-0",children:s.jsx(V.X,{size:12})})]}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"font-medium text-sm truncate text-slate-100",children:Y(C)}),s.jsxs("div",{className:"flex items-center gap-2 text-xs text-slate-400 mt-1",children:[s.jsx(V.Calendar,{size:10}),s.jsx("span",{children:de(C.updatedAt||C.createdAt)})]})]})}),s.jsxs("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity ml-2",children:[n&&k!==C.threadId&&s.jsx(se,{variant:"ghost",size:"sm",onClick:K=>M(C,K),className:"h-6 w-6 p-0",title:"Edit title",children:s.jsx(V.Edit3,{size:12})}),r&&s.jsx(se,{variant:"ghost",size:"sm",onClick:K=>W(C.threadId,K),className:"h-6 w-6 p-0 text-red-400 hover:text-red-300 hover:bg-red-900/20",title:"Delete thread",children:s.jsx(V.Trash2,{size:12})})]})]}),i===C.threadId&&s.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-1 h-8 bg-blue-400 rounded-r"})]},C.threadId))})})]})}const Zn=N.createContext(null);function uc({children:e,basePath:t="/chat"}){const r=N.useMemo(()=>t?t==="/"?"":t.endsWith("/")?t.slice(0,-1):t:"/chat",[t]),n={basePath:r,buildThreadPath:o=>`${r}/${o}`,buildBasePath:()=>r};return s.jsx(Zn.Provider,{value:n,children:e})}function fc(){const e=N.useContext(Zn);return e||{basePath:"/chat",buildThreadPath:t=>`/chat/${t}`,buildBasePath:()=>"/chat"}}const Er=768;function hc(){const[e,t]=l.useState(void 0);return l.useEffect(()=>{const r=window.matchMedia(`(max-width: ${Er-1}px)`),n=()=>{t(window.innerWidth<Er)};return r.addEventListener("change",n),t(window.innerWidth<Er),()=>r.removeEventListener("change",n)},[]),!!e}var pc="Separator",Qn="horizontal",gc=["horizontal","vertical"],Rn=l.forwardRef((e,t)=>{const{decorative:r,orientation:n=Qn,...o}=e,a=mc(n)?n:Qn,c=r?{role:"none"}:{"aria-orientation":a==="vertical"?a:void 0,role:"separator"};return s.jsx(te.div,{"data-orientation":a,...c,...o,ref:t})});Rn.displayName=pc;function mc(e){return gc.includes(e)}var eo=Rn;const Tr=l.forwardRef(({className:e,orientation:t="horizontal",decorative:r=!0,...n},o)=>s.jsx(eo,{ref:o,decorative:r,orientation:t,className:A("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...n}));Tr.displayName=eo.displayName;function vc(e,t=globalThis==null?void 0:globalThis.document){const r=ge(e);l.useEffect(()=>{const n=o=>{o.key==="Escape"&&r(o)};return t.addEventListener("keydown",n,{capture:!0}),()=>t.removeEventListener("keydown",n,{capture:!0})},[r,t])}var bc="DismissableLayer",Ar="dismissableLayer.update",wc="dismissableLayer.pointerDownOutside",yc="dismissableLayer.focusOutside",to,ro=l.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),It=l.forwardRef((e,t)=>{const{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:n,onPointerDownOutside:o,onFocusOutside:a,onInteractOutside:i,onDismiss:c,...d}=e,u=l.useContext(ro),[f,h]=l.useState(null),g=(f==null?void 0:f.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,m]=l.useState({}),y=ne(t,T=>h(T)),p=Array.from(u.layers),[b]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),v=p.indexOf(b),w=f?p.indexOf(f):-1,x=u.layersWithOutsidePointerEventsDisabled.size>0,S=w>=v,E=Cc(T=>{const k=T.target,D=[...u.branches].some(O=>O.contains(k));!S||D||(o==null||o(T),i==null||i(T),T.defaultPrevented||c==null||c())},g),I=Nc(T=>{const k=T.target;[...u.branches].some(O=>O.contains(k))||(a==null||a(T),i==null||i(T),T.defaultPrevented||c==null||c())},g);return vc(T=>{w===u.layers.size-1&&(n==null||n(T),!T.defaultPrevented&&c&&(T.preventDefault(),c()))},g),l.useEffect(()=>{if(f)return r&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(to=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(f)),u.layers.add(f),no(),()=>{r&&u.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=to)}},[f,g,r,u]),l.useEffect(()=>()=>{f&&(u.layers.delete(f),u.layersWithOutsidePointerEventsDisabled.delete(f),no())},[f,u]),l.useEffect(()=>{const T=()=>m({});return document.addEventListener(Ar,T),()=>document.removeEventListener(Ar,T)},[]),s.jsx(te.div,{...d,ref:y,style:{pointerEvents:x?S?"auto":"none":void 0,...e.style},onFocusCapture:ee(e.onFocusCapture,I.onFocusCapture),onBlurCapture:ee(e.onBlurCapture,I.onBlurCapture),onPointerDownCapture:ee(e.onPointerDownCapture,E.onPointerDownCapture)})});It.displayName=bc;var xc="DismissableLayerBranch",Sc=l.forwardRef((e,t)=>{const r=l.useContext(ro),n=l.useRef(null),o=ne(t,n);return l.useEffect(()=>{const a=n.current;if(a)return r.branches.add(a),()=>{r.branches.delete(a)}},[r.branches]),s.jsx(te.div,{...e,ref:o})});Sc.displayName=xc;function Cc(e,t=globalThis==null?void 0:globalThis.document){const r=ge(e),n=l.useRef(!1),o=l.useRef(()=>{});return l.useEffect(()=>{const a=c=>{if(c.target&&!n.current){let d=function(){oo(wc,r,u,{discrete:!0})};const u={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=d,t.addEventListener("click",o.current,{once:!0})):d()}else t.removeEventListener("click",o.current);n.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",a),t.removeEventListener("click",o.current)}},[t,r]),{onPointerDownCapture:()=>n.current=!0}}function Nc(e,t=globalThis==null?void 0:globalThis.document){const r=ge(e),n=l.useRef(!1);return l.useEffect(()=>{const o=a=>{a.target&&!n.current&&oo(yc,r,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,r]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}function no(){const e=new CustomEvent(Ar);document.dispatchEvent(e)}function oo(e,t,r,{discrete:n}){const o=r.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:r});t&&o.addEventListener(e,t,{once:!0}),n?Ei(o,a):o.dispatchEvent(a)}var Pr="focusScope.autoFocusOnMount",kr="focusScope.autoFocusOnUnmount",so={bubbles:!1,cancelable:!0},Ec="FocusScope",Ir=l.forwardRef((e,t)=>{const{loop:r=!1,trapped:n=!1,onMountAutoFocus:o,onUnmountAutoFocus:a,...i}=e,[c,d]=l.useState(null),u=ge(o),f=ge(a),h=l.useRef(null),g=ne(t,p=>d(p)),m=l.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;l.useEffect(()=>{if(n){let p=function(x){if(m.paused||!c)return;const S=x.target;c.contains(S)?h.current=S:Fe(h.current,{select:!0})},b=function(x){if(m.paused||!c)return;const S=x.relatedTarget;S!==null&&(c.contains(S)||Fe(h.current,{select:!0}))},v=function(x){if(document.activeElement===document.body)for(const E of x)E.removedNodes.length>0&&Fe(c)};document.addEventListener("focusin",p),document.addEventListener("focusout",b);const w=new MutationObserver(v);return c&&w.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",p),document.removeEventListener("focusout",b),w.disconnect()}}},[n,c,m.paused]),l.useEffect(()=>{if(c){co.add(m);const p=document.activeElement;if(!c.contains(p)){const v=new CustomEvent(Pr,so);c.addEventListener(Pr,u),c.dispatchEvent(v),v.defaultPrevented||(Tc(_c(ao(c)),{select:!0}),document.activeElement===p&&Fe(c))}return()=>{c.removeEventListener(Pr,u),setTimeout(()=>{const v=new CustomEvent(kr,so);c.addEventListener(kr,f),c.dispatchEvent(v),v.defaultPrevented||Fe(p??document.body,{select:!0}),c.removeEventListener(kr,f),co.remove(m)},0)}}},[c,u,f,m]);const y=l.useCallback(p=>{if(!r&&!n||m.paused)return;const b=p.key==="Tab"&&!p.altKey&&!p.ctrlKey&&!p.metaKey,v=document.activeElement;if(b&&v){const w=p.currentTarget,[x,S]=Ac(w);x&&S?!p.shiftKey&&v===S?(p.preventDefault(),r&&Fe(x,{select:!0})):p.shiftKey&&v===x&&(p.preventDefault(),r&&Fe(S,{select:!0})):v===w&&p.preventDefault()}},[r,n,m.paused]);return s.jsx(te.div,{tabIndex:-1,...i,ref:g,onKeyDown:y})});Ir.displayName=Ec;function Tc(e,{select:t=!1}={}){const r=document.activeElement;for(const n of e)if(Fe(n,{select:t}),document.activeElement!==r)return}function Ac(e){const t=ao(e),r=io(t,e),n=io(t.reverse(),e);return[r,n]}function ao(e){const t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:n=>{const o=n.tagName==="INPUT"&&n.type==="hidden";return n.disabled||n.hidden||o?NodeFilter.FILTER_SKIP:n.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function io(e,t){for(const r of e)if(!Pc(r,{upTo:t}))return r}function Pc(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function kc(e){return e instanceof HTMLInputElement&&"select"in e}function Fe(e,{select:t=!1}={}){if(e&&e.focus){const r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&kc(e)&&t&&e.select()}}var co=Ic();function Ic(){let e=[];return{add(t){const r=e[0];t!==r&&(r==null||r.pause()),e=lo(e,t),e.unshift(t)},remove(t){var r;e=lo(e,t),(r=e[0])==null||r.resume()}}}function lo(e,t){const r=[...e],n=r.indexOf(t);return n!==-1&&r.splice(n,1),r}function _c(e){return e.filter(t=>t.tagName!=="A")}var Oc="Portal",_r=l.forwardRef((e,t)=>{var c;const{container:r,...n}=e,[o,a]=l.useState(!1);ue(()=>a(!0),[]);const i=r||o&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return i?vn.createPortal(s.jsx(te.div,{...n,ref:t}),i):null});_r.displayName=Oc;var Or=0;function uo(){l.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??fo()),document.body.insertAdjacentElement("beforeend",e[1]??fo()),Or++,()=>{Or===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),Or--}},[])}function fo(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var Pe=function(){return Pe=Object.assign||function(t){for(var r,n=1,o=arguments.length;n<o;n++){r=arguments[n];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a])}return t},Pe.apply(this,arguments)};function ho(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]]);return r}function Mc(e,t,r){if(r||arguments.length===2)for(var n=0,o=t.length,a;n<o;n++)(a||!(n in t))&&(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))}typeof SuppressedError=="function"&&SuppressedError;var _t="right-scroll-bar-position",Ot="width-before-scroll-bar",Dc="with-scroll-bars-hidden",Lc="--removed-body-scroll-bar-size";function Mr(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function $c(e,t){var r=N.useState(function(){return{value:e,callback:t,facade:{get current(){return r.value},set current(n){var o=r.value;o!==n&&(r.value=n,r.callback(n,o))}}}})[0];return r.callback=t,r.facade}var Fc=typeof window<"u"?l.useLayoutEffect:l.useEffect,po=new WeakMap;function Bc(e,t){var r=$c(null,function(n){return e.forEach(function(o){return Mr(o,n)})});return Fc(function(){var n=po.get(r);if(n){var o=new Set(n),a=new Set(e),i=r.current;o.forEach(function(c){a.has(c)||Mr(c,null)}),a.forEach(function(c){o.has(c)||Mr(c,i)})}po.set(r,e)},[e]),r}function zc(e){return e}function Wc(e,t){t===void 0&&(t=zc);var r=[],n=!1,o={read:function(){if(n)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:e},useMedium:function(a){var i=t(a,n);return r.push(i),function(){r=r.filter(function(c){return c!==i})}},assignSyncMedium:function(a){for(n=!0;r.length;){var i=r;r=[],i.forEach(a)}r={push:function(c){return a(c)},filter:function(){return r}}},assignMedium:function(a){n=!0;var i=[];if(r.length){var c=r;r=[],c.forEach(a),i=r}var d=function(){var f=i;i=[],f.forEach(a)},u=function(){return Promise.resolve().then(d)};u(),r={push:function(f){i.push(f),u()},filter:function(f){return i=i.filter(f),r}}}};return o}function Hc(e){e===void 0&&(e={});var t=Wc(null);return t.options=Pe({async:!0,ssr:!1},e),t}var go=function(e){var t=e.sideCar,r=ho(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var n=t.read();if(!n)throw new Error("Sidecar medium not found");return l.createElement(n,Pe({},r))};go.isSideCarExport=!0;function Uc(e,t){return e.useMedium(t),go}var mo=Hc(),Dr=function(){},Mt=l.forwardRef(function(e,t){var r=l.useRef(null),n=l.useState({onScrollCapture:Dr,onWheelCapture:Dr,onTouchMoveCapture:Dr}),o=n[0],a=n[1],i=e.forwardProps,c=e.children,d=e.className,u=e.removeScrollBar,f=e.enabled,h=e.shards,g=e.sideCar,m=e.noRelative,y=e.noIsolation,p=e.inert,b=e.allowPinchZoom,v=e.as,w=v===void 0?"div":v,x=e.gapMode,S=ho(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),E=g,I=Bc([r,t]),T=Pe(Pe({},S),o);return l.createElement(l.Fragment,null,f&&l.createElement(E,{sideCar:mo,removeScrollBar:u,shards:h,noRelative:m,noIsolation:y,inert:p,setCallbacks:a,allowPinchZoom:!!b,lockRef:r,gapMode:x}),i?l.cloneElement(l.Children.only(c),Pe(Pe({},T),{ref:I})):l.createElement(w,Pe({},T,{className:d,ref:I}),c))});Mt.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},Mt.classNames={fullWidth:Ot,zeroRight:_t};var Vc=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function jc(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=Vc();return t&&e.setAttribute("nonce",t),e}function Kc(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Gc(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var Yc=function(){var e=0,t=null;return{add:function(r){e==0&&(t=jc())&&(Kc(t,r),Gc(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Xc=function(){var e=Yc();return function(t,r){l.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}},vo=function(){var e=Xc(),t=function(r){var n=r.styles,o=r.dynamic;return e(n,o),null};return t},qc={left:0,top:0,right:0,gap:0},Lr=function(e){return parseInt(e||"",10)||0},Jc=function(e){var t=window.getComputedStyle(document.body),r=t[e==="padding"?"paddingLeft":"marginLeft"],n=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[Lr(r),Lr(n),Lr(o)]},Zc=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return qc;var t=Jc(e),r=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-r+t[2]-t[0])}},Qc=vo(),Ze="data-scroll-locked",Rc=function(e,t,r,n){var o=e.left,a=e.top,i=e.right,c=e.gap;return r===void 0&&(r="margin"),`
|
|
14
14
|
.`.concat(Dc,` {
|
|
15
15
|
overflow: hidden `).concat(n,`;
|
|
16
16
|
padding-right: `).concat(c,"px ").concat(n,`;
|
package/package.json
CHANGED