All files / web/styled-system/patterns grid.mjs

33.33% Statements 9/27
100% Branches 0/0
0% Functions 0/4
33.33% Lines 9/27

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 271x 1x 1x 1x                               1x 1x       1x 1x 1x
import { getPatternStyles, patternFns } from '../helpers.mjs';
import { css } from '../css/index.mjs';
 
const gridConfig = {
transform(props, { map, isCssUnit }) {
  const { columnGap, rowGap, gap, columns, minChildWidth, ...rest } = props;
  const getValue = (v) => isCssUnit(v) ? v : `token(sizes.${v}, ${v})`;
  return {
    display: "grid",
    gridTemplateColumns: columns != null ? map(columns, (v) => `repeat(${v}, minmax(0, 1fr))`) : minChildWidth != null ? map(minChildWidth, (v) => `repeat(auto-fit, minmax(${getValue(v)}, 1fr))`) : void 0,
    gap,
    columnGap,
    rowGap,
    ...rest
  };
},
defaultValues(props) {
  return { gap: props.columnGap || props.rowGap ? void 0 : "8px" };
}}
 
export const getGridStyle = (styles = {}) => {
  const _styles = getPatternStyles(gridConfig, styles)
  return gridConfig.transform(_styles, patternFns)
}
 
export const grid = (styles) => css(getGridStyle(styles))
grid.raw = getGridStyle