minimal-shared 1.1.3 → 1.1.4
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/hooks/index.cjs +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/use-back-to-top/index.cjs +1 -1
- package/dist/hooks/use-back-to-top/index.js +1 -1
- package/dist/hooks/use-back-to-top/use-back-to-top.cjs +1 -1
- package/dist/hooks/use-back-to-top/use-back-to-top.js +1 -1
- package/dist/hooks/use-countdown-seconds/index.cjs +1 -1
- package/dist/hooks/use-countdown-seconds/index.js +1 -1
- package/dist/hooks/use-countdown-seconds/use-countdown-seconds.cjs +1 -1
- package/dist/hooks/use-countdown-seconds/use-countdown-seconds.js +1 -1
- package/dist/hooks/use-double-click/index.cjs +1 -1
- package/dist/hooks/use-double-click/use-double-click.cjs +1 -1
- package/package.json +16 -12
package/dist/hooks/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var L=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
"use strict";var L=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var $=Object.prototype.hasOwnProperty;var W=(e,t)=>{for(var o in t)L(e,o,{get:t[o],enumerable:!0})},N=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of _(t))!$.call(e,n)&&n!==o&&L(e,n,{get:()=>t[n],enumerable:!(r=B(t,n))||r.enumerable});return e};var J=e=>N(L({},"__esModule",{value:!0}),e);var de={};W(de,{updateSelectedItems:()=>j,useBackToTop:()=>ee,useBoolean:()=>G,useClientRect:()=>oe,useCookies:()=>K,useCopyToClipboard:()=>fe,useCountdownDate:()=>ae,useCountdownSeconds:()=>pe,useDebounce:()=>Q,useDoubleClick:()=>re,useIsClient:()=>Z,useLocalStorage:()=>ie,useMultiSelect:()=>ne,usePopover:()=>q,usePopoverHover:()=>le,useScrollOffsetTop:()=>ue,useSetState:()=>X,useTabs:()=>Y});module.exports=J(de);var k=require("react");function Y(e=!1){let[t,o]=(0,k.useState)(e),r=(0,k.useCallback)((i,s)=>{o(s)},[]),n=(0,k.useCallback)(()=>{o(e)},[e]);return{value:t,setValue:o,onChange:r,reset:n}}var x=require("react");function G(e=!1){let[t,o]=(0,x.useState)(e),r=(0,x.useCallback)(()=>{o(!0)},[]),n=(0,x.useCallback)(()=>{o(!1)},[]),i=(0,x.useCallback)(()=>{o(s=>!s)},[]);return{value:t,onTrue:r,onFalse:n,onToggle:i,setValue:o}}var E=require("react");function q(){let[e,t]=(0,E.useState)(null),o=(0,E.useCallback)(n=>{t(n.currentTarget)},[]),r=(0,E.useCallback)(()=>{t(null)},[]);return{open:!!e,anchorEl:e,onOpen:o,onClose:r,setAnchorEl:t}}var m=require("react");function A(e){if(!e||typeof e!="string")return console.warn("Invalid cookie key provided"),null;try{let t=`${e}=`,n=decodeURIComponent(document.cookie).split("; ").find(s=>s.startsWith(t));if(!n)return null;let i=n.substring(t.length);try{return JSON.parse(i)}catch{return i}}catch(t){return console.error("Error retrieving cookie:",t),null}}function U(e,t,o){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{daysUntilExpiration:r=0,sameSite:n="Strict",secure:i=!1,path:s="/",domain:a}=o??{};try{let l=encodeURIComponent(typeof t=="string"?t:JSON.stringify(t)),u=[`${e}=${l}`,`path=${s}`,n&&`SameSite=${n}`,i&&"Secure",a&&`domain=${a}`];if(r>0){let p=new Date(Date.now()+r*24*60*60*1e3);u.push(`expires=${p.toUTCString()}`)}document.cookie=u.filter(Boolean).join("; ")}catch(l){console.error("Error setting cookie:",l)}}function P(e,t){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{path:o="/",domain:r}=t??{};try{let n=[`${e}=`,"expires=Thu, 01 Jan 1970 00:00:00 GMT",`path=${o}`,r&&`domain=${r}`,"Secure"];document.cookie=n.filter(Boolean).join("; ")}catch(n){console.error("Error removing cookie:",n)}}function K(e,t,o){let{initializeWithValue:r=!0,...n}=o??{},i=t&&typeof t=="object",[s,a]=(0,m.useState)(t);(0,m.useEffect)(()=>{let c=A(e);c?a(i?S=>({...S,...c}):c):t&&r&&U(e,t,n)},[]);let l=(0,m.useCallback)(c=>{i?a(S=>{let I={...S,...c};return U(e,I,n),I}):(U(e,c,n),a(c))},[n,i,e]),u=(0,m.useCallback)((c,S)=>{i&&l({[c]:S})},[i,l]),p=(0,m.useCallback)(c=>{a(c??t),P(e)},[t,e]);return(0,m.useMemo)(()=>({state:s,setState:l,setField:u,resetState:p}),[p,u,l,s])}var M=require("react");function Q(e,t=1e3){let[o,r]=(0,M.useState)(e);return(0,M.useEffect)(()=>{let n=setTimeout(()=>{r(e)},t);return()=>{clearTimeout(n)}},[e,t]),o}var C=require("react");function X(e){let[t,o]=(0,C.useState)(e),r=(0,C.useCallback)(s=>{o(a=>({...a,...s}))},[]),n=(0,C.useCallback)((s,a)=>{r({[s]:a})},[r]),i=(0,C.useCallback)(s=>{o(s??e)},[e]);return{state:t,setState:r,setField:n,resetState:i}}var O=require("react");function Z(){let[e,t]=(0,O.useState)(!1);return(0,O.useEffect)(()=>{t(!0)},[]),e}var g=require("react");function ee(e,t){let[o,r]=(0,g.useState)(!1),n=te(e),i=(0,g.useCallback)(()=>{let l=window.innerHeight,u=Math.round(window.scrollY),p=document.body.offsetHeight,f=Math.round(u/(p-l)*100);if(n.type==="percentage")r(f>=n.value);else{let c=p-l-u;r(n.value>=c)}},[n.type,n.value]),s=(0,g.useMemo)(()=>{let l;return()=>{clearTimeout(l),l=setTimeout(i,100)}},[i]);return(0,g.useEffect)(()=>{let l=t?s:i;return window.addEventListener("scroll",l),()=>{window.removeEventListener("scroll",l)}},[s,i,t]),{isVisible:o,onBackToTop:()=>{window.scrollTo({top:0,behavior:"smooth"})},setIsVisible:r}}function te(e){let t,o;if(typeof e=="string")if(e.endsWith("%")){if(t=Number(e.slice(0,-1)),isNaN(t))throw new Error("Invalid percentage value");o="percentage"}else throw new Error("String input must end with %");else t=e,o="number";return{value:t,type:o}}var d=require("react");function oe(e,t){let o=(0,d.useRef)(null),r=e||o,[n,i]=(0,d.useState)(void 0),[s,a]=(0,d.useState)(void 0),l=typeof window<"u"?d.useLayoutEffect:d.useEffect,u=(0,d.useCallback)(()=>{if(r.current){let c=r.current.getBoundingClientRect();i(c),a({scrollWidth:r.current.scrollWidth,scrollHeight:r.current.scrollHeight})}},[r]);l(()=>{u()},[u]),(0,d.useEffect)(()=>{let c=t||"resize";return window.addEventListener(c,u),()=>{window.removeEventListener(c,u)}},[t,u]);let p=(0,d.useMemo)(()=>n,[n]),f=(0,d.useMemo)(()=>s,[s]);return{elementRef:r,top:p?.top??0,right:p?.right??0,bottom:p?.bottom??0,left:p?.left??0,x:p?.x??0,y:p?.y??0,width:p?.width??0,height:p?.height??0,scrollWidth:f?.scrollWidth??0,scrollHeight:f?.scrollHeight??0}}var h=require("react");function ne(e,t){let[o,r]=(0,h.useState)(t??[]),n=(0,h.useCallback)(l=>{r(u=>j(u,l))},[]),i=(0,h.useCallback)(()=>{r(l=>l.length===e.length?[]:e)},[e]),s=(0,h.useCallback)(()=>{r([])},[]),a=(0,h.useMemo)(()=>o.length===0?"unchecked":o.length===e.length?"checked":"indeterminate",[e.length,o.length]);return{values:o,status:a,setValues:r,onSelectAllItems:i,onDeSelectAllItems:s,onToggleSelectItem:n}}function j(e,t){return e.includes(t)?e.filter(o=>o!==t):[...e,t]}var w=require("react");function re({click:e,doubleClick:t,timeout:o=250}){let r=(0,w.useRef)(null),n=(0,w.useCallback)(()=>{r.current&&(clearTimeout(r.current),r.current=null)},[]);return(0,w.useCallback)(s=>{n(),e&&s.detail===1&&(r.current=setTimeout(()=>{e(s)},o)),s.detail%2===0&&t(s)},[e,t,o,n])}var T=require("react");function F(e,t){if(!se())return t??null;let o=localStorage.getItem(e);if(o!=="undefined"){if(o)try{return JSON.parse(o)}catch{return o??t??null}return t??null}}function D(e,t){try{let o=JSON.stringify(t);window.localStorage.setItem(e,o)}catch(o){console.error("Error while setting storage:",o)}}function z(e){try{window.localStorage.removeItem(e)}catch(t){console.error("Error while removing from storage:",t)}}function se(){try{let e="__some_random_key_you_are_not_going_to_use__";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch{return!1}}function ie(e,t,o){let{initializeWithValue:r=!0}=o??{},n=t&&typeof t=="object",[i,s]=(0,T.useState)(t);(0,T.useEffect)(()=>{let f=F(e);f?s(n?c=>({...c,...f}):f):t&&r&&D(e,t)},[]);let a=(0,T.useCallback)(f=>{n?s(c=>{let S={...c,...f};return D(e,S),S}):(D(e,f),s(f))},[e,n]),l=(0,T.useCallback)((f,c)=>{n&&a({[f]:c})},[n,a]),u=(0,T.useCallback)(f=>{s(f??t),z(e)},[t,e]);return(0,T.useMemo)(()=>({state:i,setState:a,setField:l,resetState:u}),[u,l,a,i])}var y=require("react");function le(e){let t=(0,y.useRef)(null),o=e||t,[r,n]=(0,y.useState)(!1),i=(0,y.useCallback)(()=>{n(!0)},[]),s=(0,y.useCallback)(()=>{n(!1)},[]);return{elementRef:o,anchorEl:o.current,open:r,onOpen:i,onClose:s,setOpen:n}}var R=require("react");function ae(e,t="- -"){let[o,r]=(0,R.useState)({days:t,hours:t,minutes:t,seconds:t}),n=(0,R.useCallback)(()=>{let i=new Date,{days:s,hours:a,minutes:l,seconds:u}=ce(e,i);r({days:V(s),hours:V(a),minutes:V(l),seconds:V(u)})},[e]);return(0,R.useEffect)(()=>{n();let i=setInterval(n,1e3);return()=>clearInterval(i)},[]),o}function V(e){return String(e).length===1?`0${e}`:`${e}`}function ce(e,t){let o=e.getTime()-t.getTime();return{days:Math.floor(o/(1e3*60*60*24)),hours:Math.floor(o%(1e3*60*60*24)/(1e3*60*60)),minutes:Math.floor(o%(1e3*60*60)/(1e3*60)),seconds:Math.floor(o%(1e3*60)/1e3)}}var b=require("react");function ue(e=0){let t=(0,b.useRef)(null),[o,r]=(0,b.useState)(!1),n=(0,b.useCallback)(()=>{let i=window.scrollY;if(t.current){let s=t.current.offsetTop;r(i>s-e)}else r(i>e)},[e]);return(0,b.useEffect)(()=>(n(),window.addEventListener("scroll",n),()=>{window.removeEventListener("scroll",n)}),[n]),{elementRef:t,offsetTop:o}}var v=require("react");function pe(e){let[t,o]=(0,v.useState)(e),[r,n]=(0,v.useState)(!1),i=(0,v.useCallback)(()=>{n(!0)},[]),s=(0,v.useCallback)(()=>{n(!1),o(e)},[e]);return(0,v.useEffect)(()=>{let a=null;return r&&t>0?a=setInterval(()=>{o(l=>l-1)},1e3):t<=0&&n(!1),()=>{a&&clearInterval(a)}},[r,t]),{value:t,setValue:o,isCounting:r,start:i,reset:s}}var H=require("react");function fe(){let[e,t]=(0,H.useState)(null);return{copy:(0,H.useCallback)(async r=>{if(!navigator?.clipboard)return console.warn("Clipboard not supported"),!1;try{return await navigator.clipboard.writeText(r),t(r),!0}catch(n){return console.warn("Copy failed",n),t(null),!1}},[t]),copiedText:e}}0&&(module.exports={updateSelectedItems,useBackToTop,useBoolean,useClientRect,useCookies,useCopyToClipboard,useCountdownDate,useCountdownSeconds,useDebounce,useDoubleClick,useIsClient,useLocalStorage,useMultiSelect,usePopover,usePopoverHover,useScrollOffsetTop,useSetState,useTabs});
|
package/dist/hooks/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useState as A,useCallback as C}from"react";function Ce(e=!1){let[t,o]=A(e),r=C((i,s)=>{o(s)},[]),n=C(()=>{o(e)},[e]);return{value:t,setValue:o,onChange:r,reset:n}}import{useState as P,useCallback as g}from"react";function Ee(e=!1){let[t,o]=P(e),r=g(()=>{o(!0)},[]),n=g(()=>{o(!1)},[]),i=g(()=>{o(s=>!s)},[]);return{value:t,onTrue:r,onFalse:n,onToggle:i,setValue:o}}import{useState as j,useCallback as R}from"react";function Me(){let[e,t]=j(null),o=R(n=>{t(n.currentTarget)},[]),r=R(()=>{t(null)},[]);return{open:!!e,anchorEl:e,onOpen:o,onClose:r,setAnchorEl:t}}import{useMemo as F,useState as z,useEffect as B,useCallback as h}from"react";function k(e){if(!e||typeof e!="string")return console.warn("Invalid cookie key provided"),null;try{let t=`${e}=`,n=decodeURIComponent(document.cookie).split("; ").find(s=>s.startsWith(t));if(!n)return null;let i=n.substring(t.length);try{return JSON.parse(i)}catch{return i}}catch(t){return console.error("Error retrieving cookie:",t),null}}function m(e,t,o){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{daysUntilExpiration:r=0,sameSite:n="Strict",secure:i=!1,path:s="/",domain:a}=o??{};try{let l=encodeURIComponent(typeof t=="string"?t:JSON.stringify(t)),u=[`${e}=${l}`,`path=${s}`,n&&`SameSite=${n}`,i&&"Secure",a&&`domain=${a}`];if(r>0){let p=new Date(Date.now()+r*24*60*60*1e3);u.push(`expires=${p.toUTCString()}`)}document.cookie=u.filter(Boolean).join("; ")}catch(l){console.error("Error setting cookie:",l)}}function E(e,t){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{path:o="/",domain:r}=t??{};try{let n=[`${e}=`,"expires=Thu, 01 Jan 1970 00:00:00 GMT",`path=${o}`,r&&`domain=${r}`,"Secure"];document.cookie=n.filter(Boolean).join("; ")}catch(n){console.error("Error removing cookie:",n)}}function Le(e,t,o){let{initializeWithValue:r=!0,...n}=o??{},i=t&&typeof t=="object",[s,a]=z(t);B(()=>{let c=k(e);c?a(i?d=>({...d,...c}):c):t&&r&&m(e,t,n)},[]);let l=h(c=>{i?a(d=>{let x={...d,...c};return m(e,x,n),x}):(m(e,c,n),a(c))},[n,i,e]),u=h((c,d)=>{i&&l({[c]:d})},[i,l]),p=h(c=>{a(c??t),E(e)},[t,e]);return F(()=>({state:s,setState:l,setField:u,resetState:p}),[p,u,l,s])}import{useState as
|
|
1
|
+
import{useState as A,useCallback as C}from"react";function Ce(e=!1){let[t,o]=A(e),r=C((i,s)=>{o(s)},[]),n=C(()=>{o(e)},[e]);return{value:t,setValue:o,onChange:r,reset:n}}import{useState as P,useCallback as g}from"react";function Ee(e=!1){let[t,o]=P(e),r=g(()=>{o(!0)},[]),n=g(()=>{o(!1)},[]),i=g(()=>{o(s=>!s)},[]);return{value:t,onTrue:r,onFalse:n,onToggle:i,setValue:o}}import{useState as j,useCallback as R}from"react";function Me(){let[e,t]=j(null),o=R(n=>{t(n.currentTarget)},[]),r=R(()=>{t(null)},[]);return{open:!!e,anchorEl:e,onOpen:o,onClose:r,setAnchorEl:t}}import{useMemo as F,useState as z,useEffect as B,useCallback as h}from"react";function k(e){if(!e||typeof e!="string")return console.warn("Invalid cookie key provided"),null;try{let t=`${e}=`,n=decodeURIComponent(document.cookie).split("; ").find(s=>s.startsWith(t));if(!n)return null;let i=n.substring(t.length);try{return JSON.parse(i)}catch{return i}}catch(t){return console.error("Error retrieving cookie:",t),null}}function m(e,t,o){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{daysUntilExpiration:r=0,sameSite:n="Strict",secure:i=!1,path:s="/",domain:a}=o??{};try{let l=encodeURIComponent(typeof t=="string"?t:JSON.stringify(t)),u=[`${e}=${l}`,`path=${s}`,n&&`SameSite=${n}`,i&&"Secure",a&&`domain=${a}`];if(r>0){let p=new Date(Date.now()+r*24*60*60*1e3);u.push(`expires=${p.toUTCString()}`)}document.cookie=u.filter(Boolean).join("; ")}catch(l){console.error("Error setting cookie:",l)}}function E(e,t){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{path:o="/",domain:r}=t??{};try{let n=[`${e}=`,"expires=Thu, 01 Jan 1970 00:00:00 GMT",`path=${o}`,r&&`domain=${r}`,"Secure"];document.cookie=n.filter(Boolean).join("; ")}catch(n){console.error("Error removing cookie:",n)}}function Le(e,t,o){let{initializeWithValue:r=!0,...n}=o??{},i=t&&typeof t=="object",[s,a]=z(t);B(()=>{let c=k(e);c?a(i?d=>({...d,...c}):c):t&&r&&m(e,t,n)},[]);let l=h(c=>{i?a(d=>{let x={...d,...c};return m(e,x,n),x}):(m(e,c,n),a(c))},[n,i,e]),u=h((c,d)=>{i&&l({[c]:d})},[i,l]),p=h(c=>{a(c??t),E(e)},[t,e]);return F(()=>({state:s,setState:l,setField:u,resetState:p}),[p,u,l,s])}import{useState as _,useEffect as $}from"react";function Pe(e,t=1e3){let[o,r]=_(e);return $(()=>{let n=setTimeout(()=>{r(e)},t);return()=>{clearTimeout(n)}},[e,t]),o}import{useState as W,useCallback as b}from"react";function ze(e){let[t,o]=W(e),r=b(s=>{o(a=>({...a,...s}))},[]),n=b((s,a)=>{r({[s]:a})},[r]),i=b(s=>{o(s??e)},[e]);return{state:t,setState:r,setField:n,resetState:i}}import{useState as N,useEffect as J}from"react";function $e(){let[e,t]=N(!1);return J(()=>{t(!0)},[]),e}import{useMemo as Y,useState as G,useEffect as q,useCallback as K}from"react";function Je(e,t){let[o,r]=G(!1),n=Q(e),i=K(()=>{let l=window.innerHeight,u=Math.round(window.scrollY),p=document.body.offsetHeight,f=Math.round(u/(p-l)*100);if(n.type==="percentage")r(f>=n.value);else{let c=p-l-u;r(n.value>=c)}},[n.type,n.value]),s=Y(()=>{let l;return()=>{clearTimeout(l),l=setTimeout(i,100)}},[i]);return q(()=>{let l=t?s:i;return window.addEventListener("scroll",l),()=>{window.removeEventListener("scroll",l)}},[s,i,t]),{isVisible:o,onBackToTop:()=>{window.scrollTo({top:0,behavior:"smooth"})},setIsVisible:r}}function Q(e){let t,o;if(typeof e=="string")if(e.endsWith("%")){if(t=Number(e.slice(0,-1)),isNaN(t))throw new Error("Invalid percentage value");o="percentage"}else throw new Error("String input must end with %");else t=e,o="number";return{value:t,type:o}}import{useRef as X,useMemo as w,useState as U,useEffect as M,useCallback as Z,useLayoutEffect as ee}from"react";function qe(e,t){let o=X(null),r=e||o,[n,i]=U(void 0),[s,a]=U(void 0),l=typeof window<"u"?ee:M,u=Z(()=>{if(r.current){let c=r.current.getBoundingClientRect();i(c),a({scrollWidth:r.current.scrollWidth,scrollHeight:r.current.scrollHeight})}},[r]);l(()=>{u()},[u]),M(()=>{let c=t||"resize";return window.addEventListener(c,u),()=>{window.removeEventListener(c,u)}},[t,u]);let p=w(()=>n,[n]),f=w(()=>s,[s]);return{elementRef:r,top:p?.top??0,right:p?.right??0,bottom:p?.bottom??0,left:p?.left??0,x:p?.x??0,y:p?.y??0,width:p?.width??0,height:p?.height??0,scrollWidth:f?.scrollWidth??0,scrollHeight:f?.scrollHeight??0}}import{useMemo as te,useState as oe,useCallback as v}from"react";function Xe(e,t){let[o,r]=oe(t??[]),n=v(l=>{r(u=>ne(u,l))},[]),i=v(()=>{r(l=>l.length===e.length?[]:e)},[e]),s=v(()=>{r([])},[]),a=te(()=>o.length===0?"unchecked":o.length===e.length?"checked":"indeterminate",[e.length,o.length]);return{values:o,status:a,setValues:r,onSelectAllItems:i,onDeSelectAllItems:s,onToggleSelectItem:n}}function ne(e,t){return e.includes(t)?e.filter(o=>o!==t):[...e,t]}import{useRef as re,useCallback as O}from"react";function tt({click:e,doubleClick:t,timeout:o=250}){let r=re(null),n=O(()=>{r.current&&(clearTimeout(r.current),r.current=null)},[]);return O(s=>{n(),e&&s.detail===1&&(r.current=setTimeout(()=>{e(s)},o)),s.detail%2===0&&t(s)},[e,t,o,n])}import{useMemo as ie,useState as le,useEffect as ae,useCallback as y}from"react";function D(e,t){if(!se())return t??null;let o=localStorage.getItem(e);if(o!=="undefined"){if(o)try{return JSON.parse(o)}catch{return o??t??null}return t??null}}function T(e,t){try{let o=JSON.stringify(t);window.localStorage.setItem(e,o)}catch(o){console.error("Error while setting storage:",o)}}function V(e){try{window.localStorage.removeItem(e)}catch(t){console.error("Error while removing from storage:",t)}}function se(){try{let e="__some_random_key_you_are_not_going_to_use__";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch{return!1}}function it(e,t,o){let{initializeWithValue:r=!0}=o??{},n=t&&typeof t=="object",[i,s]=le(t);ae(()=>{let f=D(e);f?s(n?c=>({...c,...f}):f):t&&r&&T(e,t)},[]);let a=y(f=>{n?s(c=>{let d={...c,...f};return T(e,d),d}):(T(e,f),s(f))},[e,n]),l=y((f,c)=>{n&&a({[f]:c})},[n,a]),u=y(f=>{s(f??t),V(e)},[t,e]);return ie(()=>({state:i,setState:a,setField:l,resetState:u}),[u,l,a,i])}import{useRef as ce,useState as ue,useCallback as H}from"react";function ct(e){let t=ce(null),o=e||t,[r,n]=ue(!1),i=H(()=>{n(!0)},[]),s=H(()=>{n(!1)},[]);return{elementRef:o,anchorEl:o.current,open:r,onOpen:i,onClose:s,setOpen:n}}import{useState as pe,useEffect as fe,useCallback as de}from"react";function ft(e,t="- -"){let[o,r]=pe({days:t,hours:t,minutes:t,seconds:t}),n=de(()=>{let i=new Date,{days:s,hours:a,minutes:l,seconds:u}=me(e,i);r({days:S(s),hours:S(a),minutes:S(l),seconds:S(u)})},[e]);return fe(()=>{n();let i=setInterval(n,1e3);return()=>clearInterval(i)},[]),o}function S(e){return String(e).length===1?`0${e}`:`${e}`}function me(e,t){let o=e.getTime()-t.getTime();return{days:Math.floor(o/(1e3*60*60*24)),hours:Math.floor(o%(1e3*60*60*24)/(1e3*60*60)),minutes:Math.floor(o%(1e3*60*60)/(1e3*60)),seconds:Math.floor(o%(1e3*60)/1e3)}}import{useRef as Te,useState as Se,useEffect as ge,useCallback as he}from"react";function Tt(e=0){let t=Te(null),[o,r]=Se(!1),n=he(()=>{let i=window.scrollY;if(t.current){let s=t.current.offsetTop;r(i>s-e)}else r(i>e)},[e]);return ge(()=>(n(),window.addEventListener("scroll",n),()=>{window.removeEventListener("scroll",n)}),[n]),{elementRef:t,offsetTop:o}}import{useState as L,useEffect as be,useCallback as I}from"react";function ht(e){let[t,o]=L(e),[r,n]=L(!1),i=I(()=>{n(!0)},[]),s=I(()=>{n(!1),o(e)},[e]);return be(()=>{let a=null;return r&&t>0?a=setInterval(()=>{o(l=>l-1)},1e3):t<=0&&n(!1),()=>{a&&clearInterval(a)}},[r,t]),{value:t,setValue:o,isCounting:r,start:i,reset:s}}import{useState as ve,useCallback as ye}from"react";function yt(){let[e,t]=ve(null);return{copy:ye(async r=>{if(!navigator?.clipboard)return console.warn("Clipboard not supported"),!1;try{return await navigator.clipboard.writeText(r),t(r),!0}catch(n){return console.warn("Copy failed",n),t(null),!1}},[t]),copiedText:e}}export{ne as updateSelectedItems,Je as useBackToTop,Ee as useBoolean,qe as useClientRect,Le as useCookies,yt as useCopyToClipboard,ft as useCountdownDate,ht as useCountdownSeconds,Pe as useDebounce,tt as useDoubleClick,$e as useIsClient,it as useLocalStorage,Xe as useMultiSelect,Me as usePopover,ct as usePopoverHover,Tt as useScrollOffsetTop,ze as useSetState,Ce as useTabs};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var c=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var
|
|
1
|
+
"use strict";var c=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var T=(t,e)=>{for(var n in e)c(t,n,{get:e[n],enumerable:!0})},h=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of f(e))!b.call(t,o)&&o!==n&&c(t,o,{get:()=>e[o],enumerable:!(i=w(e,o))||i.enumerable});return t};var g=t=>h(c({},"__esModule",{value:!0}),t);var S={};T(S,{useBackToTop:()=>v});module.exports=g(S);var s=require("react");function v(t,e){let[n,i]=(0,s.useState)(!1),o=y(t),l=(0,s.useCallback)(()=>{let r=window.innerHeight,u=Math.round(window.scrollY),p=document.body.offsetHeight,d=Math.round(u/(p-r)*100);if(o.type==="percentage")i(d>=o.value);else{let m=p-r-u;i(o.value>=m)}},[o.type,o.value]),a=(0,s.useMemo)(()=>{let r;return()=>{clearTimeout(r),r=setTimeout(l,100)}},[l]);return(0,s.useEffect)(()=>{let r=e?a:l;return window.addEventListener("scroll",r),()=>{window.removeEventListener("scroll",r)}},[a,l,e]),{isVisible:n,onBackToTop:()=>{window.scrollTo({top:0,behavior:"smooth"})},setIsVisible:i}}function y(t){let e,n;if(typeof t=="string")if(t.endsWith("%")){if(e=Number(t.slice(0,-1)),isNaN(e))throw new Error("Invalid percentage value");n="percentage"}else throw new Error("String input must end with %");else e=t,n="number";return{value:e,type:n}}0&&(module.exports={useBackToTop});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useMemo as
|
|
1
|
+
import{useMemo as d,useState as m,useEffect as w,useCallback as f}from"react";function g(o,t){let[n,i]=m(!1),r=b(o),s=f(()=>{let e=window.innerHeight,c=Math.round(window.scrollY),a=document.body.offsetHeight,u=Math.round(c/(a-e)*100);if(r.type==="percentage")i(u>=r.value);else{let p=a-e-c;i(r.value>=p)}},[r.type,r.value]),l=d(()=>{let e;return()=>{clearTimeout(e),e=setTimeout(s,100)}},[s]);return w(()=>{let e=t?l:s;return window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}},[l,s,t]),{isVisible:n,onBackToTop:()=>{window.scrollTo({top:0,behavior:"smooth"})},setIsVisible:i}}function b(o){let t,n;if(typeof o=="string")if(o.endsWith("%")){if(t=Number(o.slice(0,-1)),isNaN(t))throw new Error("Invalid percentage value");n="percentage"}else throw new Error("String input must end with %");else t=o,n="number";return{value:t,type:n}}export{g as useBackToTop};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var c=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var T=(
|
|
1
|
+
"use strict";var c=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var T=(t,e)=>{for(var n in e)c(t,n,{get:e[n],enumerable:!0})},h=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of b(e))!f.call(t,o)&&o!==n&&c(t,o,{get:()=>e[o],enumerable:!(i=w(e,o))||i.enumerable});return t};var g=t=>h(c({},"__esModule",{value:!0}),t);var S={};T(S,{useBackToTop:()=>v});module.exports=g(S);var s=require("react");function v(t,e){let[n,i]=(0,s.useState)(!1),o=y(t),l=(0,s.useCallback)(()=>{let r=window.innerHeight,u=Math.round(window.scrollY),p=document.body.offsetHeight,d=Math.round(u/(p-r)*100);if(o.type==="percentage")i(d>=o.value);else{let m=p-r-u;i(o.value>=m)}},[o.type,o.value]),a=(0,s.useMemo)(()=>{let r;return()=>{clearTimeout(r),r=setTimeout(l,100)}},[l]);return(0,s.useEffect)(()=>{let r=e?a:l;return window.addEventListener("scroll",r),()=>{window.removeEventListener("scroll",r)}},[a,l,e]),{isVisible:n,onBackToTop:()=>{window.scrollTo({top:0,behavior:"smooth"})},setIsVisible:i}}function y(t){let e,n;if(typeof t=="string")if(t.endsWith("%")){if(e=Number(t.slice(0,-1)),isNaN(e))throw new Error("Invalid percentage value");n="percentage"}else throw new Error("String input must end with %");else e=t,n="number";return{value:e,type:n}}0&&(module.exports={useBackToTop});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useMemo as
|
|
1
|
+
import{useMemo as d,useState as m,useEffect as w,useCallback as b}from"react";function g(o,t){let[n,i]=m(!1),r=f(o),s=b(()=>{let e=window.innerHeight,c=Math.round(window.scrollY),a=document.body.offsetHeight,u=Math.round(c/(a-e)*100);if(r.type==="percentage")i(u>=r.value);else{let p=a-e-c;i(r.value>=p)}},[r.type,r.value]),l=d(()=>{let e;return()=>{clearTimeout(e),e=setTimeout(s,100)}},[s]);return w(()=>{let e=t?l:s;return window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}},[l,s,t]),{isVisible:n,onBackToTop:()=>{window.scrollTo({top:0,behavior:"smooth"})},setIsVisible:i}}function f(o){let t,n;if(typeof o=="string")if(o.endsWith("%")){if(t=Number(o.slice(0,-1)),isNaN(t))throw new Error("Invalid percentage value");n="percentage"}else throw new Error("String input must end with %");else t=o,n="number";return{value:t,type:n}}export{g as useBackToTop};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var u=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var o in e)u(t,o,{get:e[o],enumerable:!0})},m=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of p(e))!S.call(t,n)&&n!==o&&u(t,n,{get:()=>e[n],enumerable:!(r=f(e,n))||r.enumerable});return t};var v=t=>m(u({},"__esModule",{value:!0}),t);var b={};d(b,{useCountdownSeconds:()=>C});module.exports=v(b);var s=require("react");function C(t){let[e,o]=(0,s.useState)(t),[r,n]=(0,s.useState)(!1),l=(0,s.useCallback)(()=>{n(!0)},[]),i=(0,s.useCallback)(()=>{n(!1),o(t)},[t]);return(0,s.useEffect)(()=>{let a=null;return r&&e>0?a=setInterval(()=>{o(c=>c-1)},1e3):e<=0&&n(!1),()=>{a&&clearInterval(a)}},[r,e]),{value:e,setValue:o,isCounting:r,start:l,reset:i}}0&&(module.exports={useCountdownSeconds});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useState as
|
|
1
|
+
import{useState as a,useEffect as f,useCallback as u}from"react";function S(t){let[e,n]=a(t),[o,s]=a(!1),l=u(()=>{s(!0)},[]),i=u(()=>{s(!1),n(t)},[t]);return f(()=>{let r=null;return o&&e>0?r=setInterval(()=>{n(c=>c-1)},1e3):e<=0&&s(!1),()=>{r&&clearInterval(r)}},[o,e]),{value:e,setValue:n,isCounting:o,start:l,reset:i}}export{S as useCountdownSeconds};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var u=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var s in e)u(t,s,{get:e[s],enumerable:!0})},v=(t,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of p(e))!S.call(t,n)&&n!==s&&u(t,n,{get:()=>e[n],enumerable:!(r=f(e,n))||r.enumerable});return t};var m=t=>v(u({},"__esModule",{value:!0}),t);var b={};d(b,{useCountdownSeconds:()=>C});module.exports=m(b);var o=require("react");function C(t){let[e,s]=(0,o.useState)(t),[r,n]=(0,o.useState)(!1),l=(0,o.useCallback)(()=>{n(!0)},[]),i=(0,o.useCallback)(()=>{n(!1),s(t)},[t]);return(0,o.useEffect)(()=>{let a=null;return r&&e>0?a=setInterval(()=>{s(c=>c-1)},1e3):e<=0&&n(!1),()=>{a&&clearInterval(a)}},[r,e]),{value:e,setValue:s,isCounting:r,start:l,reset:i}}0&&(module.exports={useCountdownSeconds});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useState as
|
|
1
|
+
import{useState as a,useEffect as f,useCallback as u}from"react";function S(t){let[e,n]=a(t),[s,o]=a(!1),l=u(()=>{o(!0)},[]),i=u(()=>{o(!1),n(t)},[t]);return f(()=>{let r=null;return s&&e>0?r=setInterval(()=>{n(c=>c-1)},1e3):e<=0&&o(!1),()=>{r&&clearInterval(r)}},[s,e]),{value:e,setValue:n,isCounting:s,start:l,reset:i}}export{S as useCountdownSeconds};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var i=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var
|
|
1
|
+
"use strict";var i=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},v=(t,e,o,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of s(e))!m.call(t,n)&&n!==o&&i(t,n,{get:()=>e[n],enumerable:!(u=c(e,n))||u.enumerable});return t};var E=t=>v(i({},"__esModule",{value:!0}),t);var f={};p(f,{useDoubleClick:()=>a});module.exports=E(f);var l=require("react");function a({click:t,doubleClick:e,timeout:o=250}){let u=(0,l.useRef)(null),n=(0,l.useCallback)(()=>{u.current&&(clearTimeout(u.current),u.current=null)},[]);return(0,l.useCallback)(r=>{n(),t&&r.detail===1&&(u.current=setTimeout(()=>{t(r)},o)),r.detail%2===0&&e(r)},[t,e,o,n])}0&&(module.exports={useDoubleClick});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var r=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var
|
|
1
|
+
"use strict";var r=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var o in e)r(t,o,{get:e[o],enumerable:!0})},v=(t,e,o,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of s(e))!m.call(t,n)&&n!==o&&r(t,n,{get:()=>e[n],enumerable:!(u=c(e,n))||u.enumerable});return t};var E=t=>v(r({},"__esModule",{value:!0}),t);var f={};p(f,{useDoubleClick:()=>a});module.exports=E(f);var l=require("react");function a({click:t,doubleClick:e,timeout:o=250}){let u=(0,l.useRef)(null),n=(0,l.useCallback)(()=>{u.current&&(clearTimeout(u.current),u.current=null)},[]);return(0,l.useCallback)(i=>{n(),t&&i.detail===1&&(u.current=setTimeout(()=>{t(i)},o)),i.detail%2===0&&e(i)},[t,e,o,n])}0&&(module.exports={useDoubleClick});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "minimal-shared",
|
|
3
3
|
"author": "Minimals",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.4",
|
|
5
5
|
"description": "Shared hooks and utils used by Minimal UI and Zone UI.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"typescript",
|
|
@@ -54,23 +54,26 @@
|
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"es-toolkit": "^1.
|
|
57
|
+
"es-toolkit": "^1.42.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@testing-library/jest-dom": "^6.
|
|
60
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
61
61
|
"@testing-library/react": "^16.3.0",
|
|
62
|
-
"@types/node": "^24.
|
|
63
|
-
"@types/react": "19.
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
62
|
+
"@types/node": "^24.10.1",
|
|
63
|
+
"@types/react": "19.2.7",
|
|
64
|
+
"eslint": "^9.39.1",
|
|
65
|
+
"jsdom": "^27.2.0",
|
|
66
|
+
"react": "^19.2.1",
|
|
67
|
+
"react-dom": "19.2.1",
|
|
68
|
+
"tsup": "^8.5.1",
|
|
69
|
+
"typescript": "^5.9.3",
|
|
70
|
+
"vitest": "^4.0.15",
|
|
69
71
|
"internal-eslint-config": "1.0.0",
|
|
70
72
|
"internal-ts-config": "1.0.0"
|
|
71
73
|
},
|
|
72
74
|
"peerDependencies": {
|
|
73
|
-
"react": "^18.0.0 ||
|
|
75
|
+
"react": "^18.0.0 || >=19.0.1 <19.1.0 || >=19.1.2 <19.2.0 || >=19.2.1",
|
|
76
|
+
"react-dom": "^18.0.0 || >=19.0.1 <19.1.0 || >=19.1.2 <19.2.0 || >=19.2.1"
|
|
74
77
|
},
|
|
75
78
|
"scripts": {
|
|
76
79
|
"dev": "NODE_OPTIONS='--max-old-space-size=16384' tsup --watch",
|
|
@@ -82,6 +85,7 @@
|
|
|
82
85
|
"lint:print": "npx eslint --print-config eslint.config.mjs > eslint-show-config.json",
|
|
83
86
|
"clean": "rm -rf node_modules .turbo .next out dist build",
|
|
84
87
|
"re:build": "pnpm clean && pnpm install && pnpm test && pnpm build",
|
|
85
|
-
"tsc:print": "npx tsc --showConfig"
|
|
88
|
+
"tsc:print": "npx tsc --showConfig",
|
|
89
|
+
"check-types": "npx tsc --noEmit"
|
|
86
90
|
}
|
|
87
91
|
}
|