UNPKG

@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.

79 lines (78 loc) 3.38 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; exports.__esModule = true; exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireWildcard(require("styled-components")); var _context = require("./context"); var _AlertCircle = _interopRequireDefault(require("../../icons/AlertCircle")); var _defaultTheme = _interopRequireDefault(require("../../defaultTheme")); var _StarFull = _interopRequireDefault(require("../../icons/StarFull")); var _CircleSmallEmpty = _interopRequireDefault(require("../../icons/CircleSmallEmpty")); var _CircleSmall = _interopRequireDefault(require("../../icons/CircleSmall")); const lineMixin = (0, _styledComponents.css)(["content:\"\";position:absolute;height:calc(50% + 9px);z-index:-1;"]); const IconStyled = _styledComponents.default.div.withConfig({ displayName: "ItineraryIcon__IconStyled", componentId: "sc-bazp3h-0" })(["", ""], ({ theme, index, last, count, isPrevHidden, isHidden }) => (0, _styledComponents.css)(["display:flex;justify-content:center;z-index:1;svg{background:", ";overflow:hidden;}", " ", ";", ";"], last || index === 0 ? "transparent" : theme.orbit.paletteWhite, index > 0 && !last && (0, _styledComponents.css)(["padding:", " 0;background:radial-gradient( farthest-side,", ",", ",", ",transparent );"], theme.orbit.spaceXXSmall, theme.orbit.paletteWhite, theme.orbit.paletteWhite, theme.orbit.paletteWhite), index > 0 && count > 0 && (0, _styledComponents.css)(["&:before{top:", ";border:1px ", " ", ";", ";}"], last && isPrevHidden ? "-14px" : "-9px", isPrevHidden ? "dashed" : "solid", theme.orbit.paletteCloudNormalActive, lineMixin), !last && count > 0 && (0, _styledComponents.css)(["&:after{bottom:", ";border:1px ", " ", ";", ";}"], isHidden ? "4px" : "-9px", isHidden ? "dashed" : "solid", theme.orbit.paletteCloudNormalActive, lineMixin))); IconStyled.defaultProps = { theme: _defaultTheme.default }; const RenderedIcon = ({ isPrevHidden, isLast, isHidden, children, type }) => { if (type && children !== null) return /*#__PURE__*/React.createElement(_AlertCircle.default, { size: "small", color: type === "neutral" ? "primary" : type }); if (isHidden) return /*#__PURE__*/React.createElement(_StarFull.default, { color: "warning", size: "small" }); if (isPrevHidden && isLast) return /*#__PURE__*/React.createElement(_CircleSmallEmpty.default, { size: "small", color: "tertiary" }); return /*#__PURE__*/React.createElement(React.Fragment, null, children || /*#__PURE__*/React.createElement(_CircleSmall.default, { size: "small", color: "secondary" })); }; const ItinerarySegmentStopIcon = ({ type, children }) => { const { index, last, isPrevHidden, isHidden, count } = (0, _context.usePart)(); return /*#__PURE__*/React.createElement(IconStyled, { index: index, last: last, isPrevHidden: isPrevHidden, isHidden: isHidden, count: count }, /*#__PURE__*/React.createElement(RenderedIcon, { type: type, isPrevHidden: isPrevHidden, isLast: last, isHidden: isHidden }, children)); }; var _default = ItinerarySegmentStopIcon; exports.default = _default;