keystone
Version:
Web Application Framework and Admin GUI / Content Management System built on Express.js and Mongoose
1,414 lines (1,094 loc) • 1.36 MB
JavaScript
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
'use strict';
var _theme = require('../../../theme');
var _theme2 = _interopRequireDefault(_theme);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
module.exports = {
danger: _theme2.default.alert.color.danger,
error: _theme2.default.alert.color.danger,
info: _theme2.default.alert.color.info,
success: _theme2.default.alert.color.success,
warning: _theme2.default.alert.color.warning
};
},{"../../../theme":79}],2:[function(require,module,exports){
'use strict';
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _noImportant = require('aphrodite/no-important');
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _styles = require('./styles');
var _styles2 = _interopRequireDefault(_styles);
var _colors = require('./colors');
var _colors2 = _interopRequireDefault(_colors);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
var classes = _noImportant.StyleSheet.create(_styles2.default);
// clone children if a class exists for the tagname
var cloneWithClassnames = function cloneWithClassnames(c) {
var type = c.type && c.type.displayName ? c.type.displayName : c.type || null;
if (!type || !classes[type]) return c;
return (0, _react.cloneElement)(c, {
className: (0, _noImportant.css)(classes[type])
});
};
function Alert(_ref) {
var children = _ref.children,
className = _ref.className,
color = _ref.color,
Component = _ref.component,
props = _objectWithoutProperties(_ref, ['children', 'className', 'color', 'component']);
props.className = (0, _noImportant.css)(classes.alert, classes[color], className);
props.children = _react.Children.map(children, cloneWithClassnames);
return _react2.default.createElement(Component, _extends({}, props, { 'data-alert-type': color }));
};
Alert.propTypes = {
color: _react.PropTypes.oneOf(Object.keys(_colors2.default)).isRequired,
component: _react.PropTypes.oneOfType([_react.PropTypes.func, _react.PropTypes.string])
};
Alert.defaultProps = {
component: 'div'
};
module.exports = Alert;
},{"./colors":1,"./styles":3,"aphrodite/no-important":undefined,"react":undefined}],3:[function(require,module,exports){
'use strict';
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; // ==============================
// Alert
// ==============================
/* eslint quote-props: ["error", "as-needed"] */
var _colors = require('./colors');
var _colors2 = _interopRequireDefault(_colors);
var _theme = require('../../../theme');
var _theme2 = _interopRequireDefault(_theme);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Prepare variants
var colorVariants = {};
Object.keys(_colors2.default).forEach(function (color) {
colorVariants[color] = {
backgroundColor: _colors2.default[color].background,
borderColor: _colors2.default[color].border,
color: _colors2.default[color].text
};
});
// Prepare headings
var headingTagnames = {};
['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].forEach(function (tag) {
headingTagnames[tag] = { color: 'inherit' };
});
var linkStyles = {
color: 'inherit',
textDecoration: 'underline',
':hover': { color: 'inherit' },
':focus': { color: 'inherit' }
};
module.exports = _extends({
alert: {
borderColor: 'transparent',
borderRadius: _theme2.default.alert.borderRadius,
borderStyle: 'solid',
borderWidth: _theme2.default.alert.borderWidth,
margin: _theme2.default.alert.margin,
padding: _theme2.default.alert.padding
},
// tagnames
a: linkStyles,
Link: linkStyles,
strong: {
fontWeight: 500
}
}, headingTagnames, colorVariants);
},{"../../../theme":79,"./colors":1}],4:[function(require,module,exports){
'use strict';
var _noImportant = require('aphrodite/no-important');
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _theme = require('../../../theme');
var _theme2 = _interopRequireDefault(_theme);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function BlankState(_ref) {
var className = _ref.className,
children = _ref.children,
heading = _ref.heading,
Component = _ref.component,
props = _objectWithoutProperties(_ref, ['className', 'children', 'heading', 'component']);
props.className = (0, _noImportant.css)(classes.container, className);
return _react2.default.createElement(
Component,
props,
!!heading && _react2.default.createElement(
'h2',
{ 'data-e2e-blank-state-heading': true, className: (0, _noImportant.css)(classes.heading) },
heading
),
children
);
};
BlankState.propTypes = {
component: _react.PropTypes.oneOfType([_react.PropTypes.func, _react.PropTypes.string]).isRequired,
heading: _react.PropTypes.string
};
BlankState.defaultProps = {
component: 'div'
};
/* eslint quote-props: ["error", "as-needed"] */
var classes = _noImportant.StyleSheet.create({
container: {
backgroundColor: _theme2.default.blankstate.background,
borderRadius: _theme2.default.blankstate.borderRadius,
color: _theme2.default.blankstate.color,
paddingBottom: _theme2.default.blankstate.paddingVertical,
paddingLeft: _theme2.default.blankstate.paddingHorizontal,
paddingRight: _theme2.default.blankstate.paddingHorizontal,
paddingTop: _theme2.default.blankstate.paddingVertical,
textAlign: 'center'
},
heading: {
color: 'inherit',
':last-child': {
marginBottom: 0
}
}
});
module.exports = BlankState;
},{"../../../theme":79,"aphrodite/no-important":undefined,"react":undefined}],5:[function(require,module,exports){
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _noImportant = require('aphrodite/no-important');
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _styles = require('./styles');
var _styles2 = _interopRequireDefault(_styles);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var commonClasses = _noImportant.StyleSheet.create(_styles2.default.common);
var stylesheetCache = {};
function getStyleSheet(variant, color) {
var cacheKey = variant + '-' + color;
if (!stylesheetCache[cacheKey]) {
var variantStyles = _styles2.default[variant](color);
stylesheetCache[cacheKey] = _noImportant.StyleSheet.create(variantStyles);
}
return stylesheetCache[cacheKey];
}
var BUTTON_SIZES = ['large', 'medium', 'small', 'xsmall'];
var BUTTON_VARIANTS = ['fill', 'hollow', 'link'];
var BUTTON_COLORS = ['default', 'primary', 'success', 'warning', 'danger', 'cancel', 'delete'];
// NOTE must NOT be functional component to allow `refs`
var Button = function (_Component) {
_inherits(Button, _Component);
function Button() {
_classCallCheck(this, Button);
return _possibleConstructorReturn(this, (Button.__proto__ || Object.getPrototypeOf(Button)).apply(this, arguments));
}
_createClass(Button, [{
key: 'render',
value: function render() {
var _props = this.props,
active = _props.active,
aphroditeStyles = _props.aphroditeStyles,
block = _props.block,
className = _props.className,
color = _props.color,
Tag = _props.component,
disabled = _props.disabled,
size = _props.size,
variant = _props.variant,
props = _objectWithoutProperties(_props, ['active', 'aphroditeStyles', 'block', 'className', 'color', 'component', 'disabled', 'size', 'variant']);
// get the styles
var variantClasses = getStyleSheet(variant, color);
props.className = _noImportant.css.apply(undefined, [commonClasses.base, commonClasses[size], variantClasses.base, block ? commonClasses.block : null, disabled ? commonClasses.disabled : null, active ? variantClasses.active : null].concat(_toConsumableArray(aphroditeStyles)));
if (className) {
props.className += ' ' + className;
}
// return an anchor or button
if (!Tag) {
Tag = props.href ? 'a' : 'button';
}
// Ensure buttons don't submit by default
if (Tag === 'button' && !props.type) {
props.type = 'button';
}
return _react2.default.createElement(Tag, props);
}
}]);
return Button;
}(_react.Component);
;
Button.propTypes = {
active: _react.PropTypes.bool,
aphroditeStyles: _react.PropTypes.arrayOf(_react.PropTypes.shape({
_definition: _react.PropTypes.object,
_name: _react.PropTypes.string
})),
block: _react.PropTypes.bool,
color: _react.PropTypes.oneOf(BUTTON_COLORS),
component: _react.PropTypes.oneOfType([_react.PropTypes.func, _react.PropTypes.string]),
disabled: _react.PropTypes.bool,
href: _react.PropTypes.string,
size: _react.PropTypes.oneOf(BUTTON_SIZES),
variant: _react.PropTypes.oneOf(BUTTON_VARIANTS)
};
Button.defaultProps = {
aphroditeStyles: [],
color: 'default',
variant: 'fill'
};
module.exports = Button;
},{"./styles":6,"aphrodite/no-important":undefined,"react":undefined}],6:[function(require,module,exports){
'use strict';
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; // ==============================
// Button
// ==============================
var _css = require('../../../utils/css');
var _color = require('../../../utils/color');
var _theme = require('../../../theme');
var _theme2 = _interopRequireDefault(_theme);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Common Styles
// ----------------
exports.common = {
// Base Button
// ----------------
base: {
'appearance': 'none',
'background': 'none',
'borderWidth': _theme2.default.button.borderWidth,
'borderStyle': 'solid',
'borderColor': 'transparent',
'borderRadius': _theme2.default.button.borderRadius,
'cursor': 'pointer',
'display': 'inline-block',
'fontWeight': _theme2.default.button.font.weight,
'height': _theme2.default.component.height,
'lineHeight': _theme2.default.component.lineHeight,
'marginBottom': 0,
'padding': '0 ' + _theme2.default.button.paddingHorizontal,
'outline': 0,
'textAlign': 'center',
'touchAction': 'manipulation',
'userSelect': 'none',
'verticalAlign': 'middle',
'whiteSpace': 'nowrap',
':hover': {
color: _theme2.default.button.default.textColor,
textDecoration: 'none'
},
':focus': {
color: _theme2.default.button.default.textColor,
textDecoration: 'none'
}
},
// Block Display
// ----------------
block: {
display: 'block',
width: '100%'
},
// Disabled
// ----------------
disabled: {
opacity: 0.4,
pointerEvents: 'none'
},
// Sizes
// ----------------
large: {
fontSize: _theme2.default.font.size.large
},
default: {
fontSize: _theme2.default.font.size.default
},
small: {
fontSize: _theme2.default.font.size.small
},
xsmall: {
fontSize: _theme2.default.font.size.xsmall,
lineHeight: '1.9',
paddingLeft: '.66em',
paddingRight: '.66em'
}
};
// Fill Variant
// ----------------
function buttonFillVariant(textColor, bgColor) {
var hoverStyles = _extends({}, (0, _css.gradientVertical)((0, _color.lighten)(bgColor, 10), (0, _color.darken)(bgColor, 5)), {
borderColor: (0, _color.darken)(bgColor, 5) + ' ' + (0, _color.darken)(bgColor, 10) + ' ' + (0, _color.darken)(bgColor, 15),
boxShadow: '0 1px 0 rgba(0,0,0,0.1)',
color: textColor,
outline: 'none'
});
var focusStyles = _extends({}, (0, _css.gradientVertical)((0, _color.lighten)(bgColor, 10), (0, _color.darken)(bgColor, 5)), {
borderColor: (0, _color.darken)(bgColor, 5) + ' ' + (0, _color.darken)(bgColor, 10) + ' ' + (0, _color.darken)(bgColor, 15),
boxShadow: '0 0 0 3px ' + (0, _color.fade)(bgColor, 25),
color: textColor,
outline: 'none'
});
var activeStyles = {
backgroundColor: (0, _color.darken)(bgColor, 10),
backgroundImage: 'none',
borderColor: (0, _color.darken)(bgColor, 25) + ' ' + (0, _color.darken)(bgColor, 15) + ' ' + (0, _color.darken)(bgColor, 10),
boxShadow: 'inset 0 1px 2px rgba(0, 0, 0, 0.1)'
};
return {
base: _extends({}, (0, _css.gradientVertical)((0, _color.lighten)(bgColor, 5), (0, _color.darken)(bgColor, 10), bgColor), {
'borderColor': (0, _color.darken)(bgColor, 10) + ' ' + (0, _color.darken)(bgColor, 20) + ' ' + (0, _color.darken)(bgColor, 25),
'boxShadow': 'inset 0 1px 0 rgba(255, 255, 255, 0.1)',
'color': textColor,
'fontWeight': 400,
'textShadow': '0 -1px 0 rgba(0, 0, 0, 0.25)',
':hover': hoverStyles,
':focus': focusStyles,
':active': activeStyles
}),
active: activeStyles
};
}
// TODO: This is pretty hacky, needs to be consolidated with the Variant() method
// above (needs more theme variables to be implemented though)
function buttonFillDefault() {
var borderColor = _theme2.default.input.border.color.default;
var hoverStyles = _extends({}, (0, _css.gradientVertical)('#fff', '#eee'), {
borderColor: (0, _color.darken)(borderColor, 5) + ' ' + (0, _color.darken)(borderColor, 5) + ' ' + (0, _color.darken)(borderColor, 10),
boxShadow: '0 1px 0 rgba(0,0,0,0.1)',
color: _theme2.default.color.text
});
var focusStyles = {
borderColor: _theme2.default.color.primary,
boxShadow: '0 0 0 3px ' + (0, _color.fade)(_theme2.default.color.primary, 10),
color: _theme2.default.color.text,
outline: 'none'
};
var activeStyles = {
background: '#e6e6e6',
borderColor: (0, _color.darken)(borderColor, 10),
boxShadow: 'inset 0 1px 2px rgba(0, 0, 0, 0.1)',
color: _theme2.default.color.text
};
return {
base: _extends({}, (0, _css.gradientVertical)('#fafafa', '#eaeaea'), {
'borderColor': borderColor + ' ' + (0, _color.darken)(borderColor, 6) + ' ' + (0, _color.darken)(borderColor, 12),
'color': _theme2.default.color.text,
'textShadow': '0 1px 0 white',
':hover': hoverStyles,
':focus': focusStyles,
':active': activeStyles
}),
// gross hack
active: _extends({}, activeStyles, {
':hover': activeStyles,
':focus': _extends({}, activeStyles, focusStyles, {
boxShadow: '0 0 0 3px ' + (0, _color.fade)(_theme2.default.color.primary, 10) + ', inset 0 1px 2px rgba(0, 0, 0, 0.1)'
}),
':active': activeStyles
})
};
}
exports.fill = function (color) {
switch (color) {
case 'default':
return buttonFillDefault();
case 'cancel':
case 'delete':
return buttonFillVariant('white', _theme2.default.button.danger.bgColor);
default:
return buttonFillVariant('white', _theme2.default.button[color].bgColor);
}
};
// Hollow Variant
// ----------------
function buttonHollowVariant(textColor, borderColor) {
var focusAndHoverStyles = {
backgroundImage: 'none',
backgroundColor: (0, _color.fade)(borderColor, 15),
borderColor: (0, _color.darken)(borderColor, 15),
boxShadow: 'none',
color: textColor,
outline: 'none'
};
var focusOnlyStyles = {
boxShadow: '0 0 0 3px ' + (0, _color.fade)(borderColor, 10)
};
var activeStyles = {
backgroundColor: (0, _color.fade)(borderColor, 35),
borderColor: (0, _color.darken)(borderColor, 25),
boxShadow: 'none'
};
return {
base: {
'background': 'none',
'borderColor': borderColor,
'color': textColor,
':hover': focusAndHoverStyles,
':focus ': _extends({}, focusAndHoverStyles, focusOnlyStyles),
':active': activeStyles
},
active: activeStyles
};
};
exports.hollow = function (color) {
// TODO: better handling of cancel and delete colors
if (color === 'cancel' || color === 'delete') color = 'danger';
return buttonHollowVariant(_theme2.default.button[color].bgColor, _theme2.default.button[color].borderColor);
};
// Link Variant
// ----------------
function buttonLinkVariant(textColor, hoverColor) {
var hoverStyles = {
color: hoverColor,
textDecoration: 'underline'
};
return {
base: {
'background': 'none',
'border': 0,
'boxShadow': 'none',
'color': textColor,
'fontWeight': 'normal',
'outline': 'none',
':hover': hoverStyles,
':focus': hoverStyles,
':active': hoverStyles
},
active: hoverStyles
};
};
function buttonLinkDelete() {
var styles = buttonLinkVariant(_theme2.default.color.gray40, _theme2.default.color.danger);
var hoverStyles = _extends({}, (0, _css.gradientVertical)((0, _color.lighten)(_theme2.default.color.danger, 10), (0, _color.darken)(_theme2.default.color.danger, 10)), {
backgroundColor: _theme2.default.color.danger,
borderColor: (0, _color.darken)(_theme2.default.color.danger, 4) + ' ' + (0, _color.darken)(_theme2.default.color.danger, 8) + ' ' + (0, _color.darken)(_theme2.default.color.danger, 12),
boxShadow: '0 1px 0 rgba(0,0,0,0.1)',
color: 'white',
textDecoration: 'none'
});
var activeStyles = {
backgroundColor: (0, _color.darken)(_theme2.default.color.danger, 4),
backgroundImage: 'none',
borderColor: (0, _color.darken)(_theme2.default.color.danger, 12) + ' ' + (0, _color.darken)(_theme2.default.color.danger, 8) + ' ' + (0, _color.darken)(_theme2.default.color.danger, 8),
boxShadow: 'inset 0 1px 2px rgba(0, 0, 0, 0.1)',
color: 'white'
};
return {
base: _extends({}, styles.base, {
':hover': hoverStyles,
':focus': hoverStyles,
':active': activeStyles
}),
active: activeStyles
};
}
exports.link = function (color) {
switch (color) {
case 'default':
return buttonLinkVariant(_theme2.default.color.link, _theme2.default.color.linkHover);
case 'cancel':
return buttonLinkVariant(_theme2.default.color.gray40, _theme2.default.color.danger);
case 'delete':
return buttonLinkDelete();
default:
return buttonLinkVariant(_theme2.default.color[color], _theme2.default.color[color]);
}
};
},{"../../../theme":79,"../../../utils/color":82,"../../../utils/css":84}],7:[function(require,module,exports){
'use strict';
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _noImportant = require('aphrodite/no-important');
var _styles = require('./styles');
var _styles2 = _interopRequireDefault(_styles);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
var classes = _noImportant.StyleSheet.create(_styles2.default);
function Center(_ref) {
var className = _ref.className,
Component = _ref.component,
height = _ref.height,
style = _ref.style,
props = _objectWithoutProperties(_ref, ['className', 'component', 'height', 'style']);
props.className = (0, _noImportant.css)(classes.center, className);
props.style = _extends({ height: height }, style);
return _react2.default.createElement(Component, props);
};
Center.propTypes = {
component: _react.PropTypes.oneOfType([_react.PropTypes.func, _react.PropTypes.string]),
height: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.string])
};
Center.defaultProps = {
component: 'div',
height: 'auto'
};
module.exports = Center;
},{"./styles":8,"aphrodite/no-important":undefined,"react":undefined}],8:[function(require,module,exports){
'use strict';
// ==============================
// Center
// ==============================
module.exports = {
center: {
display: 'flex',
alignItems: 'center',
justifyContent: 'center'
}
};
},{}],9:[function(require,module,exports){
'use strict';
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _theme = require('../../../theme');
var _theme2 = _interopRequireDefault(_theme);
var _color = require('../../../utils/color');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var baseColors = {};
['danger', 'info', 'primary', 'success', 'warning'].forEach(function (color) {
baseColors[color] = {
background: (0, _color.fade)(_theme2.default.color[color], 10),
backgroundActive: (0, _color.fade)(_theme2.default.color[color], 20),
backgroundHover: (0, _color.fade)(_theme2.default.color[color], 15),
text: _theme2.default.color[color]
};
});
var invertedColors = {};
['danger', 'info', 'primary', 'success', 'warning'].forEach(function (color) {
invertedColors[color + '__inverted'] = {
background: _theme2.default.color[color],
backgroundActive: (0, _color.lighten)(_theme2.default.color[color], 5),
backgroundHover: (0, _color.lighten)(_theme2.default.color[color], 15),
text: 'white'
};
});
module.exports = _extends({
default: {
background: _theme2.default.color.gray10,
backgroundActive: _theme2.default.color.gray20,
backgroundHover: _theme2.default.color.gray15,
text: _theme2.default.color.gray60
}
}, baseColors, {
// inverted
default__inverted: {
background: _theme2.default.color.gray60,
backgroundActive: (0, _color.lighten)(_theme2.default.color.gray60, 5),
backgroundHover: (0, _color.lighten)(_theme2.default.color.gray60, 15),
text: 'white'
}
}, invertedColors);
},{"../../../theme":79,"../../../utils/color":82}],10:[function(require,module,exports){
'use strict';
var _noImportant = require('aphrodite/no-important');
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _styles = require('./styles');
var _styles2 = _interopRequireDefault(_styles);
var _colors = require('./colors');
var _colors2 = _interopRequireDefault(_colors);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
var classes = _noImportant.StyleSheet.create(_styles2.default);
function Chip(_ref) {
var className = _ref.className,
children = _ref.children,
color = _ref.color,
inverted = _ref.inverted,
label = _ref.label,
onClear = _ref.onClear,
onClick = _ref.onClick,
props = _objectWithoutProperties(_ref, ['className', 'children', 'color', 'inverted', 'label', 'onClear', 'onClick']);
props.className = (0, _noImportant.css)(classes.chip, className);
var labelClassName = (0, _noImportant.css)(classes.button, classes.label, classes['button__' + color + (inverted ? '__inverted' : '')]);
var clearClassName = (0, _noImportant.css)(classes.button, classes.clear, classes['button__' + color + (inverted ? '__inverted' : '')]);
return _react2.default.createElement(
'div',
props,
_react2.default.createElement(
'button',
{ type: 'button', onClick: onClick, className: labelClassName },
label,
children
),
!!onClear && _react2.default.createElement(
'button',
{ type: 'button', onClick: onClear, className: clearClassName },
'\xD7'
)
);
};
Chip.propTypes = {
color: _react.PropTypes.oneOf(Object.keys(_colors2.default)).isRequired,
inverted: _react.PropTypes.bool,
label: _react2.default.PropTypes.string.isRequired,
onClear: _react2.default.PropTypes.func,
onClick: _react2.default.PropTypes.func
};
Chip.defaultProps = {
color: 'default'
};
module.exports = Chip;
},{"./colors":9,"./styles":11,"aphrodite/no-important":undefined,"react":undefined}],11:[function(require,module,exports){
'use strict';
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; // ==============================
// Alert
// ==============================
/* eslint quote-props: ["error", "as-needed"] */
var _colors = require('./colors');
var _colors2 = _interopRequireDefault(_colors);
var _theme = require('../../../theme');
var _theme2 = _interopRequireDefault(_theme);
var _css = require('../../../utils/css');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Prepare variants
var colorVariants = {};
Object.keys(_colors2.default).forEach(function (color) {
var hoverStyles = {
backgroundColor: _colors2.default[color].backgroundHover
};
colorVariants['button__' + color] = {
backgroundColor: _colors2.default[color].background,
color: _colors2.default[color].text,
':hover': hoverStyles,
':focus': hoverStyles,
':active': {
backgroundColor: _colors2.default[color].backgroundActive
}
};
});
module.exports = _extends({
chip: {
display: 'inline-block',
fontSize: _theme2.default.font.size.small,
fontWeight: 500,
marginRight: '0.5em',
overflow: 'hidden',
lineHeight: '2.2em'
},
// tagnames
button: {
appearance: 'none',
background: 'none',
border: 'none',
cursor: 'pointer',
display: 'block',
float: 'left',
padding: '0 .9em',
outline: 'none',
// make pills - exaggerate the padding toward the radii so it looks even
':first-child': _extends({}, (0, _css.borderLeftRadius)('3em'), {
paddingLeft: '1.1em'
}),
':last-child': _extends({}, (0, _css.borderRightRadius)('3em'), {
paddingRight: '1.1em'
})
},
// provide separation between the label and clear buttons
// floating stops the margins from collapsing into eaching
label: { marginRight: 1 },
clear: { marginLeft: 1 }
}, colorVariants);
},{"../../../theme":79,"../../../utils/css":84,"./colors":9}],12:[function(require,module,exports){
'use strict';
var _noImportant = require('aphrodite/no-important');
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _styles = require('./styles');
var _styles2 = _interopRequireDefault(_styles);
var _sizes = require('./sizes');
var _sizes2 = _interopRequireDefault(_sizes);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
var classes = _noImportant.StyleSheet.create(_styles2.default);
function Container(_ref) {
var className = _ref.className,
clearFloatingChildren = _ref.clearFloatingChildren,
Component = _ref.component,
width = _ref.width,
props = _objectWithoutProperties(_ref, ['className', 'clearFloatingChildren', 'component', 'width']);
props.className = (0, _noImportant.css)(classes.container, classes[width], clearFloatingChildren ? classes.clearfix : null, className);
return _react2.default.createElement(Component, props);
};
Container.propTypes = {
clearFloatingChildren: _react.PropTypes.bool,
component: _react.PropTypes.oneOfType([_react.PropTypes.func, _react.PropTypes.string]).isRequired,
width: _react.PropTypes.oneOf(Object.keys(_sizes2.default)).isRequired
};
Container.defaultProps = {
component: 'div',
width: 'large'
};
module.exports = Container;
},{"./sizes":13,"./styles":14,"aphrodite/no-important":undefined,"react":undefined}],13:[function(require,module,exports){
'use strict';
var _theme = require('../../../theme');
var _theme2 = _interopRequireDefault(_theme);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
module.exports = {
small: _theme2.default.container.size.small,
medium: _theme2.default.container.size.medium,
large: _theme2.default.container.size.large
};
},{"../../../theme":79}],14:[function(require,module,exports){
'use strict';
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; // ==============================
// Container
// ==============================
/* eslint quote-props: ["error", "as-needed"] */
var _sizes = require('./sizes');
var _sizes2 = _interopRequireDefault(_sizes);
var _theme = require('../../../theme');
var _theme2 = _interopRequireDefault(_theme);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Prepare sizes
var sizeVariants = {};
Object.keys(_sizes2.default).forEach(function (size) {
sizeVariants[size] = {
maxWidth: _sizes2.default[size]
};
});
/*
Micro clearfix hack
1. The space content is one way to avoid an Opera bug when the
contenteditable attribute is included anywhere else in the document.
Otherwise it causes space to appear at the top and bottom of elements
that are clearfixed.
2. The use of `table` rather than `block` is only necessary if using
`:before` to contain the top-margins of child elements.
*/
var clearfixStyles = {
clear: 'both',
content: '" "', // 1
display: 'table' };
module.exports = _extends({
container: {
marginLeft: 'auto',
marginRight: 'auto',
paddingLeft: _theme2.default.container.gutter,
paddingRight: _theme2.default.container.gutter
},
// clear floating children
clearfix: {
':before': clearfixStyles,
':after': clearfixStyles
}
}, sizeVariants);
},{"../../../theme":79,"./sizes":13}],15:[function(require,module,exports){
'use strict';
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _noImportant = require('aphrodite/no-important');
var _Button = require('../Button');
var _Button2 = _interopRequireDefault(_Button);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } /* eslint quote-props: ["error", "as-needed"] */
function DropdownButton(_ref) {
var children = _ref.children,
props = _objectWithoutProperties(_ref, ['children']);
return _react2.default.createElement(
_Button2.default,
props,
children,
_react2.default.createElement('span', { className: (0, _noImportant.css)(classes.arrow) })
);
};
// NOTE
// 1: take advantage of `currentColor` by leaving border top color undefined
// 2: even though the arrow is vertically centered, visually it appears too low
// because of lowercase characters beside it
var classes = _noImportant.StyleSheet.create({
arrow: {
borderLeft: '0.3em solid transparent',
borderRight: '0.3em solid transparent',
borderTop: '0.3em solid', // 1
display: 'inline-block',
height: 0,
marginTop: '-0.125em', // 2
verticalAlign: 'middle',
width: 0,
// add spacing
':first-child': {
marginRight: '0.5em'
},
':last-child': {
marginLeft: '0.5em'
}
}
});
module.exports = DropdownButton;
},{"../Button":5,"aphrodite/no-important":undefined,"react":undefined}],16:[function(require,module,exports){
'use strict';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _noImportant = require('aphrodite/no-important');
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _styles = require('./styles');
var _styles2 = _interopRequireDefault(_styles);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var classes = _noImportant.StyleSheet.create(_styles2.default);
var Form = function (_Component) {
_inherits(Form, _Component);
function Form() {
_classCallCheck(this, Form);
return _possibleConstructorReturn(this, (Form.__proto__ || Object.getPrototypeOf(Form)).apply(this, arguments));
}
_createClass(Form, [{
key: 'getChildContext',
value: function getChildContext() {
return {
formLayout: this.props.layout,
labelWidth: this.props.labelWidth
};
}
}, {
key: 'render',
value: function render() {
// NOTE `labelWidth` is declared to remove it from `props`, though never used
var _props = this.props,
className = _props.className,
Component = _props.component,
labelWidth = _props.labelWidth,
layout = _props.layout,
props = _objectWithoutProperties(_props, ['className', 'component', 'labelWidth', 'layout']);
props.className = (0, _noImportant.css)(classes.Form, classes['Form__' + layout], className);
return _react2.default.createElement(Component, props);
}
}]);
return Form;
}(_react.Component);
;
Form.childContextTypes = {
formLayout: _react.PropTypes.oneOf(['basic', 'horizontal', 'inline']),
labelWidth: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.string])
};
Form.propTypes = {
children: _react.PropTypes.node.isRequired,
component: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.func]),
layout: _react.PropTypes.oneOf(['basic', 'horizontal', 'inline'])
};
Form.defaultProps = {
component: 'form',
layout: 'basic'
};
module.exports = Form;
},{"./styles":17,"aphrodite/no-important":undefined,"react":undefined}],17:[function(require,module,exports){
"use strict";
// ==============================
// Form
// ==============================
module.exports = {
Form: {}
};
},{}],18:[function(require,module,exports){
'use strict';
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _noImportant = require('aphrodite/no-important');
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _styles = require('./styles');
var _styles2 = _interopRequireDefault(_styles);
var _FormLabel = require('../FormLabel');
var _FormLabel2 = _interopRequireDefault(_FormLabel);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var classes = _noImportant.StyleSheet.create(_styles2.default);
var FormField = function (_Component) {
_inherits(FormField, _Component);
function FormField() {
_classCallCheck(this, FormField);
var _this = _possibleConstructorReturn(this, (FormField.__proto__ || Object.getPrototypeOf(FormField)).call(this));
_this.formFieldId = generateId();
return _this;
}
_createClass(FormField, [{
key: 'getChildContext',
value: function getChildContext() {
return {
formFieldId: this.formFieldId
};
}
}, {
key: 'render',
value: function render() {
var _context = this.context,
_context$formLayout = _context.formLayout,
formLayout = _context$formLayout === undefined ? 'basic' : _context$formLayout,
labelWidth = _context.labelWidth;
var _props = this.props,
aphroditeStyles = _props.aphroditeStyles,
children = _props.children,
className = _props.className,
cropLabel = _props.cropLabel,
htmlFor = _props.htmlFor,
label = _props.label,
offsetAbsentLabel = _props.offsetAbsentLabel,
props = _objectWithoutProperties(_props, ['aphroditeStyles', 'children', 'className', 'cropLabel', 'htmlFor', 'label', 'offsetAbsentLabel']);
props.className = (0, _noImportant.css)(classes.FormField, classes['FormField--form-layout-' + formLayout], offsetAbsentLabel ? classes['FormField--offset-absent-label'] : null, aphroditeStyles);
if (className) {
props.className += ' ' + className;
}
if (offsetAbsentLabel && labelWidth) {
props.style = _extends({
paddingLeft: labelWidth
}, props.style);
}
// elements
var componentLabel = label ? _react2.default.createElement(
_FormLabel2.default,
{ htmlFor: htmlFor, cropText: cropLabel },
label
) : null;
return _react2.default.createElement(
'div',
_extends({}, props, { htmlFor: htmlFor }),
componentLabel,
children
);
}
}]);
return FormField;
}(_react.Component);
;
var stylesShape = {
_definition: _react.PropTypes.object,
_name: _react.PropTypes.string
};
FormField.contextTypes = {
formLayout: _react.PropTypes.oneOf(['basic', 'horizontal', 'inline']),
labelWidth: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.string])
};
FormField.childContextTypes = {
formFieldId: _react.PropTypes.string
};
FormField.propTypes = {
aphroditeStyles: _react.PropTypes.oneOfType([_react.PropTypes.arrayOf(_react.PropTypes.shape(stylesShape)), _react.PropTypes.shape(stylesShape)]),
children: _react.PropTypes.node,
cropLabel: _react.PropTypes.bool,
htmlFor: _react2.default.PropTypes.string,
label: _react2.default.PropTypes.string,
offsetAbsentLabel: _react2.default.PropTypes.bool
};
function generateId() {
return Math.random().toString(36).substr(2, 9);
};
module.exports = FormField;
},{"../FormLabel":23,"./styles":19,"aphrodite/no-important":undefined,"react":undefined}],19:[function(require,module,exports){
'use strict';
var _theme = require('../../../theme');
var _theme2 = _interopRequireDefault(_theme);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } // ==============================
// Form Field
// ==============================
module.exports = {
'FormField': {
marginBottom: '1em',
position: 'relative'
},
// when inside a horizontal form
'FormField--form-layout-horizontal': _defineProperty({}, '@media (min-width: ' + _theme2.default.breakpoint.tabletLandscapeMin + ')', {
display: 'table',
tableLayout: 'fixed',
width: '100%'
}),
// inside horizontal form
// typically for use with submit button inside
'FormField--offset-absent-label': {
paddingLeft: _theme2.default.form.label.width
},
// when inside an inline form
'FormField--form-layout-inline': {
'display': 'inline-block',
'paddingLeft': '0.25em',
'paddingRight': '0.25em',
'verticalAlign': 'top',
':first-child': { paddingLeft: 0 },
':last-child': { paddingRight: 0 }
}
};
},{"../../../theme":79}],20:[function(require,module,exports){
'use strict';
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _noImportant = require('aphrodite/no-important');
var _styles = require('./styles');
var _styles2 = _interopRequireDefault(_styles);
var _concatClassnames = require('../../../utils/concatClassnames');
var _concatClassnames2 = _interopRequireDefault(_concatClassnames);
var _noedit = require('./noedit');
var _noedit2 = _interopRequireDefault(_noedit);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var classes = _noImportant.StyleSheet.create(_styles2.default);
// NOTE must NOT be functional component to allow `refs`
var FormInput = function (_Component) {
_inherits(FormInput, _Component);
function FormInput() {
_classCallCheck(this, FormInput);
return _possibleConstructorReturn(this, (FormInput.__proto__ || Object.getPrototypeOf(FormInput)).apply(this, arguments));
}
_createClass(FormInput, [{
key: 'blur',
value: function blur() {
this.target.blur();
}
}, {
key: 'focus',
value: function focus() {
this.target.focus();
}
}, {
key: 'render',
value: function render() {
var _this2 = this;
var _props = this.props,
aphroditeStyles = _props.aphroditeStyles,
className = _props.className,
disabled = _props.disabled,
id = _props.id,
multiline = _props.multiline,
noedit = _props.noedit,
size = _props.size,
props = _objectWithoutProperties(_props, ['aphroditeStyles', 'className', 'disabled', 'id', 'multiline', 'noedit', 'size']);
// NOTE return a different component for `noedit`
if (noedit) return _react2.default.createElement(_noedit2.default, this.props);
var _context = this.context,
formFieldId = _context.formFieldId,
formLayout = _context.formLayout;
props.id = id || formFieldId;
props.className = _noImportant.css.apply(undefined, [classes.FormInput, classes['FormInput__size--' + size], disabled ? classes['FormInput--disabled'] : null, formLayout ? classes['FormInput--form-layout-' + formLayout] : null].concat(_toConsumableArray((0, _concatClassnames2.default)(aphroditeStyles))));
if (className) {
props.className += ' ' + className;
}
var setRef = function setRef(n) {
return _this2.target = n;
};
var Tag = multiline ? 'textarea' : 'input';
return _react2.default.createElement(Tag, _extends({
ref: setRef,
disabled: props.disabled
}, props));
}
}]);
return FormInput;
}(_react.Component);
;
var stylesShape = {
_definition: _react.PropTypes.object,
_name: _react.PropTypes.string
};
FormInput.propTypes = {
aphroditeStyles: _react.PropTypes.oneOfType([_react.PropTypes.arrayOf(_react.PropTypes.shape(stylesShape)), _react.PropTyp