UNPKG

@mskcc/carbon-react

Version:

Carbon react components for the MSKCC DSM

124 lines (116 loc) 4.3 kB
/** * MSKCC 2021, 2024 */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js'); var PropTypes = require('prop-types'); var React = require('react'); var Button = require('../Button/Button.js'); require('../Button/Button.Skeleton.js'); var cx = require('classnames'); require('../Tooltip/DefinitionTooltip.js'); var Tooltip = require('../Tooltip/Tooltip.js'); 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 IconButton = /*#__PURE__*/React.forwardRef(function IconButton(_ref, ref) { let { align, children, className, closeOnActivation = true, defaultOpen = false, disabled, enterDelayMs = 100, kind, label, leaveDelayMs = 100, wrapperClasses, size, disableTooltip = false, ...rest } = _ref; const prefix = usePrefix.usePrefix(); const tooltipClasses = cx__default["default"](wrapperClasses, `${prefix}--icon-tooltip`, { [`${prefix}--icon-tooltip--disabled`]: disabled }); return /*#__PURE__*/React__default["default"].createElement(Tooltip.Tooltip, { align: align, closeOnActivation: closeOnActivation, className: tooltipClasses, defaultOpen: defaultOpen, enterDelayMs: enterDelayMs, label: label, leaveDelayMs: leaveDelayMs, disabled: disableTooltip }, /*#__PURE__*/React__default["default"].createElement(Button["default"], _rollupPluginBabelHelpers["extends"]({}, rest, { disabled: disabled, kind: kind, ref: ref, size: size, className: cx__default["default"](`msk-btn--icon-only`, className) }), /*#__PURE__*/React__default["default"].createElement("span", { className: "msk-icon msk-btn--icon" }, children))); }); IconButton.propTypes = { /** * Specify how the trigger should align with the tooltip */ align: PropTypes__default["default"].oneOf(['top', 'top-left', 'top-right', 'bottom', 'bottom-left', 'bottom-right', 'left', 'right']), /** * Provide an icon or asset to be rendered inside of the IconButton */ children: PropTypes__default["default"].node, /** * Specify an optional className to be added to your Button */ className: PropTypes__default["default"].string, /** * Determines whether the tooltip should close when inner content is activated (click, Enter or Space) */ closeOnActivation: PropTypes__default["default"].bool, /** * Specify whether the tooltip should be open when it first renders */ defaultOpen: PropTypes__default["default"].bool, /** * Specify whether the tooltip should be disabled */ disableTooltip: PropTypes__default["default"].bool, /** * Specify whether the Button should be disabled, or not */ disabled: PropTypes__default["default"].bool, /** * Specify the duration in milliseconds to delay before displaying the tooltip */ enterDelayMs: PropTypes__default["default"].number, /** * Specify the type of button to be used as the base for the IconButton */ kind: PropTypes__default["default"].oneOf(['primary', 'secondary', 'danger', 'ghost', 'danger--primary', 'danger--ghost', 'danger--tertiary', 'tertiary']), /** * Provide the label to be rendered inside of the Tooltip. The label will use * `aria-labelledby` and will fully describe the child node that is provided. * This means that if you have text in the child node it will not be * announced to the screen reader. */ label: PropTypes__default["default"].node.isRequired, /** * Specify the duration in milliseconds to delay before hiding the tooltip */ leaveDelayMs: PropTypes__default["default"].number, /** * Specify the size of the Button. Defaults to `md`. */ size: PropTypes__default["default"].oneOf(['sm', 'md', 'lg']), /** * Specify an optional className to be added to your Tooltip wrapper */ wrapperClasses: PropTypes__default["default"].string }; exports.IconButton = IconButton;