styled-components
Version:
Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅
40 lines (28 loc) • 1.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _hash = require('glamor/lib/hash');
var _hash2 = _interopRequireDefault(_hash);
var _css = require('./css');
var _css2 = _interopRequireDefault(_css);
var _GlobalStyle = require('../models/GlobalStyle');
var _GlobalStyle2 = _interopRequireDefault(_GlobalStyle);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var replaceWhitespace = function replaceWhitespace(str) {
return str.replace(/\s|\\n/g, '');
};
exports.default = function (nameGenerator) {
return function (strings) {
for (var _len = arguments.length, interpolations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
interpolations[_key - 1] = arguments[_key];
}
var rules = _css2.default.apply(undefined, [strings].concat(interpolations));
var hash = (0, _hash2.default)(replaceWhitespace(JSON.stringify(rules)));
var name = nameGenerator(hash);
var keyframes = new _GlobalStyle2.default(rules, '@keyframes ' + name);
keyframes.generateAndInject();
return name;
};
};
module.exports = exports['default'];