diff --git a/.eslintrc b/.eslintrc
deleted file mode 100644
index fd1d142..0000000
--- a/.eslintrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "parser": "babel-eslint",
- "plugins": [
- "prettier"
- ],
- "rules": {
- "prettier/prettier": ["error", {"trailingComma": "none", "singleQuote": true}]
- }
-}
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..5250bc3
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,73 @@
+{
+ "parser": "babel-eslint",
+ "parserOptions": {
+ "ecmaVersion": 6,
+ "sourceType": "module",
+ "ecmaFeatures": {
+ "globalReturn": false,
+ "impliedStrict": true,
+ "jsx": true,
+ "experimentalObjectRestSpread": true
+ }
+ },
+ "globals": {
+ "__webpack_public_path__": true,
+ "bootstrap": true,
+ "describe": true,
+ "it": true,
+ "beforeEach": true,
+ "afterEach": true,
+ "before": true,
+ "after": true,
+ "test": true,
+ "expect": true
+ },
+ "env": {
+ "browser": true,
+ "node": true,
+ "es6": true
+ },
+ "plugins": [
+ "prettier",
+ "react",
+ "import",
+ "json",
+ "cflint",
+ "compat",
+ "mocha"
+ ],
+ "extends": [
+ "plugin:react/recommended",
+ "plugin:import/errors",
+ "plugin:import/warnings"
+ ],
+ "rules": {
+ "mocha/no-exclusive-tests": 2,
+ "block-scoped-var": 2,
+ "default-case": 2,
+ "guard-for-in": 2,
+ "no-else-return": 2,
+ "no-floating-decimal": 2,
+ "no-self-compare": 2,
+ "no-void": 2,
+ "radix": 2,
+ "wrap-iife": ["error", "inside"],
+ "no-catch-shadow": 2,
+ "handle-callback-err": 2,
+ "camelcase": 0,
+ "no-unused-vars": [2, {"vars": "all", "args": "after-used"}],
+ "no-undef": [2, {"typeof": false}],
+ "react/prop-types": [2, {"skipUndeclared": true}],
+ "import/no-absolute-path": 2,
+ "import/no-deprecated": 1,
+ "import/no-mutable-exports": 1,
+ "import/no-extraneous-dependencies": 0,
+ "import/no-unresolved": 0,
+ "import/first": 1,
+ "prettier/prettier": [2, {"trailingComma": "none", "singleQuote": true}],
+ "compat/compat": 2
+ },
+ "settings": {
+ "import/resolver": "webpack"
+ }
+}
diff --git a/assets/global-caching.svg b/assets/global-caching.svg
new file mode 100644
index 0000000..432cec9
--- /dev/null
+++ b/assets/global-caching.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/insight.svg b/assets/insight.svg
new file mode 100644
index 0000000..a9ac652
--- /dev/null
+++ b/assets/insight.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/security.svg b/assets/security.svg
new file mode 100644
index 0000000..ade1966
--- /dev/null
+++ b/assets/security.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/web-optimization.svg b/assets/web-optimization.svg
new file mode 100644
index 0000000..a219c3f
--- /dev/null
+++ b/assets/web-optimization.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/lang/en.js b/lang/en.js
index b83f417..18229d0 100644
--- a/lang/en.js
+++ b/lang/en.js
@@ -1,7 +1,16 @@
{
"container.drawer.help": "Help",
+ "component.benefitsFeature.globalCaching.title" :"Global Caching",
+ "component.benefitsFeature.globalCaching.description" :"Shorten your visitor's load times with content caching in our 110+ global locations.",
+ "component.benefitsFeature.optimization.title" :"Website Optimization",
+ "component.benefitsFeature.optimization.description" :"Deliver content to users faster by enabling Cloudflare's content optimizations.",
+ "component.benefitsFeature.security.title" :"Security",
+ "component.benefitsFeature.security.description" :"Cloudflare offers protections against vulnerabilities including DDoS protection.",
+ "component.benefitsFeature.insights.title" :"Insights",
+ "component.benefitsFeature.insights.description" :"Monitor bandwidth saved, threats blocked, and more with built-in analytics.",
"component.clientLogin.form.email": "Email",
- "component.clientLogin.form.apiKeyHelp": "Already have an account? Get your API Key from",
+ "component.clientLogin.form.alreadyHaveAccount": "Already have an account?",
+ "component.clientLogin.form.getApiKey": "Get your API Key from",
"component.clientLogin.form.apiKey": "API Key",
"component.clientLogin.form.button": "Save API Credentials",
"component.clientLogin.form.signUp": "Sign up",
@@ -234,6 +243,10 @@
"container.sslCard.select.flexible": "Flexible",
"container.sslCard.select.full": "Full",
"container.sslCard.select.full_strict": "Full Strict",
+ "container.splashPage.heading.speedUp": "Speed up and Optimize your {integrationName} Site with Cloudflare",
+ "container.splashPage.help.alreadyHaveAccount": "Have an account already? Sign in",
+ "container.splashPage.help.here": "here",
+ "container.splashPage.button.createFreeAccount": "Create Your Free Account",
"container.underAttackButton.description": "Is your website currently being attacked?",
"container.underAttackButton.turnOff": "Enable \"I'm Under Attack\" Mode",
"container.underAttackButton.turnOn": "Disable \"I'm Under Attack\" Mode",
diff --git a/package.json b/package.json
index e5ef5aa..421cbdd 100644
--- a/package.json
+++ b/package.json
@@ -20,6 +20,9 @@
],
"testMatch": [
"**/test/**/*.js"
+ ],
+ "testPathIgnorePatterns": [
+ "/node_modules/|_helpers"
]
},
"repository": {
@@ -65,7 +68,13 @@
"d3-format": "^1.0.2",
"eslint": "^3.4.0",
"eslint-loader": "^1.6.1",
+ "eslint-plugin-cflint": "^1.0.0",
+ "eslint-plugin-compat": "^1.0.3",
+ "eslint-plugin-import": "^2.3.0",
+ "eslint-plugin-json": "^1.2.0",
+ "eslint-plugin-mocha": "^4.10.1",
"eslint-plugin-prettier": "^2.0.0",
+ "eslint-plugin-react": "^7.1.0",
"history": "3.2.1",
"intl": "^1.1.0",
"jest": "^19.0.2",
@@ -83,10 +92,13 @@
"react-test-renderer": "^15.4.2",
"redux": "^3.0.4",
"redux-logger": "^2.6.1",
+ "redux-mock-store": "^1.2.3",
"redux-thunk": "^1.0.0",
- "webpack": "^2.2.1"
+ "webpack": "^3.0.0"
},
"dependencies": {
+ "cf-component-box": "^2.2.1",
+ "cf-style-provider": "^1.5.0",
"prop-types": "^15.5.8"
}
}
diff --git a/src/actions/config.js b/src/actions/config.js
index fcb624f..ac70186 100644
--- a/src/actions/config.js
+++ b/src/actions/config.js
@@ -33,14 +33,16 @@ export function asyncConfigInit() {
* 3. Fetch translations with the language from the config.
*/
dispatch(asyncConfigFetch());
- if (typeof absoluteUrlBase !== 'undefined') {
+ if (typeof window.absoluteUrlBase !== 'undefined') {
/*
* Some integrations don't work with relative paths because the URL doesn't match
* the actual file path, this function allows integrations to configure a base absolute
* url path to be used in components/Image. absoluteBaseUrl should be defined globally
* on the page where the SPA is loaded.
*/
- dispatch(configUpdateByKey(ABSOLUTE_URL_BASE_KEY, absoluteUrlBase));
+ dispatch(
+ configUpdateByKey(ABSOLUTE_URL_BASE_KEY, window.absoluteUrlBase)
+ );
}
//log user in if their email is in local storage
if (isLoggedIn()) {
diff --git a/src/components/AnalyticCard/AnalyticCard.js b/src/components/AnalyticCard/AnalyticCard.js
index ebe27e6..3fb78b4 100644
--- a/src/components/AnalyticCard/AnalyticCard.js
+++ b/src/components/AnalyticCard/AnalyticCard.js
@@ -131,7 +131,9 @@ AnalyticCard.propTypes = {
description: PropTypes.string.isRequired,
data: PropTypes.object.isRequired,
dataType: PropTypes.string.isRequired,
- helpTextId: PropTypes.string.isRequired
+ helpTextId: PropTypes.string.isRequired,
+ intl: PropTypes.object.isRequired,
+ formatMessage: PropTypes.func.isRequired
};
function mapStateToProps() {
diff --git a/src/components/AppNavigationLiNode/AppNavigationLiNode.js b/src/components/AppNavigationLiNode/AppNavigationLiNode.js
index f715a2d..1672619 100644
--- a/src/components/AppNavigationLiNode/AppNavigationLiNode.js
+++ b/src/components/AppNavigationLiNode/AppNavigationLiNode.js
@@ -31,5 +31,6 @@ export default class AppNavigationLiNode extends Component {
AppNavigationLiNode.propTypes = {
onClick: PropTypes.func.isRequired,
- title: PropTypes.string.isRequired
+ title: PropTypes.string.isRequired,
+ children: PropTypes.node
};
diff --git a/src/components/BenefitsFeature/BenefitsFeature.js b/src/components/BenefitsFeature/BenefitsFeature.js
new file mode 100644
index 0000000..3f35590
--- /dev/null
+++ b/src/components/BenefitsFeature/BenefitsFeature.js
@@ -0,0 +1,52 @@
+import React, { Component } from 'react';
+import PropTypes from 'prop-types';
+
+export default class BenefitsFeature extends Component {
+ render() {
+ /*
+ * These styles are stolen from the marketing site and aren't in our CSS
+ */
+ let divStyles = {
+ padding: '30px 15px 30px 15px'
+ };
+ let iconStyles = {
+ display: 'block',
+ width: '75px',
+ height: 'auto',
+ maxWidth: '100px',
+ margin: '0 auto'
+ };
+ let largeLinkStyles = {
+ padding: '20px 0 0 0',
+ textAlign: 'center',
+ fontSize: '16px',
+ color: '#333333',
+ width: '100%',
+ display: 'block'
+ };
+ let columnPStyles = {
+ padding: '10px 0 0 0',
+ fontSize: '12px',
+ textAlign: 'center',
+ color: '#9A9D9E'
+ };
+
+ return (
+
+
+
+ {this.props.title}
+
+
+ {this.props.description}
+
+
+ );
+ }
+}
+
+BenefitsFeature.propTypes = {
+ imgSrc: PropTypes.string.isRequired,
+ title: PropTypes.string.isRequired,
+ description: PropTypes.string.isRequired
+};
diff --git a/src/components/CustomCardControl/CustomCardControl.js b/src/components/CustomCardControl/CustomCardControl.js
index ff135ca..5e7c99b 100644
--- a/src/components/CustomCardControl/CustomCardControl.js
+++ b/src/components/CustomCardControl/CustomCardControl.js
@@ -58,7 +58,12 @@ class CustomCardControl extends Component {
CustomCardControl.propTypes = {
name: PropTypes.string,
- indentifier: PropTypes.string.isRequired
+ indentifier: PropTypes.string.isRequired,
+ integrationName: PropTypes.string,
+ activeZone: PropTypes.string,
+ currentPlan: PropTypes.string,
+ minimumPlan: PropTypes.string,
+ children: PropTypes.node
};
function mapStateToProps(state) {
diff --git a/src/components/FeatureManager/FeatureManager.js b/src/components/FeatureManager/FeatureManager.js
index b66b966..101c3bd 100644
--- a/src/components/FeatureManager/FeatureManager.js
+++ b/src/components/FeatureManager/FeatureManager.js
@@ -14,5 +14,6 @@ export default class FeatureManager extends Component {
FeatureManager.propTypes = {
isEnabled: PropTypes.bool.isRequired,
- error: PropTypes.string
+ error: PropTypes.string,
+ children: PropTypes.node
};
diff --git a/src/components/FormattedMarkdown/FormattedMarkdown.js b/src/components/FormattedMarkdown/FormattedMarkdown.js
index 8c41a63..4f92761 100644
--- a/src/components/FormattedMarkdown/FormattedMarkdown.js
+++ b/src/components/FormattedMarkdown/FormattedMarkdown.js
@@ -17,7 +17,6 @@ import { getConfigValue } from '../../selectors/config.js';
//
class FormattedMarkdown extends Component {
render() {
- const { formatMessage } = this.props.intl;
let { integrationName } = this.props;
var formattedMessage = formatMessageForIntegration(
@@ -39,7 +38,10 @@ class FormattedMarkdown extends Component {
}
FormattedMarkdown.propTypes = {
- text: PropTypes.string.isRequired
+ text: PropTypes.string.isRequired,
+ formattedMessage: PropTypes.func,
+ intl: PropTypes.object,
+ integrationName: PropTypes.string
};
function mapStateToProps(state) {
diff --git a/src/components/GradientBanner/GradientBanner.js b/src/components/GradientBanner/GradientBanner.js
new file mode 100644
index 0000000..aec8e6f
--- /dev/null
+++ b/src/components/GradientBanner/GradientBanner.js
@@ -0,0 +1,19 @@
+import React from 'react';
+import { createComponent } from 'cf-style-container';
+
+const gradientStyles = () => ({
+ width: '100%',
+ height: '150px',
+ display: 'flex',
+ justifyContent: 'center',
+ background: 'linear-gradient(left, #8176B5, #76C4E2)',
+ backgroundRepeat: 'no-repeat',
+ backgroundSize: '100% 250px',
+ backgroundColor: '#e6e6e6'
+});
+
+const GradientBanner = ({ className, children }) => {
+ return React.createElement('div', { className }, children);
+};
+
+export default createComponent(gradientStyles, GradientBanner);
diff --git a/src/containers/App/App.js b/src/containers/App/App.js
index a9d2754..0730c28 100644
--- a/src/containers/App/App.js
+++ b/src/containers/App/App.js
@@ -11,6 +11,9 @@ import { asyncConfigInit } from '../../actions/config';
import GlobalNotifications
from '../../containers/GlobalNotifications/GlobalNotifications';
import Header from '../../containers/Header/Header';
+import GradientBanner from '../../components/GradientBanner/GradientBanner';
+
+import { StyleProvider } from 'cf-style-provider';
//Safari Intl Polyfill
if (!global.Intl) {
@@ -19,41 +22,55 @@ if (!global.Intl) {
class AppContainer extends Component {
render() {
return (
-
-
-
-
-
-
- {isLoggedIn()
- ?
-
-
- : null}
+
+
+
+
+
+ {isLoggedIn() ? null : }
+
+
+ {isLoggedIn()
+ ?
+
+
+ : null}
- {isLoggedIn()
- ?
-
-
- {this.props.children}
+ {isLoggedIn()
+ ?
+
+
+ {this.props.children}
+
+
+
+ : {this.props.children}}
+
+
+
+
+
-
- : {this.props.children}}
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
);
}
}
diff --git a/src/containers/AppNavigation/AppNavigation.js b/src/containers/AppNavigation/AppNavigation.js
index 0952a26..db6fa99 100644
--- a/src/containers/AppNavigation/AppNavigation.js
+++ b/src/containers/AppNavigation/AppNavigation.js
@@ -97,7 +97,8 @@ class AppNavigation extends Component {
}
AppNavigation.propTypes = {
- dispatch: PropTypes.func.isRequired
+ dispatch: PropTypes.func.isRequired,
+ config: PropTypes.object.isRequired
};
function mapStateToProps(state) {
diff --git a/src/containers/BenefitsCollection/BenefitsCollection.js b/src/containers/BenefitsCollection/BenefitsCollection.js
new file mode 100644
index 0000000..6278d43
--- /dev/null
+++ b/src/containers/BenefitsCollection/BenefitsCollection.js
@@ -0,0 +1,75 @@
+import React, { Component } from 'react';
+import { connect } from 'react-redux';
+
+import { LayoutRow, LayoutColumn } from 'cf-component-layout';
+import { Flex } from 'cf-component-flex';
+import { injectIntl } from 'react-intl';
+
+import BenefitsFeature from '../../components/BenefitsFeature/BenefitsFeature';
+import { getAbsoluteUrl } from '../../selectors/config';
+
+class BenefitsCollection extends Component {
+ render() {
+ const { config } = this.props;
+ let { formatMessage } = this.props.intl;
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
+
+function mapStateToProps(state) {
+ return { config: state.config };
+}
+
+export default injectIntl(connect(mapStateToProps)(BenefitsCollection));
diff --git a/src/containers/BrowserCacheTTLCard/BrowserCacheTTLCard.js b/src/containers/BrowserCacheTTLCard/BrowserCacheTTLCard.js
index 5e80c42..b07e13c 100644
--- a/src/containers/BrowserCacheTTLCard/BrowserCacheTTLCard.js
+++ b/src/containers/BrowserCacheTTLCard/BrowserCacheTTLCard.js
@@ -86,7 +86,7 @@ class BrowserCacheTTLCard extends Component {
})
},
{
- value: parseInt('18000'), // This is a hack to avoid webpack converting to scientific notation
+ value: parseInt('18000', 10), // This is a hack to avoid webpack converting to scientific notation
label: formatMessage({
id: 'container.browserCacheTTLCard.fiveHours'
})
@@ -110,7 +110,7 @@ class BrowserCacheTTLCard extends Component {
})
},
{
- value: parseInt('72000'), // This is a hack to avoid webpack converting to scientific notation
+ value: parseInt('72000', 10), // This is a hack to avoid webpack converting to scientific notation
label: formatMessage({
id: 'container.browserCacheTTLCard.twentyHours'
})
@@ -140,7 +140,7 @@ class BrowserCacheTTLCard extends Component {
})
},
{
- value: parseInt('432000'), // This is a hack to avoid webpack converting to scientific notation
+ value: parseInt('432000', 10), // This is a hack to avoid webpack converting to scientific notation
label: formatMessage({
id: 'container.browserCacheTTLCard.fiveDays'
})
@@ -182,7 +182,7 @@ class BrowserCacheTTLCard extends Component {
})
},
{
- value: parseInt('31536000'), // This is a hack to avoid webpack converting to scientific notation
+ value: parseInt('31536000', 10), // This is a hack to avoid webpack converting to scientific notation
label: formatMessage({
id: 'container.browserCacheTTLCard.oneYear'
})
diff --git a/src/containers/ChallengePassageCard/ChallengePassageCard.js b/src/containers/ChallengePassageCard/ChallengePassageCard.js
index df7fbc2..c3aa917 100644
--- a/src/containers/ChallengePassageCard/ChallengePassageCard.js
+++ b/src/containers/ChallengePassageCard/ChallengePassageCard.js
@@ -138,13 +138,13 @@ class ChallengePassageCard extends Component {
})
},
{
- value: parseInt('2592000'), // This is a hack to avoid webpack converting to scientific notation
+ value: parseInt('2592000', 10), // This is a hack to avoid webpack converting to scientific notation
label: formatMessage({
id: 'container.challengePassageCard.select.oneMonth'
})
},
{
- value: parseInt('31536000'), // This is a hack to avoid webpack converting to scientific notation
+ value: parseInt('31536000', 10), // This is a hack to avoid webpack converting to scientific notation
label: formatMessage({
id: 'container.challengePassageCard.select.oneYear'
})
diff --git a/src/containers/Header/Header.js b/src/containers/Header/Header.js
index 390974b..8136bed 100644
--- a/src/containers/Header/Header.js
+++ b/src/containers/Header/Header.js
@@ -15,8 +15,8 @@ class Header extends Component {
let { config, activeZone, zoneSettings } = this.props;
var logoStyle = {
- width: '170px',
- height: '30px',
+ width: '140px',
+ height: '40px',
position: 'relative',
top: '30px', // Hard code .header-main height/2
transform: 'translateY(-50%)'
diff --git a/src/containers/LoginPage/LoginPage.js b/src/containers/LoginPage/LoginPage.js
index dc532be..6117a9e 100644
--- a/src/containers/LoginPage/LoginPage.js
+++ b/src/containers/LoginPage/LoginPage.js
@@ -3,12 +3,11 @@ import { connect } from 'react-redux';
import { FormattedMessage, injectIntl } from 'react-intl';
import { Button } from 'cf-component-button';
+import { Box } from 'cf-component-box';
import { Form, FormHeader, FormFieldset, FormLabel } from 'cf-component-form';
import Input from 'cf-component-input';
import { LayoutContainer, LayoutRow, LayoutColumn } from 'cf-component-layout';
-import MarketingFeatureCollection
- from '../../containers/MarketingFeatureCollection/MarketingFeatureCollection';
import { asyncAPILogin, asyncLogin } from '../../actions/user';
import {
CLOUDFLARE_SIGNUP_PAGE,
@@ -152,13 +151,15 @@ class LoginPage extends Component {
-
+
+
+
@@ -199,20 +200,21 @@ class LoginPage extends Component {
>
cloudflare.com
- .
-
-
-
- {' '}
-
- here
-
- .
+ .{' '}
+
+
+
+ {' '}
+
+ here
+
+ .
+
}
@@ -221,7 +223,6 @@ class LoginPage extends Component {
-
);
}
diff --git a/src/containers/MarketingFeatureCollection/MarketingFeatureCollection.js b/src/containers/MarketingFeatureCollection/MarketingFeatureCollection.js
index 84c6048..2ce91bf 100644
--- a/src/containers/MarketingFeatureCollection/MarketingFeatureCollection.js
+++ b/src/containers/MarketingFeatureCollection/MarketingFeatureCollection.js
@@ -3,7 +3,7 @@ import { connect } from 'react-redux';
import { LayoutRow, LayoutColumn } from 'cf-component-layout';
import { Flex } from 'cf-component-flex';
-import { FormattedMessage, injectIntl } from 'react-intl';
+import { injectIntl } from 'react-intl';
import MarketingFeature
from '../../components/MarketingFeature/MarketingFeature';
diff --git a/src/containers/SplashPage/SplashPage.js b/src/containers/SplashPage/SplashPage.js
new file mode 100644
index 0000000..8bec254
--- /dev/null
+++ b/src/containers/SplashPage/SplashPage.js
@@ -0,0 +1,144 @@
+import React, { Component } from 'react';
+import { connect } from 'react-redux';
+
+import { FormattedMessage, injectIntl } from 'react-intl';
+import { Box } from 'cf-component-box';
+import { Button } from 'cf-component-button';
+import { Heading } from 'cf-component-heading';
+
+import { Card, CardSection } from 'cf-component-card';
+
+import { LayoutContainer, LayoutRow, LayoutColumn } from 'cf-component-layout';
+
+import BenefitsCollection
+ from '../../containers/BenefitsCollection/BenefitsCollection';
+
+import {
+ CLOUDFLARE_SIGNUP_PAGE,
+ LOGIN_PAGE,
+ HOME_PAGE
+} from '../../constants/UrlPaths.js';
+import { isLoggedIn } from '../../utils/Auth/Auth';
+import { Link } from 'react-router';
+import { push } from 'react-router-redux';
+
+import { openWindow720x720 } from '../../utils/utils.js';
+import { getConfigValue } from '../../selectors/config';
+import { generateUTMLink } from '../../selectors/generateUTMLink.js';
+import { generateChannelLink } from '../../selectors/generateChannelLink.js';
+
+const SIGNUP_SPLASH_UTM_CONTENT_IDENTIFIER = 'signup_splash_page';
+
+const cardBoxStyles = {
+ margin: '2em auto',
+ maxWidth: '1024px',
+ textAlign: 'center'
+};
+
+const linkStyles = {
+ textDecoration: 'none',
+ color: '#1592E6'
+};
+
+const textStyles = {
+ color: '#9A9D9E'
+};
+
+const cardPaddingStyles = {
+ padding: '65px 0'
+};
+
+class SplashPage extends Component {
+ componentWillMount() {
+ let { dispatch } = this.props;
+ if (isLoggedIn()) {
+ dispatch(push(HOME_PAGE));
+ }
+ }
+
+ render() {
+ const { config } = this.props;
+
+ const integrationName = getConfigValue(config, 'integrationName');
+ const integrationNameCapital =
+ integrationName.charAt(0).toUpperCase() + integrationName.slice(1);
+
+ let signupLinkWithUTM = generateUTMLink(
+ CLOUDFLARE_SIGNUP_PAGE,
+ integrationName,
+ integrationName,
+ SIGNUP_SPLASH_UTM_CONTENT_IDENTIFIER
+ );
+
+ let signupLinkWithUTMAndChannel = generateChannelLink(
+ signupLinkWithUTM,
+ integrationName
+ );
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {' '}
+
+
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
+
+function mapStateToProps(state) {
+ return {
+ config: state.config
+ };
+}
+
+export default injectIntl(connect(mapStateToProps)(SplashPage));
diff --git a/src/containers/WaitForSettings/WaitForSettings.js b/src/containers/WaitForSettings/WaitForSettings.js
index 96ec278..13851e5 100644
--- a/src/containers/WaitForSettings/WaitForSettings.js
+++ b/src/containers/WaitForSettings/WaitForSettings.js
@@ -33,7 +33,6 @@ class WaitForSettings extends Component {
analytics,
config
} = this.props;
- const { formatMessage } = this.props.intl;
let isSettingsLoaded = true;
let isPluginSettingsLoaded = true;
@@ -98,7 +97,15 @@ class WaitForSettings extends Component {
WaitForSettings.propTypes = {
settings: PropTypes.bool,
pluginSettings: PropTypes.bool,
- analytics: PropTypes.bool
+ analytics: PropTypes.bool,
+ dispatch: PropTypes.func,
+ activeZone: PropTypes.object,
+ zoneSettings: PropTypes.object,
+ zonePluginSettings: PropTypes.object,
+ zoneAnalytics: PropTypes.object,
+ config: PropTypes.object,
+ intl: PropTypes.object,
+ children: PropTypes.node
};
function mapStateToProps(state) {
diff --git a/src/containers/ZoneProvisionContainer/ZoneProvisionContainer.js b/src/containers/ZoneProvisionContainer/ZoneProvisionContainer.js
index b38f747..269837b 100644
--- a/src/containers/ZoneProvisionContainer/ZoneProvisionContainer.js
+++ b/src/containers/ZoneProvisionContainer/ZoneProvisionContainer.js
@@ -91,6 +91,7 @@ class ZoneProvisionContainer extends Component {
diff --git a/src/index.js b/src/index.js
index 4b74309..8525fcd 100644
--- a/src/index.js
+++ b/src/index.js
@@ -15,7 +15,7 @@ const history = syncHistoryWithStore(createHistory(), store);
* Register our RestProxyCallback to send all cf-util-http calls to
* our backend instead of their actual endpoint.
*/
-http.beforeSend(RestProxyCallback);
+http.beforeSend(window.RestProxyCallback);
ReactDOM.render(
diff --git a/src/routes.js b/src/routes.js
index 4e81a3a..5867f39 100644
--- a/src/routes.js
+++ b/src/routes.js
@@ -8,7 +8,8 @@ import AnalyticsPage from './containers/AnalyticsPage/AnaltyicsPage';
import App from './containers/App/App';
import DNSManagementPage
from './containers/DNSManagementPage/DNSManagementPage';
-import Login from './containers/LoginPage/LoginPage';
+import LoginPage from './containers/LoginPage/LoginPage';
+import SplashPage from './containers/SplashPage/SplashPage';
import SignUpPage from './containers/SignUpPage/SignUpPage';
import HomePage from './containers/HomePage/HomePage';
import MoreSettingsPage from './containers/MoreSettingsPage/MoreSettingsPage';
@@ -24,8 +25,8 @@ function requireAuth(nextState, replaceState) {
export default (
-
-
+
+
-1) {
+ return encodeURI(`${pageURL}&channel=${channelName}`);
+ }
+ return encodeURI(`${pageURL}?channel=${channelName}`);
+}
diff --git a/src/test/_helpers/createMockStore.js b/src/test/_helpers/createMockStore.js
new file mode 100644
index 0000000..6875cf3
--- /dev/null
+++ b/src/test/_helpers/createMockStore.js
@@ -0,0 +1,5 @@
+import configureStore from 'redux-mock-store';
+import thunk from 'redux-thunk';
+const middlewares = [thunk];
+
+export default state => configureStore(middlewares)(state);
diff --git a/src/test/components/BenefitsFeatureTest.js b/src/test/components/BenefitsFeatureTest.js
new file mode 100644
index 0000000..054db8b
--- /dev/null
+++ b/src/test/components/BenefitsFeatureTest.js
@@ -0,0 +1,16 @@
+import React from 'react';
+import BenefitsFeature from '../../components/BenefitsFeature/BenefitsFeature';
+import renderer from 'react-test-renderer';
+
+it('renders enabled correctly', () => {
+ const component = renderer
+ .create(
+
+ )
+ .toJSON();
+ expect(component).toMatchSnapshot();
+});
diff --git a/src/test/components/GradientBannerTest.js b/src/test/components/GradientBannerTest.js
new file mode 100644
index 0000000..7989fd2
--- /dev/null
+++ b/src/test/components/GradientBannerTest.js
@@ -0,0 +1,24 @@
+import React from 'react';
+import GradientBanner from '../../components/GradientBanner/GradientBanner';
+import renderer from 'react-test-renderer';
+import { StyleProvider } from 'cf-style-provider';
+
+it('renders enabled correctly', () => {
+ const component = renderer
+ .create(
+
+
+
+ )
+ .toJSON();
+ expect(component).toMatchSnapshot();
+});
diff --git a/src/test/components/__snapshots__/BenefitsFeatureTest.js.snap b/src/test/components/__snapshots__/BenefitsFeatureTest.js.snap
new file mode 100644
index 0000000..699b2f6
--- /dev/null
+++ b/src/test/components/__snapshots__/BenefitsFeatureTest.js.snap
@@ -0,0 +1,51 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`renders enabled correctly 1`] = `
+
+
+
+ title
+
+
+ description
+
+
+`;
diff --git a/src/test/components/__snapshots__/GradientBannerTest.js.snap b/src/test/components/__snapshots__/GradientBannerTest.js.snap
new file mode 100644
index 0000000..f27d4c9
--- /dev/null
+++ b/src/test/components/__snapshots__/GradientBannerTest.js.snap
@@ -0,0 +1,7 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`renders enabled correctly 1`] = `
+
+`;
diff --git a/src/test/containers/SplashPageTest.js b/src/test/containers/SplashPageTest.js
new file mode 100644
index 0000000..2b58a54
--- /dev/null
+++ b/src/test/containers/SplashPageTest.js
@@ -0,0 +1,50 @@
+import React from 'react';
+import SplashPage from '../../containers/SplashPage/SplashPage';
+
+import renderer from 'react-test-renderer';
+import createMockStore from '../_helpers/createMockStore';
+
+import { Provider } from 'react-redux';
+import { StyleProvider } from 'cf-style-provider';
+import { IntlProvider } from 'react-intl';
+
+const messages = {
+ 'container.splashPage.heading.speedUp': 'Speed up and Optimize your WordPress Site with Cloudflare',
+ 'container.splashPage.help.alreadyHaveAccount': 'Have an account already? Sign in',
+ 'container.splashPage.help.here': 'here',
+ 'container.splashPage.button.createFreeAccount': 'Create Your Free Account',
+ 'component.benefitsFeature.globalCaching.title': 'Global Caching',
+ 'component.benefitsFeature.globalCaching.description': "Shorten your visitor's load times with content caching in our 110+ global locations.",
+ 'component.benefitsFeature.optimization.title': 'Website Optimization',
+ 'component.benefitsFeature.optimization.description': "Deliver content to users faster by enabling Cloudflare's content optimizations.",
+ 'component.benefitsFeature.security.title': 'Security',
+ 'component.benefitsFeature.security.description': 'Cloudflare offers protections against vulnerabilities including DDoS protection.',
+ 'component.benefitsFeature.insights.title': 'Insights',
+ 'component.benefitsFeature.insights.description': 'Monitor bandwidth saved, threats blocked, and more with built-in analytics.'
+};
+
+it('renders enabled correctly', () => {
+ window.localStorage = {};
+ const component = renderer
+ .create(
+
+
+
+
+
+
+
+
+ )
+ .toJSON();
+ expect(component).toMatchSnapshot();
+});
diff --git a/src/test/containers/__snapshots__/SplashPageTest.js.snap b/src/test/containers/__snapshots__/SplashPageTest.js.snap
new file mode 100644
index 0000000..9dac15d
--- /dev/null
+++ b/src/test/containers/__snapshots__/SplashPageTest.js.snap
@@ -0,0 +1,371 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`renders enabled correctly 1`] = `
+
+
+
+
+
+
+
+
+
+ Speed up and Optimize your WordPress Site with Cloudflare
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Have an account already? Sign in
+
+
+
+
+ here
+
+
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Global Caching
+
+
+ Shorten your visitor's load times with content caching in our 110+ global locations.
+
+
+
+
+
+
+
+ Website Optimization
+
+
+ Deliver content to users faster by enabling Cloudflare's content optimizations.
+
+
+
+
+
+
+
+ Security
+
+
+ Cloudflare offers protections against vulnerabilities including DDoS protection.
+
+
+
+
+
+
+
+ Insights
+
+
+ Monitor bandwidth saved, threats blocked, and more with built-in analytics.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
diff --git a/src/test/selectors/generateChannelLinkTest.js b/src/test/selectors/generateChannelLinkTest.js
new file mode 100644
index 0000000..bf71f99
--- /dev/null
+++ b/src/test/selectors/generateChannelLinkTest.js
@@ -0,0 +1,29 @@
+import { generateChannelLink } from '../../selectors/generateChannelLink.js';
+
+describe('generateChannelLink', function() {
+ it('should return appended wordpress uri', function() {
+ expect(
+ generateChannelLink('htttp://www.example.com?Param1=param', 'wordpress')
+ ).toBe(
+ 'htttp://www.example.com?Param1=param&channel=Integration:wordpress'
+ );
+
+ it('should return any arbitary channel', function() {
+ expect(
+ generateChannelLink('htttp://www.example.com', 'someNewChannel')
+ ).toBe('htttp://www.example.com?channel=Integration:someNewChannel');
+ });
+
+ it('should return same url when no integrationName', function() {
+ expect(generateChannelLink('htttp://www.example.com', '')).toBe(
+ 'htttp://www.example.com'
+ );
+ });
+
+ it('should return same url when no integrationName', function() {
+ expect(generateChannelLink('htttp://www.example.com')).toBe(
+ 'htttp://www.example.com'
+ );
+ });
+ });
+});
diff --git a/src/utils/ImportCards.js b/src/utils/ImportCards.js
index b359c5d..b7fc58a 100644
--- a/src/utils/ImportCards.js
+++ b/src/utils/ImportCards.js
@@ -36,7 +36,7 @@ import BypassCacheByCookieCard
import DNSManagementPage
from '../containers/DNSManagementPage/DNSManagementPage';
-let cardMapper = {
+const cardMapper = {
AdvanceDDoSCard: AdvanceDDoSCard,
AlwaysOnlineCard: AlwaysOnlineCard,
ApplyDefaultSettingsCard: ApplyDefaultSettingsCard,
diff --git a/stylesheets/components.css b/stylesheets/components.css
index 9facab2..095b702 100644
--- a/stylesheets/components.css
+++ b/stylesheets/components.css
@@ -1,2 +1,2 @@
-@font-face{font-family:cloudflare-font;src:url(../fonts/cloudflare-font.eot);src:url(../fonts/cloudflare-font.eot?#iefix) format("embedded-opentype"),url(../fonts/cloudflare-font.woff) format("woff"),url(../fonts/cloudflare-font.ttf) format("truetype"),url(../fonts/cloudflare-font.svg#cloudflare-font) format("svg");font-weight:400;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/opensans-300.eot);src:url(../fonts/opensans-300.eot?#iefix) format("embedded-opentype"),url(../fonts/opensans-300.woff2) format("woff2"),url(../fonts/opensans-300.woff) format("woff"),url(../fonts/opensans-300.ttf) format("truetype");font-weight:300;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/opensans-300i.eot);src:url(../fonts/opensans-300i.eot?#iefix) format("embedded-opentype"),url(../fonts/opensans-300i.woff2) format("woff2"),url(../fonts/opensans-300i.woff) format("woff"),url(../fonts/opensans-300i.ttf) format("truetype");font-weight:300;font-style:italic}@font-face{font-family:Open Sans;src:url(../fonts/opensans-400.eot);src:url(../fonts/opensans-400.eot?#iefix) format("embedded-opentype"),url(../fonts/opensans-400.woff2) format("woff2"),url(../fonts/opensans-400.woff) format("woff"),url(../fonts/opensans-400.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/opensans-400i.eot);src:url(../fonts/opensans-400i.eot?#iefix) format("embedded-opentype"),url(../fonts/opensans-400i.woff2) format("woff2"),url(../fonts/opensans-400i.woff) format("woff"),url(../fonts/opensans-400i.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:Open Sans;src:url(../fonts/opensans-600.eot);src:url(../fonts/opensans-600.eot?#iefix) format("embedded-opentype"),url(../fonts/opensans-600.woff2) format("woff2"),url(../fonts/opensans-600.woff) format("woff"),url(../fonts/opensans-600.ttf) format("truetype");font-weight:600;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/opensans-700.eot);src:url(../fonts/opensans-700.eot?#iefix) format("embedded-opentype"),url(../fonts/opensans-700.woff2) format("woff2"),url(../fonts/opensans-700.woff) format("woff"),url(../fonts/opensans-700.ttf) format("truetype");font-weight:700;font-style:normal}.cf-btn:focus,.cf-checkbox__input:focus,.cf-dropdown__link a:focus,.cf-input:focus,.cf-link:focus,.cf-radio__input:focus,.cf-tabs__item:focus:after,.cf-textarea:focus,.cf-toggle__checkbox:focus~.cf-toggle__handle{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-1px}.cf-toggle__checkbox,.cf-toggle__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.cf-checkbox__input,.cf-input,.cf-radio__input,.cf-textarea{z-index:0;width:100%;margin:0 0 .75rem;padding:.45em .75em;border:1px solid #bdbdbd;vertical-align:middle;font-family:Open Sans,Helvetica,Arial,sans-serif;font-size:.86667em;background:#fff;color:#333;outline:none;-webkit-transition:border-color .2s ease;transition:border-color .2s ease}.cf-checkbox__input:hover,.cf-input:hover,.cf-radio__input:hover,.cf-textarea:hover{border-color:#256298}.cf-checkbox__input:focus,.cf-input:focus,.cf-radio__input:focus,.cf-textarea:focus{border-color:#2f7bbf}.cf-input,.cf-textarea{border-radius:2px}.cf-checkbox__group,.cf-radio__group{text-align:left;display:inline-block;vertical-align:middle}.cf-checkbox,.cf-radio{cursor:pointer;display:block;min-height:1em;padding-left:2em}.cf-checkbox:hover input,.cf-radio:hover input{border-color:#256298}.cf-checkbox__input,.cf-radio__input{position:relative;height:15px;width:15px;margin:1px 0 0;padding:0;line-height:normal;-webkit-appearance:none;-moz-appearance:none;appearance:none;top:-1px}.cf-checkbox__input:before,.cf-radio__input:before{content:'';position:absolute;background-color:transparent;color:transparent;-webkit-text-stroke:0;-webkit-transition:all .15s ease-out;transition:all .15s ease-out}.cf-checkbox__input{border-radius:2px}.cf-checkbox__input:before{content:'\f009';font-family:cloudflare-font;font-size:15px;left:-1px;top:-1px}.cf-checkbox--checked .cf-checkbox__input:before{color:#333}.cf-radio__input,.cf-radio__input:before{border-radius:50%}.cf-radio__input:before{height:3px;width:3px;top:5px;left:5px}.cf-radio--checked .cf-radio__input:before{background-color:#333;height:7px;width:7px;top:3px;left:3px}.cf-checkbox__label,.cf-radio__label{display:inline;font-size:.86667em;margin-bottom:.38333em;margin-left:1em;min-height:1.22em}.cf-card__toolbar:after,.cf-form__fieldset:after,.cf-modal__footer:after,.cf-progress__items:after{content:"";display:table;clear:both}.cf-btn__group{position:relative;display:inline-block;font-size:0;vertical-align:middle;white-space:nowrap}.cf-btn__group>*{font-size:1rem}.cf-btn__group+.cf-btn__group{margin-left:.4rem}.cf-btn__group .cf-btn{border-radius:0}.cf-btn__group .cf-btn:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.cf-btn__group .cf-btn:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px}.cf-btn__group .cf-btn~.cf-btn{margin-left:-1px}.cf-btn{display:inline-block;position:relative;margin:0;padding:.6em 1em .53333em;border:none;border-bottom:1px solid;background:transparent;border-radius:2px;font-size:.93333rem;font-weight:400;font-family:inherit;line-height:1.2;text-align:center;-webkit-text-stroke:0;-webkit-font-smoothing:subpixel-antialiased;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;-webkit-transition:all .2s ease;transition:all .2s ease}.cf-btn::-moz-focus-inner{padding:0;border:0}.cf-btn+.cf-btn{margin-left:.4rem}.cf-btn--default,.cf-btn--delete,.cf-btn--edit,.cf-btn--note{background-color:#dedede;border-color:#ccc;color:#333}.cf-btn--default:hover,.cf-btn--delete:hover,.cf-btn--edit:hover,.cf-btn--note:hover{background-color:#ccc;border-color:#bababa;color:#333}.cf-btn--default.cf-btn--active,.cf-btn--default:active,.cf-btn--delete.cf-btn--active,.cf-btn--delete:active,.cf-btn--edit.cf-btn--active,.cf-btn--edit:active,.cf-btn--note.cf-btn--active,.cf-btn--note:active{background-color:#bababa;border-color:#a8a8a8;color:#333}.cf-btn--default:focus,.cf-btn--delete:focus,.cf-btn--edit:focus,.cf-btn--note:focus{box-shadow:inset 0 0 0 1px #a8a8a8;color:#333}.cf-btn--primary{background-color:#2f7bbf;border-color:#286aa4;color:#fff}.cf-btn--primary:hover{background-color:#286aa4;border-color:#215887;color:#fff}.cf-btn--primary.cf-btn--active,.cf-btn--primary:active{background-color:#215887;border-color:#1a456b;color:#fff}.cf-btn--primary:focus{box-shadow:inset 0 0 0 1px #1a456b;color:#fff}.cf-btn--accept,.cf-btn--success{background-color:#9bca3e;border-color:#89b431;color:#fff}.cf-btn--accept:hover,.cf-btn--success:hover{background-color:#89b431;border-color:#73982a;color:#fff}.cf-btn--accept.cf-btn--active,.cf-btn--accept:active,.cf-btn--success.cf-btn--active,.cf-btn--success:active{background-color:#73982a;border-color:#5e7c22;color:#fff}.cf-btn--accept:focus,.cf-btn--success:focus{box-shadow:inset 0 0 0 1px #5e7c22;color:#fff}.cf-btn--warning{background-color:#ff7900;border-color:#db6600;color:#fff}.cf-btn--warning:hover{background-color:#db6600;border-color:#b85600;color:#fff}.cf-btn--warning.cf-btn--active,.cf-btn--warning:active{background-color:#b85600;border-color:#944500;color:#fff}.cf-btn--warning:focus{box-shadow:inset 0 0 0 1px #944500;color:#fff}.cf-btn--cancel,.cf-btn--danger{background-color:#bd2527;border-color:#9e1f21;color:#fff}.cf-btn--cancel:hover,.cf-btn--danger:hover{background-color:#9e1f21;border-color:#80191b;color:#fff}.cf-btn--cancel.cf-btn--active,.cf-btn--cancel:active,.cf-btn--danger.cf-btn--active,.cf-btn--danger:active{background-color:#80191b;border-color:#621315;color:#fff}.cf-btn--cancel:focus,.cf-btn--danger:focus{box-shadow:inset 0 0 0 1px #621315;color:#fff}.cf-btn--disabled{cursor:default;pointer-events:none;opacity:.5}.cf-btn--disabled[title]{pointer-events:auto}.cf-btn--link{background-color:transparent;border-color:transparent;color:#2f7bbf}.cf-btn--link:hover{color:#ff7900}.cf-btn--link.cf-btn--active,.cf-btn--link:active,.cf-btn--link:focus{color:#2f7bbf}.cf-btn--facebook i,.cf-btn--twitter i{vertical-align:baseline;font-size:1.33em}.cf-btn--twitter{background-color:#00aced;border-color:#00aced;color:#fff}.cf-btn--twitter:hover{background-color:#1fc3ff;border-color:#05bcff;color:#333}.cf-btn--facebook{background-color:#3b5998;border-color:#3b5998;color:#fff}.cf-btn--facebook:hover{background-color:#4b6eb9;border-color:#4262a9;color:#fff}.cf-btn--accept,.cf-btn--cancel,.cf-btn--delete,.cf-btn--edit,.cf-btn--note{min-height:2.425rem;width:0;overflow:hidden;padding:1.13333em;text-align:left;text-indent:-9999px;white-space:nowrap;font-family:cloudflare-font;font-weight:400;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:subpixel-antialiased}.cf-btn--accept:after,.cf-btn--cancel:after,.cf-btn--delete:after,.cf-btn--edit:after,.cf-btn--note:after{content:"\f009";display:block;position:absolute;height:100%;width:100%;top:53%;left:0;text-align:center;text-indent:0;font-size:225em;line-height:0;speak:none;-webkit-transition-delay:.2s;transition-delay:.2s}.cf-btn--accept:after,.cf-btn--accept:before,.cf-btn--cancel:after,.cf-btn--cancel:before,.cf-btn--delete:after,.cf-btn--delete:before,.cf-btn--edit:after,.cf-btn--edit:before,.cf-btn--note:after,.cf-btn--note:before{-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.cf-btn--accept:after{content:"\f009"}.cf-btn--cancel:after{content:"\f01a"}.cf-btn--delete:after{content:"\f01a"}.cf-btn--edit:after{content:"\f019"}.cf-btn--note:after{content:"\f013"}.cf-btn--block{display:block;margin-bottom:.4rem}.cf-btn--block+.cf-btn--block{margin-left:auto}.cf-btn--loading{color:#ededed;background-color:#ededed;opacity:.8;cursor:default}.cf-btn--loading:before{content:"";display:block;position:absolute;top:0;left:0;height:100%;width:100%;opacity:1;background:transparent url(../assets/spinner.gif) no-repeat 50%;-webkit-transform:scale(1);transform:scale(1);-webkit-animation:a .2s ease-in-out;animation:a .2s ease-in-out}.cf-btn--loading:focus{outline:none}.cf-btn--loading:focus,.cf-btn--loading:hover{background-color:#ededed;color:#ededed}@-webkit-keyframes a{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes a{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.cf-callout{margin:1rem;padding:1rem;border:1px solid transparent;border-radius:2px}.cf-callout--default{background-color:#333;border-color:#333;color:#fff}.cf-callout--info{background-color:#2f7bbf;border-color:#286aa4;color:#fff}.cf-callout__content{margin-top:0}.cf-card{margin-top:1rem;margin-bottom:1rem;padding:0;border:1px solid #dedede;background-color:#fff;border-radius:2px;-webkit-transition:all .35s ease;transition:all .35s ease}.cf-card__section{display:table;table-layout:fixed;width:100%}.cf-card__section+.cf-card__section{border-top:1px solid #dedede}.cf-card__section--error{border-left:3px solid #bd2527}.cf-card__title{font-weight:400;margin-bottom:1rem}.cf-card__footer_message{font-size:.8rem;color:#7d7d7d;line-height:1.3;margin-top:1.5em}.cf-card__messages{padding-top:.5rem}.cf-card__messages .card__messages+p{margin-top:1em}.cf-card__content{padding:1.5rem}.cf-card__control{position:relative;padding:2rem;border:0 solid #dedede;border-top-width:1px;background-color:#000;background-color:rgba(0,0,0,.06);text-align:center}@media (min-width:49.2em){.cf-card__content,.cf-card__control{display:table-cell}.cf-card__control{width:40%;border-left-width:1px;border-top-width:0;vertical-align:middle}}@media (min-width:66em){.cf-card__control{width:30%}}.cf-card__toolbar{min-height:2.96666rem}.cf-card__toolbar_links{float:right}.cf-card__toolbar_link{position:relative;display:inline-block;padding:.73333rem 2em .73333rem .5rem}.cf-card__toolbar_link:after{content:"\f003";font-family:cloudflare-font;font-style:normal;font-weight:400;margin-top:-.6em;position:absolute;top:50%;right:1rem;-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease}.cf-card__toolbar_link--open:after{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.cf-card__drawers_container{display:none}.cf-card__drawers_container--open{display:block}.cf-card__drawer--active{border-top:1px solid #dedede;padding:1.5rem}.cf-card .cf-table{margin-top:0;margin-bottom:0;border-width:0}.cf-card .cf-form{border-left-width:0;border-right-width:0}.cf-checkbox__group .cf-checkbox:first-child{margin-top:0}.cf-checkbox__group .cf-checkbox{margin-top:1em}.cf-code,.cf-code__block{background-color:#dedede;border:1px solid #d1d1d1;font-family:monaco,courier,monospace;border-radius:2px}.cf-code{display:inline-block;margin-left:.13333em;margin-right:.13333em;padding:0 .4em;vertical-align:baseline;color:#bd2527}.cf-code__block{display:block;width:100%;margin:2rem 0;padding:.5rem;font-size:.86667rem;color:#4d4d4d}.cf-code__block .cf-code{display:inherit;margin:auto;padding:auto;background:none;border:none;color:inherit}.cf-copyable-textarea{margin-top:1rem;cursor:pointer}.cf-copyable-textarea .cf-textarea{height:7rem;word-break:break-all;cursor:text;resize:none;color:#333;font-family:monaco,courier,monospace}.cf-copyable-textarea__help-text{font-size:.8em;color:#7d7d7d;margin-top:-.5em;margin-bottom:1em}.cf-dropdown{position:absolute;z-index:1;min-width:10.66667rem;margin:.5em 0 0;padding:.33333rem 0;list-style:none;background:#fff;border:1px solid #dedede;border-radius:2px;box-shadow:0 3px 10px rgba(0,0,0,.2);-webkit-animation:b .15s ease-out;animation:b .15s ease-out}.cf-dropdown:before{content:"";display:block;position:absolute;bottom:100%;border:solid transparent;border-width:10px;border-top-width:0;border-bottom-color:#fff}@-webkit-keyframes b{0%{display:none;opacity:0}1%{display:block;opacity:0;top:80%}to{display:none;opacity:1;top:102%}}@keyframes b{0%{display:none;opacity:0}1%{display:block;opacity:0;top:80%}to{display:none;opacity:1;top:102%}}.cf-dropdown--left{left:0}.cf-dropdown--left:before{left:10px}.cf-dropdown--right{right:0}.cf-dropdown--right:before{right:10px}.cf-dropdown__link{position:relative;z-index:1}.cf-dropdown__link a{display:block;padding:.2rem 1.06667rem;cursor:pointer;white-space:nowrap}.cf-dropdown__link a:hover{color:#fff;background:#2f7bbf}.cf-dropdown__link a:focus{color:#fff;background:#63a2d9}.cf-dropdown__link a:active{color:#fff;background:#112d46}.cf-dropdown__link:first-child{border-top-width:0}.cf-dropdown__separator{margin:.53333rem 0;border-top:1px solid #dedede}.cf-flex--thin .cf-flex__item+.cf-flex__item{margin-top:.4rem}.cf-flex--wide .cf-flex__item+.cf-flex__item{margin-top:1.33333rem}@media (min-width:49.2em){.cf-flex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.cf-flex__item{-webkit-box-flex:1;-webkit-flex:1 0;-ms-flex:1 0;flex:1 0}.cf-flex__item--collapse{-webkit-box-flex:0;-webkit-flex:0 auto;-ms-flex:0 auto;flex:0 auto}.cf-flex--thin .cf-flex__item+.cf-flex__item{margin-top:0;margin-left:.4rem}.cf-flex--wide .cf-flex__item+.cf-flex__item{margin-top:0;margin-left:1.33333rem}}.cf-form{background:#fff;border:1px solid #dedede;box-shadow:0 1px 1px rgba(0,0,0,.05)}.cf-form__header{padding:1em;border-bottom:1px solid #dedede}.cf-form__footer{padding:1em;border-top:1px solid #dedede;text-align:right}.cf-form__title{margin:0}.cf-form__fieldset{margin:0;padding:0;border:none;border-bottom:1px solid #dedede}.cf-form__fieldset:last-child{border-bottom:none}.cf-form__fieldset_legend{padding:1em;margin-bottom:0;border-bottom:none}.cf-form__fieldset_content{padding:1em;border:0 solid #dedede;border-top-width:1px;background:#eee}.cf-form__label{display:block;margin-bottom:.2em;color:#333}.cf-form .cf-checkbox,.cf-form .cf-input,.cf-form .cf-radio,.cf-form .cf-textarea{margin-bottom:0}.cf-form__label{font-size:.86667em}.cf-form__label--hidden{display:none}.cf-form__field-error{position:relative;margin-top:.2em;padding:.5em 1em;border:1px solid #9e1f21;font-size:.8em;font-weight:600;background:#bd2527;color:#fff;-webkit-font-smoothing:antialiased;border-radius:2px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.cf-form__field-error:after,.cf-form__field-error:before{content:"";display:block;position:absolute;bottom:100%;border-style:solid;border-color:transparent}.cf-form__field-error:before{left:4px;border-width:6px;border-bottom-color:#9e1f21}.cf-form__field-error:after{left:5px;border-width:5px;border-bottom-color:#bd2527}.cf-form__field-error p{margin-top:0;margin-bottom:0}.cf-form__field-error p+p{margin-top:.5em}@media (min-width:720px){.cf-form--horizontal .cf-form__fieldset_legend{width:30%;float:left;padding:1.7em 1rem;color:#333;text-align:right}.cf-form--horizontal .cf-form__fieldset_content{width:70%;float:left;border-top-width:0;border-left-width:1px}}.cf-heading{font-weight:700}.cf-heading__caption{color:#7d7d7d;font-size:80%;margin-left:.5em}.cf-heading--1{font-size:2rem;line-height:1.2;font-weight:400}.cf-heading--2{font-size:1.6rem;line-height:1.3}.cf-heading--3{font-size:1.46667rem;line-height:1.3}.cf-heading--4{font-size:1.2rem;line-height:1.3}.cf-heading--5{font-size:1rem;line-height:1.5}.cf-heading--6{font-size:.93333rem;line-height:1.5}.cf-icon{display:inline;width:auto;height:auto;margin-top:0;line-height:normal;vertical-align:baseline;font-family:cloudflare-font;font-weight:400;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none;background-position:0 0;background-repeat:repeat}.cf-icon:before{display:inline-block;text-decoration:inherit;speak:none}.cf-icon__label{display:inline-block;width:0;height:0;overflow:hidden}.cf-icon--border{border:1px solid #333;padding:.2em .25em .15em;border-radius:2px}.cf-icon--spin{display:inline-block;-webkit-animation:c 2s infinite linear;animation:c 2s infinite linear}@-webkit-keyframes c{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes c{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.cf-icon--muted{color:#333}.cf-icon--white{color:#fff}.cf-icon--2x{font-size:2em}.cf-icon--2x.cf-icon--border{border-width:2px}.cf-icon--3x{font-size:3em}.cf-icon--3x.cf-icon--border{border-width:3px}.cf-icon--4x{font-size:4em}.cf-icon--4x.cf-icon--border{border-width:4px}.cf-icon--large{vertical-align:-10%;font-size:1.3333333333333335em}.cf-icon--xlarge{font-size:2.4em}.cf-icon--caret-up:before,.cf-icon--chevron-up:before{content:"\f000"}.cf-icon--caret-down:before,.cf-icon--chevron-down:before{content:"\f001"}.cf-icon--caret-left:before,.cf-icon--chevron-left:before{content:"\f002"}.cf-icon--caret-right:before,.cf-icon--chevron-right:before{content:"\f003"}.cf-icon--ok-sign:before{content:"\f004"}.cf-icon--exclamation-sign:before{content:"\f005"}.cf-icon--info-sign:before{content:"\f006"}.cf-icon--pause:before{content:"\f007"}.cf-icon--time:before{content:"\f008"}.cf-icon--ok:before{content:"\f009"}.cf-icon--clipboard:before{content:"\f00a"}.cf-icon--bolt:before{content:"\f00b"}.cf-icon--chart:before{content:"\f00c"}.cf-icon--drive:before{content:"\f00d"}.cf-icon--filter:before{content:"\f00e"}.cf-icon--flowchart:before{content:"\f00f"}.cf-icon--hamburger:before{content:"\f010"}.cf-icon--lock:before{content:"\f011"}.cf-icon--list:before{content:"\f012"}.cf-icon--file:before{content:"\f013"}.cf-icon--shield:before{content:"\f014"}.cf-icon--plus:before{content:"\f015"}.cf-icon--happy:before{content:"\f016"}.cf-icon--sad:before{content:"\f017"}.cf-icon--search:before{content:"\f018"}.cf-icon--wrench:before{content:"\f019"}.cf-icon--remove-sign:before,.cf-icon--remove:before{content:"\f01a"}.cf-icon--speech:before{content:"\f01b"}.cf-icon--gear:before{content:"\f01c"}.cf-icon--help:before{content:"\f01d"}.cf-icon--widen:before{content:"\f022"}.cf-icon--calendar:before{content:"\f01e"}.cf-icon--facebook:before{content:"\f01f"}.cf-icon--twitter:before{content:"\f020"}.cf-icon--googleplus:before{content:"\f021"}.cf-icon--linkedin:before{content:"\f022"}.cf-icon--resize-horizontal:before{content:"\f024"}.cf-icon--upload:before{content:"\f025"}.cf-icon--loading{background:transparent url(../assets/spinner.gif) no-repeat 50%}.cf-icon--loading:before{content:"";width:1.06733rem}.cf-icon--close:before{content:'\00D7';font-family:Open Sans,Helvetica,Arial,sans-serif}.cf-label{display:inline-block;padding:.26667em .4em;font-size:.86667rem;line-height:1rem;vertical-align:baseline;white-space:nowrap;color:#fff;font-weight:600;text-transform:uppercase;-webkit-text-stroke:0;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cf-label--default{background:#7d7d7d}.cf-label--info{background:#2f7bbf}.cf-label--success{background:#9bca3e}.cf-label--warning{background:#ff7900}.cf-label--error{background:#bd2527}.cf-layout__container{padding:0 1.5em;max-width:90%;margin:0 auto}.cf-layout__row{clear:both}.cf-layout__column{float:left}@media (max-width:49.2em){.cf-layout__container{padding:0;max-width:none}.cf-layout__column{width:100%!important;float:none}}.cf-link{color:#2f7bbf;outline:none;text-decoration:none;-webkit-transition:all .15s ease;transition:all .15s ease;cursor:pointer}.cf-link:hover{color:#ff7900}.cf-link:focus{color:#63a2d9}.cf-link:active{color:#112d46;outline:none}.cf-list{list-style-type:disc;list-style-position:outside;margin-left:3em}.cf-list--ordered{list-style-type:decimal}.cf-list--unstyled{list-style-type:none;margin-left:0}.cf-modal__backdrop-scroller{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1050;overflow:auto;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.cf-modal__backdrop-outer{position:relative;width:100%;height:100%;display:table}.cf-modal__backdrop{display:table-cell;vertical-align:middle;padding:1.5rem;background:#000;background:rgba(0,0,0,.7);-webkit-transform-origin:center;transform-origin:center}.cf-modal{position:relative;width:100%;max-width:30rem;margin:0 auto;background:#fff;-webkit-transform-origin:center;transform-origin:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:2px;box-shadow:0 1px 15px rgba(0,0,0,.75)}.cf-modal:focus{outline:none}.cf-modal__body,.cf-modal__footer,.cf-modal__header{position:relative;padding:1.5rem}.cf-modal__header+.cf-modal__body{padding-top:0}.cf-modal__title{font-weight:400;word-break:break-all;margin-bottom:.75rem}.cf-modal__title .cf-heading{font-weight:inherit}.cf-modal__close{cursor:pointer;right:1.5rem;top:1rem;position:absolute;line-height:.6}.cf-modal__footer{background-color:#ebebeb}.cf-modal__footer--simple{background-color:transparent}.cf-modal__actions{float:right}.cf-modal--confirm .cf-modal__footer{padding-top:0}.cf-transition-modal-appear .cf-modal__backdrop,.cf-transition-modal-enter .cf-modal__backdrop,.cf-transition-modal-leave.cf-transition-modal-leave-active .cf-modal__backdrop{background:transparent}.cf-transition-modal-appear.cf-transition-modal-appear-active .cf-modal__backdrop,.cf-transition-modal-enter.cf-transition-modal-enter-active .cf-modal__backdrop,.cf-transition-modal-leave .cf-modal__backdrop{background:#000;background:rgba(0,0,0,.7)}.cf-transition-modal-appear-active .cf-modal__backdrop,.cf-transition-modal-enter-active .cf-modal__backdrop,.cf-transition-modal-leave-active .cf-modal__backdrop{-webkit-transition:background .2s ease-in;transition:background .2s ease-in}.cf-transition-modal-appear .cf-modal,.cf-transition-modal-enter .cf-modal,.cf-transition-modal-leave.cf-transition-modal-leave-active .cf-modal{opacity:0;-webkit-transform:matrix3d(1,0,0,0,0,1,0,-.0002,0,0,1,0,0,-10,0,1.1);transform:matrix3d(1,0,0,0,0,1,0,-.0002,0,0,1,0,0,-10,0,1.1)}.cf-transition-modal-appear.cf-transition-modal-appear-active .cf-modal,.cf-transition-modal-enter.cf-transition-modal-enter-active .cf-modal,.cf-transition-modal-leave .cf-modal{opacity:1;-webkit-transform:matrix(1,0,0,1,0,0);transform:matrix(1,0,0,1,0,0)}.cf-transition-modal-appear-active .cf-modal,.cf-transition-modal-enter-active .cf-modal,.cf-transition-modal-leave-active .cf-modal{-webkit-transition:opacity .2s ease,-webkit-transform .2s ease;transition:opacity .2s ease,-webkit-transform .2s ease;transition:opacity .2s ease,transform .2s ease;transition:opacity .2s ease,transform .2s ease,-webkit-transform .2s ease}.cf-modal .cf-form{border-left-width:0;border-right-width:0}.cf-modal .cf-form__fieldset_legend{font-size:.86667em}.cf-notifications{margin-top:.5em;margin-bottom:.5em}.cf-notifications__item{position:relative;padding:.5rem 2.5rem;padding-right:2.5rem;border:1px solid;vertical-align:middle;-webkit-text-stroke:0;border-radius:2px;cursor:pointer;-webkit-font-smoothing:antialiased}.cf-notifications__item:before{font-family:cloudflare-font;font-size:1.25rem;position:absolute;top:50%;left:.75rem;-webkit-transform:translateY(-50%);transform:translateY(-50%);line-height:1;vertical-align:middle}.cf-notifications__item+.cf-notifications__item{margin-top:2px}.cf-notifications__global_container{position:fixed;bottom:0;left:0;right:0;max-height:25%;overflow:auto;z-index:1100}.cf-notifications__global_container .cf-notifications{margin-top:0;margin-bottom:0}.cf-notifications__global_container .cf-notifications__item{border-radius:0;border-left-width:0;border-right-width:0;-webkit-transform-origin:bottom left;transform-origin:bottom left;-webkit-animation:d .2s ease-in-out;animation:d .2s ease-in-out}.cf-notifications__global_container .cf-notifications__item:before{-webkit-animation:e .2s ease-out;animation:e .2s ease-out}.cf-notifications__global_container .cf-notifications__item+.cf-notifications__item{margin-top:0;border-top-width:0}.cf-notifications__item_progress{position:absolute;z-index:1;top:0;bottom:0;left:0;width:100%;background:#fff;background:hsla(0,0%,100%,.1)}.cf-notifications__item_progress--active{width:0;-webkit-transition:width 0s linear;transition:width 0s linear}.cf-notifications__item_close{position:absolute;z-index:3;top:0;right:0;bottom:0;width:2.5em;cursor:pointer}.cf-notifications__item_close:hover{background:#000;background:rgba(0,0,0,.1)}.cf-notifications__item_close:before{content:'\00D7';position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:1.25rem}.cf-notifications__item_message{position:relative;z-index:2}.cf-notifications__item--success{background-color:#89b431;border-color:#89b431;color:#fff}.cf-notifications__item--success:before{content:'\f004'}.cf-notifications__item--error{background-color:#bd2527;border-color:#9e1f21;color:#fff}.cf-notifications__item--error:before{content:'\f005'}.cf-notifications__item--info{background-color:#2f7bbf;border-color:#286aa4;color:#fff}.cf-notifications__item--info:before{content:'\f006'}.cf-notifications__item--warning{background-color:#ff7900;border-color:#db6600;color:#fff}.cf-notifications__item--warning:before{content:'\f005'}@-webkit-keyframes d{0%{-webkit-transform:scaleY(0);transform:scaleY(0)}to{-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes d{0%{-webkit-transform:scaleY(0);transform:scaleY(0)}to{-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes e{0%{-webkit-transform:translateX(-75px);transform:translateX(-75px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes e{0%{-webkit-transform:translateX(-75px);transform:translateX(-75px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}.cf-page{padding-top:2.5em;padding-bottom:1.33333rem}.cf-page__title{font-size:2rem;line-height:1.2;font-weight:400}.cf-page__subtitle{color:#7d7d7d;font-weight:300}@media (min-width:49.2em){.cf-page{padding-bottom:2.66667rem}}.cf-progress{position:relative}.cf-progress__bar{display:block;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none}.cf-progress__bar::-webkit-progress-bar{background-color:#ebebeb;color:#ebebeb}.cf-progress__bar::-webkit-progress-value{background-color:#2f7bbf;color:#2f7bbf;-webkit-transition:width .5s ease;transition:width .5s ease}.cf-progress__bar::-moz-progress-bar{background-color:#2f7bbf;color:#2f7bbf}.cf-progress__items{list-style:none;margin:0;padding:0}.cf-progress__item{float:left;height:auto;padding:0;padding-top:7.5px;color:#7d7d7d;font-size:.86667em;text-align:center;cursor:pointer}.cf-progress__item:before{content:none}.cf-progress__item .cf-link{display:block;color:inherit;cursor:pointer}.cf-progress__item--active{color:#2f7bbf}.cf-progress__item--disabled{color:#dedede;cursor:default}@media (max-width:49.2em){.cf-progress__item{display:none;width:auto!important;float:none}.cf-progress__item--active{display:block}}.cf-radio__group .cf-radio:first-child{margin-top:0}.cf-radio__group .cf-radio{margin-top:1em}.cf-table{background:#fff;border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;margin-bottom:1.5rem}.cf-table__head{background:#dedede}.cf-table__body+.cf-table__body{border-top:2px solid #dedede}.cf-table__cell{border-top:1px solid #dedede;line-height:1.5;padding:.73333rem;vertical-align:middle}.cf-table__cell--head{font-weight:600}.cf-table__cell--head:first-letter{text-transform:capitalize}.cf-table__head .cf-table__cell{vertical-align:bottom}.cf-table__row--info>.cf-table__cell{border-color:#4e96d4;background:#63a2d9}.cf-table__row--success>.cf-table__cell{border-color:#b1d567;background:#bbdb7b}.cf-table__row--warning>.cf-table__cell{border-color:#ffdf80;background:#ffe699}.cf-table__row--error>.cf-table__cell{border-color:#d83b3e;background:#dc5053}.cf-table__cell--align-left{text-align:left}.cf-table__cell--align-center{text-align:center}.cf-table__cell--align-right{text-align:right}@media (max-width:49.2em){.cf-table,.cf-table__body,.cf-table__cell,.cf-table__foot,.cf-table__head,.cf-table__row{display:block;width:100%;box-sizing:border-box}.cf-table__cell{border-top-width:0}.cf-table__cell:first-child{border-top:1px solid #dedede}}.cf-table--condensed .cf-table__cell{padding:.36667rem .86667rem}.cf-table--striped .cf-table__body>.cf-table__row--default:nth-child(odd)>.cf-table__cell{background:#fafafa}.cf-table--striped .cf-table__body>.cf-table__row--info:nth-child(odd)>.cf-table__cell{background:#5b9dd7}.cf-table--striped .cf-table__body>.cf-table__row--success:nth-child(odd)>.cf-table__cell{background:#b7d973}.cf-table--striped .cf-table__body>.cf-table__row--warning:nth-child(odd)>.cf-table__cell{background:#ffe38f}.cf-table--striped .cf-table__body>.cf-table__row--error:nth-child(odd)>.cf-table__cell{background:#db484a}.cf-table--hover .cf-table__body>.cf-table__row--default:hover>.cf-table__cell{background:#f0f0f0}.cf-table--hover .cf-table__body>.cf-table__row--info:hover>.cf-table__cell{background:#5b9dd7}.cf-table--hover .cf-table__body>.cf-table__row--success:hover>.cf-table__cell{background:#b7d973}.cf-table--hover .cf-table__body>.cf-table__row--warning:hover>.cf-table__cell{background:#ffe38f}.cf-table--hover .cf-table__body>.cf-table__row--error:hover>.cf-table__cell{background:#db484a}.cf-table--bordered{border:1px solid #dedede;border-collapse:separate;*border-collapse:collapse;border-left:0}.cf-table--bordered .cf-table__cell{border-left:1px solid #dedede}.cf-table--bordered .cf-table__body:first-child .cf-table__row:first-child .cf-table__cell,.cf-table--bordered .cf-table__head:first-child .cf-table__row:first-child .cf-table__cell{border-top:0}.cf-tabs__group{display:table;width:100%;margin:0 0 22.5px;padding:0;list-style:none}.cf-tabs__item{display:table-cell;position:relative;margin:0;padding:1.5rem 1rem;vertical-align:middle;text-align:center;background:#fff;color:#2f7bbf;cursor:pointer}.cf-tabs__item:before{content:"";display:block;position:absolute;top:100%;left:50%;height:0;width:0;margin-left:0;border:0 solid transparent;border-top-color:#2f7bbf;-webkit-transition:all .2s ease;transition:all .2s ease}.cf-tabs__item+.cf-tabs__item{border-left:1px solid #ebebeb}.cf-tabs__item:focus{outline:none}.cf-tabs__item:focus:after{content:"";display:block;position:absolute;top:0;bottom:0;left:0;right:0}.cf-tabs__item:hover{background:#e6e6e6;color:#2f7bbf}.cf-tabs__item.cf-tabs__item--active,.cf-tabs__item:active{background:#2f7bbf;color:#fff}.cf-tabs__item.cf-tabs__item--active:before,.cf-tabs__item:active:before{border-width:16px;margin-left:-16px}.cf-text--normal{font-size:1rem;font-weight:400}.cf-text--small{font-size:.8em;line-height:1.3}.cf-text--start{text-align:left}.cf-text--center{text-align:center}.cf-text--justify{text-align:justify}.cf-text--end{text-align:right}.cf-text--capitalize{text-transform:capitalize}.cf-text--titlecase:first-word{text-transform:capitalize}.cf-text--lowercase{text-transform:lowercase}.cf-text--uppercase{text-transform:uppercase}.cf-text--info{color:#2f7bbf}.cf-text--success{color:#9bca3e}.cf-text--warning{color:#ff7900}.cf-text--error{color:#bd2527}.cf-text--muted{color:#7d7d7d}.cf-textarea{width:100%}.cf-toggle{display:block;position:relative;height:2.26667rem;width:5.334rem;border-radius:2px;border:1px solid #aaa;cursor:pointer}.cf-toggle:after,.cf-toggle:before{display:block;position:absolute;top:0;bottom:0;width:50%;line-height:2.26667rem;text-align:center}.cf-toggle:before{content:"On";left:0;background:#9bca3e;color:#fff}.cf-toggle:after{content:"Off";right:0;background:gray;color:#fff}.cf-toggle__handle{display:block;position:absolute;z-index:1;top:0;bottom:0;left:0;width:50%;border:inherit;border-width:0;border-right-width:inherit;background:#fff;-webkit-transition:left .1s ease;transition:left .1s ease}.cf-toggle--active .cf-toggle__handle{border-right-width:0;border-left-width:inherit;left:50%}.tooltip{position:absolute;display:none;max-width:100%;max-height:100%}.tooltip-open{display:block}.tooltip-content{position:relative;padding:.5rem 1rem;font-size:.8rem;font-family:inherit;background:#000;color:#fff;border-radius:2px}.tooltip-content:before{content:"";display:block;position:absolute;width:0;height:0;border:5px solid transparent}.tooltip-element-attached-bottom.tooltip-element-attached-center .tooltip-content{margin-bottom:5px}.tooltip-element-attached-bottom.tooltip-element-attached-center .tooltip-content:before{top:100%;left:50%;margin-left:-5px;border-top-color:#000}.tooltip-element-attached-top.tooltip-element-attached-center .tooltip-content{margin-top:5px}.tooltip-element-attached-top.tooltip-element-attached-center .tooltip-content:before{bottom:100%;left:50%;margin-left:-5px;border-bottom-color:#000}.tooltip-element-attached-middle.tooltip-element-attached-right .tooltip-content{margin-right:5px}.tooltip-element-attached-middle.tooltip-element-attached-right .tooltip-content:before{left:100%;top:50%;margin-top:-5px;border-left-color:#000}.tooltip-element-attached-middle.tooltip-element-attached-left .tooltip-content{margin-left:5px}.tooltip-element-attached-middle.tooltip-element-attached-left .tooltip-content:before{right:100%;top:50%;margin-top:-5px;border-right-color:#000}.tooltip-element-attached-top.tooltip-element-attached-left.tooltip-target-attached-bottom .tooltip-content{margin-top:5px}.tooltip-element-attached-top.tooltip-element-attached-left.tooltip-target-attached-bottom .tooltip-content:before{bottom:100%;left:5px;border-bottom-color:#000}.tooltip-element-attached-top.tooltip-element-attached-right.tooltip-target-attached-bottom .tooltip-content{margin-top:5px}.tooltip-element-attached-top.tooltip-element-attached-right.tooltip-target-attached-bottom .tooltip-content:before{bottom:100%;right:5px;border-bottom-color:#000}.tooltip-element-attached-bottom.tooltip-element-attached-left.tooltip-target-attached-top .tooltip-content{margin-bottom:5px}.tooltip-element-attached-bottom.tooltip-element-attached-left.tooltip-target-attached-top .tooltip-content:before{top:100%;left:5px;border-top-color:#000}.tooltip-element-attached-bottom.tooltip-element-attached-right.tooltip-target-attached-top .tooltip-content{margin-bottom:5px}.tooltip-element-attached-bottom.tooltip-element-attached-right.tooltip-target-attached-top .tooltip-content:before{top:100%;right:5px;border-top-color:#000}.tooltip-element-attached-top.tooltip-element-attached-right.tooltip-target-attached-left .tooltip-content{margin-right:5px}.tooltip-element-attached-top.tooltip-element-attached-right.tooltip-target-attached-left .tooltip-content:before{top:5px;left:100%;border-left-color:#000}.tooltip-element-attached-top.tooltip-element-attached-left.tooltip-target-attached-right .tooltip-content{margin-left:5px}.tooltip-element-attached-top.tooltip-element-attached-left.tooltip-target-attached-right .tooltip-content:before{top:5px;right:100%;border-right-color:#000}.tooltip-element-attached-bottom.tooltip-element-attached-right.tooltip-target-attached-left .tooltip-content{margin-right:5px}.tooltip-element-attached-bottom.tooltip-element-attached-right.tooltip-target-attached-left .tooltip-content:before{bottom:5px;left:100%;border-left-color:#000}.tooltip-element-attached-bottom.tooltip-element-attached-left.tooltip-target-attached-right .tooltip-content{margin-left:5px}.tooltip-element-attached-bottom.tooltip-element-attached-left.tooltip-target-attached-right .tooltip-content:before{bottom:5px;right:100%;border-right-color:#000}
+@font-face{font-family:cloudflare-font;src:url(../fonts/cloudflare-font.eot);src:url(../fonts/cloudflare-font.eot?#iefix) format("embedded-opentype"),url(../fonts/cloudflare-font.woff) format("woff"),url(../fonts/cloudflare-font.ttf) format("truetype"),url(../fonts/cloudflare-font.svg#cloudflare-font) format("svg");font-weight:400;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/opensans-300.eot);src:url(../fonts/opensans-300.eot?#iefix) format("embedded-opentype"),url(../fonts/opensans-300.woff2) format("woff2"),url(../fonts/opensans-300.woff) format("woff"),url(../fonts/opensans-300.ttf) format("truetype");font-weight:300;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/opensans-300i.eot);src:url(../fonts/opensans-300i.eot?#iefix) format("embedded-opentype"),url(../fonts/opensans-300i.woff2) format("woff2"),url(../fonts/opensans-300i.woff) format("woff"),url(../fonts/opensans-300i.ttf) format("truetype");font-weight:300;font-style:italic}@font-face{font-family:Open Sans;src:url(../fonts/opensans-400.eot);src:url(../fonts/opensans-400.eot?#iefix) format("embedded-opentype"),url(../fonts/opensans-400.woff2) format("woff2"),url(../fonts/opensans-400.woff) format("woff"),url(../fonts/opensans-400.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/opensans-400i.eot);src:url(../fonts/opensans-400i.eot?#iefix) format("embedded-opentype"),url(../fonts/opensans-400i.woff2) format("woff2"),url(../fonts/opensans-400i.woff) format("woff"),url(../fonts/opensans-400i.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:Open Sans;src:url(../fonts/opensans-600.eot);src:url(../fonts/opensans-600.eot?#iefix) format("embedded-opentype"),url(../fonts/opensans-600.woff2) format("woff2"),url(../fonts/opensans-600.woff) format("woff"),url(../fonts/opensans-600.ttf) format("truetype");font-weight:600;font-style:normal}@font-face{font-family:Open Sans;src:url(../fonts/opensans-700.eot);src:url(../fonts/opensans-700.eot?#iefix) format("embedded-opentype"),url(../fonts/opensans-700.woff2) format("woff2"),url(../fonts/opensans-700.woff) format("woff"),url(../fonts/opensans-700.ttf) format("truetype");font-weight:700;font-style:normal}.cf-btn:focus,.cf-checkbox__input:focus,.cf-dropdown__link a:focus,.cf-input:focus,.cf-link:focus,.cf-radio__input:focus,.cf-tabs__item:focus:after,.cf-textarea:focus,.cf-toggle__checkbox:focus~.cf-toggle__handle{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-1px}.cf-toggle__checkbox,.cf-toggle__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.cf-checkbox__input,.cf-input,.cf-radio__input,.cf-textarea{z-index:0;width:100%;margin:0 0 .75rem;padding:.45em .75em;border:1px solid #bdbdbd;vertical-align:middle;font-family:Open Sans,Helvetica,Arial,sans-serif;font-size:.86667em;background:#fff;color:#333;outline:none;-webkit-transition:border-color .2s ease;transition:border-color .2s ease}.cf-checkbox__input:hover,.cf-input:hover,.cf-radio__input:hover,.cf-textarea:hover{border-color:#256298}.cf-checkbox__input:focus,.cf-input:focus,.cf-radio__input:focus,.cf-textarea:focus{border-color:#2f7bbf}.cf-input,.cf-textarea{border-radius:2px}.cf-checkbox__group,.cf-radio__group{text-align:left;display:inline-block;vertical-align:middle}.cf-checkbox,.cf-radio{cursor:pointer;display:block;min-height:1em;padding-left:2em}.cf-checkbox:hover input,.cf-radio:hover input{border-color:#256298}.cf-checkbox__input,.cf-radio__input{position:relative;height:15px;width:15px;margin:1px 0 0;padding:0;line-height:normal;-webkit-appearance:none;-moz-appearance:none;appearance:none;top:-1px}.cf-checkbox__input:before,.cf-radio__input:before{content:'';position:absolute;background-color:transparent;color:transparent;-webkit-text-stroke:0;-webkit-transition:all .15s ease-out;transition:all .15s ease-out}.cf-checkbox__input{border-radius:2px}.cf-checkbox__input:before{content:'\f009';font-family:cloudflare-font;font-size:15px;left:-1px;top:-1px}.cf-checkbox--checked .cf-checkbox__input:before{color:#333}.cf-radio__input,.cf-radio__input:before{border-radius:50%}.cf-radio__input:before{height:3px;width:3px;top:5px;left:5px}.cf-radio--checked .cf-radio__input:before{background-color:#333;height:7px;width:7px;top:3px;left:3px}.cf-checkbox__label,.cf-radio__label{display:inline;font-size:.86667em;margin-bottom:.38333em;margin-left:1em;min-height:1.22em}.cf-card__toolbar:after,.cf-form__fieldset:after,.cf-modal__footer:after,.cf-progress__items:after{content:"";display:table;clear:both}.cf-btn__group{position:relative;display:inline-block;font-size:0;vertical-align:middle;white-space:nowrap}.cf-btn__group>*{font-size:1rem}.cf-btn__group+.cf-btn__group{margin-left:.4rem}.cf-btn__group .cf-btn{border-radius:0}.cf-btn__group .cf-btn:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.cf-btn__group .cf-btn:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px}.cf-btn__group .cf-btn~.cf-btn{margin-left:-1px}.cf-btn{display:inline-block;position:relative;margin:0;padding:.6em 1em .53333em;border:none;border-bottom:1px solid;background:transparent;border-radius:2px;font-size:.93333rem;font-weight:400;font-family:inherit;line-height:1.2;text-align:center;-webkit-text-stroke:0;-webkit-font-smoothing:subpixel-antialiased;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;-webkit-transition:all .2s ease;transition:all .2s ease}.cf-btn::-moz-focus-inner{padding:0;border:0}.cf-btn+.cf-btn{margin-left:.4rem}.cf-btn--default,.cf-btn--delete,.cf-btn--edit,.cf-btn--note{background-color:#dedede;border-color:#ccc;color:#333}.cf-btn--default:hover,.cf-btn--delete:hover,.cf-btn--edit:hover,.cf-btn--note:hover{background-color:#ccc;border-color:#bababa;color:#333}.cf-btn--default.cf-btn--active,.cf-btn--default:active,.cf-btn--delete.cf-btn--active,.cf-btn--delete:active,.cf-btn--edit.cf-btn--active,.cf-btn--edit:active,.cf-btn--note.cf-btn--active,.cf-btn--note:active{background-color:#bababa;border-color:#a8a8a8;color:#333}.cf-btn--default:focus,.cf-btn--delete:focus,.cf-btn--edit:focus,.cf-btn--note:focus{box-shadow:inset 0 0 0 1px #a8a8a8;color:#333}.cf-btn--primary{background-color:#2f7bbf;border-color:#286aa4;color:#fff}.cf-btn--primary:hover{background-color:#286aa4;border-color:#215887;color:#fff}.cf-btn--primary.cf-btn--active,.cf-btn--primary:active{background-color:#215887;border-color:#1a456b;color:#fff}.cf-btn--primary:focus{box-shadow:inset 0 0 0 1px #1a456b;color:#fff}.cf-btn--accept,.cf-btn--success{background-color:#9bca3e;border-color:#89b431;color:#fff}.cf-btn--accept:hover,.cf-btn--success:hover{background-color:#89b431;border-color:#73982a;color:#fff}.cf-btn--accept.cf-btn--active,.cf-btn--accept:active,.cf-btn--success.cf-btn--active,.cf-btn--success:active{background-color:#73982a;border-color:#5e7c22;color:#fff}.cf-btn--accept:focus,.cf-btn--success:focus{box-shadow:inset 0 0 0 1px #5e7c22;color:#fff}.cf-btn--warning{background-color:#ff7900;border-color:#db6600;color:#fff}.cf-btn--warning:hover{background-color:#db6600;border-color:#b85600;color:#fff}.cf-btn--warning.cf-btn--active,.cf-btn--warning:active{background-color:#b85600;border-color:#944500;color:#fff}.cf-btn--warning:focus{box-shadow:inset 0 0 0 1px #944500;color:#fff}.cf-btn--cancel,.cf-btn--danger{background-color:#bd2527;border-color:#9e1f21;color:#fff}.cf-btn--cancel:hover,.cf-btn--danger:hover{background-color:#9e1f21;border-color:#80191b;color:#fff}.cf-btn--cancel.cf-btn--active,.cf-btn--cancel:active,.cf-btn--danger.cf-btn--active,.cf-btn--danger:active{background-color:#80191b;border-color:#621315;color:#fff}.cf-btn--cancel:focus,.cf-btn--danger:focus{box-shadow:inset 0 0 0 1px #621315;color:#fff}.cf-btn--disabled{cursor:default;pointer-events:none;opacity:.5}.cf-btn--disabled[title]{pointer-events:auto}.cf-btn--link{background-color:transparent;border-color:transparent;color:#2f7bbf}.cf-btn--link:hover{color:#ff7900}.cf-btn--link.cf-btn--active,.cf-btn--link:active,.cf-btn--link:focus{color:#2f7bbf}.cf-btn--facebook i,.cf-btn--twitter i{vertical-align:baseline;font-size:1.33em}.cf-btn--twitter{background-color:#00aced;border-color:#00aced;color:#fff}.cf-btn--twitter:hover{background-color:#1fc3ff;border-color:#05bcff;color:#333}.cf-btn--facebook{background-color:#3b5998;border-color:#3b5998;color:#fff}.cf-btn--facebook:hover{background-color:#4b6eb9;border-color:#4262a9;color:#fff}.cf-btn--accept,.cf-btn--cancel,.cf-btn--delete,.cf-btn--edit,.cf-btn--note{min-height:2.425rem;width:0;overflow:hidden;padding:1.13333em;text-align:left;text-indent:-9999px;white-space:nowrap;font-family:cloudflare-font;font-weight:400;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:subpixel-antialiased}.cf-btn--accept:after,.cf-btn--cancel:after,.cf-btn--delete:after,.cf-btn--edit:after,.cf-btn--note:after{content:"\f009";display:block;position:absolute;height:100%;width:100%;top:53%;left:0;text-align:center;text-indent:0;font-size:225em;line-height:0;speak:none;-webkit-transition-delay:.2s;transition-delay:.2s}.cf-btn--accept:after,.cf-btn--accept:before,.cf-btn--cancel:after,.cf-btn--cancel:before,.cf-btn--delete:after,.cf-btn--delete:before,.cf-btn--edit:after,.cf-btn--edit:before,.cf-btn--note:after,.cf-btn--note:before{-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.cf-btn--accept:after{content:"\f009"}.cf-btn--cancel:after{content:"\f01a"}.cf-btn--delete:after{content:"\f01a"}.cf-btn--edit:after{content:"\f019"}.cf-btn--note:after{content:"\f013"}.cf-btn--block{display:block;margin-bottom:.4rem}.cf-btn--block+.cf-btn--block{margin-left:auto}.cf-btn--loading{color:#ededed;background-color:#ededed;opacity:.8;cursor:default}.cf-btn--loading:before{content:"";display:block;position:absolute;top:0;left:0;height:100%;width:100%;opacity:1;background:transparent url(../assets/spinner.gif) no-repeat 50%;-webkit-transform:scale(1);transform:scale(1);-webkit-animation:a .2s ease-in-out;animation:a .2s ease-in-out}.cf-btn--loading:focus{outline:none}.cf-btn--loading:focus,.cf-btn--loading:hover{background-color:#ededed;color:#ededed}@-webkit-keyframes a{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes a{0%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.cf-callout{margin:1rem;padding:1rem;border:1px solid transparent;border-radius:2px}.cf-callout--default{background-color:#333;border-color:#333;color:#fff}.cf-callout--info{background-color:#2f7bbf;border-color:#286aa4;color:#fff}.cf-callout__content{margin-top:0}.cf-card{margin-top:1rem;margin-bottom:1rem;padding:0;border:1px solid #dedede;background-color:#fff;border-radius:2px;-webkit-transition:all .35s ease;transition:all .35s ease}.cf-card__section{display:table;table-layout:fixed;width:100%}.cf-card__section+.cf-card__section{border-top:1px solid #dedede}.cf-card__section--error{border-left:3px solid #bd2527}.cf-card__title{font-weight:400;margin-bottom:1rem}.cf-card__footer_message{font-size:.8rem;color:#7d7d7d;line-height:1.3;margin-top:1.5em}.cf-card__messages{padding-top:.5rem}.cf-card__messages .card__messages+p{margin-top:1em}.cf-card__content{padding:1.5rem}.cf-card__control{position:relative;padding:2rem;border:0 solid #dedede;border-top-width:1px;background-color:#000;background-color:rgba(0,0,0,.06);text-align:center}@media (min-width:49.2em){.cf-card__content,.cf-card__control{display:table-cell}.cf-card__control{width:40%;border-left-width:1px;border-top-width:0;vertical-align:middle}}@media (min-width:66em){.cf-card__control{width:30%}}.cf-card__toolbar{min-height:2.96666rem}.cf-card__toolbar_links{float:right}.cf-card__toolbar_link{position:relative;display:inline-block;padding:.73333rem 2em .73333rem .5rem}.cf-card__toolbar_link:after{content:"\f003";font-family:cloudflare-font;font-style:normal;font-weight:400;margin-top:-.6em;position:absolute;top:50%;right:1rem;-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease}.cf-card__toolbar_link--open:after{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.cf-card__drawers_container{display:none}.cf-card__drawers_container--open{display:block}.cf-card__drawer--active{border-top:1px solid #dedede;padding:1.5rem}.cf-card .cf-table{margin-top:0;margin-bottom:0;border-width:0}.cf-card .cf-form{border-left-width:0;border-right-width:0}.cf-checkbox__group .cf-checkbox:first-child{margin-top:0}.cf-checkbox__group .cf-checkbox{margin-top:1em}.cf-code,.cf-code__block{background-color:#dedede;border:1px solid #d1d1d1;font-family:monaco,courier,monospace;border-radius:2px}.cf-code{display:inline-block;margin-left:.13333em;margin-right:.13333em;padding:0 .4em;vertical-align:baseline;color:#bd2527}.cf-code__block{display:block;width:100%;margin:2rem 0;padding:.5rem;font-size:.86667rem;color:#4d4d4d}.cf-code__block .cf-code{display:inherit;margin:auto;padding:auto;background:none;border:none;color:inherit}.cf-copyable-textarea{margin-top:1rem;cursor:pointer}.cf-copyable-textarea .cf-textarea{height:7rem;word-break:break-all;cursor:text;resize:none;color:#333;font-family:monaco,courier,monospace}.cf-copyable-textarea__help-text{font-size:.8em;color:#7d7d7d;margin-top:-.5em;margin-bottom:1em}.cf-dropdown{position:absolute;z-index:1;min-width:10.66667rem;margin:.5em 0 0;padding:.33333rem 0;list-style:none;background:#fff;border:1px solid #dedede;border-radius:2px;box-shadow:0 3px 10px rgba(0,0,0,.2);-webkit-animation:b .15s ease-out;animation:b .15s ease-out}.cf-dropdown:before{content:"";display:block;position:absolute;bottom:100%;border:solid transparent;border-width:10px;border-top-width:0;border-bottom-color:#fff}@-webkit-keyframes b{0%{display:none;opacity:0}1%{display:block;opacity:0;top:80%}to{display:none;opacity:1;top:102%}}@keyframes b{0%{display:none;opacity:0}1%{display:block;opacity:0;top:80%}to{display:none;opacity:1;top:102%}}.cf-dropdown--left{left:0}.cf-dropdown--left:before{left:10px}.cf-dropdown--right{right:0}.cf-dropdown--right:before{right:10px}.cf-dropdown__link{position:relative;z-index:1}.cf-dropdown__link a{display:block;padding:.2rem 1.06667rem;cursor:pointer;white-space:nowrap}.cf-dropdown__link a:hover{color:#fff;background:#2f7bbf}.cf-dropdown__link a:focus{color:#fff;background:#63a2d9}.cf-dropdown__link a:active{color:#fff;background:#112d46}.cf-dropdown__link:first-child{border-top-width:0}.cf-dropdown__separator{margin:.53333rem 0;border-top:1px solid #dedede}.cf-flex--thin .cf-flex__item+.cf-flex__item{margin-top:.4rem}.cf-flex--wide .cf-flex__item+.cf-flex__item{margin-top:1.33333rem}@media (min-width:49.2em){.cf-flex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.cf-flex__item{-webkit-box-flex:1;-webkit-flex:1 0;-ms-flex:1 0;flex:1 0}.cf-flex__item--collapse{-webkit-box-flex:0;-webkit-flex:0 auto;-ms-flex:0 auto;flex:0 auto}.cf-flex--thin .cf-flex__item+.cf-flex__item{margin-top:0;margin-left:.4rem}.cf-flex--wide .cf-flex__item+.cf-flex__item{margin-top:0;margin-left:1.33333rem}}.cf-form{background:#fff;border:1px solid #dedede;box-shadow:0 1px 1px rgba(0,0,0,.05)}.cf-form__header{padding:1em}.cf-form__footer{padding:1em;border-top:1px solid #dedede;text-align:right}.cf-form__title{margin:0}.cf-form__fieldset{margin:0;padding:0;border:none;}.cf-form__fieldset:last-child{border-bottom:none}.cf-form__fieldset_legend{padding:1em;margin-bottom:0;border-bottom:none}.cf-form__fieldset_content{padding:1em;border:0 solid #dedede;border-top-width:1px;background:#eee;padding-top:0;}.cf-form__label{display:block;margin-bottom:.2em;color:#333}.cf-form .cf-checkbox,.cf-form .cf-input,.cf-form .cf-radio,.cf-form .cf-textarea{margin-bottom:0}.cf-form__label{font-size:.86667em}.cf-form__label--hidden{display:none}.cf-form__field-error{position:relative;margin-top:.2em;padding:.5em 1em;border:1px solid #9e1f21;font-size:.8em;font-weight:600;background:#bd2527;color:#fff;-webkit-font-smoothing:antialiased;border-radius:2px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.cf-form__field-error:after,.cf-form__field-error:before{content:"";display:block;position:absolute;bottom:100%;border-style:solid;border-color:transparent}.cf-form__field-error:before{left:4px;border-width:6px;border-bottom-color:#9e1f21}.cf-form__field-error:after{left:5px;border-width:5px;border-bottom-color:#bd2527}.cf-form__field-error p{margin-top:0;margin-bottom:0}.cf-form__field-error p+p{margin-top:.5em}@media (min-width:720px){.cf-form--horizontal .cf-form__fieldset_legend{width:30%;float:left;padding:1.7em 1rem;color:#333;text-align:right}.cf-form--horizontal .cf-form__fieldset_content{width:70%;float:left;border-top-width:0;border-left-width:1px}}.cf-heading{font-weight:700}.cf-heading__caption{color:#7d7d7d;font-size:80%;margin-left:.5em}.cf-heading--1{font-size:2rem;line-height:1.2;font-weight:400}.cf-heading--2{font-size:1.6rem;line-height:1.3}.cf-heading--3{font-size:1.46667rem;line-height:1.3}.cf-heading--4{font-size:1.2rem;line-height:1.3}.cf-heading--5{font-size:1rem;line-height:1.5}.cf-heading--6{font-size:.93333rem;line-height:1.5}.cf-icon{display:inline;width:auto;height:auto;margin-top:0;line-height:normal;vertical-align:baseline;font-family:cloudflare-font;font-weight:400;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none;background-position:0 0;background-repeat:repeat}.cf-icon:before{display:inline-block;text-decoration:inherit;speak:none}.cf-icon__label{display:inline-block;width:0;height:0;overflow:hidden}.cf-icon--border{border:1px solid #333;padding:.2em .25em .15em;border-radius:2px}.cf-icon--spin{display:inline-block;-webkit-animation:c 2s infinite linear;animation:c 2s infinite linear}@-webkit-keyframes c{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes c{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.cf-icon--muted{color:#333}.cf-icon--white{color:#fff}.cf-icon--2x{font-size:2em}.cf-icon--2x.cf-icon--border{border-width:2px}.cf-icon--3x{font-size:3em}.cf-icon--3x.cf-icon--border{border-width:3px}.cf-icon--4x{font-size:4em}.cf-icon--4x.cf-icon--border{border-width:4px}.cf-icon--large{vertical-align:-10%;font-size:1.3333333333333335em}.cf-icon--xlarge{font-size:2.4em}.cf-icon--caret-up:before,.cf-icon--chevron-up:before{content:"\f000"}.cf-icon--caret-down:before,.cf-icon--chevron-down:before{content:"\f001"}.cf-icon--caret-left:before,.cf-icon--chevron-left:before{content:"\f002"}.cf-icon--caret-right:before,.cf-icon--chevron-right:before{content:"\f003"}.cf-icon--ok-sign:before{content:"\f004"}.cf-icon--exclamation-sign:before{content:"\f005"}.cf-icon--info-sign:before{content:"\f006"}.cf-icon--pause:before{content:"\f007"}.cf-icon--time:before{content:"\f008"}.cf-icon--ok:before{content:"\f009"}.cf-icon--clipboard:before{content:"\f00a"}.cf-icon--bolt:before{content:"\f00b"}.cf-icon--chart:before{content:"\f00c"}.cf-icon--drive:before{content:"\f00d"}.cf-icon--filter:before{content:"\f00e"}.cf-icon--flowchart:before{content:"\f00f"}.cf-icon--hamburger:before{content:"\f010"}.cf-icon--lock:before{content:"\f011"}.cf-icon--list:before{content:"\f012"}.cf-icon--file:before{content:"\f013"}.cf-icon--shield:before{content:"\f014"}.cf-icon--plus:before{content:"\f015"}.cf-icon--happy:before{content:"\f016"}.cf-icon--sad:before{content:"\f017"}.cf-icon--search:before{content:"\f018"}.cf-icon--wrench:before{content:"\f019"}.cf-icon--remove-sign:before,.cf-icon--remove:before{content:"\f01a"}.cf-icon--speech:before{content:"\f01b"}.cf-icon--gear:before{content:"\f01c"}.cf-icon--help:before{content:"\f01d"}.cf-icon--widen:before{content:"\f022"}.cf-icon--calendar:before{content:"\f01e"}.cf-icon--facebook:before{content:"\f01f"}.cf-icon--twitter:before{content:"\f020"}.cf-icon--googleplus:before{content:"\f021"}.cf-icon--linkedin:before{content:"\f022"}.cf-icon--resize-horizontal:before{content:"\f024"}.cf-icon--upload:before{content:"\f025"}.cf-icon--loading{background:transparent url(../assets/spinner.gif) no-repeat 50%}.cf-icon--loading:before{content:"";width:1.06733rem}.cf-icon--close:before{content:'\00D7';font-family:Open Sans,Helvetica,Arial,sans-serif}.cf-label{display:inline-block;padding:.26667em .4em;font-size:.86667rem;line-height:1rem;vertical-align:baseline;white-space:nowrap;color:#fff;font-weight:600;text-transform:uppercase;-webkit-text-stroke:0;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cf-label--default{background:#7d7d7d}.cf-label--info{background:#2f7bbf}.cf-label--success{background:#9bca3e}.cf-label--warning{background:#ff7900}.cf-label--error{background:#bd2527}.cf-layout__container{padding:0 1.5em;max-width:90%;margin:0 auto}.cf-layout__row{clear:both}.cf-layout__column{float:left}@media (max-width:49.2em){.cf-layout__container{padding:0;max-width:none}.cf-layout__column{width:100%!important;float:none}}.cf-link{color:#2f7bbf;outline:none;text-decoration:none;-webkit-transition:all .15s ease;transition:all .15s ease;cursor:pointer}.cf-link:hover{color:#ff7900}.cf-link:focus{color:#63a2d9}.cf-link:active{color:#112d46;outline:none}.cf-list{list-style-type:disc;list-style-position:outside;margin-left:3em}.cf-list--ordered{list-style-type:decimal}.cf-list--unstyled{list-style-type:none;margin-left:0}.cf-modal__backdrop-scroller{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1050;overflow:auto;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.cf-modal__backdrop-outer{position:relative;width:100%;height:100%;display:table}.cf-modal__backdrop{display:table-cell;vertical-align:middle;padding:1.5rem;background:#000;background:rgba(0,0,0,.7);-webkit-transform-origin:center;transform-origin:center}.cf-modal{position:relative;width:100%;max-width:30rem;margin:0 auto;background:#fff;-webkit-transform-origin:center;transform-origin:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:2px;box-shadow:0 1px 15px rgba(0,0,0,.75)}.cf-modal:focus{outline:none}.cf-modal__body,.cf-modal__footer,.cf-modal__header{position:relative;padding:1.5rem}.cf-modal__header+.cf-modal__body{padding-top:0}.cf-modal__title{font-weight:400;word-break:break-all;margin-bottom:.75rem}.cf-modal__title .cf-heading{font-weight:inherit}.cf-modal__close{cursor:pointer;right:1.5rem;top:1rem;position:absolute;line-height:.6}.cf-modal__footer{background-color:#ebebeb}.cf-modal__footer--simple{background-color:transparent}.cf-modal__actions{float:right}.cf-modal--confirm .cf-modal__footer{padding-top:0}.cf-transition-modal-appear .cf-modal__backdrop,.cf-transition-modal-enter .cf-modal__backdrop,.cf-transition-modal-leave.cf-transition-modal-leave-active .cf-modal__backdrop{background:transparent}.cf-transition-modal-appear.cf-transition-modal-appear-active .cf-modal__backdrop,.cf-transition-modal-enter.cf-transition-modal-enter-active .cf-modal__backdrop,.cf-transition-modal-leave .cf-modal__backdrop{background:#000;background:rgba(0,0,0,.7)}.cf-transition-modal-appear-active .cf-modal__backdrop,.cf-transition-modal-enter-active .cf-modal__backdrop,.cf-transition-modal-leave-active .cf-modal__backdrop{-webkit-transition:background .2s ease-in;transition:background .2s ease-in}.cf-transition-modal-appear .cf-modal,.cf-transition-modal-enter .cf-modal,.cf-transition-modal-leave.cf-transition-modal-leave-active .cf-modal{opacity:0;-webkit-transform:matrix3d(1,0,0,0,0,1,0,-.0002,0,0,1,0,0,-10,0,1.1);transform:matrix3d(1,0,0,0,0,1,0,-.0002,0,0,1,0,0,-10,0,1.1)}.cf-transition-modal-appear.cf-transition-modal-appear-active .cf-modal,.cf-transition-modal-enter.cf-transition-modal-enter-active .cf-modal,.cf-transition-modal-leave .cf-modal{opacity:1;-webkit-transform:matrix(1,0,0,1,0,0);transform:matrix(1,0,0,1,0,0)}.cf-transition-modal-appear-active .cf-modal,.cf-transition-modal-enter-active .cf-modal,.cf-transition-modal-leave-active .cf-modal{-webkit-transition:opacity .2s ease,-webkit-transform .2s ease;transition:opacity .2s ease,-webkit-transform .2s ease;transition:opacity .2s ease,transform .2s ease;transition:opacity .2s ease,transform .2s ease,-webkit-transform .2s ease}.cf-modal .cf-form{border-left-width:0;border-right-width:0}.cf-modal .cf-form__fieldset_legend{font-size:.86667em}.cf-notifications{margin-top:.5em;margin-bottom:.5em}.cf-notifications__item{position:relative;padding:.5rem 2.5rem;padding-right:2.5rem;border:1px solid;vertical-align:middle;-webkit-text-stroke:0;border-radius:2px;cursor:pointer;-webkit-font-smoothing:antialiased}.cf-notifications__item:before{font-family:cloudflare-font;font-size:1.25rem;position:absolute;top:50%;left:.75rem;-webkit-transform:translateY(-50%);transform:translateY(-50%);line-height:1;vertical-align:middle}.cf-notifications__item+.cf-notifications__item{margin-top:2px}.cf-notifications__global_container{position:fixed;bottom:0;left:0;right:0;max-height:25%;overflow:auto;z-index:1100}.cf-notifications__global_container .cf-notifications{margin-top:0;margin-bottom:0}.cf-notifications__global_container .cf-notifications__item{border-radius:0;border-left-width:0;border-right-width:0;-webkit-transform-origin:bottom left;transform-origin:bottom left;-webkit-animation:d .2s ease-in-out;animation:d .2s ease-in-out}.cf-notifications__global_container .cf-notifications__item:before{-webkit-animation:e .2s ease-out;animation:e .2s ease-out}.cf-notifications__global_container .cf-notifications__item+.cf-notifications__item{margin-top:0;border-top-width:0}.cf-notifications__item_progress{position:absolute;z-index:1;top:0;bottom:0;left:0;width:100%;background:#fff;background:hsla(0,0%,100%,.1)}.cf-notifications__item_progress--active{width:0;-webkit-transition:width 0s linear;transition:width 0s linear}.cf-notifications__item_close{position:absolute;z-index:3;top:0;right:0;bottom:0;width:2.5em;cursor:pointer}.cf-notifications__item_close:hover{background:#000;background:rgba(0,0,0,.1)}.cf-notifications__item_close:before{content:'\00D7';position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:1.25rem}.cf-notifications__item_message{position:relative;z-index:2}.cf-notifications__item--success{background-color:#89b431;border-color:#89b431;color:#fff}.cf-notifications__item--success:before{content:'\f004'}.cf-notifications__item--error{background-color:#bd2527;border-color:#9e1f21;color:#fff}.cf-notifications__item--error:before{content:'\f005'}.cf-notifications__item--info{background-color:#2f7bbf;border-color:#286aa4;color:#fff}.cf-notifications__item--info:before{content:'\f006'}.cf-notifications__item--warning{background-color:#ff7900;border-color:#db6600;color:#fff}.cf-notifications__item--warning:before{content:'\f005'}@-webkit-keyframes d{0%{-webkit-transform:scaleY(0);transform:scaleY(0)}to{-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes d{0%{-webkit-transform:scaleY(0);transform:scaleY(0)}to{-webkit-transform:scaleY(1);transform:scaleY(1)}}@-webkit-keyframes e{0%{-webkit-transform:translateX(-75px);transform:translateX(-75px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes e{0%{-webkit-transform:translateX(-75px);transform:translateX(-75px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}.cf-page{padding-top:2.5em;padding-bottom:1.33333rem}.cf-page__title{font-size:2rem;line-height:1.2;font-weight:400}.cf-page__subtitle{color:#7d7d7d;font-weight:300}@media (min-width:49.2em){.cf-page{padding-bottom:2.66667rem}}.cf-progress{position:relative}.cf-progress__bar{display:block;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none}.cf-progress__bar::-webkit-progress-bar{background-color:#ebebeb;color:#ebebeb}.cf-progress__bar::-webkit-progress-value{background-color:#2f7bbf;color:#2f7bbf;-webkit-transition:width .5s ease;transition:width .5s ease}.cf-progress__bar::-moz-progress-bar{background-color:#2f7bbf;color:#2f7bbf}.cf-progress__items{list-style:none;margin:0;padding:0}.cf-progress__item{float:left;height:auto;padding:0;padding-top:7.5px;color:#7d7d7d;font-size:.86667em;text-align:center;cursor:pointer}.cf-progress__item:before{content:none}.cf-progress__item .cf-link{display:block;color:inherit;cursor:pointer}.cf-progress__item--active{color:#2f7bbf}.cf-progress__item--disabled{color:#dedede;cursor:default}@media (max-width:49.2em){.cf-progress__item{display:none;width:auto!important;float:none}.cf-progress__item--active{display:block}}.cf-radio__group .cf-radio:first-child{margin-top:0}.cf-radio__group .cf-radio{margin-top:1em}.cf-table{background:#fff;border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;margin-bottom:1.5rem}.cf-table__head{background:#dedede}.cf-table__body+.cf-table__body{border-top:2px solid #dedede}.cf-table__cell{border-top:1px solid #dedede;line-height:1.5;padding:.73333rem;vertical-align:middle}.cf-table__cell--head{font-weight:600}.cf-table__cell--head:first-letter{text-transform:capitalize}.cf-table__head .cf-table__cell{vertical-align:bottom}.cf-table__row--info>.cf-table__cell{border-color:#4e96d4;background:#63a2d9}.cf-table__row--success>.cf-table__cell{border-color:#b1d567;background:#bbdb7b}.cf-table__row--warning>.cf-table__cell{border-color:#ffdf80;background:#ffe699}.cf-table__row--error>.cf-table__cell{border-color:#d83b3e;background:#dc5053}.cf-table__cell--align-left{text-align:left}.cf-table__cell--align-center{text-align:center}.cf-table__cell--align-right{text-align:right}@media (max-width:49.2em){.cf-table,.cf-table__body,.cf-table__cell,.cf-table__foot,.cf-table__head,.cf-table__row{display:block;width:100%;box-sizing:border-box}.cf-table__cell{border-top-width:0}.cf-table__cell:first-child{border-top:1px solid #dedede}}.cf-table--condensed .cf-table__cell{padding:.36667rem .86667rem}.cf-table--striped .cf-table__body>.cf-table__row--default:nth-child(odd)>.cf-table__cell{background:#fafafa}.cf-table--striped .cf-table__body>.cf-table__row--info:nth-child(odd)>.cf-table__cell{background:#5b9dd7}.cf-table--striped .cf-table__body>.cf-table__row--success:nth-child(odd)>.cf-table__cell{background:#b7d973}.cf-table--striped .cf-table__body>.cf-table__row--warning:nth-child(odd)>.cf-table__cell{background:#ffe38f}.cf-table--striped .cf-table__body>.cf-table__row--error:nth-child(odd)>.cf-table__cell{background:#db484a}.cf-table--hover .cf-table__body>.cf-table__row--default:hover>.cf-table__cell{background:#f0f0f0}.cf-table--hover .cf-table__body>.cf-table__row--info:hover>.cf-table__cell{background:#5b9dd7}.cf-table--hover .cf-table__body>.cf-table__row--success:hover>.cf-table__cell{background:#b7d973}.cf-table--hover .cf-table__body>.cf-table__row--warning:hover>.cf-table__cell{background:#ffe38f}.cf-table--hover .cf-table__body>.cf-table__row--error:hover>.cf-table__cell{background:#db484a}.cf-table--bordered{border:1px solid #dedede;border-collapse:separate;*border-collapse:collapse;border-left:0}.cf-table--bordered .cf-table__cell{border-left:1px solid #dedede}.cf-table--bordered .cf-table__body:first-child .cf-table__row:first-child .cf-table__cell,.cf-table--bordered .cf-table__head:first-child .cf-table__row:first-child .cf-table__cell{border-top:0}.cf-tabs__group{display:table;width:100%;margin:0 0 22.5px;padding:0;list-style:none}.cf-tabs__item{display:table-cell;position:relative;margin:0;padding:1.5rem 1rem;vertical-align:middle;text-align:center;background:#fff;color:#2f7bbf;cursor:pointer}.cf-tabs__item:before{content:"";display:block;position:absolute;top:100%;left:50%;height:0;width:0;margin-left:0;border:0 solid transparent;border-top-color:#2f7bbf;-webkit-transition:all .2s ease;transition:all .2s ease}.cf-tabs__item+.cf-tabs__item{border-left:1px solid #ebebeb}.cf-tabs__item:focus{outline:none}.cf-tabs__item:focus:after{content:"";display:block;position:absolute;top:0;bottom:0;left:0;right:0}.cf-tabs__item:hover{background:#e6e6e6;color:#2f7bbf}.cf-tabs__item.cf-tabs__item--active,.cf-tabs__item:active{background:#2f7bbf;color:#fff}.cf-tabs__item.cf-tabs__item--active:before,.cf-tabs__item:active:before{border-width:16px;margin-left:-16px}.cf-text--normal{font-size:1rem;font-weight:400}.cf-text--small{font-size:.8em;line-height:1.3}.cf-text--start{text-align:left}.cf-text--center{text-align:center}.cf-text--justify{text-align:justify}.cf-text--end{text-align:right}.cf-text--capitalize{text-transform:capitalize}.cf-text--titlecase:first-word{text-transform:capitalize}.cf-text--lowercase{text-transform:lowercase}.cf-text--uppercase{text-transform:uppercase}.cf-text--info{color:#2f7bbf}.cf-text--success{color:#9bca3e}.cf-text--warning{color:#ff7900}.cf-text--error{color:#bd2527}.cf-text--muted{color:#7d7d7d}.cf-textarea{width:100%}.cf-toggle{display:block;position:relative;height:2.26667rem;width:5.334rem;border-radius:2px;border:1px solid #aaa;cursor:pointer}.cf-toggle:after,.cf-toggle:before{display:block;position:absolute;top:0;bottom:0;width:50%;line-height:2.26667rem;text-align:center}.cf-toggle:before{content:"On";left:0;background:#9bca3e;color:#fff}.cf-toggle:after{content:"Off";right:0;background:gray;color:#fff}.cf-toggle__handle{display:block;position:absolute;z-index:1;top:0;bottom:0;left:0;width:50%;border:inherit;border-width:0;border-right-width:inherit;background:#fff;-webkit-transition:left .1s ease;transition:left .1s ease}.cf-toggle--active .cf-toggle__handle{border-right-width:0;border-left-width:inherit;left:50%}.tooltip{position:absolute;display:none;max-width:100%;max-height:100%}.tooltip-open{display:block}.tooltip-content{position:relative;padding:.5rem 1rem;font-size:.8rem;font-family:inherit;background:#000;color:#fff;border-radius:2px}.tooltip-content:before{content:"";display:block;position:absolute;width:0;height:0;border:5px solid transparent}.tooltip-element-attached-bottom.tooltip-element-attached-center .tooltip-content{margin-bottom:5px}.tooltip-element-attached-bottom.tooltip-element-attached-center .tooltip-content:before{top:100%;left:50%;margin-left:-5px;border-top-color:#000}.tooltip-element-attached-top.tooltip-element-attached-center .tooltip-content{margin-top:5px}.tooltip-element-attached-top.tooltip-element-attached-center .tooltip-content:before{bottom:100%;left:50%;margin-left:-5px;border-bottom-color:#000}.tooltip-element-attached-middle.tooltip-element-attached-right .tooltip-content{margin-right:5px}.tooltip-element-attached-middle.tooltip-element-attached-right .tooltip-content:before{left:100%;top:50%;margin-top:-5px;border-left-color:#000}.tooltip-element-attached-middle.tooltip-element-attached-left .tooltip-content{margin-left:5px}.tooltip-element-attached-middle.tooltip-element-attached-left .tooltip-content:before{right:100%;top:50%;margin-top:-5px;border-right-color:#000}.tooltip-element-attached-top.tooltip-element-attached-left.tooltip-target-attached-bottom .tooltip-content{margin-top:5px}.tooltip-element-attached-top.tooltip-element-attached-left.tooltip-target-attached-bottom .tooltip-content:before{bottom:100%;left:5px;border-bottom-color:#000}.tooltip-element-attached-top.tooltip-element-attached-right.tooltip-target-attached-bottom .tooltip-content{margin-top:5px}.tooltip-element-attached-top.tooltip-element-attached-right.tooltip-target-attached-bottom .tooltip-content:before{bottom:100%;right:5px;border-bottom-color:#000}.tooltip-element-attached-bottom.tooltip-element-attached-left.tooltip-target-attached-top .tooltip-content{margin-bottom:5px}.tooltip-element-attached-bottom.tooltip-element-attached-left.tooltip-target-attached-top .tooltip-content:before{top:100%;left:5px;border-top-color:#000}.tooltip-element-attached-bottom.tooltip-element-attached-right.tooltip-target-attached-top .tooltip-content{margin-bottom:5px}.tooltip-element-attached-bottom.tooltip-element-attached-right.tooltip-target-attached-top .tooltip-content:before{top:100%;right:5px;border-top-color:#000}.tooltip-element-attached-top.tooltip-element-attached-right.tooltip-target-attached-left .tooltip-content{margin-right:5px}.tooltip-element-attached-top.tooltip-element-attached-right.tooltip-target-attached-left .tooltip-content:before{top:5px;left:100%;border-left-color:#000}.tooltip-element-attached-top.tooltip-element-attached-left.tooltip-target-attached-right .tooltip-content{margin-left:5px}.tooltip-element-attached-top.tooltip-element-attached-left.tooltip-target-attached-right .tooltip-content:before{top:5px;right:100%;border-right-color:#000}.tooltip-element-attached-bottom.tooltip-element-attached-right.tooltip-target-attached-left .tooltip-content{margin-right:5px}.tooltip-element-attached-bottom.tooltip-element-attached-right.tooltip-target-attached-left .tooltip-content:before{bottom:5px;left:100%;border-left-color:#000}.tooltip-element-attached-bottom.tooltip-element-attached-left.tooltip-target-attached-right .tooltip-content{margin-left:5px}.tooltip-element-attached-bottom.tooltip-element-attached-left.tooltip-target-attached-right .tooltip-content:before{bottom:5px;right:100%;border-right-color:#000}
/*# sourceMappingURL=components.css.map */
diff --git a/webpack.config.js b/webpack.config.js
index e1ac919..a20445b 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -3,8 +3,9 @@ var webpack = require('webpack');
var isDev = process.env.NODE_ENV !== 'production';
var plugins = [];
-if(!isDev) {
- plugins.push(new webpack.optimize.UglifyJsPlugin({
+if (!isDev) {
+ plugins.push(
+ new webpack.optimize.UglifyJsPlugin({
compress: isDev,
mangle: false
})
@@ -12,11 +13,11 @@ if(!isDev) {
}
module.exports = {
- entry: "./src/index.js",
+ entry: './src/index.js',
devtool: isDev ? 'cheap-module-source-map' : false,
output: {
path: __dirname,
- filename: "compiled.js"
+ filename: 'compiled.js'
},
watch: isDev,
module: {
@@ -24,17 +25,9 @@ module.exports = {
{
test: /\.js$/,
exclude: /node_modules/,
- loader: 'babel-loader',
- },
- {
- test: /\.js$/,
- exclude: /node_modules/,
- enforce: 'pre',
- use: [{
- loader: 'eslint-loader',
- }],
+ loader: 'babel-loader'
}
]
},
plugins: plugins
-};
\ No newline at end of file
+};
diff --git a/yarn.lock b/yarn.lock
index d191270..976717f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -51,10 +51,14 @@ acorn@^5.0.0, acorn@^5.0.1:
version "5.0.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d"
-ajv-keywords@^1.0.0, ajv-keywords@^1.1.1:
+ajv-keywords@^1.0.0:
version "1.5.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
+ajv-keywords@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0"
+
ajv@^4.7.0, ajv@^4.9.1:
version "4.11.8"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
@@ -62,6 +66,15 @@ ajv@^4.7.0, ajv@^4.9.1:
co "^4.6.0"
json-stable-stringify "^1.0.1"
+ajv@^5.1.5:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.0.tgz#c1735024c5da2ef75cc190713073d44f098bf486"
+ dependencies:
+ co "^4.6.0"
+ fast-deep-equal "^0.1.0"
+ json-schema-traverse "^0.3.0"
+ json-stable-stringify "^1.0.1"
+
align-text@^0.1.1, align-text@^0.1.3:
version "0.1.4"
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
@@ -698,7 +711,7 @@ babel-register@^6.24.1:
mkdirp "^0.5.1"
source-map-support "^0.4.2"
-babel-runtime@^6.18.0, babel-runtime@^6.22.0:
+babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0:
version "6.23.0"
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b"
dependencies:
@@ -784,6 +797,10 @@ boom@2.x.x:
dependencies:
hoek "2.x.x"
+bowser@^1.6.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.7.0.tgz#169de4018711f994242bff9a8009e77a1f35e003"
+
brace-expansion@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
@@ -860,6 +877,13 @@ browserify-zlib@^0.1.4:
dependencies:
pako "~0.2.0"
+browserslist@2.1.4:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.1.4.tgz#cc526af4a1312b7d2e05653e56d0c8ab70c0e053"
+ dependencies:
+ caniuse-lite "^1.0.30000670"
+ electron-to-chromium "^1.3.11"
+
bser@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169"
@@ -888,7 +912,7 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
-builtin-modules@^1.0.0:
+builtin-modules@^1.0.0, builtin-modules@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
@@ -924,6 +948,14 @@ camelcase@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
+caniuse-db@1.0.30000671:
+ version "1.0.30000671"
+ resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000671.tgz#9f071bbc7b96994638ccbaf47829d58a1577a8ed"
+
+caniuse-lite@^1.0.30000670:
+ version "1.0.30000686"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000686.tgz#d9d9ec6110e5533be544a689003f7596532c67d3"
+
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -935,6 +967,15 @@ center-align@^0.1.1:
align-text "^0.1.3"
lazy-cache "^1.0.3"
+cf-component-box@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/cf-component-box/-/cf-component-box-2.2.1.tgz#05bc4bf26f5749c9183aea5d646ace140a16c5cb"
+ dependencies:
+ cf-style-const "^1.4.2"
+ cf-style-container "^1.2.0"
+ polished "^1.0.2"
+ prop-types "^15.5.8"
+
cf-component-button@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/cf-component-button/-/cf-component-button-3.0.0.tgz#2c7eeecee5924a3674a374e13fd1eaaad1353309"
@@ -1087,6 +1128,41 @@ cf-component-viewport@^2.2.1:
prop-types "^15.5.8"
react-responsive "^1.1.3"
+cf-style-const@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/cf-style-const/-/cf-style-const-1.4.2.tgz#341f3c32ea404c2fad97f9518c4bce553ac8d7b1"
+ dependencies:
+ polished "^1.0.2"
+
+cf-style-container@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/cf-style-container/-/cf-style-container-1.2.0.tgz#df25dc1b538a377784ff0e7a2e8eee6681986be1"
+ dependencies:
+ fela "^5.0.0"
+ merge-options "0.0.64"
+ prop-types "^15.5.8"
+ react-fela "^5.0.0"
+
+cf-style-provider@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/cf-style-provider/-/cf-style-provider-1.5.0.tgz#a791a002bb45c1df2a315c46f304948fc79a36fa"
+ dependencies:
+ cf-style-const "^1.4.2"
+ cf-style-container "^1.2.0"
+ cssbeautify "^0.3.1"
+ fela "^5.0.0"
+ fela-beautifier "^5.0.0"
+ fela-monolithic "^5.0.0"
+ fela-plugin-embedded "^5.0.0"
+ fela-plugin-fallback-value "^5.0.0"
+ fela-plugin-lvha "^5.0.0"
+ fela-plugin-prefixer "^5.0.0"
+ fela-plugin-unit "^5.0.0"
+ fela-plugin-validator "^5.0.0"
+ inline-style-prefixer "^3.0.5"
+ prop-types "^15.5.8"
+ react-fela "^5.0.0"
+
cf-util-http@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/cf-util-http/-/cf-util-http-2.0.1.tgz#2e3a6f53fef3d45dd51982f0380add32996b13da"
@@ -1157,6 +1233,13 @@ cli-width@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
+cli@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cli/-/cli-1.0.1.tgz#22817534f24bfa4950c34d532d48ecbc621b8c14"
+ dependencies:
+ exit "0.1.2"
+ glob "^7.1.1"
+
cliui@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
@@ -1217,7 +1300,7 @@ concat-stream@^1.5.2:
readable-stream "^2.2.2"
typedarray "^0.0.6"
-console-browserify@^1.1.0:
+console-browserify@1.1.x, console-browserify@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
dependencies:
@@ -1231,6 +1314,10 @@ constants-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
+contains-path@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
+
content-type-parser@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94"
@@ -1311,10 +1398,20 @@ crypto-browserify@^3.11.0:
public-encrypt "^4.0.0"
randombytes "^2.0.0"
+css-in-js-utils@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-1.0.3.tgz#9ac7e02f763cf85d94017666565ed68a5b5f3215"
+ dependencies:
+ hyphenate-style-name "^1.0.2"
+
css-mediaquery@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/css-mediaquery/-/css-mediaquery-0.1.2.tgz#6a2c37344928618631c54bd33cedd301da18bea0"
+cssbeautify@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/cssbeautify/-/cssbeautify-0.3.1.tgz#12dd1f734035c2e6faca67dcbdcef74e42811397"
+
cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
version "0.3.2"
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b"
@@ -1355,6 +1452,12 @@ debug@2, debug@^2.1.1, debug@^2.2.0, debug@^2.6.3:
dependencies:
ms "2.0.0"
+debug@2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
+ dependencies:
+ ms "0.7.1"
+
decamelize@^1.0.0, decamelize@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -1422,6 +1525,13 @@ diffie-hellman@^5.0.0:
miller-rabin "^4.0.0"
randombytes "^2.0.0"
+doctrine@1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
+ dependencies:
+ esutils "^2.0.2"
+ isarray "^1.0.0"
+
doctrine@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63"
@@ -1429,16 +1539,48 @@ doctrine@^2.0.0:
esutils "^2.0.2"
isarray "^1.0.0"
+dom-serializer@0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
+ dependencies:
+ domelementtype "~1.1.1"
+ entities "~1.1.1"
+
domain-browser@^1.1.1:
version "1.1.7"
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
+domelementtype@1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2"
+
+domelementtype@~1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b"
+
+domhandler@2.3:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738"
+ dependencies:
+ domelementtype "1"
+
+domutils@1.5:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
+ dependencies:
+ dom-serializer "0"
+ domelementtype "1"
+
ecc-jsbn@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
dependencies:
jsbn "~0.1.0"
+electron-to-chromium@^1.3.11:
+ version "1.3.14"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.14.tgz#64af0f9efd3c3c6acd57d71f83b49ca7ee9c4b43"
+
elliptic@^6.0.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df"
@@ -1470,6 +1612,10 @@ enhanced-resolve@^3.0.0:
object-assign "^4.0.1"
tapable "^0.2.5"
+entities@1.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26"
+
entities@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
@@ -1562,6 +1708,14 @@ escope@^3.6.0:
esrecurse "^4.1.0"
estraverse "^4.1.1"
+eslint-import-resolver-node@^0.2.0:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c"
+ dependencies:
+ debug "^2.2.0"
+ object-assign "^4.0.1"
+ resolve "^1.1.6"
+
eslint-loader@^1.6.1:
version "1.7.1"
resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.7.1.tgz#50b158dd6272dcefb97e984254837f81a5802ce0"
@@ -1573,6 +1727,53 @@ eslint-loader@^1.6.1:
object-hash "^1.1.4"
rimraf "^2.6.1"
+eslint-module-utils@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz#a6f8c21d901358759cdc35dbac1982ae1ee58bce"
+ dependencies:
+ debug "2.2.0"
+ pkg-dir "^1.0.0"
+
+eslint-plugin-cflint@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-cflint/-/eslint-plugin-cflint-1.0.0.tgz#84eb9b3c5a707793f83ea2c98f74b8684c0d76be"
+
+eslint-plugin-compat@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-1.0.3.tgz#0019e34eebb4512de6dc0351349bc132a322d292"
+ dependencies:
+ babel-runtime "^6.23.0"
+ browserslist "2.1.4"
+ caniuse-db "1.0.30000671"
+ requireindex "^1.1.0"
+
+eslint-plugin-import@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.3.0.tgz#37c801e0ada0e296cbdf20c3f393acb5b52af36b"
+ dependencies:
+ builtin-modules "^1.1.1"
+ contains-path "^0.1.0"
+ debug "^2.2.0"
+ doctrine "1.5.0"
+ eslint-import-resolver-node "^0.2.0"
+ eslint-module-utils "^2.0.0"
+ has "^1.0.1"
+ lodash.cond "^4.3.0"
+ minimatch "^3.0.3"
+ read-pkg-up "^2.0.0"
+
+eslint-plugin-json@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-json/-/eslint-plugin-json-1.2.0.tgz#9ba73bb0be99d50093e889f5b968463d2a30efae"
+ dependencies:
+ jshint "^2.8.0"
+
+eslint-plugin-mocha@^4.10.1:
+ version "4.10.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-4.10.1.tgz#c63ccb83933bdb01d2bef922332dc4c44b30f3f8"
+ dependencies:
+ ramda "^0.24.1"
+
eslint-plugin-prettier@^2.0.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.1.1.tgz#2fb7e2ab961f2b61d2c8cf91bc17716ca8c53868"
@@ -1580,6 +1781,14 @@ eslint-plugin-prettier@^2.0.0:
fast-diff "^1.1.1"
jest-docblock "^20.0.1"
+eslint-plugin-react@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.1.0.tgz#27770acf39f5fd49cd0af4083ce58104eb390d4c"
+ dependencies:
+ doctrine "^2.0.0"
+ has "^1.0.1"
+ jsx-ast-utils "^1.4.1"
+
eslint@^3.4.0:
version "3.19.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc"
@@ -1695,6 +1904,10 @@ exit-hook@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
+exit@0.1.2, exit@0.1.x:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+
expand-brackets@^0.1.4:
version "0.1.5"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
@@ -1721,6 +1934,10 @@ extsprintf@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
+fast-deep-equal@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-0.1.0.tgz#5c6f4599aba6b333ee3342e2ed978672f1001f8d"
+
fast-diff@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.1.tgz#0aea0e4e605b6a2189f0e936d4b7fbaf1b7cfd9b"
@@ -1753,6 +1970,89 @@ fbjs@^0.8.4, fbjs@^0.8.9:
setimmediate "^1.0.5"
ua-parser-js "^0.7.9"
+fela-beautifier@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/fela-beautifier/-/fela-beautifier-5.0.1.tgz#92177dbfc65129ee59d6391730e46e0cf733c2a7"
+ dependencies:
+ cssbeautify "^0.3.1"
+ fela-utils "^5.0.1"
+
+fela-dom@^5.0.2:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/fela-dom/-/fela-dom-5.0.2.tgz#8c10ce9ff2872eece4eb27fcbf5950eba1c76afa"
+ dependencies:
+ fela-tools "^5.0.1"
+ fela-utils "^5.0.1"
+
+fela-monolithic@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/fela-monolithic/-/fela-monolithic-5.0.1.tgz#07ae241294e2d857b192377457126c4b9c64600a"
+ dependencies:
+ css-in-js-utils "^1.0.3"
+ fela-utils "^5.0.1"
+
+fela-plugin-embedded@^5.0.0:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/fela-plugin-embedded/-/fela-plugin-embedded-5.0.2.tgz#462f01591f021360c13624fb2726891ec19f1c28"
+ dependencies:
+ fela-utils "^5.0.1"
+
+fela-plugin-fallback-value@^5.0.0, fela-plugin-fallback-value@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/fela-plugin-fallback-value/-/fela-plugin-fallback-value-5.0.1.tgz#38bd2f926b34a077bf8f03a8eba0b85345edcbc5"
+ dependencies:
+ css-in-js-utils "^1.0.3"
+ fela-utils "^5.0.1"
+
+fela-plugin-lvha@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/fela-plugin-lvha/-/fela-plugin-lvha-5.0.1.tgz#ea0d32dfd7e882a766ac1a791859975fd8f11fbc"
+ dependencies:
+ fela-utils "^5.0.1"
+
+fela-plugin-prefixer@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/fela-plugin-prefixer/-/fela-plugin-prefixer-5.0.1.tgz#a65127af265135e132193cd486fd1de22332a6a8"
+ dependencies:
+ css-in-js-utils "^1.0.3"
+ fela-plugin-fallback-value "^5.0.1"
+ fela-utils "^5.0.1"
+ inline-style-prefixer "^3.0.0"
+
+fela-plugin-unit@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/fela-plugin-unit/-/fela-plugin-unit-5.0.1.tgz#39b7fcaba5c59cebb29168d507eb3e38922a86b0"
+ dependencies:
+ css-in-js-utils "^1.0.3"
+ fela-utils "^5.0.1"
+
+fela-plugin-validator@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/fela-plugin-validator/-/fela-plugin-validator-5.0.1.tgz#1ed6d4cb302576c5ca8d20e7421a826aeaf97fe7"
+ dependencies:
+ fela-utils "^5.0.1"
+
+fela-tools@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/fela-tools/-/fela-tools-5.0.1.tgz#3cb93239c39cb574b6d6b43a718178ff3173dde4"
+ dependencies:
+ css-in-js-utils "^1.0.3"
+ fela-utils "^5.0.1"
+
+fela-utils@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/fela-utils/-/fela-utils-5.0.1.tgz#d65dc24bd093442c89d5bdd7d8ffeace82b608ee"
+ dependencies:
+ css-in-js-utils "^1.0.3"
+
+fela@^5.0.0, fela@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/fela/-/fela-5.0.1.tgz#768a78d019021f9b6eb1518773b70668569c187f"
+ dependencies:
+ css-in-js-utils "^1.0.3"
+ fela-tools "^5.0.1"
+ fela-utils "^5.0.1"
+
figures@^1.3.5:
version "1.7.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
@@ -1803,7 +2103,7 @@ find-up@^1.0.0:
path-exists "^2.0.0"
pinkie-promise "^2.0.0"
-find-up@^2.1.0:
+find-up@^2.0.0, find-up@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
dependencies:
@@ -1888,6 +2188,10 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2:
mkdirp ">=0.5 0"
rimraf "2"
+function-bind@^1.0.2:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
+
gauge@~2.7.3:
version "2.7.4"
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
@@ -1949,7 +2253,7 @@ glob@7.1.1:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.0.0, glob@^7.0.3, glob@^7.0.5:
+glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1:
version "7.1.2"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
dependencies:
@@ -2018,6 +2322,12 @@ has-unicode@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+has@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
+ dependencies:
+ function-bind "^1.0.2"
+
hash-base@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1"
@@ -2081,6 +2391,16 @@ html-encoding-sniffer@^1.0.1:
dependencies:
whatwg-encoding "^1.0.1"
+htmlparser2@3.8.x:
+ version "3.8.3"
+ resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068"
+ dependencies:
+ domelementtype "1"
+ domhandler "2.3"
+ domutils "1.5"
+ entities "1.0"
+ readable-stream "1.1"
+
http-signature@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
@@ -2093,7 +2413,7 @@ https-browserify@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
-hyphenate-style-name@^1.0.0:
+hyphenate-style-name@^1.0.0, hyphenate-style-name@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b"
@@ -2140,6 +2460,13 @@ ini@~1.3.0:
version "1.3.4"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
+inline-style-prefixer@^3.0.0, inline-style-prefixer@^3.0.5:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-3.0.6.tgz#b27fe309b4168a31eaf38c8e8c60ab9e7c11731f"
+ dependencies:
+ bowser "^1.6.0"
+ css-in-js-utils "^1.0.3"
+
inquirer@^0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
@@ -2293,6 +2620,10 @@ is-path-inside@^1.0.0:
dependencies:
path-is-inside "^1.0.1"
+is-plain-obj@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
+
is-posix-bracket@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
@@ -2683,10 +3014,27 @@ jsesc@~0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+jshint@^2.8.0:
+ version "2.9.4"
+ resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.9.4.tgz#5e3ba97848d5290273db514aee47fe24cf592934"
+ dependencies:
+ cli "~1.0.0"
+ console-browserify "1.1.x"
+ exit "0.1.x"
+ htmlparser2 "3.8.x"
+ lodash "3.7.x"
+ minimatch "~3.0.2"
+ shelljs "0.3.x"
+ strip-json-comments "1.0.x"
+
json-loader@^0.5.4:
version "0.5.4"
resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de"
+json-schema-traverse@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.0.tgz#0016c0b1ca1efe46d44d37541bcdfc19dcfae0db"
+
json-schema@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
@@ -2722,6 +3070,10 @@ jsprim@^1.2.2:
json-schema "0.2.3"
verror "1.3.6"
+jsx-ast-utils@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1"
+
kind-of@^3.0.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
@@ -2765,6 +3117,15 @@ load-json-file@^1.0.0:
pinkie-promise "^2.0.0"
strip-bom "^2.0.0"
+load-json-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ strip-bom "^3.0.0"
+
loader-fs-cache@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc"
@@ -2785,7 +3146,7 @@ loader-utils@^0.2.16:
json5 "^0.5.0"
object-assign "^4.0.1"
-loader-utils@^1.0.2:
+loader-utils@^1.0.2, loader-utils@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
dependencies:
@@ -2808,10 +3169,18 @@ lodash.assign@^4.0.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
+lodash.cond@^4.3.0:
+ version "4.5.2"
+ resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
+
lodash.pickby@^4.0.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff"
+lodash@3.7.x:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45"
+
lodash@^3.10.1:
version "3.10.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6"
@@ -2863,6 +3232,12 @@ memory-fs@^0.4.0, memory-fs@~0.4.1:
errno "^0.1.3"
readable-stream "^2.0.1"
+merge-options@0.0.64:
+ version "0.0.64"
+ resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-0.0.64.tgz#cbe04f594a6985eaf27f7f8f0b2a3acf6f9d562d"
+ dependencies:
+ is-plain-obj "^1.1.0"
+
merge@^1.1.3:
version "1.2.0"
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da"
@@ -2918,7 +3293,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
-minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
+minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
dependencies:
@@ -2938,6 +3313,10 @@ mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
dependencies:
minimist "0.0.8"
+ms@0.7.1:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
+
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -3210,6 +3589,12 @@ path-type@^1.0.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
+path-type@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
+ dependencies:
+ pify "^2.0.0"
+
pbkdf2@^3.0.3:
version "3.0.12"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.12.tgz#be36785c5067ea48d806ff923288c5f750b6b8a2"
@@ -3252,6 +3637,10 @@ pluralize@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
+polished@^1.0.2:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/polished/-/polished-1.1.3.tgz#8f0f4b4c82eb7e33b0862487a8d07bd897b5392f"
+
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -3361,6 +3750,10 @@ raf@^3.1.0:
dependencies:
performance-now "^2.1.0"
+ramda@^0.24.1:
+ version "0.24.1"
+ resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857"
+
randomatic@^1.1.3:
version "1.1.6"
resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb"
@@ -3397,6 +3790,14 @@ react-dom@^15.5.4:
object-assign "^4.1.0"
prop-types "~15.5.7"
+react-fela@^5.0.0:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/react-fela/-/react-fela-5.0.3.tgz#04f3f17b0039c8482adddc7df61c69221f3d9ee1"
+ dependencies:
+ fela "^5.0.1"
+ fela-dom "^5.0.2"
+ prop-types "^15.5.8"
+
react-gateway@^2.0.4, react-gateway@^2.2.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/react-gateway/-/react-gateway-2.7.0.tgz#64bb3e8f8b7c6bf9f26ff3bf08a9946a5af4836e"
@@ -3508,6 +3909,13 @@ read-pkg-up@^1.0.1:
find-up "^1.0.0"
read-pkg "^1.0.0"
+read-pkg-up@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^2.0.0"
+
read-pkg@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
@@ -3516,6 +3924,14 @@ read-pkg@^1.0.0:
normalize-package-data "^2.3.2"
path-type "^1.0.0"
+read-pkg@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ dependencies:
+ load-json-file "^2.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^2.0.0"
+
readable-stream@1.0.27-1:
version "1.0.27-1"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.27-1.tgz#6b67983c20357cefd07f0165001a16d710d91078"
@@ -3525,6 +3941,15 @@ readable-stream@1.0.27-1:
isarray "0.0.1"
string_decoder "~0.10.x"
+readable-stream@1.1:
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6:
version "2.2.9"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8"
@@ -3570,6 +3995,10 @@ redux-logger@^2.6.1:
dependencies:
deep-diff "0.3.4"
+redux-mock-store@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/redux-mock-store/-/redux-mock-store-1.2.3.tgz#1b3ad299da91cb41ba30d68e3b6f024475fb9e1b"
+
redux-thunk@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-1.0.3.tgz#778aa0099eea0595031ab6b39165f6670d8d26bd"
@@ -3684,6 +4113,10 @@ require-uncached@^1.0.2:
caller-path "^0.1.0"
resolve-from "^1.0.0"
+requireindex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.1.0.tgz#e5404b81557ef75db6e49c5a72004893fe03e162"
+
resolve-from@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
@@ -3776,6 +4209,10 @@ sha.js@^2.4.0, sha.js@^2.4.8:
dependencies:
inherits "^2.0.1"
+shelljs@0.3.x:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1"
+
shelljs@^0.7.5:
version "0.7.7"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1"
@@ -3806,9 +4243,9 @@ sntp@1.x.x:
dependencies:
hoek "2.x.x"
-source-list-map@^1.1.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.2.tgz#9889019d1024cce55cdc069498337ef6186a11a1"
+source-list-map@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
source-map-support@^0.4.2:
version "0.4.15"
@@ -3937,6 +4374,10 @@ strip-bom@^2.0.0:
dependencies:
is-utf8 "^0.2.0"
+strip-json-comments@1.0.x:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
+
strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
@@ -4105,7 +4546,7 @@ uc.micro@^1.0.1, uc.micro@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192"
-uglify-js@^2.6, uglify-js@^2.8.27:
+uglify-js@^2.6:
version "2.8.27"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.27.tgz#47787f912b0f242e5b984343be8e35e95f694c9c"
dependencies:
@@ -4118,6 +4559,13 @@ uglify-to-browserify@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+uglifyjs-webpack-plugin@^0.4.4:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.4.tgz#7829c50ee5a5b755969d4458357ed5a2dd36fbbd"
+ dependencies:
+ source-map "^0.5.6"
+ webpack-sources "^1.0.1"
+
uid-number@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
@@ -4200,37 +4648,38 @@ webidl-conversions@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.1.tgz#8015a17ab83e7e1b311638486ace81da6ce206a0"
-webpack-sources@^0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.2.3.tgz#17c62bfaf13c707f9d02c479e0dcdde8380697fb"
+webpack-sources@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf"
dependencies:
- source-list-map "^1.1.1"
+ source-list-map "^2.0.0"
source-map "~0.5.3"
-webpack@^2.2.1:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.6.0.tgz#7e650a92816abff5db5f43316b0b8b19b13d76c1"
+webpack@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.0.0.tgz#ee9bcebf21247f7153cb410168cab45e3a59d4d7"
dependencies:
acorn "^5.0.0"
acorn-dynamic-import "^2.0.0"
- ajv "^4.7.0"
- ajv-keywords "^1.1.1"
+ ajv "^5.1.5"
+ ajv-keywords "^2.0.0"
async "^2.1.2"
enhanced-resolve "^3.0.0"
+ escope "^3.6.0"
interpret "^1.0.0"
json-loader "^0.5.4"
json5 "^0.5.1"
loader-runner "^2.3.0"
- loader-utils "^0.2.16"
+ loader-utils "^1.1.0"
memory-fs "~0.4.1"
mkdirp "~0.5.0"
node-libs-browser "^2.0.0"
source-map "^0.5.3"
supports-color "^3.1.0"
tapable "~0.2.5"
- uglify-js "^2.8.27"
+ uglifyjs-webpack-plugin "^0.4.4"
watchpack "^1.3.1"
- webpack-sources "^0.2.3"
+ webpack-sources "^1.0.1"
yargs "^6.0.0"
whatwg-encoding@^1.0.1: