UNPKG

@yeutech-lab/rollup-umd-documentation

Version:

Quickly build awesome documentation for your rollup-umd project.

176 lines (133 loc) 9.5 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExamplePlaceholderRendererUnstyled = exports.propTypes = exports.defaultProps = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _templateObject = _taggedTemplateLiteral([' \n ', '\n'], [' \n ', '\n']); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _Button = require('@bootstrap-styled/v4/lib/Button'); var _Button2 = _interopRequireDefault(_Button); var _hover = require('@bootstrap-styled/css-mixins/lib/hover'); var _lodash = require('lodash.omit'); var _lodash2 = _interopRequireDefault(_lodash); var _styledComponents = require('styled-components'); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _lib = require('map-to-css-modules/lib'); var _lib2 = _interopRequireDefault(_lib); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _consts = require('react-styleguidist/scripts/consts'); var _Markdown = require('rsg-components/Markdown'); var _Markdown2 = _interopRequireDefault(_Markdown); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var defaultProps = exports.defaultProps = { theme: { styleguide: { '$rsg-example-placeholder-outline': 'none', '$rsg-example-placeholder-padding': '0', '$rsg-example-placeholder-font-size': '15px', '$rsg-example-placeholder-font-family': '-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif', '$rsg-example-placeholder-decoration': 'underline', '$rsg-example-placeholder-color': '#767676', '$rsg-example-placeholder-border': '0', '$rsg-example-placeholder-cursor': 'pointer', '$rsg-example-placeholder-background': 'transparent', '$rsg-example-placeholder-hover-isolate': 'false', '$rsg-example-placeholder-hover-color': '#ccc' } } }; /* eslint-disable react/require-default-props */ var propTypes = exports.propTypes = { /** * @ignore */ className: _propTypes2.default.string, // eslint-disable-line react/require-default-props /** Component name used in example. */ name: _propTypes2.default.string, // eslint-disable-line react/require-default-props /** Theme variables. Can be: */ theme: _propTypes2.default.shape({ styleguide: _propTypes2.default.shape({ '$rsg-example-placeholder-outline': _propTypes2.default.string, '$rsg-example-placeholder-padding': _propTypes2.default.string, '$rsg-example-placeholder-font-size': _propTypes2.default.string, '$rsg-example-placeholder-font-family': _propTypes2.default.string, '$rsg-example-placeholder-decoration': _propTypes2.default.string, '$rsg-example-placeholder-color': _propTypes2.default.string, '$rsg-example-placeholder-border': _propTypes2.default.string, '$rsg-example-placeholder-cursor': _propTypes2.default.string, '$rsg-example-placeholder-backgound': _propTypes2.default.string, '$rsg-example-placeholder-hover-isolate': _propTypes2.default.string, '$rsg-example-placeholder-hover-color': _propTypes2.default.string }) }), /** * Replace or remove a className from the component. * See example <a href="https://www.npmjs.com/package/map-to-css-modules" target="_blank">here</a>. */ cssModule: _propTypes2.default.object // eslint-disable-line react/require-default-props }; /* eslint-enable react/require-default-props */ var ExamplePlaceholderRendererUnstyled = exports.ExamplePlaceholderRendererUnstyled = function (_Component) { _inherits(ExamplePlaceholderRendererUnstyled, _Component); function ExamplePlaceholderRendererUnstyled() { _classCallCheck(this, ExamplePlaceholderRendererUnstyled); var _this = _possibleConstructorReturn(this, (ExamplePlaceholderRendererUnstyled.__proto__ || Object.getPrototypeOf(ExamplePlaceholderRendererUnstyled)).call(this)); _this.handleOpen = _this.handleOpen.bind(_this); _this.state = { isVisible: false }; return _this; } _createClass(ExamplePlaceholderRendererUnstyled, [{ key: 'handleOpen', value: function handleOpen() { this.setState({ isVisible: true }); } }, { key: 'render', value: function render() { var _omit = (0, _lodash2.default)(this.props, ['theme']), className = _omit.className, name = _omit.name, cssModule = _omit.cssModule, attributes = _objectWithoutProperties(_omit, ['className', 'name', 'cssModule']); var isVisible = this.state.isVisible; if (isVisible) { /* eslint-disable no-tabs */ return _react2.default.createElement(_Markdown2.default, { text: '\nCreate **Readme.md** or **' + name + '.md** file in the component\u2019s folder like this:\n\n ' + name + ' example:\n\n ```js\n <' + name + ' pizza="\uD83C\uDF55" />\n\t```\n\nYou may need to **restart** the style guide server after adding an example file.\n\nRead more in the [documenting components guide](' + _consts.DOCS_DOCUMENTING + ').\n\t\t\t\t\t' }); /* eslint-enable no-tabs */ } return _react2.default.createElement( _Button2.default, _extends({ className: (0, _lib2.default)((0, _classnames2.default)(className, 'rsg-example-placeholder'), cssModule) }, attributes, { onClick: this.handleOpen }), 'Add examples to this component' ); } }]); return ExamplePlaceholderRendererUnstyled; }(_react.Component); ExamplePlaceholderRendererUnstyled.propTypes = propTypes; ExamplePlaceholderRendererUnstyled.defaultProps = defaultProps; var ExamplePlaceholderRenderer = (0, _styledComponents2.default)(ExamplePlaceholderRendererUnstyled)(_templateObject, function (props) { return '\n &.rsg-example-placeholder {\n outline: ' + props.theme.styleguide['$rsg-example-placeholder-outline'] + ' !important;\n padding: ' + props.theme.styleguide['$rsg-example-placeholder-padding'] + ';\n font-size: ' + props.theme.styleguide['$rsg-example-placeholder-font-size'] + ';\n font-family: ' + props.theme.styleguide['$rsg-example-placeholder-font-family'] + ';\n text-decoration: ' + props.theme.styleguide['$rsg-example-placeholder-decoration'] + ';\n color: ' + props.theme.styleguide['$rsg-example-placeholder-color'] + ';\n border: ' + props.theme.styleguide['$rsg-example-placeholder-border'] + ';\n cursor: ' + props.theme.styleguide['$rsg-example-placeholder-cursor'] + ';\n background: ' + props.theme.styleguide['$rsg-example-placeholder-background'] + ';\n ' + (0, _hover.hover)('\n isolation: ' + props.theme.styleguide['$rsg-example-placeholder-hover-isolate'] + ';\n color: ' + props.theme.styleguide['$rsg-example-placeholder-hover-color'] + ';\n ') + '\n &:active {\n isolation: ' + props.theme.styleguide['$rsg-example-placeholder-hover-isolate'] + ';\n color: ' + props.theme.styleguide['$rsg-example-placeholder-hover-color'] + ';\n }\n }\n '; }); ExamplePlaceholderRenderer.defaultProps = defaultProps; ExamplePlaceholderRenderer.propTypes = propTypes; exports.default = ExamplePlaceholderRenderer;