@filbert-js/core
Version:
A light weight(~1KB) css-in-js solution(framework)🎨
2 lines (1 loc) • 3.07 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@filbert-js/theming"),require("@filbert-js/types"),require("react"),require("@filbert-js/style-sheet-context")):"function"==typeof define&&define.amd?define(["exports","@filbert-js/theming","@filbert-js/types","react","@filbert-js/style-sheet-context"],t):t(e.core={},e.theming,e.types,e.react,e.styleSheetContext)}(this,function(e,t,r,n,a){n=n&&n.hasOwnProperty("default")?n.default:n;var o=0,s=n.memo(function(e){var t=e.styles;return function(e,t){a.__sheet.createGlobalStyles(e,t),n.useEffect(function(){a.__sheet.createGlobalStyles(e,t)},[t,e]),n.useEffect(function(){return function(){return a.__sheet.removeStyles(e,r.TYPES_GLOBAL)}},[e])}(n.useState(function(){return r.TYPES_GLOBAL+"-"+ ++o})[0],t),null}),u={};function c(e,t){return void 0===e&&(e=r.TYPES_CSS),function(){var n,a=function(e){for(var t=this,n=[],a=arguments.length-1;a-- >0;)n[a]=arguments[a+1];var o=[];return[e.reduce(function(e,a,s){return""+e+function(e,t,n){var a=n;return n[r.TYPE]===r.TYPES_KEYFRAMES?(e.push(n),a=n):n[r.IS_STYLED_COMPONENT]?a="."+n.label:"function"==typeof n&&(a=n(t)),a}(o,t,n[s-1])+a}),o]}.apply(t,arguments),o=a[0],s=a[1],c=e+"-"+function(e){var t=u[e]||0;if(!t){for(var r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r),t|=0;u[e]=t}return t}(o);return(n={})[r.TYPE]=e,n[r.RAW]=[o,s],n.toString=function(){return c},n}}var i=1,f=c(r.TYPES_CSS),l=c(r.TYPES_KEYFRAMES);e.Global=s,e.styled=function(e,o){return void 0===o&&(o={}),function(){var s=arguments,u=n.forwardRef(function(i,f){var l,S=n.useContext(t.ThemeContext),E=c(o.label,Object.assign({},i,{theme:S})).apply(null,s),_=E[r.RAW],v=_[0],y=_[1],h=E.toString();!function(e,t,o,s,u){var c=n.useRef();e.forEach(function(e){return a.__sheet.createKeyframes(e)}),a.__sheet.createStyles(t,o,s,u),c.current=t,n.useEffect(function(){var e=t;return function(){e!==c.current&&a.__sheet.removeStyles(e,r.TYPES_CSS)}},[t]),n.useEffect(function(){return function(){return a.__sheet.removeStyles(c.current,r.TYPES_CSS)}},[])}(y,h,v,i[r.SOURCE_ORDER],u.label);var m=i.className;void 0===m&&(m="");var p=i.as,d=i.children,O=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===t.indexOf(n)&&(r[n]=e[n]);return r}(i,["className",String(r.SOURCE_ORDER),"as","children"]),b=Object.assign(((l={className:[u.label,h,m].join(" ").trim()})[r.SOURCE_ORDER]=e[r.IS_STYLED_COMPONENT]?h:void 0,l.ref=f,l),O);return n.createElement(p||e,b,d)});return u[r.IS_STYLED_COMPONENT]=!0,u.label=o.label?o.label:""+r.LABEL_PREFIX+i,i++,u}},e.keyframes=l,e.css=f,e.jsx=function(){var e=arguments[1]||{},t=e.css,o=e.className;void 0===o&&(o="");var s=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&-1===t.indexOf(n)&&(r[n]=e[n]);return r}(e,["css","className"]),u=a.__sheet;if(t){var c=t[r.RAW],i=c[0];c[1].forEach(function(e){return u.createKeyframes(e)}),u.createStyles(t.toString(),i,void 0,t[r.TYPE]),s.className=(t+" "+o).trim(),arguments[1]=s}return n.createElement.apply(null,arguments)}});