UNPKG

@vtex/styleguide

Version:

> VTEX Styleguide React components ([Docs](https://vtex.github.io/styleguide))

106 lines (91 loc) 3.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IconSize = exports.ButtonSize = exports.ButtonVariation = undefined; var _react = require("react"); var _react2 = _interopRequireDefault(_react); var _classnames = require("classnames"); var _classnames2 = _interopRequireDefault(_classnames); var _index = require("../../ButtonWithIcon/index.js"); var _index2 = _interopRequireDefault(_index); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var ICON_OPTICAL_COMPENSATION = { marginTop: 1.5 }; var Button = (0, _react.forwardRef)(function (_ref, ref) { var id = _ref.id, title = _ref.title, disabled = _ref.disabled, onClick = _ref.onClick, icon = _ref.icon, isLoading = _ref.isLoading, children = _ref.children, label = _ref.label, variation = _ref.variation, isActiveOfGroup = _ref.isActiveOfGroup, isGrouped = _ref.isGrouped, isFirstOfGroup = _ref.isFirstOfGroup, size = _ref.size, testId = _ref.testId; var isTertiary = variation === ButtonVariation.Tertiary; var iconClass = (0, _classnames2.default)('mh2', { 'c-on-base': isTertiary && !disabled, 'c-muted-2': disabled }); var labelClass = (0, _classnames2.default)({ 'c-on-base': isTertiary && !disabled, 'c-muted-2': disabled }); return _react2.default.createElement("div", { id: id + "__container", "data-testid": testId + "__container", title: title, ref: ref, className: (0, _classnames2.default)('relative', { mh2: isTertiary }) }, _react2.default.createElement(_index2.default, { icon: _react2.default.createElement("span", { className: iconClass, style: ICON_OPTICAL_COMPENSATION }, icon), testId: testId, isGrouped: isGrouped, isFirstOfGroup: isFirstOfGroup, isActiveOfGroup: isActiveOfGroup, disabled: disabled, isLoading: isLoading, variation: variation, size: size, onClick: onClick }, label && _react2.default.createElement("span", { className: labelClass }, label)), children); }); var ButtonVariation = exports.ButtonVariation = undefined; (function (ButtonVariation) { ButtonVariation["Primary"] = "primary"; ButtonVariation["Secondary"] = "secondary"; ButtonVariation["Tertiary"] = "tertiary"; })(ButtonVariation || (exports.ButtonVariation = ButtonVariation = {})); var ButtonSize = exports.ButtonSize = undefined; (function (ButtonSize) { ButtonSize["Small"] = "small"; ButtonSize["Regular"] = "regular"; ButtonSize["Large"] = "large"; })(ButtonSize || (exports.ButtonSize = ButtonSize = {})); var IconSize = exports.IconSize = undefined; (function (IconSize) { IconSize[IconSize["Heavy"] = 13] = "Heavy"; IconSize[IconSize["Medium"] = 14] = "Medium"; IconSize[IconSize["Light"] = 16] = "Light"; })(IconSize || (exports.IconSize = IconSize = {})); Button.defaultProps = { variation: ButtonVariation.Tertiary, isActiveOfGroup: false, isGrouped: false, isFirstOfGroup: false, size: ButtonSize.Small }; exports.default = Button;