diff --git a/.babelrc b/.babelrc
new file mode 100644
index 0000000..d6515a7
--- /dev/null
+++ b/.babelrc
@@ -0,0 +1,8 @@
+{
+ "presets": ["es2015", "stage-0", "react"],
+ "plugins": [
+ ["module-alias", [
+ { "src": "./src", "expose": "src" }
+ ]]
+ ]
+}
diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 0000000..f5778f1
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,4 @@
+{
+ "parser": "babel-eslint",
+ "extends": "airbnb"
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..05c33d8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,46 @@
+# project specific
+dist/
+lib/
+
+# Git
+.git
+
+# Logs
+logs
+*.log
+npm-debug.log*
+
+# Runtime data
+pids
+*.pid
+*.seed
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (http://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules
+jspm_packages
+
+# Optional npm cache directory
+.npm
+
+# Optional REPL history
+.node_repl_history
+
+.DS_Store
diff --git a/App.js b/App.js
new file mode 100644
index 0000000..2d1707e
--- /dev/null
+++ b/App.js
@@ -0,0 +1,10 @@
+import React from 'react';
+import Instant2FAComponent from './src/Instant2fa-component.jsx';
+
+const App = () => (
+
+
+
+);
+
+export default App;
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..6529613
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 MadaData
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..467d916
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+# Instant2fa-component
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..d53681b
--- /dev/null
+++ b/index.html
@@ -0,0 +1,11 @@
+
+
+
+
+ Instant2fa-component
+
+
+
+
+
+
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..99105d1
--- /dev/null
+++ b/index.js
@@ -0,0 +1,2 @@
+var Instant2FAComponent = require('./lib/Instant2fa-component').default;
+module.exports = Instant2FAComponent;
diff --git a/main.js b/main.js
new file mode 100644
index 0000000..b84947f
--- /dev/null
+++ b/main.js
@@ -0,0 +1,8 @@
+import React from 'react';
+import ReactDom from 'react-dom';
+import App from './App';
+
+ReactDom.render(
+ ,
+ document.getElementById('app')
+);
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..f900723
--- /dev/null
+++ b/package.json
@@ -0,0 +1,66 @@
+{
+ "name": "instant2fa-component",
+ "version": "0.0.1",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "dev": "webpack-dev-server --inline --hot --port 3000",
+ "compile": "npm-run-all --parallel compile:source compile:postcss",
+ "compile:postcss": "postcss --use precss --use postcss-cssnext -d lib src/*.css",
+ "compile:source": "babel src --out-dir lib",
+ "prepublish": "npm-run-all clean compile",
+ "lint": "eslint src test --ext .jsx,.js",
+ "clean": "rimraf lib dist",
+ "test:watch": "mocha --watch",
+ "test": "mocha"
+ },
+ "keywords": [],
+ "author": "Jesse Pollak",
+ "license": "MIT",
+ "config": {
+ "ghooks": {
+ "pre-commit": "npm run lint",
+ "pre-push": "npm run clean"
+ }
+ },
+ "peerDependencies": {
+ "react": "15.x",
+ "react-dom": "15.x"
+ },
+ "devDependencies": {
+ "babel-cli": "^6.18.0",
+ "babel-core": "^6.18.2",
+ "babel-eslint": "^7.1.1",
+ "babel-loader": "^6.2.8",
+ "babel-plugin-module-alias": "^1.6.0",
+ "babel-preset-es2015": "^6.18.0",
+ "babel-preset-react": "^6.16.0",
+ "babel-preset-react-hmre": "^1.1.1",
+ "babel-preset-stage-0": "^6.16.0",
+ "css-loader": "^0.26.0",
+ "enzyme": "^2.6.0",
+ "eslint": "^3.10.2",
+ "eslint-config-airbnb": "^13.0.0",
+ "eslint-plugin-import": "^2.2.0",
+ "eslint-plugin-jsx-a11y": "^3.0.1",
+ "eslint-plugin-react": "^6.7.1",
+ "expect": "^1.20.2",
+ "expect-jsx": "^2.6.0",
+ "file-loader": "^0.9.0",
+ "ghooks": "^1.3.2",
+ "ignore-styles": "^5.0.1",
+ "jsdom": "^9.8.3",
+ "mocha": "^3.1.2",
+ "npm-run-all": "^3.1.1",
+ "postcss": "^5.2.5",
+ "postcss-cli": "^2.6.0",
+ "postcss-cssnext": "^2.8.0",
+ "postcss-loader": "^1.1.1",
+ "precss": "^1.4.0",
+ "react-addons-test-utils": "^15.4.0",
+ "style-loader": "^0.13.1",
+ "url-loader": "^0.5.7",
+ "webpack": "^1.13.3",
+ "webpack-dev-server": "^1.16.2"
+ }
+}
diff --git a/src/Instant2fa-component.css b/src/Instant2fa-component.css
new file mode 100644
index 0000000..24844ec
--- /dev/null
+++ b/src/Instant2fa-component.css
@@ -0,0 +1 @@
+/* put your css here */
diff --git a/src/Instant2fa-component.jsx b/src/Instant2fa-component.jsx
new file mode 100644
index 0000000..d2e5025
--- /dev/null
+++ b/src/Instant2fa-component.jsx
@@ -0,0 +1,5 @@
+import React from 'react';
+
+const Instant2FAComponent = () => Instant2fa-component
;
+
+export default Instant2FAComponent;
diff --git a/test/Instant2fa-component.spec.js b/test/Instant2fa-component.spec.js
new file mode 100644
index 0000000..976ac84
--- /dev/null
+++ b/test/Instant2fa-component.spec.js
@@ -0,0 +1,20 @@
+/* eslint-disable */
+import React from 'react';
+import expect from 'expect';
+import expectJSX from 'expect-jsx';
+import { shallow } from 'enzyme';
+import { createRenderer } from 'react-addons-test-utils';
+import Instant2fa-component from '../src/Instant2fa-component';
+
+expect.extend(expectJSX);
+
+/* eslint-disable no-undef */
+describe('Instant2fa-component', () => {
+ it('should work', () => {
+
+ });
+});
+
+/* eslint-enable */
+// remove eslint-disable and eslint-enable and enable when you start writing test
+// keep eslint-disable no-undef. and remove the package you don't need.
diff --git a/test/mocha.opts b/test/mocha.opts
new file mode 100644
index 0000000..83487d0
--- /dev/null
+++ b/test/mocha.opts
@@ -0,0 +1,3 @@
+--require babel-register
+--require ignore-styles
+--require ./test/setup
diff --git a/test/setup.js b/test/setup.js
new file mode 100644
index 0000000..019485c
--- /dev/null
+++ b/test/setup.js
@@ -0,0 +1,13 @@
+import jsdom from 'jsdom';
+
+function setupDom() {
+ if (typeof document !== 'undefined') {
+ return;
+ }
+
+ global.document = jsdom.jsdom('');
+ global.window = document.defaultView;
+ global.navigator = window.navigator;
+}
+
+setupDom();
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 0000000..4316515
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,49 @@
+const cssnext = require('postcss-cssnext');
+const precss = require('precss');
+const path = require('path');
+
+module.exports = {
+ entry: './main.js',
+ output: {
+ path: path.join(__dirname, 'dist'),
+ filename: 'index.js',
+ publicPath: '/dist/',
+ },
+ extensions: [
+ "", ".js", ".jsx",
+ ],
+ module: {
+ loaders: [
+ {
+ test: /\.jsx?$/,
+ exclude: /node_modules/,
+ loader: 'babel',
+ query: {
+ presets: ['es2015', 'stage-0', 'react', 'react-hmre'],
+ }
+ },
+ {
+ test: /\.css$/,
+ loader: 'style!css!postcss'
+ },
+ {
+ test: /\.png$/,
+ loader: 'url-loader'
+ },
+ {
+ test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
+ loader: "url-loader?limit=10000&minetype=application/font-woff"
+ },
+ {
+ test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
+ loader: "file-loader"
+ }
+ ]
+ },
+ postcss: function() {
+ return [
+ precss,
+ cssnext
+ ];
+ }
+}