@brightleaf/elements
Version:
React UI elements styled with Bulma CSS
170 lines (138 loc) • 5.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Card = exports.CardBody = exports.CardImageContainer = exports.CardImage = exports.CardFooter = exports.CardFooterItem = exports.CardHeader = exports.CardHeaderIcon = void 0;
var _react = _interopRequireDefault(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _modifiers = require("../modifiers");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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 = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
var CardHeaderIcon = function CardHeaderIcon(_ref) {
var children = _ref.children,
onClick = _ref.onClick,
props = _objectWithoutProperties(_ref, ["children", "onClick"]);
return _react.default.createElement("a", {
href: "#",
className: "card-header-icon",
"aria-label": "more options",
onClick: onClick
}, children);
};
exports.CardHeaderIcon = CardHeaderIcon;
var CardHeader = function CardHeader(_ref2) {
var title = _ref2.title,
className = _ref2.className,
children = _ref2.children;
return _react.default.createElement("header", {
className: (0, _classnames.default)('card-header', className)
}, _react.default.createElement("p", {
className: "card-header-title"
}, title), children);
};
exports.CardHeader = CardHeader;
CardHeader.sortOrder = 0;
var CardFooterItem = function CardFooterItem(_ref3) {
var className = _ref3.className,
children = _ref3.children;
var kid = _react.default.cloneElement(children, {
className: (0, _classnames.default)('card-footer-item', className)
});
return _react.default.createElement(_react.default.Fragment, null, kid);
};
exports.CardFooterItem = CardFooterItem;
var CardFooter = function CardFooter(_ref4) {
var children = _ref4.children,
className = _ref4.className;
return _react.default.createElement("footer", {
className: (0, _classnames.default)('card-footer', className)
}, children);
};
exports.CardFooter = CardFooter;
CardFooter.sortOrder = 5;
var CardImage = function CardImage(_ref5) {
var src = _ref5.src,
alt = _ref5.alt,
className = _ref5.className;
return _react.default.createElement("div", {
className: (0, _classnames.default)('card-image', className)
}, _react.default.createElement("figure", {
className: "image is-4by3"
}, _react.default.createElement("img", {
src: src,
alt: alt
})));
};
exports.CardImage = CardImage;
CardImage.sortOrder = 1;
var CardImageContainer = function CardImageContainer(_ref6) {
var children = _ref6.children,
className = _ref6.className,
hasTextCentered = _ref6.hasTextCentered;
var classes = {
'has-text-centered': hasTextCentered
};
return _react.default.createElement("div", {
className: (0, _classnames.default)('card-image', className, classes)
}, children);
};
exports.CardImageContainer = CardImageContainer;
CardImageContainer.sortOrder = 1;
var CardBody = function CardBody(_ref7) {
var children = _ref7.children,
className = _ref7.className;
return _react.default.createElement("div", {
className: (0, _classnames.default)('card-content', className)
}, children);
};
exports.CardBody = CardBody;
CardBody.sortOrder = 2;
var Card = function Card(_ref8) {
var children = _ref8.children,
isMobile = _ref8.isMobile,
isFluid = _ref8.isFluid,
isWideScreen = _ref8.isWideScreen,
isFullHD = _ref8.isFullHD,
className = _ref8.className,
onClick = _ref8.onClick;
var classes = (0, _modifiers.Screens)({
isMobile: isMobile,
isFluid: isFluid,
isWideScreen: isWideScreen,
isFullHD: isFullHD
});
var childrenAsArray = _react.default.Children.toArray(children).sort(function (childA, childB) {
if (childA.type.sortOrder < childB.type.sortOrder) {
return -1;
}
if (childA.type.sortOrder > childB.type.sortOrder) {
return 1;
}
return 0;
});
var types = [CardHeader, CardBody, CardFooter, CardImage, CardImageContainer];
childrenAsArray.forEach(function (child) {
if (types.indexOf(child.type) > -1 || child.props.className && child.props.className.indexOf('card') > -1) {
return;
}
if (child.type.name === 'Collapse') {
return;
}
console.warn("'".concat(child.type, "' not allowed"));
});
return _react.default.createElement("div", {
className: (0, _classnames.default)('card', className, classes),
onClick: onClick
}, childrenAsArray);
};
exports.Card = Card;
Card.propTypes = {};
Card.defaultProps = {
className: '',
isMobile: false,
isFluid: false,
isWideScreen: false,
isFullHD: false,
onClick: function onClick() {}
};