{"ast":null,"code":"import * as React from 'react';\nimport classNames from 'classnames';\nimport { Slot } from './slot';\nimport { gridPropDefs } from './grid.props';\nimport { extractMarginProps, withMarginProps, extractLayoutProps, withLayoutProps, withBreakpoints, isBreakpointsObject, hasOwnProperty } from '../helpers';\nconst Grid = React.forwardRef((props, forwardedRef) => {\n  const {\n    rest: marginRest,\n    ...marginProps\n  } = extractMarginProps(props);\n  const {\n    rest: layoutRest,\n    ...layoutProps\n  } = extractLayoutProps(marginRest);\n  const {\n    className,\n    asChild,\n    display = gridPropDefs.display.default,\n    columns = gridPropDefs.columns.default,\n    rows = gridPropDefs.rows.default,\n    flow = gridPropDefs.flow.default,\n    align = gridPropDefs.align.default,\n    justify = gridPropDefs.justify.default,\n    gap = gridPropDefs.gap.default,\n    gapX = gridPropDefs.gapX.default,\n    gapY = gridPropDefs.gapY.default,\n    style: propStyle,\n    ...gridProps\n  } = layoutRest;\n  const Comp = asChild ? Slot : 'div';\n  let style = {\n    ...propStyle\n  };\n  if (typeof columns === 'string') {\n    style = {\n      '--grid-template-columns': parseGridValue(columns),\n      ...style\n    };\n  }\n  if (typeof rows === 'string') {\n    style = {\n      '--grid-template-rows': parseGridValue(rows),\n      ...style\n    };\n  }\n  if (isBreakpointsObject(columns)) {\n    for (const breakpoint in columns) {\n      if (hasOwnProperty(columns, breakpoint)) {\n        const customProperty = `--grid-template-columns-${breakpoint}`;\n        style = {\n          [customProperty]: parseGridValue(columns[breakpoint]),\n          ...style\n        };\n      }\n    }\n  }\n  if (isBreakpointsObject(rows)) {\n    for (const breakpoint in rows) {\n      if (hasOwnProperty(rows, breakpoint)) {\n        const customProperty = `--grid-template-rows-${breakpoint}`;\n        style = {\n          [customProperty]: parseGridValue(rows[breakpoint]),\n          ...style\n        };\n      }\n    }\n  }\n  return React.createElement(Comp, {\n    ...gridProps,\n    ref: forwardedRef,\n    className: classNames('rt-Grid', className, withBreakpoints(display, 'rt-r-display'), withBreakpoints(flow, 'rt-r-gaf'), withBreakpoints(align, 'rt-r-ai'), withBreakpoints(justify, 'rt-r-jc', {\n      between: 'space-between'\n    }), withBreakpoints(gap, 'rt-r-gap'), withBreakpoints(gapX, 'rt-r-cg'), withBreakpoints(gapY, 'rt-r-rg'), withLayoutProps(layoutProps), withMarginProps(marginProps)),\n    style: Object.keys(style).length ? style : undefined\n  });\n});\nGrid.displayName = 'Grid';\nfunction parseGridValue(value) {\n  return (value === null || value === void 0 ? void 0 : value.match(/^\\d+$/)) ? `repeat(${value}, minmax(0, 1fr))` : value;\n}\nexport { Grid };","map":{"version":3,"names":["React","classNames","Slot","gridPropDefs","extractMarginProps","withMarginProps","extractLayoutProps","withLayoutProps","withBreakpoints","isBreakpointsObject","hasOwnProperty","Grid","forwardRef","props","forwardedRef","rest","marginRest","marginProps","layoutRest","layoutProps","className","asChild","display","default","columns","rows","flow","align","justify","gap","gapX","gapY","style","propStyle","gridProps","Comp","parseGridValue","breakpoint","customProperty","createElement","ref","between","Object","keys","length","undefined","displayName","value","match"],"sources":["../../../src/components/grid.tsx"],"sourcesContent":[null],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}