UNPKG

blockstack-ui

Version:

Blockstack UI components built with css-in-js and styled-system.

82 lines (59 loc) 2.35 kB
"use strict"; 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;