@sohanemon/utils 7.2.9 → 7.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.cts +48 -1
- package/dist/components/index.d.ts +52 -5
- package/dist/components/index.js +1 -1
- package/dist/{functions-NBY7C4F1.js → functions-CTMT4m8K.js} +1 -1
- package/dist/{functions-BbXeio5-.cjs → functions-Dp2CwvmB.cjs} +1 -1
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/{hooks-DATf1uhM.cjs → hooks-B_cSW9vB.cjs} +1 -1
- package/dist/{hooks-Bc_So9mz.js → hooks-CCFEDyEO.js} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +27 -14
- package/dist/index.d.ts +27 -14
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";const e=require(`../hooks-
|
|
1
|
+
"use client";const e=require(`../hooks-B_cSW9vB.cjs`),t=require(`../functions-Dp2CwvmB.cjs`);let n=require(`react`);n=e.A(n);let r=require(`@radix-ui/react-slot`),i=require(`react/jsx-runtime`),a=require(`@iconify/react`),o=require(`react-dom`);function s({selector:e,children:t}){let a=(0,n.useRef)(null),[o,s]=(0,n.useState)(!1),[c,l]=(0,n.useState)({hasClosest:!1,closestElement:null});return(0,n.useLayoutEffect)(()=>{if(a.current){let t=a.current.closest(e);l({hasClosest:t!==null,closestElement:t})}s(!0)},[e]),o?(0,i.jsx)(r.Slot,{ref:a,children:t(c)}):(0,i.jsx)(`span`,{ref:a})}function c({className:r,html:a,sanitize:o=!1,executeScripts:s=!0,...c}){let l=n.useRef([]),u=n.useRef(null);e.k(()=>{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,i.jsx)(`div`,{ref:u,className:t.r(r),dangerouslySetInnerHTML:{__html:d},...c}):null}function l({breakpoint:t,as:r=`div`,fallback:a=n.Fragment,className:o,classNameFallback:s,...c}){let l=e.T(t.split(`-`).pop())===t.startsWith(`max`),u=l?a:r,d=l?s:o;return u===n.Fragment?(0,i.jsx)(u,{ref:c.ref,children:c.children},c.key):(0,i.jsx)(u,{className:d,...c})}function u({children:e,container:t}){let r=(0,n.useRef)(null),[i,a]=(0,n.useState)(!1);return(0,n.useLayoutEffect)(()=>{r.current=typeof t==`string`?document.querySelector(t):t.current,a(!0)},[]),!i||!r.current?null:(0,o.createPortal)(e,r.current)}const d=[`bottom-left`,`bottom-right`,`top-right`,`top-left`],f=({side:t,offset:r=2,unit:a=`rem`})=>{let[o,s]=n.useState(t??`bottom-left`),c=e.T({DEFAULT:`xs`,sm:`sm`,md:`md`,lg:`lg`,xl:`xl`,"2xl":`2xl`}),[l,u]=n.useState(typeof window<`u`?window.innerWidth:0);n.useEffect(()=>{if(typeof window>`u`)return;let e=()=>u(window.innerWidth);return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let f=c===`2xl`&&l>=1792?a===`rem`?`${(l/16).toFixed(1)}rem`:`${l}${a}`:c,p={"bottom-left":{bottom:`${r}${a}`,left:`${r}${a}`},"bottom-right":{bottom:`${r}${a}`,right:`${r}${a}`},"top-right":{top:`${r}${a}`,right:`${r}${a}`},"top-left":{top:`${r}${a}`,left:`${r}${a}`}};return(0,i.jsx)(`button`,{type:`button`,onClick:()=>{s(d[(d.indexOf(o)+1)%d.length])},style:{position:`fixed`,zIndex:50,display:`grid`,height:`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`,...p[o]},children:f})};function p(){return e.k(()=>{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`in window?window.requestIdleCallback(()=>r(e)):setTimeout(()=>r(e),0);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=c,Object.defineProperty(exports,`Iconify`,{enumerable:!0,get:function(){return a.Icon}}),exports.MediaWrapper=l,exports.Portal=u,exports.ResponsiveIndicator=f,exports.TailwindIndicator=f,exports.ScrollTracker=e.C,exports.ScrollableMarker=p,exports.WithClosest=s;
|
|
@@ -2,6 +2,53 @@ import { Icon as Iconify } from "@iconify/react";
|
|
|
2
2
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
3
|
import * as React$1 from "react";
|
|
4
4
|
|
|
5
|
+
//#region src/components/closest.d.ts
|
|
6
|
+
type ClosestResult = {
|
|
7
|
+
hasClosest: boolean;
|
|
8
|
+
closestElement: Element | null;
|
|
9
|
+
};
|
|
10
|
+
type WithClosestProps = {
|
|
11
|
+
selector: string;
|
|
12
|
+
children: (opts: ClosestResult) => React.ReactElement;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* A component that finds the closest ancestor element matching a CSS selector.
|
|
16
|
+
*
|
|
17
|
+
* Uses the native `.closest()` method to traverse up the DOM tree from the
|
|
18
|
+
* rendered element and locate the nearest ancestor matching the provided selector.
|
|
19
|
+
* Returns the found element and a boolean indicating whether a match exists.
|
|
20
|
+
*
|
|
21
|
+
* @param selector - A valid CSS selector string to match against ancestors
|
|
22
|
+
* @param children - Render prop function that receives the closest element result
|
|
23
|
+
* @returns The rendered element with the ref attached for DOM traversal
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* // Find the closest parent with class "modal"
|
|
28
|
+
* <WithClosest selector=".modal">
|
|
29
|
+
* {({ hasClosest, closestElement }) => (
|
|
30
|
+
* <div>
|
|
31
|
+
* {hasClosest ? 'Inside modal' : 'Outside modal'}
|
|
32
|
+
* </div>
|
|
33
|
+
* )}
|
|
34
|
+
* </WithClosest>
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* // Find closest section ancestor
|
|
40
|
+
* <WithClosest selector="section">
|
|
41
|
+
* {({ hasClosest, closestElement }) => (
|
|
42
|
+
* <span data-section-id={closestElement?.id} />
|
|
43
|
+
* )}
|
|
44
|
+
* </WithClosest>
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
declare function WithClosest({
|
|
48
|
+
selector,
|
|
49
|
+
children
|
|
50
|
+
}: WithClosestProps): react_jsx_runtime0.JSX.Element;
|
|
51
|
+
//#endregion
|
|
5
52
|
//#region src/components/html-injector.d.ts
|
|
6
53
|
/**
|
|
7
54
|
* Props for the HtmlInjector component
|
|
@@ -230,4 +277,4 @@ declare const ScrollTracker: ({
|
|
|
230
277
|
*/
|
|
231
278
|
declare function ScrollableMarker(): null;
|
|
232
279
|
//#endregion
|
|
233
|
-
export { HtmlInjector, Iconify, MediaWrapper, Portal, ResponsiveIndicator, ResponsiveIndicator as TailwindIndicator, ScrollTracker, ScrollableMarker };
|
|
280
|
+
export { HtmlInjector, Iconify, MediaWrapper, Portal, ResponsiveIndicator, ResponsiveIndicator as TailwindIndicator, ScrollTracker, ScrollableMarker, WithClosest };
|
|
@@ -1,7 +1,54 @@
|
|
|
1
1
|
import * as React$1 from "react";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime1 from "react/jsx-runtime";
|
|
3
3
|
import { Icon as Iconify } from "@iconify/react";
|
|
4
4
|
|
|
5
|
+
//#region src/components/closest.d.ts
|
|
6
|
+
type ClosestResult = {
|
|
7
|
+
hasClosest: boolean;
|
|
8
|
+
closestElement: Element | null;
|
|
9
|
+
};
|
|
10
|
+
type WithClosestProps = {
|
|
11
|
+
selector: string;
|
|
12
|
+
children: (opts: ClosestResult) => React.ReactElement;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* A component that finds the closest ancestor element matching a CSS selector.
|
|
16
|
+
*
|
|
17
|
+
* Uses the native `.closest()` method to traverse up the DOM tree from the
|
|
18
|
+
* rendered element and locate the nearest ancestor matching the provided selector.
|
|
19
|
+
* Returns the found element and a boolean indicating whether a match exists.
|
|
20
|
+
*
|
|
21
|
+
* @param selector - A valid CSS selector string to match against ancestors
|
|
22
|
+
* @param children - Render prop function that receives the closest element result
|
|
23
|
+
* @returns The rendered element with the ref attached for DOM traversal
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* // Find the closest parent with class "modal"
|
|
28
|
+
* <WithClosest selector=".modal">
|
|
29
|
+
* {({ hasClosest, closestElement }) => (
|
|
30
|
+
* <div>
|
|
31
|
+
* {hasClosest ? 'Inside modal' : 'Outside modal'}
|
|
32
|
+
* </div>
|
|
33
|
+
* )}
|
|
34
|
+
* </WithClosest>
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* // Find closest section ancestor
|
|
40
|
+
* <WithClosest selector="section">
|
|
41
|
+
* {({ hasClosest, closestElement }) => (
|
|
42
|
+
* <span data-section-id={closestElement?.id} />
|
|
43
|
+
* )}
|
|
44
|
+
* </WithClosest>
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
declare function WithClosest({
|
|
48
|
+
selector,
|
|
49
|
+
children
|
|
50
|
+
}: WithClosestProps): react_jsx_runtime1.JSX.Element;
|
|
51
|
+
//#endregion
|
|
5
52
|
//#region src/components/html-injector.d.ts
|
|
6
53
|
/**
|
|
7
54
|
* Props for the HtmlInjector component
|
|
@@ -56,7 +103,7 @@ declare function HtmlInjector({
|
|
|
56
103
|
sanitize,
|
|
57
104
|
executeScripts,
|
|
58
105
|
...props
|
|
59
|
-
}: HtmlInjectorProps):
|
|
106
|
+
}: HtmlInjectorProps): react_jsx_runtime1.JSX.Element | null;
|
|
60
107
|
//#endregion
|
|
61
108
|
//#region src/components/media-wrapper.d.ts
|
|
62
109
|
/**
|
|
@@ -105,7 +152,7 @@ declare function MediaWrapper({
|
|
|
105
152
|
className: classNameOriginal,
|
|
106
153
|
classNameFallback,
|
|
107
154
|
...props
|
|
108
|
-
}: MediaWrapperProps):
|
|
155
|
+
}: MediaWrapperProps): react_jsx_runtime1.JSX.Element;
|
|
109
156
|
//#endregion
|
|
110
157
|
//#region src/components/portal.d.ts
|
|
111
158
|
/**
|
|
@@ -205,7 +252,7 @@ interface ScrollTrackerProps {
|
|
|
205
252
|
*/
|
|
206
253
|
declare const ScrollTracker: ({
|
|
207
254
|
children
|
|
208
|
-
}: ScrollTrackerProps) =>
|
|
255
|
+
}: ScrollTrackerProps) => react_jsx_runtime1.JSX.Element;
|
|
209
256
|
//#endregion
|
|
210
257
|
//#region src/components/scrollable-marker.d.ts
|
|
211
258
|
/**
|
|
@@ -230,4 +277,4 @@ declare const ScrollTracker: ({
|
|
|
230
277
|
*/
|
|
231
278
|
declare function ScrollableMarker(): null;
|
|
232
279
|
//#endregion
|
|
233
|
-
export { HtmlInjector, Iconify, MediaWrapper, Portal, ResponsiveIndicator, ResponsiveIndicator as TailwindIndicator, ScrollTracker, ScrollableMarker };
|
|
280
|
+
export { HtmlInjector, Iconify, MediaWrapper, Portal, ResponsiveIndicator, ResponsiveIndicator as TailwindIndicator, ScrollTracker, ScrollableMarker, WithClosest };
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{r as e}from"../functions-
|
|
1
|
+
"use client";import{r as e}from"../functions-CTMT4m8K.js";import{C as t,T as n,k as r}from"../hooks-CCFEDyEO.js";import*as i from"react";import{useLayoutEffect as a,useRef as o,useState as s}from"react";import{Slot as c}from"@radix-ui/react-slot";import{jsx as l}from"react/jsx-runtime";import{Icon as u}from"@iconify/react";import{createPortal as d}from"react-dom";function f({selector:e,children:t}){let n=o(null),[r,i]=s(!1),[u,d]=s({hasClosest:!1,closestElement:null});return a(()=>{if(n.current){let t=n.current.closest(e);d({hasClosest:t!==null,closestElement:t})}i(!0)},[e]),r?l(c,{ref:n,children:t(u)}):l(`span`,{ref:n})}function p({className:t,html:n,sanitize:a=!1,executeScripts:o=!0,...s}){let c=i.useRef([]),u=i.useRef(null);r(()=>{if(c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),c.current=[],!(!o||!n))try{let e=document.createElement(`div`);e.innerHTML=n,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),c.current.push(t)})}catch(e){console.error(`HTML injection error:`,e)}},[n,o]),i.useEffect(()=>()=>{c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)})},[]);let d=i.useMemo(()=>{if(!n)return``;if(a){let e=document.createElement(`div`);e.innerHTML=n,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 n},[n,a]);return n?l(`div`,{ref:u,className:e(t),dangerouslySetInnerHTML:{__html:d},...s}):null}function m({breakpoint:e,as:t=`div`,fallback:r=i.Fragment,className:a,classNameFallback:o,...s}){let c=n(e.split(`-`).pop())===e.startsWith(`max`),u=c?r:t,d=c?o:a;return u===i.Fragment?l(u,{ref:s.ref,children:s.children},s.key):l(u,{className:d,...s})}function h({children:e,container:t}){let n=o(null),[r,i]=s(!1);return a(()=>{n.current=typeof t==`string`?document.querySelector(t):t.current,i(!0)},[]),!r||!n.current?null:d(e,n.current)}const g=[`bottom-left`,`bottom-right`,`top-right`,`top-left`],_=({side:e,offset:t=2,unit:r=`rem`})=>{let[a,o]=i.useState(e??`bottom-left`),s=n({DEFAULT:`xs`,sm:`sm`,md:`md`,lg:`lg`,xl:`xl`,"2xl":`2xl`}),[c,u]=i.useState(typeof window<`u`?window.innerWidth:0);i.useEffect(()=>{if(typeof window>`u`)return;let e=()=>u(window.innerWidth);return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let d=s===`2xl`&&c>=1792?r===`rem`?`${(c/16).toFixed(1)}rem`:`${c}${r}`:s;return l(`button`,{type:`button`,onClick:()=>{o(g[(g.indexOf(a)+1)%g.length])},style:{position:`fixed`,zIndex:50,display:`grid`,height:`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`,...{"bottom-left":{bottom:`${t}${r}`,left:`${t}${r}`},"bottom-right":{bottom:`${t}${r}`,right:`${t}${r}`},"top-right":{top:`${t}${r}`,right:`${t}${r}`},"top-left":{top:`${t}${r}`,left:`${t}${r}`}}[a]},children:d})};function v(){return r(()=>{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`in window?window.requestIdleCallback(()=>r(e)):setTimeout(()=>r(e),0);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{p as HtmlInjector,u as Iconify,m as MediaWrapper,h as Portal,_ as ResponsiveIndicator,_ as TailwindIndicator,t as ScrollTracker,v as ScrollableMarker,f as WithClosest};
|
|
@@ -1,4 +1,4 @@
|
|
|
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]});function o(...n){return t(e(n))}function s(e,t){return console.warn(`isNavActive is deprecated. Use isLinkActive instead.`),RegExp(`^/?${e}(/|$)`).test(t)}function c({
|
|
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]});function o(...n){return t(e(n))}function s(e,t){return console.warn(`isNavActive is deprecated. Use isLinkActive instead.`),RegExp(`^/?${e}(/|$)`).test(t)}function c({targetPath: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(/[?#].*$/,``).replace(i,``).replace(/^\/+|\/+$/g,``),o=a(t);if(e instanceof RegExp)return e.test(o);let s=a(e);return r?s===o:o.startsWith(s)}function l(e){let t=e;return e.includes(`/public/`)&&(t=e.replace(`/public/`,`/`)),t.trim()}const u=(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`})},d=(e,t=()=>{})=>{typeof window>`u`||!navigator.clipboard?.writeText||e&&navigator.clipboard.writeText(e).then(t)},f=typeof window>`u`,p=e=>f?Buffer.from(e).toString(`base64`):window.btoa(e),m=(...e)=>t=>{for(let n of e)n&&(typeof n==`function`?n(t):n.current=t)};function h(e,t){let n=document.getElementById(e);n&&(n.scrollIntoView({behavior:`smooth`,block:`start`,...t}),window.history.pushState(null,``,`#${e}`))}function g(e){let t=`
|
|
2
2
|
self.onmessage = async (e) => {
|
|
3
3
|
try {
|
|
4
4
|
const fn = ${e.toString()};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e=require(`./hooks-
|
|
1
|
+
const e=require(`./hooks-B_cSW9vB.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]});function s(...e){return(0,n.twMerge)((0,t.clsx)(e))}function c(e,t){return console.warn(`isNavActive is deprecated. Use isLinkActive instead.`),RegExp(`^/?${e}(/|$)`).test(t)}function l({targetPath: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(/[?#].*$/,``).replace(i,``).replace(/^\/+|\/+$/g,``),o=a(t);if(e instanceof RegExp)return e.test(o);let s=a(e);return r?s===o:o.startsWith(s)}function u(e){let t=e;return e.includes(`/public/`)&&(t=e.replace(`/public/`,`/`)),t.trim()}const d=(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`})},f=(e,t=()=>{})=>{typeof window>`u`||!navigator.clipboard?.writeText||e&&navigator.clipboard.writeText(e).then(t)},p=typeof window>`u`,m=e=>p?Buffer.from(e).toString(`base64`):window.btoa(e),h=(...e)=>t=>{for(let n of e)n&&(typeof n==`function`?n(t):n.current=t)};function g(e,t){let n=document.getElementById(e);n&&(n.scrollIntoView({behavior:`smooth`,block:`start`,...t}),window.history.pushState(null,``,`#${e}`))}function _(e){let t=`
|
|
2
2
|
self.onmessage = async (e) => {
|
|
3
3
|
try {
|
|
4
4
|
const fn = ${e.toString()};
|
package/dist/hooks/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";const e=require(`../hooks-
|
|
1
|
+
"use client";const e=require(`../hooks-B_cSW9vB.cjs`);require(`../functions-Dp2CwvmB.cjs`),exports.BREAKPOINTS=e.w,exports.useAction=e.D,exports.useAsync=e.E,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.T,exports.useQuerySelector=e.m,exports.useSchedule=e.O,exports.useScheduledEffect=e.k,exports.useScrollTracker=e.S,exports.useSessionStorage=e.h,exports.useTimeout=e.g,exports.useUpdateEffect=e._,exports.useUrlParams=e.v,exports.useWindowEvent=e.y,exports.useWorker=e.b,exports.useWorkerEffect=e.x;
|
package/dist/hooks/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import"../functions-
|
|
1
|
+
"use client";import"../functions-CTMT4m8K.js";import{D as e,E as t,O as n,S as r,T as i,_ as a,a as o,b as s,c,d as l,f as u,g as d,h as f,i as p,k 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,w as T,x as E,y as D}from"../hooks-CCFEDyEO.js";export{T as BREAKPOINTS,e as useAction,t as useAsync,S as useClickOutside,_ as useCopyToClipboard,b as useDebounce,p as useDomCalculation,o as useEffectOnce,v as useHeightCalculation,x as useIntersection,c as useIsAtTop,h as useIsClient,C as useIsScrolling,l as useIsomorphicEffect,u as useLocalStorage,y as useLockScroll,i as useMediaQuery,g as useQuerySelector,n as useSchedule,m as useScheduledEffect,r as useScrollTracker,f as useSessionStorage,d as useTimeout,a as useUpdateEffect,w as useUrlParams,D as useWindowEvent,s as useWorker,E as useWorkerEffect};
|
|
@@ -1 +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-BbXeio5-.cjs`);let l=require(`@ts-utilities/core`),u=require(`react`);u=s(u);let d=require(`@radix-ui/react-slot`),f=require(`react/jsx-runtime`);function p(e={}){let{timeout:t=1e4}=e;return u.useCallback(e=>{let n=()=>{try{u.startTransition(()=>{e()})}catch(e){console.log(`⚡[schedule.tsx] Failed: `,e)}};`requestIdleCallback`in window?window.requestIdleCallback(n,{timeout:t}):(0,l.schedule)(n)},[t])}function m(e,t=[],n={}){let r=p(n);u.useEffect(()=>{let t;return r(()=>{t=e()}),()=>{typeof t==`function`&&t?.()}},[r,...t])}const h=(e,t)=>{let[n,r]=u.useState(`idle`),[i,a]=u.useState(null),[o,s]=u.useState(null),[c,l]=u.useState(void 0),[d,f]=u.useTransition(),p=n===`idle`,h=n===`loading`||d,g=n===`success`,_=n===`error`,v=u.useCallback(e=>{a(e),r(`success`),t?.onSuccess?.(e),t?.onSettled?.()},[t]),y=u.useCallback(e=>{s(e),r(`error`),t?.onError?.(e),t?.onSettled?.()},[t]),b=u.useCallback(t=>{l(t),r(`loading`),s(null),f(()=>{e(t).then(v).catch(y)})},[e,v,y]);return{execute:b,executeAsync:u.useCallback(t=>new Promise((n,i)=>{l(t),r(`loading`),s(null),f(()=>{e(t).then(e=>{v(e),n(e)}).catch(e=>{y(e),i(e)})})}),[e,v,y]),reset:u.useCallback(()=>{r(`idle`),a(null),s(null),l(void 0)},[]),useExecute:e=>{m(()=>{b(e)},[])},data:i,error:o,input:c,isIdle:p,isLoading:h,isSuccess:g,isError:_}};function g(e,t={}){let{mode:n=`manual`,deps:r,onSuccess:i,onError:a,onSettled:o}=t,[s,c]=u.useState(void 0),[l,d]=u.useState(void 0),[f,p]=u.useState(`idle`),m=u.useRef(null),h=u.useCallback(i||(()=>{}),[i]),g=u.useCallback(a||(()=>{}),[a]),_=u.useCallback(o||(()=>{}),[o]),v=u.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 u.useEffect(()=>{n===`auto`&&!r&&v()},[e,n,v,r]),u.useEffect(()=>{r&&n===`auto`&&v()},r||[]),u.useEffect(()=>()=>{m.current&&m.current.abort()},[]),{data:s,error:l,status:f,isIdle:f===`idle`,isPending:f===`pending`,isSuccess:f===`success`,isError:f===`error`,execute:v}}const _={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},v=[`2xl`,`xl`,`lg`,`md`,`sm`,`max-2xl`,`max-xl`,`max-lg`,`max-md`,`max-sm`],y=e=>typeof e==`object`&&!!e&&`DEFAULT`in e,b=e=>e.startsWith(`max-`)?`(max-width: ${_[e.slice(4)]-1}px)`:`(min-width: ${_[e]}px)`,x=e=>v.filter(t=>t in e).map(t=>`${t}:${String(e[t])}`).join(`,`)+`:DEFAULT:${String(e.DEFAULT)}`;function S(e){if(y(e)){let t=x(e),n=u.useMemo(()=>{let t=Object.keys(e).filter(e=>e!==`DEFAULT`);return v.filter(e=>t.includes(e)).map(t=>({bp:t,query:b(t),value:e[t]}))},[t]),r=u.useCallback(t=>{for(let e=0;e<t.length;e++)if(t[e].matches)return n[e].value;return e.DEFAULT},[n,e.DEFAULT]),[i,a]=u.useState(()=>{if(c.c)return e.DEFAULT;for(let{query:e,value:t}of n)if(window.matchMedia(e).matches)return t;return e.DEFAULT});return u.useEffect(()=>{let e=n.map(({query:e})=>window.matchMedia(e)),t=()=>a(r(e));for(let n of e)n.addEventListener(`change`,t);return t(),()=>{for(let n of e)n.removeEventListener(`change`,t)}},[n,r]),i}let t=Array.isArray(e)?e:[e],n=t.join(`||`),r=u.useMemo(()=>t.map(e=>e.startsWith(`(`)?e:b(e)),[n]),[i,a]=u.useState(()=>c.c?!1:r.every(e=>window.matchMedia(e).matches));return m(()=>{let e=r.map(e=>window.matchMedia(e)),t=()=>a(e.every(e=>e.matches));for(let n of e)n.addEventListener(`change`,t);return t(),()=>{for(let n of e)n.removeEventListener(`change`,t)}},[r]),i}const C=u.createContext(null),w=({children:e})=>{let t=u.useRef(null);return(0,f.jsx)(C.Provider,{value:t,children:(0,f.jsx)(d.Slot,{ref:t,children:e})})},T=({threshold:e=300,container:t}={})=>{let n=u.useContext(C),[r,i]=u.useState({scrolledPast:!1,direction:`forward`}),a=u.useRef(0),o=t=>{let n=t>a.current?`forward`:`backward`;i({scrolledPast:t>e,direction:n}),a.current=t};return m(()=>{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 E(e){let[t,n]=u.useState(void 0),[r,i]=u.useState(null),[a,o]=u.useState(!1),s=u.useMemo(()=>c.t(e),[]);return{execute:u.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 D(e,t=[]){let{execute:n}=E(e);u.useEffect(()=>{n()},[n,...t])}const O=(e=()=>alert(`clicked outside`))=>{let t=u.useRef(null),n=n=>{t.current&&!t.current.contains(n.target)&&e()};return u.useEffect(()=>(document.addEventListener(`mousedown`,n),document.addEventListener(`touchstart`,n),()=>{document.removeEventListener(`mousedown`,n),document.removeEventListener(`touchstart`,n)})),t};function k(e){u.useEffect(e,[])}function A(e,t){let n=u.useRef(!0);u.useEffect(()=>{if(n.current)n.current=!1;else return e()},t)}function j(e,t=500){let[n,r]=u.useState(e);return u.useEffect(()=>{let n=setTimeout(()=>r(e),t);return()=>{clearTimeout(n)}},[e,t]),n}const M=typeof window<`u`?u.useLayoutEffect:u.useEffect;function N(e,t=1e3){let n=u.useRef(e);m(()=>{n.current=e},[e]),u.useEffect(()=>{if(!t&&t!==0)return;let e=setTimeout(()=>n.current(),t);return()=>clearTimeout(e)},[t])}function P(e,t,n){u.useEffect(()=>(window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)),[e,t,n])}const F=(e,t)=>{let[n,r]=u.useState(t);return u.useEffect(()=>{let t=sessionStorage.getItem(e);t&&r(JSON.parse(t))},[e]),[n,u.useCallback(t=>{r(n=>{let r=typeof t==`function`?t(n):t;return sessionStorage.setItem(e,JSON.stringify(r)),r})},[e])]},I=(e,t)=>{let[n,r]=u.useState(()=>{try{let n=localStorage.getItem(e);return n?JSON.parse(n):t}catch{return t}});return A(()=>{try{localStorage.setItem(e,JSON.stringify(n))}catch(t){console.error(`Error writing to localStorage key "${e}":`,t)}},[e,n]),[n,r]},L=(e,t)=>{let[n,r]=u.useState(t);return u.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)}]},R=e=>{let[t,n]=u.useState(null),r=u.useRef(null);return u.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 z(){let[e,t]=u.useState(!1);return u.useEffect(()=>{t(!0)},[]),e}function B(){u.useLayoutEffect(()=>{let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[])}function V({timeout:e=2e3}){let[t,n]=u.useState(!1);return{isCopied:t,copy:t=>{c.i(t,()=>{n(!0),setTimeout(()=>{n(!1)},e)})}}}const H=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:r=!1})=>{let[i,a]=u.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 u.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},U=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:r=!1,onChange:i})=>{let[a,o]=u.useState({height:500,width:500}),s=u.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 u.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},W=()=>{let[e,t]=u.useState(!1),n=u.useRef(null),r=u.useRef(null);return k(()=>{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}},G=({offset:e}={})=>{let[t,n]=u.useState(!0),r=u.useRef(null);return k(()=>{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}},K=({threshold:e=.1,root:t=null,rootMargin:n,onInteractionStart:r,onInteractionEnd:i}={})=>{let[a,o]=u.useState(!1),s=u.useRef(null);return u.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,`A`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return P}});
|
|
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-Dp2CwvmB.cjs`);let l=require(`@ts-utilities/core`),u=require(`react`);u=s(u);let d=require(`@radix-ui/react-slot`),f=require(`react/jsx-runtime`);function p(e={}){let{timeout:t=1e4}=e;return u.useCallback(e=>{let n=()=>{try{u.startTransition(()=>{e()})}catch(e){console.log(`⚡[schedule.tsx] Failed: `,e)}};`requestIdleCallback`in window?window.requestIdleCallback(n,{timeout:t}):(0,l.schedule)(n)},[t])}function m(e,t=[],n={}){let r=p(n);u.useEffect(()=>{let t;return r(()=>{t=e()}),()=>{typeof t==`function`&&t?.()}},[r,...t])}const h=(e,t)=>{let[n,r]=u.useState(`idle`),[i,a]=u.useState(null),[o,s]=u.useState(null),[c,l]=u.useState(void 0),[d,f]=u.useTransition(),p=n===`idle`,h=n===`loading`||d,g=n===`success`,_=n===`error`,v=u.useCallback(e=>{a(e),r(`success`),t?.onSuccess?.(e),t?.onSettled?.()},[t]),y=u.useCallback(e=>{s(e),r(`error`),t?.onError?.(e),t?.onSettled?.()},[t]),b=u.useCallback(t=>{l(t),r(`loading`),s(null),f(()=>{e(t).then(v).catch(y)})},[e,v,y]);return{execute:b,executeAsync:u.useCallback(t=>new Promise((n,i)=>{l(t),r(`loading`),s(null),f(()=>{e(t).then(e=>{v(e),n(e)}).catch(e=>{y(e),i(e)})})}),[e,v,y]),reset:u.useCallback(()=>{r(`idle`),a(null),s(null),l(void 0)},[]),useExecute:e=>{m(()=>{b(e)},[])},data:i,error:o,input:c,isIdle:p,isLoading:h,isSuccess:g,isError:_}};function g(e,t={}){let{mode:n=`manual`,deps:r,onSuccess:i,onError:a,onSettled:o}=t,[s,c]=u.useState(void 0),[l,d]=u.useState(void 0),[f,p]=u.useState(`idle`),m=u.useRef(null),h=u.useCallback(i||(()=>{}),[i]),g=u.useCallback(a||(()=>{}),[a]),_=u.useCallback(o||(()=>{}),[o]),v=u.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 u.useEffect(()=>{n===`auto`&&!r&&v()},[e,n,v,r]),u.useEffect(()=>{r&&n===`auto`&&v()},r||[]),u.useEffect(()=>()=>{m.current&&m.current.abort()},[]),{data:s,error:l,status:f,isIdle:f===`idle`,isPending:f===`pending`,isSuccess:f===`success`,isError:f===`error`,execute:v}}const _={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},v=[`2xl`,`xl`,`lg`,`md`,`sm`,`max-2xl`,`max-xl`,`max-lg`,`max-md`,`max-sm`],y=e=>typeof e==`object`&&!!e&&`DEFAULT`in e,b=e=>e.startsWith(`max-`)?`(max-width: ${_[e.slice(4)]-1}px)`:`(min-width: ${_[e]}px)`,x=e=>v.filter(t=>t in e).map(t=>`${t}:${String(e[t])}`).join(`,`)+`:DEFAULT:${String(e.DEFAULT)}`;function S(e){if(y(e)){let t=x(e),n=u.useMemo(()=>{let t=Object.keys(e).filter(e=>e!==`DEFAULT`);return v.filter(e=>t.includes(e)).map(t=>({bp:t,query:b(t),value:e[t]}))},[t]),r=u.useCallback(t=>{for(let e=0;e<t.length;e++)if(t[e].matches)return n[e].value;return e.DEFAULT},[n,e.DEFAULT]),[i,a]=u.useState(()=>{if(c.c)return e.DEFAULT;for(let{query:e,value:t}of n)if(window.matchMedia(e).matches)return t;return e.DEFAULT});return u.useEffect(()=>{let e=n.map(({query:e})=>window.matchMedia(e)),t=()=>a(r(e));for(let n of e)n.addEventListener(`change`,t);return t(),()=>{for(let n of e)n.removeEventListener(`change`,t)}},[n,r]),i}let t=Array.isArray(e)?e:[e],n=t.join(`||`),r=u.useMemo(()=>t.map(e=>e.startsWith(`(`)?e:b(e)),[n]),[i,a]=u.useState(()=>c.c?!1:r.every(e=>window.matchMedia(e).matches));return m(()=>{let e=r.map(e=>window.matchMedia(e)),t=()=>a(e.every(e=>e.matches));for(let n of e)n.addEventListener(`change`,t);return t(),()=>{for(let n of e)n.removeEventListener(`change`,t)}},[r]),i}const C=u.createContext(null),w=({children:e})=>{let t=u.useRef(null);return(0,f.jsx)(C.Provider,{value:t,children:(0,f.jsx)(d.Slot,{ref:t,children:e})})},T=({threshold:e=300,container:t}={})=>{let n=u.useContext(C),[r,i]=u.useState({scrolledPast:!1,direction:`forward`}),a=u.useRef(0),o=t=>{let n=t>a.current?`forward`:`backward`;i({scrolledPast:t>e,direction:n}),a.current=t};return m(()=>{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 E(e){let[t,n]=u.useState(void 0),[r,i]=u.useState(null),[a,o]=u.useState(!1),s=u.useMemo(()=>c.t(e),[]);return{execute:u.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 D(e,t=[]){let{execute:n}=E(e);u.useEffect(()=>{n()},[n,...t])}const O=(e=()=>alert(`clicked outside`))=>{let t=u.useRef(null),n=n=>{t.current&&!t.current.contains(n.target)&&e()};return u.useEffect(()=>(document.addEventListener(`mousedown`,n),document.addEventListener(`touchstart`,n),()=>{document.removeEventListener(`mousedown`,n),document.removeEventListener(`touchstart`,n)})),t};function k(e){u.useEffect(e,[])}function A(e,t){let n=u.useRef(!0);u.useEffect(()=>{if(n.current)n.current=!1;else return e()},t)}function j(e,t=500){let[n,r]=u.useState(e);return u.useEffect(()=>{let n=setTimeout(()=>r(e),t);return()=>{clearTimeout(n)}},[e,t]),n}const M=typeof window<`u`?u.useLayoutEffect:u.useEffect;function N(e,t=1e3){let n=u.useRef(e);m(()=>{n.current=e},[e]),u.useEffect(()=>{if(!t&&t!==0)return;let e=setTimeout(()=>n.current(),t);return()=>clearTimeout(e)},[t])}function P(e,t,n){u.useEffect(()=>(window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)),[e,t,n])}const F=(e,t)=>{let[n,r]=u.useState(t);return u.useEffect(()=>{let t=sessionStorage.getItem(e);t&&r(JSON.parse(t))},[e]),[n,u.useCallback(t=>{r(n=>{let r=typeof t==`function`?t(n):t;return sessionStorage.setItem(e,JSON.stringify(r)),r})},[e])]},I=(e,t)=>{let[n,r]=u.useState(()=>{try{let n=localStorage.getItem(e);return n?JSON.parse(n):t}catch{return t}});return A(()=>{try{localStorage.setItem(e,JSON.stringify(n))}catch(t){console.error(`Error writing to localStorage key "${e}":`,t)}},[e,n]),[n,r]},L=(e,t)=>{let[n,r]=u.useState(t);return u.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)}]},R=e=>{let[t,n]=u.useState(null),r=u.useRef(null);return u.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 z(){let[e,t]=u.useState(!1);return u.useEffect(()=>{t(!0)},[]),e}function B(){u.useLayoutEffect(()=>{let e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[])}function V({timeout:e=2e3}){let[t,n]=u.useState(!1);return{isCopied:t,copy:t=>{c.i(t,()=>{n(!0),setTimeout(()=>{n(!1)},e)})}}}const H=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:r=!1})=>{let[i,a]=u.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 u.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},U=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:r=!1,onChange:i})=>{let[a,o]=u.useState({height:500,width:500}),s=u.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 u.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},W=()=>{let[e,t]=u.useState(!1),n=u.useRef(null),r=u.useRef(null);return k(()=>{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}},G=({offset:e}={})=>{let[t,n]=u.useState(!0),r=u.useRef(null);return k(()=>{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}},K=({threshold:e=.1,root:t=null,rootMargin:n,onInteractionStart:r,onInteractionEnd:i}={})=>{let[a,o]=u.useState(!1),s=u.useRef(null);return u.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,`A`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return P}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,i as t,t as n}from"./functions-NBY7C4F1.js";import{schedule as r}from"@ts-utilities/core";import*as i from"react";import{Slot as a}from"@radix-ui/react-slot";import{jsx as o}from"react/jsx-runtime";function s(e={}){let{timeout:t=1e4}=e;return i.useCallback(e=>{let n=()=>{try{i.startTransition(()=>{e()})}catch(e){console.log(`⚡[schedule.tsx] Failed: `,e)}};`requestIdleCallback`in window?window.requestIdleCallback(n,{timeout:t}):r(n)},[t])}function c(e,t=[],n={}){let r=s(n);i.useEffect(()=>{let t;return r(()=>{t=e()}),()=>{typeof t==`function`&&t?.()}},[r,...t])}const l=(e,t)=>{let[n,r]=i.useState(`idle`),[a,o]=i.useState(null),[s,l]=i.useState(null),[u,d]=i.useState(void 0),[f,p]=i.useTransition(),m=n===`idle`,h=n===`loading`||f,g=n===`success`,_=n===`error`,v=i.useCallback(e=>{o(e),r(`success`),t?.onSuccess?.(e),t?.onSettled?.()},[t]),y=i.useCallback(e=>{l(e),r(`error`),t?.onError?.(e),t?.onSettled?.()},[t]),b=i.useCallback(t=>{d(t),r(`loading`),l(null),p(()=>{e(t).then(v).catch(y)})},[e,v,y]);return{execute:b,executeAsync:i.useCallback(t=>new Promise((n,i)=>{d(t),r(`loading`),l(null),p(()=>{e(t).then(e=>{v(e),n(e)}).catch(e=>{y(e),i(e)})})}),[e,v,y]),reset:i.useCallback(()=>{r(`idle`),o(null),l(null),d(void 0)},[]),useExecute:e=>{c(()=>{b(e)},[])},data:a,error:s,input:u,isIdle:m,isLoading:h,isSuccess:g,isError:_}};function u(e,t={}){let{mode:n=`manual`,deps:r,onSuccess:a,onError:o,onSettled:s}=t,[c,l]=i.useState(void 0),[u,d]=i.useState(void 0),[f,p]=i.useState(`idle`),m=i.useRef(null),h=i.useCallback(a||(()=>{}),[a]),g=i.useCallback(o||(()=>{}),[o]),_=i.useCallback(s||(()=>{}),[s]),v=i.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 i.useEffect(()=>{n===`auto`&&!r&&v()},[e,n,v,r]),i.useEffect(()=>{r&&n===`auto`&&v()},r||[]),i.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 d={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},f=[`2xl`,`xl`,`lg`,`md`,`sm`,`max-2xl`,`max-xl`,`max-lg`,`max-md`,`max-sm`],p=e=>typeof e==`object`&&!!e&&`DEFAULT`in e,m=e=>e.startsWith(`max-`)?`(max-width: ${d[e.slice(4)]-1}px)`:`(min-width: ${d[e]}px)`,h=e=>f.filter(t=>t in e).map(t=>`${t}:${String(e[t])}`).join(`,`)+`:DEFAULT:${String(e.DEFAULT)}`;function g(t){if(p(t)){let n=h(t),r=i.useMemo(()=>{let e=Object.keys(t).filter(e=>e!==`DEFAULT`);return f.filter(t=>e.includes(t)).map(e=>({bp:e,query:m(e),value:t[e]}))},[n]),a=i.useCallback(e=>{for(let t=0;t<e.length;t++)if(e[t].matches)return r[t].value;return t.DEFAULT},[r,t.DEFAULT]),[o,s]=i.useState(()=>{if(e)return t.DEFAULT;for(let{query:e,value:t}of r)if(window.matchMedia(e).matches)return t;return t.DEFAULT});return i.useEffect(()=>{let e=r.map(({query:e})=>window.matchMedia(e)),t=()=>s(a(e));for(let n of e)n.addEventListener(`change`,t);return t(),()=>{for(let n of e)n.removeEventListener(`change`,t)}},[r,a]),o}let n=Array.isArray(t)?t:[t],r=n.join(`||`),a=i.useMemo(()=>n.map(e=>e.startsWith(`(`)?e:m(e)),[r]),[o,s]=i.useState(()=>e?!1:a.every(e=>window.matchMedia(e).matches));return c(()=>{let e=a.map(e=>window.matchMedia(e)),t=()=>s(e.every(e=>e.matches));for(let n of e)n.addEventListener(`change`,t);return t(),()=>{for(let n of e)n.removeEventListener(`change`,t)}},[a]),o}const _=i.createContext(null),v=({children:e})=>{let t=i.useRef(null);return o(_.Provider,{value:t,children:o(a,{ref:t,children:e})})},y=({threshold:e=300,container:t}={})=>{let n=i.useContext(_),[r,a]=i.useState({scrolledPast:!1,direction:`forward`}),o=i.useRef(0),s=t=>{let n=t>o.current?`forward`:`backward`;a({scrolledPast:t>e,direction:n}),o.current=t};return c(()=>{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];s(e)};return r.addEventListener(`scroll`,a),a(),()=>r.removeEventListener(`scroll`,a)},[t,n,e]),r};function b(e){let[t,r]=i.useState(void 0),[a,o]=i.useState(null),[s,c]=i.useState(!1),l=i.useMemo(()=>n(e),[]);return{execute:i.useCallback((...e)=>{(async()=>{c(!0),o(null);try{r(await l(...e))}catch(e){o(e instanceof Error?e:Error(String(e)))}finally{c(!1)}})()},[l]),data:t,error:a,isLoading:s}}function x(e,t=[]){let{execute:n}=b(e);i.useEffect(()=>{n()},[n,...t])}const S=(e=()=>alert(`clicked outside`))=>{let t=i.useRef(null),n=n=>{t.current&&!t.current.contains(n.target)&&e()};return i.useEffect(()=>(document.addEventListener(`mousedown`,n),document.addEventListener(`touchstart`,n),()=>{document.removeEventListener(`mousedown`,n),document.removeEventListener(`touchstart`,n)})),t};function C(e){i.useEffect(e,[])}function w(e,t){let n=i.useRef(!0);i.useEffect(()=>{if(n.current)n.current=!1;else return e()},t)}function T(e,t=500){let[n,r]=i.useState(e);return i.useEffect(()=>{let n=setTimeout(()=>r(e),t);return()=>{clearTimeout(n)}},[e,t]),n}const E=typeof window<`u`?i.useLayoutEffect:i.useEffect;function D(e,t=1e3){let n=i.useRef(e);c(()=>{n.current=e},[e]),i.useEffect(()=>{if(!t&&t!==0)return;let e=setTimeout(()=>n.current(),t);return()=>clearTimeout(e)},[t])}function O(e,t,n){i.useEffect(()=>(window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)),[e,t,n])}const k=(e,t)=>{let[n,r]=i.useState(t);return i.useEffect(()=>{let t=sessionStorage.getItem(e);t&&r(JSON.parse(t))},[e]),[n,i.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]=i.useState(()=>{try{let n=localStorage.getItem(e);return n?JSON.parse(n):t}catch{return t}});return w(()=>{try{localStorage.setItem(e,JSON.stringify(n))}catch(t){console.error(`Error writing to localStorage key "${e}":`,t)}},[e,n]),[n,r]},j=(e,t)=>{let[n,r]=i.useState(t);return i.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]=i.useState(null),r=i.useRef(null);return i.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]=i.useState(!1);return i.useEffect(()=>{t(!0)},[]),e}function P(){i.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[n,r]=i.useState(!1);return{isCopied:n,copy:n=>{t(n,()=>{r(!0),setTimeout(()=>{r(!1)},e)})}}}const I=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:r=!1})=>{let[a,o]=i.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 i.useEffect(()=>{if(s(),r){if(typeof r==`string`){let e=document.getElementById(r),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},L=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:r=!1,onChange:a})=>{let[o,s]=i.useState({height:500,width:500}),c=i.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 i.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(r)if(typeof r==`string`){let e=document.getElementById(r);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,r,e.join(`,`)]),o},R=()=>{let[e,t]=i.useState(!1),n=i.useRef(null),r=i.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]=i.useState(!0),r=i.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:a}={})=>{let[o,s]=i.useState(!1),c=i.useRef(null);return i.useEffect(()=>{if(!c.current)return;let i=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting?o||(r?.(),s(!0)):o&&(a?.(),s(!1))},{threshold:e,root:t,...n&&{rootMargin:n}});return i.observe(c.current),()=>{i.disconnect()}},[e,t,n,r,a,o]),{ref:c,isIntersecting:o}};export{v as C,l as D,u as E,s as O,y as S,g as T,w as _,C as a,b,z as c,E as d,A as f,D as g,k as h,L as i,c as k,N as l,M as m,F as n,I as o,P as p,T as r,B as s,S as t,R as u,j as v,d as w,x,O as y};
|
|
1
|
+
import{c as e,i as t,t as n}from"./functions-CTMT4m8K.js";import{schedule as r}from"@ts-utilities/core";import*as i from"react";import{Slot as a}from"@radix-ui/react-slot";import{jsx as o}from"react/jsx-runtime";function s(e={}){let{timeout:t=1e4}=e;return i.useCallback(e=>{let n=()=>{try{i.startTransition(()=>{e()})}catch(e){console.log(`⚡[schedule.tsx] Failed: `,e)}};`requestIdleCallback`in window?window.requestIdleCallback(n,{timeout:t}):r(n)},[t])}function c(e,t=[],n={}){let r=s(n);i.useEffect(()=>{let t;return r(()=>{t=e()}),()=>{typeof t==`function`&&t?.()}},[r,...t])}const l=(e,t)=>{let[n,r]=i.useState(`idle`),[a,o]=i.useState(null),[s,l]=i.useState(null),[u,d]=i.useState(void 0),[f,p]=i.useTransition(),m=n===`idle`,h=n===`loading`||f,g=n===`success`,_=n===`error`,v=i.useCallback(e=>{o(e),r(`success`),t?.onSuccess?.(e),t?.onSettled?.()},[t]),y=i.useCallback(e=>{l(e),r(`error`),t?.onError?.(e),t?.onSettled?.()},[t]),b=i.useCallback(t=>{d(t),r(`loading`),l(null),p(()=>{e(t).then(v).catch(y)})},[e,v,y]);return{execute:b,executeAsync:i.useCallback(t=>new Promise((n,i)=>{d(t),r(`loading`),l(null),p(()=>{e(t).then(e=>{v(e),n(e)}).catch(e=>{y(e),i(e)})})}),[e,v,y]),reset:i.useCallback(()=>{r(`idle`),o(null),l(null),d(void 0)},[]),useExecute:e=>{c(()=>{b(e)},[])},data:a,error:s,input:u,isIdle:m,isLoading:h,isSuccess:g,isError:_}};function u(e,t={}){let{mode:n=`manual`,deps:r,onSuccess:a,onError:o,onSettled:s}=t,[c,l]=i.useState(void 0),[u,d]=i.useState(void 0),[f,p]=i.useState(`idle`),m=i.useRef(null),h=i.useCallback(a||(()=>{}),[a]),g=i.useCallback(o||(()=>{}),[o]),_=i.useCallback(s||(()=>{}),[s]),v=i.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 i.useEffect(()=>{n===`auto`&&!r&&v()},[e,n,v,r]),i.useEffect(()=>{r&&n===`auto`&&v()},r||[]),i.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 d={sm:640,md:768,lg:1024,xl:1280,"2xl":1536},f=[`2xl`,`xl`,`lg`,`md`,`sm`,`max-2xl`,`max-xl`,`max-lg`,`max-md`,`max-sm`],p=e=>typeof e==`object`&&!!e&&`DEFAULT`in e,m=e=>e.startsWith(`max-`)?`(max-width: ${d[e.slice(4)]-1}px)`:`(min-width: ${d[e]}px)`,h=e=>f.filter(t=>t in e).map(t=>`${t}:${String(e[t])}`).join(`,`)+`:DEFAULT:${String(e.DEFAULT)}`;function g(t){if(p(t)){let n=h(t),r=i.useMemo(()=>{let e=Object.keys(t).filter(e=>e!==`DEFAULT`);return f.filter(t=>e.includes(t)).map(e=>({bp:e,query:m(e),value:t[e]}))},[n]),a=i.useCallback(e=>{for(let t=0;t<e.length;t++)if(e[t].matches)return r[t].value;return t.DEFAULT},[r,t.DEFAULT]),[o,s]=i.useState(()=>{if(e)return t.DEFAULT;for(let{query:e,value:t}of r)if(window.matchMedia(e).matches)return t;return t.DEFAULT});return i.useEffect(()=>{let e=r.map(({query:e})=>window.matchMedia(e)),t=()=>s(a(e));for(let n of e)n.addEventListener(`change`,t);return t(),()=>{for(let n of e)n.removeEventListener(`change`,t)}},[r,a]),o}let n=Array.isArray(t)?t:[t],r=n.join(`||`),a=i.useMemo(()=>n.map(e=>e.startsWith(`(`)?e:m(e)),[r]),[o,s]=i.useState(()=>e?!1:a.every(e=>window.matchMedia(e).matches));return c(()=>{let e=a.map(e=>window.matchMedia(e)),t=()=>s(e.every(e=>e.matches));for(let n of e)n.addEventListener(`change`,t);return t(),()=>{for(let n of e)n.removeEventListener(`change`,t)}},[a]),o}const _=i.createContext(null),v=({children:e})=>{let t=i.useRef(null);return o(_.Provider,{value:t,children:o(a,{ref:t,children:e})})},y=({threshold:e=300,container:t}={})=>{let n=i.useContext(_),[r,a]=i.useState({scrolledPast:!1,direction:`forward`}),o=i.useRef(0),s=t=>{let n=t>o.current?`forward`:`backward`;a({scrolledPast:t>e,direction:n}),o.current=t};return c(()=>{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];s(e)};return r.addEventListener(`scroll`,a),a(),()=>r.removeEventListener(`scroll`,a)},[t,n,e]),r};function b(e){let[t,r]=i.useState(void 0),[a,o]=i.useState(null),[s,c]=i.useState(!1),l=i.useMemo(()=>n(e),[]);return{execute:i.useCallback((...e)=>{(async()=>{c(!0),o(null);try{r(await l(...e))}catch(e){o(e instanceof Error?e:Error(String(e)))}finally{c(!1)}})()},[l]),data:t,error:a,isLoading:s}}function x(e,t=[]){let{execute:n}=b(e);i.useEffect(()=>{n()},[n,...t])}const S=(e=()=>alert(`clicked outside`))=>{let t=i.useRef(null),n=n=>{t.current&&!t.current.contains(n.target)&&e()};return i.useEffect(()=>(document.addEventListener(`mousedown`,n),document.addEventListener(`touchstart`,n),()=>{document.removeEventListener(`mousedown`,n),document.removeEventListener(`touchstart`,n)})),t};function C(e){i.useEffect(e,[])}function w(e,t){let n=i.useRef(!0);i.useEffect(()=>{if(n.current)n.current=!1;else return e()},t)}function T(e,t=500){let[n,r]=i.useState(e);return i.useEffect(()=>{let n=setTimeout(()=>r(e),t);return()=>{clearTimeout(n)}},[e,t]),n}const E=typeof window<`u`?i.useLayoutEffect:i.useEffect;function D(e,t=1e3){let n=i.useRef(e);c(()=>{n.current=e},[e]),i.useEffect(()=>{if(!t&&t!==0)return;let e=setTimeout(()=>n.current(),t);return()=>clearTimeout(e)},[t])}function O(e,t,n){i.useEffect(()=>(window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)),[e,t,n])}const k=(e,t)=>{let[n,r]=i.useState(t);return i.useEffect(()=>{let t=sessionStorage.getItem(e);t&&r(JSON.parse(t))},[e]),[n,i.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]=i.useState(()=>{try{let n=localStorage.getItem(e);return n?JSON.parse(n):t}catch{return t}});return w(()=>{try{localStorage.setItem(e,JSON.stringify(n))}catch(t){console.error(`Error writing to localStorage key "${e}":`,t)}},[e,n]),[n,r]},j=(e,t)=>{let[n,r]=i.useState(t);return i.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]=i.useState(null),r=i.useRef(null);return i.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]=i.useState(!1);return i.useEffect(()=>{t(!0)},[]),e}function P(){i.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[n,r]=i.useState(!1);return{isCopied:n,copy:n=>{t(n,()=>{r(!0),setTimeout(()=>{r(!1)},e)})}}}const I=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:r=!1})=>{let[a,o]=i.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 i.useEffect(()=>{if(s(),r){if(typeof r==`string`){let e=document.getElementById(r),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},L=({blockIds:e=[],margin:t=0,substract:n=!0,dynamic:r=!1,onChange:a})=>{let[o,s]=i.useState({height:500,width:500}),c=i.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 i.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(r)if(typeof r==`string`){let e=document.getElementById(r);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,r,e.join(`,`)]),o},R=()=>{let[e,t]=i.useState(!1),n=i.useRef(null),r=i.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]=i.useState(!0),r=i.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:a}={})=>{let[o,s]=i.useState(!1),c=i.useRef(null);return i.useEffect(()=>{if(!c.current)return;let i=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting?o||(r?.(),s(!0)):o&&(a?.(),s(!1))},{threshold:e,root:t,...n&&{rootMargin:n}});return i.observe(c.current),()=>{i.disconnect()}},[e,t,n,r,a,o]),{ref:c,isIntersecting:o}};export{v as C,l as D,u as E,s as O,y as S,g as T,w as _,C as a,b,z as c,E as d,A as f,D as g,k as h,L as i,c as k,N as l,M as m,F as n,I as o,P as p,T as r,B as s,S as t,R as u,j as v,d as w,x,O as y};
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./functions-
|
|
1
|
+
const e=require(`./functions-Dp2CwvmB.cjs`);exports.cleanSrc=e.n,exports.cn=e.r,exports.copyToClipboard=e.i,exports.deleteClientSideCookie=e.f,exports.getClientSideCookie=e.p,exports.goToClientSideHash=e.a,exports.hasClientSideCookie=e.m,exports.isLinkActive=e.o,exports.isNavActive=e.s,exports.isSSR=e.c,exports.mergeRefs=e.l,exports.scrollTo=e.u,exports.setClientSideCookie=e.h,exports.svgToBase64=e.d,exports.workerize=e.t;var t=require(`@ts-utilities/core`);Object.keys(t).forEach(function(e){e!==`default`&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})});
|
package/dist/index.d.cts
CHANGED
|
@@ -97,35 +97,48 @@ declare function isNavActive(href: string, path: string): boolean;
|
|
|
97
97
|
*
|
|
98
98
|
* Compares paths while ignoring locale prefixes (e.g., /en/, /fr/) for consistent
|
|
99
99
|
* navigation highlighting across different language versions of the same page.
|
|
100
|
+
* Query strings and hash fragments are stripped before comparison.
|
|
100
101
|
*
|
|
101
102
|
* @param params - Parameters object.
|
|
102
|
-
* @param params.
|
|
103
|
-
* @param params.currentPath - The current browser path.
|
|
103
|
+
* @param params.targetPath - The target path of the link. Accepts a string or RegExp.
|
|
104
|
+
* @param params.currentPath - The current browser path (e.g., `window.location.pathname`).
|
|
104
105
|
* @param params.locales - Supported locale prefixes to ignore during comparison.
|
|
105
|
-
* @param params.exact - Whether to require exact path match (default: true).
|
|
106
|
-
* @returns
|
|
106
|
+
* @param params.exact - Whether to require exact path match (default: `true`). Ignored when `targetPath` is a RegExp.
|
|
107
|
+
* @returns `true` if the link is active, `false` otherwise.
|
|
107
108
|
*
|
|
108
109
|
* @example
|
|
109
|
-
* ```ts
|
|
110
110
|
* // Exact match
|
|
111
|
-
* isLinkActive({
|
|
112
|
-
* isLinkActive({
|
|
111
|
+
* isLinkActive({ targetPath: '/about', currentPath: '/about' }) // true
|
|
112
|
+
* isLinkActive({ targetPath: '/about', currentPath: '/about/team' }) // false
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* // Query strings and hashes are ignored
|
|
116
|
+
* isLinkActive({ targetPath: '/keywords', currentPath: '/keywords?asin=123&page=1' }) // true
|
|
117
|
+
* isLinkActive({ targetPath: '/keywords', currentPath: '/keywords#section' }) // true
|
|
113
118
|
*
|
|
119
|
+
* @example
|
|
114
120
|
* // With locales
|
|
115
|
-
* isLinkActive({
|
|
116
|
-
* isLinkActive({
|
|
121
|
+
* isLinkActive({ targetPath: '/about', currentPath: '/en/about' }) // true
|
|
122
|
+
* isLinkActive({ targetPath: '/about', currentPath: '/fr/about' }) // true
|
|
117
123
|
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
124
|
+
* @example
|
|
125
|
+
* // Partial match (exact: false)
|
|
126
|
+
* isLinkActive({ targetPath: '/blog', currentPath: '/blog/post-1', exact: false }) // true
|
|
127
|
+
* isLinkActive({ targetPath: '/blog', currentPath: '/blog/post-1', exact: true }) // false
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* // Regex for dynamic routes
|
|
131
|
+
* isLinkActive({ targetPath: /^products\/\d+$/, currentPath: '/products/123' }) // true
|
|
132
|
+
* isLinkActive({ targetPath: /^products\/\d+$/, currentPath: '/en/products/456' }) // true
|
|
133
|
+
* isLinkActive({ targetPath: /^products\/\d+$/, currentPath: '/products/abc' }) // false
|
|
121
134
|
*/
|
|
122
135
|
declare function isLinkActive({
|
|
123
|
-
|
|
136
|
+
targetPath,
|
|
124
137
|
currentPath,
|
|
125
138
|
locales,
|
|
126
139
|
exact
|
|
127
140
|
}: {
|
|
128
|
-
|
|
141
|
+
targetPath: string | RegExp;
|
|
129
142
|
currentPath: string;
|
|
130
143
|
locales?: string[];
|
|
131
144
|
exact?: boolean;
|
package/dist/index.d.ts
CHANGED
|
@@ -97,35 +97,48 @@ declare function isNavActive(href: string, path: string): boolean;
|
|
|
97
97
|
*
|
|
98
98
|
* Compares paths while ignoring locale prefixes (e.g., /en/, /fr/) for consistent
|
|
99
99
|
* navigation highlighting across different language versions of the same page.
|
|
100
|
+
* Query strings and hash fragments are stripped before comparison.
|
|
100
101
|
*
|
|
101
102
|
* @param params - Parameters object.
|
|
102
|
-
* @param params.
|
|
103
|
-
* @param params.currentPath - The current browser path.
|
|
103
|
+
* @param params.targetPath - The target path of the link. Accepts a string or RegExp.
|
|
104
|
+
* @param params.currentPath - The current browser path (e.g., `window.location.pathname`).
|
|
104
105
|
* @param params.locales - Supported locale prefixes to ignore during comparison.
|
|
105
|
-
* @param params.exact - Whether to require exact path match (default: true).
|
|
106
|
-
* @returns
|
|
106
|
+
* @param params.exact - Whether to require exact path match (default: `true`). Ignored when `targetPath` is a RegExp.
|
|
107
|
+
* @returns `true` if the link is active, `false` otherwise.
|
|
107
108
|
*
|
|
108
109
|
* @example
|
|
109
|
-
* ```ts
|
|
110
110
|
* // Exact match
|
|
111
|
-
* isLinkActive({
|
|
112
|
-
* isLinkActive({
|
|
111
|
+
* isLinkActive({ targetPath: '/about', currentPath: '/about' }) // true
|
|
112
|
+
* isLinkActive({ targetPath: '/about', currentPath: '/about/team' }) // false
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* // Query strings and hashes are ignored
|
|
116
|
+
* isLinkActive({ targetPath: '/keywords', currentPath: '/keywords?asin=123&page=1' }) // true
|
|
117
|
+
* isLinkActive({ targetPath: '/keywords', currentPath: '/keywords#section' }) // true
|
|
113
118
|
*
|
|
119
|
+
* @example
|
|
114
120
|
* // With locales
|
|
115
|
-
* isLinkActive({
|
|
116
|
-
* isLinkActive({
|
|
121
|
+
* isLinkActive({ targetPath: '/about', currentPath: '/en/about' }) // true
|
|
122
|
+
* isLinkActive({ targetPath: '/about', currentPath: '/fr/about' }) // true
|
|
117
123
|
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
124
|
+
* @example
|
|
125
|
+
* // Partial match (exact: false)
|
|
126
|
+
* isLinkActive({ targetPath: '/blog', currentPath: '/blog/post-1', exact: false }) // true
|
|
127
|
+
* isLinkActive({ targetPath: '/blog', currentPath: '/blog/post-1', exact: true }) // false
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* // Regex for dynamic routes
|
|
131
|
+
* isLinkActive({ targetPath: /^products\/\d+$/, currentPath: '/products/123' }) // true
|
|
132
|
+
* isLinkActive({ targetPath: /^products\/\d+$/, currentPath: '/en/products/456' }) // true
|
|
133
|
+
* isLinkActive({ targetPath: /^products\/\d+$/, currentPath: '/products/abc' }) // false
|
|
121
134
|
*/
|
|
122
135
|
declare function isLinkActive({
|
|
123
|
-
|
|
136
|
+
targetPath,
|
|
124
137
|
currentPath,
|
|
125
138
|
locales,
|
|
126
139
|
exact
|
|
127
140
|
}: {
|
|
128
|
-
|
|
141
|
+
targetPath: string | RegExp;
|
|
129
142
|
currentPath: string;
|
|
130
143
|
locales?: string[];
|
|
131
144
|
exact?: boolean;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,c as t,d as n,f as r,h as i,i as a,l as o,m as s,n as c,o as l,p as u,r as d,s as f,t as p,u as m}from"./functions-
|
|
1
|
+
import{a as e,c as t,d as n,f as r,h as i,i as a,l as o,m as s,n as c,o as l,p as u,r as d,s as f,t as p,u as m}from"./functions-CTMT4m8K.js";export*from"@ts-utilities/core";export{c as cleanSrc,d as cn,a as copyToClipboard,r as deleteClientSideCookie,u as getClientSideCookie,e as goToClientSideHash,s as hasClientSideCookie,l as isLinkActive,f as isNavActive,t as isSSR,o as mergeRefs,m as scrollTo,i as setClientSideCookie,n as svgToBase64,p as workerize};
|