import{_ as Z}from"./filepath-item.vue-n2otfocd.js";import{J as Y,a as S,D as H,W,n as G,r as q,h as V,q as ee,aa as J,ab as Q,e as L,M as te,H as oe,w as ne,x as se,o as le}from"./er2hcepb.js";import{_ as ae,u as K,a as ie}from"./state-modules-5svqrca0.js";import{k as P,l as C,Q as o,M as $,$ as i,U as e,V as A,a6 as x,a5 as k,S as p,u as j,Y as z,W as h,a0 as l,F as B,ab as D,ai as re,b as T,ad as E}from"./vendor/json-editor-vue-gv8v06ez.js";import{_ as ue}from"./nsection-block-f8z83agf.js";import{_ as de}from"./nicon-title.vue-lmnsr02i.js";import{_ as R}from"./ndropdown.vue-cmmqgxbt.js";import{_ as pe}from"./nnavbar.vue-hzjn49l3.js";import{_ as me}from"./nbadge-fn7hrj12.js";import{s as ce}from"./vue-virtual-scroller.esm-cgrk8bqc.js";import{_ as _e}from"./ncode-block.vue-bvtirmea.js";import{_ as fe}from"./nlink.vue-nuag3fiz.js";import{_ as ve}from"./code-diff.vue-hs4v40uj.js";import{_ as ge}from"./help-fab.vue-d5mgp1hs.js";import"./vendor/unocss-f0kk6o39.js";import"./vendor/shiki-ml6g43ls.js";import"./ncheckbox.vue-hj8qatqi.js";import"./client-my5lks1i.js";const xe={flex:"~ col gap2","flex-auto":"","of-hidden":"",px1:""},be={"gap-1t":"",flex:"","items-center":"","text-ellipsis":"","ws-nowrap":"","text-lg":""},ke={key:2},he={key:1,flex:"~ gap-2",title:"Documentation"},ye={key:2,flex:"~ gap-2"},$e={key:0,flex:"~ gap-4 items-center"},we={flex:"~ gap-1 items-center",op50:""},Ce={flex:"~ gap-1 items-center",op50:""},Me={flex:"~ col","items-end":""},Ie={key:0,"h-20":"","w-20":"",flex:"","flex-none":"",rounded:"","bg-gray:3":"",p4:""},Ne=["src","alt"],Be={key:1,flex:"~",mt2:"","flex-auto":"","items-end":"","justify-end":""},je=["src"],Pe={flex:"","justify-end":""},De="https://api.nuxtjs.org/api/ipx/s_80,f_webp/gh/nuxt/modules/main/icons/",Ae="https://api.nuxtjs.org/api/ipx/s_44,f_webp/gh_avatar/",Te="https://github.com/",ze="https://www.npmjs.com/package/",U=P({__name:"ModuleItemBase",props:{mod:{},info:{},compact:{type:Boolean},maintainers:{type:Boolean,default:!0}},setup(N){const c=N,a=C(()=>({...c.mod?.meta,...c.mod,...c.info})),b=Y();return(r,t)=>{const n=S,u=H,w=W;return o(),$(w,{p4:"",flex:"~ gap2"},{default:i(()=>[e("div",xe,[A(r.$slots,"main",{},()=>[e("div",be,[r.mod.isPackageModule?(o(),$(n,{key:0,to:ze+(a.value.npm||a.value.name),target:"_blank",hover:"underline text-primary"},{default:i(()=>[x(k(a.value.name),1)]),_:1},8,["to"])):r.mod.entryPath?(o(),p("button",{key:1,role:"button",hover:"underline text-primary",onClick:t[0]||(t[0]=g=>j(b)(r.mod.entryPath))},k(a.value.name),1)):(o(),p("span",ke,k(a.value.name),1)),A(r.$slots,"badge")]),a.value.description?(o(),p("div",{key:0,class:z(r.compact?"ws-nowrap of-hidden truncate":"line-clamp-2"),"mt--1":"","text-sm":"",op50:""},k(a.value.description),3)):h("",!0),t[3]||(t[3]=e("div",{"flex-auto":""},null,-1)),a.value.website?(o(),p("div",he,[t[1]||(t[1]=e("span",{"i-carbon-link":"","text-lg":"",op50:""},null,-1)),l(n,{to:a.value.website,target:"_blank","of-hidden":"",truncate:"","ws-nowrap":"","text-sm":"",op50:"",hover:"op100 underline text-primary"},{default:i(()=>[x(k(a.value.website.replace(/^https?:\/\//,"")),1)]),_:1},8,["to"])])):h("",!0),a.value.github?(o(),p("div",ye,[t[2]||(t[2]=e("span",{"i-carbon-logo-github":"","text-lg":"",op50:""},null,-1)),l(n,{to:a.value.github,target:"_blank","of-hidden":"",truncate:"","ws-nowrap":"","text-sm":"",op50:"",hover:"op100 underline text-primary"},{default:i(()=>[x(k(a.value.github.replace(/^https?:\/\/github.com\//,"")),1)]),_:1},8,["to"])])):h("",!0)]),A(r.$slots,"items"),a.value.stats?(o(),p("div",$e,[e("div",we,[l(u,{icon:"carbon-star","text-lg":""}),e("span",null,k(a.value.stats.stars),1)]),e("div",Ce,[l(u,{icon:"carbon-download","text-lg":""}),e("span",null,k(a.value.stats.downloads),1)])])):h("",!0)]),e("div",Me,[a.value.icon||r.mod.isPackageModule?(o(),p("div",Ie,[a.value.icon?(o(),p("img",{key:0,src:De+a.value.icon,alt:r.mod.name,ma:""},null,8,Ne)):h("",!0),t[4]||(t[4]=e("div",{"i-carbon-cube":"",ma:"","text-4xl":"",op30:""},null,-1))])):h("",!0),a.value.maintainers?.length&&r.maintainers?(o(),p("div",Be,[(o(!0),p(B,null,D(a.value.maintainers,g=>(o(),$(n,{key:g.name,target:"_blank",to:Te+g.github,title:g.name},{default:i(()=>[e("img",{src:Ae+g.github,"h-6":"","w-6":"","rounded-full":""},null,8,je)]),_:2},1032,["to","title"]))),128))])):h("",!0),r.$slots.actions?(o(),p(B,{key:2},[t[5]||(t[5]=e("div",{"flex-auto":""},null,-1)),e("div",Pe,[A(r.$slots,"actions")])],64)):h("",!0)])]),_:3})}}}),Le={key:0,flex:"~ gap-2",title:"Open on filesystem"},Oe={key:1,"mx--2":""},Se=["onClick"],Ue={key:2,"mx--2":""},Fe=["onClick"],qe={op50:""},Ve={"text-green":""},Ee={key:3,flex:"~ gap-2","items-center":"",title:"NPM"},Ye={"text-sm":"",op50:""},He=P({__name:"ModuleItem",props:{mod:{}},setup(N){const c=N,a=C(()=>c.mod.info),b=C(()=>({...c.mod?.meta,...c.mod,...a.value})),r=G();return(t,n)=>{const u=Z,w=S,g=ae,v=U;return o(),$(v,{mod:t.mod,info:a.value},{items:i(()=>[t.mod.entryPath?(o(),p("div",Le,[n[0]||(n[0]=e("span",{"i-carbon-folder-move-to":"","text-lg":"",op50:""},null,-1)),l(u,{filepath:t.mod.entryPath,"text-sm":"",op50:"",hover:"text-primary op100"},null,8,["filepath"])])):h("",!0),b.value.npm?(o(),$(g,{key:b.value.npm,"package-name":b.value.npm,options:{dev:!0}},{default:i(({info:m,update:d,state:s,id:_,restart:y})=>[s==="running"?(o(),$(w,{key:0,flex:"~ gap-2","animate-pulse":"","items-center":"",to:_?"/modules/terminals":void 0,onClick:M=>_?r.value=_:void 0},{default:i(()=>n[1]||(n[1]=[e("span",{"i-carbon-circle-dash":"","animate-spin":"","text-lg":"",op50:""},null,-1),e("code",{"text-sm":"",op50:""},"Upgrading...",-1)])),_:2},1032,["to","onClick"])):s==="updated"?(o(),p("div",Oe,[e("button",{flex:"~ gap-2",hover:"bg-primary/20","items-center":"",rounded:"","bg-primary:10":"",px2:"","text-sm":"","text-primary":"",onClick:y},n[2]||(n[2]=[e("span",{"i-carbon-intent-request-active":"","text-lg":"","text-primary":""},null,-1),e("code",{"text-xs":""},"Update installed, click to restart",-1)]),8,Se)])):m?.needsUpdate?(o(),p("div",Ue,[e("button",{flex:"~ gap-2",title:"Click to upgrade","items-center":"",rounded:"",px2:"","text-sm":"",hover:"bg-active",onClick:M=>d()},[n[3]||(n[3]=e("span",{"i-carbon-intent-request-upgrade":"","text-lg":"",op50:""},null,-1)),e("code",qe,"v"+k(m.current),1),n[4]||(n[4]=e("div",{"i-carbon-arrow-right":"",op50:""},null,-1)),e("code",Ve,"v"+k(m.latest),1)],8,Fe)])):m?.latest?(o(),p("div",Ee,[n[5]||(n[5]=e("span",{"i-carbon-cube":"","text-lg":"",op50:""},null,-1)),e("code",Ye,"v"+k(m.current),1)])):h("",!0)]),_:1},8,["package-name"])):h("",!0)]),_:1},8,["mod","info"])}}}),We=P({__name:"ModuleItemInstall",props:{item:{}},emits:["start"],setup(N,{emit:c}){const a=N,b=c,r=K(),t=C(()=>r.value.find(v=>v.name===a.item.npm)),n=C(()=>t.value&&t.value.isPackageModule),u=C(()=>t.value&&t.value.isPackageModule&&t.value.isUninstallable);async function w(v,m){const d=m==="install"?q.installNuxtModule:q.uninstallNuxtModule,s=await d(await V(),v.npm,!0);ee(`modules:${m}`,{moduleName:v.npm}),s.commands&&await J.start(v,s,m)&&(Q.value.push({name:v.npm,info:v,processId:s.processId}),b("start"),await d(await V(),v.npm,!1))}const g={};return(v,m)=>{const d=me,s=L,_=R,y=U;return o(),$(y,{mod:g,role:n.value?"":"button",info:v.item,mb2:"","h-full":"",class:z(n.value?"border-dashed op75":"hover:bg-active!"),compact:!0,onClick:m[1]||(m[1]=M=>n.value?null:w(v.item,"install"))},re({_:2},[n.value?{name:"badge",fn:i(()=>[l(d,{n:"green",textContent:"Installed"}),u.value?(o(),$(_,{key:0,n:"sm green"},{trigger:i(({click:M})=>[l(s,{icon:"carbon-overflow-menu-vertical",border:!1,onClick:f=>M()},null,8,["onClick"])]),default:i(()=>[l(s,{icon:"carbon-trash-can",n:"red",onClick:m[0]||(m[0]=M=>w(v.item,"uninstall"))},{default:i(()=>m[2]||(m[2]=[x(" Uninstall ")])),_:1})]),_:1})):h("",!0)]),key:"0"}:void 0]),1032,["role","info","class"])}}}),Ge={"h-full":"",flex:"~ col gap-4"},Je={flex:"~ items-center"},Qe={flex:"~ col","w-30":"","of-auto":""},Ke={flex:"~ justify-between","w-full":"","text-xs":"",capitalize:"",op75:""},Re={"flex-auto":"","of-auto":"",flex:"~ col gap-2",pl6:"",pr4:""},Xe=P({__name:"ModuleInstallList",emits:["close"],setup(N,{emit:c}){const a=c,b=ie(),r=["downloads","stars","updated","created"],t=T(!1),n=T(r[0]),u={downloads:(d,s)=>d.stats.downloads-s.stats.downloads,stars:(d,s)=>d.stats.stars-s.stats.stars,created:(d,s)=>d.stats.createdAt-s.stats.createdAt,updated:(d,s)=>d.stats.publishedAt-s.stats.publishedAt},w=C(()=>b.value?.toSorted((d,s)=>u[n.value](d,s)*(t.value?1:-1))),g=T(""),v=C(()=>new te(b.value||[],{keys:["name","description","npm","category"],sortFn:(d,s)=>{const _=b.value?.[d.idx],y=b.value?.[s.idx];return _&&y?u[n.value](_,y)*(t.value?1:-1):d.score-s.score},threshold:.2})),m=C(()=>g.value?v.value.search(g.value).map(d=>d.item):w.value);return(d,s)=>{const _=de,y=L,M=H,f=R,F=pe,X=We;return o(),p("div",Ge,[l(_,{mx6:"",mt6:"","text-xl":"",op75:"",icon:"i-carbon-intent-request-create",text:"Install Module"}),l(F,{search:g.value,"onUpdate:search":s[1]||(s[1]=I=>g.value=I),"no-padding":"","px-6":"","pb-5":"","pt-2":""},{actions:i(()=>[l(f,{direction:"end",n:"sm primary"},{trigger:i(({click:I})=>[e("div",Je,[l(y,{icon:t.value?"tabler:sort-ascending":"tabler:sort-descending","h-full":"","rounded-r-none":"",onClick:s[0]||(s[0]=O=>t.value=!t.value)},null,8,["icon"]),l(y,{flex:"~ justify-between","min-w-30":"","border-l-0":"","rounded-l-none":"","px-2":"",capitalize:"",hover:"border-l-1",onClick:O=>I()},{default:i(()=>[x(k(n.value)+" ",1),l(M,{icon:"carbon:chevron-down"})]),_:2},1032,["onClick"])])]),default:i(()=>[e("div",Qe,[(o(),p(B,null,D(r,I=>l(y,{key:I,border:!1,p2:"",hover:"n-checkbox-hover text-green",onClick:O=>n.value=I},{default:i(()=>[e("span",Ke,[x(k(I)+" ",1),n.value===I?(o(),$(M,{key:0,icon:"carbon:checkmark"})):h("",!0)])]),_:2},1032,["onClick"])),64))])]),_:1})]),_:1},8,["search"]),e("div",Re,[l(j(ce),{class:"scroller",items:m.value,"item-size":200,"key-field":"name"},{default:i(({item:I})=>[l(X,{item:I,onStart:s[2]||(s[2]=O=>a("close"))},null,8,["item"])]),_:1},8,["items"])])])}}}),Ze={flex:"~ col gap-2","w-150":"",p4:"",border:"t base"},et={capitalize:""},tt={op50:""},ot={flex:"~ gap-3",mt2:"","justify-end":""},nt=P({__name:"ModuleActionDialog",setup(N){const c=oe(),a=Y(),b={};return(r,t)=>{const n=U,u=_e,w=fe,g=ve,v=ne,m=L,d=se;return o(),$(j(J),null,{default:i(({resolve:s,args:_})=>[l(d,{"model-value":!0,onClose:y=>s(!1)},{default:i(()=>[l(n,{mod:b,info:_[0],border:"none","w-150":"","n-panel-grids":""},null,8,["info"]),e("div",Ze,[e("h2",{"text-xl":"",class:z(_[2]==="install"?"text-primary":"text-red")},[e("span",et,k(_[2]),1),t[1]||(t[1]=x()),e("code",null,k(_[0].name),1),t[2]||(t[2]=x("? "))],2),t[7]||(t[7]=e("p",{op50:""}," The following command will be executed in your terminal: ",-1)),l(u,{code:_[1].commands.join(" "),lang:"bash",px4:"",py2:"",border:"~ base rounded",lines:!1},null,8,["code"]),e("p",tt,[t[3]||(t[3]=x(" Then your ")),l(w,{role:"button",n:"primary",underline:"",onClick:t[0]||(t[0]=y=>j(a)(j(c)?._nuxtConfigFile)),textContent:"Nuxt config"}),t[4]||(t[4]=x(" will be updated as: "))]),l(g,{from:_[1].configOriginal,to:_[1].configGenerated,"max-h-80":"","of-auto":"",py2:"",border:"~ base rounded",lang:"ts"},null,8,["from","to"]),t[8]||(t[8]=e("p",null,[e("span",{op50:""},"After that, Nuxt will "),e("span",{"text-orange":""},"restart automatically"),x(". ")],-1)),e("div",ot,[l(v,{n:"sm amber","flex-auto":"",icon:"i-carbon-data-backup"},{default:i(()=>t[5]||(t[5]=[x(" Please make sure to backup your project first. ")])),_:1}),l(m,{onClick:y=>s(!1)},{default:i(()=>t[6]||(t[6]=[x(" Cancel ")])),_:2},1032,["onClick"]),l(m,{n:"solid",capitalize:"",class:z(_[2]==="install"?"n-primary":"n-red"),onClick:y=>s(!0)},{default:i(()=>[x(k(_[2]),1)]),_:2},1032,["class","onClick"])])])]),_:2},1032,["onClose"])]),_:1})}}}),st={class:"markdown-body"},lt={__name:"modules",setup(N,{expose:c}){return c({frontmatter:{}}),(b,r)=>(o(),p("div",st,r[0]||(r[0]=[e("h1",null,"Modules",-1),e("p",null,[x("Nuxt provides a module system to extend the framework core and simplify integrations. You don’t need to develop everything from scratch or maintain boilerplate if there is already a Nuxt module for it. Adding Nuxt modules is possible using "),e("code",null,"nuxt.config"),x(".")],-1),e("p",null,[x("You can explore the list of modules on "),e("a",{href:"https://nuxt.com/modules",target:"_blank",rel:"noopener"},"nuxt.com/modules"),x(" or install them directly inside the DevTools.")],-1),e("p",null,[e("a",{href:"https://nuxt.com/docs/guide/concepts/modules",target:"_blank",rel:"noopener"},"Learn more in the documentation")],-1)])))}},at={"h-full":"","w-full":"","of-auto":""},it={relative:"","h-20":"","w-20":"",flex:"","flex-none":"",rounded:"","bg-gray:3":"",p3:""},rt=["src","alt"],ut={"text-lg":"","group-hover":"text-primary",transition:"",flex:"~ gap-2 items-center"},dt={op75:""},pt={key:0,border:"l base",pos:"fixed bottom-0 right-0 top-0","z-200":"","w-150":"","bg-base":""},mt="https://api.nuxtjs.org/api/ipx/s_80,f_webp/gh/nuxt/modules/main/icons/",Pt=P({__name:"modules",setup(N){const c=T(!1),a=K(),b=G(),r=C(()=>a.value.filter(n=>n.isPackageModule)),t=C(()=>a.value.filter(n=>!n.isPackageModule));return le(()=>[{id:"action:modules:install",title:"Install a new module",icon:"i-carbon-intent-request-create ",action:()=>{c.value=!0}}]),(n,u)=>{const w=He,g=W,v=S,m=ue,d=L,s=Xe,_=nt,y=lt,M=ge;return o(),p(B,null,[e("div",at,[l(m,{icon:"carbon-3d-mpr-toggle",text:"Installed Modules","container-class":"grid grid-cols-minmax-400px gap3 px4",padding:!1,description:`Total modules: ${r.value.length}`},{default:i(()=>[(o(!0),p(B,null,D(r.value,f=>(o(),$(w,{key:f.name,mod:f},null,8,["mod"]))),128)),(o(!0),p(B,null,D("processInstallingModules"in n?n.processInstallingModules:j(Q),f=>(o(),$(v,{key:f.processId,block:"","min-h-30":"",to:"/modules/terminals",onClick:F=>b.value=f.processId},{default:i(()=>[l(g,{border:"1.5 dashed","h-full":"","animate-pulse":"",p4:"",transition:"",hover:"border-primary",flex:"~ col gap-1 items-center justify-center",role:"button",class:"group"},{default:i(()=>[e("div",it,[e("img",{src:mt+f.info.icon,alt:f.info.name,ma:""},null,8,rt),u[4]||(u[4]=e("div",{"i-carbon-cube":"",ma:"","text-4xl":"",op30:""},null,-1))]),e("div",ut,[u[5]||(u[5]=e("div",{"i-carbon-circle-dash":"","animate-spin":"","text-xl":"",op75:""},null,-1)),e("span",dt,"Installing "+k(f.name)+"...",1)])]),_:2},1024)]),_:2},1032,["onClick"]))),128)),l(g,{border:"1.5 dashed","min-h-30":"",p4:"",transition:"",hover:"border-primary",flex:"~ col gap-2 items-center justify-center",role:"button",class:"group",onClick:u[0]||(u[0]=f=>c.value=!0)},{default:i(()=>u[6]||(u[6]=[e("div",{"i-carbon-intent-request-create":"","text-4xl":"",op40:"","group-hover":"op75 text-primary",transition:""},null,-1),e("div",{"text-lg":"",op40:"","group-hover":"op75 text-primary",transition:""}," Install New Module ",-1)])),_:1})]),_:1},8,["description"]),t.value.length?(o(),$(m,{key:0,icon:"carbon-3d-mpr-toggle",text:"User Modules","container-class":"grid grid-cols-minmax-400px gap3 px4",padding:!1,description:`Total modules: ${t.value.length}`},{default:i(()=>[(o(!0),p(B,null,D(t.value,f=>(o(),p(B,{key:f.meta?.name||f.entryPath},[f.meta?.name||f.entryPath?(o(),$(w,{key:0,mod:f},null,8,["mod"])):h("",!0)],64))),128))]),_:1},8,["description"])):h("",!0),l(E,{name:"fade-in"},{default:i(()=>[c.value?(o(),p("div",{key:0,class:"fixed bottom-0 left-0 right-0 top-0 z-100","bg-black:20":"","backdrop-blur-2":"",onClick:u[1]||(u[1]=f=>c.value=!1)})):h("",!0)]),_:1}),l(E,{name:"slide-in"},{default:i(()=>[c.value?(o(),p("div",pt,[l(d,{icon:"carbon-close",pos:"absolute top-3 right-3 z-10","rounded-full":"","text-xl":"",border:!1,onClick:u[2]||(u[2]=f=>c.value=!1)}),l(s,{onClose:u[3]||(u[3]=f=>c.value=!1)})])):h("",!0)]),_:1}),l(_)]),l(M,null,{default:i(()=>[l(y)]),_:1})],64)}}});export{Pt as default};