UNPKG

backpack-ui

Version:
130 lines (99 loc) 3.66 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 _classnames = require("classnames"); var _classnames2 = _interopRequireDefault(_classnames); var _colors = require("../../styles/colors"); var _colors2 = _interopRequireDefault(_colors); var _timing = require("../../styles/timing"); var _timing2 = _interopRequireDefault(_timing); var _typography = require("../../styles/typography"); var _color = require("../../utils/color"); var _icon = require("../../utils/icon"); var _icon2 = _interopRequireDefault(_icon); var _mixins = require("../../utils/mixins"); var _propTypes3 = require("../../utils/propTypes"); var _propTypes4 = _interopRequireDefault(_propTypes3); var _createQAHook = require("../../utils/createQAHook"); var _createQAHook2 = _interopRequireDefault(_createQAHook); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var styles = { alignItems: "center", backgroundColor: _colors2.default.bgPrimary, border: 0, borderRadius: "50%", boxShadow: (0, _color.rgba)(_colors2.default.bgOverlay, 0.2) + " 0 " + 4 / _typography.fontSizeHeading5 + "em " + 16 / _typography.fontSizeHeading5 + "em", color: _colors2.default.textPrimary, cursor: "pointer", display: "inline-flex", fontSize: _typography.fontSizeHeading5 + "px", height: 54 / _typography.fontSizeHeading5 + "em", justifyContent: "center", lineHeight: 1, padding: 0, transition: "box-shadow " + _timing2.default.fast + " ease-in-out,\n transform " + _timing2.default.fast + " ease-in-out", width: 54 / _typography.fontSizeHeading5 + "em", WebkitTapHighlightColor: (0, _color.rgba)(_colors2.default.bgOverlay, 0.04), ":active": { boxShadow: (0, _color.rgba)(_colors2.default.bgOverlay, 0.2) + " 0 " + 4 / _typography.fontSizeHeading5 / 3 + "em " + 16 / _typography.fontSizeHeading5 / 2 + "em", transform: "translateY(1px)" }, ":focus": (0, _mixins.outline)(4) }; var iconProps = { style: { display: "block", marginLeft: "auto", marginRight: "auto" } }; var ListButton = function ListButton(_ref) { var onClick = _ref.onClick, icon = _ref.icon, label = _ref.label, owns = _ref.owns, id = _ref.id, className = _ref.className, style = _ref.style, qaHook = _ref.qaHook; return _react2.default.createElement( "button", { id: id, className: (0, _classnames2.default)("ListButton", className), style: [styles, style], onClick: onClick, title: label, "aria-label": label, "aria-owns": owns, "data-testid": qaHook ? (0, _createQAHook2.default)(label, (0, _classnames2.default)("ListButton", className), "btn") : null }, (0, _icon2.default)(icon, iconProps) ); }; ListButton.propTypes = { onClick: _propTypes2.default.func.isRequired, icon: _propTypes2.default.oneOf(["Bookmark", "BookmarkActive", "BookmarkAlt", "BookmarkAltActive", "Ellipsis", "Map"]).isRequired, label: _propTypes2.default.string, owns: _propTypes2.default.string, id: _propTypes2.default.string, className: _propTypes2.default.string, style: _propTypes4.default.style, qaHook: _propTypes2.default.bool }; ListButton.defaultProps = { label: null, owns: null, id: null, className: null, style: null, qaHook: false }; exports.default = (0, _radium2.default)(ListButton);