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