@data-slot/dialog 0.1.1 → 0.1.3

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
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=s(require(`@data-slot/core`)),l=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`,u=[];let d=0,f=``,p=``;function m(e,t={}){let{defaultOpen:n=!1,onOpenChange:r,closeOnClickOutside:i=!0,closeOnEscape:a=!0,lockScroll:o=!0,alertDialog:s=!1}=t,m=(0,c.getPart)(e,`dialog-trigger`),h=(0,c.getPart)(e,`dialog-overlay`),g=(0,c.getPart)(e,`dialog-content`),_=(0,c.getPart)(e,`dialog-close`),v=(0,c.getPart)(e,`dialog-title`),y=(0,c.getPart)(e,`dialog-description`);if(!g)throw Error(`Dialog requires dialog-content slot`);if(!h)throw Error(`Dialog requires dialog-overlay slot`);let b=!1,x=null,S=[];(0,c.ensureId)(g,`dialog-content`),g.setAttribute(`role`,s?`alertdialog`:`dialog`),(0,c.setAria)(g,`modal`,!0),(0,c.linkLabelledBy)(g,v,y),h.setAttribute(`role`,`presentation`),h.setAttribute(`aria-hidden`,`true`),h.tabIndex=-1,m&&(m.setAttribute(`aria-haspopup`,`dialog`),m.setAttribute(`aria-controls`,g.id),(0,c.setAria)(m,`expanded`,!1));let C=!1,w=()=>{g.hasAttribute(`tabindex`)||(g.tabIndex=-1,C=!0)},T=()=>{C&&(g.removeAttribute(`tabindex`),C=!1)},E=()=>{let e=g.querySelector(`[autofocus]`);if(e)return e.focus();let t=g.querySelector(l);if(t)return t.focus();w(),g.focus()},D=(t,n=!1)=>{if(!(b===t&&!n)){if(t){if(x=document.activeElement,u.push(O),o){if(d===0){let e=window.innerWidth-document.documentElement.clientWidth;f=document.body.style.overflow,p=document.body.style.paddingRight,document.body.style.paddingRight=`${e}px`,document.body.style.overflow=`hidden`}d++}}else{let e=u.indexOf(O);e!==-1&&u.splice(e,1),o&&(d--,d===0&&(document.body.style.overflow=f,document.body.style.paddingRight=p)),T();let t=x;x=null,requestAnimationFrame(()=>{t&&document.contains(t)&&typeof t.focus==`function`&&t.focus()})}b=t,g.hidden=!b,h.hidden=!b,m&&(0,c.setAria)(m,`expanded`,b),e.setAttribute(`data-state`,b?`open`:`closed`),(0,c.emit)(e,`dialog:change`,{open:b}),r?.(b),t&&requestAnimationFrame(E)}};n?(g.hidden=!1,h.hidden=!1,e.setAttribute(`data-state`,`open`),D(!0,!0)):(g.hidden=!0,h.hidden=!0,e.setAttribute(`data-state`,`closed`)),m&&S.push((0,c.on)(m,`click`,()=>D(!b))),_&&S.push((0,c.on)(_,`click`,()=>D(!1))),i&&S.push((0,c.on)(h,`pointerdown`,e=>{e.target===h&&b&&D(!1)})),S.push((0,c.on)(document,`keydown`,e=>{if(b){if(e.key===`Escape`&&a){let t=u[u.length-1];t===O&&(e.preventDefault(),D(!1));return}if(e.key===`Tab`){let t=g.querySelectorAll(l);if(t.length===0){e.preventDefault(),w(),g.focus();return}let n=t[0],r=t[t.length-1],i=document.activeElement;if(!g.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())}}}));let O={open:()=>D(!0),close:()=>D(!1),toggle:()=>D(!b),get isOpen(){return b},destroy:()=>{b&&D(!1,!0),T(),S.forEach(e=>e()),S.length=0}};return O}const h=new WeakSet;function g(e=document){let t=[];for(let n of(0,c.getRoots)(e,`dialog`)){if(h.has(n))continue;h.add(n),t.push(m(n))}return t}exports.create=g,exports.createDialog=m;
1
+ const e=(e,t)=>e.querySelector(`[data-slot="${t}"]`),t=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)];let n=0;const r=(e,t)=>e.id||=`${t}-${++n}`,i=(e,t,n)=>{n===null?e.removeAttribute(`aria-${t}`):e.setAttribute(`aria-${t}`,String(n))},a=(e,t,n)=>{t&&e.setAttribute(`aria-labelledby`,r(t,`title`)),n&&e.setAttribute(`aria-describedby`,r(n,`desc`))},o=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),s=(e,t,n)=>e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:n})),c=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`,l=[];let u=0,d=``,f=``;function p(t,n={}){let{defaultOpen:p=!1,onOpenChange:m,closeOnClickOutside:h=!0,closeOnEscape:g=!0,lockScroll:_=!0,alertDialog:v=!1}=n,y=e(t,`dialog-trigger`),b=e(t,`dialog-overlay`),x=e(t,`dialog-content`),S=e(t,`dialog-close`),C=e(t,`dialog-title`),w=e(t,`dialog-description`);if(!x)throw Error(`Dialog requires dialog-content slot`);if(!b)throw Error(`Dialog requires dialog-overlay slot`);let T=!1,E=null,D=[];r(x,`dialog-content`),x.setAttribute(`role`,v?`alertdialog`:`dialog`),i(x,`modal`,!0),a(x,C,w),b.setAttribute(`role`,`presentation`),b.setAttribute(`aria-hidden`,`true`),b.tabIndex=-1,y&&(y.setAttribute(`aria-haspopup`,`dialog`),y.setAttribute(`aria-controls`,x.id),i(y,`expanded`,!1));let O=!1,k=()=>{x.hasAttribute(`tabindex`)||(x.tabIndex=-1,O=!0)},A=()=>{O&&(x.removeAttribute(`tabindex`),O=!1)},j=()=>{let e=x.querySelector(`[autofocus]`);if(e)return e.focus();let t=x.querySelector(c);if(t)return t.focus();k(),x.focus()},M=(e,n=!1)=>{if(!(T===e&&!n)){if(e){if(E=document.activeElement,l.push(N),_){if(u===0){let e=window.innerWidth-document.documentElement.clientWidth;d=document.body.style.overflow,f=document.body.style.paddingRight,document.body.style.paddingRight=`${e}px`,document.body.style.overflow=`hidden`}u++}}else{let e=l.indexOf(N);e!==-1&&l.splice(e,1),_&&(u--,u===0&&(document.body.style.overflow=d,document.body.style.paddingRight=f)),A();let t=E;E=null,requestAnimationFrame(()=>{t&&document.contains(t)&&typeof t.focus==`function`&&t.focus()})}T=e,x.hidden=!T,b.hidden=!T,y&&i(y,`expanded`,T),t.setAttribute(`data-state`,T?`open`:`closed`),s(t,`dialog:change`,{open:T}),m?.(T),e&&requestAnimationFrame(j)}};p?(x.hidden=!1,b.hidden=!1,t.setAttribute(`data-state`,`open`),M(!0,!0)):(x.hidden=!0,b.hidden=!0,t.setAttribute(`data-state`,`closed`)),y&&D.push(o(y,`click`,()=>M(!T))),S&&D.push(o(S,`click`,()=>M(!1))),h&&D.push(o(b,`pointerdown`,e=>{e.target===b&&T&&M(!1)})),D.push(o(document,`keydown`,e=>{if(T){if(e.key===`Escape`&&g){let t=l[l.length-1];t===N&&(e.preventDefault(),M(!1));return}if(e.key===`Tab`){let t=x.querySelectorAll(c);if(t.length===0){e.preventDefault(),k(),x.focus();return}let n=t[0],r=t[t.length-1],i=document.activeElement;if(!x.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())}}}));let N={open:()=>M(!0),close:()=>M(!1),toggle:()=>M(!T),get isOpen(){return T},destroy:()=>{T&&M(!1,!0),A(),D.forEach(e=>e()),D.length=0}};return N}const m=new WeakSet;function h(e=document){let n=[];for(let r of t(e,`dialog`)){if(m.has(r))continue;m.add(r),n.push(p(r))}return n}exports.create=h,exports.createDialog=p;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{emit as e,ensureId as t,getPart as n,getRoots as r,linkLabelledBy as i,on as a,setAria as o}from"@data-slot/core";const s=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`,c=[];let l=0,u=``,d=``;function f(r,f={}){let{defaultOpen:p=!1,onOpenChange:m,closeOnClickOutside:h=!0,closeOnEscape:g=!0,lockScroll:_=!0,alertDialog:v=!1}=f,y=n(r,`dialog-trigger`),b=n(r,`dialog-overlay`),x=n(r,`dialog-content`),S=n(r,`dialog-close`),C=n(r,`dialog-title`),w=n(r,`dialog-description`);if(!x)throw Error(`Dialog requires dialog-content slot`);if(!b)throw Error(`Dialog requires dialog-overlay slot`);let T=!1,E=null,D=[];t(x,`dialog-content`),x.setAttribute(`role`,v?`alertdialog`:`dialog`),o(x,`modal`,!0),i(x,C,w),b.setAttribute(`role`,`presentation`),b.setAttribute(`aria-hidden`,`true`),b.tabIndex=-1,y&&(y.setAttribute(`aria-haspopup`,`dialog`),y.setAttribute(`aria-controls`,x.id),o(y,`expanded`,!1));let O=!1,k=()=>{x.hasAttribute(`tabindex`)||(x.tabIndex=-1,O=!0)},A=()=>{O&&(x.removeAttribute(`tabindex`),O=!1)},j=()=>{let e=x.querySelector(`[autofocus]`);if(e)return e.focus();let t=x.querySelector(s);if(t)return t.focus();k(),x.focus()},M=(t,n=!1)=>{if(!(T===t&&!n)){if(t){if(E=document.activeElement,c.push(N),_){if(l===0){let e=window.innerWidth-document.documentElement.clientWidth;u=document.body.style.overflow,d=document.body.style.paddingRight,document.body.style.paddingRight=`${e}px`,document.body.style.overflow=`hidden`}l++}}else{let e=c.indexOf(N);e!==-1&&c.splice(e,1),_&&(l--,l===0&&(document.body.style.overflow=u,document.body.style.paddingRight=d)),A();let t=E;E=null,requestAnimationFrame(()=>{t&&document.contains(t)&&typeof t.focus==`function`&&t.focus()})}T=t,x.hidden=!T,b.hidden=!T,y&&o(y,`expanded`,T),r.setAttribute(`data-state`,T?`open`:`closed`),e(r,`dialog:change`,{open:T}),m?.(T),t&&requestAnimationFrame(j)}};p?(x.hidden=!1,b.hidden=!1,r.setAttribute(`data-state`,`open`),M(!0,!0)):(x.hidden=!0,b.hidden=!0,r.setAttribute(`data-state`,`closed`)),y&&D.push(a(y,`click`,()=>M(!T))),S&&D.push(a(S,`click`,()=>M(!1))),h&&D.push(a(b,`pointerdown`,e=>{e.target===b&&T&&M(!1)})),D.push(a(document,`keydown`,e=>{if(T){if(e.key===`Escape`&&g){let t=c[c.length-1];t===N&&(e.preventDefault(),M(!1));return}if(e.key===`Tab`){let t=x.querySelectorAll(s);if(t.length===0){e.preventDefault(),k(),x.focus();return}let n=t[0],r=t[t.length-1],i=document.activeElement;if(!x.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())}}}));let N={open:()=>M(!0),close:()=>M(!1),toggle:()=>M(!T),get isOpen(){return T},destroy:()=>{T&&M(!1,!0),A(),D.forEach(e=>e()),D.length=0}};return N}const p=new WeakSet;function m(e=document){let t=[];for(let n of r(e,`dialog`)){if(p.has(n))continue;p.add(n),t.push(f(n))}return t}export{m as create,f as createDialog};
1
+ const e=(e,t)=>e.querySelector(`[data-slot="${t}"]`),t=(e,t)=>[...e.querySelectorAll(`[data-slot="${t}"]`)];let n=0;const r=(e,t)=>e.id||=`${t}-${++n}`,i=(e,t,n)=>{n===null?e.removeAttribute(`aria-${t}`):e.setAttribute(`aria-${t}`,String(n))},a=(e,t,n)=>{t&&e.setAttribute(`aria-labelledby`,r(t,`title`)),n&&e.setAttribute(`aria-describedby`,r(n,`desc`))},o=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),s=(e,t,n)=>e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:n})),c=`a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])`,l=[];let u=0,d=``,f=``;function p(t,n={}){let{defaultOpen:p=!1,onOpenChange:m,closeOnClickOutside:h=!0,closeOnEscape:g=!0,lockScroll:_=!0,alertDialog:v=!1}=n,y=e(t,`dialog-trigger`),b=e(t,`dialog-overlay`),x=e(t,`dialog-content`),S=e(t,`dialog-close`),C=e(t,`dialog-title`),w=e(t,`dialog-description`);if(!x)throw Error(`Dialog requires dialog-content slot`);if(!b)throw Error(`Dialog requires dialog-overlay slot`);let T=!1,E=null,D=[];r(x,`dialog-content`),x.setAttribute(`role`,v?`alertdialog`:`dialog`),i(x,`modal`,!0),a(x,C,w),b.setAttribute(`role`,`presentation`),b.setAttribute(`aria-hidden`,`true`),b.tabIndex=-1,y&&(y.setAttribute(`aria-haspopup`,`dialog`),y.setAttribute(`aria-controls`,x.id),i(y,`expanded`,!1));let O=!1,k=()=>{x.hasAttribute(`tabindex`)||(x.tabIndex=-1,O=!0)},A=()=>{O&&(x.removeAttribute(`tabindex`),O=!1)},j=()=>{let e=x.querySelector(`[autofocus]`);if(e)return e.focus();let t=x.querySelector(c);if(t)return t.focus();k(),x.focus()},M=(e,n=!1)=>{if(!(T===e&&!n)){if(e){if(E=document.activeElement,l.push(N),_){if(u===0){let e=window.innerWidth-document.documentElement.clientWidth;d=document.body.style.overflow,f=document.body.style.paddingRight,document.body.style.paddingRight=`${e}px`,document.body.style.overflow=`hidden`}u++}}else{let e=l.indexOf(N);e!==-1&&l.splice(e,1),_&&(u--,u===0&&(document.body.style.overflow=d,document.body.style.paddingRight=f)),A();let t=E;E=null,requestAnimationFrame(()=>{t&&document.contains(t)&&typeof t.focus==`function`&&t.focus()})}T=e,x.hidden=!T,b.hidden=!T,y&&i(y,`expanded`,T),t.setAttribute(`data-state`,T?`open`:`closed`),s(t,`dialog:change`,{open:T}),m?.(T),e&&requestAnimationFrame(j)}};p?(x.hidden=!1,b.hidden=!1,t.setAttribute(`data-state`,`open`),M(!0,!0)):(x.hidden=!0,b.hidden=!0,t.setAttribute(`data-state`,`closed`)),y&&D.push(o(y,`click`,()=>M(!T))),S&&D.push(o(S,`click`,()=>M(!1))),h&&D.push(o(b,`pointerdown`,e=>{e.target===b&&T&&M(!1)})),D.push(o(document,`keydown`,e=>{if(T){if(e.key===`Escape`&&g){let t=l[l.length-1];t===N&&(e.preventDefault(),M(!1));return}if(e.key===`Tab`){let t=x.querySelectorAll(c);if(t.length===0){e.preventDefault(),k(),x.focus();return}let n=t[0],r=t[t.length-1],i=document.activeElement;if(!x.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())}}}));let N={open:()=>M(!0),close:()=>M(!1),toggle:()=>M(!T),get isOpen(){return T},destroy:()=>{T&&M(!1,!0),A(),D.forEach(e=>e()),D.length=0}};return N}const m=new WeakSet;function h(e=document){let n=[];for(let r of t(e,`dialog`)){if(m.has(r))continue;m.add(r),n.push(p(r))}return n}export{h as create,p as createDialog};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@data-slot/dialog",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.cjs",
@@ -24,7 +24,7 @@
24
24
  "scripts": {
25
25
  "build": "tsdown"
26
26
  },
27
- "dependencies": {
27
+ "devDependencies": {
28
28
  "@data-slot/core": "workspace:*"
29
29
  },
30
30
  "repository": {