@nuxt/devtools 0.6.1 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/README.md +2 -4
  2. package/dist/chunks/module-main.mjs +29 -134
  3. package/dist/client/200.html +2 -2
  4. package/dist/client/404.html +2 -2
  5. package/dist/client/__blank/index.html +2 -2
  6. package/dist/client/_nuxt/AuthRequiredPanel.vue.e75f9e70.js +1 -0
  7. package/dist/client/_nuxt/Badge.d9d2b649.js +1 -0
  8. package/dist/client/_nuxt/CodeSnippets.vue.b63711e4.js +1 -0
  9. package/dist/client/_nuxt/{DrawerRight.vue.aa1fd47b.js → DrawerRight.vue.e21669fa.js} +1 -1
  10. package/dist/client/_nuxt/DurationDisplay.vue.c206edd8.js +1 -0
  11. package/dist/client/_nuxt/FilepathItem.vue.a47beb58.js +1 -0
  12. package/dist/client/_nuxt/HelpFab.vue.e5d23c98.js +1 -0
  13. package/dist/client/_nuxt/{LaunchPage.vue.f137554e.js → LaunchPage.vue.610fcc27.js} +1 -1
  14. package/dist/client/_nuxt/NCheckbox.vue.f4134b6b.js +1 -0
  15. package/dist/client/_nuxt/{NCodeBlock.vue.e44529a6.js → NCodeBlock.vue.bdc8bfdc.js} +1 -1
  16. package/dist/client/_nuxt/NIconButton.vue.24522062.js +1 -0
  17. package/dist/client/_nuxt/NIconTitle.vue.dc58a435.js +1 -0
  18. package/dist/client/_nuxt/{NLink.vue.372e1ca0.js → NLink.vue.393c859e.js} +1 -1
  19. package/dist/client/_nuxt/NMarkdown.vue.3224fbc4.js +1 -0
  20. package/dist/client/_nuxt/NPanelGrids.eec702e8.js +1 -0
  21. package/dist/client/_nuxt/NSectionBlock.8c2cc0df.js +1 -0
  22. package/dist/client/_nuxt/{NSelect.vue.3956d7b1.js → NSelect.vue.8ff29308.js} +1 -1
  23. package/dist/client/_nuxt/{NSwitch.vue.f0f70131.js → NSwitch.vue.840840dc.js} +1 -1
  24. package/dist/client/_nuxt/{NTip.vue.f50fcd60.js → NTip.vue.79345a6a.js} +1 -1
  25. package/dist/client/_nuxt/Navbar.vue.82295224.js +1 -0
  26. package/dist/client/_nuxt/{PanelLeftRight.vue.8031c7d4.js → PanelLeftRight.vue.5871de72.js} +1 -1
  27. package/dist/client/_nuxt/StateEditor.vue.d48421f9.js +1 -0
  28. package/dist/client/_nuxt/__blank.9ffea4ef.js +1 -0
  29. package/dist/client/_nuxt/analyze-build.67bd8db6.js +1 -0
  30. package/dist/client/_nuxt/{assets.f876e2b9.js → assets.36239ace.js} +3 -3
  31. package/dist/client/_nuxt/{client.d6464981.js → client.495918a8.js} +1 -1
  32. package/dist/client/_nuxt/{components.d23cd7b8.js → components.c4c5e473.js} +27 -27
  33. package/dist/client/_nuxt/custom-_name_.3e45940d.js +1 -0
  34. package/dist/client/_nuxt/default.0d72ce4e.js +1 -0
  35. package/dist/client/_nuxt/{editor.aee50e2c.js → editor.a4d83539.js} +1 -1
  36. package/dist/client/_nuxt/entry.eeaf510e.css +1 -0
  37. package/dist/client/_nuxt/entry.fbf2c464.js +21 -0
  38. package/dist/client/_nuxt/error-404.37bdd0cf.js +1 -0
  39. package/dist/client/_nuxt/error-404.91003ceb.css +1 -0
  40. package/dist/client/_nuxt/error-500.7e02f53c.css +1 -0
  41. package/dist/client/_nuxt/error-500.f09b55ae.js +1 -0
  42. package/dist/client/_nuxt/full.7e6e1e52.js +1 -0
  43. package/dist/client/_nuxt/hooks.9f8f251f.js +1 -0
  44. package/dist/client/_nuxt/{imports.e0b9437d.js → imports.55b5830a.js} +1 -1
  45. package/dist/client/_nuxt/{index.25d3cd66.js → index.2421127a.js} +1 -1
  46. package/dist/client/_nuxt/index.b31d0db0.js +1 -0
  47. package/dist/client/_nuxt/{json-editor-vue.b8dc29b2.js → json-editor-vue.d5db52dc.js} +61 -61
  48. package/dist/client/_nuxt/middleware.bc94adc0.js +1 -0
  49. package/dist/client/_nuxt/modules.b661d7e8.js +4 -0
  50. package/dist/client/_nuxt/none.3d1d9cce.js +1 -0
  51. package/dist/client/_nuxt/{open-graph.3563ee56.js → open-graph.d11fab80.js} +2 -2
  52. package/dist/client/_nuxt/overview.82760181.js +1 -0
  53. package/dist/client/_nuxt/{pages.e4cfc065.js → pages.fbb1f607.js} +1 -1
  54. package/dist/client/_nuxt/payload.5e745a21.js +1 -0
  55. package/dist/client/_nuxt/plugins.736cbd71.js +1 -0
  56. package/dist/client/_nuxt/{runtime-configs.7810c90a.js → runtime-configs.834452b2.js} +1 -1
  57. package/dist/client/_nuxt/server-routes.20327313.js +9 -0
  58. package/dist/client/_nuxt/{settings.80338150.js → settings.ef38f4f9.js} +1 -1
  59. package/dist/client/_nuxt/{state-components.3e562e84.js → state-components.20943c6b.js} +1 -1
  60. package/dist/client/_nuxt/state-modules.7230fab3.js +1 -0
  61. package/dist/client/_nuxt/storage.40229c6e.js +1 -0
  62. package/dist/client/_nuxt/terminals.ae8c3544.css +32 -0
  63. package/dist/client/_nuxt/terminals.e4fb811f.js +9 -0
  64. package/dist/client/_nuxt/{unocss-runtime.9d0d2556.js → unocss-runtime.73092d93.js} +1 -1
  65. package/dist/client/_nuxt/{virtual-files.ae241a9c.js → virtual-files.071a4a48.js} +1 -1
  66. package/dist/client/index.html +2 -2
  67. package/dist/client/modules/analyze-build/index.html +2 -2
  68. package/dist/client/modules/assets/index.html +2 -2
  69. package/dist/client/modules/components/index.html +2 -2
  70. package/dist/client/modules/hooks/index.html +2 -2
  71. package/dist/client/modules/imports/index.html +2 -2
  72. package/dist/client/modules/middleware/index.html +2 -2
  73. package/dist/client/modules/modules/index.html +2 -2
  74. package/dist/client/modules/open-graph/index.html +2 -2
  75. package/dist/client/modules/overview/index.html +2 -2
  76. package/dist/client/modules/pages/index.html +2 -2
  77. package/dist/client/modules/payload/index.html +2 -2
  78. package/dist/client/modules/plugins/index.html +2 -2
  79. package/dist/client/modules/runtime-configs/index.html +2 -2
  80. package/dist/client/modules/server-routes/index.html +2 -2
  81. package/dist/client/modules/storage/index.html +2 -2
  82. package/dist/client/modules/terminals/index.html +2 -2
  83. package/dist/client/modules/virtual-files/index.html +2 -2
  84. package/dist/client/settings/index.html +2 -2
  85. package/dist/global-20ccb74c.d.ts +52 -0
  86. package/dist/module.d.ts +2 -0
  87. package/dist/module.json +1 -1
  88. package/dist/runtime/plugins/devtools.client.d.ts +0 -8
  89. package/dist/runtime/plugins/devtools.client.mjs +10 -84
  90. package/dist/runtime/plugins/view/FrameBox.vue +66 -35
  91. package/dist/runtime/plugins/view/Main.vue +21 -3
  92. package/dist/runtime/plugins/view/client.d.ts +8 -0
  93. package/dist/runtime/plugins/view/client.mjs +209 -1
  94. package/dist/runtime/plugins/view/state.d.ts +1 -4
  95. package/dist/runtime/plugins/view/state.mjs +2 -20
  96. package/dist/runtime/plugins/view/utils.mjs +1 -1
  97. package/dist/types.d.ts +2 -0
  98. package/package.json +24 -24
  99. package/dist/client/_nuxt/AuthRequiredPanel.vue.19da182f.js +0 -1
  100. package/dist/client/_nuxt/Badge.067326d6.js +0 -1
  101. package/dist/client/_nuxt/CodeSnippets.vue.2f33c6d1.js +0 -1
  102. package/dist/client/_nuxt/DurationDisplay.vue.4afc40a4.js +0 -1
  103. package/dist/client/_nuxt/FilepathItem.vue.3587ec1f.js +0 -1
  104. package/dist/client/_nuxt/HelpFab.vue.dbb954dd.js +0 -1
  105. package/dist/client/_nuxt/NCheckbox.vue.060051ad.js +0 -1
  106. package/dist/client/_nuxt/NIconButton.vue.ac7efd0c.js +0 -1
  107. package/dist/client/_nuxt/NIconTitle.vue.ace3a05a.js +0 -1
  108. package/dist/client/_nuxt/NMarkdown.vue.9f252ec4.js +0 -1
  109. package/dist/client/_nuxt/NPanelGrids.54ee09bc.js +0 -1
  110. package/dist/client/_nuxt/NSectionBlock.9cbe0175.js +0 -1
  111. package/dist/client/_nuxt/Navbar.vue.bd98686f.js +0 -1
  112. package/dist/client/_nuxt/NpmVersionCheck.vue.78bff2df.js +0 -1
  113. package/dist/client/_nuxt/StateEditor.vue.4439d43c.js +0 -1
  114. package/dist/client/_nuxt/__blank.944beb26.js +0 -1
  115. package/dist/client/_nuxt/analyze-build.fd781999.js +0 -1
  116. package/dist/client/_nuxt/custom-_name_.3701152b.js +0 -1
  117. package/dist/client/_nuxt/default.809c6e7c.js +0 -1
  118. package/dist/client/_nuxt/entry.717f6486.css +0 -1
  119. package/dist/client/_nuxt/entry.a0dd6aac.js +0 -19
  120. package/dist/client/_nuxt/error-404.2618a69f.css +0 -1
  121. package/dist/client/_nuxt/error-404.d560629e.js +0 -1
  122. package/dist/client/_nuxt/error-500.12a2683b.css +0 -1
  123. package/dist/client/_nuxt/error-500.d7ca8dd1.js +0 -1
  124. package/dist/client/_nuxt/error-component.15e0d602.js +0 -3
  125. package/dist/client/_nuxt/full.76363f3f.js +0 -1
  126. package/dist/client/_nuxt/hooks.3a3b761d.js +0 -1
  127. package/dist/client/_nuxt/index.d7252ef5.js +0 -1
  128. package/dist/client/_nuxt/middleware.cbbbe53d.js +0 -1
  129. package/dist/client/_nuxt/modules.092674af.js +0 -4
  130. package/dist/client/_nuxt/none.0a084ac9.js +0 -1
  131. package/dist/client/_nuxt/overview.e4073f57.js +0 -1
  132. package/dist/client/_nuxt/payload.0be0c356.js +0 -1
  133. package/dist/client/_nuxt/plugins.88ff2e07.js +0 -1
  134. package/dist/client/_nuxt/server-routes.911ca1ca.js +0 -9
  135. package/dist/client/_nuxt/storage.4d3f94ab.js +0 -1
  136. package/dist/client/_nuxt/terminals.e433a70a.js +0 -1
  137. package/dist/runtime/plugins/view/Frame.vue +0 -105
@@ -0,0 +1 @@
1
+ import{g as e,c as n,o}from"./entry.fbf2c464.js";const s=e({__name:"middleware",setup(t){return(a,r)=>(o(),n("div",null," WIP "))}});export{s as default};
@@ -0,0 +1,4 @@
1
+ import{_ as Be}from"./FilepathItem.vue.a47beb58.js";import{g as P,l as A,o as h,h as M,w as x,a as d,Z as B,q as p,d as k,t as N,c as $,n as U,s as C,b,F as R,m as W,e as le,a6 as Ie,ar as De,r as Z,ad as Re,j as ae,as as Pe,z as he,A as _e,at as ke,au as ze,p as je,f as Fe,ai as Se,av as He,aw as Ue,ax as qe,a7 as We,ay as Ke,x as Ye,ab as ve,af as Je,az as Ge,S as Xe,X as Ze,I as Qe,J as et,a3 as tt,aA as nt,U as it,K as ot,G as st,ae as ye}from"./entry.fbf2c464.js";import{_ as rt,u as Ce,a as lt}from"./state-modules.7230fab3.js";import{u as Me}from"./editor.a4d83539.js";import{_ as at}from"./NSectionBlock.8c2cc0df.js";import{_ as Te}from"./NIconButton.vue.24522062.js";import{_ as ut}from"./NIconTitle.vue.dc58a435.js";import{_ as ct}from"./Badge.d9d2b649.js";import{_ as Oe}from"./NCodeBlock.vue.bdc8bfdc.js";import{_ as dt}from"./NLink.vue.393c859e.js";import{_ as ft}from"./NTip.vue.79345a6a.js";import{_ as pt}from"./HelpFab.vue.e5d23c98.js";import"./NCheckbox.vue.f4134b6b.js";import"./client.495918a8.js";const mt={flex:"~ col gap2","flex-auto":"","of-hidden":"",px1:""},ht={"gap-1t":"",flex:"","items-center":"","text-ellipsis":"","ws-nowrap":"","text-lg":""},_t={key:2},vt=d("div",{"flex-auto":""},null,-1),yt={key:1,flex:"~ gap-2",title:"Documentation"},gt=d("span",{"i-carbon-link":"","text-lg":"",op50:""},null,-1),bt={key:2,flex:"~ gap-2"},xt=d("span",{"i-carbon-logo-github":"","text-lg":"",op50:""},null,-1),$t={flex:"~ col","items-end":""},wt={key:0,"h-20":"","w-20":"",flex:"","flex-none":"",rounded:"","bg-gray:3":"",p4:""},It=["src","alt"],kt=d("div",{"i-carbon-cube":"",ma:"","text-4xl":"",op30:""},null,-1),zt={key:1,flex:"~",mt2:"","flex-auto":"","items-end":"","justify-end":""},St=["src"],Ct=d("div",{"flex-auto":""},null,-1),Mt={flex:"","justify-end":""},Tt="https://api.nuxtjs.org/api/ipx/s_80,f_webp/gh/nuxt/modules/main/icons/",Ot="https://api.nuxtjs.org/api/ipx/s_44,f_webp/gh_avatar/",Nt="https://github.com/",Vt="https://www.npmjs.com/package/",ue=P({__name:"ModuleItemBase",props:{mod:{},info:{},compact:{type:Boolean},maintainers:{type:Boolean,default:!0}},setup(t){const e=t,n=A(()=>({...e.mod?.meta,...e.mod,...e.info})),i=Me();return(o,s)=>{const l=le,a=Ie;return h(),M(a,{p4:"",flex:"~ gap2"},{default:x(()=>[d("div",mt,[B(o.$slots,"main",{},()=>[d("div",ht,[o.mod.isPackageModule?(h(),M(l,{key:0,to:Vt+(p(n).npm||p(n).name),target:"_blank",hover:"underline text-primary"},{default:x(()=>[k(N(p(n).name),1)]),_:1},8,["to"])):o.mod.entryPath?(h(),$("button",{key:1,role:"button",hover:"underline text-primary",onClick:s[0]||(s[0]=r=>p(i)(o.mod.entryPath))},N(p(n).name),1)):(h(),$("span",_t,N(p(n).name),1)),B(o.$slots,"badge")]),p(n).description?(h(),$("div",{key:0,class:U(o.compact?"ws-nowrap of-hidden truncate":"line-clamp-2"),"mt--1":"","text-sm":"",op50:""},N(p(n).description),3)):C("",!0),vt,p(n).website?(h(),$("div",yt,[gt,b(l,{to:p(n).website,target:"_blank","of-hidden":"",truncate:"","ws-nowrap":"","text-sm":"",op50:"",hover:"op100 underline text-primary"},{default:x(()=>[k(N(p(n).website.replace(/^https?:\/\//,"")),1)]),_:1},8,["to"])])):C("",!0),p(n).github?(h(),$("div",bt,[xt,b(l,{to:p(n).github,target:"_blank","of-hidden":"",truncate:"","ws-nowrap":"","text-sm":"",op50:"",hover:"op100 underline text-primary"},{default:x(()=>[k(N(p(n).github.replace(/^https?:\/\/github.com\//,"")),1)]),_:1},8,["to"])])):C("",!0)]),B(o.$slots,"items")]),d("div",$t,[p(n).icon||o.mod.isPackageModule?(h(),$("div",wt,[p(n).icon?(h(),$("img",{key:0,src:Tt+p(n).icon,alt:o.mod.name,ma:""},null,8,It)):C("",!0),kt])):C("",!0),p(n).maintainers?.length&&o.maintainers?(h(),$("div",zt,[(h(!0),$(R,null,W(p(n).maintainers,r=>(h(),M(l,{key:r.name,target:"_blank",to:Nt+r.github,title:r.name},{default:x(()=>[d("img",{src:Ot+r.github,"h-6":"","w-6":"","rounded-full":""},null,8,St)]),_:2},1032,["to","title"]))),128))])):C("",!0),o.$slots.actions?(h(),$(R,{key:2},[Ct,d("div",Mt,[B(o.$slots,"actions")])],64)):C("",!0)])]),_:3})}}}),Lt={key:0,flex:"~ gap-2",title:"Open on filesystem"},Et=d("span",{"i-carbon-folder-move-to":"","text-lg":"",op50:""},null,-1),At=d("span",{"i-carbon-circle-dash":"","animate-spin":"","text-lg":"",op50:""},null,-1),Bt=d("code",{"text-sm":"",op50:""},"Upgrading...",-1),Dt={key:1,"mx--2":""},Rt=["onClick"],Pt=d("span",{"i-carbon-intent-request-active":"","text-lg":"","text-primary":""},null,-1),jt=d("code",{"text-xs":""},"Update installed, click to restart",-1),Ft=[Pt,jt],Ht={key:2,"mx--2":""},Ut=["onClick"],qt=d("span",{"i-carbon-intent-request-upgrade":"","text-lg":"",op50:""},null,-1),Wt={op50:""},Kt=d("div",{"i-carbon-arrow-right":"",op50:""},null,-1),Yt={"text-green":""},Jt={key:3,flex:"~ gap-2","items-center":"",title:"NPM"},Gt=d("span",{"i-carbon-cube":"","text-lg":"",op50:""},null,-1),Xt={"text-sm":"",op50:""},Zt=P({__name:"ModuleItem",props:{mod:{}},setup(t){const e=t,n=A(()=>e.mod.info),i=A(()=>({...e.mod?.meta,...e.mod,...n.value}));return(o,s)=>{const l=Be,a=le,r=rt,u=ue;return h(),M(u,{mod:o.mod,info:p(n)},{items:x(()=>[o.mod.entryPath?(h(),$("div",Lt,[Et,b(l,{filepath:o.mod.entryPath,"text-sm":"",op50:"",hover:"text-primary op100"},null,8,["filepath"])])):C("",!0),p(i).npm?(h(),M(r,{key:p(i).npm,"package-name":p(i).npm,options:{dev:!0}},{default:x(({info:f,update:_,state:v,id:w,restart:I})=>[v==="running"?(h(),M(a,{key:0,flex:"~ gap-2","animate-pulse":"","items-center":"",to:w?`/modules/terminals?id=${encodeURIComponent(w)}`:void 0},{default:x(()=>[At,Bt]),_:2},1032,["to"])):v==="updated"?(h(),$("div",Dt,[d("button",{flex:"~ gap-2",hover:"bg-primary/20","items-center":"",rounded:"","bg-primary:10":"",px2:"","text-sm":"","text-primary":"",onClick:I},Ft,8,Rt)])):f?.needsUpdate?(h(),$("div",Ht,[d("button",{flex:"~ gap-2",title:"Click to upgrade","items-center":"",rounded:"",px2:"","text-sm":"",hover:"bg-active",onClick:m=>_()},[qt,d("code",Wt,"v"+N(f.current),1),Kt,d("code",Yt,"v"+N(f.latest),1)],8,Ut)])):f?.latest?(h(),$("div",Jt,[Gt,d("code",Xt,"v"+N(f.current),1)])):C("",!0)]),_:1},8,["package-name"])):C("",!0)]),_:1},8,["mod","info"])}}}),Qt=P({__name:"NDropdown",props:{modelValue:{type:Boolean}},setup(t,{emit:e}){const i=De(t,"modelValue",e,{passive:!0}),o=Z();return Re(o,()=>{i.value=!1}),(s,l)=>{const a=ae;return h(),$("div",{ref_key:"el",ref:o,class:"relative"},[B(s.$slots,"trigger",{enabled:p(i),click:()=>i.value=!p(i)},()=>[b(a,{onClick:l[0]||(l[0]=r=>i.value=!p(i))},{default:x(()=>[k(" Dropdown ")]),_:1})]),d("div",{class:U(["absolute z-10 border n-border-base rounded shadow n-transition n-bg-base",[p(i)?"op-100":"op0 pointer-events-none -translate-y-1"]])},[B(s.$slots,"default")],2)],512)}}}),en=P({__name:"ModuleItemInstall",props:{item:{}},emits:["start"],setup(t,{emit:e}){const n=t,i=Ce(),o=A(()=>i.value.find(u=>u.name===n.item.npm)),s=A(()=>o.value&&o.value.isPackageModule),l=A(()=>o.value&&o.value.isPackageModule&&o.value.isUninstallable);async function a(u,f){const _=f==="install"?he.installNuxtModule:he.uninstallNuxtModule,v=await _(await _e(),u.npm,!0);v.commands&&await ke.start(u,v,f)&&(ze.value.push({name:u.npm,info:u,processId:v.processId}),e("start"),await _(await _e(),u.npm,!1))}const r={};return(u,f)=>{const _=ct,v=Te,w=ae,I=Qt,m=ue;return h(),M(m,{mod:r,role:p(s)?"":"button",info:u.item,mb2:"","h-full":"",class:U(p(s)?"border-dashed op75":"hover:bg-active!"),compact:!0,onClick:f[1]||(f[1]=c=>p(s)?null:a(u.item,"install"))},Pe({_:2},[p(s)?{name:"badge",fn:x(()=>[b(_,{"bg-green-400:10":"","text-green-400":""},{default:x(()=>[k(" Installed ")]),_:1}),p(l)?(h(),M(I,{key:0,n:"sm green"},{trigger:x(({click:c})=>[b(v,{icon:"carbon-overflow-menu-vertical",onClick:V=>c()},null,8,["onClick"])]),default:x(()=>[b(w,{icon:"carbon-trash-can",n:"red",onClick:f[0]||(f[0]=c=>a(u.item,"uninstall"))},{default:x(()=>[k(" Uninstall ")]),_:1})]),_:1})):C("",!0)]),key:"0"}:void 0]),1032,["role","info","class"])}}});function tn(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);var n=t.indexOf("Trident/");if(n>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var o=t.indexOf("Edge/");return o>0?parseInt(t.substring(o+5,t.indexOf(".",o)),10):-1}let J;function te(){te.init||(te.init=!0,J=tn()!==-1)}var Q={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){te(),Se(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});const t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",J&&this.$el.appendChild(t),t.data="about:blank",J||this.$el.appendChild(t)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!J&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}};const nn=He();je("data-v-b329ee4c");const on={class:"resize-observer",tabindex:"-1"};Fe();const sn=nn((t,e,n,i,o,s)=>(h(),M("div",on)));Q.render=sn;Q.__scopeId="data-v-b329ee4c";Q.__file="src/components/ResizeObserver.vue";function G(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?G=function(e){return typeof e}:G=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},G(t)}function rn(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ge(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function ln(t,e,n){return e&&ge(t.prototype,e),n&&ge(t,n),t}function be(t){return an(t)||un(t)||cn(t)||dn()}function an(t){if(Array.isArray(t))return ne(t)}function un(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function cn(t,e){if(t){if(typeof t=="string")return ne(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ne(t,e)}}function ne(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}function dn(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
2
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function fn(t){var e;return typeof t=="function"?e={callback:t}:e=t,e}function pn(t,e){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i,o,s,l=function(r){for(var u=arguments.length,f=new Array(u>1?u-1:0),_=1;_<u;_++)f[_-1]=arguments[_];if(s=f,!(i&&r===o)){var v=n.leading;typeof v=="function"&&(v=v(r,o)),(!i||r!==o)&&v&&t.apply(void 0,[r].concat(be(s))),o=r,clearTimeout(i),i=setTimeout(function(){t.apply(void 0,[r].concat(be(s))),i=0},e)}};return l._clear=function(){clearTimeout(i),i=null},l}function Ne(t,e){if(t===e)return!0;if(G(t)==="object"){for(var n in t)if(!Ne(t[n],e[n]))return!1;return!0}return!1}var mn=function(){function t(e,n,i){rn(this,t),this.el=e,this.observer=null,this.frozen=!1,this.createObserver(n,i)}return ln(t,[{key:"createObserver",value:function(n,i){var o=this;if(this.observer&&this.destroyObserver(),!this.frozen){if(this.options=fn(n),this.callback=function(a,r){o.options.callback(a,r),a&&o.options.once&&(o.frozen=!0,o.destroyObserver())},this.callback&&this.options.throttle){var s=this.options.throttleOptions||{},l=s.leading;this.callback=pn(this.callback,this.options.throttle,{leading:function(r){return l==="both"||l==="visible"&&r||l==="hidden"&&!r}})}this.oldResult=void 0,this.observer=new IntersectionObserver(function(a){var r=a[0];if(a.length>1){var u=a.find(function(_){return _.isIntersecting});u&&(r=u)}if(o.callback){var f=r.isIntersecting&&r.intersectionRatio>=o.threshold;if(f===o.oldResult)return;o.oldResult=f,o.callback(f,r)}},this.options.intersection),Se(function(){o.observer&&o.observer.observe(o.el)})}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&typeof this.options.intersection.threshold=="number"?this.options.intersection.threshold:0}}]),t}();function Ve(t,e,n){var i=e.value;if(i)if(typeof IntersectionObserver>"u")console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill");else{var o=new mn(t,i,n);t._vue_visibilityState=o}}function hn(t,e,n){var i=e.value,o=e.oldValue;if(!Ne(i,o)){var s=t._vue_visibilityState;if(!i){Le(t);return}s?s.createObserver(i,n):Ve(t,{value:i},n)}}function Le(t){var e=t._vue_visibilityState;e&&(e.destroyObserver(),delete t._vue_visibilityState)}var _n={beforeMount:Ve,updated:hn,unmounted:Le},vn={itemsLimit:1e3},yn=/(auto|scroll)/;function Ee(t,e){return t.parentNode===null?e:Ee(t.parentNode,e.concat([t]))}var ee=function(e,n){return getComputedStyle(e,null).getPropertyValue(n)},gn=function(e){return ee(e,"overflow")+ee(e,"overflow-y")+ee(e,"overflow-x")},bn=function(e){return yn.test(gn(e))};function xe(t){if(t instanceof HTMLElement||t instanceof SVGElement){for(var e=Ee(t.parentNode,[]),n=0;n<e.length;n+=1)if(bn(e[n]))return e[n];return document.scrollingElement||document.documentElement}}function ie(t){"@babel/helpers - typeof";return ie=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ie(t)}var xn={items:{type:Array,required:!0},keyField:{type:String,default:"id"},direction:{type:String,default:"vertical",validator:function(e){return["vertical","horizontal"].includes(e)}},listTag:{type:String,default:"div"},itemTag:{type:String,default:"div"}};function $n(){return this.items.length&&ie(this.items[0])!=="object"}var oe=!1;if(typeof window<"u"){oe=!1;try{var wn=Object.defineProperty({},"passive",{get:function(){oe=!0}});window.addEventListener("test",null,wn)}catch{}}let In=0;var ce={name:"RecycleScroller",components:{ResizeObserver:Q},directives:{ObserveVisibility:_n},props:{...xn,itemSize:{type:Number,default:null},gridItems:{type:Number,default:void 0},itemSecondarySize:{type:Number,default:void 0},minItemSize:{type:[Number,String],default:null},sizeField:{type:String,default:"size"},typeField:{type:String,default:"type"},buffer:{type:Number,default:200},pageMode:{type:Boolean,default:!1},prerender:{type:Number,default:0},emitUpdate:{type:Boolean,default:!1},updateInterval:{type:Number,default:0},skipHover:{type:Boolean,default:!1},listTag:{type:String,default:"div"},itemTag:{type:String,default:"div"},listClass:{type:[String,Object,Array],default:""},itemClass:{type:[String,Object,Array],default:""}},emits:["resize","visible","hidden","update","scroll-start","scroll-end"],data(){return{pool:[],totalSize:0,ready:!1,hoverKey:null}},computed:{sizes(){if(this.itemSize===null){const t={"-1":{accumulator:0}},e=this.items,n=this.sizeField,i=this.minItemSize;let o=1e4,s=0,l;for(let a=0,r=e.length;a<r;a++)l=e[a][n]||i,l<o&&(o=l),s+=l,t[a]={accumulator:s,size:l};return this.$_computedMinItemSize=o,t}return[]},simpleArray:$n,itemIndexByKey(){const{keyField:t,items:e}=this,n={};for(let i=0,o=e.length;i<o;i++)n[e[i][t]]=i;return n}},watch:{items(){this.updateVisibleItems(!0)},pageMode(){this.applyPageMode(),this.updateVisibleItems(!1)},sizes:{handler(){this.updateVisibleItems(!1)},deep:!0},gridItems(){this.updateVisibleItems(!0)},itemSecondarySize(){this.updateVisibleItems(!0)}},created(){this.$_startIndex=0,this.$_endIndex=0,this.$_views=new Map,this.$_unusedViews=new Map,this.$_scrollDirty=!1,this.$_lastUpdateScrollPosition=0,this.prerender&&(this.$_prerender=!0,this.updateVisibleItems(!1)),this.gridItems&&!this.itemSize&&console.error("[vue-recycle-scroller] You must provide an itemSize when using gridItems")},mounted(){this.applyPageMode(),this.$nextTick(()=>{this.$_prerender=!1,this.updateVisibleItems(!0),this.ready=!0})},activated(){const t=this.$_lastUpdateScrollPosition;typeof t=="number"&&this.$nextTick(()=>{this.scrollToPosition(t)})},beforeUnmount(){this.removeListeners()},methods:{addView(t,e,n,i,o){const s=Ue({id:In++,index:e,used:!0,key:i,type:o}),l=qe({item:n,position:0,nr:s});return t.push(l),l},unuseView(t,e=!1){const n=this.$_unusedViews,i=t.nr.type;let o=n.get(i);o||(o=[],n.set(i,o)),o.push(t),e||(t.nr.used=!1,t.position=-9999)},handleResize(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll(t){if(!this.$_scrollDirty){if(this.$_scrollDirty=!0,this.$_updateTimeout)return;const e=()=>requestAnimationFrame(()=>{this.$_scrollDirty=!1;const{continuous:n}=this.updateVisibleItems(!1,!0);n||(clearTimeout(this.$_refreshTimout),this.$_refreshTimout=setTimeout(this.handleScroll,this.updateInterval+100))});e(),this.updateInterval&&(this.$_updateTimeout=setTimeout(()=>{this.$_updateTimeout=0,this.$_scrollDirty&&e()},this.updateInterval))}},handleVisibilityChange(t,e){this.ready&&(t||e.boundingClientRect.width!==0||e.boundingClientRect.height!==0?(this.$emit("visible"),requestAnimationFrame(()=>{this.updateVisibleItems(!1)})):this.$emit("hidden"))},updateVisibleItems(t,e=!1){const n=this.itemSize,i=this.gridItems||1,o=this.itemSecondarySize||n,s=this.$_computedMinItemSize,l=this.typeField,a=this.simpleArray?null:this.keyField,r=this.items,u=r.length,f=this.sizes,_=this.$_views,v=this.$_unusedViews,w=this.pool,I=this.itemIndexByKey;let m,c,V,z,O;if(!u)m=c=z=O=V=0;else if(this.$_prerender)m=z=0,c=O=Math.min(this.prerender,r.length),V=null;else{const g=this.getScroll();if(e){let T=g.start-this.$_lastUpdateScrollPosition;if(T<0&&(T=-T),n===null&&T<s||T<n)return{continuous:!0}}this.$_lastUpdateScrollPosition=g.start;const L=this.buffer;g.start-=L,g.end+=L;let S=0;if(this.$refs.before&&(S=this.$refs.before.scrollHeight,g.start-=S),this.$refs.after){const T=this.$refs.after.scrollHeight;g.end+=T}if(n===null){let T,q=0,pe=u-1,E=~~(u/2),me;do me=E,T=f[E].accumulator,T<g.start?q=E:E<u-1&&f[E+1].accumulator>g.start&&(pe=E),E=~~((q+pe)/2);while(E!==me);for(E<0&&(E=0),m=E,V=f[u-1].accumulator,c=E;c<u&&f[c].accumulator<g.end;c++);for(c===-1?c=r.length-1:(c++,c>u&&(c=u)),z=m;z<u&&S+f[z].accumulator<g.start;z++);for(O=z;O<u&&S+f[O].accumulator<g.end;O++);}else{m=~~(g.start/n*i);const T=m%i;m-=T,c=Math.ceil(g.end/n*i),z=Math.max(0,Math.floor((g.start-S)/n*i)),O=Math.floor((g.end-S)/n*i),m<0&&(m=0),c>u&&(c=u),z<0&&(z=0),O>u&&(O=u),V=Math.ceil(u/i)*n}}c-m>vn.itemsLimit&&this.itemsLimitError(),this.totalSize=V;let y;const F=m<=this.$_endIndex&&c>=this.$_startIndex;if(F)for(let g=0,L=w.length;g<L;g++)y=w[g],y.nr.used&&(t&&(y.nr.index=I[y.item[a]]),(y.nr.index==null||y.nr.index<m||y.nr.index>=c)&&this.unuseView(y));const fe=F?null:new Map;let H,D,Y;for(let g=m;g<c;g++){H=r[g];const L=a?H[a]:H;if(L==null)throw new Error(`Key is ${L} on item (keyField is '${a}')`);if(y=_.get(L),!n&&!f[g].size){y&&this.unuseView(y);continue}D=H[l];let S=v.get(D),T=!1;if(!y)F?S&&S.length?y=S.pop():y=this.addView(w,g,H,L,D):(Y=fe.get(D)||0,(!S||Y>=S.length)&&(y=this.addView(w,g,H,L,D),this.unuseView(y,!0),S=v.get(D)),y=S[Y],fe.set(D,Y+1)),_.delete(y.nr.key),y.nr.used=!0,y.nr.index=g,y.nr.key=L,y.nr.type=D,_.set(L,y),T=!0;else if(!y.nr.used&&(y.nr.used=!0,T=!0,S)){const q=S.indexOf(y);q!==-1&&S.splice(q,1)}y.item=H,T&&(g===r.length-1&&this.$emit("scroll-end"),g===0&&this.$emit("scroll-start")),n===null?(y.position=f[g-1].accumulator,y.offset=0):(y.position=Math.floor(g/i)*n,y.offset=g%i*o)}return this.$_startIndex=m,this.$_endIndex=c,this.emitUpdate&&this.$emit("update",m,c,z,O),clearTimeout(this.$_sortTimer),this.$_sortTimer=setTimeout(this.sortViews,this.updateInterval+300),{continuous:F}},getListenerTarget(){let t=xe(this.$el);return window.document&&(t===window.document.documentElement||t===window.document.body)&&(t=window),t},getScroll(){const{$el:t,direction:e}=this,n=e==="vertical";let i;if(this.pageMode){const o=t.getBoundingClientRect(),s=n?o.height:o.width;let l=-(n?o.top:o.left),a=n?window.innerHeight:window.innerWidth;l<0&&(a+=l,l=0),l+a>s&&(a=s-l),i={start:l,end:l+a}}else n?i={start:t.scrollTop,end:t.scrollTop+t.clientHeight}:i={start:t.scrollLeft,end:t.scrollLeft+t.clientWidth};return i},applyPageMode(){this.pageMode?this.addListeners():this.removeListeners()},addListeners(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,oe?{passive:!0}:!1),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem(t){let e;const n=this.gridItems||1;this.itemSize===null?e=t>0?this.sizes[t-1].accumulator:0:e=Math.floor(t/n)*this.itemSize,this.scrollToPosition(e)},scrollToPosition(t){const e=this.direction==="vertical"?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};let n,i,o;if(this.pageMode){const s=xe(this.$el),l=s.tagName==="HTML"?0:s[e.scroll],a=s.getBoundingClientRect(),u=this.$el.getBoundingClientRect()[e.start]-a[e.start];n=s,i=e.scroll,o=t+l+u}else n=this.$el,i=e.scroll,o=t;n[i]=o},itemsLimitError(){throw setTimeout(()=>{console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",this.$el),console.log("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.")}),new Error("Rendered items limit reached")},sortViews(){this.pool.sort((t,e)=>t.nr.index-e.nr.index)}}};const kn={key:0,ref:"before",class:"vue-recycle-scroller__slot"},zn={key:1,ref:"after",class:"vue-recycle-scroller__slot"};function Sn(t,e,n,i,o,s){const l=We("ResizeObserver"),a=Ke("observe-visibility");return Ye((h(),$("div",{class:U(["vue-recycle-scroller",{ready:o.ready,"page-mode":n.pageMode,[`direction-${t.direction}`]:!0}]),onScrollPassive:e[0]||(e[0]=(...r)=>s.handleScroll&&s.handleScroll(...r))},[t.$slots.before?(h(),$("div",kn,[B(t.$slots,"before")],512)):C("v-if",!0),(h(),M(ve(n.listTag),{ref:"wrapper",style:Xe({[t.direction==="vertical"?"minHeight":"minWidth"]:o.totalSize+"px"}),class:U(["vue-recycle-scroller__item-wrapper",n.listClass])},{default:x(()=>[(h(!0),$(R,null,W(o.pool,r=>(h(),M(ve(n.itemTag),Je({key:r.nr.id,style:o.ready?{transform:`translate${t.direction==="vertical"?"Y":"X"}(${r.position}px) translate${t.direction==="vertical"?"X":"Y"}(${r.offset}px)`,width:n.gridItems?`${t.direction==="vertical"&&n.itemSecondarySize||n.itemSize}px`:void 0,height:n.gridItems?`${t.direction==="horizontal"&&n.itemSecondarySize||n.itemSize}px`:void 0}:null,class:["vue-recycle-scroller__item-view",[n.itemClass,{hover:!n.skipHover&&o.hoverKey===r.nr.key}]]},Ge(n.skipHover?{}:{mouseenter:()=>{o.hoverKey=r.nr.key},mouseleave:()=>{o.hoverKey=null}})),{default:x(()=>[B(t.$slots,"default",{item:r.item,index:r.nr.index,active:r.nr.used})]),_:2},1040,["style","class"]))),128)),B(t.$slots,"empty")]),_:3},8,["style","class"])),t.$slots.after?(h(),$("div",zn,[B(t.$slots,"after")],512)):C("v-if",!0),b(l,{onNotify:s.handleResize},null,8,["onNotify"])],34)),[[a,s.handleVisibilityChange]])}ce.render=Sn;ce.__file="src/components/RecycleScroller.vue";const Cn={"h-full":"",flex:"~ col gap-4"},Mn={"flex-auto":"","of-auto":"",flex:"~ col gap-2",pl6:"",pr4:""},Tn=P({__name:"ModuleInstallList",emits:["close"],setup(t,{emit:e}){const n=lt(),i=Z(""),o=A(()=>new Ze(n.value||[],{keys:["name","description","npm","category"]})),s=A(()=>i.value?o.value.search(i.value).map(l=>l.item):n.value);return(l,a)=>{const r=ut,u=et,f=en;return h(),$("div",Cn,[b(r,{mx6:"",mt6:"","text-xl":"",op75:"",icon:"i-carbon-intent-request-create",text:"Install Module"}),b(u,{modelValue:p(i),"onUpdate:modelValue":a[0]||(a[0]=_=>Qe(i)?i.value=_:null),placeholder:"Search...",icon:"carbon-search",n:"primary",mx6:"","px-5":"","py-2":""},null,8,["modelValue"]),d("div",Mn,[b(p(ce),{class:"scroller",items:p(s),"item-size":160,"key-field":"name"},{default:x(({item:_})=>[b(f,{item:_,onStart:a[1]||(a[1]=v=>e("close"))},null,8,["item"])]),_:1},8,["items"])])])}}});function j(){}j.prototype={diff:function(e,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=i.callback;typeof i=="function"&&(o=i,i={}),this.options=i;var s=this;function l(m){return o?(setTimeout(function(){o(void 0,m)},0),!0):m}e=this.castInput(e),n=this.castInput(n),e=this.removeEmpty(this.tokenize(e)),n=this.removeEmpty(this.tokenize(n));var a=n.length,r=e.length,u=1,f=a+r;i.maxEditLength&&(f=Math.min(f,i.maxEditLength));var _=[{newPos:-1,components:[]}],v=this.extractCommon(_[0],n,e,0);if(_[0].newPos+1>=a&&v+1>=r)return l([{value:this.join(n),count:n.length}]);function w(){for(var m=-1*u;m<=u;m+=2){var c=void 0,V=_[m-1],z=_[m+1],O=(z?z.newPos:0)-m;V&&(_[m-1]=void 0);var y=V&&V.newPos+1<a,F=z&&0<=O&&O<r;if(!y&&!F){_[m]=void 0;continue}if(!y||F&&V.newPos<z.newPos?(c=Nn(z),s.pushComponent(c.components,void 0,!0)):(c=V,c.newPos++,s.pushComponent(c.components,!0,void 0)),O=s.extractCommon(c,n,e,m),c.newPos+1>=a&&O+1>=r)return l(On(s,c.components,n,e,s.useLongestToken));_[m]=c}u++}if(o)(function m(){setTimeout(function(){if(u>f)return o();w()||m()},0)})();else for(;u<=f;){var I=w();if(I)return I}},pushComponent:function(e,n,i){var o=e[e.length-1];o&&o.added===n&&o.removed===i?e[e.length-1]={count:o.count+1,added:n,removed:i}:e.push({count:1,added:n,removed:i})},extractCommon:function(e,n,i,o){for(var s=n.length,l=i.length,a=e.newPos,r=a-o,u=0;a+1<s&&r+1<l&&this.equals(n[a+1],i[r+1]);)a++,r++,u++;return u&&e.components.push({count:u}),e.newPos=a,r},equals:function(e,n){return this.options.comparator?this.options.comparator(e,n):e===n||this.options.ignoreCase&&e.toLowerCase()===n.toLowerCase()},removeEmpty:function(e){for(var n=[],i=0;i<e.length;i++)e[i]&&n.push(e[i]);return n},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};function On(t,e,n,i,o){for(var s=0,l=e.length,a=0,r=0;s<l;s++){var u=e[s];if(u.removed){if(u.value=t.join(i.slice(r,r+u.count)),r+=u.count,s&&e[s-1].added){var _=e[s-1];e[s-1]=e[s],e[s]=_}}else{if(!u.added&&o){var f=n.slice(a,a+u.count);f=f.map(function(w,I){var m=i[r+I];return m.length>w.length?m:w}),u.value=t.join(f)}else u.value=t.join(n.slice(a,a+u.count));a+=u.count,u.added||(r+=u.count)}}var v=e[l-1];return l>1&&typeof v.value=="string"&&(v.added||v.removed)&&t.equals("",v.value)&&(e[l-2].value+=v.value,e.pop()),e}function Nn(t){return{newPos:t.newPos,components:t.components.slice(0)}}var $e=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,we=/\S/,Ae=new j;Ae.equals=function(t,e){return this.options.ignoreCase&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e||this.options.ignoreWhitespace&&!we.test(t)&&!we.test(e)};Ae.tokenize=function(t){for(var e=t.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),n=0;n<e.length-1;n++)!e[n+1]&&e[n+2]&&$e.test(e[n])&&$e.test(e[n+2])&&(e[n]+=e[n+2],e.splice(n+1,2),n--);return e};var de=new j;de.tokenize=function(t){var e=[],n=t.split(/(\n|\r\n)/);n[n.length-1]||n.pop();for(var i=0;i<n.length;i++){var o=n[i];i%2&&!this.options.newlineIsToken?e[e.length-1]+=o:(this.options.ignoreWhitespace&&(o=o.trim()),e.push(o))}return e};function Vn(t,e,n){return de.diff(t,e,n)}var Ln=new j;Ln.tokenize=function(t){return t.split(/(\S.+?[.!?])(?=\s+|$)/)};var En=new j;En.tokenize=function(t){return t.split(/([{}:;,]|\s+)/)};function X(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?X=function(e){return typeof e}:X=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},X(t)}var An=Object.prototype.toString,K=new j;K.useLongestToken=!0;K.tokenize=de.tokenize;K.castInput=function(t){var e=this.options,n=e.undefinedReplacement,i=e.stringifyReplacer,o=i===void 0?function(s,l){return typeof l>"u"?n:l}:i;return typeof t=="string"?t:JSON.stringify(se(t,null,null,o),o," ")};K.equals=function(t,e){return j.prototype.equals.call(K,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function se(t,e,n,i,o){e=e||[],n=n||[],i&&(t=i(o,t));var s;for(s=0;s<e.length;s+=1)if(e[s]===t)return n[s];var l;if(An.call(t)==="[object Array]"){for(e.push(t),l=new Array(t.length),n.push(l),s=0;s<t.length;s+=1)l[s]=se(t[s],e,n,i,o);return e.pop(),n.pop(),l}if(t&&t.toJSON&&(t=t.toJSON()),X(t)==="object"&&t!==null){e.push(t),l={},n.push(l);var a=[],r;for(r in t)t.hasOwnProperty(r)&&a.push(r);for(a.sort(),s=0;s<a.length;s+=1)r=a[s],l[r]=se(t[r],e,n,i,r);e.pop(),n.pop()}else l=t;return l}var re=new j;re.tokenize=function(t){return t.slice()};re.join=re.removeEmpty=function(t){return t};const Bn=P({__name:"CodeDiff",props:{from:{},to:{},lang:{}},setup(t){const e=t;function n(a,r){const u=Vn(a.trim(),r.trim()),f=[],_=[],v=[];for(const w of u){const I=w.value.trimEnd().split(`
3
+ `);for(const m of I)w.added?(f.push(v.length),v.push(m)):(w.removed&&_.push(v.length),v.push(m))}return{added:f,removed:_,result:v.join(`
4
+ `)}}const i=A(()=>n(e.from,e.to));function o(a){let r=0;return a.replace(/class="shiki/,'class="shiki diff').replace(/class="line"/g,u=>(r++,i.value.added.includes(r-1)?'class="line line-added"':i.value.removed.includes(r-1)?'class="line line-removed"':u))}const s=Z();tt(l);function l(){const a=nt(s);a&&a.querySelector(".line-added,.line-removed")?.scrollIntoView()}return(a,r)=>{const u=Oe;return h(),M(u,{ref_key:"elRef",ref:s,code:p(i).result,lang:a.lang,"transform-rendered":o,onLoaded:l},null,8,["code","lang"])}}}),Dn={flex:"~ col gap-2","w-150":"",p4:"",border:"t base"},Rn={capitalize:""},Pn=d("p",{op50:""}," Following command will be executed in your terminal: ",-1),jn={op50:""},Fn=d("p",null,[d("span",{op50:""},"After that, Nuxt will "),d("span",{"text-orange":""},"restart automatically"),k(". ")],-1),Hn={flex:"~ gap-3",mt2:"","justify-end":""},Un=P({__name:"ModuleActionDialog",setup(t){const e=it(),n=Me(),i={};return(o,s)=>{const l=ue,a=Oe,r=dt,u=Bn,f=ft,_=ae,v=ot;return h(),M(p(ke),null,{default:x(({resolve:w,args:I})=>[b(v,{"model-value":!0,onClose:m=>w(!1)},{default:x(()=>[b(l,{mod:i,info:I[0],border:"none","w-150":"","n-panel-grids":""},null,8,["info"]),d("div",Dn,[d("h2",{"text-xl":"",class:U(I[2]==="install"?"text-primary":"text-red")},[d("span",Rn,N(I[2]),1),k(),d("code",null,N(I[0].name),1),k("? ")],2),Pn,b(a,{code:I[1].commands.join(" "),lang:"bash",px4:"",py2:"",border:"~ base rounded",lines:!1},null,8,["code"]),d("p",jn,[k(" Then your "),b(r,{role:"button",n:"primary",onClick:s[0]||(s[0]=m=>p(n)(p(e)?._nuxtConfigFile)),textContent:"Nuxt config"}),k(" will be updated as: ")]),b(u,{from:I[1].configOriginal,to:I[1].configGenerated,"max-h-80":"","of-auto":"",py2:"",border:"~ base rounded",lang:"ts"},null,8,["from","to"]),Fn,d("div",Hn,[b(f,{n:"sm purple","flex-auto":"",icon:"carbon-chemistry"},{default:x(()=>[k(" Experimental. Backup your project first. ")]),_:1}),b(_,{onClick:m=>w(!1)},{default:x(()=>[k(" Cancel ")]),_:2},1032,["onClick"]),b(_,{n:"solid",capitalize:"",class:U(I[2]==="install"?"n-primary":"n-red"),onClick:m=>w(!0)},{default:x(()=>[k(N(I[2]),1)]),_:2},1032,["class","onClick"])])])]),_:2},1032,["onClose"])]),_:1})}}}),qn={class:"markdown-body"},Wn=d("h1",null,"Modules",-1),Kn=d("p",null,[k("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 "),d("code",null,"nuxt.config"),k(".")],-1),Yn=d("p",null,[k("You can explore the list of modules on "),d("a",{href:"https://nuxt.com/modules",target:"_blank",rel:"noopener"},"nuxt.com/modules"),k(" or install them directly inside the DevTools.")],-1),Jn=d("p",null,[d("a",{href:"https://nuxt.com/docs/guide/concepts/modules",target:"_blank",rel:"noopener"},"Learn more on the documentation")],-1),Gn=[Wn,Kn,Yn,Jn],Xn={__name:"modules",setup(t,{expose:e}){return e({frontmatter:{}}),(i,o)=>(h(),$("div",qn,Gn))}},Zn={"h-full":"","w-full":"","of-auto":""},Qn={relative:"","h-20":"","w-20":"",flex:"","flex-none":"",rounded:"","bg-gray:3":"",p3:""},ei=["src","alt"],ti=d("div",{"i-carbon-cube":"",ma:"","text-4xl":"",op30:""},null,-1),ni={"text-lg":"","group-hover":"text-primary",transition:"",flex:"~ gap-2 items-center"},ii=d("div",{"i-carbon-circle-dash":"","animate-spin":"","text-xl":"",op75:""},null,-1),oi={op75:""},si=d("div",{"i-carbon-intent-request-create":"","text-4xl":"",op40:"","group-hover":"op75 text-primary",transition:""},null,-1),ri=d("div",{"text-lg":"",op40:"","group-hover":"op75 text-primary",transition:""}," Install New Module ",-1),li={key:0,border:"l base",pos:"fixed bottom-0 right-0 top-0","z-200":"","w-150":"","bg-base":""},ai="https://api.nuxtjs.org/api/ipx/s_80,f_webp/gh/nuxt/modules/main/icons/",wi=P({__name:"modules",setup(t){const e=Z(!1),n=Ce(),i=A(()=>n.value.filter(s=>s.isPackageModule)),o=A(()=>n.value.filter(s=>!s.isPackageModule));return st(()=>[{id:"action:modules:install",title:"Install a new module",icon:"i-carbon-intent-request-create ",action:()=>{e.value=!0}}]),(s,l)=>{const a=Zt,r=Ie,u=le,f=at,_=Te,v=Tn,w=Un,I=Xn,m=pt;return h(),$(R,null,[d("div",Zn,[b(f,{icon:"carbon-3d-mpr-toggle",text:"Installed Modules","container-class":"grid grid-cols-minmax-400px gap3 px4",padding:!1,description:`Total modules: ${p(i).length}`},{default:x(()=>[(h(!0),$(R,null,W(p(i),c=>(h(),M(a,{key:c.name,mod:c},null,8,["mod"]))),128)),(h(!0),$(R,null,W("processInstallingModules"in s?s.processInstallingModules:p(ze),c=>(h(),M(u,{key:c.processId,block:"","min-h-30":"",to:`/modules/terminals?id=${encodeURIComponent(c.processId)}`},{default:x(()=>[b(r,{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(()=>[d("div",Qn,[d("img",{src:ai+c.info.icon,alt:c.info.name,ma:""},null,8,ei),ti]),d("div",ni,[ii,d("span",oi,"Installing "+N(c.name)+"...",1)])]),_:2},1024)]),_:2},1032,["to"]))),128)),b(r,{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:l[0]||(l[0]=c=>e.value=!0)},{default:x(()=>[si,ri]),_:1})]),_:1},8,["description"]),p(o).length?(h(),M(f,{key:0,icon:"carbon-3d-mpr-toggle",text:"User Modules","container-class":"grid grid-cols-minmax-400px gap3 px4",padding:!1,description:`Total modules: ${p(o).length}`},{default:x(()=>[(h(!0),$(R,null,W(p(o),c=>(h(),$(R,{key:c.meta?.name||c.entryPath},[c.meta?.name||c.entryPath?(h(),M(a,{key:0,mod:c},null,8,["mod"])):C("",!0)],64))),128))]),_:1},8,["description"])):C("",!0),b(ye,{name:"fade-in"},{default:x(()=>[p(e)?(h(),$("div",{key:0,class:"fixed bottom-0 left-0 right-0 top-0 z-100","bg-black:20":"","backdrop-blur-2":"",onClick:l[1]||(l[1]=c=>e.value=!1)})):C("",!0)]),_:1}),b(ye,{name:"slide-in"},{default:x(()=>[p(e)?(h(),$("div",li,[b(_,{icon:"carbon-close",pos:"absolute top-3 right-3","rounded-full":"","text-xl":"",onClick:l[2]||(l[2]=c=>e.value=!1)}),b(v,{onClose:l[3]||(l[3]=c=>e.value=!1)})])):C("",!0)]),_:1}),b(w)]),b(m,null,{default:x(()=>[b(I)]),_:1})],64)}}});export{wi as default};
@@ -0,0 +1 @@
1
+ import{_ as r,Z as n}from"./entry.fbf2c464.js";const t={};function o(e,s){return n(e.$slots,"default")}const _=r(t,[["render",o]]);export{_ as default};
@@ -1,3 +1,3 @@
1
- import{a as S,o,c as M,w as u,Z as X,e as a,q as x,n as ee,g as te,ab as oe,l as C,aG as ne,r as I,u as e,b as t,m as L,p as O,t as h,F as T,f as d,j as $,a6 as z,h as ae,S as R,aH as G,aI as se,aJ as re,T as ie,aK as ce,aL as le,aM as de,aN as J,ai as pe,H as me,aO as ue,J as ge}from"./entry.a0dd6aac.js";import{_ as he}from"./NIconButton.vue.ac7efd0c.js";import{_ as _e}from"./Navbar.vue.bd98686f.js";import{_ as fe}from"./NLink.vue.372e1ca0.js";import{_ as P}from"./NSectionBlock.9cbe0175.js";import{_ as ve}from"./NCodeBlock.vue.e44529a6.js";import{a as be,u as V}from"./editor.aee50e2c.js";import{_ as we}from"./HelpFab.vue.dbb954dd.js";import"./NIconTitle.vue.ace3a05a.js";import"./client.d6464981.js";const xe={key:0,"i-carbon:arrow-up-right":"","translate-y--1":"","text-xs":"",op50:""},D=S({__name:"NTextExternalLink",props:{link:{}},setup(b){return(n,c)=>(o(),M(oe(n.link?fe:"div"),ee(te(n.link?{href:n.link,target:"_blank",rel:"noopener noreferrer"}:{})),{default:u(()=>[X(n.$slots,"default"),n.link?(o(),a("div",xe)):x("",!0)]),_:3},16))}}),H=[{name:"title",suggestion:"required",head:{title:"[title]"},seoMeta:{title:"[title]"},docs:"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title",description:"A concise and descriptive title for the browser that accurately summarizes the content of the page."},{name:"description",suggestion:"required",head:{meta:[{name:"description",content:"[description]"}]},seoMeta:{description:"[description]"},description:"A one to two sentence summary for search engines that includes relevant keywords to improve visibility in search results."},{name:"icon",suggestion:"recommended",head:{link:[{rel:"icon",type:"image/png",href:"/favicon.png"}]},description:"A small image that appears in the browser tab and bookmark menu to help users easily identify the page."},{name:"lang",suggestion:"recommended",head:{htmlAttrs:{lang:"en"}},description:"The primary language of the page to help search engines and browsers understand the content."},{name:"og:title",suggestion:"recommended",head:{meta:[{property:"og:title",content:"[og:title]"}]},seoMeta:{ogTitle:"[og:title]"},docs:"https://ogp.me/#metadata",description:"A title for the link preview used by social media platforms."},{name:"og:description",suggestion:"recommended",head:{meta:[{property:"og:description",content:"[og:description]"}]},seoMeta:{ogDescription:"[og:description]"},docs:"https://ogp.me/#metadata",description:"A description for the link preview used by social media platforms."},{name:"og:image",suggestion:"recommended",head:{meta:[{property:"og:image",content:"[og:image]"}]},seoMeta:{ogImage:"[og:image]"},docs:"https://ogp.me/#metadata",description:"An image for the link preview used by social media platforms."},{name:"og:url",suggestion:"recommended",head:{meta:[{property:"og:url",content:"[og:url]"}]},seoMeta:{ogUrl:"[og:url]"},docs:"https://ogp.me/#metadata",description:"A canonical URL for the link preview used to specify the preferred URL to display in search engine results and social media previews when multiple URLs may point to the same page."},{name:"twitter:title",suggestion:"recommended",head:{meta:[{name:"twitter:title",content:"[twitter:title]"}]},seoMeta:{twitterTitle:"[twitter:title]"},docs:"https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards",description:"A title for the Twitter card used to provide a preview of the content shared on the page."},{name:"twitter:description",suggestion:"recommended",head:{meta:[{name:"twitter:description",content:"[twitter:description]"}]},seoMeta:{twitterDescription:"[twitter:description]"},docs:"https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards",description:"A description for the Twitter card used to provide a preview of the content shared on the page."},{name:"twitter:image",suggestion:"recommended",head:{meta:[{name:"twitter:image",content:"[twitter:image]"}]},seoMeta:{twitterImage:"[twitter:image]"},docs:"https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards",description:"An image for the Twitter card used to provide a preview of the content shared on the page."},{name:"twitter:card",suggestion:"recommended",head:{meta:[{name:"twitter:card",content:"summary"}]},seoMeta:{twitterCard:"summary"},docs:"https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards",description:"The type of Twitter card to use, which determines the type of card to display in link previews on Twitter."}],ye={flex:"~ wrap","mt--2":"","w-full":"","flex-none":""},ke=["onClick"],$e=t("div",{border:"b base","flex-auto":""},null,-1),Te={key:0,"x-divider":""},Ce={key:1,"x-divider":""},Se={flex:"~ gap-1 items-center",px4:"",py2:""},Ne=t("div",{"i-carbon-warning":"","text-orange":""},null,-1),Me={"w-full":"",p2:"",op75:""},Oe={key:1,m4:"",flex:"~ col gap-2"},Ae={flex:"~ gap-1 wrap items-center"},Ie={key:1},Le={flex:"~ gap-2",n:"sm primary",absolute:"","right-2":"","top-2":""},Re=S({__name:"OpenGraphMissingTabs",props:{tags:{},matchedRouteFilepath:{}},setup(b){const n=b,c=C(()=>H.filter(s=>!n.tags?.some(p=>p.name===s.name))),l=C(()=>{let s={};const p={};c.value.forEach(g=>{g.seoMeta?Object.assign(p,g.seoMeta):s=ne(s,g.head)});const v=[];if(Object.keys(p).length){const g=JSON.stringify(p,null,2).replace(/"([^"]+)":/g,"$1:").replace(/"/g,"'");v.push(`useSeoMeta(${g})`)}if(Object.keys(s).length){const g=JSON.stringify(s,null,2).replace(/"([^"]+)":/g,"$1:").replace(/"/g,"'");v.push(`useHead(${g})`)}return v.join(`
1
+ import{g as S,o,h as M,w as u,Z as X,c as a,s as x,aB as ee,aC as te,ab as oe,l as C,aD as ne,r as A,q as e,a as t,m as L,n as O,t as h,F as T,b as d,d as $,a6 as z,j as ae,S as R,aE as D,aF as se,aG as re,T as ie,aH as ce,aI as le,aJ as de,aK as J,ai as pe,I as me,aL as ue,J as ge}from"./entry.fbf2c464.js";import{_ as he}from"./NIconButton.vue.24522062.js";import{_ as _e}from"./Navbar.vue.82295224.js";import{_ as fe}from"./NLink.vue.393c859e.js";import{_ as G}from"./NSectionBlock.8c2cc0df.js";import{_ as ve}from"./NCodeBlock.vue.bdc8bfdc.js";import{a as be,u as P}from"./editor.a4d83539.js";import{_ as we}from"./HelpFab.vue.e5d23c98.js";import"./NIconTitle.vue.dc58a435.js";import"./client.495918a8.js";const xe={key:0,"i-carbon:arrow-up-right":"","translate-y--1":"","text-xs":"",op50:""},V=S({__name:"NTextExternalLink",props:{link:{}},setup(b){return(n,c)=>(o(),M(oe(n.link?fe:"div"),ee(te(n.link?{href:n.link,target:"_blank",rel:"noopener noreferrer"}:{})),{default:u(()=>[X(n.$slots,"default"),n.link?(o(),a("div",xe)):x("",!0)]),_:3},16))}}),H=[{name:"title",suggestion:"required",head:{title:"[title]"},seoMeta:{title:"[title]"},docs:"https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title",description:"A concise and descriptive title for the browser that accurately summarizes the content of the page."},{name:"description",suggestion:"required",head:{meta:[{name:"description",content:"[description]"}]},seoMeta:{description:"[description]"},description:"A one to two sentence summary for search engines that includes relevant keywords to improve visibility in search results."},{name:"icon",suggestion:"recommended",head:{link:[{rel:"icon",type:"image/png",href:"/favicon.png"}]},description:"A small image that appears in the browser tab and bookmark menu to help users easily identify the page."},{name:"lang",suggestion:"recommended",head:{htmlAttrs:{lang:"en"}},description:"The primary language of the page to help search engines and browsers understand the content."},{name:"og:title",suggestion:"recommended",head:{meta:[{property:"og:title",content:"[og:title]"}]},seoMeta:{ogTitle:"[og:title]"},docs:"https://ogp.me/#metadata",description:"A title for the link preview used by social media platforms."},{name:"og:description",suggestion:"recommended",head:{meta:[{property:"og:description",content:"[og:description]"}]},seoMeta:{ogDescription:"[og:description]"},docs:"https://ogp.me/#metadata",description:"A description for the link preview used by social media platforms."},{name:"og:image",suggestion:"recommended",head:{meta:[{property:"og:image",content:"[og:image]"}]},seoMeta:{ogImage:"[og:image]"},docs:"https://ogp.me/#metadata",description:"An image for the link preview used by social media platforms."},{name:"og:url",suggestion:"recommended",head:{meta:[{property:"og:url",content:"[og:url]"}]},seoMeta:{ogUrl:"[og:url]"},docs:"https://ogp.me/#metadata",description:"A canonical URL for the link preview used to specify the preferred URL to display in search engine results and social media previews when multiple URLs may point to the same page."},{name:"twitter:title",suggestion:"recommended",head:{meta:[{name:"twitter:title",content:"[twitter:title]"}]},seoMeta:{twitterTitle:"[twitter:title]"},docs:"https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards",description:"A title for the Twitter card used to provide a preview of the content shared on the page."},{name:"twitter:description",suggestion:"recommended",head:{meta:[{name:"twitter:description",content:"[twitter:description]"}]},seoMeta:{twitterDescription:"[twitter:description]"},docs:"https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards",description:"A description for the Twitter card used to provide a preview of the content shared on the page."},{name:"twitter:image",suggestion:"recommended",head:{meta:[{name:"twitter:image",content:"[twitter:image]"}]},seoMeta:{twitterImage:"[twitter:image]"},docs:"https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards",description:"An image for the Twitter card used to provide a preview of the content shared on the page."},{name:"twitter:card",suggestion:"recommended",head:{meta:[{name:"twitter:card",content:"summary"}]},seoMeta:{twitterCard:"summary"},docs:"https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards",description:"The type of Twitter card to use, which determines the type of card to display in link previews on Twitter."}],ye={flex:"~ wrap","mt--2":"","w-full":"","flex-none":""},ke=["onClick"],$e=t("div",{border:"b base","flex-auto":""},null,-1),Te={key:0,"x-divider":""},Ce={key:1,"x-divider":""},Se={flex:"~ gap-1 items-center",px4:"",py2:""},Ne=t("div",{"i-carbon-warning":"","text-orange":""},null,-1),Me={"w-full":"",p2:"",op75:""},Oe={key:1,m4:"",flex:"~ col gap-2"},Ie={flex:"~ gap-1 wrap items-center"},Ae={key:1},Le={flex:"~ gap-2",n:"sm primary",absolute:"","right-2":"","top-2":""},Re=S({__name:"OpenGraphMissingTabs",props:{tags:{},matchedRouteFilepath:{}},setup(b){const n=b,c=C(()=>H.filter(s=>!n.tags?.some(p=>p.name===s.name))),l=C(()=>{let s={};const p={};c.value.forEach(g=>{g.seoMeta?Object.assign(p,g.seoMeta):s=ne(s,g.head)});const v=[];if(Object.keys(p).length){const g=JSON.stringify(p,null,2).replace(/"([^"]+)":/g,"$1:").replace(/"/g,"'");v.push(`useSeoMeta(${g})`)}if(Object.keys(s).length){const g=JSON.stringify(s,null,2).replace(/"([^"]+)":/g,"$1:").replace(/"/g,"'");v.push(`useHead(${g})`)}return v.join(`
2
2
 
3
- `)}),m=be(),y=V(),k=["Missing Tags","Code Snippet"],_=I(k[0]);return(s,p)=>{const v=D,g=z,N=ae,A=ve,B=P;return e(c).length?(o(),M(B,{key:0,text:"Missing Tags",description:`${e(c).length} missing tags`,icon:"carbon:warning-other","header-class":"text-orange op100! [[open]_&]:text-inherit",padding:!1},{default:u(()=>[t("div",ye,[(o(),a(T,null,L(k,(r,i)=>t("button",{key:i,px4:"",py2:"",border:"r t base",hover:"bg-active",class:O(r===e(_)?"":"border-b"),onClick:f=>_.value=r},[t("div",{class:O(r===e(_)?"":"op30"),capitalize:""},h(r),3)],10,ke)),64)),$e]),e(_)===k[0]?(o(),M(g,{key:0,grid:"~ cols-[max-content_1fr]",m4:"","items-center":"","justify-between":"","of-hidden":""},{default:u(()=>[(o(!0),a(T,null,L(e(c),(r,i)=>(o(),a(T,{key:i},[i?(o(),a("div",Te)):x("",!0),i?(o(),a("div",Ce)):x("",!0),t("div",Se,[Ne,d(v,{op50:"",link:r.docs,n:"orange"},{default:u(()=>[$(h(r.name),1)]),_:2},1032,["link"])]),t("div",Me,h(r.description),1)],64))),128))]),_:1})):(o(),a("div",Oe,[t("p",Ae,[d(N,{icon:"carbon-copy",n:"xs","px-2":"",onClick:p[0]||(p[0]=r=>e(m)(e(l)))},{default:u(()=>[$(" Copy ")]),_:1}),$(" the following code snippet and paste it into your "),s.matchedRouteFilepath?(o(),M(N,{key:0,icon:"carbon-launch",n:"xs","px-2":"",onClick:p[1]||(p[1]=r=>e(y)(s.matchedRouteFilepath))},{default:u(()=>[$(" page component ")]),_:1})):(o(),a("span",Ie,"page component")),$(" to full fill the missing tags. ")]),d(g,{relative:"","n-code-block":""},{default:u(()=>[d(A,{code:e(l),lang:"ts",lines:!1,"w-full":"","of-auto":"",p3:""},null,8,["code"]),t("div",Le,[d(N,{icon:"carbon-copy",onClick:p[2]||(p[2]=r=>e(m)(e(l)))},{default:u(()=>[$(" Copy ")]),_:1})])]),_:1})]))]),_:1},8,["description"])):x("",!0)}}}),Be={class:"max-w-[524px] min-w-[524px] cursor-pointer bg-base"},Ee={class:"break-words border border-base px-[12px] py-[10px] antialiased"},je={class:"overflow-hidden truncate whitespace-nowrap text-[12px] leading-[11px] uppercase op50"},Fe={class:"block h-[46px] max-h-[46px] border-separate select-none overflow-hidden break-words text-left",style:{"border-spacing":"0px"}},Je={class:"mt-[3px] truncate pt-[2px] text-[16px] font-semibold leading-[20px]"},ze={class:"mt-[3px] block h-[18px] max-h-[80px] border-separate select-none overflow-hidden truncate whitespace-nowrap break-words text-left text-[14px] leading-[20px] op50",style:{"-webkit-line-clamp":"1","border-spacing":"0px","-webkit-box-orient":"vertical"}},Ge=S({__name:"SocialFacebook",props:{card:{}},setup(b){return(n,c)=>(o(),a("div",Be,[t("div",{class:"h-[274px] border border-b-0 border-base bg-cover bg-center bg-no-repeat",style:R({backgroundImage:`url(${JSON.stringify(n.card.image)})`})},null,4),t("div",Ee,[t("div",je,h(n.card.url),1),t("div",Fe,[t("div",Je,h(n.card.title),1),t("div",ze,h(n.card.description),1)])])]))}}),Pe={class:"max-w-[438px] min-w-[438px] of-hidden border border-base rounded-[0.85714em] bg-base -outline-offset-1"},Ve={class:"break-words border-base p-[0.75em] antialiased",flex:"~ col justify-center gap-1"},De={class:"mt-[0.32333em] overflow-hidden truncate whitespace-nowrap text-[14px] leading-[18px] lowercase op50"},He={class:"m-0 truncate text-[14px] font-semibold leading-[19px]"},Ue={class:"line-clamp-3 select-none overflow-hidden break-words text-left text-[14px] leading-[18px] op50"},Ke=S({__name:"SocialTwitter",props:{tags:{}},setup(b){const n=b,c=C(()=>G(n.tags,{title:[{tag:"title"}],image:[{tag:"meta",name:"twitter:image"},{tag:"meta",name:"og:image"}],imageAlt:[{tag:"meta",name:"twitter:image:alt"}],description:[{tag:"meta",name:"twitter:description"},{tag:"meta",name:"description"}],favicon:[{tag:"link",name:"icon"}]})),l=C(()=>c.value.image?n.tags.find(m=>m.tag==="meta"&&m.name==="twitter:card")?.value||"summary_large_image":"summary");return(m,y)=>(o(),a("div",Pe,[t("div",{class:O(["cursor-pointer overflow-hidden leading-[1.3em]",e(l)==="summary_large_image"?"":"flex"]),hover:"bg-[#88888805]"},[e(l)==="summary_large_image"?(o(),a("div",{key:0,class:"h-[220px] border-b border-base bg-cover bg-center bg-no-repeat",style:R({backgroundImage:`url(${JSON.stringify(e(c).image)})`})},null,4)):(o(),a("div",{key:1,class:"h-[122px] w-[122px] flex-none border-r border-base bg-cover bg-center bg-no-repeat",style:R({backgroundImage:`url(${JSON.stringify(e(c).image)})`})},null,4)),t("div",Ve,[t("div",De,h(e(c).url),1),t("div",He,h(e(c).title),1),t("div",Ue,h(e(c).description),1)])],2)]))}}),qe={class:"max-w-[520px] min-w-[520px] cursor-pointer overflow-hidden border border-base rounded-[2px] shadow-md bg-base"},We={class:"break-words p-[10px] antialiased"},Ye={class:"block h-auto max-h-[50px] border-separate select-none break-words text-left",style:{"border-spacing":"0px"}},Ze={class:"pb-[2px] text-[16px] font-semibold leading-[24px]"},Qe={class:"overflow-hidden truncate whitespace-nowrap text-xs font-normal uppercase op85"},Xe=S({__name:"SocialLinkedin",props:{card:{}},setup(b){return(n,c)=>(o(),a("div",qe,[t("div",{class:"h-[270px] border-b border-base bg-cover bg-center bg-no-repeat",style:R({backgroundImage:`url(${JSON.stringify(n.card.image)})`})},null,4),t("div",We,[t("div",Ye,[t("div",Ze,h(n.card.title),1),t("div",Qe,h(n.card.url),1)])])]))}}),et={"h-full":"","w-520":"",flex:"~ col"},tt={flex:"~ wrap","w-full":"","flex-none":""},ot=["onClick"],nt=t("div",{border:"b base","flex-auto":""},null,-1),at={flex:"~ items-center justify-center","flex-auto":"",p4:"","n-panel-grids":""},st={key:0},rt={key:1},it={key:2},ct=S({__name:"SocialPreviewGroup",props:{tags:{}},setup(b){const n=b,c=["twitter","facebook","linkedin"],l=I(c[0]),m=C(()=>G(n.tags,{title:[{tag:"title"}],image:[{tag:"meta",name:"og:image"}],imageAlt:[{tag:"meta",name:"og:image:alt"}],description:[{tag:"meta",name:"og:description"},{tag:"meta",name:"description"}],favicon:[{tag:"link",name:"icon"}]}));return(y,k)=>{const _=Ge,s=Ke,p=Xe;return o(),a("div",et,[t("div",tt,[(o(),a(T,null,L(c,(v,g)=>t("button",{key:g,px4:"",py2:"",border:"r base",hover:"bg-active",class:O(v===e(l)?"":"border-b"),onClick:N=>l.value=v},[t("div",{class:O(v===e(l)?"":"op30"),capitalize:""},h(v),3)],10,ot)),64)),nt]),t("div",at,[e(l)==="facebook"?(o(),a("div",st,[d(_,{card:e(m)},null,8,["card"])])):e(l)==="twitter"?(o(),a("div",rt,[d(s,{tags:y.tags},null,8,["tags"])])):e(l)==="linkedin"?(o(),a("div",it,[d(p,{card:e(m)},null,8,["card"])])):x("",!0)])])}}}),lt={class:"markdown-body"},dt=se('<h1>Open Graph</h1><p>Nuxt provides several different ways to manage your meta tags using <a href="https://unhead.harlanzw.com/" target="_blank" rel="noopener"><code>unhead</code></a>. Improve your Nuxt app’s SEO with powerful head config, composables and components.</p><p><a href="https://nuxt.com/docs/getting-started/seo-meta" target="_blank" rel="noopener">Learn more on the documentation</a></p><hr><p>You can also find how open graph specs are defined in:</p><ul><li><a href="https://ogp.me/" target="_blank" rel="noopener">The Open Graph protocol</a></li><li><a href="https://developer.twitter.com/en/docs/twitter-for-websites/cards/guides/getting-started" target="_blank" rel="noopener">Twitter Cards</a></li></ul>',6),pt=[dt],mt={__name:"open-graph",setup(b,{expose:n}){return n({frontmatter:{}}),(l,m)=>(o(),a("div",lt,pt))}},ut={flex:"~","h-full":"","w-full":"","of-hidden":""},gt={"h-full":"","flex-auto":"","of-auto":""},ht={"flex-none":"",flex:"~ gap2 items-center"},_t={flex:"~ col"},ft={key:0,"x-divider":""},vt={key:1,"x-divider":""},bt={mr2:"",px4:"",py2:""},Ot=S({__name:"open-graph",setup(b){const n=I(0),c=re(),l=ie(async()=>(n.value,(await c.value?.resolveTags()).map(i=>{const f=i.props||{};return i.tag==="htmlAttrs"&&f.lang?{tag:"html",name:"lang",value:f.lang}:f.charset?{tag:"meta",name:"charset",value:f.charset}:{tag:i.tag,name:f.property??f.name??f.rel??i.tag,value:f.content??f.href??i.textContent??JSON.stringify(f)}})),[]),m=I(!0);function y(){n.value+=1}const k=ce(),_=le(),s=I(""),p=de(),v=V();async function g(){s.value!==_.value.path&&k.value.push(s.value||"/")}const N=C(()=>s.value===_.value.path?[]:k.value.resolve(s.value||"/").matched),A=C(()=>{const r=p.value.find(i=>i.path===_.value?.matched?.[0]?.path);return r?.file||r?.meta?.file});function B(r){return H.find(i=>i.name===r.name)?.docs}return J(_).toBeTruthy().then(r=>{s.value=r.path}),J(k).toBeTruthy().then(r=>{r.afterEach(()=>{pe(()=>{s.value=_.value.path,setTimeout(y,200),setTimeout(y,800)})})}),(r,i)=>{const f=ge,E=he,U=_e,F=D,K=z,q=P,W=Re,Y=ct,Z=mt,Q=we;return o(),a(T,null,[t("div",ut,[t("div",gt,[d(U,null,{search:u(()=>[d(f,{modelValue:e(s),"onUpdate:modelValue":i[0]||(i[0]=w=>me(s)?s.value=w:null),placeholder:"Route",icon:"carbon-direction-right-01 scale-y--100",n:"primary","flex-auto":"","font-mono":"",class:O(["px-5 py-2",e(_)?.path===e(s)?"":e(N).length?"text-green":"text-orange"]),onKeydown:ue(g,["enter"])},null,8,["modelValue","class","onKeydown"])]),actions:u(()=>[t("div",ht,[e(A)?(o(),M(E,{key:0,"text-lg":"",icon:"carbon:launch",title:"Open file in editor",onClick:i[1]||(i[1]=w=>e(v)(e(A)))})):x("",!0),d(E,{"text-lg":"",icon:"carbon:reset",title:"Refresh Data",onClick:y}),d(E,{"text-lg":"",icon:e(m)?"carbon:side-panel-open":"carbon:open-panel-right",title:"Toggle Preview",onClick:i[2]||(i[2]=w=>m.value=!e(m))},null,8,["icon"])])]),_:1}),t("div",_t,[d(q,{text:"Tags",icon:"carbon:tag-group"},{default:u(()=>[d(K,{grid:"~ cols-[max-content_1fr]","items-center":"","justify-between":"","of-hidden":""},{default:u(()=>[(o(!0),a(T,null,L(e(l),(w,j)=>(o(),a(T,{key:j},[j?(o(),a("div",ft)):x("",!0),j?(o(),a("div",vt)):x("",!0),t("div",bt,[d(F,{op50:"",link:B(w),n:"primary"},{default:u(()=>[$(h(w.name),1)]),_:2},1032,["link"])]),d(F,{link:w.value.match(/^https?:\/\//)?w.value:void 0,"w-full":"",p2:"","font-mono":"",n:"primary"},{default:u(()=>[$(h(w.value),1)]),_:2},1032,["link"])],64))),128))]),_:1})]),_:1}),d(W,{tags:e(l),"matched-route-filepath":e(A)},null,8,["tags","matched-route-filepath"])])]),e(m)&&e(l)?.length?(o(),M(Y,{key:0,tags:e(l),border:"l base","w-540px":"","flex-none":""},null,8,["tags"])):x("",!0)]),d(Q,null,{default:u(()=>[d(Z)]),_:1})],64)}}});export{Ot as default};
3
+ `)}),m=be(),y=P(),k=["Missing Tags","Code Snippet"],_=A(k[0]);return(s,p)=>{const v=V,g=z,N=ae,I=ve,B=G;return e(c).length?(o(),M(B,{key:0,text:"Missing Tags",description:`${e(c).length} missing tags`,icon:"carbon:warning-other","header-class":"text-orange op100! [[open]_&]:text-inherit",padding:!1},{default:u(()=>[t("div",ye,[(o(),a(T,null,L(k,(r,i)=>t("button",{key:i,px4:"",py2:"",border:"r t base",hover:"bg-active",class:O(r===e(_)?"":"border-b"),onClick:f=>_.value=r},[t("div",{class:O(r===e(_)?"":"op30"),capitalize:""},h(r),3)],10,ke)),64)),$e]),e(_)===k[0]?(o(),M(g,{key:0,grid:"~ cols-[max-content_1fr]",m4:"","items-center":"","justify-between":"","of-hidden":""},{default:u(()=>[(o(!0),a(T,null,L(e(c),(r,i)=>(o(),a(T,{key:i},[i?(o(),a("div",Te)):x("",!0),i?(o(),a("div",Ce)):x("",!0),t("div",Se,[Ne,d(v,{op50:"",link:r.docs,n:"orange"},{default:u(()=>[$(h(r.name),1)]),_:2},1032,["link"])]),t("div",Me,h(r.description),1)],64))),128))]),_:1})):(o(),a("div",Oe,[t("p",Ie,[d(N,{icon:"carbon-copy",n:"xs","px-2":"",onClick:p[0]||(p[0]=r=>e(m)(e(l)))},{default:u(()=>[$(" Copy ")]),_:1}),$(" the following code snippet and paste it into your "),s.matchedRouteFilepath?(o(),M(N,{key:0,icon:"carbon-launch",n:"xs","px-2":"",onClick:p[1]||(p[1]=r=>e(y)(s.matchedRouteFilepath))},{default:u(()=>[$(" page component ")]),_:1})):(o(),a("span",Ae,"page component")),$(" to full fill the missing tags. ")]),d(g,{relative:"","n-code-block":""},{default:u(()=>[d(I,{code:e(l),lang:"ts",lines:!1,"w-full":"","of-auto":"",p3:""},null,8,["code"]),t("div",Le,[d(N,{icon:"carbon-copy",onClick:p[2]||(p[2]=r=>e(m)(e(l)))},{default:u(()=>[$(" Copy ")]),_:1})])]),_:1})]))]),_:1},8,["description"])):x("",!0)}}}),Be={class:"max-w-[524px] min-w-[524px] cursor-pointer bg-base"},Ee={class:"break-words border border-base px-[12px] py-[10px] antialiased"},Fe={class:"overflow-hidden truncate whitespace-nowrap text-[12px] leading-[11px] uppercase op50"},je={class:"block h-[46px] max-h-[46px] border-separate select-none overflow-hidden break-words text-left",style:{"border-spacing":"0px"}},Je={class:"mt-[3px] truncate pt-[2px] text-[16px] font-semibold leading-[20px]"},ze={class:"mt-[3px] block h-[18px] max-h-[80px] border-separate select-none overflow-hidden truncate whitespace-nowrap break-words text-left text-[14px] leading-[20px] op50",style:{"-webkit-line-clamp":"1","border-spacing":"0px","-webkit-box-orient":"vertical"}},De=S({__name:"SocialFacebook",props:{card:{}},setup(b){return(n,c)=>(o(),a("div",Be,[t("div",{class:"h-[274px] border border-b-0 border-base bg-cover bg-center bg-no-repeat",style:R({backgroundImage:`url(${JSON.stringify(n.card.image)})`})},null,4),t("div",Ee,[t("div",Fe,h(n.card.url),1),t("div",je,[t("div",Je,h(n.card.title),1),t("div",ze,h(n.card.description),1)])])]))}}),Ge={class:"max-w-[438px] min-w-[438px] of-hidden border border-base rounded-[0.85714em] bg-base -outline-offset-1"},Pe={class:"break-words border-base p-[0.75em] antialiased",flex:"~ col justify-center gap-1"},Ve={class:"mt-[0.32333em] overflow-hidden truncate whitespace-nowrap text-[14px] leading-[18px] lowercase op50"},He={class:"m-0 truncate text-[14px] font-semibold leading-[19px]"},Ue={class:"line-clamp-3 select-none overflow-hidden break-words text-left text-[14px] leading-[18px] op50"},Ke=S({__name:"SocialTwitter",props:{tags:{}},setup(b){const n=b,c=C(()=>D(n.tags,{title:[{tag:"title"}],image:[{tag:"meta",name:"twitter:image"},{tag:"meta",name:"og:image"}],imageAlt:[{tag:"meta",name:"twitter:image:alt"}],description:[{tag:"meta",name:"twitter:description"},{tag:"meta",name:"description"}],favicon:[{tag:"link",name:"icon"}]})),l=C(()=>c.value.image?n.tags.find(m=>m.tag==="meta"&&m.name==="twitter:card")?.value||"summary_large_image":"summary");return(m,y)=>(o(),a("div",Ge,[t("div",{class:O(["cursor-pointer overflow-hidden leading-[1.3em]",e(l)==="summary_large_image"?"":"flex"]),hover:"bg-[#88888805]"},[e(l)==="summary_large_image"?(o(),a("div",{key:0,class:"h-[220px] border-b border-base bg-cover bg-center bg-no-repeat",style:R({backgroundImage:`url(${JSON.stringify(e(c).image)})`})},null,4)):(o(),a("div",{key:1,class:"h-[122px] w-[122px] flex-none border-r border-base bg-cover bg-center bg-no-repeat",style:R({backgroundImage:`url(${JSON.stringify(e(c).image)})`})},null,4)),t("div",Pe,[t("div",Ve,h(e(c).url),1),t("div",He,h(e(c).title),1),t("div",Ue,h(e(c).description),1)])],2)]))}}),qe={class:"max-w-[520px] min-w-[520px] cursor-pointer overflow-hidden border border-base rounded-[2px] shadow-md bg-base"},We={class:"break-words p-[10px] antialiased"},Ye={class:"block h-auto max-h-[50px] border-separate select-none break-words text-left",style:{"border-spacing":"0px"}},Ze={class:"pb-[2px] text-[16px] font-semibold leading-[24px]"},Qe={class:"overflow-hidden truncate whitespace-nowrap text-xs font-normal uppercase op85"},Xe=S({__name:"SocialLinkedin",props:{card:{}},setup(b){return(n,c)=>(o(),a("div",qe,[t("div",{class:"h-[270px] border-b border-base bg-cover bg-center bg-no-repeat",style:R({backgroundImage:`url(${JSON.stringify(n.card.image)})`})},null,4),t("div",We,[t("div",Ye,[t("div",Ze,h(n.card.title),1),t("div",Qe,h(n.card.url),1)])])]))}}),et={"h-full":"","w-520":"",flex:"~ col"},tt={flex:"~ wrap","w-full":"","flex-none":""},ot=["onClick"],nt=t("div",{border:"b base","flex-auto":""},null,-1),at={flex:"~ items-center justify-center","flex-auto":"",p4:"","n-panel-grids":""},st={key:0},rt={key:1},it={key:2},ct=S({__name:"SocialPreviewGroup",props:{tags:{}},setup(b){const n=b,c=["twitter","facebook","linkedin"],l=A(c[0]),m=C(()=>D(n.tags,{title:[{tag:"title"}],image:[{tag:"meta",name:"og:image"}],imageAlt:[{tag:"meta",name:"og:image:alt"}],description:[{tag:"meta",name:"og:description"},{tag:"meta",name:"description"}],favicon:[{tag:"link",name:"icon"}]}));return(y,k)=>{const _=De,s=Ke,p=Xe;return o(),a("div",et,[t("div",tt,[(o(),a(T,null,L(c,(v,g)=>t("button",{key:g,px4:"",py2:"",border:"r base",hover:"bg-active",class:O(v===e(l)?"":"border-b"),onClick:N=>l.value=v},[t("div",{class:O(v===e(l)?"":"op30"),capitalize:""},h(v),3)],10,ot)),64)),nt]),t("div",at,[e(l)==="facebook"?(o(),a("div",st,[d(_,{card:e(m)},null,8,["card"])])):e(l)==="twitter"?(o(),a("div",rt,[d(s,{tags:y.tags},null,8,["tags"])])):e(l)==="linkedin"?(o(),a("div",it,[d(p,{card:e(m)},null,8,["card"])])):x("",!0)])])}}}),lt={class:"markdown-body"},dt=se('<h1>Open Graph</h1><p>Nuxt provides several different ways to manage your meta tags using <a href="https://unhead.harlanzw.com/" target="_blank" rel="noopener"><code>unhead</code></a>. Improve your Nuxt app’s SEO with powerful head config, composables and components.</p><p><a href="https://nuxt.com/docs/getting-started/seo-meta" target="_blank" rel="noopener">Learn more on the documentation</a></p><hr><p>You can also find how open graph specs are defined in:</p><ul><li><a href="https://ogp.me/" target="_blank" rel="noopener">The Open Graph protocol</a></li><li><a href="https://developer.twitter.com/en/docs/twitter-for-websites/cards/guides/getting-started" target="_blank" rel="noopener">Twitter Cards</a></li></ul>',6),pt=[dt],mt={__name:"open-graph",setup(b,{expose:n}){return n({frontmatter:{}}),(l,m)=>(o(),a("div",lt,pt))}},ut={flex:"~","h-full":"","w-full":"","of-hidden":""},gt={"h-full":"","flex-auto":"","of-auto":""},ht={"flex-none":"",flex:"~ gap2 items-center"},_t={flex:"~ col"},ft={key:0,"x-divider":""},vt={key:1,"x-divider":""},bt={mr2:"",px4:"",py2:""},Ot=S({__name:"open-graph",setup(b){const n=A(0),c=re(),l=ie(async()=>(n.value,(await c.value?.resolveTags()).map(i=>{const f=i.props||{};return i.tag==="htmlAttrs"&&f.lang?{tag:"html",name:"lang",value:f.lang}:f.charset?{tag:"meta",name:"charset",value:f.charset}:{tag:i.tag,name:f.property??f.name??f.rel??i.tag,value:f.content??f.href??i.textContent??JSON.stringify(f)}})),[]),m=A(!0);function y(){n.value+=1}const k=ce(),_=le(),s=A(""),p=de(),v=P();async function g(){s.value!==_.value.path&&k.value.push(s.value||"/")}const N=C(()=>s.value===_.value.path?[]:k.value.resolve(s.value||"/").matched),I=C(()=>{const r=p.value.find(i=>i.path===_.value?.matched?.[0]?.path);return r?.file||r?.meta?.file});function B(r){return H.find(i=>i.name===r.name)?.docs}return J(_).toBeTruthy().then(r=>{s.value=r.path}),J(k).toBeTruthy().then(r=>{r.afterEach(()=>{pe(()=>{s.value=_.value.path,setTimeout(y,200),setTimeout(y,800)})})}),(r,i)=>{const f=ge,E=he,U=_e,j=V,K=z,q=G,W=Re,Y=ct,Z=mt,Q=we;return o(),a(T,null,[t("div",ut,[t("div",gt,[d(U,null,{search:u(()=>[d(f,{modelValue:e(s),"onUpdate:modelValue":i[0]||(i[0]=w=>me(s)?s.value=w:null),placeholder:"Route",icon:"carbon-direction-right-01 scale-y--100",n:"primary","flex-auto":"","font-mono":"",class:O(["px-5 py-2",e(_)?.path===e(s)?"":e(N).length?"text-green":"text-orange"]),onKeydown:ue(g,["enter"])},null,8,["modelValue","class","onKeydown"])]),actions:u(()=>[t("div",ht,[e(I)?(o(),M(E,{key:0,"text-lg":"",icon:"carbon:launch",title:"Open file in editor",onClick:i[1]||(i[1]=w=>e(v)(e(I)))})):x("",!0),d(E,{"text-lg":"",icon:"carbon:reset",title:"Refresh Data",onClick:y}),d(E,{"text-lg":"",icon:e(m)?"carbon:side-panel-open":"carbon:open-panel-right",title:"Toggle Preview",onClick:i[2]||(i[2]=w=>m.value=!e(m))},null,8,["icon"])])]),_:1}),t("div",_t,[d(q,{text:"Tags",icon:"carbon:tag-group"},{default:u(()=>[d(K,{grid:"~ cols-[max-content_1fr]","items-center":"","justify-between":"","of-hidden":""},{default:u(()=>[(o(!0),a(T,null,L(e(l),(w,F)=>(o(),a(T,{key:F},[F?(o(),a("div",ft)):x("",!0),F?(o(),a("div",vt)):x("",!0),t("div",bt,[d(j,{op50:"",link:B(w),n:"primary"},{default:u(()=>[$(h(w.name),1)]),_:2},1032,["link"])]),d(j,{link:w.value.match(/^https?:\/\//)?w.value:void 0,"w-full":"",p2:"","font-mono":"",n:"primary"},{default:u(()=>[$(h(w.value),1)]),_:2},1032,["link"])],64))),128))]),_:1})]),_:1}),d(W,{tags:e(l),"matched-route-filepath":e(I)},null,8,["tags","matched-route-filepath"])])]),e(m)&&e(l)?.length?(o(),M(Y,{key:0,tags:e(l),border:"l base","w-540px":"","flex-none":""},null,8,["tags"])):x("",!0)]),d(Q,null,{default:u(()=>[d(Z)]),_:1})],64)}}});export{Ot as default};
@@ -0,0 +1 @@
1
+ import{g as B,aa as I,U as V,ap as R,aM as j,aN as L,D as O,l as P,h as m,w as o,o as s,q as e,c as l,a as t,b as i,t as d,s as r,F as p,aO as x,aP as A,d as n,i as $,k as E,e as F,j as W}from"./entry.fbf2c464.js";import{_ as G}from"./Badge.d9d2b649.js";import{u as H,_ as K}from"./state-modules.7230fab3.js";import{_ as U}from"./NTip.vue.79345a6a.js";import{_ as q}from"./NPanelGrids.eec702e8.js";import{a as z}from"./state-components.20943c6b.js";import"./NCodeBlock.vue.bdc8bfdc.js";import"./client.495918a8.js";import"./NCheckbox.vue.f4134b6b.js";const J="0.6.3",Q={key:0},X={key:1,flex:"~ col gap2",ma:"","h-full":"","max-w-300":"","w-full":"",p5:"",px5:"","md:px20":""},Y=t("div",{"flex-auto":""},null,-1),Z={flex:"~ col","mt-5":"","items-center":"","md:mt-20":""},tt={flex:"~","mt--10":"","items-center":"","justify-center":""},et={mb6:"","mt--1":"","text-center":"","text-sm":"",flex:"~ gap-1 wrap"},ot=t("span",{op40:""}," Nuxt DevTools ",-1),st={op40:""},nt={flex:"~ gap2 wrap"},it={p4:"","theme-card-green":"",flex:"~ col auto"},at=t("div",{"logos-nuxt-icon":"","text-3xl":""},null,-1),lt={key:0,p4:"","theme-card-green":"",flex:"~ col auto"},dt=t("div",{"logos-vue":"","text-3xl":""},null,-1),rt=t("div",{"carbon-tree-view-alt":"","text-3xl":""},null,-1),ct=t("div",{"i-carbon-assembly-cluster":"","text-3xl":""},null,-1),ut=t("div",{"carbon-function":"","text-3xl":""},null,-1),_t=t("div",{"carbon-3d-mpr-toggle":"","text-3xl":""},null,-1),mt=t("div",{"carbon-plug":"","text-3xl":""},null,-1),pt={key:5,"pointer-events-none":"","min-w-40":"",p4:"","theme-card-lime":"",flex:"~ auto gap-6"},ht=t("div",{"i-carbon-time-plot":"","flex-none":"","text-3xl":""},null,-1),xt={grid:"~ cols-[auto_auto] gap-x-5 items-center"},ft=t("div",{"text-sm":""}," SSR to full load ",-1),gt={"text-right":""},vt=t("div",{"text-sm":""}," Page load ",-1),kt={"text-right":""},bt=t("div",{"text-sm":""}," Navigation ",-1),wt={"text-right":""},yt=t("div",{"text-sm":""}," HMR ",-1),Mt={"text-right":""},St={flex:"~ col gap2"},Tt={flex:"~ gap-6 wrap","mt-5":"","items-center":"","justify-center":""},Ct=t("a",{href:"https://github.com/nuxt/devtools",target:"_blank",flex:"~ gap1","items-center":"",op50:"",hover:"op100 text-blue",transition:""},[t("div",{"i-carbon-star":""}),n(" Star on GitHub ")],-1),Dt=t("a",{href:"https://github.com/nuxt/devtools/discussions/29",target:"_blank",flex:"~ gap1","items-center":"",op50:"",hover:"op100 text-yellow",transition:""},[t("div",{"i-carbon-data-enrichment":""}),n(" Ideas & Suggestions ")],-1),Nt=t("a",{href:"https://github.com/nuxt/devtools/discussions/31",target:"_blank",flex:"~ gap1","items-center":"",op50:"",hover:"op100 text-lime",transition:""},[t("div",{"i-carbon-plan":""}),n(" Project Roadmap ")],-1),Bt=t("a",{href:"https://github.com/nuxt/devtools/issues",target:"_blank",flex:"~ gap1","items-center":"",op50:"",hover:"op100 text-rose",transition:""},[t("div",{"i-carbon-debug":""}),n(" Bug Reports ")],-1),It=t("div",{"i-carbon-settings":""},null,-1),Vt=t("div",{"flex-auto":""},null,-1),Rt={flex:"col gap-2",mxa:"",hidden:"","w-100":"","text-sm":"",op50:"","md:flex":""},jt={flex:"~ gap-1","items-center":""},Lt=t("span",null,"+",-1),Ot=t("span",null,"+",-1),Pt=t("div",{"flex-auto":""},null,-1),At={flex:"~ gap-1","items-center":""},$t=t("span",null,"+",-1),Et=t("span",null,"+",-1),Ft=t("span",null,"+",-1),Wt=t("span",null,"+",-1),Gt=t("div",{"flex-auto":""},null,-1),Ht=t("div",null,"Toggle DevTools",-1),oe=B({__name:"overview",setup(Kt){const a=I(),_=V(),b=z(),f=R(),w=H(),y=j(),g=L(),M=O();function S(){$.value=!0,M.push("/")}const v=P(()=>a.value?.nuxt.vueApp.version);return(c,Ut)=>{const T=E,C=G,k=K,h=F,D=U,u=W,N=q;return s(),m(N,{"h-screen":"","w-full":"",flex:""},{default:o(()=>[e(_)?(s(),l("div",X,[Y,t("div",Z,[t("div",tt,[i(T,{"h-14":"","md:h-18":""}),t("button",{"mr--16":"","mt--6":"",onClick:S},[i(C,{"bg-green-400:10":"","text-green-400":"",title:"preview",textContent:"preview"})])]),t("div",et,[ot,t("code",st,"v"+d(e(J)),1),i(k,{"package-name":"@nuxt/devtools",options:{dev:!0},"show-version":!1})])]),t("div",nt,[t("div",it,[at,i(k,{"package-name":"nuxt",options:{dev:!0}})]),e(v)?(s(),l("div",lt,[dt,t("code",null,"v"+d(e(v)),1)])):r("",!0),e(_)?(s(),l(p,{key:1},[e(_)&&e(_).pages&&e(a)?(s(),m(h,{key:0,"min-w-40":"",p4:"","theme-card-lime":"",flex:"~ col auto",to:"/modules/pages"},{default:o(()=>[rt,t("div",null,d(e(y).length)+" pages",1)]),_:1})):r("",!0),e(_)?(s(),m(h,{key:1,"min-w-40":"",p4:"","theme-card-lime":"",flex:"~ col auto",to:"/modules/components"},{default:o(()=>[ct,t("div",null,d(e(b).length)+" components",1)]),_:1})):r("",!0),e(_)&&e(f)?(s(),m(h,{key:2,"min-w-40":"",p4:"","theme-card-yellow":"",flex:"~ col auto",to:"/modules/imports"},{default:o(()=>[ut,t("div",null,d(e(f).imports.length)+" imports",1)]),_:1})):r("",!0),e(_)?(s(),m(h,{key:3,"min-w-40":"",p4:"","theme-card-purple":"",flex:"~ col auto",to:"/modules/modules"},{default:o(()=>[_t,t("div",null,d(e(w).length)+" modules",1)]),_:1})):r("",!0),e(_)?(s(),m(h,{key:4,"min-w-40":"",p4:"","theme-card-teal":"",flex:"~ col auto",to:"/modules/plugins"},{default:o(()=>[mt,t("div",null,d(e(_).plugins.length)+" plugins",1)]),_:1})):r("",!0),e(a)?.loadingTimeMetrics?(s(),l("div",pt,[ht,t("div",xt,[e(a).loadingTimeMetrics.ssrStart?(s(),l(p,{key:0},[ft,t("div",gt,d(("formatDuration"in c?c.formatDuration:e(x))(e(a).loadingTimeMetrics.appLoad-e(a).loadingTimeMetrics.ssrStart)),1)],64)):r("",!0),vt,t("div",kt,d(("formatDuration"in c?c.formatDuration:e(x))(e(a).loadingTimeMetrics.appLoad-e(a).loadingTimeMetrics.appInit)),1),bt,t("div",wt,d(("formatDuration"in c?c.formatDuration:e(x))(e(a).loadingTimeMetrics.pageEnd-e(a).loadingTimeMetrics.pageStart)),1),e(a).loadingTimeMetrics.hmrStart?(s(),l(p,{key:1},[yt,t("div",Mt,d(("formatDuration"in c?c.formatDuration:e(x))(e(a).loadingTimeMetrics.hmrEnd-e(a).loadingTimeMetrics.hmrStart)),1)],64)):r("",!0)])])):r("",!0)],64)):r("",!0)]),t("div",St,[("showConnectionWarning"in c?c.showConnectionWarning:e(A))?(s(),m(D,{key:0,n:"yellow5",icon:"carbon-unlink","justify-center":""},{default:o(()=>[n(" Not connected to the client app, showing server-side data only. Use the embedded mode for full features. ")]),_:1})):r("",!0)]),t("div",Tt,[Ct,Dt,Nt,Bt,i(h,{to:"/settings",flex:"~ gap1","inline-block":"","items-center":"",op50:"","hover:op80":""},{default:o(()=>[It,n(" Settings ")]),_:1})]),Vt,t("div",Rt,[t("div",jt,[e(g)?(s(),l(p,{key:0},[i(u,{n:"xs",class:"px2"},{default:o(()=>[n(" ⌘ Cmd ")]),_:1}),Lt,i(u,{n:"xs",class:"px2"},{default:o(()=>[n(" K ")]),_:1})],64)):(s(),l(p,{key:1},[i(u,{n:"xs",class:"px2"},{default:o(()=>[n(" Ctrl ")]),_:1}),Ot,i(u,{n:"xs",class:"px2"},{default:o(()=>[n(" K ")]),_:1})],64)),Pt,n(" Open Command Palette ")]),t("div",At,[e(g)?(s(),l(p,{key:0},[i(u,{n:"xs",class:"px2"},{default:o(()=>[n(" ⇧ Shift ")]),_:1}),$t,i(u,{n:"xs",class:"px2"},{default:o(()=>[n(" ⌥ Option ")]),_:1}),Et,i(u,{n:"xs",class:"px2"},{default:o(()=>[n(" D ")]),_:1})],64)):(s(),l(p,{key:1},[i(u,{n:"xs",class:"px2"},{default:o(()=>[n(" Shift ")]),_:1}),Ft,i(u,{n:"xs",class:"px2"},{default:o(()=>[n(" Alt ")]),_:1}),Wt,i(u,{n:"xs",class:"px2"},{default:o(()=>[n(" D ")]),_:1})],64)),Gt,Ht])])])):(s(),l("div",Q," Loading... "))]),_:1})}}});export{oe as default};
@@ -1 +1 @@
1
- import{a as I,r as M,l as R,a7 as j,u as t,o,e as s,b as e,t as $,c as v,w as k,aV as W,F as h,m as B,q as y,f as p,j as P,p as L,J as A,h as q,aW as D,aK as H,aL as J,U as G,a2 as Q,aM as X,aN as E,ai as Y,H as Z,aO as ee,y as te,z as oe}from"./entry.a0dd6aac.js";import{_ as S}from"./Badge.067326d6.js";import{_ as F}from"./FilepathItem.vue.3587ec1f.js";import{u as ne}from"./editor.aee50e2c.js";import{_ as ae}from"./NSectionBlock.9cbe0175.js";import{_ as se}from"./LaunchPage.vue.f137554e.js";import{_ as re}from"./HelpFab.vue.dbb954dd.js";import"./NIconTitle.vue.ace3a05a.js";import"./NMarkdown.vue.9f252ec4.js";import"./client.d6464981.js";import"./NPanelGrids.54ee09bc.js";import"./NIconButton.vue.ac7efd0c.js";const le={block:"","cursor-pointer":""},ie={p2:""},ue=["onSubmit"],ce=e("div",{px2:"","text-sm":"",op50:""}," Fill params and navigate: ",-1),de={flex:"~","items-center":"",p2:"","font-mono":"","text-sm":""},pe={key:1},_e=I({__name:"RoutePathItem",props:{route:{}},emits:["navigate"],setup(V,{emit:d}){const i=V,_=M([]),m=R(()=>{const u=b(i.route.path);return _.value=Array.from({length:u.length},()=>""),u});function b(u){return u.split(/(:\w+[\?\*]?(?:\(\))?)/).filter(Boolean).map(c=>c[0]===":"?c.replace(/\(\)$/,"?"):c)}const w=R(()=>m.value.map((u,c)=>u[0]===":"?_.value[c]:u).join("").replace(/\/+/g,"/")),r=R(()=>i.route.path.includes(":"));function a(){d("navigate",w.value)}return(u,c)=>{const C=A,n=q,l=j("VDropdown");return t(r)?(o(),v(l,{key:1},{popper:k(({hide:f})=>[e("div",ie,[e("form",{flex:"~ col",onSubmit:W(()=>{a(),f()},["prevent"])},[t(r)?(o(),s(h,{key:0},[ce,e("div",de,[(o(!0),s(h,null,B(t(m),(g,x)=>(o(),s(h,{key:x},[g[0]===":"?(o(),v(C,{key:0,modelValue:t(_)[x],"onUpdate:modelValue":T=>t(_)[x]=T,"w-20":"","n-sm":"",placeholder:g.slice(1)},null,8,["modelValue","onUpdate:modelValue","placeholder"])):(o(),s("span",pe,$(g),1))],64))),128))])],64)):y("",!0),p(n,{block:"",n:"primary"},{default:k(()=>[P(" Navigate ")]),_:1})],40,ue)])]),default:k(()=>[e("code",le,[(o(!0),s(h,null,B(t(m),(f,g)=>(o(),s("span",{key:g,class:L(f[0]===":"?"text-gray border border-dashed rounded border-gray:50 px1":"")},$(f[0]===":"?f.slice(1):f),3))),128))])]),_:1})):(o(),s("button",{key:0,onClick:a},[e("code",null,$(u.route.path),1)]))}}}),he={"w-full":""},me=e("thead",{border:"b base"},[e("tr",null,[e("th",{"text-left":""}),e("th",{"text-left":""}," Route Path "),e("th",{"text-left":""}," Name "),e("th",{"text-left":""}," Middleware "),e("th",null," Layout ")])],-1),fe={"w-20":"","pr-1":""},ge={flex:"","items-center":"","justify-end":""},ve={"text-sm":""},ye={flex:"inline gap3","items-center":""},be={op0:"","group-hover:op100":"",flex:"~ gap1"},xe=["onClick"],ke=e("div",{"i-carbon-script-reference":""},null,-1),$e=[ke],we={"w-0":"","ws-nowrap":"","pr-1":"","text-left":"","font-mono":"","text-sm":"",op50:""},Ce={"w-0":"","ws-nowrap":"","pr-1":"","text-center":"","font-mono":"","text-sm":"",op50:""},Ne={"w-0":"","ws-nowrap":"","text-center":"","font-mono":"","text-sm":""},Re={key:0},Ve=["onClick"],Pe=I({__name:"RoutesTable",props:{pages:{},layouts:{},matched:{},matchedPending:{}},emits:["navigate"],setup(V){const d=V,i=ne(),_=D(),m=R(()=>[...d.pages].sort((r,a)=>r.path.localeCompare(a.path)));function b(r){const a=d.layouts.find(u=>u.name===r);a&&i(a.file)}function w(r){if(typeof r=="string")return _.value?.middleware.find(a=>a.name===r)?.path}return(r,a)=>{const u=S,c=_e,C=F;return o(),s("div",null,[e("table",he,[me,e("tbody",null,[(o(!0),s(h,null,B(t(m),n=>(o(),s("tr",{key:n.name,class:"group","h-7":"",border:"b dashed transparent hover:base"},[e("td",fe,[e("div",ge,[r.matched.find(l=>l.name===n.name)?(o(),v(u,{key:0,"bg-green-400:10":"","text-green-400":"",title:"active",textContent:"active"})):y("",!0),r.matchedPending.find(l=>l.name===n.name)?(o(),v(u,{key:1,"bg-teal-400:10":"","text-teal-400":"",title:"next",textContent:"next"})):y("",!0)])]),e("td",ve,[e("div",ye,[p(c,{route:n,class:L(r.matched.find(l=>l.name===n.name)?"text-primary":r.matchedPending.find(l=>l.name===n.name)?"text-teal":""),onNavigate:a[0]||(a[0]=l=>r.$emit("navigate",l))},null,8,["route","class"]),e("div",be,[n.file||n.meta?.file?(o(),s("button",{key:0,"text-sm":"",op40:"",hover:"op100 text-primary",title:"Open in editor",onClick:l=>t(i)(n.file||n.meta?.file)},$e,8,xe)):y("",!0)])])]),e("td",we,$(n.name),1),e("td",Ce,[p(C,{filepath:w(n.meta.middleware),override:`${n.meta.middleware||"-"}`},null,8,["filepath","override"])]),e("td",Ne,[n.meta.layout===!1?(o(),s("span",Re,"-")):n.meta.layout?(o(),s("button",{key:1,onClick:l=>b(n.meta.layout)},$(n.meta.layout),9,Ve)):(o(),s("button",{key:2,"text-sm":"",op15:"",onClick:a[1]||(a[1]=l=>b("default"))}," (default) "))])]))),128))])])])}}}),Be={class:"markdown-body"},Te=e("h1",null,"Pages",-1),Ie=e("p",null,[P("One core feature of Nuxt is the file system router. Every Vue file inside the "),e("code",null,"pages/"),P(" directory creates a corresponding URL (or route) that displays the contents of the file. By using dynamic imports for each page, Nuxt leverages code-splitting to ship the minimum amount of JavaScript for the requested route.")],-1),Le=e("p",null,[e("a",{href:"https://nuxt.com/docs/getting-started/routing",target:"_blank",rel:"noopener"},"Learn more on the documentation")],-1),Ee=e("hr",null,null,-1),Me=e("h1",null,"Middlewares",-1),Ae=e("p",null,"Nuxt provides a customizable route middleware framework you can use throughout your application, ideal for extracting code that you want to run before navigating to a particular route.",-1),De=e("p",null,[e("a",{href:"https://nuxt.com/docs/guide/directory-structure/middleware",target:"_blank",rel:"noopener"},"Learn more on the documentation")],-1),Se=[Te,Ie,Le,Ee,Me,Ae,De],Fe={__name:"pages",setup(V,{expose:d}){return d({frontmatter:{}}),(_,m)=>(o(),s("div",Be,Se))}},Ue={key:0,"h-full":"","of-auto":""},ze={border:"b base",flex:"~ col gap1",px4:"",py3:"","navbar-glass":""},Ke=e("span",{op50:""},"Navigate from ",-1),Oe={"font-mono":""},je=e("span",{op50:""}," to ",-1),We={key:1,op50:""},qe=e("span",null,[P("Press "),e("b",{"font-bold":""},"Enter"),P(" to navigate")],-1),He={key:0,"text-orange":"",op75:""},Je={key:1,op50:""},Ge={"w-full":""},Qe=e("thead",{border:"b base","h-7":""},[e("tr",null,[e("th",{"text-left":""}," Name "),e("th",{"text-left":""}," Path ")])],-1),Xe={mr1:""},ct=I({__name:"pages",setup(V){const d=H(),i=J(),_=G(),m=D(),b=Q(),w=X(),r=R(()=>m.value?.middleware||[]),a=M("");E(i).toBeTruthy().then(n=>{a.value=n.path}),E(d).toBeTruthy().then(n=>{n.afterEach(()=>{Y(()=>{a.value=i.value.path})})});async function u(){a.value!==i.value.path&&d.value.push(a.value||"/")}const c=R(()=>a.value===i.value.path?[]:d.value.resolve(a.value||"/").matched);function C(n){d.value.push(n)}return(n,l)=>{const f=A,g=Pe,x=ae,T=S,U=F,z=se,K=Fe,O=re;return o(),s(h,null,[t(_)?.pages&&t(d)?(o(),s("div",Ue,[e("div",ze,[e("div",null,[t(i).path!==t(a)?(o(),s(h,{key:0},[Ke,e("span",Oe,$(t(i).path),1),je],64)):(o(),s("span",We,"Current route"))]),p(f,{modelValue:t(a),"onUpdate:modelValue":l[0]||(l[0]=N=>Z(a)?a.value=N:null),"font-mono":"",icon:"carbon-direction-right-01 scale-y--100",class:L(t(i).path===t(a)?"":t(c).length?"text-green":"text-orange"),onKeydown:ee(u,["enter"])},null,8,["modelValue","class","onKeydown"]),e("div",null,[t(i).path!==t(a)?(o(),s(h,{key:0},[qe,t(c).length?y("",!0):(o(),s("span",He," (no match)"))],64)):(o(),s("span",Je,"Edit path above to navigate"))])]),t(c).length?(o(),v(x,{key:0,icon:"carbon-tree-view",text:"Matched Routes",padding:!1},{default:k(()=>[p(g,{pages:t(c),layouts:t(b)||[],matched:[],"matched-pending":t(c),onNavigate:C},null,8,["pages","layouts","matched-pending"])]),_:1})):y("",!0),p(x,{icon:"carbon-tree-view-alt",text:"All Routes",description:`${t(w).length} routes registered in your application`,padding:"pr5"},{default:k(()=>[p(g,{pages:t(w),layouts:t(b)||[],matched:t(i).matched,"matched-pending":t(c),onNavigate:C},null,8,["pages","layouts","matched","matched-pending"])]),_:1},8,["description"]),t(r).length?(o(),v(x,{key:1,icon:"carbon:ibm-watson-studio",text:"Middleware",description:`${t(r).length} middleware registered in your application`,padding:"px13"},{default:k(()=>[e("table",Ge,[Qe,(o(!0),s(h,null,B(t(r),N=>(o(),s("tr",{key:N.path,"h-7":""},[e("td",null,[e("span",Xe,$(N.name),1),N.global?(o(),v(T,{key:0,"bg-green-400:10":"","text-green-400":"",title:"Registered at runtime as a global component",textContent:"global"})):y("",!0)]),e("td",null,[p(U,{filepath:N.path},null,8,["filepath"])])]))),128))])]),_:1},8,["description"])):y("",!0)])):(o(),v(z,{key:1,icon:"carbon-tree-view-alt",title:"Nuxt Routing",description:"Create `./pages/index.vue` to enable routing",actions:[{label:"Learn more",src:"https://nuxt.com/docs/getting-started/routing",attrs:{n:"primary"}},{label:"Enable Routing",async handle(){return("rpc"in n?n.rpc:t(te)).runWizard(await("ensureDevAuthToken"in n?n.ensureDevAuthToken:t(oe))(),"enablePages")}}]},null,8,["actions"])),p(O,null,{default:k(()=>[p(K)]),_:1})],64)}}});export{ct as default};
1
+ import{g as T,r as E,l as R,a7 as J,q as t,o,c as s,a as e,t as $,h as v,w as k,aV as O,F as h,m as P,s as y,b as p,d as I,n as L,J as M,j as W,aW as D,aH as q,aI as H,U as G,a2 as Q,aJ as X,aK as A,ai as Y,I as Z,aL as ee,z as te,A as oe}from"./entry.fbf2c464.js";import{_ as S}from"./Badge.d9d2b649.js";import{_ as F}from"./FilepathItem.vue.a47beb58.js";import{u as ne}from"./editor.a4d83539.js";import{_ as ae}from"./NSectionBlock.8c2cc0df.js";import{_ as se}from"./LaunchPage.vue.610fcc27.js";import{_ as re}from"./HelpFab.vue.e5d23c98.js";import"./NIconTitle.vue.dc58a435.js";import"./NMarkdown.vue.3224fbc4.js";import"./client.495918a8.js";import"./NPanelGrids.eec702e8.js";import"./NIconButton.vue.24522062.js";const le={block:"","cursor-pointer":""},ie={p2:""},ue=["onSubmit"],ce=e("div",{px2:"","text-sm":"",op50:""}," Fill params and navigate: ",-1),de={flex:"~","items-center":"",p2:"","font-mono":"","text-sm":""},pe={key:1},_e=T({__name:"RoutePathItem",props:{route:{}},emits:["navigate"],setup(V,{emit:d}){const i=V,_=E([]),m=R(()=>{const u=b(i.route.path);return _.value=Array.from({length:u.length},()=>""),u});function b(u){return u.split(/(:\w+[\?\*]?(?:\(\))?)/).filter(Boolean).map(c=>c[0]===":"?c.replace(/\(\)$/,"?"):c)}const w=R(()=>m.value.map((u,c)=>u[0]===":"?_.value[c]:u).join("").replace(/\/+/g,"/")),r=R(()=>i.route.path.includes(":"));function a(){d("navigate",w.value)}return(u,c)=>{const C=M,n=W,l=J("VDropdown");return t(r)?(o(),v(l,{key:1},{popper:k(({hide:f})=>[e("div",ie,[e("form",{flex:"~ col",onSubmit:O(()=>{a(),f()},["prevent"])},[t(r)?(o(),s(h,{key:0},[ce,e("div",de,[(o(!0),s(h,null,P(t(m),(g,x)=>(o(),s(h,{key:x},[g[0]===":"?(o(),v(C,{key:0,modelValue:t(_)[x],"onUpdate:modelValue":B=>t(_)[x]=B,"w-20":"","n-sm":"",placeholder:g.slice(1)},null,8,["modelValue","onUpdate:modelValue","placeholder"])):(o(),s("span",pe,$(g),1))],64))),128))])],64)):y("",!0),p(n,{block:"",n:"primary"},{default:k(()=>[I(" Navigate ")]),_:1})],40,ue)])]),default:k(()=>[e("code",le,[(o(!0),s(h,null,P(t(m),(f,g)=>(o(),s("span",{key:g,class:L(f[0]===":"?"text-gray border border-dashed rounded border-gray:50 px1":"")},$(f[0]===":"?f.slice(1):f),3))),128))])]),_:1})):(o(),s("button",{key:0,onClick:a},[e("code",null,$(u.route.path),1)]))}}}),he={"w-full":""},me=e("thead",{border:"b base"},[e("tr",null,[e("th",{"text-left":""}),e("th",{"text-left":""}," Route Path "),e("th",{"text-left":""}," Name "),e("th",{"text-left":""}," Middleware "),e("th",null," Layout ")])],-1),fe={"w-20":"","pr-1":""},ge={flex:"","items-center":"","justify-end":""},ve={"text-sm":""},ye={flex:"inline gap3","items-center":""},be={op0:"","group-hover:op100":"",flex:"~ gap1"},xe=["onClick"],ke=e("div",{"i-carbon-script-reference":""},null,-1),$e=[ke],we={"w-0":"","ws-nowrap":"","pr-1":"","text-left":"","font-mono":"","text-sm":"",op50:""},Ce={"w-0":"","ws-nowrap":"","pr-1":"","text-center":"","font-mono":"","text-sm":"",op50:""},Ne={"w-0":"","ws-nowrap":"","text-center":"","font-mono":"","text-sm":""},Re={key:0},Ve=["onClick"],Ie=T({__name:"RoutesTable",props:{pages:{},layouts:{},matched:{},matchedPending:{}},emits:["navigate"],setup(V){const d=V,i=ne(),_=D(),m=R(()=>[...d.pages].sort((r,a)=>r.path.localeCompare(a.path)));function b(r){const a=d.layouts.find(u=>u.name===r);a&&i(a.file)}function w(r){if(typeof r=="string")return _.value?.middleware.find(a=>a.name===r)?.path}return(r,a)=>{const u=S,c=_e,C=F;return o(),s("div",null,[e("table",he,[me,e("tbody",null,[(o(!0),s(h,null,P(t(m),n=>(o(),s("tr",{key:n.name,class:"group","h-7":"",border:"b dashed transparent hover:base"},[e("td",fe,[e("div",ge,[r.matched.find(l=>l.name===n.name)?(o(),v(u,{key:0,"bg-green-400:10":"","text-green-400":"",title:"active",textContent:"active"})):y("",!0),r.matchedPending.find(l=>l.name===n.name)?(o(),v(u,{key:1,"bg-teal-400:10":"","text-teal-400":"",title:"next",textContent:"next"})):y("",!0)])]),e("td",ve,[e("div",ye,[p(c,{route:n,class:L(r.matched.find(l=>l.name===n.name)?"text-primary":r.matchedPending.find(l=>l.name===n.name)?"text-teal":""),onNavigate:a[0]||(a[0]=l=>r.$emit("navigate",l))},null,8,["route","class"]),e("div",be,[n.file||n.meta?.file?(o(),s("button",{key:0,"text-sm":"",op40:"",hover:"op100 text-primary",title:"Open in editor",onClick:l=>t(i)(n.file||n.meta?.file)},$e,8,xe)):y("",!0)])])]),e("td",we,$(n.name),1),e("td",Ce,[p(C,{filepath:w(n.meta.middleware),override:`${n.meta.middleware||"-"}`},null,8,["filepath","override"])]),e("td",Ne,[n.meta.layout===!1?(o(),s("span",Re,"-")):n.meta.layout?(o(),s("button",{key:1,onClick:l=>b(n.meta.layout)},$(n.meta.layout),9,Ve)):(o(),s("button",{key:2,"text-sm":"",op15:"",onClick:a[1]||(a[1]=l=>b("default"))}," (default) "))])]))),128))])])])}}}),Pe={class:"markdown-body"},Be=e("h1",null,"Pages",-1),Te=e("p",null,[I("One core feature of Nuxt is the file system router. Every Vue file inside the "),e("code",null,"pages/"),I(" directory creates a corresponding URL (or route) that displays the contents of the file. By using dynamic imports for each page, Nuxt leverages code-splitting to ship the minimum amount of JavaScript for the requested route.")],-1),Le=e("p",null,[e("a",{href:"https://nuxt.com/docs/getting-started/routing",target:"_blank",rel:"noopener"},"Learn more on the documentation")],-1),Ae=e("hr",null,null,-1),Ee=e("h1",null,"Middlewares",-1),Me=e("p",null,"Nuxt provides a customizable route middleware framework you can use throughout your application, ideal for extracting code that you want to run before navigating to a particular route.",-1),De=e("p",null,[e("a",{href:"https://nuxt.com/docs/guide/directory-structure/middleware",target:"_blank",rel:"noopener"},"Learn more on the documentation")],-1),Se=[Be,Te,Le,Ae,Ee,Me,De],Fe={__name:"pages",setup(V,{expose:d}){return d({frontmatter:{}}),(_,m)=>(o(),s("div",Pe,Se))}},Ue={key:0,"h-full":"","of-auto":""},ze={border:"b base",flex:"~ col gap1",px4:"",py3:"","navbar-glass":""},Ke=e("span",{op50:""},"Navigate from ",-1),je={"font-mono":""},Je=e("span",{op50:""}," to ",-1),Oe={key:1,op50:""},We=e("span",null,[I("Press "),e("b",{"font-bold":""},"Enter"),I(" to navigate")],-1),qe={key:0,"text-orange":"",op75:""},He={key:1,op50:""},Ge={"w-full":""},Qe=e("thead",{border:"b base","h-7":""},[e("tr",null,[e("th",{"text-left":""}," Name "),e("th",{"text-left":""}," Path ")])],-1),Xe={mr1:""},ct=T({__name:"pages",setup(V){const d=q(),i=H(),_=G(),m=D(),b=Q(),w=X(),r=R(()=>m.value?.middleware||[]),a=E("");A(i).toBeTruthy().then(n=>{a.value=n.path}),A(d).toBeTruthy().then(n=>{n.afterEach(()=>{Y(()=>{a.value=i.value.path})})});async function u(){a.value!==i.value.path&&d.value.push(a.value||"/")}const c=R(()=>a.value===i.value.path?[]:d.value.resolve(a.value||"/").matched);function C(n){d.value.push(n)}return(n,l)=>{const f=M,g=Ie,x=ae,B=S,U=F,z=se,K=Fe,j=re;return o(),s(h,null,[t(_)?.pages&&t(d)?(o(),s("div",Ue,[e("div",ze,[e("div",null,[t(i).path!==t(a)?(o(),s(h,{key:0},[Ke,e("span",je,$(t(i).path),1),Je],64)):(o(),s("span",Oe,"Current route"))]),p(f,{modelValue:t(a),"onUpdate:modelValue":l[0]||(l[0]=N=>Z(a)?a.value=N:null),"font-mono":"",icon:"carbon-direction-right-01 scale-y--100",class:L(t(i).path===t(a)?"":t(c).length?"text-green":"text-orange"),onKeydown:ee(u,["enter"])},null,8,["modelValue","class","onKeydown"]),e("div",null,[t(i).path!==t(a)?(o(),s(h,{key:0},[We,t(c).length?y("",!0):(o(),s("span",qe," (no match)"))],64)):(o(),s("span",He,"Edit path above to navigate"))])]),t(c).length?(o(),v(x,{key:0,icon:"carbon-tree-view",text:"Matched Routes",padding:!1},{default:k(()=>[p(g,{pages:t(c),layouts:t(b)||[],matched:[],"matched-pending":t(c),onNavigate:C},null,8,["pages","layouts","matched-pending"])]),_:1})):y("",!0),p(x,{icon:"carbon-tree-view-alt",text:"All Routes",description:`${t(w).length} routes registered in your application`,padding:"pr5"},{default:k(()=>[p(g,{pages:t(w),layouts:t(b)||[],matched:t(i).matched,"matched-pending":t(c),onNavigate:C},null,8,["pages","layouts","matched","matched-pending"])]),_:1},8,["description"]),t(r).length?(o(),v(x,{key:1,icon:"carbon:ibm-watson-studio",text:"Middleware",description:`${t(r).length} middleware registered in your application`,padding:"px13"},{default:k(()=>[e("table",Ge,[Qe,(o(!0),s(h,null,P(t(r),N=>(o(),s("tr",{key:N.path,"h-7":""},[e("td",null,[e("span",Xe,$(N.name),1),N.global?(o(),v(B,{key:0,"bg-green-400:10":"","text-green-400":"",title:"Registered at runtime as a global component",textContent:"global"})):y("",!0)]),e("td",null,[p(U,{filepath:N.path},null,8,["filepath"])])]))),128))])]),_:1},8,["description"])):y("",!0)])):(o(),v(z,{key:1,icon:"carbon-tree-view-alt",title:"Nuxt Routing",description:"Create `./pages/index.vue` to enable routing",actions:[{label:"Learn more",src:"https://nuxt.com/docs/getting-started/routing",attrs:{n:"primary"}},{label:"Enable Routing",async handle(){return("rpc"in n?n.rpc:t(te)).runWizard(await("ensureDevAuthToken"in n?n.ensureDevAuthToken:t(oe))(),"enablePages")}}]},null,8,["actions"])),p(j,null,{default:k(()=>[p(K)]),_:1})],64)}}});export{ct as default};
@@ -0,0 +1 @@
1
+ import{_ as y}from"./StateEditor.vue.d48421f9.js";import{g as x,o as e,c,F as k,m as C,h as m,w as o,Z as N,aB as D,aC as w,a as $,aa as F,l as O,q as r,b as a,s as u,d as P,j as V}from"./entry.fbf2c464.js";import{_ as j}from"./NSectionBlock.8c2cc0df.js";import{_ as E}from"./NIconButton.vue.24522062.js";import{_ as R}from"./HelpFab.vue.e5d23c98.js";import"./json-editor-vue.d5db52dc.js";import"./NIconTitle.vue.dc58a435.js";const A={key:0,flex:"~ col gap-1"},G={key:1,mt2:"",px4:"",italic:"",op35:""},H=x({__name:"StateGroup",props:{state:{},prefix:{default:""}},setup(f){return(t,n)=>{const i=y;return e(),c("div",null,[t.state&&Object.keys(t.state).length>0?(e(),c("div",A,[(e(!0),c(k,null,C(t.state,(l,s)=>(e(),m(i,{key:s,state:l,name:s.startsWith(t.prefix)?s.slice(t.prefix.length):s},{actions:o(_=>[N(t.$slots,"actions",D(w(_)))]),_:2},1032,["state","name"]))),128))])):(e(),c("div",G," No data "))])}}}),K={class:"markdown-body"},T=$("h1",null,"State & Async Data",-1),q=$("p",null,"// TODO",-1),z=[T,q],I={__name:"payload",setup(f,{expose:t}){return t({frontmatter:{}}),(i,l)=>(e(),c("div",K,z))}},L={key:0},tt=x({__name:"payload",setup(f){const t=F(),n=O(()=>t.value?.nuxt.payload);async function i(l){await t.value?.nuxt.hooks.callHookParallel("app:data:refresh",l)}return(l,s)=>{const _=H,p=j,b=V,v=E,S=y,g=I,B=R;return e(),c(k,null,[r(t)?(e(),c("div",L,[a(p,{icon:"carbon-data-set",text:"State",description:"Keyed state from `useState`",padding:!1},{default:o(()=>[a(_,{state:r(n).state,prefix:"$s"},null,8,["state"])]),_:1}),a(p,{icon:"carbon-data-blob",text:"Data",description:"Keyed state from `useAsyncData`",padding:!1},{actions:o(()=>[a(b,{n:"xs primary","self-start":"",icon:"i-carbon-recycle",onClick:s[0]||(s[0]=h=>i())},{default:o(()=>[P(" Re-fetch all data ")]),_:1})]),default:o(()=>[a(_,{state:r(n).data},{actions:o(({isOpen:h,name:d})=>[h&&d?(e(),m(v,{key:0,title:`Re-fetch '${d}'`,icon:"carbon-recycle",onClick:W=>i([d])},null,8,["title","onClick"])):u("",!0)]),_:1},8,["state"])]),_:1}),r(n).functions&&Object.keys(r(n).functions).length?(e(),m(p,{key:0,icon:"carbon-function",text:"Functions",description:"State for functions (experimental)"},{default:o(()=>[a(S,{"ml--6":"",state:r(n).functions},null,8,["state"])]),_:1})):u("",!0)])):u("",!0),a(B,null,{default:o(()=>[a(g)]),_:1})],64)}}});export{tt as default};
@@ -0,0 +1 @@
1
+ import{_ as T}from"./FilepathItem.vue.a47beb58.js";import{_ as D}from"./Badge.d9d2b649.js";import{_ as k}from"./DurationDisplay.vue.c206edd8.js";import{g as v,U as B,l as x,aU as V,o as n,c as m,a as t,t as P,b as l,q as f,h as u,s as d,a7 as F,Z as w,P as H,_ as I,w as h,d as y,aW as M,aa as W,F as C,m as E,n as L}from"./entry.fbf2c464.js";import{_ as U}from"./NSectionBlock.8c2cc0df.js";import{_ as j}from"./HelpFab.vue.e5d23c98.js";import"./editor.a4d83539.js";import"./NIconTitle.vue.dc58a435.js";import"./NIconButton.vue.24522062.js";const q={flex:"~ gap2","items-center":""},z={w8:"","text-right":"","text-sm":"",op25:""},A={key:0,"flex-auto":"","text-right":""},R=v({__name:"PluginItem",props:{plugin:{},index:{}},setup(p){const e=p,a=B(),r=x(()=>V(e.plugin.src,a.value?.rootDir||"").path);return(i,c)=>{const _=T,o=D,s=k;return n(),m("div",q,[t("div",z,P(i.index),1),l(_,{filepath:e.plugin.src,subpath:!0},null,8,["filepath"]),t("div",null,[f(r).startsWith("#")?(n(),u(o,{key:0,"bg-rose-400:10":"","text-rose":"",textContent:"virtual"})):f(r).startsWith(".")?d("",!0):(n(),u(o,{key:1,"bg-gray-400:10":"","text-gray":"",textContent:"module"})),i.plugin.mode==="server"?(n(),u(o,{key:2,"bg-teal-400:10":"","text-teal-400":"",textContent:"server"})):d("",!0),i.plugin.mode==="client"?(n(),u(o,{key:3,"bg-orange-400:10":"","text-orange-400":"",textContent:"client"})):d("",!0)]),i.plugin.metric?.duration!=null?(n(),m("div",A,[l(s,{duration:i.plugin.metric?.duration,factor:10},null,8,["duration"])])):d("",!0)])}}}),Y={class:"n-tip n-tip-base",flex:"~ col items-start","mx--4":"",px4:"",py4:""},Z={flex:"~ items-center gap-1","font-bold":""},G=v({__name:"HelpTip",props:{title:{},icon:{}},setup(p){return(e,a)=>{const r=H,i=F("ContentSlot");return n(),m("div",Y,[t("div",Z,[e.icon?(n(),u(r,{key:0,icon:e.icon,class:"n-tip-icon"},null,8,["icon"])):d("",!0),t("div",null,P(e.title),1)]),t("div",null,[w(e.$slots,"default",{},()=>[l(i,{use:e.$slots.default,unwrap:"p"},null,8,["use"])])])])}}}),J={};function K(p,e){const a=G;return n(),u(a,{title:"Performance Tip",icon:"carbon-meter",n:"lime6 dark:lime5"},{default:h(()=>[w(p.$slots,"default")]),_:3})}const O=I(J,[["render",K]]),Q={class:"markdown-body"},X=t("h1",null,"Plugins",-1),tt=t("p",null,[y("Nuxt plugins allows you to extend the functionality of Nuxt runtime and the Vue instance. You can add plugins to the "),t("code",null,"plugins/"),y(" directory and they will be automatically imported and registered.")],-1),et=t("p",null,[t("a",{href:"https://nuxt.com/docs/guide/directory-structure/plugins",target:"_blank",rel:"noopener"},"Learn more on the documentation")],-1),nt={__name:"plugins",setup(p,{expose:e}){return e({frontmatter:{}}),(r,i)=>{const c=O;return n(),m("div",Q,[X,tt,l(c,null,{default:h(()=>[y(" Plugins runs before your application at runtime, the time each plugin cost will directly affect your application's initial loading time. ")]),_:1}),et])}}},ot={pt4:""},st={class:"text-sm",flex:"~ gap-1 items-center justify-end","mt-3":""},it=t("div",{"i-carbon-timer":"","text-lg":"",op75:""},null,-1),at=t("span",{op50:""},"Total execution time:",-1),gt=v({__name:"plugins",setup(p){const e=M(),a=W(),r=x(()=>{const c=e.value?.plugins||[],_=a.value?.getClientPluginMetrics()||[];return c.map(o=>{const s=typeof o=="string"?{src:o}:o;return{...s,metric:_.find(g=>g.src===s.src||g.src.startsWith(s.src))}})}),i=x(()=>{const c=a.value?.getClientPluginMetrics()||[],_=Math.min(...c.map(s=>s.start));return Math.max(...c.map(s=>s.end))-_});return(c,_)=>{const o=R,s=k,g=U,N=nt,S=j;return n(),m(C,null,[l(g,{icon:"carbon-plug",text:"Plugins",description:`Total plugins: ${f(r).length}`},{default:h(()=>[t("div",ot,[(n(!0),m(C,null,E(f(r),($,b)=>(n(),u(o,{key:$.src,plugin:$,index:b+1,"ml--4":"","border-base":"",py2:"",class:L(b?"border-t":"")},null,8,["plugin","index","class"]))),128)),t("div",st,[it,at,l(s,{duration:f(i),factor:10},null,8,["duration"])])])]),_:1},8,["description"]),l(S,null,{default:h(()=>[l(N)]),_:1})],64)}}});export{gt as default};
@@ -1 +1 @@
1
- import{_ as C}from"./StateEditor.vue.4439d43c.js";import{_ as h}from"./NSectionBlock.9cbe0175.js";import{o as c,e as r,b as m,a as v,aa as x,U as b,l as u,u as o,f as e,w as s,q as y,F as k}from"./entry.a0dd6aac.js";import{_ as R}from"./HelpFab.vue.dbb954dd.js";import"./NIconButton.vue.ac7efd0c.js";import"./json-editor-vue.b8dc29b2.js";import"./NIconTitle.vue.ace3a05a.js";const B={class:"markdown-body"},N=m("h1",null,"Runtime Configs",-1),$=m("p",null,"// TODO:",-1),w=[N,$],D={__name:"runtime-configs",setup(d,{expose:t}){return t({frontmatter:{}}),(l,p)=>(c(),r("div",B,w))}},F={key:0},H=v({__name:"runtime-configs",setup(d){const t=x(),_=b(),l=u(()=>t.value?.nuxt.payload),p=u(()=>{const n={..._.value?.runtimeConfig};return delete n.public,delete n.app,n});return(n,S)=>{const a=C,i=h,f=D,g=R;return c(),r(k,null,[o(t)?(c(),r("div",F,[e(i,{icon:"carbon-settings-services",text:"App Config",padding:!1},{default:s(()=>[e(a,{state:o(t).appConfig},null,8,["state"])]),_:1}),e(i,{icon:"carbon-settings",text:"Public Runtime Config",padding:!1},{default:s(()=>[e(a,{state:o(l).config?.public},null,8,["state"])]),_:1}),e(i,{icon:"i-carbon-code-signing-service",text:"Private Runtime Config",open:!1,padding:!1,description:"These values are not exposed to the client. Readonly in the DevTools."},{default:s(()=>[e(a,{state:o(p),readonly:""},null,8,["state"])]),_:1})])):y("",!0),e(g,null,{default:s(()=>[e(f)]),_:1})],64)}}});export{H as default};
1
+ import{_ as C}from"./StateEditor.vue.d48421f9.js";import{_ as h}from"./NSectionBlock.8c2cc0df.js";import{o as c,c as r,a as m,g as v,aa as x,U as b,l as u,q as o,b as e,w as s,s as y,F as k}from"./entry.fbf2c464.js";import{_ as R}from"./HelpFab.vue.e5d23c98.js";import"./NIconButton.vue.24522062.js";import"./json-editor-vue.d5db52dc.js";import"./NIconTitle.vue.dc58a435.js";const B={class:"markdown-body"},N=m("h1",null,"Runtime Configs",-1),$=m("p",null,"// TODO:",-1),w=[N,$],D={__name:"runtime-configs",setup(d,{expose:t}){return t({frontmatter:{}}),(l,p)=>(c(),r("div",B,w))}},F={key:0},H=v({__name:"runtime-configs",setup(d){const t=x(),_=b(),l=u(()=>t.value?.nuxt.payload),p=u(()=>{const n={..._.value?.runtimeConfig};return delete n.public,delete n.app,n});return(n,S)=>{const a=C,i=h,f=D,g=R;return c(),r(k,null,[o(t)?(c(),r("div",F,[e(i,{icon:"carbon-settings-services",text:"App Config",padding:!1},{default:s(()=>[e(a,{state:o(t).appConfig},null,8,["state"])]),_:1}),e(i,{icon:"carbon-settings",text:"Public Runtime Config",padding:!1},{default:s(()=>[e(a,{state:o(l).config?.public},null,8,["state"])]),_:1}),e(i,{icon:"i-carbon-code-signing-service",text:"Private Runtime Config",open:!1,padding:!1,description:"These values are not exposed to the client. Readonly in the DevTools."},{default:s(()=>[e(a,{state:o(p),readonly:""},null,8,["state"])]),_:1})])):y("",!0),e(g,null,{default:s(()=>[e(f)]),_:1})],64)}}});export{H as default};
@@ -0,0 +1,9 @@
1
+ import{_ as pe}from"./Navbar.vue.82295224.js";import{g as J,r as w,o as s,c as g,h as c,w as i,a as m,n as R,q as e,a_ as A,t as S,s as T,d as C,S as de,ab as me,e as fe,Z as ve,F as B,m as M,P as Y,U as he,ag as _e,l as h,I as ee,b as l,j as ye,J as ge,a$ as be,E as xe,b0 as Ce,X as ke,b1 as $e,a6 as Re}from"./entry.fbf2c464.js";import{_ as te}from"./Badge.d9d2b649.js";import{_ as Se}from"./NSelect.vue.8ff29308.js";import{_ as Te}from"./CodeSnippets.vue.b63711e4.js";import{_ as oe}from"./NPanelGrids.eec702e8.js";import{_ as qe}from"./NCodeBlock.vue.bdc8bfdc.js";import{u as we}from"./editor.a4d83539.js";import{C as Z}from"./constants.d7bcda3c.js";import{_ as je}from"./PanelLeftRight.vue.5871de72.js";import"./client.495918a8.js";const Ee=m("div",{"x-divider":""},null,-1),ne=J({__name:"ServerRouteListItem",props:{item:{},index:{default:0}},setup(O){const V=w(!0);return(a,r)=>{const P=Y,N=te,q=ne;return s(),g("div",null,[(s(),c(me(a.item.routes?"button":e(fe)),{flex:"~ gap-2","w-full":"","items-center":"","hover-bg-active":"",px2:"",py1:"",class:R([{"bg-active":a.$route.query.path===a.item.route}]),style:de({paddingLeft:`calc(0.5rem + ${a.index*1.5}em)`}),to:{query:{path:a.item.route}},onClick:r[0]||(r[0]=U=>V.value=!e(V))},{default:i(()=>[m("div",{class:R({"w-12":!a.item.routes}),"flex-none":"","text-left":""},[a.item.type==="collection"?(s(),c(P,{key:0,icon:"carbon:chevron-right","mb0.5":"","transform-rotate":e(V)?90:0,transition:""},null,8,["transform-rotate"])):(s(),c(N,{key:1,class:R(("getRequestMethodClass"in a?a.getRequestMethodClass:e(A))(a.item.method||"*")),textContent:S((a.item.method||"*").toUpperCase())},null,8,["class","textContent"]))],2),m("span",{class:R({"flex items-center":a.item.routes}),"flex-auto":"","font-mono":"","text-sm":""},[a.item.type==="collection"?(s(),c(P,{key:0,title:`${a.item.routes?.length} routes`,icon:"carbon:folder",mr1:""},null,8,["title"])):T("",!0),C(" "+S(a.item.route),1)],2)]),_:1},8,["class","style","to"])),Ee,e(V)?ve(a.$slots,"default",{key:0},()=>[(s(!0),g(B,null,M(a.item.routes,U=>(s(),c(q,{key:U.filepath,item:U,index:a.index+1},null,8,["item","index"]))),128))]):T("",!0)])}}}),Ve={"h-full":"","w-full":"",flex:"~ col"},Ue={flex:"~ col gap-2","flex-none":"",p4:"","navbar-glass":""},Ne={flex:"~ gap2"},Pe={flex:"~ gap2","w-full":"","items-center":"",px4:"",pb2:"","text-center":"","text-sm":"",border:"b base"},Le=m("div",{"flex-auto":""},null,-1),Be={key:0,border:"b base","items-center":"",px4:"",py2:"",grid:"~ cols-[max-content_1fr] gap-2"},Oe={"text-right":"","font-mono":""},De={key:1,relative:""},Me={key:2,px4:"",py2:"",flex:"~ col gap-2",border:"b base"},Ie={border:"b base",flex:"~ gap2","items-center":"",px4:"",py2:""},Fe=m("div",null,"Response",-1),Ge={key:1,"text-xs":"",op50:""},We=m("div",{"flex-auto":""},null,-1),Ae=m("div",{op50:""}," Request finished in ",-1),He=J({__name:"ServerRouteDetails",props:{route:{type:Object,required:!0}},setup(O){const V=O,a=he(),r=_e({contentType:"text/plain",data:"",statusCode:200,error:void 0}),P=h(()=>r.contentType.includes("application/json")?"json":r.contentType.includes("text/html")?"html":r.contentType.includes("text/css")?"css":r.contentType.includes("text/javascript")?"javascript":r.contentType.includes("text/xml")||r.contentType.includes("application/xml")?"xml":"text"),N=h(()=>P.value==="json"?JSON.stringify(r.data,null,2):r.data),q=w(0),U=w(!1),_=w(!1),j=we(),D=h(()=>V.route.route?.split(/((?:\*\*)?:[\w_]+)/g)),p=h(()=>D.value?.filter(o=>o.startsWith(":")||o.startsWith("**:"))||[]),d=w(V.route.method||"GET"),L=w({}),b=w([{key:"",value:""}]),x=w([{key:"",value:""}]),f=w([{key:"Content-Type",value:"application/json"}]),E=h(()=>x.value.filter(({key:o})=>o).length),K=h(()=>f.value.filter(({key:o})=>o).length),H=h(()=>{const o={};for(let t=0;t<b.value.length;t++){const{key:n,value:v}=b.value[t];o[n]=v}return Object.keys(o)[0]?o:null}),se=h(()=>{let o=a.value?.devServer.url||"http://localhost";o.charAt(o.length-1)==="/"&&(o=o.slice(0,-1));const t=a.value?.devServer.port||3e3;return o.includes(`:${t}`)?o:`${o}:${t}`}),I=h(()=>{let o=new URLSearchParams(Object.fromEntries(x.value.filter(({key:v})=>v).map(({key:v,value:k})=>[v,k]))).toString();o&&(o=`?${o}`);const t=(D.value?.map(v=>(v.startsWith(":")||v.startsWith("**:"))&&L.value[v]||v).join("")||"")+o;let n=a.value?.app.baseURL||"";return(n==="./"||n===".")&&(n=""),n.endsWith("/")&&(n=n.slice(0,-1)),n+t}),ae=h(()=>se.value+I.value);async function Q(){_.value=!0,U.value=!0,Object.assign(r,{lang:"text",contentType:"",data:"",content:"",error:void 0});const o=Date.now();try{r.data=await $fetch(ae.value,{method:d.value.toUpperCase(),headers:Object.fromEntries(f.value.filter(({key:t,value:n})=>t&&n).map(({key:t,value:n})=>[t,n])),query:Object.fromEntries(x.value.filter(({key:t,value:n})=>t&&n).map(({key:t,value:n})=>[t,n])),body:H.value,onResponse({response:t}){r.contentType=(t.headers.get("content-type")||"").toString().toLowerCase().trim(),r.statusCode=t.status},onResponseError(t){r.error=t.response._data,r.data=t.response._data}})}catch{}U.value=!1,q.value=Date.now()-o}const X=h(()=>{const o=[],t=[],n=f.value.filter(({key:k,value:$})=>k&&$&&!(k==="Content-Type"&&$==="application/json")).map(({key:k,value:$})=>` '${k}': '${$}'`).join(`,
2
+ `);d.value.toUpperCase()!=="GET"&&t.push(`method: '${d.value.toUpperCase()}'`),n&&t.push(`headers: {
3
+ ${n}
4
+ }`),H.value&&t.push(`body: ${JSON.stringify(H.value,null,2)}`);const v=t.length?`, {
5
+ ${t.join(`,
6
+ `).split(`
7
+ `).map(k=>` ${k}`).join(`
8
+ `)}
9
+ }`:"";return o.push({name:"useFetch",lang:"javascript",docs:Z.nuxt.useFetch,code:`const { data, pending, error, refresh } = useFetch('${I.value}'${v})`}),o.push({name:"$fetch",lang:"javascript",docs:Z.nuxt.$fetch,code:`await $fetch('${I.value}'${v})`}),o}),y=w(p.value.length?"params":"query"),F=h(()=>{if(y.value==="query")return x.value;if(y.value==="body")return b.value;if(y.value==="headers")return f.value}),re=["GET","POST","PUT","PATCH","DELETE","HEAD"];return(o,t)=>{const n=ye,v=Se,k=ge,$=Y,le=Te,ue=oe,ie=be,z=te,ce=qe;return s(),g("div",Ve,[m("div",Ue,[m("div",Ne,[O.route.method?(s(),c(n,{key:0,class:R(("getRequestMethodClass"in o?o.getRequestMethodClass:e(A))(e(d))),"pointer-events-none":"",tabindex:"-1"},{default:i(()=>[C(S(e(d).toUpperCase()),1)]),_:1},8,["class"])):(s(),c(v,{key:1,modelValue:e(d),"onUpdate:modelValue":t[0]||(t[0]=u=>ee(d)?d.value=u:null),class:R(("getRequestMethodClass"in o?o.getRequestMethodClass:e(A))(e(d)))},{default:i(()=>[(s(),g(B,null,M(re,u=>m("option",{key:u,class:R(("getRequestMethodClass"in o?o.getRequestMethodClass:e(A))(u))},S(u.toUpperCase()),3)),64))]),_:1},8,["modelValue","class"])),l(k,{"model-value":e(I),disabled:"","flex-auto":"","font-mono":"",p:"x5 y2",n:"primary xs"},null,8,["model-value"]),l(n,{n:"primary solid",onClick:Q},{default:i(()=>[l($,{icon:"carbon:send"})]),_:1})])]),m("div",Pe,[e(p).length?(s(),c(n,{key:0,class:R(e(y)==="params"?"text-primary n-primary":"border-transparent! shadow-none!"),onClick:t[1]||(t[1]=u=>y.value="params")},{default:i(()=>[l($,{icon:"i-carbon-text-selection"}),C(" Params ("+S(e(p).length)+") ",1)]),_:1},8,["class"])):T("",!0),l(n,{class:R(e(y)==="query"?"text-primary n-primary":"border-transparent! shadow-none!"),onClick:t[2]||(t[2]=u=>y.value="query")},{default:i(()=>[l($,{icon:"i-carbon-help"}),C(" Query "+S(e(E)?`(${e(E)})`:""),1)]),_:1},8,["class"]),e(d)!=="GET"?(s(),c(n,{key:1,class:R(e(y)==="body"?"text-primary n-primary":"border-transparent! shadow-none!"),onClick:t[3]||(t[3]=u=>y.value="body")},{default:i(()=>[l($,{icon:"i-carbon-document"}),C(" Body ")]),_:1},8,["class"])):T("",!0),l(n,{class:R(e(y)==="headers"?"text-primary n-primary":"border-transparent! shadow-none!"),onClick:t[4]||(t[4]=u=>y.value="headers")},{default:i(()=>[l($,{icon:"i-carbon-html-reference"}),C(" Headers "+S(e(K)?`(${e(K)})`:""),1)]),_:1},8,["class"]),l(n,{class:R(e(y)==="snippet"?"text-primary n-primary":"border-transparent! shadow-none!"),onClick:t[5]||(t[5]=u=>y.value="snippet")},{default:i(()=>[l($,{icon:"carbon:code"}),C(" Snippets ")]),_:1},8,["class"]),Le,l(n,{icon:"carbon-launch",onClick:t[6]||(t[6]=u=>e(j)(O.route.filepath))},{default:i(()=>[C(" Open in Editor ")]),_:1})]),e(y)==="params"?(s(),g("div",Be,[(s(!0),g(B,null,M(e(p),u=>(s(),g(B,{key:u},[m("div",Oe,S(u),1),l(k,{modelValue:e(L)[u],"onUpdate:modelValue":G=>e(L)[u]=G,placeholder:u,"flex-1":""},null,8,["modelValue","onUpdate:modelValue","placeholder"])],64))),128))])):T("",!0),e(y)==="snippet"?(s(),g("div",De,[e(X).length?(s(),c(le,{key:0,border:"b base","code-snippets":e(X)},null,8,["code-snippets"])):T("",!0)])):e(F)?(s(),g("div",Me,[(s(!0),g(B,null,M(e(F),(u,G)=>(s(),g("div",{key:G,flex:"~ gap-2","justify-around":""},[l(k,{modelValue:u.key,"onUpdate:modelValue":W=>u.key=W,placeholder:"Key","flex-1":"","font-mono":"",n:"sm"},null,8,["modelValue","onUpdate:modelValue"]),l(k,{modelValue:u.value,"onUpdate:modelValue":W=>u.value=W,placeholder:"Value","flex-1":"","font-mono":"",n:"sm"},null,8,["modelValue","onUpdate:modelValue"]),l(n,{n:"red",onClick:W=>e(F).splice(G,1)},{default:i(()=>[l($,{icon:"carbon:delete"})]),_:2},1032,["onClick"])]))),128)),m("div",null,[l(n,{icon:"carbon-add",n:"sm primary",my1:"","px-3":"",onClick:t[7]||(t[7]=u=>e(F).push({key:"",value:""}))},{default:i(()=>[C(" Add ")]),_:1})])])):T("",!0),e(_)?e(U)?(s(),c(ie,{key:4,"z-10":"","flex-auto":"","backdrop-blur":""},{default:i(()=>[C(" Fetching... ")]),_:1})):(s(),g(B,{key:5},[m("div",Ie,[Fe,e(r).error?(s(),c(z,{key:0,"bg-red-400:10":"","text-red-400":""},{default:i(()=>[C(" Error ")]),_:1})):T("",!0),l(z,{class:R({"bg-orange-400:10 text-orange-400":e(r).error,"bg-green-400:10 text-green-400":!e(r).error})},{default:i(()=>[C(S(e(r).statusCode),1)]),_:1},8,["class"]),e(r).contentType?(s(),g("code",Ge,S(e(r).contentType),1)):T("",!0),We,Ae,l(z,{"bg-green-400:10":"","text-green-400":""},{default:i(()=>[C(S(e(q))+" ms ",1)]),_:1})]),l(ce,{"flex-auto":"","overflow-auto":"","py-2":"",code:e(N),lang:e(P)},null,8,["code","lang"])],64)):(s(),c(ue,{key:3},{default:i(()=>[l(n,{n:"primary",onClick:Q},{default:i(()=>[l($,{icon:"carbon:send"}),C(" Send request ")]),_:1})]),_:1}))])}}}),ze={flex:"~ gap1","text-sm":""},Je={key:0,op50:""},Ke={op50:""},Qe=m("span",{op75:""},"Select a route to start",-1),ut=J({__name:"server-routes",setup(O){const V=xe(),a=Ce(),r=h(()=>{const _=[],j=(p,d)=>{p.routes=p.routes||[],p.routes.push(d)};return a.value?.forEach(p=>{const d=p.filepath.split("/"),L=d.slice(0,-1).slice(d.indexOf("server")+1);let b=null;if(L.forEach(x=>{const f=b?b.routes?.find(E=>E.route===x):_.find(E=>E.route===x);if(f)b=f;else{const E={route:x,filepath:x.replace(/\W/g,"-").toLowerCase(),type:"collection",routes:[]};b?j(b,E):_.push(E),b=E}}),p.type==="runtime"){const x=_.find(f=>f.route==="runtime");if(x)j(x,p);else{const f={route:"runtime",filepath:"runtime",type:"collection",routes:[p]};_.push(f)}}else b?j(b,p):_.push(p)}),_.length===1?_[0].routes??[]:_}),P=h(()=>new ke(a.value||[],{keys:["method","route"],shouldSort:!0})),N=h(()=>a.value?.find(_=>_.route===V.query?.path)),q=w(""),U=h(()=>a.value?q.value?P.value.search(q.value).map(j=>j.item):a.value:[]);return(_,j)=>{const D=pe,p=ne,d=He,L=Re,b=oe,x=je;return s(),c(x,null,{left:i(()=>[l(D,{search:e(q),"onUpdate:search":j[0]||(j[0]=f=>ee(q)?q.value=f:null),pb2:""},{default:i(()=>[m("div",ze,[e(q)?(s(),g("span",Je,S(e(U).length)+" matched · ",1)):T("",!0),m("span",Ke,S(e(a)?.length)+" routes in total",1)])]),_:1},8,["search"]),(s(!0),g(B,null,M(e(r),f=>(s(),c(p,{key:f.filepath,item:f},null,8,["item"]))),128))]),right:i(()=>[(s(),c($e,{max:10},[e(N)?(s(),c(d,{key:e(N).filepath,route:e(N)},null,8,["route"])):T("",!0)],1024)),e(N)?T("",!0):(s(),c(b,{key:0},{default:i(()=>[l(L,{px6:"",py2:""},{default:i(()=>[Qe]),_:1})]),_:1}))]),_:1})}}});export{ut as default};
@@ -1 +1 @@
1
- import{_ as j}from"./NIconTitle.vue.ace3a05a.js";import{_ as O}from"./NSwitch.vue.f0f70131.js";import{a as z,be as F,am as H,e as c,f as s,b as e,F as m,m as h,u as a,w as n,H as y,a5 as I,bf as L,o as i,p as k,t as f,c as A,q,j as E,aX as R,h as X}from"./entry.a0dd6aac.js";import{_ as G}from"./NSelect.vue.3956d7b1.js";import{_ as J}from"./NCheckbox.vue.060051ad.js";const K={px6:"",py6:""},M={grid:"~ md:cols-2 gap-x-10 gap-y-3","max-w-300":""},P={flex:"~ col gap-1",py3:""},Q=e("h3",{mb1:"","text-lg":""}," Tabs ",-1),W={flex:"~ gap-2","flex-auto":"","items-center":"","justify-start":""},Y={capitalize:"",op75:""},Z={flex:"~ col gap-1",border:"~ base rounded",py3:"",pl4:"",pr2:""},ee={py3:"",flex:"~ col gap-1",border:"b base"},oe=e("h3",{mb1:"","text-lg":""}," Appearance ",-1),te=e("div",{"carbon-sun":"","dark:carbon-moon":"","translate-y--1px":""},null,-1),le={py3:"",flex:"~ col gap-1",border:"b base"},se=e("h3",{mb1:"","text-lg":""}," UI Scale ",-1),ae=["value"],ne={py3:"",flex:"~ col gap-1"},ie=e("h3",{mb1:"","text-lg":""}," Features ",-1),de=e("span",null,"Close DevTools when clicking outside",-1),ce=e("span",null,"Show help buttons",-1),ge=z({__name:"settings",setup(re){const{interactionCloseOnOutsideClick:g,showHelpButtons:v,scale:x,hiddenTabs:r,hiddenTabCategories:u}=I(),T=[["Tiny",12/15],["Small",14/15],["Normal",1],["Large",16/15],["Huge",18/15]],C=F(H());function N(d,t){t?r.value=r.value.filter(p=>p!==d):r.value.push(d)}function w(d,t){t?u.value=u.value.filter(p=>p!==d):u.value.push(d)}return(d,t)=>{const p=j,b=O,U=R,S=X,$=L,B=G,V=J;return i(),c("div",K,[s(p,{class:"mb-5 text-xl op75",icon:"i-carbon-settings-adjust",text:"DevTools Settings"}),e("div",M,[e("div",P,[Q,(i(!0),c(m,null,h(a(C),([o,_])=>(i(),c(m,{key:o},[_.length?(i(),c("div",{key:0,flex:"~ col gap-1","mx--1":"",class:k(a(u).includes(o)?"op50 grayscale":""),"pt-2":""},[s(b,{flex:"~ row-reverse",px2:"",py1:"","n-lime":"","model-value":!a(u).includes(o),"onUpdate:modelValue":l=>w(o,l)},{default:n(()=>[e("div",W,[e("span",Y,f(o),1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e("div",Z,[(i(!0),c(m,null,h(_,l=>(i(),A(b,{key:l.name,flex:"~ row-reverse",py1:"",pl2:"",pr1:"","n-primary":"","model-value":!a(r).includes(l.name),"onUpdate:modelValue":D=>N(l.name,D)},{default:n(()=>[e("div",{flex:"~ gap-2","flex-auto":"","items-center":"","justify-start":"",class:k(a(r).includes(l.name)?"op25":"")},[s(U,{"text-xl":"",icon:l.icon,title:l.title},null,8,["icon","title"]),e("span",null,f(l.title),1)],2)]),_:2},1032,["model-value","onUpdate:modelValue"]))),128))])],2)):q("",!0)],64))),128))]),e("div",null,[e("div",ee,[oe,e("div",null,[s($,null,{default:n(({toggle:o,isDark:_})=>[s(S,{n:"primary",onClick:o},{default:n(()=>[te,E(" "+f(_.value?"Dark":"Light"),1)]),_:2},1032,["onClick"])]),_:1})])]),e("div",le,[se,s(B,{modelValue:a(x),"onUpdate:modelValue":t[0]||(t[0]=o=>y(x)?x.value=o:null),n:"primary"},{default:n(()=>[(i(),c(m,null,h(T,o=>e("option",{key:o[0],value:o[1]},f(o[0]),9,ae)),64))]),_:1},8,["modelValue"])]),e("div",ne,[ie,s(V,{modelValue:a(g),"onUpdate:modelValue":t[1]||(t[1]=o=>y(g)?g.value=o:null),"n-primary":""},{default:n(()=>[de]),_:1},8,["modelValue"]),s(V,{modelValue:a(v),"onUpdate:modelValue":t[2]||(t[2]=o=>y(v)?v.value=o:null),"n-primary":""},{default:n(()=>[ce]),_:1},8,["modelValue"])])])])])}}});export{ge as default};
1
+ import{_ as j}from"./NIconTitle.vue.dc58a435.js";import{_ as I}from"./NSwitch.vue.840840dc.js";import{g as O,bg as z,am as F,c,b as s,a as e,F as m,m as h,q as a,w as n,I as y,a5 as L,bh as A,o as i,n as k,t as f,h as H,s as q,d as E,aX as R,j as X}from"./entry.fbf2c464.js";import{_ as G}from"./NSelect.vue.8ff29308.js";import{_ as J}from"./NCheckbox.vue.f4134b6b.js";const K={px6:"",py6:""},M={grid:"~ md:cols-2 gap-x-10 gap-y-3","max-w-300":""},P={flex:"~ col gap-1",py3:""},Q=e("h3",{mb1:"","text-lg":""}," Tabs ",-1),W={flex:"~ gap-2","flex-auto":"","items-center":"","justify-start":""},Y={capitalize:"",op75:""},Z={flex:"~ col gap-1",border:"~ base rounded",py3:"",pl4:"",pr2:""},ee={py3:"",flex:"~ col gap-1",border:"b base"},oe=e("h3",{mb1:"","text-lg":""}," Appearance ",-1),te=e("div",{"carbon-sun":"","dark:carbon-moon":"","translate-y--1px":""},null,-1),le={py3:"",flex:"~ col gap-1",border:"b base"},se=e("h3",{mb1:"","text-lg":""}," UI Scale ",-1),ae=["value"],ne={py3:"",flex:"~ col gap-1"},ie=e("h3",{mb1:"","text-lg":""}," Features ",-1),de=e("span",null,"Close DevTools when clicking outside",-1),ce=e("span",null,"Show help buttons",-1),ge=O({__name:"settings",setup(re){const{interactionCloseOnOutsideClick:g,showHelpButtons:v,scale:x,hiddenTabs:r,hiddenTabCategories:u}=L(),T=[["Tiny",12/15],["Small",14/15],["Normal",1],["Large",16/15],["Huge",18/15]],C=z(F());function N(d,t){t?r.value=r.value.filter(p=>p!==d):r.value.push(d)}function w(d,t){t?u.value=u.value.filter(p=>p!==d):u.value.push(d)}return(d,t)=>{const p=j,b=I,U=R,S=X,$=A,B=G,V=J;return i(),c("div",K,[s(p,{class:"mb-5 text-xl op75",icon:"i-carbon-settings-adjust",text:"DevTools Settings"}),e("div",M,[e("div",P,[Q,(i(!0),c(m,null,h(a(C),([o,_])=>(i(),c(m,{key:o},[_.length?(i(),c("div",{key:0,flex:"~ col gap-1","mx--1":"",class:k(a(u).includes(o)?"op50 grayscale":""),"pt-2":""},[s(b,{flex:"~ row-reverse",px2:"",py1:"","n-lime":"","model-value":!a(u).includes(o),"onUpdate:modelValue":l=>w(o,l)},{default:n(()=>[e("div",W,[e("span",Y,f(o),1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e("div",Z,[(i(!0),c(m,null,h(_,l=>(i(),H(b,{key:l.name,flex:"~ row-reverse",py1:"",pl2:"",pr1:"","n-primary":"","model-value":!a(r).includes(l.name),"onUpdate:modelValue":D=>N(l.name,D)},{default:n(()=>[e("div",{flex:"~ gap-2","flex-auto":"","items-center":"","justify-start":"",class:k(a(r).includes(l.name)?"op25":"")},[s(U,{"text-xl":"",icon:l.icon,title:l.title},null,8,["icon","title"]),e("span",null,f(l.title),1)],2)]),_:2},1032,["model-value","onUpdate:modelValue"]))),128))])],2)):q("",!0)],64))),128))]),e("div",null,[e("div",ee,[oe,e("div",null,[s($,null,{default:n(({toggle:o,isDark:_})=>[s(S,{n:"primary",onClick:o},{default:n(()=>[te,E(" "+f(_.value?"Dark":"Light"),1)]),_:2},1032,["onClick"])]),_:1})])]),e("div",le,[se,s(B,{modelValue:a(x),"onUpdate:modelValue":t[0]||(t[0]=o=>y(x)?x.value=o:null),n:"primary"},{default:n(()=>[(i(),c(m,null,h(T,o=>e("option",{key:o[0],value:o[1]},f(o[0]),9,ae)),64))]),_:1},8,["modelValue"])]),e("div",ne,[ie,s(V,{modelValue:a(g),"onUpdate:modelValue":t[1]||(t[1]=o=>y(g)?g.value=o:null),"n-primary":""},{default:n(()=>[de]),_:1},8,["modelValue"]),s(V,{modelValue:a(v),"onUpdate:modelValue":t[2]||(t[2]=o=>y(v)?v.value=o:null),"n-primary":""},{default:n(()=>[ce]),_:1},8,["modelValue"])])])])])}}});export{ge as default};
@@ -1 +1 @@
1
- import{aa as m,au as n,l as s,y as o}from"./entry.a0dd6aac.js";function u(){const p=m(),t=n("getComponents",()=>o.getComponents()),l=s(()=>Object.entries(p.value?.nuxt?.vueApp._context.components||{}).map(([e])=>({pascalName:e,global:!0})).filter(e=>!/^Lazy[A-Z]/.test(e.pascalName)).filter(e=>!(t.value||[]).find(a=>a.pascalName===e.pascalName)));return s(()=>[...l.value,...t.value||[]].sort((e,a)=>e.pascalName.localeCompare(a.pascalName)))}function r(){return n("getComponentsRelationships",()=>o.getComponentsRelationships())}export{u as a,r as u};
1
+ import{aa as m,aQ as n,l as s,z as o}from"./entry.fbf2c464.js";function u(){const p=m(),t=n("getComponents",()=>o.getComponents()),l=s(()=>Object.entries(p.value?.nuxt?.vueApp._context.components||{}).map(([e])=>({pascalName:e,global:!0})).filter(e=>!/^Lazy[A-Z]/.test(e.pascalName)).filter(e=>!(t.value||[]).find(a=>a.pascalName===e.pascalName)));return s(()=>[...l.value,...t.value||[]].sort((e,a)=>e.pascalName.localeCompare(a.pascalName)))}function r(){return n("getComponentsRelationships",()=>o.getComponentsRelationships())}export{u as a,r as u};
@@ -0,0 +1 @@
1
+ import{_ as I}from"./Badge.d9d2b649.js";import{_ as F}from"./NCodeBlock.vue.bdc8bfdc.js";import{_ as E}from"./NCheckbox.vue.f4134b6b.js";import{_ as L}from"./NTip.vue.79345a6a.js";import{g as q,D as A,aR as G,r as $,aS as K,B as Q,o as m,c as h,Z as W,q as t,t as V,s as w,F as U,b as s,h as Z,w as u,a as y,I as B,d as p,j as z,K as H,aT as J,U as O,l as X,a8 as Y,a9 as ee,aU as te,aQ as ae}from"./entry.fbf2c464.js";const se={key:0},oe={p4:"",flex:"~ col gap-1"},ne={class:"text-lg font-medium leading-6"},le=y("p",{op50:""}," The following command will be executed in your terminal: ",-1),re={flex:"~ gap-3",mt2:"","justify-end":""},fe=q({__name:"NpmVersionCheck",props:{packageName:{},options:{},showVersion:{type:Boolean,default:!0}},setup(l){const a=l,e=A(),{info:o,update:i,state:v,processId:k,restart:c}=G(a.packageName,a.options),f=$(!0),_=$(!0),M=K(),x=Q();async function C(){const r=await i(async n=>x.start(n));r&&_.value&&M.value.push({id:r,message:`${a.packageName} has been updated. Do you want to restart the Nuxt server now?`}),r&&f.value&&e.push(`/modules/terminals?id=${encodeURIComponent(r)}`)}return(r,n)=>{const N=I,R=F,b=E,S=L,P=z,T=H;return m(),h(U,null,[W(r.$slots,"default",{id:t(k),info:t(o),update:C,state:t(v),restart:t(c)},()=>[t(o)&&r.showVersion?(m(),h("code",se,V(`v${t(o).current}`),1)):w("",!0),t(o)?.latest?(m(),h(U,{key:1},[t(o).needsUpdate?(m(),h("button",{key:0,onClick:n[0]||(n[0]=g=>C())},[s(N,{"bg-green-400:10":"","text-green-400":"",title:"updates available",textContent:"updates available"})])):(m(),Z(N,{key:1,"bg-gray-400:10":"","text-gray-400":"",title:"latest",textContent:"latest"}))],64)):w("",!0)]),s(t(x),null,{default:u(({resolve:g,args:j})=>[s(T,{"model-value":!0,onClose:d=>g(!1)},{default:u(()=>[y("div",oe,[y("h3",ne," Update "+V(a.packageName)+"? ",1),le,s(R,{code:j[0],lang:"bash",my3:"",px4:"",py2:"",border:"~ base rounded",lines:!1},null,8,["code"]),s(b,{modelValue:t(f),"onUpdate:modelValue":n[1]||(n[1]=d=>B(f)?f.value=d:null),n:"primary"},{default:u(()=>[p(" Navigate to terminal ")]),_:1},8,["modelValue"]),s(b,{modelValue:t(_),"onUpdate:modelValue":n[2]||(n[2]=d=>B(_)?_.value=d:null),n:"primary"},{default:u(()=>[p(" Restart Nuxt server after update ")]),_:1},8,["modelValue"]),y("div",re,[s(S,{n:"sm purple","flex-auto":"",icon:"carbon-chemistry"},{default:u(()=>[p(" Experimental feature. Please make sure to backup your project first. ")]),_:1}),s(P,{onClick:d=>g(!1)},{default:u(()=>[p(" Cancel ")]),_:2},1032,["onClick"]),s(P,{n:"solid primary",onClick:d=>g(!0)},{default:u(()=>[p(" Update ")]),_:2},1032,["onClick"])])])]),_:2},1032,["onClose"])]),_:1})],64)}}}),D=["pages","meta","components","imports","nuxt-config-schema","@nuxt/devtools","@nuxt/telemetry"];function ue(){return ae("getModulesList",async()=>(await $fetch("https://cdn.jsdelivr.net/npm/@nuxt/modules@latest/modules.json")).filter(a=>!D.includes(a.npm)&&a.compatibility.nuxt.includes("^3")))}function _e(){return J("installed-modules",()=>{const l=O(),a=ue();return X(()=>(l.value?._installedModules||[]).map(e=>{if(!e.entryPath)return;const o=e.entryPath&&Y(e.entryPath),i=e.meta?.name?e.meta?.name:e.entryPath?o?ee(e.entryPath):l.value?.rootDir?te(e.entryPath,l.value?.rootDir).path:void 0:void 0,v=l.value?.modules?.includes(i),k=a.value?.find(c=>c.npm===i)||a.value?.find(c=>c.name===i);return{name:i,isPackageModule:o,isUninstallable:v,info:k,...e}}).filter(e=>e&&(!e.name||!D.includes(e.name))))})}export{fe as _,ue as a,_e as u};
@@ -0,0 +1 @@
1
+ import{_ as se}from"./NIconButton.vue.24522062.js";import{_ as re}from"./NSelect.vue.8ff29308.js";import{g as J,D as le,r as j,l as q,E,b3 as T,ak as ue,a4 as ie,aj as ce,L as de,z as p,A as h,q as n,o as r,h as _,w as l,a as u,b as c,I as D,c as d,F as w,m as L,t as k,n as z,d as i,aL as U,s as F,af as me,x as _e,aV as pe,b4 as fe,b5 as ye,b6 as G,J as ve,e as ge,P as he,j as ke,a6 as be}from"./entry.fbf2c464.js";import{_ as xe}from"./NLink.vue.393c859e.js";import{_ as we}from"./NPanelGrids.eec702e8.js";import{_ as Ke}from"./PanelLeftRight.vue.5871de72.js";import{_ as Ce}from"./FilepathItem.vue.a47beb58.js";import{U as Ve}from"./json-editor-vue.d5db52dc.js";import{_ as $e}from"./AuthRequiredPanel.vue.e75f9e70.js";import"./editor.a4d83539.js";const Ne={class:"h-[48px] flex items-center justify-between gap1 px-3"},Se={class:"w-full text-sm"},Ie=["value"],je=u("div",{"x-divider":""},null,-1),qe={key:0,"h-full":"","of-hidden":"",flex:"~ col"},De={border:"b base",class:"h-[49px] flex flex-none items-center justify-between px-4 text-sm"},Le={class:"flex items-center gap-4"},Ue={key:1},Ae=["onKeyup"],Be=u("br",null,null,-1),Me={key:0,op50:""},Pe={key:1},Re=u("code",null,"nitro.storage",-1),Ee=u("br",null,null,-1),Te={"font-bold":""},ze=u("br",null,null,-1),Fe={"text-sm":""},Ge=u("br",null,null,-1),Je=J({__name:"StorageDetails",async setup(O){let m,g;const K=ye(),y=le(),b=j(""),v=j(""),s=q({get(){return E().query?.storage},set(t){y.replace({query:{storage:t}})}}),e=j(),x=q(()=>E().query?.key),{data:C}=([m,g]=T(()=>G("storageMounts",()=>p.getStorageMounts())),m=await m,g(),m),{data:V,refresh:A}=([m,g]=T(async()=>G("storageKeys",async()=>s.value?await p.getStorageKeys(s.value):[])),m=await m,g(),m),W=K.hook("storage:key:update",async(t,o)=>{if(!(!s.value||t.split(":")[0]!==s.value)&&(await A(),x.value===t)){if(o==="remove")return y.replace({query:{storage:s.value}});await N(x.value)}});ue(W),ie(s,A),ce(async()=>{if(!x.value){e.value=null;return}N(x.value)}),de("keydown",t=>{t.key==="s"&&(t.ctrlKey||t.metaKey)&&(S(),t.preventDefault())});function $(t){return t.replace(`${s.value}:`,"")}const H=q(()=>V.value?V.value.filter(t=>t.includes(b.value)):[]);async function N(t){const o=await p.getStorageItem(await h(),t);e.value={key:t,updatedKey:$(t),editingKey:!1,content:o,updatedContent:o}}async function Q(){if(!v.value||!s.value)return;const t=`${s.value}:${v.value}`;V.value?.includes(t)||await p.setStorageItem(await h(),t,""),y.replace({query:{storage:s.value,key:t}}),v.value=""}async function S(){e.value&&(await p.setStorageItem(await h(),e.value.key,e.value.updatedContent),await N(e.value.key))}async function X(){!e.value||!s.value||(await p.removeStorageItem(await h(),e.value.key),e.value=null)}async function Y(){if(!e.value||!s.value)return;const t=`${s.value}:${e.value.updatedKey}`,o=await h();await p.setStorageItem(o,t,e.value.updatedContent),await p.removeStorageItem(o,e.value.key),y.replace({query:{storage:s.value,key:t}})}return(t,o)=>{const Z=se,ee=re,I=ve,te=ge,ne=he,B=ke,M=xe,P=be,R=we,oe=Ke,ae=Ce;return n(s)?(r(),_(oe,{key:0,"storage-key":"tab-storage"},{left:l(()=>[u("div",Ne,[c(Z,{icon:"carbon-chevron-left","ml--1":"",onClick:o[0]||(o[0]=a=>s.value="")}),u("div",Se,[c(ee,{modelValue:n(s),"onUpdate:modelValue":o[1]||(o[1]=a=>D(s)?s.value=a:null),n:"primary",icon:"carbon-data-base"},{default:l(()=>[(r(!0),d(w,null,L(n(C),(a,f)=>(r(),d("option",{key:f,value:f},k(f),9,Ie))),128))]),_:1},8,["modelValue"])])]),c(I,{modelValue:n(b),"onUpdate:modelValue":o[2]||(o[2]=a=>D(b)?b.value=a:null),icon:"carbon-search",placeholder:"Search...",n:"primary sm",border:"y x-none base! rounded-0",class:"w-full py2 ring-0!"},null,8,["modelValue"]),(r(!0),d(w,null,L(n(H),a=>(r(),d(w,{key:a},[c(te,{block:"",truncate:"",px2:"",py1:"","font-mono":"","text-sm":"",to:{query:{key:a,storage:n(s)}},class:z(a===n(e)?.key?"text-primary n-bg-active":"text-secondary hover:n-bg-hover")},{default:l(()=>[i(k($(a)),1)]),_:2},1032,["to","class"]),je],64))),128)),c(I,{modelValue:n(v),"onUpdate:modelValue":o[3]||(o[3]=a=>D(v)?v.value=a:null),icon:"carbon-add",placeholder:"key",n:"sm",border:"t-none x-none base! rounded-0",class:"w-full py2 font-mono ring-0!",onKeyup:U(Q,["enter"])},null,8,["modelValue","onKeyup"])]),right:l(()=>[n(e)?.key?(r(),d("div",qe,[u("div",De,[u("div",Le,[n(e).editingKey?(r(),_(I,{key:0,modelValue:n(e).updatedKey,"onUpdate:modelValue":o[4]||(o[4]=a=>n(e).updatedKey=a),onKeyup:U(Y,["enter"])},null,8,["modelValue","onKeyup"])):(r(),d("code",Ue,[i(k($(n(e).key))+" ",1),c(ne,{icon:"carbon-edit",class:"cursor-pointer op50 hover:op100",onClick:o[5]||(o[5]=a=>n(e).editingKey=!0)})])),n(e).editingKey?F("",!0):(r(),_(B,{key:2,n:"green xs",disabled:n(e).content===n(e).updatedContent,class:z({"border-green":n(e).content!==n(e).updatedContent}),onClick:S},{default:l(()=>[i(" Save ")]),_:1},8,["disabled","class"]))]),u("div",null,[c(B,{n:"red xs",onClick:X},{default:l(()=>[i(" Delete ")]),_:1})])]),typeof n(e).content=="object"?(r(),_(n(Ve),me({key:0,modelValue:n(e).updatedContent,"onUpdate:modelValue":o[6]||(o[6]=a=>n(e).updatedContent=a),class:[[t.$colorMode.value==="dark"?"jse-theme-dark":"light"],"json-editor-vue h-full of-auto text-sm outline-none"]},t.$attrs,{mode:"text","navigation-bar":!1,indentation:2,"tab-size":2}),null,16,["modelValue","class"])):_e((r(),d("textarea",{key:1,"onUpdate:modelValue":o[7]||(o[7]=a=>n(e).updatedContent=a),placeholder:"Item value...",class:"h-full of-auto p-4 font-mono text-sm outline-none",onKeyup:U(pe(S,["ctrl"]),["enter"])},null,40,Ae)),[[fe,n(e).updatedContent]])])):(r(),_(R,{key:1},{default:l(()=>[c(P,{px6:"",py4:""},{default:l(()=>[i(" Select one key to start."),Be,i("Learn more about "),c(M,{href:"https://nitro.unjs.io/guide/storage",n:"orange",target:"_blank"},{default:l(()=>[i(" Nitro storage ")]),_:1})]),_:1})]),_:1}))]),_:1})):(r(),_(R,{key:1},{default:l(()=>[Object.keys(n(C)).length?(r(),d("p",Me," Select one storage to start: ")):(r(),d("p",Pe,[i(" No custom storage defined in "),Re,i("."),Ee,i(" Learn more about "),c(M,{href:"https://nitro.unjs.io/guide/storage",n:"orange",target:"_blank"},{default:l(()=>[i(" Nitro storage ")]),_:1})])),(r(!0),d(w,null,L(n(C),(a,f)=>(r(),_(P,{key:f,"min-w-80":"","cursor-pointer":"","p-4":"","text-left":"",hover:"border-green",onClick:Oe=>s.value=f},{default:l(()=>[u("span",Te,k(f),1),ze,u("span",Fe,k(a.driver)+" driver",1),Ge,a.base?(r(),_(ae,{key:0,"text-xs":"",filepath:a.base},null,8,["filepath"])):F("",!0)]),_:2},1032,["onClick"]))),128))]),_:1}))}}}),at=J({__name:"storage",setup(O){return(m,g)=>{const K=Je,y=$e;return r(),_(y,null,{default:l(()=>[c(K)]),_:1})}}});export{at as default};
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Copyright (c) 2014 The xterm.js authors. All rights reserved.
3
+ * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
4
+ * https://github.com/chjj/term.js
5
+ * @license MIT
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+ *
25
+ * Originally forked from (with the author's permission):
26
+ * Fabrice Bellard's javascript vt100 for jslinux:
27
+ * http://bellard.org/jslinux/
28
+ * Copyright (c) 2011 Fabrice Bellard
29
+ * The original design remains. The terminal itself
30
+ * has been extended to include xterm CSI codes, among
31
+ * other features.
32
+ */.xterm{cursor:text;position:relative;-moz-user-select:none;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{border:0;height:0;left:-9999em;margin:0;opacity:0;overflow:hidden;padding:0;position:absolute;resize:none;top:0;white-space:nowrap;width:0;z-index:-5}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;cursor:default;inset:0;overflow-y:scroll;position:absolute}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{left:0;position:absolute;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;left:-9999em;line-height:normal;position:absolute;top:0;visibility:hidden}.xterm.enable-mouse-events{cursor:default}.xterm .xterm-cursor-pointer,.xterm.xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility,.xterm .xterm-message{color:transparent;inset:0;pointer-events:none;position:absolute;z-index:10}.xterm .live-region{height:1px;left:-9999px;overflow:hidden;position:absolute;width:1px}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{position:absolute;z-index:6}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{pointer-events:none;position:absolute;right:0;top:0;z-index:8}.xterm-decoration-top{position:relative;z-index:2}.xterm{padding-left:1rem;padding-right:1rem}