backpack-ui
Version:
Lonely Planet's Components
143 lines (107 loc) • 2.49 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require("react");
var _react2 = _interopRequireDefault(_react);
var _propTypes = require("prop-types");
var _propTypes2 = _interopRequireDefault(_propTypes);
var _radium = require("radium");
var _radium2 = _interopRequireDefault(_radium);
var _colors = require("../../styles/colors");
var _colors2 = _interopRequireDefault(_colors);
var _color = require("../../utils/color");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var styles = {
base: {
lineHeight: 1
},
orientation: {
horizontal: {
marginRight: ".8rem"
},
vertical: {
marginBottom: ".8rem"
}
},
size: {
small: {
fontSize: "1.1rem"
}
},
type: {
full: {
display: "block",
width: "100%"
}
},
uppercase: {
color: "rgba(" + (0, _color.rgb)(_colors2.default.textPrimary) + ", .4)",
textTransform: "uppercase"
}
};
/**
* Form label component
*/
function Label(_ref) {
var owns = _ref.owns,
orientation = _ref.orientation,
size = _ref.size,
type = _ref.type,
uppercase = _ref.uppercase,
children = _ref.children;
var style = [styles.base];
if (orientation) {
style.push(styles.orientation[orientation]);
}
if (size) {
style.push(styles.size[size]);
}
if (type) {
style.push(styles.type[type]);
}
if (uppercase) {
style.push(styles.uppercase);
}
return _react2.default.createElement(
"label",
{
style: style,
htmlFor: owns
},
children
);
}
Label.propTypes = {
/**
* Content for label
*/
children: _propTypes2.default.node.isRequired,
/**
* ID of the input that the label owns/controls
*/
owns: _propTypes2.default.string.isRequired,
/**
* Whether or not the label is floated to the left (horizontal)
* or stacked (vertical)
*/
orientation: _propTypes2.default.oneOf(["horizontal", "vertical"]),
/**
* Controls the font size of the label
*/
size: _propTypes2.default.oneOf(["", "small"]),
/**
* Defines a type of label to apply specific styles
*/
type: _propTypes2.default.oneOf(["", "full"]),
uppercase: _propTypes2.default.bool
};
Label.defaultProps = {
owns: "",
orientation: "vertical",
size: "",
type: "",
uppercase: false
};
Label.styles = styles;
exports.default = (0, _radium2.default)(Label);