vue-dockable-desktop 1.0.0
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.
- package/CHANGELOG.md +60 -0
- package/LICENSE +21 -0
- package/README.md +169 -0
- package/dist/components/VddConfirm.vue.d.ts +19 -0
- package/dist/components/VddContextMenu.vue.d.ts +35 -0
- package/dist/components/VddDesktop.vue.d.ts +28 -0
- package/dist/components/VddDragGhost.vue.d.ts +3 -0
- package/dist/components/VddDropZones.vue.d.ts +6 -0
- package/dist/components/VddEdgeZones.vue.d.ts +3 -0
- package/dist/components/VddFloatingWidget.vue.d.ts +51 -0
- package/dist/components/VddFloatingWindow.vue.d.ts +12 -0
- package/dist/components/VddLeafGroup.vue.d.ts +7 -0
- package/dist/components/VddModalHost.vue.d.ts +9 -0
- package/dist/components/VddModals.vue.d.ts +3 -0
- package/dist/components/VddOverlayFrame.vue.d.ts +28 -0
- package/dist/components/VddPanelMount.vue.d.ts +8 -0
- package/dist/components/VddPanelOverlay.vue.d.ts +13 -0
- package/dist/components/VddPanelSlot.vue.d.ts +9 -0
- package/dist/components/VddPanelToolbar.vue.d.ts +26 -0
- package/dist/components/VddSecondarySidebar.vue.d.ts +16 -0
- package/dist/components/VddSidePanelHost.vue.d.ts +10 -0
- package/dist/components/VddSidePanels.vue.d.ts +12 -0
- package/dist/components/VddSidebar.vue.d.ts +54 -0
- package/dist/components/VddSidebarDrawer.vue.d.ts +51 -0
- package/dist/components/VddSidebarRail.vue.d.ts +22 -0
- package/dist/components/VddSidebarTabScope.vue.d.ts +22 -0
- package/dist/components/VddTaskbar.vue.d.ts +17 -0
- package/dist/components/VddTaskbarPreview.vue.d.ts +24 -0
- package/dist/components/VddToastIcon.vue.d.ts +8 -0
- package/dist/components/VddToastItem.vue.d.ts +18 -0
- package/dist/components/VddToasts.vue.d.ts +36 -0
- package/dist/components/VddToolbar.vue.d.ts +20 -0
- package/dist/components/VddToolbarButton.vue.d.ts +25 -0
- package/dist/components/VddToolbarCenter.vue.d.ts +13 -0
- package/dist/components/VddToolbarGroupButton.vue.d.ts +8 -0
- package/dist/components/VddToolbarItem.vue.d.ts +13 -0
- package/dist/components/VddToolbarSearch.vue.d.ts +27 -0
- package/dist/components/VddToolbarSeparator.vue.d.ts +3 -0
- package/dist/components/VddToolbarSpacer.vue.d.ts +3 -0
- package/dist/components/VddToolbarToggle.vue.d.ts +32 -0
- package/dist/components/VddWorkspaceGrid.vue.d.ts +8 -0
- package/dist/composables/useColorScheme.d.ts +19 -0
- package/dist/composables/useContextMenu.d.ts +29 -0
- package/dist/composables/useContributions.d.ts +48 -0
- package/dist/composables/useDragDock.d.ts +59 -0
- package/dist/composables/useOverlayHost.d.ts +30 -0
- package/dist/composables/useOverlays.d.ts +51 -0
- package/dist/composables/usePanel.d.ts +82 -0
- package/dist/composables/usePanelDom.d.ts +7 -0
- package/dist/composables/usePanelOverlay.d.ts +35 -0
- package/dist/composables/useSidebar.d.ts +15 -0
- package/dist/composables/useToolbar.d.ts +9 -0
- package/dist/composables/useWorkspace.d.ts +18 -0
- package/dist/core/anchorGeometry.d.ts +39 -0
- package/dist/core/contextMenu.d.ts +74 -0
- package/dist/core/contributions.d.ts +56 -0
- package/dist/core/dragResize.d.ts +67 -0
- package/dist/core/eventBus.d.ts +73 -0
- package/dist/core/layoutTree.d.ts +96 -0
- package/dist/core/messages.d.ts +117 -0
- package/dist/core/overlayState.d.ts +64 -0
- package/dist/core/overlays.d.ts +114 -0
- package/dist/core/panelDom.d.ts +79 -0
- package/dist/core/panelMenu.d.ts +45 -0
- package/dist/core/panelOverlay.d.ts +121 -0
- package/dist/core/registry.d.ts +61 -0
- package/dist/core/serializable.d.ts +26 -0
- package/dist/core/serialize.d.ts +32 -0
- package/dist/core/sidebarTypes.d.ts +102 -0
- package/dist/core/stretch.d.ts +47 -0
- package/dist/core/toast.d.ts +474 -0
- package/dist/core/toolbarState.d.ts +13 -0
- package/dist/core/toolbarTypes.d.ts +99 -0
- package/dist/core/workspace.d.ts +222 -0
- package/dist/index.cjs +5 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +64 -0
- package/dist/index.js +4851 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +3944 -0
- package/dist/types.d.ts +145 -0
- package/package.json +102 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("vue");var t={type:`leaf`,id:`group-default`,panels:[],activePanelId:null},n=()=>({...t,panels:[]});function r(e,t){if(e.type===`leaf`){let n=e.panels.indexOf(t);if(n===-1)return e;let r=e.panels.filter(e=>e!==t),i=e.activePanelId===t?r[n]??r[n-1]??r[0]??null:e.activePanelId;return r.length===0&&!e.keepOnEmpty?null:{...e,panels:r,activePanelId:i}}let n=e.children.map(e=>r(e,t)).filter(e=>e!==null);if(n.length===0)return null;if(n.length===1)return n[0];let i=e.sizes.slice(0,n.length),a=i.reduce((e,t)=>e+t,0);return{...e,children:n,sizes:i.map(e=>e/a)}}function i(e,t,n,r){let a=r?.select!==!1;if(e.type===`leaf`){if(e.id!==t)return e;let r=e.panels.includes(n)?e.panels:[...e.panels,n],i=a?n:e.activePanelId??n;return{...e,panels:r,activePanelId:i}}return{...e,children:e.children.map(e=>i(e,t,n,r))}}function a(e,t,n,r){if(e.type===`leaf`){if(e.id!==t)return e;let i=e.panels.filter(e=>e!==n),a=Math.max(0,Math.min(r,i.length)),o=[...i];return o.splice(a,0,n),{...e,panels:o,activePanelId:n}}return{...e,children:e.children.map(e=>a(e,t,n,r))}}var o=e=>`group-${e}-${Date.now()}-${Math.floor(Math.random()*1e3)}`;function s(e,t,n,r,i,a=o(`split`)){if(e.type===`leaf`){if(e.id!==t)return e;let o={type:`leaf`,id:a,panels:[n],activePanelId:n},s=r===`left`||r===`top`;return{type:`branch`,orientation:r===`left`||r===`right`?`horizontal`:`vertical`,sizes:s?[i,1-i]:[1-i,i],children:s?[o,e]:[e,o]}}return{...e,children:e.children.map(e=>s(e,t,n,r,i,a))}}function c(e,t,n,r,i=o(`edge`)){let a={type:`leaf`,id:i,panels:[t],activePanelId:t},s=n===`left`||n===`top`;return{type:`branch`,orientation:n===`left`||n===`right`?`horizontal`:`vertical`,sizes:s?[r,1-r]:[1-r,r],children:s?[a,e]:[e,a]}}function l(e,t){if(e.type===`leaf`)return e.id===t&&e.canClose!==!1?null:e;let n=e.children.map(e=>l(e,t)).filter(e=>e!==null);if(n.length===0)return null;if(n.length===1)return n[0];let r=e.sizes.slice(0,n.length),i=r.reduce((e,t)=>e+t,0);return{...e,children:n,sizes:r.map(e=>e/i)}}function u(e,t){return e.type===`leaf`?e.panels.includes(t)?{...e,activePanelId:t}:e:{...e,children:e.children.map(e=>u(e,t))}}function d(e){if(e.type===`leaf`)return e.id;for(let t of e.children){let e=d(t);if(e)return e}return null}function f(e,t){if(e.type===`leaf`)return e.panels.includes(t)?e.id:null;for(let n of e.children){let e=f(n,t);if(e)return e}return null}function p(e,t){if(!e)return null;if(e.type===`leaf`)return e.id===t?e:null;for(let n of e.children){let e=p(n,t);if(e)return e}return null}function m(e,t){return p(e,t)!==null}function h(e,t,n){let r=(e,i)=>{if(e.type===`leaf`)return e;if(i===t.length)return{...e,sizes:n};let a=t[i];return{...e,children:e.children.map((e,t)=>t===a?r(e,i+1):e)}};return r(e,0)}function g(e,t){let n=t.panels[e];if(!n||n.state===`minimized`)return!1;if(t.floating.some(t=>t.id===e))return!0;let r=t=>t.type===`leaf`?t.activePanelId===e:t.children.some(r);return t.gridRoot?r(t.gridRoot):!1}function _(e){let t=t=>t!==null&&!!e.panels[t]&&e.panels[t].state!==`minimized`,n=e=>{if(e.type===`leaf`)return t(e.activePanelId)?e.activePanelId:null;for(let t of e.children){let e=n(t);if(e)return e}return null},r=e.gridRoot?n(e.gridRoot):null;if(r)return r;let i=null;for(let n of e.floating)t(n.id)&&(!i||n.z>i.z)&&(i=n);return i?.id??null}function v(e){return e.map(e=>{let t=e;if(!(`stickyRight`in t)&&!(`stickyBottom`in t))return t;let n=t.stickyRight&&t.stickyBottom?`bottom-right`:t.stickyRight?`top-right`:t.stickyBottom?`bottom-left`:null,{stickyRight:r,stickyBottom:i,...a}=t;return{...a,anchor:n}})}function y(e,t){if(!e||typeof e!=`object`)return null;let n=e;if(!n.gridRoot||!Array.isArray(n.floating)||!Array.isArray(n.minimized)||!n.panels)return null;let r=v(n.floating),i=n.gridRoot,a=n.panels,o={gridRoot:i,floating:r,panels:a},s=typeof n.activePanelId==`string`?n.activePanelId:null,c=null;return s!==null&&(g(s,o)?c=s:t?.(`Ignoring the saved layout's activePanelId ("${s}") — it does not name a currently visible panel (it may have been closed, minimised, or excluded from the snapshot as non-serialisable). Falling back to the selected tab of the first leaf.`)),c===null&&(c=_(o)),{gridRoot:i,floating:r,minimized:n.minimized,panels:a,activePanelId:c}}function b(e,n){if(e)try{let t=y(JSON.parse(e),n);if(t)return t}catch{n?.(`initialState is not valid JSON; starting from an empty workspace.`)}return{gridRoot:{...t,panels:[]},floating:[],minimized:[],panels:{},activePanelId:null}}function x(t){if(t===null)return!0;if(t===void 0)return!1;let n=typeof t;if(n===`string`||n===`number`||n===`boolean`)return!0;if(n===`function`||n===`symbol`||n===`bigint`)return!1;if(t instanceof Date)return!0;if((0,e.isVNode)(t))return!1;if(Array.isArray(t))return t.every(x);let r=Object.getPrototypeOf(t);return r!==Object.prototype&&r!==null?!1:Object.values(t).every(x)}var S=class{entries=new Map;register(t,n,r){this.entries.set(t,{component:(0,e.markRaw)(n),...r?{defaultOptions:{...r,...r.icon?{icon:(0,e.markRaw)(r.icon)}:{}}}:{}})}get(e){return this.entries.get(e)}has(e){return this.entries.has(e)}keys(){return Array.from(this.entries.keys())}},C=class{listeners=new Map;subscribe(e,t){let n=this.listeners.get(e);n||(n=new Set,this.listeners.set(e,n));let r=t;return n.add(r),()=>{n.delete(r)}}publish(e,t){this.dispatch(e,t)}emit(e,t){this.dispatch(e,t)}dispatch(e,t){let n=this.listeners.get(e);if(n)for(let e of Array.from(n))e(t)}count(e){return this.listeners.get(e)?.size??0}clear(){this.listeners.clear()}},w=e=>`separator`in e,T=e=>!w(e)&&`items`in e;function E(e){let t=e.event;if(!t)return{x:e.x??0,y:e.y??0};if(`touches`in t&&t.touches.length>0){let e=t.touches[0];return{x:e.clientX,y:e.clientY}}let n=t;return{x:n.clientX,y:n.clientY}}function D(e,t,n,r=8){let{x:i,y:a}=e;return i+t.width>n.width-r&&(i=Math.max(r,n.width-t.width-r)),a+t.height>n.height-r&&(a=Math.max(r,n.height-t.height-r)),{x:Math.max(r,i),y:Math.max(r,a)}}var O={floatWindow:{id:`vdd.floatWindow`,defaultMessage:`Float Window`},minimizePanel:{id:`vdd.minimizePanel`,defaultMessage:`Minimize Panel`},closeTab:{id:`vdd.closeTab`,defaultMessage:`Close Tab`},restorePanel:{id:`vdd.restorePanel`,defaultMessage:`Restore Panel`},maximizePanel:{id:`vdd.maximizePanel`,defaultMessage:`Maximize Panel`},closePanel:{id:`vdd.closePanel`,defaultMessage:`Close Panel`},dockWindow:{id:`vdd.dockWindow`,defaultMessage:`Dock Window`},minimize:{id:`vdd.minimize`,defaultMessage:`Minimize`},maximize:{id:`vdd.maximize`,defaultMessage:`Maximize`},restoreSize:{id:`vdd.restoreSize`,defaultMessage:`Restore Size`},close:{id:`vdd.close`,defaultMessage:`Close`},closeEmptyGroup:{id:`vdd.closeEmptyGroup`,defaultMessage:`Close empty split group`},emptyGroup:{id:`vdd.emptyGroup`,defaultMessage:`Empty workspace section`},unsavedChangesTitle:{id:`vdd.unsavedChangesTitle`,defaultMessage:`Unsaved Changes`},unsavedChangesMessage:{id:`vdd.unsavedChangesMessage`,defaultMessage:`"{title}" has unsaved changes. Do you want to discard your changes and close?`},discardChanges:{id:`vdd.discardChanges`,defaultMessage:`Discard Changes`},cancel:{id:`vdd.cancel`,defaultMessage:`Cancel`},yes:{id:`vdd.yes`,defaultMessage:`Yes`},no:{id:`vdd.no`,defaultMessage:`No`},ok:{id:`vdd.ok`,defaultMessage:`OK`},closeTooltip:{id:`vdd.closeTooltip`,defaultMessage:`Close`},scrollTabsLeft:{id:`vdd.scrollTabsLeft`,defaultMessage:`Scroll tabs left`},scrollTabsRight:{id:`vdd.scrollTabsRight`,defaultMessage:`Scroll tabs right`},moreActions:{id:`vdd.moreActions`,defaultMessage:`More actions`},search:{id:`vdd.search`,defaultMessage:`Search`}};function ee(e,t){if(e==null)return``;if(typeof e==`string`)return e;if(t)return t(e);let n=e.defaultMessage??e.id;if(e.values)for(let[t,r]of Object.entries(e.values))n=n.replace(`{${t}}`,String(r));return n}function te(){let t=(0,e.reactive)({}),n=(0,e.reactive)({});return{activeInGroup:e=>t[e]??null,setActiveInGroup:(e,n)=>{t[e]=n},isToggled:e=>n[e]===!0,setToggled:(e,t)=>{n[e]=t},toggle:e=>{n[e]=!n[e]}}}var ne=0,k=e=>`vdd-${e}-${++ne}`;function re(){let t=(0,e.reactive)({leftPanel:null,rightPanel:null,modals:(0,e.shallowReactive)([])}),n=new Map,r=null,i=()=>[t.leftPanel,t.rightPanel,...t.modals].filter(e=>e!==null),a=e=>i().find(t=>t.id===e);function o(t,n,r,i){return{id:k(t),component:(0,e.markRaw)(n),props:r,kind:t,options:i,dirty:!1}}async function s(e,r,i,a={},s={}){let c=t[e];if(c){let e=n.get(c.id);if(e&&!await e())return null;n.delete(c.id)}let l=o(r,i,a,s);return t[e]=l,l.id}function c(e,n={},r={}){let i=o(`modal`,e,n,r);return t.modals.push(i),i.id}function l(e){if(n.delete(e),t.leftPanel?.id===e){t.leftPanel=null;return}if(t.rightPanel?.id===e){t.rightPanel=null;return}let r=t.modals.findIndex(t=>t.id===e);r!==-1&&t.modals.splice(r,1)}function u(e,n){let r=a(e);if(!r)return;let i={...r,...n};if(t.leftPanel?.id===e){t.leftPanel=i;return}if(t.rightPanel?.id===e){t.rightPanel=i;return}let o=t.modals.findIndex(t=>t.id===e);o!==-1&&t.modals.splice(o,1,i)}async function d(e,t){if(t?.force){l(e);return}let r=n.get(e);if(r&&!await r())return;let i=a(e);(!i?.dirty||t?.confirm&&await t.confirm(i))&&l(e)}return{state:t,openLeftPanel:(e,t,n)=>s(`leftPanel`,`left-panel`,e,t,n),openRightPanel:(e,t,n)=>s(`rightPanel`,`right-panel`,e,t,n),openModal:c,close:l,closeAll:()=>{n.clear(),t.leftPanel=null,t.rightPanel=null,t.modals.splice(0)},closeAllModals:()=>{for(let e of t.modals)n.delete(e.id);t.modals.splice(0)},getInstance:a,updateInstance:u,setDirty:(e,t,n)=>u(e,{dirty:t,dirtyOptions:n}),requestClose:d,registerCloseGuard:(e,t)=>(n.set(e,t),()=>{n.get(e)===t&&n.delete(e)}),topmostModal:()=>t.modals[t.modals.length-1]??null,confirmDiscard:e=>r?.(e)??Promise.resolve(!1),setConfirmRenderer:e=>{r=e},dispose:()=>{n.clear(),r=null}}}function ie(){let t=(0,e.shallowReactive)(new Map),n=(0,e.ref)(0);return{publish(r,i){let a={toolbarItems:i.toolbarItems,sidebarSections:i.sidebarSections?.map(t=>({...t,component:(0,e.markRaw)(t.component),icon:t.icon?(0,e.markRaw)(t.icon):void 0}))};return t.set(r,a),n.value++,()=>{t.get(r)===a&&(t.delete(r),n.value++)}},get(e){return n.value,t.get(e)??null},ids(){return n.value,Array.from(t.keys())}}}function A(e,t){return{id:e.id,label:e.label,icon:e.icon??t,component:e.component,props:e.props}}function j(e,t){let n=t?.toolbarItems;return n?.length?[...e,{type:`separator`},...n]:e}function M(e,t,n){let r=t?.sidebarSections;return r?.length?[...e,...r.map(e=>A(e,n))]:e}function ae(t,n){return(0,e.computed)(()=>{let e=n();return e?t.get(e):null})}var oe=(e,t)=>Math.min(.9,Math.max(.1,e??t)),N={x:300,y:150,width:450,height:350},P=Symbol(`vdd-workspace`);function F(t={}){let o=new S;for(let[e,n]of Object.entries(t.panels??{}))o.register(e,n.component,n.defaultOptions);let p=new C,v=new Map,y=new Map,w=new Map,T=(0,e.ref)(0),D=(0,e.shallowRef)(null),ee={...O,...t.messages??{}},ne=t.zIndexBase??1e3,k=ne,A=b(t.initialState,M),j=(0,e.reactive)({gridRoot:A.gridRoot,floating:A.floating,minimized:A.minimized,panels:A.panels,activePanelId:A.activePanelId,draggedPanelId:null,dir:t.dir??`ltr`,isRtl:t.dir===`rtl`,splitRatio:oe(t.defaultSplitRatio,.5),edgeSplitRatio:oe(t.defaultEdgeSplitRatio,.2)});for(let e of j.floating)k=Math.max(k,e.z);function M(e){process.env.NODE_ENV!==`production`&&console.warn(`[vue-dockable-desktop] ${e}`)}let F=()=>({gridRoot:(0,e.toRaw)(j).gridRoot,floating:(0,e.toRaw)(j).floating,panels:(0,e.toRaw)(j).panels});function I(e){let t=j.activePanelId,n;n=e&&g(e,F())?e:j.activePanelId&&g(j.activePanelId,F())?j.activePanelId:_(F()),n!==t&&(j.activePanelId=n,p.emit(`panel:activated`,{id:n,previous:t}))}let L=()=>p.emit(`layout:changed`,{}),R=e=>{let t=j.panels[e];return t?o.get(t.component):void 0},z=e=>R(e)?.defaultOptions??{};function B(e){let t=(e,t)=>{let n=typeof e==`string`?Number.parseFloat(e):e;return Number.isNaN(n)?t:n},n=t(e.x,N.x),r=t(e.y,N.y),i=t(e.width,N.width),a=t(e.height,N.height),o=(e,t)=>j.floating.some(n=>{if(n.maximized)return!1;let r=typeof n.x==`string`?Number.parseFloat(n.x):n.x,i=typeof n.y==`string`?Number.parseFloat(n.y):n.y;return Math.abs(r-e)<20&&Math.abs(i-t)<20}),s=0;for(;o(n,r)&&s<10;)n+=30,r+=30,s++;let c=Math.max(100,typeof window<`u`&&window.innerWidth||1024),l=Math.max(100,typeof window<`u`&&window.innerHeight||768);return(n+i>c||r+a>l)&&(n=100+s%5*30,r=100+s%5*30),{x:Math.max(0,Math.min(n,c-100)),y:Math.max(0,Math.min(r,l-40)),width:i,height:a}}function V(e,t,n){k+=1,j.floating=[...j.floating,{...t,id:e,z:k,anchor:n}]}function H(t){j.gridRoot=r((0,e.toRaw)(j).gridRoot,t)??n(),j.floating=j.floating.filter(e=>e.id!==t),j.minimized=j.minimized.filter(e=>e.id!==t)}function se(t,r,a){o.has(r)||M(`Panel "${t}" references component key "${r}", which is not registered. Add it to createWorkspace({ panels: { "${r}": { component: YourComponent } } }).`);let s=t;if(a?.dedupeKey!==void 0){let e=Object.values(j.panels).find(e=>e.component===r&&e.dedupeKey===a.dedupeKey);e&&(s=e.id)}let c=j.panels[s],l=a?.focus!==!1,u=o.get(r),f=a?.initialTarget??u?.defaultOptions?.initialTarget??`docked`,m=u?.defaultOptions?.favoritePosition??N;if(c){if(c.state===`minimized`){W(s,{focus:l});return}l&&fe(s);return}let h=a?.props!==void 0,g={id:s,title:a?.title??u?.defaultOptions?.title??s,component:r,state:f===`floating`?`floating`:`docked`,serializable:!h||x((0,e.toRaw)(a.props)),...h?{props:(0,e.markRaw)(a.props)}:{},...a?.dedupeKey===void 0?{}:{dedupeKey:a.dedupeKey}};if(j.panels={...j.panels,[s]:g},f===`floating`)V(s,B(m),a?.anchor??u?.defaultOptions?.defaultAnchor??null);else{let t=d((0,e.toRaw)(j).gridRoot)??n().id;j.gridRoot=i((0,e.toRaw)(j).gridRoot,t,s,{select:l})}I(l?s:null),p.emit(`panel:opened`,{id:s,component:r}),L()}function U(e){if(!j.panels[e]||z(e).canClose===!1)return;v.delete(e),y.delete(e),H(e);let t={...j.panels};delete t[e],j.panels=t,I(),p.emit(`panel:closed`,{id:e}),L()}async function ce(e,t){if(t?.force){U(e);return}let n=v.get(e);if(n&&!await n())return;let r=j.panels[e];(!r?.dirty||await(t?.onConfirm??(e=>Y.confirmDiscard({title:we(r.title),dirtyOptions:e})))(r.dirtyOptions))&&U(e)}function le(t){let n=j.panels[t];if(!n||n.state===`minimized`||z(t).canMinimize===!1)return;let r,i;if(n.state===`floating`){let e=j.floating.find(e=>e.id===t);e&&(r={x:Number(e.x),y:Number(e.y),width:Number(e.width),height:Number(e.height),anchor:e.anchor??null})}else i=f((0,e.toRaw)(j).gridRoot,t)??void 0;H(t),j.panels={...j.panels,[t]:{...n,state:`minimized`,previousState:n.state,lastFloatingRect:r,lastLeafId:i}},j.minimized=[...j.minimized,{id:t,title:n.title,component:n.component}],I(),p.emit(`panel:minimized`,{id:t}),L()}function W(t,r){let a=j.panels[t];if(!a||a.state!==`minimized`)return;let s=r?.focus!==!1;j.minimized=j.minimized.filter(e=>e.id!==t);let c=a.previousState??`docked`,l=o.get(a.component),u=a.lastFloatingRect??l?.defaultOptions?.favoritePosition??N,f=()=>{j.panels={...j.panels,[t]:{...a,state:`floating`}},V(t,B(u),a.lastFloatingRect?.anchor??null)},h=n=>{j.panels={...j.panels,[t]:{...a,state:`docked`}},j.gridRoot=i((0,e.toRaw)(j).gridRoot,n,t,{select:s})};c===`floating`?f():a.lastLeafId&&m((0,e.toRaw)(j).gridRoot,a.lastLeafId)?h(a.lastLeafId):z(t).canDrag===!1?h(d((0,e.toRaw)(j).gridRoot)??n().id):f(),I(s?t:null),p.emit(`panel:restored`,{id:t}),L()}function G(e,t,n){let r=j.panels[e];if(!r||z(e).canDrag===!1)return;let i=t??o.get(r.component)?.defaultOptions?.favoritePosition??N;H(e),j.panels={...j.panels,[e]:{...r,state:`floating`}},V(e,B(i),n??null),I(e),L()}function ue(t,r){let a=j.panels[t];if(!a)return;H(t);let o=a.lastLeafId&&m((0,e.toRaw)(j).gridRoot,a.lastLeafId)?a.lastLeafId:void 0,s=r??o??d((0,e.toRaw)(j).gridRoot)??n().id;j.panels={...j.panels,[t]:{...a,state:`docked`}},j.gridRoot=i((0,e.toRaw)(j).gridRoot,s,t),I(t),L()}function de(t,n,r){let a=j.panels[t];a&&(H(t),j.panels={...j.panels,[t]:{...a,state:`docked`}},j.gridRoot=r===`center`?i((0,e.toRaw)(j).gridRoot,n,t):s((0,e.toRaw)(j).gridRoot,n,t,r,j.splitRatio),j.draggedPanelId=null,I(t),L())}function K(t,n){let r=j.panels[t];r&&(H(t),j.panels={...j.panels,[t]:{...r,state:`docked`}},j.gridRoot=c((0,e.toRaw)(j).gridRoot,t,n,j.edgeSplitRatio),j.draggedPanelId=null,I(t),L())}function q(t,i,o){let s=j.panels[t];if(!s)return;let c=r((0,e.toRaw)(j).gridRoot,t)??n();j.floating=j.floating.filter(e=>e.id!==t),j.minimized=j.minimized.filter(e=>e.id!==t),j.panels={...j.panels,[t]:{...s,state:`docked`}},j.gridRoot=a(c,i,t,o),j.draggedPanelId=null,I(t),L()}function J(e){j.panels[e]?.state===`minimized`&&W(e);let t=j.panels[e];t&&(t.state===`docked`&&G(e),j.floating=j.floating.map(t=>t.id===e?{...t,maximized:!t.maximized}:t),I(e),L())}function fe(t){let n=j.panels[t];if(n){if(n.state===`floating`){let e=j.floating.find(e=>e.id===t);if(e&&j.floating.some(t=>t.z>e.z)){k+=1;let e=k;j.floating=j.floating.map(n=>n.id===t?{...n,z:e}:n)}}else n.state===`docked`&&(j.gridRoot=u((0,e.toRaw)(j).gridRoot,t));if(n.state===`minimized`){let e=j.activePanelId;e!==t&&(j.activePanelId=t,p.emit(`panel:activated`,{id:t,previous:e}));return}I(t)}}function pe(t){j.gridRoot=l((0,e.toRaw)(j).gridRoot,t)??n(),I(),L()}function me(t,n){j.gridRoot=h((0,e.toRaw)(j).gridRoot,t,n),L()}function he(e,t){j.floating=j.floating.map(n=>n.id===e?{...n,...t}:n)}function ge(e,t,n){let r=j.panels[e];r&&(j.panels={...j.panels,[e]:{...r,dirty:t,dirtyOptions:n}})}function _e(e,t){let n=j.panels[e];n&&(j.panels={...j.panels,[e]:{...n,title:t}},j.minimized.findIndex(t=>t.id===e)!==-1&&(j.minimized=j.minimized.map(n=>n.id===e?{...n,title:t}:n)))}function ve(e){j.dir!==e&&(j.dir=e,j.isRtl=e===`rtl`)}function ye(){let t=(0,e.toRaw)(j),i=[],a={};for(let[n,r]of Object.entries(t.panels)){let t=y.get(n),o=t?.(),s=t!==void 0&&o!==void 0,c=s?o:r.props;(s?x((0,e.toRaw)(o)):r.serializable)?a[n]=s?{...r,props:c,serializable:!0}:r:i.push(n)}let o=t.gridRoot,s=t.floating,c=t.minimized;for(let e of i)o=r(o,e)??n(),s=s.filter(t=>t.id!==e),c=c.filter(t=>t.id!==e);i.length&&p.emit(`layout:panels-excluded`,{panels:i.map(e=>({id:e,component:t.panels[e].component}))});let l=t.activePanelId,u=l!==null&&g(l,{gridRoot:o,floating:s,panels:a})?l:null,d={version:2,...u===null?{}:{activePanelId:u},gridRoot:o,floating:s,minimized:c,panels:a};return JSON.stringify(d)}function be(e){let t;try{let n=JSON.parse(e),r=b(JSON.stringify(n),M);if(!n||typeof n!=`object`||!n.gridRoot)return!1;t=r}catch{return M(`loadLayout received invalid JSON; the current layout is unchanged.`),!1}j.gridRoot=t.gridRoot,j.floating=t.floating,j.minimized=t.minimized,j.panels=t.panels,j.draggedPanelId=null,k=Math.max(ne,...t.floating.map(e=>e.z),0);let n=j.activePanelId;return j.activePanelId=t.activePanelId,n!==t.activePanelId&&p.emit(`panel:activated`,{id:t.activePanelId,previous:n}),L(),!0}function xe(e,t){return v.set(e,t),()=>{v.get(e)===t&&v.delete(e)}}function Se(e,t){return y.set(e,t),()=>{y.get(e)===t&&y.delete(e)}}function Ce(e,t){return w.set(e,t),T.value++,()=>{w.get(e)===t&&(w.delete(e),T.value++)}}let we=e=>{if(e==null)return``;if(typeof e==`string`)return e;if(t.formatMessage)return t.formatMessage(e);let n=e.defaultMessage??e.id;for(let[t,r]of Object.entries(e.values??{}))n=n.replace(`{${t}}`,String(r));return n},Y=re(),Te=ie(),Ee={state:(0,e.readonly)(j),registry:o,gridRoot:(0,e.computed)(()=>j.gridRoot),floating:(0,e.computed)(()=>j.floating),minimized:(0,e.computed)(()=>j.minimized),panels:(0,e.computed)(()=>j.panels),activePanelId:(0,e.computed)(()=>j.activePanelId),draggedPanelId:(0,e.computed)(()=>j.draggedPanelId),dir:(0,e.computed)(()=>j.dir),isRtl:(0,e.computed)(()=>j.isRtl),openPanel:se,closePanel:U,requestClosePanel:ce,minimizePanel:le,restorePanel:W,floatPanel:G,dockPanel:ue,dockPanelToGroup:de,dockPanelToWorkspaceEdge:K,maximizePanel:J,focusPanel:fe,movePanelOrder:q,closeLeafGroup:pe,updateSplitSizes:me,updateFloatingPosition:he,setPanelDirty:ge,updatePanelTitle:_e,setDirection:ve,setDraggedPanelId:e=>{j.draggedPanelId=e},isOpen:e=>e in j.panels,getOpenPanelIds:()=>Object.keys(j.panels),findPanelId:(e,t)=>Object.values(j.panels).find(n=>n.component===e&&n.dedupeKey===t)?.id??null,saveLayout:ye,loadLayout:be,publish:(e,t)=>p.publish(e,t),subscribe:(e,t)=>p.subscribe(e,t),toolbar:te(),overlays:Y,contributions:Te,activeContribution:ae(Te,()=>j.activePanelId),registerCloseGuard:xe,registerStateProvider:Se,registerPanelMenu:Ce,panelMenuItems:e=>(T.value,w.get(e)?.()??[]),showContextMenu:e=>{e.event?.preventDefault?.(),D.value={...E(e),items:e.items}},closeContextMenu:()=>{D.value=null},contextMenu:(0,e.computed)(()=>D.value),classes:{modal:t.classes?.modal??``,modalBody:t.classes?.modalBody??``,sidePanel:t.classes?.sidePanel??``,sidePanelBody:t.classes?.sidePanelBody??``,window:t.classes?.window??``,windowBody:t.classes?.windowBody??``},format:we,messages:ee,config:{...t,zIndexBase:ne},install(e){e.provide(P,Ee)},dispose(){p.clear(),Y.dispose(),v.clear(),y.clear(),w.clear(),D.value=null}};return Ee}function I(e){return e===`top-left`?`top-right`:e===`top-right`?`top-left`:e===`bottom-left`?`bottom-right`:`bottom-left`}function L(e,t,n){let{x:r,y:i,width:a,height:o}=e;if(a>t.width&&(a=Math.max(200,t.width-20)),o>t.height&&(o=Math.max(150,t.height-40)),!n){let e=t.width-100,n=t.height-40;r>e&&(r=Math.max(0,e)),i>n&&(i=Math.max(0,n))}return r===e.x&&i===e.y&&a===e.width&&o===e.height?e:{x:r,y:i,width:a,height:o}}function R(e){return e.offsetParent!==null||e.getClientRects().length>0}function z(e){let t=[],n=e=>{(e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth)&&t.push(e);for(let t of Array.from(e.children))n(t)};return n(e),t}var B=class{doc;elements=new Map;preserved=new Map;sizes=new Map;hidden=null;constructor(e=document){this.doc=e}hiddenStore(){if(!this.hidden||!this.hidden.isConnected){let e=this.doc.createElement(`div`);e.className=`vdd-panel-store`,e.style.display=`none`,this.doc.body.appendChild(e),this.hidden=e}return this.hidden}elementFor(e){let t=this.elements.get(e);return t||(t=this.doc.createElement(`div`),t.className=`vdd-panel-mount`,t.dataset.vddPanel=e,this.hiddenStore().appendChild(t),this.elements.set(e,t)),t}has(e){return this.elements.has(e)}reportSize(e,t){this.sizes.set(e,t)}sizeOf(e){return this.sizes.get(e)??{width:800,height:500}}hostOf(e){return this.elements.get(e)?.parentElement??null}moveTo(e,t,n){let r=this.elementFor(e),i=t??this.hiddenStore();if(r.parentElement===i)return;let a=n?.preserveScroll!==!1;a&&this.remember(e,r),i.appendChild(r),a&&this.apply(e,r,n?.refocus===!0)}release(e){this.elements.get(e)?.remove(),this.elements.delete(e),this.preserved.delete(e),this.sizes.delete(e)}dispose(){for(let e of this.elements.values())e.remove();this.elements.clear(),this.preserved.clear(),this.sizes.clear(),this.hidden?.remove(),this.hidden=null}remember(e,t){if(!R(t))return;let n=z(t).map(e=>({el:e,top:e.scrollTop,left:e.scrollLeft})),r=null,i=this.doc.activeElement;if(i&&t.contains(i)){let e=i,t=`selectionStart`in e&&e.selectionStart!==null;r={el:i,start:t?e.selectionStart:null,end:t?e.selectionEnd:null}}this.preserved.set(e,{scrolls:n,focus:r})}apply(e,t,n){let r=this.preserved.get(e);if(!r)return;let i=()=>{for(let e of r.scrolls)e.el.scrollTop=e.top,e.el.scrollLeft=e.left;if(n&&r.focus&&(r.focus.el.focus({preventScroll:!0}),r.focus.start!==null))try{r.focus.el.setSelectionRange(r.focus.start,r.focus.end??r.focus.start)}catch{}};R(t)&&i(),typeof requestAnimationFrame==`function`&&requestAnimationFrame(()=>{R(t)&&i()})}},V=Symbol(`vdd-panel-dom`);function H(t){(0,e.provide)(V,t)}function se(){return(0,e.inject)(V,null)}var U=5,ce=Symbol(`vdd-drag-dock`);function le(t){let n=(0,e.ref)(null),r=(0,e.ref)({x:0,y:0}),i=(0,e.ref)(null),a=(0,e.ref)(null),o=(0,e.ref)(null),s=(0,e.shallowRef)(null),c=(0,e.computed)(()=>n.value!==null),l=e=>t.state.isRtl?e===`left`?`right`:e===`right`?`left`:e:e;function u(){n.value=null,i.value=null,a.value=null,o.value=null,s.value=null,t.setDraggedPanelId(null),document.body.classList.remove(`vdd-dragging-active`)}function d(e){n.value=e,t.setDraggedPanelId(e),document.body.classList.add(`vdd-dragging-active`)}function f(e,t){i.value=t?{leafId:e,position:t}:null,t&&(a.value=null,o.value=null)}let m=e=>{a.value=e},h=e=>{o.value=e,e&&(a.value=null)},g=e=>{s.value=e};function _(e,t){let n=document.elementsFromPoint(e,t),r=!1,c=!1,l=!1;for(let t of n)if(t instanceof HTMLElement){if(!r&&t.dataset.vddDropZone&&t.dataset.vddLeaf&&(i.value={leafId:t.dataset.vddLeaf,position:t.dataset.vddDropZone},r=!0),!l&&t.dataset.vddTab&&t.dataset.vddTabLeaf){let n=t.getBoundingClientRect();s.value={leafId:t.dataset.vddTabLeaf,panelId:t.dataset.vddTab,index:Number.parseInt(t.dataset.vddTabIndex??`0`,10),side:e-n.left<n.width/2?`left`:`right`},l=!0}if(!c&&t.dataset.vddEdge&&(a.value=t.dataset.vddEdge,c=!0),!r&&t.dataset.vddCorner&&(o.value=t.dataset.vddCorner),r&&c&&l)break}r||(i.value=null),c||(a.value=null),l||(s.value=null)}function v(e,n){let r=a.value,c=s.value,d=i.value,f=o.value;if(r)t.dockPanelToWorkspaceEdge(e,l(r));else if(c){let n=c.index;c.side===`right`&&(n+=1);let r=p(t.state.gridRoot,c.leafId);if(r){let t=r.panels.indexOf(e);t!==-1&&t<n&&--n}t.movePanelOrder(e,c.leafId,n)}else d?t.dockPanelToGroup(e,d.leafId,l(d.position)):f?t.floatPanel(e,void 0,t.state.isRtl?I(f):f):t.floatPanel(e,{x:n.clientX-150,y:n.clientY-15,width:450,height:350});u()}function y(e,t,n){if(t.pointerType===`mouse`&&t.button!==0)return;let i=t.currentTarget,a=t.clientX,o=t.clientY;if(t.pointerType===`touch`){let s=t.pointerId,c=!1,l=!1,f=()=>{clearTimeout(g),i.removeEventListener(`pointermove`,p),i.removeEventListener(`pointerup`,m),i.removeEventListener(`pointercancel`,h)},p=e=>{Math.hypot(e.clientX-a,e.clientY-o)>8&&(c=!0,f())},m=()=>{c=!0,f()},h=m,g=setTimeout(()=>{if(c)return;f();try{i.setPointerCapture(s)}catch{return}i.classList.add(`vdd-long-press-active`),document.body.classList.add(`vdd-dragging-active`),navigator.vibrate?.(10);let t=t=>{l||(l=!0,d(e)),r.value={x:t.clientX,y:t.clientY},_(t.clientX,t.clientY)},a=r=>{i.classList.remove(`vdd-long-press-active`),i.removeEventListener(`pointermove`,t),i.removeEventListener(`pointerup`,a),i.removeEventListener(`pointercancel`,o),l?v(e,r):(document.body.classList.remove(`vdd-dragging-active`),n?.(r))},o=()=>{i.classList.remove(`vdd-long-press-active`),i.removeEventListener(`pointermove`,t),i.removeEventListener(`pointerup`,a),i.removeEventListener(`pointercancel`,o),u()};i.addEventListener(`pointermove`,t),i.addEventListener(`pointerup`,a),i.addEventListener(`pointercancel`,o)},300);i.addEventListener(`pointermove`,p),i.addEventListener(`pointerup`,m),i.addEventListener(`pointercancel`,h);return}let s=!1,c=t=>{if(!s){if(Math.abs(t.clientX-a)<=U&&Math.abs(t.clientY-o)<=U)return;s=!0,d(e)}r.value={x:t.clientX,y:t.clientY}},l=()=>{window.removeEventListener(`pointermove`,c),window.removeEventListener(`pointerup`,f),window.removeEventListener(`pointercancel`,p)},f=t=>{l(),s?v(e,t):document.body.classList.remove(`vdd-dragging-active`)},p=()=>{l(),u()};window.addEventListener(`pointermove`,c),window.addEventListener(`pointerup`,f),window.addEventListener(`pointercancel`,p)}let b={draggedId:n,pointer:r,zone:i,edge:a,corner:o,tab:s,dragging:c,startTabDrag:y,beginDrag:d,trackPointer:(e,t)=>{r.value={x:e,y:t},_(e,t)},hoverZone:f,hoverEdge:m,hoverCorner:h,hoverTab:g,finishDrag:v,cancel:u};return(0,e.provide)(ce,b),b}function W(){return(0,e.inject)(ce,null)}function G(e,t,n,r){let i=[];return n.canDrag!==!1&&i.push({label:e.messages.floatWindow,action:r.float}),n.canMinimize!==!1&&i.push({label:e.messages.minimizePanel,action:r.minimize}),i.length>0&&n.canClose!==!1&&i.push({separator:!0}),n.canClose!==!1&&i.push({label:e.messages.closeTab,action:r.close}),de(e,t,i)}function ue(e,t,n,r){let i=[{label:e.messages.restorePanel,action:r.restore}];return n.canDrag!==!1&&i.push({label:e.messages.maximizePanel,action:r.maximize}),n.canClose!==!1&&(i.push({separator:!0}),i.push({label:e.messages.closePanel,action:r.close})),de(e,t,i)}function de(e,t,n){let r=e.panelMenuItems(t);return r.length===0?n:n.length>0?[...n,{separator:!0},...r]:[...r]}function K(){let t=(0,e.inject)(P,null);if(!t)throw Error(`[vue-dockable-desktop] useWorkspace() found no workspace. Create one with createWorkspace() and install it with app.use(workspace).`);return(0,e.getCurrentScope)()?{...t,subscribe(n,r){let i=t.subscribe(n,r);return(0,e.onScopeDispose)(i),i}}:t}function q(e){let{element:t,pointerId:n,startClientX:r,startClientY:i,captureStart:a,onMove:o,onEnd:s,activeClasses:c}=e;t.setPointerCapture(n),c?.forEach(({el:e,classes:t})=>e.classList.add(...t));let l=a(),u=e=>{o(e.clientX-r,e.clientY-i,l)},d=()=>{c?.forEach(({el:e,classes:t})=>e.classList.remove(...t)),t.removeEventListener(`pointermove`,u),t.removeEventListener(`pointerup`,d),t.removeEventListener(`pointercancel`,d),s?.(l)};t.addEventListener(`pointermove`,u),t.addEventListener(`pointerup`,d),t.addEventListener(`pointercancel`,d)}function J(e,t,n,r,i){let{minW:a,minH:o,maxW:s,maxH:c,minX:l,minY:u}=i,{x:d,y:f,w:p,h:m}=r;if(e.includes(`e`)&&(p=Math.max(a,Math.min(r.w+t,s??1/0))),e.includes(`w`)){let e=r.w-a,n=l==null?-1/0:-(r.x-l),i=Math.max(n,Math.min(t,e));p=r.w-i,d=r.x+i}if(e.includes(`s`)&&(m=Math.max(o,Math.min(r.h+n,c??1/0))),e.includes(`n`)){let e=r.h-o,t=u==null?-1/0:-(r.y-u),i=Math.max(t,Math.min(n,e));m=r.h-i,f=r.y+i}return{x:d,y:f,w:p,h:m}}var fe=[`data-vdd-slot`],pe=(0,e.defineComponent)({__name:`VddPanelSlot`,props:{panelId:{},hostClass:{}},setup(t){let n=t,r=se(),i=K(),a=null;function o(e){let t=e??null;a=t,r&&t&&r.moveTo(n.panelId,t,{refocus:i.state.activePanelId===n.panelId,preserveScroll:i.registry.get(i.state.panels[n.panelId]?.component??``)?.defaultOptions?.preserveScroll!==!1})}return(0,e.onBeforeUnmount)(()=>{r&&r.hostOf(n.panelId)===a&&r.moveTo(n.panelId,null)}),(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref:o,class:(0,e.normalizeClass)([`vdd-panel-slot`,t.hostClass]),"data-vdd-slot":t.panelId},null,10,fe))}}),me={class:`vdd-dock-drop-zone-overlay`},he={class:`vdd-dock-target-cross`},ge=[`data-vdd-drop-zone`,`data-vdd-leaf`,`onPointerenter`],_e=(0,e.defineComponent)({__name:`VddDropZones`,props:{leafId:{}},setup(t){let n=t,r=W(),i=K(),a=[`top`,`bottom`,`left`,`right`,`center`],o={top:`▲`,bottom:`▼`,left:`◀`,right:`▶`,center:`▣`},s=e=>r?.zone.value?.leafId===n.leafId&&r.zone.value.position===e,c=(0,e.computed)(()=>{let e=r?.zone.value;if(!e||e.leafId!==n.leafId)return null;let t=`${i.state.splitRatio*100}%`,a=`${(1-i.state.splitRatio)*100}%`,o=e.position;return{left:o===`right`?a:`0`,top:o===`bottom`?a:`0`,width:o===`left`||o===`right`?t:`100%`,height:o===`top`||o===`bottom`?t:`100%`}});return(n,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,[(0,e.createElementVNode)(`div`,me,[(0,e.createElementVNode)(`div`,he,[((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(a,n=>(0,e.createElementVNode)(`div`,{key:n,class:(0,e.normalizeClass)([`vdd-dock-target-box`,[`vdd-dock-target-${n}`,{"vdd-dock-target-box--active":s(n)}]]),"data-vdd-drop-zone":n,"data-vdd-leaf":t.leafId,onPointerenter:i=>(0,e.unref)(r)?.hoverZone(t.leafId,n),onPointerleave:i[0]||=n=>(0,e.unref)(r)?.hoverZone(t.leafId,null)},(0,e.toDisplayString)(o[n]),43,ge)),64))])]),c.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`vdd-dock-preview-highlight`,style:(0,e.normalizeStyle)(c.value)},null,4)):(0,e.createCommentVNode)(``,!0)],64))}}),ve=[`data-vdd-leaf`,`data-active-panel-id`],ye={class:`vdd-workspace-tab-bar`},be={class:`vdd-tab-headers-container`},xe=[`data-vdd-tab`,`data-vdd-tab-leaf`,`data-vdd-tab-index`,`aria-selected`,`onClick`,`onContextmenu`,`onPointerdown`,`onPointermove`],Se={class:`vdd-text-truncate`},Ce={key:0,class:`vdd-workspace-tab-icon`},we=[`title`,`data-vdd-close`,`onClick`],Y={key:0,class:`vdd-tab-header-actions`},Te=[`title`,`aria-label`],Ee={class:`vdd-panel-body`},De={key:2,class:`vdd-empty-leaf-placeholder`},Oe=(0,e.defineComponent)({__name:`VddLeafGroup`,props:{leaf:{}},setup(t){let n=t,r=K(),i=W();function a(e,t){let n=r.state.panels[e];if(!n)return;let i=r.registry.get(n.component)?.defaultOptions??{},a=G(r,e,i,{float:()=>r.floatPanel(e),minimize:()=>r.minimizePanel(e),close:()=>r.requestClosePanel(e),restore:()=>r.restorePanel(e),maximize:()=>r.maximizePanel(e)});a.length!==0&&r.showContextMenu({event:t,items:a})}function o(e,t,n,r){if(!i?.dragging.value||r.pointerType===`touch`)return;let a=r.currentTarget.getBoundingClientRect();i.hoverTab({leafId:e,panelId:t,index:n,side:r.clientX-a.left<a.width/2?`left`:`right`})}let s=(0,e.computed)(()=>n.leaf.panels.flatMap(e=>{let t=r.state.panels[e];return t?[{id:e,panel:t,options:r.registry.get(t.component)?.defaultOptions??{}}]:[]})),c=(0,e.computed)(()=>n.leaf.activePanelId),l=e=>{let t=i?.tab.value,a=t?.leafId===n.leaf.id&&t.panelId===e;return[`vdd-workspace-tab`,e===c.value?[`vdd-active`,e===r.state.activePanelId?`vdd-workspace-tab-active-focused`:`vdd-workspace-tab-active-unfocused`]:`vdd-workspace-tab-inactive`,a?t.side===`left`?`vdd-drag-hover-left`:`vdd-drag-hover-right`:``]};return(n,u)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`vdd-workspace-panel`,"data-vdd-leaf":t.leaf.id,"data-active-panel-id":c.value??``,onPointerdown:u[2]||=t=>c.value&&(0,e.unref)(r).focusPanel(c.value)},[(0,e.createElementVNode)(`div`,ye,[(0,e.createElementVNode)(`div`,be,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(s.value,(n,s)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:n.id,class:(0,e.normalizeClass)(l(n.id)),"data-vdd-tab":n.id,"data-vdd-tab-leaf":t.leaf.id,"data-vdd-tab-index":String(s),role:`tab`,"aria-selected":n.id===c.value,style:(0,e.normalizeStyle)({cursor:n.options.canDrag===!1?`default`:`pointer`}),onClick:t=>(0,e.unref)(r).focusPanel(n.id),onContextmenu:(0,e.withModifiers)(e=>a(n.id,e),[`prevent`]),onPointerdown:t=>n.options.canDrag===!1?void 0:(0,e.unref)(i)?.startTabDrag(n.id,t,e=>a(n.id,e)),onPointermove:e=>o(t.leaf.id,n.id,s,e),onPointerleave:u[0]||=t=>(0,e.unref)(i)?.dragging.value&&(0,e.unref)(i).hoverTab(null)},[(0,e.createElementVNode)(`span`,Se,[n.options.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Ce,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(n.options.icon)))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)((0,e.unref)(r).format(n.panel.title))+(0,e.toDisplayString)(n.panel.dirty?` *`:``),1)]),n.options.canClose===!1?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`span`,{key:0,class:`vdd-close-tab-x`,title:(0,e.unref)(r).format((0,e.unref)(r).messages.closeTab),"data-vdd-close":n.id,onClick:(0,e.withModifiers)(t=>(0,e.unref)(r).requestClosePanel(n.id),[`stop`])},[...u[3]||=[(0,e.createElementVNode)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`},[(0,e.createElementVNode)(`path`,{d:`M18 6L6 18M6 6l12 12`})],-1)]],8,we))],46,xe))),128))]),s.value.length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Y,[(0,e.createElementVNode)(`button`,{type:`button`,class:`vdd-header-close-empty-group`,title:(0,e.unref)(r).format((0,e.unref)(r).messages.closeEmptyGroup),"aria-label":(0,e.unref)(r).format((0,e.unref)(r).messages.closeEmptyGroup),"data-vdd-close-empty-group":``,onClick:u[1]||=(0,e.withModifiers)(n=>(0,e.unref)(r).closeLeafGroup(t.leaf.id),[`stop`])},[...u[4]||=[(0,e.createElementVNode)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`},[(0,e.createElementVNode)(`path`,{d:`M18 6L6 18M6 6l12 12`})],-1)]],8,Te)])):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`div`,Ee,[(0,e.unref)(i)?.dragging.value?((0,e.openBlock)(),(0,e.createBlock)(_e,{key:0,"leaf-id":t.leaf.id},null,8,[`leaf-id`])):(0,e.createCommentVNode)(``,!0),c.value?((0,e.openBlock)(),(0,e.createBlock)(pe,{key:c.value,"panel-id":c.value},null,8,[`panel-id`])):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,De,[(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)((0,e.unref)(r).format((0,e.unref)(r).messages.emptyGroup)),1)]))])],40,ve))}}),ke=[`data-vdd-divider`,`onPointerdown`],Ae=(0,e.defineComponent)({__name:`VddWorkspaceGrid`,props:{node:{},path:{}},setup(t){let n=t,r=K(),i=(0,e.computed)(()=>n.node.type===`branch`&&n.node.orientation===`horizontal`);function a(e,t){if(n.node.type!==`branch`)return;t.preventDefault();let a=t.currentTarget,o=a.parentElement,s=o?i.value?o.clientWidth:o.clientHeight:i.value?1e3:800,c=[...n.node.sizes];q({element:a,pointerId:t.pointerId,startClientX:t.clientX,startClientY:t.clientY,captureStart:()=>c,activeClasses:[{el:a,classes:[`vdd-active`]},{el:document.body,classes:[`vdd-resizing-active`,i.value?`vdd-resizing-col-active`:`vdd-resizing-row-active`]}],onMove:(t,a,o)=>{let c=(i.value?t:a)/s,l=[...o];l[e]=(o[e]??0)+c,l[e+1]=(o[e+1]??0)-c,(l[e]??0)>.05&&(l[e+1]??0)>.05&&r.updateSplitSizes(n.path,l)}})}return(n,r)=>{let o=(0,e.resolveComponent)(`VddWorkspaceGrid`,!0);return t.node.type===`leaf`?((0,e.openBlock)(),(0,e.createBlock)(Oe,{key:0,leaf:t.node},null,8,[`leaf`])):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,class:(0,e.normalizeClass)([`vdd-workspace-branch`,i.value?`vdd-row`:`vdd-column`]),style:(0,e.normalizeStyle)({display:`flex`,flexDirection:i.value?`row`:`column`,width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`})},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.node.children,(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:r},[(0,e.createElementVNode)(`div`,{style:(0,e.normalizeStyle)({flexGrow:t.node.sizes[r],flexBasis:`${(t.node.sizes[r]??0)*100}%`,overflow:`hidden`,position:`relative`,minWidth:0,minHeight:0})},[(0,e.createVNode)(o,{node:n,path:[...t.path,r]},null,8,[`node`,`path`])],4),r<t.node.children.length-1?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`vdd-resizer-bar`,"data-vdd-divider":[...t.path,r].join(`-`),style:(0,e.normalizeStyle)({cursor:i.value?`col-resize`:`row-resize`,width:i.value?`1px`:`100%`,height:i.value?`100%`:`1px`,zIndex:20}),onPointerdown:e=>a(r,e)},null,44,ke)):(0,e.createCommentVNode)(``,!0)],64))),128))],6))}}}),je=Symbol(`vdd-panel`);function Me(t){(0,e.provide)(je,t)}var Ne=`standalone`;function Pe(){let t=(0,e.inject)(je,null),n=(0,e.inject)(P,null),r=t?.id??Ne,i=e=>{process.env.NODE_ENV!==`production`&&console.warn(`[vue-dockable-desktop] usePanel().${e} was called outside a panel container, so it did nothing. This is expected when a panel component is rendered standalone.`)},a=(0,e.computed)(()=>n?n.state.panels[r]:void 0),o=(0,e.ref)(null);return{id:r,title:(0,e.computed)(()=>a.value?.title??r),isActive:(0,e.computed)(()=>!!n&&n.state.activePanelId===r),isMinimized:(0,e.computed)(()=>a.value?.state===`minimized`),isFloating:(0,e.computed)(()=>a.value?.state===`floating`),containerType:(0,e.computed)(()=>t?.containerType.value??Ne),size:(0,e.computed)(()=>(t?.size??o).value),dirty:(0,e.computed)(()=>a.value?.dirty===!0),setTitle:e=>{t?.setTitle?t.setTitle(e):n&&a.value?n.updatePanelTitle(r,e):i(`setTitle`)},setIcon:e=>{t?.setIcon?t.setIcon(e):i(`setIcon`)},setDirty:(e,o)=>{t?.setDirty?t.setDirty(e,o):n&&a.value?n.setPanelDirty(r,e,o):i(`setDirty`)},close:e=>{if(t?.close)return t.close(e);if(n&&a.value)return n.requestClosePanel(r,e);i(`close`)},minimize:()=>{n&&a.value?n.minimizePanel(r):i(`minimize`)},onBeforeClose:t=>{if(!n||!a.value){i(`onBeforeClose`);return}let o=n.registerCloseGuard(r,t);(0,e.getCurrentScope)()&&(0,e.onScopeDispose)(o)},onSaveState:t=>{if(!n||!a.value){i(`onSaveState`);return}let o=n.registerStateProvider(r,t);(0,e.getCurrentScope)()&&(0,e.onScopeDispose)(o)}}}var Fe=[`dir`],Ie={key:1,class:`vdd-unregistered-panel`},Le=(0,e.defineComponent)({__name:`VddPanelMount`,props:{panelId:{},cache:{}},setup(t){let n=t,r=K(),i=(0,e.computed)(()=>r.state.panels[n.panelId]),a=(0,e.computed)(()=>i.value?r.registry.get(i.value.component):void 0),o=(0,e.computed)(()=>{let e=i.value;return e&&(e.state===`minimized`?e.previousState??`docked`:e.state)===`floating`?`floating-window`:`dockable-panel`}),s=(0,e.ref)(null);Me({id:n.panelId,containerType:o,size:s});let c=(0,e.computed)(()=>n.cache.elementFor(n.panelId)),l=null;return(0,e.watchEffect)(e=>{let t=c.value;typeof ResizeObserver>`u`||(l=new ResizeObserver(e=>{for(let t of e){let{width:e,height:r}=t.contentRect;e>0&&r>0&&(s.value={width:e,height:r},n.cache.reportSize(n.panelId,{width:e,height:r}))}}),l.observe(t),e(()=>{l?.disconnect(),l=null}))}),(n,o)=>((0,e.openBlock)(),(0,e.createBlock)(e.Teleport,{to:c.value},[(0,e.createElementVNode)(`div`,{class:`vdd-panel-content`,dir:(0,e.unref)(r).state.dir},[a.value?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(a.value.component),(0,e.mergeProps)({key:0},i.value?.props??{},{"panel-id":t.panelId}),null,16,[`panel-id`])):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ie,[o[0]||=(0,e.createElementVNode)(`strong`,null,`Unregistered panel`,-1),(0,e.createElementVNode)(`span`,null,`No component is registered for key "`+(0,e.toDisplayString)(i.value?.component)+`".`,1)]))],8,Fe)],8,[`to`]))}}),Re=[`data-vdd-window`,`dir`],ze=[`data-vdd-titlebar`],Be={class:`vdd-floating-window-title`},Ve={key:0,class:`vdd-window-title-icon`},He=[`data-vdd-more`,`title`],Ue={width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`currentColor`,style:{display:`block`}},We=[`data-vdd-maximize`,`title`],Ge=[`data-vdd-minimize`,`title`],Ke=[`data-vdd-close-window`,`title`],qe=[`data-vdd-handle`,`onPointerdown`],Je=8,Ye=8,Xe=(0,e.defineComponent)({__name:`VddFloatingWindow`,props:{window:{},viewport:{}},setup(t){let n=t,r=K(),i=W(),a=[`n`,`ne`,`e`,`se`,`s`,`sw`,`w`,`nw`],o=(0,e.computed)(()=>r.state.panels[n.window.id]),s=(0,e.computed)(()=>o.value?r.registry.get(o.value.component)?.defaultOptions??{}:{}),c=(0,e.computed)(()=>r.state.activePanelId===n.window.id),l=(0,e.computed)(()=>r.state.draggedPanelId===n.window.id),u=e=>typeof e==`number`?`${e}px`:e,d=(0,e.computed)(()=>r.state.floating.filter(e=>e.anchor===n.window.anchor&&!e.maximized)),f=(0,e.computed)(()=>{if(!n.window.anchor)return 0;let e=d.value.findIndex(e=>e.id===n.window.id),t=Je;for(let n=0;n<e;n++){let e=d.value[n].height;t+=(typeof e==`number`?e:Number.parseFloat(String(e)))+Ye}return t}),p=(0,e.computed)(()=>{let e=n.window,t={position:`absolute`,zIndex:e.z,pointerEvents:l.value?`none`:`auto`};if(e.maximized)return{...t,left:0,top:0,width:`100%`,height:`100%`};if(e.anchor){let n=e.anchor.startsWith(`top`),r=e.anchor.endsWith(`-right`);return{...t,[r?`insetInlineEnd`:`insetInlineStart`]:`${Je}px`,[n?`top`:`bottom`]:`${f.value}px`,width:u(e.width),height:u(e.height),transition:l.value?`none`:`top 0.2s ease, bottom 0.2s ease`}}return{...t,left:u(e.x),top:u(e.y),width:u(e.width),height:u(e.height)}}),m=(0,e.computed)(()=>r.panelMenuItems(n.window.id));function h(e,t=!1){let i=t?m.value:G(r,n.window.id,s.value,{float:()=>r.floatPanel(n.window.id),minimize:()=>r.minimizePanel(n.window.id),close:()=>r.requestClosePanel(n.window.id),restore:()=>r.restorePanel(n.window.id),maximize:()=>r.maximizePanel(n.window.id)});i.length!==0&&r.showContextMenu({event:e,items:i})}function g(e){if(s.value.canDrag===!1||n.window.maximized||e.button!==0)return;e.preventDefault(),r.focusPanel(n.window.id);let t=e.currentTarget.closest(`.vdd-floating-window`),a=t?.offsetLeft??0,o=t?.offsetTop??0,c=e.clientX,l=e.clientY,u=!1;q({element:e.currentTarget,pointerId:e.pointerId,startClientX:e.clientX,startClientY:e.clientY,captureStart:()=>({x:a,y:o}),activeClasses:[{el:document.body,classes:[`vdd-dragging-active`]}],onMove:(e,t,a)=>{u||(u=!0,i?.beginDrag(n.window.id)),r.updateFloatingPosition(n.window.id,{x:a.x+e,y:a.y+t,anchor:null}),i?.trackPointer(c+e,l+t)},onEnd:()=>{u&&i&&(i.zone.value??i.edge.value??i.corner.value??i.tab.value?i.finishDrag(n.window.id,new PointerEvent(`pointerup`)):i.cancel())}})}function _(e,t){if(n.window.maximized||t.button!==0)return;t.preventDefault(),t.stopPropagation(),r.focusPanel(n.window.id);let i=t.currentTarget.closest(`.vdd-floating-window`),a={x:i?.offsetLeft??0,y:i?.offsetTop??0,w:i?.offsetWidth??400,h:i?.offsetHeight??300};q({element:t.currentTarget,pointerId:t.pointerId,startClientX:t.clientX,startClientY:t.clientY,captureStart:()=>a,activeClasses:[{el:document.body,classes:[`vdd-resizing-active`]}],onMove:(t,i,a)=>{let o=J(e,t,i,a,{minW:200,minH:150});r.updateFloatingPosition(n.window.id,{x:o.x,y:o.y,width:o.w,height:o.h})}})}return(n,i)=>o.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:(0,e.normalizeClass)([`vdd-floating-window`,[{"vdd-maximized":t.window.maximized,"vdd-window-focused":c.value},(0,e.unref)(r).classes.window]]),"data-vdd-window":t.window.id,dir:(0,e.unref)(r).state.dir,style:(0,e.normalizeStyle)(p.value),onPointerdownCapture:i[7]||=n=>(0,e.unref)(r).focusPanel(t.window.id)},[(0,e.createElementVNode)(`div`,{class:`vdd-floating-window-titlebar`,"data-vdd-titlebar":t.window.id,style:(0,e.normalizeStyle)({cursor:t.window.maximized||s.value.canDrag===!1?`default`:`move`}),onPointerdown:g,onContextmenu:i[5]||=(0,e.withModifiers)(e=>h(e),[`prevent`]),onDblclick:i[6]||=n=>(0,e.unref)(r).maximizePanel(t.window.id)},[(0,e.createElementVNode)(`span`,Be,[s.value.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Ve,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(s.value.icon)))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)((0,e.unref)(r).format(o.value.title))+(0,e.toDisplayString)(o.value.dirty?` *`:``),1)]),(0,e.createElementVNode)(`div`,{class:`vdd-titlebar-actions`,onPointerdown:i[4]||=(0,e.withModifiers)(()=>{},[`stop`])},[m.value.length>0?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,class:`vdd-custom-tab-btn vdd-btn-more-actions`,"data-vdd-more":t.window.id,title:(0,e.unref)(r).format((0,e.unref)(r).messages.moreActions),onClick:i[0]||=e=>h(e,!0)},[((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,Ue,[...i[8]||=[(0,e.createElementVNode)(`circle`,{cx:`12`,cy:`5`,r:`2`},null,-1),(0,e.createElementVNode)(`circle`,{cx:`12`,cy:`12`,r:`2`},null,-1),(0,e.createElementVNode)(`circle`,{cx:`12`,cy:`19`,r:`2`},null,-1)]]))],8,He)):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`button`,{type:`button`,class:`vdd-custom-tab-btn vdd-btn-maximize-tab`,"data-vdd-maximize":t.window.id,title:(0,e.unref)(r).format(t.window.maximized?(0,e.unref)(r).messages.restoreSize:(0,e.unref)(r).messages.maximize),onClick:i[1]||=n=>(0,e.unref)(r).maximizePanel(t.window.id)},[...i[9]||=[(0,e.createElementVNode)(`svg`,{width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`},[(0,e.createElementVNode)(`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`1.5`})],-1)]],8,We),s.value.canMinimize===!1?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,type:`button`,class:`vdd-custom-tab-btn vdd-btn-minimize-tab`,"data-vdd-minimize":t.window.id,title:(0,e.unref)(r).format((0,e.unref)(r).messages.minimize),onClick:i[2]||=n=>(0,e.unref)(r).minimizePanel(t.window.id)},[...i[10]||=[(0,e.createElementVNode)(`svg`,{width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`3`},[(0,e.createElementVNode)(`path`,{d:`M5 12h14`})],-1)]],8,Ge)),s.value.canClose===!1?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:2,type:`button`,class:`vdd-custom-tab-btn vdd-btn-close-tab`,"data-vdd-close-window":t.window.id,title:(0,e.unref)(r).format((0,e.unref)(r).messages.close),onClick:i[3]||=n=>(0,e.unref)(r).requestClosePanel(t.window.id)},[...i[11]||=[(0,e.createElementVNode)(`svg`,{width:`10`,height:`10`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`3`},[(0,e.createElementVNode)(`path`,{d:`M18 6L6 18M6 6l12 12`})],-1)]],8,Ke))],32)],44,ze),(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`vdd-floating-window-body`,(0,e.unref)(r).classes.windowBody])},[(0,e.createVNode)(pe,{"panel-id":t.window.id},null,8,[`panel-id`])],2),t.window.maximized?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:0},(0,e.renderList)(a,n=>(0,e.createElementVNode)(`div`,{key:n,class:(0,e.normalizeClass)([`vdd-resize-handle`,`vdd-resize-${n}`]),"data-vdd-handle":`${t.window.id}:${n}`,onPointerdown:e=>_(n,e)},null,42,qe)),64))],46,Re)):(0,e.createCommentVNode)(``,!0)}}),Ze=[`data-vdd-edge`,`onPointerenter`],Qe=[`data-vdd-corner`,`onPointerenter`],$e=(0,e.defineComponent)({__name:`VddEdgeZones`,setup(t){let n=W(),r=K(),i=[`left`,`right`,`top`,`bottom`],a=[`top-left`,`top-right`,`bottom-left`,`bottom-right`],o=(0,e.computed)(()=>{let e=n?.edge.value;if(!e)return null;let t=`${r.state.edgeSplitRatio*100}%`;switch(e){case`left`:return{left:`0`,top:`0`,bottom:`0`,width:t};case`right`:return{right:`0`,top:`0`,bottom:`0`,width:t};case`top`:return{top:`0`,left:`0`,right:`0`,height:t};default:return{bottom:`0`,left:`0`,right:`0`,height:t}}});return(t,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,[((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(i,t=>(0,e.createElementVNode)(`div`,{key:t,class:(0,e.normalizeClass)([`vdd-workspace-edge-trigger`,`vdd-edge-trigger-${t}`]),"data-vdd-edge":t,onPointerenter:r=>(0,e.unref)(n)?.hoverEdge(t),onPointerleave:r[0]||=t=>(0,e.unref)(n)?.hoverEdge(null)},null,42,Ze)),64)),((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(a,t=>(0,e.createElementVNode)(`div`,{key:t,class:(0,e.normalizeClass)([`vdd-corner-zone`,[`vdd-corner-zone--${t}`,{"vdd-corner-zone--hovered":(0,e.unref)(n)?.corner.value===t}]]),"data-vdd-corner":t,"aria-hidden":`true`,onPointerenter:r=>(0,e.unref)(n)?.hoverCorner(t),onPointerleave:r[1]||=t=>(0,e.unref)(n)?.hoverCorner(null)},null,42,Qe)),64)),o.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`vdd-workspace-edge-preview`,style:(0,e.normalizeStyle)(o.value)},null,4)):(0,e.createCommentVNode)(``,!0)],64))}}),et=(0,e.defineComponent)({__name:`VddDragGhost`,setup(t){let n=W(),r=K(),i=(0,e.computed)(()=>{let e=n?.draggedId.value;if(!e)return``;let t=r.state.panels[e];return t?r.format(t.title):e}),a=(0,e.computed)(()=>!!n?.draggedId.value&&!r.state.floating.some(e=>e.id===n.draggedId.value));return(t,r)=>a.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`vdd-drag-ghost-tab`,"data-vdd-ghost":``,style:(0,e.normalizeStyle)({left:`${((0,e.unref)(n)?.pointer.value.x??0)+12}px`,top:`${((0,e.unref)(n)?.pointer.value.y??0)+12}px`})},(0,e.toDisplayString)(i.value),5)):(0,e.createCommentVNode)(``,!0)}}),tt=[`dir`],nt={class:`vdd-tooltip-header-row`},rt={class:`vdd-tooltip-title-text vdd-text-truncate`},it=[`data-vdd-preview-close`,`title`],at={key:1,class:`vdd-taskbar-item-preview-letter`},ot=220,st=140,ct=(0,e.defineComponent)({__name:`VddTaskbarPreview`,props:{panelId:{},anchor:{},cache:{}},emits:[`restore`,`close`,`dismiss`,`keep`],setup(t,{emit:n}){let r=t,i=n,a=K(),o=(0,e.computed)(()=>a.state.panels[r.panelId]),s=(0,e.computed)(()=>o.value?a.registry.get(o.value.component)?.defaultOptions??{}:{}),c=(0,e.computed)(()=>s.value.disableLivePreview!==!0),l=(0,e.computed)(()=>r.cache.sizeOf(r.panelId)),u=(0,e.computed)(()=>Math.min(ot/l.value.width,st/l.value.height)),d=(0,e.computed)(()=>({width:`${Math.round(l.value.width*u.value)}px`,height:`${Math.round(l.value.height*u.value)}px`})),f=(0,e.computed)(()=>({width:`${l.value.width}px`,height:`${l.value.height}px`,transform:`scale(${u.value})`,transformOrigin:`top left`,position:`absolute`,top:`0`,left:`0`,"--vdd-preview-scale":String(u.value)})),p=(0,e.computed)(()=>{let e=a.format(o.value?.title)||r.panelId;return(Array.from(e)[0]??`P`).toUpperCase()}),m=null;function h(e){if(!c.value)return;let t=e??null;t?(m=t,r.cache.moveTo(r.panelId,t,{refocus:!1})):g(r.panelId)}function g(e){if(c.value){if(m===null||r.cache.hostOf(e)!==m){m=null;return}m=null,r.cache.moveTo(e,null,{refocus:!1})}}return(0,e.watch)(()=>r.panelId,(e,t)=>{t!==void 0&&g(t)}),(0,e.onBeforeUnmount)(()=>g(r.panelId)),(n,r)=>((0,e.openBlock)(),(0,e.createBlock)(e.Teleport,{to:`body`},[(0,e.createElementVNode)(`div`,{class:`vdd-taskbar-item-tooltip`,"data-vdd-preview":``,dir:(0,e.unref)(a).state.dir,style:(0,e.normalizeStyle)({position:`fixed`,left:`${t.anchor.left+t.anchor.width/2}px`,top:`${t.anchor.top-8}px`,transform:`translateX(-50%) translateY(-100%)`}),onClick:r[1]||=e=>i(`restore`),onPointerenter:r[2]||=e=>i(`keep`),onPointerleave:r[3]||=e=>i(`dismiss`)},[(0,e.createElementVNode)(`div`,nt,[(0,e.createElementVNode)(`span`,rt,(0,e.toDisplayString)((0,e.unref)(a).format(o.value?.title))+(0,e.toDisplayString)(o.value?.dirty?` *`:``),1),(0,e.createElementVNode)(`span`,{class:`vdd-tooltip-close-x`,"data-vdd-preview-close":t.panelId,title:(0,e.unref)(a).format((0,e.unref)(a).messages.closePanel),onClick:r[0]||=(0,e.withModifiers)(e=>i(`close`),[`stop`])},[...r[4]||=[(0,e.createElementVNode)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`},[(0,e.createElementVNode)(`path`,{d:`M18 6L6 18M6 6l12 12`})],-1)]],8,it)]),(0,e.createElementVNode)(`div`,{class:`vdd-taskbar-item-preview-frame`,style:(0,e.normalizeStyle)(d.value)},[c.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,ref:h,class:`vdd-taskbar-item-preview-host`,style:(0,e.normalizeStyle)(f.value)},null,4)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,at,(0,e.toDisplayString)(p.value),1))],4)],44,tt)]))}}),lt=[`data-vdd-taskbar-mode`],ut={key:0,class:`vdd-taskbar-peek-handle`,"data-vdd-peek":``},dt=[`aria-label`],ft=[`data-vdd-taskbar-item`,`title`,`onClick`,`onContextmenu`,`onPointerdown`,`onPointerenter`],pt={class:`vdd-taskbar-item-icon`},mt={key:1,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},ht=[`aria-label`],gt=4,_t=400,vt=2e3,yt=(0,e.defineComponent)({__name:`VddTaskbar`,props:{visibility:{default:`always`},cache:{},defaultIcon:{}},emits:[`contextMenu`],setup(t,{emit:n}){let r=t,i=n,a=K(),o=(0,e.shallowRef)(null),s=(0,e.ref)(!1),c=(0,e.ref)(null),l,u,d=(0,e.computed)(()=>a.state.minimized.map(e=>({...e,options:a.registry.get(e.component)?.defaultOptions??{}}))),f=(0,e.computed)(()=>r.visibility===`always`||d.value.length>0),p=(0,e.computed)(()=>d.value.length>gt);function m(e){o.value?.scrollBy({left:e*150,behavior:`smooth`})}let h=()=>{clearTimeout(l),s.value=!0},g=()=>{clearTimeout(l),l=setTimeout(()=>{s.value=!1},_t)};(0,e.watch)(()=>a.state.minimized.length,(e,t)=>{r.visibility!==`autohide`||e<=(t??0)||(h(),l=setTimeout(()=>{s.value=!1},vt))});let _=e=>{let t=e.getBoundingClientRect();return{left:t.left,top:t.top,width:t.width}};function v(e,t,n=!1){clearTimeout(u),c.value={id:e,anchor:_(t),fromTouch:n}}let y=()=>{clearTimeout(u),u=setTimeout(()=>{c.value=null},150)},b=()=>clearTimeout(u);function x(e,t){if(t.pointerType===`touch`)return;let n=t.currentTarget,r=n.getBoundingClientRect();t.clientX<r.left||t.clientX>r.right||t.clientY<r.top||t.clientY>r.bottom||v(e,n,!1)}function S(e){c.value=null,a.restorePanel(e)}function C(e,t){c.value?.fromTouch||S(e)}function w(e,t){if(t.pointerType!==`touch`)return;let n=t.currentTarget,r=t.clientX,a=t.clientY,o=!1,s=()=>{clearTimeout(d),n.removeEventListener(`pointermove`,l),n.removeEventListener(`pointerup`,u),n.removeEventListener(`pointercancel`,s)},l=e=>{Math.hypot(e.clientX-r,e.clientY-a)>8&&(o=!0,s())},u=()=>{s(),!o&&(c.value?.id===e?S(e):v(e,n,!0))},d=setTimeout(()=>{o||(s(),navigator.vibrate?.(10),i(`contextMenu`,e,t))},300);n.addEventListener(`pointermove`,l),n.addEventListener(`pointerup`,u),n.addEventListener(`pointercancel`,s)}return(0,e.watch)(()=>a.state.minimized.map(e=>e.id).join(`,`),e=>{c.value&&!e.split(`,`).includes(c.value.id)&&(c.value=null)}),(0,e.onBeforeUnmount)(()=>{clearTimeout(l),clearTimeout(u)}),(n,r)=>f.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:(0,e.normalizeClass)([`vdd-taskbar-footer-container`,[`vdd-taskbar-mode-${t.visibility}`,{"vdd-taskbar-expanded":t.visibility===`autohide`&&s.value}]]),"data-vdd-taskbar":``,"data-vdd-taskbar-mode":t.visibility,onPointerenter:r[7]||=e=>t.visibility===`autohide`&&h(),onPointerleave:r[8]||=e=>t.visibility===`autohide`&&g()},[t.visibility===`autohide`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ut)):(0,e.createCommentVNode)(``,!0),p.value?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,type:`button`,class:`vdd-taskbar-nav-btn`,"data-vdd-taskbar-scroll":`left`,"aria-label":(0,e.unref)(a).format((0,e.unref)(a).messages.scrollTabsLeft),onClick:r[0]||=e=>m(-1)},`◀`,8,dt)):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,{ref_key:`strip`,ref:o,class:`vdd-taskbar-items-container`},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(d.value,n=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:n.id,class:`vdd-taskbar-glassmorphic-item`,"data-vdd-taskbar-item":n.id,role:`button`,title:(0,e.unref)(a).format(n.title),onClick:e=>C(n.id,e),onContextmenu:(0,e.withModifiers)(e=>i(`contextMenu`,n.id,e),[`prevent`]),onPointerdown:e=>w(n.id,e),onPointerenter:e=>x(n.id,e),onPointerleave:r[1]||=e=>y()},[(0,e.createElementVNode)(`span`,pt,[n.options.icon??t.defaultIcon?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(n.options.icon??t.defaultIcon),{key:0})):((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,mt,[...r[9]||=[(0,e.createElementVNode)(`rect`,{x:`3`,y:`3`,width:`7`,height:`9`,rx:`1`},null,-1),(0,e.createElementVNode)(`rect`,{x:`14`,y:`3`,width:`7`,height:`5`,rx:`1`},null,-1),(0,e.createElementVNode)(`rect`,{x:`14`,y:`12`,width:`7`,height:`9`,rx:`1`},null,-1),(0,e.createElementVNode)(`rect`,{x:`3`,y:`16`,width:`7`,height:`5`,rx:`1`},null,-1)]]))])],40,ft))),128))],512),p.value?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:2,type:`button`,class:`vdd-taskbar-nav-btn`,"data-vdd-taskbar-scroll":`right`,"aria-label":(0,e.unref)(a).format((0,e.unref)(a).messages.scrollTabsRight),onClick:r[2]||=e=>m(1)},`▶`,8,ht)):(0,e.createCommentVNode)(``,!0),c.value?((0,e.openBlock)(),(0,e.createBlock)(ct,{key:c.value.id,"panel-id":c.value.id,anchor:c.value.anchor,cache:t.cache,onKeep:r[3]||=e=>b(),onRestore:r[4]||=e=>S(c.value.id),onClose:r[5]||=t=>{(0,e.unref)(a).requestClosePanel(c.value.id),c.value=null},onDismiss:r[6]||=e=>y()},null,8,[`panel-id`,`anchor`,`cache`])):(0,e.createCommentVNode)(``,!0)],42,lt)):(0,e.createCommentVNode)(``,!0)}}),bt=[`data-vdd-skin`,`dir`],xt={class:`vdd-panel-port`,"aria-hidden":`true`},St=(0,e.defineComponent)({__name:`VddDesktop`,props:{skin:{default:`vscode`},animations:{type:Boolean,default:!0},taskbar:{default:`always`},defaultPanelIcon:{}},emits:[`taskbarContextMenu`],setup(t,{emit:n}){let r=t,i=n,a=K(),o=new B;H(o);let s=le(a),c=(0,e.computed)(()=>Object.keys(a.state.panels));(0,e.watch)(c,(e,t)=>{for(let n of t??[])e.includes(n)||o.release(n)}),(0,e.onMounted)(()=>{if(process.env.NODE_ENV!==`production`)try{getComputedStyle(document.documentElement).getPropertyValue(`--vdd-styles-loaded`).trim()!==`1`&&console.error(`[vue-dockable-desktop] the stylesheet is not imported.
|
|
2
|
+
Add this to your entry file (main.ts):
|
|
3
|
+
import 'vue-dockable-desktop/styles.css'
|
|
4
|
+
Without it the workspace renders as a black rectangle, with no other error.`)}catch{}});let l=(0,e.useTemplateRef)(`viewport`),u=(0,e.ref)({width:1024,height:768}),d=null,f=!1;(0,e.watch)(l,e=>{d?.disconnect(),!(!e||typeof ResizeObserver>`u`)&&(d=new ResizeObserver(t=>{let n=t[0]?.contentRect;if(n&&(u.value={width:Math.max(100,n.width),height:Math.max(100,n.height)},process.env.NODE_ENV!==`production`&&n.height<10&&!f)){f=!0;let t=e,n=e.parentElement;for(;n&&n!==document.documentElement&&n.getBoundingClientRect().height<10;)t=n,n=n.parentElement;let r=t===e?`the workspace element itself`:`<${t.tagName.toLowerCase()}${t.id?` id="${t.id}"`:``}${t.className?` class="${t.className}"`:``}>`;console.warn(`[vue-dockable-desktop] The workspace has no height, so it is invisible.\n\nZero height starts at: ${r}\n\nIn CSS, height: 100% only resolves when every ancestor has a real height. If any one of them is height: auto (a div's default), the chain breaks.\n\nGive the workspace's container a height — 100vh, or flex: 1 with min-height: 0 inside a flex column. The library deliberately does not style your page; .vdd-fill-viewport is available if you want the simple case.`)}}),d.observe(e))},{immediate:!0,flush:`post`}),(0,e.watch)([u,()=>a.state.floating],([e,t])=>{for(let n of t){let t=e=>typeof e==`number`?e:Number.parseFloat(String(e)),r={x:t(n.x),y:t(n.y),width:t(n.width),height:t(n.height)},i=L(r,e,n.anchor!=null);i!==r&&a.updateFloatingPosition(n.id,i)}},{deep:!0});function p(e,t){let n=a.state.panels[e];if(n){let r=a.registry.get(n.component)?.defaultOptions??{},i=ue(a,e,r,{float:()=>a.floatPanel(e),minimize:()=>a.minimizePanel(e),close:()=>a.requestClosePanel(e),restore:()=>a.restorePanel(e),maximize:()=>a.maximizePanel(e)});i.length>0&&a.showContextMenu({event:t,items:i})}i(`taskbarContextMenu`,e,t)}let m=()=>{let e=document.documentElement;e.setAttribute(`data-vdd-skin`,r.skin),e.classList.toggle(`vdd-no-animations`,r.animations===!1),e.style.setProperty(`--vdd-z-base`,String(a.config.zIndexBase))};return(0,e.watch)(()=>[r.skin,r.animations,a.config.zIndexBase],m),(0,e.onMounted)(m),(0,e.onBeforeUnmount)(()=>{d?.disconnect();let e=document.documentElement;e.removeAttribute(`data-vdd-skin`),e.classList.remove(`vdd-no-animations`),e.style.removeProperty(`--vdd-z-base`),o.dispose()}),(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`vdd-workspace`,{"vdd-no-animations":t.animations===!1}]),"data-vdd-skin":t.skin,dir:(0,e.unref)(a).state.dir},[(0,e.createElementVNode)(`div`,{ref_key:`viewport`,ref:u,class:`vdd-workspace-viewport`},[(0,e.unref)(s).dragging.value?((0,e.openBlock)(),(0,e.createBlock)($e,{key:0})):(0,e.createCommentVNode)(``,!0),(0,e.createVNode)(Ae,{node:(0,e.unref)(a).state.gridRoot,path:[]},null,8,[`node`]),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(a).state.floating,t=>((0,e.openBlock)(),(0,e.createBlock)(Xe,{key:t.id,window:t,viewport:u.value},null,8,[`window`,`viewport`]))),128))],512),(0,e.createVNode)(yt,{visibility:t.taskbar,cache:(0,e.unref)(o),"default-icon":t.defaultPanelIcon,onContextMenu:p},null,8,[`visibility`,`cache`,`default-icon`]),(0,e.createVNode)(et),(0,e.createElementVNode)(`div`,xt,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(c.value,t=>((0,e.openBlock)(),(0,e.createBlock)(Le,{key:t,"panel-id":t,cache:(0,e.unref)(o)},null,8,[`panel-id`,`cache`]))),128))])],10,bt))}}),Ct=[`dir`],wt={key:0,class:`vdd-context-menu__separator`,role:`separator`},Tt=[`title`,`data-vdd-menu-submenu`,`aria-expanded`,`onPointerenter`,`onPointerleave`],Et={class:`vdd-context-menu__label`},Dt=[`disabled`,`title`,`data-cy-action`,`data-vdd-menu-item`,`aria-checked`,`onClick`,`onPointerenter`,`onPointerleave`],Ot=[`aria-hidden`],kt={class:`vdd-context-menu__label`},At={width:`12`,height:`12`,viewBox:`0 0 12 12`,fill:`none`},jt=[`fill`],Mt={key:0,d:`M2.5 6 L4.5 8.5 L9.5 3.5`,stroke:`white`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},Nt=[`dir`],Pt={key:0,class:`vdd-context-menu__separator`,role:`separator`},Ft=[`disabled`,`data-vdd-menu-item`,`onClick`],It=[`aria-hidden`],Lt={class:`vdd-context-menu__label`},Rt=150,zt=200,Bt=(0,e.defineComponent)({__name:`VddContextMenu`,props:{theme:{default:`dark`}},setup(t){let n=K(),r=(0,e.useTemplateRef)(`root`),i=(0,e.useTemplateRef)(`submenuRoot`),a=(0,e.computed)(()=>n.contextMenu.value),o=(0,e.ref)({x:0,y:0}),s=(0,e.ref)(null),c=(0,e.ref)({x:0,y:0}),l=new Map,u,d,f=()=>{clearTimeout(u),clearTimeout(d)};function p(){f(),s.value=null,n.closeContextMenu()}(0,e.watch)(a,async t=>{if(!t){s.value=null;return}o.value={x:t.x,y:t.y},l.clear(),s.value=null,await(0,e.nextTick)();let n=r.value;if(!n)return;let i=n.getBoundingClientRect();o.value=D({x:t.x,y:t.y},{width:i.width,height:i.height},{width:window.innerWidth,height:window.innerHeight})}),(0,e.watch)(a,e=>{e?(document.addEventListener(`pointerdown`,m,{capture:!0}),window.addEventListener(`click`,m),document.addEventListener(`keydown`,h)):(document.removeEventListener(`pointerdown`,m,{capture:!0}),window.removeEventListener(`click`,m),document.removeEventListener(`keydown`,h))});function m(e){let t=e.target;if(!(t instanceof Node)){p();return}r.value?.contains(t)||i.value?.contains(t)||p()}function h(e){e.key===`Escape`&&(e.stopPropagation(),p())}(0,e.onBeforeUnmount)(()=>{f(),document.removeEventListener(`pointerdown`,m,{capture:!0}),window.removeEventListener(`click`,m),document.removeEventListener(`keydown`,h)});let g=e=>e,_=e=>{let t=g(e).checkbox;return!!t&&t.active!==!1},v=e=>_(e)&&g(e).checkbox.value===!0,y=e=>g(e).disabled===!0||_(e)&&g(e).checkbox.enabled===!1;function b(e,t){let n=t;n?l.set(e,n):l.delete(e)}function x(e){y(e)||(g(e).action?.(),p())}function S(e,t){clearTimeout(d),s.value!==null&&s.value!==e&&(clearTimeout(u),s.value=null),T(t)&&t.items?.length?(clearTimeout(u),u=setTimeout(()=>{let t=l.get(e);if(t){let e=t.getBoundingClientRect();c.value=n.state.isRtl?{x:window.innerWidth-e.left+2,y:e.top}:{x:e.right+2,y:e.top}}s.value=e},Rt)):(clearTimeout(u),s.value!==null&&(d=setTimeout(()=>{s.value=null},zt)))}function C(e){clearTimeout(u),T(e)&&e.items?.length&&(d=setTimeout(()=>{s.value=null},zt))}let E=(0,e.computed)(()=>{let e=s.value;if(e===null||!a.value)return[];let t=a.value.items[e];return t&&T(t)?t.items??[]:[]}),O=(0,e.computed)(()=>n.state.isRtl?{position:`fixed`,right:`${c.value.x}px`,top:`${c.value.y}px`}:{position:`fixed`,left:`${c.value.x}px`,top:`${c.value.y}px`});return(c,l)=>a.value?((0,e.openBlock)(),(0,e.createBlock)(e.Teleport,{key:0,to:`body`},[c.$slots.default?(0,e.renderSlot)(c.$slots,`default`,{items:a.value.items,x:o.value.x,y:o.value.y,close:()=>(0,e.unref)(n).closeContextMenu()},void 0,void 0,0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,ref_key:`root`,ref:r,class:(0,e.normalizeClass)([`vdd-context-menu`,`vdd-context-menu--${t.theme}`]),style:(0,e.normalizeStyle)({position:`fixed`,left:`${o.value.x}px`,top:`${o.value.y}px`}),dir:(0,e.unref)(n).state.dir,"data-vdd-menu":``,role:`menu`,"aria-orientation":`vertical`},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(a.value.items,(t,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:r},[(0,e.unref)(w)(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`hr`,wt)):(0,e.unref)(T)(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,ref_for:!0,ref:e=>b(r,e),type:`button`,class:(0,e.normalizeClass)([`vdd-context-menu__item vdd-context-menu__item--has-submenu`,{"vdd-context-menu__item--submenu-open":s.value===r}]),title:t.title?(0,e.unref)(n).format(t.title):void 0,"data-vdd-menu-submenu":(0,e.unref)(n).format(t.label),role:`menuitem`,"aria-haspopup":`true`,"aria-expanded":s.value===r,onPointerenter:e=>S(r,t),onPointerleave:e=>C(t)},[l[2]||=(0,e.createElementVNode)(`span`,{class:`vdd-context-menu__icon`,"aria-hidden":`true`},null,-1),(0,e.createElementVNode)(`span`,Et,(0,e.toDisplayString)((0,e.unref)(n).format(t.label)),1),l[3]||=(0,e.createElementVNode)(`span`,{class:`vdd-context-menu__chevron`,"aria-hidden":`true`},`›`,-1)],42,Tt)):((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:2,ref_for:!0,ref:e=>b(r,e),type:`button`,class:(0,e.normalizeClass)([`vdd-context-menu__item`,{"vdd-context-menu__item--disabled":y(t)}]),disabled:y(t),title:g(t).title?(0,e.unref)(n).format(g(t).title):void 0,"data-cy-action":g(t).cyAction,"data-vdd-menu-item":(0,e.unref)(n).format(g(t).label),role:`menuitem`,"aria-checked":_(t)?v(t):void 0,onClick:e=>x(t),onPointerenter:e=>S(r,t),onPointerleave:e=>C(t)},[(0,e.createElementVNode)(`span`,{class:`vdd-context-menu__icon`,"aria-hidden":!g(t).icon},[g(t).icon?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(g(t).icon),{key:0})):(0,e.createCommentVNode)(``,!0)],8,Ot),(0,e.createElementVNode)(`span`,kt,(0,e.toDisplayString)((0,e.unref)(n).format(g(t).label)),1),_(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,{key:0,class:(0,e.normalizeClass)([`vdd-context-menu__checkbox`,{"vdd-context-menu__checkbox--checked":v(t)}]),"aria-hidden":`true`},[((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,At,[(0,e.createElementVNode)(`rect`,{x:`0.75`,y:`0.75`,width:`10.5`,height:`10.5`,rx:`2`,fill:v(t)?`currentColor`:`none`,stroke:`currentColor`,"stroke-width":`1.5`},null,8,jt),v(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,Mt)):(0,e.createCommentVNode)(``,!0)]))],2)):(0,e.createCommentVNode)(``,!0)],42,Dt))],64))),128))],14,Ct)),s.value!==null&&E.value.length?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:2,ref_key:`submenuRoot`,ref:i,class:(0,e.normalizeClass)([`vdd-context-menu vdd-context-menu--submenu`,`vdd-context-menu--${t.theme}`]),style:(0,e.normalizeStyle)(O.value),dir:(0,e.unref)(n).state.dir,"data-vdd-submenu":``,role:`menu`,onPointerenter:l[0]||=e=>f(),onPointerleave:l[1]||=e=>s.value=null},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(E.value,(t,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:r},[(0,e.unref)(w)(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`hr`,Pt)):((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,type:`button`,class:(0,e.normalizeClass)([`vdd-context-menu__item`,{"vdd-context-menu__item--disabled":y(t)}]),disabled:y(t),"data-vdd-menu-item":(0,e.unref)(n).format(g(t).label),role:`menuitem`,onClick:e=>x(t)},[(0,e.createElementVNode)(`span`,{class:`vdd-context-menu__icon`,"aria-hidden":!g(t).icon},[g(t).icon?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(g(t).icon),{key:0})):(0,e.createCommentVNode)(``,!0)],8,It),(0,e.createElementVNode)(`span`,Lt,(0,e.toDisplayString)((0,e.unref)(n).format(g(t).label)),1)],10,Ft))],64))),128))],46,Nt)):(0,e.createCommentVNode)(``,!0)])):(0,e.createCommentVNode)(``,!0)}}),Vt=e=>`custom`in e&&e.custom===!0,Ht=e=>!Vt(e)&&!(`onClick`in e),Ut=e=>!Vt(e)&&`onClick`in e,Wt=e=>e==null?[]:Array.isArray(e)?e:[e],Gt=Symbol(`vdd-sidebar`),Kt=Symbol(`vdd-sidebar-tab`),qt={key:0,class:`vdd-sidebar-tabs-list`},Jt=[`title`,`aria-pressed`,`data-vdd-sidebar-tab`,`onClick`],Yt=[`disabled`,`title`,`aria-label`,`data-vdd-rail-action`,`onClick`],Xt=[`title`,`aria-pressed`,`data-vdd-sidebar-tab`,`onClick`],Zt=56,Qt=(0,e.defineComponent)({__name:`VddSidebarRail`,props:{tabs:{},header:{},footer:{},activeTabId:{},position:{},visible:{type:Boolean}},emits:[`select`],setup(t,{emit:n}){let r=n,i=e=>e.filter(e=>!e.hidden);return(n,a)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`vdd-sidebar-strip-outer`,style:(0,e.normalizeStyle)({width:t.visible?`${Zt}px`:`0px`}),"data-vdd-sidebar-strip":``},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`vdd-sidebar-tabs-strip`,[`vdd-${t.position}`,{"vdd-sidebar-tabs-strip--has-header-action":t.header.length>0,"vdd-sidebar-tabs-strip--has-footer-action":t.footer.length>0}]]),style:(0,e.normalizeStyle)({width:`${Zt}px`})},[((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)([`header`,`tabs`,`footer`],n=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:n},[n===`tabs`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,qt,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(i(t.tabs),n=>((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:n.id,type:`button`,class:(0,e.normalizeClass)([`vdd-sidebar-tab-btn`,{"vdd-active":t.activeTabId===n.id}]),title:n.label,"aria-pressed":t.activeTabId===n.id,"data-vdd-sidebar-tab":n.id,onClick:e=>r(`select`,n.id)},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(n.icon)))],10,Jt))),128))])):(n===`header`?t.header:t.footer).length?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,class:(0,e.normalizeClass)(n===`header`?`vdd-sidebar-header-area`:`vdd-sidebar-footer-area`)},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(n===`header`?t.header:t.footer,(n,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:i},[(0,e.unref)(Vt)(n)?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(n.component),(0,e.mergeProps)({key:0,ref_for:!0},n.props),null,16)):(0,e.unref)(Ut)(n)?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,type:`button`,class:`vdd-sidebar-tab-btn vdd-sidebar-header-action-btn`,disabled:n.disabled,title:n.label,"aria-label":n.label,"data-vdd-rail-action":n.id??n.label,onClick:e=>n.onClick()},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(n.icon)))],8,Yt)):n.hidden?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:2,type:`button`,class:(0,e.normalizeClass)([`vdd-sidebar-tab-btn`,{"vdd-active":t.activeTabId===n.id}]),title:n.label,"aria-pressed":t.activeTabId===n.id,"data-vdd-sidebar-tab":n.id,onClick:e=>r(`select`,n.id)},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(n.icon)))],10,Xt))],64))),128))],2)):(0,e.createCommentVNode)(``,!0)],64))),64))],6)],4))}}),$t=(0,e.defineComponent)({__name:`VddSidebarTabScope`,props:{tabId:{}},emits:[`close`,`open`],setup(t,{emit:n}){let r=t,i=n;return(0,e.provide)(Kt,{tabId:r.tabId,open:()=>i(`open`,r.tabId),close:()=>i(`close`),openTab:e=>i(`open`,e)}),(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,null,[(0,e.renderSlot)(t.$slots,`default`)]))}}),en=[`data-vdd-sidebar-pane`],tn={key:1,class:`vdd-sidebar-drawer-header`},nn={class:`vdd-sidebar-header-title`},rn=(0,e.defineComponent)({__name:`VddSidebarDrawer`,props:{tabs:{},activeTabId:{},position:{},open:{type:Boolean},width:{},minWidth:{},maxWidth:{},headerOverridden:{type:Boolean},showCloseButton:{type:Boolean},resizing:{type:Boolean}},emits:[`close`,`open`],setup(t,{emit:n}){let r=n;return(n,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`vdd-sidebar-content-drawer`,`vdd-${t.position}`]),"data-vdd-sidebar-drawer":``,style:(0,e.normalizeStyle)({flexBasis:t.open?`${t.width}px`:`0px`,minWidth:t.open?`${t.minWidth}px`:`0px`,maxWidth:t.open?`${t.maxWidth}px`:`0px`,...t.resizing?{transition:`none`}:{}})},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.tabs,a=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:a.id,class:`vdd-sidebar-drawer-pane`,style:(0,e.normalizeStyle)({display:t.activeTabId===a.id?`flex`:`none`}),"data-vdd-sidebar-pane":a.id},[t.headerOverridden?(0,e.renderSlot)(n.$slots,`header`,{tab:a,close:()=>r(`close`),open:()=>r(`open`,a.id)},void 0,void 0,0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,tn,[(0,e.createElementVNode)(`span`,nn,(0,e.toDisplayString)(a.label),1),t.showCloseButton?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,class:`vdd-sidebar-drawer-close-button`,"data-vdd-sidebar-close":``,title:`Close`,"aria-label":`Close`,onClick:i[0]||=e=>r(`close`)},[...i[3]||=[(0,e.createElementVNode)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`},[(0,e.createElementVNode)(`path`,{d:`M18 6L6 18M6 6l12 12`})],-1)]])):(0,e.createCommentVNode)(``,!0)])),(0,e.createVNode)($t,{class:`vdd-sidebar-drawer-body`,"tab-id":a.id,onClose:i[1]||=e=>r(`close`),onOpen:i[2]||=e=>r(`open`,e)},{default:(0,e.withCtx)(()=>[(0,e.renderSlot)(n.$slots,`tab-${a.id}`,{tab:a,close:()=>r(`close`),open:()=>r(`open`,a.id)},()=>[a.component?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(a.component),(0,e.mergeProps)({key:0,ref_for:!0},a.props),null,16)):(0,e.createCommentVNode)(``,!0)])]),_:2},1032,[`tab-id`])],12,en))),128))],6))}}),an=[`data-vdd-sidebar`],on={key:3,class:`vdd-sidebar-main`},sn=(0,e.defineComponent)({__name:`VddSidebar`,props:(0,e.mergeModels)({position:{default:`right`},tabs:{},headerAction:{},footerAction:{},minWidth:{default:150},maxWidth:{default:600},showCloseButton:{type:Boolean,default:!1},hideDefaultHeader:{type:Boolean,default:!1},isSecondary:{type:Boolean,default:!1}},{activeTabId:{default:null},activeTabIdModifiers:{},visible:{type:Boolean,default:!0},visibleModifiers:{},stripVisible:{type:Boolean,default:!0},stripVisibleModifiers:{},width:{default:280},widthModifiers:{}}),emits:[`update:activeTabId`,`update:visible`,`update:stripVisible`,`update:width`],setup(t){let n=t,r=(0,e.useSlots)(),i=(0,e.useModel)(t,`activeTabId`),a=(0,e.useModel)(t,`visible`),o=(0,e.useModel)(t,`stripVisible`),s=(0,e.useModel)(t,`width`),c=(0,e.computed)(()=>Wt(n.headerAction)),l=(0,e.computed)(()=>Wt(n.footerAction)),u=(0,e.computed)(()=>[...c.value.filter(Ht),...n.tabs,...l.value.filter(Ht)]),d=(0,e.ref)(new Set),f=(0,e.computed)(()=>{let e=new Set(d.value);i.value&&e.add(i.value);for(let t of u.value)t.eagerMount&&e.add(t.id);return e});function p(e){if(e!==null){if(!d.value.has(e)){let t=new Set(d.value);t.add(e),d.value=t}}else{let e=new Set(d.value),t=!1;for(let n of d.value){let r=u.value.find(e=>e.id===n);r&&!r.eagerMount&&!r.preserveState&&(e.delete(n),t=!0)}t&&(d.value=e)}i.value=e}(0,e.watch)([i,u],([e,t])=>{e!=null&&!t.some(t=>t.id===e)&&p(null)},{immediate:!0});let m=(0,e.computed)(()=>u.value.filter(e=>f.value.has(e.id))),h=(0,e.computed)(()=>a.value!==!1),g=(0,e.computed)(()=>h.value&&o.value!==!1),_=(0,e.computed)(()=>h.value&&i.value!=null),v=(0,e.computed)(()=>u.value.find(e=>e.id===i.value)??null),y=(0,e.computed)(()=>n.hideDefaultHeader||r.header!==void 0),b=e=>p(i.value===e?null:e),x=()=>p(null),S=(0,e.ref)(!1);function C(e){e.preventDefault();let t=e.currentTarget;S.value=!0,q({element:t,pointerId:e.pointerId,startClientX:e.clientX,startClientY:e.clientY,captureStart:()=>s.value,activeClasses:[{el:t,classes:[`vdd-active`]},{el:document.body,classes:[`vdd-resizing-active`,`vdd-resizing-col-active`]}],onMove:(e,t,r)=>{let i=n.position===`right`?r-e:r+e;s.value=Math.max(n.minWidth,Math.min(n.maxWidth,i))},onEnd:()=>{S.value=!1}})}(0,e.provide)(Gt,{openTab:e=>p(e),closeDrawer:x,activeTabId:i,position:n.position,isSecondary:n.isSecondary});let w=process.env.NODE_ENV!==`production`,T=!1;(0,e.watch)([()=>n.showCloseButton,y],([e,t])=>{w&&e&&t&&!T&&(T=!0,console.warn("[vue-dockable-desktop] `showCloseButton` has no effect because the default drawer header is suppressed (`hideDefaultHeader` is set, or a #header slot was provided). The button is part of that header. Put your own close control in the #header slot, wired to its `close`."))},{immediate:!0});let E=!1;return(0,e.watch)(v,e=>{w&&e&&!E&&(r[`tab-${e.id}`]||e.component||(E=!0,console.warn(`[vue-dockable-desktop] Sidebar tab "${e.id}" has no content: give it a #tab-${e.id} slot or a \`component\`. The drawer will open empty.`)))}),(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`vdd-sidebar-layout`,"data-vdd-sidebar":t.position},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.position===`left`?[`rail`,`drawer`,`resizer`,`main`]:[`main`,`resizer`,`drawer`,`rail`],r=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:r},[r===`rail`?((0,e.openBlock)(),(0,e.createBlock)(Qt,{key:0,tabs:t.tabs,header:c.value,footer:l.value,"active-tab-id":i.value,position:t.position,visible:g.value,onSelect:b},null,8,[`tabs`,`header`,`footer`,`active-tab-id`,`position`,`visible`])):r===`drawer`?((0,e.openBlock)(),(0,e.createBlock)(rn,{key:1,tabs:m.value,"active-tab-id":i.value,position:t.position,open:_.value,width:s.value,"min-width":t.minWidth,"max-width":t.maxWidth,"header-overridden":y.value,"show-close-button":t.showCloseButton,resizing:S.value,onClose:x,onOpen:p},(0,e.createSlots)({_:2},[n.$slots.header?{name:`header`,fn:(0,e.withCtx)(t=>[(0,e.renderSlot)(n.$slots,`header`,(0,e.mergeProps)({ref_for:!0},t))]),key:`0`}:void 0,(0,e.renderList)(m.value,t=>({name:`tab-${t.id}`,fn:(0,e.withCtx)(r=>[(0,e.renderSlot)(n.$slots,`tab-${t.id}`,(0,e.mergeProps)({ref_for:!0},r))])}))]),1032,[`tabs`,`active-tab-id`,`position`,`open`,`width`,`min-width`,`max-width`,`header-overridden`,`show-close-button`,`resizing`])):r===`resizer`&&_.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:2,class:`vdd-resizer-bar`,"data-vdd-sidebar-resizer":``,style:{cursor:`col-resize`,width:`1px`,height:`100%`,flexShrink:0,zIndex:20},onPointerdown:C},null,32)):r===`main`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,on,[(0,e.renderSlot)(n.$slots,`default`)])):(0,e.createCommentVNode)(``,!0)],64))),128))],8,an))}}),cn=(0,e.defineComponent)({__name:`VddSecondarySidebar`,props:{tabs:{},headerAction:{},footerAction:{},minWidth:{},maxWidth:{},showCloseButton:{type:Boolean},hideDefaultHeader:{type:Boolean}},setup(t){let n=t,r=(0,e.inject)(Gt,null);if(!r)throw Error(`[vue-dockable-desktop] <VddSecondarySidebar> must be rendered inside a <VddSidebar>. It takes the edge the primary sidebar is not using, so it needs one to be nested in.`);if(r.isSecondary)throw Error(`[vue-dockable-desktop] <VddSecondarySidebar> cannot be nested inside another one. The library supports one primary and one secondary sidebar, nothing deeper.`);let i=(0,e.computed)(()=>r.position===`left`?`right`:`left`);return(t,r)=>((0,e.openBlock)(),(0,e.createBlock)(sn,(0,e.mergeProps)({...n,...t.$attrs},{position:i.value,"is-secondary":``}),(0,e.createSlots)({_:2},[(0,e.renderList)(t.$slots,(n,r)=>({name:r,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,r,(0,e.normalizeProps)((0,e.guardReactiveProps)(n??{})))])}))]),1040,[`position`]))}}),ln=e=>!(`type`in e);function un(e,t,n,r=!1,i=8){switch(t){case`left`:return r?{right:n.width-e.left+i,top:e.top}:{left:e.right+i,top:e.top};case`right`:return r?{left:e.right+i,top:e.top}:{right:n.width-e.left+i,top:e.top};case`top`:return r?{top:e.bottom+i,right:n.width-e.right}:{top:e.bottom+i,left:e.left};default:return r?{bottom:n.height-e.top+i,right:n.width-e.right}:{bottom:n.height-e.top+i,left:e.left}}}var dn=[`title`,`aria-label`,`aria-expanded`,`disabled`,`data-vdd-toolbar-item`],fn=[`dir`,`data-vdd-flyout`],pn={key:0,class:`vdd-toolbar-group-flyout-sep`,role:`separator`},mn=[`disabled`,`aria-pressed`,`data-vdd-flyout-item`,`onClick`],hn={class:`vdd-toolbar-group-flyout-icon`},gn={class:`vdd-toolbar-group-flyout-label`},_n={key:0,class:`vdd-toolbar-group-flyout-shortcut`},vn=(0,e.defineComponent)({__name:`VddToolbarGroupButton`,props:{item:{},position:{}},setup(t){let n=t,r=K(),i=(0,e.useTemplateRef)(`button`),a=(0,e.useTemplateRef)(`flyout`),o=(0,e.ref)(!1),s=(0,e.ref)({}),c=(0,e.computed)(()=>n.item.activeItemId!==void 0),l=(0,e.computed)(()=>c.value?n.item.activeItemId??null:r.toolbar.activeInGroup(n.item.id)),u=(0,e.computed)(()=>n.item.items.find(e=>ln(e)&&e.id===l.value)),d=(0,e.computed)(()=>u.value&&ln(u.value)?u.value.icon:n.item.defaultIcon),f=(0,e.computed)(()=>u.value&&ln(u.value)?u.value.label:n.item.label);async function p(){if(n.item.disabled)return;if(o.value){o.value=!1;return}let t=i.value?.getBoundingClientRect();t&&(s.value=un(t,n.position,{width:window.innerWidth,height:window.innerHeight},r.state.isRtl)),o.value=!0,await(0,e.nextTick)(),h(),document.addEventListener(`pointerdown`,g,{capture:!0}),document.addEventListener(`keydown`,_)}function m(){o.value=!1,document.removeEventListener(`pointerdown`,g,{capture:!0}),document.removeEventListener(`keydown`,_)}function h(){let e=a.value;if(!e)return;let t=e.getBoundingClientRect(),n={...s.value};t.right>window.innerWidth-8&&(n.left=Math.max(8,window.innerWidth-t.width-8),delete n.right),t.left<8&&(n.left=8,delete n.right),t.bottom>window.innerHeight-8&&(n.top=Math.max(8,window.innerHeight-t.height-8),delete n.bottom),t.top<8&&(n.top=8,delete n.bottom),s.value=n}function g(e){let t=e.target;if(!(t instanceof Node)){m();return}i.value?.contains(t)||a.value?.contains(t)||m()}function _(e){e.key===`Escape`&&m()}function v(e,t){c.value?n.item.onActiveItemChange?.(e):r.toolbar.setActiveInGroup(n.item.id,e),t?.(e),m()}(0,e.onBeforeUnmount)(m);let y=(0,e.computed)(()=>{let e={position:`fixed`};for(let[t,n]of Object.entries(s.value))e[t]=`${n}px`;return e});return(n,s)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,[(0,e.createElementVNode)(`button`,{ref_key:`button`,ref:i,type:`button`,class:(0,e.normalizeClass)([`vdd-toolbar-btn vdd-toolbar-btn-group`,{"vdd-active":l.value!==null}]),title:f.value,"aria-label":f.value,"aria-expanded":o.value,"aria-haspopup":`menu`,disabled:t.item.disabled,"data-vdd-toolbar-item":t.item.id,onClick:p},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(d.value)))],10,dn),o.value?((0,e.openBlock)(),(0,e.createBlock)(e.Teleport,{key:0,to:`body`},[(0,e.createElementVNode)(`div`,{ref_key:`flyout`,ref:a,class:(0,e.normalizeClass)([`vdd-toolbar-group-flyout`,`vdd-${t.position}`]),style:(0,e.normalizeStyle)(y.value),dir:(0,e.unref)(r).state.dir,"data-vdd-flyout":t.item.id,role:`menu`},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.item.items,(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:n},[(0,e.unref)(ln)(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,type:`button`,class:(0,e.normalizeClass)([`vdd-toolbar-group-flyout-item`,{"vdd-active":l.value===t.id}]),disabled:t.disabled,role:`menuitem`,"aria-pressed":l.value===t.id,"data-vdd-flyout-item":t.id,onClick:e=>v(t.id,t.onActivate)},[(0,e.createElementVNode)(`span`,hn,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))]),(0,e.createElementVNode)(`span`,gn,(0,e.toDisplayString)(t.label),1),t.shortcut?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,_n,(0,e.toDisplayString)(t.shortcut),1)):(0,e.createCommentVNode)(``,!0)],10,mn)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,pn))],64))),128))],14,fn)])):(0,e.createCommentVNode)(``,!0)],64))}}),yn=[`data-vdd-toolbar`,`aria-orientation`],bn={key:0,class:`vdd-toolbar-separator`,role:`separator`},xn=[`title`,`aria-label`,`disabled`,`data-vdd-toolbar-item`,`onClick`],Sn=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-vdd-toolbar-item`,`onClick`],Cn=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-vdd-toolbar-item`,`onClick`],wn=(0,e.defineComponent)({__name:`VddToolbar`,props:(0,e.mergeModels)({position:{default:`left`},items:{}},{visible:{type:Boolean,default:!0},visibleModifiers:{}}),emits:[`update:visible`],setup(t){let n=t,r=(0,e.useModel)(t,`visible`),i=K(),a=(0,e.computed)(()=>n.position===`left`||n.position===`right`),o=(0,e.computed)(()=>r.value===!1?a.value?{width:`0px`}:{height:`0px`}:{}),s=(e,t)=>i.toolbar.activeInGroup(e)===t;function c(e,t,n){i.toolbar.setActiveInGroup(e,t),n?.(t)}let l=e=>e.active===void 0?i.toolbar.isToggled(e.id):e.active;function u(e){let t=!l(e);e.active===void 0&&i.toolbar.setToggled(e.id,t),e.onToggle?.(t)}return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`vdd-toolbar-strip`,`vdd-${t.position}`]),style:(0,e.normalizeStyle)(o.value),"data-vdd-toolbar":t.position,role:`toolbar`,"aria-orientation":a.value?`vertical`:`horizontal`},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(t.items,(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:n.type===`separator`?`sep-${r}`:n.id},[n.type===`separator`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,bn)):n.type===`action`?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,type:`button`,class:`vdd-toolbar-btn vdd-toolbar-btn-action`,title:n.label,"aria-label":n.label,disabled:n.disabled,"data-vdd-toolbar-item":n.id,onClick:e=>n.onClick()},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(n.icon)))],8,xn)):n.type===`radio`?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:2,type:`button`,class:(0,e.normalizeClass)([`vdd-toolbar-btn vdd-toolbar-btn-radio`,{"vdd-active":s(n.group,n.id)}]),title:n.label,"aria-label":n.label,"aria-pressed":s(n.group,n.id),disabled:n.disabled,"data-vdd-toolbar-item":n.id,onClick:e=>c(n.group,n.id,n.onActivate)},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(n.icon)))],10,Sn)):n.type===`toggle`?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:3,type:`button`,class:(0,e.normalizeClass)([`vdd-toolbar-btn vdd-toolbar-btn-toggle`,{"vdd-active":l(n)}]),title:n.label,"aria-label":n.label,"aria-pressed":l(n),disabled:n.disabled,"data-vdd-toolbar-item":n.id,onClick:e=>u(n)},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(n.icon)))],10,Cn)):n.type===`group`?((0,e.openBlock)(),(0,e.createBlock)(vn,{key:4,item:n,position:t.position},null,8,[`item`,`position`])):(0,e.createCommentVNode)(``,!0)],64))),128))],14,yn))}});function Tn(t){let n=K(),{overlays:r}=n,i=()=>(0,e.toValue)(t),a=(0,e.ref)(null),o=(0,e.computed)(()=>i().kind!==`modal`||i().options.closable!==!1),s=e=>r.requestClose(i().id,{...e,confirm:e=>r.confirmDiscard({title:n.format(e.options.title),dirtyOptions:e.dirtyOptions})});function c(e){if(e.key!==`Escape`||!o.value)return;let t=i();if(t.kind===`modal`){if(r.topmostModal()?.id!==t.id)return;e.stopPropagation()}else if(r.state.modals.length>0)return;s()}return(0,e.onMounted)(()=>document.addEventListener(`keydown`,c)),(0,e.onBeforeUnmount)(()=>document.removeEventListener(`keydown`,c)),Me({id:i().id,containerType:(0,e.computed)(()=>i().kind),close:s,setTitle:e=>r.updateInstance(i().id,{options:{...i().options,title:e}}),setIcon:e=>{a.value=e??null},setDirty:(e,t)=>r.setDirty(i().id,e,t)}),{displayTitle:(0,e.computed)(()=>{let e=n.format(i().options.title);return i().dirty?`${e} *`:e}),dismissible:o,icon:(0,e.computed)(()=>a.value??i().options.icon??null),close:s,bodyPadding:(0,e.computed)(()=>{let e=i().options.bodyPadding;if(e!=null)return typeof e==`number`?`${e}px`:e})}}var En=[`title`,`aria-label`],Dn=(0,e.defineComponent)({__name:`VddOverlayFrame`,props:{block:{},title:{},icon:{},closable:{type:Boolean},closeLabel:{},bodyPadding:{}},emits:[`close`],setup(t,{emit:n}){let r=t,i=n,a={header:`vdd-modal-header`,icon:`vdd-modal-icon`,title:`vdd-modal-title`,closeButton:`vdd-modal-close-button`,body:`vdd-modal-body`},o={header:`vdd-side-panel-header`,icon:`vdd-side-panel-icon`,title:`vdd-side-panel-title`,closeButton:`vdd-side-panel-close-button`,body:`vdd-side-panel-body`},s=(0,e.computed)(()=>r.block===`modal`?a:o),c=K(),l=(0,e.computed)(()=>r.block===`modal`?c.classes.modalBody:c.classes.sidePanelBody);return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)(s.value.header)},[t.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:(0,e.normalizeClass)(s.value.icon)},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))],2)):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`h4`,{class:(0,e.normalizeClass)(s.value.title)},(0,e.toDisplayString)(t.title),3),t.closable?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,type:`button`,class:(0,e.normalizeClass)(s.value.closeButton),title:t.closeLabel,"aria-label":t.closeLabel,"data-vdd-overlay-close":``,onClick:r[0]||=e=>i(`close`)},[...r[1]||=[(0,e.createElementVNode)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`},[(0,e.createElementVNode)(`path`,{d:`M18 6L6 18M6 6l12 12`})],-1)]],10,En)):(0,e.createCommentVNode)(``,!0)],2),(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([s.value.body,l.value]),style:(0,e.normalizeStyle)(t.bodyPadding==null?void 0:{padding:t.bodyPadding})},[(0,e.renderSlot)(n.$slots,`default`)],6)],64))}}),On=[`dir`,`data-vdd-side-panel`],kn=(0,e.defineComponent)({__name:`VddSidePanelHost`,props:{instance:{},position:{},defaultWidth:{}},setup(t){let n=t,r=K(),{displayTitle:i,icon:a,close:o,bodyPadding:s}=Tn(()=>n.instance),c=(0,e.computed)(()=>{let e=n.instance.options.width??n.defaultWidth;return typeof e==`number`?`${e}px`:e});return(n,l)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`vdd-side-panel vdd-side-panel-visible`,t.position===`left`?`vdd-side-panel-left`:`vdd-side-panel-right`]),style:(0,e.normalizeStyle)({width:c.value}),dir:(0,e.unref)(r).state.dir,"data-vdd-side-panel":t.position},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`vdd-side-panel-window`,(0,e.unref)(r).classes.sidePanel])},[(0,e.createVNode)(Dn,{block:`side-panel`,title:(0,e.unref)(i),icon:(0,e.unref)(a),closable:!0,"close-label":(0,e.unref)(r).format((0,e.unref)(r).messages.closeTooltip),"body-padding":(0,e.unref)(s),onClose:l[0]||=t=>(0,e.unref)(o)()},{default:(0,e.withCtx)(()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.instance.component),(0,e.normalizeProps)((0,e.guardReactiveProps)({...t.instance.props,panelId:t.instance.id})),null,16))]),_:1},8,[`title`,`icon`,`close-label`,`body-padding`])],2)],14,On))}}),An=(0,e.defineComponent)({__name:`VddSidePanels`,props:{defaultWidth:{default:400},sides:{default:`both`}},setup(t){let n=t,{overlays:r}=K(),i=(0,e.computed)(()=>n.sides===`right`?null:r.state.leftPanel),a=(0,e.computed)(()=>n.sides===`left`?null:r.state.rightPanel);return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,null,[i.value?((0,e.openBlock)(),(0,e.createBlock)(kn,{key:i.value.id,instance:i.value,position:`left`,"default-width":t.defaultWidth},null,8,[`instance`,`default-width`])):(0,e.createCommentVNode)(``,!0),a.value?((0,e.openBlock)(),(0,e.createBlock)(kn,{key:a.value.id,instance:a.value,position:`right`,"default-width":t.defaultWidth},null,8,[`instance`,`default-width`])):(0,e.createCommentVNode)(``,!0)],64))}}),jn=[`dir`,`data-vdd-modal`],Mn=(0,e.defineComponent)({__name:`VddModalHost`,props:{instance:{},index:{}},setup(t){let n=t,r=K(),{displayTitle:i,icon:a,dismissible:o,close:s,bodyPadding:c}=Tn(()=>n.instance),l=(0,e.computed)(()=>`vdd-modal-size-${n.instance.options.size??`auto`}`),u=(0,e.computed)(()=>`calc(var(--vdd-z-base, 1000) + 9000 + ${n.index*10})`);return(n,d)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`vdd-modal-overlay`,style:(0,e.normalizeStyle)({zIndex:u.value}),dir:(0,e.unref)(r).state.dir,"data-vdd-modal":t.instance.id},[(0,e.createElementVNode)(`div`,{class:`vdd-modal-curtain`,"data-vdd-modal-curtain":``,onClick:d[0]||=t=>(0,e.unref)(o)&&(0,e.unref)(s)()}),(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`vdd-modal-window`,[l.value,(0,e.unref)(r).classes.modal]])},[(0,e.createVNode)(Dn,{block:`modal`,title:(0,e.unref)(i),icon:(0,e.unref)(a),closable:(0,e.unref)(o),"close-label":(0,e.unref)(r).format((0,e.unref)(r).messages.closeTooltip),"body-padding":(0,e.unref)(c),onClose:d[1]||=t=>(0,e.unref)(s)()},{default:(0,e.withCtx)(()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.instance.component),(0,e.normalizeProps)((0,e.guardReactiveProps)({...t.instance.props,panelId:t.instance.id})),null,16))]),_:1},8,[`title`,`icon`,`closable`,`close-label`,`body-padding`])],2)],12,jn))}}),Nn={class:`vdd-confirmation-message`},Pn={class:`vdd-confirmation-actions`},Fn=(0,e.defineComponent)({__name:`VddConfirm`,props:{message:{},alert:{},alertType:{default:`info`},yesNo:{type:Boolean,default:!1},onOk:{},onCancel:{},onSettled:{}},setup(t){let n=t,r=K(),i=Pe(),a=(0,e.useTemplateRef)(`confirmButton`),o=!1;function s(e){o||(o=!0,n.onSettled?.(e))}function c(){s(!0),n.onOk?.(),i.close({force:!0})}function l(){s(!1),n.onCancel?.(),i.close({force:!0})}return(0,e.onMounted)(()=>{i.setIcon(void 0),a.value?.focus({preventScroll:!0})}),(0,e.onBeforeUnmount)(()=>s(!1)),(n,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(`form`,{class:`vdd-confirmation-form-body`,onSubmit:(0,e.withModifiers)(c,[`prevent`])},[t.alert?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:(0,e.normalizeClass)([`vdd-confirmation-alert`,`vdd-confirmation-alert-${t.alertType}`])},[(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(t.alert),1)],2)):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,Nn,(0,e.toDisplayString)((0,e.unref)(r).format(t.message)),1),(0,e.createElementVNode)(`div`,Pn,[(0,e.createElementVNode)(`button`,{type:`button`,class:`vdd-btn vdd-btn-sm vdd-btn-outline`,"data-vdd-confirm-cancel":``,onClick:l},(0,e.toDisplayString)((0,e.unref)(r).format(t.yesNo?(0,e.unref)(r).messages.no:(0,e.unref)(r).messages.cancel)),1),(0,e.createElementVNode)(`button`,{ref_key:`confirmButton`,ref:a,type:`submit`,class:`vdd-btn vdd-btn-sm vdd-btn-primary`,"data-vdd-confirm-ok":``},(0,e.toDisplayString)((0,e.unref)(r).format(t.yesNo?(0,e.unref)(r).messages.yes:(0,e.unref)(r).messages.ok)),513)])],32))}}),In=(0,e.defineComponent)({__name:`VddModals`,setup(t){let n=K(),{overlays:r}=n;function i(e){return new Promise(t=>{r.openModal(Fn,{message:e.dirtyOptions?.message??{...n.messages.unsavedChangesMessage,values:{title:e.title}},alert:e.dirtyOptions?.alert,alertType:e.dirtyOptions?.alertType??`danger`,yesNo:!0,onSettled:e=>t(e)},{title:e.dirtyOptions?.title??n.messages.unsavedChangesTitle,size:`small`})})}return(0,e.onMounted)(()=>r.setConfirmRenderer(i)),(0,e.onBeforeUnmount)(()=>r.setConfirmRenderer(null)),(t,n)=>((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(r).state.modals,(t,n)=>((0,e.openBlock)(),(0,e.createBlock)(Mn,{key:t.id,instance:t,index:n},null,8,[`instance`,`index`]))),128))}}),X=(0,e.reactive)({items:[],adapter:null}),Ln=0;function Z(e,t={}){let n=t.id??`vdd-toast-${++Ln}`,r={...t,id:n},i=X.items.find(e=>e.id===n);return i?(i.message=e,i.options={...i.options,...r},i.exiting=!1,i.revision++,X.adapter?.update(n,e,r),n):(X.items.push({id:n,message:e,options:r,exiting:!1,revision:0}),n)}function Rn(e){let t=X.items.find(t=>t.id===e);t&&!t.exiting&&(t.exiting=!0,t.options.onClose?.())}function zn(e){let t=X.items.findIndex(t=>t.id===e);t!==-1&&X.items.splice(t,1)}function Bn(e){if(X.adapter){X.adapter.dismiss(e);return}if(e===void 0){for(let e of[...X.items])Rn(e.id);return}Rn(e)}var Vn=Object.assign((e,t)=>Z(e,t),{info:(e,t)=>Z(e,{...t,type:`info`}),success:(e,t)=>Z(e,{...t,type:`success`}),warning:(e,t)=>Z(e,{...t,type:`warning`}),error:(e,t)=>Z(e,{...t,type:`error`}),dismiss:Bn,promise(e,t,n){let r=Z(t.pending,{...n,type:`info`,duration:0});return e.then(e=>{Z(typeof t.success==`function`?t.success(e):t.success,{...n,id:r,type:`success`,duration:n?.duration??5e3})},e=>{Z(typeof t.error==`function`?t.error(e):t.error,{...n,id:r,type:`error`,duration:n?.duration??5e3})}),e}});function Hn(){X.items.splice(0),X.adapter=null}var Un={class:`vdd-toast__icon`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},Wn={key:0,d:`M5 8l2 2 4-4`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},Gn={key:1,d:`M5.5 5.5l5 5M10.5 5.5l-5 5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},Kn={key:2,d:`M8 5v.01M8 7.5v3.5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},qn=(0,e.defineComponent)({__name:`VddToastIcon`,props:{type:{}},setup(t){return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,Un,[t.type===`warning`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:0},[r[0]||=(0,e.createElementVNode)(`path`,{d:`M8 2.5L14 13.5H2L8 2.5z`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linejoin":`round`},null,-1),r[1]||=(0,e.createElementVNode)(`path`,{d:`M8 7v2.5M8 11.5v.01`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},null,-1)],64)):((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[r[2]||=(0,e.createElementVNode)(`circle`,{cx:`8`,cy:`8`,r:`7`,stroke:`currentColor`,"stroke-width":`1.5`},null,-1),t.type===`success`?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,Wn)):t.type===`error`?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,Gn)):((0,e.openBlock)(),(0,e.createElementBlock)(`path`,Kn))],64))]))}}),Jn=[`data-vdd-toast`],Yn=(0,e.defineComponent)({__name:`VddToastItem`,props:{toast:{},isLeft:{type:Boolean},showProgress:{type:Boolean},pauseOnHover:{type:Boolean},animation:{},defaultDuration:{},defaultClosable:{type:Boolean}},emits:[`exited`],setup(t,{emit:n}){let r=t,i=n,a=(0,e.useTemplateRef)(`card`),o=(0,e.useTemplateRef)(`body`),s=(0,e.computed)(()=>r.toast.options.type??`info`),c=(0,e.computed)(()=>r.toast.options.duration??r.defaultDuration),l=(0,e.computed)(()=>r.toast.options.closable??r.defaultClosable),u=(0,e.computed)(()=>r.toast.options.icon??null),d=(0,e.ref)(r.animation===`none`?`vdd-toast--visible`:r.animation===`fade`?`vdd-toast--fade-entering`:r.isLeft?`vdd-toast--entering-left`:`vdd-toast--entering`),f=(0,e.ref)(!1),p=null,m=0,h=0;function g(e){e<=0||(h=Date.now(),p=setTimeout(()=>Rn(r.toast.id),e))}function _(){p&&=(clearTimeout(p),null)}(0,e.watch)([c,()=>r.toast.revision],()=>{_(),m=c.value,g(c.value)},{immediate:!0});function v(){r.pauseOnHover&&c.value!==0&&p&&(_(),m=Math.max(0,m-(Date.now()-h)),f.value=!0)}function y(){r.pauseOnHover&&c.value!==0&&(f.value=!1,g(m))}let b=null;function x(){let e=a.value;e&&!r.toast.exiting&&(e.style.maxHeight=`${e.scrollHeight}px`)}(0,e.onMounted)(()=>{x(),typeof ResizeObserver<`u`&&o.value&&(b=new ResizeObserver(x),b.observe(o.value)),r.animation!==`none`&&requestAnimationFrame(()=>{d.value=`vdd-toast--visible`})});let S=null;(0,e.watch)(()=>r.toast.exiting,e=>{if(e){if(_(),b?.disconnect(),b=null,r.animation===`none`||!a.value){i(`exited`,r.toast.id);return}S=setTimeout(()=>i(`exited`,r.toast.id),520)}},{immediate:!0});function C(e){r.toast.exiting&&e.propertyName===`max-height`&&i(`exited`,r.toast.id)}return(0,e.onBeforeUnmount)(()=>{_(),S&&clearTimeout(S),b?.disconnect()}),(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`card`,ref:a,role:`status`,"aria-live":`polite`,class:(0,e.normalizeClass)([`vdd-toast`,[`vdd-toast--${s.value}`,d.value,{"vdd-toast--exiting":t.toast.exiting,"vdd-toast--paused":f.value}]]),"data-vdd-toast":t.toast.id,onMouseenter:v,onMouseleave:y,onTransitionend:C},[u.value?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(u.value),{key:0})):((0,e.openBlock)(),(0,e.createBlock)(qn,{key:1,type:s.value},null,8,[`type`])),(0,e.createElementVNode)(`div`,{ref_key:`body`,ref:o,class:`vdd-toast__body`},[t.toast.options.content?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.toast.options.content),(0,e.normalizeProps)((0,e.mergeProps)({key:0},t.toast.options.contentProps)),null,16)):((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[(0,e.createTextVNode)((0,e.toDisplayString)(t.toast.message),1)],64))],512),l.value?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:2,type:`button`,class:`vdd-toast__close`,"aria-label":`Close notification`,"data-vdd-toast-close":``,onClick:r[0]||=n=>(0,e.unref)(Rn)(t.toast.id)},[...r[1]||=[(0,e.createElementVNode)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},[(0,e.createElementVNode)(`path`,{d:`M4 4l8 8M12 4l-8 8`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`})],-1)]])):(0,e.createCommentVNode)(``,!0),t.showProgress&&c.value>0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:3,class:`vdd-toast__progress`,style:(0,e.normalizeStyle)({animationDuration:`${c.value}ms`})},null,4)):(0,e.createCommentVNode)(``,!0)],42,Jn))}}),Xn=(0,e.defineComponent)({__name:`VddToasts`,props:{position:{default:`top-right`},maxVisible:{default:3},defaultDuration:{default:5e3},defaultClosable:{type:Boolean,default:!0},pauseOnHover:{type:Boolean,default:!0},animation:{default:`slide`},newestOnTop:{type:Boolean,default:!1},progressBar:{type:Boolean,default:!1},width:{default:320},adapter:{}},setup(t){let n=t;(0,e.watch)(()=>n.adapter,e=>{X.adapter=e??null},{immediate:!0}),(0,e.onBeforeUnmount)(()=>{X.adapter===n.adapter&&(X.adapter=null)});let r=(0,e.computed)(()=>{let e=[],t=0;for(let r of X.items){if(r.exiting){e.push(r);continue}if(t>=n.maxVisible)break;e.push(r),t++}return n.newestOnTop?[...e].reverse():e});(0,e.watch)(()=>X.items.map(e=>`${e.id}:${e.exiting}`).join(`,`),()=>{let e=new Set(r.value.map(e=>e.id));for(let t of[...X.items])t.exiting&&!e.has(t.id)&&zn(t.id)},{immediate:!0});let i=(0,e.computed)(()=>n.position.endsWith(`left`));return(n,a)=>t.adapter?((0,e.openBlock)(),(0,e.createBlock)(e.Teleport,{key:0,to:`body`},[t.adapter.component?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.adapter.component),{key:0,position:t.position},null,8,[`position`])):(0,e.createCommentVNode)(``,!0)])):((0,e.openBlock)(),(0,e.createBlock)(e.Teleport,{key:1,to:`body`},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`vdd-toast-container`,[`vdd-toast-container--${t.position}`,t.newestOnTop?`vdd-toast-container--newest-top`:`vdd-toast-container--newest-bottom`]]),style:(0,e.normalizeStyle)({width:`${t.width}px`}),"aria-label":`Notifications`,"aria-live":`polite`,"data-vdd-toasts":``},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(r.value,n=>((0,e.openBlock)(),(0,e.createBlock)(Yn,{key:n.id,toast:n,"is-left":i.value,"show-progress":t.progressBar,"pause-on-hover":t.pauseOnHover,animation:t.animation,"default-duration":t.defaultDuration,"default-closable":t.defaultClosable,onExited:(0,e.unref)(zn)},null,8,[`toast`,`is-left`,`show-progress`,`pause-on-hover`,`animation`,`default-duration`,`default-closable`,`onExited`]))),128))],6)]))}}),Q=e=>e===`width`||e===`both`,$=e=>e===`height`||e===`both`,Zn=(e,t)=>t===`inline`?$(e)?`both`:`width`:Q(e)?`both`:`height`,Qn=(e,t)=>t===`inline`?e===`both`?`height`:Q(e)?null:e:e===`both`?`width`:$(e)?null:e,$n=(e,t)=>$(t)?[]:Q(t)?e.startsWith(`top-`)?[`top-left`,`top-right`]:[`bottom-left`,`bottom-right`]:[e],er=[`top-left`,`top-right`,`bottom-left`,`bottom-right`];function tr(e,t,n){let r=t-e.left,i=n-e.top;return r<80&&i<80?`top-left`:r>e.width-80&&i<80?`top-right`:r<80&&i>e.height-80?`bottom-left`:r>e.width-80&&i>e.height-80?`bottom-right`:null}var nr=e=>e.endsWith(`-left`)?e.replace(`-left`,`-right`):e.replace(`-right`,`-left`);function rr(e,t){return{left:(t?e.inlineEnd:e.inlineStart)+8,right:(t?e.inlineStart:e.inlineEnd)+8,top:e.top,bottom:e.bottom}}function ir(e,t,n,r){if(e===`free`)return[`n`,`ne`,`e`,`se`,`s`,`sw`,`w`,`nw`];let i=t.startsWith(`top-`)?`s`:`n`,a=t.endsWith(`-right`)===r?`e`:`w`,o=Q(n),s=$(n),c=[];return c.push(...o?[`e`,`w`]:[a]),c.push(...s?[`n`,`s`]:[i]),!o&&!s&&c.push(`${i}${a}`),c}function ar(e,t,n,r){let i=e;if(n.inline){let e=t.includes(`e`);i=`${i.startsWith(`top-`)?`top`:`bottom`}-${e===r?`right`:`left`}`}return n.block&&(i=`${t.includes(`s`)?`top`:`bottom`}-${i.endsWith(`-right`)?`right`:`left`}`),i}function or(e,t,n,r,i){let a=t.length===0,o=0;for(let s of t){let t=n[s]??[],c=t.indexOf(e);if(c===-1)continue;a=!0;let l=0;for(let e=0;e<c;e++)l+=(r[t[e]]??i)+8;o=Math.max(o,l)}return{offset:o,registered:a}}var sr=Symbol(`vdd-panel-overlay`);function cr(){let t=(0,e.shallowRef)(null),n=(0,e.reactive)({top:0,bottom:0,inlineStart:0,inlineEnd:0}),r=(0,e.ref)(null),i=(0,e.reactive)({}),a=(0,e.reactive)({"top-left":[],"top-right":[],"bottom-left":[],"bottom-right":[]}),o=(0,e.reactive)({}),s=(0,e.ref)(null),c=(0,e.ref)(null),l=new Map,u=(0,e.ref)(0),d=100,f=e=>e===`top`?`top`:e===`bottom`?`bottom`:e===`left`?`inlineStart`:`inlineEnd`;return{container:t,insets:n,topId:r,zOrders:i,stacks:a,dockedSizes:o,draggingId:s,hovered:c,managed:l,managedVersion:u,registerToolbar:(e,t)=>{n[f(e)]=t},unregisterToolbar:e=>{n[f(e)]=0},focus:e=>{d+=1,i[e]=d,r.value=e},dock:(e,t,n)=>{let r=$n(t,n);for(let t of er){let n=a[t].filter(t=>t!==e),i=r.includes(t)?[...n,e]:n;i.length===a[t].length&&i.every((e,n)=>e===a[t][n])||(a[t]=i)}},undock:e=>{for(let t of er)a[t].includes(e)&&(a[t]=a[t].filter(t=>t!==e))},reportSize:(e,t)=>{o[e]!==t&&(o[e]=t)},openManaged:(t,n)=>{l.set(t,{...n,component:(0,e.markRaw)(n.component)}),u.value++},closeManaged:e=>{l.delete(e)&&u.value++},closeAllManaged:()=>{l.size!==0&&(l.clear(),u.value++)},managedIds:()=>(u.value,Array.from(l.keys()))}}function lr(){let t=(0,e.inject)(sr,null);if(!t)throw Error(`[vue-dockable-desktop] This component must be used inside a <VddPanelOverlay>. Wrap your panel content in one to enable toolbars and floating widgets.`);return t}function ur(){return(0,e.inject)(sr,null)}function dr(){let t=lr();return{openIds:(0,e.computed)(()=>t.managedIds()),open:t.openManaged,close:t.closeManaged,closeAll:t.closeAllManaged,isOpen:e=>(t.managedVersion.value,t.managed.has(e))}}var fr=[`dir`,`data-vdd-widget`],pr={key:0,class:`vdd-panel-float__icon`},mr={class:`vdd-panel-float__title`},hr=[`title`,`aria-label`],gr={class:`vdd-panel-float__body`},_r=[`data-vdd-widget-resize`,`onPointerdown`],vr=(0,e.defineComponent)({__name:`VddFloatingWidget`,props:(0,e.mergeModels)({widgetId:{},title:{},icon:{},width:{default:320},height:{default:240},stretchable:{type:Boolean,default:!0}},{open:{type:Boolean,default:!0},openModifiers:{},placement:{default:()=>({anchor:`top-right`,stretch:null})},placementModifiers:{}}),emits:[`update:open`,`update:placement`],setup(t){let n=t,r=(0,e.useModel)(t,`open`),i=(0,e.useModel)(t,`placement`),a=K(),o=ur(),s=(0,e.useTemplateRef)(`el`),c=(0,e.computed)(()=>a.state.isRtl),l=(0,e.computed)(()=>i.value.anchor),u=(0,e.computed)(()=>i.value.stretch),d=(0,e.ref)(`docked`),f=(0,e.ref)(null),p=(0,e.ref)({w:n.width,h:n.height}),m=(0,e.ref)({inline:!1,block:!1});function h(e,t){i.value={anchor:e,stretch:t}}(0,e.watch)([()=>r.value,d,l,u],([e,t])=>{if(o&&e){if(t!==`docked`){o.undock(n.widgetId);return}o.dock(n.widgetId,l.value,u.value)}},{immediate:!0}),(0,e.watch)(()=>p.value.h,e=>o?.reportSize(n.widgetId,e),{immediate:!0}),(0,e.onBeforeUnmount)(()=>o?.undock(n.widgetId));let g=!1;(0,e.watch)([d,l,u],()=>{if(process.env.NODE_ENV===`production`||g||!o||d.value!==`docked`||!$(u.value))return;let e=l.value.endsWith(`-right`)?`right`:`left`,t=[`top-${e}`,`bottom-${e}`].flatMap(e=>o.stacks[e]??[]).filter(e=>e!==n.widgetId);t.length!==0&&(g=!0,console.warn(`[vue-dockable-desktop] <VddFloatingWidget> "${n.widgetId}" stretches the block axis ("${u.value}") while ${t.length} other widget(s) are anchored to the same side (${t.join(`, `)}). A block-stretched widget spans the axis stacking uses to separate siblings, so it cannot stack and will overlap them — z-order decides which is on top. Give it a fixed height, or move the others to the opposite side.`))});let _=(0,e.computed)(()=>o?.zOrders[n.widgetId]??101),v=(0,e.computed)(()=>!o||o.topId.value===n.widgetId),y=()=>rr(o?.insets??{top:0,bottom:0,inlineStart:0,inlineEnd:0},c.value);function b(){let e=s.value?.offsetParent;return{cw:e?.clientWidth??9999,ch:e?.clientHeight??9999}}let x=(0,e.computed)(()=>!o||d.value!==`docked`?{offset:0,registered:!0}:or(n.widgetId,$n(l.value,u.value),o.stacks,o.dockedSizes,n.height)),S=(0,e.computed)(()=>{if(d.value!==`docked`||!o)return{left:`${f.value?.x??0}px`,top:`${f.value?.y??0}px`,width:`${p.value.w}px`,height:`${p.value.h}px`,zIndex:_.value};let e=y(),t={zIndex:_.value,opacity:x.value.registered?void 0:0,pointerEvents:x.value.registered?void 0:`none`};return Q(u.value)?(t.insetInlineStart=`${o.insets.inlineStart+8}px`,t.insetInlineEnd=`${o.insets.inlineEnd+8}px`):(t[l.value.endsWith(`-right`)?`insetInlineEnd`:`insetInlineStart`]=`8px`,t.width=`${p.value.w}px`),$(u.value)?(t.top=`${e.top}px`,t.bottom=`${e.bottom}px`):l.value.startsWith(`top-`)?(t.top=`${e.top+x.value.offset}px`,t.height=`${p.value.h}px`):(t.bottom=`${e.bottom+x.value.offset}px`,t.height=`${p.value.h}px`),t}),C=(0,e.computed)(()=>ir(d.value,l.value,u.value,c.value)),w=null;function T(e){if(e.button!==0)return;e.preventDefault();let t,n;if(d.value===`docked`){let e=s.value,r=o?.container.value;if(e&&r){let i=e.getBoundingClientRect(),a=r.getBoundingClientRect();t=i.left-a.left,n=i.top-a.top}else t=8,n=o?.insets.top??0}else t=f.value?.x??0,n=f.value?.y??0;w={mouseX:e.clientX,mouseY:e.clientY,posX:t,posY:n,moved:!1},s.value?.setPointerCapture(e.pointerId)}function E(e){if(!w)return;if(!w.moved){if(Math.abs(e.clientX-w.mouseX)+Math.abs(e.clientY-w.mouseY)<4)return;if(w.moved=!0,d.value===`docked`){if(u.value){let e=s.value?.getBoundingClientRect();e&&(p.value={w:Math.round(e.width),h:Math.round(e.height)}),h(l.value,null)}o?.undock(n.widgetId),d.value=`free`}document.body.classList.add(`vdd-dragging-active`),o&&(o.draggingId.value=n.widgetId)}let{cw:t,ch:r}=b();f.value={x:Math.max(0,Math.min(w.posX+e.clientX-w.mouseX,t-p.value.w)),y:Math.max(0,Math.min(w.posY+e.clientY-w.mouseY,r-p.value.h))};let i=o?.container.value;if(i&&o){let t=tr(i.getBoundingClientRect(),e.clientX,e.clientY);o.hovered.value=t&&c.value?nr(t):t}}function D(){if(w?.moved&&o){let e=o.hovered.value;e&&(d.value=`docked`,f.value=null,h(e,u.value)),o.hovered.value=null,o.draggingId.value=null}document.body.classList.remove(`vdd-dragging-active`),w=null}function O(){w?.moved&&o&&(o.hovered.value=null,o.draggingId.value=null),document.body.classList.remove(`vdd-dragging-active`),w=null}function ee(e,t){if(t.button!==0)return;t.preventDefault(),t.stopPropagation();let r=0,i=0;if(d.value===`free`)r=f.value?.x??0,i=f.value?.y??0;else{let e=s.value,t=e?.offsetParent;if(e&&t){let n=e.getBoundingClientRect(),a=t.getBoundingClientRect();r=n.left-a.left,i=n.top-a.top}}let a=s.value?.getBoundingClientRect(),o={x:r,y:i,w:Q(u.value)&&a?a.width:p.value.w,h:$(u.value)&&a?a.height:p.value.h},g=e.includes(`e`)||e.includes(`w`),_=e.includes(`n`)||e.includes(`s`),v=!1,S={inline:!1,block:!1};function C(){if(v||d.value!==`docked`)return;let t=u.value,n={inline:g&&Q(t),block:_&&$(t)};if(!n.inline&&!n.block)return;v=!0;let r=t;n.inline&&(r=Qn(r,`inline`)),n.block&&(r=Qn(r,`block`)),h(ar(l.value,e,n,c.value),r)}q({element:t.currentTarget,pointerId:t.pointerId,startClientX:t.clientX,startClientY:t.clientY,captureStart:()=>o,activeClasses:[{el:document.body,classes:[`vdd-resizing-active`]}],onMove:(t,r,i)=>{let{cw:a,ch:o}=b(),s=d.value===`docked`?y():{left:0,right:0,top:0,bottom:0},c=J(e,t,r,i,{minW:120,minH:60,maxW:a-s.right-i.x,maxH:o-s.bottom-i.y,minX:s.left,minY:s.top});if(C(),d.value===`docked`&&n.stretchable){let e=a-s.left-s.right,t=o-s.top-s.bottom-x.value.offset,n=u.value,r={...S};g&&!Q(n)&&(c.w>=e-16?r.inline=!0:S.inline&&c.w<e-40&&(r.inline=!1)),_&&!$(n)&&(c.h>=t-16?r.block=!0:S.block&&c.h<t-40&&(r.block=!1)),(r.inline!==S.inline||r.block!==S.block)&&(S=r,m.value=r)}let l=v?Qn(Qn(u.value,g?`inline`:`block`),_?`block`:`inline`):u.value;p.value={w:Q(l)?p.value.w:c.w,h:$(l)?p.value.h:c.h},d.value===`free`&&(f.value={x:c.x,y:c.y})},onEnd:e=>{if(!S.inline&&!S.block){(m.value.inline||m.value.block)&&(m.value={inline:!1,block:!1});return}p.value={w:S.inline?e.w:p.value.w,h:S.block?e.h:p.value.h};let t=u.value;S.inline&&(t=Zn(t,`inline`)),S.block&&(t=Zn(t,`block`)),h(l.value,t),m.value={inline:!1,block:!1}}})}return(n,i)=>r.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,ref_key:`el`,ref:s,class:(0,e.normalizeClass)([`vdd-panel-float`,{"vdd-panel-float--active":v.value,"vdd-panel-float--snapping":m.value.inline||m.value.block}]),style:(0,e.normalizeStyle)(S.value),dir:(0,e.unref)(a).state.dir,"data-vdd-widget":t.widgetId,onPointerdown:i[2]||=n=>(0,e.unref)(o)?.focus(t.widgetId),onPointermove:E,onPointerup:D,onPointercancel:O},[(0,e.createElementVNode)(`div`,{class:`vdd-panel-float__header`,"data-vdd-widget-header":``,onPointerdown:T},[t.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,pr,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,mr,(0,e.toDisplayString)((0,e.unref)(a).format(t.title)),1),(0,e.createElementVNode)(`button`,{type:`button`,class:`vdd-panel-float__close`,title:(0,e.unref)(a).format((0,e.unref)(a).messages.close),"aria-label":(0,e.unref)(a).format((0,e.unref)(a).messages.close),"data-vdd-widget-close":``,onClick:i[0]||=e=>r.value=!1,onPointerdown:i[1]||=(0,e.withModifiers)(()=>{},[`stop`])},[...i[3]||=[(0,e.createElementVNode)(`svg`,{width:`8`,height:`8`,viewBox:`0 0 10 10`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},[(0,e.createElementVNode)(`line`,{x1:`1`,y1:`1`,x2:`9`,y2:`9`}),(0,e.createElementVNode)(`line`,{x1:`9`,y1:`1`,x2:`1`,y2:`9`})],-1)]],40,hr)],32),(0,e.createElementVNode)(`div`,gr,[(0,e.renderSlot)(n.$slots,`default`)]),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(C.value,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:(0,e.normalizeClass)([`vdd-resize-handle`,`vdd-resize-${t}`]),"data-vdd-widget-resize":t,onPointerdown:e=>ee(t,e)},null,42,_r))),128))],46,fr)):(0,e.createCommentVNode)(``,!0)}}),yr=[`data-vdd-dropzone`],br=(0,e.defineComponent)({__name:`VddPanelOverlay`,setup(t){let n=cr();(0,e.provide)(sr,n);let r=(0,e.useTemplateRef)(`root`);(0,e.watchEffect)(()=>{n.container.value=r.value});let i=(0,e.computed)(()=>n.managedIds().map(e=>({id:e,widget:n.managed.get(e)}))),a=(0,e.computed)(()=>n.draggingId.value!==null);return(t,o)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`root`,ref:r,class:(0,e.normalizeClass)([`vdd-panel-overlay-root`,{"vdd-dragging-active":a.value}]),"data-vdd-panel-overlay":``},[(0,e.renderSlot)(t.$slots,`default`),a.value?((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,{key:0},(0,e.renderList)((0,e.unref)(er),t=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:t,class:(0,e.normalizeClass)([`vdd-panel-float-dropzone`,[`vdd-panel-float-dropzone--${t}`,{"vdd-panel-float-dropzone--hovered":(0,e.unref)(n).hovered.value===t}]]),"data-vdd-dropzone":t,"aria-hidden":`true`},null,10,yr))),128)):(0,e.createCommentVNode)(``,!0),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(i.value,({id:t,widget:r})=>((0,e.openBlock)(),(0,e.createBlock)(vr,{key:t,"widget-id":t,title:r.title,icon:r.icon,open:!0,placement:{anchor:r.anchor??`top-right`,stretch:r.stretch??null},width:r.width??320,height:r.height??240,"onUpdate:open":r=>{r||(0,e.unref)(n).closeManaged(t)}},{default:(0,e.withCtx)(()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(r.component),(0,e.mergeProps)({ref_for:!0},r.props),null,16))]),_:2},1032,[`widget-id`,`title`,`icon`,`placement`,`width`,`height`,`onUpdate:open`]))),128))],2))}}),xr=[`data-variant`,`data-btn-variant`,`data-vdd-panel-toolbar`,`aria-orientation`],Sr=(0,e.defineComponent)({__name:`VddPanelToolbar`,props:{position:{},variant:{default:`transparent`},buttonVariant:{default:`ghost`},buttonSize:{}},setup(t){let n=t,r=lr(),i=(0,e.useTemplateRef)(`el`),a=(0,e.computed)(()=>n.position===`top`||n.position===`bottom`),o=null;(0,e.watchEffect)(e=>{let t=i.value,s=n.position;if(!t)return;let c=()=>{r.registerToolbar(s,a.value?t.offsetHeight:t.offsetWidth)};c(),typeof ResizeObserver<`u`&&(o=new ResizeObserver(c),o.observe(t)),e(()=>{o?.disconnect(),o=null,r.unregisterToolbar(s)})}),(0,e.onBeforeUnmount)(()=>r.unregisterToolbar(n.position));let s=(0,e.computed)(()=>{switch(n.position){case`top`:return{top:`0px`,left:`0px`,right:`0px`};case`bottom`:return{bottom:`0px`,left:`0px`,right:`0px`};case`left`:return{insetInlineStart:`0px`,top:`${r.insets.top}px`,bottom:`${r.insets.bottom}px`};default:return{insetInlineEnd:`0px`,top:`${r.insets.top}px`,bottom:`${r.insets.bottom}px`}}}),c=(0,e.computed)(()=>n.buttonSize==null?{}:{"--vdd-panel-toolbar-btn-size":`${n.buttonSize}px`});return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`el`,ref:i,class:(0,e.normalizeClass)([`vdd-panel-toolbar`,`vdd-panel-toolbar--${t.position}`]),"data-variant":t.variant,"data-btn-variant":t.buttonVariant,"data-vdd-panel-toolbar":t.position,style:(0,e.normalizeStyle)({...s.value,...c.value}),role:`toolbar`,"aria-orientation":a.value?`horizontal`:`vertical`},[(0,e.renderSlot)(n.$slots,`default`)],14,xr))}}),Cr=[`title`,`aria-label`,`disabled`,`data-variant`],wr=(0,e.defineComponent)({__name:`VddToolbarButton`,props:{title:{},disabled:{type:Boolean},variant:{}},emits:[`click`],setup(t,{emit:n}){let r=n;return(n,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{type:`button`,class:`vdd-panel-toolbar-btn`,title:t.title,"aria-label":t.title,disabled:t.disabled,"data-variant":t.variant,onClick:i[0]||=e=>r(`click`)},[(0,e.renderSlot)(n.$slots,`default`)],8,Cr))}}),Tr=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-variant`],Er=(0,e.defineComponent)({__name:`VddToolbarToggle`,props:(0,e.mergeModels)({title:{},disabled:{type:Boolean},variant:{}},{active:{type:Boolean,default:!1},activeModifiers:{}}),emits:[`update:active`],setup(t){let n=(0,e.useModel)(t,`active`);return(r,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{type:`button`,class:(0,e.normalizeClass)([`vdd-panel-toolbar-btn`,{"vdd-panel-toolbar-btn--active":n.value}]),title:t.title,"aria-label":t.title,"aria-pressed":n.value,disabled:t.disabled,"data-variant":t.variant,onClick:i[0]||=e=>n.value=!n.value},[(0,e.renderSlot)(r.$slots,`default`)],10,Tr))}}),Dr={class:`vdd-panel-toolbar__sep`,"aria-hidden":`true`},Or=(0,e.defineComponent)({__name:`VddToolbarSeparator`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Dr))}}),kr={class:`vdd-panel-toolbar__spacer`,"aria-hidden":`true`},Ar=(0,e.defineComponent)({__name:`VddToolbarSpacer`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,kr))}}),jr={class:`vdd-panel-toolbar__item`},Mr=(0,e.defineComponent)({__name:`VddToolbarItem`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,jr,[(0,e.renderSlot)(t.$slots,`default`)]))}}),Nr={class:`vdd-panel-toolbar__center`},Pr=(0,e.defineComponent)({__name:`VddToolbarCenter`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Nr,[(0,e.renderSlot)(t.$slots,`default`)]))}}),Fr=[`title`,`aria-label`],Ir=[`placeholder`],Lr={key:0,class:`vdd-panel-toolbar-search__group`},Rr=[`data-vdd-search-result`,`onClick`],zr={key:0,class:`vdd-panel-toolbar-search__item-icon`},Br={class:`vdd-panel-toolbar-search__item-label`},Vr={key:1,class:`vdd-panel-toolbar-search__item-desc`},Hr=(0,e.defineComponent)({__name:`VddToolbarSearch`,props:{placeholder:{},search:{},debounce:{default:300}},emits:[`select`],setup(t,{emit:n}){let r=t,i=n,a=K(),o=(0,e.useTemplateRef)(`root`),s=(0,e.useTemplateRef)(`input`),c=(0,e.ref)(!1),l=(0,e.ref)(``),u=(0,e.ref)([]),d=(0,e.ref)(null),f=null,p=null;function m(){f?.abort(),f=null,p&&=(clearTimeout(p),null)}async function h(){c.value=!0,await(0,e.nextTick)(),s.value?.focus({preventScroll:!0})}function g(){c.value=!1,l.value=``,u.value=[],d.value=null,m()}function _(){let e=o.value;if(!e||u.value.length===0){d.value=null;return}let t=e.getBoundingClientRect(),n=Math.max(t.width,240),r=Math.min(t.left,window.innerWidth-n-8);d.value={top:t.bottom+4,left:Math.max(8,r),width:n}}function v(){if(m(),!l.value.trim()){u.value=[],d.value=null;return}p=setTimeout(async()=>{let e=new AbortController;f=e;try{let t=await r.search(l.value,e.signal);if(e.signal.aborted)return;u.value=t,_()}catch{}},r.debounce)}function y(e){i(`select`,e),g()}function b(e){let t=e.relatedTarget;t instanceof Node&&o.value?.contains(t)||g()}let x=(0,e.computed)(()=>{let e=new Map;for(let t of u.value){let n=t.group??``,r=e.get(n);r?r.push(t):e.set(n,[t])}return Array.from(e,([e,t])=>({group:e,items:t}))});return(0,e.onBeforeUnmount)(m),(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`root`,ref:o,class:(0,e.normalizeClass)([`vdd-panel-toolbar-search`,{"vdd-panel-toolbar-search--open":c.value}]),"data-vdd-toolbar-search":``,onFocusout:b},[(0,e.createElementVNode)(`button`,{type:`button`,class:`vdd-panel-toolbar-btn`,title:(0,e.unref)(a).format((0,e.unref)(a).messages.search),"aria-label":(0,e.unref)(a).format((0,e.unref)(a).messages.search),"data-vdd-search-toggle":``,onClick:r[0]||=e=>c.value?g():h()},[...r[3]||=[(0,e.createElementVNode)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[(0,e.createElementVNode)(`circle`,{cx:`6.5`,cy:`6.5`,r:`4.5`}),(0,e.createElementVNode)(`line`,{x1:`10`,y1:`10`,x2:`14`,y2:`14`})],-1)]],8,Fr),c.value?(0,e.withDirectives)(((0,e.openBlock)(),(0,e.createElementBlock)(`input`,{key:0,ref_key:`input`,ref:s,"onUpdate:modelValue":r[1]||=e=>l.value=e,class:`vdd-panel-toolbar-search__input`,type:`text`,placeholder:t.placeholder??(0,e.unref)(a).format((0,e.unref)(a).messages.search),autocomplete:`off`,"data-vdd-search-input":``,onInput:v,onKeydown:(0,e.withKeys)(g,[`esc`])},null,40,Ir)),[[e.vModelText,l.value]]):(0,e.createCommentVNode)(``,!0),d.value&&u.value.length?((0,e.openBlock)(),(0,e.createBlock)(e.Teleport,{key:1,to:`body`},[(0,e.createElementVNode)(`div`,{class:`vdd-panel-toolbar-search__dropdown`,style:(0,e.normalizeStyle)({position:`fixed`,top:`${d.value.top}px`,left:`${d.value.left}px`,width:`${d.value.width}px`}),"data-vdd-search-results":``,onMousedown:r[2]||=(0,e.withModifiers)(()=>{},[`prevent`])},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(x.value,({group:t,items:n})=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:t||`__default__`},[t?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Lr,(0,e.toDisplayString)(t),1)):(0,e.createCommentVNode)(``,!0),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(n,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:t.id,type:`button`,class:`vdd-panel-toolbar-search__item`,"data-vdd-search-result":t.id,onClick:e=>y(t)},[t.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,zr,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,Br,(0,e.toDisplayString)(t.label),1),t.description?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Vr,(0,e.toDisplayString)(t.description),1)):(0,e.createCommentVNode)(``,!0)],8,Rr))),128))],64))),128))],36)])):(0,e.createCommentVNode)(``,!0)],34))}});function Ur(){let e=K();return t=>e.showContextMenu(t)}function Wr(t){let n=K(),{id:r}=Pe();if(r===`standalone`){process.env.NODE_ENV!==`production`&&console.warn(`[vue-dockable-desktop] usePanelContextMenu() was called outside a panel, so it did nothing. This is expected when a panel component is rendered standalone.`);return}let i=n.registerPanelMenu(r,t);(0,e.getCurrentScope)()&&(0,e.onScopeDispose)(i)}function Gr(){let t=(0,e.inject)(Gt,null);if(!t)throw Error(`[vue-dockable-desktop] useSidebar() must be used inside a <VddSidebar>.`);return t}function Kr(){let t=(0,e.inject)(Kt,null);if(!t)throw Error(`[vue-dockable-desktop] useSidebarTab() must be used inside a sidebar tab's content.`);return t}function qr(){return K().toolbar}function Jr(){let{overlays:t}=K();return{stack:(0,e.computed)(()=>t.state.modals),topmost:(0,e.computed)(()=>t.state.modals[t.state.modals.length-1]??null),open:t.openModal,close:(e,n)=>t.requestClose(e,n),closeAll:t.closeAllModals}}function Yr(){let{overlays:t}=K();return{left:(0,e.computed)(()=>t.state.leftPanel),right:(0,e.computed)(()=>t.state.rightPanel),openLeft:t.openLeftPanel,openRight:t.openRightPanel,close:(e,n)=>t.requestClose(e,n),closeAll:()=>{for(let e of[t.state.leftPanel,t.state.rightPanel])e&&t.close(e.id)}}}function Xr(t){let n=K(),{id:r}=Pe();if(r===`standalone`){process.env.NODE_ENV!==`production`&&console.warn(`[vue-dockable-desktop] usePanelContribution() was called outside a panel, so it did nothing. This is expected when a panel component is rendered standalone.`);return}let i=n.contributions.publish(r,(0,e.toValue)(t)),a=(0,e.watch)(()=>(0,e.toValue)(t),e=>{let t=i;i=n.contributions.publish(r,e),t()},{deep:!0});(0,e.getCurrentScope)()&&(0,e.onScopeDispose)(()=>{a(),i()})}function Zr(){return K().activeContribution}function Qr(t){let n=Zr();return(0,e.computed)(()=>j((0,e.toValue)(t),n.value))}function $r(t,n){let r=Zr();return(0,e.computed)(()=>M((0,e.toValue)(t),r.value,n))}var ei=()=>document.documentElement.getAttribute(`data-color-scheme`)===`light`?`light`:`dark`;function ti(){let t=(0,e.ref)(ei()),n=new MutationObserver(()=>{t.value=ei()});return n.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-color-scheme`]}),(0,e.onScopeDispose)(()=>n.disconnect()),(0,e.computed)(()=>t.value)}var ni=`1.0.0`;exports.PanelRegistry=S,exports.VddConfirm=Fn,exports.VddContextMenu=Bt,exports.VddDesktop=St,exports.VddFloatingWidget=vr,exports.VddModals=In,exports.VddPanelOverlay=br,exports.VddPanelToolbar=Sr,exports.VddSecondarySidebar=cn,exports.VddSidePanels=An,exports.VddSidebar=sn,exports.VddToasts=Xn,exports.VddToolbar=wn,exports.VddToolbarButton=wr,exports.VddToolbarCenter=Pr,exports.VddToolbarItem=Mr,exports.VddToolbarSearch=Hr,exports.VddToolbarSeparator=Or,exports.VddToolbarSpacer=Ar,exports.VddToolbarToggle=Er,exports.WORKSPACE_KEY=P,exports.clampFloatingRect=L,exports.computeResizedRect=J,exports.createWorkspace=F,exports.defaultMessages=O,exports.formatLabel=ee,exports.isSerializable=x,exports.mergeSidebarTabs=M,exports.mergeToolbarItems=j,exports.resetToasts=Hn,exports.sectionToTab=A,exports.startPointerDrag=q,exports.toast=Vn,exports.useActiveContribution=Zr,exports.useColorScheme=ti,exports.useContextMenu=Ur,exports.useFloatingWidgets=dr,exports.useMergedSidebarTabs=$r,exports.useMergedToolbarItems=Qr,exports.useModals=Jr,exports.usePanel=Pe,exports.usePanelContextMenu=Wr,exports.usePanelContribution=Xr,exports.useSidePanels=Yr,exports.useSidebar=Gr,exports.useSidebarTab=Kr,exports.useToolbar=qr,exports.useWorkspace=K,exports.version=ni;
|
|
5
|
+
//# sourceMappingURL=index.cjs.map
|