UNPKG

@hoosei/voxweave-react

Version:

A customizable and interactive voice UI component for React applications

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