@sohanemon/utils 6.3.9 → 6.4.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/README.md CHANGED
@@ -354,7 +354,7 @@ useWindowEvent<K extends keyof WindowEventMap>(
354
354
  options?: boolean | AddEventListenerOptions
355
355
  ): void
356
356
 
357
- useQuerySelector<T extends Element>(selector: string): T | null
357
+ useQuerySelector<T extends Element>(selector: string | React.RefObject<T | null>): T | null
358
358
 
359
359
  useIsClient(): boolean
360
360
 
@@ -1 +1 @@
1
- "use client";const e=require(`../hooks-B_cvGdEl.cjs`),t=require(`../functions-RGYSp3WG.cjs`);let n=require(`react`);n=e.D(n);let r=require(`react/jsx-runtime`),i=require(`@iconify/react`);function a({className:e,html:i,sanitize:a=!1,executeScripts:o=!0,...s}){let c=n.useRef([]),l=n.useRef(null);n.useEffect(()=>{if(c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),c.current=[],!(!o||!i))try{let e=document.createElement(`div`);e.innerHTML=i,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)}},[i,o]),n.useEffect(()=>()=>{c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)})},[]);let u=n.useMemo(()=>{if(!i)return``;if(a){let e=document.createElement(`div`);e.innerHTML=i,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 i},[i,a]);return i?(0,r.jsx)(`div`,{ref:l,className:t.a(e),dangerouslySetInnerHTML:{__html:u},...s}):null}function o({breakpoint:t,as:i=`div`,fallback:a=n.Fragment,classNameFallback:o,className:s,...c}){let l=e.m(t.split(`-`).pop())===t.startsWith(`max`);return(0,r.jsx)(l?a:i,{className:l?o:s,...c})}const s=({side:e,offset:i=2,unit:a=`px`})=>{let[o,s]=n.useState(t.m?0:window.innerWidth),c=[`bottom-left`,`bottom-right`,`top-right`,`top-left`],l={"bottom-left":e=>({bottom:`${e}rem`,left:`${e}rem`}),"bottom-right":e=>({bottom:`${e}rem`,right:`${e}rem`}),"top-right":e=>({top:`${e}rem`,right:`${e}rem`}),"top-left":e=>({top:`${e}rem`,left:`${e}rem`})},u=e||`bottom-left`,[d,f]=n.useState(u);n.useEffect(()=>{let e=()=>{s(window.innerWidth)};return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]);let p=()=>{f(c[(c.indexOf(d)+1)%c.length])},m=``;m=o<640?`xs`:o>=640&&o<768?`sm`:o>=768&&o<1024?`md`:o>=1024&&o<1280?`lg`:o>=1280&&o<1536?`xl`:o>=1536&&o<1792?`2xl`:a===`rem`?`${(o/16).toFixed(1)}rem`:`${o}${a}`;let h={position:`fixed`,zIndex:50,display:`grid`,minHeight:`2.5rem`,minWidth:`2.5rem`,borderRadius:`30px`,placeContent:`center`,backgroundColor:`#2d3748`,fontFamily:`Courier New, Courier, monospace`,fontSize:`1rem`,color:`#ffffff`,border:`2px solid #4a5568`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)`,padding:`0.5rem`,transition:`all 0.2s ease-in-out`,...l[d](i)};return process.env.NODE_ENV===`production`?null:(0,r.jsx)(`button`,{type:`button`,style:h,onClick:p,children:m})};function c(){return e.w(()=>{let e=document.body;if(!e)return;let t=e=>{let t=getComputedStyle(e);if(t.overflow===`hidden`&&t.overflowY===`hidden`&&t.overflowX===`hidden`)return!1;let n=(t.overflowY===`auto`||t.overflowY===`scroll`)&&e.scrollHeight>e.clientHeight,r=(t.overflowX===`auto`||t.overflowX===`scroll`)&&e.scrollWidth>e.clientWidth;return n||r},n=e=>{t(e)?e.dataset.scrollable=`true`:delete e.dataset.scrollable},r=e=>{n(e);for(let t=0;t<e.children.length;t++){let n=e.children[t];r(n)}};requestIdleCallback(()=>r(e));let i=new MutationObserver(e=>{for(let t of e)t.type===`childList`?t.addedNodes.forEach(e=>{e instanceof HTMLElement&&r(e)}):t.type===`attributes`&&t.target instanceof HTMLElement&&n(t.target)});return i.observe(e,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`style`,`class`]}),()=>i.disconnect()},[]),null}exports.HtmlInjector=a,Object.defineProperty(exports,`Iconify`,{enumerable:!0,get:function(){return i.Icon}}),exports.MediaWrapper=o,exports.ResponsiveIndicator=s,exports.TailwindIndicator=s,exports.ScrollTracker=e.S,exports.ScrollableMarker=c;
1
+ "use client";const e=require(`../hooks-BLpQegFa.cjs`),t=require(`../functions-D2KKIJqd.cjs`);let n=require(`react`);n=e.D(n);let r=require(`react/jsx-runtime`),i=require(`@iconify/react`);function a({className:i,html:a,sanitize:o=!1,executeScripts:s=!0,...c}){let l=n.useRef([]),u=n.useRef(null);e.E(()=>{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.a(i),dangerouslySetInnerHTML:{__html:d},...c}):null}function o({breakpoint:t,as:i=`div`,fallback:a=n.Fragment,className:o,classNameFallback:s,...c}){let l=e.m(t.split(`-`).pop())===t.startsWith(`max`);return(0,r.jsx)(l?a:i,{className:l?s:o,...c})}const s=({side:e,offset:i=2,unit:a=`px`})=>{let[o,s]=n.useState(t.m?0:window.innerWidth),c=[`bottom-left`,`bottom-right`,`top-right`,`top-left`],l={"bottom-left":e=>({bottom:`${e}rem`,left:`${e}rem`}),"bottom-right":e=>({bottom:`${e}rem`,right:`${e}rem`}),"top-right":e=>({top:`${e}rem`,right:`${e}rem`}),"top-left":e=>({top:`${e}rem`,left:`${e}rem`})},u=e||`bottom-left`,[d,f]=n.useState(u);n.useEffect(()=>{let e=()=>{s(window.innerWidth)};return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]);let p=()=>{f(c[(c.indexOf(d)+1)%c.length])},m=``;m=o<640?`xs`:o>=640&&o<768?`sm`:o>=768&&o<1024?`md`:o>=1024&&o<1280?`lg`:o>=1280&&o<1536?`xl`:o>=1536&&o<1792?`2xl`:a===`rem`?`${(o/16).toFixed(1)}rem`:`${o}${a}`;let h={position:`fixed`,zIndex:50,display:`grid`,minHeight:`2.5rem`,minWidth:`2.5rem`,borderRadius:`30px`,placeContent:`center`,backgroundColor:`#2d3748`,fontFamily:`Courier New, Courier, monospace`,fontSize:`1rem`,color:`#ffffff`,border:`2px solid #4a5568`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)`,padding:`0.5rem`,transition:`all 0.2s ease-in-out`,...l[d](i)};return process.env.NODE_ENV===`production`?null:(0,r.jsx)(`button`,{type:`button`,style:h,onClick:p,children:m})};function c(){return e.E(()=>{let e=document.body;if(!e)return;let t=e=>{let t=getComputedStyle(e);if(t.overflow===`hidden`&&t.overflowY===`hidden`&&t.overflowX===`hidden`)return!1;let n=(t.overflowY===`auto`||t.overflowY===`scroll`)&&e.scrollHeight>e.clientHeight,r=(t.overflowX===`auto`||t.overflowX===`scroll`)&&e.scrollWidth>e.clientWidth;return n||r},n=e=>{t(e)?e.dataset.scrollable=`true`:delete e.dataset.scrollable},r=e=>{n(e);for(let t=0;t<e.children.length;t++){let n=e.children[t];r(n)}};requestIdleCallback(()=>r(e));let i=new MutationObserver(e=>{for(let t of e)t.type===`childList`?t.addedNodes.forEach(e=>{e instanceof HTMLElement&&r(e)}):t.type===`attributes`&&t.target instanceof HTMLElement&&n(t.target)});return i.observe(e,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`style`,`class`]}),()=>i.disconnect()},[]),null}exports.HtmlInjector=a,Object.defineProperty(exports,`Iconify`,{enumerable:!0,get:function(){return i.Icon}}),exports.MediaWrapper=o,exports.ResponsiveIndicator=s,exports.TailwindIndicator=s,exports.ScrollTracker=e.S,exports.ScrollableMarker=c;
@@ -59,40 +59,136 @@ declare function HtmlInjector({
59
59
  }: HtmlInjectorProps): react_jsx_runtime0.JSX.Element | null;
60
60
  //#endregion
61
61
  //#region src/components/media-wrapper.d.ts
62
+ /**
63
+ * Supported Tailwind CSS breakpoints for the MediaWrapper component.
64
+ */
62
65
  type BreakPoints = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'max-sm' | 'max-md' | 'max-lg' | 'max-xl' | 'max-2xl';
66
+ /**
67
+ * Props for the MediaWrapper component.
68
+ */
63
69
  type MediaWrapperProps = React.ComponentProps<'div'> & {
70
+ /** The breakpoint at which to switch between the main component and fallback. */
64
71
  breakpoint: BreakPoints;
72
+ /** The component to render when the breakpoint matches. Defaults to 'div'. */
65
73
  as?: React.ElementType;
74
+ /** The component to render when the breakpoint doesn't match. Defaults to React.Fragment. */
66
75
  fallback?: React.ElementType;
76
+ /** Class name to apply to the fallback component. */
67
77
  classNameFallback?: string;
68
78
  };
79
+ /**
80
+ * Conditionally renders different components based on Tailwind CSS breakpoints.
81
+ *
82
+ * Renders the main component when the viewport matches the specified breakpoint,
83
+ * otherwise renders the fallback component. Useful for responsive component switching.
84
+ *
85
+ * @param props - The component props
86
+ * @returns The appropriate component based on the current breakpoint
87
+ *
88
+ * @example
89
+ * ```tsx
90
+ * // Show different content on mobile vs desktop
91
+ * <MediaWrapper breakpoint="md" as="article" fallback="aside">
92
+ * <p>This shows on medium screens and up</p>
93
+ * </MediaWrapper>
94
+ *
95
+ * // Use max-breakpoint for "up to" behavior
96
+ * <MediaWrapper breakpoint="max-lg" as="nav" fallback="div">
97
+ * <ul>Horizontal nav on large screens</ul>
98
+ * </MediaWrapper>
99
+ * ```
100
+ */
69
101
  declare function MediaWrapper({
70
102
  breakpoint,
71
103
  as,
72
104
  fallback,
73
- classNameFallback,
74
105
  className: classNameOriginal,
106
+ classNameFallback,
75
107
  ...props
76
108
  }: MediaWrapperProps): react_jsx_runtime0.JSX.Element;
77
109
  //#endregion
78
110
  //#region src/components/responsive-indicator.d.ts
79
111
  type Side = 'bottom-left' | 'bottom-right' | 'top-right' | 'top-left';
112
+ /**
113
+ * Props for the ResponsiveIndicator component.
114
+ */
80
115
  interface ResponsiveIndicatorProps {
116
+ /** The corner position of the indicator. Defaults to 'bottom-left'. */
81
117
  side?: Side;
118
+ /** Offset from the corner in the specified unit. Defaults to 2. */
82
119
  offset?: number;
120
+ /** Unit for the offset. Defaults to 'px'. */
83
121
  unit?: 'px' | 'rem';
84
122
  }
123
+ /**
124
+ * A development-only component that displays the current Tailwind CSS breakpoint.
125
+ *
126
+ * Shows the current viewport size as a small indicator in one of the corners.
127
+ * Automatically hides in production builds. Useful for responsive development.
128
+ *
129
+ * @param props - The component props
130
+ * @returns A positioned indicator showing current breakpoint, or null in production
131
+ *
132
+ * @example
133
+ * ```tsx
134
+ * // Shows current breakpoint in bottom-left corner
135
+ * <ResponsiveIndicator />
136
+ *
137
+ * // Shows in top-right with custom offset
138
+ * <ResponsiveIndicator side="top-right" offset={1} unit="rem" />
139
+ * ```
140
+ */
85
141
  declare const ResponsiveIndicator: React.FC<ResponsiveIndicatorProps>;
86
142
  //#endregion
87
143
  //#region src/components/scroll-tracker.d.ts
144
+ /**
145
+ * Props for the ScrollTracker component.
146
+ */
88
147
  interface ScrollTrackerProps {
148
+ /** The child elements to render within the scrollable container. */
89
149
  children: React.ReactNode;
90
150
  }
151
+ /**
152
+ * A component that provides a scrollable container and context for scroll tracking.
153
+ *
154
+ * Wraps children in a scrollable div and provides a context with a ref to the container.
155
+ * Useful for components that need to track scroll position or attach scroll listeners.
156
+ *
157
+ * @param props - The component props
158
+ * @returns A scrollable container with context provider
159
+ *
160
+ * @example
161
+ * ```tsx
162
+ * <ScrollTracker>
163
+ * <div>Scrollable content</div>
164
+ * </ScrollTracker>
165
+ * ```
166
+ */
91
167
  declare const ScrollTracker: ({
92
168
  children
93
169
  }: ScrollTrackerProps) => react_jsx_runtime0.JSX.Element;
94
170
  //#endregion
95
171
  //#region src/components/scrollable-marker.d.ts
172
+ /**
173
+ * A component that automatically marks scrollable elements with a data attribute.
174
+ *
175
+ * Monitors the DOM for elements that can scroll and adds `data-scrollable="true"`
176
+ * attribute to them. Useful for styling scrollable elements or applying scroll-specific behavior.
177
+ * Uses MutationObserver to handle dynamic content changes.
178
+ *
179
+ * @returns null (invisible component that manages scrollable element detection)
180
+ *
181
+ * @example
182
+ * ```tsx
183
+ * // Include once in your app to mark all scrollable elements
184
+ * <ScrollableMarker />
185
+ *
186
+ * // Then style scrollable elements in CSS
187
+ * [data-scrollable="true"] {
188
+ * border: 1px solid blue;
189
+ * }
190
+ * ```
191
+ */
96
192
  declare function ScrollableMarker(): null;
97
193
  //#endregion
98
194
  export { HtmlInjector, Iconify, MediaWrapper, ResponsiveIndicator, ResponsiveIndicator as TailwindIndicator, ScrollTracker, ScrollableMarker };
@@ -59,40 +59,136 @@ declare function HtmlInjector({
59
59
  }: HtmlInjectorProps): react_jsx_runtime0.JSX.Element | null;
60
60
  //#endregion
61
61
  //#region src/components/media-wrapper.d.ts
62
+ /**
63
+ * Supported Tailwind CSS breakpoints for the MediaWrapper component.
64
+ */
62
65
  type BreakPoints = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'max-sm' | 'max-md' | 'max-lg' | 'max-xl' | 'max-2xl';
66
+ /**
67
+ * Props for the MediaWrapper component.
68
+ */
63
69
  type MediaWrapperProps = React.ComponentProps<'div'> & {
70
+ /** The breakpoint at which to switch between the main component and fallback. */
64
71
  breakpoint: BreakPoints;
72
+ /** The component to render when the breakpoint matches. Defaults to 'div'. */
65
73
  as?: React.ElementType;
74
+ /** The component to render when the breakpoint doesn't match. Defaults to React.Fragment. */
66
75
  fallback?: React.ElementType;
76
+ /** Class name to apply to the fallback component. */
67
77
  classNameFallback?: string;
68
78
  };
79
+ /**
80
+ * Conditionally renders different components based on Tailwind CSS breakpoints.
81
+ *
82
+ * Renders the main component when the viewport matches the specified breakpoint,
83
+ * otherwise renders the fallback component. Useful for responsive component switching.
84
+ *
85
+ * @param props - The component props
86
+ * @returns The appropriate component based on the current breakpoint
87
+ *
88
+ * @example
89
+ * ```tsx
90
+ * // Show different content on mobile vs desktop
91
+ * <MediaWrapper breakpoint="md" as="article" fallback="aside">
92
+ * <p>This shows on medium screens and up</p>
93
+ * </MediaWrapper>
94
+ *
95
+ * // Use max-breakpoint for "up to" behavior
96
+ * <MediaWrapper breakpoint="max-lg" as="nav" fallback="div">
97
+ * <ul>Horizontal nav on large screens</ul>
98
+ * </MediaWrapper>
99
+ * ```
100
+ */
69
101
  declare function MediaWrapper({
70
102
  breakpoint,
71
103
  as,
72
104
  fallback,
73
- classNameFallback,
74
105
  className: classNameOriginal,
106
+ classNameFallback,
75
107
  ...props
76
108
  }: MediaWrapperProps): react_jsx_runtime0.JSX.Element;
77
109
  //#endregion
78
110
  //#region src/components/responsive-indicator.d.ts
79
111
  type Side = 'bottom-left' | 'bottom-right' | 'top-right' | 'top-left';
112
+ /**
113
+ * Props for the ResponsiveIndicator component.
114
+ */
80
115
  interface ResponsiveIndicatorProps {
116
+ /** The corner position of the indicator. Defaults to 'bottom-left'. */
81
117
  side?: Side;
118
+ /** Offset from the corner in the specified unit. Defaults to 2. */
82
119
  offset?: number;
120
+ /** Unit for the offset. Defaults to 'px'. */
83
121
  unit?: 'px' | 'rem';
84
122
  }
123
+ /**
124
+ * A development-only component that displays the current Tailwind CSS breakpoint.
125
+ *
126
+ * Shows the current viewport size as a small indicator in one of the corners.
127
+ * Automatically hides in production builds. Useful for responsive development.
128
+ *
129
+ * @param props - The component props
130
+ * @returns A positioned indicator showing current breakpoint, or null in production
131
+ *
132
+ * @example
133
+ * ```tsx
134
+ * // Shows current breakpoint in bottom-left corner
135
+ * <ResponsiveIndicator />
136
+ *
137
+ * // Shows in top-right with custom offset
138
+ * <ResponsiveIndicator side="top-right" offset={1} unit="rem" />
139
+ * ```
140
+ */
85
141
  declare const ResponsiveIndicator: React.FC<ResponsiveIndicatorProps>;
86
142
  //#endregion
87
143
  //#region src/components/scroll-tracker.d.ts
144
+ /**
145
+ * Props for the ScrollTracker component.
146
+ */
88
147
  interface ScrollTrackerProps {
148
+ /** The child elements to render within the scrollable container. */
89
149
  children: React.ReactNode;
90
150
  }
151
+ /**
152
+ * A component that provides a scrollable container and context for scroll tracking.
153
+ *
154
+ * Wraps children in a scrollable div and provides a context with a ref to the container.
155
+ * Useful for components that need to track scroll position or attach scroll listeners.
156
+ *
157
+ * @param props - The component props
158
+ * @returns A scrollable container with context provider
159
+ *
160
+ * @example
161
+ * ```tsx
162
+ * <ScrollTracker>
163
+ * <div>Scrollable content</div>
164
+ * </ScrollTracker>
165
+ * ```
166
+ */
91
167
  declare const ScrollTracker: ({
92
168
  children
93
169
  }: ScrollTrackerProps) => react_jsx_runtime0.JSX.Element;
94
170
  //#endregion
95
171
  //#region src/components/scrollable-marker.d.ts
172
+ /**
173
+ * A component that automatically marks scrollable elements with a data attribute.
174
+ *
175
+ * Monitors the DOM for elements that can scroll and adds `data-scrollable="true"`
176
+ * attribute to them. Useful for styling scrollable elements or applying scroll-specific behavior.
177
+ * Uses MutationObserver to handle dynamic content changes.
178
+ *
179
+ * @returns null (invisible component that manages scrollable element detection)
180
+ *
181
+ * @example
182
+ * ```tsx
183
+ * // Include once in your app to mark all scrollable elements
184
+ * <ScrollableMarker />
185
+ *
186
+ * // Then style scrollable elements in CSS
187
+ * [data-scrollable="true"] {
188
+ * border: 1px solid blue;
189
+ * }
190
+ * ```
191
+ */
96
192
  declare function ScrollableMarker(): null;
97
193
  //#endregion
98
194
  export { HtmlInjector, Iconify, MediaWrapper, ResponsiveIndicator, ResponsiveIndicator as TailwindIndicator, ScrollTracker, ScrollableMarker };
@@ -1 +1 @@
1
- "use client";import{a as e,m as t}from"../functions-DdPaJAsm.js";import{S as n,m as r,w as i}from"../hooks-qAybqDks.js";import*as a from"react";import{jsx as o}from"react/jsx-runtime";import{Icon as s}from"@iconify/react";function c({className:t,html:n,sanitize:r=!1,executeScripts:i=!0,...s}){let c=a.useRef([]),l=a.useRef(null);a.useEffect(()=>{if(c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),c.current=[],!(!i||!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,i]),a.useEffect(()=>()=>{c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)})},[]);let u=a.useMemo(()=>{if(!n)return``;if(r){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,r]);return n?o(`div`,{ref:l,className:e(t),dangerouslySetInnerHTML:{__html:u},...s}):null}function l({breakpoint:e,as:t=`div`,fallback:n=a.Fragment,classNameFallback:i,className:s,...c}){let l=r(e.split(`-`).pop())===e.startsWith(`max`);return o(l?n:t,{className:l?i:s,...c})}const u=({side:e,offset:n=2,unit:r=`px`})=>{let[i,s]=a.useState(t?0:window.innerWidth),c=[`bottom-left`,`bottom-right`,`top-right`,`top-left`],l={"bottom-left":e=>({bottom:`${e}rem`,left:`${e}rem`}),"bottom-right":e=>({bottom:`${e}rem`,right:`${e}rem`}),"top-right":e=>({top:`${e}rem`,right:`${e}rem`}),"top-left":e=>({top:`${e}rem`,left:`${e}rem`})},u=e||`bottom-left`,[d,f]=a.useState(u);a.useEffect(()=>{let e=()=>{s(window.innerWidth)};return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]);let p=()=>{f(c[(c.indexOf(d)+1)%c.length])},m=``;m=i<640?`xs`:i>=640&&i<768?`sm`:i>=768&&i<1024?`md`:i>=1024&&i<1280?`lg`:i>=1280&&i<1536?`xl`:i>=1536&&i<1792?`2xl`:r===`rem`?`${(i/16).toFixed(1)}rem`:`${i}${r}`;let h={position:`fixed`,zIndex:50,display:`grid`,minHeight:`2.5rem`,minWidth:`2.5rem`,borderRadius:`30px`,placeContent:`center`,backgroundColor:`#2d3748`,fontFamily:`Courier New, Courier, monospace`,fontSize:`1rem`,color:`#ffffff`,border:`2px solid #4a5568`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)`,padding:`0.5rem`,transition:`all 0.2s ease-in-out`,...l[d](n)};return process.env.NODE_ENV===`production`?null:o(`button`,{type:`button`,style:h,onClick:p,children:m})};function d(){return i(()=>{let e=document.body;if(!e)return;let t=e=>{let t=getComputedStyle(e);if(t.overflow===`hidden`&&t.overflowY===`hidden`&&t.overflowX===`hidden`)return!1;let n=(t.overflowY===`auto`||t.overflowY===`scroll`)&&e.scrollHeight>e.clientHeight,r=(t.overflowX===`auto`||t.overflowX===`scroll`)&&e.scrollWidth>e.clientWidth;return n||r},n=e=>{t(e)?e.dataset.scrollable=`true`:delete e.dataset.scrollable},r=e=>{n(e);for(let t=0;t<e.children.length;t++){let n=e.children[t];r(n)}};requestIdleCallback(()=>r(e));let i=new MutationObserver(e=>{for(let t of e)t.type===`childList`?t.addedNodes.forEach(e=>{e instanceof HTMLElement&&r(e)}):t.type===`attributes`&&t.target instanceof HTMLElement&&n(t.target)});return i.observe(e,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`style`,`class`]}),()=>i.disconnect()},[]),null}export{c as HtmlInjector,s as Iconify,l as MediaWrapper,u as ResponsiveIndicator,u as TailwindIndicator,n as ScrollTracker,d as ScrollableMarker};
1
+ "use client";import{a as e,m as t}from"../functions-DdPaJAsm.js";import{E as n,S as r,m as i}from"../hooks-CjfNonIh.js";import*as a from"react";import{jsx as o}from"react/jsx-runtime";import{Icon as s}from"@iconify/react";function c({className:t,html:r,sanitize:i=!1,executeScripts:s=!0,...c}){let l=a.useRef([]),u=a.useRef(null);n(()=>{if(l.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),l.current=[],!(!s||!r))try{let e=document.createElement(`div`);e.innerHTML=r,e.querySelectorAll(`script`).forEach(e=>{let t=document.createElement(`script`);e.textContent&&(t.textContent=e.textContent),Array.from(e.attributes).forEach(e=>{t.setAttribute(e.name,e.value)}),t.onerror=e=>{console.error(`Script injection error:`,e)},document.body.appendChild(t),l.current.push(t)})}catch(e){console.error(`HTML injection error:`,e)}},[r,s]),a.useEffect(()=>()=>{l.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)})},[]);let d=a.useMemo(()=>{if(!r)return``;if(i){let e=document.createElement(`div`);e.innerHTML=r,e.querySelectorAll(`script`).forEach(e=>e.remove());let t=[`onclick`,`onload`,`onerror`,`onmouseover`];return e.querySelectorAll(`*`).forEach(e=>{t.forEach(t=>{e.hasAttribute(t)&&e.removeAttribute(t)})}),e.innerHTML}return r},[r,i]);return r?o(`div`,{ref:u,className:e(t),dangerouslySetInnerHTML:{__html:d},...c}):null}function l({breakpoint:e,as:t=`div`,fallback:n=a.Fragment,className:r,classNameFallback:s,...c}){let l=i(e.split(`-`).pop())===e.startsWith(`max`);return o(l?n:t,{className:l?s:r,...c})}const u=({side:e,offset:n=2,unit:r=`px`})=>{let[i,s]=a.useState(t?0:window.innerWidth),c=[`bottom-left`,`bottom-right`,`top-right`,`top-left`],l={"bottom-left":e=>({bottom:`${e}rem`,left:`${e}rem`}),"bottom-right":e=>({bottom:`${e}rem`,right:`${e}rem`}),"top-right":e=>({top:`${e}rem`,right:`${e}rem`}),"top-left":e=>({top:`${e}rem`,left:`${e}rem`})},u=e||`bottom-left`,[d,f]=a.useState(u);a.useEffect(()=>{let e=()=>{s(window.innerWidth)};return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]);let p=()=>{f(c[(c.indexOf(d)+1)%c.length])},m=``;m=i<640?`xs`:i>=640&&i<768?`sm`:i>=768&&i<1024?`md`:i>=1024&&i<1280?`lg`:i>=1280&&i<1536?`xl`:i>=1536&&i<1792?`2xl`:r===`rem`?`${(i/16).toFixed(1)}rem`:`${i}${r}`;let h={position:`fixed`,zIndex:50,display:`grid`,minHeight:`2.5rem`,minWidth:`2.5rem`,borderRadius:`30px`,placeContent:`center`,backgroundColor:`#2d3748`,fontFamily:`Courier New, Courier, monospace`,fontSize:`1rem`,color:`#ffffff`,border:`2px solid #4a5568`,boxShadow:`0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)`,padding:`0.5rem`,transition:`all 0.2s ease-in-out`,...l[d](n)};return process.env.NODE_ENV===`production`?null:o(`button`,{type:`button`,style:h,onClick:p,children:m})};function d(){return n(()=>{let e=document.body;if(!e)return;let t=e=>{let t=getComputedStyle(e);if(t.overflow===`hidden`&&t.overflowY===`hidden`&&t.overflowX===`hidden`)return!1;let n=(t.overflowY===`auto`||t.overflowY===`scroll`)&&e.scrollHeight>e.clientHeight,r=(t.overflowX===`auto`||t.overflowX===`scroll`)&&e.scrollWidth>e.clientWidth;return n||r},n=e=>{t(e)?e.dataset.scrollable=`true`:delete e.dataset.scrollable},r=e=>{n(e);for(let t=0;t<e.children.length;t++){let n=e.children[t];r(n)}};requestIdleCallback(()=>r(e));let i=new MutationObserver(e=>{for(let t of e)t.type===`childList`?t.addedNodes.forEach(e=>{e instanceof HTMLElement&&r(e)}):t.type===`attributes`&&t.target instanceof HTMLElement&&n(t.target)});return i.observe(e,{subtree:!0,childList:!0,attributes:!0,attributeFilter:[`style`,`class`]}),()=>i.disconnect()},[]),null}export{c as HtmlInjector,s as Iconify,l as MediaWrapper,u as ResponsiveIndicator,u as TailwindIndicator,r as ScrollTracker,d as ScrollableMarker};
@@ -1 +1 @@
1
- const e=require(`./hooks-B_cvGdEl.cjs`);let t=require(`clsx`),n=require(`tailwind-merge`);const r=(e,t,n,r=`/`)=>{let i=``;if(n){let e=new Date;e.setTime(e.getTime()+n*24*60*60*1e3),i=`; expires=${e.toUTCString()}`}document.cookie=`${e}=${t||``}${i}; path=${r}`},i=(e,t=`/`)=>{document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`},a=e=>document.cookie.split(`; `).some(t=>t.startsWith(`${e}=`)),o=e=>({value:document.cookie.split(`; `).find(t=>t.startsWith(`${e}=`))?.split(`=`)[1]}),s=e=>!e,c=e=>e==null,l=e=>{if(e==null)return!0;switch(typeof e){case`string`:case`number`:case`bigint`:case`boolean`:case`symbol`:return!0;default:return!1}};function u(e){if(typeof e!=`object`||!e||Object.prototype.toString.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function d(e,...t){let n,r={},i=t[t.length-1];i&&typeof i==`object`&&!Array.isArray(i)&&(i.arrayMerge!==void 0||i.clone!==void 0||i.customMerge!==void 0||i.maxDepth!==void 0)?(r={...r,...i},n=t.slice(0,-1)):n=t;let{arrayMerge:a=`replace`,clone:o=!0,customMerge:s,maxDepth:c=100}=r,l=new WeakMap;return d(e,n,0);function d(e,t,n){if(n>=c)return console.warn(`[deepmerge] Maximum depth ${c} exceeded. Returning target as-is.`),e;if(!u(e)&&!Array.isArray(e)){for(let e of t)if(e!==void 0)return e;return e}let r=o?Array.isArray(e)?[...e]:{...e}:e;for(let e of t)if(e!=null&&!l.has(e))if(l.set(e,r),Array.isArray(r)&&Array.isArray(e))r=f(r,e,a);else if(u(r)&&u(e)){let t=new Set([...Object.keys(r),...Object.keys(e),...Object.getOwnPropertySymbols(r),...Object.getOwnPropertySymbols(e)]);for(let i of t){let t=r[i],o=e[i];s&&s(i,t,o)!==void 0?r[i]=s(i,t,o):u(t)&&u(o)?r[i]=d(t,[o],n+1):Array.isArray(t)&&Array.isArray(o)?r[i]=f(t,o,a):o!==void 0&&(r[i]=o)}}else r=e;return r}function f(e,t,n){if(typeof n==`function`)return n(e,t);switch(n){case`concat`:return[...e,...t];case`merge`:let n=Math.max(e.length,t.length),r=[];for(let i=0;i<n;i++)i<e.length&&i<t.length?u(e[i])&&u(t[i])?r[i]=d(e[i],[t[i]],0):r[i]=t[i]:i<e.length?r[i]=e[i]:r[i]=t[i];return r;case`replace`:default:return[...t]}}}function f(e){return p(e)}function p(e){if(e!==null){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(p);if(u(e)){let t={};for(let n in e)t[n]=p(e[n]);return t}return e}}function m(e,t,n){if(typeof t!=`string`&&!Array.isArray(t))return n;let r=(()=>Array.isArray(t)?t:t===``?[]:String(t).split(`.`).filter(e=>e!==``))();if(!Array.isArray(r))return n;let i=e;for(let e of r){if(i==null)return n;let t=typeof e==`string`&&Array.isArray(i)&&/^\d+$/.test(e)?Number.parseInt(e,10):e;i=i[t]}return i===void 0?n:i}function h(e,t){return Object.assign(e,t)}function g(...e){return(0,n.twMerge)((0,t.clsx)(e))}function _(e,t){return console.warn(`isNavActive is deprecated. Use isLinkActive instead.`),RegExp(`^/?${e}(/|$)`).test(t)}function v({path:e,currentPath:t,locales:n=[`en`,`es`,`de`,`zh`,`bn`,`fr`,`it`,`nl`],exact:r=!0}){let i=RegExp(`^/?(${n.join(`|`)})/`),a=e=>e.replace(i,``).replace(/^\/+|\/+$/g,``),o=a(e),s=a(t);return r?o===s:s.startsWith(o)}function y(e){let t=e;return e.includes(`/public/`)&&(t=e.replace(`/public/`,`/`)),t.trim()}const b=(e,t)=>{let n;if(typeof e==`string`)n=document.querySelector(e);else if(e.current)n=e.current;else return;n&&n.scrollTo({top:t===`top`?0:n.scrollHeight-n.clientHeight,behavior:`smooth`})},x=(e,t=()=>{})=>{typeof window>`u`||!navigator.clipboard?.writeText||e&&navigator.clipboard.writeText(e).then(t)};function S(e){return(e.split(`.`).pop()||e).replace(/([a-z])([A-Z])/g,`$1 $2`).split(/[-_|�\s]+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}const C=`àáãäâèéëêìíïîòóöôùúüûñç·/_,:;`,w=`aaaaaeeeeiiiioooouuuunc------`,T=e=>{if(typeof e!=`string`)throw TypeError(`Input must be a string`);let t=e.trim().toLowerCase(),n={};for(let e=0;e<29;e++)n[C.charAt(e)]=`aaaaaeeeeiiiioooouuuunc------`.charAt(e);return t=t.replace(RegExp(`[${C}]`,`g`),e=>n[e]||e),t.replace(/[^a-z0-9 -]/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-+/,``).replace(/-+$/,``)||``},E=typeof window>`u`,D=e=>E?Buffer.from(e).toString(`base64`):window.btoa(e),O=(e=1e3,t)=>new Promise(n=>{if(t?.aborted)return n();let r=setTimeout(()=>{a(),n()},e);function i(){clearTimeout(r),a(),n()}function a(){t?.removeEventListener(`abort`,i)}t&&t.addEventListener(`abort`,i,{once:!0})});function k(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.immediate??!1,i,a,o,s;function c(){return s=e.apply(o,a),a=void 0,o=void 0,s}let l=function(...e){return a=e,o=this,i===void 0&&r&&(s=c.call(this)),i!==void 0&&clearTimeout(i),i=setTimeout(c.bind(this),t),s};return Object.defineProperty(l,`isPending`,{get(){return i!==void 0}}),l}function A(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.leading??!0,i=n?.trailing??!0,a,o,s,c,l;function u(){c=Date.now(),l=e.apply(s,o),o=void 0,s=void 0}function d(){a=void 0,i&&o&&u()}let f=function(...e){let n=c?Date.now()-c:1/0;return o=e,s=this,n>=t?r?u():a=setTimeout(d,t):!a&&i&&(a=setTimeout(d,t-n)),l};return Object.defineProperty(f,`isPending`,{get(){return a!==void 0}}),f}function j(e,...t){let n=t.length===1&&Array.isArray(t[0])?t[0]:t,r=0;return e.replace(/%s/g,()=>{let e=n[r++];return e===void 0?``:String(e)})}const M=(...e)=>t=>{for(let n of e)n&&(typeof n==`function`?n(t):n.current=t)};function N(e,t){let n=document.getElementById(e);n&&(n.scrollIntoView({behavior:`smooth`,block:`start`,...t}),window.history.pushState(null,``,`#${e}`))}function P(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function F(e,t={}){if(!e)return``;let{lowercase:n=!0,removeAccents:r=!0,removeNonAlphanumeric:i=!0}=t,a=e.normalize(`NFC`);return r&&(a=a.normalize(`NFD`).replace(/\p{M}/gu,``)),i&&(a=a.replace(/^[^\p{L}\p{N}]*|[^\p{L}\p{N}]*$/gu,``)),n&&(a=a.toLocaleLowerCase()),a}async function I(e,{interval:t=5e3,timeout:n=300*1e3,jitter:r=!0,signal:i}={}){let a=Date.now(),o=i?.aborted??!1,s=()=>{o=!0};i?.addEventListener(`abort`,s,{once:!0});try{for(let s=0;;s++){if(o)throw Error(`Polling aborted`);let s=await e();if(s)return s;if(Date.now()-a>=n)throw Error(`Polling timed out`,{cause:`Polling timed out after ${n}ms`});await O(r?t+(Math.random()-.5)*t*.2:t,i)}}catch(e){throw e}finally{i?.removeEventListener(`abort`,s)}}function L(e,t={}){let{retry:n=0,delay:r=0}=t,i=Date.now(),a=async t=>{try{await e();let t=Date.now()-i;console.log(`⚡[schedule.ts] Completed in ${t}ms`)}catch(e){if(console.log(`⚡[schedule.ts] err:`,e),t>0)console.log(`⚡[schedule.ts] Retrying in ${r}ms...`),setTimeout(()=>a(t-1),r);else{let e=Date.now()-i;console.log(`⚡[schedule.ts] Failed after ${e}ms`)}}};setTimeout(()=>a(n),0)}function R(e){if(e instanceof Promise)return e.then(e=>[null,e]).catch(e=>[e,null]);try{return[null,e()]}catch(t){return console.log(`\x1b[31m🛡 [shield]\x1b[0m ${e.name} failed →`,t),[t,null]}}Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return O}});
1
+ const e=require(`./hooks-BLpQegFa.cjs`);let t=require(`clsx`),n=require(`tailwind-merge`);const r=(e,t,n,r=`/`)=>{let i=``;if(n){let e=new Date;e.setTime(e.getTime()+n*24*60*60*1e3),i=`; expires=${e.toUTCString()}`}document.cookie=`${e}=${t||``}${i}; path=${r}`},i=(e,t=`/`)=>{document.cookie=`${e}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`},a=e=>document.cookie.split(`; `).some(t=>t.startsWith(`${e}=`)),o=e=>({value:document.cookie.split(`; `).find(t=>t.startsWith(`${e}=`))?.split(`=`)[1]}),s=e=>!e,c=e=>e==null,l=e=>{if(e==null)return!0;switch(typeof e){case`string`:case`number`:case`bigint`:case`boolean`:case`symbol`:return!0;default:return!1}};function u(e){if(typeof e!=`object`||!e||Object.prototype.toString.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function d(e,...t){let n,r={},i=t[t.length-1];i&&typeof i==`object`&&!Array.isArray(i)&&(i.arrayMerge!==void 0||i.clone!==void 0||i.customMerge!==void 0||i.maxDepth!==void 0)?(r={...r,...i},n=t.slice(0,-1)):n=t;let{arrayMerge:a=`replace`,clone:o=!0,customMerge:s,maxDepth:c=100}=r,l=new WeakMap;return d(e,n,0);function d(e,t,n){if(n>=c)return console.warn(`[deepmerge] Maximum depth ${c} exceeded. Returning target as-is.`),e;if(!u(e)&&!Array.isArray(e)){for(let e of t)if(e!==void 0)return e;return e}let r=o?Array.isArray(e)?[...e]:{...e}:e;for(let e of t)if(e!=null&&!l.has(e))if(l.set(e,r),Array.isArray(r)&&Array.isArray(e))r=f(r,e,a);else if(u(r)&&u(e)){let t=new Set([...Object.keys(r),...Object.keys(e),...Object.getOwnPropertySymbols(r),...Object.getOwnPropertySymbols(e)]);for(let i of t){let t=r[i],o=e[i];s&&s(i,t,o)!==void 0?r[i]=s(i,t,o):u(t)&&u(o)?r[i]=d(t,[o],n+1):Array.isArray(t)&&Array.isArray(o)?r[i]=f(t,o,a):o!==void 0&&(r[i]=o)}}else r=e;return r}function f(e,t,n){if(typeof n==`function`)return n(e,t);switch(n){case`concat`:return[...e,...t];case`merge`:let n=Math.max(e.length,t.length),r=[];for(let i=0;i<n;i++)i<e.length&&i<t.length?u(e[i])&&u(t[i])?r[i]=d(e[i],[t[i]],0):r[i]=t[i]:i<e.length?r[i]=e[i]:r[i]=t[i];return r;case`replace`:default:return[...t]}}}function f(e){return p(e)}function p(e){if(e!==null){if(typeof e!=`object`||!e)return e;if(Array.isArray(e))return e.map(p);if(u(e)){let t={};for(let n in e)t[n]=p(e[n]);return t}return e}}function m(e,t,n){if(typeof t!=`string`&&!Array.isArray(t))return n;let r=(()=>Array.isArray(t)?t:t===``?[]:String(t).split(`.`).filter(e=>e!==``))();if(!Array.isArray(r))return n;let i=e;for(let e of r){if(i==null)return n;let t=typeof e==`string`&&Array.isArray(i)&&/^\d+$/.test(e)?Number.parseInt(e,10):e;i=i[t]}return i===void 0?n:i}function h(e,t){return Object.assign(e,t)}function g(...e){return(0,n.twMerge)((0,t.clsx)(e))}function _(e,t){return console.warn(`isNavActive is deprecated. Use isLinkActive instead.`),RegExp(`^/?${e}(/|$)`).test(t)}function v({path:e,currentPath:t,locales:n=[`en`,`es`,`de`,`zh`,`bn`,`fr`,`it`,`nl`],exact:r=!0}){let i=RegExp(`^/?(${n.join(`|`)})/`),a=e=>e.replace(i,``).replace(/^\/+|\/+$/g,``),o=a(e),s=a(t);return r?o===s:s.startsWith(o)}function y(e){let t=e;return e.includes(`/public/`)&&(t=e.replace(`/public/`,`/`)),t.trim()}const b=(e,t)=>{let n;if(typeof e==`string`)n=document.querySelector(e);else if(e.current)n=e.current;else return;n&&n.scrollTo({top:t===`top`?0:n.scrollHeight-n.clientHeight,behavior:`smooth`})},x=(e,t=()=>{})=>{typeof window>`u`||!navigator.clipboard?.writeText||e&&navigator.clipboard.writeText(e).then(t)};function S(e){return(e.split(`.`).pop()||e).replace(/([a-z])([A-Z])/g,`$1 $2`).split(/[-_|�\s]+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}const C=`àáãäâèéëêìíïîòóöôùúüûñç·/_,:;`,w=`aaaaaeeeeiiiioooouuuunc------`,T=e=>{if(typeof e!=`string`)throw TypeError(`Input must be a string`);let t=e.trim().toLowerCase(),n={};for(let e=0;e<29;e++)n[C.charAt(e)]=`aaaaaeeeeiiiioooouuuunc------`.charAt(e);return t=t.replace(RegExp(`[${C}]`,`g`),e=>n[e]||e),t.replace(/[^a-z0-9 -]/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-+/,``).replace(/-+$/,``)||``},E=typeof window>`u`,D=e=>E?Buffer.from(e).toString(`base64`):window.btoa(e),O=(e=1e3,t)=>new Promise(n=>{if(t?.aborted)return n();let r=setTimeout(()=>{a(),n()},e);function i(){clearTimeout(r),a(),n()}function a(){t?.removeEventListener(`abort`,i)}t&&t.addEventListener(`abort`,i,{once:!0})});function k(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.immediate??!1,i,a,o,s;function c(){return s=e.apply(o,a),a=void 0,o=void 0,s}let l=function(...e){return a=e,o=this,i===void 0&&r&&(s=c.call(this)),i!==void 0&&clearTimeout(i),i=setTimeout(c.bind(this),t),s};return Object.defineProperty(l,`isPending`,{get(){return i!==void 0}}),l}function A(e,t=100,n){if(typeof e!=`function`)throw TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(t<0)throw RangeError("`wait` must not be negative.");let r=n?.leading??!0,i=n?.trailing??!0,a,o,s,c,l;function u(){c=Date.now(),l=e.apply(s,o),o=void 0,s=void 0}function d(){a=void 0,i&&o&&u()}let f=function(...e){let n=c?Date.now()-c:1/0;return o=e,s=this,n>=t?r?u():a=setTimeout(d,t):!a&&i&&(a=setTimeout(d,t-n)),l};return Object.defineProperty(f,`isPending`,{get(){return a!==void 0}}),f}function j(e,...t){let n=t.length===1&&Array.isArray(t[0])?t[0]:t,r=0;return e.replace(/%s/g,()=>{let e=n[r++];return e===void 0?``:String(e)})}const M=(...e)=>t=>{for(let n of e)n&&(typeof n==`function`?n(t):n.current=t)};function N(e,t){let n=document.getElementById(e);n&&(n.scrollIntoView({behavior:`smooth`,block:`start`,...t}),window.history.pushState(null,``,`#${e}`))}function P(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function F(e,t={}){if(!e)return``;let{lowercase:n=!0,removeAccents:r=!0,removeNonAlphanumeric:i=!0}=t,a=e.normalize(`NFC`);return r&&(a=a.normalize(`NFD`).replace(/\p{M}/gu,``)),i&&(a=a.replace(/^[^\p{L}\p{N}]*|[^\p{L}\p{N}]*$/gu,``)),n&&(a=a.toLocaleLowerCase()),a}async function I(e,{interval:t=5e3,timeout:n=300*1e3,jitter:r=!0,signal:i}={}){let a=Date.now(),o=i?.aborted??!1,s=()=>{o=!0};i?.addEventListener(`abort`,s,{once:!0});try{for(let s=0;;s++){if(o)throw Error(`Polling aborted`);let s=await e();if(s)return s;if(Date.now()-a>=n)throw Error(`Polling timed out`,{cause:`Polling timed out after ${n}ms`});await O(r?t+(Math.random()-.5)*t*.2:t,i)}}catch(e){throw e}finally{i?.removeEventListener(`abort`,s)}}function L(e,t={}){let{retry:n=0,delay:r=0}=t,i=Date.now(),a=async t=>{try{await e();let t=Date.now()-i;console.log(`⚡[schedule.ts] Completed in ${t}ms`)}catch(e){if(console.log(`⚡[schedule.ts] err:`,e),t>0)console.log(`⚡[schedule.ts] Retrying in ${r}ms...`),setTimeout(()=>a(t-1),r);else{let e=Date.now()-i;console.log(`⚡[schedule.ts] Failed after ${e}ms`)}}};setTimeout(()=>a(n),0)}function R(e){if(e instanceof Promise)return e.then(e=>[null,e]).catch(e=>[e,null]);try{return[null,e()]}catch(t){return console.log(`\x1b[31m🛡 [shield]\x1b[0m ${e.name} failed →`,t),[t,null]}}Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return O}});
@@ -1 +1 @@
1
- "use client";const e=require(`../hooks-B_cvGdEl.cjs`);require(`../functions-RGYSp3WG.cjs`),exports.useAction=e.E,exports.useAsync=e.T,exports.useClickOutside=e.t,exports.useCopyToClipboard=e.n,exports.useDebounce=e.r,exports.useDomCalculation=e.i,exports.useEffectOnce=e.a,exports.useHeightCalculation=e.o,exports.useIntersection=e.s,exports.useIsAtTop=e.c,exports.useIsClient=e.l,exports.useIsScrolling=e.u,exports.useIsomorphicEffect=e.d,exports.useLocalStorage=e.f,exports.useLockScroll=e.p,exports.useMediaQuery=e.m,exports.useQuerySelector=e.h,exports.useSchedule=e.C,exports.useScheduledEffect=e.w,exports.useScrollTracker=e.x,exports.useSessionStorage=e.g,exports.useTimeout=e._,exports.useUpdateEffect=e.v,exports.useUrlParams=e.y,exports.useWindowEvent=e.b;
1
+ "use client";const e=require(`../hooks-BLpQegFa.cjs`);require(`../functions-D2KKIJqd.cjs`),exports.useAction=e.w,exports.useAsync=e.C,exports.useClickOutside=e.t,exports.useCopyToClipboard=e.n,exports.useDebounce=e.r,exports.useDomCalculation=e.i,exports.useEffectOnce=e.a,exports.useHeightCalculation=e.o,exports.useIntersection=e.s,exports.useIsAtTop=e.c,exports.useIsClient=e.l,exports.useIsScrolling=e.u,exports.useIsomorphicEffect=e.d,exports.useLocalStorage=e.f,exports.useLockScroll=e.p,exports.useMediaQuery=e.m,exports.useQuerySelector=e.h,exports.useSchedule=e.T,exports.useScheduledEffect=e.E,exports.useScrollTracker=e.x,exports.useSessionStorage=e.g,exports.useTimeout=e._,exports.useUpdateEffect=e.v,exports.useUrlParams=e.y,exports.useWindowEvent=e.b;