@vef-framework-react/hooks 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.
Files changed (86) hide show
  1. package/README +15 -0
  2. package/dist/cjs/index.cjs +1 -0
  3. package/dist/cjs/lib.cjs +1 -0
  4. package/dist/cjs/use-authorized-items/index.cjs +1 -0
  5. package/dist/cjs/use-breakpoints/index.cjs +1 -0
  6. package/dist/cjs/use-check-permission/index.cjs +1 -0
  7. package/dist/cjs/use-data-dict-query/index.cjs +1 -0
  8. package/dist/cjs/use-data-options/index.cjs +1 -0
  9. package/dist/cjs/use-deep-callback/index.cjs +1 -0
  10. package/dist/cjs/use-deep-compare/index.cjs +1 -0
  11. package/dist/cjs/use-deep-effect/index.cjs +1 -0
  12. package/dist/cjs/use-deep-isomorphic-effect/index.cjs +1 -0
  13. package/dist/cjs/use-deep-layout-effect/index.cjs +1 -0
  14. package/dist/cjs/use-deep-memo/index.cjs +1 -0
  15. package/dist/cjs/use-document-event/index.cjs +1 -0
  16. package/dist/cjs/use-emitter-event/index.cjs +1 -0
  17. package/dist/cjs/use-has-fetching/index.cjs +1 -0
  18. package/dist/cjs/use-has-mutating/index.cjs +1 -0
  19. package/dist/cjs/use-is-authorized/index.cjs +1 -0
  20. package/dist/cjs/use-latest/index.cjs +1 -0
  21. package/dist/cjs/use-raf-state/index.cjs +1 -0
  22. package/dist/cjs/use-shallow-callback/index.cjs +1 -0
  23. package/dist/cjs/use-shallow-compare/index.cjs +1 -0
  24. package/dist/cjs/use-shallow-effect/index.cjs +1 -0
  25. package/dist/cjs/use-shallow-isomorphic-effect/index.cjs +1 -0
  26. package/dist/cjs/use-shallow-layout-effect/index.cjs +1 -0
  27. package/dist/cjs/use-shallow-memo/index.cjs +1 -0
  28. package/dist/cjs/use-singleton/index.cjs +1 -0
  29. package/dist/cjs/use-viewport-size/index.cjs +1 -0
  30. package/dist/es/index.js +29 -0
  31. package/dist/es/lib.js +17 -0
  32. package/dist/es/use-authorized-items/index.js +12 -0
  33. package/dist/es/use-breakpoints/index.js +49 -0
  34. package/dist/es/use-check-permission/index.js +9 -0
  35. package/dist/es/use-data-dict-query/index.js +22 -0
  36. package/dist/es/use-data-options/index.js +50 -0
  37. package/dist/es/use-deep-callback/index.js +9 -0
  38. package/dist/es/use-deep-compare/index.js +17 -0
  39. package/dist/es/use-deep-effect/index.js +9 -0
  40. package/dist/es/use-deep-isomorphic-effect/index.js +9 -0
  41. package/dist/es/use-deep-layout-effect/index.js +9 -0
  42. package/dist/es/use-deep-memo/index.js +9 -0
  43. package/dist/es/use-document-event/index.js +21 -0
  44. package/dist/es/use-emitter-event/index.js +13 -0
  45. package/dist/es/use-has-fetching/index.js +12 -0
  46. package/dist/es/use-has-mutating/index.js +11 -0
  47. package/dist/es/use-is-authorized/index.js +9 -0
  48. package/dist/es/use-latest/index.js +9 -0
  49. package/dist/es/use-raf-state/index.js +15 -0
  50. package/dist/es/use-shallow-callback/index.js +9 -0
  51. package/dist/es/use-shallow-compare/index.js +17 -0
  52. package/dist/es/use-shallow-effect/index.js +9 -0
  53. package/dist/es/use-shallow-isomorphic-effect/index.js +9 -0
  54. package/dist/es/use-shallow-layout-effect/index.js +9 -0
  55. package/dist/es/use-shallow-memo/index.js +9 -0
  56. package/dist/es/use-singleton/index.js +9 -0
  57. package/dist/es/use-viewport-size/index.js +34 -0
  58. package/dist/types/src/index.d.ts +27 -0
  59. package/dist/types/src/lib.d.ts +7 -0
  60. package/dist/types/src/use-authorized-items/index.d.ts +22 -0
  61. package/dist/types/src/use-breakpoints/index.d.ts +55 -0
  62. package/dist/types/src/use-check-permission/index.d.ts +8 -0
  63. package/dist/types/src/use-data-dict-query/index.d.ts +15 -0
  64. package/dist/types/src/use-data-options/index.d.ts +86 -0
  65. package/dist/types/src/use-deep-callback/index.d.ts +11 -0
  66. package/dist/types/src/use-deep-compare/index.d.ts +9 -0
  67. package/dist/types/src/use-deep-effect/index.d.ts +10 -0
  68. package/dist/types/src/use-deep-isomorphic-effect/index.d.ts +11 -0
  69. package/dist/types/src/use-deep-layout-effect/index.d.ts +10 -0
  70. package/dist/types/src/use-deep-memo/index.d.ts +11 -0
  71. package/dist/types/src/use-document-event/index.d.ts +19 -0
  72. package/dist/types/src/use-emitter-event/index.d.ts +17 -0
  73. package/dist/types/src/use-has-fetching/index.d.ts +8 -0
  74. package/dist/types/src/use-has-mutating/index.d.ts +7 -0
  75. package/dist/types/src/use-is-authorized/index.d.ts +10 -0
  76. package/dist/types/src/use-latest/index.d.ts +21 -0
  77. package/dist/types/src/use-raf-state/index.d.ts +23 -0
  78. package/dist/types/src/use-shallow-callback/index.d.ts +14 -0
  79. package/dist/types/src/use-shallow-compare/index.d.ts +13 -0
  80. package/dist/types/src/use-shallow-effect/index.d.ts +13 -0
  81. package/dist/types/src/use-shallow-isomorphic-effect/index.d.ts +13 -0
  82. package/dist/types/src/use-shallow-layout-effect/index.d.ts +13 -0
  83. package/dist/types/src/use-shallow-memo/index.d.ts +14 -0
  84. package/dist/types/src/use-singleton/index.d.ts +18 -0
  85. package/dist/types/src/use-viewport-size/index.d.ts +20 -0
  86. package/package.json +65 -0
package/README ADDED
@@ -0,0 +1,15 @@
1
+ # @vef-framework-react/hooks
2
+
3
+ Hooks for using VEF framework.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm add @vef-framework-react/hooks
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import { xxx } from "@vef-framework-react/hooks";
15
+ ```
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./lib.cjs`),t=require(`./use-authorized-items/index.cjs`),n=require(`./use-breakpoints/index.cjs`),r=require(`./use-check-permission/index.cjs`),i=require(`./use-data-dict-query/index.cjs`),a=require(`./use-data-options/index.cjs`),o=require(`./use-deep-compare/index.cjs`),s=require(`./use-deep-callback/index.cjs`),c=require(`./use-deep-effect/index.cjs`),l=require(`./use-deep-isomorphic-effect/index.cjs`),u=require(`./use-deep-layout-effect/index.cjs`),d=require(`./use-deep-memo/index.cjs`),f=require(`./use-latest/index.cjs`),p=require(`./use-document-event/index.cjs`),m=require(`./use-emitter-event/index.cjs`),h=require(`./use-has-fetching/index.cjs`),g=require(`./use-has-mutating/index.cjs`),_=require(`./use-is-authorized/index.cjs`),v=require(`./use-raf-state/index.cjs`),y=require(`./use-shallow-compare/index.cjs`),b=require(`./use-shallow-callback/index.cjs`),x=require(`./use-shallow-effect/index.cjs`),S=require(`./use-shallow-isomorphic-effect/index.cjs`),C=require(`./use-shallow-layout-effect/index.cjs`),w=require(`./use-shallow-memo/index.cjs`),T=require(`./use-singleton/index.cjs`),E=require(`./use-viewport-size/index.cjs`);let D=require(`@mantine/hooks`),O=require(`react-hotkeys-hook`),k=require(`@ai-sdk/react`);Object.defineProperty(exports,`HotkeysProvider`,{enumerable:!0,get:function(){return O.HotkeysProvider}}),Object.defineProperty(exports,`assignRef`,{enumerable:!0,get:function(){return D.assignRef}}),Object.defineProperty(exports,`getHotkeyHandler`,{enumerable:!0,get:function(){return D.getHotkeyHandler}}),Object.defineProperty(exports,`mergeRefs`,{enumerable:!0,get:function(){return D.mergeRefs}}),exports.useAuthorizedItems=t.useAuthorizedItems,exports.useBreakpoints=n.useBreakpoints,Object.defineProperty(exports,`useChat`,{enumerable:!0,get:function(){return k.useChat}}),exports.useCheckPermission=r.useCheckPermission,exports.useColorScheme=e.useColorScheme,Object.defineProperty(exports,`useCompletion`,{enumerable:!0,get:function(){return k.useCompletion}}),exports.useDataDictQuery=i.useDataDictQuery,exports.useDataOptionsQuery=a.useDataOptionsQuery,Object.defineProperty(exports,`useDebouncedCallback`,{enumerable:!0,get:function(){return D.useDebouncedCallback}}),Object.defineProperty(exports,`useDebouncedState`,{enumerable:!0,get:function(){return D.useDebouncedState}}),Object.defineProperty(exports,`useDebouncedValue`,{enumerable:!0,get:function(){return D.useDebouncedValue}}),exports.useDeepCallback=s.useDeepCallback,exports.useDeepCompare=o.useDeepCompare,exports.useDeepEffect=c.useDeepEffect,exports.useDeepIsomorphicEffect=l.useDeepIsomorphicEffect,exports.useDeepLayoutEffect=u.useDeepLayoutEffect,exports.useDeepMemo=d.useDeepMemo,Object.defineProperty(exports,`useDidUpdate`,{enumerable:!0,get:function(){return D.useDidUpdate}}),exports.useDocumentEvent=p.useDocumentEvent,Object.defineProperty(exports,`useDocumentTitle`,{enumerable:!0,get:function(){return D.useDocumentTitle}}),Object.defineProperty(exports,`useElementSize`,{enumerable:!0,get:function(){return D.useElementSize}}),exports.useEmitterEvent=m.useEmitterEvent,Object.defineProperty(exports,`useEventListener`,{enumerable:!0,get:function(){return D.useEventListener}}),Object.defineProperty(exports,`useFocusTrap`,{enumerable:!0,get:function(){return D.useFocusTrap}}),Object.defineProperty(exports,`useFullscreen`,{enumerable:!0,get:function(){return D.useFullscreen}}),exports.useHasFetching=h.useHasFetching,exports.useHasMutating=g.useHasMutating,Object.defineProperty(exports,`useHotkeys`,{enumerable:!0,get:function(){return O.useHotkeys}}),Object.defineProperty(exports,`useHotkeysContext`,{enumerable:!0,get:function(){return O.useHotkeysContext}}),Object.defineProperty(exports,`useIntersection`,{enumerable:!0,get:function(){return D.useIntersection}}),Object.defineProperty(exports,`useInterval`,{enumerable:!0,get:function(){return D.useInterval}}),exports.useIsAuthorized=_.useIsAuthorized,Object.defineProperty(exports,`useIsFirstRender`,{enumerable:!0,get:function(){return D.useIsFirstRender}}),Object.defineProperty(exports,`useIsomorphicEffect`,{enumerable:!0,get:function(){return D.useIsomorphicEffect}}),exports.useLatest=f.useLatest,exports.useMediaQuery=e.useMediaQuery,Object.defineProperty(exports,`useMergedRef`,{enumerable:!0,get:function(){return D.useMergedRef}}),Object.defineProperty(exports,`useMounted`,{enumerable:!0,get:function(){return D.useMounted}}),Object.defineProperty(exports,`useMutationObserver`,{enumerable:!0,get:function(){return D.useMutationObserver}}),Object.defineProperty(exports,`useObject`,{enumerable:!0,get:function(){return k.experimental_useObject}}),Object.defineProperty(exports,`usePrevious`,{enumerable:!0,get:function(){return D.usePrevious}}),exports.useRafState=v.useRafState,Object.defineProperty(exports,`useRecordHotkeys`,{enumerable:!0,get:function(){return O.useRecordHotkeys}}),exports.useReducedMotion=e.useReducedMotion,Object.defineProperty(exports,`useResizeObserver`,{enumerable:!0,get:function(){return D.useResizeObserver}}),exports.useShallowCallback=b.useShallowCallback,exports.useShallowCompare=y.useShallowCompare,exports.useShallowEffect=x.useShallowEffect,exports.useShallowIsomorphicEffect=S.useShallowIsomorphicEffect,exports.useShallowLayoutEffect=C.useShallowLayoutEffect,exports.useShallowMemo=w.useShallowMemo,exports.useSingleton=T.useSingleton,Object.defineProperty(exports,`useTimeout`,{enumerable:!0,get:function(){return D.useTimeout}}),exports.useViewportSize=E.useViewportSize,Object.defineProperty(exports,`useWindowEvent`,{enumerable:!0,get:function(){return D.useWindowEvent}});
@@ -0,0 +1 @@
1
+ let e=require(`@mantine/hooks`);require(`@ai-sdk/react`),require(`react-hotkeys-hook`);var t={getInitialValueInEffect:!1};function n(n,r,i=t){return(0,e.useMediaQuery)(n,r,{getInitialValueInEffect:i.getInitialValueInEffect})}function r(n,r=t){return(0,e.useColorScheme)(n,{getInitialValueInEffect:r.getInitialValueInEffect})}function i(n,r=t){return(0,e.useReducedMotion)(n,{getInitialValueInEffect:r.getInitialValueInEffect})}exports.useColorScheme=r,exports.useMediaQuery=n,exports.useReducedMotion=i;
@@ -0,0 +1 @@
1
+ let e=require(`@vef-framework-react/core`);function t(t){let{hasPermission:n=()=>!0}=(0,e.useAppContext)();return t.filter(t=>{let{permTokens:r,checkMode:i=`any`}=t;return(0,e.checkPermission)(n,r,i)})}exports.useAuthorizedItems=t;
@@ -0,0 +1 @@
1
+ let e=require(`@vef-framework-react/shared`),t=require(`react`);function n(t){return`(min-width: ${(0,e.isNumber)(t)?`${t}px`:t})`}function r(r,i={}){let{initialBreakpoint:a,getInitialValueInEffect:o=!1}=i,s=(0,t.useMemo)(()=>Object.entries(r).map(([t,r])=>({name:t,value:r,query:n(r),order:(0,e.isNumber)(r)?r:Number.parseInt(r)})).toSorted((e,t)=>e.order-t.order),[r]),[c,l]=(0,t.useState)(()=>{if(globalThis.window===void 0||o)return{current:a,value:s.find(e=>e.name===a)?.value,matches:a?[a]:[]};let e=s.filter(e=>globalThis.matchMedia(e.query).matches),t=e.at(-1);return{current:t?.name,value:t?.value,matches:e.map(e=>e.name)}});return(0,t.useEffect)(()=>{let e=s.map(e=>({name:e.name,value:e.value,mql:globalThis.matchMedia(e.query)}));function t(){let t=e.filter(e=>e.mql.matches),n=t.at(-1);l({current:n?.name,value:n?.value,matches:t.map(e=>e.name)})}o&&t();for(let n of e)n.mql.addEventListener(`change`,t);return()=>{for(let n of e)n.mql.removeEventListener(`change`,t)}},[o,s]),c}exports.useBreakpoints=r;
@@ -0,0 +1 @@
1
+ let e=require(`@vef-framework-react/core`);function t(){let{hasPermission:t=()=>!0}=(0,e.useAppContext)();return(n,r)=>(0,e.checkPermission)(t,n,r)}exports.useCheckPermission=t;
@@ -0,0 +1 @@
1
+ let e=require(`@vef-framework-react/core`),t=require(`@vef-framework-react/shared`),n=require(`react`);function r({dataDictKey:r,onFetch:i,...a}){let{dataDictQueryFn:o}=(0,e.useAppContext)();if(!(0,t.isFunction)(o))throw Error(`Data dictionary query function is not provided in the app context.`);let s=(0,n.useRef)(i);s.current=i;let c=(0,e.useQuery)({...a,queryFn:(0,t.isEmpty)(r)?e.skipQueryToken:o,queryKey:[o.key,r],staleTime:a?.staleTime??1/0});return(0,n.useEffect)(()=>{s.current&&c.promise.then(s.current)},[c.promise]),c}exports.useDataDictQuery=r;
@@ -0,0 +1 @@
1
+ const e=require(`../use-data-dict-query/index.cjs`);let t=require(`@vef-framework-react/core`),n=require(`@vef-framework-react/shared`),r=require(`react`);function i(e,t,r){return t?(0,n.isFunction)(t)?t(e):(0,n.get)(e,t):e[r]}function a(e,t,r){let{labelKey:o,valueKey:s,disabledKey:c,descriptionKey:l,childrenKey:u}=t,d=i(e,o,`label`),f=i(e,s,`value`),p=i(e,c,`disabled`),m=i(e,l,`description`),h=i(e,u,`children`),g={...e,label:d,value:f,...!(0,n.isNullish)(p)&&{disabled:p},...!(0,n.isNullish)(m)&&{description:m}},_=r?(0,n.withPinyin)(g,`label`,`description`):g;return Array.isArray(h)&&h.length>0&&(_.children=h.map(e=>a(e,t,r))),_}function o(e,t,r){return!e||(0,n.isEmpty)(e)?[]:e.map(e=>a(e,t,r))}function s({queryOptions:i,dataDictKey:a,labelKey:s,valueKey:c,disabledKey:l,descriptionKey:u,childrenKey:d,withPinyin:f=!1}){let p=(0,n.isString)(a)&&a.length>0,m=(0,t.useQuery)({...i,queryFn:p?t.skipQueryToken:i?.queryFn}),h=e.useDataDictQuery({dataDictKey:a}),{data:g,..._}=p?h:m,v=(0,r.useMemo)(()=>({labelKey:s,valueKey:c,disabledKey:l,descriptionKey:u,childrenKey:d}),[s,c,l,u,d]);return{options:(0,r.useMemo)(()=>o(g,v,f),[g,v,f]),..._}}exports.useDataOptionsQuery=s;
@@ -0,0 +1 @@
1
+ const e=require(`../use-deep-compare/index.cjs`);let t=require(`react`);function n(n,r){return(0,t.useCallback)(n,e.useDeepCompare(r))}exports.useDeepCallback=n;
@@ -0,0 +1 @@
1
+ let e=require(`@vef-framework-react/shared`),t=require(`react`);function n(e){let n=(0,t.useRef)(void 0),i=(0,t.useRef)(0);return r(n.current,e)||(n.current=e,i.current+=1),[i.current]}function r(t,n){if(t===void 0||n===void 0)return!1;if(Object.is(t,n))return!0;if(t.length!==n.length)return!1;for(let[r,i]of t.entries())if(!(0,e.isDeepEqual)(i,n[r]))return!1;return!0}exports.useDeepCompare=n;
@@ -0,0 +1 @@
1
+ const e=require(`../use-deep-compare/index.cjs`);let t=require(`react`);function n(n,r){(0,t.useEffect)(n,e.useDeepCompare(r))}exports.useDeepEffect=n;
@@ -0,0 +1 @@
1
+ const e=require(`../use-deep-compare/index.cjs`);let t=require(`@mantine/hooks`);function n(n,r){(0,t.useIsomorphicEffect)(n,e.useDeepCompare(r))}exports.useDeepIsomorphicEffect=n;
@@ -0,0 +1 @@
1
+ const e=require(`../use-deep-compare/index.cjs`);let t=require(`react`);function n(n,r){(0,t.useLayoutEffect)(n,e.useDeepCompare(r))}exports.useDeepLayoutEffect=n;
@@ -0,0 +1 @@
1
+ const e=require(`../use-deep-compare/index.cjs`);let t=require(`react`);function n(n,r){return(0,t.useMemo)(n,e.useDeepCompare(r))}exports.useDeepMemo=n;
@@ -0,0 +1 @@
1
+ const e=require(`../use-latest/index.cjs`);let t=require(`react`);function n(n,r,i){let a=e.useLatest(r);(0,t.useEffect)(()=>{function e(e){a.current.call(this,e)}return document.addEventListener(n,e,i),()=>{document.removeEventListener(n,e,i)}},[n,i,a])}exports.useDocumentEvent=n;
@@ -0,0 +1 @@
1
+ require(`@vef-framework-react/shared`);let e=require(`react`);function t(t,n,r){(0,e.useEffect)(()=>t.on(n,r),[t,n,r])}exports.useEmitterEvent=t;
@@ -0,0 +1 @@
1
+ let e=require(`@vef-framework-react/core`);function t(t,n){return(0,e.useIsFetching)({queryKey:n?[t,n]:[t],exact:!1,type:`active`})>0}exports.useHasFetching=t;
@@ -0,0 +1 @@
1
+ let e=require(`@vef-framework-react/core`);function t(t){return(0,e.useIsMutating)({mutationKey:[t],exact:!1})>0}exports.useHasMutating=t;
@@ -0,0 +1 @@
1
+ let e=require(`@vef-framework-react/core`);function t(t,n){let{hasPermission:r=()=>!0}=(0,e.useAppContext)();return(0,e.checkPermission)(r,t,n)}exports.useIsAuthorized=t;
@@ -0,0 +1 @@
1
+ let e=require(`react`);function t(t){let n=(0,e.useRef)(t);return n.current=t,n}exports.useLatest=t;
@@ -0,0 +1 @@
1
+ let e=require(`react`);function t(t){let n=(0,e.useRef)(0),[r,i]=(0,e.useState)(t),a=(0,e.useCallback)(e=>{cancelAnimationFrame(n.current),n.current=requestAnimationFrame(()=>{i(e)})},[]);return(0,e.useEffect)(()=>()=>{cancelAnimationFrame(n.current)},[]),[r,a]}exports.useRafState=t;
@@ -0,0 +1 @@
1
+ const e=require(`../use-shallow-compare/index.cjs`);let t=require(`react`);function n(n,r){return(0,t.useCallback)(n,e.useShallowCompare(r))}exports.useShallowCallback=n;
@@ -0,0 +1 @@
1
+ let e=require(`@vef-framework-react/shared`),t=require(`react`);function n(e){let n=(0,t.useRef)(void 0),i=(0,t.useRef)(0);return r(n.current,e)||(n.current=e,i.current+=1),[i.current]}function r(t,n){if(t===void 0||n===void 0)return!1;if(t===n)return!0;if(t.length!==n.length)return!1;for(let[r,i]of t.entries())if(!(0,e.isShallowEqual)(i,n[r]))return!1;return!0}exports.useShallowCompare=n;
@@ -0,0 +1 @@
1
+ const e=require(`../use-shallow-compare/index.cjs`);let t=require(`react`);function n(n,r){(0,t.useEffect)(n,e.useShallowCompare(r))}exports.useShallowEffect=n;
@@ -0,0 +1 @@
1
+ const e=require(`../use-shallow-compare/index.cjs`);let t=require(`@mantine/hooks`);function n(n,r){(0,t.useIsomorphicEffect)(n,e.useShallowCompare(r))}exports.useShallowIsomorphicEffect=n;
@@ -0,0 +1 @@
1
+ const e=require(`../use-shallow-compare/index.cjs`);let t=require(`react`);function n(n,r){(0,t.useLayoutEffect)(n,e.useShallowCompare(r))}exports.useShallowLayoutEffect=n;
@@ -0,0 +1 @@
1
+ const e=require(`../use-shallow-compare/index.cjs`);let t=require(`react`);function n(n,r){return(0,t.useMemo)(n,e.useShallowCompare(r))}exports.useShallowMemo=n;
@@ -0,0 +1 @@
1
+ let e=require(`react`);function t(t){let n=(0,e.useRef)(void 0);return n.current===void 0&&(n.current=t()),n}exports.useSingleton=t;
@@ -0,0 +1 @@
1
+ const e=require(`../use-raf-state/index.cjs`);let t=require(`@vef-framework-react/shared`),n=require(`react`),r=require(`@mantine/hooks`);var i={passive:!0};function a(){let a=!(0,t.isUndefined)(globalThis.window),[o,s]=e.useRafState(()=>({width:a?window.innerWidth:0,height:a?window.innerHeight:0}));return(0,n.useEffect)(()=>{function e(){(0,t.isUndefined)(globalThis.window)||s({width:window.innerWidth,height:window.innerHeight})}e()},[s]),(0,r.useWindowEvent)(`resize`,()=>{(0,t.isUndefined)(globalThis.window)||s({width:window.innerWidth,height:window.innerHeight})},i),(0,r.useWindowEvent)(`orientationchange`,()=>{(0,t.isUndefined)(globalThis.window)||s({width:window.innerWidth,height:window.innerHeight})},i),o}exports.useViewportSize=a;
@@ -0,0 +1,29 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { HotkeysProvider as e, assignRef as t, getHotkeyHandler as n, mergeRefs as r, useChat as i, useColorScheme as a, useCompletion as o, useDebouncedCallback as s, useDebouncedState as c, useDebouncedValue as l, useDidUpdate as u, useDocumentTitle as d, useElementSize as f, useEventListener as p, useFocusTrap as m, useFullscreen as h, useHotkeys as g, useHotkeysContext as _, useIntersection as v, useInterval as y, useIsFirstRender as b, useIsomorphicEffect as x, useMediaQuery as S, useMergedRef as C, useMounted as w, useMutationObserver as T, useObject as E, usePrevious as D, useRecordHotkeys as O, useReducedMotion as k, useResizeObserver as A, useTimeout as j, useWindowEvent as M } from "./lib.js";
3
+ import { useAuthorizedItems as N } from "./use-authorized-items/index.js";
4
+ import { useBreakpoints as P } from "./use-breakpoints/index.js";
5
+ import { useCheckPermission as F } from "./use-check-permission/index.js";
6
+ import { useDataDictQuery as I } from "./use-data-dict-query/index.js";
7
+ import { useDataOptionsQuery as L } from "./use-data-options/index.js";
8
+ import { useDeepCompare as R } from "./use-deep-compare/index.js";
9
+ import { useDeepCallback as z } from "./use-deep-callback/index.js";
10
+ import { useDeepEffect as B } from "./use-deep-effect/index.js";
11
+ import { useDeepIsomorphicEffect as V } from "./use-deep-isomorphic-effect/index.js";
12
+ import { useDeepLayoutEffect as H } from "./use-deep-layout-effect/index.js";
13
+ import { useDeepMemo as U } from "./use-deep-memo/index.js";
14
+ import { useLatest as W } from "./use-latest/index.js";
15
+ import { useDocumentEvent as G } from "./use-document-event/index.js";
16
+ import { useEmitterEvent as K } from "./use-emitter-event/index.js";
17
+ import { useHasFetching as q } from "./use-has-fetching/index.js";
18
+ import { useHasMutating as J } from "./use-has-mutating/index.js";
19
+ import { useIsAuthorized as Y } from "./use-is-authorized/index.js";
20
+ import { useRafState as X } from "./use-raf-state/index.js";
21
+ import { useShallowCompare as Z } from "./use-shallow-compare/index.js";
22
+ import { useShallowCallback as Q } from "./use-shallow-callback/index.js";
23
+ import { useShallowEffect as $ } from "./use-shallow-effect/index.js";
24
+ import { useShallowIsomorphicEffect as ee } from "./use-shallow-isomorphic-effect/index.js";
25
+ import { useShallowLayoutEffect as te } from "./use-shallow-layout-effect/index.js";
26
+ import { useShallowMemo as ne } from "./use-shallow-memo/index.js";
27
+ import { useSingleton as re } from "./use-singleton/index.js";
28
+ import { useViewportSize as ie } from "./use-viewport-size/index.js";
29
+ export { e as HotkeysProvider, t as assignRef, n as getHotkeyHandler, r as mergeRefs, N as useAuthorizedItems, P as useBreakpoints, i as useChat, F as useCheckPermission, a as useColorScheme, o as useCompletion, I as useDataDictQuery, L as useDataOptionsQuery, s as useDebouncedCallback, c as useDebouncedState, l as useDebouncedValue, z as useDeepCallback, R as useDeepCompare, B as useDeepEffect, V as useDeepIsomorphicEffect, H as useDeepLayoutEffect, U as useDeepMemo, u as useDidUpdate, G as useDocumentEvent, d as useDocumentTitle, f as useElementSize, K as useEmitterEvent, p as useEventListener, m as useFocusTrap, h as useFullscreen, q as useHasFetching, J as useHasMutating, g as useHotkeys, _ as useHotkeysContext, v as useIntersection, y as useInterval, Y as useIsAuthorized, b as useIsFirstRender, x as useIsomorphicEffect, W as useLatest, S as useMediaQuery, C as useMergedRef, w as useMounted, T as useMutationObserver, E as useObject, D as usePrevious, X as useRafState, O as useRecordHotkeys, k as useReducedMotion, A as useResizeObserver, Q as useShallowCallback, Z as useShallowCompare, $ as useShallowEffect, ee as useShallowIsomorphicEffect, te as useShallowLayoutEffect, ne as useShallowMemo, re as useSingleton, j as useTimeout, ie as useViewportSize, M as useWindowEvent };
package/dist/es/lib.js ADDED
@@ -0,0 +1,17 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { assignRef as e, getHotkeyHandler as t, mergeRefs as n, useColorScheme as r, useDebouncedCallback as i, useDebouncedState as a, useDebouncedValue as o, useDidUpdate as s, useDocumentTitle as c, useElementSize as l, useEventListener as u, useFocusTrap as d, useFullscreen as f, useIntersection as p, useInterval as m, useIsFirstRender as h, useIsomorphicEffect as g, useMediaQuery as _, useMergedRef as v, useMounted as y, useMutationObserver as b, usePrevious as x, useReducedMotion as S, useResizeObserver as C, useTimeout as w, useWindowEvent as T } from "@mantine/hooks";
3
+ import { experimental_useObject as E, useChat as D, useCompletion as O } from "@ai-sdk/react";
4
+ import { HotkeysProvider as k, useHotkeys as A, useHotkeysContext as j, useRecordHotkeys as M } from "react-hotkeys-hook";
5
+ //#region src/lib.ts
6
+ var N = { getInitialValueInEffect: !1 };
7
+ function P(e, t, n = N) {
8
+ return _(e, t, { getInitialValueInEffect: n.getInitialValueInEffect });
9
+ }
10
+ function F(e, t = N) {
11
+ return r(e, { getInitialValueInEffect: t.getInitialValueInEffect });
12
+ }
13
+ function I(e, t = N) {
14
+ return S(e, { getInitialValueInEffect: t.getInitialValueInEffect });
15
+ }
16
+ //#endregion
17
+ export { k as HotkeysProvider, e as assignRef, t as getHotkeyHandler, n as mergeRefs, D as useChat, F as useColorScheme, O as useCompletion, i as useDebouncedCallback, a as useDebouncedState, o as useDebouncedValue, s as useDidUpdate, c as useDocumentTitle, l as useElementSize, u as useEventListener, d as useFocusTrap, f as useFullscreen, A as useHotkeys, j as useHotkeysContext, p as useIntersection, m as useInterval, h as useIsFirstRender, g as useIsomorphicEffect, P as useMediaQuery, v as useMergedRef, y as useMounted, b as useMutationObserver, E as useObject, x as usePrevious, M as useRecordHotkeys, I as useReducedMotion, C as useResizeObserver, w as useTimeout, T as useWindowEvent };
@@ -0,0 +1,12 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { checkPermission as e, useAppContext as t } from "@vef-framework-react/core";
3
+ //#region src/use-authorized-items/index.ts
4
+ function n(n) {
5
+ let { hasPermission: r = () => !0 } = t();
6
+ return n.filter((t) => {
7
+ let { permTokens: n, checkMode: i = "any" } = t;
8
+ return e(r, n, i);
9
+ });
10
+ }
11
+ //#endregion
12
+ export { n as useAuthorizedItems };
@@ -0,0 +1,49 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { isNumber as e } from "@vef-framework-react/shared";
3
+ import { useEffect as t, useMemo as n, useState as r } from "react";
4
+ //#region src/use-breakpoints/index.ts
5
+ function i(t) {
6
+ return `(min-width: ${e(t) ? `${t}px` : t})`;
7
+ }
8
+ function a(a, o = {}) {
9
+ let { initialBreakpoint: s, getInitialValueInEffect: c = !1 } = o, l = n(() => Object.entries(a).map(([t, n]) => ({
10
+ name: t,
11
+ value: n,
12
+ query: i(n),
13
+ order: e(n) ? n : Number.parseInt(n)
14
+ })).toSorted((e, t) => e.order - t.order), [a]), [u, d] = r(() => {
15
+ if (globalThis.window === void 0 || c) return {
16
+ current: s,
17
+ value: l.find((e) => e.name === s)?.value,
18
+ matches: s ? [s] : []
19
+ };
20
+ let e = l.filter((e) => globalThis.matchMedia(e.query).matches), t = e.at(-1);
21
+ return {
22
+ current: t?.name,
23
+ value: t?.value,
24
+ matches: e.map((e) => e.name)
25
+ };
26
+ });
27
+ return t(() => {
28
+ let e = l.map((e) => ({
29
+ name: e.name,
30
+ value: e.value,
31
+ mql: globalThis.matchMedia(e.query)
32
+ }));
33
+ function t() {
34
+ let t = e.filter((e) => e.mql.matches), n = t.at(-1);
35
+ d({
36
+ current: n?.name,
37
+ value: n?.value,
38
+ matches: t.map((e) => e.name)
39
+ });
40
+ }
41
+ c && t();
42
+ for (let n of e) n.mql.addEventListener("change", t);
43
+ return () => {
44
+ for (let n of e) n.mql.removeEventListener("change", t);
45
+ };
46
+ }, [c, l]), u;
47
+ }
48
+ //#endregion
49
+ export { a as useBreakpoints };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { checkPermission as e, useAppContext as t } from "@vef-framework-react/core";
3
+ //#region src/use-check-permission/index.ts
4
+ function n() {
5
+ let { hasPermission: n = () => !0 } = t();
6
+ return (t, r) => e(n, t, r);
7
+ }
8
+ //#endregion
9
+ export { n as useCheckPermission };
@@ -0,0 +1,22 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { skipQueryToken as e, useAppContext as t, useQuery as n } from "@vef-framework-react/core";
3
+ import { isEmpty as r, isFunction as i } from "@vef-framework-react/shared";
4
+ import { useEffect as a, useRef as o } from "react";
5
+ //#region src/use-data-dict-query/index.ts
6
+ function s({ dataDictKey: s, onFetch: c, ...l }) {
7
+ let { dataDictQueryFn: u } = t();
8
+ if (!i(u)) throw Error("Data dictionary query function is not provided in the app context.");
9
+ let d = o(c);
10
+ d.current = c;
11
+ let f = n({
12
+ ...l,
13
+ queryFn: r(s) ? e : u,
14
+ queryKey: [u.key, s],
15
+ staleTime: l?.staleTime ?? Infinity
16
+ });
17
+ return a(() => {
18
+ d.current && f.promise.then(d.current);
19
+ }, [f.promise]), f;
20
+ }
21
+ //#endregion
22
+ export { s as useDataDictQuery };
@@ -0,0 +1,50 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useDataDictQuery as e } from "../use-data-dict-query/index.js";
3
+ import { skipQueryToken as t, useQuery as n } from "@vef-framework-react/core";
4
+ import { get as r, isEmpty as i, isFunction as a, isNullish as o, isString as s, withPinyin as c } from "@vef-framework-react/shared";
5
+ import { useMemo as l } from "react";
6
+ //#region src/use-data-options/index.ts
7
+ function u(e, t, n) {
8
+ return t ? a(t) ? t(e) : r(e, t) : e[n];
9
+ }
10
+ function d(e, t, n) {
11
+ let { labelKey: r, valueKey: i, disabledKey: a, descriptionKey: s, childrenKey: l } = t, f = u(e, r, "label"), p = u(e, i, "value"), m = u(e, a, "disabled"), h = u(e, s, "description"), g = u(e, l, "children"), _ = {
12
+ ...e,
13
+ label: f,
14
+ value: p,
15
+ ...!o(m) && { disabled: m },
16
+ ...!o(h) && { description: h }
17
+ }, v = n ? c(_, "label", "description") : _;
18
+ return Array.isArray(g) && g.length > 0 && (v.children = g.map((e) => d(e, t, n))), v;
19
+ }
20
+ function f(e, t, n) {
21
+ return !e || i(e) ? [] : e.map((e) => d(e, t, n));
22
+ }
23
+ function p({ queryOptions: r, dataDictKey: i, labelKey: a, valueKey: o, disabledKey: c, descriptionKey: u, childrenKey: d, withPinyin: p = !1 }) {
24
+ let m = s(i) && i.length > 0, h = n({
25
+ ...r,
26
+ queryFn: m ? t : r?.queryFn
27
+ }), g = e({ dataDictKey: i }), { data: _, ...v } = m ? g : h, y = l(() => ({
28
+ labelKey: a,
29
+ valueKey: o,
30
+ disabledKey: c,
31
+ descriptionKey: u,
32
+ childrenKey: d
33
+ }), [
34
+ a,
35
+ o,
36
+ c,
37
+ u,
38
+ d
39
+ ]);
40
+ return {
41
+ options: l(() => f(_, y, p), [
42
+ _,
43
+ y,
44
+ p
45
+ ]),
46
+ ...v
47
+ };
48
+ }
49
+ //#endregion
50
+ export { p as useDataOptionsQuery };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useDeepCompare as e } from "../use-deep-compare/index.js";
3
+ import { useCallback as t } from "react";
4
+ //#region src/use-deep-callback/index.ts
5
+ function n(n, r) {
6
+ return t(n, e(r));
7
+ }
8
+ //#endregion
9
+ export { n as useDeepCallback };
@@ -0,0 +1,17 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { isDeepEqual as e } from "@vef-framework-react/shared";
3
+ import { useRef as t } from "react";
4
+ //#region src/use-deep-compare/index.ts
5
+ function n(e) {
6
+ let n = t(void 0), i = t(0);
7
+ return r(n.current, e) || (n.current = e, i.current += 1), [i.current];
8
+ }
9
+ function r(t, n) {
10
+ if (t === void 0 || n === void 0) return !1;
11
+ if (Object.is(t, n)) return !0;
12
+ if (t.length !== n.length) return !1;
13
+ for (let [r, i] of t.entries()) if (!e(i, n[r])) return !1;
14
+ return !0;
15
+ }
16
+ //#endregion
17
+ export { n as useDeepCompare };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useDeepCompare as e } from "../use-deep-compare/index.js";
3
+ import { useEffect as t } from "react";
4
+ //#region src/use-deep-effect/index.ts
5
+ function n(n, r) {
6
+ t(n, e(r));
7
+ }
8
+ //#endregion
9
+ export { n as useDeepEffect };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useIsomorphicEffect as e } from "../lib.js";
3
+ import { useDeepCompare as t } from "../use-deep-compare/index.js";
4
+ //#region src/use-deep-isomorphic-effect/index.ts
5
+ function n(n, r) {
6
+ e(n, t(r));
7
+ }
8
+ //#endregion
9
+ export { n as useDeepIsomorphicEffect };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useDeepCompare as e } from "../use-deep-compare/index.js";
3
+ import { useLayoutEffect as t } from "react";
4
+ //#region src/use-deep-layout-effect/index.ts
5
+ function n(n, r) {
6
+ t(n, e(r));
7
+ }
8
+ //#endregion
9
+ export { n as useDeepLayoutEffect };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useDeepCompare as e } from "../use-deep-compare/index.js";
3
+ import { useMemo as t } from "react";
4
+ //#region src/use-deep-memo/index.ts
5
+ function n(n, r) {
6
+ return t(n, e(r));
7
+ }
8
+ //#endregion
9
+ export { n as useDeepMemo };
@@ -0,0 +1,21 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useLatest as e } from "../use-latest/index.js";
3
+ import { useEffect as t } from "react";
4
+ //#region src/use-document-event/index.ts
5
+ function n(n, r, i) {
6
+ let a = e(r);
7
+ t(() => {
8
+ function e(e) {
9
+ a.current.call(this, e);
10
+ }
11
+ return document.addEventListener(n, e, i), () => {
12
+ document.removeEventListener(n, e, i);
13
+ };
14
+ }, [
15
+ n,
16
+ i,
17
+ a
18
+ ]);
19
+ }
20
+ //#endregion
21
+ export { n as useDocumentEvent };
@@ -0,0 +1,13 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import "@vef-framework-react/shared";
3
+ import { useEffect as e } from "react";
4
+ //#region src/use-emitter-event/index.ts
5
+ function t(t, n, r) {
6
+ e(() => t.on(n, r), [
7
+ t,
8
+ n,
9
+ r
10
+ ]);
11
+ }
12
+ //#endregion
13
+ export { t as useEmitterEvent };
@@ -0,0 +1,12 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useIsFetching as e } from "@vef-framework-react/core";
3
+ //#region src/use-has-fetching/index.ts
4
+ function t(t, n) {
5
+ return e({
6
+ queryKey: n ? [t, n] : [t],
7
+ exact: !1,
8
+ type: "active"
9
+ }) > 0;
10
+ }
11
+ //#endregion
12
+ export { t as useHasFetching };
@@ -0,0 +1,11 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useIsMutating as e } from "@vef-framework-react/core";
3
+ //#region src/use-has-mutating/index.ts
4
+ function t(t) {
5
+ return e({
6
+ mutationKey: [t],
7
+ exact: !1
8
+ }) > 0;
9
+ }
10
+ //#endregion
11
+ export { t as useHasMutating };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { checkPermission as e, useAppContext as t } from "@vef-framework-react/core";
3
+ //#region src/use-is-authorized/index.ts
4
+ function n(n, r) {
5
+ let { hasPermission: i = () => !0 } = t();
6
+ return e(i, n, r);
7
+ }
8
+ //#endregion
9
+ export { n as useIsAuthorized };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useRef as e } from "react";
3
+ //#region src/use-latest/index.ts
4
+ function t(t) {
5
+ let n = e(t);
6
+ return n.current = t, n;
7
+ }
8
+ //#endregion
9
+ export { t as useLatest };
@@ -0,0 +1,15 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useCallback as e, useEffect as t, useRef as n, useState as r } from "react";
3
+ //#region src/use-raf-state/index.ts
4
+ function i(i) {
5
+ let a = n(0), [o, s] = r(i), c = e((e) => {
6
+ cancelAnimationFrame(a.current), a.current = requestAnimationFrame(() => {
7
+ s(e);
8
+ });
9
+ }, []);
10
+ return t(() => () => {
11
+ cancelAnimationFrame(a.current);
12
+ }, []), [o, c];
13
+ }
14
+ //#endregion
15
+ export { i as useRafState };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useShallowCompare as e } from "../use-shallow-compare/index.js";
3
+ import { useCallback as t } from "react";
4
+ //#region src/use-shallow-callback/index.ts
5
+ function n(n, r) {
6
+ return t(n, e(r));
7
+ }
8
+ //#endregion
9
+ export { n as useShallowCallback };
@@ -0,0 +1,17 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { isShallowEqual as e } from "@vef-framework-react/shared";
3
+ import { useRef as t } from "react";
4
+ //#region src/use-shallow-compare/index.ts
5
+ function n(e) {
6
+ let n = t(void 0), i = t(0);
7
+ return r(n.current, e) || (n.current = e, i.current += 1), [i.current];
8
+ }
9
+ function r(t, n) {
10
+ if (t === void 0 || n === void 0) return !1;
11
+ if (t === n) return !0;
12
+ if (t.length !== n.length) return !1;
13
+ for (let [r, i] of t.entries()) if (!e(i, n[r])) return !1;
14
+ return !0;
15
+ }
16
+ //#endregion
17
+ export { n as useShallowCompare };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useShallowCompare as e } from "../use-shallow-compare/index.js";
3
+ import { useEffect as t } from "react";
4
+ //#region src/use-shallow-effect/index.ts
5
+ function n(n, r) {
6
+ t(n, e(r));
7
+ }
8
+ //#endregion
9
+ export { n as useShallowEffect };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useIsomorphicEffect as e } from "../lib.js";
3
+ import { useShallowCompare as t } from "../use-shallow-compare/index.js";
4
+ //#region src/use-shallow-isomorphic-effect/index.ts
5
+ function n(n, r) {
6
+ e(n, t(r));
7
+ }
8
+ //#endregion
9
+ export { n as useShallowIsomorphicEffect };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useShallowCompare as e } from "../use-shallow-compare/index.js";
3
+ import { useLayoutEffect as t } from "react";
4
+ //#region src/use-shallow-layout-effect/index.ts
5
+ function n(n, r) {
6
+ t(n, e(r));
7
+ }
8
+ //#endregion
9
+ export { n as useShallowLayoutEffect };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useShallowCompare as e } from "../use-shallow-compare/index.js";
3
+ import { useMemo as t } from "react";
4
+ //#region src/use-shallow-memo/index.ts
5
+ function n(n, r) {
6
+ return t(n, e(r));
7
+ }
8
+ //#endregion
9
+ export { n as useShallowMemo };
@@ -0,0 +1,9 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useRef as e } from "react";
3
+ //#region src/use-singleton/index.ts
4
+ function t(t) {
5
+ let n = e(void 0);
6
+ return n.current === void 0 && (n.current = t()), n;
7
+ }
8
+ //#endregion
9
+ export { t as useSingleton };
@@ -0,0 +1,34 @@
1
+ /*! @vef-framework-react/hooks v2.1.0 made by Venus | 2026-03-27T08:01:42.568Z */
2
+ import { useWindowEvent as e } from "../lib.js";
3
+ import { useRafState as t } from "../use-raf-state/index.js";
4
+ import { isUndefined as n } from "@vef-framework-react/shared";
5
+ import { useEffect as r } from "react";
6
+ //#region src/use-viewport-size/index.ts
7
+ var i = { passive: !0 };
8
+ function a() {
9
+ let a = !n(globalThis.window), [o, s] = t(() => ({
10
+ width: a ? window.innerWidth : 0,
11
+ height: a ? window.innerHeight : 0
12
+ }));
13
+ return r(() => {
14
+ function e() {
15
+ n(globalThis.window) || s({
16
+ width: window.innerWidth,
17
+ height: window.innerHeight
18
+ });
19
+ }
20
+ e();
21
+ }, [s]), e("resize", () => {
22
+ n(globalThis.window) || s({
23
+ width: window.innerWidth,
24
+ height: window.innerHeight
25
+ });
26
+ }, i), e("orientationchange", () => {
27
+ n(globalThis.window) || s({
28
+ width: window.innerWidth,
29
+ height: window.innerHeight
30
+ });
31
+ }, i), o;
32
+ }
33
+ //#endregion
34
+ export { a as useViewportSize };