@nuxt/devtools 0.6.2 → 0.6.4

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 (143) hide show
  1. package/README.md +2 -4
  2. package/dist/chunks/module-main.mjs +32 -137
  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.fa96c108.js +1 -0
  7. package/dist/client/_nuxt/Badge.6957c09f.js +1 -0
  8. package/dist/client/_nuxt/CodeSnippets.vue.c709c5db.js +1 -0
  9. package/dist/client/_nuxt/DrawerRight.vue.1af2d3b5.js +1 -0
  10. package/dist/client/_nuxt/DurationDisplay.vue.5ef8c229.js +1 -0
  11. package/dist/client/_nuxt/FilepathItem.vue.b9c2f241.js +1 -0
  12. package/dist/client/_nuxt/HelpFab.vue.517eb06f.js +1 -0
  13. package/dist/client/_nuxt/{LaunchPage.vue.b85270dd.js → LaunchPage.vue.f67f57a2.js} +1 -1
  14. package/dist/client/_nuxt/NCheckbox.vue.1647e69d.js +1 -0
  15. package/dist/client/_nuxt/{NCodeBlock.vue.de2cd5a6.js → NCodeBlock.vue.09bc830f.js} +1 -1
  16. package/dist/client/_nuxt/NIconButton.vue.ac0edffe.js +1 -0
  17. package/dist/client/_nuxt/NIconTitle.vue.c43a6ad4.js +1 -0
  18. package/dist/client/_nuxt/NLink.vue.cd078056.js +1 -0
  19. package/dist/client/_nuxt/NMarkdown.vue.7e390ca1.js +1 -0
  20. package/dist/client/_nuxt/{NPanelGrids.fc7166ff.js → NPanelGrids.017932a3.js} +1 -1
  21. package/dist/client/_nuxt/NSectionBlock.82d7dd64.js +1 -0
  22. package/dist/client/_nuxt/NSelect.vue.bf162e70.js +1 -0
  23. package/dist/client/_nuxt/NSwitch.vue.27d90ab4.js +1 -0
  24. package/dist/client/_nuxt/NTip.vue.b3e13fa6.js +1 -0
  25. package/dist/client/_nuxt/Navbar.vue.73274a4d.js +1 -0
  26. package/dist/client/_nuxt/PanelLeftRight.vue.747d389a.js +1 -0
  27. package/dist/client/_nuxt/StateEditor.vue.e676b88f.js +1 -0
  28. package/dist/client/_nuxt/__blank.a90b7fd4.js +1 -0
  29. package/dist/client/_nuxt/analyze-build.3e750a33.js +1 -0
  30. package/dist/client/_nuxt/{assets.cea82447.js → assets.a88c9236.js} +3 -3
  31. package/dist/client/_nuxt/{client.aa60153e.js → client.0c1ac957.js} +1 -1
  32. package/dist/client/_nuxt/{components.67be79c1.js → components.55400a43.js} +27 -27
  33. package/dist/client/_nuxt/custom-_name_.00651de5.js +1 -0
  34. package/dist/client/_nuxt/default.c2fcd4ff.js +1 -0
  35. package/dist/client/_nuxt/entry.51f9b393.js +21 -0
  36. package/dist/client/_nuxt/entry.eeaf510e.css +1 -0
  37. package/dist/client/_nuxt/error-404.1de0812a.js +1 -0
  38. package/dist/client/_nuxt/error-404.91003ceb.css +1 -0
  39. package/dist/client/_nuxt/error-500.33274ff0.js +1 -0
  40. package/dist/client/_nuxt/error-500.7e02f53c.css +1 -0
  41. package/dist/client/_nuxt/full.cc6d1947.js +1 -0
  42. package/dist/client/_nuxt/hooks.2e0543da.js +1 -0
  43. package/dist/client/_nuxt/imports.93e9a9ad.js +1 -0
  44. package/dist/client/_nuxt/index.7921977f.js +1 -0
  45. package/dist/client/_nuxt/{index.31423b81.js → index.e3bac72d.js} +1 -1
  46. package/dist/client/_nuxt/{json-editor-vue.0e484aeb.js → json-editor-vue.63210eab.js} +1 -1
  47. package/dist/client/_nuxt/middleware.22e645cd.js +1 -0
  48. package/dist/client/_nuxt/{modules.b435656d.js → modules.0d588e7f.js} +3 -3
  49. package/dist/client/_nuxt/{none.548277ee.js → none.d965e114.js} +1 -1
  50. package/dist/client/_nuxt/open-graph.015a8911.js +3 -0
  51. package/dist/client/_nuxt/overview.87a2d84e.js +1 -0
  52. package/dist/client/_nuxt/pages.22e71687.js +1 -0
  53. package/dist/client/_nuxt/payload.e7e17f38.js +1 -0
  54. package/dist/client/_nuxt/plugins.c012cd51.js +1 -0
  55. package/dist/client/_nuxt/{runtime-configs.c19cf62e.js → runtime-configs.dcd39c80.js} +1 -1
  56. package/dist/client/_nuxt/server-routes.b7bff39c.js +9 -0
  57. package/dist/client/_nuxt/{settings.223347c0.js → settings.8cd632fb.js} +1 -1
  58. package/dist/client/_nuxt/{state-components.7a725a3e.js → state-components.2e9cbedc.js} +1 -1
  59. package/dist/client/_nuxt/state-modules.c1d4a518.js +1 -0
  60. package/dist/client/_nuxt/storage.2e3e1567.js +1 -0
  61. package/dist/client/_nuxt/{terminals.838c617b.js → terminals.5d5e540d.js} +2 -2
  62. package/dist/client/_nuxt/{unocss-runtime.8cb4743c.js → unocss-runtime.9b1d4e8a.js} +1 -1
  63. package/dist/client/_nuxt/virtual-files.e4f10f72.js +1 -0
  64. package/dist/client/index.html +2 -2
  65. package/dist/client/modules/analyze-build/index.html +2 -2
  66. package/dist/client/modules/assets/index.html +2 -2
  67. package/dist/client/modules/components/index.html +2 -2
  68. package/dist/client/modules/hooks/index.html +2 -2
  69. package/dist/client/modules/imports/index.html +2 -2
  70. package/dist/client/modules/middleware/index.html +2 -2
  71. package/dist/client/modules/modules/index.html +2 -2
  72. package/dist/client/modules/open-graph/index.html +2 -2
  73. package/dist/client/modules/overview/index.html +2 -2
  74. package/dist/client/modules/pages/index.html +2 -2
  75. package/dist/client/modules/payload/index.html +2 -2
  76. package/dist/client/modules/plugins/index.html +2 -2
  77. package/dist/client/modules/runtime-configs/index.html +2 -2
  78. package/dist/client/modules/server-routes/index.html +2 -2
  79. package/dist/client/modules/storage/index.html +2 -2
  80. package/dist/client/modules/terminals/index.html +2 -2
  81. package/dist/client/modules/virtual-files/index.html +2 -2
  82. package/dist/client/settings/index.html +2 -2
  83. package/dist/global-20ccb74c.d.ts +52 -0
  84. package/dist/module.d.ts +2 -0
  85. package/dist/module.json +1 -1
  86. package/dist/runtime/plugins/devtools.client.d.ts +0 -8
  87. package/dist/runtime/plugins/devtools.client.mjs +10 -84
  88. package/dist/runtime/plugins/view/FrameBox.vue +80 -48
  89. package/dist/runtime/plugins/view/Main.vue +82 -28
  90. package/dist/runtime/plugins/view/client.d.ts +8 -0
  91. package/dist/runtime/plugins/view/client.mjs +209 -1
  92. package/dist/runtime/plugins/view/state.d.ts +1 -4
  93. package/dist/runtime/plugins/view/state.mjs +2 -20
  94. package/dist/runtime/plugins/view/utils.d.ts +12 -0
  95. package/dist/runtime/plugins/view/utils.mjs +32 -0
  96. package/dist/types.d.ts +2 -0
  97. package/package.json +18 -18
  98. package/dist/client/_nuxt/AuthRequiredPanel.vue.4f66b5dd.js +0 -1
  99. package/dist/client/_nuxt/Badge.2cc4687e.js +0 -1
  100. package/dist/client/_nuxt/CodeSnippets.vue.1e158b8f.js +0 -1
  101. package/dist/client/_nuxt/DrawerRight.vue.d80827fd.js +0 -1
  102. package/dist/client/_nuxt/DurationDisplay.vue.a48b74dd.js +0 -1
  103. package/dist/client/_nuxt/FilepathItem.vue.df9b46ef.js +0 -1
  104. package/dist/client/_nuxt/HelpFab.vue.49173e4b.js +0 -1
  105. package/dist/client/_nuxt/NCheckbox.vue.df53e265.js +0 -1
  106. package/dist/client/_nuxt/NIconButton.vue.e211c1b6.js +0 -1
  107. package/dist/client/_nuxt/NIconTitle.vue.4e3340eb.js +0 -1
  108. package/dist/client/_nuxt/NLink.vue.53529111.js +0 -1
  109. package/dist/client/_nuxt/NMarkdown.vue.26c114a8.js +0 -1
  110. package/dist/client/_nuxt/NSectionBlock.0eaaa956.js +0 -1
  111. package/dist/client/_nuxt/NSelect.vue.94ec8f3c.js +0 -1
  112. package/dist/client/_nuxt/NSwitch.vue.7f4e43b3.js +0 -1
  113. package/dist/client/_nuxt/NTip.vue.c99855ad.js +0 -1
  114. package/dist/client/_nuxt/Navbar.vue.a50c38bf.js +0 -1
  115. package/dist/client/_nuxt/NpmVersionCheck.vue.029b0cde.js +0 -1
  116. package/dist/client/_nuxt/PanelLeftRight.vue.1e85c7f2.js +0 -1
  117. package/dist/client/_nuxt/StateEditor.vue.4e5aa888.js +0 -1
  118. package/dist/client/_nuxt/__blank.8e143dfc.js +0 -1
  119. package/dist/client/_nuxt/analyze-build.d94a4835.js +0 -1
  120. package/dist/client/_nuxt/custom-_name_.ed0df2f5.js +0 -1
  121. package/dist/client/_nuxt/default.29185309.js +0 -1
  122. package/dist/client/_nuxt/editor.24e006dd.js +0 -1
  123. package/dist/client/_nuxt/entry.ea777320.css +0 -1
  124. package/dist/client/_nuxt/entry.f3de3eb8.js +0 -19
  125. package/dist/client/_nuxt/error-404.09e25f4a.js +0 -1
  126. package/dist/client/_nuxt/error-404.2618a69f.css +0 -1
  127. package/dist/client/_nuxt/error-500.0bde1cc6.js +0 -1
  128. package/dist/client/_nuxt/error-500.12a2683b.css +0 -1
  129. package/dist/client/_nuxt/error-component.753dcd89.js +0 -3
  130. package/dist/client/_nuxt/full.e7e50a56.js +0 -1
  131. package/dist/client/_nuxt/hooks.c5f385b4.js +0 -1
  132. package/dist/client/_nuxt/imports.ab8bf33a.js +0 -1
  133. package/dist/client/_nuxt/index.686c37b5.js +0 -1
  134. package/dist/client/_nuxt/middleware.08e999fd.js +0 -1
  135. package/dist/client/_nuxt/open-graph.a806949f.js +0 -3
  136. package/dist/client/_nuxt/overview.08fa2255.js +0 -1
  137. package/dist/client/_nuxt/pages.9797a06b.js +0 -1
  138. package/dist/client/_nuxt/payload.f6049d4c.js +0 -1
  139. package/dist/client/_nuxt/plugins.7ff70558.js +0 -1
  140. package/dist/client/_nuxt/server-routes.34b80486.js +0 -9
  141. package/dist/client/_nuxt/storage.446005cc.js +0 -1
  142. package/dist/client/_nuxt/virtual-files.0f8a6122.js +0 -1
  143. package/dist/runtime/plugins/view/Frame.vue +0 -105
@@ -1 +0,0 @@
1
- import{aY as a,bn as n,o as r,e as d,b as e,t as s,f as l,w as c,j as p,I as f,ay as x,az as h}from"./entry.f3de3eb8.js";const m=t=>(x("data-v-bf1556d5"),t=t(),h(),t),u={class:"font-sans antialiased bg-white dark:bg-black text-black dark:text-white grid min-h-screen place-content-center overflow-hidden"},g=m(()=>e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),b={class:"max-w-520px text-center z-20"},_=["textContent"],y=["textContent"],w={class:"w-full flex items-center justify-center"},S={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:404},statusMessage:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const o=t;return n({title:`${o.statusCode} - ${o.statusMessage} | ${o.appName}`,script:[],style:[{children:'*,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e0e0e0}*{--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(14, 165, 233, .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}a{color:inherit;text-decoration:inherit}body{margin:0;font-family:inherit;line-height:inherit}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5}h1,p{margin:0}h1{font-size:inherit;font-weight:inherit}'}]}),(k,v)=>{const i=f;return r(),d("div",u,[g,e("div",b,[e("h1",{class:"text-8xl sm:text-10xl font-medium mb-8",textContent:s(t.statusCode)},null,8,_),e("p",{class:"text-xl px-8 sm:px-0 sm:text-4xl font-light mb-16 leading-tight",textContent:s(t.description)},null,8,y),e("div",w,[l(i,{to:"/",class:"gradient-border text-md sm:text-xl py-2 px-4 sm:py-3 sm:px-6 cursor-pointer"},{default:c(()=>[p(s(t.backHome),1)]),_:1})])])])}}},z=a(S,[["__scopeId","data-v-bf1556d5"]]);export{z as default};
@@ -1 +0,0 @@
1
- .spotlight[data-v-bf1556d5]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-bf1556d5]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-bf1556d5]{background-color:#ffffff4d}.gradient-border[data-v-bf1556d5]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82 50%,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-bf1556d5]{background-color:#1414144d}.gradient-border[data-v-bf1556d5]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82 50%,#36e4da 75%,#0047e1)}}.gradient-border[data-v-bf1556d5]:before{background-size:400% auto;border-radius:.5rem;content:"";inset:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-bf1556d5]:hover:before{background-position:-50% 0;opacity:1}.bg-white[data-v-bf1556d5]{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.cursor-pointer[data-v-bf1556d5]{cursor:pointer}.flex[data-v-bf1556d5]{display:flex}.grid[data-v-bf1556d5]{display:grid}.place-content-center[data-v-bf1556d5]{place-content:center}.items-center[data-v-bf1556d5]{align-items:center}.justify-center[data-v-bf1556d5]{justify-content:center}.font-sans[data-v-bf1556d5]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.font-medium[data-v-bf1556d5]{font-weight:500}.font-light[data-v-bf1556d5]{font-weight:300}.text-8xl[data-v-bf1556d5]{font-size:6rem;line-height:1}.text-xl[data-v-bf1556d5]{font-size:1.25rem;line-height:1.75rem}.leading-tight[data-v-bf1556d5]{line-height:1.25}.mb-8[data-v-bf1556d5]{margin-bottom:2rem}.mb-16[data-v-bf1556d5]{margin-bottom:4rem}.max-w-520px[data-v-bf1556d5]{max-width:520px}.min-h-screen[data-v-bf1556d5]{min-height:100vh}.overflow-hidden[data-v-bf1556d5]{overflow:hidden}.px-8[data-v-bf1556d5]{padding-left:2rem;padding-right:2rem}.py-2[data-v-bf1556d5]{padding-bottom:.5rem;padding-top:.5rem}.px-4[data-v-bf1556d5]{padding-left:1rem;padding-right:1rem}.fixed[data-v-bf1556d5]{position:fixed}.left-0[data-v-bf1556d5]{left:0}.right-0[data-v-bf1556d5]{right:0}.text-center[data-v-bf1556d5]{text-align:center}.text-black[data-v-bf1556d5]{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.antialiased[data-v-bf1556d5]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.w-full[data-v-bf1556d5]{width:100%}.z-10[data-v-bf1556d5]{z-index:10}.z-20[data-v-bf1556d5]{z-index:20}@media (min-width:640px){.sm\:text-4xl[data-v-bf1556d5]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-bf1556d5]{font-size:1.25rem;line-height:1.75rem}.sm\:text-10xl[data-v-bf1556d5]{font-size:10rem;line-height:1}.sm\:px-0[data-v-bf1556d5]{padding-left:0;padding-right:0}.sm\:py-3[data-v-bf1556d5]{padding-bottom:.75rem;padding-top:.75rem}.sm\:px-6[data-v-bf1556d5]{padding-left:1.5rem;padding-right:1.5rem}}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-bf1556d5]{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.dark\:text-white[data-v-bf1556d5]{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}}
@@ -1 +0,0 @@
1
- import{aY as i,bn as a,o as r,e as n,b as e,t as s,ay as l,az as d}from"./entry.f3de3eb8.js";const c=t=>(l("data-v-583914b6"),t=t(),d(),t),p={class:"font-sans antialiased bg-white dark:bg-black text-black dark:text-white grid min-h-screen place-content-center overflow-hidden"},h=c(()=>e("div",{class:"fixed -bottom-1/2 left-0 right-0 h-1/2 spotlight"},null,-1)),f={class:"max-w-520px text-center"},g=["textContent"],b=["textContent"],m={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},statusCode:{type:Number,default:500},statusMessage:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const o=t;return a({title:`${o.statusCode} - ${o.statusMessage} | ${o.appName}`,script:[],style:[{children:'*,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e0e0e0}*{--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(14, 165, 233, .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{margin:0;font-family:inherit;line-height:inherit}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5}h1,p{margin:0}h1{font-size:inherit;font-weight:inherit}'}]}),(x,u)=>(r(),n("div",p,[h,e("div",f,[e("h1",{class:"text-8xl sm:text-10xl font-medium mb-8",textContent:s(t.statusCode)},null,8,g),e("p",{class:"text-xl px-8 sm:px-0 sm:text-4xl font-light mb-16 leading-tight",textContent:s(t.description)},null,8,b)])]))}},w=i(m,[["__scopeId","data-v-583914b6"]]);export{w as default};
@@ -1 +0,0 @@
1
- .spotlight[data-v-583914b6]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.bg-white[data-v-583914b6]{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.grid[data-v-583914b6]{display:grid}.place-content-center[data-v-583914b6]{place-content:center}.font-sans[data-v-583914b6]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.font-medium[data-v-583914b6]{font-weight:500}.font-light[data-v-583914b6]{font-weight:300}.h-1\/2[data-v-583914b6]{height:50%}.text-8xl[data-v-583914b6]{font-size:6rem;line-height:1}.text-xl[data-v-583914b6]{font-size:1.25rem;line-height:1.75rem}.leading-tight[data-v-583914b6]{line-height:1.25}.mb-8[data-v-583914b6]{margin-bottom:2rem}.mb-16[data-v-583914b6]{margin-bottom:4rem}.max-w-520px[data-v-583914b6]{max-width:520px}.min-h-screen[data-v-583914b6]{min-height:100vh}.overflow-hidden[data-v-583914b6]{overflow:hidden}.px-8[data-v-583914b6]{padding-left:2rem;padding-right:2rem}.fixed[data-v-583914b6]{position:fixed}.left-0[data-v-583914b6]{left:0}.right-0[data-v-583914b6]{right:0}.-bottom-1\/2[data-v-583914b6]{bottom:-50%}.text-center[data-v-583914b6]{text-align:center}.text-black[data-v-583914b6]{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.antialiased[data-v-583914b6]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (min-width:640px){.sm\:text-4xl[data-v-583914b6]{font-size:2.25rem;line-height:2.5rem}.sm\:text-10xl[data-v-583914b6]{font-size:10rem;line-height:1}.sm\:px-0[data-v-583914b6]{padding-left:0;padding-right:0}}@media (prefers-color-scheme:dark){.dark\:bg-black[data-v-583914b6]{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.dark\:text-white[data-v-583914b6]{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}}
@@ -1,3 +0,0 @@
1
- import{o as m,c as E,n as f,g,u as s,d as n,_ as a}from"./entry.f3de3eb8.js";const k={__name:"nuxt-error-page",props:{error:Object},setup(c){const u=c,{error:t}=u;(t.stack||"").split(`
2
- `).splice(1).map(e=>({text:e.replace("webpack:/","").replace(".vue",".js").trim(),internal:e.includes("node_modules")&&!e.includes(".cache")||e.includes("internal")||e.includes("new Promise")})).map(e=>`<span class="stack${e.internal?" internal":""}">${e.text}</span>`).join(`
3
- `);const r=Number(t.statusCode||500),o=r===404,i=t.statusMessage??(o?"Page Not Found":"Internal Server Error"),p=t.message||t.toString(),_=void 0,d=o?n(()=>a(()=>import("./error-404.09e25f4a.js"),["./error-404.09e25f4a.js","./entry.f3de3eb8.js","./entry.ea777320.css","./error-404.2618a69f.css"],import.meta.url).then(e=>e.default||e)):n(()=>a(()=>import("./error-500.0bde1cc6.js"),["./error-500.0bde1cc6.js","./entry.f3de3eb8.js","./entry.ea777320.css","./error-500.12a2683b.css"],import.meta.url).then(e=>e.default||e));return(e,l)=>(m(),E(s(d),f(g({statusCode:s(r),statusMessage:s(i),description:s(p),stack:s(_)})),null,16))}},h=k;export{h as default};
@@ -1 +0,0 @@
1
- import{aY as o,e as t,Z as s,o as r}from"./entry.f3de3eb8.js";const a={},c={"h-full":"","of-auto":""};function n(e,l){return r(),t("div",c,[s(e.$slots,"default")])}const _=o(a,[["render",n]]);export{_ as default};
@@ -1 +0,0 @@
1
- import{_ as B}from"./DurationDisplay.vue.a48b74dd.js";import{a as S,r as C,l as v,o as i,e as m,b as o,j as c,p,u as n,F as T,m as F,t as _,S as D,f as h,ao as j,aa as I,c as H,w as g,q as N}from"./entry.f3de3eb8.js";import{_ as V}from"./NSectionBlock.0eaaa956.js";import{_ as L}from"./HelpFab.vue.49173e4b.js";import"./NIconTitle.vue.4e3340eb.js";import"./NIconButton.vue.e211c1b6.js";const z={"w-full":""},A={border:"b base"},E={"select-none":"","ws-nowrap":"",p1:"","text-right":"","font-bold":""},O={colspan:"2",p1:"",pl5:"","text-left":"","font-bold":""},P={"ws-nowrap":"",p1:"","text-center":"","font-bold":""},q={"ws-nowrap":"",p1:"","text-center":"","font-bold":""},M={"ws-nowrap":"",p1:"","text-right":"","font-bold":""},R={"w-0":"","ws-nowrap":"","text-center":"","text-sm":"",op25:""},G={"text-sm":""},J={"ws-nowrap":""},K={"text-sm":""},Q={"w-0":"","text-center":"","text-sm":""},U={"w-0":"","text-center":"","text-sm":""},W={"w-0":"","text-right":"","text-sm":""},X=S({__name:"HooksTable",props:{hooks:{}},setup(k){const l=k,a=C("duration"),r=C("asc"),b={duration:(e,t)=>(t.duration??1/0)-(e.duration??1/0),name:(e,t)=>e.name.localeCompare(t.name),listener:(e,t)=>t.listeners-e.listeners,start:(e,t)=>t.start-e.start,executions:(e,t)=>t.executions.length-e.executions.length},$=v(()=>l.hooks.map(e=>e.start).sort((e,t)=>e-t)),x=v(()=>{const e=b[a.value],t=[...l.hooks].sort(e);return r.value==="desc"&&t.reverse(),t});function d(e){const t=e.split(":");return t.length===1?"":`${t[0]}:`}function f(e){const t=e.split(":");return t.length===1?e:t.slice(1).join(":")}function w(e){let t=0;for(let s=0;s<e.length;s++)t=e.charCodeAt(s)+((t<<5)-t);return`hsl(${t%360}, 65%, 50%)`}function u(e){a.value===e?r.value=r.value==="asc"?"desc":"asc":a.value=e}return(e,t)=>{const y=B;return i(),m("table",z,[o("thead",A,[o("tr",null,[o("th",E,[o("button",{onClick:t[0]||(t[0]=s=>u("start"))},[c(" Order "),o("div",{"ml--1":"","text-xs":"",class:p([n(a)==="start"?"op50":"op0",n(r)==="asc"?"carbon-arrow-down":"carbon-arrow-up"])},null,2)])]),o("th",O,[o("button",{onClick:t[1]||(t[1]=s=>u("name"))},[c(" Hook name "),o("div",{"ml--1":"","text-xs":"",class:p([n(a)==="name"?"op50":"op0",n(r)==="asc"?"carbon-arrow-down":"carbon-arrow-up"])},null,2)])]),o("th",P,[o("button",{onClick:t[2]||(t[2]=s=>u("listener"))},[c(" Listeners "),o("div",{"ml--1":"","text-xs":"",class:p([n(a)==="listener"?"op50":"op0",n(r)==="asc"?"carbon-arrow-down":"carbon-arrow-up"])},null,2)])]),o("th",q,[o("button",{onClick:t[3]||(t[3]=s=>u("executions"))},[c(" Executions "),o("div",{"ml--1":"","text-xs":"",class:p([n(a)==="executions"?"op50":"op0",n(r)==="asc"?"carbon-arrow-down":"carbon-arrow-up"])},null,2)])]),o("th",M,[o("button",{onClick:t[4]||(t[4]=s=>u("duration"))},[c(" Duration "),o("div",{"ml--1":"","text-xs":"",class:p([n(a)==="duration"?"op50":"op0",n(r)==="asc"?"carbon-arrow-down":"carbon-arrow-up"])},null,2)])])])]),o("tbody",null,[(i(!0),m(T,null,F(n(x),s=>(i(),m("tr",{key:s.name,border:"b dashed transparent hover:base"},[o("td",R,_(n($).indexOf(s.start)),1),o("td",{"w-0":"","ws-nowrap":"","text-right":"",style:D({color:w(d(s.name))})},[o("code",G,_(d(s.name)),1)],4),o("td",J,[o("code",K,_(f(s.name)),1)]),o("td",Q,_(s.listeners),1),o("td",U,_(s.executions.length+1),1),o("td",W,[h(y,{duration:s.duration},null,8,["duration"])])]))),128))])])}}}),Y={class:"markdown-body"},Z=o("h1",null,"Hooks",-1),tt=o("p",null,[c("Hooks are an advanced API mainly for module authors or advanced use cases. The hooking system to expand almost every aspect of Nuxt. It’s powered by "),o("a",{href:"https://github.com/unjs/hookable",target:"_blank",rel:"noopener"},"unjs/hookable"),c(".")],-1),ot=o("p",null,[o("a",{href:"https://nuxt.com/docs/guide/going-further/hooks",target:"_blank",rel:"noopener"},"Learn more about hooks"),c(".")],-1),et=[Z,tt,ot],nt={__name:"hooks",setup(k,{expose:l}){return l({frontmatter:{}}),(r,b)=>(i(),m("div",Y,et))}},dt=S({__name:"hooks",setup(k){const l=j(),a=I(),r=v(()=>a.value?.getClientHooksMetrics());return(b,$)=>{const x=X,d=V,f=nt,w=L;return i(),m(T,null,[o("div",null,[n(r)?.length?(i(),H(d,{key:0,icon:"carbon-ibm-cloud-direct-link-1-dedicated-hosting",text:"Client Hooks",description:`Total hooks: ${n(r).length}`,padding:"pl4 pr6"},{default:g(()=>[h(x,{hooks:n(r)},null,8,["hooks"])]),_:1},8,["description"])):N("",!0),n(l)?.length?(i(),H(d,{key:1,icon:"carbon-ibm-cloud-direct-link-2-dedicated",text:"Server Hooks",description:`Total hooks: ${n(l)?.length}`,padding:"pl4 pr6"},{default:g(()=>[h(x,{hooks:n(l)},null,8,["hooks"])]),_:1},8,["description"])):N("",!0)]),h(w,null,{default:g(()=>[h(f)]),_:1})],64)}}});export{dt as default};
@@ -1 +0,0 @@
1
- import{_ as z}from"./NSwitch.vue.7f4e43b3.js";import{_ as H}from"./Navbar.vue.a50c38bf.js";import{_ as T}from"./FilepathItem.vue.df9b46ef.js";import{_ as j}from"./NMarkdown.vue.26c114a8.js";import{a as C,l as b,a7 as P,o as e,c as f,w as d,b as i,q as h,f as _,u as t,j as M,e as m,F as k,t as D,m as S,p as q,h as O,ap as N,a9 as L,aq as F,U as R,r as U,X as W,a8 as Y,H as B}from"./entry.f3de3eb8.js";import{a as G,u as J}from"./editor.24e006dd.js";import{C as V,D as E}from"./constants.d7bcda3c.js";import{_ as K}from"./NSectionBlock.0eaaa956.js";import{_ as Q}from"./HelpFab.vue.49173e4b.js";import"./client.aa60153e.js";import"./NIconTitle.vue.4e3340eb.js";import"./NIconButton.vue.e211c1b6.js";const Z={"hover:text-primary":""},tt={key:0,"text-primary":""},et={"max-w-100":""},ot={px4:"",py3:"","text-sm":""},st={flex:"~ gap2",n:"primary xs"},nt={border:"t base","max-h-60":"","of-auto":"",px4:"",py3:""},at={"text-sm":""},rt=i("span",{op50:""},"It has been referenced ",-1),it={"text-primary":""},lt=i("span",{op50:""}," times by:",-1),mt={flex:"~ col gap-2","items-start":"",pt3:"","text-sm":""},pt={key:1,"text-sm":"",op50:""},ut=C({__name:"ComposableItem",props:{item:{},metadata:{},filepath:{}},setup(w){const o=w,c=G(),l=J(),p=b(()=>o.item.as||o.item.name),s=b(()=>o.metadata?.injectionUsage?.[p.value]?.count||0),v=b(()=>(o.metadata?.injectionUsage?.[p.value]?.moduleIds||[]).filter(n=>!n.endsWith("?macro=true"))),x=b(()=>{if(o.item.meta?.docsUrl)return o.item.meta.docsUrl;if(["nuxt","#app","nuxt3"].includes(o.item.from))return V.nuxt[o.item.name];if(o.item.from==="vue")return V.vue[o.item.name]});return(n,a)=>{const u=j,y=O,I=T,g=P("VDropdown");return e(),f(g,{disabled:!o.metadata},{popper:d(()=>[i("div",et,[i("div",ot,[n.item.meta?.description?(e(),f(u,{key:0,tag:"div",pb3:"","text-sm":"",markdown:n.item.meta.description},null,8,["markdown"])):h("",!0),i("div",st,[_(y,{icon:"carbon-copy",onClick:a[0]||(a[0]=r=>t(c)(t(p)))},{default:d(()=>[M(" Copy ")]),_:1}),n.filepath?(e(),f(y,{key:0,icon:"carbon-code",onClick:a[1]||(a[1]=r=>n.filepath&&t(l)(n.filepath))},{default:d(()=>[M(" Source ")]),_:1})):h("",!0),t(x)?(e(),f(y,{key:1,icon:"carbon-catalog",to:t(x),target:"_blank"},{default:d(()=>[M(" Docs ")]),_:1},8,["to"])):h("",!0)])]),i("div",nt,[t(s)?(e(),m(k,{key:0},[i("div",at,[rt,i("strong",it,D(t(s)),1),lt]),i("div",mt,[(e(!0),m(k,null,S(t(v),r=>(e(),f(I,{key:r,filepath:r},null,8,["filepath"]))),128))])],64)):(e(),m("div",pt," Not in use via auto import. "))])])]),default:d(()=>[i("button",Z,[i("code",{rounded:"","bg-gray:5":"",px2:"",py1:"","font-mono":"","text-sm":"",class:q(n.metadata&&!t(s)?"op30 hover:op100":"")},[M(D(t(p))+" ",1),t(s)?(e(),m("sup",tt,"x"+D(t(s)),1)):h("",!0)],2)])]),_:1},8,["disabled"])}}}),ct={flex:"~ wrap gap2",p2:"",pl4:""},_t=C({__name:"ComposableTree",props:{map:{},root:{},metadata:{}},setup(w){return(o,c)=>{const l=T,p=ut;return e(),m("div",null,[(e(!0),m(k,null,S(o.map.entries(),([s,v])=>(e(),m("div",{key:s},[_(l,{filepath:s,op50:"","hover:underline":""},null,8,["filepath"]),i("div",ct,[(e(!0),m(k,null,S(v,x=>(e(),f(p,{key:x.as,item:x,metadata:o.metadata,filepath:s.match(/^[\w@]/)?void 0:s},null,8,["item","metadata","filepath"]))),128))])]))),128))])}}}),dt={key:0,flex:"~ col gap-2 items-start"},ft=C({__name:"HelpImportsDirs",setup(w){const o=N();return(c,l)=>{const p=T;return t(o)?.dirs?(e(),m("div",dt,[(e(!0),m(k,null,S(t(o).dirs,s=>(e(),f(p,{key:s,filepath:s,"text-primary":""},null,8,["filepath"]))),128))])):h("",!0)}}}),ht={flex:"~ gap-2 wrap",mb6:""},bt=C({__name:"HelpImportsModules",setup(w){const o=N(),c=b(()=>[...new Set(o.value?.imports.map(l=>L(l.from)).filter(l=>!!l&&!F(l)))]);return(l,p)=>(e(),m("div",ht,[(e(!0),m(k,null,S(t(c),s=>(e(),m("code",{key:s,rounded:"","bg-primary:5":"",p:"x2 y0.5","text-primary":""},D(s),1))),128))]))}}),vt={class:"markdown-body"},yt=i("h1",null,"Auto imports",-1),gt=i("p",null,"Nuxt auto-imports helper functions, composables and Vue APIs to use across your application without explicitly importing them. Based on the directory structure, every Nuxt application can also use auto-imports for its own components, composables and plugins. Components, composables or plugins can use these functions.",-1),xt=i("hr",null,null,-1),It=i("p",null,"According to your config, exports of files under the following folders will be registed as auto-imports entry:",-1),$t=i("p",null,"Meanwhile, modules could also provide auto-imports for their own components. You have auto-imports from the following modules as well:",-1),kt=i("hr",null,null,-1),wt=i("p",null,[i("a",{href:"https://nuxt.com/docs/guide/concepts/auto-imports",target:"_blank",rel:"noopener"},"Learn more on the documentation")],-1),Mt={__name:"imports",setup(w,{expose:o}){return o({frontmatter:{}}),(l,p)=>{const s=ft,v=bt;return e(),m("div",vt,[yt,gt,xt,It,_(s),$t,_(v),kt,wt])}}},St={key:0,relative:"","h-full":"","of-auto":""},Ct={key:0},Ht=C({__name:"imports",setup(w){const o=R(),c=U(!1),l=U(""),p=N(),s=b(()=>p.value?.metadata),v=b(()=>p.value?.imports.filter(a=>a.as||a.name).sort((a,u)=>(a.as||a.name).localeCompare(u.as||u.name))||[]),x=b(()=>new W(v.value,{keys:["from","as","name"]})),n=b(()=>{const a=new Map,u=new Map,y=new Map;let I=l.value?x.value.search(l.value).map(r=>r.item):v.value;c.value&&s.value&&(I=I.filter(r=>(r.as||r.name)in s.value.injectionUsage));const g={user:0,lib:0,builtin:0};return I.forEach(r=>{const $=Y(r.from)?F(L(r.from))?y:u:a;$.has(r.from)||$.set(r.from,[]),$.get(r.from).push(r),g[$===a?"user":$===u?"lib":"builtin"]++}),{user:a,lib:u,builtin:y,count:g}});return(a,u)=>{const y=z,I=H,g=_t,r=K,$=Mt,X=Q;return e(),m(k,null,[t(o)?(e(),m("div",St,[_(I,{search:t(l),"onUpdate:search":u[1]||(u[1]=A=>B(l)?l.value=A:null),pb2:""},{default:d(()=>[t(s)?(e(),m("div",Ct,[_(y,{modelValue:t(c),"onUpdate:modelValue":u[0]||(u[0]=A=>B(c)?c.value=A:null),n:"primary sm"},{default:d(()=>[M(" Show used only ")]),_:1},8,["modelValue"])])):h("",!0)]),_:1},8,["search"]),t(n).user.size?(e(),f(r,{key:0,open:t(n).count.user<=("DETAILS_MAX_ITEMS"in a?a.DETAILS_MAX_ITEMS:t(E)),icon:"carbon-function",text:"User composables",description:`${t(n).count.user} composables from ${t(n).user.size} modules`},{default:d(()=>[_(g,{map:t(n).user,root:t(o).rootDir,metadata:t(s)},null,8,["map","root","metadata"])]),_:1},8,["open","description"])):h("",!0),t(n).builtin.size?(e(),f(r,{key:1,open:t(n).count.builtin<=("DETAILS_MAX_ITEMS"in a?a.DETAILS_MAX_ITEMS:t(E)),icon:"simple-icons-nuxtdotjs",text:"Built-in composables",description:`${t(n).count.builtin} composables`},{default:d(()=>[_(g,{map:t(n).builtin,root:t(o).rootDir,metadata:t(s)},null,8,["map","root","metadata"])]),_:1},8,["open","description"])):h("",!0),t(n).lib.size?(e(),f(r,{key:2,open:t(n).count.lib<=("DETAILS_MAX_ITEMS"in a?a.DETAILS_MAX_ITEMS:t(E)),icon:"carbon-3d-mpr-toggle",text:"Composables from libraries",description:`${t(n).count.lib} composables from ${t(n).lib.size} packages`},{default:d(()=>[_(g,{map:t(n).lib,root:t(o).rootDir,metadata:t(s)},null,8,["map","root","metadata"])]),_:1},8,["open","description"])):h("",!0)])):h("",!0),_(X,null,{default:d(()=>[_($)]),_:1})],64)}}});export{Ht as default};
@@ -1 +0,0 @@
1
- import{a as r,e as c,b as e,f as o,w as _,i as l,h as u,j as t,o as p,k as d}from"./entry.f3de3eb8.js";import{_ as m}from"./Badge.2cc4687e.js";const x={flex:"~ col gap4",mxa:"","h-screen":"","w-160":"","items-center":"","justify-center":"","text-center":""},h={flex:"~","items-center":"","justify-center":""},f=e("p",{my2:"","text-xl":"","font-bold":""}," 👋 Welcome trying the preview of Nuxt DevTools! ",-1),v=e("p",{"text-lg":""},[e("b",{"font-bold":""},"Nuxt DevTools"),t(" is a set of visual tools that help you to know your app/site better, and enhance your development experience with Nuxt. ")],-1),g=e("p",{"text-lg":""},[t(" Be aware that "),e("span",{rounded:"","bg-orange:10":"",px2:"","py0.5":"","font-bold":"","text-orange":""},"Nuxt DevTools is still in early preview"),t(", features might be incomplete and unstable. "),e("a",{href:"https://github.com/nuxt/devtools",target:"_blank","text-primary":"","hover-underline":""},"Create an issue or discussion"),t(" if you find any bugs or have any suggestions. Thank you and have fun! ")],-1),y=e("span",null,"Get Started",-1),C=r({__name:"index",setup(b){function n(){l.value=!1}return(w,N)=>{const s=d,a=m,i=u;return p(),c("div",x,[e("div",h,[o(s,{"h-16":""}),o(a,{"mr--15":"","mt--5":"","bg-green-400:10":"","text-green-400":"",title:"preview",textContent:"preview"})]),f,v,g,o(i,{to:"/modules/overview","mt-4":"",n:"xl primary",onClick:n},{default:_(()=>[y]),_:1})])}}});export{C as default};
@@ -1 +0,0 @@
1
- import{a as e,e as a,o as n}from"./entry.f3de3eb8.js";const s=e({__name:"middleware",setup(o){return(t,r)=>(n(),a("div",null," WIP "))}});export{s as default};
@@ -1,3 +0,0 @@
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.f3de3eb8.js";import{_ as he}from"./NIconButton.vue.e211c1b6.js";import{_ as _e}from"./Navbar.vue.a50c38bf.js";import{_ as fe}from"./NLink.vue.53529111.js";import{_ as P}from"./NSectionBlock.0eaaa956.js";import{_ as ve}from"./NCodeBlock.vue.de2cd5a6.js";import{a as be,u as V}from"./editor.24e006dd.js";import{_ as we}from"./HelpFab.vue.49173e4b.js";import"./NIconTitle.vue.4e3340eb.js";import"./client.aa60153e.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(`
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};
@@ -1 +0,0 @@
1
- import{a as N,aa as B,U as I,ap as R,aP as V,aQ as j,C as L,l as P,c as m,w as o,o as n,u as e,e as l,b as t,f as i,t as r,q as d,F as p,aR as x,aS as A,j as s,i as O,k as $,I as E,h as F}from"./entry.f3de3eb8.js";import{_ as W}from"./Badge.2cc4687e.js";import{_ as G}from"./NpmVersionCheck.vue.029b0cde.js";import{_ as H}from"./NTip.vue.c99855ad.js";import{_ as K}from"./NPanelGrids.fc7166ff.js";import{a as U}from"./state-components.7a725a3e.js";import"./NCodeBlock.vue.de2cd5a6.js";import"./client.aa60153e.js";import"./NCheckbox.vue.df53e265.js";const q="0.6.2",Q={key:0},z={key:1,flex:"~ col gap2",ma:"","h-full":"","max-w-300":"","w-full":"",p5:"",px5:"","md:px20":""},J=t("div",{"flex-auto":""},null,-1),X={flex:"~ col","mt-5":"","items-center":"","md:mt-20":""},Y={flex:"~","mt--10":"","items-center":"","justify-center":""},Z={mb6:"","mt--1":"","text-center":"","text-sm":"",flex:"~ gap-1 wrap"},tt=t("span",{op40:""}," Nuxt DevTools ",-1),et={op40:""},ot={flex:"~ gap2 wrap"},nt={p4:"","theme-card-green":"",flex:"~ col auto"},st=t("div",{"logos-nuxt-icon":"","text-3xl":""},null,-1),it={key:0,p4:"","theme-card-green":"",flex:"~ col auto"},at=t("div",{"logos-vue":"","text-3xl":""},null,-1),lt=t("div",{"carbon-tree-view-alt":"","text-3xl":""},null,-1),rt=t("div",{"i-carbon-assembly-cluster":"","text-3xl":""},null,-1),dt=t("div",{"carbon-function":"","text-3xl":""},null,-1),ct=t("div",{"carbon-3d-mpr-toggle":"","text-3xl":""},null,-1),ut=t("div",{"carbon-plug":"","text-3xl":""},null,-1),_t={key:5,"pointer-events-none":"","min-w-40":"",p4:"","theme-card-lime":"",flex:"~ auto gap-6"},mt=t("div",{"i-carbon-time-plot":"","flex-none":"","text-3xl":""},null,-1),pt={grid:"~ cols-[auto_auto] gap-x-5 items-center"},ht=t("div",{"text-sm":""}," SSR to full load ",-1),xt={"text-right":""},ft=t("div",{"text-sm":""}," Page load ",-1),gt={"text-right":""},vt=t("div",{"text-sm":""}," Navigation ",-1),kt={"text-right":""},bt=t("div",{"text-sm":""}," HMR ",-1),wt={"text-right":""},yt={flex:"~ col gap2"},St={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":""}),s(" Star on GitHub ")],-1),Tt=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":""}),s(" Ideas & Suggestions ")],-1),Mt=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":""}),s(" Project Roadmap ")],-1),Dt=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":""}),s(" Bug Reports ")],-1),Nt=t("div",{"i-carbon-settings":""},null,-1),Bt=t("div",{"flex-auto":""},null,-1),It={flex:"col gap-2",mxa:"",hidden:"","w-100":"","text-sm":"",op50:"","md:flex":""},Rt={flex:"~ gap-1","items-center":""},Vt=t("span",null,"+",-1),jt=t("span",null,"+",-1),Lt=t("div",{"flex-auto":""},null,-1),Pt={flex:"~ gap-1","items-center":""},At=t("span",null,"+",-1),Ot=t("span",null,"+",-1),$t=t("span",null,"+",-1),Et=t("span",null,"+",-1),Ft=t("div",{"flex-auto":""},null,-1),Wt=t("div",null,"Toggle DevTools",-1),te=N({__name:"overview",setup(Gt){const a=B(),c=I(),b=U(),f=R(),w=V(),g=j(),y=L();function S(){O.value=!0,y.push("/")}const v=P(()=>a.value?.nuxt.vueApp.version);return(u,Ht)=>{const C=$,T=W,k=G,h=E,M=H,_=F,D=K;return n(),m(D,{"h-screen":"","w-full":"",flex:""},{default:o(()=>[e(c)?(n(),l("div",z,[J,t("div",X,[t("div",Y,[i(C,{"h-14":"","md:h-18":""}),t("button",{"mr--16":"","mt--6":"",onClick:S},[i(T,{"bg-green-400:10":"","text-green-400":"",title:"preview",textContent:"preview"})])]),t("div",Z,[tt,t("code",et,"v"+r(e(q)),1),i(k,{"package-name":"@nuxt/devtools",options:{dev:!0},"show-version":!1})])]),t("div",ot,[t("div",nt,[st,i(k,{"package-name":"nuxt",options:{dev:!0}})]),e(v)?(n(),l("div",it,[at,t("code",null,"v"+r(e(v)),1)])):d("",!0),e(c)?(n(),l(p,{key:1},[e(c)&&e(c).pages&&e(a)?(n(),m(h,{key:0,"min-w-40":"",p4:"","theme-card-lime":"",flex:"~ col auto",to:"/modules/pages"},{default:o(()=>[lt,t("div",null,r(e(w).length)+" pages",1)]),_:1})):d("",!0),e(c)?(n(),m(h,{key:1,"min-w-40":"",p4:"","theme-card-lime":"",flex:"~ col auto",to:"/modules/components"},{default:o(()=>[rt,t("div",null,r(e(b).length)+" components",1)]),_:1})):d("",!0),e(c)&&e(f)?(n(),m(h,{key:2,"min-w-40":"",p4:"","theme-card-yellow":"",flex:"~ col auto",to:"/modules/imports"},{default:o(()=>[dt,t("div",null,r(e(f).imports.length)+" imports",1)]),_:1})):d("",!0),e(c)?(n(),m(h,{key:3,"min-w-40":"",p4:"","theme-card-purple":"",flex:"~ col auto",to:"/modules/modules"},{default:o(()=>[ct,t("div",null,r(e(c)._installedModules.length)+" modules",1)]),_:1})):d("",!0),e(c)?(n(),m(h,{key:4,"min-w-40":"",p4:"","theme-card-teal":"",flex:"~ col auto",to:"/modules/plugins"},{default:o(()=>[ut,t("div",null,r(e(c).plugins.length)+" plugins",1)]),_:1})):d("",!0),e(a)?.loadingTimeMetrics?(n(),l("div",_t,[mt,t("div",pt,[e(a).loadingTimeMetrics.ssrStart?(n(),l(p,{key:0},[ht,t("div",xt,r(("formatDuration"in u?u.formatDuration:e(x))(e(a).loadingTimeMetrics.appLoad-e(a).loadingTimeMetrics.ssrStart)),1)],64)):d("",!0),ft,t("div",gt,r(("formatDuration"in u?u.formatDuration:e(x))(e(a).loadingTimeMetrics.appLoad-e(a).loadingTimeMetrics.appInit)),1),vt,t("div",kt,r(("formatDuration"in u?u.formatDuration:e(x))(e(a).loadingTimeMetrics.pageEnd-e(a).loadingTimeMetrics.pageStart)),1),e(a).loadingTimeMetrics.hmrStart?(n(),l(p,{key:1},[bt,t("div",wt,r(("formatDuration"in u?u.formatDuration:e(x))(e(a).loadingTimeMetrics.hmrEnd-e(a).loadingTimeMetrics.hmrStart)),1)],64)):d("",!0)])])):d("",!0)],64)):d("",!0)]),t("div",yt,[("showConnectionWarning"in u?u.showConnectionWarning:e(A))?(n(),m(M,{key:0,n:"yellow5",icon:"carbon-unlink","justify-center":""},{default:o(()=>[s(" Not connected to the client app, showing server-side data only. Use the embedded mode for full features. ")]),_:1})):d("",!0)]),t("div",St,[Ct,Tt,Mt,Dt,i(h,{to:"/settings",flex:"~ gap1","inline-block":"","items-center":"",op50:"","hover:op80":""},{default:o(()=>[Nt,s(" Settings ")]),_:1})]),Bt,t("div",It,[t("div",Rt,[e(g)?(n(),l(p,{key:0},[i(_,{n:"xs",class:"px2"},{default:o(()=>[s(" ⌘ Cmd ")]),_:1}),Vt,i(_,{n:"xs",class:"px2"},{default:o(()=>[s(" K ")]),_:1})],64)):(n(),l(p,{key:1},[i(_,{n:"xs",class:"px2"},{default:o(()=>[s(" Ctrl ")]),_:1}),jt,i(_,{n:"xs",class:"px2"},{default:o(()=>[s(" K ")]),_:1})],64)),Lt,s(" Open Command Palette ")]),t("div",Pt,[e(g)?(n(),l(p,{key:0},[i(_,{n:"xs",class:"px2"},{default:o(()=>[s(" ⇧ Shift ")]),_:1}),At,i(_,{n:"xs",class:"px2"},{default:o(()=>[s(" ⌥ Option ")]),_:1}),Ot,i(_,{n:"xs",class:"px2"},{default:o(()=>[s(" D ")]),_:1})],64)):(n(),l(p,{key:1},[i(_,{n:"xs",class:"px2"},{default:o(()=>[s(" Shift ")]),_:1}),$t,i(_,{n:"xs",class:"px2"},{default:o(()=>[s(" Alt ")]),_:1}),Et,i(_,{n:"xs",class:"px2"},{default:o(()=>[s(" D ")]),_:1})],64)),Ft,Wt])])])):(n(),l("div",Q," Loading... "))]),_:1})}}});export{te as default};
@@ -1 +0,0 @@
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.f3de3eb8.js";import{_ as S}from"./Badge.2cc4687e.js";import{_ as F}from"./FilepathItem.vue.df9b46ef.js";import{u as ne}from"./editor.24e006dd.js";import{_ as ae}from"./NSectionBlock.0eaaa956.js";import{_ as se}from"./LaunchPage.vue.b85270dd.js";import{_ as re}from"./HelpFab.vue.49173e4b.js";import"./NIconTitle.vue.4e3340eb.js";import"./NMarkdown.vue.26c114a8.js";import"./client.aa60153e.js";import"./NPanelGrids.fc7166ff.js";import"./NIconButton.vue.e211c1b6.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 +0,0 @@
1
- import{_ as y}from"./StateEditor.vue.4e5aa888.js";import{a as x,o as e,e as c,F as k,m as B,c as m,w as o,Z as C,n as D,g as w,b as $,aa as F,l as O,u as r,f as a,q as d,j as P,h as V}from"./entry.f3de3eb8.js";import{_ as j}from"./NSectionBlock.0eaaa956.js";import{_ as E}from"./NIconButton.vue.e211c1b6.js";import{_ as R}from"./HelpFab.vue.49173e4b.js";import"./json-editor-vue.0e484aeb.js";import"./NIconTitle.vue.4e3340eb.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,B(t.state,(l,s)=>(e(),m(i,{key:s,state:l,name:s.startsWith(t.prefix)?s.slice(t.prefix.length):s},{actions:o(_=>[C(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,N=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:u})=>[h&&u?(e(),m(v,{key:0,title:`Re-fetch '${u}'`,icon:"carbon-recycle",onClick:W=>i([u])},null,8,["title","onClick"])):d("",!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})):d("",!0)])):d("",!0),a(N,null,{default:o(()=>[a(g)]),_:1})],64)}}});export{tt as default};
@@ -1 +0,0 @@
1
- import{_ as T}from"./FilepathItem.vue.df9b46ef.js";import{_ as D}from"./Badge.2cc4687e.js";import{_ as k}from"./DurationDisplay.vue.a48b74dd.js";import{a as v,U as B,l as x,at as V,o as n,e as m,b as t,t as P,f as l,u as f,c as u,q as d,a7 as F,Z as w,P as H,aY as I,w as h,j as y,aW as M,aa as W,F as C,m as E,p as j}from"./entry.f3de3eb8.js";import{_ as L}from"./NSectionBlock.0eaaa956.js";import{_ as Y}from"./HelpFab.vue.49173e4b.js";import"./editor.24e006dd.js";import"./NIconTitle.vue.4e3340eb.js";import"./NIconButton.vue.e211c1b6.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)])}}}),U={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",U,[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=L,N=nt,S=Y;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:j(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,9 +0,0 @@
1
- import{_ as ce}from"./Navbar.vue.a50c38bf.js";import{_ as Y}from"./Badge.2cc4687e.js";import{a as Z,U as ie,ag as de,l as p,r as k,o as a,e as m,b as c,c as x,w as l,j as h,t as y,u as e,p as b,a$ as G,F as q,m as A,H as ee,f as s,q as $,h as pe,J as me,P as fe,b0 as _e,D as ve,b1 as he,X as ye,b2 as ge,I as xe,a6 as be}from"./entry.f3de3eb8.js";import{_ as Ce}from"./NSelect.vue.94ec8f3c.js";import{_ as ke}from"./CodeSnippets.vue.1e158b8f.js";import{_ as te}from"./NPanelGrids.fc7166ff.js";import{_ as $e}from"./NCodeBlock.vue.de2cd5a6.js";import{u as Re}from"./editor.24e006dd.js";import{C as X}from"./constants.d7bcda3c.js";import{_ as Te}from"./PanelLeftRight.vue.1e85c7f2.js";import"./client.aa60153e.js";const je={"h-full":"","w-full":"",flex:"~ col"},qe={flex:"~ col gap-2","flex-none":"",p4:"","navbar-glass":""},Se={flex:"~ gap2"},Ve={flex:"~ gap2","w-full":"","items-center":"",px4:"",pb2:"","text-center":"","text-sm":"",border:"b base"},we=c("div",{"flex-auto":""},null,-1),Ue={key:0,border:"b base","items-center":"",px4:"",py2:"",grid:"~ cols-[max-content_1fr] gap-2"},Ne={"text-right":"","font-mono":""},Ee={key:1,relative:""},Pe={key:2,px4:"",py2:"",flex:"~ col gap-2",border:"b base"},Be={border:"b base",flex:"~ gap2","items-center":"",px4:"",py2:""},Oe=c("div",null,"Response",-1),De={key:1,"text-xs":"",op50:""},Le=c("div",{"flex-auto":""},null,-1),Me=c("div",{op50:""}," Request finished in ",-1),Fe=Z({__name:"ServerRouteDetails",props:{route:{type:Object,required:!0}},setup(P){const B=P,R=ie(),u=de({contentType:"text/plain",data:"",statusCode:200,error:void 0}),T=p(()=>u.contentType.includes("application/json")?"json":u.contentType.includes("text/html")?"html":u.contentType.includes("text/css")?"css":u.contentType.includes("text/javascript")?"javascript":u.contentType.includes("text/xml")||u.contentType.includes("application/xml")?"xml":"text"),j=p(()=>T.value==="json"?JSON.stringify(u.data,null,2):u.data),w=k(0),C=k(!1),U=k(!1),H=Re(),O=p(()=>B.route.route?.split(/((?:\*\*)?:[\w_]+)/g)),S=p(()=>O.value?.filter(n=>n.startsWith(":")||n.startsWith("**:"))||[]),g=k(B.route.method||"GET"),N=k({}),E=k([{key:"",value:""}]),V=k([{key:"",value:""}]),f=k([{key:"Content-Type",value:"application/json"}]),J=p(()=>V.value.filter(({key:n})=>n).length),z=p(()=>f.value.filter(({key:n})=>n).length),I=p(()=>{const n={};for(let t=0;t<E.value.length;t++){const{key:o,value:i}=E.value[t];n[o]=i}return Object.keys(n)[0]?n:null}),ne=p(()=>{let n=R.value?.devServer.url||"http://localhost";n.charAt(n.length-1)==="/"&&(n=n.slice(0,-1));const t=R.value?.devServer.port||3e3;return n.includes(`:${t}`)?n:`${n}:${t}`}),D=p(()=>{let n=new URLSearchParams(Object.fromEntries(V.value.filter(({key:i})=>i).map(({key:i,value:_})=>[i,_]))).toString();n&&(n=`?${n}`);const t=(O.value?.map(i=>(i.startsWith(":")||i.startsWith("**:"))&&N.value[i]||i).join("")||"")+n;let o=R.value?.app.baseURL||"";return(o==="./"||o===".")&&(o=""),o.endsWith("/")&&(o=o.slice(0,-1)),o+t}),oe=p(()=>ne.value+D.value);async function K(){U.value=!0,C.value=!0,Object.assign(u,{lang:"text",contentType:"",data:"",content:"",error:void 0});const n=Date.now();try{u.data=await $fetch(oe.value,{method:g.value.toUpperCase(),headers:Object.fromEntries(f.value.filter(({key:t,value:o})=>t&&o).map(({key:t,value:o})=>[t,o])),query:Object.fromEntries(V.value.filter(({key:t,value:o})=>t&&o).map(({key:t,value:o})=>[t,o])),body:I.value,onResponse({response:t}){u.contentType=(t.headers.get("content-type")||"").toString().toLowerCase().trim(),u.statusCode=t.status},onResponseError(t){u.error=t.response._data,u.data=t.response._data}})}catch{}C.value=!1,w.value=Date.now()-n}const Q=p(()=>{const n=[],t=[],o=f.value.filter(({key:_,value:v})=>_&&v&&!(_==="Content-Type"&&v==="application/json")).map(({key:_,value:v})=>` '${_}': '${v}'`).join(`,
2
- `);g.value.toUpperCase()!=="GET"&&t.push(`method: '${g.value.toUpperCase()}'`),o&&t.push(`headers: {
3
- ${o}
4
- }`),I.value&&t.push(`body: ${JSON.stringify(I.value,null,2)}`);const i=t.length?`, {
5
- ${t.join(`,
6
- `).split(`
7
- `).map(_=>` ${_}`).join(`
8
- `)}
9
- }`:"";return n.push({name:"useFetch",lang:"javascript",docs:X.nuxt.useFetch,code:`const { data, pending, error, refresh } = useFetch('${D.value}'${i})`}),n.push({name:"$fetch",lang:"javascript",docs:X.nuxt.$fetch,code:`await $fetch('${D.value}'${i})`}),n}),d=k(S.value.length?"params":"query"),L=p(()=>{if(d.value==="query")return V.value;if(d.value==="body")return E.value;if(d.value==="headers")return f.value}),se=["GET","POST","PUT","PATCH","DELETE","HEAD"];return(n,t)=>{const o=pe,i=Ce,_=me,v=fe,ae=ke,re=te,le=_e,W=Y,ue=$e;return a(),m("div",je,[c("div",qe,[c("div",Se,[P.route.method?(a(),x(o,{key:0,class:b(("getRequestMethodClass"in n?n.getRequestMethodClass:e(G))(e(g))),"pointer-events-none":"",tabindex:"-1"},{default:l(()=>[h(y(e(g).toUpperCase()),1)]),_:1},8,["class"])):(a(),x(i,{key:1,modelValue:e(g),"onUpdate:modelValue":t[0]||(t[0]=r=>ee(g)?g.value=r:null),class:b(("getRequestMethodClass"in n?n.getRequestMethodClass:e(G))(e(g)))},{default:l(()=>[(a(),m(q,null,A(se,r=>c("option",{key:r,class:b(("getRequestMethodClass"in n?n.getRequestMethodClass:e(G))(r))},y(r.toUpperCase()),3)),64))]),_:1},8,["modelValue","class"])),s(_,{"model-value":e(D),disabled:"","flex-auto":"","font-mono":"",p:"x5 y2",n:"primary xs"},null,8,["model-value"]),s(o,{n:"primary solid",onClick:K},{default:l(()=>[s(v,{icon:"carbon:send"})]),_:1})])]),c("div",Ve,[e(S).length?(a(),x(o,{key:0,class:b(e(d)==="params"?"text-primary n-primary":"border-transparent! shadow-none!"),onClick:t[1]||(t[1]=r=>d.value="params")},{default:l(()=>[s(v,{icon:"i-carbon-text-selection"}),h(" Params ("+y(e(S).length)+") ",1)]),_:1},8,["class"])):$("",!0),s(o,{class:b(e(d)==="query"?"text-primary n-primary":"border-transparent! shadow-none!"),onClick:t[2]||(t[2]=r=>d.value="query")},{default:l(()=>[s(v,{icon:"i-carbon-help"}),h(" Query "+y(e(J)?`(${e(J)})`:""),1)]),_:1},8,["class"]),e(g)!=="GET"?(a(),x(o,{key:1,class:b(e(d)==="body"?"text-primary n-primary":"border-transparent! shadow-none!"),onClick:t[3]||(t[3]=r=>d.value="body")},{default:l(()=>[s(v,{icon:"i-carbon-document"}),h(" Body ")]),_:1},8,["class"])):$("",!0),s(o,{class:b(e(d)==="headers"?"text-primary n-primary":"border-transparent! shadow-none!"),onClick:t[4]||(t[4]=r=>d.value="headers")},{default:l(()=>[s(v,{icon:"i-carbon-html-reference"}),h(" Headers "+y(e(z)?`(${e(z)})`:""),1)]),_:1},8,["class"]),s(o,{class:b(e(d)==="snippet"?"text-primary n-primary":"border-transparent! shadow-none!"),onClick:t[5]||(t[5]=r=>d.value="snippet")},{default:l(()=>[s(v,{icon:"carbon:code"}),h(" Snippets ")]),_:1},8,["class"]),we,s(o,{icon:"carbon-launch",onClick:t[6]||(t[6]=r=>e(H)(P.route.filepath))},{default:l(()=>[h(" Open in Editor ")]),_:1})]),e(d)==="params"?(a(),m("div",Ue,[(a(!0),m(q,null,A(e(S),r=>(a(),m(q,{key:r},[c("div",Ne,y(r),1),s(_,{modelValue:e(N)[r],"onUpdate:modelValue":M=>e(N)[r]=M,placeholder:r,"flex-1":""},null,8,["modelValue","onUpdate:modelValue","placeholder"])],64))),128))])):$("",!0),e(d)==="snippet"?(a(),m("div",Ee,[e(Q).length?(a(),x(ae,{key:0,border:"b base","code-snippets":e(Q)},null,8,["code-snippets"])):$("",!0)])):e(L)?(a(),m("div",Pe,[(a(!0),m(q,null,A(e(L),(r,M)=>(a(),m("div",{key:M,flex:"~ gap-2","justify-around":""},[s(_,{modelValue:r.key,"onUpdate:modelValue":F=>r.key=F,placeholder:"Key","flex-1":"","font-mono":"",n:"sm"},null,8,["modelValue","onUpdate:modelValue"]),s(_,{modelValue:r.value,"onUpdate:modelValue":F=>r.value=F,placeholder:"Value","flex-1":"","font-mono":"",n:"sm"},null,8,["modelValue","onUpdate:modelValue"]),s(o,{n:"red",onClick:F=>e(L).splice(M,1)},{default:l(()=>[s(v,{icon:"carbon:delete"})]),_:2},1032,["onClick"])]))),128)),c("div",null,[s(o,{icon:"carbon-add",n:"sm primary",my1:"","px-3":"",onClick:t[7]||(t[7]=r=>e(L).push({key:"",value:""}))},{default:l(()=>[h(" Add ")]),_:1})])])):$("",!0),e(U)?e(C)?(a(),x(le,{key:4,"z-10":"","flex-auto":"","backdrop-blur":""},{default:l(()=>[h(" Fetching... ")]),_:1})):(a(),m(q,{key:5},[c("div",Be,[Oe,e(u).error?(a(),x(W,{key:0,"bg-red-400:10":"","text-red-400":""},{default:l(()=>[h(" Error ")]),_:1})):$("",!0),s(W,{class:b({"bg-orange-400:10 text-orange-400":e(u).error,"bg-green-400:10 text-green-400":!e(u).error})},{default:l(()=>[h(y(e(u).statusCode),1)]),_:1},8,["class"]),e(u).contentType?(a(),m("code",De,y(e(u).contentType),1)):$("",!0),Le,Me,s(W,{"bg-green-400:10":"","text-green-400":""},{default:l(()=>[h(y(e(w))+" ms ",1)]),_:1})]),s(ue,{"flex-auto":"","overflow-auto":"","py-2":"",code:e(j),lang:e(T)},null,8,["code","lang"])],64)):(a(),x(re,{key:3},{default:l(()=>[s(o,{n:"primary",onClick:K},{default:l(()=>[s(v,{icon:"carbon:send"}),h(" Send request ")]),_:1})]),_:1}))])}}}),Ge={flex:"~ gap1","text-sm":"",op50:""},Ae={key:0},He={"w-12":"","flex-none":"","text-right":""},Ie={"font-mono":"","text-sm":""},We=c("div",{"x-divider":""},null,-1),Je=c("span",{op75:""},"Select a route to start",-1),at=Z({__name:"server-routes",setup(P){const B=ve(),R=he(),u=p(()=>new ye(R.value||[],{keys:["method","route"],shouldSort:!0})),T=p(()=>R.value?.find(C=>C.path===B.query?.path)),j=k(""),w=p(()=>R.value?j.value?u.value.search(j.value).map(C=>C.item):R.value:[]);return(C,U)=>{const H=ce,O=Y,S=xe,g=Fe,N=be,E=te,V=Te;return a(),x(V,null,{left:l(()=>[s(H,{search:e(j),"onUpdate:search":U[0]||(U[0]=f=>ee(j)?j.value=f:null),pb2:""},{default:l(()=>[c("div",Ge,[e(j)?(a(),m("span",Ae,y(e(w).length)+" matched · ",1)):$("",!0),c("span",null,y(e(R)?.length)+" routes in total",1)])]),_:1},8,["search"]),(a(!0),m(q,null,A(e(w),f=>(a(),m(q,{key:f.id},[s(S,{flex:"~ gap-2","items-center":"","hover-bg-active":"",px2:"",py1:"",class:b([{"bg-active":e(T)?.path===f.path}]),to:{query:{path:f.path}}},{default:l(()=>[c("div",He,[s(O,{class:b(("getRequestMethodClass"in C?C.getRequestMethodClass:e(G))(f.method||"*")),title:"updates available",textContent:y((f.method||"*").toUpperCase())},null,8,["class","textContent"])]),c("span",Ie,y(f.route),1)]),_:2},1032,["class","to"]),We],64))),128))]),right:l(()=>[(a(),x(ge,{max:10},[e(T)?(a(),x(g,{key:e(T).path,route:e(T)},null,8,["route"])):$("",!0)],1024)),e(T)?$("",!0):(a(),x(E,{key:0},{default:l(()=>[s(N,{px6:"",py2:""},{default:l(()=>[Je]),_:1})]),_:1}))]),_:1})}}});export{at as default};
@@ -1 +0,0 @@
1
- import{_ as se}from"./NIconButton.vue.e211c1b6.js";import{_ as re}from"./NSelect.vue.94ec8f3c.js";import{a as G,b4 as le,C as ue,r as j,l as q,D as T,b5 as z,ak as ie,a4 as ce,aj as de,L as me,y as p,z as h,u as n,o as r,c as _,w as l,b as u,f as c,H as D,e as d,F as w,m as U,t as k,p as E,j as i,aO as L,q as F,af as _e,v as pe,aV as fe,b6 as ye,b7 as O,J as ve,I as ge,P as he,h as ke,a6 as be}from"./entry.f3de3eb8.js";import{_ as xe}from"./NLink.vue.53529111.js";import{_ as we}from"./NPanelGrids.fc7166ff.js";import{_ as Ce}from"./PanelLeftRight.vue.1e85c7f2.js";import{_ as Ke}from"./FilepathItem.vue.df9b46ef.js";import{U as Ve}from"./json-editor-vue.0e484aeb.js";import{_ as $e}from"./AuthRequiredPanel.vue.4f66b5dd.js";import"./editor.24e006dd.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"},Ue={class:"flex items-center gap-4"},Le={key:1},Ae=["onKeyup"],Be=u("br",null,null,-1),Me={key:0,op50:""},Pe={key:1},Re=u("code",null,"nitro.storage",-1),Te=u("br",null,null,-1),ze={"font-bold":""},Ee=u("br",null,null,-1),Fe={"text-sm":""},Oe=u("br",null,null,-1),Ge=G({__name:"StorageDetails",async setup(H){let m,g;const C=le(),y=ue(),b=j(""),v=j(""),s=q({get(){return T().query?.storage},set(t){y.replace({query:{storage:t}})}}),e=j(),x=q(()=>T().query?.key),{data:K}=([m,g]=z(()=>O("storageMounts",()=>p.getStorageMounts())),m=await m,g(),m),{data:V,refresh:A}=([m,g]=z(async()=>O("storageKeys",async()=>s.value?await p.getStorageKeys(s.value):[])),m=await m,g(),m),J=C.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)}});ie(J),ce(s,A),de(async()=>{if(!x.value){e.value=null;return}N(x.value)}),me("keydown",t=>{t.key==="s"&&(t.ctrlKey||t.metaKey)&&(S(),t.preventDefault())});function $(t){return t.replace(`${s.value}:`,"")}const W=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=Ce,ae=Ke;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,U(n(K),(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,U(n(W),a=>(r(),d(w,{key:a},[c(te,{block:"",truncate:"",px2:"",py1:"","font-mono":"","text-sm":"",to:{query:{key:a,storage:n(s)}},class:E(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:L(Q,["enter"])},null,8,["modelValue","onKeyup"])]),right:l(()=>[n(e)?.key?(r(),d("div",qe,[u("div",De,[u("div",Ue,[n(e).editingKey?(r(),_(I,{key:0,modelValue:n(e).updatedKey,"onUpdate:modelValue":o[4]||(o[4]=a=>n(e).updatedKey=a),onKeyup:L(Y,["enter"])},null,8,["modelValue","onKeyup"])):(r(),d("code",Le,[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:E({"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),_e({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"])):pe((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:L(fe(S,["ctrl"]),["enter"])},null,40,Ae)),[[ye,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(K)).length?(r(),d("p",Me," Select one storage to start: ")):(r(),d("p",Pe,[i(" No custom storage defined in "),Re,i("."),Te,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,U(n(K),(a,f)=>(r(),_(P,{key:f,"min-w-80":"","cursor-pointer":"","p-4":"","text-left":"",hover:"border-green",onClick:He=>s.value=f},{default:l(()=>[u("span",ze,k(f),1),Ee,u("span",Fe,k(a.driver)+" driver",1),Oe,a.base?(r(),_(ae,{key:0,"text-xs":"",filepath:a.base},null,8,["filepath"])):F("",!0)]),_:2},1032,["onClick"]))),128))]),_:1}))}}}),at=G({__name:"storage",setup(H){return(m,g)=>{const C=Ge,y=$e;return r(),_(y,null,{default:l(()=>[c(C)]),_:1})}}});export{at as default};
@@ -1 +0,0 @@
1
- import{_ as B}from"./Navbar.vue.a50c38bf.js";import{o as c,e as u,b as _,a as R,r as v,ba as j,l as d,D as I,aj as S,X as L,f as s,w as l,F as f,u as i,H as P,m as U,p as E,j as H,t as h,c as W,I as q,a6 as z}from"./entry.f3de3eb8.js";import{_ as G}from"./NCodeBlock.vue.de2cd5a6.js";import{_ as T}from"./NPanelGrids.fc7166ff.js";import{_ as X}from"./PanelLeftRight.vue.1e85c7f2.js";import{_ as A}from"./HelpFab.vue.49173e4b.js";import"./client.aa60153e.js";import"./NIconButton.vue.e211c1b6.js";const J={class:"markdown-body"},K=_("h1",null,"Virtual Files",-1),M=_("p",null,"Virtual files are generated on the fly to support the conventions of the framework, and to provide a better developer experience.",-1),O=[K,M],Q={__name:"virtual-files",setup(x,{expose:o}){return o({frontmatter:{}}),(p,a)=>(c(),u("div",J,O))}},Y=_("div",{"x-divider":""},null,-1),Z={key:0,"h-full":"","of-hidden":"",flex:"~ col"},ee={border:"b base","flex-none":"",px4:"",py2:"","text-sm":"",op75:""},te=_("span",{op75:""},"Select a file to start",-1),_e=R({__name:"virtual-files",setup(x){const o=v(""),n=j(),p=d(()=>I().query?.id),a=v();S(()=>{if(!p.value)return;const e=`/_vfs.json/${encodeURIComponent(p.value)}`;fetch(e).then(t=>t.json()).then(t=>a.value=t.current)});function y(e){if(n.value?.rootDir)return e.startsWith(n.value?.rootDir)?e.slice(n.value.rootDir.length):e}const m=d(()=>n.value?n.value.entries.filter(e=>!e.id.startsWith(`${n.value?.rootDir||""}/.nuxt/`)).sort((e,t)=>e.id.localeCompare(t.id)):[]),b=d(()=>new L(m.value,{keys:["id","path"]})),g=d(()=>o.value?b.value.search(o.value).map(e=>e.item):m.value);return(e,t)=>{const k=B,$=q,F=G,C=z,N=T,D=X,V=Q,w=A;return c(),u(f,null,[s(D,{class:"virtual-files","storage-key":"tab-virtual-files"},{left:l(()=>[s(k,{search:i(o),"onUpdate:search":t[0]||(t[0]=r=>P(o)?o.value=r:null),"no-padding":"",p3:""},null,8,["search"]),(c(!0),u(f,null,U(i(g),r=>(c(),u(f,{key:r.id},[s($,{block:"","select-none":"",truncate:"",px2:"",py1:"","font-mono":"","text-sm":"",to:`/modules/virtual-files?id=${encodeURIComponent(r.id)}`,class:E(r.id===i(a)?.id?"text-primary n-bg-active":"text-secondary hover:n-bg-hover")},{default:l(()=>[H(h(y(r.id)),1)]),_:2},1032,["to","class"]),Y],64))),128))]),right:l(()=>[i(a)?.content?(c(),u("div",Z,[_("div",ee,[_("code",null,h(i(a).id),1)]),s(F,{"h-full":"","of-auto":"","text-sm":"",code:i(a).content,lang:"typescript"},null,8,["code"])])):(c(),W(N,{key:1},{default:l(()=>[s(C,{px6:"",py2:""},{default:l(()=>[te]),_:1})]),_:1}))]),_:1}),s(w,null,{default:l(()=>[s(V)]),_:1})],64)}}});export{_e as default};
@@ -1,105 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed, onMounted, ref, watch, watchEffect } from 'vue'
3
- import type { NuxtDevtoolsHostClient, NuxtDevtoolsGlobal as NuxtDevtoolsViewGlobal } from '../../../types'
4
- import { closePanel, state } from './state'
5
- import { useEventListener } from './utils'
6
-
7
- const props = defineProps<{
8
- client: NuxtDevtoolsHostClient
9
- }>()
10
-
11
- const CLIENT_PATH = '/__nuxt_devtools__/client'
12
-
13
- const initialUrl = CLIENT_PATH + state.value.route
14
- const iframe = ref<HTMLIFrameElement>()
15
-
16
- async function onLoad() {
17
- await waitForClientInjection()
18
- setupClient()
19
- }
20
-
21
- function waitForClientInjection(retry = 10, timeout = 200) {
22
- const test = () => !!iframe.value?.contentWindow?.__NUXT_DEVTOOLS_VIEW__
23
-
24
- if (test())
25
- return
26
-
27
- return new Promise<void>((resolve, reject) => {
28
- const interval = setInterval(() => {
29
- if (test()) {
30
- clearInterval(interval)
31
- resolve()
32
- }
33
- else if (retry-- <= 0) {
34
- clearInterval(interval)
35
- // eslint-disable-next-line prefer-promise-reject-errors
36
- reject('Nuxt Devtools client injection failed')
37
- }
38
- }, timeout)
39
- })
40
- }
41
-
42
- function refreshReactivity() {
43
- props.client?.hooks.callHook('host:update:reactivity')
44
- }
45
-
46
- function setupClient() {
47
- const client = computed(() => props.client)
48
-
49
- watch(() => [
50
- client.value?.nuxt.payload,
51
- client.value.colorMode.value,
52
- client.value.loadingTimeMetrics,
53
- ], () => {
54
- refreshReactivity()
55
- }, { deep: true })
56
-
57
- // trigger update for route change
58
- client.value?.nuxt.vueApp.config.globalProperties?.$router?.afterEach(() => {
59
- refreshReactivity()
60
- })
61
-
62
- // trigger update for app mounted
63
- client.value?.nuxt.hook('app:mounted', () => {
64
- refreshReactivity()
65
- })
66
-
67
- updateClient()
68
- }
69
-
70
- onMounted(() => {
71
- props.client.refreshState()
72
- props.client.hooks.hook('devtools:navigate', (path) => {
73
- state.value.route = path
74
- })
75
- })
76
-
77
- function updateClient() {
78
- const injection = iframe.value?.contentWindow?.__NUXT_DEVTOOLS_VIEW__ as NuxtDevtoolsViewGlobal
79
- props.client.refreshState()
80
- injection?.setClient(props.client)
81
- }
82
-
83
- useEventListener(window, 'keydown', (e: KeyboardEvent) => {
84
- if (e.key === 'Escape' && props.client.inspector?.isEnabled.value) {
85
- e.preventDefault()
86
- props.client.inspector?.disable()
87
- closePanel()
88
- }
89
- })
90
-
91
- watchEffect(() => {
92
- if (!state.value.open)
93
- iframe.value?.blur()
94
- else
95
- iframe.value?.focus()
96
- })
97
- </script>
98
-
99
- <template>
100
- <iframe
101
- ref="iframe"
102
- :src="initialUrl"
103
- @load="onLoad"
104
- />
105
- </template>