react-classmate
Version:
A react tool to separate class name logic, create variants and manage styles.
4 lines (3 loc) • 6.06 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var T=require("tailwind-merge"),E=require("react");function h(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function x(t){if(Array.isArray(t))return t}function F(t){if(Array.isArray(t))return h(t)}function I(t,e,r){return(e=H(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function R(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function U(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n,i,l,o,u=[],a=!0,s=!1;try{if(l=(r=r.call(t)).next,e!==0)for(;!(a=(n=l.call(r)).done)&&(u.push(n.value),u.length!==e);a=!0);}catch(p){s=!0,i=p}finally{try{if(!a&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(s)throw i}}return u}}function B(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function M(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function c(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?M(Object(r),!0).forEach(function(n){I(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):M(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function D(t,e){return x(t)||U(t,e)||V(t,e)||B()}function q(t){return F(t)||R(t)||V(t)||$()}function W(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function H(t){var e=W(t,"string");return typeof e=="symbol"?e:e+""}function w(t){"@babel/helpers - typeof";return w=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w(t)}function V(t,e){if(t){if(typeof t=="string")return h(t,e);var r={}.toString.call(t).slice(8,-1);return r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set"?Array.from(t):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?h(t,e):void 0}}var K=function(e,r){for(var n={},i=0,l=Object.keys(r);i<l.length;i++){var o=l[i];o in e&&(n[r[o]]=e[o],delete e[o])}return c(c({},e),n)},P=function(e){var r=e.tag,n=e.computeClassName,i=e.displayName,l=e.styles,o=l===void 0?{}:l,u=e.propsToFilter,a=u===void 0?[]:u,s=E.forwardRef(function(p,m){var y=n(p),f={};for(var d in p)!d.startsWith("$")&&!a.includes(d)&&(f[d]=p[d]);var C=typeof o=="function"?o(p):o,g=w(f.style)==="object"&&f.style!==null?f.style:{},b=c(c({},C),g),v=f.className||"",N=T.twMerge(y,[v].filter(Boolean).join(" ").trim());return E.createElement(r,c(c({},f),{},{className:N,style:b,ref:m}))});return s.displayName=i||"Rc Component",s.__rcComputeClassName=n,s.__rcStyles=o,s.__rcTag=r,s},L=function(e,r,n){var i={},l="Styled(".concat(typeof e=="string"?e:"Component",")"),o=function(a,s){var p=function(y){return Object.assign(s,y),""};return r.map(function(m,y){var f=n[y];return typeof f=="function"?m+f(c(c({},a),{},{style:p})):m+(f??"")}).join("").replace(/\s+/g," ").trim()};return P({tag:e,computeClassName:function(a){return o(a,i)},displayName:l,styles:i})},z=function(e,r,n){var i="Extended(".concat(e.displayName||"Component",")"),l=e.__rcComputeClassName||function(){return""},o=e.__rcStyles||{},u=e.__rcTag||e,a=function(m,y){var f=function(b){return Object.assign(y,b),""},d=l(c(c({},m),{},{style:f})),C=r.map(function(g,b){var v=n[b];return typeof v=="function"?g+v(c(c({},m),{},{style:f})):g+(v??"")}).join("").replace(/\s+/g," ").trim();return[d,C].filter(Boolean).join(" ")},s=function(m){var y={};return a(m,y),c(c({},o),y)};return P({tag:u,computeClassName:function(m){return a(m,{})},displayName:i,styles:function(m){return s(m)}})},G=function(e,r){var n=r.base,i=r.variants,l=r.defaultVariants,o=l===void 0?{}:l,u=Object.keys(i),a={},s="Variants(".concat(typeof e=="string"?e:"Component",")"),p=function(y,f){var d=function(v){return Object.assign(f,v),""},C=typeof n=="function"?n(c(c({},y),{},{style:d})):n||"",g=Object.entries(i).map(function(b){var v,N=D(b,2),_=N[0],S=N[1],A=(v=y[_])!==null&&v!==void 0?v:o[_],O=A?S?.[A]:void 0;return typeof O=="function"?O(c(c({},y),{},{style:d})):O||""});return[C].concat(q(g)).filter(Boolean).join(" ").trim().replace(/\s+/g," ").trim()};return P({tag:e,computeClassName:function(y){return p(y,a)},displayName:s,styles:a,propsToFilter:u})},J={},j=new Proxy(J,{get:function(e,r){if(r==="extend")return function(i){return function(l){for(var o=i,u=arguments.length,a=new Array(u>1?u-1:0),s=1;s<u;s++)a[s-1]=arguments[s];return z(o,l,a)}};var n=function(l){for(var o=arguments.length,u=new Array(o>1?o-1:0),a=1;a<o;a++)u[a-1]=arguments[a];return L(r,l,u)};return n.variants=function(i){return G(r,i)},n}}),Q=function(e){var r=e.elements,n=e.variantsConfig,i=new Set(r);if(i.size!==r.length){var l=r.filter(function(u,a){return r.indexOf(u)!==a}),o=Array.from(new Set(l));throw new Error("react-classmate: Duplicate elements detected in createVariantMap: ".concat(o.join(", "),". Each element must be unique."))}return r.reduce(function(u,a){return j[a]?u[a]=j[a].variants(n):(console.warn('react-classmate: Element "'.concat(a,`" is not supported by react-classmate. Falling back to 'div'.`)),u[a]=j.div.variants(n)),u},{})},X=j,Y=T.twMerge;exports.convertRcProps=K,exports.createVariantMap=Q,exports.default=X,exports.rcMerge=Y;