@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.
61 lines • 1.43 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import * as React from "react";
import styled, { css } from "styled-components";
import defaultTheme from "../../defaultTheme";
import mediaQueries from "../mediaQuery";
import { DEVICES } from "../mediaQuery/consts";
import getViewportGridStyles from "./helpers/getViewportGridStyles";
import { isDefined } from "../layout";
const StyledGrid = styled.div.withConfig({
displayName: "Grid__StyledGrid",
componentId: "sc-9xttzw-0"
})(["", ";"], ({
theme,
...props
}) => Object.values(DEVICES).map(viewport => viewport in mediaQueries ? mediaQueries[viewport](css(["", ";"], isDefined(props[viewport]) && getViewportGridStyles({
viewport,
theme
}))) : viewport === "smallMobile" && css(["", ";"], getViewportGridStyles({
viewport,
theme
}))));
StyledGrid.defaultProps = {
theme: defaultTheme
};
const Grid = ({
inline,
rows = "1fr",
columns = "1fr",
gap,
rowGap,
columnGap,
maxWidth,
width,
spaceAfter,
children,
dataTest,
as = "div",
...props
}) => {
const smallMobile = {
inline,
rows,
columns,
gap,
rowGap,
columnGap,
maxWidth,
width,
spaceAfter
};
return (
/*#__PURE__*/
// @ts-expect-error As prop
React.createElement(StyledGrid, _extends({}, props, {
smallMobile: smallMobile,
"data-test": dataTest,
as: as
}), children)
);
};
export default Grid;