@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
JavaScript
"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;