terra-card
Version:
Card is a basic container with some base styling to help seperate elements with different content
61 lines (60 loc) • 3.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _bind = _interopRequireDefault(require("classnames/bind"));
var _terraVisuallyHiddenText = _interopRequireDefault(require("terra-visually-hidden-text"));
var _terraThemeContext = _interopRequireDefault(require("terra-theme-context"));
var _CardModule = _interopRequireDefault(require("./Card.module.scss"));
var _CardBody = _interopRequireDefault(require("./CardBody"));
var _excluded = ["children", "variant", "visuallyHiddenText"];
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }
var cx = _bind.default.bind(_CardModule.default);
var CardVariants = {
DEFAULT: 'default',
RAISED: 'raised'
};
var propTypes = {
/**
* Child Nodes
*/
children: _propTypes.default.node,
/**
* Sets the card variant to change the style for different use cases. One of `default`, `raised`.
*/
variant: _propTypes.default.oneOf(['default', 'raised']),
/**
* Text that describes the badge to a screen reader. Use this
* if more information is needed to accurately describe
* this card to screen reader users.
*/
visuallyHiddenText: _propTypes.default.string
};
var defaultProps = {
variant: CardVariants.DEFAULT
};
var Card = function Card(_ref) {
var children = _ref.children,
variant = _ref.variant,
visuallyHiddenText = _ref.visuallyHiddenText,
customProps = _objectWithoutProperties(_ref, _excluded);
var theme = _react.default.useContext(_terraThemeContext.default);
var cardClassNames = (0, _classnames.default)(cx(['card', variant, theme.className]), customProps.className);
var visuallyHiddenTextContent = visuallyHiddenText ? /*#__PURE__*/_react.default.createElement(_terraVisuallyHiddenText.default, {
text: visuallyHiddenText
}) : null;
return /*#__PURE__*/_react.default.createElement("article", _extends({}, customProps, {
className: cardClassNames
}), visuallyHiddenTextContent, children);
};
Card.propTypes = propTypes;
Card.defaultProps = defaultProps;
Card.Body = _CardBody.default;
var _default = exports.default = Card;