@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.
76 lines (63 loc) • 2.32 kB
JavaScript
;
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 = _interopRequireDefault(require("styled-components"));
var _keyMaps = _interopRequireDefault(require("../common/keyMaps"));
var _defaultTheme = _interopRequireDefault(require("../defaultTheme"));
const StyledNavigation = _styledComponents.default.nav.withConfig({
displayName: "SkipLink__StyledNavigation",
componentId: "sc-dytgum-0"
})([""]);
const StyledLink = _styledComponents.default.a.withConfig({
displayName: "SkipLink__StyledLink",
componentId: "sc-dytgum-1"
})(["border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;font-family:", ";text-decoration:", ";font-size:", ";border-radius:", ";color:", ";&:focus{top:1rem;left:1rem;clip:auto;height:auto;width:auto;margin:0;overflow:visible;padding:", ";background-color:", ";z-index:", ";}"], ({
theme
}) => theme.orbit.fontFamily, ({
theme
}) => theme.orbit.textDecorationTextLinkPrimary, ({
theme
}) => theme.orbit.fontSizeTextLarge, ({
theme
}) => theme.orbit.borderRadiusNormal, ({
theme
}) => theme.orbit.paletteInkNormal, ({
theme
}) => theme.orbit.spaceMedium, ({
theme
}) => theme.orbit.paletteWhite, ({
theme
}) => theme.orbit.zIndexOnTheTop); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198
StyledLink.defaultProps = {
theme: _defaultTheme.default
};
const SkipLink = ({
links,
buttonLabel
}) => {
return /*#__PURE__*/React.createElement(StyledNavigation, {
"aria-label": buttonLabel
}, links && links.map(({
href,
name,
onClick
}, index) => {
return /*#__PURE__*/React.createElement(StyledLink, {
key: encodeURIComponent(name + index),
href: href,
tabIndex: onClick && "0",
role: href ? "link" : "button",
onClick: onClick,
onKeyDown: ev => {
if (ev.keyCode === _keyMaps.default.ENTER && onClick) {
onClick();
}
}
}, name);
}));
};
var _default = SkipLink;
exports.default = _default;