vite-plugin-vue-devtools 0.3.2 → 0.4.2

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 (36) hide show
  1. package/dist/client/assets/{IframeView.vue_vue_type_script_setup_true_lang-73bb0458.js → IframeView.vue_vue_type_script_setup_true_lang-3efd85cd.js} +1 -1
  2. package/dist/client/assets/{StateFields.vue_vue_type_script_setup_true_lang-7733bfe8.js → StateFields.vue_vue_type_script_setup_true_lang-71b04a17.js} +4 -4
  3. package/dist/client/assets/{VIcon.vue_vue_type_script_setup_true_lang-844d8389.js → VIcon.vue_vue_type_script_setup_true_lang-bbd0395c.js} +1 -1
  4. package/dist/client/assets/{VIconButton.vue_vue_type_script_setup_true_lang-a2115df4.js → VIconButton.vue_vue_type_script_setup_true_lang-6f019c5b.js} +2 -2
  5. package/dist/client/assets/{VIconTitle.vue_vue_type_script_setup_true_lang-64110af4.js → VIconTitle.vue_vue_type_script_setup_true_lang-6c2f93bc.js} +1 -1
  6. package/dist/client/assets/{VPanelGrids-3a29966d.js → VPanelGrids-3d676ac1.js} +1 -1
  7. package/dist/client/assets/{VSectionBlock-b2b47991.js → VSectionBlock-ce3de44c.js} +3 -3
  8. package/dist/client/assets/{VTextInput.vue_vue_type_script_setup_true_lang-4ab475b0.js → VTextInput.vue_vue_type_script_setup_true_lang-387f21cb.js} +2 -2
  9. package/dist/client/assets/{__eyedropper-6c4f6cec.js → __eyedropper-e1877d6a.js} +2 -2
  10. package/dist/client/assets/{assets-c9b4a91c.js → assets-04d079f5.js} +8 -8
  11. package/dist/client/assets/{component-docs-f1e0f42d.js → component-docs-cb9ad5a2.js} +5 -5
  12. package/dist/client/assets/{components-8ce879b4.js → components-733e029a.js} +7 -7
  13. package/dist/client/assets/{documentations-8713b916.js → documentations-7d8323ed.js} +3 -3
  14. package/dist/client/assets/{graph-e31a8b10.js → graph-586e0cca.js} +2 -2
  15. package/dist/client/assets/{index-bfd864c8.js → index-5bdd8c01.js} +1 -1
  16. package/dist/client/assets/{index-5b7de771.css → index-99f31726.css} +1 -1
  17. package/dist/client/assets/{index-c8859523.js → index-fab050dd.js} +37 -49
  18. package/dist/client/assets/{inspect-0a6da43a.js → inspect-7b1f893a.js} +3 -3
  19. package/dist/client/assets/{npm-e3775c67.js → npm-068b3ea8.js} +6 -6
  20. package/dist/client/assets/{overview-d353d21c.js → overview-44a22030.js} +5 -5
  21. package/dist/client/assets/{pages-ce241043.js → pages-635198da.js} +5 -5
  22. package/dist/client/assets/{pinia-0dfabc87.js → pinia-f7635d5a.js} +6 -6
  23. package/dist/client/assets/{routes-2d8be0cc.js → routes-78f604b2.js} +7 -7
  24. package/dist/client/assets/{rpc-b60055dd.js → rpc-a4b59d16.js} +1 -1
  25. package/dist/client/assets/{settings-a79cec1c.js → settings-1082abbf.js} +3 -3
  26. package/dist/client/assets/{splitpanes.es-292c6c8e.js → splitpanes.es-8025e7b0.js} +1 -1
  27. package/dist/client/assets/{timeline-24b68a77.js → timeline-2dc5c96b.js} +7 -7
  28. package/dist/client/index.html +2 -2
  29. package/package.json +2 -1
  30. package/src/node/app.js +1 -1
  31. package/src/node/views/FrameBox.vue +212 -0
  32. package/src/node/views/Main.vue +382 -0
  33. package/src/node/views/composables.ts +402 -0
  34. package/src/node/views/utils.ts +204 -0
  35. package/dist/client/assets/__inspecting-27cecddb.js +0 -51
  36. package/src/node/Container.vue +0 -604
@@ -1,9 +1,9 @@
1
- import { _ as __unplugin_components_0$1 } from './VPanelGrids-3a29966d.js';
2
- import { a1 as ref, a2 as computed, aa as routes, v as defineComponent, r as resolveComponent, o as openBlock, c as createBlock, h as withCtx, x as createBaseVNode, u as createVNode, y as toDisplayString, z as unref, ab as vueVersion, P as createTextVNode, e as createElementBlock, F as Fragment, ac as __unplugin_components_0, a0 as __unplugin_components_1, T as _sfc_main$1 } from './index-c8859523.js';
3
- import { r as rpc } from './rpc-b60055dd.js';
4
- import { i as isMacOS } from './index-bfd864c8.js';
1
+ import { _ as __unplugin_components_0$1 } from './VPanelGrids-3d676ac1.js';
2
+ import { a1 as ref, a2 as computed, aa as routes, v as defineComponent, r as resolveComponent, o as openBlock, c as createBlock, h as withCtx, x as createBaseVNode, u as createVNode, y as toDisplayString, z as unref, ab as vueVersion, P as createTextVNode, e as createElementBlock, F as Fragment, ac as __unplugin_components_0, a0 as __unplugin_components_1, T as _sfc_main$1 } from './index-fab050dd.js';
3
+ import { r as rpc } from './rpc-a4b59d16.js';
4
+ import { i as isMacOS } from './index-5bdd8c01.js';
5
5
 
6
- const version = "0.3.2";
6
+ const version = "0.4.2";
7
7
 
8
8
  /* Injected with object hook! */
9
9
 
@@ -1,8 +1,8 @@
1
- import { _ as __unplugin_components_3 } from './VSectionBlock-b2b47991.js';
2
- import { v as defineComponent, a1 as ref, a2 as computed, r as resolveComponent, z as unref, o as openBlock, e as createElementBlock, x as createBaseVNode, y as toDisplayString, c as createBlock, h as withCtx, a7 as withModifiers, F as Fragment, i as renderList, g as createCommentVNode, u as createVNode, P as createTextVNode, q as normalizeClass, T as _sfc_main$4, a0 as __unplugin_components_1, a8 as onMounted, a9 as currentRoute, W as router, K as isRef, M as withKeys, aa as routes } from './index-c8859523.js';
3
- import { _ as _sfc_main$3 } from './VTextInput.vue_vue_type_script_setup_true_lang-4ab475b0.js';
4
- import './VIconTitle.vue_vue_type_script_setup_true_lang-64110af4.js';
5
- import './VIcon.vue_vue_type_script_setup_true_lang-844d8389.js';
1
+ import { _ as __unplugin_components_3 } from './VSectionBlock-ce3de44c.js';
2
+ import { v as defineComponent, a1 as ref, a2 as computed, r as resolveComponent, z as unref, o as openBlock, e as createElementBlock, x as createBaseVNode, y as toDisplayString, c as createBlock, h as withCtx, a7 as withModifiers, F as Fragment, i as renderList, g as createCommentVNode, u as createVNode, P as createTextVNode, q as normalizeClass, T as _sfc_main$4, a0 as __unplugin_components_1, a8 as onMounted, a9 as currentRoute, W as router, K as isRef, M as withKeys, aa as routes } from './index-fab050dd.js';
3
+ import { _ as _sfc_main$3 } from './VTextInput.vue_vue_type_script_setup_true_lang-387f21cb.js';
4
+ import './VIconTitle.vue_vue_type_script_setup_true_lang-6c2f93bc.js';
5
+ import './VIcon.vue_vue_type_script_setup_true_lang-bbd0395c.js';
6
6
 
7
7
  const _hoisted_1$2 = {
8
8
  block: "",
@@ -1,9 +1,9 @@
1
- import { _ as _sfc_main$1 } from './StateFields.vue_vue_type_script_setup_true_lang-7733bfe8.js';
2
- import { g, M } from './splitpanes.es-292c6c8e.js';
3
- import { v as defineComponent, a1 as ref, a2 as computed, a3 as piniaStoresCategory, a4 as toRaw, a5 as piniaState, a6 as piniaGetters, z as unref, o as openBlock, e as createElementBlock, u as createVNode, h as withCtx, x as createBaseVNode, F as Fragment, i as renderList, q as normalizeClass, y as toDisplayString, c as createBlock } from './index-c8859523.js';
4
- import { p as pick } from './index-bfd864c8.js';
5
- import './VIcon.vue_vue_type_script_setup_true_lang-844d8389.js';
6
- import './VIconButton.vue_vue_type_script_setup_true_lang-a2115df4.js';
1
+ import { _ as _sfc_main$1 } from './StateFields.vue_vue_type_script_setup_true_lang-71b04a17.js';
2
+ import { g, M } from './splitpanes.es-8025e7b0.js';
3
+ import { v as defineComponent, a1 as ref, a2 as computed, a3 as piniaStoresCategory, a4 as toRaw, a5 as piniaState, a6 as piniaGetters, z as unref, o as openBlock, e as createElementBlock, u as createVNode, h as withCtx, x as createBaseVNode, F as Fragment, i as renderList, q as normalizeClass, y as toDisplayString, c as createBlock } from './index-fab050dd.js';
4
+ import { p as pick } from './index-5bdd8c01.js';
5
+ import './VIcon.vue_vue_type_script_setup_true_lang-bbd0395c.js';
6
+ import './VIconButton.vue_vue_type_script_setup_true_lang-6f019c5b.js';
7
7
 
8
8
  const _hoisted_1 = {
9
9
  "h-screen": "",
@@ -1,10 +1,10 @@
1
- import { _ as __unplugin_components_0 } from './VPanelGrids-3a29966d.js';
2
- import { v as defineComponent, z as unref, W as router, o as openBlock, e as createElementBlock, u as createVNode, h as withCtx, x as createBaseVNode, F as Fragment, i as renderList, X as routeRecordMatcherState, Y as activeRouteRecordMatcherState, c as createBlock, V as _sfc_main$2, _ as __unplugin_components_7, q as normalizeClass, Z as activeRouteRecordIndex, $ as toggleRouteRecordMatcher, P as createTextVNode, y as toDisplayString, l as normalizeStyle, g as createCommentVNode, a0 as __unplugin_components_1 } from './index-c8859523.js';
3
- import { _ as _sfc_main$1 } from './StateFields.vue_vue_type_script_setup_true_lang-7733bfe8.js';
4
- import { g, M } from './splitpanes.es-292c6c8e.js';
5
- import './VIcon.vue_vue_type_script_setup_true_lang-844d8389.js';
6
- import './index-bfd864c8.js';
7
- import './VIconButton.vue_vue_type_script_setup_true_lang-a2115df4.js';
1
+ import { _ as __unplugin_components_0 } from './VPanelGrids-3d676ac1.js';
2
+ import { v as defineComponent, z as unref, W as router, o as openBlock, e as createElementBlock, u as createVNode, h as withCtx, x as createBaseVNode, F as Fragment, i as renderList, X as routeRecordMatcherState, Y as activeRouteRecordMatcherState, c as createBlock, V as _sfc_main$2, _ as __unplugin_components_7, q as normalizeClass, Z as activeRouteRecordIndex, $ as toggleRouteRecordMatcher, P as createTextVNode, y as toDisplayString, l as normalizeStyle, g as createCommentVNode, a0 as __unplugin_components_1 } from './index-fab050dd.js';
3
+ import { _ as _sfc_main$1 } from './StateFields.vue_vue_type_script_setup_true_lang-71b04a17.js';
4
+ import { g, M } from './splitpanes.es-8025e7b0.js';
5
+ import './VIcon.vue_vue_type_script_setup_true_lang-bbd0395c.js';
6
+ import './index-5bdd8c01.js';
7
+ import './VIconButton.vue_vue_type_script_setup_true_lang-6f019c5b.js';
8
8
 
9
9
  const _hoisted_1 = {
10
10
  key: 0,
@@ -1,4 +1,4 @@
1
- import { aI as __vitePreload, ae as hookApi } from './index-c8859523.js';
1
+ import { aI as __vitePreload, ae as hookApi } from './index-fab050dd.js';
2
2
 
3
3
  async function getViteClient(base = "/", warning = true) {
4
4
  try {
@@ -1,6 +1,6 @@
1
- import { _ as _sfc_main$3 } from './VIcon.vue_vue_type_script_setup_true_lang-844d8389.js';
2
- import { v as defineComponent, I as useVModel, o as openBlock, e as createElementBlock, f as renderSlot, d as withDirectives, J as vModelSelect, z as unref, x as createBaseVNode, y as toDisplayString, g as createCommentVNode, K as isRef, c as createBlock, L as vModelCheckbox, M as withKeys, N as useCategorizedTabs, u as createVNode, F as Fragment, i as renderList, O as isInPopup, h as withCtx, P as createTextVNode, Q as useDevToolsSettings, R as useFrameState, S as _sfc_main$5, T as _sfc_main$6, U as _sfc_main$7, q as normalizeClass, V as _sfc_main$8 } from './index-c8859523.js';
3
- import { _ as _sfc_main$4 } from './VIconTitle.vue_vue_type_script_setup_true_lang-64110af4.js';
1
+ import { _ as _sfc_main$3 } from './VIcon.vue_vue_type_script_setup_true_lang-bbd0395c.js';
2
+ import { v as defineComponent, I as useVModel, o as openBlock, e as createElementBlock, f as renderSlot, d as withDirectives, J as vModelSelect, z as unref, x as createBaseVNode, y as toDisplayString, g as createCommentVNode, K as isRef, c as createBlock, L as vModelCheckbox, M as withKeys, N as useCategorizedTabs, u as createVNode, F as Fragment, i as renderList, O as isInPopup, h as withCtx, P as createTextVNode, Q as useDevToolsSettings, R as useFrameState, S as _sfc_main$5, T as _sfc_main$6, U as _sfc_main$7, q as normalizeClass, V as _sfc_main$8 } from './index-fab050dd.js';
3
+ import { _ as _sfc_main$4 } from './VIconTitle.vue_vue_type_script_setup_true_lang-6c2f93bc.js';
4
4
 
5
5
  const _hoisted_1$2 = { class: "n-text-input flex flex items-center border n-border-base rounded px-2 py-1 focus-within:n-focus-base focus-within:border-context n-bg-base" };
6
6
  const _hoisted_2$2 = ["disabled"];
@@ -1,4 +1,4 @@
1
- import { ay as h, o as openBlock, e as createElementBlock, f as renderSlot, l as normalizeStyle } from './index-c8859523.js';
1
+ import { ay as h, o as openBlock, e as createElementBlock, f as renderSlot, l as normalizeStyle } from './index-fab050dd.js';
2
2
 
3
3
  const M = {
4
4
  name: "splitpanes",
@@ -1,11 +1,11 @@
1
- import { _ as _sfc_main$2 } from './StateFields.vue_vue_type_script_setup_true_lang-7733bfe8.js';
2
- import { _ as __unplugin_components_0 } from './VPanelGrids-3a29966d.js';
3
- import { p as pushScopeId, a as popScopeId, n as nextTick, o as openBlock, c as createBlock, w as withScopeId, m as markRaw, s as shallowReactive, r as resolveComponent, b as resolveDirective, d as withDirectives, e as createElementBlock, f as renderSlot, g as createCommentVNode, h as withCtx, F as Fragment, i as renderList, j as resolveDynamicComponent, k as mergeProps, t as toHandlers, l as normalizeStyle, q as normalizeClass, u as createVNode, v as defineComponent, x as createBaseVNode, y as toDisplayString, z as unref, _ as __unplugin_components_7, A as timelineLayer, B as activeTimelineEvents, C as activeTimelineEventIndex, D as toggleTimelineEventIndex, E as timelineEventDetails, G as activeLayerId, H as toggleTimelineLayer } from './index-c8859523.js';
1
+ import { _ as _sfc_main$2 } from './StateFields.vue_vue_type_script_setup_true_lang-71b04a17.js';
2
+ import { _ as __unplugin_components_0 } from './VPanelGrids-3d676ac1.js';
3
+ import { p as pushScopeId, a as popScopeId, n as nextTick, o as openBlock, c as createBlock, w as withScopeId, m as markRaw, s as shallowReactive, r as resolveComponent, b as resolveDirective, d as withDirectives, e as createElementBlock, f as renderSlot, g as createCommentVNode, h as withCtx, F as Fragment, i as renderList, j as resolveDynamicComponent, k as mergeProps, t as toHandlers, l as normalizeStyle, q as normalizeClass, u as createVNode, v as defineComponent, x as createBaseVNode, y as toDisplayString, z as unref, _ as __unplugin_components_7, A as timelineLayer, B as activeTimelineEvents, C as activeTimelineEventIndex, D as toggleTimelineEventIndex, E as timelineEventDetails, G as activeLayerId, H as toggleTimelineLayer } from './index-fab050dd.js';
4
4
  import { c as commonjsGlobal, g as getDefaultExportFromCjs } from './_commonjsHelpers-c0d8ada0.js';
5
- import { g, M } from './splitpanes.es-292c6c8e.js';
6
- import './VIcon.vue_vue_type_script_setup_true_lang-844d8389.js';
7
- import './index-bfd864c8.js';
8
- import './VIconButton.vue_vue_type_script_setup_true_lang-a2115df4.js';
5
+ import { g, M } from './splitpanes.es-8025e7b0.js';
6
+ import './VIcon.vue_vue_type_script_setup_true_lang-bbd0395c.js';
7
+ import './index-5bdd8c01.js';
8
+ import './VIconButton.vue_vue_type_script_setup_true_lang-6f019c5b.js';
9
9
 
10
10
  var dayjs_min = {exports: {}};/* Injected with object hook! */
11
11
 
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <link rel="icon" href="/favicon.svg" type="image/svg+xml">
7
7
  <title>Vue DevTools</title>
8
- <script type="module" crossorigin src="./assets/index-c8859523.js"></script>
9
- <link rel="stylesheet" href="./assets/index-5b7de771.css">
8
+ <script type="module" crossorigin src="./assets/index-fab050dd.js"></script>
9
+ <link rel="stylesheet" href="./assets/index-99f31726.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="app"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-vue-devtools",
3
- "version": "0.3.2",
3
+ "version": "0.4.2",
4
4
  "packageManager": "pnpm@8.4.0",
5
5
  "description": "A vite plugin for Vue Devtools",
6
6
  "author": "webfansplz",
@@ -32,6 +32,7 @@
32
32
  "types": "dist/index.d.ts",
33
33
  "files": [
34
34
  "dist",
35
+ "src/node/views/*",
35
36
  "src/node/app.js",
36
37
  "src/node/Container.vue",
37
38
  "*.d.ts"
package/src/node/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createApp, h } from 'vue'
2
- import App from 'virtual:vue-devtools-path:Container.vue'
2
+ import App from 'virtual:vue-devtools-path:views/Main.vue'
3
3
 
4
4
  const hook = window.__VUE_DEVTOOLS_GLOBAL_HOOK__ ??= {
5
5
  events: new Map(),
@@ -0,0 +1,212 @@
1
+ <script setup lang="ts">
2
+ import { ref, watchEffect } from 'vue'
3
+ import { PANEL_MAX, PANEL_MIN, popupWindow, state } from './composables'
4
+ import { useWindowEventListener } from './utils'
5
+
6
+ const props = defineProps<{
7
+ isDragging: boolean
8
+
9
+ client: {
10
+ close: () => void
11
+ getIFrame: () => HTMLIFrameElement
12
+ inspector: {
13
+ isEnabled: Ref<boolean>
14
+ disable: () => void
15
+ } | undefined
16
+ }
17
+
18
+ viewMode: 'default' | 'xs'
19
+ }>()
20
+
21
+ const container = ref<HTMLElement>()
22
+ const isResizing = ref<false | { top?: boolean; left?: boolean; right?: boolean; bottom?: boolean }>(false)
23
+
24
+ watchEffect(() => {
25
+ if (!container.value)
26
+ return
27
+ if (state.value.open) {
28
+ const iframe = props.client.getIFrame()
29
+ iframe.style.pointerEvents = (isResizing.value || props.isDragging) ? 'none' : 'auto'
30
+
31
+ if (!popupWindow.value) {
32
+ if (Array.from(container.value.children).every(el => el !== iframe))
33
+ container.value.appendChild(iframe)
34
+ }
35
+ }
36
+ })
37
+
38
+ useWindowEventListener('keydown', (e) => {
39
+ if (e.key === 'Escape' && props.client.inspector?.isEnabled.value) {
40
+ e.preventDefault()
41
+ props.client.inspector?.disable()
42
+ props.client.close()
43
+ }
44
+ })
45
+
46
+ useWindowEventListener('mousedown', (e: MouseEvent) => {
47
+ if (!state.value.closeOnOutsideClick)
48
+ return
49
+ if (popupWindow.value)
50
+ return
51
+ if (!state.value.open || isResizing.value || props.client.inspector?.isEnabled.value)
52
+ return
53
+
54
+ const matched = e.composedPath().find((_el) => {
55
+ const el = _el as HTMLElement
56
+ return Array.from(el.classList || []).some(c => c.startsWith('vue-devtools-'))
57
+ || el.tagName?.toLowerCase() === 'iframe'
58
+ })
59
+
60
+ if (!matched)
61
+ state.value.open = false
62
+ })
63
+
64
+ useWindowEventListener('mousemove', (e) => {
65
+ if (!isResizing.value)
66
+ return
67
+ if (!state.value.open)
68
+ return
69
+
70
+ const iframe = props.client.getIFrame()
71
+ const box = iframe.getBoundingClientRect()
72
+
73
+ if (isResizing.value.right) {
74
+ const widthPx = Math.abs(e.clientX - (box?.left || 0))
75
+ const width = widthPx / window.innerWidth * 100
76
+ state.value.width = Math.min(PANEL_MAX, Math.max(PANEL_MIN, width))
77
+ }
78
+ else if (isResizing.value.left) {
79
+ const widthPx = Math.abs((box?.right || 0) - e.clientX)
80
+ const width = widthPx / window.innerWidth * 100
81
+ state.value.width = Math.min(PANEL_MAX, Math.max(PANEL_MIN, width))
82
+ }
83
+
84
+ if (isResizing.value.top) {
85
+ const heightPx = Math.abs((box?.bottom || 0) - e.clientY)
86
+ const height = heightPx / window.innerHeight * 100
87
+ state.value.height = Math.min(PANEL_MAX, Math.max(PANEL_MIN, height))
88
+ }
89
+ else if (isResizing.value.bottom) {
90
+ const heightPx = Math.abs(e.clientY - (box?.top || 0))
91
+ const height = heightPx / window.innerHeight * 100
92
+ state.value.height = Math.min(PANEL_MAX, Math.max(PANEL_MIN, height))
93
+ }
94
+ })
95
+
96
+ useWindowEventListener('mouseup', () => {
97
+ isResizing.value = false
98
+ })
99
+
100
+ useWindowEventListener('mouseleave', () => {
101
+ isResizing.value = false
102
+ })
103
+ </script>
104
+
105
+ <template>
106
+ <div
107
+ v-show="state.open && !client.inspector?.isEnabled.value && !popupWindow"
108
+ ref="container"
109
+ class="vue-devtools-frame"
110
+ :class="{ 'view-mode-xs': props.viewMode === 'xs' }"
111
+ >
112
+ <!-- Handlers -->
113
+ <div
114
+ v-show="state.position !== 'top'"
115
+ class="vue-devtools-resize-handle vue-devtools-resize-handle-horizontal"
116
+ :style="{ top: 0 }"
117
+ @mousedown.prevent="() => isResizing = { top: true }"
118
+ />
119
+ <div
120
+ v-show="state.position !== 'bottom'"
121
+ class="vue-devtools-resize-handle vue-devtools-resize-handle-horizontal"
122
+ :style="{ bottom: 0 }"
123
+ @mousedown.prevent="() => isResizing = { bottom: true }"
124
+ />
125
+ <div
126
+ v-show="state.position !== 'left'"
127
+ class="vue-devtools-resize-handle vue-devtools-resize-handle-vertical"
128
+ :style="{ left: 0 }"
129
+ @mousedown.prevent="() => isResizing = { left: true }"
130
+ />
131
+ <div
132
+ v-show="state.position !== 'right'"
133
+ class="vue-devtools-resize-handle vue-devtools-resize-handle-vertical"
134
+ :style="{ right: 0 }"
135
+ @mousedown.prevent="() => isResizing = { right: true }"
136
+ />
137
+ <div
138
+ v-show="state.position !== 'top' && state.position !== 'left'"
139
+ class="vue-devtools-resize-handle vue-devtools-resize-handle-corner"
140
+ :style="{ top: 0, left: 0, cursor: 'nwse-resize' }"
141
+ @mousedown.prevent="() => isResizing = { top: true, left: true }"
142
+ />
143
+ <div
144
+ v-show="state.position !== 'top' && state.position !== 'right'"
145
+ class="vue-devtools-resize-handle vue-devtools-resize-handle-corner"
146
+ :style="{ top: 0, right: 0, cursor: 'nesw-resize' }"
147
+ @mousedown.prevent="() => isResizing = { top: true, right: true }"
148
+ />
149
+ <div
150
+ v-show="state.position !== 'bottom' && state.position !== 'left'"
151
+ class="vue-devtools-resize-handle vue-devtools-resize-handle-corner"
152
+ :style="{ bottom: 0, left: 0, cursor: 'nesw-resize' }"
153
+ @mousedown.prevent="() => isResizing = { bottom: true, left: true }"
154
+ />
155
+ <div
156
+ v-show="state.position !== 'bottom' && state.position !== 'right'"
157
+ class="vue-devtools-resize-handle vue-devtools-resize-handle-corner"
158
+ :style="{ bottom: 0, right: 0, cursor: 'nwse-resize' }"
159
+ @mousedown.prevent="() => isResizing = { bottom: true, right: true }"
160
+ />
161
+ </div>
162
+ </template>
163
+
164
+ <style scoped>
165
+ .vue-devtools-frame {
166
+ position: fixed;
167
+ z-index: 2147483645;
168
+ }
169
+
170
+ .vue-devtools-frame :deep(iframe) {
171
+ width: 100%;
172
+ height: 100%;
173
+ outline: none;
174
+ background: var(--vue-devtools-widget-bg);
175
+ border: 1px solid rgba(125,125,125,0.2);
176
+ border-radius: 10px;
177
+ }
178
+
179
+ .vue-devtools-resize-handle-horizontal {
180
+ position: absolute;
181
+ left: 6px;
182
+ right: 6px;
183
+ height: 10px;
184
+ margin: -5px 0;
185
+ cursor: ns-resize;
186
+ border-radius: 5px;
187
+ }
188
+ .vue-devtools-resize-handle-vertical {
189
+ position: absolute;
190
+ top: 6px;
191
+ bottom: 0;
192
+ width: 10px;
193
+ margin: 0 -5px;
194
+ cursor: ew-resize;
195
+ border-radius: 5px;
196
+ }
197
+ .vue-devtools-resize-handle-corner {
198
+ position: absolute;
199
+ width: 14px;
200
+ height: 14px;
201
+ margin: -6px;
202
+ border-radius: 6px;
203
+ }
204
+ .vue-devtools-resize-handle:hover {
205
+ background: rgba(125,125,125,0.1);
206
+ }
207
+
208
+ .vue-devtools-frame.view-mode-xs {
209
+ width: 400px !important;
210
+ height: 80px !important;
211
+ }
212
+ </style>