@kiwicom/orbit-components
Version:
Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.
71 lines (70 loc) • 2.35 kB
JavaScript
"use strict";
"use client";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
exports.__esModule = true;
exports.CardSection = void 0;
exports.default = Card;
var React = _interopRequireWildcard(require("react"));
var _clsx = _interopRequireDefault(require("clsx"));
var _consts = require("../Heading/consts");
var _Header = _interopRequireDefault(require("./components/Header"));
var _tailwind = require("../common/tailwind");
var _Loading = _interopRequireDefault(require("../Loading"));
var _CardSection = _interopRequireDefault(require("./CardSection"));
exports.CardSection = _CardSection.default;
function Card({
title,
titleAs = _consts.ELEMENT_OPTIONS.H2,
actions,
description,
children,
labelClose = "Close",
dataTest,
id,
onClose,
loading,
margin,
header,
spaceAfter,
dataA11ySection
}) {
const marginStyles = (() => {
if (margin == null) {
return {};
}
if (typeof margin === "string" || typeof margin === "number") {
return {
margin
};
}
return {
marginTop: margin.top,
marginRight: margin.right,
marginBottom: margin.bottom,
marginLeft: margin.left
};
})();
return /*#__PURE__*/React.createElement("div", {
id: id,
className: (0, _clsx.default)("font-base bg-white-normal [&>*]:border-elevation-flat-border-color [&>*:first-child]:rounded-t-normal [&>*:last-child]:rounded-b-normal w-full [&>*:first-child]:border-t", spaceAfter != null && _tailwind.spaceAfterClasses[spaceAfter]),
"data-test": dataTest,
style: marginStyles
}, (title != null || header != null) && !loading && /*#__PURE__*/React.createElement("div", {
className: "p-md lm:p-lg lm:border-x relative border-b"
}, /*#__PURE__*/React.createElement(_Header.default, {
description: description,
dataA11ySection: dataA11ySection,
actions: actions,
title: title,
labelClose: labelClose,
titleAs: titleAs,
onClose: onClose,
header: header
})), !loading && children, loading && /*#__PURE__*/React.createElement("div", {
className: "lm:border-x border-b"
}, /*#__PURE__*/React.createElement(_Loading.default, {
loading: loading,
type: "boxLoader"
})));
}