@compositor/kit
Version:
Components for development environments, style guides, and demos
55 lines (34 loc) • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
var _keys = require('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _buble = require('buble');
var _mdx = require('@mdx-js/mdx');
var _mdx2 = _interopRequireDefault(_mdx);
var _tag = require('@mdx-js/tag');
var _styledComponents = require('styled-components');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (_ref) {
var children = _ref.children,
components = _ref.components,
_ref$theme = _ref.theme,
theme = _ref$theme === undefined ? {} : _ref$theme;
var jsx = _mdx2.default.sync(children).replace('export default ({components}) =>', '');
var _transform = (0, _buble.transform)('\n <ThemeProvider theme={theme}>\n <React.Fragment>\n ' + jsx + '\n </React.Fragment>\n </ThemeProvider>\n '),
code = _transform.code;
var scope = (0, _extends3.default)({ ThemeProvider: _styledComponents.ThemeProvider, MDXTag: _tag.MDXTag }, components, { components: components, theme: theme });
var keys = (0, _keys2.default)(scope);
var values = keys.map(function (k) {
return scope[k];
});
var fn = new (Function.prototype.bind.apply(Function, [null].concat(['React'], (0, _toConsumableArray3.default)(keys), ['return (' + code + ')'])))();
return fn.apply(undefined, [_react2.default].concat((0, _toConsumableArray3.default)(values)));
};