vue-dockable-desktop 1.8.2 → 1.9.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 +49 -0
- package/dist/components/VddDesktop.vue.d.ts +11 -1
- package/dist/components/VddLeafGroup.vue.d.ts +11 -1
- package/dist/components/VddWorkspaceGrid.vue.d.ts +11 -1
- package/dist/core/registry.d.ts +16 -0
- package/dist/core/workspace.d.ts +12 -0
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +456 -420
- package/dist/index.js.map +1 -1
- package/dist/styles.css +7 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,5 +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,n){let r=p(e,t);return r!==null&&r.panels.length===1&&r.panels[0]===n}var h=(e,t)=>Array.isArray(e)&&e.length===t&&e.every(e=>typeof e==`number`&&Number.isFinite(e)&&e>0);function g(e,t){let r=[],i=new Set,a=e=>{if(e.type===`leaf`){let n=e.panels.filter(n=>t[n]?i.has(n)?(r.push(`panel "${n}" was listed in more than one group`),!1):(i.add(n),!0):(r.push(`group "${e.id}" listed panel "${n}", which the layout doesn't have`),!1));if(n.length===e.panels.length)return e;if(n.length===0&&!e.keepOnEmpty)return null;let a=e.activePanelId&&n.includes(e.activePanelId)?e.activePanelId:n[0]??null;return{...e,panels:n,activePanelId:a}}let n=e.children.map(a).filter(e=>e!==null),o=n.length===e.children.length&&n.every((t,n)=>t===e.children[n]);if(o&&h(e.sizes,n.length))return e;if(n.length===0)return null;if(n.length===1)return n[0];let s=()=>n.map(()=>1/n.length);if(o)return r.push(`a split had sizes ${JSON.stringify(e.sizes)} for ${n.length} children`),{...e,sizes:s()};let c=Array.isArray(e.sizes)?e.sizes.slice(0,n.length):[];if(!h(c,n.length))return{...e,children:n,sizes:s()};let l=c.reduce((e,t)=>e+t,0);return{...e,children:n,sizes:c.map(e=>e/l)}},o=a(e)??n(),s=Object.values(t).filter(e=>e.state===`docked`&&!i.has(e.id));if(s.length>0){for(let e of s)r.push(`panel "${e.id}" is docked but was in no group`);let e=s.map(e=>e.id),t=n=>n.type===`leaf`?{...n,panels:[...n.panels,...e],activePanelId:n.activePanelId??e[0]}:{...n,children:[t(n.children[0]),...n.children.slice(1)]};o=t(o)}return{gridRoot:o,repairs:r}}function _(e,t){return p(e,t)!==null}function v(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 y(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 b(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}var x={x:300,y:150,width:450,height:350};function S(e,t){return e.map(e=>{let n=e;for(let r of[`x`,`y`,`width`,`height`]){let i=e[r];typeof i==`string`||typeof i==`number`&&Number.isFinite(i)||(n={...n,[r]:x[r]},t.push(`floating window "${e.id}" had ${r} = ${String(i)}`))}return n})}function C(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 w(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=[],i=S(C(n.floating),r),a=n.panels;r.length>0&&t?.(`Repaired the saved layout on load: ${r.join(`; `)}. Each is replaced by the default a new floating window gets (${JSON.stringify(x)}); saving again from this session stores the corrected layout.`);let o=g(n.gridRoot,a);o.repairs.length>0&&t?.(`Repaired the saved layout on load: ${o.repairs.join(`; `)}. (Layouts written before 1.1.1 could leave a panel in no group — dropping a lone docked panel onto its own group did it.) The repair runs every time the layout is read, so saving again from this session stores the corrected layout.`);let s=o.gridRoot,c={gridRoot:s,floating:i,panels:a},l=typeof n.activePanelId==`string`?n.activePanelId:null,u=null;return l!==null&&(y(l,c)?u=l:t?.(`Ignoring the saved layout's activePanelId ("${l}") — 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.`)),u===null&&(u=b(c)),{gridRoot:s,floating:i,minimized:n.minimized,panels:a,activePanelId:u}}function T(e,n){if(e)try{let t=w(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 E(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(E);let r=Object.getPrototypeOf(t);return r!==Object.prototype&&r!==null?!1:Object.values(t).every(E)}var D=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())}},ee=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 r of Array.from(n))try{r(t)}catch(t){console.error(`[vue-dockable-desktop] A subscriber to "${e}" threw:`,t)}}count(e){return this.listeners.get(e)?.size??0}clear(){this.listeners.clear()}};function te(e){if(e.initialFocus)return e.initialFocus;let t=e.event;if(!t||`touches`in t)return`menu`;let n=t;return n.clientX===0&&n.clientY===0?`first-item`:`menu`}var ne=e=>`separator`in e,O=e=>!ne(e)&&`items`in e;function re(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 k(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 ie={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`},confirmTitle:{id:`vdd.confirmTitle`,defaultMessage:`Confirmation`},alertTitle:{id:`vdd.alertTitle`,defaultMessage:`Information`},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`},notifications:{id:`vdd.notifications`,defaultMessage:`Notifications`},closeNotification:{id:`vdd.closeNotification`,defaultMessage:`Close notification`}};function ae(e,t){if(e==null)return``;if(typeof e==`string`)return e;if(typeof e==`function`)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.split(`{${t}}`).join(String(r));return n}function oe(){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 se=0,A=e=>`vdd-${e}-${++se}`;function ce(){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:A(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 le(){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 j(e,t){return{id:e.id,label:e.label,icon:e.icon??t,component:e.component,props:e.props}}function M(e,t){let n=t?.toolbarItems;return n?.length?[...e,{type:`separator`},...n]:e}function N(e,t,n){let r=t?.sidebarSections;return r?.length?[...e,...r.map(e=>j(e,n))]:e}function ue(t,n){return(0,e.computed)(()=>{let e=n();return e?t.get(e):null})}var de=(e,t)=>Math.min(.9,Math.max(.1,e??t)),P=x,F=Symbol(`vdd-workspace`);function I(t={}){let o=new D;for(let[e,n]of Object.entries(t.panels??{}))o.register(e,n.component,n.defaultOptions);let p=new ee,h=new Map,g=new Map,x=new Map,S=(0,e.ref)(0),C=(0,e.shallowRef)(null),ne={...ie,...t.messages??{}},O=t.zIndexBase??1e3,k=O;function se(e){let t={};for(let[n,r]of Object.entries(e.panels))t[n]=r.title?r:{...r,title:o.get(r.component)?.defaultOptions?.title||n};let n=e.minimized.map(e=>e.title?e:{...e,title:t[e.id]?.title||e.id});return{...e,panels:t,minimized:n}}let A=se(T(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:de(t.defaultSplitRatio,.5),edgeSplitRatio:de(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 N=()=>({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&&y(e,N())?e:j.activePanelId&&y(j.activePanelId,N())?j.activePanelId:b(N()),n!==t&&(j.activePanelId=n,p.emit(`panel:activated`,{id:n,previous:t}))}let L=()=>p.emit(`layout:changed`,{}),fe=e=>{let t=j.panels[e];return t?o.get(t.component):void 0},R=e=>fe(e)?.defaultOptions??{};function pe(e){let t=(e,t)=>{let n=typeof e==`string`?Number.parseFloat(e):e;return Number.isNaN(n)?t:n},n=t(e.x,P.x),r=t(e.y,P.y),i=t(e.width,P.width),a=t(e.height,P.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 me(e,t,n){k+=1,j.floating=[...j.floating,{...t,id:e,z:k,anchor:n}]}function z(t){let i=(0,e.toRaw)(j).gridRoot;j.gridRoot=r(i,t)??(i.type===`leaf`?{...i,panels:[],activePanelId:null}:n()),j.floating=j.floating.filter(e=>e.id!==t),j.minimized=j.minimized.filter(e=>e.id!==t)}function B(t,n,r){let i=(0,e.toRaw)(j).gridRoot;return m(i,n,t)?!0:!_(i,n)&&(M(`${r}("${t}", "${n}") was ignored: no group with that id is in the layout. Emptying a group removes it, so an id kept across a layout change can name a group that no longer exists.`),!0)}function he(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),m=a?.initialTarget??u?.defaultOptions?.initialTarget??`docked`,h=u?.defaultOptions?.favoritePosition??P;if(c){if(c.state===`minimized`){V(s,{focus:l});return}if(c.state===`docked`&&f((0,e.toRaw)(j).gridRoot,s)===null){M(`Panel "${s}" was open but in no group; docking it again.`),H(s),l&&W(s);return}l&&W(s);return}let g=a?.props!==void 0,_={id:s,title:a?.title??u?.defaultOptions?.title??s,component:r,state:m===`floating`?`floating`:`docked`,serializable:!g||E((0,e.toRaw)(a.props)),...g?{props:(0,e.markRaw)(a.props)}:{},...a?.dedupeKey===void 0?{}:{dedupeKey:a.dedupeKey}};if(j.panels={...j.panels,[s]:_},m===`floating`)me(s,pe(h),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 ge(e){if(!j.panels[e]||R(e).canClose===!1)return;h.delete(e),g.delete(e),z(e);let t={...j.panels};delete t[e],j.panels=t,I(),p.emit(`panel:closed`,{id:e}),L()}async function _e(e,t){if(t?.force){ge(e);return}let n=h.get(e);if(n&&!await n())return;let r=j.panels[e];(!r?.dirty||await(t?.onConfirm??(e=>Ne.confirmDiscard({title:Me(r.title),dirtyOptions:e})))(r.dirtyOptions))&&ge(e)}function ve(t){let n=j.panels[t];if(!n||n.state===`minimized`||R(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;z(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 V(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??P,f=()=>{j.panels={...j.panels,[t]:{...a,state:`floating`}},me(t,pe(u),a.lastFloatingRect?.anchor??null)},m=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&&_((0,e.toRaw)(j).gridRoot,a.lastLeafId)?m(a.lastLeafId):R(t).canDrag===!1?m(d((0,e.toRaw)(j).gridRoot)??n().id):f(),I(s?t:null),p.emit(`panel:restored`,{id:t}),L()}function ye(e,t,n){let r=j.panels[e];if(!r||R(e).canDrag===!1)return;let i=t??o.get(r.component)?.defaultOptions?.favoritePosition??P;z(e),j.panels={...j.panels,[e]:{...r,state:`floating`}},me(e,pe(i),n??null),I(e),L()}function H(t,r){let a=j.panels[t];if(!a)return;z(t);let o=a.lastLeafId&&_((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 be(t,n,r){let a=j.panels[t];a&&(B(t,n,`dockPanelToGroup`)||(z(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 xe(t,n){let i=j.panels[t];i&&r((0,e.toRaw)(j).gridRoot,t)!==null&&(z(t),j.panels={...j.panels,[t]:{...i,state:`docked`}},j.gridRoot=c((0,e.toRaw)(j).gridRoot,t,n,j.edgeSplitRatio),j.draggedPanelId=null,I(t),L())}function U(t,i,o){let s=j.panels[t];if(!s||B(t,i,`movePanelOrder`))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 Se(e){j.panels[e]?.state===`minimized`&&V(e);let t=j.panels[e];t&&(t.state===`docked`&&ye(e),j.floating=j.floating.map(t=>t.id===e?{...t,maximized:!t.maximized}:t),I(e),L())}function W(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 Ce(t){j.gridRoot=l((0,e.toRaw)(j).gridRoot,t)??n(),I(),L()}function G(t,n){j.gridRoot=v((0,e.toRaw)(j).gridRoot,t,n),L()}function we(e,t){j.floating=j.floating.map(n=>n.id===e?{...n,...t}:n)}function Te(e,t,n){let r=j.panels[e];r&&(j.panels={...j.panels,[e]:{...r,dirty:t,dirtyOptions:n}})}function Ee(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 K(e){j.dir!==e&&(j.dir=e,j.isRtl=e===`rtl`)}function De(){let t=(0,e.toRaw)(j),i=[],a={};for(let[n,r]of Object.entries(t.panels)){let t=g.get(n),o=t?.(),s=t!==void 0&&o!==void 0,c=s?o:r.props,l=s?E((0,e.toRaw)(o)):r.serializable,u=typeof r.title==`function`?(({title:e,...t})=>t)(r):r;l?a[n]=s?{...u,props:c,serializable:!0}:u: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&&y(l,{gridRoot:o,floating:s,panels:a})?l:null,d={version:2,...u===null?{}:{activePanelId:u},gridRoot:o,floating:s,minimized:c.map(e=>typeof e.title==`function`?{id:e.id,component:e.component}:e),panels:a};return JSON.stringify(d)}function Oe(e){let t;try{t=JSON.parse(e)}catch{return M(`loadLayout received invalid JSON; the current layout is unchanged.`),!1}let n=w(t,M),r=n&&se(n);if(!r)return M(`loadLayout received something that is not a layout (it needs gridRoot, floating, minimized and panels); the current layout is unchanged.`),!1;j.gridRoot=r.gridRoot,j.floating=r.floating,j.minimized=r.minimized,j.panels=r.panels,j.draggedPanelId=null,k=Math.max(O,...r.floating.map(e=>e.z),0);let i=j.activePanelId;return j.activePanelId=r.activePanelId,i!==r.activePanelId&&p.emit(`panel:activated`,{id:r.activePanelId,previous:i}),L(),!0}function ke(e,t){return h.set(e,t),()=>{h.get(e)===t&&h.delete(e)}}function Ae(e,t){return g.set(e,t),()=>{g.get(e)===t&&g.delete(e)}}function je(e,t){return x.set(e,t),S.value++,()=>{x.get(e)===t&&(x.delete(e),S.value++)}}let Me=e=>ae(e,t.formatMessage),Ne=ce(),Pe=le(),Fe={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:he,closePanel:ge,requestClosePanel:_e,minimizePanel:ve,restorePanel:V,floatPanel:ye,dockPanel:H,dockPanelToGroup:be,dockPanelToWorkspaceEdge:xe,maximizePanel:Se,focusPanel:W,movePanelOrder:U,closeLeafGroup:Ce,updateSplitSizes:G,updateFloatingPosition:we,setPanelDirty:Te,updatePanelTitle:Ee,setDirection:K,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:De,loadLayout:Oe,publish:(e,t)=>p.publish(e,t),subscribe:(e,t)=>p.subscribe(e,t),toolbar:oe(),overlays:Ne,contributions:Pe,activeContribution:ue(Pe,()=>j.activePanelId),registerCloseGuard:ke,registerStateProvider:Ae,registerPanelMenu:je,panelMenuItems:e=>(S.value,x.get(e)?.()??[]),showContextMenu:e=>{e.event?.preventDefault?.(),C.value={...re(e),items:e.items,initialFocus:te(e)}},closeContextMenu:()=>{C.value=null},contextMenu:(0,e.computed)(()=>C.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:Me,messages:ne,config:{...t,zIndexBase:O},install(e){e.provide(F,Fe)},dispose(){p.clear(),Ne.dispose(),h.clear(),g.clear(),x.clear(),C.value=null}};return Fe}function L(e){return e===`top-left`?`top-right`:e===`top-right`?`top-left`:e===`bottom-left`?`bottom-right`:`bottom-left`}function fe(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 pe(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 me=class{ownerDocument;elements=new Map;preserved=new Map;sizes=new Map;hidden=null;constructor(e){this.ownerDocument=e}get doc(){return this.ownerDocument??document}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.setAttribute(`data-vdd-panel`,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=pe(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()})}},z=[`skin`,`noAnimations`,`zBase`],B=new WeakMap;function he(e,t,n){let r=e.documentElement,i=e=>{for(let n=t.length-1;n>=0;n--)if(e in t[n].values)return{claimed:!0,value:t[n].values[e]};return{claimed:!1}};if(n.includes(`skin`)){let e=i(`skin`);e.claimed&&e.value?r.setAttribute(`data-vdd-skin`,e.value):r.removeAttribute(`data-vdd-skin`)}if(n.includes(`noAnimations`)){let e=i(`noAnimations`);r.classList.toggle(`vdd-no-animations`,e.claimed&&e.value===!0)}if(n.includes(`zBase`)){let e=i(`zBase`);e.claimed&&e.value!==void 0?r.style.setProperty(`--vdd-z-base`,String(e.value)):r.style.removeProperty(`--vdd-z-base`)}}function ge(e,t,n=document){let r=B.get(n)??[];B.set(n,r);let i=r.find(t=>t.owner===e);i?Object.assign(i.values,t):r.push({owner:e,values:{...t}}),he(n,r,Object.keys(t))}function _e(e,t=z,n=document){let r=B.get(n);if(!r)return;let i=r.findIndex(t=>t.owner===e);if(i===-1)return;let a=r[i],o=t.filter(e=>e in a.values);for(let e of o)delete a.values[e];Object.keys(a.values).length===0&&r.splice(i,1),he(n,r,o)}var ve=Symbol(`vdd-panel-dom`);function V(t){(0,e.provide)(ve,t)}function ye(){return(0,e.inject)(ve,null)}function H(e){let{element:t,pointerId:n,startClientX:r,startClientY:i,captureStart:a,onMove:o,onEnd:s,onCancel:c,activeClasses:l}=e;t.setPointerCapture(n),l?.forEach(({el:e,classes:t})=>e.classList.add(...t));let u=a(),d=e=>{o(e.clientX-r,e.clientY-i,u)},f=()=>{l?.forEach(({el:e,classes:t})=>e.classList.remove(...t)),t.removeEventListener(`pointermove`,d),t.removeEventListener(`pointerup`,p),t.removeEventListener(`pointercancel`,m),window.removeEventListener(`blur`,m)},p=()=>{f(),s?.(u)},m=()=>{f(),(c??s)?.(u)};t.addEventListener(`pointermove`,d),t.addEventListener(`pointerup`,p),t.addEventListener(`pointercancel`,m),window.addEventListener(`blur`,m)}function be(e){return!!e&&getComputedStyle(e).direction===`rtl`}function xe(e,t,n){return e-t.left<t.width/2===n?`right`:`left`}function U(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 Se=5,W=Symbol(`vdd-drag-dock`);function Ce(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,n){let r=document.elementsFromPoint(e,n),c=!1,l=!1,u=!1;for(let n of r)if(n instanceof HTMLElement){if(!c&&n.dataset.vddDropZone&&n.dataset.vddLeaf&&(i.value={leafId:n.dataset.vddLeaf,position:n.dataset.vddDropZone},c=!0),!u&&n.dataset.vddTab&&n.dataset.vddTabLeaf){let r=n.getBoundingClientRect();s.value={leafId:n.dataset.vddTabLeaf,panelId:n.dataset.vddTab,index:Number.parseInt(n.dataset.vddTabIndex??`0`,10),side:xe(e,r,t.state.isRtl)},u=!0}if(!l&&n.dataset.vddEdge&&(a.value=n.dataset.vddEdge,l=!0),!c&&n.dataset.vddCorner&&(o.value=n.dataset.vddCorner),c&&l&&u)break}c||(i.value=null),l||(a.value=null),u||(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?L(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),window.removeEventListener(`blur`,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),window.removeEventListener(`blur`,o),u()};i.addEventListener(`pointermove`,t),i.addEventListener(`pointerup`,a),i.addEventListener(`pointercancel`,o),window.addEventListener(`blur`,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)<=Se&&Math.abs(t.clientY-o)<=Se)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),window.removeEventListener(`blur`,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),window.addEventListener(`blur`,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)(W,b),b}function G(){return(0,e.inject)(W,null)}function we(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}),Ee(e,t,i)}function Te(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})),Ee(e,t,i)}function Ee(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)(F,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}var De=()=>typeof document<`u`&&document.documentElement.getAttribute(`data-color-scheme`)===`light`?`light`:`dark`;function Oe(){let t=(0,e.ref)(De());if(typeof document<`u`){let n=new MutationObserver(()=>{t.value=De()});n.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-color-scheme`]}),(0,e.onScopeDispose)(()=>n.disconnect())}return(0,e.computed)(()=>t.value)}var ke=[`data-vdd-slot`],Ae=(0,e.defineComponent)({__name:`VddPanelSlot`,props:{panelId:{},hostClass:{}},setup(t){let n=t,r=ye(),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,ke))}}),je={class:`vdd-dock-drop-zone-overlay`},Me={class:`vdd-dock-target-cross`},Ne=[`data-vdd-drop-zone`,`data-vdd-leaf`,`onPointerenter`],Pe=(0,e.defineComponent)({__name:`VddDropZones`,props:{leafId:{}},setup(t){let n=t,r=G(),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`,je,[(0,e.createElementVNode)(`div`,Me,[((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,Ne)),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))}}),Fe=[`data-vdd-leaf`,`data-active-panel-id`],Ie={class:`vdd-workspace-tab-bar`},Le=[`data-vdd-tab`,`data-vdd-tab-leaf`,`data-vdd-tab-index`,`aria-selected`,`tabindex`,`onClick`,`onContextmenu`,`onPointerdown`,`onPointermove`,`onKeydown`],Re={class:`vdd-text-truncate`},ze={key:0,class:`vdd-workspace-tab-icon`},Be=[`title`,`data-vdd-close`,`onClick`],Ve={key:0,class:`vdd-tab-header-actions`},He=[`title`,`aria-label`],Ue={class:`vdd-panel-body`,role:`tabpanel`},We={key:2,class:`vdd-empty-leaf-placeholder`},Ge=(0,e.defineComponent)({__name:`VddLeafGroup`,props:{leaf:{}},setup(t){let n=t,r=K(),i=G();function a(e,t){let n=r.state.panels[e];if(!n)return;let i=r.registry.get(n.component)?.defaultOptions??{},a=we(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,a){if(!i?.dragging.value||a.pointerType===`touch`)return;let o=a.currentTarget.getBoundingClientRect();i.hoverTab({leafId:e,panelId:t,index:n,side:xe(a.clientX,o,r.state.isRtl)})}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=(0,e.useTemplateRef)(`tabBar`),u=(e,t)=>(c.value?e===c.value:t===0)?0:-1;function d(t,n){let i=s.value,a=i[t];if(!a)return;if(n.key===`Delete`){a.options.canClose!==!1&&r.requestClosePanel(a.id),n.preventDefault();return}if(n.key!==`ArrowRight`&&n.key!==`ArrowLeft`)return;n.preventDefault();let o=i[(t+(n.key===`ArrowRight`===r.state.isRtl?i.length-1:1))%i.length];r.focusPanel(o.id),(0,e.nextTick)(()=>{l.value?.querySelector(`[data-vdd-tab="${CSS.escape(o.id)}"]`)?.focus()})}let f=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,p)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`vdd-workspace-panel`,"data-vdd-leaf":t.leaf.id,"data-active-panel-id":c.value??``,onPointerdown:p[2]||=t=>c.value&&(0,e.unref)(r).focusPanel(c.value)},[(0,e.createElementVNode)(`div`,Ie,[(0,e.createElementVNode)(`div`,{ref_key:`tabBar`,ref:l,class:`vdd-tab-headers-container`,role:`tablist`},[((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)(f(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,tabindex:u(n.id,s),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:p[0]||=t=>(0,e.unref)(i)?.dragging.value&&(0,e.unref)(i).hoverTab(null),onKeydown:e=>d(s,e)},[(0,e.createElementVNode)(`span`,Re,[n.options.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,ze,[((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`,"aria-hidden":`true`,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`])},[...p[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,Be))],46,Le))),128))],512),s.value.length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ve,[(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:p[1]||=(0,e.withModifiers)(n=>(0,e.unref)(r).closeLeafGroup(t.leaf.id),[`stop`])},[...p[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,He)])):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`div`,Ue,[(0,e.unref)(i)?.dragging.value?((0,e.openBlock)(),(0,e.createBlock)(Pe,{key:0,"leaf-id":t.leaf.id},null,8,[`leaf-id`])):(0,e.createCommentVNode)(``,!0),c.value?((0,e.openBlock)(),(0,e.createBlock)(Ae,{key:c.value,"panel-id":c.value},null,8,[`panel-id`])):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,We,[(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)((0,e.unref)(r).format((0,e.unref)(r).messages.emptyGroup)),1)]))])],40,Fe))}}),Ke=[`data-vdd-divider`,`onPointerdown`],qe=(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],l=i.value&&be(o)?-1:1;H({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?l*t:a)/s,u=[...o];u[e]=(o[e]??0)+c,u[e+1]=(o[e+1]??0)-c,(u[e]??0)>.05&&(u[e+1]??0)>.05&&r.updateSplitSizes(n.path,u)}})}return(n,r)=>{let o=(0,e.resolveComponent)(`VddWorkspaceGrid`,!0);return t.node.type===`leaf`?((0,e.openBlock)(),(0,e.createBlock)(Ge,{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 Ye(t){(0,e.provide)(Je,t)}var Xe=`standalone`;function q(){let t=(0,e.inject)(Je,null),n=(0,e.inject)(F,null),r=t?.id??Xe,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=(e,t)=>{process.env.NODE_ENV!==`production`&&console.warn(`[vue-dockable-desktop] usePanel().${e} did nothing: ${t}`)},o=(0,e.computed)(()=>n?n.state.panels[r]:void 0),s=(0,e.ref)(null);return{id:r,title:(0,e.computed)(()=>t?.title?.value??o.value?.title??r),isActive:(0,e.computed)(()=>!!n&&n.state.activePanelId===r),isMinimized:(0,e.computed)(()=>o.value?.state===`minimized`),isFloating:(0,e.computed)(()=>o.value?.state===`floating`),containerType:(0,e.computed)(()=>t?.containerType.value??Xe),size:(0,e.computed)(()=>(t?.size??s).value),dirty:(0,e.computed)(()=>t?.dirty?t.dirty.value:o.value?.dirty===!0),setTitle:e=>{t?.setTitle?t.setTitle(e):n&&o.value?n.updatePanelTitle(r,e):i(`setTitle`)},setIcon:e=>{t?.setIcon?t.setIcon(e):i(`setIcon`)},setDirty:(e,a)=>{t?.setDirty?t.setDirty(e,a):n&&o.value?n.setPanelDirty(r,e,a):i(`setDirty`)},close:e=>{if(t?.close)return t.close(e);if(n&&o.value)return n.requestClosePanel(r,e);i(`close`)},minimize:()=>{n&&o.value?n.minimizePanel(r):t?.overlay?a(`minimize`,`modals and side panels cannot be minimised.`):i(`minimize`)},onBeforeClose:a=>{let s=t?.onBeforeClose?t.onBeforeClose(a):n&&o.value?n.registerCloseGuard(r,a):null;if(!s){i(`onBeforeClose`);return}(0,e.getCurrentScope)()&&(0,e.onScopeDispose)(s)},onSaveState:s=>{if(t?.overlay){a(`onSaveState`,`modals and side panels are not saved with the layout.`);return}if(!n||!o.value){i(`onSaveState`);return}let c=n.registerStateProvider(r,s);(0,e.getCurrentScope)()&&(0,e.onScopeDispose)(c)}}}var Ze=[`dir`],Qe={key:1,class:`vdd-unregistered-panel`},$e=(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);Ye({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`,Qe,[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,Ze)],8,[`to`]))}}),et=[`data-vdd-window`,`dir`],tt=[`data-vdd-titlebar`],nt={class:`vdd-floating-window-title`},rt={key:0,class:`vdd-window-title-icon`},it=[`data-vdd-more`,`title`],at={width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`currentColor`,style:{display:`block`}},ot=[`data-vdd-maximize`,`title`],st=[`data-vdd-minimize`,`title`],ct=[`data-vdd-close-window`,`title`],lt=[`data-vdd-handle`,`onPointerdown`],ut=8,dt=8,ft=(0,e.defineComponent)({__name:`VddFloatingWindow`,props:{window:{},viewport:{}},setup(t){let n=t,r=K(),i=G(),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=ut;for(let n=0;n<e;n++){let e=d.value[n].height;t+=(typeof e==`number`?e:Number.parseFloat(String(e)))+dt}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`]:`${ut}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:we(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;H({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())},onCancel:()=>{u&&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};H({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=U(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`,nt,[s.value.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,rt,[((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`,at,[...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,it)):(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,ot),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,st)),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,ct))],32)],44,tt),(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`vdd-floating-window-body`,(0,e.unref)(r).classes.windowBody])},[(0,e.createVNode)(Ae,{"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,lt)),64))],46,et)):(0,e.createCommentVNode)(``,!0)}}),pt=[`data-vdd-edge`,`onPointerenter`],mt=[`data-vdd-corner`,`onPointerenter`],ht=(0,e.defineComponent)({__name:`VddEdgeZones`,setup(t){let n=G(),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,pt)),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,mt)),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))}}),gt=(0,e.defineComponent)({__name:`VddDragGhost`,setup(t){let n=G(),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)}}),_t=[`dir`],vt={class:`vdd-tooltip-header-row`},yt={class:`vdd-tooltip-title-text vdd-text-truncate`},bt=[`data-vdd-preview-close`,`title`],xt={key:1,class:`vdd-taskbar-item-preview-letter`},St=220,Ct=140,wt=(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(St/l.value.width,Ct/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`,vt,[(0,e.createElementVNode)(`span`,yt,(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`,"aria-hidden":`true`,"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,bt)]),(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`,xt,(0,e.toDisplayString)(p.value),1))],4)],44,_t)]))}}),Tt=[`data-vdd-taskbar-mode`],Et={key:0,class:`vdd-taskbar-peek-handle`,"data-vdd-peek":``},Dt=[`aria-label`],Ot=[`data-vdd-taskbar-item`,`title`,`onClick`,`onContextmenu`,`onPointerdown`,`onPointerenter`],kt={class:`vdd-taskbar-item-icon`},At={key:1,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},jt=[`aria-label`],Mt=4,Nt=400,Pt=2e3,Ft=(0,e.defineComponent)({__name:`VddTaskbar`,props:{visibility:{default:`always`},cache:{},defaultIcon:{default:void 0}},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>Mt);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},Nt)};(0,e.watch)(()=>a.state.minimized.length,(e,t)=>{r.visibility!==`autohide`||e<=(t??0)||(h(),l=setTimeout(()=>{s.value=!1},Pt))});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`,Et)):(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`,kt,[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`,At,[...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,Ot))),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,jt)):(0,e.createCommentVNode)(``,!0),c.value?((0,e.openBlock)(),(0,e.createBlock)(wt,{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,Tt)):(0,e.createCommentVNode)(``,!0)}}),It=[`data-vdd-skin`,`data-color-scheme`,`dir`],Lt={class:`vdd-panel-port`,"aria-hidden":`true`},Rt=(0,e.defineComponent)({__name:`VddDesktop`,props:{skin:{default:`vscode`},animations:{type:Boolean,default:!0},taskbar:{default:`always`},defaultPanelIcon:{default:void 0}},emits:[`taskbarContextMenu`],setup(t,{emit:n}){let r=t,i=n,a=K(),o=Oe(),s=new me;V(s);let c=Ce(a),l=typeof document>`u`,u=(0,e.computed)(()=>l?[]:Object.keys(a.state.panels));(0,e.watch)(u,(e,t)=>{for(let n of t??[])e.includes(n)||s.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.
|
|
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,n){let r=p(e,t);return r!==null&&r.panels.length===1&&r.panels[0]===n}var h=(e,t)=>Array.isArray(e)&&e.length===t&&e.every(e=>typeof e==`number`&&Number.isFinite(e)&&e>0);function g(e,t){let r=[],i=new Set,a=e=>{if(e.type===`leaf`){let n=e.panels.filter(n=>t[n]?i.has(n)?(r.push(`panel "${n}" was listed in more than one group`),!1):(i.add(n),!0):(r.push(`group "${e.id}" listed panel "${n}", which the layout doesn't have`),!1));if(n.length===e.panels.length)return e;if(n.length===0&&!e.keepOnEmpty)return null;let a=e.activePanelId&&n.includes(e.activePanelId)?e.activePanelId:n[0]??null;return{...e,panels:n,activePanelId:a}}let n=e.children.map(a).filter(e=>e!==null),o=n.length===e.children.length&&n.every((t,n)=>t===e.children[n]);if(o&&h(e.sizes,n.length))return e;if(n.length===0)return null;if(n.length===1)return n[0];let s=()=>n.map(()=>1/n.length);if(o)return r.push(`a split had sizes ${JSON.stringify(e.sizes)} for ${n.length} children`),{...e,sizes:s()};let c=Array.isArray(e.sizes)?e.sizes.slice(0,n.length):[];if(!h(c,n.length))return{...e,children:n,sizes:s()};let l=c.reduce((e,t)=>e+t,0);return{...e,children:n,sizes:c.map(e=>e/l)}},o=a(e)??n(),s=Object.values(t).filter(e=>e.state===`docked`&&!i.has(e.id));if(s.length>0){for(let e of s)r.push(`panel "${e.id}" is docked but was in no group`);let e=s.map(e=>e.id),t=n=>n.type===`leaf`?{...n,panels:[...n.panels,...e],activePanelId:n.activePanelId??e[0]}:{...n,children:[t(n.children[0]),...n.children.slice(1)]};o=t(o)}return{gridRoot:o,repairs:r}}function _(e,t){return p(e,t)!==null}function v(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 y(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 b(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}var x={x:300,y:150,width:450,height:350};function S(e,t){return e.map(e=>{let n=e;for(let r of[`x`,`y`,`width`,`height`]){let i=e[r];typeof i==`string`||typeof i==`number`&&Number.isFinite(i)||(n={...n,[r]:x[r]},t.push(`floating window "${e.id}" had ${r} = ${String(i)}`))}return n})}function C(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 w(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=[],i=S(C(n.floating),r),a=n.panels;r.length>0&&t?.(`Repaired the saved layout on load: ${r.join(`; `)}. Each is replaced by the default a new floating window gets (${JSON.stringify(x)}); saving again from this session stores the corrected layout.`);let o=g(n.gridRoot,a);o.repairs.length>0&&t?.(`Repaired the saved layout on load: ${o.repairs.join(`; `)}. (Layouts written before 1.1.1 could leave a panel in no group — dropping a lone docked panel onto its own group did it.) The repair runs every time the layout is read, so saving again from this session stores the corrected layout.`);let s=o.gridRoot,c={gridRoot:s,floating:i,panels:a},l=typeof n.activePanelId==`string`?n.activePanelId:null,u=null;return l!==null&&(y(l,c)?u=l:t?.(`Ignoring the saved layout's activePanelId ("${l}") — 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.`)),u===null&&(u=b(c)),{gridRoot:s,floating:i,minimized:n.minimized,panels:a,activePanelId:u}}function T(e,n){if(e)try{let t=w(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 E(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(E);let r=Object.getPrototypeOf(t);return r!==Object.prototype&&r!==null?!1:Object.values(t).every(E)}var D=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())}},ee=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 r of Array.from(n))try{r(t)}catch(t){console.error(`[vue-dockable-desktop] A subscriber to "${e}" threw:`,t)}}count(e){return this.listeners.get(e)?.size??0}clear(){this.listeners.clear()}};function te(e){if(e.initialFocus)return e.initialFocus;let t=e.event;if(!t||`touches`in t)return`menu`;let n=t;return n.clientX===0&&n.clientY===0?`first-item`:`menu`}var ne=e=>`separator`in e,O=e=>!ne(e)&&`items`in e;function re(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 k(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 ie={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`},confirmTitle:{id:`vdd.confirmTitle`,defaultMessage:`Confirmation`},alertTitle:{id:`vdd.alertTitle`,defaultMessage:`Information`},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`},notifications:{id:`vdd.notifications`,defaultMessage:`Notifications`},closeNotification:{id:`vdd.closeNotification`,defaultMessage:`Close notification`}};function ae(e,t){if(e==null)return``;if(typeof e==`string`)return e;if(typeof e==`function`)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.split(`{${t}}`).join(String(r));return n}function oe(){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 se=0,A=e=>`vdd-${e}-${++se}`;function ce(){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:A(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 le(){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 j(e,t){return{id:e.id,label:e.label,icon:e.icon??t,component:e.component,props:e.props}}function M(e,t){let n=t?.toolbarItems;return n?.length?[...e,{type:`separator`},...n]:e}function N(e,t,n){let r=t?.sidebarSections;return r?.length?[...e,...r.map(e=>j(e,n))]:e}function ue(t,n){return(0,e.computed)(()=>{let e=n();return e?t.get(e):null})}var de=(e,t)=>Math.min(.9,Math.max(.1,e??t)),P=x,F=Symbol(`vdd-workspace`);function I(t={}){let o=new D;for(let[e,n]of Object.entries(t.panels??{}))o.register(e,n.component,n.defaultOptions);let p=new ee,h=new Map,g=new Map,x=new Map,S=(0,e.ref)(0),C=(0,e.shallowRef)(null),ne={...ie,...t.messages??{}},O=t.zIndexBase??1e3,k=O;function se(e){let t={};for(let[n,r]of Object.entries(e.panels))t[n]=r.title?r:{...r,title:o.get(r.component)?.defaultOptions?.title||n};let n=e.minimized.map(e=>e.title?e:{...e,title:t[e.id]?.title||e.id});return{...e,panels:t,minimized:n}}let A=se(T(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:de(t.defaultSplitRatio,.5),edgeSplitRatio:de(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 N=()=>({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&&y(e,N())?e:j.activePanelId&&y(j.activePanelId,N())?j.activePanelId:b(N()),n!==t&&(j.activePanelId=n,p.emit(`panel:activated`,{id:n,previous:t}))}let L=()=>p.emit(`layout:changed`,{}),fe=e=>{let t=j.panels[e];return t?o.get(t.component):void 0},R=e=>fe(e)?.defaultOptions??{};function pe(e){let t=(e,t)=>{let n=typeof e==`string`?Number.parseFloat(e):e;return Number.isNaN(n)?t:n},n=t(e.x,P.x),r=t(e.y,P.y),i=t(e.width,P.width),a=t(e.height,P.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 me(e,t,n){k+=1,j.floating=[...j.floating,{...t,id:e,z:k,anchor:n}]}function z(t){let i=(0,e.toRaw)(j).gridRoot;j.gridRoot=r(i,t)??(i.type===`leaf`?{...i,panels:[],activePanelId:null}:n()),j.floating=j.floating.filter(e=>e.id!==t),j.minimized=j.minimized.filter(e=>e.id!==t)}function B(t,n,r){let i=(0,e.toRaw)(j).gridRoot;return m(i,n,t)?!0:!_(i,n)&&(M(`${r}("${t}", "${n}") was ignored: no group with that id is in the layout. Emptying a group removes it, so an id kept across a layout change can name a group that no longer exists.`),!0)}function he(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 c=t;if(a?.dedupeKey!==void 0){let e=Object.values(j.panels).find(e=>e.component===r&&e.dedupeKey===a.dedupeKey);e&&(c=e.id)}let l=j.panels[c],u=a?.focus!==!1,m=o.get(r),h=a?.initialTarget??m?.defaultOptions?.initialTarget??`docked`,g=m?.defaultOptions?.favoritePosition??P;if(l){if(l.state===`minimized`){V(c,{focus:u});return}if(l.state===`docked`&&f((0,e.toRaw)(j).gridRoot,c)===null){M(`Panel "${c}" was open but in no group; docking it again.`),H(c),u&&W(c);return}u&&W(c);return}let _=a?.dockTo,v=_?f((0,e.toRaw)(j).gridRoot,_.panel):null;_&&v===null&&M(`openPanel("${c}") could not dock beside "${_.panel}": that panel is not docked (not open, floating or minimised), so the new panel was placed as usual.`);let y=a?.props!==void 0,b={id:c,title:a?.title??m?.defaultOptions?.title??c,component:r,state:v===null&&h===`floating`?`floating`:`docked`,serializable:!y||E((0,e.toRaw)(a.props)),...y?{props:(0,e.markRaw)(a.props)}:{},...a?.dedupeKey===void 0?{}:{dedupeKey:a.dedupeKey}};if(j.panels={...j.panels,[c]:b},_&&v!==null){let t=Math.min(.9,Math.max(.1,_.size??j.splitRatio));j.gridRoot=_.position===`center`?i((0,e.toRaw)(j).gridRoot,v,c,{select:u}):s((0,e.toRaw)(j).gridRoot,v,c,_.position,t)}else if(h===`floating`)me(c,pe(g),a?.anchor??m?.defaultOptions?.defaultAnchor??null);else{let t=d((0,e.toRaw)(j).gridRoot)??n().id;j.gridRoot=i((0,e.toRaw)(j).gridRoot,t,c,{select:u})}I(u?c:null),p.emit(`panel:opened`,{id:c,component:r}),L()}function ge(e){if(!j.panels[e]||R(e).canClose===!1)return;h.delete(e),g.delete(e),z(e);let t={...j.panels};delete t[e],j.panels=t,I(),p.emit(`panel:closed`,{id:e}),L()}async function _e(e,t){if(t?.force){ge(e);return}let n=h.get(e);if(n&&!await n())return;let r=j.panels[e];(!r?.dirty||await(t?.onConfirm??(e=>Ne.confirmDiscard({title:Me(r.title),dirtyOptions:e})))(r.dirtyOptions))&&ge(e)}function ve(t){let n=j.panels[t];if(!n||n.state===`minimized`||R(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;z(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 V(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??P,f=()=>{j.panels={...j.panels,[t]:{...a,state:`floating`}},me(t,pe(u),a.lastFloatingRect?.anchor??null)},m=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&&_((0,e.toRaw)(j).gridRoot,a.lastLeafId)?m(a.lastLeafId):R(t).canDrag===!1?m(d((0,e.toRaw)(j).gridRoot)??n().id):f(),I(s?t:null),p.emit(`panel:restored`,{id:t}),L()}function ye(e,t,n){let r=j.panels[e];if(!r||R(e).canDrag===!1)return;let i=t??o.get(r.component)?.defaultOptions?.favoritePosition??P;z(e),j.panels={...j.panels,[e]:{...r,state:`floating`}},me(e,pe(i),n??null),I(e),L()}function H(t,r){let a=j.panels[t];if(!a)return;z(t);let o=a.lastLeafId&&_((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 be(t,n,r){let a=j.panels[t];a&&(B(t,n,`dockPanelToGroup`)||(z(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 xe(t,n){let i=j.panels[t];i&&r((0,e.toRaw)(j).gridRoot,t)!==null&&(z(t),j.panels={...j.panels,[t]:{...i,state:`docked`}},j.gridRoot=c((0,e.toRaw)(j).gridRoot,t,n,j.edgeSplitRatio),j.draggedPanelId=null,I(t),L())}function U(t,i,o){let s=j.panels[t];if(!s||B(t,i,`movePanelOrder`))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 Se(e){j.panels[e]?.state===`minimized`&&V(e);let t=j.panels[e];t&&(t.state===`docked`&&ye(e),j.floating=j.floating.map(t=>t.id===e?{...t,maximized:!t.maximized}:t),I(e),L())}function W(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 Ce(t){j.gridRoot=l((0,e.toRaw)(j).gridRoot,t)??n(),I(),L()}function G(t,n){j.gridRoot=v((0,e.toRaw)(j).gridRoot,t,n),L()}function we(e,t){j.floating=j.floating.map(n=>n.id===e?{...n,...t}:n)}function Te(e,t,n){let r=j.panels[e];r&&(j.panels={...j.panels,[e]:{...r,dirty:t,dirtyOptions:n}})}function Ee(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 K(e){j.dir!==e&&(j.dir=e,j.isRtl=e===`rtl`)}function De(){let t=(0,e.toRaw)(j),i=[],a={};for(let[n,r]of Object.entries(t.panels)){let t=g.get(n),o=t?.(),s=t!==void 0&&o!==void 0,c=s?o:r.props,l=s?E((0,e.toRaw)(o)):r.serializable,u=typeof r.title==`function`?(({title:e,...t})=>t)(r):r;l?a[n]=s?{...u,props:c,serializable:!0}:u: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&&y(l,{gridRoot:o,floating:s,panels:a})?l:null,d={version:2,...u===null?{}:{activePanelId:u},gridRoot:o,floating:s,minimized:c.map(e=>typeof e.title==`function`?{id:e.id,component:e.component}:e),panels:a};return JSON.stringify(d)}function Oe(e){let t;try{t=JSON.parse(e)}catch{return M(`loadLayout received invalid JSON; the current layout is unchanged.`),!1}let n=w(t,M),r=n&&se(n);if(!r)return M(`loadLayout received something that is not a layout (it needs gridRoot, floating, minimized and panels); the current layout is unchanged.`),!1;j.gridRoot=r.gridRoot,j.floating=r.floating,j.minimized=r.minimized,j.panels=r.panels,j.draggedPanelId=null,k=Math.max(O,...r.floating.map(e=>e.z),0);let i=j.activePanelId;return j.activePanelId=r.activePanelId,i!==r.activePanelId&&p.emit(`panel:activated`,{id:r.activePanelId,previous:i}),L(),!0}function ke(e,t){return h.set(e,t),()=>{h.get(e)===t&&h.delete(e)}}function Ae(e,t){return g.set(e,t),()=>{g.get(e)===t&&g.delete(e)}}function je(e,t){return x.set(e,t),S.value++,()=>{x.get(e)===t&&(x.delete(e),S.value++)}}let Me=e=>ae(e,t.formatMessage),Ne=ce(),Pe=le(),Fe={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:he,closePanel:ge,requestClosePanel:_e,minimizePanel:ve,restorePanel:V,floatPanel:ye,dockPanel:H,dockPanelToGroup:be,dockPanelToWorkspaceEdge:xe,maximizePanel:Se,focusPanel:W,movePanelOrder:U,closeLeafGroup:Ce,updateSplitSizes:G,updateFloatingPosition:we,setPanelDirty:Te,updatePanelTitle:Ee,setDirection:K,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:De,loadLayout:Oe,publish:(e,t)=>p.publish(e,t),subscribe:(e,t)=>p.subscribe(e,t),toolbar:oe(),overlays:Ne,contributions:Pe,activeContribution:ue(Pe,()=>j.activePanelId),registerCloseGuard:ke,registerStateProvider:Ae,registerPanelMenu:je,panelMenuItems:e=>(S.value,x.get(e)?.()??[]),showContextMenu:e=>{e.event?.preventDefault?.(),C.value={...re(e),items:e.items,initialFocus:te(e)}},closeContextMenu:()=>{C.value=null},contextMenu:(0,e.computed)(()=>C.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:Me,messages:ne,config:{...t,zIndexBase:O},install(e){e.provide(F,Fe)},dispose(){p.clear(),Ne.dispose(),h.clear(),g.clear(),x.clear(),C.value=null}};return Fe}function L(e){return e===`top-left`?`top-right`:e===`top-right`?`top-left`:e===`bottom-left`?`bottom-right`:`bottom-left`}function fe(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 pe(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 me=class{ownerDocument;elements=new Map;preserved=new Map;sizes=new Map;hidden=null;constructor(e){this.ownerDocument=e}get doc(){return this.ownerDocument??document}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.setAttribute(`data-vdd-panel`,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=pe(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()})}},z=[`skin`,`noAnimations`,`zBase`],B=new WeakMap;function he(e,t,n){let r=e.documentElement,i=e=>{for(let n=t.length-1;n>=0;n--)if(e in t[n].values)return{claimed:!0,value:t[n].values[e]};return{claimed:!1}};if(n.includes(`skin`)){let e=i(`skin`);e.claimed&&e.value?r.setAttribute(`data-vdd-skin`,e.value):r.removeAttribute(`data-vdd-skin`)}if(n.includes(`noAnimations`)){let e=i(`noAnimations`);r.classList.toggle(`vdd-no-animations`,e.claimed&&e.value===!0)}if(n.includes(`zBase`)){let e=i(`zBase`);e.claimed&&e.value!==void 0?r.style.setProperty(`--vdd-z-base`,String(e.value)):r.style.removeProperty(`--vdd-z-base`)}}function ge(e,t,n=document){let r=B.get(n)??[];B.set(n,r);let i=r.find(t=>t.owner===e);i?Object.assign(i.values,t):r.push({owner:e,values:{...t}}),he(n,r,Object.keys(t))}function _e(e,t=z,n=document){let r=B.get(n);if(!r)return;let i=r.findIndex(t=>t.owner===e);if(i===-1)return;let a=r[i],o=t.filter(e=>e in a.values);for(let e of o)delete a.values[e];Object.keys(a.values).length===0&&r.splice(i,1),he(n,r,o)}var ve=Symbol(`vdd-panel-dom`);function V(t){(0,e.provide)(ve,t)}function ye(){return(0,e.inject)(ve,null)}function H(e){let{element:t,pointerId:n,startClientX:r,startClientY:i,captureStart:a,onMove:o,onEnd:s,onCancel:c,activeClasses:l}=e;t.setPointerCapture(n),l?.forEach(({el:e,classes:t})=>e.classList.add(...t));let u=a(),d=e=>{o(e.clientX-r,e.clientY-i,u)},f=()=>{l?.forEach(({el:e,classes:t})=>e.classList.remove(...t)),t.removeEventListener(`pointermove`,d),t.removeEventListener(`pointerup`,p),t.removeEventListener(`pointercancel`,m),window.removeEventListener(`blur`,m)},p=()=>{f(),s?.(u)},m=()=>{f(),(c??s)?.(u)};t.addEventListener(`pointermove`,d),t.addEventListener(`pointerup`,p),t.addEventListener(`pointercancel`,m),window.addEventListener(`blur`,m)}function be(e){return!!e&&getComputedStyle(e).direction===`rtl`}function xe(e,t,n){return e-t.left<t.width/2===n?`right`:`left`}function U(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 Se=5,W=Symbol(`vdd-drag-dock`);function Ce(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,n){let r=document.elementsFromPoint(e,n),c=!1,l=!1,u=!1;for(let n of r)if(n instanceof HTMLElement){if(!c&&n.dataset.vddDropZone&&n.dataset.vddLeaf&&(i.value={leafId:n.dataset.vddLeaf,position:n.dataset.vddDropZone},c=!0),!u&&n.dataset.vddTab&&n.dataset.vddTabLeaf){let r=n.getBoundingClientRect();s.value={leafId:n.dataset.vddTabLeaf,panelId:n.dataset.vddTab,index:Number.parseInt(n.dataset.vddTabIndex??`0`,10),side:xe(e,r,t.state.isRtl)},u=!0}if(!l&&n.dataset.vddEdge&&(a.value=n.dataset.vddEdge,l=!0),!c&&n.dataset.vddCorner&&(o.value=n.dataset.vddCorner),c&&l&&u)break}c||(i.value=null),l||(a.value=null),u||(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?L(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),window.removeEventListener(`blur`,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),window.removeEventListener(`blur`,o),u()};i.addEventListener(`pointermove`,t),i.addEventListener(`pointerup`,a),i.addEventListener(`pointercancel`,o),window.addEventListener(`blur`,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)<=Se&&Math.abs(t.clientY-o)<=Se)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),window.removeEventListener(`blur`,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),window.addEventListener(`blur`,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)(W,b),b}function G(){return(0,e.inject)(W,null)}function we(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}),Ee(e,t,i)}function Te(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})),Ee(e,t,i)}function Ee(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)(F,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}var De=()=>typeof document<`u`&&document.documentElement.getAttribute(`data-color-scheme`)===`light`?`light`:`dark`;function Oe(){let t=(0,e.ref)(De());if(typeof document<`u`){let n=new MutationObserver(()=>{t.value=De()});n.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-color-scheme`]}),(0,e.onScopeDispose)(()=>n.disconnect())}return(0,e.computed)(()=>t.value)}var ke=[`data-vdd-slot`],Ae=(0,e.defineComponent)({__name:`VddPanelSlot`,props:{panelId:{},hostClass:{}},setup(t){let n=t,r=ye(),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,ke))}}),je={class:`vdd-dock-drop-zone-overlay`},Me={class:`vdd-dock-target-cross`},Ne=[`data-vdd-drop-zone`,`data-vdd-leaf`,`onPointerenter`],Pe=(0,e.defineComponent)({__name:`VddDropZones`,props:{leafId:{}},setup(t){let n=t,r=G(),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`,je,[(0,e.createElementVNode)(`div`,Me,[((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,Ne)),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))}}),Fe=[`data-vdd-leaf`,`data-active-panel-id`],Ie={class:`vdd-workspace-tab-bar`},Le=[`data-vdd-tab`,`data-vdd-selected`,`data-vdd-focused`,`data-vdd-dirty`,`data-vdd-tab-leaf`,`data-vdd-tab-index`,`aria-selected`,`tabindex`,`onClick`,`onContextmenu`,`onPointerdown`,`onPointermove`,`onKeydown`],Re={class:`vdd-text-truncate`},ze={key:0,class:`vdd-workspace-tab-icon`},Be=[`title`,`data-vdd-close`,`onClick`],Ve={key:0,class:`vdd-tab-header-actions`},He=[`title`,`aria-label`],Ue={class:`vdd-panel-body`,role:`tabpanel`},We={key:2,class:`vdd-empty-workspace`},Ge={key:3,class:`vdd-empty-leaf-placeholder`},Ke=(0,e.defineComponent)({__name:`VddLeafGroup`,props:{leaf:{}},setup(t){let n=t,r=K(),i=G();function a(e,t){let n=r.state.panels[e];if(!n)return;let i=r.registry.get(n.component)?.defaultOptions??{},a=we(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,a){if(!i?.dragging.value||a.pointerType===`touch`)return;let o=a.currentTarget.getBoundingClientRect();i.hoverTab({leafId:e,panelId:t,index:n,side:xe(a.clientX,o,r.state.isRtl)})}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=(0,e.useTemplateRef)(`tabBar`),u=(e,t)=>(c.value?e===c.value:t===0)?0:-1;function d(t,n){let i=s.value,a=i[t];if(!a)return;if(n.key===`Delete`){a.options.canClose!==!1&&r.requestClosePanel(a.id),n.preventDefault();return}if(n.key!==`ArrowRight`&&n.key!==`ArrowLeft`)return;n.preventDefault();let o=i[(t+(n.key===`ArrowRight`===r.state.isRtl?i.length-1:1))%i.length];r.focusPanel(o.id),(0,e.nextTick)(()=>{l.value?.querySelector(`[data-vdd-tab="${CSS.escape(o.id)}"]`)?.focus()})}let f=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,p)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`vdd-workspace-panel`,"data-vdd-leaf":t.leaf.id,"data-active-panel-id":c.value??``,onPointerdown:p[2]||=t=>c.value&&(0,e.unref)(r).focusPanel(c.value)},[(0,e.createElementVNode)(`div`,Ie,[(0,e.createElementVNode)(`div`,{ref_key:`tabBar`,ref:l,class:`vdd-tab-headers-container`,role:`tablist`},[((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)([f(n.id),n.options.tabClassName]),"data-vdd-tab":n.id,"data-vdd-selected":n.id===c.value?``:void 0,"data-vdd-focused":n.id===(0,e.unref)(r).state.activePanelId?``:void 0,"data-vdd-dirty":n.panel.dirty?``:void 0,"data-vdd-tab-leaf":t.leaf.id,"data-vdd-tab-index":String(s),role:`tab`,"aria-selected":n.id===c.value,tabindex:u(n.id,s),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:p[0]||=t=>(0,e.unref)(i)?.dragging.value&&(0,e.unref)(i).hoverTab(null),onKeydown:e=>d(s,e)},[(0,e.createElementVNode)(`span`,Re,[n.options.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,ze,[((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`,"aria-hidden":`true`,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`])},[...p[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,Be))],46,Le))),128))],512),s.value.length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ve,[(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:p[1]||=(0,e.withModifiers)(n=>(0,e.unref)(r).closeLeafGroup(t.leaf.id),[`stop`])},[...p[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,He)])):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`div`,Ue,[(0,e.unref)(i)?.dragging.value?((0,e.openBlock)(),(0,e.createBlock)(Pe,{key:0,"leaf-id":t.leaf.id},null,8,[`leaf-id`])):(0,e.createCommentVNode)(``,!0),c.value?((0,e.openBlock)(),(0,e.createBlock)(Ae,{key:c.value,"panel-id":c.value},null,8,[`panel-id`])):n.$slots[`empty-workspace`]&&s.value.length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,We,[(0,e.renderSlot)(n.$slots,`empty-workspace`)])):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ge,[(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)((0,e.unref)(r).format((0,e.unref)(r).messages.emptyGroup)),1)]))])],40,Fe))}}),qe=[`data-vdd-divider`,`onPointerdown`],Je=(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],l=i.value&&be(o)?-1:1;H({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?l*t:a)/s,u=[...o];u[e]=(o[e]??0)+c,u[e+1]=(o[e+1]??0)-c,(u[e]??0)>.05&&(u[e+1]??0)>.05&&r.updateSplitSizes(n.path,u)}})}return(n,r)=>{let o=(0,e.resolveComponent)(`VddWorkspaceGrid`,!0);return t.node.type===`leaf`?((0,e.openBlock)(),(0,e.createBlock)(Ke,{key:0,leaf:t.node},(0,e.createSlots)({_:2},[n.$slots[`empty-workspace`]?{name:`empty-workspace`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(n.$slots,`empty-workspace`)]),key:`0`}:void 0]),1032,[`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,qe)):(0,e.createCommentVNode)(``,!0)],64))),128))],6))}}}),Ye=Symbol(`vdd-panel`);function Xe(t){(0,e.provide)(Ye,t)}var Ze=`standalone`;function q(){let t=(0,e.inject)(Ye,null),n=(0,e.inject)(F,null),r=t?.id??Ze,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=(e,t)=>{process.env.NODE_ENV!==`production`&&console.warn(`[vue-dockable-desktop] usePanel().${e} did nothing: ${t}`)},o=(0,e.computed)(()=>n?n.state.panels[r]:void 0),s=(0,e.ref)(null);return{id:r,title:(0,e.computed)(()=>t?.title?.value??o.value?.title??r),isActive:(0,e.computed)(()=>!!n&&n.state.activePanelId===r),isMinimized:(0,e.computed)(()=>o.value?.state===`minimized`),isFloating:(0,e.computed)(()=>o.value?.state===`floating`),containerType:(0,e.computed)(()=>t?.containerType.value??Ze),size:(0,e.computed)(()=>(t?.size??s).value),dirty:(0,e.computed)(()=>t?.dirty?t.dirty.value:o.value?.dirty===!0),setTitle:e=>{t?.setTitle?t.setTitle(e):n&&o.value?n.updatePanelTitle(r,e):i(`setTitle`)},setIcon:e=>{t?.setIcon?t.setIcon(e):i(`setIcon`)},setDirty:(e,a)=>{t?.setDirty?t.setDirty(e,a):n&&o.value?n.setPanelDirty(r,e,a):i(`setDirty`)},close:e=>{if(t?.close)return t.close(e);if(n&&o.value)return n.requestClosePanel(r,e);i(`close`)},minimize:()=>{n&&o.value?n.minimizePanel(r):t?.overlay?a(`minimize`,`modals and side panels cannot be minimised.`):i(`minimize`)},onBeforeClose:a=>{let s=t?.onBeforeClose?t.onBeforeClose(a):n&&o.value?n.registerCloseGuard(r,a):null;if(!s){i(`onBeforeClose`);return}(0,e.getCurrentScope)()&&(0,e.onScopeDispose)(s)},onSaveState:s=>{if(t?.overlay){a(`onSaveState`,`modals and side panels are not saved with the layout.`);return}if(!n||!o.value){i(`onSaveState`);return}let c=n.registerStateProvider(r,s);(0,e.getCurrentScope)()&&(0,e.onScopeDispose)(c)}}}var Qe=[`dir`],$e={key:1,class:`vdd-unregistered-panel`},et=(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);Xe({id:n.panelId,containerType:o,size:s});let c=(0,e.computed)(()=>n.cache.elementFor(n.panelId)),l=(0,e.computed)(()=>{if(a.value?.defaultOptions?.keepAlive!==!1)return!0;let e=i.value;if(!e||e.state===`minimized`)return!1;if(e.state===`floating`)return!0;let t=f(r.state.gridRoot,n.panelId);return t!==null&&p(r.state.gridRoot,t)?.activePanelId===n.panelId}),u=null;return(0,e.watchEffect)(e=>{let t=c.value;typeof ResizeObserver>`u`||(u=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}))}}),u.observe(t),e(()=>{u?.disconnect(),u=null}))}),(n,o)=>((0,e.openBlock)(),(0,e.createBlock)(e.Teleport,{to:c.value},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`vdd-panel-content`,a.value?.defaultOptions?.className]),dir:(0,e.unref)(r).state.dir},[a.value&&l.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`])):a.value?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,$e,[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)]))],10,Qe)],8,[`to`]))}}),tt=[`data-vdd-window`,`data-vdd-focused`,`data-vdd-maximized`,`dir`],nt=[`data-vdd-titlebar`],rt={class:`vdd-floating-window-title`},it={key:0,class:`vdd-window-title-icon`},at=[`data-vdd-more`,`title`],ot={width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`currentColor`,style:{display:`block`}},st=[`data-vdd-maximize`,`title`],ct=[`data-vdd-minimize`,`title`],lt=[`data-vdd-close-window`,`title`],ut=[`data-vdd-handle`,`onPointerdown`],dt=8,ft=8,pt=(0,e.defineComponent)({__name:`VddFloatingWindow`,props:{window:{},viewport:{}},setup(t){let n=t,r=K(),i=G(),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=dt;for(let n=0;n<e;n++){let e=d.value[n].height;t+=(typeof e==`number`?e:Number.parseFloat(String(e)))+ft}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`]:`${dt}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:we(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;H({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())},onCancel:()=>{u&&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};H({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=U(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,"data-vdd-focused":c.value?``:void 0,"data-vdd-maximized":t.window.maximized?``:void 0,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`,rt,[s.value.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,it,[((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`,ot,[...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,at)):(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,st),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,ct)),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,lt))],32)],44,nt),(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`vdd-floating-window-body`,(0,e.unref)(r).classes.windowBody])},[(0,e.createVNode)(Ae,{"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,ut)),64))],46,tt)):(0,e.createCommentVNode)(``,!0)}}),mt=[`data-vdd-edge`,`onPointerenter`],ht=[`data-vdd-corner`,`onPointerenter`],gt=(0,e.defineComponent)({__name:`VddEdgeZones`,setup(t){let n=G(),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,mt)),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,ht)),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))}}),_t=(0,e.defineComponent)({__name:`VddDragGhost`,setup(t){let n=G(),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)}}),vt=[`dir`],yt={class:`vdd-tooltip-header-row`},bt={class:`vdd-tooltip-title-text vdd-text-truncate`},xt=[`data-vdd-preview-close`,`title`],St={key:1,class:`vdd-taskbar-item-preview-letter`},Ct=220,wt=140,Tt=(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&&s.value.keepAlive!==!1),l=(0,e.computed)(()=>r.cache.sizeOf(r.panelId)),u=(0,e.computed)(()=>Math.min(Ct/l.value.width,wt/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`,yt,[(0,e.createElementVNode)(`span`,bt,(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`,"aria-hidden":`true`,"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,xt)]),(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`,St,(0,e.toDisplayString)(p.value),1))],4)],44,vt)]))}}),Et=[`data-vdd-taskbar-mode`],Dt={key:0,class:`vdd-taskbar-peek-handle`,"data-vdd-peek":``},Ot=[`aria-label`],kt=[`data-vdd-taskbar-item`,`title`,`onClick`,`onContextmenu`,`onPointerdown`,`onPointerenter`],At={class:`vdd-taskbar-item-icon`},jt={key:1,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},Mt=[`aria-label`],Nt=4,Pt=400,Ft=2e3,It=(0,e.defineComponent)({__name:`VddTaskbar`,props:{visibility:{default:`always`},cache:{},defaultIcon:{default:void 0}},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>Nt);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},Pt)};(0,e.watch)(()=>a.state.minimized.length,(e,t)=>{r.visibility!==`autohide`||e<=(t??0)||(h(),l=setTimeout(()=>{s.value=!1},Ft))});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`,Dt)):(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,Ot)):(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`,At,[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`,jt,[...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,kt))),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,Mt)):(0,e.createCommentVNode)(``,!0),c.value?((0,e.openBlock)(),(0,e.createBlock)(Tt,{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,Et)):(0,e.createCommentVNode)(``,!0)}}),Lt=[`data-vdd-skin`,`data-color-scheme`,`dir`],Rt={class:`vdd-panel-port`,"aria-hidden":`true`},zt=(0,e.defineComponent)({__name:`VddDesktop`,props:{skin:{default:`vscode`},animations:{type:Boolean,default:!0},taskbar:{default:`always`},defaultPanelIcon:{default:void 0}},emits:[`taskbarContextMenu`],setup(t,{emit:n}){let r=t,i=n,a=K(),o=Oe(),s=new me;V(s);let c=Ce(a),l=typeof document>`u`,u=(0,e.computed)(()=>l?[]:Object.keys(a.state.panels));(0,e.watch)(u,(e,t)=>{for(let n of t??[])e.includes(n)||s.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
2
|
Add this to your entry file (main.ts):
|
|
3
3
|
import 'vue-dockable-desktop/styles.css'
|
|
4
|
-
Without it the workspace renders as a black rectangle, with no other error.`)}catch{}});let d=(0,e.useTemplateRef)(`viewport`),f=(0,e.ref)({width:1024,height:768}),p=null,m=!1;(0,e.watch)(d,e=>{p?.disconnect(),!(!e||typeof ResizeObserver>`u`)&&(p=new ResizeObserver(t=>{let n=t[0]?.contentRect;if(n&&(f.value={width:Math.max(100,n.width),height:Math.max(100,n.height)},process.env.NODE_ENV!==`production`&&n.height<10&&!m)){m=!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; for the simple case, the .vdd-fill-viewport class works on <VddDesktop> itself or on its container.`)}}),p.observe(e))},{immediate:!0,flush:`post`}),(0,e.watch)([f,()=>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=fe(r,e,n.anchor!=null);i!==r&&a.updateFloatingPosition(n.id,i)}},{deep:!0});function h(e,t){let n=a.state.panels[e];if(n){let r=a.registry.get(n.component)?.defaultOptions??{},i=Te(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 g=()=>{ge(s,{skin:r.skin,noAnimations:r.animations===!1,zBase:a.config.zIndexBase})};return(0,e.watch)(()=>[r.skin,r.animations,a.config.zIndexBase],g),(0,e.onMounted)(g),(0,e.onBeforeUnmount)(()=>{p?.disconnect(),_e(s),s.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,"data-color-scheme":(0,e.unref)(o),dir:(0,e.unref)(a).state.dir},[(0,e.createElementVNode)(`div`,{ref_key:`viewport`,ref:f,class:`vdd-workspace-viewport`},[(0,e.unref)(c).dragging.value?((0,e.openBlock)(),(0,e.createBlock)(ht,{key:0})):(0,e.createCommentVNode)(``,!0),(0,e.createVNode)(qe,{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)(ft,{key:t.id,window:t,viewport:f.value},null,8,[`window`,`viewport`]))),128))],512),(0,e.createVNode)(Ft,{visibility:t.taskbar,cache:(0,e.unref)(s),"default-icon":t.defaultPanelIcon,onContextMenu:h},null,8,[`visibility`,`cache`,`default-icon`]),(0,e.createVNode)(gt),(0,e.createElementVNode)(`div`,Lt,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(u.value,t=>((0,e.openBlock)(),(0,e.createBlock)($e,{key:t,"panel-id":t,cache:(0,e.unref)(s)},null,8,[`panel-id`,`cache`]))),128))])],10,It))}}),zt=new WeakSet;function Bt(e){zt.add(e),e.preventDefault()}function Vt(e){return e.defaultPrevented||zt.has(e)}var Ht=[`dir`],Ut={key:0,class:`vdd-context-menu__separator`,role:`separator`},Wt=[`title`,`data-vdd-menu-submenu`,`aria-expanded`,`onClick`,`onPointerenter`,`onPointerleave`],Gt={class:`vdd-context-menu__label`},Kt=[`disabled`,`title`,`data-cy-action`,`data-vdd-menu-item`,`role`,`aria-checked`,`onClick`,`onPointerenter`,`onPointerleave`],qt=[`aria-hidden`],Jt={class:`vdd-context-menu__label`},Yt={width:`12`,height:`12`,viewBox:`0 0 12 12`,fill:`none`},Xt=[`fill`],Zt={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`},Qt=[`dir`],$t={key:0,class:`vdd-context-menu__separator`,role:`separator`},en=[`disabled`,`data-vdd-menu-item`,`onClick`],tn=[`aria-hidden`],nn={class:`vdd-context-menu__label`},rn=150,an=200,on=(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.useTemplateRef)(`customRoot`),o=(0,e.computed)(()=>n.contextMenu.value),s=(0,e.ref)({x:0,y:0}),c=(0,e.ref)(null),l=(0,e.ref)({x:0,y:0}),u=new Map,d,f,p=()=>{clearTimeout(d),clearTimeout(f)},m=null;function h(e=!1){p(),c.value=null,n.closeContextMenu(),e&&m?.isConnected&&m.focus({preventScroll:!0}),m=null}(0,e.watch)(o,async t=>{if(!t){c.value=null;return}m=document.activeElement instanceof HTMLElement?document.activeElement:null,s.value={x:t.x,y:t.y},u.clear(),c.value=null,await(0,e.nextTick)();let n=r.value;if(!n)return;let i=n.getBoundingClientRect();s.value=k({x:t.x,y:t.y},{width:i.width,height:i.height},{width:window.innerWidth,height:window.innerHeight}),t.initialFocus===`first-item`?g(n)[0]?.focus({preventScroll:!0}):n.focus({preventScroll:!0})});let g=e=>Array.from(e.querySelectorAll(`button[role^="menuitem"]:not(:disabled)`));function _(e){if(e.key===`Tab`){h(!0);return}if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;e.preventDefault();let t=g(e.currentTarget);if(t.length===0)return;let n=t.indexOf(document.activeElement),r=t.length-1;t[e.key===`Home`?0:e.key===`End`?r:e.key===`ArrowDown`?(n+1)%t.length:n<0?r:(n-1+t.length)%t.length].focus({preventScroll:!0})}(0,e.watch)(o,e=>{e?(document.addEventListener(`pointerdown`,v,{capture:!0}),window.addEventListener(`click`,v),document.addEventListener(`keydown`,y,{capture:!0})):(document.removeEventListener(`pointerdown`,v,{capture:!0}),window.removeEventListener(`click`,v),document.removeEventListener(`keydown`,y,{capture:!0}))});function v(e){let t=e.target;if(!(t instanceof Node)){h();return}r.value?.contains(t)||i.value?.contains(t)||a.value?.contains(t)||h()}function y(e){e.key===`Escape`&&!Vt(e)&&(Bt(e),h(!0))}(0,e.onBeforeUnmount)(()=>{p(),document.removeEventListener(`pointerdown`,v,{capture:!0}),window.removeEventListener(`click`,v),document.removeEventListener(`keydown`,y,{capture:!0})});let b=e=>e,x=e=>{let t=b(e).checkbox;return!!t&&t.active!==!1},S=e=>x(e)&&b(e).checkbox.value===!0,C=e=>b(e).disabled===!0||x(e)&&b(e).checkbox.enabled===!1;function w(e,t){let n=t;n?u.set(e,n):u.delete(e)}function T(e){C(e)||(b(e).action?.(),h(!0))}function E(e,t){clearTimeout(f),c.value!==null&&c.value!==e&&(clearTimeout(d),c.value=null),O(t)&&t.items?.length?(clearTimeout(d),d=setTimeout(()=>D(e),rn)):(clearTimeout(d),c.value!==null&&(f=setTimeout(()=>{c.value=null},an)))}function D(e){let t=u.get(e);if(t){let e=t.getBoundingClientRect();l.value=n.state.isRtl?{x:window.innerWidth-e.left+2,y:e.top}:{x:e.right+2,y:e.top}}c.value=e}function ee(e){p(),D(e)}function te(e){clearTimeout(d),O(e)&&e.items?.length&&(f=setTimeout(()=>{c.value=null},an))}let re=(0,e.computed)(()=>{let e=c.value;if(e===null||!o.value)return[];let t=o.value.items[e];return t&&O(t)?t.items??[]:[]}),ie=(0,e.computed)(()=>n.state.isRtl?{position:`fixed`,right:`${l.value.x}px`,top:`${l.value.y}px`}:{position:`fixed`,left:`${l.value.x}px`,top:`${l.value.y}px`});return(l,u)=>o.value?((0,e.openBlock)(),(0,e.createBlock)(e.Teleport,{key:0,to:`body`},[l.$slots.default?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,ref_key:`customRoot`,ref:a,"data-vdd-menu-custom":``,style:{display:`contents`}},[(0,e.renderSlot)(l.$slots,`default`,{items:o.value.items,x:s.value.x,y:s.value.y,close:h})],512)):((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:`${s.value.x}px`,top:`${s.value.y}px`}),dir:(0,e.unref)(n).state.dir,"data-vdd-menu":``,role:`menu`,tabindex:`-1`,"aria-orientation":`vertical`,onKeydown:_},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(o.value.items,(t,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:r},[(0,e.unref)(ne)(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`hr`,Ut)):(0,e.unref)(O)(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,ref_for:!0,ref:e=>w(r,e),type:`button`,class:(0,e.normalizeClass)([`vdd-context-menu__item vdd-context-menu__item--has-submenu`,{"vdd-context-menu__item--submenu-open":c.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`,tabindex:`-1`,"aria-haspopup":`menu`,"aria-expanded":c.value===r,onClick:e=>ee(r),onPointerenter:e=>E(r,t),onPointerleave:e=>te(t)},[u[2]||=(0,e.createElementVNode)(`span`,{class:`vdd-context-menu__icon`,"aria-hidden":`true`},null,-1),(0,e.createElementVNode)(`span`,Gt,(0,e.toDisplayString)((0,e.unref)(n).format(t.label)),1),u[3]||=(0,e.createElementVNode)(`span`,{class:`vdd-context-menu__chevron`,"aria-hidden":`true`},`›`,-1)],42,Wt)):((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:2,ref_for:!0,ref:e=>w(r,e),type:`button`,class:(0,e.normalizeClass)([`vdd-context-menu__item`,{"vdd-context-menu__item--disabled":C(t)}]),disabled:C(t),title:b(t).title?(0,e.unref)(n).format(b(t).title):void 0,"data-cy-action":b(t).cyAction,"data-vdd-menu-item":(0,e.unref)(n).format(b(t).label),role:x(t)?`menuitemcheckbox`:`menuitem`,tabindex:`-1`,"aria-checked":x(t)?S(t):void 0,onClick:e=>T(t),onPointerenter:e=>E(r,t),onPointerleave:e=>te(t)},[(0,e.createElementVNode)(`span`,{class:`vdd-context-menu__icon`,"aria-hidden":!b(t).icon},[b(t).icon?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(b(t).icon),{key:0})):(0,e.createCommentVNode)(``,!0)],8,qt),(0,e.createElementVNode)(`span`,Jt,(0,e.toDisplayString)((0,e.unref)(n).format(b(t).label)),1),x(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,{key:0,class:(0,e.normalizeClass)([`vdd-context-menu__checkbox`,{"vdd-context-menu__checkbox--checked":S(t)}]),"aria-hidden":`true`},[((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,Yt,[(0,e.createElementVNode)(`rect`,{x:`0.75`,y:`0.75`,width:`10.5`,height:`10.5`,rx:`2`,fill:S(t)?`currentColor`:`none`,stroke:`currentColor`,"stroke-width":`1.5`},null,8,Xt),S(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,Zt)):(0,e.createCommentVNode)(``,!0)]))],2)):(0,e.createCommentVNode)(``,!0)],42,Kt))],64))),128))],46,Ht)),c.value!==null&&re.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)(ie.value),dir:(0,e.unref)(n).state.dir,"data-vdd-submenu":``,role:`menu`,tabindex:`-1`,onKeydown:_,onPointerenter:u[0]||=e=>p(),onPointerleave:u[1]||=e=>c.value=null},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(re.value,(t,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:r},[(0,e.unref)(ne)(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`hr`,$t)):((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,type:`button`,class:(0,e.normalizeClass)([`vdd-context-menu__item`,{"vdd-context-menu__item--disabled":C(t)}]),disabled:C(t),"data-vdd-menu-item":(0,e.unref)(n).format(b(t).label),role:`menuitem`,tabindex:`-1`,onClick:e=>T(t)},[(0,e.createElementVNode)(`span`,{class:`vdd-context-menu__icon`,"aria-hidden":!b(t).icon},[b(t).icon?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(b(t).icon),{key:0})):(0,e.createCommentVNode)(``,!0)],8,tn),(0,e.createElementVNode)(`span`,nn,(0,e.toDisplayString)((0,e.unref)(n).format(b(t).label)),1)],10,en))],64))),128))],46,Qt)):(0,e.createCommentVNode)(``,!0)])):(0,e.createCommentVNode)(``,!0)}}),sn=e=>`custom`in e&&e.custom===!0,cn=e=>!sn(e)&&!(`onClick`in e),ln=e=>!sn(e)&&`onClick`in e,un=e=>e==null?[]:Array.isArray(e)?e:[e],dn=Symbol(`vdd-sidebar`),fn=Symbol(`vdd-sidebar-tab`),pn={key:0,class:`vdd-sidebar-tabs-list`},mn=[`title`,`aria-pressed`,`data-vdd-sidebar-tab`,`onClick`],hn=[`disabled`,`title`,`aria-label`,`data-vdd-rail-action`,`onClick`],gn=[`title`,`aria-pressed`,`data-vdd-sidebar-tab`,`onClick`],_n=56,vn=(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?`${_n}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:`${_n}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`,pn,[((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,mn))),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)(sn)(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)(ln)(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,hn)):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,gn))],64))),128))],2)):(0,e.createCommentVNode)(``,!0)],64))),64))],6)],4))}}),yn=(0,e.defineComponent)({__name:`VddSidebarTabScope`,props:{tabId:{}},emits:[`close`,`open`],setup(t,{emit:n}){let r=t,i=n;return(0,e.provide)(fn,{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`)]))}});function bn(){let t=(0,e.inject)(F,null);return e=>t?t.format(t.messages[e]):ae(ie[e])}var xn=[`data-vdd-sidebar-pane`],Sn={key:1,class:`vdd-sidebar-drawer-header`},Cn={class:`vdd-sidebar-header-title`},wn=[`title`,`aria-label`],Tn=(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=bn(),i=n;return(n,a)=>((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,o=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:o.id,class:`vdd-sidebar-drawer-pane`,style:(0,e.normalizeStyle)({display:t.activeTabId===o.id?`flex`:`none`}),"data-vdd-sidebar-pane":o.id},[t.headerOverridden?(0,e.renderSlot)(n.$slots,`header`,{tab:o,close:()=>i(`close`),open:()=>i(`open`,o.id)},void 0,void 0,0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Sn,[(0,e.createElementVNode)(`span`,Cn,(0,e.toDisplayString)(o.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:(0,e.unref)(r)(`close`),"aria-label":(0,e.unref)(r)(`close`),onClick:a[0]||=e=>i(`close`)},[...a[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)]],8,wn)):(0,e.createCommentVNode)(``,!0)])),(0,e.createVNode)(yn,{class:`vdd-sidebar-drawer-body`,"tab-id":o.id,onClose:a[1]||=e=>i(`close`),onOpen:a[2]||=e=>i(`open`,e)},{default:(0,e.withCtx)(()=>[(0,e.renderSlot)(n.$slots,`tab-${o.id}`,{tab:o,close:()=>i(`close`),open:()=>i(`open`,o.id)},()=>[o.component?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(o.component),(0,e.mergeProps)({key:0,ref_for:!0},o.props),null,16)):(0,e.createCommentVNode)(``,!0)])]),_:2},1032,[`tab-id`])],12,xn))),128))],6))}}),En=[`data-vdd-sidebar`,`dir`],Dn={key:3,class:`vdd-sidebar-main`},On=(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)(()=>un(n.headerAction)),l=(0,e.computed)(()=>un(n.footerAction)),u=(0,e.computed)(()=>[...c.value.filter(cn),...n.tabs,...l.value.filter(cn)]),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,r=n.position===`right`!==be(t);S.value=!0,H({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,i)=>{let a=r?i-e:i+e;s.value=Math.max(n.minWidth,Math.min(n.maxWidth,a))},onEnd:()=>{S.value=!1}})}(0,e.provide)(dn,{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;(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.`)))});let D=(0,e.inject)(F,null),ee=(0,e.computed)(()=>D?.state.dir===`rtl`?`rtl`:void 0);return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`vdd-sidebar-layout`,"data-vdd-sidebar":t.position,dir:ee.value},[((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)(vn,{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)(Tn,{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`,Dn,[(0,e.renderSlot)(n.$slots,`default`)])):(0,e.createCommentVNode)(``,!0)],64))),128))],8,En))}}),kn=(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)(dn,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)(On,(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`]))}}),An=e=>!(`type`in e);function jn(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 Mn=[`title`,`aria-label`,`aria-expanded`,`disabled`,`data-vdd-toolbar-item`],Nn=[`dir`,`data-vdd-flyout`],Pn={key:0,class:`vdd-toolbar-group-flyout-sep`,role:`separator`},Fn=[`disabled`,`aria-checked`,`data-vdd-flyout-item`,`onClick`],In={class:`vdd-toolbar-group-flyout-icon`},Ln={class:`vdd-toolbar-group-flyout-label`},Rn={key:0,class:`vdd-toolbar-group-flyout-shortcut`},zn=(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=>An(e)&&e.id===l.value)),d=(0,e.computed)(()=>u.value&&An(u.value)?u.value.icon:n.item.defaultIcon),f=(0,e.computed)(()=>u.value&&An(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=jn(t,n.position,{width:window.innerWidth,height:window.innerHeight},be(i.value))),o.value=!0,await(0,e.nextTick)(),h(),document.addEventListener(`pointerdown`,g,{capture:!0}),document.addEventListener(`keydown`,_,{capture:!0})}function m(){o.value=!1,document.removeEventListener(`pointerdown`,g,{capture:!0}),document.removeEventListener(`keydown`,_,{capture:!0})}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`&&!Vt(e)&&(Bt(e),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,Mn),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)(An)(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:`menuitemradio`,"aria-checked":l.value===t.id,"data-vdd-flyout-item":t.id,onClick:e=>v(t.id,t.onActivate)},[(0,e.createElementVNode)(`span`,In,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))]),(0,e.createElementVNode)(`span`,Ln,(0,e.toDisplayString)(t.label),1),t.shortcut?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Rn,(0,e.toDisplayString)(t.shortcut),1)):(0,e.createCommentVNode)(``,!0)],10,Fn)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Pn))],64))),128))],14,Nn)])):(0,e.createCommentVNode)(``,!0)],64))}}),Bn=[`inert`,`data-vdd-toolbar`,`aria-orientation`],Vn={key:0,class:`vdd-toolbar-separator`,role:`separator`},Hn=[`title`,`aria-label`,`disabled`,`data-vdd-toolbar-item`,`onClick`],Un=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-vdd-toolbar-item`,`onClick`],Wn=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-vdd-toolbar-item`,`onClick`],Gn=(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,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`vdd-toolbar-strip`,[`vdd-${t.position}`,{"vdd-toolbar-strip--collapsed":r.value===!1}]]),style:(0,e.normalizeStyle)(o.value),inert:r.value===!1||void 0,"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`,Vn)):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,Hn)):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,Un)):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,Wn)):n.type===`group`?((0,e.openBlock)(),(0,e.createBlock)(zn,{key:4,item:n,position:t.position},null,8,[`item`,`position`])):(0,e.createCommentVNode)(``,!0)],64))),128))],14,Bn))}}),J=new Map,Kn=0;function qn(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||Vt(e))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;else if(!u(t.id))return;Bt(e),s()}let l=0;(0,e.onMounted)(()=>{l=++Kn,J.set(i().id,l),document.addEventListener(`keydown`,c)}),(0,e.onBeforeUnmount)(()=>{J.get(i().id)===l&&J.delete(i().id),document.removeEventListener(`keydown`,c)});function u(e){let t=[r.state.leftPanel,r.state.rightPanel].filter(t=>t!==null&&t.id!==e),n=J.get(e)??0;return t.every(e=>(J.get(e.id)??0)<n)}return Ye({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),title:(0,e.computed)(()=>i().options.title??i().id),dirty:(0,e.computed)(()=>i().dirty),onBeforeClose:e=>r.registerCloseGuard(i().id,e),overlay:!0}),{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 Jn=[`title`,`aria-label`],Yn=(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,Jn)):(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))}}),Xn=[`dir`,`data-vdd-side-panel`],Zn=(0,e.defineComponent)({__name:`VddSidePanelHost`,props:{instance:{},position:{},defaultWidth:{}},setup(t){let n=t,r=K(),{displayTitle:i,icon:a,close:o,bodyPadding:s}=qn(()=>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)(Yn,{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,Xn))}}),Qn=(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)(Zn,{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)(Zn,{key:a.value.id,instance:a.value,position:`right`,"default-width":t.defaultWidth},null,8,[`instance`,`default-width`])):(0,e.createCommentVNode)(``,!0)],64))}}),$n=[`dir`,`data-vdd-modal`],er=(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}=qn(()=>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)(Yn,{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,$n))}}),tr=[`data-vdd-dialog-icon`],nr={key:1,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},rr={key:0,d:`M5 8l2 2 4-4`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},ir={key:1,d:`M5.5 5.5l5 5M10.5 5.5l-5 5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},ar={key:2,d:`M8 5v.01M8 7.5v3.5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},or=(0,e.defineComponent)({__name:`VddDialogIcon`,props:{icon:{},type:{},question:{type:Boolean}},setup(t){return(n,r)=>t.icon===null?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:(0,e.normalizeClass)([`vdd-dialog-icon`,`vdd-dialog-icon-${t.type}`]),"data-vdd-dialog-icon":t.icon===void 0?`default`:`custom`},[t.icon?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon),{key:0})):((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,nr,[t.question?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:0},[r[0]||=(0,e.createElementVNode)(`circle`,{cx:`8`,cy:`8`,r:`7`,stroke:`currentColor`,"stroke-width":`1.5`},null,-1),r[1]||=(0,e.createElementVNode)(`path`,{d:`M6.25 6.25a1.75 1.75 0 1 1 2.6 1.53c-.5.28-.85.7-.85 1.27v.2M8 11.25v.01`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)],64)):t.type===`warning`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[r[2]||=(0,e.createElementVNode)(`path`,{d:`M8 2.5L14 13.5H2L8 2.5z`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linejoin":`round`},null,-1),r[3]||=(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:2},[r[4]||=(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`,rr)):t.type===`danger`?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,ir)):((0,e.openBlock)(),(0,e.createElementBlock)(`path`,ar))],64))]))],10,tr))}}),sr={class:`vdd-dialog-content`},cr={class:`vdd-confirmation-message`},lr={class:`vdd-confirmation-actions`},ur=(0,e.defineComponent)({__name:`VddConfirm`,props:{message:{},alert:{default:void 0},alertType:{default:`info`},yesNo:{type:Boolean,default:!1},onOk:{type:Function,default:void 0},onCancel:{type:Function,default:void 0},onSettled:{type:Function,default:void 0},icon:{default:void 0}},setup(t){let n=t,r=K(),i=q(),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`,sr,[(0,e.createVNode)(or,{icon:t.icon,type:t.alertType,question:``},null,8,[`icon`,`type`]),(0,e.createElementVNode)(`div`,cr,(0,e.toDisplayString)((0,e.unref)(r).format(t.message)),1)]),(0,e.createElementVNode)(`div`,lr,[(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))}}),dr=(0,e.defineComponent)({__name:`VddModals`,setup(t){let n=K(),{overlays:r}=n;function i(e){return new Promise(t=>{r.openModal(ur,{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)(er,{key:t.id,instance:t,index:n},null,8,[`instance`,`index`]))),128))}}),fr={duration:5e3,closable:!0},Y=(0,e.reactive)({items:[],adapter:null,defaults:{...fr}}),X=new Set,pr=0;function mr(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function hr(e,t,n,r){let i=mr(r);if(X.has(t)){e.update(t,n,{...i,id:t});return}X.add(t),e.show(t,n,{type:`info`,duration:Y.defaults.duration,closable:Y.defaults.closable,...i,id:t})}function Z(e,t={}){let n=t.id??`vdd-toast-${++pr}`,r={...t,id:n};if(Y.adapter)return hr(Y.adapter,n,e,t),n;let i=Y.items.find(e=>e.id===n);return i?(i.message=e,i.options={...i.options,...r},i.exiting=!1,i.revision++,n):(Y.items.push({id:n,message:e,options:r,exiting:!1,revision:0}),n)}function gr(e){let t=Y.items.find(t=>t.id===e);t&&!t.exiting&&(t.exiting=!0,t.options.onClose?.())}function _r(e){let t=Y.items.findIndex(t=>t.id===e);t!==-1&&Y.items.splice(t,1)}function vr(e){if(Y.adapter){e===void 0?X.clear():X.delete(e),Y.adapter.dismiss(e);return}if(e===void 0){for(let e of[...Y.items])gr(e.id);return}gr(e)}var yr=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:vr,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 br(){Y.items.splice(0),Y.adapter=null,Y.defaults={...fr},X.clear()}function xr(t,n){if(Y.defaults={...n},(0,e.toRaw)(Y.adapter)===(0,e.toRaw)(t)||(Y.adapter=t,X.clear(),!t))return;let r=Y.items.splice(0).filter(e=>!e.exiting);for(let e of r)hr(t,e.id,e.message,e.options)}var Sr={class:`vdd-toast__icon`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},Cr={key:0,d:`M5 8l2 2 4-4`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},wr={key:1,d:`M5.5 5.5l5 5M10.5 5.5l-5 5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},Tr={key:2,d:`M8 5v.01M8 7.5v3.5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},Er=(0,e.defineComponent)({__name:`VddToastIcon`,props:{type:{}},setup(t){return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,Sr,[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`,Cr)):t.type===`error`?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,wr)):((0,e.openBlock)(),(0,e.createElementBlock)(`path`,Tr))],64))]))}}),Dr=[`data-vdd-toast`],Or=[`aria-label`],kr=(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=bn(),i=t,a=n,o=(0,e.useTemplateRef)(`card`),s=(0,e.useTemplateRef)(`body`),c=(0,e.computed)(()=>i.toast.options.type??`info`),l=(0,e.computed)(()=>i.toast.options.duration??i.defaultDuration),u=(0,e.computed)(()=>i.toast.options.closable??i.defaultClosable),d=(0,e.computed)(()=>i.toast.options.icon??null),f=(0,e.ref)(i.animation===`none`?`vdd-toast--visible`:i.animation===`fade`?`vdd-toast--fade-entering`:i.isLeft?`vdd-toast--entering-left`:`vdd-toast--entering`),p=(0,e.ref)(!1),m=null,h=0,g=0;function _(e){e<=0||(g=Date.now(),m=setTimeout(()=>gr(i.toast.id),e))}function v(){m&&=(clearTimeout(m),null)}(0,e.watch)([l,()=>i.toast.revision],()=>{v(),h=l.value,_(l.value)},{immediate:!0});function y(){i.pauseOnHover&&l.value!==0&&m&&(v(),h=Math.max(0,h-(Date.now()-g)),p.value=!0)}function b(){i.pauseOnHover&&l.value!==0&&(p.value=!1,_(h))}let x=null;function S(){let e=o.value;e&&!i.toast.exiting&&(e.style.maxHeight=`${e.scrollHeight}px`)}(0,e.onMounted)(()=>{S(),typeof ResizeObserver<`u`&&s.value&&(x=new ResizeObserver(S),x.observe(s.value)),i.animation!==`none`&&requestAnimationFrame(()=>{f.value=`vdd-toast--visible`})});let C=null;(0,e.watch)(()=>i.toast.exiting,e=>{if(e){if(v(),x?.disconnect(),x=null,i.animation===`none`||!o.value){a(`exited`,i.toast.id);return}C=setTimeout(()=>a(`exited`,i.toast.id),520)}},{immediate:!0});function w(e){i.toast.exiting&&e.propertyName===`max-height`&&a(`exited`,i.toast.id)}return(0,e.onBeforeUnmount)(()=>{v(),C&&clearTimeout(C),x?.disconnect()}),(n,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`card`,ref:o,role:`status`,"aria-live":`polite`,class:(0,e.normalizeClass)([`vdd-toast`,[`vdd-toast--${c.value}`,f.value,{"vdd-toast--exiting":t.toast.exiting,"vdd-toast--paused":p.value}]]),"data-vdd-toast":t.toast.id,onMouseenter:y,onMouseleave:b,onTransitionend:w},[d.value?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(d.value),{key:0})):((0,e.openBlock)(),(0,e.createBlock)(Er,{key:1,type:c.value},null,8,[`type`])),(0,e.createElementVNode)(`div`,{ref_key:`body`,ref:s,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),u.value?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:2,type:`button`,class:`vdd-toast__close`,"aria-label":(0,e.unref)(r)(`closeNotification`),"data-vdd-toast-close":``,onClick:i[0]||=n=>(0,e.unref)(gr)(t.toast.id)},[...i[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)]],8,Or)):(0,e.createCommentVNode)(``,!0),t.showProgress&&l.value>0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:3,class:`vdd-toast__progress`,style:(0,e.normalizeStyle)({animationDuration:`${l.value}ms`})},null,4)):(0,e.createCommentVNode)(``,!0)],42,Dr))}}),Ar=[`dir`,`aria-label`],jr=(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:{default:void 0}},setup(t){let n=bn(),r=t;(0,e.watch)(()=>[r.adapter,r.defaultDuration,r.defaultClosable],([e,t,n])=>xr(e??null,{duration:t,closable:n}),{immediate:!0}),(0,e.onBeforeUnmount)(()=>{r.adapter&&(0,e.toRaw)(Y.adapter)===(0,e.toRaw)(r.adapter)&&xr(null,{duration:r.defaultDuration,closable:r.defaultClosable})});let i=(0,e.computed)(()=>{let e=[],t=0;for(let n of Y.items){if(n.exiting){e.push(n);continue}if(t>=r.maxVisible)break;e.push(n),t++}return r.newestOnTop?[...e].reverse():e});(0,e.watch)(()=>Y.items.map(e=>`${e.id}:${e.exiting}`).join(`,`),()=>{let e=new Set(i.value.map(e=>e.id));for(let t of[...Y.items])t.exiting&&!e.has(t.id)&&_r(t.id)},{immediate:!0});let a=(0,e.computed)(()=>r.position.endsWith(`left`)),o=(0,e.inject)(F,null),s=(0,e.computed)(()=>o?.state.dir===`rtl`?`rtl`:void 0);return(r,o)=>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`}),dir:s.value,role:`region`,"aria-label":(0,e.unref)(n)(`notifications`),"aria-live":`polite`,"data-vdd-toasts":``},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(i.value,n=>((0,e.openBlock)(),(0,e.createBlock)(kr,{key:n.id,toast:n,"is-left":a.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)(_r)},null,8,[`toast`,`is-left`,`show-progress`,`pause-on-hover`,`animation`,`default-duration`,`default-closable`,`onExited`]))),128))],14,Ar)]))}}),Mr={class:`vdd-dialog-content`},Nr={class:`vdd-confirmation-message`},Pr={class:`vdd-confirmation-actions`},Fr=(0,e.defineComponent)({__name:`VddAlert`,props:{message:{},alertType:{default:`info`},icon:{default:void 0},okLabel:{type:[String,Object,Function],default:void 0},onSettled:{type:Function,default:void 0}},setup(t){let n=t,r=K(),i=q(),a=(0,e.useTemplateRef)(`okButton`),o=!1;function s(){o||(o=!0,n.onSettled?.())}function c(){s(),i.close({force:!0})}return(0,e.onMounted)(()=>{i.setIcon(void 0),a.value?.focus({preventScroll:!0})}),(0,e.onBeforeUnmount)(()=>s()),(n,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(`form`,{class:`vdd-confirmation-form-body`,onSubmit:(0,e.withModifiers)(c,[`prevent`])},[(0,e.createElementVNode)(`div`,Mr,[(0,e.createVNode)(or,{icon:t.icon,type:t.alertType},null,8,[`icon`,`type`]),(0,e.createElementVNode)(`div`,Nr,(0,e.toDisplayString)((0,e.unref)(r).format(t.message)),1)]),(0,e.createElementVNode)(`div`,Pr,[(0,e.createElementVNode)(`button`,{ref_key:`okButton`,ref:a,type:`submit`,class:`vdd-btn vdd-btn-sm vdd-btn-primary`,"data-vdd-alert-ok":``},(0,e.toDisplayString)((0,e.unref)(r).format(t.okLabel??(0,e.unref)(r).messages.ok)),513)])],32))}}),Q=e=>e===`width`||e===`both`,$=e=>e===`height`||e===`both`,Ir=(e,t)=>t===`inline`?$(e)?`both`:`width`:Q(e)?`both`:`height`,Lr=(e,t)=>t===`inline`?e===`both`?`height`:Q(e)?null:e:e===`both`?`width`:$(e)?null:e,Rr=(e,t)=>$(t)?[]:Q(t)?e.startsWith(`top-`)?[`top-left`,`top-right`]:[`bottom-left`,`bottom-right`]:[e],zr=[`top-left`,`top-right`,`bottom-left`,`bottom-right`];function Br(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 Vr=e=>e.endsWith(`-left`)?e.replace(`-left`,`-right`):e.replace(`-right`,`-left`);function Hr(e,t){return{left:(t?e.inlineEnd:e.inlineStart)+8,right:(t?e.inlineStart:e.inlineEnd)+8,top:e.top,bottom:e.bottom}}function Ur(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 Wr(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 Gr(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 Kr=Symbol(`vdd-panel-overlay`);function qr(){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=(0,e.reactive)({}),f=100,p=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,managedPlacements:d,registerToolbar:(e,t)=>{n[p(e)]=t},unregisterToolbar:e=>{n[p(e)]=0},focus:e=>{f+=1,i[e]=f,r.value=e},dock:(e,t,n)=>{let r=Rr(t,n);for(let t of zr){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 zr)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)}),t in d||(d[t]={anchor:n.anchor??`top-right`,stretch:n.stretch??null}),u.value++},closeManaged:e=>{l.delete(e)&&(delete d[e],u.value++)},closeAllManaged:()=>{if(l.size!==0){l.clear();for(let e of Object.keys(d))delete d[e];u.value++}},managedIds:()=>(u.value,Array.from(l.keys())),setManagedPlacement:(e,t)=>{e in d&&(d[e]=t)}}}function Jr(){let t=(0,e.inject)(Kr,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 Yr(){return(0,e.inject)(Kr,null)}function Xr(){let t=Jr();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 Zr=[`dir`,`data-vdd-widget`],Qr={key:0,class:`vdd-panel-float__icon`},$r={class:`vdd-panel-float__title`},ei=[`title`,`aria-label`],ti={class:`vdd-panel-float__body`},ni=[`data-vdd-widget-resize`,`onPointerdown`],ri=(0,e.defineComponent)({__name:`VddFloatingWidget`,props:(0,e.mergeModels)({widgetId:{},title:{},icon:{default:void 0},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=Yr(),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=()=>Hr(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}:Gr(n.widgetId,Rr(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)(()=>Ur(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=Br(i.getBoundingClientRect(),e.clientX,e.clientY);o.hovered.value=t&&c.value?Vr(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 ee(){w?.moved&&o&&(o.hovered.value=null,o.draggingId.value=null),document.body.classList.remove(`vdd-dragging-active`),w=null}function te(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=Lr(r,`inline`)),n.block&&(r=Lr(r,`block`)),h(Wr(l.value,e,n,c.value),r)}H({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=U(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?Lr(Lr(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=Ir(t,`inline`)),S.block&&(t=Ir(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:ee},[(0,e.createElementVNode)(`div`,{class:`vdd-panel-float__header`,"data-vdd-widget-header":``,onPointerdown:T},[t.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Qr,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,$r,(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,ei)],32),(0,e.createElementVNode)(`div`,ti,[(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=>te(t,e)},null,42,ni))),128))],46,Zr)):(0,e.createCommentVNode)(``,!0)}}),ii=[`data-vdd-dropzone`],ai=(0,e.defineComponent)({__name:`VddPanelOverlay`,setup(t){let n=qr();(0,e.provide)(Kr,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),placement:n.managedPlacements[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)(zr),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,ii))),128)):(0,e.createCommentVNode)(``,!0),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(i.value,({id:t,widget:r,placement:i})=>((0,e.openBlock)(),(0,e.createBlock)(ri,{key:t,"widget-id":t,title:r.title,icon:r.icon,open:!0,placement:i,width:r.width??320,height:r.height??240,"onUpdate:open":r=>{r||(0,e.unref)(n).closeManaged(t)},"onUpdate:placement":r=>(0,e.unref)(n).setManagedPlacement(t,r)},{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`,`onUpdate:placement`]))),128))],2))}}),oi=[`data-variant`,`data-btn-variant`,`data-vdd-panel-toolbar`,`aria-orientation`],si=(0,e.defineComponent)({__name:`VddPanelToolbar`,props:{position:{},variant:{default:`transparent`},buttonVariant:{default:`ghost`},buttonSize:{default:void 0}},setup(t){let n=t,r=Jr(),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,oi))}}),ci=[`title`,`aria-label`,`disabled`,`data-variant`],li=(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,ci))}}),ui=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-variant`],di=(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,ui))}}),fi={class:`vdd-panel-toolbar__sep`,"aria-hidden":`true`},pi=(0,e.defineComponent)({__name:`VddToolbarSeparator`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,fi))}}),mi={class:`vdd-panel-toolbar__spacer`,"aria-hidden":`true`},hi=(0,e.defineComponent)({__name:`VddToolbarSpacer`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,mi))}}),gi={class:`vdd-panel-toolbar__item`},_i=(0,e.defineComponent)({__name:`VddToolbarItem`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,gi,[(0,e.renderSlot)(t.$slots,`default`)]))}}),vi={class:`vdd-panel-toolbar__center`},yi=(0,e.defineComponent)({__name:`VddToolbarCenter`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,vi,[(0,e.renderSlot)(t.$slots,`default`)]))}}),bi=[`title`,`aria-label`],xi=[`placeholder`],Si={key:0,class:`vdd-panel-toolbar-search__group`},Ci=[`data-vdd-search-result`,`onClick`],wi={key:0,class:`vdd-panel-toolbar-search__item-icon`},Ti={class:`vdd-panel-toolbar-search__item-label`},Ei={key:1,class:`vdd-panel-toolbar-search__item-desc`},Di=(0,e.defineComponent)({__name:`VddToolbarSearch`,props:{placeholder:{default:void 0},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 _(e){Vt(e)||(Bt(e),g())}function v(){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 y(){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,v()}catch{}},r.debounce)}function b(e){i(`select`,e),g()}function x(e){let t=e.relatedTarget;t instanceof Node&&o.value?.contains(t)||g()}let S=(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:x},[(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,bi),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:y,onKeydown:(0,e.withKeys)(_,[`esc`])},null,40,xi)),[[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)(S.value,({group:t,items:n})=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:t||`__default__`},[t?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Si,(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=>b(t)},[t.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,wi,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,Ti,(0,e.toDisplayString)(t.label),1),t.description?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Ei,(0,e.toDisplayString)(t.description),1)):(0,e.createCommentVNode)(``,!0)],8,Ci))),128))],64))),128))],36)])):(0,e.createCommentVNode)(``,!0)],34))}});function Oi(){let e=K();return t=>e.showContextMenu(t)}function ki(t){let n=K(),{id:r}=q();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 Ai(){let t=(0,e.inject)(dn,null);if(!t)throw Error(`[vue-dockable-desktop] useSidebar() must be used inside a <VddSidebar>.`);return t}function ji(){let t=(0,e.inject)(fn,null);if(!t)throw Error(`[vue-dockable-desktop] useSidebarTab() must be used inside a sidebar tab's content.`);return t}function Mi(){return K().toolbar}function Ni(){let t=K(),{overlays:n}=t;return{stack:(0,e.computed)(()=>n.state.modals),topmost:(0,e.computed)(()=>n.state.modals[n.state.modals.length-1]??null),open:n.openModal,close:(e,t)=>n.requestClose(e,t),closeAll:n.closeAllModals,confirm:({message:e,title:r,alert:i,alertType:a,icon:o,yesNo:s,size:c=`small`})=>new Promise(l=>{n.openModal(ur,{message:e,alert:i,alertType:a,icon:o,yesNo:s,onSettled:l},{title:r??t.messages.confirmTitle,size:c})}),alert:({message:e,title:r,alertType:i,icon:a,okLabel:o,size:s=`small`})=>new Promise(c=>{n.openModal(Fr,{message:e,alertType:i,icon:a,okLabel:o,onSettled:c},{title:r??t.messages.alertTitle,size:s})})}}function Pi(){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 Fi(t){let n=K(),{id:r}=q();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 Ii(){return K().activeContribution}function Li(t){let n=Ii();return(0,e.computed)(()=>M((0,e.toValue)(t),n.value))}function Ri(t,n){let r=Ii();return(0,e.computed)(()=>N((0,e.toValue)(t),r.value,n))}var zi=`1.8.2`;exports.PanelRegistry=D,exports.VddAlert=Fr,exports.VddConfirm=ur,exports.VddContextMenu=on,exports.VddDesktop=Rt,exports.VddFloatingWidget=ri,exports.VddModals=dr,exports.VddPanelOverlay=ai,exports.VddPanelToolbar=si,exports.VddSecondarySidebar=kn,exports.VddSidePanels=Qn,exports.VddSidebar=On,exports.VddToasts=jr,exports.VddToolbar=Gn,exports.VddToolbarButton=li,exports.VddToolbarCenter=yi,exports.VddToolbarItem=_i,exports.VddToolbarSearch=Di,exports.VddToolbarSeparator=pi,exports.VddToolbarSpacer=hi,exports.VddToolbarToggle=di,exports.WORKSPACE_KEY=F,exports.clampFloatingRect=fe,exports.computeResizedRect=U,exports.createWorkspace=I,exports.defaultMessages=ie,exports.formatLabel=ae,exports.isSerializable=E,exports.mergeSidebarTabs=N,exports.mergeToolbarItems=M,exports.resetToasts=br,exports.sectionToTab=j,exports.startPointerDrag=H,exports.toast=yr,exports.useActiveContribution=Ii,exports.useColorScheme=Oe,exports.useContextMenu=Oi,exports.useFloatingWidgets=Xr,exports.useMergedSidebarTabs=Ri,exports.useMergedToolbarItems=Li,exports.useModals=Ni,exports.usePanel=q,exports.usePanelContextMenu=ki,exports.usePanelContribution=Fi,exports.useSidePanels=Pi,exports.useSidebar=Ai,exports.useSidebarTab=ji,exports.useToolbar=Mi,exports.useWorkspace=K,exports.version=zi;
|
|
4
|
+
Without it the workspace renders as a black rectangle, with no other error.`)}catch{}});let d=(0,e.useTemplateRef)(`viewport`),f=(0,e.ref)({width:1024,height:768}),p=null,m=!1;(0,e.watch)(d,e=>{p?.disconnect(),!(!e||typeof ResizeObserver>`u`)&&(p=new ResizeObserver(t=>{let n=t[0]?.contentRect;if(n&&(f.value={width:Math.max(100,n.width),height:Math.max(100,n.height)},process.env.NODE_ENV!==`production`&&n.height<10&&!m)){m=!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; for the simple case, the .vdd-fill-viewport class works on <VddDesktop> itself or on its container.`)}}),p.observe(e))},{immediate:!0,flush:`post`}),(0,e.watch)([f,()=>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=fe(r,e,n.anchor!=null);i!==r&&a.updateFloatingPosition(n.id,i)}},{deep:!0});function h(e,t){let n=a.state.panels[e];if(n){let r=a.registry.get(n.component)?.defaultOptions??{},i=Te(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 g=()=>{ge(s,{skin:r.skin,noAnimations:r.animations===!1,zBase:a.config.zIndexBase})};return(0,e.watch)(()=>[r.skin,r.animations,a.config.zIndexBase],g),(0,e.onMounted)(g),(0,e.onBeforeUnmount)(()=>{p?.disconnect(),_e(s),s.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,"data-color-scheme":(0,e.unref)(o),dir:(0,e.unref)(a).state.dir},[(0,e.createElementVNode)(`div`,{ref_key:`viewport`,ref:f,class:`vdd-workspace-viewport`},[(0,e.unref)(c).dragging.value?((0,e.openBlock)(),(0,e.createBlock)(gt,{key:0})):(0,e.createCommentVNode)(``,!0),(0,e.createVNode)(Je,{node:(0,e.unref)(a).state.gridRoot,path:[]},(0,e.createSlots)({_:2},[n.$slots[`empty-workspace`]?{name:`empty-workspace`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(n.$slots,`empty-workspace`)]),key:`0`}:void 0]),1032,[`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)(pt,{key:t.id,window:t,viewport:f.value},null,8,[`window`,`viewport`]))),128))],512),(0,e.createVNode)(It,{visibility:t.taskbar,cache:(0,e.unref)(s),"default-icon":t.defaultPanelIcon,onContextMenu:h},null,8,[`visibility`,`cache`,`default-icon`]),(0,e.createVNode)(_t),(0,e.createElementVNode)(`div`,Rt,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(u.value,t=>((0,e.openBlock)(),(0,e.createBlock)(et,{key:t,"panel-id":t,cache:(0,e.unref)(s)},null,8,[`panel-id`,`cache`]))),128))])],10,Lt))}}),Bt=new WeakSet;function Vt(e){Bt.add(e),e.preventDefault()}function Ht(e){return e.defaultPrevented||Bt.has(e)}var Ut=[`dir`],Wt={key:0,class:`vdd-context-menu__separator`,role:`separator`},Gt=[`title`,`data-vdd-menu-submenu`,`aria-expanded`,`onClick`,`onPointerenter`,`onPointerleave`],Kt={class:`vdd-context-menu__label`},qt=[`disabled`,`title`,`data-cy-action`,`data-vdd-menu-item`,`role`,`aria-checked`,`onClick`,`onPointerenter`,`onPointerleave`],Jt=[`aria-hidden`],Yt={class:`vdd-context-menu__label`},Xt={width:`12`,height:`12`,viewBox:`0 0 12 12`,fill:`none`},Zt=[`fill`],Qt={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`},$t=[`dir`],en={key:0,class:`vdd-context-menu__separator`,role:`separator`},tn=[`disabled`,`data-vdd-menu-item`,`onClick`],nn=[`aria-hidden`],rn={class:`vdd-context-menu__label`},an=150,on=200,sn=(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.useTemplateRef)(`customRoot`),o=(0,e.computed)(()=>n.contextMenu.value),s=(0,e.ref)({x:0,y:0}),c=(0,e.ref)(null),l=(0,e.ref)({x:0,y:0}),u=new Map,d,f,p=()=>{clearTimeout(d),clearTimeout(f)},m=null;function h(e=!1){p(),c.value=null,n.closeContextMenu(),e&&m?.isConnected&&m.focus({preventScroll:!0}),m=null}(0,e.watch)(o,async t=>{if(!t){c.value=null;return}m=document.activeElement instanceof HTMLElement?document.activeElement:null,s.value={x:t.x,y:t.y},u.clear(),c.value=null,await(0,e.nextTick)();let n=r.value;if(!n)return;let i=n.getBoundingClientRect();s.value=k({x:t.x,y:t.y},{width:i.width,height:i.height},{width:window.innerWidth,height:window.innerHeight}),t.initialFocus===`first-item`?g(n)[0]?.focus({preventScroll:!0}):n.focus({preventScroll:!0})});let g=e=>Array.from(e.querySelectorAll(`button[role^="menuitem"]:not(:disabled)`));function _(e){if(e.key===`Tab`){h(!0);return}if(![`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(e.key))return;e.preventDefault();let t=g(e.currentTarget);if(t.length===0)return;let n=t.indexOf(document.activeElement),r=t.length-1;t[e.key===`Home`?0:e.key===`End`?r:e.key===`ArrowDown`?(n+1)%t.length:n<0?r:(n-1+t.length)%t.length].focus({preventScroll:!0})}(0,e.watch)(o,e=>{e?(document.addEventListener(`pointerdown`,v,{capture:!0}),window.addEventListener(`click`,v),document.addEventListener(`keydown`,y,{capture:!0})):(document.removeEventListener(`pointerdown`,v,{capture:!0}),window.removeEventListener(`click`,v),document.removeEventListener(`keydown`,y,{capture:!0}))});function v(e){let t=e.target;if(!(t instanceof Node)){h();return}r.value?.contains(t)||i.value?.contains(t)||a.value?.contains(t)||h()}function y(e){e.key===`Escape`&&!Ht(e)&&(Vt(e),h(!0))}(0,e.onBeforeUnmount)(()=>{p(),document.removeEventListener(`pointerdown`,v,{capture:!0}),window.removeEventListener(`click`,v),document.removeEventListener(`keydown`,y,{capture:!0})});let b=e=>e,x=e=>{let t=b(e).checkbox;return!!t&&t.active!==!1},S=e=>x(e)&&b(e).checkbox.value===!0,C=e=>b(e).disabled===!0||x(e)&&b(e).checkbox.enabled===!1;function w(e,t){let n=t;n?u.set(e,n):u.delete(e)}function T(e){C(e)||(b(e).action?.(),h(!0))}function E(e,t){clearTimeout(f),c.value!==null&&c.value!==e&&(clearTimeout(d),c.value=null),O(t)&&t.items?.length?(clearTimeout(d),d=setTimeout(()=>D(e),an)):(clearTimeout(d),c.value!==null&&(f=setTimeout(()=>{c.value=null},on)))}function D(e){let t=u.get(e);if(t){let e=t.getBoundingClientRect();l.value=n.state.isRtl?{x:window.innerWidth-e.left+2,y:e.top}:{x:e.right+2,y:e.top}}c.value=e}function ee(e){p(),D(e)}function te(e){clearTimeout(d),O(e)&&e.items?.length&&(f=setTimeout(()=>{c.value=null},on))}let re=(0,e.computed)(()=>{let e=c.value;if(e===null||!o.value)return[];let t=o.value.items[e];return t&&O(t)?t.items??[]:[]}),ie=(0,e.computed)(()=>n.state.isRtl?{position:`fixed`,right:`${l.value.x}px`,top:`${l.value.y}px`}:{position:`fixed`,left:`${l.value.x}px`,top:`${l.value.y}px`});return(l,u)=>o.value?((0,e.openBlock)(),(0,e.createBlock)(e.Teleport,{key:0,to:`body`},[l.$slots.default?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,ref_key:`customRoot`,ref:a,"data-vdd-menu-custom":``,style:{display:`contents`}},[(0,e.renderSlot)(l.$slots,`default`,{items:o.value.items,x:s.value.x,y:s.value.y,close:h})],512)):((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:`${s.value.x}px`,top:`${s.value.y}px`}),dir:(0,e.unref)(n).state.dir,"data-vdd-menu":``,role:`menu`,tabindex:`-1`,"aria-orientation":`vertical`,onKeydown:_},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(o.value.items,(t,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:r},[(0,e.unref)(ne)(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`hr`,Wt)):(0,e.unref)(O)(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,ref_for:!0,ref:e=>w(r,e),type:`button`,class:(0,e.normalizeClass)([`vdd-context-menu__item vdd-context-menu__item--has-submenu`,{"vdd-context-menu__item--submenu-open":c.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`,tabindex:`-1`,"aria-haspopup":`menu`,"aria-expanded":c.value===r,onClick:e=>ee(r),onPointerenter:e=>E(r,t),onPointerleave:e=>te(t)},[u[2]||=(0,e.createElementVNode)(`span`,{class:`vdd-context-menu__icon`,"aria-hidden":`true`},null,-1),(0,e.createElementVNode)(`span`,Kt,(0,e.toDisplayString)((0,e.unref)(n).format(t.label)),1),u[3]||=(0,e.createElementVNode)(`span`,{class:`vdd-context-menu__chevron`,"aria-hidden":`true`},`›`,-1)],42,Gt)):((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:2,ref_for:!0,ref:e=>w(r,e),type:`button`,class:(0,e.normalizeClass)([`vdd-context-menu__item`,{"vdd-context-menu__item--disabled":C(t)}]),disabled:C(t),title:b(t).title?(0,e.unref)(n).format(b(t).title):void 0,"data-cy-action":b(t).cyAction,"data-vdd-menu-item":(0,e.unref)(n).format(b(t).label),role:x(t)?`menuitemcheckbox`:`menuitem`,tabindex:`-1`,"aria-checked":x(t)?S(t):void 0,onClick:e=>T(t),onPointerenter:e=>E(r,t),onPointerleave:e=>te(t)},[(0,e.createElementVNode)(`span`,{class:`vdd-context-menu__icon`,"aria-hidden":!b(t).icon},[b(t).icon?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(b(t).icon),{key:0})):(0,e.createCommentVNode)(``,!0)],8,Jt),(0,e.createElementVNode)(`span`,Yt,(0,e.toDisplayString)((0,e.unref)(n).format(b(t).label)),1),x(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,{key:0,class:(0,e.normalizeClass)([`vdd-context-menu__checkbox`,{"vdd-context-menu__checkbox--checked":S(t)}]),"aria-hidden":`true`},[((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,Xt,[(0,e.createElementVNode)(`rect`,{x:`0.75`,y:`0.75`,width:`10.5`,height:`10.5`,rx:`2`,fill:S(t)?`currentColor`:`none`,stroke:`currentColor`,"stroke-width":`1.5`},null,8,Zt),S(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,Qt)):(0,e.createCommentVNode)(``,!0)]))],2)):(0,e.createCommentVNode)(``,!0)],42,qt))],64))),128))],46,Ut)),c.value!==null&&re.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)(ie.value),dir:(0,e.unref)(n).state.dir,"data-vdd-submenu":``,role:`menu`,tabindex:`-1`,onKeydown:_,onPointerenter:u[0]||=e=>p(),onPointerleave:u[1]||=e=>c.value=null},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(re.value,(t,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:r},[(0,e.unref)(ne)(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`hr`,en)):((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,type:`button`,class:(0,e.normalizeClass)([`vdd-context-menu__item`,{"vdd-context-menu__item--disabled":C(t)}]),disabled:C(t),"data-vdd-menu-item":(0,e.unref)(n).format(b(t).label),role:`menuitem`,tabindex:`-1`,onClick:e=>T(t)},[(0,e.createElementVNode)(`span`,{class:`vdd-context-menu__icon`,"aria-hidden":!b(t).icon},[b(t).icon?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(b(t).icon),{key:0})):(0,e.createCommentVNode)(``,!0)],8,nn),(0,e.createElementVNode)(`span`,rn,(0,e.toDisplayString)((0,e.unref)(n).format(b(t).label)),1)],10,tn))],64))),128))],46,$t)):(0,e.createCommentVNode)(``,!0)])):(0,e.createCommentVNode)(``,!0)}}),cn=e=>`custom`in e&&e.custom===!0,ln=e=>!cn(e)&&!(`onClick`in e),un=e=>!cn(e)&&`onClick`in e,dn=e=>e==null?[]:Array.isArray(e)?e:[e],fn=Symbol(`vdd-sidebar`),pn=Symbol(`vdd-sidebar-tab`),mn={key:0,class:`vdd-sidebar-tabs-list`},hn=[`title`,`aria-pressed`,`data-vdd-sidebar-tab`,`onClick`],gn=[`disabled`,`title`,`aria-label`,`data-vdd-rail-action`,`onClick`],_n=[`title`,`aria-pressed`,`data-vdd-sidebar-tab`,`onClick`],vn=56,yn=(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?`${vn}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:`${vn}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`,mn,[((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,hn))),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)(cn)(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)(un)(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,gn)):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,_n))],64))),128))],2)):(0,e.createCommentVNode)(``,!0)],64))),64))],6)],4))}}),bn=(0,e.defineComponent)({__name:`VddSidebarTabScope`,props:{tabId:{}},emits:[`close`,`open`],setup(t,{emit:n}){let r=t,i=n;return(0,e.provide)(pn,{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`)]))}});function xn(){let t=(0,e.inject)(F,null);return e=>t?t.format(t.messages[e]):ae(ie[e])}var Sn=[`data-vdd-sidebar-pane`],Cn={key:1,class:`vdd-sidebar-drawer-header`},wn={class:`vdd-sidebar-header-title`},Tn=[`title`,`aria-label`],En=(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=xn(),i=n;return(n,a)=>((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,o=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:o.id,class:`vdd-sidebar-drawer-pane`,style:(0,e.normalizeStyle)({display:t.activeTabId===o.id?`flex`:`none`}),"data-vdd-sidebar-pane":o.id},[t.headerOverridden?(0,e.renderSlot)(n.$slots,`header`,{tab:o,close:()=>i(`close`),open:()=>i(`open`,o.id)},void 0,void 0,0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Cn,[(0,e.createElementVNode)(`span`,wn,(0,e.toDisplayString)(o.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:(0,e.unref)(r)(`close`),"aria-label":(0,e.unref)(r)(`close`),onClick:a[0]||=e=>i(`close`)},[...a[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)]],8,Tn)):(0,e.createCommentVNode)(``,!0)])),(0,e.createVNode)(bn,{class:`vdd-sidebar-drawer-body`,"tab-id":o.id,onClose:a[1]||=e=>i(`close`),onOpen:a[2]||=e=>i(`open`,e)},{default:(0,e.withCtx)(()=>[(0,e.renderSlot)(n.$slots,`tab-${o.id}`,{tab:o,close:()=>i(`close`),open:()=>i(`open`,o.id)},()=>[o.component?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(o.component),(0,e.mergeProps)({key:0,ref_for:!0},o.props),null,16)):(0,e.createCommentVNode)(``,!0)])]),_:2},1032,[`tab-id`])],12,Sn))),128))],6))}}),Dn=[`data-vdd-sidebar`,`dir`],On={key:3,class:`vdd-sidebar-main`},kn=(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)(()=>dn(n.headerAction)),l=(0,e.computed)(()=>dn(n.footerAction)),u=(0,e.computed)(()=>[...c.value.filter(ln),...n.tabs,...l.value.filter(ln)]),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,r=n.position===`right`!==be(t);S.value=!0,H({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,i)=>{let a=r?i-e:i+e;s.value=Math.max(n.minWidth,Math.min(n.maxWidth,a))},onEnd:()=>{S.value=!1}})}(0,e.provide)(fn,{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;(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.`)))});let D=(0,e.inject)(F,null),ee=(0,e.computed)(()=>D?.state.dir===`rtl`?`rtl`:void 0);return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`vdd-sidebar-layout`,"data-vdd-sidebar":t.position,dir:ee.value},[((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)(yn,{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)(En,{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,Dn))}}),An=(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)(fn,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)(kn,(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`]))}}),jn=e=>!(`type`in e);function Mn(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 Nn=[`title`,`aria-label`,`aria-expanded`,`disabled`,`data-vdd-toolbar-item`],Pn=[`dir`,`data-vdd-flyout`],Fn={key:0,class:`vdd-toolbar-group-flyout-sep`,role:`separator`},In=[`disabled`,`aria-checked`,`data-vdd-flyout-item`,`onClick`],Ln={class:`vdd-toolbar-group-flyout-icon`},Rn={class:`vdd-toolbar-group-flyout-label`},zn={key:0,class:`vdd-toolbar-group-flyout-shortcut`},Bn=(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=>jn(e)&&e.id===l.value)),d=(0,e.computed)(()=>u.value&&jn(u.value)?u.value.icon:n.item.defaultIcon),f=(0,e.computed)(()=>u.value&&jn(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=Mn(t,n.position,{width:window.innerWidth,height:window.innerHeight},be(i.value))),o.value=!0,await(0,e.nextTick)(),h(),document.addEventListener(`pointerdown`,g,{capture:!0}),document.addEventListener(`keydown`,_,{capture:!0})}function m(){o.value=!1,document.removeEventListener(`pointerdown`,g,{capture:!0}),document.removeEventListener(`keydown`,_,{capture:!0})}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`&&!Ht(e)&&(Vt(e),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,Nn),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)(jn)(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:`menuitemradio`,"aria-checked":l.value===t.id,"data-vdd-flyout-item":t.id,onClick:e=>v(t.id,t.onActivate)},[(0,e.createElementVNode)(`span`,Ln,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))]),(0,e.createElementVNode)(`span`,Rn,(0,e.toDisplayString)(t.label),1),t.shortcut?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,zn,(0,e.toDisplayString)(t.shortcut),1)):(0,e.createCommentVNode)(``,!0)],10,In)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Fn))],64))),128))],14,Pn)])):(0,e.createCommentVNode)(``,!0)],64))}}),Vn=[`inert`,`data-vdd-toolbar`,`aria-orientation`],Hn={key:0,class:`vdd-toolbar-separator`,role:`separator`},Un=[`title`,`aria-label`,`disabled`,`data-vdd-toolbar-item`,`onClick`],Wn=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-vdd-toolbar-item`,`onClick`],Gn=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-vdd-toolbar-item`,`onClick`],Kn=(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,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`vdd-toolbar-strip`,[`vdd-${t.position}`,{"vdd-toolbar-strip--collapsed":r.value===!1}]]),style:(0,e.normalizeStyle)(o.value),inert:r.value===!1||void 0,"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`,Hn)):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,Un)):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,Wn)):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,Gn)):n.type===`group`?((0,e.openBlock)(),(0,e.createBlock)(Bn,{key:4,item:n,position:t.position},null,8,[`item`,`position`])):(0,e.createCommentVNode)(``,!0)],64))),128))],14,Vn))}}),J=new Map,qn=0;function Jn(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||Ht(e))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;else if(!u(t.id))return;Vt(e),s()}let l=0;(0,e.onMounted)(()=>{l=++qn,J.set(i().id,l),document.addEventListener(`keydown`,c)}),(0,e.onBeforeUnmount)(()=>{J.get(i().id)===l&&J.delete(i().id),document.removeEventListener(`keydown`,c)});function u(e){let t=[r.state.leftPanel,r.state.rightPanel].filter(t=>t!==null&&t.id!==e),n=J.get(e)??0;return t.every(e=>(J.get(e.id)??0)<n)}return Xe({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),title:(0,e.computed)(()=>i().options.title??i().id),dirty:(0,e.computed)(()=>i().dirty),onBeforeClose:e=>r.registerCloseGuard(i().id,e),overlay:!0}),{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 Yn=[`title`,`aria-label`],Xn=(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,Yn)):(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))}}),Zn=[`dir`,`data-vdd-side-panel`],Qn=(0,e.defineComponent)({__name:`VddSidePanelHost`,props:{instance:{},position:{},defaultWidth:{}},setup(t){let n=t,r=K(),{displayTitle:i,icon:a,close:o,bodyPadding:s}=Jn(()=>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)(Xn,{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,Zn))}}),$n=(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)(Qn,{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)(Qn,{key:a.value.id,instance:a.value,position:`right`,"default-width":t.defaultWidth},null,8,[`instance`,`default-width`])):(0,e.createCommentVNode)(``,!0)],64))}}),er=[`dir`,`data-vdd-modal`],tr=(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}=Jn(()=>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)(Xn,{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,er))}}),nr=[`data-vdd-dialog-icon`],rr={key:1,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},ir={key:0,d:`M5 8l2 2 4-4`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},ar={key:1,d:`M5.5 5.5l5 5M10.5 5.5l-5 5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},or={key:2,d:`M8 5v.01M8 7.5v3.5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},sr=(0,e.defineComponent)({__name:`VddDialogIcon`,props:{icon:{},type:{},question:{type:Boolean}},setup(t){return(n,r)=>t.icon===null?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:(0,e.normalizeClass)([`vdd-dialog-icon`,`vdd-dialog-icon-${t.type}`]),"data-vdd-dialog-icon":t.icon===void 0?`default`:`custom`},[t.icon?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon),{key:0})):((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,rr,[t.question?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:0},[r[0]||=(0,e.createElementVNode)(`circle`,{cx:`8`,cy:`8`,r:`7`,stroke:`currentColor`,"stroke-width":`1.5`},null,-1),r[1]||=(0,e.createElementVNode)(`path`,{d:`M6.25 6.25a1.75 1.75 0 1 1 2.6 1.53c-.5.28-.85.7-.85 1.27v.2M8 11.25v.01`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)],64)):t.type===`warning`?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[r[2]||=(0,e.createElementVNode)(`path`,{d:`M8 2.5L14 13.5H2L8 2.5z`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linejoin":`round`},null,-1),r[3]||=(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:2},[r[4]||=(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`,ir)):t.type===`danger`?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,ar)):((0,e.openBlock)(),(0,e.createElementBlock)(`path`,or))],64))]))],10,nr))}}),cr={class:`vdd-dialog-content`},lr={class:`vdd-confirmation-message`},ur={class:`vdd-confirmation-actions`},dr=(0,e.defineComponent)({__name:`VddConfirm`,props:{message:{},alert:{default:void 0},alertType:{default:`info`},yesNo:{type:Boolean,default:!1},onOk:{type:Function,default:void 0},onCancel:{type:Function,default:void 0},onSettled:{type:Function,default:void 0},icon:{default:void 0}},setup(t){let n=t,r=K(),i=q(),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`,cr,[(0,e.createVNode)(sr,{icon:t.icon,type:t.alertType,question:``},null,8,[`icon`,`type`]),(0,e.createElementVNode)(`div`,lr,(0,e.toDisplayString)((0,e.unref)(r).format(t.message)),1)]),(0,e.createElementVNode)(`div`,ur,[(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))}}),fr=(0,e.defineComponent)({__name:`VddModals`,setup(t){let n=K(),{overlays:r}=n;function i(e){return new Promise(t=>{r.openModal(dr,{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)(tr,{key:t.id,instance:t,index:n},null,8,[`instance`,`index`]))),128))}}),pr={duration:5e3,closable:!0},Y=(0,e.reactive)({items:[],adapter:null,defaults:{...pr}}),X=new Set,mr=0;function hr(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function gr(e,t,n,r){let i=hr(r);if(X.has(t)){e.update(t,n,{...i,id:t});return}X.add(t),e.show(t,n,{type:`info`,duration:Y.defaults.duration,closable:Y.defaults.closable,...i,id:t})}function Z(e,t={}){let n=t.id??`vdd-toast-${++mr}`,r={...t,id:n};if(Y.adapter)return gr(Y.adapter,n,e,t),n;let i=Y.items.find(e=>e.id===n);return i?(i.message=e,i.options={...i.options,...r},i.exiting=!1,i.revision++,n):(Y.items.push({id:n,message:e,options:r,exiting:!1,revision:0}),n)}function _r(e){let t=Y.items.find(t=>t.id===e);t&&!t.exiting&&(t.exiting=!0,t.options.onClose?.())}function vr(e){let t=Y.items.findIndex(t=>t.id===e);t!==-1&&Y.items.splice(t,1)}function yr(e){if(Y.adapter){e===void 0?X.clear():X.delete(e),Y.adapter.dismiss(e);return}if(e===void 0){for(let e of[...Y.items])_r(e.id);return}_r(e)}var br=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:yr,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 xr(){Y.items.splice(0),Y.adapter=null,Y.defaults={...pr},X.clear()}function Sr(t,n){if(Y.defaults={...n},(0,e.toRaw)(Y.adapter)===(0,e.toRaw)(t)||(Y.adapter=t,X.clear(),!t))return;let r=Y.items.splice(0).filter(e=>!e.exiting);for(let e of r)gr(t,e.id,e.message,e.options)}var Cr={class:`vdd-toast__icon`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},wr={key:0,d:`M5 8l2 2 4-4`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},Tr={key:1,d:`M5.5 5.5l5 5M10.5 5.5l-5 5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},Er={key:2,d:`M8 5v.01M8 7.5v3.5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},Dr=(0,e.defineComponent)({__name:`VddToastIcon`,props:{type:{}},setup(t){return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,Cr,[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`,wr)):t.type===`error`?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,Tr)):((0,e.openBlock)(),(0,e.createElementBlock)(`path`,Er))],64))]))}}),Or=[`data-vdd-toast`],kr=[`aria-label`],Ar=(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=xn(),i=t,a=n,o=(0,e.useTemplateRef)(`card`),s=(0,e.useTemplateRef)(`body`),c=(0,e.computed)(()=>i.toast.options.type??`info`),l=(0,e.computed)(()=>i.toast.options.duration??i.defaultDuration),u=(0,e.computed)(()=>i.toast.options.closable??i.defaultClosable),d=(0,e.computed)(()=>i.toast.options.icon??null),f=(0,e.ref)(i.animation===`none`?`vdd-toast--visible`:i.animation===`fade`?`vdd-toast--fade-entering`:i.isLeft?`vdd-toast--entering-left`:`vdd-toast--entering`),p=(0,e.ref)(!1),m=null,h=0,g=0;function _(e){e<=0||(g=Date.now(),m=setTimeout(()=>_r(i.toast.id),e))}function v(){m&&=(clearTimeout(m),null)}(0,e.watch)([l,()=>i.toast.revision],()=>{v(),h=l.value,_(l.value)},{immediate:!0});function y(){i.pauseOnHover&&l.value!==0&&m&&(v(),h=Math.max(0,h-(Date.now()-g)),p.value=!0)}function b(){i.pauseOnHover&&l.value!==0&&(p.value=!1,_(h))}let x=null;function S(){let e=o.value;e&&!i.toast.exiting&&(e.style.maxHeight=`${e.scrollHeight}px`)}(0,e.onMounted)(()=>{S(),typeof ResizeObserver<`u`&&s.value&&(x=new ResizeObserver(S),x.observe(s.value)),i.animation!==`none`&&requestAnimationFrame(()=>{f.value=`vdd-toast--visible`})});let C=null;(0,e.watch)(()=>i.toast.exiting,e=>{if(e){if(v(),x?.disconnect(),x=null,i.animation===`none`||!o.value){a(`exited`,i.toast.id);return}C=setTimeout(()=>a(`exited`,i.toast.id),520)}},{immediate:!0});function w(e){i.toast.exiting&&e.propertyName===`max-height`&&a(`exited`,i.toast.id)}return(0,e.onBeforeUnmount)(()=>{v(),C&&clearTimeout(C),x?.disconnect()}),(n,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`card`,ref:o,role:`status`,"aria-live":`polite`,class:(0,e.normalizeClass)([`vdd-toast`,[`vdd-toast--${c.value}`,f.value,{"vdd-toast--exiting":t.toast.exiting,"vdd-toast--paused":p.value}]]),"data-vdd-toast":t.toast.id,onMouseenter:y,onMouseleave:b,onTransitionend:w},[d.value?((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(d.value),{key:0})):((0,e.openBlock)(),(0,e.createBlock)(Dr,{key:1,type:c.value},null,8,[`type`])),(0,e.createElementVNode)(`div`,{ref_key:`body`,ref:s,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),u.value?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:2,type:`button`,class:`vdd-toast__close`,"aria-label":(0,e.unref)(r)(`closeNotification`),"data-vdd-toast-close":``,onClick:i[0]||=n=>(0,e.unref)(_r)(t.toast.id)},[...i[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)]],8,kr)):(0,e.createCommentVNode)(``,!0),t.showProgress&&l.value>0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:3,class:`vdd-toast__progress`,style:(0,e.normalizeStyle)({animationDuration:`${l.value}ms`})},null,4)):(0,e.createCommentVNode)(``,!0)],42,Or))}}),jr=[`dir`,`aria-label`],Mr=(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:{default:void 0}},setup(t){let n=xn(),r=t;(0,e.watch)(()=>[r.adapter,r.defaultDuration,r.defaultClosable],([e,t,n])=>Sr(e??null,{duration:t,closable:n}),{immediate:!0}),(0,e.onBeforeUnmount)(()=>{r.adapter&&(0,e.toRaw)(Y.adapter)===(0,e.toRaw)(r.adapter)&&Sr(null,{duration:r.defaultDuration,closable:r.defaultClosable})});let i=(0,e.computed)(()=>{let e=[],t=0;for(let n of Y.items){if(n.exiting){e.push(n);continue}if(t>=r.maxVisible)break;e.push(n),t++}return r.newestOnTop?[...e].reverse():e});(0,e.watch)(()=>Y.items.map(e=>`${e.id}:${e.exiting}`).join(`,`),()=>{let e=new Set(i.value.map(e=>e.id));for(let t of[...Y.items])t.exiting&&!e.has(t.id)&&vr(t.id)},{immediate:!0});let a=(0,e.computed)(()=>r.position.endsWith(`left`)),o=(0,e.inject)(F,null),s=(0,e.computed)(()=>o?.state.dir===`rtl`?`rtl`:void 0);return(r,o)=>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`}),dir:s.value,role:`region`,"aria-label":(0,e.unref)(n)(`notifications`),"aria-live":`polite`,"data-vdd-toasts":``},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(i.value,n=>((0,e.openBlock)(),(0,e.createBlock)(Ar,{key:n.id,toast:n,"is-left":a.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)(vr)},null,8,[`toast`,`is-left`,`show-progress`,`pause-on-hover`,`animation`,`default-duration`,`default-closable`,`onExited`]))),128))],14,jr)]))}}),Nr={class:`vdd-dialog-content`},Pr={class:`vdd-confirmation-message`},Fr={class:`vdd-confirmation-actions`},Ir=(0,e.defineComponent)({__name:`VddAlert`,props:{message:{},alertType:{default:`info`},icon:{default:void 0},okLabel:{type:[String,Object,Function],default:void 0},onSettled:{type:Function,default:void 0}},setup(t){let n=t,r=K(),i=q(),a=(0,e.useTemplateRef)(`okButton`),o=!1;function s(){o||(o=!0,n.onSettled?.())}function c(){s(),i.close({force:!0})}return(0,e.onMounted)(()=>{i.setIcon(void 0),a.value?.focus({preventScroll:!0})}),(0,e.onBeforeUnmount)(()=>s()),(n,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(`form`,{class:`vdd-confirmation-form-body`,onSubmit:(0,e.withModifiers)(c,[`prevent`])},[(0,e.createElementVNode)(`div`,Nr,[(0,e.createVNode)(sr,{icon:t.icon,type:t.alertType},null,8,[`icon`,`type`]),(0,e.createElementVNode)(`div`,Pr,(0,e.toDisplayString)((0,e.unref)(r).format(t.message)),1)]),(0,e.createElementVNode)(`div`,Fr,[(0,e.createElementVNode)(`button`,{ref_key:`okButton`,ref:a,type:`submit`,class:`vdd-btn vdd-btn-sm vdd-btn-primary`,"data-vdd-alert-ok":``},(0,e.toDisplayString)((0,e.unref)(r).format(t.okLabel??(0,e.unref)(r).messages.ok)),513)])],32))}}),Q=e=>e===`width`||e===`both`,$=e=>e===`height`||e===`both`,Lr=(e,t)=>t===`inline`?$(e)?`both`:`width`:Q(e)?`both`:`height`,Rr=(e,t)=>t===`inline`?e===`both`?`height`:Q(e)?null:e:e===`both`?`width`:$(e)?null:e,zr=(e,t)=>$(t)?[]:Q(t)?e.startsWith(`top-`)?[`top-left`,`top-right`]:[`bottom-left`,`bottom-right`]:[e],Br=[`top-left`,`top-right`,`bottom-left`,`bottom-right`];function Vr(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 Hr=e=>e.endsWith(`-left`)?e.replace(`-left`,`-right`):e.replace(`-right`,`-left`);function Ur(e,t){return{left:(t?e.inlineEnd:e.inlineStart)+8,right:(t?e.inlineStart:e.inlineEnd)+8,top:e.top,bottom:e.bottom}}function Wr(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 Gr(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 Kr(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 qr=Symbol(`vdd-panel-overlay`);function Jr(){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=(0,e.reactive)({}),f=100,p=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,managedPlacements:d,registerToolbar:(e,t)=>{n[p(e)]=t},unregisterToolbar:e=>{n[p(e)]=0},focus:e=>{f+=1,i[e]=f,r.value=e},dock:(e,t,n)=>{let r=zr(t,n);for(let t of Br){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 Br)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)}),t in d||(d[t]={anchor:n.anchor??`top-right`,stretch:n.stretch??null}),u.value++},closeManaged:e=>{l.delete(e)&&(delete d[e],u.value++)},closeAllManaged:()=>{if(l.size!==0){l.clear();for(let e of Object.keys(d))delete d[e];u.value++}},managedIds:()=>(u.value,Array.from(l.keys())),setManagedPlacement:(e,t)=>{e in d&&(d[e]=t)}}}function Yr(){let t=(0,e.inject)(qr,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 Xr(){return(0,e.inject)(qr,null)}function Zr(){let t=Yr();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 Qr=[`dir`,`data-vdd-widget`],$r={key:0,class:`vdd-panel-float__icon`},ei={class:`vdd-panel-float__title`},ti=[`title`,`aria-label`],ni={class:`vdd-panel-float__body`},ri=[`data-vdd-widget-resize`,`onPointerdown`],ii=(0,e.defineComponent)({__name:`VddFloatingWidget`,props:(0,e.mergeModels)({widgetId:{},title:{},icon:{default:void 0},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=Xr(),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=()=>Ur(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}:Kr(n.widgetId,zr(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)(()=>Wr(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=Vr(i.getBoundingClientRect(),e.clientX,e.clientY);o.hovered.value=t&&c.value?Hr(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 ee(){w?.moved&&o&&(o.hovered.value=null,o.draggingId.value=null),document.body.classList.remove(`vdd-dragging-active`),w=null}function te(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=Rr(r,`inline`)),n.block&&(r=Rr(r,`block`)),h(Gr(l.value,e,n,c.value),r)}H({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=U(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?Rr(Rr(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=Lr(t,`inline`)),S.block&&(t=Lr(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:ee},[(0,e.createElementVNode)(`div`,{class:`vdd-panel-float__header`,"data-vdd-widget-header":``,onPointerdown:T},[t.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,$r,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,ei,(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,ti)],32),(0,e.createElementVNode)(`div`,ni,[(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=>te(t,e)},null,42,ri))),128))],46,Qr)):(0,e.createCommentVNode)(``,!0)}}),ai=[`data-vdd-dropzone`],oi=(0,e.defineComponent)({__name:`VddPanelOverlay`,setup(t){let n=Jr();(0,e.provide)(qr,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),placement:n.managedPlacements[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)(Br),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,ai))),128)):(0,e.createCommentVNode)(``,!0),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(i.value,({id:t,widget:r,placement:i})=>((0,e.openBlock)(),(0,e.createBlock)(ii,{key:t,"widget-id":t,title:r.title,icon:r.icon,open:!0,placement:i,width:r.width??320,height:r.height??240,"onUpdate:open":r=>{r||(0,e.unref)(n).closeManaged(t)},"onUpdate:placement":r=>(0,e.unref)(n).setManagedPlacement(t,r)},{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`,`onUpdate:placement`]))),128))],2))}}),si=[`data-variant`,`data-btn-variant`,`data-vdd-panel-toolbar`,`aria-orientation`],ci=(0,e.defineComponent)({__name:`VddPanelToolbar`,props:{position:{},variant:{default:`transparent`},buttonVariant:{default:`ghost`},buttonSize:{default:void 0}},setup(t){let n=t,r=Yr(),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,si))}}),li=[`title`,`aria-label`,`disabled`,`data-variant`],ui=(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,li))}}),di=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-variant`],fi=(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,di))}}),pi={class:`vdd-panel-toolbar__sep`,"aria-hidden":`true`},mi=(0,e.defineComponent)({__name:`VddToolbarSeparator`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,pi))}}),hi={class:`vdd-panel-toolbar__spacer`,"aria-hidden":`true`},gi=(0,e.defineComponent)({__name:`VddToolbarSpacer`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,hi))}}),_i={class:`vdd-panel-toolbar__item`},vi=(0,e.defineComponent)({__name:`VddToolbarItem`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,_i,[(0,e.renderSlot)(t.$slots,`default`)]))}}),yi={class:`vdd-panel-toolbar__center`},bi=(0,e.defineComponent)({__name:`VddToolbarCenter`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,yi,[(0,e.renderSlot)(t.$slots,`default`)]))}}),xi=[`title`,`aria-label`],Si=[`placeholder`],Ci={key:0,class:`vdd-panel-toolbar-search__group`},wi=[`data-vdd-search-result`,`onClick`],Ti={key:0,class:`vdd-panel-toolbar-search__item-icon`},Ei={class:`vdd-panel-toolbar-search__item-label`},Di={key:1,class:`vdd-panel-toolbar-search__item-desc`},Oi=(0,e.defineComponent)({__name:`VddToolbarSearch`,props:{placeholder:{default:void 0},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 _(e){Ht(e)||(Vt(e),g())}function v(){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 y(){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,v()}catch{}},r.debounce)}function b(e){i(`select`,e),g()}function x(e){let t=e.relatedTarget;t instanceof Node&&o.value?.contains(t)||g()}let S=(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:x},[(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,xi),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:y,onKeydown:(0,e.withKeys)(_,[`esc`])},null,40,Si)),[[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)(S.value,({group:t,items:n})=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:t||`__default__`},[t?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ci,(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=>b(t)},[t.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Ti,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,Ei,(0,e.toDisplayString)(t.label),1),t.description?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Di,(0,e.toDisplayString)(t.description),1)):(0,e.createCommentVNode)(``,!0)],8,wi))),128))],64))),128))],36)])):(0,e.createCommentVNode)(``,!0)],34))}});function ki(){let e=K();return t=>e.showContextMenu(t)}function Ai(t){let n=K(),{id:r}=q();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 ji(){let t=(0,e.inject)(fn,null);if(!t)throw Error(`[vue-dockable-desktop] useSidebar() must be used inside a <VddSidebar>.`);return t}function Mi(){let t=(0,e.inject)(pn,null);if(!t)throw Error(`[vue-dockable-desktop] useSidebarTab() must be used inside a sidebar tab's content.`);return t}function Ni(){return K().toolbar}function Pi(){let t=K(),{overlays:n}=t;return{stack:(0,e.computed)(()=>n.state.modals),topmost:(0,e.computed)(()=>n.state.modals[n.state.modals.length-1]??null),open:n.openModal,close:(e,t)=>n.requestClose(e,t),closeAll:n.closeAllModals,confirm:({message:e,title:r,alert:i,alertType:a,icon:o,yesNo:s,size:c=`small`})=>new Promise(l=>{n.openModal(dr,{message:e,alert:i,alertType:a,icon:o,yesNo:s,onSettled:l},{title:r??t.messages.confirmTitle,size:c})}),alert:({message:e,title:r,alertType:i,icon:a,okLabel:o,size:s=`small`})=>new Promise(c=>{n.openModal(Ir,{message:e,alertType:i,icon:a,okLabel:o,onSettled:c},{title:r??t.messages.alertTitle,size:s})})}}function Fi(){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 Ii(t){let n=K(),{id:r}=q();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 Li(){return K().activeContribution}function Ri(t){let n=Li();return(0,e.computed)(()=>M((0,e.toValue)(t),n.value))}function zi(t,n){let r=Li();return(0,e.computed)(()=>N((0,e.toValue)(t),r.value,n))}var Bi=`1.9.0`;exports.PanelRegistry=D,exports.VddAlert=Ir,exports.VddConfirm=dr,exports.VddContextMenu=sn,exports.VddDesktop=zt,exports.VddFloatingWidget=ii,exports.VddModals=fr,exports.VddPanelOverlay=oi,exports.VddPanelToolbar=ci,exports.VddSecondarySidebar=An,exports.VddSidePanels=$n,exports.VddSidebar=kn,exports.VddToasts=Mr,exports.VddToolbar=Kn,exports.VddToolbarButton=ui,exports.VddToolbarCenter=bi,exports.VddToolbarItem=vi,exports.VddToolbarSearch=Oi,exports.VddToolbarSeparator=mi,exports.VddToolbarSpacer=gi,exports.VddToolbarToggle=fi,exports.WORKSPACE_KEY=F,exports.clampFloatingRect=fe,exports.computeResizedRect=U,exports.createWorkspace=I,exports.defaultMessages=ie,exports.formatLabel=ae,exports.isSerializable=E,exports.mergeSidebarTabs=N,exports.mergeToolbarItems=M,exports.resetToasts=xr,exports.sectionToTab=j,exports.startPointerDrag=H,exports.toast=br,exports.useActiveContribution=Li,exports.useColorScheme=Oe,exports.useContextMenu=ki,exports.useFloatingWidgets=Zr,exports.useMergedSidebarTabs=zi,exports.useMergedToolbarItems=Ri,exports.useModals=Pi,exports.usePanel=q,exports.usePanelContextMenu=Ai,exports.usePanelContribution=Ii,exports.useSidePanels=Fi,exports.useSidebar=ji,exports.useSidebarTab=Mi,exports.useToolbar=Ni,exports.useWorkspace=K,exports.version=Bi;
|
|
5
5
|
//# sourceMappingURL=index.cjs.map
|