preact-glam
Version:
A tiny glamorous implementation for preact
3 lines (2 loc) • 1.6 kB
JavaScript
function _toConsumableArray(r){if(Array.isArray(r)){for(var e=0,t=Array(r.length);e<r.length;e++)t[e]=r[e];return t}return Array.from(r)}function extractGlamorStyles(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").toString().split(" ").reduce(function(r,e){if(0===e.indexOf("css-")){var t=e.slice("css-".length),a=glamor.styleSheet.registered[t].style;r.glamorStyles.push(a)}else r.glamorlessClassName=(r.glamorlessClassName+" "+e).trim();return r},{glamorlessClassName:"",glamorStyles:[]})}function getGlamorClassName(r,e){for(var t=r.slice(),a=t.length;a--;)"function"==typeof t[a]&&(t[a]=t[a](e));var s=extractGlamorStyles(e.className),l=s.glamorStyles;return(s.glamorlessClassName+" "+glamor.css.apply(void 0,_toConsumableArray(t).concat(_toConsumableArray(l))).toString()).trim()}function _objectWithoutProperties(r,e){var t={};for(var a in r)e.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(r,a)&&(t[a]=r[a]);return t}function glam(r){return function(){var e=function r(e){var t=(e.className,e.glam,_objectWithoutProperties(e,["className","glam"])),a=getGlamorClassName(r.styles,e);return preact.h(r.comp,_extends({},t,{className:a}))};e.comp=r.comp?r.comp:r;for(var t=arguments.length,a=Array(t),s=0;s<t;s++)a[s]=arguments[s];return e.styles=r.styles?r.styles.concat(a):a,e}}var preact=require("preact"),glamor=require("glamor"),_extends=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(r[a]=t[a])}return r};module.exports=glam;
//# sourceMappingURL=preact-glam.cjs.min.js.map