UNPKG

@cimpress/react-components

Version:
55 lines (50 loc) 3.95 kB
var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; import { css, cx } from '@emotion/css'; import * as React from 'react'; const gridLayoutStyles = css ` display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--crc-grid-gap, 0); `; export function GridLayout(_a) { var { children, className, style, gap = 16 } = _a, props = __rest(_a, ["children", "className", "style", "gap"]); return (React.createElement("div", Object.assign({ className: cx(gridLayoutStyles, className), style: Object.assign(Object.assign({}, style), { '--crc-grid-gap': `${gap}px` }) }, props), children)); } const gridLayoutItemStyles = css ` --crc-grid-item-span: var(--crc-grid-item-span-xs); --crc-grid-item-start: var(--crc-grid-item-start-xs); grid-column: var(--crc-grid-item-start, auto) / span var(--crc-grid-item-span, 12); @media screen and (min-width: 640px) { --crc-grid-item-span: var(--crc-grid-item-span-sm); --crc-grid-item-start: var(--crc-grid-item-start-sm); } @media screen and (min-width: 768px) { --crc-grid-item-span: var(--crc-grid-item-span-md); --crc-grid-item-start: var(--crc-grid-item-start-md); } @media screen and (min-width: 1024px) { --crc-grid-item-span: var(--crc-grid-item-span-lg); --crc-grid-item-start: var(--crc-grid-item-start-lg); } @media screen and (min-width: 1280px) { --crc-grid-item-span: var(--crc-grid-item-span-xl); --crc-grid-item-start: var(--crc-grid-item-start-xl); } `; export function GridLayoutItem(_a) { var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o; var { children, className, style, span, smSpan, mdSpan, lgSpan, xlSpan, start, smStart, mdStart, lgStart, xlStart } = _a, props = __rest(_a, ["children", "className", "style", "span", "smSpan", "mdSpan", "lgSpan", "xlSpan", "start", "smStart", "mdStart", "lgStart", "xlStart"]); return (React.createElement("div", Object.assign({ className: cx(gridLayoutItemStyles, className), style: Object.assign(Object.assign({}, style), { '--crc-grid-item-span-xs': span !== null && span !== void 0 ? span : 12, '--crc-grid-item-span-sm': smSpan !== null && smSpan !== void 0 ? smSpan : span, '--crc-grid-item-span-md': (_b = mdSpan !== null && mdSpan !== void 0 ? mdSpan : smSpan) !== null && _b !== void 0 ? _b : span, '--crc-grid-item-span-lg': (_d = (_c = lgSpan !== null && lgSpan !== void 0 ? lgSpan : mdSpan) !== null && _c !== void 0 ? _c : smSpan) !== null && _d !== void 0 ? _d : span, '--crc-grid-item-span-xl': (_g = (_f = (_e = xlSpan !== null && xlSpan !== void 0 ? xlSpan : lgSpan) !== null && _e !== void 0 ? _e : mdSpan) !== null && _f !== void 0 ? _f : smSpan) !== null && _g !== void 0 ? _g : span, '--crc-grid-item-start-xs': start !== null && start !== void 0 ? start : 'auto', '--crc-grid-item-start-sm': smStart !== null && smStart !== void 0 ? smStart : start, '--crc-grid-item-start-md': (_h = mdStart !== null && mdStart !== void 0 ? mdStart : smStart) !== null && _h !== void 0 ? _h : start, '--crc-grid-item-start-lg': (_k = (_j = lgStart !== null && lgStart !== void 0 ? lgStart : mdStart) !== null && _j !== void 0 ? _j : smStart) !== null && _k !== void 0 ? _k : start, '--crc-grid-item-start-xl': (_o = (_m = (_l = xlStart !== null && xlStart !== void 0 ? xlStart : lgStart) !== null && _l !== void 0 ? _l : mdStart) !== null && _m !== void 0 ? _m : smStart) !== null && _o !== void 0 ? _o : start }) }, props), children)); } GridLayout.Item = GridLayoutItem; //# sourceMappingURL=GridLayout.js.map