You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					1391 lines
				
				45 KiB
			
		
		
			
		
	
	
					1391 lines
				
				45 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(exports, '__esModule', { value: true });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _createForOfIteratorHelperLoose = require('@babel/runtime/helpers/createForOfIteratorHelperLoose');
							 | 
						||
| 
								 | 
							
								var _extends = require('@babel/runtime/helpers/extends');
							 | 
						||
| 
								 | 
							
								var _objectWithoutPropertiesLoose = require('@babel/runtime/helpers/objectWithoutPropertiesLoose');
							 | 
						||
| 
								 | 
							
								var syntaxJsx = require('@babel/plugin-syntax-jsx');
							 | 
						||
| 
								 | 
							
								var nodePath = require('path');
							 | 
						||
| 
								 | 
							
								var sourceMap = require('source-map');
							 | 
						||
| 
								 | 
							
								var convert = require('convert-source-map');
							 | 
						||
| 
								 | 
							
								var findRoot = require('find-root');
							 | 
						||
| 
								 | 
							
								var memoize = require('@emotion/memoize');
							 | 
						||
| 
								 | 
							
								var hashString = require('@emotion/hash');
							 | 
						||
| 
								 | 
							
								var escapeRegexp = require('escape-string-regexp');
							 | 
						||
| 
								 | 
							
								var serialize = require('@emotion/serialize');
							 | 
						||
| 
								 | 
							
								var stylis = require('stylis');
							 | 
						||
| 
								 | 
							
								var helperModuleImports = require('@babel/helper-module-imports');
							 | 
						||
| 
								 | 
							
								var babelPluginMacros = require('babel-plugin-macros');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var syntaxJsx__default = /*#__PURE__*/_interopDefault(syntaxJsx);
							 | 
						||
| 
								 | 
							
								var nodePath__default = /*#__PURE__*/_interopDefault(nodePath);
							 | 
						||
| 
								 | 
							
								var convert__default = /*#__PURE__*/_interopDefault(convert);
							 | 
						||
| 
								 | 
							
								var findRoot__default = /*#__PURE__*/_interopDefault(findRoot);
							 | 
						||
| 
								 | 
							
								var memoize__default = /*#__PURE__*/_interopDefault(memoize);
							 | 
						||
| 
								 | 
							
								var hashString__default = /*#__PURE__*/_interopDefault(hashString);
							 | 
						||
| 
								 | 
							
								var escapeRegexp__default = /*#__PURE__*/_interopDefault(escapeRegexp);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var invalidClassNameCharacters = /[!"#$%&'()*+,./:;<=>?@[\]^`|}~{]/g;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var sanitizeLabelPart = function sanitizeLabelPart(labelPart) {
							 | 
						||
| 
								 | 
							
								  return labelPart.trim().replace(invalidClassNameCharacters, '-');
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function getLabel(identifierName, labelFormat, filename) {
							 | 
						||
| 
								 | 
							
								  if (!identifierName) return null;
							 | 
						||
| 
								 | 
							
								  var sanitizedName = sanitizeLabelPart(identifierName);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!labelFormat) {
							 | 
						||
| 
								 | 
							
								    return sanitizedName;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (typeof labelFormat === 'function') {
							 | 
						||
| 
								 | 
							
								    return labelFormat({
							 | 
						||
| 
								 | 
							
								      name: sanitizedName,
							 | 
						||
| 
								 | 
							
								      path: filename
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var parsedPath = nodePath__default['default'].parse(filename);
							 | 
						||
| 
								 | 
							
								  var localDirname = nodePath__default['default'].basename(parsedPath.dir);
							 | 
						||
| 
								 | 
							
								  var localFilename = parsedPath.name;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (localFilename === 'index') {
							 | 
						||
| 
								 | 
							
								    localFilename = localDirname;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return labelFormat.replace(/\[local\]/gi, sanitizedName).replace(/\[filename\]/gi, sanitizeLabelPart(localFilename)).replace(/\[dirname\]/gi, sanitizeLabelPart(localDirname));
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function getLabelFromPath(path, state, t) {
							 | 
						||
| 
								 | 
							
								  return getLabel(getIdentifierName(path, t), state.opts.labelFormat, state.file.opts.filename);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var getObjPropertyLikeName = function getObjPropertyLikeName(path, t) {
							 | 
						||
| 
								 | 
							
								  if (!t.isObjectProperty(path) && !t.isObjectMethod(path) || path.node.computed) {
							 | 
						||
| 
								 | 
							
								    return null;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (t.isIdentifier(path.node.key)) {
							 | 
						||
| 
								 | 
							
								    return path.node.key.name;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (t.isStringLiteral(path.node.key)) {
							 | 
						||
| 
								 | 
							
								    return path.node.key.value.replace(/\s+/g, '-');
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return null;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function getDeclaratorName(path, t) {
							 | 
						||
| 
								 | 
							
								  // $FlowFixMe
							 | 
						||
| 
								 | 
							
								  var parent = path.findParent(function (p) {
							 | 
						||
| 
								 | 
							
								    return p.isVariableDeclarator() || p.isAssignmentExpression() || p.isFunctionDeclaration() || p.isFunctionExpression() || p.isArrowFunctionExpression() || p.isObjectProperty() || p.isObjectMethod();
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!parent) {
							 | 
						||
| 
								 | 
							
								    return '';
							 | 
						||
| 
								 | 
							
								  } // we probably have a css call assigned to a variable
							 | 
						||
| 
								 | 
							
								  // so we'll just return the variable name
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (parent.isVariableDeclarator()) {
							 | 
						||
| 
								 | 
							
								    if (t.isIdentifier(parent.node.id)) {
							 | 
						||
| 
								 | 
							
								      return parent.node.id.name;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return '';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (parent.isAssignmentExpression()) {
							 | 
						||
| 
								 | 
							
								    var left = parent.node.left;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (t.isIdentifier(left)) {
							 | 
						||
| 
								 | 
							
								      return left.name;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (t.isMemberExpression(left)) {
							 | 
						||
| 
								 | 
							
								      var memberExpression = left;
							 | 
						||
| 
								 | 
							
								      var name = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      while (true) {
							 | 
						||
| 
								 | 
							
								        if (!t.isIdentifier(memberExpression.property)) {
							 | 
						||
| 
								 | 
							
								          return '';
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        name = "" + memberExpression.property.name + (name ? "-" + name : '');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (t.isIdentifier(memberExpression.object)) {
							 | 
						||
| 
								 | 
							
								          return memberExpression.object.name + "-" + name;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (!t.isMemberExpression(memberExpression.object)) {
							 | 
						||
| 
								 | 
							
								          return '';
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        memberExpression = memberExpression.object;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return '';
							 | 
						||
| 
								 | 
							
								  } // we probably have an inline css prop usage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (parent.isFunctionDeclaration()) {
							 | 
						||
| 
								 | 
							
								    return parent.node.id.name || '';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (parent.isFunctionExpression()) {
							 | 
						||
| 
								 | 
							
								    if (parent.node.id) {
							 | 
						||
| 
								 | 
							
								      return parent.node.id.name || '';
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return getDeclaratorName(parent, t);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (parent.isArrowFunctionExpression()) {
							 | 
						||
| 
								 | 
							
								    return getDeclaratorName(parent, t);
							 | 
						||
| 
								 | 
							
								  } // we could also have an object property
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var objPropertyLikeName = getObjPropertyLikeName(parent, t);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (objPropertyLikeName) {
							 | 
						||
| 
								 | 
							
								    return objPropertyLikeName;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var variableDeclarator = parent.findParent(function (p) {
							 | 
						||
| 
								 | 
							
								    return p.isVariableDeclarator();
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!variableDeclarator || !variableDeclarator.get('id').isIdentifier()) {
							 | 
						||
| 
								 | 
							
								    return '';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return variableDeclarator.node.id.name;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function getIdentifierName(path, t) {
							 | 
						||
| 
								 | 
							
								  var objPropertyLikeName = getObjPropertyLikeName(path.parentPath, t);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (objPropertyLikeName) {
							 | 
						||
| 
								 | 
							
								    return objPropertyLikeName;
							 | 
						||
| 
								 | 
							
								  } // $FlowFixMe
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var classOrClassPropertyParent = path.findParent(function (p) {
							 | 
						||
| 
								 | 
							
								    return t.isClassProperty(p) || t.isClass(p);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (classOrClassPropertyParent) {
							 | 
						||
| 
								 | 
							
								    if (t.isClassProperty(classOrClassPropertyParent) && classOrClassPropertyParent.node.computed === false && t.isIdentifier(classOrClassPropertyParent.node.key)) {
							 | 
						||
| 
								 | 
							
								      return classOrClassPropertyParent.node.key.name;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (t.isClass(classOrClassPropertyParent) && classOrClassPropertyParent.node.id) {
							 | 
						||
| 
								 | 
							
								      return t.isIdentifier(classOrClassPropertyParent.node.id) ? classOrClassPropertyParent.node.id.name : '';
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var declaratorName = getDeclaratorName(path, t); // if the name starts with _ it was probably generated by babel so we should ignore it
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (declaratorName.charAt(0) === '_') {
							 | 
						||
| 
								 | 
							
								    return '';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return declaratorName;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function getGeneratorOpts(file) {
							 | 
						||
| 
								 | 
							
								  return file.opts.generatorOpts ? file.opts.generatorOpts : file.opts;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function makeSourceMapGenerator(file) {
							 | 
						||
| 
								 | 
							
								  var generatorOpts = getGeneratorOpts(file);
							 | 
						||
| 
								 | 
							
								  var filename = generatorOpts.sourceFileName;
							 | 
						||
| 
								 | 
							
								  var generator = new sourceMap.SourceMapGenerator({
							 | 
						||
| 
								 | 
							
								    file: filename,
							 | 
						||
| 
								 | 
							
								    sourceRoot: generatorOpts.sourceRoot
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  generator.setSourceContent(filename, file.code);
							 | 
						||
| 
								 | 
							
								  return generator;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								function getSourceMap(offset, state) {
							 | 
						||
| 
								 | 
							
								  var generator = makeSourceMapGenerator(state.file);
							 | 
						||
| 
								 | 
							
								  var generatorOpts = getGeneratorOpts(state.file);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (generatorOpts.sourceFileName && generatorOpts.sourceFileName !== 'unknown') {
							 | 
						||
| 
								 | 
							
								    generator.addMapping({
							 | 
						||
| 
								 | 
							
								      generated: {
							 | 
						||
| 
								 | 
							
								        line: 1,
							 | 
						||
| 
								 | 
							
								        column: 0
							 | 
						||
| 
								 | 
							
								      },
							 | 
						||
| 
								 | 
							
								      source: generatorOpts.sourceFileName,
							 | 
						||
| 
								 | 
							
								      original: offset
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    return convert__default['default'].fromObject(generator).toComment({
							 | 
						||
| 
								 | 
							
								      multiline: true
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return '';
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var hashArray = function hashArray(arr) {
							 | 
						||
| 
								 | 
							
								  return hashString__default['default'](arr.join(''));
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var unsafeRequire = require;
							 | 
						||
| 
								 | 
							
								var getPackageRootPath = memoize__default['default'](function (filename) {
							 | 
						||
| 
								 | 
							
								  return findRoot__default['default'](filename);
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								var separator = new RegExp(escapeRegexp__default['default'](nodePath__default['default'].sep), 'g');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var normalizePath = function normalizePath(path) {
							 | 
						||
| 
								 | 
							
								  return nodePath__default['default'].normalize(path).replace(separator, '/');
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function getTargetClassName(state, t) {
							 | 
						||
| 
								 | 
							
								  if (state.emotionTargetClassNameCount === undefined) {
							 | 
						||
| 
								 | 
							
								    state.emotionTargetClassNameCount = 0;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var hasFilepath = state.file.opts.filename && state.file.opts.filename !== 'unknown';
							 | 
						||
| 
								 | 
							
								  var filename = hasFilepath ? state.file.opts.filename : ''; // normalize the file path to ignore folder structure
							 | 
						||
| 
								 | 
							
								  // outside the current node project and arch-specific delimiters
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var moduleName = '';
							 | 
						||
| 
								 | 
							
								  var rootPath = filename;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  try {
							 | 
						||
| 
								 | 
							
								    rootPath = getPackageRootPath(filename);
							 | 
						||
| 
								 | 
							
								    moduleName = unsafeRequire(rootPath + '/package.json').name;
							 | 
						||
| 
								 | 
							
								  } catch (err) {}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var finalPath = filename === rootPath ? 'root' : filename.slice(rootPath.length);
							 | 
						||
| 
								 | 
							
								  var positionInFile = state.emotionTargetClassNameCount++;
							 | 
						||
| 
								 | 
							
								  var stuffToHash = [moduleName];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (finalPath) {
							 | 
						||
| 
								 | 
							
								    stuffToHash.push(normalizePath(finalPath));
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								    stuffToHash.push(state.file.code);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var stableClassName = "e" + hashArray(stuffToHash) + positionInFile;
							 | 
						||
| 
								 | 
							
								  return stableClassName;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// it's meant to simplify the most common cases so i don't want to make it especially complex
							 | 
						||
| 
								 | 
							
								// also, this will be unnecessary when prepack is ready
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function simplifyObject(node, t) {
							 | 
						||
| 
								 | 
							
								  var finalString = '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  for (var i = 0; i < node.properties.length; i++) {
							 | 
						||
| 
								 | 
							
								    var _ref;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var property = node.properties[i];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (!t.isObjectProperty(property) || property.computed || !t.isIdentifier(property.key) && !t.isStringLiteral(property.key) || !t.isStringLiteral(property.value) && !t.isNumericLiteral(property.value) && !t.isObjectExpression(property.value)) {
							 | 
						||
| 
								 | 
							
								      return node;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var key = property.key.name || property.key.value;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (key === 'styles') {
							 | 
						||
| 
								 | 
							
								      return node;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (t.isObjectExpression(property.value)) {
							 | 
						||
| 
								 | 
							
								      var simplifiedChild = simplifyObject(property.value, t);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if (!t.isStringLiteral(simplifiedChild)) {
							 | 
						||
| 
								 | 
							
								        return node;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      finalString += key + "{" + simplifiedChild.value + "}";
							 | 
						||
| 
								 | 
							
								      continue;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var value = property.value.value;
							 | 
						||
| 
								 | 
							
								    finalString += serialize.serializeStyles([(_ref = {}, _ref[key] = value, _ref)]).styles;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return t.stringLiteral(finalString);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var haveSameLocation = function haveSameLocation(element1, element2) {
							 | 
						||
| 
								 | 
							
								  return element1.line === element2.line && element1.column === element2.column;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var isAutoInsertedRule = function isAutoInsertedRule(element) {
							 | 
						||
| 
								 | 
							
								  return element.type === 'rule' && element.parent && haveSameLocation(element, element.parent);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var toInputTree = function toInputTree(elements, tree) {
							 | 
						||
| 
								 | 
							
								  for (var i = 0; i < elements.length; i++) {
							 | 
						||
| 
								 | 
							
								    var element = elements[i];
							 | 
						||
| 
								 | 
							
								    var parent = element.parent,
							 | 
						||
| 
								 | 
							
								        children = element.children;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (!parent) {
							 | 
						||
| 
								 | 
							
								      tree.push(element);
							 | 
						||
| 
								 | 
							
								    } else if (!isAutoInsertedRule(element)) {
							 | 
						||
| 
								 | 
							
								      parent.children.push(element);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (Array.isArray(children)) {
							 | 
						||
| 
								 | 
							
								      element.children = [];
							 | 
						||
| 
								 | 
							
								      toInputTree(children, tree);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return tree;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var stringifyTree = function stringifyTree(elements) {
							 | 
						||
| 
								 | 
							
								  return elements.map(function (element) {
							 | 
						||
| 
								 | 
							
								    switch (element.type) {
							 | 
						||
| 
								 | 
							
								      case 'import':
							 | 
						||
| 
								 | 
							
								      case 'decl':
							 | 
						||
| 
								 | 
							
								        return element.value;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      case 'comm':
							 | 
						||
| 
								 | 
							
								        // When we encounter a standard multi-line CSS comment and it contains a '@'
							 | 
						||
| 
								 | 
							
								        // character, we keep the comment. Some Stylis plugins, such as
							 | 
						||
| 
								 | 
							
								        // the stylis-rtl via the cssjanus plugin, use this special comment syntax
							 | 
						||
| 
								 | 
							
								        // to control behavior (such as: /* @noflip */). We can do this
							 | 
						||
| 
								 | 
							
								        // with standard CSS comments because they will work with compression,
							 | 
						||
| 
								 | 
							
								        // as opposed to non-standard single-line comments that will break compressed CSS.
							 | 
						||
| 
								 | 
							
								        return element.props === '/' && element.value.includes('@') ? element.value : '';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      case 'rule':
							 | 
						||
| 
								 | 
							
								        return element.value.replace(/&\f/g, '&') + "{" + stringifyTree(element.children) + "}";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      default:
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								          return element.value + "{" + stringifyTree(element.children) + "}";
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }).join('');
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var interleave = function interleave(strings, interpolations) {
							 | 
						||
| 
								 | 
							
								  return interpolations.reduce(function (array, interp, i) {
							 | 
						||
| 
								 | 
							
								    return array.concat([interp], strings[i + 1]);
							 | 
						||
| 
								 | 
							
								  }, [strings[0]]);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function getDynamicMatches(str) {
							 | 
						||
| 
								 | 
							
								  var re = /xxx(\d+):xxx/gm;
							 | 
						||
| 
								 | 
							
								  var match;
							 | 
						||
| 
								 | 
							
								  var matches = [];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  while ((match = re.exec(str)) !== null) {
							 | 
						||
| 
								 | 
							
								    // so that flow doesn't complain
							 | 
						||
| 
								 | 
							
								    if (match !== null) {
							 | 
						||
| 
								 | 
							
								      matches.push({
							 | 
						||
| 
								 | 
							
								        value: match[0],
							 | 
						||
| 
								 | 
							
								        p1: parseInt(match[1], 10),
							 | 
						||
| 
								 | 
							
								        index: match.index
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return matches;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function replacePlaceholdersWithExpressions(str, expressions, t) {
							 | 
						||
| 
								 | 
							
								  var matches = getDynamicMatches(str);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (matches.length === 0) {
							 | 
						||
| 
								 | 
							
								    if (str === '') {
							 | 
						||
| 
								 | 
							
								      return [];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return [t.stringLiteral(str)];
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var strings = [];
							 | 
						||
| 
								 | 
							
								  var finalExpressions = [];
							 | 
						||
| 
								 | 
							
								  var cursor = 0;
							 | 
						||
| 
								 | 
							
								  matches.forEach(function (_ref, i) {
							 | 
						||
| 
								 | 
							
								    var value = _ref.value,
							 | 
						||
| 
								 | 
							
								        p1 = _ref.p1,
							 | 
						||
| 
								 | 
							
								        index = _ref.index;
							 | 
						||
| 
								 | 
							
								    var preMatch = str.substring(cursor, index);
							 | 
						||
| 
								 | 
							
								    cursor = cursor + preMatch.length + value.length;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (!preMatch && i === 0) {
							 | 
						||
| 
								 | 
							
								      strings.push(t.stringLiteral(''));
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								      strings.push(t.stringLiteral(preMatch));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    finalExpressions.push(expressions[p1]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (i === matches.length - 1) {
							 | 
						||
| 
								 | 
							
								      strings.push(t.stringLiteral(str.substring(index + value.length)));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  return interleave(strings, finalExpressions).filter(function (node) {
							 | 
						||
| 
								 | 
							
								    return node.value !== '';
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function createRawStringFromTemplateLiteral(quasi) {
							 | 
						||
| 
								 | 
							
								  var strs = quasi.quasis.map(function (x) {
							 | 
						||
| 
								 | 
							
								    return x.value.cooked;
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  var src = strs.reduce(function (arr, str, i) {
							 | 
						||
| 
								 | 
							
								    arr.push(str);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (i !== strs.length - 1) {
							 | 
						||
| 
								 | 
							
								      arr.push("xxx" + i + ":xxx");
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return arr;
							 | 
						||
| 
								 | 
							
								  }, []).join('').trim();
							 | 
						||
| 
								 | 
							
								  return src;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function minify(path, t) {
							 | 
						||
| 
								 | 
							
								  var quasi = path.node.quasi;
							 | 
						||
| 
								 | 
							
								  var raw = createRawStringFromTemplateLiteral(quasi);
							 | 
						||
| 
								 | 
							
								  var minified = stringifyTree(toInputTree(stylis.compile(raw), []));
							 | 
						||
| 
								 | 
							
								  var expressions = replacePlaceholdersWithExpressions(minified, quasi.expressions || [], t);
							 | 
						||
| 
								 | 
							
								  path.replaceWith(t.callExpression(path.node.tag, expressions));
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// this only works correctly in modules, but we don't run on scripts anyway, so it's fine
							 | 
						||
| 
								 | 
							
								// the difference is that in modules template objects are being cached per call site
							 | 
						||
| 
								 | 
							
								function getTypeScriptMakeTemplateObjectPath(path) {
							 | 
						||
| 
								 | 
							
								  if (path.node.arguments.length === 0) {
							 | 
						||
| 
								 | 
							
								    return null;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var firstArgPath = path.get('arguments')[0];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (firstArgPath.isLogicalExpression() && firstArgPath.get('left').isIdentifier() && firstArgPath.get('right').isAssignmentExpression() && firstArgPath.get('right.right').isCallExpression() && firstArgPath.get('right.right.callee').isIdentifier() && firstArgPath.node.right.right.callee.name.includes('makeTemplateObject') && firstArgPath.node.right.right.arguments.length === 2) {
							 | 
						||
| 
								 | 
							
								    return firstArgPath.get('right.right');
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return null;
							 | 
						||
| 
								 | 
							
								} // this is only used to prevent appending strings/expressions to arguments incorectly
							 | 
						||
| 
								 | 
							
								// we could push them to found array expressions, as we do it for TS-transpile output ¯\_(ツ)_/¯
							 | 
						||
| 
								 | 
							
								// it seems overly complicated though - mainly because we'd also have to check against existing stuff of a particular type (source maps & labels)
							 | 
						||
| 
								 | 
							
								// considering Babel double-transpilation as a valid use case seems rather far-fetched
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function isTaggedTemplateTranspiledByBabel(path) {
							 | 
						||
| 
								 | 
							
								  if (path.node.arguments.length === 0) {
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var firstArgPath = path.get('arguments')[0];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!firstArgPath.isCallExpression() || !firstArgPath.get('callee').isIdentifier()) {
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var calleeName = firstArgPath.node.callee.name;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!calleeName.includes('templateObject')) {
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var bindingPath = path.scope.getBinding(calleeName).path;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!bindingPath.isFunction()) {
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var functionBody = bindingPath.get('body.body');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!functionBody[0].isVariableDeclaration()) {
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var declarationInit = functionBody[0].get('declarations')[0].get('init');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!declarationInit.isCallExpression()) {
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var declarationInitArguments = declarationInit.get('arguments');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (declarationInitArguments.length === 0 || declarationInitArguments.length > 2 || declarationInitArguments.some(function (argPath) {
							 | 
						||
| 
								 | 
							
								    return !argPath.isArrayExpression();
							 | 
						||
| 
								 | 
							
								  })) {
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return true;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var appendStringReturningExpressionToArguments = function appendStringReturningExpressionToArguments(t, path, expression) {
							 | 
						||
| 
								 | 
							
								  var lastIndex = path.node.arguments.length - 1;
							 | 
						||
| 
								 | 
							
								  var last = path.node.arguments[lastIndex];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (t.isStringLiteral(last)) {
							 | 
						||
| 
								 | 
							
								    if (typeof expression === 'string') {
							 | 
						||
| 
								 | 
							
								      path.node.arguments[lastIndex].value += expression;
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								      path.node.arguments[lastIndex] = t.binaryExpression('+', last, expression);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								    var makeTemplateObjectCallPath = getTypeScriptMakeTemplateObjectPath(path);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (makeTemplateObjectCallPath) {
							 | 
						||
| 
								 | 
							
								      makeTemplateObjectCallPath.get('arguments').forEach(function (argPath) {
							 | 
						||
| 
								 | 
							
								        var elements = argPath.get('elements');
							 | 
						||
| 
								 | 
							
								        var lastElement = elements[elements.length - 1];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (typeof expression === 'string') {
							 | 
						||
| 
								 | 
							
								          lastElement.replaceWith(t.stringLiteral(lastElement.node.value + expression));
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								          lastElement.replaceWith(t.binaryExpression('+', lastElement.node, t.cloneNode(expression)));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								    } else if (!isTaggedTemplateTranspiledByBabel(path)) {
							 | 
						||
| 
								 | 
							
								      if (typeof expression === 'string') {
							 | 
						||
| 
								 | 
							
								        path.node.arguments.push(t.stringLiteral(expression));
							 | 
						||
| 
								 | 
							
								      } else {
							 | 
						||
| 
								 | 
							
								        path.node.arguments.push(expression);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								var joinStringLiterals = function joinStringLiterals(expressions, t) {
							 | 
						||
| 
								 | 
							
								  return expressions.reduce(function (finalExpressions, currentExpression, i) {
							 | 
						||
| 
								 | 
							
								    if (!t.isStringLiteral(currentExpression)) {
							 | 
						||
| 
								 | 
							
								      finalExpressions.push(currentExpression);
							 | 
						||
| 
								 | 
							
								    } else if (t.isStringLiteral(finalExpressions[finalExpressions.length - 1])) {
							 | 
						||
| 
								 | 
							
								      finalExpressions[finalExpressions.length - 1].value += currentExpression.value;
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								      finalExpressions.push(currentExpression);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return finalExpressions;
							 | 
						||
| 
								 | 
							
								  }, []);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function createNodeEnvConditional(t, production, development) {
							 | 
						||
| 
								 | 
							
								  return t.conditionalExpression(t.binaryExpression('===', t.memberExpression(t.memberExpression(t.identifier('process'), t.identifier('env')), t.identifier('NODE_ENV')), t.stringLiteral('production')), production, development);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var CSS_OBJECT_STRINGIFIED_ERROR = "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
							 | 
						||
| 
								 | 
							
								var transformExpressionWithStyles = function transformExpressionWithStyles(_ref) {
							 | 
						||
| 
								 | 
							
								  var babel = _ref.babel,
							 | 
						||
| 
								 | 
							
								      state = _ref.state,
							 | 
						||
| 
								 | 
							
								      path = _ref.path,
							 | 
						||
| 
								 | 
							
								      shouldLabel = _ref.shouldLabel,
							 | 
						||
| 
								 | 
							
								      _ref$sourceMap = _ref.sourceMap,
							 | 
						||
| 
								 | 
							
								      sourceMap = _ref$sourceMap === void 0 ? '' : _ref$sourceMap;
							 | 
						||
| 
								 | 
							
								  var autoLabel = state.opts.autoLabel || 'dev-only';
							 | 
						||
| 
								 | 
							
								  var t = babel.types;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (t.isTaggedTemplateExpression(path)) {
							 | 
						||
| 
								 | 
							
								    if (!sourceMap && state.emotionSourceMap && path.node.quasi.loc !== undefined) {
							 | 
						||
| 
								 | 
							
								      sourceMap = getSourceMap(path.node.quasi.loc.start, state);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    minify(path, t);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (t.isCallExpression(path)) {
							 | 
						||
| 
								 | 
							
								    var canAppendStrings = path.node.arguments.every(function (arg) {
							 | 
						||
| 
								 | 
							
								      return arg.type !== 'SpreadElement';
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    path.get('arguments').forEach(function (node) {
							 | 
						||
| 
								 | 
							
								      if (t.isObjectExpression(node)) {
							 | 
						||
| 
								 | 
							
								        node.replaceWith(simplifyObject(node.node, t));
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    path.node.arguments = joinStringLiterals(path.node.arguments, t);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (!sourceMap && canAppendStrings && state.emotionSourceMap && path.node.loc !== undefined) {
							 | 
						||
| 
								 | 
							
								      sourceMap = getSourceMap(path.node.loc.start, state);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var label = shouldLabel && autoLabel !== 'never' ? getLabelFromPath(path, state, t) : null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (path.node.arguments.length === 1 && t.isStringLiteral(path.node.arguments[0])) {
							 | 
						||
| 
								 | 
							
								      var cssString = path.node.arguments[0].value.replace(/;$/, '');
							 | 
						||
| 
								 | 
							
								      var res = serialize.serializeStyles(["" + cssString + (label && autoLabel === 'always' ? ";label:" + label + ";" : '')]);
							 | 
						||
| 
								 | 
							
								      var prodNode = t.objectExpression([t.objectProperty(t.identifier('name'), t.stringLiteral(res.name)), t.objectProperty(t.identifier('styles'), t.stringLiteral(res.styles))]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if (!state.emotionStringifiedCssId) {
							 | 
						||
| 
								 | 
							
								        var uid = state.file.scope.generateUidIdentifier('__EMOTION_STRINGIFIED_CSS_ERROR__');
							 | 
						||
| 
								 | 
							
								        state.emotionStringifiedCssId = uid;
							 | 
						||
| 
								 | 
							
								        var cssObjectToString = t.functionDeclaration(uid, [], t.blockStatement([t.returnStatement(t.stringLiteral(CSS_OBJECT_STRINGIFIED_ERROR))]));
							 | 
						||
| 
								 | 
							
								        cssObjectToString._compact = true;
							 | 
						||
| 
								 | 
							
								        state.file.path.unshiftContainer('body', [cssObjectToString]);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if (label && autoLabel === 'dev-only') {
							 | 
						||
| 
								 | 
							
								        res = serialize.serializeStyles([cssString + ";label:" + label + ";"]);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      var devNode = t.objectExpression([t.objectProperty(t.identifier('name'), t.stringLiteral(res.name)), t.objectProperty(t.identifier('styles'), t.stringLiteral(res.styles)), sourceMap && t.objectProperty(t.identifier('map'), t.stringLiteral(sourceMap)), t.objectProperty(t.identifier('toString'), t.cloneNode(state.emotionStringifiedCssId))].filter(Boolean));
							 | 
						||
| 
								 | 
							
								      return createNodeEnvConditional(t, prodNode, devNode);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (canAppendStrings && label) {
							 | 
						||
| 
								 | 
							
								      var labelString = ";label:" + label + ";";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      switch (autoLabel) {
							 | 
						||
| 
								 | 
							
								        case 'dev-only':
							 | 
						||
| 
								 | 
							
								          {
							 | 
						||
| 
								 | 
							
								            var labelConditional = createNodeEnvConditional(t, t.stringLiteral(''), t.stringLiteral(labelString));
							 | 
						||
| 
								 | 
							
								            appendStringReturningExpressionToArguments(t, path, labelConditional);
							 | 
						||
| 
								 | 
							
								            break;
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'always':
							 | 
						||
| 
								 | 
							
								          appendStringReturningExpressionToArguments(t, path, labelString);
							 | 
						||
| 
								 | 
							
								          break;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (sourceMap) {
							 | 
						||
| 
								 | 
							
								      var sourceMapConditional = createNodeEnvConditional(t, t.stringLiteral(''), t.stringLiteral(sourceMap));
							 | 
						||
| 
								 | 
							
								      appendStringReturningExpressionToArguments(t, path, sourceMapConditional);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var getKnownProperties = function getKnownProperties(t, node) {
							 | 
						||
| 
								 | 
							
								  return new Set(node.properties.filter(function (n) {
							 | 
						||
| 
								 | 
							
								    return t.isObjectProperty(n) && !n.computed;
							 | 
						||
| 
								 | 
							
								  }).map(function (n) {
							 | 
						||
| 
								 | 
							
								    return t.isIdentifier(n.key) ? n.key.name : n.key.value;
							 | 
						||
| 
								 | 
							
								  }));
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var createObjectSpreadLike = function createObjectSpreadLike(t, file) {
							 | 
						||
| 
								 | 
							
								  for (var _len = arguments.length, objs = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
							 | 
						||
| 
								 | 
							
								    objs[_key - 2] = arguments[_key];
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return t.callExpression(file.addHelper('extends'), [t.objectExpression([])].concat(objs));
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var getStyledOptions = function getStyledOptions(t, path, state) {
							 | 
						||
| 
								 | 
							
								  var autoLabel = state.opts.autoLabel || 'dev-only';
							 | 
						||
| 
								 | 
							
								  var args = path.node.arguments;
							 | 
						||
| 
								 | 
							
								  var optionsArgument = args.length >= 2 ? args[1] : null;
							 | 
						||
| 
								 | 
							
								  var prodProperties = [];
							 | 
						||
| 
								 | 
							
								  var devProperties = null;
							 | 
						||
| 
								 | 
							
								  var knownProperties = optionsArgument && t.isObjectExpression(optionsArgument) ? getKnownProperties(t, optionsArgument) : new Set();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!knownProperties.has('target')) {
							 | 
						||
| 
								 | 
							
								    prodProperties.push(t.objectProperty(t.identifier('target'), t.stringLiteral(getTargetClassName(state))));
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var label = autoLabel !== 'never' && !knownProperties.has('label') ? getLabelFromPath(path, state, t) : null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (label) {
							 | 
						||
| 
								 | 
							
								    var labelNode = t.objectProperty(t.identifier('label'), t.stringLiteral(label));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    switch (autoLabel) {
							 | 
						||
| 
								 | 
							
								      case 'always':
							 | 
						||
| 
								 | 
							
								        prodProperties.push(labelNode);
							 | 
						||
| 
								 | 
							
								        break;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      case 'dev-only':
							 | 
						||
| 
								 | 
							
								        devProperties = [labelNode];
							 | 
						||
| 
								 | 
							
								        break;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (optionsArgument) {
							 | 
						||
| 
								 | 
							
								    // for some reason `.withComponent` transformer gets requeued
							 | 
						||
| 
								 | 
							
								    // so check if this has been already transpiled to avoid double wrapping
							 | 
						||
| 
								 | 
							
								    if (t.isConditionalExpression(optionsArgument) && t.isBinaryExpression(optionsArgument.test) && t.buildMatchMemberExpression('process.env.NODE_ENV')(optionsArgument.test.left)) {
							 | 
						||
| 
								 | 
							
								      return optionsArgument;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (!t.isObjectExpression(optionsArgument)) {
							 | 
						||
| 
								 | 
							
								      var prodNode = createObjectSpreadLike(t, state.file, t.objectExpression(prodProperties), optionsArgument);
							 | 
						||
| 
								 | 
							
								      return devProperties ? createNodeEnvConditional(t, prodNode, t.cloneNode(createObjectSpreadLike(t, state.file, t.objectExpression(prodProperties.concat(devProperties)), optionsArgument))) : prodNode;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    prodProperties.unshift.apply(prodProperties, optionsArgument.properties);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return devProperties ? createNodeEnvConditional(t, t.objectExpression(prodProperties), t.cloneNode(t.objectExpression(prodProperties.concat(devProperties)))) : t.objectExpression(prodProperties);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function addImport(state, importSource, importedSpecifier, nameHint) {
							 | 
						||
| 
								 | 
							
								  var cacheKey = ['import', importSource, importedSpecifier].join(':');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (state[cacheKey] === undefined) {
							 | 
						||
| 
								 | 
							
								    var importIdentifier;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (importedSpecifier === 'default') {
							 | 
						||
| 
								 | 
							
								      importIdentifier = helperModuleImports.addDefault(state.file.path, importSource, {
							 | 
						||
| 
								 | 
							
								        nameHint: nameHint
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								      importIdentifier = helperModuleImports.addNamed(state.file.path, importedSpecifier, importSource, {
							 | 
						||
| 
								 | 
							
								        nameHint: nameHint
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    state[cacheKey] = importIdentifier.name;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return {
							 | 
						||
| 
								 | 
							
								    type: 'Identifier',
							 | 
						||
| 
								 | 
							
								    name: state[cacheKey]
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function createTransformerMacro(transformers, _ref) {
							 | 
						||
| 
								 | 
							
								  var importSource = _ref.importSource;
							 | 
						||
| 
								 | 
							
								  var macro = babelPluginMacros.createMacro(function (_ref2) {
							 | 
						||
| 
								 | 
							
								    var path = _ref2.path,
							 | 
						||
| 
								 | 
							
								        source = _ref2.source,
							 | 
						||
| 
								 | 
							
								        references = _ref2.references,
							 | 
						||
| 
								 | 
							
								        state = _ref2.state,
							 | 
						||
| 
								 | 
							
								        babel = _ref2.babel,
							 | 
						||
| 
								 | 
							
								        isEmotionCall = _ref2.isEmotionCall;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (!path) {
							 | 
						||
| 
								 | 
							
								      path = state.file.scope.path.get('body').find(function (p) {
							 | 
						||
| 
								 | 
							
								        return p.isImportDeclaration() && p.node.source.value === source;
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (/\/macro$/.test(source)) {
							 | 
						||
| 
								 | 
							
								      path.get('source').replaceWith(babel.types.stringLiteral(source.replace(/\/macro$/, '')));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (!isEmotionCall) {
							 | 
						||
| 
								 | 
							
								      state.emotionSourceMap = true;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    Object.keys(references).forEach(function (importSpecifierName) {
							 | 
						||
| 
								 | 
							
								      if (transformers[importSpecifierName]) {
							 | 
						||
| 
								 | 
							
								        references[importSpecifierName].reverse().forEach(function (reference) {
							 | 
						||
| 
								 | 
							
								          var options;
							 | 
						||
| 
								 | 
							
								          var transformer;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								          if (Array.isArray(transformers[importSpecifierName])) {
							 | 
						||
| 
								 | 
							
								            transformer = transformers[importSpecifierName][0];
							 | 
						||
| 
								 | 
							
								            options = transformers[importSpecifierName][1];
							 | 
						||
| 
								 | 
							
								          } else {
							 | 
						||
| 
								 | 
							
								            transformer = transformers[importSpecifierName];
							 | 
						||
| 
								 | 
							
								            options = {};
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								          transformer({
							 | 
						||
| 
								 | 
							
								            state: state,
							 | 
						||
| 
								 | 
							
								            babel: babel,
							 | 
						||
| 
								 | 
							
								            path: path,
							 | 
						||
| 
								 | 
							
								            importSource: importSource,
							 | 
						||
| 
								 | 
							
								            importSpecifierName: importSpecifierName,
							 | 
						||
| 
								 | 
							
								            options: options,
							 | 
						||
| 
								 | 
							
								            reference: reference
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    return {
							 | 
						||
| 
								 | 
							
								      keepImports: true
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  macro.transformers = transformers;
							 | 
						||
| 
								 | 
							
								  return macro;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var isAlreadyTranspiled = function isAlreadyTranspiled(path) {
							 | 
						||
| 
								 | 
							
								  if (!path.isCallExpression()) {
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var firstArgPath = path.get('arguments.0');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!firstArgPath) {
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!firstArgPath.isConditionalExpression()) {
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var alternatePath = firstArgPath.get('alternate');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!alternatePath.isObjectExpression()) {
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var properties = new Set(alternatePath.get('properties').map(function (p) {
							 | 
						||
| 
								 | 
							
								    return p.node.key.name;
							 | 
						||
| 
								 | 
							
								  }));
							 | 
						||
| 
								 | 
							
								  return ['name', 'styles'].every(function (p) {
							 | 
						||
| 
								 | 
							
								    return properties.has(p);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var createEmotionTransformer = function createEmotionTransformer(isPure) {
							 | 
						||
| 
								 | 
							
								  return function (_ref) {
							 | 
						||
| 
								 | 
							
								    var state = _ref.state,
							 | 
						||
| 
								 | 
							
								        babel = _ref.babel,
							 | 
						||
| 
								 | 
							
								        importSource = _ref.importSource,
							 | 
						||
| 
								 | 
							
								        reference = _ref.reference,
							 | 
						||
| 
								 | 
							
								        importSpecifierName = _ref.importSpecifierName;
							 | 
						||
| 
								 | 
							
								    var path = reference.parentPath;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (isAlreadyTranspiled(path)) {
							 | 
						||
| 
								 | 
							
								      return;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (isPure) {
							 | 
						||
| 
								 | 
							
								      path.addComment('leading', '#__PURE__');
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var node = transformExpressionWithStyles({
							 | 
						||
| 
								 | 
							
								      babel: babel,
							 | 
						||
| 
								 | 
							
								      state: state,
							 | 
						||
| 
								 | 
							
								      path: path,
							 | 
						||
| 
								 | 
							
								      shouldLabel: true
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (node) {
							 | 
						||
| 
								 | 
							
								      path.node.arguments[0] = node;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var transformers = {
							 | 
						||
| 
								 | 
							
								  css: createEmotionTransformer(true),
							 | 
						||
| 
								 | 
							
								  injectGlobal: createEmotionTransformer(false),
							 | 
						||
| 
								 | 
							
								  keyframes: createEmotionTransformer(true)
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								var createEmotionMacro = function createEmotionMacro(importSource) {
							 | 
						||
| 
								 | 
							
								  return createTransformerMacro(transformers, {
							 | 
						||
| 
								 | 
							
								    importSource: importSource
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var getReferencedSpecifier = function getReferencedSpecifier(path, specifierName) {
							 | 
						||
| 
								 | 
							
								  var specifiers = path.get('specifiers');
							 | 
						||
| 
								 | 
							
								  return specifierName === 'default' ? specifiers.find(function (p) {
							 | 
						||
| 
								 | 
							
								    return p.isImportDefaultSpecifier();
							 | 
						||
| 
								 | 
							
								  }) : specifiers.find(function (p) {
							 | 
						||
| 
								 | 
							
								    return p.node.local.name === specifierName;
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var styledTransformer = function styledTransformer(_ref) {
							 | 
						||
| 
								 | 
							
								  var state = _ref.state,
							 | 
						||
| 
								 | 
							
								      babel = _ref.babel,
							 | 
						||
| 
								 | 
							
								      path = _ref.path,
							 | 
						||
| 
								 | 
							
								      importSource = _ref.importSource,
							 | 
						||
| 
								 | 
							
								      reference = _ref.reference,
							 | 
						||
| 
								 | 
							
								      importSpecifierName = _ref.importSpecifierName,
							 | 
						||
| 
								 | 
							
								      _ref$options = _ref.options,
							 | 
						||
| 
								 | 
							
								      styledBaseImport = _ref$options.styledBaseImport,
							 | 
						||
| 
								 | 
							
								      isWeb = _ref$options.isWeb;
							 | 
						||
| 
								 | 
							
								  var t = babel.types;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var getStyledIdentifier = function getStyledIdentifier() {
							 | 
						||
| 
								 | 
							
								    if (!styledBaseImport || styledBaseImport[0] === importSource && styledBaseImport[1] === importSpecifierName) {
							 | 
						||
| 
								 | 
							
								      return t.cloneNode(reference.node);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (path.node) {
							 | 
						||
| 
								 | 
							
								      var referencedSpecifier = getReferencedSpecifier(path, importSpecifierName);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if (referencedSpecifier) {
							 | 
						||
| 
								 | 
							
								        referencedSpecifier.remove();
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if (!path.get('specifiers').length) {
							 | 
						||
| 
								 | 
							
								        path.remove();
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var baseImportSource = styledBaseImport[0],
							 | 
						||
| 
								 | 
							
								        baseSpecifierName = styledBaseImport[1];
							 | 
						||
| 
								 | 
							
								    return addImport(state, baseImportSource, baseSpecifierName, 'styled');
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var createStyledComponentPath = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (t.isMemberExpression(reference.parent) && reference.parent.computed === false) {
							 | 
						||
| 
								 | 
							
								    if ( // checks if the first character is lowercase
							 | 
						||
| 
								 | 
							
								    // becasue we don't want to transform the member expression if
							 | 
						||
| 
								 | 
							
								    // it's in primitives/native
							 | 
						||
| 
								 | 
							
								    reference.parent.property.name.charCodeAt(0) > 96) {
							 | 
						||
| 
								 | 
							
								      reference.parentPath.replaceWith(t.callExpression(getStyledIdentifier(), [t.stringLiteral(reference.parent.property.name)]));
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								      reference.replaceWith(getStyledIdentifier());
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    createStyledComponentPath = reference.parentPath;
							 | 
						||
| 
								 | 
							
								  } else if (reference.parentPath && t.isCallExpression(reference.parentPath) && reference.parent.callee === reference.node) {
							 | 
						||
| 
								 | 
							
								    reference.replaceWith(getStyledIdentifier());
							 | 
						||
| 
								 | 
							
								    createStyledComponentPath = reference.parentPath;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!createStyledComponentPath) {
							 | 
						||
| 
								 | 
							
								    return;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var styledCallLikeWithStylesPath = createStyledComponentPath.parentPath;
							 | 
						||
| 
								 | 
							
								  var node = transformExpressionWithStyles({
							 | 
						||
| 
								 | 
							
								    path: styledCallLikeWithStylesPath,
							 | 
						||
| 
								 | 
							
								    state: state,
							 | 
						||
| 
								 | 
							
								    babel: babel,
							 | 
						||
| 
								 | 
							
								    shouldLabel: false
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (node && isWeb) {
							 | 
						||
| 
								 | 
							
								    // we know the argument length will be 1 since that's the only time we will have a node since it will be static
							 | 
						||
| 
								 | 
							
								    styledCallLikeWithStylesPath.node.arguments[0] = node;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  styledCallLikeWithStylesPath.addComment('leading', '#__PURE__');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (isWeb) {
							 | 
						||
| 
								 | 
							
								    createStyledComponentPath.node.arguments[1] = getStyledOptions(t, createStyledComponentPath, state);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								var createStyledMacro = function createStyledMacro(_ref2) {
							 | 
						||
| 
								 | 
							
								  var importSource = _ref2.importSource,
							 | 
						||
| 
								 | 
							
								      _ref2$originalImportS = _ref2.originalImportSource,
							 | 
						||
| 
								 | 
							
								      originalImportSource = _ref2$originalImportS === void 0 ? importSource : _ref2$originalImportS,
							 | 
						||
| 
								 | 
							
								      _ref2$baseImportName = _ref2.baseImportName,
							 | 
						||
| 
								 | 
							
								      baseImportName = _ref2$baseImportName === void 0 ? 'default' : _ref2$baseImportName,
							 | 
						||
| 
								 | 
							
								      isWeb = _ref2.isWeb;
							 | 
						||
| 
								 | 
							
								  return createTransformerMacro({
							 | 
						||
| 
								 | 
							
								    "default": [styledTransformer, {
							 | 
						||
| 
								 | 
							
								      styledBaseImport: [importSource, baseImportName],
							 | 
						||
| 
								 | 
							
								      isWeb: isWeb
							 | 
						||
| 
								 | 
							
								    }]
							 | 
						||
| 
								 | 
							
								  }, {
							 | 
						||
| 
								 | 
							
								    importSource: originalImportSource
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var transformCssCallExpression = function transformCssCallExpression(_ref) {
							 | 
						||
| 
								 | 
							
								  var state = _ref.state,
							 | 
						||
| 
								 | 
							
								      babel = _ref.babel,
							 | 
						||
| 
								 | 
							
								      path = _ref.path,
							 | 
						||
| 
								 | 
							
								      sourceMap = _ref.sourceMap,
							 | 
						||
| 
								 | 
							
								      _ref$annotateAsPure = _ref.annotateAsPure,
							 | 
						||
| 
								 | 
							
								      annotateAsPure = _ref$annotateAsPure === void 0 ? true : _ref$annotateAsPure;
							 | 
						||
| 
								 | 
							
								  var node = transformExpressionWithStyles({
							 | 
						||
| 
								 | 
							
								    babel: babel,
							 | 
						||
| 
								 | 
							
								    state: state,
							 | 
						||
| 
								 | 
							
								    path: path,
							 | 
						||
| 
								 | 
							
								    shouldLabel: true,
							 | 
						||
| 
								 | 
							
								    sourceMap: sourceMap
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (node) {
							 | 
						||
| 
								 | 
							
								    path.replaceWith(node);
							 | 
						||
| 
								 | 
							
								    path.hoist();
							 | 
						||
| 
								 | 
							
								  } else if (annotateAsPure && path.isCallExpression()) {
							 | 
						||
| 
								 | 
							
								    path.addComment('leading', '#__PURE__');
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								var transformCsslessArrayExpression = function transformCsslessArrayExpression(_ref2) {
							 | 
						||
| 
								 | 
							
								  var state = _ref2.state,
							 | 
						||
| 
								 | 
							
								      babel = _ref2.babel,
							 | 
						||
| 
								 | 
							
								      path = _ref2.path;
							 | 
						||
| 
								 | 
							
								  var t = babel.types;
							 | 
						||
| 
								 | 
							
								  var expressionPath = path.get('value.expression');
							 | 
						||
| 
								 | 
							
								  var sourceMap = state.emotionSourceMap && path.node.loc !== undefined ? getSourceMap(path.node.loc.start, state) : '';
							 | 
						||
| 
								 | 
							
								  expressionPath.replaceWith(t.callExpression( // the name of this identifier doesn't really matter at all
							 | 
						||
| 
								 | 
							
								  // it'll never appear in generated code
							 | 
						||
| 
								 | 
							
								  t.identifier('___shouldNeverAppearCSS'), path.node.value.expression.elements));
							 | 
						||
| 
								 | 
							
								  transformCssCallExpression({
							 | 
						||
| 
								 | 
							
								    babel: babel,
							 | 
						||
| 
								 | 
							
								    state: state,
							 | 
						||
| 
								 | 
							
								    path: expressionPath,
							 | 
						||
| 
								 | 
							
								    sourceMap: sourceMap,
							 | 
						||
| 
								 | 
							
								    annotateAsPure: false
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (t.isCallExpression(expressionPath)) {
							 | 
						||
| 
								 | 
							
								    expressionPath.replaceWith(t.arrayExpression(expressionPath.node.arguments));
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								var transformCsslessObjectExpression = function transformCsslessObjectExpression(_ref3) {
							 | 
						||
| 
								 | 
							
								  var state = _ref3.state,
							 | 
						||
| 
								 | 
							
								      babel = _ref3.babel,
							 | 
						||
| 
								 | 
							
								      path = _ref3.path,
							 | 
						||
| 
								 | 
							
								      cssImport = _ref3.cssImport;
							 | 
						||
| 
								 | 
							
								  var t = babel.types;
							 | 
						||
| 
								 | 
							
								  var expressionPath = path.get('value.expression');
							 | 
						||
| 
								 | 
							
								  var sourceMap = state.emotionSourceMap && path.node.loc !== undefined ? getSourceMap(path.node.loc.start, state) : '';
							 | 
						||
| 
								 | 
							
								  expressionPath.replaceWith(t.callExpression( // the name of this identifier doesn't really matter at all
							 | 
						||
| 
								 | 
							
								  // it'll never appear in generated code
							 | 
						||
| 
								 | 
							
								  t.identifier('___shouldNeverAppearCSS'), [path.node.value.expression]));
							 | 
						||
| 
								 | 
							
								  transformCssCallExpression({
							 | 
						||
| 
								 | 
							
								    babel: babel,
							 | 
						||
| 
								 | 
							
								    state: state,
							 | 
						||
| 
								 | 
							
								    path: expressionPath,
							 | 
						||
| 
								 | 
							
								    sourceMap: sourceMap
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (t.isCallExpression(expressionPath)) {
							 | 
						||
| 
								 | 
							
								    expressionPath.get('callee').replaceWith(addImport(state, cssImport.importSource, cssImport.cssExport, 'css'));
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var cssTransformer = function cssTransformer(_ref4) {
							 | 
						||
| 
								 | 
							
								  var state = _ref4.state,
							 | 
						||
| 
								 | 
							
								      babel = _ref4.babel,
							 | 
						||
| 
								 | 
							
								      reference = _ref4.reference;
							 | 
						||
| 
								 | 
							
								  transformCssCallExpression({
							 | 
						||
| 
								 | 
							
								    babel: babel,
							 | 
						||
| 
								 | 
							
								    state: state,
							 | 
						||
| 
								 | 
							
								    path: reference.parentPath
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var globalTransformer = function globalTransformer(_ref5) {
							 | 
						||
| 
								 | 
							
								  var state = _ref5.state,
							 | 
						||
| 
								 | 
							
								      babel = _ref5.babel,
							 | 
						||
| 
								 | 
							
								      reference = _ref5.reference,
							 | 
						||
| 
								 | 
							
								      importSource = _ref5.importSource,
							 | 
						||
| 
								 | 
							
								      options = _ref5.options;
							 | 
						||
| 
								 | 
							
								  var t = babel.types;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!t.isJSXIdentifier(reference.node) || !t.isJSXOpeningElement(reference.parentPath.node)) {
							 | 
						||
| 
								 | 
							
								    return;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var stylesPropPath = reference.parentPath.get('attributes').find(function (p) {
							 | 
						||
| 
								 | 
							
								    return t.isJSXAttribute(p.node) && p.node.name.name === 'styles';
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!stylesPropPath) {
							 | 
						||
| 
								 | 
							
								    return;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (t.isJSXExpressionContainer(stylesPropPath.node.value)) {
							 | 
						||
| 
								 | 
							
								    if (t.isArrayExpression(stylesPropPath.node.value.expression)) {
							 | 
						||
| 
								 | 
							
								      transformCsslessArrayExpression({
							 | 
						||
| 
								 | 
							
								        state: state,
							 | 
						||
| 
								 | 
							
								        babel: babel,
							 | 
						||
| 
								 | 
							
								        path: stylesPropPath
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								    } else if (t.isObjectExpression(stylesPropPath.node.value.expression)) {
							 | 
						||
| 
								 | 
							
								      transformCsslessObjectExpression({
							 | 
						||
| 
								 | 
							
								        state: state,
							 | 
						||
| 
								 | 
							
								        babel: babel,
							 | 
						||
| 
								 | 
							
								        path: stylesPropPath,
							 | 
						||
| 
								 | 
							
								        cssImport: options.cssExport !== undefined ? {
							 | 
						||
| 
								 | 
							
								          importSource: importSource,
							 | 
						||
| 
								 | 
							
								          cssExport: options.cssExport
							 | 
						||
| 
								 | 
							
								        } : {
							 | 
						||
| 
								 | 
							
								          importSource: '@emotion/react',
							 | 
						||
| 
								 | 
							
								          cssExport: 'css'
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var transformers$1 = {
							 | 
						||
| 
								 | 
							
								  // this is an empty function because this transformer is never called
							 | 
						||
| 
								 | 
							
								  // we don't run any transforms on `jsx` directly
							 | 
						||
| 
								 | 
							
								  // instead we use it as a hint to enable css prop optimization
							 | 
						||
| 
								 | 
							
								  jsx: function jsx() {},
							 | 
						||
| 
								 | 
							
								  css: cssTransformer,
							 | 
						||
| 
								 | 
							
								  Global: globalTransformer
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								var coreMacro = createTransformerMacro(transformers$1, {
							 | 
						||
| 
								 | 
							
								  importSource: '@emotion/react'
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _excluded = ["canonicalImport"];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var getCssExport = function getCssExport(reexported, importSource, mapping) {
							 | 
						||
| 
								 | 
							
								  var cssExport = Object.keys(mapping).find(function (localExportName) {
							 | 
						||
| 
								 | 
							
								    var _mapping$localExportN = mapping[localExportName].canonicalImport,
							 | 
						||
| 
								 | 
							
								        packageName = _mapping$localExportN[0],
							 | 
						||
| 
								 | 
							
								        exportName = _mapping$localExportN[1];
							 | 
						||
| 
								 | 
							
								    return packageName === '@emotion/react' && exportName === 'css';
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!cssExport) {
							 | 
						||
| 
								 | 
							
								    throw new Error("You have specified that '" + importSource + "' re-exports '" + reexported + "' from '@emotion/react' but it doesn't also re-export 'css' from '@emotion/react', 'css' is necessary for certain optimisations, please re-export it from '" + importSource + "'");
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return cssExport;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var webStyledMacro = createStyledMacro({
							 | 
						||
| 
								 | 
							
								  importSource: '@emotion/styled/base',
							 | 
						||
| 
								 | 
							
								  originalImportSource: '@emotion/styled',
							 | 
						||
| 
								 | 
							
								  isWeb: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								var nativeStyledMacro = createStyledMacro({
							 | 
						||
| 
								 | 
							
								  importSource: '@emotion/native',
							 | 
						||
| 
								 | 
							
								  originalImportSource: '@emotion/native',
							 | 
						||
| 
								 | 
							
								  isWeb: false
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								var primitivesStyledMacro = createStyledMacro({
							 | 
						||
| 
								 | 
							
								  importSource: '@emotion/primitives',
							 | 
						||
| 
								 | 
							
								  originalImportSource: '@emotion/primitives',
							 | 
						||
| 
								 | 
							
								  isWeb: false
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								var vanillaEmotionMacro = createEmotionMacro('@emotion/css');
							 | 
						||
| 
								 | 
							
								var transformersSource = {
							 | 
						||
| 
								 | 
							
								  '@emotion/css': transformers,
							 | 
						||
| 
								 | 
							
								  '@emotion/react': transformers$1,
							 | 
						||
| 
								 | 
							
								  '@emotion/styled': {
							 | 
						||
| 
								 | 
							
								    "default": [styledTransformer, {
							 | 
						||
| 
								 | 
							
								      styledBaseImport: ['@emotion/styled/base', 'default'],
							 | 
						||
| 
								 | 
							
								      isWeb: true
							 | 
						||
| 
								 | 
							
								    }]
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  '@emotion/primitives': {
							 | 
						||
| 
								 | 
							
								    "default": [styledTransformer, {
							 | 
						||
| 
								 | 
							
								      isWeb: false
							 | 
						||
| 
								 | 
							
								    }]
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  '@emotion/native': {
							 | 
						||
| 
								 | 
							
								    "default": [styledTransformer, {
							 | 
						||
| 
								 | 
							
								      isWeb: false
							 | 
						||
| 
								 | 
							
								    }]
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								var macros = {
							 | 
						||
| 
								 | 
							
								  core: coreMacro,
							 | 
						||
| 
								 | 
							
								  nativeStyled: nativeStyledMacro,
							 | 
						||
| 
								 | 
							
								  primitivesStyled: primitivesStyledMacro,
							 | 
						||
| 
								 | 
							
								  webStyled: webStyledMacro,
							 | 
						||
| 
								 | 
							
								  vanillaEmotion: vanillaEmotionMacro
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								var AUTO_LABEL_VALUES = ['dev-only', 'never', 'always'];
							 | 
						||
| 
								 | 
							
								function index (babel, options) {
							 | 
						||
| 
								 | 
							
								  if (options.autoLabel !== undefined && !AUTO_LABEL_VALUES.includes(options.autoLabel)) {
							 | 
						||
| 
								 | 
							
								    throw new Error("The 'autoLabel' option must be undefined, or one of the following: " + AUTO_LABEL_VALUES.map(function (s) {
							 | 
						||
| 
								 | 
							
								      return "\"" + s + "\"";
							 | 
						||
| 
								 | 
							
								    }).join(', '));
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var t = babel.types;
							 | 
						||
| 
								 | 
							
								  return {
							 | 
						||
| 
								 | 
							
								    name: '@emotion',
							 | 
						||
| 
								 | 
							
								    inherits: syntaxJsx__default['default'],
							 | 
						||
| 
								 | 
							
								    visitor: {
							 | 
						||
| 
								 | 
							
								      ImportDeclaration: function ImportDeclaration(path, state) {
							 | 
						||
| 
								 | 
							
								        var macro = state.pluginMacros[path.node.source.value]; // most of this is from https://github.com/kentcdodds/babel-plugin-macros/blob/main/src/index.js
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (macro === undefined) {
							 | 
						||
| 
								 | 
							
								          return;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (t.isImportNamespaceSpecifier(path.node.specifiers[0])) {
							 | 
						||
| 
								 | 
							
								          return;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        var imports = path.node.specifiers.map(function (s) {
							 | 
						||
| 
								 | 
							
								          return {
							 | 
						||
| 
								 | 
							
								            localName: s.local.name,
							 | 
						||
| 
								 | 
							
								            importedName: s.type === 'ImportDefaultSpecifier' ? 'default' : s.imported.name
							 | 
						||
| 
								 | 
							
								          };
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								        var shouldExit = false;
							 | 
						||
| 
								 | 
							
								        var hasReferences = false;
							 | 
						||
| 
								 | 
							
								        var referencePathsByImportName = imports.reduce(function (byName, _ref) {
							 | 
						||
| 
								 | 
							
								          var importedName = _ref.importedName,
							 | 
						||
| 
								 | 
							
								              localName = _ref.localName;
							 | 
						||
| 
								 | 
							
								          var binding = path.scope.getBinding(localName);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								          if (!binding) {
							 | 
						||
| 
								 | 
							
								            shouldExit = true;
							 | 
						||
| 
								 | 
							
								            return byName;
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								          byName[importedName] = binding.referencePaths;
							 | 
						||
| 
								 | 
							
								          hasReferences = hasReferences || Boolean(byName[importedName].length);
							 | 
						||
| 
								 | 
							
								          return byName;
							 | 
						||
| 
								 | 
							
								        }, {});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (!hasReferences || shouldExit) {
							 | 
						||
| 
								 | 
							
								          return;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        /**
							 | 
						||
| 
								 | 
							
								         * Other plugins that run before babel-plugin-macros might use path.replace, where a path is
							 | 
						||
| 
								 | 
							
								         * put into its own replacement. Apparently babel does not update the scope after such
							 | 
						||
| 
								 | 
							
								         * an operation. As a remedy, the whole scope is traversed again with an empty "Identifier"
							 | 
						||
| 
								 | 
							
								         * visitor - this makes the problem go away.
							 | 
						||
| 
								 | 
							
								         *
							 | 
						||
| 
								 | 
							
								         * See: https://github.com/kentcdodds/import-all.macro/issues/7
							 | 
						||
| 
								 | 
							
								         */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        state.file.scope.path.traverse({
							 | 
						||
| 
								 | 
							
								          Identifier: function Identifier() {}
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								        macro({
							 | 
						||
| 
								 | 
							
								          path: path,
							 | 
						||
| 
								 | 
							
								          references: referencePathsByImportName,
							 | 
						||
| 
								 | 
							
								          state: state,
							 | 
						||
| 
								 | 
							
								          babel: babel,
							 | 
						||
| 
								 | 
							
								          isEmotionCall: true,
							 | 
						||
| 
								 | 
							
								          isBabelMacrosCall: true
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								      },
							 | 
						||
| 
								 | 
							
								      Program: function Program(path, state) {
							 | 
						||
| 
								 | 
							
								        var macros = {};
							 | 
						||
| 
								 | 
							
								        var jsxReactImports = [{
							 | 
						||
| 
								 | 
							
								          importSource: '@emotion/react',
							 | 
						||
| 
								 | 
							
								          "export": 'jsx',
							 | 
						||
| 
								 | 
							
								          cssExport: 'css'
							 | 
						||
| 
								 | 
							
								        }];
							 | 
						||
| 
								 | 
							
								        state.jsxReactImport = jsxReactImports[0];
							 | 
						||
| 
								 | 
							
								        Object.keys(state.opts.importMap || {}).forEach(function (importSource) {
							 | 
						||
| 
								 | 
							
								          var value = state.opts.importMap[importSource];
							 | 
						||
| 
								 | 
							
								          var transformers = {};
							 | 
						||
| 
								 | 
							
								          Object.keys(value).forEach(function (localExportName) {
							 | 
						||
| 
								 | 
							
								            var _value$localExportNam = value[localExportName],
							 | 
						||
| 
								 | 
							
								                canonicalImport = _value$localExportNam.canonicalImport,
							 | 
						||
| 
								 | 
							
								                options = _objectWithoutPropertiesLoose(_value$localExportNam, _excluded);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            var packageName = canonicalImport[0],
							 | 
						||
| 
								 | 
							
								                exportName = canonicalImport[1];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if (packageName === '@emotion/react' && exportName === 'jsx') {
							 | 
						||
| 
								 | 
							
								              jsxReactImports.push({
							 | 
						||
| 
								 | 
							
								                importSource: importSource,
							 | 
						||
| 
								 | 
							
								                "export": localExportName,
							 | 
						||
| 
								 | 
							
								                cssExport: getCssExport('jsx', importSource, value)
							 | 
						||
| 
								 | 
							
								              });
							 | 
						||
| 
								 | 
							
								              return;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            var packageTransformers = transformersSource[packageName];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if (packageTransformers === undefined) {
							 | 
						||
| 
								 | 
							
								              throw new Error("There is no transformer for the export '" + exportName + "' in '" + packageName + "'");
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            var extraOptions;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if (packageName === '@emotion/react' && exportName === 'Global') {
							 | 
						||
| 
								 | 
							
								              // this option is not supposed to be set in importMap
							 | 
						||
| 
								 | 
							
								              extraOptions = {
							 | 
						||
| 
								 | 
							
								                cssExport: getCssExport('Global', importSource, value)
							 | 
						||
| 
								 | 
							
								              };
							 | 
						||
| 
								 | 
							
								            } else if (packageName === '@emotion/styled' && exportName === 'default') {
							 | 
						||
| 
								 | 
							
								              // this is supposed to override defaultOptions value
							 | 
						||
| 
								 | 
							
								              // and let correct value to be set if coming in options
							 | 
						||
| 
								 | 
							
								              extraOptions = {
							 | 
						||
| 
								 | 
							
								                styledBaseImport: undefined
							 | 
						||
| 
								 | 
							
								              };
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            var _ref2 = // $FlowFixMe
							 | 
						||
| 
								 | 
							
								            Array.isArray(packageTransformers[exportName]) ? packageTransformers[exportName] : [packageTransformers[exportName]],
							 | 
						||
| 
								 | 
							
								                exportTransformer = _ref2[0],
							 | 
						||
| 
								 | 
							
								                defaultOptions = _ref2[1];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            transformers[localExportName] = [exportTransformer, _extends({}, defaultOptions, extraOptions, options)];
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								          macros[importSource] = createTransformerMacro(transformers, {
							 | 
						||
| 
								 | 
							
								            importSource: importSource
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								        state.pluginMacros = _extends({
							 | 
						||
| 
								 | 
							
								          '@emotion/styled': webStyledMacro,
							 | 
						||
| 
								 | 
							
								          '@emotion/react': coreMacro,
							 | 
						||
| 
								 | 
							
								          '@emotion/primitives': primitivesStyledMacro,
							 | 
						||
| 
								 | 
							
								          '@emotion/native': nativeStyledMacro,
							 | 
						||
| 
								 | 
							
								          '@emotion/css': vanillaEmotionMacro
							 | 
						||
| 
								 | 
							
								        }, macros);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        var _loop = function _loop() {
							 | 
						||
| 
								 | 
							
								          var node = _step.value;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								          if (t.isImportDeclaration(node)) {
							 | 
						||
| 
								 | 
							
								            var jsxReactImport = jsxReactImports.find(function (thing) {
							 | 
						||
| 
								 | 
							
								              return node.source.value === thing.importSource && node.specifiers.some(function (x) {
							 | 
						||
| 
								 | 
							
								                return t.isImportSpecifier(x) && x.imported.name === thing["export"];
							 | 
						||
| 
								 | 
							
								              });
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if (jsxReactImport) {
							 | 
						||
| 
								 | 
							
								              state.jsxReactImport = jsxReactImport;
							 | 
						||
| 
								 | 
							
								              return "break";
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        for (var _iterator = _createForOfIteratorHelperLoose(path.node.body), _step; !(_step = _iterator()).done;) {
							 | 
						||
| 
								 | 
							
								          var _ret = _loop();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								          if (_ret === "break") break;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (state.opts.cssPropOptimization === false) {
							 | 
						||
| 
								 | 
							
								          state.transformCssProp = false;
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								          state.transformCssProp = true;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (state.opts.sourceMap === false) {
							 | 
						||
| 
								 | 
							
								          state.emotionSourceMap = false;
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								          state.emotionSourceMap = true;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      },
							 | 
						||
| 
								 | 
							
								      JSXAttribute: function JSXAttribute(path, state) {
							 | 
						||
| 
								 | 
							
								        if (path.node.name.name !== 'css' || !state.transformCssProp) {
							 | 
						||
| 
								 | 
							
								          return;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (t.isJSXExpressionContainer(path.node.value)) {
							 | 
						||
| 
								 | 
							
								          if (t.isArrayExpression(path.node.value.expression)) {
							 | 
						||
| 
								 | 
							
								            transformCsslessArrayExpression({
							 | 
						||
| 
								 | 
							
								              state: state,
							 | 
						||
| 
								 | 
							
								              babel: babel,
							 | 
						||
| 
								 | 
							
								              path: path
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								          } else if (t.isObjectExpression(path.node.value.expression)) {
							 | 
						||
| 
								 | 
							
								            transformCsslessObjectExpression({
							 | 
						||
| 
								 | 
							
								              state: state,
							 | 
						||
| 
								 | 
							
								              babel: babel,
							 | 
						||
| 
								 | 
							
								              path: path,
							 | 
						||
| 
								 | 
							
								              cssImport: state.jsxReactImport
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      },
							 | 
						||
| 
								 | 
							
								      CallExpression: {
							 | 
						||
| 
								 | 
							
								        exit: function exit(path, state) {
							 | 
						||
| 
								 | 
							
								          try {
							 | 
						||
| 
								 | 
							
								            if (path.node.callee && path.node.callee.property && path.node.callee.property.name === 'withComponent') {
							 | 
						||
| 
								 | 
							
								              switch (path.node.arguments.length) {
							 | 
						||
| 
								 | 
							
								                case 1:
							 | 
						||
| 
								 | 
							
								                case 2:
							 | 
						||
| 
								 | 
							
								                  {
							 | 
						||
| 
								 | 
							
								                    path.node.arguments[1] = getStyledOptions(t, path, state);
							 | 
						||
| 
								 | 
							
								                  }
							 | 
						||
| 
								 | 
							
								              }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								          } catch (e) {
							 | 
						||
| 
								 | 
							
								            throw path.buildCodeFrameError(e);
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.default = index;
							 | 
						||
| 
								 | 
							
								exports.macros = macros;
							 |