gitextract_85f6hf0f/ ├── .browserslistrc ├── .circleci/ │ └── config.yml ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ └── feature_request.yml │ ├── PULL_REQUEST_TEMPLATE.md │ ├── commit-convention.md │ └── workflows/ │ └── create-release.yml ├── .gitignore ├── .vscode/ │ └── settings.json ├── LICENSE ├── README.md ├── babel.config.js ├── cypress/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── fixtures/ │ │ └── example.json │ ├── integration/ │ │ ├── component-data-edit.js │ │ ├── components-tab.js │ │ ├── events-tab.js │ │ ├── vuex-edit.js │ │ └── vuex-tab.js │ ├── plugins/ │ │ └── index.js │ ├── support/ │ │ ├── commands.js │ │ └── index.js │ └── utils/ │ └── suite.js ├── cypress.json ├── eslint.config.js ├── extension-zips.js ├── lerna.json ├── package.json ├── packages/ │ ├── api/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── api/ │ │ │ │ ├── api.ts │ │ │ │ ├── app.ts │ │ │ │ ├── component.ts │ │ │ │ ├── context.ts │ │ │ │ ├── hooks.ts │ │ │ │ ├── index.ts │ │ │ │ └── util.ts │ │ │ ├── const.ts │ │ │ ├── env.ts │ │ │ ├── index.ts │ │ │ ├── plugin.ts │ │ │ ├── proxy.ts │ │ │ └── time.ts │ │ └── tsconfig.json │ ├── app-backend-api/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── api.ts │ │ │ ├── app-record.ts │ │ │ ├── backend-context.ts │ │ │ ├── backend.ts │ │ │ ├── global-hook.ts │ │ │ ├── hooks.ts │ │ │ ├── index.ts │ │ │ └── plugin.ts │ │ └── tsconfig.json │ ├── app-backend-core/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── app.ts │ │ │ ├── backend.ts │ │ │ ├── component-pick.ts │ │ │ ├── component.ts │ │ │ ├── flash.ts │ │ │ ├── global-hook.ts │ │ │ ├── highlighter.ts │ │ │ ├── hook.ts │ │ │ ├── index.ts │ │ │ ├── inspector.ts │ │ │ ├── legacy/ │ │ │ │ └── scan.ts │ │ │ ├── page-config.ts │ │ │ ├── perf.ts │ │ │ ├── plugin.ts │ │ │ ├── timeline-builtins.ts │ │ │ ├── timeline-marker.ts │ │ │ ├── timeline-screenshot.ts │ │ │ ├── timeline.ts │ │ │ ├── toast.ts │ │ │ └── util/ │ │ │ ├── queue.ts │ │ │ └── subscriptions.ts │ │ └── tsconfig.json │ ├── app-backend-vue1/ │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── app-backend-vue2/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── data.ts │ │ │ │ ├── el.ts │ │ │ │ ├── perf.ts │ │ │ │ ├── tree.ts │ │ │ │ ├── update-tracking.ts │ │ │ │ └── util.ts │ │ │ ├── events.ts │ │ │ ├── index.ts │ │ │ └── plugin.ts │ │ └── tsconfig.json │ ├── app-backend-vue3/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── data.ts │ │ │ │ ├── el.ts │ │ │ │ ├── filter.ts │ │ │ │ ├── tree.ts │ │ │ │ └── util.ts │ │ │ ├── index.ts │ │ │ └── util.ts │ │ └── tsconfig.json │ ├── app-frontend/ │ │ ├── package.json │ │ └── src/ │ │ ├── app.ts │ │ ├── assets/ │ │ │ ├── github-theme/ │ │ │ │ ├── dark.json │ │ │ │ └── light.json │ │ │ └── style/ │ │ │ ├── imports.styl │ │ │ ├── index.postcss │ │ │ ├── index.styl │ │ │ ├── transitions.styl │ │ │ └── variables.styl │ │ ├── features/ │ │ │ ├── App.vue │ │ │ ├── apps/ │ │ │ │ ├── AppSelect.vue │ │ │ │ ├── AppSelectItem.vue │ │ │ │ ├── AppSelectPane.vue │ │ │ │ ├── AppSelectPaneItem.vue │ │ │ │ ├── index.ts │ │ │ │ └── vue-version-check.ts │ │ │ ├── bridge/ │ │ │ │ └── index.ts │ │ │ ├── chrome/ │ │ │ │ ├── index.ts │ │ │ │ └── pane-visibility.ts │ │ │ ├── code/ │ │ │ │ └── CodeEditor.vue │ │ │ ├── components/ │ │ │ │ ├── ComponentTreeNode.vue │ │ │ │ ├── ComponentsInspector.vue │ │ │ │ ├── RenderCode.vue │ │ │ │ ├── SelectedComponentPane.vue │ │ │ │ └── composable/ │ │ │ │ ├── components.ts │ │ │ │ ├── highlight.ts │ │ │ │ ├── index.ts │ │ │ │ ├── pick.ts │ │ │ │ └── setup.ts │ │ │ ├── connection/ │ │ │ │ ├── AppConnecting.vue │ │ │ │ ├── AppDisconnected.vue │ │ │ │ └── index.ts │ │ │ ├── error/ │ │ │ │ ├── ErrorOverlay.vue │ │ │ │ └── index.ts │ │ │ ├── header/ │ │ │ │ ├── AppHeader.vue │ │ │ │ ├── AppHeaderSelect.vue │ │ │ │ ├── AppHistoryNav.vue │ │ │ │ ├── header.ts │ │ │ │ └── tabs.ts │ │ │ ├── inspector/ │ │ │ │ ├── DataField.vue │ │ │ │ ├── StateFields.vue │ │ │ │ ├── StateInspector.vue │ │ │ │ ├── StateType.vue │ │ │ │ └── custom/ │ │ │ │ ├── CustomInspector.vue │ │ │ │ ├── CustomInspectorNode.vue │ │ │ │ ├── CustomInspectorSelectedNodePane.vue │ │ │ │ └── composable.ts │ │ │ ├── layout/ │ │ │ │ ├── EmptyPane.vue │ │ │ │ ├── SplitPane.vue │ │ │ │ └── orientation.ts │ │ │ ├── plugin/ │ │ │ │ ├── PluginDetails.vue │ │ │ │ ├── PluginHome.vue │ │ │ │ ├── PluginListItem.vue │ │ │ │ ├── PluginPermission.vue │ │ │ │ ├── PluginSettings.vue │ │ │ │ ├── PluginSettingsItem.vue │ │ │ │ ├── PluginSourceDescription.vue │ │ │ │ ├── PluginSourceIcon.vue │ │ │ │ ├── Plugins.vue │ │ │ │ └── index.ts │ │ │ ├── settings/ │ │ │ │ ├── GlobalSettings.vue │ │ │ │ └── NewTag.vue │ │ │ ├── timeline/ │ │ │ │ ├── AskScreenshotPermission.vue │ │ │ │ ├── LayerItem.vue │ │ │ │ ├── Timeline.vue │ │ │ │ ├── TimelineEventInspector.vue │ │ │ │ ├── TimelineEventList.vue │ │ │ │ ├── TimelineEventListItem.vue │ │ │ │ ├── TimelineScrollbar.vue │ │ │ │ ├── TimelineView.vue │ │ │ │ └── composable/ │ │ │ │ ├── events.ts │ │ │ │ ├── index.ts │ │ │ │ ├── layers.ts │ │ │ │ ├── markers.ts │ │ │ │ ├── reset.ts │ │ │ │ ├── screenshot.ts │ │ │ │ ├── setup.ts │ │ │ │ ├── store.ts │ │ │ │ └── time.ts │ │ │ ├── ui/ │ │ │ │ ├── components/ │ │ │ │ │ ├── VueButton.vue │ │ │ │ │ ├── VueDisable.vue │ │ │ │ │ ├── VueDropdown.vue │ │ │ │ │ ├── VueDropdownButton.vue │ │ │ │ │ ├── VueFormField.vue │ │ │ │ │ ├── VueGroup.vue │ │ │ │ │ ├── VueGroupButton.vue │ │ │ │ │ ├── VueIcon.vue │ │ │ │ │ ├── VueInput.vue │ │ │ │ │ ├── VueLoadingBar.vue │ │ │ │ │ ├── VueLoadingIndicator.vue │ │ │ │ │ ├── VueModal.vue │ │ │ │ │ ├── VueSelect.vue │ │ │ │ │ ├── VueSelectButton.vue │ │ │ │ │ ├── VueSwitch.vue │ │ │ │ │ └── icons.ts │ │ │ │ ├── composables/ │ │ │ │ │ ├── useDisableScroll.ts │ │ │ │ │ └── useDisabled.ts │ │ │ │ └── index.ts │ │ │ └── welcome/ │ │ │ └── WelcomeSlideshow.vue │ │ ├── index.ts │ │ ├── locales/ │ │ │ └── en.js │ │ ├── mixins/ │ │ │ ├── data-field-edit.js │ │ │ ├── entry-list.ts │ │ │ └── keyboard.ts │ │ ├── plugins/ │ │ │ ├── global-refs.ts │ │ │ ├── i18n.ts │ │ │ ├── index.ts │ │ │ └── responsive.ts │ │ ├── router.ts │ │ ├── shims-global.d.ts │ │ ├── shims-vue.d.ts │ │ ├── types/ │ │ │ └── vue.d.ts │ │ └── util/ │ │ ├── color.ts │ │ ├── defer.ts │ │ ├── fonts.ts │ │ ├── format/ │ │ │ ├── index.ts │ │ │ ├── time.ts │ │ │ └── value.ts │ │ ├── keyboard.ts │ │ ├── queue.ts │ │ ├── reactivity.ts │ │ ├── shared-data.ts │ │ ├── theme.ts │ │ └── time.ts │ ├── build-tools/ │ │ ├── package.json │ │ └── src/ │ │ ├── createConfig.js │ │ └── index.js │ ├── docs/ │ │ ├── package.json │ │ ├── postcss.config.js │ │ ├── src/ │ │ │ ├── .vitepress/ │ │ │ │ ├── .gitignore │ │ │ │ ├── config.js │ │ │ │ └── theme/ │ │ │ │ ├── custom.css │ │ │ │ └── index.js │ │ │ ├── assets/ │ │ │ │ └── vue-devtools-architecture.drawio │ │ │ ├── components/ │ │ │ │ ├── InstallButton.vue │ │ │ │ └── InstallButtons.vue │ │ │ ├── devtools-vue3.md │ │ │ ├── guide/ │ │ │ │ ├── contributing.md │ │ │ │ ├── custom-vue2-app-scan-selector.md │ │ │ │ ├── devtools-perf.md │ │ │ │ ├── faq.md │ │ │ │ ├── installation.md │ │ │ │ └── open-in-editor.md │ │ │ ├── index.md │ │ │ ├── plugin/ │ │ │ │ ├── api-reference.md │ │ │ │ └── plugins-guide.md │ │ │ └── release.md │ │ └── tailwind.config.cjs │ ├── shared-utils/ │ │ ├── package.json │ │ ├── src/ │ │ │ ├── backend.ts │ │ │ ├── bridge.ts │ │ │ ├── consts.ts │ │ │ ├── edit.ts │ │ │ ├── env.ts │ │ │ ├── index.ts │ │ │ ├── plugin-permissions.ts │ │ │ ├── plugin-settings.ts │ │ │ ├── raf.ts │ │ │ ├── shared-data.ts │ │ │ ├── shell.ts │ │ │ ├── storage.ts │ │ │ ├── throttle.ts │ │ │ ├── transfer.ts │ │ │ └── util.ts │ │ └── tsconfig.json │ ├── shell-chrome/ │ │ ├── devtools-background.html │ │ ├── devtools.html │ │ ├── manifest.json │ │ ├── package.json │ │ ├── popups/ │ │ │ ├── disabled.html │ │ │ ├── disabled.nuxt.html │ │ │ ├── enabled.html │ │ │ ├── enabled.nuxt.html │ │ │ ├── not-found.html │ │ │ └── popup.css │ │ ├── src/ │ │ │ ├── backend.js │ │ │ ├── detector-exec.js │ │ │ ├── detector.js │ │ │ ├── devtools-background.js │ │ │ ├── devtools.js │ │ │ ├── hook-exec.js │ │ │ ├── hook.js │ │ │ ├── proxy.js │ │ │ └── service-worker.js │ │ └── webpack.config.js │ ├── shell-dev-vue2/ │ │ ├── package.json │ │ ├── public/ │ │ │ ├── target-electron.html │ │ │ ├── target-iframe.html │ │ │ └── target.html │ │ ├── src/ │ │ │ ├── Child.vue │ │ │ ├── Counter.vue │ │ │ ├── EventChild.vue │ │ │ ├── EventChild1.vue │ │ │ ├── EventChildCond.vue │ │ │ ├── Events.vue │ │ │ ├── Functional.vue │ │ │ ├── Hidden.vue │ │ │ ├── Init.vue │ │ │ ├── MyClass.js │ │ │ ├── NativeTypes.vue │ │ │ ├── NoProp.vue │ │ │ ├── Other.vue │ │ │ ├── RefTester.vue │ │ │ ├── Target.vue │ │ │ ├── TransitionExample.vue │ │ │ ├── VuexObject.vue │ │ │ ├── dynamic-module.js │ │ │ ├── iframe-app.js │ │ │ ├── index.js │ │ │ ├── router/ │ │ │ │ ├── ChildRoute.vue │ │ │ │ ├── NamedRoute.vue │ │ │ │ ├── ParentRoute.vue │ │ │ │ ├── RouteOne.vue │ │ │ │ ├── RouteTwo.vue │ │ │ │ ├── RouteWithAlias.vue │ │ │ │ ├── RouteWithBeforeEnter.vue │ │ │ │ ├── RouteWithParams.vue │ │ │ │ ├── RouteWithProps.vue │ │ │ │ ├── RouteWithQuery.vue │ │ │ │ └── Router.vue │ │ │ ├── router.js │ │ │ └── store.js │ │ └── webpack.config.js │ ├── shell-dev-vue3/ │ │ ├── package.json │ │ ├── public/ │ │ │ ├── target-iframe.html │ │ │ └── target.html │ │ ├── src/ │ │ │ ├── Animation.vue │ │ │ ├── App.vue │ │ │ ├── App3.vue │ │ │ ├── AsyncComponent.vue │ │ │ ├── AsyncSetup.vue │ │ │ ├── Child.vue │ │ │ ├── Condition.vue │ │ │ ├── DomOrder.vue │ │ │ ├── EventEmit.vue │ │ │ ├── EventNesting.vue │ │ │ ├── Form.vue │ │ │ ├── FormSection.vue │ │ │ ├── Functional.vue │ │ │ ├── Ghost.vue │ │ │ ├── Heavy.vue │ │ │ ├── Hello.vue │ │ │ ├── IframeApp.vue │ │ │ ├── IndexComponent/ │ │ │ │ └── index.vue │ │ │ ├── Mixins.vue │ │ │ ├── NativeTypes.vue │ │ │ ├── Nested.vue │ │ │ ├── NestedMore.vue │ │ │ ├── Other.vue │ │ │ ├── Provide.vue │ │ │ ├── SetupDataLike.vue │ │ │ ├── SetupRender.js │ │ │ ├── SetupScript.vue │ │ │ ├── SetupTSScriptProps.vue │ │ │ ├── SuspenseExample.vue │ │ │ ├── VModelExample.vue │ │ │ ├── devtools-plugin/ │ │ │ │ ├── index.js │ │ │ │ └── simple.js │ │ │ ├── iframe-app.js │ │ │ ├── main.js │ │ │ ├── router/ │ │ │ │ ├── Page1.vue │ │ │ │ └── Page2.vue │ │ │ └── store.js │ │ └── webpack.config.js │ ├── shell-electron/ │ │ ├── README.md │ │ ├── app.html │ │ ├── app.js │ │ ├── bin.js │ │ ├── index.js │ │ ├── package.json │ │ ├── server.js │ │ ├── src/ │ │ │ ├── backend.js │ │ │ ├── devtools.js │ │ │ └── hook.js │ │ ├── types/ │ │ │ └── index.d.ts │ │ ├── webpack.config.js │ │ └── webpack.node.config.js │ ├── shell-firefox/ │ │ ├── .gitignore │ │ ├── copy.sh │ │ ├── manifest.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── backend.js │ │ │ ├── background.js │ │ │ ├── detector.js │ │ │ ├── devtools-background.js │ │ │ ├── devtools.js │ │ │ ├── hook.js │ │ │ └── proxy.js │ │ └── webpack.config.js │ └── shell-host/ │ ├── package.json │ ├── public/ │ │ └── index.html │ ├── src/ │ │ ├── DevIframe.vue │ │ ├── backend.js │ │ ├── devtools.js │ │ └── hook.js │ └── webpack.config.js ├── postcss.config.js ├── release.js ├── sign-firefox.js ├── tailwind.config.js ├── tsconfig.json └── vue1-test.html