{"version":3,"file":"index.cjs","sources":["../../../../src/components/GridContainer/GridContainer.tsx"],"sourcesContent":["import {\n  ComponentProps,\n  ComponentPropsWithRef,\n  CSSProperties,\n  ElementType,\n  forwardRef,\n  ReactNode,\n  useMemo,\n} from 'react';\nimport { cn } from '@/lib/cva';\nimport type { GridContainerProps } from './GridContainer.types';\nimport styles from './GridContainer.module.css';\n\ntype GridContainerPolymorphicComponent = <T extends ElementType = 'div'>(\n  props: Omit<ComponentProps<T>, keyof GridContainerProps<T>> & GridContainerProps<T>\n) => ReactNode;\n\nconst _GridContainer = <T extends ElementType = 'div'>(\n  {\n    alignItems = 'stretch',\n    alignContent = 'stretch',\n    children,\n    columnGap,\n    gap,\n    gridAutoColumns,\n    gridAutoFlow,\n    gridAutoRows,\n    gridTemplateAreas,\n    gridTemplateColumns,\n    gridTemplateRows,\n    gridTemplate,\n    inline = false,\n    isResponsive = true,\n    justifyContent = 'stretch',\n    justifyItems = 'stretch',\n    rowGap,\n    height,\n    maxHeight,\n    minHeight,\n    fillWidth = true,\n    maxWidth,\n    minWidth,\n    overflow,\n    component,\n    className,\n    style,\n    ...props\n  }: Omit<ComponentProps<T>, keyof GridContainerProps<T>> & GridContainerProps<T>,\n  ref: ComponentPropsWithRef<T>['ref']\n) => {\n  const Component = component ?? 'div';\n\n  // `_GridContainer` is a real component (wrapped by `forwardRef` below); the\n  // rules-of-hooks PascalCase-name heuristic false-positives on our\n  // `_`-prefixed polymorphic-component naming convention.\n  // eslint-disable-next-line react-hooks/rules-of-hooks\n  const mergedStyle = useMemo(\n    () =>\n      ({\n        '--grid-container-display': inline === true ? 'inline-grid' : 'grid',\n        '--grid-container-align-items': alignItems,\n        '--grid-container-align-content': alignContent,\n        '--grid-container-justify-content': justifyContent,\n        '--grid-container-justify-items': justifyItems,\n        '--grid-container-width': fillWidth ? '100%' : 'auto',\n        ...(gap && {\n          '--grid-container-gap': `var(--click-gridContainer-gap-${gap})`,\n        }),\n        ...(columnGap && {\n          columnGap: `var(--click-gridContainer-gap-${columnGap})`,\n        }),\n        ...(rowGap && {\n          rowGap: `var(--click-gridContainer-gap-${rowGap})`,\n        }),\n        ...(gridAutoColumns && {\n          '--grid-container-auto-columns': gridAutoColumns,\n        }),\n        ...(gridAutoFlow && { '--grid-container-auto-flow': gridAutoFlow }),\n        ...(gridAutoRows && { '--grid-container-auto-rows': gridAutoRows }),\n        ...(gridTemplateAreas && {\n          '--grid-container-template-area': gridTemplateAreas,\n        }),\n        ...(gridTemplateColumns && {\n          '--grid-container-template-columns': gridTemplateColumns,\n        }),\n        ...(gridTemplateRows && {\n          '--grid-container-template-rows': gridTemplateRows,\n        }),\n        ...(gridTemplate && { gridTemplate }),\n        ...(typeof maxWidth === 'string' && {\n          '--grid-container-max-width': maxWidth,\n        }),\n        ...(typeof minWidth === 'string' && {\n          '--grid-container-min-width': minWidth,\n        }),\n        ...(typeof height === 'string' && {\n          '--grid-container-height': height,\n        }),\n        ...(typeof maxHeight === 'string' && {\n          '--grid-container-max-height': maxHeight,\n        }),\n        ...(typeof minHeight === 'string' && {\n          '--grid-container-min-height': minHeight,\n        }),\n        ...(typeof overflow === 'string' && {\n          '--grid-container-overflow': overflow,\n        }),\n        ...style,\n      }) as CSSProperties,\n    [\n      inline,\n      alignItems,\n      alignContent,\n      justifyContent,\n      justifyItems,\n      fillWidth,\n      gap,\n      columnGap,\n      rowGap,\n      gridAutoColumns,\n      gridAutoFlow,\n      gridAutoRows,\n      gridTemplateAreas,\n      gridTemplateColumns,\n      gridTemplateRows,\n      gridTemplate,\n      maxWidth,\n      minWidth,\n      height,\n      maxHeight,\n      minHeight,\n      overflow,\n      style,\n    ]\n  );\n\n  return (\n    <Component\n      data-testid=\"grid-container\"\n      ref={ref}\n      {...props}\n      style={mergedStyle}\n      className={cn(\n        styles['grid-container'],\n        isResponsive\n          ? styles['grid-container_responsive']\n          : styles['grid-container_not-responsive'],\n        className\n      )}\n    >\n      {children}\n    </Component>\n  );\n};\n\nexport const GridContainer: GridContainerPolymorphicComponent =\n  forwardRef(_GridContainer);\n"],"names":["useMemo","jsx","cn","styles","forwardRef"],"mappings":"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"}