import{$ as e,$t as t,At as n,C as r,Ct as i,E as a,F as o,H as s,I as c,K as l,Mt as u,P as d,Qt as f,R as p,V as m,W as h,X as g,Y as _,_ as v,c as y,ct as b,dt as x,en as S,ft as C,g as w,h as T,k as E,m as D,nt as O,tn as k,v as A,w as j,wt as M,x as N,xt as P,yt as F,z as I}from"./vendor/json-editor-vue-eojr4v24.js";import{x as L}from"./ready-dadbdj5i.js";import{w as R}from"./utils-jupbrzo6.js";import{l as z}from"./client-nwyjxodt.js";import{n as B,u as V}from"./dev-auth-he0eye7r.js";import"./vendor/shiki-lqo1hg2n.js";import"./storage-options-nzog3hhp.js";import{t as H}from"./nuxt-link-bumooa9d.js";import{t as U}from"./_plugin-vue_export-helper-n58akrbk.js";import{t as W}from"./nicon-m1crov2l.js";import{t as G}from"./nbutton-gygn07c2.js";import{t as K}from"./ncard-ludmyw2u.js";import{r as q}from"./state-routes-jownks2o.js";import{t as J}from"./telemetry-c77tnag3.js";import"./state-tabs-mtxv3h6t.js";import"./ntext-input-e8iut2en.js";import{d as Y,f as X,n as Z,o as ee,p as te,s as ne}from"#entry";import{t as re}from"./ndropdown-knvt4ccq.js";import"./client-im47u3kz.js";import{t as ie}from"./ncode-block-figzf35k.js";import{t as ae}from"./composables-b2ccklz4.js";import{t as oe}from"./nlink-od4lllbl.js";import{t as se}from"./ncheckbox-ep01n5y1.js";import{t as ce}from"./filepath-item-h3i1tz3s.js";import{t as le}from"./help-fab-oeo4c53s.js";import{t as ue}from"./nnavbar-n7gfocyu.js";import{t as de}from"./nicon-title-kbrt9te7.js";import{t as fe}from"./nsection-block-ibsk9arc.js";import{t as pe}from"./nbadge-f1bvtlf5.js";import{t as me}from"./duration-display-h5sffkps.js";import{n as he,r as ge,t as Q}from"./state-modules-m990wfjb.js";import{t as _e}from"./mitt.es-ey5n86su.js";import{t as ve}from"./code-diff-hjtd937u.js";var ye={flex:`~ col gap2`,"flex-auto":``,"of-hidden":``,px1:``},be={"gap-1t":``,flex:``,"items-center":``,"text-ellipsis":``,"ws-nowrap":``,"text-lg":``},xe={key:2},Se={key:1,flex:`~ gap-2`,title:`Documentation`},Ce={key:2,flex:`~ gap-2`},we={key:0,flex:`~ gap-4 items-center`},Te={key:0,flex:`~ gap-2 items-center`,op50:``},Ee={key:1,flex:`~ gap-2 items-center`,op50:``},De={key:1},Oe={flex:`~ col`,"items-end":``},ke={key:0,"h-20":``,"w-20":``,flex:``,"flex-none":``,rounded:``,"bg-gray:3":``,p4:``},Ae=[`src`,`alt`],je={key:1,"i-carbon-cube":``,ma:``,"flex-none":``,"text-4xl":``,op30:``},Me={key:1,flex:`~`,mt2:``,"flex-auto":``,"items-end":``,"justify-end":``},Ne=[`src`],Pe={flex:``,"justify-end":``},Fe=`https://api.nuxtjs.org/api/ipx/s_80,f_webp/gh/nuxt/modules/main/icons/`,Ie=`https://api.nuxtjs.org/api/ipx/s_44,f_webp/gh_avatar/`,Le=`https://github.com/`,Re=`https://www.npmjs.com/package/`,ze=a({__name:`ModuleItemBase`,props:{mod:{},info:{},compact:{type:Boolean},maintainers:{type:Boolean,default:!0}},setup(e){let t=e,n=D(()=>({...t.mod?.meta,...t.mod,...t.info})),{format:i}=Intl.NumberFormat(navigator.language||`en`,{notation:`compact`,maximumFractionDigits:1}),a=D(()=>i(n.value.stats?.stars||0)),o=D(()=>i(n.value.stats?.downloads||0)),s=Y();return(t,i)=>{let c=H,l=W,d=me,p=K;return h(),w(p,{p4:``,flex:`~ gap2`},{default:x(()=>[T(`div`,ye,[g(t.$slots,`main`,{},()=>[T(`div`,be,[e.mod.isPackageModule?(h(),w(c,{key:0,to:Re+(n.value.npm||n.value.name),target:`_blank`,hover:`underline text-primary`},{default:x(()=>[r(k(n.value.name),1)]),_:1},8,[`to`])):e.mod.entryPath?(h(),A(`button`,{key:1,role:`button`,hover:`underline text-primary`,onClick:i[0]||=t=>u(s)(e.mod.entryPath)},k(n.value.name),1)):(h(),A(`span`,xe,k(n.value.name),1)),g(t.$slots,`badge`)]),n.value.description?(h(),A(`div`,{key:0,class:f(e.compact?`ws-nowrap of-hidden truncate`:`line-clamp-2`),"mt--1":``,"text-sm":``,op50:``},k(n.value.description),3)):v(``,!0),i[3]||=T(`div`,{"flex-auto":``},null,-1),n.value.website?(h(),A(`div`,Se,[i[1]||=T(`span`,{"i-carbon-link":``,"flex-none":``,"text-lg":``,op50:``},null,-1),j(c,{to:n.value.website,target:`_blank`,"of-hidden":``,truncate:``,"ws-nowrap":``,"text-sm":``,op50:``,hover:`op100 underline text-primary`},{default:x(()=>[r(k(n.value.website.replace(/^https?:\/\//,``)),1)]),_:1},8,[`to`])])):v(``,!0),n.value.github?(h(),A(`div`,Ce,[i[2]||=T(`span`,{"i-carbon-logo-github":``,"flex-none":``,"text-lg":``,op50:``},null,-1),j(c,{to:n.value.github,target:`_blank`,"of-hidden":``,truncate:``,"ws-nowrap":``,"text-sm":``,op50:``,hover:`op100 underline text-primary`},{default:x(()=>[r(k(n.value.github.replace(/^https?:\/\/github.com\//,``)),1)]),_:1},8,[`to`])])):v(``,!0)]),g(t.$slots,`items`),n.value.stats?(h(),A(`div`,we,[n.value.stats.stars?(h(),A(`div`,Te,[j(l,{icon:`carbon-star`,"flex-none":``,"text-lg":``}),T(`span`,null,k(a.value),1)])):v(``,!0),n.value.stats.downloads?(h(),A(`div`,Ee,[j(l,{icon:`carbon-download`,"flex-none":``,"text-lg":``}),T(`span`,null,k(o.value),1)])):v(``,!0)])):v(``,!0),e.mod.timings?.setup?(h(),A(`div`,De,[j(d,{title:`Module Setup Time`,flex:`~ items-center`,duration:e.mod.timings.setup,factor:.5},{before:x(()=>[j(l,{icon:`carbon-time`,mr2:``,"flex-none":``,"text-lg":``,op50:``})]),_:1},8,[`duration`])])):v(``,!0)]),T(`div`,Oe,[n.value.icon||e.mod.isPackageModule?(h(),A(`div`,ke,[n.value.icon?(h(),A(`img`,{key:0,src:Fe+n.value.icon,alt:e.mod.name,ma:``},null,8,Ae)):(h(),A(`div`,je))])):v(``,!0),n.value.maintainers?.length&&e.maintainers?(h(),A(`div`,Me,[(h(!0),A(y,null,_(n.value.maintainers,e=>(h(),w(c,{key:e.name,target:`_blank`,to:Le+e.github,title:e.name},{default:x(()=>[T(`img`,{src:Ie+e.github,"h-6":``,"w-6":``,"rounded-full":``},null,8,Ne)]),_:2},1032,[`to`,`title`]))),128))])):v(``,!0),t.$slots.actions?(h(),A(y,{key:2},[i[4]||=T(`div`,{"flex-auto":``},null,-1),T(`div`,Pe,[g(t.$slots,`actions`)])],64)):v(``,!0)])]),_:3})}}}),$=Object.assign(ze,{__name:`ModuleItemBase`}),Be={key:0,flex:`~ gap-2`,title:`Open on filesystem`},Ve={key:1,"mx--2":``},He=[`onClick`],Ue={key:2,"mx--2":``},We=[`onClick`],Ge={op50:``},Ke={"text-green":``},qe={key:3,flex:`~ gap-2`,"items-center":``,title:`NPM`},Je={"text-sm":``,op50:``},Ye=a({__name:`ModuleItem`,props:{mod:{}},setup(e){let t=e,n=D(()=>t.mod.info),r=D(()=>({...t.mod?.meta,...t.mod,...n.value})),i=q();return(t,a)=>{let o=ce,s=H,c=ge,l=$;return h(),w(l,{mod:e.mod,info:n.value},{items:x(()=>[e.mod.entryPath?(h(),A(`div`,Be,[a[0]||=T(`span`,{"i-carbon-folder-move-to":``,"flex-none":``,"text-lg":``,op50:``},null,-1),j(o,{filepath:e.mod.entryPath,"text-sm":``,op50:``,hover:`text-primary op100`},null,8,[`filepath`])])):v(``,!0),r.value.npm?(h(),w(c,{key:r.value.npm,"package-name":r.value.npm,options:{dev:!0}},{default:x(({info:e,update:t,state:n,id:r,restart:o})=>[n===`running`?(h(),w(s,{key:0,flex:`~ gap-2`,"animate-pulse":``,"items-center":``,to:r?`/modules/terminals`:void 0,onClick:e=>r?i.value=r:void 0},{default:x(()=>[...a[1]||=[T(`span`,{"i-carbon-circle-dash":``,"flex-none":``,"animate-spin":``,"text-lg":``,op50:``},null,-1),T(`code`,{"text-sm":``,op50:``},`Upgrading...`,-1)]]),_:1},8,[`to`,`onClick`])):n===`updated`?(h(),A(`div`,Ve,[T(`button`,{flex:`~ gap-2`,hover:`bg-primary/20`,"items-center":``,rounded:``,"bg-primary:10":``,px2:``,"text-sm":``,"text-primary":``,onClick:o},[...a[2]||=[T(`span`,{"i-carbon-intent-request-active":``,"flex-none":``,"text-lg":``,"text-primary":``},null,-1),T(`code`,{"text-xs":``},`Update installed, click to restart`,-1)]],8,He)])):e?.needsUpdate?(h(),A(`div`,Ue,[T(`button`,{flex:`~ gap-2`,title:`Click to upgrade`,"items-center":``,rounded:``,px2:``,"text-sm":``,hover:`bg-active`,onClick:e=>t()},[a[3]||=T(`span`,{"i-carbon-intent-request-upgrade":``,"flex-none":``,"text-lg":``,op50:``},null,-1),T(`code`,Ge,`v`+k(e.current),1),a[4]||=T(`div`,{"i-carbon-arrow-right":``,op50:``},null,-1),T(`code`,Ke,`v`+k(e.latest),1)],8,We)])):e?.latest?(h(),A(`div`,qe,[a[5]||=T(`span`,{"i-carbon-cube":``,"flex-none":``,"text-lg":``,op50:``},null,-1),T(`code`,Je,`v`+k(e.current),1)])):v(``,!0)]),_:1},8,[`package-name`])):v(``,!0)]),_:1},8,[`mod`,`info`])}}}),Xe=Object.assign(Ye,{__name:`ModuleItem`}),Ze=a({__name:`ModuleItemInstall`,props:{item:{}},emits:[`start`],setup(e,{emit:t}){let n=e,i=t,a=Q(),o=D(()=>a.value.find(e=>e.name===n.item.npm)),s=D(()=>o.value&&o.value.isPackageModule),c=D(()=>o.value&&o.value.isPackageModule&&o.value.isUninstallable);async function l(e,t){let n=t===`install`?z.installNuxtModule:z.uninstallNuxtModule,r=await n(await B(),e.npm,!0);J(`modules:${t}`,{moduleName:e.npm}),r.commands&&await V.start(e,r,t)&&(Z.value.push({name:e.npm,info:e,processId:r.processId}),i(`start`),await n(await B(),e.npm,!1))}let u={};return(t,n)=>{let i=pe,a=G,o=re,d=$;return h(),w(d,{mod:u,role:s.value?``:`button`,info:e.item,mb2:``,"h-full":``,class:f(s.value?`border-dashed op75`:`hover:bg-active!`),compact:!0,onClick:n[1]||=t=>s.value?null:l(e.item,`install`)},N({_:2},[s.value?{name:`badge`,fn:x(()=>[j(i,{n:`green`,textContent:`Installed`}),c.value?(h(),w(o,{key:0,n:`sm green`},{trigger:x(({click:e})=>[j(a,{icon:`carbon-overflow-menu-vertical`,border:!1,onClick:t=>e()},null,8,[`onClick`])]),default:x(()=>[j(a,{icon:`carbon-trash-can`,n:`red`,onClick:n[0]||=t=>l(e.item,`uninstall`)},{default:x(()=>[...n[2]||=[r(` Uninstall `,-1)]]),_:1})]),_:1})):v(``,!0)]),key:`0`}:void 0]),1032,[`role`,`info`,`class`])}}}),Qe=Object.assign(Ze,{__name:`ModuleItemInstall`});function $e(e,t,r,i){let a=0,u={},d=_e(),f=!1,p,m=P({active:!0,sizes:{},keyField:n(e).keyField,simpleArray:!1});typeof ResizeObserver<`u`&&(p=new ResizeObserver(e=>{requestAnimationFrame(()=>{if(Array.isArray(e)){for(let t of e)if(t.target&&t.target.$_vs_onResize){let e,n;if(t.borderBoxSize){let r=t.borderBoxSize[0];e=r.inlineSize,n=r.blockSize}else e=t.contentRect.width,n=t.contentRect.height;t.target.$_vs_onResize(t.target.$_vs_id,e,n)}}})})),l(`vscrollData`,m),l(`vscrollParent`,{get $_undefinedSizes(){return a},set $_undefinedSizes(e){a=e},get $_undefinedMap(){return u},set $_undefinedMap(e){u=e},$_events:d,direction:D(()=>n(e).direction)}),l(`vscrollResizeObserver`,p);let h=D(()=>{let t=n(e);return t.items.length>0&&typeof t.items[0]!=`object`}),g=D(()=>{let t=[],{items:r,keyField:i}=n(e),a=h.value,o=m.sizes,s=r.length;for(let e=0;e`u`&&!u[s]&&(c=0),t.push({item:n,id:s,size:c})}return t});function _(){var e;n(t)&&y(),(e=i?.onResize)==null||e.call(i)}function v(){var e;d.emit(`vscroll:update`,{force:!1}),(e=i?.onVisible)==null||e.call(i)}function y(e=!1){(e||h.value)&&(m.sizes={}),d.emit(`vscroll:update`,{force:!0})}function x(e){let r=n(t);r&&r.scrollToItem(e)}function S(t,r){let i=n(e),a=h.value?r??i.items.indexOf(t):t[i.keyField];return m.sizes[a]||0}function C(){let e=n(r);e&&(f||(f=!0,o(()=>{e.scrollTop=e.scrollHeight+5e3;let t=()=>{e.scrollTop=e.scrollHeight+5e3,requestAnimationFrame(()=>{e.scrollTop=e.scrollHeight+5e3,a===0?f=!1:requestAnimationFrame(t)})};requestAnimationFrame(t)})))}return b(()=>n(e).items,()=>{y()}),b(h,e=>{m.simpleArray=e},{immediate:!0}),b(()=>n(e).direction,()=>{y(!0)}),b(g,(t,i)=>{let a=n(r);if(!a)return;let o=a.scrollTop,s=n(e),c=0,l=0,u=Math.min(t.length,i.length);for(let e=0;e=o);e++)c+=i[e].size||s.minItemSize,l+=t[e].size||s.minItemSize;let d=l-c;d!==0&&(a.scrollTop+=d)}),c(()=>{m.active=!0}),I(()=>{m.active=!1}),s(()=>{d.all.clear()}),{vscrollData:m,itemsWithSize:g,simpleArray:h,resizeObserver:p,forceUpdate:y,scrollToItem:x,getItemSize:S,scrollToBottom:C,onScrollerResize:_,onScrollerVisible:v}}var et={itemsLimit:1e3},tt=/auto|scroll/;function nt(e,t){return e.parentNode===null?t:nt(e.parentNode,[...t,e])}function rt(e,t){return getComputedStyle(e,null).getPropertyValue(t)}function it(e){return rt(e,`overflow`)+rt(e,`overflow-y`)+rt(e,`overflow-x`)}function at(e){return tt.test(it(e))}function ot(e){if(!(e instanceof HTMLElement||e instanceof SVGElement))return;let t=nt(e.parentNode,[]);for(let e=0;e{let t=n(e);return t.items.length>0&&typeof t.items[0]!=`object`}),k=D(()=>{let t=n(e);if(t.itemSize===null){let e={[-1]:{accumulator:0}},n=t.items,r=t.sizeField,i=t.minItemSize,a=1e4,o=0,s;for(let t=0,c=n.length;trequestAnimationFrame(()=>{v=!1;let{continuous:e}=G(!1,!0);e||(C&&clearTimeout(C),C=setTimeout(R,t.updateInterval+100))});e(),t.updateInterval&&(S=setTimeout(()=>{S=null,v&&e()},t.updateInterval))}}function z(e,t){var n,r;d.value&&(e||t.boundingClientRect.width!==0||t.boundingClientRect.height!==0?((n=s?.onVisible)==null||n.call(s),requestAnimationFrame(()=>{G(!1)})):(r=s?.onHidden)==null||r.call(s))}function B(){let e=ot(n(t));return window.document&&(e===window.document.documentElement||e===window.document.body)?window:e||window}function V(){let r=n(t),i=n(e),a=i.direction===`vertical`,o;if(i.pageMode){let e=r.getBoundingClientRect(),t=a?e.height:e.width,n=-(a?e.top:e.left),i=a?window.innerHeight:window.innerWidth;n<0&&(i+=n,n=0),n+i>t&&(i=t-n),o={start:n,end:n+i}}else o=a?{start:r.scrollTop,end:r.scrollTop+r.clientHeight}:{start:r.scrollLeft,end:r.scrollLeft+r.clientWidth};return o}function H(){n(e).pageMode?U():W()}function U(){E=B(),E.addEventListener(`scroll`,R,ct()?{passive:!0}:!1),E.addEventListener(`resize`,L)}function W(){E&&=(E.removeEventListener(`scroll`,R),E.removeEventListener(`resize`,L),null)}function G(t,i=!1){var o;let c=n(e),d=c.itemSize,p=c.gridItems||1,m=c.itemSecondarySize||d,_=T,v=c.typeField,b=O.value?null:c.keyField,S=c.items,C=S.length,E=k.value,D=g,A=l.value,M,F,L,R,z;if(!C)M=F=R=z=L=0;else if(x)M=R=0,F=z=Math.min(c.prerender,S.length),L=0;else{let e=V();if(i){let t=e.start-y;if(t<0&&(t=-t),d===null&&t<_||d!==null&&te.start&&(r=i),i=~~((n+r)/2);while(i!==a);for(i<0&&(i=0),M=i,L=E[C-1].accumulator,F=i;FC&&(F=C)),R=M;RC&&(F=C),R<0&&(R=0),z>C&&(z=C),L=Math.ceil(C/p)*d}}F-M>et.itemsLimit&&K(),u.value=L;let B,H=M<=h&&F>=f;if(!H||t)I();else for(let e=0,t=A.length;e=M&&B.nr.index{console.warn(`It seems the scroller element isn't scrolling, so it tries to render all the items at once.`,`Scroller:`,n(t)),console.warn(`Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.`)}),Error(`Rendered items limit reached`)}function q(){let e=l.value.filter(({nr:e})=>e.used);for(let t=1;te.nr.index-t.nr.index),q()&&(G(!1),w&&clearTimeout(w))}function Y(t){let r=n(e),i,a=r.gridItems||1;i=r.itemSize===null?t>0?k.value[t-1].accumulator:0:Math.floor(t/a)*r.itemSize,X(i)}function X(r){let i=n(e),a=n(t),o=i.direction===`vertical`?{scroll:`scrollTop`,start:`top`}:{scroll:`scrollLeft`,start:`left`};if(i.pageMode){let e=ot(a),t=e.tagName===`HTML`?0:e[o.scroll],n=e.getBoundingClientRect(),i=a.getBoundingClientRect()[o.start]-n[o.start];e[o.scroll]=r+t+i}else a[o.scroll]=r}let Z=n(e);return Z.prerender&&(x=!0,G(!1)),Z.gridItems&&!Z.itemSize&&console.error(`[vue-recycle-scroller] You must provide an itemSize when using gridItems`),m(()=>{H(),o(()=>{x=!1,G(!0),d.value=!0})}),c(()=>{let e=y;typeof e==`number`&&o(()=>{X(e)})}),p(()=>{W()}),b(()=>n(e).items,()=>{G(!0)}),b(()=>n(e).pageMode,()=>{H(),G(!1)}),b(k,()=>{G(!1)},{deep:!0}),b(()=>n(e).gridItems,()=>{G(!0)}),b(()=>n(e).itemSecondarySize,()=>{G(!0)}),{pool:l,totalSize:u,ready:d,sizes:k,simpleArray:O,scrollToItem:Y,scrollToPosition:X,getScroll:V,updateVisibleItems:G,handleScroll:R,handleResize:L,handleVisibilityChange:z,sortViews:J}}var dt=new WeakMap;function ft(e){return typeof e==`function`?{callback:e,observer:null,intersection:void 0,visible:null}:{callback:e.callback,observer:null,intersection:e.intersection,visible:null}}function pt(e,t){mt(e);let n=ft(t.value);if(dt.set(e,n),typeof IntersectionObserver>`u`){let t=e.getBoundingClientRect();n.visible=!0,n.callback(!0,{boundingClientRect:t});return}n.observer=new IntersectionObserver(e=>{let t=e[0],r=!!(t!=null&&t.isIntersecting);n.visible!==null&&n.visible===r||(n.visible=r,n.callback(r,t))},n.intersection),n.observer.observe(e)}function mt(e){let t=dt.get(e);t!=null&&t.observer&&(t.observer.disconnect(),t.observer=null)}var ht={mounted(e,t){pt(e,t)},updated(e,t){t.value!==t.oldValue&&pt(e,t)},unmounted(e){mt(e),dt.delete(e)}},gt=a({__name:`ItemView`,props:{view:{},itemTag:{}},setup(t){let n=t;return(t,r)=>(h(),w(e(n.itemTag),{class:`vue-recycle-scroller__item-view`},{default:x(()=>[g(t.$slots,`default`,{item:n.view.item,index:n.view.nr.index,active:n.view.nr.used})]),_:3}))}}),_t=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})(a({__name:`ResizeObserver`,emits:[`notify`],setup(e,{emit:t}){let n=t,r=i(),a=null,o=null;function s(){n(`notify`)}return m(()=>{let e=r.value?.parentElement;if(e){if(typeof ResizeObserver<`u`){a=new ResizeObserver(()=>{s()}),a.observe(e);return}o=()=>s(),window.addEventListener(`resize`,o)}}),p(()=>{a&&=(a.disconnect(),null),o&&=(window.removeEventListener(`resize`,o),null)}),(e,t)=>(h(),A(`div`,{ref_key:`el`,ref:r,class:`vue-recycle-scroller__resize-observer`,"aria-hidden":`true`},null,512))}}),[[`__scopeId`,`data-v-08cc04ab`]]),vt=a({__name:`RecycleScroller`,props:{items:{},keyField:{default:`id`},direction:{default:`vertical`},listTag:{default:`div`},itemTag:{default:`div`},itemSize:{default:null},gridItems:{default:void 0},itemSecondarySize:{default:void 0},minItemSize:{default:null},sizeField:{default:`size`},typeField:{default:`type`},buffer:{default:200},pageMode:{type:Boolean,default:!1},prerender:{default:0},emitUpdate:{type:Boolean,default:!1},disableTransform:{type:Boolean,default:!1},updateInterval:{default:0},skipHover:{type:Boolean,default:!1},listClass:{default:``},itemClass:{default:``}},emits:[`resize`,`visible`,`hidden`,`update`,`scroll-start`,`scroll-end`],setup(t,{expose:n,emit:r}){let a=t,o=r,s=ht,c=i(),l=i(),p=i(),m=i(null),{pool:b,totalSize:T,ready:E,scrollToItem:D,scrollToPosition:k,getScroll:M,updateVisibleItems:N,handleScroll:P,handleResize:F,handleVisibilityChange:I}=ut(a,c,l,p,{onResize:()=>o(`resize`),onVisible:()=>o(`visible`),onHidden:()=>o(`hidden`),onUpdate:(e,t,n,r)=>o(`update`,e,t,n,r)});return n({el:c,scrollToItem:D,scrollToPosition:k,getScroll:M,updateVisibleItems:N}),(t,n)=>C((h(),A(`div`,{ref_key:`el`,ref:c,class:f([`vue-recycle-scroller`,{ready:u(E),"page-mode":a.pageMode,[`direction-${a.direction}`]:!0}]),onScrollPassive:n[0]||=(...e)=>u(P)&&u(P)(...e)},[t.$slots.before?(h(),A(`div`,{key:0,ref_key:`before`,ref:l,class:`vue-recycle-scroller__slot`},[g(t.$slots,`before`)],512)):v(``,!0),(h(),w(e(a.listTag),{style:S({[a.direction===`vertical`?`minHeight`:`minWidth`]:`${u(T)}px`}),class:f([`vue-recycle-scroller__item-wrapper`,a.listClass])},{default:x(()=>[(h(!0),A(y,null,_(u(b),e=>(h(),w(gt,d({key:e.nr.id,view:e,"item-tag":a.itemTag,style:u(E)?[a.disableTransform?{[a.direction===`vertical`?`top`:`left`]:`${e.position}px`,willChange:`unset`}:{transform:`translate${a.direction===`vertical`?`Y`:`X`}(${e.position}px) translate${a.direction===`vertical`?`X`:`Y`}(${e.offset}px)`},{width:a.gridItems?`${a.direction===`vertical`&&a.itemSecondarySize||a.itemSize}px`:void 0,height:a.gridItems?`${a.direction===`horizontal`&&a.itemSecondarySize||a.itemSize}px`:void 0,visibility:e.nr.used?`visible`:`hidden`}]:null,class:[`vue-recycle-scroller__item-view`,[a.itemClass,{hover:!a.skipHover&&m.value===e.nr.key}]]},O(a.skipHover?{}:{mouseenter:()=>{m.value=e.nr.key},mouseleave:()=>{m.value=null}})),{default:x(e=>[g(t.$slots,`default`,d({ref_for:!0},e))]),_:2},1040,[`view`,`item-tag`,`style`,`class`]))),128)),a.items.length===0?g(t.$slots,`empty`,{key:0}):v(``,!0)]),_:3},8,[`style`,`class`])),t.$slots.after?(h(),A(`div`,{key:1,ref_key:`after`,ref:p,class:`vue-recycle-scroller__slot`},[g(t.$slots,`after`)],512)):v(``,!0),j(_t,{onNotify:u(F)},null,8,[`onNotify`])],34)),[[u(s),u(I)]])}});a({inheritAttrs:!1,__name:`DynamicScroller`,props:{items:{},keyField:{default:`id`},direction:{default:`vertical`},listTag:{default:`div`},itemTag:{default:`div`},minItemSize:{}},emits:[`resize`,`visible`],setup(e,{expose:n,emit:r}){let a=e,o=r,s=i(),{itemsWithSize:c,forceUpdate:l,scrollToItem:f,getItemSize:p,scrollToBottom:m,onScrollerResize:_,onScrollerVisible:v}=$e(a,s,D(()=>s.value?.el),{onResize:()=>o(`resize`),onVisible:()=>o(`visible`)});function y(e,t,n){let r=e;return{item:r.item,index:t,active:n,itemWithSize:r}}return n({scrollToItem:f,scrollToBottom:m,getItemSize:p,forceUpdate:l}),(e,n)=>(h(),w(vt,d({ref_key:`scroller`,ref:s,items:u(c),"min-item-size":a.minItemSize,direction:a.direction,"key-field":`id`,"list-tag":a.listTag,"item-tag":a.itemTag},e.$attrs,{onResize:u(_),onVisible:u(v)}),N({default:x(({item:n,index:r,active:i})=>[g(e.$slots,`default`,t(E(y(n,r,i))))]),empty:x(()=>[g(e.$slots,`empty`)]),_:2},[e.$slots.before?{name:`before`,fn:x(()=>[g(e.$slots,`before`)]),key:`0`}:void 0,e.$slots.after?{name:`after`,fn:x(()=>[g(e.$slots,`after`)]),key:`1`}:void 0]),1040,[`items`,`min-item-size`,`direction`,`list-tag`,`item-tag`,`onResize`,`onVisible`]))}});var yt={"h-full":``,flex:`~ col gap-4`},bt={flex:`~ items-center`},xt={flex:`~ col`,"w-30":``,"of-auto":``},St={flex:`~ justify-between`,"w-full":``,"text-xs":``,capitalize:``,op75:``},Ct={flex:`~ items-center gap-2`},wt={flex:`~ gap1`,"text-sm":``,op50:``},Tt={key:0},Et={"flex-auto":``,"of-auto":``,flex:`~ col gap-2`,pl6:``,pr4:``},Dt=a({__name:`ModuleInstallList`,emits:[`close`],setup(e,{emit:t}){let n=t,a=he(),o=Q(),s=[`downloads`,`stars`,`updated`,`created`],c=i(!1),l=i(s[0]),d=i(!0),f={downloads:(e,t)=>e.stats.downloads-t.stats.downloads,stars:(e,t)=>e.stats.stars-t.stats.stars,created:(e,t)=>e.stats.createdAt-t.stats.createdAt,updated:(e,t)=>e.stats.publishedAt-t.stats.publishedAt},p=D(()=>a.value?.toSorted((e,t)=>f[l.value](e,t)*(c.value?1:-1))),m=i(``),g=D(()=>new ne(a.value||[],{keys:[`name`,`description`,`npm`,`category`],sortFn:(e,t)=>{let n=a.value?.[e.idx],r=a.value?.[t.idx];return n&&r?f[l.value](n,r)*(c.value?1:-1):e.score-t.score},threshold:.2})),b=D(()=>{let e=p.value;return d.value&&(e=(e||[]).filter(e=>!o.value.some(t=>t.name===e.name))),m.value?g.value.search(m.value).map(e=>e.item).filter(t=>e?.includes(t)):e});return(e,t)=>{let i=de,o=G,f=W,p=re,g=se,S=ue,C=Qe;return h(),A(`div`,yt,[j(i,{mx6:``,mt6:``,"text-xl":``,op75:``,icon:`i-carbon-intent-request-create`,text:`Install Module`}),j(S,{search:m.value,"onUpdate:search":t[2]||=e=>m.value=e,"no-padding":``,"px-6":``,"pb-3":``,"pt-2":``},{actions:x(()=>[j(p,{direction:`end`,n:`sm primary`},{trigger:x(({click:e})=>[T(`div`,bt,[j(o,{icon:c.value?`tabler:sort-ascending`:`tabler:sort-descending`,"h-full":``,"rounded-r-none":``,onClick:t[0]||=e=>c.value=!c.value},null,8,[`icon`]),j(o,{flex:`~ justify-between`,"min-w-30":``,"border-l-0":``,"rounded-l-none":``,"px-2":``,capitalize:``,hover:`border-l-1`,onClick:t=>e()},{default:x(()=>[r(k(l.value)+` `,1),j(f,{icon:`carbon:chevron-down`})]),_:1},8,[`onClick`])])]),default:x(()=>[T(`div`,xt,[(h(),A(y,null,_(s,e=>j(o,{key:e,border:!1,p2:``,hover:`n-checkbox-hover text-green`,onClick:t=>l.value=e},{default:x(()=>[T(`span`,St,[r(k(e)+` `,1),l.value===e?(h(),w(f,{key:0,icon:`carbon:checkmark`})):v(``,!0)])]),_:2},1032,[`onClick`])),64))])]),_:1})]),default:x(()=>[T(`div`,Ct,[j(g,{modelValue:d.value,"onUpdate:modelValue":t[1]||=e=>d.value=e,n:`primary md`},{default:x(()=>[...t[4]||=[T(`span`,{op75:``},`Exclude installed modules`,-1)]]),_:1},8,[`modelValue`]),T(`div`,wt,[m.value||d.value?(h(),A(`span`,Tt,k(b.value?.length)+` matched · `,1)):v(``,!0),T(`span`,null,k(u(a)?.length)+` modules in total`,1)])])]),_:1},8,[`search`]),T(`div`,Et,[j(u(vt),{class:`scroller`,items:b.value,"item-size":200,"key-field":`name`},{default:x(({item:e})=>[j(C,{item:e,onStart:t[3]||=e=>n(`close`)},null,8,[`item`])]),_:1},8,[`items`])])])}}}),Ot=Object.assign(Dt,{__name:`ModuleInstallList`}),kt={flex:`~ col gap-2`,"w-150":``,p4:``,border:`t base`},At={capitalize:``},jt={op50:``},Mt={flex:`~ gap-3`,mt2:``,"justify-end":``},Nt=a({__name:`ModuleActionDialog`,setup(e){let t=R(),n=Y(),i={};return(e,a)=>{let o=$,s=ie,c=oe,l=ve,d=te,p=G,m=X;return h(),w(u(V),null,{default:x(({resolve:e,args:h})=>[j(m,{"model-value":!0,onClose:t=>e(!1)},{default:x(()=>[j(o,{mod:i,info:h[0],border:`none`,"w-150":``,"n-panel-grids":``},null,8,[`info`]),T(`div`,kt,[T(`h2`,{"text-xl":``,class:f(h[2]===`install`?`text-primary`:`text-red`)},[T(`span`,At,k(h[2]),1),a[1]||=r(),T(`code`,null,k(h[0].name),1),a[2]||=r(`? `,-1)],2),a[7]||=T(`p`,{op50:``},` The following command will be executed in your terminal: `,-1),j(s,{code:h[1].commands.join(` `),lang:`bash`,px4:``,py2:``,border:`~ base rounded`,lines:!1},null,8,[`code`]),T(`p`,jt,[a[3]||=r(` Then your `,-1),j(c,{role:`button`,n:`primary`,underline:``,onClick:a[0]||=e=>u(n)(u(t)?._nuxtConfigFile),textContent:`Nuxt config`}),a[4]||=r(` will be updated as: `,-1)]),j(l,{from:h[1].configOriginal,to:h[1].configGenerated,"max-h-80":``,"of-auto":``,py2:``,border:`~ base rounded`,lang:`ts`},null,8,[`from`,`to`]),a[8]||=T(`p`,null,[T(`span`,{op50:``},`After that, Nuxt will `),T(`span`,{"text-orange":``},`restart automatically`),r(`. `)],-1),T(`div`,Mt,[j(d,{n:`sm amber`,"flex-auto":``,icon:`i-carbon-data-backup`},{default:x(()=>[...a[5]||=[r(` Please make sure to backup your project first. `,-1)]]),_:1}),j(p,{onClick:t=>e(!1)},{default:x(()=>[...a[6]||=[r(` Cancel `,-1)]]),_:1},8,[`onClick`]),j(p,{n:`solid`,capitalize:``,class:f(h[2]===`install`?`n-primary`:`n-red`),onClick:t=>e(!0)},{default:x(()=>[r(k(h[2]),1)]),_:2},1032,[`class`,`onClick`])])])]),_:2},1032,[`onClose`])]),_:1})}}}),Pt=Object.assign(Nt,{__name:`ModuleActionDialog`}),Ft={},It={class:`markdown-body`};function Lt(e,t){return h(),A(`div`,It,[...t[0]||=[T(`template`,null,[T(`div`,{class:`markdown-body`},[T(`h1`,null,`Modules`),T(`p`,null,[r(`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 `),T(`code`,{"v-pre":``},`nuxt.config`),r(`.`)]),T(`p`,null,[r(`You can explore the list of modules on `),T(`a`,{href:`https://nuxt.com/modules`,target:`_blank`,rel:`noopener`},`nuxt.com/modules`),r(` or install them directly inside the DevTools.`)]),T(`p`,null,[T(`a`,{href:`https://nuxt.com/docs/guide/concepts/modules`,target:`_blank`,rel:`noopener`},`Learn more in the documentation`)])])],-1)]])}var Rt=U(Ft,[[`render`,Lt]]),zt={"h-full":``,"w-full":``,"of-auto":``},Bt={relative:``,"h-20":``,"w-20":``,flex:``,"flex-none":``,rounded:``,"bg-gray:3":``,p3:``},Vt=[`src`,`alt`],Ht={"text-lg":``,"group-hover":`text-primary`,transition:``,flex:`~ gap-2 items-center`},Ut={op75:``},Wt={key:0,border:`l base`,pos:`fixed bottom-0 right-0 top-0`,"z-200":``,"w-150":``,"bg-base":``},Gt=`https://api.nuxtjs.org/api/ipx/s_80,f_webp/gh/nuxt/modules/main/icons/`,Kt=a({__name:`modules`,setup(e){ae({icon:`carbon-3d-mpr-toggle`,title:`Modules`,order:5});let t=i(!1),n=Q(),r=q(),a=D(()=>n.value.filter(e=>e.isPackageModule)),o=D(()=>n.value.filter(e=>!e.isPackageModule));return ee(()=>[{id:`action:modules:install`,title:`Install a new module`,icon:`i-carbon-intent-request-create `,action:()=>{t.value=!0}}]),(e,n)=>{let i=Xe,s=K,c=H,l=fe,d=G,f=Ot,p=Pt,m=Rt,g=le;return h(),A(y,null,[T(`div`,zt,[j(l,{icon:`carbon-3d-mpr-toggle`,text:`Installed Modules`,"container-class":`grid grid-cols-minmax-400px gap3 px4`,padding:!1,description:`Total modules: ${a.value.length}`},{default:x(()=>[(h(!0),A(y,null,_(a.value,e=>(h(),w(i,{key:e.name,mod:e},null,8,[`mod`]))),128)),(h(!0),A(y,null,_(`processInstallingModules`in e?e.processInstallingModules:u(Z),e=>(h(),w(c,{key:e.processId,block:``,"min-h-30":``,to:`/modules/terminals`,onClick:t=>r.value=e.processId},{default:x(()=>[j(s,{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:x(()=>[T(`div`,Bt,[T(`img`,{src:Gt+e.info.icon,alt:e.info.name,ma:``},null,8,Vt),n[4]||=T(`div`,{"i-carbon-cube":``,ma:``,"text-4xl":``,op30:``},null,-1)]),T(`div`,Ht,[n[5]||=T(`div`,{"i-carbon-circle-dash":``,"animate-spin":``,"text-xl":``,op75:``},null,-1),T(`span`,Ut,`Installing `+k(e.name)+`...`,1)])]),_:2},1024)]),_:2},1032,[`onClick`]))),128)),j(s,{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:n[0]||=e=>t.value=!0},{default:x(()=>[...n[6]||=[T(`div`,{"i-carbon-intent-request-create":``,"text-4xl":``,op40:``,"group-hover":`op75 text-primary`,transition:``},null,-1),T(`div`,{"text-lg":``,op40:``,"group-hover":`op75 text-primary`,transition:``},` Install New Module `,-1)]]),_:1})]),_:1},8,[`description`]),o.value.length?(h(),w(l,{key:0,icon:`carbon-3d-mpr-toggle`,text:`User Modules`,"container-class":`grid grid-cols-minmax-400px gap3 px4`,padding:!1,description:`Total modules: ${o.value.length}`},{default:x(()=>[(h(!0),A(y,null,_(o.value,e=>(h(),A(y,{key:e.meta?.name||e.entryPath},[e.meta?.name||e.entryPath?(h(),w(i,{key:0,mod:e},null,8,[`mod`])):v(``,!0)],64))),128))]),_:1},8,[`description`])):v(``,!0),j(L,{name:`fade-in`},{default:x(()=>[t.value?(h(),A(`div`,{key:0,class:`fixed bottom-0 left-0 right-0 top-0 z-100`,"bg-black:20":``,"backdrop-blur-2":``,onClick:n[1]||=e=>t.value=!1})):v(``,!0)]),_:1}),j(L,{name:`slide-in`},{default:x(()=>[t.value?(h(),A(`div`,Wt,[j(d,{icon:`carbon-close`,pos:`absolute top-3 right-3 z-10`,"rounded-full":``,"text-xl":``,border:!1,onClick:n[2]||=e=>t.value=!1}),j(f,{onClose:n[3]||=e=>t.value=!1})])):v(``,!0)]),_:1}),j(p)]),j(g,null,{default:x(()=>[j(m)]),_:1})],64)}}});export{Kt as default};