vue-dockable-desktop 1.11.1 → 1.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -11,6 +11,10 @@ correspondence lives, alongside the feature-by-feature map in [docs/PARITY.md](d
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ## [1.11.2] — 2026-11-11
15
+
16
+ **Parity: react-dockable-desktop 7.10.0** (unchanged).
17
+
14
18
  ## [1.11.1] — 2026-11-11
15
19
 
16
20
  **Parity: react-dockable-desktop 7.10.0** (unchanged). A panel's tab icon is centred on its title.
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
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 ue(e,t,n){let r=t?.sidebarSections;return r?.length?[...e,...r.map(e=>j(e,n))]:e}function de(t,n){return(0,e.computed)(()=>{let e=n();return e?t.get(e):null})}var fe=(e,t)=>Math.min(.9,Math.max(.1,e??t)),N=x,P=Symbol(`vdd-workspace`);function F(e){return e}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:fe(t.defaultSplitRatio,.5),edgeSplitRatio:fe(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 ue=()=>({gridRoot:(0,e.toRaw)(j).gridRoot,floating:(0,e.toRaw)(j).floating,panels:(0,e.toRaw)(j).panels});function F(e){let t=j.activePanelId,n;n=e&&y(e,ue())?e:j.activePanelId&&y(j.activePanelId,ue())?j.activePanelId:b(ue()),n!==t&&(j.activePanelId=n,p.emit(`panel:activated`,{id:n,previous:t}))}let I=()=>p.emit(`layout:changed`,{}),pe=e=>{let t=j.panels[e];return t?o.get(t.component):void 0},L=e=>pe(e)?.defaultOptions??{};function R(e){let t=(e,t)=>{let n=typeof e==`string`?Number.parseFloat(e):e;return Number.isNaN(n)?t:n},n=t(e.x,N.x),r=t(e.y,N.y),i=t(e.width,N.width),a=t(e.height,N.height),o=(e,t)=>j.floating.some(n=>{if(n.maximized)return!1;let r=typeof n.x==`string`?Number.parseFloat(n.x):n.x,i=typeof n.y==`string`?Number.parseFloat(n.y):n.y;return Math.abs(r-e)<20&&Math.abs(i-t)<20}),s=0;for(;o(n,r)&&s<10;)n+=30,r+=30,s++;let c=Math.max(100,typeof window<`u`&&window.innerWidth||1024),l=Math.max(100,typeof window<`u`&&window.innerHeight||768);return(n+i>c||r+a>l)&&(n=100+s%5*30,r=100+s%5*30),{x:Math.max(0,Math.min(n,c-100)),y:Math.max(0,Math.min(r,l-40)),width:i,height:a}}function 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 he(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 ge(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??N;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.`),be(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,R(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})}F(u?c:null),p.emit(`panel:opened`,{id:c,component:r}),I()}function B(e){if(!j.panels[e]||L(e).canClose===!1)return;h.delete(e),g.delete(e),z(e);let t={...j.panels};delete t[e],j.panels=t,F(),p.emit(`panel:closed`,{id:e}),I()}async function _e(e,t){if(t?.force){B(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))&&B(e)}function ve(t){let n=j.panels[t];if(!n||n.state===`minimized`||L(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}],F(),p.emit(`panel:minimized`,{id:t}),I()}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??N,f=()=>{j.panels={...j.panels,[t]:{...a,state:`floating`}},me(t,R(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):L(t).canDrag===!1?m(d((0,e.toRaw)(j).gridRoot)??n().id):f(),F(s?t:null),p.emit(`panel:restored`,{id:t}),I()}function ye(e,t,n){let r=j.panels[e];if(!r||L(e).canDrag===!1)return;let i=t??o.get(r.component)?.defaultOptions?.favoritePosition??N;z(e),j.panels={...j.panels,[e]:{...r,state:`floating`}},me(e,R(i),n??null),F(e),I()}function be(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),F(t),I()}function H(t,n,r){let a=j.panels[t];a&&(he(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,F(t),I()))}function U(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,F(t),I())}function xe(t,i,o){let s=j.panels[t];if(!s||he(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,F(t),I()}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),F(e),I())}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}F(t)}}function Ce(t){j.gridRoot=l((0,e.toRaw)(j).gridRoot,t)??n(),F(),I()}function we(t,n){j.gridRoot=v((0,e.toRaw)(j).gridRoot,t,n),I()}function Te(e,t){j.floating=j.floating.map(n=>n.id===e?{...n,...t}:n)}function G(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 De(e){j.dir!==e&&(j.dir=e,j.isRtl=e===`rtl`)}function Oe(){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 K(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}),I(),!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:ge,closePanel:B,requestClosePanel:_e,minimizePanel:ve,restorePanel:V,floatPanel:ye,dockPanel:be,dockPanelToGroup:H,dockPanelToWorkspaceEdge:U,maximizePanel:Se,focusPanel:W,movePanelOrder:xe,closeLeafGroup:Ce,updateSplitSizes:we,updateFloatingPosition:Te,setPanelDirty:G,updatePanelTitle:Ee,setDirection:De,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:Oe,loadLayout:K,publish:(e,t)=>p.publish(e,t),subscribe:(e,t)=>p.subscribe(e,t),toolbar:oe(),overlays:Ne,contributions:Pe,activeContribution:de(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(P,Fe)},dispose(){p.clear(),Ne.dispose(),h.clear(),g.clear(),x.clear(),C.value=null}};return Fe}function pe(e){return e===`top-left`?`top-right`:e===`top-right`?`top-left`:e===`bottom-left`?`bottom-right`:`bottom-left`}function L(e,t,n){let{x:r,y:i,width:a,height:o}=e;if(a>t.width&&(a=Math.max(200,t.width-20)),o>t.height&&(o=Math.max(150,t.height-40)),!n){let e=t.width-100,n=t.height-40;r>e&&(r=Math.max(0,e)),i>n&&(i=Math.max(0,n))}return r===e.x&&i===e.y&&a===e.width&&o===e.height?e:{x:r,y:i,width:a,height:o}}function R(e){return e.offsetParent!==null||e.getClientRects().length>0}function me(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 z=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=me(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()})}},he=[`skin`,`noAnimations`,`zBase`],ge=new WeakMap;function B(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 _e(e,t,n=document){let r=ge.get(n)??[];ge.set(n,r);let i=r.find(t=>t.owner===e);i?Object.assign(i.values,t):r.push({owner:e,values:{...t}}),B(n,r,Object.keys(t))}function ve(e,t=he,n=document){let r=ge.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),B(n,r,o)}var V=Symbol(`vdd-panel-dom`);function ye(t){(0,e.provide)(V,t)}function be(){return(0,e.inject)(V,null)}function H(e,t,n){let r=e.state.panels[t];if(!r)return!1;let i=e.registry.get(r.component)?.defaultOptions;if(n.kind===`float`){if(i?.canFloat===!1&&r.state!==`floating`)return!1}else if(i?.canDock===!1)return!1;let a=e.config.canDrop;if(!a)return!0;try{return a({panelId:t,component:r.component,to:n})!==!1}catch(e){return console.error(`[vue-dockable-desktop] canDrop threw; the move is allowed:`,e),!0}}function U(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),document.removeEventListener(`lostpointercapture`,h,!0)},p=()=>{f(),s?.(u)},m=()=>{f(),(c??s)?.(u)},h=e=>{e.pointerId===n&&m()};t.addEventListener(`pointermove`,d),t.addEventListener(`pointerup`,p),t.addEventListener(`pointercancel`,m),window.addEventListener(`blur`,m),document.addEventListener(`lostpointercapture`,h,!0)}function xe(e){return!!e&&getComputedStyle(e).direction===`rtl`}function Se(e,t,n){return e-t.left<t.width/2===n?`right`:`left`}function W(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 Ce=5,we=Symbol(`vdd-drag-dock`);function Te(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=>n.value!==null&&H(t,n.value,{kind:`group`,leafId:e,position:`center`}),_=e=>{s.value=e&&g(e.leafId)?e:null};function v(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&&g(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:Se(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 y(e,n){let r=a.value,c=s.value,d=i.value,f=o.value,m=n=>H(t,e,n);if(r){let n=l(r);m({kind:`edge`,side:n})&&t.dockPanelToWorkspaceEdge(e,n)}else if(c){if(!m({kind:`group`,leafId:c.leafId,position:`center`})){u();return}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 if(d){let n=l(d.position);m({kind:`group`,leafId:d.leafId,position:n})&&t.dockPanelToGroup(e,d.leafId,n)}else if(f){let n=t.state.isRtl?pe(f):f;m({kind:`float`,anchor:n})&&t.floatPanel(e,void 0,n)}else m({kind:`float`,anchor:null})&&t.floatPanel(e,{x:n.clientX-150,y:n.clientY-15,width:450,height:350});u()}function b(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},v(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?y(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)<=Ce&&Math.abs(t.clientY-o)<=Ce)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?y(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 x={draggedId:n,pointer:r,zone:i,edge:a,corner:o,tab:s,dragging:c,startTabDrag:b,beginDrag:d,trackPointer:(e,t)=>{r.value={x:e,y:t},v(e,t)},hoverZone:f,hoverEdge:m,hoverCorner:h,hoverTab:_,finishDrag:y,cancel:u};return(0,e.provide)(we,x),x}function G(){return(0,e.inject)(we,null)}function Ee(e,t,n,r){let i=[];return n.canDrag!==!1&&H(e,t,{kind:`float`,anchor:null})&&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}),Oe(e,t,i)}function De(e,t,n,r){let i=[{label:e.messages.restorePanel,action:r.restore}],a=e.state.panels[t]?.previousState===`floating`;return n.canDrag!==!1&&(a||H(e,t,{kind:`float`,anchor:null}))&&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})),Oe(e,t,i)}function Oe(e,t,n){let r=e.panelMenuItems(t);return r.length===0?n:n.length>0?[...n,{separator:!0},...r]:[...r]}function K(){let t=(0,e.inject)(P,null);if(!t)throw Error(`[vue-dockable-desktop] useWorkspace() found no workspace. Create one with createWorkspace() and install it with app.use(workspace).`);return(0,e.getCurrentScope)()?{...t,subscribe(n,r){let i=t.subscribe(n,r);return(0,e.onScopeDispose)(i),i}}:t}var ke=()=>typeof document<`u`&&document.documentElement.getAttribute(`data-color-scheme`)===`light`?`light`:`dark`;function Ae(){let t=(0,e.ref)(ke());if(typeof document<`u`){let n=new MutationObserver(()=>{t.value=ke()});n.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-color-scheme`]}),(0,e.onScopeDispose)(()=>n.disconnect())}return(0,e.computed)(()=>t.value)}var je=[`data-vdd-slot`],Me=(0,e.defineComponent)({__name:`VddPanelSlot`,props:{panelId:{},hostClass:{}},setup(t){let n=t,r=be(),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,je))}}),Ne={class:`vdd-dock-drop-zone-overlay`},Pe={class:`vdd-dock-target-cross`},Fe=[`data-vdd-drop-zone`,`data-vdd-leaf`,`onPointerenter`],Ie=(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=(0,e.computed)(()=>{let e=i.state.draggedPanelId;if(e===null)return a;let t=e=>i.state.isRtl&&(e===`left`||e===`right`)?e===`left`?`right`:`left`:e;return a.filter(r=>H(i,e,{kind:`group`,leafId:n.leafId,position:t(r)}))}),c=e=>r?.zone.value?.leafId===n.leafId&&r.zone.value.position===e,l=(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`,Ne,[(0,e.createElementVNode)(`div`,Pe,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(s.value,n=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:n,class:(0,e.normalizeClass)([`vdd-dock-target-box`,[`vdd-dock-target-${n}`,{"vdd-dock-target-box--active":c(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,Fe))),128))])]),l.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`vdd-dock-preview-highlight`,style:(0,e.normalizeStyle)(l.value)},null,4)):(0,e.createCommentVNode)(``,!0)],64))}}),Le=[`data-vdd-leaf`,`data-active-panel-id`],Re={class:`vdd-workspace-tab-bar`},ze=[`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`],Be={key:0,class:`vdd-workspace-tab-icon`},Ve={class:`vdd-workspace-tab-label`},He=[`title`,`data-vdd-close`,`onClick`],Ue={key:0,class:`vdd-tab-header-actions`},We=[`title`,`aria-label`],Ge={class:`vdd-panel-body`,role:`tabpanel`},Ke={key:2,class:`vdd-empty-workspace`},qe={key:3,class:`vdd-empty-leaf-placeholder`},Je=(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=Ee(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:Se(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=(e,t,n)=>({panelId:e,component:t.component,title:r.format(t.title),icon:n,dirty:t.dirty===!0,selected:e===c.value,focused:e===r.state.activePanelId}),u=(0,e.useTemplateRef)(`tabBar`),d=(e,t)=>(c.value?e===c.value:t===0)?0:-1;function f(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)(()=>{u.value?.querySelector(`[data-vdd-tab="${CSS.escape(o.id)}"]`)?.focus()})}let p=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,m)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`vdd-workspace-panel`,"data-vdd-leaf":t.leaf.id,"data-active-panel-id":c.value??``,onPointerdown:m[2]||=t=>c.value&&(0,e.unref)(r).focusPanel(c.value)},[(0,e.createElementVNode)(`div`,Re,[(0,e.createElementVNode)(`div`,{ref_key:`tabBar`,ref:u,class:`vdd-tab-headers-container`,role:`tablist`},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(s.value,(s,u)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:s.id,class:(0,e.normalizeClass)([p(s.id),s.options.tabClassName]),"data-vdd-tab":s.id,"data-vdd-selected":s.id===c.value?``:void 0,"data-vdd-focused":s.id===(0,e.unref)(r).state.activePanelId?``:void 0,"data-vdd-dirty":s.panel.dirty?``:void 0,"data-vdd-tab-leaf":t.leaf.id,"data-vdd-tab-index":String(u),role:`tab`,"aria-selected":s.id===c.value,tabindex:d(s.id,u),style:(0,e.normalizeStyle)({cursor:s.options.canDrag===!1?`default`:`pointer`}),onClick:t=>(0,e.unref)(r).focusPanel(s.id),onContextmenu:(0,e.withModifiers)(e=>a(s.id,e),[`prevent`]),onPointerdown:t=>s.options.canDrag===!1?void 0:(0,e.unref)(i)?.startTabDrag(s.id,t,e=>a(s.id,e)),onPointermove:e=>o(t.leaf.id,s.id,u,e),onPointerleave:m[0]||=t=>(0,e.unref)(i)?.dragging.value&&(0,e.unref)(i).hoverTab(null),onKeydown:e=>f(u,e)},[(0,e.createElementVNode)(`span`,{class:(0,e.normalizeClass)([`vdd-text-truncate`,{"vdd-workspace-tab-title":!n.$slots[`tab-content`]}])},[n.$slots[`tab-content`]?(0,e.renderSlot)(n.$slots,`tab-content`,(0,e.mergeProps)({ref_for:!0},l(s.id,s.panel,s.options.icon)),void 0,void 0,0):((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[s.options.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Be,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(s.options.icon)))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,Ve,(0,e.toDisplayString)((0,e.unref)(r).format(s.panel.title))+(0,e.toDisplayString)(s.panel.dirty?` *`:``),1)],64))],2),s.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":s.id,onClick:(0,e.withModifiers)(t=>(0,e.unref)(r).requestClosePanel(s.id),[`stop`])},[...m[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,He))],46,ze))),128))],512),s.value.length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ue,[(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:m[1]||=(0,e.withModifiers)(n=>(0,e.unref)(r).closeLeafGroup(t.leaf.id),[`stop`])},[...m[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,We)])):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`div`,Ge,[(0,e.unref)(i)?.dragging.value?((0,e.openBlock)(),(0,e.createBlock)(Ie,{key:0,"leaf-id":t.leaf.id},null,8,[`leaf-id`])):(0,e.createCommentVNode)(``,!0),c.value?((0,e.openBlock)(),(0,e.createBlock)(Me,{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`,Ke,[(0,e.renderSlot)(n.$slots,`empty-workspace`)])):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,qe,[(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)((0,e.unref)(r).format((0,e.unref)(r).messages.emptyGroup)),1)]))])],40,Le))}}),Ye=[`data-vdd-divider`,`onPointerdown`],Xe=(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&&xe(o)?-1:1;U({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)(Je,{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,n.$slots[`tab-content`]?{name:`tab-content`,fn:(0,e.withCtx)(t=>[(0,e.renderSlot)(n.$slots,`tab-content`,(0,e.normalizeProps)((0,e.guardReactiveProps)(t)))]),key:`1`}: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,(r,s)=>((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:s},[(0,e.createElementVNode)(`div`,{style:(0,e.normalizeStyle)({flexGrow:t.node.sizes[s],flexBasis:`${(t.node.sizes[s]??0)*100}%`,overflow:`hidden`,position:`relative`,minWidth:0,minHeight:0})},[(0,e.createVNode)(o,{node:r,path:[...t.path,s]},(0,e.createSlots)({_:2},[n.$slots[`tab-content`]?{name:`tab-content`,fn:(0,e.withCtx)(t=>[(0,e.renderSlot)(n.$slots,`tab-content`,(0,e.mergeProps)({ref_for:!0},t))]),key:`0`}:void 0]),1032,[`node`,`path`])],4),s<t.node.children.length-1?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`vdd-resizer-bar`,"data-vdd-divider":[...t.path,s].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(s,e)},null,44,Ye)):(0,e.createCommentVNode)(``,!0)],64))),128))],6))}}}),Ze=Symbol(`vdd-panel`);function Qe(t){(0,e.provide)(Ze,t)}var $e=`standalone`;function q(){let t=(0,e.inject)(Ze,null),n=(0,e.inject)(P,null),r=t?.id??$e,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??$e),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 et=[`dir`],tt={key:1,class:`vdd-unregistered-panel`},nt=(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);Qe({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`,tt,[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,et)],8,[`to`]))}}),rt=[`data-vdd-window`,`data-vdd-focused`,`data-vdd-maximized`,`dir`],it=[`data-vdd-titlebar`],at={class:`vdd-floating-window-title`},ot={key:0,class:`vdd-window-title-icon`},st=[`data-vdd-more`,`title`],ct={width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`currentColor`,style:{display:`block`}},lt=[`data-vdd-maximize`,`title`],ut=[`data-vdd-minimize`,`title`],dt=[`data-vdd-close-window`,`title`],ft=[`data-vdd-handle`,`onPointerdown`],pt=8,mt=8,ht=(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=pt;for(let n=0;n<e;n++){let e=d.value[n].height;t+=(typeof e==`number`?e:Number.parseFloat(String(e)))+mt}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`]:`${pt}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:Ee(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;U({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};U({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=W(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`,at,[s.value.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,ot,[((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`,ct,[...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,st)):(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,lt),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,ut)),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,dt))],32)],44,it),(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`vdd-floating-window-body`,(0,e.unref)(r).classes.windowBody])},[(0,e.createVNode)(Me,{"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,ft)),64))],46,rt)):(0,e.createCommentVNode)(``,!0)}}),gt=[`data-vdd-edge`,`onPointerenter`],_t=[`data-vdd-corner`,`onPointerenter`],vt=(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=r.state.draggedPanelId;return e===null?i:i.filter(t=>H(r,e,{kind:`edge`,side:r.state.isRtl&&(t===`left`||t===`right`)?t===`left`?`right`:`left`:t}))}),s=(0,e.computed)(()=>{let e=r.state.draggedPanelId;return e===null?a:a.filter(t=>H(r,e,{kind:`float`,anchor:r.state.isRtl?pe(t):t}))}),c=(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),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(o.value,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`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,gt))),128)),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(s.value,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`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,_t))),128)),c.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:`vdd-workspace-edge-preview`,style:(0,e.normalizeStyle)(c.value)},null,4)):(0,e.createCommentVNode)(``,!0)],64))}}),yt=(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)}}),bt=[`dir`],xt={class:`vdd-tooltip-header-row`},St={class:`vdd-tooltip-title-text vdd-text-truncate`},Ct=[`data-vdd-preview-close`,`title`],wt={key:1,class:`vdd-taskbar-item-preview-letter`},Tt=220,Et=140,Dt=(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(Tt/l.value.width,Et/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`,xt,[(0,e.createElementVNode)(`span`,St,(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,Ct)]),(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`,wt,(0,e.toDisplayString)(p.value),1))],4)],44,bt)]))}}),Ot=[`data-vdd-taskbar-mode`],kt={key:0,class:`vdd-taskbar-peek-handle`,"data-vdd-peek":``},At=[`aria-label`],jt=[`data-vdd-taskbar-item`,`title`,`onClick`,`onContextmenu`,`onPointerdown`,`onPointerenter`],Mt={class:`vdd-taskbar-item-icon`},Nt={key:1,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},Pt=[`aria-label`],Ft=4,It=400,Lt=2e3,Rt=(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>Ft);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},It)};(0,e.watch)(()=>a.state.minimized.length,(e,t)=>{r.visibility!==`autohide`||e<=(t??0)||(h(),l=setTimeout(()=>{s.value=!1},Lt))});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`,kt)):(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,At)):(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`,Mt,[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`,Nt,[...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,jt))),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,Pt)):(0,e.createCommentVNode)(``,!0),c.value?((0,e.openBlock)(),(0,e.createBlock)(Dt,{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,Ot)):(0,e.createCommentVNode)(``,!0)}}),zt=[`data-vdd-skin`,`data-color-scheme`,`dir`],Bt={class:`vdd-panel-port`,"aria-hidden":`true`},Vt=(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=Ae(),s=new z;ye(s);let c=Te(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=L(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=De(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=()=>{_e(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(),ve(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)(vt,{key:0})):(0,e.createCommentVNode)(``,!0),(0,e.createVNode)(Xe,{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,n.$slots[`tab-content`]?{name:`tab-content`,fn:(0,e.withCtx)(t=>[(0,e.renderSlot)(n.$slots,`tab-content`,(0,e.normalizeProps)((0,e.guardReactiveProps)(t)))]),key:`1`}: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)(ht,{key:t.id,window:t,viewport:f.value},null,8,[`window`,`viewport`]))),128))],512),(0,e.createVNode)(Rt,{visibility:t.taskbar,cache:(0,e.unref)(s),"default-icon":t.defaultPanelIcon,onContextMenu:h},null,8,[`visibility`,`cache`,`default-icon`]),(0,e.createVNode)(yt),(0,e.createElementVNode)(`div`,Bt,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(u.value,t=>((0,e.openBlock)(),(0,e.createBlock)(nt,{key:t,"panel-id":t,cache:(0,e.unref)(s)},null,8,[`panel-id`,`cache`]))),128))])],10,zt))}}),Ht=new WeakSet;function Ut(e){Ht.add(e),e.preventDefault()}function Wt(e){return e.defaultPrevented||Ht.has(e)}var Gt=[`dir`],Kt={key:0,class:`vdd-context-menu__separator`,role:`separator`},qt=[`title`,`data-vdd-menu-submenu`,`aria-expanded`,`onClick`,`onPointerenter`,`onPointerleave`],Jt={class:`vdd-context-menu__label`},Yt=[`disabled`,`title`,`data-cy-action`,`data-vdd-menu-item`,`role`,`aria-checked`,`onClick`,`onPointerenter`,`onPointerleave`],Xt=[`aria-hidden`],Zt={class:`vdd-context-menu__label`},Qt={width:`12`,height:`12`,viewBox:`0 0 12 12`,fill:`none`},$t=[`fill`],en={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`},tn=[`dir`],nn={key:0,class:`vdd-context-menu__separator`,role:`separator`},rn=[`disabled`,`data-vdd-menu-item`,`onClick`],an=[`aria-hidden`],on={class:`vdd-context-menu__label`},sn=150,cn=200,ln=(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`&&!Wt(e)&&(Ut(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),sn)):(clearTimeout(d),c.value!==null&&(f=setTimeout(()=>{c.value=null},cn)))}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},cn))}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`,Kt)):(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`,Jt,(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,qt)):((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,Xt),(0,e.createElementVNode)(`span`,Zt,(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`,Qt,[(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,$t),S(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,en)):(0,e.createCommentVNode)(``,!0)]))],2)):(0,e.createCommentVNode)(``,!0)],42,Yt))],64))),128))],46,Gt)),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`,nn)):((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,an),(0,e.createElementVNode)(`span`,on,(0,e.toDisplayString)((0,e.unref)(n).format(b(t).label)),1)],10,rn))],64))),128))],46,tn)):(0,e.createCommentVNode)(``,!0)])):(0,e.createCommentVNode)(``,!0)}}),un=e=>`custom`in e&&e.custom===!0,dn=e=>!un(e)&&!(`onClick`in e),fn=e=>!un(e)&&`onClick`in e,pn=e=>e==null?[]:Array.isArray(e)?e:[e],mn=Symbol(`vdd-sidebar`),hn=Symbol(`vdd-sidebar-tab`),gn={key:0,class:`vdd-sidebar-tabs-list`},_n=[`title`,`aria-pressed`,`data-vdd-sidebar-tab`,`onClick`],vn=[`disabled`,`title`,`aria-label`,`data-vdd-rail-action`,`onClick`],yn=[`title`,`aria-pressed`,`data-vdd-sidebar-tab`,`onClick`],bn=56,xn=(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?`${bn}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:`${bn}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`,gn,[((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,_n))),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)(un)(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)(fn)(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,vn)):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,yn))],64))),128))],2)):(0,e.createCommentVNode)(``,!0)],64))),64))],6)],4))}}),Sn=(0,e.defineComponent)({__name:`VddSidebarTabScope`,props:{tabId:{}},emits:[`close`,`open`],setup(t,{emit:n}){let r=t,i=n;return(0,e.provide)(hn,{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 Cn(){let t=(0,e.inject)(P,null);return e=>t?t.format(t.messages[e]):ae(ie[e])}var wn=[`data-vdd-sidebar-pane`],Tn={key:1,class:`vdd-sidebar-drawer-header`},En={class:`vdd-sidebar-header-title`},Dn=[`title`,`aria-label`],On=(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=Cn(),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`,Tn,[(0,e.createElementVNode)(`span`,En,(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,Dn)):(0,e.createCommentVNode)(``,!0)])),(0,e.createVNode)(Sn,{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,wn))),128))],6))}}),kn=[`data-vdd-sidebar`,`dir`],An={key:3,class:`vdd-sidebar-main`},jn=(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)(()=>pn(n.headerAction)),l=(0,e.computed)(()=>pn(n.footerAction)),u=(0,e.computed)(()=>[...c.value.filter(dn),...n.tabs,...l.value.filter(dn)]),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`!==xe(t);S.value=!0,U({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)(mn,{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)(P,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)(xn,{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)(On,{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`,An,[(0,e.renderSlot)(n.$slots,`default`)])):(0,e.createCommentVNode)(``,!0)],64))),128))],8,kn))}}),Mn=(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)(mn,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)(jn,(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`]))}}),Nn=e=>!(`type`in e);function Pn(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 Fn=[`title`,`aria-label`,`aria-expanded`,`disabled`,`data-vdd-toolbar-item`],In=[`dir`,`data-vdd-flyout`],Ln={key:0,class:`vdd-toolbar-group-flyout-sep`,role:`separator`},Rn=[`disabled`,`aria-checked`,`data-vdd-flyout-item`,`onClick`],zn={class:`vdd-toolbar-group-flyout-icon`},Bn={class:`vdd-toolbar-group-flyout-label`},Vn={key:0,class:`vdd-toolbar-group-flyout-shortcut`},Hn=(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=>Nn(e)&&e.id===l.value)),d=(0,e.computed)(()=>u.value&&Nn(u.value)?u.value.icon:n.item.defaultIcon),f=(0,e.computed)(()=>u.value&&Nn(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=Pn(t,n.position,{width:window.innerWidth,height:window.innerHeight},xe(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`&&!Wt(e)&&(Ut(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,Fn),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)(Nn)(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`,zn,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))]),(0,e.createElementVNode)(`span`,Bn,(0,e.toDisplayString)(t.label),1),t.shortcut?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Vn,(0,e.toDisplayString)(t.shortcut),1)):(0,e.createCommentVNode)(``,!0)],10,Rn)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ln))],64))),128))],14,In)])):(0,e.createCommentVNode)(``,!0)],64))}}),Un=[`inert`,`data-vdd-toolbar`,`aria-orientation`],Wn={key:0,class:`vdd-toolbar-separator`,role:`separator`},Gn=[`title`,`aria-label`,`disabled`,`data-vdd-toolbar-item`,`onClick`],Kn=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-vdd-toolbar-item`,`onClick`],qn=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-vdd-toolbar-item`,`onClick`],Jn=(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`,Wn)):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,Gn)):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,Kn)):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,qn)):n.type===`group`?((0,e.openBlock)(),(0,e.createBlock)(Hn,{key:4,item:n,position:t.position},null,8,[`item`,`position`])):(0,e.createCommentVNode)(``,!0)],64))),128))],14,Un))}}),J=new Map,Yn=0;function Xn(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||Wt(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;Ut(e),s()}let l=0;(0,e.onMounted)(()=>{l=++Yn,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 Qe({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 Zn=[`title`,`aria-label`],Qn=(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,Zn)):(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))}}),$n=[`dir`,`data-vdd-side-panel`],er=(0,e.defineComponent)({__name:`VddSidePanelHost`,props:{instance:{},position:{},defaultWidth:{}},setup(t){let n=t,r=K(),{displayTitle:i,icon:a,close:o,bodyPadding:s}=Xn(()=>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)(Qn,{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,$n))}}),tr=(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)(er,{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)(er,{key:a.value.id,instance:a.value,position:`right`,"default-width":t.defaultWidth},null,8,[`instance`,`default-width`])):(0,e.createCommentVNode)(``,!0)],64))}}),nr=[`dir`,`data-vdd-modal`],rr=(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}=Xn(()=>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)(Qn,{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,nr))}}),ir=[`data-vdd-dialog-icon`],ar={key:1,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},or={key:0,d:`M5 8l2 2 4-4`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},sr={key:1,d:`M5.5 5.5l5 5M10.5 5.5l-5 5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},cr={key:2,d:`M8 5v.01M8 7.5v3.5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},lr=(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`,ar,[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`,or)):t.type===`danger`?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,sr)):((0,e.openBlock)(),(0,e.createElementBlock)(`path`,cr))],64))]))],10,ir))}}),ur={class:`vdd-dialog-content`},dr={class:`vdd-confirmation-message`},fr={class:`vdd-confirmation-actions`},pr=(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`,ur,[(0,e.createVNode)(lr,{icon:t.icon,type:t.alertType,question:``},null,8,[`icon`,`type`]),(0,e.createElementVNode)(`div`,dr,(0,e.toDisplayString)((0,e.unref)(r).format(t.message)),1)]),(0,e.createElementVNode)(`div`,fr,[(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))}}),mr=(0,e.defineComponent)({__name:`VddModals`,setup(t){let n=K(),{overlays:r}=n;function i(e){return new Promise(t=>{r.openModal(pr,{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)(rr,{key:t.id,instance:t,index:n},null,8,[`instance`,`index`]))),128))}}),hr={duration:5e3,closable:!0},Y=(0,e.reactive)({items:[],adapter:null,defaults:{...hr}}),X=new Set,gr=0;function _r(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function vr(e,t,n,r){let i=_r(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-${++gr}`,r={...t,id:n};if(Y.adapter)return vr(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 yr(e){let t=Y.items.find(t=>t.id===e);t&&!t.exiting&&(t.exiting=!0,t.options.onClose?.())}function br(e){let t=Y.items.findIndex(t=>t.id===e);t!==-1&&Y.items.splice(t,1)}function xr(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])yr(e.id);return}yr(e)}var Sr=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:xr,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 Cr(){Y.items.splice(0),Y.adapter=null,Y.defaults={...hr},X.clear()}function wr(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)vr(t,e.id,e.message,e.options)}var Tr={class:`vdd-toast__icon`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},Er={key:0,d:`M5 8l2 2 4-4`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},Dr={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`},kr=(0,e.defineComponent)({__name:`VddToastIcon`,props:{type:{}},setup(t){return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,Tr,[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`,Er)):t.type===`error`?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,Dr)):((0,e.openBlock)(),(0,e.createElementBlock)(`path`,Or))],64))]))}}),Ar=[`data-vdd-toast`],jr=[`aria-label`],Mr=(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=Cn(),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(()=>yr(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)(kr,{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)(yr)(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,jr)):(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,Ar))}}),Nr=[`dir`,`aria-label`],Pr=(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=Cn(),r=t;(0,e.watch)(()=>[r.adapter,r.defaultDuration,r.defaultClosable],([e,t,n])=>wr(e??null,{duration:t,closable:n}),{immediate:!0}),(0,e.onBeforeUnmount)(()=>{r.adapter&&(0,e.toRaw)(Y.adapter)===(0,e.toRaw)(r.adapter)&&wr(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)&&br(t.id)},{immediate:!0});let a=(0,e.computed)(()=>r.position.endsWith(`left`)),o=(0,e.inject)(P,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)(Mr,{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)(br)},null,8,[`toast`,`is-left`,`show-progress`,`pause-on-hover`,`animation`,`default-duration`,`default-closable`,`onExited`]))),128))],14,Nr)]))}}),Fr={class:`vdd-dialog-content`},Ir={class:`vdd-confirmation-message`},Lr={class:`vdd-confirmation-actions`},Rr=(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`,Fr,[(0,e.createVNode)(lr,{icon:t.icon,type:t.alertType},null,8,[`icon`,`type`]),(0,e.createElementVNode)(`div`,Ir,(0,e.toDisplayString)((0,e.unref)(r).format(t.message)),1)]),(0,e.createElementVNode)(`div`,Lr,[(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`,zr=(e,t)=>t===`inline`?$(e)?`both`:`width`:Q(e)?`both`:`height`,Br=(e,t)=>t===`inline`?e===`both`?`height`:Q(e)?null:e:e===`both`?`width`:$(e)?null:e,Vr=(e,t)=>$(t)?[]:Q(t)?e.startsWith(`top-`)?[`top-left`,`top-right`]:[`bottom-left`,`bottom-right`]:[e],Hr=[`top-left`,`top-right`,`bottom-left`,`bottom-right`];function Ur(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 Wr=e=>e.endsWith(`-left`)?e.replace(`-left`,`-right`):e.replace(`-right`,`-left`);function Gr(e,t){return{left:(t?e.inlineEnd:e.inlineStart)+8,right:(t?e.inlineStart:e.inlineEnd)+8,top:e.top,bottom:e.bottom}}function Kr(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 qr(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 Jr(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 Yr=Symbol(`vdd-panel-overlay`);function Xr(){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=Vr(t,n);for(let t of Hr){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 Hr)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 Zr(){let t=(0,e.inject)(Yr,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 Qr(){return(0,e.inject)(Yr,null)}function $r(){let t=Zr();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 ei=[`dir`,`data-vdd-widget`],ti={key:0,class:`vdd-panel-float__icon`},ni={class:`vdd-panel-float__title`},ri=[`title`,`aria-label`],ii={class:`vdd-panel-float__body`},ai=[`data-vdd-widget-resize`,`onPointerdown`],oi=(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=Qr(),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=()=>Gr(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}:Jr(n.widgetId,Vr(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)(()=>Kr(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=Ur(i.getBoundingClientRect(),e.clientX,e.clientY);o.hovered.value=t&&c.value?Wr(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=Br(r,`inline`)),n.block&&(r=Br(r,`block`)),h(qr(l.value,e,n,c.value),r)}U({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=W(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?Br(Br(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=zr(t,`inline`)),S.block&&(t=zr(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`,ti,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,ni,(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,ri)],32),(0,e.createElementVNode)(`div`,ii,[(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,ai))),128))],46,ei)):(0,e.createCommentVNode)(``,!0)}}),si=[`data-vdd-dropzone`],ci=(0,e.defineComponent)({__name:`VddPanelOverlay`,setup(t){let n=Xr();(0,e.provide)(Yr,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)(Hr),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,si))),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)(oi,{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))}}),li=[`data-variant`,`data-btn-variant`,`data-vdd-panel-toolbar`,`aria-orientation`],ui=(0,e.defineComponent)({__name:`VddPanelToolbar`,props:{position:{},variant:{default:`transparent`},buttonVariant:{default:`ghost`},buttonSize:{default:void 0}},setup(t){let n=t,r=Zr(),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,li))}}),di=[`title`,`aria-label`,`disabled`,`data-variant`],fi=(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,di))}}),pi=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-variant`],mi=(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,pi))}}),hi={class:`vdd-panel-toolbar__sep`,"aria-hidden":`true`},gi=(0,e.defineComponent)({__name:`VddToolbarSeparator`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,hi))}}),_i={class:`vdd-panel-toolbar__spacer`,"aria-hidden":`true`},vi=(0,e.defineComponent)({__name:`VddToolbarSpacer`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,_i))}}),yi={class:`vdd-panel-toolbar__item`},bi=(0,e.defineComponent)({__name:`VddToolbarItem`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,yi,[(0,e.renderSlot)(t.$slots,`default`)]))}}),xi={class:`vdd-panel-toolbar__center`},Si=(0,e.defineComponent)({__name:`VddToolbarCenter`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,xi,[(0,e.renderSlot)(t.$slots,`default`)]))}}),Ci=[`title`,`aria-label`],wi=[`placeholder`],Ti={key:0,class:`vdd-panel-toolbar-search__group`},Ei=[`data-vdd-search-result`,`onClick`],Di={key:0,class:`vdd-panel-toolbar-search__item-icon`},Oi={class:`vdd-panel-toolbar-search__item-label`},ki={key:1,class:`vdd-panel-toolbar-search__item-desc`},Ai=(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){Wt(e)||(Ut(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,Ci),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,wi)),[[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`,Ti,(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`,Di,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,Oi,(0,e.toDisplayString)(t.label),1),t.description?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,ki,(0,e.toDisplayString)(t.description),1)):(0,e.createCommentVNode)(``,!0)],8,Ei))),128))],64))),128))],36)])):(0,e.createCommentVNode)(``,!0)],34))}});function ji(){let e=K();return t=>e.showContextMenu(t)}function Mi(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 Ni(){let t=(0,e.inject)(mn,null);if(!t)throw Error(`[vue-dockable-desktop] useSidebar() must be used inside a <VddSidebar>.`);return t}function Pi(){let t=(0,e.inject)(hn,null);if(!t)throw Error(`[vue-dockable-desktop] useSidebarTab() must be used inside a sidebar tab's content.`);return t}function Fi(){return K().toolbar}function Ii(){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(pr,{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(Rr,{message:e,alertType:i,icon:a,okLabel:o,onSettled:c},{title:r??t.messages.alertTitle,size:s})})}}function Li(){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 Ri(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 zi(){return K().activeContribution}function Bi(t){let n=zi();return(0,e.computed)(()=>M((0,e.toValue)(t),n.value))}function Vi(t,n){let r=zi();return(0,e.computed)(()=>ue((0,e.toValue)(t),r.value,n))}var Hi=`1.11.1`;exports.PanelRegistry=D,exports.VddAlert=Rr,exports.VddConfirm=pr,exports.VddContextMenu=ln,exports.VddDesktop=Vt,exports.VddFloatingWidget=oi,exports.VddModals=mr,exports.VddPanelOverlay=ci,exports.VddPanelToolbar=ui,exports.VddSecondarySidebar=Mn,exports.VddSidePanels=tr,exports.VddSidebar=jn,exports.VddToasts=Pr,exports.VddToolbar=Jn,exports.VddToolbarButton=fi,exports.VddToolbarCenter=Si,exports.VddToolbarItem=bi,exports.VddToolbarSearch=Ai,exports.VddToolbarSeparator=gi,exports.VddToolbarSpacer=vi,exports.VddToolbarToggle=mi,exports.WORKSPACE_KEY=P,exports.clampFloatingRect=L,exports.computeResizedRect=W,exports.createWorkspace=I,exports.defaultMessages=ie,exports.definePanels=F,exports.formatLabel=ae,exports.isSerializable=E,exports.mergeSidebarTabs=ue,exports.mergeToolbarItems=M,exports.resetToasts=Cr,exports.sectionToTab=j,exports.startPointerDrag=U,exports.toast=Sr,exports.useActiveContribution=zi,exports.useColorScheme=Ae,exports.useContextMenu=ji,exports.useFloatingWidgets=$r,exports.useMergedSidebarTabs=Vi,exports.useMergedToolbarItems=Bi,exports.useModals=Ii,exports.usePanel=q,exports.usePanelContextMenu=Mi,exports.usePanelContribution=Ri,exports.useSidePanels=Li,exports.useSidebar=Ni,exports.useSidebarTab=Pi,exports.useToolbar=Fi,exports.useWorkspace=K,exports.version=Hi;
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=L(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=De(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=()=>{_e(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(),ve(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)(vt,{key:0})):(0,e.createCommentVNode)(``,!0),(0,e.createVNode)(Xe,{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,n.$slots[`tab-content`]?{name:`tab-content`,fn:(0,e.withCtx)(t=>[(0,e.renderSlot)(n.$slots,`tab-content`,(0,e.normalizeProps)((0,e.guardReactiveProps)(t)))]),key:`1`}: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)(ht,{key:t.id,window:t,viewport:f.value},null,8,[`window`,`viewport`]))),128))],512),(0,e.createVNode)(Rt,{visibility:t.taskbar,cache:(0,e.unref)(s),"default-icon":t.defaultPanelIcon,onContextMenu:h},null,8,[`visibility`,`cache`,`default-icon`]),(0,e.createVNode)(yt),(0,e.createElementVNode)(`div`,Bt,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(u.value,t=>((0,e.openBlock)(),(0,e.createBlock)(nt,{key:t,"panel-id":t,cache:(0,e.unref)(s)},null,8,[`panel-id`,`cache`]))),128))])],10,zt))}}),Ht=new WeakSet;function Ut(e){Ht.add(e),e.preventDefault()}function Wt(e){return e.defaultPrevented||Ht.has(e)}var Gt=[`dir`],Kt={key:0,class:`vdd-context-menu__separator`,role:`separator`},qt=[`title`,`data-vdd-menu-submenu`,`aria-expanded`,`onClick`,`onPointerenter`,`onPointerleave`],Jt={class:`vdd-context-menu__label`},Yt=[`disabled`,`title`,`data-cy-action`,`data-vdd-menu-item`,`role`,`aria-checked`,`onClick`,`onPointerenter`,`onPointerleave`],Xt=[`aria-hidden`],Zt={class:`vdd-context-menu__label`},Qt={width:`12`,height:`12`,viewBox:`0 0 12 12`,fill:`none`},$t=[`fill`],en={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`},tn=[`dir`],nn={key:0,class:`vdd-context-menu__separator`,role:`separator`},rn=[`disabled`,`data-vdd-menu-item`,`onClick`],an=[`aria-hidden`],on={class:`vdd-context-menu__label`},sn=150,cn=200,ln=(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`&&!Wt(e)&&(Ut(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),sn)):(clearTimeout(d),c.value!==null&&(f=setTimeout(()=>{c.value=null},cn)))}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},cn))}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`,Kt)):(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`,Jt,(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,qt)):((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,Xt),(0,e.createElementVNode)(`span`,Zt,(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`,Qt,[(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,$t),S(t)?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,en)):(0,e.createCommentVNode)(``,!0)]))],2)):(0,e.createCommentVNode)(``,!0)],42,Yt))],64))),128))],46,Gt)),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`,nn)):((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,an),(0,e.createElementVNode)(`span`,on,(0,e.toDisplayString)((0,e.unref)(n).format(b(t).label)),1)],10,rn))],64))),128))],46,tn)):(0,e.createCommentVNode)(``,!0)])):(0,e.createCommentVNode)(``,!0)}}),un=e=>`custom`in e&&e.custom===!0,dn=e=>!un(e)&&!(`onClick`in e),fn=e=>!un(e)&&`onClick`in e,pn=e=>e==null?[]:Array.isArray(e)?e:[e],mn=Symbol(`vdd-sidebar`),hn=Symbol(`vdd-sidebar-tab`),gn={key:0,class:`vdd-sidebar-tabs-list`},_n=[`title`,`aria-pressed`,`data-vdd-sidebar-tab`,`onClick`],vn=[`disabled`,`title`,`aria-label`,`data-vdd-rail-action`,`onClick`],yn=[`title`,`aria-pressed`,`data-vdd-sidebar-tab`,`onClick`],bn=56,xn=(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?`${bn}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:`${bn}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`,gn,[((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,_n))),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)(un)(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)(fn)(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,vn)):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,yn))],64))),128))],2)):(0,e.createCommentVNode)(``,!0)],64))),64))],6)],4))}}),Sn=(0,e.defineComponent)({__name:`VddSidebarTabScope`,props:{tabId:{}},emits:[`close`,`open`],setup(t,{emit:n}){let r=t,i=n;return(0,e.provide)(hn,{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 Cn(){let t=(0,e.inject)(P,null);return e=>t?t.format(t.messages[e]):ae(ie[e])}var wn=[`data-vdd-sidebar-pane`],Tn={key:1,class:`vdd-sidebar-drawer-header`},En={class:`vdd-sidebar-header-title`},Dn=[`title`,`aria-label`],On=(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=Cn(),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`,Tn,[(0,e.createElementVNode)(`span`,En,(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,Dn)):(0,e.createCommentVNode)(``,!0)])),(0,e.createVNode)(Sn,{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,wn))),128))],6))}}),kn=[`data-vdd-sidebar`,`dir`],An={key:3,class:`vdd-sidebar-main`},jn=(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)(()=>pn(n.headerAction)),l=(0,e.computed)(()=>pn(n.footerAction)),u=(0,e.computed)(()=>[...c.value.filter(dn),...n.tabs,...l.value.filter(dn)]),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`!==xe(t);S.value=!0,U({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)(mn,{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)(P,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)(xn,{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)(On,{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`,An,[(0,e.renderSlot)(n.$slots,`default`)])):(0,e.createCommentVNode)(``,!0)],64))),128))],8,kn))}}),Mn=(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)(mn,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)(jn,(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`]))}}),Nn=e=>!(`type`in e);function Pn(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 Fn=[`title`,`aria-label`,`aria-expanded`,`disabled`,`data-vdd-toolbar-item`],In=[`dir`,`data-vdd-flyout`],Ln={key:0,class:`vdd-toolbar-group-flyout-sep`,role:`separator`},Rn=[`disabled`,`aria-checked`,`data-vdd-flyout-item`,`onClick`],zn={class:`vdd-toolbar-group-flyout-icon`},Bn={class:`vdd-toolbar-group-flyout-label`},Vn={key:0,class:`vdd-toolbar-group-flyout-shortcut`},Hn=(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=>Nn(e)&&e.id===l.value)),d=(0,e.computed)(()=>u.value&&Nn(u.value)?u.value.icon:n.item.defaultIcon),f=(0,e.computed)(()=>u.value&&Nn(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=Pn(t,n.position,{width:window.innerWidth,height:window.innerHeight},xe(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`&&!Wt(e)&&(Ut(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,Fn),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)(Nn)(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`,zn,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))]),(0,e.createElementVNode)(`span`,Bn,(0,e.toDisplayString)(t.label),1),t.shortcut?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Vn,(0,e.toDisplayString)(t.shortcut),1)):(0,e.createCommentVNode)(``,!0)],10,Rn)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ln))],64))),128))],14,In)])):(0,e.createCommentVNode)(``,!0)],64))}}),Un=[`inert`,`data-vdd-toolbar`,`aria-orientation`],Wn={key:0,class:`vdd-toolbar-separator`,role:`separator`},Gn=[`title`,`aria-label`,`disabled`,`data-vdd-toolbar-item`,`onClick`],Kn=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-vdd-toolbar-item`,`onClick`],qn=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-vdd-toolbar-item`,`onClick`],Jn=(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`,Wn)):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,Gn)):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,Kn)):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,qn)):n.type===`group`?((0,e.openBlock)(),(0,e.createBlock)(Hn,{key:4,item:n,position:t.position},null,8,[`item`,`position`])):(0,e.createCommentVNode)(``,!0)],64))),128))],14,Un))}}),J=new Map,Yn=0;function Xn(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||Wt(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;Ut(e),s()}let l=0;(0,e.onMounted)(()=>{l=++Yn,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 Qe({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 Zn=[`title`,`aria-label`],Qn=(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,Zn)):(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))}}),$n=[`dir`,`data-vdd-side-panel`],er=(0,e.defineComponent)({__name:`VddSidePanelHost`,props:{instance:{},position:{},defaultWidth:{}},setup(t){let n=t,r=K(),{displayTitle:i,icon:a,close:o,bodyPadding:s}=Xn(()=>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)(Qn,{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,$n))}}),tr=(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)(er,{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)(er,{key:a.value.id,instance:a.value,position:`right`,"default-width":t.defaultWidth},null,8,[`instance`,`default-width`])):(0,e.createCommentVNode)(``,!0)],64))}}),nr=[`dir`,`data-vdd-modal`],rr=(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}=Xn(()=>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)(Qn,{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,nr))}}),ir=[`data-vdd-dialog-icon`],ar={key:1,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},or={key:0,d:`M5 8l2 2 4-4`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},sr={key:1,d:`M5.5 5.5l5 5M10.5 5.5l-5 5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},cr={key:2,d:`M8 5v.01M8 7.5v3.5`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`},lr=(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`,ar,[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`,or)):t.type===`danger`?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,sr)):((0,e.openBlock)(),(0,e.createElementBlock)(`path`,cr))],64))]))],10,ir))}}),ur={class:`vdd-dialog-content`},dr={class:`vdd-confirmation-message`},fr={class:`vdd-confirmation-actions`},pr=(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`,ur,[(0,e.createVNode)(lr,{icon:t.icon,type:t.alertType,question:``},null,8,[`icon`,`type`]),(0,e.createElementVNode)(`div`,dr,(0,e.toDisplayString)((0,e.unref)(r).format(t.message)),1)]),(0,e.createElementVNode)(`div`,fr,[(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))}}),mr=(0,e.defineComponent)({__name:`VddModals`,setup(t){let n=K(),{overlays:r}=n;function i(e){return new Promise(t=>{r.openModal(pr,{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)(rr,{key:t.id,instance:t,index:n},null,8,[`instance`,`index`]))),128))}}),hr={duration:5e3,closable:!0},Y=(0,e.reactive)({items:[],adapter:null,defaults:{...hr}}),X=new Set,gr=0;function _r(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function vr(e,t,n,r){let i=_r(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-${++gr}`,r={...t,id:n};if(Y.adapter)return vr(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 yr(e){let t=Y.items.find(t=>t.id===e);t&&!t.exiting&&(t.exiting=!0,t.options.onClose?.())}function br(e){let t=Y.items.findIndex(t=>t.id===e);t!==-1&&Y.items.splice(t,1)}function xr(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])yr(e.id);return}yr(e)}var Sr=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:xr,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 Cr(){Y.items.splice(0),Y.adapter=null,Y.defaults={...hr},X.clear()}function wr(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)vr(t,e.id,e.message,e.options)}var Tr={class:`vdd-toast__icon`,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`},Er={key:0,d:`M5 8l2 2 4-4`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},Dr={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`},kr=(0,e.defineComponent)({__name:`VddToastIcon`,props:{type:{}},setup(t){return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,Tr,[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`,Er)):t.type===`error`?((0,e.openBlock)(),(0,e.createElementBlock)(`path`,Dr)):((0,e.openBlock)(),(0,e.createElementBlock)(`path`,Or))],64))]))}}),Ar=[`data-vdd-toast`],jr=[`aria-label`],Mr=(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=Cn(),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(()=>yr(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)(kr,{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)(yr)(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,jr)):(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,Ar))}}),Nr=[`dir`,`aria-label`],Pr=(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=Cn(),r=t;(0,e.watch)(()=>[r.adapter,r.defaultDuration,r.defaultClosable],([e,t,n])=>wr(e??null,{duration:t,closable:n}),{immediate:!0}),(0,e.onBeforeUnmount)(()=>{r.adapter&&(0,e.toRaw)(Y.adapter)===(0,e.toRaw)(r.adapter)&&wr(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)&&br(t.id)},{immediate:!0});let a=(0,e.computed)(()=>r.position.endsWith(`left`)),o=(0,e.inject)(P,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)(Mr,{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)(br)},null,8,[`toast`,`is-left`,`show-progress`,`pause-on-hover`,`animation`,`default-duration`,`default-closable`,`onExited`]))),128))],14,Nr)]))}}),Fr={class:`vdd-dialog-content`},Ir={class:`vdd-confirmation-message`},Lr={class:`vdd-confirmation-actions`},Rr=(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`,Fr,[(0,e.createVNode)(lr,{icon:t.icon,type:t.alertType},null,8,[`icon`,`type`]),(0,e.createElementVNode)(`div`,Ir,(0,e.toDisplayString)((0,e.unref)(r).format(t.message)),1)]),(0,e.createElementVNode)(`div`,Lr,[(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`,zr=(e,t)=>t===`inline`?$(e)?`both`:`width`:Q(e)?`both`:`height`,Br=(e,t)=>t===`inline`?e===`both`?`height`:Q(e)?null:e:e===`both`?`width`:$(e)?null:e,Vr=(e,t)=>$(t)?[]:Q(t)?e.startsWith(`top-`)?[`top-left`,`top-right`]:[`bottom-left`,`bottom-right`]:[e],Hr=[`top-left`,`top-right`,`bottom-left`,`bottom-right`];function Ur(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 Wr=e=>e.endsWith(`-left`)?e.replace(`-left`,`-right`):e.replace(`-right`,`-left`);function Gr(e,t){return{left:(t?e.inlineEnd:e.inlineStart)+8,right:(t?e.inlineStart:e.inlineEnd)+8,top:e.top,bottom:e.bottom}}function Kr(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 qr(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 Jr(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 Yr=Symbol(`vdd-panel-overlay`);function Xr(){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=Vr(t,n);for(let t of Hr){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 Hr)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 Zr(){let t=(0,e.inject)(Yr,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 Qr(){return(0,e.inject)(Yr,null)}function $r(){let t=Zr();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 ei=[`dir`,`data-vdd-widget`],ti={key:0,class:`vdd-panel-float__icon`},ni={class:`vdd-panel-float__title`},ri=[`title`,`aria-label`],ii={class:`vdd-panel-float__body`},ai=[`data-vdd-widget-resize`,`onPointerdown`],oi=(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=Qr(),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=()=>Gr(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}:Jr(n.widgetId,Vr(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)(()=>Kr(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=Ur(i.getBoundingClientRect(),e.clientX,e.clientY);o.hovered.value=t&&c.value?Wr(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=Br(r,`inline`)),n.block&&(r=Br(r,`block`)),h(qr(l.value,e,n,c.value),r)}U({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=W(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?Br(Br(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=zr(t,`inline`)),S.block&&(t=zr(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`,ti,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,ni,(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,ri)],32),(0,e.createElementVNode)(`div`,ii,[(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,ai))),128))],46,ei)):(0,e.createCommentVNode)(``,!0)}}),si=[`data-vdd-dropzone`],ci=(0,e.defineComponent)({__name:`VddPanelOverlay`,setup(t){let n=Xr();(0,e.provide)(Yr,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)(Hr),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,si))),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)(oi,{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))}}),li=[`data-variant`,`data-btn-variant`,`data-vdd-panel-toolbar`,`aria-orientation`],ui=(0,e.defineComponent)({__name:`VddPanelToolbar`,props:{position:{},variant:{default:`transparent`},buttonVariant:{default:`ghost`},buttonSize:{default:void 0}},setup(t){let n=t,r=Zr(),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,li))}}),di=[`title`,`aria-label`,`disabled`,`data-variant`],fi=(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,di))}}),pi=[`title`,`aria-label`,`aria-pressed`,`disabled`,`data-variant`],mi=(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,pi))}}),hi={class:`vdd-panel-toolbar__sep`,"aria-hidden":`true`},gi=(0,e.defineComponent)({__name:`VddToolbarSeparator`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,hi))}}),_i={class:`vdd-panel-toolbar__spacer`,"aria-hidden":`true`},vi=(0,e.defineComponent)({__name:`VddToolbarSpacer`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,_i))}}),yi={class:`vdd-panel-toolbar__item`},bi=(0,e.defineComponent)({__name:`VddToolbarItem`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,yi,[(0,e.renderSlot)(t.$slots,`default`)]))}}),xi={class:`vdd-panel-toolbar__center`},Si=(0,e.defineComponent)({__name:`VddToolbarCenter`,setup(t){return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,xi,[(0,e.renderSlot)(t.$slots,`default`)]))}}),Ci=[`title`,`aria-label`],wi=[`placeholder`],Ti={key:0,class:`vdd-panel-toolbar-search__group`},Ei=[`data-vdd-search-result`,`onClick`],Di={key:0,class:`vdd-panel-toolbar-search__item-icon`},Oi={class:`vdd-panel-toolbar-search__item-label`},ki={key:1,class:`vdd-panel-toolbar-search__item-desc`},Ai=(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){Wt(e)||(Ut(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,Ci),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,wi)),[[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`,Ti,(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`,Di,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(t.icon)))])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,Oi,(0,e.toDisplayString)(t.label),1),t.description?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,ki,(0,e.toDisplayString)(t.description),1)):(0,e.createCommentVNode)(``,!0)],8,Ei))),128))],64))),128))],36)])):(0,e.createCommentVNode)(``,!0)],34))}});function ji(){let e=K();return t=>e.showContextMenu(t)}function Mi(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 Ni(){let t=(0,e.inject)(mn,null);if(!t)throw Error(`[vue-dockable-desktop] useSidebar() must be used inside a <VddSidebar>.`);return t}function Pi(){let t=(0,e.inject)(hn,null);if(!t)throw Error(`[vue-dockable-desktop] useSidebarTab() must be used inside a sidebar tab's content.`);return t}function Fi(){return K().toolbar}function Ii(){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(pr,{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(Rr,{message:e,alertType:i,icon:a,okLabel:o,onSettled:c},{title:r??t.messages.alertTitle,size:s})})}}function Li(){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 Ri(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 zi(){return K().activeContribution}function Bi(t){let n=zi();return(0,e.computed)(()=>M((0,e.toValue)(t),n.value))}function Vi(t,n){let r=zi();return(0,e.computed)(()=>ue((0,e.toValue)(t),r.value,n))}var Hi=`1.11.2`;exports.PanelRegistry=D,exports.VddAlert=Rr,exports.VddConfirm=pr,exports.VddContextMenu=ln,exports.VddDesktop=Vt,exports.VddFloatingWidget=oi,exports.VddModals=mr,exports.VddPanelOverlay=ci,exports.VddPanelToolbar=ui,exports.VddSecondarySidebar=Mn,exports.VddSidePanels=tr,exports.VddSidebar=jn,exports.VddToasts=Pr,exports.VddToolbar=Jn,exports.VddToolbarButton=fi,exports.VddToolbarCenter=Si,exports.VddToolbarItem=bi,exports.VddToolbarSearch=Ai,exports.VddToolbarSeparator=gi,exports.VddToolbarSpacer=vi,exports.VddToolbarToggle=mi,exports.WORKSPACE_KEY=P,exports.clampFloatingRect=L,exports.computeResizedRect=W,exports.createWorkspace=I,exports.defaultMessages=ie,exports.definePanels=F,exports.formatLabel=ae,exports.isSerializable=E,exports.mergeSidebarTabs=ue,exports.mergeToolbarItems=M,exports.resetToasts=Cr,exports.sectionToTab=j,exports.startPointerDrag=U,exports.toast=Sr,exports.useActiveContribution=zi,exports.useColorScheme=Ae,exports.useContextMenu=ji,exports.useFloatingWidgets=$r,exports.useMergedSidebarTabs=Vi,exports.useMergedToolbarItems=Bi,exports.useModals=Ii,exports.usePanel=q,exports.usePanelContextMenu=Mi,exports.usePanelContribution=Ri,exports.useSidePanels=Li,exports.useSidebar=Ni,exports.useSidebarTab=Pi,exports.useToolbar=Fi,exports.useWorkspace=K,exports.version=Hi;
5
5
  //# sourceMappingURL=index.cjs.map