@nuxt/devtools 3.2.3 → 4.0.0-alpha.1

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 (185) hide show
  1. package/README.md +3 -0
  2. package/dist/chunks/module-main.mjs +264 -140
  3. package/dist/chunks/timeline.mjs +0 -1
  4. package/dist/chunks/vscode.mjs +14 -41
  5. package/dist/chunks/vue-devtools.mjs +0 -1
  6. package/dist/client/200.html +1 -1
  7. package/dist/client/404.html +1 -1
  8. package/dist/client/_nuxt/__blank-cpzbm3dn.js +1 -0
  9. package/dist/client/_nuxt/analyze-build-e7v5vkef.js +1 -0
  10. package/dist/client/_nuxt/{assets-fjp0hrmh.js → assets-b5c187l4.js} +2 -2
  11. package/dist/client/_nuxt/builds/latest.json +1 -1
  12. package/dist/client/_nuxt/builds/meta/25fc8778-785e-4df1-8047-b131fc1cd4b2.json +1 -0
  13. package/dist/client/_nuxt/{client-lh91kcpv.js → client-im47u3kz.js} +1 -1
  14. package/dist/client/_nuxt/code-diff-idsu3m0z.js +8 -0
  15. package/dist/client/_nuxt/{code-snippets-ho13b87l.js → code-snippets-k81hoi4s.js} +1 -1
  16. package/dist/client/_nuxt/components-bmictfph.js +1 -0
  17. package/dist/client/_nuxt/composable-item-cza22cup.js +1 -0
  18. package/dist/client/_nuxt/composables-b2ccklz4.js +1 -0
  19. package/dist/client/_nuxt/constants-ih922r91.js +1 -0
  20. package/dist/client/_nuxt/copkoh3j.js +4 -0
  21. package/dist/client/_nuxt/custom-_name_-gqm5kr56.js +1 -0
  22. package/dist/client/_nuxt/{data-schema-button-ke4komn6.js → data-schema-button-b308wyi0.js} +1 -1
  23. package/dist/client/_nuxt/data-schema-drawer-lr34uwsh.js +2 -0
  24. package/dist/client/_nuxt/debug-kgc8fptp.js +1 -0
  25. package/dist/client/_nuxt/{default-bunv5fnq.js → default-jvhm51ri.js} +1 -1
  26. package/dist/client/_nuxt/dev-auth-ojiqold5.js +1 -0
  27. package/dist/client/_nuxt/{duration-display-20xlusue.js → duration-display-f7ucshmo.js} +1 -1
  28. package/dist/client/_nuxt/entry.css-me26coxn.css +1 -0
  29. package/dist/client/_nuxt/error-404-nggtc73s.js +1 -0
  30. package/dist/client/_nuxt/error-404.css-j1aav08u.css +1 -0
  31. package/dist/client/_nuxt/error-500-dym2gzqx.js +1 -0
  32. package/dist/client/_nuxt/error-500.css-eu9fz4va.css +1 -0
  33. package/dist/client/_nuxt/{error-isnb18yz.js → error-fqinfa1x.js} +2 -2
  34. package/dist/client/_nuxt/{filepath-item-fnp9jxof.js → filepath-item-e1s52fbh.js} +1 -1
  35. package/dist/client/_nuxt/full-et0weok9.js +1 -0
  36. package/dist/client/_nuxt/{help-fab-oc1qudll.js → help-fab-hz6r2oxa.js} +1 -1
  37. package/dist/client/_nuxt/hooks-i7nsduqp.js +1 -0
  38. package/dist/client/_nuxt/imports-9o2qs53q.js +1 -0
  39. package/dist/client/_nuxt/{launch-page-kf0w74wk.js → launch-page-hpkkqhit.js} +1 -1
  40. package/dist/client/_nuxt/mitt.es-fjx0h8xe.js +1 -0
  41. package/dist/client/_nuxt/modules-jok0opuq.js +1 -0
  42. package/dist/client/_nuxt/nbadge-m66xoquo.js +1 -0
  43. package/dist/client/_nuxt/{nbutton-oi1rfqiz.js → nbutton-gygn07c2.js} +1 -1
  44. package/dist/client/_nuxt/ncard-mqcl8pso.js +1 -0
  45. package/dist/client/_nuxt/ncheckbox-c0r45qtu.js +1 -0
  46. package/dist/client/_nuxt/{ncode-block-coc4sua0.js → ncode-block-figzf35k.js} +1 -1
  47. package/dist/client/_nuxt/ndrawer-bgqyrlmt.js +1 -0
  48. package/dist/client/_nuxt/ndropdown-cip8lboe.js +1 -0
  49. package/dist/client/_nuxt/{nicon-m5br9nvg.js → nicon-m1crov2l.js} +1 -1
  50. package/dist/client/_nuxt/{nicon-title-e35pdr21.js → nicon-title-tqdvw0w0.js} +1 -1
  51. package/dist/client/_nuxt/{nlink-dmk2d6qc.js → nlink-od4lllbl.js} +1 -1
  52. package/dist/client/_nuxt/{nmarkdown-nct1w6kn.js → nmarkdown-hw0hmqw7.js} +1 -1
  53. package/dist/client/_nuxt/{nnavbar-n3j7iul1.js → nnavbar-lpozm5fj.js} +1 -1
  54. package/dist/client/_nuxt/none-bdxkqeml.js +1 -0
  55. package/dist/client/_nuxt/npanel-grids-dd23ifsw.js +1 -0
  56. package/dist/client/_nuxt/nsection-block-lqrohs9v.js +1 -0
  57. package/dist/client/_nuxt/nselect-gczoit0g.js +1 -0
  58. package/dist/client/_nuxt/nselect-tabs-bsw5fg3d.js +1 -0
  59. package/dist/client/_nuxt/{nswitch-b36trghq.js → nswitch-ke379yjx.js} +1 -1
  60. package/dist/client/_nuxt/ntext-input-cygthohl.js +1 -0
  61. package/dist/client/_nuxt/ntip-ke63ovgc.js +1 -0
  62. package/dist/client/_nuxt/nuxt-link-bumooa9d.js +1 -0
  63. package/dist/client/_nuxt/nuxt-otp6bp04.js +1 -0
  64. package/dist/client/_nuxt/{open-graph-m7wd1sxi.js → open-graph-lumhcitx.js} +2 -2
  65. package/dist/client/_nuxt/overview-c1ufrox9.js +1 -0
  66. package/dist/client/_nuxt/pages-cf1hvns3.js +1 -0
  67. package/dist/client/_nuxt/pages-lgihsvbt.js +1 -0
  68. package/dist/client/_nuxt/payload-fvgw4hh9.js +1 -0
  69. package/dist/client/_nuxt/pinia-lmrgyjxw.js +1 -0
  70. package/dist/client/_nuxt/plugins-ccaip8nh.js +1 -0
  71. package/dist/client/_nuxt/ready-dadbdj5i.js +1 -0
  72. package/dist/client/_nuxt/render-tree-corj3giw.js +1 -0
  73. package/dist/client/_nuxt/rpc-ez4fzlum.js +1 -0
  74. package/dist/client/_nuxt/runtime-configs-im0uu24n.js +1 -0
  75. package/dist/client/_nuxt/server-discovery-ffkkczqi.js +1 -0
  76. package/dist/client/_nuxt/server-route-inputs-lspeoiem.js +1 -0
  77. package/dist/client/_nuxt/server-routes-dhvqrowz.js +7 -0
  78. package/dist/client/_nuxt/server-tasks-mr9ezn8q.js +1 -0
  79. package/dist/client/_nuxt/settings-issronwn.js +1 -0
  80. package/dist/client/_nuxt/{splitpanes.es-ceqv8417.js → splitpanes.es-bxyirks2.js} +1 -1
  81. package/dist/client/_nuxt/{stacktrace-list-m1sv2uvd.js → stacktrace-list-hiui24c3.js} +1 -1
  82. package/dist/client/_nuxt/state-components-fbls8ka7.js +1 -0
  83. package/dist/client/_nuxt/state-editor-c7e04uj2.js +1 -0
  84. package/dist/client/_nuxt/state-modules-inqbwd7z.js +1 -0
  85. package/dist/client/_nuxt/{state-routes-m6gv5n9v.js → state-routes-jln33b1m.js} +1 -1
  86. package/dist/client/_nuxt/state-tabs-etl5jr30.js +1 -0
  87. package/dist/client/_nuxt/storage-husj5pg6.js +1 -0
  88. package/dist/client/_nuxt/storage-options-cth3coln.js +1 -0
  89. package/dist/client/_nuxt/telemetry-eqv6a0hn.js +1 -0
  90. package/dist/client/_nuxt/terminals-kitd8oja.js +1 -0
  91. package/dist/client/_nuxt/timeline-gr4tcvcz.js +31 -0
  92. package/dist/client/_nuxt/unocss-runtime-cpug61u1.js +1 -0
  93. package/dist/client/_nuxt/utils-nbkl6byi.js +2 -0
  94. package/dist/client/_nuxt/vendor/{json-editor-vue-hkofgjf7.js → json-editor-vue-eojr4v24.js} +3 -3
  95. package/dist/client/_nuxt/vendor/{markdown-it-bcxn77q6.js → markdown-it-ckeo8pwp.js} +1 -1
  96. package/dist/client/_nuxt/vendor/{shiki-niqic03h.js → shiki-lqo1hg2n.js} +3 -3
  97. package/dist/client/_nuxt/vendor/{unocss-bj3ln324.js → unocss-k727ub0h.js} +1 -1
  98. package/dist/client/_nuxt/virtual-files-ky9cc4av.js +1 -0
  99. package/dist/client/_nuxt/vue-devtools-dunhx2nz.js +4 -0
  100. package/dist/client/_nuxt/{vue-router-dxks01bs.js → vue-router-jbnxw7nb.js} +1 -1
  101. package/dist/client/index.html +1 -1
  102. package/dist/dirs.d.mts +1 -2
  103. package/dist/dirs.mjs +1 -21
  104. package/dist/module.d.mts +1 -1
  105. package/dist/module.json +1 -1
  106. package/dist/module.mjs +1 -5
  107. package/dist/runtime/plugins/devtools.client.js +1 -1
  108. package/dist/runtime/plugins/view/client.js +22 -72
  109. package/dist/runtime/plugins/view/state.d.ts +0 -1
  110. package/dist/runtime/plugins/view/state.js +0 -2
  111. package/dist/shared/devtools.COlX0Gls.mjs +114 -0
  112. package/dist/shared/{devtools.C1a10l_c.d.mts → devtools.LsRDzDTD.d.mts} +0 -12
  113. package/dist/types.d.mts +1 -1
  114. package/dist/webcomponents/index.d.mts +1 -3
  115. package/dist/webcomponents/index.mjs +38 -1185
  116. package/package.json +24 -32
  117. package/cli.mjs +0 -2
  118. package/dist/client/_nuxt/__blank-gayjf0ih.js +0 -1
  119. package/dist/client/_nuxt/analyze-build-bnq2cil8.js +0 -1
  120. package/dist/client/_nuxt/builds/meta/f343c68e-9061-4942-a0df-50170dc001bd.json +0 -1
  121. package/dist/client/_nuxt/client-s5g5n0ac.js +0 -2
  122. package/dist/client/_nuxt/code-diff-cb7twqkt.js +0 -8
  123. package/dist/client/_nuxt/components-peth8amc.js +0 -1
  124. package/dist/client/_nuxt/composable-item-b09pj4ca.js +0 -1
  125. package/dist/client/_nuxt/composables-cwesk2q8.js +0 -1
  126. package/dist/client/_nuxt/constants-lof1c7kz.js +0 -1
  127. package/dist/client/_nuxt/custom-_name_-lfwzilnd.js +0 -1
  128. package/dist/client/_nuxt/data-schema-drawer-dqe6w00i.js +0 -2
  129. package/dist/client/_nuxt/debug-itzra6gt.js +0 -1
  130. package/dist/client/_nuxt/dev-auth-j4vxv6a1.js +0 -1
  131. package/dist/client/_nuxt/entry.css-ckq2wff8.css +0 -1
  132. package/dist/client/_nuxt/error-404-c73bftho.js +0 -1
  133. package/dist/client/_nuxt/error-404.css-pazrj6fo.css +0 -1
  134. package/dist/client/_nuxt/error-500-75llnfh8.js +0 -1
  135. package/dist/client/_nuxt/error-500.css-hlldh6hu.css +0 -1
  136. package/dist/client/_nuxt/full-h8pokapo.js +0 -1
  137. package/dist/client/_nuxt/head-c2jgvqd9.js +0 -1
  138. package/dist/client/_nuxt/hooks-i5p6cuw0.js +0 -1
  139. package/dist/client/_nuxt/imports-ia8eldh8.js +0 -1
  140. package/dist/client/_nuxt/l471sqq0.js +0 -4
  141. package/dist/client/_nuxt/modules-obwfskfp.js +0 -1
  142. package/dist/client/_nuxt/nbadge-hpznun17.js +0 -1
  143. package/dist/client/_nuxt/ncard-ech06vlh.js +0 -1
  144. package/dist/client/_nuxt/ncheckbox-k9nxqa1w.js +0 -1
  145. package/dist/client/_nuxt/ndrawer-ijwn9421.js +0 -1
  146. package/dist/client/_nuxt/ndropdown-moy416uy.js +0 -1
  147. package/dist/client/_nuxt/none-bs12srzp.js +0 -1
  148. package/dist/client/_nuxt/npanel-grids-bl37sfq7.js +0 -1
  149. package/dist/client/_nuxt/nsection-block-l0c6dpg8.js +0 -1
  150. package/dist/client/_nuxt/nselect-kgjpj17v.js +0 -1
  151. package/dist/client/_nuxt/nselect-tabs-if6er1us.js +0 -1
  152. package/dist/client/_nuxt/ntext-input-ngomk0u2.js +0 -1
  153. package/dist/client/_nuxt/nuxt-bfozs29x.js +0 -1
  154. package/dist/client/_nuxt/nuxt-link-mev16ngd.js +0 -1
  155. package/dist/client/_nuxt/overview-dbrpdvvy.js +0 -1
  156. package/dist/client/_nuxt/pages-gnfgydad.js +0 -1
  157. package/dist/client/_nuxt/pages-izgjpbm4.js +0 -1
  158. package/dist/client/_nuxt/payload-hc17espa.js +0 -1
  159. package/dist/client/_nuxt/pinia-ns87k5yi.js +0 -1
  160. package/dist/client/_nuxt/plugins-mswypwe4.js +0 -1
  161. package/dist/client/_nuxt/ready-szdlhgcr.js +0 -1
  162. package/dist/client/_nuxt/render-tree-hec27xi7.js +0 -1
  163. package/dist/client/_nuxt/runtime-configs-chx5ggf0.js +0 -1
  164. package/dist/client/_nuxt/server-discovery-cjcj8emm.js +0 -1
  165. package/dist/client/_nuxt/server-route-inputs-lqwnul2k.js +0 -1
  166. package/dist/client/_nuxt/server-routes-e0uqj8di.js +0 -7
  167. package/dist/client/_nuxt/server-tasks-izz5mcrk.js +0 -1
  168. package/dist/client/_nuxt/settings-dhxjcakv.js +0 -1
  169. package/dist/client/_nuxt/state-components-mnfvrbtw.js +0 -1
  170. package/dist/client/_nuxt/state-dkywakbf.js +0 -1
  171. package/dist/client/_nuxt/state-editor-epijodsw.js +0 -1
  172. package/dist/client/_nuxt/state-modules-ehax0fup.js +0 -1
  173. package/dist/client/_nuxt/state-tabs-mo8r9nzk.js +0 -1
  174. package/dist/client/_nuxt/storage-hdyfvofj.js +0 -1
  175. package/dist/client/_nuxt/storage-options-owy2vf04.js +0 -1
  176. package/dist/client/_nuxt/telemetry-bagjjni2.js +0 -1
  177. package/dist/client/_nuxt/terminals-hem69799.js +0 -1
  178. package/dist/client/_nuxt/timeline-luryae8h.js +0 -31
  179. package/dist/client/_nuxt/unocss-runtime-jcr8lucj.js +0 -1
  180. package/dist/client/_nuxt/virtual-files-o2l5arel.js +0 -1
  181. package/dist/client/_nuxt/vue-devtools-na2nb82m.js +0 -3
  182. package/dist/client/_nuxt/vue-virtual-scroller.esm-d0igfpwe.js +0 -2
  183. package/dist/shared/devtools.DuFZOCNN.mjs +0 -122
  184. /package/dist/client/_nuxt/{_plugin-vue_export-helper-dp8rxgcg.js → _plugin-vue_export-helper-n58akrbk.js} +0 -0
  185. /package/dist/client/_nuxt/vendor/{quicktype-core-f8dnflnv.js → quicktype-core-k4qx3809.js} +0 -0
@@ -1,117 +1,18 @@
1
- import { isRef, toRefs as toRefs$1, customRef, toValue, onMounted, nextTick, watch, getCurrentInstance, getCurrentScope, onScopeDispose, shallowRef, computed, ref, unref, defineComponent, useModel, watchEffect, mergeModels, withDirectives, openBlock, createElementBlock, createCommentVNode, createElementVNode, withModifiers, vShow, reactive, useTemplateRef, normalizeClass, normalizeStyle, toDisplayString, Fragment, createVNode, defineCustomElement, mergeProps, 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}`;
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
- }
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}`;
19
4
 
20
5
  //#endregion
21
6
  //#region utils/is.ts
22
7
  const isClient = typeof window !== "undefined" && typeof document !== "undefined";
23
8
  typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
24
- const notNullish = (val) => val != null;
25
9
  const toString = Object.prototype.toString;
26
10
  const isObject = (val) => toString.call(val) === "[object Object]";
27
11
  const noop = () => {};
28
-
29
- //#endregion
30
- //#region utils/filters.ts
31
- /**
32
- * @internal
33
- */
34
- function createFilterWrapper(filter, fn) {
35
- function wrapper(...args) {
36
- return new Promise((resolve, reject) => {
37
- Promise.resolve(filter(() => fn.apply(this, args), {
38
- fn,
39
- thisArg: this,
40
- args
41
- })).then(resolve).catch(reject);
42
- });
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
- const _clearTimeout = (timer$1) => {
54
- clearTimeout(timer$1);
55
- lastRejector();
56
- lastRejector = noop;
57
- };
58
- let lastInvoker;
59
- const filter = (invoke$1) => {
60
- const duration = toValue(ms);
61
- const maxDuration = toValue(options.maxWait);
62
- if (timer) _clearTimeout(timer);
63
- if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {
64
- if (maxTimer) {
65
- _clearTimeout(maxTimer);
66
- maxTimer = void 0;
67
- }
68
- return Promise.resolve(invoke$1());
69
- }
70
- return new Promise((resolve, reject) => {
71
- lastRejector = options.rejectOnCancel ? reject : resolve;
72
- lastInvoker = invoke$1;
73
- if (maxDuration && !maxTimer) maxTimer = setTimeout(() => {
74
- if (timer) _clearTimeout(timer);
75
- maxTimer = void 0;
76
- resolve(lastInvoker());
77
- }, maxDuration);
78
- timer = setTimeout(() => {
79
- if (maxTimer) _clearTimeout(maxTimer);
80
- maxTimer = void 0;
81
- resolve(invoke$1());
82
- }, duration);
83
- });
84
- };
85
- return filter;
86
- }
87
12
  function toArray(value) {
88
13
  return Array.isArray(value) ? value : [value];
89
14
  }
90
15
 
91
- //#endregion
92
- //#region utils/vue.ts
93
- function getLifeCycleTarget(target) {
94
- return getCurrentInstance();
95
- }
96
-
97
- //#endregion
98
- //#region useDebounceFn/index.ts
99
- /**
100
- * Debounce execution of a function.
101
- *
102
- * @see https://vueuse.org/useDebounceFn
103
- * @param fn A function to be executed after delay milliseconds debounced.
104
- * @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.
105
- * @param options Options
106
- *
107
- * @return A new, debounce, function.
108
- *
109
- * @__NO_SIDE_EFFECTS__
110
- */
111
- function useDebounceFn(fn, ms = 200, options = {}) {
112
- return createFilterWrapper(debounceFilter(ms, options), fn);
113
- }
114
-
115
16
  //#endregion
116
17
  //#region toRefs/index.ts
117
18
  /**
@@ -148,21 +49,6 @@ function toRefs(objectRef, options = {}) {
148
49
  return result;
149
50
  }
150
51
 
151
- //#endregion
152
- //#region tryOnMounted/index.ts
153
- /**
154
- * Call onMounted() if it's inside a component lifecycle, if not, just call the function
155
- *
156
- * @param fn
157
- * @param sync if set to false, it will run in the nextTick() of Vue
158
- * @param target
159
- */
160
- function tryOnMounted(fn, sync = true, target) {
161
- if (getLifeCycleTarget()) onMounted(fn, target);
162
- else if (sync) fn();
163
- else nextTick(fn);
164
- }
165
-
166
52
  //#endregion
167
53
  //#region watchImmediate/index.ts
168
54
  /**
@@ -306,125 +192,6 @@ function onClickOutside(target, handler, options = {}) {
306
192
  return stop;
307
193
  }
308
194
 
309
- //#endregion
310
- //#region useMounted/index.ts
311
- /**
312
- * Mounted state in ref.
313
- *
314
- * @see https://vueuse.org/useMounted
315
- *
316
- * @__NO_SIDE_EFFECTS__
317
- */
318
- function useMounted() {
319
- const isMounted = shallowRef(false);
320
- const instance = getCurrentInstance();
321
- if (instance) onMounted(() => {
322
- isMounted.value = true;
323
- }, instance);
324
- return isMounted;
325
- }
326
-
327
- //#endregion
328
- //#region useSupported/index.ts
329
- /* @__NO_SIDE_EFFECTS__ */
330
- function useSupported(callback) {
331
- const isMounted = useMounted();
332
- return computed(() => {
333
- isMounted.value;
334
- return Boolean(callback());
335
- });
336
- }
337
-
338
- //#endregion
339
- //#region useMutationObserver/index.ts
340
- /**
341
- * Watch for changes being made to the DOM tree.
342
- *
343
- * @see https://vueuse.org/useMutationObserver
344
- * @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver MutationObserver MDN
345
- * @param target
346
- * @param callback
347
- * @param options
348
- */
349
- function useMutationObserver(target, callback, options = {}) {
350
- const { window: window$1 = defaultWindow,...mutationOptions } = options;
351
- let observer;
352
- const isSupported = /* @__PURE__ */ useSupported(() => window$1 && "MutationObserver" in window$1);
353
- const cleanup = () => {
354
- if (observer) {
355
- observer.disconnect();
356
- observer = void 0;
357
- }
358
- };
359
- const stopWatch = watch(computed(() => {
360
- const items = toArray(toValue(target)).map(unrefElement).filter(notNullish);
361
- return new Set(items);
362
- }), (newTargets) => {
363
- cleanup();
364
- if (isSupported.value && newTargets.size) {
365
- observer = new MutationObserver(callback);
366
- newTargets.forEach((el) => observer.observe(el, mutationOptions));
367
- }
368
- }, {
369
- immediate: true,
370
- flush: "post"
371
- });
372
- const takeRecords = () => {
373
- return observer === null || observer === void 0 ? void 0 : observer.takeRecords();
374
- };
375
- const stop = () => {
376
- stopWatch();
377
- cleanup();
378
- };
379
- tryOnScopeDispose(stop);
380
- return {
381
- isSupported,
382
- stop,
383
- takeRecords
384
- };
385
- }
386
-
387
- //#endregion
388
- //#region useCssVar/index.ts
389
- /**
390
- * Manipulate CSS variables.
391
- *
392
- * @see https://vueuse.org/useCssVar
393
- * @param prop
394
- * @param target
395
- * @param options
396
- */
397
- function useCssVar(prop, target, options = {}) {
398
- const { window: window$1 = defaultWindow, initialValue, observe = false } = options;
399
- const variable = shallowRef(initialValue);
400
- const elRef = computed(() => {
401
- var _window$document;
402
- return unrefElement(target) || (window$1 === null || window$1 === void 0 || (_window$document = window$1.document) === null || _window$document === void 0 ? void 0 : _window$document.documentElement);
403
- });
404
- function updateCssVar() {
405
- const key = toValue(prop);
406
- const el = toValue(elRef);
407
- if (el && window$1 && key) {
408
- var _window$getComputedSt;
409
- variable.value = ((_window$getComputedSt = window$1.getComputedStyle(el).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim()) || variable.value || initialValue;
410
- }
411
- }
412
- if (observe) useMutationObserver(elRef, updateCssVar, {
413
- attributeFilter: ["style", "class"],
414
- window: window$1
415
- });
416
- watch([elRef, () => toValue(prop)], (_, old) => {
417
- if (old[0] && old[1]) old[0].style.removeProperty(old[1]);
418
- updateCssVar();
419
- }, { immediate: true });
420
- watch([variable, elRef], ([val, el]) => {
421
- const raw_prop = toValue(prop);
422
- if ((el === null || el === void 0 ? void 0 : el.style) && raw_prop) if (val == null) el.style.removeProperty(raw_prop);
423
- else el.style.setProperty(raw_prop, val);
424
- }, { immediate: true });
425
- return variable;
426
- }
427
-
428
195
  //#endregion
429
196
  //#region useDraggable/index.ts
430
197
  const defaultScrollConfig = {
@@ -618,930 +385,6 @@ function useDraggable(target, options = {}) {
618
385
  };
619
386
  }
620
387
 
621
- //#endregion
622
- //#region useResizeObserver/index.ts
623
- /**
624
- * Reports changes to the dimensions of an Element's content or the border-box
625
- *
626
- * @see https://vueuse.org/useResizeObserver
627
- * @param target
628
- * @param callback
629
- * @param options
630
- */
631
- function useResizeObserver(target, callback, options = {}) {
632
- const { window: window$1 = defaultWindow,...observerOptions } = options;
633
- let observer;
634
- const isSupported = /* @__PURE__ */ useSupported(() => window$1 && "ResizeObserver" in window$1);
635
- const cleanup = () => {
636
- if (observer) {
637
- observer.disconnect();
638
- observer = void 0;
639
- }
640
- };
641
- const stopWatch = watch(computed(() => {
642
- const _targets = toValue(target);
643
- return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];
644
- }), (els) => {
645
- cleanup();
646
- if (isSupported.value && window$1) {
647
- observer = new ResizeObserver(callback);
648
- for (const _el of els) if (_el) observer.observe(_el, observerOptions);
649
- }
650
- }, {
651
- immediate: true,
652
- flush: "post"
653
- });
654
- const stop = () => {
655
- cleanup();
656
- stopWatch();
657
- };
658
- tryOnScopeDispose(stop);
659
- return {
660
- isSupported,
661
- stop
662
- };
663
- }
664
-
665
- //#endregion
666
- //#region useElementBounding/index.ts
667
- /**
668
- * Reactive bounding box of an HTML element.
669
- *
670
- * @see https://vueuse.org/useElementBounding
671
- * @param target
672
- */
673
- function useElementBounding(target, options = {}) {
674
- const { reset = true, windowResize = true, windowScroll = true, immediate = true, updateTiming = "sync" } = options;
675
- const height = shallowRef(0);
676
- const bottom = shallowRef(0);
677
- const left = shallowRef(0);
678
- const right = shallowRef(0);
679
- const top = shallowRef(0);
680
- const width = shallowRef(0);
681
- const x = shallowRef(0);
682
- const y = shallowRef(0);
683
- function recalculate() {
684
- const el = unrefElement(target);
685
- if (!el) {
686
- if (reset) {
687
- height.value = 0;
688
- bottom.value = 0;
689
- left.value = 0;
690
- right.value = 0;
691
- top.value = 0;
692
- width.value = 0;
693
- x.value = 0;
694
- y.value = 0;
695
- }
696
- return;
697
- }
698
- const rect = el.getBoundingClientRect();
699
- height.value = rect.height;
700
- bottom.value = rect.bottom;
701
- left.value = rect.left;
702
- right.value = rect.right;
703
- top.value = rect.top;
704
- width.value = rect.width;
705
- x.value = rect.x;
706
- y.value = rect.y;
707
- }
708
- function update() {
709
- if (updateTiming === "sync") recalculate();
710
- else if (updateTiming === "next-frame") requestAnimationFrame(() => recalculate());
711
- }
712
- useResizeObserver(target, update);
713
- watch(() => unrefElement(target), (ele) => !ele && update());
714
- useMutationObserver(target, update, { attributeFilter: ["style", "class"] });
715
- if (windowScroll) useEventListener("scroll", update, {
716
- capture: true,
717
- passive: true
718
- });
719
- if (windowResize) useEventListener("resize", update, { passive: true });
720
- tryOnMounted(() => {
721
- if (immediate) update();
722
- });
723
- return {
724
- height,
725
- bottom,
726
- left,
727
- right,
728
- top,
729
- width,
730
- x,
731
- y,
732
- update
733
- };
734
- }
735
-
736
- //#endregion
737
- //#region useScreenSafeArea/index.ts
738
- const topVarName = "--vueuse-safe-area-top";
739
- const rightVarName = "--vueuse-safe-area-right";
740
- const bottomVarName = "--vueuse-safe-area-bottom";
741
- const leftVarName = "--vueuse-safe-area-left";
742
- /**
743
- * Reactive `env(safe-area-inset-*)`
744
- *
745
- * @see https://vueuse.org/useScreenSafeArea
746
- */
747
- function useScreenSafeArea() {
748
- const top = shallowRef("");
749
- const right = shallowRef("");
750
- const bottom = shallowRef("");
751
- const left = shallowRef("");
752
- if (isClient) {
753
- const topCssVar = useCssVar(topVarName);
754
- const rightCssVar = useCssVar(rightVarName);
755
- const bottomCssVar = useCssVar(bottomVarName);
756
- const leftCssVar = useCssVar(leftVarName);
757
- topCssVar.value = "env(safe-area-inset-top, 0px)";
758
- rightCssVar.value = "env(safe-area-inset-right, 0px)";
759
- bottomCssVar.value = "env(safe-area-inset-bottom, 0px)";
760
- leftCssVar.value = "env(safe-area-inset-left, 0px)";
761
- tryOnMounted(update);
762
- useEventListener("resize", useDebounceFn(update), { passive: true });
763
- }
764
- function update() {
765
- top.value = getValue(topVarName);
766
- right.value = getValue(rightVarName);
767
- bottom.value = getValue(bottomVarName);
768
- left.value = getValue(leftVarName);
769
- }
770
- return {
771
- top,
772
- right,
773
- bottom,
774
- left,
775
- update
776
- };
777
- }
778
- function getValue(position) {
779
- return getComputedStyle(document.documentElement).getPropertyValue(position);
780
- }
781
-
782
- const PANEL_MIN = 20;
783
- const PANEL_MAX = 100;
784
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
785
- __name: "NuxtDevtoolsFrameBox",
786
- props: /* @__PURE__ */ mergeModels({
787
- client: { type: Object, required: true },
788
- isDragging: { type: Boolean, required: true },
789
- state: { type: Object, required: true }
790
- }, {
791
- "popupWindow": { type: null },
792
- "popupWindowModifiers": {}
793
- }),
794
- emits: ["update:popupWindow"],
795
- setup(__props, { expose: __expose }) {
796
- __expose();
797
- const props = __props;
798
- const popupWindow = useModel(__props, "popupWindow");
799
- const {
800
- state
801
- } = toRefs(props);
802
- const container = ref();
803
- const isResizing = ref(false);
804
- watchEffect(() => {
805
- if (!container.value)
806
- return;
807
- if (state.value.open) {
808
- const iframe = props.client.getIframe();
809
- if (!iframe)
810
- return;
811
- iframe.style.pointerEvents = isResizing.value || props.isDragging || props.client.inspector?.isEnabled.value ? "none" : "auto";
812
- if (!popupWindow.value) {
813
- if ([...container.value.children].every((el) => el !== iframe))
814
- container.value.appendChild(iframe);
815
- }
816
- }
817
- });
818
- useEventListener(window, "keydown", (e) => {
819
- if (e.key === "Escape" && props.client.inspector?.isEnabled.value) {
820
- e.preventDefault();
821
- props.client.inspector?.disable();
822
- props.client.devtools.close();
823
- }
824
- });
825
- useEventListener(window, "mousedown", (e) => {
826
- if (!state.value.closeOnOutsideClick)
827
- return;
828
- if (popupWindow.value)
829
- return;
830
- if (!state.value.open || isResizing.value || props.client.inspector?.isEnabled.value)
831
- return;
832
- const matched = e.composedPath().find((_el) => {
833
- const el = _el;
834
- return [...el.classList || []].some((c) => c.startsWith("nuxt-devtools-")) || el.tagName?.toLowerCase() === "iframe";
835
- });
836
- if (!matched)
837
- state.value.open = false;
838
- });
839
- function handleResize(e) {
840
- if (!isResizing.value || !state.value.open)
841
- return;
842
- const iframe = props.client.getIframe();
843
- if (!iframe)
844
- return;
845
- const box = iframe.getBoundingClientRect();
846
- let widthPx, heightPx;
847
- if (isResizing.value.right) {
848
- widthPx = Math.abs(e instanceof MouseEvent ? e.clientX : (e.touches[0]?.clientX || 0) - (box?.left || 0));
849
- state.value.width = Math.min(PANEL_MAX, Math.max(PANEL_MIN, widthPx / window.innerWidth * 100));
850
- } else if (isResizing.value.left) {
851
- widthPx = Math.abs((box?.right || 0) - (e instanceof MouseEvent ? e.clientX : e.touches[0]?.clientX || 0));
852
- state.value.width = Math.min(PANEL_MAX, Math.max(PANEL_MIN, widthPx / window.innerWidth * 100));
853
- }
854
- if (isResizing.value.top) {
855
- heightPx = Math.abs((box?.bottom || 0) - (e instanceof MouseEvent ? e.clientY : e.touches[0]?.clientY || 0));
856
- state.value.height = Math.min(PANEL_MAX, Math.max(PANEL_MIN, heightPx / window.innerHeight * 100));
857
- } else if (isResizing.value.bottom) {
858
- heightPx = Math.abs(e instanceof MouseEvent ? e.clientY : (e.touches[0]?.clientY || 0) - (box?.top || 0));
859
- state.value.height = Math.min(PANEL_MAX, Math.max(PANEL_MIN, heightPx / window.innerHeight * 100));
860
- }
861
- }
862
- useEventListener(window, "mousemove", handleResize);
863
- useEventListener(window, "touchmove", handleResize);
864
- useEventListener(window, "mouseup", () => isResizing.value = false);
865
- useEventListener(window, "touchend", () => isResizing.value = false);
866
- useEventListener(window, "mouseleave", () => isResizing.value = false);
867
- const __returned__ = { props, PANEL_MIN, PANEL_MAX, popupWindow, state, container, isResizing, handleResize };
868
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
869
- return __returned__;
870
- }
871
- });
872
-
873
- const _export_sfc = (sfc, props) => {
874
- const target = sfc.__vccOpts || sfc;
875
- for (const [key, val] of props) {
876
- target[key] = val;
877
- }
878
- return target;
879
- };
880
-
881
- const _hoisted_1$2 = {
882
- ref: "container",
883
- class: "nuxt-devtools-frame"
884
- };
885
- function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
886
- return withDirectives((openBlock(), createElementBlock(
887
- "div",
888
- _hoisted_1$2,
889
- [
890
- createCommentVNode(" Handlers "),
891
- withDirectives(createElementVNode(
892
- "div",
893
- {
894
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-horizontal",
895
- style: { top: 0 },
896
- onMousedown: _cache[0] || (_cache[0] = withModifiers(($event) => $setup.isResizing = { top: true }, ["prevent"])),
897
- onTouchstartPassive: _cache[1] || (_cache[1] = () => $setup.isResizing = { top: true })
898
- },
899
- null,
900
- 544
901
- /* NEED_HYDRATION, NEED_PATCH */
902
- ), [[vShow, $setup.state.position !== "top"]]),
903
- withDirectives(createElementVNode(
904
- "div",
905
- {
906
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-horizontal",
907
- style: { bottom: 0 },
908
- onMousedown: _cache[2] || (_cache[2] = withModifiers(() => $setup.isResizing = { bottom: true }, ["prevent"])),
909
- onTouchstartPassive: _cache[3] || (_cache[3] = () => $setup.isResizing = { bottom: true })
910
- },
911
- null,
912
- 544
913
- /* NEED_HYDRATION, NEED_PATCH */
914
- ), [[vShow, $setup.state.position !== "bottom"]]),
915
- withDirectives(createElementVNode(
916
- "div",
917
- {
918
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-vertical",
919
- style: { left: 0 },
920
- onMousedown: _cache[4] || (_cache[4] = withModifiers(() => $setup.isResizing = { left: true }, ["prevent"])),
921
- onTouchstartPassive: _cache[5] || (_cache[5] = () => $setup.isResizing = { left: true })
922
- },
923
- null,
924
- 544
925
- /* NEED_HYDRATION, NEED_PATCH */
926
- ), [[vShow, $setup.state.position !== "left"]]),
927
- withDirectives(createElementVNode(
928
- "div",
929
- {
930
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-vertical",
931
- style: { right: 0 },
932
- onMousedown: _cache[6] || (_cache[6] = withModifiers(() => $setup.isResizing = { right: true }, ["prevent"])),
933
- onTouchstartPassive: _cache[7] || (_cache[7] = () => $setup.isResizing = { right: true })
934
- },
935
- null,
936
- 544
937
- /* NEED_HYDRATION, NEED_PATCH */
938
- ), [[vShow, $setup.state.position !== "right"]]),
939
- withDirectives(createElementVNode(
940
- "div",
941
- {
942
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-corner",
943
- style: {
944
- top: 0,
945
- left: 0,
946
- cursor: "nwse-resize"
947
- },
948
- onMousedown: _cache[8] || (_cache[8] = withModifiers(() => $setup.isResizing = {
949
- top: true,
950
- left: true
951
- }, ["prevent"])),
952
- onTouchstartPassive: _cache[9] || (_cache[9] = () => $setup.isResizing = {
953
- top: true,
954
- left: true
955
- })
956
- },
957
- null,
958
- 544
959
- /* NEED_HYDRATION, NEED_PATCH */
960
- ), [[vShow, $setup.state.position !== "top" && $setup.state.position !== "left"]]),
961
- withDirectives(createElementVNode(
962
- "div",
963
- {
964
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-corner",
965
- style: {
966
- top: 0,
967
- right: 0,
968
- cursor: "nesw-resize"
969
- },
970
- onMousedown: _cache[10] || (_cache[10] = withModifiers(() => $setup.isResizing = {
971
- top: true,
972
- right: true
973
- }, ["prevent"])),
974
- onTouchstartPassive: _cache[11] || (_cache[11] = () => $setup.isResizing = {
975
- top: true,
976
- right: true
977
- })
978
- },
979
- null,
980
- 544
981
- /* NEED_HYDRATION, NEED_PATCH */
982
- ), [[vShow, $setup.state.position !== "top" && $setup.state.position !== "right"]]),
983
- withDirectives(createElementVNode(
984
- "div",
985
- {
986
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-corner",
987
- style: {
988
- bottom: 0,
989
- left: 0,
990
- cursor: "nesw-resize"
991
- },
992
- onMousedown: _cache[12] || (_cache[12] = withModifiers(() => $setup.isResizing = {
993
- bottom: true,
994
- left: true
995
- }, ["prevent"])),
996
- onTouchstartPassive: _cache[13] || (_cache[13] = () => $setup.isResizing = {
997
- bottom: true,
998
- left: true
999
- })
1000
- },
1001
- null,
1002
- 544
1003
- /* NEED_HYDRATION, NEED_PATCH */
1004
- ), [[vShow, $setup.state.position !== "bottom" && $setup.state.position !== "left"]]),
1005
- withDirectives(createElementVNode(
1006
- "div",
1007
- {
1008
- class: "nuxt-devtools-resize-handle nuxt-devtools-resize-handle-corner",
1009
- style: {
1010
- bottom: 0,
1011
- right: 0,
1012
- cursor: "nwse-resize"
1013
- },
1014
- onMousedown: _cache[14] || (_cache[14] = withModifiers(() => $setup.isResizing = {
1015
- bottom: true,
1016
- right: true
1017
- }, ["prevent"])),
1018
- onTouchstartPassive: _cache[15] || (_cache[15] = () => $setup.isResizing = {
1019
- bottom: true,
1020
- right: true
1021
- })
1022
- },
1023
- null,
1024
- 544
1025
- /* NEED_HYDRATION, NEED_PATCH */
1026
- ), [[vShow, $setup.state.position !== "bottom" && $setup.state.position !== "right"]])
1027
- ],
1028
- 512
1029
- /* NEED_PATCH */
1030
- )), [[vShow, $setup.state.open && !$props.client.inspector?.isEnabled.value && !$setup.popupWindow]]);
1031
- }
1032
- 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"]]);
1033
-
1034
- const SNAP_THRESHOLD = 2;
1035
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1036
- __name: "NuxtDevtoolsFrame",
1037
- props: {
1038
- client: { type: Object, required: true },
1039
- settings: { type: Object, required: true },
1040
- state: { type: Object, required: true }
1041
- },
1042
- setup(__props, { expose: __expose }) {
1043
- __expose();
1044
- const props = __props;
1045
- const {
1046
- state,
1047
- settings
1048
- } = toRefs(props);
1049
- function millisecondToHumanreadable(ms) {
1050
- if (ms < 1e3)
1051
- return [+ms.toFixed(0), "ms"];
1052
- if (ms < 1e3 * 60)
1053
- return [+(ms / 1e3).toFixed(1), "s"];
1054
- if (ms < 1e3 * 60 * 60)
1055
- return [+(ms / 1e3 / 60).toFixed(1), "min"];
1056
- return [+(ms / 1e3 / 60 / 60).toFixed(1), "hour"];
1057
- }
1058
- const panelMargins = reactive({
1059
- left: 10,
1060
- top: 10,
1061
- right: 10,
1062
- bottom: 10
1063
- });
1064
- const safeArea = useScreenSafeArea();
1065
- const isSafari = navigator.userAgent.includes("Safari") && !navigator.userAgent.includes("Chrome");
1066
- function toNumber(value) {
1067
- const num = +value;
1068
- if (Number.isNaN(num))
1069
- return 0;
1070
- return num;
1071
- }
1072
- watchEffect(() => {
1073
- panelMargins.left = toNumber(safeArea.left.value) + 10;
1074
- panelMargins.top = toNumber(safeArea.top.value) + 10;
1075
- panelMargins.right = toNumber(safeArea.right.value) + 10;
1076
- panelMargins.bottom = toNumber(safeArea.bottom.value) + 10;
1077
- });
1078
- const vars = computed(() => {
1079
- const dark = props.client.app.colorMode.value === "dark";
1080
- return {
1081
- "--nuxt-devtools-widget-bg": dark ? "#111" : "#ffffff",
1082
- "--nuxt-devtools-widget-fg": dark ? "#F5F5F5" : "#111",
1083
- "--nuxt-devtools-widget-border": dark ? "#3336" : "#efefef",
1084
- "--nuxt-devtools-widget-shadow": dark ? "rgba(0,0,0,0.3)" : "rgba(128,128,128,0.1)"
1085
- };
1086
- });
1087
- const frameBox = useTemplateRef("frameBox");
1088
- const panelEl = useTemplateRef("panelEl");
1089
- const anchorEl = useTemplateRef("anchorEl");
1090
- const windowSize = reactive({
1091
- width: window.innerWidth,
1092
- height: window.innerHeight
1093
- });
1094
- const isDragging = ref(false);
1095
- const draggingOffset = reactive({ x: 0, y: 0 });
1096
- const mousePosition = reactive({ x: 0, y: 0 });
1097
- function onPointerDown(e) {
1098
- if (!panelEl.value)
1099
- return;
1100
- isDragging.value = true;
1101
- const { left, top, width, height } = panelEl.value.getBoundingClientRect();
1102
- draggingOffset.x = e.clientX - left - width / 2;
1103
- draggingOffset.y = e.clientY - top - height / 2;
1104
- }
1105
- onMounted(() => {
1106
- windowSize.width = window.innerWidth;
1107
- windowSize.height = window.innerHeight;
1108
- useEventListener(window, "resize", () => {
1109
- windowSize.width = window.innerWidth;
1110
- windowSize.height = window.innerHeight;
1111
- });
1112
- useEventListener(window, "pointermove", (e) => {
1113
- if (!isDragging.value)
1114
- return;
1115
- const centerX = window.innerWidth / 2;
1116
- const centerY = window.innerHeight / 2;
1117
- const x = e.clientX - draggingOffset.x;
1118
- const y = e.clientY - draggingOffset.y;
1119
- if (Number.isNaN(x) || Number.isNaN(y))
1120
- return;
1121
- mousePosition.x = x;
1122
- mousePosition.y = y;
1123
- const deg = Math.atan2(y - centerY, x - centerX);
1124
- const HORIZONTAL_MARGIN = 70;
1125
- const TL = Math.atan2(0 - centerY + HORIZONTAL_MARGIN, 0 - centerX);
1126
- const TR = Math.atan2(0 - centerY + HORIZONTAL_MARGIN, window.innerWidth - centerX);
1127
- const BL = Math.atan2(window.innerHeight - HORIZONTAL_MARGIN - centerY, 0 - centerX);
1128
- const BR = Math.atan2(window.innerHeight - HORIZONTAL_MARGIN - centerY, window.innerWidth - centerX);
1129
- state.value.position = deg >= TL && deg <= TR ? "top" : deg >= TR && deg <= BR ? "right" : deg >= BR && deg <= BL ? "bottom" : "left";
1130
- state.value.left = snapToPoints(x / window.innerWidth * 100);
1131
- state.value.top = snapToPoints(y / window.innerHeight * 100);
1132
- });
1133
- useEventListener(window, "pointerup", () => {
1134
- isDragging.value = false;
1135
- });
1136
- useEventListener(window, "pointerleave", () => {
1137
- isDragging.value = false;
1138
- });
1139
- });
1140
- function snapToPoints(value) {
1141
- if (value < 5)
1142
- return 0;
1143
- if (value > 95)
1144
- return 100;
1145
- if (Math.abs(value - 50) < SNAP_THRESHOLD)
1146
- return 50;
1147
- return value;
1148
- }
1149
- function clamp(value, min, max) {
1150
- return Math.min(Math.max(value, min), max);
1151
- }
1152
- const isHovering = ref(false);
1153
- const isVertical = computed(() => state.value.position === "left" || state.value.position === "right");
1154
- const anchorPos = computed(() => {
1155
- const halfWidth = (panelEl.value?.clientWidth || 0) / 2;
1156
- const halfHeight = (panelEl.value?.clientHeight || 0) / 2;
1157
- const left = state.value.left * windowSize.width / 100;
1158
- const top = state.value.top * windowSize.height / 100;
1159
- switch (state.value.position) {
1160
- case "top":
1161
- return {
1162
- left: clamp(left, halfWidth + panelMargins.left, windowSize.width - halfWidth - panelMargins.right),
1163
- top: panelMargins.top + halfHeight
1164
- };
1165
- case "right":
1166
- return {
1167
- left: windowSize.width - panelMargins.right - halfHeight,
1168
- top: clamp(top, halfWidth + panelMargins.top, windowSize.height - halfWidth - panelMargins.bottom)
1169
- };
1170
- case "left":
1171
- return {
1172
- left: panelMargins.left + halfHeight,
1173
- top: clamp(top, halfWidth + panelMargins.top, windowSize.height - halfWidth - panelMargins.bottom)
1174
- };
1175
- case "bottom":
1176
- default:
1177
- return {
1178
- left: clamp(left, halfWidth + panelMargins.left, windowSize.width - halfWidth - panelMargins.right),
1179
- top: windowSize.height - panelMargins.bottom - halfHeight
1180
- };
1181
- }
1182
- });
1183
- let _timer = null;
1184
- function bringUp() {
1185
- isHovering.value = true;
1186
- if (state.value.minimizePanelInactive < 0)
1187
- return;
1188
- if (_timer)
1189
- clearTimeout(_timer);
1190
- _timer = setTimeout(() => {
1191
- isHovering.value = false;
1192
- }, +state.value.minimizePanelInactive || 0);
1193
- }
1194
- const isHidden = computed(() => {
1195
- if (state.value.open)
1196
- return false;
1197
- if (settings.value.ui.showPanel === true)
1198
- return false;
1199
- if (settings.value.ui.showPanel === false)
1200
- return true;
1201
- return false;
1202
- });
1203
- const isMinimized = computed(() => {
1204
- if (state.value.minimizePanelInactive < 0)
1205
- return false;
1206
- if (state.value.minimizePanelInactive === 0)
1207
- return true;
1208
- const isTouchDevice = "ontouchstart" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;
1209
- return !isDragging.value && !state.value.open && !isHovering.value && !isTouchDevice && state.value.minimizePanelInactive;
1210
- });
1211
- const anchorStyle = computed(() => {
1212
- return {
1213
- left: `${anchorPos.value.left}px`,
1214
- top: `${anchorPos.value.top}px`,
1215
- pointerEvents: isHidden.value ? "none" : "auto"
1216
- };
1217
- });
1218
- const panelStyle = computed(() => {
1219
- const style = {
1220
- 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%"})`
1221
- };
1222
- if (isHidden.value) {
1223
- style.opacity = 0;
1224
- style.pointerEvents = "none";
1225
- }
1226
- if (isMinimized.value) {
1227
- switch (state.value.position) {
1228
- case "top":
1229
- case "right":
1230
- style.borderTopLeftRadius = "0";
1231
- style.borderTopRightRadius = "0";
1232
- break;
1233
- case "bottom":
1234
- case "left":
1235
- style.borderBottomLeftRadius = "0";
1236
- style.borderBottomRightRadius = "0";
1237
- break;
1238
- }
1239
- }
1240
- if (isDragging.value)
1241
- style.transition = "none !important";
1242
- return style;
1243
- });
1244
- const { width: frameWidth, height: frameHeight } = useElementBounding(frameBox);
1245
- const popupWindow = ref(null);
1246
- const iframeStyle = computed(() => {
1247
- mousePosition.x, mousePosition.y;
1248
- const halfHeight = (panelEl.value?.clientHeight || 0) / 2;
1249
- const frameMargin = {
1250
- left: panelMargins.left + halfHeight,
1251
- top: panelMargins.top + halfHeight,
1252
- right: panelMargins.right + halfHeight,
1253
- bottom: panelMargins.bottom + halfHeight
1254
- };
1255
- const marginHorizontal = frameMargin.left + frameMargin.right;
1256
- const marginVertical = frameMargin.top + frameMargin.bottom;
1257
- const maxWidth = windowSize.width - marginHorizontal;
1258
- const maxHeight = windowSize.height - marginVertical;
1259
- const style = {
1260
- position: "fixed",
1261
- zIndex: -1,
1262
- pointerEvents: isDragging.value || !state.value.open || props.client.inspector?.isEnabled.value ? "none" : "auto",
1263
- width: `min(${state.value.width}vw, calc(100vw - ${marginHorizontal}px))`,
1264
- height: `min(${state.value.height}vh, calc(100vh - ${marginVertical}px))`
1265
- };
1266
- const anchor = anchorPos.value;
1267
- const width = Math.min(maxWidth, state.value.width * windowSize.width / 100);
1268
- const height = Math.min(maxHeight, state.value.height * windowSize.height / 100);
1269
- const anchorX = anchor?.left || 0;
1270
- const anchorY = anchor?.top || 0;
1271
- switch (state.value.position) {
1272
- case "top":
1273
- case "bottom":
1274
- style.left = `${-frameWidth.value / 2}px`;
1275
- style.transform = "translate(0, 0)";
1276
- if (anchorX - frameMargin.left < width / 2)
1277
- style.left = `${width / 2 - anchorX + frameMargin.left - frameWidth.value / 2}px`;
1278
- else if (windowSize.width - anchorX - frameMargin.right < width / 2)
1279
- style.left = `${windowSize.width - anchorX - width / 2 - frameMargin.right - frameWidth.value / 2}px`;
1280
- break;
1281
- case "right":
1282
- case "left":
1283
- style.top = `${-frameHeight.value / 2}px`;
1284
- style.transform = "translate(0, 0)";
1285
- if (anchorY - frameMargin.top < height / 2)
1286
- style.top = `${height / 2 - anchorY + frameMargin.top - frameHeight.value / 2}px`;
1287
- else if (windowSize.height - anchorY - frameMargin.bottom < height / 2)
1288
- style.top = `${windowSize.height - anchorY - height / 2 - frameMargin.bottom - frameHeight.value / 2}px`;
1289
- break;
1290
- }
1291
- switch (state.value.position) {
1292
- case "top":
1293
- style.top = 0;
1294
- break;
1295
- case "right":
1296
- style.right = 0;
1297
- break;
1298
- case "left":
1299
- style.left = 0;
1300
- break;
1301
- case "bottom":
1302
- default:
1303
- style.bottom = 0;
1304
- break;
1305
- }
1306
- if (props.client.inspector?.isEnabled.value) {
1307
- style.opacity = 0;
1308
- }
1309
- return style;
1310
- });
1311
- const time = computed(() => {
1312
- let type = "";
1313
- const metric = props.client.metrics.loading();
1314
- let time2 = -1;
1315
- if (metric.pageEnd && metric.pageStart) {
1316
- time2 = metric.pageEnd - metric.pageStart;
1317
- type = "Page";
1318
- } else if (metric.appLoad && metric.appInit) {
1319
- time2 = metric.appLoad - metric.appInit;
1320
- type = "App";
1321
- }
1322
- bringUp();
1323
- if (time2 < 0)
1324
- return [type, "", "-"];
1325
- return [type, ...millisecondToHumanreadable(time2)];
1326
- });
1327
- function toggleInspector() {
1328
- const isDevToolsOpen = state.value.open;
1329
- if (!isDevToolsOpen)
1330
- props.client.devtools.open();
1331
- props.client.inspector?.enable();
1332
- if (!isDevToolsOpen) {
1333
- setTimeout(() => {
1334
- props.client.devtools.close();
1335
- }, 500);
1336
- }
1337
- }
1338
- onMounted(() => {
1339
- bringUp();
1340
- });
1341
- 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() {
1342
- return _timer;
1343
- }, set _timer(v) {
1344
- _timer = v;
1345
- }, bringUp, isHidden, isMinimized, anchorStyle, panelStyle, frameWidth, frameHeight, popupWindow, iframeStyle, time, toggleInspector, FrameBox };
1346
- Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
1347
- return __returned__;
1348
- }
1349
- });
1350
-
1351
- const _hoisted_1$1 = {
1352
- viewBox: "0 0 324 324",
1353
- fill: "none",
1354
- xmlns: "http://www.w3.org/2000/svg",
1355
- style: {
1356
- "margin-top": "-1px",
1357
- "height": "1.2em",
1358
- "width": "1.2em"
1359
- }
1360
- };
1361
- const _hoisted_2$1 = ["title"];
1362
- const _hoisted_3$1 = { class: "nuxt-devtools-label-main" };
1363
- const _hoisted_4$1 = { class: "nuxt-devtools-label-secondary" };
1364
- function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
1365
- return openBlock(), createElementBlock(
1366
- "div",
1367
- {
1368
- id: "nuxt-devtools-anchor",
1369
- ref: "anchorEl",
1370
- style: normalizeStyle([$setup.anchorStyle, $setup.vars]),
1371
- class: normalizeClass({
1372
- "nuxt-devtools-vertical": $setup.isVertical,
1373
- "nuxt-devtools-hide": $setup.isMinimized
1374
- }),
1375
- onMousemove: $setup.bringUp
1376
- },
1377
- [
1378
- !$setup.isSafari ? (openBlock(), createElementBlock(
1379
- "div",
1380
- {
1381
- key: 0,
1382
- class: "nuxt-devtools-glowing",
1383
- style: normalizeStyle($setup.isDragging ? "opacity: 0.6 !important" : "")
1384
- },
1385
- null,
1386
- 4
1387
- /* STYLE */
1388
- )) : createCommentVNode("v-if", true),
1389
- createElementVNode(
1390
- "div",
1391
- {
1392
- ref: "panelEl",
1393
- class: "nuxt-devtools-panel",
1394
- style: normalizeStyle($setup.panelStyle),
1395
- onPointerdown: $setup.onPointerDown
1396
- },
1397
- [
1398
- createElementVNode(
1399
- "button",
1400
- {
1401
- class: "nuxt-devtools-icon-button nuxt-devtools-nuxt-button",
1402
- title: "Toggle Nuxt DevTools",
1403
- style: normalizeStyle($setup.state.open ? "" : "filter:saturate(0)"),
1404
- onClick: _cache[0] || (_cache[0] = ($event) => $props.client.devtools.toggle())
1405
- },
1406
- [(openBlock(), createElementBlock("svg", _hoisted_1$1, [..._cache[2] || (_cache[2] = [createElementVNode(
1407
- "path",
1408
- {
1409
- 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",
1410
- fill: "#00DC82"
1411
- },
1412
- null,
1413
- -1
1414
- /* CACHED */
1415
- )])]))],
1416
- 4
1417
- /* STYLE */
1418
- ),
1419
- _cache[5] || (_cache[5] = createElementVNode(
1420
- "div",
1421
- {
1422
- style: {
1423
- "border-left": "1px solid #8883",
1424
- "width": "1px",
1425
- "height": "10px"
1426
- },
1427
- class: "nuxt-devtools-panel-content"
1428
- },
1429
- null,
1430
- -1
1431
- /* CACHED */
1432
- )),
1433
- createElementVNode("div", {
1434
- class: "nuxt-devtools-panel-content nuxt-devtools-label",
1435
- title: `${$setup.time[0]} load time`
1436
- }, [createElementVNode(
1437
- "div",
1438
- _hoisted_3$1,
1439
- toDisplayString($setup.time[1]),
1440
- 1
1441
- /* TEXT */
1442
- ), createElementVNode(
1443
- "span",
1444
- _hoisted_4$1,
1445
- toDisplayString($setup.time[2]),
1446
- 1
1447
- /* TEXT */
1448
- )], 8, _hoisted_2$1),
1449
- $props.client.inspector?.isAvailable ? (openBlock(), createElementBlock(
1450
- Fragment,
1451
- { key: 0 },
1452
- [_cache[4] || (_cache[4] = createElementVNode(
1453
- "div",
1454
- {
1455
- style: {
1456
- "border-left": "1px solid #8883",
1457
- "width": "1px",
1458
- "height": "10px"
1459
- },
1460
- class: "nuxt-devtools-panel-content"
1461
- },
1462
- null,
1463
- -1
1464
- /* CACHED */
1465
- )), createElementVNode("button", {
1466
- class: "nuxt-devtools-icon-button nuxt-devtools-panel-content",
1467
- title: "Toggle Component Inspector",
1468
- onClick: withModifiers($setup.toggleInspector, ["prevent", "stop"])
1469
- }, [(openBlock(), createElementBlock(
1470
- "svg",
1471
- {
1472
- xmlns: "http://www.w3.org/2000/svg",
1473
- style: normalizeStyle([{
1474
- "height": "1.2em",
1475
- "width": "1.2em",
1476
- "opacity": "0.5"
1477
- }, $props.client.inspector.isEnabled.value ? "opacity:1;color:#00dc82" : ""]),
1478
- viewBox: "0 0 24 24"
1479
- },
1480
- [..._cache[3] || (_cache[3] = [createElementVNode(
1481
- "g",
1482
- {
1483
- fill: "none",
1484
- stroke: "currentColor",
1485
- "stroke-linecap": "round",
1486
- "stroke-linejoin": "round",
1487
- "stroke-width": "2"
1488
- },
1489
- [createElementVNode("circle", {
1490
- cx: "12",
1491
- cy: "12",
1492
- r: ".5",
1493
- fill: "currentColor"
1494
- }), createElementVNode("path", { d: "M5 12a7 7 0 1 0 14 0a7 7 0 1 0-14 0m7-9v2m-9 7h2m7 7v2m7-9h2" })],
1495
- -1
1496
- /* CACHED */
1497
- )])],
1498
- 4
1499
- /* STYLE */
1500
- ))])],
1501
- 64
1502
- /* STABLE_FRAGMENT */
1503
- )) : createCommentVNode("v-if", true)
1504
- ],
1505
- 36
1506
- /* STYLE, NEED_HYDRATION */
1507
- ),
1508
- createElementVNode(
1509
- "div",
1510
- {
1511
- ref: "frameBox",
1512
- style: normalizeStyle($setup.iframeStyle)
1513
- },
1514
- [createVNode($setup["FrameBox"], {
1515
- "popup-window": $setup.popupWindow,
1516
- "onUpdate:popupWindow": _cache[1] || (_cache[1] = ($event) => $setup.popupWindow = $event),
1517
- state: $setup.state,
1518
- client: $props.client,
1519
- "is-dragging": $setup.isDragging
1520
- }, null, 8, [
1521
- "popup-window",
1522
- "state",
1523
- "client",
1524
- "is-dragging"
1525
- ])],
1526
- 4
1527
- /* STYLE */
1528
- )
1529
- ],
1530
- 38
1531
- /* CLASS, STYLE, NEED_HYDRATION */
1532
- );
1533
- }
1534
- 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"]]);
1535
-
1536
- const NuxtDevtoolsFrame = defineCustomElement(
1537
- Component$1,
1538
- {
1539
- shadowRoot: true,
1540
- styles: [css]
1541
- }
1542
- );
1543
- customElements.define("nuxt-devtools-frame", NuxtDevtoolsFrame);
1544
-
1545
388
  const PANEL_WIDTH = 400;
1546
389
  const PANEL_HEIGHT = 300;
1547
390
  const PANEL_MARGIN = 30;
@@ -1564,30 +407,32 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1564
407
  let toastTimer;
1565
408
  const initX = ref(0);
1566
409
  const initY = ref(0);
1567
- watch(
1568
- () => [__props.props.matched, __props.props.mouse],
1569
- ([matched, mouse]) => {
1570
- if (!matched || !mouse)
1571
- return;
1572
- initX.value = Math.max(PANEL_MARGIN, Math.min(mouse.x, window.innerWidth - PANEL_WIDTH - PANEL_MARGIN));
1573
- initY.value = Math.max(PANEL_MARGIN, Math.min(mouse.y, window.innerHeight - PANEL_HEIGHT - PANEL_MARGIN));
1574
- }
1575
- );
1576
410
  const el = useTemplateRef("el");
1577
411
  const draggingEl = useTemplateRef("draggingEl");
1578
- const { x, y, style, isDragging } = useDraggable(el, {
412
+ const { x, y, style: panelStyle, isDragging } = useDraggable(el, {
1579
413
  initialValue: {
1580
414
  x: initX.value,
1581
415
  y: initY.value
1582
416
  },
417
+ preventDefault: true,
418
+ stopPropagation: true,
1583
419
  handle: draggingEl
1584
420
  });
1585
- watch([initX, initY], () => {
1586
- if (!__props.props.matched)
1587
- return;
1588
- x.value = initX.value;
1589
- y.value = initY.value;
1590
- });
421
+ const rect = computed(() => __props.props.matched?.rect || __props.props.matched?.el?.getBoundingClientRect());
422
+ watch(
423
+ () => rect.value,
424
+ (rect2) => {
425
+ if (!rect2)
426
+ return;
427
+ const preferredX = rect2.left;
428
+ const preferredY = rect2.bottom + PANEL_MARGIN / 2;
429
+ const fitsBelow = preferredY + PANEL_HEIGHT + PANEL_MARGIN < window.innerHeight;
430
+ initX.value = Math.max(PANEL_MARGIN, Math.min(preferredX, window.innerWidth - PANEL_WIDTH - PANEL_MARGIN));
431
+ initY.value = fitsBelow ? Math.max(PANEL_MARGIN, preferredY) : Math.max(PANEL_MARGIN, rect2.top - PANEL_HEIGHT - PANEL_MARGIN / 2);
432
+ x.value = initX.value;
433
+ y.value = initY.value;
434
+ }
435
+ );
1591
436
  const hasMoved = computed(() => x.value !== initX.value || y.value !== initY.value);
1592
437
  onClickOutside(el, () => {
1593
438
  nextTick(() => {
@@ -1674,7 +519,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1674
519
  return components.join(" > ");
1675
520
  }
1676
521
  async function copyAgentInfo() {
1677
- if (!__props.props.matched)
522
+ if (!rect.value || !__props.props.matched)
1678
523
  return;
1679
524
  try {
1680
525
  const pageUrl = window.location.href;
@@ -1710,12 +555,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1710
555
  return toastTimer;
1711
556
  }, set toastTimer(v) {
1712
557
  toastTimer = v;
1713
- }, initX, initY, el, draggingEl, x, y, style, isDragging, hasMoved, close, selectParent, openInEditor, generateUniqueSelector, buildComponentTree, copyAgentInfo };
558
+ }, initX, initY, el, draggingEl, x, y, panelStyle, isDragging, rect, hasMoved, close, selectParent, openInEditor, generateUniqueSelector, buildComponentTree, copyAgentInfo };
1714
559
  Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
1715
560
  return __returned__;
1716
561
  }
1717
562
  });
1718
563
 
564
+ const _export_sfc = (sfc, props) => {
565
+ const target = sfc.__vccOpts || sfc;
566
+ for (const [key, val] of props) {
567
+ target[key] = val;
568
+ }
569
+ return target;
570
+ };
571
+
1719
572
  const _hoisted_1 = {
1720
573
  ref: "draggingEl",
1721
574
  class: "flex flex-col gap-2 of-hidden p2"
@@ -1736,14 +589,14 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
1736
589
  Fragment,
1737
590
  null,
1738
591
  [
1739
- $props.props.matched ? (openBlock(), createElementBlock(
592
+ $setup.rect && $props.props.matched ? (openBlock(), createElementBlock(
1740
593
  "div",
1741
- mergeProps({
594
+ {
1742
595
  key: 0,
1743
596
  ref: "el",
1744
- class: ["fixed relative z-9999999 w-400px flex flex-col of-hidden rounded-lg bg-glass text-sm color-base shadow-lg ring-1 ring-base backdrop-blur duration-200", [$setup.isDragging ? "transition-none" : "transition-opacity", $props.props.matched ? "op100" : "op0 pointer-events-none"]],
1745
- style: $setup.style
1746
- }, _ctx.$attrs),
597
+ class: normalizeClass(["fixed relative z-9999999 w-400px flex flex-col of-hidden rounded-lg bg-glass text-sm color-base shadow-lg ring-1 ring-base backdrop-blur duration-200", [$setup.isDragging ? "transition-none" : "transition-opacity", $props.props.matched ? "op100" : "op0 pointer-events-none"]]),
598
+ style: normalizeStyle($setup.panelStyle)
599
+ },
1747
600
  [createCommentVNode(" <div\n class=\"pointer-events-none absolute inset-0 z-10 transition-opacity duration-300\"\n >\n <div class=\"nuxt-devtools-inspect-running-border pointer-events-none absolute inset-0 z-10 border-1.5 border-transparent rounded-lg\" />\n </div> "), createElementVNode(
1748
601
  "div",
1749
602
  _hoisted_1,
@@ -1853,8 +706,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
1853
706
  512
1854
707
  /* NEED_PATCH */
1855
708
  )],
1856
- 16
1857
- /* FULL_PROPS */
709
+ 6
710
+ /* CLASS, STYLE */
1858
711
  )) : createCommentVNode("v-if", true),
1859
712
  createCommentVNode(" Toast notification "),
1860
713
  withDirectives(createElementVNode(
@@ -1892,4 +745,4 @@ const NuxtDevtoolsInspectPanel = defineCustomElement(
1892
745
  );
1893
746
  customElements.define("nuxt-devtools-inspect-panel", NuxtDevtoolsInspectPanel);
1894
747
 
1895
- export { NuxtDevtoolsFrame, NuxtDevtoolsInspectPanel };
748
+ export { NuxtDevtoolsInspectPanel };