dgz-ui
Version:
Custom ui library using React.js, Shadcn/ui, TailwindCSS, Typescript
3 lines (2 loc) • 4.41 kB
JavaScript
;const I=require("react"),v=require("./index-D9zW9Tk7.cjs.js"),R=require("./index-jFOWwfD3.cjs.js"),p=require("./index-CN4RxFxN.cjs.js"),w=require("react/jsx-runtime");function j(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const o=j(I);function H(e,t=globalThis==null?void 0:globalThis.document){const n=p.useCallbackRef(e);o.useEffect(()=>{const s=r=>{r.key==="Escape"&&n(r)};return t.addEventListener("keydown",s,{capture:!0}),()=>t.removeEventListener("keydown",s,{capture:!0})},[n,t])}var U="DismissableLayer",h="dismissableLayer.update",q="dismissableLayer.pointerDownOutside",z="dismissableLayer.focusOutside",O,x=o.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),T=o.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:s,onPointerDownOutside:r,onFocusOutside:a,onInteractOutside:l,onDismiss:d,...E}=e,c=o.useContext(x),[u,S]=o.useState(null),f=(u==null?void 0:u.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,k]=o.useState({}),_=R.useComposedRefs(t,i=>S(i)),m=Array.from(c.layers),[F]=[...c.layersWithOutsidePointerEventsDisabled].slice(-1),N=m.indexOf(F),P=u?m.indexOf(u):-1,W=c.layersWithOutsidePointerEventsDisabled.size>0,C=P>=N,A=$(i=>{const y=i.target,L=[...c.branches].some(b=>b.contains(y));!C||L||(r==null||r(i),l==null||l(i),i.defaultPrevented||d==null||d())},f),D=X(i=>{const y=i.target;[...c.branches].some(b=>b.contains(y))||(a==null||a(i),l==null||l(i),i.defaultPrevented||d==null||d())},f);return H(i=>{P===c.layers.size-1&&(s==null||s(i),!i.defaultPrevented&&d&&(i.preventDefault(),d()))},f),o.useEffect(()=>{if(u)return n&&(c.layersWithOutsidePointerEventsDisabled.size===0&&(O=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),c.layersWithOutsidePointerEventsDisabled.add(u)),c.layers.add(u),g(),()=>{n&&c.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=O)}},[u,f,n,c]),o.useEffect(()=>()=>{u&&(c.layers.delete(u),c.layersWithOutsidePointerEventsDisabled.delete(u),g())},[u,c]),o.useEffect(()=>{const i=()=>k({});return document.addEventListener(h,i),()=>document.removeEventListener(h,i)},[]),w.jsx(v.Primitive.div,{...E,ref:_,style:{pointerEvents:W?C?"auto":"none":void 0,...e.style},onFocusCapture:v.composeEventHandlers(e.onFocusCapture,D.onFocusCapture),onBlurCapture:v.composeEventHandlers(e.onBlurCapture,D.onBlurCapture),onPointerDownCapture:v.composeEventHandlers(e.onPointerDownCapture,A.onPointerDownCapture)})});T.displayName=U;var M="DismissableLayerBranch",K=o.forwardRef((e,t)=>{const n=o.useContext(x),s=o.useRef(null),r=R.useComposedRefs(t,s);return o.useEffect(()=>{const a=s.current;if(a)return n.branches.add(a),()=>{n.branches.delete(a)}},[n.branches]),w.jsx(v.Primitive.div,{...e,ref:r})});K.displayName=M;function $(e,t=globalThis==null?void 0:globalThis.document){const n=p.useCallbackRef(e),s=o.useRef(!1),r=o.useRef(()=>{});return o.useEffect(()=>{const a=d=>{if(d.target&&!s.current){let E=function(){B(q,n,c,{discrete:!0})};const c={originalEvent:d};d.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=E,t.addEventListener("click",r.current,{once:!0})):E()}else t.removeEventListener("click",r.current);s.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",a),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>s.current=!0}}function X(e,t=globalThis==null?void 0:globalThis.document){const n=p.useCallbackRef(e),s=o.useRef(!1);return o.useEffect(()=>{const r=a=>{a.target&&!s.current&&B(z,n,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,n]),{onFocusCapture:()=>s.current=!0,onBlurCapture:()=>s.current=!1}}function g(){const e=new CustomEvent(h);document.dispatchEvent(e)}function B(e,t,n,{discrete:s}){const r=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),s?v.dispatchDiscreteCustomEvent(r,a):r.dispatchEvent(a)}exports.DismissableLayer=T;
//# sourceMappingURL=index-CItoM52t.cjs.js.map