UNPKG

@styli/react

Version:

137 lines (113 loc) 3.65 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var core = require('@styli/core'); var styled = require('@styli/styled'); var presetWeb = _interopDefault(require('@styli/preset-web')); var react = require('react'); var store = require('@styli/store'); var parser = require('@styli/parser'); function _extends() { _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; }; return _extends.apply(this, arguments); } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } /** * JSX Pragma * TODO: this is minimal version * @param element element type * @param props element props * @param children element children */ function jsx(element, props) { if (props === void 0) { props = {}; } for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { children[_key - 2] = arguments[_key]; } // Do'not handle third-party Component and empty props if (typeof element !== 'string' || !props || !Object.keys(props).length) { return react.createElement.apply(null, arguments); } var parser$1 = new parser.Parser(props); var parsedProps = parser$1.getParsedProps(); var inline = store.store.config.inline; if (inline) { if (Array.isArray(props.style)) { parsedProps.style = [parser$1.toStyle(), props.style]; } else { parsedProps.style = _extends({}, parser$1.toStyle(), props.style); } } else { parser$1.insertRule(); var finalClassName = parser$1.getClassNames().join(' ').trim(); if (finalClassName) parsedProps.className = finalClassName; } return react.createElement.apply(null, [element, parsedProps].concat(children)); } var Box = /*#__PURE__*/react.forwardRef(function (props, ref) { var _props$as = props.as, as = _props$as === void 0 ? 'div' : _props$as, rest = _objectWithoutPropertiesLoose(props, ["as"]); var parser$1 = new parser.Parser(rest); var parsedProps = parser$1.getParsedProps(); var inline = store.store.config.inline; if (inline) { if (Array.isArray(rest.style)) { parsedProps.style = [parser$1.toStyle(), rest.style]; } else { parsedProps.style = _extends({}, parser$1.toStyle(), rest.style); } } else { parser$1.insertRule(); var finalClassName = parser$1.getClassNames().join(' '); parsedProps.className = finalClassName; } return react.createElement(as, _extends({ ref: ref }, parsedProps)); }); var View = /*#__PURE__*/styled.styled('div'); var Text = /*#__PURE__*/styled.styled('span'); var Image = /*#__PURE__*/styled.styled('img'); core.injectGlobalStyle({ '*': { border: '0 solid #ccc', boxSizing: 'border-box' }, '*::before': { boxSizing: 'border-box' }, '*::after': { boxSizing: 'border-box' } }); core.setConfig(presetWeb); exports.Box = Box; exports.Image = Image; exports.Text = Text; exports.View = View; exports.jsx = jsx; //# sourceMappingURL=react.cjs.development.js.map