@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.
107 lines (86 loc) • 3.91 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var React = _interopRequireWildcard(require("react"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _transition = _interopRequireDefault(require("../../../utils/transition"));
var _rtl = require("../../../utils/rtl");
var _defaultTheme = _interopRequireDefault(require("../../../defaultTheme"));
var _ChevronDown = _interopRequireDefault(require("../../../icons/ChevronDown"));
var _Stack = _interopRequireDefault(require("../../../Stack"));
var _Heading = _interopRequireDefault(require("../../../Heading"));
var _Text = _interopRequireDefault(require("../../../Text"));
var _Close = _interopRequireDefault(require("../../../icons/Close"));
var _useTranslate = _interopRequireDefault(require("../../../hooks/useTranslate"));
var _ButtonLink = _interopRequireDefault(require("../../../ButtonLink"));
var ChevronIcon = (0, _styledComponents.default)(_ChevronDown.default).withConfig({
displayName: "Header__ChevronIcon",
componentId: "sc-14vrb8n-0"
})(["transform:", ";transition:", ";"], function (_ref) {
var expanded = _ref.expanded;
return expanded && "rotate(-180deg)";
}, (0, _transition.default)(["transform"], "fast", "ease-in-out")); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198
ChevronIcon.defaultProps = {
theme: _defaultTheme.default
};
var StyledCloseContainer = _styledComponents.default.div.withConfig({
displayName: "Header__StyledCloseContainer",
componentId: "sc-14vrb8n-1"
})(["position:absolute;top:0;", ":0;z-index:1;"], _rtl.right);
var CardCloseButton = function CardCloseButton(_ref2) {
var onClick = _ref2.onClick;
var translate = (0, _useTranslate.default)();
return /*#__PURE__*/React.createElement(_ButtonLink.default, {
type: "secondary",
size: "small",
iconLeft: /*#__PURE__*/React.createElement(_Close.default, null),
onClick: onClick,
title: translate("button_close")
});
};
var Header = function Header(_ref3) {
var description = _ref3.description,
icon = _ref3.icon,
title = _ref3.title,
titleAs = _ref3.titleAs,
isSection = _ref3.isSection,
actions = _ref3.actions,
dataA11ySection = _ref3.dataA11ySection,
onClose = _ref3.onClose,
header = _ref3.header,
expandable = _ref3.expandable,
expanded = _ref3.expanded;
return /*#__PURE__*/React.createElement(_Stack.default, {
align: actions && !header ? "start" : "center",
spacing: header ? "small" : "none"
}, (title || description || icon) && !header && /*#__PURE__*/React.createElement(_Stack.default, {
flex: true,
shrink: !!actions || expandable,
align: "stretch",
direction: "column",
spacing: isSection ? "none" : "XXSmall"
}, /*#__PURE__*/React.createElement(_Stack.default, {
inline: true,
spacing: "small",
align: "center"
}, icon, title && /*#__PURE__*/React.createElement(_Heading.default, {
type: isSection ? "title4" : "title3",
as: titleAs,
dataA11ySection: dataA11ySection
}, title)), description && /*#__PURE__*/React.createElement(_Text.default, null, description)), header && icon, header, expandable && !actions && /*#__PURE__*/React.createElement(ChevronIcon, {
expanded: expanded,
color: "secondary"
}), actions && /*#__PURE__*/React.createElement(_Stack.default, {
inline: true,
grow: false,
justify: "end"
}, actions), onClose && !actions && /*#__PURE__*/React.createElement(StyledCloseContainer, null, /*#__PURE__*/React.createElement(CardCloseButton, {
onClick: onClose
})));
};
var _default = Header;
exports.default = _default;