UNPKG

backpack-ui

Version:
143 lines (107 loc) 2.49 kB
"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);