@data-slot/dialog 0.2.129 → 0.2.132
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 +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
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"])
|
|
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,
|
|
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.
|
|
3
|
+
"version": "0.2.132",
|
|
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.
|
|
38
|
+
"@data-slot/core": "0.2.132"
|
|
39
39
|
}
|
|
40
40
|
}
|