text: 'use strict';
  
  Object.defineProperty(exports, '__esModule', { value: true });
  
  function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
  
  var React = _interopDefault(require('react'));
  var fusionCore = require('fusion-core');
  var styletronReact = require('styletron-react');
  var styletronEngineAtomic = require('styletron-engine-atomic');
  
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
  
  /**
   * Provides styletron instance via old context API
   */
  
  var LegacyStyletronProvider =
  /*#__PURE__*/
  function (_React$Component) {
    _inheritsLoose(LegacyStyletronProvider, _React$Component);
  
    var _proto = LegacyStyletronProvider.prototype;
  
    _proto.getChildContext = function getChildContext() {
      return {
        styletron: this.styletron
      };
    };
  
    function LegacyStyletronProvider(props, context) {
      var _this;
  
      _this = _React$Component.call(this, props, context) || this;
      _this.styletron = props.value;
      return _this;
    }
  
    _proto.render = function render() {
      return React.Children.only(this.props.children);
    };
  
    return LegacyStyletronProvider;
  }(React.Component);
  
  LegacyStyletronProvider.childContextTypes = {
    styletron: noop
  };
  function noop() {}
  
  function _inheritsLoose$1(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
  
  var injectDeclarationCompatMixin = function injectDeclarationCompatMixin(Base) {
    return (
      /*#__PURE__*/
      function (_Base) {
        _inheritsLoose$1(_class, _Base);
  
        function _class() {
          return _Base.apply(this, arguments) || this;
        }
  
        var _proto = _class.prototype;
  
        _proto.injectDeclaration = function injectDeclaration(_ref) {
          var _style;
  
          var prop = _ref.prop,
              val = _ref.val,
              media = _ref.media,
              pseudo = _ref.pseudo;
          var style = (_style = {}, _style[prop] = val, _style);
  
          if (pseudo) {
            var _style2;
  
            style = (_style2 = {}, _style2[pseudo] = style, _style2);
          }
  
          if (media) {
            var _style3;
  
            style = (_style3 = {}, _style3[media] = style, _style3);
          }
  
          return this.renderStyle(style);
        };
  
        return _class;
      }(Base)
    );
  };
  
  /** Copyright (c) 2018 Uber Technologies, Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *
   * 
   */
  
  /* eslint-env node */
  var StyletronCompat = injectDeclarationCompatMixin(styletronEngineAtomic.Server);
  
  /** Copyright (c) 2018 Uber Technologies, Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *
   * 
   */
  
  /* eslint-env browser */
  var StyletronCompat$1 = injectDeclarationCompatMixin(styletronEngineAtomic.Client);
  var engine;
  var plugin$2 = true && fusionCore.createPlugin({
    middleware: function middleware() {
      return function (ctx, next) {
        if (ctx.element) {
          if (!engine) {
            engine = new StyletronCompat$1({
              hydrate: document.getElementsByClassName('_styletron_hydrate_')
            });
          }
  
          ctx.element = React.createElement(styletronReact.Provider, {
            value: engine
          }, React.createElement(LegacyStyletronProvider, {
            value: engine
          }, ctx.element));
        }
  
        return next();
      };
    }
  });
  
  /** Copyright (c) 2018 Uber Technologies, Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   *
   * 
   */
  
  /* eslint-env browser */
  var index = plugin$2;
  
  exports.styled = styletronReact.styled;
  exports.withStyle = styletronReact.withStyle;
  exports.withStyleDeep = styletronReact.withStyleDeep;
  exports.withTransform = styletronReact.withTransform;
  exports.withWrapper = styletronReact.withWrapper;
  exports.default = index;
  //# sourceMappingURL=browser.es5.js.map
  