{"version":3,"file":"SimpleGridVariables.cjs","sources":["../../../src/components/SimpleGrid/SimpleGridVariables.tsx"],"sourcesContent":["import {\n  filterProps,\n  getBaseValue,\n  getSortedBreakpoints,\n  getSpacing,\n  InlineStyles,\n  keys,\n  px,\n  RaikouBreakpoint,\n  useRaikouTheme,\n} from '../../core';\nimport type { SimpleGridProps } from './SimpleGrid';\n\ninterface SimpleGridVariablesProps extends SimpleGridProps {\n  selector: string;\n}\n\nexport function SimpleGridMediaVariables({\n  spacing,\n  verticalSpacing,\n  cols,\n  selector,\n}: SimpleGridVariablesProps) {\n  const theme = useRaikouTheme();\n  const _verticalSpacing = verticalSpacing === undefined ? spacing : verticalSpacing;\n\n  const baseStyles: Record<string, string | undefined> = filterProps({\n    '--sg-spacing-x': getSpacing(getBaseValue(spacing)),\n    '--sg-spacing-y': getSpacing(getBaseValue(_verticalSpacing)),\n    '--sg-cols': getBaseValue(cols)?.toString(),\n  });\n\n  const queries = keys(theme.breakpoints).reduce<Record<string, Record<string, any>>>(\n    (acc, breakpoint) => {\n      if (!acc[breakpoint]) {\n        acc[breakpoint] = {};\n      }\n\n      if (typeof spacing === 'object' && spacing[breakpoint] !== undefined) {\n        acc[breakpoint]['--sg-spacing-x'] = getSpacing(spacing[breakpoint]);\n      }\n\n      if (typeof _verticalSpacing === 'object' && _verticalSpacing[breakpoint] !== undefined) {\n        acc[breakpoint]['--sg-spacing-y'] = getSpacing(_verticalSpacing[breakpoint]);\n      }\n\n      if (typeof cols === 'object' && cols[breakpoint] !== undefined) {\n        acc[breakpoint]['--sg-cols'] = cols[breakpoint];\n      }\n\n      return acc;\n    },\n    {}\n  );\n\n  const sortedBreakpoints = getSortedBreakpoints(keys(queries), theme.breakpoints).filter(\n    (breakpoint) => keys(queries[breakpoint.value]).length > 0\n  );\n\n  const media = sortedBreakpoints.map((breakpoint) => ({\n    query: `(min-width: ${theme.breakpoints[breakpoint.value as RaikouBreakpoint]})`,\n    styles: queries[breakpoint.value],\n  }));\n\n  return <InlineStyles styles={baseStyles} media={media} selector={selector} />;\n}\n\nfunction getBreakpoints(values: unknown) {\n  if (typeof values === 'object' && values !== null) {\n    return keys(values);\n  }\n\n  return [];\n}\n\nfunction sortBreakpoints(breakpoints: string[]) {\n  return breakpoints.sort((a, b) => (px(a) as number) - (px(b) as number));\n}\n\nfunction getUniqueBreakpoints({\n  spacing,\n  verticalSpacing,\n  cols,\n}: Omit<SimpleGridVariablesProps, 'selector'>) {\n  const breakpoints = Array.from(\n    new Set([\n      ...getBreakpoints(spacing),\n      ...getBreakpoints(verticalSpacing),\n      ...getBreakpoints(cols),\n    ])\n  );\n\n  return sortBreakpoints(breakpoints);\n}\n\nexport function SimpleGridContainerVariables({\n  spacing,\n  verticalSpacing,\n  cols,\n  selector,\n}: SimpleGridVariablesProps) {\n  const _verticalSpacing = verticalSpacing === undefined ? spacing : verticalSpacing;\n\n  const baseStyles: Record<string, string | undefined> = filterProps({\n    '--sg-spacing-x': getSpacing(getBaseValue(spacing)),\n    '--sg-spacing-y': getSpacing(getBaseValue(_verticalSpacing)),\n    '--sg-cols': getBaseValue(cols)?.toString(),\n  });\n\n  const uniqueBreakpoints = getUniqueBreakpoints({ spacing, verticalSpacing, cols });\n\n  const queries = uniqueBreakpoints.reduce<Record<string, Record<string, any>>>(\n    (acc, breakpoint) => {\n      if (!acc[breakpoint]) {\n        acc[breakpoint] = {};\n      }\n\n      if (typeof spacing === 'object' && spacing[breakpoint] !== undefined) {\n        acc[breakpoint]['--sg-spacing-x'] = getSpacing(spacing[breakpoint]);\n      }\n\n      if (typeof _verticalSpacing === 'object' && _verticalSpacing[breakpoint] !== undefined) {\n        acc[breakpoint]['--sg-spacing-y'] = getSpacing(_verticalSpacing[breakpoint]);\n      }\n\n      if (typeof cols === 'object' && cols[breakpoint] !== undefined) {\n        acc[breakpoint]['--sg-cols'] = cols[breakpoint];\n      }\n\n      return acc;\n    },\n    {}\n  );\n\n  const media = uniqueBreakpoints.map((breakpoint) => ({\n    query: `simple-grid (min-width: ${breakpoint})`,\n    styles: queries[breakpoint],\n  }));\n\n  return <InlineStyles styles={baseStyles} container={media} selector={selector} />;\n}\n"],"names":["useRaikouTheme","filterProps","getSpacing","getBaseValue","keys","getSortedBreakpoints","jsx","InlineStyles","px"],"mappings":"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"}