@sohanemon/utils 6.3.1 → 6.3.2

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.
@@ -0,0 +1 @@
1
+ "use client";import{E as e,S as t,T as n,m as r}from"../hooks-hkNH7WgA.js";import*as i from"react";import{Icon as a}from"@iconify/react";import{jsx as o}from"react/jsx-runtime";function s({className:e,html:t,sanitize:r=!1,executeScripts:a=!0,...s}){let c=i.useRef([]),l=i.useRef(null);i.useEffect(()=>{if(c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),c.current=[],!(!a||!t))try{let e=document.createElement(`div`);e.innerHTML=t,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)}},[t,a]),i.useEffect(()=>()=>{c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)})},[]);let u=i.useMemo(()=>{if(!t)return``;if(r){let e=document.createElement(`div`);e.innerHTML=t,e.querySelectorAll(`script`).forEach(e=>e.remove());let n=[`onclick`,`onload`,`onerror`,`onmouseover`];return e.querySelectorAll(`*`).forEach(e=>{n.forEach(t=>{e.hasAttribute(t)&&e.removeAttribute(t)})}),e.innerHTML}return t},[t,r]);return t?o(`div`,{ref:l,className:n(e),dangerouslySetInnerHTML:{__html:u},...s}):null}function c({breakpoint:e,as:t=`div`,fallback:n=i.Fragment,classNameFallback:a,className:s,...c}){let l=r(e.split(`-`).pop())===e.startsWith(`max`);return o(l?n:t,{className:l?a:s,...c})}const l=()=>{let[t,n]=i.useState(e?0:window.innerWidth),[r,a]=i.useState(0);return i.useEffect(()=>{let e=()=>{n(window.innerWidth)};return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]),{...[{bottom:`2rem`,left:`2rem`},{bottom:`2rem`,right:`2rem`},{top:`2rem`,right:`2rem`},{top:`2rem`,left:`2rem`}][r]},null};function u(){return t(()=>{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{s as HtmlInjector,a as Iconify,c as MediaWrapper,l as ResponsiveIndicator,l as TailwindIndicator,u as ScrollableMarker};
@@ -0,0 +1 @@
1
+ "use client";import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,w as x,x as S,y as C}from"../hooks-hkNH7WgA.js";export{x as useAction,e as useAsync,v as useClickOutside,p as useCopyToClipboard,g as useDebounce,u as useDomCalculation,r as useEffectOnce,m as useHeightCalculation,_ as useIntersection,a as useIsAtTop,d as useIsClient,y as useIsScrolling,o as useIsomorphicEffect,s as useLocalStorage,h as useLockScroll,f as useMediaQuery,l as useQuerySelector,S as useSchedule,t as useScheduledEffect,c as useSessionStorage,n as useTimeout,b as useUpdateEffect,C as useUrlParams,i as useWindowEvent};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sohanemon/utils",
3
- "version": "6.3.1",
3
+ "version": "6.3.2",
4
4
  "author": "Sohan Emon <sohanemon@outlook.com>",
5
5
  "description": "",
6
6
  "type": "module",
@@ -12,10 +12,8 @@
12
12
  "main": "./dist/index.cjs",
13
13
  "module": "./dist/index.js",
14
14
  "exports": {
15
- ".": {
16
- "import": "./dist/index.js",
17
- "require": "./dist/index.cjs"
18
- },
15
+ "./components": "./dist/components/index.js",
16
+ "./hooks": "./dist/hooks/index.js",
19
17
  "./package.json": "./package.json"
20
18
  },
21
19
  "typesVersions": {
@@ -1 +0,0 @@
1
- "use client";import{E as e,S as t,T as n,m as r}from"./hooks-hkNH7WgA.js";import*as i from"react";import{Icon as a}from"@iconify/react";import{jsx as o}from"react/jsx-runtime";function s({className:e,html:t,sanitize:r=!1,executeScripts:a=!0,...s}){let c=i.useRef([]),l=i.useRef(null);i.useEffect(()=>{if(c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),c.current=[],!(!a||!t))try{let e=document.createElement(`div`);e.innerHTML=t,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)}},[t,a]),i.useEffect(()=>()=>{c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)})},[]);let u=i.useMemo(()=>{if(!t)return``;if(r){let e=document.createElement(`div`);e.innerHTML=t,e.querySelectorAll(`script`).forEach(e=>e.remove());let n=[`onclick`,`onload`,`onerror`,`onmouseover`];return e.querySelectorAll(`*`).forEach(e=>{n.forEach(t=>{e.hasAttribute(t)&&e.removeAttribute(t)})}),e.innerHTML}return t},[t,r]);return t?o(`div`,{ref:l,className:n(e),dangerouslySetInnerHTML:{__html:u},...s}):null}function c({breakpoint:e,as:t=`div`,fallback:n=i.Fragment,classNameFallback:a,className:s,...c}){let l=r(e.split(`-`).pop())===e.startsWith(`max`);return o(l?n:t,{className:l?a:s,...c})}const l=()=>{let[t,n]=i.useState(e?0:window.innerWidth),[r,a]=i.useState(0);return i.useEffect(()=>{let e=()=>{n(window.innerWidth)};return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]),{...[{bottom:`2rem`,left:`2rem`},{bottom:`2rem`,right:`2rem`},{top:`2rem`,right:`2rem`},{top:`2rem`,left:`2rem`}][r]},null};function u(){return t(()=>{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{s as HtmlInjector,a as Iconify,c as MediaWrapper,l as ResponsiveIndicator,l as TailwindIndicator,u as ScrollableMarker};
package/dist/hooks.js DELETED
@@ -1 +0,0 @@
1
- "use client";import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,w as x,x as S,y as C}from"./hooks-hkNH7WgA.js";export{x as useAction,e as useAsync,v as useClickOutside,p as useCopyToClipboard,g as useDebounce,u as useDomCalculation,r as useEffectOnce,m as useHeightCalculation,_ as useIntersection,a as useIsAtTop,d as useIsClient,y as useIsScrolling,o as useIsomorphicEffect,s as useLocalStorage,h as useLockScroll,f as useMediaQuery,l as useQuerySelector,S as useSchedule,t as useScheduledEffect,c as useSessionStorage,n as useTimeout,b as useUpdateEffect,C as useUrlParams,i as useWindowEvent};
File without changes
File without changes