@vitejs/devtools 0.0.0-alpha.32 → 0.0.0-alpha.34

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 (35) hide show
  1. package/dist/{DockIcon-DC06YRV1.js → DockIcon-LqhTiyo7.js} +11 -14
  2. package/dist/DockStandalone-D15T7P8h.js +82 -0
  3. package/dist/FloatingElements-DiZY-fXn.js +988 -0
  4. package/dist/{ViewBuiltinLogs-BpU8wNYx.js → ViewBuiltinLogs-DAC3EpNy.js} +3 -5
  5. package/dist/{ViewBuiltinTerminals-1w0Jz6t0.js → ViewBuiltinTerminals-CaCzY10v.js} +5 -11
  6. package/dist/cli-commands-B8AbW52w.js +178 -0
  7. package/dist/cli-commands.js +3 -67
  8. package/dist/cli.js +3 -5
  9. package/dist/client/inject.js +40 -19
  10. package/dist/client/standalone/assets/DockStandalone-Be2ebLC6.js +8 -0
  11. package/dist/client/standalone/assets/ViewBuiltinLogs-gqCacjSC.js +1 -0
  12. package/dist/client/standalone/assets/{ViewBuiltinTerminals-BfkQ4Bsj.js → ViewBuiltinTerminals-EMrVQ_he.js} +2 -2
  13. package/dist/client/standalone/assets/_plugin-vue_export-helper-DdUndd8v.js +1 -0
  14. package/dist/client/standalone/assets/index-CkMgpkZF.css +1 -0
  15. package/dist/client/standalone/assets/index-xigFHEkA.js +4 -0
  16. package/dist/client/standalone/index.html +3 -2
  17. package/dist/client/webcomponents.d.ts +20329 -145
  18. package/dist/client/webcomponents.js +79 -985
  19. package/dist/config.js +2 -8
  20. package/dist/dirs.js +1 -3
  21. package/dist/{dist-B1eLoAag.js → dist-CnHQWaMb.js} +11 -50
  22. package/dist/{export-helper-DjM8b2QE.js → export-helper-DOmNQzh6.js} +1 -2
  23. package/dist/index.d.ts +5 -5
  24. package/dist/index.js +2 -3
  25. package/dist/plugins-tIIgS7bh.js +1911 -0
  26. package/dist/popup-CqYAUdYG.js +366 -0
  27. package/dist/utils--qjmgani.js +6 -0
  28. package/dist/{vue.runtime.esm-bundler-CHmRsJSH.js → vue.runtime.esm-bundler-Bou7Nbd4.js} +135 -115
  29. package/package.json +34 -16
  30. package/dist/client/standalone/assets/ViewBuiltinLogs-D_1j1vpl.js +0 -1
  31. package/dist/client/standalone/assets/index-DWcF5wcd.js +0 -2
  32. package/dist/client/standalone/assets/index-DzhHPm4X.css +0 -1
  33. package/dist/docks-BVWse3rL.js +0 -131
  34. package/dist/plugins-CM-4geJK.js +0 -3040
  35. package/dist/standalone-CfUW6ZhV.js +0 -34
@@ -1,173 +1,11 @@
1
- import { A as withCtx, C as onUnmounted, D as useTemplateRef, E as renderSlot, G as normalizeStyle, I as reactive, K as toDisplayString, O as watch, P as markRaw, R as ref, S as onMounted, T as renderList, U as unref, V as toRefs, W as normalizeClass, a as Fragment, c as createBaseVNode, d as createElementBlock, f as createStaticVNode, g as defineComponent, h as defineAsyncComponent, i as withModifiers, j as withDirectives, k as watchEffect, l as createBlock, m as createVNode, n as vShow, o as Suspense, p as createTextVNode, r as withKeys, s as computed, t as defineCustomElement, u as createCommentVNode, v as h, w as openBlock, x as nextTick, z as shallowRef } from "../vue.runtime.esm-bundler-CHmRsJSH.js";
2
- import { a as useScreenSafeArea, c as watchDebounced, n as useElementBounding, o as useWindowSize, r as useEventListener, s as useDebounceFn, t as onClickOutside } from "../dist-B1eLoAag.js";
3
- import { a as docksGroupByCategories, c as BUILTIN_ENTRY_CLIENT_AUTH_NOTICE, i as useDocksEntries, n as createDockEntryState, o as docksSplitGroupsWithCapacity, r as sharedStateToRef, t as DEFAULT_DOCK_PANEL_STORE } from "../docks-BVWse3rL.js";
4
- import { n as VitePlusCore_default, t as _sfc_main$18 } from "../DockIcon-DC06YRV1.js";
5
- import { t as export_helper_default } from "../export-helper-DjM8b2QE.js";
6
- import { DEFAULT_STATE_USER_SETTINGS } from "@vitejs/devtools-kit/constants";
7
-
8
- //#region src/client/webcomponents/.generated/css.ts
9
- var css_default = "*{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}.xterm{cursor:text;user-select:none;position:relative}.xterm.focus{outline:none}.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-message{z-index:10;color:transparent;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.xterm .xterm-accessibility:not(.debug){z-index:10;color:transparent;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:transparent}.xterm .xterm-accessibility-tree{user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:underline double}.xterm-underline-3{text-decoration:underline wavy}.xterm-underline-4{text-decoration:underline dotted}.xterm-underline-5{text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}:root{--un-text-opacity:100%}#vite-devtools-anchor{z-index:2147483644;box-sizing:border-box;transform-origin:50%;width:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:15px;position:fixed;transform:translate(-50%,-50%)rotate(0)}#vite-devtools-anchor #vite-devtools-dock-container{width:max-content;min-width:100px;height:40px;display:flex;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}#vite-devtools-anchor.vite-devtools-vertical #vite-devtools-dock-container{transition-property:all;transition-duration:.5s;transition-timing-function:cubic-bezier(.4,0,.2,1);transform:translate(-50%,-50%)rotate(90deg)}#vite-devtools-anchor #vite-devtools-dock{touch-action:none;user-select:none;--vdt-backdrop-blur:blur(7px);height:40px;backdrop-filter:var(--vdt-backdrop-blur) var(--vdt-backdrop-brightness) var(--vdt-backdrop-contrast) var(--vdt-backdrop-grayscale) var(--vdt-backdrop-hue-rotate) var(--vdt-backdrop-invert) var(--vdt-backdrop-opacity) var(--vdt-backdrop-saturate) var(--vdt-backdrop-sepia);--vdt-text-opacity:1;color:rgba(51,51,51,var(--vdt-text-opacity));--vdt-shadow:var(--vdt-shadow-inset) 0 1px 3px 0 var(--vdt-shadow-color,rgba(0,0,0,.1)),var(--vdt-shadow-inset) 0 1px 2px -1px var(--vdt-shadow-color,rgba(0,0,0,.1));box-shadow:var(--vdt-ring-offset-shadow), var(--vdt-ring-shadow), var(--vdt-shadow);width:calc-size(max-content, size);background-color:rgba(255,255,255,.5);-webkit-border-radius:9999px;border-radius:9999px;margin:auto;transition-property:all;transition-duration:.5s;transition-timing-function:cubic-bezier(.4,0,.2,1)}@media (prefers-color-scheme:dark){#vite-devtools-anchor #vite-devtools-dock{--vdt-text-opacity:1;color:rgba(255,255,255,var(--vdt-text-opacity));background-color:rgba(17,17,17,.5)}}#vite-devtools-anchor.vite-devtools-minimized #vite-devtools-dock{width:22px;height:22px;padding:2px 0}#vite-devtools-anchor.vite-devtools-minimized .vite-devtools-dock-bracket{opacity:.5;width:.375rem}#vite-devtools-anchor:hover #vite-devtools-glowing{opacity:.6}#vite-devtools-anchor #vite-devtools-glowing{pointer-events:none;z-index:-1;opacity:0;--vdt-blur:blur(60px);width:160px;height:160px;filter:var(--vdt-blur) var(--vdt-brightness) var(--vdt-contrast) var(--vdt-drop-shadow) var(--vdt-grayscale) var(--vdt-hue-rotate) var(--vdt-invert) var(--vdt-saturate) var(--vdt-sepia);background-image:linear-gradient(45deg,#61d9ff,#7a23a1,#715ebd);-webkit-border-radius:9999px;border-radius:9999px;transition-property:all;transition-duration:1s;transition-timing-function:cubic-bezier(0,0,.2,1);position:absolute;top:0;left:0;transform:translate(-50%,-50%)}@media print{#vite-devtools-anchor{display:none}}.vite-devtools-resize-handle-horizontal{cursor:ns-resize;-webkit-border-radius:.375rem;border-radius:.375rem;height:10px;margin-top:-5px;margin-bottom:-5px;position:absolute;left:6px;right:6px}.vite-devtools-resize-handle-vertical{cursor:ew-resize;-webkit-border-radius:.375rem;border-radius:.375rem;width:10px;margin-left:-5px;margin-right:-5px;position:absolute;top:6px;bottom:0}.vite-devtools-resize-handle-corner{-webkit-border-radius:.375rem;border-radius:.375rem;width:14px;height:14px;margin:-6px;position:absolute}.vite-devtools-resize-handle{z-index:30}.vite-devtools-resize-handle:hover{background-color:rgba(156,163,175,.1)}*{--vdt-rotate:0;--vdt-rotate-x:0;--vdt-rotate-y:0;--vdt-rotate-z:0;--vdt-scale-x:1;--vdt-scale-y:1;--vdt-scale-z:1;--vdt-skew-x:0;--vdt-skew-y:0;--vdt-translate-x:0;--vdt-translate-y:0;--vdt-translate-z:0;--vdt-pan-x: ;--vdt-pan-y: ;--vdt-pinch-zoom: ;--vdt-scroll-snap-strictness:proximity;--vdt-ordinal: ;--vdt-slashed-zero: ;--vdt-numeric-figure: ;--vdt-numeric-spacing: ;--vdt-numeric-fraction: ;--vdt-border-spacing-x:0;--vdt-border-spacing-y:0;--vdt-ring-offset-shadow:0 0 transparent;--vdt-ring-shadow:0 0 transparent;--vdt-shadow-inset: ;--vdt-shadow:0 0 transparent;--vdt-ring-inset: ;--vdt-ring-offset-width:0px;--vdt-ring-offset-color:#fff;--vdt-ring-width:0px;--vdt-ring-color:rgba(147,197,253,.5);--vdt-blur: ;--vdt-brightness: ;--vdt-contrast: ;--vdt-drop-shadow: ;--vdt-grayscale: ;--vdt-hue-rotate: ;--vdt-invert: ;--vdt-saturate: ;--vdt-sepia: ;--vdt-backdrop-blur: ;--vdt-backdrop-brightness: ;--vdt-backdrop-contrast: ;--vdt-backdrop-grayscale: ;--vdt-backdrop-hue-rotate: ;--vdt-backdrop-invert: ;--vdt-backdrop-opacity: ;--vdt-backdrop-saturate: ;--vdt-backdrop-sepia: }:before{--vdt-rotate:0;--vdt-rotate-x:0;--vdt-rotate-y:0;--vdt-rotate-z:0;--vdt-scale-x:1;--vdt-scale-y:1;--vdt-scale-z:1;--vdt-skew-x:0;--vdt-skew-y:0;--vdt-translate-x:0;--vdt-translate-y:0;--vdt-translate-z:0;--vdt-pan-x: ;--vdt-pan-y: ;--vdt-pinch-zoom: ;--vdt-scroll-snap-strictness:proximity;--vdt-ordinal: ;--vdt-slashed-zero: ;--vdt-numeric-figure: ;--vdt-numeric-spacing: ;--vdt-numeric-fraction: ;--vdt-border-spacing-x:0;--vdt-border-spacing-y:0;--vdt-ring-offset-shadow:0 0 transparent;--vdt-ring-shadow:0 0 transparent;--vdt-shadow-inset: ;--vdt-shadow:0 0 transparent;--vdt-ring-inset: ;--vdt-ring-offset-width:0px;--vdt-ring-offset-color:#fff;--vdt-ring-width:0px;--vdt-ring-color:rgba(147,197,253,.5);--vdt-blur: ;--vdt-brightness: ;--vdt-contrast: ;--vdt-drop-shadow: ;--vdt-grayscale: ;--vdt-hue-rotate: ;--vdt-invert: ;--vdt-saturate: ;--vdt-sepia: ;--vdt-backdrop-blur: ;--vdt-backdrop-brightness: ;--vdt-backdrop-contrast: ;--vdt-backdrop-grayscale: ;--vdt-backdrop-hue-rotate: ;--vdt-backdrop-invert: ;--vdt-backdrop-opacity: ;--vdt-backdrop-saturate: ;--vdt-backdrop-sepia: }:after{--vdt-rotate:0;--vdt-rotate-x:0;--vdt-rotate-y:0;--vdt-rotate-z:0;--vdt-scale-x:1;--vdt-scale-y:1;--vdt-scale-z:1;--vdt-skew-x:0;--vdt-skew-y:0;--vdt-translate-x:0;--vdt-translate-y:0;--vdt-translate-z:0;--vdt-pan-x: ;--vdt-pan-y: ;--vdt-pinch-zoom: ;--vdt-scroll-snap-strictness:proximity;--vdt-ordinal: ;--vdt-slashed-zero: ;--vdt-numeric-figure: ;--vdt-numeric-spacing: ;--vdt-numeric-fraction: ;--vdt-border-spacing-x:0;--vdt-border-spacing-y:0;--vdt-ring-offset-shadow:0 0 transparent;--vdt-ring-shadow:0 0 transparent;--vdt-shadow-inset: ;--vdt-shadow:0 0 transparent;--vdt-ring-inset: ;--vdt-ring-offset-width:0px;--vdt-ring-offset-color:#fff;--vdt-ring-width:0px;--vdt-ring-color:rgba(147,197,253,.5);--vdt-blur: ;--vdt-brightness: ;--vdt-contrast: ;--vdt-drop-shadow: ;--vdt-grayscale: ;--vdt-hue-rotate: ;--vdt-invert: ;--vdt-saturate: ;--vdt-sepia: ;--vdt-backdrop-blur: ;--vdt-backdrop-brightness: ;--vdt-backdrop-contrast: ;--vdt-backdrop-grayscale: ;--vdt-backdrop-hue-rotate: ;--vdt-backdrop-invert: ;--vdt-backdrop-opacity: ;--vdt-backdrop-saturate: ;--vdt-backdrop-sepia: }::backdrop{--vdt-rotate:0;--vdt-rotate-x:0;--vdt-rotate-y:0;--vdt-rotate-z:0;--vdt-scale-x:1;--vdt-scale-y:1;--vdt-scale-z:1;--vdt-skew-x:0;--vdt-skew-y:0;--vdt-translate-x:0;--vdt-translate-y:0;--vdt-translate-z:0;--vdt-pan-x: ;--vdt-pan-y: ;--vdt-pinch-zoom: ;--vdt-scroll-snap-strictness:proximity;--vdt-ordinal: ;--vdt-slashed-zero: ;--vdt-numeric-figure: ;--vdt-numeric-spacing: ;--vdt-numeric-fraction: ;--vdt-border-spacing-x:0;--vdt-border-spacing-y:0;--vdt-ring-offset-shadow:0 0 transparent;--vdt-ring-shadow:0 0 transparent;--vdt-shadow-inset: ;--vdt-shadow:0 0 transparent;--vdt-ring-inset: ;--vdt-ring-offset-width:0px;--vdt-ring-offset-color:#fff;--vdt-ring-width:0px;--vdt-ring-color:rgba(147,197,253,.5);--vdt-blur: ;--vdt-brightness: ;--vdt-contrast: ;--vdt-drop-shadow: ;--vdt-grayscale: ;--vdt-hue-rotate: ;--vdt-invert: ;--vdt-saturate: ;--vdt-sepia: ;--vdt-backdrop-blur: ;--vdt-backdrop-brightness: ;--vdt-backdrop-contrast: ;--vdt-backdrop-grayscale: ;--vdt-backdrop-hue-rotate: ;--vdt-backdrop-invert: ;--vdt-backdrop-opacity: ;--vdt-backdrop-saturate: ;--vdt-backdrop-sepia: }.i-carbon-clean{--vdt-icon:url(\"data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M26 20h-6v-2h6zm4 8h-6v-2h6zm-2-4h-6v-2h6z'/%3E%3Cpath fill='currentColor' d='M17.003 20a4.9 4.9 0 0 0-2.404-4.173L22 3l-1.73-1l-7.577 13.126a5.7 5.7 0 0 0-5.243 1.503C3.706 20.24 3.996 28.682 4.01 29.04a1 1 0 0 0 1 .96h14.991a1 1 0 0 0 .6-1.8c-3.54-2.656-3.598-8.146-3.598-8.2m-5.073-3.003A3.11 3.11 0 0 1 15.004 20c0 .038.002.208.017.469l-5.9-2.624a3.8 3.8 0 0 1 2.809-.848M15.45 28A5.2 5.2 0 0 1 14 25h-2a6.5 6.5 0 0 0 .968 3h-2.223A16.6 16.6 0 0 1 10 24H8a17.3 17.3 0 0 0 .665 4H6c.031-1.836.29-5.892 1.803-8.553l7.533 3.35A13 13 0 0 0 17.596 28Z'/%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-fluent-emoji-flat-warning{background:url(\"data:image/svg+xml;utf8,%3Csvg viewBox='0 0 32 32' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='none'%3E%3Cpath fill='%23FFB02E' d='m14.839 5.668l-12.66 21.93c-.51.89.13 2.01 1.16 2.01h25.32c1.03 0 1.67-1.11 1.16-2.01l-12.66-21.93c-.52-.89-1.8-.89-2.32 0'/%3E%3Cpath fill='%23000' d='M14.599 21.498a1.4 1.4 0 1 0 2.8-.01v-9.16c0-.77-.62-1.4-1.4-1.4c-.77 0-1.4.62-1.4 1.4zm2.8 3.98a1.4 1.4 0 1 1-2.8 0a1.4 1.4 0 0 1 2.8 0'/%3E%3C/g%3E%3C/svg%3E\") 0 0/100% 100% no-repeat;width:1em;height:1em}.i-ph-arrow-clockwise{--vdt-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='M240 56v48a8 8 0 0 1-8 8h-48a8 8 0 0 1 0-16h27.4l-26.59-24.36l-.25-.24a80 80 0 1 0-1.67 114.78a8 8 0 0 1 11 11.63A95.44 95.44 0 0 1 128 224h-1.32a96 96 0 1 1 69.07-164L224 85.8V56a8 8 0 1 1 16 0'/%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-arrow-counter-clockwise{--vdt-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='M224 128a96 96 0 0 1-94.71 96H128a95.38 95.38 0 0 1-65.9-26.2a8 8 0 0 1 11-11.63a80 80 0 1 0-1.67-114.78a3 3 0 0 1-.26.25L44.59 96H72a8 8 0 0 1 0 16H24a8 8 0 0 1-8-8V56a8 8 0 0 1 16 0v29.8L60.25 60A96 96 0 0 1 224 128'/%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-arrows-counter-clockwise-duotone{--vdt-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 128a88 88 0 1 1-88-88a88 88 0 0 1 88 88' opacity='.2'/%3E%3Cpath d='M88 104H40a8 8 0 0 1-8-8V48a8 8 0 0 1 16 0v28.69l14.63-14.63A95.43 95.43 0 0 1 130 33.94h.53a95.36 95.36 0 0 1 67.07 27.33a8 8 0 0 1-11.18 11.44a79.52 79.52 0 0 0-55.89-22.77h-.45a79.56 79.56 0 0 0-56.14 23.43L59.31 88H88a8 8 0 0 1 0 16m128 48h-48a8 8 0 0 0 0 16h28.69l-14.63 14.63a79.56 79.56 0 0 1-56.13 23.43h-.45a79.52 79.52 0 0 1-55.89-22.77a8 8 0 1 0-11.18 11.44a95.36 95.36 0 0 0 67.07 27.33h.52a95.43 95.43 0 0 0 67.36-28.12L208 179.31V208a8 8 0 0 0 16 0v-48a8 8 0 0 0-8-8'/%3E%3C/g%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-caret-down{--vdt-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='m213.66 101.66l-80 80a8 8 0 0 1-11.32 0l-80-80a8 8 0 0 1 11.32-11.32L128 164.69l74.34-74.35a8 8 0 0 1 11.32 11.32'/%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-caret-left{--vdt-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='M165.66 202.34a8 8 0 0 1-11.32 11.32l-80-80a8 8 0 0 1 0-11.32l80-80a8 8 0 0 1 11.32 11.32L91.31 128Z'/%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-caret-up{--vdt-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='M213.66 165.66a8 8 0 0 1-11.32 0L128 91.31l-74.34 74.35a8 8 0 0 1-11.32-11.32l80-80a8 8 0 0 1 11.32 0l80 80a8 8 0 0 1 0 11.32'/%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-check-bold{--vdt-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='m232.49 80.49l-128 128a12 12 0 0 1-17 0l-56-56a12 12 0 1 1 17-17L96 183L215.51 63.51a12 12 0 0 1 17 17Z'/%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-check-duotone{--vdt-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='M232 56v144a16 16 0 0 1-16 16H40a16 16 0 0 1-16-16V56a16 16 0 0 1 16-16h176a16 16 0 0 1 16 16' opacity='.2'/%3E%3Cpath d='m205.66 85.66l-96 96a8 8 0 0 1-11.32 0l-40-40a8 8 0 0 1 11.32-11.32L104 164.69l90.34-90.35a8 8 0 0 1 11.32 11.32'/%3E%3C/g%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-circle-notch{--vdt-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='M232 128a104 104 0 0 1-208 0c0-41 23.81-78.36 60.66-95.27a8 8 0 0 1 6.68 14.54C60.15 61.59 40 93.27 40 128a88 88 0 0 0 176 0c0-34.73-20.15-66.41-51.34-80.73a8 8 0 0 1 6.68-14.54C208.19 49.64 232 87 232 128'/%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-eye-slash{--vdt-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='M53.92 34.62a8 8 0 1 0-11.84 10.76l19.24 21.17C25 88.84 9.38 123.2 8.69 124.76a8 8 0 0 0 0 6.5c.35.79 8.82 19.57 27.65 38.4C61.43 194.74 93.12 208 128 208a127.1 127.1 0 0 0 52.07-10.83l22 24.21a8 8 0 1 0 11.84-10.76Zm47.33 75.84l41.67 45.85a32 32 0 0 1-41.67-45.85M128 192c-30.78 0-57.67-11.19-79.93-33.25A133.2 133.2 0 0 1 25 128c4.69-8.79 19.66-33.39 47.35-49.38l18 19.75a48 48 0 0 0 63.66 70l14.73 16.2A112 112 0 0 1 128 192m6-95.43a8 8 0 0 1 3-15.72a48.16 48.16 0 0 1 38.77 42.64a8 8 0 0 1-7.22 8.71a6 6 0 0 1-.75 0a8 8 0 0 1-8-7.26A32.09 32.09 0 0 0 134 96.57m113.28 34.69c-.42.94-10.55 23.37-33.36 43.8a8 8 0 1 1-10.67-11.92a132.8 132.8 0 0 0 27.8-35.14a133.2 133.2 0 0 0-23.12-30.77C185.67 75.19 158.78 64 128 64a118.4 118.4 0 0 0-19.36 1.57A8 8 0 1 1 106 49.79A134 134 0 0 1 128 48c34.88 0 66.57 13.26 91.66 38.35c18.83 18.83 27.3 37.62 27.65 38.41a8 8 0 0 1 0 6.5Z'/%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-gear-duotone{--vdt-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='m207.86 123.18l16.78-21a99 99 0 0 0-10.07-24.29l-26.7-3a81 81 0 0 0-6.81-6.81l-3-26.71a99.4 99.4 0 0 0-24.3-10l-21 16.77a82 82 0 0 0-9.64 0l-21-16.78a99 99 0 0 0-24.21 10.07l-3 26.7a81 81 0 0 0-6.81 6.81l-26.71 3a99.4 99.4 0 0 0-10 24.3l16.77 21a82 82 0 0 0 0 9.64l-16.78 21a99 99 0 0 0 10.07 24.29l26.7 3a81 81 0 0 0 6.81 6.81l3 26.71a99.4 99.4 0 0 0 24.3 10l21-16.77a82 82 0 0 0 9.64 0l21 16.78a99 99 0 0 0 24.29-10.07l3-26.7a81 81 0 0 0 6.81-6.81l26.71-3a99.4 99.4 0 0 0 10-24.3l-16.77-21a82 82 0 0 0-.08-9.64M128 168a40 40 0 1 1 40-40a40 40 0 0 1-40 40' opacity='.2'/%3E%3Cpath d='M128 80a48 48 0 1 0 48 48a48.05 48.05 0 0 0-48-48m0 80a32 32 0 1 1 32-32a32 32 0 0 1-32 32m88-29.84q.06-2.16 0-4.32l14.92-18.64a8 8 0 0 0 1.48-7.06a107.6 107.6 0 0 0-10.88-26.25a8 8 0 0 0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186 40.54a8 8 0 0 0-3.94-6a107.3 107.3 0 0 0-26.25-10.86a8 8 0 0 0-7.06 1.48L130.16 40h-4.32L107.2 25.11a8 8 0 0 0-7.06-1.48a107.6 107.6 0 0 0-26.25 10.88a8 8 0 0 0-3.93 6l-2.64 23.76q-1.56 1.49-3 3L40.54 70a8 8 0 0 0-6 3.94a107.7 107.7 0 0 0-10.87 26.25a8 8 0 0 0 1.49 7.06L40 125.84v4.32L25.11 148.8a8 8 0 0 0-1.48 7.06a107.6 107.6 0 0 0 10.88 26.25a8 8 0 0 0 6 3.93l23.72 2.64q1.49 1.56 3 3L70 215.46a8 8 0 0 0 3.94 6a107.7 107.7 0 0 0 26.25 10.87a8 8 0 0 0 7.06-1.49L125.84 216q2.16.06 4.32 0l18.64 14.92a8 8 0 0 0 7.06 1.48a107.2 107.2 0 0 0 26.25-10.88a8 8 0 0 0 3.93-6l2.64-23.72q1.56-1.48 3-3l23.78-2.8a8 8 0 0 0 6-3.94a107.7 107.7 0 0 0 10.87-26.25a8 8 0 0 0-1.49-7.06Zm-16.1-6.5a74 74 0 0 1 0 8.68a8 8 0 0 0 1.74 5.48l14.19 17.73a91.6 91.6 0 0 1-6.23 15l-22.6 2.56a8 8 0 0 0-5.1 2.64a74 74 0 0 1-6.14 6.14a8 8 0 0 0-2.64 5.1l-2.51 22.58a91.3 91.3 0 0 1-15 6.23l-17.74-14.19a8 8 0 0 0-5-1.75h-.48a74 74 0 0 1-8.68 0a8.06 8.06 0 0 0-5.48 1.74l-17.78 14.2a91.6 91.6 0 0 1-15-6.23L82.89 187a8 8 0 0 0-2.64-5.1a74 74 0 0 1-6.14-6.14a8 8 0 0 0-5.1-2.64l-22.58-2.52a91.3 91.3 0 0 1-6.23-15l14.19-17.74a8 8 0 0 0 1.74-5.48a74 74 0 0 1 0-8.68a8 8 0 0 0-1.74-5.48L40.2 100.45a91.6 91.6 0 0 1 6.23-15L69 82.89a8 8 0 0 0 5.1-2.64a74 74 0 0 1 6.14-6.14A8 8 0 0 0 82.89 69l2.51-22.57a91.3 91.3 0 0 1 15-6.23l17.74 14.19a8 8 0 0 0 5.48 1.74a74 74 0 0 1 8.68 0a8.06 8.06 0 0 0 5.48-1.74l17.77-14.19a91.6 91.6 0 0 1 15 6.23L173.11 69a8 8 0 0 0 2.64 5.1a74 74 0 0 1 6.14 6.14a8 8 0 0 0 5.1 2.64l22.58 2.51a91.3 91.3 0 0 1 6.23 15l-14.19 17.74a8 8 0 0 0-1.74 5.53Z'/%3E%3C/g%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-globe{--vdt-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='M128 24a104 104 0 1 0 104 104A104.12 104.12 0 0 0 128 24m88 104a87.6 87.6 0 0 1-3.33 24h-38.51a157.4 157.4 0 0 0 0-48h38.51a87.6 87.6 0 0 1 3.33 24m-114 40h52a115.1 115.1 0 0 1-26 45a115.3 115.3 0 0 1-26-45m-3.9-16a140.8 140.8 0 0 1 0-48h59.88a140.8 140.8 0 0 1 0 48ZM40 128a87.6 87.6 0 0 1 3.33-24h38.51a157.4 157.4 0 0 0 0 48H43.33A87.6 87.6 0 0 1 40 128m114-40h-52a115.1 115.1 0 0 1 26-45a115.3 115.3 0 0 1 26 45m52.33 0h-35.62a135.3 135.3 0 0 0-22.3-45.6A88.29 88.29 0 0 1 206.37 88Zm-98.74-45.6A135.3 135.3 0 0 0 85.29 88H49.63a88.29 88.29 0 0 1 57.96-45.6M49.63 168h35.66a135.3 135.3 0 0 0 22.3 45.6A88.29 88.29 0 0 1 49.63 168m98.78 45.6a135.3 135.3 0 0 0 22.3-45.6h35.66a88.29 88.29 0 0 1-57.96 45.6'/%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-push-pin{--vdt-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='m235.32 81.37l-60.69-60.68a16 16 0 0 0-22.63 0l-53.63 53.8c-10.66-3.34-35-7.37-60.4 13.14a16 16 0 0 0-1.29 23.78L85 159.71l-42.66 42.63a8 8 0 0 0 11.32 11.32L96.29 171l48.29 48.29A16 16 0 0 0 155.9 224h1.13a15.93 15.93 0 0 0 11.64-6.33c19.64-26.1 17.75-47.32 13.19-60L235.33 104a16 16 0 0 0-.01-22.63M224 92.69l-57.27 57.46a8 8 0 0 0-1.49 9.22c9.46 18.93-1.8 38.59-9.34 48.62L48 100.08c12.08-9.74 23.64-12.31 32.48-12.31A40.1 40.1 0 0 1 96.81 91a8 8 0 0 0 9.25-1.51L163.32 32L224 92.68Z'/%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-push-pin-fill{--vdt-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='m235.33 104l-53.47 53.65c4.56 12.67 6.45 33.89-13.19 60A15.93 15.93 0 0 1 157 224h-1.13a16 16 0 0 1-11.32-4.69L96.29 171l-42.63 42.66a8 8 0 0 1-11.32-11.32L85 159.71l-48.3-48.3A16 16 0 0 1 38 87.63c25.42-20.51 49.75-16.48 60.4-13.14L152 20.7a16 16 0 0 1 22.63 0l60.69 60.68a16 16 0 0 1 .01 22.62'/%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-rocket-launch-duotone{--vdt-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='M184 120v61.65a8 8 0 0 1-2.34 5.65l-34.35 34.35a8 8 0 0 1-13.57-4.53L128 176Zm-48-48H74.35a8 8 0 0 0-5.65 2.34l-34.35 34.35a8 8 0 0 0 4.53 13.57L80 128ZM40 216c37.65 0 50.69-19.69 54.56-28.18l-26.38-26.38C59.69 165.31 40 178.35 40 216' opacity='.2'/%3E%3Cpath d='M223.85 47.12a16 16 0 0 0-15-15c-12.58-.75-44.73.4-71.41 27.07L132.69 64H74.36A15.9 15.9 0 0 0 63 68.68L28.7 103a16 16 0 0 0 9.07 27.16l38.47 5.37l44.21 44.21l5.37 38.49a15.94 15.94 0 0 0 10.78 12.92a16.1 16.1 0 0 0 5.1.83a15.9 15.9 0 0 0 11.3-4.68l34.32-34.3a15.9 15.9 0 0 0 4.68-11.36v-58.33l4.77-4.77c26.68-26.68 27.83-58.83 27.08-71.42M74.36 80h42.33l-39.53 39.52L40 114.34Zm74.41-9.45a76.65 76.65 0 0 1 59.11-22.47a76.46 76.46 0 0 1-22.42 59.16L128 164.68L91.32 128ZM176 181.64L141.67 216l-5.19-37.17L176 139.31Zm-74.16 9.5C97.34 201 82.29 224 40 224a8 8 0 0 1-8-8c0-42.29 23-57.34 32.86-61.85a8 8 0 0 1 6.64 14.56c-6.43 2.93-20.62 12.36-23.12 38.91c26.55-2.5 36-16.69 38.91-23.12a8 8 0 1 1 14.56 6.64Z'/%3E%3C/g%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-ph-warning-duotone{--vdt-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='M215.46 216H40.54c-12.62 0-20.54-13.21-14.41-23.91l87.46-151.87c6.3-11 22.52-11 28.82 0l87.46 151.87c6.13 10.7-1.79 23.91-14.41 23.91' opacity='.2'/%3E%3Cpath d='M236.8 188.09L149.35 36.22a24.76 24.76 0 0 0-42.7 0L19.2 188.09a23.51 23.51 0 0 0 0 23.72A24.35 24.35 0 0 0 40.55 224h174.9a24.35 24.35 0 0 0 21.33-12.19a23.51 23.51 0 0 0 .02-23.72m-13.87 15.71a8.5 8.5 0 0 1-7.48 4.2H40.55a8.5 8.5 0 0 1-7.48-4.2a7.59 7.59 0 0 1 0-7.72l87.45-151.87a8.75 8.75 0 0 1 15 0l87.45 151.87a7.59 7.59 0 0 1-.04 7.72M120 144v-40a8 8 0 0 1 16 0v40a8 8 0 0 1-16 0m20 36a12 12 0 1 1-12-12a12 12 0 0 1 12 12'/%3E%3C/g%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.i-svg-spinners-8-dots-rotate{--vdt-icon:url(\"data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg%3E%3Ccircle cx='3' cy='12' r='2' fill='currentColor'/%3E%3Ccircle cx='21' cy='12' r='2' fill='currentColor'/%3E%3Ccircle cx='12' cy='21' r='2' fill='currentColor'/%3E%3Ccircle cx='12' cy='3' r='2' fill='currentColor'/%3E%3Ccircle cx='5.64' cy='5.64' r='2' fill='currentColor'/%3E%3Ccircle cx='18.36' cy='18.36' r='2' fill='currentColor'/%3E%3Ccircle cx='5.64' cy='18.36' r='2' fill='currentColor'/%3E%3Ccircle cx='18.36' cy='5.64' r='2' fill='currentColor'/%3E%3CanimateTransform attributeName='transform' dur='1.5s' repeatCount='indefinite' type='rotate' values='0 12 12;360 12 12'/%3E%3C/g%3E%3C/svg%3E\");-webkit-mask:var(--vdt-icon) no-repeat;mask:var(--vdt-icon) no-repeat;color:inherit;background-color:currentColor;width:1em;height:1em;mask-size:100% 100%}.container{width:100%}.z-floating-tooltip{z-index:2147483645}.border-base{--vdt-border-opacity:.13;border-color:rgba(136,136,136,var(--vdt-border-opacity))}.hover\\:border-base:hover{--vdt-border-opacity:.13;border-color:rgba(136,136,136,var(--vdt-border-opacity))}.bg-active{--vdt-bg-opacity:.07;background-color:rgba(136,136,136,var(--vdt-bg-opacity))}.bg-glass{--vdt-backdrop-blur:blur(7px);backdrop-filter:var(--vdt-backdrop-blur) var(--vdt-backdrop-brightness) var(--vdt-backdrop-contrast) var(--vdt-backdrop-grayscale) var(--vdt-backdrop-hue-rotate) var(--vdt-backdrop-invert) var(--vdt-backdrop-opacity) var(--vdt-backdrop-saturate) var(--vdt-backdrop-sepia);background-color:rgba(255,255,255,.5)}.bg-glass\\:75{--vdt-backdrop-blur:blur(7px);backdrop-filter:var(--vdt-backdrop-blur) var(--vdt-backdrop-brightness) var(--vdt-backdrop-contrast) var(--vdt-backdrop-grayscale) var(--vdt-backdrop-hue-rotate) var(--vdt-backdrop-invert) var(--vdt-backdrop-opacity) var(--vdt-backdrop-saturate) var(--vdt-backdrop-sepia);background-color:rgba(255,255,255,.75)}.hover\\:bg-active:hover{--vdt-bg-opacity:.07;background-color:rgba(136,136,136,var(--vdt-bg-opacity))}@media (prefers-color-scheme:dark){.bg-glass{background-color:rgba(17,17,17,.5)}.bg-glass\\:75{background-color:rgba(17,17,17,.75)}}@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}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{top:0;bottom:0;left:0;right:0}.bottom-0{bottom:0}.left--1{left:-.25rem}.left-1\\/2{left:50%}.right--1{right:-.25rem}.right--1px{right:-1px}.right-0{right:0}.top-0\\.5{top:.125rem}.top-1{top:.25rem}.top-1\\/2{top:50%}.z--1{z-index:-1}.grid{display:grid}.grid-rows-\\[max-content_1fr\\]{grid-template-rows:max-content 1fr}.m-auto{margin:auto}.m1{margin:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mt8{margin-top:2rem}.hidden{display:none}.h-1\\.5{height:.375rem}.h-10{height:2.5rem}.h-20{height:5rem}.h-20px{height:20px}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-full{height:100%}.h-screen{height:100vh}.max-w-150{max-width:37.5rem}.max-w-200{max-width:50rem}.max-w-200px{max-width:200px}.w-1\\.5{width:.375rem}.w-10{width:2.5rem}.w-2\\.5{width:.625rem}.w-20{width:5rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.flex{display:flex}.flex-1{flex:1}.flex-auto{flex:auto}.flex-none{flex:none}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.translate-x--1\\/2{--vdt-translate-x:-50%;transform:translateX(var(--vdt-translate-x)) translateY(var(--vdt-translate-y)) translateZ(var(--vdt-translate-z)) rotate(var(--vdt-rotate)) rotateX(var(--vdt-rotate-x)) rotateY(var(--vdt-rotate-y)) rotateZ(var(--vdt-rotate-z)) skewX(var(--vdt-skew-x)) skewY(var(--vdt-skew-y)) scaleX(var(--vdt-scale-x)) scaleY(var(--vdt-scale-y)) scaleZ(var(--vdt-scale-z))}.translate-x-1{--vdt-translate-x:.25rem;transform:translateX(var(--vdt-translate-x)) translateY(var(--vdt-translate-y)) translateZ(var(--vdt-translate-z)) rotate(var(--vdt-rotate)) rotateX(var(--vdt-rotate-x)) rotateY(var(--vdt-rotate-y)) rotateZ(var(--vdt-rotate-z)) skewX(var(--vdt-skew-x)) skewY(var(--vdt-skew-y)) scaleX(var(--vdt-scale-x)) scaleY(var(--vdt-scale-y)) scaleZ(var(--vdt-scale-z))}.translate-x-5{--vdt-translate-x:1.25rem;transform:translateX(var(--vdt-translate-x)) translateY(var(--vdt-translate-y)) translateZ(var(--vdt-translate-z)) rotate(var(--vdt-rotate)) rotateX(var(--vdt-rotate-x)) rotateY(var(--vdt-rotate-y)) rotateZ(var(--vdt-rotate-z)) skewX(var(--vdt-skew-x)) skewY(var(--vdt-skew-y)) scaleX(var(--vdt-scale-x)) scaleY(var(--vdt-scale-y)) scaleZ(var(--vdt-scale-z))}.translate-y--1\\/2{--vdt-translate-y:-50%;transform:translateX(var(--vdt-translate-x)) translateY(var(--vdt-translate-y)) translateZ(var(--vdt-translate-z)) rotate(var(--vdt-rotate)) rotateX(var(--vdt-rotate-x)) rotateY(var(--vdt-rotate-y)) rotateZ(var(--vdt-rotate-z)) skewX(var(--vdt-skew-x)) skewY(var(--vdt-skew-y)) scaleX(var(--vdt-scale-x)) scaleY(var(--vdt-scale-y)) scaleZ(var(--vdt-scale-z))}.rotate--45{--vdt-rotate-x:0;--vdt-rotate-y:0;--vdt-rotate-z:0;--vdt-rotate:-45deg;transform:translateX(var(--vdt-translate-x)) translateY(var(--vdt-translate-y)) translateZ(var(--vdt-translate-z)) rotate(var(--vdt-rotate)) rotateX(var(--vdt-rotate-x)) rotateY(var(--vdt-rotate-y)) rotateZ(var(--vdt-rotate-z)) skewX(var(--vdt-skew-x)) skewY(var(--vdt-skew-y)) scaleX(var(--vdt-scale-x)) scaleY(var(--vdt-scale-y)) scaleZ(var(--vdt-scale-z))}.rotate-0{--vdt-rotate-x:0;--vdt-rotate-y:0;--vdt-rotate-z:0;--vdt-rotate:0deg;transform:translateX(var(--vdt-translate-x)) translateY(var(--vdt-translate-y)) translateZ(var(--vdt-translate-z)) rotate(var(--vdt-rotate)) rotateX(var(--vdt-rotate-x)) rotateY(var(--vdt-rotate-y)) rotateZ(var(--vdt-rotate-z)) skewX(var(--vdt-skew-x)) skewY(var(--vdt-skew-y)) scaleX(var(--vdt-scale-x)) scaleY(var(--vdt-scale-y)) scaleZ(var(--vdt-scale-z))}.rotate-270{--vdt-rotate-x:0;--vdt-rotate-y:0;--vdt-rotate-z:0;--vdt-rotate:270deg;transform:translateX(var(--vdt-translate-x)) translateY(var(--vdt-translate-y)) translateZ(var(--vdt-translate-z)) rotate(var(--vdt-rotate)) rotateX(var(--vdt-rotate-x)) rotateY(var(--vdt-rotate-y)) rotateZ(var(--vdt-rotate-z)) skewX(var(--vdt-skew-x)) skewY(var(--vdt-skew-y)) scaleX(var(--vdt-scale-x)) scaleY(var(--vdt-scale-y)) scaleZ(var(--vdt-scale-z))}.scale-120{--vdt-scale-x:1.2;--vdt-scale-y:1.2;transform:translateX(var(--vdt-translate-x)) translateY(var(--vdt-translate-y)) translateZ(var(--vdt-translate-z)) rotate(var(--vdt-rotate)) rotateX(var(--vdt-rotate-x)) rotateY(var(--vdt-rotate-y)) rotateZ(var(--vdt-rotate-z)) skewX(var(--vdt-skew-x)) skewY(var(--vdt-skew-y)) scaleX(var(--vdt-scale-x)) scaleY(var(--vdt-scale-y)) scaleZ(var(--vdt-scale-z))}.hover\\:scale-110:hover{--vdt-scale-x:1.1;--vdt-scale-y:1.1;transform:translateX(var(--vdt-translate-x)) translateY(var(--vdt-translate-y)) translateZ(var(--vdt-translate-z)) rotate(var(--vdt-rotate)) rotateX(var(--vdt-rotate-x)) rotateY(var(--vdt-rotate-y)) rotateZ(var(--vdt-rotate-z)) skewX(var(--vdt-skew-x)) skewY(var(--vdt-skew-y)) scaleX(var(--vdt-scale-x)) scaleY(var(--vdt-scale-y)) scaleZ(var(--vdt-scale-z))}.scale-y--100{--vdt-scale-y:-1;transform:translateX(var(--vdt-translate-x)) translateY(var(--vdt-translate-y)) translateZ(var(--vdt-translate-z)) rotate(var(--vdt-rotate)) rotateX(var(--vdt-rotate-x)) rotateY(var(--vdt-rotate-y)) rotateZ(var(--vdt-rotate-z)) skewX(var(--vdt-skew-x)) skewY(var(--vdt-skew-y)) scaleX(var(--vdt-scale-x)) scaleY(var(--vdt-scale-y)) scaleZ(var(--vdt-scale-z))}.transform{transform:translateX(var(--vdt-translate-x)) translateY(var(--vdt-translate-y)) translateZ(var(--vdt-translate-z)) rotate(var(--vdt-rotate)) rotateX(var(--vdt-rotate-x)) rotateY(var(--vdt-rotate-y)) rotateZ(var(--vdt-rotate-z)) skewX(var(--vdt-skew-x)) skewY(var(--vdt-skew-y)) scaleX(var(--vdt-scale-x)) scaleY(var(--vdt-scale-y)) scaleZ(var(--vdt-scale-z))}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-pointer{cursor:pointer}.select-none{user-select:none}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.of-auto,.overflow-auto{overflow:auto}.of-hidden,.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ws-nowrap{white-space:nowrap}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0}.border-r{border-right-width:1px}.border-r-1\\.5{border-right-width:1.5px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0}.border-amber\\/20{border-color:rgba(251,191,36,.2)}.border-transparent{border-color:transparent}.focus-within\\:border-gray\\/30:focus-within{border-color:rgba(156,163,175,.3)}.hover\\:border-gray\\/20:hover{border-color:rgba(156,163,175,.2)}.rounded{-webkit-border-radius:.25rem;border-radius:.25rem}.rounded-full{-webkit-border-radius:9999px;border-radius:9999px}.rounded-lg{-webkit-border-radius:.5rem;border-radius:.5rem}.rounded-xl{-webkit-border-radius:.75rem;border-radius:.75rem}.rounded-t{-webkit-border-top-left-radius:.25rem;border-top-left-radius:.25rem;-webkit-border-top-right-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-md{-webkit-border-top-left-radius:.375rem;border-top-left-radius:.375rem;-webkit-border-top-right-radius:.375rem;border-top-right-radius:.375rem}.bg-amber\\/10{background-color:rgba(251,191,36,.1)}.bg-black{--vdt-bg-opacity:1;background-color:rgba(0,0,0,var(--vdt-bg-opacity))}.bg-gray-6{--vdt-bg-opacity:1;background-color:rgba(75,85,99,var(--vdt-bg-opacity))}.bg-gray\\/10{background-color:rgba(156,163,175,.1)}.bg-gray\\/20{background-color:rgba(156,163,175,.2)}.bg-gray\\/30{background-color:rgba(156,163,175,.3)}.bg-gray\\/5{background-color:rgba(156,163,175,.05)}.bg-green\\:5{background-color:rgba(74,222,128,.05)}.bg-lime{--vdt-bg-opacity:1;background-color:rgba(163,230,53,var(--vdt-bg-opacity))}.bg-lime\\/20{background-color:rgba(163,230,53,.2)}.bg-lime6{--vdt-bg-opacity:1;background-color:rgba(101,163,13,var(--vdt-bg-opacity))}.bg-red\\/10{background-color:rgba(248,113,113,.1)}.bg-transparent{background-color:transparent}.bg-white{--vdt-bg-opacity:1;background-color:rgba(255,255,255,var(--vdt-bg-opacity))}.hover\\:bg-\\[\\#8881\\]:hover{--vdt-bg-opacity:.07;background-color:rgba(136,136,136,var(--vdt-bg-opacity))}.hover\\:bg-gray\\/15:hover{background-color:rgba(156,163,175,.15)}.hover\\:bg-gray\\/20:hover{background-color:rgba(156,163,175,.2)}.hover\\:bg-gray\\/5:hover{background-color:rgba(156,163,175,.05)}.hover\\:bg-lime7:hover{--vdt-bg-opacity:1;background-color:rgba(77,124,15,var(--vdt-bg-opacity))}.hover\\:bg-red\\/20:hover{background-color:rgba(248,113,113,.2)}.disabled\\:bg-gray6\\!:disabled{--vdt-bg-opacity:1!important;background-color:rgba(75,85,99,var(--vdt-bg-opacity))!important}.fill-black{--vdt-fill-opacity:1;fill:rgba(0,0,0,var(--vdt-fill-opacity))}.fill-hex-08060D{--vdt-fill-opacity:1;fill:rgba(8,6,13,var(--vdt-fill-opacity))}.p1{padding:.25rem}.p1\\.5{padding:.375rem}.p10{padding:2.5rem}.p2{padding:.5rem}.p20{padding:5rem}.px,.px-4,.px4{padding-left:1rem;padding-right:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2,.px2{padding-left:.5rem;padding-right:.5rem}.px-2\\.5{padding-left:.625rem;padding-right:.625rem}.px3{padding-left:.75rem;padding-right:.75rem}.py-1,.py1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py1\\.5{padding-top:.375rem;padding-bottom:.375rem}.pt-6{padding-top:1.5rem}.text-center{text-align:center}.text-0\\.6em{font-size:.6em}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.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-amber{--vdt-text-opacity:1;color:rgba(251,191,36,var(--vdt-text-opacity))}.text-green{--vdt-text-opacity:1;color:rgba(74,222,128,var(--vdt-text-opacity))}.text-lime{--vdt-text-opacity:1;color:rgba(163,230,53,var(--vdt-text-opacity))}.text-orange{--vdt-text-opacity:1;color:rgba(251,146,60,var(--vdt-text-opacity))}.text-purple{--vdt-text-opacity:1;color:rgba(192,132,252,var(--vdt-text-opacity))}.text-red{--vdt-text-opacity:1;color:rgba(248,113,113,var(--vdt-text-opacity))}.text-violet{--vdt-text-opacity:1;color:rgba(167,139,250,var(--vdt-text-opacity))}.text-white{--vdt-text-opacity:1;color:rgba(255,255,255,var(--vdt-text-opacity))}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.capitalize{text-transform:capitalize}.line-through{text-decoration-line:line-through}.tab{tab-size:4}.op0,.opacity-0{opacity:0}.op100,.opacity-100{opacity:1}.group:hover .group-hover\\:opacity-100{opacity:1}.op40{opacity:.4}.op50{opacity:.5}.op60{opacity:.6}.op60\\!{opacity:.6!important}.op75{opacity:.75}.op85{opacity:.85}.hover\\:op70:hover{opacity:.7}.shadow{--vdt-shadow:var(--vdt-shadow-inset) 0 1px 3px 0 var(--vdt-shadow-color,rgba(0,0,0,.1)),var(--vdt-shadow-inset) 0 1px 2px -1px var(--vdt-shadow-color,rgba(0,0,0,.1));box-shadow:var(--vdt-ring-offset-shadow), var(--vdt-ring-shadow), var(--vdt-shadow)}.outline-none{outline-offset:2px;outline:2px solid transparent}.saturate-0{--vdt-saturate:saturate(0);filter:var(--vdt-blur) var(--vdt-brightness) var(--vdt-contrast) var(--vdt-drop-shadow) var(--vdt-grayscale) var(--vdt-hue-rotate) var(--vdt-invert) var(--vdt-saturate) var(--vdt-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;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)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.delay-200{transition-delay:.2s}@media (prefers-color-scheme:dark){.dark-hidden{display:none}.dark\\:fill-hex-fff,.dark\\:fill-white{--vdt-fill-opacity:1;fill:rgba(255,255,255,var(--vdt-fill-opacity))}}@media (prefers-color-scheme:light){.light-hidden{display:none}}";
10
-
11
- //#endregion
12
- //#region src/client/webcomponents/state/floating-tooltip.ts
13
- const tooltip = shallowRef(null);
14
- const docksOverflowPanel = shallowRef(null);
15
- function setFloatingTooltip(info) {
16
- tooltip.value = info;
17
- }
18
- function useFloatingTooltip() {
19
- return tooltip;
20
- }
21
- function setDocksOverflowPanel(info) {
22
- docksOverflowPanel.value = info;
23
- }
24
- function useDocksOverflowPanel() {
25
- return docksOverflowPanel;
26
- }
27
-
28
- //#endregion
29
- //#region src/client/webcomponents/components/DockEntry.vue
30
- const _hoisted_1$9 = ["title"];
31
- const _hoisted_2$6 = {
32
- key: 0,
33
- class: "absolute top-0.5 right-0 bg-gray-6 text-white text-0.6em px-1 rounded-full shadow"
34
- };
35
- const _sfc_main$17 = /* @__PURE__ */ defineComponent({
36
- __name: "DockEntry",
37
- props: {
38
- dock: {},
39
- isSelected: { type: Boolean },
40
- isDimmed: { type: Boolean },
41
- isVertical: { type: Boolean },
42
- badge: {},
43
- tooltip: {
44
- type: Boolean,
45
- default: true
46
- }
47
- },
48
- setup(__props) {
49
- const props = __props;
50
- const button = useTemplateRef("button");
51
- function updateTooltip() {
52
- if (!props.tooltip) return;
53
- if (!button.value) return;
54
- setFloatingTooltip({
55
- content: props.dock.title,
56
- el: button.value
57
- });
58
- }
59
- function clearTitle() {
60
- if (!props.tooltip) return;
61
- setFloatingTooltip(null);
62
- }
63
- useEventListener("pointerdown", () => {
64
- if (!props.tooltip) return;
65
- setFloatingTooltip(null);
66
- });
67
- return (_ctx, _cache) => {
68
- return openBlock(), createElementBlock("div", {
69
- key: __props.dock.id,
70
- class: "relative group vite-devtools-dock-entry",
71
- onPointerenter: updateTooltip,
72
- onPointerleave: clearTitle
73
- }, [createBaseVNode("button", {
74
- ref_key: "button",
75
- ref: button,
76
- title: __props.dock.title,
77
- class: normalizeClass([[
78
- __props.isVertical ? "rotate-270" : "",
79
- __props.isDimmed ? "op50 saturate-0" : "",
80
- __props.isSelected ? "scale-120 text-purple" : ""
81
- ], "flex items-center justify-center p1.5 rounded-xl hover:bg-[#8881] hover:scale-110 transition-all duration-300 relative"])
82
- }, [createVNode(_sfc_main$18, {
83
- icon: __props.dock.icon,
84
- title: __props.dock.title,
85
- class: "w-5 h-5 select-none"
86
- }, null, 8, ["icon", "title"]), __props.badge ? (openBlock(), createElementBlock("div", _hoisted_2$6, toDisplayString(__props.badge), 1)) : createCommentVNode("v-if", true)], 10, _hoisted_1$9)], 32);
87
- };
88
- }
89
- });
90
-
91
- //#endregion
92
- //#region src/client/webcomponents/components/DockEntries.vue
93
- const _sfc_main$16 = /* @__PURE__ */ defineComponent({
94
- __name: "DockEntries",
95
- props: {
96
- context: {},
97
- entries: {},
98
- selected: {},
99
- isVertical: { type: Boolean }
100
- },
101
- emits: ["select"],
102
- setup(__props, { emit: __emit }) {
103
- const props = __props;
104
- const emit = __emit;
105
- const { selected, isVertical, entries } = toRefs(props);
106
- function toggleDockEntry(dock) {
107
- if (selected.value?.id === dock.id) emit("select", void 0);
108
- else emit("select", dock);
109
- }
110
- return (_ctx, _cache) => {
111
- return openBlock(true), createElementBlock(Fragment, null, renderList(unref(entries), (dock) => {
112
- return openBlock(), createElementBlock(Fragment, { key: dock.id }, [!dock.isHidden ? (openBlock(), createBlock(_sfc_main$17, {
113
- key: 0,
114
- dock,
115
- "is-selected": unref(selected)?.id === dock.id,
116
- "is-dimmed": unref(selected) ? unref(selected).id !== dock.id : false,
117
- "is-vertical": unref(isVertical),
118
- onClick: ($event) => toggleDockEntry(dock)
119
- }, null, 8, [
120
- "dock",
121
- "is-selected",
122
- "is-dimmed",
123
- "is-vertical",
124
- "onClick"
125
- ])) : createCommentVNode("v-if", true)], 64);
126
- }), 128);
127
- };
128
- }
129
- });
130
-
131
- //#endregion
132
- //#region src/client/webcomponents/components/DockEntriesWithCategories.vue
133
- const _sfc_main$15 = /* @__PURE__ */ defineComponent({
134
- __name: "DockEntriesWithCategories",
135
- props: {
136
- context: {},
137
- groups: {},
138
- selected: {},
139
- isVertical: { type: Boolean }
140
- },
141
- emits: ["select"],
142
- setup(__props, { emit: __emit }) {
143
- const emit = __emit;
144
- return (_ctx, _cache) => {
145
- return openBlock(true), createElementBlock(Fragment, null, renderList(__props.groups, ([category, entries], idx) => {
146
- return openBlock(), createElementBlock(Fragment, { key: category }, [idx > 0 ? renderSlot(_ctx.$slots, "separator", {
147
- key: 0,
148
- category,
149
- index: idx,
150
- isVertical: __props.isVertical
151
- }, () => [_cache[1] || (_cache[1] = createBaseVNode("div", { class: "border-base m1 h-20px w-px border-r-1.5" }, null, -1))]) : createCommentVNode("v-if", true), createVNode(_sfc_main$16, {
152
- context: __props.context,
153
- entries,
154
- "is-vertical": __props.isVertical,
155
- selected: __props.selected,
156
- onSelect: _cache[0] || (_cache[0] = (e) => emit("select", e))
157
- }, null, 8, [
158
- "context",
159
- "entries",
160
- "is-vertical",
161
- "selected"
162
- ])], 64);
163
- }), 128);
164
- };
165
- }
166
- });
167
-
168
- //#endregion
1
+ import { A as withCtx, C as onUnmounted, D as useTemplateRef, E as renderSlot, G as normalizeStyle, I as reactive, O as watch, P as markRaw, R as ref, S as onMounted, U as unref, V as toRefs, W as normalizeClass, a as Fragment, c as createBaseVNode, d as createElementBlock, g as defineComponent, i as withModifiers, j as withDirectives, k as watchEffect, l as createBlock, m as createVNode, n as vShow, s as computed, t as defineCustomElement, u as createCommentVNode, v as h, w as openBlock } from "../vue.runtime.esm-bundler-Bou7Nbd4.js";
2
+ import { a as useScreenSafeArea, c as watchDebounced, n as useElementBounding, o as useWindowSize, r as useEventListener } from "../dist-CnHQWaMb.js";
3
+ import { _ as useDocksEntries, f as useDocksOverflowPanel, g as sharedStateToRef, h as createDockEntryState, l as setDocksOverflowPanel, m as DEFAULT_DOCK_PANEL_STORE, n as filterPopupDockEntry, r as isDockPopupEntryVisible, s as useIsDockPopupOpen, t as closeDockPopup, x as BUILTIN_ENTRY_CLIENT_AUTH_NOTICE, y as docksSplitGroupsWithCapacity } from "../popup-CqYAUdYG.js";
4
+ import { a as PersistedDomHolder, c as _sfc_main$8, l as openDockContextMenu, n as _sfc_main$9, o as PersistedDomViewsManager, s as _sfc_main$7, t as _sfc_main$10, u as css_default } from "../FloatingElements-DiZY-fXn.js";
5
+ import { n as VitePlusCore_default } from "../DockIcon-LqhTiyo7.js";
6
+ import { t as export_helper_default } from "../export-helper-DOmNQzh6.js";
169
7
  //#region src/client/webcomponents/components/DockOverflowButton.vue
170
- const _sfc_main$14 = /* @__PURE__ */ defineComponent({
8
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
171
9
  __name: "DockOverflowButton",
172
10
  props: {
173
11
  context: {},
@@ -191,7 +29,7 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
191
29
  if (!overflowButton.value) return;
192
30
  isOverflowPanelVisible.value = true;
193
31
  setDocksOverflowPanel({
194
- content: () => h("div", { class: "flex gap-0 flex-wrap max-w-200px" }, [h(_sfc_main$15, {
32
+ content: () => h("div", { class: "flex gap-0 flex-wrap max-w-220px" }, [h(_sfc_main$7, {
195
33
  context: props.context,
196
34
  groups: props.groups,
197
35
  isVertical: false,
@@ -216,7 +54,8 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
216
54
  return openBlock(), createElementBlock("div", {
217
55
  ref_key: "overflowButton",
218
56
  ref: overflowButton
219
- }, [createVNode(_sfc_main$17, {
57
+ }, [createVNode(_sfc_main$8, {
58
+ context: __props.context,
220
59
  dock: {
221
60
  id: "overflow",
222
61
  title: "Overflow",
@@ -229,53 +68,54 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
229
68
  "is-selected": false,
230
69
  "is-dimmed": false,
231
70
  onClick: toggleOverflowPanel
232
- }, null, 8, ["badge", "is-vertical"])], 512);
71
+ }, null, 8, [
72
+ "context",
73
+ "badge",
74
+ "is-vertical"
75
+ ])], 512);
233
76
  };
234
77
  }
235
78
  });
236
-
237
79
  //#endregion
238
80
  //#region src/client/webcomponents/components/icons/BracketLeft.vue
239
- const _sfc_main$13 = {};
240
- const _hoisted_1$8 = {
81
+ const _sfc_main$5 = {};
82
+ const _hoisted_1$2 = {
241
83
  viewBox: "0 0 9 20",
242
84
  fill: "none",
243
85
  xmlns: "http://www.w3.org/2000/svg"
244
86
  };
245
- function _sfc_render$2(_ctx, _cache) {
246
- return openBlock(), createElementBlock("svg", _hoisted_1$8, [..._cache[0] || (_cache[0] = [createBaseVNode("path", {
87
+ function _sfc_render$1(_ctx, _cache) {
88
+ return openBlock(), createElementBlock("svg", _hoisted_1$2, [..._cache[0] || (_cache[0] = [createBaseVNode("path", {
247
89
  d: "M4.95763 0C1.02563 5.628 1.00263 14.351 4.95763 20H7.61363C3.65963 14.35 3.68363 5.627 7.61363 0H4.95763Z",
248
90
  class: "fill-black dark:fill-white"
249
91
  }, null, -1)])]);
250
92
  }
251
- var BracketLeft_default = /* @__PURE__ */ export_helper_default(_sfc_main$13, [["render", _sfc_render$2]]);
252
-
93
+ var BracketLeft_default = /* @__PURE__ */ export_helper_default(_sfc_main$5, [["render", _sfc_render$1]]);
253
94
  //#endregion
254
95
  //#region src/client/webcomponents/components/icons/BracketRight.vue
255
- const _sfc_main$12 = {};
256
- const _hoisted_1$7 = {
96
+ const _sfc_main$4 = {};
97
+ const _hoisted_1$1 = {
257
98
  viewBox: "0 0 9 20",
258
99
  fill: "none",
259
100
  xmlns: "http://www.w3.org/2000/svg"
260
101
  };
261
- function _sfc_render$1(_ctx, _cache) {
262
- return openBlock(), createElementBlock("svg", _hoisted_1$7, [..._cache[0] || (_cache[0] = [createBaseVNode("path", {
102
+ function _sfc_render(_ctx, _cache) {
103
+ return openBlock(), createElementBlock("svg", _hoisted_1$1, [..._cache[0] || (_cache[0] = [createBaseVNode("path", {
263
104
  d: "M4.246 10H6.903C6.902 6.407 5.913 2.816 3.946 0H1.29C3.256 2.816 4.244 6.407 4.246 10ZM8.935 14.907H6.27C6.46624 14.1665 6.61752 13.4148 6.723 12.656H4.066C3.96052 13.4148 3.80924 14.1665 3.613 14.907H0.944C0.703507 15.8176 0.387753 16.7067 0 17.565H2.669C2.2859 18.4179 1.82388 19.2331 1.289 20H3.945C4.47988 19.2331 4.9419 18.4179 5.325 17.565H7.99C8.376 16.714 8.691 15.823 8.935 14.907Z",
264
105
  class: "fill-black dark:fill-white"
265
106
  }, null, -1)])]);
266
107
  }
267
- var BracketRight_default = /* @__PURE__ */ export_helper_default(_sfc_main$12, [["render", _sfc_render$1]]);
268
-
108
+ var BracketRight_default = /* @__PURE__ */ export_helper_default(_sfc_main$4, [["render", _sfc_render]]);
269
109
  //#endregion
270
110
  //#region src/client/webcomponents/components/Dock.vue
271
- const _hoisted_1$6 = {
111
+ const _hoisted_1 = {
272
112
  key: 0,
273
113
  class: "i-fluent-emoji-flat-warning absolute bottom-0 right--1px w-1.5 h-1.5"
274
114
  };
275
- const _hoisted_2$5 = { class: "flex items-center gap-1" };
115
+ const _hoisted_2 = { class: "flex items-center gap-1" };
276
116
  const PANEL_MARGIN = 2;
277
117
  const SNAP_THRESHOLD = 2;
278
- const _sfc_main$11 = /* @__PURE__ */ defineComponent({
118
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
279
119
  __name: "Dock",
280
120
  props: { context: {} },
281
121
  setup(__props) {
@@ -327,8 +167,16 @@ const _sfc_main$11 = /* @__PURE__ */ defineComponent({
327
167
  isRpcTrusted.value = isTrusted;
328
168
  if (isTrusted && context.docks.selected?.id === BUILTIN_ENTRY_CLIENT_AUTH_NOTICE.id) context.docks.switchEntry(null);
329
169
  });
170
+ const isPopupEntryVisible = computed(() => isDockPopupEntryVisible());
171
+ const groupedEntries = computed(() => {
172
+ if (isPopupEntryVisible.value) return context.docks.groupedEntries;
173
+ return filterPopupDockEntry(context.docks.groupedEntries);
174
+ });
330
175
  const splitedEntries = computed(() => {
331
- return docksSplitGroupsWithCapacity(context.docks.groupedEntries, 5);
176
+ return docksSplitGroupsWithCapacity(groupedEntries.value, 5);
177
+ });
178
+ const selectedEntry = computed(() => {
179
+ return context.docks.selected;
332
180
  });
333
181
  onMounted(async () => {
334
182
  windowSize.width = window.innerWidth;
@@ -442,11 +290,11 @@ const _sfc_main$11 = /* @__PURE__ */ defineComponent({
442
290
  ref_key: "anchorEl",
443
291
  ref: anchorEl,
444
292
  style: normalizeStyle([anchorStyle.value]),
445
- class: normalizeClass({
293
+ class: normalizeClass([{
446
294
  "vite-devtools-horizontal": !unref(context).panel.isVertical,
447
295
  "vite-devtools-vertical": unref(context).panel.isVertical,
448
296
  "vite-devtools-minimized": isMinimized.value
449
- }),
297
+ }, "color-base"]),
450
298
  onMousemove: bringUp
451
299
  }, [
452
300
  !unref(isSafari) ? (openBlock(), createElementBlock("div", {
@@ -471,30 +319,30 @@ const _sfc_main$11 = /* @__PURE__ */ defineComponent({
471
319
  }, [
472
320
  createVNode(BracketLeft_default, { class: "vite-devtools-dock-bracket absolute left--1 top-1/2 translate-y--1/2 bottom-0 w-2.5 op75 transition-opacity duration-300" }),
473
321
  createVNode(BracketRight_default, { class: normalizeClass(["vite-devtools-dock-bracket absolute right--1 top-1/2 translate-y--1/2 bottom-0 w-2.5 op75 transition-opacity duration-300", unref(context).panel.isVertical ? "scale-y--100" : ""]) }, null, 8, ["class"]),
474
- createBaseVNode("div", { class: normalizeClass(["w-3 h-3 absolute left-1/2 top-1/2 translate-x--1/2 translate-y--1/2 transition-opacity duration-300", [isMinimized.value ? "op100" : "op0", unref(context).panel.isVertical ? "rotate-270" : "rotate-0"]]) }, [createVNode(VitePlusCore_default), !isRpcTrusted.value ? (openBlock(), createElementBlock("div", _hoisted_1$6)) : createCommentVNode("v-if", true)], 2),
322
+ createBaseVNode("div", { class: normalizeClass(["w-3 h-3 absolute left-1/2 top-1/2 translate-x--1/2 translate-y--1/2 transition-opacity duration-300", [isMinimized.value ? "op100" : "op0", unref(context).panel.isVertical ? "rotate-270" : "rotate-0"]]) }, [createVNode(VitePlusCore_default), !isRpcTrusted.value ? (openBlock(), createElementBlock("div", _hoisted_1)) : createCommentVNode("v-if", true)], 2),
475
323
  !isRpcTrusted.value ? (openBlock(), createElementBlock("div", {
476
324
  key: 0,
477
325
  class: normalizeClass(["transition duration-300 delay-200", isMinimized.value ? "opacity-0 pointer-events-none ws-nowrap text-sm text-orange of-hidden" : "opacity-100"])
478
326
  }, [createBaseVNode("button", {
479
327
  class: "p2 transition hover:bg-active rounded-full px4",
480
328
  onClick: _cache[0] || (_cache[0] = ($event) => unref(context).docks.toggleEntry(unref(BUILTIN_ENTRY_CLIENT_AUTH_NOTICE).id))
481
- }, [createBaseVNode("div", _hoisted_2$5, [createBaseVNode("div", { class: normalizeClass(["i-fluent-emoji-flat-warning flex-none", unref(context).panel.isVertical ? "rotate-270" : "rotate-0"]) }, null, 2), _cache[3] || (_cache[3] = createBaseVNode("div", { class: "ws-nowrap text-amber" }, " Unauthorized ", -1))])])], 2)) : createCommentVNode("v-if", true),
482
- createBaseVNode("div", { class: normalizeClass([isMinimized.value ? "opacity-0 pointer-events-none" : "opacity-100", "transition duration-200 flex items-center w-full h-full justify-center px3"]) }, [createVNode(_sfc_main$15, {
329
+ }, [createBaseVNode("div", _hoisted_2, [createBaseVNode("div", { class: normalizeClass(["i-fluent-emoji-flat-warning flex-none", unref(context).panel.isVertical ? "rotate-270" : "rotate-0"]) }, null, 2), _cache[3] || (_cache[3] = createBaseVNode("div", { class: "ws-nowrap text-amber" }, " Unauthorized ", -1))])])], 2)) : createCommentVNode("v-if", true),
330
+ createBaseVNode("div", { class: normalizeClass([isMinimized.value ? "opacity-0 pointer-events-none" : "opacity-100", "transition duration-200 flex items-center w-full h-full justify-center px3"]) }, [createVNode(_sfc_main$7, {
483
331
  context: unref(context),
484
332
  groups: splitedEntries.value.visible,
485
333
  "is-vertical": unref(context).panel.isVertical,
486
- selected: unref(context).docks.selected,
334
+ selected: selectedEntry.value,
487
335
  onSelect: _cache[1] || (_cache[1] = (e) => unref(context).docks.switchEntry(e?.id))
488
336
  }, null, 8, [
489
337
  "context",
490
338
  "groups",
491
339
  "is-vertical",
492
340
  "selected"
493
- ]), splitedEntries.value.overflow.length > 0 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [_cache[4] || (_cache[4] = createBaseVNode("div", { class: "border-base m1 h-20px w-px border-r-1.5" }, null, -1)), createVNode(_sfc_main$14, {
341
+ ]), splitedEntries.value.overflow.length > 0 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [_cache[4] || (_cache[4] = createBaseVNode("div", { class: "border-base m1 h-20px w-px border-r-1.5" }, null, -1)), createVNode(_sfc_main$6, {
494
342
  context: unref(context),
495
343
  "is-vertical": unref(context).panel.isVertical,
496
344
  groups: splitedEntries.value.overflow,
497
- selected: unref(context).docks.selected,
345
+ selected: selectedEntry.value,
498
346
  onSelect: _cache[2] || (_cache[2] = (e) => unref(context).docks.switchEntry(e?.id))
499
347
  }, null, 8, [
500
348
  "context",
@@ -507,88 +355,11 @@ const _sfc_main$11 = /* @__PURE__ */ defineComponent({
507
355
  };
508
356
  }
509
357
  });
510
-
511
- //#endregion
512
- //#region src/client/webcomponents/utils/PersistedDomViewsManager.ts
513
- var PersistedDomViewsManager = class {
514
- holders = {};
515
- constructor(container) {
516
- this.container = container;
517
- }
518
- getHolder(id, _type) {
519
- return this.holders[id];
520
- }
521
- getOrCreateHolder(id, type) {
522
- if (!this.container.value) throw new Error("[VITE DEVTOOLS] PersistedDomViewsManager: container is not set");
523
- let holder;
524
- if (!this.holders[id]) {
525
- const el = document.createElement(type);
526
- this.holders[id] = new PersistedDomHolder(id, el);
527
- this.container.value.appendChild(el);
528
- holder = this.holders[id];
529
- } else holder = this.holders[id];
530
- return holder;
531
- }
532
- removeHolder(id) {
533
- const holder = this.holders[id];
534
- if (!holder) return false;
535
- holder.unmount();
536
- holder.element.remove();
537
- delete this.holders[id];
538
- return true;
539
- }
540
- };
541
- var PersistedDomHolder = class {
542
- element;
543
- id;
544
- anchor;
545
- _cleanups = [];
546
- constructor(id, iframe) {
547
- this.id = id;
548
- this.element = iframe;
549
- }
550
- cleanup() {
551
- this._cleanups.forEach((cleanup) => cleanup());
552
- this._cleanups = [];
553
- }
554
- mount(parent) {
555
- if (this.anchor === parent) {
556
- this.show();
557
- return;
558
- }
559
- this.cleanup();
560
- this.anchor = parent;
561
- const update = () => this.update();
562
- window.addEventListener("resize", update);
563
- this._cleanups.push(() => window.removeEventListener("resize", update));
564
- this.show();
565
- }
566
- hide() {
567
- this.element.style.display = "none";
568
- }
569
- show() {
570
- this.element.style.display = "block";
571
- this.update();
572
- }
573
- update() {
574
- if (!this.anchor) return;
575
- const rect = this.anchor.getBoundingClientRect();
576
- this.element.style.position = "absolute";
577
- this.element.style.width = `${rect.width}px`;
578
- this.element.style.height = `${rect.height}px`;
579
- }
580
- unmount() {
581
- this.cleanup();
582
- this.hide();
583
- this.anchor = void 0;
584
- }
585
- };
586
-
587
358
  //#endregion
588
359
  //#region src/client/webcomponents/components/DockPanelResizer.vue
589
360
  const PANEL_MIN = 20;
590
361
  const PANEL_MAX = 100;
591
- const _sfc_main$10 = /* @__PURE__ */ defineComponent({
362
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
592
363
  __name: "DockPanelResizer",
593
364
  props: { panel: {} },
594
365
  setup(__props) {
@@ -722,597 +493,9 @@ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
722
493
  };
723
494
  }
724
495
  });
725
-
726
- //#endregion
727
- //#region src/client/webcomponents/components/icons/VitePlus.vue
728
- const _sfc_main$9 = {};
729
- const _hoisted_1$5 = {
730
- viewBox: "0 0 40 40",
731
- fill: "none",
732
- xmlns: "http://www.w3.org/2000/svg"
733
- };
734
- function _sfc_render(_ctx, _cache) {
735
- return openBlock(), createElementBlock("svg", _hoisted_1$5, [..._cache[0] || (_cache[0] = [createStaticVNode("<path d=\"M21.1636 29.535C21.1017 29.6144 21.0166 29.6725 20.92 29.7012C20.8234 29.7298 20.7204 29.7276 20.6251 29.6947C20.5299 29.6619 20.4474 29.6001 20.389 29.518C20.3307 29.436 20.2994 29.3377 20.2996 29.237V24.834C20.2996 24.5775 20.1978 24.3316 20.0164 24.1502C19.8351 23.9689 19.5891 23.867 19.3326 23.867H14.4706C14.3819 23.867 14.2948 23.8426 14.219 23.7963C14.1432 23.7501 14.0816 23.6839 14.041 23.6049C14.0004 23.526 13.9823 23.4374 13.9888 23.3488C13.9952 23.2603 14.026 23.1752 14.0776 23.103L17.2746 18.628C17.3782 18.4833 17.4399 18.3129 17.4529 18.1354C17.4658 17.958 17.4296 17.7804 17.3481 17.6222C17.2666 17.464 17.1431 17.3314 16.9911 17.2389C16.8391 17.1464 16.6646 17.0977 16.4866 17.098H10.6036C10.5149 17.098 10.4278 17.0736 10.352 17.0273C10.2762 16.9811 10.2146 16.9149 10.174 16.8359C10.1334 16.757 10.1153 16.6684 10.1218 16.5798C10.1282 16.4913 10.159 16.4062 10.2106 16.334L14.3536 10.533C14.3982 10.47 14.4572 10.4186 14.5258 10.3833C14.5944 10.348 14.6705 10.3297 14.7476 10.33H27.0956C27.4886 10.33 27.7176 10.775 27.4886 11.094L24.2916 15.57C23.8346 16.21 24.2916 17.1 25.0796 17.1H29.9406C30.3446 17.1 30.5706 17.564 30.3206 17.882L21.1636 29.535Z\" fill=\"#6254FE\"></path><mask id=\"mask0_3_2\" style=\"mask-type:alpha;\" maskUnits=\"userSpaceOnUse\" x=\"10\" y=\"10\" width=\"21\" height=\"20\"><path d=\"M21.1636 29.535C21.1017 29.6144 21.0166 29.6725 20.92 29.7012C20.8234 29.7298 20.7204 29.7276 20.6251 29.6947C20.5299 29.6619 20.4474 29.6001 20.389 29.518C20.3307 29.436 20.2994 29.3377 20.2996 29.237V24.834C20.2996 24.5775 20.1978 24.3316 20.0164 24.1502C19.8351 23.9689 19.5891 23.867 19.3326 23.867H14.4706C14.3819 23.867 14.2948 23.8426 14.219 23.7963C14.1432 23.7501 14.0816 23.6839 14.041 23.6049C14.0004 23.526 13.9823 23.4374 13.9888 23.3488C13.9952 23.2603 14.026 23.1752 14.0776 23.103L17.2746 18.628C17.3782 18.4833 17.4399 18.3129 17.4529 18.1354C17.4658 17.958 17.4296 17.7804 17.3481 17.6222C17.2666 17.464 17.1431 17.3314 16.9911 17.2389C16.8391 17.1464 16.6646 17.0977 16.4866 17.098H10.6036C10.5149 17.098 10.4278 17.0736 10.352 17.0273C10.2762 16.9811 10.2146 16.9149 10.174 16.8359C10.1334 16.757 10.1153 16.6684 10.1218 16.5798C10.1282 16.4913 10.159 16.4062 10.2106 16.334L14.3536 10.533C14.3982 10.47 14.4572 10.4186 14.5258 10.3833C14.5944 10.348 14.6705 10.3297 14.7476 10.33H27.0956C27.4886 10.33 27.7176 10.775 27.4886 11.094L24.2916 15.57C23.8346 16.21 24.2916 17.1 25.0796 17.1H29.9406C30.3446 17.1 30.5706 17.564 30.3206 17.882L21.1636 29.535Z\" fill=\"#833BFF\"></path></mask><g mask=\"url(#mask0_3_2)\"><g filter=\"url(#filter0_f_3_2)\"><path d=\"M20.7408 26.1119C20.745 27.4119 17.935 28.475 14.4644 28.4863C10.9939 28.4975 8.17705 27.4527 8.17283 26.1527C8.16861 24.8526 10.9786 23.7895 14.4492 23.7783C17.9197 23.767 20.7365 24.8118 20.7408 26.1119Z\" fill=\"#EDE6FF\"></path></g><g filter=\"url(#filter1_f_3_2)\"><path d=\"M18.7973 18.0605C18.8053 20.5148 13.0998 22.523 6.05378 22.5458C-0.992227 22.5687 -6.71061 20.5976 -6.71858 18.1433C-6.72654 15.6889 -1.02108 13.6808 6.02493 13.6579C13.0709 13.635 18.7893 15.6061 18.7973 18.0605Z\" fill=\"#EDE6FF\"></path></g><g filter=\"url(#filter2_f_3_2)\"><path d=\"M18.8447 17.4381C18.8489 18.7382 13.0191 19.8111 5.82339 19.8344C-1.37229 19.8578 -7.20896 18.8228 -7.21318 17.5227C-7.2174 16.2226 -1.38757 15.1498 5.80811 15.1264C13.0038 15.1031 18.8405 16.1381 18.8447 17.4381Z\" fill=\"#4E14FF\"></path></g><g filter=\"url(#filter3_f_3_2)\"><path d=\"M20.9053 25.1293C20.9095 26.4294 15.0581 27.5022 7.83591 27.5256C0.613678 27.549 -5.24451 26.5141 -5.24872 25.214C-5.25293 23.9139 0.598424 22.841 7.82065 22.8176C15.0429 22.7942 20.9011 23.8292 20.9053 25.1293Z\" fill=\"#4E14FF\"></path></g><g filter=\"url(#filter4_f_3_2)\"><path d=\"M21.561 25.6205C21.5652 26.9206 15.7139 27.9935 8.49167 28.017C1.26948 28.0404 -4.58868 27.0055 -4.5929 25.7054C-4.59712 24.4054 1.2542 23.3324 8.47639 23.309C15.6986 23.2855 21.5567 24.3205 21.561 25.6205Z\" fill=\"#4E14FF\"></path></g><g filter=\"url(#filter5_f_3_2)\"><path d=\"M23.3606 14.7039C23.5547 11.3881 27.9295 8.94703 33.1319 9.25155C38.3344 9.55608 42.3945 12.4909 42.2004 15.8067C42.0063 19.1224 37.6315 21.5635 32.4291 21.259C27.2266 20.9545 23.1665 18.0196 23.3606 14.7039Z\" fill=\"#EDE6FF\"></path></g><g filter=\"url(#filter6_f_3_2)\"><path d=\"M24.0654 16.8853C24.0512 16.0664 28.1532 15.3313 33.2274 15.2436C38.3016 15.1558 42.4265 15.7485 42.4407 16.5674C42.4548 17.3863 38.3529 18.1214 33.2787 18.2091C28.2045 18.2969 24.0796 17.7042 24.0654 16.8853Z\" fill=\"#4E14FF\"></path></g><g filter=\"url(#filter7_f_3_2)\"><path d=\"M24.0654 16.8853C24.0512 16.0664 28.1532 15.3313 33.2274 15.2436C38.3016 15.1558 42.4265 15.7485 42.4407 16.5674C42.4548 17.3863 38.3529 18.1214 33.2787 18.2091C28.2045 18.2969 24.0796 17.7042 24.0654 16.8853Z\" fill=\"#4E14FF\"></path></g><g filter=\"url(#filter8_f_3_2)\"><path d=\"M2.32515 23.7616C3.12749 24.4233 7.32135 20.6626 11.6924 15.362C16.0635 10.0614 18.9565 5.228 18.1541 4.56637C17.3518 3.90474 13.1579 7.66538 8.78688 12.966C4.41583 18.2666 1.52282 23.1 2.32515 23.7616Z\" fill=\"#4E14FF\"></path></g><g filter=\"url(#filter9_f_3_2)\"><path d=\"M22.7441 17.5449C23.5648 18.1836 27.6508 14.306 31.8704 8.8841C36.0901 3.46217 38.8455 -1.45095 38.0248 -2.08966C37.2041 -2.72838 33.1181 1.14919 28.8984 6.57112C24.6788 11.993 21.9234 16.9062 22.7441 17.5449Z\" fill=\"#4E14FF\"></path></g><g filter=\"url(#filter10_f_3_2)\"><path d=\"M24.2638 18.7387C25.8062 19.9392 28.5247 19.0259 30.3357 16.6989C32.1467 14.372 32.3644 11.5124 30.8219 10.312C29.2795 9.11157 26.561 10.0248 24.75 12.3518C22.939 14.6788 22.7213 17.5383 24.2638 18.7387Z\" fill=\"#2BFDD2\"></path></g><g filter=\"url(#filter11_f_3_2)\"><path d=\"M1.6313 36.5293C2.452 37.168 6.53801 33.2904 10.7576 27.8685C14.9773 22.4465 17.7327 17.5334 16.912 16.8947C16.0913 16.256 12.0053 20.1336 7.78563 25.5555C3.56599 30.9774 0.810605 35.8905 1.6313 36.5293Z\" fill=\"#4E14FF\"></path></g><g filter=\"url(#filter12_f_3_2)\"><path d=\"M1.6313 36.5293C2.452 37.168 6.53801 33.2904 10.7576 27.8685C14.9773 22.4465 17.7327 17.5334 16.912 16.8947C16.0913 16.256 12.0053 20.1336 7.78563 25.5555C3.56599 30.9774 0.810605 35.8905 1.6313 36.5293Z\" fill=\"#4E14FF\"></path></g><g filter=\"url(#filter13_f_3_2)\"><path d=\"M17.5773 32.8563C18.4494 33.535 22.5771 29.6899 26.7968 24.268C31.0164 18.846 33.7301 13.9005 32.858 13.2217C31.9859 12.543 27.8582 16.3881 23.6385 21.81C19.4189 27.232 16.7052 32.1775 17.5773 32.8563Z\" fill=\"#4E14FF\"></path></g><g filter=\"url(#filter14_f_3_2)\"><path d=\"M21.6002 31.5389C23.0982 32.7047 26.7882 30.4688 29.842 26.5449C32.8958 22.621 34.1571 18.4949 32.6591 17.3291C31.1611 16.1633 27.4711 18.3991 24.4173 22.3231C21.3635 26.247 20.1022 30.3731 21.6002 31.5389Z\" fill=\"#2BFDD2\"></path></g></g><path d=\"M6.95763 10C3.02563 15.628 3.00263 24.351 6.95763 30H9.61363C5.65963 24.35 5.68363 15.627 9.61363 10H6.95763ZM33.9386 20H36.5956C36.5946 16.407 35.6056 12.816 33.6386 10H30.9826C32.9486 12.816 33.9366 16.407 33.9386 20ZM38.6276 24.907H35.9626C36.1589 24.1665 36.3102 23.4148 36.4156 22.656H33.7586C33.6531 23.4148 33.5019 24.1665 33.3056 24.907H30.6366C30.3961 25.8176 30.0804 26.7067 29.6926 27.565H32.3616C31.9785 28.4179 31.5165 29.2331 30.9816 30H33.6376C34.1725 29.2331 34.6345 28.4179 35.0176 27.565H37.6826C38.0686 26.714 38.3836 25.823 38.6276 24.907Z\" fill=\"#08060D\" class=\"fill-hex-08060D dark:fill-hex-fff\"></path><defs><filter id=\"filter0_f_3_2\" x=\"1.62683\" y=\"17.2322\" width=\"25.6599\" height=\"17.8001\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"3.273\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter1_f_3_2\" x=\"-13.2646\" y=\"7.11168\" width=\"38.6079\" height=\"21.9804\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"3.273\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter2_f_3_2\" x=\"-11.1412\" y=\"11.198\" width=\"33.9139\" height=\"12.5648\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"1.964\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter3_f_3_2\" x=\"-9.17672\" y=\"18.8893\" width=\"34.01\" height=\"12.5648\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"1.964\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter4_f_3_2\" x=\"-8.5209\" y=\"19.3806\" width=\"34.0099\" height=\"12.5648\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"1.964\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter5_f_3_2\" x=\"16.8079\" y=\"2.67989\" width=\"31.9451\" height=\"25.1508\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"3.273\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter6_f_3_2\" x=\"20.1374\" y=\"11.307\" width=\"26.2313\" height=\"10.8388\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"1.964\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter7_f_3_2\" x=\"20.1374\" y=\"11.307\" width=\"26.2313\" height=\"10.8388\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"1.964\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter8_f_3_2\" x=\"-1.73649\" y=\"0.562875\" width=\"23.9523\" height=\"27.2023\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"1.964\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter9_f_3_2\" x=\"18.6715\" y=\"-6.08651\" width=\"23.4259\" height=\"27.6282\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"1.964\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter10_f_3_2\" x=\"19.3075\" y=\"5.85539\" width=\"16.4707\" height=\"17.3399\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"1.964\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter11_f_3_2\" x=\"-2.44132\" y=\"12.8979\" width=\"23.4259\" height=\"27.6282\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"1.964\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter12_f_3_2\" x=\"-2.44132\" y=\"12.8979\" width=\"23.4259\" height=\"27.6282\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"1.964\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter13_f_3_2\" x=\"13.4863\" y=\"9.21607\" width=\"23.4628\" height=\"27.6459\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"1.964\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter><filter id=\"filter14_f_3_2\" x=\"17.0414\" y=\"13.0922\" width=\"20.1765\" height=\"22.6836\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feGaussianBlur stdDeviation=\"1.964\" result=\"effect1_foregroundBlur_3_2\"></feGaussianBlur></filter></defs>", 5)])]);
736
- }
737
- var VitePlus_default = /* @__PURE__ */ export_helper_default(_sfc_main$9, [["render", _sfc_render]]);
738
-
739
- //#endregion
740
- //#region src/client/webcomponents/components/ViewBuiltinClientAuthNotice.vue
741
- const _hoisted_1$4 = { class: "w-full h-full flex flex-col items-center justify-center p20" };
742
- const _hoisted_2$4 = { class: "max-w-150 flex flex-col items-center justify-center gap-2" };
743
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
744
- __name: "ViewBuiltinClientAuthNotice",
745
- props: { context: {} },
746
- setup(__props) {
747
- return (_ctx, _cache) => {
748
- return openBlock(), createElementBlock("div", _hoisted_1$4, [createBaseVNode("div", _hoisted_2$4, [
749
- createVNode(VitePlus_default, { class: "w-20 h-20" }),
750
- _cache[0] || (_cache[0] = createBaseVNode("h1", { class: "text-2xl font-bold text-violet mb2" }, " Vite DevTools is Unauthorized ", -1)),
751
- _cache[1] || (_cache[1] = createBaseVNode("p", { class: "op75" }, " Vite DevTools offers advanced features that can access your server, view your filesystem, and execute commands. ", -1)),
752
- _cache[2] || (_cache[2] = createBaseVNode("p", { class: "op75" }, " To protect your project from unauthorized access, please authorize your browser before proceeding. ", -1)),
753
- _cache[3] || (_cache[3] = createBaseVNode("p", { class: "font-bold bg-green:5 p1 px3 rounded mt8 text-green" }, " Check your terminal for the authorization prompt and come back. ", -1))
754
- ])]);
755
- };
756
- }
757
- });
758
-
759
- //#endregion
760
- //#region src/client/webcomponents/components/ViewBuiltinSettings.vue
761
- const _hoisted_1$3 = { class: "h-screen w-full overflow-auto p10" };
762
- const _hoisted_2$3 = { class: "max-w-200 mx-auto" };
763
- const _hoisted_3$2 = { class: "mb-8" };
764
- const _hoisted_4$1 = { class: "flex flex-col gap-4" };
765
- const _hoisted_5$1 = { class: "flex items-center gap-2 px-4 py-3 bg-gray/5 cursor-pointer select-none border-b border-base" };
766
- const _hoisted_6 = ["onClick"];
767
- const _hoisted_7 = { class: "font-medium capitalize" };
768
- const _hoisted_8 = { class: "text-xs op40" };
769
- const _hoisted_9 = ["onClick"];
770
- const _hoisted_10 = ["title", "onClick"];
771
- const _hoisted_11 = {
772
- key: 0,
773
- class: "i-ph-check-bold text-xs"
774
- };
775
- const _hoisted_12 = { class: "flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity" };
776
- const _hoisted_13 = ["onClick"];
777
- const _hoisted_14 = ["onClick"];
778
- const _hoisted_15 = ["title", "onClick"];
779
- const _hoisted_16 = { class: "border-t border-base pt-6 mb-8" };
780
- const _hoisted_17 = { class: "flex flex-col gap-3" };
781
- const _hoisted_18 = { class: "flex items-center gap-3 cursor-pointer group" };
782
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
783
- __name: "ViewBuiltinSettings",
784
- props: {
785
- context: {},
786
- entry: {}
787
- },
788
- setup(__props) {
789
- const props = __props;
790
- const settingsStore = props.context.docks.settings;
791
- const settings = sharedStateToRef(settingsStore);
792
- const categories = computed(() => {
793
- return docksGroupByCategories(props.context.docks.entries, settingsStore.value(), { includeHidden: true });
794
- });
795
- function getCategoryLabel(category) {
796
- return {
797
- "~viteplus": "Vite+",
798
- "default": "Default",
799
- "app": "App",
800
- "framework": "Framework",
801
- "web": "Web",
802
- "advanced": "Advanced",
803
- "~builtin": "Built-in"
804
- }[category] || category;
805
- }
806
- function toggleDock(id, visible) {
807
- const isHidden = settings.value.docksHidden.includes(id);
808
- if (visible ?? isHidden) settingsStore.mutate((state) => {
809
- state.docksHidden = state.docksHidden.filter((i) => i !== id);
810
- });
811
- else settingsStore.mutate((state) => {
812
- state.docksHidden = [...state.docksHidden, id];
813
- });
814
- }
815
- function toggleCategory(category, visible) {
816
- const isHidden = settings.value.docksCategoriesHidden.includes(category);
817
- if (visible ?? isHidden) settingsStore.mutate((state) => {
818
- state.docksCategoriesHidden = state.docksCategoriesHidden.filter((i) => i !== category);
819
- });
820
- else settingsStore.mutate((state) => {
821
- state.docksCategoriesHidden = [...state.docksCategoriesHidden, category];
822
- });
823
- }
824
- function togglePin(id) {
825
- if (settings.value.docksPinned.includes(id)) settingsStore.mutate((state) => {
826
- state.docksPinned = state.docksPinned.filter((i) => i !== id);
827
- });
828
- else settingsStore.mutate((state) => {
829
- state.docksPinned = [...state.docksPinned, id];
830
- });
831
- }
832
- function isInCustomOrder(id) {
833
- return settings.value.docksCustomOrder[id] !== void 0;
834
- }
835
- function moveOrder(category, id, delta) {
836
- const items = categories.value.find(([cat]) => cat === category);
837
- if (!items) throw new Error(`Category ${category} not found`);
838
- const array = [...items[1]];
839
- const index = array.findIndex((item) => item.id === id);
840
- const newIndex = index + delta;
841
- if (newIndex < 0 || newIndex >= array.length) throw new Error(`Invalid new index ${newIndex} for category ${category}`);
842
- array.splice(newIndex, 0, array.splice(index, 1)[0]);
843
- items[1] = array;
844
- settingsStore.mutate((state) => {
845
- array.forEach((item, index) => {
846
- state.docksCustomOrder[item.id] = index;
847
- });
848
- });
849
- }
850
- function doesCategoryHaveCustomOrder(category) {
851
- const items = categories.value.find(([cat]) => cat === category);
852
- if (!items) return false;
853
- return items[1].some((item) => isInCustomOrder(item.id));
854
- }
855
- function resetCustomOrderForCategory(category) {
856
- const items = categories.value.find(([cat]) => cat === category);
857
- if (!items) return;
858
- settingsStore.mutate((state) => {
859
- items[1].forEach((item) => {
860
- delete state.docksCustomOrder[item.id];
861
- });
862
- });
863
- }
864
- function resetSettings() {
865
- if (confirm("Reset all dock settings to defaults?")) settingsStore.mutate(() => {
866
- return DEFAULT_STATE_USER_SETTINGS();
867
- });
868
- }
869
- return (_ctx, _cache) => {
870
- return openBlock(), createElementBlock("div", _hoisted_1$3, [createBaseVNode("div", _hoisted_2$3, [
871
- _cache[11] || (_cache[11] = createBaseVNode("h1", { class: "text-xl font-semibold mb-6 flex items-center gap-2 op85" }, [createBaseVNode("div", { class: "i-ph-gear-duotone text-2xl" }), createTextVNode(" DevTools Settings ")], -1)),
872
- createBaseVNode("section", _hoisted_3$2, [
873
- _cache[5] || (_cache[5] = createBaseVNode("h2", { class: "text-lg font-medium mb-4 op75" }, " Dock Entries ", -1)),
874
- _cache[6] || (_cache[6] = createBaseVNode("p", { class: "text-sm op50 mb-4" }, " Manage visibility and order of dock entries. Hidden entries will not appear in the dock bar. ", -1)),
875
- createBaseVNode("div", _hoisted_4$1, [(openBlock(true), createElementBlock(Fragment, null, renderList(categories.value, ([category, entries]) => {
876
- return openBlock(), createElementBlock("div", {
877
- key: category,
878
- class: normalizeClass(["border border-base rounded-lg overflow-hidden transition-opacity", unref(settings).docksCategoriesHidden.includes(category) ? "op40" : ""])
879
- }, [
880
- createCommentVNode(" Category header "),
881
- createBaseVNode("div", _hoisted_5$1, [
882
- createBaseVNode("button", {
883
- class: normalizeClass(["w-5 h-5 flex items-center justify-center rounded transition-colors", unref(settings).docksCategoriesHidden.includes(category) ? "bg-gray/20" : "bg-lime/20 text-lime"]),
884
- onClick: ($event) => toggleCategory(category)
885
- }, [createBaseVNode("div", { class: normalizeClass(["transition-transform", unref(settings).docksCategoriesHidden.includes(category) ? "i-ph-eye-slash text-sm op50" : "i-ph-check-bold text-xs"]) }, null, 2)], 10, _hoisted_6),
886
- createBaseVNode("span", _hoisted_7, toDisplayString(getCategoryLabel(category)), 1),
887
- createBaseVNode("span", _hoisted_8, "(" + toDisplayString(entries.length) + ")", 1),
888
- _cache[2] || (_cache[2] = createBaseVNode("span", { class: "flex-auto" }, null, -1)),
889
- doesCategoryHaveCustomOrder(category) ? (openBlock(), createElementBlock("button", {
890
- key: 0,
891
- class: "w-6 h-6 flex items-center justify-center rounded hover:bg-gray/20 transition-colors",
892
- title: "Reset custom order",
893
- onClick: ($event) => resetCustomOrderForCategory(category)
894
- }, [..._cache[1] || (_cache[1] = [createBaseVNode("div", { class: "i-ph-arrows-counter-clockwise-duotone text-sm op60" }, null, -1)])], 8, _hoisted_9)) : createCommentVNode("v-if", true)
895
- ]),
896
- createCommentVNode(" Entries "),
897
- createBaseVNode("div", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(entries, (dock, index) => {
898
- return openBlock(), createElementBlock("div", {
899
- key: dock.id,
900
- class: normalizeClass(["flex items-center gap-3 px-4 py-2.5 hover:bg-gray/5 transition-colors group border-b border-base border-t-0", unref(settings).docksHidden.includes(dock.id) ? "op40" : ""])
901
- }, [
902
- createCommentVNode(" Visibility toggle "),
903
- createBaseVNode("button", {
904
- class: normalizeClass(["w-6 h-6 flex items-center justify-center rounded border border-transparent hover:border-base transition-colors shrink-0", unref(settings).docksHidden.includes(dock.id) ? "op50" : ""]),
905
- title: unref(settings).docksHidden.includes(dock.id) ? "Show" : "Hide",
906
- onClick: ($event) => toggleDock(dock.id)
907
- }, [createBaseVNode("div", { class: normalizeClass(["w-4 h-4 rounded flex items-center justify-center transition-colors", unref(settings).docksHidden.includes(dock.id) ? "bg-gray/30" : "bg-lime/20 text-lime"]) }, [!unref(settings).docksHidden.includes(dock.id) ? (openBlock(), createElementBlock("div", _hoisted_11)) : createCommentVNode("v-if", true)], 2)], 10, _hoisted_10),
908
- createCommentVNode(" Icon & Title "),
909
- createVNode(_sfc_main$18, {
910
- icon: dock.icon,
911
- title: dock.title,
912
- class: normalizeClass(["w-5 h-5 shrink-0", unref(settings).docksHidden.includes(dock.id) ? "saturate-0" : ""])
913
- }, null, 8, [
914
- "icon",
915
- "title",
916
- "class"
917
- ]),
918
- createBaseVNode("span", { class: normalizeClass(["flex-1 truncate", unref(settings).docksHidden.includes(dock.id) ? "line-through op60" : ""]) }, toDisplayString(dock.title), 3),
919
- createCommentVNode(" Order controls "),
920
- createBaseVNode("div", _hoisted_12, [index > 0 ? (openBlock(), createElementBlock("button", {
921
- key: 0,
922
- class: "w-6 h-6 flex items-center justify-center rounded hover:bg-gray/20 transition-colors",
923
- title: "Move up (higher priority)",
924
- onClick: ($event) => moveOrder(category, dock.id, -1)
925
- }, [..._cache[3] || (_cache[3] = [createBaseVNode("div", { class: "i-ph-caret-up text-sm op60" }, null, -1)])], 8, _hoisted_13)) : createCommentVNode("v-if", true), index < entries.length - 1 ? (openBlock(), createElementBlock("button", {
926
- key: 1,
927
- class: "w-6 h-6 flex items-center justify-center rounded hover:bg-gray/20 transition-colors",
928
- title: "Move down (lower priority)",
929
- onClick: ($event) => moveOrder(category, dock.id, 1)
930
- }, [..._cache[4] || (_cache[4] = [createBaseVNode("div", { class: "i-ph-caret-down text-sm op60" }, null, -1)])], 8, _hoisted_14)) : createCommentVNode("v-if", true)]),
931
- createCommentVNode(" Pin toggle "),
932
- createBaseVNode("button", {
933
- class: normalizeClass(["w-7 h-7 flex items-center justify-center rounded hover:bg-gray/20 transition-colors shrink-0", unref(settings).docksPinned.includes(dock.id) ? "text-amber" : "op40 hover:op70"]),
934
- title: unref(settings).docksPinned.includes(dock.id) ? "Unpin" : "Pin",
935
- onClick: ($event) => togglePin(dock.id)
936
- }, [createBaseVNode("div", { class: normalizeClass([unref(settings).docksPinned.includes(dock.id) ? "i-ph-push-pin-fill rotate--45" : "i-ph-push-pin", "text-base"]) }, null, 2)], 10, _hoisted_15)
937
- ], 2);
938
- }), 128))])
939
- ], 2);
940
- }), 128))])
941
- ]),
942
- createBaseVNode("section", _hoisted_16, [_cache[8] || (_cache[8] = createBaseVNode("h2", { class: "text-lg font-medium mb-4 op75" }, " Appearance ", -1)), createBaseVNode("div", _hoisted_17, [createCommentVNode(" Show iframe address bar toggle "), createBaseVNode("label", _hoisted_18, [createBaseVNode("button", {
943
- class: normalizeClass(["w-10 h-6 rounded-full transition-colors relative shrink-0", unref(settings).showIframeAddressBar ? "bg-lime" : "bg-gray/30"]),
944
- onClick: _cache[0] || (_cache[0] = ($event) => unref(settingsStore).mutate((s) => {
945
- s.showIframeAddressBar = !s.showIframeAddressBar;
946
- }))
947
- }, [createBaseVNode("div", { class: normalizeClass(["absolute top-1 w-4 h-4 rounded-full bg-white shadow transition-transform", unref(settings).showIframeAddressBar ? "translate-x-5" : "translate-x-1"]) }, null, 2)], 2), _cache[7] || (_cache[7] = createBaseVNode("div", { class: "flex flex-col" }, [createBaseVNode("span", { class: "text-sm" }, "Show iframe address bar"), createBaseVNode("span", { class: "text-xs op50" }, "Display navigation controls and URL bar for iframe views")], -1))])])]),
948
- createBaseVNode("section", { class: "border-t border-base pt-6" }, [_cache[10] || (_cache[10] = createBaseVNode("h2", { class: "text-lg font-medium mb-4 op75" }, " Reset ", -1)), createBaseVNode("button", {
949
- class: "px-4 py-2 rounded bg-red/10 text-red hover:bg-red/20 transition-colors flex items-center gap-2",
950
- onClick: resetSettings
951
- }, [..._cache[9] || (_cache[9] = [createBaseVNode("div", { class: "i-ph-arrow-counter-clockwise" }, null, -1), createTextVNode(" Reset Dock Settings ", -1)])])])
952
- ])]);
953
- };
954
- }
955
- });
956
-
957
- //#endregion
958
- //#region src/client/webcomponents/components/ViewCustomRenderer.vue
959
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
960
- __name: "ViewCustomRenderer",
961
- props: {
962
- context: {},
963
- entry: {},
964
- persistedDoms: {},
965
- divStyle: {}
966
- },
967
- setup(__props) {
968
- const props = __props;
969
- const isLoading = ref(true);
970
- const viewFrame = useTemplateRef("viewFrame");
971
- onMounted(() => {
972
- const holder = props.persistedDoms.getOrCreateHolder(props.entry.id, "div");
973
- holder.element.style.boxShadow = "none";
974
- holder.element.style.outline = "none";
975
- Object.assign(holder.element.style, props.divStyle);
976
- const entryState = props.context.docks.getStateById(props.entry.id);
977
- if (entryState) entryState.domElements.panel = holder.element;
978
- holder.mount(viewFrame.value);
979
- isLoading.value = false;
980
- nextTick(() => {
981
- holder.update();
982
- });
983
- watch(() => props.context.panel, () => {
984
- holder.update();
985
- }, { deep: true });
986
- watchEffect(() => {
987
- holder.element.style.pointerEvents = props.context.panel.isDragging || props.context.panel.isResizing ? "none" : "auto";
988
- }, { flush: "sync" });
989
- });
990
- onUnmounted(() => {
991
- props.persistedDoms.getHolder(props.entry.id, "div")?.unmount();
992
- });
993
- return (_ctx, _cache) => {
994
- return openBlock(), createElementBlock("div", {
995
- ref_key: "viewFrame",
996
- ref: viewFrame,
997
- class: "vite-devtools-view-custom-renderer w-full h-full flex items-center justify-center"
998
- }, null, 512);
999
- };
1000
- }
1001
- });
1002
-
1003
- //#endregion
1004
- //#region src/client/webcomponents/components/ViewIframe.vue
1005
- const _hoisted_1$2 = { class: "w-full h-full flex flex-col" };
1006
- const _hoisted_2$2 = { class: "flex-1 flex items-center h-8 px-2.5 rounded bg-gray/10 border border-transparent hover:border-gray/20 focus-within:border-gray/30 transition-colors" };
1007
- const _hoisted_3$1 = ["value", "readonly"];
1008
- const _hoisted_4 = {
1009
- key: 0,
1010
- class: "i-ph-circle-notch text-sm op40 ml-2 shrink-0 animate-spin"
1011
- };
1012
- const _hoisted_5 = {
1013
- key: 0,
1014
- class: "op50 z--1"
1015
- };
1016
- const ADDRESS_BAR_HEIGHT = 50;
1017
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1018
- __name: "ViewIframe",
1019
- props: {
1020
- context: {},
1021
- entry: {},
1022
- persistedDoms: {},
1023
- iframeStyle: {}
1024
- },
1025
- setup(__props) {
1026
- const props = __props;
1027
- const settings = sharedStateToRef(props.context.docks.settings);
1028
- const showAddressBar = computed(() => settings.value.showIframeAddressBar ?? true);
1029
- const isLoading = ref(true);
1030
- const isIframeLoading = ref(false);
1031
- const viewFrame = useTemplateRef("viewFrame");
1032
- const urlInputRef = useTemplateRef("urlInput");
1033
- const currentUrl = ref(props.entry.url);
1034
- const editingUrl = ref(props.entry.url);
1035
- const isEditing = ref(false);
1036
- const iframeElement = computed(() => {
1037
- return props.persistedDoms.getHolder(props.entry.id, "iframe")?.element;
1038
- });
1039
- const currentPageOrigin = computed(() => {
1040
- try {
1041
- return window.location.origin;
1042
- } catch {
1043
- return "";
1044
- }
1045
- });
1046
- const isCrossOrigin = computed(() => {
1047
- try {
1048
- return new URL(currentUrl.value).origin !== currentPageOrigin.value;
1049
- } catch {
1050
- return true;
1051
- }
1052
- });
1053
- const displayUrl = computed(() => {
1054
- if (isCrossOrigin.value) return currentUrl.value;
1055
- try {
1056
- const url = new URL(currentUrl.value);
1057
- return url.pathname + url.search + url.hash;
1058
- } catch {
1059
- return currentUrl.value;
1060
- }
1061
- });
1062
- function updateCurrentUrl() {
1063
- try {
1064
- const iframe = iframeElement.value;
1065
- if (iframe?.contentWindow?.location?.href) currentUrl.value = iframe.contentWindow.location.href;
1066
- } catch {}
1067
- }
1068
- function navigateTo(url) {
1069
- const iframe = iframeElement.value;
1070
- if (!iframe) return;
1071
- let normalizedUrl = url.trim();
1072
- if (normalizedUrl && !normalizedUrl.match(/^https?:\/\//i)) if (normalizedUrl.startsWith("/")) normalizedUrl = `${window.location.origin}${normalizedUrl}`;
1073
- else normalizedUrl = `http://${normalizedUrl}`;
1074
- currentUrl.value = normalizedUrl;
1075
- editingUrl.value = normalizedUrl;
1076
- iframe.src = normalizedUrl;
1077
- isIframeLoading.value = true;
1078
- }
1079
- function handleUrlSubmit() {
1080
- isEditing.value = false;
1081
- if (editingUrl.value !== currentUrl.value) navigateTo(editingUrl.value);
1082
- }
1083
- function handleUrlFocus() {
1084
- isEditing.value = true;
1085
- editingUrl.value = currentUrl.value;
1086
- nextTick(() => {
1087
- urlInputRef.value?.select();
1088
- });
1089
- }
1090
- function handleUrlBlur() {
1091
- isEditing.value = false;
1092
- editingUrl.value = currentUrl.value;
1093
- }
1094
- function handleUrlKeydown(e) {
1095
- if (e.key === "Escape") {
1096
- isEditing.value = false;
1097
- editingUrl.value = currentUrl.value;
1098
- urlInputRef.value?.blur();
1099
- }
1100
- }
1101
- function goBack() {
1102
- try {
1103
- iframeElement.value?.contentWindow?.history.back();
1104
- } catch {}
1105
- }
1106
- function refresh() {
1107
- const iframe = iframeElement.value;
1108
- if (!iframe) return;
1109
- isIframeLoading.value = true;
1110
- const src = iframe.src;
1111
- iframe.src = "";
1112
- iframe.src = src;
1113
- }
1114
- onMounted(() => {
1115
- if (props.persistedDoms.getHolder(props.entry.id, "iframe")) updateCurrentUrl();
1116
- const holder = props.persistedDoms.getOrCreateHolder(props.entry.id, "iframe");
1117
- holder.element.style.boxShadow = "none";
1118
- holder.element.style.outline = "none";
1119
- if (!holder.element.src) holder.element.src = props.entry.url;
1120
- holder.element.addEventListener("load", () => {
1121
- isIframeLoading.value = false;
1122
- updateCurrentUrl();
1123
- });
1124
- const entryState = props.context.docks.getStateById(props.entry.id);
1125
- if (entryState) entryState.domElements.iframe = holder.element;
1126
- watchEffect(() => {
1127
- Object.assign(holder.element.style, props.iframeStyle);
1128
- if (showAddressBar.value) {
1129
- holder.element.style.marginTop = `${ADDRESS_BAR_HEIGHT}px`;
1130
- holder.element.style.borderTopLeftRadius = "0px";
1131
- holder.element.style.borderTopRightRadius = "0px";
1132
- } else {
1133
- holder.element.style.marginTop = "0px";
1134
- holder.element.style.borderTopLeftRadius = "";
1135
- holder.element.style.borderTopRightRadius = "";
1136
- }
1137
- });
1138
- watch(() => props.context.panel, () => {
1139
- holder.update();
1140
- }, { deep: true });
1141
- watchEffect(() => {
1142
- holder.element.style.pointerEvents = props.context.panel.isDragging || props.context.panel.isResizing ? "none" : "auto";
1143
- }, { flush: "sync" });
1144
- holder.mount(viewFrame.value);
1145
- isLoading.value = false;
1146
- nextTick(() => {
1147
- holder.update();
1148
- });
1149
- });
1150
- onUnmounted(() => {
1151
- props.persistedDoms.getHolder(props.entry.id, "iframe")?.unmount();
1152
- });
1153
- return (_ctx, _cache) => {
1154
- return openBlock(), createElementBlock("div", _hoisted_1$2, [showAddressBar.value ? (openBlock(), createElementBlock("div", {
1155
- key: 0,
1156
- class: "flex-none px-2 w-full flex items-center gap-1 border rounded-t-md border-base border-b-0 bg-gray/5",
1157
- style: normalizeStyle({ height: `${ADDRESS_BAR_HEIGHT}px` })
1158
- }, [
1159
- createCommentVNode(" Navigation buttons (hidden for cross-origin) "),
1160
- !isCrossOrigin.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
1161
- createCommentVNode(" Back button "),
1162
- createBaseVNode("button", {
1163
- class: "w-7 h-7 flex items-center justify-center rounded hover:bg-gray/15 transition-colors shrink-0",
1164
- title: "Back",
1165
- onClick: goBack
1166
- }, [..._cache[1] || (_cache[1] = [createBaseVNode("div", { class: "i-ph-caret-left text-base op60" }, null, -1)])]),
1167
- createCommentVNode(" Refresh button "),
1168
- createBaseVNode("button", {
1169
- class: "w-7 h-7 flex items-center justify-center rounded hover:bg-gray/15 transition-colors shrink-0",
1170
- title: "Refresh",
1171
- onClick: refresh
1172
- }, [..._cache[2] || (_cache[2] = [createBaseVNode("div", { class: "i-ph-arrow-clockwise text-base op60" }, null, -1)])])
1173
- ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createCommentVNode(" Cross-origin badge "), _cache[3] || (_cache[3] = createBaseVNode("div", {
1174
- class: "flex items-center gap-1 px-2 py-1 rounded text-xs bg-amber/10 text-amber border border-amber/20 shrink-0",
1175
- title: "Cross-origin iframe - navigation controls unavailable"
1176
- }, [createBaseVNode("div", { class: "i-ph-globe text-sm" }), createBaseVNode("span", null, "Cross-Origin")], -1))], 2112)),
1177
- createCommentVNode(" URL input "),
1178
- createBaseVNode("div", _hoisted_2$2, [createBaseVNode("input", {
1179
- ref: "urlInput",
1180
- value: isEditing.value ? editingUrl.value : displayUrl.value,
1181
- type: "text",
1182
- class: "flex-1 bg-transparent outline-none text-sm font-mono",
1183
- placeholder: "Enter URL...",
1184
- readonly: isCrossOrigin.value,
1185
- onInput: _cache[0] || (_cache[0] = ($event) => editingUrl.value = $event.target.value),
1186
- onFocus: handleUrlFocus,
1187
- onBlur: handleUrlBlur,
1188
- onKeydown: [handleUrlKeydown, withKeys(handleUrlSubmit, ["enter"])]
1189
- }, null, 40, _hoisted_3$1), isIframeLoading.value ? (openBlock(), createElementBlock("div", _hoisted_4)) : createCommentVNode("v-if", true)])
1190
- ], 4)) : createCommentVNode("v-if", true), createBaseVNode("div", {
1191
- ref_key: "viewFrame",
1192
- ref: viewFrame,
1193
- class: "vite-devtools-view-iframe w-full h-full flex-1 items-center justify-center"
1194
- }, [isLoading.value ? (openBlock(), createElementBlock("div", _hoisted_5, " Loading iframe... ")) : createCommentVNode("v-if", true)], 512)]);
1195
- };
1196
- }
1197
- });
1198
-
1199
- //#endregion
1200
- //#region src/client/webcomponents/components/ViewLauncher.vue
1201
- const _hoisted_1$1 = { class: "flex flex-col gap-4 items-center justify-center h-full relative" };
1202
- const _hoisted_2$1 = { class: "text-2xl font-bold" };
1203
- const _hoisted_3 = ["disabled"];
1204
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1205
- __name: "ViewLauncher",
1206
- props: {
1207
- context: {},
1208
- entry: {}
1209
- },
1210
- setup(__props) {
1211
- const props = __props;
1212
- function onLaunch() {
1213
- props.context.rpc.call("devtoolskit:internal:docks:on-launch", props.entry.id);
1214
- }
1215
- const status = computed(() => props.entry.launcher.status || "idle");
1216
- const iconsMap = {
1217
- error: "i-ph-warning-duotone",
1218
- idle: "i-ph-rocket-launch-duotone",
1219
- loading: "i-svg-spinners-8-dots-rotate",
1220
- success: "i-ph-check-duotone"
1221
- };
1222
- const buttonText = computed(() => {
1223
- if (status.value === "idle") return props.entry.launcher.buttonStart || "Launch";
1224
- else if (status.value === "loading") return props.entry.launcher.buttonLoading || "Loading...";
1225
- else if (status.value === "error") return "ERROR";
1226
- else if (status.value === "success") return "Success";
1227
- else return `UNKNOWN STATUS: ${status.value}`;
1228
- });
1229
- return (_ctx, _cache) => {
1230
- return openBlock(), createElementBlock("div", _hoisted_1$1, [
1231
- createVNode(_sfc_main$18, {
1232
- icon: __props.entry.launcher.icon || __props.entry.icon,
1233
- class: "w-10 h-10"
1234
- }, null, 8, ["icon"]),
1235
- createBaseVNode("h1", _hoisted_2$1, toDisplayString(__props.entry.launcher.title), 1),
1236
- createBaseVNode("p", null, toDisplayString(__props.entry.launcher.description), 1),
1237
- createBaseVNode("button", {
1238
- class: "bg-lime6 px4 py1 rounded hover:bg-lime7 transition-all duration-300 flex gap-2 items-center disabled:bg-gray6! disabled:pointer-events-none",
1239
- disabled: status.value !== "idle",
1240
- onClick: onLaunch
1241
- }, [createBaseVNode("div", { class: normalizeClass(iconsMap[status.value]) }, null, 2), createBaseVNode("div", null, toDisplayString(buttonText.value), 1)], 8, _hoisted_3)
1242
- ]);
1243
- };
1244
- }
1245
- });
1246
-
1247
- //#endregion
1248
- //#region src/client/webcomponents/components/ViewEntry.vue
1249
- const _hoisted_1 = { key: 4 };
1250
- const _hoisted_2 = { key: 5 };
1251
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1252
- __name: "ViewEntry",
1253
- props: {
1254
- context: {},
1255
- entry: {},
1256
- persistedDoms: {},
1257
- iframeStyle: {},
1258
- divStyle: {}
1259
- },
1260
- setup(__props) {
1261
- const ViewBuiltinTerminals = defineAsyncComponent(() => import("../ViewBuiltinTerminals-1w0Jz6t0.js"));
1262
- const ViewBuiltinLogs = defineAsyncComponent(() => import("../ViewBuiltinLogs-BpU8wNYx.js"));
1263
- return (_ctx, _cache) => {
1264
- return openBlock(), createBlock(Suspense, null, {
1265
- fallback: withCtx(() => [..._cache[0] || (_cache[0] = [createBaseVNode("div", null, " Loading... ", -1)])]),
1266
- default: withCtx(() => [__props.entry.type === "~builtin" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [__props.entry.id === "~terminals" ? (openBlock(), createBlock(unref(ViewBuiltinTerminals), {
1267
- key: 0,
1268
- context: __props.context,
1269
- entry: __props.entry
1270
- }, null, 8, ["context", "entry"])) : __props.entry.id === "~logs" ? (openBlock(), createBlock(unref(ViewBuiltinLogs), {
1271
- key: 1,
1272
- context: __props.context,
1273
- entry: __props.entry
1274
- }, null, 8, ["context", "entry"])) : __props.entry.id === "~settings" ? (openBlock(), createBlock(_sfc_main$7, {
1275
- key: 2,
1276
- context: __props.context,
1277
- entry: __props.entry
1278
- }, null, 8, ["context", "entry"])) : __props.entry.id === "~client-auth-notice" ? (openBlock(), createBlock(_sfc_main$8, {
1279
- key: 3,
1280
- context: __props.context
1281
- }, null, 8, ["context"])) : (openBlock(), createElementBlock("div", _hoisted_1, " Unknown builtin entry: " + toDisplayString(__props.entry), 1))], 64)) : __props.entry.type === "action" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [createCommentVNode(" Entry for Actions ")], 64)) : __props.entry.type === "iframe" ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [createCommentVNode(" User-defined entries "), createVNode(_sfc_main$5, {
1282
- context: __props.context,
1283
- entry: __props.entry,
1284
- "persisted-doms": __props.persistedDoms,
1285
- "iframe-style": __props.iframeStyle
1286
- }, null, 8, [
1287
- "context",
1288
- "entry",
1289
- "persisted-doms",
1290
- "iframe-style"
1291
- ])], 2112)) : __props.entry.type === "custom-render" ? (openBlock(), createBlock(_sfc_main$6, {
1292
- key: 3,
1293
- context: __props.context,
1294
- entry: __props.entry,
1295
- "persisted-doms": __props.persistedDoms,
1296
- "div-style": __props.divStyle
1297
- }, null, 8, [
1298
- "context",
1299
- "entry",
1300
- "persisted-doms",
1301
- "div-style"
1302
- ])) : __props.entry.type === "launcher" ? (openBlock(), createBlock(_sfc_main$4, {
1303
- key: 4,
1304
- context: __props.context,
1305
- entry: __props.entry
1306
- }, null, 8, ["context", "entry"])) : (openBlock(), createElementBlock("div", _hoisted_2, " Unknown entry: " + toDisplayString(__props.entry), 1))]),
1307
- _: 1
1308
- });
1309
- };
1310
- }
1311
- });
1312
-
1313
496
  //#endregion
1314
497
  //#region src/client/webcomponents/components/DockPanel.vue
1315
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
498
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1316
499
  __name: "DockPanel",
1317
500
  props: {
1318
501
  context: {},
@@ -1336,6 +519,18 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1336
519
  function clamp(value, min, max) {
1337
520
  return Math.min(Math.max(value, min), max);
1338
521
  }
522
+ function openContextMenu(e) {
523
+ if (!dockPanel.value) return;
524
+ const entry = selected.value;
525
+ if (!entry) return;
526
+ e.preventDefault();
527
+ openDockContextMenu({
528
+ context,
529
+ entry,
530
+ el: dockPanel.value,
531
+ gap: 6
532
+ });
533
+ }
1339
534
  const anchorPos = computed(() => {
1340
535
  const halfWidth = (props.dockEl?.clientWidth || 0) / 2;
1341
536
  const halfHeight = (props.dockEl?.clientHeight || 0) / 2;
@@ -1436,11 +631,12 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1436
631
  return withDirectives((openBlock(), createElementBlock("div", {
1437
632
  ref_key: "dockPanel",
1438
633
  ref: dockPanel,
1439
- class: "bg-glass:75 rounded-lg border border-base shadow overflow-hidden",
1440
- style: normalizeStyle(panelStyle.value)
634
+ class: "bg-glass:75 rounded-lg border border-base color-base shadow overflow-hidden",
635
+ style: normalizeStyle(panelStyle.value),
636
+ onContextmenu: openContextMenu
1441
637
  }, [
1442
- createVNode(_sfc_main$10, { panel: unref(context).panel }, null, 8, ["panel"]),
1443
- unref(selected) && viewsContainer.value ? (openBlock(), createBlock(_sfc_main$3, {
638
+ createVNode(_sfc_main$2, { panel: unref(context).panel }, null, 8, ["panel"]),
639
+ unref(selected) && viewsContainer.value ? (openBlock(), createBlock(_sfc_main$9, {
1444
640
  key: unref(selected).id,
1445
641
  context: unref(context),
1446
642
  entry: unref(selected),
@@ -1460,123 +656,26 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1460
656
  ref: viewsContainer,
1461
657
  class: "absolute inset-0 pointer-events-none"
1462
658
  }, null, 512)
1463
- ], 4)), [[vShow, unref(context).docks.selected && unref(context).docks.selected.type !== "action"]]);
1464
- };
1465
- }
1466
- });
1467
-
1468
- //#endregion
1469
- //#region src/client/webcomponents/components/FloatingPopover.ts
1470
- const DETECT_MARGIN = 100;
1471
- const DEFAULT_GAP = 10;
1472
- const FloatingPopoverComponent = defineComponent({
1473
- name: "FloatingPopover",
1474
- props: {
1475
- item: {
1476
- type: Object,
1477
- required: false
1478
- },
1479
- dismissOnClickOutside: {
1480
- type: Boolean,
1481
- default: true
1482
- }
1483
- },
1484
- emits: ["dismiss"],
1485
- setup(props, { emit }) {
1486
- const panel = useTemplateRef("panel");
1487
- const el = ref(props.item?.el);
1488
- const renderCounter = ref(0);
1489
- const clearThrottled = useDebounceFn(() => {
1490
- if (props.item?.el == null) el.value = void 0;
1491
- }, 800);
1492
- if (props.dismissOnClickOutside) onClickOutside(panel, () => {
1493
- emit("dismiss");
1494
- });
1495
- watch(() => props.item, (value) => {
1496
- if (value) if (el.value !== value.el) el.value = value.el;
1497
- else renderCounter.value++;
1498
- else clearThrottled();
1499
- });
1500
- let previousContent;
1501
- return () => {
1502
- renderCounter.value;
1503
- if (!el.value) return null;
1504
- const rect = el.value.getBoundingClientRect();
1505
- let align = "bottom";
1506
- const vw = window.innerWidth;
1507
- const vh = window.innerHeight;
1508
- if (rect.left < DETECT_MARGIN) align = "right";
1509
- else if (rect.left + rect.width > vw - DETECT_MARGIN) align = "left";
1510
- else if (rect.top < DETECT_MARGIN) align = "bottom";
1511
- else if (rect.top + rect.height > vh - DETECT_MARGIN) align = "top";
1512
- let style = {};
1513
- const gap = props.item?.gap ?? DEFAULT_GAP;
1514
- switch (align) {
1515
- case "bottom":
1516
- style = {
1517
- left: `${rect.left + rect.width / 2}px`,
1518
- top: `${rect.top + rect.height + gap}px`,
1519
- transform: "translateX(-50%)"
1520
- };
1521
- break;
1522
- case "top":
1523
- style = {
1524
- left: `${rect.left + rect.width / 2}px`,
1525
- bottom: `${vh - rect.top + gap}px`,
1526
- transform: "translateX(-50%)"
1527
- };
1528
- break;
1529
- case "left":
1530
- style = {
1531
- right: `${vw - rect.left + gap}px`,
1532
- top: `${rect.top + rect.height / 2}px`,
1533
- transform: "translateY(-50%)"
1534
- };
1535
- break;
1536
- case "right":
1537
- style = {
1538
- left: `${rect.left + rect.width + gap}px`,
1539
- top: `${rect.top + rect.height / 2}px`,
1540
- transform: "translateY(-50%)"
1541
- };
1542
- break;
1543
- }
1544
- const content = (typeof props.item?.content === "string" ? h("span", props.item?.content) : props.item?.content()) ?? previousContent;
1545
- previousContent = content;
1546
- return h("div", {
1547
- ref: "panel",
1548
- class: ["fixed z-floating-tooltip text-xs transition-all duration-300 w-max bg-glass border border-base rounded px2 p1", props.item ? "op100" : "op0 pointer-events-none"],
1549
- style
1550
- }, content);
1551
- };
1552
- }
1553
- });
1554
-
1555
- //#endregion
1556
- //#region src/client/webcomponents/components/FloatingElements.vue
1557
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1558
- __name: "FloatingElements",
1559
- setup(__props) {
1560
- const tooltip = useFloatingTooltip();
1561
- const docksOverflowPanel = useDocksOverflowPanel();
1562
- return (_ctx, _cache) => {
1563
- return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(FloatingPopoverComponent), {
1564
- item: unref(docksOverflowPanel),
1565
- onDismiss: _cache[0] || (_cache[0] = () => unref(setDocksOverflowPanel)(null))
1566
- }, null, 8, ["item"]), createVNode(unref(FloatingPopoverComponent), { item: unref(tooltip) }, null, 8, ["item"])], 64);
659
+ ], 36)), [[vShow, unref(context).docks.selected && unref(context).docks.selected.type !== "action"]]);
1567
660
  };
1568
661
  }
1569
662
  });
1570
-
1571
663
  //#endregion
1572
- //#region src/client/webcomponents/components/DockEmbedded.vue
1573
- const _sfc_main = /* @__PURE__ */ defineComponent({
664
+ //#region src/client/webcomponents/components/DockEmbedded.ts
665
+ const DockEmbedded = defineCustomElement(/* @__PURE__ */ defineComponent({
1574
666
  __name: "DockEmbedded",
1575
667
  props: { context: {} },
1576
668
  setup(__props) {
669
+ const isDockPopupOpen = useIsDockPopupOpen();
670
+ onUnmounted(() => {
671
+ closeDockPopup();
672
+ });
1577
673
  return (_ctx, _cache) => {
1578
- return openBlock(), createElementBlock(Fragment, null, [createVNode(_sfc_main$11, { context: __props.context }, {
1579
- default: withCtx(({ dockEl, panelMargins, selected }) => [createVNode(_sfc_main$2, {
674
+ return openBlock(), createElementBlock(Fragment, null, [!unref(isDockPopupOpen) ? (openBlock(), createBlock(_sfc_main$3, {
675
+ key: 0,
676
+ context: __props.context
677
+ }, {
678
+ default: withCtx(({ dockEl, panelMargins, selected }) => [createVNode(_sfc_main$1, {
1580
679
  context: __props.context,
1581
680
  selected,
1582
681
  "dock-el": dockEl,
@@ -1588,18 +687,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1588
687
  "panel-margins"
1589
688
  ])]),
1590
689
  _: 1
1591
- }, 8, ["context"]), createVNode(_sfc_main$1)], 64);
690
+ }, 8, ["context"])) : createCommentVNode("v-if", true), !unref(isDockPopupOpen) ? (openBlock(), createBlock(_sfc_main$10, { key: 1 })) : createCommentVNode("v-if", true)], 64);
1592
691
  };
1593
692
  }
1594
- });
1595
-
1596
- //#endregion
1597
- //#region src/client/webcomponents/components/DockEmbedded.ts
1598
- const DockEmbedded = defineCustomElement(_sfc_main, {
693
+ }), {
1599
694
  shadowRoot: true,
1600
695
  styles: [css_default]
1601
696
  });
1602
697
  customElements.define("vite-devtools-dock-embedded", DockEmbedded);
1603
-
1604
698
  //#endregion
1605
- export { DEFAULT_DOCK_PANEL_STORE, DockEmbedded, PersistedDomHolder, PersistedDomViewsManager, createDockEntryState, sharedStateToRef, useDocksEntries };
699
+ export { DEFAULT_DOCK_PANEL_STORE, DockEmbedded, PersistedDomHolder, PersistedDomViewsManager, createDockEntryState, sharedStateToRef, useDocksEntries };