blockstack-ui
Version:
Blockstack UI components built with css-in-js and styled-system.
82 lines (59 loc) • 2.35 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = exports.Tag = exports.omit = void 0;
require("core-js/modules/es6.array.for-each");
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
require("core-js/modules/es6.array.index-of");
require("core-js/modules/es6.object.assign");
require("core-js/modules/web.dom.iterable");
require("core-js/modules/es6.array.iterator");
require("core-js/modules/es6.object.keys");
require("core-js/modules/es6.array.filter");
require("core-js/modules/es6.array.reduce");
var _react = _interopRequireDefault(require("react"));
var _styledSystem = require("styled-system");
var _htmlTags = _interopRequireDefault(require("html-tags"));
var allPropTypes = Object.keys(_styledSystem.styles).filter(function (key) {
return typeof _styledSystem.styles[key] === 'function';
}).reduce(function (a, key) {
return Object.assign(a, _styledSystem.styles[key].propTypes);
}, {});
var blacklist = [].concat(Object.keys(allPropTypes), ['theme', 'cursor', 'transform', 'flexGrow', 'flexShrink', 'textTransform', 'transition', 'zIndex', 'suppressClassNameWarning']);
var omit = function omit(obj, keys) {
var next = {};
for (var key in obj) {
if (keys.indexOf(key) > -1) continue;
next[key] = obj[key];
}
return next;
};
exports.omit = omit;
var Tag = _react.default.forwardRef(function (_ref, ref) {
var _ref$is = _ref.is,
Tag = _ref$is === void 0 ? 'div' : _ref$is,
_ref$blacklist = _ref.blacklist,
blacklist = _ref$blacklist === void 0 ? [] : _ref$blacklist,
props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["is", "blacklist"]);
return _react.default.createElement(Tag, Object.assign({
ref: ref
}, omit(props, blacklist)));
});
exports.Tag = Tag;
Tag.displayName = 'Clean.div';
Tag.defaultProps = {
blacklist: blacklist
};
_htmlTags.default.forEach(function (tag) {
Tag[tag] = _react.default.forwardRef(function (props, ref) {
return _react.default.createElement(Tag, Object.assign({
ref: ref,
is: tag
}, props, {
blacklist: blacklist
}));
});
Tag[tag].displayName = 'Clean.' + tag;
});
var _default = Tag;
exports.default = _default;