@nuxt/devtools 3.4.1 → 4.0.0-alpha.10

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 (229) hide show
  1. package/README.md +89 -7
  2. package/dist/chunks/analyze-build.mjs +33 -2
  3. package/dist/chunks/code-server.mjs +75 -0
  4. package/dist/chunks/module-main.mjs +1102 -737
  5. package/dist/chunks/timeline.mjs +2 -3
  6. package/dist/chunks/vite-inspect.mjs +93 -53
  7. package/dist/client/200.html +1 -1
  8. package/dist/client/404.html +1 -1
  9. package/dist/client/_nuxt/__blank-dil3nwfh.js +1 -0
  10. package/dist/client/_nuxt/analyze-build-2e03hfez.js +1 -0
  11. package/dist/client/_nuxt/assets-fyld29gf.js +6 -0
  12. package/dist/client/_nuxt/auth-required-panel-mm5lidl3.js +1 -0
  13. package/dist/client/_nuxt/builds/latest.json +1 -1
  14. package/dist/client/_nuxt/builds/meta/dbb6f1eb-fdec-4078-b409-19d1ed6035a2.json +1 -0
  15. package/dist/client/_nuxt/{client-jl5q3rle.js → client-botfq0nw.js} +1 -1
  16. package/dist/client/_nuxt/code-diff-oxve94ak.js +8 -0
  17. package/dist/client/_nuxt/code-snippets-mcrkbsd4.js +1 -0
  18. package/dist/client/_nuxt/components-k5rsm3c3.js +1 -0
  19. package/dist/client/_nuxt/composable-item-o8crh7o9.js +1 -0
  20. package/dist/client/_nuxt/composables-ml69kqh9.js +1 -0
  21. package/dist/client/_nuxt/custom-_name_-j6w4b10b.js +1 -0
  22. package/dist/client/_nuxt/data-schema-button-j2dsypzz.js +1 -0
  23. package/dist/client/_nuxt/data-schema-drawer-9s1351p5.js +2 -0
  24. package/dist/client/_nuxt/debug-muupfuzb.js +1 -0
  25. package/dist/client/_nuxt/default-k6jiq1wt.js +1 -0
  26. package/dist/client/_nuxt/dialog-c7wnj3nl.js +1 -0
  27. package/dist/client/_nuxt/{dist-ekw95yvx.js → dist-2c3gpsw0.js} +1 -1
  28. package/dist/client/_nuxt/{dist-f9baaez8.js → dist-d6zuldkp.js} +1 -1
  29. package/dist/client/_nuxt/duration-display-kup58tqe.js +1 -0
  30. package/dist/client/_nuxt/editor-bzxz1rcq.js +1 -0
  31. package/dist/client/_nuxt/entry.css-meav5jmw.css +1 -0
  32. package/dist/client/_nuxt/error-404-25vom0cq.js +1 -0
  33. package/dist/client/_nuxt/error-404.css-mpcol2vk.css +1 -0
  34. package/dist/client/_nuxt/{error-500-bu53sh58.js → error-500-htafeoa3.js} +1 -1
  35. package/dist/client/_nuxt/error-500.css-273x0c3h.css +1 -0
  36. package/dist/client/_nuxt/{error-dtx3jz5a.js → error-lj28vdr1.js} +2 -2
  37. package/dist/client/_nuxt/filepath-item-jdy5gc4m.js +1 -0
  38. package/dist/client/_nuxt/full-gpj1mlf5.js +1 -0
  39. package/dist/client/_nuxt/help-fab-ll6mbhgs.js +1 -0
  40. package/dist/client/_nuxt/hooks-hgffr865.js +1 -0
  41. package/dist/client/_nuxt/imports-i2fnwttt.js +1 -0
  42. package/dist/client/_nuxt/launch-page-ksxhzp2z.js +1 -0
  43. package/dist/client/_nuxt/modules-dae72omf.js +1 -0
  44. package/dist/client/_nuxt/nbadge-oyy0wjng.js +1 -0
  45. package/dist/client/_nuxt/nbutton-mtj8qzr9.js +1 -0
  46. package/dist/client/_nuxt/ncard-mtvdl2wf.js +1 -0
  47. package/dist/client/_nuxt/ncheckbox-mksfz5p0.js +1 -0
  48. package/dist/client/_nuxt/ncode-block-pfi5niis.js +2 -0
  49. package/dist/client/_nuxt/{ndialog-d7onas5p.js → ndialog-dj1ywkc1.js} +2 -2
  50. package/dist/client/_nuxt/ndrawer-h46qfenr.js +1 -0
  51. package/dist/client/_nuxt/ndropdown-ow0z3stn.js +1 -0
  52. package/dist/client/_nuxt/nicon-obdu3k9r.js +3 -0
  53. package/dist/client/_nuxt/nicon-title-e2gzkzl3.js +1 -0
  54. package/dist/client/_nuxt/nju74r39.js +2 -0
  55. package/dist/client/_nuxt/nlink-j55iyj5x.js +1 -0
  56. package/dist/client/_nuxt/nloading-k4sy0f8c.js +1 -0
  57. package/dist/client/_nuxt/nmarkdown-mnxob7ua.js +1 -0
  58. package/dist/client/_nuxt/nnavbar-dwxbkqvw.js +1 -0
  59. package/dist/client/_nuxt/none-md25735q.js +1 -0
  60. package/dist/client/_nuxt/npanel-grids-ga8arlvs.js +1 -0
  61. package/dist/client/_nuxt/npm-febdntx4.js +1 -0
  62. package/dist/client/_nuxt/nsection-block-cb29dqkc.js +1 -0
  63. package/dist/client/_nuxt/nselect-glgbbae4.js +1 -0
  64. package/dist/client/_nuxt/nselect-tabs-jzyd56a1.js +1 -0
  65. package/dist/client/_nuxt/nsplit-pane-b5ki4jwa.js +1 -0
  66. package/dist/client/_nuxt/{nsplit-pane.css-o64elxn9.css → nsplit-pane.css-k1gopk47.css} +1 -1
  67. package/dist/client/_nuxt/ntext-input-lzyyx3ym.js +1 -0
  68. package/dist/client/_nuxt/ntip-oohvtkqd.js +1 -0
  69. package/dist/client/_nuxt/nuxt-f4tmbbs7.js +1 -0
  70. package/dist/client/_nuxt/nuxt-link-dgri2bli.js +1 -0
  71. package/dist/client/_nuxt/{nuxt-logo-fsli1c7y.js → nuxt-logo-gzcu6lh0.js} +1 -1
  72. package/dist/client/_nuxt/open-graph-mc8dh9qn.js +3 -0
  73. package/dist/client/_nuxt/overview-lpfgamus.js +1 -0
  74. package/dist/client/_nuxt/pages-bv99uu3p.js +1 -0
  75. package/dist/client/_nuxt/payload-k2hrsm04.js +1 -0
  76. package/dist/client/_nuxt/plugins-ljid8ktq.js +1 -0
  77. package/dist/client/_nuxt/ready-h6bi8le4.js +1 -0
  78. package/dist/client/_nuxt/rolldown-runtime-ln9q81id.js +1 -0
  79. package/dist/client/_nuxt/runtime-configs-lvgzbcdu.js +1 -0
  80. package/dist/client/_nuxt/server-route-inputs-iwv9ewrw.js +1 -0
  81. package/dist/client/_nuxt/server-routes-mkqbltfh.js +7 -0
  82. package/dist/client/_nuxt/server-tasks-kbf4txeq.js +1 -0
  83. package/dist/client/_nuxt/settings-ngc5p8qn.js +1 -0
  84. package/dist/client/_nuxt/stacktrace-list-chmjyp53.js +1 -0
  85. package/dist/client/_nuxt/state-commands-f4h87cfl.js +1 -0
  86. package/dist/client/_nuxt/state-components-jymg7dj7.js +1 -0
  87. package/dist/client/_nuxt/state-editor-bg13n53w.js +1 -0
  88. package/dist/client/_nuxt/state-modules-bewlxq5o.js +1 -0
  89. package/dist/client/_nuxt/state-routes-f5cna95h.js +1 -0
  90. package/dist/client/_nuxt/state-schema-espdew31.js +1 -0
  91. package/dist/client/_nuxt/state-tabs-m7neqayd.js +1 -0
  92. package/dist/client/_nuxt/storage-cep8dxy9.js +1 -0
  93. package/dist/client/_nuxt/tab-icon-nktg799o.js +1 -0
  94. package/dist/client/_nuxt/telemetry-9f19c0i9.js +1 -0
  95. package/dist/client/_nuxt/timeline-o9hhhb94.js +31 -0
  96. package/dist/client/_nuxt/unhead.dgx-hwv-uc-gaht5h60.js +1 -0
  97. package/dist/client/_nuxt/{unocss-runtime-ys3yvxrm.js → unocss-runtime-bjggyd5e.js} +1 -1
  98. package/dist/client/_nuxt/utils-bisj7255.js +1 -0
  99. package/dist/client/_nuxt/vendor/json-editor-vue-lmhxk84q.js +3862 -0
  100. package/dist/client/_nuxt/vendor/markdown-exit-n4f1gsja.js +12 -0
  101. package/dist/client/_nuxt/vendor/quicktype-core-b6sxxdgw.js +929 -0
  102. package/dist/client/_nuxt/vendor/shiki-abzmnals.js +152 -0
  103. package/dist/client/_nuxt/vendor/unocss-hqrnsbiy.js +3 -0
  104. package/dist/client/_nuxt/vendor/{unocss.css-flyrgbwp.css → unocss.css-bhad58wt.css} +1 -1
  105. package/dist/client/_nuxt/vendor/vis-i54ppuvk.js +26 -0
  106. package/dist/client/_nuxt/virtual-files-kcs310xn.js +1 -0
  107. package/dist/client/index.html +1 -1
  108. package/dist/dirs.d.mts +1 -2
  109. package/dist/dirs.mjs +1 -21
  110. package/dist/module.d.mts +1 -1
  111. package/dist/module.json +1 -1
  112. package/dist/module.mjs +1 -5
  113. package/dist/runtime/plugins/devtools.client.js +1 -1
  114. package/dist/runtime/plugins/view/client.js +23 -74
  115. package/dist/runtime/plugins/view/state.d.ts +0 -1
  116. package/dist/runtime/plugins/view/state.js +0 -2
  117. package/dist/shared/{devtools.DFpGUHRZ.mjs → devtools.CCWq4fFE.mjs} +50 -59
  118. package/dist/shared/{devtools.C1a10l_c.d.mts → devtools.LsRDzDTD.d.mts} +0 -12
  119. package/dist/types.d.mts +2 -6
  120. package/dist/webcomponents/index.d.mts +1 -3
  121. package/dist/webcomponents/index.mjs +11 -1187
  122. package/package.json +37 -43
  123. package/.discoveryrc.cjs +0 -13
  124. package/cli.mjs +0 -2
  125. package/dist/chunks/vscode.mjs +0 -197
  126. package/dist/chunks/vue-devtools.mjs +0 -19
  127. package/dist/client/_nuxt/__blank-m8zc7gto.js +0 -1
  128. package/dist/client/_nuxt/analyze-build-jwi76dz3.js +0 -1
  129. package/dist/client/_nuxt/assets-cpph6v46.js +0 -6
  130. package/dist/client/_nuxt/auth-required-panel-pb5dyado.js +0 -1
  131. package/dist/client/_nuxt/builds/meta/58990d98-ceb3-4b7a-a3b9-ed05fcb0ebda.json +0 -1
  132. package/dist/client/_nuxt/c4noe6b7.js +0 -2
  133. package/dist/client/_nuxt/client-kw9rd8gy.js +0 -2
  134. package/dist/client/_nuxt/code-diff-icy7s1zb.js +0 -8
  135. package/dist/client/_nuxt/code-snippets-iyqjogm4.js +0 -1
  136. package/dist/client/_nuxt/components-wm13ypb1.js +0 -1
  137. package/dist/client/_nuxt/composable-item-1gg3w2nv.js +0 -1
  138. package/dist/client/_nuxt/composables-m3a2xv3m.js +0 -1
  139. package/dist/client/_nuxt/custom-_name_-yd1nhb2d.js +0 -1
  140. package/dist/client/_nuxt/data-schema-button-gmxlrj4u.js +0 -1
  141. package/dist/client/_nuxt/data-schema-drawer-htftrpm4.js +0 -2
  142. package/dist/client/_nuxt/debug-esphaczf.js +0 -1
  143. package/dist/client/_nuxt/default-l4jud1s1.js +0 -1
  144. package/dist/client/_nuxt/dist-mpe1u0aj.js +0 -1
  145. package/dist/client/_nuxt/duration-display-i95mp3xf.js +0 -1
  146. package/dist/client/_nuxt/editor-gio3gzf5.js +0 -1
  147. package/dist/client/_nuxt/entry.css-du3mqati.css +0 -1
  148. package/dist/client/_nuxt/error-404-dvx9vrvw.js +0 -1
  149. package/dist/client/_nuxt/error-404.css-ndkb77p4.css +0 -1
  150. package/dist/client/_nuxt/error-500.css-iay0iq8l.css +0 -1
  151. package/dist/client/_nuxt/filepath-item-n14cgzrq.js +0 -1
  152. package/dist/client/_nuxt/full-e41d06vk.js +0 -1
  153. package/dist/client/_nuxt/help-fab-bxbzpji6.js +0 -1
  154. package/dist/client/_nuxt/hooks-b2zozecc.js +0 -1
  155. package/dist/client/_nuxt/imports-chkhxfjf.js +0 -1
  156. package/dist/client/_nuxt/launch-page-4gmg3dre.js +0 -1
  157. package/dist/client/_nuxt/modules-d4yrgxt0.js +0 -1
  158. package/dist/client/_nuxt/nbadge-gxsw3trl.js +0 -1
  159. package/dist/client/_nuxt/nbutton-n4jak7c4.js +0 -1
  160. package/dist/client/_nuxt/ncard-nwvxjytu.js +0 -1
  161. package/dist/client/_nuxt/ncheckbox-g0h4v30t.js +0 -1
  162. package/dist/client/_nuxt/ncode-block-pepewqmk.js +0 -2
  163. package/dist/client/_nuxt/ndark-toggle-hg693j9b.js +0 -1
  164. package/dist/client/_nuxt/ndrawer-rf7qwkr7.js +0 -1
  165. package/dist/client/_nuxt/ndropdown-hei8kmpv.js +0 -1
  166. package/dist/client/_nuxt/nicon-oi9zv8qe.js +0 -1
  167. package/dist/client/_nuxt/nicon-title-ckh1far6.js +0 -1
  168. package/dist/client/_nuxt/nlink-euky3zj2.js +0 -1
  169. package/dist/client/_nuxt/nloading-cxkye5sp.js +0 -1
  170. package/dist/client/_nuxt/nmarkdown-k6ubrkxy.js +0 -1
  171. package/dist/client/_nuxt/nnavbar-dxs3xl8m.js +0 -1
  172. package/dist/client/_nuxt/none-bqbddrhm.js +0 -1
  173. package/dist/client/_nuxt/npanel-grids-l34v8x7x.js +0 -1
  174. package/dist/client/_nuxt/npm-bs3acmpx.js +0 -1
  175. package/dist/client/_nuxt/nsection-block-deo3d5ca.js +0 -1
  176. package/dist/client/_nuxt/nselect-bihfcl5d.js +0 -1
  177. package/dist/client/_nuxt/nselect-tabs-e2nrw9h1.js +0 -1
  178. package/dist/client/_nuxt/nsplit-pane-c8b9c6ro.js +0 -1
  179. package/dist/client/_nuxt/nswitch-omy4wnlb.js +0 -1
  180. package/dist/client/_nuxt/ntext-input-m2w61kr5.js +0 -1
  181. package/dist/client/_nuxt/ntip-lla1rr8h.js +0 -1
  182. package/dist/client/_nuxt/nuxt-hhee6z5x.js +0 -1
  183. package/dist/client/_nuxt/nuxt-link-k77anppn.js +0 -1
  184. package/dist/client/_nuxt/open-graph-ksgni7te.js +0 -3
  185. package/dist/client/_nuxt/overview-ly9kgbva.js +0 -1
  186. package/dist/client/_nuxt/pages-inv9i4ar.js +0 -1
  187. package/dist/client/_nuxt/pages-mgwvumc9.js +0 -1
  188. package/dist/client/_nuxt/payload-c3lf06v2.js +0 -1
  189. package/dist/client/_nuxt/pinia-pdgcbxdt.js +0 -1
  190. package/dist/client/_nuxt/plugins-kv2qt5pc.js +0 -1
  191. package/dist/client/_nuxt/ready-j6igpruf.js +0 -1
  192. package/dist/client/_nuxt/render-tree-ok5eju7s.js +0 -1
  193. package/dist/client/_nuxt/rolldown-runtime-f96lzs6p.js +0 -1
  194. package/dist/client/_nuxt/runtime-configs-nrru3mzu.js +0 -1
  195. package/dist/client/_nuxt/server-discovery-b5y0tq1d.js +0 -1
  196. package/dist/client/_nuxt/server-route-inputs-8c4zt2y4.js +0 -1
  197. package/dist/client/_nuxt/server-routes-jrdh3byh.js +0 -7
  198. package/dist/client/_nuxt/server-tasks-i1wtl0e8.js +0 -1
  199. package/dist/client/_nuxt/settings-id2aeyhn.js +0 -1
  200. package/dist/client/_nuxt/stacktrace-list-mx9jtxx1.js +0 -1
  201. package/dist/client/_nuxt/state-components-dngh0clc.js +0 -1
  202. package/dist/client/_nuxt/state-editor-kg5k3jvy.js +0 -1
  203. package/dist/client/_nuxt/state-modules-gz46qq7c.js +0 -1
  204. package/dist/client/_nuxt/state-routes-ckw7s1pq.js +0 -1
  205. package/dist/client/_nuxt/state-schema-dl4a0tzs.js +0 -1
  206. package/dist/client/_nuxt/state-subprocess-omk907f9.js +0 -1
  207. package/dist/client/_nuxt/state-tabs-fe58vmvu.js +0 -1
  208. package/dist/client/_nuxt/storage-gflmc532.js +0 -1
  209. package/dist/client/_nuxt/storage-options-h4ted7ut.js +0 -1
  210. package/dist/client/_nuxt/storage-zf5nkzhm.js +0 -1
  211. package/dist/client/_nuxt/tab-icon-errppxip.js +0 -1
  212. package/dist/client/_nuxt/telemetry-pbqlai15.js +0 -1
  213. package/dist/client/_nuxt/terminals-lx3nbgm4.js +0 -1
  214. package/dist/client/_nuxt/terminals.css-mejv43xm.css +0 -1
  215. package/dist/client/_nuxt/timeline-ozwer8h0.js +0 -31
  216. package/dist/client/_nuxt/utils-gsui1utc.js +0 -1
  217. package/dist/client/_nuxt/vendor/json-editor-vue-ajxjng9j.js +0 -3870
  218. package/dist/client/_nuxt/vendor/markdown-it-hplpr18t.js +0 -14
  219. package/dist/client/_nuxt/vendor/quicktype-core-m8x9xlg1.js +0 -929
  220. package/dist/client/_nuxt/vendor/shiki-k3jqtxcz.js +0 -293
  221. package/dist/client/_nuxt/vendor/unocss-j0l832tn.js +0 -3
  222. package/dist/client/_nuxt/vendor/vis-kujfrgx6.js +0 -26
  223. package/dist/client/_nuxt/vendor/xterm-ilcgri3k.js +0 -18
  224. package/dist/client/_nuxt/vendor/xterm.css-j9zpjwmg.css +0 -1
  225. package/dist/client/_nuxt/virtual-files-dkyeb46c.js +0 -1
  226. package/dist/client/_nuxt/vue-devtools-imrq5lm7.js +0 -4
  227. package/dist/client/discovery/index.html +0 -611
  228. package/dist/runtime/vue-devtools-client.d.ts +0 -2
  229. package/dist/runtime/vue-devtools-client.js +0 -8
@@ -1,151 +1,18 @@
1
- import { isRef, toRefs as toRefs$1, customRef, toValue, onMounted, nextTick, watch, getCurrentInstance, shallowRef, shallowReadonly, getCurrentScope, onScopeDispose, computed, ref, unref, defineComponent, useModel, watchEffect, mergeModels, withDirectives, openBlock, createElementBlock, createCommentVNode, createElementVNode, withModifiers, vShow, reactive, useTemplateRef, normalizeClass, normalizeStyle, toDisplayString, Fragment, createVNode, defineCustomElement, createTextVNode } from 'vue';
1
+ import { isRef, toRefs as toRefs$1, customRef, toValue, watch, ref, computed, unref, defineComponent, useTemplateRef, nextTick, openBlock, createElementBlock, Fragment, normalizeStyle, normalizeClass, createCommentVNode, createElementVNode, createTextVNode, toDisplayString, withDirectives, vShow, defineCustomElement } from 'vue';
2
2
 
3
- const css = `*{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb)}:before{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb)}:after{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb)}:before{--un-content:""}:after{--un-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button{-webkit-appearance:button;background-color:transparent;background-image:none}[type=button]{-webkit-appearance:button;background-color:transparent;background-image:none}[type=reset]{-webkit-appearance:button;background-color:transparent;background-image:none}[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::placeholder{opacity:1;color:#9ca3af}textarea::placeholder{opacity:1;color:#9ca3af}button{cursor:pointer}[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--un-text-opacity:100%}@property --nuxt-devtools-inspect-border-angle{syntax:"<angle>";inherits:false;initial-value:90deg}.nuxt-devtools-inspect-running-border{filter:blur(10px);--nuxt-devtools-inspect-border-angle:0deg;background:conic-gradient(from var(--nuxt-devtools-inspect-border-angle), #00dc82, #00e6e8, #42e200, #0086e2, #00dc82) border-box;-webkit-mask:linear-gradient(#fff 0,#fff 0) padding-box,linear-gradient(#fff 0,#fff 0);-webkit-mask-composite:destination-out;transition:all .5s;animation:1s linear infinite color-rotate-background;mask-image:linear-gradient(#fff 0,#fff 0),linear-gradient(#fff 0,#fff 0);mask-position:0 0,0 0;mask-size:auto,auto;mask-repeat:repeat,repeat;mask-clip:padding-box,border-box;mask-origin:padding-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.nuxt-devtools-inspect-neon{background-image:linear-gradient(90deg,#00dc82,#00e6e8,#42e200,#00dc82,#00e6e8,#42e200,#00dc82,#00e6e8,#42e200);background-position:0;background-size:400% 400%}.nuxt-devtools-inspect-neon.running{animation:3s linear infinite neon-background}@keyframes neon-background{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.nuxt-devtools-frame{z-index:2147483645;-webkit-font-smoothing:antialiased;width:100%;height:100%;position:fixed}.nuxt-devtools-frame iframe{background:var(--nuxt-devtools-widget-bg);border:1px solid rgba(125,125,125,.2);-webkit-border-radius:10px;border-radius:10px;outline:none;width:100%;height:100%}.nuxt-devtools-resize-handle-horizontal{cursor:ns-resize;-webkit-border-radius:5px;border-radius:5px;height:10px;margin:-5px 0;position:absolute;left:6px;right:6px}.nuxt-devtools-resize-handle-vertical{cursor:ew-resize;-webkit-border-radius:5px;border-radius:5px;width:10px;margin:0 -5px;position:absolute;top:6px;bottom:0}.nuxt-devtools-resize-handle-corner{-webkit-border-radius:6px;border-radius:6px;width:14px;height:14px;margin:-6px;position:absolute}.nuxt-devtools-resize-handle:hover{background:rgba(125,125,125,.1)}#nuxt-devtools-anchor{z-index:2147483645;transform-origin:50%;box-sizing:border-box;width:0;font-family:Arial,Helvetica,sans-serif;position:fixed;transform:translate(-50%,-50%)rotate(0);font-size:15px!important}#nuxt-devtools-anchor *{box-sizing:border-box}#nuxt-devtools-anchor button{cursor:pointer;color:inherit;background:0 0;border:none;outline:none;margin:0;padding:0}#nuxt-devtools-anchor .nuxt-devtools-label{align-items:center;justify-items:center;gap:3px;padding:0 7px 0 8px;font-size:.8em;line-height:1em;display:flex}#nuxt-devtools-anchor .nuxt-devtools-label .nuxt-devtools-label-main{opacity:.8;white-space:nowrap}#nuxt-devtools-anchor .nuxt-devtools-label .nuxt-devtools-label-secondary{opacity:.5;white-space:nowrap;font-size:.8em;line-height:.6em}#nuxt-devtools-anchor .nuxt-devtools-nuxt-button{flex:none}#nuxt-devtools-anchor.nuxt-devtools-vertical .nuxt-devtools-nuxt-button{transform:rotate(-90deg)}#nuxt-devtools-anchor.nuxt-devtools-vertical .nuxt-devtools-label{flex-direction:column;gap:2px;padding:0 10px;transform:rotate(-90deg)}#nuxt-devtools-anchor .nuxt-devtools-panel{border:1px solid var(--nuxt-devtools-widget-border);background-color:var(--nuxt-devtools-widget-bg);backdrop-filter:blur(10px);height:30px;color:var(--nuxt-devtools-widget-fg);box-shadow:2px 2px 8px var(--nuxt-devtools-widget-shadow);user-select:none;touch-action:none;-webkit-border-radius:100px;border-radius:100px;justify-content:flex-start;align-items:center;gap:2px;max-width:150px;padding:2px 2px 2px 2.5px;transition:all .6s,max-width .6s,padding .5s,transform .4s,opacity .2s;display:flex;position:absolute;top:0;left:0;overflow:hidden;transform:translate(-50%,-50%)}#nuxt-devtools-anchor.nuxt-devtools-hide .nuxt-devtools-panel{max-width:32px;padding:2px 0}#nuxt-devtools-anchor.nuxt-devtools-vertical .nuxt-devtools-panel{box-shadow:2px -2px 8px var(--nuxt-devtools-widget-shadow);transform:translate(-50%,-50%)rotate(90deg)}#nuxt-devtools-anchor .nuxt-devtools-panel-content{transition:opacity .4s}#nuxt-devtools-anchor.nuxt-devtools-hide .nuxt-devtools-panel-content{opacity:0}#nuxt-devtools-anchor .nuxt-devtools-icon-button{opacity:.8;border-width:0;-webkit-border-radius:100%;border-radius:100%;justify-content:center;align-items:center;width:30px;height:30px;transition:opacity .2s ease-in-out;display:flex}#nuxt-devtools-anchor .nuxt-devtools-icon-button:hover{opacity:1}#nuxt-devtools-anchor:hover .nuxt-devtools-glowing{opacity:.6}#nuxt-devtools-anchor .nuxt-devtools-glowing{opacity:0;pointer-events:none;z-index:-1;filter:blur(60px);background-image:linear-gradient(45deg,#00dc82,#00dc82,#00dc82);-webkit-border-radius:9999px;border-radius:9999px;width:160px;height:160px;transition:all 1s;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}@media print{#nuxt-devtools-anchor{display:none}}*{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.i-ph-arrow-bend-left-up-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M152 80H56l48-48Z' opacity='.2'/%3E%3Cpath d='M200 216a88.1 88.1 0 0 1-88-88V88h40a8 8 0 0 0 5.66-13.66l-48-48a8 8 0 0 0-11.32 0l-48 48A8 8 0 0 0 56 88h40v40a104.11 104.11 0 0 0 104 104a8 8 0 0 0 0-16M104 43.31L132.69 72H75.31Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-arrow-up-right-light{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M198 64v104a6 6 0 0 1-12 0V78.48L68.24 196.24a6 6 0 0 1-8.48-8.48L177.52 70H88a6 6 0 0 1 0-12h104a6 6 0 0 1 6 6'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-check-circle-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M224 128a96 96 0 1 1-96-96a96 96 0 0 1 96 96' opacity='.2'/%3E%3Cpath d='M173.66 98.34a8 8 0 0 1 0 11.32l-56 56a8 8 0 0 1-11.32 0l-24-24a8 8 0 0 1 11.32-11.32L112 148.69l50.34-50.35a8 8 0 0 1 11.32 0M232 128A104 104 0 1 1 128 24a104.11 104.11 0 0 1 104 104m-16 0a88 88 0 1 0-88 88a88.1 88.1 0 0 0 88-88'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-copy-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M216 40v128h-48V88H88V40Z' opacity='.2'/%3E%3Cpath d='M216 32H88a8 8 0 0 0-8 8v40H40a8 8 0 0 0-8 8v128a8 8 0 0 0 8 8h128a8 8 0 0 0 8-8v-40h40a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8m-56 176H48V96h112Zm48-48h-32V88a8 8 0 0 0-8-8H96V48h112Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-file-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M208 88h-56V32Z' opacity='.2'/%3E%3Cpath d='m213.66 82.34l-56-56A8 8 0 0 0 152 24H56a16 16 0 0 0-16 16v176a16 16 0 0 0 16 16h144a16 16 0 0 0 16-16V88a8 8 0 0 0-2.34-5.66M160 51.31L188.69 80H160ZM200 216H56V40h88v48a8 8 0 0 0 8 8h48z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-tree-view-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M104 32v32a8 8 0 0 1-8 8H64a8 8 0 0 1-8-8V32a8 8 0 0 1 8-8h32a8 8 0 0 1 8 8m104 64h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8m0 88h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8' opacity='.2'/%3E%3Cpath d='M176 152h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v8H88V80h8a16 16 0 0 0 16-16V32a16 16 0 0 0-16-16H64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h8v112a24 24 0 0 0 24 24h64v8a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v8H96a8 8 0 0 1-8-8v-64h72v8a16 16 0 0 0 16 16M64 32h32v32H64Zm112 160h32v32h-32Zm0-88h32v32h-32Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-x{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M205.66 194.34a8 8 0 0 1-11.32 11.32L128 139.31l-66.34 66.35a8 8 0 0 1-11.32-11.32L116.69 128L50.34 61.66a8 8 0 0 1 11.32-11.32L128 116.69l66.34-66.35a8 8 0 0 1 11.32 11.32L139.31 128Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.container{width:100%}.border-base{--un-border-opacity:.13;border-color:rgba(136,136,136,var(--un-border-opacity))}.bg-glass{--un-backdrop-blur:blur(5px);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);background-color:rgba(255,255,255,.75)}.color-base{--un-text-opacity:1;color:rgba(38,38,38,var(--un-text-opacity))}.ring-base{--un-ring-opacity:.13;--un-ring-color:rgba(136,136,136,var(--un-ring-opacity))}@media (prefers-color-scheme:dark){.bg-glass{background-color:rgba(17,17,17,.75)}.color-base{--un-text-opacity:1;color:rgba(229,229,229,var(--un-text-opacity))}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.disabled\\:pointer-events-none:disabled{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{top:0;bottom:0;left:0;right:0}.bottom-20px{bottom:20px}.right-20px{right:20px}.z-10{z-index:10}.z-9999999{z-index:9999999}.z-99999999{z-index:99999999}.grid{display:grid}.grid-cols-\\[max-content_1fr\\]{grid-template-columns:max-content 1fr}.ms:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:1rem}.ms:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:1rem}.mt-2{margin-top:.5rem}.max-h-200px{max-height:200px}.max-w-500px{max-width:500px}.w-400px{width:400px}.flex{display:flex}.flex-auto{flex:auto}.flex-none{flex:none}.flex-col{flex-direction:column}.translate-y-0{--un-translate-y:0;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.translate-y-10{--un-translate-y:2.5rem;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.transform{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.resize{resize:both}.items-center{align-items:center}.gap-2{gap:.5rem}.of-auto{overflow:auto}.of-hidden{overflow:hidden}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.border-1{border-width:1px}.border-1\\.5{border-width:1.5px}.border-transparent{border-color:transparent}.rounded{-webkit-border-radius:.25rem;border-radius:.25rem}.rounded-lg{-webkit-border-radius:.5rem;border-radius:.5rem}.bg-black{--un-bg-opacity:1;background-color:rgba(0,0,0,var(--un-bg-opacity))}.bg-op-20{--un-bg-opacity:.2}.p2{padding:.5rem}.p4{padding:1rem}.px{padding-left:1rem;padding-right:1rem}.px1{padding-left:.25rem;padding-right:.25rem}.py0\\.5{padding-top:.125rem;padding-bottom:.125rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.text-green6{--un-text-opacity:1;color:rgba(22,163,74,var(--un-text-opacity))}.hover\\:text-green6:hover{--un-text-opacity:1;color:rgba(22,163,74,var(--un-text-opacity))}.font-semibold{font-weight:600}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.op0{opacity:0}.op100{opacity:1}.op50{opacity:.5}.hover\\:op100:hover{opacity:1}.disabled\\:op10\\!:disabled{opacity:.1!important}.shadow-lg{--un-shadow:var(--un-shadow-inset) 0 10px 15px -3px var(--un-shadow-color,rgba(0,0,0,.1)),var(--un-shadow-inset) 0 4px 6px -4px var(--un-shadow-color,rgba(0,0,0,.1));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.shadow-xl{--un-shadow:var(--un-shadow-inset) 0 20px 25px -5px var(--un-shadow-color,rgba(0,0,0,.1)),var(--un-shadow-inset) 0 8px 10px -6px var(--un-shadow-color,rgba(0,0,0,.1));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.ring-1{--un-ring-width:1px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.backdrop-blur{--un-backdrop-blur:blur(8px);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.transition-none{transition:none}`;
3
+ const css = `*{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb)}:before{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb)}:after{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb)}:before{--un-content:""}:after{--un-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button{-webkit-appearance:button;background-color:transparent;background-image:none}[type=button]{-webkit-appearance:button;background-color:transparent;background-image:none}[type=reset]{-webkit-appearance:button;background-color:transparent;background-image:none}[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::placeholder{opacity:1;color:#9ca3af}textarea::placeholder{opacity:1;color:#9ca3af}button{cursor:pointer}[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--un-text-opacity:100%}@property --nuxt-devtools-inspect-border-angle{syntax:"<angle>";inherits:false;initial-value:90deg}.nuxt-devtools-inspect-running-border{filter:blur(10px);--nuxt-devtools-inspect-border-angle:0deg;background:conic-gradient(from var(--nuxt-devtools-inspect-border-angle), #00dc82, #00e6e8, #42e200, #0086e2, #00dc82) border-box;-webkit-mask:linear-gradient(#fff 0,#fff 0) padding-box,linear-gradient(#fff 0,#fff 0);-webkit-mask-composite:destination-out;transition:all .5s;animation:1s linear infinite color-rotate-background;mask-image:linear-gradient(#fff 0,#fff 0),linear-gradient(#fff 0,#fff 0);mask-position:0 0,0 0;mask-size:auto,auto;mask-repeat:repeat,repeat;mask-clip:padding-box,border-box;mask-origin:padding-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.nuxt-devtools-inspect-neon{background-image:linear-gradient(90deg,#00dc82,#00e6e8,#42e200,#00dc82,#00e6e8,#42e200,#00dc82,#00e6e8,#42e200);background-position:0;background-size:400% 400%}.nuxt-devtools-inspect-neon.running{animation:3s linear infinite neon-background}@keyframes neon-background{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}*{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.i-ph-arrow-bend-left-up-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M152 80H56l48-48Z' opacity='.2'/%3E%3Cpath d='M200 216a88.1 88.1 0 0 1-88-88V88h40a8 8 0 0 0 5.66-13.66l-48-48a8 8 0 0 0-11.32 0l-48 48A8 8 0 0 0 56 88h40v40a104.11 104.11 0 0 0 104 104a8 8 0 0 0 0-16M104 43.31L132.69 72H75.31Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-arrow-up-right-light{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M198 64v104a6 6 0 0 1-12 0V78.48L68.24 196.24a6 6 0 0 1-8.48-8.48L177.52 70H88a6 6 0 0 1 0-12h104a6 6 0 0 1 6 6'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-check-circle-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M224 128a96 96 0 1 1-96-96a96 96 0 0 1 96 96' opacity='.2'/%3E%3Cpath d='M173.66 98.34a8 8 0 0 1 0 11.32l-56 56a8 8 0 0 1-11.32 0l-24-24a8 8 0 0 1 11.32-11.32L112 148.69l50.34-50.35a8 8 0 0 1 11.32 0M232 128A104 104 0 1 1 128 24a104.11 104.11 0 0 1 104 104m-16 0a88 88 0 1 0-88 88a88.1 88.1 0 0 0 88-88'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-copy-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M216 40v128h-48V88H88V40Z' opacity='.2'/%3E%3Cpath d='M216 32H88a8 8 0 0 0-8 8v40H40a8 8 0 0 0-8 8v128a8 8 0 0 0 8 8h128a8 8 0 0 0 8-8v-40h40a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8m-56 176H48V96h112Zm48-48h-32V88a8 8 0 0 0-8-8H96V48h112Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-file-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M208 88h-56V32Z' opacity='.2'/%3E%3Cpath d='m213.66 82.34l-56-56A8 8 0 0 0 152 24H56a16 16 0 0 0-16 16v176a16 16 0 0 0 16 16h144a16 16 0 0 0 16-16V88a8 8 0 0 0-2.34-5.66M160 51.31L188.69 80H160ZM200 216H56V40h88v48a8 8 0 0 0 8 8h48z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-tree-view-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M104 32v32a8 8 0 0 1-8 8H64a8 8 0 0 1-8-8V32a8 8 0 0 1 8-8h32a8 8 0 0 1 8 8m104 64h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8m0 88h-32a8 8 0 0 0-8 8v32a8 8 0 0 0 8 8h32a8 8 0 0 0 8-8v-32a8 8 0 0 0-8-8' opacity='.2'/%3E%3Cpath d='M176 152h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v8H88V80h8a16 16 0 0 0 16-16V32a16 16 0 0 0-16-16H64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h8v112a24 24 0 0 0 24 24h64v8a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-32a16 16 0 0 0-16 16v8H96a8 8 0 0 1-8-8v-64h72v8a16 16 0 0 0 16 16M64 32h32v32H64Zm112 160h32v32h-32Zm0-88h32v32h-32Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-x{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M205.66 194.34a8 8 0 0 1-11.32 11.32L128 139.31l-66.34 66.35a8 8 0 0 1-11.32-11.32L116.69 128L50.34 61.66a8 8 0 0 1 11.32-11.32L128 116.69l66.34-66.35a8 8 0 0 1 11.32 11.32L139.31 128Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.border-base{--un-border-opacity:.13;border-color:rgba(136,136,136,var(--un-border-opacity))}.bg-glass{--un-backdrop-blur:blur(5px);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);background-color:rgba(255,255,255,.75)}.color-base{--un-text-opacity:1;color:rgba(38,38,38,var(--un-text-opacity))}.ring-base{--un-ring-opacity:.13;--un-ring-color:rgba(136,136,136,var(--un-ring-opacity))}@media (prefers-color-scheme:dark){.bg-glass{background-color:rgba(17,17,17,.75)}.color-base{--un-text-opacity:1;color:rgba(229,229,229,var(--un-text-opacity))}}.pointer-events-none{pointer-events:none}.disabled\\:pointer-events-none:disabled{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{top:0;bottom:0;left:0;right:0}.bottom-20px{bottom:20px}.right-20px{right:20px}.z-10{z-index:10}.z-9999999{z-index:9999999}.z-99999999{z-index:99999999}.grid{display:grid}.grid-cols-\\[max-content_1fr\\]{grid-template-columns:max-content 1fr}.mt-2{margin-top:.5rem}.max-h-200px{max-height:200px}.max-w-500px{max-width:500px}.w-400px{width:400px}.flex{display:flex}.flex-auto{flex:auto}.flex-none{flex:none}.flex-col{flex-direction:column}.translate-y-0{--un-translate-y:0;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.translate-y-10{--un-translate-y:2.5rem;transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.items-center{align-items:center}.gap-2{gap:.5rem}.of-auto{overflow:auto}.of-hidden{overflow:hidden}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.border-1{border-width:1px}.border-1\\.5{border-width:1.5px}.border-transparent{border-color:transparent}.rounded{-webkit-border-radius:.25rem;border-radius:.25rem}.rounded-lg{-webkit-border-radius:.5rem;border-radius:.5rem}.bg-black{--un-bg-opacity:1;background-color:rgba(0,0,0,var(--un-bg-opacity))}.bg-op-20{--un-bg-opacity:.2}.p2{padding:.5rem}.p4{padding:1rem}.px1{padding-left:.25rem;padding-right:.25rem}.py0\\.5{padding-top:.125rem;padding-bottom:.125rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.text-green6{--un-text-opacity:1;color:rgba(22,163,74,var(--un-text-opacity))}.hover\\:text-green6:hover{--un-text-opacity:1;color:rgba(22,163,74,var(--un-text-opacity))}.font-semibold{font-weight:600}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.op0{opacity:0}.op100{opacity:1}.op50{opacity:.5}.hover\\:op100:hover{opacity:1}.disabled\\:op10\\!:disabled{opacity:.1!important}.shadow-lg{--un-shadow:var(--un-shadow-inset) 0 10px 15px -3px var(--un-shadow-color,rgba(0,0,0,.1)),var(--un-shadow-inset) 0 4px 6px -4px var(--un-shadow-color,rgba(0,0,0,.1));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.shadow-xl{--un-shadow:var(--un-shadow-inset) 0 20px 25px -5px var(--un-shadow-color,rgba(0,0,0,.1)),var(--un-shadow-inset) 0 8px 10px -6px var(--un-shadow-color,rgba(0,0,0,.1));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.ring-1{--un-ring-width:1px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.backdrop-blur{--un-backdrop-blur:blur(8px);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.transition-none{transition:none}`;
4
4
 
5
- //#endregion
6
- //#region tryOnScopeDispose/index.ts
7
- /**
8
- * Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing
9
- *
10
- * @param fn
11
- */
12
- function tryOnScopeDispose(fn, failSilently) {
13
- if (getCurrentScope()) {
14
- onScopeDispose(fn, failSilently);
15
- return true;
16
- }
17
- return false;
18
- }
19
5
  //#endregion
20
6
  //#region utils/is.ts
21
7
  const isClient = typeof window !== "undefined" && typeof document !== "undefined";
22
8
  typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
23
- const notNullish = (val) => val != null;
24
9
  const toString = Object.prototype.toString;
25
10
  const isObject = (val) => toString.call(val) === "[object Object]";
26
11
  const noop = () => {};
27
- //#endregion
28
- //#region utils/filters.ts
29
- function createFilterWrapper(filter, fn) {
30
- function wrapper(...args) {
31
- return new Promise((resolve, reject) => {
32
- Promise.resolve(filter(() => fn.apply(this, args), {
33
- fn,
34
- thisArg: this,
35
- args
36
- })).then(resolve).catch(reject);
37
- });
38
- }
39
- if ("cancel" in filter) Object.assign(wrapper, {
40
- cancel: filter.cancel,
41
- flush: filter.flush,
42
- isPending: filter.isPending
43
- });
44
- return wrapper;
45
- }
46
- /**
47
- * Create an EventFilter that debounce the events
48
- */
49
- function debounceFilter(ms, options = {}) {
50
- let timer;
51
- let maxTimer;
52
- let lastRejector = noop;
53
- let lastResolve = noop;
54
- const _pending = shallowRef(false);
55
- const _clearTimeout = (timer) => {
56
- clearTimeout(timer);
57
- lastRejector();
58
- lastRejector = noop;
59
- };
60
- let lastInvoker;
61
- const handler = (invoke) => {
62
- const duration = toValue(ms);
63
- const maxDuration = toValue(options.maxWait);
64
- if (timer) _clearTimeout(timer);
65
- if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
66
- if (maxTimer) {
67
- _clearTimeout(maxTimer);
68
- maxTimer = void 0;
69
- }
70
- _pending.value = false;
71
- return Promise.resolve(invoke());
72
- }
73
- _pending.value = true;
74
- return new Promise((resolve, reject) => {
75
- lastRejector = options.rejectOnCancel ? reject : resolve;
76
- lastResolve = resolve;
77
- lastInvoker = invoke;
78
- if (maxDuration && !maxTimer) maxTimer = setTimeout(() => {
79
- if (timer) _clearTimeout(timer);
80
- maxTimer = void 0;
81
- _pending.value = false;
82
- resolve(lastInvoker());
83
- }, maxDuration);
84
- timer = setTimeout(() => {
85
- if (maxTimer) _clearTimeout(maxTimer);
86
- maxTimer = void 0;
87
- _pending.value = false;
88
- resolve(invoke());
89
- }, duration);
90
- });
91
- };
92
- return Object.assign(handler, {
93
- cancel: () => {
94
- if (timer) {
95
- _clearTimeout(timer);
96
- timer = void 0;
97
- }
98
- if (maxTimer) {
99
- _clearTimeout(maxTimer);
100
- maxTimer = void 0;
101
- }
102
- _pending.value = false;
103
- lastResolve = noop;
104
- },
105
- flush: () => {
106
- if (_pending.value) {
107
- if (timer) {
108
- clearTimeout(timer);
109
- timer = void 0;
110
- }
111
- if (maxTimer) {
112
- clearTimeout(maxTimer);
113
- maxTimer = void 0;
114
- }
115
- _pending.value = false;
116
- const resolve = lastResolve;
117
- lastRejector = noop;
118
- lastResolve = noop;
119
- resolve(lastInvoker());
120
- }
121
- },
122
- isPending: shallowReadonly(_pending)
123
- });
124
- }
125
12
  function toArray(value) {
126
13
  return Array.isArray(value) ? value : [value];
127
14
  }
128
15
  //#endregion
129
- //#region utils/vue.ts
130
- function getLifeCycleTarget(target) {
131
- return getCurrentInstance();
132
- }
133
- //#endregion
134
- //#region useDebounceFn/index.ts
135
- /**
136
- * Debounce execution of a function.
137
- *
138
- * @see https://vueuse.org/useDebounceFn
139
- * @param fn A function to be executed after delay milliseconds debounced.
140
- * @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.
141
- * @param options Options
142
- *
143
- * @return A new, debounced, function with isPending, cancel, and flush properties.
144
- */
145
- function useDebounceFn(fn, ms = 200, options = {}) {
146
- return createFilterWrapper(debounceFilter(ms, options), fn);
147
- }
148
- //#endregion
149
16
  //#region toRefs/index.ts
150
17
  /**
151
18
  * Extended `toRefs` that also accepts refs of an object.
@@ -181,20 +48,6 @@ function toRefs(objectRef, options = {}) {
181
48
  return result;
182
49
  }
183
50
  //#endregion
184
- //#region tryOnMounted/index.ts
185
- /**
186
- * Call onMounted() if it's inside a component lifecycle, if not, just call the function
187
- *
188
- * @param fn
189
- * @param sync if set to false, it will run in the nextTick() of Vue
190
- * @param target
191
- */
192
- function tryOnMounted(fn, sync = true, target) {
193
- if (getLifeCycleTarget()) onMounted(fn, target);
194
- else if (sync) fn();
195
- else nextTick(fn);
196
- }
197
- //#endregion
198
51
  //#region watchImmediate/index.ts
199
52
  /**
200
53
  * Shorthand for watching value with {immediate: true}
@@ -336,122 +189,6 @@ function onClickOutside(target, handler, options = {}) {
336
189
  return stop;
337
190
  }
338
191
  //#endregion
339
- //#region useMounted/index.ts
340
- /**
341
- * Mounted state in ref.
342
- *
343
- * @see https://vueuse.org/useMounted
344
- *
345
- * @__NO_SIDE_EFFECTS__
346
- */
347
- function useMounted() {
348
- const isMounted = shallowRef(false);
349
- const instance = getCurrentInstance();
350
- if (instance) onMounted(() => {
351
- isMounted.value = true;
352
- }, instance);
353
- return isMounted;
354
- }
355
- //#endregion
356
- //#region useSupported/index.ts
357
- /* @__NO_SIDE_EFFECTS__ */
358
- function useSupported(callback) {
359
- const isMounted = useMounted();
360
- return computed(() => {
361
- isMounted.value;
362
- return Boolean(callback());
363
- });
364
- }
365
- //#endregion
366
- //#region useMutationObserver/index.ts
367
- /**
368
- * Watch for changes being made to the DOM tree.
369
- *
370
- * @see https://vueuse.org/useMutationObserver
371
- * @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver MutationObserver MDN
372
- * @param target
373
- * @param callback
374
- * @param options
375
- */
376
- function useMutationObserver(target, callback, options = {}) {
377
- const { window = defaultWindow, ...mutationOptions } = options;
378
- let observer;
379
- const isSupported = /* @__PURE__ */ useSupported(() => window && "MutationObserver" in window);
380
- const cleanup = () => {
381
- if (observer) {
382
- observer.disconnect();
383
- observer = void 0;
384
- }
385
- };
386
- const stopWatch = watch(computed(() => {
387
- const items = toArray(toValue(target)).map(unrefElement).filter(notNullish);
388
- return new Set(items);
389
- }), (newTargets) => {
390
- cleanup();
391
- if (isSupported.value && newTargets.size) {
392
- observer = new MutationObserver(callback);
393
- newTargets.forEach((el) => observer.observe(el, mutationOptions));
394
- }
395
- }, {
396
- immediate: true,
397
- flush: "post"
398
- });
399
- const takeRecords = () => {
400
- return observer === null || observer === void 0 ? void 0 : observer.takeRecords();
401
- };
402
- const stop = () => {
403
- stopWatch();
404
- cleanup();
405
- };
406
- tryOnScopeDispose(stop);
407
- return {
408
- isSupported,
409
- stop,
410
- takeRecords
411
- };
412
- }
413
- //#endregion
414
- //#region useCssVar/index.ts
415
- /**
416
- * Manipulate CSS variables.
417
- *
418
- * @see https://vueuse.org/useCssVar
419
- * @param prop
420
- * @param target
421
- * @param options
422
- */
423
- function useCssVar(prop, target, options = {}) {
424
- const { window = defaultWindow, initialValue, observe = false } = options;
425
- const variable = shallowRef(initialValue);
426
- const elRef = computed(() => {
427
- var _window$document;
428
- return unrefElement(target) || (window === null || window === void 0 || (_window$document = window.document) === null || _window$document === void 0 ? void 0 : _window$document.documentElement);
429
- });
430
- function updateCssVar() {
431
- const key = toValue(prop);
432
- const el = toValue(elRef);
433
- if (el && window && key) {
434
- var _window$getComputedSt;
435
- const value = (_window$getComputedSt = window.getComputedStyle(el).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim();
436
- variable.value = value || variable.value || initialValue;
437
- }
438
- }
439
- if (observe) useMutationObserver(elRef, updateCssVar, {
440
- attributeFilter: ["style", "class"],
441
- window
442
- });
443
- watch([elRef, () => toValue(prop)], (_, old) => {
444
- if (old[0] && old[1]) old[0].style.removeProperty(old[1]);
445
- updateCssVar();
446
- }, { immediate: true });
447
- watch([variable, elRef], ([val, el]) => {
448
- const raw_prop = toValue(prop);
449
- if ((el === null || el === void 0 ? void 0 : el.style) && raw_prop) if (val == null) el.style.removeProperty(raw_prop);
450
- else el.style.setProperty(raw_prop, val);
451
- }, { immediate: true });
452
- return variable;
453
- }
454
- //#endregion
455
192
  //#region useDraggable/index.ts
456
193
  const defaultScrollConfig = {
457
194
  speed: 2,
@@ -644,927 +381,6 @@ function useDraggable(target, options = {}) {
644
381
  `)
645
382
  };
646
383
  }
647
- //#endregion
648
- //#region useResizeObserver/index.ts
649
- /**
650
- * Reports changes to the dimensions of an Element's content or the border-box
651
- *
652
- * @see https://vueuse.org/useResizeObserver
653
- * @param target
654
- * @param callback
655
- * @param options
656
- */
657
- function useResizeObserver(target, callback, options = {}) {
658
- const { window = defaultWindow, ...observerOptions } = options;
659
- let observer;
660
- const isSupported = /* @__PURE__ */ useSupported(() => window && "ResizeObserver" in window);
661
- const cleanup = () => {
662
- if (observer) {
663
- observer.disconnect();
664
- observer = void 0;
665
- }
666
- };
667
- const stopWatch = watch(computed(() => {
668
- const _targets = toValue(target);
669
- return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];
670
- }), (els) => {
671
- cleanup();
672
- if (isSupported.value && window) {
673
- observer = new ResizeObserver(callback);
674
- for (const _el of els) if (_el) observer.observe(_el, observerOptions);
675
- }
676
- }, {
677
- immediate: true,
678
- flush: "post"
679
- });
680
- const stop = () => {
681
- cleanup();
682
- stopWatch();
683
- };
684
- tryOnScopeDispose(stop);
685
- return {
686
- isSupported,
687
- stop
688
- };
689
- }
690
- //#endregion
691
- //#region useElementBounding/index.ts
692
- /**
693
- * Reactive bounding box of an HTML element.
694
- *
695
- * @see https://vueuse.org/useElementBounding
696
- * @param target
697
- */
698
- function useElementBounding(target, options = {}) {
699
- const { reset = true, windowResize = true, windowScroll = true, immediate = true, updateTiming = "sync" } = options;
700
- const height = shallowRef(0);
701
- const bottom = shallowRef(0);
702
- const left = shallowRef(0);
703
- const right = shallowRef(0);
704
- const top = shallowRef(0);
705
- const width = shallowRef(0);
706
- const x = shallowRef(0);
707
- const y = shallowRef(0);
708
- function recalculate() {
709
- const el = unrefElement(target);
710
- if (!el) {
711
- if (reset) {
712
- height.value = 0;
713
- bottom.value = 0;
714
- left.value = 0;
715
- right.value = 0;
716
- top.value = 0;
717
- width.value = 0;
718
- x.value = 0;
719
- y.value = 0;
720
- }
721
- return;
722
- }
723
- const rect = el.getBoundingClientRect();
724
- height.value = rect.height;
725
- bottom.value = rect.bottom;
726
- left.value = rect.left;
727
- right.value = rect.right;
728
- top.value = rect.top;
729
- width.value = rect.width;
730
- x.value = rect.x;
731
- y.value = rect.y;
732
- }
733
- function update() {
734
- if (updateTiming === "sync") recalculate();
735
- else if (updateTiming === "next-frame") requestAnimationFrame(() => recalculate());
736
- }
737
- useResizeObserver(target, update);
738
- watch(() => unrefElement(target), (ele) => !ele && update());
739
- useMutationObserver(target, update, { attributeFilter: ["style", "class"] });
740
- if (windowScroll) useEventListener("scroll", update, {
741
- capture: true,
742
- passive: true
743
- });
744
- if (windowResize) useEventListener("resize", update, { passive: true });
745
- tryOnMounted(() => {
746
- if (immediate) update();
747
- });
748
- return {
749
- height,
750
- bottom,
751
- left,
752
- right,
753
- top,
754
- width,
755
- x,
756
- y,
757
- update
758
- };
759
- }
760
- //#endregion
761
- //#region useScreenSafeArea/index.ts
762
- const topVarName = "--vueuse-safe-area-top";
763
- const rightVarName = "--vueuse-safe-area-right";
764
- const bottomVarName = "--vueuse-safe-area-bottom";
765
- const leftVarName = "--vueuse-safe-area-left";
766
- /**
767
- * Reactive `env(safe-area-inset-*)`
768
- *
769
- * @see https://vueuse.org/useScreenSafeArea
770
- */
771
- function useScreenSafeArea() {
772
- const top = shallowRef("");
773
- const right = shallowRef("");
774
- const bottom = shallowRef("");
775
- const left = shallowRef("");
776
- if (isClient) {
777
- const topCssVar = useCssVar(topVarName);
778
- const rightCssVar = useCssVar(rightVarName);
779
- const bottomCssVar = useCssVar(bottomVarName);
780
- const leftCssVar = useCssVar(leftVarName);
781
- topCssVar.value = "env(safe-area-inset-top, 0px)";
782
- rightCssVar.value = "env(safe-area-inset-right, 0px)";
783
- bottomCssVar.value = "env(safe-area-inset-bottom, 0px)";
784
- leftCssVar.value = "env(safe-area-inset-left, 0px)";
785
- tryOnMounted(update);
786
- useEventListener("resize", useDebounceFn(update), { passive: true });
787
- }
788
- function update() {
789
- top.value = getValue(topVarName);
790
- right.value = getValue(rightVarName);
791
- bottom.value = getValue(bottomVarName);
792
- left.value = getValue(leftVarName);
793
- }
794
- return {
795
- top,
796
- right,
797
- bottom,
798
- left,
799
- update
800
- };
801
- }
802
- function getValue(position) {
803
- return getComputedStyle(document.documentElement).getPropertyValue(position);
804
- }
805
-
806
- const PANEL_MIN = 20;
807
- const PANEL_MAX = 100;
808
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
809
- __name: "NuxtDevtoolsFrameBox",
810
- props: /* @__PURE__ */ mergeModels({
811
- client: { type: Object, required: true },
812
- isDragging: { type: Boolean, required: true },
813
- state: { type: Object, required: true }
814
- }, {
815
- "popupWindow": { type: null },
816
- "popupWindowModifiers": {}
817
- }),
818
- emits: ["update:popupWindow"],
819
- setup(__props, { expose: __expose }) {
820
- __expose();
821
- const props = __props;
822
- const popupWindow = useModel(__props, "popupWindow");
823
- const {
824
- state
825
- } = toRefs(props);
826
- const container = ref();
827
- const isResizing = ref(false);
828
- watchEffect(() => {
829
- if (!container.value)
830
- return;
831
- if (state.value.open) {
832
- const iframe = props.client.getIframe();
833
- if (!iframe)
834
- return;
835
- iframe.style.pointerEvents = isResizing.value || props.isDragging || props.client.inspector?.isEnabled.value ? "none" : "auto";
836
- if (!popupWindow.value) {
837
- if ([...container.value.children].every((el) => el !== iframe))
838
- container.value.appendChild(iframe);
839
- }
840
- }
841
- });
842
- useEventListener(window, "keydown", (e) => {
843
- if (e.key === "Escape" && props.client.inspector?.isEnabled.value) {
844
- e.preventDefault();
845
- props.client.inspector?.disable();
846
- props.client.devtools.close();
847
- }
848
- });
849
- useEventListener(window, "mousedown", (e) => {
850
- if (!state.value.closeOnOutsideClick)
851
- return;
852
- if (popupWindow.value)
853
- return;
854
- if (!state.value.open || isResizing.value || props.client.inspector?.isEnabled.value)
855
- return;
856
- const matched = e.composedPath().find((_el) => {
857
- const el = _el;
858
- return [...el.classList || []].some((c) => c.startsWith("nuxt-devtools-")) || el.tagName?.toLowerCase() === "iframe";
859
- });
860
- if (!matched)
861
- state.value.open = false;
862
- });
863
- function handleResize(e) {
864
- if (!isResizing.value || !state.value.open)
865
- return;
866
- const iframe = props.client.getIframe();
867
- if (!iframe)
868
- return;
869
- const box = iframe.getBoundingClientRect();
870
- let widthPx, heightPx;
871
- if (isResizing.value.right) {
872
- widthPx = Math.abs(e instanceof MouseEvent ? e.clientX : (e.touches[0]?.clientX || 0) - (box?.left || 0));
873
- state.value.width = Math.min(PANEL_MAX, Math.max(PANEL_MIN, widthPx / window.innerWidth * 100));
874
- } else if (isResizing.value.left) {
875
- widthPx = Math.abs((box?.right || 0) - (e instanceof MouseEvent ? e.clientX : e.touches[0]?.clientX || 0));
876
- state.value.width = Math.min(PANEL_MAX, Math.max(PANEL_MIN, widthPx / window.innerWidth * 100));
877
- }
878
- if (isResizing.value.top) {
879
- heightPx = Math.abs((box?.bottom || 0) - (e instanceof MouseEvent ? e.clientY : e.touches[0]?.clientY || 0));
880
- state.value.height = Math.min(PANEL_MAX, Math.max(PANEL_MIN, heightPx / window.innerHeight * 100));
881
- } else if (isResizing.value.bottom) {
882
- heightPx = Math.abs(e instanceof MouseEvent ? e.clientY : (e.touches[0]?.clientY || 0) - (box?.top || 0));
883
- state.value.height = Math.min(PANEL_MAX, Math.max(PANEL_MIN, heightPx / window.innerHeight * 100));
884
- }
885
- }
886
- useEventListener(window, "mousemove", handleResize);
887
- useEventListener(window, "touchmove", handleResize);
888
- useEventListener(window, "mouseup", () => isResizing.value = false);
889
- useEventListener(window, "touchend", () => isResizing.value = false);
890
- useEventListener(window, "mouseleave", () => isResizing.value = false);
891
- const __returned__ = { props, PANEL_MIN, PANEL_MAX, popupWindow, state, container, isResizing, handleResize };
892
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
893
- return __returned__;
894
- }
895
- });
896
-
897
- const _export_sfc = (sfc, props) => {
898
- const target = sfc.__vccOpts || sfc;
899
- for (const [key, val] of props) {
900
- target[key] = val;
901
- }
902
- return target;
903
- };
904
-
905
- const _hoisted_1$2 = {
906
- ref: "container",
907
- class: "nuxt-devtools-frame"
908
- };
909
- function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
910
- return withDirectives((openBlock(), createElementBlock(
911
- "div",
912
- _hoisted_1$2,
913
- [
914
- createCommentVNode(" Handlers "),
915
- withDirectives(createElementVNode(
916
- "div",
917
- {
918
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-horizontal",
919
- style: { top: 0 },
920
- onMousedown: _cache[0] || (_cache[0] = withModifiers(($event) => $setup.isResizing = { top: true }, ["prevent"])),
921
- onTouchstartPassive: _cache[1] || (_cache[1] = () => $setup.isResizing = { top: true })
922
- },
923
- null,
924
- 544
925
- /* NEED_HYDRATION, NEED_PATCH */
926
- ), [[vShow, $setup.state.position !== "top"]]),
927
- withDirectives(createElementVNode(
928
- "div",
929
- {
930
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-horizontal",
931
- style: { bottom: 0 },
932
- onMousedown: _cache[2] || (_cache[2] = withModifiers(() => $setup.isResizing = { bottom: true }, ["prevent"])),
933
- onTouchstartPassive: _cache[3] || (_cache[3] = () => $setup.isResizing = { bottom: true })
934
- },
935
- null,
936
- 544
937
- /* NEED_HYDRATION, NEED_PATCH */
938
- ), [[vShow, $setup.state.position !== "bottom"]]),
939
- withDirectives(createElementVNode(
940
- "div",
941
- {
942
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-vertical",
943
- style: { left: 0 },
944
- onMousedown: _cache[4] || (_cache[4] = withModifiers(() => $setup.isResizing = { left: true }, ["prevent"])),
945
- onTouchstartPassive: _cache[5] || (_cache[5] = () => $setup.isResizing = { left: true })
946
- },
947
- null,
948
- 544
949
- /* NEED_HYDRATION, NEED_PATCH */
950
- ), [[vShow, $setup.state.position !== "left"]]),
951
- withDirectives(createElementVNode(
952
- "div",
953
- {
954
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-vertical",
955
- style: { right: 0 },
956
- onMousedown: _cache[6] || (_cache[6] = withModifiers(() => $setup.isResizing = { right: true }, ["prevent"])),
957
- onTouchstartPassive: _cache[7] || (_cache[7] = () => $setup.isResizing = { right: true })
958
- },
959
- null,
960
- 544
961
- /* NEED_HYDRATION, NEED_PATCH */
962
- ), [[vShow, $setup.state.position !== "right"]]),
963
- withDirectives(createElementVNode(
964
- "div",
965
- {
966
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-corner",
967
- style: {
968
- top: 0,
969
- left: 0,
970
- cursor: "nwse-resize"
971
- },
972
- onMousedown: _cache[8] || (_cache[8] = withModifiers(() => $setup.isResizing = {
973
- top: true,
974
- left: true
975
- }, ["prevent"])),
976
- onTouchstartPassive: _cache[9] || (_cache[9] = () => $setup.isResizing = {
977
- top: true,
978
- left: true
979
- })
980
- },
981
- null,
982
- 544
983
- /* NEED_HYDRATION, NEED_PATCH */
984
- ), [[vShow, $setup.state.position !== "top" && $setup.state.position !== "left"]]),
985
- withDirectives(createElementVNode(
986
- "div",
987
- {
988
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-corner",
989
- style: {
990
- top: 0,
991
- right: 0,
992
- cursor: "nesw-resize"
993
- },
994
- onMousedown: _cache[10] || (_cache[10] = withModifiers(() => $setup.isResizing = {
995
- top: true,
996
- right: true
997
- }, ["prevent"])),
998
- onTouchstartPassive: _cache[11] || (_cache[11] = () => $setup.isResizing = {
999
- top: true,
1000
- right: true
1001
- })
1002
- },
1003
- null,
1004
- 544
1005
- /* NEED_HYDRATION, NEED_PATCH */
1006
- ), [[vShow, $setup.state.position !== "top" && $setup.state.position !== "right"]]),
1007
- withDirectives(createElementVNode(
1008
- "div",
1009
- {
1010
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-corner",
1011
- style: {
1012
- bottom: 0,
1013
- left: 0,
1014
- cursor: "nesw-resize"
1015
- },
1016
- onMousedown: _cache[12] || (_cache[12] = withModifiers(() => $setup.isResizing = {
1017
- bottom: true,
1018
- left: true
1019
- }, ["prevent"])),
1020
- onTouchstartPassive: _cache[13] || (_cache[13] = () => $setup.isResizing = {
1021
- bottom: true,
1022
- left: true
1023
- })
1024
- },
1025
- null,
1026
- 544
1027
- /* NEED_HYDRATION, NEED_PATCH */
1028
- ), [[vShow, $setup.state.position !== "bottom" && $setup.state.position !== "left"]]),
1029
- withDirectives(createElementVNode(
1030
- "div",
1031
- {
1032
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-corner",
1033
- style: {
1034
- bottom: 0,
1035
- right: 0,
1036
- cursor: "nwse-resize"
1037
- },
1038
- onMousedown: _cache[14] || (_cache[14] = withModifiers(() => $setup.isResizing = {
1039
- bottom: true,
1040
- right: true
1041
- }, ["prevent"])),
1042
- onTouchstartPassive: _cache[15] || (_cache[15] = () => $setup.isResizing = {
1043
- bottom: true,
1044
- right: true
1045
- })
1046
- },
1047
- null,
1048
- 544
1049
- /* NEED_HYDRATION, NEED_PATCH */
1050
- ), [[vShow, $setup.state.position !== "bottom" && $setup.state.position !== "right"]])
1051
- ],
1052
- 512
1053
- /* NEED_PATCH */
1054
- )), [[vShow, $setup.state.open && !$props.client.inspector?.isEnabled.value && !$setup.popupWindow]]);
1055
- }
1056
- const FrameBox = /*#__PURE__*/ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__file", "/home/runner/work/devtools/devtools/packages/devtools/src/webcomponents/components/NuxtDevtoolsFrameBox.vue"]]);
1057
-
1058
- const SNAP_THRESHOLD = 2;
1059
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1060
- __name: "NuxtDevtoolsFrame",
1061
- props: {
1062
- client: { type: Object, required: true },
1063
- settings: { type: Object, required: true },
1064
- state: { type: Object, required: true }
1065
- },
1066
- setup(__props, { expose: __expose }) {
1067
- __expose();
1068
- const props = __props;
1069
- const {
1070
- state,
1071
- settings
1072
- } = toRefs(props);
1073
- function millisecondToHumanreadable(ms) {
1074
- if (ms < 1e3)
1075
- return [+ms.toFixed(0), "ms"];
1076
- if (ms < 1e3 * 60)
1077
- return [+(ms / 1e3).toFixed(1), "s"];
1078
- if (ms < 1e3 * 60 * 60)
1079
- return [+(ms / 1e3 / 60).toFixed(1), "min"];
1080
- return [+(ms / 1e3 / 60 / 60).toFixed(1), "hour"];
1081
- }
1082
- const panelMargins = reactive({
1083
- left: 10,
1084
- top: 10,
1085
- right: 10,
1086
- bottom: 10
1087
- });
1088
- const safeArea = useScreenSafeArea();
1089
- const isSafari = navigator.userAgent.includes("Safari") && !navigator.userAgent.includes("Chrome");
1090
- function toNumber(value) {
1091
- const num = +value;
1092
- if (Number.isNaN(num))
1093
- return 0;
1094
- return num;
1095
- }
1096
- watchEffect(() => {
1097
- panelMargins.left = toNumber(safeArea.left.value) + 10;
1098
- panelMargins.top = toNumber(safeArea.top.value) + 10;
1099
- panelMargins.right = toNumber(safeArea.right.value) + 10;
1100
- panelMargins.bottom = toNumber(safeArea.bottom.value) + 10;
1101
- });
1102
- const vars = computed(() => {
1103
- const dark = props.client.app.colorMode.value === "dark";
1104
- return {
1105
- "--nuxt-devtools-widget-bg": dark ? "#111" : "#ffffff",
1106
- "--nuxt-devtools-widget-fg": dark ? "#F5F5F5" : "#111",
1107
- "--nuxt-devtools-widget-border": dark ? "#3336" : "#efefef",
1108
- "--nuxt-devtools-widget-shadow": dark ? "rgba(0,0,0,0.3)" : "rgba(128,128,128,0.1)"
1109
- };
1110
- });
1111
- const frameBox = useTemplateRef("frameBox");
1112
- const panelEl = useTemplateRef("panelEl");
1113
- const anchorEl = useTemplateRef("anchorEl");
1114
- const windowSize = reactive({
1115
- width: window.innerWidth,
1116
- height: window.innerHeight
1117
- });
1118
- const isDragging = ref(false);
1119
- const draggingOffset = reactive({ x: 0, y: 0 });
1120
- const mousePosition = reactive({ x: 0, y: 0 });
1121
- function onPointerDown(e) {
1122
- if (!panelEl.value)
1123
- return;
1124
- isDragging.value = true;
1125
- const { left, top, width, height } = panelEl.value.getBoundingClientRect();
1126
- draggingOffset.x = e.clientX - left - width / 2;
1127
- draggingOffset.y = e.clientY - top - height / 2;
1128
- }
1129
- onMounted(() => {
1130
- windowSize.width = window.innerWidth;
1131
- windowSize.height = window.innerHeight;
1132
- useEventListener(window, "resize", () => {
1133
- windowSize.width = window.innerWidth;
1134
- windowSize.height = window.innerHeight;
1135
- });
1136
- useEventListener(window, "pointermove", (e) => {
1137
- if (!isDragging.value)
1138
- return;
1139
- const centerX = window.innerWidth / 2;
1140
- const centerY = window.innerHeight / 2;
1141
- const x = e.clientX - draggingOffset.x;
1142
- const y = e.clientY - draggingOffset.y;
1143
- if (Number.isNaN(x) || Number.isNaN(y))
1144
- return;
1145
- mousePosition.x = x;
1146
- mousePosition.y = y;
1147
- const deg = Math.atan2(y - centerY, x - centerX);
1148
- const HORIZONTAL_MARGIN = 70;
1149
- const TL = Math.atan2(0 - centerY + HORIZONTAL_MARGIN, 0 - centerX);
1150
- const TR = Math.atan2(0 - centerY + HORIZONTAL_MARGIN, window.innerWidth - centerX);
1151
- const BL = Math.atan2(window.innerHeight - HORIZONTAL_MARGIN - centerY, 0 - centerX);
1152
- const BR = Math.atan2(window.innerHeight - HORIZONTAL_MARGIN - centerY, window.innerWidth - centerX);
1153
- state.value.position = deg >= TL && deg <= TR ? "top" : deg >= TR && deg <= BR ? "right" : deg >= BR && deg <= BL ? "bottom" : "left";
1154
- state.value.left = snapToPoints(x / window.innerWidth * 100);
1155
- state.value.top = snapToPoints(y / window.innerHeight * 100);
1156
- });
1157
- useEventListener(window, "pointerup", () => {
1158
- isDragging.value = false;
1159
- });
1160
- useEventListener(window, "pointerleave", () => {
1161
- isDragging.value = false;
1162
- });
1163
- });
1164
- function snapToPoints(value) {
1165
- if (value < 5)
1166
- return 0;
1167
- if (value > 95)
1168
- return 100;
1169
- if (Math.abs(value - 50) < SNAP_THRESHOLD)
1170
- return 50;
1171
- return value;
1172
- }
1173
- function clamp(value, min, max) {
1174
- return Math.min(Math.max(value, min), max);
1175
- }
1176
- const isHovering = ref(false);
1177
- const isVertical = computed(() => state.value.position === "left" || state.value.position === "right");
1178
- const anchorPos = computed(() => {
1179
- const halfWidth = (panelEl.value?.clientWidth || 0) / 2;
1180
- const halfHeight = (panelEl.value?.clientHeight || 0) / 2;
1181
- const left = state.value.left * windowSize.width / 100;
1182
- const top = state.value.top * windowSize.height / 100;
1183
- switch (state.value.position) {
1184
- case "top":
1185
- return {
1186
- left: clamp(left, halfWidth + panelMargins.left, windowSize.width - halfWidth - panelMargins.right),
1187
- top: panelMargins.top + halfHeight
1188
- };
1189
- case "right":
1190
- return {
1191
- left: windowSize.width - panelMargins.right - halfHeight,
1192
- top: clamp(top, halfWidth + panelMargins.top, windowSize.height - halfWidth - panelMargins.bottom)
1193
- };
1194
- case "left":
1195
- return {
1196
- left: panelMargins.left + halfHeight,
1197
- top: clamp(top, halfWidth + panelMargins.top, windowSize.height - halfWidth - panelMargins.bottom)
1198
- };
1199
- case "bottom":
1200
- default:
1201
- return {
1202
- left: clamp(left, halfWidth + panelMargins.left, windowSize.width - halfWidth - panelMargins.right),
1203
- top: windowSize.height - panelMargins.bottom - halfHeight
1204
- };
1205
- }
1206
- });
1207
- let _timer = null;
1208
- function bringUp() {
1209
- isHovering.value = true;
1210
- if (state.value.minimizePanelInactive < 0)
1211
- return;
1212
- if (_timer)
1213
- clearTimeout(_timer);
1214
- _timer = setTimeout(() => {
1215
- isHovering.value = false;
1216
- }, +state.value.minimizePanelInactive || 0);
1217
- }
1218
- const isHidden = computed(() => {
1219
- if (state.value.open)
1220
- return false;
1221
- if (settings.value.ui.showPanel === true)
1222
- return false;
1223
- if (settings.value.ui.showPanel === false)
1224
- return true;
1225
- return false;
1226
- });
1227
- const isMinimized = computed(() => {
1228
- if (state.value.minimizePanelInactive < 0)
1229
- return false;
1230
- if (state.value.minimizePanelInactive === 0)
1231
- return true;
1232
- const isTouchDevice = "ontouchstart" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;
1233
- return !isDragging.value && !state.value.open && !isHovering.value && !isTouchDevice && state.value.minimizePanelInactive;
1234
- });
1235
- const anchorStyle = computed(() => {
1236
- return {
1237
- left: `${anchorPos.value.left}px`,
1238
- top: `${anchorPos.value.top}px`,
1239
- pointerEvents: isHidden.value ? "none" : "auto"
1240
- };
1241
- });
1242
- const panelStyle = computed(() => {
1243
- const style = {
1244
- transform: isVertical.value ? `translate(${isMinimized.value ? `calc(-50% ${state.value.position === "right" ? "+" : "-"} 15px)` : "-50%"}, -50%) rotate(90deg)` : `translate(-50%, ${isMinimized.value ? `calc(-50% ${state.value.position === "top" ? "-" : "+"} 15px)` : "-50%"})`
1245
- };
1246
- if (isHidden.value) {
1247
- style.opacity = 0;
1248
- style.pointerEvents = "none";
1249
- }
1250
- if (isMinimized.value) {
1251
- switch (state.value.position) {
1252
- case "top":
1253
- case "right":
1254
- style.borderTopLeftRadius = "0";
1255
- style.borderTopRightRadius = "0";
1256
- break;
1257
- case "bottom":
1258
- case "left":
1259
- style.borderBottomLeftRadius = "0";
1260
- style.borderBottomRightRadius = "0";
1261
- break;
1262
- }
1263
- }
1264
- if (isDragging.value)
1265
- style.transition = "none !important";
1266
- return style;
1267
- });
1268
- const { width: frameWidth, height: frameHeight } = useElementBounding(frameBox);
1269
- const popupWindow = ref(null);
1270
- const iframeStyle = computed(() => {
1271
- mousePosition.x, mousePosition.y;
1272
- const halfHeight = (panelEl.value?.clientHeight || 0) / 2;
1273
- const frameMargin = {
1274
- left: panelMargins.left + halfHeight,
1275
- top: panelMargins.top + halfHeight,
1276
- right: panelMargins.right + halfHeight,
1277
- bottom: panelMargins.bottom + halfHeight
1278
- };
1279
- const marginHorizontal = frameMargin.left + frameMargin.right;
1280
- const marginVertical = frameMargin.top + frameMargin.bottom;
1281
- const maxWidth = windowSize.width - marginHorizontal;
1282
- const maxHeight = windowSize.height - marginVertical;
1283
- const style = {
1284
- position: "fixed",
1285
- zIndex: -1,
1286
- pointerEvents: isDragging.value || !state.value.open || props.client.inspector?.isEnabled.value ? "none" : "auto",
1287
- width: `min(${state.value.width}vw, calc(100vw - ${marginHorizontal}px))`,
1288
- height: `min(${state.value.height}vh, calc(100vh - ${marginVertical}px))`
1289
- };
1290
- const anchor = anchorPos.value;
1291
- const width = Math.min(maxWidth, state.value.width * windowSize.width / 100);
1292
- const height = Math.min(maxHeight, state.value.height * windowSize.height / 100);
1293
- const anchorX = anchor?.left || 0;
1294
- const anchorY = anchor?.top || 0;
1295
- switch (state.value.position) {
1296
- case "top":
1297
- case "bottom":
1298
- style.left = `${-frameWidth.value / 2}px`;
1299
- style.transform = "translate(0, 0)";
1300
- if (anchorX - frameMargin.left < width / 2)
1301
- style.left = `${width / 2 - anchorX + frameMargin.left - frameWidth.value / 2}px`;
1302
- else if (windowSize.width - anchorX - frameMargin.right < width / 2)
1303
- style.left = `${windowSize.width - anchorX - width / 2 - frameMargin.right - frameWidth.value / 2}px`;
1304
- break;
1305
- case "right":
1306
- case "left":
1307
- style.top = `${-frameHeight.value / 2}px`;
1308
- style.transform = "translate(0, 0)";
1309
- if (anchorY - frameMargin.top < height / 2)
1310
- style.top = `${height / 2 - anchorY + frameMargin.top - frameHeight.value / 2}px`;
1311
- else if (windowSize.height - anchorY - frameMargin.bottom < height / 2)
1312
- style.top = `${windowSize.height - anchorY - height / 2 - frameMargin.bottom - frameHeight.value / 2}px`;
1313
- break;
1314
- }
1315
- switch (state.value.position) {
1316
- case "top":
1317
- style.top = 0;
1318
- break;
1319
- case "right":
1320
- style.right = 0;
1321
- break;
1322
- case "left":
1323
- style.left = 0;
1324
- break;
1325
- case "bottom":
1326
- default:
1327
- style.bottom = 0;
1328
- break;
1329
- }
1330
- if (props.client.inspector?.isEnabled.value) {
1331
- style.opacity = 0;
1332
- }
1333
- return style;
1334
- });
1335
- const time = computed(() => {
1336
- let type = "";
1337
- const metric = props.client.metrics.loading();
1338
- let time2 = -1;
1339
- if (metric.pageEnd && metric.pageStart) {
1340
- time2 = metric.pageEnd - metric.pageStart;
1341
- type = "Page";
1342
- } else if (metric.appLoad && metric.appInit) {
1343
- time2 = metric.appLoad - metric.appInit;
1344
- type = "App";
1345
- }
1346
- bringUp();
1347
- if (time2 < 0)
1348
- return [type, "", "-"];
1349
- return [type, ...millisecondToHumanreadable(time2)];
1350
- });
1351
- function toggleInspector() {
1352
- const isDevToolsOpen = state.value.open;
1353
- if (!isDevToolsOpen)
1354
- props.client.devtools.open();
1355
- props.client.inspector?.enable();
1356
- if (!isDevToolsOpen) {
1357
- setTimeout(() => {
1358
- props.client.devtools.close();
1359
- }, 500);
1360
- }
1361
- }
1362
- onMounted(() => {
1363
- bringUp();
1364
- });
1365
- const __returned__ = { props, state, settings, millisecondToHumanreadable, panelMargins, safeArea, isSafari, toNumber, SNAP_THRESHOLD, vars, frameBox, panelEl, anchorEl, windowSize, isDragging, draggingOffset, mousePosition, onPointerDown, snapToPoints, clamp, isHovering, isVertical, anchorPos, get _timer() {
1366
- return _timer;
1367
- }, set _timer(v) {
1368
- _timer = v;
1369
- }, bringUp, isHidden, isMinimized, anchorStyle, panelStyle, frameWidth, frameHeight, popupWindow, iframeStyle, time, toggleInspector, FrameBox };
1370
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
1371
- return __returned__;
1372
- }
1373
- });
1374
-
1375
- const _hoisted_1$1 = {
1376
- viewBox: "0 0 324 324",
1377
- fill: "none",
1378
- xmlns: "http://www.w3.org/2000/svg",
1379
- style: {
1380
- "margin-top": "-1px",
1381
- "height": "1.2em",
1382
- "width": "1.2em"
1383
- }
1384
- };
1385
- const _hoisted_2$1 = ["title"];
1386
- const _hoisted_3$1 = { class: "nuxt-devtools-label-main" };
1387
- const _hoisted_4$1 = { class: "nuxt-devtools-label-secondary" };
1388
- function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
1389
- return openBlock(), createElementBlock(
1390
- "div",
1391
- {
1392
- id: "nuxt-devtools-anchor",
1393
- ref: "anchorEl",
1394
- style: normalizeStyle([$setup.anchorStyle, $setup.vars]),
1395
- class: normalizeClass({
1396
- "nuxt-devtools-vertical": $setup.isVertical,
1397
- "nuxt-devtools-hide": $setup.isMinimized
1398
- }),
1399
- onMousemove: $setup.bringUp
1400
- },
1401
- [
1402
- !$setup.isSafari ? (openBlock(), createElementBlock(
1403
- "div",
1404
- {
1405
- key: 0,
1406
- class: "nuxt-devtools-glowing",
1407
- style: normalizeStyle($setup.isDragging ? "opacity: 0.6 !important" : "")
1408
- },
1409
- null,
1410
- 4
1411
- /* STYLE */
1412
- )) : createCommentVNode("v-if", true),
1413
- createElementVNode(
1414
- "div",
1415
- {
1416
- ref: "panelEl",
1417
- class: "nuxt-devtools-panel",
1418
- style: normalizeStyle($setup.panelStyle),
1419
- onPointerdown: $setup.onPointerDown
1420
- },
1421
- [
1422
- createElementVNode(
1423
- "button",
1424
- {
1425
- class: "nuxt-devtools-icon-button nuxt-devtools-nuxt-button",
1426
- title: "Toggle Nuxt DevTools",
1427
- style: normalizeStyle($setup.state.open ? "" : "filter:saturate(0)"),
1428
- onClick: _cache[0] || (_cache[0] = ($event) => $props.client.devtools.toggle())
1429
- },
1430
- [(openBlock(), createElementBlock("svg", _hoisted_1$1, [..._cache[2] || (_cache[2] = [createElementVNode(
1431
- "path",
1432
- {
1433
- d: "M181.767 270H302.211C306.037 270 309.795 269.003 313.108 267.107C316.421 265.211 319.172 262.484 321.084 259.2C322.996 255.915 324.002 252.19 324 248.399C323.998 244.607 322.989 240.883 321.074 237.601L240.187 98.7439C238.275 95.4607 235.525 92.7342 232.213 90.8385C228.901 88.9429 225.143 87.9449 221.318 87.9449C217.494 87.9449 213.736 88.9429 210.424 90.8385C207.112 92.7342 204.361 95.4607 202.449 98.7439L181.767 134.272L141.329 64.7975C139.416 61.5145 136.664 58.7884 133.351 56.8931C130.038 54.9978 126.28 54 122.454 54C118.629 54 114.871 54.9978 111.558 56.8931C108.245 58.7884 105.493 61.5145 103.58 64.7975L2.92554 237.601C1.01067 240.883 0.00166657 244.607 2.06272e-06 248.399C-0.00166244 252.19 1.00407 255.915 2.91605 259.2C4.82803 262.484 7.57884 265.211 10.8918 267.107C14.2047 269.003 17.963 270 21.7886 270H97.3936C127.349 270 149.44 256.959 164.641 231.517L201.546 168.172L221.313 134.272L280.637 236.1H201.546L181.767 270ZM96.1611 236.065L43.3984 236.054L122.49 100.291L161.953 168.172L135.531 213.543C125.436 230.051 113.968 236.065 96.1611 236.065Z",
1434
- fill: "#00DC82"
1435
- },
1436
- null,
1437
- -1
1438
- /* CACHED */
1439
- )])]))],
1440
- 4
1441
- /* STYLE */
1442
- ),
1443
- _cache[5] || (_cache[5] = createElementVNode(
1444
- "div",
1445
- {
1446
- style: {
1447
- "border-left": "1px solid #8883",
1448
- "width": "1px",
1449
- "height": "10px"
1450
- },
1451
- class: "nuxt-devtools-panel-content"
1452
- },
1453
- null,
1454
- -1
1455
- /* CACHED */
1456
- )),
1457
- createElementVNode("div", {
1458
- class: "nuxt-devtools-panel-content nuxt-devtools-label",
1459
- title: `${$setup.time[0]} load time`
1460
- }, [createElementVNode(
1461
- "div",
1462
- _hoisted_3$1,
1463
- toDisplayString($setup.time[1]),
1464
- 1
1465
- /* TEXT */
1466
- ), createElementVNode(
1467
- "span",
1468
- _hoisted_4$1,
1469
- toDisplayString($setup.time[2]),
1470
- 1
1471
- /* TEXT */
1472
- )], 8, _hoisted_2$1),
1473
- $props.client.inspector?.isAvailable ? (openBlock(), createElementBlock(
1474
- Fragment,
1475
- { key: 0 },
1476
- [_cache[4] || (_cache[4] = createElementVNode(
1477
- "div",
1478
- {
1479
- style: {
1480
- "border-left": "1px solid #8883",
1481
- "width": "1px",
1482
- "height": "10px"
1483
- },
1484
- class: "nuxt-devtools-panel-content"
1485
- },
1486
- null,
1487
- -1
1488
- /* CACHED */
1489
- )), createElementVNode("button", {
1490
- class: "nuxt-devtools-icon-button nuxt-devtools-panel-content",
1491
- title: "Toggle Component Inspector",
1492
- onClick: withModifiers($setup.toggleInspector, ["prevent", "stop"])
1493
- }, [(openBlock(), createElementBlock(
1494
- "svg",
1495
- {
1496
- xmlns: "http://www.w3.org/2000/svg",
1497
- style: normalizeStyle([{
1498
- "height": "1.2em",
1499
- "width": "1.2em",
1500
- "opacity": "0.5"
1501
- }, $props.client.inspector.isEnabled.value ? "opacity:1;color:#00dc82" : ""]),
1502
- viewBox: "0 0 24 24"
1503
- },
1504
- [..._cache[3] || (_cache[3] = [createElementVNode(
1505
- "g",
1506
- {
1507
- fill: "none",
1508
- stroke: "currentColor",
1509
- "stroke-linecap": "round",
1510
- "stroke-linejoin": "round",
1511
- "stroke-width": "2"
1512
- },
1513
- [createElementVNode("circle", {
1514
- cx: "12",
1515
- cy: "12",
1516
- r: ".5",
1517
- fill: "currentColor"
1518
- }), createElementVNode("path", { d: "M5 12a7 7 0 1 0 14 0a7 7 0 1 0-14 0m7-9v2m-9 7h2m7 7v2m7-9h2" })],
1519
- -1
1520
- /* CACHED */
1521
- )])],
1522
- 4
1523
- /* STYLE */
1524
- ))])],
1525
- 64
1526
- /* STABLE_FRAGMENT */
1527
- )) : createCommentVNode("v-if", true)
1528
- ],
1529
- 36
1530
- /* STYLE, NEED_HYDRATION */
1531
- ),
1532
- createElementVNode(
1533
- "div",
1534
- {
1535
- ref: "frameBox",
1536
- style: normalizeStyle($setup.iframeStyle)
1537
- },
1538
- [createVNode($setup["FrameBox"], {
1539
- "popup-window": $setup.popupWindow,
1540
- "onUpdate:popupWindow": _cache[1] || (_cache[1] = ($event) => $setup.popupWindow = $event),
1541
- state: $setup.state,
1542
- client: $props.client,
1543
- "is-dragging": $setup.isDragging
1544
- }, null, 8, [
1545
- "popup-window",
1546
- "state",
1547
- "client",
1548
- "is-dragging"
1549
- ])],
1550
- 4
1551
- /* STYLE */
1552
- )
1553
- ],
1554
- 38
1555
- /* CLASS, STYLE, NEED_HYDRATION */
1556
- );
1557
- }
1558
- const Component$1 = /*#__PURE__*/ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__file", "/home/runner/work/devtools/devtools/packages/devtools/src/webcomponents/components/NuxtDevtoolsFrame.vue"]]);
1559
-
1560
- const NuxtDevtoolsFrame = defineCustomElement(
1561
- Component$1,
1562
- {
1563
- shadowRoot: true,
1564
- styles: [css]
1565
- }
1566
- );
1567
- customElements.define("nuxt-devtools-frame", NuxtDevtoolsFrame);
1568
384
 
1569
385
  const PANEL_WIDTH = 400;
1570
386
  const PANEL_HEIGHT = 300;
@@ -1742,6 +558,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1742
558
  }
1743
559
  });
1744
560
 
561
+ const _export_sfc = (sfc, props) => {
562
+ const target = sfc.__vccOpts || sfc;
563
+ for (const [key, val] of props) {
564
+ target[key] = val;
565
+ }
566
+ return target;
567
+ };
568
+
1745
569
  const _hoisted_1 = {
1746
570
  ref: "draggingEl",
1747
571
  class: "flex flex-col gap-2 of-hidden p2"
@@ -1918,4 +742,4 @@ const NuxtDevtoolsInspectPanel = defineCustomElement(
1918
742
  );
1919
743
  customElements.define("nuxt-devtools-inspect-panel", NuxtDevtoolsInspectPanel);
1920
744
 
1921
- export { NuxtDevtoolsFrame, NuxtDevtoolsInspectPanel };
745
+ export { NuxtDevtoolsInspectPanel };