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.

80 lines (79 loc) 3.17 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 _rtl = require("../utils/rtl"); var _mediaQuery = _interopRequireDefault(require("../utils/mediaQuery")); var _TextLink = require("../TextLink"); var _defaultTheme = _interopRequireDefault(require("../defaultTheme")); var _consts = require("../utils/layout/consts"); var _getSpacing = _interopRequireDefault(require("../Stack/helpers/getSpacing")); var _getDirectionSpacingTemplate = _interopRequireDefault(require("../Stack/helpers/getDirectionSpacingTemplate")); const StyledLinkList = _styledComponents.default.ul.withConfig({ displayName: "LinkList__StyledLinkList", componentId: "sc-1rx425d-0" })(["", ";"], ({ $indent, $direction, theme, $legacy, $spacing }) => (0, _styledComponents.css)(["display:flex;flex-direction:", ";width:100%;margin:0;gap:", ";padding:0;padding-", ":", ";list-style:none;font-size:", ";"], $direction, !$legacy && $spacing && (0, _getSpacing.default)(theme)[$spacing], _rtl.left, $indent && theme.orbit.spaceXXSmall, theme.orbit.fontSizeTextNormal)); StyledLinkList.defaultProps = { theme: _defaultTheme.default }; const resolveSpacings = ({ $legacy, $direction, theme, $spacing }) => { const margin = $spacing && $direction && String((0, _getDirectionSpacingTemplate.default)($direction)).replace("__spacing__", (0, _getSpacing.default)(theme)[$spacing]); if (!$legacy) return null; return (0, _styledComponents.css)(["margin:", ";&:last-child{margin:0;}"], margin && (0, _rtl.rtlSpacing)(margin)); }; const StyledNavigationLinkListChild = _styledComponents.default.li.withConfig({ displayName: "LinkList__StyledNavigationLinkListChild", componentId: "sc-1rx425d-1" })(["", ""], ({ $direction, $spacing, $legacy, theme }) => (0, _styledComponents.css)(["", "{text-decoration:none;}", ";", ";"], _TextLink.StyledTextLink, resolveSpacings({ $direction, $spacing, $legacy, theme }), $direction === "column" && (0, _styledComponents.css)(["width:100%;", "{width:100%;", ";}"], _TextLink.StyledTextLink, _mediaQuery.default.tablet((0, _styledComponents.css)(["width:auto;"]))))); StyledNavigationLinkListChild.defaultProps = { theme: _defaultTheme.default }; const LinkList = ({ direction = "column", indent, legacy = false, spacing = _consts.SPACINGS.MEDIUM, children, dataTest }) => /*#__PURE__*/React.createElement(StyledLinkList, { $indent: indent, $direction: direction, "data-test": dataTest, $legacy: legacy, $spacing: spacing }, React.Children.map(children, item => { if ( /*#__PURE__*/React.isValidElement(item)) { return /*#__PURE__*/React.createElement(StyledNavigationLinkListChild, { $direction: direction, $spacing: spacing, $legacy: legacy }, item); } return null; })); var _default = LinkList; exports.default = _default;