3 lines
6.8 KiB
JavaScript
3 lines
6.8 KiB
JavaScript
|
|
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
|
||
|
|
//# sourceMappingURL=Dashboard-BJSDRl3R.js.map
|