@sohanemon/utils 6.4.1 → 6.4.3
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/README.md +45 -8
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.js +1 -1
- package/dist/functions-B14Waowq.cjs +11 -0
- package/dist/functions-BPJKOZUE.js +11 -0
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.cts +66 -1
- package/dist/hooks/index.d.ts +67 -2
- package/dist/hooks/index.js +1 -1
- package/dist/hooks-FX3vwL2g.cjs +1 -0
- package/dist/hooks-u_4T37Og.js +1 -0
- package/dist/{index-CKE8ocfo.d.ts → index-Cmnsv3j8.d.ts} +56 -8
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +56 -8
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/package.json +2 -1
- package/dist/functions-D2KKIJqd.cjs +0 -1
- package/dist/functions-DdPaJAsm.js +0 -1
- package/dist/hooks-BLpQegFa.cjs +0 -1
- package/dist/hooks-CjfNonIh.js +0 -1
package/README.md
CHANGED
|
@@ -72,9 +72,37 @@ const extended = extendProps({ a: 1 }, { b: 'hello' }); // { a: 1, b: 'hello' }
|
|
|
72
72
|
#### Data Transformation
|
|
73
73
|
|
|
74
74
|
```typescript
|
|
75
|
-
import { hydrate, convertToSlug, normalizeText } from '@sohanemon/utils';
|
|
75
|
+
import { hydrate, deepmerge, convertToSlug, normalizeText } from '@sohanemon/utils';
|
|
76
76
|
|
|
77
77
|
const cleaned = hydrate({ a: null, b: { c: null } }); // { a: undefined, b: { c: undefined } }
|
|
78
|
+
|
|
79
|
+
// Deep merge objects
|
|
80
|
+
const merged = deepmerge({ user: { name: 'John' } }, { user: { age: 30 } });
|
|
81
|
+
// { user: { name: 'John', age: 30 } }
|
|
82
|
+
|
|
83
|
+
// Compose functions automatically
|
|
84
|
+
const composed = deepmerge(
|
|
85
|
+
{ onFinish() { console.log('first') } },
|
|
86
|
+
{ onFinish() { console.log('second') } },
|
|
87
|
+
{ functionMerge: 'compose' }
|
|
88
|
+
);
|
|
89
|
+
// composed.onFinish() logs 'first' then 'second'
|
|
90
|
+
|
|
91
|
+
// Merge functions with custom logic
|
|
92
|
+
const combined = deepmerge(
|
|
93
|
+
{ onFinish() { console.log('first') } },
|
|
94
|
+
{ onFinish(v) { console.log('second', v) } },
|
|
95
|
+
{
|
|
96
|
+
customMerge: (key, target, source) => {
|
|
97
|
+
if (typeof target === 'function' && typeof source === 'function') {
|
|
98
|
+
return (...args) => { target(...args); source(...args); };
|
|
99
|
+
}
|
|
100
|
+
return source;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
);
|
|
104
|
+
// combined.onFinish('done') logs 'first' then 'second done'
|
|
105
|
+
|
|
78
106
|
const slug = convertToSlug('Hello World!'); // 'hello-world'
|
|
79
107
|
const normalized = normalizeText('Café', { removeAccents: true }); // 'cafe'
|
|
80
108
|
```
|
|
@@ -191,14 +219,16 @@ extendProps<T extends object, P extends object>(
|
|
|
191
219
|
```typescript
|
|
192
220
|
hydrate<T>(data: T): Hydrate<T>
|
|
193
221
|
|
|
194
|
-
deepmerge<T,
|
|
222
|
+
deepmerge<T extends Record<string, any>, S extends Record<string, any>[]>(
|
|
195
223
|
target: T,
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
224
|
+
...sources: S
|
|
225
|
+
): TMerged<T | S[number]>
|
|
226
|
+
|
|
227
|
+
deepmerge<T extends Record<string, any>, S extends Record<string, any>[]>(
|
|
228
|
+
target: T,
|
|
229
|
+
sources: S,
|
|
230
|
+
options?: DeepMergeOptions
|
|
231
|
+
): TMerged<T | S[number]>
|
|
202
232
|
|
|
203
233
|
convertToSlug(str: string): string
|
|
204
234
|
|
|
@@ -457,6 +487,13 @@ TwoOf<T>: Union of two property objects
|
|
|
457
487
|
Prettify<T>: Clean type representation
|
|
458
488
|
NestedKeyOf<T>: All nested keys as strings
|
|
459
489
|
Without<T, U>: T without U keys
|
|
490
|
+
DeepMergeOptions: {
|
|
491
|
+
arrayMerge?: 'replace' | 'concat' | 'merge' | ((target: any[], source: any[]) => any[]);
|
|
492
|
+
clone?: boolean;
|
|
493
|
+
customMerge?: (key: string | symbol, targetValue: any, sourceValue: any) => any;
|
|
494
|
+
functionMerge?: 'replace' | 'compose';
|
|
495
|
+
maxDepth?: number;
|
|
496
|
+
}
|
|
460
497
|
```
|
|
461
498
|
|
|
462
499
|
#### Type Guards & Primitives
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";const e=require(`../hooks-
|
|
1
|
+
"use client";const e=require(`../hooks-FX3vwL2g.cjs`),t=require(`../functions-B14Waowq.cjs`);let n=require(`react`);n=e.k(n);let r=require(`react/jsx-runtime`),i=require(`@iconify/react`);function a({className:i,html:a,sanitize:o=!1,executeScripts:s=!0,...c}){let l=n.useRef([]),u=n.useRef(null);e.O(()=>{if(l.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),l.current=[],!(!s||!a))try{let e=document.createElement(`div`);e.innerHTML=a,e.querySelectorAll(`script`).forEach(e=>{let t=document.createElement(`script`);e.textContent&&(t.textContent=e.textContent),Array.from(e.attributes).forEach(e=>{t.setAttribute(e.name,e.value)}),t.onerror=e=>{console.error(`Script injection error:`,e)},document.body.appendChild(t),l.current.push(t)})}catch(e){console.error(`HTML injection error:`,e)}},[a,s]),n.useEffect(()=>()=>{l.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)})},[]);let d=n.useMemo(()=>{if(!a)return``;if(o){let e=document.createElement(`div`);e.innerHTML=a,e.querySelectorAll(`script`).forEach(e=>e.remove());let t=[`onclick`,`onload`,`onerror`,`onmouseover`];return e.querySelectorAll(`*`).forEach(e=>{t.forEach(t=>{e.hasAttribute(t)&&e.removeAttribute(t)})}),e.innerHTML}return a},[a,o]);return a?(0,r.jsx)(`div`,{ref:u,className:t.o(i),dangerouslySetInnerHTML:{__html:d},...c}):null}function o({breakpoint:t,as:i=`div`,fallback:a=n.Fragment,className:o,classNameFallback:s,...c}){let l=e.m(t.split(`-`).pop())===t.startsWith(`max`);return(0,r.jsx)(l?a:i,{className:l?s:o,...c})}const s=({side:e,offset:i=2,unit:a=`px`})=>{let[o,s]=n.useState(t.h?0:window.innerWidth),c=[`bottom-left`,`bottom-right`,`top-right`,`top-left`],l={"bottom-left":e=>({bottom:`${e}rem`,left:`${e}rem`}),"bottom-right":e=>({bottom:`${e}rem`,right:`${e}rem`}),"top-right":e=>({top:`${e}rem`,right:`${e}rem`}),"top-left":e=>({top:`${e}rem`,left:`${e}rem`})},u=e||`bottom-left`,[d,f]=n.useState(u);n.useEffect(()=>{let e=()=>{s(window.innerWidth)};return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]);let p=()=>{f(c[(c.indexOf(d)+1)%c.length])},m=``;return m=o<640?`xs`:o>=640&&o<768?`sm`:o>=768&&o<1024?`md`:o>=1024&&o<1280?`lg`:o>=1280&&o<1536?`xl`:o>=1536&&o<1792?`2xl`:a===`rem`?`${(o/16).toFixed(1)}rem`:`${o}${a}`,(0,r.jsx)(`button`,{type:`button`,style:{position:`fixed`,zIndex:50,display:`grid`,minHeight:`2.5rem`,minWidth:`2.5rem`,borderRadius:`30px`,placeContent:`center`,backgroundColor:`#2d3748`,fontFamily:`Courier New, Courier, monospace`,fontSize:`1rem`,color:`#ffffff`,border:`2px solid #4a5568`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)`,padding:`0.5rem`,transition:`all 0.2s ease-in-out`,...l[d](i)},onClick:p,children:m})};function c(){return e.O(()=>{let e=document.body;if(!e)return;let t=e=>{let t=getComputedStyle(e);if(t.overflow===`hidden`&&t.overflowY===`hidden`&&t.overflowX===`hidden`)return!1;let n=(t.overflowY===`auto`||t.overflowY===`scroll`)&&e.scrollHeight>e.clientHeight,r=(t.overflowX===`auto`||t.overflowX===`scroll`)&&e.scrollWidth>e.clientWidth;return n||r},n=e=>{t(e)?e.dataset.scrollable=`true`:delete e.dataset.scrollable},r=e=>{n(e);for(let t=0;t<e.children.length;t++){let n=e.children[t];r(n)}};requestIdleCallback(()=>r(e));let i=new MutationObserver(e=>{for(let t of e)t.type===`childList`?t.addedNodes.forEach(e=>{e instanceof HTMLElement&&r(e)}):t.type===`attributes`&&t.target instanceof HTMLElement&&n(t.target)});return i.observe(e,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`style`,`class`]}),()=>i.disconnect()},[]),null}exports.HtmlInjector=a,Object.defineProperty(exports,`Iconify`,{enumerable:!0,get:function(){return i.Icon}}),exports.MediaWrapper=o,exports.ResponsiveIndicator=s,exports.TailwindIndicator=s,exports.ScrollTracker=e.w,exports.ScrollableMarker=c;
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{
|
|
1
|
+
"use client";import{h as e,o as t}from"../functions-BPJKOZUE.js";import{O as n,m as r,w as i}from"../hooks-u_4T37Og.js";import*as a from"react";import{jsx as o}from"react/jsx-runtime";import{Icon as s}from"@iconify/react";function c({className:e,html:r,sanitize:i=!1,executeScripts:s=!0,...c}){let l=a.useRef([]),u=a.useRef(null);n(()=>{if(l.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),l.current=[],!(!s||!r))try{let e=document.createElement(`div`);e.innerHTML=r,e.querySelectorAll(`script`).forEach(e=>{let t=document.createElement(`script`);e.textContent&&(t.textContent=e.textContent),Array.from(e.attributes).forEach(e=>{t.setAttribute(e.name,e.value)}),t.onerror=e=>{console.error(`Script injection error:`,e)},document.body.appendChild(t),l.current.push(t)})}catch(e){console.error(`HTML injection error:`,e)}},[r,s]),a.useEffect(()=>()=>{l.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)})},[]);let d=a.useMemo(()=>{if(!r)return``;if(i){let e=document.createElement(`div`);e.innerHTML=r,e.querySelectorAll(`script`).forEach(e=>e.remove());let t=[`onclick`,`onload`,`onerror`,`onmouseover`];return e.querySelectorAll(`*`).forEach(e=>{t.forEach(t=>{e.hasAttribute(t)&&e.removeAttribute(t)})}),e.innerHTML}return r},[r,i]);return r?o(`div`,{ref:u,className:t(e),dangerouslySetInnerHTML:{__html:d},...c}):null}function l({breakpoint:e,as:t=`div`,fallback:n=a.Fragment,className:i,classNameFallback:s,...c}){let l=r(e.split(`-`).pop())===e.startsWith(`max`);return o(l?n:t,{className:l?s:i,...c})}const u=({side:t,offset:n=2,unit:r=`px`})=>{let[i,s]=a.useState(e?0:window.innerWidth),c=[`bottom-left`,`bottom-right`,`top-right`,`top-left`],l={"bottom-left":e=>({bottom:`${e}rem`,left:`${e}rem`}),"bottom-right":e=>({bottom:`${e}rem`,right:`${e}rem`}),"top-right":e=>({top:`${e}rem`,right:`${e}rem`}),"top-left":e=>({top:`${e}rem`,left:`${e}rem`})},u=t||`bottom-left`,[d,f]=a.useState(u);a.useEffect(()=>{let e=()=>{s(window.innerWidth)};return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]);let p=()=>{f(c[(c.indexOf(d)+1)%c.length])},m=``;return m=i<640?`xs`:i>=640&&i<768?`sm`:i>=768&&i<1024?`md`:i>=1024&&i<1280?`lg`:i>=1280&&i<1536?`xl`:i>=1536&&i<1792?`2xl`:r===`rem`?`${(i/16).toFixed(1)}rem`:`${i}${r}`,o(`button`,{type:`button`,style:{position:`fixed`,zIndex:50,display:`grid`,minHeight:`2.5rem`,minWidth:`2.5rem`,borderRadius:`30px`,placeContent:`center`,backgroundColor:`#2d3748`,fontFamily:`Courier New, Courier, monospace`,fontSize:`1rem`,color:`#ffffff`,border:`2px solid #4a5568`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)`,padding:`0.5rem`,transition:`all 0.2s ease-in-out`,...l[d](n)},onClick:p,children:m})};function d(){return n(()=>{let e=document.body;if(!e)return;let t=e=>{let t=getComputedStyle(e);if(t.overflow===`hidden`&&t.overflowY===`hidden`&&t.overflowX===`hidden`)return!1;let n=(t.overflowY===`auto`||t.overflowY===`scroll`)&&e.scrollHeight>e.clientHeight,r=(t.overflowX===`auto`||t.overflowX===`scroll`)&&e.scrollWidth>e.clientWidth;return n||r},n=e=>{t(e)?e.dataset.scrollable=`true`:delete e.dataset.scrollable},r=e=>{n(e);for(let t=0;t<e.children.length;t++){let n=e.children[t];r(n)}};requestIdleCallback(()=>r(e));let i=new MutationObserver(e=>{for(let t of e)t.type===`childList`?t.addedNodes.forEach(e=>{e instanceof HTMLElement&&r(e)}):t.type===`attributes`&&t.target instanceof HTMLElement&&n(t.target)});return i.observe(e,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`style`,`class`]}),()=>i.disconnect()},[]),null}export{c as HtmlInjector,s as Iconify,l as MediaWrapper,u as ResponsiveIndicator,u as TailwindIndicator,i as ScrollTracker,d as ScrollableMarker};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const e=require(`./hooks-FX3vwL2g.cjs`);let t=require(`clsx`),n=require(`tailwind-merge`);const r=(e,t,n,r=`/`)=>{let i=``;if(n){let e=new Date;e.setTime(e.getTime()+n*24*60*60*1e3),i=`; expires=${e.toUTCString()}`}document.cookie=`${e}=${t||``}${i}; path=${r}`},i=(e,t=`/`)=>{document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`},a=e=>document.cookie.split(`; `).some(t=>t.startsWith(`${e}=`)),o=e=>({value:document.cookie.split(`; `).find(t=>t.startsWith(`${e}=`))?.split(`=`)[1]}),s=e=>!e,c=e=>e==null,l=e=>{if(e==null)return!0;switch(typeof e){case`string`:case`number`:case`bigint`:case`boolean`:case`symbol`:return!0;default:return!1}};function u(e){if(typeof e!=`object`||!e||Object.prototype.toString.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function d(e,...t){let n,r={},i=t[t.length-1];i&&typeof i==`object`&&!Array.isArray(i)&&(i.arrayMerge!==void 0||i.clone!==void 0||i.customMerge!==void 0||i.functionMerge!==void 0||i.maxDepth!==void 0)?(r={...r,...i},n=t.slice(0,-1)):n=t;let{arrayMerge:a=`replace`,clone:o=!0,functionMerge:s=`replace`,maxDepth:c=100,customMerge:l}=r,d=new WeakMap;return f(e,n,0);function f(e,t,n){if(n>=c)return console.warn(`[deepmerge] Maximum depth ${c} exceeded. Returning target as-is.`),e;if(!u(e)&&!Array.isArray(e)){for(let n of t)if(n!==void 0){if(l){let t=l(``,e,n);if(t!==void 0)return t}return typeof e==`function`&&typeof n==`function`&&s===`compose`?(...t)=>{e(...t),n(...t)}:n}return e}let r=o?Array.isArray(e)?[...e]:{...e}:e;for(let e of t)if(e!=null&&!d.has(e))if(d.set(e,r),Array.isArray(r)&&Array.isArray(e))r=p(r,e,a);else if(u(r)&&u(e)){let t=new Set([...Object.keys(r),...Object.keys(e),...Object.getOwnPropertySymbols(r),...Object.getOwnPropertySymbols(e)]);for(let i of t){let t=r[i],o=e[i];l&&l(i,t,o)!==void 0?r[i]=l(i,t,o):typeof t==`function`&&typeof o==`function`?s===`compose`?r[i]=(...e)=>{t(...e),o(...e)}:r[i]=o:u(t)&&u(o)?r[i]=f(t,[o],n+1):Array.isArray(t)&&Array.isArray(o)?r[i]=p(t,o,a):o!==void 0&&(r[i]=o)}}else r=e;return r}function p(e,t,n){if(typeof n==`function`)return n(e,t);switch(n){case`concat`:return[...e,...t];case`merge`:let n=Math.max(e.length,t.length),r=[];for(let i=0;i<n;i++)i<e.length&&i<t.length?u(e[i])&&u(t[i])?r[i]=f(e[i],[t[i]],0):r[i]=t[i]:i<e.length?r[i]=e[i]:r[i]=t[i];return r;case`replace`:default:return[...t]}}}function f(e){return p(e)}function p(e){if(e!==null){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(p);if(u(e)){let t={};for(let n in e)t[n]=p(e[n]);return t}return e}}function m(e,t,n){if(typeof t!=`string`&&!Array.isArray(t))return n;let r=(()=>Array.isArray(t)?t:t===``?[]:String(t).split(`.`).filter(e=>e!==``))();if(!Array.isArray(r))return n;let i=e;for(let e of r){if(i==null)return n;let t=typeof e==`string`&&Array.isArray(i)&&/^\d+$/.test(e)?Number.parseInt(e,10):e;i=i[t]}return i===void 0?n:i}function h(e,t){return Object.assign(e,t)}function g(...e){return(0,n.twMerge)((0,t.clsx)(e))}function _(e,t){return console.warn(`isNavActive is deprecated. Use isLinkActive instead.`),RegExp(`^/?${e}(/|$)`).test(t)}function v({path:e,currentPath:t,locales:n=[`en`,`es`,`de`,`zh`,`bn`,`fr`,`it`,`nl`],exact:r=!0}){let i=RegExp(`^/?(${n.join(`|`)})/`),a=e=>e.replace(i,``).replace(/^\/+|\/+$/g,``),o=a(e),s=a(t);return r?o===s:s.startsWith(o)}function y(e){let t=e;return e.includes(`/public/`)&&(t=e.replace(`/public/`,`/`)),t.trim()}const b=(e,t)=>{let n;if(typeof e==`string`)n=document.querySelector(e);else if(e.current)n=e.current;else return;n&&n.scrollTo({top:t===`top`?0:n.scrollHeight-n.clientHeight,behavior:`smooth`})},x=(e,t=()=>{})=>{typeof window>`u`||!navigator.clipboard?.writeText||e&&navigator.clipboard.writeText(e).then(t)};function S(e){return(e.split(`.`).pop()||e).replace(/([a-z])([A-Z])/g,`$1 $2`).split(/[-_|�\s]+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}const C=`àáãäâèéëêìíïîòóöôùúüûñç·/_,:;`,w=`aaaaaeeeeiiiioooouuuunc------`,T=e=>{if(typeof e!=`string`)throw TypeError(`Input must be a string`);let t=e.trim().toLowerCase(),n={};for(let e=0;e<29;e++)n[C.charAt(e)]=`aaaaaeeeeiiiioooouuuunc------`.charAt(e);return t=t.replace(RegExp(`[${C}]`,`g`),e=>n[e]||e),t.replace(/[^a-z0-9 -]/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-+/,``).replace(/-+$/,``)||``},E=typeof window>`u`,D=e=>E?Buffer.from(e).toString(`base64`):window.btoa(e),O=(e=1e3,t)=>new Promise(n=>{if(t?.aborted)return n();let r=setTimeout(()=>{a(),n()},e);function i(){clearTimeout(r),a(),n()}function a(){t?.removeEventListener(`abort`,i)}t&&t.addEventListener(`abort`,i,{once:!0})});function k(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.immediate??!1,i,a,o,s;function c(){return s=e.apply(o,a),a=void 0,o=void 0,s}let l=function(...e){return a=e,o=this,i===void 0&&r&&(s=c.call(this)),i!==void 0&&clearTimeout(i),i=setTimeout(c.bind(this),t),s};return Object.defineProperty(l,`isPending`,{get(){return i!==void 0}}),l}function A(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.leading??!0,i=n?.trailing??!0,a,o,s,c,l;function u(){c=Date.now(),l=e.apply(s,o),o=void 0,s=void 0}function d(){a=void 0,i&&o&&u()}let f=function(...e){let n=c?Date.now()-c:1/0;return o=e,s=this,n>=t?r?u():a=setTimeout(d,t):!a&&i&&(a=setTimeout(d,t-n)),l};return Object.defineProperty(f,`isPending`,{get(){return a!==void 0}}),f}function j(e,...t){let n=t.length===1&&Array.isArray(t[0])?t[0]:t,r=0;return e.replace(/%s/g,()=>{let e=n[r++];return e===void 0?``:String(e)})}const M=(...e)=>t=>{for(let n of e)n&&(typeof n==`function`?n(t):n.current=t)};function N(e,t){let n=document.getElementById(e);n&&(n.scrollIntoView({behavior:`smooth`,block:`start`,...t}),window.history.pushState(null,``,`#${e}`))}function P(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function F(e,t={}){if(!e)return``;let{lowercase:n=!0,removeAccents:r=!0,removeNonAlphanumeric:i=!0}=t,a=e.normalize(`NFC`);return r&&(a=a.normalize(`NFD`).replace(/\p{M}/gu,``)),i&&(a=a.replace(/^[^\p{L}\p{N}]*|[^\p{L}\p{N}]*$/gu,``)),n&&(a=a.toLocaleLowerCase()),a}async function I(e,{interval:t=5e3,timeout:n=300*1e3,jitter:r=!0,signal:i}={}){let a=Date.now(),o=i?.aborted??!1,s=()=>{o=!0};i?.addEventListener(`abort`,s,{once:!0});try{for(let s=0;;s++){if(o)throw Error(`Polling aborted`);let s=await e();if(s)return s;if(Date.now()-a>=n)throw Error(`Polling timed out`,{cause:`Polling timed out after ${n}ms`});await O(r?t+(Math.random()-.5)*t*.2:t,i)}}catch(e){throw e}finally{i?.removeEventListener(`abort`,s)}}function L(e,t={}){let{retry:n=0,delay:r=0}=t,i=Date.now(),a=async t=>{try{await e();let t=Date.now()-i;console.log(`⚡[schedule.ts] Completed in ${t}ms`)}catch(e){if(console.log(`⚡[schedule.ts] err:`,e),t>0)console.log(`⚡[schedule.ts] Retrying in ${r}ms...`),setTimeout(()=>a(t-1),r);else{let e=Date.now()-i;console.log(`⚡[schedule.ts] Failed after ${e}ms`)}}};setTimeout(()=>a(n),0)}function R(e){if(e instanceof Promise)return e.then(e=>[null,e]).catch(e=>[e,null]);try{return[null,e()]}catch(t){return console.log(`\x1b[31m🛡 [shield]\x1b[0m ${e.name} failed →`,t),[t,null]}}function z(e){let t=`
|
|
2
|
+
self.onmessage = async (e) => {
|
|
3
|
+
try {
|
|
4
|
+
const fn = ${e.toString()};
|
|
5
|
+
const result = await fn(...e.data);
|
|
6
|
+
self.postMessage({ type: 'result', result });
|
|
7
|
+
} catch (error) {
|
|
8
|
+
self.postMessage({ type: 'error', error: error.message });
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
`,n=new Blob([t],{type:`application/javascript`}),r=new Worker(URL.createObjectURL(n));return(...e)=>new Promise((t,n)=>{r.onmessage=e=>{e.data.type===`result`?t(e.data.result):e.data.type===`error`&&n(Error(e.data.error))},r.onerror=e=>{n(Error(`Worker error: ${e.message}`))},r.postMessage(e)})}Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return b}});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{clsx as e}from"clsx";import{twMerge as t}from"tailwind-merge";const n=(e,t,n,r=`/`)=>{let i=``;if(n){let e=new Date;e.setTime(e.getTime()+n*24*60*60*1e3),i=`; expires=${e.toUTCString()}`}document.cookie=`${e}=${t||``}${i}; path=${r}`},r=(e,t=`/`)=>{document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`},i=e=>document.cookie.split(`; `).some(t=>t.startsWith(`${e}=`)),a=e=>({value:document.cookie.split(`; `).find(t=>t.startsWith(`${e}=`))?.split(`=`)[1]}),o=e=>!e,s=e=>e==null,c=e=>{if(e==null)return!0;switch(typeof e){case`string`:case`number`:case`bigint`:case`boolean`:case`symbol`:return!0;default:return!1}};function l(e){if(typeof e!=`object`||!e||Object.prototype.toString.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function u(e,...t){let n,r={},i=t[t.length-1];i&&typeof i==`object`&&!Array.isArray(i)&&(i.arrayMerge!==void 0||i.clone!==void 0||i.customMerge!==void 0||i.functionMerge!==void 0||i.maxDepth!==void 0)?(r={...r,...i},n=t.slice(0,-1)):n=t;let{arrayMerge:a=`replace`,clone:o=!0,functionMerge:s=`replace`,maxDepth:c=100,customMerge:u}=r,d=new WeakMap;return f(e,n,0);function f(e,t,n){if(n>=c)return console.warn(`[deepmerge] Maximum depth ${c} exceeded. Returning target as-is.`),e;if(!l(e)&&!Array.isArray(e)){for(let n of t)if(n!==void 0){if(u){let t=u(``,e,n);if(t!==void 0)return t}return typeof e==`function`&&typeof n==`function`&&s===`compose`?(...t)=>{e(...t),n(...t)}:n}return e}let r=o?Array.isArray(e)?[...e]:{...e}:e;for(let e of t)if(e!=null&&!d.has(e))if(d.set(e,r),Array.isArray(r)&&Array.isArray(e))r=p(r,e,a);else if(l(r)&&l(e)){let t=new Set([...Object.keys(r),...Object.keys(e),...Object.getOwnPropertySymbols(r),...Object.getOwnPropertySymbols(e)]);for(let i of t){let t=r[i],o=e[i];u&&u(i,t,o)!==void 0?r[i]=u(i,t,o):typeof t==`function`&&typeof o==`function`?s===`compose`?r[i]=(...e)=>{t(...e),o(...e)}:r[i]=o:l(t)&&l(o)?r[i]=f(t,[o],n+1):Array.isArray(t)&&Array.isArray(o)?r[i]=p(t,o,a):o!==void 0&&(r[i]=o)}}else r=e;return r}function p(e,t,n){if(typeof n==`function`)return n(e,t);switch(n){case`concat`:return[...e,...t];case`merge`:let n=Math.max(e.length,t.length),r=[];for(let i=0;i<n;i++)i<e.length&&i<t.length?l(e[i])&&l(t[i])?r[i]=f(e[i],[t[i]],0):r[i]=t[i]:i<e.length?r[i]=e[i]:r[i]=t[i];return r;case`replace`:default:return[...t]}}}function d(e){return f(e)}function f(e){if(e!==null){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(f);if(l(e)){let t={};for(let n in e)t[n]=f(e[n]);return t}return e}}function p(e,t,n){if(typeof t!=`string`&&!Array.isArray(t))return n;let r=(()=>Array.isArray(t)?t:t===``?[]:String(t).split(`.`).filter(e=>e!==``))();if(!Array.isArray(r))return n;let i=e;for(let e of r){if(i==null)return n;let t=typeof e==`string`&&Array.isArray(i)&&/^\d+$/.test(e)?Number.parseInt(e,10):e;i=i[t]}return i===void 0?n:i}function m(e,t){return Object.assign(e,t)}function h(...n){return t(e(n))}function g(e,t){return console.warn(`isNavActive is deprecated. Use isLinkActive instead.`),RegExp(`^/?${e}(/|$)`).test(t)}function _({path:e,currentPath:t,locales:n=[`en`,`es`,`de`,`zh`,`bn`,`fr`,`it`,`nl`],exact:r=!0}){let i=RegExp(`^/?(${n.join(`|`)})/`),a=e=>e.replace(i,``).replace(/^\/+|\/+$/g,``),o=a(e),s=a(t);return r?o===s:s.startsWith(o)}function v(e){let t=e;return e.includes(`/public/`)&&(t=e.replace(`/public/`,`/`)),t.trim()}const y=(e,t)=>{let n;if(typeof e==`string`)n=document.querySelector(e);else if(e.current)n=e.current;else return;n&&n.scrollTo({top:t===`top`?0:n.scrollHeight-n.clientHeight,behavior:`smooth`})},b=(e,t=()=>{})=>{typeof window>`u`||!navigator.clipboard?.writeText||e&&navigator.clipboard.writeText(e).then(t)};function x(e){return(e.split(`.`).pop()||e).replace(/([a-z])([A-Z])/g,`$1 $2`).split(/[-_|�\s]+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}const S=`àáãäâèéëêìíïîòóöôùúüûñç·/_,:;`,C=e=>{if(typeof e!=`string`)throw TypeError(`Input must be a string`);let t=e.trim().toLowerCase(),n={};for(let e=0;e<29;e++)n[S.charAt(e)]=`aaaaaeeeeiiiioooouuuunc------`.charAt(e);return t=t.replace(RegExp(`[${S}]`,`g`),e=>n[e]||e),t.replace(/[^a-z0-9 -]/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-+/,``).replace(/-+$/,``)||``},w=typeof window>`u`,T=e=>w?Buffer.from(e).toString(`base64`):window.btoa(e),E=(e=1e3,t)=>new Promise(n=>{if(t?.aborted)return n();let r=setTimeout(()=>{a(),n()},e);function i(){clearTimeout(r),a(),n()}function a(){t?.removeEventListener(`abort`,i)}t&&t.addEventListener(`abort`,i,{once:!0})});function D(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.immediate??!1,i,a,o,s;function c(){return s=e.apply(o,a),a=void 0,o=void 0,s}let l=function(...e){return a=e,o=this,i===void 0&&r&&(s=c.call(this)),i!==void 0&&clearTimeout(i),i=setTimeout(c.bind(this),t),s};return Object.defineProperty(l,`isPending`,{get(){return i!==void 0}}),l}function O(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.leading??!0,i=n?.trailing??!0,a,o,s,c,l;function u(){c=Date.now(),l=e.apply(s,o),o=void 0,s=void 0}function d(){a=void 0,i&&o&&u()}let f=function(...e){let n=c?Date.now()-c:1/0;return o=e,s=this,n>=t?r?u():a=setTimeout(d,t):!a&&i&&(a=setTimeout(d,t-n)),l};return Object.defineProperty(f,`isPending`,{get(){return a!==void 0}}),f}function k(e,...t){let n=t.length===1&&Array.isArray(t[0])?t[0]:t,r=0;return e.replace(/%s/g,()=>{let e=n[r++];return e===void 0?``:String(e)})}const A=(...e)=>t=>{for(let n of e)n&&(typeof n==`function`?n(t):n.current=t)};function j(e,t){let n=document.getElementById(e);n&&(n.scrollIntoView({behavior:`smooth`,block:`start`,...t}),window.history.pushState(null,``,`#${e}`))}function M(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function N(e,t={}){if(!e)return``;let{lowercase:n=!0,removeAccents:r=!0,removeNonAlphanumeric:i=!0}=t,a=e.normalize(`NFC`);return r&&(a=a.normalize(`NFD`).replace(/\p{M}/gu,``)),i&&(a=a.replace(/^[^\p{L}\p{N}]*|[^\p{L}\p{N}]*$/gu,``)),n&&(a=a.toLocaleLowerCase()),a}async function P(e,{interval:t=5e3,timeout:n=300*1e3,jitter:r=!0,signal:i}={}){let a=Date.now(),o=i?.aborted??!1,s=()=>{o=!0};i?.addEventListener(`abort`,s,{once:!0});try{for(let s=0;;s++){if(o)throw Error(`Polling aborted`);let s=await e();if(s)return s;if(Date.now()-a>=n)throw Error(`Polling timed out`,{cause:`Polling timed out after ${n}ms`});await E(r?t+(Math.random()-.5)*t*.2:t,i)}}catch(e){throw e}finally{i?.removeEventListener(`abort`,s)}}function F(e,t={}){let{retry:n=0,delay:r=0}=t,i=Date.now(),a=async t=>{try{await e();let t=Date.now()-i;console.log(`⚡[schedule.ts] Completed in ${t}ms`)}catch(e){if(console.log(`⚡[schedule.ts] err:`,e),t>0)console.log(`⚡[schedule.ts] Retrying in ${r}ms...`),setTimeout(()=>a(t-1),r);else{let e=Date.now()-i;console.log(`⚡[schedule.ts] Failed after ${e}ms`)}}};setTimeout(()=>a(n),0)}function I(e){if(e instanceof Promise)return e.then(e=>[null,e]).catch(e=>[e,null]);try{return[null,e()]}catch(t){return console.log(`\x1b[31m🛡 [shield]\x1b[0m ${e.name} failed →`,t),[t,null]}}function L(e){let t=`
|
|
2
|
+
self.onmessage = async (e) => {
|
|
3
|
+
try {
|
|
4
|
+
const fn = ${e.toString()};
|
|
5
|
+
const result = await fn(...e.data);
|
|
6
|
+
self.postMessage({ type: 'result', result });
|
|
7
|
+
} catch (error) {
|
|
8
|
+
self.postMessage({ type: 'error', error: error.message });
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
`,n=new Blob([t],{type:`application/javascript`}),r=new Worker(URL.createObjectURL(n));return(...e)=>new Promise((t,n)=>{r.onmessage=e=>{e.data.type===`result`?t(e.data.result):e.data.type===`error`&&n(Error(e.data.error))},r.onerror=e=>{n(Error(`Worker error: ${e.message}`))},r.postMessage(e)})}export{c as A,m as C,o as D,u as E,a as M,i as N,s as O,n as P,O as S,d as T,N as _,v as a,E as b,C as c,M as d,j as f,A as g,w as h,P as i,r as j,l as k,b as l,g as m,I as n,h as o,_ as p,F as r,x as s,L as t,D as u,k as v,p as w,T as x,y};
|
package/dist/hooks/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";const e=require(`../hooks-
|
|
1
|
+
"use client";const e=require(`../hooks-FX3vwL2g.cjs`);require(`../functions-B14Waowq.cjs`),exports.useAction=e.E,exports.useAsync=e.T,exports.useClickOutside=e.t,exports.useCopyToClipboard=e.n,exports.useDebounce=e.r,exports.useDomCalculation=e.i,exports.useEffectOnce=e.a,exports.useHeightCalculation=e.o,exports.useIntersection=e.s,exports.useIsAtTop=e.c,exports.useIsClient=e.l,exports.useIsScrolling=e.u,exports.useIsomorphicEffect=e.d,exports.useLocalStorage=e.f,exports.useLockScroll=e.p,exports.useMediaQuery=e.m,exports.useQuerySelector=e.h,exports.useSchedule=e.D,exports.useScheduledEffect=e.O,exports.useScrollTracker=e.C,exports.useSessionStorage=e.g,exports.useTimeout=e._,exports.useUpdateEffect=e.v,exports.useUrlParams=e.y,exports.useWindowEvent=e.b,exports.useWorker=e.x,exports.useWorkerEffect=e.S;
|
package/dist/hooks/index.d.cts
CHANGED
|
@@ -171,6 +171,71 @@ declare const useScrollTracker: ({
|
|
|
171
171
|
container
|
|
172
172
|
}?: UseScrollTrackerOptions) => ScrollTrackerState;
|
|
173
173
|
//#endregion
|
|
174
|
+
//#region src/hooks/worker.d.ts
|
|
175
|
+
/**
|
|
176
|
+
* useWorker — Web Worker hook that returns a function to execute in worker.
|
|
177
|
+
*
|
|
178
|
+
* Provides a React hook that returns an execute function to run computations
|
|
179
|
+
* in a Web Worker with loading states and error handling. The worker function
|
|
180
|
+
* does not execute automatically - you must call the returned execute function.
|
|
181
|
+
*
|
|
182
|
+
* @param workerFn - Function to run in the worker (gets workerized automatically)
|
|
183
|
+
* @returns Object with execute function, data, error, and isLoading properties
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```tsx
|
|
187
|
+
* import React from 'react';
|
|
188
|
+
* import { useWorker } from './hooks/useWorker';
|
|
189
|
+
*
|
|
190
|
+
* function CalculatorComponent({ numbers }: { numbers: number[] }) {
|
|
191
|
+
* const { execute, data, isLoading, error } = useWorker(
|
|
192
|
+
* (nums: number[]) => nums.reduce((a, b) => a + b, 0)
|
|
193
|
+
* );
|
|
194
|
+
*
|
|
195
|
+
* if (isLoading) return <div>Calculating...</div>;
|
|
196
|
+
* if (error) return <div>Error: {error.message}</div>;
|
|
197
|
+
*
|
|
198
|
+
* return (
|
|
199
|
+
* <div>
|
|
200
|
+
* <div>Sum: {data}</div>
|
|
201
|
+
* <button onClick={() => execute(numbers)}>Calculate</button>
|
|
202
|
+
* </div>
|
|
203
|
+
* );
|
|
204
|
+
* }
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
207
|
+
declare function useWorker<T extends (...args: any[]) => any>(workerFn: T): {
|
|
208
|
+
execute: (...args: Parameters<T>) => void;
|
|
209
|
+
data: ReturnType<T> | undefined;
|
|
210
|
+
error: Error | null;
|
|
211
|
+
isLoading: boolean;
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* useWorkerEffect — Run a side effect in a Web Worker.
|
|
215
|
+
*
|
|
216
|
+
* This hook acts like useEffect but runs the callback in a Web Worker instead of the main thread.
|
|
217
|
+
* The callback is executed asynchronously in a worker whenever the dependencies change.
|
|
218
|
+
*
|
|
219
|
+
* @param effect - Function to run in the worker (should be a side effect, not return data)
|
|
220
|
+
* @param deps - Dependencies array, like useEffect
|
|
221
|
+
*
|
|
222
|
+
* @example
|
|
223
|
+
* ```tsx
|
|
224
|
+
* import React from 'react';
|
|
225
|
+
* import { useWorkerEffect } from './hooks/worker';
|
|
226
|
+
*
|
|
227
|
+
* function HeavyComputationComponent({ data }: { data: number[] }) {
|
|
228
|
+
* useWorkerEffect(() => {
|
|
229
|
+
* // This runs in a Web Worker whenever data changes
|
|
230
|
+
* const result = data.reduce((a, b) => a + b, 0);
|
|
231
|
+
* console.log('Computed sum in worker:', result);
|
|
232
|
+
* // Side effects like logging, API calls, etc.
|
|
233
|
+
* }, [data]);
|
|
234
|
+
* }
|
|
235
|
+
* ```
|
|
236
|
+
*/
|
|
237
|
+
declare function useWorkerEffect(effect: () => void | (() => void), deps?: React.DependencyList): void;
|
|
238
|
+
//#endregion
|
|
174
239
|
//#region src/hooks/index.d.ts
|
|
175
240
|
/**
|
|
176
241
|
* Hook to detect clicks outside of a referenced element.
|
|
@@ -626,4 +691,4 @@ declare const useIntersection: ({
|
|
|
626
691
|
isIntersecting: boolean;
|
|
627
692
|
};
|
|
628
693
|
//#endregion
|
|
629
|
-
export { useAction, useAsync, useClickOutside, useCopyToClipboard, useDebounce, useDomCalculation, useEffectOnce, useHeightCalculation, useIntersection, useIsAtTop, useIsClient, useIsScrolling, useIsomorphicEffect, useLocalStorage, useLockScroll, useMediaQuery, useQuerySelector, useSchedule, useScheduledEffect, useScrollTracker, useSessionStorage, useTimeout, useUpdateEffect, useUrlParams, useWindowEvent };
|
|
694
|
+
export { useAction, useAsync, useClickOutside, useCopyToClipboard, useDebounce, useDomCalculation, useEffectOnce, useHeightCalculation, useIntersection, useIsAtTop, useIsClient, useIsScrolling, useIsomorphicEffect, useLocalStorage, useLockScroll, useMediaQuery, useQuerySelector, useSchedule, useScheduledEffect, useScrollTracker, useSessionStorage, useTimeout, useUpdateEffect, useUrlParams, useWindowEvent, useWorker, useWorkerEffect };
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { C as Task, S as ScheduleOpts } from "../index-Cmnsv3j8.js";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/hooks/action.d.ts
|
|
@@ -171,6 +171,71 @@ declare const useScrollTracker: ({
|
|
|
171
171
|
container
|
|
172
172
|
}?: UseScrollTrackerOptions) => ScrollTrackerState;
|
|
173
173
|
//#endregion
|
|
174
|
+
//#region src/hooks/worker.d.ts
|
|
175
|
+
/**
|
|
176
|
+
* useWorker — Web Worker hook that returns a function to execute in worker.
|
|
177
|
+
*
|
|
178
|
+
* Provides a React hook that returns an execute function to run computations
|
|
179
|
+
* in a Web Worker with loading states and error handling. The worker function
|
|
180
|
+
* does not execute automatically - you must call the returned execute function.
|
|
181
|
+
*
|
|
182
|
+
* @param workerFn - Function to run in the worker (gets workerized automatically)
|
|
183
|
+
* @returns Object with execute function, data, error, and isLoading properties
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```tsx
|
|
187
|
+
* import React from 'react';
|
|
188
|
+
* import { useWorker } from './hooks/useWorker';
|
|
189
|
+
*
|
|
190
|
+
* function CalculatorComponent({ numbers }: { numbers: number[] }) {
|
|
191
|
+
* const { execute, data, isLoading, error } = useWorker(
|
|
192
|
+
* (nums: number[]) => nums.reduce((a, b) => a + b, 0)
|
|
193
|
+
* );
|
|
194
|
+
*
|
|
195
|
+
* if (isLoading) return <div>Calculating...</div>;
|
|
196
|
+
* if (error) return <div>Error: {error.message}</div>;
|
|
197
|
+
*
|
|
198
|
+
* return (
|
|
199
|
+
* <div>
|
|
200
|
+
* <div>Sum: {data}</div>
|
|
201
|
+
* <button onClick={() => execute(numbers)}>Calculate</button>
|
|
202
|
+
* </div>
|
|
203
|
+
* );
|
|
204
|
+
* }
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
207
|
+
declare function useWorker<T extends (...args: any[]) => any>(workerFn: T): {
|
|
208
|
+
execute: (...args: Parameters<T>) => void;
|
|
209
|
+
data: ReturnType<T> | undefined;
|
|
210
|
+
error: Error | null;
|
|
211
|
+
isLoading: boolean;
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* useWorkerEffect — Run a side effect in a Web Worker.
|
|
215
|
+
*
|
|
216
|
+
* This hook acts like useEffect but runs the callback in a Web Worker instead of the main thread.
|
|
217
|
+
* The callback is executed asynchronously in a worker whenever the dependencies change.
|
|
218
|
+
*
|
|
219
|
+
* @param effect - Function to run in the worker (should be a side effect, not return data)
|
|
220
|
+
* @param deps - Dependencies array, like useEffect
|
|
221
|
+
*
|
|
222
|
+
* @example
|
|
223
|
+
* ```tsx
|
|
224
|
+
* import React from 'react';
|
|
225
|
+
* import { useWorkerEffect } from './hooks/worker';
|
|
226
|
+
*
|
|
227
|
+
* function HeavyComputationComponent({ data }: { data: number[] }) {
|
|
228
|
+
* useWorkerEffect(() => {
|
|
229
|
+
* // This runs in a Web Worker whenever data changes
|
|
230
|
+
* const result = data.reduce((a, b) => a + b, 0);
|
|
231
|
+
* console.log('Computed sum in worker:', result);
|
|
232
|
+
* // Side effects like logging, API calls, etc.
|
|
233
|
+
* }, [data]);
|
|
234
|
+
* }
|
|
235
|
+
* ```
|
|
236
|
+
*/
|
|
237
|
+
declare function useWorkerEffect(effect: () => void | (() => void), deps?: React.DependencyList): void;
|
|
238
|
+
//#endregion
|
|
174
239
|
//#region src/hooks/index.d.ts
|
|
175
240
|
/**
|
|
176
241
|
* Hook to detect clicks outside of a referenced element.
|
|
@@ -626,4 +691,4 @@ declare const useIntersection: ({
|
|
|
626
691
|
isIntersecting: boolean;
|
|
627
692
|
};
|
|
628
693
|
//#endregion
|
|
629
|
-
export { useAction, useAsync, useClickOutside, useCopyToClipboard, useDebounce, useDomCalculation, useEffectOnce, useHeightCalculation, useIntersection, useIsAtTop, useIsClient, useIsScrolling, useIsomorphicEffect, useLocalStorage, useLockScroll, useMediaQuery, useQuerySelector, useSchedule, useScheduledEffect, useScrollTracker, useSessionStorage, useTimeout, useUpdateEffect, useUrlParams, useWindowEvent };
|
|
694
|
+
export { useAction, useAsync, useClickOutside, useCopyToClipboard, useDebounce, useDomCalculation, useEffectOnce, useHeightCalculation, useIntersection, useIsAtTop, useIsClient, useIsScrolling, useIsomorphicEffect, useLocalStorage, useLockScroll, useMediaQuery, useQuerySelector, useSchedule, useScheduledEffect, useScrollTracker, useSessionStorage, useTimeout, useUpdateEffect, useUrlParams, useWindowEvent, useWorker, useWorkerEffect };
|
package/dist/hooks/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import"../functions-
|
|
1
|
+
"use client";import"../functions-BPJKOZUE.js";import{C as e,D as t,E as n,O as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,l as h,m as g,n as _,o as v,p as y,r as b,s as x,t as S,u as C,v as w,x as T,y as E}from"../hooks-u_4T37Og.js";export{n as useAction,a as useAsync,S as useClickOutside,_ as useCopyToClipboard,b as useDebounce,m as useDomCalculation,s as useEffectOnce,v as useHeightCalculation,x as useIntersection,l as useIsAtTop,h as useIsClient,C as useIsScrolling,u as useIsomorphicEffect,d as useLocalStorage,y as useLockScroll,g as useMediaQuery,p as useQuerySelector,t as useSchedule,r as useScheduledEffect,e as useScrollTracker,f as useSessionStorage,o as useTimeout,w as useUpdateEffect,E as useUrlParams,c as useWindowEvent,T as useWorker,i as useWorkerEffect};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=require(`./functions-B14Waowq.cjs`);let l=require(`react`);l=s(l);let u=require(`@radix-ui/react-slot`),d=require(`react/jsx-runtime`);function f(e={}){let{timeout:t=1e4}=e;return l.useCallback(e=>{let n=()=>{try{l.startTransition(()=>{e()})}catch(e){console.log(`⚡[schedule.tsx] Failed: `,e)}};`requestIdleCallback`in window?requestIdleCallback(n,{timeout:t}):c.r(n)},[t])}function p(e,t=[],n={}){let r=f(n);l.useEffect(()=>{let t;return r(()=>{t=e()}),()=>{typeof t==`function`&&t?.()}},[r,...t])}const m=(e,t)=>{let[n,r]=l.useState(`idle`),[i,a]=l.useState(null),[o,s]=l.useState(null),[c,u]=l.useState(void 0),[d,f]=l.useTransition(),m=n===`idle`,h=n===`loading`||d,g=n===`success`,_=n===`error`,v=l.useCallback(e=>{a(e),r(`success`),t?.onSuccess?.(e),t?.onSettled?.()},[t]),y=l.useCallback(e=>{s(e),r(`error`),t?.onError?.(e),t?.onSettled?.()},[t]),b=l.useCallback(t=>{u(t),r(`loading`),s(null),f(()=>{e(t).then(v).catch(y)})},[e,v,y]);return{execute:b,executeAsync:l.useCallback(t=>new Promise((n,i)=>{u(t),r(`loading`),s(null),f(()=>{e(t).then(e=>{v(e),n(e)}).catch(e=>{y(e),i(e)})})}),[e,v,y]),reset:l.useCallback(()=>{r(`idle`),a(null),s(null),u(void 0)},[]),useExecute:e=>{p(()=>{b(e)},[])},data:i,error:o,input:c,isIdle:m,isLoading:h,isSuccess:g,isError:_}};function h(e,t={}){let{mode:n=`manual`,deps:r,onSuccess:i,onError:a,onSettled:o}=t,[s,c]=l.useState(void 0),[u,d]=l.useState(void 0),[f,p]=l.useState(`idle`),m=l.useRef(null),h=l.useCallback(i||(()=>{}),[i]),g=l.useCallback(a||(()=>{}),[a]),_=l.useCallback(o||(()=>{}),[o]),v=l.useCallback(async()=>{m.current&&m.current.abort(),m.current=new AbortController;let t=m.current.signal;p(`pending`),d(void 0);try{let n=await e(t);return t.aborted||(c(n),p(`success`),await h(n),await _(n,void 0)),n}catch(e){if(e instanceof Error&&e.name===`AbortError`)return;let n=e instanceof Error?e:Error(String(e)),r=n;throw t.aborted||(d(r),p(`error`),await g(r),await _(void 0,r)),n}},[e,h,g,_]);return l.useEffect(()=>{n===`auto`&&!r&&v()},[e,n,v,r]),l.useEffect(()=>{r&&n===`auto`&&v()},r||[]),l.useEffect(()=>()=>{m.current&&m.current.abort()},[]),{data:s,error:u,status:f,isIdle:f===`idle`,isPending:f===`pending`,isSuccess:f===`success`,isError:f===`error`,execute:v}}const g=l.createContext(null),_=({children:e})=>{let t=l.useRef(null);return(0,d.jsx)(g.Provider,{value:t,children:(0,d.jsx)(u.Slot,{ref:t,children:e})})},v=({threshold:e=300,container:t}={})=>{let n=l.useContext(g),[r,i]=l.useState({scrolledPast:!1,direction:`forward`}),a=l.useRef(0),o=t=>{let n=t>a.current?`forward`:`backward`;i({scrolledPast:t>e,direction:n}),a.current=t};return p(()=>{let e=null;typeof t==`string`?e=document.querySelector(t):t?.current?e=t.current:n?.current&&(e=n.current);let r=e||window,i=e?`scrollTop`:`scrollY`,a=()=>{let e=r[i];o(e)};return r.addEventListener(`scroll`,a),a(),()=>r.removeEventListener(`scroll`,a)},[t,n,e]),r};function y(e){let[t,n]=l.useState(void 0),[r,i]=l.useState(null),[a,o]=l.useState(!1),s=l.useMemo(()=>c.t(e),[]);return{execute:l.useCallback((...e)=>{(async()=>{o(!0),i(null);try{n(await s(...e))}catch(e){i(e instanceof Error?e:Error(String(e)))}finally{o(!1)}})()},[s]),data:t,error:r,isLoading:a}}function b(e,t=[]){let{execute:n}=y(e);l.useEffect(()=>{n()},[n,...t])}const x=(e=()=>alert(`clicked outside`))=>{let t=l.useRef(null),n=n=>{t.current&&!t.current.contains(n.target)&&e()};return l.useEffect(()=>(document.addEventListener(`mousedown`,n),document.addEventListener(`touchstart`,n),()=>{document.removeEventListener(`mousedown`,n),document.removeEventListener(`touchstart`,n)})),t};function S(e){let t=l.useMemo(()=>{switch(e){case`sm`:return`(min-width: 640px)`;case`md`:return`(min-width: 768px)`;case`lg`:return`(min-width: 1024px)`;case`xl`:return`(min-width: 1280px)`;case`2xl`:return`(min-width: 1536px)`;default:return e}},[e]),n=e=>typeof window<`u`?window.matchMedia(e).matches:!1,[r,i]=l.useState(n(t)),a=()=>{i(n(t))};return p(()=>{let e=window.matchMedia(t);return a(),e.addEventListener(`change`,a),()=>{e.removeEventListener(`change`,a)}},[t]),r}function C(e){l.useEffect(e,[])}function w(e,t){let n=l.useRef(!0);l.useEffect(()=>{if(n.current)n.current=!1;else return e()},t)}function T(e,t=500){let[n,r]=l.useState(e);return l.useEffect(()=>{let n=setTimeout(()=>r(e),t);return()=>{clearTimeout(n)}},[e,t]),n}const E=typeof window<`u`?l.useLayoutEffect:l.useEffect;function D(e,t=1e3){let n=l.useRef(e);p(()=>{n.current=e},[e]),l.useEffect(()=>{if(!t&&t!==0)return;let e=setTimeout(()=>n.current(),t);return()=>clearTimeout(e)},[t])}function O(e,t,n){l.useEffect(()=>(window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)),[e,t,n])}const k=(e,t)=>{let[n,r]=l.useState(t);return l.useEffect(()=>{let t=sessionStorage.getItem(e);t&&r(JSON.parse(t))},[e]),[n,l.useCallback(t=>{r(n=>{let r=typeof t==`function`?t(n):t;return sessionStorage.setItem(e,JSON.stringify(r)),r})},[e])]},A=(e,t)=>{let[n,r]=l.useState(t);return l.useEffect(()=>{let t=localStorage.getItem(e);t&&r(JSON.parse(t))},[e]),[n,l.useCallback(t=>{let i;i=typeof t==`function`?t(n):t,localStorage.setItem(e,JSON.stringify(i)),r(i)},[e])]},j=(e,t)=>{let[n,r]=l.useState(t);return l.useEffect(()=>{let t=new URLSearchParams(window.location.search).get(e);t!==null&&r(t)},[e]),[n,t=>{let n=new URLSearchParams(window.location.search);n.set(e,String(t)),window.history.pushState({},``,`${window.location.pathname}?${n}`),r(t)}]},M=e=>{let[t,n]=l.useState(null),r=l.useRef(null);return l.useEffect(()=>{let t=null;if(typeof e==`string`?t=document.querySelector(e):e?.current&&(t=e.current),!t)return;r.current!==t&&(r.current=t,n(t));let i=new ResizeObserver(()=>{r.current!==t&&(r.current=t,n(t))});return i.observe(t),()=>{i.disconnect()}},[e]),t};function N(){let[e,t]=l.useState(!1);return l.useEffect(()=>{t(!0)},[]),e}function P(){l.useLayoutEffect(()=>{let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[])}function F({timeout:e=2e3}){let[t,n]=l.useState(!1);return{isCopied:t,copy:t=>{c.l(t,()=>{n(!0),setTimeout(()=>{n(!1)},e)})}}}const I=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:r=!1})=>{let[i,a]=l.useState(500),o=()=>{let r=e.reduce((e,t)=>e+(document.getElementById(t)?.clientHeight||0),0);a(n?window.innerHeight-r-t:r+t)};return l.useEffect(()=>{if(o(),r){if(typeof r==`string`){let e=document.getElementById(r),t=new ResizeObserver(e=>{for(let t of e)o()});return e&&t.observe(e),()=>t?.disconnect()}return window.addEventListener(`resize`,o),()=>window.removeEventListener(`resize`,o)}},[]),i},L=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:r=!1,onChange:i})=>{let[a,o]=l.useState({height:500,width:500}),s=l.useCallback(()=>{let r=e.reduce((e,t)=>e+(document.getElementById(t)?.clientHeight||0),0),a=e.reduce((e,t)=>e+(document.getElementById(t)?.clientWidth||0),0),s=n?window.innerHeight-r-t:r+t,c=n?window.innerWidth-a-t:a+t;o(e=>e.height===s&&e.width===c?e:{height:s,width:c}),i?.({blocksWidth:a,blocksHeight:r,remainingWidth:c,remainingHeight:s})},[e,t,n,i]);return l.useEffect(()=>{s();let t=[];if(e.length>0){let n=new MutationObserver(t=>{let n=!1;for(let r of t){for(let t of Array.from(r.addedNodes))if(t instanceof Element&&(e.includes(t.id)||e.some(e=>t.querySelector(`#${CSS.escape(e)}`)))){n=!0;break}if(n)break;for(let t of Array.from(r.removedNodes))if(t instanceof Element&&(e.includes(t.id)||e.some(e=>t.querySelector(`#${CSS.escape(e)}`)))){n=!0;break}if(n)break}n&&s()});n.observe(document.body,{childList:!0,subtree:!0}),t.push(()=>n.disconnect())}if(r)if(typeof r==`string`){let e=document.getElementById(r);if(e){let n=new ResizeObserver(s);n.observe(e),t.push(()=>n.unobserve(e)),t.push(()=>n.disconnect())}}else window.addEventListener(`resize`,s),t.push(()=>window.removeEventListener(`resize`,s));return()=>{for(let e of t)e()}},[s,r,e.join(`,`)]),a},R=()=>{let[e,t]=l.useState(!1),n=l.useRef(null),r=l.useRef(null);return C(()=>{let e=r.current;if(!e)return;let i=()=>{t(!0),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{t(!1)},150)};return i(),e.addEventListener(`scroll`,i),()=>{e.removeEventListener(`scroll`,i),n.current&&clearTimeout(n.current)}}),{isScrolling:e,scrollableContainerRef:r}},z=({offset:e}={})=>{let[t,n]=l.useState(!0),r=l.useRef(null);return C(()=>{let t=r.current;if(!t)return;let i=()=>{n(!(t.scrollTop>(e??10)))};return i(),t.addEventListener(`scroll`,i),()=>{t.removeEventListener(`scroll`,i)}}),{scrollableContainerRef:r,isAtTop:t}},B=({threshold:e=.1,root:t=null,rootMargin:n,onInteractionStart:r,onInteractionEnd:i}={})=>{let[a,o]=l.useState(!1),s=l.useRef(null);return l.useEffect(()=>{if(!s.current)return;let c=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting?a||(r?.(),o(!0)):a&&(i?.(),o(!1))},{threshold:e,root:t,...n&&{rootMargin:n}});return c.observe(s.current),()=>{c.disconnect()}},[e,t,n,r,i,a]),{ref:s,isIntersecting:a}};Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return j}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{l as e,r as t,t as n}from"./functions-BPJKOZUE.js";import*as r from"react";import{Slot as i}from"@radix-ui/react-slot";import{jsx as a}from"react/jsx-runtime";function o(e={}){let{timeout:n=1e4}=e;return r.useCallback(e=>{let i=()=>{try{r.startTransition(()=>{e()})}catch(e){console.log(`⚡[schedule.tsx] Failed: `,e)}};`requestIdleCallback`in window?requestIdleCallback(i,{timeout:n}):t(i)},[n])}function s(e,t=[],n={}){let i=o(n);r.useEffect(()=>{let t;return i(()=>{t=e()}),()=>{typeof t==`function`&&t?.()}},[i,...t])}const c=(e,t)=>{let[n,i]=r.useState(`idle`),[a,o]=r.useState(null),[c,l]=r.useState(null),[u,d]=r.useState(void 0),[f,p]=r.useTransition(),m=n===`idle`,h=n===`loading`||f,g=n===`success`,_=n===`error`,v=r.useCallback(e=>{o(e),i(`success`),t?.onSuccess?.(e),t?.onSettled?.()},[t]),y=r.useCallback(e=>{l(e),i(`error`),t?.onError?.(e),t?.onSettled?.()},[t]),b=r.useCallback(t=>{d(t),i(`loading`),l(null),p(()=>{e(t).then(v).catch(y)})},[e,v,y]);return{execute:b,executeAsync:r.useCallback(t=>new Promise((n,r)=>{d(t),i(`loading`),l(null),p(()=>{e(t).then(e=>{v(e),n(e)}).catch(e=>{y(e),r(e)})})}),[e,v,y]),reset:r.useCallback(()=>{i(`idle`),o(null),l(null),d(void 0)},[]),useExecute:e=>{s(()=>{b(e)},[])},data:a,error:c,input:u,isIdle:m,isLoading:h,isSuccess:g,isError:_}};function l(e,t={}){let{mode:n=`manual`,deps:i,onSuccess:a,onError:o,onSettled:s}=t,[c,l]=r.useState(void 0),[u,d]=r.useState(void 0),[f,p]=r.useState(`idle`),m=r.useRef(null),h=r.useCallback(a||(()=>{}),[a]),g=r.useCallback(o||(()=>{}),[o]),_=r.useCallback(s||(()=>{}),[s]),v=r.useCallback(async()=>{m.current&&m.current.abort(),m.current=new AbortController;let t=m.current.signal;p(`pending`),d(void 0);try{let n=await e(t);return t.aborted||(l(n),p(`success`),await h(n),await _(n,void 0)),n}catch(e){if(e instanceof Error&&e.name===`AbortError`)return;let n=e instanceof Error?e:Error(String(e)),r=n;throw t.aborted||(d(r),p(`error`),await g(r),await _(void 0,r)),n}},[e,h,g,_]);return r.useEffect(()=>{n===`auto`&&!i&&v()},[e,n,v,i]),r.useEffect(()=>{i&&n===`auto`&&v()},i||[]),r.useEffect(()=>()=>{m.current&&m.current.abort()},[]),{data:c,error:u,status:f,isIdle:f===`idle`,isPending:f===`pending`,isSuccess:f===`success`,isError:f===`error`,execute:v}}const u=r.createContext(null),d=({children:e})=>{let t=r.useRef(null);return a(u.Provider,{value:t,children:a(i,{ref:t,children:e})})},f=({threshold:e=300,container:t}={})=>{let n=r.useContext(u),[i,a]=r.useState({scrolledPast:!1,direction:`forward`}),o=r.useRef(0),c=t=>{let n=t>o.current?`forward`:`backward`;a({scrolledPast:t>e,direction:n}),o.current=t};return s(()=>{let e=null;typeof t==`string`?e=document.querySelector(t):t?.current?e=t.current:n?.current&&(e=n.current);let r=e||window,i=e?`scrollTop`:`scrollY`,a=()=>{let e=r[i];c(e)};return r.addEventListener(`scroll`,a),a(),()=>r.removeEventListener(`scroll`,a)},[t,n,e]),i};function p(e){let[t,i]=r.useState(void 0),[a,o]=r.useState(null),[s,c]=r.useState(!1),l=r.useMemo(()=>n(e),[]);return{execute:r.useCallback((...e)=>{(async()=>{c(!0),o(null);try{i(await l(...e))}catch(e){o(e instanceof Error?e:Error(String(e)))}finally{c(!1)}})()},[l]),data:t,error:a,isLoading:s}}function m(e,t=[]){let{execute:n}=p(e);r.useEffect(()=>{n()},[n,...t])}const h=(e=()=>alert(`clicked outside`))=>{let t=r.useRef(null),n=n=>{t.current&&!t.current.contains(n.target)&&e()};return r.useEffect(()=>(document.addEventListener(`mousedown`,n),document.addEventListener(`touchstart`,n),()=>{document.removeEventListener(`mousedown`,n),document.removeEventListener(`touchstart`,n)})),t};function g(e){let t=r.useMemo(()=>{switch(e){case`sm`:return`(min-width: 640px)`;case`md`:return`(min-width: 768px)`;case`lg`:return`(min-width: 1024px)`;case`xl`:return`(min-width: 1280px)`;case`2xl`:return`(min-width: 1536px)`;default:return e}},[e]),n=e=>typeof window<`u`?window.matchMedia(e).matches:!1,[i,a]=r.useState(n(t)),o=()=>{a(n(t))};return s(()=>{let e=window.matchMedia(t);return o(),e.addEventListener(`change`,o),()=>{e.removeEventListener(`change`,o)}},[t]),i}function _(e){r.useEffect(e,[])}function v(e,t){let n=r.useRef(!0);r.useEffect(()=>{if(n.current)n.current=!1;else return e()},t)}function y(e,t=500){let[n,i]=r.useState(e);return r.useEffect(()=>{let n=setTimeout(()=>i(e),t);return()=>{clearTimeout(n)}},[e,t]),n}const b=typeof window<`u`?r.useLayoutEffect:r.useEffect;function x(e,t=1e3){let n=r.useRef(e);s(()=>{n.current=e},[e]),r.useEffect(()=>{if(!t&&t!==0)return;let e=setTimeout(()=>n.current(),t);return()=>clearTimeout(e)},[t])}function S(e,t,n){r.useEffect(()=>(window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)),[e,t,n])}const C=(e,t)=>{let[n,i]=r.useState(t);return r.useEffect(()=>{let t=sessionStorage.getItem(e);t&&i(JSON.parse(t))},[e]),[n,r.useCallback(t=>{i(n=>{let r=typeof t==`function`?t(n):t;return sessionStorage.setItem(e,JSON.stringify(r)),r})},[e])]},w=(e,t)=>{let[n,i]=r.useState(t);return r.useEffect(()=>{let t=localStorage.getItem(e);t&&i(JSON.parse(t))},[e]),[n,r.useCallback(t=>{let r;r=typeof t==`function`?t(n):t,localStorage.setItem(e,JSON.stringify(r)),i(r)},[e])]},T=(e,t)=>{let[n,i]=r.useState(t);return r.useEffect(()=>{let t=new URLSearchParams(window.location.search).get(e);t!==null&&i(t)},[e]),[n,t=>{let n=new URLSearchParams(window.location.search);n.set(e,String(t)),window.history.pushState({},``,`${window.location.pathname}?${n}`),i(t)}]},E=e=>{let[t,n]=r.useState(null),i=r.useRef(null);return r.useEffect(()=>{let t=null;if(typeof e==`string`?t=document.querySelector(e):e?.current&&(t=e.current),!t)return;i.current!==t&&(i.current=t,n(t));let r=new ResizeObserver(()=>{i.current!==t&&(i.current=t,n(t))});return r.observe(t),()=>{r.disconnect()}},[e]),t};function D(){let[e,t]=r.useState(!1);return r.useEffect(()=>{t(!0)},[]),e}function O(){r.useLayoutEffect(()=>{let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[])}function k({timeout:t=2e3}){let[n,i]=r.useState(!1);return{isCopied:n,copy:n=>{e(n,()=>{i(!0),setTimeout(()=>{i(!1)},t)})}}}const A=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:i=!1})=>{let[a,o]=r.useState(500),s=()=>{let r=e.reduce((e,t)=>e+(document.getElementById(t)?.clientHeight||0),0);o(n?window.innerHeight-r-t:r+t)};return r.useEffect(()=>{if(s(),i){if(typeof i==`string`){let e=document.getElementById(i),t=new ResizeObserver(e=>{for(let t of e)s()});return e&&t.observe(e),()=>t?.disconnect()}return window.addEventListener(`resize`,s),()=>window.removeEventListener(`resize`,s)}},[]),a},j=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:i=!1,onChange:a})=>{let[o,s]=r.useState({height:500,width:500}),c=r.useCallback(()=>{let r=e.reduce((e,t)=>e+(document.getElementById(t)?.clientHeight||0),0),i=e.reduce((e,t)=>e+(document.getElementById(t)?.clientWidth||0),0),o=n?window.innerHeight-r-t:r+t,c=n?window.innerWidth-i-t:i+t;s(e=>e.height===o&&e.width===c?e:{height:o,width:c}),a?.({blocksWidth:i,blocksHeight:r,remainingWidth:c,remainingHeight:o})},[e,t,n,a]);return r.useEffect(()=>{c();let t=[];if(e.length>0){let n=new MutationObserver(t=>{let n=!1;for(let r of t){for(let t of Array.from(r.addedNodes))if(t instanceof Element&&(e.includes(t.id)||e.some(e=>t.querySelector(`#${CSS.escape(e)}`)))){n=!0;break}if(n)break;for(let t of Array.from(r.removedNodes))if(t instanceof Element&&(e.includes(t.id)||e.some(e=>t.querySelector(`#${CSS.escape(e)}`)))){n=!0;break}if(n)break}n&&c()});n.observe(document.body,{childList:!0,subtree:!0}),t.push(()=>n.disconnect())}if(i)if(typeof i==`string`){let e=document.getElementById(i);if(e){let n=new ResizeObserver(c);n.observe(e),t.push(()=>n.unobserve(e)),t.push(()=>n.disconnect())}}else window.addEventListener(`resize`,c),t.push(()=>window.removeEventListener(`resize`,c));return()=>{for(let e of t)e()}},[c,i,e.join(`,`)]),o},M=()=>{let[e,t]=r.useState(!1),n=r.useRef(null),i=r.useRef(null);return _(()=>{let e=i.current;if(!e)return;let r=()=>{t(!0),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{t(!1)},150)};return r(),e.addEventListener(`scroll`,r),()=>{e.removeEventListener(`scroll`,r),n.current&&clearTimeout(n.current)}}),{isScrolling:e,scrollableContainerRef:i}},N=({offset:e}={})=>{let[t,n]=r.useState(!0),i=r.useRef(null);return _(()=>{let t=i.current;if(!t)return;let r=()=>{n(!(t.scrollTop>(e??10)))};return r(),t.addEventListener(`scroll`,r),()=>{t.removeEventListener(`scroll`,r)}}),{scrollableContainerRef:i,isAtTop:t}},P=({threshold:e=.1,root:t=null,rootMargin:n,onInteractionStart:i,onInteractionEnd:a}={})=>{let[o,s]=r.useState(!1),c=r.useRef(null);return r.useEffect(()=>{if(!c.current)return;let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting?o||(i?.(),s(!0)):o&&(a?.(),s(!1))},{threshold:e,root:t,...n&&{rootMargin:n}});return r.observe(c.current),()=>{r.disconnect()}},[e,t,n,i,a,o]),{ref:c,isIntersecting:o}};export{f as C,o as D,c as E,s as O,m as S,l as T,x as _,_ as a,S as b,N as c,b as d,w as f,C as g,E as h,j as i,D as l,g as m,k as n,A as o,O as p,y as r,P as s,h as t,M as u,v,d as w,p as x,T as y};
|
|
@@ -67,6 +67,13 @@ type TIndexValue<T, K$1 extends PropertyKey, D = never> = T extends any ? K$1 ex
|
|
|
67
67
|
type TPartialKeys<T, K$1 extends keyof T> = Omit<T, K$1> & Partial<Pick<T, K$1>> extends infer O ? { [P in keyof O]: O[P] } : never;
|
|
68
68
|
type TFunction = (...a: any[]) => any;
|
|
69
69
|
type TPrimitives = string | number | boolean | bigint | symbol | Date | TFunction;
|
|
70
|
+
type DeepMergeOptions = {
|
|
71
|
+
arrayMerge?: 'replace' | 'concat' | 'merge' | ((target: any[], source: any[]) => any[]);
|
|
72
|
+
clone?: boolean;
|
|
73
|
+
customMerge?: (key: string | symbol, targetValue: any, sourceValue: any) => any;
|
|
74
|
+
functionMerge?: 'replace' | 'compose';
|
|
75
|
+
maxDepth?: number;
|
|
76
|
+
};
|
|
70
77
|
type TMerged<T> = [T] extends [Array<any>] ? { [K in keyof T]: TMerged<T[K]> } : [T] extends [TPrimitives] ? T : [T] extends [object] ? TPartialKeys<{ [K in TAllKeys<T>]: TMerged<TIndexValue<T, K>> }, never> : T;
|
|
71
78
|
/**
|
|
72
79
|
* Deeply merges multiple objects, with later sources taking precedence.
|
|
@@ -85,9 +92,10 @@ type TMerged<T> = [T] extends [Array<any>] ? { [K in keyof T]: TMerged<T[K]> } :
|
|
|
85
92
|
* @param target - The target object to merge into
|
|
86
93
|
* @param sources - Source objects to merge from (can have additional properties)
|
|
87
94
|
* @param options - Configuration options
|
|
88
|
-
* @param options.arrayMerge - How to merge arrays: 'replace' (default), 'concat', or 'merge'
|
|
89
95
|
* @param options.clone - Whether to clone the target (default: true)
|
|
90
96
|
* @param options.customMerge - Custom merge function for specific keys
|
|
97
|
+
* @param options.arrayMerge - How to merge arrays: 'replace' (default), 'concat', or 'merge'
|
|
98
|
+
* @param options.functionMerge - How to merge functions: 'replace' (default) or 'compose'
|
|
91
99
|
* @param options.maxDepth - Maximum recursion depth (default: 100)
|
|
92
100
|
* @returns The merged object with proper typing
|
|
93
101
|
*
|
|
@@ -138,14 +146,16 @@ type TMerged<T> = [T] extends [Array<any>] ? { [K in keyof T]: TMerged<T[K]> } :
|
|
|
138
146
|
* const freshData = { posts: [{ id: 1, title: 'Updated', author: 'Bob' }] };
|
|
139
147
|
* deepmerge(cachedData, freshData);
|
|
140
148
|
* // { posts: [{ id: 1, title: 'Updated', author: 'Bob' }] }
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* // Function composition
|
|
152
|
+
* const log1 = () => console.log('first');
|
|
153
|
+
* const log2 = () => console.log('second');
|
|
154
|
+
* const composed = deepmerge(log1, log2, { functionMerge: 'compose' });
|
|
155
|
+
* composed(); // logs 'first' then 'second'
|
|
141
156
|
*/
|
|
142
157
|
declare function deepmerge<T extends Record<string, any>, S extends Record<string, any>[]>(target: T, ...sources: S): TMerged<T | S[number]>;
|
|
143
|
-
declare function deepmerge<T extends Record<string, any>, S extends Record<string, any>[]>(target: T, sources: S, options?:
|
|
144
|
-
arrayMerge?: 'replace' | 'concat' | 'merge' | ((target: any[], source: any[]) => any[]);
|
|
145
|
-
clone?: boolean;
|
|
146
|
-
customMerge?: (key: string | symbol, targetValue: any, sourceValue: any) => any;
|
|
147
|
-
maxDepth?: number;
|
|
148
|
-
}): TMerged<T | S[number]>;
|
|
158
|
+
declare function deepmerge<T extends Record<string, any>, S extends Record<string, any>[]>(target: T, sources: S, options?: DeepMergeOptions): TMerged<T | S[number]>;
|
|
149
159
|
//#endregion
|
|
150
160
|
//#region src/functions/hydrate.d.ts
|
|
151
161
|
type Hydrate<T> = T extends null ? undefined : T extends (infer U)[] ? Hydrate<U>[] : T extends object ? { [K in keyof T]: Hydrate<T[K]> } : T;
|
|
@@ -914,4 +924,42 @@ declare function normalizeText(str?: string | null, options?: {
|
|
|
914
924
|
removeNonAlphanumeric?: boolean;
|
|
915
925
|
}): string;
|
|
916
926
|
//#endregion
|
|
917
|
-
|
|
927
|
+
//#region src/functions/worker.d.ts
|
|
928
|
+
/**
|
|
929
|
+
* Converts a regular function into a workerized version that runs in a Web Worker.
|
|
930
|
+
*
|
|
931
|
+
* This provides the ultimate DX for Web Workers - just write a normal function
|
|
932
|
+
* and "workerize" it to run in the background without blocking the UI.
|
|
933
|
+
*
|
|
934
|
+
* @param fn - The function to workerize
|
|
935
|
+
* @returns A function that calls the original function in a worker and returns a Promise
|
|
936
|
+
*
|
|
937
|
+
* @example
|
|
938
|
+
* ```ts
|
|
939
|
+
* // Define a normal function
|
|
940
|
+
* function fibonacci(n: number): number {
|
|
941
|
+
* if (n <= 1) return n;
|
|
942
|
+
* return fibonacci(n - 1) + fibonacci(n - 2);
|
|
943
|
+
* }
|
|
944
|
+
*
|
|
945
|
+
* // Workerize it
|
|
946
|
+
* const workerizedFib = workerize(fibonacci);
|
|
947
|
+
*
|
|
948
|
+
* // Use like a normal async function!
|
|
949
|
+
* const result = await workerizedFib(35);
|
|
950
|
+
* console.log(result); // Works just like the original function
|
|
951
|
+
* ```
|
|
952
|
+
*
|
|
953
|
+
* @example
|
|
954
|
+
* ```ts
|
|
955
|
+
* // Works with any function signature
|
|
956
|
+
* const sumArray = workerize((arr: number[]) =>
|
|
957
|
+
* arr.reduce((a, b) => a + b, 0)
|
|
958
|
+
* );
|
|
959
|
+
*
|
|
960
|
+
* const result = await sumArray([1, 2, 3, 4, 5]); // 15
|
|
961
|
+
* ```
|
|
962
|
+
*/
|
|
963
|
+
declare function workerize<T extends (...args: any[]) => any>(fn: T): (...args: Parameters<T>) => Promise<ReturnType<T>>;
|
|
964
|
+
//#endregion
|
|
965
|
+
export { deepmerge as A, Task as C, getObjectValue as D, extendProps as E, getClientSideCookie as M, hasClientSideCookie as N, hydrate as O, setClientSideCookie as P, ScheduleOpts as S, poll as T, scrollTo as _, convertToNormalCase as a, throttle as b, debounce as c, isLinkActive as d, isNavActive as f, printf as g, normalizeText as h, cn as i, deleteClientSideCookie as j, DeepMergeOptions as k, escapeRegExp as l, mergeRefs as m, MergeRefs as n, convertToSlug as o, isSSR as p, cleanSrc as r, copyToClipboard as s, workerize as t, goToClientSideHash as u, sleep as v, schedule as w, shield as x, svgToBase64 as y };
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./functions-
|
|
1
|
+
const e=require(`./functions-B14Waowq.cjs`);exports.cleanSrc=e.a,exports.cn=e.o,exports.convertToNormalCase=e.s,exports.convertToSlug=e.c,exports.copyToClipboard=e.l,exports.debounce=e.u,exports.deepmerge=e.E,exports.deleteClientSideCookie=e.j,exports.escapeRegExp=e.d,exports.extendProps=e.C,exports.getClientSideCookie=e.M,exports.getObjectValue=e.w,exports.goToClientSideHash=e.f,exports.hasClientSideCookie=e.N,exports.hydrate=e.T,exports.isFalsy=e.D,exports.isLinkActive=e.p,exports.isNavActive=e.m,exports.isNullish=e.O,exports.isPlainObject=e.k,exports.isPrimitive=e.A,exports.isSSR=e.h,exports.mergeRefs=e.g,exports.normalizeText=e._,exports.poll=e.i,exports.printf=e.v,exports.schedule=e.r,exports.scrollTo=e.y,exports.setClientSideCookie=e.P,exports.shield=e.n,exports.sleep=e.b,exports.svgToBase64=e.x,exports.throttle=e.S,exports.workerize=e.t;
|
package/dist/index.d.cts
CHANGED
|
@@ -68,6 +68,13 @@ type TIndexValue<T, K$1 extends PropertyKey, D = never> = T extends any ? K$1 ex
|
|
|
68
68
|
type TPartialKeys<T, K$1 extends keyof T> = Omit<T, K$1> & Partial<Pick<T, K$1>> extends infer O ? { [P in keyof O]: O[P] } : never;
|
|
69
69
|
type TFunction = (...a: any[]) => any;
|
|
70
70
|
type TPrimitives = string | number | boolean | bigint | symbol | Date | TFunction;
|
|
71
|
+
type DeepMergeOptions = {
|
|
72
|
+
arrayMerge?: 'replace' | 'concat' | 'merge' | ((target: any[], source: any[]) => any[]);
|
|
73
|
+
clone?: boolean;
|
|
74
|
+
customMerge?: (key: string | symbol, targetValue: any, sourceValue: any) => any;
|
|
75
|
+
functionMerge?: 'replace' | 'compose';
|
|
76
|
+
maxDepth?: number;
|
|
77
|
+
};
|
|
71
78
|
type TMerged<T> = [T] extends [Array<any>] ? { [K in keyof T]: TMerged<T[K]> } : [T] extends [TPrimitives] ? T : [T] extends [object] ? TPartialKeys<{ [K in TAllKeys<T>]: TMerged<TIndexValue<T, K>> }, never> : T;
|
|
72
79
|
/**
|
|
73
80
|
* Deeply merges multiple objects, with later sources taking precedence.
|
|
@@ -86,9 +93,10 @@ type TMerged<T> = [T] extends [Array<any>] ? { [K in keyof T]: TMerged<T[K]> } :
|
|
|
86
93
|
* @param target - The target object to merge into
|
|
87
94
|
* @param sources - Source objects to merge from (can have additional properties)
|
|
88
95
|
* @param options - Configuration options
|
|
89
|
-
* @param options.arrayMerge - How to merge arrays: 'replace' (default), 'concat', or 'merge'
|
|
90
96
|
* @param options.clone - Whether to clone the target (default: true)
|
|
91
97
|
* @param options.customMerge - Custom merge function for specific keys
|
|
98
|
+
* @param options.arrayMerge - How to merge arrays: 'replace' (default), 'concat', or 'merge'
|
|
99
|
+
* @param options.functionMerge - How to merge functions: 'replace' (default) or 'compose'
|
|
92
100
|
* @param options.maxDepth - Maximum recursion depth (default: 100)
|
|
93
101
|
* @returns The merged object with proper typing
|
|
94
102
|
*
|
|
@@ -139,14 +147,16 @@ type TMerged<T> = [T] extends [Array<any>] ? { [K in keyof T]: TMerged<T[K]> } :
|
|
|
139
147
|
* const freshData = { posts: [{ id: 1, title: 'Updated', author: 'Bob' }] };
|
|
140
148
|
* deepmerge(cachedData, freshData);
|
|
141
149
|
* // { posts: [{ id: 1, title: 'Updated', author: 'Bob' }] }
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* // Function composition
|
|
153
|
+
* const log1 = () => console.log('first');
|
|
154
|
+
* const log2 = () => console.log('second');
|
|
155
|
+
* const composed = deepmerge(log1, log2, { functionMerge: 'compose' });
|
|
156
|
+
* composed(); // logs 'first' then 'second'
|
|
142
157
|
*/
|
|
143
158
|
declare function deepmerge<T extends Record<string, any>, S$1 extends Record<string, any>[]>(target: T, ...sources: S$1): TMerged<T | S$1[number]>;
|
|
144
|
-
declare function deepmerge<T extends Record<string, any>, S$1 extends Record<string, any>[]>(target: T, sources: S$1, options?:
|
|
145
|
-
arrayMerge?: 'replace' | 'concat' | 'merge' | ((target: any[], source: any[]) => any[]);
|
|
146
|
-
clone?: boolean;
|
|
147
|
-
customMerge?: (key: string | symbol, targetValue: any, sourceValue: any) => any;
|
|
148
|
-
maxDepth?: number;
|
|
149
|
-
}): TMerged<T | S$1[number]>;
|
|
159
|
+
declare function deepmerge<T extends Record<string, any>, S$1 extends Record<string, any>[]>(target: T, sources: S$1, options?: DeepMergeOptions): TMerged<T | S$1[number]>;
|
|
150
160
|
//#endregion
|
|
151
161
|
//#region src/functions/hydrate.d.ts
|
|
152
162
|
type Hydrate<T> = T extends null ? undefined : T extends (infer U)[] ? Hydrate<U>[] : T extends object ? { [K in keyof T]: Hydrate<T[K]> } : T;
|
|
@@ -873,6 +883,44 @@ declare function normalizeText(str?: string | null, options?: {
|
|
|
873
883
|
removeNonAlphanumeric?: boolean;
|
|
874
884
|
}): string;
|
|
875
885
|
//#endregion
|
|
886
|
+
//#region src/functions/worker.d.ts
|
|
887
|
+
/**
|
|
888
|
+
* Converts a regular function into a workerized version that runs in a Web Worker.
|
|
889
|
+
*
|
|
890
|
+
* This provides the ultimate DX for Web Workers - just write a normal function
|
|
891
|
+
* and "workerize" it to run in the background without blocking the UI.
|
|
892
|
+
*
|
|
893
|
+
* @param fn - The function to workerize
|
|
894
|
+
* @returns A function that calls the original function in a worker and returns a Promise
|
|
895
|
+
*
|
|
896
|
+
* @example
|
|
897
|
+
* ```ts
|
|
898
|
+
* // Define a normal function
|
|
899
|
+
* function fibonacci(n: number): number {
|
|
900
|
+
* if (n <= 1) return n;
|
|
901
|
+
* return fibonacci(n - 1) + fibonacci(n - 2);
|
|
902
|
+
* }
|
|
903
|
+
*
|
|
904
|
+
* // Workerize it
|
|
905
|
+
* const workerizedFib = workerize(fibonacci);
|
|
906
|
+
*
|
|
907
|
+
* // Use like a normal async function!
|
|
908
|
+
* const result = await workerizedFib(35);
|
|
909
|
+
* console.log(result); // Works just like the original function
|
|
910
|
+
* ```
|
|
911
|
+
*
|
|
912
|
+
* @example
|
|
913
|
+
* ```ts
|
|
914
|
+
* // Works with any function signature
|
|
915
|
+
* const sumArray = workerize((arr: number[]) =>
|
|
916
|
+
* arr.reduce((a, b) => a + b, 0)
|
|
917
|
+
* );
|
|
918
|
+
*
|
|
919
|
+
* const result = await sumArray([1, 2, 3, 4, 5]); // 15
|
|
920
|
+
* ```
|
|
921
|
+
*/
|
|
922
|
+
declare function workerize<T extends (...args: any[]) => any>(fn: T): (...args: Parameters<T>) => Promise<ReturnType<T>>;
|
|
923
|
+
//#endregion
|
|
876
924
|
//#region src/types/utilities.d.ts
|
|
877
925
|
/**
|
|
878
926
|
* Extracts the keys of an object type as a union type.
|
|
@@ -1482,4 +1530,4 @@ declare const isPrimitive: (val: unknown) => val is Primitive;
|
|
|
1482
1530
|
*/
|
|
1483
1531
|
declare function isPlainObject(value: unknown): value is Record<string, any>;
|
|
1484
1532
|
//#endregion
|
|
1485
|
-
export { AND, AllOrNone, BUFFER, DeepPartial, DeepReadonly, DeepRequired, Diff, Falsy, IMPLIES, Intersection, Keys, KeysOfType, Maybe, Merge, MergeRefs, Mutable, NAND, NOR, NOT, NestedKeyOf, Never, Nullable, Nullish, OR, OmitByType, OneOf, Optional, Prettify, Primitive, RequiredKeys, ScheduleOpts, SelectivePartial, SelectiveRequired, Substract, Task, TwoOf, Values, Without, XNOR, XNOR_Binary, XOR, XOR_Binary, cleanSrc, cn, convertToNormalCase, convertToSlug, copyToClipboard, debounce, deepmerge, deleteClientSideCookie, escapeRegExp, extendProps, getClientSideCookie, getObjectValue, goToClientSideHash, hasClientSideCookie, hydrate, isFalsy, isLinkActive, isNavActive, isNullish, isPlainObject, isPrimitive, isSSR, mergeRefs, normalizeText, poll, printf, schedule, scrollTo, setClientSideCookie, shield, sleep, svgToBase64, throttle };
|
|
1533
|
+
export { AND, AllOrNone, BUFFER, DeepMergeOptions, DeepPartial, DeepReadonly, DeepRequired, Diff, Falsy, IMPLIES, Intersection, Keys, KeysOfType, Maybe, Merge, MergeRefs, Mutable, NAND, NOR, NOT, NestedKeyOf, Never, Nullable, Nullish, OR, OmitByType, OneOf, Optional, Prettify, Primitive, RequiredKeys, ScheduleOpts, SelectivePartial, SelectiveRequired, Substract, Task, TwoOf, Values, Without, XNOR, XNOR_Binary, XOR, XOR_Binary, cleanSrc, cn, convertToNormalCase, convertToSlug, copyToClipboard, debounce, deepmerge, deleteClientSideCookie, escapeRegExp, extendProps, getClientSideCookie, getObjectValue, goToClientSideHash, hasClientSideCookie, hydrate, isFalsy, isLinkActive, isNavActive, isNullish, isPlainObject, isPrimitive, isSSR, mergeRefs, normalizeText, poll, printf, schedule, scrollTo, setClientSideCookie, shield, sleep, svgToBase64, throttle, workerize };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as deepmerge, C as Task, D as getObjectValue, E as extendProps, M as getClientSideCookie, N as hasClientSideCookie, O as hydrate, P as setClientSideCookie, S as ScheduleOpts, T as poll, _ as scrollTo, a as convertToNormalCase, b as throttle, c as debounce, d as isLinkActive, f as isNavActive, g as printf, h as normalizeText, i as cn, j as deleteClientSideCookie, k as DeepMergeOptions, l as escapeRegExp, m as mergeRefs, n as MergeRefs, o as convertToSlug, p as isSSR, r as cleanSrc, s as copyToClipboard, t as workerize, u as goToClientSideHash, v as sleep, w as schedule, x as shield, y as svgToBase64 } from "./index-Cmnsv3j8.js";
|
|
2
2
|
|
|
3
3
|
//#region src/types/utilities.d.ts
|
|
4
4
|
|
|
@@ -610,4 +610,4 @@ declare const isPrimitive: (val: unknown) => val is Primitive;
|
|
|
610
610
|
*/
|
|
611
611
|
declare function isPlainObject(value: unknown): value is Record<string, any>;
|
|
612
612
|
//#endregion
|
|
613
|
-
export { AND, AllOrNone, BUFFER, DeepPartial, DeepReadonly, DeepRequired, Diff, Falsy, IMPLIES, Intersection, Keys, KeysOfType, Maybe, Merge, MergeRefs, Mutable, NAND, NOR, NOT, NestedKeyOf, Never, Nullable, Nullish, OR, OmitByType, OneOf, Optional, Prettify, Primitive, RequiredKeys, ScheduleOpts, SelectivePartial, SelectiveRequired, Substract, Task, TwoOf, Values, Without, XNOR, XNOR_Binary, XOR, XOR_Binary, cleanSrc, cn, convertToNormalCase, convertToSlug, copyToClipboard, debounce, deepmerge, deleteClientSideCookie, escapeRegExp, extendProps, getClientSideCookie, getObjectValue, goToClientSideHash, hasClientSideCookie, hydrate, isFalsy, isLinkActive, isNavActive, isNullish, isPlainObject, isPrimitive, isSSR, mergeRefs, normalizeText, poll, printf, schedule, scrollTo, setClientSideCookie, shield, sleep, svgToBase64, throttle };
|
|
613
|
+
export { AND, AllOrNone, BUFFER, DeepMergeOptions, DeepPartial, DeepReadonly, DeepRequired, Diff, Falsy, IMPLIES, Intersection, Keys, KeysOfType, Maybe, Merge, MergeRefs, Mutable, NAND, NOR, NOT, NestedKeyOf, Never, Nullable, Nullish, OR, OmitByType, OneOf, Optional, Prettify, Primitive, RequiredKeys, ScheduleOpts, SelectivePartial, SelectiveRequired, Substract, Task, TwoOf, Values, Without, XNOR, XNOR_Binary, XOR, XOR_Binary, cleanSrc, cn, convertToNormalCase, convertToSlug, copyToClipboard, debounce, deepmerge, deleteClientSideCookie, escapeRegExp, extendProps, getClientSideCookie, getObjectValue, goToClientSideHash, hasClientSideCookie, hydrate, isFalsy, isLinkActive, isNavActive, isNullish, isPlainObject, isPrimitive, isSSR, mergeRefs, normalizeText, poll, printf, schedule, scrollTo, setClientSideCookie, shield, sleep, svgToBase64, throttle, workerize };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,C as t,D as n,E as r,M as i,N as a,O as o,
|
|
1
|
+
import{A as e,C as t,D as n,E as r,M as i,N as a,O as o,P as s,S as c,T as l,_ as u,a as d,b as f,c as p,d as m,f as h,g,h as _,i as v,j as y,k as b,l as x,m as S,n as C,o as w,p as T,r as E,s as D,t as O,u as k,v as A,w as j,x as M,y as N}from"./functions-BPJKOZUE.js";export{d as cleanSrc,w as cn,D as convertToNormalCase,p as convertToSlug,x as copyToClipboard,k as debounce,r as deepmerge,y as deleteClientSideCookie,m as escapeRegExp,t as extendProps,i as getClientSideCookie,j as getObjectValue,h as goToClientSideHash,a as hasClientSideCookie,l as hydrate,n as isFalsy,T as isLinkActive,S as isNavActive,o as isNullish,b as isPlainObject,e as isPrimitive,_ as isSSR,g as mergeRefs,u as normalizeText,v as poll,A as printf,E as schedule,N as scrollTo,s as setClientSideCookie,C as shield,f as sleep,M as svgToBase64,c as throttle,O as workerize};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sohanemon/utils",
|
|
3
|
-
"version": "6.4.
|
|
3
|
+
"version": "6.4.3",
|
|
4
4
|
"author": "Sohan Emon <sohanemon@outlook.com>",
|
|
5
5
|
"description": "",
|
|
6
6
|
"type": "module",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"format": "biome format .",
|
|
53
53
|
"format:write": "biome format . --write",
|
|
54
54
|
"typecheck": "tsgo --noEmit",
|
|
55
|
+
"playground": "cd playground && npm run dev",
|
|
55
56
|
"release": "tsgo --noEmit && npm run build && npm publish"
|
|
56
57
|
},
|
|
57
58
|
"keywords": [
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`./hooks-BLpQegFa.cjs`);let t=require(`clsx`),n=require(`tailwind-merge`);const r=(e,t,n,r=`/`)=>{let i=``;if(n){let e=new Date;e.setTime(e.getTime()+n*24*60*60*1e3),i=`; expires=${e.toUTCString()}`}document.cookie=`${e}=${t||``}${i}; path=${r}`},i=(e,t=`/`)=>{document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`},a=e=>document.cookie.split(`; `).some(t=>t.startsWith(`${e}=`)),o=e=>({value:document.cookie.split(`; `).find(t=>t.startsWith(`${e}=`))?.split(`=`)[1]}),s=e=>!e,c=e=>e==null,l=e=>{if(e==null)return!0;switch(typeof e){case`string`:case`number`:case`bigint`:case`boolean`:case`symbol`:return!0;default:return!1}};function u(e){if(typeof e!=`object`||!e||Object.prototype.toString.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function d(e,...t){let n,r={},i=t[t.length-1];i&&typeof i==`object`&&!Array.isArray(i)&&(i.arrayMerge!==void 0||i.clone!==void 0||i.customMerge!==void 0||i.maxDepth!==void 0)?(r={...r,...i},n=t.slice(0,-1)):n=t;let{arrayMerge:a=`replace`,clone:o=!0,customMerge:s,maxDepth:c=100}=r,l=new WeakMap;return d(e,n,0);function d(e,t,n){if(n>=c)return console.warn(`[deepmerge] Maximum depth ${c} exceeded. Returning target as-is.`),e;if(!u(e)&&!Array.isArray(e)){for(let e of t)if(e!==void 0)return e;return e}let r=o?Array.isArray(e)?[...e]:{...e}:e;for(let e of t)if(e!=null&&!l.has(e))if(l.set(e,r),Array.isArray(r)&&Array.isArray(e))r=f(r,e,a);else if(u(r)&&u(e)){let t=new Set([...Object.keys(r),...Object.keys(e),...Object.getOwnPropertySymbols(r),...Object.getOwnPropertySymbols(e)]);for(let i of t){let t=r[i],o=e[i];s&&s(i,t,o)!==void 0?r[i]=s(i,t,o):u(t)&&u(o)?r[i]=d(t,[o],n+1):Array.isArray(t)&&Array.isArray(o)?r[i]=f(t,o,a):o!==void 0&&(r[i]=o)}}else r=e;return r}function f(e,t,n){if(typeof n==`function`)return n(e,t);switch(n){case`concat`:return[...e,...t];case`merge`:let n=Math.max(e.length,t.length),r=[];for(let i=0;i<n;i++)i<e.length&&i<t.length?u(e[i])&&u(t[i])?r[i]=d(e[i],[t[i]],0):r[i]=t[i]:i<e.length?r[i]=e[i]:r[i]=t[i];return r;case`replace`:default:return[...t]}}}function f(e){return p(e)}function p(e){if(e!==null){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(p);if(u(e)){let t={};for(let n in e)t[n]=p(e[n]);return t}return e}}function m(e,t,n){if(typeof t!=`string`&&!Array.isArray(t))return n;let r=(()=>Array.isArray(t)?t:t===``?[]:String(t).split(`.`).filter(e=>e!==``))();if(!Array.isArray(r))return n;let i=e;for(let e of r){if(i==null)return n;let t=typeof e==`string`&&Array.isArray(i)&&/^\d+$/.test(e)?Number.parseInt(e,10):e;i=i[t]}return i===void 0?n:i}function h(e,t){return Object.assign(e,t)}function g(...e){return(0,n.twMerge)((0,t.clsx)(e))}function _(e,t){return console.warn(`isNavActive is deprecated. Use isLinkActive instead.`),RegExp(`^/?${e}(/|$)`).test(t)}function v({path:e,currentPath:t,locales:n=[`en`,`es`,`de`,`zh`,`bn`,`fr`,`it`,`nl`],exact:r=!0}){let i=RegExp(`^/?(${n.join(`|`)})/`),a=e=>e.replace(i,``).replace(/^\/+|\/+$/g,``),o=a(e),s=a(t);return r?o===s:s.startsWith(o)}function y(e){let t=e;return e.includes(`/public/`)&&(t=e.replace(`/public/`,`/`)),t.trim()}const b=(e,t)=>{let n;if(typeof e==`string`)n=document.querySelector(e);else if(e.current)n=e.current;else return;n&&n.scrollTo({top:t===`top`?0:n.scrollHeight-n.clientHeight,behavior:`smooth`})},x=(e,t=()=>{})=>{typeof window>`u`||!navigator.clipboard?.writeText||e&&navigator.clipboard.writeText(e).then(t)};function S(e){return(e.split(`.`).pop()||e).replace(/([a-z])([A-Z])/g,`$1 $2`).split(/[-_|�\s]+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}const C=`àáãäâèéëêìíïîòóöôùúüûñç·/_,:;`,w=`aaaaaeeeeiiiioooouuuunc------`,T=e=>{if(typeof e!=`string`)throw TypeError(`Input must be a string`);let t=e.trim().toLowerCase(),n={};for(let e=0;e<29;e++)n[C.charAt(e)]=`aaaaaeeeeiiiioooouuuunc------`.charAt(e);return t=t.replace(RegExp(`[${C}]`,`g`),e=>n[e]||e),t.replace(/[^a-z0-9 -]/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-+/,``).replace(/-+$/,``)||``},E=typeof window>`u`,D=e=>E?Buffer.from(e).toString(`base64`):window.btoa(e),O=(e=1e3,t)=>new Promise(n=>{if(t?.aborted)return n();let r=setTimeout(()=>{a(),n()},e);function i(){clearTimeout(r),a(),n()}function a(){t?.removeEventListener(`abort`,i)}t&&t.addEventListener(`abort`,i,{once:!0})});function k(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.immediate??!1,i,a,o,s;function c(){return s=e.apply(o,a),a=void 0,o=void 0,s}let l=function(...e){return a=e,o=this,i===void 0&&r&&(s=c.call(this)),i!==void 0&&clearTimeout(i),i=setTimeout(c.bind(this),t),s};return Object.defineProperty(l,`isPending`,{get(){return i!==void 0}}),l}function A(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.leading??!0,i=n?.trailing??!0,a,o,s,c,l;function u(){c=Date.now(),l=e.apply(s,o),o=void 0,s=void 0}function d(){a=void 0,i&&o&&u()}let f=function(...e){let n=c?Date.now()-c:1/0;return o=e,s=this,n>=t?r?u():a=setTimeout(d,t):!a&&i&&(a=setTimeout(d,t-n)),l};return Object.defineProperty(f,`isPending`,{get(){return a!==void 0}}),f}function j(e,...t){let n=t.length===1&&Array.isArray(t[0])?t[0]:t,r=0;return e.replace(/%s/g,()=>{let e=n[r++];return e===void 0?``:String(e)})}const M=(...e)=>t=>{for(let n of e)n&&(typeof n==`function`?n(t):n.current=t)};function N(e,t){let n=document.getElementById(e);n&&(n.scrollIntoView({behavior:`smooth`,block:`start`,...t}),window.history.pushState(null,``,`#${e}`))}function P(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function F(e,t={}){if(!e)return``;let{lowercase:n=!0,removeAccents:r=!0,removeNonAlphanumeric:i=!0}=t,a=e.normalize(`NFC`);return r&&(a=a.normalize(`NFD`).replace(/\p{M}/gu,``)),i&&(a=a.replace(/^[^\p{L}\p{N}]*|[^\p{L}\p{N}]*$/gu,``)),n&&(a=a.toLocaleLowerCase()),a}async function I(e,{interval:t=5e3,timeout:n=300*1e3,jitter:r=!0,signal:i}={}){let a=Date.now(),o=i?.aborted??!1,s=()=>{o=!0};i?.addEventListener(`abort`,s,{once:!0});try{for(let s=0;;s++){if(o)throw Error(`Polling aborted`);let s=await e();if(s)return s;if(Date.now()-a>=n)throw Error(`Polling timed out`,{cause:`Polling timed out after ${n}ms`});await O(r?t+(Math.random()-.5)*t*.2:t,i)}}catch(e){throw e}finally{i?.removeEventListener(`abort`,s)}}function L(e,t={}){let{retry:n=0,delay:r=0}=t,i=Date.now(),a=async t=>{try{await e();let t=Date.now()-i;console.log(`⚡[schedule.ts] Completed in ${t}ms`)}catch(e){if(console.log(`⚡[schedule.ts] err:`,e),t>0)console.log(`⚡[schedule.ts] Retrying in ${r}ms...`),setTimeout(()=>a(t-1),r);else{let e=Date.now()-i;console.log(`⚡[schedule.ts] Failed after ${e}ms`)}}};setTimeout(()=>a(n),0)}function R(e){if(e instanceof Promise)return e.then(e=>[null,e]).catch(e=>[e,null]);try{return[null,e()]}catch(t){return console.log(`\x1b[31m🛡 [shield]\x1b[0m ${e.name} failed →`,t),[t,null]}}Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return O}});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{clsx as e}from"clsx";import{twMerge as t}from"tailwind-merge";const n=(e,t,n,r=`/`)=>{let i=``;if(n){let e=new Date;e.setTime(e.getTime()+n*24*60*60*1e3),i=`; expires=${e.toUTCString()}`}document.cookie=`${e}=${t||``}${i}; path=${r}`},r=(e,t=`/`)=>{document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`},i=e=>document.cookie.split(`; `).some(t=>t.startsWith(`${e}=`)),a=e=>({value:document.cookie.split(`; `).find(t=>t.startsWith(`${e}=`))?.split(`=`)[1]}),o=e=>!e,s=e=>e==null,c=e=>{if(e==null)return!0;switch(typeof e){case`string`:case`number`:case`bigint`:case`boolean`:case`symbol`:return!0;default:return!1}};function l(e){if(typeof e!=`object`||!e||Object.prototype.toString.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function u(e,...t){let n,r={},i=t[t.length-1];i&&typeof i==`object`&&!Array.isArray(i)&&(i.arrayMerge!==void 0||i.clone!==void 0||i.customMerge!==void 0||i.maxDepth!==void 0)?(r={...r,...i},n=t.slice(0,-1)):n=t;let{arrayMerge:a=`replace`,clone:o=!0,customMerge:s,maxDepth:c=100}=r,u=new WeakMap;return d(e,n,0);function d(e,t,n){if(n>=c)return console.warn(`[deepmerge] Maximum depth ${c} exceeded. Returning target as-is.`),e;if(!l(e)&&!Array.isArray(e)){for(let e of t)if(e!==void 0)return e;return e}let r=o?Array.isArray(e)?[...e]:{...e}:e;for(let e of t)if(e!=null&&!u.has(e))if(u.set(e,r),Array.isArray(r)&&Array.isArray(e))r=f(r,e,a);else if(l(r)&&l(e)){let t=new Set([...Object.keys(r),...Object.keys(e),...Object.getOwnPropertySymbols(r),...Object.getOwnPropertySymbols(e)]);for(let i of t){let t=r[i],o=e[i];s&&s(i,t,o)!==void 0?r[i]=s(i,t,o):l(t)&&l(o)?r[i]=d(t,[o],n+1):Array.isArray(t)&&Array.isArray(o)?r[i]=f(t,o,a):o!==void 0&&(r[i]=o)}}else r=e;return r}function f(e,t,n){if(typeof n==`function`)return n(e,t);switch(n){case`concat`:return[...e,...t];case`merge`:let n=Math.max(e.length,t.length),r=[];for(let i=0;i<n;i++)i<e.length&&i<t.length?l(e[i])&&l(t[i])?r[i]=d(e[i],[t[i]],0):r[i]=t[i]:i<e.length?r[i]=e[i]:r[i]=t[i];return r;case`replace`:default:return[...t]}}}function d(e){return f(e)}function f(e){if(e!==null){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(f);if(l(e)){let t={};for(let n in e)t[n]=f(e[n]);return t}return e}}function p(e,t,n){if(typeof t!=`string`&&!Array.isArray(t))return n;let r=(()=>Array.isArray(t)?t:t===``?[]:String(t).split(`.`).filter(e=>e!==``))();if(!Array.isArray(r))return n;let i=e;for(let e of r){if(i==null)return n;let t=typeof e==`string`&&Array.isArray(i)&&/^\d+$/.test(e)?Number.parseInt(e,10):e;i=i[t]}return i===void 0?n:i}function m(e,t){return Object.assign(e,t)}function h(...n){return t(e(n))}function g(e,t){return console.warn(`isNavActive is deprecated. Use isLinkActive instead.`),RegExp(`^/?${e}(/|$)`).test(t)}function _({path:e,currentPath:t,locales:n=[`en`,`es`,`de`,`zh`,`bn`,`fr`,`it`,`nl`],exact:r=!0}){let i=RegExp(`^/?(${n.join(`|`)})/`),a=e=>e.replace(i,``).replace(/^\/+|\/+$/g,``),o=a(e),s=a(t);return r?o===s:s.startsWith(o)}function v(e){let t=e;return e.includes(`/public/`)&&(t=e.replace(`/public/`,`/`)),t.trim()}const y=(e,t)=>{let n;if(typeof e==`string`)n=document.querySelector(e);else if(e.current)n=e.current;else return;n&&n.scrollTo({top:t===`top`?0:n.scrollHeight-n.clientHeight,behavior:`smooth`})},b=(e,t=()=>{})=>{typeof window>`u`||!navigator.clipboard?.writeText||e&&navigator.clipboard.writeText(e).then(t)};function x(e){return(e.split(`.`).pop()||e).replace(/([a-z])([A-Z])/g,`$1 $2`).split(/[-_|�\s]+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}const S=`àáãäâèéëêìíïîòóöôùúüûñç·/_,:;`,C=e=>{if(typeof e!=`string`)throw TypeError(`Input must be a string`);let t=e.trim().toLowerCase(),n={};for(let e=0;e<29;e++)n[S.charAt(e)]=`aaaaaeeeeiiiioooouuuunc------`.charAt(e);return t=t.replace(RegExp(`[${S}]`,`g`),e=>n[e]||e),t.replace(/[^a-z0-9 -]/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-+/,``).replace(/-+$/,``)||``},w=typeof window>`u`,T=e=>w?Buffer.from(e).toString(`base64`):window.btoa(e),E=(e=1e3,t)=>new Promise(n=>{if(t?.aborted)return n();let r=setTimeout(()=>{a(),n()},e);function i(){clearTimeout(r),a(),n()}function a(){t?.removeEventListener(`abort`,i)}t&&t.addEventListener(`abort`,i,{once:!0})});function D(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.immediate??!1,i,a,o,s;function c(){return s=e.apply(o,a),a=void 0,o=void 0,s}let l=function(...e){return a=e,o=this,i===void 0&&r&&(s=c.call(this)),i!==void 0&&clearTimeout(i),i=setTimeout(c.bind(this),t),s};return Object.defineProperty(l,`isPending`,{get(){return i!==void 0}}),l}function O(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.leading??!0,i=n?.trailing??!0,a,o,s,c,l;function u(){c=Date.now(),l=e.apply(s,o),o=void 0,s=void 0}function d(){a=void 0,i&&o&&u()}let f=function(...e){let n=c?Date.now()-c:1/0;return o=e,s=this,n>=t?r?u():a=setTimeout(d,t):!a&&i&&(a=setTimeout(d,t-n)),l};return Object.defineProperty(f,`isPending`,{get(){return a!==void 0}}),f}function k(e,...t){let n=t.length===1&&Array.isArray(t[0])?t[0]:t,r=0;return e.replace(/%s/g,()=>{let e=n[r++];return e===void 0?``:String(e)})}const A=(...e)=>t=>{for(let n of e)n&&(typeof n==`function`?n(t):n.current=t)};function j(e,t){let n=document.getElementById(e);n&&(n.scrollIntoView({behavior:`smooth`,block:`start`,...t}),window.history.pushState(null,``,`#${e}`))}function M(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function N(e,t={}){if(!e)return``;let{lowercase:n=!0,removeAccents:r=!0,removeNonAlphanumeric:i=!0}=t,a=e.normalize(`NFC`);return r&&(a=a.normalize(`NFD`).replace(/\p{M}/gu,``)),i&&(a=a.replace(/^[^\p{L}\p{N}]*|[^\p{L}\p{N}]*$/gu,``)),n&&(a=a.toLocaleLowerCase()),a}async function P(e,{interval:t=5e3,timeout:n=300*1e3,jitter:r=!0,signal:i}={}){let a=Date.now(),o=i?.aborted??!1,s=()=>{o=!0};i?.addEventListener(`abort`,s,{once:!0});try{for(let s=0;;s++){if(o)throw Error(`Polling aborted`);let s=await e();if(s)return s;if(Date.now()-a>=n)throw Error(`Polling timed out`,{cause:`Polling timed out after ${n}ms`});await E(r?t+(Math.random()-.5)*t*.2:t,i)}}catch(e){throw e}finally{i?.removeEventListener(`abort`,s)}}function F(e,t={}){let{retry:n=0,delay:r=0}=t,i=Date.now(),a=async t=>{try{await e();let t=Date.now()-i;console.log(`⚡[schedule.ts] Completed in ${t}ms`)}catch(e){if(console.log(`⚡[schedule.ts] err:`,e),t>0)console.log(`⚡[schedule.ts] Retrying in ${r}ms...`),setTimeout(()=>a(t-1),r);else{let e=Date.now()-i;console.log(`⚡[schedule.ts] Failed after ${e}ms`)}}};setTimeout(()=>a(n),0)}function I(e){if(e instanceof Promise)return e.then(e=>[null,e]).catch(e=>[e,null]);try{return[null,e()]}catch(t){return console.log(`\x1b[31m🛡 [shield]\x1b[0m ${e.name} failed →`,t),[t,null]}}export{r as A,p as C,s as D,o as E,i as M,n as N,l as O,m as S,u as T,k as _,h as a,T as b,b as c,j as d,_ as f,N as g,A as h,v as i,a as j,c as k,D as l,w as m,F as n,x as o,g as p,P as r,C as s,I as t,M as u,y as v,d as w,O as x,E as y};
|
package/dist/hooks-BLpQegFa.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=require(`./functions-D2KKIJqd.cjs`);let l=require(`react`);l=s(l);let u=require(`@radix-ui/react-slot`),d=require(`react/jsx-runtime`);function f(e={}){let{timeout:t=1e4}=e;return l.useCallback(e=>{let n=()=>{try{l.startTransition(()=>{e()})}catch(e){console.log(`⚡[schedule.tsx] Failed: `,e)}};`requestIdleCallback`in window?requestIdleCallback(n,{timeout:t}):c.n(n)},[t])}function p(e,t=[],n={}){let r=f(n);l.useEffect(()=>{let t;return r(()=>{t=e()}),()=>{typeof t==`function`&&t?.()}},[r,...t])}const m=(e,t)=>{let[n,r]=l.useState(`idle`),[i,a]=l.useState(null),[o,s]=l.useState(null),[c,u]=l.useState(void 0),[d,f]=l.useTransition(),m=n===`idle`,h=n===`loading`||d,g=n===`success`,_=n===`error`,v=l.useCallback(e=>{a(e),r(`success`),t?.onSuccess?.(e),t?.onSettled?.()},[t]),y=l.useCallback(e=>{s(e),r(`error`),t?.onError?.(e),t?.onSettled?.()},[t]),b=l.useCallback(t=>{u(t),r(`loading`),s(null),f(()=>{e(t).then(v).catch(y)})},[e,v,y]);return{execute:b,executeAsync:l.useCallback(t=>new Promise((n,i)=>{u(t),r(`loading`),s(null),f(()=>{e(t).then(e=>{v(e),n(e)}).catch(e=>{y(e),i(e)})})}),[e,v,y]),reset:l.useCallback(()=>{r(`idle`),a(null),s(null),u(void 0)},[]),useExecute:e=>{p(()=>{b(e)},[])},data:i,error:o,input:c,isIdle:m,isLoading:h,isSuccess:g,isError:_}};function h(e,t={}){let{mode:n=`manual`,deps:r,onSuccess:i,onError:a,onSettled:o}=t,[s,c]=l.useState(void 0),[u,d]=l.useState(void 0),[f,p]=l.useState(`idle`),m=l.useRef(null),h=l.useCallback(i||(()=>{}),[i]),g=l.useCallback(a||(()=>{}),[a]),_=l.useCallback(o||(()=>{}),[o]),v=l.useCallback(async()=>{m.current&&m.current.abort(),m.current=new AbortController;let t=m.current.signal;p(`pending`),d(void 0);try{let n=await e(t);return t.aborted||(c(n),p(`success`),await h(n),await _(n,void 0)),n}catch(e){if(e instanceof Error&&e.name===`AbortError`)return;let n=e instanceof Error?e:Error(String(e)),r=n;throw t.aborted||(d(r),p(`error`),await g(r),await _(void 0,r)),n}},[e,h,g,_]);return l.useEffect(()=>{n===`auto`&&!r&&v()},[e,n,v,r]),l.useEffect(()=>{r&&n===`auto`&&v()},r||[]),l.useEffect(()=>()=>{m.current&&m.current.abort()},[]),{data:s,error:u,status:f,isIdle:f===`idle`,isPending:f===`pending`,isSuccess:f===`success`,isError:f===`error`,execute:v}}const g=l.createContext(null),_=({children:e})=>{let t=l.useRef(null);return(0,d.jsx)(g.Provider,{value:t,children:(0,d.jsx)(u.Slot,{ref:t,children:e})})},v=({threshold:e=300,container:t}={})=>{let n=l.useContext(g),[r,i]=l.useState({scrolledPast:!1,direction:`forward`}),a=l.useRef(0),o=t=>{let n=t>a.current?`forward`:`backward`;i({scrolledPast:t>e,direction:n}),a.current=t};return p(()=>{let e=null;typeof t==`string`?e=document.querySelector(t):t?.current?e=t.current:n?.current&&(e=n.current);let r=e||window,i=e?`scrollTop`:`scrollY`,a=()=>{let e=r[i];o(e)};return r.addEventListener(`scroll`,a),a(),()=>r.removeEventListener(`scroll`,a)},[t,n,e]),r},y=(e=()=>alert(`clicked outside`))=>{let t=l.useRef(null),n=n=>{t.current&&!t.current.contains(n.target)&&e()};return l.useEffect(()=>(document.addEventListener(`mousedown`,n),document.addEventListener(`touchstart`,n),()=>{document.removeEventListener(`mousedown`,n),document.removeEventListener(`touchstart`,n)})),t};function b(e){let t=l.useMemo(()=>{switch(e){case`sm`:return`(min-width: 640px)`;case`md`:return`(min-width: 768px)`;case`lg`:return`(min-width: 1024px)`;case`xl`:return`(min-width: 1280px)`;case`2xl`:return`(min-width: 1536px)`;default:return e}},[e]),n=e=>typeof window<`u`?window.matchMedia(e).matches:!1,[r,i]=l.useState(n(t)),a=()=>{i(n(t))};return p(()=>{let e=window.matchMedia(t);return a(),e.addEventListener(`change`,a),()=>{e.removeEventListener(`change`,a)}},[t]),r}function x(e){l.useEffect(e,[])}function S(e,t){let n=l.useRef(!0);l.useEffect(()=>{if(n.current)n.current=!1;else return e()},t)}function C(e,t=500){let[n,r]=l.useState(e);return l.useEffect(()=>{let n=setTimeout(()=>r(e),t);return()=>{clearTimeout(n)}},[e,t]),n}const w=typeof window<`u`?l.useLayoutEffect:l.useEffect;function T(e,t=1e3){let n=l.useRef(e);p(()=>{n.current=e},[e]),l.useEffect(()=>{if(!t&&t!==0)return;let e=setTimeout(()=>n.current(),t);return()=>clearTimeout(e)},[t])}function E(e,t,n){l.useEffect(()=>(window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)),[e,t,n])}const D=(e,t)=>{let[n,r]=l.useState(t);return l.useEffect(()=>{let t=sessionStorage.getItem(e);t&&r(JSON.parse(t))},[e]),[n,l.useCallback(t=>{r(n=>{let r=typeof t==`function`?t(n):t;return sessionStorage.setItem(e,JSON.stringify(r)),r})},[e])]},O=(e,t)=>{let[n,r]=l.useState(t);return l.useEffect(()=>{let t=localStorage.getItem(e);t&&r(JSON.parse(t))},[e]),[n,l.useCallback(t=>{let i;i=typeof t==`function`?t(n):t,localStorage.setItem(e,JSON.stringify(i)),r(i)},[e])]},k=(e,t)=>{let[n,r]=l.useState(t);return l.useEffect(()=>{let t=new URLSearchParams(window.location.search).get(e);t!==null&&r(t)},[e]),[n,t=>{let n=new URLSearchParams(window.location.search);n.set(e,String(t)),window.history.pushState({},``,`${window.location.pathname}?${n}`),r(t)}]},A=e=>{let[t,n]=l.useState(null),r=l.useRef(null);return l.useEffect(()=>{let t=null;if(typeof e==`string`?t=document.querySelector(e):e?.current&&(t=e.current),!t)return;r.current!==t&&(r.current=t,n(t));let i=new ResizeObserver(()=>{r.current!==t&&(r.current=t,n(t))});return i.observe(t),()=>{i.disconnect()}},[e]),t};function j(){let[e,t]=l.useState(!1);return l.useEffect(()=>{t(!0)},[]),e}function M(){l.useLayoutEffect(()=>{let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[])}function N({timeout:e=2e3}){let[t,n]=l.useState(!1);return{isCopied:t,copy:t=>{c.c(t,()=>{n(!0),setTimeout(()=>{n(!1)},e)})}}}const P=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:r=!1})=>{let[i,a]=l.useState(500),o=()=>{let r=e.reduce((e,t)=>e+(document.getElementById(t)?.clientHeight||0),0);a(n?window.innerHeight-r-t:r+t)};return l.useEffect(()=>{if(o(),r){if(typeof r==`string`){let e=document.getElementById(r),t=new ResizeObserver(e=>{for(let t of e)o()});return e&&t.observe(e),()=>t?.disconnect()}return window.addEventListener(`resize`,o),()=>window.removeEventListener(`resize`,o)}},[]),i},F=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:r=!1,onChange:i})=>{let[a,o]=l.useState({height:500,width:500}),s=l.useCallback(()=>{let r=e.reduce((e,t)=>e+(document.getElementById(t)?.clientHeight||0),0),a=e.reduce((e,t)=>e+(document.getElementById(t)?.clientWidth||0),0),s=n?window.innerHeight-r-t:r+t,c=n?window.innerWidth-a-t:a+t;o(e=>e.height===s&&e.width===c?e:{height:s,width:c}),i?.({blocksWidth:a,blocksHeight:r,remainingWidth:c,remainingHeight:s})},[e,t,n,i]);return l.useEffect(()=>{s();let t=[];if(e.length>0){let n=new MutationObserver(t=>{let n=!1;for(let r of t){for(let t of Array.from(r.addedNodes))if(t instanceof Element&&(e.includes(t.id)||e.some(e=>t.querySelector(`#${CSS.escape(e)}`)))){n=!0;break}if(n)break;for(let t of Array.from(r.removedNodes))if(t instanceof Element&&(e.includes(t.id)||e.some(e=>t.querySelector(`#${CSS.escape(e)}`)))){n=!0;break}if(n)break}n&&s()});n.observe(document.body,{childList:!0,subtree:!0}),t.push(()=>n.disconnect())}if(r)if(typeof r==`string`){let e=document.getElementById(r);if(e){let n=new ResizeObserver(s);n.observe(e),t.push(()=>n.unobserve(e)),t.push(()=>n.disconnect())}}else window.addEventListener(`resize`,s),t.push(()=>window.removeEventListener(`resize`,s));return()=>{for(let e of t)e()}},[s,r,e.join(`,`)]),a},I=()=>{let[e,t]=l.useState(!1),n=l.useRef(null),r=l.useRef(null);return x(()=>{let e=r.current;if(!e)return;let i=()=>{t(!0),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{t(!1)},150)};return i(),e.addEventListener(`scroll`,i),()=>{e.removeEventListener(`scroll`,i),n.current&&clearTimeout(n.current)}}),{isScrolling:e,scrollableContainerRef:r}},L=({offset:e}={})=>{let[t,n]=l.useState(!0),r=l.useRef(null);return x(()=>{let t=r.current;if(!t)return;let i=()=>{n(!(t.scrollTop>(e??10)))};return i(),t.addEventListener(`scroll`,i),()=>{t.removeEventListener(`scroll`,i)}}),{scrollableContainerRef:r,isAtTop:t}},R=({threshold:e=.1,root:t=null,rootMargin:n,onInteractionStart:r,onInteractionEnd:i}={})=>{let[a,o]=l.useState(!1),s=l.useRef(null);return l.useEffect(()=>{if(!s.current)return;let c=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting?a||(r?.(),o(!0)):a&&(i?.(),o(!1))},{threshold:e,root:t,...n&&{rootMargin:n}});return c.observe(s.current),()=>{c.disconnect()}},[e,t,n,r,i,a]),{ref:s,isIntersecting:a}};Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return k}});
|
package/dist/hooks-CjfNonIh.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e,n as t}from"./functions-DdPaJAsm.js";import*as n from"react";import{Slot as r}from"@radix-ui/react-slot";import{jsx as i}from"react/jsx-runtime";function a(e={}){let{timeout:r=1e4}=e;return n.useCallback(e=>{let i=()=>{try{n.startTransition(()=>{e()})}catch(e){console.log(`⚡[schedule.tsx] Failed: `,e)}};`requestIdleCallback`in window?requestIdleCallback(i,{timeout:r}):t(i)},[r])}function o(e,t=[],r={}){let i=a(r);n.useEffect(()=>{let t;return i(()=>{t=e()}),()=>{typeof t==`function`&&t?.()}},[i,...t])}const s=(e,t)=>{let[r,i]=n.useState(`idle`),[a,s]=n.useState(null),[c,l]=n.useState(null),[u,d]=n.useState(void 0),[f,p]=n.useTransition(),m=r===`idle`,h=r===`loading`||f,g=r===`success`,_=r===`error`,v=n.useCallback(e=>{s(e),i(`success`),t?.onSuccess?.(e),t?.onSettled?.()},[t]),y=n.useCallback(e=>{l(e),i(`error`),t?.onError?.(e),t?.onSettled?.()},[t]),b=n.useCallback(t=>{d(t),i(`loading`),l(null),p(()=>{e(t).then(v).catch(y)})},[e,v,y]);return{execute:b,executeAsync:n.useCallback(t=>new Promise((n,r)=>{d(t),i(`loading`),l(null),p(()=>{e(t).then(e=>{v(e),n(e)}).catch(e=>{y(e),r(e)})})}),[e,v,y]),reset:n.useCallback(()=>{i(`idle`),s(null),l(null),d(void 0)},[]),useExecute:e=>{o(()=>{b(e)},[])},data:a,error:c,input:u,isIdle:m,isLoading:h,isSuccess:g,isError:_}};function c(e,t={}){let{mode:r=`manual`,deps:i,onSuccess:a,onError:o,onSettled:s}=t,[c,l]=n.useState(void 0),[u,d]=n.useState(void 0),[f,p]=n.useState(`idle`),m=n.useRef(null),h=n.useCallback(a||(()=>{}),[a]),g=n.useCallback(o||(()=>{}),[o]),_=n.useCallback(s||(()=>{}),[s]),v=n.useCallback(async()=>{m.current&&m.current.abort(),m.current=new AbortController;let t=m.current.signal;p(`pending`),d(void 0);try{let n=await e(t);return t.aborted||(l(n),p(`success`),await h(n),await _(n,void 0)),n}catch(e){if(e instanceof Error&&e.name===`AbortError`)return;let n=e instanceof Error?e:Error(String(e)),r=n;throw t.aborted||(d(r),p(`error`),await g(r),await _(void 0,r)),n}},[e,h,g,_]);return n.useEffect(()=>{r===`auto`&&!i&&v()},[e,r,v,i]),n.useEffect(()=>{i&&r===`auto`&&v()},i||[]),n.useEffect(()=>()=>{m.current&&m.current.abort()},[]),{data:c,error:u,status:f,isIdle:f===`idle`,isPending:f===`pending`,isSuccess:f===`success`,isError:f===`error`,execute:v}}const l=n.createContext(null),u=({children:e})=>{let t=n.useRef(null);return i(l.Provider,{value:t,children:i(r,{ref:t,children:e})})},d=({threshold:e=300,container:t}={})=>{let r=n.useContext(l),[i,a]=n.useState({scrolledPast:!1,direction:`forward`}),s=n.useRef(0),c=t=>{let n=t>s.current?`forward`:`backward`;a({scrolledPast:t>e,direction:n}),s.current=t};return o(()=>{let e=null;typeof t==`string`?e=document.querySelector(t):t?.current?e=t.current:r?.current&&(e=r.current);let n=e||window,i=e?`scrollTop`:`scrollY`,a=()=>{let e=n[i];c(e)};return n.addEventListener(`scroll`,a),a(),()=>n.removeEventListener(`scroll`,a)},[t,r,e]),i},f=(e=()=>alert(`clicked outside`))=>{let t=n.useRef(null),r=n=>{t.current&&!t.current.contains(n.target)&&e()};return n.useEffect(()=>(document.addEventListener(`mousedown`,r),document.addEventListener(`touchstart`,r),()=>{document.removeEventListener(`mousedown`,r),document.removeEventListener(`touchstart`,r)})),t};function p(e){let t=n.useMemo(()=>{switch(e){case`sm`:return`(min-width: 640px)`;case`md`:return`(min-width: 768px)`;case`lg`:return`(min-width: 1024px)`;case`xl`:return`(min-width: 1280px)`;case`2xl`:return`(min-width: 1536px)`;default:return e}},[e]),r=e=>typeof window<`u`?window.matchMedia(e).matches:!1,[i,a]=n.useState(r(t)),s=()=>{a(r(t))};return o(()=>{let e=window.matchMedia(t);return s(),e.addEventListener(`change`,s),()=>{e.removeEventListener(`change`,s)}},[t]),i}function m(e){n.useEffect(e,[])}function h(e,t){let r=n.useRef(!0);n.useEffect(()=>{if(r.current)r.current=!1;else return e()},t)}function g(e,t=500){let[r,i]=n.useState(e);return n.useEffect(()=>{let n=setTimeout(()=>i(e),t);return()=>{clearTimeout(n)}},[e,t]),r}const _=typeof window<`u`?n.useLayoutEffect:n.useEffect;function v(e,t=1e3){let r=n.useRef(e);o(()=>{r.current=e},[e]),n.useEffect(()=>{if(!t&&t!==0)return;let e=setTimeout(()=>r.current(),t);return()=>clearTimeout(e)},[t])}function y(e,t,r){n.useEffect(()=>(window.addEventListener(e,t,r),()=>window.removeEventListener(e,t,r)),[e,t,r])}const b=(e,t)=>{let[r,i]=n.useState(t);return n.useEffect(()=>{let t=sessionStorage.getItem(e);t&&i(JSON.parse(t))},[e]),[r,n.useCallback(t=>{i(n=>{let r=typeof t==`function`?t(n):t;return sessionStorage.setItem(e,JSON.stringify(r)),r})},[e])]},x=(e,t)=>{let[r,i]=n.useState(t);return n.useEffect(()=>{let t=localStorage.getItem(e);t&&i(JSON.parse(t))},[e]),[r,n.useCallback(t=>{let n;n=typeof t==`function`?t(r):t,localStorage.setItem(e,JSON.stringify(n)),i(n)},[e])]},S=(e,t)=>{let[r,i]=n.useState(t);return n.useEffect(()=>{let t=new URLSearchParams(window.location.search).get(e);t!==null&&i(t)},[e]),[r,t=>{let n=new URLSearchParams(window.location.search);n.set(e,String(t)),window.history.pushState({},``,`${window.location.pathname}?${n}`),i(t)}]},C=e=>{let[t,r]=n.useState(null),i=n.useRef(null);return n.useEffect(()=>{let t=null;if(typeof e==`string`?t=document.querySelector(e):e?.current&&(t=e.current),!t)return;i.current!==t&&(i.current=t,r(t));let n=new ResizeObserver(()=>{i.current!==t&&(i.current=t,r(t))});return n.observe(t),()=>{n.disconnect()}},[e]),t};function w(){let[e,t]=n.useState(!1);return n.useEffect(()=>{t(!0)},[]),e}function T(){n.useLayoutEffect(()=>{let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[])}function E({timeout:t=2e3}){let[r,i]=n.useState(!1);return{isCopied:r,copy:n=>{e(n,()=>{i(!0),setTimeout(()=>{i(!1)},t)})}}}const D=({blockIds:e=[],margin:t=0,substract:r=!0,dynamic:i=!1})=>{let[a,o]=n.useState(500),s=()=>{let n=e.reduce((e,t)=>e+(document.getElementById(t)?.clientHeight||0),0);o(r?window.innerHeight-n-t:n+t)};return n.useEffect(()=>{if(s(),i){if(typeof i==`string`){let e=document.getElementById(i),t=new ResizeObserver(e=>{for(let t of e)s()});return e&&t.observe(e),()=>t?.disconnect()}return window.addEventListener(`resize`,s),()=>window.removeEventListener(`resize`,s)}},[]),a},O=({blockIds:e=[],margin:t=0,substract:r=!0,dynamic:i=!1,onChange:a})=>{let[o,s]=n.useState({height:500,width:500}),c=n.useCallback(()=>{let n=e.reduce((e,t)=>e+(document.getElementById(t)?.clientHeight||0),0),i=e.reduce((e,t)=>e+(document.getElementById(t)?.clientWidth||0),0),o=r?window.innerHeight-n-t:n+t,c=r?window.innerWidth-i-t:i+t;s(e=>e.height===o&&e.width===c?e:{height:o,width:c}),a?.({blocksWidth:i,blocksHeight:n,remainingWidth:c,remainingHeight:o})},[e,t,r,a]);return n.useEffect(()=>{c();let t=[];if(e.length>0){let n=new MutationObserver(t=>{let n=!1;for(let r of t){for(let t of Array.from(r.addedNodes))if(t instanceof Element&&(e.includes(t.id)||e.some(e=>t.querySelector(`#${CSS.escape(e)}`)))){n=!0;break}if(n)break;for(let t of Array.from(r.removedNodes))if(t instanceof Element&&(e.includes(t.id)||e.some(e=>t.querySelector(`#${CSS.escape(e)}`)))){n=!0;break}if(n)break}n&&c()});n.observe(document.body,{childList:!0,subtree:!0}),t.push(()=>n.disconnect())}if(i)if(typeof i==`string`){let e=document.getElementById(i);if(e){let n=new ResizeObserver(c);n.observe(e),t.push(()=>n.unobserve(e)),t.push(()=>n.disconnect())}}else window.addEventListener(`resize`,c),t.push(()=>window.removeEventListener(`resize`,c));return()=>{for(let e of t)e()}},[c,i,e.join(`,`)]),o},k=()=>{let[e,t]=n.useState(!1),r=n.useRef(null),i=n.useRef(null);return m(()=>{let e=i.current;if(!e)return;let n=()=>{t(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{t(!1)},150)};return n(),e.addEventListener(`scroll`,n),()=>{e.removeEventListener(`scroll`,n),r.current&&clearTimeout(r.current)}}),{isScrolling:e,scrollableContainerRef:i}},A=({offset:e}={})=>{let[t,r]=n.useState(!0),i=n.useRef(null);return m(()=>{let t=i.current;if(!t)return;let n=()=>{r(!(t.scrollTop>(e??10)))};return n(),t.addEventListener(`scroll`,n),()=>{t.removeEventListener(`scroll`,n)}}),{scrollableContainerRef:i,isAtTop:t}},j=({threshold:e=.1,root:t=null,rootMargin:r,onInteractionStart:i,onInteractionEnd:a}={})=>{let[o,s]=n.useState(!1),c=n.useRef(null);return n.useEffect(()=>{if(!c.current)return;let n=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting?o||(i?.(),s(!0)):o&&(a?.(),s(!1))},{threshold:e,root:t,...r&&{rootMargin:r}});return n.observe(c.current),()=>{n.disconnect()}},[e,t,r,i,a,o]),{ref:c,isIntersecting:o}};export{c as C,o as E,u as S,a as T,v as _,m as a,y as b,A as c,_ as d,x as f,b as g,C as h,O as i,w as l,p as m,E as n,D as o,T as p,g as r,j as s,f as t,k as u,h as v,s as w,d as x,S as y};
|