@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.
@@ -1 +1 @@
1
- "use client";const e=require(`../hooks-DATf1uhM.cjs`),t=require(`../functions-BbXeio5-.cjs`);let n=require(`react`);n=e.A(n);let r=require(`react/jsx-runtime`),i=require(`@iconify/react`),a=require(`react-dom`);function o({className:i,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,r.jsx)(`div`,{ref:u,className:t.r(i),dangerouslySetInnerHTML:{__html:d},...c}):null}function s({breakpoint:t,as:i=`div`,fallback:a=n.Fragment,className:o,classNameFallback:s,...c}){let l=e.T(t.split(`-`).pop())===t.startsWith(`max`),u=l?a:i,d=l?s:o;return u===n.Fragment?(0,r.jsx)(u,{ref:c.ref,children:c.children},c.key):(0,r.jsx)(u,{className:d,...c})}function c({children:e,container:t}){let r=(0,n.useRef)(null),[i,o]=(0,n.useState)(!1);return(0,n.useLayoutEffect)(()=>{r.current=typeof t==`string`?document.querySelector(t):t.current,o(!0)},[]),!i||!r.current?null:(0,a.createPortal)(e,r.current)}const l=[`bottom-left`,`bottom-right`,`top-right`,`top-left`],u=({side:t,offset:i=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`}),[u,d]=n.useState(typeof window<`u`?window.innerWidth:0);n.useEffect(()=>{if(typeof window>`u`)return;let e=()=>d(window.innerWidth);return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let f=c===`2xl`&&u>=1792?a===`rem`?`${(u/16).toFixed(1)}rem`:`${u}${a}`:c,p={"bottom-left":{bottom:`${i}${a}`,left:`${i}${a}`},"bottom-right":{bottom:`${i}${a}`,right:`${i}${a}`},"top-right":{top:`${i}${a}`,right:`${i}${a}`},"top-left":{top:`${i}${a}`,left:`${i}${a}`}};return(0,r.jsx)(`button`,{type:`button`,onClick:()=>{s(l[(l.indexOf(o)+1)%l.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 d(){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=o,Object.defineProperty(exports,`Iconify`,{enumerable:!0,get:function(){return i.Icon}}),exports.MediaWrapper=s,exports.Portal=c,exports.ResponsiveIndicator=u,exports.TailwindIndicator=u,exports.ScrollTracker=e.C,exports.ScrollableMarker=d;
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 react_jsx_runtime0 from "react/jsx-runtime";
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): react_jsx_runtime0.JSX.Element | null;
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): react_jsx_runtime0.JSX.Element;
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) => react_jsx_runtime0.JSX.Element;
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 };
@@ -1 +1 @@
1
- "use client";import{r as e}from"../functions-NBY7C4F1.js";import{C as t,T as n,k as r}from"../hooks-Bc_So9mz.js";import*as i from"react";import{useLayoutEffect as a,useRef as o,useState as s}from"react";import{jsx as c}from"react/jsx-runtime";import{Icon as l}from"@iconify/react";import{createPortal as u}from"react-dom";function d({className:t,html:n,sanitize:a=!1,executeScripts:o=!0,...s}){let l=i.useRef([]),u=i.useRef(null);r(()=>{if(l.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),l.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),l.current.push(t)})}catch(e){console.error(`HTML injection error:`,e)}},[n,o]),i.useEffect(()=>()=>{l.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?c(`div`,{ref:u,className:e(t),dangerouslySetInnerHTML:{__html:d},...s}):null}function f({breakpoint:e,as:t=`div`,fallback:r=i.Fragment,className:a,classNameFallback:o,...s}){let l=n(e.split(`-`).pop())===e.startsWith(`max`),u=l?r:t,d=l?o:a;return u===i.Fragment?c(u,{ref:s.ref,children:s.children},s.key):c(u,{className:d,...s})}function p({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:u(e,n.current)}const m=[`bottom-left`,`bottom-right`,`top-right`,`top-left`],h=({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`}),[l,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`&&l>=1792?r===`rem`?`${(l/16).toFixed(1)}rem`:`${l}${r}`:s;return c(`button`,{type:`button`,onClick:()=>{o(m[(m.indexOf(a)+1)%m.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 g(){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{d as HtmlInjector,l as Iconify,f as MediaWrapper,p as Portal,h as ResponsiveIndicator,h as TailwindIndicator,t as ScrollTracker,g as ScrollableMarker};
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({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 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=`
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-DATf1uhM.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({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 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=`
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()};
@@ -1 +1 @@
1
- "use client";const e=require(`../hooks-DATf1uhM.cjs`);require(`../functions-BbXeio5-.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;
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;
@@ -1 +1 @@
1
- "use client";import"../functions-NBY7C4F1.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-Bc_So9mz.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
+ "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-BbXeio5-.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]}})});
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.path - The target path of the link.
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). If false, checks if current path starts with target path.
106
- * @returns True if the link is active, false otherwise.
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({ path: '/about', currentPath: '/about' }) // true
112
- * isLinkActive({ path: '/about', currentPath: '/about/team' }) // false
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({ path: '/about', currentPath: '/en/about' }) // true
116
- * isLinkActive({ path: '/about', currentPath: '/fr/about' }) // true
121
+ * isLinkActive({ targetPath: '/about', currentPath: '/en/about' }) // true
122
+ * isLinkActive({ targetPath: '/about', currentPath: '/fr/about' }) // true
117
123
  *
118
- * // Partial match
119
- * isLinkActive({ path: '/blog', currentPath: '/blog/post-1', exact: false }) // true
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
- path,
136
+ targetPath,
124
137
  currentPath,
125
138
  locales,
126
139
  exact
127
140
  }: {
128
- path: string;
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.path - The target path of the link.
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). If false, checks if current path starts with target path.
106
- * @returns True if the link is active, false otherwise.
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({ path: '/about', currentPath: '/about' }) // true
112
- * isLinkActive({ path: '/about', currentPath: '/about/team' }) // false
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({ path: '/about', currentPath: '/en/about' }) // true
116
- * isLinkActive({ path: '/about', currentPath: '/fr/about' }) // true
121
+ * isLinkActive({ targetPath: '/about', currentPath: '/en/about' }) // true
122
+ * isLinkActive({ targetPath: '/about', currentPath: '/fr/about' }) // true
117
123
  *
118
- * // Partial match
119
- * isLinkActive({ path: '/blog', currentPath: '/blog/post-1', exact: false }) // true
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
- path,
136
+ targetPath,
124
137
  currentPath,
125
138
  locales,
126
139
  exact
127
140
  }: {
128
- path: string;
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-NBY7C4F1.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};
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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sohanemon/utils",
3
- "version": "7.2.9",
3
+ "version": "7.3.1",
4
4
  "author": "Sohan Emon <sohanemon@outlook.com>",
5
5
  "description": "",
6
6
  "type": "module",