{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/css.js"],"names":["module","exports","hljs","RULE","begin","returnBegin","end","endsWithParent","contains","className","excludeEnd","starts","APOS_STRING_MODE","QUOTE_STRING_MODE","CSS_NUMBER_MODE","C_BLOCK_COMMENT_MODE","name","case_insensitive","illegal","lexemes","keywords","relevance"],"mappings":"gFAiHAA,EAAOC,QA1GP,SAAaC,GACX,IAmCIC,EAAO,CACTC,MAAO,wCACPC,aAAa,EACbC,IAAK,IACLC,gBAAgB,EAChBC,SAAU,CA5BI,CACdC,UAAW,YACXL,MAAO,KACPE,IAAK,IACLI,YAAY,EACZC,OAAQ,CACNJ,gBAAgB,EAChBG,YAAY,EACZF,SAAU,CApBM,CAClBJ,MAAO,WACPC,aAAa,EACbG,SAAU,CAAC,CACTC,UAAW,WACXL,MAAO,UACN,CACDA,MAAO,KACPE,IAAK,KACLE,SAAU,CAACN,EAAKU,iBAAkBV,EAAKW,kBAAmBX,EAAKY,oBAWrCZ,EAAKY,gBAAiBZ,EAAKW,kBAAmBX,EAAKU,iBAAkBV,EAAKa,qBAAsB,CACxHN,UAAW,SACXL,MAAO,iBACN,CACDK,UAAW,OACXL,MAAO,mBAiBb,MAAO,CACLY,KAAM,MACNC,kBAAkB,EAClBC,QAAS,YACTV,SAAU,CAACN,EAAKa,qBAAsB,CACpCN,UAAW,cACXL,MAAO,mBACN,CACDK,UAAW,iBACXL,MAAO,oBACN,CACDK,UAAW,gBACXL,MAAO,KACPE,IAAK,KACLY,QAAS,IACTV,SAAU,CAACN,EAAKU,iBAAkBV,EAAKW,oBACtC,CACDJ,UAAW,kBACXL,MAAO,kCAIT,CACEA,MAAO,oBACPe,QArCgB,WAsChBC,SAAU,oBACT,CACDhB,MAAO,IACPE,IAAK,OAKLY,QAAS,IAETb,aAAa,EACbG,SAAU,CAAC,CACTC,UAAW,UACXL,MAhDe,uBAiDd,CACDA,MAAO,KACPG,gBAAgB,EAChBG,YAAY,EACZW,UAAW,EACXD,SAvDa,kBAwDbZ,SAAU,CAAC,CACTJ,MAAO,WACPK,UAAW,aACVP,EAAKU,iBAAkBV,EAAKW,kBAAmBX,EAAKY,oBAExD,CACDL,UAAW,eACXL,MA5DW,0BA6DXiB,UAAW,GACV,CACDjB,MAAO,IACPE,IAAK,IACLY,QAAS,KACTV,SAAU,CAACN,EAAKa,qBAAsBZ","file":"react-syntax-highlighter_languages_highlight_css-9c280c68e0d5c647892d.js","sourcesContent":["/*\nLanguage: CSS\nCategory: common, css\nWebsite: https://developer.mozilla.org/en-US/docs/Web/CSS\n*/\n\n/** @type LanguageFn */\nfunction css(hljs) {\n  var FUNCTION_LIKE = {\n    begin: /[\\w-]+\\(/,\n    returnBegin: true,\n    contains: [{\n      className: 'built_in',\n      begin: /[\\w-]+/\n    }, {\n      begin: /\\(/,\n      end: /\\)/,\n      contains: [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, hljs.CSS_NUMBER_MODE]\n    }]\n  };\n  var ATTRIBUTE = {\n    className: 'attribute',\n    begin: /\\S/,\n    end: ':',\n    excludeEnd: true,\n    starts: {\n      endsWithParent: true,\n      excludeEnd: true,\n      contains: [FUNCTION_LIKE, hljs.CSS_NUMBER_MODE, hljs.QUOTE_STRING_MODE, hljs.APOS_STRING_MODE, hljs.C_BLOCK_COMMENT_MODE, {\n        className: 'number',\n        begin: '#[0-9A-Fa-f]+'\n      }, {\n        className: 'meta',\n        begin: '!important'\n      }]\n    }\n  };\n  var AT_IDENTIFIER = '@[a-z-]+'; // @font-face\n\n  var AT_MODIFIERS = \"and or not only\";\n  var AT_PROPERTY_RE = /@\\-?\\w[\\w]*(\\-\\w+)*/; // @-webkit-keyframes\n\n  var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n  var RULE = {\n    begin: /(?:[A-Z\\_\\.\\-]+|--[a-zA-Z0-9_-]+)\\s*:/,\n    returnBegin: true,\n    end: ';',\n    endsWithParent: true,\n    contains: [ATTRIBUTE]\n  };\n  return {\n    name: 'CSS',\n    case_insensitive: true,\n    illegal: /[=\\/|'\\$]/,\n    contains: [hljs.C_BLOCK_COMMENT_MODE, {\n      className: 'selector-id',\n      begin: /#[A-Za-z0-9_-]+/\n    }, {\n      className: 'selector-class',\n      begin: /\\.[A-Za-z0-9_-]+/\n    }, {\n      className: 'selector-attr',\n      begin: /\\[/,\n      end: /\\]/,\n      illegal: '$',\n      contains: [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]\n    }, {\n      className: 'selector-pseudo',\n      begin: /:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/\n    }, // matching these here allows us to treat them more like regular CSS\n    // rules so everything between the {} gets regular rule highlighting,\n    // which is what we want for page and font-face\n    {\n      begin: '@(page|font-face)',\n      lexemes: AT_IDENTIFIER,\n      keywords: '@page @font-face'\n    }, {\n      begin: '@',\n      end: '[{;]',\n      // at_rule eating first \"{\" is a good thing\n      // because it doesn’t let it to be parsed as\n      // a rule set but instead drops parser into\n      // the default mode which is how it should be.\n      illegal: /:/,\n      // break on Less variables @var: ...\n      returnBegin: true,\n      contains: [{\n        className: 'keyword',\n        begin: AT_PROPERTY_RE\n      }, {\n        begin: /\\s/,\n        endsWithParent: true,\n        excludeEnd: true,\n        relevance: 0,\n        keywords: AT_MODIFIERS,\n        contains: [{\n          begin: /[a-z-]+:/,\n          className: \"attribute\"\n        }, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, hljs.CSS_NUMBER_MODE]\n      }]\n    }, {\n      className: 'selector-tag',\n      begin: IDENT_RE,\n      relevance: 0\n    }, {\n      begin: '{',\n      end: '}',\n      illegal: /\\S/,\n      contains: [hljs.C_BLOCK_COMMENT_MODE, RULE]\n    }]\n  };\n}\n\nmodule.exports = css;"],"sourceRoot":""}