@necto-react/hooks 2.5.0 → 2.7.0

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.d.ts CHANGED
@@ -76,19 +76,15 @@ declare function useGlobalListeners(): GlobalListeners;
76
76
 
77
77
  interface HoverProps extends HoverEvent {
78
78
  isDisabled?: boolean;
79
- onHoverStart?: (event: HoverEvent) => void;
80
- onHoverEnd?: (event: HoverEvent) => void;
81
- onHoverChange?: (isHovered: boolean) => void;
82
79
  }
83
80
  interface HoverResult {
84
81
  hoverProps: DOMAttributes;
85
82
  isHovered: boolean;
86
83
  }
87
- declare function setGlobalIgnoreEmulatedMouseEvents(): void;
88
84
  declare function useHover(props: HoverProps): HoverResult;
89
85
 
90
86
  declare function createSyntheticEvent<E extends SyntheticEvent>(nativeEvent: Event): E;
91
87
  declare function useSyntheticBlurEvent<Target extends Element = Element>(onBlur: (event: FocusEvent$1<Target>) => void): (event: FocusEvent$1<Target>) => void;
92
88
 
93
- export { DisabledProvider, addWindowFocusTracking, createSyntheticEvent, getInteractionModality, setGlobalIgnoreEmulatedMouseEvents, useDisabled, useDisabledFlags, useDisabledProps, useEffectEvent, useFocus, useFocusRing, useFocusVisibleListener, useFocusWithin, useGlobalListeners, useHover, useSyntheticBlurEvent };
89
+ export { DisabledProvider, addWindowFocusTracking, createSyntheticEvent, getInteractionModality, useDisabled, useDisabledFlags, useDisabledProps, useEffectEvent, useFocus, useFocusRing, useFocusVisibleListener, useFocusWithin, useGlobalListeners, useHover, useSyntheticBlurEvent };
94
90
  export type { FocusProps, FocusResult, FocusRingProps, FocusRingResult, FocusVisibleHandler, FocusWithinProps, FocusWithinResult, HoverProps, HoverResult, Modality$1 as Modality };
package/dist/index.es.js CHANGED
@@ -6,5 +6,5 @@
6
6
  *
7
7
  */
8
8
 
9
- import{createContext as e,useContext as t,useMemo as n,createElement as r,useRef as o,useCallback as i,useLayoutEffect as u,useEffect as s,useState as a}from"react";let c=e({});function l(){return t(c)||{}}function d(e="general",n=!1){return(t(c)||{})[e]??n}function f(e="general",t={}){let r=d(e);return n((()=>{let e={...t};return r&&(e={...e,..."function"==typeof t.onClick||"function"==typeof t.onChange?{disabled:r}:{},"aria-disabled":r}),e}),[r,t])}function v({value:e,children:t}){return r(c.Provider,{value:e||{}},t)}function p(e){let t=o(e);return("undefined"!=typeof document?u:()=>{})((()=>{t.current=e}),[e]),i(((...e)=>t.current(...e)),[])}function g(e){return e.nativeEvent=e,e.isDefaultPrevented=()=>e.defaultPrevented,e.isPropagationStopped=()=>e.cancelBubble,e.persist=()=>{},e}function E(e){let t=o({isFocused:!1,observer:null});u((()=>{let e=t.current;return()=>{e.observer&&(e.observer.disconnect(),e.observer=null)}}),[]);let n=p((t=>{e?.(t)}));return i((e=>{if(e.target instanceof HTMLButtonElement||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement){t.current.isFocused=!0;let r=e.target;r.addEventListener("focusout",(e=>{t.current.isFocused=!1,r.disabled&&n(g(e)),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)}),{once:!0}),t.current.observer=new MutationObserver((()=>{if(t.current.isFocused&&r.disabled){t.current.observer?.disconnect();let e=r===document.activeElement?null:document.activeElement;r.dispatchEvent(new FocusEvent("blur",{relatedTarget:e})),r.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:e}))}})),t.current.observer.observe(r,{attributes:!0,attributeFilter:["disabled"]})}}),[n])}function b(e){return function(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&"number"==typeof e.nodeType}(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e}function T(e,t,n=!0){if(!e||!t)return!1;if(!n)return e.contains(t);let r=t;for(;r;){if(r===e)return!0;r=r instanceof Element&&"SLOT"===r.tagName&&r.assignedSlot?r.assignedSlot.parentNode:b(r)?r.host:r.parentNode}return!1}var m=(e=document,t=!0)=>{if(!t)return e.activeElement;let n=e.activeElement;for(;n&&"shadowRoot"in n&&n.shadowRoot?.activeElement;)n=n.shadowRoot.activeElement;return n};function y(e,t=!0){return t&&e.target.shadowRoot&&e.composedPath?e.composedPath()[0]:e.target}var w=e=>e?.ownerDocument??document,h=e=>e&&"window"in e&&e.window===e?e:w(e).defaultView||window;function L(e){let{isDisabled:t,onFocus:n,onBlur:r,onFocusChange:o}=e,u=i(((e,t)=>{e?(n?.(t),o?.(!0)):(r?.(t),o?.(!1))}),[n,r,o]),s=i((e=>{e.target===e.currentTarget&&u(!1,e)}),[u]),a=E(s),c=i((e=>{let t=w(e.target),n=t?m(t):m();e.target===e.currentTarget&&n===y(e.nativeEvent)&&(u(!0,e),a(e))}),[u,a]);return{focusProps:{...t?{}:{onFocus:c,onBlur:s}}}}function F(){let e=o(new Map),t=i(((t,n,r,o)=>{let i="object"==typeof o&&o?.once?(...t)=>{e.current.delete(r),r(...t)}:r;e.current.set(r,{type:n,eventTarget:t,options:o}),t.addEventListener(n,i,o)}),[]),n=i(((t,n,r,o)=>{let i=e.current.get(r),u=i?.options?.once?i.fn:r;t.removeEventListener(n,u,o),e.current.delete(r)}),[]),r=i((()=>{e.current.forEach((({type:e,eventTarget:t,options:n},r)=>{t.removeEventListener(e,r,n)})),e.current.clear()}),[]);return s((()=>()=>r()),[r]),{addGlobalListener:t,removeGlobalListener:n,removeAllGlobalListeners:r}}function M(e){let{isDisabled:t,onFocusWithin:n,onBlurWithin:r,onFocusWithinChange:u}=e,s=o({isFocusWithin:!1}),{addGlobalListener:a,removeAllGlobalListeners:c}=F(),l=i((e=>{e.currentTarget.contains(e.target)&&s.current.isFocusWithin&&!e.currentTarget.contains(e.relatedTarget)&&(s.current.isFocusWithin=!1,c(),r&&r(e),u&&u(!1))}),[r,u,s,c]),d=E(l),f=i((e=>{if(!e.currentTarget.contains(e.target))return;let t=w(e.target),r=m(t);if(!s.current.isFocusWithin&&r==y(e.nativeEvent)){n&&n(e),u&&u(!0),s.current.isFocusWithin=!0,d(e);let r=e.currentTarget;a(t,"focus",(e=>{if(s.current.isFocusWithin&&!T(r,e.target)){let n=new t.defaultView.FocusEvent("blur",{relatedTarget:e.target});Object.defineProperty(n,"target",{value:r}),Object.defineProperty(n,"currentTarget",{value:r}),l(g(n))}}),{capture:!0})}}),[n,u,d,a,l]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:f,onBlur:l}}}var H=function(){return function(e){return typeof window<"u"&&null!=window.navigator&&e.test(window.navigator.userAgentData?.platform||window.navigator.platform)}(/^Mac/i)},P=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),W={Tab:!0,Escape:!0};let S=new Map,k=!1,C=!1,D=null,x=new Set;function A(e,t){x.forEach((n=>n(e,t)))}function G(e){e.metaKey||!H()&&e.altKey||e.ctrlKey||["Control","Shift","Meta"].includes(e.key)||(k=!0,D="keyboard",A("keyboard",e))}function B(e){["mousedown","pointerdown"].includes(e.type)&&(k=!0,D="pointer",A("pointer",e))}function N(e){![window,document].includes(e.target)&&e.isTrusted&&(k||C)&&(k||C||(D="virtual",A("virtual",e)),k=!1,C=!1)}function O(){k=!1,C=!0}function V(e){let t=h(e),n=w(e);if("undefined"==typeof window||"undefined"==typeof document||S.has(t))return;let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(...e){k=!0,r.apply(this,e)},n.addEventListener("keydown",G,!0),n.addEventListener("click",B,!0),t.addEventListener("focus",N,!0),t.addEventListener("blur",O,!1),"undefined"!=typeof PointerEvent&&n.addEventListener("pointerdown",B,!0),S.set(t,{focus:r})}function I(e){let t=w(e);return"loading"!==t.readyState?V(e):t.addEventListener("DOMContentLoaded",(()=>V(e))),()=>function(e){let t=h(e),n=w(e);if(!S.has(t))return;let{focus:r}=S.get(t);t.HTMLElement.prototype.focus=r,n.removeEventListener("keydown",G,!0),n.removeEventListener("click",B,!0),t.removeEventListener("focus",N,!0),t.removeEventListener("blur",O,!1),S.delete(t)}(e)}function K(){return D}function R(e,t,n){V(),s((()=>{let t=(t,r)=>{(function(e,t,n){if(!n||!("target"in n)||!n.target)return!1;let r=w(n.target),o=h(n.target),i=typeof window<"u"?o.HTMLInputElement:HTMLInputElement,u=typeof window<"u"?o.HTMLTextAreaElement:HTMLTextAreaElement,s=typeof window<"u"?o.HTMLElement:HTMLElement,a=typeof window<"u"?o.KeyboardEvent:KeyboardEvent,c=r.activeElement;return!((e=e||c instanceof i&&!P.has(c.type)||c instanceof u||c instanceof s&&c.isContentEditable)&&"keyboard"===t&&n instanceof a&&!W[n.key])})(!!n?.isTextInput,t,r)&&e("pointer"!==D)};return x.add(t),()=>{x.delete(t)}}),t)}function j({within:e=!1,isTextInput:t=!1,autoFocus:n=!1}={}){let r=o({isFocused:!1,isFocusVisible:n||!0}),[u,s]=a(!1),[c,l]=a((()=>r.current.isFocused&&r.current.isFocusVisible)),d=i((()=>{l(r.current.isFocused&&r.current.isFocusVisible)}),[]),f=i((e=>{r.current.isFocused=e,s(e),d()}),[d]);R((e=>{r.current.isFocusVisible=e,d()}),[],{isTextInput:t});let{focusProps:v}=L({isDisabled:e,onFocusChange:f}),{focusWithinProps:p}=M({isDisabled:!e,onFocusWithinChange:f});return{isFocused:u,isFocusVisible:c,focusProps:e?p:v}}let _=!1;function U(){_=!0,setTimeout((()=>{_=!1}),50)}function q(e){let{onHoverStart:t,onHoverChange:r,onHoverEnd:u,isDisabled:c}=e,[l,d]=a(!1),f=o({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}),{addGlobalListener:v,removeAllGlobalListeners:p}=F(),g=i(((e,n)=>{let o=f.current;o.pointerType=n,!c&&"touch"!==n&&!o.isHovered&&e.currentTarget.contains(e.target)&&(o.isHovered=!0,o.target=e.currentTarget,v(w(e.target),"pointerover",(e=>{o.isHovered&&o.target&&!T(o.target,e.target)&&E(e,e.pointerType)}),{capture:!0}),t?.({type:"hoverstart",target:e.currentTarget,pointerType:n}),r?.(!0),d(!0))}),[c,t,r,v]),E=i(((e,t)=>{let n=f.current;"touch"!==t&&n.isHovered&&n.target&&(n.isHovered=!1,n.pointerType="",n.target=null,p(),u?.({type:"hoverend",target:e.currentTarget,pointerType:t}),r?.(!1),d(!1))}),[u,r,p]),b=n((()=>{let e={onMouseLeave:()=>{},onMouseEnter:()=>{},onTouchStart:()=>{},onPointerLeave:()=>{},onPointerEnter:()=>{}};return"undefined"!=typeof PointerEvent?(e.onPointerEnter=e=>{_&&"mouse"===e.pointerType||g(e,e.pointerType)},e.onPointerLeave=e=>{!c&&e.currentTarget.contains(e.target)&&E(e,e.pointerType)}):(e.onTouchStart=()=>{f.current.ignoreEmulatedMouseEvents=!0},e.onMouseEnter=e=>{f.current.ignoreEmulatedMouseEvents||_||g(e,"mouse"),f.current.ignoreEmulatedMouseEvents=!1},e.onMouseLeave=e=>{!c&&e.currentTarget.contains(e.target)&&E(e,"mouse")}),e}),[c,g,E]);return s((()=>{c&&f.current.isHovered&&E({currentTarget:f.current.target},f.current.pointerType)}),[c,E]),{hoverProps:b,isHovered:l}}export{v as DisabledProvider,I as addWindowFocusTracking,g as createSyntheticEvent,K as getInteractionModality,U as setGlobalIgnoreEmulatedMouseEvents,d as useDisabled,l as useDisabledFlags,f as useDisabledProps,p as useEffectEvent,L as useFocus,j as useFocusRing,R as useFocusVisibleListener,M as useFocusWithin,F as useGlobalListeners,q as useHover,E as useSyntheticBlurEvent};
9
+ import{createContext as e,useContext as t,useMemo as n,createElement as r,useRef as o,useCallback as i,useLayoutEffect as u,useEffect as s,useState as c}from"react";let a=e({});function d(){return t(a)||{}}function l(e="general",n=!1){return(t(a)||{})[e]??n}function f(e="general",t={}){let r=l(e);return n((()=>{let e={...t};return r&&(e={...e,..."function"==typeof t.onClick||"function"==typeof t.onChange?{disabled:r}:{},"aria-disabled":r}),e}),[r,t])}function v({value:e,children:t}){return r(a.Provider,{value:e||{}},t)}function p(e){let t=o(e);return("undefined"!=typeof document?u:()=>{})((()=>{t.current=e}),[e]),i(((...e)=>t.current(...e)),[])}function g(e){return e.nativeEvent=e,e.isDefaultPrevented=()=>e.defaultPrevented,e.isPropagationStopped=()=>e.cancelBubble,e.persist=()=>{},e}function E(e){let t=o({isFocused:!1,observer:null});u((()=>{let e=t.current;return()=>{e.observer&&(e.observer.disconnect(),e.observer=null)}}),[]);let n=p((t=>{e?.(t)}));return i((e=>{if(e.target instanceof HTMLButtonElement||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement){t.current.isFocused=!0;let r=e.target;r.addEventListener("focusout",(e=>{t.current.isFocused=!1,r.disabled&&n(g(e)),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)}),{once:!0}),t.current.observer=new MutationObserver((()=>{if(t.current.isFocused&&r.disabled){t.current.observer?.disconnect();let e=r===document.activeElement?null:document.activeElement;r.dispatchEvent(new FocusEvent("blur",{relatedTarget:e})),r.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:e}))}})),t.current.observer.observe(r,{attributes:!0,attributeFilter:["disabled"]})}}),[n])}function m(e){return function(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&"number"==typeof e.nodeType}(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e}function b(e,t,n=!0){if(!e||!t)return!1;if(!n)return e.contains(t);let r=t;for(;r;){if(r===e)return!0;r=r instanceof Element&&"SLOT"===r.tagName&&r.assignedSlot?r.assignedSlot.parentNode:m(r)?r.host:r.parentNode}return!1}var T=(e=document,t=!0)=>{if(!t)return e.activeElement;let n=e.activeElement;for(;n&&"shadowRoot"in n&&n.shadowRoot?.activeElement;)n=n.shadowRoot.activeElement;return n};function y(e,t=!0){return t&&e.target.shadowRoot&&e.composedPath?e.composedPath()[0]:e.target}var h=e=>e?.ownerDocument??document,w=e=>e&&"window"in e&&e.window===e?e:h(e).defaultView||window;function L(e){let{isDisabled:t,onFocus:n,onBlur:r,onFocusChange:o}=e,u=i(((e,t)=>{e?(n?.(t),o?.(!0)):(r?.(t),o?.(!1))}),[n,r,o]),s=i((e=>{e.target===e.currentTarget&&u(!1,e)}),[u]),c=E(s),a=i((e=>{let t=h(e.target),n=t?T(t):T();e.target===e.currentTarget&&n===y(e.nativeEvent)&&(u(!0,e),c(e))}),[u,c]);return{focusProps:{...t?{}:{onFocus:a,onBlur:s}}}}function F(){let e=o(new Map),t=i(((t,n,r,o)=>{let i="object"==typeof o&&o?.once?(...t)=>{e.current.delete(r),r(...t)}:r;e.current.set(r,{type:n,eventTarget:t,options:o}),t.addEventListener(n,i,o)}),[]),n=i(((t,n,r,o)=>{let i=e.current.get(r),u=i?.options?.once?i.fn:r;t.removeEventListener(n,u,o),e.current.delete(r)}),[]),r=i((()=>{e.current.forEach((({type:e,eventTarget:t,options:n},r)=>{t.removeEventListener(e,r,n)})),e.current.clear()}),[]);return s((()=>()=>r()),[r]),{addGlobalListener:t,removeGlobalListener:n,removeAllGlobalListeners:r}}function M(e){let{isDisabled:t,onFocusWithin:n,onBlurWithin:r,onFocusWithinChange:u}=e,s=o({isFocusWithin:!1}),{addGlobalListener:c,removeAllGlobalListeners:a}=F(),d=i((e=>{e.currentTarget.contains(e.target)&&s.current.isFocusWithin&&!e.currentTarget.contains(e.relatedTarget)&&(s.current.isFocusWithin=!1,a(),r&&r(e),u&&u(!1))}),[r,u,s,a]),l=E(d),f=i((e=>{if(!e.currentTarget.contains(e.target))return;let t=h(e.target),r=T(t);if(!s.current.isFocusWithin&&r==y(e.nativeEvent)){n&&n(e),u&&u(!0),s.current.isFocusWithin=!0,l(e);let r=e.currentTarget;c(t,"focus",(e=>{if(s.current.isFocusWithin&&!b(r,e.target)){let n=new t.defaultView.FocusEvent("blur",{relatedTarget:e.target});Object.defineProperty(n,"target",{value:r}),Object.defineProperty(n,"currentTarget",{value:r}),d(g(n))}}),{capture:!0})}}),[n,u,l,c,d]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:f,onBlur:d}}}var H=function(){return function(e){return typeof window<"u"&&null!=window.navigator&&e.test(window.navigator.userAgentData?.platform||window.navigator.platform)}(/^Mac/i)},P=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),D={Tab:!0,Escape:!0};let N=new Map,W=!1,k=!1,C=null,S=new Set;function O(e,t){S.forEach((n=>n(e,t)))}function V(e){e.metaKey||!H()&&e.altKey||e.ctrlKey||["Control","Shift","Meta"].includes(e.key)||(W=!0,C="keyboard",O("keyboard",e))}function x(e){["mousedown","pointerdown"].includes(e.type)&&(W=!0,C="pointer",O("pointer",e))}function A(e){![window,document].includes(e.target)&&e.isTrusted&&(W||k)&&(W||k||(C="virtual",O("virtual",e)),W=!1,k=!1)}function G(){W=!1,k=!0}function B(e){let t=w(e),n=h(e);if("undefined"==typeof window||"undefined"==typeof document||N.has(t))return;let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(...e){W=!0,r.apply(this,e)},n.addEventListener("keydown",V,!0),n.addEventListener("click",x,!0),t.addEventListener("focus",A,!0),t.addEventListener("blur",G,!1),"undefined"!=typeof PointerEvent&&n.addEventListener("pointerdown",x,!0),N.set(t,{focus:r})}function I(e){let t=h(e);return"loading"!==t.readyState?B(e):t.addEventListener("DOMContentLoaded",(()=>B(e))),()=>function(e){let t=w(e),n=h(e);if(!N.has(t))return;let{focus:r}=N.get(t);t.HTMLElement.prototype.focus=r,n.removeEventListener("keydown",V,!0),n.removeEventListener("click",x,!0),t.removeEventListener("focus",A,!0),t.removeEventListener("blur",G,!1),N.delete(t)}(e)}function K(){return C}function R(e,t,n){B(),s((()=>{let t=(t,r)=>{(function(e,t,n){if(!n||!("target"in n)||!n.target)return!1;let r=h(n.target),o=w(n.target),i=typeof window<"u"?o.HTMLInputElement:HTMLInputElement,u=typeof window<"u"?o.HTMLTextAreaElement:HTMLTextAreaElement,s=typeof window<"u"?o.HTMLElement:HTMLElement,c=typeof window<"u"?o.KeyboardEvent:KeyboardEvent,a=r.activeElement;return!((e=e||a instanceof i&&!P.has(a.type)||a instanceof u||a instanceof s&&a.isContentEditable)&&"keyboard"===t&&n instanceof c&&!D[n.key])})(!!n?.isTextInput,t,r)&&e("pointer"!==C)};return S.add(t),()=>{S.delete(t)}}),t)}function _({within:e=!1,isTextInput:t=!1,autoFocus:n=!1}={}){let r=o({isFocused:!1,isFocusVisible:n||!0}),[u,s]=c(!1),[a,d]=c((()=>r.current.isFocused&&r.current.isFocusVisible)),l=i((()=>{d(r.current.isFocused&&r.current.isFocusVisible)}),[]),f=i((e=>{r.current.isFocused=e,s(e),l()}),[l]);R((e=>{r.current.isFocusVisible=e,l()}),[],{isTextInput:t});let{focusProps:v}=L({isDisabled:e,onFocusChange:f}),{focusWithinProps:p}=M({isDisabled:!e,onFocusWithinChange:f});return{isFocused:u,isFocusVisible:a,focusProps:e?p:v}}let j=!1,U=0;function q(){j=!0,setTimeout((()=>{j=!1}),50)}function z(e){"touch"===e.pointerType&&q()}function J(){if("undefined"!=typeof document)return"undefined"!=typeof PointerEvent?document.addEventListener("pointerup",z):"test"===process.env.NODE_ENV&&document.addEventListener("touchend",q),U++,()=>{--U>0||("undefined"!=typeof PointerEvent?document.removeEventListener("pointerup",z):"test"===process.env.NODE_ENV&&document.removeEventListener("touchend",q))}}function Q(e){let{onHoverStart:t,onHoverChange:r,onHoverEnd:i,isDisabled:u}=e,[a,d]=c(!1),l=o({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}).current;s(J,[]);let{addGlobalListener:f,removeAllGlobalListeners:v}=F(),{hoverProps:p,triggerHoverEnd:g}=n((()=>{let e=(e,o)=>{if(l.pointerType=o,u||"touch"===o||l.isHovered||!e.currentTarget.contains(e.target))return;l.isHovered=!0;let i=e.currentTarget;l.target=i,f(h(e.target),"pointerover",(e=>{l.isHovered&&l.target&&!b(l.target,e.target)&&n(e,e.pointerType)}),{capture:!0}),t&&t({type:"hoverstart",target:i,pointerType:o}),r&&r(!0),d(!0)},n=(e,t)=>{let n=l.target;l.pointerType="",l.target=null,"touch"!==t&&l.isHovered&&n&&(l.isHovered=!1,v(),i&&i({type:"hoverend",target:n,pointerType:t}),r&&r(!1),d(!1))},o={};return"undefined"!=typeof PointerEvent?(o.onPointerEnter=t=>{j&&"mouse"===t.pointerType||e(t,t.pointerType)},o.onPointerLeave=e=>{!u&&e.currentTarget.contains(e.target)&&n(e,e.pointerType)}):"test"===process.env.NODE_ENV&&(o.onTouchStart=()=>{l.ignoreEmulatedMouseEvents=!0},o.onMouseEnter=t=>{l.ignoreEmulatedMouseEvents||j||e(t,"mouse"),l.ignoreEmulatedMouseEvents=!1},o.onMouseLeave=e=>{!u&&e.currentTarget.contains(e.target)&&n(e,"mouse")}),{hoverProps:o,triggerHoverEnd:n}}),[t,r,i,u,l,f,v]);return s((()=>{u&&g({currentTarget:l.target},l.pointerType)}),[u]),{hoverProps:p,isHovered:a}}export{v as DisabledProvider,I as addWindowFocusTracking,g as createSyntheticEvent,K as getInteractionModality,l as useDisabled,d as useDisabledFlags,f as useDisabledProps,p as useEffectEvent,L as useFocus,_ as useFocusRing,R as useFocusVisibleListener,M as useFocusWithin,F as useGlobalListeners,Q as useHover,E as useSyntheticBlurEvent};
10
10
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/useDisabled.ts","../src/useEffectEvent.ts","../src/useSyntheticBlurEvent.ts","../../necto-dom/dist/index.mjs","../src/useFocus.ts","../src/useGlobalListeners.ts","../src/useFocusWithin.ts","../../necto-platform/dist/index.mjs","../../necto-react-helpers/dist/index.js","../src/useFocusVisibleListener.ts","../src/useFocusRing.ts","../src/useHover.ts"],"sourcesContent":["/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nimport { createContext, createElement, useContext, useMemo } from \"react\";\n\nimport type { HTMLAttributes, PropsWithChildren } from \"react\";\n\ntype DisabledFlags = {\n general?: boolean;\n form?: boolean;\n interactions?: boolean;\n [key: string]: boolean | undefined;\n};\n\nlet DisabledContext = createContext<DisabledFlags>({});\n\nexport function useDisabledFlags(): DisabledFlags {\n return useContext(DisabledContext) || {};\n};\n\nexport function useDisabled(\n type: keyof DisabledFlags = 'general',\n defaultFallback: boolean = false\n): boolean {\n const flags = useContext(DisabledContext) || {};\n return flags[type] ?? defaultFallback;\n}\n\nexport function useDisabledProps(type: keyof DisabledFlags = 'general', extraProps: HTMLAttributes<HTMLElement> = {}): HTMLAttributes<HTMLElement> {\n const isDisabled = useDisabled(type);\n\n return useMemo(() => {\n let props: HTMLAttributes<HTMLElement> = {\n ...extraProps\n };\n\n if (isDisabled) {\n props = {\n ...props,\n ...(typeof extraProps.onClick === 'function' || typeof extraProps.onChange === 'function' ? { disabled: isDisabled } : {}),\n 'aria-disabled': isDisabled\n };\n }\n\n return props;\n }, [isDisabled, extraProps]);\n};\n\nexport function DisabledProvider({\n value,\n children,\n}: PropsWithChildren<{ value?: DisabledFlags }>) {\n return createElement(\n DisabledContext.Provider,\n { value: value || {} },\n children\n );\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nimport { useCallback, useRef, useLayoutEffect} from \"react\";\n\nexport function useEffectEvent<T extends (...args: any[]) => any>(fn: T): T {\n const fnRef = useRef(fn);\n\n // Inline SSR-safe useLayoutEffect\n (typeof document !== \"undefined\" ? useLayoutEffect : () => {})(\n () => {\n fnRef.current = fn;\n },\n [fn]\n );\n\n return useCallback(((...args: Parameters<T>): ReturnType<T> => {\n return fnRef.current(...args);\n }) as T, []);\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useEffectEvent } from \"./useEffectEvent\";\nimport { useRef, useCallback, useLayoutEffect } from 'react';\nimport type { FocusEvent as ReactFocusEvent, SyntheticEvent } from 'react';\n\n/**\n * Creates a synthetic React event from a native DOM event.\n * This is used to maintain compatibility with React's event system.\n * \n * @param nativeEvent - The original native DOM event.\n * @returns The synthetic React event.\n */\nexport function createSyntheticEvent<E extends SyntheticEvent>(nativeEvent: Event): E {\n const event = nativeEvent as unknown as E;\n event.nativeEvent = nativeEvent;\n event.isDefaultPrevented = () => event.defaultPrevented;\n event.isPropagationStopped = () => (event as any).cancelBubble; // Deprecated but widely supported.\n event.persist = () => {}; // No-op for compatibility with React's synthetic event system.\n return event;\n}\n\n/**\n * Custom React hook to handle synthetic blur events, particularly for disabled elements.\n * \n * @param onBlur - Callback to handle the blur event.\n * @returns A callback to attach to the element's blur event.\n */\nexport function useSyntheticBlurEvent<Target extends Element = Element>(\n onBlur: (event: ReactFocusEvent<Target>) => void\n): (event: ReactFocusEvent<Target>) => void {\n const stateRef = useRef<{\n isFocused: boolean;\n observer: MutationObserver | null;\n }>({\n isFocused: false,\n observer: null,\n });\n\n // Cleanup effect to disconnect the MutationObserver when the component unmounts.\n useLayoutEffect(() => {\n const state = stateRef.current;\n return () => {\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n\n // Handler to dispatch the blur event using the provided callback.\n const dispatchBlur = useEffectEvent((e: ReactFocusEvent<Target>) => {\n onBlur?.(e);\n });\n\n // Callback to handle the blur event logic.\n return useCallback((e: ReactFocusEvent<Target>) => {\n if (\n e.target instanceof HTMLButtonElement ||\n e.target instanceof HTMLInputElement ||\n e.target instanceof HTMLTextAreaElement ||\n e.target instanceof HTMLSelectElement\n ) {\n stateRef.current.isFocused = true;\n\n const target = e.target;\n const onBlurHandler: EventListenerOrEventListenerObject = (event) => {\n stateRef.current.isFocused = false;\n\n if (target.disabled) {\n // Dispatch a synthetic React event for backward compatibility.\n const syntheticEvent = createSyntheticEvent<ReactFocusEvent<Target>>(event);\n dispatchBlur(syntheticEvent);\n }\n\n // Cleanup the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n\n // Add a one-time blur event listener.\n target.addEventListener('focusout', onBlurHandler, { once: true });\n\n // Set up a MutationObserver to monitor changes to the 'disabled' attribute.\n stateRef.current.observer = new MutationObserver(() => {\n if (stateRef.current.isFocused && target.disabled) {\n stateRef.current.observer?.disconnect();\n const relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n target.dispatchEvent(new FocusEvent('blur', { relatedTarget: relatedTargetEl }));\n target.dispatchEvent(new FocusEvent('focusout', { bubbles: true, relatedTarget: relatedTargetEl }));\n }\n });\n\n // Observe changes to the 'disabled' attribute of the target element.\n stateRef.current.observer.observe(target, { attributes: true, attributeFilter: ['disabled'] });\n }\n }, [dispatchBlur]);\n}\n","function e(e){return t(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&\"host\"in e}function t(e){return null!==e&&\"object\"==typeof e&&\"nodeType\"in e&&\"number\"==typeof e.nodeType}function n(t,n,o=!0){if(!t||!n)return!1;if(!o)return t.contains(n);let r=n;for(;r;){if(r===t)return!0;r=r instanceof Element&&\"SLOT\"===r.tagName&&r.assignedSlot?r.assignedSlot.parentNode:e(r)?r.host:r.parentNode}return!1}var o=(e=document,t=!0)=>{if(!t)return e.activeElement;let n=e.activeElement;for(;n&&\"shadowRoot\"in n&&n.shadowRoot?.activeElement;)n=n.shadowRoot.activeElement;return n};function r(e,t=!0){return t&&e.target.shadowRoot&&e.composedPath?e.composedPath()[0]:e.target}var i=e=>e?.ownerDocument??document,a=e=>{if(e&&\"window\"in e&&e.window===e)return e;return i(e).defaultView||window};export{o as getActiveElement,r as getEventTarget,i as getOwnerDocument,a as getOwnerWindow,t as isNode,n as nodeContains};","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useCallback } from 'react';\nimport { useSyntheticBlurEvent } from \"./useSyntheticBlurEvent\";\nimport { getOwnerDocument, getEventTarget, getActiveElement } from \"@necto/dom\";\n\nimport type { FocusEvent as ReactFocusEvent } from 'react';\nimport type { DOMAttributes, FocusableElement, FocusEvent } from '@necto-react/types';\n\nexport interface FocusProps<Target = FocusableElement> extends FocusEvent<Target> {\n isDisabled?: boolean;\n}\n\nexport interface FocusResult<Target = FocusableElement> {\n focusProps: DOMAttributes<Target>\n}\n\nexport function useFocus<Target extends FocusableElement = FocusableElement>(props: FocusProps<Target>): FocusResult<Target> {\n const { isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange } = props;\n\n // Unified handler for focus change\n const handleFocusChange = useCallback(\n (isFocused: boolean, e: ReactFocusEvent<Target>) => {\n if (isFocused) {\n onFocusProp?.(e);\n onFocusChange?.(true);\n } else {\n onBlurProp?.(e);\n onFocusChange?.(false);\n }\n },\n [onFocusProp, onBlurProp, onFocusChange]\n );\n\n // Blur handler\n const onBlur = useCallback(\n (e: ReactFocusEvent<Target>) => {\n if (e.target === e.currentTarget) {\n handleFocusChange(false, e);\n }\n },\n [handleFocusChange]\n );\n\n // Synthetic focus handler\n const onSyntheticFocus = useSyntheticBlurEvent<Target>(onBlur);\n\n // Focus handler\n const onFocus = useCallback(\n (e: ReactFocusEvent<Target>) => {\n const ownerDocument = getOwnerDocument(e.target);\n const activeElement = ownerDocument ? getActiveElement(ownerDocument) : getActiveElement();\n if (e.target === e.currentTarget && activeElement === getEventTarget(e.nativeEvent)) {\n handleFocusChange(true, e);\n onSyntheticFocus(e);\n }\n },\n [handleFocusChange, onSyntheticFocus]\n );\n\n // Return focus props\n return {\n focusProps: {\n ...(isDisabled ? {} : { onFocus, onBlur }),\n } as DOMAttributes<Target>,\n };\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useCallback, useEffect, useRef } from \"react\";\n\ninterface GlobalListeners {\n addGlobalListener<K extends keyof WindowEventMap | keyof DocumentEventMap>(\n el: Window | EventTarget,\n type: K,\n listener: (this: Document, ev: K extends keyof WindowEventMap ? WindowEventMap[K] : K extends keyof DocumentEventMap ? DocumentEventMap[K] : never) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addGlobalListener(\n el: EventTarget,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void;\n removeGlobalListener<K extends keyof WindowEventMap & keyof DocumentEventMap>(\n el: Window | EventTarget,\n type: K,\n listener: (this: Document, ev: K extends keyof WindowEventMap ? WindowEventMap[K] : DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeGlobalListener(\n el: EventTarget,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void;\n removeAllGlobalListeners(): void;\n}\n\n/**\n * A hook that provides utilities for managing global event listeners.\n * It allows adding, removing, and cleaning up event listeners on global targets like `window` or `document`.\n */\nfunction useGlobalListeners(): GlobalListeners {\n const globalListeners = useRef<Map<EventListenerOrEventListenerObject, { type: string; eventTarget: EventTarget; options?: boolean | AddEventListenerOptions }>>(new Map());\n\n const addGlobalListener = useCallback(\n (eventTarget: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => {\n const wrappedListener = typeof options === 'object' && options?.once\n ? (...args: any[]) => {\n globalListeners.current.delete(listener);\n (listener as EventListener)(...args as [any]);\n }\n : listener;\n\n globalListeners.current.set(listener, { type, eventTarget, options });\n eventTarget.addEventListener(type, wrappedListener, options);\n },\n []\n );\n\n const removeGlobalListener = useCallback(\n (eventTarget: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => {\n const storedListener = globalListeners.current.get(listener);\n const fn = storedListener?.options?.once ? storedListener.fn : listener;\n\n eventTarget.removeEventListener(type, fn as EventListener, options);\n globalListeners.current.delete(listener);\n },\n []\n );\n\n const removeAllGlobalListeners = useCallback(() => {\n globalListeners.current.forEach(({ type, eventTarget, options }: { type: string; eventTarget: EventTarget; options?: boolean | AddEventListenerOptions }, listener: EventListener) => {\n eventTarget.removeEventListener(type, listener as EventListener, options);\n });\n globalListeners.current.clear();\n }, []);\n\n useEffect(() => {\n return () => removeAllGlobalListeners();\n }, [removeAllGlobalListeners]);\n\n return { addGlobalListener, removeGlobalListener, removeAllGlobalListeners };\n}\n\nexport { useGlobalListeners };","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useCallback, useRef } from \"react\";\nimport { useGlobalListeners } from \"./useGlobalListeners\";\nimport { useSyntheticBlurEvent, createSyntheticEvent } from \"./useSyntheticBlurEvent\";\nimport { getActiveElement, getEventTarget, getOwnerDocument, nodeContains } from \"@necto/dom\";\n\nimport type { DOMAttributes } from \"@necto-react/types\";\nimport type { FocusEvent as ReactFocusEvent } from \"react\";\n\nexport interface FocusWithinProps {\n isDisabled?: boolean,\n onFocusWithin?: (e: ReactFocusEvent) => void,\n onBlurWithin?: (e: ReactFocusEvent) => void,\n onFocusWithinChange?: (isFocusWithin: boolean) => void\n}\n\nexport interface FocusWithinResult {\n focusWithinProps: DOMAttributes\n}\n\nexport function useFocusWithin(props: FocusWithinProps): FocusWithinResult {\n let { isDisabled, onFocusWithin, onBlurWithin, onFocusWithinChange } = props;\n let state = useRef({ isFocusWithin: false });\n let { addGlobalListener, removeAllGlobalListeners } = useGlobalListeners();\n\n let onBlur = useCallback((event: ReactFocusEvent) => {\n if (!event.currentTarget.contains(event.target)) return;\n\n if (state.current.isFocusWithin && !(event.currentTarget as Element).contains(event.relatedTarget as Element)) {\n state.current.isFocusWithin = false;\n removeAllGlobalListeners();\n\n if (onBlurWithin) onBlurWithin(event);\n if (onFocusWithinChange) onFocusWithinChange(false);\n }\n }, [onBlurWithin, onFocusWithinChange, state, removeAllGlobalListeners]);\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n let onFocus = useCallback((event: ReactFocusEvent) => {\n if (!event.currentTarget.contains(event.target)) return;\n\n const ownerDocument = getOwnerDocument(event.target);\n const activeElement = getActiveElement(ownerDocument);\n\n if (!state.current.isFocusWithin && activeElement == getEventTarget(event.nativeEvent)) {\n if (onFocusWithin) onFocusWithin(event);\n if (onFocusWithinChange) onFocusWithinChange(true);\n\n state.current.isFocusWithin = true;\n onSyntheticFocus(event);\n\n let currentTarget = event.currentTarget;\n addGlobalListener(ownerDocument, 'focus', e => {\n if (state.current.isFocusWithin && !nodeContains(currentTarget, e.target as Element)) {\n let nativeEvent = new ownerDocument.defaultView!.FocusEvent('blur', {relatedTarget: e.target});\n Object.defineProperty(nativeEvent, 'target', {value: currentTarget});\n Object.defineProperty(nativeEvent, 'currentTarget', {value: currentTarget});\n let event = createSyntheticEvent<ReactFocusEvent>(nativeEvent);\n onBlur(event);\n }\n }, {capture: true});\n }\n }, [onFocusWithin, onFocusWithinChange, onSyntheticFocus, addGlobalListener, onBlur]);\n\n if (isDisabled) {\n return {\n focusWithinProps: {\n onFocus: undefined,\n onBlur: undefined\n } as DOMAttributes\n };\n }\n\n return {\n focusWithinProps: {\n onFocus,\n onBlur\n } as unknown as DOMAttributes\n }\n}","function r(n){return typeof window<\"u\"&&window.navigator!=null?n.test(window.navigator.userAgentData?.platform||window.navigator.platform):!1}var e=function(){return r(/^Mac/i)};function o(n){return typeof window>\"u\"||window.navigator==null?!1:window.navigator.userAgentData?.brands.some(t=>n.test(t.brand))||n.test(window.navigator.userAgent)}var a=function(){return o(/Android/i)};export{a as isAndroid,e as isMac};\n//# sourceMappingURL=index.mjs.map","import{isAndroid as E}from\"@necto/platform\";function y(e){return e.mozInputSource===0&&e.isTrusted?!0:E()&&e.pointerType?e.type===\"click\"&&e.buttons===1:e.detail===0&&!e.pointerType}import{getOwnerDocument as d,getOwnerWindow as c}from\"@necto/dom\";var p=new Set([\"checkbox\",\"radio\",\"range\",\"color\",\"file\",\"image\",\"button\",\"submit\",\"reset\"]),f={Tab:!0,Escape:!0};function M(e,r,t){if(!t||!(\"target\"in t)||!t.target)return!1;let a=d(t.target),o=c(t.target),i=typeof window<\"u\"?o.HTMLInputElement:HTMLInputElement,s=typeof window<\"u\"?o.HTMLTextAreaElement:HTMLTextAreaElement,l=typeof window<\"u\"?o.HTMLElement:HTMLElement,u=typeof window<\"u\"?o.KeyboardEvent:KeyboardEvent,n=a.activeElement;return e=e||n instanceof i&&!p.has(n.type)||n instanceof s||n instanceof l&&n.isContentEditable,!(e&&r===\"keyboard\"&&t instanceof u&&!f[t.key])}export{M as isKeyboardFocusEvent,y as isVirtualClick};\n","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useEffect } from \"react\";\nimport { isMac } from \"@necto/platform\";\nimport { isKeyboardFocusEvent } from \"@necto-react/helpers\";\nimport { getOwnerWindow, getOwnerDocument } from \"@necto/dom\";\n\ntype Modality = \"keyboard\" | \"pointer\" | \"virtual\";\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent | null;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\nexport type FocusVisibleHandler = (isFocusVisible: boolean) => void;\n\nconst hasSetupGlobalListeners = new Map<Window, { focus: () => void }>();\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\nlet currentModality: Modality | null = null;\nconst changeHandlers = new Set<Handler>();\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n changeHandlers.forEach((handler) => handler(modality, e));\n}\n\nfunction isValidKey(e: KeyboardEvent) {\n return !(\n e.metaKey ||\n (!isMac() && e.altKey) ||\n e.ctrlKey ||\n [\"Control\", \"Shift\", \"Meta\"].includes(e.key)\n );\n}\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n if (isValidKey(e)) {\n hasEventBeforeFocus = true;\n currentModality = \"keyboard\";\n triggerChangeHandlers(\"keyboard\", e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n if ([\"mousedown\", \"pointerdown\"].includes(e.type)) {\n hasEventBeforeFocus = true;\n currentModality = \"pointer\";\n triggerChangeHandlers(\"pointer\", e);\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n if (\n [window, document].includes(e.target as any) ||\n !e.isTrusted ||\n (!hasEventBeforeFocus && !hasBlurredWindowRecently)\n ) {\n return;\n }\n\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = \"virtual\";\n triggerChangeHandlers(\"virtual\", e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\nfunction setupGlobalFocusEvents(element?: HTMLElement | null) {\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n\n if (\n typeof window === \"undefined\" ||\n typeof document === \"undefined\" ||\n hasSetupGlobalListeners.has(windowObject)\n ) {\n return;\n }\n\n const originalFocus = windowObject.HTMLElement.prototype.focus;\n windowObject.HTMLElement.prototype.focus = function (...args) {\n hasEventBeforeFocus = true;\n originalFocus.apply(this, args);\n };\n\n documentObject.addEventListener(\"keydown\", handleKeyboardEvent, true);\n documentObject.addEventListener(\"click\", handlePointerEvent, true);\n windowObject.addEventListener(\"focus\", handleFocusEvent, true);\n windowObject.addEventListener(\"blur\", handleWindowBlur, false);\n\n if (typeof PointerEvent !== \"undefined\") {\n documentObject.addEventListener(\"pointerdown\", handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners.set(windowObject, { focus: originalFocus });\n}\n\nfunction tearDownGlobalFocusEvents(element?: HTMLElement | null) {\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n\n if (!hasSetupGlobalListeners.has(windowObject)) return;\n\n const { focus } = hasSetupGlobalListeners.get(windowObject)!;\n windowObject.HTMLElement.prototype.focus = focus;\n\n documentObject.removeEventListener(\"keydown\", handleKeyboardEvent, true);\n documentObject.removeEventListener(\"click\", handlePointerEvent, true);\n windowObject.removeEventListener(\"focus\", handleFocusEvent, true);\n windowObject.removeEventListener(\"blur\", handleWindowBlur, false);\n\n hasSetupGlobalListeners.delete(windowObject);\n}\n\nexport function addWindowFocusTracking(element?: HTMLElement | null): () => void {\n const documentObject = getOwnerDocument(element);\n\n if (documentObject.readyState !== \"loading\") {\n setupGlobalFocusEvents(element);\n } else {\n documentObject.addEventListener(\"DOMContentLoaded\", () =>\n setupGlobalFocusEvents(element)\n );\n }\n\n return () => tearDownGlobalFocusEvents(element);\n}\n\nexport function getInteractionModality(): Modality | null {\n return currentModality;\n}\n\nexport function useFocusVisibleListener(\n fn: FocusVisibleHandler,\n deps: ReadonlyArray<any>,\n opts?: { isTextInput?: boolean }\n): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n const handler: Handler = (modality, e) => {\n if (!isKeyboardFocusEvent(!!opts?.isTextInput, modality, e)) return;\n fn(currentModality !== \"pointer\");\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, deps);\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useFocus } from './useFocus';\nimport { useFocusWithin } from './useFocusWithin';\nimport { useCallback, useRef, useState } from 'react';\nimport { useFocusVisibleListener } from \"./useFocusVisibleListener\";\n\nimport type { DOMAttributes } from '@necto-react/types';\n\nexport type Modality = 'keyboard' | 'pointer' | 'virtual';\nlet currentModality: null | Modality = null;\n\nexport interface FocusRingProps {\n within?: boolean;\n isTextInput?: boolean;\n autoFocus?: boolean;\n}\n\nexport interface FocusRingResult {\n isFocused: boolean;\n isFocusVisible: boolean;\n focusProps: DOMAttributes;\n}\n\nexport function useFocusRing({\n within = false,\n isTextInput = false,\n autoFocus = false,\n}: FocusRingProps = {}): FocusRingResult {\n const state = useRef({\n isFocused: false,\n isFocusVisible: autoFocus || currentModality !== 'pointer',\n });\n\n const [isFocused, setFocused] = useState(false);\n const [isFocusVisible, setFocusVisible] = useState(() => state.current.isFocused && state.current.isFocusVisible);\n\n const updateFocusVisibleState = useCallback(() => {\n setFocusVisible(state.current.isFocused && state.current.isFocusVisible);\n }, []);\n\n const handleFocusChange = useCallback(\n (focused: boolean) => {\n state.current.isFocused = focused;\n setFocused(focused);\n updateFocusVisibleState();\n },\n [updateFocusVisibleState]\n );\n\n useFocusVisibleListener(\n (focusVisible) => {\n state.current.isFocusVisible = focusVisible;\n updateFocusVisibleState();\n },\n [],\n { isTextInput }\n );\n\n const { focusProps } = useFocus({\n isDisabled: within,\n onFocusChange: handleFocusChange,\n });\n\n const { focusWithinProps } = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: handleFocusChange,\n });\n\n return {\n isFocused,\n isFocusVisible,\n focusProps: within ? focusWithinProps : focusProps,\n };\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useGlobalListeners } from './useGlobalListeners';\nimport { getOwnerDocument, nodeContains } from \"@necto/dom\";\nimport { useState, useMemo, useRef, useEffect, useCallback } from 'react';\n\nimport type { DOMAttributes, HoverEvent } from '@necto-react/types';\n\nexport interface HoverProps extends HoverEvent {\n isDisabled?: boolean;\n onHoverStart?: (event: HoverEvent) => void;\n onHoverEnd?: (event: HoverEvent) => void;\n onHoverChange?: (isHovered: boolean) => void;\n}\n\nexport interface HoverResult {\n hoverProps: DOMAttributes;\n isHovered: boolean;\n}\n\n// See https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/interactions/src/useHover.ts#L33C1-L38C1\n// as well as https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\n\nexport function setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n\n setTimeout(() => {\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nexport function useHover(props: HoverProps): HoverResult {\n const { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;\n\n const [isHovered, setHovered] = useState(false);\n const state = useRef<{\n isHovered: boolean;\n ignoreEmulatedMouseEvents: boolean;\n pointerType: string;\n target: EventTarget | null;\n }>({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null,\n });\n\n const { addGlobalListener, removeAllGlobalListeners } = useGlobalListeners();\n\n const triggerHoverStart = useCallback(\n (event: any, pointerType: string) => {\n const currentState = state.current;\n currentState.pointerType = pointerType;\n\n if (\n isDisabled ||\n pointerType === 'touch' ||\n currentState.isHovered ||\n !event.currentTarget.contains(event.target)\n ) {\n return;\n }\n\n currentState.isHovered = true;\n currentState.target = event.currentTarget;\n\n addGlobalListener(\n getOwnerDocument(event.target),\n 'pointerover',\n (e: any) => {\n if (\n currentState.isHovered &&\n currentState.target &&\n !nodeContains(currentState.target, e.target as Element)\n ) {\n triggerHoverEnd(e, e.pointerType);\n }\n },\n { capture: true }\n );\n\n onHoverStart?.({\n type: 'hoverstart',\n target: event.currentTarget,\n pointerType,\n });\n\n onHoverChange?.(true);\n setHovered(true);\n },\n [isDisabled, onHoverStart, onHoverChange, addGlobalListener]\n );\n\n const triggerHoverEnd = useCallback(\n (event: any, pointerType: string) => {\n const currentState = state.current;\n\n if (pointerType === 'touch' || !currentState.isHovered || !currentState.target) {\n return;\n }\n\n currentState.isHovered = false;\n currentState.pointerType = '';\n currentState.target = null;\n\n removeAllGlobalListeners();\n\n onHoverEnd?.({\n type: 'hoverend',\n target: event.currentTarget,\n pointerType,\n });\n\n onHoverChange?.(false);\n setHovered(false);\n },\n [onHoverEnd, onHoverChange, removeAllGlobalListeners]\n );\n\n const hoverProps = useMemo(() => {\n const props: DOMAttributes = {\n onMouseLeave: () => {},\n onMouseEnter: () => {},\n onTouchStart: () => {},\n onPointerLeave: () => {},\n onPointerEnter: () => {},\n };\n\n if (typeof PointerEvent !== 'undefined') {\n props.onPointerEnter = (e: any) => {\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') return;\n triggerHoverStart(e, e.pointerType);\n };\n props.onPointerLeave = (e: any) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, e.pointerType);\n }\n };\n } else {\n props.onTouchStart = () => {\n state.current.ignoreEmulatedMouseEvents = true;\n };\n props.onMouseEnter = (e: any) => {\n if (\n !state.current.ignoreEmulatedMouseEvents &&\n !globalIgnoreEmulatedMouseEvents\n ) {\n triggerHoverStart(e, 'mouse');\n }\n state.current.ignoreEmulatedMouseEvents = false;\n };\n props.onMouseLeave = (e: any) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, 'mouse');\n }\n };\n }\n\n return props;\n }, [isDisabled, triggerHoverStart, triggerHoverEnd]);\n\n useEffect(() => {\n if (isDisabled && state.current.isHovered) {\n triggerHoverEnd({ currentTarget: state.current.target }, state.current.pointerType);\n }\n }, [isDisabled, triggerHoverEnd]);\n\n return { hoverProps, isHovered };\n}"],"names":["DisabledContext","createContext","useDisabledFlags","useContext","useDisabled","type","defaultFallback","useDisabledProps","extraProps","isDisabled","useMemo","props","onClick","onChange","disabled","DisabledProvider","value","children","createElement","Provider","useEffectEvent","fn","fnRef","useRef","document","useLayoutEffect","current","useCallback","args","createSyntheticEvent","nativeEvent","event","isDefaultPrevented","defaultPrevented","isPropagationStopped","cancelBubble","persist","useSyntheticBlurEvent","onBlur","stateRef","isFocused","observer","state","disconnect","dispatchBlur","e","target","HTMLButtonElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","addEventListener","once","MutationObserver","relatedTargetEl","activeElement","dispatchEvent","FocusEvent","relatedTarget","bubbles","observe","attributes","attributeFilter","nodeType","t","Node","DOCUMENT_FRAGMENT_NODE","n","o","contains","r","Element","tagName","assignedSlot","parentNode","host","shadowRoot","composedPath","i","ownerDocument","a","window","defaultView","useFocus","onFocus","onFocusProp","onBlurProp","onFocusChange","handleFocusChange","currentTarget","onSyntheticFocus","getOwnerDocument","getActiveElement","getEventTarget","focusProps","useGlobalListeners","globalListeners","Map","addGlobalListener","eventTarget","listener","options","wrappedListener","delete","set","removeGlobalListener","storedListener","get","removeEventListener","removeAllGlobalListeners","forEach","clear","useEffect","useFocusWithin","onFocusWithin","onBlurWithin","onFocusWithinChange","isFocusWithin","nodeContains","Object","defineProperty","capture","focusWithinProps","undefined","isMac","re","navigator","test","userAgentData","platform","testPlatform","p","Set","f","Tab","Escape","hasSetupGlobalListeners","hasEventBeforeFocus","hasBlurredWindowRecently","currentModality","changeHandlers","triggerChangeHandlers","modality","handler","handleKeyboardEvent","metaKey","altKey","ctrlKey","includes","key","handlePointerEvent","handleFocusEvent","isTrusted","handleWindowBlur","setupGlobalFocusEvents","element","windowObject","getOwnerWindow","documentObject","has","originalFocus","HTMLElement","prototype","focus","apply","this","PointerEvent","addWindowFocusTracking","readyState","tearDownGlobalFocusEvents","getInteractionModality","useFocusVisibleListener","deps","opts","d","c","s","l","u","KeyboardEvent","isContentEditable","isKeyboardFocusEvent","isTextInput","add","useFocusRing","within","autoFocus","isFocusVisible","setFocused","useState","setFocusVisible","updateFocusVisibleState","focused","focusVisible","globalIgnoreEmulatedMouseEvents","setGlobalIgnoreEmulatedMouseEvents","setTimeout","useHover","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","ignoreEmulatedMouseEvents","pointerType","triggerHoverStart","currentState","triggerHoverEnd","hoverProps","onMouseLeave","onMouseEnter","onTouchStart","onPointerLeave","onPointerEnter"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/useDisabled.ts","../src/useEffectEvent.ts","../src/useSyntheticBlurEvent.ts","../../necto-dom/dist/index.mjs","../src/useFocus.ts","../src/useGlobalListeners.ts","../src/useFocusWithin.ts","../../necto-platform/dist/index.mjs","../../necto-react-helpers/dist/index.js","../src/useFocusVisibleListener.ts","../src/useFocusRing.ts","../src/useHover.ts"],"sourcesContent":["/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nimport { createContext, createElement, useContext, useMemo } from \"react\";\n\nimport type { HTMLAttributes, PropsWithChildren } from \"react\";\n\ntype DisabledFlags = {\n general?: boolean;\n form?: boolean;\n interactions?: boolean;\n [key: string]: boolean | undefined;\n};\n\nlet DisabledContext = createContext<DisabledFlags>({});\n\nexport function useDisabledFlags(): DisabledFlags {\n return useContext(DisabledContext) || {};\n};\n\nexport function useDisabled(\n type: keyof DisabledFlags = 'general',\n defaultFallback: boolean = false\n): boolean {\n const flags = useContext(DisabledContext) || {};\n return flags[type] ?? defaultFallback;\n}\n\nexport function useDisabledProps(type: keyof DisabledFlags = 'general', extraProps: HTMLAttributes<HTMLElement> = {}): HTMLAttributes<HTMLElement> {\n const isDisabled = useDisabled(type);\n\n return useMemo(() => {\n let props: HTMLAttributes<HTMLElement> = {\n ...extraProps\n };\n\n if (isDisabled) {\n props = {\n ...props,\n ...(typeof extraProps.onClick === 'function' || typeof extraProps.onChange === 'function' ? { disabled: isDisabled } : {}),\n 'aria-disabled': isDisabled\n };\n }\n\n return props;\n }, [isDisabled, extraProps]);\n};\n\nexport function DisabledProvider({\n value,\n children,\n}: PropsWithChildren<{ value?: DisabledFlags }>) {\n return createElement(\n DisabledContext.Provider,\n { value: value || {} },\n children\n );\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nimport { useCallback, useRef, useLayoutEffect} from \"react\";\n\nexport function useEffectEvent<T extends (...args: any[]) => any>(fn: T): T {\n const fnRef = useRef(fn);\n\n // Inline SSR-safe useLayoutEffect\n (typeof document !== \"undefined\" ? useLayoutEffect : () => {})(\n () => {\n fnRef.current = fn;\n },\n [fn]\n );\n\n return useCallback(((...args: Parameters<T>): ReturnType<T> => {\n return fnRef.current(...args);\n }) as T, []);\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useEffectEvent } from \"./useEffectEvent\";\nimport { useRef, useCallback, useLayoutEffect } from 'react';\nimport type { FocusEvent as ReactFocusEvent, SyntheticEvent } from 'react';\n\n/**\n * Creates a synthetic React event from a native DOM event.\n * This is used to maintain compatibility with React's event system.\n * \n * @param nativeEvent - The original native DOM event.\n * @returns The synthetic React event.\n */\nexport function createSyntheticEvent<E extends SyntheticEvent>(nativeEvent: Event): E {\n const event = nativeEvent as unknown as E;\n event.nativeEvent = nativeEvent;\n event.isDefaultPrevented = () => event.defaultPrevented;\n event.isPropagationStopped = () => (event as any).cancelBubble; // Deprecated but widely supported.\n event.persist = () => {}; // No-op for compatibility with React's synthetic event system.\n return event;\n}\n\n/**\n * Custom React hook to handle synthetic blur events, particularly for disabled elements.\n * \n * @param onBlur - Callback to handle the blur event.\n * @returns A callback to attach to the element's blur event.\n */\nexport function useSyntheticBlurEvent<Target extends Element = Element>(\n onBlur: (event: ReactFocusEvent<Target>) => void\n): (event: ReactFocusEvent<Target>) => void {\n const stateRef = useRef<{\n isFocused: boolean;\n observer: MutationObserver | null;\n }>({\n isFocused: false,\n observer: null,\n });\n\n // Cleanup effect to disconnect the MutationObserver when the component unmounts.\n useLayoutEffect(() => {\n const state = stateRef.current;\n return () => {\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n\n // Handler to dispatch the blur event using the provided callback.\n const dispatchBlur = useEffectEvent((e: ReactFocusEvent<Target>) => {\n onBlur?.(e);\n });\n\n // Callback to handle the blur event logic.\n return useCallback((e: ReactFocusEvent<Target>) => {\n if (\n e.target instanceof HTMLButtonElement ||\n e.target instanceof HTMLInputElement ||\n e.target instanceof HTMLTextAreaElement ||\n e.target instanceof HTMLSelectElement\n ) {\n stateRef.current.isFocused = true;\n\n const target = e.target;\n const onBlurHandler: EventListenerOrEventListenerObject = (event) => {\n stateRef.current.isFocused = false;\n\n if (target.disabled) {\n // Dispatch a synthetic React event for backward compatibility.\n const syntheticEvent = createSyntheticEvent<ReactFocusEvent<Target>>(event);\n dispatchBlur(syntheticEvent);\n }\n\n // Cleanup the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n\n // Add a one-time blur event listener.\n target.addEventListener('focusout', onBlurHandler, { once: true });\n\n // Set up a MutationObserver to monitor changes to the 'disabled' attribute.\n stateRef.current.observer = new MutationObserver(() => {\n if (stateRef.current.isFocused && target.disabled) {\n stateRef.current.observer?.disconnect();\n const relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n target.dispatchEvent(new FocusEvent('blur', { relatedTarget: relatedTargetEl }));\n target.dispatchEvent(new FocusEvent('focusout', { bubbles: true, relatedTarget: relatedTargetEl }));\n }\n });\n\n // Observe changes to the 'disabled' attribute of the target element.\n stateRef.current.observer.observe(target, { attributes: true, attributeFilter: ['disabled'] });\n }\n }, [dispatchBlur]);\n}\n","function e(e){return t(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&\"host\"in e}function t(e){return null!==e&&\"object\"==typeof e&&\"nodeType\"in e&&\"number\"==typeof e.nodeType}function n(t,n,o=!0){if(!t||!n)return!1;if(!o)return t.contains(n);let r=n;for(;r;){if(r===t)return!0;r=r instanceof Element&&\"SLOT\"===r.tagName&&r.assignedSlot?r.assignedSlot.parentNode:e(r)?r.host:r.parentNode}return!1}var o=(e=document,t=!0)=>{if(!t)return e.activeElement;let n=e.activeElement;for(;n&&\"shadowRoot\"in n&&n.shadowRoot?.activeElement;)n=n.shadowRoot.activeElement;return n};function r(e,t=!0){return t&&e.target.shadowRoot&&e.composedPath?e.composedPath()[0]:e.target}var i=e=>e?.ownerDocument??document,a=e=>{if(e&&\"window\"in e&&e.window===e)return e;return i(e).defaultView||window};export{o as getActiveElement,r as getEventTarget,i as getOwnerDocument,a as getOwnerWindow,t as isNode,n as nodeContains};","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useCallback } from 'react';\nimport { useSyntheticBlurEvent } from \"./useSyntheticBlurEvent\";\nimport { getOwnerDocument, getEventTarget, getActiveElement } from \"@necto/dom\";\n\nimport type { FocusEvent as ReactFocusEvent } from 'react';\nimport type { DOMAttributes, FocusableElement, FocusEvent } from '@necto-react/types';\n\nexport interface FocusProps<Target = FocusableElement> extends FocusEvent<Target> {\n isDisabled?: boolean;\n}\n\nexport interface FocusResult<Target = FocusableElement> {\n focusProps: DOMAttributes<Target>\n}\n\nexport function useFocus<Target extends FocusableElement = FocusableElement>(props: FocusProps<Target>): FocusResult<Target> {\n const { isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange } = props;\n\n // Unified handler for focus change\n const handleFocusChange = useCallback(\n (isFocused: boolean, e: ReactFocusEvent<Target>) => {\n if (isFocused) {\n onFocusProp?.(e);\n onFocusChange?.(true);\n } else {\n onBlurProp?.(e);\n onFocusChange?.(false);\n }\n },\n [onFocusProp, onBlurProp, onFocusChange]\n );\n\n // Blur handler\n const onBlur = useCallback(\n (e: ReactFocusEvent<Target>) => {\n if (e.target === e.currentTarget) {\n handleFocusChange(false, e);\n }\n },\n [handleFocusChange]\n );\n\n // Synthetic focus handler\n const onSyntheticFocus = useSyntheticBlurEvent<Target>(onBlur);\n\n // Focus handler\n const onFocus = useCallback(\n (e: ReactFocusEvent<Target>) => {\n const ownerDocument = getOwnerDocument(e.target);\n const activeElement = ownerDocument ? getActiveElement(ownerDocument) : getActiveElement();\n if (e.target === e.currentTarget && activeElement === getEventTarget(e.nativeEvent)) {\n handleFocusChange(true, e);\n onSyntheticFocus(e);\n }\n },\n [handleFocusChange, onSyntheticFocus]\n );\n\n // Return focus props\n return {\n focusProps: {\n ...(isDisabled ? {} : { onFocus, onBlur }),\n } as DOMAttributes<Target>,\n };\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useCallback, useEffect, useRef } from \"react\";\n\ninterface GlobalListeners {\n addGlobalListener<K extends keyof WindowEventMap | keyof DocumentEventMap>(\n el: Window | EventTarget,\n type: K,\n listener: (this: Document, ev: K extends keyof WindowEventMap ? WindowEventMap[K] : K extends keyof DocumentEventMap ? DocumentEventMap[K] : never) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addGlobalListener(\n el: EventTarget,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void;\n removeGlobalListener<K extends keyof WindowEventMap & keyof DocumentEventMap>(\n el: Window | EventTarget,\n type: K,\n listener: (this: Document, ev: K extends keyof WindowEventMap ? WindowEventMap[K] : DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeGlobalListener(\n el: EventTarget,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void;\n removeAllGlobalListeners(): void;\n}\n\n/**\n * A hook that provides utilities for managing global event listeners.\n * It allows adding, removing, and cleaning up event listeners on global targets like `window` or `document`.\n */\nfunction useGlobalListeners(): GlobalListeners {\n const globalListeners = useRef<Map<EventListenerOrEventListenerObject, { type: string; eventTarget: EventTarget; options?: boolean | AddEventListenerOptions }>>(new Map());\n\n const addGlobalListener = useCallback(\n (eventTarget: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => {\n const wrappedListener = typeof options === 'object' && options?.once\n ? (...args: any[]) => {\n globalListeners.current.delete(listener);\n (listener as EventListener)(...args as [any]);\n }\n : listener;\n\n globalListeners.current.set(listener, { type, eventTarget, options });\n eventTarget.addEventListener(type, wrappedListener, options);\n },\n []\n );\n\n const removeGlobalListener = useCallback(\n (eventTarget: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => {\n const storedListener = globalListeners.current.get(listener);\n const fn = storedListener?.options?.once ? storedListener.fn : listener;\n\n eventTarget.removeEventListener(type, fn as EventListener, options);\n globalListeners.current.delete(listener);\n },\n []\n );\n\n const removeAllGlobalListeners = useCallback(() => {\n globalListeners.current.forEach(({ type, eventTarget, options }: { type: string; eventTarget: EventTarget; options?: boolean | AddEventListenerOptions }, listener: EventListener) => {\n eventTarget.removeEventListener(type, listener as EventListener, options);\n });\n globalListeners.current.clear();\n }, []);\n\n useEffect(() => {\n return () => removeAllGlobalListeners();\n }, [removeAllGlobalListeners]);\n\n return { addGlobalListener, removeGlobalListener, removeAllGlobalListeners };\n}\n\nexport { useGlobalListeners };","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useCallback, useRef } from \"react\";\nimport { useGlobalListeners } from \"./useGlobalListeners\";\nimport { useSyntheticBlurEvent, createSyntheticEvent } from \"./useSyntheticBlurEvent\";\nimport { getActiveElement, getEventTarget, getOwnerDocument, nodeContains } from \"@necto/dom\";\n\nimport type { DOMAttributes } from \"@necto-react/types\";\nimport type { FocusEvent as ReactFocusEvent } from \"react\";\n\nexport interface FocusWithinProps {\n isDisabled?: boolean,\n onFocusWithin?: (e: ReactFocusEvent) => void,\n onBlurWithin?: (e: ReactFocusEvent) => void,\n onFocusWithinChange?: (isFocusWithin: boolean) => void\n}\n\nexport interface FocusWithinResult {\n focusWithinProps: DOMAttributes\n}\n\nexport function useFocusWithin(props: FocusWithinProps): FocusWithinResult {\n let { isDisabled, onFocusWithin, onBlurWithin, onFocusWithinChange } = props;\n let state = useRef({ isFocusWithin: false });\n let { addGlobalListener, removeAllGlobalListeners } = useGlobalListeners();\n\n let onBlur = useCallback((event: ReactFocusEvent) => {\n if (!event.currentTarget.contains(event.target)) return;\n\n if (state.current.isFocusWithin && !(event.currentTarget as Element).contains(event.relatedTarget as Element)) {\n state.current.isFocusWithin = false;\n removeAllGlobalListeners();\n\n if (onBlurWithin) onBlurWithin(event);\n if (onFocusWithinChange) onFocusWithinChange(false);\n }\n }, [onBlurWithin, onFocusWithinChange, state, removeAllGlobalListeners]);\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n let onFocus = useCallback((event: ReactFocusEvent) => {\n if (!event.currentTarget.contains(event.target)) return;\n\n const ownerDocument = getOwnerDocument(event.target);\n const activeElement = getActiveElement(ownerDocument);\n\n if (!state.current.isFocusWithin && activeElement == getEventTarget(event.nativeEvent)) {\n if (onFocusWithin) onFocusWithin(event);\n if (onFocusWithinChange) onFocusWithinChange(true);\n\n state.current.isFocusWithin = true;\n onSyntheticFocus(event);\n\n let currentTarget = event.currentTarget;\n addGlobalListener(ownerDocument, 'focus', e => {\n if (state.current.isFocusWithin && !nodeContains(currentTarget, e.target as Element)) {\n let nativeEvent = new ownerDocument.defaultView!.FocusEvent('blur', {relatedTarget: e.target});\n Object.defineProperty(nativeEvent, 'target', {value: currentTarget});\n Object.defineProperty(nativeEvent, 'currentTarget', {value: currentTarget});\n let event = createSyntheticEvent<ReactFocusEvent>(nativeEvent);\n onBlur(event);\n }\n }, {capture: true});\n }\n }, [onFocusWithin, onFocusWithinChange, onSyntheticFocus, addGlobalListener, onBlur]);\n\n if (isDisabled) {\n return {\n focusWithinProps: {\n onFocus: undefined,\n onBlur: undefined\n } as DOMAttributes\n };\n }\n\n return {\n focusWithinProps: {\n onFocus,\n onBlur\n } as unknown as DOMAttributes\n }\n}","function r(n){return typeof window<\"u\"&&window.navigator!=null?n.test(window.navigator.userAgentData?.platform||window.navigator.platform):!1}var e=function(){return r(/^Mac/i)};function o(n){return typeof window>\"u\"||window.navigator==null?!1:window.navigator.userAgentData?.brands.some(t=>n.test(t.brand))||n.test(window.navigator.userAgent)}var a=function(){return o(/Android/i)};export{a as isAndroid,e as isMac};\n//# sourceMappingURL=index.mjs.map","import{isAndroid as E}from\"@necto/platform\";function y(e){return e.mozInputSource===0&&e.isTrusted?!0:E()&&e.pointerType?e.type===\"click\"&&e.buttons===1:e.detail===0&&!e.pointerType}import{getOwnerDocument as d,getOwnerWindow as c}from\"@necto/dom\";var p=new Set([\"checkbox\",\"radio\",\"range\",\"color\",\"file\",\"image\",\"button\",\"submit\",\"reset\"]),f={Tab:!0,Escape:!0};function M(e,r,t){if(!t||!(\"target\"in t)||!t.target)return!1;let a=d(t.target),o=c(t.target),i=typeof window<\"u\"?o.HTMLInputElement:HTMLInputElement,s=typeof window<\"u\"?o.HTMLTextAreaElement:HTMLTextAreaElement,l=typeof window<\"u\"?o.HTMLElement:HTMLElement,u=typeof window<\"u\"?o.KeyboardEvent:KeyboardEvent,n=a.activeElement;return e=e||n instanceof i&&!p.has(n.type)||n instanceof s||n instanceof l&&n.isContentEditable,!(e&&r===\"keyboard\"&&t instanceof u&&!f[t.key])}export{M as isKeyboardFocusEvent,y as isVirtualClick};\n","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useEffect } from \"react\";\nimport { isMac } from \"@necto/platform\";\nimport { isKeyboardFocusEvent } from \"@necto-react/helpers\";\nimport { getOwnerWindow, getOwnerDocument } from \"@necto/dom\";\n\ntype Modality = \"keyboard\" | \"pointer\" | \"virtual\";\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent | null;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\nexport type FocusVisibleHandler = (isFocusVisible: boolean) => void;\n\nconst hasSetupGlobalListeners = new Map<Window, { focus: () => void }>();\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\nlet currentModality: Modality | null = null;\nconst changeHandlers = new Set<Handler>();\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n changeHandlers.forEach((handler) => handler(modality, e));\n}\n\nfunction isValidKey(e: KeyboardEvent) {\n return !(\n e.metaKey ||\n (!isMac() && e.altKey) ||\n e.ctrlKey ||\n [\"Control\", \"Shift\", \"Meta\"].includes(e.key)\n );\n}\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n if (isValidKey(e)) {\n hasEventBeforeFocus = true;\n currentModality = \"keyboard\";\n triggerChangeHandlers(\"keyboard\", e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n if ([\"mousedown\", \"pointerdown\"].includes(e.type)) {\n hasEventBeforeFocus = true;\n currentModality = \"pointer\";\n triggerChangeHandlers(\"pointer\", e);\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n if (\n [window, document].includes(e.target as any) ||\n !e.isTrusted ||\n (!hasEventBeforeFocus && !hasBlurredWindowRecently)\n ) {\n return;\n }\n\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = \"virtual\";\n triggerChangeHandlers(\"virtual\", e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\nfunction setupGlobalFocusEvents(element?: HTMLElement | null) {\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n\n if (\n typeof window === \"undefined\" ||\n typeof document === \"undefined\" ||\n hasSetupGlobalListeners.has(windowObject)\n ) {\n return;\n }\n\n const originalFocus = windowObject.HTMLElement.prototype.focus;\n windowObject.HTMLElement.prototype.focus = function (...args) {\n hasEventBeforeFocus = true;\n originalFocus.apply(this, args);\n };\n\n documentObject.addEventListener(\"keydown\", handleKeyboardEvent, true);\n documentObject.addEventListener(\"click\", handlePointerEvent, true);\n windowObject.addEventListener(\"focus\", handleFocusEvent, true);\n windowObject.addEventListener(\"blur\", handleWindowBlur, false);\n\n if (typeof PointerEvent !== \"undefined\") {\n documentObject.addEventListener(\"pointerdown\", handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners.set(windowObject, { focus: originalFocus });\n}\n\nfunction tearDownGlobalFocusEvents(element?: HTMLElement | null) {\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n\n if (!hasSetupGlobalListeners.has(windowObject)) return;\n\n const { focus } = hasSetupGlobalListeners.get(windowObject)!;\n windowObject.HTMLElement.prototype.focus = focus;\n\n documentObject.removeEventListener(\"keydown\", handleKeyboardEvent, true);\n documentObject.removeEventListener(\"click\", handlePointerEvent, true);\n windowObject.removeEventListener(\"focus\", handleFocusEvent, true);\n windowObject.removeEventListener(\"blur\", handleWindowBlur, false);\n\n hasSetupGlobalListeners.delete(windowObject);\n}\n\nexport function addWindowFocusTracking(element?: HTMLElement | null): () => void {\n const documentObject = getOwnerDocument(element);\n\n if (documentObject.readyState !== \"loading\") {\n setupGlobalFocusEvents(element);\n } else {\n documentObject.addEventListener(\"DOMContentLoaded\", () =>\n setupGlobalFocusEvents(element)\n );\n }\n\n return () => tearDownGlobalFocusEvents(element);\n}\n\nexport function getInteractionModality(): Modality | null {\n return currentModality;\n}\n\nexport function useFocusVisibleListener(\n fn: FocusVisibleHandler,\n deps: ReadonlyArray<any>,\n opts?: { isTextInput?: boolean }\n): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n const handler: Handler = (modality, e) => {\n if (!isKeyboardFocusEvent(!!opts?.isTextInput, modality, e)) return;\n fn(currentModality !== \"pointer\");\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, deps);\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useFocus } from './useFocus';\nimport { useFocusWithin } from './useFocusWithin';\nimport { useCallback, useRef, useState } from 'react';\nimport { useFocusVisibleListener } from \"./useFocusVisibleListener\";\n\nimport type { DOMAttributes } from '@necto-react/types';\n\nexport type Modality = 'keyboard' | 'pointer' | 'virtual';\nlet currentModality: null | Modality = null;\n\nexport interface FocusRingProps {\n within?: boolean;\n isTextInput?: boolean;\n autoFocus?: boolean;\n}\n\nexport interface FocusRingResult {\n isFocused: boolean;\n isFocusVisible: boolean;\n focusProps: DOMAttributes;\n}\n\nexport function useFocusRing({\n within = false,\n isTextInput = false,\n autoFocus = false,\n}: FocusRingProps = {}): FocusRingResult {\n const state = useRef({\n isFocused: false,\n isFocusVisible: autoFocus || currentModality !== 'pointer',\n });\n\n const [isFocused, setFocused] = useState(false);\n const [isFocusVisible, setFocusVisible] = useState(() => state.current.isFocused && state.current.isFocusVisible);\n\n const updateFocusVisibleState = useCallback(() => {\n setFocusVisible(state.current.isFocused && state.current.isFocusVisible);\n }, []);\n\n const handleFocusChange = useCallback(\n (focused: boolean) => {\n state.current.isFocused = focused;\n setFocused(focused);\n updateFocusVisibleState();\n },\n [updateFocusVisibleState]\n );\n\n useFocusVisibleListener(\n (focusVisible) => {\n state.current.isFocusVisible = focusVisible;\n updateFocusVisibleState();\n },\n [],\n { isTextInput }\n );\n\n const { focusProps } = useFocus({\n isDisabled: within,\n onFocusChange: handleFocusChange,\n });\n\n const { focusWithinProps } = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: handleFocusChange,\n });\n\n return {\n isFocused,\n isFocusVisible,\n focusProps: within ? focusWithinProps : focusProps,\n };\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useGlobalListeners } from './useGlobalListeners';\nimport { getOwnerDocument, nodeContains } from \"@necto/dom\";\nimport { useState, useMemo, useRef, useEffect, useCallback } from 'react';\n\nimport type { DOMAttributes, HoverEvent } from '@necto-react/types';\n\nexport interface HoverProps extends HoverEvent {\n /** Whether the hover events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface HoverResult {\n /** Props to spread on the target element. */\n hoverProps: DOMAttributes,\n isHovered: boolean\n}\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\n\nfunction setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(() => {\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nfunction handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') {\n setGlobalIgnoreEmulatedMouseEvents();\n }\n}\n\nfunction setupGlobalTouchEvents() {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerup', handleGlobalPointerEvent);\n } else if (process.env.NODE_ENV === 'test') {\n document.addEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n\n hoverCount++;\n return () => {\n hoverCount--;\n if (hoverCount > 0) {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.removeEventListener('pointerup', handleGlobalPointerEvent);\n } else if (process.env.NODE_ENV === 'test') {\n document.removeEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n };\n}\n\n/**\n * Handles pointer hover interactions for an element. Normalizes behavior\n * across browsers and platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useHover(props: HoverProps): HoverResult {\n let {\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled\n } = props;\n\n let [isHovered, setHovered] = useState(false);\n let state = useRef({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n\n useEffect(setupGlobalTouchEvents, []);\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n let {hoverProps, triggerHoverEnd} = useMemo(() => {\n let triggerHoverStart = (event, pointerType) => {\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) {\n return;\n }\n\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n\n // When an element that is hovered over is removed, no pointerleave event is fired by the browser,\n // even though the originally hovered target may have shrunk in size so it is no longer hovered.\n // However, a pointerover event will be fired on the new target the mouse is over.\n // In Chrome this happens immediately. In Safari and Firefox, it happens upon moving the mouse one pixel.\n addGlobalListener(getOwnerDocument(event.target), 'pointerover', e => {\n if (state.isHovered && state.target && !nodeContains(state.target, e.target as Element)) {\n triggerHoverEnd(e, e.pointerType);\n }\n }, {capture: true});\n\n if (onHoverStart) {\n onHoverStart({\n type: 'hoverstart',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(true);\n }\n\n setHovered(true);\n };\n\n let triggerHoverEnd = (event, pointerType) => {\n let target = state.target;\n state.pointerType = '';\n state.target = null;\n\n if (pointerType === 'touch' || !state.isHovered || !target) {\n return;\n }\n\n state.isHovered = false;\n removeAllGlobalListeners();\n\n if (onHoverEnd) {\n onHoverEnd({\n type: 'hoverend',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(false);\n }\n\n setHovered(false);\n };\n\n let hoverProps: DOMAttributes = {};\n\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e) => {\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {\n return;\n }\n\n triggerHoverStart(e, e.pointerType);\n };\n\n hoverProps.onPointerLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, e.pointerType);\n }\n };\n } else if (process.env.NODE_ENV === 'test') {\n hoverProps.onTouchStart = () => {\n state.ignoreEmulatedMouseEvents = true;\n };\n\n hoverProps.onMouseEnter = (e) => {\n if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) {\n triggerHoverStart(e, 'mouse');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n };\n\n hoverProps.onMouseLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, 'mouse');\n }\n };\n }\n return {hoverProps, triggerHoverEnd};\n }, [onHoverStart, onHoverChange, onHoverEnd, isDisabled, state, addGlobalListener, removeAllGlobalListeners]);\n\n useEffect(() => {\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) {\n triggerHoverEnd({currentTarget: state.target}, state.pointerType);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDisabled]);\n\n return {\n hoverProps,\n isHovered\n };\n}"],"names":["DisabledContext","createContext","useDisabledFlags","useContext","useDisabled","type","defaultFallback","useDisabledProps","extraProps","isDisabled","useMemo","props","onClick","onChange","disabled","DisabledProvider","value","children","createElement","Provider","useEffectEvent","fn","fnRef","useRef","document","useLayoutEffect","current","useCallback","args","createSyntheticEvent","nativeEvent","event","isDefaultPrevented","defaultPrevented","isPropagationStopped","cancelBubble","persist","useSyntheticBlurEvent","onBlur","stateRef","isFocused","observer","state","disconnect","dispatchBlur","e","target","HTMLButtonElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","addEventListener","once","MutationObserver","relatedTargetEl","activeElement","dispatchEvent","FocusEvent","relatedTarget","bubbles","observe","attributes","attributeFilter","nodeType","t","Node","DOCUMENT_FRAGMENT_NODE","n","o","contains","r","Element","tagName","assignedSlot","parentNode","host","shadowRoot","composedPath","i","ownerDocument","a","window","defaultView","useFocus","onFocus","onFocusProp","onBlurProp","onFocusChange","handleFocusChange","currentTarget","onSyntheticFocus","getOwnerDocument","getActiveElement","getEventTarget","focusProps","useGlobalListeners","globalListeners","Map","addGlobalListener","eventTarget","listener","options","wrappedListener","delete","set","removeGlobalListener","storedListener","get","removeEventListener","removeAllGlobalListeners","forEach","clear","useEffect","useFocusWithin","onFocusWithin","onBlurWithin","onFocusWithinChange","isFocusWithin","nodeContains","Object","defineProperty","capture","focusWithinProps","undefined","isMac","re","navigator","test","userAgentData","platform","testPlatform","p","Set","f","Tab","Escape","hasSetupGlobalListeners","hasEventBeforeFocus","hasBlurredWindowRecently","currentModality","changeHandlers","triggerChangeHandlers","modality","handler","handleKeyboardEvent","metaKey","altKey","ctrlKey","includes","key","handlePointerEvent","handleFocusEvent","isTrusted","handleWindowBlur","setupGlobalFocusEvents","element","windowObject","getOwnerWindow","documentObject","has","originalFocus","HTMLElement","prototype","focus","apply","this","PointerEvent","addWindowFocusTracking","readyState","tearDownGlobalFocusEvents","getInteractionModality","useFocusVisibleListener","deps","opts","d","c","s","l","u","KeyboardEvent","isContentEditable","isKeyboardFocusEvent","isTextInput","add","useFocusRing","within","autoFocus","isFocusVisible","setFocused","useState","setFocusVisible","updateFocusVisibleState","focused","focusVisible","globalIgnoreEmulatedMouseEvents","hoverCount","setGlobalIgnoreEmulatedMouseEvents","setTimeout","handleGlobalPointerEvent","pointerType","setupGlobalTouchEvents","process","env","NODE_ENV","useHover","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","ignoreEmulatedMouseEvents","hoverProps","triggerHoverEnd","triggerHoverStart","onPointerEnter","onPointerLeave","onTouchStart","onMouseEnter","onMouseLeave"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,5 +6,5 @@
6
6
  *
7
7
  */
8
8
 
9
- "use strict";var e=require("react");let t=e.createContext({});function n(n="general",r=!1){return(e.useContext(t)||{})[n]??r}function r(t){let n=e.useRef(t);return("undefined"!=typeof document?e.useLayoutEffect:()=>{})((()=>{n.current=t}),[t]),e.useCallback(((...e)=>n.current(...e)),[])}function o(e){return e.nativeEvent=e,e.isDefaultPrevented=()=>e.defaultPrevented,e.isPropagationStopped=()=>e.cancelBubble,e.persist=()=>{},e}function u(t){let n=e.useRef({isFocused:!1,observer:null});e.useLayoutEffect((()=>{let e=n.current;return()=>{e.observer&&(e.observer.disconnect(),e.observer=null)}}),[]);let u=r((e=>{t?.(e)}));return e.useCallback((e=>{if(e.target instanceof HTMLButtonElement||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement){n.current.isFocused=!0;let t=e.target;t.addEventListener("focusout",(e=>{n.current.isFocused=!1,t.disabled&&u(o(e)),n.current.observer&&(n.current.observer.disconnect(),n.current.observer=null)}),{once:!0}),n.current.observer=new MutationObserver((()=>{if(n.current.isFocused&&t.disabled){n.current.observer?.disconnect();let e=t===document.activeElement?null:document.activeElement;t.dispatchEvent(new FocusEvent("blur",{relatedTarget:e})),t.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:e}))}})),n.current.observer.observe(t,{attributes:!0,attributeFilter:["disabled"]})}}),[u])}function s(e){return function(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&"number"==typeof e.nodeType}(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e}function i(e,t,n=!0){if(!e||!t)return!1;if(!n)return e.contains(t);let r=t;for(;r;){if(r===e)return!0;r=r instanceof Element&&"SLOT"===r.tagName&&r.assignedSlot?r.assignedSlot.parentNode:s(r)?r.host:r.parentNode}return!1}var a=(e=document,t=!0)=>{if(!t)return e.activeElement;let n=e.activeElement;for(;n&&"shadowRoot"in n&&n.shadowRoot?.activeElement;)n=n.shadowRoot.activeElement;return n};function c(e,t=!0){return t&&e.target.shadowRoot&&e.composedPath?e.composedPath()[0]:e.target}var l=e=>e?.ownerDocument??document,d=e=>e&&"window"in e&&e.window===e?e:l(e).defaultView||window;function f(t){let{isDisabled:n,onFocus:r,onBlur:o,onFocusChange:s}=t,i=e.useCallback(((e,t)=>{e?(r?.(t),s?.(!0)):(o?.(t),s?.(!1))}),[r,o,s]),d=e.useCallback((e=>{e.target===e.currentTarget&&i(!1,e)}),[i]),f=u(d),p=e.useCallback((e=>{let t=l(e.target),n=t?a(t):a();e.target===e.currentTarget&&n===c(e.nativeEvent)&&(i(!0,e),f(e))}),[i,f]);return{focusProps:{...n?{}:{onFocus:p,onBlur:d}}}}function p(){let t=e.useRef(new Map),n=e.useCallback(((e,n,r,o)=>{let u="object"==typeof o&&o?.once?(...e)=>{t.current.delete(r),r(...e)}:r;t.current.set(r,{type:n,eventTarget:e,options:o}),e.addEventListener(n,u,o)}),[]),r=e.useCallback(((e,n,r,o)=>{let u=t.current.get(r),s=u?.options?.once?u.fn:r;e.removeEventListener(n,s,o),t.current.delete(r)}),[]),o=e.useCallback((()=>{t.current.forEach((({type:e,eventTarget:t,options:n},r)=>{t.removeEventListener(e,r,n)})),t.current.clear()}),[]);return e.useEffect((()=>()=>o()),[o]),{addGlobalListener:n,removeGlobalListener:r,removeAllGlobalListeners:o}}function v(t){let{isDisabled:n,onFocusWithin:r,onBlurWithin:s,onFocusWithinChange:d}=t,f=e.useRef({isFocusWithin:!1}),{addGlobalListener:v,removeAllGlobalListeners:g}=p(),b=e.useCallback((e=>{e.currentTarget.contains(e.target)&&f.current.isFocusWithin&&!e.currentTarget.contains(e.relatedTarget)&&(f.current.isFocusWithin=!1,g(),s&&s(e),d&&d(!1))}),[s,d,f,g]),E=u(b),m=e.useCallback((e=>{if(!e.currentTarget.contains(e.target))return;let t=l(e.target),n=a(t);if(!f.current.isFocusWithin&&n==c(e.nativeEvent)){r&&r(e),d&&d(!0),f.current.isFocusWithin=!0,E(e);let n=e.currentTarget;v(t,"focus",(e=>{if(f.current.isFocusWithin&&!i(n,e.target)){let r=new t.defaultView.FocusEvent("blur",{relatedTarget:e.target});Object.defineProperty(r,"target",{value:n}),Object.defineProperty(r,"currentTarget",{value:n}),b(o(r))}}),{capture:!0})}}),[r,d,E,v,b]);return n?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:m,onBlur:b}}}var g=function(){return function(e){return typeof window<"u"&&null!=window.navigator&&e.test(window.navigator.userAgentData?.platform||window.navigator.platform)}(/^Mac/i)},b=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),E={Tab:!0,Escape:!0};let m=new Map,T=!1,y=!1,h=null,w=new Set;function L(e,t){w.forEach((n=>n(e,t)))}function F(e){e.metaKey||!g()&&e.altKey||e.ctrlKey||["Control","Shift","Meta"].includes(e.key)||(T=!0,h="keyboard",L("keyboard",e))}function M(e){["mousedown","pointerdown"].includes(e.type)&&(T=!0,h="pointer",L("pointer",e))}function C(e){![window,document].includes(e.target)&&e.isTrusted&&(T||y)&&(T||y||(h="virtual",L("virtual",e)),T=!1,y=!1)}function k(){T=!1,y=!0}function x(e){let t=d(e),n=l(e);if("undefined"==typeof window||"undefined"==typeof document||m.has(t))return;let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(...e){T=!0,r.apply(this,e)},n.addEventListener("keydown",F,!0),n.addEventListener("click",M,!0),t.addEventListener("focus",C,!0),t.addEventListener("blur",k,!1),"undefined"!=typeof PointerEvent&&n.addEventListener("pointerdown",M,!0),m.set(t,{focus:r})}function H(t,n,r){x(),e.useEffect((()=>{let e=(e,n)=>{(function(e,t,n){if(!n||!("target"in n)||!n.target)return!1;let r=l(n.target),o=d(n.target),u=typeof window<"u"?o.HTMLInputElement:HTMLInputElement,s=typeof window<"u"?o.HTMLTextAreaElement:HTMLTextAreaElement,i=typeof window<"u"?o.HTMLElement:HTMLElement,a=typeof window<"u"?o.KeyboardEvent:KeyboardEvent,c=r.activeElement;return!((e=e||c instanceof u&&!b.has(c.type)||c instanceof s||c instanceof i&&c.isContentEditable)&&"keyboard"===t&&n instanceof a&&!E[n.key])})(!!r?.isTextInput,e,n)&&t("pointer"!==h)};return w.add(e),()=>{w.delete(e)}}),n)}let P=!1;exports.DisabledProvider=function({value:n,children:r}){return e.createElement(t.Provider,{value:n||{}},r)},exports.addWindowFocusTracking=function(e){let t=l(e);return"loading"!==t.readyState?x(e):t.addEventListener("DOMContentLoaded",(()=>x(e))),()=>function(e){let t=d(e),n=l(e);if(!m.has(t))return;let{focus:r}=m.get(t);t.HTMLElement.prototype.focus=r,n.removeEventListener("keydown",F,!0),n.removeEventListener("click",M,!0),t.removeEventListener("focus",C,!0),t.removeEventListener("blur",k,!1),m.delete(t)}(e)},exports.createSyntheticEvent=o,exports.getInteractionModality=function(){return h},exports.setGlobalIgnoreEmulatedMouseEvents=function(){P=!0,setTimeout((()=>{P=!1}),50)},exports.useDisabled=n,exports.useDisabledFlags=function(){return e.useContext(t)||{}},exports.useDisabledProps=function(t="general",r={}){let o=n(t);return e.useMemo((()=>{let e={...r};return o&&(e={...e,..."function"==typeof r.onClick||"function"==typeof r.onChange?{disabled:o}:{},"aria-disabled":o}),e}),[o,r])},exports.useEffectEvent=r,exports.useFocus=f,exports.useFocusRing=function({within:t=!1,isTextInput:n=!1,autoFocus:r=!1}={}){let o=e.useRef({isFocused:!1,isFocusVisible:r||!0}),[u,s]=e.useState(!1),[i,a]=e.useState((()=>o.current.isFocused&&o.current.isFocusVisible)),c=e.useCallback((()=>{a(o.current.isFocused&&o.current.isFocusVisible)}),[]),l=e.useCallback((e=>{o.current.isFocused=e,s(e),c()}),[c]);H((e=>{o.current.isFocusVisible=e,c()}),[],{isTextInput:n});let{focusProps:d}=f({isDisabled:t,onFocusChange:l}),{focusWithinProps:p}=v({isDisabled:!t,onFocusWithinChange:l});return{isFocused:u,isFocusVisible:i,focusProps:t?p:d}},exports.useFocusVisibleListener=H,exports.useFocusWithin=v,exports.useGlobalListeners=p,exports.useHover=function(t){let{onHoverStart:n,onHoverChange:r,onHoverEnd:o,isDisabled:u}=t,[s,a]=e.useState(!1),c=e.useRef({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}),{addGlobalListener:d,removeAllGlobalListeners:f}=p(),v=e.useCallback(((e,t)=>{let o=c.current;o.pointerType=t,!u&&"touch"!==t&&!o.isHovered&&e.currentTarget.contains(e.target)&&(o.isHovered=!0,o.target=e.currentTarget,d(l(e.target),"pointerover",(e=>{o.isHovered&&o.target&&!i(o.target,e.target)&&g(e,e.pointerType)}),{capture:!0}),n?.({type:"hoverstart",target:e.currentTarget,pointerType:t}),r?.(!0),a(!0))}),[u,n,r,d]),g=e.useCallback(((e,t)=>{let n=c.current;"touch"!==t&&n.isHovered&&n.target&&(n.isHovered=!1,n.pointerType="",n.target=null,f(),o?.({type:"hoverend",target:e.currentTarget,pointerType:t}),r?.(!1),a(!1))}),[o,r,f]),b=e.useMemo((()=>{let e={onMouseLeave:()=>{},onMouseEnter:()=>{},onTouchStart:()=>{},onPointerLeave:()=>{},onPointerEnter:()=>{}};return"undefined"!=typeof PointerEvent?(e.onPointerEnter=e=>{P&&"mouse"===e.pointerType||v(e,e.pointerType)},e.onPointerLeave=e=>{!u&&e.currentTarget.contains(e.target)&&g(e,e.pointerType)}):(e.onTouchStart=()=>{c.current.ignoreEmulatedMouseEvents=!0},e.onMouseEnter=e=>{c.current.ignoreEmulatedMouseEvents||P||v(e,"mouse"),c.current.ignoreEmulatedMouseEvents=!1},e.onMouseLeave=e=>{!u&&e.currentTarget.contains(e.target)&&g(e,"mouse")}),e}),[u,v,g]);return e.useEffect((()=>{u&&c.current.isHovered&&g({currentTarget:c.current.target},c.current.pointerType)}),[u,g]),{hoverProps:b,isHovered:s}},exports.useSyntheticBlurEvent=u;
9
+ "use strict";var e=require("react");let t=e.createContext({});function n(n="general",r=!1){return(e.useContext(t)||{})[n]??r}function r(t){let n=e.useRef(t);return("undefined"!=typeof document?e.useLayoutEffect:()=>{})((()=>{n.current=t}),[t]),e.useCallback(((...e)=>n.current(...e)),[])}function o(e){return e.nativeEvent=e,e.isDefaultPrevented=()=>e.defaultPrevented,e.isPropagationStopped=()=>e.cancelBubble,e.persist=()=>{},e}function u(t){let n=e.useRef({isFocused:!1,observer:null});e.useLayoutEffect((()=>{let e=n.current;return()=>{e.observer&&(e.observer.disconnect(),e.observer=null)}}),[]);let u=r((e=>{t?.(e)}));return e.useCallback((e=>{if(e.target instanceof HTMLButtonElement||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement){n.current.isFocused=!0;let t=e.target;t.addEventListener("focusout",(e=>{n.current.isFocused=!1,t.disabled&&u(o(e)),n.current.observer&&(n.current.observer.disconnect(),n.current.observer=null)}),{once:!0}),n.current.observer=new MutationObserver((()=>{if(n.current.isFocused&&t.disabled){n.current.observer?.disconnect();let e=t===document.activeElement?null:document.activeElement;t.dispatchEvent(new FocusEvent("blur",{relatedTarget:e})),t.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:e}))}})),n.current.observer.observe(t,{attributes:!0,attributeFilter:["disabled"]})}}),[u])}function i(e){return function(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&"number"==typeof e.nodeType}(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e}function s(e,t,n=!0){if(!e||!t)return!1;if(!n)return e.contains(t);let r=t;for(;r;){if(r===e)return!0;r=r instanceof Element&&"SLOT"===r.tagName&&r.assignedSlot?r.assignedSlot.parentNode:i(r)?r.host:r.parentNode}return!1}var a=(e=document,t=!0)=>{if(!t)return e.activeElement;let n=e.activeElement;for(;n&&"shadowRoot"in n&&n.shadowRoot?.activeElement;)n=n.shadowRoot.activeElement;return n};function c(e,t=!0){return t&&e.target.shadowRoot&&e.composedPath?e.composedPath()[0]:e.target}var l=e=>e?.ownerDocument??document,d=e=>e&&"window"in e&&e.window===e?e:l(e).defaultView||window;function f(t){let{isDisabled:n,onFocus:r,onBlur:o,onFocusChange:i}=t,s=e.useCallback(((e,t)=>{e?(r?.(t),i?.(!0)):(o?.(t),i?.(!1))}),[r,o,i]),d=e.useCallback((e=>{e.target===e.currentTarget&&s(!1,e)}),[s]),f=u(d),p=e.useCallback((e=>{let t=l(e.target),n=t?a(t):a();e.target===e.currentTarget&&n===c(e.nativeEvent)&&(s(!0,e),f(e))}),[s,f]);return{focusProps:{...n?{}:{onFocus:p,onBlur:d}}}}function p(){let t=e.useRef(new Map),n=e.useCallback(((e,n,r,o)=>{let u="object"==typeof o&&o?.once?(...e)=>{t.current.delete(r),r(...e)}:r;t.current.set(r,{type:n,eventTarget:e,options:o}),e.addEventListener(n,u,o)}),[]),r=e.useCallback(((e,n,r,o)=>{let u=t.current.get(r),i=u?.options?.once?u.fn:r;e.removeEventListener(n,i,o),t.current.delete(r)}),[]),o=e.useCallback((()=>{t.current.forEach((({type:e,eventTarget:t,options:n},r)=>{t.removeEventListener(e,r,n)})),t.current.clear()}),[]);return e.useEffect((()=>()=>o()),[o]),{addGlobalListener:n,removeGlobalListener:r,removeAllGlobalListeners:o}}function v(t){let{isDisabled:n,onFocusWithin:r,onBlurWithin:i,onFocusWithinChange:d}=t,f=e.useRef({isFocusWithin:!1}),{addGlobalListener:v,removeAllGlobalListeners:E}=p(),g=e.useCallback((e=>{e.currentTarget.contains(e.target)&&f.current.isFocusWithin&&!e.currentTarget.contains(e.relatedTarget)&&(f.current.isFocusWithin=!1,E(),i&&i(e),d&&d(!1))}),[i,d,f,E]),b=u(g),m=e.useCallback((e=>{if(!e.currentTarget.contains(e.target))return;let t=l(e.target),n=a(t);if(!f.current.isFocusWithin&&n==c(e.nativeEvent)){r&&r(e),d&&d(!0),f.current.isFocusWithin=!0,b(e);let n=e.currentTarget;v(t,"focus",(e=>{if(f.current.isFocusWithin&&!s(n,e.target)){let r=new t.defaultView.FocusEvent("blur",{relatedTarget:e.target});Object.defineProperty(r,"target",{value:n}),Object.defineProperty(r,"currentTarget",{value:n}),g(o(r))}}),{capture:!0})}}),[r,d,b,v,g]);return n?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:m,onBlur:g}}}var E=function(){return function(e){return typeof window<"u"&&null!=window.navigator&&e.test(window.navigator.userAgentData?.platform||window.navigator.platform)}(/^Mac/i)},g=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),b={Tab:!0,Escape:!0};let m=new Map,y=!1,T=!1,h=null,w=new Set;function L(e,t){w.forEach((n=>n(e,t)))}function F(e){e.metaKey||!E()&&e.altKey||e.ctrlKey||["Control","Shift","Meta"].includes(e.key)||(y=!0,h="keyboard",L("keyboard",e))}function M(e){["mousedown","pointerdown"].includes(e.type)&&(y=!0,h="pointer",L("pointer",e))}function C(e){![window,document].includes(e.target)&&e.isTrusted&&(y||T)&&(y||T||(h="virtual",L("virtual",e)),y=!1,T=!1)}function H(){y=!1,T=!0}function x(e){let t=d(e),n=l(e);if("undefined"==typeof window||"undefined"==typeof document||m.has(t))return;let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(...e){y=!0,r.apply(this,e)},n.addEventListener("keydown",F,!0),n.addEventListener("click",M,!0),t.addEventListener("focus",C,!0),t.addEventListener("blur",H,!1),"undefined"!=typeof PointerEvent&&n.addEventListener("pointerdown",M,!0),m.set(t,{focus:r})}function P(t,n,r){x(),e.useEffect((()=>{let e=(e,n)=>{(function(e,t,n){if(!n||!("target"in n)||!n.target)return!1;let r=l(n.target),o=d(n.target),u=typeof window<"u"?o.HTMLInputElement:HTMLInputElement,i=typeof window<"u"?o.HTMLTextAreaElement:HTMLTextAreaElement,s=typeof window<"u"?o.HTMLElement:HTMLElement,a=typeof window<"u"?o.KeyboardEvent:KeyboardEvent,c=r.activeElement;return!((e=e||c instanceof u&&!g.has(c.type)||c instanceof i||c instanceof s&&c.isContentEditable)&&"keyboard"===t&&n instanceof a&&!b[n.key])})(!!r?.isTextInput,e,n)&&t("pointer"!==h)};return w.add(e),()=>{w.delete(e)}}),n)}let k=!1,D=0;function S(){k=!0,setTimeout((()=>{k=!1}),50)}function W(e){"touch"===e.pointerType&&S()}function N(){if("undefined"!=typeof document)return"undefined"!=typeof PointerEvent?document.addEventListener("pointerup",W):"test"===process.env.NODE_ENV&&document.addEventListener("touchend",S),D++,()=>{--D>0||("undefined"!=typeof PointerEvent?document.removeEventListener("pointerup",W):"test"===process.env.NODE_ENV&&document.removeEventListener("touchend",S))}}exports.DisabledProvider=function({value:n,children:r}){return e.createElement(t.Provider,{value:n||{}},r)},exports.addWindowFocusTracking=function(e){let t=l(e);return"loading"!==t.readyState?x(e):t.addEventListener("DOMContentLoaded",(()=>x(e))),()=>function(e){let t=d(e),n=l(e);if(!m.has(t))return;let{focus:r}=m.get(t);t.HTMLElement.prototype.focus=r,n.removeEventListener("keydown",F,!0),n.removeEventListener("click",M,!0),t.removeEventListener("focus",C,!0),t.removeEventListener("blur",H,!1),m.delete(t)}(e)},exports.createSyntheticEvent=o,exports.getInteractionModality=function(){return h},exports.useDisabled=n,exports.useDisabledFlags=function(){return e.useContext(t)||{}},exports.useDisabledProps=function(t="general",r={}){let o=n(t);return e.useMemo((()=>{let e={...r};return o&&(e={...e,..."function"==typeof r.onClick||"function"==typeof r.onChange?{disabled:o}:{},"aria-disabled":o}),e}),[o,r])},exports.useEffectEvent=r,exports.useFocus=f,exports.useFocusRing=function({within:t=!1,isTextInput:n=!1,autoFocus:r=!1}={}){let o=e.useRef({isFocused:!1,isFocusVisible:r||!0}),[u,i]=e.useState(!1),[s,a]=e.useState((()=>o.current.isFocused&&o.current.isFocusVisible)),c=e.useCallback((()=>{a(o.current.isFocused&&o.current.isFocusVisible)}),[]),l=e.useCallback((e=>{o.current.isFocused=e,i(e),c()}),[c]);P((e=>{o.current.isFocusVisible=e,c()}),[],{isTextInput:n});let{focusProps:d}=f({isDisabled:t,onFocusChange:l}),{focusWithinProps:p}=v({isDisabled:!t,onFocusWithinChange:l});return{isFocused:u,isFocusVisible:s,focusProps:t?p:d}},exports.useFocusVisibleListener=P,exports.useFocusWithin=v,exports.useGlobalListeners=p,exports.useHover=function(t){let{onHoverStart:n,onHoverChange:r,onHoverEnd:o,isDisabled:u}=t,[i,a]=e.useState(!1),c=e.useRef({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}).current;e.useEffect(N,[]);let{addGlobalListener:d,removeAllGlobalListeners:f}=p(),{hoverProps:v,triggerHoverEnd:E}=e.useMemo((()=>{let e=(e,o)=>{if(c.pointerType=o,u||"touch"===o||c.isHovered||!e.currentTarget.contains(e.target))return;c.isHovered=!0;let i=e.currentTarget;c.target=i,d(l(e.target),"pointerover",(e=>{c.isHovered&&c.target&&!s(c.target,e.target)&&t(e,e.pointerType)}),{capture:!0}),n&&n({type:"hoverstart",target:i,pointerType:o}),r&&r(!0),a(!0)},t=(e,t)=>{let n=c.target;c.pointerType="",c.target=null,"touch"!==t&&c.isHovered&&n&&(c.isHovered=!1,f(),o&&o({type:"hoverend",target:n,pointerType:t}),r&&r(!1),a(!1))},i={};return"undefined"!=typeof PointerEvent?(i.onPointerEnter=t=>{k&&"mouse"===t.pointerType||e(t,t.pointerType)},i.onPointerLeave=e=>{!u&&e.currentTarget.contains(e.target)&&t(e,e.pointerType)}):"test"===process.env.NODE_ENV&&(i.onTouchStart=()=>{c.ignoreEmulatedMouseEvents=!0},i.onMouseEnter=t=>{c.ignoreEmulatedMouseEvents||k||e(t,"mouse"),c.ignoreEmulatedMouseEvents=!1},i.onMouseLeave=e=>{!u&&e.currentTarget.contains(e.target)&&t(e,"mouse")}),{hoverProps:i,triggerHoverEnd:t}}),[n,r,o,u,c,d,f]);return e.useEffect((()=>{u&&E({currentTarget:c.target},c.pointerType)}),[u]),{hoverProps:v,isHovered:i}},exports.useSyntheticBlurEvent=u;
10
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/useDisabled.ts","../src/useEffectEvent.ts","../src/useSyntheticBlurEvent.ts","../../necto-dom/dist/index.mjs","../src/useFocus.ts","../src/useGlobalListeners.ts","../src/useFocusWithin.ts","../../necto-platform/dist/index.mjs","../../necto-react-helpers/dist/index.js","../src/useFocusVisibleListener.ts","../src/useHover.ts","../src/useFocusRing.ts"],"sourcesContent":["/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nimport { createContext, createElement, useContext, useMemo } from \"react\";\n\nimport type { HTMLAttributes, PropsWithChildren } from \"react\";\n\ntype DisabledFlags = {\n general?: boolean;\n form?: boolean;\n interactions?: boolean;\n [key: string]: boolean | undefined;\n};\n\nlet DisabledContext = createContext<DisabledFlags>({});\n\nexport function useDisabledFlags(): DisabledFlags {\n return useContext(DisabledContext) || {};\n};\n\nexport function useDisabled(\n type: keyof DisabledFlags = 'general',\n defaultFallback: boolean = false\n): boolean {\n const flags = useContext(DisabledContext) || {};\n return flags[type] ?? defaultFallback;\n}\n\nexport function useDisabledProps(type: keyof DisabledFlags = 'general', extraProps: HTMLAttributes<HTMLElement> = {}): HTMLAttributes<HTMLElement> {\n const isDisabled = useDisabled(type);\n\n return useMemo(() => {\n let props: HTMLAttributes<HTMLElement> = {\n ...extraProps\n };\n\n if (isDisabled) {\n props = {\n ...props,\n ...(typeof extraProps.onClick === 'function' || typeof extraProps.onChange === 'function' ? { disabled: isDisabled } : {}),\n 'aria-disabled': isDisabled\n };\n }\n\n return props;\n }, [isDisabled, extraProps]);\n};\n\nexport function DisabledProvider({\n value,\n children,\n}: PropsWithChildren<{ value?: DisabledFlags }>) {\n return createElement(\n DisabledContext.Provider,\n { value: value || {} },\n children\n );\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nimport { useCallback, useRef, useLayoutEffect} from \"react\";\n\nexport function useEffectEvent<T extends (...args: any[]) => any>(fn: T): T {\n const fnRef = useRef(fn);\n\n // Inline SSR-safe useLayoutEffect\n (typeof document !== \"undefined\" ? useLayoutEffect : () => {})(\n () => {\n fnRef.current = fn;\n },\n [fn]\n );\n\n return useCallback(((...args: Parameters<T>): ReturnType<T> => {\n return fnRef.current(...args);\n }) as T, []);\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useEffectEvent } from \"./useEffectEvent\";\nimport { useRef, useCallback, useLayoutEffect } from 'react';\nimport type { FocusEvent as ReactFocusEvent, SyntheticEvent } from 'react';\n\n/**\n * Creates a synthetic React event from a native DOM event.\n * This is used to maintain compatibility with React's event system.\n * \n * @param nativeEvent - The original native DOM event.\n * @returns The synthetic React event.\n */\nexport function createSyntheticEvent<E extends SyntheticEvent>(nativeEvent: Event): E {\n const event = nativeEvent as unknown as E;\n event.nativeEvent = nativeEvent;\n event.isDefaultPrevented = () => event.defaultPrevented;\n event.isPropagationStopped = () => (event as any).cancelBubble; // Deprecated but widely supported.\n event.persist = () => {}; // No-op for compatibility with React's synthetic event system.\n return event;\n}\n\n/**\n * Custom React hook to handle synthetic blur events, particularly for disabled elements.\n * \n * @param onBlur - Callback to handle the blur event.\n * @returns A callback to attach to the element's blur event.\n */\nexport function useSyntheticBlurEvent<Target extends Element = Element>(\n onBlur: (event: ReactFocusEvent<Target>) => void\n): (event: ReactFocusEvent<Target>) => void {\n const stateRef = useRef<{\n isFocused: boolean;\n observer: MutationObserver | null;\n }>({\n isFocused: false,\n observer: null,\n });\n\n // Cleanup effect to disconnect the MutationObserver when the component unmounts.\n useLayoutEffect(() => {\n const state = stateRef.current;\n return () => {\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n\n // Handler to dispatch the blur event using the provided callback.\n const dispatchBlur = useEffectEvent((e: ReactFocusEvent<Target>) => {\n onBlur?.(e);\n });\n\n // Callback to handle the blur event logic.\n return useCallback((e: ReactFocusEvent<Target>) => {\n if (\n e.target instanceof HTMLButtonElement ||\n e.target instanceof HTMLInputElement ||\n e.target instanceof HTMLTextAreaElement ||\n e.target instanceof HTMLSelectElement\n ) {\n stateRef.current.isFocused = true;\n\n const target = e.target;\n const onBlurHandler: EventListenerOrEventListenerObject = (event) => {\n stateRef.current.isFocused = false;\n\n if (target.disabled) {\n // Dispatch a synthetic React event for backward compatibility.\n const syntheticEvent = createSyntheticEvent<ReactFocusEvent<Target>>(event);\n dispatchBlur(syntheticEvent);\n }\n\n // Cleanup the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n\n // Add a one-time blur event listener.\n target.addEventListener('focusout', onBlurHandler, { once: true });\n\n // Set up a MutationObserver to monitor changes to the 'disabled' attribute.\n stateRef.current.observer = new MutationObserver(() => {\n if (stateRef.current.isFocused && target.disabled) {\n stateRef.current.observer?.disconnect();\n const relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n target.dispatchEvent(new FocusEvent('blur', { relatedTarget: relatedTargetEl }));\n target.dispatchEvent(new FocusEvent('focusout', { bubbles: true, relatedTarget: relatedTargetEl }));\n }\n });\n\n // Observe changes to the 'disabled' attribute of the target element.\n stateRef.current.observer.observe(target, { attributes: true, attributeFilter: ['disabled'] });\n }\n }, [dispatchBlur]);\n}\n","function e(e){return t(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&\"host\"in e}function t(e){return null!==e&&\"object\"==typeof e&&\"nodeType\"in e&&\"number\"==typeof e.nodeType}function n(t,n,o=!0){if(!t||!n)return!1;if(!o)return t.contains(n);let r=n;for(;r;){if(r===t)return!0;r=r instanceof Element&&\"SLOT\"===r.tagName&&r.assignedSlot?r.assignedSlot.parentNode:e(r)?r.host:r.parentNode}return!1}var o=(e=document,t=!0)=>{if(!t)return e.activeElement;let n=e.activeElement;for(;n&&\"shadowRoot\"in n&&n.shadowRoot?.activeElement;)n=n.shadowRoot.activeElement;return n};function r(e,t=!0){return t&&e.target.shadowRoot&&e.composedPath?e.composedPath()[0]:e.target}var i=e=>e?.ownerDocument??document,a=e=>{if(e&&\"window\"in e&&e.window===e)return e;return i(e).defaultView||window};export{o as getActiveElement,r as getEventTarget,i as getOwnerDocument,a as getOwnerWindow,t as isNode,n as nodeContains};","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useCallback } from 'react';\nimport { useSyntheticBlurEvent } from \"./useSyntheticBlurEvent\";\nimport { getOwnerDocument, getEventTarget, getActiveElement } from \"@necto/dom\";\n\nimport type { FocusEvent as ReactFocusEvent } from 'react';\nimport type { DOMAttributes, FocusableElement, FocusEvent } from '@necto-react/types';\n\nexport interface FocusProps<Target = FocusableElement> extends FocusEvent<Target> {\n isDisabled?: boolean;\n}\n\nexport interface FocusResult<Target = FocusableElement> {\n focusProps: DOMAttributes<Target>\n}\n\nexport function useFocus<Target extends FocusableElement = FocusableElement>(props: FocusProps<Target>): FocusResult<Target> {\n const { isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange } = props;\n\n // Unified handler for focus change\n const handleFocusChange = useCallback(\n (isFocused: boolean, e: ReactFocusEvent<Target>) => {\n if (isFocused) {\n onFocusProp?.(e);\n onFocusChange?.(true);\n } else {\n onBlurProp?.(e);\n onFocusChange?.(false);\n }\n },\n [onFocusProp, onBlurProp, onFocusChange]\n );\n\n // Blur handler\n const onBlur = useCallback(\n (e: ReactFocusEvent<Target>) => {\n if (e.target === e.currentTarget) {\n handleFocusChange(false, e);\n }\n },\n [handleFocusChange]\n );\n\n // Synthetic focus handler\n const onSyntheticFocus = useSyntheticBlurEvent<Target>(onBlur);\n\n // Focus handler\n const onFocus = useCallback(\n (e: ReactFocusEvent<Target>) => {\n const ownerDocument = getOwnerDocument(e.target);\n const activeElement = ownerDocument ? getActiveElement(ownerDocument) : getActiveElement();\n if (e.target === e.currentTarget && activeElement === getEventTarget(e.nativeEvent)) {\n handleFocusChange(true, e);\n onSyntheticFocus(e);\n }\n },\n [handleFocusChange, onSyntheticFocus]\n );\n\n // Return focus props\n return {\n focusProps: {\n ...(isDisabled ? {} : { onFocus, onBlur }),\n } as DOMAttributes<Target>,\n };\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useCallback, useEffect, useRef } from \"react\";\n\ninterface GlobalListeners {\n addGlobalListener<K extends keyof WindowEventMap | keyof DocumentEventMap>(\n el: Window | EventTarget,\n type: K,\n listener: (this: Document, ev: K extends keyof WindowEventMap ? WindowEventMap[K] : K extends keyof DocumentEventMap ? DocumentEventMap[K] : never) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addGlobalListener(\n el: EventTarget,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void;\n removeGlobalListener<K extends keyof WindowEventMap & keyof DocumentEventMap>(\n el: Window | EventTarget,\n type: K,\n listener: (this: Document, ev: K extends keyof WindowEventMap ? WindowEventMap[K] : DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeGlobalListener(\n el: EventTarget,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void;\n removeAllGlobalListeners(): void;\n}\n\n/**\n * A hook that provides utilities for managing global event listeners.\n * It allows adding, removing, and cleaning up event listeners on global targets like `window` or `document`.\n */\nfunction useGlobalListeners(): GlobalListeners {\n const globalListeners = useRef<Map<EventListenerOrEventListenerObject, { type: string; eventTarget: EventTarget; options?: boolean | AddEventListenerOptions }>>(new Map());\n\n const addGlobalListener = useCallback(\n (eventTarget: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => {\n const wrappedListener = typeof options === 'object' && options?.once\n ? (...args: any[]) => {\n globalListeners.current.delete(listener);\n (listener as EventListener)(...args as [any]);\n }\n : listener;\n\n globalListeners.current.set(listener, { type, eventTarget, options });\n eventTarget.addEventListener(type, wrappedListener, options);\n },\n []\n );\n\n const removeGlobalListener = useCallback(\n (eventTarget: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => {\n const storedListener = globalListeners.current.get(listener);\n const fn = storedListener?.options?.once ? storedListener.fn : listener;\n\n eventTarget.removeEventListener(type, fn as EventListener, options);\n globalListeners.current.delete(listener);\n },\n []\n );\n\n const removeAllGlobalListeners = useCallback(() => {\n globalListeners.current.forEach(({ type, eventTarget, options }: { type: string; eventTarget: EventTarget; options?: boolean | AddEventListenerOptions }, listener: EventListener) => {\n eventTarget.removeEventListener(type, listener as EventListener, options);\n });\n globalListeners.current.clear();\n }, []);\n\n useEffect(() => {\n return () => removeAllGlobalListeners();\n }, [removeAllGlobalListeners]);\n\n return { addGlobalListener, removeGlobalListener, removeAllGlobalListeners };\n}\n\nexport { useGlobalListeners };","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useCallback, useRef } from \"react\";\nimport { useGlobalListeners } from \"./useGlobalListeners\";\nimport { useSyntheticBlurEvent, createSyntheticEvent } from \"./useSyntheticBlurEvent\";\nimport { getActiveElement, getEventTarget, getOwnerDocument, nodeContains } from \"@necto/dom\";\n\nimport type { DOMAttributes } from \"@necto-react/types\";\nimport type { FocusEvent as ReactFocusEvent } from \"react\";\n\nexport interface FocusWithinProps {\n isDisabled?: boolean,\n onFocusWithin?: (e: ReactFocusEvent) => void,\n onBlurWithin?: (e: ReactFocusEvent) => void,\n onFocusWithinChange?: (isFocusWithin: boolean) => void\n}\n\nexport interface FocusWithinResult {\n focusWithinProps: DOMAttributes\n}\n\nexport function useFocusWithin(props: FocusWithinProps): FocusWithinResult {\n let { isDisabled, onFocusWithin, onBlurWithin, onFocusWithinChange } = props;\n let state = useRef({ isFocusWithin: false });\n let { addGlobalListener, removeAllGlobalListeners } = useGlobalListeners();\n\n let onBlur = useCallback((event: ReactFocusEvent) => {\n if (!event.currentTarget.contains(event.target)) return;\n\n if (state.current.isFocusWithin && !(event.currentTarget as Element).contains(event.relatedTarget as Element)) {\n state.current.isFocusWithin = false;\n removeAllGlobalListeners();\n\n if (onBlurWithin) onBlurWithin(event);\n if (onFocusWithinChange) onFocusWithinChange(false);\n }\n }, [onBlurWithin, onFocusWithinChange, state, removeAllGlobalListeners]);\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n let onFocus = useCallback((event: ReactFocusEvent) => {\n if (!event.currentTarget.contains(event.target)) return;\n\n const ownerDocument = getOwnerDocument(event.target);\n const activeElement = getActiveElement(ownerDocument);\n\n if (!state.current.isFocusWithin && activeElement == getEventTarget(event.nativeEvent)) {\n if (onFocusWithin) onFocusWithin(event);\n if (onFocusWithinChange) onFocusWithinChange(true);\n\n state.current.isFocusWithin = true;\n onSyntheticFocus(event);\n\n let currentTarget = event.currentTarget;\n addGlobalListener(ownerDocument, 'focus', e => {\n if (state.current.isFocusWithin && !nodeContains(currentTarget, e.target as Element)) {\n let nativeEvent = new ownerDocument.defaultView!.FocusEvent('blur', {relatedTarget: e.target});\n Object.defineProperty(nativeEvent, 'target', {value: currentTarget});\n Object.defineProperty(nativeEvent, 'currentTarget', {value: currentTarget});\n let event = createSyntheticEvent<ReactFocusEvent>(nativeEvent);\n onBlur(event);\n }\n }, {capture: true});\n }\n }, [onFocusWithin, onFocusWithinChange, onSyntheticFocus, addGlobalListener, onBlur]);\n\n if (isDisabled) {\n return {\n focusWithinProps: {\n onFocus: undefined,\n onBlur: undefined\n } as DOMAttributes\n };\n }\n\n return {\n focusWithinProps: {\n onFocus,\n onBlur\n } as unknown as DOMAttributes\n }\n}","function r(n){return typeof window<\"u\"&&window.navigator!=null?n.test(window.navigator.userAgentData?.platform||window.navigator.platform):!1}var e=function(){return r(/^Mac/i)};function o(n){return typeof window>\"u\"||window.navigator==null?!1:window.navigator.userAgentData?.brands.some(t=>n.test(t.brand))||n.test(window.navigator.userAgent)}var a=function(){return o(/Android/i)};export{a as isAndroid,e as isMac};\n//# sourceMappingURL=index.mjs.map","import{isAndroid as E}from\"@necto/platform\";function y(e){return e.mozInputSource===0&&e.isTrusted?!0:E()&&e.pointerType?e.type===\"click\"&&e.buttons===1:e.detail===0&&!e.pointerType}import{getOwnerDocument as d,getOwnerWindow as c}from\"@necto/dom\";var p=new Set([\"checkbox\",\"radio\",\"range\",\"color\",\"file\",\"image\",\"button\",\"submit\",\"reset\"]),f={Tab:!0,Escape:!0};function M(e,r,t){if(!t||!(\"target\"in t)||!t.target)return!1;let a=d(t.target),o=c(t.target),i=typeof window<\"u\"?o.HTMLInputElement:HTMLInputElement,s=typeof window<\"u\"?o.HTMLTextAreaElement:HTMLTextAreaElement,l=typeof window<\"u\"?o.HTMLElement:HTMLElement,u=typeof window<\"u\"?o.KeyboardEvent:KeyboardEvent,n=a.activeElement;return e=e||n instanceof i&&!p.has(n.type)||n instanceof s||n instanceof l&&n.isContentEditable,!(e&&r===\"keyboard\"&&t instanceof u&&!f[t.key])}export{M as isKeyboardFocusEvent,y as isVirtualClick};\n","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useEffect } from \"react\";\nimport { isMac } from \"@necto/platform\";\nimport { isKeyboardFocusEvent } from \"@necto-react/helpers\";\nimport { getOwnerWindow, getOwnerDocument } from \"@necto/dom\";\n\ntype Modality = \"keyboard\" | \"pointer\" | \"virtual\";\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent | null;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\nexport type FocusVisibleHandler = (isFocusVisible: boolean) => void;\n\nconst hasSetupGlobalListeners = new Map<Window, { focus: () => void }>();\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\nlet currentModality: Modality | null = null;\nconst changeHandlers = new Set<Handler>();\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n changeHandlers.forEach((handler) => handler(modality, e));\n}\n\nfunction isValidKey(e: KeyboardEvent) {\n return !(\n e.metaKey ||\n (!isMac() && e.altKey) ||\n e.ctrlKey ||\n [\"Control\", \"Shift\", \"Meta\"].includes(e.key)\n );\n}\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n if (isValidKey(e)) {\n hasEventBeforeFocus = true;\n currentModality = \"keyboard\";\n triggerChangeHandlers(\"keyboard\", e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n if ([\"mousedown\", \"pointerdown\"].includes(e.type)) {\n hasEventBeforeFocus = true;\n currentModality = \"pointer\";\n triggerChangeHandlers(\"pointer\", e);\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n if (\n [window, document].includes(e.target as any) ||\n !e.isTrusted ||\n (!hasEventBeforeFocus && !hasBlurredWindowRecently)\n ) {\n return;\n }\n\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = \"virtual\";\n triggerChangeHandlers(\"virtual\", e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\nfunction setupGlobalFocusEvents(element?: HTMLElement | null) {\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n\n if (\n typeof window === \"undefined\" ||\n typeof document === \"undefined\" ||\n hasSetupGlobalListeners.has(windowObject)\n ) {\n return;\n }\n\n const originalFocus = windowObject.HTMLElement.prototype.focus;\n windowObject.HTMLElement.prototype.focus = function (...args) {\n hasEventBeforeFocus = true;\n originalFocus.apply(this, args);\n };\n\n documentObject.addEventListener(\"keydown\", handleKeyboardEvent, true);\n documentObject.addEventListener(\"click\", handlePointerEvent, true);\n windowObject.addEventListener(\"focus\", handleFocusEvent, true);\n windowObject.addEventListener(\"blur\", handleWindowBlur, false);\n\n if (typeof PointerEvent !== \"undefined\") {\n documentObject.addEventListener(\"pointerdown\", handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners.set(windowObject, { focus: originalFocus });\n}\n\nfunction tearDownGlobalFocusEvents(element?: HTMLElement | null) {\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n\n if (!hasSetupGlobalListeners.has(windowObject)) return;\n\n const { focus } = hasSetupGlobalListeners.get(windowObject)!;\n windowObject.HTMLElement.prototype.focus = focus;\n\n documentObject.removeEventListener(\"keydown\", handleKeyboardEvent, true);\n documentObject.removeEventListener(\"click\", handlePointerEvent, true);\n windowObject.removeEventListener(\"focus\", handleFocusEvent, true);\n windowObject.removeEventListener(\"blur\", handleWindowBlur, false);\n\n hasSetupGlobalListeners.delete(windowObject);\n}\n\nexport function addWindowFocusTracking(element?: HTMLElement | null): () => void {\n const documentObject = getOwnerDocument(element);\n\n if (documentObject.readyState !== \"loading\") {\n setupGlobalFocusEvents(element);\n } else {\n documentObject.addEventListener(\"DOMContentLoaded\", () =>\n setupGlobalFocusEvents(element)\n );\n }\n\n return () => tearDownGlobalFocusEvents(element);\n}\n\nexport function getInteractionModality(): Modality | null {\n return currentModality;\n}\n\nexport function useFocusVisibleListener(\n fn: FocusVisibleHandler,\n deps: ReadonlyArray<any>,\n opts?: { isTextInput?: boolean }\n): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n const handler: Handler = (modality, e) => {\n if (!isKeyboardFocusEvent(!!opts?.isTextInput, modality, e)) return;\n fn(currentModality !== \"pointer\");\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, deps);\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useGlobalListeners } from './useGlobalListeners';\nimport { getOwnerDocument, nodeContains } from \"@necto/dom\";\nimport { useState, useMemo, useRef, useEffect, useCallback } from 'react';\n\nimport type { DOMAttributes, HoverEvent } from '@necto-react/types';\n\nexport interface HoverProps extends HoverEvent {\n isDisabled?: boolean;\n onHoverStart?: (event: HoverEvent) => void;\n onHoverEnd?: (event: HoverEvent) => void;\n onHoverChange?: (isHovered: boolean) => void;\n}\n\nexport interface HoverResult {\n hoverProps: DOMAttributes;\n isHovered: boolean;\n}\n\n// See https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/interactions/src/useHover.ts#L33C1-L38C1\n// as well as https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\n\nexport function setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n\n setTimeout(() => {\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nexport function useHover(props: HoverProps): HoverResult {\n const { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;\n\n const [isHovered, setHovered] = useState(false);\n const state = useRef<{\n isHovered: boolean;\n ignoreEmulatedMouseEvents: boolean;\n pointerType: string;\n target: EventTarget | null;\n }>({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null,\n });\n\n const { addGlobalListener, removeAllGlobalListeners } = useGlobalListeners();\n\n const triggerHoverStart = useCallback(\n (event: any, pointerType: string) => {\n const currentState = state.current;\n currentState.pointerType = pointerType;\n\n if (\n isDisabled ||\n pointerType === 'touch' ||\n currentState.isHovered ||\n !event.currentTarget.contains(event.target)\n ) {\n return;\n }\n\n currentState.isHovered = true;\n currentState.target = event.currentTarget;\n\n addGlobalListener(\n getOwnerDocument(event.target),\n 'pointerover',\n (e: any) => {\n if (\n currentState.isHovered &&\n currentState.target &&\n !nodeContains(currentState.target, e.target as Element)\n ) {\n triggerHoverEnd(e, e.pointerType);\n }\n },\n { capture: true }\n );\n\n onHoverStart?.({\n type: 'hoverstart',\n target: event.currentTarget,\n pointerType,\n });\n\n onHoverChange?.(true);\n setHovered(true);\n },\n [isDisabled, onHoverStart, onHoverChange, addGlobalListener]\n );\n\n const triggerHoverEnd = useCallback(\n (event: any, pointerType: string) => {\n const currentState = state.current;\n\n if (pointerType === 'touch' || !currentState.isHovered || !currentState.target) {\n return;\n }\n\n currentState.isHovered = false;\n currentState.pointerType = '';\n currentState.target = null;\n\n removeAllGlobalListeners();\n\n onHoverEnd?.({\n type: 'hoverend',\n target: event.currentTarget,\n pointerType,\n });\n\n onHoverChange?.(false);\n setHovered(false);\n },\n [onHoverEnd, onHoverChange, removeAllGlobalListeners]\n );\n\n const hoverProps = useMemo(() => {\n const props: DOMAttributes = {\n onMouseLeave: () => {},\n onMouseEnter: () => {},\n onTouchStart: () => {},\n onPointerLeave: () => {},\n onPointerEnter: () => {},\n };\n\n if (typeof PointerEvent !== 'undefined') {\n props.onPointerEnter = (e: any) => {\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') return;\n triggerHoverStart(e, e.pointerType);\n };\n props.onPointerLeave = (e: any) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, e.pointerType);\n }\n };\n } else {\n props.onTouchStart = () => {\n state.current.ignoreEmulatedMouseEvents = true;\n };\n props.onMouseEnter = (e: any) => {\n if (\n !state.current.ignoreEmulatedMouseEvents &&\n !globalIgnoreEmulatedMouseEvents\n ) {\n triggerHoverStart(e, 'mouse');\n }\n state.current.ignoreEmulatedMouseEvents = false;\n };\n props.onMouseLeave = (e: any) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, 'mouse');\n }\n };\n }\n\n return props;\n }, [isDisabled, triggerHoverStart, triggerHoverEnd]);\n\n useEffect(() => {\n if (isDisabled && state.current.isHovered) {\n triggerHoverEnd({ currentTarget: state.current.target }, state.current.pointerType);\n }\n }, [isDisabled, triggerHoverEnd]);\n\n return { hoverProps, isHovered };\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useFocus } from './useFocus';\nimport { useFocusWithin } from './useFocusWithin';\nimport { useCallback, useRef, useState } from 'react';\nimport { useFocusVisibleListener } from \"./useFocusVisibleListener\";\n\nimport type { DOMAttributes } from '@necto-react/types';\n\nexport type Modality = 'keyboard' | 'pointer' | 'virtual';\nlet currentModality: null | Modality = null;\n\nexport interface FocusRingProps {\n within?: boolean;\n isTextInput?: boolean;\n autoFocus?: boolean;\n}\n\nexport interface FocusRingResult {\n isFocused: boolean;\n isFocusVisible: boolean;\n focusProps: DOMAttributes;\n}\n\nexport function useFocusRing({\n within = false,\n isTextInput = false,\n autoFocus = false,\n}: FocusRingProps = {}): FocusRingResult {\n const state = useRef({\n isFocused: false,\n isFocusVisible: autoFocus || currentModality !== 'pointer',\n });\n\n const [isFocused, setFocused] = useState(false);\n const [isFocusVisible, setFocusVisible] = useState(() => state.current.isFocused && state.current.isFocusVisible);\n\n const updateFocusVisibleState = useCallback(() => {\n setFocusVisible(state.current.isFocused && state.current.isFocusVisible);\n }, []);\n\n const handleFocusChange = useCallback(\n (focused: boolean) => {\n state.current.isFocused = focused;\n setFocused(focused);\n updateFocusVisibleState();\n },\n [updateFocusVisibleState]\n );\n\n useFocusVisibleListener(\n (focusVisible) => {\n state.current.isFocusVisible = focusVisible;\n updateFocusVisibleState();\n },\n [],\n { isTextInput }\n );\n\n const { focusProps } = useFocus({\n isDisabled: within,\n onFocusChange: handleFocusChange,\n });\n\n const { focusWithinProps } = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: handleFocusChange,\n });\n\n return {\n isFocused,\n isFocusVisible,\n focusProps: within ? focusWithinProps : focusProps,\n };\n}"],"names":["DisabledContext","createContext","useDisabled","type","defaultFallback","useContext","useEffectEvent","fn","fnRef","useRef","document","useLayoutEffect","current","useCallback","args","createSyntheticEvent","nativeEvent","event","isDefaultPrevented","defaultPrevented","isPropagationStopped","cancelBubble","persist","useSyntheticBlurEvent","onBlur","stateRef","isFocused","observer","state","disconnect","dispatchBlur","e","target","HTMLButtonElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","addEventListener","disabled","once","MutationObserver","relatedTargetEl","activeElement","dispatchEvent","FocusEvent","relatedTarget","bubbles","observe","attributes","attributeFilter","nodeType","t","Node","DOCUMENT_FRAGMENT_NODE","n","o","contains","r","Element","tagName","assignedSlot","parentNode","host","shadowRoot","composedPath","i","ownerDocument","a","window","defaultView","useFocus","props","isDisabled","onFocus","onFocusProp","onBlurProp","onFocusChange","handleFocusChange","currentTarget","onSyntheticFocus","getOwnerDocument","getActiveElement","getEventTarget","focusProps","useGlobalListeners","globalListeners","Map","addGlobalListener","eventTarget","listener","options","wrappedListener","delete","set","removeGlobalListener","storedListener","get","removeEventListener","removeAllGlobalListeners","forEach","clear","useEffect","useFocusWithin","onFocusWithin","onBlurWithin","onFocusWithinChange","isFocusWithin","nodeContains","Object","defineProperty","value","capture","focusWithinProps","undefined","isMac","re","navigator","test","userAgentData","platform","testPlatform","p","Set","f","Tab","Escape","hasSetupGlobalListeners","hasEventBeforeFocus","hasBlurredWindowRecently","currentModality","changeHandlers","triggerChangeHandlers","modality","handler","handleKeyboardEvent","metaKey","altKey","ctrlKey","includes","key","handlePointerEvent","handleFocusEvent","isTrusted","handleWindowBlur","setupGlobalFocusEvents","element","windowObject","getOwnerWindow","documentObject","has","originalFocus","HTMLElement","prototype","focus","apply","this","PointerEvent","useFocusVisibleListener","deps","opts","d","c","s","l","u","KeyboardEvent","isContentEditable","isKeyboardFocusEvent","isTextInput","add","globalIgnoreEmulatedMouseEvents","children","createElement","Provider","readyState","tearDownGlobalFocusEvents","setTimeout","extraProps","useMemo","onClick","onChange","within","autoFocus","isFocusVisible","setFocused","useState","setFocusVisible","updateFocusVisibleState","focused","focusVisible","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","ignoreEmulatedMouseEvents","pointerType","triggerHoverStart","currentState","triggerHoverEnd","hoverProps","onMouseLeave","onMouseEnter","onTouchStart","onPointerLeave","onPointerEnter"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/useDisabled.ts","../src/useEffectEvent.ts","../src/useSyntheticBlurEvent.ts","../../necto-dom/dist/index.mjs","../src/useFocus.ts","../src/useGlobalListeners.ts","../src/useFocusWithin.ts","../../necto-platform/dist/index.mjs","../../necto-react-helpers/dist/index.js","../src/useFocusVisibleListener.ts","../src/useHover.ts","../src/useFocusRing.ts"],"sourcesContent":["/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nimport { createContext, createElement, useContext, useMemo } from \"react\";\n\nimport type { HTMLAttributes, PropsWithChildren } from \"react\";\n\ntype DisabledFlags = {\n general?: boolean;\n form?: boolean;\n interactions?: boolean;\n [key: string]: boolean | undefined;\n};\n\nlet DisabledContext = createContext<DisabledFlags>({});\n\nexport function useDisabledFlags(): DisabledFlags {\n return useContext(DisabledContext) || {};\n};\n\nexport function useDisabled(\n type: keyof DisabledFlags = 'general',\n defaultFallback: boolean = false\n): boolean {\n const flags = useContext(DisabledContext) || {};\n return flags[type] ?? defaultFallback;\n}\n\nexport function useDisabledProps(type: keyof DisabledFlags = 'general', extraProps: HTMLAttributes<HTMLElement> = {}): HTMLAttributes<HTMLElement> {\n const isDisabled = useDisabled(type);\n\n return useMemo(() => {\n let props: HTMLAttributes<HTMLElement> = {\n ...extraProps\n };\n\n if (isDisabled) {\n props = {\n ...props,\n ...(typeof extraProps.onClick === 'function' || typeof extraProps.onChange === 'function' ? { disabled: isDisabled } : {}),\n 'aria-disabled': isDisabled\n };\n }\n\n return props;\n }, [isDisabled, extraProps]);\n};\n\nexport function DisabledProvider({\n value,\n children,\n}: PropsWithChildren<{ value?: DisabledFlags }>) {\n return createElement(\n DisabledContext.Provider,\n { value: value || {} },\n children\n );\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nimport { useCallback, useRef, useLayoutEffect} from \"react\";\n\nexport function useEffectEvent<T extends (...args: any[]) => any>(fn: T): T {\n const fnRef = useRef(fn);\n\n // Inline SSR-safe useLayoutEffect\n (typeof document !== \"undefined\" ? useLayoutEffect : () => {})(\n () => {\n fnRef.current = fn;\n },\n [fn]\n );\n\n return useCallback(((...args: Parameters<T>): ReturnType<T> => {\n return fnRef.current(...args);\n }) as T, []);\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useEffectEvent } from \"./useEffectEvent\";\nimport { useRef, useCallback, useLayoutEffect } from 'react';\nimport type { FocusEvent as ReactFocusEvent, SyntheticEvent } from 'react';\n\n/**\n * Creates a synthetic React event from a native DOM event.\n * This is used to maintain compatibility with React's event system.\n * \n * @param nativeEvent - The original native DOM event.\n * @returns The synthetic React event.\n */\nexport function createSyntheticEvent<E extends SyntheticEvent>(nativeEvent: Event): E {\n const event = nativeEvent as unknown as E;\n event.nativeEvent = nativeEvent;\n event.isDefaultPrevented = () => event.defaultPrevented;\n event.isPropagationStopped = () => (event as any).cancelBubble; // Deprecated but widely supported.\n event.persist = () => {}; // No-op for compatibility with React's synthetic event system.\n return event;\n}\n\n/**\n * Custom React hook to handle synthetic blur events, particularly for disabled elements.\n * \n * @param onBlur - Callback to handle the blur event.\n * @returns A callback to attach to the element's blur event.\n */\nexport function useSyntheticBlurEvent<Target extends Element = Element>(\n onBlur: (event: ReactFocusEvent<Target>) => void\n): (event: ReactFocusEvent<Target>) => void {\n const stateRef = useRef<{\n isFocused: boolean;\n observer: MutationObserver | null;\n }>({\n isFocused: false,\n observer: null,\n });\n\n // Cleanup effect to disconnect the MutationObserver when the component unmounts.\n useLayoutEffect(() => {\n const state = stateRef.current;\n return () => {\n if (state.observer) {\n state.observer.disconnect();\n state.observer = null;\n }\n };\n }, []);\n\n // Handler to dispatch the blur event using the provided callback.\n const dispatchBlur = useEffectEvent((e: ReactFocusEvent<Target>) => {\n onBlur?.(e);\n });\n\n // Callback to handle the blur event logic.\n return useCallback((e: ReactFocusEvent<Target>) => {\n if (\n e.target instanceof HTMLButtonElement ||\n e.target instanceof HTMLInputElement ||\n e.target instanceof HTMLTextAreaElement ||\n e.target instanceof HTMLSelectElement\n ) {\n stateRef.current.isFocused = true;\n\n const target = e.target;\n const onBlurHandler: EventListenerOrEventListenerObject = (event) => {\n stateRef.current.isFocused = false;\n\n if (target.disabled) {\n // Dispatch a synthetic React event for backward compatibility.\n const syntheticEvent = createSyntheticEvent<ReactFocusEvent<Target>>(event);\n dispatchBlur(syntheticEvent);\n }\n\n // Cleanup the MutationObserver once the target is blurred.\n if (stateRef.current.observer) {\n stateRef.current.observer.disconnect();\n stateRef.current.observer = null;\n }\n };\n\n // Add a one-time blur event listener.\n target.addEventListener('focusout', onBlurHandler, { once: true });\n\n // Set up a MutationObserver to monitor changes to the 'disabled' attribute.\n stateRef.current.observer = new MutationObserver(() => {\n if (stateRef.current.isFocused && target.disabled) {\n stateRef.current.observer?.disconnect();\n const relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n target.dispatchEvent(new FocusEvent('blur', { relatedTarget: relatedTargetEl }));\n target.dispatchEvent(new FocusEvent('focusout', { bubbles: true, relatedTarget: relatedTargetEl }));\n }\n });\n\n // Observe changes to the 'disabled' attribute of the target element.\n stateRef.current.observer.observe(target, { attributes: true, attributeFilter: ['disabled'] });\n }\n }, [dispatchBlur]);\n}\n","function e(e){return t(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&\"host\"in e}function t(e){return null!==e&&\"object\"==typeof e&&\"nodeType\"in e&&\"number\"==typeof e.nodeType}function n(t,n,o=!0){if(!t||!n)return!1;if(!o)return t.contains(n);let r=n;for(;r;){if(r===t)return!0;r=r instanceof Element&&\"SLOT\"===r.tagName&&r.assignedSlot?r.assignedSlot.parentNode:e(r)?r.host:r.parentNode}return!1}var o=(e=document,t=!0)=>{if(!t)return e.activeElement;let n=e.activeElement;for(;n&&\"shadowRoot\"in n&&n.shadowRoot?.activeElement;)n=n.shadowRoot.activeElement;return n};function r(e,t=!0){return t&&e.target.shadowRoot&&e.composedPath?e.composedPath()[0]:e.target}var i=e=>e?.ownerDocument??document,a=e=>{if(e&&\"window\"in e&&e.window===e)return e;return i(e).defaultView||window};export{o as getActiveElement,r as getEventTarget,i as getOwnerDocument,a as getOwnerWindow,t as isNode,n as nodeContains};","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useCallback } from 'react';\nimport { useSyntheticBlurEvent } from \"./useSyntheticBlurEvent\";\nimport { getOwnerDocument, getEventTarget, getActiveElement } from \"@necto/dom\";\n\nimport type { FocusEvent as ReactFocusEvent } from 'react';\nimport type { DOMAttributes, FocusableElement, FocusEvent } from '@necto-react/types';\n\nexport interface FocusProps<Target = FocusableElement> extends FocusEvent<Target> {\n isDisabled?: boolean;\n}\n\nexport interface FocusResult<Target = FocusableElement> {\n focusProps: DOMAttributes<Target>\n}\n\nexport function useFocus<Target extends FocusableElement = FocusableElement>(props: FocusProps<Target>): FocusResult<Target> {\n const { isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange } = props;\n\n // Unified handler for focus change\n const handleFocusChange = useCallback(\n (isFocused: boolean, e: ReactFocusEvent<Target>) => {\n if (isFocused) {\n onFocusProp?.(e);\n onFocusChange?.(true);\n } else {\n onBlurProp?.(e);\n onFocusChange?.(false);\n }\n },\n [onFocusProp, onBlurProp, onFocusChange]\n );\n\n // Blur handler\n const onBlur = useCallback(\n (e: ReactFocusEvent<Target>) => {\n if (e.target === e.currentTarget) {\n handleFocusChange(false, e);\n }\n },\n [handleFocusChange]\n );\n\n // Synthetic focus handler\n const onSyntheticFocus = useSyntheticBlurEvent<Target>(onBlur);\n\n // Focus handler\n const onFocus = useCallback(\n (e: ReactFocusEvent<Target>) => {\n const ownerDocument = getOwnerDocument(e.target);\n const activeElement = ownerDocument ? getActiveElement(ownerDocument) : getActiveElement();\n if (e.target === e.currentTarget && activeElement === getEventTarget(e.nativeEvent)) {\n handleFocusChange(true, e);\n onSyntheticFocus(e);\n }\n },\n [handleFocusChange, onSyntheticFocus]\n );\n\n // Return focus props\n return {\n focusProps: {\n ...(isDisabled ? {} : { onFocus, onBlur }),\n } as DOMAttributes<Target>,\n };\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useCallback, useEffect, useRef } from \"react\";\n\ninterface GlobalListeners {\n addGlobalListener<K extends keyof WindowEventMap | keyof DocumentEventMap>(\n el: Window | EventTarget,\n type: K,\n listener: (this: Document, ev: K extends keyof WindowEventMap ? WindowEventMap[K] : K extends keyof DocumentEventMap ? DocumentEventMap[K] : never) => any,\n options?: boolean | AddEventListenerOptions\n ): void;\n addGlobalListener(\n el: EventTarget,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void;\n removeGlobalListener<K extends keyof WindowEventMap & keyof DocumentEventMap>(\n el: Window | EventTarget,\n type: K,\n listener: (this: Document, ev: K extends keyof WindowEventMap ? WindowEventMap[K] : DocumentEventMap[K]) => any,\n options?: boolean | EventListenerOptions\n ): void;\n removeGlobalListener(\n el: EventTarget,\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void;\n removeAllGlobalListeners(): void;\n}\n\n/**\n * A hook that provides utilities for managing global event listeners.\n * It allows adding, removing, and cleaning up event listeners on global targets like `window` or `document`.\n */\nfunction useGlobalListeners(): GlobalListeners {\n const globalListeners = useRef<Map<EventListenerOrEventListenerObject, { type: string; eventTarget: EventTarget; options?: boolean | AddEventListenerOptions }>>(new Map());\n\n const addGlobalListener = useCallback(\n (eventTarget: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => {\n const wrappedListener = typeof options === 'object' && options?.once\n ? (...args: any[]) => {\n globalListeners.current.delete(listener);\n (listener as EventListener)(...args as [any]);\n }\n : listener;\n\n globalListeners.current.set(listener, { type, eventTarget, options });\n eventTarget.addEventListener(type, wrappedListener, options);\n },\n []\n );\n\n const removeGlobalListener = useCallback(\n (eventTarget: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => {\n const storedListener = globalListeners.current.get(listener);\n const fn = storedListener?.options?.once ? storedListener.fn : listener;\n\n eventTarget.removeEventListener(type, fn as EventListener, options);\n globalListeners.current.delete(listener);\n },\n []\n );\n\n const removeAllGlobalListeners = useCallback(() => {\n globalListeners.current.forEach(({ type, eventTarget, options }: { type: string; eventTarget: EventTarget; options?: boolean | AddEventListenerOptions }, listener: EventListener) => {\n eventTarget.removeEventListener(type, listener as EventListener, options);\n });\n globalListeners.current.clear();\n }, []);\n\n useEffect(() => {\n return () => removeAllGlobalListeners();\n }, [removeAllGlobalListeners]);\n\n return { addGlobalListener, removeGlobalListener, removeAllGlobalListeners };\n}\n\nexport { useGlobalListeners };","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useCallback, useRef } from \"react\";\nimport { useGlobalListeners } from \"./useGlobalListeners\";\nimport { useSyntheticBlurEvent, createSyntheticEvent } from \"./useSyntheticBlurEvent\";\nimport { getActiveElement, getEventTarget, getOwnerDocument, nodeContains } from \"@necto/dom\";\n\nimport type { DOMAttributes } from \"@necto-react/types\";\nimport type { FocusEvent as ReactFocusEvent } from \"react\";\n\nexport interface FocusWithinProps {\n isDisabled?: boolean,\n onFocusWithin?: (e: ReactFocusEvent) => void,\n onBlurWithin?: (e: ReactFocusEvent) => void,\n onFocusWithinChange?: (isFocusWithin: boolean) => void\n}\n\nexport interface FocusWithinResult {\n focusWithinProps: DOMAttributes\n}\n\nexport function useFocusWithin(props: FocusWithinProps): FocusWithinResult {\n let { isDisabled, onFocusWithin, onBlurWithin, onFocusWithinChange } = props;\n let state = useRef({ isFocusWithin: false });\n let { addGlobalListener, removeAllGlobalListeners } = useGlobalListeners();\n\n let onBlur = useCallback((event: ReactFocusEvent) => {\n if (!event.currentTarget.contains(event.target)) return;\n\n if (state.current.isFocusWithin && !(event.currentTarget as Element).contains(event.relatedTarget as Element)) {\n state.current.isFocusWithin = false;\n removeAllGlobalListeners();\n\n if (onBlurWithin) onBlurWithin(event);\n if (onFocusWithinChange) onFocusWithinChange(false);\n }\n }, [onBlurWithin, onFocusWithinChange, state, removeAllGlobalListeners]);\n\n let onSyntheticFocus = useSyntheticBlurEvent(onBlur);\n let onFocus = useCallback((event: ReactFocusEvent) => {\n if (!event.currentTarget.contains(event.target)) return;\n\n const ownerDocument = getOwnerDocument(event.target);\n const activeElement = getActiveElement(ownerDocument);\n\n if (!state.current.isFocusWithin && activeElement == getEventTarget(event.nativeEvent)) {\n if (onFocusWithin) onFocusWithin(event);\n if (onFocusWithinChange) onFocusWithinChange(true);\n\n state.current.isFocusWithin = true;\n onSyntheticFocus(event);\n\n let currentTarget = event.currentTarget;\n addGlobalListener(ownerDocument, 'focus', e => {\n if (state.current.isFocusWithin && !nodeContains(currentTarget, e.target as Element)) {\n let nativeEvent = new ownerDocument.defaultView!.FocusEvent('blur', {relatedTarget: e.target});\n Object.defineProperty(nativeEvent, 'target', {value: currentTarget});\n Object.defineProperty(nativeEvent, 'currentTarget', {value: currentTarget});\n let event = createSyntheticEvent<ReactFocusEvent>(nativeEvent);\n onBlur(event);\n }\n }, {capture: true});\n }\n }, [onFocusWithin, onFocusWithinChange, onSyntheticFocus, addGlobalListener, onBlur]);\n\n if (isDisabled) {\n return {\n focusWithinProps: {\n onFocus: undefined,\n onBlur: undefined\n } as DOMAttributes\n };\n }\n\n return {\n focusWithinProps: {\n onFocus,\n onBlur\n } as unknown as DOMAttributes\n }\n}","function r(n){return typeof window<\"u\"&&window.navigator!=null?n.test(window.navigator.userAgentData?.platform||window.navigator.platform):!1}var e=function(){return r(/^Mac/i)};function o(n){return typeof window>\"u\"||window.navigator==null?!1:window.navigator.userAgentData?.brands.some(t=>n.test(t.brand))||n.test(window.navigator.userAgent)}var a=function(){return o(/Android/i)};export{a as isAndroid,e as isMac};\n//# sourceMappingURL=index.mjs.map","import{isAndroid as E}from\"@necto/platform\";function y(e){return e.mozInputSource===0&&e.isTrusted?!0:E()&&e.pointerType?e.type===\"click\"&&e.buttons===1:e.detail===0&&!e.pointerType}import{getOwnerDocument as d,getOwnerWindow as c}from\"@necto/dom\";var p=new Set([\"checkbox\",\"radio\",\"range\",\"color\",\"file\",\"image\",\"button\",\"submit\",\"reset\"]),f={Tab:!0,Escape:!0};function M(e,r,t){if(!t||!(\"target\"in t)||!t.target)return!1;let a=d(t.target),o=c(t.target),i=typeof window<\"u\"?o.HTMLInputElement:HTMLInputElement,s=typeof window<\"u\"?o.HTMLTextAreaElement:HTMLTextAreaElement,l=typeof window<\"u\"?o.HTMLElement:HTMLElement,u=typeof window<\"u\"?o.KeyboardEvent:KeyboardEvent,n=a.activeElement;return e=e||n instanceof i&&!p.has(n.type)||n instanceof s||n instanceof l&&n.isContentEditable,!(e&&r===\"keyboard\"&&t instanceof u&&!f[t.key])}export{M as isKeyboardFocusEvent,y as isVirtualClick};\n","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useEffect } from \"react\";\nimport { isMac } from \"@necto/platform\";\nimport { isKeyboardFocusEvent } from \"@necto-react/helpers\";\nimport { getOwnerWindow, getOwnerDocument } from \"@necto/dom\";\n\ntype Modality = \"keyboard\" | \"pointer\" | \"virtual\";\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent | null;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\nexport type FocusVisibleHandler = (isFocusVisible: boolean) => void;\n\nconst hasSetupGlobalListeners = new Map<Window, { focus: () => void }>();\nlet hasEventBeforeFocus = false;\nlet hasBlurredWindowRecently = false;\nlet currentModality: Modality | null = null;\nconst changeHandlers = new Set<Handler>();\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n changeHandlers.forEach((handler) => handler(modality, e));\n}\n\nfunction isValidKey(e: KeyboardEvent) {\n return !(\n e.metaKey ||\n (!isMac() && e.altKey) ||\n e.ctrlKey ||\n [\"Control\", \"Shift\", \"Meta\"].includes(e.key)\n );\n}\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n if (isValidKey(e)) {\n hasEventBeforeFocus = true;\n currentModality = \"keyboard\";\n triggerChangeHandlers(\"keyboard\", e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n if ([\"mousedown\", \"pointerdown\"].includes(e.type)) {\n hasEventBeforeFocus = true;\n currentModality = \"pointer\";\n triggerChangeHandlers(\"pointer\", e);\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n if (\n [window, document].includes(e.target as any) ||\n !e.isTrusted ||\n (!hasEventBeforeFocus && !hasBlurredWindowRecently)\n ) {\n return;\n }\n\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = \"virtual\";\n triggerChangeHandlers(\"virtual\", e);\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\nfunction setupGlobalFocusEvents(element?: HTMLElement | null) {\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n\n if (\n typeof window === \"undefined\" ||\n typeof document === \"undefined\" ||\n hasSetupGlobalListeners.has(windowObject)\n ) {\n return;\n }\n\n const originalFocus = windowObject.HTMLElement.prototype.focus;\n windowObject.HTMLElement.prototype.focus = function (...args) {\n hasEventBeforeFocus = true;\n originalFocus.apply(this, args);\n };\n\n documentObject.addEventListener(\"keydown\", handleKeyboardEvent, true);\n documentObject.addEventListener(\"click\", handlePointerEvent, true);\n windowObject.addEventListener(\"focus\", handleFocusEvent, true);\n windowObject.addEventListener(\"blur\", handleWindowBlur, false);\n\n if (typeof PointerEvent !== \"undefined\") {\n documentObject.addEventListener(\"pointerdown\", handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners.set(windowObject, { focus: originalFocus });\n}\n\nfunction tearDownGlobalFocusEvents(element?: HTMLElement | null) {\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n\n if (!hasSetupGlobalListeners.has(windowObject)) return;\n\n const { focus } = hasSetupGlobalListeners.get(windowObject)!;\n windowObject.HTMLElement.prototype.focus = focus;\n\n documentObject.removeEventListener(\"keydown\", handleKeyboardEvent, true);\n documentObject.removeEventListener(\"click\", handlePointerEvent, true);\n windowObject.removeEventListener(\"focus\", handleFocusEvent, true);\n windowObject.removeEventListener(\"blur\", handleWindowBlur, false);\n\n hasSetupGlobalListeners.delete(windowObject);\n}\n\nexport function addWindowFocusTracking(element?: HTMLElement | null): () => void {\n const documentObject = getOwnerDocument(element);\n\n if (documentObject.readyState !== \"loading\") {\n setupGlobalFocusEvents(element);\n } else {\n documentObject.addEventListener(\"DOMContentLoaded\", () =>\n setupGlobalFocusEvents(element)\n );\n }\n\n return () => tearDownGlobalFocusEvents(element);\n}\n\nexport function getInteractionModality(): Modality | null {\n return currentModality;\n}\n\nexport function useFocusVisibleListener(\n fn: FocusVisibleHandler,\n deps: ReadonlyArray<any>,\n opts?: { isTextInput?: boolean }\n): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n const handler: Handler = (modality, e) => {\n if (!isKeyboardFocusEvent(!!opts?.isTextInput, modality, e)) return;\n fn(currentModality !== \"pointer\");\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, deps);\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useGlobalListeners } from './useGlobalListeners';\nimport { getOwnerDocument, nodeContains } from \"@necto/dom\";\nimport { useState, useMemo, useRef, useEffect, useCallback } from 'react';\n\nimport type { DOMAttributes, HoverEvent } from '@necto-react/types';\n\nexport interface HoverProps extends HoverEvent {\n /** Whether the hover events should be disabled. */\n isDisabled?: boolean\n}\n\nexport interface HoverResult {\n /** Props to spread on the target element. */\n hoverProps: DOMAttributes,\n isHovered: boolean\n}\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet globalIgnoreEmulatedMouseEvents = false;\nlet hoverCount = 0;\n\nfunction setGlobalIgnoreEmulatedMouseEvents() {\n globalIgnoreEmulatedMouseEvents = true;\n\n // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n // the distant future because a user previously touched the element.\n setTimeout(() => {\n globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nfunction handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') {\n setGlobalIgnoreEmulatedMouseEvents();\n }\n}\n\nfunction setupGlobalTouchEvents() {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerup', handleGlobalPointerEvent);\n } else if (process.env.NODE_ENV === 'test') {\n document.addEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n\n hoverCount++;\n return () => {\n hoverCount--;\n if (hoverCount > 0) {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.removeEventListener('pointerup', handleGlobalPointerEvent);\n } else if (process.env.NODE_ENV === 'test') {\n document.removeEventListener('touchend', setGlobalIgnoreEmulatedMouseEvents);\n }\n };\n}\n\n/**\n * Handles pointer hover interactions for an element. Normalizes behavior\n * across browsers and platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useHover(props: HoverProps): HoverResult {\n let {\n onHoverStart,\n onHoverChange,\n onHoverEnd,\n isDisabled\n } = props;\n\n let [isHovered, setHovered] = useState(false);\n let state = useRef({\n isHovered: false,\n ignoreEmulatedMouseEvents: false,\n pointerType: '',\n target: null\n }).current;\n\n useEffect(setupGlobalTouchEvents, []);\n let {addGlobalListener, removeAllGlobalListeners} = useGlobalListeners();\n\n let {hoverProps, triggerHoverEnd} = useMemo(() => {\n let triggerHoverStart = (event, pointerType) => {\n state.pointerType = pointerType;\n if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) {\n return;\n }\n\n state.isHovered = true;\n let target = event.currentTarget;\n state.target = target;\n\n // When an element that is hovered over is removed, no pointerleave event is fired by the browser,\n // even though the originally hovered target may have shrunk in size so it is no longer hovered.\n // However, a pointerover event will be fired on the new target the mouse is over.\n // In Chrome this happens immediately. In Safari and Firefox, it happens upon moving the mouse one pixel.\n addGlobalListener(getOwnerDocument(event.target), 'pointerover', e => {\n if (state.isHovered && state.target && !nodeContains(state.target, e.target as Element)) {\n triggerHoverEnd(e, e.pointerType);\n }\n }, {capture: true});\n\n if (onHoverStart) {\n onHoverStart({\n type: 'hoverstart',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(true);\n }\n\n setHovered(true);\n };\n\n let triggerHoverEnd = (event, pointerType) => {\n let target = state.target;\n state.pointerType = '';\n state.target = null;\n\n if (pointerType === 'touch' || !state.isHovered || !target) {\n return;\n }\n\n state.isHovered = false;\n removeAllGlobalListeners();\n\n if (onHoverEnd) {\n onHoverEnd({\n type: 'hoverend',\n target,\n pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(false);\n }\n\n setHovered(false);\n };\n\n let hoverProps: DOMAttributes = {};\n\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = (e) => {\n if (globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {\n return;\n }\n\n triggerHoverStart(e, e.pointerType);\n };\n\n hoverProps.onPointerLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, e.pointerType);\n }\n };\n } else if (process.env.NODE_ENV === 'test') {\n hoverProps.onTouchStart = () => {\n state.ignoreEmulatedMouseEvents = true;\n };\n\n hoverProps.onMouseEnter = (e) => {\n if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) {\n triggerHoverStart(e, 'mouse');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n };\n\n hoverProps.onMouseLeave = (e) => {\n if (!isDisabled && e.currentTarget.contains(e.target as Element)) {\n triggerHoverEnd(e, 'mouse');\n }\n };\n }\n return {hoverProps, triggerHoverEnd};\n }, [onHoverStart, onHoverChange, onHoverEnd, isDisabled, state, addGlobalListener, removeAllGlobalListeners]);\n\n useEffect(() => {\n // Call the triggerHoverEnd as soon as isDisabled changes to true\n // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n if (isDisabled) {\n triggerHoverEnd({currentTarget: state.target}, state.pointerType);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDisabled]);\n\n return {\n hoverProps,\n isHovered\n };\n}","/**\n * Copyright (c) Corinvo, LLC. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * Portions of this code are based on the React Aria Spectrum library by Adobe,\n * licensed under the Apache License, Version 2.0.\n * See: https://github.com/adobe/react-spectrum\n *\n * Modifications have been made to adapt the code for use in this project.\n */\n\n'use strict';\n\nimport { useFocus } from './useFocus';\nimport { useFocusWithin } from './useFocusWithin';\nimport { useCallback, useRef, useState } from 'react';\nimport { useFocusVisibleListener } from \"./useFocusVisibleListener\";\n\nimport type { DOMAttributes } from '@necto-react/types';\n\nexport type Modality = 'keyboard' | 'pointer' | 'virtual';\nlet currentModality: null | Modality = null;\n\nexport interface FocusRingProps {\n within?: boolean;\n isTextInput?: boolean;\n autoFocus?: boolean;\n}\n\nexport interface FocusRingResult {\n isFocused: boolean;\n isFocusVisible: boolean;\n focusProps: DOMAttributes;\n}\n\nexport function useFocusRing({\n within = false,\n isTextInput = false,\n autoFocus = false,\n}: FocusRingProps = {}): FocusRingResult {\n const state = useRef({\n isFocused: false,\n isFocusVisible: autoFocus || currentModality !== 'pointer',\n });\n\n const [isFocused, setFocused] = useState(false);\n const [isFocusVisible, setFocusVisible] = useState(() => state.current.isFocused && state.current.isFocusVisible);\n\n const updateFocusVisibleState = useCallback(() => {\n setFocusVisible(state.current.isFocused && state.current.isFocusVisible);\n }, []);\n\n const handleFocusChange = useCallback(\n (focused: boolean) => {\n state.current.isFocused = focused;\n setFocused(focused);\n updateFocusVisibleState();\n },\n [updateFocusVisibleState]\n );\n\n useFocusVisibleListener(\n (focusVisible) => {\n state.current.isFocusVisible = focusVisible;\n updateFocusVisibleState();\n },\n [],\n { isTextInput }\n );\n\n const { focusProps } = useFocus({\n isDisabled: within,\n onFocusChange: handleFocusChange,\n });\n\n const { focusWithinProps } = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: handleFocusChange,\n });\n\n return {\n isFocused,\n isFocusVisible,\n focusProps: within ? focusWithinProps : focusProps,\n };\n}"],"names":["DisabledContext","createContext","useDisabled","type","defaultFallback","useContext","useEffectEvent","fn","fnRef","useRef","document","useLayoutEffect","current","useCallback","args","createSyntheticEvent","nativeEvent","event","isDefaultPrevented","defaultPrevented","isPropagationStopped","cancelBubble","persist","useSyntheticBlurEvent","onBlur","stateRef","isFocused","observer","state","disconnect","dispatchBlur","e","target","HTMLButtonElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","addEventListener","disabled","once","MutationObserver","relatedTargetEl","activeElement","dispatchEvent","FocusEvent","relatedTarget","bubbles","observe","attributes","attributeFilter","nodeType","t","Node","DOCUMENT_FRAGMENT_NODE","n","o","contains","r","Element","tagName","assignedSlot","parentNode","host","shadowRoot","composedPath","i","ownerDocument","a","window","defaultView","useFocus","props","isDisabled","onFocus","onFocusProp","onBlurProp","onFocusChange","handleFocusChange","currentTarget","onSyntheticFocus","getOwnerDocument","getActiveElement","getEventTarget","focusProps","useGlobalListeners","globalListeners","Map","addGlobalListener","eventTarget","listener","options","wrappedListener","delete","set","removeGlobalListener","storedListener","get","removeEventListener","removeAllGlobalListeners","forEach","clear","useEffect","useFocusWithin","onFocusWithin","onBlurWithin","onFocusWithinChange","isFocusWithin","nodeContains","Object","defineProperty","value","capture","focusWithinProps","undefined","isMac","re","navigator","test","userAgentData","platform","testPlatform","p","Set","f","Tab","Escape","hasSetupGlobalListeners","hasEventBeforeFocus","hasBlurredWindowRecently","currentModality","changeHandlers","triggerChangeHandlers","modality","handler","handleKeyboardEvent","metaKey","altKey","ctrlKey","includes","key","handlePointerEvent","handleFocusEvent","isTrusted","handleWindowBlur","setupGlobalFocusEvents","element","windowObject","getOwnerWindow","documentObject","has","originalFocus","HTMLElement","prototype","focus","apply","this","PointerEvent","useFocusVisibleListener","deps","opts","d","c","s","l","u","KeyboardEvent","isContentEditable","isKeyboardFocusEvent","isTextInput","add","globalIgnoreEmulatedMouseEvents","hoverCount","setGlobalIgnoreEmulatedMouseEvents","setTimeout","handleGlobalPointerEvent","pointerType","setupGlobalTouchEvents","process","env","NODE_ENV","children","createElement","Provider","readyState","tearDownGlobalFocusEvents","extraProps","useMemo","onClick","onChange","within","autoFocus","isFocusVisible","setFocused","useState","setFocusVisible","updateFocusVisibleState","focused","focusVisible","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","ignoreEmulatedMouseEvents","hoverProps","triggerHoverEnd","triggerHoverStart","onPointerEnter","onPointerLeave","onTouchStart","onMouseEnter","onMouseLeave"],"mappings":";;;;;;;;oCAqBA,IAAIA,CAAkBC,CAAAA,CAAAA,CAA6BA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAM5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,EACdC,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5BC,GAA2B,CAG3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADcC,EAAAA,CAAWL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAA,CAChCG,CAASC,CAAAA,CAAAA,CAAAA,CACxB,CCrBO,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkDC,GAChE,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAQC,EAAAA,CAAOF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAUrB,CAPqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAbG,CAA2BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,gBAAkB,CACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACEH,EAAMI,CAAUL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAElB,CAACA,CAAAA,CAAAA,CAAAA,CAGIM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfN,EAAMI,CAAWE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjB,GACX,CCAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,EAA+CC,CAM7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CALcA,CACRA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcA,CACpBC,CAAAA,CAAAA,CAAMC,mBAAqB,CAFbF,CAAAA,CAAAA,CAAAA,CAAAA,CAEyBG,iBAFzBH,CAGRI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,IAAMJ,CAAeK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClDJ,CAAMK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAJFN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAMhB,CAQO,CAASO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdC,GAEA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAWhB,EAAAA,CAGd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACDiB,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACXC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAIZhB,EAAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACd,IAAMiB,CAAQH,CAAAA,CAAAA,CAASb,QACvB,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACDgB,CAAMD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACRC,CAAMD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASE,aACfD,CAAMD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,KAErB,CAAA,CAAA,CAAA,CACC,IAGH,CAAMG,CAAAA,CAAAA,CAAAA,CAAAA,CAAexB,CAAgByB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnCP,CAASO,CAAAA,CAAAA,CAAAA,CAAAA,CACX,IAGA,CAAOlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,aAAYkB,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CACEA,EAAEC,CAAkBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpBF,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBE,CACpBH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEC,kBAAkBG,CACpBJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEC,kBAAkBI,CACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACAX,EAASb,CAAQc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAE7B,CAAA,CAAA,CAAA,CAAA,CAAMM,CAASD,CAAAA,CAAAA,CAAEC,OAkBjBA,CAAOK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,YAjBmCpB,CACzDQ,CAAAA,CAAAA,CAAAA,CAAAA,CAASb,QAAQc,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEzBM,CAAOM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGTR,CADuBf,CAAAA,CAAAA,CAA8CE,IAKnEQ,CAASb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQe,WACnBF,CAASb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQe,SAASE,CAC1BJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASb,CAAQe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKmB,CAAEY,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAG3Dd,EAASb,CAAQe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,IAAIa,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC/C,CAAIf,CAAAA,CAAAA,CAAAA,CAASb,CAAQc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaM,EAAOM,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjDb,EAASb,CAAQe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUE,aAC3B,CAAMY,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBT,CAAWtB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASgC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOhC,SAASgC,CAC5EV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOW,cAAc,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,OAAQ,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeJ,CAC7DT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOW,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIC,WAAW,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEE,SAAS,CAAMD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeJ,IAClF,CAIFhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASb,CAAQe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASoB,CAAQf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAEgB,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,gBAAiB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClF,IACC,CAACnB,CAAAA,CAAAA,CACN,CChHA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAEA,CAAAA,CAAAA,CAAAA,CAAG,OAAkE,CAAWA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,OAAO,CAAOA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,iBAAiBA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAaA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiBA,CAAEmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAzJC,CAAEpB,CAAAA,CAAAA,CAAAA,CAAIA,EAAEmB,CAAWE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,wBAAwB,CAAStB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAC,CAAgG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASuB,CAAEH,CAAAA,CAAAA,CAAEG,EAAEC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,IAAIJ,CAAIG,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,OAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAIC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOJ,CAAEK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASF,GAAG,CAAIG,CAAAA,CAAAA,CAAAA,CAAAA,CAAEH,EAAE,CAAKG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAC,CAAGA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIN,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAGM,CAAAA,CAAAA,CAAEA,aAAaC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASD,EAAEE,CAASF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEG,aAAaH,CAAEG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaC,CAAW9B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE0B,CAAGA,CAAAA,CAAAA,CAAAA,CAAEK,KAAKL,CAAEI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC,CAAIN,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,CAACxB,CAAAA,CAAErB,CAASyC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,KAAM,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,OAAOpB,CAAEW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,IAAIY,CAAEvB,CAAAA,CAAAA,CAAEW,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKY,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAeA,GAAGA,CAAES,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYrB,eAAeY,CAAEA,CAAAA,CAAAA,CAAES,WAAWrB,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOY,CAAAA,CAAAA,CAAG,CAASG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE1B,EAAEoB,CAAE,CAAA,CAAA,CAAA,CAAA,CAAI,OAAOA,CAAGpB,CAAAA,CAAAA,CAAAA,CAAEC,OAAO+B,CAAYhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEiC,CAAajC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEiC,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGjC,EAAEC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,IAAIiC,CAAElC,CAAAA,CAAAA,CAAAA,CAAGA,GAAGmC,CAAexD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASyD,CAAEpC,CAAAA,CAAAA,CAAAA,CAAOA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWA,GAAGA,CAAEqC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASrC,EAASA,CAASkC,CAAAA,CAAAA,CAAElC,GAAGsC,CAAaD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CC8B3vB,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA6DC,CAC3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,WAAEA,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,EAAalD,CAAQmD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,cAAEA,CAAkBL,CAAAA,CAAAA,CAAAA,CAG1EM,CAAoBhE,CAAAA,CAAAA,CACxBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACa,EAAoBK,CACfL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACFgD,IAAc3C,CACd6C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,KAEhBD,CAAa5C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACb6C,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEpB,CACA,CAAA,CAAA,CAACF,EAAaC,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAItBpD,EAASX,eACbkB,IACMA,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWD,CAAE+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjBD,CAAkB,CAAA,CAAA,CAAA,CAAO9C,GAG7B,CAAA,CAAA,CAAC8C,IAIGE,CAAmBxD,CAAAA,CAAAA,CAA8BC,GAGjDiD,CAAU5D,CAAAA,CAAAA,EACbkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACC,CAAMmC,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBc,EAAiBjD,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnCU,EAAgBwB,CAAgBe,CAAAA,CAAAA,CAAiBf,GAAiBe,CACpElD,CAAAA,CAAAA,CAAAA,CAAAA,CAAEC,CAAWD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE+C,CAAiBpC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBwC,EAAenD,CAAEf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrE6D,GAAkB,CAAM9C,CAAAA,CAAAA,CAAAA,CACxBgD,EAAiBhD,CAErB,CAAA,CAAA,CAAA,CAAA,CACA,CAAC8C,CAAAA,CAAmBE,CAItB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLI,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACNX,EAAa,CAAA,CAAA,CAAK,CAAEC,CAASjD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGvC,CC9BA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS4D,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAAkB5E,CAAyIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,IAAI6E,CAE/JC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB1E,EAAAA,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC2E,CAA0BrF,CAAAA,CAAAA,CAAcsF,CAA8CC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrF,IAAMC,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOD,GAAwBA,CAASnD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5D,IAAIzB,CACFuE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBzE,CAAQgF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOH,CAC9BA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA8B3E,EACjC,CACA2E,CAAAA,CAAAA,CAEJJ,EAAgBzE,CAAQiF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIJ,EAAU,CAAEtF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqF,CAAaE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC3DF,CAAYnD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBlC,EAAMwF,CAAiBD,CAAAA,CAAAA,CAAAA,GAEtD,CAGII,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBjF,EAAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC2E,CAA0BrF,CAAAA,CAAAA,CAAcsF,CAA8CC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrF,IAAMK,CAAiBV,CAAAA,CAAAA,CAAgBzE,QAAQoF,CAAIP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7ClF,EAAKwF,CAAgBL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASnD,CAAOwD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAexF,CAAKkF,CAAAA,CAAAA,CAAAA,CAE/DD,EAAYS,CAAoB9F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMI,EAAqBmF,CAC3DL,CAAAA,CAAAA,CAAAA,CAAgBzE,QAAQgF,CAAOH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAGIS,CAA2BrF,CAAAA,CAAAA,CAAAA,aAAY,CAC3CwE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBzE,QAAQuF,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGhG,OAAMqF,CAAaE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoGD,CACxJD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYS,CAAoB9F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMsF,EAA2BC,MAEnEL,EAAgBzE,CAAQwF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,GAC5B,CAMH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMH,KACZ,CAACA,CAAAA,CAAAA,CAAAA,CAEG,CAAEX,CAAmBO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsBI,2BACpD,CCxDO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASI,CAAe/B,CAAAA,CAAAA,CAAAA,CAC7B,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,EAAU+B,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaC,aAAEA,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,GAAwBlC,CACnE3C,CAAAA,CAAAA,CAAQnB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAEiG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,KAChCnB,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBW,yBAAEA,CAA6Bd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAElD5D,EAASX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaI,CACnBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM6D,CAActB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASvC,EAAMe,CAEpCJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMhB,QAAQ8F,CAAmBzF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM6D,cAA0BtB,CAASvC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM4B,CAClFjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMhB,CAAQ8F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,EAC9BR,CAEIM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcA,EAAavF,CAC3BwF,CAAAA,CAAAA,CAAAA,CAAAA,CAAqBA,GAAoB,CAEjD,CAAA,CAAA,CAAA,CAAA,CAAG,CAACD,CAAAA,CAAcC,CAAqB7E,CAAAA,CAAAA,CAAOsE,IAE1CnB,CAAmBxD,CAAAA,CAAAA,CAAsBC,GACzCiD,CAAU5D,CAAAA,CAAAA,CAAAA,aAAaI,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKA,CAAM6D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAActB,CAASvC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMe,QAAS,CAEjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMkC,EAAgBc,CAAiB/D,CAAAA,CAAAA,CAAMe,QACvCU,CAAgBuC,CAAAA,CAAAA,CAAiBf,CAEvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKtC,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ8F,eAAiBhE,CAAiBwC,CAAAA,CAAAA,CAAAA,CAAejE,EAAMD,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClFuF,GAAeA,CAActF,CAAAA,CAAAA,CAAAA,CAC7BwF,CAAqBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CAE7C7E,CAAAA,CAAAA,CAAAA,CAAMhB,QAAQ8F,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC9B3B,EAAiB9D,CAEjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI6D,EAAgB7D,CAAM6D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1BS,CAAkBrB,CAAAA,CAAAA,CAAe,CAASnC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxC,GAAIH,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ8F,gBAAkBC,CAAa7B,CAAAA,CAAAA,CAAe/C,EAAEC,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpF,CAAIhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAIkD,CAAAA,CAAAA,CAAAA,CAAAA,CAAcG,YAAazB,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAACC,CAAed,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEC,SACtF4E,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe7F,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAC8F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOhC,IACrD8B,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe7F,EAAa,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC8F,MAAOhC,CAE5DtD,CAAAA,CAAAA,CAAAA,CAAAA,CADYT,CAAsCC,CAAAA,CAAAA,CAAAA,CAEpD,CACC,CAAA,CAAA,CAAA,CAAC+F,SAAS,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAACR,CAAeE,CAAAA,CAAAA,CAAqB1B,EAAkBQ,CAAmB/D,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAErFgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACS,CACLwC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,CAChBvC,CAASwC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACTzF,YAAQyF,CAKP,CAAA,CAAA,CAAA,CACLD,iBAAkB,CAChBvC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAjD,CAGN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CC9EO,CAAM0F,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,WACnB,CARF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsBC,GACpB,CAAc/C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,KAAmC,CAApBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOgD,CAE3CD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAGE,CAAKjD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOgD,UAAUE,CAAkBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYnD,OAAOgD,CAAUG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE9E,CAGSC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACtB,CCjB4PC,CAAAA,CAAAA,CAAE,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,QAAQ,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,QAAQ,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,EAAGC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CCyBtW,IAAMC,CAA0B,CAAA,CAAA,CAAA,CAAA,CAAIxC,IAChCyC,CAAsB,CAAA,CAAA,CAAA,CACtBC,CAA2B,CAAA,CAAA,CAAA,CAC3BC,CAAmC,CAAA,CAAA,CAAA,CAAA,CAAA,CACjCC,EAAiB,CAAIR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE3B,SAASS,CAAsBC,CAAAA,CAAAA,CAAoBrG,GACjDmG,CAAe/B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQkC,CAAaA,CAAAA,CAAAA,CAAAA,CAAQD,CAAUrG,CAAAA,CAAAA,CAAAA,CAAAA,CACxD,CAWA,CAASuG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBvG,CARpBA,CAAAA,CAAAA,CAAAA,CACHwG,CACArB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWnF,EAAEyG,CAOFzG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CANX0G,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,QAAQC,CAAS3G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE4G,OAMxCZ,CAAsB,CAAA,CAAA,CAAA,CACtBE,EAAkB,CAClBE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsB,CAAYpG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEtC,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS6G,EAAmB7G,CACtB,CAAA,CAAA,CAAC,YAAa,CAAe2G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS3G,EAAE5B,CAC1C4H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsB,CACtBE,CAAAA,CAAAA,CAAkB,CAClBE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsB,UAAWpG,CAErC,CAAA,CAAA,CAEA,SAAS8G,CAAiB9G,CAAAA,CAAAA,CAAAA,CAAAA,CAEtB,CAACqC,CAAQ1D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUgI,CAAS3G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEC,CAC7BD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE+G,YACFf,CAAyBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAKvBD,GAAwBC,CAC3BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,UAClBE,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWpG,CAGnCgG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsB,CACtBC,CAAAA,CAAAA,CAAAA,CAA2B,EAC7B,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASe,IACPhB,CAAsB,CAAA,CAAA,CAAA,CACtBC,GAA2B,CAC7B,CAEA,CAASgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBC,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAAeC,CAAeF,CAAAA,CAAAA,CAAAA,CAC9BG,EAAiBpE,CAAiBiE,CAAAA,CAAAA,CAAAA,CAExC,GACoB,CAAX7E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAO1D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACPoH,CAAwBuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAIH,GAE5B,CAGF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMI,EAAgBJ,CAAaK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYC,UAAUC,CACzDP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaK,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa3I,GACtDiH,CAAsB,CAAA,CAAA,CAAA,CACtBuB,EAAcI,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM7I,EAC5B,CAEAsI,CAAAA,CAAAA,CAAe/G,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWiG,CAAqB,CAAA,CAAA,CAAA,CAAA,CAChEc,EAAe/G,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASuG,GAAoB,CAC7DM,CAAAA,CAAAA,CAAAA,CAAa7G,iBAAiB,CAASwG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,CACzDK,CAAAA,CAAAA,CAAAA,CAAa7G,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ0G,GAAkB,CAEpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOa,cACTR,CAAe/G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,cAAeuG,CAAoB,CAAA,CAAA,CAAA,CAAA,CAGrEd,CAAwBjC,CAAAA,CAAAA,CAAAA,CAAAA,CAAIqD,CAAc,CAAA,CAAEO,MAAOH,CACrD,CAAA,CAAA,CAqCO,SAASO,CACdtJ,CAAAA,CAAAA,CACAuJ,EACAC,CAEAf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEA3C,aAAU,CACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMgC,EAAmB,CAACD,CAAAA,CAAUrG,MD5JkU,CAAWA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE0B,EAAEN,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWA,CAAKA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEnB,OAAO,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,IAAImC,CAAE6F,CAAAA,CAAAA,CAAE7G,EAAEnB,CAAQuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE0G,CAAE9G,CAAAA,CAAAA,CAAEnB,CAAQiC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASG,OAAO,CAAIb,CAAAA,CAAAA,CAAAA,CAAAA,CAAErB,iBAAiBA,CAAiBgI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS9F,OAAO,CAAIb,CAAAA,CAAAA,CAAAA,CAAAA,CAAEpB,CAAoBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBgI,CAAS/F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,IAAIb,CAAEgG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYA,YAAYa,CAAShG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,IAAIb,CAAE8G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcA,CAAc/G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEa,CAAEzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,SAAOX,CAAEA,CAAAA,CAAAA,CAAAA,CAAGuB,aAAaW,CAAIwD,CAAAA,CAAAA,CAAAA,CAAAA,CAAE4B,IAAI/F,CAAEnD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOmD,CAAa4G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG5G,CAAa6G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG7G,EAAEgH,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAJ7G,GAAgBN,CAAaiH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIzC,EAAExE,CAAEwF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CC6JnzB4B,CAAAA,CAAAA,CAAAA,CAAuBR,CAAMS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAapC,EAAUrG,CACzDxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,YAApB0H,CACL,CAAA,CAAA,CAGA,OADAC,CAAeuC,CAAAA,CAAAA,CAAAA,CAAAA,CAAIpC,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACLH,CAAetC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOyC,EACxB,CAAA,CAAA,CAAA,CACCyB,EACL,CCnIA,CAAA,CAAA,CAAA,CAAIY,GAAkC,CAClCC,CAAAA,CAAAA,CAAa,CAEjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CACPF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkC,EAMlCG,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACTH,GAAkC,CACpC,CAAA,CAAA,CAAG,GACL,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASI,CAAyB/I,CAAAA,CAAAA,CAAAA,CACV,CAAlBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEgJ,aACJH,CAEJ,CAAA,CAAA,CAEA,SAASI,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,oBAAbtK,CAWX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAPI,CAAOkJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACTlJ,CAAS2B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,YAAayI,CAC9BG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAQC,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrBzK,SAAS2B,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAYuI,CAGxCD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACO,CAEDA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,IAIb,CAAOf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACTlJ,SAASuF,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa6E,GACjCG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQC,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrBzK,CAASuF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,WAAY2E,CAAAA,CAAAA,CAAAA,CAG/C,0BVzBO,UAA0B9D,CAC/BA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKsE,CACLA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,cACLrL,CAAgBsL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChB,CAAExE,CAAOA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAClBsE,CAAAA,CAAAA,CAAAA,CAEJ,WSkEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgCnC,GACrC,CAAMG,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBpE,EAAiBiE,CAUxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CARkC,YAA9BG,CAAemC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjBvC,CAAuBC,CAAAA,CAAAA,CAAAA,CAEvBG,CAAe/G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,oBAAoB,CAClD2G,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBC,KAIpB,CAAMuC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CA5BoBvC,GACjC,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAeC,CAAeF,CAAAA,CAAAA,CAAAA,CAC9BG,CAAiBpE,CAAAA,CAAAA,CAAiBiE,GAExC,CAAKnB,CAAAA,CAAAA,CAAAA,CAAAA,CAAwBuB,IAAIH,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEhD,IAAMO,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU3B,CAAwB9B,CAAAA,CAAAA,CAAAA,CAAAA,CAAIkD,CAC9CA,CAAAA,CAAAA,CAAAA,CAAaK,YAAYC,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQA,EAE3CL,CAAenD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,UAAWqC,CAAqB,CAAA,CAAA,CAAA,CAAA,CACnEc,CAAenD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CAAS2C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,GAChEM,CAAajD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,QAAS4C,CAAkB,CAAA,CAAA,CAAA,CAAA,CAC5DK,EAAajD,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ8C,CAAkB,CAAA,CAAA,CAAA,CAAA,CAE3DjB,CAAwBlC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOsD,EACjC,CAaesC,CAA0BvC,EACzC,0CAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAOhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACT,iDT3HO,WACL,CAAO5H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CACxC,CAAA,2BAUO,SAA0BG,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWsL,EAA0C,CAAE,CAAA,CAAA,CAClH,CAAMjH,CAAAA,CAAAA,CAAAA,CAAAA,CAAatE,CAAYC,CAAAA,CAAAA,CAAAA,CAE/B,OAAOuL,WAAQ,KACb,CAAInH,CAAAA,CAAAA,CAAAA,CAAAA,CAAqC,IACpCkH,CAWL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CARIjH,CACFD,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CACHA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC+B,mBAAvBkH,CAAWE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyD,mBAAxBF,CAAWG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA0B,CAAEtJ,CAAUkC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAE,CAAA,CACzH,CAAiBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIdD,IACN,CAACC,CAAAA,CAAYiH,GAClB,mEWhBO,UAAsBI,CAC3BA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,EAAKrB,CACdA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,EAAKsB,CACnBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CACM,CAAA,CAAA,EAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMlK,EAAQnB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACnBiB,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACXqK,eAAgBD,CAAa7D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGxBvG,CAAWsK,CAAAA,CAAAA,CAAAA,CAAcC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,IAClCF,CAAgBG,CAAAA,CAAAA,CAAAA,CAAmBD,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMrK,EAAMhB,CAAQc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaE,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQmL,CAE5FI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA0BtL,EAAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC1CqL,EAAgBtK,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQc,WAAaE,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQmL,CAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAEGlH,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBhE,EAAAA,CACxBuL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACExK,EAAMhB,CAAQc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY0K,EAC1BJ,CAAWI,CAAAA,CAAAA,CAAAA,CACXD,MAEF,CAACA,CAAAA,CAAAA,CAAAA,CAGHtC,GACEwC,CACEzK,CAAAA,CAAAA,CAAAA,CAAAA,CAAMhB,QAAQmL,CAAiBM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC/BF,IAEF,CAAA,CAAA,CAAA,CAAA,CACA,CAAE3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGJ,CAAMrF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,GAAeb,CAAS,CAAA,CAC9BE,WAAYqH,CACZjH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeC,KAGXmC,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqBV,CAAe,CAAA,CAC1C9B,CAAaqH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACbpF,oBAAqB5B,CAGvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLnD,CACAqK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACA5G,WAAY0G,CAAS7E,CAAAA,CAAAA,CAAmB7B,CAE5C,CAAA,CAAA,0GDDO,CAAkBZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvB,CAAI+H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACFA,EAAYC,CACZA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaC,WACbA,CAAUhI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACVA,GACED,CAECkI,CAAAA,CAAAA,CAAAA,CAAWC,CAAcT,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnCrK,EAAQnB,SAAO,CACjBgM,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACXE,2BAA2B,CAC3B5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CACb/I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CACPpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEHyF,EAAAA,CAAU2E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,IAClC,CAAIzF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACA,EAAiBW,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA4Bd,CAEhDwH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACA,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,GAAmBnB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,KAC1C,CAAIoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CAAC7L,CAAO8J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE9B,CADAnJ,CAAAA,CAAAA,CAAAA,CAAMmJ,CAAcA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChBvG,GAA8B,CAAhBuG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA2BnJ,EAAM6K,CAAcxL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM6D,cAActB,CAASvC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMe,CAClG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGFJ,CAAM6K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,EAClB,CAAIzK,CAAAA,CAAAA,CAAAA,CAAAA,CAASf,EAAM6D,CACnBlD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMI,OAASA,CAMfuD,CAAAA,CAAAA,CAAkBP,CAAiB/D,CAAAA,CAAAA,CAAMe,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAeD,IAC3DH,CAAM6K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa7K,EAAMI,CAAW2E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa/E,EAAMI,CAAQD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEC,CACnE6K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB9K,CAAGA,CAAAA,CAAAA,CAAEgJ,YAEzB,CAAG,CAAA,CAAA,CAAChE,SAAS,CAETuF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACFA,EAAa,CACXnM,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CACN6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACA+I,CAIAwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACFA,GAAc,CAGhBG,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,EAAA,CAGTG,CAAAA,CAAAA,CAAkB,CAAC5L,CAAO8J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5B,CAAI/I,CAAAA,CAAAA,CAAAA,CAAAA,CAASJ,CAAMI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnBJ,EAAMmJ,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpBnJ,EAAMI,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEK,UAAhB+I,CAA4BnJ,CAAAA,CAAAA,CAAAA,CAAM6K,CAAczK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIpDJ,CAAM6K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,EAClBvG,CAEIsG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACFA,EAAW,CACTrM,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,WACN6B,CACA+I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIAwB,CACFA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAGhBG,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,GACb,CAEIE,CAAAA,CAAAA,CAA4B,CAAA,CAmChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAjCI,oBAAOhD,CACTgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWG,CAAiBhL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtB2I,CAAmC3I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAEgJ,CAIzC+B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB/K,EAAGA,CAAEgJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAGzB6B,CAAWI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBjL,CACrByC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAczC,CAAE+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAActB,SAASzB,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5C6K,EAAgB9K,CAAGA,CAAAA,CAAAA,CAAEgJ,YAAW,CAGF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAzBE,CAAQC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIC,CACrByB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWK,aAAe,CACxBrL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM+K,2BAA4B,CACpC,CAAA,CAEAC,EAAWM,CAAgBnL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrBH,CAAO+K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA8BjC,CACvCoC,CAAAA,CAAAA,CAAAA,CAAkB/K,EAAG,CAGvBH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM+K,2BAA4B,CACpC,CAAA,CAEAC,EAAWO,CAAgBpL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpByC,CAAczC,CAAAA,CAAAA,CAAAA,CAAE+C,CAActB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASzB,EAAEC,CAC5C6K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB9K,EAAG,CAEvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEK,CAAC6K,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAClC,CAAA,CAAA,CAACP,CAAcC,CAAAA,CAAAA,CAAeC,EAAYhI,CAAY5C,CAAAA,CAAAA,CAAO2D,EAAmBW,CAWnF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CATAG,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGJ7B,CACFqI,CAAAA,CAAAA,CAAAA,CAAgB,CAAC/H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAelD,EAAMI,CAASJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMmJ,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGjE,CAACvG,CAAAA,CAAAA,CAAAA,CAEG,CACLoI,CACAH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEJ"}
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@necto-react/hooks",
3
- "version": "2.5.0",
3
+ "version": "2.7.0",
4
4
  "description": "Necto's library for providing utility hooks for React applications",
5
- "type": "module",
6
5
  "files": [
7
6
  "dist",
8
7
  "README.md"