UNPKG

2.5 kBJavaScriptView Raw
1import _extends from "@babel/runtime/helpers/esm/extends";
2import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3var _excluded = ["bsPrefix", "className", "bg", "text", "border", "body", "children", "as"];
4import classNames from 'classnames';
5import React, { useMemo } from 'react';
6import { useBootstrapPrefix } from './ThemeProvider';
7import createWithBsPrefix from './createWithBsPrefix';
8import divWithClassName from './divWithClassName';
9import CardContext from './CardContext';
10import CardImg from './CardImg';
11var DivStyledAsH5 = divWithClassName('h5');
12var DivStyledAsH6 = divWithClassName('h6');
13var CardBody = createWithBsPrefix('card-body');
14var CardTitle = createWithBsPrefix('card-title', {
15 Component: DivStyledAsH5
16});
17var CardSubtitle = createWithBsPrefix('card-subtitle', {
18 Component: DivStyledAsH6
19});
20var CardLink = createWithBsPrefix('card-link', {
21 Component: 'a'
22});
23var CardText = createWithBsPrefix('card-text', {
24 Component: 'p'
25});
26var CardHeader = createWithBsPrefix('card-header');
27var CardFooter = createWithBsPrefix('card-footer');
28var CardImgOverlay = createWithBsPrefix('card-img-overlay');
29var defaultProps = {
30 body: false
31};
32var Card = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
33 var bsPrefix = _ref.bsPrefix,
34 className = _ref.className,
35 bg = _ref.bg,
36 text = _ref.text,
37 border = _ref.border,
38 body = _ref.body,
39 children = _ref.children,
40 _ref$as = _ref.as,
41 Component = _ref$as === void 0 ? 'div' : _ref$as,
42 props = _objectWithoutPropertiesLoose(_ref, _excluded);
43
44 var prefix = useBootstrapPrefix(bsPrefix, 'card');
45 var cardContext = useMemo(function () {
46 return {
47 cardHeaderBsPrefix: prefix + "-header"
48 };
49 }, [prefix]);
50 return /*#__PURE__*/React.createElement(CardContext.Provider, {
51 value: cardContext
52 }, /*#__PURE__*/React.createElement(Component, _extends({
53 ref: ref
54 }, props, {
55 className: classNames(className, prefix, bg && "bg-" + bg, text && "text-" + text, border && "border-" + border)
56 }), body ?
57 /*#__PURE__*/
58 // @ts-ignore
59 React.createElement(CardBody, null, children) : children));
60});
61Card.displayName = 'Card';
62Card.defaultProps = defaultProps;
63Card.Img = CardImg;
64Card.Title = CardTitle;
65Card.Subtitle = CardSubtitle;
66Card.Body = CardBody;
67Card.Link = CardLink;
68Card.Text = CardText;
69Card.Header = CardHeader;
70Card.Footer = CardFooter;
71Card.ImgOverlay = CardImgOverlay;
72export default Card;
\No newline at end of file