{"version":3,"sources":["webpack:///./node_modules/css-to-react-native/index.js"],"names":[],"mappings":";;;;;;;;;;;;AAAa;;AAEb;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,YAAY,mBAAO,CAAC,8EAAsB;;AAE1C;;AAEA,wCAAwC,mBAAO,CAAC,mDAAU;;AAE1D,uCAAuC,mBAAO,CAAC,uEAAoB;;AAEnE;AACA;AACA,yCAAyC,IAAI;AAC7C;AACA,GAAG;AACH;;AAEA,iCAAiC,IAAI,EAAE,IAAI;AAC3C;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA,yCAAyC;;AAEzC,uDAAuD;;AAEvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;;AAEpB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;;AAElB,iBAAiB;;AAEjB;;AAEA;AACA,sCAAsC;AACtC;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wDAAwD;;AAExD;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,8BAA8B,WAAW,gBAAgB,YAAY,GAAG,YAAY;AACpF;AACA;;AAEA;AACA,yBAAyB,2CAA2C;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;;;AAGA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,MAAqC,GAAG,SAA2B;AACjG;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA","file":"vendor.css-to-react-native.efddb20770221295b8d1.js","sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopDefault(ex) {\n  return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar parse = require('postcss-value-parser');\n\nvar parse__default = _interopDefault(parse);\n\nvar camelizeStyleName = _interopDefault(require('camelize'));\n\nvar cssColorKeywords = _interopDefault(require('css-color-keywords'));\n\nvar matchString = function matchString(node) {\n  if (node.type !== 'string') return null;\n  return node.value.replace(/\\\\([0-9a-f]{1,6})(?:\\s|$)/gi, function (match, charCode) {\n    return String.fromCharCode(parseInt(charCode, 16));\n  }).replace(/\\\\/g, '');\n};\n\nvar hexColorRe = /^(#(?:[0-9a-f]{3,4}){1,2})$/i;\nvar cssFunctionNameRe = /^(rgba?|hsla?|hwb|lab|lch|gray|color)$/;\n\nvar matchColor = function matchColor(node) {\n  if (node.type === 'word' && (hexColorRe.test(node.value) || node.value in cssColorKeywords || node.value === 'transparent')) {\n    return node.value;\n  } else if (node.type === 'function' && cssFunctionNameRe.test(node.value)) {\n    return parse.stringify(node);\n  }\n\n  return null;\n};\n\nvar noneRe = /^(none)$/i;\nvar autoRe = /^(auto)$/i;\nvar identRe = /(^-?[_a-z][_a-z0-9-]*$)/i; // Note if these are wrong, you'll need to change index.js too\n\nvar numberRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?)$/i; // Note lengthRe is sneaky: you can omit units for 0\n\nvar lengthRe = /^(0$|(?:[+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?)(?=px$))/i;\nvar unsupportedUnitRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?(ch|em|ex|rem|vh|vw|vmin|vmax|cm|mm|in|pc|pt))$/i;\nvar angleRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?(?:deg|rad))$/i;\nvar percentRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?%)$/i;\n\nvar noopToken = function noopToken(predicate) {\n  return function (node) {\n    return predicate(node) ? '<token>' : null;\n  };\n};\n\nvar valueForTypeToken = function valueForTypeToken(type) {\n  return function (node) {\n    return node.type === type ? node.value : null;\n  };\n};\n\nvar regExpToken = function regExpToken(regExp, transform) {\n  if (transform === void 0) {\n    transform = String;\n  }\n\n  return function (node) {\n    if (node.type !== 'word') return null;\n    var match = node.value.match(regExp);\n    if (match === null) return null;\n    var value = transform(match[1]);\n    return value;\n  };\n};\n\nvar SPACE = noopToken(function (node) {\n  return node.type === 'space';\n});\nvar SLASH = noopToken(function (node) {\n  return node.type === 'div' && node.value === '/';\n});\nvar COMMA = noopToken(function (node) {\n  return node.type === 'div' && node.value === ',';\n});\nvar WORD = valueForTypeToken('word');\nvar NONE = regExpToken(noneRe);\nvar AUTO = regExpToken(autoRe);\nvar NUMBER = regExpToken(numberRe, Number);\nvar LENGTH = regExpToken(lengthRe, Number);\nvar UNSUPPORTED_LENGTH_UNIT = regExpToken(unsupportedUnitRe);\nvar ANGLE = regExpToken(angleRe, function (angle) {\n  return angle.toLowerCase();\n});\nvar PERCENT = regExpToken(percentRe);\nvar IDENT = regExpToken(identRe);\nvar STRING = matchString;\nvar COLOR = matchColor;\nvar LINE = regExpToken(/^(none|underline|line-through)$/i);\n\nvar aspectRatio = function aspectRatio(tokenStream) {\n  var aspectRatio = tokenStream.expect(NUMBER);\n\n  if (tokenStream.hasTokens()) {\n    tokenStream.expect(SLASH);\n    aspectRatio /= tokenStream.expect(NUMBER);\n  }\n\n  return {\n    aspectRatio: aspectRatio\n  };\n};\n\nvar BORDER_STYLE = regExpToken(/^(solid|dashed|dotted)$/);\nvar defaultBorderWidth = 1;\nvar defaultBorderColor = 'black';\nvar defaultBorderStyle = 'solid';\n\nvar border = function border(tokenStream) {\n  var borderWidth;\n  var borderColor;\n  var borderStyle;\n\n  if (tokenStream.matches(NONE)) {\n    tokenStream.expectEmpty();\n    return {\n      borderWidth: 0,\n      borderColor: 'black',\n      borderStyle: 'solid'\n    };\n  }\n\n  var partsParsed = 0;\n\n  while (partsParsed < 3 && tokenStream.hasTokens()) {\n    if (partsParsed !== 0) tokenStream.expect(SPACE);\n\n    if (borderWidth === undefined && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n      borderWidth = tokenStream.lastValue;\n    } else if (borderColor === undefined && tokenStream.matches(COLOR)) {\n      borderColor = tokenStream.lastValue;\n    } else if (borderStyle === undefined && tokenStream.matches(BORDER_STYLE)) {\n      borderStyle = tokenStream.lastValue;\n    } else {\n      tokenStream[\"throw\"]();\n    }\n\n    partsParsed += 1;\n  }\n\n  tokenStream.expectEmpty();\n  if (borderWidth === undefined) borderWidth = defaultBorderWidth;\n  if (borderColor === undefined) borderColor = defaultBorderColor;\n  if (borderStyle === undefined) borderStyle = defaultBorderStyle;\n  return {\n    borderWidth: borderWidth,\n    borderColor: borderColor,\n    borderStyle: borderStyle\n  };\n};\n\nvar directionFactory = function directionFactory(_ref) {\n  var _ref$types = _ref.types,\n      types = _ref$types === void 0 ? [LENGTH, UNSUPPORTED_LENGTH_UNIT, PERCENT] : _ref$types,\n      _ref$directions = _ref.directions,\n      directions = _ref$directions === void 0 ? ['Top', 'Right', 'Bottom', 'Left'] : _ref$directions,\n      _ref$prefix = _ref.prefix,\n      prefix = _ref$prefix === void 0 ? '' : _ref$prefix,\n      _ref$suffix = _ref.suffix,\n      suffix = _ref$suffix === void 0 ? '' : _ref$suffix;\n  return function (tokenStream) {\n    var _ref2;\n\n    var values = []; // borderWidth doesn't currently allow a percent value, but may do in the future\n\n    values.push(tokenStream.expect.apply(tokenStream, types));\n\n    while (values.length < 4 && tokenStream.hasTokens()) {\n      tokenStream.expect(SPACE);\n      values.push(tokenStream.expect.apply(tokenStream, types));\n    }\n\n    tokenStream.expectEmpty();\n    var top = values[0],\n        _values$ = values[1],\n        right = _values$ === void 0 ? top : _values$,\n        _values$2 = values[2],\n        bottom = _values$2 === void 0 ? top : _values$2,\n        _values$3 = values[3],\n        left = _values$3 === void 0 ? right : _values$3;\n\n    var keyFor = function keyFor(n) {\n      return \"\" + prefix + directions[n] + suffix;\n    };\n\n    return _ref2 = {}, _ref2[keyFor(0)] = top, _ref2[keyFor(1)] = right, _ref2[keyFor(2)] = bottom, _ref2[keyFor(3)] = left, _ref2;\n  };\n};\n\nvar parseShadowOffset = function parseShadowOffset(tokenStream) {\n  var width = tokenStream.expect(LENGTH);\n  var height = tokenStream.matches(SPACE) ? tokenStream.expect(LENGTH) : width;\n  tokenStream.expectEmpty();\n  return {\n    width: width,\n    height: height\n  };\n};\n\nvar parseShadow = function parseShadow(tokenStream) {\n  var offsetX;\n  var offsetY;\n  var radius;\n  var color;\n\n  if (tokenStream.matches(NONE)) {\n    tokenStream.expectEmpty();\n    return {\n      offset: {\n        width: 0,\n        height: 0\n      },\n      radius: 0,\n      color: 'black'\n    };\n  }\n\n  var didParseFirst = false;\n\n  while (tokenStream.hasTokens()) {\n    if (didParseFirst) tokenStream.expect(SPACE);\n\n    if (offsetX === undefined && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n      offsetX = tokenStream.lastValue;\n      tokenStream.expect(SPACE);\n      offsetY = tokenStream.expect(LENGTH, UNSUPPORTED_LENGTH_UNIT);\n      tokenStream.saveRewindPoint();\n\n      if (tokenStream.matches(SPACE) && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT)) {\n        radius = tokenStream.lastValue;\n      } else {\n        tokenStream.rewind();\n      }\n    } else if (color === undefined && tokenStream.matches(COLOR)) {\n      color = tokenStream.lastValue;\n    } else {\n      tokenStream[\"throw\"]();\n    }\n\n    didParseFirst = true;\n  }\n\n  if (offsetX === undefined) tokenStream[\"throw\"]();\n  return {\n    offset: {\n      width: offsetX,\n      height: offsetY\n    },\n    radius: radius !== undefined ? radius : 0,\n    color: color !== undefined ? color : 'black'\n  };\n};\n\nvar boxShadow = function boxShadow(tokenStream) {\n  var _parseShadow = parseShadow(tokenStream),\n      offset = _parseShadow.offset,\n      radius = _parseShadow.radius,\n      color = _parseShadow.color;\n\n  return {\n    shadowOffset: offset,\n    shadowRadius: radius,\n    shadowColor: color,\n    shadowOpacity: 1\n  };\n};\n\nvar defaultFlexGrow = 1;\nvar defaultFlexShrink = 1;\nvar defaultFlexBasis = 0;\n\nvar flex = function flex(tokenStream) {\n  var flexGrow;\n  var flexShrink;\n  var flexBasis;\n\n  if (tokenStream.matches(NONE)) {\n    tokenStream.expectEmpty();\n    return {\n      flexGrow: 0,\n      flexShrink: 0,\n      flexBasis: 'auto'\n    };\n  }\n\n  tokenStream.saveRewindPoint();\n\n  if (tokenStream.matches(AUTO) && !tokenStream.hasTokens()) {\n    return {\n      flexGrow: 1,\n      flexShrink: 1,\n      flexBasis: 'auto'\n    };\n  }\n\n  tokenStream.rewind();\n  var partsParsed = 0;\n\n  while (partsParsed < 2 && tokenStream.hasTokens()) {\n    if (partsParsed !== 0) tokenStream.expect(SPACE);\n\n    if (flexGrow === undefined && tokenStream.matches(NUMBER)) {\n      flexGrow = tokenStream.lastValue;\n      tokenStream.saveRewindPoint();\n\n      if (tokenStream.matches(SPACE) && tokenStream.matches(NUMBER)) {\n        flexShrink = tokenStream.lastValue;\n      } else {\n        tokenStream.rewind();\n      }\n    } else if (flexBasis === undefined && tokenStream.matches(LENGTH, UNSUPPORTED_LENGTH_UNIT, PERCENT)) {\n      flexBasis = tokenStream.lastValue;\n    } else if (flexBasis === undefined && tokenStream.matches(AUTO)) {\n      flexBasis = 'auto';\n    } else {\n      tokenStream[\"throw\"]();\n    }\n\n    partsParsed += 1;\n  }\n\n  tokenStream.expectEmpty();\n  if (flexGrow === undefined) flexGrow = defaultFlexGrow;\n  if (flexShrink === undefined) flexShrink = defaultFlexShrink;\n  if (flexBasis === undefined) flexBasis = defaultFlexBasis;\n  return {\n    flexGrow: flexGrow,\n    flexShrink: flexShrink,\n    flexBasis: flexBasis\n  };\n};\n\nvar FLEX_WRAP = regExpToken(/(nowrap|wrap|wrap-reverse)/);\nvar FLEX_DIRECTION = regExpToken(/(row|row-reverse|column|column-reverse)/);\nvar defaultFlexWrap = 'nowrap';\nvar defaultFlexDirection = 'row';\n\nvar flexFlow = function flexFlow(tokenStream) {\n  var flexWrap;\n  var flexDirection;\n  var partsParsed = 0;\n\n  while (partsParsed < 2 && tokenStream.hasTokens()) {\n    if (partsParsed !== 0) tokenStream.expect(SPACE);\n\n    if (flexWrap === undefined && tokenStream.matches(FLEX_WRAP)) {\n      flexWrap = tokenStream.lastValue;\n    } else if (flexDirection === undefined && tokenStream.matches(FLEX_DIRECTION)) {\n      flexDirection = tokenStream.lastValue;\n    } else {\n      tokenStream[\"throw\"]();\n    }\n\n    partsParsed += 1;\n  }\n\n  tokenStream.expectEmpty();\n  if (flexWrap === undefined) flexWrap = defaultFlexWrap;\n  if (flexDirection === undefined) flexDirection = defaultFlexDirection;\n  return {\n    flexWrap: flexWrap,\n    flexDirection: flexDirection\n  };\n};\n\nvar fontFamily = function fontFamily(tokenStream) {\n  var fontFamily;\n\n  if (tokenStream.matches(STRING)) {\n    fontFamily = tokenStream.lastValue;\n  } else {\n    fontFamily = tokenStream.expect(IDENT);\n\n    while (tokenStream.hasTokens()) {\n      tokenStream.expect(SPACE);\n      var nextIdent = tokenStream.expect(IDENT);\n      fontFamily += \" \" + nextIdent;\n    }\n  }\n\n  tokenStream.expectEmpty();\n  return {\n    fontFamily: fontFamily\n  };\n};\n\nvar NORMAL = regExpToken(/^(normal)$/);\nvar STYLE = regExpToken(/^(italic)$/);\nvar WEIGHT = regExpToken(/^([1-9]00|bold)$/);\nvar VARIANT = regExpToken(/^(small-caps)$/);\nvar defaultFontStyle = 'normal';\nvar defaultFontWeight = 'normal';\nvar defaultFontVariant = [];\n\nvar font = function font(tokenStream) {\n  var fontStyle;\n  var fontWeight;\n  var fontVariant; // let fontSize;\n\n  var lineHeight; // let fontFamily;\n\n  var numStyleWeightVariantMatched = 0;\n\n  while (numStyleWeightVariantMatched < 3 && tokenStream.hasTokens()) {\n    if (tokenStream.matches(NORMAL)) ;else if (fontStyle === undefined && tokenStream.matches(STYLE)) {\n      fontStyle = tokenStream.lastValue;\n    } else if (fontWeight === undefined && tokenStream.matches(WEIGHT)) {\n      fontWeight = tokenStream.lastValue;\n    } else if (fontVariant === undefined && tokenStream.matches(VARIANT)) {\n      fontVariant = [tokenStream.lastValue];\n    } else {\n      break;\n    }\n    tokenStream.expect(SPACE);\n    numStyleWeightVariantMatched += 1;\n  }\n\n  var fontSize = tokenStream.expect(LENGTH, UNSUPPORTED_LENGTH_UNIT);\n\n  if (tokenStream.matches(SLASH)) {\n    lineHeight = tokenStream.expect(LENGTH, UNSUPPORTED_LENGTH_UNIT);\n  }\n\n  tokenStream.expect(SPACE);\n\n  var _fontFamily = fontFamily(tokenStream),\n      fontFamily$1 = _fontFamily.fontFamily;\n\n  if (fontStyle === undefined) fontStyle = defaultFontStyle;\n  if (fontWeight === undefined) fontWeight = defaultFontWeight;\n  if (fontVariant === undefined) fontVariant = defaultFontVariant;\n  var out = {\n    fontStyle: fontStyle,\n    fontWeight: fontWeight,\n    fontVariant: fontVariant,\n    fontSize: fontSize,\n    fontFamily: fontFamily$1\n  };\n  if (lineHeight !== undefined) out.lineHeight = lineHeight;\n  return out;\n};\n\nvar fontVariant = function fontVariant(tokenStream) {\n  var values = [tokenStream.expect(IDENT)];\n\n  while (tokenStream.hasTokens()) {\n    tokenStream.expect(SPACE);\n    values.push(tokenStream.expect(IDENT));\n  }\n\n  return {\n    fontVariant: values\n  };\n};\n\nvar ALIGN_CONTENT = regExpToken(/(flex-(?:start|end)|center|stretch|space-(?:between|around))/);\nvar JUSTIFY_CONTENT = regExpToken(/(flex-(?:start|end)|center|space-(?:between|around|evenly))/);\n\nvar placeContent = function placeContent(tokenStream) {\n  var alignContent = tokenStream.expect(ALIGN_CONTENT);\n  var justifyContent;\n\n  if (tokenStream.hasTokens()) {\n    tokenStream.expect(SPACE);\n    justifyContent = tokenStream.expect(JUSTIFY_CONTENT);\n  } else {\n    justifyContent = 'stretch';\n  }\n\n  tokenStream.expectEmpty();\n  return {\n    alignContent: alignContent,\n    justifyContent: justifyContent\n  };\n};\n\nvar STYLE$1 = regExpToken(/^(solid|double|dotted|dashed)$/);\nvar defaultTextDecorationLine = 'none';\nvar defaultTextDecorationStyle = 'solid';\nvar defaultTextDecorationColor = 'black';\n\nvar textDecoration = function textDecoration(tokenStream) {\n  var line;\n  var style;\n  var color;\n  var didParseFirst = false;\n\n  while (tokenStream.hasTokens()) {\n    if (didParseFirst) tokenStream.expect(SPACE);\n\n    if (line === undefined && tokenStream.matches(LINE)) {\n      var lines = [tokenStream.lastValue.toLowerCase()];\n      tokenStream.saveRewindPoint();\n\n      if (lines[0] !== 'none' && tokenStream.matches(SPACE) && tokenStream.matches(LINE)) {\n        lines.push(tokenStream.lastValue.toLowerCase()); // Underline comes before line-through\n\n        lines.sort().reverse();\n      } else {\n        tokenStream.rewind();\n      }\n\n      line = lines.join(' ');\n    } else if (style === undefined && tokenStream.matches(STYLE$1)) {\n      style = tokenStream.lastValue;\n    } else if (color === undefined && tokenStream.matches(COLOR)) {\n      color = tokenStream.lastValue;\n    } else {\n      tokenStream[\"throw\"]();\n    }\n\n    didParseFirst = true;\n  }\n\n  return {\n    textDecorationLine: line !== undefined ? line : defaultTextDecorationLine,\n    textDecorationColor: color !== undefined ? color : defaultTextDecorationColor,\n    textDecorationStyle: style !== undefined ? style : defaultTextDecorationStyle\n  };\n};\n\nvar textDecorationLine = function textDecorationLine(tokenStream) {\n  var lines = [];\n  var didParseFirst = false;\n\n  while (tokenStream.hasTokens()) {\n    if (didParseFirst) tokenStream.expect(SPACE);\n    lines.push(tokenStream.expect(LINE).toLowerCase());\n    didParseFirst = true;\n  }\n\n  lines.sort().reverse();\n  return {\n    textDecorationLine: lines.join(' ')\n  };\n};\n\nvar textShadow = function textShadow(tokenStream) {\n  var _parseShadow2 = parseShadow(tokenStream),\n      offset = _parseShadow2.offset,\n      radius = _parseShadow2.radius,\n      color = _parseShadow2.color;\n\n  return {\n    textShadowOffset: offset,\n    textShadowRadius: radius,\n    textShadowColor: color\n  };\n};\n\nvar oneOfType = function oneOfType(tokenType) {\n  return function (functionStream) {\n    var value = functionStream.expect(tokenType);\n    functionStream.expectEmpty();\n    return value;\n  };\n};\n\nvar singleNumber = oneOfType(NUMBER);\nvar singleLength = oneOfType(LENGTH);\nvar singleAngle = oneOfType(ANGLE);\n\nvar xyTransformFactory = function xyTransformFactory(tokenType) {\n  return function (key, valueIfOmitted) {\n    return function (functionStream) {\n      var _ref3, _ref4;\n\n      var x = functionStream.expect(tokenType);\n      var y;\n\n      if (functionStream.hasTokens()) {\n        functionStream.expect(COMMA);\n        y = functionStream.expect(tokenType);\n      } else if (valueIfOmitted !== undefined) {\n        y = valueIfOmitted;\n      } else {\n        // Assumption, if x === y, then we can omit XY\n        // I.e. scale(5) => [{ scale: 5 }] rather than [{ scaleX: 5 }, { scaleY: 5 }]\n        return x;\n      }\n\n      functionStream.expectEmpty();\n      return [(_ref3 = {}, _ref3[key + \"Y\"] = y, _ref3), (_ref4 = {}, _ref4[key + \"X\"] = x, _ref4)];\n    };\n  };\n};\n\nvar xyNumber = xyTransformFactory(NUMBER);\nvar xyLength = xyTransformFactory(LENGTH);\nvar xyAngle = xyTransformFactory(ANGLE);\nvar partTransforms = {\n  perspective: singleNumber,\n  scale: xyNumber('scale'),\n  scaleX: singleNumber,\n  scaleY: singleNumber,\n  translate: xyLength('translate', 0),\n  translateX: singleLength,\n  translateY: singleLength,\n  rotate: singleAngle,\n  rotateX: singleAngle,\n  rotateY: singleAngle,\n  rotateZ: singleAngle,\n  skewX: singleAngle,\n  skewY: singleAngle,\n  skew: xyAngle('skew', '0deg')\n};\n\nvar transform = function transform(tokenStream) {\n  var transforms = [];\n  var didParseFirst = false;\n\n  while (tokenStream.hasTokens()) {\n    if (didParseFirst) tokenStream.expect(SPACE);\n    var functionStream = tokenStream.expectFunction();\n    var functionName = functionStream.functionName;\n    var transformedValues = partTransforms[functionName](functionStream);\n\n    if (!Array.isArray(transformedValues)) {\n      var _ref5;\n\n      transformedValues = [(_ref5 = {}, _ref5[functionName] = transformedValues, _ref5)];\n    }\n\n    transforms = transformedValues.concat(transforms);\n    didParseFirst = true;\n  }\n\n  return {\n    transform: transforms\n  };\n};\n\nvar background = function background(tokenStream) {\n  return {\n    backgroundColor: tokenStream.expect(COLOR)\n  };\n};\n\nvar borderColor = directionFactory({\n  types: [COLOR],\n  prefix: 'border',\n  suffix: 'Color'\n});\nvar borderRadius = directionFactory({\n  directions: ['TopLeft', 'TopRight', 'BottomRight', 'BottomLeft'],\n  prefix: 'border',\n  suffix: 'Radius'\n});\nvar borderWidth = directionFactory({\n  prefix: 'border',\n  suffix: 'Width'\n});\nvar margin = directionFactory({\n  types: [LENGTH, UNSUPPORTED_LENGTH_UNIT, PERCENT, AUTO],\n  prefix: 'margin'\n});\nvar padding = directionFactory({\n  prefix: 'padding'\n});\n\nvar fontWeight = function fontWeight(tokenStream) {\n  return {\n    fontWeight: tokenStream.expect(WORD) // Also match numbers as strings\n\n  };\n};\n\nvar shadowOffset = function shadowOffset(tokenStream) {\n  return {\n    shadowOffset: parseShadowOffset(tokenStream)\n  };\n};\n\nvar textShadowOffset = function textShadowOffset(tokenStream) {\n  return {\n    textShadowOffset: parseShadowOffset(tokenStream)\n  };\n};\n\nvar transforms = {\n  aspectRatio: aspectRatio,\n  background: background,\n  border: border,\n  borderColor: borderColor,\n  borderRadius: borderRadius,\n  borderWidth: borderWidth,\n  boxShadow: boxShadow,\n  flex: flex,\n  flexFlow: flexFlow,\n  font: font,\n  fontFamily: fontFamily,\n  fontVariant: fontVariant,\n  fontWeight: fontWeight,\n  margin: margin,\n  padding: padding,\n  placeContent: placeContent,\n  shadowOffset: shadowOffset,\n  textShadow: textShadow,\n  textShadowOffset: textShadowOffset,\n  textDecoration: textDecoration,\n  textDecorationLine: textDecorationLine,\n  transform: transform\n};\nvar propertiesWithoutUnits;\n\nif (process.env.NODE_ENV !== 'production') {\n  propertiesWithoutUnits = ['aspectRatio', 'elevation', 'flexGrow', 'flexShrink', 'opacity', 'shadowOpacity', 'zIndex'];\n}\n\nvar devPropertiesWithUnitsRegExp = propertiesWithoutUnits != null ? new RegExp(propertiesWithoutUnits.join('|')) : null;\nvar SYMBOL_MATCH = 'SYMBOL_MATCH';\n\nvar TokenStream =\n/*#__PURE__*/\nfunction () {\n  function TokenStream(nodes, parent) {\n    this.index = 0;\n    this.nodes = nodes;\n    this.functionName = parent != null ? parent.value : null;\n    this.lastValue = null;\n    this.rewindIndex = -1;\n  }\n\n  var _proto = TokenStream.prototype;\n\n  _proto.hasTokens = function hasTokens() {\n    return this.index <= this.nodes.length - 1;\n  };\n\n  _proto[SYMBOL_MATCH] = function () {\n    if (!this.hasTokens()) return null;\n    var node = this.nodes[this.index];\n\n    for (var i = 0; i < arguments.length; i += 1) {\n      var tokenDescriptor = i < 0 || arguments.length <= i ? undefined : arguments[i];\n      var value = tokenDescriptor(node);\n\n      if (value !== null) {\n        this.index += 1;\n        this.lastValue = value;\n        return value;\n      }\n    }\n\n    return null;\n  };\n\n  _proto.matches = function matches() {\n    return this[SYMBOL_MATCH].apply(this, arguments) !== null;\n  };\n\n  _proto.expect = function expect() {\n    var value = this[SYMBOL_MATCH].apply(this, arguments);\n    return value !== null ? value : this[\"throw\"]();\n  };\n\n  _proto.matchesFunction = function matchesFunction() {\n    var node = this.nodes[this.index];\n    if (node.type !== 'function') return null;\n    var value = new TokenStream(node.nodes, node);\n    this.index += 1;\n    this.lastValue = null;\n    return value;\n  };\n\n  _proto.expectFunction = function expectFunction() {\n    var value = this.matchesFunction();\n    return value !== null ? value : this[\"throw\"]();\n  };\n\n  _proto.expectEmpty = function expectEmpty() {\n    if (this.hasTokens()) this[\"throw\"]();\n  };\n\n  _proto[\"throw\"] = function _throw() {\n    throw new Error(\"Unexpected token type: \" + this.nodes[this.index].type);\n  };\n\n  _proto.saveRewindPoint = function saveRewindPoint() {\n    this.rewindIndex = this.index;\n  };\n\n  _proto.rewind = function rewind() {\n    if (this.rewindIndex === -1) throw new Error('Internal error');\n    this.index = this.rewindIndex;\n    this.lastValue = null;\n  };\n\n  return TokenStream;\n}();\n/* eslint-disable no-param-reassign */\n// Note if this is wrong, you'll need to change tokenTypes.js too\n\n\nvar numberOrLengthRe = /^([+-]?(?:\\d*\\.)?\\d+(?:e[+-]?\\d+)?)(?:px)?$/i;\nvar numberOnlyRe = /^[+-]?(?:\\d*\\.\\d*|[1-9]\\d*)(?:e[+-]?\\d+)?$/i;\nvar boolRe = /^true|false$/i;\nvar nullRe = /^null$/i;\nvar undefinedRe = /^undefined$/i; // Undocumented export\n\nvar transformRawValue = function transformRawValue(propName, value) {\n  if (process.env.NODE_ENV !== 'production') {\n    var needsUnit = !devPropertiesWithUnitsRegExp.test(propName);\n    var isNumberWithoutUnit = numberOnlyRe.test(value);\n\n    if (needsUnit && isNumberWithoutUnit) {\n      // eslint-disable-next-line no-console\n      console.warn(\"Expected style \\\"\" + propName + \": \" + value + \"\\\" to contain units\");\n    }\n\n    if (!needsUnit && value !== '0' && !isNumberWithoutUnit) {\n      // eslint-disable-next-line no-console\n      console.warn(\"Expected style \\\"\" + propName + \": \" + value + \"\\\" to be unitless\");\n    }\n  }\n\n  var numberMatch = value.match(numberOrLengthRe);\n  if (numberMatch !== null) return Number(numberMatch[1]);\n  var boolMatch = value.match(boolRe);\n  if (boolMatch !== null) return boolMatch[0].toLowerCase() === 'true';\n  var nullMatch = value.match(nullRe);\n  if (nullMatch !== null) return null;\n  var undefinedMatch = value.match(undefinedRe);\n  if (undefinedMatch !== null) return undefined;\n  return value;\n};\n\nvar baseTransformShorthandValue = function baseTransformShorthandValue(propName, value) {\n  var ast = parse__default(value);\n  var tokenStream = new TokenStream(ast.nodes);\n  return transforms[propName](tokenStream);\n};\n\nvar transformShorthandValue = process.env.NODE_ENV === 'production' ? baseTransformShorthandValue : function (propName, value) {\n  try {\n    return baseTransformShorthandValue(propName, value);\n  } catch (e) {\n    throw new Error(\"Failed to parse declaration \\\"\" + propName + \": \" + value + \"\\\"\");\n  }\n};\n\nvar getStylesForProperty = function getStylesForProperty(propName, inputValue, allowShorthand) {\n  var _ref6;\n\n  var isRawValue = allowShorthand === false || !(propName in transforms);\n  var value = inputValue.trim();\n  var propValues = isRawValue ? (_ref6 = {}, _ref6[propName] = transformRawValue(propName, value), _ref6) : transformShorthandValue(propName, value);\n  return propValues;\n};\n\nvar getPropertyName = function getPropertyName(propName) {\n  var isCustomProp = /^--\\w+/.test(propName);\n\n  if (isCustomProp) {\n    return propName;\n  }\n\n  return camelizeStyleName(propName);\n};\n\nvar index = function index(rules, shorthandBlacklist) {\n  if (shorthandBlacklist === void 0) {\n    shorthandBlacklist = [];\n  }\n\n  return rules.reduce(function (accum, rule) {\n    var propertyName = getPropertyName(rule[0]);\n    var value = rule[1];\n    var allowShorthand = shorthandBlacklist.indexOf(propertyName) === -1;\n    return Object.assign(accum, getStylesForProperty(propertyName, value, allowShorthand));\n  }, {});\n};\n\nexports[\"default\"] = index;\nexports.getPropertyName = getPropertyName;\nexports.getStylesForProperty = getStylesForProperty;\nexports.transformRawValue = transformRawValue;\n"],"sourceRoot":""}