{"version":3,"file":"Grid.cjs","names":["createVarsResolver","factory","useProps","useStyles","useRandomClassName","GridProvider","GridVariables","Box","classes","GridCol"],"sources":["../../../src/components/Grid/Grid.tsx"],"sourcesContent":["import {\n  Box,\n  BoxProps,\n  createVarsResolver,\n  ElementProps,\n  factory,\n  Factory,\n  MantineSpacing,\n  StyleProp,\n  StylesApiProps,\n  useProps,\n  useRandomClassName,\n  useStyles,\n} from '../../core';\nimport { GridBreakpoints, GridProvider } from './Grid.context';\nimport { GridCol } from './GridCol/GridCol';\nimport { GridVariables } from './GridVariables';\nimport classes from './Grid.module.css';\n\nexport type GridStylesNames = 'root' | 'col' | 'inner' | 'container';\nexport type GridCssVariables = {\n  root: '--grid-justify' | '--grid-align' | '--grid-overflow';\n};\n\nexport interface GridProps extends BoxProps, StylesApiProps<GridFactory>, ElementProps<'div'> {\n  /** Gap between columns and rows, key of `theme.spacing` or any valid CSS value @default 'md' */\n  gap?: StyleProp<MantineSpacing>;\n\n  /** Row gap, overrides `gap` for vertical spacing */\n  rowGap?: StyleProp<MantineSpacing>;\n\n  /** Column gap, overrides `gap` for horizontal spacing */\n  columnGap?: StyleProp<MantineSpacing>;\n\n  /** If set, columns in the last row expand to fill all available space @default false */\n  grow?: boolean;\n\n  /** Sets `justify-content` @default flex-start */\n  justify?: React.CSSProperties['justifyContent'];\n\n  /** Sets `align-items` @default stretch */\n  align?: React.CSSProperties['alignItems'];\n\n  /** Number of columns in each row @default 12 */\n  columns?: number;\n\n  /** Sets `overflow` CSS property on the root element @default 'visible' */\n  overflow?: React.CSSProperties['overflow'];\n\n  /** Type of queries used for responsive styles @default 'media' */\n  type?: 'media' | 'container';\n\n  /** Breakpoints values, only used with `type=\"container\"` */\n  breakpoints?: GridBreakpoints;\n}\n\nexport type GridFactory = Factory<{\n  props: GridProps;\n  ref: HTMLDivElement;\n  stylesNames: GridStylesNames;\n  vars: GridCssVariables;\n  staticComponents: {\n    Col: typeof GridCol;\n  };\n}>;\n\nconst defaultProps = {\n  gap: 'md',\n  columns: 12,\n} satisfies Partial<GridProps>;\n\nconst varsResolver = createVarsResolver<GridFactory>((_, { justify, align, overflow }) => ({\n  root: {\n    '--grid-justify': justify,\n    '--grid-align': align,\n    '--grid-overflow': overflow,\n  },\n}));\n\nexport const Grid = factory<GridFactory>((_props) => {\n  const props = useProps('Grid', defaultProps, _props);\n  const {\n    classNames,\n    className,\n    style,\n    styles,\n    unstyled,\n    vars,\n    grow,\n    gap,\n    rowGap,\n    columnGap,\n    columns,\n    align,\n    justify,\n    children,\n    breakpoints,\n    type,\n    attributes,\n    ...others\n  } = props;\n\n  const getStyles = useStyles<GridFactory>({\n    name: 'Grid',\n    classes,\n    props,\n    className,\n    style,\n    classNames,\n    styles,\n    unstyled,\n    attributes,\n    vars,\n    varsResolver,\n  });\n\n  const responsiveClassName = useRandomClassName();\n\n  if (type === 'container' && breakpoints) {\n    return (\n      <GridProvider value={{ getStyles, grow, columns, breakpoints, type }}>\n        <GridVariables selector={`.${responsiveClassName}`} {...props} />\n        <div {...getStyles('container')}>\n          <Box {...getStyles('root', { className: responsiveClassName })} {...others}>\n            <div {...getStyles('inner')}>{children}</div>\n          </Box>\n        </div>\n      </GridProvider>\n    );\n  }\n\n  return (\n    <GridProvider value={{ getStyles, grow, columns, breakpoints, type }}>\n      <GridVariables selector={`.${responsiveClassName}`} {...props} />\n      <Box {...getStyles('root', { className: responsiveClassName })} {...others}>\n        <div {...getStyles('inner')}>{children}</div>\n      </Box>\n    </GridProvider>\n  );\n});\n\nGrid.classes = classes;\nGrid.varsResolver = varsResolver;\nGrid.displayName = '@mantine/core/Grid';\nGrid.Col = GridCol;\n"],"mappings":";;;;;;;;;;;;;;AAkEA,MAAM,eAAe;CACnB,KAAK;CACL,SAAS;CACV;AAED,MAAM,eAAeA,6BAAAA,oBAAiC,GAAG,EAAE,SAAS,OAAO,gBAAgB,EACzF,MAAM;CACJ,kBAAkB;CAClB,gBAAgB;CAChB,mBAAmB;CACpB,EACF,EAAE;AAEH,MAAa,OAAOC,gBAAAA,SAAsB,WAAW;CACnD,MAAM,QAAQC,kBAAAA,SAAS,QAAQ,cAAc,OAAO;CACpD,MAAM,EACJ,YACA,WACA,OACA,QACA,UACA,MACA,MACA,KACA,QACA,WACA,SACA,OACA,SACA,UACA,aACA,MACA,YACA,GAAG,WACD;CAEJ,MAAM,YAAYC,mBAAAA,UAAuB;EACvC,MAAM;EACN,SAAA,oBAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAM,sBAAsBC,6BAAAA,oBAAoB;AAEhD,KAAI,SAAS,eAAe,YAC1B,QACE,iBAAA,GAAA,kBAAA,MAACC,qBAAAA,cAAD;EAAc,OAAO;GAAE;GAAW;GAAM;GAAS;GAAa;GAAM;YAApE,CACE,iBAAA,GAAA,kBAAA,KAACC,sBAAAA,eAAD;GAAe,UAAU,IAAI;GAAuB,GAAI;GAAS,CAAA,EACjE,iBAAA,GAAA,kBAAA,KAAC,OAAD;GAAK,GAAI,UAAU,YAAY;aAC7B,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;IAAK,GAAI,UAAU,QAAQ,EAAE,WAAW,qBAAqB,CAAC;IAAE,GAAI;cAClE,iBAAA,GAAA,kBAAA,KAAC,OAAD;KAAK,GAAI,UAAU,QAAQ;KAAG;KAAe,CAAA;IACzC,CAAA;GACF,CAAA,CACO;;AAInB,QACE,iBAAA,GAAA,kBAAA,MAACF,qBAAAA,cAAD;EAAc,OAAO;GAAE;GAAW;GAAM;GAAS;GAAa;GAAM;YAApE,CACE,iBAAA,GAAA,kBAAA,KAACC,sBAAAA,eAAD;GAAe,UAAU,IAAI;GAAuB,GAAI;GAAS,CAAA,EACjE,iBAAA,GAAA,kBAAA,KAACC,YAAAA,KAAD;GAAK,GAAI,UAAU,QAAQ,EAAE,WAAW,qBAAqB,CAAC;GAAE,GAAI;aAClE,iBAAA,GAAA,kBAAA,KAAC,OAAD;IAAK,GAAI,UAAU,QAAQ;IAAG;IAAe,CAAA;GACzC,CAAA,CACO;;EAEjB;AAEF,KAAK,UAAUC,oBAAAA;AACf,KAAK,eAAe;AACpB,KAAK,cAAc;AACnB,KAAK,MAAMC,gBAAAA"}