UNPKG

@filbert-js/core

Version:

A light weight(~1KB) css-in-js solution(framework)🎨

2 lines (1 loc) • 2.81 kB
var e,t=require("@filbert-js/theming"),r=require("@filbert-js/types"),n=(e=require("react"))&&"object"==typeof e&&"default"in e?e.default:e,a=require("@filbert-js/style-sheet-context"),u=0,o=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+"-"+ ++u})[0],t),null}),s={};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 u=[];return[e.reduce(function(e,a,o){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}(u,t,n[o-1])+a}),u]}.apply(t,arguments),u=a[0],o=a[1],c=e+"-"+function(e){var t=s[e]||0;if(!t){for(var r=0;r<e.length;r++)t=(t<<5)-t+e.charCodeAt(r),t|=0;s[e]=t}return t}(u);return(n={})[r.TYPE]=e,n[r.RAW]=[u,o],n.toString=function(){return c},n}}var i=1,l=c(r.TYPES_CSS),f=c(r.TYPES_KEYFRAMES);exports.Global=o,exports.styled=function(e,u){return void 0===u&&(u={}),function(){var o=arguments,s=n.forwardRef(function(i,l){var f,S=n.useContext(t.ThemeContext),E=c(u.label,Object.assign({},i,{theme:S})).apply(null,o),_=E[r.RAW],v=_[0],h=_[1],y=E.toString();!function(e,t,u,o,s){var c=n.useRef();e.forEach(function(e){return a.__sheet.createKeyframes(e)}),a.__sheet.createStyles(t,u,o,s),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)}},[])}(h,y,v,i[r.SOURCE_ORDER],s.label);var O=i.className;void 0===O&&(O="");var m=i.as,p=i.children,b=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"]),T=Object.assign(((f={className:[s.label,y,O].join(" ").trim()})[r.SOURCE_ORDER]=e[r.IS_STYLED_COMPONENT]?y:void 0,f.ref=l,f),b);return n.createElement(m||e,T,p)});return s[r.IS_STYLED_COMPONENT]=!0,s.label=u.label?u.label:""+r.LABEL_PREFIX+i,i++,s}},exports.keyframes=f,exports.css=l,exports.jsx=function(){var e=arguments[1]||{},t=e.css,u=e.className;void 0===u&&(u="");var 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}(e,["css","className"]),s=a.__sheet;if(t){var c=t[r.RAW],i=c[0];c[1].forEach(function(e){return s.createKeyframes(e)}),s.createStyles(t.toString(),i,void 0,t[r.TYPE]),o.className=(t+" "+u).trim(),arguments[1]=o}return n.createElement.apply(null,arguments)};