@mskcc/carbon-react
Version:
Carbon react components for the MSKCC DSM
75 lines (66 loc) • 2.39 kB
JavaScript
/**
* MSKCC 2021, 2024
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
var PropTypes = require('prop-types');
var React = require('react');
var cx = require('classnames');
var usePrefix = require('../../internal/usePrefix.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
const ButtonSkeleton = _ref => {
let {
className,
small = false,
href,
size = 'lg',
...rest
} = _ref;
const prefix = usePrefix.usePrefix();
const buttonClasses = cx__default["default"](className, {
[`${prefix}--skeleton`]: true,
[`${prefix}--btn`]: true,
[`${prefix}--btn--sm`]: small || size === 'sm',
[`${prefix}--btn--md`]: size === 'md',
[`${prefix}--btn--lg`]: size === 'lg'
});
const commonProps = {
className: buttonClasses,
...rest
};
const button = /*#__PURE__*/React__default["default"].createElement("div", commonProps);
const anchor = /*#__PURE__*/React__default["default"].createElement("a", _rollupPluginBabelHelpers["extends"]({}, commonProps, {
href: href,
role: "button"
})); // eslint-disable-line
return href ? anchor : button;
};
ButtonSkeleton.propTypes = {
/**
* Specify an optional className to add.
*/
className: PropTypes__default["default"].string,
/**
* Optionally specify an href for your Button to become an `<a>` element
*/
href: PropTypes__default["default"].string,
/**
* Specify the size of the button, from a list of available sizes.
* For `default` buttons, this prop can remain unspecified or use `default`.
* In the next major release of Carbon, `default`, `field`, and `small` will be removed
*/
size: PropTypes__default["default"].oneOf(['sm', 'md', 'lg']),
/**
* @deprecated This property will be removed in the next major Carbon version,
* use size={sm} instead.
*
* Specify whether the Button should be a small variant
*/
small: PropTypes__default["default"].bool
};
exports.ButtonSkeleton = ButtonSkeleton;
exports["default"] = ButtonSkeleton;