@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.
|
|
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
|
-
|
|
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": {
|
package/dist/components.js
DELETED
|
@@ -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
|