@data-slot/dialog 0.2.130 → 0.2.133

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/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@data-slot/core`);const t=`@data-slot/dialog`,n=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`,r=[];let i=null;function a(){r.forEach((e,t)=>{let n=String(t);e._overlay&&(e._overlay.setAttribute(`data-stack-index`,n),e._overlay.style.setProperty(`--dialog-stack-index`,n),e._overlay.style.setProperty(`--dialog-overlay-stack-index`,n)),e._content&&(e._content.setAttribute(`data-stack-index`,n),e._content.style.setProperty(`--dialog-stack-index`,n),e._content.style.setProperty(`--dialog-content-stack-index`,n))})}function o(){if(i)return;let t=(0,e.on)(document,`keydown`,e=>{if(r.length===0)return;let t=r[r.length-1];!t||!t.isOpen||e.key===`Tab`&&t._handleKeydown&&t._handleKeydown(e)});i=()=>{t(),i=null}}function s(){r.length===0&&i&&i()}function c(i,c={}){let l=(0,e.reuseRootBinding)(i,t,`[@data-slot/dialog] createDialog() called more than once for the same root. Returning the existing controller. Destroy it before rebinding with new options.`);if(l)return l;let u=c.defaultOpen??(0,e.getDataBool)(i,`defaultOpen`)??!1,d=c.onOpenChange,f=c.closeOnClickOutside??(0,e.getDataBool)(i,`closeOnClickOutside`)??!0,p=c.closeOnEscape??(0,e.getDataBool)(i,`closeOnEscape`)??!0,m=c.lockScroll??(0,e.getDataBool)(i,`lockScroll`)??!0,h=c.alertDialog??(0,e.getDataBool)(i,`alertDialog`)??!1,g=(0,e.getPart)(i,`dialog-trigger`),_=(0,e.getPart)(i,`dialog-portal`),v=(0,e.getPart)(i,`dialog-overlay`),y=(0,e.getPart)(i,`dialog-content`),b=(0,e.getPart)(i,`dialog-title`),x=(0,e.getPart)(i,`dialog-description`);if(!y)throw Error(`Dialog requires dialog-content slot`);if(!v)throw Error(`Dialog requires dialog-overlay slot`);let S=!1,C=!1,w=null,T=[],E=_?(0,e.createPortalLifecycle)({content:_,root:i}):null,D=!1;(0,e.ensureId)(y,`dialog-content`),y.setAttribute(`role`,h?`alertdialog`:`dialog`),(0,e.setAria)(y,`modal`,!0),(0,e.linkLabelledBy)(y,b,x),v.setAttribute(`role`,`presentation`),v.setAttribute(`aria-hidden`,`true`),v.tabIndex=-1,g&&(g.setAttribute(`aria-haspopup`,`dialog`),g.setAttribute(`aria-controls`,y.id),(0,e.setAria)(g,`expanded`,!1));let O=!1,k=()=>{y.hasAttribute(`tabindex`)||(y.tabIndex=-1,O=!0)},A=()=>{O&&=(y.removeAttribute(`tabindex`),!1)},j=()=>{let e=y.querySelector(`[autofocus]`);if(e)return e.focus();let t=y.querySelector(n);if(t)return t.focus();k(),y.focus()},M=()=>{E?.mount()},N=()=>{requestAnimationFrame(()=>{w&&document.contains(w)&&typeof w.focus==`function`?(0,e.focusElement)(w):g&&document.contains(g)&&(0,e.focusElement)(g),w=null})},P=e=>{if(i.setAttribute(`data-state`,e),_&&_.setAttribute(`data-state`,e),v.setAttribute(`data-state`,e),y.setAttribute(`data-state`,e),e===`open`){i.setAttribute(`data-open`,``),_?.setAttribute(`data-open`,``),v.setAttribute(`data-open`,``),y.setAttribute(`data-open`,``),i.removeAttribute(`data-closed`),_?.removeAttribute(`data-closed`),v.removeAttribute(`data-closed`),y.removeAttribute(`data-closed`);return}i.setAttribute(`data-closed`,``),_?.setAttribute(`data-closed`,``),v.setAttribute(`data-closed`,``),y.setAttribute(`data-closed`,``),i.removeAttribute(`data-open`),_?.removeAttribute(`data-open`),v.removeAttribute(`data-open`),y.removeAttribute(`data-open`)},F=()=>{v.removeAttribute(`data-stack-index`),y.removeAttribute(`data-stack-index`),v.style.removeProperty(`--dialog-stack-index`),v.style.removeProperty(`--dialog-overlay-stack-index`),y.style.removeProperty(`--dialog-stack-index`),y.style.removeProperty(`--dialog-content-stack-index`)},I=()=>{let e=r.indexOf(K);e!==-1&&r.splice(e,1),F(),a(),s()},L=0,R=0,z=0,B=0,V=(e,t)=>{C||S||t!==L||(e.hidden=!0,R=Math.max(0,R-1),R===0&&(A(),N()))},H=(0,e.createPresenceLifecycle)({element:v,onExitComplete:()=>V(v,z)}),U=(0,e.createPresenceLifecycle)({element:y,onExitComplete:()=>V(y,B)}),W=(t,n=!1)=>{S===t&&!n||(t?(L+=1,R=0,M(),w=document.activeElement,r.push(K),o(),a(),m&&!D&&((0,e.lockScroll)(),D=!0)):(L+=1,R=2,z=L,B=L,I(),D&&=((0,e.unlockScroll)(),!1)),S=t,g&&(0,e.setAria)(g,`expanded`,S),t?(v.hidden=!1,y.hidden=!1,P(`open`),H.enter(),U.enter()):(P(`closed`),H.exit(),U.exit()),(0,e.emit)(i,`dialog:change`,{open:S}),d?.(S),t&&requestAnimationFrame(j))},G=e=>{if(e.key!==`Tab`)return;let t=y.querySelectorAll(n);if(t.length===0){e.preventDefault(),k(),y.focus();return}let r=t[0],i=t[t.length-1],a=document.activeElement;if(!y.contains(a)){e.preventDefault(),r.focus();return}if(r===i){e.preventDefault();return}e.shiftKey?a===r&&(e.preventDefault(),i.focus()):a===i&&(e.preventDefault(),r.focus())};y.hidden=!0,v.hidden=!0,P(`closed`),g&&T.push((0,e.on)(g,`click`,()=>W(!S))),T.push((0,e.on)(y,`click`,e=>{let t=e.target;if(!t)return;let n=t.closest?.(`[data-slot="dialog-close"]`);n&&y.contains(n)&&W(!1)})),f&&T.push((0,e.on)(v,`click`,e=>{e.button===0&&e.target===v&&S&&W(!1)})),T.push((0,e.createDismissLayer)({root:i,isOpen:()=>S,onDismiss:()=>W(!1),closeOnClickOutside:!1,closeOnEscape:p}));let K={open:()=>W(!0),close:()=>W(!1),toggle:()=>W(!S),get isOpen(){return S},destroy:()=>{C=!0,I(),L+=1,R=0,H.cleanup(),U.cleanup(),S=!1,P(`closed`),v.hidden=!0,y.hidden=!0,g&&(0,e.setAria)(g,`expanded`,!1),D&&=((0,e.unlockScroll)(),!1),A(),w!==null&&N(),T.forEach(e=>e()),T.length=0,E?.cleanup(),(0,e.clearRootBinding)(i,t,K)},_handleKeydown:G,_content:y,_overlay:v};return T.push((0,e.on)(i,`dialog:set`,e=>{let t=e.detail,n;t?.open===void 0?t?.value!==void 0&&(n=t.value):n=t.open,typeof n==`boolean`&&W(n)})),(0,e.setRootBinding)(i,t,K),u&&W(!0),K}function l(n=document){let r=[];for(let i of(0,e.getRoots)(n,`dialog`))(0,e.hasRootBinding)(i,t)||r.push(c(i));return r}exports.create=l,exports.createDialog=c;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@data-slot/core`);const t=`@data-slot/dialog`,n=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`;function r(r,i={}){let a=(0,e.reuseRootBinding)(r,t,`[@data-slot/dialog] createDialog() called more than once for the same root. Returning the existing controller. Destroy it before rebinding with new options.`);if(a)return a;let o=i.defaultOpen??(0,e.getDataBool)(r,`defaultOpen`)??!1,s=i.onOpenChange,c=i.closeOnClickOutside??(0,e.getDataBool)(r,`closeOnClickOutside`)??!0,l=i.closeOnEscape??(0,e.getDataBool)(r,`closeOnEscape`)??!0,u=i.lockScroll??(0,e.getDataBool)(r,`lockScroll`)??!0,d=i.alertDialog??(0,e.getDataBool)(r,`alertDialog`)??!1,f=(0,e.getPart)(r,`dialog-trigger`),p=(0,e.getPart)(r,`dialog-portal`),m=(0,e.getPart)(r,`dialog-overlay`),h=(0,e.getPart)(r,`dialog-content`),g=(0,e.getPart)(r,`dialog-title`),_=(0,e.getPart)(r,`dialog-description`);if(!h)throw Error(`Dialog requires dialog-content slot`);if(!m)throw Error(`Dialog requires dialog-overlay slot`);let v=!1,y=!1,b=null,x=[],S=p?(0,e.createPortalLifecycle)({content:p,root:r}):null,C=!1;(0,e.ensureId)(h,`dialog-content`),h.setAttribute(`role`,d?`alertdialog`:`dialog`),(0,e.setAria)(h,`modal`,!0),(0,e.linkLabelledBy)(h,g,_),m.setAttribute(`role`,`presentation`),m.setAttribute(`aria-hidden`,`true`),m.tabIndex=-1,f&&(f.setAttribute(`aria-haspopup`,`dialog`),f.setAttribute(`aria-controls`,h.id),(0,e.setAria)(f,`expanded`,!1));let w=!1,T=()=>{h.hasAttribute(`tabindex`)||(h.tabIndex=-1,w=!0)},E=()=>{w&&=(h.removeAttribute(`tabindex`),!1)},D=()=>{let e=h.querySelector(`[autofocus]`);if(e)return e.focus();let t=h.querySelector(n);if(t)return t.focus();T(),h.focus()},O=()=>{S?.mount()},k=()=>{requestAnimationFrame(()=>{b&&document.contains(b)&&typeof b.focus==`function`?(0,e.focusElement)(b):f&&document.contains(f)&&(0,e.focusElement)(f),b=null})},A=e=>{if(r.setAttribute(`data-state`,e),p&&p.setAttribute(`data-state`,e),m.setAttribute(`data-state`,e),h.setAttribute(`data-state`,e),e===`open`){r.setAttribute(`data-open`,``),p?.setAttribute(`data-open`,``),m.setAttribute(`data-open`,``),h.setAttribute(`data-open`,``),r.removeAttribute(`data-closed`),p?.removeAttribute(`data-closed`),m.removeAttribute(`data-closed`),h.removeAttribute(`data-closed`);return}r.setAttribute(`data-closed`,``),p?.setAttribute(`data-closed`,``),m.setAttribute(`data-closed`,``),h.setAttribute(`data-closed`,``),r.removeAttribute(`data-open`),p?.removeAttribute(`data-open`),m.removeAttribute(`data-open`),h.removeAttribute(`data-open`)},j=0,M=0,N=0,P=0,F=(e,t)=>{y||v||t!==j||(e.hidden=!0,M=Math.max(0,M-1),M===0&&(E(),k()))},I=(0,e.createPresenceLifecycle)({element:m,onExitComplete:()=>F(m,N)}),L=(0,e.createPresenceLifecycle)({element:h,onExitComplete:()=>F(h,P)}),R=(t,n=!1)=>{v===t&&!n||(t?(j+=1,M=0,O(),b=document.activeElement,B.open(),u&&!C&&((0,e.lockScroll)(),C=!0)):(j+=1,M=2,N=j,P=j,B.close(),C&&=((0,e.unlockScroll)(),!1)),v=t,f&&(0,e.setAria)(f,`expanded`,v),t?(m.hidden=!1,h.hidden=!1,A(`open`),I.enter(),L.enter()):(A(`closed`),I.exit(),L.exit()),(0,e.emit)(r,`dialog:change`,{open:v}),s?.(v),t&&requestAnimationFrame(D))},z=e=>{if(e.key!==`Tab`)return;let t=h.querySelectorAll(n);if(t.length===0){e.preventDefault(),T(),h.focus();return}let r=t[0],i=t[t.length-1],a=document.activeElement;if(!h.contains(a)){e.preventDefault(),r.focus();return}if(r===i){e.preventDefault();return}e.shiftKey?a===r&&(e.preventDefault(),i.focus()):a===i&&(e.preventDefault(),r.focus())},B=(0,e.createModalStackItem)({content:h,overlay:m,onTabKeydown:z,cssVarPrefix:`dialog`});h.hidden=!0,m.hidden=!0,A(`closed`),f&&x.push((0,e.on)(f,`click`,()=>R(!v))),x.push((0,e.on)(h,`click`,e=>{let t=e.target;if(!t)return;let n=t.closest?.(`[data-slot="dialog-close"]`);n&&h.contains(n)&&R(!1)})),c&&x.push((0,e.on)(m,`click`,e=>{e.button===0&&e.target===m&&v&&R(!1)})),x.push((0,e.createDismissLayer)({root:r,isOpen:()=>v,onDismiss:()=>R(!1),closeOnClickOutside:!1,closeOnEscape:l}));let V={open:()=>R(!0),close:()=>R(!1),toggle:()=>R(!v),get isOpen(){return v},destroy:()=>{y=!0,B.destroy(),j+=1,M=0,I.cleanup(),L.cleanup(),v=!1,A(`closed`),m.hidden=!0,h.hidden=!0,f&&(0,e.setAria)(f,`expanded`,!1),C&&=((0,e.unlockScroll)(),!1),E(),b!==null&&k(),x.forEach(e=>e()),x.length=0,S?.cleanup(),(0,e.clearRootBinding)(r,t,V)},_handleKeydown:z,_content:h,_overlay:m};return x.push((0,e.on)(r,`dialog:set`,e=>{let t=e.detail,n;t?.open===void 0?t?.value!==void 0&&(n=t.value):n=t.open,typeof n==`boolean`&&R(n)})),(0,e.setRootBinding)(r,t,V),o&&R(!0),V}function i(n=document){let i=[];for(let a of(0,e.getRoots)(n,`dialog`))(0,e.hasRootBinding)(a,t)||i.push(r(a));return i}exports.create=i,exports.createDialog=r;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{clearRootBinding as e,createDismissLayer as t,createPortalLifecycle as n,createPresenceLifecycle as r,emit as i,ensureId as ee,focusElement as a,getDataBool as o,getPart as s,getRoots as c,hasRootBinding as l,linkLabelledBy as te,lockScroll as ne,on as u,reuseRootBinding as re,setAria as d,setRootBinding as f,unlockScroll as p}from"@data-slot/core";const m=`@data-slot/dialog`,h=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`,g=[];let _=null;function v(){g.forEach((e,t)=>{let n=String(t);e._overlay&&(e._overlay.setAttribute(`data-stack-index`,n),e._overlay.style.setProperty(`--dialog-stack-index`,n),e._overlay.style.setProperty(`--dialog-overlay-stack-index`,n)),e._content&&(e._content.setAttribute(`data-stack-index`,n),e._content.style.setProperty(`--dialog-stack-index`,n),e._content.style.setProperty(`--dialog-content-stack-index`,n))})}function y(){if(_)return;let e=u(document,`keydown`,e=>{if(g.length===0)return;let t=g[g.length-1];!t||!t.isOpen||e.key===`Tab`&&t._handleKeydown&&t._handleKeydown(e)});_=()=>{e(),_=null}}function b(){g.length===0&&_&&_()}function x(c,l={}){let _=re(c,m,`[@data-slot/dialog] createDialog() called more than once for the same root. Returning the existing controller. Destroy it before rebinding with new options.`);if(_)return _;let x=l.defaultOpen??o(c,`defaultOpen`)??!1,S=l.onOpenChange,C=l.closeOnClickOutside??o(c,`closeOnClickOutside`)??!0,w=l.closeOnEscape??o(c,`closeOnEscape`)??!0,ie=l.lockScroll??o(c,`lockScroll`)??!0,ae=l.alertDialog??o(c,`alertDialog`)??!1,T=s(c,`dialog-trigger`),E=s(c,`dialog-portal`),D=s(c,`dialog-overlay`),O=s(c,`dialog-content`),k=s(c,`dialog-title`),A=s(c,`dialog-description`);if(!O)throw Error(`Dialog requires dialog-content slot`);if(!D)throw Error(`Dialog requires dialog-overlay slot`);let j=!1,M=!1,N=null,P=[],F=E?n({content:E,root:c}):null,I=!1;ee(O,`dialog-content`),O.setAttribute(`role`,ae?`alertdialog`:`dialog`),d(O,`modal`,!0),te(O,k,A),D.setAttribute(`role`,`presentation`),D.setAttribute(`aria-hidden`,`true`),D.tabIndex=-1,T&&(T.setAttribute(`aria-haspopup`,`dialog`),T.setAttribute(`aria-controls`,O.id),d(T,`expanded`,!1));let L=!1,R=()=>{O.hasAttribute(`tabindex`)||(O.tabIndex=-1,L=!0)},z=()=>{L&&=(O.removeAttribute(`tabindex`),!1)},oe=()=>{let e=O.querySelector(`[autofocus]`);if(e)return e.focus();let t=O.querySelector(h);if(t)return t.focus();R(),O.focus()},B=()=>{F?.mount()},V=()=>{requestAnimationFrame(()=>{N&&document.contains(N)&&typeof N.focus==`function`?a(N):T&&document.contains(T)&&a(T),N=null})},H=e=>{if(c.setAttribute(`data-state`,e),E&&E.setAttribute(`data-state`,e),D.setAttribute(`data-state`,e),O.setAttribute(`data-state`,e),e===`open`){c.setAttribute(`data-open`,``),E?.setAttribute(`data-open`,``),D.setAttribute(`data-open`,``),O.setAttribute(`data-open`,``),c.removeAttribute(`data-closed`),E?.removeAttribute(`data-closed`),D.removeAttribute(`data-closed`),O.removeAttribute(`data-closed`);return}c.setAttribute(`data-closed`,``),E?.setAttribute(`data-closed`,``),D.setAttribute(`data-closed`,``),O.setAttribute(`data-closed`,``),c.removeAttribute(`data-open`),E?.removeAttribute(`data-open`),D.removeAttribute(`data-open`),O.removeAttribute(`data-open`)},U=()=>{D.removeAttribute(`data-stack-index`),O.removeAttribute(`data-stack-index`),D.style.removeProperty(`--dialog-stack-index`),D.style.removeProperty(`--dialog-overlay-stack-index`),O.style.removeProperty(`--dialog-stack-index`),O.style.removeProperty(`--dialog-content-stack-index`)},W=()=>{let e=g.indexOf($);e!==-1&&g.splice(e,1),U(),v(),b()},G=0,K=0,q=0,J=0,Y=(e,t)=>{M||j||t!==G||(e.hidden=!0,K=Math.max(0,K-1),K===0&&(z(),V()))},X=r({element:D,onExitComplete:()=>Y(D,q)}),Z=r({element:O,onExitComplete:()=>Y(O,J)}),Q=(e,t=!1)=>{j===e&&!t||(e?(G+=1,K=0,B(),N=document.activeElement,g.push($),y(),v(),ie&&!I&&(ne(),I=!0)):(G+=1,K=2,q=G,J=G,W(),I&&=(p(),!1)),j=e,T&&d(T,`expanded`,j),e?(D.hidden=!1,O.hidden=!1,H(`open`),X.enter(),Z.enter()):(H(`closed`),X.exit(),Z.exit()),i(c,`dialog:change`,{open:j}),S?.(j),e&&requestAnimationFrame(oe))},se=e=>{if(e.key!==`Tab`)return;let t=O.querySelectorAll(h);if(t.length===0){e.preventDefault(),R(),O.focus();return}let n=t[0],r=t[t.length-1],i=document.activeElement;if(!O.contains(i)){e.preventDefault(),n.focus();return}if(n===r){e.preventDefault();return}e.shiftKey?i===n&&(e.preventDefault(),r.focus()):i===r&&(e.preventDefault(),n.focus())};O.hidden=!0,D.hidden=!0,H(`closed`),T&&P.push(u(T,`click`,()=>Q(!j))),P.push(u(O,`click`,e=>{let t=e.target;if(!t)return;let n=t.closest?.(`[data-slot="dialog-close"]`);n&&O.contains(n)&&Q(!1)})),C&&P.push(u(D,`click`,e=>{e.button===0&&e.target===D&&j&&Q(!1)})),P.push(t({root:c,isOpen:()=>j,onDismiss:()=>Q(!1),closeOnClickOutside:!1,closeOnEscape:w}));let $={open:()=>Q(!0),close:()=>Q(!1),toggle:()=>Q(!j),get isOpen(){return j},destroy:()=>{M=!0,W(),G+=1,K=0,X.cleanup(),Z.cleanup(),j=!1,H(`closed`),D.hidden=!0,O.hidden=!0,T&&d(T,`expanded`,!1),I&&=(p(),!1),z(),N!==null&&V(),P.forEach(e=>e()),P.length=0,F?.cleanup(),e(c,m,$)},_handleKeydown:se,_content:O,_overlay:D};return P.push(u(c,`dialog:set`,e=>{let t=e.detail,n;t?.open===void 0?t?.value!==void 0&&(n=t.value):n=t.open,typeof n==`boolean`&&Q(n)})),f(c,m,$),x&&Q(!0),$}function S(e=document){let t=[];for(let n of c(e,`dialog`))l(n,m)||t.push(x(n));return t}export{S as create,x as createDialog};
1
+ import{clearRootBinding as e,createDismissLayer as t,createModalStackItem as n,createPortalLifecycle as r,createPresenceLifecycle as i,emit as a,ensureId as o,focusElement as s,getDataBool as c,getPart as l,getRoots as u,hasRootBinding as d,linkLabelledBy as f,lockScroll as p,on as m,reuseRootBinding as ee,setAria as h,setRootBinding as te,unlockScroll as g}from"@data-slot/core";const _=`@data-slot/dialog`,v=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`;function y(u,d={}){let y=ee(u,_,`[@data-slot/dialog] createDialog() called more than once for the same root. Returning the existing controller. Destroy it before rebinding with new options.`);if(y)return y;let b=d.defaultOpen??c(u,`defaultOpen`)??!1,x=d.onOpenChange,S=d.closeOnClickOutside??c(u,`closeOnClickOutside`)??!0,ne=d.closeOnEscape??c(u,`closeOnEscape`)??!0,re=d.lockScroll??c(u,`lockScroll`)??!0,C=d.alertDialog??c(u,`alertDialog`)??!1,w=l(u,`dialog-trigger`),T=l(u,`dialog-portal`),E=l(u,`dialog-overlay`),D=l(u,`dialog-content`),O=l(u,`dialog-title`),k=l(u,`dialog-description`);if(!D)throw Error(`Dialog requires dialog-content slot`);if(!E)throw Error(`Dialog requires dialog-overlay slot`);let A=!1,j=!1,M=null,N=[],P=T?r({content:T,root:u}):null,F=!1;o(D,`dialog-content`),D.setAttribute(`role`,C?`alertdialog`:`dialog`),h(D,`modal`,!0),f(D,O,k),E.setAttribute(`role`,`presentation`),E.setAttribute(`aria-hidden`,`true`),E.tabIndex=-1,w&&(w.setAttribute(`aria-haspopup`,`dialog`),w.setAttribute(`aria-controls`,D.id),h(w,`expanded`,!1));let I=!1,L=()=>{D.hasAttribute(`tabindex`)||(D.tabIndex=-1,I=!0)},R=()=>{I&&=(D.removeAttribute(`tabindex`),!1)},z=()=>{let e=D.querySelector(`[autofocus]`);if(e)return e.focus();let t=D.querySelector(v);if(t)return t.focus();L(),D.focus()},B=()=>{P?.mount()},V=()=>{requestAnimationFrame(()=>{M&&document.contains(M)&&typeof M.focus==`function`?s(M):w&&document.contains(w)&&s(w),M=null})},H=e=>{if(u.setAttribute(`data-state`,e),T&&T.setAttribute(`data-state`,e),E.setAttribute(`data-state`,e),D.setAttribute(`data-state`,e),e===`open`){u.setAttribute(`data-open`,``),T?.setAttribute(`data-open`,``),E.setAttribute(`data-open`,``),D.setAttribute(`data-open`,``),u.removeAttribute(`data-closed`),T?.removeAttribute(`data-closed`),E.removeAttribute(`data-closed`),D.removeAttribute(`data-closed`);return}u.setAttribute(`data-closed`,``),T?.setAttribute(`data-closed`,``),E.setAttribute(`data-closed`,``),D.setAttribute(`data-closed`,``),u.removeAttribute(`data-open`),T?.removeAttribute(`data-open`),E.removeAttribute(`data-open`),D.removeAttribute(`data-open`)},U=0,W=0,G=0,K=0,q=(e,t)=>{j||A||t!==U||(e.hidden=!0,W=Math.max(0,W-1),W===0&&(R(),V()))},J=i({element:E,onExitComplete:()=>q(E,G)}),Y=i({element:D,onExitComplete:()=>q(D,K)}),X=(e,t=!1)=>{A===e&&!t||(e?(U+=1,W=0,B(),M=document.activeElement,Q.open(),re&&!F&&(p(),F=!0)):(U+=1,W=2,G=U,K=U,Q.close(),F&&=(g(),!1)),A=e,w&&h(w,`expanded`,A),e?(E.hidden=!1,D.hidden=!1,H(`open`),J.enter(),Y.enter()):(H(`closed`),J.exit(),Y.exit()),a(u,`dialog:change`,{open:A}),x?.(A),e&&requestAnimationFrame(z))},Z=e=>{if(e.key!==`Tab`)return;let t=D.querySelectorAll(v);if(t.length===0){e.preventDefault(),L(),D.focus();return}let n=t[0],r=t[t.length-1],i=document.activeElement;if(!D.contains(i)){e.preventDefault(),n.focus();return}if(n===r){e.preventDefault();return}e.shiftKey?i===n&&(e.preventDefault(),r.focus()):i===r&&(e.preventDefault(),n.focus())},Q=n({content:D,overlay:E,onTabKeydown:Z,cssVarPrefix:`dialog`});D.hidden=!0,E.hidden=!0,H(`closed`),w&&N.push(m(w,`click`,()=>X(!A))),N.push(m(D,`click`,e=>{let t=e.target;if(!t)return;let n=t.closest?.(`[data-slot="dialog-close"]`);n&&D.contains(n)&&X(!1)})),S&&N.push(m(E,`click`,e=>{e.button===0&&e.target===E&&A&&X(!1)})),N.push(t({root:u,isOpen:()=>A,onDismiss:()=>X(!1),closeOnClickOutside:!1,closeOnEscape:ne}));let $={open:()=>X(!0),close:()=>X(!1),toggle:()=>X(!A),get isOpen(){return A},destroy:()=>{j=!0,Q.destroy(),U+=1,W=0,J.cleanup(),Y.cleanup(),A=!1,H(`closed`),E.hidden=!0,D.hidden=!0,w&&h(w,`expanded`,!1),F&&=(g(),!1),R(),M!==null&&V(),N.forEach(e=>e()),N.length=0,P?.cleanup(),e(u,_,$)},_handleKeydown:Z,_content:D,_overlay:E};return N.push(m(u,`dialog:set`,e=>{let t=e.detail,n;t?.open===void 0?t?.value!==void 0&&(n=t.value):n=t.open,typeof n==`boolean`&&X(n)})),te(u,_,$),b&&X(!0),$}function b(e=document){let t=[];for(let n of u(e,`dialog`))d(n,_)||t.push(y(n));return t}export{b as create,y as createDialog};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@data-slot/dialog",
3
- "version": "0.2.130",
3
+ "version": "0.2.133",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.cjs",
@@ -35,6 +35,6 @@
35
35
  ],
36
36
  "license": "MIT",
37
37
  "dependencies": {
38
- "@data-slot/core": "0.2.130"
38
+ "@data-slot/core": "0.2.133"
39
39
  }
40
40
  }