@necto-react/hooks 2.0.0 → 2.1.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 +65 -13
- package/dist/index.es.js +1 -1
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -4
package/dist/index.d.ts
CHANGED
|
@@ -6,18 +6,9 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { HoverEvent, DOMAttributes } from '@necto-react/types';
|
|
10
9
|
import * as react from 'react';
|
|
11
|
-
import { HTMLAttributes, PropsWithChildren } from 'react';
|
|
12
|
-
|
|
13
|
-
interface HoverProps extends HoverEvent {
|
|
14
|
-
isDisabled?: boolean;
|
|
15
|
-
}
|
|
16
|
-
interface HoverResult {
|
|
17
|
-
hoverProps: DOMAttributes;
|
|
18
|
-
isHovered: boolean;
|
|
19
|
-
}
|
|
20
|
-
declare function useHover(props: HoverProps): HoverResult;
|
|
10
|
+
import { HTMLAttributes, PropsWithChildren, FocusEvent as FocusEvent$1, SyntheticEvent } from 'react';
|
|
11
|
+
import { FocusableElement, FocusEvent, DOMAttributes, HoverEvent } from '@necto-react/types';
|
|
21
12
|
|
|
22
13
|
type DisabledFlags = {
|
|
23
14
|
general?: boolean;
|
|
@@ -32,6 +23,51 @@ declare function DisabledProvider({ value, children, }: PropsWithChildren<{
|
|
|
32
23
|
value?: DisabledFlags;
|
|
33
24
|
}>): react.FunctionComponentElement<react.ProviderProps<DisabledFlags>>;
|
|
34
25
|
|
|
26
|
+
declare function useEffectEvent<T extends (...args: any[]) => any>(fn: T): T;
|
|
27
|
+
|
|
28
|
+
interface FocusProps<Target = FocusableElement> extends FocusEvent<Target> {
|
|
29
|
+
isDisabled?: boolean;
|
|
30
|
+
}
|
|
31
|
+
interface FocusResult<Target = FocusableElement> {
|
|
32
|
+
focusProps: DOMAttributes<Target>;
|
|
33
|
+
}
|
|
34
|
+
declare function useFocus<Target extends FocusableElement = FocusableElement>(props: FocusProps<Target>): FocusResult<Target>;
|
|
35
|
+
|
|
36
|
+
type Modality = 'keyboard' | 'pointer' | 'virtual';
|
|
37
|
+
interface FocusRingProps {
|
|
38
|
+
within?: boolean;
|
|
39
|
+
isTextInput?: boolean;
|
|
40
|
+
autoFocus?: boolean;
|
|
41
|
+
}
|
|
42
|
+
interface FocusRingResult {
|
|
43
|
+
isFocused: boolean;
|
|
44
|
+
isFocusVisible: boolean;
|
|
45
|
+
focusProps: DOMAttributes;
|
|
46
|
+
}
|
|
47
|
+
declare function useFocusRing(props?: FocusRingProps): FocusRingResult;
|
|
48
|
+
|
|
49
|
+
type FocusVisibleHandler = (isFocusVisible: boolean) => void;
|
|
50
|
+
interface GlobalListenerData {
|
|
51
|
+
focus: () => void;
|
|
52
|
+
teardown: () => void;
|
|
53
|
+
}
|
|
54
|
+
declare let ignoreFocusEvent: boolean;
|
|
55
|
+
declare let hasSetupGlobalListeners: Map<Window, GlobalListenerData>;
|
|
56
|
+
declare function useFocusVisibleListener(fn: FocusVisibleHandler, deps: ReadonlyArray<any>, opts?: {
|
|
57
|
+
isTextInput?: boolean;
|
|
58
|
+
}): void;
|
|
59
|
+
|
|
60
|
+
interface FocusWithinProps {
|
|
61
|
+
isDisabled?: boolean;
|
|
62
|
+
onFocusWithin?: (e: FocusEvent$1) => void;
|
|
63
|
+
onBlurWithin?: (e: FocusEvent$1) => void;
|
|
64
|
+
onFocusWithinChange?: (isFocusWithin: boolean) => void;
|
|
65
|
+
}
|
|
66
|
+
interface FocusWithinResult {
|
|
67
|
+
focusWithinProps: DOMAttributes;
|
|
68
|
+
}
|
|
69
|
+
declare function useFocusWithin(props: FocusWithinProps): FocusWithinResult;
|
|
70
|
+
|
|
35
71
|
interface GlobalListeners {
|
|
36
72
|
addGlobalListener<K extends keyof WindowEventMap | keyof DocumentEventMap>(el: Window | EventTarget, type: K, listener: (this: Document, ev: K extends keyof WindowEventMap ? WindowEventMap[K] : K extends keyof DocumentEventMap ? DocumentEventMap[K] : never) => any, options?: boolean | AddEventListenerOptions): void;
|
|
37
73
|
addGlobalListener(el: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -41,5 +77,21 @@ interface GlobalListeners {
|
|
|
41
77
|
}
|
|
42
78
|
declare function useGlobalListeners(): GlobalListeners;
|
|
43
79
|
|
|
44
|
-
|
|
45
|
-
|
|
80
|
+
interface HoverProps extends HoverEvent {
|
|
81
|
+
isDisabled?: boolean;
|
|
82
|
+
onHoverStart?: (event: HoverEvent) => void;
|
|
83
|
+
onHoverEnd?: (event: HoverEvent) => void;
|
|
84
|
+
onHoverChange?: (isHovered: boolean) => void;
|
|
85
|
+
}
|
|
86
|
+
interface HoverResult {
|
|
87
|
+
hoverProps: DOMAttributes;
|
|
88
|
+
isHovered: boolean;
|
|
89
|
+
}
|
|
90
|
+
declare function setGlobalIgnoreEmulatedMouseEvents(): void;
|
|
91
|
+
declare function useHover(props: HoverProps): HoverResult;
|
|
92
|
+
|
|
93
|
+
declare function createSyntheticEvent<E extends SyntheticEvent>(nativeEvent: Event): E;
|
|
94
|
+
declare function useSyntheticBlurEvent<Target extends Element = Element>(onBlur: (event: FocusEvent$1<Target>) => void): (event: FocusEvent$1<Target>) => void;
|
|
95
|
+
|
|
96
|
+
export { DisabledProvider, createSyntheticEvent, hasSetupGlobalListeners, ignoreFocusEvent, setGlobalIgnoreEmulatedMouseEvents, useDisabled, useDisabledFlags, useDisabledProps, useEffectEvent, useFocus, useFocusRing, useFocusVisibleListener, useFocusWithin, useGlobalListeners, useHover, useSyntheticBlurEvent };
|
|
97
|
+
export type { FocusProps, FocusResult, FocusRingProps, FocusRingResult, FocusVisibleHandler, FocusWithinProps, FocusWithinResult, HoverProps, HoverResult, Modality };
|
package/dist/index.es.js
CHANGED
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import{
|
|
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 a,useState as s}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 p({value:e,children:t}){return r(c.Provider,{value:e||{}},t)}function v(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=v((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 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]),a=i((e=>{e.target===e.currentTarget&&u(!1,e)}),[u]),s=E(a),c=i((e=>{let t=w(e.target),n=t?T(t):T();e.target===e.currentTarget&&n===y(e.nativeEvent)&&(u(!0,e),s(e))}),[u,s]);return{focusProps:{...t?{}:{onFocus:c,onBlur:a}}}}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 a((()=>()=>r()),[r]),{addGlobalListener:t,removeGlobalListener:n,removeAllGlobalListeners:r}}function M(e){let{isDisabled:t,onFocusWithin:n,onBlurWithin:r,onFocusWithinChange:u}=e,a=o({isFocusWithin:!1}),{addGlobalListener:s,removeAllGlobalListeners:c}=F(),l=i((e=>{e.currentTarget.contains(e.target)&&a.current.isFocusWithin&&!e.currentTarget.contains(e.relatedTarget)&&(a.current.isFocusWithin=!1,c(),r&&r(e),u&&u(!1))}),[r,u,a,c]),d=E(l),f=i((e=>{if(!e.currentTarget.contains(e.target))return;let t=w(e.target),r=T(t);if(!a.current.isFocusWithin&&r==y(e.nativeEvent)){n&&n(e),u&&u(!0),a.current.isFocusWithin=!0,d(e);let r=e.currentTarget;s(t,"focus",(e=>{if(a.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}),l(g(n))}}),{capture:!0})}}),[n,u,d,s,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)};var P=function(){return function(e){return!(typeof window>"u"||null==window.navigator)&&(window.navigator.userAgentData?.brands.some((t=>e.test(t.brand)))||e.test(window.navigator.userAgent))}(/Android/i)};var k=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),W={Tab:!0,Escape:!0};let D=!1,S=!1,A=new Set,C=null,N=!1,x=new Map;function G(e){if(N=!0,!(e.metaKey||!H()&&e.altKey||e.ctrlKey||"Control"===e.key||"Shift"===e.key||"Meta"===e.key))for(let t of(C="keyboard",A))t("keyboard",e)}function V(e){if(C="pointer","mousedown"===e.type||"pointerdown"===e.type)for(let t of A)t("pointer",e)}function B(e){(function(e){return!(0!==e.mozInputSource||!e.isTrusted)||(P()&&e.pointerType?"click"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)})(e)&&(N=!0,C="virtual")}function I(e){if(e.target!==window&&e.target!==document&&e.isTrusted){if(!N&&!S)for(let t of(C="virtual",A))t("virtual",e);N=!1,S=!1}}function O(){N=!1,S=!0}function K(e,t,n){!function(){if("undefined"==typeof window||"undefined"==typeof document)return;let e=h(void 0),t=w(void 0);if(x.get(e))return;let n=e.HTMLElement.prototype.focus;function r(e){return N=!0,n.call(this,e)}e.HTMLElement.prototype.focus!==r&&(e.HTMLElement.prototype.focus=r);let o=[["keydown",G,!0],["keyup",G,!0],["click",B,!0]],i=[["focus",I,!0],["blur",O,!1]],u=[];function a(){e.HTMLElement.prototype.focus=n,[...o,...u].forEach((([e,n,r])=>{t.removeEventListener(e,n,r)})),i.forEach((([t,n,r])=>{e.removeEventListener(t,n,r)})),e.removeEventListener("beforeunload",a),x.delete(e)}"undefined"!=typeof PointerEvent?u=[["pointerdown",V,!0],["pointermove",V,!0],["pointerup",V,!0]]:"test"===process.env.NODE_ENV&&(u=[["mousedown",V,!0],["mousemove",V,!0],["mouseup",V,!0]]),[...o,...u].forEach((([e,n,r])=>{t.addEventListener(e,n,r)})),i.forEach((([t,n,r])=>{e.addEventListener(t,n,r)})),e.addEventListener("beforeunload",a,{once:!0}),x.set(e,{focus:n,teardown:a})}(),a((()=>{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,a=typeof window<"u"?o.HTMLElement:HTMLElement,s=typeof window<"u"?o.KeyboardEvent:KeyboardEvent,c=r.activeElement;return!((e=e||c instanceof i&&!k.has(c.type)||c instanceof u||c instanceof a&&c.isContentEditable)&&"keyboard"===t&&n instanceof s&&!W[n.key])})(!!n?.isTextInput,t,r)&&e("pointer"!==C)};return A.add(t),()=>{A.delete(t)}}),t)}function R(e={}){let{autoFocus:t=!1,isTextInput:n,within:r}=e,u=o({isFocused:!1,isFocusVisible:t||!0}),[a,c]=s(!1),[l,d]=s((()=>u.current.isFocused&&u.current.isFocusVisible)),f=i((()=>d(u.current.isFocused&&u.current.isFocusVisible)),[]),p=i((e=>{u.current.isFocused=e,c(e),f()}),[f]);K((e=>{u.current.isFocusVisible=e,f()}),[],{isTextInput:n});let{focusProps:v}=L({isDisabled:r,onFocusChange:p}),{focusWithinProps:g}=M({isDisabled:!r,onFocusWithinChange:p});return{isFocused:a,isFocusVisible:l,focusProps:r?g:v}}let j=!1;function _(){j=!0,setTimeout((()=>{j=!1}),50)}function z(e){let{onHoverStart:t,onHoverChange:r,onHoverEnd:u,isDisabled:c}=e,[l,d]=s(!1),f=o({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}),{addGlobalListener:p,removeAllGlobalListeners:v}=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,p(w(e.target),"pointerover",(e=>{o.isHovered&&o.target&&!b(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,p]),E=i(((e,t)=>{let n=f.current;"touch"!==t&&n.isHovered&&n.target&&(n.isHovered=!1,n.pointerType="",n.target=null,v(),u?.({type:"hoverend",target:e.currentTarget,pointerType:t}),r?.(!1),d(!1))}),[u,r,v]),m=n((()=>{let e={onMouseLeave:()=>{},onMouseEnter:()=>{},onTouchStart:()=>{},onPointerLeave:()=>{},onPointerEnter:()=>{}};return"undefined"!=typeof PointerEvent?(e.onPointerEnter=e=>{j&&"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||j||g(e,"mouse"),f.current.ignoreEmulatedMouseEvents=!1},e.onMouseLeave=e=>{!c&&e.currentTarget.contains(e.target)&&E(e,"mouse")}),e}),[c,g,E]);return a((()=>{c&&f.current.isHovered&&E({currentTarget:f.current.target},f.current.pointerType)}),[c,E]),{hoverProps:m,isHovered:l}}export{p as DisabledProvider,g as createSyntheticEvent,x as hasSetupGlobalListeners,D as ignoreFocusEvent,_ as setGlobalIgnoreEmulatedMouseEvents,d as useDisabled,l as useDisabledFlags,f as useDisabledProps,v as useEffectEvent,L as useFocus,R as useFocusRing,K as useFocusVisibleListener,M as useFocusWithin,F as useGlobalListeners,z as useHover,E as useSyntheticBlurEvent};
|
|
10
10
|
//# sourceMappingURL=index.es.js.map
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/useGlobalListeners.ts","../../necto-dom/dist/index.mjs","../src/useHover.ts","../src/useDisabled.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 * 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 };","function n(n){return e(n)&&n.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&\"host\"in n}function e(n){return null!==n&&\"object\"==typeof n&&\"nodeType\"in n&&\"number\"==typeof n.nodeType}function t(e,t,o=!0){if(!e||!t)return!1;if(!o)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:n(r)?r.host:r.parentNode}return!1}var o=n=>n?.ownerDocument??document,r=n=>{if(n&&\"window\"in n&&n.window===n)return n;return o(n).defaultView||window};export{o as getOwnerDocument,r as getOwnerWindow,e as isNode,t 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 { 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}\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\nfunction 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 */\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}"],"names":["useGlobalListeners","globalListeners","useRef","Map","addGlobalListener","useCallback","eventTarget","type","listener","options","wrappedListener","once","args","current","delete","set","addEventListener","removeGlobalListener","storedListener","get","fn","removeEventListener","removeAllGlobalListeners","forEach","clear","useEffect","n","nodeType","e","Node","DOCUMENT_FRAGMENT_NODE","useHover","props","onHoverStart","onHoverChange","onHoverEnd","isDisabled","isHovered","setHovered","useState","state","ignoreEmulatedMouseEvents","pointerType","target","triggerHoverStart","event","currentState","currentTarget","contains","ownerDocument","document","getOwnerDocument","t","o","r","Element","tagName","assignedSlot","parentNode","host","nodeContains","triggerHoverEnd","capture","hoverProps","useMemo","onMouseLeave","onMouseEnter","onTouchStart","onPointerLeave","onPointerEnter","PointerEvent","DisabledContext","createContext","useDisabledFlags","useContext","useDisabled","defaultFallback","useDisabledProps","extraProps","onClick","onChange","disabled","DisabledProvider","value","children","createElement","Provider"],"mappings":";;;;;;;;gJAiDA,CAASA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBC,CAAyI,CAAA,CAAA,CAAA,CAAA,CAAIC,CAE/JC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBC,CACxB,CAAA,CAAA,CAACC,CAA0BC,CAAAA,CAAAA,CAAcC,CAA8CC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrF,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,CAAOD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwBA,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5D,IAAIC,CACFX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBY,CAAQC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAON,CAC9BA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA8BI,CACjC,CAAA,CAAA,CACAJ,CAEJP,CAAAA,CAAAA,CAAgBY,CAAQE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIP,CAAU,CAAA,CAAED,CAAMD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaG,YAC3DH,CAAYU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBT,CAAMG,CAAAA,CAAAA,CAAiBD,CAAAA,CAAAA,CAAAA,CAAAA,CAEtD,CAGIQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBZ,CAC3B,CAAA,CAAA,CAACC,CAA0BC,CAAAA,CAAAA,CAAcC,CAA8CC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrF,CAAMS,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBjB,EAAgBY,CAAQM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIX,CAC7CY,CAAAA,CAAAA,CAAAA,CAAKF,CAAgBT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASE,CAAOO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeE,CAAKZ,CAAAA,CAAAA,CAAAA,CAE/DF,CAAYe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBd,CAAMa,CAAAA,CAAAA,CAAqBX,CAC3DR,CAAAA,CAAAA,CAAAA,CAAgBY,QAAQC,CAAON,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAGIc,CAA2BjB,CAAAA,CAAAA,CAAAA,CAAY,CAC3CJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBY,CAAQU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAGhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMD,CAAaG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoGD,CACxJF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYe,oBAAoBd,CAAMC,CAAAA,CAAAA,CAA2BC,MAEnER,CAAgBY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQW,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5B,CAMH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CACD,CAAMH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACZ,CAACA,CAAAA,CAAAA,CAAAA,CAEG,CAAElB,CAAmBa,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,CAAsBK,CACpD,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,CC1FA,CAASI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkE,CAAWA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiBA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAaA,GAAG,CAAiBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAzJC,CAAEF,CAAAA,CAAAA,CAAAA,CAAIA,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWE,CAAKC,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,CAAwB,CAASJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAC,CC2CxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASK,CAASC,CAAAA,CAAAA,CAAAA,CACvB,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAaC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAeJ,CAAAA,CAAAA,CAAAA,CAAAA,CAEzDK,CAAWC,CAAAA,CAAAA,CAAAA,CAAcC,CAAS,CAAA,CAAA,CAAA,CAAA,CACnCC,CAAQtC,CAAAA,CAAAA,CAKX,CACDmC,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACXI,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,CAC3BC,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACbC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGJvC,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBkB,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,CAA6BtB,CAElD4C,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBvC,CACxB,CAAA,CAAA,CAACwC,EAAYH,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMI,CAAeN,CAAAA,CAAAA,CAAM3B,CAC3BiC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaJ,CAAcA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGzBN,CACAM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAI,CAAAA,CAAAA,CAAAA,CAAAA,CAAaT,CACZQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAME,CAAcC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASH,EAAMF,CAKtCG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaT,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzBS,CAAaH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASE,CAAME,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE5B3C,CD9E4YsB,CAAAA,CAAAA,CAAGA,CAAAA,CAAAA,CAAAA,CAAAA,CAAGuB,CAAeC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CC+E/ZC,CAAiBN,CAAAA,CAAMF,QACvB,CACCf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEGkB,CAAaT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACbS,CAAaH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CDpFsJ,CAAWf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEwB,CAAEC,CAAAA,CAAAA,CAAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIzB,CAAIwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,IAAIC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOzB,CAAEoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASI,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIE,CAAEF,CAAAA,CAAAA,CAAE,CAAKE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAC,CAAA,CAAA,CAAGA,CAAI1B,CAAAA,CAAAA,CAAAA,CAAAA,CAAE,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG0B,EAAEA,CAAaC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAASD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEE,CAASF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEG,CAAaH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEG,CAAaC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWhC,CAAE4B,CAAAA,CAAAA,CAAAA,CAAGA,CAAEK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKL,CAAEI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAC,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CCqF9XE,CAAad,CAAaH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQf,CAAEe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAErCkB,CAAgBjC,CAAAA,CAAAA,CAAGA,CAAEc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAGpC,CAAA,CAAA,CAAEoB,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGb7B,CAAe,CAAA,CAAA,CAAA,CACb1B,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACNoC,CAAQE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAME,CACdL,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,CAGFR,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChBI,CAAW,CAAA,CAAA,CAAA,CAAA,CACb,CACA,CAAA,CAAA,CAACF,CAAYH,CAAAA,CAAAA,CAAcC,EAAe9B,CAGtCyD,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBxD,CACtB,CAAA,CAAA,CAACwC,CAAYH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACX,CAAMI,CAAAA,CAAAA,CAAAA,CAAAA,CAAeN,CAAM3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEP,CAAhB6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA4BI,CAAaT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcS,CAAaH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIxEG,EAAaT,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzBS,CAAaJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAC3BI,CAAAA,CAAAA,CAAAA,CAAaH,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEtBrB,CAEAa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CACX5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CACNoC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQE,CAAME,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdL,gBAGFR,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChBI,CAAW,CAAA,CAAA,CAAA,CAAA,CACb,CACA,CAAA,CAAA,CAACH,CAAYD,CAAAA,CAAAA,CAAeZ,CAGxByC,CAAAA,CAAAA,CAAAA,CAAAA,CAAaC,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzB,CAAMhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,CAC3BiC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,OACdC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACdC,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACdC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChBC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAiClB,CA9BI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CACTtC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqC,CAAkBzC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEtBgB,CAAkBhB,CAAAA,CAAAA,CAAGA,EAAEc,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACAV,CAAMoC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBxC,CAChBQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcR,CAAEmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcC,CAASpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEe,CAC5CkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBjC,CAAGA,CAAAA,CAAAA,CAAEc,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAIpCV,EAAMmC,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnB3B,CAAM3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ4B,CAA4B,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,CAE5CT,CAAAA,CAAAA,CAAMkC,CAAgBtC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAElBY,CAAO3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ4B,CAGfG,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,CAAkBhB,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEvBY,EAAM3B,CAAQ4B,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,CAA4B,CAC5C,CAAA,CACAT,CAAMiC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAerC,CACdQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcR,CAAEmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcC,CAASpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEe,CAC5CkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBjC,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEvB,CAGKI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACN,CAACI,CAAAA,CAAYQ,CAAmBiB,CAAAA,CAAAA,CAAAA,CAAAA,CAQnC,CANApC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CACJW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcI,CAAM3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQwB,CAC9BwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAEd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeP,EAAM3B,CAAQ8B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUH,CAAM3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ6B,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEnF,CAACN,CAAAA,CAAYyB,CAET,CAAA,CAAA,CAAA,CAAEE,CAAY1B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvB,CC/JA,CAAA,CAAA,CAAA,CAAIkC,CAAkBC,CAAAA,CAAAA,CAA6B,EAE5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAAWH,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CACxC,CAAA,CAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASI,CACdpE,CAAAA,CAAAA,CAA4B,CAC5BqE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA2B,CAG3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADcF,EAAWH,CAAoB,CAAA,CAAA,CAAA,CAAA,CAChChE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASqE,CACxB,CAEO,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBtE,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWuE,CAA0C,CAAA,CAAE,CAClH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM1C,CAAauC,CAAAA,CAAAA,CAAYpE,GAE/B,CAAOyD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIhC,CAAqC,CAAA,CAAA,CAAA,CAAA,CACpC8C,CAWL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CARI1C,CACFJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CACHA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC+B,CAAvB8C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAyD,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,CAAxBD,EAAWE,CAA0B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEC,CAAU7C,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,CAIdJ,CACN,CAAA,CAAA,CAAA,CAACI,CAAY0C,CAAAA,CAAAA,CAAAA,CAClB,CAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASI,CAAiBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC/BA,EAAKC,CACLA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACLd,CAAgBe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChB,CAAEH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOA,CAAS,CAAA,CAAA,CAAA,CAClBC,CAAAA,CAAAA,CAAAA,CAEJ"}
|
|
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 { getOwnerWindow, getOwnerDocument } from \"@necto/dom\";\nimport { isKeyboardFocusEvent, isVirtualClick } from \"@necto-react/helpers\";\n\nexport type FocusVisibleHandler = (isFocusVisible: boolean) => void;\ninterface GlobalListenerData {\n focus: () => void;\n teardown: () => void;\n}\n\n// this should be modified by other functions\nexport let ignoreFocusEvent = false;\n\n\nlet hasBlurredWindowRecently = false;\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent | null;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\ntype Modality = 'keyboard' | 'pointer' | 'virtual';\nlet changeHandlers = new Set<Handler>();\nlet currentModality: null | Modality = null;\nlet hasEventBeforeFocus = false;\nfunction isValidKey(e: KeyboardEvent) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || (!isMac() && e.altKey) || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\n\nexport let hasSetupGlobalListeners = new Map<Window, GlobalListenerData>();\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = 'keyboard';\n for (let handler of changeHandlers) {\n handler('keyboard', e);\n }\n }\n}\n\nfunction handlePointerEvent(e: Event) {\n const pointerEvent = e as PointerEvent | MouseEvent;\n currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n for (let handler of changeHandlers) {\n handler('pointer', pointerEvent);\n }\n }\n}\n\nfunction handleClickEvent(e: MouseEvent) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = 'virtual';\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document || ignoreFocusEvent || !e.isTrusted) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = 'virtual';\n for (let handler of changeHandlers) {\n handler('virtual', e);\n }\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n if (ignoreFocusEvent) {\n return;\n }\n\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\nfunction setupGlobalFocusEvents(element?: HTMLElement | null) {\n if (\n typeof window === 'undefined' ||\n typeof document === 'undefined'\n ) {\n return;\n }\n\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n\n if (hasSetupGlobalListeners.get(windowObject)) {\n return;\n }\n\n // Store original focus method\n const originalFocus = windowObject.HTMLElement.prototype.focus;\n\n function customFocus(this: HTMLElement, options?: FocusOptions) {\n hasEventBeforeFocus = true;\n return originalFocus.call(this, options);\n }\n\n // Override focus method if not already overridden\n if (windowObject.HTMLElement.prototype.focus !== customFocus) {\n windowObject.HTMLElement.prototype.focus = customFocus;\n }\n\n // Event listener configs\n const docEvents: [string, EventListenerOrEventListenerObject, boolean][] = [\n ['keydown', handleKeyboardEvent as EventListener, true],\n ['keyup', handleKeyboardEvent as EventListener, true],\n ['click', handleClickEvent as EventListener, true],\n ];\n\n const winEvents: [string, EventListenerOrEventListenerObject, boolean][] = [\n ['focus', handleFocusEvent as EventListener, true],\n ['blur', handleWindowBlur, false],\n ];\n\n // Pointer or mouse events\n let pointerEvents: [string, EventListenerOrEventListenerObject, boolean][] = [];\n if (typeof PointerEvent !== 'undefined') {\n pointerEvents = [\n ['pointerdown', handlePointerEvent, true],\n ['pointermove', handlePointerEvent, true],\n ['pointerup', handlePointerEvent, true],\n ];\n } else if (process.env.NODE_ENV === 'test') {\n pointerEvents = [\n ['mousedown', handlePointerEvent, true],\n ['mousemove', handlePointerEvent, true],\n ['mouseup', handlePointerEvent, true],\n ];\n }\n\n // Add all document event listeners\n [...docEvents, ...pointerEvents].forEach(([type, handler, capture]) => {\n documentObject.addEventListener(type, handler, capture);\n });\n\n // Add all window event listeners\n winEvents.forEach(([type, handler, capture]) => {\n windowObject.addEventListener(type, handler, capture);\n });\n\n function teardown() {\n // Restore original focus method\n windowObject.HTMLElement.prototype.focus = originalFocus;\n\n [...docEvents, ...pointerEvents].forEach(([type, handler, capture]) => {\n documentObject.removeEventListener(type, handler, capture);\n });\n\n winEvents.forEach(([type, handler, capture]) => {\n windowObject.removeEventListener(type, handler, capture);\n });\n\n windowObject.removeEventListener('beforeunload', teardown);\n\n hasSetupGlobalListeners.delete(windowObject);\n }\n\n windowObject.addEventListener('beforeunload', teardown, { once: true });\n\n hasSetupGlobalListeners.set(windowObject, { focus: originalFocus, teardown });\n}\n\n\nexport function useFocusVisibleListener(fn: FocusVisibleHandler, deps: ReadonlyArray<any>, opts?: {isTextInput?: boolean}): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n let handler = (modality: Modality, e: HandlerEvent) => {\n // We want to early return for any keyboard events that occur inside text inputs EXCEPT for Tab and Escape\n if (!isKeyboardFocusEvent(!!(opts?.isTextInput), modality, e)) {\n return;\n }\n fn(currentModality !== 'pointer');\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\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(props: FocusRingProps = {}): FocusRingResult {\n let {\n autoFocus = false,\n isTextInput,\n within\n } = props;\n\n let state = useRef({\n isFocused: false,\n isFocusVisible: autoFocus || currentModality !== 'pointer'\n });\n let [isFocused, setFocused] = useState(false);\n let [isFocusVisibleState, setFocusVisible] = useState(() => state.current.isFocused && state.current.isFocusVisible);\n\n let updateState = useCallback(() => setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n\n let onFocusChange = useCallback((isFocused: boolean): void => {\n state.current.isFocused = isFocused;\n setFocused(isFocused);\n updateState();\n }, [updateState]);\n\n useFocusVisibleListener((isFocusVisible) => {\n state.current.isFocusVisible = isFocusVisible;\n updateState();\n }, [], {isTextInput});\n\n let {focusProps} = useFocus({\n isDisabled: within,\n onFocusChange\n });\n\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: onFocusChange\n });\n\n return {\n isFocused,\n isFocusVisible: isFocusVisibleState,\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","ignoreFocusEvent","hasBlurredWindowRecently","changeHandlers","currentModality","hasEventBeforeFocus","hasSetupGlobalListeners","handleKeyboardEvent","metaKey","altKey","ctrlKey","key","handler","handlePointerEvent","handleClickEvent","mozInputSource","isTrusted","E","pointerType","buttons","detail","isVirtualClick","handleFocusEvent","handleWindowBlur","useFocusVisibleListener","deps","opts","setupGlobalFocusEvents","windowObject","getOwnerWindow","element","documentObject","originalFocus","HTMLElement","prototype","focus","customFocus","call","this","docEvents","winEvents","pointerEvents","teardown","PointerEvent","process","env","NODE_ENV","modality","d","c","s","l","u","KeyboardEvent","has","isContentEditable","isKeyboardFocusEvent","isTextInput","add","useFocusRing","autoFocus","within","isFocusVisible","setFocused","useState","isFocusVisibleState","setFocusVisible","updateState","globalIgnoreEmulatedMouseEvents","setGlobalIgnoreEmulatedMouseEvents","setTimeout","useHover","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","ignoreEmulatedMouseEvents","triggerHoverStart","currentState","triggerHoverEnd","hoverProps","onMouseLeave","onMouseEnter","onTouchStart","onPointerLeave","onPointerEnter"],"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");function t(){let t=e.useRef(new
|
|
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:g}=p(),b=e.useCallback((e=>{e.currentTarget.contains(e.target)&&f.current.isFocusWithin&&!e.currentTarget.contains(e.relatedTarget)&&(f.current.isFocusWithin=!1,g(),i&&i(e),d&&d(!1))}),[i,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&&!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}),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)};var b=function(){return function(e){return!(typeof window>"u"||null==window.navigator)&&(window.navigator.userAgentData?.brands.some((t=>e.test(t.brand)))||e.test(window.navigator.userAgent))}(/Android/i)};var E=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),m={Tab:!0,Escape:!0};let T=!1,y=new Set,w=null,h=!1,F=new Map;function L(e){if(h=!0,!(e.metaKey||!g()&&e.altKey||e.ctrlKey||"Control"===e.key||"Shift"===e.key||"Meta"===e.key))for(let t of(w="keyboard",y))t("keyboard",e)}function M(e){if(w="pointer","mousedown"===e.type||"pointerdown"===e.type)for(let t of y)t("pointer",e)}function k(e){(function(e){return!(0!==e.mozInputSource||!e.isTrusted)||(b()&&e.pointerType?"click"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType)})(e)&&(h=!0,w="virtual")}function C(e){if(e.target!==window&&e.target!==document&&e.isTrusted){if(!h&&!T)for(let t of(w="virtual",y))t("virtual",e);h=!1,T=!1}}function x(){h=!1,T=!0}function H(t,n,r){!function(){if("undefined"==typeof window||"undefined"==typeof document)return;let e=d(void 0),t=l(void 0);if(F.get(e))return;let n=e.HTMLElement.prototype.focus;function r(e){return h=!0,n.call(this,e)}e.HTMLElement.prototype.focus!==r&&(e.HTMLElement.prototype.focus=r);let o=[["keydown",L,!0],["keyup",L,!0],["click",k,!0]],u=[["focus",C,!0],["blur",x,!1]],i=[];function s(){e.HTMLElement.prototype.focus=n,[...o,...i].forEach((([e,n,r])=>{t.removeEventListener(e,n,r)})),u.forEach((([t,n,r])=>{e.removeEventListener(t,n,r)})),e.removeEventListener("beforeunload",s),F.delete(e)}"undefined"!=typeof PointerEvent?i=[["pointerdown",M,!0],["pointermove",M,!0],["pointerup",M,!0]]:"test"===process.env.NODE_ENV&&(i=[["mousedown",M,!0],["mousemove",M,!0],["mouseup",M,!0]]),[...o,...i].forEach((([e,n,r])=>{t.addEventListener(e,n,r)})),u.forEach((([t,n,r])=>{e.addEventListener(t,n,r)})),e.addEventListener("beforeunload",s,{once:!0}),F.set(e,{focus:n,teardown:s})}(),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&&!E.has(c.type)||c instanceof i||c instanceof s&&c.isContentEditable)&&"keyboard"===t&&n instanceof a&&!m[n.key])})(!!r?.isTextInput,e,n)&&t("pointer"!==w)};return y.add(e),()=>{y.delete(e)}}),n)}let P=!1;exports.DisabledProvider=function({value:n,children:r}){return e.createElement(t.Provider,{value:n||{}},r)},exports.createSyntheticEvent=o,exports.hasSetupGlobalListeners=F,exports.ignoreFocusEvent=!1,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(t={}){let{autoFocus:n=!1,isTextInput:r,within:o}=t,u=e.useRef({isFocused:!1,isFocusVisible:n||!0}),[i,s]=e.useState(!1),[a,c]=e.useState((()=>u.current.isFocused&&u.current.isFocusVisible)),l=e.useCallback((()=>c(u.current.isFocused&&u.current.isFocusVisible)),[]),d=e.useCallback((e=>{u.current.isFocused=e,s(e),l()}),[l]);H((e=>{u.current.isFocusVisible=e,l()}),[],{isTextInput:r});let{focusProps:p}=f({isDisabled:o,onFocusChange:d}),{focusWithinProps:g}=v({isDisabled:!o,onFocusWithinChange:d});return{isFocused:i,isFocusVisible:a,focusProps:o?g:p}},exports.useFocusVisibleListener=H,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}),{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&&!s(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: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/useGlobalListeners.ts","../../necto-dom/dist/index.mjs","../src/useDisabled.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 * 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 };","function n(n){return e(n)&&n.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&\"host\"in n}function e(n){return null!==n&&\"object\"==typeof n&&\"nodeType\"in n&&\"number\"==typeof n.nodeType}function t(e,t,o=!0){if(!e||!t)return!1;if(!o)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:n(r)?r.host:r.parentNode}return!1}var o=n=>n?.ownerDocument??document,r=n=>{if(n&&\"window\"in n&&n.window===n)return n;return o(n).defaultView||window};export{o as getOwnerDocument,r as getOwnerWindow,e as isNode,t 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 */\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 * 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}\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\nfunction 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":["useGlobalListeners","globalListeners","useRef","Map","addGlobalListener","useCallback","eventTarget","type","listener","options","wrappedListener","once","args","current","delete","set","addEventListener","removeGlobalListener","storedListener","get","fn","removeEventListener","removeAllGlobalListeners","forEach","clear","useEffect","n","nodeType","e","Node","DOCUMENT_FRAGMENT_NODE","DisabledContext","createContext","useDisabled","defaultFallback","useContext","value","children","createElement","Provider","extraProps","isDisabled","useMemo","props","onClick","onChange","disabled","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","useState","state","ignoreEmulatedMouseEvents","pointerType","target","triggerHoverStart","event","currentState","currentTarget","contains","ownerDocument","document","getOwnerDocument","t","o","r","Element","tagName","assignedSlot","parentNode","host","nodeContains","triggerHoverEnd","capture","hoverProps","onMouseLeave","onMouseEnter","onTouchStart","onPointerLeave","onPointerEnter","PointerEvent"],"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 { getOwnerWindow, getOwnerDocument } from \"@necto/dom\";\nimport { isKeyboardFocusEvent, isVirtualClick } from \"@necto-react/helpers\";\n\nexport type FocusVisibleHandler = (isFocusVisible: boolean) => void;\ninterface GlobalListenerData {\n focus: () => void;\n teardown: () => void;\n}\n\n// this should be modified by other functions\nexport let ignoreFocusEvent = false;\n\n\nlet hasBlurredWindowRecently = false;\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent | null;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\ntype Modality = 'keyboard' | 'pointer' | 'virtual';\nlet changeHandlers = new Set<Handler>();\nlet currentModality: null | Modality = null;\nlet hasEventBeforeFocus = false;\nfunction isValidKey(e: KeyboardEvent) {\n // Control and Shift keys trigger when navigating back to the tab with keyboard.\n return !(e.metaKey || (!isMac() && e.altKey) || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\n\nexport let hasSetupGlobalListeners = new Map<Window, GlobalListenerData>();\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = 'keyboard';\n for (let handler of changeHandlers) {\n handler('keyboard', e);\n }\n }\n}\n\nfunction handlePointerEvent(e: Event) {\n const pointerEvent = e as PointerEvent | MouseEvent;\n currentModality = 'pointer';\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n for (let handler of changeHandlers) {\n handler('pointer', pointerEvent);\n }\n }\n}\n\nfunction handleClickEvent(e: MouseEvent) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = 'virtual';\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document || ignoreFocusEvent || !e.isTrusted) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = 'virtual';\n for (let handler of changeHandlers) {\n handler('virtual', e);\n }\n }\n\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\n\nfunction handleWindowBlur() {\n if (ignoreFocusEvent) {\n return;\n }\n\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\n\nfunction setupGlobalFocusEvents(element?: HTMLElement | null) {\n if (\n typeof window === 'undefined' ||\n typeof document === 'undefined'\n ) {\n return;\n }\n\n const windowObject = getOwnerWindow(element);\n const documentObject = getOwnerDocument(element);\n\n if (hasSetupGlobalListeners.get(windowObject)) {\n return;\n }\n\n // Store original focus method\n const originalFocus = windowObject.HTMLElement.prototype.focus;\n\n function customFocus(this: HTMLElement, options?: FocusOptions) {\n hasEventBeforeFocus = true;\n return originalFocus.call(this, options);\n }\n\n // Override focus method if not already overridden\n if (windowObject.HTMLElement.prototype.focus !== customFocus) {\n windowObject.HTMLElement.prototype.focus = customFocus;\n }\n\n // Event listener configs\n const docEvents: [string, EventListenerOrEventListenerObject, boolean][] = [\n ['keydown', handleKeyboardEvent as EventListener, true],\n ['keyup', handleKeyboardEvent as EventListener, true],\n ['click', handleClickEvent as EventListener, true],\n ];\n\n const winEvents: [string, EventListenerOrEventListenerObject, boolean][] = [\n ['focus', handleFocusEvent as EventListener, true],\n ['blur', handleWindowBlur, false],\n ];\n\n // Pointer or mouse events\n let pointerEvents: [string, EventListenerOrEventListenerObject, boolean][] = [];\n if (typeof PointerEvent !== 'undefined') {\n pointerEvents = [\n ['pointerdown', handlePointerEvent, true],\n ['pointermove', handlePointerEvent, true],\n ['pointerup', handlePointerEvent, true],\n ];\n } else if (process.env.NODE_ENV === 'test') {\n pointerEvents = [\n ['mousedown', handlePointerEvent, true],\n ['mousemove', handlePointerEvent, true],\n ['mouseup', handlePointerEvent, true],\n ];\n }\n\n // Add all document event listeners\n [...docEvents, ...pointerEvents].forEach(([type, handler, capture]) => {\n documentObject.addEventListener(type, handler, capture);\n });\n\n // Add all window event listeners\n winEvents.forEach(([type, handler, capture]) => {\n windowObject.addEventListener(type, handler, capture);\n });\n\n function teardown() {\n // Restore original focus method\n windowObject.HTMLElement.prototype.focus = originalFocus;\n\n [...docEvents, ...pointerEvents].forEach(([type, handler, capture]) => {\n documentObject.removeEventListener(type, handler, capture);\n });\n\n winEvents.forEach(([type, handler, capture]) => {\n windowObject.removeEventListener(type, handler, capture);\n });\n\n windowObject.removeEventListener('beforeunload', teardown);\n\n hasSetupGlobalListeners.delete(windowObject);\n }\n\n windowObject.addEventListener('beforeunload', teardown, { once: true });\n\n hasSetupGlobalListeners.set(windowObject, { focus: originalFocus, teardown });\n}\n\n\nexport function useFocusVisibleListener(fn: FocusVisibleHandler, deps: ReadonlyArray<any>, opts?: {isTextInput?: boolean}): void {\n setupGlobalFocusEvents();\n\n useEffect(() => {\n let handler = (modality: Modality, e: HandlerEvent) => {\n // We want to early return for any keyboard events that occur inside text inputs EXCEPT for Tab and Escape\n if (!isKeyboardFocusEvent(!!(opts?.isTextInput), modality, e)) {\n return;\n }\n fn(currentModality !== 'pointer');\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\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(props: FocusRingProps = {}): FocusRingResult {\n let {\n autoFocus = false,\n isTextInput,\n within\n } = props;\n\n let state = useRef({\n isFocused: false,\n isFocusVisible: autoFocus || currentModality !== 'pointer'\n });\n let [isFocused, setFocused] = useState(false);\n let [isFocusVisibleState, setFocusVisible] = useState(() => state.current.isFocused && state.current.isFocusVisible);\n\n let updateState = useCallback(() => setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n\n let onFocusChange = useCallback((isFocused: boolean): void => {\n state.current.isFocused = isFocused;\n setFocused(isFocused);\n updateState();\n }, [updateState]);\n\n useFocusVisibleListener((isFocusVisible) => {\n state.current.isFocusVisible = isFocusVisible;\n updateState();\n }, [], {isTextInput});\n\n let {focusProps} = useFocus({\n isDisabled: within,\n onFocusChange\n });\n\n let {focusWithinProps} = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: onFocusChange\n });\n\n return {\n isFocused,\n isFocusVisible: isFocusVisibleState,\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","hasBlurredWindowRecently","changeHandlers","currentModality","hasEventBeforeFocus","hasSetupGlobalListeners","handleKeyboardEvent","metaKey","altKey","ctrlKey","key","handler","handlePointerEvent","handleClickEvent","mozInputSource","isTrusted","E","pointerType","buttons","detail","isVirtualClick","handleFocusEvent","handleWindowBlur","useFocusVisibleListener","deps","opts","setupGlobalFocusEvents","windowObject","getOwnerWindow","element","documentObject","originalFocus","HTMLElement","prototype","focus","customFocus","call","this","docEvents","winEvents","pointerEvents","teardown","PointerEvent","process","env","NODE_ENV","modality","d","c","s","l","u","KeyboardEvent","has","isContentEditable","isKeyboardFocusEvent","isTextInput","add","globalIgnoreEmulatedMouseEvents","children","createElement","Provider","setTimeout","extraProps","useMemo","onClick","onChange","autoFocus","within","isFocusVisible","setFocused","useState","isFocusVisibleState","setFocusVisible","updateState","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","ignoreEmulatedMouseEvents","triggerHoverStart","currentState","triggerHoverEnd","hoverProps","onMouseLeave","onMouseEnter","onTouchStart","onPointerLeave","onPointerEnter"],"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,CAA2B,CAAA,CAAA,CAAA,CAAA,CAG3B,CADcC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,WAAWL,CAAoB,CAAA,CAAA,CAAA,CAAA,CAChCG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CACxB,CCrBO,SAASE,CAAkDC,CAAAA,CAAAA,CAAAA,CAChE,IAAMC,CAAQC,CAAAA,CAAAA,CAAAA,OAAOF,CAUrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAPqB,CAAbG,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,CAA2BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,SACnD,CACEH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMI,CAAUL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAElB,CAAA,CAAA,CAACA,IAGIM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfN,CAAMI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWE,IACjB,CACX,CAAA,CAAA,CCAO,SAASC,CAA+CC,CAAAA,CAAAA,CAAAA,CAM7D,OALcA,CACRA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcA,CACpBC,CAAAA,CAAAA,CAAMC,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAFbF,EAEyBG,CAFzBH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGRI,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMJ,CAAeK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClDJ,EAAMK,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJFN,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,WAAW,CACXC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAIZhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,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,CACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACDgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMD,WACRC,CAAMD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASE,CACfD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMD,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAErB,CAAA,CACC,CAAA,CAAA,CAAA,CAAA,CAAA,CAGH,IAAMG,CAAexB,CAAAA,CAAAA,CAAAA,CAAgByB,IACnCP,CAASO,CAAAA,CAAAA,CAAAA,CAAAA,CACX,CAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYkB,IACjB,CACEA,CAAAA,CAAAA,CAAAA,CAAEC,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,kBACpBH,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBG,CACpBJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEC,CAAkBI,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,CACpB,CACAX,CAASb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQc,WAAY,CAE7B,CAAA,CAAA,CAAA,CAAA,CAAMM,EAASD,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAkBjBA,CAAOK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAjBmCpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzDQ,EAASb,CAAQc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAEzBM,CAAAA,CAAAA,CAAOM,CAGTR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CADuBf,EAA8CE,CAKnEQ,CAAAA,CAAAA,CAAAA,CAAAA,CAASb,CAAQe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnBF,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,QAAQe,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAKmB,CAAEY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAG3Dd,CAAAA,CAAAA,CAAAA,CAAAA,CAASb,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,CAASb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQe,CAAUE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC3B,IAAMY,CAAkBT,CAAAA,CAAAA,CAAAA,CAAAA,CAAWtB,CAASgC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAOhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASgC,cAC5EV,CAAOW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEC,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,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAEE,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMD,CAAeJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClF,CAIFhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASb,QAAQe,CAASoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQf,EAAQ,CAAEgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,EAAMC,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAClF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACC,CAACnB,CAAAA,CAAAA,CACN,CChHA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkE,CAAWA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,OAAO,CAAOA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAiBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAaA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,iBAAiBA,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,CAAwB,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,CAAStB,CAAC,CAAgG,SAASuB,CAAEH,CAAAA,CAAAA,CAAEG,CAAEC,CAAAA,CAAAA,CAAAA,CAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIJ,IAAIG,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAIC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOJ,EAAEK,CAASF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,IAAIG,CAAEH,CAAAA,CAAAA,CAAE,KAAKG,CAAG,CAAA,CAAA,CAAC,CAAGA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIN,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,EAAGM,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaC,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASD,CAAEE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASF,EAAEG,CAAaH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEG,CAAaC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW9B,CAAE0B,CAAAA,CAAAA,CAAAA,CAAGA,EAAEK,CAAKL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEI,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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,CAAOpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEW,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIY,EAAEvB,CAAEW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAKY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAeA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAGA,EAAES,CAAYrB,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,CAAeY,EAAEA,CAAES,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWrB,cAAc,CAAOY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASG,CAAE1B,CAAAA,CAAAA,CAAEoB,GAAE,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAGpB,CAAAA,CAAAA,CAAAA,CAAEC,CAAO+B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYhC,EAAEiC,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,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC,CAAIiC,CAAAA,CAAAA,CAAAA,CAAAA,CAAElC,GAAGA,CAAGmC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAexD,SAASyD,CAAEpC,CAAAA,CAAAA,CAAAA,CAAOA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWA,CAAGA,CAAAA,CAAAA,CAAAA,CAAEqC,SAASrC,CAASA,CAAAA,CAAAA,CAASkC,CAAElC,CAAAA,CAAAA,CAAAA,CAAGsC,CAAaD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CC8B3vB,SAASE,CAA6DC,CAAAA,CAAAA,CAAAA,CAC3E,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,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,EAAoBhE,CACxBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAACa,CAAAA,CAAoBK,CACfL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACFgD,IAAc3C,CACd6C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAEhBD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa5C,CACb6C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,GAEpB,CACA,CAAA,CAAA,CAACF,CAAaC,CAAAA,CAAAA,CAAYC,CAItBpD,CAAAA,CAAAA,CAAAA,CAAAA,CAASX,GACbkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACMA,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,GAAkB,CAAO9C,CAAAA,CAAAA,EAG7B,CAAA,CAAA,CAAC8C,CAIGE,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBxD,EAA8BC,CAGjDiD,CAAAA,CAAAA,CAAAA,CAAU5D,eACbkB,CACC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMmC,EAAgBc,CAAiBjD,CAAAA,CAAAA,CAAEC,CACnCU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBwB,CAAgBe,CAAAA,CAAAA,CAAiBf,GAAiBe,CACpElD,CAAAA,CAAAA,CAAAA,CAAAA,CAAEC,SAAWD,CAAE+C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBpC,IAAkBwC,CAAenD,CAAAA,CAAAA,CAAEf,CACrE6D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,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,CAAa,CAAA,CAAA,CAAK,CAAA,CAAEC,UAASjD,CAGvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CC9BA,SAAS4D,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAAkB5E,CAAyIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAI6E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE/JC,CAAoB1E,CAAAA,CAAAA,CAAAA,aACxB,CAAC2E,CAAAA,CAA0BrF,CAAcsF,CAAAA,CAAAA,CAA8CC,CACrF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAAkB,CAAOD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwBA,CAASnD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5D,CAAIzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACFuE,EAAgBzE,CAAQgF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOH,GAC9BA,CAA8B3E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjC,EACA2E,CAEJJ,CAAAA,CAAAA,CAAgBzE,CAAQiF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIJ,CAAU,CAAA,CAAEtF,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,CAAAA,CAC3DF,CAAYnD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBlC,CAAMwF,CAAAA,CAAAA,CAAiBD,EAAAA,CAEtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAGII,CAAuBjF,CAAAA,CAAAA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC2E,EAA0BrF,CAAcsF,CAAAA,CAAAA,CAA8CC,KACrF,CAAMK,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBV,EAAgBzE,CAAQoF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIP,CAC7ClF,CAAAA,CAAAA,CAAAA,CAAKwF,CAAgBL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASnD,KAAOwD,CAAexF,CAAAA,CAAAA,CAAAA,CAAKkF,CAE/DD,CAAAA,CAAAA,CAAYS,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,CAAQgF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOH,CAAAA,CAAAA,CAAAA,CAAAA,CAEjC,IAGIS,CAA2BrF,CAAAA,CAAAA,CAAAA,aAAY,CAC3CwE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBzE,QAAQuF,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGhG,CAAMqF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaE,CAAoGD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxJD,EAAYS,CAAoB9F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMsF,CAA2BC,CAAAA,CAAAA,EAEnEL,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBzE,QAAQwF,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5B,CAMH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,IACD,CAAMH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACZ,CAACA,CAEG,CAAA,CAAA,CAAA,CAAEX,oBAAmBO,CAAsBI,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,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpD,CCxDO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASI,CAAe/B,CAAAA,CAAAA,CAAAA,CAC7B,IAAIC,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU+B,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaC,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYC,oBAAEA,CAAwBlC,CAAAA,CAAAA,CAAAA,CACnE3C,CAAQnB,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEiG,eAAe,CAChCnB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,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,CAA6Bd,IAElD5D,CAASX,CAAAA,CAAAA,CAAAA,CAAaI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnBA,CAAM6D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAActB,SAASvC,CAAMe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEpCJ,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ8F,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,CAAavF,CAAAA,CAAAA,CAAAA,CAC3BwF,CAAqBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,GAEjD,CAAG,CAAA,CAAA,CAACD,CAAcC,CAAAA,CAAAA,CAAqB7E,CAAOsE,CAAAA,CAAAA,CAAAA,CAAAA,CAE1CnB,EAAmBxD,CAAsBC,CAAAA,CAAAA,CAAAA,CACzCiD,CAAU5D,CAAAA,CAAAA,CAAAA,CAAaI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzB,IAAKA,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,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEjD,IAAMkC,CAAgBc,CAAAA,CAAAA,CAAiB/D,EAAMe,CACvCU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBuC,EAAiBf,CAEvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKtC,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ8F,CAAiBhE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBwC,EAAejE,CAAMD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAClFuF,CAAAA,CAAAA,CAAeA,CAActF,CAAAA,CAAAA,CAAAA,CAC7BwF,GAAqBA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAE7C7E,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ8F,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,EAAkBrB,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASnC,CACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIH,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ8F,gBAAkBC,CAAa7B,CAAAA,CAAAA,CAAe/C,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CACpF,CAAA,CAAA,CAAA,CAAIhB,EAAc,CAAIkD,CAAAA,CAAAA,CAAAA,CAAAA,CAAcG,CAAazB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACC,cAAed,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtF4E,OAAOC,CAAe7F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,SAAU,CAAC8F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOhC,CACrD8B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAe7F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,gBAAiB,CAAC8F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOhC,CAE5DtD,CAAAA,CAAAA,CAAAA,CAAAA,CADYT,CAAsCC,CAAAA,CAAAA,CAAAA,CAEpD,IACC,CAAC+F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAACR,CAAAA,CAAeE,EAAqB1B,CAAkBQ,CAAAA,CAAAA,CAAmB/D,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAErFgD,CACS,CAAA,CACLwC,iBAAkB,CAChBvC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASwC,CACTzF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQyF,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,CACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc/C,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmC,MAApBA,CAAOgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE3CD,EAAGE,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,CAAOgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUG,CAE9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGSC,CAAa,CACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,+MCjBwP,IAAIC,CAAE,CAAA,CAAA,CAAA,CAAA,CAAIC,CAAI,CAAA,CAAA,CAAA,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,UAAUC,CAAE,CAAA,CAACC,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGC,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CC2B/V,IAGHC,CAA2B,CAAA,CAAA,CAAA,CAI3BC,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAIL,CACrBM,CAAAA,CAAAA,CAAAA,CAAAA,CAAmC,KACnCC,CAAsB,CAAA,CAAA,CAAA,CAMfC,CAA0B,CAAA,CAAA,CAAA,CAAA,CAAI5C,CAEzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS6C,EAAoBpG,CAE3B,CAAA,CAAA,CAAA,CAAA,CADAkG,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CANblG,CAAEqG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAalB,KAOTnF,CAPsBsG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAOtBtG,CAPmCuG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB,CAOxDvG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAPgDwG,KAA+B,CAO/ExG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAPuEwG,CAA6B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAOpGxG,CAP4FwG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CASzG,IAAK,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CADTR,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACED,CAClBS,CAAAA,CAAAA,CAAAA,CAAQ,WAAYzG,CAG1B,CAAA,CAEA,SAAS0G,CAAmB1G,CAAAA,CAAAA,CAAAA,CAG1B,GADAiG,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH,CAAXjG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE5B,CAAwB4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAE5B,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAIqI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWT,CAClBS,CAAAA,CAAAA,CAAQ,UAJSzG,CAOvB,CAAA,CAEA,CAAS2G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB3G,CDhEkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWA,GAAG,CAA0B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnBA,EAAE4G,CAAoB5G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE6G,aAAaC,CAAK9G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE+G,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAT/G,CAAE5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA4B,IAAZ4B,CAAEgH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,CAAXhH,CAAAA,CAAAA,CAAAA,CAAAA,CAAEiH,CAAajH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE+G,YAAW,CCiE/KG,CAAAA,CAAelH,CACjBkG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsB,CACtBD,CAAAA,CAAAA,CAAkB,UAEtB,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASkB,EAAiBnH,CAIxB,CAAA,CAAA,CAAA,CAAA,CAAIA,EAAEC,CAAWoC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUrC,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWtB,CAAiCqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE6G,UAM3E,CAAA,CAAA,CAAA,CAAA,CAAKX,CAAwBH,CAAAA,CAAAA,CAAAA,CAAAA,CAE3B,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIU,KADTR,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACED,CAClBS,CAAAA,CAAAA,CAAAA,CAAQ,CAAWzG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIvBkG,GAAsB,CACtBH,CAAAA,CAAAA,CAAAA,CAA2B,CAC7B,CAAA,CAEA,SAASqB,CAOPlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsB,CACtBH,CAAAA,CAAAA,CAAAA,CAA2B,CAC7B,CA2FO,SAASsB,CAAwB7I,CAAAA,CAAAA,CAAyB8I,CAA0BC,CAAAA,CAAAA,CAAAA,CAAAA,CACzFC,CAzFA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACoB,oBAAXnF,CACa,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,CAAb1D,CAEP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGF,CAAM8I,CAAAA,CAAAA,CAAAA,CAAAA,CAAeC,OARSC,CASxBC,CAAAA,CAAAA,CAAAA,CAAiB3E,OATO0E,CAW9B,CAAA,CAAA,CAAA,CAAA,CAAIxB,EAAwBlC,CAAIwD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9B,CAIF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMI,CAAgBJ,CAAAA,CAAAA,CAAaK,YAAYC,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEzD,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA+BtE,CAEtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAuC,GAAsB,CACf2B,CAAAA,CAAAA,CAAcK,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMxE,CAClC,CAAA,CAGI8D,EAAaK,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,QAAUC,CAC/CR,CAAAA,CAAAA,CAAAA,CAAAA,CAAaK,YAAYC,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQC,CAI7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMG,CAAqE,CAAA,CACzE,CAAC,CAAWhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsC,CAClD,CAAA,CAAA,CAAC,CAASA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsC,GAChD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASO,CAAmC,CAAA,CAAA,CAAA,CAAA,CAAA,CAGzC0B,CAAqE,CAAA,CACzE,CAAC,CAASlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmC,GAC7C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQC,GAAkB,CAIzBkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAyE,CAyB7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAEPd,CAAAA,CAAAA,CAAAA,CAAAA,CAAaK,YAAYC,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQH,CAE3C,CAAA,CAAA,CAAA,CAAA,CAAIO,CAAcE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAelE,SAAQ,CAAEhG,CAAAA,CAAAA,CAAMqI,CAASzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxD4C,CAAe1D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB9F,EAAMqI,CAASzB,CAAAA,CAAAA,CACpD,CAEAqD,CAAAA,CAAAA,CAAAA,CAAAA,CAAUjE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEhG,EAAMqI,CAASzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjCyC,CAAavD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB9F,CAAMqI,CAAAA,CAAAA,CAASzB,EAClD,CAEAyC,CAAAA,CAAAA,CAAAA,CAAAA,CAAavD,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,CAAA,CAAA,CAAA,CAAgBqE,CAEjDpC,CAAAA,CAAAA,CAAAA,CAAwBtC,OAAO4D,CACjC,CAAA,CAvCI,CAAOe,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,CACTF,CAAgB,CAAA,CACd,CAAC,CAAe5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,GACpC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAeA,GAAoB,CACpC,CAAA,CAAA,CAAC,CAAaA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CAE3B+B,CAAAA,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,CAAAA,CACrBL,CAAgB,CAAA,CACd,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa5B,GAAoB,CAClC,CAAA,CAAA,CAAC,CAAaA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CAClC,CAAA,CAAA,CAAC,UAAWA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKpC,IAAI0B,CAAcE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAelE,SAAQ,CAAEhG,CAAAA,CAAAA,CAAMqI,CAASzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxD4C,CAAetH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBlC,EAAMqI,CAASzB,CAAAA,CAAAA,CACjD,CAGAqD,CAAAA,CAAAA,CAAAA,CAAAA,CAAUjE,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAEhG,EAAMqI,CAASzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjCyC,CAAanH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBlC,CAAMqI,CAAAA,CAAAA,CAASzB,GAoB/CyC,CAAAA,CAAAA,CAAAA,CAAAA,CAAanH,iBAAiB,CAAgBiI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAE/H,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEhE2F,CAAwBrC,CAAAA,CAAAA,CAAAA,CAAAA,CAAI2D,CAAc,CAAA,CAAEO,MAAOH,CAAeU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpE,CAIEf,CAAAA,CAAAA,CAEAlD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,KACR,CAAImC,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAACmC,CAAAA,CAAoB5I,CDpMmU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWA,EAAE0B,CAAEN,CAAAA,CAAAA,CAAAA,CAAG,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAWA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKA,EAAEnB,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAG,CAAA,CAAA,CAAA,CAAA,CAAImC,CAAEyG,CAAAA,CAAAA,CAAEzH,EAAEnB,CAAQuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEsH,CAAE1H,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,CAAiBA,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,CAAiB4I,CAAS1G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,IAAIb,CAAEpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBA,oBAAoB4I,CAAS3G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,IAAIb,CAAEsG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYA,CAAYmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS5G,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIb,EAAE0H,CAAcA,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,CAAc3H,CAAEa,CAAAA,CAAAA,CAAEzB,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOX,EAAEA,CAAGuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaW,CAAIwD,CAAAA,CAAAA,CAAAA,CAAAA,CAAEyD,CAAI5H,CAAAA,CAAAA,CAAAA,CAAAA,CAAEnD,OAAOmD,CAAawH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAGxH,aAAayH,CAAGzH,CAAAA,CAAAA,CAAAA,CAAE6H,oBAA2B,CAAJ1H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBN,CAAa6H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAIrD,CAAExE,CAAAA,CAAAA,CAAEoF,KAAK,CCsMnzB6C,CAAAA,CAAAA,CAAAA,CAAwB9B,CAAM+B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcV,CAAU5I,CAAAA,CAAAA,CAAAA,CAAAA,CAG3DxB,EAAGyH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAGL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAD,CAAeuD,CAAAA,CAAAA,CAAAA,CAAAA,CAAI9C,GACZ,CACLT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAenC,OAAO4C,CAAAA,CAAAA,CACxB,GAECa,CACL,CAAA,CC9KA,CAAIkC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkC,2BVoB/B,CAA0BzE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC/BA,CAAK0E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACLA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,EAAAA,CACLzL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB0L,CAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE5E,CAAOA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAClB0E,CAAAA,CAAAA,CAAAA,CAEJ,6FSrC8B,6CCWvB,CACLD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkC,CAElCI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CACTJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkC,CAAA,CACjC,CAAA,CAAA,CAAA,CAAA,CACL,iCVrBO,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,OAAOlL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWL,IAAoB,CACxC,CAAA,WAUO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0BG,EAA4B,CAAWyL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA0C,CAAE,CAAA,CAAA,CAClH,CAAMpH,CAAAA,CAAAA,CAAAA,CAAAA,CAAatE,EAAYC,CAE/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO0L,WAAQ,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAItH,EAAqC,CACpCqH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAWL,OARIpH,CACFD,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,IACHA,CAC+B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAvBqH,CAAWE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyD,CAAxBF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWG,SAA0B,CAAEzJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUkC,CAAe,CAAA,CAAA,CAAE,CACzH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiBA,IAIdD,CACN,CAAA,CAAA,CAAA,CAACC,CAAYoH,CAAAA,CAAAA,CAAAA,CAClB,mEWhBO,CAAsBrH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,IACnD,CAAIyH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACFA,GAAY,CAAKX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjBA,CAAWY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACXA,CACE1H,CAAAA,CAAAA,CAAAA,CAEA3C,EAAQnB,SAAO,CACjBiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CACXwK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBF,IAAahE,CAE1BtG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWyK,CAAcC,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClCC,EAAqBC,CAAmBF,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMxK,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQc,WAAaE,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQsL,CAEjGK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc1L,eAAY,IAAMyL,CAAgB1K,CAAAA,CAAAA,CAAMhB,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,CAAQsL,iBAAiB,CAE1GtH,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB/D,EAAYA,CAACa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC/BE,EAAMhB,CAAQc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYA,CAC1ByK,CAAAA,CAAAA,CAAWzK,CACX6K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GACC,CAACA,CAAAA,CAAAA,CAAAA,CAEJnD,CAAwB8C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtBtK,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQsL,eAAiBA,CAC/BK,CAAAA,CAAAA,CAAAA,CACF,CAAG,CAAA,CAAA,CAAA,CAAA,CAAI,CAAClB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAER,IAAIlG,CAACA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcb,EAAS,CAC1BE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYyH,EACZrH,CAGEoC,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,CAACA,CAAoBV,CAAAA,CAAAA,CAAAA,CAAe,CACtC9B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAayH,EACbxF,CAAqB7B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGvB,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CACLlD,CACAwK,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,CAAgBG,EAChBlH,CAAY8G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASjF,CAAmB7B,CAAAA,CAAAA,CAE5C,mGDjCO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkBZ,CACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMiI,aAAEA,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAaC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAUlI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,GAAeD,CAEzDoI,CAAAA,CAAAA,CAAAA,CAAWC,CAAcR,CAAAA,CAAAA,CAAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnCxK,EAAQnB,CAKXA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CACDkM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CACXE,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,CAA2B,EAC3B/D,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACb9G,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGJuD,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,CAElD0H,CAAoBjM,CAAAA,CAAAA,EACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACI,EAAY6H,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMiE,CAAenL,CAAAA,CAAAA,CAAMhB,CAC3BmM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAajE,YAAcA,CAGzBtE,CAAAA,CAAAA,CAAAA,CAAAA,CACgB,UAAhBsE,CACAiE,CAAAA,CAAAA,CAAAA,CAAAA,CAAaJ,WACZ1L,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,CAKtC+K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaJ,WAAY,CACzBI,CAAAA,CAAAA,CAAa/K,CAASf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM6D,CAE5BS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACEP,EAAiB/D,CAAMe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvB,CACCD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEGgL,CAAaJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACbI,EAAa/K,CACZ2E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaoG,EAAa/K,CAAQD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEC,SAErCgL,CAAgBjL,CAAAA,CAAAA,CAAGA,CAAE+G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEzB,CACA,CAAA,CAAA,CAAE/B,SAAS,CAGbyF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CACbrM,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CACN6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQf,EAAM6D,CACdgE,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,CAGF2D,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChBG,CAAW,CAAA,CAAA,CAAA,CAAA,IAEb,CAACpI,CAAAA,CAAYgI,EAAcC,CAAelH,CAAAA,CAAAA,CAAAA,CAAAA,CAGtCyH,EAAkBnM,eACtB,CAACI,CAAAA,CAAY6H,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMiE,EAAenL,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEP,CAAhBkI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA4BiE,CAAaJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcI,EAAa/K,CAIxE+K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaJ,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzBI,CAAajE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,GAC3BiE,CAAa/K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAEtBkE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEAwG,CAAa,CAAA,CAAA,CAAA,CACXvM,KAAM,CACN6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQf,CAAM6D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdgE,CAGF2D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,GAChBG,CAAW,CAAA,CAAA,CAAA,CAAA,EAEb,CAAA,CAAA,CAACF,CAAYD,CAAAA,CAAAA,CAAevG,IAGxB+G,CAAapB,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzB,CAAMtH,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,CAC3B2I,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACdC,aAAc,CACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,OACdC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChBC,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAiClB,CA9B4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAjB/C,cACThG,CAAM+I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBvL,CACjBwJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqD,CAAlBxJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAE+G,aACzCgE,CAAkB/K,CAAAA,CAAAA,CAAGA,CAAE+G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAEpCvE,CAAAA,CAAAA,CAAM8I,eAAiBtL,CAChByC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAczC,EAAE+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,CAC5CgL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBjL,CAAGA,CAAAA,CAAAA,CAAE+G,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAIpCvE,EAAM6I,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnBxL,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQiM,CAA4B,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,EAE5CtI,CAAM4I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAepL,CAEjBH,CAAAA,CAAAA,CAAAA,CAAAA,CAAOhB,CAAQiM,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,CACdtB,GAEDuB,CAAkB/K,CAAAA,CAAAA,CAAG,SAEvBH,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQiM,2BAA4B,GAE5CtI,CAAM2I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAenL,CACdyC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAczC,EAAE+C,CAActB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASzB,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5CgL,CAAgBjL,CAAAA,CAAAA,CAAG,QAEvB,CAGKwC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACN,CAACC,CAAAA,CAAYsI,CAAmBE,CAAAA,CAAAA,CAAAA,CAAAA,CAQnC,OANA3G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CACJ7B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc5C,CAAMhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ+L,WAC9BK,CAAgB,CAAA,CAAElI,CAAelD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMhB,CAAQoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUJ,EAAMhB,CAAQkI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE3E,CAAG,CAAA,CAAA,CAACtE,CAAYwI,CAAAA,CAAAA,CAAAA,CAAAA,CAET,CAAEC,CAAYN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@necto-react/hooks",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Necto's library for providing utility hooks for React applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -29,11 +29,13 @@
|
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"react": "^19.1.0",
|
|
32
|
-
"react-dom": "^19.1.0"
|
|
33
|
-
"@necto-react/types": "2.0.0"
|
|
32
|
+
"react-dom": "^19.1.0"
|
|
34
33
|
},
|
|
35
34
|
"dependencies": {
|
|
36
|
-
"@necto/dom": "1.1.0"
|
|
35
|
+
"@necto/dom": "1.1.0",
|
|
36
|
+
"@necto/platform": "1.1.0",
|
|
37
|
+
"@necto-react/helpers": "2.1.0",
|
|
38
|
+
"@necto-react/types": "2.0.0"
|
|
37
39
|
},
|
|
38
40
|
"scripts": {
|
|
39
41
|
"build": "npm-run-all build:*",
|