@sunpix/claude-code-web
Version:
A web-based interface for interacting with Claude Code CLI
2 lines (1 loc) • 24.7 kB
JavaScript
import{e,y as t,o as a,w as s,D as r,H as o,f as n,I as l,r as i,b as d,m as u,N as p,O as c,j as f,B as m,a1 as y,h as g,x as h,g as v,s as b,i as _,c as q,F as k,k as w,a as x,l as B,n as O,t as P,d as C,J as S,a2 as j}from"./sqhd64MX.js";import{u as I,_ as D,P as F}from"./Cp9jViau.js";import{u as A}from"./B_x75UOw.js";import{_ as N}from"./BUVWPSyF.js";import{P as $,e as E,f as z,n as M,k as T,G as L,g as R,p as W,D as K,o as U,F as V,q as H,j as G,s as J,u as Z,i as Q,T as X,A as Y,a as ee,r as te,c as ae,C as se}from"./BonREZMq.js";import{C as re,A as oe,_ as ne,b as le,c as ie,a as de,V as ue,d as pe}from"./2z2a5tpS.js";import{_ as ce}from"./BJafeeJo.js";import{_ as fe}from"./BCo6x5W8.js";var me=e({__name:"MenuSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const l=e;return(e,i)=>(a(),t(n($),o(l,{role:"separator","aria-orientation":"horizontal"}),{default:s(()=>[r(e.$slots,"default")]),_:3},16))}});const[ye,ge]=E("PopoverRoot");var he=e({__name:"PopoverRoot",props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},modal:{type:Boolean,required:!1,default:!1}},emits:["update:open"],setup(e,{emit:o}){const d=e,u=o,{modal:p}=l(d),c=z(d,"open",u,{defaultValue:d.defaultOpen,passive:void 0===d.open}),f=i(),m=i(!1);return ge({contentId:"",triggerId:"",modal:p,open:c,onOpenChange:e=>{c.value=e},onOpenToggle:()=>{c.value=!c.value},triggerElement:f,hasCustomAnchor:m}),(e,o)=>(a(),t(n(M),null,{default:s(()=>[r(e.$slots,"default",{open:n(c),close:()=>c.value=!1})]),_:3}))}}),ve=e({__name:"PopoverContentImpl",props:{trapFocus:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:l}){const i=l,u=T(L(e,"trapFocus","disableOutsidePointerEvents")),{forwardRef:p}=R(),c=ye();return W(),(e,l)=>(a(),t(n(V),{"as-child":"",loop:"",trapped:e.trapFocus,onMountAutoFocus:l[5]||(l[5]=e=>i("openAutoFocus",e)),onUnmountAutoFocus:l[6]||(l[6]=e=>i("closeAutoFocus",e))},{default:s(()=>[d(n(K),{"as-child":"","disable-outside-pointer-events":e.disableOutsidePointerEvents,onPointerDownOutside:l[0]||(l[0]=e=>i("pointerDownOutside",e)),onInteractOutside:l[1]||(l[1]=e=>i("interactOutside",e)),onEscapeKeyDown:l[2]||(l[2]=e=>i("escapeKeyDown",e)),onFocusOutside:l[3]||(l[3]=e=>i("focusOutside",e)),onDismiss:l[4]||(l[4]=e=>n(c).onOpenChange(!1))},{default:s(()=>[d(n(U),o(n(u),{id:n(c).contentId,ref:n(p),"data-state":n(c).open.value?"open":"closed","aria-labelledby":n(c).triggerId,style:{"--reka-popover-content-transform-origin":"var(--reka-popper-transform-origin)","--reka-popover-content-available-width":"var(--reka-popper-available-width)","--reka-popover-content-available-height":"var(--reka-popper-available-height)","--reka-popover-trigger-width":"var(--reka-popper-anchor-width)","--reka-popover-trigger-height":"var(--reka-popper-anchor-height)"},role:"dialog"}),{default:s(()=>[r(e.$slots,"default")]),_:3},16,["id","data-state","aria-labelledby"])]),_:3},8,["disable-outside-pointer-events"])]),_:3},8,["trapped"]))}}),be=e({__name:"PopoverContentModal",props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:l}){const d=e,p=l,c=ye(),f=i(!1);H(!0);const m=G(d,p),{forwardRef:y,currentElement:g}=R();return J(g),(e,l)=>(a(),t(ve,o(n(m),{ref:n(y),"trap-focus":n(c).open.value,"disable-outside-pointer-events":"",onCloseAutoFocus:l[0]||(l[0]=u(e=>{p("closeAutoFocus",e),f.value||n(c).triggerElement.value?.focus()},["prevent"])),onPointerDownOutside:l[1]||(l[1]=e=>{p("pointerDownOutside",e);const t=e.detail.originalEvent,a=0===t.button&&!0===t.ctrlKey,s=2===t.button||a;f.value=s}),onFocusOutside:l[2]||(l[2]=u(()=>{},["prevent"]))}),{default:s(()=>[r(e.$slots,"default")]),_:3},16,["trap-focus"]))}}),_e=e({__name:"PopoverContentNonModal",props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:l}){const d=e,u=l,p=ye(),c=i(!1),f=i(!1),m=G(d,u);return(e,l)=>(a(),t(ve,o(n(m),{"trap-focus":!1,"disable-outside-pointer-events":!1,onCloseAutoFocus:l[0]||(l[0]=e=>{u("closeAutoFocus",e),e.defaultPrevented||(c.value||n(p).triggerElement.value?.focus(),e.preventDefault()),c.value=!1,f.value=!1}),onInteractOutside:l[1]||(l[1]=async e=>{u("interactOutside",e),e.defaultPrevented||(c.value=!0,"pointerdown"===e.detail.originalEvent.type&&(f.value=!0));const t=e.target,a=n(p).triggerElement.value?.contains(t);a&&e.preventDefault(),"focusin"===e.detail.originalEvent.type&&f.value&&e.preventDefault()})}),{default:s(()=>[r(e.$slots,"default")]),_:3},16))}}),qe=e({__name:"PopoverContent",props:{forceMount:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},disableOutsidePointerEvents:{type:Boolean,required:!1}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:l}){const i=e,d=l,u=ye(),p=G(i,d),{forwardRef:c}=R();return u.contentId||=Z(void 0,"reka-popover-content"),(e,l)=>(a(),t(n(Q),{present:e.forceMount||n(u).open.value},{default:s(()=>[n(u).modal.value?(a(),t(be,o({key:0},n(p),{ref:n(c)}),{default:s(()=>[r(e.$slots,"default")]),_:3},16)):(a(),t(_e,o({key:1},n(p),{ref:n(c)}),{default:s(()=>[r(e.$slots,"default")]),_:3},16))]),_:3},8,["present"]))}}),ke=e({__name:"PopoverPortal",props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){const o=e;return(e,l)=>(a(),t(n(X),p(c(o)),{default:s(()=>[r(e.$slots,"default")]),_:3},16))}}),we=e({__name:"PopoverTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(e){const o=e,l=ye(),{forwardRef:i,currentElement:u}=R();return l.triggerId||=Z(void 0,"reka-popover-trigger"),f(()=>{l.triggerElement.value=u.value}),(e,u)=>(a(),t(m(n(l).hasCustomAnchor.value?n($):n(Y)),{"as-child":""},{default:s(()=>[d(n($),{id:n(l).triggerId,ref:n(i),type:"button"===e.as?"button":void 0,"aria-haspopup":"dialog","aria-expanded":n(l).open.value,"aria-controls":n(l).contentId,"data-state":n(l).open.value?"open":"closed",as:e.as,"as-child":o.asChild,onClick:n(l).onOpenToggle},{default:s(()=>[r(e.$slots,"default")]),_:3},8,["id","type","aria-expanded","aria-controls","data-state","as","as-child","onClick"])]),_:3}))}}),xe=e({__name:"DropdownMenuSeparator",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){const o=e;return R(),(e,l)=>(a(),t(n(me),p(c(o)),{default:s(()=>[r(e.$slots,"default")]),_:3},16))}});const Be=ee("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),Oe=ee("list-todo",[["rect",{x:"3",y:"5",width:"6",height:"6",rx:"1",key:"1defrl"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]),Pe=ee("message-square",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]),Ce=ee("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),Se=ee("settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),je=e({__name:"DropdownMenuSeparator",props:{asChild:{type:Boolean},as:{},class:{}},setup(e){const s=e,r=te(s,"class");return(e,l)=>(a(),t(n(xe),o({"data-slot":"dropdown-menu-separator"},n(r),{class:n(ae)("bg-border -mx-1 my-1 h-px",s.class)}),null,16,["class"]))}}),Ie=y("/logo.svg"),De={style:{width:"var(--sidebar-width)"},class:"h-full flex flex-col"},Fe={class:"p-3"},Ae={class:"flex-1 overflow-y-auto p-3"},Ne={class:"space-y-1"},$e={class:"flex-1 text-left truncate text-sm opacity-0 on-sidebar:opacity-100"},Ee={key:0,class:"ml-2 flex flex-col items-start"},ze={key:2,class:"w-full overflow-y-auto max-h-[195px]"},Me={class:"flex-1 text-left truncate"},Te={class:"text-sm text-muted-foreground min-w-5 text-right"},Le={class:"p-2"},Re=e({__name:"SimpleSidebar",setup(e){const{isOpen:r,isMobile:o,sidebarWidth:l,close:u}=I(),p=g(),c=h(),m=v(),y=b(),j=i(new Set),A=_(()=>y.params.projectId||c.currentProjectId),$=e=>p.projectSessions[e]||[];function E(e){o.value||r.value?j.value.has(e.name)?j.value.delete(e.name):(j.value.add(e.name),p.selectProject(e),p.loadSessions(e.name,!0)):function(e){m.push(`/chat/${e.name}`),o.value&&u()}(e)}function z(){m.push("/settings"),o.value&&u()}return f(()=>{A.value&&(j.value.add(A.value),p.loadSessions(A.value,!0))}),(e,i)=>{const f=N,y=D;return a(),q(k,null,[n(o)&&n(r)?(a(),q("div",{key:0,class:"fixed inset-0 bg-black/50 z-40 transition-opacity duration-300",onClick:i[0]||(i[0]=(...e)=>n(u)&&n(u)(...e))})):w("",!0),x("aside",{class:O(["fixed top-0 left-0 h-full bg-sidebar border-r border-sidebar-border z-50 transition-all duration-300 overflow-hidden",{"-translate-x-full":n(o)&&!n(r),"translate-x-0":!n(o)||n(r)}]),style:S({width:n(l)})},[x("div",De,[i[8]||(i[8]=x("div",{class:"pt-safe"},null,-1)),x("div",Fe,[d(f,{to:"/",onClick:i[1]||(i[1]=e=>(m.push("/"),void(o.value&&u()))),class:"flex items-center gap-2"},{default:s(()=>i[2]||(i[2]=[x("div",{class:"w-8 h-8 rounded-lg bg-sidebar-accent flex items-center justify-center"},[x("img",{src:Ie,alt:"Logo",class:"dark:invert"})],-1),x("div",{class:"flex-1 opacity-0 on-sidebar:opacity-100"},[x("h2",{class:"font-semibold text-sm"},"Claude Code"),x("p",{class:"text-xs text-muted-foreground"},"Web UI")],-1)])),_:1,__:[2]})]),x("div",Ae,[x("nav",Ne,[i[6]||(i[6]=x("div",{class:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2 opacity-0 on-sidebar:opacity-100"}," Projects ",-1)),(a(!0),q(k,null,B(n(p).projects,e=>(a(),q("div",{key:e.name,class:"space-y-1 -mx-2"},[d(y,{variant:"ghost",onClick:t=>E(e),class:O(["w-full flex items-center gap-2 px-2 py-1.5 rounded-md hover:bg-sidebar-accent transition-colors"]),title:e.displayName},{default:s(()=>[d(n(Be),{class:"w-4 h-4 flex-shrink-0"}),x("span",$e,P(e.displayName),1),n(o)||n(r)?(a(),t(n(re),{key:0,class:O(["w-3 h-3 transition-transform duration-200",{"rotate-90":j.value.has(e.name)}])},null,8,["class"])):w("",!0)]),_:2},1032,["onClick","title"]),(n(o)||n(r))&&j.value.has(e.name)?(a(),q("div",Ee,[d(y,{variant:"ghost",onClick:t=>{return a=e.name,m.push(`/chat/${a}`),void(o.value&&u());var a},class:"text-xs !py-0 h-7 w-full justify-start"},{default:s(()=>[d(n(F),{class:"w-4 h-4"}),i[3]||(i[3]=x("span",null,"New chat",-1))]),_:2,__:[3]},1032,["onClick"]),!n(p).loadingSessions||$(e.name)&&0!==$(e.name).length?$(e.name)&&0!==$(e.name).length?(a(),q("div",ze,[(a(!0),q(k,null,B($(e.name),r=>(a(),t(y,{variant:"ghost",key:r.id,onClick:t=>function(e,t){m.push(`/chat/${e}/${t.id}`),o.value&&u()}(e.name,r),class:O(["text-xs !py-0 h-7 w-full",{"bg-sidebar-accent":n(c).currentProjectId===e.name&&n(c).currentSessionId===r.id}])},{default:s(()=>[d(n(Pe),{class:"w-4 h-4 flex-shrink-0"}),x("span",Me,P(r.summary),1),x("span",Te,P(r.messageCount),1)]),_:2},1032,["onClick","class"]))),128))])):(a(),t(y,{key:1,variant:"ghost",class:"text-xs text-muted-foreground !py-0 h-7 w-full"},{default:s(()=>i[5]||(i[5]=[C(" No sessions found ")])),_:1,__:[5]})):(a(),t(y,{key:0,variant:"ghost",class:"text-xs text-muted-foreground !py-0 h-7 w-full"},{default:s(()=>i[4]||(i[4]=[C(" Loading sessions... ")])),_:1,__:[4]}))])):w("",!0)]))),128))])]),x("div",Le,[d(y,{onClick:z,variant:"ghost",class:O(["w-full flex items-center gap-2 px-2 py-1.5 rounded-md hover:bg-sidebar-accent transition-colors justify-start"])},{default:s(()=>[d(n(Se),{class:"w-4 h-4 flex-shrink-0"}),i[7]||(i[7]=x("span",{class:"text-sm opacity-0 on-sidebar:opacity-100"},"Settings",-1))]),_:1,__:[7]})]),i[9]||(i[9]=x("div",{class:"pb-safe"},null,-1))])],6)],64)}}}),We=Object.assign(Re,{__name:"SimpleSidebar"}),Ke=e({__name:"Popover",props:{defaultOpen:{type:Boolean},open:{type:Boolean},modal:{type:Boolean}},emits:["update:open"],setup(e,{emit:l}){const i=G(e,l);return(e,l)=>(a(),t(n(he),o({"data-slot":"popover"},n(i)),{default:s(()=>[r(e.$slots,"default")]),_:3},16))}}),Ue=e({inheritAttrs:!1,__name:"PopoverContent",props:{forceMount:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{default:"center"},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{}},emits:["escapeKeyDown","pointerDownOutside","focusOutside","interactOutside","openAutoFocus","closeAutoFocus"],setup(e,{emit:l}){const i=e,u=l,p=te(i,"class"),c=G(p,u);return(e,l)=>(a(),t(n(ke),null,{default:s(()=>[d(n(qe),o({"data-slot":"popover-content"},{...n(c),...e.$attrs},{class:n(ae)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md origin-(--reka-popover-content-transform-origin) outline-hidden",i.class)}),{default:s(()=>[r(e.$slots,"default")]),_:3},16,["class"])]),_:3}))}}),Ve=e({__name:"PopoverTrigger",props:{asChild:{type:Boolean},as:{}},setup(e){const l=e;return(e,i)=>(a(),t(n(we),o({"data-slot":"popover-trigger"},l),{default:s(()=>[r(e.$slots,"default")]),_:3},16))}}),He={key:0,class:"absolute -top-1 -right-1 h-4 w-4 rounded-full bg-primary text-primary-foreground text-xs flex items-center justify-center"},Ge={class:"p-4 border-b"},Je={class:"text-sm text-muted-foreground"},Ze={class:"max-h-96 overflow-y-auto"},Qe={key:0,class:"p-4 text-center text-muted-foreground"},Xe={key:1,class:"p-4"},Ye={class:"bg-background rounded-lg border p-3"},et={class:"space-y-2"},tt={class:"text-sm"},at=e({__name:"TodoIcon",setup(e){const r=h(),o=_(()=>{const e=[];return r.messages.forEach(t=>{t.content&&Array.isArray(t.content)&&t.content.forEach(t=>{if("tool_use"===t.type&&"TodoWrite"===t.name&&t.input?.todos){t.input.todos.forEach(t=>{const a=e.findIndex(e=>e.id===t.id);-1!==a?e[a]=t:e.push(t)})}})}),e}),l=e=>{switch(e){case"completed":return"bg-green-500 border-green-500";case"in_progress":return"bg-blue-500 border-blue-500";default:return"bg-transparent border-gray-300 dark:border-gray-600"}};return(e,r)=>(a(),t(n(Ke),null,{default:s(()=>[d(n(Ve),{"as-child":""},{default:s(()=>[d(n(D),{size:"icon",variant:"ghost",class:"h-8 w-8 relative","aria-label":`${o.value.length} todo items`},{default:s(()=>[d(n(Oe),{class:"h-4 w-4"}),o.value.length>0?(a(),q("span",He,P(o.value.length),1)):w("",!0)]),_:1},8,["aria-label"])]),_:1}),d(n(Ue),{class:"w-96 p-0",align:"end"},{default:s(()=>[x("div",Ge,[r[0]||(r[0]=x("h3",{class:"font-semibold"},"Todo Items",-1)),x("p",Je,P(o.value.length)+" "+P(1===o.value.length?"item":"items"),1)]),x("div",Ze,[0===o.value.length?(a(),q("div",Qe," No todo items yet ")):(a(),q("div",Xe,[x("div",Ye,[x("ul",et,[(a(!0),q(k,null,B(o.value,e=>(a(),q("li",{key:e.id,class:"flex items-start gap-2"},[x("div",{class:O(["mt-0.5 w-4 h-4 rounded-sm border flex items-center justify-center shrink-0",l(e.status)])},["completed"===e.status?(a(),t(n(se),{key:0,class:"w-3 h-3 text-white"})):w("",!0),"in_progress"===e.status?(a(),t(n(oe),{key:1,class:"w-3 h-3 text-white"})):w("",!0)],2),x("div",tt,P(e.content),1)]))),128))])])]))])]),_:1})]),_:1}))}}),st=Object.assign(at,{__name:"TodoIcon"}),rt=e({__name:"Breadcrumb",props:{class:{}},setup(e){const t=e;return(e,s)=>(a(),q("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",class:O(t.class)},[r(e.$slots,"default")],2))}}),ot=e({__name:"BreadcrumbItem",props:{class:{}},setup(e){const t=e;return(e,s)=>(a(),q("li",{"data-slot":"breadcrumb-item",class:O(n(ae)("inline-flex items-center gap-1.5",t.class))},[r(e.$slots,"default")],2))}}),nt=e({__name:"BreadcrumbLink",props:{asChild:{type:Boolean},as:{default:"a"},class:{}},setup(e){const o=e;return(e,l)=>(a(),t(n($),{"data-slot":"breadcrumb-link",as:e.as,"as-child":e.asChild,class:O(n(ae)("hover:text-foreground transition-colors cursor-pointer",o.class))},{default:s(()=>[r(e.$slots,"default")]),_:3},8,["as","as-child","class"]))}}),lt=e({__name:"BreadcrumbList",props:{class:{}},setup(e){const t=e;return(e,s)=>(a(),q("ol",{"data-slot":"breadcrumb-list",class:O(n(ae)("text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",t.class))},[r(e.$slots,"default")],2))}}),it=e({__name:"BreadcrumbPage",props:{class:{}},setup(e){const t=e;return(e,s)=>(a(),q("span",{"data-slot":"breadcrumb-page",role:"link","aria-disabled":"true","aria-current":"page",class:O(n(ae)("text-foreground font-normal",t.class))},[r(e.$slots,"default")],2))}}),dt=e({__name:"BreadcrumbSeparator",props:{class:{}},setup(e){const t=e;return(e,s)=>(a(),q("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",class:O(n(ae)("[&>svg]:size-3.5",t.class))},[r(e.$slots,"default",{},()=>[d(n(re))])],2))}}),ut={class:"main-content on-sidebar:ml"},pt={class:"header fixed-header pt-safe on-sidebar:ml"},ct={class:"flex items-center gap-2 px-4 min-w-0 flex-1"},ft={key:2,class:"truncate block"},mt={class:"main-area"},yt=fe(e({__name:"default",setup(e){const{toggle:o,isOpen:l}=I(),p=h(),c=A(),f=v(),m=b(),y=i(!1),g=i(0);j("isDragOver",y);const S=_(()=>{switch(m.name){case"chat-projectId-sessionId":return p.currentSessionId?null:"New Chat";case"chat-projectId":return"New Chat";case"chat-projectId-settings":return"Project Settings";case"settings":return"Settings";default:return null}}),F=_(()=>{const e=[];return p.currentProjectDisplayName&&e.push({id:"project",name:p.currentProjectDisplayName,type:"link",route:{name:"chat-projectId",params:{projectId:p.currentProjectId}},classes:"min-w-0"}),p.currentSessionSummary&&e.push({id:"session",name:p.currentSessionSummary,type:"page",classes:"min-w-0"}),S.value&&e.push({id:"page",name:S.value,type:"page",classes:"flex-shrink-0"}),e}),N=e=>{if(g.value++,e.dataTransfer?.items){Array.from(e.dataTransfer.items).some(e=>"file"===e.kind)&&(y.value=!0)}},$=e=>{e.dataTransfer&&(e.dataTransfer.dropEffect="copy")},E=e=>{g.value--,0===g.value&&(y.value=!1)},z=e=>{if(y.value=!1,g.value=0,e.dataTransfer?.files&&e.dataTransfer.files.length>0){const t=Array.from(e.dataTransfer.files).filter(e=>e.type.startsWith("image/"));t.length>0&&window.dispatchEvent(new CustomEvent("global-files-dropped",{detail:{files:t}}))}};return(e,i)=>(a(),q("div",{class:O(["app-wrapper p-safe",{"sidebar-open":n(l)}]),onDragenter:u(N,["prevent"]),onDragover:u($,["prevent"]),onDragleave:u(E,["prevent"]),onDrop:u(z,["prevent"])},[d(We),x("div",ut,[x("header",pt,[x("div",ct,[d(n(D),{onClick:n(o),variant:"ghost",size:"sm",class:"-ml-1 h-7 w-7 p-0 hover:bg-accent rounded-md transition-colors inline-flex items-center justify-center","aria-label":"Toggle sidebar"},{default:s(()=>[d(n(Ce),{class:"w-4 h-4"})]),_:1},8,["onClick"]),d(n(ce),{orientation:"vertical",class:"mr-2 h-4"}),d(n(rt),{class:"flex-1 min-w-0"},{default:s(()=>[d(n(lt),{class:"!flex-nowrap overflow-hidden"},{default:s(()=>[(a(!0),q(k,null,B(F.value,(e,r)=>(a(),q(k,{key:e.id},[r>0?(a(),t(n(dt),{key:0,class:"flex-shrink-0"})):w("",!0),d(n(ot),{class:O(e.classes)},{default:s(()=>["link"===e.type&&e.route?(a(),t(n(nt),{key:0,onClick:t=>n(f).push(e.route),class:"truncate block cursor-pointer"},{default:s(()=>[C(P(e.name),1)]),_:2},1032,["onClick"])):"page"===e.type?(a(),t(n(it),{key:1,class:"truncate block"},{default:s(()=>[C(P(e.name),1)]),_:2},1024)):(a(),q("span",ft,P(e.name),1))]),_:2},1032,["class"])],64))),128))]),_:1})]),_:1}),d(st),!n(p).currentProjectId||"chat-projectId"!==n(m).name&&"chat-projectId-sessionId"!==n(m).name?w("",!0):(a(),t(n(pe),{key:0},{default:s(()=>[d(n(ne),{asChild:""},{default:s(()=>[d(n(D),{variant:"ghost",size:"sm",class:"flex-shrink-0"},{default:s(()=>[d(n(Se),{class:"w-4 h-4"})]),_:1})]),_:1}),d(n(le),{align:"end"},{default:s(()=>[d(n(ie),{onClick:i[0]||(i[0]=e=>n(f).push({name:"chat-projectId-settings",params:{projectId:n(p).currentProjectId}}))},{default:s(()=>i[2]||(i[2]=[C(" Project Settings ")])),_:1,__:[2]}),d(n(je)),d(n(ie),{onClick:i[1]||(i[1]=e=>n(c).setTtsAutoRead(!n(c).ttsAutoRead))},{default:s(()=>[n(c).ttsAutoRead?(a(),t(n(de),{key:0,class:"w-4 h-4 mr-2"})):(a(),t(n(ue),{key:1,class:"w-4 h-4 mr-2"})),i[3]||(i[3]=x("span",null,"Auto-read messages",-1))]),_:1,__:[3]})]),_:1})]),_:1}))])]),x("main",mt,[r(e.$slots,"default",{},void 0,!0)])])],34))}}),[["__scopeId","data-v-d07da7ae"]]);export{yt as default};