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

41.66% Statements 10/24
100% Branches 0/0
0% Functions 0/3
41.66% Lines 10/24

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 241x 1x 1x 1x                       1x 1x 1x       1x 1x 1x
import { getPatternStyles, patternFns } from '../helpers.mjs';
import { css } from '../css/index.mjs';
 
const bleedConfig = {
transform(props, { map, isCssUnit, isCssVar }) {
  const { inline, block, ...rest } = props;
  const valueFn = (v) => isCssUnit(v) || isCssVar(v) ? v : `token(spacing.${v}, ${v})`;
  return {
    "--bleed-x": map(inline, valueFn),
    "--bleed-y": map(block, valueFn),
    marginInline: "calc(var(--bleed-x, 0) * -1)",
    marginBlock: "calc(var(--bleed-y, 0) * -1)",
    ...rest
  };
},
defaultValues:{inline:'0',block:'0'}}
 
export const getBleedStyle = (styles = {}) => {
  const _styles = getPatternStyles(bleedConfig, styles)
  return bleedConfig.transform(_styles, patternFns)
}
 
export const bleed = (styles) => css(getBleedStyle(styles))
bleed.raw = getBleedStyle