UNPKG

@magaya/react-components

Version:
61 lines (60 loc) 2.32 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports.Button = void 0; var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _Spinner = require("../Spinner"); var _Icon = require("../Icon"); var _excluded = ["variant", "size", "loading", "icon", "children", "className"]; /** * Primary UI component for user interaction */ var Button = function Button(_ref) { var variant = _ref.variant, size = _ref.size, loading = _ref.loading, icon = _ref.icon, children = _ref.children, className = _ref.className, props = (0, _objectWithoutProperties2["default"])(_ref, _excluded); var variantProps = { primary: 'solid k-primary', secondary: 'secondary', quiet: 'flat', outline: 'outline k-primary' }; var sizeProps = { "default": '', large: 'btn-lg', small: 'btn-sm' }; var cssStyle = children ? { paddingLeft: '1.5rem', paddingRight: '1.5rem' } : {}; return /*#__PURE__*/_react["default"].createElement("button", Object.assign({ type: "button", className: "k-button k-button-".concat(variantProps[variant], " ").concat(sizeProps[size], " ").concat(className || '').trim(), style: cssStyle }, props), loading ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, icon ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Spinner.Spinner, null), children) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", { style: { visibility: 'hidden' } }, children), /*#__PURE__*/_react["default"].createElement(_Spinner.Spinner, { style: { position: 'absolute' } }))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, icon && /*#__PURE__*/_react["default"].createElement(_Icon.Icon, { name: icon }), children)); }; exports.Button = Button; Button.defaultProps = { variant: 'primary', size: 'default', loading: false, disabled: false };