@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.
72 lines (66 loc) • 2.41 kB
JavaScript
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import * as React from "react";
import styled, { css } from "styled-components";
import defaultTheme from "../defaultTheme";
import media from "../utils/mediaQuery";
import { DEVICES as DEVICES_CONSTS } from "../utils/mediaQuery/consts";
import normalize from "./normalize";
var StyledBox = styled(function (_ref) {
var className = _ref.className,
Element = _ref.asComponent,
children = _ref.children,
dataTest = _ref.dataTest;
return /*#__PURE__*/React.createElement(Element, {
className: className,
"data-test": dataTest
}, children);
}).withConfig({
displayName: "Box__StyledBox",
componentId: "sc-1cj4adb-0"
})(["font-family:", ";box-sizing:border-box;", ""], function (_ref2) {
var theme = _ref2.theme;
return theme.orbit.fontFamily;
}, function (_ref3) {
var viewports = _ref3.viewports;
return Object.entries(viewports).map(function (_ref4) {
var _ref5 = _slicedToArray(_ref4, 2),
query = _ref5[0],
value = _ref5[1];
if (query !== DEVICES_CONSTS[0] && typeof value !== "undefined") {
return media[query](css(["", ""], normalize(value)));
}
return normalize(value);
});
}); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198
StyledBox.defaultProps = {
theme: defaultTheme
};
var Box = function Box(_ref6) {
var _ref6$as = _ref6.as,
as = _ref6$as === void 0 ? "div" : _ref6$as,
mediumMobile = _ref6.mediumMobile,
largeMobile = _ref6.largeMobile,
tablet = _ref6.tablet,
desktop = _ref6.desktop,
largeDesktop = _ref6.largeDesktop,
children = _ref6.children,
dataTest = _ref6.dataTest,
className = _ref6.className,
smallMobile = _objectWithoutProperties(_ref6, ["as", "mediumMobile", "largeMobile", "tablet", "desktop", "largeDesktop", "children", "dataTest", "className"]);
var viewports = {
smallMobile: smallMobile,
mediumMobile: mediumMobile,
largeMobile: largeMobile,
tablet: tablet,
desktop: desktop,
largeDesktop: largeDesktop
};
return /*#__PURE__*/React.createElement(StyledBox, {
asComponent: as,
dataTest: dataTest,
className: className,
viewports: viewports
}, children);
};
export default Box;