react-classmate
Version:
A react tool to separate class name logic, create variants and manage styles.
4 lines (3 loc) • 7.1 kB
JavaScript
import{twMerge as F}from"tailwind-merge";import{forwardRef as B,createElement as R,useMemo as U}from"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 D(t){if(Array.isArray(t))return t}function W(t){if(Array.isArray(t))return H(t)}function q(t,e,r){return(e=Y(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function z(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function K(t,e){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var n,o,a,i,l=[],s=!0,u=!1;try{if(a=(r=r.call(t)).next,e!==0)for(;!(s=(n=a.call(r)).done)&&(l.push(n.value),l.length!==e);s=!0);}catch(d){u=!0,o=d}finally{try{if(!s&&r.return!=null&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw o}}return l}}function G(){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 J(){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 L(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).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?L(Object(r),!0).forEach(function(n){q(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):L(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Q(t,e){return D(t)||K(t,e)||V(t,e)||G()}function O(t){return W(t)||z(t)||V(t)||J()}function X(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var n=r.call(t,e);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Y(t){var e=X(t,"string");return typeof e=="symbol"?e:e+""}function P(t){"@babel/helpers - typeof";return P=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},P(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 Z=function(e,r){for(var n={},o=0,a=Object.keys(r);o<a.length;o++){var i=a[o];i in e&&(n[r[i]]=e[i],delete e[i])}return c(c({},e),n)},M=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return r.length?r.reduce(function(n,o){var a=o(n);return a&&P(a)==="object"?Object.assign({},n,a):n},c({},e)):e},T=function(e){var r=e.tag,n=e.computeClassName,o=e.displayName,a=e.styles,i=a===void 0?{}:a,l=e.propsToFilter,s=l===void 0?[]:l,u=e.logicHandlers,d=u===void 0?[]:u,y=B(function(b,C){var m=b,f=d.length>0?M(m,d):m,v=f,j=n(v),g={};for(var h in v)!h.startsWith("$")&&!s.includes(h)&&(g[h]=v[h]);var N=typeof i=="function"?i(v):i,p=P(g.style)==="object"&&g.style!==null?g.style:{},_=c(c({},N),p),w=typeof g.className=="string"?g.className:"",S=F(j,[w].filter(Boolean).join(" ").trim());return R(r,c(c({},g),{},{className:S,style:_,ref:C}))});return y.displayName=o||"Rc Component",y.__rcComputeClassName=function(b){return n(d.length>0?M(b,d):b)},y.__rcStyles=i,y.__rcTag=r,y.__rcLogic=d,y},k=function(e,r,n){var o,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},i={},l="Styled(".concat(typeof e=="string"?e:"Component",")"),s=(o=a.logic)!==null&&o!==void 0?o:[],u=function(y,b){var C=function(f){return Object.assign(b,f),""};return r.map(function(m,f){var v=n[f];return typeof v=="function"?m+v(c(c({},y),{},{style:C})):m+(v??"")}).join("").replace(/\s+/g," ").trim()};return T({tag:e,computeClassName:function(y){return u(y,i)},displayName:l,styles:i,logicHandlers:s})},ee=function(e,r,n){var o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:[],a="Extended(".concat(e.displayName||"Component",")"),i=e.__rcComputeClassName||function(){return""},l=e.__rcStyles||{},s=e.__rcTag||e,u=e.__rcLogic||[],d=[].concat(O(u),O(o)),y=function(m,f){var v=function(N){return Object.assign(f,N),""},j=i(c(c({},m),{},{style:v})),g=r.map(function(h,N){var p=n[N];return typeof p=="function"?h+p(c(c({},m),{},{style:v})):h+(p??"")}).join("").replace(/\s+/g," ").trim();return[j,g].filter(Boolean).join(" ")},b=function(m){var f={};return y(m,f),c(c({},l),f)};return T({tag:s,computeClassName:function(m){return y(m,{})},displayName:a,styles:function(m){return b(m)},logicHandlers:d})},te=function(e,r){var n,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=r.base,i=r.variants,l=r.defaultVariants,s=l===void 0?{}:l,u=Object.keys(i),d={},y="Variants(".concat(typeof e=="string"?e:"Component",")"),b=(n=o.logic)!==null&&n!==void 0?n:[],C=function(f,v){var j=function(p){return Object.assign(v,p),""},g=typeof a=="function"?a(c(c({},f),{},{style:j})):a||"",h=Object.entries(i).map(function(N){var p,_=Q(N,2),w=_[0],S=_[1],x=(p=f[w])!==null&&p!==void 0?p:s[w],E=x?S?.[x]:void 0;return typeof E=="function"?E(c(c({},f),{},{style:j})):E||""});return[g].concat(O(h)).filter(Boolean).join(" ").trim().replace(/\s+/g," ").trim()};return T({tag:e,computeClassName:function(f){return C(f,d)},displayName:y,styles:d,propsToFilter:u,logicHandlers:b})},re={},$=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=function(i){for(var l=arguments.length,s=new Array(l>1?l-1:0),u=1;u<l;u++)s[u-1]=arguments[u];return ee(e,i,s,r)},o=n;return o.logic=function(a){return $(e,[].concat(O(r),[a]))},o},I=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=function(i){for(var l=arguments.length,s=new Array(l>1?l-1:0),u=1;u<l;u++)s[u-1]=arguments[u];return k(e,i,s,{logic:r})},o=n;return o.logic=function(a){return I(e,[].concat(O(r),[a]))},o.variants=function(a){return te(e,a,{logic:r})},o},A=new Proxy(re,{get:function(e,r){return r==="extend"?function(n){return $(n)}:I(r)}}),ne=function(e){var r=e.elements,n=e.variantsConfig,o=new Set(r);if(o.size!==r.length){var a=r.filter(function(l,s){return r.indexOf(l)!==s}),i=Array.from(new Set(a));throw new Error("react-classmate: Duplicate elements detected in createVariantMap: ".concat(i.join(", "),". Each element must be unique."))}return r.reduce(function(l,s){return A[s]?l[s]=A[s].variants(n):(console.warn('react-classmate: Element "'.concat(s,`" is not supported by react-classmate. Falling back to 'div'.`)),l[s]=A.div.variants(n)),l},{})},ae=function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return U(e,r)},oe=A,ie=F;export{Z as convertRcProps,ne as createVariantMap,oe as default,ie as rcMerge,ae as useClassmate};