[
  {
    "path": ".babelrc",
    "content": "{\n  \"presets\": [\n    [\n      \"env\",\n      {\n        \"targets\": {\n          \"browsers\": [\n            \"> 2%\"\n          ]\n        }\n      }\n    ],\n    \"stage-1\",\n    \"react\"\n  ]\n}\n"
  },
  {
    "path": ".eslintignore",
    "content": "src/__tests__/**/*.js"
  },
  {
    "path": ".eslintrc",
    "content": "{\n    \"env\": {\n        \"browser\": true\n    },\n    \"extends\": \"airbnb\",\n    \"parser\": \"babel-eslint\",\n    \"parserOptions\": {\n        \"ecmaFeatures\": {\n            \"experimentalObjectRestSpread\": true\n        }\n    },\n    \"rules\": {\n        \"react/jsx-filename-extension\": \"off\",\n        \"react/jsx-props-no-spreading\": \"off\",\n        \"react/require-default-props\": \"warn\",\n        \"react/static-property-placement\": \"off\",\n        \"react/prefer-stateless-function\": \"off\"\n    }\n  }\n  "
  },
  {
    "path": ".flowconfig",
    "content": "[ignore]\n\n[include]\n\n[libs]\n\n[lints]\n\n[options]\n"
  },
  {
    "path": ".gitignore",
    "content": "node_modules\nexample/assets\nlib/\n"
  },
  {
    "path": ".npmignore",
    "content": "src/\nnpm-debug.log\n.babelrc\n"
  },
  {
    "path": ".prettierrc",
    "content": "{\n  \"printWidth\": 90,\n  \"singleQuote\": true,\n  \"bracketSpacing\": false,\n  \"trailingComma\": \"all\",\n  \"jsxBracketSameLine\": true\n}\n"
  },
  {
    "path": "Makefile",
    "content": ".DELETE_ON_ERROR:\n\nBABEL_OPTIONS = --stage 0\nBIN           = ./node_modules/.bin\nTESTS         = $(shell find src -path '*/__tests__/*-test.js')\nSRC           = $(filter-out $(TESTS), $(shell find src -name '*.js'))\nLIB           = $(SRC:src/%.js=lib/%.js) $(SRC:src/%.js=lib/%.js.flow)\nNODE          = $(BIN)/babel-node $(BABEL_OPTIONS)\n\nbuild:\n\t@$(MAKE) -j 8 $(LIB)\n\ntest::\n\t@$(BIN)/jest\n\nci::\n\t@$(BIN)/jest --watch\n\nlint::\n\t@$(BIN)/flow\n\nversion-major version-minor version-patch: lint test\n\t@npm version $(@:version-%=%)\n\npublish: build\n\t@git push --tags origin HEAD:master\n\t@npm publish\n\nlib/%.js: src/%.js\n\t@echo \"Building $(@)\"\n\t@mkdir -p $(@D)\n\t@$(BIN)/babel $(BABEL_OPTIONS) -o $@ $<\n\nlib/%.js.flow: src/%.js\n\t@echo \"Building $(@)\"\n\t@mkdir -p $(@D)\n\t@cp $(<) $(@)\n\nexample: build\n\t@(cd example; $(BIN)/webpack --hide-modules)\n\nwatch-example: build\n\t@(cd example; $(BIN)/webpack --watch --hide-modules)\n\npublish-example: build\n\t@(cd example;\\\n\t\trm -rf .git;\\\n\t\tgit init .;\\\n\t\t$(BIN)/webpack -p;\\\n\t\tgit checkout -b gh-pages;\\\n\t\tgit add .;\\\n\t\tgit commit -m 'Update';\\\n\t\tgit push -f git@github.com:andreypopp/react-fa.git gh-pages;\\\n\t)\n\nclean:\n\t@rm -rf lib\n"
  },
  {
    "path": "README.md",
    "content": "**DEPRECATED:** Use https://github.com/FortAwesome/react-fontawesome instead \n\n# Font Awesome icons as React components\n\n## Installation\n\nReact Font Awesome is distributed via [npm][]:\n\n```bash\nnpm install react react-fa\n```\n\nYou also need to install [webpack][] which is the only bundler at the moment\ncapable to bundle not only JavaScript code but also stylesheets and static\nassets such as fonts and images:\n\n```bash\nnpm install webpack\n```\n\nYou also need a couple of loaders for webpack:\n\n```bash\nnpm install babel-loader style-loader css-loader url-loader file-loader\nnpm install extract-text-webpack-plugin\n```\n\n## Usage\n\nJust as simple as:\n\n```javascript\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport {Icon} from 'react-fa'\n\nReactDOM.renderComponent(\n  <Icon spin name=\"spinner\" />,\n  document.getElementById('main')\n)\n```\n\n### Icon Component API\n\n**Props in `[]` are optional**\n\n|Prop       |Type    |Default    |Description                                 |\n|-----------|:------:|:---------:|--------------------------------------------|\n|name       |`string`|`undefined`|Required: Name of the Font Awesome Icon     |\n|[className]|`string`|`undefined`|Set a CSS class for extra styles            |\n|[size]     |`string`|`undefined`|Increase size: 'lg', '2x', '3x', '4x', '5x' |\n|[rotate]   |`string`|`undefined`|Rotate by deg: '45', '90', '135', '180', '225', '270', '315'|\n|[flip]     |`string`|`undefined`|Flips Icon: 'horizontal', 'vertical'        |\n|[fixedWidth]|`boolean`|`false`|Set Icon to a fixed width                   |\n|[spin]     |`boolean`| `false`|Rotate Icon|\n|[pulse]     |`boolean`|`false`|Rotate Icon in 8 steps|\n|[stack]     |`string` |`undefined`|Stack Icons: '1x', '2x'. [More Info][]\n|[inverse]   |`boolean`|`false`|Inverse the Icon color|\n|[Component] |`string/func`|`span`|Alternate DOM element |\n\n### IconStack Component API\n\n|Prop       |Type    |Default    |Description                                 |\n|-----------|:------:|:---------:|--------------------------------------------|\n|[children] |`node`|`undefined`|Required: Child elements |\n|[size]     |`string`|`undefined`|Increase size: 'lg', '2x', '3x', '4x', '5x' |\n|[className]|`string`|`undefined`|Set a CSS class for extra styles            |\n\n## Webpack Setup\n\nUse the following webpack config (put it in `webpack.config.js`):\n\n```javascript\nvar ExtractTextPlugin = require('extract-text-webpack-plugin')\n\nmodule.exports = {\n  entry: './index.js',\n  output: {\n    path: 'assets',\n    filename: 'bundle.js',\n  },\n  module: {\n    loaders: [\n      {\n        test: /\\.js$/,\n        loader: 'babel'\n      },\n      {\n        test: /\\.css$/,\n        loader: ExtractTextPlugin.extract('style-loader', 'css-loader')\n      },\n      {\n        test: /\\.woff(2)?(\\?v=[0-9]\\.[0-9]\\.[0-9])?$/,\n        loader: 'url-loader?limit=10000&mimetype=application/font-woff'\n      },\n      {\n        test: /\\.(ttf|eot|svg)(\\?v=[0-9]\\.[0-9]\\.[0-9])?$/,\n        loader: 'file-loader'\n      }\n    ]\n  },\n  plugins: [\n    new ExtractTextPlugin('bundle.css')\n  ]\n}\n```\n\nwhich compile everything (js, stylesheets and icon fonts) into `assets/`\ndirectory so you would need this basic HTML file to start your app:\n\n```html\n<!doctype html>\n<html>\n    <head>\n        <link rel=\"stylesheet\" href=\"assets/bundle.css\">\n    </head>\n    <body>\n        <div id=\"main\"></div>\n        <script src=\"assets/bundle.js\"></script>\n    </body>\n</html>\n```\n\nNote: If you run into issues with loading the FontAwesome font when *not* using `ExtractTextPlugin`, this might be fixed by making your `publicPath` absolute. See [this StackOverflow question](http://stackoverflow.com/questions/34133808/webpack-ots-parsing-error-loading-fonts/34133809#34133809) for details.\n\n[webpack]: http://webpack.github.io/\n[npm]: http://npmjs.org\n[More Info]: http://fontawesome.io/examples/ 'Scroll to stacked icons'\n"
  },
  {
    "path": "example/Makefile",
    "content": "build:\n\t../node_modules/.bin/webpack\n"
  },
  {
    "path": "example/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <link rel=\"stylesheet\" href=\"assets/bundle.css\">\n  </head>\n  <body>\n    <div id=\"main\"></div>\n    <script src=\"assets/bundle.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "example/index.js",
    "content": "/**\n * @jsx React.DOM\n */\nvar React = require('react');\nvar ReactDOM = require('react-dom')\nvar ReactFA = require('../src/index');\nvar Icon = ReactFA.Icon;\nvar IconStack = ReactFA.IconStack;\n\nvar Demo = React.createClass({\n\n  render() {\n    return (\n      <article>\n        <h1>React Font Awesome Demo</h1>\n        <article>\n          <h2>Basic Icons</h2>\n          <pre>{`<Icon name=\"camera-retro\" />`}</pre>\n          <Icon name=\"camera-retro\" />\n        </article>\n        <article>\n          <h2>Larger Icons</h2>\n          <pre>{`<Icon name=\"camera-retro\" size=\"lg\" />`}</pre>\n          <Icon name=\"camera-retro\" size=\"lg\" />\n          <pre>{`<Icon name=\"camera-retro\" size=\"2x\" />`}</pre>\n          <Icon name=\"camera-retro\" size=\"2x\" />\n          <pre>{`<Icon name=\"camera-retro\" size=\"3x\" />`}</pre>\n          <Icon name=\"camera-retro\" size=\"3x\" />\n          <pre>{`<Icon name=\"camera-retro\" size=\"4x\" />`}</pre>\n          <Icon name=\"camera-retro\" size=\"4x\" />\n          <pre>{`<Icon name=\"camera-retro\" size=\"5x\" />`}</pre>\n          <Icon name=\"camera-retro\" size=\"5x\" />\n        </article>\n        <article>\n          <h2>Fixed Width Icons</h2>\n          <pre>{`<Icon name=\"check-square\" />`}</pre>\n          <Icon name=\"check-square\" />\n          <pre>{`<Icon name=\"spinner\" spin />`}</pre>\n          <Icon name=\"spinner\" spin />\n        </article>\n        <article>\n          <h2>Spinning Icons</h2>\n          <pre>{`<Icon name=\"spinner\" spin />`}</pre>\n          <Icon name=\"spinner\" spin />\n          <pre>{`<Icon name=\"circle-o-notch\" spin />`}</pre>\n          <Icon name=\"circle-o-notch\" spin />\n          <pre>{`<icon name=\"refresh\" spin />`}</pre>\n          <Icon name=\"refresh\" spin />\n          <pre>{`<Icon name=\"cog\" spin />`}</pre>\n          <Icon name=\"cog\" spin />\n        </article>\n        <article>\n          <h2>Rotated {'&'} Flipped</h2>\n          <pre>{`<Icon name=\"shield\" />`}</pre>\n          <Icon name=\"shield\" />\n          <pre>{`<Icon name=\"shield\" rotate=\"90\" />`}</pre>\n          <Icon name=\"shield\" rotate=\"90\" />\n          <pre>{`<Icon name=\"shield\" rotate=\"180\" />`}</pre>\n          <Icon name=\"shield\" rotate=\"180\" />\n          <pre>{`<Icon name=\"shield\" rotate=\"270\" />`}</pre>\n          <Icon name=\"shield\" rotate=\"270\" />\n          <pre>{`<Icon name=\"shield\" flip=\"horizontal\" />`}</pre>\n          <Icon name=\"shield\" flip=\"horizontal\" />\n          <pre>{`<Icon name=\"shield\" flip=\"vertical\" />`}</pre>\n          <Icon name=\"shield\" flip=\"vertical\" />\n        </article>\n        <article>\n          <h2>Stacked Icons</h2>\n          <pre>{`\n<IconStack>\n  <Icon name=\"circle\" stack=\"2x\" />\n  <Icon name=\"home\" stack=\"1x\" inverse={true} />\n</IconStack>\n`}</pre>\n          <IconStack>\n            <Icon name=\"circle\" stack=\"2x\" />\n            <Icon name=\"home\" stack=\"1x\" inverse={true} />\n          </IconStack>\n          <pre>{`\n<IconStack size=\"2x\">\n  <Icon name=\"circle\" stack=\"2x\" />\n  <Icon name=\"home\" stack=\"1x\" inverse={true} />\n</IconStack>\n`}</pre>\n          <IconStack size=\"2x\">\n            <Icon name=\"circle\" stack=\"2x\" />\n            <Icon name=\"home\" stack=\"1x\" inverse={true} />\n          </IconStack>\n        </article>\n      </article>\n    );\n  }\n});\n\nReactDOM.render(<Demo />, document.getElementById('main'));\n"
  },
  {
    "path": "example/webpack.config.js",
    "content": "var ExtractTextPlugin = require('extract-text-webpack-plugin');\n\nmodule.exports = {\n  entry: './index.js',\n  output: {\n    path: 'assets',\n    filename: 'bundle.js',\n  },\n  module: {\n    loaders: [\n      {\n        test: /\\.js$/,\n        loader: 'babel-loader?stage=0'\n      },\n      {\n        test: /\\.css$/,\n        loader: ExtractTextPlugin.extract('style-loader', 'css-loader')\n      },\n      {\n        test: /\\.(otf|eot|svg|ttf|woff)\\??/,\n        loader: 'url-loader?limit=8192'\n      }\n    ]\n  },\n  plugins: [\n    new ExtractTextPlugin('bundle.css')\n  ]\n};\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"react-fa\",\n  \"version\": \"5.0.0\",\n  \"description\": \"Font Awesome icons as React components\",\n  \"main\": \"lib/index.js\",\n  \"dependencies\": {\n    \"font-awesome\": \"^4.3.0\",\n    \"prop-types\": \"^15.5.8\"\n  },\n  \"peerDependencies\": {\n    \"react\": \">= 0.13.0 <17.0.0\"\n  },\n  \"files\": [\n    \"lib/\"\n  ],\n  \"devDependencies\": {\n    \"babel-cli\": \"^6.26.0\",\n    \"babel-core\": \"^6.0.0\",\n    \"babel-eslint\": \"^10.0.3\",\n    \"babel-jest\": \"^21.2.0\",\n    \"babel-loader\": \"^6.0.0\",\n    \"babel-preset-env\": \"^1.6.0\",\n    \"babel-preset-react\": \"^6.24.1\",\n    \"babel-preset-stage-1\": \"^6.24.1\",\n    \"babel-runtime\": \"^6.0.0\",\n    \"css-loader\": \"^0.18.0\",\n    \"eslint\": \"^6.6.0\",\n    \"eslint-config-airbnb\": \"^18.0.1\",\n    \"eslint-plugin-import\": \"^2.18.2\",\n    \"eslint-plugin-jsx-a11y\": \"^6.2.3\",\n    \"eslint-plugin-react\": \"^7.16.0\",\n    \"extract-text-webpack-plugin\": \"^0.8.2\",\n    \"file-loader\": \"^0.8.4\",\n    \"flow-bin\": \"^0.56.0\",\n    \"jest-cli\": \"^21.2.1\",\n    \"prettier\": \"^1.7.3\",\n    \"react\": \"^16.0.0\",\n    \"react-dom\": \"^16.0.0\",\n    \"style-loader\": \"^0.12.0\",\n    \"url-loader\": \"^0.5.5\",\n    \"webpack\": \"^1.12.0\"\n  },\n  \"scripts\": {\n    \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\",\n    \"lint\": \"eslint \\\"src/**/*.js\\\"\",\n    \"lint:fix\": \"eslint \\\"src/**/*.js\\\" --fix\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/andreypopp/react-fa\"\n  },\n  \"keywords\": [\n    \"react\",\n    \"react-component\",\n    \"font-awesome\",\n    \"icons\"\n  ],\n  \"author\": \"Andrey Popp <8mayday@gmail.com>\",\n  \"license\": \"MIT\",\n  \"bugs\": {\n    \"url\": \"https://github.com/andreypopp/react-fa/issues\"\n  },\n  \"homepage\": \"http://andreypopp.github.io/react-fa/\"\n}\n"
  },
  {
    "path": "src/Icon.js",
    "content": "/**\n * @copyright 2015, Andrey Popp <8mayday@gmail.com>\n * @flow\n */\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\ntype Props = {\n  name: string,\n  className?: string,\n  size?: 'lg' | '2x' | '3x' | '4x' | '5x',\n  rotate?: '45' | '90' | '135' | '180' | '225' | '270' | '315',\n  flip?: 'horizontal' | 'vertical',\n  fixedWidth?: boolean,\n  spin?: boolean,\n  pulse?: boolean,\n  stack?: '1x' | '2x',\n  inverse?: boolean,\n  Component: React.ElementType,\n};\n\nexport default class Icon extends React.Component<Props> {\n  static propTypes = {\n    name: PropTypes.string.isRequired,\n    className: PropTypes.string,\n    size: PropTypes.oneOf(['lg', '2x', '3x', '4x', '5x']),\n    rotate: PropTypes.oneOf(['45', '90', '135', '180', '225', '270', '315']),\n    flip: PropTypes.oneOf(['horizontal', 'vertical']),\n    fixedWidth: PropTypes.bool,\n    spin: PropTypes.bool,\n    pulse: PropTypes.bool,\n    stack: PropTypes.oneOf(['1x', '2x']),\n    inverse: PropTypes.bool,\n    Component: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n  };\n\n  static defaultProps = {\n    Component: 'span',\n  };\n\n  render() {\n    const {\n      Component,\n      name,\n      size,\n      rotate,\n      flip,\n      spin,\n      fixedWidth,\n      stack,\n      inverse,\n      pulse,\n      className,\n      ...props\n    } = this.props;\n    let classNames = `fa fa-${name}`;\n    if (size) {\n      classNames = `${classNames} fa-${size}`;\n    }\n    if (rotate) {\n      classNames = `${classNames} fa-rotate-${rotate}`;\n    }\n    if (flip) {\n      classNames = `${classNames} fa-flip-${flip}`;\n    }\n    if (fixedWidth) {\n      classNames = `${classNames} fa-fw`;\n    }\n    if (spin) {\n      classNames = `${classNames} fa-spin`;\n    }\n    if (pulse) {\n      classNames = `${classNames} fa-pulse`;\n    }\n\n    if (stack) {\n      classNames = `${classNames} fa-stack-${stack}`;\n    }\n    if (inverse) {\n      classNames = `${classNames} fa-inverse`;\n    }\n\n    if (className) {\n      classNames = `${classNames} ${className}`;\n    }\n    return <Component {...props} className={classNames} />;\n  }\n}\n"
  },
  {
    "path": "src/IconStack.js",
    "content": "/**\n * @copyright 2015, Andrey Popp <8mayday@gmail.com>\n * @flow\n */\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\n\ntype Props = {\n  className?: string,\n  size?: 'lg' | '2x' | '3x' | '4x' | '5x',\n  children: React.Element<any>,\n};\n\nexport default class IconStack extends React.Component<Props> {\n  static propTypes = {\n    className: PropTypes.string,\n    size: PropTypes.oneOf(['lg', '2x', '3x', '4x', '5x']),\n    children: PropTypes.node.isRequired,\n  };\n\n  render() {\n    const {\n      className, size, children, ...props\n    } = this.props;\n\n    const classNames = ['fa-stack'];\n\n    if (size) {\n      classNames.push(`fa-${size}`);\n    }\n\n    if (className) {\n      classNames.push(className);\n    }\n\n    const iconStackClassName = classNames.join(' ');\n\n    return (\n      <span {...props} className={iconStackClassName}>\n        {children}\n      </span>\n    );\n  }\n}\n"
  },
  {
    "path": "src/README.md",
    "content": "## React-fa \n### Icon Component API\n\n**Props in `[]` are optional**\n\n|Prop       |Type    |Default    |Description                                 |\n|-----------|:------:|:---------:|--------------------------------------------|\n|name       |`string`|`undefined`|Required: Name of the Font Awesome Icon     |\n|[className]|`string`|`undefined`|Set a CSS class for extra styles            |\n|[size]     |`string`|`undefined`|Increase size: 'lg', '2x', '3x', '4x', '5x' |\n|[rotate]   |`string`|`undefined`|Rotate by deg:'90', '180', '270'            |\n|[flip]     |`string`|`undefined`|Flips Icon: 'horizontal', 'vertical'        |\n|[fixedWidth]|`boolean`|`false`|Set Icon to a fixed width                   |\n|[spin]     |`boolean`| `false`|Rotate Icon|\n|[pulse]     |`boolean`|`false`|Rotate Icon in 8 steps|\n|[stack]     |`string` |`undefined`|Stack Icons: '1x', '2x'. [More Info][]\n|[inverse]   |`boolean`|`false`|Inverse the Icon color|\n|[Component] |`string/func`|`span`|Alternate DOM element |\n\n### IconStack Component API\n|Prop       |Type    |Default    |Description                                 |\n|-----------|:------:|:---------:|--------------------------------------------|\n|[children] |`node`|`undefined`|Required: Child elements |\n|[size]     |`string`|`undefined`|Increase size: 'lg', '2x', '3x', '4x', '5x' |\n|[className]|`string`|`undefined`|Set a CSS class for extra styles            |\n\n\n\n[More Info]: http://fontawesome.io/examples/ 'Scroll to stacked icons'\n"
  },
  {
    "path": "src/__tests__/Icon-test.js",
    "content": "/**\n * @copyright 2015-present, Andrey Popp <8mayday@gmail.com>\n */\n\nimport React from 'react';\nimport { renderToString } from 'react-dom/server';\nimport Icon from '../Icon';\n\ndescribe('Icon', () => {\n  it('renders Font Awesome className', () => {\n    const markup = renderToString(<Icon name=\"plus\" />);\n    expect(/<span class=\"fa fa-plus\"/.exec(markup)).toBeTruthy();\n  });\n\n  it('supports \"size\"', () => {\n    const markup = renderToString(<Icon size=\"lg\" name=\"plus\" />);\n    expect(/<span class=\"fa fa-plus fa-lg\"/.exec(markup)).toBeTruthy();\n  });\n\n  it('supports \"rotate\"', () => {\n    const markup = renderToString(<Icon rotate=\"45\" name=\"plus\" />);\n    expect(/<span class=\"fa fa-plus fa-rotate-45\"/.exec(markup)).toBeTruthy();\n  });\n\n  it('supports \"flip\"', () => {\n    const markup = renderToString(<Icon flip=\"horizontal\" name=\"plus\" />);\n    expect(/<span class=\"fa fa-plus fa-flip-horizontal\"/.exec(markup)).toBeTruthy();\n  });\n\n  it('supports \"fixedWidth\"', () => {\n    const markup = renderToString(<Icon fixedWidth name=\"plus\" />);\n    expect(/<span class=\"fa fa-plus fa-fw\"/.exec(markup)).toBeTruthy();\n  });\n\n  it('supports \"spin\"', () => {\n    const markup = renderToString(<Icon spin name=\"plus\" />);\n    expect(/<span class=\"fa fa-plus fa-spin\"/.exec(markup)).toBeTruthy();\n  });\n\n  it('supports \"pulse\"', () => {\n    const markup = renderToString(<Icon pulse name=\"plus\" />);\n    expect(/<span class=\"fa fa-plus fa-pulse\"/.exec(markup)).toBeTruthy();\n  });\n\n  it('supports \"stack\"', () => {\n    const markup = renderToString(<Icon stack=\"2x\" name=\"plus\" />);\n    expect(/<span class=\"fa fa-plus fa-stack-2x\"/.exec(markup)).toBeTruthy();\n  });\n\n  it('supports \"inverse\"', () => {\n    const markup = renderToString(<Icon inverse name=\"plus\" />);\n    expect(/<span class=\"fa fa-plus fa-inverse\"/.exec(markup)).toBeTruthy();\n  });\n\n  it('supports custom className', () => {\n    const markup = renderToString(<Icon className=\"x\" name=\"plus\" />);\n    expect(/<span class=\"fa fa-plus x\"/.exec(markup)).toBeTruthy();\n  });\n\n  it('can be rendered using different DOM component', () => {\n    const markup = renderToString(<Icon Component=\"i\" name=\"plus\" />);\n    expect(/<i class=\"fa fa-plus\"/.exec(markup)).toBeTruthy();\n  });\n});\n"
  },
  {
    "path": "src/__tests__/IconStack-test.js",
    "content": "/**\n * @copyright 2015-present, Andrey Popp <8mayday@gmail.com>\n */\n\nimport React from 'react';\nimport { renderToString } from 'react-dom/server';\nimport Icon from '../Icon';\nimport IconStack from '../IconStack';\n\ndescribe('IconStack', () => {\n  it('renders icon stack container with default size', () => {\n    const markup = renderToString(\n      <IconStack>\n        <Icon name=\"plus\" />\n      </IconStack>,\n    );\n    expect(/<span class=\"fa-stack\"/.exec(markup)).toBeTruthy();\n  });\n\n  it('supports optional \"size\"', () => {\n    const markup = renderToString(\n      <IconStack size=\"2x\">\n        <Icon name=\"plus\" />\n      </IconStack>,\n    );\n    expect(/<span class=\"fa-stack fa-2x\"/.exec(markup)).toBeTruthy();\n  });\n\n  it('supports custom className', () => {\n    const markup = renderToString(\n      <IconStack className=\"x\">\n        <Icon name=\"plus\" />\n      </IconStack>,\n    );\n    expect(/<span class=\"fa-stack x\"/.exec(markup)).toBeTruthy();\n  });\n});\n"
  },
  {
    "path": "src/index.js",
    "content": "/**\n * @copyright 2015, Andrey Popp <8mayday@gmail.com>\n * @flow\n */\n\nimport 'font-awesome/css/font-awesome.css';\n\nimport Icon from './Icon';\nimport IconStack from './IconStack';\n\nexport { Icon as default, Icon, IconStack };\n"
  }
]