UNPKG

xuxi

Version:

Dynamically utility for combining different types of values ​​into a single value.

2 lines (1 loc) 4.24 kB
"use strict";function b(e){let n=0,i,r="";if(typeof e=="string"||typeof e=="number"||typeof e=="bigint"||e===null)r+=e;else if(typeof e=="object")if(Array.isArray(e))for(;n<e.length;n++)e[n]&&(i=b(e[n]))&&(r&&(r+=" "),r+=i);else for(i in e)e[i]&&(r&&(r+=" "),r+=i);else typeof e=="function"&&(r+=b(e(r)));return r}function g(e,n=" "){let i=0,r,t="";if(typeof e=="object"&&e!==null)if(Array.isArray(e))for(;i<e.length;i++)e[i]&&(r=g(e[i],n))&&(t&&(t+=n),t+=r);else{for(r in e)e[r]&&(t&&(t+=n),t+=typeof e[r]=="object"?`${r}.${g(e[r],`${n}${r}.`)}`:`${r}: ${e[r]}`);for(const f of Object.getOwnPropertySymbols(e))e[f]&&(t&&(t+=n),t+=`${String(f)}: ${e[f]}`)}return t}function p(e,n=" "){let i=0,r,t="";if(e instanceof Date)t+=e.toISOString();else if(e instanceof Map)for(const[f,o]of e.entries())o&&(t&&(t+=n),t+=`${f}: ${o}`);else if(e instanceof Set)e.forEach(f=>{f&&(t&&(t+=n),t+=f)});else if(typeof e=="object"){if(Array.isArray(e))for(;i<e.length;i++)e[i]&&(r=p(e[i],n))&&(t&&(t+=n),t+=r)}else typeof e=="function"&&(t+=p(e(t),n));return t}function a(...e){let n="";for(let i=0;i<e.length;i++){const r=e[i],t=r&&b(r);t&&(n&&(n+=" "),n+=t)}return n}function $(...e){return{toString(){return a(...e)},recursive(n={}){return g(e,n.separator)},instanceof(n={}){return p(e,n.separator)},[Symbol.toPrimitive](){return a(...e)}}}function j(e){return(n={})=>{const i={...e.defaultVariants,...n},r=Object.keys(e.variants).map(t=>{const f=i[t],o=String(f),u=e.variants[t],c=o in u?o:f;return c?u[c]:void 0});return a(e.assign,r)}}function s(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function m(...e){const n=new WeakMap;function i(r,t){if(!t)return r;if(s(t)){if(n.has(t))return n.get(t);const f={...r};n.set(t,f),r=f}if(Array.isArray(t))return{...r,...m(...t)};if(typeof t=="function"){const f=t(r);return s(f)?i(r,f):{...r,...m(f)}}return s(t)&&Reflect.ownKeys(t).forEach(f=>{const o=t[f];s(o)&&s(r[f])?r[f]=i(r[f],o):r[f]=o}),r}return e.reduce((r,t)=>i(r,t),{})}function h(...e){const n=new WeakMap;function i(r,t){if(!t)return r;if(s(t)){if(n.has(t))return n.get(t);const f={...r};n.set(t,f),r=f}if(Array.isArray(t))return{...r,...h(...t)};if(typeof t=="function"){const f=t(r);return s(f)?i(r,f):{...r,...h(f)}}return s(t)&&Reflect.ownKeys(t).forEach(f=>{const o=t[f];r[f]===void 0?r[f]=o:s(o)&&s(r[f])&&(r[f]=i(r[f],o))}),r}return e.reduce((r,t)=>i(r,t),{})}function l(e,n=[],i=new WeakSet){const r=new Set(n);return i.has(e)?e:(i.add(e),Reflect.ownKeys(e).reduce((t,f)=>{const o=e[f];if(s(o)){const u=l(o,n,i);(Object.keys(u).length>0||typeof f=="symbol")&&(t[f]=u)}else if(Array.isArray(o)){const u=o.map(c=>s(c)?l(c,n,i):c).filter(c=>c&&!(s(c)&&Object.keys(c).length===0)||r.has(c));u.length>0&&(t[f]=u)}else(o||r.has(o)||typeof f=="symbol")&&(t[f]=o);return t},{}))}const y=(...e)=>l(m(...e),[0]);y.raw=m,y.preserve=h;function x(...e){return l(m(...e),[0])}const O=d("rem",{shouldScale:!0}),N=d("em");function S(e){const n=R(e);if(typeof n=="number")return n;if(typeof n=="string"){if(n.includes("calc")||n.includes("var"))return n;const i={px:1,rem:16,em:16},r=Object.keys(i).find(f=>n.includes(f));if(r)return parseFloat(n.replace(r,""))*i[r];const t=Number(n);return isNaN(t)?NaN:t}return NaN}function d(e,{shouldScale:n=!1}={}){function i(r){if(r===0||r==="0")return`0${e}`;if(typeof r=="number"){const t=`${r/16}${e}`;return n?A(t):t}if(typeof r=="string"){if(r===""||r.startsWith("calc(")||r.startsWith("clamp(")||r.includes("rgba("))return r;if(r.includes(","))return r.split(",").map(f=>i(f)).join(",");if(r.includes(" "))return r.split(" ").map(f=>i(f)).join(" ");if(r.includes(e))return n?A(r):r;const t=r.replace("px","");if(!Number.isNaN(Number(t))){const f=`${Number(t)/16}${e}`;return n?A(f):f}}return r}return i}function A(e){return e==="0rem"?"0rem":e}function R(e){var n;return typeof e!="string"||!/var\(--.*?scale\)/.test(e)?e:(n=e.match(/^calc\((.*?)\)$/))===null||n===void 0?void 0:n[1].split("*")[0].trim()}var w=Object.freeze({__proto__:null,clean:l,cnx:a,createConverter:d,cvx:j,em:N,isPlainObject:s,object:y,ocx:x,px:S,rem:O,string:$});export{l as clean,a as cnx,d as createConverter,j as cvx,w as default,N as em,s as isPlainObject,y as object,x as ocx,S as px,O as rem,$ as string,w as x};