minimal-shared 1.0.15 → 1.1.0
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/dist/index.cjs +2 -2
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -2
- package/dist/utils/index.cjs +2 -2
- package/dist/utils/index.d.cts +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +2 -2
- package/dist/utils/right-to-left/index.cjs +1 -0
- package/dist/utils/right-to-left/index.d.cts +1 -0
- package/dist/utils/right-to-left/index.d.ts +1 -0
- package/dist/utils/right-to-left/index.js +1 -0
- package/dist/utils/right-to-left/right-to-left.cjs +1 -0
- package/dist/utils/right-to-left/right-to-left.d.cts +13 -0
- package/dist/utils/right-to-left/right-to-left.d.ts +13 -0
- package/dist/utils/right-to-left/right-to-left.js +1 -0
- package/package.json +12 -12
package/dist/index.cjs
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var
|
2
|
-
`));let o=pe(t,e);return e.toLowerCase()==="currentcolor"?`color-mix(in srgb, currentColor ${o}, transparent)`:`rgba(${e} / ${o})`}function de(e,t){return!e||!t.length||typeof e!="object"?!1:t.every(n=>n in e)}function me(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Te(e,t){let n=e?Array.isArray(e)?e:[e]:[],o=Object.entries(t||{}).filter(([r,s])=>s!==void 0&&s!==!1).map(([r,s])=>Array.isArray(s)?s[0]?s[1]:"":s?r:"").filter(Boolean);return[...n.filter(Boolean),...o].join(" ")}function j(e){if(!e||typeof e!="string")return console.warn("Invalid cookie key provided"),null;try{let t=`${e}=`,r=decodeURIComponent(document.cookie).split("; ").find(i=>i.startsWith(t));if(!r)return null;let s=r.substring(t.length);try{return JSON.parse(s)}catch{return s}}catch(t){return console.error("Error retrieving cookie:",t),null}}function E(e,t,n){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{daysUntilExpiration:o=0,sameSite:r="Strict",secure:s=!1,path:i="/",domain:a}=n??{};try{let l=encodeURIComponent(typeof t=="string"?t:JSON.stringify(t)),c=[`${e}=${l}`,`path=${i}`,r&&`SameSite=${r}`,s&&"Secure",a&&`domain=${a}`];if(o>0){let p=new Date(Date.now()+o*24*60*60*1e3);c.push(`expires=${p.toUTCString()}`)}document.cookie=c.filter(Boolean).join("; ")}catch(l){console.error("Error setting cookie:",l)}}function F(e,t){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{path:n="/",domain:o}=t??{};try{let r=[`${e}=`,"expires=Thu, 01 Jan 1970 00:00:00 GMT",`path=${n}`,o&&`domain=${o}`,"Secure"];document.cookie=r.filter(Boolean).join("; ")}catch(r){console.error("Error removing cookie:",r)}}function ge(e,t,n=!0){if(!e||!t)return console.warn("isActiveLink: pathname or itemPath is empty!"),!1;if(t.startsWith("#")||H(t))return!1;let o=y(e),r=y(D(t));return n||A(t)?o===r||o.startsWith(`${r}/`)||o.startsWith(`${r}?`):o===r}function N(e,t){if(!q())return t??null;let n=localStorage.getItem(e);if(n!=="undefined"){if(n)try{return JSON.parse(n)}catch{return n??t??null}return t??null}}function k(e,t){try{let n=JSON.stringify(t);window.localStorage.setItem(e,n)}catch(n){console.error("Error while setting storage:",n)}}function W(e){try{window.localStorage.removeItem(e)}catch(t){console.error("Error while removing from storage:",t)}}function q(){try{let e="__some_random_key_you_are_not_going_to_use__";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch{return!1}}function he(e){if(typeof e!="string"||!e.trim())return console.error("Invalid input: CSS value must be a non-empty string"),"";let t=e.match(/var\(\s*(--[\w-]+)(?:\s*,[^)]*)?\s*\)/);return t?t[1]:(console.error(`Invalid CSS variable format: "${e}". Expected format: var(--variable-name)`),"")}function B(e,t=""){return e==null||typeof e=="number"&&Number.isNaN(e)?t:e.toString()}function G(e){let n=B(e).replace(/[^0-9.]/g,""),[o,...r]=n.split(".");return r.length>0?`${o}.${r.join("")}`:o}function K(e,t=""){if(e==null||typeof e=="number"&&Number.isNaN(e))return t;let n=parseFloat(e.toString());return Number.isNaN(n)?t:n}var be={onChange:G,onBlur:K,value:B};var U=require("react");function Se(e=!1){let[t,n]=(0,U.useState)(e),o=(0,U.useCallback)((s,i)=>{n(i)},[]),r=(0,U.useCallback)(()=>{n(e)},[e]);return{value:t,setValue:n,onChange:o,reset:r}}var C=require("react");function xe(e=!1){let[t,n]=(0,C.useState)(e),o=(0,C.useCallback)(()=>{n(!0)},[]),r=(0,C.useCallback)(()=>{n(!1)},[]),s=(0,C.useCallback)(()=>{n(i=>!i)},[]);return{value:t,onTrue:o,onFalse:r,onToggle:s,setValue:n}}var O=require("react");function ye(){let[e,t]=(0,O.useState)(null),n=(0,O.useCallback)(r=>{t(r.currentTarget)},[]),o=(0,O.useCallback)(()=>{t(null)},[]);return{open:!!e,anchorEl:e,onOpen:n,onClose:o,setAnchorEl:t}}var m=require("react");function ve(e,t,n){let{initializeWithValue:o=!0,...r}=n??{},s=t&&typeof t=="object",[i,a]=(0,m.useState)(t);(0,m.useEffect)(()=>{let u=j(e);u?a(s?g=>({...g,...u}):u):t&&o&&E(e,t,r)},[]);let l=(0,m.useCallback)(u=>{s?a(g=>{let _={...g,...u};return E(e,_,r),_}):(E(e,u,r),a(u))},[r,s,e]),c=(0,m.useCallback)((u,g)=>{s&&l({[u]:g})},[s,l]),p=(0,m.useCallback)(u=>{a(u??t),F(e)},[t,e]);return(0,m.useMemo)(()=>({state:i,setState:l,setField:c,resetState:p}),[p,c,l,i])}var V=require("react");function Ce(e,t=1e3){let[n,o]=(0,V.useState)(e);return(0,V.useEffect)(()=>{let r=setTimeout(()=>{o(e)},t);return()=>{clearTimeout(r)}},[e,t]),n}var w=require("react");function we(e){let[t,n]=(0,w.useState)(e),o=(0,w.useCallback)(i=>{n(a=>({...a,...i}))},[]),r=(0,w.useCallback)((i,a)=>{o({[i]:a})},[o]),s=(0,w.useCallback)(i=>{n(i??e)},[e]);return{state:t,setState:o,setField:r,resetState:s}}var L=require("react");function Re(){let[e,t]=(0,L.useState)(!1);return(0,L.useEffect)(()=>{t(!0)},[]),e}var h=require("react");function Ee(e,t){let[n,o]=(0,h.useState)(!1),r=ke(e),s=(0,h.useCallback)(()=>{let l=window.innerHeight,c=Math.round(window.scrollY),p=document.body.offsetHeight,f=Math.round(c/(p-l)*100);if(r.type==="percentage")o(f>=r.value);else{let u=p-l-c;o(r.value>=u)}},[r.type,r.value]),i=(0,h.useMemo)(()=>{let l;return()=>{clearTimeout(l),l=setTimeout(s,100)}},[s]);return(0,h.useEffect)(()=>{let l=t?i:s;return window.addEventListener("scroll",l),()=>{window.removeEventListener("scroll",l)}},[i,s,t]),{isVisible:n,onBackToTop:()=>{window.scrollTo({top:0,behavior:"smooth"})},setIsVisible:o}}function ke(e){let t,n;if(typeof e=="string")if(e.endsWith("%")){if(t=Number(e.slice(0,-1)),isNaN(t))throw new Error("Invalid percentage value");n="percentage"}else throw new Error("String input must end with %");else t=e,n="number";return{value:t,type:n}}var d=require("react");function Ue(e,t){let n=(0,d.useRef)(null),o=e||n,[r,s]=(0,d.useState)(void 0),[i,a]=(0,d.useState)(void 0),l=typeof window<"u"?d.useLayoutEffect:d.useEffect,c=(0,d.useCallback)(()=>{if(o.current){let u=o.current.getBoundingClientRect();s(u),a({scrollWidth:o.current.scrollWidth,scrollHeight:o.current.scrollHeight})}},[o]);l(()=>{c()},[c]),(0,d.useEffect)(()=>{let u=t||"resize";return window.addEventListener(u,c),()=>{window.removeEventListener(u,c)}},[t,c]);let p=(0,d.useMemo)(()=>r,[r]),f=(0,d.useMemo)(()=>i,[i]);return{elementRef:o,top:p?.top??0,right:p?.right??0,bottom:p?.bottom??0,left:p?.left??0,x:p?.x??0,y:p?.y??0,width:p?.width??0,height:p?.height??0,scrollWidth:f?.scrollWidth??0,scrollHeight:f?.scrollHeight??0}}var b=require("react");function Oe(e,t){let[n,o]=(0,b.useState)(t??[]),r=(0,b.useCallback)(l=>{o(c=>Q(c,l))},[]),s=(0,b.useCallback)(()=>{o(l=>l.length===e.length?[]:e)},[e]),i=(0,b.useCallback)(()=>{o([])},[]),a=(0,b.useMemo)(()=>n.length===0?"unchecked":n.length===e.length?"checked":"indeterminate",[e.length,n.length]);return{values:n,status:a,setValues:o,onSelectAllItems:s,onDeSelectAllItems:i,onToggleSelectItem:r}}function Q(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var M=require("react");function Me({click:e,doubleClick:t,timeout:n=250}){let o=(0,M.useRef)(null),r=(0,M.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null)},[]);return(0,M.useCallback)(i=>{r(),e&&i.detail===1&&(o.current=setTimeout(()=>{e(i)},n)),i.detail%2===0&&t(i)},[e,t,n,r])}var T=require("react");function Ve(e,t,n){let{initializeWithValue:o=!0}=n??{},r=t&&typeof t=="object",[s,i]=(0,T.useState)(t);(0,T.useEffect)(()=>{let f=N(e);f?i(r?u=>({...u,...f}):f):t&&o&&k(e,t)},[]);let a=(0,T.useCallback)(f=>{r?i(u=>{let g={...u,...f};return k(e,g),g}):(k(e,f),i(f))},[e,r]),l=(0,T.useCallback)((f,u)=>{r&&a({[f]:u})},[r,a]),c=(0,T.useCallback)(f=>{i(f??t),W(e)},[t,e]);return(0,T.useMemo)(()=>({state:s,setState:a,setField:l,resetState:c}),[c,l,a,s])}var v=require("react");function Le(e){let t=(0,v.useRef)(null),n=e||t,[o,r]=(0,v.useState)(!1),s=(0,v.useCallback)(()=>{r(!0)},[]),i=(0,v.useCallback)(()=>{r(!1)},[]);return{elementRef:n,anchorEl:n.current,open:o,onOpen:s,onClose:i,setOpen:r}}var R=require("react");function $e(e,t="- -"){let[n,o]=(0,R.useState)({days:t,hours:t,minutes:t,seconds:t}),r=(0,R.useCallback)(()=>{let s=new Date,{days:i,hours:a,minutes:l,seconds:c}=Pe(e,s);o({days:$(i),hours:$(a),minutes:$(l),seconds:$(c)})},[e]);return(0,R.useEffect)(()=>{r();let s=setInterval(r,1e3);return()=>clearInterval(s)},[]),n}function $(e){return String(e).length===1?`0${e}`:`${e}`}function Pe(e,t){let n=e.getTime()-t.getTime();return{days:Math.floor(n/(1e3*60*60*24)),hours:Math.floor(n%(1e3*60*60*24)/(1e3*60*60)),minutes:Math.floor(n%(1e3*60*60)/(1e3*60)),seconds:Math.floor(n%(1e3*60)/1e3)}}var S=require("react");function Ie(e=0){let t=(0,S.useRef)(null),[n,o]=(0,S.useState)(!1),r=(0,S.useCallback)(()=>{let s=window.scrollY;if(t.current){let i=t.current.offsetTop;o(s>i-e)}else o(s>e)},[e]);return(0,S.useEffect)(()=>(r(),window.addEventListener("scroll",r),()=>{window.removeEventListener("scroll",r)}),[r]),{elementRef:t,offsetTop:n}}var x=require("react");function Ae(e){let[t,n]=(0,x.useState)(e),[o,r]=(0,x.useState)(!1),s=(0,x.useCallback)(()=>{r(!0)},[]),i=(0,x.useCallback)(()=>{r(!1),n(e)},[e]);return(0,x.useEffect)(()=>{let a=null;return o&&t>0?a=setInterval(()=>{n(l=>l-1)},1e3):t<=0&&r(!1),()=>{a&&clearInterval(a)}},[o,t]),{value:t,setValue:n,isCounting:o,start:s,reset:i}}var P=require("react");function De(){let[e,t]=(0,P.useState)(null);return{copy:(0,P.useCallback)(async o=>{if(!navigator?.clipboard)return console.warn("Clipboard not supported"),!1;try{return await navigator.clipboard.writeText(o),t(o),!0}catch(r){return console.warn("Copy failed",r),t(null),!1}},[t]),copiedText:e}}0&&(module.exports={createPaletteChannel,getCookie,getStorage,hasKeys,hasParams,hexToRgbChannel,isActiveLink,isEqualPath,isExternalLink,localStorageAvailable,mergeClasses,mergeRefs,parseCssVar,pxToRem,remToPx,removeCookie,removeLastSlash,removeParams,removeStorage,safeReturnUrl,setCookie,setFont,setStorage,transformNumber,transformValue,transformValueOnBlur,transformValueOnChange,updateSelectedItems,useBackToTop,useBoolean,useClientRect,useCookies,useCopyToClipboard,useCountdownDate,useCountdownSeconds,useDebounce,useDoubleClick,useIsClient,useLocalStorage,useMultiSelect,usePopover,usePopoverHover,useScrollOffsetTop,useSetState,useTabs,uuidv4,varAlpha});
|
1
|
+
"use strict";var P=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Z=Object.getOwnPropertyNames;var ee=Object.prototype.hasOwnProperty;var te=(e,t)=>{for(var n in t)P(e,n,{get:t[n],enumerable:!0})},ne=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Z(t))!ee.call(e,r)&&r!==n&&P(e,r,{get:()=>t[r],enumerable:!(o=X(t,r))||o.enumerable});return e};var oe=e=>ne(P({},"__esModule",{value:!0}),e);var je={};te(je,{createPaletteChannel:()=>ce,getCookie:()=>j,getStorage:()=>N,hasKeys:()=>de,hasParams:()=>A,hexToRgbChannel:()=>Y,isActiveLink:()=>ge,isEqualPath:()=>re,isExternalLink:()=>H,localStorageAvailable:()=>q,mergeClasses:()=>Te,mergeRefs:()=>ie,noRtlFlip:()=>be,parseCssVar:()=>he,pxToRem:()=>ue,remToPx:()=>le,removeCookie:()=>F,removeLastSlash:()=>y,removeParams:()=>D,removeStorage:()=>W,safeReturnUrl:()=>se,setCookie:()=>E,setFont:()=>ae,setStorage:()=>k,transformNumber:()=>Se,transformValue:()=>B,transformValueOnBlur:()=>K,transformValueOnChange:()=>G,updateSelectedItems:()=>Q,useBackToTop:()=>ke,useBoolean:()=>ye,useClientRect:()=>Oe,useCookies:()=>Ce,useCopyToClipboard:()=>He,useCountdownDate:()=>Ie,useCountdownSeconds:()=>De,useDebounce:()=>we,useDoubleClick:()=>Le,useIsClient:()=>Ee,useLocalStorage:()=>Ve,useMultiSelect:()=>Me,usePopover:()=>ve,usePopoverHover:()=>$e,useScrollOffsetTop:()=>Ae,useSetState:()=>Re,useTabs:()=>xe,uuidv4:()=>me,varAlpha:()=>fe});module.exports=oe(je);var z=require("es-toolkit");function A(e){try{let t=new URL(e,window.location.origin);return Array.from(t.searchParams.keys()).length>0}catch{return!1}}function y(e){return e!=="/"&&e.endsWith("/")?e.slice(0,-1):e}function re(e,t,n={deep:!0}){let o=r=>{try{let{pathname:s,searchParams:i}=new URL(r.trim(),"http://dummy");return n.deep?{pathname:y(s),params:Object.fromEntries(i)}:{pathname:y(s)}}catch{return{pathname:""}}};return(0,z.isEqual)(o(t),o(e))}function D(e){try{let t=new URL(e,window.location.origin);return y(t.pathname)}catch{return e}}function H(e){return/^https?:\/\//i.test(e)}function se(e,t){let n=t??"/";if(!e||typeof window>"u"||!window.location?.origin)return n;try{let o=new URL(e,window.location.origin),r=o.origin===window.location.origin,s=o.pathname.startsWith("/")&&!o.pathname.startsWith("//"),i=/^\/:+$/.test(o.pathname),a=o.pathname==="/"&&!o.search&&o.hash;return r&&s&&!i&&!a?`${o.pathname}${o.search}${o.hash}`:n}catch{return e.startsWith("/")&&!e.startsWith("//")?e:n}}function ie(e){return t=>{if(e.length!==0)for(let n of e)n&&(typeof n=="function"?n(t):"current"in n&&(n.current=t))}}var J='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"';function ae(e){return e?`"${e}", ${J}`:J}function le(e){let t=parseFloat(e);return Math.round(t*16)}function ue(e){if(typeof e!="number"||isNaN(e))throw new Error(`Invalid pixel value: ${e}`);return`${e/16}rem`}function Y(e){if(!e)throw new Error("Hex color is undefined!");if(!/^#[0-9A-F]{6}$/i.test(e))throw new Error(`Invalid hex color: ${e}`);let t=parseInt(e.substring(1,3),16),n=parseInt(e.substring(3,5),16),o=parseInt(e.substring(5,7),16);return`${t} ${n} ${o}`}function ce(e){let t={};return Object.entries(e).forEach(([n,o])=>{o&&(t[`${n}Channel`]=Y(o))}),{...e,...t}}function pe(e,t){let n=s=>s.includes("var(--"),o=s=>s.trim().endsWith("%"),r={invalid:`[Alpha]: Invalid opacity "${e}" for ${t}.`,range:"Must be a number between 0 and 1 (e.g., 0.48).",format:'Must be a percentage (e.g., "48%") or CSS variable (e.g., "var(--opacity)").'};if(typeof e=="string"){if(o(e))return e;if(n(e))return`calc(${e} * 100%)`;let s=parseFloat(e.trim());if(!isNaN(s)&&s>=0&&s<=1)return`${Number((s*100).toFixed(2))}%`;throw new Error(`${r.invalid} ${r.format}`)}if(typeof e=="number"){if(e>=0&&e<=1)return`${Number((e*100).toFixed(2))}%`;throw new Error(`${r.invalid} ${r.range}`)}throw new Error(`${r.invalid}`)}function fe(e,t=1){if(!e?.trim())throw new Error("[Alpha]: Color is undefined or empty!");if(e.startsWith("#")||e.startsWith("rgb")||e.startsWith("rgba")||!e.includes("var")&&e.includes("Channel"))throw new Error([`[Alpha]: Unsupported color format "${e}"`,"\u2705 Supported formats:",'- RGB channels: "0 184 217"','- CSS variables with "Channel" prefix: "var(--palette-common-blackChannel, #000000)"',"\u274C Unsupported formats:",'- Hex: "#00B8D9"','- RGB: "rgb(0, 184, 217)"','- RGBA: "rgba(0, 184, 217, 1)"'].join(`
|
2
|
+
`));let o=pe(t,e);return e.toLowerCase()==="currentcolor"?`color-mix(in srgb, currentColor ${o}, transparent)`:`rgba(${e} / ${o})`}function de(e,t){return!e||!t.length||typeof e!="object"?!1:t.every(n=>n in e)}function me(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Te(e,t){let n=e?Array.isArray(e)?e:[e]:[],o=Object.entries(t||{}).filter(([r,s])=>s!==void 0&&s!==!1).map(([r,s])=>Array.isArray(s)?s[0]?s[1]:"":s?r:"").filter(Boolean);return[...n.filter(Boolean),...o].join(" ")}function j(e){if(!e||typeof e!="string")return console.warn("Invalid cookie key provided"),null;try{let t=`${e}=`,r=decodeURIComponent(document.cookie).split("; ").find(i=>i.startsWith(t));if(!r)return null;let s=r.substring(t.length);try{return JSON.parse(s)}catch{return s}}catch(t){return console.error("Error retrieving cookie:",t),null}}function E(e,t,n){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{daysUntilExpiration:o=0,sameSite:r="Strict",secure:s=!1,path:i="/",domain:a}=n??{};try{let l=encodeURIComponent(typeof t=="string"?t:JSON.stringify(t)),c=[`${e}=${l}`,`path=${i}`,r&&`SameSite=${r}`,s&&"Secure",a&&`domain=${a}`];if(o>0){let p=new Date(Date.now()+o*24*60*60*1e3);c.push(`expires=${p.toUTCString()}`)}document.cookie=c.filter(Boolean).join("; ")}catch(l){console.error("Error setting cookie:",l)}}function F(e,t){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{path:n="/",domain:o}=t??{};try{let r=[`${e}=`,"expires=Thu, 01 Jan 1970 00:00:00 GMT",`path=${n}`,o&&`domain=${o}`,"Secure"];document.cookie=r.filter(Boolean).join("; ")}catch(r){console.error("Error removing cookie:",r)}}function ge(e,t,n=!0){if(!e||!t)return console.warn("isActiveLink: pathname or itemPath is empty!"),!1;if(t.startsWith("#")||H(t))return!1;let o=y(e),r=y(D(t));return n||A(t)?o===r||o.startsWith(`${r}/`)||o.startsWith(`${r}?`):o===r}function N(e,t){if(!q())return t??null;let n=localStorage.getItem(e);if(n!=="undefined"){if(n)try{return JSON.parse(n)}catch{return n??t??null}return t??null}}function k(e,t){try{let n=JSON.stringify(t);window.localStorage.setItem(e,n)}catch(n){console.error("Error while setting storage:",n)}}function W(e){try{window.localStorage.removeItem(e)}catch(t){console.error("Error while removing from storage:",t)}}function q(){try{let e="__some_random_key_you_are_not_going_to_use__";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch{return!1}}function he(e){if(typeof e!="string"||!e.trim())return console.error("Invalid input: CSS value must be a non-empty string"),"";let t=e.match(/var\(\s*(--[\w-]+)(?:\s*,[^)]*)?\s*\)/);return t?t[1]:(console.error(`Invalid CSS variable format: "${e}". Expected format: var(--variable-name)`),"")}function be(e){if(typeof e!="string")return console.warn("Invalid CSS value provided"),"";let t=e.trim();return t?t.includes("/* @noflip */")?t:`${t} /* @noflip */`:(console.warn("Empty CSS value provided"),"")}function B(e,t=""){return e==null||typeof e=="number"&&Number.isNaN(e)?t:e.toString()}function G(e){let n=B(e).replace(/[^0-9.]/g,""),[o,...r]=n.split(".");return r.length>0?`${o}.${r.join("")}`:o}function K(e,t=""){if(e==null||typeof e=="number"&&Number.isNaN(e))return t;let n=parseFloat(e.toString());return Number.isNaN(n)?t:n}var Se={onChange:G,onBlur:K,value:B};var U=require("react");function xe(e=!1){let[t,n]=(0,U.useState)(e),o=(0,U.useCallback)((s,i)=>{n(i)},[]),r=(0,U.useCallback)(()=>{n(e)},[e]);return{value:t,setValue:n,onChange:o,reset:r}}var C=require("react");function ye(e=!1){let[t,n]=(0,C.useState)(e),o=(0,C.useCallback)(()=>{n(!0)},[]),r=(0,C.useCallback)(()=>{n(!1)},[]),s=(0,C.useCallback)(()=>{n(i=>!i)},[]);return{value:t,onTrue:o,onFalse:r,onToggle:s,setValue:n}}var O=require("react");function ve(){let[e,t]=(0,O.useState)(null),n=(0,O.useCallback)(r=>{t(r.currentTarget)},[]),o=(0,O.useCallback)(()=>{t(null)},[]);return{open:!!e,anchorEl:e,onOpen:n,onClose:o,setAnchorEl:t}}var m=require("react");function Ce(e,t,n){let{initializeWithValue:o=!0,...r}=n??{},s=t&&typeof t=="object",[i,a]=(0,m.useState)(t);(0,m.useEffect)(()=>{let u=j(e);u?a(s?g=>({...g,...u}):u):t&&o&&E(e,t,r)},[]);let l=(0,m.useCallback)(u=>{s?a(g=>{let _={...g,...u};return E(e,_,r),_}):(E(e,u,r),a(u))},[r,s,e]),c=(0,m.useCallback)((u,g)=>{s&&l({[u]:g})},[s,l]),p=(0,m.useCallback)(u=>{a(u??t),F(e)},[t,e]);return(0,m.useMemo)(()=>({state:i,setState:l,setField:c,resetState:p}),[p,c,l,i])}var L=require("react");function we(e,t=1e3){let[n,o]=(0,L.useState)(e);return(0,L.useEffect)(()=>{let r=setTimeout(()=>{o(e)},t);return()=>{clearTimeout(r)}},[e,t]),n}var w=require("react");function Re(e){let[t,n]=(0,w.useState)(e),o=(0,w.useCallback)(i=>{n(a=>({...a,...i}))},[]),r=(0,w.useCallback)((i,a)=>{o({[i]:a})},[o]),s=(0,w.useCallback)(i=>{n(i??e)},[e]);return{state:t,setState:o,setField:r,resetState:s}}var V=require("react");function Ee(){let[e,t]=(0,V.useState)(!1);return(0,V.useEffect)(()=>{t(!0)},[]),e}var h=require("react");function ke(e,t){let[n,o]=(0,h.useState)(!1),r=Ue(e),s=(0,h.useCallback)(()=>{let l=window.innerHeight,c=Math.round(window.scrollY),p=document.body.offsetHeight,f=Math.round(c/(p-l)*100);if(r.type==="percentage")o(f>=r.value);else{let u=p-l-c;o(r.value>=u)}},[r.type,r.value]),i=(0,h.useMemo)(()=>{let l;return()=>{clearTimeout(l),l=setTimeout(s,100)}},[s]);return(0,h.useEffect)(()=>{let l=t?i:s;return window.addEventListener("scroll",l),()=>{window.removeEventListener("scroll",l)}},[i,s,t]),{isVisible:n,onBackToTop:()=>{window.scrollTo({top:0,behavior:"smooth"})},setIsVisible:o}}function Ue(e){let t,n;if(typeof e=="string")if(e.endsWith("%")){if(t=Number(e.slice(0,-1)),isNaN(t))throw new Error("Invalid percentage value");n="percentage"}else throw new Error("String input must end with %");else t=e,n="number";return{value:t,type:n}}var d=require("react");function Oe(e,t){let n=(0,d.useRef)(null),o=e||n,[r,s]=(0,d.useState)(void 0),[i,a]=(0,d.useState)(void 0),l=typeof window<"u"?d.useLayoutEffect:d.useEffect,c=(0,d.useCallback)(()=>{if(o.current){let u=o.current.getBoundingClientRect();s(u),a({scrollWidth:o.current.scrollWidth,scrollHeight:o.current.scrollHeight})}},[o]);l(()=>{c()},[c]),(0,d.useEffect)(()=>{let u=t||"resize";return window.addEventListener(u,c),()=>{window.removeEventListener(u,c)}},[t,c]);let p=(0,d.useMemo)(()=>r,[r]),f=(0,d.useMemo)(()=>i,[i]);return{elementRef:o,top:p?.top??0,right:p?.right??0,bottom:p?.bottom??0,left:p?.left??0,x:p?.x??0,y:p?.y??0,width:p?.width??0,height:p?.height??0,scrollWidth:f?.scrollWidth??0,scrollHeight:f?.scrollHeight??0}}var b=require("react");function Me(e,t){let[n,o]=(0,b.useState)(t??[]),r=(0,b.useCallback)(l=>{o(c=>Q(c,l))},[]),s=(0,b.useCallback)(()=>{o(l=>l.length===e.length?[]:e)},[e]),i=(0,b.useCallback)(()=>{o([])},[]),a=(0,b.useMemo)(()=>n.length===0?"unchecked":n.length===e.length?"checked":"indeterminate",[e.length,n.length]);return{values:n,status:a,setValues:o,onSelectAllItems:s,onDeSelectAllItems:i,onToggleSelectItem:r}}function Q(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var M=require("react");function Le({click:e,doubleClick:t,timeout:n=250}){let o=(0,M.useRef)(null),r=(0,M.useCallback)(()=>{o.current&&(clearTimeout(o.current),o.current=null)},[]);return(0,M.useCallback)(i=>{r(),e&&i.detail===1&&(o.current=setTimeout(()=>{e(i)},n)),i.detail%2===0&&t(i)},[e,t,n,r])}var T=require("react");function Ve(e,t,n){let{initializeWithValue:o=!0}=n??{},r=t&&typeof t=="object",[s,i]=(0,T.useState)(t);(0,T.useEffect)(()=>{let f=N(e);f?i(r?u=>({...u,...f}):f):t&&o&&k(e,t)},[]);let a=(0,T.useCallback)(f=>{r?i(u=>{let g={...u,...f};return k(e,g),g}):(k(e,f),i(f))},[e,r]),l=(0,T.useCallback)((f,u)=>{r&&a({[f]:u})},[r,a]),c=(0,T.useCallback)(f=>{i(f??t),W(e)},[t,e]);return(0,T.useMemo)(()=>({state:s,setState:a,setField:l,resetState:c}),[c,l,a,s])}var v=require("react");function $e(e){let t=(0,v.useRef)(null),n=e||t,[o,r]=(0,v.useState)(!1),s=(0,v.useCallback)(()=>{r(!0)},[]),i=(0,v.useCallback)(()=>{r(!1)},[]);return{elementRef:n,anchorEl:n.current,open:o,onOpen:s,onClose:i,setOpen:r}}var R=require("react");function Ie(e,t="- -"){let[n,o]=(0,R.useState)({days:t,hours:t,minutes:t,seconds:t}),r=(0,R.useCallback)(()=>{let s=new Date,{days:i,hours:a,minutes:l,seconds:c}=Pe(e,s);o({days:$(i),hours:$(a),minutes:$(l),seconds:$(c)})},[e]);return(0,R.useEffect)(()=>{r();let s=setInterval(r,1e3);return()=>clearInterval(s)},[]),n}function $(e){return String(e).length===1?`0${e}`:`${e}`}function Pe(e,t){let n=e.getTime()-t.getTime();return{days:Math.floor(n/(1e3*60*60*24)),hours:Math.floor(n%(1e3*60*60*24)/(1e3*60*60)),minutes:Math.floor(n%(1e3*60*60)/(1e3*60)),seconds:Math.floor(n%(1e3*60)/1e3)}}var S=require("react");function Ae(e=0){let t=(0,S.useRef)(null),[n,o]=(0,S.useState)(!1),r=(0,S.useCallback)(()=>{let s=window.scrollY;if(t.current){let i=t.current.offsetTop;o(s>i-e)}else o(s>e)},[e]);return(0,S.useEffect)(()=>(r(),window.addEventListener("scroll",r),()=>{window.removeEventListener("scroll",r)}),[r]),{elementRef:t,offsetTop:n}}var x=require("react");function De(e){let[t,n]=(0,x.useState)(e),[o,r]=(0,x.useState)(!1),s=(0,x.useCallback)(()=>{r(!0)},[]),i=(0,x.useCallback)(()=>{r(!1),n(e)},[e]);return(0,x.useEffect)(()=>{let a=null;return o&&t>0?a=setInterval(()=>{n(l=>l-1)},1e3):t<=0&&r(!1),()=>{a&&clearInterval(a)}},[o,t]),{value:t,setValue:n,isCounting:o,start:s,reset:i}}var I=require("react");function He(){let[e,t]=(0,I.useState)(null);return{copy:(0,I.useCallback)(async o=>{if(!navigator?.clipboard)return console.warn("Clipboard not supported"),!1;try{return await navigator.clipboard.writeText(o),t(o),!0}catch(r){return console.warn("Copy failed",r),t(null),!1}},[t]),copiedText:e}}0&&(module.exports={createPaletteChannel,getCookie,getStorage,hasKeys,hasParams,hexToRgbChannel,isActiveLink,isEqualPath,isExternalLink,localStorageAvailable,mergeClasses,mergeRefs,noRtlFlip,parseCssVar,pxToRem,remToPx,removeCookie,removeLastSlash,removeParams,removeStorage,safeReturnUrl,setCookie,setFont,setStorage,transformNumber,transformValue,transformValueOnBlur,transformValueOnChange,updateSelectedItems,useBackToTop,useBoolean,useClientRect,useCookies,useCopyToClipboard,useCountdownDate,useCountdownSeconds,useDebounce,useDoubleClick,useIsClient,useLocalStorage,useMultiSelect,usePopover,usePopoverHover,useScrollOffsetTop,useSetState,useTabs,uuidv4,varAlpha});
|
package/dist/index.d.cts
CHANGED
@@ -9,6 +9,7 @@ export { CookieOptions, getCookie, removeCookie, setCookie } from './utils/cooki
|
|
9
9
|
export { isActiveLink } from './utils/active-link/active-link.cjs';
|
10
10
|
export { getStorage, localStorageAvailable, removeStorage, setStorage } from './utils/local-storage/local-storage.cjs';
|
11
11
|
export { parseCssVar } from './utils/css-variables/css-variables.cjs';
|
12
|
+
export { noRtlFlip } from './utils/right-to-left/right-to-left.cjs';
|
12
13
|
export { InputValue, transformNumber, transformValue, transformValueOnBlur, transformValueOnChange } from './utils/transform-number/transform-number.cjs';
|
13
14
|
export { UseTabsReturn, useTabs } from './hooks/use-tabs/use-tabs.cjs';
|
14
15
|
export { UseBooleanReturn, useBoolean } from './hooks/use-boolean/use-boolean.cjs';
|
package/dist/index.d.ts
CHANGED
@@ -9,6 +9,7 @@ export { CookieOptions, getCookie, removeCookie, setCookie } from './utils/cooki
|
|
9
9
|
export { isActiveLink } from './utils/active-link/active-link.js';
|
10
10
|
export { getStorage, localStorageAvailable, removeStorage, setStorage } from './utils/local-storage/local-storage.js';
|
11
11
|
export { parseCssVar } from './utils/css-variables/css-variables.js';
|
12
|
+
export { noRtlFlip } from './utils/right-to-left/right-to-left.js';
|
12
13
|
export { InputValue, transformNumber, transformValue, transformValueOnBlur, transformValueOnChange } from './utils/transform-number/transform-number.js';
|
13
14
|
export { UseTabsReturn, useTabs } from './hooks/use-tabs/use-tabs.js';
|
14
15
|
export { UseBooleanReturn, useBoolean } from './hooks/use-boolean/use-boolean.js';
|
package/dist/index.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
import{isEqual as W}from"es-toolkit";function w(e){try{let t=new URL(e,window.location.origin);return Array.from(t.searchParams.keys()).length>0}catch{return!1}}function m(e){return e!=="/"&&e.endsWith("/")?e.slice(0,-1):e}function
|
2
|
-
`));let o=_(t,e);return e.toLowerCase()==="currentcolor"?`color-mix(in srgb, currentColor ${o}, transparent)`:`rgba(${e} / ${o})`}function Je(e,t){return!e||!t.length||typeof e!="object"?!1:t.every(n=>n in e)}function qe(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Ke(e,t){let n=e?Array.isArray(e)?e:[e]:[],o=Object.entries(t||{}).filter(([r,s])=>s!==void 0&&s!==!1).map(([r,s])=>Array.isArray(s)?s[0]?s[1]:"":s?r:"").filter(Boolean);return[...n.filter(Boolean),...o].join(" ")}function U(e){if(!e||typeof e!="string")return console.warn("Invalid cookie key provided"),null;try{let t=`${e}=`,r=decodeURIComponent(document.cookie).split("; ").find(i=>i.startsWith(t));if(!r)return null;let s=r.substring(t.length);try{return JSON.parse(s)}catch{return s}}catch(t){return console.error("Error retrieving cookie:",t),null}}function T(e,t,n){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{daysUntilExpiration:o=0,sameSite:r="Strict",secure:s=!1,path:i="/",domain:a}=n??{};try{let l=encodeURIComponent(typeof t=="string"?t:JSON.stringify(t)),c=[`${e}=${l}`,`path=${i}`,r&&`SameSite=${r}`,s&&"Secure",a&&`domain=${a}`];if(o>0){let p=new Date(Date.now()+o*24*60*60*1e3);c.push(`expires=${p.toUTCString()}`)}document.cookie=c.filter(Boolean).join("; ")}catch(l){console.error("Error setting cookie:",l)}}function O(e,t){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{path:n="/",domain:o}=t??{};try{let r=[`${e}=`,"expires=Thu, 01 Jan 1970 00:00:00 GMT",`path=${n}`,o&&`domain=${o}`,"Secure"];document.cookie=r.filter(Boolean).join("; ")}catch(r){console.error("Error removing cookie:",r)}}function et(e,t,n=!0){if(!e||!t)return console.warn("isActiveLink: pathname or itemPath is empty!"),!1;if(t.startsWith("#")||E(t))return!1;let o=m(e),r=m(R(t));return n||w(t)?o===r||o.startsWith(`${r}/`)||o.startsWith(`${r}?`):o===r}function M(e,t){if(!z())return t??null;let n=localStorage.getItem(e);if(n!=="undefined"){if(n)try{return JSON.parse(n)}catch{return n??t??null}return t??null}}function g(e,t){try{let n=JSON.stringify(t);window.localStorage.setItem(e,n)}catch(n){console.error("Error while setting storage:",n)}}function V(e){try{window.localStorage.removeItem(e)}catch(t){console.error("Error while removing from storage:",t)}}function z(){try{let e="__some_random_key_you_are_not_going_to_use__";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch{return!1}}function ot(e){if(typeof e!="string"||!e.trim())return console.error("Invalid input: CSS value must be a non-empty string"),"";let t=e.match(/var\(\s*(--[\w-]+)(?:\s*,[^)]*)?\s*\)/);return t?t[1]:(console.error(`Invalid CSS variable format: "${e}". Expected format: var(--variable-name)`),"")}function L(e,t=""){return e==null||typeof e=="number"&&Number.isNaN(e)?t:e.toString()}function J(e){let n=L(e).replace(/[^0-9.]/g,""),[o,...r]=n.split(".");return r.length>0?`${o}.${r.join("")}`:o}function Y(e,t=""){if(e==null||typeof e=="number"&&Number.isNaN(e))return t;let n=parseFloat(e.toString());return Number.isNaN(n)?t:n}var st={onChange:J,onBlur:Y,value:L};import{useState as q,useCallback as $}from"react";function lt(e=!1){let[t,n]=q(e),o=$((s,i)=>{n(i)},[]),r=$(()=>{n(e)},[e]);return{value:t,setValue:n,onChange:o,reset:r}}import{useState as G,useCallback as b}from"react";function pt(e=!1){let[t,n]=G(e),o=b(()=>{n(!0)},[]),r=b(()=>{n(!1)},[]),s=b(()=>{n(i=>!i)},[]);return{value:t,onTrue:o,onFalse:r,onToggle:s,setValue:n}}import{useState as K,useCallback as P}from"react";function mt(){let[e,t]=K(null),n=P(r=>{t(r.currentTarget)},[]),o=P(()=>{t(null)},[]);return{open:!!e,anchorEl:e,onOpen:n,onClose:o,setAnchorEl:t}}import{useMemo as Q,useState as X,useEffect as Z,useCallback as S}from"react";function bt(e,t,n){let{initializeWithValue:o=!0,...r}=n??{},s=t&&typeof t=="object",[i,a]=X(t);Z(()=>{let u=U(e);u?a(s?d=>({...d,...u}):u):t&&o&&T(e,t,r)},[]);let l=S(u=>{s?a(d=>{let C={...d,...u};return T(e,C,r),C}):(T(e,u,r),a(u))},[r,s,e]),c=S((u,d)=>{s&&l({[u]:d})},[s,l]),p=S(u=>{a(u??t),O(e)},[t,e]);return Q(()=>({state:i,setState:l,setField:c,resetState:p}),[p,c,l,i])}import{useState as ee,useEffect as te}from"react";function yt(e,t=1e3){let[n,o]=ee(e);return te(()=>{let r=setTimeout(()=>{o(e)},t);return()=>{clearTimeout(r)}},[e,t]),n}import{useState as ne,useCallback as x}from"react";function wt(e){let[t,n]=ne(e),o=x(i=>{n(a=>({...a,...i}))},[]),r=x((i,a)=>{o({[i]:a})},[o]),s=x(i=>{n(i??e)},[e]);return{state:t,setState:o,setField:r,resetState:s}}import{useState as oe,useEffect as re}from"react";function kt(){let[e,t]=oe(!1);return re(()=>{t(!0)},[]),e}import{useMemo as se,useState as ie,useEffect as ae,useCallback as le}from"react";function Mt(e,t){let[n,o]=ie(!1),r=ue(e),s=le(()=>{let l=window.innerHeight,c=Math.round(window.scrollY),p=document.body.offsetHeight,f=Math.round(c/(p-l)*100);if(r.type==="percentage")o(f>=r.value);else{let u=p-l-c;o(r.value>=u)}},[r.type,r.value]),i=se(()=>{let l;return()=>{clearTimeout(l),l=setTimeout(s,100)}},[s]);return ae(()=>{let l=t?i:s;return window.addEventListener("scroll",l),()=>{window.removeEventListener("scroll",l)}},[i,s,t]),{isVisible:n,onBackToTop:()=>{window.scrollTo({top:0,behavior:"smooth"})},setIsVisible:o}}function ue(e){let t,n;if(typeof e=="string")if(e.endsWith("%")){if(t=Number(e.slice(0,-1)),isNaN(t))throw new Error("Invalid percentage value");n="percentage"}else throw new Error("String input must end with %");else t=e,n="number";return{value:t,type:n}}import{useRef as ce,useMemo as I,useState as A,useEffect as D,useCallback as pe,useLayoutEffect as fe}from"react";function $t(e,t){let n=ce(null),o=e||n,[r,s]=A(void 0),[i,a]=A(void 0),l=typeof window<"u"?fe:D,c=pe(()=>{if(o.current){let u=o.current.getBoundingClientRect();s(u),a({scrollWidth:o.current.scrollWidth,scrollHeight:o.current.scrollHeight})}},[o]);l(()=>{c()},[c]),D(()=>{let u=t||"resize";return window.addEventListener(u,c),()=>{window.removeEventListener(u,c)}},[t,c]);let p=I(()=>r,[r]),f=I(()=>i,[i]);return{elementRef:o,top:p?.top??0,right:p?.right??0,bottom:p?.bottom??0,left:p?.left??0,x:p?.x??0,y:p?.y??0,width:p?.width??0,height:p?.height??0,scrollWidth:f?.scrollWidth??0,scrollHeight:f?.scrollHeight??0}}import{useMemo as de,useState as me,useCallback as y}from"react";function At(e,t){let[n,o]=me(t??[]),r=y(l=>{o(c=>Te(c,l))},[]),s=y(()=>{o(l=>l.length===e.length?[]:e)},[e]),i=y(()=>{o([])},[]),a=de(()=>n.length===0?"unchecked":n.length===e.length?"checked":"indeterminate",[e.length,n.length]);return{values:n,status:a,setValues:o,onSelectAllItems:s,onDeSelectAllItems:i,onToggleSelectItem:r}}function Te(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}import{useRef as ge,useCallback as H}from"react";function jt({click:e,doubleClick:t,timeout:n=250}){let o=ge(null),r=H(()=>{o.current&&(clearTimeout(o.current),o.current=null)},[]);return H(i=>{r(),e&&i.detail===1&&(o.current=setTimeout(()=>{e(i)},n)),i.detail%2===0&&t(i)},[e,t,n,r])}import{useMemo as he,useState as be,useEffect as Se,useCallback as v}from"react";function Bt(e,t,n){let{initializeWithValue:o=!0}=n??{},r=t&&typeof t=="object",[s,i]=be(t);Se(()=>{let f=M(e);f?i(r?u=>({...u,...f}):f):t&&o&&g(e,t)},[]);let a=v(f=>{r?i(u=>{let d={...u,...f};return g(e,d),d}):(g(e,f),i(f))},[e,r]),l=v((f,u)=>{r&&a({[f]:u})},[r,a]),c=v(f=>{i(f??t),V(e)},[t,e]);return he(()=>({state:s,setState:a,setField:l,resetState:c}),[c,l,a,s])}import{useRef as xe,useState as ye,useCallback as j}from"react";function Jt(e){let t=xe(null),n=e||t,[o,r]=ye(!1),s=j(()=>{r(!0)},[]),i=j(()=>{r(!1)},[]);return{elementRef:n,anchorEl:n.current,open:o,onOpen:s,onClose:i,setOpen:r}}import{useState as ve,useEffect as Ce,useCallback as we}from"react";function Gt(e,t="- -"){let[n,o]=ve({days:t,hours:t,minutes:t,seconds:t}),r=we(()=>{let s=new Date,{days:i,hours:a,minutes:l,seconds:c}=Re(e,s);o({days:h(i),hours:h(a),minutes:h(l),seconds:h(c)})},[e]);return Ce(()=>{r();let s=setInterval(r,1e3);return()=>clearInterval(s)},[]),n}function h(e){return String(e).length===1?`0${e}`:`${e}`}function Re(e,t){let n=e.getTime()-t.getTime();return{days:Math.floor(n/(1e3*60*60*24)),hours:Math.floor(n%(1e3*60*60*24)/(1e3*60*60)),minutes:Math.floor(n%(1e3*60*60)/(1e3*60)),seconds:Math.floor(n%(1e3*60)/1e3)}}import{useRef as Ee,useState as ke,useEffect as Ue,useCallback as Oe}from"react";function Xt(e=0){let t=Ee(null),[n,o]=ke(!1),r=Oe(()=>{let s=window.scrollY;if(t.current){let i=t.current.offsetTop;o(s>i-e)}else o(s>e)},[e]);return Ue(()=>(r(),window.addEventListener("scroll",r),()=>{window.removeEventListener("scroll",r)}),[r]),{elementRef:t,offsetTop:n}}import{useState as F,useEffect as Me,useCallback as N}from"react";function tn(e){let[t,n]=F(e),[o,r]=F(!1),s=N(()=>{r(!0)},[]),i=N(()=>{r(!1),n(e)},[e]);return Me(()=>{let a=null;return o&&t>0?a=setInterval(()=>{n(l=>l-1)},1e3):t<=0&&r(!1),()=>{a&&clearInterval(a)}},[o,t]),{value:t,setValue:n,isCounting:o,start:s,reset:i}}import{useState as Ve,useCallback as Le}from"react";function rn(){let[e,t]=Ve(null);return{copy:Le(async o=>{if(!navigator?.clipboard)return console.warn("Clipboard not supported"),!1;try{return await navigator.clipboard.writeText(o),t(o),!0}catch(r){return console.warn("Copy failed",r),t(null),!1}},[t]),copiedText:e}}export{Be as createPaletteChannel,U as getCookie,M as getStorage,Je as hasKeys,w as hasParams,B as hexToRgbChannel,et as isActiveLink,Pe as isEqualPath,E as isExternalLink,z as localStorageAvailable,Ke as mergeClasses,De as mergeRefs,ot as parseCssVar,Ne as pxToRem,Fe as remToPx,O as removeCookie,m as removeLastSlash,R as removeParams,V as removeStorage,Ie as safeReturnUrl,T as setCookie,je as setFont,g as setStorage,st as transformNumber,L as transformValue,Y as transformValueOnBlur,J as transformValueOnChange,Te as updateSelectedItems,Mt as useBackToTop,pt as useBoolean,$t as useClientRect,bt as useCookies,rn as useCopyToClipboard,Gt as useCountdownDate,tn as useCountdownSeconds,yt as useDebounce,jt as useDoubleClick,kt as useIsClient,Bt as useLocalStorage,At as useMultiSelect,mt as usePopover,Jt as usePopoverHover,Xt as useScrollOffsetTop,wt as useSetState,lt as useTabs,qe as uuidv4,_e as varAlpha};
|
1
|
+
import{isEqual as W}from"es-toolkit";function w(e){try{let t=new URL(e,window.location.origin);return Array.from(t.searchParams.keys()).length>0}catch{return!1}}function m(e){return e!=="/"&&e.endsWith("/")?e.slice(0,-1):e}function Ie(e,t,n={deep:!0}){let o=r=>{try{let{pathname:s,searchParams:i}=new URL(r.trim(),"http://dummy");return n.deep?{pathname:m(s),params:Object.fromEntries(i)}:{pathname:m(s)}}catch{return{pathname:""}}};return W(o(t),o(e))}function R(e){try{let t=new URL(e,window.location.origin);return m(t.pathname)}catch{return e}}function E(e){return/^https?:\/\//i.test(e)}function Pe(e,t){let n=t??"/";if(!e||typeof window>"u"||!window.location?.origin)return n;try{let o=new URL(e,window.location.origin),r=o.origin===window.location.origin,s=o.pathname.startsWith("/")&&!o.pathname.startsWith("//"),i=/^\/:+$/.test(o.pathname),a=o.pathname==="/"&&!o.search&&o.hash;return r&&s&&!i&&!a?`${o.pathname}${o.search}${o.hash}`:n}catch{return e.startsWith("/")&&!e.startsWith("//")?e:n}}function De(e){return t=>{if(e.length!==0)for(let n of e)n&&(typeof n=="function"?n(t):"current"in n&&(n.current=t))}}var k='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"';function je(e){return e?`"${e}", ${k}`:k}function Fe(e){let t=parseFloat(e);return Math.round(t*16)}function Ne(e){if(typeof e!="number"||isNaN(e))throw new Error(`Invalid pixel value: ${e}`);return`${e/16}rem`}function B(e){if(!e)throw new Error("Hex color is undefined!");if(!/^#[0-9A-F]{6}$/i.test(e))throw new Error(`Invalid hex color: ${e}`);let t=parseInt(e.substring(1,3),16),n=parseInt(e.substring(3,5),16),o=parseInt(e.substring(5,7),16);return`${t} ${n} ${o}`}function Be(e){let t={};return Object.entries(e).forEach(([n,o])=>{o&&(t[`${n}Channel`]=B(o))}),{...e,...t}}function _(e,t){let n=s=>s.includes("var(--"),o=s=>s.trim().endsWith("%"),r={invalid:`[Alpha]: Invalid opacity "${e}" for ${t}.`,range:"Must be a number between 0 and 1 (e.g., 0.48).",format:'Must be a percentage (e.g., "48%") or CSS variable (e.g., "var(--opacity)").'};if(typeof e=="string"){if(o(e))return e;if(n(e))return`calc(${e} * 100%)`;let s=parseFloat(e.trim());if(!isNaN(s)&&s>=0&&s<=1)return`${Number((s*100).toFixed(2))}%`;throw new Error(`${r.invalid} ${r.format}`)}if(typeof e=="number"){if(e>=0&&e<=1)return`${Number((e*100).toFixed(2))}%`;throw new Error(`${r.invalid} ${r.range}`)}throw new Error(`${r.invalid}`)}function _e(e,t=1){if(!e?.trim())throw new Error("[Alpha]: Color is undefined or empty!");if(e.startsWith("#")||e.startsWith("rgb")||e.startsWith("rgba")||!e.includes("var")&&e.includes("Channel"))throw new Error([`[Alpha]: Unsupported color format "${e}"`,"\u2705 Supported formats:",'- RGB channels: "0 184 217"','- CSS variables with "Channel" prefix: "var(--palette-common-blackChannel, #000000)"',"\u274C Unsupported formats:",'- Hex: "#00B8D9"','- RGB: "rgb(0, 184, 217)"','- RGBA: "rgba(0, 184, 217, 1)"'].join(`
|
2
|
+
`));let o=_(t,e);return e.toLowerCase()==="currentcolor"?`color-mix(in srgb, currentColor ${o}, transparent)`:`rgba(${e} / ${o})`}function Je(e,t){return!e||!t.length||typeof e!="object"?!1:t.every(n=>n in e)}function qe(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function Ke(e,t){let n=e?Array.isArray(e)?e:[e]:[],o=Object.entries(t||{}).filter(([r,s])=>s!==void 0&&s!==!1).map(([r,s])=>Array.isArray(s)?s[0]?s[1]:"":s?r:"").filter(Boolean);return[...n.filter(Boolean),...o].join(" ")}function U(e){if(!e||typeof e!="string")return console.warn("Invalid cookie key provided"),null;try{let t=`${e}=`,r=decodeURIComponent(document.cookie).split("; ").find(i=>i.startsWith(t));if(!r)return null;let s=r.substring(t.length);try{return JSON.parse(s)}catch{return s}}catch(t){return console.error("Error retrieving cookie:",t),null}}function T(e,t,n){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{daysUntilExpiration:o=0,sameSite:r="Strict",secure:s=!1,path:i="/",domain:a}=n??{};try{let l=encodeURIComponent(typeof t=="string"?t:JSON.stringify(t)),c=[`${e}=${l}`,`path=${i}`,r&&`SameSite=${r}`,s&&"Secure",a&&`domain=${a}`];if(o>0){let p=new Date(Date.now()+o*24*60*60*1e3);c.push(`expires=${p.toUTCString()}`)}document.cookie=c.filter(Boolean).join("; ")}catch(l){console.error("Error setting cookie:",l)}}function O(e,t){if(!e||typeof e!="string"){console.error("Invalid cookie key provided");return}let{path:n="/",domain:o}=t??{};try{let r=[`${e}=`,"expires=Thu, 01 Jan 1970 00:00:00 GMT",`path=${n}`,o&&`domain=${o}`,"Secure"];document.cookie=r.filter(Boolean).join("; ")}catch(r){console.error("Error removing cookie:",r)}}function et(e,t,n=!0){if(!e||!t)return console.warn("isActiveLink: pathname or itemPath is empty!"),!1;if(t.startsWith("#")||E(t))return!1;let o=m(e),r=m(R(t));return n||w(t)?o===r||o.startsWith(`${r}/`)||o.startsWith(`${r}?`):o===r}function M(e,t){if(!z())return t??null;let n=localStorage.getItem(e);if(n!=="undefined"){if(n)try{return JSON.parse(n)}catch{return n??t??null}return t??null}}function g(e,t){try{let n=JSON.stringify(t);window.localStorage.setItem(e,n)}catch(n){console.error("Error while setting storage:",n)}}function L(e){try{window.localStorage.removeItem(e)}catch(t){console.error("Error while removing from storage:",t)}}function z(){try{let e="__some_random_key_you_are_not_going_to_use__";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch{return!1}}function ot(e){if(typeof e!="string"||!e.trim())return console.error("Invalid input: CSS value must be a non-empty string"),"";let t=e.match(/var\(\s*(--[\w-]+)(?:\s*,[^)]*)?\s*\)/);return t?t[1]:(console.error(`Invalid CSS variable format: "${e}". Expected format: var(--variable-name)`),"")}function st(e){if(typeof e!="string")return console.warn("Invalid CSS value provided"),"";let t=e.trim();return t?t.includes("/* @noflip */")?t:`${t} /* @noflip */`:(console.warn("Empty CSS value provided"),"")}function V(e,t=""){return e==null||typeof e=="number"&&Number.isNaN(e)?t:e.toString()}function J(e){let n=V(e).replace(/[^0-9.]/g,""),[o,...r]=n.split(".");return r.length>0?`${o}.${r.join("")}`:o}function Y(e,t=""){if(e==null||typeof e=="number"&&Number.isNaN(e))return t;let n=parseFloat(e.toString());return Number.isNaN(n)?t:n}var at={onChange:J,onBlur:Y,value:V};import{useState as q,useCallback as $}from"react";function ct(e=!1){let[t,n]=q(e),o=$((s,i)=>{n(i)},[]),r=$(()=>{n(e)},[e]);return{value:t,setValue:n,onChange:o,reset:r}}import{useState as G,useCallback as b}from"react";function dt(e=!1){let[t,n]=G(e),o=b(()=>{n(!0)},[]),r=b(()=>{n(!1)},[]),s=b(()=>{n(i=>!i)},[]);return{value:t,onTrue:o,onFalse:r,onToggle:s,setValue:n}}import{useState as K,useCallback as I}from"react";function gt(){let[e,t]=K(null),n=I(r=>{t(r.currentTarget)},[]),o=I(()=>{t(null)},[]);return{open:!!e,anchorEl:e,onOpen:n,onClose:o,setAnchorEl:t}}import{useMemo as Q,useState as X,useEffect as Z,useCallback as S}from"react";function xt(e,t,n){let{initializeWithValue:o=!0,...r}=n??{},s=t&&typeof t=="object",[i,a]=X(t);Z(()=>{let u=U(e);u?a(s?d=>({...d,...u}):u):t&&o&&T(e,t,r)},[]);let l=S(u=>{s?a(d=>{let C={...d,...u};return T(e,C,r),C}):(T(e,u,r),a(u))},[r,s,e]),c=S((u,d)=>{s&&l({[u]:d})},[s,l]),p=S(u=>{a(u??t),O(e)},[t,e]);return Q(()=>({state:i,setState:l,setField:c,resetState:p}),[p,c,l,i])}import{useState as ee,useEffect as te}from"react";function Ct(e,t=1e3){let[n,o]=ee(e);return te(()=>{let r=setTimeout(()=>{o(e)},t);return()=>{clearTimeout(r)}},[e,t]),n}import{useState as ne,useCallback as x}from"react";function Et(e){let[t,n]=ne(e),o=x(i=>{n(a=>({...a,...i}))},[]),r=x((i,a)=>{o({[i]:a})},[o]),s=x(i=>{n(i??e)},[e]);return{state:t,setState:o,setField:r,resetState:s}}import{useState as oe,useEffect as re}from"react";function Ot(){let[e,t]=oe(!1);return re(()=>{t(!0)},[]),e}import{useMemo as se,useState as ie,useEffect as ae,useCallback as le}from"react";function Vt(e,t){let[n,o]=ie(!1),r=ue(e),s=le(()=>{let l=window.innerHeight,c=Math.round(window.scrollY),p=document.body.offsetHeight,f=Math.round(c/(p-l)*100);if(r.type==="percentage")o(f>=r.value);else{let u=p-l-c;o(r.value>=u)}},[r.type,r.value]),i=se(()=>{let l;return()=>{clearTimeout(l),l=setTimeout(s,100)}},[s]);return ae(()=>{let l=t?i:s;return window.addEventListener("scroll",l),()=>{window.removeEventListener("scroll",l)}},[i,s,t]),{isVisible:n,onBackToTop:()=>{window.scrollTo({top:0,behavior:"smooth"})},setIsVisible:o}}function ue(e){let t,n;if(typeof e=="string")if(e.endsWith("%")){if(t=Number(e.slice(0,-1)),isNaN(t))throw new Error("Invalid percentage value");n="percentage"}else throw new Error("String input must end with %");else t=e,n="number";return{value:t,type:n}}import{useRef as ce,useMemo as P,useState as A,useEffect as D,useCallback as pe,useLayoutEffect as fe}from"react";function Pt(e,t){let n=ce(null),o=e||n,[r,s]=A(void 0),[i,a]=A(void 0),l=typeof window<"u"?fe:D,c=pe(()=>{if(o.current){let u=o.current.getBoundingClientRect();s(u),a({scrollWidth:o.current.scrollWidth,scrollHeight:o.current.scrollHeight})}},[o]);l(()=>{c()},[c]),D(()=>{let u=t||"resize";return window.addEventListener(u,c),()=>{window.removeEventListener(u,c)}},[t,c]);let p=P(()=>r,[r]),f=P(()=>i,[i]);return{elementRef:o,top:p?.top??0,right:p?.right??0,bottom:p?.bottom??0,left:p?.left??0,x:p?.x??0,y:p?.y??0,width:p?.width??0,height:p?.height??0,scrollWidth:f?.scrollWidth??0,scrollHeight:f?.scrollHeight??0}}import{useMemo as de,useState as me,useCallback as y}from"react";function Ht(e,t){let[n,o]=me(t??[]),r=y(l=>{o(c=>Te(c,l))},[]),s=y(()=>{o(l=>l.length===e.length?[]:e)},[e]),i=y(()=>{o([])},[]),a=de(()=>n.length===0?"unchecked":n.length===e.length?"checked":"indeterminate",[e.length,n.length]);return{values:n,status:a,setValues:o,onSelectAllItems:s,onDeSelectAllItems:i,onToggleSelectItem:r}}function Te(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}import{useRef as ge,useCallback as H}from"react";function Nt({click:e,doubleClick:t,timeout:n=250}){let o=ge(null),r=H(()=>{o.current&&(clearTimeout(o.current),o.current=null)},[]);return H(i=>{r(),e&&i.detail===1&&(o.current=setTimeout(()=>{e(i)},n)),i.detail%2===0&&t(i)},[e,t,n,r])}import{useMemo as he,useState as be,useEffect as Se,useCallback as v}from"react";function zt(e,t,n){let{initializeWithValue:o=!0}=n??{},r=t&&typeof t=="object",[s,i]=be(t);Se(()=>{let f=M(e);f?i(r?u=>({...u,...f}):f):t&&o&&g(e,t)},[]);let a=v(f=>{r?i(u=>{let d={...u,...f};return g(e,d),d}):(g(e,f),i(f))},[e,r]),l=v((f,u)=>{r&&a({[f]:u})},[r,a]),c=v(f=>{i(f??t),L(e)},[t,e]);return he(()=>({state:s,setState:a,setField:l,resetState:c}),[c,l,a,s])}import{useRef as xe,useState as ye,useCallback as j}from"react";function qt(e){let t=xe(null),n=e||t,[o,r]=ye(!1),s=j(()=>{r(!0)},[]),i=j(()=>{r(!1)},[]);return{elementRef:n,anchorEl:n.current,open:o,onOpen:s,onClose:i,setOpen:r}}import{useState as ve,useEffect as Ce,useCallback as we}from"react";function Qt(e,t="- -"){let[n,o]=ve({days:t,hours:t,minutes:t,seconds:t}),r=we(()=>{let s=new Date,{days:i,hours:a,minutes:l,seconds:c}=Re(e,s);o({days:h(i),hours:h(a),minutes:h(l),seconds:h(c)})},[e]);return Ce(()=>{r();let s=setInterval(r,1e3);return()=>clearInterval(s)},[]),n}function h(e){return String(e).length===1?`0${e}`:`${e}`}function Re(e,t){let n=e.getTime()-t.getTime();return{days:Math.floor(n/(1e3*60*60*24)),hours:Math.floor(n%(1e3*60*60*24)/(1e3*60*60)),minutes:Math.floor(n%(1e3*60*60)/(1e3*60)),seconds:Math.floor(n%(1e3*60)/1e3)}}import{useRef as Ee,useState as ke,useEffect as Ue,useCallback as Oe}from"react";function en(e=0){let t=Ee(null),[n,o]=ke(!1),r=Oe(()=>{let s=window.scrollY;if(t.current){let i=t.current.offsetTop;o(s>i-e)}else o(s>e)},[e]);return Ue(()=>(r(),window.addEventListener("scroll",r),()=>{window.removeEventListener("scroll",r)}),[r]),{elementRef:t,offsetTop:n}}import{useState as F,useEffect as Me,useCallback as N}from"react";function on(e){let[t,n]=F(e),[o,r]=F(!1),s=N(()=>{r(!0)},[]),i=N(()=>{r(!1),n(e)},[e]);return Me(()=>{let a=null;return o&&t>0?a=setInterval(()=>{n(l=>l-1)},1e3):t<=0&&r(!1),()=>{a&&clearInterval(a)}},[o,t]),{value:t,setValue:n,isCounting:o,start:s,reset:i}}import{useState as Le,useCallback as Ve}from"react";function an(){let[e,t]=Le(null);return{copy:Ve(async o=>{if(!navigator?.clipboard)return console.warn("Clipboard not supported"),!1;try{return await navigator.clipboard.writeText(o),t(o),!0}catch(r){return console.warn("Copy failed",r),t(null),!1}},[t]),copiedText:e}}export{Be as createPaletteChannel,U as getCookie,M as getStorage,Je as hasKeys,w as hasParams,B as hexToRgbChannel,et as isActiveLink,Ie as isEqualPath,E as isExternalLink,z as localStorageAvailable,Ke as mergeClasses,De as mergeRefs,st as noRtlFlip,ot as parseCssVar,Ne as pxToRem,Fe as remToPx,O as removeCookie,m as removeLastSlash,R as removeParams,L as removeStorage,Pe as safeReturnUrl,T as setCookie,je as setFont,g as setStorage,at as transformNumber,V as transformValue,Y as transformValueOnBlur,J as transformValueOnChange,Te as updateSelectedItems,Vt as useBackToTop,dt as useBoolean,Pt as useClientRect,xt as useCookies,an as useCopyToClipboard,Qt as useCountdownDate,on as useCountdownSeconds,Ct as useDebounce,Nt as useDoubleClick,Ot as useIsClient,zt as useLocalStorage,Ht as useMultiSelect,gt as usePopover,qt as usePopoverHover,en as useScrollOffsetTop,Et as useSetState,ct as useTabs,qe as uuidv4,_e as varAlpha};
|
package/dist/utils/index.cjs
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
"use strict";var l=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var
|
2
|
-
`));let n=
|
1
|
+
"use strict";var l=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var C=(r,t)=>{for(var e in t)l(r,e,{get:t[e],enumerable:!0})},I=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of T(t))!v.call(r,o)&&o!==e&&l(r,o,{get:()=>t[o],enumerable:!(n=k(t,o))||n.enumerable});return r};var E=r=>I(l({},"__esModule",{value:!0}),r);var Q={};C(Q,{createPaletteChannel:()=>L,getCookie:()=>B,getStorage:()=>q,hasKeys:()=>V,hasParams:()=>p,hexToRgbChannel:()=>b,isActiveLink:()=>J,isEqualPath:()=>P,isExternalLink:()=>m,localStorageAvailable:()=>y,mergeClasses:()=>j,mergeRefs:()=>A,noRtlFlip:()=>z,parseCssVar:()=>K,pxToRem:()=>U,remToPx:()=>N,removeCookie:()=>M,removeLastSlash:()=>a,removeParams:()=>f,removeStorage:()=>H,safeReturnUrl:()=>R,setCookie:()=>D,setFont:()=>O,setStorage:()=>G,transformNumber:()=>Y,transformValue:()=>g,transformValueOnBlur:()=>S,transformValueOnChange:()=>w,uuidv4:()=>W,varAlpha:()=>F});module.exports=E(Q);var x=require("es-toolkit");function p(r){try{let t=new URL(r,window.location.origin);return Array.from(t.searchParams.keys()).length>0}catch{return!1}}function a(r){return r!=="/"&&r.endsWith("/")?r.slice(0,-1):r}function P(r,t,e={deep:!0}){let n=o=>{try{let{pathname:i,searchParams:s}=new URL(o.trim(),"http://dummy");return e.deep?{pathname:a(i),params:Object.fromEntries(s)}:{pathname:a(i)}}catch{return{pathname:""}}};return(0,x.isEqual)(n(t),n(r))}function f(r){try{let t=new URL(r,window.location.origin);return a(t.pathname)}catch{return r}}function m(r){return/^https?:\/\//i.test(r)}function R(r,t){let e=t??"/";if(!r||typeof window>"u"||!window.location?.origin)return e;try{let n=new URL(r,window.location.origin),o=n.origin===window.location.origin,i=n.pathname.startsWith("/")&&!n.pathname.startsWith("//"),s=/^\/:+$/.test(n.pathname),u=n.pathname==="/"&&!n.search&&n.hash;return o&&i&&!s&&!u?`${n.pathname}${n.search}${n.hash}`:e}catch{return r.startsWith("/")&&!r.startsWith("//")?r:e}}function A(r){return t=>{if(r.length!==0)for(let e of r)e&&(typeof e=="function"?e(t):"current"in e&&(e.current=t))}}var h='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"';function O(r){return r?`"${r}", ${h}`:h}function N(r){let t=parseFloat(r);return Math.round(t*16)}function U(r){if(typeof r!="number"||isNaN(r))throw new Error(`Invalid pixel value: ${r}`);return`${r/16}rem`}function b(r){if(!r)throw new Error("Hex color is undefined!");if(!/^#[0-9A-F]{6}$/i.test(r))throw new Error(`Invalid hex color: ${r}`);let t=parseInt(r.substring(1,3),16),e=parseInt(r.substring(3,5),16),n=parseInt(r.substring(5,7),16);return`${t} ${e} ${n}`}function L(r){let t={};return Object.entries(r).forEach(([e,n])=>{n&&(t[`${e}Channel`]=b(n))}),{...r,...t}}function _(r,t){let e=i=>i.includes("var(--"),n=i=>i.trim().endsWith("%"),o={invalid:`[Alpha]: Invalid opacity "${r}" for ${t}.`,range:"Must be a number between 0 and 1 (e.g., 0.48).",format:'Must be a percentage (e.g., "48%") or CSS variable (e.g., "var(--opacity)").'};if(typeof r=="string"){if(n(r))return r;if(e(r))return`calc(${r} * 100%)`;let i=parseFloat(r.trim());if(!isNaN(i)&&i>=0&&i<=1)return`${Number((i*100).toFixed(2))}%`;throw new Error(`${o.invalid} ${o.format}`)}if(typeof r=="number"){if(r>=0&&r<=1)return`${Number((r*100).toFixed(2))}%`;throw new Error(`${o.invalid} ${o.range}`)}throw new Error(`${o.invalid}`)}function F(r,t=1){if(!r?.trim())throw new Error("[Alpha]: Color is undefined or empty!");if(r.startsWith("#")||r.startsWith("rgb")||r.startsWith("rgba")||!r.includes("var")&&r.includes("Channel"))throw new Error([`[Alpha]: Unsupported color format "${r}"`,"\u2705 Supported formats:",'- RGB channels: "0 184 217"','- CSS variables with "Channel" prefix: "var(--palette-common-blackChannel, #000000)"',"\u274C Unsupported formats:",'- Hex: "#00B8D9"','- RGB: "rgb(0, 184, 217)"','- RGBA: "rgba(0, 184, 217, 1)"'].join(`
|
2
|
+
`));let n=_(t,r);return r.toLowerCase()==="currentcolor"?`color-mix(in srgb, currentColor ${n}, transparent)`:`rgba(${r} / ${n})`}function V(r,t){return!r||!t.length||typeof r!="object"?!1:t.every(e=>e in r)}function W(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{let t=Math.random()*16|0;return(r==="x"?t:t&3|8).toString(16)})}function j(r,t){let e=r?Array.isArray(r)?r:[r]:[],n=Object.entries(t||{}).filter(([o,i])=>i!==void 0&&i!==!1).map(([o,i])=>Array.isArray(i)?i[0]?i[1]:"":i?o:"").filter(Boolean);return[...e.filter(Boolean),...n].join(" ")}function B(r){if(!r||typeof r!="string")return console.warn("Invalid cookie key provided"),null;try{let t=`${r}=`,o=decodeURIComponent(document.cookie).split("; ").find(s=>s.startsWith(t));if(!o)return null;let i=o.substring(t.length);try{return JSON.parse(i)}catch{return i}}catch(t){return console.error("Error retrieving cookie:",t),null}}function D(r,t,e){if(!r||typeof r!="string"){console.error("Invalid cookie key provided");return}let{daysUntilExpiration:n=0,sameSite:o="Strict",secure:i=!1,path:s="/",domain:u}=e??{};try{let c=encodeURIComponent(typeof t=="string"?t:JSON.stringify(t)),d=[`${r}=${c}`,`path=${s}`,o&&`SameSite=${o}`,i&&"Secure",u&&`domain=${u}`];if(n>0){let $=new Date(Date.now()+n*24*60*60*1e3);d.push(`expires=${$.toUTCString()}`)}document.cookie=d.filter(Boolean).join("; ")}catch(c){console.error("Error setting cookie:",c)}}function M(r,t){if(!r||typeof r!="string"){console.error("Invalid cookie key provided");return}let{path:e="/",domain:n}=t??{};try{let o=[`${r}=`,"expires=Thu, 01 Jan 1970 00:00:00 GMT",`path=${e}`,n&&`domain=${n}`,"Secure"];document.cookie=o.filter(Boolean).join("; ")}catch(o){console.error("Error removing cookie:",o)}}function J(r,t,e=!0){if(!r||!t)return console.warn("isActiveLink: pathname or itemPath is empty!"),!1;if(t.startsWith("#")||m(t))return!1;let n=a(r),o=a(f(t));return e||p(t)?n===o||n.startsWith(`${o}/`)||n.startsWith(`${o}?`):n===o}function q(r,t){if(!y())return t??null;let e=localStorage.getItem(r);if(e!=="undefined"){if(e)try{return JSON.parse(e)}catch{return e??t??null}return t??null}}function G(r,t){try{let e=JSON.stringify(t);window.localStorage.setItem(r,e)}catch(e){console.error("Error while setting storage:",e)}}function H(r){try{window.localStorage.removeItem(r)}catch(t){console.error("Error while removing from storage:",t)}}function y(){try{let r="__some_random_key_you_are_not_going_to_use__";return window.localStorage.setItem(r,r),window.localStorage.removeItem(r),!0}catch{return!1}}function K(r){if(typeof r!="string"||!r.trim())return console.error("Invalid input: CSS value must be a non-empty string"),"";let t=r.match(/var\(\s*(--[\w-]+)(?:\s*,[^)]*)?\s*\)/);return t?t[1]:(console.error(`Invalid CSS variable format: "${r}". Expected format: var(--variable-name)`),"")}function z(r){if(typeof r!="string")return console.warn("Invalid CSS value provided"),"";let t=r.trim();return t?t.includes("/* @noflip */")?t:`${t} /* @noflip */`:(console.warn("Empty CSS value provided"),"")}function g(r,t=""){return r==null||typeof r=="number"&&Number.isNaN(r)?t:r.toString()}function w(r){let e=g(r).replace(/[^0-9.]/g,""),[n,...o]=e.split(".");return o.length>0?`${n}.${o.join("")}`:n}function S(r,t=""){if(r==null||typeof r=="number"&&Number.isNaN(r))return t;let e=parseFloat(r.toString());return Number.isNaN(e)?t:e}var Y={onChange:w,onBlur:S,value:g};0&&(module.exports={createPaletteChannel,getCookie,getStorage,hasKeys,hasParams,hexToRgbChannel,isActiveLink,isEqualPath,isExternalLink,localStorageAvailable,mergeClasses,mergeRefs,noRtlFlip,parseCssVar,pxToRem,remToPx,removeCookie,removeLastSlash,removeParams,removeStorage,safeReturnUrl,setCookie,setFont,setStorage,transformNumber,transformValue,transformValueOnBlur,transformValueOnChange,uuidv4,varAlpha});
|
package/dist/utils/index.d.cts
CHANGED
@@ -9,4 +9,5 @@ export { CookieOptions, getCookie, removeCookie, setCookie } from './cookies/coo
|
|
9
9
|
export { isActiveLink } from './active-link/active-link.cjs';
|
10
10
|
export { getStorage, localStorageAvailable, removeStorage, setStorage } from './local-storage/local-storage.cjs';
|
11
11
|
export { parseCssVar } from './css-variables/css-variables.cjs';
|
12
|
+
export { noRtlFlip } from './right-to-left/right-to-left.cjs';
|
12
13
|
export { InputValue, transformNumber, transformValue, transformValueOnBlur, transformValueOnChange } from './transform-number/transform-number.cjs';
|
package/dist/utils/index.d.ts
CHANGED
@@ -9,4 +9,5 @@ export { CookieOptions, getCookie, removeCookie, setCookie } from './cookies/coo
|
|
9
9
|
export { isActiveLink } from './active-link/active-link.js';
|
10
10
|
export { getStorage, localStorageAvailable, removeStorage, setStorage } from './local-storage/local-storage.js';
|
11
11
|
export { parseCssVar } from './css-variables/css-variables.js';
|
12
|
+
export { noRtlFlip } from './right-to-left/right-to-left.js';
|
12
13
|
export { InputValue, transformNumber, transformValue, transformValueOnBlur, transformValueOnChange } from './transform-number/transform-number.js';
|
package/dist/utils/index.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
import{isEqual as
|
2
|
-
`));let n=y(t,r);return r.toLowerCase()==="currentcolor"?`color-mix(in srgb, currentColor ${n}, transparent)`:`rgba(${r} / ${n})`}function
|
1
|
+
import{isEqual as h}from"es-toolkit";function p(r){try{let t=new URL(r,window.location.origin);return Array.from(t.searchParams.keys()).length>0}catch{return!1}}function a(r){return r!=="/"&&r.endsWith("/")?r.slice(0,-1):r}function T(r,t,e={deep:!0}){let n=o=>{try{let{pathname:i,searchParams:s}=new URL(o.trim(),"http://dummy");return e.deep?{pathname:a(i),params:Object.fromEntries(s)}:{pathname:a(i)}}catch{return{pathname:""}}};return h(n(t),n(r))}function f(r){try{let t=new URL(r,window.location.origin);return a(t.pathname)}catch{return r}}function m(r){return/^https?:\/\//i.test(r)}function v(r,t){let e=t??"/";if(!r||typeof window>"u"||!window.location?.origin)return e;try{let n=new URL(r,window.location.origin),o=n.origin===window.location.origin,i=n.pathname.startsWith("/")&&!n.pathname.startsWith("//"),s=/^\/:+$/.test(n.pathname),u=n.pathname==="/"&&!n.search&&n.hash;return o&&i&&!s&&!u?`${n.pathname}${n.search}${n.hash}`:e}catch{return r.startsWith("/")&&!r.startsWith("//")?r:e}}function I(r){return t=>{if(r.length!==0)for(let e of r)e&&(typeof e=="function"?e(t):"current"in e&&(e.current=t))}}var g='-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"';function P(r){return r?`"${r}", ${g}`:g}function R(r){let t=parseFloat(r);return Math.round(t*16)}function A(r){if(typeof r!="number"||isNaN(r))throw new Error(`Invalid pixel value: ${r}`);return`${r/16}rem`}function b(r){if(!r)throw new Error("Hex color is undefined!");if(!/^#[0-9A-F]{6}$/i.test(r))throw new Error(`Invalid hex color: ${r}`);let t=parseInt(r.substring(1,3),16),e=parseInt(r.substring(3,5),16),n=parseInt(r.substring(5,7),16);return`${t} ${e} ${n}`}function N(r){let t={};return Object.entries(r).forEach(([e,n])=>{n&&(t[`${e}Channel`]=b(n))}),{...r,...t}}function y(r,t){let e=i=>i.includes("var(--"),n=i=>i.trim().endsWith("%"),o={invalid:`[Alpha]: Invalid opacity "${r}" for ${t}.`,range:"Must be a number between 0 and 1 (e.g., 0.48).",format:'Must be a percentage (e.g., "48%") or CSS variable (e.g., "var(--opacity)").'};if(typeof r=="string"){if(n(r))return r;if(e(r))return`calc(${r} * 100%)`;let i=parseFloat(r.trim());if(!isNaN(i)&&i>=0&&i<=1)return`${Number((i*100).toFixed(2))}%`;throw new Error(`${o.invalid} ${o.format}`)}if(typeof r=="number"){if(r>=0&&r<=1)return`${Number((r*100).toFixed(2))}%`;throw new Error(`${o.invalid} ${o.range}`)}throw new Error(`${o.invalid}`)}function U(r,t=1){if(!r?.trim())throw new Error("[Alpha]: Color is undefined or empty!");if(r.startsWith("#")||r.startsWith("rgb")||r.startsWith("rgba")||!r.includes("var")&&r.includes("Channel"))throw new Error([`[Alpha]: Unsupported color format "${r}"`,"\u2705 Supported formats:",'- RGB channels: "0 184 217"','- CSS variables with "Channel" prefix: "var(--palette-common-blackChannel, #000000)"',"\u274C Unsupported formats:",'- Hex: "#00B8D9"','- RGB: "rgb(0, 184, 217)"','- RGBA: "rgba(0, 184, 217, 1)"'].join(`
|
2
|
+
`));let n=y(t,r);return r.toLowerCase()==="currentcolor"?`color-mix(in srgb, currentColor ${n}, transparent)`:`rgba(${r} / ${n})`}function _(r,t){return!r||!t.length||typeof r!="object"?!1:t.every(e=>e in r)}function V(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{let t=Math.random()*16|0;return(r==="x"?t:t&3|8).toString(16)})}function j(r,t){let e=r?Array.isArray(r)?r:[r]:[],n=Object.entries(t||{}).filter(([o,i])=>i!==void 0&&i!==!1).map(([o,i])=>Array.isArray(i)?i[0]?i[1]:"":i?o:"").filter(Boolean);return[...e.filter(Boolean),...n].join(" ")}function D(r){if(!r||typeof r!="string")return console.warn("Invalid cookie key provided"),null;try{let t=`${r}=`,o=decodeURIComponent(document.cookie).split("; ").find(s=>s.startsWith(t));if(!o)return null;let i=o.substring(t.length);try{return JSON.parse(i)}catch{return i}}catch(t){return console.error("Error retrieving cookie:",t),null}}function M(r,t,e){if(!r||typeof r!="string"){console.error("Invalid cookie key provided");return}let{daysUntilExpiration:n=0,sameSite:o="Strict",secure:i=!1,path:s="/",domain:u}=e??{};try{let c=encodeURIComponent(typeof t=="string"?t:JSON.stringify(t)),l=[`${r}=${c}`,`path=${s}`,o&&`SameSite=${o}`,i&&"Secure",u&&`domain=${u}`];if(n>0){let x=new Date(Date.now()+n*24*60*60*1e3);l.push(`expires=${x.toUTCString()}`)}document.cookie=l.filter(Boolean).join("; ")}catch(c){console.error("Error setting cookie:",c)}}function J(r,t){if(!r||typeof r!="string"){console.error("Invalid cookie key provided");return}let{path:e="/",domain:n}=t??{};try{let o=[`${r}=`,"expires=Thu, 01 Jan 1970 00:00:00 GMT",`path=${e}`,n&&`domain=${n}`,"Secure"];document.cookie=o.filter(Boolean).join("; ")}catch(o){console.error("Error removing cookie:",o)}}function H(r,t,e=!0){if(!r||!t)return console.warn("isActiveLink: pathname or itemPath is empty!"),!1;if(t.startsWith("#")||m(t))return!1;let n=a(r),o=a(f(t));return e||p(t)?n===o||n.startsWith(`${o}/`)||n.startsWith(`${o}?`):n===o}function z(r,t){if(!w())return t??null;let e=localStorage.getItem(r);if(e!=="undefined"){if(e)try{return JSON.parse(e)}catch{return e??t??null}return t??null}}function Y(r,t){try{let e=JSON.stringify(t);window.localStorage.setItem(r,e)}catch(e){console.error("Error while setting storage:",e)}}function Q(r){try{window.localStorage.removeItem(r)}catch(t){console.error("Error while removing from storage:",t)}}function w(){try{let r="__some_random_key_you_are_not_going_to_use__";return window.localStorage.setItem(r,r),window.localStorage.removeItem(r),!0}catch{return!1}}function Z(r){if(typeof r!="string"||!r.trim())return console.error("Invalid input: CSS value must be a non-empty string"),"";let t=r.match(/var\(\s*(--[\w-]+)(?:\s*,[^)]*)?\s*\)/);return t?t[1]:(console.error(`Invalid CSS variable format: "${r}". Expected format: var(--variable-name)`),"")}function tr(r){if(typeof r!="string")return console.warn("Invalid CSS value provided"),"";let t=r.trim();return t?t.includes("/* @noflip */")?t:`${t} /* @noflip */`:(console.warn("Empty CSS value provided"),"")}function d(r,t=""){return r==null||typeof r=="number"&&Number.isNaN(r)?t:r.toString()}function S(r){let e=d(r).replace(/[^0-9.]/g,""),[n,...o]=e.split(".");return o.length>0?`${n}.${o.join("")}`:n}function $(r,t=""){if(r==null||typeof r=="number"&&Number.isNaN(r))return t;let e=parseFloat(r.toString());return Number.isNaN(e)?t:e}var nr={onChange:S,onBlur:$,value:d};export{N as createPaletteChannel,D as getCookie,z as getStorage,_ as hasKeys,p as hasParams,b as hexToRgbChannel,H as isActiveLink,T as isEqualPath,m as isExternalLink,w as localStorageAvailable,j as mergeClasses,I as mergeRefs,tr as noRtlFlip,Z as parseCssVar,A as pxToRem,R as remToPx,J as removeCookie,a as removeLastSlash,f as removeParams,Q as removeStorage,v as safeReturnUrl,M as setCookie,P as setFont,Y as setStorage,nr as transformNumber,d as transformValue,$ as transformValueOnBlur,S as transformValueOnChange,V as uuidv4,U as varAlpha};
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";var t=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var u=(r,n)=>{for(var i in n)t(r,i,{get:n[i],enumerable:!0})},d=(r,n,i,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of p(n))!f.call(r,o)&&o!==i&&t(r,o,{get:()=>n[o],enumerable:!(e=l(n,o))||e.enumerable});return r};var m=r=>d(t({},"__esModule",{value:!0}),r);var a={};u(a,{noRtlFlip:()=>v});module.exports=m(a);function v(r){if(typeof r!="string")return console.warn("Invalid CSS value provided"),"";let n=r.trim();return n?n.includes("/* @noflip */")?n:`${n} /* @noflip */`:(console.warn("Empty CSS value provided"),"")}0&&(module.exports={noRtlFlip});
|
@@ -0,0 +1 @@
|
|
1
|
+
export { noRtlFlip } from './right-to-left.cjs';
|
@@ -0,0 +1 @@
|
|
1
|
+
export { noRtlFlip } from './right-to-left.js';
|
@@ -0,0 +1 @@
|
|
1
|
+
function o(r){if(typeof r!="string")return console.warn("Invalid CSS value provided"),"";let n=r.trim();return n?n.includes("/* @noflip */")?n:`${n} /* @noflip */`:(console.warn("Empty CSS value provided"),"")}export{o as noRtlFlip};
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";var t=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var d=(r,n)=>{for(var o in n)t(r,o,{get:n[o],enumerable:!0})},f=(r,n,o,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of p(n))!u.call(r,i)&&i!==o&&t(r,i,{get:()=>n[i],enumerable:!(e=l(n,i))||e.enumerable});return r};var v=r=>f(t({},"__esModule",{value:!0}),r);var c={};d(c,{noRtlFlip:()=>a});module.exports=v(c);function a(r){if(typeof r!="string")return console.warn("Invalid CSS value provided"),"";let n=r.trim();return n?n.includes("/* @noflip */")?n:`${n} /* @noflip */`:(console.warn("Empty CSS value provided"),"")}0&&(module.exports={noRtlFlip});
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/**
|
2
|
+
* Prevents automatic RTL (right-to-left) flipping of a CSS declaration
|
3
|
+
* by appending the `/* @noflip *\/` comment.
|
4
|
+
*
|
5
|
+
* @param {string} cssValue - A CSS declaration string (e.g., "margin-left: 10px;").
|
6
|
+
* @returns {string} The same declaration string with the `/* @noflip *\/` comment appended.
|
7
|
+
*
|
8
|
+
* @example
|
9
|
+
* noRtlFlip('margin-left: 10px;') // 'margin-left: 10px; /* @noflip *\/'
|
10
|
+
*/
|
11
|
+
declare function noRtlFlip(cssValue: unknown): string;
|
12
|
+
|
13
|
+
export { noRtlFlip };
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/**
|
2
|
+
* Prevents automatic RTL (right-to-left) flipping of a CSS declaration
|
3
|
+
* by appending the `/* @noflip *\/` comment.
|
4
|
+
*
|
5
|
+
* @param {string} cssValue - A CSS declaration string (e.g., "margin-left: 10px;").
|
6
|
+
* @returns {string} The same declaration string with the `/* @noflip *\/` comment appended.
|
7
|
+
*
|
8
|
+
* @example
|
9
|
+
* noRtlFlip('margin-left: 10px;') // 'margin-left: 10px; /* @noflip *\/'
|
10
|
+
*/
|
11
|
+
declare function noRtlFlip(cssValue: unknown): string;
|
12
|
+
|
13
|
+
export { noRtlFlip };
|
@@ -0,0 +1 @@
|
|
1
|
+
function i(r){if(typeof r!="string")return console.warn("Invalid CSS value provided"),"";let n=r.trim();return n?n.includes("/* @noflip */")?n:`${n} /* @noflip */`:(console.warn("Empty CSS value provided"),"")}export{i as noRtlFlip};
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "minimal-shared",
|
3
3
|
"author": "Minimals",
|
4
|
-
"version": "1.0
|
4
|
+
"version": "1.1.0",
|
5
5
|
"description": "Shared hooks and utils used by Minimal UI and Zone UI.",
|
6
6
|
"keywords": [
|
7
7
|
"typescript",
|
@@ -54,20 +54,20 @@
|
|
54
54
|
}
|
55
55
|
},
|
56
56
|
"dependencies": {
|
57
|
-
"es-toolkit": "^1.
|
57
|
+
"es-toolkit": "^1.39.10"
|
58
58
|
},
|
59
59
|
"devDependencies": {
|
60
|
-
"@testing-library/jest-dom": "^6.
|
61
|
-
"@testing-library/react": "^16.
|
62
|
-
"@types/node": "^
|
63
|
-
"@types/react": "19.
|
64
|
-
"jsdom": "^
|
60
|
+
"@testing-library/jest-dom": "^6.8.0",
|
61
|
+
"@testing-library/react": "^16.3.0",
|
62
|
+
"@types/node": "^24.5.2",
|
63
|
+
"@types/react": "19.1.14",
|
64
|
+
"jsdom": "^27.0.0",
|
65
65
|
"react": "^19.0.0",
|
66
|
-
"tsup": "^8.
|
67
|
-
"typescript": "^5.
|
68
|
-
"vitest": "^3.
|
69
|
-
"internal-
|
70
|
-
"internal-
|
66
|
+
"tsup": "^8.5.0",
|
67
|
+
"typescript": "^5.9.2",
|
68
|
+
"vitest": "^3.2.4",
|
69
|
+
"internal-eslint-config": "1.0.0",
|
70
|
+
"internal-ts-config": "1.0.0"
|
71
71
|
},
|
72
72
|
"peerDependencies": {
|
73
73
|
"react": "^18.0.0 || ^19.0.0"
|