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.

110 lines (93 loc) 4.24 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var React = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireWildcard(require("styled-components")); var _defaultTheme = _interopRequireDefault(require("../../defaultTheme")); var _ChevronRight = _interopRequireDefault(require("../../icons/ChevronRight")); const _excluded = ["active", "component", "children", "isClickable", "theme"], _excluded2 = ["active", "children", "dataTest", "onClick", "href", "contentKey", "component", "id"]; const StyledBreadcrumbsItem = _styledComponents.default.li.withConfig({ displayName: "BreadcrumbsItem__StyledBreadcrumbsItem", componentId: "sc-1nqhh1p-0" })(["display:flex;align-items:center;"]); const StyledBreadcrumbsItemAnchor = (0, _styledComponents.default)(_ref => { let { active, component, children, isClickable, theme } = _ref, props = (0, _objectWithoutProperties2.default)(_ref, _excluded); const Component = isClickable ? component : "div"; return /*#__PURE__*/React.createElement(Component, props, children); }).withConfig({ displayName: "BreadcrumbsItem__StyledBreadcrumbsItemAnchor", componentId: "sc-1nqhh1p-1" })(["", ""], ({ theme, active, isClickable }) => (0, _styledComponents.css)(["font-weight:", ";color:", ";text-decoration:", ";", ";"], active ? theme.orbit.fontWeightBold : theme.orbit.fontWeightMedium, theme.orbit.paletteInkNormal, isClickable && !active ? "underline" : "none", isClickable && (0, _styledComponents.css)(["transition:color ", " ease-in-out;cursor:pointer;&:hover,&:focus{outline:none;text-decoration:none;}&:hover{color:", ";}:focus{color:", ";}"], theme.orbit.durationFast, theme.orbit.paletteProductNormalHover, theme.orbit.paletteProductNormalActive))); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198 StyledBreadcrumbsItemAnchor.defaultProps = { theme: _defaultTheme.default }; const StyledBreadcrumbsItemIcon = (0, _styledComponents.default)(_ChevronRight.default).withConfig({ displayName: "BreadcrumbsItem__StyledBreadcrumbsItemIcon", componentId: "sc-1nqhh1p-2" })(["", ""], ({ theme }) => (0, _styledComponents.css)(["margin:0 ", ";"], theme.orbit.spaceXXSmall)); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198 StyledBreadcrumbsItemIcon.defaultProps = { theme: _defaultTheme.default }; // eslint-disable-next-line jsx-a11y/anchor-has-content const DefaultComponent = props => /*#__PURE__*/React.createElement("a", props); const BreadcrumbsItem = _ref2 => { let { active, children, dataTest, onClick, href, contentKey, component = DefaultComponent, id } = _ref2, props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2); return /*#__PURE__*/React.createElement(StyledBreadcrumbsItem, { "data-test": dataTest, "aria-current": active ? "page" : undefined, itemProp: "itemListElement", itemScope: true, itemType: "http://schema.org/ListItem" }, /*#__PURE__*/React.createElement(StyledBreadcrumbsItemAnchor, (0, _extends2.default)({ isClickable: href || onClick, href: href, component: component, active: active, onClick: onClick, itemScope: true, itemType: "http://schema.org/WebPage", itemProp: "item", itemID: id || href }, props), /*#__PURE__*/React.createElement("span", { itemProp: "name" }, children)), /*#__PURE__*/React.createElement("meta", { itemProp: "position", content: contentKey }), !active && /*#__PURE__*/React.createElement(StyledBreadcrumbsItemIcon, { ariaHidden: true, reverseOnRtl: true, size: "small", color: "tertiary" })); }; var _default = BreadcrumbsItem; exports.default = _default;