import{_ as j,c as y,a as t,b as u,d as E,n as x,t as r,u as B,s as w,o as l,e as S,r as p,F as R,f as T,g as V,h as C,i as N,j as A,k as I,l as M,w as P}from"./index-k1IBxX4P.js";import{L as q,s as F,g as D,a as H,b as O,c as Z}from"./LoadingState-DpzKHwwk.js";import{s as z}from"./index-DD4ytruD.js";const Q={class:"text-center px-6 py-12 md:px-6 md:py-12 max-md:px-4 max-md:py-8 flex flex-col items-center gap-3 empty-state"},$={class:"m-0 text-xl font-semibold md:text-xl max-md:text-lg empty-state-title"},G={class:"m-0 text-sm max-w-sm md:text-sm max-md:text-sm empty-state-text"},J={__name:"EmptyState",props:{icon:{type:String,required:!0,validator:e=>e.includes("pi-")},title:{type:String,required:!0},message:{type:String,default:"No items configured"},actionText:{type:String,default:null},actionIcon:{type:String,default:null,validator:e=>!e||e.includes("pi-")}},emits:{action:null},setup(e,{emit:s}){const m=s;return(a,i)=>(l(),y("div",Q,[t("i",{class:x([e.icon,"text-6xl opacity-30 md:text-6xl max-md:text-5xl empty-state-icon"])},null,2),t("h3",$,r(e.title),1),t("p",G,r(e.message),1),e.actionText?(l(),u(B(w),{key:0,onClick:i[0]||(i[0]=f=>m("action")),label:e.actionText,icon:e.actionIcon,class:"mt-2 px-5 py-2.5 rounded cursor-pointer text-sm font-medium inline-flex items-center gap-2 transition-colors duration-200 text-white action-btn"},null,8,["label","icon"])):E("",!0)]))}},K=j(J,[["__scopeId","data-v-14fe01fc"]]),W={class:"error-state"},X={__name:"ErrorState",props:{icon:{type:String,default:"pi pi-exclamation-triangle",validator:e=>e.includes("pi-")},title:{type:String,required:!0},message:{type:String,required:!0},retryText:{type:String,default:null},retryIcon:{type:String,default:"pi pi-refresh",validator:e=>!e||e.includes("pi-")}},emits:{retry:null},setup(e,{emit:s}){const m=s;return(a,i)=>(l(),y("div",W,[t("i",{class:x(e.icon)},null,2),t("h3",null,r(e.title),1),t("p",null,r(e.message),1),e.retryText?(l(),u(B(w),{key:0,onClick:i[0]||(i[0]=f=>m("retry")),label:e.retryText,icon:e.retryIcon,severity:"danger",class:"retry-btn"},null,8,["label","icon"])):E("",!0)]))}},Y=j(X,[["__scopeId","data-v-8c78fd5e"]]),tt={name:"Dashboard",components:{Button:w,Card:F,Select:z,LoadingState:q,EmptyState:K,ErrorState:Y},setup(){const e=M(),s=V(),m=C("name-asc"),a=C(!1),i=C(null),f=[{label:"Name (A-Z)",value:"name-asc"},{label:"Name (Z-A)",value:"name-desc"},{label:"Most Agents",value:"agents"},{label:"Most Commands",value:"commands"}],g=async()=>{try{const[o,c,d,L]=await Promise.all([D(),H(),O(),Z()]),U={agents:o.agents?.length||0,commands:c.commands?.length||0,hooks:d.hooks?.length||0,mcp:L.mcp?.length||0};i.value={id:"user",name:"User Configurations",path:"~/.claude",stats:U,isUser:!0}}catch(o){console.error("Failed to load user config:",o)}},h=N(()=>{let o=[...s.filteredProjects||[]];switch(m.value){case"name-asc":o.sort((c,d)=>c.name.localeCompare(d.name));break;case"name-desc":o.sort((c,d)=>d.name.localeCompare(c.name));break;case"agents":o.sort((c,d)=>(d.stats?.agents||0)-(c.stats?.agents||0));break;case"commands":o.sort((c,d)=>(d.stats?.commands||0)-(c.stats?.commands||0));break}return i.value&&o.unshift(i.value),o}),v=async()=>{await s.loadProjects(),await g()},b=async()=>{a.value=!0;try{await s.refreshProjects(),await g()}catch(o){console.error("Rescan failed:",o)}finally{a.value=!1}},k=o=>{o==="user"?e.push("/user"):e.push(`/project/${o}`)},_=o=>{s.setSearchQuery(o.detail)};return A(async()=>{s.projects.length?await g():await v(),window.addEventListener("header-search",_)}),I(()=>{window.removeEventListener("header-search",_)}),{projectsStore:s,sortBy:m,sortOptions:f,scanning:a,sortedProjects:h,loadProjects:v,handleRescan:b,navigateToProject:k,projectCardPt:{root:{class:"project-card-root",style:{overflow:"hidden"}},header:{class:"project-card-header",style:{padding:"0",backgroundColor:"transparent",border:"none"}},body:{class:"project-card-body",style:{padding:"0"}},content:{class:"project-card-content",style:{padding:"1.5rem"}}}}}},et={class:"w-full"},st={class:"p-4 md:p-8"},at={class:"max-w-7xl mx-auto"},ot={class:"flex justify-between items-center mb-6 flex-wrap gap-4 md:flex-row flex-col md:items-center items-stretch"},nt={class:"flex gap-3 items-center md:flex-row flex-col"},rt={key:3,class:"grid gap-5 grid-cols-[repeat(auto-fill,minmax(320px,1fr))]"},lt={class:"project-header"},it={class:"project-name"},ct={class:"project-path"},dt={class:"project-stats"},mt={class:"stat stat-agents"},pt={class:"stat stat-commands"},ut={class:"stat stat-hooks"},gt={class:"stat stat-mcp"},yt={class:"stat stat-skills"},xt={class:"project-footer"};function ft(e,s,m,a,i,f){const g=p("Select"),h=p("Button"),v=p("LoadingState"),b=p("ErrorState"),k=p("EmptyState"),_=p("Card");return l(),y("div",et,[t("div",st,[t("div",at,[t("div",ot,[s[1]||(s[1]=t("h2",{class:"m-0 text-[1.75rem] text-text-primary"},"Projects",-1)),t("div",nt,[S(g,{modelValue:a.sortBy,"onUpdate:modelValue":s[0]||(s[0]=n=>a.sortBy=n),options:a.sortOptions,optionLabel:"label",optionValue:"value",placeholder:"Sort by...",class:"min-w-[200px]"},null,8,["modelValue","options"]),S(h,{onClick:a.handleRescan,disabled:a.scanning,label:a.scanning?"Scanning...":"Rescan",icon:"pi pi-refresh",class:x({"animate-spin-icon":a.scanning})},null,8,["onClick","disabled","label","class"])])]),a.projectsStore.isLoading?(l(),u(v,{key:0,message:"Loading projects..."})):a.projectsStore.error?(l(),u(b,{key:1,title:"Error Loading Projects",message:a.projectsStore.error,retryText:"Retry",onRetry:a.loadProjects},null,8,["message","onRetry"])):a.sortedProjects.length===0?(l(),u(k,{key:2,icon:"pi pi-folder",title:"No Projects Found",message:"Add projects in Claude Code and click 'Rescan' to see them here."})):(l(),y("div",rt,[(l(!0),y(R,null,T(a.sortedProjects,n=>(l(),u(_,{key:n.id,pt:a.projectCardPt,class:x(["project-card",{"user-card":n.isUser}]),onClick:o=>a.navigateToProject(n.id)},{header:P(()=>[t("div",lt,[t("i",{class:x(n.isUser?"pi pi-user":"pi pi-folder")},null,2),t("h3",it,r(n.name),1)])]),content:P(()=>[t("div",ct,r(n.path),1),t("div",dt,[t("div",mt,[s[2]||(s[2]=t("i",{class:"pi pi-users"},null,-1)),t("span",null,r(n.stats?.agents||0)+" Agents",1)]),t("div",pt,[s[3]||(s[3]=t("i",{class:"pi pi-bolt"},null,-1)),t("span",null,r(n.stats?.commands||0)+" Commands",1)]),t("div",ut,[s[4]||(s[4]=t("i",{class:"pi pi-link"},null,-1)),t("span",null,r(n.stats?.hooks||0)+" Hooks",1)]),t("div",gt,[s[5]||(s[5]=t("i",{class:"pi pi-server"},null,-1)),t("span",null,r(n.stats?.mcp||0)+" MCP",1)]),t("div",yt,[s[6]||(s[6]=t("i",{class:"pi pi-sparkles"},null,-1)),t("span",null,r(n.stats?.skills||0)+" Skills",1)])]),t("div",xt,[S(h,{label:"View",icon:"pi pi-arrow-right",iconPos:"right",class:"view-btn"})])]),_:2},1032,["pt","class","onClick"]))),128))]))])])])}const bt=j(tt,[["render",ft],["__scopeId","data-v-6018c389"]]);export{bt as default}; //# sourceMappingURL=Dashboard-BJSDRl3R.js.map