UNPKG

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