@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.
89 lines (76 loc) • 2.49 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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var React = _interopRequireWildcard(require("react"));
var _styledComponents = _interopRequireWildcard(require("styled-components"));
var _defaultTheme = _interopRequireDefault(require("../defaultTheme"));
var _mediaQuery = _interopRequireDefault(require("../utils/mediaQuery"));
var _consts = require("../utils/mediaQuery/consts");
var _normalize = _interopRequireDefault(require("./normalize"));
const _excluded = ["as", "id", "mediumMobile", "largeMobile", "tablet", "desktop", "largeDesktop", "children", "dataTest", "className"];
const StyledBox = (0, _styledComponents.default)(({
className,
asComponent: Element,
children,
dataTest,
id,
ref
}) => /*#__PURE__*/React.createElement(Element, {
className: className,
"data-test": dataTest,
id: id,
ref: ref
}, children)).withConfig({
displayName: "Box__StyledBox",
componentId: "sc-19rtrat-0"
})(["font-family:", ";box-sizing:border-box;", ""], ({
theme
}) => theme.orbit.fontFamily, ({
viewports
}) => {
return Object.entries(viewports).map(([query, value]) => {
if (query !== _consts.DEVICES[0] && typeof value !== "undefined") {
return _mediaQuery.default[query]((0, _styledComponents.css)(["", ""], (0, _normalize.default)(value)));
}
return (0, _normalize.default)(value);
});
}); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198
StyledBox.defaultProps = {
theme: _defaultTheme.default
};
const Box = /*#__PURE__*/React.forwardRef((_ref, ref) => {
let {
as = "div",
id,
mediumMobile,
largeMobile,
tablet,
desktop,
largeDesktop,
children,
dataTest,
className
} = _ref,
smallMobile = (0, _objectWithoutProperties2.default)(_ref, _excluded);
const viewports = {
smallMobile,
mediumMobile,
largeMobile,
tablet,
desktop,
largeDesktop
};
return /*#__PURE__*/React.createElement(StyledBox, {
ref: ref,
asComponent: as,
id: id,
dataTest: dataTest,
className: className,
viewports: viewports
}, children);
});
var _default = Box;
exports.default = _default;