@sohanemon/utils 6.3.5 → 6.3.7
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-DpuuIz9k.cjs`),t=require(`../functions-BSYagwi9.cjs`);let n=require(`react`);n=e.T(n);let r=require(`@iconify/react`),i=require(`react/jsx-runtime`);function a({className:e,html:r,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||!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),c.current.push(t)})}catch(e){console.error(`HTML injection error:`,e)}},[r,o]),n.useEffect(()=>()=>{c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)})},[]);let u=n.useMemo(()=>{if(!r)return``;if(a){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,a]);return r?(0,i.jsx)(`div`,{ref:l,className:t.a(e),dangerouslySetInnerHTML:{__html:u},...s}):null}function o({breakpoint:t,as:r=`div`,fallback:a=n.Fragment,classNameFallback:o,className:s,...c}){let l=e.m(t.split(`-`).pop())===t.startsWith(`max`);return(0,i.jsx)(l?a:r,{className:l?o:s,...c})}const s=({side:e,offset:r=2})=>{let[
|
|
1
|
+
"use client";const e=require(`../hooks-DpuuIz9k.cjs`),t=require(`../functions-BSYagwi9.cjs`);let n=require(`react`);n=e.T(n);let r=require(`@iconify/react`),i=require(`react/jsx-runtime`);function a({className:e,html:r,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||!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),c.current.push(t)})}catch(e){console.error(`HTML injection error:`,e)}},[r,o]),n.useEffect(()=>()=>{c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)})},[]);let u=n.useMemo(()=>{if(!r)return``;if(a){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,a]);return r?(0,i.jsx)(`div`,{ref:l,className:t.a(e),dangerouslySetInnerHTML:{__html:u},...s}):null}function o({breakpoint:t,as:r=`div`,fallback:a=n.Fragment,classNameFallback:o,className:s,...c}){let l=e.m(t.split(`-`).pop())===t.startsWith(`max`);return(0,i.jsx)(l?a:r,{className:l?o:s,...c})}const s=({side:e,offset:r=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](r)};return process.env.NODE_ENV===`production`?null:(0,i.jsx)(`button`,{type:`button`,style:h,onClick:p,children:m})};function c(){return e.S(()=>{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 r.Icon}}),exports.MediaWrapper=o,exports.ResponsiveIndicator=s,exports.TailwindIndicator=s,exports.ScrollableMarker=c;
|
|
@@ -80,6 +80,7 @@ type Side = 'bottom-left' | 'bottom-right' | 'top-right' | 'top-left';
|
|
|
80
80
|
interface ResponsiveIndicatorProps {
|
|
81
81
|
side?: Side;
|
|
82
82
|
offset?: number;
|
|
83
|
+
unit?: 'px' | 'rem';
|
|
83
84
|
}
|
|
84
85
|
declare const ResponsiveIndicator: React.FC<ResponsiveIndicatorProps>;
|
|
85
86
|
//#endregion
|
|
@@ -80,6 +80,7 @@ type Side = 'bottom-left' | 'bottom-right' | 'top-right' | 'top-left';
|
|
|
80
80
|
interface ResponsiveIndicatorProps {
|
|
81
81
|
side?: Side;
|
|
82
82
|
offset?: number;
|
|
83
|
+
unit?: 'px' | 'rem';
|
|
83
84
|
}
|
|
84
85
|
declare const ResponsiveIndicator: React.FC<ResponsiveIndicatorProps>;
|
|
85
86
|
//#endregion
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{a as e,m as t}from"../functions-DdPaJAsm.js";import{S as n,m as r}from"../hooks-lvIWocNb.js";import*as i from"react";import{Icon as a}from"@iconify/react";import{jsx as o}from"react/jsx-runtime";function s({className:t,html:n,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||!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,a]),i.useEffect(()=>()=>{c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)})},[]);let u=i.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 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=({side:e,offset:n=2})=>{let[
|
|
1
|
+
"use client";import{a as e,m as t}from"../functions-DdPaJAsm.js";import{S as n,m as r}from"../hooks-lvIWocNb.js";import*as i from"react";import{Icon as a}from"@iconify/react";import{jsx as o}from"react/jsx-runtime";function s({className:t,html:n,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||!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,a]),i.useEffect(()=>()=>{c.current.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)})},[]);let u=i.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 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=({side:e,offset:n=2,unit:r=`px`})=>{let[a,s]=i.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]=i.useState(u);i.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=a<640?`xs`:a>=640&&a<768?`sm`:a>=768&&a<1024?`md`:a>=1024&&a<1280?`lg`:a>=1280&&a<1536?`xl`:a>=1536&&a<1792?`2xl`:r===`rem`?`${(a/16).toFixed(1)}rem`:`${a}${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 u(){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{s as HtmlInjector,a as Iconify,c as MediaWrapper,l as ResponsiveIndicator,l as TailwindIndicator,u as ScrollableMarker};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sohanemon/utils",
|
|
3
|
-
"version": "6.3.
|
|
3
|
+
"version": "6.3.7",
|
|
4
4
|
"author": "Sohan Emon <sohanemon@outlook.com>",
|
|
5
5
|
"description": "",
|
|
6
6
|
"type": "module",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"format": "biome format .",
|
|
52
52
|
"format:write": "biome format . --write",
|
|
53
53
|
"typecheck": "tsgo --noEmit",
|
|
54
|
-
"release": "tsgo --noEmit && npm run build && npm publish"
|
|
54
|
+
"release": "tsgo --noEmit && npm run build && npm publish --access public"
|
|
55
55
|
},
|
|
56
56
|
"keywords": [
|
|
57
57
|
"utils",
|