UNPKG

@geist-ui/react

Version:

Modern and minimalist React UI library.

50 lines (44 loc) 3.53 kB
import _JSXStyle from "../styled-jsx.es.js"; import React, { useMemo } from 'react'; import useTheme from '../use-theme'; import BreadcrumbsSeparator from './breadcrumbs-separator'; import { addColorAlpha } from '../utils/color'; import useScaleable, { withScaleable } from '../use-scaleable'; var defaultProps = { separator: '/', className: '' }; var BreadcrumbsComponent = function BreadcrumbsComponent(_ref) { var separator = _ref.separator, children = _ref.children, className = _ref.className; var theme = useTheme(); var _useScaleable = useScaleable(), SCALES = _useScaleable.SCALES; var hoverColor = useMemo(function () { return addColorAlpha(theme.palette.link, 0.85); }, [theme.palette.link]); var childrenArray = React.Children.toArray(children); var withSeparatorChildren = childrenArray.map(function (item, index) { if (! /*#__PURE__*/React.isValidElement(item)) return item; var last = childrenArray[index - 1]; var lastIsSeparator = /*#__PURE__*/React.isValidElement(last) && last.type === BreadcrumbsSeparator; var currentIsSeparator = item.type === BreadcrumbsSeparator; if (!lastIsSeparator && !currentIsSeparator && index > 0) { return /*#__PURE__*/React.createElement(React.Fragment, { key: index }, /*#__PURE__*/React.createElement(BreadcrumbsSeparator, null, separator), item); } return item; }); return /*#__PURE__*/React.createElement("nav", { className: _JSXStyle.dynamic([["2351830500", [theme.palette.accents_4, SCALES.font(1), SCALES.width(1, 'auto'), SCALES.height(1, 'auto'), SCALES.pt(0), SCALES.pr(0), SCALES.pb(0), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), hoverColor, theme.palette.accents_6]]]) + " " + (className || "") }, withSeparatorChildren, /*#__PURE__*/React.createElement(_JSXStyle, { id: "2351830500", dynamic: [theme.palette.accents_4, SCALES.font(1), SCALES.width(1, 'auto'), SCALES.height(1, 'auto'), SCALES.pt(0), SCALES.pr(0), SCALES.pb(0), SCALES.pl(0), SCALES.mt(0), SCALES.mr(0), SCALES.mb(0), SCALES.ml(0), hoverColor, theme.palette.accents_6] }, "nav.__jsx-style-dynamic-selector{line-height:inherit;color:".concat(theme.palette.accents_4, ";box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:").concat(SCALES.font(1), ";width:").concat(SCALES.width(1, 'auto'), ";height:").concat(SCALES.height(1, 'auto'), ";padding:").concat(SCALES.pt(0), " ").concat(SCALES.pr(0), " ").concat(SCALES.pb(0), " ").concat(SCALES.pl(0), ";margin:").concat(SCALES.mt(0), " ").concat(SCALES.mr(0), " ").concat(SCALES.mb(0), " ").concat(SCALES.ml(0), ";}nav.__jsx-style-dynamic-selector .link:hover{color:").concat(hoverColor, ";}nav.__jsx-style-dynamic-selector>span:last-of-type{color:").concat(theme.palette.accents_6, ";}nav.__jsx-style-dynamic-selector>.separator:last-child{display:none;}nav.__jsx-style-dynamic-selector svg{width:1em;height:1em;margin:0 4px;}nav.__jsx-style-dynamic-selector .breadcrums-item{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}"))); }; BreadcrumbsComponent.defaultProps = defaultProps; BreadcrumbsComponent.displayName = 'GeistBreadcrumbs'; var Breadcrumbs = withScaleable(BreadcrumbsComponent); export default Breadcrumbs;