epic-modals 1.0.4 → 1.0.6

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/dist/backdrop.js CHANGED
@@ -1 +1 @@
1
- var t=Object.defineProperty,i=(i,e,n)=>((i,e,n)=>e in i?t(i,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[e]=n)(i,"symbol"!=typeof e?e+"":e,n);const e=Symbol.for("epic-modals-core");if(typeof globalThis<"u"){const t=globalThis;t[e],t[e]=!0}const n=new Map;let o=0,s=null;function a(t){s=t}let r=null;function d(t){r=t}const l=new Set;let h=!1,g=[],c=[],u=[],m=[],p=[],f=[],w=[],y=[],z=[],x=null;function v(t){x=t}const P=new Map;let I=null;function M(t){I=t}const b=new Map,C=new Set,A=new Set,B=new Set;let D=[];function S(t){D=t}function H(t){g=t}function k(t){c=t}function R(t){u=t}function E(t){m=t}function T(t){p=t}function W(t){f=t}function O(t){w=t}function F(t){y=t}function L(){o++,function(){if(!h){h=!0;try{l.forEach(t=>t())}finally{h=!1}}}()}function _(){return o}function G(t){return l.add(t),()=>l.delete(t)}function $(t,i){return!!n.get(t)||(function(){var t,i;try{const e=import.meta;return!0===(null==(t=e.env)?void 0:t.DEV)||"development"===(null==(i=e.env)?void 0:i.MODE)}catch{return!1}}(),!1)}function Y(t){return"boolean"==typeof t?{visible:t,blockClicks:t}:t}let V={features:{dock:!0,minimize:!0,transparency:!0,resize:!0,drag:!0,focusTrap:!0,animations:!0,backdrop:!0,parentChild:!0},dock:{position:"bottom",labelMode:"beside",enableReorder:!0,enableFreeDrag:!0},animations:{open:400,close:250,minimize:500,restore:400,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)"},appearance:{headerLayout:"macos",defaultWidth:"480px",defaultHeight:"auto",minWidth:280,minHeight:200},zIndex:{base:400,dock:8e3,toast:9e3},parentChild:{movementMode:"animated",animationDuration:300},positioning:{strategy:"smart",modalGap:16,avoidElements:[]},portalTarget:"#modal-portal"},X=0;const q=new Set;function K(t){return q.add(t),()=>q.delete(t)}function j(){return X}function N(){return V}function U(t){const i=V;V=J(V,t),X++,q.forEach(t=>t()),i.features.dock&&!V.features.dock&&(Array.from(n.values()).filter(t=>t.isMinimized).map(t=>t.id).forEach(t=>{const i=n.get(t);if(i){n.set(t,{...i,isMinimized:!1,isOpen:!0}),T([...p,t]),nt(t);const e=i.lastChildId||i.childId;e&&Ft(e)}}),S([]),L())}function J(t,i){var e;return{features:{...t.features,...i.features},dock:{...t.dock,...i.dock},animations:{...t.animations,...i.animations},appearance:{...t.appearance,...i.appearance},zIndex:{...t.zIndex,...i.zIndex},parentChild:{...t.parentChild,...i.parentChild},positioning:{...t.positioning,...i.positioning,avoidElements:(null==(e=i.positioning)?void 0:e.avoidElements)??t.positioning.avoidElements},portalTarget:i.portalTarget??t.portalTarget}}function Q(t,i){const e=N(),n=i?J(e,i):e;return{isFeatureEnabled:i=>{var e;if(void 0!==(null==(e=null==t?void 0:t.features)?void 0:e[i])){const e=t.features[i];if("backdrop"===i){const t=Y(e);return t.visible||t.blockClicks}return e}const o=n.features[i];if("backdrop"===i){const t=Y(o);return t.visible||t.blockClicks}return o},getAppearance:i=>{var e;return void 0!==(null==(e=null==t?void 0:t.appearance)?void 0:e[i])?t.appearance[i]:n.appearance[i]},getPositioning:i=>{var e;return void 0!==(null==(e=null==t?void 0:t.positioning)?void 0:e[i])?t.positioning[i]:n.positioning[i]},getEffectiveConfig:()=>n}}function Z(t){return{id:t.id,title:t.title,icon:t.icon??"",isOpen:t.autoOpen??!1,isMinimized:!1,isHiddenWithParent:!1,isTransparent:!1,isRejected:!1,position:null,size:null,hasBeenDragged:!1,dockPosition:0,glow:t.glow??null,parentId:void 0,childId:void 0,offsetFromParent:void 0}}function tt(t){const i=n.get(t.id);let e;e=null!=i&&i.zIndex?i.zIndex:Math.max(...Array.from(n.values()).map(t=>t.zIndex),N().zIndex.base-2)+2;const o=c.includes(t.id),s=t.isOpen||o;i?n.set(t.id,{...i,title:t.title,icon:t.icon,glow:t.glow,zIndex:e}):n.set(t.id,{...t,isOpen:s,zIndex:e,isAnimating:!1}),L(),t.isMinimized&&!D.includes(t.id)&&S([...D,t.id])}function it(t){const i=n.get(t);if(i){if(S(D.filter(i=>i!==t)),k(c.filter(i=>i!==t)),R(u.filter(i=>i!==t)),E(m.filter(i=>i!==t)),H(g.filter(i=>i!==t)),T(p.filter(i=>i!==t)),W(f.filter(i=>i!==t)),O(w.filter(i=>i!==t)),F(y.filter(i=>i!==t)),i.childId){const t=n.get(i.childId);t&&n.set(i.childId,{...t,parentId:void 0})}if(i.parentId){const t=n.get(i.parentId);t&&n.set(i.parentId,{...t,childId:void 0,lastChildId:i.id})}n.delete(t),L(),B.delete(t),C.delete(t)}}function et(t,i){const e=n.get(t);if(null==e||!e.childId)return;const o=n.get(e.childId);if(!o)return;const s=i+2;n.set(e.childId,{...o,zIndex:s}),et(e.childId,s)}function nt(t){if(!n.get(t))return;const i=Math.max(...Array.from(n.values()).map(t=>t.zIndex),0),e=function(t){let i=t,e=n.get(i);for(;null!=e&&e.parentId;)i=e.parentId,e=n.get(i);return i}(t),o=n.get(e);if(!o)return;const s=i+2;n.set(e,{...o,zIndex:s}),et(e,s),L()}function ot(t){const i=n.get(t);if(!i)return!1;const e=Math.max(...Array.from(n.values()).map(t=>t.zIndex),0);return i.zIndex===e&&!i.isMinimized&&!i.isHiddenWithParent}const st=8;function at(t,i,e,n,o={}){const{margin:s=st,allowPartialVisibility:a=!1}=o,r=typeof window<"u"?window.innerWidth:1920,d=typeof window<"u"?window.innerHeight:1080;let l,h,g,c;return a&&e>r-2*s?(l=40-e,h=r-40):(l=s,h=Math.max(s,r-e-s)),a&&n>d-2*s?(g=40-n,c=d-40):(g=s,c=Math.max(s,d-n-s)),{x:Math.max(l,Math.min(h,t)),y:Math.max(g,Math.min(c,i))}}function rt(t,i,e,n,o={}){const{margin:s=st}=o,a=(typeof window<"u"?window.innerWidth:1920)-2*s,r=(typeof window<"u"?window.innerHeight:1080)-2*s,d=Math.min(e,a),l=Math.min(n,r),h=at(t,i,d,l,o);return{x:h.x,y:h.y,width:d,height:l}}function dt(t,i){return Math.max(0,Math.min(t.x+t.width,i.x+i.width)-Math.max(t.x,i.x))*Math.max(0,Math.min(t.y+t.height,i.y+i.height)-Math.max(t.y,i.y))}function lt(t,i,e,n,o,s){const a={x:t-s,y:i-s,width:e+2*s,height:n+2*s};let r=0;for(const t of o)r+=dt(a,t);return r}function ht(t){if(typeof document>"u")return[];const i=[];for(const e of t)try{const t=document.querySelectorAll(e);for(const e of t){const t=e.getBoundingClientRect();t.width>0&&t.height>0&&i.push({x:t.left,y:t.top,width:t.width,height:t.height})}}catch{}return i}function gt(t,i,e,n){const o=t-i,s=e-1;if(o<=0)return{interGap:0,edgeGap:0};if(e<=1)return{interGap:0,edgeGap:o/2};const a=o/(e+1);if(a>=n)return{interGap:a,edgeGap:a};const r=s*n;return o>=r?{interGap:n,edgeGap:(o-r)/2}:{interGap:o/s,edgeGap:0}}function ct(t,i,e,n,o=0){if(0===e.length)return{cols:t,rows:i,score:1/0,positions:new Map};const s=new Array(t).fill(0),a=new Array(i).fill(0);for(let i=0;i<e.length;i++){const n=i%t,o=Math.floor(i/t);s[n]=Math.max(s[n],e[i].width),a[o]=Math.max(a[o],e[i].height)}const r=s.reduce((t,i)=>t+i,0),d=a.reduce((t,i)=>t+i,0);if(r>n.width||d>n.height)return null;const{interGap:l,edgeGap:h}=gt(n.width,r,t,o),{interGap:g,edgeGap:c}=gt(n.height,d,i,o),u=new Map,m=[0];for(let i=0;i<t;i++)m.push(m[i]+s[i]);const p=[0];for(let t=0;t<i;t++)p.push(p[t]+a[t]);for(let i=0;i<e.length;i++){const o=i%t,r=Math.floor(i/t),d=e[i],f=n.x+h+o*l+m[o],w=n.y+c+r*g+p[r],y=f+(s[o]-d.width)/2,z=w+(a[r]-d.height)/2;u.set(d.id,{x:Math.round(y),y:Math.round(z)})}const f=t>1?l:h,w=i>1?g:c;return{cols:t,rows:i,score:(.6*Math.min(f,w)+.4*Math.sqrt(f*w))*(n.width>n.height==t>=i?1.02:1),positions:u}}function ut(t,i){const e=new Map,n=Math.max(...t.map(t=>t.width)),o=Math.max(...t.map(t=>t.height)),s=n+40*(t.length-1),a=o+40*(t.length-1);let r=i.x+(i.width-s)/2,d=i.y+(i.height-a)/2;r=Math.max(i.x,r),d=Math.max(i.y,d);for(let i=0;i<t.length;i++)e.set(t[i].id,{x:Math.round(r+40*i),y:Math.round(d+40*i)});return e}function mt(t,i,e={}){const{modalGap:n=16,viewportMargin:o=16,avoidBounds:s=[],avoidMargin:a=24}=e,r=typeof window<"u"?window.innerWidth:1920,d=typeof window<"u"?window.innerHeight:1080,l=new Map,h=t.filter(t=>!t.parentId),g=h.map(t=>({id:t.id,width:t.width,height:t.height}));if(i&&g.push({id:i.id,width:i.width,height:i.height}),0===g.length)return{positions:l};const c=new Map(h.map(t=>[t.id,t.currentPosition]));g.sort((t,i)=>{const e=c.get(t.id),n=c.get(i.id);return(e?e.x+t.width/2:1/0)-(n?n.x+i.width/2:1/0)});const u=function(t,i,e,n,o){let s=e,a=e,r=t-e,d=i-e;for(const e of n){const n=e.y,l=i-(e.y+e.height),h=e.x,g=t-(e.x+e.width);let c;if(e.width>e.height)c=n<=l?"top":"bottom";else if(e.height>e.width)c=h<=g?"left":"right";else{const t=Math.min(n,l,h,g);c=t===n?"top":t===l?"bottom":t===h?"left":"right"}"bottom"===c?d=Math.min(d,e.y-o):"top"===c?a=Math.max(a,e.y+e.height+o):"left"===c?s=Math.max(s,e.x+e.width+o):r=Math.min(r,e.x-o)}return{x:s,y:a,width:Math.max(0,r-s),height:Math.max(0,d-a)}}(r,d,o,s,a);if(1===g.length){const t=g[0],i=u.x+(u.width-t.width)/2,e=u.y+(u.height-t.height)/2;return l.set(t.id,{x:Math.round(i),y:Math.round(e)}),{positions:l}}const m=g.length;let p=null;for(let t=1;t<=m;t++){const i=ct(t,Math.ceil(m/t),g,u,n);i&&(null===p||i.score>p.score)&&(p=i)}if(p){for(const[t,i]of p.positions)l.set(t,i);return{positions:l}}if(i){const t=h.map(t=>({x:t.currentPosition.x,y:t.currentPosition.y,width:t.width,height:t.height})),e=function(t,i,e,n,o=20){const s=n.x+(n.width-t)/2,a=n.y+(n.height-i)/2;if(0===e.length)return{x:Math.round(s),y:Math.round(a)};const r=n.x,d=Math.max(n.x,n.x+n.width-t),l=n.y,h=Math.max(n.y,n.y+n.height-i);if(d<=r||h<=l)return{x:Math.round(s),y:Math.round(a)};const g=(d-r)/o,c=(h-l)/o;let u={x:s,y:a},m=1/0;const p=t*i,f=Math.hypot(n.width/2,n.height/2),w=n.x+n.width/2,y=n.y+n.height/2;for(let n=0;n<=o;n++)for(let s=0;s<=o;s++){const o=r+n*g,a=l+s*c,d=lt(o,a,t,i,e,0),h=p>0?d/p:0,z=Math.hypot(o+t/2-w,a+i/2-y),x=.5*h+.5*(f>0?z/f:0);x<m&&(m=x,u={x:o,y:a})}return{x:Math.round(u.x),y:Math.round(u.y)}}(i.width,i.height,t,u);return l.set(i.id,e),{positions:l}}return{positions:ut(g,u)}}function pt(t){return t}function ft(t){return typeof document>"u"?null:document.querySelector(`.modal-dialog[data-modal-id="${t}"]`)}function wt(t,i,e,n){var o;const s=i.x-e.x,a=i.y-e.y;if(0===s&&0===a)return null==(o=null==n?void 0:n.onComplete)||o.call(n),()=>{};const r=(null==n?void 0:n.duration)??300,d=(null==n?void 0:n.easing)??"ease-out";let l=!1;function h(){var t;l||(l=!0,clearTimeout(c),null==(t=null==n?void 0:n.onComplete)||t.call(n))}t.style.left=`${e.x}px`,t.style.top=`${e.y}px`;const g=t.animate([{transform:`translate(${s}px, ${a}px)`},{transform:"translate(0, 0)"}],{duration:r,easing:d,fill:"none"});g.onfinish=h;const c=setTimeout(h,r+100);return function(){l||(l=!0,clearTimeout(c),g.cancel())}}function yt(t){return n.get(t)}function zt(t){const i=n.get(t);return(null==i?void 0:i.isOpen)??!1}function xt(t){return n.has(t)}function vt(t){return C.has(t)}function Pt(){return n}function It(){const t=[];for(const i of n.values()){if(!i.isOpen||i.isMinimized||i.isHiddenWithParent||A.has(i.id))continue;const e=ft(i.id);if(!e)continue;const n=i.position??{x:e.getBoundingClientRect().left,y:e.getBoundingClientRect().top},o=i.size??{width:e.offsetWidth,height:e.offsetHeight};t.push({id:i.id,width:o.width,height:o.height,currentPosition:n,parentId:i.parentId})}return t}function Mt(t,i,e){if(!$(t))return;(function(t){if(!Number.isFinite(t.x)||!Number.isFinite(t.y))throw new Error(`[epic-modals] Invalid position in updateModalPosition: x=${t.x}, y=${t.y}`)})(i),null!=e&&e.size&&function(t){if(t.width<=0||t.height<=0)throw new Error(`[epic-modals] Invalid dimensions in updateModalPosition: width=${t.width}, height=${t.height}`)}(e.size);const o=n.get(t);if(!o)return;let s=i;if(null!=e&&e.constrain&&o.size&&(s=at(i.x,i.y,o.size.width,o.size.height)),n.set(t,{...o,position:s,size:(null==e?void 0:e.size)??o.size,hasBeenDragged:o.hasBeenDragged||(null==e?void 0:e.drag)||!1}),o.childId){let i=t,e=s;for(;;){const t=n.get(i);if(null==t||!t.childId)break;const o=n.get(t.childId);if(null==o||!o.offsetFromParent)break;const s={x:e.x+o.offsetFromParent.x,y:e.y+o.offsetFromParent.y};n.set(t.childId,{...o,position:s,hasBeenDragged:!0}),i=t.childId,e=s}}if(o.parentId&&o.offsetFromParent){const i=N();let a=t,r=o;for(;r.parentId&&r.offsetFromParent;){const o=n.get(r.parentId);if(!o)break;const d=a===t?s:n.get(a).position,l={x:d.x-r.offsetFromParent.x,y:d.y-r.offsetFromParent.y};if(!("animated"!==i.parentChild.movementMode||null!=e&&e.realtime)){b.set(r.parentId,l);break}n.set(r.parentId,{...o,position:l,hasBeenDragged:!0}),a=r.parentId,r=o}}L()}function bt(t){const i=n.get(t);if(!i||!i.isAnimatingPosition)return;i.isAnimatingPosition=!1;let e=i.childId;for(;e;){const t=n.get(e);t&&(t.isAnimatingPosition=!1),e=null==t?void 0:t.childId}L()}function Ct(t,i){const e=n.get(t);e&&(n.set(t,{...e,...i}),L())}function At(t){const i=N();"smart"===i.positioning.strategy&&(s&&clearTimeout(s),a(setTimeout(()=>{const e=It(),n=ht(i.positioning.avoidElements);Bt(mt(e,t,{modalGap:i.positioning.modalGap,viewportMargin:i.positioning.modalGap,avoidBounds:n,avoidMargin:i.positioning.modalGap}).positions),a(null)},50)))}function Bt(t){if(0===t.size)return;const i=[];for(const[e,o]of t){const t=n.get(e);if(!t)continue;const s=ft(e),a=t.position??(s?{x:s.getBoundingClientRect().left,y:s.getBoundingClientRect().top}:{x:0,y:0}),r=t.size??(s?{width:s.offsetWidth,height:s.offsetHeight}:{width:0,height:0});i.push({id:e,element:s,oldPosition:a,newPosition:o,size:r}),Dt(e,a,o,i)}for(const{id:t,newPosition:e,size:o}of i){const i=n.get(t);i&&n.set(t,{...i,position:e,size:o,hasBeenDragged:!0,isAnimatingPosition:!0})}L();for(const{id:t,element:e,oldPosition:n,newPosition:o}of i)e?wt(e,n,o,{duration:300,onComplete:()=>bt(t)}):setTimeout(()=>bt(t),400)}function Dt(t,i,e,o){const s=n.get(t);if(null==s||!s.childId)return;const a=n.get(s.childId);if(null==a||!a.offsetFromParent)return;const r=ft(s.childId),d={x:i.x+a.offsetFromParent.x,y:i.y+a.offsetFromParent.y},l={x:e.x+a.offsetFromParent.x,y:e.y+a.offsetFromParent.y};o.push({id:s.childId,element:r,oldPosition:d,newPosition:l}),n.set(s.childId,{...a,position:l,hasBeenDragged:!0,isAnimatingPosition:!0}),a.childId&&Dt(s.childId,d,l,o)}function St(){r&&clearTimeout(r),d(setTimeout(()=>{At(null),d(null)},100))}let Ht=!1;function kt(){Ht||typeof window>"u"||(window.addEventListener("resize",St),Ht=!0)}function Rt(){typeof window>"u"||(window.removeEventListener("resize",St),Ht=!1)}function Et(t){b.delete(t)}function Tt(t){const i=n.get(t);if(null==i||!i.childId)return;const e=n.get(i.childId);e&&(w.includes(i.childId)||O([...w,i.childId]),e.childId&&Tt(i.childId))}function Wt(t){const i=n.get(t);if(!i||i.isMinimized)return;if(Et(t),i.parentId){const t=n.get(i.parentId);if(t&&!t.isMinimized)return void Wt(i.parentId)}H([...g,t]),i.position&&i.size;const e=i.childId;n.set(t,{...i,isMinimized:!0,lastChildId:e}),D.includes(t)||S([...D,t]),L(),i.childId&&Tt(t),At(null)}function Ot(t){const i=n.get(t);if(!i||!i.isMinimized)return;n.set(t,{...i,isMinimized:!1,isOpen:!0}),T([...p,t]),nt(t);const e=i.lastChildId||i.childId;e&&Ft(e),L()}function Ft(t){const i=n.get(t);if(i&&i.isHiddenWithParent){W([...f,t]);const e=i.lastChildId||i.childId;e&&Ft(e)}}function Lt(t){$(t)&&(y.includes(t)||(F([...y,t]),L()))}function _t(t){t.classList.add("modal-shake"),t.addEventListener("animationend",()=>{t.classList.remove("modal-shake")},{once:!0})}function Gt(t){if(!$(t))return;const i=n.get(t);B.delete(t),n.set(t,{...i,isTransparent:!1}),L()}function $t(t,i,e){Yt(t,e,{parentId:i})}function Yt(t,i,e){const o=N(),s=n.get(t);if(s&&s.isOpen&&!s.isMinimized&&!s.isHiddenWithParent)return Lt(t),void nt(t);if(s&&s.isMinimized)return void Ot(t);if("x"in i&&"y"in i)P.set(t,i);else{const e=i.getBoundingClientRect();P.set(t,{x:e.left+e.width/2,y:e.top+e.height/2})}if(null!=e&&e.parentId&&o.features.parentChild){const i=n.get(e.parentId);null!=i&&i.childId&&i.childId!==t&&Vt(i.childId,!0),M({parentId:e.parentId,childId:t})}if(c.includes(t)||k([...c,t]),L(),!s)return;const a={isOpen:!0};null!=e&&e.parentId&&o.features.parentChild&&(a.parentId=e.parentId),n.set(t,{...s,...a}),nt(t)}function Vt(t,i=!1){const e=n.get(t);if(e&&(e.isOpen||e.isMinimized)){if(Et(t),e.childId&&Vt(e.childId,i),e.isMinimized)return S(D.filter(i=>i!==t)),void qt(t);A.add(t),i?E([...m,t]):R([...u,t]),e.parentId||At(null),L()}}function Xt(t){const i=new Set(t??[]);Array.from(n.keys()).filter(t=>!i.has(t)).forEach(t=>Vt(t,!0))}function qt(t){const i=n.get(t);if(i){if(A.delete(t),i.parentId){const e=n.get(i.parentId);e&&e.childId===t&&n.set(i.parentId,{...e,childId:void 0,lastChildId:t})}n.set(t,{...i,isOpen:!1,isMinimized:!1,isHiddenWithParent:!1,isTransparent:!1,position:null,size:null,hasBeenDragged:!1,parentId:void 0,childId:void 0,offsetFromParent:void 0}),L()}}function Kt(t){return g.includes(t)}function jt(t){return w.includes(t)}function Nt(t){return c.includes(t)}function Ut(t){return u.includes(t)}function Jt(t){return m.includes(t)}function Qt(t){E(m.filter(i=>i!==t))}function Zt(t){return p.includes(t)}function ti(t){return f.includes(t)}function ii(t){return(null==I?void 0:I.childId)===t}function ei(){return I}function ni(t){if("animated"!==N().parentChild.movementMode)return;const i=n.get(t);if(null==i||!i.parentId||!i.offsetFromParent||!i.position)return;const e={x:i.position.x-i.offsetFromParent.x,y:i.position.y-i.offsetFromParent.y};b.set(i.parentId,e),L()}const oi={BASE:0,DROPDOWN:100,STICKY:200,OVERLAY:300,MODAL:400,DOCK:8e3,TOAST:9e3};function si(){N().zIndex.base}function ai(t){const i=N();return"MODAL"===t?i.zIndex.base:"DOCK"===t?i.zIndex.dock:"TOAST"===t?i.zIndex.toast:oi[t]}function ri(){N().zIndex.base}function di(){const t=new Map;return{on(i,e){let n=t.get(i);return n||(n=new Set,t.set(i,n)),n.add(e),()=>{null==n||n.delete(e),0===(null==n?void 0:n.size)&&t.delete(i)}},emit(i,e){const n=t.get(i);n&&n.forEach(t=>t(e))},off(i){i?t.delete(i):t.clear()},listenerCount(i){var e;return(null==(e=t.get(i))?void 0:e.size)??0}}}class li{constructor(t={}){i(this,"element",null),i(this,"resizeHandler",null),i(this,"options"),this.options=t}mount(t){var i,e;this.element=t,this.options.onWindowResize&&(this.resizeHandler=this.options.onWindowResize,window.addEventListener("resize",this.resizeHandler)),null==(e=(i=this.options).onMount)||e.call(i)}destroy(){var t,i;this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null),this.element=null,null==(i=(t=this.options).onDestroy)||i.call(t)}getElement(){return this.element}isMounted(){return null!==this.element}}const hi={modal:"modal-dialog",header:"modal-header",headerDraggable:"modal-header-draggable",body:"modal-body",footer:"modal-footer",childOverlay:"modal-child-overlay",overlayClosing:"modal-overlay-closing",headerTitle:"modal-header-title",headerIcon:"modal-header-icon",headerTitleGroup:"modal-header-title-group",headerActions:"modal-header-actions",headerTrafficLights:"modal-header-traffic-lights",headerLight:"modal-header-light",headerLightClose:"modal-header-light-close",headerLightMinimize:"modal-header-light-minimize",headerLightStyle:"modal-header-light-style",headerLightDisabled:"modal-header-light-disabled",headerMacCenter:"modal-header-mac-center",headerMacSpacer:"modal-header-mac-spacer",headerBtnWindows:"modal-header-btn-windows",headerBtnWindowsClose:"modal-header-btn-windows-close",headerBtnWindowsStyle:"modal-header-btn-windows-style",headerBtnWindowsDisabled:"modal-header-btn-windows-disabled",resizeHandles:"modal-resize-handles",resizeHandle:"modal-resize-handle",resizePrefix:"modal-resize-",dock:"modal-dock",dockContainer:"modal-dock-container",dockItem:"modal-dock-item",dockItemHasGlow:"modal-dock-item-has-glow",dockItemHasChild:"modal-dock-item-has-child",dockItemLabelBeside:"modal-dock-item-label-beside",dockItemLabelBelow:"modal-dock-item-label-below",dockItemIcon:"modal-dock-item-icon",dockItemIconPlaceholder:"modal-dock-item-icon-placeholder",dockItemLabel:"modal-dock-item-label",dockItemGlow:"modal-dock-item-glow",dockChildIndicator:"modal-dock-child-indicator",dockHandle:"modal-dock-handle",dockHandleDragging:"modal-dock-handle-dragging",backdrop:"modal-backdrop",backdropVisible:"modal-backdrop-visible"},gi={dialog:hi.modal,header:hi.header,headerDraggable:hi.headerDraggable,body:hi.body,footer:hi.footer,childOverlay:hi.childOverlay,headerTitle:hi.headerTitle,headerIcon:hi.headerIcon,headerTitleGroup:hi.headerTitleGroup,headerActions:hi.headerActions,headerTrafficLights:hi.headerTrafficLights,headerLight:hi.headerLight,headerLightClose:hi.headerLightClose,headerLightMinimize:hi.headerLightMinimize,headerLightStyle:hi.headerLightStyle,headerLightDisabled:hi.headerLightDisabled,headerMacCenter:hi.headerMacCenter,headerMacSpacer:hi.headerMacSpacer,headerBtnWindows:hi.headerBtnWindows,headerBtnWindowsClose:hi.headerBtnWindowsClose,headerBtnWindowsStyle:hi.headerBtnWindowsStyle,headerBtnWindowsDisabled:hi.headerBtnWindowsDisabled,resizeHandles:hi.resizeHandles,resizeHandle:hi.resizeHandle,resizePrefix:hi.resizePrefix,dock:hi.dock,dockContainer:hi.dockContainer,dockItem:hi.dockItem,dockItemHasGlow:hi.dockItemHasGlow,dockItemHasChild:hi.dockItemHasChild,dockItemLabelBeside:hi.dockItemLabelBeside,dockItemLabelBelow:hi.dockItemLabelBelow,dockItemIcon:hi.dockItemIcon,dockItemIconPlaceholder:hi.dockItemIconPlaceholder,dockItemLabel:hi.dockItemLabel,dockItemGlow:hi.dockItemGlow,dockChildIndicator:hi.dockChildIndicator,dockHandle:hi.dockHandle,backdrop:hi.backdrop,backdropVisible:hi.backdropVisible},ci={modalId:"data-modal-id",resizeDirection:"data-direction"},ui=["n","s","e","w","ne","nw","se","sw"],mi={n:"Resize north",s:"Resize south",e:"Resize east",w:"Resize west",ne:"Resize northeast",nw:"Resize northwest",se:"Resize southeast",sw:"Resize southwest"},pi={minWidth:280,minHeight:200},fi=["button:not([disabled])","[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");function wi(t,i){const e=document.querySelector(`.modal-dock-item[data-modal-id="${t}"]`);if(e){const t=e.getBoundingClientRect();return{x:t.left+t.width/2,y:t.top+t.height/2}}const n=document.querySelector('[data-dock-container="true"]');if(n){const t=n.getBoundingClientRect();return{x:t.left+t.width/2,y:t.top+t.height/2}}return{x:typeof window<"u"?window.innerWidth/2:0,y:typeof window<"u"?window.innerHeight-40:0}}function yi(t,i){return function(t,i,e={}){const{timeout:n=5e3}=e;return new Promise((e,o)=>{const s=performance.now(),a=()=>{const r=t(),d=performance.now()-s;r&&i(r)?e(r):d>=n?o(new Error(`DOM not ready after ${n}ms`)):requestAnimationFrame(a)};a()})}(t,t=>t.offsetWidth>0&&t.offsetHeight>0,i)}class zi{constructor(t){i(this,"id"),i(this,"dataId"),i(this,"configHelper"),i(this,"getDragBehavior"),i(this,"getElement"),this.id=t.id,this.dataId=t.dataId,this.configHelper=t.configHelper,this.getDragBehavior=t.getDragBehavior,this.getElement=t.getElement}constrainToViewport(t){const i=this.getDragBehavior();i.hasBeenDragged()&&i.constrainToViewport(t)}shouldApplySmartPositioning(){return!("smart"!==this.configHelper.getPositioning("strategy")||this.getDragBehavior().hasBeenDragged())}applySmartPositioning(){if("smart"!==this.configHelper.getPositioning("strategy"))return!1;const t=yt(this.id),i=ei();if(null!=t&&t.parentId||i&&i.childId===this.id||null!=t&&t.hasBeenDragged||null!=t&&t.position)return!1;const e=this.getElement()||ft(this.id);if(!e)return!1;const n=e.offsetWidth,o=e.offsetHeight;if(n<=0||o<=0)return!1;const s=this.configHelper.getPositioning("modalGap"),a=It().filter(t=>t.id!==this.id),r=ht(this.configHelper.getPositioning("avoidElements")),d=mt(a,{id:this.id,width:n,height:o},{modalGap:s,viewportMargin:s,avoidBounds:r,avoidMargin:s}),l=d.positions.get(this.id);if(!l)return!1;const h=new Map;for(const[t,i]of d.positions)t!==this.id&&h.set(t,i);h.size>0&&Bt(h);const g=this.getDragBehavior();return g.setPosition(l),g.setHasBeenDragged(!0),Mt(this.id,l,{size:{width:n,height:o}}),!0}scheduleSmartPositioning(){yi(()=>this.getElement()||ft(this.id)).then(()=>{this.applySmartPositioning()}).catch(()=>{this.applySmartPositioning()})}centerChildOnParent(t){var i,e;const o=yt(t);if(!o)return!1;const s=this.getElement()||ft(this.id),a=ft(t),r=null==a?void 0:a.getBoundingClientRect(),d=o.position??(r?{x:r.left,y:r.top}:null);if(!d||!s)return!1;const l=(null==(i=o.size)?void 0:i.width)??(null==a?void 0:a.offsetWidth)??(null==r?void 0:r.width)??480,h=(null==(e=o.size)?void 0:e.height)??(null==a?void 0:a.offsetHeight)??(null==r?void 0:r.height)??400,g=s.offsetWidth,c=s.offsetHeight;if(l<=0||h<=0||g<=0||c<=0)return!1;const u={x:d.x+(l-g)/2,y:d.y+(h-c)/2},m=this.getDragBehavior();m.setPosition(u),m.setHasBeenDragged(!0),Mt(this.id,u,{size:{width:g,height:c}}),(!o.position||!o.size)&&r&&Mt(t,{x:r.left,y:r.top},{size:{width:l,height:h}});const p={x:u.x-d.x,y:u.y-d.y};return function(t,i,e){const o=n.get(t),s=n.get(i);!o||!s||(n.set(t,{...o,childId:i}),n.set(i,{...s,parentId:t,offsetFromParent:e}),nt(i),L())}(t,this.id,p),!0}scheduleCenterChildOnParent(t){yi(()=>this.getElement()).then(()=>{this.centerChildOnParent(t)}).catch(()=>{this.centerChildOnParent(t)})}}function xi(t){return Array.from(t.querySelectorAll(fi)).filter(t=>null!==t.offsetParent||"A"===t.tagName)}class vi{constructor(t){i(this,"options"),this.options=t}startDrag(t){const i=this.options.getElement();!this.options.configHelper.isFeatureEnabled("drag")||!i||this.options.getDragBehavior().onPointerDown(t,i)}startResize(t,i){const e=this.options.getState();!this.options.configHelper.isFeatureEnabled("resize")||e.hasChild||this.options.getResizeBehavior().startResize(t,i)}handlePointerMove(t){const i=this.options.getElement();if(!i)return;const e=this.options.getDragBehavior(),n=e.isDragging(),o=this.options.getResizeBehavior(),s=o.hasBeenResized()?o.getSize():{width:i.offsetWidth,height:i.offsetHeight};e.onPointerMove(t,s),n&&e.isDragging()&&this.options.onDragMove()}handlePointerUp(t){const i=this.options.getElement();if(!i)return;const e=this.options.getDragBehavior(),n=e.isDragging();e.onPointerUp(t,i),n&&!this.options.getResizeBehavior().justFinishedResizing()&&this.options.onDragEnd()}handleKeyDown(t){var i,e;this.options.closeOnEscape&&"Escape"===t.key&&this.options.isTopModal()&&(t.stopPropagation(),null==(e=(i=this.options).onClose)||e.call(i))}handleTabKey(t){const i=this.options.getElement();i&&function(t,i){if("Tab"!==t.key)return;const e=xi(i);if(0===e.length)return void t.preventDefault();const n=e[0],o=e[e.length-1],s=document.activeElement;t.shiftKey?s===n&&(o.focus(),t.preventDefault()):s===o&&(n.focus(),t.preventDefault())}(t,i)}focusFirst(){const t=this.options.getElement();t&&function(t){const i=xi(t);i.length>0&&i[0].focus()}(t)}}class Pi{constructor(t){i(this,"id"),i(this,"options"),i(this,"_isHandlingMinimize",!1),i(this,"_isAttentionAnimating",!1),i(this,"_wasRestored"),i(this,"_glowStabilizing",!1),i(this,"_restoreHold",!1),i(this,"_isAnimatingToCenter",!1),i(this,"_cancelParentAnimationCleanup",null),i(this,"_parentFlipInFlight",!1),i(this,"_deferredParentTarget",null),i(this,"_parentFlipStartTime",0),this.id=t.id,this.options=t,this._wasRestored=!1}handlePendingStates(){if(!yt(this.id)||this.handlePendingForceClose()||(this.handlePendingMinimize(),this.handlePendingMinimizeWithParent(),this.handlePendingRestore(),this.handlePendingChildRestore(),this.handlePendingClose()))return;const t=this.handlePendingParentLink(),i=this.handlePendingOpen(t);this.handlePendingAttention(),this.handlePendingParentAnimation(),this.handleChildCentering(t,i)}handlePendingForceClose(){var t,i;return!!Jt(this.id)&&(Qt(this.id),qt(this.id),null==(i=(t=this.options.options).onClose)||i.call(t),!0)}handlePendingMinimize(){if(!Kt(this.id)||this._isHandlingMinimize)return;this._isHandlingMinimize=!0,v(null);const t=this.options.getElement();if(t){const i=this.options.getDragBehavior(),e=this.options.getResizeBehavior(),n=t.getBoundingClientRect(),o=i.hasBeenDragged()?i.getPosition():{x:n.left,y:n.top},s=e.hasBeenResized()?e.getSize():{width:n.width,height:n.height};Ct(this.id,{position:o,size:s,hasBeenDragged:!0})}this.options.getAnimationController().startMinimize(void 0,()=>{var t;t=this.id,H(g.filter(i=>i!==t)),v(null),this._isHandlingMinimize=!1})||(this._isHandlingMinimize=!1)}handlePendingMinimizeWithParent(){if(!jt(this.id)||this._isHandlingMinimize)return;this._isHandlingMinimize=!0;const t=this.options.getElement();if(t){const i=this.options.getDragBehavior(),e=this.options.getResizeBehavior(),n=t.getBoundingClientRect(),o=i.hasBeenDragged()?i.getPosition():{x:n.left,y:n.top},s=e.hasBeenResized()?e.getSize():{width:n.width,height:n.height};Ct(this.id,{position:o,size:s,hasBeenDragged:!0})}this.options.getAnimationController().startMinimize(void 0,()=>{var t;t=this.id,O(w.filter(i=>i!==t)),function(t){const i=n.get(t);i&&(n.set(t,{...i,isHiddenWithParent:!0}),L())}(this.id),this._isHandlingMinimize=!1})}handlePendingRestore(){if(!Zt(this.id))return;const t=yt(this.id),i=this.options.getAnimationController();var e;e=this.id,T(p.filter(t=>t!==e)),i.startRestore((null==t?void 0:t.position)??void 0,(null==t?void 0:t.size)??void 0),requestAnimationFrame(()=>{this.options.focusFirst()})}handlePendingChildRestore(){if(!ti(this.id))return;const t=yt(this.id),i=this.options.getAnimationController();var e;e=this.id,W(f.filter(t=>t!==e)),i.startRestore((null==t?void 0:t.position)??void 0,(null==t?void 0:t.size)??void 0),function(t){const i=n.get(t);!i||!i.isHiddenWithParent||(n.set(t,{...i,isHiddenWithParent:!1}),L())}(this.id),this._wasRestored=!0}handlePendingClose(){var t,i,e;return!!Ut(this.id)&&(e=this.id,R(u.filter(t=>t!==e)),this.options.getAnimationController().startClose(()=>{var t,i;Gt(this.id),qt(this.id),null==(i=(t=this.options.options).onClose)||i.call(t)})||(Gt(this.id),qt(this.id),null==(i=(t=this.options.options).onClose)||i.call(t)),!0)}handlePendingParentLink(){const t=ei();return t&&t.childId===this.id&&(Ct(this.id,{parentId:t.parentId}),this._wasRestored=!0),function(t){const i=I;return t&&(null==i?void 0:i.childId)!==t?null:(M(null),i)}(this.id)}handlePendingOpen(t){var i,e;if(!Nt(this.id))return!1;e=this.id,k(c.filter(t=>t!==e));const n=this.options.getDragBehavior(),o=this.options.getResizeBehavior();Ct(this.id,{position:null,hasBeenDragged:!1,size:null}),n.setPosition({x:0,y:0}),n.setHasBeenDragged(!1),o.reset();const s=function(t){const i=P.get(t)??null;return P.delete(t),i}(this.id)||this.options.options.openSourcePosition||null,a=!!t||!(null==(i=yt(this.id))||!i.parentId);let r=!1;return s?(r=!0,this.options.getAnimationController().setPendingOpenSource(s),a&&t?this.openChildModalWithAnimation(t.parentId):this.openStandaloneModalWithAnimation()):a||this.options.getPositioning().scheduleSmartPositioning(),requestAnimationFrame(()=>{this.options.focusFirst()}),r}openChildModalWithAnimation(t){const i=this.options.getPositioning(),e=this.options.getAnimationController();yi(()=>this.options.getElement()).then(()=>{i.centerChildOnParent(t)&&(e.startOpen(),this._wasRestored=!0)}).catch(()=>{i.centerChildOnParent(t)&&(e.startOpen(),this._wasRestored=!0)})}openStandaloneModalWithAnimation(){const t=this.options.getPositioning(),i=this.options.getAnimationController();yi(()=>this.options.getElement()).then(()=>{t.applySmartPositioning(),i.startOpen()}).catch(()=>{t.applySmartPositioning(),i.startOpen()})}handlePendingAttention(){var t;t=this.id,y.includes(t)&&(function(t){F(y.filter(i=>i!==t)),z.includes(t)||function(t){z=t}([...z,t])}(this.id),this.id,this._isAttentionAnimating=!0,setTimeout(()=>{this._isAttentionAnimating=!1,this.id,this.options.onStateChange()},600))}handlePendingParentAnimation(){if(t=this.id,!b.has(t))return;var t;const i=function(t){const i=b.get(t)??null;return b.delete(t),i}(this.id);if(i){if(this._parentFlipInFlight&&Date.now()-this._parentFlipStartTime<100)return void(this._deferredParentTarget=i);this._deferredParentTarget=null,this.startParentFlip(i)}}startParentFlip(t){var i,e;const n=this.options.getDragBehavior(),o=this.options.getElement(),s=o?{x:o.getBoundingClientRect().left,y:o.getBoundingClientRect().top}:(null==(i=yt(this.id))?void 0:i.position)??null;Ct(this.id,{position:t,hasBeenDragged:!0,isAnimatingPosition:!0}),n.setPosition(t),n.setHasBeenDragged(!0),null==(e=this._cancelParentAnimationCleanup)||e.call(this),this._parentFlipInFlight=!0,this._parentFlipStartTime=Date.now();const a=this.id,r=()=>{this._parentFlipInFlight=!1,this._cancelParentAnimationCleanup=null,bt(a);const t=this._deferredParentTarget;t?(this._deferredParentTarget=null,this.startParentFlip(t)):ni(a)};o&&s?this._cancelParentAnimationCleanup=wt(o,s,t,{duration:300,onComplete:r}):setTimeout(r,400)}handleChildCentering(t,i){t&&this.options.getElement()&&!i&&this.options.getPositioning().scheduleCenterChildOnParent(t.parentId)}get wasRestored(){return this._wasRestored}set wasRestored(t){this._wasRestored=t}get isAttentionAnimating(){return this._isAttentionAnimating}get glowStabilizing(){return this._glowStabilizing}set glowStabilizing(t){this._glowStabilizing=t}get restoreHold(){return this._restoreHold}set restoreHold(t){this._restoreHold=t}get isAnimatingToCenter(){return this._isAnimatingToCenter}set isAnimatingToCenter(t){this._isAnimatingToCenter=t}get isHandlingMinimize(){return this._isHandlingMinimize}}class Ii{constructor(t){var e,n,o,s;i(this,"id"),i(this,"dataId"),i(this,"options"),i(this,"drag"),i(this,"resize"),i(this,"animation"),i(this,"positioning"),i(this,"lifecycle"),i(this,"interactions"),i(this,"stateManager"),i(this,"overlayClosing",!1),i(this,"emitter",di()),i(this,"unsubscribeState",null),i(this,"cachedState",null),this.id=t.id,this.dataId=t.id,this.options=t,this.drag=function(t={}){const{initialPosition:i={x:0,y:0},constrain:e=!0}=t,n={...i};let o=!1,s=!1,a=0,r=0,d=0,l=0;const h=di();function g(){return{isDragging:o,position:{...n},hasBeenDragged:s}}function c(){h.emit("change",g())}return{getState:g,getPosition:()=>({...n}),isDragging:()=>o,hasBeenDragged:()=>s,setPosition:function(t){n.x=t.x,n.y=t.y,c()},setHasBeenDragged:function(t){s=t,c()},reset:function(){n.x=i.x,n.y=i.y,s=!1,o=!1,c()},constrainToViewport:function(t){if(!s)return;const i=at(n.x,n.y,t.width,t.height);n.x=i.x,n.y=i.y,c()},onPointerDown:function(t,i){if(0===t.button){if(!s){const t=i.getBoundingClientRect();n.x=t.left,n.y=t.top}o=!0,a=t.clientX,r=t.clientY,d=n.x,l=n.y,i.setPointerCapture(t.pointerId),h.emit("dragStart",{...n}),c()}},onPointerMove:function(t,i){if(!o)return;const g=t.clientX-a,u=t.clientY-r;let m=d+g,p=l+u;if(e){const t=at(m,p,i.width,i.height);m=t.x,p=t.y}n.x=m,n.y=p,s=!0,h.emit("dragMove",{...n}),c()},onPointerUp:function(t,i){o&&(o=!1,i.releasePointerCapture(t.pointerId),h.emit("dragEnd",{...n}),c())},subscribe:function(t){return h.on("change",t)},destroy:function(){h.off()}}}({initialPosition:{x:0,y:0},constrain:!0}),this.resize=function(t){const{minWidth:i=pi.minWidth,minHeight:e=pi.minHeight,getPosition:n,setPosition:o,getHasBeenDragged:s,setHasBeenDragged:a,getElement:r,getSymmetricResize:d,onResizeEnd:l}=t;let h=!1,g="",c={width:0,height:0},u=!1,m=!1,p={x:0,y:0,width:0,height:0,posX:0,posY:0,centerX:0,centerY:0},f=null;const w=di();let y=null,z=null;function x(){return{isResizing:h,direction:g,size:{...c},hasBeenResized:u}}function v(){w.emit("change",x())}function P(t){if(t.pointerId!==f)return;const n=t.clientX-p.x,s=t.clientY-p.y,a=window.innerWidth,r=window.innerHeight,l=(null==d?void 0:d())??!1;let h=p.width,u=p.height,m=p.posX,y=p.posY;if(l){if(g.includes("e")||g.includes("w")){const t=g.includes("e")?n:-n;h=Math.max(i,p.width+2*t),m=p.centerX-h/2}if(g.includes("s")||g.includes("n")){const t=g.includes("s")?s:-s;u=Math.max(e,p.height+2*t),y=p.centerY-u/2}}else{if(g.includes("e")){const t=a-m;h=Math.max(i,Math.min(p.width+n,t))}if(g.includes("w")){const t=p.width-i,e=Math.min(n,t);h=p.width-e,m=p.posX+e}if(g.includes("s")){const t=r-y;u=Math.max(e,Math.min(p.height+s,t))}if(g.includes("n")){const t=p.height-e,i=Math.min(s,t);u=p.height-i,y=p.posY+i}}const z=rt(m,y,h,u);c={width:z.width,height:z.height},o({x:z.x,y:z.y}),w.emit("resizeMove",{size:{...c},position:{x:z.x,y:z.y}}),v()}function I(t){if(t.pointerId!==f)return;h=!1,g="",f=null,y&&window.removeEventListener("pointermove",y),z&&(window.removeEventListener("pointerup",z),window.removeEventListener("pointercancel",z)),y=null,z=null,m=!0;const i=n();w.emit("resizeEnd",{size:{...c},position:i}),l&&l(i,{...c}),v(),setTimeout(()=>{m=!1},0)}return{getState:x,getSize:()=>({...c}),isResizing:()=>h,hasBeenResized:()=>u,justFinishedResizing:()=>m,setSize:function(t){c={...t},u=!0,v()},reset:function(){u=!1,c={width:0,height:0},h=!1,g="",v()},constrainToViewport:function(){const t=n(),i=r();if(!i)return;const e=rt(t.x,t.y,c.width||i.offsetWidth,c.height||i.offsetHeight);c={width:e.width,height:e.height},o({x:e.x,y:e.y}),v()},startResize:function(t,i){t.preventDefault(),t.stopPropagation();const e=r();if(!e)return;const d=e.getBoundingClientRect();s()||(o({x:d.left,y:d.top}),a(!0)),u||(c={width:d.width,height:d.height},u=!0);const l=n();h=!0,g=i,f=t.pointerId,p={x:t.clientX,y:t.clientY,width:c.width,height:c.height,posX:l.x,posY:l.y,centerX:l.x+c.width/2,centerY:l.y+c.height/2},y=P,z=I,window.addEventListener("pointermove",y),window.addEventListener("pointerup",z),window.addEventListener("pointercancel",z),w.emit("resizeStart",{direction:i}),v()},subscribe:function(t){return w.on("change",t)},destroy:function(){y&&window.removeEventListener("pointermove",y),z&&(window.removeEventListener("pointerup",z),window.removeEventListener("pointercancel",z)),w.off()}}}({minWidth:(null==(n=null==(e=t.config)?void 0:e.appearance)?void 0:n.minWidth)??N().appearance.minWidth,minHeight:(null==(s=null==(o=t.config)?void 0:o.appearance)?void 0:s.minHeight)??N().appearance.minHeight,getPosition:()=>this.drag.getPosition(),setPosition:t=>this.drag.setPosition(t),getHasBeenDragged:()=>this.drag.hasBeenDragged(),setHasBeenDragged:t=>this.drag.setHasBeenDragged(t),getElement:()=>this.element,onResizeEnd:(t,i)=>this.handleResizeEnd(t,i)}),this.animation=function(t){const{getId:i,getElement:e,getPosition:n,setPosition:o,getHasBeenDragged:s,setHasBeenDragged:a,getHasBeenResized:r,getSize:d,areAnimationsEnabled:l=()=>!0,onMinimizeComplete:h,onOpenStart:g}=t;let c="none",u=!1,m=null,p=null,f=null,w=null,y=null,z=null,x=null;const v=di();function P(){return{type:c,isAnimating:u,transform:m?{...m}:null}}function I(){v.emit("change",P())}function M(){z&&(clearTimeout(z),z=null)}function b(){const t=e();!t||x||(x=function(t,i){const e=e=>{e.target===t&&i(e.animationName)};return t.addEventListener("animationend",e),()=>t.removeEventListener("animationend",e)}(t,C))}function C(t){switch(M(),t){case"modal-genie-minimize":"minimize"===c&&A();break;case"modal-genie-restore":"restore"===c?B():"open"===c&&D();break;case"modal-close":case"modal-close-centered":case"modal-child-disappear":"close"===c&&S();break;case"modal-child-appear":"open"===c&&D()}}function A(){"minimize"===c&&(M(),w?(w(),w=null):y&&(null==h||h(y.position,!0,y.size)),v.emit("animationEnd",{type:"minimize"}),y=null)}function B(){if("restore"!==c)return;M(),c="none",u=!1,m=null;const t=e();t&&(t.setAttribute("data-state","open"),t.setAttribute("data-animation-phase","idle")),v.emit("animationEnd",{type:"restore"}),I()}function D(){if("open"!==c)return;M(),c="none",u=!1,m=null;const t=e();t&&(t.setAttribute("data-state","open"),t.setAttribute("data-animation-phase","idle")),v.emit("animationEnd",{type:"open"}),I()}function S(){if("close"!==c)return;M(),c="none",u=!1;const t=e();t&&(t.setAttribute("data-state","closed"),t.setAttribute("data-animation-phase","idle")),v.emit("animationEnd",{type:"close"}),f&&(f(),f=null),I()}return{getState:P,isAnimating:()=>u,getAnimationType:()=>c,getTransform:()=>m?{...m}:null,getPendingOpenSource:()=>p?{...p}:null,setPendingOpenSource:t=>{p=t?{...t}:null},startMinimize:function(t,g){const p=e();if(u||!p)return!1;if(b(),M(),!l()){const t=p.getBoundingClientRect(),i=s()?n():{x:t.left,y:t.top},e=r()?d():{width:t.width,height:t.height};return s()||(o(i),a(!0)),g?g():null==h||h(i,!0,e),!0}const f=p.getBoundingClientRect(),x=s()?n():{x:f.left,y:f.top},P=r()?d():{width:f.width,height:f.height};s()||(o(x),a(!0));const C=t??wi(i());return m=function(t,i,e){const n=t.x+i.width/2,o=t.y+i.height/2;return{x:e.x-n,y:e.y-o,originX:e.x-t.x,originY:e.y-t.y}}(x,P,C),w=g||null,y={position:x,size:P},p.setAttribute("data-state","minimizing"),p.setAttribute("data-animation-phase","prepare"),requestAnimationFrame(()=>{requestAnimationFrame(()=>{c="minimize",u=!0,p.setAttribute("data-animation-phase","animate"),v.emit("animationStart",{type:"minimize"}),I()})}),z=setTimeout(()=>{"minimize"===c&&A()},600),!0},startRestore:function(t,n){const s=e();if(b(),M(),!l()){const i=t||{x:window.innerWidth/2,y:window.innerHeight/2};return o(i),void a(!0)}const r=wi(i()),d=t||{x:window.innerWidth/2,y:window.innerHeight/2},h=n||{width:480,height:400};o(d),a(!0),m=function(t,i,e){const n=t.x+i.width/2,o=t.y+i.height/2;return{x:e.x-n,y:e.y-o,originX:e.x-t.x,originY:e.y-t.y}}(d,h,r),c="restore",u=!0,s&&(s.setAttribute("data-state","restoring"),s.setAttribute("data-animation-phase","animate")),v.emit("animationStart",{type:"restore"}),I(),z=setTimeout(()=>{"restore"===c&&B()},500)},startOpen:function(){const t=e();if(!p||!t||u)return!1;if(b(),M(),!l())return p=null,!1;const i=p,r=t.getBoundingClientRect(),d=s()?n():{x:r.left,y:r.top},h=r.width,f=r.height;return s()||(o(d),a(!0)),m=function(t,i,e){const n=t.x+i.width/2,o=t.y+i.height/2;return{x:e.x-n,y:e.y-o,originX:e.x-t.x,originY:e.y-t.y}}(d,{width:h,height:f},i),c="open",u=!0,p=null,t.setAttribute("data-state","opening"),t.setAttribute("data-animation-phase","animate"),v.emit("animationStart",{type:"open"}),null==g||g(),I(),z=setTimeout(()=>{"open"===c&&D()},500),!0},startClose:function(t){const i=e();return!u&&(b(),M(),l()?(f=t,c="close",u=!0,i&&(i.setAttribute("data-state","closing"),i.setAttribute("data-animation-phase","animate")),v.emit("animationStart",{type:"close"}),I(),z=setTimeout(()=>{"close"===c&&S()},350),!0):(t(),!0))},forceClearMinimize:function(){M(),"minimize"===c&&(c="none",u=!1,m=null,w=null,y=null,I())},destroy:function(){M(),null==x||x(),x=null,v.off()},subscribe:t=>v.on("change",t)}}({getId:()=>this.id,getElement:()=>this.element,getPosition:()=>this.drag.getPosition(),setPosition:t=>this.drag.setPosition(t),getHasBeenDragged:()=>this.drag.hasBeenDragged(),setHasBeenDragged:t=>this.drag.setHasBeenDragged(t),getHasBeenResized:()=>this.resize.hasBeenResized(),getSize:()=>this.resize.getSize(),areAnimationsEnabled:()=>this.options.configHelper.isFeatureEnabled("animations"),onMinimizeComplete:(t,i,e)=>{Ct(this.id,{position:t,size:e,hasBeenDragged:i}),Wt(this.id)},onOpenStart:()=>{const t=yt(this.id);null!=t&&t.parentId&&(this.stateManager.wasRestored=!0)}}),this.positioning=new zi({id:this.id,dataId:this.dataId,configHelper:t.configHelper,getDragBehavior:()=>this.drag,getElement:()=>this.element}),this.interactions=new vi({id:this.id,configHelper:t.configHelper,getDragBehavior:()=>this.drag,getResizeBehavior:()=>this.resize,getElement:()=>this.element,getState:()=>{var t;return{hasChild:!(null==(t=yt(this.id))||!t.childId)}},onDragMove:()=>{if("realtime"===N().parentChild.movementMode){const t=this.drag.getPosition();Mt(this.id,t,{drag:!0,realtime:!0})}},onDragEnd:()=>{const t=this.drag.getPosition();Mt(this.id,t,{drag:!0}),"animated"===N().parentChild.movementMode&&ni(this.id)},onClose:()=>this.close(),closeOnEscape:t.closeOnEscape,isTopModal:()=>ot(this.id)}),this.stateManager=new Pi({id:this.id,options:{glow:t.glow,openSourcePosition:t.openSourcePosition,onClose:t.onClose},getDragBehavior:()=>this.drag,getResizeBehavior:()=>this.resize,getAnimationController:()=>this.animation,getElement:()=>this.element,getPositioning:()=>this.positioning,onStateChange:()=>this.notifyStateChange(),focusFirst:()=>this.interactions.focusFirst()}),ii(t.id)&&(this.stateManager.wasRestored=!0),this.lifecycle=new li({onMount:()=>{this.handleStateChange(),this.handlePendingStates(),this.notifyStateChange()},onDestroy:()=>{var t;null==(t=this.unsubscribeState)||t.call(this),this.drag.destroy(),this.resize.destroy(),this.animation.destroy(),this.emitter.off()},onWindowResize:()=>this.handleWindowResize()}),this.drag.subscribe(()=>this.notifyStateChange()),this.resize.subscribe(()=>this.notifyStateChange()),this.animation.subscribe(()=>{this.handlePendingStates(),this.notifyStateChange()}),this.unsubscribeState=G(()=>{this.handleStateChange(),this.handlePendingStates(),this.notifyStateChange()}),t.skipRegistration||this.register(t.autoOpen??!1),this.handleStateChange(),this.handlePendingStates()}mount(t){this.lifecycle.mount(t)}destroy(){this.lifecycle.destroy()}get element(){return this.lifecycle.getElement()}handleWindowResize(){if(!this.element||!this.drag.hasBeenDragged())return;const t=this.resize.hasBeenResized()?this.resize.getSize():{width:this.element.offsetWidth,height:this.element.offsetHeight};this.positioning.constrainToViewport(t),this.resize.hasBeenResized()&&this.resize.constrainToViewport(),this.notifyStateChange()}register(t){tt({id:this.id,title:this.options.title,icon:this.options.icon??"",isOpen:t,isMinimized:!1,isHiddenWithParent:!1,isTransparent:!1,isRejected:!1,position:null,size:null,hasBeenDragged:!1,dockPosition:0,glow:this.options.glow??null,parentId:void 0,childId:void 0,offsetFromParent:void 0}),t&&nt(this.id)}getState(){if(this.cachedState)return this.cachedState;const t=yt(this.id),i=this.drag.getState(),e=this.resize.getState(),n=this.animation.getState(),o=!!t&&(t.isOpen||Ut(this.id))&&(!t.isMinimized||Kt(this.id))&&(!t.isHiddenWithParent||jt(this.id)||ti(this.id)),s=!(null==t||!t.childId),a=!(null==t||!t.parentId),r="minimize"===n.type&&n.isAnimating,d="restore"===n.type&&n.isAnimating,l="open"===n.type&&n.isAnimating,h="close"===n.type&&n.isAnimating,g=n.isAnimating,c=(null==t?void 0:t.isAnimatingPosition)??!1,u=c&&null!=t&&t.position?t.position:i.position,m=!!c||i.hasBeenDragged,p=(ti(this.id)||Zt(this.id))&&!d,f=(a||ii(this.id))&&!l&&(!m||!!this.animation.getPendingOpenSource()),w=d||l||this.stateManager.restoreHold,y=o&&!m&&!g&&!this.animation.getPendingOpenSource()&&!p&&!f;let z="closed";r?z="minimizing":d?z="restoring":l?z="opening":h?z="closing":null!=t&&t.isMinimized?z="minimized":o&&(z="open");const x=this.options.configHelper.isFeatureEnabled("drag"),v=this.options.configHelper.isFeatureEnabled("resize"),P=this.options.configHelper.isFeatureEnabled("minimize"),I=!!this.options.glow,M=function(t){const i={"z-index":t.zIndex};return t.animationTransform?(i.left=`${t.position.x}px`,i.top=`${t.position.y}px`,i["--genie-origin-x"]=`${t.animationTransform.originX}px`,i["--genie-origin-y"]=`${t.animationTransform.originY}px`,i["--genie-translate-x"]=`${t.animationTransform.x}px`,i["--genie-translate-y"]=`${t.animationTransform.y}px`):t.hasBeenDragged&&(i.left=`${t.position.x}px`,i.top=`${t.position.y}px`,t.isAnimatingPosition||(i.transform="none")),t.hasBeenResized?(i.width=`${t.size.width}px`,i.height=`${t.size.height}px`,i["max-width"]="none",i["max-height"]="none"):(t.preferredHeight&&(i["min-height"]=t.preferredHeight),t.maxWidth&&(i["max-width"]=t.maxWidth)),t.glowEnabled&&t.glow&&(i["--modal-glow-color"]=t.glow.color,i["--modal-glow-intensity"]=String(t.glow.intensity??"medium")),i}({position:u,hasBeenDragged:m,hasBeenResized:e.hasBeenResized,size:e.size,animationTransform:n.transform,zIndex:(null==t?void 0:t.zIndex)??1e3,glowEnabled:I,glow:this.options.glow??null,maxWidth:this.options.maxWidth,preferredHeight:this.options.preferredHeight,isAnimatingPosition:c}),b=function(t){const i=["modal-dialog"];return t.isDragging&&i.push("modal-dragging"),t.isResizing&&i.push("modal-resizing"),t.hasBeenDragged&&i.push("modal-positioned"),t.isMinimizing&&i.push("modal-minimizing"),t.isRestoring&&i.push("modal-restoring"),t.isOpening&&i.push("modal-opening"),t.isClosing&&i.push("modal-closing"),t.showCentered&&i.push("modal-centered"),t.isTransparent||i.push("modal-solid"),t.isTransparent&&i.push("modal-transparent"),t.glowEnabled&&i.push("modal-glow"),t.hasChild&&i.push("modal-has-child"),t.isChildModal&&i.push("modal-is-child"),t.wasRestored&&i.push("modal-was-restored"),t.isVisibleByAnimation&&i.push("modal-visible-by-animation"),t.isAwaitingRestore&&i.push("modal-awaiting-restore"),t.isAwaitingChildOpen&&i.push("modal-awaiting-child-open"),t.isAnimatingToCenter&&i.push("modal-animating-to-center"),t.isAnimatingPosition&&i.push("modal-animating-position"),t.isAttentionAnimating&&i.push("modal-attention"),t.glowStabilizing&&t.glowEnabled&&i.push("modal-glow-stabilizing"),i}({isDragging:i.isDragging,isResizing:e.isResizing,hasBeenDragged:m,isMinimizing:r,isRestoring:d,isOpening:l,isClosing:h,showCentered:y,isTransparent:(null==t?void 0:t.isTransparent)??!1,glowEnabled:I,hasChild:s,isChildModal:a,wasRestored:this.stateManager.wasRestored,isVisibleByAnimation:w,isAwaitingRestore:p,isAwaitingChildOpen:f,isAnimatingToCenter:this.stateManager.isAnimatingToCenter,isAnimatingPosition:(null==t?void 0:t.isAnimatingPosition)??!1,isAttentionAnimating:this.stateManager.isAttentionAnimating,glowStabilizing:this.stateManager.glowStabilizing});return this.cachedState={position:i.position,size:e.size,zIndex:(null==t?void 0:t.zIndex)??1e3,isDragging:i.isDragging,isResizing:e.isResizing,hasBeenDragged:i.hasBeenDragged,hasBeenResized:e.hasBeenResized,isMinimizing:r,isRestoring:d,isOpening:l,isClosing:h,isAnyAnimating:g,animationTransform:n.transform,isVisible:o,showCentered:y,isAwaitingRestore:p,isAwaitingChildOpen:f,isVisibleByAnimation:w,hasChild:s,isChildModal:a,showOverlay:s||this.overlayClosing,isTransparent:(null==t?void 0:t.isTransparent)??!1,isAttentionAnimating:this.stateManager.isAttentionAnimating,glowStabilizing:this.stateManager.glowStabilizing,isAnimatingPosition:(null==t?void 0:t.isAnimatingPosition)??!1,isAnimatingToCenter:this.stateManager.isAnimatingToCenter,wasRestored:this.stateManager.wasRestored,overlayClosing:this.overlayClosing,glowEnabled:I,draggable:x,resizable:v,minimizable:P,dataState:z,dataAnimationPhase:n.isAnimating?"animate":"idle",style:M,cssClasses:b},this.cachedState}subscribe(t){return this.emitter.on("stateChange",t)}notifyStateChange(){this.cachedState=null,this.emitter.emit("stateChange",this.getState())}startDrag(t){this.interactions.startDrag(t)}startResize(t,i){this.interactions.startResize(t,i)}handlePointerMove(t){this.interactions.handlePointerMove(t)}handlePointerUp(t){this.interactions.handlePointerUp(t)}handleKeyDown(t){this.interactions.handleKeyDown(t)}handleTabKey(t){this.interactions.handleTabKey(t)}minimize(){this.options.configHelper.isFeatureEnabled("minimize")&&Wt(this.id)}close(){var t,i;Jt(this.id)&&Qt(this.id),Vt(this.id),null==(i=(t=this.options).onClose)||i.call(t)}toggleTransparency(){!function(t){if(!$(t))return;const i=n.get(t);B.has(t)?(B.delete(t),n.set(t,{...i,isTransparent:!1})):(B.add(t),n.set(t,{...i,isTransparent:!0})),L()}(this.id)}bringToFront(){nt(this.id)}setOpenSourcePosition(t){this.animation.setPendingOpenSource(t)}updateGlow(t){this.options.glow!==t&&(this.options.glow=t,Ct(this.id,{glow:t??null}),this.notifyStateChange())}focusFirst(){this.interactions.focusFirst()}handleResizeEnd(t,i){const e=yt(this.id);if(null!=e&&e.parentId){const n=yt(e.parentId),o=ft(e.parentId);if(n&&o){const e=n.position??{x:o.getBoundingClientRect().left,y:o.getBoundingClientRect().top},s=n.size??{width:o.offsetWidth,height:o.offsetHeight},a={x:e.x+(s.width-i.width)/2,y:e.y+(s.height-i.height)/2},r=t;this.stateManager.isAnimatingToCenter=!0,this.drag.setPosition(a);const d={x:a.x-e.x,y:a.y-e.y};Ct(this.id,{position:a,size:i,hasBeenDragged:!0,offsetFromParent:d});const l=this.lifecycle.getElement();return void(l?wt(l,r,a,{duration:200,onComplete:()=>{this.stateManager.isAnimatingToCenter=!1}}):this.stateManager.isAnimatingToCenter=!1)}}Ct(this.id,{position:t,size:i,hasBeenDragged:!0})}handleStateChange(){const t=yt(this.id);if(t){if((t.parentId||ii(this.id))&&(this.stateManager.wasRestored=!0),!this.drag.isDragging()&&!this.resize.isResizing()&&t.position){const i=this.drag.getPosition(),e=t.position;(Math.abs(i.x-e.x)>.5||Math.abs(i.y-e.y)>.5)&&(this.drag.setPosition(e),t.hasBeenDragged&&this.drag.setHasBeenDragged(!0))}this.stateManager.handlePendingStates()}}handlePendingStates(){this.stateManager.handlePendingStates()}getId(){return this.id}getDataId(){return this.dataId}getElement(){return this.element}}function Mi(){const t=Pt();return Array.from(t.values()).filter(t=>t.isMinimized).sort((t,i)=>t.dockPosition-i.dockPosition)}function bi(t,i,e){const n=at(t.x,t.y,i,e);return{x:Math.round(n.x),y:Math.round(n.y)}}function Ci(t,i,e,n,o,s=8){const a=window.innerWidth-n-s,r=window.innerHeight-o-s,d=Math.min(Math.max(t-e.x,s),Math.max(s,a)),l=Math.min(Math.max(i-e.y,s),Math.max(s,r));return{x:Math.round(d),y:Math.round(l)}}function Ai(t,i){const e=["modal-dock-container"];return"left"===t?e.push("modal-dock-left"):"right"===t?e.push("modal-dock-right"):"bottom"===t?e.push("modal-dock-bottom"):"free"===t&&e.push("modal-dock-free"),i&&e.push("modal-dock-empty"),e.join(" ")}function Bi(t,i){const e=["modal-dock"];return"free"===t&&e.push("horizontal"===i?"modal-dock-free-horizontal":"modal-dock-free-vertical"),e.join(" ")}function Di(){const t=Pt();return Array.from(t.values()).some(t=>t.isOpen&&!t.isMinimized&&!t.isHiddenWithParent)}function Si(){return Y(N().features.backdrop)}function Hi(){const t=Si();return t.visible||t.blockClicks}export{ai as A,U as B,gi as C,ci as D,si as E,kt as F,ri as G,Rt as H,Mi as I,bi as J,vt as K,_t as L,Ii as M,Pt as N,Ci as O,ft as P,hi as Q,ui as R,ot as S,Ai as T,Bi as U,J as V,Y as W,Q as X,Xt as Y,K as a,j as b,Vt as c,Yt as d,yt as e,zt as f,_ as g,nt as h,xt as i,N as j,mi as k,pt as l,Wt as m,tt as n,$t as o,Z as p,Nt as q,Ot as r,G as s,Lt as t,it as u,Ut as v,Kt as w,Si as x,Hi as y,Di as z};
1
+ var t=Object.defineProperty,e=(e,i,n)=>((e,i,n)=>i in e?t(e,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[i]=n)(e,"symbol"!=typeof i?i+"":i,n);const i=Symbol.for("epic-modals-core");if(typeof globalThis<"u"){const t=globalThis;t[i],t[i]=!0}const n=new Map;let o=0,s=null;function a(t){s=t}let r=null;function d(t){r=t}const l=new Set;let h=!1,c=[],g=[],u=[],m=[],p=[],f=[],w=[],y=[],z=[],v=null;function x(t){v=t}const P=new Map;let M=null;function I(t){M=t}const b=new Map,C=new Set,A=new Set,B=new Set;let H=[];function S(t){H=t}function D(t){c=t}function R(t){g=t}function k(t){u=t}function E(t){m=t}function T(t){p=t}function O(t){f=t}function W(t){w=t}function F(t){y=t}function L(){o++,function(){if(!h){h=!0;try{l.forEach(t=>t())}finally{h=!1}}}()}function _(){return o}function G(t){return l.add(t),()=>l.delete(t)}function $(t,e){return!!n.get(t)||(function(){var t,e;try{const i=import.meta;return!0===(null==(t=i.env)?void 0:t.DEV)||"development"===(null==(e=i.env)?void 0:e.MODE)}catch{return!1}}(),!1)}function Y(t,e){const i=n.get(t);if(null==i||!i.childId)return;const o=n.get(i.childId);if(!o)return;const s=e+2;n.set(i.childId,{...o,zIndex:s}),Y(i.childId,s)}function V(t){if(!n.get(t))return;const e=Math.max(...Array.from(n.values()).map(t=>t.zIndex),0),i=function(t){let e=t,i=n.get(e);for(;null!=i&&i.parentId;)e=i.parentId,i=n.get(e);return e}(t),o=n.get(i);if(!o)return;const s=e+2;n.set(i,{...o,zIndex:s}),Y(i,s),L()}function X(t){const e=n.get(t);if(!e)return!1;const i=Math.max(...Array.from(n.values()).map(t=>t.zIndex),0);return e.zIndex===i&&!e.isMinimized&&!e.isHiddenWithParent}const q=8;function K(t,e,i,n,o={}){const{margin:s=q,allowPartialVisibility:a=!1}=o,r=typeof window<"u"?window.innerWidth:1920,d=typeof window<"u"?window.innerHeight:1080;let l,h,c,g;return a&&i>r-2*s?(l=40-i,h=r-40):(l=s,h=Math.max(s,r-i-s)),a&&n>d-2*s?(c=40-n,g=d-40):(c=s,g=Math.max(s,d-n-s)),{x:Math.max(l,Math.min(h,t)),y:Math.max(c,Math.min(g,e))}}function j(t,e,i,n,o={}){const{margin:s=q}=o,a=(typeof window<"u"?window.innerWidth:1920)-2*s,r=(typeof window<"u"?window.innerHeight:1080)-2*s,d=Math.min(i,a),l=Math.min(n,r),h=K(t,e,d,l,o);return{x:h.x,y:h.y,width:d,height:l}}function N(t,e){return Math.max(0,Math.min(t.x+t.width,e.x+e.width)-Math.max(t.x,e.x))*Math.max(0,Math.min(t.y+t.height,e.y+e.height)-Math.max(t.y,e.y))}function U(t,e,i,n,o,s){const a={x:t-s,y:e-s,width:i+2*s,height:n+2*s};let r=0;for(const t of o)r+=N(a,t);return r}function J(t){if(typeof document>"u")return[];const e=[];for(const i of t)try{const t=document.querySelectorAll(i);for(const i of t){const t=i.getBoundingClientRect();t.width>0&&t.height>0&&e.push({x:t.left,y:t.top,width:t.width,height:t.height})}}catch{}return e}function Q(t,e,i,n){const o=t-e,s=i-1;if(o<=0)return{interGap:0,edgeGap:0};if(i<=1)return{interGap:0,edgeGap:o/2};const a=o/(i+1);if(a>=n)return{interGap:a,edgeGap:a};const r=s*n;return o>=r?{interGap:n,edgeGap:(o-r)/2}:{interGap:o/s,edgeGap:0}}function Z(t,e,i,n,o=0){if(0===i.length)return{cols:t,rows:e,score:1/0,positions:new Map};const s=new Array(t).fill(0),a=new Array(e).fill(0);for(let e=0;e<i.length;e++){const n=e%t,o=Math.floor(e/t);s[n]=Math.max(s[n],i[e].width),a[o]=Math.max(a[o],i[e].height)}const r=s.reduce((t,e)=>t+e,0),d=a.reduce((t,e)=>t+e,0);if(r>n.width||d>n.height)return null;const{interGap:l,edgeGap:h}=Q(n.width,r,t,o),{interGap:c,edgeGap:g}=Q(n.height,d,e,o),u=new Map,m=[0];for(let e=0;e<t;e++)m.push(m[e]+s[e]);const p=[0];for(let t=0;t<e;t++)p.push(p[t]+a[t]);for(let e=0;e<i.length;e++){const o=e%t,r=Math.floor(e/t),d=i[e],f=n.x+h+o*l+m[o],w=n.y+g+r*c+p[r],y=f+(s[o]-d.width)/2,z=w+(a[r]-d.height)/2;u.set(d.id,{x:Math.round(y),y:Math.round(z)})}const f=t>1?l:h,w=e>1?c:g;return{cols:t,rows:e,score:(.6*Math.min(f,w)+.4*Math.sqrt(f*w))*(n.width>n.height==t>=e?1.02:1),positions:u}}function tt(t,e){const i=new Map,n=Math.max(...t.map(t=>t.width)),o=Math.max(...t.map(t=>t.height)),s=n+40*(t.length-1),a=o+40*(t.length-1);let r=e.x+(e.width-s)/2,d=e.y+(e.height-a)/2;r=Math.max(e.x,r),d=Math.max(e.y,d);for(let e=0;e<t.length;e++)i.set(t[e].id,{x:Math.round(r+40*e),y:Math.round(d+40*e)});return i}function et(t,e,i={}){const{modalGap:n=16,viewportMargin:o=16,avoidBounds:s=[],avoidMargin:a=24}=i,r=typeof window<"u"?window.innerWidth:1920,d=typeof window<"u"?window.innerHeight:1080,l=new Map,h=t.filter(t=>!t.parentId),c=h.map(t=>({id:t.id,width:t.width,height:t.height}));if(e&&c.push({id:e.id,width:e.width,height:e.height}),0===c.length)return{positions:l};const g=new Map(h.map(t=>[t.id,t.currentPosition]));c.sort((t,e)=>{const i=g.get(t.id),n=g.get(e.id);return(i?i.x+t.width/2:1/0)-(n?n.x+e.width/2:1/0)});const u=function(t,e,i,n,o){let s=i,a=i,r=t-i,d=e-i;for(const i of n){const n=i.y,l=e-(i.y+i.height),h=i.x,c=t-(i.x+i.width);let g;if(i.width>i.height)g=n<=l?"top":"bottom";else if(i.height>i.width)g=h<=c?"left":"right";else{const t=Math.min(n,l,h,c);g=t===n?"top":t===l?"bottom":t===h?"left":"right"}"bottom"===g?d=Math.min(d,i.y-o):"top"===g?a=Math.max(a,i.y+i.height+o):"left"===g?s=Math.max(s,i.x+i.width+o):r=Math.min(r,i.x-o)}return{x:s,y:a,width:Math.max(0,r-s),height:Math.max(0,d-a)}}(r,d,o,s,a);if(1===c.length){const t=c[0],e=u.x+(u.width-t.width)/2,i=u.y+(u.height-t.height)/2;return l.set(t.id,{x:Math.round(e),y:Math.round(i)}),{positions:l}}const m=c.length;let p=null;for(let t=1;t<=m;t++){const e=Z(t,Math.ceil(m/t),c,u,n);e&&(null===p||e.score>p.score)&&(p=e)}if(p){for(const[t,e]of p.positions)l.set(t,e);return{positions:l}}if(e){const t=h.map(t=>({x:t.currentPosition.x,y:t.currentPosition.y,width:t.width,height:t.height})),i=function(t,e,i,n,o=20){const s=n.x+(n.width-t)/2,a=n.y+(n.height-e)/2;if(0===i.length)return{x:Math.round(s),y:Math.round(a)};const r=n.x,d=Math.max(n.x,n.x+n.width-t),l=n.y,h=Math.max(n.y,n.y+n.height-e);if(d<=r||h<=l)return{x:Math.round(s),y:Math.round(a)};const c=(d-r)/o,g=(h-l)/o;let u={x:s,y:a},m=1/0;const p=t*e,f=Math.hypot(n.width/2,n.height/2),w=n.x+n.width/2,y=n.y+n.height/2;for(let n=0;n<=o;n++)for(let s=0;s<=o;s++){const o=r+n*c,a=l+s*g,d=U(o,a,t,e,i,0),h=p>0?d/p:0,z=Math.hypot(o+t/2-w,a+e/2-y),v=.5*h+.5*(f>0?z/f:0);v<m&&(m=v,u={x:o,y:a})}return{x:Math.round(u.x),y:Math.round(u.y)}}(e.width,e.height,t,u);return l.set(e.id,i),{positions:l}}return{positions:tt(c,u)}}function it(t){return t}function nt(t){return typeof document>"u"?null:document.querySelector(`.modal-dialog[data-modal-id="${t}"]`)}function ot(t,e){if(!dt(t))throw new Error(`Cannot call ${e}() on unregistered modal "${String(t)}". Ensure the Modal component is rendered.`)}function st(t,e,i,n){var o;const s=e.x-i.x,a=e.y-i.y;if(0===s&&0===a)return null==(o=null==n?void 0:n.onComplete)||o.call(n),()=>{};const r=(null==n?void 0:n.duration)??300,d=(null==n?void 0:n.easing)??"ease-out";let l=!1;function h(){var t;l||(l=!0,clearTimeout(g),null==(t=null==n?void 0:n.onComplete)||t.call(n))}t.style.left=`${i.x}px`,t.style.top=`${i.y}px`;const c=t.animate([{transform:`translate(${s}px, ${a}px)`},{transform:"translate(0, 0)"}],{duration:r,easing:d,fill:"none"});c.onfinish=h;const g=setTimeout(h,r+100);return function(){l||(l=!0,clearTimeout(g),c.cancel())}}function at(t){return n.get(t)}function rt(t){const e=n.get(t);return(null==e?void 0:e.isOpen)??!1}function dt(t){return n.has(t)}function lt(t){return C.has(t)}function ht(){return n}function ct(){const t=[];for(const e of n.values()){if(!e.isOpen||e.isMinimized||e.isHiddenWithParent||A.has(e.id))continue;const i=nt(e.id);if(!i)continue;const n=e.position??{x:i.getBoundingClientRect().left,y:i.getBoundingClientRect().top},o=e.size??{width:i.offsetWidth,height:i.offsetHeight};t.push({id:e.id,width:o.width,height:o.height,currentPosition:n,parentId:e.parentId})}return t}function gt(t,e,i){if(!$(t))return;(function(t){if(!Number.isFinite(t.x)||!Number.isFinite(t.y))throw new Error(`[epic-modals] Invalid position in updateModalPosition: x=${t.x}, y=${t.y}`)})(e),null!=i&&i.size&&function(t){if(t.width<=0||t.height<=0)throw new Error(`[epic-modals] Invalid dimensions in updateModalPosition: width=${t.width}, height=${t.height}`)}(i.size);const o=n.get(t);if(!o)return;let s=e;if(null!=i&&i.constrain&&o.size&&(s=K(e.x,e.y,o.size.width,o.size.height)),n.set(t,{...o,position:s,size:(null==i?void 0:i.size)??o.size,hasBeenDragged:o.hasBeenDragged||(null==i?void 0:i.drag)||!1}),o.childId){let e=t,i=s;for(;;){const t=n.get(e);if(null==t||!t.childId)break;const o=n.get(t.childId);if(null==o||!o.offsetFromParent)break;const s={x:i.x+o.offsetFromParent.x,y:i.y+o.offsetFromParent.y};n.set(t.childId,{...o,position:s,hasBeenDragged:!0}),e=t.childId,i=s}}if(o.parentId&&o.offsetFromParent){const e=oe();let a=t,r=o;for(;r.parentId&&r.offsetFromParent;){const o=n.get(r.parentId);if(!o)break;const d=a===t?s:n.get(a).position,l={x:d.x-r.offsetFromParent.x,y:d.y-r.offsetFromParent.y};if(!("animated"!==e.parentChild.movementMode||null!=i&&i.realtime)){b.set(r.parentId,l);break}n.set(r.parentId,{...o,position:l,hasBeenDragged:!0}),a=r.parentId,r=o}}L()}function ut(t){const e=n.get(t);if(!e||!e.isAnimatingPosition)return;e.isAnimatingPosition=!1;let i=e.childId;for(;i;){const t=n.get(i);t&&(t.isAnimatingPosition=!1),i=null==t?void 0:t.childId}L()}function mt(t,e){const i=n.get(t);i&&(n.set(t,{...i,...e}),L())}function pt(t){const e=oe();"smart"===e.positioning.strategy&&(s&&clearTimeout(s),a(setTimeout(()=>{const i=ct(),n=J(e.positioning.avoidElements);ft(et(i,t,{modalGap:e.positioning.modalGap,viewportMargin:e.positioning.modalGap,avoidBounds:n,avoidMargin:e.positioning.modalGap}).positions),a(null)},50)))}function ft(t){if(0===t.size)return;const e=[],i=new Map;for(const[e]of t){const t=nt(e),n=t?t.getBoundingClientRect():null;i.set(e,{element:t,rect:n})}for(const[o,s]of t){const t=n.get(o);if(!t)continue;const{element:a,rect:r}=i.get(o)||{element:null,rect:null},d=t.position??(r?{x:r.left,y:r.top}:{x:0,y:0}),l=t.size??(r?{width:r.width,height:r.height}:{width:0,height:0});e.push({id:o,element:a,oldPosition:d,newPosition:s,size:l}),wt(o,d,s,e)}for(const{id:t,newPosition:i,size:o}of e){const e=n.get(t);e&&n.set(t,{...e,position:i,size:o,hasBeenDragged:!0,isAnimatingPosition:!0})}L();for(const{id:t,element:i,oldPosition:n,newPosition:o}of e)i?st(i,n,o,{duration:300,onComplete:()=>ut(t)}):setTimeout(()=>ut(t),400)}function wt(t,e,i,o){const s=n.get(t);if(null==s||!s.childId)return;const a=n.get(s.childId);if(null==a||!a.offsetFromParent)return;const r=nt(s.childId),d={x:e.x+a.offsetFromParent.x,y:e.y+a.offsetFromParent.y},l={x:i.x+a.offsetFromParent.x,y:i.y+a.offsetFromParent.y};o.push({id:s.childId,element:r,oldPosition:d,newPosition:l}),n.set(s.childId,{...a,position:l,hasBeenDragged:!0,isAnimatingPosition:!0}),a.childId&&wt(s.childId,d,l,o)}function yt(){r&&clearTimeout(r),d(setTimeout(()=>{pt(null),d(null)},100))}let zt=!1;function vt(){zt||typeof window>"u"||(window.addEventListener("resize",yt),zt=!0)}function xt(){typeof window>"u"||(window.removeEventListener("resize",yt),zt=!1)}function Pt(t){b.delete(t)}function Mt(t){const e=n.get(t);if(null==e||!e.childId)return;const i=n.get(e.childId);i&&(w.includes(e.childId)||W([...w,e.childId]),i.childId&&Mt(e.childId))}function It(t){const e=n.get(t);if(!e||e.isMinimized)return;if(Pt(t),e.parentId){const t=n.get(e.parentId);if(t&&!t.isMinimized)return void It(e.parentId)}D([...c,t]),e.position&&e.size;const i=e.childId;n.set(t,{...e,isMinimized:!0,lastChildId:i}),H.includes(t)||S([...H,t]),L(),e.childId&&Mt(t),pt(null)}function bt(t){const e=n.get(t);if(!e||!e.isMinimized)return;n.set(t,{...e,isMinimized:!1,isOpen:!0}),T([...p,t]),V(t);const i=e.lastChildId||e.childId;i&&Ct(i),L()}function Ct(t){const e=n.get(t);if(e&&e.isHiddenWithParent){O([...f,t]);const i=e.lastChildId||e.childId;i&&Ct(i)}}function At(t){if(!$(t))return;const e=n.get(t);B.has(t)?(B.delete(t),n.set(t,{...e,isTransparent:!1})):(B.add(t),n.set(t,{...e,isTransparent:!0})),L()}function Bt(t){$(t)&&(y.includes(t)||(F([...y,t]),L()))}function Ht(t){t.classList.add("modal-shake"),t.addEventListener("animationend",()=>{t.classList.remove("modal-shake")},{once:!0})}function St(t){if(!$(t))return;const e=n.get(t);B.delete(t),n.set(t,{...e,isTransparent:!1}),L()}function Dt(t,e,i){Rt(t,i,{parentId:e})}function Rt(t,e,i){const o=oe(),s=n.get(t);if(s&&s.isOpen&&!s.isMinimized&&!s.isHiddenWithParent)return Bt(t),void V(t);if(s&&s.isMinimized)return void bt(t);if("x"in e&&"y"in e)P.set(t,e);else{const i=e.getBoundingClientRect();P.set(t,{x:i.left+i.width/2,y:i.top+i.height/2})}if(null!=i&&i.parentId&&o.features.parentChild){const e=n.get(i.parentId);null!=e&&e.childId&&e.childId!==t&&kt(e.childId,!0),I({parentId:i.parentId,childId:t})}if(g.includes(t)||R([...g,t]),L(),!s)return;const a={isOpen:!0};null!=i&&i.parentId&&o.features.parentChild&&(a.parentId=i.parentId),n.set(t,{...s,...a}),V(t)}function kt(t,e=!1){const i=n.get(t);if(i&&(i.isOpen||i.isMinimized)){if(Pt(t),i.childId&&kt(i.childId,e),i.isMinimized)return S(H.filter(e=>e!==t)),void Tt(t);A.add(t),e?E([...m,t]):k([...u,t]),i.parentId||pt(null),L()}}function Et(t){const e=new Set(t??[]);Array.from(n.keys()).filter(t=>!e.has(t)).forEach(t=>kt(t,!0))}function Tt(t){const e=n.get(t);if(e){if(A.delete(t),e.parentId){const i=n.get(e.parentId);i&&i.childId===t&&n.set(e.parentId,{...i,childId:void 0,lastChildId:t})}n.set(t,{...e,isOpen:!1,isMinimized:!1,isHiddenWithParent:!1,isTransparent:!1,position:null,size:null,hasBeenDragged:!1,parentId:void 0,childId:void 0,offsetFromParent:void 0}),L()}}function Ot(t){return c.includes(t)}function Wt(t){return w.includes(t)}function Ft(t){return g.includes(t)}function Lt(t){return u.includes(t)}function _t(t){return m.includes(t)}function Gt(t){E(m.filter(e=>e!==t))}function $t(t){return p.includes(t)}function Yt(t){return f.includes(t)}function Vt(t){return(null==M?void 0:M.childId)===t}function Xt(){return M}function qt(t){if("animated"!==oe().parentChild.movementMode)return;const e=n.get(t);if(null==e||!e.parentId||!e.offsetFromParent||!e.position)return;const i={x:e.position.x-e.offsetFromParent.x,y:e.position.y-e.offsetFromParent.y};b.set(e.parentId,i),L()}const Kt={BASE:0,DROPDOWN:100,STICKY:200,OVERLAY:300,MODAL:400,DOCK:8e3,TOAST:9e3};function jt(){oe().zIndex.base}function Nt(t){const e=oe();return"MODAL"===t?e.zIndex.base:"DOCK"===t?e.zIndex.dock:"TOAST"===t?e.zIndex.toast:Kt[t]}function Ut(){oe().zIndex.base}function Jt(){const t=new Map;return{on(e,i){let n=t.get(e);return n||(n=new Set,t.set(e,n)),n.add(i),()=>{null==n||n.delete(i),0===(null==n?void 0:n.size)&&t.delete(e)}},emit(e,i){const n=t.get(e);n&&n.forEach(t=>t(i))},off(e){e?t.delete(e):t.clear()},listenerCount(e){var i;return(null==(i=t.get(e))?void 0:i.size)??0}}}function Qt(t){return"boolean"==typeof t?{visible:t,blockClicks:t}:t}let Zt={features:{dock:!0,minimize:!0,transparency:!0,resize:!0,drag:!0,focusTrap:!0,animations:!0,backdrop:!0,parentChild:!0},dock:{position:"bottom",labelMode:"beside",enableReorder:!0,enableFreeDrag:!0},animations:{open:400,close:250,minimize:500,restore:400,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)"},appearance:{headerLayout:"macos",defaultWidth:"480px",defaultHeight:"auto",minWidth:280,minHeight:200},zIndex:{base:400,dock:8e3,toast:9e3},parentChild:{movementMode:"animated",animationDuration:300},positioning:{strategy:"smart",modalGap:16,avoidElements:[]},portalTarget:"#modal-portal"},te=0;const ee=new Set;function ie(t){return ee.add(t),()=>ee.delete(t)}function ne(){return te}function oe(){return Zt}function se(t){const e=Zt;Zt=ae(Zt,t),te++,ee.forEach(t=>t()),e.features.dock&&!Zt.features.dock&&(Array.from(n.values()).filter(t=>t.isMinimized).map(t=>t.id).forEach(t=>{const e=n.get(t);if(e){n.set(t,{...e,isMinimized:!1,isOpen:!0}),T([...p,t]),V(t);const i=e.lastChildId||e.childId;i&&Ct(i)}}),S([]),L())}function ae(t,e){var i;return{features:{...t.features,...e.features},dock:{...t.dock,...e.dock},animations:{...t.animations,...e.animations},appearance:{...t.appearance,...e.appearance},zIndex:{...t.zIndex,...e.zIndex},parentChild:{...t.parentChild,...e.parentChild},positioning:{...t.positioning,...e.positioning,avoidElements:(null==(i=e.positioning)?void 0:i.avoidElements)??t.positioning.avoidElements},portalTarget:e.portalTarget??t.portalTarget}}function re(t,e){const i=oe(),n=e?ae(i,e):i;return{isFeatureEnabled:e=>{var i;if(void 0!==(null==(i=null==t?void 0:t.features)?void 0:i[e])){const i=t.features[e];if("backdrop"===e){const t=Qt(i);return t.visible||t.blockClicks}return i}const o=n.features[e];if("backdrop"===e){const t=Qt(o);return t.visible||t.blockClicks}return o},getAppearance:e=>{var i;return void 0!==(null==(i=null==t?void 0:t.appearance)?void 0:i[e])?t.appearance[e]:n.appearance[e]},getPositioning:e=>{var i;return void 0!==(null==(i=null==t?void 0:t.positioning)?void 0:i[e])?t.positioning[e]:n.positioning[e]},getEffectiveConfig:()=>n}}function de(t){return{id:t.id,title:t.title,icon:t.icon??"",isOpen:t.autoOpen??!1,isMinimized:!1,isHiddenWithParent:!1,isTransparent:!1,isRejected:!1,position:null,size:null,hasBeenDragged:!1,dockPosition:0,glow:t.glow??null,parentId:void 0,childId:void 0,offsetFromParent:void 0}}function le(t){const e=n.get(t.id);let i;i=null!=e&&e.zIndex?e.zIndex:Math.max(...Array.from(n.values()).map(t=>t.zIndex),oe().zIndex.base-2)+2;const o=g.includes(t.id),s=t.isOpen||o;e?n.set(t.id,{...e,title:t.title,icon:t.icon,glow:t.glow,zIndex:i}):n.set(t.id,{...t,isOpen:s,zIndex:i,isAnimating:!1}),L(),t.isMinimized&&!H.includes(t.id)&&S([...H,t.id])}function he(t){const e=n.get(t);if(e){if(S(H.filter(e=>e!==t)),R(g.filter(e=>e!==t)),k(u.filter(e=>e!==t)),E(m.filter(e=>e!==t)),D(c.filter(e=>e!==t)),T(p.filter(e=>e!==t)),O(f.filter(e=>e!==t)),W(w.filter(e=>e!==t)),F(y.filter(e=>e!==t)),e.childId){const t=n.get(e.childId);t&&n.set(e.childId,{...t,parentId:void 0})}if(e.parentId){const t=n.get(e.parentId);t&&n.set(e.parentId,{...t,childId:void 0,lastChildId:e.id})}n.delete(t),L(),B.delete(t),C.delete(t)}}class ce{constructor(t={}){e(this,"element",null),e(this,"resizeHandler",null),e(this,"options"),this.options=t}mount(t){var e,i;this.element=t,this.options.onWindowResize&&(this.resizeHandler=this.options.onWindowResize,window.addEventListener("resize",this.resizeHandler)),null==(i=(e=this.options).onMount)||i.call(e)}destroy(){var t,e;this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null),this.element=null,null==(e=(t=this.options).onDestroy)||e.call(t)}getElement(){return this.element}isMounted(){return null!==this.element}}const ge={modal:"modal-dialog",header:"modal-header",headerDraggable:"modal-header-draggable",body:"modal-body",footer:"modal-footer",childOverlay:"modal-child-overlay",overlayClosing:"modal-overlay-closing",headerTitle:"modal-header-title",headerIcon:"modal-header-icon",headerTitleGroup:"modal-header-title-group",headerActions:"modal-header-actions",headerTrafficLights:"modal-header-traffic-lights",headerLight:"modal-header-light",headerLightClose:"modal-header-light-close",headerLightMinimize:"modal-header-light-minimize",headerLightStyle:"modal-header-light-style",headerLightDisabled:"modal-header-light-disabled",headerMacCenter:"modal-header-mac-center",headerMacSpacer:"modal-header-mac-spacer",headerBtnWindows:"modal-header-btn-windows",headerBtnWindowsClose:"modal-header-btn-windows-close",headerBtnWindowsStyle:"modal-header-btn-windows-style",headerBtnWindowsDisabled:"modal-header-btn-windows-disabled",resizeHandles:"modal-resize-handles",resizeHandle:"modal-resize-handle",resizePrefix:"modal-resize-",dock:"modal-dock",dockContainer:"modal-dock-container",dockItem:"modal-dock-item",dockItemHasGlow:"modal-dock-item-has-glow",dockItemHasChild:"modal-dock-item-has-child",dockItemLabelBeside:"modal-dock-item-label-beside",dockItemLabelBelow:"modal-dock-item-label-below",dockItemIcon:"modal-dock-item-icon",dockItemIconPlaceholder:"modal-dock-item-icon-placeholder",dockItemLabel:"modal-dock-item-label",dockItemGlow:"modal-dock-item-glow",dockChildIndicator:"modal-dock-child-indicator",dockHandle:"modal-dock-handle",dockHandleDragging:"modal-dock-handle-dragging",backdrop:"modal-backdrop",backdropVisible:"modal-backdrop-visible"},ue={dialog:ge.modal,header:ge.header,headerDraggable:ge.headerDraggable,body:ge.body,footer:ge.footer,childOverlay:ge.childOverlay,headerTitle:ge.headerTitle,headerIcon:ge.headerIcon,headerTitleGroup:ge.headerTitleGroup,headerActions:ge.headerActions,headerTrafficLights:ge.headerTrafficLights,headerLight:ge.headerLight,headerLightClose:ge.headerLightClose,headerLightMinimize:ge.headerLightMinimize,headerLightStyle:ge.headerLightStyle,headerLightDisabled:ge.headerLightDisabled,headerMacCenter:ge.headerMacCenter,headerMacSpacer:ge.headerMacSpacer,headerBtnWindows:ge.headerBtnWindows,headerBtnWindowsClose:ge.headerBtnWindowsClose,headerBtnWindowsStyle:ge.headerBtnWindowsStyle,headerBtnWindowsDisabled:ge.headerBtnWindowsDisabled,resizeHandles:ge.resizeHandles,resizeHandle:ge.resizeHandle,resizePrefix:ge.resizePrefix,dock:ge.dock,dockContainer:ge.dockContainer,dockItem:ge.dockItem,dockItemHasGlow:ge.dockItemHasGlow,dockItemHasChild:ge.dockItemHasChild,dockItemLabelBeside:ge.dockItemLabelBeside,dockItemLabelBelow:ge.dockItemLabelBelow,dockItemIcon:ge.dockItemIcon,dockItemIconPlaceholder:ge.dockItemIconPlaceholder,dockItemLabel:ge.dockItemLabel,dockItemGlow:ge.dockItemGlow,dockChildIndicator:ge.dockChildIndicator,dockHandle:ge.dockHandle,backdrop:ge.backdrop,backdropVisible:ge.backdropVisible},me={modalId:"data-modal-id",resizeDirection:"data-direction"},pe=["n","s","e","w","ne","nw","se","sw"],fe={n:"Resize north",s:"Resize south",e:"Resize east",w:"Resize west",ne:"Resize northeast",nw:"Resize northwest",se:"Resize southeast",sw:"Resize southwest"},we={minWidth:280,minHeight:200},ye=["button:not([disabled])","[href]","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");function ze(t,e){const i=document.querySelector(`.modal-dock-item[data-modal-id="${t}"]`);if(i){const t=i.getBoundingClientRect();return{x:t.left+t.width/2,y:t.top+t.height/2}}const n=document.querySelector('[data-dock-container="true"]');if(n){const t=n.getBoundingClientRect();return{x:t.left+t.width/2,y:t.top+t.height/2}}return{x:typeof window<"u"?window.innerWidth/2:0,y:typeof window<"u"?window.innerHeight-40:0}}function ve(t,e){return function(t,e,i={}){const{timeout:n=5e3,useObservers:o=!0}=i;return new Promise((i,s)=>{const a=performance.now();let r=null,d=null,l=null,h=null,c=!1;const g=()=>{c=!0,null==r||r.disconnect(),null==d||d.disconnect(),l&&clearTimeout(l),h&&cancelAnimationFrame(h)},u=()=>{if(c)return;const n=t();n&&e(n)&&(g(),i(n))};l=setTimeout(()=>{c||(g(),s(new Error(`DOM not ready after ${n}ms`)))},n);const m=t();if(m&&e(m))return g(),void i(m);if(o&&m){r=new MutationObserver(u),r.observe(m,{attributes:!0,attributeFilter:["class","data-state","data-animation-phase","style"],childList:!0,subtree:!1}),d=new ResizeObserver(u),d.observe(m);const t=()=>{c||(u(),c||(h=requestAnimationFrame(()=>{setTimeout(t,100)})))};t()}else{const o=()=>{if(c)return;const s=t(),r=performance.now()-a;if(s&&e(s))return g(),void i(s);r>=n||(h=requestAnimationFrame(o))};o()}})}(t,t=>t.offsetWidth>0&&t.offsetHeight>0,e)}const xe="modal-genie-minimize",Pe="modal-genie-restore",Me="modal-close",Ie="modal-close-centered",be="modal-child-appear",Ce="modal-child-disappear",Ae={[xe]:["minimize"],[Pe]:["restore","open"],[Me]:["close"],[Ie]:["close"],[be]:["open"],[Ce]:["close"]};class Be{constructor(t){e(this,"id"),e(this,"dataId"),e(this,"configHelper"),e(this,"getDragBehavior"),e(this,"getElement"),this.id=t.id,this.dataId=t.dataId,this.configHelper=t.configHelper,this.getDragBehavior=t.getDragBehavior,this.getElement=t.getElement}constrainToViewport(t){const e=this.getDragBehavior();e.hasBeenDragged()&&e.constrainToViewport(t)}shouldApplySmartPositioning(){return!("smart"!==this.configHelper.getPositioning("strategy")||this.getDragBehavior().hasBeenDragged())}applySmartPositioning(){if("smart"!==this.configHelper.getPositioning("strategy"))return!1;const t=at(this.id),e=Xt();if(null!=t&&t.parentId||e&&e.childId===this.id||null!=t&&t.hasBeenDragged||null!=t&&t.position)return!1;const i=this.getElement()||nt(this.id);if(!i)return!1;const n=i.offsetWidth,o=i.offsetHeight;if(n<=0||o<=0)return!1;const s=this.configHelper.getPositioning("modalGap"),a=ct().filter(t=>t.id!==this.id),r=J(this.configHelper.getPositioning("avoidElements")),d=et(a,{id:this.id,width:n,height:o},{modalGap:s,viewportMargin:s,avoidBounds:r,avoidMargin:s}),l=d.positions.get(this.id);if(!l)return!1;const h=new Map;for(const[t,e]of d.positions)t!==this.id&&h.set(t,e);h.size>0&&ft(h);const c=this.getDragBehavior();return c.setPosition(l),c.setHasBeenDragged(!0),gt(this.id,l,{size:{width:n,height:o}}),!0}scheduleSmartPositioning(){ve(()=>this.getElement()||nt(this.id)).then(()=>{this.applySmartPositioning()}).catch(()=>{this.applySmartPositioning()})}centerChildOnParent(t){var e,i;const o=at(t);if(!o)return!1;const s=this.getElement()||nt(this.id),a=nt(t),r=null==a?void 0:a.getBoundingClientRect(),d=o.position??(r?{x:r.left,y:r.top}:null);if(!d||!s)return!1;const l=(null==(e=o.size)?void 0:e.width)??(null==a?void 0:a.offsetWidth)??(null==r?void 0:r.width)??480,h=(null==(i=o.size)?void 0:i.height)??(null==a?void 0:a.offsetHeight)??(null==r?void 0:r.height)??400,c=s.offsetWidth,g=s.offsetHeight;if(l<=0||h<=0||c<=0||g<=0)return!1;const u={x:d.x+(l-c)/2,y:d.y+(h-g)/2},m=this.getDragBehavior();m.setPosition(u),m.setHasBeenDragged(!0),gt(this.id,u,{size:{width:c,height:g}}),(!o.position||!o.size)&&r&&gt(t,{x:r.left,y:r.top},{size:{width:l,height:h}});const p={x:u.x-d.x,y:u.y-d.y};return function(t,e,i){const o=n.get(t),s=n.get(e);!o||!s||(n.set(t,{...o,childId:e}),n.set(e,{...s,parentId:t,offsetFromParent:i}),V(e),L())}(t,this.id,p),!0}scheduleCenterChildOnParent(t){ve(()=>this.getElement()).then(()=>{this.centerChildOnParent(t)}).catch(()=>{this.centerChildOnParent(t)})}}const He=new WeakMap;function Se(t){const e=He.get(t);if(e)return e.elements;const i=De(t),n=new MutationObserver(()=>{!function(t){const e=He.get(t);e&&(e.elements=De(t))}(t)});return n.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["disabled","tabindex","href","hidden"]}),He.set(t,{elements:i,observer:n}),i}function De(t){return Array.from(t.querySelectorAll(ye)).filter(t=>null!==t.offsetParent||"A"===t.tagName)}class Re{constructor(t){e(this,"options"),this.options=t}startDrag(t){const e=this.options.getElement();!this.options.configHelper.isFeatureEnabled("drag")||!e||this.options.getDragBehavior().onPointerDown(t,e)}startResize(t,e){const i=this.options.getState();!this.options.configHelper.isFeatureEnabled("resize")||i.hasChild||this.options.getResizeBehavior().startResize(t,e)}handlePointerMove(t){const e=this.options.getElement();if(!e)return;const i=this.options.getDragBehavior(),n=i.isDragging(),o=this.options.getResizeBehavior(),s=o.hasBeenResized()?o.getSize():{width:e.offsetWidth,height:e.offsetHeight};i.onPointerMove(t,s),n&&i.isDragging()&&this.options.onDragMove()}handlePointerUp(t){const e=this.options.getElement();if(!e)return;const i=this.options.getDragBehavior(),n=i.isDragging();i.onPointerUp(t,e),n&&!this.options.getResizeBehavior().justFinishedResizing()&&this.options.onDragEnd()}handleKeyDown(t){var e,i;this.options.closeOnEscape&&"Escape"===t.key&&this.options.isTopModal()&&(t.stopPropagation(),null==(i=(e=this.options).onClose)||i.call(e))}updateCloseOnEscape(t){this.options.closeOnEscape=t}handleTabKey(t){const e=this.options.getElement();e&&function(t,e){if("Tab"!==t.key)return;const i=Se(e);if(0===i.length)return void t.preventDefault();const n=i[0],o=i[i.length-1],s=document.activeElement;t.shiftKey?s===n&&(o.focus(),t.preventDefault()):s===o&&(n.focus(),t.preventDefault())}(t,e)}focusFirst(){const t=this.options.getElement();t&&function(t){const e=Se(t);e.length>0&&e[0].focus()}(t)}}class ke{constructor(t){e(this,"id"),e(this,"options"),e(this,"_isHandlingMinimize",!1),e(this,"_isAttentionAnimating",!1),e(this,"_wasRestored"),e(this,"_glowStabilizing",!1),e(this,"_restoreHold",!1),e(this,"_isAnimatingToCenter",!1),e(this,"_cancelParentAnimationCleanup",null),e(this,"_parentFlipInFlight",!1),e(this,"_deferredParentTarget",null),e(this,"_parentFlipStartTime",0),e(this,"_isHandlingPendingStates",!1),this.id=t.id,this.options=t,this._wasRestored=!1}handlePendingStates(){if(!this._isHandlingPendingStates&&at(this.id)){this._isHandlingPendingStates=!0;try{if(this.handlePendingForceClose()||(this.handlePendingMinimize(),this.handlePendingMinimizeWithParent(),this.handlePendingRestore(),this.handlePendingChildRestore(),this.handlePendingClose()))return;const t=this.handlePendingParentLink(),e=this.handlePendingOpen(t);this.handlePendingAttention(),this.handlePendingParentAnimation(),this.handleChildCentering(t,e)}finally{this._isHandlingPendingStates=!1}}}handlePendingForceClose(){var t,e;return!!_t(this.id)&&(Gt(this.id),Tt(this.id),null==(e=(t=this.options.options).onClose)||e.call(t),!0)}handlePendingMinimize(){if(!Ot(this.id)||this._isHandlingMinimize)return;this._isHandlingMinimize=!0,x(null);const t=this.options.getElement();if(t){const e=this.options.getDragBehavior(),i=this.options.getResizeBehavior(),n=t.getBoundingClientRect(),o=e.hasBeenDragged()?e.getPosition():{x:n.left,y:n.top},s=i.hasBeenResized()?i.getSize():{width:n.width,height:n.height};mt(this.id,{position:o,size:s,hasBeenDragged:!0})}this.options.getAnimationController().startMinimize(void 0,()=>{var t;t=this.id,D(c.filter(e=>e!==t)),x(null),this._isHandlingMinimize=!1})||(this._isHandlingMinimize=!1)}handlePendingMinimizeWithParent(){if(!Wt(this.id)||this._isHandlingMinimize)return;this._isHandlingMinimize=!0;const t=this.options.getElement();if(t){const e=this.options.getDragBehavior(),i=this.options.getResizeBehavior(),n=t.getBoundingClientRect(),o=e.hasBeenDragged()?e.getPosition():{x:n.left,y:n.top},s=i.hasBeenResized()?i.getSize():{width:n.width,height:n.height};mt(this.id,{position:o,size:s,hasBeenDragged:!0})}this.options.getAnimationController().startMinimize(void 0,()=>{var t;t=this.id,W(w.filter(e=>e!==t)),function(t){const e=n.get(t);e&&(n.set(t,{...e,isHiddenWithParent:!0}),L())}(this.id),this._isHandlingMinimize=!1})}handlePendingRestore(){if(!$t(this.id))return;const t=at(this.id),e=this.options.getAnimationController();var i;i=this.id,T(p.filter(t=>t!==i)),e.startRestore((null==t?void 0:t.position)??void 0,(null==t?void 0:t.size)??void 0),requestAnimationFrame(()=>{this.options.focusFirst()})}handlePendingChildRestore(){if(!Yt(this.id))return;const t=at(this.id),e=this.options.getAnimationController();var i;i=this.id,O(f.filter(t=>t!==i)),e.startRestore((null==t?void 0:t.position)??void 0,(null==t?void 0:t.size)??void 0),function(t){const e=n.get(t);!e||!e.isHiddenWithParent||(n.set(t,{...e,isHiddenWithParent:!1}),L())}(this.id),this._wasRestored=!0}handlePendingClose(){var t,e,i;return!!Lt(this.id)&&(i=this.id,k(u.filter(t=>t!==i)),this.options.getAnimationController().startClose(()=>{var t,e;St(this.id),Tt(this.id),null==(e=(t=this.options.options).onClose)||e.call(t)})||(St(this.id),Tt(this.id),null==(e=(t=this.options.options).onClose)||e.call(t)),!0)}handlePendingParentLink(){const t=Xt();return t&&t.childId===this.id&&(mt(this.id,{parentId:t.parentId}),this._wasRestored=!0),function(t){const e=M;return t&&(null==e?void 0:e.childId)!==t?null:(I(null),e)}(this.id)}handlePendingOpen(t){var e,i;if(!Ft(this.id))return!1;i=this.id,R(g.filter(t=>t!==i));const n=this.options.getDragBehavior(),o=this.options.getResizeBehavior();mt(this.id,{position:null,hasBeenDragged:!1,size:null}),n.setPosition({x:0,y:0}),n.setHasBeenDragged(!1),o.reset();const s=function(t){const e=P.get(t)??null;return P.delete(t),e}(this.id)||this.options.options.openSourcePosition||null,a=!!t||!(null==(e=at(this.id))||!e.parentId);let r=!1;return s?(r=!0,this.options.getAnimationController().setPendingOpenSource(s),a&&t?this.openChildModalWithAnimation(t.parentId):this.openStandaloneModalWithAnimation()):a||this.options.getPositioning().scheduleSmartPositioning(),requestAnimationFrame(()=>{this.options.focusFirst()}),r}openChildModalWithAnimation(t){const e=this.options.getPositioning(),i=this.options.getAnimationController();ve(()=>this.options.getElement()).then(()=>{e.centerChildOnParent(t)&&(i.startOpen(),this._wasRestored=!0)}).catch(()=>{e.centerChildOnParent(t)&&(i.startOpen(),this._wasRestored=!0)})}openStandaloneModalWithAnimation(){const t=this.options.getPositioning(),e=this.options.getAnimationController();ve(()=>this.options.getElement()).then(()=>{t.applySmartPositioning(),e.startOpen()}).catch(()=>{t.applySmartPositioning(),e.startOpen()})}handlePendingAttention(){var t;t=this.id,y.includes(t)&&(function(t){F(y.filter(e=>e!==t)),z.includes(t)||function(t){z=t}([...z,t])}(this.id),this.id,this._isAttentionAnimating=!0,setTimeout(()=>{this._isAttentionAnimating=!1,this.id,this.options.onStateChange()},600))}handlePendingParentAnimation(){if(t=this.id,!b.has(t))return;var t;const e=function(t){const e=b.get(t)??null;return b.delete(t),e}(this.id);if(e){if(this._parentFlipInFlight&&Date.now()-this._parentFlipStartTime<100)return void(this._deferredParentTarget=e);this._deferredParentTarget=null,this.startParentFlip(e)}}startParentFlip(t){var e,i;const n=this.options.getDragBehavior(),o=this.options.getElement(),s=null==o?void 0:o.getBoundingClientRect(),a=s?{x:s.left,y:s.top}:(null==(e=at(this.id))?void 0:e.position)??null;mt(this.id,{position:t,hasBeenDragged:!0,isAnimatingPosition:!0}),n.setPosition(t),n.setHasBeenDragged(!0),null==(i=this._cancelParentAnimationCleanup)||i.call(this),this._parentFlipInFlight=!0,this._parentFlipStartTime=Date.now();const r=this.id,d=()=>{this._parentFlipInFlight=!1,this._cancelParentAnimationCleanup=null,ut(r);const t=this._deferredParentTarget;t?(this._deferredParentTarget=null,this.startParentFlip(t)):qt(r)};o&&a?this._cancelParentAnimationCleanup=st(o,a,t,{duration:300,onComplete:d}):setTimeout(d,400)}handleChildCentering(t,e){t&&this.options.getElement()&&!e&&this.options.getPositioning().scheduleCenterChildOnParent(t.parentId)}get wasRestored(){return this._wasRestored}set wasRestored(t){this._wasRestored=t}get isAttentionAnimating(){return this._isAttentionAnimating}get glowStabilizing(){return this._glowStabilizing}set glowStabilizing(t){this._glowStabilizing=t}get restoreHold(){return this._restoreHold}set restoreHold(t){this._restoreHold=t}get isAnimatingToCenter(){return this._isAnimatingToCenter}set isAnimatingToCenter(t){this._isAnimatingToCenter=t}get isHandlingMinimize(){return this._isHandlingMinimize}}class Ee{constructor(t){var i,n,o,s;e(this,"id"),e(this,"dataId"),e(this,"options"),e(this,"drag"),e(this,"resize"),e(this,"animation"),e(this,"positioning"),e(this,"lifecycle"),e(this,"interactions"),e(this,"stateManager"),e(this,"overlayClosing",!1),e(this,"emitter",Jt()),e(this,"unsubscribeState",null),e(this,"cachedState",null),this.id=t.id,this.dataId=t.id,this.options=t,this.drag=function(t={}){const{initialPosition:e={x:0,y:0},constrain:i=!0}=t,n={...e};let o=!1,s=!1,a=0,r=0,d=0,l=0,h=null,c=null,g=null;const u=Jt();function m(){return{isDragging:o,position:{...n},hasBeenDragged:s}}function p(){u.emit("change",m())}function f(){if(h=null,!c||!g||!o)return;const t=c,e=g;c=null,g=null;const m=t.clientX-a,f=t.clientY-r;let w=d+m,y=l+f;if(i){const t=K(w,y,e.width,e.height);w=t.x,y=t.y}n.x=w,n.y=y,s=!0,u.emit("dragMove",{...n}),p()}return{getState:m,getPosition:()=>({...n}),isDragging:()=>o,hasBeenDragged:()=>s,setPosition:function(t){n.x=t.x,n.y=t.y,p()},setHasBeenDragged:function(t){s=t,p()},reset:function(){n.x=e.x,n.y=e.y,s=!1,o=!1,p()},constrainToViewport:function(t){if(!s)return;const e=K(n.x,n.y,t.width,t.height);n.x=e.x,n.y=e.y,p()},onPointerDown:function(t,e){if(0===t.button){if(!s){const t=e.getBoundingClientRect();n.x=t.left,n.y=t.top}o=!0,a=t.clientX,r=t.clientY,d=n.x,l=n.y,e.setPointerCapture(t.pointerId),u.emit("dragStart",{...n}),p()}},onPointerMove:function(t,e){o&&(c=t,g=e,null===h&&(h=requestAnimationFrame(f)))},onPointerUp:function(t,e){if(o){if(null!==h&&(cancelAnimationFrame(h),h=null),c&&g){const t=c.clientX-a,e=c.clientY-r;let o=d+t,h=l+e;if(i){const t=K(o,h,g.width,g.height);o=t.x,h=t.y}n.x=o,n.y=h,s=!0}c=null,g=null,o=!1,e.releasePointerCapture(t.pointerId),u.emit("dragEnd",{...n}),p()}},subscribe:function(t){return u.on("change",t)},destroy:function(){null!==h&&(cancelAnimationFrame(h),h=null),c=null,g=null,u.off()}}}({initialPosition:{x:0,y:0},constrain:!0}),this.resize=function(t){const{minWidth:e=we.minWidth,minHeight:i=we.minHeight,getPosition:n,setPosition:o,getHasBeenDragged:s,setHasBeenDragged:a,getElement:r,getSymmetricResize:d,onResizeEnd:l}=t;let h=!1,c="",g={width:0,height:0},u=!1,m=!1,p={x:0,y:0,width:0,height:0,posX:0,posY:0,centerX:0,centerY:0},f=null;const w=Jt();let y=null,z=null;function v(){return{isResizing:h,direction:c,size:{...g},hasBeenResized:u}}function x(){w.emit("change",v())}function P(t){if(t.pointerId!==f)return;const n=t.clientX-p.x,s=t.clientY-p.y,a=window.innerWidth,r=window.innerHeight,l=(null==d?void 0:d())??!1;let h=p.width,u=p.height,m=p.posX,y=p.posY;if(l){if(c.includes("e")||c.includes("w")){const t=c.includes("e")?n:-n;h=Math.max(e,p.width+2*t),m=p.centerX-h/2}if(c.includes("s")||c.includes("n")){const t=c.includes("s")?s:-s;u=Math.max(i,p.height+2*t),y=p.centerY-u/2}}else{if(c.includes("e")){const t=a-m;h=Math.max(e,Math.min(p.width+n,t))}if(c.includes("w")){const t=p.width-e,i=Math.min(n,t);h=p.width-i,m=p.posX+i}if(c.includes("s")){const t=r-y;u=Math.max(i,Math.min(p.height+s,t))}if(c.includes("n")){const t=p.height-i,e=Math.min(s,t);u=p.height-e,y=p.posY+e}}const z=j(m,y,h,u);g={width:z.width,height:z.height},o({x:z.x,y:z.y}),w.emit("resizeMove",{size:{...g},position:{x:z.x,y:z.y}}),x()}function M(t){if(t.pointerId!==f)return;h=!1,c="",f=null,y&&window.removeEventListener("pointermove",y),z&&(window.removeEventListener("pointerup",z),window.removeEventListener("pointercancel",z)),y=null,z=null,m=!0;const e=n();w.emit("resizeEnd",{size:{...g},position:e}),l&&l(e,{...g}),x(),setTimeout(()=>{m=!1},0)}return{getState:v,getSize:()=>({...g}),isResizing:()=>h,hasBeenResized:()=>u,justFinishedResizing:()=>m,setSize:function(t){g={...t},u=!0,x()},reset:function(){u=!1,g={width:0,height:0},h=!1,c="",x()},constrainToViewport:function(){const t=n(),e=r();if(!e)return;const i=j(t.x,t.y,g.width||e.offsetWidth,g.height||e.offsetHeight);g={width:i.width,height:i.height},o({x:i.x,y:i.y}),x()},startResize:function(t,e){t.preventDefault(),t.stopPropagation();const i=r();if(!i)return;const d=i.getBoundingClientRect();s()||(o({x:d.left,y:d.top}),a(!0)),u||(g={width:d.width,height:d.height},u=!0);const l=n();h=!0,c=e,f=t.pointerId,p={x:t.clientX,y:t.clientY,width:g.width,height:g.height,posX:l.x,posY:l.y,centerX:l.x+g.width/2,centerY:l.y+g.height/2},y=P,z=M,window.addEventListener("pointermove",y),window.addEventListener("pointerup",z),window.addEventListener("pointercancel",z),w.emit("resizeStart",{direction:e}),x()},subscribe:function(t){return w.on("change",t)},destroy:function(){y&&window.removeEventListener("pointermove",y),z&&(window.removeEventListener("pointerup",z),window.removeEventListener("pointercancel",z)),w.off()}}}({minWidth:(null==(n=null==(i=t.config)?void 0:i.appearance)?void 0:n.minWidth)??oe().appearance.minWidth,minHeight:(null==(s=null==(o=t.config)?void 0:o.appearance)?void 0:s.minHeight)??oe().appearance.minHeight,getPosition:()=>this.drag.getPosition(),setPosition:t=>this.drag.setPosition(t),getHasBeenDragged:()=>this.drag.hasBeenDragged(),setHasBeenDragged:t=>this.drag.setHasBeenDragged(t),getElement:()=>this.element,onResizeEnd:(t,e)=>this.handleResizeEnd(t,e)}),this.animation=function(t){const{getId:e,getElement:i,getPosition:n,setPosition:o,getHasBeenDragged:s,setHasBeenDragged:a,getHasBeenResized:r,getSize:d,areAnimationsEnabled:l=()=>!0,onMinimizeComplete:h,onOpenStart:c}=t;let g="none",u=!1,m=null,p=null,f=null,w=null,y=null,z=null,v=null;const x=Jt();function P(){return{type:g,isAnimating:u,transform:m?{...m}:null}}function M(){x.emit("change",P())}function I(){z&&(clearTimeout(z),z=null)}function b(){const t=i();!t||v||(v=function(t,e){const i=i=>{i.target===t&&e(i.animationName)};return t.addEventListener("animationend",i),()=>t.removeEventListener("animationend",i)}(t,C))}function C(t){I();const e=Ae[t];if(!e||!e.includes(g))return;const i={none:void 0,minimize:A,restore:B,open:H,close:S,attention:void 0}[g];i&&i()}function A(){"minimize"===g&&(I(),w?(w(),w=null):y&&(null==h||h(y.position,!0,y.size)),x.emit("animationEnd",{type:"minimize"}),y=null,g="none",u=!1,m=null,M())}function B(){if("restore"!==g)return;I(),g="none",u=!1,m=null;const t=i();t&&(t.setAttribute("data-state","open"),t.setAttribute("data-animation-phase","idle")),x.emit("animationEnd",{type:"restore"}),M()}function H(){if("open"!==g)return;I(),g="none",u=!1,m=null;const t=i();t&&(t.setAttribute("data-state","open"),t.setAttribute("data-animation-phase","idle")),x.emit("animationEnd",{type:"open"}),M()}function S(){if("close"!==g)return;I(),g="none",u=!1;const t=i();t&&(t.setAttribute("data-state","closed"),t.setAttribute("data-animation-phase","idle")),x.emit("animationEnd",{type:"close"}),f&&(f(),f=null),M()}return{getState:P,isAnimating:()=>u,getAnimationType:()=>g,getTransform:()=>m?{...m}:null,getPendingOpenSource:()=>p?{...p}:null,setPendingOpenSource:t=>{p=t?{...t}:null},startMinimize:function(t,c){const p=i();if(u||!p)return!1;if(b(),I(),!l()){const t=p.getBoundingClientRect(),e=s()?n():{x:t.left,y:t.top},i=r()?d():{width:t.width,height:t.height};return s()||(o(e),a(!0)),c?c():null==h||h(e,!0,i),!0}const f=p.getBoundingClientRect(),v=s()?n():{x:f.left,y:f.top},P=r()?d():{width:f.width,height:f.height};s()||(o(v),a(!0));const C=t??ze(e());return m=function(t,e,i){const n=t.x+e.width/2,o=t.y+e.height/2;return{x:i.x-n,y:i.y-o,originX:i.x-t.x,originY:i.y-t.y}}(v,P,C),w=c||null,y={position:v,size:P},p.setAttribute("data-state","minimizing"),p.setAttribute("data-animation-phase","prepare"),requestAnimationFrame(()=>{requestAnimationFrame(()=>{g="minimize",u=!0,p.setAttribute("data-animation-phase","animate"),x.emit("animationStart",{type:"minimize"}),M()})}),z=setTimeout(()=>{"minimize"===g&&A()},600),!0},startRestore:function(t,n){const s=i();if(b(),I(),!l()){const e=t||{x:window.innerWidth/2,y:window.innerHeight/2};return o(e),void a(!0)}const r=ze(e()),d=t||{x:window.innerWidth/2,y:window.innerHeight/2},h=n||{width:480,height:400};o(d),a(!0),m=function(t,e,i){const n=t.x+e.width/2,o=t.y+e.height/2;return{x:i.x-n,y:i.y-o,originX:i.x-t.x,originY:i.y-t.y}}(d,h,r),g="restore",u=!0,s&&(s.setAttribute("data-state","restoring"),s.setAttribute("data-animation-phase","animate")),x.emit("animationStart",{type:"restore"}),M(),z=setTimeout(()=>{"restore"===g&&B()},500)},startOpen:function(){const t=i();if(!p||!t||u)return!1;if(b(),I(),!l())return p=null,!1;const e=p,r=t.getBoundingClientRect(),d=s()?n():{x:r.left,y:r.top},h=r.width,f=r.height;return s()||(o(d),a(!0)),m=function(t,e,i){const n=t.x+e.width/2,o=t.y+e.height/2;return{x:i.x-n,y:i.y-o,originX:i.x-t.x,originY:i.y-t.y}}(d,{width:h,height:f},e),g="open",u=!0,p=null,t.setAttribute("data-state","opening"),t.setAttribute("data-animation-phase","animate"),x.emit("animationStart",{type:"open"}),null==c||c(),M(),z=setTimeout(()=>{"open"===g&&H()},500),!0},startClose:function(t){const e=i();return!u&&(b(),I(),l()?(f=t,g="close",u=!0,e&&(e.setAttribute("data-state","closing"),e.setAttribute("data-animation-phase","animate")),x.emit("animationStart",{type:"close"}),M(),z=setTimeout(()=>{"close"===g&&S()},350),!0):(t(),!0))},forceClearMinimize:function(){I(),"minimize"===g&&(g="none",u=!1,m=null,w=null,y=null,M())},destroy:function(){I(),null==v||v(),v=null,x.off()},subscribe:t=>x.on("change",t)}}({getId:()=>this.id,getElement:()=>this.element,getPosition:()=>this.drag.getPosition(),setPosition:t=>this.drag.setPosition(t),getHasBeenDragged:()=>this.drag.hasBeenDragged(),setHasBeenDragged:t=>this.drag.setHasBeenDragged(t),getHasBeenResized:()=>this.resize.hasBeenResized(),getSize:()=>this.resize.getSize(),areAnimationsEnabled:()=>this.options.configHelper.isFeatureEnabled("animations"),onMinimizeComplete:(t,e,i)=>{mt(this.id,{position:t,size:i,hasBeenDragged:e}),It(this.id)},onOpenStart:()=>{const t=at(this.id);null!=t&&t.parentId&&(this.stateManager.wasRestored=!0)}}),this.positioning=new Be({id:this.id,dataId:this.dataId,configHelper:t.configHelper,getDragBehavior:()=>this.drag,getElement:()=>this.element}),this.interactions=new Re({id:this.id,configHelper:t.configHelper,getDragBehavior:()=>this.drag,getResizeBehavior:()=>this.resize,getElement:()=>this.element,getState:()=>{var t;return{hasChild:!(null==(t=at(this.id))||!t.childId)}},onDragMove:()=>{if("realtime"===oe().parentChild.movementMode){const t=this.drag.getPosition();gt(this.id,t,{drag:!0,realtime:!0})}},onDragEnd:()=>{const t=this.drag.getPosition();gt(this.id,t,{drag:!0}),"animated"===oe().parentChild.movementMode&&qt(this.id)},onClose:()=>this.close(),closeOnEscape:t.closeOnEscape,isTopModal:()=>X(this.id)}),this.stateManager=new ke({id:this.id,options:{glow:t.glow,openSourcePosition:t.openSourcePosition,onClose:t.onClose},getDragBehavior:()=>this.drag,getResizeBehavior:()=>this.resize,getAnimationController:()=>this.animation,getElement:()=>this.element,getPositioning:()=>this.positioning,onStateChange:()=>this.notifyStateChange(),focusFirst:()=>this.interactions.focusFirst()}),Vt(t.id)&&(this.stateManager.wasRestored=!0),this.lifecycle=new ce({onMount:()=>{this.handleStateChange(),this.handlePendingStates(),this.notifyStateChange()},onDestroy:()=>{var t;null==(t=this.unsubscribeState)||t.call(this),this.drag.destroy(),this.resize.destroy(),this.animation.destroy(),this.emitter.off()},onWindowResize:()=>this.handleWindowResize()}),this.drag.subscribe(()=>this.notifyStateChange()),this.resize.subscribe(()=>this.notifyStateChange()),this.animation.subscribe(()=>{this.handlePendingStates(),this.notifyStateChange()}),this.unsubscribeState=G(()=>{this.handleStateChange(),this.handlePendingStates(),this.notifyStateChange()}),t.skipRegistration||this.register(t.autoOpen??!1),this.handleStateChange(),this.handlePendingStates()}mount(t){this.lifecycle.mount(t)}destroy(){this.lifecycle.destroy()}get element(){return this.lifecycle.getElement()}handleWindowResize(){if(!this.element||!this.drag.hasBeenDragged())return;const t=this.resize.hasBeenResized()?this.resize.getSize():{width:this.element.offsetWidth,height:this.element.offsetHeight};this.positioning.constrainToViewport(t),this.resize.hasBeenResized()&&this.resize.constrainToViewport(),this.notifyStateChange()}register(t){le({id:this.id,title:this.options.title,icon:this.options.icon??"",isOpen:t,isMinimized:!1,isHiddenWithParent:!1,isTransparent:!1,isRejected:!1,position:null,size:null,hasBeenDragged:!1,dockPosition:0,glow:this.options.glow??null,parentId:void 0,childId:void 0,offsetFromParent:void 0}),t&&V(this.id)}getState(){if(this.cachedState)return this.cachedState;const t=at(this.id),e=this.drag.getState(),i=this.resize.getState(),n=this.animation.getState(),o=!!t&&(t.isOpen||Lt(this.id))&&(!t.isMinimized||Ot(this.id))&&(!t.isHiddenWithParent||Wt(this.id)||Yt(this.id)),s=!(null==t||!t.childId),a=!(null==t||!t.parentId),r="minimize"===n.type&&n.isAnimating,d="restore"===n.type&&n.isAnimating,l="open"===n.type&&n.isAnimating,h="close"===n.type&&n.isAnimating,c=n.isAnimating,g=(null==t?void 0:t.isAnimatingPosition)??!1,u=g&&null!=t&&t.position?t.position:e.position,m=!!g||e.hasBeenDragged,p=(Yt(this.id)||$t(this.id))&&!d,f=(a||Vt(this.id))&&!l&&(!m||!!this.animation.getPendingOpenSource()),w=d||l||this.stateManager.restoreHold,y=o&&!m&&!c&&!this.animation.getPendingOpenSource()&&!p&&!f;let z="closed";r||Ot(this.id)?z="minimizing":d?z="restoring":l?z="opening":h?z="closing":null!=t&&t.isMinimized?z="minimized":o&&(z="open");const v=this.options.configHelper.isFeatureEnabled("drag"),x=this.options.configHelper.isFeatureEnabled("resize"),P=this.options.configHelper.isFeatureEnabled("minimize"),M=!!this.options.glow,I=function(t){const e={"z-index":t.zIndex};return t.animationTransform?(e.left=`${t.position.x}px`,e.top=`${t.position.y}px`,e["--genie-origin-x"]=`${t.animationTransform.originX}px`,e["--genie-origin-y"]=`${t.animationTransform.originY}px`,e["--genie-translate-x"]=`${t.animationTransform.x}px`,e["--genie-translate-y"]=`${t.animationTransform.y}px`):t.hasBeenDragged&&(e.left=`${t.position.x}px`,e.top=`${t.position.y}px`,t.isAnimatingPosition||(e.transform="none")),t.hasBeenResized?(e.width=`${t.size.width}px`,e.height=`${t.size.height}px`,e["max-width"]="none",e["max-height"]="none"):(t.preferredHeight&&(e["min-height"]=t.preferredHeight),t.maxWidth&&(e["max-width"]=t.maxWidth)),t.glowEnabled&&t.glow&&(e["--modal-glow-color"]=t.glow.color,e["--modal-glow-intensity"]=String(t.glow.intensity??"medium")),e}({position:u,hasBeenDragged:m,hasBeenResized:i.hasBeenResized,size:i.size,animationTransform:n.transform,zIndex:(null==t?void 0:t.zIndex)??1e3,glowEnabled:M,glow:this.options.glow??null,maxWidth:this.options.maxWidth,preferredHeight:this.options.preferredHeight,isAnimatingPosition:g}),b=function(t){const e=["modal-dialog"];return t.isDragging&&e.push("modal-dragging"),t.isResizing&&e.push("modal-resizing"),t.hasBeenDragged&&e.push("modal-positioned"),t.isMinimizing&&e.push("modal-minimizing"),t.isRestoring&&e.push("modal-restoring"),t.isOpening&&e.push("modal-opening"),t.isClosing&&e.push("modal-closing"),t.showCentered&&e.push("modal-centered"),t.isTransparent||e.push("modal-solid"),t.isTransparent&&e.push("modal-transparent"),t.glowEnabled&&e.push("modal-glow"),t.hasChild&&e.push("modal-has-child"),t.isChildModal&&e.push("modal-is-child"),t.wasRestored&&e.push("modal-was-restored"),t.isVisibleByAnimation&&e.push("modal-visible-by-animation"),t.isAwaitingRestore&&e.push("modal-awaiting-restore"),t.isAwaitingChildOpen&&e.push("modal-awaiting-child-open"),t.isAnimatingToCenter&&e.push("modal-animating-to-center"),t.isAnimatingPosition&&e.push("modal-animating-position"),t.isAttentionAnimating&&e.push("modal-attention"),t.glowStabilizing&&t.glowEnabled&&e.push("modal-glow-stabilizing"),e}({isDragging:e.isDragging,isResizing:i.isResizing,hasBeenDragged:m,isMinimizing:r,isRestoring:d,isOpening:l,isClosing:h,showCentered:y,isTransparent:(null==t?void 0:t.isTransparent)??!1,glowEnabled:M,hasChild:s,isChildModal:a,wasRestored:this.stateManager.wasRestored,isVisibleByAnimation:w,isAwaitingRestore:p,isAwaitingChildOpen:f,isAnimatingToCenter:this.stateManager.isAnimatingToCenter,isAnimatingPosition:(null==t?void 0:t.isAnimatingPosition)??!1,isAttentionAnimating:this.stateManager.isAttentionAnimating,glowStabilizing:this.stateManager.glowStabilizing});return this.cachedState={position:e.position,size:i.size,zIndex:(null==t?void 0:t.zIndex)??1e3,isDragging:e.isDragging,isResizing:i.isResizing,hasBeenDragged:e.hasBeenDragged,hasBeenResized:i.hasBeenResized,isMinimizing:r,isRestoring:d,isOpening:l,isClosing:h,isAnyAnimating:c,animationTransform:n.transform,isVisible:o,showCentered:y,isAwaitingRestore:p,isAwaitingChildOpen:f,isVisibleByAnimation:w,hasChild:s,isChildModal:a,showOverlay:s||this.overlayClosing,isTransparent:(null==t?void 0:t.isTransparent)??!1,isAttentionAnimating:this.stateManager.isAttentionAnimating,glowStabilizing:this.stateManager.glowStabilizing,isAnimatingPosition:(null==t?void 0:t.isAnimatingPosition)??!1,isAnimatingToCenter:this.stateManager.isAnimatingToCenter,wasRestored:this.stateManager.wasRestored,overlayClosing:this.overlayClosing,glowEnabled:M,draggable:v,resizable:x,minimizable:P,dataState:z,dataAnimationPhase:n.isAnimating?"animate":"idle",style:I,cssClasses:b},this.cachedState}subscribe(t){return this.emitter.on("stateChange",t)}notifyStateChange(){this.cachedState=null,this.emitter.emit("stateChange",this.getState())}startDrag(t){this.interactions.startDrag(t)}startResize(t,e){this.interactions.startResize(t,e)}handlePointerMove(t){this.interactions.handlePointerMove(t)}handlePointerUp(t){this.interactions.handlePointerUp(t)}handleKeyDown(t){this.interactions.handleKeyDown(t)}handleTabKey(t){this.interactions.handleTabKey(t)}minimize(){this.options.configHelper.isFeatureEnabled("minimize")&&It(this.id)}close(){var t,e;_t(this.id)&&Gt(this.id),kt(this.id),null==(e=(t=this.options).onClose)||e.call(t)}toggleTransparency(){At(this.id)}bringToFront(){V(this.id)}setOpenSourcePosition(t){this.animation.setPendingOpenSource(t)}updateOptions(t){let e=!1;void 0!==t.glow&&this.options.glow!==t.glow&&(this.options.glow=t.glow,mt(this.id,{glow:t.glow??null}),e=!0),void 0!==t.maxWidth&&this.options.maxWidth!==t.maxWidth&&(this.options.maxWidth=t.maxWidth,e=!0),void 0!==t.preferredHeight&&this.options.preferredHeight!==t.preferredHeight&&(this.options.preferredHeight=t.preferredHeight,e=!0),void 0!==t.closeOnEscape&&this.options.closeOnEscape!==t.closeOnEscape&&(this.options.closeOnEscape=t.closeOnEscape,this.interactions.updateCloseOnEscape(t.closeOnEscape)),e&&this.notifyStateChange()}updateGlow(t){this.updateOptions({glow:t})}updateMaxWidth(t){this.updateOptions({maxWidth:t})}updatePreferredHeight(t){this.updateOptions({preferredHeight:t})}updateCloseOnEscape(t){this.updateOptions({closeOnEscape:t})}focusFirst(){this.interactions.focusFirst()}handleResizeEnd(t,e){const i=at(this.id);if(null!=i&&i.parentId){const n=at(i.parentId),o=nt(i.parentId);if(n&&o){const i=n.position??{x:o.getBoundingClientRect().left,y:o.getBoundingClientRect().top},s=n.size??{width:o.offsetWidth,height:o.offsetHeight},a={x:i.x+(s.width-e.width)/2,y:i.y+(s.height-e.height)/2},r=t;this.stateManager.isAnimatingToCenter=!0,this.drag.setPosition(a);const d={x:a.x-i.x,y:a.y-i.y};mt(this.id,{position:a,size:e,hasBeenDragged:!0,offsetFromParent:d});const l=this.lifecycle.getElement();return void(l?st(l,r,a,{duration:200,onComplete:()=>{this.stateManager.isAnimatingToCenter=!1}}):this.stateManager.isAnimatingToCenter=!1)}}mt(this.id,{position:t,size:e,hasBeenDragged:!0})}handleStateChange(){const t=at(this.id);if(t){if((t.parentId||Vt(this.id))&&(this.stateManager.wasRestored=!0),!this.drag.isDragging()&&!this.resize.isResizing()&&t.position){const e=this.drag.getPosition(),i=t.position;(Math.abs(e.x-i.x)>.5||Math.abs(e.y-i.y)>.5)&&(this.drag.setPosition(i),t.hasBeenDragged&&this.drag.setHasBeenDragged(!0))}this.stateManager.handlePendingStates()}}handlePendingStates(){this.stateManager.handlePendingStates()}getId(){return this.id}getDataId(){return this.dataId}getElement(){return this.element}}function Te(){const t=ht();return Array.from(t.values()).filter(t=>t.isMinimized).sort((t,e)=>t.dockPosition-e.dockPosition)}function Oe(t,e,i){const n=K(t.x,t.y,e,i);return{x:Math.round(n.x),y:Math.round(n.y)}}function We(t,e,i,n,o,s=8){const a=window.innerWidth-n-s,r=window.innerHeight-o-s,d=Math.min(Math.max(t-i.x,s),Math.max(s,a)),l=Math.min(Math.max(e-i.y,s),Math.max(s,r));return{x:Math.round(d),y:Math.round(l)}}function Fe(t,e){const i=["modal-dock-container"];return"left"===t?i.push("modal-dock-left"):"right"===t?i.push("modal-dock-right"):"bottom"===t?i.push("modal-dock-bottom"):"free"===t&&i.push("modal-dock-free"),e&&i.push("modal-dock-empty"),i.join(" ")}function Le(t,e){const i=["modal-dock"];return"free"===t&&i.push("horizontal"===e?"modal-dock-free-horizontal":"modal-dock-free-vertical"),i.join(" ")}function _e(){const t=ht();return Array.from(t.values()).some(t=>t.isOpen&&!t.isMinimized&&!t.isHiddenWithParent)}function Ge(){return Qt(oe().features.backdrop)}function $e(){const t=Ge();return t.visible||t.blockClicks}export{_e as A,Nt as B,ue as C,me as D,se as E,jt as F,vt as G,Ut as H,xt as I,Te as J,Oe as K,lt as L,Ee as M,Ht as N,ht as O,We as P,nt as Q,pe as R,ge as S,X as T,Fe as U,Le as V,ae as W,Qt as X,re as Y,Et as Z,At as _,ie as a,ne as b,ot as c,kt as d,Rt as e,at as f,_ as g,rt as h,dt as i,V as j,oe as k,fe as l,It as m,it as n,Dt as o,le as p,de as q,bt as r,G as s,Bt as t,he as u,Ft as v,Lt as w,Ot as x,Ge as y,$e as z};
package/dist/core.js CHANGED
@@ -1 +1 @@
1
- const e=Symbol.for("epic-modals-core");if(typeof globalThis<"u"){const t=globalThis;t[e],t[e]=!0}const t=new Map;let i=null;function n(e){i=e}const o=new Set;let d=!1,a=[],r=[],l=[],s=[],c=[],h=[],m=[],f=[];const u=new Map,g=new Map,p=new Set;let I=[];function w(e){I=e}function M(e){r=e}function y(e){c=e}function x(){!function(){if(!d){d=!0;try{o.forEach(e=>e())}finally{d=!1}}}()}function z(e,t){if(e.width<=0||e.height<=0)throw new Error(`[epic-modals] Invalid dimensions in ${t}: width=${e.width}, height=${e.height}`)}function k(e,i){return!!t.get(e)||(function(){var e,t;try{const i=import.meta;return!0===(null==(e=i.env)?void 0:e.DEV)||"development"===(null==(t=i.env)?void 0:t.MODE)}catch{return!1}}(),!1)}function b(e,i){const n=t.get(e);if(null==n||!n.childId)return;const o=t.get(n.childId);if(!o)return;const d=i+2;t.set(n.childId,{...o,zIndex:d}),b(n.childId,d)}function v(e){if(!t.get(e))return;const i=Math.max(...Array.from(t.values()).map(e=>e.zIndex),0),n=function(e){let i=e,n=t.get(i);for(;null!=n&&n.parentId;)i=n.parentId,n=t.get(i);return i}(e),o=t.get(n);if(!o)return;const d=i+2;t.set(n,{...o,zIndex:d}),b(n,d),x()}function C(e){const i=t.get(e);if(!i)return!1;const n=Math.max(...Array.from(t.values()).map(e=>e.zIndex),0);return i.zIndex===n&&!i.isMinimized&&!i.isHiddenWithParent}const P=8;function A(e,t,i,n){const o=e-t,d=i-1;if(o<=0)return{interGap:0,edgeGap:0};if(i<=1)return{interGap:0,edgeGap:o/2};const a=o/(i+1);if(a>=n)return{interGap:a,edgeGap:a};const r=d*n;return o>=r?{interGap:n,edgeGap:(o-r)/2}:{interGap:o/d,edgeGap:0}}function G(e,t,i,n,o=0){if(0===i.length)return{cols:e,rows:t,score:1/0,positions:new Map};const d=new Array(e).fill(0),a=new Array(t).fill(0);for(let t=0;t<i.length;t++){const n=t%e,o=Math.floor(t/e);d[n]=Math.max(d[n],i[t].width),a[o]=Math.max(a[o],i[t].height)}const r=d.reduce((e,t)=>e+t,0),l=a.reduce((e,t)=>e+t,0);if(r>n.width||l>n.height)return null;const{interGap:s,edgeGap:c}=A(n.width,r,e,o),{interGap:h,edgeGap:m}=A(n.height,l,t,o),f=new Map,u=[0];for(let t=0;t<e;t++)u.push(u[t]+d[t]);const g=[0];for(let e=0;e<t;e++)g.push(g[e]+a[e]);for(let t=0;t<i.length;t++){const o=t%e,r=Math.floor(t/e),l=i[t],p=n.x+c+o*s+u[o],I=n.y+m+r*h+g[r],w=p+(d[o]-l.width)/2,M=I+(a[r]-l.height)/2;f.set(l.id,{x:Math.round(w),y:Math.round(M)})}const p=e>1?s:c,I=t>1?h:m;return{cols:e,rows:t,score:(.6*Math.min(p,I)+.4*Math.sqrt(p*I))*(n.width>n.height==e>=t?1.02:1),positions:f}}function T(e,t){const i=new Map,n=Math.max(...e.map(e=>e.width)),o=Math.max(...e.map(e=>e.height)),d=n+40*(e.length-1),a=o+40*(e.length-1);let r=t.x+(t.width-d)/2,l=t.y+(t.height-a)/2;r=Math.max(t.x,r),l=Math.max(t.y,l);for(let t=0;t<e.length;t++)i.set(e[t].id,{x:Math.round(r+40*t),y:Math.round(l+40*t)});return i}function B(e){return typeof document>"u"?null:document.querySelector(`.modal-dialog[data-modal-id="${e}"]`)}function F(){return{x:window.innerWidth/2,y:window.innerHeight/2}}function H(e,t,i,n){var o;const d=t.x-i.x,a=t.y-i.y;if(0===d&&0===a)return null==(o=null==n?void 0:n.onComplete)||o.call(n),()=>{};const r=null==n?void 0:n.duration,l=(null==n?void 0:n.easing)??"ease-out";let s=!1;function c(){var e;s||(s=!0,clearTimeout(m),null==(e=null==n?void 0:n.onComplete)||e.call(n))}e.style.left=`${i.x}px`,e.style.top=`${i.y}px`;const h=e.animate([{transform:`translate(${d}px, ${a}px)`},{transform:"translate(0, 0)"}],{duration:r,easing:l,fill:"none"});h.onfinish=c;const m=setTimeout(c,r+100);return function(){s||(s=!0,clearTimeout(m),h.cancel())}}function S(e){return t.get(e)}function D(e){const i=t.get(e);return(null==i?void 0:i.isOpen)??!1}function E(e){return t.has(e)}function W(e,i,n){if(!k(e))return;(function(e){if(!Number.isFinite(e.x)||!Number.isFinite(e.y))throw new Error(`[epic-modals] Invalid position in updateModalPosition: x=${e.x}, y=${e.y}`)})(i),null!=n&&n.size&&z(n.size,"updateModalPosition");const o=t.get(e);if(!o)return;let d=i;if(null!=n&&n.constrain&&o.size&&(d=function(e,t,i,n,o={}){const{margin:d=P,allowPartialVisibility:a=!1}=o,r=typeof window<"u"?window.innerWidth:1920,l=typeof window<"u"?window.innerHeight:1080;let s,c,h,m;return a&&i>r-2*d?(s=40-i,c=r-40):(s=d,c=Math.max(d,r-i-d)),a&&n>l-2*d?(h=40-n,m=l-40):(h=d,m=Math.max(d,l-n-d)),{x:Math.max(s,Math.min(c,e)),y:Math.max(h,Math.min(m,t))}}(i.x,i.y,o.size.width,o.size.height)),t.set(e,{...o,position:d,size:(null==n?void 0:n.size)??o.size,hasBeenDragged:o.hasBeenDragged||(null==n?void 0:n.drag)||!1}),o.childId){let i=e,n=d;for(;;){const e=t.get(i);if(null==e||!e.childId)break;const o=t.get(e.childId);if(null==o||!o.offsetFromParent)break;const d={x:n.x+o.offsetFromParent.x,y:n.y+o.offsetFromParent.y};t.set(e.childId,{...o,position:d,hasBeenDragged:!0}),i=e.childId,n=d}}if(o.parentId&&o.offsetFromParent){const i=ne();let a=e,r=o;for(;r.parentId&&r.offsetFromParent;){const o=t.get(r.parentId);if(!o)break;const l=a===e?d:t.get(a).position,s={x:l.x-r.offsetFromParent.x,y:l.y-r.offsetFromParent.y};if(!("animated"!==i.parentChild.movementMode||null!=n&&n.realtime)){g.set(r.parentId,s);break}t.set(r.parentId,{...o,position:s,hasBeenDragged:!0}),a=r.parentId,r=o}}x()}function O(e){const i=t.get(e);if(!i||!i.isAnimatingPosition)return;i.isAnimatingPosition=!1;let n=i.childId;for(;n;){const e=t.get(n);e&&(e.isAnimatingPosition=!1),n=null==e?void 0:e.childId}x()}function L(e,i){if(!k(e))return;z(i,"updateModalSize");const n=t.get(e);n&&(t.set(e,{...n,size:i}),x())}function R(e){const o=ne();"smart"===o.positioning.strategy&&(i&&clearTimeout(i),n(setTimeout(()=>{const e=function(){const e=[];for(const i of t.values()){if(!i.isOpen||i.isMinimized||i.isHiddenWithParent||p.has(i.id))continue;const t=B(i.id);if(!t)continue;const n=i.position??{x:t.getBoundingClientRect().left,y:t.getBoundingClientRect().top},o=i.size??{width:t.offsetWidth,height:t.offsetHeight};e.push({id:i.id,width:o.width,height:o.height,currentPosition:n,parentId:i.parentId})}return e}(),i=function(e){if(typeof document>"u")return[];const t=[];for(const i of e)try{const e=document.querySelectorAll(i);for(const i of e){const e=i.getBoundingClientRect();e.width>0&&e.height>0&&t.push({x:e.left,y:e.top,width:e.width,height:e.height})}}catch{}return t}(o.positioning.avoidElements);(function(e){if(0===e.size)return;const i=[];for(const[n,o]of e){const e=t.get(n);if(!e)continue;const d=B(n),a=e.position??(d?{x:d.getBoundingClientRect().left,y:d.getBoundingClientRect().top}:{x:0,y:0}),r=e.size??(d?{width:d.offsetWidth,height:d.offsetHeight}:{width:0,height:0});i.push({id:n,element:d,oldPosition:a,newPosition:o,size:r}),$(n,a,o,i)}for(const{id:e,newPosition:n,size:o}of i){const i=t.get(e);i&&t.set(e,{...i,position:n,size:o,hasBeenDragged:!0,isAnimatingPosition:!0})}x();for(const{id:e,element:t,oldPosition:n,newPosition:o}of i)t?H(t,n,o,{duration:300,onComplete:()=>O(e)}):setTimeout(()=>O(e),400)})(function(e,t,i={}){const{modalGap:n=16,viewportMargin:o=16,avoidBounds:d=[],avoidMargin:a=24}=i,r=typeof window<"u"?window.innerWidth:1920,l=typeof window<"u"?window.innerHeight:1080,s=new Map,c=e.filter(e=>!e.parentId),h=c.map(e=>({id:e.id,width:e.width,height:e.height}));if(0===h.length)return{positions:s};const m=new Map(c.map(e=>[e.id,e.currentPosition]));h.sort((e,t)=>{const i=m.get(e.id),n=m.get(t.id);return(i?i.x+e.width/2:1/0)-(n?n.x+t.width/2:1/0)});const f=function(e,t,i,n,o){let d=i,a=i,r=e-i,l=t-i;for(const i of n){const n=i.y,s=t-(i.y+i.height),c=i.x,h=e-(i.x+i.width);let m;if(i.width>i.height)m=n<=s?"top":"bottom";else if(i.height>i.width)m=c<=h?"left":"right";else{const e=Math.min(n,s,c,h);m=e===n?"top":e===s?"bottom":e===c?"left":"right"}"bottom"===m?l=Math.min(l,i.y-o):"top"===m?a=Math.max(a,i.y+i.height+o):"left"===m?d=Math.max(d,i.x+i.width+o):r=Math.min(r,i.x-o)}return{x:d,y:a,width:Math.max(0,r-d),height:Math.max(0,l-a)}}(r,l,o,d,a);if(1===h.length){const e=h[0],t=f.x+(f.width-e.width)/2,i=f.y+(f.height-e.height)/2;return s.set(e.id,{x:Math.round(t),y:Math.round(i)}),{positions:s}}const u=h.length;let g=null;for(let e=1;e<=u;e++){const t=G(e,Math.ceil(u/e),h,f,n);t&&(null===g||t.score>g.score)&&(g=t)}if(g){for(const[e,t]of g.positions)s.set(e,t);return{positions:s}}return{positions:T(h,f)}}(e,0,{modalGap:o.positioning.modalGap,viewportMargin:o.positioning.modalGap,avoidBounds:i,avoidMargin:o.positioning.modalGap}).positions),n(null)},50)))}function $(e,i,n,o){const d=t.get(e);if(null==d||!d.childId)return;const a=t.get(d.childId);if(null==a||!a.offsetFromParent)return;const r=B(d.childId),l={x:i.x+a.offsetFromParent.x,y:i.y+a.offsetFromParent.y},s={x:n.x+a.offsetFromParent.x,y:n.y+a.offsetFromParent.y};o.push({id:d.childId,element:r,oldPosition:l,newPosition:s}),t.set(d.childId,{...a,position:s,hasBeenDragged:!0,isAnimatingPosition:!0}),a.childId&&$(d.childId,l,s,o)}function V(e){g.delete(e)}function q(e){const i=t.get(e);if(null==i||!i.childId)return;const n=t.get(i.childId);n&&(m.includes(i.childId)||function(e){m=e}([...m,i.childId]),n.childId&&q(i.childId))}function N(e){const i=t.get(e);if(!i||i.isMinimized)return;if(V(e),i.parentId){const e=t.get(i.parentId);if(e&&!e.isMinimized)return void N(i.parentId)}(function(e){a=e})([...a,e]),i.position&&i.size;const n=i.childId;t.set(e,{...i,isMinimized:!0,lastChildId:n}),I.includes(e)||w([...I,e]),x(),i.childId&&q(e),R()}function _(e){const i=t.get(e);if(!i||!i.isMinimized)return;t.set(e,{...i,isMinimized:!1,isOpen:!0}),y([...c,e]),v(e);const n=i.lastChildId||i.childId;n&&j(n),x()}function U(){Array.from(t.values()).filter(e=>e.isMinimized).map(e=>e.id).forEach(e=>{const i=t.get(e);if(i){t.set(e,{...i,isMinimized:!1,isOpen:!0}),y([...c,e]),v(e);const n=i.lastChildId||i.childId;n&&j(n)}}),w([]),x()}function j(e){const i=t.get(e);if(i&&i.isHiddenWithParent){!function(e){h=e}([...h,e]);const t=i.lastChildId||i.childId;t&&j(t)}}function J(e){k(e)&&(f.includes(e)||(function(e){f=e}([...f,e]),x()))}function K(e,i,n){const o=ne(),d=t.get(e);if(d&&d.isOpen&&!d.isMinimized&&!d.isHiddenWithParent)return J(e),void v(e);if(d&&d.isMinimized)return void _(e);if("x"in i&&"y"in i)u.set(e,i);else{const t=i.getBoundingClientRect();u.set(e,{x:t.left+t.width/2,y:t.top+t.height/2})}if(null!=n&&n.parentId&&o.features.parentChild){const i=t.get(n.parentId);null!=i&&i.childId&&i.childId!==e&&X(i.childId,!0),n.parentId}if(r.includes(e)||M([...r,e]),x(),!d)return;const a={isOpen:!0};null!=n&&n.parentId&&o.features.parentChild&&(a.parentId=n.parentId),t.set(e,{...d,...a}),v(e)}function Q(e){!function(e){const i=t.get(e.id);let n;n=null!=i&&i.zIndex?i.zIndex:Math.max(...Array.from(t.values()).map(e=>e.zIndex),ne().zIndex.base-2)+2;const o=r.includes(e.id),d=e.isOpen||o;i?t.set(e.id,{...i,title:e.title,icon:e.icon,glow:e.glow,zIndex:n}):t.set(e.id,{...e,isOpen:d,zIndex:n,isAnimating:!1}),x(),e.isMinimized&&!I.includes(e.id)&&w([...I,e.id])}(e);const i=t.get(e.id);i&&(t.set(e.id,{...i,isOpen:!0}),x()),M([...r,e.id]),x(),v(e.id)}function X(e,i=!1){const n=t.get(e);if(n&&(n.isOpen||n.isMinimized)){if(V(e),n.childId&&X(n.childId,i),n.isMinimized)return w(I.filter(t=>t!==e)),void function(e){const i=t.get(e);if(i){if(p.delete(e),i.parentId){const n=t.get(i.parentId);n&&n.childId===e&&t.set(i.parentId,{...n,childId:void 0,lastChildId:e})}t.set(e,{...i,isOpen:!1,isMinimized:!1,isHiddenWithParent:!1,isTransparent:!1,position:null,size:null,hasBeenDragged:!1,parentId:void 0,childId:void 0,offsetFromParent:void 0}),x()}}(e);p.add(e),i?function(e){s=e}([...s,e]):function(e){l=e}([...l,e]),n.parentId||R(),x()}}function Y(e){const i=new Set(e??[]);Array.from(t.keys()).filter(e=>!i.has(e)).forEach(e=>X(e,!0))}const Z={features:{dock:!0,minimize:!0,transparency:!0,resize:!0,drag:!0,focusTrap:!0,animations:!0,backdrop:!0,parentChild:!0},dock:{position:"bottom",labelMode:"beside",enableReorder:!0,enableFreeDrag:!0},animations:{open:400,close:250,minimize:500,restore:400,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)"},appearance:{headerLayout:"macos",defaultWidth:"480px",defaultHeight:"auto",minWidth:280,minHeight:200},zIndex:{base:400,dock:8e3,toast:9e3},parentChild:{movementMode:"animated",animationDuration:300},positioning:{strategy:"smart",modalGap:16,avoidElements:[]},portalTarget:"#modal-portal"};let ee={...Z};const te=new Set;function ie(){te.forEach(e=>e())}function ne(){return ee}function oe(e){const t=ee;ee=function(e,t){var i;return{features:{...e.features,...t.features},dock:{...e.dock,...t.dock},animations:{...e.animations,...t.animations},appearance:{...e.appearance,...t.appearance},zIndex:{...e.zIndex,...t.zIndex},parentChild:{...e.parentChild,...t.parentChild},positioning:{...e.positioning,...t.positioning,avoidElements:(null==(i=t.positioning)?void 0:i.avoidElements)??e.positioning.avoidElements},portalTarget:t.portalTarget??e.portalTarget}}(ee,e),ie(),t.features.dock&&!ee.features.dock&&U()}function de(){ee={...Z},ie()}function ae(e){const t=ee.features[e];if("backdrop"===e){const e=function(e){return"boolean"==typeof e?{visible:e,blockClicks:e}:e}(t);return e.visible||e.blockClicks}return t}const re={dialog:"modal-dialog",dialogCentered:"modal-centered",dialogDragging:"modal-dragging",dialogResizing:"modal-resizing",dialogMinimizing:"modal-minimizing",dialogRestoring:"modal-restoring",dialogOpening:"modal-opening",dialogClosing:"modal-closing",dialogSolid:"modal-solid",dialogTransparent:"modal-transparent",dialogHasGlow:"modal-has-glow",dialogHasChild:"modal-has-child",dialogIsChild:"modal-is-child",dialogAnimatingPosition:"modal-animating-position",dialogAttention:"modal-attention",header:"modal-header",headerDraggable:"modal-header-draggable",headerLayout:e=>`modal-header--${e}`,body:"modal-body",footer:"modal-footer",childOverlay:"modal-child-overlay",overlayClosing:"modal-overlay-closing",headerTitle:"modal-header-title",headerIcon:"modal-header-icon",headerTitleGroup:"modal-header-title-group",headerActions:"modal-header-actions",headerTrafficLights:"modal-header-traffic-lights",headerLight:"modal-header-light",headerLightClose:"modal-header-light-close",headerLightMinimize:"modal-header-light-minimize",headerLightStyle:"modal-header-light-style",headerLightDisabled:"modal-header-light-disabled",headerMacCenter:"modal-header-mac-center",headerMacSpacer:"modal-header-mac-spacer",headerBtnWindows:"modal-header-btn-windows",headerBtnWindowsClose:"modal-header-btn-windows-close",headerBtnWindowsStyle:"modal-header-btn-windows-style",headerBtnWindowsDisabled:"modal-header-btn-windows-disabled",resizeHandles:"modal-resize-handles",resizeHandle:"modal-resize-handle",resizePrefix:"modal-resize-",dock:"modal-dock",dockContainer:"modal-dock-container",dockItem:"modal-dock-item",dockItemActive:"modal-dock-item-active",dockItemHasGlow:"modal-dock-item-has-glow",dockItemHasChild:"modal-dock-item-has-child",dockItemLabelBeside:"modal-dock-item-label-beside",dockItemLabelBelow:"modal-dock-item-label-below",dockItemIcon:"modal-dock-item-icon",dockItemIconPlaceholder:"modal-dock-item-icon-placeholder",dockItemLabel:"modal-dock-item-label",dockItemGlow:"modal-dock-item-glow",dockChildIndicator:"modal-dock-child-indicator",dockHandle:"modal-dock-handle",dockHandleDragging:"modal-dock-handle-dragging",dockLeft:"modal-dock-left",dockRight:"modal-dock-right",dockBottom:"modal-dock-bottom",dockFree:"modal-dock-free",dockEmpty:"modal-dock-empty",dockFreeHorizontal:"modal-dock-free-horizontal",dockFreeVertical:"modal-dock-free-vertical",backdrop:"modal-backdrop",backdropVisible:"modal-backdrop-visible"},le={modalId:"data-modal-id",resizeDirection:"data-direction",dockItemId:"data-dock-item-id"};export{re as CSS_CLASSES,le as DATA_ATTRIBUTES,v as bringToFront,Y as closeAllModals,X as closeModal,Q as createModal,Z as defaultConfig,ne as getConfig,S as getModalState,ae as isFeatureEnabled,D as isModalOpen,E as isModalRegistered,C as isTopModal,N as minimizeModal,K as openModal,de as resetConfig,U as restoreAllMinimizedModals,_ as restoreModal,F as screenCenter,oe as setConfig,J as triggerAttention,W as updateModalPosition,L as updateModalSize};
1
+ const e=Symbol.for("epic-modals-core");if(typeof globalThis<"u"){const t=globalThis;t[e],t[e]=!0}const t=new Map;let i=null;function n(e){i=e}const o=new Set;let d=!1,a=[],l=[],r=[],s=[],c=[],h=[],m=[],u=[];const f=new Map,g=new Map,p=new Set;let I=[];function w(e){I=e}function M(e){l=e}function y(e){c=e}function x(){!function(){if(!d){d=!0;try{o.forEach(e=>e())}finally{d=!1}}}()}function z(e,t){if(e.width<=0||e.height<=0)throw new Error(`[epic-modals] Invalid dimensions in ${t}: width=${e.width}, height=${e.height}`)}function k(e,i){return!!t.get(e)||(function(){var e,t;try{const i=import.meta;return!0===(null==(e=i.env)?void 0:e.DEV)||"development"===(null==(t=i.env)?void 0:t.MODE)}catch{return!1}}(),!1)}function b(e,i){const n=t.get(e);if(null==n||!n.childId)return;const o=t.get(n.childId);if(!o)return;const d=i+2;t.set(n.childId,{...o,zIndex:d}),b(n.childId,d)}function v(e){if(!t.get(e))return;const i=Math.max(...Array.from(t.values()).map(e=>e.zIndex),0),n=function(e){let i=e,n=t.get(i);for(;null!=n&&n.parentId;)i=n.parentId,n=t.get(i);return i}(e),o=t.get(n);if(!o)return;const d=i+2;t.set(n,{...o,zIndex:d}),b(n,d),x()}function C(e){const i=t.get(e);if(!i)return!1;const n=Math.max(...Array.from(t.values()).map(e=>e.zIndex),0);return i.zIndex===n&&!i.isMinimized&&!i.isHiddenWithParent}const P=8;function A(e,t,i,n){const o=e-t,d=i-1;if(o<=0)return{interGap:0,edgeGap:0};if(i<=1)return{interGap:0,edgeGap:o/2};const a=o/(i+1);if(a>=n)return{interGap:a,edgeGap:a};const l=d*n;return o>=l?{interGap:n,edgeGap:(o-l)/2}:{interGap:o/d,edgeGap:0}}function G(e,t,i,n,o=0){if(0===i.length)return{cols:e,rows:t,score:1/0,positions:new Map};const d=new Array(e).fill(0),a=new Array(t).fill(0);for(let t=0;t<i.length;t++){const n=t%e,o=Math.floor(t/e);d[n]=Math.max(d[n],i[t].width),a[o]=Math.max(a[o],i[t].height)}const l=d.reduce((e,t)=>e+t,0),r=a.reduce((e,t)=>e+t,0);if(l>n.width||r>n.height)return null;const{interGap:s,edgeGap:c}=A(n.width,l,e,o),{interGap:h,edgeGap:m}=A(n.height,r,t,o),u=new Map,f=[0];for(let t=0;t<e;t++)f.push(f[t]+d[t]);const g=[0];for(let e=0;e<t;e++)g.push(g[e]+a[e]);for(let t=0;t<i.length;t++){const o=t%e,l=Math.floor(t/e),r=i[t],p=n.x+c+o*s+f[o],I=n.y+m+l*h+g[l],w=p+(d[o]-r.width)/2,M=I+(a[l]-r.height)/2;u.set(r.id,{x:Math.round(w),y:Math.round(M)})}const p=e>1?s:c,I=t>1?h:m;return{cols:e,rows:t,score:(.6*Math.min(p,I)+.4*Math.sqrt(p*I))*(n.width>n.height==e>=t?1.02:1),positions:u}}function T(e,t){const i=new Map,n=Math.max(...e.map(e=>e.width)),o=Math.max(...e.map(e=>e.height)),d=n+40*(e.length-1),a=o+40*(e.length-1);let l=t.x+(t.width-d)/2,r=t.y+(t.height-a)/2;l=Math.max(t.x,l),r=Math.max(t.y,r);for(let t=0;t<e.length;t++)i.set(e[t].id,{x:Math.round(l+40*t),y:Math.round(r+40*t)});return i}function B(e){return typeof document>"u"?null:document.querySelector(`.modal-dialog[data-modal-id="${e}"]`)}function F(){return{x:window.innerWidth/2,y:window.innerHeight/2}}function H(e,t,i,n){var o;const d=t.x-i.x,a=t.y-i.y;if(0===d&&0===a)return null==(o=null==n?void 0:n.onComplete)||o.call(n),()=>{};const l=null==n?void 0:n.duration,r=(null==n?void 0:n.easing)??"ease-out";let s=!1;function c(){var e;s||(s=!0,clearTimeout(m),null==(e=null==n?void 0:n.onComplete)||e.call(n))}e.style.left=`${i.x}px`,e.style.top=`${i.y}px`;const h=e.animate([{transform:`translate(${d}px, ${a}px)`},{transform:"translate(0, 0)"}],{duration:l,easing:r,fill:"none"});h.onfinish=c;const m=setTimeout(c,l+100);return function(){s||(s=!0,clearTimeout(m),h.cancel())}}function S(e){return t.get(e)}function D(e){const i=t.get(e);return(null==i?void 0:i.isOpen)??!1}function E(e){return t.has(e)}function O(e,i,n){if(!k(e))return;(function(e){if(!Number.isFinite(e.x)||!Number.isFinite(e.y))throw new Error(`[epic-modals] Invalid position in updateModalPosition: x=${e.x}, y=${e.y}`)})(i),null!=n&&n.size&&z(n.size,"updateModalPosition");const o=t.get(e);if(!o)return;let d=i;if(null!=n&&n.constrain&&o.size&&(d=function(e,t,i,n,o={}){const{margin:d=P,allowPartialVisibility:a=!1}=o,l=typeof window<"u"?window.innerWidth:1920,r=typeof window<"u"?window.innerHeight:1080;let s,c,h,m;return a&&i>l-2*d?(s=40-i,c=l-40):(s=d,c=Math.max(d,l-i-d)),a&&n>r-2*d?(h=40-n,m=r-40):(h=d,m=Math.max(d,r-n-d)),{x:Math.max(s,Math.min(c,e)),y:Math.max(h,Math.min(m,t))}}(i.x,i.y,o.size.width,o.size.height)),t.set(e,{...o,position:d,size:(null==n?void 0:n.size)??o.size,hasBeenDragged:o.hasBeenDragged||(null==n?void 0:n.drag)||!1}),o.childId){let i=e,n=d;for(;;){const e=t.get(i);if(null==e||!e.childId)break;const o=t.get(e.childId);if(null==o||!o.offsetFromParent)break;const d={x:n.x+o.offsetFromParent.x,y:n.y+o.offsetFromParent.y};t.set(e.childId,{...o,position:d,hasBeenDragged:!0}),i=e.childId,n=d}}if(o.parentId&&o.offsetFromParent){const i=ne();let a=e,l=o;for(;l.parentId&&l.offsetFromParent;){const o=t.get(l.parentId);if(!o)break;const r=a===e?d:t.get(a).position,s={x:r.x-l.offsetFromParent.x,y:r.y-l.offsetFromParent.y};if(!("animated"!==i.parentChild.movementMode||null!=n&&n.realtime)){g.set(l.parentId,s);break}t.set(l.parentId,{...o,position:s,hasBeenDragged:!0}),a=l.parentId,l=o}}x()}function W(e){const i=t.get(e);if(!i||!i.isAnimatingPosition)return;i.isAnimatingPosition=!1;let n=i.childId;for(;n;){const e=t.get(n);e&&(e.isAnimatingPosition=!1),n=null==e?void 0:e.childId}x()}function L(e,i){if(!k(e))return;z(i,"updateModalSize");const n=t.get(e);n&&(t.set(e,{...n,size:i}),x())}function R(e){const o=ne();"smart"===o.positioning.strategy&&(i&&clearTimeout(i),n(setTimeout(()=>{const e=function(){const e=[];for(const i of t.values()){if(!i.isOpen||i.isMinimized||i.isHiddenWithParent||p.has(i.id))continue;const t=B(i.id);if(!t)continue;const n=i.position??{x:t.getBoundingClientRect().left,y:t.getBoundingClientRect().top},o=i.size??{width:t.offsetWidth,height:t.offsetHeight};e.push({id:i.id,width:o.width,height:o.height,currentPosition:n,parentId:i.parentId})}return e}(),i=function(e){if(typeof document>"u")return[];const t=[];for(const i of e)try{const e=document.querySelectorAll(i);for(const i of e){const e=i.getBoundingClientRect();e.width>0&&e.height>0&&t.push({x:e.left,y:e.top,width:e.width,height:e.height})}}catch{}return t}(o.positioning.avoidElements);(function(e){if(0===e.size)return;const i=[],n=new Map;for(const[t]of e){const e=B(t),i=e?e.getBoundingClientRect():null;n.set(t,{element:e,rect:i})}for(const[o,d]of e){const e=t.get(o);if(!e)continue;const{element:a,rect:l}=n.get(o)||{element:null,rect:null},r=e.position??(l?{x:l.left,y:l.top}:{x:0,y:0}),s=e.size??(l?{width:l.width,height:l.height}:{width:0,height:0});i.push({id:o,element:a,oldPosition:r,newPosition:d,size:s}),$(o,r,d,i)}for(const{id:e,newPosition:n,size:o}of i){const i=t.get(e);i&&t.set(e,{...i,position:n,size:o,hasBeenDragged:!0,isAnimatingPosition:!0})}x();for(const{id:e,element:t,oldPosition:n,newPosition:o}of i)t?H(t,n,o,{duration:300,onComplete:()=>W(e)}):setTimeout(()=>W(e),400)})(function(e,t,i={}){const{modalGap:n=16,viewportMargin:o=16,avoidBounds:d=[],avoidMargin:a=24}=i,l=typeof window<"u"?window.innerWidth:1920,r=typeof window<"u"?window.innerHeight:1080,s=new Map,c=e.filter(e=>!e.parentId),h=c.map(e=>({id:e.id,width:e.width,height:e.height}));if(0===h.length)return{positions:s};const m=new Map(c.map(e=>[e.id,e.currentPosition]));h.sort((e,t)=>{const i=m.get(e.id),n=m.get(t.id);return(i?i.x+e.width/2:1/0)-(n?n.x+t.width/2:1/0)});const u=function(e,t,i,n,o){let d=i,a=i,l=e-i,r=t-i;for(const i of n){const n=i.y,s=t-(i.y+i.height),c=i.x,h=e-(i.x+i.width);let m;if(i.width>i.height)m=n<=s?"top":"bottom";else if(i.height>i.width)m=c<=h?"left":"right";else{const e=Math.min(n,s,c,h);m=e===n?"top":e===s?"bottom":e===c?"left":"right"}"bottom"===m?r=Math.min(r,i.y-o):"top"===m?a=Math.max(a,i.y+i.height+o):"left"===m?d=Math.max(d,i.x+i.width+o):l=Math.min(l,i.x-o)}return{x:d,y:a,width:Math.max(0,l-d),height:Math.max(0,r-a)}}(l,r,o,d,a);if(1===h.length){const e=h[0],t=u.x+(u.width-e.width)/2,i=u.y+(u.height-e.height)/2;return s.set(e.id,{x:Math.round(t),y:Math.round(i)}),{positions:s}}const f=h.length;let g=null;for(let e=1;e<=f;e++){const t=G(e,Math.ceil(f/e),h,u,n);t&&(null===g||t.score>g.score)&&(g=t)}if(g){for(const[e,t]of g.positions)s.set(e,t);return{positions:s}}return{positions:T(h,u)}}(e,0,{modalGap:o.positioning.modalGap,viewportMargin:o.positioning.modalGap,avoidBounds:i,avoidMargin:o.positioning.modalGap}).positions),n(null)},50)))}function $(e,i,n,o){const d=t.get(e);if(null==d||!d.childId)return;const a=t.get(d.childId);if(null==a||!a.offsetFromParent)return;const l=B(d.childId),r={x:i.x+a.offsetFromParent.x,y:i.y+a.offsetFromParent.y},s={x:n.x+a.offsetFromParent.x,y:n.y+a.offsetFromParent.y};o.push({id:d.childId,element:l,oldPosition:r,newPosition:s}),t.set(d.childId,{...a,position:s,hasBeenDragged:!0,isAnimatingPosition:!0}),a.childId&&$(d.childId,r,s,o)}function V(e){g.delete(e)}function q(e){const i=t.get(e);if(null==i||!i.childId)return;const n=t.get(i.childId);n&&(m.includes(i.childId)||function(e){m=e}([...m,i.childId]),n.childId&&q(i.childId))}function N(e){const i=t.get(e);if(!i||i.isMinimized)return;if(V(e),i.parentId){const e=t.get(i.parentId);if(e&&!e.isMinimized)return void N(i.parentId)}(function(e){a=e})([...a,e]),i.position&&i.size;const n=i.childId;t.set(e,{...i,isMinimized:!0,lastChildId:n}),I.includes(e)||w([...I,e]),x(),i.childId&&q(e),R()}function _(e){const i=t.get(e);if(!i||!i.isMinimized)return;t.set(e,{...i,isMinimized:!1,isOpen:!0}),y([...c,e]),v(e);const n=i.lastChildId||i.childId;n&&j(n),x()}function U(){Array.from(t.values()).filter(e=>e.isMinimized).map(e=>e.id).forEach(e=>{const i=t.get(e);if(i){t.set(e,{...i,isMinimized:!1,isOpen:!0}),y([...c,e]),v(e);const n=i.lastChildId||i.childId;n&&j(n)}}),w([]),x()}function j(e){const i=t.get(e);if(i&&i.isHiddenWithParent){!function(e){h=e}([...h,e]);const t=i.lastChildId||i.childId;t&&j(t)}}function J(e){k(e)&&(u.includes(e)||(function(e){u=e}([...u,e]),x()))}function K(e,i,n){const o=ne(),d=t.get(e);if(d&&d.isOpen&&!d.isMinimized&&!d.isHiddenWithParent)return J(e),void v(e);if(d&&d.isMinimized)return void _(e);if("x"in i&&"y"in i)f.set(e,i);else{const t=i.getBoundingClientRect();f.set(e,{x:t.left+t.width/2,y:t.top+t.height/2})}if(null!=n&&n.parentId&&o.features.parentChild){const i=t.get(n.parentId);null!=i&&i.childId&&i.childId!==e&&X(i.childId,!0),n.parentId}if(l.includes(e)||M([...l,e]),x(),!d)return;const a={isOpen:!0};null!=n&&n.parentId&&o.features.parentChild&&(a.parentId=n.parentId),t.set(e,{...d,...a}),v(e)}function Q(e){!function(e){const i=t.get(e.id);let n;n=null!=i&&i.zIndex?i.zIndex:Math.max(...Array.from(t.values()).map(e=>e.zIndex),ne().zIndex.base-2)+2;const o=l.includes(e.id),d=e.isOpen||o;i?t.set(e.id,{...i,title:e.title,icon:e.icon,glow:e.glow,zIndex:n}):t.set(e.id,{...e,isOpen:d,zIndex:n,isAnimating:!1}),x(),e.isMinimized&&!I.includes(e.id)&&w([...I,e.id])}(e);const i=t.get(e.id);i&&(t.set(e.id,{...i,isOpen:!0}),x()),M([...l,e.id]),x(),v(e.id)}function X(e,i=!1){const n=t.get(e);if(n&&(n.isOpen||n.isMinimized)){if(V(e),n.childId&&X(n.childId,i),n.isMinimized)return w(I.filter(t=>t!==e)),void function(e){const i=t.get(e);if(i){if(p.delete(e),i.parentId){const n=t.get(i.parentId);n&&n.childId===e&&t.set(i.parentId,{...n,childId:void 0,lastChildId:e})}t.set(e,{...i,isOpen:!1,isMinimized:!1,isHiddenWithParent:!1,isTransparent:!1,position:null,size:null,hasBeenDragged:!1,parentId:void 0,childId:void 0,offsetFromParent:void 0}),x()}}(e);p.add(e),i?function(e){s=e}([...s,e]):function(e){r=e}([...r,e]),n.parentId||R(),x()}}function Y(e){const i=new Set(e??[]);Array.from(t.keys()).filter(e=>!i.has(e)).forEach(e=>X(e,!0))}const Z={features:{dock:!0,minimize:!0,transparency:!0,resize:!0,drag:!0,focusTrap:!0,animations:!0,backdrop:!0,parentChild:!0},dock:{position:"bottom",labelMode:"beside",enableReorder:!0,enableFreeDrag:!0},animations:{open:400,close:250,minimize:500,restore:400,easing:"cubic-bezier(0.34, 1.56, 0.64, 1)"},appearance:{headerLayout:"macos",defaultWidth:"480px",defaultHeight:"auto",minWidth:280,minHeight:200},zIndex:{base:400,dock:8e3,toast:9e3},parentChild:{movementMode:"animated",animationDuration:300},positioning:{strategy:"smart",modalGap:16,avoidElements:[]},portalTarget:"#modal-portal"};let ee={...Z};const te=new Set;function ie(){te.forEach(e=>e())}function ne(){return ee}function oe(e){const t=ee;ee=function(e,t){var i;return{features:{...e.features,...t.features},dock:{...e.dock,...t.dock},animations:{...e.animations,...t.animations},appearance:{...e.appearance,...t.appearance},zIndex:{...e.zIndex,...t.zIndex},parentChild:{...e.parentChild,...t.parentChild},positioning:{...e.positioning,...t.positioning,avoidElements:(null==(i=t.positioning)?void 0:i.avoidElements)??e.positioning.avoidElements},portalTarget:t.portalTarget??e.portalTarget}}(ee,e),ie(),t.features.dock&&!ee.features.dock&&U()}function de(){ee={...Z},ie()}function ae(e){const t=ee.features[e];if("backdrop"===e){const e=function(e){return"boolean"==typeof e?{visible:e,blockClicks:e}:e}(t);return e.visible||e.blockClicks}return t}const le={dialog:"modal-dialog",dialogCentered:"modal-centered",dialogDragging:"modal-dragging",dialogResizing:"modal-resizing",dialogMinimizing:"modal-minimizing",dialogRestoring:"modal-restoring",dialogOpening:"modal-opening",dialogClosing:"modal-closing",dialogSolid:"modal-solid",dialogTransparent:"modal-transparent",dialogHasGlow:"modal-has-glow",dialogHasChild:"modal-has-child",dialogIsChild:"modal-is-child",dialogAnimatingPosition:"modal-animating-position",dialogAttention:"modal-attention",header:"modal-header",headerDraggable:"modal-header-draggable",headerLayout:e=>`modal-header--${e}`,body:"modal-body",footer:"modal-footer",childOverlay:"modal-child-overlay",overlayClosing:"modal-overlay-closing",headerTitle:"modal-header-title",headerIcon:"modal-header-icon",headerTitleGroup:"modal-header-title-group",headerActions:"modal-header-actions",headerTrafficLights:"modal-header-traffic-lights",headerLight:"modal-header-light",headerLightClose:"modal-header-light-close",headerLightMinimize:"modal-header-light-minimize",headerLightStyle:"modal-header-light-style",headerLightDisabled:"modal-header-light-disabled",headerMacCenter:"modal-header-mac-center",headerMacSpacer:"modal-header-mac-spacer",headerBtnWindows:"modal-header-btn-windows",headerBtnWindowsClose:"modal-header-btn-windows-close",headerBtnWindowsStyle:"modal-header-btn-windows-style",headerBtnWindowsDisabled:"modal-header-btn-windows-disabled",resizeHandles:"modal-resize-handles",resizeHandle:"modal-resize-handle",resizePrefix:"modal-resize-",dock:"modal-dock",dockContainer:"modal-dock-container",dockItem:"modal-dock-item",dockItemActive:"modal-dock-item-active",dockItemHasGlow:"modal-dock-item-has-glow",dockItemHasChild:"modal-dock-item-has-child",dockItemLabelBeside:"modal-dock-item-label-beside",dockItemLabelBelow:"modal-dock-item-label-below",dockItemIcon:"modal-dock-item-icon",dockItemIconPlaceholder:"modal-dock-item-icon-placeholder",dockItemLabel:"modal-dock-item-label",dockItemGlow:"modal-dock-item-glow",dockChildIndicator:"modal-dock-child-indicator",dockHandle:"modal-dock-handle",dockHandleDragging:"modal-dock-handle-dragging",dockLeft:"modal-dock-left",dockRight:"modal-dock-right",dockBottom:"modal-dock-bottom",dockFree:"modal-dock-free",dockEmpty:"modal-dock-empty",dockFreeHorizontal:"modal-dock-free-horizontal",dockFreeVertical:"modal-dock-free-vertical",backdrop:"modal-backdrop",backdropVisible:"modal-backdrop-visible"},re={modalId:"data-modal-id",resizeDirection:"data-direction",dockItemId:"data-dock-item-id"};export{le as CSS_CLASSES,re as DATA_ATTRIBUTES,v as bringToFront,Y as closeAllModals,X as closeModal,Q as createModal,Z as defaultConfig,ne as getConfig,S as getModalState,ae as isFeatureEnabled,D as isModalOpen,E as isModalRegistered,C as isTopModal,N as minimizeModal,K as openModal,de as resetConfig,U as restoreAllMinimizedModals,_ as restoreModal,F as screenCenter,oe as setConfig,J as triggerAttention,O as updateModalPosition,L as updateModalSize};
package/dist/react.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { BaseModalProps } from '../../../core/types';
2
+ import { Component } from 'react';
2
3
  import { default as default_2 } from 'react';
4
+ import { ErrorInfo } from 'react';
3
5
  import { JSX } from 'react/jsx-runtime';
4
6
  import { ModalId } from '../../core/types';
5
7
  import { ModalLibraryConfig } from '../../core/config';
@@ -12,6 +14,28 @@ export declare interface DockProps {
12
14
  renderIcon?: (icon: string) => ReactNode;
13
15
  }
14
16
 
17
+ export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
18
+ constructor(props: ErrorBoundaryProps);
19
+ static getDerivedStateFromError(error: Error): ErrorBoundaryState;
20
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
21
+ reset: () => void;
22
+ render(): ReactNode;
23
+ }
24
+
25
+ export declare interface ErrorBoundaryProps {
26
+
27
+ children: ReactNode;
28
+
29
+ fallback?: ReactNode | ((error: Error, reset: () => void) => ReactNode);
30
+
31
+ onError?: (error: Error, errorInfo: ErrorInfo) => void;
32
+ }
33
+
34
+ declare interface ErrorBoundaryState {
35
+ hasError: boolean;
36
+ error: Error | null;
37
+ }
38
+
15
39
  export declare function Modal({ id, title, icon, maxWidth, preferredHeight, autoOpen, glow, config, closeOnEscape, onClose, children, footer, renderIcon, }: ModalProps): JSX.Element;
16
40
 
17
41
  export declare interface ModalProps extends BaseModalProps {
@@ -51,6 +75,8 @@ export declare function useModal(id: ModalId): {
51
75
 
52
76
  export declare function useModals(): ModalsSnapshot;
53
77
 
78
+ export declare function withErrorBoundary<P extends object>(WrappedComponent: default_2.ComponentType<P>, errorBoundaryProps?: Omit<ErrorBoundaryProps, 'children'>): default_2.FC<P>;
79
+
54
80
  declare interface WizardControls {
55
81
  currentStep: number;
56
82
  totalSteps: number;
@@ -83,7 +109,7 @@ export declare interface WizardModalProps extends Omit<ModalProps, 'children' |
83
109
  children?: ReactNode;
84
110
  }
85
111
 
86
- export declare function WizardStep({ children }: WizardStepProps): JSX.Element;
112
+ export declare function WizardStep({ title, canProceed, children }: WizardStepProps): JSX.Element | null;
87
113
 
88
114
  export declare namespace WizardStep {
89
115
  var displayName: string;
package/dist/react.js CHANGED
@@ -1 +1 @@
1
- import{jsxs as e,jsx as n,Fragment as t}from"react/jsx-runtime";import i,{useRef as r,createContext as a,useContext as o,useState as l,useEffect as s,useMemo as d,useCallback as c,Children as u,isValidElement as p,useSyncExternalStore as m}from"react";import{Q as h,R as g,k as f,b,M as v,h as y,S as w,l as C,n as x,p as z,u as k,y as N,x as I,z as E,A as S,j as D,E as T,F as M,G as $,H as L,K as P,L as R,r as O,s as A,I as W,T as B,O as H,J as j,U as F,N as V,d as G,c as X,m as K,o as U,t as Y,i as q}from"./backdrop.js";import{createPortal as _}from"react-dom";import{c as J}from"./resolution.js";function Q({target:e="#modal-portal",children:n}){const t=r(null);if(null===t.current)if("string"==typeof e){let n=document.querySelector(e);n||(e.startsWith("#")?(n=document.createElement("div"),n.id=e.slice(1),document.body.appendChild(n)):n=document.body),t.current=n}else t.current=e;return _(n,t.current)}const Z=a(null),ee=a(void 0),ne=a(void 0);function te({title:t,customIcon:i,icon:r,isTransparent:a=!1,titleId:l,headerLayout:s="macos",onStartDrag:d,onToggleStyle:c,onMinimize:u,onClose:p,minimizable:m=!0,minimizeDisabled:g=!1,transparencyEnabled:f=!0}){const b=o(ne),v="macos"===s;function y(e){e.target.closest("button")||null==d||d(e)}const w=[h.header,d&&h.headerDraggable,a&&"transparent"].filter(Boolean).join(" "),C=i??(r&&b?b(r):null);return e("header",v?{className:w,onPointerDown:y,children:[e("div",{className:h.headerTrafficLights,children:[n("button",{type:"button",className:`${h.headerLight} ${h.headerLightClose}`,onClick:p,"aria-label":"Close"}),m&&n("button",{type:"button",className:`${h.headerLight} ${h.headerLightMinimize}${g?` ${h.headerLightDisabled}`:""}`,onClick:g?void 0:u,disabled:g,"aria-label":"Minimize",title:g?"Enable dock to minimize":void 0}),f&&n("button",{type:"button",className:`${h.headerLight} ${h.headerLightStyle}`,onClick:c,"aria-label":"Toggle style"})]}),e("div",{className:h.headerMacCenter,children:[C&&n("div",{className:h.headerIcon,children:C}),n("div",{className:h.headerTitleGroup,children:n("h2",l?{id:l,className:h.headerTitle,children:t}:{className:h.headerTitle,children:t})})]}),n("div",{className:h.headerMacSpacer})]}:{className:w,onPointerDown:y,children:[e("div",{className:h.headerTitleGroup,children:[C&&n("div",{className:h.headerIcon,children:C}),n("h2",l?{id:l,className:h.headerTitle,children:t}:{className:h.headerTitle,children:t})]}),e("div",{className:h.headerActions,children:[f&&n("button",{type:"button",className:`${h.headerBtnWindows} ${h.headerBtnWindowsStyle}`,onClick:c,"aria-label":"Toggle style",children:"◇"}),m&&n("button",{type:"button",className:`${h.headerBtnWindows}${g?` ${h.headerBtnWindowsDisabled}`:""}`,onClick:g?void 0:u,disabled:g,"aria-label":"Minimize",title:g?"Enable dock to minimize":void 0,children:"–"}),n("button",{type:"button",className:`${h.headerBtnWindows} ${h.headerBtnWindowsClose}`,onClick:p,"aria-label":"Close",children:"×"})]})]})}function ie({onStartResize:e}){return e?n("div",{className:h.resizeHandles,role:"group","aria-label":"Resize handles",children:g.map(t=>n("div",{className:`${h.resizeHandle} ${h.resizePrefix}${t}`,role:"separator",tabIndex:0,"aria-label":f[t],"aria-orientation":"n"===t||"s"===t?"horizontal":"vertical",onPointerDown:n=>e(n,t)},t))}):null}function re(e){return e.replace(/-([a-z])/g,(e,n)=>n.toUpperCase())}const ae={position:{x:0,y:0},size:{width:0,height:0},zIndex:1e3,isDragging:!1,isResizing:!1,hasBeenDragged:!1,hasBeenResized:!1,isMinimizing:!1,isRestoring:!1,isOpening:!1,isClosing:!1,isAnyAnimating:!1,animationTransform:null,isVisible:!1,showCentered:!1,isAwaitingRestore:!1,isAwaitingChildOpen:!1,isVisibleByAnimation:!1,hasChild:!1,isChildModal:!1,showOverlay:!1,isTransparent:!1,isAttentionAnimating:!1,glowStabilizing:!1,isAnimatingPosition:!1,isAnimatingToCenter:!1,wasRestored:!1,overlayClosing:!1,glowEnabled:!1,draggable:!0,resizable:!0,minimizable:!0,dataState:"closed",dataAnimationPhase:"none",style:{},cssClasses:[h.modal]};function oe({id:t,title:i,renderIcon:a,icon:u,description:p,maxWidth:m="600px",preferredHeight:g,autoOpen:f=!1,openSourcePosition:x,glow:z,config:k,providerConfig:N,closeOnEscape:I=!0,onClose:E,children:S,footer:D,skipRegistration:T=!1}){const M=r(null),$=r(null),L=o(ee),P=N??L,R=function(e={}){const{modalConfig:n}=e,t=o(ee),[i,r]=l(()=>b());return s(()=>{const e=setInterval(()=>{const e=b();e!==i&&r(e)},50);return()=>clearInterval(e)},[i]),d(()=>({...J({getModalConfig:()=>n,getProviderConfig:()=>t??void 0}),providerConfig:t}),[n,t,i])}({modalConfig:k}),O=R.getEffectiveConfig().portalTarget,A=!R.isFeatureEnabled("dock"),W=R.isFeatureEnabled("transparency"),B=R.getAppearance("headerLayout"),[H,j]=l(ae),F=C(t),V=`modal-title-${F}`,G=p?`modal-desc-${F}`:void 0;s(()=>{const e=new v({id:t,title:i,icon:u,config:k,providerConfig:P,maxWidth:m,preferredHeight:g,glow:z,closeOnEscape:I,autoOpen:f,openSourcePosition:x,onClose:E,skipRegistration:T,configHelper:R});$.current=e;const n=e.subscribe(e=>{j(e)});return j(e.getState()),()=>{n(),e.destroy(),$.current=null}},[t]),s(()=>{M.current&&$.current&&H.isVisible&&$.current.mount(M.current)},[H.isVisible]),s(()=>{var e;null==(e=$.current)||e.updateGlow(z)},[z]);const X=r(H.isVisible);X.current=H.isVisible,s(()=>{if(!I)return;const e=e=>{"Escape"===e.key&&X.current&&(e._modalEscapeHandled||$.current&&w(t)&&($.current.handleKeyDown(e),e._modalEscapeHandled=!0))};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[I,t]),s(()=>{$.current&&void 0!==x&&$.current.setOpenSourcePosition(x)},[x]);const K=c(e=>{var n;null==(n=$.current)||n.startDrag(e.nativeEvent)},[]),U=c(e=>{var n;null==(n=$.current)||n.handlePointerMove(e.nativeEvent)},[]),Y=c(e=>{var n;null==(n=$.current)||n.handlePointerUp(e.nativeEvent)},[]),q=c(e=>{var n;null==(n=$.current)||n.handleKeyDown(e.nativeEvent)},[]),_=c(()=>{var e;null==(e=$.current)||e.minimize()},[]),ne=c(()=>{var e;null==(e=$.current)||e.close()},[]),oe=c(()=>{var e;null==(e=$.current)||e.toggleTransparency()},[]),le=c((e,n)=>{var t;null==(t=$.current)||t.startResize(e.nativeEvent,n)},[]),se=d(()=>function(e){const n={};for(const[t,i]of Object.entries(e))t.startsWith("--")?n[t]=i:n[re(t)]=i;return n}(H.style),[H.style]);return H.isVisible?n(Q,{target:O,children:n(Z.Provider,{value:t,children:e("div",{ref:M,className:H.cssClasses.join(" "),"data-modal-id":F,"data-state":H.dataState,"data-animation-phase":H.dataAnimationPhase,style:se,role:"dialog","aria-modal":"true","aria-labelledby":V,"aria-describedby":G,tabIndex:-1,onKeyDown:q,onPointerMove:U,onPointerUp:Y,onPointerDownCapture:()=>y(t),children:[p&&n("span",{id:G,className:"sr-only",children:p}),n(te,{title:i,customIcon:null==a?void 0:a(),icon:u,isTransparent:H.isTransparent,titleId:V,headerLayout:B,onStartDrag:H.draggable?K:void 0,onToggleStyle:oe,onMinimize:_,onClose:ne,minimizable:H.minimizable,minimizeDisabled:A,transparencyEnabled:W}),n("div",{className:h.body,children:S}),D&&n("div",{className:h.footer,children:D}),n(ie,{onStartResize:H.resizable&&!H.hasChild?le:void 0}),H.showOverlay&&n("div",{className:`${h.childOverlay}${H.overlayClosing?` ${h.overlayClosing}`:""}`})]})})}):null}function le({id:e,title:t,icon:i,maxWidth:r="600px",preferredHeight:a,autoOpen:l=!1,glow:d,config:c,closeOnEscape:u=!0,onClose:p,children:m,footer:h,renderIcon:g}){const f=o(ee),b=o(ne);return s(()=>(x(z({id:e,title:t,icon:i,autoOpen:l,glow:d})),l&&y(e),()=>{k(e)}),[e]),n(oe,{id:e,title:t,icon:i,renderIcon:g??(i&&b?()=>b(i):void 0),maxWidth:r,preferredHeight:a,autoOpen:l,glow:d,config:c,providerConfig:f??void 0,closeOnEscape:u,onClose:p,skipRegistration:!0,footer:h,children:m})}function se({children:e}){return n(t,{children:e})}function de(e){var n;return p(e)&&(e.type===se||"WizardStep"===(null==(n=e.type)?void 0:n.displayName))}function ce({id:t,onComplete:i,onStepChange:a,footer:o,showProgress:d=!0,showNavigation:p=!0,maxWidth:m="500px",children:h,onClose:g,...f}){const b=u.toArray(h).filter(de),[v,y]=l(0),[w,C]=l("forward"),[x,z]=l(!1),[k,N]=l(0),I=r(v),E=b[v],S=(null==E?void 0:E.props.canProceed)??!0;s(()=>{if(v!==I.current){C(v>I.current?"forward":"backward"),z(!0),N(e=>e+1);const e=setTimeout(()=>z(!1),300);return I.current=v,()=>clearTimeout(e)}},[v]);const D=c(()=>{if(S)if(v>=b.length-1)null==i||i();else{const e=v+1;y(e),null==a||a(e,"forward")}},[v,b.length,S,i,a]),T=c(()=>{if(v>0){const e=v-1;y(e),null==a||a(e,"backward")}},[v,a]),M=c(e=>{e<v&&e>=0&&(y(e),null==a||a(e,"backward"))},[v,a]),$=0===v,L=v===b.length-1,P=b.length>0?(v+1)/b.length*100:0,R=b.length,O=b.map(e=>({title:e.props.title||""})),A={currentStep:v,totalSteps:R,isFirstStep:$,isLastStep:L,canProceed:S,progress:P,steps:O,next:D,back:T,goToStep:M},W=c(()=>{y(0),null==g||g()},[g]),B=d&&R>1,H=p?e("div",{className:"wizard-navigation",style:pe.navigation,children:[n("button",{className:"wizard-btn-back",style:{...pe.button,...$?pe.buttonDisabled:{}},onClick:T,disabled:$,children:"Back"}),n("button",{className:"wizard-btn-next",style:{...pe.button,...pe.buttonPrimary,...S?{}:pe.buttonDisabled},onClick:D,disabled:!S,children:L?"Finish":"Next"})]}):null;return e(le,{id:t,maxWidth:m,onClose:W,footer:o?o(A):H,...f,children:[e("div",{className:"wizard-viewport",style:ue.viewport,children:[B&&n("div",{className:"wizard-progress",style:pe.progress,children:O.map((t,i)=>e("div",{style:pe.stepItem,children:[n("button",{className:`wizard-step-dot ${i===v?"active":""} ${i<v?"completed":""}`,style:{...pe.stepDot,...i===v?pe.stepDotActive:{},...i<v?pe.stepDotCompleted:{}},onClick:()=>M(i),disabled:i>=v}),t.title&&n("span",{style:pe.stepTitle,children:t.title})]},i))}),n("div",{className:"wizard-container",style:ue.container,children:n("div",{className:"wizard-step-content "+(x?"forward"===w?"wizard-slide-left":"wizard-slide-right":""),style:ue.stepContent,children:E},k)})]}),n("style",{children:me})]})}se.displayName="WizardStep";const ue={viewport:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},container:{display:"flex",flexDirection:"column",flex:1,minHeight:0},stepContent:{flex:1,overflowY:"auto"}},pe={progress:{display:"flex",justifyContent:"center",alignItems:"flex-start",gap:"24px",padding:"12px 16px",borderBottom:"1px solid rgba(255, 255, 255, 0.1)"},stepItem:{display:"flex",flexDirection:"column",alignItems:"center",gap:"6px"},stepDot:{width:"10px",height:"10px",borderRadius:"50%",border:"2px solid rgba(255, 255, 255, 0.3)",background:"transparent",padding:0,cursor:"pointer",transition:"all 0.2s ease"},stepDotActive:{borderColor:"#6366f1",background:"#6366f1",transform:"scale(1.2)"},stepDotCompleted:{borderColor:"#6366f1",background:"#6366f1",opacity:.6},stepTitle:{fontSize:"11px",color:"rgba(255, 255, 255, 0.6)",textAlign:"center",maxWidth:"80px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},navigation:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"12px 16px",borderTop:"1px solid rgba(255, 255, 255, 0.1)",gap:"12px"},button:{padding:"8px 16px",borderRadius:"6px",border:"1px solid rgba(255, 255, 255, 0.2)",background:"rgba(255, 255, 255, 0.05)",color:"rgba(255, 255, 255, 0.8)",cursor:"pointer",fontSize:"14px",fontWeight:500,transition:"all 0.2s ease"},buttonPrimary:{background:"linear-gradient(135deg, #6366f1, #8b5cf6)",border:"none",color:"white"},buttonDisabled:{opacity:.4,cursor:"not-allowed"}},me="\n .wizard-slide-left {\n animation: wizardSlideInFromRight 0.3s ease forwards;\n }\n .wizard-slide-right {\n animation: wizardSlideInFromLeft 0.3s ease forwards;\n }\n @keyframes wizardSlideInFromRight {\n from { opacity: 0; transform: translateX(30px); }\n to { opacity: 1; transform: translateX(0); }\n }\n @keyframes wizardSlideInFromLeft {\n from { opacity: 0; transform: translateX(-30px); }\n to { opacity: 1; transform: translateX(0); }\n }\n";function he({className:e}){const t=o(ee),[,i]=l(0);s(()=>{const e=setInterval(()=>{i(e=>e+1)},50);return()=>clearInterval(e)},[]);const r=D(),a=(null==t?void 0:t.portalTarget)??r.portalTarget,d=N(),c=I(),u=E(),p=S("MODAL")-1;if(!d||!u)return null;const m=[h.backdrop,c.visible&&"backdrop-visible",c.blockClicks&&"backdrop-blocking",e].filter(Boolean).join(" ");return n(Q,{target:a,children:n("div",{className:m,style:{zIndex:p},"aria-hidden":"true"})})}function ge({config:e,children:n}){s(()=>{T(),M();const n=D(),t=(null==e?void 0:e.portalTarget)??n.portalTarget;let i=null;return"string"==typeof t&&typeof document<"u"&&(document.querySelector(t)||(i=document.createElement("div"),i.id=t.replace("#",""),document.body.appendChild(i))),()=>{$(),L(),i&&i.remove()}},[e]);const t=d(()=>e,[e]);return i.createElement(ee.Provider,{value:t},i.createElement(i.Fragment,null,n,i.createElement(he,null)))}function fe({modal:t,childModal:i,labelMode:r="beside",renderIcon:a,animationDelay:l=0}){const s=o(ne),d=a??s,u=c(e=>{P(t.id)?R(e.currentTarget):O(t.id)},[t.id]),p=C(t.id),m=!!t.glow,g=!!t.lastChildId,f=[h.dockItem,m&&h.dockItemHasGlow,g&&h.dockItemHasChild,"beside"===r&&h.dockItemLabelBeside,"below"===r&&h.dockItemLabelBelow].filter(Boolean).join(" "),b={...t.glow?{"--modal-dock-glow-color":t.glow.color}:{},animationDelay:l>0?`${l}ms`:void 0};return e("button",{className:f,"data-modal-id":p,"aria-label":`Restore ${t.title}`,onClick:u,style:b,children:[n("span",{className:h.dockItemIcon,children:t.icon&&d?d(t.icon):n("span",{className:h.dockItemIconPlaceholder,children:t.title.charAt(0)})}),"hidden"!==r&&n("span",{className:h.dockItemLabel,children:t.title}),n("span",{className:h.dockItemGlow}),g&&i&&n("span",{className:h.dockChildIndicator,children:i.icon&&d?d(i.icon):n("span",{children:"+"})})]})}function be({renderIcon:t}){var i,a,d;const u=o(ne),p=o(ee),m=t??u,[g,f]=l(0),[v,y]=l(0),[w,C]=l("horizontal"),[x,z]=l({x:100,y:100}),[k,N]=l(!1),I=r(null),E=r({x:0,y:0}),T=r(null);s(()=>A(()=>{f(e=>e+1),y(b())}),[]);const M=D(),$=S("DOCK"),L=(null==(i=null==p?void 0:p.dock)?void 0:i.position)??M.dock.position,P=(null==(a=null==p?void 0:p.dock)?void 0:a.labelMode)??M.dock.labelMode,R=(null==(d=null==p?void 0:p.features)?void 0:d.dock)??M.features.dock,O=(null==p?void 0:p.portalTarget)??M.portalTarget,G=V(),X=W(),K=c(e=>{var n;"free"===L&&(N(!0),T.current=e.pointerId,E.current={x:e.clientX-x.x,y:e.clientY-x.y},null==(n=e.currentTarget)||n.setPointerCapture(e.pointerId))},[L,x]);if(s(()=>{if(!k)return;const e=e=>{if(e.pointerId!==T.current||!I.current)return;const n=I.current.getBoundingClientRect(),t=H(e.clientX,e.clientY,E.current,n.width,n.height);z(t)},n=e=>{e.pointerId===T.current&&(N(!1),T.current=null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",n),window.addEventListener("pointercancel",n),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",n),window.removeEventListener("pointercancel",n)}},[k]),s(()=>{if("free"!==L)return;const e=()=>{if(!I.current)return;const e=I.current.getBoundingClientRect(),n=j(x,e.width,e.height);(n.x!==x.x||n.y!==x.y)&&z(n)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[L,x]),!R)return null;const U=B(L,0===X.length),Y=F(L,w),q={zIndex:$,..."free"===L?{left:`${x.x}px`,top:`${x.y}px`}:{}};return n(Q,{target:O,children:n("div",{ref:I,className:U,style:q,"data-dock-container":"true",children:e("div",{className:Y,children:["free"===L&&n("button",{type:"button",className:`${h.dockHandle}${k?` ${h.dockHandleDragging}`:""}`,onPointerDown:K,"aria-label":"Drag dock"}),X.map((e,t)=>{const i=e.lastChildId?G.get(e.lastChildId):null;return n(fe,{modal:e,childModal:i,labelMode:P,renderIcon:m??void 0,animationDelay:50*t},String(e.id))})]})})})}function ve(e,n){if(!q(e))throw new Error(`Cannot call ${n}() on unregistered modal "${String(e)}". Ensure the Modal component is rendered.`)}const ye=new Map;function we(e){const n=c(()=>function(e){const n=V().get(e),t=void 0!==n&&!n.isMinimized,i=(null==n?void 0:n.isMinimized)??!1,r=void 0!==n,a=ye.get(e);if(a&&a.isOpen===t&&a.isMinimized===i&&a.isRegistered===r)return a;const o={isOpen:t,isMinimized:i,isRegistered:r};return ye.set(e,o),o}(e),[e]);return{...m(A,n,n),open:c(n=>{ve(e,"open"),G(e,n)},[e]),close:c(()=>{ve(e,"close"),X(e)},[e]),minimize:c(()=>{ve(e,"minimize"),K(e)},[e]),restore:c(()=>{ve(e,"restore"),O(e)},[e]),openChild:c((n,t)=>{ve(e,"openChild"),U(n,e,t??document.body)},[e]),shake:c(()=>{ve(e,"shake"),Y(e)},[e]),bringToFront:c(()=>{ve(e,"bringToFront"),y(e)},[e])}}let Ce=null,xe=null;function ze(){const e=V();if(Ce===e&&xe)return xe;const n=Array.from(e.values()),t=n.filter(e=>e.isMinimized).length,i=n.filter(e=>!e.isMinimized).length;return xe&&xe.minimizedCount===t&&xe.openCount===i?(Ce=e,xe={...xe,modals:e},xe):(Ce=e,xe={modals:e,minimizedCount:t,openCount:i},xe)}function ke(){return m(A,ze,ze)}export{be as Dock,le as Modal,ge as ModalProvider,ce as WizardModal,se as WizardStep,we as useModal,ke as useModals};
1
+ var e=Object.defineProperty;import{jsxs as t,jsx as n,Fragment as r}from"react/jsx-runtime";import i,{useRef as o,createContext as a,useContext as l,useState as s,useEffect as d,useMemo as c,useCallback as u,useSyncExternalStore as p,Component as m}from"react";import{S as h,R as g,l as f,b,M as v,j as y,T as w,n as C,p as x,q as z,u as k,z as S,y as N,A as I,B as E,k as D,F as T,G as M,H as P,I as $,L,N as R,r as O,s as B,J as W,U as A,P as H,K as j,V as F,O as V,c as X,e as G,d as K,m as U,o as q,t as Y}from"./backdrop.js";import{createPortal as _}from"react-dom";import{c as J}from"./resolution.js";function Q({target:e="#modal-portal",children:t}){const n=o(null);if(null===n.current)if("string"==typeof e){let t=document.querySelector(e);t||(e.startsWith("#")?(t=document.createElement("div"),t.id=e.slice(1),document.body.appendChild(t)):t=document.body),n.current=t}else n.current=e;return _(t,n.current)}const Z=a(null),ee=a(void 0),te=a(void 0);function ne({title:e,customIcon:r,icon:i,isTransparent:o=!1,titleId:a,headerLayout:s="macos",onStartDrag:d,onToggleStyle:c,onMinimize:u,onClose:p,minimizable:m=!0,minimizeDisabled:g=!1,transparencyEnabled:f=!0}){const b=l(te),v="macos"===s;function y(e){e.target.closest("button")||null==d||d(e)}const w=[h.header,d&&h.headerDraggable,o&&"transparent"].filter(Boolean).join(" "),C=r??(i&&b?b(i):null);return t("header",v?{className:w,onPointerDown:y,children:[t("div",{className:h.headerTrafficLights,children:[n("button",{type:"button",className:`${h.headerLight} ${h.headerLightClose}`,onClick:p,"aria-label":"Close"}),m&&n("button",{type:"button",className:`${h.headerLight} ${h.headerLightMinimize}${g?` ${h.headerLightDisabled}`:""}`,onClick:g?void 0:u,disabled:g,"aria-label":"Minimize",title:g?"Enable dock to minimize":void 0}),f&&n("button",{type:"button",className:`${h.headerLight} ${h.headerLightStyle}`,onClick:c,"aria-label":"Toggle style"})]}),t("div",{className:h.headerMacCenter,children:[C&&n("div",{className:h.headerIcon,children:C}),n("div",{className:h.headerTitleGroup,children:n("h2",a?{id:a,className:h.headerTitle,children:e}:{className:h.headerTitle,children:e})})]}),n("div",{className:h.headerMacSpacer})]}:{className:w,onPointerDown:y,children:[t("div",{className:h.headerTitleGroup,children:[C&&n("div",{className:h.headerIcon,children:C}),n("h2",a?{id:a,className:h.headerTitle,children:e}:{className:h.headerTitle,children:e})]}),t("div",{className:h.headerActions,children:[f&&n("button",{type:"button",className:`${h.headerBtnWindows} ${h.headerBtnWindowsStyle}`,onClick:c,"aria-label":"Toggle style",children:"◇"}),m&&n("button",{type:"button",className:`${h.headerBtnWindows}${g?` ${h.headerBtnWindowsDisabled}`:""}`,onClick:g?void 0:u,disabled:g,"aria-label":"Minimize",title:g?"Enable dock to minimize":void 0,children:"–"}),n("button",{type:"button",className:`${h.headerBtnWindows} ${h.headerBtnWindowsClose}`,onClick:p,"aria-label":"Close",children:"×"})]})]})}function re({onStartResize:e}){return e?n("div",{className:h.resizeHandles,role:"group","aria-label":"Resize handles",children:g.map(t=>n("div",{className:`${h.resizeHandle} ${h.resizePrefix}${t}`,role:"separator",tabIndex:0,"aria-label":f[t],"aria-orientation":"n"===t||"s"===t?"horizontal":"vertical",onPointerDown:n=>e(n,t)},t))}):null}function ie(e){return e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}const oe={position:{x:0,y:0},size:{width:0,height:0},zIndex:1e3,isDragging:!1,isResizing:!1,hasBeenDragged:!1,hasBeenResized:!1,isMinimizing:!1,isRestoring:!1,isOpening:!1,isClosing:!1,isAnyAnimating:!1,animationTransform:null,isVisible:!1,showCentered:!1,isAwaitingRestore:!1,isAwaitingChildOpen:!1,isVisibleByAnimation:!1,hasChild:!1,isChildModal:!1,showOverlay:!1,isTransparent:!1,isAttentionAnimating:!1,glowStabilizing:!1,isAnimatingPosition:!1,isAnimatingToCenter:!1,wasRestored:!1,overlayClosing:!1,glowEnabled:!1,draggable:!0,resizable:!0,minimizable:!0,dataState:"closed",dataAnimationPhase:"none",style:{},cssClasses:[h.modal]};function ae({id:e,title:r,renderIcon:i,icon:a,description:p,maxWidth:m="600px",preferredHeight:g,autoOpen:f=!1,openSourcePosition:x,glow:z,config:k,providerConfig:S,closeOnEscape:N=!0,onClose:I,children:E,footer:D,skipRegistration:T=!1}){const M=o(null),P=o(null),$=l(ee),L=S??$,R=function(e={}){const{modalConfig:t}=e,n=l(ee),[r,i]=s(()=>b());return d(()=>{const e=setInterval(()=>{const e=b();e!==r&&i(e)},50);return()=>clearInterval(e)},[r]),c(()=>({...J({getModalConfig:()=>t,getProviderConfig:()=>n??void 0}),providerConfig:n}),[t,n,r])}({modalConfig:k}),O=R.getEffectiveConfig().portalTarget,B=!R.isFeatureEnabled("dock"),W=R.isFeatureEnabled("transparency"),A=R.getAppearance("headerLayout"),[H,j]=s(oe),F=C(e),V=`modal-title-${F}`,X=p?`modal-desc-${F}`:void 0;d(()=>{const t=new v({id:e,title:r,icon:a,config:k,providerConfig:L,maxWidth:m,preferredHeight:g,glow:z,closeOnEscape:N,autoOpen:f,openSourcePosition:x,onClose:I,skipRegistration:T,configHelper:R});P.current=t;const n=t.subscribe(e=>{j(e)});return j(t.getState()),()=>{n(),t.destroy(),P.current=null}},[e]),d(()=>{M.current&&P.current&&H.isVisible&&P.current.mount(M.current)},[H.isVisible]),d(()=>{var e;null==(e=P.current)||e.updateOptions({glow:z,maxWidth:m,preferredHeight:g,closeOnEscape:N})},[z,m,g,N]);const G=o(H.isVisible);G.current=H.isVisible,d(()=>{if(!N)return;const t=t=>{"Escape"===t.key&&G.current&&(t._modalEscapeHandled||P.current&&w(e)&&(P.current.handleKeyDown(t),t._modalEscapeHandled=!0))};return document.addEventListener("keydown",t,!0),()=>document.removeEventListener("keydown",t,!0)},[N,e]),d(()=>{P.current&&void 0!==x&&P.current.setOpenSourcePosition(x)},[x]);const K=u(e=>{var t;null==(t=P.current)||t.startDrag(e.nativeEvent)},[]),U=u(e=>{var t;null==(t=P.current)||t.handlePointerMove(e.nativeEvent)},[]),q=u(e=>{var t;null==(t=P.current)||t.handlePointerUp(e.nativeEvent)},[]),Y=u(e=>{var t;null==(t=P.current)||t.handleKeyDown(e.nativeEvent)},[]),_=u(()=>{var e;null==(e=P.current)||e.minimize()},[]),te=u(()=>{var e;null==(e=P.current)||e.close()},[]),ae=u(()=>{var e;null==(e=P.current)||e.toggleTransparency()},[]),le=u((e,t)=>{var n;null==(n=P.current)||n.startResize(e.nativeEvent,t)},[]),se=c(()=>function(e){const t={};for(const[n,r]of Object.entries(e))n.startsWith("--")?t[n]=r:t[ie(n)]=r;return t}(H.style),[H.style]);return H.isVisible?n(Q,{target:O,children:n(Z.Provider,{value:e,children:t("div",{ref:M,className:H.cssClasses.join(" "),"data-modal-id":F,"data-state":H.dataState,"data-animation-phase":H.dataAnimationPhase,style:se,role:"dialog","aria-modal":"true","aria-labelledby":V,"aria-describedby":X,tabIndex:-1,onKeyDown:Y,onPointerMove:U,onPointerUp:q,onPointerDownCapture:()=>y(e),children:[p&&n("span",{id:X,className:"sr-only",children:p}),n(ne,{title:r,customIcon:null==i?void 0:i(),icon:a,isTransparent:H.isTransparent,titleId:V,headerLayout:A,onStartDrag:H.draggable?K:void 0,onToggleStyle:ae,onMinimize:_,onClose:te,minimizable:H.minimizable,minimizeDisabled:B,transparencyEnabled:W}),n("div",{className:h.body,children:E}),D&&n("div",{className:h.footer,children:D}),n(re,{onStartResize:H.resizable&&!H.hasChild?le:void 0}),H.showOverlay&&n("div",{className:`${h.childOverlay}${H.overlayClosing?` ${h.overlayClosing}`:""}`})]})})}):null}function le({id:e,title:t,icon:r,maxWidth:i="600px",preferredHeight:o,autoOpen:a=!1,glow:s,config:c,closeOnEscape:u=!0,onClose:p,children:m,footer:h,renderIcon:g}){const f=l(ee),b=l(te);return d(()=>(x(z({id:e,title:t,icon:r,autoOpen:a,glow:s})),a&&y(e),()=>{k(e)}),[e]),n(ae,{id:e,title:t,icon:r,renderIcon:g??(r&&b?()=>b(r):void 0),maxWidth:i,preferredHeight:o,autoOpen:a,glow:s,config:c,providerConfig:f??void 0,closeOnEscape:u,onClose:p,skipRegistration:!0,footer:h,children:m})}const se=a(null);function de({currentStep:e,onStepsChange:t,children:r}){const i=o([]),a=o(t);a.current=t;const l=u(()=>{const e=i.current.filter(e=>null!==e);a.current(e)},[]),s=u(e=>{let t=i.current.findIndex(e=>null===e);return-1===t&&(t=i.current.length),i.current[t]=e,l(),t},[l]),d=u(e=>{if(e>=0&&e<i.current.length){for(i.current[e]=null;i.current.length>0&&null===i.current[i.current.length-1];)i.current.pop();l()}},[l]),p=u((e,t)=>{const n=i.current[e];e>=0&&e<i.current.length&&n&&(i.current[e]={...n,...t},l())},[l]),m=u(()=>i.current.filter(e=>null!==e),[]),h=c(()=>({registerStep:s,unregisterStep:d,updateStep:p,currentStep:e,getSteps:m}),[s,d,p,e,m]);return n(se.Provider,{value:h,children:r})}function ce({id:e,onComplete:r,onStepChange:i,footer:a,showProgress:l=!0,showNavigation:c=!0,maxWidth:p="500px",children:m,onClose:h,...g}){var f;const[b,v]=s(0),[y,w]=s("forward"),[C,x]=s(!1),[z,k]=s(0),S=o(b),[N,I]=s([]),E=u(e=>{I(e)},[]),D=(null==(f=N[b])?void 0:f.getCanProceed())??!0;d(()=>{if(b!==S.current){w(b>S.current?"forward":"backward"),x(!0),k(e=>e+1);const e=setTimeout(()=>x(!1),300);return S.current=b,()=>clearTimeout(e)}},[b]);const T=u(()=>{if(D)if(b>=N.length-1)null==r||r();else{const e=b+1;v(e),null==i||i(e,"forward")}},[b,N.length,D,r,i]),M=u(()=>{if(b>0){const e=b-1;v(e),null==i||i(e,"backward")}},[b,i]),P=u(e=>{e<b&&e>=0&&(v(e),null==i||i(e,"backward"))},[b,i]),$=0===b,L=N.length>0&&b===N.length-1,R=N.length>0?(b+1)/N.length*100:0,O=N.length,B=N.map(e=>({title:e.title})),W={currentStep:b,totalSteps:O,isFirstStep:$,isLastStep:L,canProceed:D,progress:R,steps:B,next:T,back:M,goToStep:P},A=u(()=>{v(0),null==h||h()},[h]),H=l&&O>1,j=c?t("div",{className:"wizard-navigation",style:pe.navigation,children:[n("button",{className:"wizard-btn-back",style:{...pe.button,...$?pe.buttonDisabled:{}},onClick:M,disabled:$,children:"Back"}),n("button",{className:"wizard-btn-next",style:{...pe.button,...pe.buttonPrimary,...D?{}:pe.buttonDisabled},onClick:T,disabled:!D,children:L?"Finish":"Next"})]}):null;return t(le,{id:e,maxWidth:p,onClose:A,footer:a?a(W):j,...g,children:[t("div",{className:"wizard-viewport",style:ue.viewport,children:[H&&n("div",{className:"wizard-progress",style:pe.progress,children:B.map((e,r)=>t("div",{style:pe.stepItem,children:[n("button",{className:`wizard-step-dot ${r===b?"active":""} ${r<b?"completed":""}`,style:{...pe.stepDot,...r===b?pe.stepDotActive:{},...r<b?pe.stepDotCompleted:{}},onClick:()=>P(r),disabled:r>=b}),e.title&&n("span",{style:pe.stepTitle,children:e.title})]},r))}),n("div",{className:"wizard-container",style:ue.container,children:n(de,{currentStep:b,onStepsChange:E,children:n("div",{className:"wizard-step-content "+(C?"forward"===y?"wizard-slide-left":"wizard-slide-right":""),style:ue.stepContent,children:m},z)})})]}),n("style",{children:me})]})}const ue={viewport:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},container:{display:"flex",flexDirection:"column",flex:1,minHeight:0},stepContent:{flex:1,overflowY:"auto"}},pe={progress:{display:"flex",justifyContent:"center",alignItems:"flex-start",gap:"24px",padding:"12px 16px",borderBottom:"1px solid rgba(255, 255, 255, 0.1)"},stepItem:{display:"flex",flexDirection:"column",alignItems:"center",gap:"6px"},stepDot:{width:"10px",height:"10px",borderRadius:"50%",borderWidth:"2px",borderStyle:"solid",borderColor:"rgba(255, 255, 255, 0.3)",background:"transparent",padding:0,cursor:"pointer",transition:"all 0.2s ease"},stepDotActive:{borderColor:"#6366f1",background:"#6366f1",transform:"scale(1.2)"},stepDotCompleted:{borderColor:"#6366f1",background:"#6366f1",opacity:.6},stepTitle:{fontSize:"11px",color:"rgba(255, 255, 255, 0.6)",textAlign:"center",maxWidth:"80px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},navigation:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"12px 16px",borderTop:"1px solid rgba(255, 255, 255, 0.1)",gap:"12px"},button:{padding:"8px 16px",borderRadius:"6px",border:"1px solid rgba(255, 255, 255, 0.2)",background:"rgba(255, 255, 255, 0.05)",color:"rgba(255, 255, 255, 0.8)",cursor:"pointer",fontSize:"14px",fontWeight:500,transition:"all 0.2s ease"},buttonPrimary:{background:"linear-gradient(135deg, #6366f1, #8b5cf6)",border:"none",color:"white"},buttonDisabled:{opacity:.4,cursor:"not-allowed"}},me="\n .wizard-slide-left {\n animation: wizardSlideInFromRight 0.3s ease forwards;\n }\n .wizard-slide-right {\n animation: wizardSlideInFromLeft 0.3s ease forwards;\n }\n @keyframes wizardSlideInFromRight {\n from { opacity: 0; transform: translateX(30px); }\n to { opacity: 1; transform: translateX(0); }\n }\n @keyframes wizardSlideInFromLeft {\n from { opacity: 0; transform: translateX(-30px); }\n to { opacity: 1; transform: translateX(0); }\n }\n";function he({title:e="",canProceed:t=!0,children:i}){const a=l(se),s=o(-1),c=o(t);c.current=t,d(()=>{if(a)return s.current=a.registerStep({title:e,getCanProceed:()=>c.current}),()=>{s.current>=0&&a.unregisterStep(s.current)}},[a]),d(()=>{a&&s.current>=0&&a.updateStep(s.current,{title:e})},[a,e]);const u=a&&s.current>=0&&a.currentStep===s.current;return a&&u?n(r,{children:i}):null}function ge({className:e}){const t=l(ee),[,r]=s(0);d(()=>{const e=setInterval(()=>{r(e=>e+1)},50);return()=>clearInterval(e)},[]);const i=D(),o=(null==t?void 0:t.portalTarget)??i.portalTarget,a=S(),c=N(),u=I(),p=E("MODAL")-1;if(!a||!u)return null;const m=[h.backdrop,c.visible&&"backdrop-visible",c.blockClicks&&"backdrop-blocking",e].filter(Boolean).join(" ");return n(Q,{target:o,children:n("div",{className:m,style:{zIndex:p},"aria-hidden":"true"})})}function fe({config:e,children:t}){d(()=>{T(),M();const t=D(),n=(null==e?void 0:e.portalTarget)??t.portalTarget;let r=null;return"string"==typeof n&&typeof document<"u"&&(document.querySelector(n)||(r=document.createElement("div"),r.id=n.replace("#",""),document.body.appendChild(r))),()=>{P(),$(),r&&r.remove()}},[e]);const n=c(()=>e,[e]);return i.createElement(ee.Provider,{value:n},i.createElement(i.Fragment,null,t,i.createElement(ge,null)))}function be({modal:e,childModal:r,labelMode:i="beside",renderIcon:o,animationDelay:a=0}){const s=l(te),d=o??s,c=u(t=>{L(e.id)?R(t.currentTarget):O(e.id)},[e.id]),p=C(e.id),m=!!e.glow,g=!!e.lastChildId,f=[h.dockItem,m&&h.dockItemHasGlow,g&&h.dockItemHasChild,"beside"===i&&h.dockItemLabelBeside,"below"===i&&h.dockItemLabelBelow].filter(Boolean).join(" "),b={...e.glow?{"--modal-dock-glow-color":e.glow.color}:{},animationDelay:a>0?`${a}ms`:void 0};return t("button",{className:f,"data-modal-id":p,"aria-label":`Restore ${e.title}`,onClick:c,style:b,children:[n("span",{className:h.dockItemIcon,children:e.icon&&d?d(e.icon):n("span",{className:h.dockItemIconPlaceholder,children:e.title.charAt(0)})}),"hidden"!==i&&n("span",{className:h.dockItemLabel,children:e.title}),n("span",{className:h.dockItemGlow}),g&&r&&n("span",{className:h.dockChildIndicator,children:r.icon&&d?d(r.icon):n("span",{children:"+"})})]})}function ve({renderIcon:e}){var r,i,a;const c=l(te),p=l(ee),m=e??c,[g,f]=s(0),[v,y]=s(0),[w,C]=s("horizontal"),[x,z]=s({x:100,y:100}),[k,S]=s(!1),N=o(null),I=o({x:0,y:0}),T=o(null);d(()=>B(()=>{f(e=>e+1),y(b())}),[]);const M=D(),P=E("DOCK"),$=(null==(r=null==p?void 0:p.dock)?void 0:r.position)??M.dock.position,L=(null==(i=null==p?void 0:p.dock)?void 0:i.labelMode)??M.dock.labelMode,R=(null==(a=null==p?void 0:p.features)?void 0:a.dock)??M.features.dock,O=(null==p?void 0:p.portalTarget)??M.portalTarget,X=V(),G=W(),K=u(e=>{var t;"free"===$&&(S(!0),T.current=e.pointerId,I.current={x:e.clientX-x.x,y:e.clientY-x.y},null==(t=e.currentTarget)||t.setPointerCapture(e.pointerId))},[$,x]);if(d(()=>{if(!k)return;const e=e=>{if(e.pointerId!==T.current||!N.current)return;const t=N.current.getBoundingClientRect(),n=H(e.clientX,e.clientY,I.current,t.width,t.height);z(n)},t=e=>{e.pointerId===T.current&&(S(!1),T.current=null)};return window.addEventListener("pointermove",e),window.addEventListener("pointerup",t),window.addEventListener("pointercancel",t),()=>{window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",t),window.removeEventListener("pointercancel",t)}},[k]),d(()=>{if("free"!==$)return;const e=()=>{if(!N.current)return;const e=N.current.getBoundingClientRect(),t=j(x,e.width,e.height);(t.x!==x.x||t.y!==x.y)&&z(t)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[$,x]),!R)return null;const U=A($,0===G.length),q=F($,w),Y={zIndex:P,..."free"===$?{left:`${x.x}px`,top:`${x.y}px`}:{}};return n(Q,{target:O,children:n("div",{ref:N,className:U,style:Y,"data-dock-container":"true",children:t("div",{className:q,children:["free"===$&&n("button",{type:"button",className:`${h.dockHandle}${k?` ${h.dockHandleDragging}`:""}`,onPointerDown:K,"aria-label":"Drag dock"}),G.map((e,t)=>{const r=e.lastChildId?X.get(e.lastChildId):null;return n(be,{modal:e,childModal:r,labelMode:L,renderIcon:m??void 0,animationDelay:50*t},String(e.id))})]})})})}he.displayName="WizardStep";const ye=new Map;function we(e){const t=u(()=>function(e){const t=V().get(e),n=void 0!==t&&!t.isMinimized,r=(null==t?void 0:t.isMinimized)??!1,i=void 0!==t;if(!i)return ye.delete(e),{isOpen:!1,isMinimized:!1,isRegistered:!1};const o=ye.get(e);if(o&&o.isOpen===n&&o.isMinimized===r&&o.isRegistered===i)return o;const a={isOpen:n,isMinimized:r,isRegistered:i};return ye.set(e,a),a}(e),[e]);return{...p(B,t,t),open:u(t=>{X(e,"open"),G(e,t)},[e]),close:u(()=>{X(e,"close"),K(e)},[e]),minimize:u(()=>{X(e,"minimize"),U(e)},[e]),restore:u(()=>{X(e,"restore"),O(e)},[e]),openChild:u((t,n)=>{X(e,"openChild"),q(t,e,n??document.body)},[e]),shake:u(()=>{X(e,"shake"),Y(e)},[e]),bringToFront:u(()=>{X(e,"bringToFront"),y(e)},[e])}}let Ce=null,xe=null;function ze(){const e=V();if(Ce===e&&xe)return xe;const t=Array.from(e.values()),n=t.filter(e=>e.isMinimized).length,r=t.filter(e=>!e.isMinimized).length;return xe&&xe.minimizedCount===n&&xe.openCount===r?(Ce=e,xe={...xe,modals:e},xe):(Ce=e,xe={modals:e,minimizedCount:n,openCount:r},xe)}function ke(){return p(B,ze,ze)}class Se extends m{constructor(t){super(t),(()=>{((t,n,r)=>{"reset"in t?e(t,"reset",{enumerable:!0,configurable:!0,writable:!0,value:r}):t.reset=r})(this,0,()=>{this.setState({hasError:!1,error:null})})})(),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){var n,r;null==(r=(n=this.props).onError)||r.call(n,e,t)}render(){if(this.state.hasError&&this.state.error){const{fallback:e}=this.props;return void 0!==e?"function"==typeof e?e(this.state.error,this.reset):e:t("div",{style:{padding:"16px",color:"#dc2626",backgroundColor:"#fef2f2",borderRadius:"4px",fontSize:"14px"},children:[n("strong",{children:"Error:"})," ",this.state.error.message,n("button",{onClick:this.reset,style:{marginLeft:"8px",padding:"4px 8px",fontSize:"12px",cursor:"pointer",border:"1px solid #dc2626",borderRadius:"4px",backgroundColor:"white",color:"#dc2626"},children:"Retry"})]})}return this.props.children}}function Ne(e,t){const r=r=>n(Se,{...t,children:n(e,{...r})});return r.displayName=`WithErrorBoundary(${e.displayName||e.name||"Component"})`,r}export{ve as Dock,Se as ErrorBoundary,le as Modal,fe as ModalProvider,ce as WizardModal,he as WizardStep,we as useModal,ke as useModals,Ne as withErrorBoundary};
@@ -1 +1 @@
1
- import{j as n,V as i,W as o}from"./backdrop.js";function t(t){const{getModalConfig:a,getProviderConfig:e}=t;return{getEffectiveConfig:function(){const o=n(),t=e(),r=a();let l=o;return t&&(l=i(l,t)),r&&(l={...l,features:{...l.features,...r.features},appearance:{...l.appearance,...r.appearance},animations:{...l.animations,...r.animations},positioning:{...l.positioning,...r.positioning},parentChild:{...l.parentChild,...r.parentChild}}),l},isFeatureEnabled:function(i){var t,r;const l=a(),d=e(),u=n=>{if(void 0!==n){if("backdrop"===i&&"object"==typeof n){const i=o(n);return i.visible||i.blockClicks}return n}},s=u(null==(t=null==l?void 0:l.features)?void 0:t[i]);if(void 0!==s)return s;const p=u(null==(r=null==d?void 0:d.features)?void 0:r[i]);return void 0!==p?p:u(n().features[i])??!1},getAppearance:function(i){var o,t;const r=a(),l=e();return void 0!==(null==(o=null==r?void 0:r.appearance)?void 0:o[i])?r.appearance[i]:void 0!==(null==(t=null==l?void 0:l.appearance)?void 0:t[i])?l.appearance[i]:n().appearance[i]},getAnimation:function(i){var o,t;const r=a(),l=e();return void 0!==(null==(o=null==r?void 0:r.animations)?void 0:o[i])?r.animations[i]:void 0!==(null==(t=null==l?void 0:l.animations)?void 0:t[i])?l.animations[i]:n().animations[i]},getPositioning:function(i){var o,t;const r=a(),l=e();return void 0!==(null==(o=null==r?void 0:r.positioning)?void 0:o[i])?r.positioning[i]:void 0!==(null==(t=null==l?void 0:l.positioning)?void 0:t[i])?l.positioning[i]:n().positioning[i]},getParentChild:function(i){var o,t;const r=a(),l=e();return void 0!==(null==(o=null==r?void 0:r.parentChild)?void 0:o[i])?r.parentChild[i]:void 0!==(null==(t=null==l?void 0:l.parentChild)?void 0:t[i])?l.parentChild[i]:n().parentChild[i]}}}export{t as c};
1
+ import{k as n,W as i,X as o}from"./backdrop.js";function t(t){const{getModalConfig:a,getProviderConfig:e}=t;return{getEffectiveConfig:function(){const o=n(),t=e(),r=a();let l=o;return t&&(l=i(l,t)),r&&(l={...l,features:{...l.features,...r.features},appearance:{...l.appearance,...r.appearance},animations:{...l.animations,...r.animations},positioning:{...l.positioning,...r.positioning},parentChild:{...l.parentChild,...r.parentChild}}),l},isFeatureEnabled:function(i){var t,r;const l=a(),d=e(),u=n=>{if(void 0!==n){if("backdrop"===i&&"object"==typeof n){const i=o(n);return i.visible||i.blockClicks}return n}},s=u(null==(t=null==l?void 0:l.features)?void 0:t[i]);if(void 0!==s)return s;const p=u(null==(r=null==d?void 0:d.features)?void 0:r[i]);return void 0!==p?p:u(n().features[i])??!1},getAppearance:function(i){var o,t;const r=a(),l=e();return void 0!==(null==(o=null==r?void 0:r.appearance)?void 0:o[i])?r.appearance[i]:void 0!==(null==(t=null==l?void 0:l.appearance)?void 0:t[i])?l.appearance[i]:n().appearance[i]},getAnimation:function(i){var o,t;const r=a(),l=e();return void 0!==(null==(o=null==r?void 0:r.animations)?void 0:o[i])?r.animations[i]:void 0!==(null==(t=null==l?void 0:l.animations)?void 0:t[i])?l.animations[i]:n().animations[i]},getPositioning:function(i){var o,t;const r=a(),l=e();return void 0!==(null==(o=null==r?void 0:r.positioning)?void 0:o[i])?r.positioning[i]:void 0!==(null==(t=null==l?void 0:l.positioning)?void 0:t[i])?l.positioning[i]:n().positioning[i]},getParentChild:function(i){var o,t;const r=a(),l=e();return void 0!==(null==(o=null==r?void 0:r.parentChild)?void 0:o[i])?r.parentChild[i]:void 0!==(null==(t=null==l?void 0:l.parentChild)?void 0:t[i])?l.parentChild[i]:n().parentChild[i]}}}export{t as c};
@@ -1 +1 @@
1
- :root{--modal-bg:linear-gradient(165deg, #fff 0%, #fafbfc 50%, #f5f7f9 100%);--modal-bg-transparent:#ffffffeb;--modal-border:#0000001f;--modal-border-radius:12px;--modal-shadow:0 0 0 1px #0000000a, 0 4px 6px -1px #00000014, 0 10px 20px -5px #0000001a, 0 25px 50px -12px #00000026;--modal-shadow-lg:0 0 0 1px #00000008, 0 8px 16px -4px #0000001a, 0 20px 40px -8px #0000001f, 0 40px 80px -16px #00000014;--modal-header-bg:transparent;--modal-header-border:#00000014;--modal-header-height:48px;--modal-header-padding:.875rem 1.25rem;--modal-title-color:#0f172a;--modal-title-size:1rem;--modal-btn-close:#ff5f57;--modal-btn-minimize:#febc2e;--modal-btn-style:#28c840;--modal-btn-size:13px;--modal-btn-gap:7px;--modal-btn-windows-color:#a0a0a0;--modal-btn-windows-hover-bg:#ffffff1f;--modal-btn-windows-hover-color:#f0f0f0;--modal-content-padding:0;--modal-content-color:#334155;--modal-footer-bg:transparent;--modal-footer-border:#00000014;--modal-footer-padding:1rem 1.25rem;--modal-backdrop-bg:#0000004d;--modal-backdrop-blur:2px;--modal-dock-bg:linear-gradient(180deg, #fffffff2 0%, #f8fafceb 100%);--modal-dock-border:#00000014;--modal-dock-shadow:0 -1px 0 0 #fffc, 0 4px 12px -2px #0000001f, 0 8px 24px -4px #00000014;--modal-dock-padding:.5rem .625rem;--modal-dock-gap:.5rem;--modal-dock-border-radius:14px;--modal-dock-item-size:44px;--modal-dock-item-bg:linear-gradient(145deg, #fffc, #f1f5f999);--modal-dock-item-border:#0000000f;--modal-dock-item-shadow:0 1px 3px #0000000f, inset 0 1px 0 #fffc;--modal-dock-item-hover-bg:linear-gradient(145deg, #fff, #f1f5f9);--modal-dock-item-hover-border:#0000001f;--modal-dock-item-hover-shadow:0 4px 12px #0000001a, 0 2px 4px #0000000f, inset 0 1px 0 #fff;--modal-dock-item-border-radius:10px;--modal-dock-label-color:#475569;--modal-dock-label-size:.65rem;--modal-dock-handle-bg:linear-gradient(145deg, #fff9, #f1f5f966);--modal-dock-handle-border:#0000000f;--modal-dock-handle-dots:#00000040;--modal-animation-duration-open:.4s;--modal-animation-duration-close:.25s;--modal-animation-duration-minimize:.5s;--modal-animation-duration-restore:.4s;--modal-animation-easing:cubic-bezier(.4, 0, .2, 1);--modal-animation-easing-minimize:cubic-bezier(.4, 0, 1, 1);--modal-animation-easing-restore:ease-out;--modal-animation-easing-open:ease-out;--modal-animation-easing-close:cubic-bezier(.4, 0, .8, 1);--modal-parent-animation-duration:.3s;--modal-resize-handle-size:12px;--modal-resize-corner-size:20px;--modal-glow-color:126, 200, 191;--modal-attention-color:255, 180, 100;--modal-attention-duration:.6s;--modal-child-overlay-bg:#00000040;--modal-child-overlay-blur:1px;--modal-icon-size:1.5rem;--modal-icon-badge-size:.85rem}@keyframes modal-genie-minimize{0%{opacity:1;transform:scale(1)translate(0,0)}50%{opacity:1}80%{opacity:.4}to{transform:scale(.05, .02) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}}@keyframes modal-genie-restore{0%{transform:scale(.05, .02) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}to{opacity:1;transform:scale(1)translate(0,0)}}@keyframes modal-close{0%{opacity:1;transform:scale(1)translate(0,0)}40%{opacity:.8}to{opacity:0;transform:scale(.95)translateY(10px)}}@keyframes modal-close-centered{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}40%{opacity:.8}to{opacity:0;transform:translate(-50%,-45%)scale(.95)}}@keyframes modal-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes modal-shake-positioned{0%,to{transform:none}10%{transform:translate(-8px)rotate(-.5deg)}20%{transform:translate(8px)rotate(.5deg)}30%{transform:translate(-6px)rotate(-.3deg)}40%{transform:translate(6px)rotate(.3deg)}50%{transform:translate(-4px)}60%{transform:translate(4px)}70%{transform:translate(-2px)}80%{transform:translate(2px)}90%{transform:translate(-1px)}}@keyframes modal-shake-centered{0%,to{transform:translate(-50%,-50%)}10%{transform:translate(calc(-50% - 8px),-50%)rotate(-.5deg)}20%{transform:translate(calc(8px - 50%),-50%)rotate(.5deg)}30%{transform:translate(calc(-50% - 6px),-50%)rotate(-.3deg)}40%{transform:translate(calc(6px - 50%),-50%)rotate(.3deg)}50%{transform:translate(calc(-50% - 4px),-50%)}60%{transform:translate(calc(4px - 50%),-50%)}70%{transform:translate(calc(-50% - 2px),-50%)}80%{transform:translate(calc(2px - 50%),-50%)}90%{transform:translate(calc(-50% - 1px),-50%)}}@keyframes modal-attention-glow{0%{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}15%{box-shadow:var(--modal-shadow-lg), 0 0 30px 8px rgba(var(--modal-attention-color,255, 180, 100), .6), 0 0 60px 16px rgba(var(--modal-attention-color,255, 180, 100), .3)}30%{box-shadow:var(--modal-shadow-lg), 0 0 40px 12px rgba(var(--modal-attention-color,255, 180, 100), .5), 0 0 80px 24px rgba(var(--modal-attention-color,255, 180, 100), .25)}to{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}}@keyframes modal-overlay-fade-in{0%{opacity:0;backdrop-filter:blur()}to{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}}@keyframes modal-overlay-fade-out{0%{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}to{opacity:0;backdrop-filter:blur()}}@keyframes modal-child-appear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes modal-child-disappear{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes modal-glow-pulse{0%,to{opacity:var(--glow-intensity-min,.4)}50%{opacity:var(--glow-intensity-max,.7)}}@keyframes modal-glow-minimum{0%,to{box-shadow:none}}@keyframes modal-glow-low{0%,to{box-shadow:0 0 8px rgba(var(--modal-glow-color), .15), 0 0 16px rgba(var(--modal-glow-color), .1), 0 0 24px rgba(var(--modal-glow-color), .05)}50%{box-shadow:0 0 12px rgba(var(--modal-glow-color), .2), 0 0 24px rgba(var(--modal-glow-color), .15), 0 0 36px rgba(var(--modal-glow-color), .08)}}@keyframes modal-glow-medium{0%,to{box-shadow:0 0 20px rgba(var(--modal-glow-color), .6), 0 0 40px rgba(var(--modal-glow-color), .5), 0 0 60px rgba(var(--modal-glow-color), .4), 0 0 80px rgba(var(--modal-glow-color), .25)}50%{box-shadow:0 0 30px rgba(var(--modal-glow-color), .8), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .35), 0 0 150px rgba(var(--modal-glow-color), .2)}}@keyframes modal-glow-high{0%,to{box-shadow:0 0 30px rgba(var(--modal-glow-color), .7), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .4)}50%{box-shadow:0 0 50px rgba(var(--modal-glow-color), .9), 0 0 100px rgba(var(--modal-glow-color), .7), 0 0 150px rgba(var(--modal-glow-color), .6), 0 0 200px rgba(var(--modal-glow-color), .45), 0 0 250px rgba(var(--modal-glow-color), .3)}}@keyframes modal-dock-glow-pulse{0%,to{opacity:.35}50%{opacity:.65}}.modal-dialog{background:var(--modal-bg);border:1px solid var(--modal-border);border-radius:var(--modal-border-radius);width:calc(100% - 2rem);max-width:480px;max-height:80vh;box-shadow:var(--modal-shadow-lg);opacity:0;outline:none;flex-direction:column;transition:height .15s ease-out,background-color .2s,border-color .2s;display:flex;position:fixed;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.modal-dialog.modal-positioned{opacity:1;transform:none}.modal-dialog.modal-positioned.modal-restoring,.modal-dialog.modal-positioned.modal-opening{opacity:unset}.modal-dialog.modal-centered{opacity:1}.modal-dialog.modal-awaiting-restore,.modal-dialog.modal-awaiting-child-open:not(.modal-opening):not(.modal-restoring){pointer-events:none;opacity:0!important}.modal-dialog.modal-dragging{opacity:.9;user-select:none;transition:none}.modal-dialog.modal-resizing{user-select:none;transition:none}.modal-dialog.modal-solid{background:var(--modal-bg)}.modal-dialog.modal-transparent{background:var(--modal-bg-transparent);opacity:.4}.modal-dialog.modal-minimizing{pointer-events:none;animation:modal-genie-minimize var(--modal-animation-duration-minimize) var(--modal-animation-easing-minimize) forwards;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-restoring{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-restore) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-opening{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-open) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,50%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing{pointer-events:none;animation:modal-close var(--modal-animation-duration-close) var(--modal-animation-easing-close) forwards;will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing:not(.modal-positioned){animation-name:modal-close-centered}.modal-dialog.modal-positioned.modal-minimizing,.modal-dialog.modal-positioned.modal-closing{transform:unset;opacity:unset}.modal-dialog.modal-positioned.modal-opening,.modal-dialog.modal-positioned.modal-restoring{transform:unset}.modal-dialog.modal-visible-by-animation:not(.modal-restoring):not(.modal-opening){opacity:1}.modal-dialog.modal-attention{animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-positioned,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention:not(.modal-positioned){animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-centered,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention.modal-glow{--modal-attention-color:var(--modal-glow-color)}.modal-dialog.modal-glow{border-color:rgb(var(--modal-glow-color));--glow-intensity-min:.4;--glow-intensity-max:.7}.modal-dialog.modal-glow:before{content:"";border-radius:inherit;box-shadow:0 0 20px rgb(var(--modal-glow-color)), 0 0 40px rgb(var(--modal-glow-color)), 0 0 60px rgb(var(--modal-glow-color));opacity:var(--glow-intensity-min);pointer-events:none;will-change:opacity;animation:2s ease-in-out infinite modal-glow-pulse;position:absolute;inset:0}.modal-dialog.modal-glow.modal-glow-minimum{border-color:rgba(var(--modal-glow-color), .4);--glow-intensity-min:0;--glow-intensity-max:0}.modal-dialog.modal-glow.modal-glow-minimum:before{display:none}.modal-dialog.modal-glow.modal-glow-low{--glow-intensity-min:.15;--glow-intensity-max:.3}.modal-dialog.modal-glow.modal-glow-high{--glow-intensity-min:.6;--glow-intensity-max:.9}.modal-dialog.modal-glow.modal-minimizing:before,.modal-dialog.modal-glow.modal-restoring:before,.modal-dialog.modal-glow.modal-opening:before,.modal-dialog.modal-glow.modal-closing:before,.modal-dialog.modal-glow.modal-glow-stabilizing:not(.modal-restoring):not(.modal-opening):before{opacity:var(--glow-intensity-min,.4);animation:none}.modal-header{padding:var(--modal-header-padding);border-bottom:1px solid var(--modal-header-border);outline:none;flex-shrink:0;align-items:center;gap:.75rem;display:flex;position:relative;overflow:visible}.modal-header.modal-header-draggable{cursor:grab;user-select:none;touch-action:none}.modal-header.modal-header-draggable:active{cursor:grabbing}.modal-header-traffic-lights{gap:var(--modal-btn-gap);z-index:100;flex-shrink:0;display:flex;position:relative}.modal-header-traffic-lights .modal-header-light{width:var(--modal-btn-size);height:var(--modal-btn-size);cursor:pointer;border:none;border-radius:50%;outline:none;flex-shrink:0;padding:0;transition:filter .15s,transform .1s;position:relative}.modal-header-traffic-lights .modal-header-light:before{content:"";opacity:0;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.modal-header-traffic-lights .modal-header-light:hover{transform:scale(1.1)}.modal-header-traffic-lights .modal-header-light:hover:before{opacity:1}.modal-header-traffic-lights .modal-header-light:focus-visible{box-shadow:0 0 0 2px #ffffff80,0 0 0 4px #0003}.modal-header-light-close{background:var(--modal-btn-close);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-close:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-close:before{content:"×";color:#4a0002cc;font-size:11px;font-weight:600;line-height:13px}.modal-header-light-minimize{background:var(--modal-btn-minimize);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-minimize:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-minimize:before{content:"−";color:#995700cc;font-size:13px;font-weight:600;line-height:12px}.modal-header-light-style{background:var(--modal-btn-style);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-style:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-style:before{content:"◇";color:#006500cc;font-size:7px;line-height:13px}.modal-header-light.modal-header-light-disabled{opacity:.5;cursor:not-allowed;background:#ccc}.modal-header-light.modal-header-light-disabled:hover{filter:none}.modal-header-traffic-lights .modal-header-light.modal-header-light-disabled:before{opacity:.4}.modal-header-mac-center{pointer-events:none;justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;left:0;right:0}.modal-header-mac-center .modal-header-title-group{flex:unset;pointer-events:auto}.modal-header-mac-center .modal-header-icon{pointer-events:auto}.modal-header-mac-spacer{display:none}.modal-header-title-group{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.modal-header-title{font-size:var(--modal-title-size);color:var(--modal-title-color);white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.modal-header-icon{font-size:var(--modal-icon-size);width:var(--modal-icon-size);height:var(--modal-icon-size);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.modal-header-icon-badge{font-size:var(--modal-icon-badge-size);background:var(--modal-bg);border-radius:50%;padding:2px;line-height:1;position:absolute;bottom:-6px;right:-8px;box-shadow:0 1px 3px #0003}.modal-header-btn-windows{color:var(--modal-btn-windows-color);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem;font-size:1.25rem;line-height:1;transition:background-color .15s,color .15s}.modal-header-btn-windows:hover{color:var(--modal-btn-windows-hover-color);background:var(--modal-btn-windows-hover-bg)}.modal-header-btn-windows-style{font-size:1.15rem}.modal-header-btn-windows-close{padding:0;font-size:1.5rem}.modal-header-btn-windows.modal-header-btn-windows-disabled{opacity:.35;cursor:not-allowed}.modal-header-btn-windows.modal-header-btn-windows-disabled:hover{color:var(--modal-btn-windows-color);background:0 0}.modal-body{min-height:0;padding:var(--modal-content-padding);color:var(--modal-content-color);flex-direction:column;flex:auto;display:flex;position:relative;overflow-y:auto}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:#0000000d}.modal-body::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.modal-footer{padding:var(--modal-footer-padding);border-top:1px solid var(--modal-footer-border);flex-shrink:0}.modal-footer-empty:empty{display:none}.modal-resize-handle{z-index:10;touch-action:none;position:absolute}.modal-resize-n,.modal-resize-s{height:var(--modal-resize-handle-size);cursor:ns-resize;left:8px;right:8px}.modal-resize-n{top:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-s{bottom:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-e,.modal-resize-w{width:var(--modal-resize-handle-size);cursor:ew-resize;top:8px;bottom:8px}.modal-resize-e{right:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-w{left:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-ne,.modal-resize-nw,.modal-resize-se,.modal-resize-sw{width:var(--modal-resize-corner-size);height:var(--modal-resize-corner-size)}.modal-resize-ne{top:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-resize-nw{top:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-se{bottom:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-sw{bottom:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-child-overlay{background:var(--modal-child-overlay-bg);backdrop-filter:blur(var(--modal-child-overlay-blur));border-radius:inherit;z-index:100;cursor:not-allowed;pointer-events:all;animation:.2s ease-out forwards modal-overlay-fade-in;position:absolute;inset:0}.modal-child-overlay.modal-overlay-closing{pointer-events:none;animation:.2s ease-in forwards modal-overlay-fade-out}.modal-dialog.modal-has-child .modal-header-actions{pointer-events:none;opacity:.5}.modal-dialog.modal-has-child .modal-header-draggable{cursor:not-allowed}.modal-dialog.modal-is-child.modal-positioned:not(.modal-closing):not(.modal-minimizing):not(.modal-restoring):not(.modal-visible-by-animation):not(.modal-was-restored):not(.modal-awaiting-restore):not(.modal-awaiting-child-open){animation:.25s ease-out both modal-child-appear}.modal-dialog.modal-is-child.modal-closing{animation:.2s ease-in forwards modal-child-disappear}.modal-dock-container{position:fixed}.modal-dock-container.modal-dock-empty{pointer-events:none;opacity:0}.modal-dock-container.modal-dock-free{transform:none}.modal-dock-container.modal-dock-bottom{bottom:1.25rem;left:50%;transform:translate(-50%)}.modal-dock-container.modal-dock-bottom .modal-dock{flex-direction:row;align-items:flex-end}.modal-dock-container.modal-dock-left{top:50%;left:1.25rem;transform:translateY(-50%)}.modal-dock-container.modal-dock-left .modal-dock{flex-direction:column;align-items:stretch}.modal-dock-container.modal-dock-right{top:50%;right:1.25rem;transform:translateY(-50%)}.modal-dock-container.modal-dock-right .modal-dock{flex-direction:column;align-items:stretch}.modal-dock{gap:var(--modal-dock-gap);padding:var(--modal-dock-padding);background:var(--modal-dock-bg);border:1px solid var(--modal-dock-border);border-radius:var(--modal-dock-border-radius);box-shadow:var(--modal-dock-shadow);display:flex}.modal-dock.modal-dock-free-horizontal{flex-direction:row;align-items:center}.modal-dock.modal-dock-free-vertical{flex-direction:column;align-items:stretch}.modal-dock-handle{background:var(--modal-dock-handle-bg);border:1px solid var(--modal-dock-handle-border);cursor:grab;opacity:.85;appearance:none;touch-action:none;border-radius:12px;flex:none;width:22px;height:44px;padding:0;position:relative}.modal-dock-handle:hover{opacity:1;border-color:var(--modal-dock-item-hover-border)}.modal-dock-handle.modal-dock-handle-dragging{cursor:grabbing;opacity:1}.modal-dock-handle:before{content:"";background-image:radial-gradient(var(--modal-dock-handle-dots) 1px, transparent 1px);opacity:.6;background-position:50%;background-size:7px 7px;position:absolute;inset:8px 6px}.modal-dock.modal-dock-free-vertical .modal-dock-handle{align-self:stretch;width:auto;min-width:44px;height:22px}.modal-dock.modal-dock-free-vertical .modal-dock-handle:before{inset:6px 8px}.modal-dock-item{width:var(--modal-dock-item-size);height:var(--modal-dock-item-size);background:var(--modal-dock-item-bg);border:1px solid var(--modal-dock-item-border);border-radius:var(--modal-dock-item-border-radius);box-shadow:var(--modal-dock-item-shadow,none);cursor:pointer;touch-action:none;justify-content:center;align-items:center;padding:.375rem;transition:transform .15s ease-out,opacity .15s ease-out,background .2s,border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:visible}.modal-dock-item:hover{background:var(--modal-dock-item-hover-bg);border-color:var(--modal-dock-item-hover-border);box-shadow:var(--modal-dock-item-hover-shadow,0 6px 16px #00000026, 0 2px 6px #0000001a)}.modal-dock-item:hover .modal-dock-item-icon{transform:scale(1.05)}.modal-dock-item:hover .modal-dock-item-glow{opacity:.4}.modal-dock-item:active{transition-duration:.1s}.modal-dock-container.modal-dock-bottom .modal-dock-item:hover{transform:translateY(-4px)scale(1.05)}.modal-dock-container.modal-dock-bottom .modal-dock-item:active{transform:translateY(-2px)scale(1.02)}.modal-dock-container.modal-dock-left .modal-dock-item:hover{transform:translate(4px)scale(1.05)}.modal-dock-container.modal-dock-left .modal-dock-item:active{transform:translate(2px)scale(1.02)}.modal-dock-container.modal-dock-right .modal-dock-item:hover{transform:translate(-4px)scale(1.05)}.modal-dock-container.modal-dock-right .modal-dock-item:active{transform:translate(-2px)scale(1.02)}.modal-dock-item-icon{filter:drop-shadow(0 2px 4px #00000026);justify-content:center;align-items:center;font-size:1.25rem;line-height:1;transition:transform .2s;display:inline-flex;position:relative}.modal-dock-item-icon-placeholder{color:var(--modal-dock-label-color);font-size:1.25rem;font-weight:600}.modal-dock-item-glow{opacity:0;pointer-events:none;mix-blend-mode:soft-light;background:radial-gradient(circle,currentColor,#0000 70%);transition:opacity .3s;position:absolute;inset:0}.modal-dock-item-label{font-size:var(--modal-dock-label-size);color:var(--modal-dock-label-color);white-space:nowrap;text-overflow:ellipsis;max-width:80px;font-weight:500;overflow:hidden}.modal-dock-item.modal-dock-item-label-beside{flex-direction:row;gap:.5rem;width:auto;padding:.375rem .75rem .375rem .5rem}.modal-dock-item.modal-dock-item-label-below{flex-direction:column;gap:.25rem;width:auto;min-width:52px;height:auto;padding:.375rem .5rem}.modal-dock-item.modal-dock-item-label-below .modal-dock-item-label{max-width:60px;font-size:.55rem}.modal-dock-item.modal-dock-item-has-glow{--modal-dock-glow-color:20, 184, 166;border-color:rgba(var(--modal-dock-glow-color), .6);box-shadow:0 0 10px rgba(var(--modal-dock-glow-color), .5), 0 0 20px rgba(var(--modal-dock-glow-color), .3)}.modal-dock-item.modal-dock-item-has-glow .modal-dock-item-glow{background:radial-gradient(circle at center, rgb(var(--modal-dock-glow-color)), transparent 60%);animation:2.5s cubic-bezier(.4,0,.6,1) infinite modal-dock-glow-pulse}.modal-dock-item.modal-dock-item-has-glow:hover .modal-dock-item-glow{opacity:.8;animation:none}.modal-dock-child-indicator{color:#141822;background:#ffd54a;border:2px solid #00000040;border-radius:6px;justify-content:center;align-items:center;width:18px;height:18px;font-size:.7rem;display:inline-flex;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 6px #00000059}.modal-dock-item.modal-dock-item-has-child{border-color:var(--modal-dock-item-hover-border)}.modal-dock-item.modal-dock-item-has-child:hover .modal-dock-child-indicator{transform:scale(1.2)}.wizard-container{flex-direction:column;height:100%;display:flex;overflow:hidden}.wizard-progress{padding:var(--space-4);padding-bottom:var(--space-2);flex-shrink:0}.wizard-progress-bar{height:3px;margin-bottom:var(--space-3);background:#ffffff1a;border-radius:2px;overflow:hidden}.wizard-progress-fill{background:linear-gradient(90deg, var(--color-primary,#00d9ff), var(--color-primary-light,#7dd3fc));border-radius:2px;height:100%;transition:width .3s}.wizard-steps{justify-content:space-between;gap:var(--space-2);display:flex}.wizard-step-dot{align-items:center;gap:var(--space-1);padding:var(--space-1);cursor:default;opacity:.4;background:0 0;border:none;flex-direction:column;transition:opacity .2s;display:flex}.wizard-step-dot:before{content:"";background:#ffffff4d;border:2px solid #0000;border-radius:50%;width:10px;height:10px;transition:all .2s}.wizard-step-dot.active{opacity:1}.wizard-step-dot.active:before{background:var(--color-primary,#00d9ff);border-color:var(--color-primary,#00d9ff);box-shadow:0 0 10px var(--color-primary,#00d9ff)}.wizard-step-dot.completed{opacity:.8}.wizard-step-dot.completed:before{background:var(--color-primary,#00d9ff)}.wizard-step-dot.clickable{cursor:pointer}.wizard-step-dot.clickable:hover{opacity:1}.wizard-step-title{color:var(--color-text-muted,#a1a1aa);white-space:nowrap;font-size:11px}.wizard-step-dot.active .wizard-step-title{color:var(--color-text,#fff)}.wizard-content{padding:var(--space-4);flex:1;overflow-y:auto}.wizard-navigation{justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-top:1px solid #ffffff1a;flex-shrink:0;display:flex}.wizard-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md,8px);cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.wizard-btn:disabled{opacity:.4;cursor:not-allowed}.wizard-btn-back{color:var(--color-text-muted,#a1a1aa);background:0 0;border:1px solid #fff3}.wizard-btn-back:not(:disabled):hover{color:var(--color-text,#fff);border-color:#fff6}.wizard-btn-next{background:linear-gradient(135deg, var(--color-primary,#00d9ff), var(--color-primary-dark,#0891b2));color:#000;border:none;min-width:100px}.wizard-btn-next:not(:disabled):hover{filter:brightness(1.1);box-shadow:0 4px 15px #00d9ff4d}.wizard-step-wrapper{height:100%}.wizard-fade-slide-left{animation:.3s forwards fadeSlideFromRight}.wizard-fade-slide-right{animation:.3s forwards fadeSlideFromLeft}@keyframes fadeSlideFromRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeSlideFromLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.wizard-slide-through-enter-left{animation:.3s forwards slideFromLeft}.wizard-slide-through-enter-right{animation:.3s forwards slideFromRight}@keyframes slideFromLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slideFromRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.wizard-modal-slide-forward,.wizard-modal-slide-backward{will-change:transform, opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.wizard-modal-slide-forward{animation:.7s ease-in-out forwards wizardModalSlideForward!important}.wizard-modal-slide-backward{animation:.7s ease-in-out forwards wizardModalSlideBackward!important}@keyframes wizardModalSlideForward{0%{opacity:1;transform:translate(0,0)}49.9%{opacity:0;transform:translate(110%)}50%{opacity:0;transform:translate(-110%)}to{opacity:1;transform:translate(0,0)}}@keyframes wizardModalSlideBackward{0%{opacity:1;transform:translate(0,0)}49.9%{opacity:0;transform:translate(-110%)}50%{opacity:0;transform:translate(110%)}to{opacity:1;transform:translate(0,0)}}[data-theme=light] .wizard-progress-bar{background:#0000001a}[data-theme=light] .wizard-step-dot:before{background:#0003}[data-theme=light] .wizard-step-title{color:#64748b}[data-theme=light] .wizard-step-dot.active .wizard-step-title{color:#0f172a}[data-theme=light] .wizard-navigation{border-top-color:#0000001a}[data-theme=light] .wizard-btn-back{color:#64748b;border-color:#0003}[data-theme=light] .wizard-btn-back:not(:disabled):hover{color:#0f172a;border-color:#0006}[data-theme=light] .wizard-btn-next{color:#fff}.modal-backdrop{pointer-events:none;-webkit-backdrop-filter:blur();background:0 0;transition:background .2s,-webkit-backdrop-filter .2s,backdrop-filter .2s;position:fixed;inset:0}.modal-backdrop.backdrop-visible{background:var(--modal-backdrop-bg,#00000080);-webkit-backdrop-filter:blur(var(--modal-backdrop-blur,4px))}.modal-backdrop.backdrop-blocking{pointer-events:all}
1
+ :root{--modal-bg:linear-gradient(165deg, #fff 0%, #fafbfc 50%, #f5f7f9 100%);--modal-bg-transparent:#ffffffeb;--modal-border:#0000001f;--modal-border-radius:12px;--modal-shadow:0 0 0 1px #0000000a, 0 4px 6px -1px #00000014, 0 10px 20px -5px #0000001a, 0 25px 50px -12px #00000026;--modal-shadow-lg:0 0 0 1px #00000008, 0 8px 16px -4px #0000001a, 0 20px 40px -8px #0000001f, 0 40px 80px -16px #00000014;--modal-header-bg:transparent;--modal-header-border:#00000014;--modal-header-height:48px;--modal-header-padding:.875rem 1.25rem;--modal-title-color:#0f172a;--modal-title-size:1rem;--modal-btn-close:#ff5f57;--modal-btn-minimize:#febc2e;--modal-btn-style:#28c840;--modal-btn-size:13px;--modal-btn-gap:7px;--modal-btn-windows-color:#a0a0a0;--modal-btn-windows-hover-bg:#ffffff1f;--modal-btn-windows-hover-color:#f0f0f0;--modal-content-padding:0;--modal-content-color:#334155;--modal-footer-bg:transparent;--modal-footer-border:#00000014;--modal-footer-padding:1rem 1.25rem;--modal-backdrop-bg:#0000004d;--modal-backdrop-blur:2px;--modal-dock-bg:linear-gradient(180deg, #fffffff2 0%, #f8fafceb 100%);--modal-dock-border:#00000014;--modal-dock-shadow:0 -1px 0 0 #fffc, 0 4px 12px -2px #0000001f, 0 8px 24px -4px #00000014;--modal-dock-padding:.5rem .625rem;--modal-dock-gap:.5rem;--modal-dock-border-radius:14px;--modal-dock-item-size:44px;--modal-dock-item-bg:linear-gradient(145deg, #fffc, #f1f5f999);--modal-dock-item-border:#0000000f;--modal-dock-item-shadow:0 1px 3px #0000000f, inset 0 1px 0 #fffc;--modal-dock-item-hover-bg:linear-gradient(145deg, #fff, #f1f5f9);--modal-dock-item-hover-border:#0000001f;--modal-dock-item-hover-shadow:0 4px 12px #0000001a, 0 2px 4px #0000000f, inset 0 1px 0 #fff;--modal-dock-item-border-radius:10px;--modal-dock-label-color:#475569;--modal-dock-label-size:.65rem;--modal-dock-handle-bg:linear-gradient(145deg, #fff9, #f1f5f966);--modal-dock-handle-border:#0000000f;--modal-dock-handle-dots:#00000040;--modal-animation-duration-open:.4s;--modal-animation-duration-close:.25s;--modal-animation-duration-minimize:.5s;--modal-animation-duration-restore:.4s;--modal-animation-easing:cubic-bezier(.4, 0, .2, 1);--modal-animation-easing-minimize:cubic-bezier(.4, 0, 1, 1);--modal-animation-easing-restore:ease-out;--modal-animation-easing-open:ease-out;--modal-animation-easing-close:cubic-bezier(.4, 0, .8, 1);--modal-parent-animation-duration:.3s;--modal-resize-handle-size:12px;--modal-resize-corner-size:20px;--modal-glow-color:126, 200, 191;--modal-attention-color:255, 180, 100;--modal-attention-duration:.6s;--modal-child-overlay-bg:#00000040;--modal-child-overlay-blur:1px;--modal-icon-size:1.5rem;--modal-icon-badge-size:.85rem}@keyframes modal-genie-minimize{0%{opacity:1;transform:scale(1)translate(0,0)}30%{opacity:.9}60%{opacity:.5}to{transform:scale(.12, .08) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}}@keyframes modal-genie-restore{0%{transform:scale(.12, .08) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}40%{opacity:.5}70%{opacity:.9}to{opacity:1;transform:scale(1)translate(0,0)}}@keyframes modal-close{0%{opacity:1;transform:scale(1)translate(0,0)}40%{opacity:.8}to{opacity:0;transform:scale(.95)translateY(10px)}}@keyframes modal-close-centered{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}40%{opacity:.8}to{opacity:0;transform:translate(-50%,-45%)scale(.95)}}@keyframes modal-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes modal-shake-positioned{0%,to{transform:none}10%{transform:translate(-8px)rotate(-.5deg)}20%{transform:translate(8px)rotate(.5deg)}30%{transform:translate(-6px)rotate(-.3deg)}40%{transform:translate(6px)rotate(.3deg)}50%{transform:translate(-4px)}60%{transform:translate(4px)}70%{transform:translate(-2px)}80%{transform:translate(2px)}90%{transform:translate(-1px)}}@keyframes modal-shake-centered{0%,to{transform:translate(-50%,-50%)}10%{transform:translate(calc(-50% - 8px),-50%)rotate(-.5deg)}20%{transform:translate(calc(8px - 50%),-50%)rotate(.5deg)}30%{transform:translate(calc(-50% - 6px),-50%)rotate(-.3deg)}40%{transform:translate(calc(6px - 50%),-50%)rotate(.3deg)}50%{transform:translate(calc(-50% - 4px),-50%)}60%{transform:translate(calc(4px - 50%),-50%)}70%{transform:translate(calc(-50% - 2px),-50%)}80%{transform:translate(calc(2px - 50%),-50%)}90%{transform:translate(calc(-50% - 1px),-50%)}}@keyframes modal-attention-glow{0%{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}15%{box-shadow:var(--modal-shadow-lg), 0 0 30px 8px rgba(var(--modal-attention-color,255, 180, 100), .6), 0 0 60px 16px rgba(var(--modal-attention-color,255, 180, 100), .3)}30%{box-shadow:var(--modal-shadow-lg), 0 0 40px 12px rgba(var(--modal-attention-color,255, 180, 100), .5), 0 0 80px 24px rgba(var(--modal-attention-color,255, 180, 100), .25)}to{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}}@keyframes modal-overlay-fade-in{0%{opacity:0;backdrop-filter:blur()}to{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}}@keyframes modal-overlay-fade-out{0%{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}to{opacity:0;backdrop-filter:blur()}}@keyframes modal-child-appear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes modal-child-disappear{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes modal-glow-pulse{0%,to{opacity:var(--glow-intensity-min,.4)}50%{opacity:var(--glow-intensity-max,.7)}}@keyframes modal-glow-minimum{0%,to{box-shadow:none}}@keyframes modal-glow-low{0%,to{box-shadow:0 0 8px rgba(var(--modal-glow-color), .15), 0 0 16px rgba(var(--modal-glow-color), .1), 0 0 24px rgba(var(--modal-glow-color), .05)}50%{box-shadow:0 0 12px rgba(var(--modal-glow-color), .2), 0 0 24px rgba(var(--modal-glow-color), .15), 0 0 36px rgba(var(--modal-glow-color), .08)}}@keyframes modal-glow-medium{0%,to{box-shadow:0 0 20px rgba(var(--modal-glow-color), .6), 0 0 40px rgba(var(--modal-glow-color), .5), 0 0 60px rgba(var(--modal-glow-color), .4), 0 0 80px rgba(var(--modal-glow-color), .25)}50%{box-shadow:0 0 30px rgba(var(--modal-glow-color), .8), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .35), 0 0 150px rgba(var(--modal-glow-color), .2)}}@keyframes modal-glow-high{0%,to{box-shadow:0 0 30px rgba(var(--modal-glow-color), .7), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .4)}50%{box-shadow:0 0 50px rgba(var(--modal-glow-color), .9), 0 0 100px rgba(var(--modal-glow-color), .7), 0 0 150px rgba(var(--modal-glow-color), .6), 0 0 200px rgba(var(--modal-glow-color), .45), 0 0 250px rgba(var(--modal-glow-color), .3)}}@keyframes modal-dock-glow-pulse{0%,to{opacity:.35}50%{opacity:.65}}.modal-dialog{background:var(--modal-bg);border:1px solid var(--modal-border);border-radius:var(--modal-border-radius);width:calc(100% - 2rem);max-width:480px;max-height:80vh;box-shadow:var(--modal-shadow-lg);opacity:0;outline:none;flex-direction:column;transition:height .15s ease-out,background-color .2s,border-color .2s;display:flex;position:fixed;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.modal-dialog.modal-positioned{opacity:1;transform:none}.modal-dialog.modal-positioned.modal-restoring,.modal-dialog.modal-positioned.modal-opening{opacity:unset}.modal-dialog.modal-centered{opacity:1}.modal-dialog.modal-awaiting-restore,.modal-dialog.modal-awaiting-child-open:not(.modal-opening):not(.modal-restoring){pointer-events:none;opacity:0!important}.modal-dialog.modal-dragging{opacity:.9;user-select:none;transition:none}.modal-dialog.modal-resizing{user-select:none;transition:none}.modal-dialog.modal-solid{background:var(--modal-bg)}.modal-dialog.modal-transparent{background:var(--modal-bg-transparent);opacity:.4}.modal-dialog.modal-minimizing{pointer-events:none;animation:modal-genie-minimize var(--modal-animation-duration-minimize) var(--modal-animation-easing-minimize) forwards;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-restoring{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-restore) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-opening{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-open) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,50%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing{pointer-events:none;animation:modal-close var(--modal-animation-duration-close) var(--modal-animation-easing-close) forwards;will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing:not(.modal-positioned){animation-name:modal-close-centered}.modal-dialog.modal-positioned.modal-minimizing,.modal-dialog.modal-positioned.modal-closing{transform:unset;opacity:unset}.modal-dialog.modal-positioned.modal-opening,.modal-dialog.modal-positioned.modal-restoring{transform:unset}.modal-dialog.modal-visible-by-animation:not(.modal-restoring):not(.modal-opening){opacity:1}.modal-dialog.modal-attention{animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-positioned,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention:not(.modal-positioned){animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-centered,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention.modal-glow{--modal-attention-color:var(--modal-glow-color)}.modal-dialog.modal-glow{border-color:rgb(var(--modal-glow-color));--glow-intensity-min:.4;--glow-intensity-max:.7}.modal-dialog.modal-glow:before{content:"";border-radius:inherit;box-shadow:0 0 20px rgb(var(--modal-glow-color)), 0 0 40px rgb(var(--modal-glow-color)), 0 0 60px rgb(var(--modal-glow-color));opacity:var(--glow-intensity-min);pointer-events:none;will-change:opacity;animation:2s ease-in-out infinite modal-glow-pulse;position:absolute;inset:0}.modal-dialog.modal-glow.modal-glow-minimum{border-color:rgba(var(--modal-glow-color), .4);--glow-intensity-min:0;--glow-intensity-max:0}.modal-dialog.modal-glow.modal-glow-minimum:before{display:none}.modal-dialog.modal-glow.modal-glow-low{--glow-intensity-min:.15;--glow-intensity-max:.3}.modal-dialog.modal-glow.modal-glow-high{--glow-intensity-min:.6;--glow-intensity-max:.9}.modal-dialog.modal-glow.modal-minimizing:before,.modal-dialog.modal-glow.modal-restoring:before,.modal-dialog.modal-glow.modal-opening:before,.modal-dialog.modal-glow.modal-closing:before,.modal-dialog.modal-glow.modal-glow-stabilizing:not(.modal-restoring):not(.modal-opening):before{opacity:var(--glow-intensity-min,.4);animation:none}.modal-header{padding:var(--modal-header-padding);border-bottom:1px solid var(--modal-header-border);outline:none;flex-shrink:0;align-items:center;gap:.75rem;display:flex;position:relative;overflow:visible}.modal-header.modal-header-draggable{cursor:grab;user-select:none;touch-action:none}.modal-header.modal-header-draggable:active{cursor:grabbing}.modal-header-traffic-lights{gap:var(--modal-btn-gap);z-index:100;flex-shrink:0;display:flex;position:relative}.modal-header-traffic-lights .modal-header-light{width:var(--modal-btn-size);height:var(--modal-btn-size);cursor:pointer;border:none;border-radius:50%;outline:none;flex-shrink:0;padding:0;transition:filter .15s,transform .1s;position:relative}.modal-header-traffic-lights .modal-header-light:before{content:"";opacity:0;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.modal-header-traffic-lights .modal-header-light:hover{transform:scale(1.1)}.modal-header-traffic-lights .modal-header-light:hover:before{opacity:1}.modal-header-traffic-lights .modal-header-light:focus-visible{box-shadow:0 0 0 2px #ffffff80,0 0 0 4px #0003}.modal-header-light-close{background:var(--modal-btn-close);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-close:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-close:before{content:"×";color:#4a0002cc;font-size:11px;font-weight:600;line-height:13px}.modal-header-light-minimize{background:var(--modal-btn-minimize);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-minimize:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-minimize:before{content:"−";color:#995700cc;font-size:13px;font-weight:600;line-height:12px}.modal-header-light-style{background:var(--modal-btn-style);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-style:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-style:before{content:"◇";color:#006500cc;font-size:7px;line-height:13px}.modal-header-light.modal-header-light-disabled{opacity:.5;cursor:not-allowed;background:#ccc}.modal-header-light.modal-header-light-disabled:hover{filter:none}.modal-header-traffic-lights .modal-header-light.modal-header-light-disabled:before{opacity:.4}.modal-header-mac-center{pointer-events:none;justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;left:0;right:0}.modal-header-mac-center .modal-header-title-group{flex:unset;pointer-events:auto}.modal-header-mac-center .modal-header-icon{pointer-events:auto}.modal-header-mac-spacer{display:none}.modal-header-title-group{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.modal-header-title{font-size:var(--modal-title-size);color:var(--modal-title-color);white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.modal-header-icon{font-size:var(--modal-icon-size);width:var(--modal-icon-size);height:var(--modal-icon-size);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.modal-header-icon-badge{font-size:var(--modal-icon-badge-size);background:var(--modal-bg);border-radius:50%;padding:2px;line-height:1;position:absolute;bottom:-6px;right:-8px;box-shadow:0 1px 3px #0003}.modal-header-btn-windows{color:var(--modal-btn-windows-color);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem;font-size:1.25rem;line-height:1;transition:background-color .15s,color .15s}.modal-header-btn-windows:hover{color:var(--modal-btn-windows-hover-color);background:var(--modal-btn-windows-hover-bg)}.modal-header-btn-windows-style{font-size:1.15rem}.modal-header-btn-windows-close{padding:0;font-size:1.5rem}.modal-header-btn-windows.modal-header-btn-windows-disabled{opacity:.35;cursor:not-allowed}.modal-header-btn-windows.modal-header-btn-windows-disabled:hover{color:var(--modal-btn-windows-color);background:0 0}.modal-body{min-height:0;padding:var(--modal-content-padding);color:var(--modal-content-color);flex-direction:column;flex:auto;display:flex;position:relative;overflow-y:auto}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:#0000000d}.modal-body::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.modal-footer{padding:var(--modal-footer-padding);border-top:1px solid var(--modal-footer-border);flex-shrink:0}.modal-footer-empty:empty{display:none}.modal-resize-handle{z-index:10;touch-action:none;position:absolute}.modal-resize-n,.modal-resize-s{height:var(--modal-resize-handle-size);cursor:ns-resize;left:8px;right:8px}.modal-resize-n{top:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-s{bottom:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-e,.modal-resize-w{width:var(--modal-resize-handle-size);cursor:ew-resize;top:8px;bottom:8px}.modal-resize-e{right:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-w{left:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-ne,.modal-resize-nw,.modal-resize-se,.modal-resize-sw{width:var(--modal-resize-corner-size);height:var(--modal-resize-corner-size)}.modal-resize-ne{top:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-resize-nw{top:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-se{bottom:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-sw{bottom:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-child-overlay{background:var(--modal-child-overlay-bg);backdrop-filter:blur(var(--modal-child-overlay-blur));border-radius:inherit;z-index:100;cursor:not-allowed;pointer-events:all;animation:.2s ease-out forwards modal-overlay-fade-in;position:absolute;inset:0}.modal-child-overlay.modal-overlay-closing{pointer-events:none;animation:.2s ease-in forwards modal-overlay-fade-out}.modal-dialog.modal-has-child .modal-header-actions{pointer-events:none;opacity:.5}.modal-dialog.modal-has-child .modal-header-draggable{cursor:not-allowed}.modal-dialog.modal-is-child.modal-positioned:not(.modal-closing):not(.modal-minimizing):not(.modal-restoring):not(.modal-visible-by-animation):not(.modal-was-restored):not(.modal-awaiting-restore):not(.modal-awaiting-child-open){animation:.25s ease-out both modal-child-appear}.modal-dialog.modal-is-child.modal-closing{animation:.2s ease-in forwards modal-child-disappear}.modal-dock-container{position:fixed}.modal-dock-container.modal-dock-empty{pointer-events:none;opacity:0}.modal-dock-container.modal-dock-free{transform:none}.modal-dock-container.modal-dock-bottom{bottom:1.25rem;left:50%;transform:translate(-50%)}.modal-dock-container.modal-dock-bottom .modal-dock{flex-direction:row;align-items:flex-end}.modal-dock-container.modal-dock-left{top:50%;left:1.25rem;transform:translateY(-50%)}.modal-dock-container.modal-dock-left .modal-dock{flex-direction:column;align-items:stretch}.modal-dock-container.modal-dock-right{top:50%;right:1.25rem;transform:translateY(-50%)}.modal-dock-container.modal-dock-right .modal-dock{flex-direction:column;align-items:stretch}.modal-dock{gap:var(--modal-dock-gap);padding:var(--modal-dock-padding);background:var(--modal-dock-bg);border:1px solid var(--modal-dock-border);border-radius:var(--modal-dock-border-radius);box-shadow:var(--modal-dock-shadow);display:flex}.modal-dock.modal-dock-free-horizontal{flex-direction:row;align-items:center}.modal-dock.modal-dock-free-vertical{flex-direction:column;align-items:stretch}.modal-dock-handle{background:var(--modal-dock-handle-bg);border:1px solid var(--modal-dock-handle-border);cursor:grab;opacity:.85;appearance:none;touch-action:none;border-radius:12px;flex:none;width:22px;height:44px;padding:0;position:relative}.modal-dock-handle:hover{opacity:1;border-color:var(--modal-dock-item-hover-border)}.modal-dock-handle.modal-dock-handle-dragging{cursor:grabbing;opacity:1}.modal-dock-handle:before{content:"";background-image:radial-gradient(var(--modal-dock-handle-dots) 1px, transparent 1px);opacity:.6;background-position:50%;background-size:7px 7px;position:absolute;inset:8px 6px}.modal-dock.modal-dock-free-vertical .modal-dock-handle{align-self:stretch;width:auto;min-width:44px;height:22px}.modal-dock.modal-dock-free-vertical .modal-dock-handle:before{inset:6px 8px}.modal-dock-item{width:var(--modal-dock-item-size);height:var(--modal-dock-item-size);background:var(--modal-dock-item-bg);border:1px solid var(--modal-dock-item-border);border-radius:var(--modal-dock-item-border-radius);box-shadow:var(--modal-dock-item-shadow,none);cursor:pointer;touch-action:none;justify-content:center;align-items:center;padding:.375rem;transition:transform .15s ease-out,opacity .15s ease-out,background .2s,border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:visible}.modal-dock-item:hover{background:var(--modal-dock-item-hover-bg);border-color:var(--modal-dock-item-hover-border);box-shadow:var(--modal-dock-item-hover-shadow,0 6px 16px #00000026, 0 2px 6px #0000001a)}.modal-dock-item:hover .modal-dock-item-icon{transform:scale(1.05)}.modal-dock-item:hover .modal-dock-item-glow{opacity:.4}.modal-dock-item:active{transition-duration:.1s}.modal-dock-container.modal-dock-bottom .modal-dock-item:hover{transform:translateY(-4px)scale(1.05)}.modal-dock-container.modal-dock-bottom .modal-dock-item:active{transform:translateY(-2px)scale(1.02)}.modal-dock-container.modal-dock-left .modal-dock-item:hover{transform:translate(4px)scale(1.05)}.modal-dock-container.modal-dock-left .modal-dock-item:active{transform:translate(2px)scale(1.02)}.modal-dock-container.modal-dock-right .modal-dock-item:hover{transform:translate(-4px)scale(1.05)}.modal-dock-container.modal-dock-right .modal-dock-item:active{transform:translate(-2px)scale(1.02)}.modal-dock-item-icon{filter:drop-shadow(0 2px 4px #00000026);justify-content:center;align-items:center;font-size:1.25rem;line-height:1;transition:transform .2s;display:inline-flex;position:relative}.modal-dock-item-icon-placeholder{color:var(--modal-dock-label-color);font-size:1.25rem;font-weight:600}.modal-dock-item-glow{opacity:0;pointer-events:none;mix-blend-mode:soft-light;background:radial-gradient(circle,currentColor,#0000 70%);transition:opacity .3s;position:absolute;inset:0}.modal-dock-item-label{font-size:var(--modal-dock-label-size);color:var(--modal-dock-label-color);white-space:nowrap;text-overflow:ellipsis;max-width:80px;font-weight:500;overflow:hidden}.modal-dock-item.modal-dock-item-label-beside{flex-direction:row;gap:.5rem;width:auto;padding:.375rem .75rem .375rem .5rem}.modal-dock-item.modal-dock-item-label-below{flex-direction:column;gap:.25rem;width:auto;min-width:52px;height:auto;padding:.375rem .5rem}.modal-dock-item.modal-dock-item-label-below .modal-dock-item-label{max-width:60px;font-size:.55rem}.modal-dock-item.modal-dock-item-has-glow{--modal-dock-glow-color:20, 184, 166;border-color:rgba(var(--modal-dock-glow-color), .6);box-shadow:0 0 10px rgba(var(--modal-dock-glow-color), .5), 0 0 20px rgba(var(--modal-dock-glow-color), .3)}.modal-dock-item.modal-dock-item-has-glow .modal-dock-item-glow{background:radial-gradient(circle at center, rgb(var(--modal-dock-glow-color)), transparent 60%);animation:2.5s cubic-bezier(.4,0,.6,1) infinite modal-dock-glow-pulse}.modal-dock-item.modal-dock-item-has-glow:hover .modal-dock-item-glow{opacity:.8;animation:none}.modal-dock-child-indicator{color:#141822;background:#ffd54a;border:2px solid #00000040;border-radius:6px;justify-content:center;align-items:center;width:18px;height:18px;font-size:.7rem;display:inline-flex;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 6px #00000059}.modal-dock-item.modal-dock-item-has-child{border-color:var(--modal-dock-item-hover-border)}.modal-dock-item.modal-dock-item-has-child:hover .modal-dock-child-indicator{transform:scale(1.2)}.wizard-container{flex-direction:column;height:100%;display:flex;overflow:hidden}.wizard-progress{padding:var(--space-4);padding-bottom:var(--space-2);flex-shrink:0}.wizard-progress-bar{height:3px;margin-bottom:var(--space-3);background:#ffffff1a;border-radius:2px;overflow:hidden}.wizard-progress-fill{background:linear-gradient(90deg, var(--color-primary,#00d9ff), var(--color-primary-light,#7dd3fc));border-radius:2px;height:100%;transition:width .3s}.wizard-steps{justify-content:space-between;gap:var(--space-2);display:flex}.wizard-step-dot{align-items:center;gap:var(--space-1);padding:var(--space-1);cursor:default;opacity:.4;background:0 0;border:none;flex-direction:column;transition:opacity .2s;display:flex}.wizard-step-dot:before{content:"";background:#ffffff4d;border:2px solid #0000;border-radius:50%;width:10px;height:10px;transition:all .2s}.wizard-step-dot.active{opacity:1}.wizard-step-dot.active:before{background:var(--color-primary,#00d9ff);border-color:var(--color-primary,#00d9ff);box-shadow:0 0 10px var(--color-primary,#00d9ff)}.wizard-step-dot.completed{opacity:.8}.wizard-step-dot.completed:before{background:var(--color-primary,#00d9ff)}.wizard-step-dot.clickable{cursor:pointer}.wizard-step-dot.clickable:hover{opacity:1}.wizard-step-title{color:var(--color-text-muted,#a1a1aa);white-space:nowrap;font-size:11px}.wizard-step-dot.active .wizard-step-title{color:var(--color-text,#fff)}.wizard-content{padding:var(--space-4);flex:1;overflow-y:auto}.wizard-navigation{justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-top:1px solid #ffffff1a;flex-shrink:0;display:flex}.wizard-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md,8px);cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.wizard-btn:disabled{opacity:.4;cursor:not-allowed}.wizard-btn-back{color:var(--color-text-muted,#a1a1aa);background:0 0;border:1px solid #fff3}.wizard-btn-back:not(:disabled):hover{color:var(--color-text,#fff);border-color:#fff6}.wizard-btn-next{background:linear-gradient(135deg, var(--color-primary,#00d9ff), var(--color-primary-dark,#0891b2));color:#000;border:none;min-width:100px}.wizard-btn-next:not(:disabled):hover{filter:brightness(1.1);box-shadow:0 4px 15px #00d9ff4d}.wizard-step-wrapper{height:100%}.wizard-fade-slide-left{animation:.3s forwards fadeSlideFromRight}.wizard-fade-slide-right{animation:.3s forwards fadeSlideFromLeft}@keyframes fadeSlideFromRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeSlideFromLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.wizard-slide-through-enter-left{animation:.3s forwards slideFromLeft}.wizard-slide-through-enter-right{animation:.3s forwards slideFromRight}@keyframes slideFromLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slideFromRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.wizard-modal-slide-forward,.wizard-modal-slide-backward{will-change:transform, opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.wizard-modal-slide-forward{animation:.7s ease-in-out forwards wizardModalSlideForward!important}.wizard-modal-slide-backward{animation:.7s ease-in-out forwards wizardModalSlideBackward!important}@keyframes wizardModalSlideForward{0%{opacity:1;transform:translate(0,0)}49.9%{opacity:0;transform:translate(110%)}50%{opacity:0;transform:translate(-110%)}to{opacity:1;transform:translate(0,0)}}@keyframes wizardModalSlideBackward{0%{opacity:1;transform:translate(0,0)}49.9%{opacity:0;transform:translate(-110%)}50%{opacity:0;transform:translate(110%)}to{opacity:1;transform:translate(0,0)}}[data-theme=light] .wizard-progress-bar{background:#0000001a}[data-theme=light] .wizard-step-dot:before{background:#0003}[data-theme=light] .wizard-step-title{color:#64748b}[data-theme=light] .wizard-step-dot.active .wizard-step-title{color:#0f172a}[data-theme=light] .wizard-navigation{border-top-color:#0000001a}[data-theme=light] .wizard-btn-back{color:#64748b;border-color:#0003}[data-theme=light] .wizard-btn-back:not(:disabled):hover{color:#0f172a;border-color:#0006}[data-theme=light] .wizard-btn-next{color:#fff}.modal-backdrop{pointer-events:none;-webkit-backdrop-filter:blur();background:0 0;transition:background .2s,-webkit-backdrop-filter .2s,backdrop-filter .2s;position:fixed;inset:0}.modal-backdrop.backdrop-visible{background:var(--modal-backdrop-bg,#00000080);-webkit-backdrop-filter:blur(var(--modal-backdrop-blur,4px))}.modal-backdrop.backdrop-blocking{pointer-events:all}
@@ -1 +1 @@
1
- :root{--modal-bg:linear-gradient(165deg, #fff 0%, #fafbfc 50%, #f5f7f9 100%);--modal-bg-transparent:#ffffffeb;--modal-border:#0000001f;--modal-border-radius:12px;--modal-shadow:0 0 0 1px #0000000a, 0 4px 6px -1px #00000014, 0 10px 20px -5px #0000001a, 0 25px 50px -12px #00000026;--modal-shadow-lg:0 0 0 1px #00000008, 0 8px 16px -4px #0000001a, 0 20px 40px -8px #0000001f, 0 40px 80px -16px #00000014;--modal-header-bg:transparent;--modal-header-border:#00000014;--modal-header-height:48px;--modal-header-padding:.875rem 1.25rem;--modal-title-color:#0f172a;--modal-title-size:1rem;--modal-btn-close:#ff5f57;--modal-btn-minimize:#febc2e;--modal-btn-style:#28c840;--modal-btn-size:13px;--modal-btn-gap:7px;--modal-btn-windows-color:#a0a0a0;--modal-btn-windows-hover-bg:#ffffff1f;--modal-btn-windows-hover-color:#f0f0f0;--modal-content-padding:0;--modal-content-color:#334155;--modal-footer-bg:transparent;--modal-footer-border:#00000014;--modal-footer-padding:1rem 1.25rem;--modal-backdrop-bg:#0000004d;--modal-backdrop-blur:2px;--modal-dock-bg:linear-gradient(180deg, #fffffff2 0%, #f8fafceb 100%);--modal-dock-border:#00000014;--modal-dock-shadow:0 -1px 0 0 #fffc, 0 4px 12px -2px #0000001f, 0 8px 24px -4px #00000014;--modal-dock-padding:.5rem .625rem;--modal-dock-gap:.5rem;--modal-dock-border-radius:14px;--modal-dock-item-size:44px;--modal-dock-item-bg:linear-gradient(145deg, #fffc, #f1f5f999);--modal-dock-item-border:#0000000f;--modal-dock-item-shadow:0 1px 3px #0000000f, inset 0 1px 0 #fffc;--modal-dock-item-hover-bg:linear-gradient(145deg, #fff, #f1f5f9);--modal-dock-item-hover-border:#0000001f;--modal-dock-item-hover-shadow:0 4px 12px #0000001a, 0 2px 4px #0000000f, inset 0 1px 0 #fff;--modal-dock-item-border-radius:10px;--modal-dock-label-color:#475569;--modal-dock-label-size:.65rem;--modal-dock-handle-bg:linear-gradient(145deg, #fff9, #f1f5f966);--modal-dock-handle-border:#0000000f;--modal-dock-handle-dots:#00000040;--modal-animation-duration-open:.4s;--modal-animation-duration-close:.25s;--modal-animation-duration-minimize:.5s;--modal-animation-duration-restore:.4s;--modal-animation-easing:cubic-bezier(.4, 0, .2, 1);--modal-animation-easing-minimize:cubic-bezier(.4, 0, 1, 1);--modal-animation-easing-restore:ease-out;--modal-animation-easing-open:ease-out;--modal-animation-easing-close:cubic-bezier(.4, 0, .8, 1);--modal-parent-animation-duration:.3s;--modal-resize-handle-size:12px;--modal-resize-corner-size:20px;--modal-glow-color:126, 200, 191;--modal-attention-color:255, 180, 100;--modal-attention-duration:.6s;--modal-child-overlay-bg:#00000040;--modal-child-overlay-blur:1px;--modal-icon-size:1.5rem;--modal-icon-badge-size:.85rem}@keyframes modal-genie-minimize{0%{opacity:1;transform:scale(1)translate(0,0)}50%{opacity:1}80%{opacity:.4}to{transform:scale(.05, .02) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}}@keyframes modal-genie-restore{0%{transform:scale(.05, .02) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}to{opacity:1;transform:scale(1)translate(0,0)}}@keyframes modal-close{0%{opacity:1;transform:scale(1)translate(0,0)}40%{opacity:.8}to{opacity:0;transform:scale(.95)translateY(10px)}}@keyframes modal-close-centered{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}40%{opacity:.8}to{opacity:0;transform:translate(-50%,-45%)scale(.95)}}@keyframes modal-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes modal-shake-positioned{0%,to{transform:none}10%{transform:translate(-8px)rotate(-.5deg)}20%{transform:translate(8px)rotate(.5deg)}30%{transform:translate(-6px)rotate(-.3deg)}40%{transform:translate(6px)rotate(.3deg)}50%{transform:translate(-4px)}60%{transform:translate(4px)}70%{transform:translate(-2px)}80%{transform:translate(2px)}90%{transform:translate(-1px)}}@keyframes modal-shake-centered{0%,to{transform:translate(-50%,-50%)}10%{transform:translate(calc(-50% - 8px),-50%)rotate(-.5deg)}20%{transform:translate(calc(8px - 50%),-50%)rotate(.5deg)}30%{transform:translate(calc(-50% - 6px),-50%)rotate(-.3deg)}40%{transform:translate(calc(6px - 50%),-50%)rotate(.3deg)}50%{transform:translate(calc(-50% - 4px),-50%)}60%{transform:translate(calc(4px - 50%),-50%)}70%{transform:translate(calc(-50% - 2px),-50%)}80%{transform:translate(calc(2px - 50%),-50%)}90%{transform:translate(calc(-50% - 1px),-50%)}}@keyframes modal-attention-glow{0%{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}15%{box-shadow:var(--modal-shadow-lg), 0 0 30px 8px rgba(var(--modal-attention-color,255, 180, 100), .6), 0 0 60px 16px rgba(var(--modal-attention-color,255, 180, 100), .3)}30%{box-shadow:var(--modal-shadow-lg), 0 0 40px 12px rgba(var(--modal-attention-color,255, 180, 100), .5), 0 0 80px 24px rgba(var(--modal-attention-color,255, 180, 100), .25)}to{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}}@keyframes modal-overlay-fade-in{0%{opacity:0;backdrop-filter:blur()}to{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}}@keyframes modal-overlay-fade-out{0%{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}to{opacity:0;backdrop-filter:blur()}}@keyframes modal-child-appear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes modal-child-disappear{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes modal-glow-pulse{0%,to{opacity:var(--glow-intensity-min,.4)}50%{opacity:var(--glow-intensity-max,.7)}}@keyframes modal-glow-minimum{0%,to{box-shadow:none}}@keyframes modal-glow-low{0%,to{box-shadow:0 0 8px rgba(var(--modal-glow-color), .15), 0 0 16px rgba(var(--modal-glow-color), .1), 0 0 24px rgba(var(--modal-glow-color), .05)}50%{box-shadow:0 0 12px rgba(var(--modal-glow-color), .2), 0 0 24px rgba(var(--modal-glow-color), .15), 0 0 36px rgba(var(--modal-glow-color), .08)}}@keyframes modal-glow-medium{0%,to{box-shadow:0 0 20px rgba(var(--modal-glow-color), .6), 0 0 40px rgba(var(--modal-glow-color), .5), 0 0 60px rgba(var(--modal-glow-color), .4), 0 0 80px rgba(var(--modal-glow-color), .25)}50%{box-shadow:0 0 30px rgba(var(--modal-glow-color), .8), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .35), 0 0 150px rgba(var(--modal-glow-color), .2)}}@keyframes modal-glow-high{0%,to{box-shadow:0 0 30px rgba(var(--modal-glow-color), .7), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .4)}50%{box-shadow:0 0 50px rgba(var(--modal-glow-color), .9), 0 0 100px rgba(var(--modal-glow-color), .7), 0 0 150px rgba(var(--modal-glow-color), .6), 0 0 200px rgba(var(--modal-glow-color), .45), 0 0 250px rgba(var(--modal-glow-color), .3)}}@keyframes modal-dock-glow-pulse{0%,to{opacity:.35}50%{opacity:.65}}.modal-dialog{background:var(--modal-bg);border:1px solid var(--modal-border);border-radius:var(--modal-border-radius);width:calc(100% - 2rem);max-width:480px;max-height:80vh;box-shadow:var(--modal-shadow-lg);opacity:0;outline:none;flex-direction:column;transition:height .15s ease-out,background-color .2s,border-color .2s;display:flex;position:fixed;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.modal-dialog.modal-positioned{opacity:1;transform:none}.modal-dialog.modal-positioned.modal-restoring,.modal-dialog.modal-positioned.modal-opening{opacity:unset}.modal-dialog.modal-centered{opacity:1}.modal-dialog.modal-awaiting-restore,.modal-dialog.modal-awaiting-child-open:not(.modal-opening):not(.modal-restoring){pointer-events:none;opacity:0!important}.modal-dialog.modal-dragging{opacity:.9;user-select:none;transition:none}.modal-dialog.modal-resizing{user-select:none;transition:none}.modal-dialog.modal-solid{background:var(--modal-bg)}.modal-dialog.modal-transparent{background:var(--modal-bg-transparent);opacity:.4}.modal-dialog.modal-minimizing{pointer-events:none;animation:modal-genie-minimize var(--modal-animation-duration-minimize) var(--modal-animation-easing-minimize) forwards;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-restoring{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-restore) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-opening{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-open) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,50%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing{pointer-events:none;animation:modal-close var(--modal-animation-duration-close) var(--modal-animation-easing-close) forwards;will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing:not(.modal-positioned){animation-name:modal-close-centered}.modal-dialog.modal-positioned.modal-minimizing,.modal-dialog.modal-positioned.modal-closing{transform:unset;opacity:unset}.modal-dialog.modal-positioned.modal-opening,.modal-dialog.modal-positioned.modal-restoring{transform:unset}.modal-dialog.modal-visible-by-animation:not(.modal-restoring):not(.modal-opening){opacity:1}.modal-dialog.modal-attention{animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-positioned,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention:not(.modal-positioned){animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-centered,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention.modal-glow{--modal-attention-color:var(--modal-glow-color)}.modal-dialog.modal-glow{border-color:rgb(var(--modal-glow-color));--glow-intensity-min:.4;--glow-intensity-max:.7}.modal-dialog.modal-glow:before{content:"";border-radius:inherit;box-shadow:0 0 20px rgb(var(--modal-glow-color)), 0 0 40px rgb(var(--modal-glow-color)), 0 0 60px rgb(var(--modal-glow-color));opacity:var(--glow-intensity-min);pointer-events:none;will-change:opacity;animation:2s ease-in-out infinite modal-glow-pulse;position:absolute;inset:0}.modal-dialog.modal-glow.modal-glow-minimum{border-color:rgba(var(--modal-glow-color), .4);--glow-intensity-min:0;--glow-intensity-max:0}.modal-dialog.modal-glow.modal-glow-minimum:before{display:none}.modal-dialog.modal-glow.modal-glow-low{--glow-intensity-min:.15;--glow-intensity-max:.3}.modal-dialog.modal-glow.modal-glow-high{--glow-intensity-min:.6;--glow-intensity-max:.9}.modal-dialog.modal-glow.modal-minimizing:before,.modal-dialog.modal-glow.modal-restoring:before,.modal-dialog.modal-glow.modal-opening:before,.modal-dialog.modal-glow.modal-closing:before,.modal-dialog.modal-glow.modal-glow-stabilizing:not(.modal-restoring):not(.modal-opening):before{opacity:var(--glow-intensity-min,.4);animation:none}.modal-header{padding:var(--modal-header-padding);border-bottom:1px solid var(--modal-header-border);outline:none;flex-shrink:0;align-items:center;gap:.75rem;display:flex;position:relative;overflow:visible}.modal-header.modal-header-draggable{cursor:grab;user-select:none;touch-action:none}.modal-header.modal-header-draggable:active{cursor:grabbing}.modal-header-traffic-lights{gap:var(--modal-btn-gap);z-index:100;flex-shrink:0;display:flex;position:relative}.modal-header-traffic-lights .modal-header-light{width:var(--modal-btn-size);height:var(--modal-btn-size);cursor:pointer;border:none;border-radius:50%;outline:none;flex-shrink:0;padding:0;transition:filter .15s,transform .1s;position:relative}.modal-header-traffic-lights .modal-header-light:before{content:"";opacity:0;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.modal-header-traffic-lights .modal-header-light:hover{transform:scale(1.1)}.modal-header-traffic-lights .modal-header-light:hover:before{opacity:1}.modal-header-traffic-lights .modal-header-light:focus-visible{box-shadow:0 0 0 2px #ffffff80,0 0 0 4px #0003}.modal-header-light-close{background:var(--modal-btn-close);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-close:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-close:before{content:"×";color:#4a0002cc;font-size:11px;font-weight:600;line-height:13px}.modal-header-light-minimize{background:var(--modal-btn-minimize);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-minimize:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-minimize:before{content:"−";color:#995700cc;font-size:13px;font-weight:600;line-height:12px}.modal-header-light-style{background:var(--modal-btn-style);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-style:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-style:before{content:"◇";color:#006500cc;font-size:7px;line-height:13px}.modal-header-light.modal-header-light-disabled{opacity:.5;cursor:not-allowed;background:#ccc}.modal-header-light.modal-header-light-disabled:hover{filter:none}.modal-header-traffic-lights .modal-header-light.modal-header-light-disabled:before{opacity:.4}.modal-header-mac-center{pointer-events:none;justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;left:0;right:0}.modal-header-mac-center .modal-header-title-group{flex:unset;pointer-events:auto}.modal-header-mac-center .modal-header-icon{pointer-events:auto}.modal-header-mac-spacer{display:none}.modal-header-title-group{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.modal-header-title{font-size:var(--modal-title-size);color:var(--modal-title-color);white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.modal-header-icon{font-size:var(--modal-icon-size);width:var(--modal-icon-size);height:var(--modal-icon-size);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.modal-header-icon-badge{font-size:var(--modal-icon-badge-size);background:var(--modal-bg);border-radius:50%;padding:2px;line-height:1;position:absolute;bottom:-6px;right:-8px;box-shadow:0 1px 3px #0003}.modal-header-btn-windows{color:var(--modal-btn-windows-color);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem;font-size:1.25rem;line-height:1;transition:background-color .15s,color .15s}.modal-header-btn-windows:hover{color:var(--modal-btn-windows-hover-color);background:var(--modal-btn-windows-hover-bg)}.modal-header-btn-windows-style{font-size:1.15rem}.modal-header-btn-windows-close{padding:0;font-size:1.5rem}.modal-header-btn-windows.modal-header-btn-windows-disabled{opacity:.35;cursor:not-allowed}.modal-header-btn-windows.modal-header-btn-windows-disabled:hover{color:var(--modal-btn-windows-color);background:0 0}.modal-body{min-height:0;padding:var(--modal-content-padding);color:var(--modal-content-color);flex-direction:column;flex:auto;display:flex;position:relative;overflow-y:auto}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:#0000000d}.modal-body::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.modal-footer{padding:var(--modal-footer-padding);border-top:1px solid var(--modal-footer-border);flex-shrink:0}.modal-footer-empty:empty{display:none}.modal-resize-handle{z-index:10;touch-action:none;position:absolute}.modal-resize-n,.modal-resize-s{height:var(--modal-resize-handle-size);cursor:ns-resize;left:8px;right:8px}.modal-resize-n{top:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-s{bottom:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-e,.modal-resize-w{width:var(--modal-resize-handle-size);cursor:ew-resize;top:8px;bottom:8px}.modal-resize-e{right:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-w{left:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-ne,.modal-resize-nw,.modal-resize-se,.modal-resize-sw{width:var(--modal-resize-corner-size);height:var(--modal-resize-corner-size)}.modal-resize-ne{top:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-resize-nw{top:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-se{bottom:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-sw{bottom:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-child-overlay{background:var(--modal-child-overlay-bg);backdrop-filter:blur(var(--modal-child-overlay-blur));border-radius:inherit;z-index:100;cursor:not-allowed;pointer-events:all;animation:.2s ease-out forwards modal-overlay-fade-in;position:absolute;inset:0}.modal-child-overlay.modal-overlay-closing{pointer-events:none;animation:.2s ease-in forwards modal-overlay-fade-out}.modal-dialog.modal-has-child .modal-header-actions{pointer-events:none;opacity:.5}.modal-dialog.modal-has-child .modal-header-draggable{cursor:not-allowed}.modal-dialog.modal-is-child.modal-positioned:not(.modal-closing):not(.modal-minimizing):not(.modal-restoring):not(.modal-visible-by-animation):not(.modal-was-restored):not(.modal-awaiting-restore):not(.modal-awaiting-child-open){animation:.25s ease-out both modal-child-appear}.modal-dialog.modal-is-child.modal-closing{animation:.2s ease-in forwards modal-child-disappear}.modal-backdrop{pointer-events:none;-webkit-backdrop-filter:blur();background:0 0;transition:background .2s,-webkit-backdrop-filter .2s,backdrop-filter .2s;position:fixed;inset:0}.modal-backdrop.backdrop-visible{background:var(--modal-backdrop-bg,#00000080);-webkit-backdrop-filter:blur(var(--modal-backdrop-blur,4px))}.modal-backdrop.backdrop-blocking{pointer-events:all}
1
+ :root{--modal-bg:linear-gradient(165deg, #fff 0%, #fafbfc 50%, #f5f7f9 100%);--modal-bg-transparent:#ffffffeb;--modal-border:#0000001f;--modal-border-radius:12px;--modal-shadow:0 0 0 1px #0000000a, 0 4px 6px -1px #00000014, 0 10px 20px -5px #0000001a, 0 25px 50px -12px #00000026;--modal-shadow-lg:0 0 0 1px #00000008, 0 8px 16px -4px #0000001a, 0 20px 40px -8px #0000001f, 0 40px 80px -16px #00000014;--modal-header-bg:transparent;--modal-header-border:#00000014;--modal-header-height:48px;--modal-header-padding:.875rem 1.25rem;--modal-title-color:#0f172a;--modal-title-size:1rem;--modal-btn-close:#ff5f57;--modal-btn-minimize:#febc2e;--modal-btn-style:#28c840;--modal-btn-size:13px;--modal-btn-gap:7px;--modal-btn-windows-color:#a0a0a0;--modal-btn-windows-hover-bg:#ffffff1f;--modal-btn-windows-hover-color:#f0f0f0;--modal-content-padding:0;--modal-content-color:#334155;--modal-footer-bg:transparent;--modal-footer-border:#00000014;--modal-footer-padding:1rem 1.25rem;--modal-backdrop-bg:#0000004d;--modal-backdrop-blur:2px;--modal-dock-bg:linear-gradient(180deg, #fffffff2 0%, #f8fafceb 100%);--modal-dock-border:#00000014;--modal-dock-shadow:0 -1px 0 0 #fffc, 0 4px 12px -2px #0000001f, 0 8px 24px -4px #00000014;--modal-dock-padding:.5rem .625rem;--modal-dock-gap:.5rem;--modal-dock-border-radius:14px;--modal-dock-item-size:44px;--modal-dock-item-bg:linear-gradient(145deg, #fffc, #f1f5f999);--modal-dock-item-border:#0000000f;--modal-dock-item-shadow:0 1px 3px #0000000f, inset 0 1px 0 #fffc;--modal-dock-item-hover-bg:linear-gradient(145deg, #fff, #f1f5f9);--modal-dock-item-hover-border:#0000001f;--modal-dock-item-hover-shadow:0 4px 12px #0000001a, 0 2px 4px #0000000f, inset 0 1px 0 #fff;--modal-dock-item-border-radius:10px;--modal-dock-label-color:#475569;--modal-dock-label-size:.65rem;--modal-dock-handle-bg:linear-gradient(145deg, #fff9, #f1f5f966);--modal-dock-handle-border:#0000000f;--modal-dock-handle-dots:#00000040;--modal-animation-duration-open:.4s;--modal-animation-duration-close:.25s;--modal-animation-duration-minimize:.5s;--modal-animation-duration-restore:.4s;--modal-animation-easing:cubic-bezier(.4, 0, .2, 1);--modal-animation-easing-minimize:cubic-bezier(.4, 0, 1, 1);--modal-animation-easing-restore:ease-out;--modal-animation-easing-open:ease-out;--modal-animation-easing-close:cubic-bezier(.4, 0, .8, 1);--modal-parent-animation-duration:.3s;--modal-resize-handle-size:12px;--modal-resize-corner-size:20px;--modal-glow-color:126, 200, 191;--modal-attention-color:255, 180, 100;--modal-attention-duration:.6s;--modal-child-overlay-bg:#00000040;--modal-child-overlay-blur:1px;--modal-icon-size:1.5rem;--modal-icon-badge-size:.85rem}@keyframes modal-genie-minimize{0%{opacity:1;transform:scale(1)translate(0,0)}30%{opacity:.9}60%{opacity:.5}to{transform:scale(.12, .08) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}}@keyframes modal-genie-restore{0%{transform:scale(.12, .08) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}40%{opacity:.5}70%{opacity:.9}to{opacity:1;transform:scale(1)translate(0,0)}}@keyframes modal-close{0%{opacity:1;transform:scale(1)translate(0,0)}40%{opacity:.8}to{opacity:0;transform:scale(.95)translateY(10px)}}@keyframes modal-close-centered{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}40%{opacity:.8}to{opacity:0;transform:translate(-50%,-45%)scale(.95)}}@keyframes modal-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes modal-shake-positioned{0%,to{transform:none}10%{transform:translate(-8px)rotate(-.5deg)}20%{transform:translate(8px)rotate(.5deg)}30%{transform:translate(-6px)rotate(-.3deg)}40%{transform:translate(6px)rotate(.3deg)}50%{transform:translate(-4px)}60%{transform:translate(4px)}70%{transform:translate(-2px)}80%{transform:translate(2px)}90%{transform:translate(-1px)}}@keyframes modal-shake-centered{0%,to{transform:translate(-50%,-50%)}10%{transform:translate(calc(-50% - 8px),-50%)rotate(-.5deg)}20%{transform:translate(calc(8px - 50%),-50%)rotate(.5deg)}30%{transform:translate(calc(-50% - 6px),-50%)rotate(-.3deg)}40%{transform:translate(calc(6px - 50%),-50%)rotate(.3deg)}50%{transform:translate(calc(-50% - 4px),-50%)}60%{transform:translate(calc(4px - 50%),-50%)}70%{transform:translate(calc(-50% - 2px),-50%)}80%{transform:translate(calc(2px - 50%),-50%)}90%{transform:translate(calc(-50% - 1px),-50%)}}@keyframes modal-attention-glow{0%{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}15%{box-shadow:var(--modal-shadow-lg), 0 0 30px 8px rgba(var(--modal-attention-color,255, 180, 100), .6), 0 0 60px 16px rgba(var(--modal-attention-color,255, 180, 100), .3)}30%{box-shadow:var(--modal-shadow-lg), 0 0 40px 12px rgba(var(--modal-attention-color,255, 180, 100), .5), 0 0 80px 24px rgba(var(--modal-attention-color,255, 180, 100), .25)}to{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}}@keyframes modal-overlay-fade-in{0%{opacity:0;backdrop-filter:blur()}to{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}}@keyframes modal-overlay-fade-out{0%{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}to{opacity:0;backdrop-filter:blur()}}@keyframes modal-child-appear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes modal-child-disappear{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes modal-glow-pulse{0%,to{opacity:var(--glow-intensity-min,.4)}50%{opacity:var(--glow-intensity-max,.7)}}@keyframes modal-glow-minimum{0%,to{box-shadow:none}}@keyframes modal-glow-low{0%,to{box-shadow:0 0 8px rgba(var(--modal-glow-color), .15), 0 0 16px rgba(var(--modal-glow-color), .1), 0 0 24px rgba(var(--modal-glow-color), .05)}50%{box-shadow:0 0 12px rgba(var(--modal-glow-color), .2), 0 0 24px rgba(var(--modal-glow-color), .15), 0 0 36px rgba(var(--modal-glow-color), .08)}}@keyframes modal-glow-medium{0%,to{box-shadow:0 0 20px rgba(var(--modal-glow-color), .6), 0 0 40px rgba(var(--modal-glow-color), .5), 0 0 60px rgba(var(--modal-glow-color), .4), 0 0 80px rgba(var(--modal-glow-color), .25)}50%{box-shadow:0 0 30px rgba(var(--modal-glow-color), .8), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .35), 0 0 150px rgba(var(--modal-glow-color), .2)}}@keyframes modal-glow-high{0%,to{box-shadow:0 0 30px rgba(var(--modal-glow-color), .7), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .4)}50%{box-shadow:0 0 50px rgba(var(--modal-glow-color), .9), 0 0 100px rgba(var(--modal-glow-color), .7), 0 0 150px rgba(var(--modal-glow-color), .6), 0 0 200px rgba(var(--modal-glow-color), .45), 0 0 250px rgba(var(--modal-glow-color), .3)}}@keyframes modal-dock-glow-pulse{0%,to{opacity:.35}50%{opacity:.65}}.modal-dialog{background:var(--modal-bg);border:1px solid var(--modal-border);border-radius:var(--modal-border-radius);width:calc(100% - 2rem);max-width:480px;max-height:80vh;box-shadow:var(--modal-shadow-lg);opacity:0;outline:none;flex-direction:column;transition:height .15s ease-out,background-color .2s,border-color .2s;display:flex;position:fixed;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.modal-dialog.modal-positioned{opacity:1;transform:none}.modal-dialog.modal-positioned.modal-restoring,.modal-dialog.modal-positioned.modal-opening{opacity:unset}.modal-dialog.modal-centered{opacity:1}.modal-dialog.modal-awaiting-restore,.modal-dialog.modal-awaiting-child-open:not(.modal-opening):not(.modal-restoring){pointer-events:none;opacity:0!important}.modal-dialog.modal-dragging{opacity:.9;user-select:none;transition:none}.modal-dialog.modal-resizing{user-select:none;transition:none}.modal-dialog.modal-solid{background:var(--modal-bg)}.modal-dialog.modal-transparent{background:var(--modal-bg-transparent);opacity:.4}.modal-dialog.modal-minimizing{pointer-events:none;animation:modal-genie-minimize var(--modal-animation-duration-minimize) var(--modal-animation-easing-minimize) forwards;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-restoring{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-restore) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-opening{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-open) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,50%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing{pointer-events:none;animation:modal-close var(--modal-animation-duration-close) var(--modal-animation-easing-close) forwards;will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing:not(.modal-positioned){animation-name:modal-close-centered}.modal-dialog.modal-positioned.modal-minimizing,.modal-dialog.modal-positioned.modal-closing{transform:unset;opacity:unset}.modal-dialog.modal-positioned.modal-opening,.modal-dialog.modal-positioned.modal-restoring{transform:unset}.modal-dialog.modal-visible-by-animation:not(.modal-restoring):not(.modal-opening){opacity:1}.modal-dialog.modal-attention{animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-positioned,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention:not(.modal-positioned){animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-centered,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention.modal-glow{--modal-attention-color:var(--modal-glow-color)}.modal-dialog.modal-glow{border-color:rgb(var(--modal-glow-color));--glow-intensity-min:.4;--glow-intensity-max:.7}.modal-dialog.modal-glow:before{content:"";border-radius:inherit;box-shadow:0 0 20px rgb(var(--modal-glow-color)), 0 0 40px rgb(var(--modal-glow-color)), 0 0 60px rgb(var(--modal-glow-color));opacity:var(--glow-intensity-min);pointer-events:none;will-change:opacity;animation:2s ease-in-out infinite modal-glow-pulse;position:absolute;inset:0}.modal-dialog.modal-glow.modal-glow-minimum{border-color:rgba(var(--modal-glow-color), .4);--glow-intensity-min:0;--glow-intensity-max:0}.modal-dialog.modal-glow.modal-glow-minimum:before{display:none}.modal-dialog.modal-glow.modal-glow-low{--glow-intensity-min:.15;--glow-intensity-max:.3}.modal-dialog.modal-glow.modal-glow-high{--glow-intensity-min:.6;--glow-intensity-max:.9}.modal-dialog.modal-glow.modal-minimizing:before,.modal-dialog.modal-glow.modal-restoring:before,.modal-dialog.modal-glow.modal-opening:before,.modal-dialog.modal-glow.modal-closing:before,.modal-dialog.modal-glow.modal-glow-stabilizing:not(.modal-restoring):not(.modal-opening):before{opacity:var(--glow-intensity-min,.4);animation:none}.modal-header{padding:var(--modal-header-padding);border-bottom:1px solid var(--modal-header-border);outline:none;flex-shrink:0;align-items:center;gap:.75rem;display:flex;position:relative;overflow:visible}.modal-header.modal-header-draggable{cursor:grab;user-select:none;touch-action:none}.modal-header.modal-header-draggable:active{cursor:grabbing}.modal-header-traffic-lights{gap:var(--modal-btn-gap);z-index:100;flex-shrink:0;display:flex;position:relative}.modal-header-traffic-lights .modal-header-light{width:var(--modal-btn-size);height:var(--modal-btn-size);cursor:pointer;border:none;border-radius:50%;outline:none;flex-shrink:0;padding:0;transition:filter .15s,transform .1s;position:relative}.modal-header-traffic-lights .modal-header-light:before{content:"";opacity:0;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.modal-header-traffic-lights .modal-header-light:hover{transform:scale(1.1)}.modal-header-traffic-lights .modal-header-light:hover:before{opacity:1}.modal-header-traffic-lights .modal-header-light:focus-visible{box-shadow:0 0 0 2px #ffffff80,0 0 0 4px #0003}.modal-header-light-close{background:var(--modal-btn-close);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-close:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-close:before{content:"×";color:#4a0002cc;font-size:11px;font-weight:600;line-height:13px}.modal-header-light-minimize{background:var(--modal-btn-minimize);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-minimize:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-minimize:before{content:"−";color:#995700cc;font-size:13px;font-weight:600;line-height:12px}.modal-header-light-style{background:var(--modal-btn-style);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-style:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-style:before{content:"◇";color:#006500cc;font-size:7px;line-height:13px}.modal-header-light.modal-header-light-disabled{opacity:.5;cursor:not-allowed;background:#ccc}.modal-header-light.modal-header-light-disabled:hover{filter:none}.modal-header-traffic-lights .modal-header-light.modal-header-light-disabled:before{opacity:.4}.modal-header-mac-center{pointer-events:none;justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;left:0;right:0}.modal-header-mac-center .modal-header-title-group{flex:unset;pointer-events:auto}.modal-header-mac-center .modal-header-icon{pointer-events:auto}.modal-header-mac-spacer{display:none}.modal-header-title-group{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.modal-header-title{font-size:var(--modal-title-size);color:var(--modal-title-color);white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.modal-header-icon{font-size:var(--modal-icon-size);width:var(--modal-icon-size);height:var(--modal-icon-size);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.modal-header-icon-badge{font-size:var(--modal-icon-badge-size);background:var(--modal-bg);border-radius:50%;padding:2px;line-height:1;position:absolute;bottom:-6px;right:-8px;box-shadow:0 1px 3px #0003}.modal-header-btn-windows{color:var(--modal-btn-windows-color);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem;font-size:1.25rem;line-height:1;transition:background-color .15s,color .15s}.modal-header-btn-windows:hover{color:var(--modal-btn-windows-hover-color);background:var(--modal-btn-windows-hover-bg)}.modal-header-btn-windows-style{font-size:1.15rem}.modal-header-btn-windows-close{padding:0;font-size:1.5rem}.modal-header-btn-windows.modal-header-btn-windows-disabled{opacity:.35;cursor:not-allowed}.modal-header-btn-windows.modal-header-btn-windows-disabled:hover{color:var(--modal-btn-windows-color);background:0 0}.modal-body{min-height:0;padding:var(--modal-content-padding);color:var(--modal-content-color);flex-direction:column;flex:auto;display:flex;position:relative;overflow-y:auto}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:#0000000d}.modal-body::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.modal-footer{padding:var(--modal-footer-padding);border-top:1px solid var(--modal-footer-border);flex-shrink:0}.modal-footer-empty:empty{display:none}.modal-resize-handle{z-index:10;touch-action:none;position:absolute}.modal-resize-n,.modal-resize-s{height:var(--modal-resize-handle-size);cursor:ns-resize;left:8px;right:8px}.modal-resize-n{top:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-s{bottom:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-e,.modal-resize-w{width:var(--modal-resize-handle-size);cursor:ew-resize;top:8px;bottom:8px}.modal-resize-e{right:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-w{left:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-ne,.modal-resize-nw,.modal-resize-se,.modal-resize-sw{width:var(--modal-resize-corner-size);height:var(--modal-resize-corner-size)}.modal-resize-ne{top:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-resize-nw{top:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-se{bottom:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-sw{bottom:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-child-overlay{background:var(--modal-child-overlay-bg);backdrop-filter:blur(var(--modal-child-overlay-blur));border-radius:inherit;z-index:100;cursor:not-allowed;pointer-events:all;animation:.2s ease-out forwards modal-overlay-fade-in;position:absolute;inset:0}.modal-child-overlay.modal-overlay-closing{pointer-events:none;animation:.2s ease-in forwards modal-overlay-fade-out}.modal-dialog.modal-has-child .modal-header-actions{pointer-events:none;opacity:.5}.modal-dialog.modal-has-child .modal-header-draggable{cursor:not-allowed}.modal-dialog.modal-is-child.modal-positioned:not(.modal-closing):not(.modal-minimizing):not(.modal-restoring):not(.modal-visible-by-animation):not(.modal-was-restored):not(.modal-awaiting-restore):not(.modal-awaiting-child-open){animation:.25s ease-out both modal-child-appear}.modal-dialog.modal-is-child.modal-closing{animation:.2s ease-in forwards modal-child-disappear}.modal-backdrop{pointer-events:none;-webkit-backdrop-filter:blur();background:0 0;transition:background .2s,-webkit-backdrop-filter .2s,backdrop-filter .2s;position:fixed;inset:0}.modal-backdrop.backdrop-visible{background:var(--modal-backdrop-bg,#00000080);-webkit-backdrop-filter:blur(var(--modal-backdrop-blur,4px))}.modal-backdrop.backdrop-blocking{pointer-events:all}
@@ -1 +1 @@
1
- :root{--modal-bg:linear-gradient(165deg, #fff 0%, #fafbfc 50%, #f5f7f9 100%);--modal-bg-transparent:#ffffffeb;--modal-border:#0000001f;--modal-border-radius:12px;--modal-shadow:0 0 0 1px #0000000a, 0 4px 6px -1px #00000014, 0 10px 20px -5px #0000001a, 0 25px 50px -12px #00000026;--modal-shadow-lg:0 0 0 1px #00000008, 0 8px 16px -4px #0000001a, 0 20px 40px -8px #0000001f, 0 40px 80px -16px #00000014;--modal-header-bg:transparent;--modal-header-border:#00000014;--modal-header-height:48px;--modal-header-padding:.875rem 1.25rem;--modal-title-color:#0f172a;--modal-title-size:1rem;--modal-btn-close:#ff5f57;--modal-btn-minimize:#febc2e;--modal-btn-style:#28c840;--modal-btn-size:13px;--modal-btn-gap:7px;--modal-btn-windows-color:#a0a0a0;--modal-btn-windows-hover-bg:#ffffff1f;--modal-btn-windows-hover-color:#f0f0f0;--modal-content-padding:0;--modal-content-color:#334155;--modal-footer-bg:transparent;--modal-footer-border:#00000014;--modal-footer-padding:1rem 1.25rem;--modal-backdrop-bg:#0000004d;--modal-backdrop-blur:2px;--modal-dock-bg:linear-gradient(180deg, #fffffff2 0%, #f8fafceb 100%);--modal-dock-border:#00000014;--modal-dock-shadow:0 -1px 0 0 #fffc, 0 4px 12px -2px #0000001f, 0 8px 24px -4px #00000014;--modal-dock-padding:.5rem .625rem;--modal-dock-gap:.5rem;--modal-dock-border-radius:14px;--modal-dock-item-size:44px;--modal-dock-item-bg:linear-gradient(145deg, #fffc, #f1f5f999);--modal-dock-item-border:#0000000f;--modal-dock-item-shadow:0 1px 3px #0000000f, inset 0 1px 0 #fffc;--modal-dock-item-hover-bg:linear-gradient(145deg, #fff, #f1f5f9);--modal-dock-item-hover-border:#0000001f;--modal-dock-item-hover-shadow:0 4px 12px #0000001a, 0 2px 4px #0000000f, inset 0 1px 0 #fff;--modal-dock-item-border-radius:10px;--modal-dock-label-color:#475569;--modal-dock-label-size:.65rem;--modal-dock-handle-bg:linear-gradient(145deg, #fff9, #f1f5f966);--modal-dock-handle-border:#0000000f;--modal-dock-handle-dots:#00000040;--modal-animation-duration-open:.4s;--modal-animation-duration-close:.25s;--modal-animation-duration-minimize:.5s;--modal-animation-duration-restore:.4s;--modal-animation-easing:cubic-bezier(.4, 0, .2, 1);--modal-animation-easing-minimize:cubic-bezier(.4, 0, 1, 1);--modal-animation-easing-restore:ease-out;--modal-animation-easing-open:ease-out;--modal-animation-easing-close:cubic-bezier(.4, 0, .8, 1);--modal-parent-animation-duration:.3s;--modal-resize-handle-size:12px;--modal-resize-corner-size:20px;--modal-glow-color:126, 200, 191;--modal-attention-color:255, 180, 100;--modal-attention-duration:.6s;--modal-child-overlay-bg:#00000040;--modal-child-overlay-blur:1px;--modal-icon-size:1.5rem;--modal-icon-badge-size:.85rem}@keyframes modal-genie-minimize{0%{opacity:1;transform:scale(1)translate(0,0)}50%{opacity:1}80%{opacity:.4}to{transform:scale(.05, .02) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}}@keyframes modal-genie-restore{0%{transform:scale(.05, .02) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}to{opacity:1;transform:scale(1)translate(0,0)}}@keyframes modal-close{0%{opacity:1;transform:scale(1)translate(0,0)}40%{opacity:.8}to{opacity:0;transform:scale(.95)translateY(10px)}}@keyframes modal-close-centered{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}40%{opacity:.8}to{opacity:0;transform:translate(-50%,-45%)scale(.95)}}@keyframes modal-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes modal-shake-positioned{0%,to{transform:none}10%{transform:translate(-8px)rotate(-.5deg)}20%{transform:translate(8px)rotate(.5deg)}30%{transform:translate(-6px)rotate(-.3deg)}40%{transform:translate(6px)rotate(.3deg)}50%{transform:translate(-4px)}60%{transform:translate(4px)}70%{transform:translate(-2px)}80%{transform:translate(2px)}90%{transform:translate(-1px)}}@keyframes modal-shake-centered{0%,to{transform:translate(-50%,-50%)}10%{transform:translate(calc(-50% - 8px),-50%)rotate(-.5deg)}20%{transform:translate(calc(8px - 50%),-50%)rotate(.5deg)}30%{transform:translate(calc(-50% - 6px),-50%)rotate(-.3deg)}40%{transform:translate(calc(6px - 50%),-50%)rotate(.3deg)}50%{transform:translate(calc(-50% - 4px),-50%)}60%{transform:translate(calc(4px - 50%),-50%)}70%{transform:translate(calc(-50% - 2px),-50%)}80%{transform:translate(calc(2px - 50%),-50%)}90%{transform:translate(calc(-50% - 1px),-50%)}}@keyframes modal-attention-glow{0%{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}15%{box-shadow:var(--modal-shadow-lg), 0 0 30px 8px rgba(var(--modal-attention-color,255, 180, 100), .6), 0 0 60px 16px rgba(var(--modal-attention-color,255, 180, 100), .3)}30%{box-shadow:var(--modal-shadow-lg), 0 0 40px 12px rgba(var(--modal-attention-color,255, 180, 100), .5), 0 0 80px 24px rgba(var(--modal-attention-color,255, 180, 100), .25)}to{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}}@keyframes modal-overlay-fade-in{0%{opacity:0;backdrop-filter:blur()}to{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}}@keyframes modal-overlay-fade-out{0%{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}to{opacity:0;backdrop-filter:blur()}}@keyframes modal-child-appear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes modal-child-disappear{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes modal-glow-pulse{0%,to{opacity:var(--glow-intensity-min,.4)}50%{opacity:var(--glow-intensity-max,.7)}}@keyframes modal-glow-minimum{0%,to{box-shadow:none}}@keyframes modal-glow-low{0%,to{box-shadow:0 0 8px rgba(var(--modal-glow-color), .15), 0 0 16px rgba(var(--modal-glow-color), .1), 0 0 24px rgba(var(--modal-glow-color), .05)}50%{box-shadow:0 0 12px rgba(var(--modal-glow-color), .2), 0 0 24px rgba(var(--modal-glow-color), .15), 0 0 36px rgba(var(--modal-glow-color), .08)}}@keyframes modal-glow-medium{0%,to{box-shadow:0 0 20px rgba(var(--modal-glow-color), .6), 0 0 40px rgba(var(--modal-glow-color), .5), 0 0 60px rgba(var(--modal-glow-color), .4), 0 0 80px rgba(var(--modal-glow-color), .25)}50%{box-shadow:0 0 30px rgba(var(--modal-glow-color), .8), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .35), 0 0 150px rgba(var(--modal-glow-color), .2)}}@keyframes modal-glow-high{0%,to{box-shadow:0 0 30px rgba(var(--modal-glow-color), .7), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .4)}50%{box-shadow:0 0 50px rgba(var(--modal-glow-color), .9), 0 0 100px rgba(var(--modal-glow-color), .7), 0 0 150px rgba(var(--modal-glow-color), .6), 0 0 200px rgba(var(--modal-glow-color), .45), 0 0 250px rgba(var(--modal-glow-color), .3)}}@keyframes modal-dock-glow-pulse{0%,to{opacity:.35}50%{opacity:.65}}.modal-dialog{background:var(--modal-bg);border:1px solid var(--modal-border);border-radius:var(--modal-border-radius);width:calc(100% - 2rem);max-width:480px;max-height:80vh;box-shadow:var(--modal-shadow-lg);opacity:0;outline:none;flex-direction:column;transition:height .15s ease-out,background-color .2s,border-color .2s;display:flex;position:fixed;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.modal-dialog.modal-positioned{opacity:1;transform:none}.modal-dialog.modal-positioned.modal-restoring,.modal-dialog.modal-positioned.modal-opening{opacity:unset}.modal-dialog.modal-centered{opacity:1}.modal-dialog.modal-awaiting-restore,.modal-dialog.modal-awaiting-child-open:not(.modal-opening):not(.modal-restoring){pointer-events:none;opacity:0!important}.modal-dialog.modal-dragging{opacity:.9;user-select:none;transition:none}.modal-dialog.modal-resizing{user-select:none;transition:none}.modal-dialog.modal-solid{background:var(--modal-bg)}.modal-dialog.modal-transparent{background:var(--modal-bg-transparent);opacity:.4}.modal-dialog.modal-minimizing{pointer-events:none;animation:modal-genie-minimize var(--modal-animation-duration-minimize) var(--modal-animation-easing-minimize) forwards;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-restoring{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-restore) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-opening{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-open) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,50%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing{pointer-events:none;animation:modal-close var(--modal-animation-duration-close) var(--modal-animation-easing-close) forwards;will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing:not(.modal-positioned){animation-name:modal-close-centered}.modal-dialog.modal-positioned.modal-minimizing,.modal-dialog.modal-positioned.modal-closing{transform:unset;opacity:unset}.modal-dialog.modal-positioned.modal-opening,.modal-dialog.modal-positioned.modal-restoring{transform:unset}.modal-dialog.modal-visible-by-animation:not(.modal-restoring):not(.modal-opening){opacity:1}.modal-dialog.modal-attention{animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-positioned,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention:not(.modal-positioned){animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-centered,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention.modal-glow{--modal-attention-color:var(--modal-glow-color)}.modal-dialog.modal-glow{border-color:rgb(var(--modal-glow-color));--glow-intensity-min:.4;--glow-intensity-max:.7}.modal-dialog.modal-glow:before{content:"";border-radius:inherit;box-shadow:0 0 20px rgb(var(--modal-glow-color)), 0 0 40px rgb(var(--modal-glow-color)), 0 0 60px rgb(var(--modal-glow-color));opacity:var(--glow-intensity-min);pointer-events:none;will-change:opacity;animation:2s ease-in-out infinite modal-glow-pulse;position:absolute;inset:0}.modal-dialog.modal-glow.modal-glow-minimum{border-color:rgba(var(--modal-glow-color), .4);--glow-intensity-min:0;--glow-intensity-max:0}.modal-dialog.modal-glow.modal-glow-minimum:before{display:none}.modal-dialog.modal-glow.modal-glow-low{--glow-intensity-min:.15;--glow-intensity-max:.3}.modal-dialog.modal-glow.modal-glow-high{--glow-intensity-min:.6;--glow-intensity-max:.9}.modal-dialog.modal-glow.modal-minimizing:before,.modal-dialog.modal-glow.modal-restoring:before,.modal-dialog.modal-glow.modal-opening:before,.modal-dialog.modal-glow.modal-closing:before,.modal-dialog.modal-glow.modal-glow-stabilizing:not(.modal-restoring):not(.modal-opening):before{opacity:var(--glow-intensity-min,.4);animation:none}.modal-header{padding:var(--modal-header-padding);border-bottom:1px solid var(--modal-header-border);outline:none;flex-shrink:0;align-items:center;gap:.75rem;display:flex;position:relative;overflow:visible}.modal-header.modal-header-draggable{cursor:grab;user-select:none;touch-action:none}.modal-header.modal-header-draggable:active{cursor:grabbing}.modal-header-traffic-lights{gap:var(--modal-btn-gap);z-index:100;flex-shrink:0;display:flex;position:relative}.modal-header-traffic-lights .modal-header-light{width:var(--modal-btn-size);height:var(--modal-btn-size);cursor:pointer;border:none;border-radius:50%;outline:none;flex-shrink:0;padding:0;transition:filter .15s,transform .1s;position:relative}.modal-header-traffic-lights .modal-header-light:before{content:"";opacity:0;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.modal-header-traffic-lights .modal-header-light:hover{transform:scale(1.1)}.modal-header-traffic-lights .modal-header-light:hover:before{opacity:1}.modal-header-traffic-lights .modal-header-light:focus-visible{box-shadow:0 0 0 2px #ffffff80,0 0 0 4px #0003}.modal-header-light-close{background:var(--modal-btn-close);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-close:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-close:before{content:"×";color:#4a0002cc;font-size:11px;font-weight:600;line-height:13px}.modal-header-light-minimize{background:var(--modal-btn-minimize);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-minimize:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-minimize:before{content:"−";color:#995700cc;font-size:13px;font-weight:600;line-height:12px}.modal-header-light-style{background:var(--modal-btn-style);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-style:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-style:before{content:"◇";color:#006500cc;font-size:7px;line-height:13px}.modal-header-light.modal-header-light-disabled{opacity:.5;cursor:not-allowed;background:#ccc}.modal-header-light.modal-header-light-disabled:hover{filter:none}.modal-header-traffic-lights .modal-header-light.modal-header-light-disabled:before{opacity:.4}.modal-header-mac-center{pointer-events:none;justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;left:0;right:0}.modal-header-mac-center .modal-header-title-group{flex:unset;pointer-events:auto}.modal-header-mac-center .modal-header-icon{pointer-events:auto}.modal-header-mac-spacer{display:none}.modal-header-title-group{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.modal-header-title{font-size:var(--modal-title-size);color:var(--modal-title-color);white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.modal-header-icon{font-size:var(--modal-icon-size);width:var(--modal-icon-size);height:var(--modal-icon-size);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.modal-header-icon-badge{font-size:var(--modal-icon-badge-size);background:var(--modal-bg);border-radius:50%;padding:2px;line-height:1;position:absolute;bottom:-6px;right:-8px;box-shadow:0 1px 3px #0003}.modal-header-btn-windows{color:var(--modal-btn-windows-color);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem;font-size:1.25rem;line-height:1;transition:background-color .15s,color .15s}.modal-header-btn-windows:hover{color:var(--modal-btn-windows-hover-color);background:var(--modal-btn-windows-hover-bg)}.modal-header-btn-windows-style{font-size:1.15rem}.modal-header-btn-windows-close{padding:0;font-size:1.5rem}.modal-header-btn-windows.modal-header-btn-windows-disabled{opacity:.35;cursor:not-allowed}.modal-header-btn-windows.modal-header-btn-windows-disabled:hover{color:var(--modal-btn-windows-color);background:0 0}.modal-body{min-height:0;padding:var(--modal-content-padding);color:var(--modal-content-color);flex-direction:column;flex:auto;display:flex;position:relative;overflow-y:auto}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:#0000000d}.modal-body::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.modal-footer{padding:var(--modal-footer-padding);border-top:1px solid var(--modal-footer-border);flex-shrink:0}.modal-footer-empty:empty{display:none}.modal-resize-handle{z-index:10;touch-action:none;position:absolute}.modal-resize-n,.modal-resize-s{height:var(--modal-resize-handle-size);cursor:ns-resize;left:8px;right:8px}.modal-resize-n{top:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-s{bottom:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-e,.modal-resize-w{width:var(--modal-resize-handle-size);cursor:ew-resize;top:8px;bottom:8px}.modal-resize-e{right:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-w{left:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-ne,.modal-resize-nw,.modal-resize-se,.modal-resize-sw{width:var(--modal-resize-corner-size);height:var(--modal-resize-corner-size)}.modal-resize-ne{top:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-resize-nw{top:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-se{bottom:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-sw{bottom:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-child-overlay{background:var(--modal-child-overlay-bg);backdrop-filter:blur(var(--modal-child-overlay-blur));border-radius:inherit;z-index:100;cursor:not-allowed;pointer-events:all;animation:.2s ease-out forwards modal-overlay-fade-in;position:absolute;inset:0}.modal-child-overlay.modal-overlay-closing{pointer-events:none;animation:.2s ease-in forwards modal-overlay-fade-out}.modal-dialog.modal-has-child .modal-header-actions{pointer-events:none;opacity:.5}.modal-dialog.modal-has-child .modal-header-draggable{cursor:not-allowed}.modal-dialog.modal-is-child.modal-positioned:not(.modal-closing):not(.modal-minimizing):not(.modal-restoring):not(.modal-visible-by-animation):not(.modal-was-restored):not(.modal-awaiting-restore):not(.modal-awaiting-child-open){animation:.25s ease-out both modal-child-appear}.modal-dialog.modal-is-child.modal-closing{animation:.2s ease-in forwards modal-child-disappear}.modal-dock-container{position:fixed}.modal-dock-container.modal-dock-empty{pointer-events:none;opacity:0}.modal-dock-container.modal-dock-free{transform:none}.modal-dock-container.modal-dock-bottom{bottom:1.25rem;left:50%;transform:translate(-50%)}.modal-dock-container.modal-dock-bottom .modal-dock{flex-direction:row;align-items:flex-end}.modal-dock-container.modal-dock-left{top:50%;left:1.25rem;transform:translateY(-50%)}.modal-dock-container.modal-dock-left .modal-dock{flex-direction:column;align-items:stretch}.modal-dock-container.modal-dock-right{top:50%;right:1.25rem;transform:translateY(-50%)}.modal-dock-container.modal-dock-right .modal-dock{flex-direction:column;align-items:stretch}.modal-dock{gap:var(--modal-dock-gap);padding:var(--modal-dock-padding);background:var(--modal-dock-bg);border:1px solid var(--modal-dock-border);border-radius:var(--modal-dock-border-radius);box-shadow:var(--modal-dock-shadow);display:flex}.modal-dock.modal-dock-free-horizontal{flex-direction:row;align-items:center}.modal-dock.modal-dock-free-vertical{flex-direction:column;align-items:stretch}.modal-dock-handle{background:var(--modal-dock-handle-bg);border:1px solid var(--modal-dock-handle-border);cursor:grab;opacity:.85;appearance:none;touch-action:none;border-radius:12px;flex:none;width:22px;height:44px;padding:0;position:relative}.modal-dock-handle:hover{opacity:1;border-color:var(--modal-dock-item-hover-border)}.modal-dock-handle.modal-dock-handle-dragging{cursor:grabbing;opacity:1}.modal-dock-handle:before{content:"";background-image:radial-gradient(var(--modal-dock-handle-dots) 1px, transparent 1px);opacity:.6;background-position:50%;background-size:7px 7px;position:absolute;inset:8px 6px}.modal-dock.modal-dock-free-vertical .modal-dock-handle{align-self:stretch;width:auto;min-width:44px;height:22px}.modal-dock.modal-dock-free-vertical .modal-dock-handle:before{inset:6px 8px}.modal-dock-item{width:var(--modal-dock-item-size);height:var(--modal-dock-item-size);background:var(--modal-dock-item-bg);border:1px solid var(--modal-dock-item-border);border-radius:var(--modal-dock-item-border-radius);box-shadow:var(--modal-dock-item-shadow,none);cursor:pointer;touch-action:none;justify-content:center;align-items:center;padding:.375rem;transition:transform .15s ease-out,opacity .15s ease-out,background .2s,border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:visible}.modal-dock-item:hover{background:var(--modal-dock-item-hover-bg);border-color:var(--modal-dock-item-hover-border);box-shadow:var(--modal-dock-item-hover-shadow,0 6px 16px #00000026, 0 2px 6px #0000001a)}.modal-dock-item:hover .modal-dock-item-icon{transform:scale(1.05)}.modal-dock-item:hover .modal-dock-item-glow{opacity:.4}.modal-dock-item:active{transition-duration:.1s}.modal-dock-container.modal-dock-bottom .modal-dock-item:hover{transform:translateY(-4px)scale(1.05)}.modal-dock-container.modal-dock-bottom .modal-dock-item:active{transform:translateY(-2px)scale(1.02)}.modal-dock-container.modal-dock-left .modal-dock-item:hover{transform:translate(4px)scale(1.05)}.modal-dock-container.modal-dock-left .modal-dock-item:active{transform:translate(2px)scale(1.02)}.modal-dock-container.modal-dock-right .modal-dock-item:hover{transform:translate(-4px)scale(1.05)}.modal-dock-container.modal-dock-right .modal-dock-item:active{transform:translate(-2px)scale(1.02)}.modal-dock-item-icon{filter:drop-shadow(0 2px 4px #00000026);justify-content:center;align-items:center;font-size:1.25rem;line-height:1;transition:transform .2s;display:inline-flex;position:relative}.modal-dock-item-icon-placeholder{color:var(--modal-dock-label-color);font-size:1.25rem;font-weight:600}.modal-dock-item-glow{opacity:0;pointer-events:none;mix-blend-mode:soft-light;background:radial-gradient(circle,currentColor,#0000 70%);transition:opacity .3s;position:absolute;inset:0}.modal-dock-item-label{font-size:var(--modal-dock-label-size);color:var(--modal-dock-label-color);white-space:nowrap;text-overflow:ellipsis;max-width:80px;font-weight:500;overflow:hidden}.modal-dock-item.modal-dock-item-label-beside{flex-direction:row;gap:.5rem;width:auto;padding:.375rem .75rem .375rem .5rem}.modal-dock-item.modal-dock-item-label-below{flex-direction:column;gap:.25rem;width:auto;min-width:52px;height:auto;padding:.375rem .5rem}.modal-dock-item.modal-dock-item-label-below .modal-dock-item-label{max-width:60px;font-size:.55rem}.modal-dock-item.modal-dock-item-has-glow{--modal-dock-glow-color:20, 184, 166;border-color:rgba(var(--modal-dock-glow-color), .6);box-shadow:0 0 10px rgba(var(--modal-dock-glow-color), .5), 0 0 20px rgba(var(--modal-dock-glow-color), .3)}.modal-dock-item.modal-dock-item-has-glow .modal-dock-item-glow{background:radial-gradient(circle at center, rgb(var(--modal-dock-glow-color)), transparent 60%);animation:2.5s cubic-bezier(.4,0,.6,1) infinite modal-dock-glow-pulse}.modal-dock-item.modal-dock-item-has-glow:hover .modal-dock-item-glow{opacity:.8;animation:none}.modal-dock-child-indicator{color:#141822;background:#ffd54a;border:2px solid #00000040;border-radius:6px;justify-content:center;align-items:center;width:18px;height:18px;font-size:.7rem;display:inline-flex;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 6px #00000059}.modal-dock-item.modal-dock-item-has-child{border-color:var(--modal-dock-item-hover-border)}.modal-dock-item.modal-dock-item-has-child:hover .modal-dock-child-indicator{transform:scale(1.2)}.wizard-container{flex-direction:column;height:100%;display:flex;overflow:hidden}.wizard-progress{padding:var(--space-4);padding-bottom:var(--space-2);flex-shrink:0}.wizard-progress-bar{height:3px;margin-bottom:var(--space-3);background:#ffffff1a;border-radius:2px;overflow:hidden}.wizard-progress-fill{background:linear-gradient(90deg, var(--color-primary,#00d9ff), var(--color-primary-light,#7dd3fc));border-radius:2px;height:100%;transition:width .3s}.wizard-steps{justify-content:space-between;gap:var(--space-2);display:flex}.wizard-step-dot{align-items:center;gap:var(--space-1);padding:var(--space-1);cursor:default;opacity:.4;background:0 0;border:none;flex-direction:column;transition:opacity .2s;display:flex}.wizard-step-dot:before{content:"";background:#ffffff4d;border:2px solid #0000;border-radius:50%;width:10px;height:10px;transition:all .2s}.wizard-step-dot.active{opacity:1}.wizard-step-dot.active:before{background:var(--color-primary,#00d9ff);border-color:var(--color-primary,#00d9ff);box-shadow:0 0 10px var(--color-primary,#00d9ff)}.wizard-step-dot.completed{opacity:.8}.wizard-step-dot.completed:before{background:var(--color-primary,#00d9ff)}.wizard-step-dot.clickable{cursor:pointer}.wizard-step-dot.clickable:hover{opacity:1}.wizard-step-title{color:var(--color-text-muted,#a1a1aa);white-space:nowrap;font-size:11px}.wizard-step-dot.active .wizard-step-title{color:var(--color-text,#fff)}.wizard-content{padding:var(--space-4);flex:1;overflow-y:auto}.wizard-navigation{justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-top:1px solid #ffffff1a;flex-shrink:0;display:flex}.wizard-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md,8px);cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.wizard-btn:disabled{opacity:.4;cursor:not-allowed}.wizard-btn-back{color:var(--color-text-muted,#a1a1aa);background:0 0;border:1px solid #fff3}.wizard-btn-back:not(:disabled):hover{color:var(--color-text,#fff);border-color:#fff6}.wizard-btn-next{background:linear-gradient(135deg, var(--color-primary,#00d9ff), var(--color-primary-dark,#0891b2));color:#000;border:none;min-width:100px}.wizard-btn-next:not(:disabled):hover{filter:brightness(1.1);box-shadow:0 4px 15px #00d9ff4d}.wizard-step-wrapper{height:100%}.wizard-fade-slide-left{animation:.3s forwards fadeSlideFromRight}.wizard-fade-slide-right{animation:.3s forwards fadeSlideFromLeft}@keyframes fadeSlideFromRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeSlideFromLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.wizard-slide-through-enter-left{animation:.3s forwards slideFromLeft}.wizard-slide-through-enter-right{animation:.3s forwards slideFromRight}@keyframes slideFromLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slideFromRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.wizard-modal-slide-forward,.wizard-modal-slide-backward{will-change:transform, opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.wizard-modal-slide-forward{animation:.7s ease-in-out forwards wizardModalSlideForward!important}.wizard-modal-slide-backward{animation:.7s ease-in-out forwards wizardModalSlideBackward!important}@keyframes wizardModalSlideForward{0%{opacity:1;transform:translate(0,0)}49.9%{opacity:0;transform:translate(110%)}50%{opacity:0;transform:translate(-110%)}to{opacity:1;transform:translate(0,0)}}@keyframes wizardModalSlideBackward{0%{opacity:1;transform:translate(0,0)}49.9%{opacity:0;transform:translate(-110%)}50%{opacity:0;transform:translate(110%)}to{opacity:1;transform:translate(0,0)}}[data-theme=light] .wizard-progress-bar{background:#0000001a}[data-theme=light] .wizard-step-dot:before{background:#0003}[data-theme=light] .wizard-step-title{color:#64748b}[data-theme=light] .wizard-step-dot.active .wizard-step-title{color:#0f172a}[data-theme=light] .wizard-navigation{border-top-color:#0000001a}[data-theme=light] .wizard-btn-back{color:#64748b;border-color:#0003}[data-theme=light] .wizard-btn-back:not(:disabled):hover{color:#0f172a;border-color:#0006}[data-theme=light] .wizard-btn-next{color:#fff}.modal-backdrop{pointer-events:none;-webkit-backdrop-filter:blur();background:0 0;transition:background .2s,-webkit-backdrop-filter .2s,backdrop-filter .2s;position:fixed;inset:0}.modal-backdrop.backdrop-visible{background:var(--modal-backdrop-bg,#00000080);-webkit-backdrop-filter:blur(var(--modal-backdrop-blur,4px))}.modal-backdrop.backdrop-blocking{pointer-events:all}:root{--modal-bg:#1e1e2e;--modal-bg-transparent:#1e1e2ee6;--modal-border:#ffffff1a;--modal-title-color:#f0f0f0;--modal-content-color:#d0d0d0;--modal-header-border:#ffffff14;--modal-footer-border:#ffffff14;--modal-shadow:0 0 0 1px #0000000a, 0 4px 6px -1px #00000014, 0 10px 20px -5px #0000001a, 0 25px 50px -12px #00000026;--modal-shadow-lg:0 0 0 1px #00000008, 0 8px 16px -4px #0000001a, 0 20px 40px -8px #0000001f, 0 40px 80px -16px #00000014;--modal-dock-bg:linear-gradient(to bottom, #2a2a3e, #1e1e2e);--modal-dock-border:#ffffff1a;--modal-dock-shadow:0 -1px 0 0 #fffc, 0 4px 12px -2px #0000001f, 0 8px 24px -4px #00000014;--modal-dock-label-color:#e0e0e0;--modal-dock-item-bg:linear-gradient(145deg, #ffffff0d, transparent);--modal-dock-item-border:#ffffff14;--modal-dock-item-shadow:0 1px 3px #0000000f, inset 0 1px 0 #fffc;--modal-dock-item-hover-bg:linear-gradient(145deg, #ffffff1a, #ffffff0d);--modal-dock-item-hover-border:#fff3;--modal-dock-item-hover-shadow:0 4px 12px #0000001a, 0 2px 4px #0000000f, inset 0 1px 0 #fff;--modal-dock-handle-bg:linear-gradient(145deg, #ffffff0d, transparent);--modal-dock-handle-border:#ffffff14;--modal-dock-handle-dots:#ffffff4d;--modal-btn-windows-color:#a0a0a0;--modal-btn-windows-hover-bg:#ffffff1a;--modal-btn-windows-hover-color:#f0f0f0;--modal-attention-color:251, 146, 60;--modal-backdrop-bg:#0f172a33;--modal-backdrop-blur:4px;--modal-child-overlay-bg:#fff9;--modal-child-overlay-blur:2px}
1
+ :root{--modal-bg:linear-gradient(165deg, #fff 0%, #fafbfc 50%, #f5f7f9 100%);--modal-bg-transparent:#ffffffeb;--modal-border:#0000001f;--modal-border-radius:12px;--modal-shadow:0 0 0 1px #0000000a, 0 4px 6px -1px #00000014, 0 10px 20px -5px #0000001a, 0 25px 50px -12px #00000026;--modal-shadow-lg:0 0 0 1px #00000008, 0 8px 16px -4px #0000001a, 0 20px 40px -8px #0000001f, 0 40px 80px -16px #00000014;--modal-header-bg:transparent;--modal-header-border:#00000014;--modal-header-height:48px;--modal-header-padding:.875rem 1.25rem;--modal-title-color:#0f172a;--modal-title-size:1rem;--modal-btn-close:#ff5f57;--modal-btn-minimize:#febc2e;--modal-btn-style:#28c840;--modal-btn-size:13px;--modal-btn-gap:7px;--modal-btn-windows-color:#a0a0a0;--modal-btn-windows-hover-bg:#ffffff1f;--modal-btn-windows-hover-color:#f0f0f0;--modal-content-padding:0;--modal-content-color:#334155;--modal-footer-bg:transparent;--modal-footer-border:#00000014;--modal-footer-padding:1rem 1.25rem;--modal-backdrop-bg:#0000004d;--modal-backdrop-blur:2px;--modal-dock-bg:linear-gradient(180deg, #fffffff2 0%, #f8fafceb 100%);--modal-dock-border:#00000014;--modal-dock-shadow:0 -1px 0 0 #fffc, 0 4px 12px -2px #0000001f, 0 8px 24px -4px #00000014;--modal-dock-padding:.5rem .625rem;--modal-dock-gap:.5rem;--modal-dock-border-radius:14px;--modal-dock-item-size:44px;--modal-dock-item-bg:linear-gradient(145deg, #fffc, #f1f5f999);--modal-dock-item-border:#0000000f;--modal-dock-item-shadow:0 1px 3px #0000000f, inset 0 1px 0 #fffc;--modal-dock-item-hover-bg:linear-gradient(145deg, #fff, #f1f5f9);--modal-dock-item-hover-border:#0000001f;--modal-dock-item-hover-shadow:0 4px 12px #0000001a, 0 2px 4px #0000000f, inset 0 1px 0 #fff;--modal-dock-item-border-radius:10px;--modal-dock-label-color:#475569;--modal-dock-label-size:.65rem;--modal-dock-handle-bg:linear-gradient(145deg, #fff9, #f1f5f966);--modal-dock-handle-border:#0000000f;--modal-dock-handle-dots:#00000040;--modal-animation-duration-open:.4s;--modal-animation-duration-close:.25s;--modal-animation-duration-minimize:.5s;--modal-animation-duration-restore:.4s;--modal-animation-easing:cubic-bezier(.4, 0, .2, 1);--modal-animation-easing-minimize:cubic-bezier(.4, 0, 1, 1);--modal-animation-easing-restore:ease-out;--modal-animation-easing-open:ease-out;--modal-animation-easing-close:cubic-bezier(.4, 0, .8, 1);--modal-parent-animation-duration:.3s;--modal-resize-handle-size:12px;--modal-resize-corner-size:20px;--modal-glow-color:126, 200, 191;--modal-attention-color:255, 180, 100;--modal-attention-duration:.6s;--modal-child-overlay-bg:#00000040;--modal-child-overlay-blur:1px;--modal-icon-size:1.5rem;--modal-icon-badge-size:.85rem}@keyframes modal-genie-minimize{0%{opacity:1;transform:scale(1)translate(0,0)}30%{opacity:.9}60%{opacity:.5}to{transform:scale(.12, .08) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}}@keyframes modal-genie-restore{0%{transform:scale(.12, .08) translate3d(var(--genie-translate-x,0px), var(--genie-translate-y,0px), 0);opacity:0}40%{opacity:.5}70%{opacity:.9}to{opacity:1;transform:scale(1)translate(0,0)}}@keyframes modal-close{0%{opacity:1;transform:scale(1)translate(0,0)}40%{opacity:.8}to{opacity:0;transform:scale(.95)translateY(10px)}}@keyframes modal-close-centered{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}40%{opacity:.8}to{opacity:0;transform:translate(-50%,-45%)scale(.95)}}@keyframes modal-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes modal-shake-positioned{0%,to{transform:none}10%{transform:translate(-8px)rotate(-.5deg)}20%{transform:translate(8px)rotate(.5deg)}30%{transform:translate(-6px)rotate(-.3deg)}40%{transform:translate(6px)rotate(.3deg)}50%{transform:translate(-4px)}60%{transform:translate(4px)}70%{transform:translate(-2px)}80%{transform:translate(2px)}90%{transform:translate(-1px)}}@keyframes modal-shake-centered{0%,to{transform:translate(-50%,-50%)}10%{transform:translate(calc(-50% - 8px),-50%)rotate(-.5deg)}20%{transform:translate(calc(8px - 50%),-50%)rotate(.5deg)}30%{transform:translate(calc(-50% - 6px),-50%)rotate(-.3deg)}40%{transform:translate(calc(6px - 50%),-50%)rotate(.3deg)}50%{transform:translate(calc(-50% - 4px),-50%)}60%{transform:translate(calc(4px - 50%),-50%)}70%{transform:translate(calc(-50% - 2px),-50%)}80%{transform:translate(calc(2px - 50%),-50%)}90%{transform:translate(calc(-50% - 1px),-50%)}}@keyframes modal-attention-glow{0%{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}15%{box-shadow:var(--modal-shadow-lg), 0 0 30px 8px rgba(var(--modal-attention-color,255, 180, 100), .6), 0 0 60px 16px rgba(var(--modal-attention-color,255, 180, 100), .3)}30%{box-shadow:var(--modal-shadow-lg), 0 0 40px 12px rgba(var(--modal-attention-color,255, 180, 100), .5), 0 0 80px 24px rgba(var(--modal-attention-color,255, 180, 100), .25)}to{box-shadow:var(--modal-shadow-lg), 0 0 0 0 rgba(var(--modal-attention-color,255, 180, 100), 0)}}@keyframes modal-overlay-fade-in{0%{opacity:0;backdrop-filter:blur()}to{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}}@keyframes modal-overlay-fade-out{0%{opacity:1;backdrop-filter:blur(var(--modal-child-overlay-blur))}to{opacity:0;backdrop-filter:blur()}}@keyframes modal-child-appear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes modal-child-disappear{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes modal-glow-pulse{0%,to{opacity:var(--glow-intensity-min,.4)}50%{opacity:var(--glow-intensity-max,.7)}}@keyframes modal-glow-minimum{0%,to{box-shadow:none}}@keyframes modal-glow-low{0%,to{box-shadow:0 0 8px rgba(var(--modal-glow-color), .15), 0 0 16px rgba(var(--modal-glow-color), .1), 0 0 24px rgba(var(--modal-glow-color), .05)}50%{box-shadow:0 0 12px rgba(var(--modal-glow-color), .2), 0 0 24px rgba(var(--modal-glow-color), .15), 0 0 36px rgba(var(--modal-glow-color), .08)}}@keyframes modal-glow-medium{0%,to{box-shadow:0 0 20px rgba(var(--modal-glow-color), .6), 0 0 40px rgba(var(--modal-glow-color), .5), 0 0 60px rgba(var(--modal-glow-color), .4), 0 0 80px rgba(var(--modal-glow-color), .25)}50%{box-shadow:0 0 30px rgba(var(--modal-glow-color), .8), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .35), 0 0 150px rgba(var(--modal-glow-color), .2)}}@keyframes modal-glow-high{0%,to{box-shadow:0 0 30px rgba(var(--modal-glow-color), .7), 0 0 60px rgba(var(--modal-glow-color), .6), 0 0 90px rgba(var(--modal-glow-color), .5), 0 0 120px rgba(var(--modal-glow-color), .4)}50%{box-shadow:0 0 50px rgba(var(--modal-glow-color), .9), 0 0 100px rgba(var(--modal-glow-color), .7), 0 0 150px rgba(var(--modal-glow-color), .6), 0 0 200px rgba(var(--modal-glow-color), .45), 0 0 250px rgba(var(--modal-glow-color), .3)}}@keyframes modal-dock-glow-pulse{0%,to{opacity:.35}50%{opacity:.65}}.modal-dialog{background:var(--modal-bg);border:1px solid var(--modal-border);border-radius:var(--modal-border-radius);width:calc(100% - 2rem);max-width:480px;max-height:80vh;box-shadow:var(--modal-shadow-lg);opacity:0;outline:none;flex-direction:column;transition:height .15s ease-out,background-color .2s,border-color .2s;display:flex;position:fixed;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.modal-dialog.modal-positioned{opacity:1;transform:none}.modal-dialog.modal-positioned.modal-restoring,.modal-dialog.modal-positioned.modal-opening{opacity:unset}.modal-dialog.modal-centered{opacity:1}.modal-dialog.modal-awaiting-restore,.modal-dialog.modal-awaiting-child-open:not(.modal-opening):not(.modal-restoring){pointer-events:none;opacity:0!important}.modal-dialog.modal-dragging{opacity:.9;user-select:none;transition:none}.modal-dialog.modal-resizing{user-select:none;transition:none}.modal-dialog.modal-solid{background:var(--modal-bg)}.modal-dialog.modal-transparent{background:var(--modal-bg-transparent);opacity:.4}.modal-dialog.modal-minimizing{pointer-events:none;animation:modal-genie-minimize var(--modal-animation-duration-minimize) var(--modal-animation-easing-minimize) forwards;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-restoring{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-restore) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,100%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-opening{pointer-events:none;animation:modal-genie-restore var(--modal-animation-duration-open) ease-out both;transform-origin:var(--genie-origin-x,50%) var(--genie-origin-y,50%);will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing{pointer-events:none;animation:modal-close var(--modal-animation-duration-close) var(--modal-animation-easing-close) forwards;will-change:transform, opacity;backface-visibility:hidden}.modal-dialog.modal-closing:not(.modal-positioned){animation-name:modal-close-centered}.modal-dialog.modal-positioned.modal-minimizing,.modal-dialog.modal-positioned.modal-closing{transform:unset;opacity:unset}.modal-dialog.modal-positioned.modal-opening,.modal-dialog.modal-positioned.modal-restoring{transform:unset}.modal-dialog.modal-visible-by-animation:not(.modal-restoring):not(.modal-opening){opacity:1}.modal-dialog.modal-attention{animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-positioned,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention:not(.modal-positioned){animation:.5s cubic-bezier(.36,.07,.19,.97) both modal-shake-centered,.6s ease-out both modal-attention-glow}.modal-dialog.modal-attention.modal-glow{--modal-attention-color:var(--modal-glow-color)}.modal-dialog.modal-glow{border-color:rgb(var(--modal-glow-color));--glow-intensity-min:.4;--glow-intensity-max:.7}.modal-dialog.modal-glow:before{content:"";border-radius:inherit;box-shadow:0 0 20px rgb(var(--modal-glow-color)), 0 0 40px rgb(var(--modal-glow-color)), 0 0 60px rgb(var(--modal-glow-color));opacity:var(--glow-intensity-min);pointer-events:none;will-change:opacity;animation:2s ease-in-out infinite modal-glow-pulse;position:absolute;inset:0}.modal-dialog.modal-glow.modal-glow-minimum{border-color:rgba(var(--modal-glow-color), .4);--glow-intensity-min:0;--glow-intensity-max:0}.modal-dialog.modal-glow.modal-glow-minimum:before{display:none}.modal-dialog.modal-glow.modal-glow-low{--glow-intensity-min:.15;--glow-intensity-max:.3}.modal-dialog.modal-glow.modal-glow-high{--glow-intensity-min:.6;--glow-intensity-max:.9}.modal-dialog.modal-glow.modal-minimizing:before,.modal-dialog.modal-glow.modal-restoring:before,.modal-dialog.modal-glow.modal-opening:before,.modal-dialog.modal-glow.modal-closing:before,.modal-dialog.modal-glow.modal-glow-stabilizing:not(.modal-restoring):not(.modal-opening):before{opacity:var(--glow-intensity-min,.4);animation:none}.modal-header{padding:var(--modal-header-padding);border-bottom:1px solid var(--modal-header-border);outline:none;flex-shrink:0;align-items:center;gap:.75rem;display:flex;position:relative;overflow:visible}.modal-header.modal-header-draggable{cursor:grab;user-select:none;touch-action:none}.modal-header.modal-header-draggable:active{cursor:grabbing}.modal-header-traffic-lights{gap:var(--modal-btn-gap);z-index:100;flex-shrink:0;display:flex;position:relative}.modal-header-traffic-lights .modal-header-light{width:var(--modal-btn-size);height:var(--modal-btn-size);cursor:pointer;border:none;border-radius:50%;outline:none;flex-shrink:0;padding:0;transition:filter .15s,transform .1s;position:relative}.modal-header-traffic-lights .modal-header-light:before{content:"";opacity:0;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.modal-header-traffic-lights .modal-header-light:hover{transform:scale(1.1)}.modal-header-traffic-lights .modal-header-light:hover:before{opacity:1}.modal-header-traffic-lights .modal-header-light:focus-visible{box-shadow:0 0 0 2px #ffffff80,0 0 0 4px #0003}.modal-header-light-close{background:var(--modal-btn-close);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-close:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-close:before{content:"×";color:#4a0002cc;font-size:11px;font-weight:600;line-height:13px}.modal-header-light-minimize{background:var(--modal-btn-minimize);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-minimize:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-minimize:before{content:"−";color:#995700cc;font-size:13px;font-weight:600;line-height:12px}.modal-header-light-style{background:var(--modal-btn-style);box-shadow:inset 0 0 0 .5px #0000001f}.modal-header-light-style:hover{filter:brightness(.92)}.modal-header-traffic-lights .modal-header-light.modal-header-light-style:before{content:"◇";color:#006500cc;font-size:7px;line-height:13px}.modal-header-light.modal-header-light-disabled{opacity:.5;cursor:not-allowed;background:#ccc}.modal-header-light.modal-header-light-disabled:hover{filter:none}.modal-header-traffic-lights .modal-header-light.modal-header-light-disabled:before{opacity:.4}.modal-header-mac-center{pointer-events:none;justify-content:center;align-items:center;gap:.5rem;display:flex;position:absolute;left:0;right:0}.modal-header-mac-center .modal-header-title-group{flex:unset;pointer-events:auto}.modal-header-mac-center .modal-header-icon{pointer-events:auto}.modal-header-mac-spacer{display:none}.modal-header-title-group{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.modal-header-title{font-size:var(--modal-title-size);color:var(--modal-title-color);white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.modal-header-icon{font-size:var(--modal-icon-size);width:var(--modal-icon-size);height:var(--modal-icon-size);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.modal-header-icon-badge{font-size:var(--modal-icon-badge-size);background:var(--modal-bg);border-radius:50%;padding:2px;line-height:1;position:absolute;bottom:-6px;right:-8px;box-shadow:0 1px 3px #0003}.modal-header-btn-windows{color:var(--modal-btn-windows-color);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem;font-size:1.25rem;line-height:1;transition:background-color .15s,color .15s}.modal-header-btn-windows:hover{color:var(--modal-btn-windows-hover-color);background:var(--modal-btn-windows-hover-bg)}.modal-header-btn-windows-style{font-size:1.15rem}.modal-header-btn-windows-close{padding:0;font-size:1.5rem}.modal-header-btn-windows.modal-header-btn-windows-disabled{opacity:.35;cursor:not-allowed}.modal-header-btn-windows.modal-header-btn-windows-disabled:hover{color:var(--modal-btn-windows-color);background:0 0}.modal-body{min-height:0;padding:var(--modal-content-padding);color:var(--modal-content-color);flex-direction:column;flex:auto;display:flex;position:relative;overflow-y:auto}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:#0000000d}.modal-body::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.modal-footer{padding:var(--modal-footer-padding);border-top:1px solid var(--modal-footer-border);flex-shrink:0}.modal-footer-empty:empty{display:none}.modal-resize-handle{z-index:10;touch-action:none;position:absolute}.modal-resize-n,.modal-resize-s{height:var(--modal-resize-handle-size);cursor:ns-resize;left:8px;right:8px}.modal-resize-n{top:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-s{bottom:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-e,.modal-resize-w{width:var(--modal-resize-handle-size);cursor:ew-resize;top:8px;bottom:8px}.modal-resize-e{right:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-w{left:calc(var(--modal-resize-handle-size) / -2)}.modal-resize-ne,.modal-resize-nw,.modal-resize-se,.modal-resize-sw{width:var(--modal-resize-corner-size);height:var(--modal-resize-corner-size)}.modal-resize-ne{top:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-resize-nw{top:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-se{bottom:calc(var(--modal-resize-handle-size) / -2);right:calc(var(--modal-resize-handle-size) / -2);cursor:nwse-resize}.modal-resize-sw{bottom:calc(var(--modal-resize-handle-size) / -2);left:calc(var(--modal-resize-handle-size) / -2);cursor:nesw-resize}.modal-child-overlay{background:var(--modal-child-overlay-bg);backdrop-filter:blur(var(--modal-child-overlay-blur));border-radius:inherit;z-index:100;cursor:not-allowed;pointer-events:all;animation:.2s ease-out forwards modal-overlay-fade-in;position:absolute;inset:0}.modal-child-overlay.modal-overlay-closing{pointer-events:none;animation:.2s ease-in forwards modal-overlay-fade-out}.modal-dialog.modal-has-child .modal-header-actions{pointer-events:none;opacity:.5}.modal-dialog.modal-has-child .modal-header-draggable{cursor:not-allowed}.modal-dialog.modal-is-child.modal-positioned:not(.modal-closing):not(.modal-minimizing):not(.modal-restoring):not(.modal-visible-by-animation):not(.modal-was-restored):not(.modal-awaiting-restore):not(.modal-awaiting-child-open){animation:.25s ease-out both modal-child-appear}.modal-dialog.modal-is-child.modal-closing{animation:.2s ease-in forwards modal-child-disappear}.modal-dock-container{position:fixed}.modal-dock-container.modal-dock-empty{pointer-events:none;opacity:0}.modal-dock-container.modal-dock-free{transform:none}.modal-dock-container.modal-dock-bottom{bottom:1.25rem;left:50%;transform:translate(-50%)}.modal-dock-container.modal-dock-bottom .modal-dock{flex-direction:row;align-items:flex-end}.modal-dock-container.modal-dock-left{top:50%;left:1.25rem;transform:translateY(-50%)}.modal-dock-container.modal-dock-left .modal-dock{flex-direction:column;align-items:stretch}.modal-dock-container.modal-dock-right{top:50%;right:1.25rem;transform:translateY(-50%)}.modal-dock-container.modal-dock-right .modal-dock{flex-direction:column;align-items:stretch}.modal-dock{gap:var(--modal-dock-gap);padding:var(--modal-dock-padding);background:var(--modal-dock-bg);border:1px solid var(--modal-dock-border);border-radius:var(--modal-dock-border-radius);box-shadow:var(--modal-dock-shadow);display:flex}.modal-dock.modal-dock-free-horizontal{flex-direction:row;align-items:center}.modal-dock.modal-dock-free-vertical{flex-direction:column;align-items:stretch}.modal-dock-handle{background:var(--modal-dock-handle-bg);border:1px solid var(--modal-dock-handle-border);cursor:grab;opacity:.85;appearance:none;touch-action:none;border-radius:12px;flex:none;width:22px;height:44px;padding:0;position:relative}.modal-dock-handle:hover{opacity:1;border-color:var(--modal-dock-item-hover-border)}.modal-dock-handle.modal-dock-handle-dragging{cursor:grabbing;opacity:1}.modal-dock-handle:before{content:"";background-image:radial-gradient(var(--modal-dock-handle-dots) 1px, transparent 1px);opacity:.6;background-position:50%;background-size:7px 7px;position:absolute;inset:8px 6px}.modal-dock.modal-dock-free-vertical .modal-dock-handle{align-self:stretch;width:auto;min-width:44px;height:22px}.modal-dock.modal-dock-free-vertical .modal-dock-handle:before{inset:6px 8px}.modal-dock-item{width:var(--modal-dock-item-size);height:var(--modal-dock-item-size);background:var(--modal-dock-item-bg);border:1px solid var(--modal-dock-item-border);border-radius:var(--modal-dock-item-border-radius);box-shadow:var(--modal-dock-item-shadow,none);cursor:pointer;touch-action:none;justify-content:center;align-items:center;padding:.375rem;transition:transform .15s ease-out,opacity .15s ease-out,background .2s,border-color .2s,box-shadow .2s;display:flex;position:relative;overflow:visible}.modal-dock-item:hover{background:var(--modal-dock-item-hover-bg);border-color:var(--modal-dock-item-hover-border);box-shadow:var(--modal-dock-item-hover-shadow,0 6px 16px #00000026, 0 2px 6px #0000001a)}.modal-dock-item:hover .modal-dock-item-icon{transform:scale(1.05)}.modal-dock-item:hover .modal-dock-item-glow{opacity:.4}.modal-dock-item:active{transition-duration:.1s}.modal-dock-container.modal-dock-bottom .modal-dock-item:hover{transform:translateY(-4px)scale(1.05)}.modal-dock-container.modal-dock-bottom .modal-dock-item:active{transform:translateY(-2px)scale(1.02)}.modal-dock-container.modal-dock-left .modal-dock-item:hover{transform:translate(4px)scale(1.05)}.modal-dock-container.modal-dock-left .modal-dock-item:active{transform:translate(2px)scale(1.02)}.modal-dock-container.modal-dock-right .modal-dock-item:hover{transform:translate(-4px)scale(1.05)}.modal-dock-container.modal-dock-right .modal-dock-item:active{transform:translate(-2px)scale(1.02)}.modal-dock-item-icon{filter:drop-shadow(0 2px 4px #00000026);justify-content:center;align-items:center;font-size:1.25rem;line-height:1;transition:transform .2s;display:inline-flex;position:relative}.modal-dock-item-icon-placeholder{color:var(--modal-dock-label-color);font-size:1.25rem;font-weight:600}.modal-dock-item-glow{opacity:0;pointer-events:none;mix-blend-mode:soft-light;background:radial-gradient(circle,currentColor,#0000 70%);transition:opacity .3s;position:absolute;inset:0}.modal-dock-item-label{font-size:var(--modal-dock-label-size);color:var(--modal-dock-label-color);white-space:nowrap;text-overflow:ellipsis;max-width:80px;font-weight:500;overflow:hidden}.modal-dock-item.modal-dock-item-label-beside{flex-direction:row;gap:.5rem;width:auto;padding:.375rem .75rem .375rem .5rem}.modal-dock-item.modal-dock-item-label-below{flex-direction:column;gap:.25rem;width:auto;min-width:52px;height:auto;padding:.375rem .5rem}.modal-dock-item.modal-dock-item-label-below .modal-dock-item-label{max-width:60px;font-size:.55rem}.modal-dock-item.modal-dock-item-has-glow{--modal-dock-glow-color:20, 184, 166;border-color:rgba(var(--modal-dock-glow-color), .6);box-shadow:0 0 10px rgba(var(--modal-dock-glow-color), .5), 0 0 20px rgba(var(--modal-dock-glow-color), .3)}.modal-dock-item.modal-dock-item-has-glow .modal-dock-item-glow{background:radial-gradient(circle at center, rgb(var(--modal-dock-glow-color)), transparent 60%);animation:2.5s cubic-bezier(.4,0,.6,1) infinite modal-dock-glow-pulse}.modal-dock-item.modal-dock-item-has-glow:hover .modal-dock-item-glow{opacity:.8;animation:none}.modal-dock-child-indicator{color:#141822;background:#ffd54a;border:2px solid #00000040;border-radius:6px;justify-content:center;align-items:center;width:18px;height:18px;font-size:.7rem;display:inline-flex;position:absolute;top:-4px;right:-4px;box-shadow:0 2px 6px #00000059}.modal-dock-item.modal-dock-item-has-child{border-color:var(--modal-dock-item-hover-border)}.modal-dock-item.modal-dock-item-has-child:hover .modal-dock-child-indicator{transform:scale(1.2)}.wizard-container{flex-direction:column;height:100%;display:flex;overflow:hidden}.wizard-progress{padding:var(--space-4);padding-bottom:var(--space-2);flex-shrink:0}.wizard-progress-bar{height:3px;margin-bottom:var(--space-3);background:#ffffff1a;border-radius:2px;overflow:hidden}.wizard-progress-fill{background:linear-gradient(90deg, var(--color-primary,#00d9ff), var(--color-primary-light,#7dd3fc));border-radius:2px;height:100%;transition:width .3s}.wizard-steps{justify-content:space-between;gap:var(--space-2);display:flex}.wizard-step-dot{align-items:center;gap:var(--space-1);padding:var(--space-1);cursor:default;opacity:.4;background:0 0;border:none;flex-direction:column;transition:opacity .2s;display:flex}.wizard-step-dot:before{content:"";background:#ffffff4d;border:2px solid #0000;border-radius:50%;width:10px;height:10px;transition:all .2s}.wizard-step-dot.active{opacity:1}.wizard-step-dot.active:before{background:var(--color-primary,#00d9ff);border-color:var(--color-primary,#00d9ff);box-shadow:0 0 10px var(--color-primary,#00d9ff)}.wizard-step-dot.completed{opacity:.8}.wizard-step-dot.completed:before{background:var(--color-primary,#00d9ff)}.wizard-step-dot.clickable{cursor:pointer}.wizard-step-dot.clickable:hover{opacity:1}.wizard-step-title{color:var(--color-text-muted,#a1a1aa);white-space:nowrap;font-size:11px}.wizard-step-dot.active .wizard-step-title{color:var(--color-text,#fff)}.wizard-content{padding:var(--space-4);flex:1;overflow-y:auto}.wizard-navigation{justify-content:space-between;gap:var(--space-3);padding:var(--space-4);border-top:1px solid #ffffff1a;flex-shrink:0;display:flex}.wizard-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md,8px);cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.wizard-btn:disabled{opacity:.4;cursor:not-allowed}.wizard-btn-back{color:var(--color-text-muted,#a1a1aa);background:0 0;border:1px solid #fff3}.wizard-btn-back:not(:disabled):hover{color:var(--color-text,#fff);border-color:#fff6}.wizard-btn-next{background:linear-gradient(135deg, var(--color-primary,#00d9ff), var(--color-primary-dark,#0891b2));color:#000;border:none;min-width:100px}.wizard-btn-next:not(:disabled):hover{filter:brightness(1.1);box-shadow:0 4px 15px #00d9ff4d}.wizard-step-wrapper{height:100%}.wizard-fade-slide-left{animation:.3s forwards fadeSlideFromRight}.wizard-fade-slide-right{animation:.3s forwards fadeSlideFromLeft}@keyframes fadeSlideFromRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeSlideFromLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.wizard-slide-through-enter-left{animation:.3s forwards slideFromLeft}.wizard-slide-through-enter-right{animation:.3s forwards slideFromRight}@keyframes slideFromLeft{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slideFromRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.wizard-modal-slide-forward,.wizard-modal-slide-backward{will-change:transform, opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.wizard-modal-slide-forward{animation:.7s ease-in-out forwards wizardModalSlideForward!important}.wizard-modal-slide-backward{animation:.7s ease-in-out forwards wizardModalSlideBackward!important}@keyframes wizardModalSlideForward{0%{opacity:1;transform:translate(0,0)}49.9%{opacity:0;transform:translate(110%)}50%{opacity:0;transform:translate(-110%)}to{opacity:1;transform:translate(0,0)}}@keyframes wizardModalSlideBackward{0%{opacity:1;transform:translate(0,0)}49.9%{opacity:0;transform:translate(-110%)}50%{opacity:0;transform:translate(110%)}to{opacity:1;transform:translate(0,0)}}[data-theme=light] .wizard-progress-bar{background:#0000001a}[data-theme=light] .wizard-step-dot:before{background:#0003}[data-theme=light] .wizard-step-title{color:#64748b}[data-theme=light] .wizard-step-dot.active .wizard-step-title{color:#0f172a}[data-theme=light] .wizard-navigation{border-top-color:#0000001a}[data-theme=light] .wizard-btn-back{color:#64748b;border-color:#0003}[data-theme=light] .wizard-btn-back:not(:disabled):hover{color:#0f172a;border-color:#0006}[data-theme=light] .wizard-btn-next{color:#fff}.modal-backdrop{pointer-events:none;-webkit-backdrop-filter:blur();background:0 0;transition:background .2s,-webkit-backdrop-filter .2s,backdrop-filter .2s;position:fixed;inset:0}.modal-backdrop.backdrop-visible{background:var(--modal-backdrop-bg,#00000080);-webkit-backdrop-filter:blur(var(--modal-backdrop-blur,4px))}.modal-backdrop.backdrop-blocking{pointer-events:all}:root{--modal-bg:#1e1e2e;--modal-bg-transparent:#1e1e2ee6;--modal-border:#ffffff1a;--modal-title-color:#f0f0f0;--modal-content-color:#d0d0d0;--modal-header-border:#ffffff14;--modal-footer-border:#ffffff14;--modal-shadow:0 0 0 1px #0000000a, 0 4px 6px -1px #00000014, 0 10px 20px -5px #0000001a, 0 25px 50px -12px #00000026;--modal-shadow-lg:0 0 0 1px #00000008, 0 8px 16px -4px #0000001a, 0 20px 40px -8px #0000001f, 0 40px 80px -16px #00000014;--modal-dock-bg:linear-gradient(to bottom, #2a2a3e, #1e1e2e);--modal-dock-border:#ffffff1a;--modal-dock-shadow:0 -1px 0 0 #fffc, 0 4px 12px -2px #0000001f, 0 8px 24px -4px #00000014;--modal-dock-label-color:#e0e0e0;--modal-dock-item-bg:linear-gradient(145deg, #ffffff0d, transparent);--modal-dock-item-border:#ffffff14;--modal-dock-item-shadow:0 1px 3px #0000000f, inset 0 1px 0 #fffc;--modal-dock-item-hover-bg:linear-gradient(145deg, #ffffff1a, #ffffff0d);--modal-dock-item-hover-border:#fff3;--modal-dock-item-hover-shadow:0 4px 12px #0000001a, 0 2px 4px #0000000f, inset 0 1px 0 #fff;--modal-dock-handle-bg:linear-gradient(145deg, #ffffff0d, transparent);--modal-dock-handle-border:#ffffff14;--modal-dock-handle-dots:#ffffff4d;--modal-btn-windows-color:#a0a0a0;--modal-btn-windows-hover-bg:#ffffff1a;--modal-btn-windows-hover-color:#f0f0f0;--modal-attention-color:251, 146, 60;--modal-backdrop-bg:#0f172a33;--modal-backdrop-blur:4px;--modal-child-overlay-bg:#fff9;--modal-child-overlay-blur:2px}
package/dist/svelte.d.ts CHANGED
@@ -39,7 +39,7 @@ export { SvelteComponent as WizardStep }
39
39
 
40
40
  export { triggerAttention }
41
41
 
42
- export declare function useModal(id: ModalId_2): UseModalReturn;
42
+ export declare function useModal(idOrGetter: ModalId_2 | (() => ModalId_2)): UseModalReturn;
43
43
 
44
44
  declare interface UseModalReturn {
45
45
 
package/dist/svelte.js CHANGED
@@ -1 +1 @@
1
- var e=e=>{throw TypeError(e)},t=(t,i,n)=>(((t,i)=>{i.has(t)||e("Cannot read from private field")})(t,i),n?n.call(t):i.get(t)),i=(t,i,n)=>i.has(t)?e("Cannot add the same private member more than once"):i instanceof WeakSet?i.add(t):i.set(t,n);import"svelte/internal/disclose-version";import*as n from"svelte/internal/client";import{getContext as r,onMount as o,setContext as a,onDestroy as s,untrack as l}from"svelte";import{s as d,g as c,a as p,b as g,o as u,r as f,m,c as v,d as h,i as _,e as b,f as w,h as S,t as y,j as k,C as x,R as C,k as z,M as E,l as I,D as M,n as T,p as P,u as L,q as $,v as O,w as A,x as W,y as D,z as H,A as R,B,E as F,F as j,G as q,H as G,I as N,J as K,K as X,L as Y,N as Z,O as J,P as U}from"./backdrop.js";import{c as V}from"./resolution.js";import{fade as Q,scale as ee,fly as te}from"svelte/transition";import{cubicOut as ie,backOut as ne}from"svelte/easing";let re=n.state(0),oe=n.state(0);function ae(){return n.get(re)}function se(){return n.get(oe)}d(()=>{n.set(re,c(),!0)}),p(()=>{n.set(oe,g(),!0)});const le=Symbol("modal-render-icon"),de=Symbol("modal-id"),ce=Symbol("modal-provider-config");function pe(e,t){if(!_(e))throw new Error(`Cannot call ${t}() on unregistered modal "${String(e)}". Ensure the Modal component is rendered.`)}function ge(e){return{shake:()=>{pe(e,"shake"),y(e)},bringToFront:()=>{pe(e,"bringToFront"),S(e)},isOpen:()=>w(e),isMinimized:()=>{ae();const t=b(e);return(null==t?void 0:t.isMinimized)??!1},isRegistered:()=>_(e),open:t=>{pe(e,"open"),h(e,t)},close:()=>{pe(e,"close"),v(e)},minimize:()=>{pe(e,"minimize"),m(e)},restore:()=>{pe(e,"restore"),f(e)},openChild:(t,i)=>{pe(e,"openChild"),u(t,e,i??document.body)}}}const ue="modal-portal";function fe(e){const t=r(de),i=e??t;if(!i)throw new Error("useModalZIndex: No modal ID provided and no modal context found. Either pass a modal ID or use this hook inside a Modal component.");return{get zIndex(){const e=b(i);return((null==e?void 0:e.zIndex)??k().zIndex.base)+1},get portalTarget(){return k().portalTarget}}}var me=n.from_html('<div style="display: contents;"><!></div>');function ve(e,t){n.push(t,!0);let i=n.prop(t,"target",3,"body"),r=null,a=null;const{mount:s}={mount:function(e,t=null){const i=function(e){if(typeof window>"u")return null;if(e instanceof HTMLElement)return e;if("string"==typeof e){const t=document.querySelector(e);if(t)return t;if(e.startsWith("#")){const t=e.slice(1),i=document.createElement("div");return i.id=t,document.body.appendChild(i),i}}let t=document.getElementById(ue);return t||(t=document.createElement("div"),t.id=ue,document.body.appendChild(t)),t}(t);return i?(i.appendChild(e),()=>{e.parentNode===i&&i.removeChild(e),i.id!==ue&&0===i.children.length&&i.parentNode&&i.parentNode.removeChild(i)}):()=>{}}};o(()=>(r&&(a=s(r,i())),()=>{null==a||a()}));var l=me(),d=n.child(l);n.snippet(d,()=>t.children),n.reset(l),n.bind_this(l,e=>r=e,()=>r),n.append(e,l),n.pop()}var he=n.from_html('<button type="button" aria-label="Minimize"></button>'),_e=n.from_html('<button type="button" aria-label="Toggle style"></button>'),be=n.from_html("<div><!></div>"),we=n.from_html("<div></div>"),Se=n.from_html("<div><!></div>"),ye=n.from_html("<h2> </h2>"),ke=n.from_html("<h2> </h2>"),xe=n.from_html('<div><button type="button" aria-label="Close"></button> <!> <!></div> <div><!> <div><!></div></div> <div></div>',1),Ce=n.from_html("<div><!></div>"),ze=n.from_html("<div></div>"),Ee=n.from_html("<div><!></div>"),Ie=n.from_html("<h2> </h2>"),Me=n.from_html("<h2> </h2>"),Te=n.from_html('<button type="button" aria-label="Toggle style">&#9671;</button>'),Pe=n.from_html('<button type="button" aria-label="Minimize">&#8211;</button>'),Le=n.from_html('<div><!> <!></div> <div><!> <!> <button type="button" aria-label="Close">&times;</button></div>',1),$e=n.from_html("<header><!></header>");n.delegate(["pointerdown","click"]);var Oe=n.from_html('<div role="separator" tabindex="0"></div>'),Ae=n.from_html('<div role="group" aria-label="Resize handles"></div>');function We(e,t){return t&&e.appendChild(t),{update(t){e.innerHTML="",t&&e.appendChild(t)},destroy(){e.innerHTML=""}}}n.delegate(["pointerdown"]);var De=n.from_html('<span class="sr-only"> </span>'),He=n.from_html("<div><!></div>"),Re=n.from_html("<div></div>"),Be=n.from_html("<div><!> <!> <div><!></div> <!> <!> <!></div>");function Fe(e,t){n.push(t,!0);let i=n.prop(t,"maxWidth",3,"600px"),s=n.prop(t,"autoOpen",3,!1),l=n.prop(t,"closeOnEscape",3,!0),d=n.prop(t,"skipRegistration",3,!1);a(de,()=>t.id);const c=function(e={}){const{getModalConfig:t,getProviderConfig:i}=e;let n;if(void 0===i)try{n=r(ce)}catch{n=void 0}function o(){return void 0!==i?i():null==n?void 0:n()}const a=V({getModalConfig:t??(()=>{}),getProviderConfig:o});function s(e){return(...t)=>(se(),e(...t))}return{getEffectiveConfig:s(a.getEffectiveConfig),isFeatureEnabled:s(a.isFeatureEnabled),getAppearance:s(a.getAppearance),getAnimation:s(a.getAnimation),getPositioning:s(a.getPositioning),getParentChild:s(a.getParentChild),getProviderConfig:o}}({getModalConfig:()=>t.config,getProviderConfig:()=>t.providerConfig}),p=n.derived(()=>c.getEffectiveConfig().portalTarget);let g=n.state(null),u=n.state(null),f=n.state(null);o(()=>{n.set(g,new E({id:t.id,title:t.title,icon:t.icon,config:t.config,providerConfig:t.providerConfig,maxWidth:i(),preferredHeight:t.preferredHeight,glow:t.glow,closeOnEscape:l(),autoOpen:s(),openSourcePosition:t.openSourcePosition,onClose:t.onClose,skipRegistration:d(),configHelper:c}),!0);const e=n.get(g).subscribe(e=>{n.set(u,e,!0)});return n.set(u,n.get(g).getState(),!0),()=>{var t;e(),null==(t=n.get(g))||t.destroy(),n.set(g,null)}}),n.user_effect(()=>{n.get(f)&&n.get(g)&&n.get(g).mount(n.get(f))}),n.user_effect(()=>{n.get(g)&&void 0!==t.openSourcePosition&&n.get(g).setOpenSourcePosition(t.openSourcePosition)}),n.user_effect(()=>{n.get(g)&&n.get(g).updateGlow(t.glow)});const m=n.derived(()=>I(t.id)),v=n.derived(()=>`modal-title-${n.get(m)}`),h=n.derived(()=>t.description?`modal-desc-${n.get(m)}`:void 0),_=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.draggable)??!1}),b=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.resizable)??!1}),w=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.minimizable)??!1}),y=n.derived(()=>(se(),!c.isFeatureEnabled("dock"))),k=n.derived(()=>(se(),c.isFeatureEnabled("transparency"))),T=n.derived(()=>(se(),c.getAppearance("headerLayout"))),P=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.isVisible)??!1}),L=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.showOverlay)??!1}),$=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.overlayClosing)??!1}),O=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.isTransparent)??!1}),A=n.derived(()=>{const e=n.get(u);return e?Object.entries(e.style).map(([e,t])=>`${e}: ${t};`).join(" "):""});function W(e){var t;null==(t=n.get(g))||t.startDrag(e)}function D(e){var t;null==(t=n.get(g))||t.handlePointerMove(e)}function H(e){var t;null==(t=n.get(g))||t.handlePointerUp(e)}function R(e){var t;null==(t=n.get(g))||t.handleKeyDown(e)}function B(){var e;null==(e=n.get(g))||e.minimize()}function F(){var e;null==(e=n.get(g))||e.close()}function j(){var e;null==(e=n.get(g))||e.toggleTransparency()}function q(e,t){var i;null==(i=n.get(g))||i.startResize(e,t)}var G=n.comment(),N=n.first_child(G),K=e=>{ve(e,{get target(){return n.get(p)},children:(e,i)=>{var o=Be(),a=()=>S(t.id);n.attribute_effect(o,e=>({class:e,[M.modalId]:n.get(m),"data-state":n.get(u).dataState,"data-animation-phase":n.get(u).dataAnimationPhase,style:n.get(A),role:"dialog","aria-modal":"true","aria-labelledby":n.get(v),"aria-describedby":n.get(h),tabindex:"-1",onkeydown:R,onpointermove:D,onpointerup:H,onpointerdowncapture:a}),[()=>n.get(u).cssClasses.join(" ")]);var s=n.child(o),l=e=>{var i=De(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_attribute(i,"id",n.get(h)),n.set_text(r,t.description)}),n.append(e,i)};n.if(s,e=>{t.description&&e(l)});var d=n.sibling(s,2);{let e=n.derived(()=>n.get(_)?W:void 0);!function(e,t){n.push(t,!0);let i=n.prop(t,"isTransparent",3,!1),o=n.prop(t,"headerLayout",3,"macos"),a=n.prop(t,"minimizable",3,!0),s=n.prop(t,"minimizeDisabled",3,!1),l=n.prop(t,"transparencyEnabled",3,!0);function d(e){return t.iconElement&&e.appendChild(t.iconElement),{destroy(){t.iconElement&&e.contains(t.iconElement)&&e.removeChild(t.iconElement)}}}const c=r(le),p=n.derived(()=>null==c?void 0:c()),g=n.derived(()=>"macos"===o());var u=$e();let f;u.__pointerdown=function(e){var i;e.target.closest("button")||null==(i=t.onStartDrag)||i.call(t,e)};var m=n.child(u),v=e=>{var i=xe(),r=n.first_child(i),o=n.child(r);o.__click=function(...e){var i;null==(i=t.onClose)||i.apply(this,e)};var c=n.sibling(o,2),g=e=>{var i=he();let r;i.__click=function(...e){var i;null==(i=s()?void 0:t.onMinimize)||i.apply(this,e)},n.template_effect(()=>{r=n.set_class(i,1,`${x.headerLight} ${x.headerLightMinimize}`,null,r,{"modal-header-light-disabled":s()}),i.disabled=s(),n.set_attribute(i,"title",s()?"Enable dock to minimize":void 0)}),n.append(e,i)};n.if(c,e=>{a()&&e(g)});var u=n.sibling(c,2),f=e=>{var i=_e();i.__click=function(...e){var i;null==(i=t.onToggleStyle)||i.apply(this,e)},n.template_effect(()=>n.set_class(i,1,`${x.headerLight} ${x.headerLightStyle}`)),n.append(e,i)};n.if(u,e=>{l()&&e(f)}),n.reset(r);var m=n.sibling(r,2),v=n.child(m),h=e=>{var i=be(),r=n.child(i);n.snippet(r,()=>t.customIcon),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(x.headerIcon))),n.append(e,i)},_=e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var t=we();n.action(t,e=>null==d?void 0:d(e)),n.template_effect(()=>n.set_class(t,1,n.clsx(x.headerIcon))),n.append(e,t)},a=e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var i=Se(),r=n.child(i);n.snippet(r,()=>n.get(p),()=>t.icon),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(x.headerIcon))),n.append(e,i)};n.if(r,e=>{t.icon&&n.get(p)&&e(o)},!0),n.append(e,i)};n.if(r,e=>{t.iconElement?e(o):e(a,!1)},!0),n.append(e,i)};n.if(v,e=>{t.customIcon?e(h):e(_,!1)});var b=n.sibling(v,2),w=n.child(b),S=e=>{var i=ye(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_attribute(i,"id",t.titleId),n.set_class(i,1,n.clsx(x.headerTitle)),n.set_text(r,t.title)}),n.append(e,i)},y=e=>{var i=ke(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_class(i,1,n.clsx(x.headerTitle)),n.set_text(r,t.title)}),n.append(e,i)};n.if(w,e=>{t.titleId?e(S):e(y,!1)}),n.reset(b),n.reset(m);var k=n.sibling(m,2);n.template_effect(()=>{n.set_class(r,1,n.clsx(x.headerTrafficLights)),n.set_class(o,1,`${x.headerLight} ${x.headerLightClose}`),n.set_class(m,1,n.clsx(x.headerMacCenter)),n.set_class(b,1,n.clsx(x.headerTitleGroup)),n.set_class(k,1,n.clsx(x.headerMacSpacer))}),n.append(e,i)},h=e=>{var i=Le(),r=n.first_child(i),o=n.child(r),c=e=>{var i=Ce(),r=n.child(i);n.snippet(r,()=>t.customIcon),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(x.headerIcon))),n.append(e,i)},g=e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var t=ze();n.action(t,e=>null==d?void 0:d(e)),n.template_effect(()=>n.set_class(t,1,n.clsx(x.headerIcon))),n.append(e,t)},a=e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var i=Ee(),r=n.child(i);n.snippet(r,()=>n.get(p),()=>t.icon),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(x.headerIcon))),n.append(e,i)};n.if(r,e=>{t.icon&&n.get(p)&&e(o)},!0),n.append(e,i)};n.if(r,e=>{t.iconElement?e(o):e(a,!1)},!0),n.append(e,i)};n.if(o,e=>{t.customIcon?e(c):e(g,!1)});var u=n.sibling(o,2),f=e=>{var i=Ie(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_attribute(i,"id",t.titleId),n.set_class(i,1,n.clsx(x.headerTitle)),n.set_text(r,t.title)}),n.append(e,i)},m=e=>{var i=Me(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_class(i,1,n.clsx(x.headerTitle)),n.set_text(r,t.title)}),n.append(e,i)};n.if(u,e=>{t.titleId?e(f):e(m,!1)}),n.reset(r);var v=n.sibling(r,2),h=n.child(v),_=e=>{var i=Te();i.__click=function(...e){var i;null==(i=t.onToggleStyle)||i.apply(this,e)},n.template_effect(()=>n.set_class(i,1,`${x.headerBtnWindows} ${x.headerBtnWindowsStyle}`)),n.append(e,i)};n.if(h,e=>{l()&&e(_)});var b=n.sibling(h,2),w=e=>{var i=Pe();let r;i.__click=function(...e){var i;null==(i=s()?void 0:t.onMinimize)||i.apply(this,e)},n.template_effect(()=>{r=n.set_class(i,1,n.clsx(x.headerBtnWindows),null,r,{"modal-header-btn-windows-disabled":s()}),i.disabled=s(),n.set_attribute(i,"title",s()?"Enable dock to minimize":void 0)}),n.append(e,i)};n.if(b,e=>{a()&&e(w)});var S=n.sibling(b,2);S.__click=function(...e){var i;null==(i=t.onClose)||i.apply(this,e)},n.reset(v),n.template_effect(()=>{n.set_class(r,1,n.clsx(x.headerTitleGroup)),n.set_class(v,1,n.clsx(x.headerActions)),n.set_class(S,1,`${x.headerBtnWindows} ${x.headerBtnWindowsClose}`)}),n.append(e,i)};n.if(m,e=>{n.get(g)?e(v):e(h,!1)}),n.reset(u),n.template_effect(()=>f=n.set_class(u,1,n.clsx(x.header),null,f,{"modal-header-draggable":!!t.onStartDrag,transparent:i()})),n.append(e,u),n.pop()}(d,{get title(){return t.title},get customIcon(){return t.customIcon},get icon(){return t.icon},get iconElement(){return t.iconElement},get isTransparent(){return n.get(O)},get titleId(){return n.get(v)},get headerLayout(){return n.get(T)},get onStartDrag(){return n.get(e)},onToggleStyle:j,onMinimize:B,onClose:F,get minimizable(){return n.get(w)},get minimizeDisabled(){return n.get(y)},get transparencyEnabled(){return n.get(k)}})}var c=n.sibling(d,2),p=n.child(c);n.snippet(p,()=>t.children??n.noop),n.reset(c),n.action(c,(e,t)=>null==We?void 0:We(e,t),()=>t.bodyElement);var g=n.sibling(c,2),E=e=>{var i=He(),r=n.child(i),o=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>t.footer),n.append(e,i)};n.if(r,e=>{t.footer&&e(o)}),n.reset(i),n.action(i,(e,t)=>null==We?void 0:We(e,t),()=>t.footerElement),n.template_effect(()=>n.set_class(i,1,n.clsx(x.footer))),n.append(e,i)};n.if(g,e=>{(t.footer||t.footerElement)&&e(E)});var I=n.sibling(g,2);{let e=n.derived(()=>n.get(b)&&!n.get(u).hasChild?q:void 0);!function(e,t){n.push(t,!0);var i=n.comment(),r=n.first_child(i),o=e=>{var i=Ae();n.each(i,21,()=>C,n.index,(e,i)=>{var r=Oe();r.__pointerdown=e=>function(e,i){var n;null==(n=t.onStartResize)||n.call(t,e,i)}(e,n.get(i)),n.template_effect(()=>{n.set_class(r,1,`${x.resizeHandle} ${x.resizePrefix}${n.get(i)??""}`),n.set_attribute(r,"aria-label",z[n.get(i)]),n.set_attribute(r,"aria-orientation","n"===n.get(i)||"s"===n.get(i)?"horizontal":"vertical")}),n.append(e,r)}),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(x.resizeHandles))),n.append(e,i)};n.if(r,e=>{t.onStartResize&&e(o)}),n.append(e,i),n.pop()}(I,{get onStartResize(){return n.get(e)}})}var P=n.sibling(I,2),G=e=>{var t=Re();let i;n.template_effect(()=>i=n.set_class(t,1,n.clsx(x.childOverlay),null,i,{"modal-overlay-closing":n.get($)})),n.append(e,t)};n.if(P,e=>{n.get(L)&&e(G)}),n.reset(o),n.bind_this(o,e=>n.set(f,e),()=>n.get(f)),n.template_effect(()=>n.set_class(c,1,n.clsx(x.body))),n.append(e,o)},$$slots:{default:!0}})};n.if(N,e=>{n.get(P)&&n.get(u)&&e(K)}),n.append(e,G),n.pop()}function je(e,t){n.push(t,!0);let i=n.prop(t,"maxWidth",3,"600px"),r=n.prop(t,"autoOpen",3,!1),a=n.prop(t,"closeOnEscape",3,!0),l=n.state(!1);o(()=>{T(P({id:t.id,title:t.title,icon:t.icon,autoOpen:r(),glow:t.glow})),n.set(l,!0)}),s(()=>{L(t.id)});const d=n.derived(()=>{if(!n.get(l))return!1;ae();const e=b(t.id);return!!e&&(e.isOpen||e.isMinimized||$(t.id)||O(t.id)||A(t.id))});var c=n.comment(),p=n.first_child(c),g=e=>{Fe(e,{get id(){return t.id},get title(){return t.title},get icon(){return t.icon},get customIcon(){return t.customIcon},get iconElement(){return t.iconElement},get maxWidth(){return i()},get preferredHeight(){return t.preferredHeight},get autoOpen(){return r()},get openSourcePosition(){return t.openSourcePosition},get glow(){return t.glow},get config(){return t.config},get closeOnEscape(){return a()},get onClose(){return t.onClose},get children(){return t.children},get footer(){return t.footer},get bodyElement(){return t.bodyElement},get footerElement(){return t.footerElement},skipRegistration:!0})};n.if(p,e=>{n.get(d)&&e(g)}),n.append(e,c),n.pop()}var qe=n.from_html('<div aria-hidden="true"></div>');function Ge(e,t){n.push(t,!0);const i=n.derived(()=>(se(),k())),r=n.derived(()=>(se(),W())),o=n.derived(()=>(se(),D())),a=n.derived(()=>(ae(),H())),s=n.derived(()=>R("MODAL")-1);ve(e,{get target(){return n.get(i).portalTarget},children:(e,t)=>{var i=n.comment(),l=n.first_child(i),d=e=>{var t=qe();let i,o;n.template_effect(()=>{i=n.set_class(t,1,n.clsx(x.backdrop),null,i,{"backdrop-visible":n.get(r).visible,"backdrop-blocking":n.get(r).blockClicks}),o=n.set_style(t,"",o,{"z-index":n.get(s)})}),n.transition(3,t,()=>Q,()=>({duration:200})),n.append(e,t)};n.if(l,e=>{n.get(a)&&n.get(o)&&e(d)}),n.append(e,i)},$$slots:{default:!0}}),n.pop()}var Ne=n.from_html("<!> <!>",1);function Ke(e,t){n.push(t,!0),l(()=>{t.config&&B(t.config)}),a(le,()=>t.renderIcon),a(ce,()=>t.config),n.user_effect(()=>(l(()=>{F(),j()}),()=>{q(),G()})),n.user_effect(()=>{var e;if(typeof document>"u")return;const i=k(),n=(null==(e=t.config)?void 0:e.portalTarget)??i.portalTarget;if("string"==typeof n&&!document.querySelector(n)){const e=document.createElement("div");return e.id=n.replace("#",""),document.body.appendChild(e),()=>{e.remove()}}});var i=Ne(),r=n.first_child(i);Ge(r,{});var o=n.sibling(r,2);n.snippet(o,()=>t.children??n.noop),n.append(e,i),n.pop()}var Xe,Ye,Ze,Je,Ue,Ve,Qe=n.from_html('<button type="button" aria-label="Drag dock"></button>'),et=n.from_html("<span> </span>"),tt=n.from_html("<span> </span>"),it=n.from_html("<span>+</span>"),nt=n.from_html("<span><!></span>"),rt=n.from_html("<button><span><!></span> <!> <span></span> <!></button>"),ot=n.from_html('<div data-dock-container="true"><div><!> <!></div></div>');function at(e,t){n.push(t,!0);const i=r(le),o=n.derived(()=>t.renderIcon??(null==i?void 0:i())),a=Z(),s=n.derived(()=>(se(),k())),l=n.derived(()=>R("DOCK")),d=n.derived(()=>n.get(s).dock.position),c=n.derived(()=>n.get(s).dock.labelMode);let p=n.state("horizontal"),g=n.state(n.proxy({x:100,y:100})),u=n.state(null),m=n.state(!1),v={x:0,y:0},h=null;const _=n.derived(()=>(ae(),N())),b=n.derived(()=>{switch(n.get(d)){case"left":return{x:-20,duration:250,easing:ie};case"right":return{x:20,duration:250,easing:ie};default:return{y:20,duration:250,easing:ie}}});function w(e){var t;"free"===n.get(d)&&(n.set(m,!0),h=e.pointerId,v={x:e.clientX-n.get(g).x,y:e.clientY-n.get(g).y},null==(t=e.currentTarget)||t.setPointerCapture(e.pointerId),window.addEventListener("pointermove",S),window.addEventListener("pointerup",y),window.addEventListener("pointercancel",y))}function S(e){if(e.pointerId!==h||!n.get(u))return;const t=n.get(u).getBoundingClientRect();n.set(g,J(e.clientX,e.clientY,v,t.width,t.height),!0)}function y(e){e.pointerId===h&&(n.set(m,!1),h=null,window.removeEventListener("pointermove",S),window.removeEventListener("pointerup",y),window.removeEventListener("pointercancel",y))}const{addListener:C}=function(){function e(e,t,i){return typeof window>"u"?()=>{}:(window.addEventListener(e,t,i),()=>{window.removeEventListener(e,t,i)})}return{addListener:e,addListenerEffect:function(t,i,r){n.user_effect(()=>typeof window>"u"?void 0:e(t,i,r))}}}();function z(){if("free"!==n.get(d)||!n.get(u))return;const e=n.get(u).getBoundingClientRect(),t=K(n.get(g),e.width,e.height);(t.x!==n.get(g).x||t.y!==n.get(g).y)&&n.set(g,t,!0)}n.user_effect(()=>{typeof window>"u"||C("resize",z)});var E={setDockOrientation:function(e){n.set(p,e,!0)},setDockFreePosition:function(e){n.set(g,e,!0)},getDockState:function(){return{dockPosition:n.get(d),dockOrientation:n.get(p),dockFreePosition:n.get(g),dockLabelMode:n.get(c)}}},T=n.comment(),P=n.first_child(T),L=e=>{ve(e,{get target(){return n.get(s).portalTarget},children:(e,t)=>{var i=ot();let r,s;var v=n.child(i);let h;var S=n.child(v),y=e=>{var t=Qe();let i;t.__pointerdown=w,n.template_effect(()=>i=n.set_class(t,1,n.clsx(x.dockHandle),null,i,{"modal-dock-handle-dragging":n.get(m)})),n.append(e,t)};n.if(S,e=>{"free"===n.get(d)&&e(y)});var k=n.sibling(S,2);n.each(k,19,()=>n.get(_),e=>e.id,(e,t,i)=>{const r=n.derived(()=>n.get(t).lastChildId?a.get(n.get(t).lastChildId):null);var s=rt(),l=e=>{X(n.get(t).id)?Y(e.currentTarget):f(n.get(t).id)};n.attribute_effect(s,e=>({class:x.dockItem,...e,"aria-label":`Restore ${n.get(t).title??""}`,onclick:l,style:n.get(t).glow?`--modal-dock-glow-color: ${n.get(t).glow.color};`:"",[n.CLASS]:{"modal-dock-item-has-glow":!!n.get(t).glow,"modal-dock-item-has-child":!!n.get(t).lastChildId,"modal-dock-item-label-beside":"beside"===n.get(c),"modal-dock-item-label-below":"below"===n.get(c)}}),[()=>({[M.modalId]:I(n.get(t).id)})]);var d=n.child(s),p=n.child(d),g=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>n.get(o),()=>n.get(t).icon),n.append(e,i)},u=e=>{var i=et(),r=n.child(i,!0);n.reset(i),n.template_effect(e=>{n.set_class(i,1,n.clsx(x.dockItemIconPlaceholder)),n.set_text(r,e)},[()=>n.get(t).title.charAt(0)]),n.append(e,i)};n.if(p,e=>{n.get(t).icon&&n.get(o)?e(g):e(u,!1)}),n.reset(d);var m=n.sibling(d,2),v=e=>{var i=tt(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_class(i,1,n.clsx(x.dockItemLabel)),n.set_text(r,n.get(t).title)}),n.append(e,i)};n.if(m,e=>{"hidden"!==n.get(c)&&e(v)});var h=n.sibling(m,2),_=n.sibling(h,2),b=e=>{var t=nt(),i=n.child(t),a=e=>{var t=n.comment(),i=n.first_child(t);n.snippet(i,()=>n.get(o),()=>n.get(r).icon),n.append(e,t)},s=e=>{var t=it();n.append(e,t)};n.if(i,e=>{n.get(r).icon&&n.get(o)?e(a):e(s,!1)}),n.reset(t),n.template_effect(()=>n.set_class(t,1,n.clsx(x.dockChildIndicator))),n.append(e,t)};n.if(_,e=>{n.get(t).lastChildId&&n.get(r)&&e(b)}),n.reset(s),n.template_effect(()=>{n.set_class(d,1,n.clsx(x.dockItemIcon)),n.set_class(h,1,n.clsx(x.dockItemGlow))}),n.transition(3,s,()=>ee,()=>({duration:300,delay:50*n.get(i),easing:ne,start:.5})),n.append(e,s)}),n.reset(v),n.reset(i),n.bind_this(i,e=>n.set(u,e),()=>n.get(u)),n.template_effect(()=>{r=n.set_class(i,1,n.clsx(x.dockContainer),null,r,{"modal-dock-left":"left"===n.get(d),"modal-dock-right":"right"===n.get(d),"modal-dock-bottom":"bottom"===n.get(d),"modal-dock-free":"free"===n.get(d),"modal-dock-empty":0===n.get(_).length}),s=n.set_style(i,"free"===n.get(d)?`left: ${n.get(g).x}px; top: ${n.get(g).y}px;`:"",s,{"z-index":n.get(l)}),h=n.set_class(v,1,n.clsx(x.dock),null,h,{"modal-dock-free-horizontal":"free"===n.get(d)&&"horizontal"===n.get(p),"modal-dock-free-vertical":"free"===n.get(d)&&"vertical"===n.get(p)})}),n.transition(3,i,()=>te,()=>n.get(_).length>0?n.get(b):{duration:0}),n.append(e,i)},$$slots:{default:!0}})};return n.if(P,e=>{n.get(s).features.dock&&e(L)}),n.append(e,T),n.pop(E)}n.delegate(["pointerdown"]);class st{constructor(){i(this,Xe,n.state(0)),i(this,Ye,n.state(-1)),i(this,Ze,n.state("forward")),i(this,Je,n.state(!1)),i(this,Ue,n.state(n.proxy([]))),i(this,Ve,n.state("fade-slide"))}get currentStep(){return n.get(t(this,Xe))}set currentStep(e){n.set(t(this,Xe),e,!0)}get previousStep(){return n.get(t(this,Ye))}set previousStep(e){n.set(t(this,Ye),e,!0)}get direction(){return n.get(t(this,Ze))}set direction(e){n.set(t(this,Ze),e,!0)}get isAnimating(){return n.get(t(this,Je))}set isAnimating(e){n.set(t(this,Je),e,!0)}get steps(){return n.get(t(this,Ue))}set steps(e){n.set(t(this,Ue),e,!0)}get transitionStyle(){return n.get(t(this,Ve))}set transitionStyle(e){n.set(t(this,Ve),e,!0)}registerStep(e){const t=this.steps.length;return this.steps=[...this.steps,e],t}unregisterStep(e){}updateStep(e,t){e>=0&&e<this.steps.length&&(this.steps=this.steps.map((i,n)=>n===e?{...i,...t}:i))}reset(){this.currentStep=0,this.previousStep=-1,this.direction="forward",this.isAnimating=!1,this.steps=[]}setTransitionStyle(e){this.transitionStyle=e}}Xe=new WeakMap,Ye=new WeakMap,Ze=new WeakMap,Je=new WeakMap,Ue=new WeakMap,Ve=new WeakMap;var lt=n.from_html("<div><div><!></div></div>");function dt(e,t){n.push(t,!0);let i=n.prop(t,"maxWidth",3,"500px"),r=n.prop(t,"autoOpen",3,!1),l=n.prop(t,"closeOnEscape",3,!0),d=n.prop(t,"transitionStyle",3,"fade-slide");const c=new st;n.user_effect(()=>{c.setTransitionStyle(d())});const p=700;function g(e){if("slide-through"!==d())return;const i=U(t.id);if(!i)return;const n="forward"===e?"wizard-modal-slide-forward":"wizard-modal-slide-backward";i.classList.add(n),setTimeout(()=>{i.classList.remove(n)},p)}function u(){var e,i;const n=c.steps[c.currentStep];n&&!n.getCanProceed()||(c.currentStep>=c.steps.length-1?null==(e=t.onComplete)||e.call(t):(c.direction="forward",c.isAnimating=!0,c.previousStep=c.currentStep,g("forward"),"slide-through"===d()?setTimeout(()=>{var e;c.currentStep++,null==(e=t.onStepChange)||e.call(t,c.currentStep,"forward")},350):(c.currentStep++,null==(i=t.onStepChange)||i.call(t,c.currentStep,"forward")),setTimeout(()=>{c.isAnimating=!1,c.previousStep=-1},p)))}function f(){var e;c.currentStep>0&&(c.direction="backward",c.isAnimating=!0,c.previousStep=c.currentStep,g("backward"),"slide-through"===d()?setTimeout(()=>{var e;c.currentStep--,null==(e=t.onStepChange)||e.call(t,c.currentStep,"backward")},350):(c.currentStep--,null==(e=t.onStepChange)||e.call(t,c.currentStep,"backward")),setTimeout(()=>{c.isAnimating=!1,c.previousStep=-1},p))}function m(e){var i;e<c.currentStep&&e>=0&&(c.direction="backward",c.isAnimating=!0,c.previousStep=c.currentStep,g("backward"),"slide-through"===d()?setTimeout(()=>{var i;c.currentStep=e,null==(i=t.onStepChange)||i.call(t,c.currentStep,"backward")},350):(c.currentStep=e,null==(i=t.onStepChange)||i.call(t,c.currentStep,"backward")),setTimeout(()=>{c.isAnimating=!1,c.previousStep=-1},p))}a("wizard",c);const v=n.derived(()=>0===c.currentStep),h=n.derived(()=>c.steps.length>0&&c.currentStep===c.steps.length-1),_=n.derived(()=>c.steps.length>0?(c.currentStep+1)/c.steps.length*100:0),w=n.derived(()=>{var e;return(null==(e=c.steps[c.currentStep])?void 0:e.getCanProceed())??!0}),S=n.derived(()=>c.steps.length),y=n.derived(()=>({currentStep:c.currentStep,totalSteps:n.get(S),isFirstStep:n.get(v),isLastStep:n.get(h),canProceed:n.get(w),progress:n.get(_),steps:c.steps.map(e=>({title:e.title})),next:u,back:f,goToStep:m}));let k=n.state(!1),x=n.state(!1);o(()=>{T({id:t.id,title:t.title,icon:t.icon??"",isOpen:r(),isMinimized:!1,isHiddenWithParent:!1,isTransparent:!1,isRejected:!1,position:null,size:null,hasBeenDragged:!1,dockPosition:0,glow:t.glow??null,parentId:void 0,childId:void 0,offsetFromParent:void 0}),n.set(k,!0)}),s(()=>{L(t.id)});const C=n.derived(()=>{if(!n.get(k))return!1;ae();const e=b(t.id);return!!e&&(e.isOpen||e.isMinimized||$(t.id)||O(t.id)||A(t.id))});n.user_pre_effect(()=>{const e=n.get(C);e&&!n.get(x)&&c.reset(),n.set(x,e,!0)});var z=n.comment(),E=n.first_child(z),I=e=>{Fe(e,{get id(){return t.id},get title(){return t.title},get icon(){return t.icon},get customIcon(){return t.customIcon},get maxWidth(){return i()},get preferredHeight(){return t.preferredHeight},get autoOpen(){return r()},get openSourcePosition(){return t.openSourcePosition},get glow(){return t.glow},get config(){return t.config},get closeOnEscape(){return l()},get onClose(){return t.onClose},skipRegistration:!0,children:e=>{var i=lt();let r;var o=n.child(i);let a;var s=n.child(o),l=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>t.children),n.append(e,i)};n.if(s,e=>{t.children&&e(l)}),n.reset(o),n.reset(i),n.template_effect(()=>{r=n.set_class(i,1,"wizard-viewport svelte-cx8fqi",null,r,{"wizard-viewport-carousel":"slide-through"===d()}),a=n.set_class(o,1,"wizard-container svelte-cx8fqi",null,a,{"wizard-slide-forward":c.isAnimating&&"forward"===c.direction&&"slide-through"===d(),"wizard-slide-backward":c.isAnimating&&"backward"===c.direction&&"slide-through"===d()})}),n.append(e,i)},footer:e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>t.footer,()=>n.get(y)),n.append(e,i)};n.if(r,e=>{t.footer&&e(o)}),n.append(e,i)},$$slots:{default:!0,footer:!0}})};n.if(E,e=>{n.get(C)&&e(I)}),n.append(e,z),n.pop()}var ct=n.from_html("<div><!></div>");function pt(e,t){n.push(t,!0);let i=n.prop(t,"title",3,""),a=n.prop(t,"canProceed",3,!0);const s=r("wizard");let d,c=n.state(-1);o(()=>{n.set(c,s.registerStep({title:i(),getCanProceed:()=>a()}),!0),d=a()}),n.user_effect(()=>{const e=a(),t=l(()=>n.get(c)),i=l(()=>d);t>=0&&e!==i&&(d=e,l(()=>{s.updateStep(t,{getCanProceed:()=>e})}))});const p=n.derived(()=>n.get(c)>=0&&s.currentStep===n.get(c)),g=n.derived(()=>s.direction),u=n.derived(()=>s.isAnimating),f=n.derived(()=>s.transitionStyle),m=n.derived(()=>n.get(p));var v=n.comment(),h=n.first_child(v),_=e=>{var i=ct();let r;var o=n.child(i),a=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>t.children),n.append(e,i)};n.if(o,e=>{t.children&&e(a)}),n.reset(i),n.template_effect(()=>r=n.set_class(i,1,"wizard-step-wrapper svelte-sp1x21",null,r,{"wizard-fade-slide-left":n.get(u)&&n.get(p)&&"forward"===n.get(g)&&"fade-slide"===n.get(f),"wizard-fade-slide-right":n.get(u)&&n.get(p)&&"backward"===n.get(g)&&"fade-slide"===n.get(f)})),n.append(e,i)};n.if(h,e=>{n.get(m)&&e(_)}),n.append(e,v),n.pop()}export{Ge as Backdrop,at as Dock,je as Modal,Ke as ModalProvider,ve as Portal,dt as WizardModal,pt as WizardStep,v as closeModal,k as getConfig,u as openChildModal,h as openModal,B as setConfig,y as triggerAttention,ge as useModal,fe as useModalZIndex};
1
+ var e=e=>{throw TypeError(e)},t=(t,i,n)=>(((t,i)=>{i.has(t)||e("Cannot read from private field")})(t,i),n?n.call(t):i.get(t)),i=(t,i,n)=>i.has(t)?e("Cannot add the same private member more than once"):i instanceof WeakSet?i.add(t):i.set(t,n);import"svelte/internal/disclose-version";import*as n from"svelte/internal/client";import{getContext as r,onMount as o,setContext as a,onDestroy as s,untrack as l}from"svelte";import{s as d,g as c,a as p,b as g,c as u,o as f,r as m,m as v,d as h,e as _,i as b,f as w,h as y,j as S,t as k,k as x,C,R as z,l as E,M as I,n as T,D as M,p as P,q as L,u as O,v as $,w as A,x as W,y as D,z as H,A as R,B,E as F,F as j,G as q,H as N,I as G,J as K,K as X,L as Y,N as Z,O as J,P as Q,Q as U}from"./backdrop.js";import{c as V}from"./resolution.js";import{fade as ee,scale as te,fly as ie}from"svelte/transition";import{cubicOut as ne,backOut as re}from"svelte/easing";let oe=n.state(0),ae=n.state(0);function se(){return n.get(oe)}function le(){return n.get(ae)}d(()=>{n.set(oe,c(),!0)}),p(()=>{n.set(ae,g(),!0)});const de=Symbol("modal-render-icon"),ce=Symbol("modal-id"),pe=Symbol("modal-provider-config");function ge(e){const t="function"==typeof e?e:()=>e;return{shake:()=>{const e=t();u(e,"shake"),k(e)},bringToFront:()=>{const e=t();u(e,"bringToFront"),S(e)},isOpen:()=>y(t()),isMinimized:()=>{se();const e=w(t());return(null==e?void 0:e.isMinimized)??!1},isRegistered:()=>b(t()),open:e=>{const i=t();u(i,"open"),_(i,e)},close:()=>{const e=t();u(e,"close"),h(e)},minimize:()=>{const e=t();u(e,"minimize"),v(e)},restore:()=>{const e=t();u(e,"restore"),m(e)},openChild:(e,i)=>{const n=t();u(n,"openChild"),f(e,n,i??document.body)}}}const ue="modal-portal";function fe(e){const t=r(ce),i=e??t;if(!i)throw new Error("useModalZIndex: No modal ID provided and no modal context found. Either pass a modal ID or use this hook inside a Modal component.");return{get zIndex(){const e=w(i);return((null==e?void 0:e.zIndex)??x().zIndex.base)+1},get portalTarget(){return x().portalTarget}}}var me=n.from_html('<div style="display: contents;"><!></div>');function ve(e,t){n.push(t,!0);let i=n.prop(t,"target",3,"body"),r=null,a=null;const{mount:s}={mount:function(e,t=null){const i=function(e){if(typeof window>"u")return null;if(e instanceof HTMLElement)return e;if("string"==typeof e){const t=document.querySelector(e);if(t)return t;if(e.startsWith("#")){const t=e.slice(1),i=document.createElement("div");return i.id=t,document.body.appendChild(i),i}}let t=document.getElementById(ue);return t||(t=document.createElement("div"),t.id=ue,document.body.appendChild(t)),t}(t);return i?(i.appendChild(e),()=>{e.parentNode===i&&i.removeChild(e),i.id!==ue&&0===i.children.length&&i.parentNode&&i.parentNode.removeChild(i)}):()=>{}}};o(()=>(r&&(a=s(r,i())),()=>{null==a||a()}));var l=me(),d=n.child(l);n.snippet(d,()=>t.children),n.reset(l),n.bind_this(l,e=>r=e,()=>r),n.append(e,l),n.pop()}var he=n.from_html('<button type="button" aria-label="Minimize"></button>'),_e=n.from_html('<button type="button" aria-label="Toggle style"></button>'),be=n.from_html("<div><!></div>"),we=n.from_html("<div></div>"),ye=n.from_html("<div><!></div>"),Se=n.from_html("<h2> </h2>"),ke=n.from_html("<h2> </h2>"),xe=n.from_html('<div><button type="button" aria-label="Close"></button> <!> <!></div> <div><!> <div><!></div></div> <div></div>',1),Ce=n.from_html("<div><!></div>"),ze=n.from_html("<div></div>"),Ee=n.from_html("<div><!></div>"),Ie=n.from_html("<h2> </h2>"),Te=n.from_html("<h2> </h2>"),Me=n.from_html('<button type="button" aria-label="Toggle style">&#9671;</button>'),Pe=n.from_html('<button type="button" aria-label="Minimize">&#8211;</button>'),Le=n.from_html('<div><!> <!></div> <div><!> <!> <button type="button" aria-label="Close">&times;</button></div>',1),Oe=n.from_html("<header><!></header>");n.delegate(["pointerdown","click"]);var $e=n.from_html('<div role="separator" tabindex="0"></div>'),Ae=n.from_html('<div role="group" aria-label="Resize handles"></div>');function We(e,t){return t&&e.appendChild(t),{update(t){e.innerHTML="",t&&e.appendChild(t)},destroy(){e.innerHTML=""}}}n.delegate(["pointerdown"]);var De=n.from_html('<span class="sr-only"> </span>'),He=n.from_html("<div><!></div>"),Re=n.from_html("<div></div>"),Be=n.from_html("<div><!> <!> <div><!></div> <!> <!> <!></div>");function Fe(e,t){n.push(t,!0);let i=n.prop(t,"maxWidth",3,"600px"),s=n.prop(t,"autoOpen",3,!1),l=n.prop(t,"closeOnEscape",3,!0),d=n.prop(t,"skipRegistration",3,!1);a(ce,()=>t.id);const c=function(e={}){const{getModalConfig:t,getProviderConfig:i}=e;let n;if(void 0===i)try{n=r(pe)}catch{n=void 0}function o(){return void 0!==i?i():null==n?void 0:n()}const a=V({getModalConfig:t??(()=>{}),getProviderConfig:o});function s(e){return(...t)=>(le(),e(...t))}return{getEffectiveConfig:s(a.getEffectiveConfig),isFeatureEnabled:s(a.isFeatureEnabled),getAppearance:s(a.getAppearance),getAnimation:s(a.getAnimation),getPositioning:s(a.getPositioning),getParentChild:s(a.getParentChild),getProviderConfig:o}}({getModalConfig:()=>t.config,getProviderConfig:()=>t.providerConfig}),p=n.derived(()=>c.getEffectiveConfig().portalTarget);let g=n.state(null),u=n.state(null),f=n.state(null);o(()=>{n.set(g,new I({id:t.id,title:t.title,icon:t.icon,config:t.config,providerConfig:t.providerConfig,maxWidth:i(),preferredHeight:t.preferredHeight,glow:t.glow,closeOnEscape:l(),autoOpen:s(),openSourcePosition:t.openSourcePosition,onClose:t.onClose,skipRegistration:d(),configHelper:c}),!0);const e=n.get(g).subscribe(e=>{n.set(u,e,!0)});return n.set(u,n.get(g).getState(),!0),()=>{var t;e(),null==(t=n.get(g))||t.destroy(),n.set(g,null)}}),n.user_effect(()=>{n.get(f)&&n.get(g)&&n.get(g).mount(n.get(f))}),n.user_effect(()=>{n.get(g)&&void 0!==t.openSourcePosition&&n.get(g).setOpenSourcePosition(t.openSourcePosition)}),n.user_effect(()=>{n.get(g)&&n.get(g).updateOptions({glow:t.glow,maxWidth:i(),preferredHeight:t.preferredHeight,closeOnEscape:l()})});const m=n.derived(()=>T(t.id)),v=n.derived(()=>`modal-title-${n.get(m)}`),h=n.derived(()=>t.description?`modal-desc-${n.get(m)}`:void 0),_=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.draggable)??!1}),b=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.resizable)??!1}),w=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.minimizable)??!1}),y=n.derived(()=>(le(),!c.isFeatureEnabled("dock"))),k=n.derived(()=>(le(),c.isFeatureEnabled("transparency"))),x=n.derived(()=>(le(),c.getAppearance("headerLayout"))),P=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.isVisible)??!1}),L=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.showOverlay)??!1}),O=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.overlayClosing)??!1}),$=n.derived(()=>{var e;return(null==(e=n.get(u))?void 0:e.isTransparent)??!1}),A=n.derived(()=>{const e=n.get(u);return e?Object.entries(e.style).map(([e,t])=>`${e}: ${t};`).join(" "):""});function W(e){var t;null==(t=n.get(g))||t.startDrag(e)}function D(e){var t;null==(t=n.get(g))||t.handlePointerMove(e)}function H(e){var t;null==(t=n.get(g))||t.handlePointerUp(e)}function R(e){var t;null==(t=n.get(g))||t.handleKeyDown(e)}function B(){var e;null==(e=n.get(g))||e.minimize()}function F(){var e;null==(e=n.get(g))||e.close()}function j(){var e;null==(e=n.get(g))||e.toggleTransparency()}function q(e,t){var i;null==(i=n.get(g))||i.startResize(e,t)}var N=n.comment(),G=n.first_child(N),K=e=>{ve(e,{get target(){return n.get(p)},children:(e,i)=>{var o=Be(),a=()=>S(t.id);n.attribute_effect(o,e=>({class:e,[M.modalId]:n.get(m),"data-state":n.get(u).dataState,"data-animation-phase":n.get(u).dataAnimationPhase,style:n.get(A),role:"dialog","aria-modal":"true","aria-labelledby":n.get(v),"aria-describedby":n.get(h),tabindex:"-1",onkeydown:R,onpointermove:D,onpointerup:H,onpointerdowncapture:a}),[()=>n.get(u).cssClasses.join(" ")]);var s=n.child(o),l=e=>{var i=De(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_attribute(i,"id",n.get(h)),n.set_text(r,t.description)}),n.append(e,i)};n.if(s,e=>{t.description&&e(l)});var d=n.sibling(s,2);{let e=n.derived(()=>n.get(_)?W:void 0);!function(e,t){n.push(t,!0);let i=n.prop(t,"isTransparent",3,!1),o=n.prop(t,"headerLayout",3,"macos"),a=n.prop(t,"minimizable",3,!0),s=n.prop(t,"minimizeDisabled",3,!1),l=n.prop(t,"transparencyEnabled",3,!0);function d(e){return t.iconElement&&e.appendChild(t.iconElement),{destroy(){t.iconElement&&e.contains(t.iconElement)&&e.removeChild(t.iconElement)}}}const c=r(de),p=n.derived(()=>null==c?void 0:c()),g=n.derived(()=>"macos"===o());var u=Oe();let f;u.__pointerdown=function(e){var i;e.target.closest("button")||null==(i=t.onStartDrag)||i.call(t,e)};var m=n.child(u),v=e=>{var i=xe(),r=n.first_child(i),o=n.child(r);o.__click=function(...e){var i;null==(i=t.onClose)||i.apply(this,e)};var c=n.sibling(o,2),g=e=>{var i=he();let r;i.__click=function(...e){var i;null==(i=s()?void 0:t.onMinimize)||i.apply(this,e)},n.template_effect(()=>{r=n.set_class(i,1,`${C.headerLight} ${C.headerLightMinimize}`,null,r,{"modal-header-light-disabled":s()}),i.disabled=s(),n.set_attribute(i,"title",s()?"Enable dock to minimize":void 0)}),n.append(e,i)};n.if(c,e=>{a()&&e(g)});var u=n.sibling(c,2),f=e=>{var i=_e();i.__click=function(...e){var i;null==(i=t.onToggleStyle)||i.apply(this,e)},n.template_effect(()=>n.set_class(i,1,`${C.headerLight} ${C.headerLightStyle}`)),n.append(e,i)};n.if(u,e=>{l()&&e(f)}),n.reset(r);var m=n.sibling(r,2),v=n.child(m),h=e=>{var i=be(),r=n.child(i);n.snippet(r,()=>t.customIcon),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(C.headerIcon))),n.append(e,i)},_=e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var t=we();n.action(t,e=>null==d?void 0:d(e)),n.template_effect(()=>n.set_class(t,1,n.clsx(C.headerIcon))),n.append(e,t)},a=e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var i=ye(),r=n.child(i);n.snippet(r,()=>n.get(p),()=>t.icon),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(C.headerIcon))),n.append(e,i)};n.if(r,e=>{t.icon&&n.get(p)&&e(o)},!0),n.append(e,i)};n.if(r,e=>{t.iconElement?e(o):e(a,!1)},!0),n.append(e,i)};n.if(v,e=>{t.customIcon?e(h):e(_,!1)});var b=n.sibling(v,2),w=n.child(b),y=e=>{var i=Se(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_attribute(i,"id",t.titleId),n.set_class(i,1,n.clsx(C.headerTitle)),n.set_text(r,t.title)}),n.append(e,i)},S=e=>{var i=ke(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_class(i,1,n.clsx(C.headerTitle)),n.set_text(r,t.title)}),n.append(e,i)};n.if(w,e=>{t.titleId?e(y):e(S,!1)}),n.reset(b),n.reset(m);var k=n.sibling(m,2);n.template_effect(()=>{n.set_class(r,1,n.clsx(C.headerTrafficLights)),n.set_class(o,1,`${C.headerLight} ${C.headerLightClose}`),n.set_class(m,1,n.clsx(C.headerMacCenter)),n.set_class(b,1,n.clsx(C.headerTitleGroup)),n.set_class(k,1,n.clsx(C.headerMacSpacer))}),n.append(e,i)},h=e=>{var i=Le(),r=n.first_child(i),o=n.child(r),c=e=>{var i=Ce(),r=n.child(i);n.snippet(r,()=>t.customIcon),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(C.headerIcon))),n.append(e,i)},g=e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var t=ze();n.action(t,e=>null==d?void 0:d(e)),n.template_effect(()=>n.set_class(t,1,n.clsx(C.headerIcon))),n.append(e,t)},a=e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var i=Ee(),r=n.child(i);n.snippet(r,()=>n.get(p),()=>t.icon),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(C.headerIcon))),n.append(e,i)};n.if(r,e=>{t.icon&&n.get(p)&&e(o)},!0),n.append(e,i)};n.if(r,e=>{t.iconElement?e(o):e(a,!1)},!0),n.append(e,i)};n.if(o,e=>{t.customIcon?e(c):e(g,!1)});var u=n.sibling(o,2),f=e=>{var i=Ie(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_attribute(i,"id",t.titleId),n.set_class(i,1,n.clsx(C.headerTitle)),n.set_text(r,t.title)}),n.append(e,i)},m=e=>{var i=Te(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_class(i,1,n.clsx(C.headerTitle)),n.set_text(r,t.title)}),n.append(e,i)};n.if(u,e=>{t.titleId?e(f):e(m,!1)}),n.reset(r);var v=n.sibling(r,2),h=n.child(v),_=e=>{var i=Me();i.__click=function(...e){var i;null==(i=t.onToggleStyle)||i.apply(this,e)},n.template_effect(()=>n.set_class(i,1,`${C.headerBtnWindows} ${C.headerBtnWindowsStyle}`)),n.append(e,i)};n.if(h,e=>{l()&&e(_)});var b=n.sibling(h,2),w=e=>{var i=Pe();let r;i.__click=function(...e){var i;null==(i=s()?void 0:t.onMinimize)||i.apply(this,e)},n.template_effect(()=>{r=n.set_class(i,1,n.clsx(C.headerBtnWindows),null,r,{"modal-header-btn-windows-disabled":s()}),i.disabled=s(),n.set_attribute(i,"title",s()?"Enable dock to minimize":void 0)}),n.append(e,i)};n.if(b,e=>{a()&&e(w)});var y=n.sibling(b,2);y.__click=function(...e){var i;null==(i=t.onClose)||i.apply(this,e)},n.reset(v),n.template_effect(()=>{n.set_class(r,1,n.clsx(C.headerTitleGroup)),n.set_class(v,1,n.clsx(C.headerActions)),n.set_class(y,1,`${C.headerBtnWindows} ${C.headerBtnWindowsClose}`)}),n.append(e,i)};n.if(m,e=>{n.get(g)?e(v):e(h,!1)}),n.reset(u),n.template_effect(()=>f=n.set_class(u,1,n.clsx(C.header),null,f,{"modal-header-draggable":!!t.onStartDrag,transparent:i()})),n.append(e,u),n.pop()}(d,{get title(){return t.title},get customIcon(){return t.customIcon},get icon(){return t.icon},get iconElement(){return t.iconElement},get isTransparent(){return n.get($)},get titleId(){return n.get(v)},get headerLayout(){return n.get(x)},get onStartDrag(){return n.get(e)},onToggleStyle:j,onMinimize:B,onClose:F,get minimizable(){return n.get(w)},get minimizeDisabled(){return n.get(y)},get transparencyEnabled(){return n.get(k)}})}var c=n.sibling(d,2),p=n.child(c);n.snippet(p,()=>t.children??n.noop),n.reset(c),n.action(c,(e,t)=>null==We?void 0:We(e,t),()=>t.bodyElement);var g=n.sibling(c,2),I=e=>{var i=He(),r=n.child(i),o=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>t.footer),n.append(e,i)};n.if(r,e=>{t.footer&&e(o)}),n.reset(i),n.action(i,(e,t)=>null==We?void 0:We(e,t),()=>t.footerElement),n.template_effect(()=>n.set_class(i,1,n.clsx(C.footer))),n.append(e,i)};n.if(g,e=>{(t.footer||t.footerElement)&&e(I)});var T=n.sibling(g,2);{let e=n.derived(()=>n.get(b)&&!n.get(u).hasChild?q:void 0);!function(e,t){n.push(t,!0);var i=n.comment(),r=n.first_child(i),o=e=>{var i=Ae();n.each(i,21,()=>z,n.index,(e,i)=>{var r=$e();r.__pointerdown=e=>function(e,i){var n;null==(n=t.onStartResize)||n.call(t,e,i)}(e,n.get(i)),n.template_effect(()=>{n.set_class(r,1,`${C.resizeHandle} ${C.resizePrefix}${n.get(i)??""}`),n.set_attribute(r,"aria-label",E[n.get(i)]),n.set_attribute(r,"aria-orientation","n"===n.get(i)||"s"===n.get(i)?"horizontal":"vertical")}),n.append(e,r)}),n.reset(i),n.template_effect(()=>n.set_class(i,1,n.clsx(C.resizeHandles))),n.append(e,i)};n.if(r,e=>{t.onStartResize&&e(o)}),n.append(e,i),n.pop()}(T,{get onStartResize(){return n.get(e)}})}var P=n.sibling(T,2),N=e=>{var t=Re();let i;n.template_effect(()=>i=n.set_class(t,1,n.clsx(C.childOverlay),null,i,{"modal-overlay-closing":n.get(O)})),n.append(e,t)};n.if(P,e=>{n.get(L)&&e(N)}),n.reset(o),n.bind_this(o,e=>n.set(f,e),()=>n.get(f)),n.template_effect(()=>n.set_class(c,1,n.clsx(C.body))),n.append(e,o)},$$slots:{default:!0}})};n.if(G,e=>{n.get(P)&&n.get(u)&&e(K)}),n.append(e,N),n.pop()}function je(e,t){n.push(t,!0);let i=n.prop(t,"maxWidth",3,"600px"),r=n.prop(t,"autoOpen",3,!1),a=n.prop(t,"closeOnEscape",3,!0),l=n.state(!1);o(()=>{P(L({id:t.id,title:t.title,icon:t.icon,autoOpen:r(),glow:t.glow})),n.set(l,!0)}),s(()=>{O(t.id)});const d=n.derived(()=>{if(!n.get(l))return!1;se();const e=w(t.id);return!!e&&(e.isOpen||e.isMinimized||$(t.id)||A(t.id)||W(t.id))});var c=n.comment(),p=n.first_child(c),g=e=>{Fe(e,{get id(){return t.id},get title(){return t.title},get icon(){return t.icon},get customIcon(){return t.customIcon},get iconElement(){return t.iconElement},get maxWidth(){return i()},get preferredHeight(){return t.preferredHeight},get autoOpen(){return r()},get openSourcePosition(){return t.openSourcePosition},get glow(){return t.glow},get config(){return t.config},get closeOnEscape(){return a()},get onClose(){return t.onClose},get children(){return t.children},get footer(){return t.footer},get bodyElement(){return t.bodyElement},get footerElement(){return t.footerElement},skipRegistration:!0})};n.if(p,e=>{n.get(d)&&e(g)}),n.append(e,c),n.pop()}var qe=n.from_html('<div aria-hidden="true"></div>');function Ne(e,t){n.push(t,!0);const i=n.derived(()=>(le(),x())),r=n.derived(()=>(le(),D())),o=n.derived(()=>(le(),H())),a=n.derived(()=>(se(),R())),s=n.derived(()=>B("MODAL")-1);ve(e,{get target(){return n.get(i).portalTarget},children:(e,t)=>{var i=n.comment(),l=n.first_child(i),d=e=>{var t=qe();let i,o;n.template_effect(()=>{i=n.set_class(t,1,n.clsx(C.backdrop),null,i,{"backdrop-visible":n.get(r).visible,"backdrop-blocking":n.get(r).blockClicks}),o=n.set_style(t,"",o,{"z-index":n.get(s)})}),n.transition(3,t,()=>ee,()=>({duration:200})),n.append(e,t)};n.if(l,e=>{n.get(a)&&n.get(o)&&e(d)}),n.append(e,i)},$$slots:{default:!0}}),n.pop()}var Ge=n.from_html("<!> <!>",1);function Ke(e,t){n.push(t,!0),l(()=>{t.config&&F(t.config)}),a(de,()=>t.renderIcon),a(pe,()=>t.config),n.user_effect(()=>(l(()=>{j(),q()}),()=>{N(),G()})),n.user_effect(()=>{var e;if(typeof document>"u")return;const i=x(),n=(null==(e=t.config)?void 0:e.portalTarget)??i.portalTarget;if("string"==typeof n&&!document.querySelector(n)){const e=document.createElement("div");return e.id=n.replace("#",""),document.body.appendChild(e),()=>{e.remove()}}});var i=Ge(),r=n.first_child(i);Ne(r,{});var o=n.sibling(r,2);n.snippet(o,()=>t.children??n.noop),n.append(e,i),n.pop()}var Xe,Ye,Ze,Je,Qe,Ue,Ve=n.from_html('<button type="button" aria-label="Drag dock"></button>'),et=n.from_html("<span> </span>"),tt=n.from_html("<span> </span>"),it=n.from_html("<span>+</span>"),nt=n.from_html("<span><!></span>"),rt=n.from_html("<button><span><!></span> <!> <span></span> <!></button>"),ot=n.from_html('<div data-dock-container="true"><div><!> <!></div></div>');function at(e,t){n.push(t,!0);const i=r(de),o=n.derived(()=>t.renderIcon??(null==i?void 0:i())),a=J(),s=n.derived(()=>(le(),x())),l=n.derived(()=>B("DOCK")),d=n.derived(()=>n.get(s).dock.position),c=n.derived(()=>n.get(s).dock.labelMode);let p=n.state("horizontal"),g=n.state(n.proxy({x:100,y:100})),u=n.state(null),f=n.state(!1),v={x:0,y:0},h=null;const _=n.derived(()=>(se(),K())),b=n.derived(()=>{switch(n.get(d)){case"left":return{x:-20,duration:250,easing:ne};case"right":return{x:20,duration:250,easing:ne};default:return{y:20,duration:250,easing:ne}}});function w(e){var t;"free"===n.get(d)&&(n.set(f,!0),h=e.pointerId,v={x:e.clientX-n.get(g).x,y:e.clientY-n.get(g).y},null==(t=e.currentTarget)||t.setPointerCapture(e.pointerId),window.addEventListener("pointermove",y),window.addEventListener("pointerup",S),window.addEventListener("pointercancel",S))}function y(e){if(e.pointerId!==h||!n.get(u))return;const t=n.get(u).getBoundingClientRect();n.set(g,Q(e.clientX,e.clientY,v,t.width,t.height),!0)}function S(e){e.pointerId===h&&(n.set(f,!1),h=null,window.removeEventListener("pointermove",y),window.removeEventListener("pointerup",S),window.removeEventListener("pointercancel",S))}const{addListener:k}=function(){function e(e,t,i){return typeof window>"u"?()=>{}:(window.addEventListener(e,t,i),()=>{window.removeEventListener(e,t,i)})}return{addListener:e,addListenerEffect:function(t,i,r){n.user_effect(()=>typeof window>"u"?void 0:e(t,i,r))}}}();function z(){if("free"!==n.get(d)||!n.get(u))return;const e=n.get(u).getBoundingClientRect(),t=X(n.get(g),e.width,e.height);(t.x!==n.get(g).x||t.y!==n.get(g).y)&&n.set(g,t,!0)}n.user_effect(()=>{typeof window>"u"||k("resize",z)});var E={setDockOrientation:function(e){n.set(p,e,!0)},setDockFreePosition:function(e){n.set(g,e,!0)},getDockState:function(){return{dockPosition:n.get(d),dockOrientation:n.get(p),dockFreePosition:n.get(g),dockLabelMode:n.get(c)}}},I=n.comment(),P=n.first_child(I),L=e=>{ve(e,{get target(){return n.get(s).portalTarget},children:(e,t)=>{var i=ot();let r,s;var v=n.child(i);let h;var y=n.child(v),S=e=>{var t=Ve();let i;t.__pointerdown=w,n.template_effect(()=>i=n.set_class(t,1,n.clsx(C.dockHandle),null,i,{"modal-dock-handle-dragging":n.get(f)})),n.append(e,t)};n.if(y,e=>{"free"===n.get(d)&&e(S)});var k=n.sibling(y,2);n.each(k,19,()=>n.get(_),e=>e.id,(e,t,i)=>{const r=n.derived(()=>n.get(t).lastChildId?a.get(n.get(t).lastChildId):null);var s=rt(),l=e=>{Y(n.get(t).id)?Z(e.currentTarget):m(n.get(t).id)};n.attribute_effect(s,e=>({class:C.dockItem,...e,"aria-label":`Restore ${n.get(t).title??""}`,onclick:l,style:n.get(t).glow?`--modal-dock-glow-color: ${n.get(t).glow.color};`:"",[n.CLASS]:{"modal-dock-item-has-glow":!!n.get(t).glow,"modal-dock-item-has-child":!!n.get(t).lastChildId,"modal-dock-item-label-beside":"beside"===n.get(c),"modal-dock-item-label-below":"below"===n.get(c)}}),[()=>({[M.modalId]:T(n.get(t).id)})]);var d=n.child(s),p=n.child(d),g=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>n.get(o),()=>n.get(t).icon),n.append(e,i)},u=e=>{var i=et(),r=n.child(i,!0);n.reset(i),n.template_effect(e=>{n.set_class(i,1,n.clsx(C.dockItemIconPlaceholder)),n.set_text(r,e)},[()=>n.get(t).title.charAt(0)]),n.append(e,i)};n.if(p,e=>{n.get(t).icon&&n.get(o)?e(g):e(u,!1)}),n.reset(d);var f=n.sibling(d,2),v=e=>{var i=tt(),r=n.child(i,!0);n.reset(i),n.template_effect(()=>{n.set_class(i,1,n.clsx(C.dockItemLabel)),n.set_text(r,n.get(t).title)}),n.append(e,i)};n.if(f,e=>{"hidden"!==n.get(c)&&e(v)});var h=n.sibling(f,2),_=n.sibling(h,2),b=e=>{var t=nt(),i=n.child(t),a=e=>{var t=n.comment(),i=n.first_child(t);n.snippet(i,()=>n.get(o),()=>n.get(r).icon),n.append(e,t)},s=e=>{var t=it();n.append(e,t)};n.if(i,e=>{n.get(r).icon&&n.get(o)?e(a):e(s,!1)}),n.reset(t),n.template_effect(()=>n.set_class(t,1,n.clsx(C.dockChildIndicator))),n.append(e,t)};n.if(_,e=>{n.get(t).lastChildId&&n.get(r)&&e(b)}),n.reset(s),n.template_effect(()=>{n.set_class(d,1,n.clsx(C.dockItemIcon)),n.set_class(h,1,n.clsx(C.dockItemGlow))}),n.transition(3,s,()=>te,()=>({duration:300,delay:50*n.get(i),easing:re,start:.5})),n.append(e,s)}),n.reset(v),n.reset(i),n.bind_this(i,e=>n.set(u,e),()=>n.get(u)),n.template_effect(()=>{r=n.set_class(i,1,n.clsx(C.dockContainer),null,r,{"modal-dock-left":"left"===n.get(d),"modal-dock-right":"right"===n.get(d),"modal-dock-bottom":"bottom"===n.get(d),"modal-dock-free":"free"===n.get(d),"modal-dock-empty":0===n.get(_).length}),s=n.set_style(i,"free"===n.get(d)?`left: ${n.get(g).x}px; top: ${n.get(g).y}px;`:"",s,{"z-index":n.get(l)}),h=n.set_class(v,1,n.clsx(C.dock),null,h,{"modal-dock-free-horizontal":"free"===n.get(d)&&"horizontal"===n.get(p),"modal-dock-free-vertical":"free"===n.get(d)&&"vertical"===n.get(p)})}),n.transition(3,i,()=>ie,()=>n.get(_).length>0?n.get(b):{duration:0}),n.append(e,i)},$$slots:{default:!0}})};return n.if(P,e=>{n.get(s).features.dock&&e(L)}),n.append(e,I),n.pop(E)}n.delegate(["pointerdown"]);class st{constructor(){i(this,Xe,n.state(0)),i(this,Ye,n.state(-1)),i(this,Ze,n.state("forward")),i(this,Je,n.state(!1)),i(this,Qe,n.state(n.proxy([]))),i(this,Ue,n.state("fade-slide"))}get currentStep(){return n.get(t(this,Xe))}set currentStep(e){n.set(t(this,Xe),e,!0)}get previousStep(){return n.get(t(this,Ye))}set previousStep(e){n.set(t(this,Ye),e,!0)}get direction(){return n.get(t(this,Ze))}set direction(e){n.set(t(this,Ze),e,!0)}get isAnimating(){return n.get(t(this,Je))}set isAnimating(e){n.set(t(this,Je),e,!0)}get steps(){return n.get(t(this,Qe))}set steps(e){n.set(t(this,Qe),e,!0)}get transitionStyle(){return n.get(t(this,Ue))}set transitionStyle(e){n.set(t(this,Ue),e,!0)}registerStep(e){const t=this.steps.length;return this.steps=[...this.steps,e],t}unregisterStep(e){}updateStep(e,t){e>=0&&e<this.steps.length&&(this.steps=this.steps.map((i,n)=>n===e?{...i,...t}:i))}reset(){this.currentStep=0,this.previousStep=-1,this.direction="forward",this.isAnimating=!1,this.steps=[]}setTransitionStyle(e){this.transitionStyle=e}}Xe=new WeakMap,Ye=new WeakMap,Ze=new WeakMap,Je=new WeakMap,Qe=new WeakMap,Ue=new WeakMap;var lt=n.from_html("<div><div><!></div></div>");function dt(e,t){n.push(t,!0);let i=n.prop(t,"maxWidth",3,"500px"),r=n.prop(t,"autoOpen",3,!1),l=n.prop(t,"closeOnEscape",3,!0),d=n.prop(t,"transitionStyle",3,"fade-slide");const c=new st;n.user_effect(()=>{c.setTransitionStyle(d())});const p=700;function g(e){if("slide-through"!==d())return;const i=U(t.id);if(!i)return;const n="forward"===e?"wizard-modal-slide-forward":"wizard-modal-slide-backward";i.classList.add(n),setTimeout(()=>{i.classList.remove(n)},p)}function u(){var e,i;const n=c.steps[c.currentStep];n&&!n.getCanProceed()||(c.currentStep>=c.steps.length-1?null==(e=t.onComplete)||e.call(t):(c.direction="forward",c.isAnimating=!0,c.previousStep=c.currentStep,g("forward"),"slide-through"===d()?setTimeout(()=>{var e;c.currentStep++,null==(e=t.onStepChange)||e.call(t,c.currentStep,"forward")},350):(c.currentStep++,null==(i=t.onStepChange)||i.call(t,c.currentStep,"forward")),setTimeout(()=>{c.isAnimating=!1,c.previousStep=-1},p)))}function f(){var e;c.currentStep>0&&(c.direction="backward",c.isAnimating=!0,c.previousStep=c.currentStep,g("backward"),"slide-through"===d()?setTimeout(()=>{var e;c.currentStep--,null==(e=t.onStepChange)||e.call(t,c.currentStep,"backward")},350):(c.currentStep--,null==(e=t.onStepChange)||e.call(t,c.currentStep,"backward")),setTimeout(()=>{c.isAnimating=!1,c.previousStep=-1},p))}function m(e){var i;e<c.currentStep&&e>=0&&(c.direction="backward",c.isAnimating=!0,c.previousStep=c.currentStep,g("backward"),"slide-through"===d()?setTimeout(()=>{var i;c.currentStep=e,null==(i=t.onStepChange)||i.call(t,c.currentStep,"backward")},350):(c.currentStep=e,null==(i=t.onStepChange)||i.call(t,c.currentStep,"backward")),setTimeout(()=>{c.isAnimating=!1,c.previousStep=-1},p))}a("wizard",c);const v=n.derived(()=>0===c.currentStep),h=n.derived(()=>c.steps.length>0&&c.currentStep===c.steps.length-1),_=n.derived(()=>c.steps.length>0?(c.currentStep+1)/c.steps.length*100:0),b=n.derived(()=>{var e;return(null==(e=c.steps[c.currentStep])?void 0:e.getCanProceed())??!0}),y=n.derived(()=>c.steps.length),S=n.derived(()=>({currentStep:c.currentStep,totalSteps:n.get(y),isFirstStep:n.get(v),isLastStep:n.get(h),canProceed:n.get(b),progress:n.get(_),steps:c.steps.map(e=>({title:e.title})),next:u,back:f,goToStep:m}));let k=n.state(!1),x=n.state(!1);o(()=>{P({id:t.id,title:t.title,icon:t.icon??"",isOpen:r(),isMinimized:!1,isHiddenWithParent:!1,isTransparent:!1,isRejected:!1,position:null,size:null,hasBeenDragged:!1,dockPosition:0,glow:t.glow??null,parentId:void 0,childId:void 0,offsetFromParent:void 0}),n.set(k,!0)}),s(()=>{O(t.id)});const C=n.derived(()=>{if(!n.get(k))return!1;se();const e=w(t.id);return!!e&&(e.isOpen||e.isMinimized||$(t.id)||A(t.id)||W(t.id))});n.user_pre_effect(()=>{const e=n.get(C);e&&!n.get(x)&&c.reset(),n.set(x,e,!0)});var z=n.comment(),E=n.first_child(z),I=e=>{Fe(e,{get id(){return t.id},get title(){return t.title},get icon(){return t.icon},get customIcon(){return t.customIcon},get maxWidth(){return i()},get preferredHeight(){return t.preferredHeight},get autoOpen(){return r()},get openSourcePosition(){return t.openSourcePosition},get glow(){return t.glow},get config(){return t.config},get closeOnEscape(){return l()},get onClose(){return t.onClose},skipRegistration:!0,children:e=>{var i=lt();let r;var o=n.child(i);let a;var s=n.child(o),l=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>t.children),n.append(e,i)};n.if(s,e=>{t.children&&e(l)}),n.reset(o),n.reset(i),n.template_effect(()=>{r=n.set_class(i,1,"wizard-viewport svelte-cx8fqi",null,r,{"wizard-viewport-carousel":"slide-through"===d()}),a=n.set_class(o,1,"wizard-container svelte-cx8fqi",null,a,{"wizard-slide-forward":c.isAnimating&&"forward"===c.direction&&"slide-through"===d(),"wizard-slide-backward":c.isAnimating&&"backward"===c.direction&&"slide-through"===d()})}),n.append(e,i)},footer:e=>{var i=n.comment(),r=n.first_child(i),o=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>t.footer,()=>n.get(S)),n.append(e,i)};n.if(r,e=>{t.footer&&e(o)}),n.append(e,i)},$$slots:{default:!0,footer:!0}})};n.if(E,e=>{n.get(C)&&e(I)}),n.append(e,z),n.pop()}var ct=n.from_html("<div><!></div>");function pt(e,t){n.push(t,!0);let i=n.prop(t,"title",3,""),a=n.prop(t,"canProceed",3,!0);const s=r("wizard");let d,c=n.state(-1);o(()=>{n.set(c,s.registerStep({title:i(),getCanProceed:()=>a()}),!0),d=a()}),n.user_effect(()=>{const e=a(),t=l(()=>n.get(c)),i=l(()=>d);t>=0&&e!==i&&(d=e,l(()=>{s.updateStep(t,{getCanProceed:()=>e})}))});const p=n.derived(()=>n.get(c)>=0&&s.currentStep===n.get(c)),g=n.derived(()=>s.direction),u=n.derived(()=>s.isAnimating),f=n.derived(()=>s.transitionStyle),m=n.derived(()=>n.get(p));var v=n.comment(),h=n.first_child(v),_=e=>{var i=ct();let r;var o=n.child(i),a=e=>{var i=n.comment(),r=n.first_child(i);n.snippet(r,()=>t.children),n.append(e,i)};n.if(o,e=>{t.children&&e(a)}),n.reset(i),n.template_effect(()=>r=n.set_class(i,1,"wizard-step-wrapper svelte-sp1x21",null,r,{"wizard-fade-slide-left":n.get(u)&&n.get(p)&&"forward"===n.get(g)&&"fade-slide"===n.get(f),"wizard-fade-slide-right":n.get(u)&&n.get(p)&&"backward"===n.get(g)&&"fade-slide"===n.get(f)})),n.append(e,i)};n.if(h,e=>{n.get(m)&&e(_)}),n.append(e,v),n.pop()}export{Ne as Backdrop,at as Dock,je as Modal,Ke as ModalProvider,ve as Portal,dt as WizardModal,pt as WizardStep,h as closeModal,x as getConfig,f as openChildModal,_ as openModal,F as setConfig,k as triggerAttention,ge as useModal,fe as useModalZIndex};
package/dist/vanilla.d.ts CHANGED
@@ -2,6 +2,8 @@ import { bringToFront } from '../core/state';
2
2
  import { closeAllModals } from '../core/state';
3
3
  import { closeModal } from '../core/state';
4
4
  import { getConfig } from '../core/config';
5
+ import { getModalsStore } from '../core/state';
6
+ import { getModalState } from '../core/state';
5
7
  import { isModalOpen } from '../core/state';
6
8
  import { minimizeModal } from '../core/state';
7
9
  import { ModalConfigOverrides } from '../core/types';
@@ -12,6 +14,8 @@ import { openModal } from '../core/state';
12
14
  import { Position } from '../core/types';
13
15
  import { restoreModal } from '../core/state';
14
16
  import { setConfig } from '../core/config';
17
+ import { toggleModalTransparency } from '../core/state';
18
+ import { triggerAttention } from '../core/state';
15
19
 
16
20
  export declare interface BackdropControl {
17
21
  destroy: () => void;
@@ -35,6 +39,10 @@ export declare interface DockControl {
35
39
 
36
40
  export { getConfig }
37
41
 
42
+ export { getModalsStore }
43
+
44
+ export { getModalState }
45
+
38
46
  export declare function init(options?: InitOptions): InitControl;
39
47
 
40
48
  export declare interface InitControl {
@@ -76,6 +84,10 @@ export { restoreModal }
76
84
 
77
85
  export { setConfig }
78
86
 
87
+ export { toggleModalTransparency }
88
+
89
+ export { triggerAttention }
90
+
79
91
  export declare interface VanillaBackdropOptions {
80
92
  container: HTMLElement;
81
93
  }
package/dist/vanilla.js CHANGED
@@ -1 +1 @@
1
- var e=Object.defineProperty,t=(t,n,i)=>((t,n,i)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[n]=i)(t,"symbol"!=typeof n?n+"":n,i);import{X as n,n as i,p as s,h as o,M as a,u as r,C as l,D as d,R as c,s as h,I as p,T as m,A as u,U as b,l as E,K as g,L as C,r as f,j as y,N as k,x as A,Y as v,z as H,B as I,E as N,F as w,H as z}from"./backdrop.js";import{c as L,f as M,m as $,d as D}from"./backdrop.js";class O{constructor(e){t(this,"controller"),t(this,"dialogEl"),t(this,"headerEl"),t(this,"bodyEl"),t(this,"footerEl",null),t(this,"resizeHandlesContainer",null),t(this,"container"),t(this,"options"),t(this,"configHelper"),t(this,"unsubscribe",null),t(this,"abortController",new AbortController),this.options=e,this.container=e.container,this.configHelper=n(e.config),i(s({id:e.id,title:e.title,icon:e.icon,autoOpen:e.autoOpen??!0,glow:e.glow})),(e.autoOpen??!0)&&o(e.id),this.dialogEl=this.createDialogElement(),this.headerEl=this.createHeaderElement(),this.bodyEl=this.createBodyElement(),e.footer&&(this.footerEl=this.createFooterElement(),this.footerEl.appendChild(e.footer)),this.configHelper.isFeatureEnabled("resize")&&(this.resizeHandlesContainer=this.createResizeHandles()),this.dialogEl.appendChild(this.headerEl),this.dialogEl.appendChild(this.bodyEl),this.footerEl&&this.dialogEl.appendChild(this.footerEl),this.resizeHandlesContainer&&this.dialogEl.appendChild(this.resizeHandlesContainer),e.content&&this.bodyEl.appendChild(e.content);const r={id:e.id,title:e.title,icon:e.icon,config:e.config,maxWidth:e.maxWidth,preferredHeight:e.preferredHeight,glow:e.glow,closeOnEscape:e.closeOnEscape??!0,autoOpen:e.autoOpen??!0,openSourcePosition:e.openSourcePosition,onClose:e.onClose,skipRegistration:!0,configHelper:this.configHelper};this.controller=new a(r),this.container.appendChild(this.dialogEl),this.controller.mount(this.dialogEl),this.unsubscribe=this.controller.subscribe(e=>{this.updateFromState(e)}),this.updateFromState(this.controller.getState()),this.setupEventHandlers()}destroy(){var e;this.abortController.abort(),null==(e=this.unsubscribe)||e.call(this),this.controller.destroy(),r(this.options.id),this.dialogEl.remove()}createDialogElement(){const e=document.createElement("div");return e.className=l.dialog,e.setAttribute(d.modalId,String(this.options.id)),e.setAttribute("role","dialog"),e.setAttribute("aria-modal","true"),e.setAttribute("aria-labelledby",`${this.options.id}-title`),e.setAttribute("tabindex","-1"),e}createHeaderElement(){const e=document.createElement("header"),t=this.configHelper.isFeatureEnabled("drag"),n=this.configHelper.getAppearance("headerLayout"),i=this.configHelper.isFeatureEnabled("minimize"),s=!this.configHelper.isFeatureEnabled("dock"),o=this.configHelper.isFeatureEnabled("transparency");e.className=t?`${l.header} ${l.headerDraggable}`:l.header;const a=this.getIconElement();return"macos"===n?this.createMacOSHeader(e,a,i,s,o):this.createWindowsHeader(e,a,i,s,o),e}getIconElement(){return this.options.iconElement?this.options.iconElement:this.options.icon&&this.options.renderIcon?this.options.renderIcon(this.options.icon):null}createMacOSHeader(e,t,n,i,s){const o=document.createElement("div");o.className=l.headerTrafficLights;const a=document.createElement("button");if(a.type="button",a.className=`${l.headerLight} ${l.headerLightClose}`,a.setAttribute("aria-label","Close"),a.setAttribute("data-control","close"),o.appendChild(a),n){const e=document.createElement("button");e.type="button",e.className=`${l.headerLight} ${l.headerLightMinimize}${i?` ${l.headerLightDisabled}`:""}`,e.setAttribute("aria-label","Minimize"),e.setAttribute("data-control","minimize"),i&&(e.disabled=!0,e.title="Enable dock to minimize"),o.appendChild(e)}if(s){const e=document.createElement("button");e.type="button",e.className=`${l.headerLight} ${l.headerLightStyle}`,e.setAttribute("aria-label","Toggle style"),e.setAttribute("data-control","style"),o.appendChild(e)}e.appendChild(o);const r=document.createElement("div");if(r.className=l.headerMacCenter,t){const e=document.createElement("div");e.className=l.headerIcon,e.appendChild(t),r.appendChild(e)}const d=document.createElement("div");d.className=l.headerTitleGroup;const c=document.createElement("h2");c.className=l.headerTitle,c.id=`${this.options.id}-title`,c.textContent=this.options.title,d.appendChild(c),r.appendChild(d),e.appendChild(r);const h=document.createElement("div");h.className=l.headerMacSpacer,e.appendChild(h)}createWindowsHeader(e,t,n,i,s){const o=document.createElement("div");if(o.className=l.headerTitleGroup,t){const e=document.createElement("div");e.className=l.headerIcon,e.appendChild(t),o.appendChild(e)}const a=document.createElement("h2");a.className=l.headerTitle,a.id=`${this.options.id}-title`,a.textContent=this.options.title,o.appendChild(a),e.appendChild(o);const r=document.createElement("div");if(r.className=l.headerActions,s){const e=document.createElement("button");e.type="button",e.className=`${l.headerBtnWindows} ${l.headerBtnWindowsStyle}`,e.setAttribute("aria-label","Toggle style"),e.setAttribute("data-control","style"),e.innerHTML="&#9671;",r.appendChild(e)}if(n){const e=document.createElement("button");e.type="button",e.className=`${l.headerBtnWindows}${i?` ${l.headerBtnWindowsDisabled}`:""}`,e.setAttribute("aria-label","Minimize"),e.setAttribute("data-control","minimize"),e.innerHTML="&#8211;",i&&(e.disabled=!0,e.title="Enable dock to minimize"),r.appendChild(e)}const d=document.createElement("button");d.type="button",d.className=`${l.headerBtnWindows} ${l.headerBtnWindowsClose}`,d.setAttribute("aria-label","Close"),d.setAttribute("data-control","close"),d.innerHTML="&times;",r.appendChild(d),e.appendChild(r)}createBodyElement(){const e=document.createElement("div");return e.className=l.body,e}createFooterElement(){const e=document.createElement("div");return e.className=l.footer,e}createResizeHandles(){const e=document.createElement("div");e.className=l.resizeHandles,e.setAttribute("role","group"),e.setAttribute("aria-label","Resize handles");for(const t of c){const n=document.createElement("div");n.className=`${l.resizeHandle} ${l.resizePrefix}${t}`,n.setAttribute("role","separator"),n.setAttribute("tabindex","0"),n.setAttribute("aria-label",`Resize ${t}`),n.setAttribute("aria-orientation","n"===t||"s"===t?"horizontal":"vertical"),n.setAttribute(d.resizeDirection,t),e.appendChild(n)}return e}updateFromState(e){this.dialogEl.className=e.cssClasses.join(" "),this.updateStyles(e.style),this.dialogEl.setAttribute("data-state",e.dataState),this.dialogEl.setAttribute("data-animation-phase",e.dataAnimationPhase)}updateStyles(e){for(const[t,n]of Object.entries(e))t.startsWith("--")?this.dialogEl.style.setProperty(t,String(n)):this.dialogEl.style.setProperty(t,"number"==typeof n?String(n):n)}setupEventHandlers(){const e=this.abortController.signal,t="macos"===this.configHelper.getAppearance("headerLayout")?`.${l.headerLight}`:`.${l.headerBtnWindows}`;this.headerEl.addEventListener("pointerdown",e=>{e.target.closest(t)||this.controller.startDrag(e)},{signal:e}),this.dialogEl.addEventListener("pointermove",e=>{this.controller.handlePointerMove(e)},{signal:e}),this.dialogEl.addEventListener("pointerup",e=>{this.controller.handlePointerUp(e)},{signal:e}),this.headerEl.addEventListener("click",e=>{const t=e.target.closest("button");if(!t)return;const n=t.getAttribute("data-control");"close"===n?this.controller.close():"minimize"===n?this.controller.minimize():"style"===n&&this.controller.toggleTransparency()},{signal:e}),this.resizeHandlesContainer&&this.resizeHandlesContainer.addEventListener("pointerdown",e=>{const t=e.target.closest(`.${l.resizeHandle}`);if(!t)return;const n=t.getAttribute(d.resizeDirection);n&&this.controller.startResize(e,n)},{signal:e}),this.dialogEl.addEventListener("keydown",e=>{this.controller.handleKeyDown(e)},{signal:e}),this.dialogEl.addEventListener("pointerdown",()=>{this.controller.bringToFront()},{signal:e})}}class S{constructor(e){t(this,"containerEl"),t(this,"dockEl"),t(this,"parentContainer"),t(this,"unsubscribe"),t(this,"abortController",new AbortController),t(this,"isAttached",!1),t(this,"options"),this.options=e,this.parentContainer=e.container,this.containerEl=this.createContainerDOM(),this.dockEl=this.createDockDOM(),this.containerEl.appendChild(this.dockEl),this.unsubscribe=h(()=>{this.render()}),this.render()}createContainerDOM(){const e=document.createElement("div");return e.setAttribute("data-dock-container","true"),e}createDockDOM(){const e=document.createElement("div");return e.className=l.dock,e}render(){const e=y();if(!e.features.dock)return void(this.isAttached&&(this.containerEl.remove(),this.isAttached=!1));const t=p();if(0===t.length)return void(this.isAttached&&(this.containerEl.remove(),this.isAttached=!1));this.isAttached||(this.parentContainer.appendChild(this.containerEl),this.isAttached=!0);const n=e.dock.position;if(this.containerEl.className=m(n,0===t.length),this.containerEl.style.zIndex=String(u("DOCK")),this.dockEl.className=b(n,"horizontal"),this.dockEl.innerHTML="","free"===n){const e=this.createDockHandle();this.dockEl.appendChild(e)}const i=k(),s=e.dock.labelMode;for(const e of t){const t=e.lastChildId?i.get(e.lastChildId):null,n=this.createDockItem(e,t??null,s);this.dockEl.appendChild(n)}}createDockHandle(){const e=document.createElement("button");return e.type="button",e.className=l.dockHandle,e.setAttribute("aria-label","Drag dock"),e}createDockItem(e,t,n){const i=document.createElement("button"),s=[l.dockItem,e.glow&&l.dockItemHasGlow,e.lastChildId&&l.dockItemHasChild,"beside"===n&&l.dockItemLabelBeside,"below"===n&&l.dockItemLabelBelow].filter(Boolean).join(" ");i.className=s,i.setAttribute(d.modalId,E(e.id)),i.setAttribute("aria-label",`Restore ${e.title}`),e.glow&&i.style.setProperty("--modal-dock-glow-color",e.glow.color);const o=document.createElement("span");if(o.className=l.dockItemIcon,e.icon&&this.options.renderIcon){const t=this.options.renderIcon(e.icon);t?o.appendChild(t):o.appendChild(this.createIconPlaceholder(e.title))}else o.appendChild(this.createIconPlaceholder(e.title));if(i.appendChild(o),"hidden"!==n){const t=document.createElement("span");t.className=l.dockItemLabel,t.textContent=e.title,i.appendChild(t)}const a=document.createElement("span");if(a.className=l.dockItemGlow,i.appendChild(a),e.lastChildId&&t){const e=document.createElement("span");if(e.className=l.dockChildIndicator,t.icon&&this.options.renderIcon){const n=this.options.renderIcon(t.icon);n?e.appendChild(n):e.textContent="+"}else e.textContent="+";i.appendChild(e)}return i.addEventListener("click",t=>{g(e.id)?C(t.currentTarget):f(e.id)},{signal:this.abortController.signal}),i}createIconPlaceholder(e){const t=document.createElement("span");return t.className=l.dockItemIconPlaceholder,t.textContent=e.charAt(0),t}destroy(){this.abortController.abort(),this.unsubscribe(),this.isAttached&&(this.containerEl.remove(),this.isAttached=!1)}}class T{constructor(e){t(this,"element"),t(this,"unsubscribe"),t(this,"abortController",new AbortController),this.element=this.createDOM(),e.container.appendChild(this.element),this.unsubscribe=h(()=>{this.render()}),this.render()}createDOM(){const e=document.createElement("div");return e.className=l.backdrop,e.addEventListener("click",()=>{A().blockClicks&&v()},{signal:this.abortController.signal}),e}render(){A().visible?H()?(this.element.classList.add(l.backdropVisible),this.element.style.display=""):(this.element.classList.remove(l.backdropVisible),this.element.style.display="none"):this.element.style.display="none"}destroy(){this.abortController.abort(),this.unsubscribe(),this.element.remove()}}function x(e){if("string"==typeof e){const t=document.createElement("div");return t.innerHTML=e,t}return e}function B(e){const{content:t,footer:n,customIcon:i,...s}=e,o=t?x(t):void 0,a=n?x(n):void 0,r=new O({...s,container:document.body,content:o,footer:a});return{destroy:()=>r.destroy(),update:e=>{}}}function P(){const e=new S({container:document.body});return{destroy:()=>e.destroy()}}function F(){const e=new T({container:document.body});return{destroy:()=>e.destroy()}}function W(e={}){const{config:t}=e;t&&I(t),N(),w();const n=y(),i=e.backdrop??n.features.backdrop?F():null,s=e.dock??n.features.dock?P():null;return{backdrop:i,dock:s,destroy:()=>{null==i||i.destroy(),null==s||s.destroy(),z()}}}export{o as bringToFront,v as closeAllModals,L as closeModal,F as createBackdrop,P as createDock,B as createModal,y as getConfig,W as init,M as isModalOpen,$ as minimizeModal,D as openModal,f as restoreModal,I as setConfig};
1
+ var e=Object.defineProperty,t=(t,i,o)=>((t,i,o)=>i in t?e(t,i,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[i]=o)(t,"symbol"!=typeof i?i+"":i,o);import{Y as i,p as o,q as n,j as s,M as a,C as r,u as l,D as d,R as c,s as h,J as p,U as m,B as u,V as b,n as E,L as g,N as f,r as C,k as y,O as v,y as k,Z as A,A as H,E as w,F as I,G as N,I as z}from"./backdrop.js";import{d as L,f as M,h as $,m as O,e as D,_ as S,t as T}from"./backdrop.js";class x{constructor(e){t(this,"controller"),t(this,"dialogEl"),t(this,"headerEl"),t(this,"bodyEl"),t(this,"footerEl",null),t(this,"resizeHandlesContainer",null),t(this,"container"),t(this,"options"),t(this,"configHelper"),t(this,"unsubscribe",null),t(this,"abortController",new AbortController),this.options=e,this.container=e.container,this.configHelper=i(e.config),o(n({id:e.id,title:e.title,icon:e.icon,autoOpen:e.autoOpen??!0,glow:e.glow})),(e.autoOpen??!0)&&s(e.id),this.dialogEl=this.createDialogElement(),this.headerEl=this.createHeaderElement(),this.bodyEl=this.createBodyElement(),e.footer&&(this.footerEl=this.createFooterElement(),this.footerEl.appendChild(e.footer)),this.configHelper.isFeatureEnabled("resize")&&(this.resizeHandlesContainer=this.createResizeHandles()),this.dialogEl.appendChild(this.headerEl),this.dialogEl.appendChild(this.bodyEl),this.footerEl&&this.dialogEl.appendChild(this.footerEl),this.resizeHandlesContainer&&this.dialogEl.appendChild(this.resizeHandlesContainer),e.content&&this.bodyEl.appendChild(e.content);const r={id:e.id,title:e.title,icon:e.icon,config:e.config,maxWidth:e.maxWidth,preferredHeight:e.preferredHeight,glow:e.glow,closeOnEscape:e.closeOnEscape??!0,autoOpen:e.autoOpen??!0,openSourcePosition:e.openSourcePosition,onClose:e.onClose,skipRegistration:!0,configHelper:this.configHelper};this.controller=new a(r),this.container.appendChild(this.dialogEl),this.controller.mount(this.dialogEl),this.unsubscribe=this.controller.subscribe(e=>{this.updateFromState(e)}),this.updateFromState(this.controller.getState()),this.setupEventHandlers()}update(e){if(void 0!==e.title&&e.title!==this.options.title){this.options.title=e.title;const t=this.headerEl.querySelector(`.${r.headerTitle}`);t&&(t.textContent=e.title)}void 0!==e.content&&(this.options.content=e.content,this.bodyEl.innerHTML="",this.bodyEl.appendChild(e.content)),void 0!==e.footer&&(this.options.footer=e.footer,this.footerEl?(this.footerEl.innerHTML="",this.footerEl.appendChild(e.footer)):e.footer&&(this.footerEl=this.createFooterElement(),this.footerEl.appendChild(e.footer),this.resizeHandlesContainer?this.dialogEl.insertBefore(this.footerEl,this.resizeHandlesContainer):this.dialogEl.appendChild(this.footerEl))),this.controller.updateOptions({maxWidth:e.maxWidth,preferredHeight:e.preferredHeight,glow:e.glow,closeOnEscape:e.closeOnEscape}),void 0!==e.maxWidth&&(this.options.maxWidth=e.maxWidth),void 0!==e.preferredHeight&&(this.options.preferredHeight=e.preferredHeight),void 0!==e.glow&&(this.options.glow=e.glow),void 0!==e.closeOnEscape&&(this.options.closeOnEscape=e.closeOnEscape)}destroy(){var e;this.abortController.abort(),null==(e=this.unsubscribe)||e.call(this),this.controller.destroy(),l(this.options.id),this.dialogEl.remove()}createDialogElement(){const e=document.createElement("div");return e.className=r.dialog,e.setAttribute(d.modalId,String(this.options.id)),e.setAttribute("role","dialog"),e.setAttribute("aria-modal","true"),e.setAttribute("aria-labelledby",`${this.options.id}-title`),e.setAttribute("tabindex","-1"),e}createHeaderElement(){const e=document.createElement("header"),t=this.configHelper.isFeatureEnabled("drag"),i=this.configHelper.getAppearance("headerLayout"),o=this.configHelper.isFeatureEnabled("minimize"),n=!this.configHelper.isFeatureEnabled("dock"),s=this.configHelper.isFeatureEnabled("transparency");e.className=t?`${r.header} ${r.headerDraggable}`:r.header;const a=this.getIconElement();return"macos"===i?this.createMacOSHeader(e,a,o,n,s):this.createWindowsHeader(e,a,o,n,s),e}getIconElement(){return this.options.iconElement?this.options.iconElement:this.options.icon&&this.options.renderIcon?this.options.renderIcon(this.options.icon):null}createMacOSHeader(e,t,i,o,n){const s=document.createElement("div");s.className=r.headerTrafficLights;const a=document.createElement("button");if(a.type="button",a.className=`${r.headerLight} ${r.headerLightClose}`,a.setAttribute("aria-label","Close"),a.setAttribute("data-control","close"),s.appendChild(a),i){const e=document.createElement("button");e.type="button",e.className=`${r.headerLight} ${r.headerLightMinimize}${o?` ${r.headerLightDisabled}`:""}`,e.setAttribute("aria-label","Minimize"),e.setAttribute("data-control","minimize"),o&&(e.disabled=!0,e.title="Enable dock to minimize"),s.appendChild(e)}if(n){const e=document.createElement("button");e.type="button",e.className=`${r.headerLight} ${r.headerLightStyle}`,e.setAttribute("aria-label","Toggle style"),e.setAttribute("data-control","style"),s.appendChild(e)}e.appendChild(s);const l=document.createElement("div");if(l.className=r.headerMacCenter,t){const e=document.createElement("div");e.className=r.headerIcon,e.appendChild(t),l.appendChild(e)}const d=document.createElement("div");d.className=r.headerTitleGroup;const c=document.createElement("h2");c.className=r.headerTitle,c.id=`${this.options.id}-title`,c.textContent=this.options.title,d.appendChild(c),l.appendChild(d),e.appendChild(l);const h=document.createElement("div");h.className=r.headerMacSpacer,e.appendChild(h)}createWindowsHeader(e,t,i,o,n){const s=document.createElement("div");if(s.className=r.headerTitleGroup,t){const e=document.createElement("div");e.className=r.headerIcon,e.appendChild(t),s.appendChild(e)}const a=document.createElement("h2");a.className=r.headerTitle,a.id=`${this.options.id}-title`,a.textContent=this.options.title,s.appendChild(a),e.appendChild(s);const l=document.createElement("div");if(l.className=r.headerActions,n){const e=document.createElement("button");e.type="button",e.className=`${r.headerBtnWindows} ${r.headerBtnWindowsStyle}`,e.setAttribute("aria-label","Toggle style"),e.setAttribute("data-control","style"),e.innerHTML="&#9671;",l.appendChild(e)}if(i){const e=document.createElement("button");e.type="button",e.className=`${r.headerBtnWindows}${o?` ${r.headerBtnWindowsDisabled}`:""}`,e.setAttribute("aria-label","Minimize"),e.setAttribute("data-control","minimize"),e.innerHTML="&#8211;",o&&(e.disabled=!0,e.title="Enable dock to minimize"),l.appendChild(e)}const d=document.createElement("button");d.type="button",d.className=`${r.headerBtnWindows} ${r.headerBtnWindowsClose}`,d.setAttribute("aria-label","Close"),d.setAttribute("data-control","close"),d.innerHTML="&times;",l.appendChild(d),e.appendChild(l)}createBodyElement(){const e=document.createElement("div");return e.className=r.body,e}createFooterElement(){const e=document.createElement("div");return e.className=r.footer,e}createResizeHandles(){const e=document.createElement("div");e.className=r.resizeHandles,e.setAttribute("role","group"),e.setAttribute("aria-label","Resize handles");for(const t of c){const i=document.createElement("div");i.className=`${r.resizeHandle} ${r.resizePrefix}${t}`,i.setAttribute("role","separator"),i.setAttribute("tabindex","0"),i.setAttribute("aria-label",`Resize ${t}`),i.setAttribute("aria-orientation","n"===t||"s"===t?"horizontal":"vertical"),i.setAttribute(d.resizeDirection,t),e.appendChild(i)}return e}updateFromState(e){this.dialogEl.className=e.cssClasses.join(" "),this.updateStyles(e.style),this.dialogEl.setAttribute("data-state",e.dataState),this.dialogEl.setAttribute("data-animation-phase",e.dataAnimationPhase)}updateStyles(e){for(const[t,i]of Object.entries(e))t.startsWith("--")?this.dialogEl.style.setProperty(t,String(i)):this.dialogEl.style.setProperty(t,"number"==typeof i?String(i):i)}setupEventHandlers(){const e=this.abortController.signal,t="macos"===this.configHelper.getAppearance("headerLayout")?`.${r.headerLight}`:`.${r.headerBtnWindows}`;this.headerEl.addEventListener("pointerdown",e=>{e.target.closest(t)||this.controller.startDrag(e)},{signal:e}),this.dialogEl.addEventListener("pointermove",e=>{this.controller.handlePointerMove(e)},{signal:e}),this.dialogEl.addEventListener("pointerup",e=>{this.controller.handlePointerUp(e)},{signal:e}),this.headerEl.addEventListener("click",e=>{const t=e.target.closest("button");if(!t)return;const i=t.getAttribute("data-control");"close"===i?this.controller.close():"minimize"===i?this.controller.minimize():"style"===i&&this.controller.toggleTransparency()},{signal:e}),this.resizeHandlesContainer&&this.resizeHandlesContainer.addEventListener("pointerdown",e=>{const t=e.target.closest(`.${r.resizeHandle}`);if(!t)return;const i=t.getAttribute(d.resizeDirection);i&&this.controller.startResize(e,i)},{signal:e}),this.dialogEl.addEventListener("keydown",e=>{this.controller.handleKeyDown(e)},{signal:e}),this.dialogEl.addEventListener("pointerdown",()=>{this.controller.bringToFront()},{signal:e})}}class W{constructor(e){t(this,"containerEl"),t(this,"dockEl"),t(this,"parentContainer"),t(this,"unsubscribe"),t(this,"abortController",new AbortController),t(this,"isAttached",!1),t(this,"options"),this.options=e,this.parentContainer=e.container,this.containerEl=this.createContainerDOM(),this.dockEl=this.createDockDOM(),this.containerEl.appendChild(this.dockEl),this.unsubscribe=h(()=>{this.render()}),this.render()}createContainerDOM(){const e=document.createElement("div");return e.setAttribute("data-dock-container","true"),e}createDockDOM(){const e=document.createElement("div");return e.className=r.dock,e}render(){const e=y();if(!e.features.dock)return void(this.isAttached&&(this.containerEl.remove(),this.isAttached=!1));const t=p();if(0===t.length)return void(this.isAttached&&(this.containerEl.remove(),this.isAttached=!1));this.isAttached||(this.parentContainer.appendChild(this.containerEl),this.isAttached=!0);const i=e.dock.position;if(this.containerEl.className=m(i,0===t.length),this.containerEl.style.zIndex=String(u("DOCK")),this.dockEl.className=b(i,"horizontal"),this.dockEl.innerHTML="","free"===i){const e=this.createDockHandle();this.dockEl.appendChild(e)}const o=v(),n=e.dock.labelMode;for(const e of t){const t=e.lastChildId?o.get(e.lastChildId):null,i=this.createDockItem(e,t??null,n);this.dockEl.appendChild(i)}}createDockHandle(){const e=document.createElement("button");return e.type="button",e.className=r.dockHandle,e.setAttribute("aria-label","Drag dock"),e}createDockItem(e,t,i){const o=document.createElement("button"),n=[r.dockItem,e.glow&&r.dockItemHasGlow,e.lastChildId&&r.dockItemHasChild,"beside"===i&&r.dockItemLabelBeside,"below"===i&&r.dockItemLabelBelow].filter(Boolean).join(" ");o.className=n,o.setAttribute(d.modalId,E(e.id)),o.setAttribute("aria-label",`Restore ${e.title}`),e.glow&&o.style.setProperty("--modal-dock-glow-color",e.glow.color);const s=document.createElement("span");if(s.className=r.dockItemIcon,e.icon&&this.options.renderIcon){const t=this.options.renderIcon(e.icon);t?s.appendChild(t):s.appendChild(this.createIconPlaceholder(e.title))}else s.appendChild(this.createIconPlaceholder(e.title));if(o.appendChild(s),"hidden"!==i){const t=document.createElement("span");t.className=r.dockItemLabel,t.textContent=e.title,o.appendChild(t)}const a=document.createElement("span");if(a.className=r.dockItemGlow,o.appendChild(a),e.lastChildId&&t){const e=document.createElement("span");if(e.className=r.dockChildIndicator,t.icon&&this.options.renderIcon){const i=this.options.renderIcon(t.icon);i?e.appendChild(i):e.textContent="+"}else e.textContent="+";o.appendChild(e)}return o.addEventListener("click",t=>{g(e.id)?f(t.currentTarget):C(e.id)},{signal:this.abortController.signal}),o}createIconPlaceholder(e){const t=document.createElement("span");return t.className=r.dockItemIconPlaceholder,t.textContent=e.charAt(0),t}destroy(){this.abortController.abort(),this.unsubscribe(),this.isAttached&&(this.containerEl.remove(),this.isAttached=!1)}}class B{constructor(e){t(this,"element"),t(this,"unsubscribe"),t(this,"abortController",new AbortController),this.element=this.createDOM(),e.container.appendChild(this.element),this.unsubscribe=h(()=>{this.render()}),this.render()}createDOM(){const e=document.createElement("div");return e.className=r.backdrop,e.addEventListener("click",()=>{k().blockClicks&&A()},{signal:this.abortController.signal}),e}render(){k().visible?H()?(this.element.classList.add(r.backdropVisible),this.element.style.display=""):(this.element.classList.remove(r.backdropVisible),this.element.style.display="none"):this.element.style.display="none"}destroy(){this.abortController.abort(),this.unsubscribe(),this.element.remove()}}function F(e){if("string"==typeof e){const t=document.createElement("div");return t.innerHTML=e,t}return e}function P(e){const{content:t,footer:i,customIcon:o,...n}=e,s=t?F(t):void 0,a=i?F(i):void 0,r=o?F(o):n.iconElement,l=new x({...n,container:document.body,content:s,footer:a,iconElement:r});return{destroy:()=>l.destroy(),update:e=>{const{content:t,footer:i,...o}=e;l.update({...o,content:void 0!==t?F(t):void 0,footer:void 0!==i?F(i):void 0})}}}function R(){const e=new W({container:document.body});return{destroy:()=>e.destroy()}}function j(){const e=new B({container:document.body});return{destroy:()=>e.destroy()}}function G(e={}){const{config:t}=e;t&&w(t),I(),N();const i=y(),o=e.backdrop??i.features.backdrop?j():null,n=e.dock??i.features.dock?R():null;return{backdrop:o,dock:n,destroy:()=>{null==o||o.destroy(),null==n||n.destroy(),z()}}}export{s as bringToFront,A as closeAllModals,L as closeModal,j as createBackdrop,R as createDock,P as createModal,y as getConfig,M as getModalState,v as getModalsStore,G as init,$ as isModalOpen,O as minimizeModal,D as openModal,C as restoreModal,w as setConfig,S as toggleModalTransparency,T as triggerAttention};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "epic-modals",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "A stunning modal library with macOS-style animations, drag, resize, and dock. Supports Svelte 5, React, and vanilla JS.",
5
5
  "keywords": [
6
6
  "modal",