@necto-react/hooks 2.7.0 → 2.10.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/LICENSE +1 -1
- package/README.md +19 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +1000 -0
- package/dist/index.d.ts +960 -50
- package/dist/index.global.js +37 -0
- package/dist/index.js +1 -10
- package/package.json +21 -19
- package/dist/index.es.js +0 -10
- package/dist/index.es.js.map +0 -1
- package/dist/index.js.map +0 -1
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) Corinvo, LLC. and affiliates. All rights reserved.
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<a href="https://necto.dev">
|
|
3
|
+
<img alt="Necto Logo" src="https://avatars.githubusercontent.com/u/158605331?s=100&v=4">
|
|
4
|
+
<a>
|
|
5
|
+
|
|
6
|
+
<h2>Necto - React Hooks Library</h2>
|
|
7
|
+
|
|
8
|
+
<p>Necto's library for providing utility hooks for React applications.</p>
|
|
9
|
+
|
|
10
|
+
<a aria-label="Corinvo" href="https://corinvo.github.io">
|
|
11
|
+
<img src="https://img.shields.io/badge/Made%20by-Corinvo-black.svg?style=for-the-badge&color=black">
|
|
12
|
+
</a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/@necto-react/hooks">
|
|
14
|
+
<img alt="NPM version" src="https://img.shields.io/npm/v/@necto-react/hooks.svg?style=for-the-badge">
|
|
15
|
+
</a>
|
|
16
|
+
<a aria-label="License" href="https://github.com/nectoutil/NodeKit/blob/main/LICENSE">
|
|
17
|
+
<img src="https://img.shields.io/badge/License-MIT-97CA25.svg?style=for-the-badge">
|
|
18
|
+
</a>
|
|
19
|
+
</div>
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var nt=Object.create;var ee=Object.defineProperty;var rt=Object.getOwnPropertyDescriptor;var ot=Object.getOwnPropertyNames;var st=Object.getPrototypeOf,ut=Object.prototype.hasOwnProperty;var it=(e,t)=>{for(var n in t)ee(e,n,{get:t[n],enumerable:!0})},he=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ot(t))!ut.call(e,r)&&r!==n&&ee(e,r,{get:()=>t[r],enumerable:!(o=rt(t,r))||o.enumerable});return e};var ct=(e,t,n)=>(n=e!=null?nt(st(e)):{},he(t||!e||!e.__esModule?ee(n,"default",{value:e,enumerable:!0}):n,e)),at=e=>he(ee({},"__esModule",{value:!0}),e);var yt={};it(yt,{getInteractionModality:()=>j,useContextProps:()=>Me,useDisabled:()=>re,useDisabledProps:()=>Se,useEffectEvent:()=>q,useElementVisibility:()=>Ce,useFocus:()=>I,useFocusRing:()=>Oe,useFocusVisible:()=>ke,useFocusVisibleListener:()=>A,useFocusWithin:()=>ie,useFocusable:()=>He,useGlobalListeners:()=>$,useHover:()=>ze,useId:()=>qe,useKeyboard:()=>se,useMounted:()=>fe,usePress:()=>Ye,useRenderer:()=>Qe,useSlottedContext:()=>ne,useSupported:()=>mt,useSyncContextRef:()=>ue,useSyntheticBlurEvent:()=>K});module.exports=at(yt);var te=require("react"),Re=require("@necto/mergers");function Me({props:e,ref:t,context:n}){let o=ne({context:n,slot:e.slot})||{},{ref:r=null,...u}=o,f=(0,te.useRef)(null),c=(0,te.useCallback)(a=>{f.current=a,typeof t=="function"?t(a):t&&(t.current=a),typeof r=="function"?r(a):r&&typeof r=="object"&&(r.current=a)},[t,r]),i=(0,Re.mergeProps)(u,e);return"style"in u&&u.style&&"style"in e&&e.style&&(typeof u.style=="function"||typeof e.style=="function"?i.style=a=>{let m=typeof u.style=="function"?u.style(a):u.style,d={...a.defaultStyle,...m},b=typeof e.style=="function"?e.style({...a,defaultStyle:d}):e.style;return{...d,...b}}:i.style={...u.style,...e.style}),[i,c]}var Ue=require("react"),Le=require("@necto-react/contexts");function re(e={}){let{type:t="general",defaultFallback:n=!1}=e;return((0,Ue.useContext)(Le.DisabledContext)||{})[t]??n}var we=require("react");function Se(e={}){let{type:t="general",extraProps:n={}}=e,o=re({type:t,defaultFallback:!1});return(0,we.useMemo)(()=>{let r={...n};return o&&(r={...r,...typeof n.onClick=="function"||typeof n.onChange=="function"?{disabled:o}:{},"aria-disabled":o}),r},[o,n])}var U=require("react");function Ce(e={}){let{partialVisibility:t=!1,threshold:n=0,rootMargin:o="0px",root:r=null,active:u=!0,once:f=!1,onChange:c}=e,[i,a]=(0,U.useState)(null),[m,d]=(0,U.useState)(!1),[b,E]=(0,U.useState)(null),v=(0,U.useRef)(!1),p=(0,U.useRef)(null),l=q(M=>{let L=M[0],k=L.isIntersecting,X={isIntersecting:L.isIntersecting,intersectionRatio:L.intersectionRatio,intersectionRect:L.intersectionRect,boundingClientRect:L.boundingClientRect,rootBounds:L.rootBounds,time:L.time};E(X),d(S=>f&&v.current?!0:k&&f?(v.current=!0,S!==!0&&c&&c(!0),!0):S!==k?(c&&c(k),k):S)}),T=(0,U.useCallback)(M=>{a(M)},[]);return(0,U.useEffect)(()=>{if(!u||!i)return;let M;return t===!0?M=[0,.1,.25,.5,.75,1]:typeof t=="string"?M=.01:M=n,p.current=new IntersectionObserver(l,{root:r,rootMargin:o,threshold:M}),p.current.observe(i),()=>{p.current&&p.current.disconnect()}},[u,i,r,o,n,t]),[T,m,b]}var oe=require("react");var B=require("@necto/dom");function I(e={}){let{isDisabled:t,onFocus:n,onBlur:o,onFocusChange:r}=e,u=(0,oe.useCallback)((a,m)=>{a?(n?.(m),r?.(!0)):(o?.(m),r?.(!1))},[n,o,r]),f=(0,oe.useCallback)(a=>{a.target===a.currentTarget&&u(!1,a)},[u]),c=K({onBlur:f}),i=(0,oe.useCallback)(a=>{let m=(0,B.getOwnerDocument)(a.target),d=m?(0,B.getActiveElement)(m):(0,B.getActiveElement)();a.target===a.currentTarget&&d===(0,B.getEventTarget)(a.nativeEvent)&&(u(!0,a),c(a))},[u,c]);return{focusProps:{...t?{}:{onFocus:i,onBlur:f}}}}var w=require("@necto/dom"),de=require("@necto/mergers"),W=require("react"),De=require("@necto-react/contexts");function He(e,t){let{autoFocus:n,isDisabled:o,excludeFromTabOrder:r}=e,{focusProps:u}=I(e),{keyboardProps:f}=se(e),c=(0,W.useContext)(De.FocusableContext)||{},i=(0,W.useRef)(n);ue({context:c,ref:t});let{ref:a,...m}=c,d=(0,w.getOwnerDocument)(t.current),b=(0,w.getActiveElement)(d);(0,W.useEffect)(()=>{if(i.current&&t.current)if(j()==="virtual"){let v=b;(0,w.runAfterTransition)(()=>{(0,w.getActiveElement)(d)===v&&t.current?.isConnected&&(0,w.focusWithoutScrolling)(t.current)})}else(0,w.focusWithoutScrolling)(t.current);i.current=!1},[t]);let E=r?-1:0;return o&&(E=void 0),{focusableProps:(0,de.mergeProps)({...(0,de.mergeProps)(u??{},f),tabIndex:E},o?{}:m)}}var C=require("react");var lt=null;function Oe(e={}){let{within:t=!1,isTextInput:n=!1,autoFocus:o=!1}=e,r=(0,C.useRef)({isFocused:o,isFocusVisible:o||lt!=="pointer"}),[u,f]=(0,C.useState)(o),[c,i]=(0,C.useState)(()=>r.current.isFocused&&r.current.isFocusVisible),a=(0,C.useCallback)(()=>{i(r.current.isFocused&&r.current.isFocusVisible)},[]),m=(0,C.useCallback)(E=>{r.current.isFocused=E,f(E),a()},[a]);A({fn:E=>{r.current.isFocusVisible=E,a()},deps:[],opts:{isTextInput:n}});let{focusProps:d={}}=I({isDisabled:t,onFocusChange:m})||{},{focusWithinProps:b={}}=ie({isDisabled:!t,onFocusWithinChange:m})||{};return{isFocused:u,isFocusVisible:c,focusProps:t?b:d}}var Ve=require("react");function ke(e={}){let{isTextInput:t,autoFocus:n}=e,[o,r]=(0,Ve.useState)(n||j()!=="pointer");return A({fn:u=>r(u),deps:[t],opts:{isTextInput:t}}),{isFocusVisible:o}}var G=new Map,ce=new Set,Be=!1,me=null,Ie=!1,x={get hasEventBeforeFocus(){return Be},set hasEventBeforeFocus(e){Be=e},get hasBlurredWindowRecently(){return Ie},set hasBlurredWindowRecently(e){Ie=e},get currentModality(){return me},set currentModality(e){me=e}};function j(){return me}var Ke=require("std-env"),We=require("react"),je=require("@necto-react/helpers"),N=require("@necto/dom");function Ee(e,t){ce.forEach(n=>n(e,t))}function ft(e){return!(e.metaKey||Ke.isMacOS&&e.altKey||e.ctrlKey||["Control","Shift","Meta"].includes(e.key))}function Ae(e){ft(e)&&(x.hasEventBeforeFocus=!0,x.currentModality="keyboard",Ee("keyboard",e))}function ye(e){["mousedown","pointerdown"].includes(e.type)&&(x.hasEventBeforeFocus=!0,x.currentModality="pointer",Ee("pointer",e))}function Ge(e){[window,document].includes(e.target)||!e.isTrusted||!x.hasEventBeforeFocus&&!x.hasBlurredWindowRecently||(!x.hasEventBeforeFocus&&!x.hasBlurredWindowRecently&&(x.currentModality="virtual",Ee("virtual",e)),x.hasEventBeforeFocus=!1,x.hasBlurredWindowRecently=!1)}function Ne(){x.hasEventBeforeFocus=!1,x.hasBlurredWindowRecently=!0}function pt(e){let t=(0,N.getOwnerWindow)(e),n=(0,N.getOwnerDocument)(e);if(typeof window>"u"||typeof document>"u"||G.has(t))return;let o=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(...r){x.hasEventBeforeFocus=!0,o.apply(this,r)},n.addEventListener("keydown",Ae,!0),n.addEventListener("click",ye,!0),t.addEventListener("focus",Ge,!0),t.addEventListener("blur",Ne,!1),typeof PointerEvent<"u"&&n.addEventListener("pointerdown",ye,!0),G.set(t,{focus:o})}function dt(e){let t=(0,N.getOwnerWindow)(e),n=(0,N.getOwnerDocument)(e);if(!G.has(t))return;let{focus:o}=G.get(t);t.HTMLElement.prototype.focus=o,n.removeEventListener("keydown",Ae,!0),n.removeEventListener("click",ye,!0),t.removeEventListener("focus",Ge,!0),t.removeEventListener("blur",Ne,!1),G.delete(t)}function A(e){let{fn:t,deps:n,opts:o}=e;typeof window>"u"||typeof document>"u"||(pt(),(0,We.useEffect)(()=>{let r=(u,f)=>{(0,je.isKeyboardFocusEvent)(!!o?.isTextInput,u,f)&&t(x.currentModality!=="pointer")};return ce.add(r),()=>{ce.delete(r),dt()}},n))}var Y=require("react"),$e=require("@necto-react/helpers");var D=require("@necto/dom");function ie(e){let{isDisabled:t,onFocusWithin:n,onBlurWithin:o,onFocusWithinChange:r}=e,u=(0,Y.useRef)({isFocusWithin:!1}),{addGlobalListener:f,removeAllGlobalListeners:c}=$(),i=(0,Y.useCallback)(d=>{d.currentTarget.contains(d.target)&&u.current.isFocusWithin&&!d.currentTarget.contains(d.relatedTarget)&&(u.current.isFocusWithin=!1,c(),o&&o(d),r&&r(!1))},[o,r,c]),a=K({onBlur:i}),m=(0,Y.useCallback)(d=>{if(!d.currentTarget.contains(d.target))return;let b=(0,D.getOwnerDocument)(d.target),E=(0,D.getActiveElement)(b);if(!u.current.isFocusWithin&&E===(0,D.getEventTarget)(d.nativeEvent)){n&&n(d),r&&r(!0),u.current.isFocusWithin=!0,a(d);let v=d.currentTarget;f(b,"focus",p=>{if(u.current.isFocusWithin&&!(0,D.nodeContains)(v,p.target)&&b.defaultView&&typeof b.defaultView.FocusEvent=="function"){let l=new b.defaultView.FocusEvent("blur",{relatedTarget:p.target});Object.defineProperty(l,"target",{value:v}),Object.defineProperty(l,"currentTarget",{value:v});let T=(0,$e.createSyntheticEvent)(l);i(T)}},{capture:!0})}},[n,r,a,f,i]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:m,onBlur:i}}}var H=require("react");function $(){let e=(0,H.useRef)(new Map),t=(0,H.useCallback)((r,u,f,c)=>{let i=typeof c=="object"&&c?.once?(...a)=>{e.current.delete(f),f(...a)}:f;e.current.set(f,{type:u,eventTarget:r,options:c}),r.addEventListener(u,i,c)},[]),n=(0,H.useCallback)((r,u,f,c)=>{let i=e.current.get(f),a=i?.options?.once?i.fn:f;r.removeEventListener(u,a,c),e.current.delete(f)},[]),o=(0,H.useCallback)(()=>{e.current.forEach((r,u)=>{r.eventTarget.removeEventListener(r.type,u,r.options)}),e.current.clear()},[]);return(0,H.useEffect)(()=>()=>o(),[o]),{addGlobalListener:t,removeGlobalListener:n,removeAllGlobalListeners:o}}var ae=require("std-env");var le=require("@necto/dom"),h=require("react");function ze(e={}){let{onHoverStart:t,onHoverChange:n,onHoverEnd:o,isDisabled:r}=e,[u,f]=(0,h.useState)(!1),c=(0,h.useRef)({hoverCount:0,ignoreEmulated:!1}),i=(0,h.useRef)({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}).current,{addGlobalListener:a,removeAllGlobalListeners:m}=$(),d=(0,h.useCallback)(()=>{c.current.ignoreEmulated=!0,setTimeout(()=>{c.current.ignoreEmulated=!1},50)},[]);(0,h.useEffect)(()=>{let p=T=>{T.pointerType==="touch"&&d()};if(typeof document>"u")return;let l=c.current;return l.hoverCount++,typeof PointerEvent<"u"?document.addEventListener("pointerup",p):ae.isTest&&document.addEventListener("touchend",d),()=>{l.hoverCount--,l.hoverCount===0&&(typeof PointerEvent<"u"?document.removeEventListener("pointerup",p):ae.isTest&&document.removeEventListener("touchend",d))}},[d]);let b=(0,h.useCallback)((p,l)=>{r||l==="touch"||i.isHovered||!(p.currentTarget&&p.currentTarget.contains(p.target))||(i.isHovered=!0,i.pointerType=l,i.target=p.currentTarget,a((0,le.getOwnerDocument)(p.target instanceof Element?p.target:null),"pointerover",T=>{i.isHovered&&i.target&&!(0,le.nodeContains)(i.target,T.target)&&E(T,T.pointerType)},{capture:!0}),t?.({type:"hoverstart",target:p.currentTarget,pointerType:l}),n?.(!0),f(!0))},[r,t,n,a,i]),E=(0,h.useCallback)((p,l)=>{l==="touch"||!i.isHovered||!i.target||(i.isHovered=!1,i.pointerType="",i.target=null,m(),o?.({type:"hoverend",target:p.currentTarget,pointerType:l}),n?.(!1),f(!1))},[o,n,m,i.target,i]),v=(0,h.useMemo)(()=>{let p={};return typeof PointerEvent<"u"?(p.onPointerEnter=l=>{c.current.ignoreEmulated&&l.pointerType==="mouse"||b(l,l.pointerType)},p.onPointerLeave=l=>{!r&&l.currentTarget instanceof Element&&l.currentTarget.contains(l.target)&&E(l,l.pointerType)}):ae.isTest&&(p.onTouchStart=()=>{i.ignoreEmulatedMouseEvents=!0},p.onMouseEnter=l=>{!i.ignoreEmulatedMouseEvents&&!c.current.ignoreEmulated&&b(l.nativeEvent,"mouse"),i.ignoreEmulatedMouseEvents=!1},p.onMouseLeave=l=>{!r&&l.currentTarget.contains(l.target)&&E(l.nativeEvent,"mouse")}),p},[r,b,E,i]);return(0,h.useEffect)(()=>{r&&i.isHovered&&E({currentTarget:i.target},i.pointerType)},[r,E,i.isHovered,i.pointerType,i.target]),{hoverProps:v,isHovered:u}}var _e=require("std-env");var ve={prefix:String(Math.round(Math.random()*1e10)),current:0},J=new Map,Q=typeof FinalizationRegistry<"u"?new FinalizationRegistry(e=>{J.delete(e)}):null;var R=ct(require("react"),1);function qe(e={}){let{prefix:t="necto",defaultId:n}=e,[o,r]=(0,R.useState)(()=>n),u=(0,R.useRef)(null),f=(0,R.useRef)({}),c=(()=>{if(n)return n;let i=typeof R.default.useId=="function"?(0,R.useId)():String(++ve.current);return`${_e.isTest?t:`${t}${ve.prefix}`}-${i}`})();return(0,R.useEffect)(()=>{if(typeof window<"u"&&window.document?.createElement){let i=J.get(c)||[],a={current:u.current};i.some(m=>m===a)||J.set(c,[...i,a])}return Q&&Q.register(f.current,c),()=>{Q&&Q.unregister(f.current),J.delete(c)}},[c]),(0,R.useEffect)(()=>{let i=u.current;i&&(r(i),u.current=null)},[]),c}var be=require("@necto-react/helpers");function se(e){return{keyboardProps:e.isDisabled?{}:{onKeyDown:e.onKeyDown?(0,be.createEventHandler)(t=>e.onKeyDown?.(t.nativeEvent)):void 0,onKeyUp:e.onKeyUp?(0,be.createEventHandler)(t=>e.onKeyUp?.(t.nativeEvent)):void 0}}}var O=require("react");function fe(e={}){let{type:t="function"}=e,n=(0,O.useRef)(!1),[o,r]=(0,O.useState)(!1),u=(0,O.useCallback)(()=>n.current,[]);return(0,O.useEffect)(()=>(n.current=!0,r(!0),()=>{n.current=!1,r(!1)}),[]),t==="ref"?n:t==="boolean"?o:u}var P=require("@necto/dom"),y=require("react");function F(e,t,n){return{type:e,pointerType:t,target:n.currentTarget??n.target,shiftKey:n.shiftKey,ctrlKey:n.ctrlKey,metaKey:n.metaKey,altKey:n.altKey}}function Ye(e={}){let{isDisabled:t,preventFocusOnPress:n,allowTextSelectionOnPress:o,ref:r,onPress:u,onPressStart:f,onPressEnd:c,onPressChange:i,onPressUp:a,onClick:m}=e,[d,b]=(0,y.useState)(!1),E=(0,y.useRef)(!1),v=(0,y.useRef)(null),p=(0,y.useRef)(!1),l=(0,y.useCallback)(s=>{d!==s&&(b(s),i?.(s))},[d,i]),T=(0,y.useCallback)(s=>{if(!p.current)return;let g=v.current&&v.current instanceof Node&&s.target instanceof Node&&v.current.contains(s.target);if(p.current=!1,l(!1),!o&&v.current instanceof HTMLElement&&(0,P.restoreTextSelection)(v.current),s.target){let _={...F("pressend","mouse",s),target:s.target};c?.(_),a?.(_),g&&u?.(_)}},[c,a,u,l,o]),M=(0,y.useCallback)(s=>{if(t||s.button!==0||E.current)return;n&&s.preventDefault(),o||(0,P.disableTextSelection)(s.currentTarget),p.current=!0,v.current=s.currentTarget,l(!0);let g=F("pressstart","mouse",s);f?.(g),window.addEventListener("mouseup",T,{once:!0})},[t,n,o,f,l,T]),L=(0,y.useCallback)(s=>{if(t||s.button!==0||!p.current)return;p.current=!1,l(!1),!o&&s.currentTarget instanceof HTMLElement&&(0,P.restoreTextSelection)(s.currentTarget);let g=F("pressend","mouse",s);c?.(g),a?.(g),s.currentTarget instanceof Node&&s.currentTarget.contains(s.target)&&u?.(F("press","mouse",s))},[t,u,c,a,l,o]),k=(0,y.useCallback)(s=>{d&&(l(!1),c?.(F("pressend","mouse",s)),!o&&s.currentTarget instanceof HTMLElement&&(0,P.restoreTextSelection)(s.currentTarget))},[d,l,c,o]),X=(0,y.useCallback)(s=>{p.current&&!d&&(l(!0),f?.(F("pressstart","mouse",s)))},[d,f,l]),S=(0,y.useCallback)(s=>{if(!p.current)return;p.current=!1,l(!1),!o&&v.current instanceof HTMLElement&&(0,P.restoreTextSelection)(v.current);let g={...F("pressend","touch",s),target:s.target};c?.(g),a?.(g)},[c,a,l,o]),Z=(0,y.useCallback)(s=>{if(!p.current)return;p.current=!1,l(!1),!o&&v.current instanceof HTMLElement&&(0,P.restoreTextSelection)(v.current);let g={...F("pressend","touch",s),target:s.target};c?.(g)},[c,l,o]),ge=(0,y.useCallback)(s=>{t||(o||(0,P.disableTextSelection)(s.currentTarget),E.current=!0,setTimeout(()=>{E.current=!1},100),p.current=!0,v.current=s.currentTarget,l(!0),f?.(F("pressstart","touch",s)),window.addEventListener("touchend",S,{once:!0}),window.addEventListener("touchcancel",Z,{once:!0}))},[t,f,l,o,S,Z]),xe=(0,y.useCallback)(s=>{if(t||!p.current)return;p.current=!1,l(!1),!o&&s.currentTarget instanceof HTMLElement&&(0,P.restoreTextSelection)(s.currentTarget);let g=F("pressend","touch",s);c?.(g),a?.(g),s.currentTarget instanceof Node&&s.currentTarget.contains(s.target)&&u?.(F("press","touch",s))},[t,u,c,a,l,o]),Fe=(0,y.useCallback)(s=>{if(t)return;(s.key==="Enter"||s.key===" ")&&!d&&(s.key===" "&&s.preventDefault(),o||(0,P.disableTextSelection)(),l(!0),p.current=!0,f?.(F("pressstart","keyboard",s)))},[t,d,f,l,o]),Pe=(0,y.useCallback)(s=>{if(t)return;if((s.key==="Enter"||s.key===" ")&&d){l(!1),p.current=!1,o||(0,P.restoreTextSelection)();let _=F("pressend","keyboard",s);c?.(_),a?.(F("pressup","keyboard",s)),u?.(F("press","keyboard",s))}},[t,d,u,c,a,l,o]),Te=(0,y.useCallback)(s=>{if(t){s.preventDefault();return}E.current||m?.(s)},[t,m]);(0,y.useEffect)(()=>()=>{window.removeEventListener("mouseup",T),window.removeEventListener("touchend",S),window.removeEventListener("touchcancel",Z)},[T,S,Z]);let tt=(0,y.useMemo)(()=>({onMouseDown:M,onMouseUp:L,onMouseLeave:k,onMouseEnter:X,onTouchStart:ge,onTouchEnd:xe,onKeyDown:Fe,onKeyUp:Pe,onClick:Te}),[M,L,k,X,ge,xe,Fe,Pe,Te]);return(0,y.useEffect)(()=>{let s=r?.current;s&&s instanceof(0,P.getOwnerWindow)(s).Element&&(0,P.getOwnerWindow)(s).getComputedStyle(s).touchAction==="auto"&&(s.style.touchAction="pan-x pan-y pinch-zoom")},[r]),{pressProps:tt,isPressed:d}}var Je=require("react");function Qe(e){let{className:t,style:n,children:o,defaultClassName:r="necto",defaultChildren:u,defaultStyle:f,values:c}=e;return(0,Je.useMemo)(()=>{let i=typeof t=="function"?t({...c,defaultClassName:r}):`${r} ${t}`,a=typeof n=="function"?n({...c,defaultStyle:f||{}}):{...f,...n},m=typeof o=="function"?o({...c,defaultChildren:u}):o??u;return{className:i,style:a,children:m}},[t,n,o,r,u,f,c])}var Xe=require("react");function ne(e){let{context:t,slot:n}=e,o=(0,Xe.useContext)(t);if(n===null)return null;if(o&&typeof o=="object"&&"slots"in o&&o.slots){let r=n||Symbol("default");if(!o.slots[r]){let u=new Intl.ListFormat().format(Object.keys(o.slots).map(c=>`"${c}"`)),f=n?`Invalid slot name: "${n}". This slot is not recognized. Please refer to the component's documentation for valid slot names.`:"A slot prop is required. You must provide a valid slot name to render content in this area.";throw new Error(`${f} Valid slot names are ${u}.`)}return o.slots[r]}return o}var Ze=require("react");function ue(e={}){let{ref:t,context:n}=e;(typeof document<"u"?Ze.useLayoutEffect:()=>{})(()=>{if(n&&n.ref&&t)return n.ref.current=t.current,()=>{n.ref&&(n.ref.current=null)}})}var et=require("@necto-react/helpers"),z=require("react");function K(e){let{onBlur:t}=e,n=(0,z.useRef)({isFocused:!1,observer:null});(0,z.useLayoutEffect)(()=>{let r=n.current;return()=>{r.observer&&(r.observer.disconnect(),r.observer=null)}},[]);let o=q(r=>{t?.(r)});return(0,z.useCallback)(r=>{if(r.target instanceof HTMLButtonElement||r.target instanceof HTMLInputElement||r.target instanceof HTMLTextAreaElement||r.target instanceof HTMLSelectElement){n.current.isFocused=!0;let u=r.target,f=c=>{if(n.current.isFocused=!1,u.disabled){let i=(0,et.createSyntheticEvent)(c);o(i)}n.current.observer&&(n.current.observer.disconnect(),n.current.observer=null)};u.addEventListener("focusout",f,{once:!0}),n.current.observer=new MutationObserver(()=>{if(n.current.isFocused&&u.disabled){n.current.observer?.disconnect();let c=u===document.activeElement?null:document.activeElement;u.dispatchEvent(new FocusEvent("blur",{relatedTarget:c})),u.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:c}))}}),n.current.observer.observe(u,{attributes:!0,attributeFilter:["disabled"]})}},[o])}var V=require("react");function q(e){let t=(0,V.useRef)(e);return(typeof window<"u"?V.useLayoutEffect:V.useEffect)(()=>{t.current=e},[e]),(0,V.useCallback)((...n)=>t.current(...n),[])}var pe=require("react");function mt(e){let t=fe(),[n,o]=(0,pe.useState)(!1);return(0,pe.useEffect)(()=>{t()&&o(!!e())},[e,t]),n}0&&(module.exports={getInteractionModality,useContextProps,useDisabled,useDisabledProps,useEffectEvent,useElementVisibility,useFocus,useFocusRing,useFocusVisible,useFocusVisibleListener,useFocusWithin,useFocusable,useGlobalListeners,useHover,useId,useKeyboard,useMounted,usePress,useRenderer,useSlottedContext,useSupported,useSyncContextRef,useSyntheticBlurEvent});
|