{"version":3,"file":"GridColVariables.cjs","sources":["../../../../src/components/Grid/GridCol/GridColVariables.tsx"],"sourcesContent":["import {\n  filterProps,\n  getBaseValue,\n  getSortedBreakpoints,\n  InlineStyles,\n  keys,\n  useRaikouTheme,\n} from '../../../core';\nimport { GridBreakpoints, useGridContext } from '../Grid.context';\nimport type { ColSpan, GridColProps } from './GridCol';\n\ninterface GridColVariablesProps {\n  selector: string;\n  span: GridColProps['span'] | undefined;\n  order?: GridColProps['order'] | undefined;\n  offset?: GridColProps['offset'] | undefined;\n}\n\nconst getColumnFlexBasis = (colSpan: ColSpan | undefined, columns: number) => {\n  if (colSpan === 'content') {\n    return 'auto';\n  }\n\n  if (colSpan === 'auto') {\n    return '0rem';\n  }\n\n  return colSpan ? `${100 / (columns / colSpan)}%` : undefined;\n};\n\nconst getColumnMaxWidth = (\n  colSpan: ColSpan | undefined,\n  columns: number,\n  grow: boolean | undefined\n) => {\n  if (grow || colSpan === 'auto') {\n    return '100%';\n  }\n\n  if (colSpan === 'content') {\n    return 'unset';\n  }\n\n  return getColumnFlexBasis(colSpan, columns);\n};\n\nconst getColumnFlexGrow = (colSpan: ColSpan | undefined, grow: boolean | undefined) => {\n  if (!colSpan) {\n    return undefined;\n  }\n\n  return colSpan === 'auto' || grow ? '1' : 'auto';\n};\n\nconst getColumnOffset = (offset: number | undefined, columns: number) =>\n  offset === 0 ? '0' : offset ? `${100 / (columns / offset)}%` : undefined;\n\nexport function GridColVariables({ span, order, offset, selector }: GridColVariablesProps) {\n  const theme = useRaikouTheme();\n  const ctx = useGridContext();\n  const _breakpoints = ctx.breakpoints || theme.breakpoints;\n\n  const baseValue = getBaseValue(span);\n  const baseSpan = baseValue === undefined ? 12 : getBaseValue(span);\n\n  const baseStyles: Record<string, string | undefined> = filterProps({\n    '--col-order': getBaseValue(order)?.toString(),\n    '--col-flex-grow': getColumnFlexGrow(baseSpan, ctx.grow),\n    '--col-flex-basis': getColumnFlexBasis(baseSpan, ctx.columns),\n    '--col-width': baseSpan === 'content' ? 'auto' : undefined,\n    '--col-max-width': getColumnMaxWidth(baseSpan, ctx.columns, ctx.grow),\n    '--col-offset': getColumnOffset(getBaseValue(offset), ctx.columns),\n  });\n\n  const queries = keys(_breakpoints).reduce<Record<string, Record<string, any>>>(\n    (acc, breakpoint) => {\n      if (!acc[breakpoint]) {\n        acc[breakpoint] = {};\n      }\n\n      if (typeof order === 'object' && order[breakpoint] !== undefined) {\n        acc[breakpoint]['--col-order'] = order[breakpoint]?.toString();\n      }\n\n      if (typeof span === 'object' && span[breakpoint] !== undefined) {\n        acc[breakpoint]['--col-flex-grow'] = getColumnFlexGrow(span[breakpoint], ctx.grow);\n        acc[breakpoint]['--col-flex-basis'] = getColumnFlexBasis(span[breakpoint], ctx.columns);\n        acc[breakpoint]['--col-width'] = span[breakpoint] === 'content' ? 'auto' : undefined;\n        acc[breakpoint]['--col-max-width'] = getColumnMaxWidth(\n          span[breakpoint],\n          ctx.columns,\n          ctx.grow\n        );\n      }\n\n      if (typeof offset === 'object' && offset[breakpoint] !== undefined) {\n        acc[breakpoint]['--col-offset'] = getColumnOffset(offset[breakpoint], ctx.columns);\n      }\n\n      return acc;\n    },\n    {}\n  );\n\n  const sortedBreakpoints = getSortedBreakpoints(keys(queries), _breakpoints).filter(\n    (breakpoint) => keys(queries[breakpoint.value]).length > 0\n  );\n\n  const values = sortedBreakpoints.map((breakpoint) => ({\n    query:\n      ctx.type === 'container'\n        ? `raikou-grid (min-width: ${_breakpoints[breakpoint.value as keyof GridBreakpoints]})`\n        : `(min-width: ${_breakpoints[breakpoint.value as keyof GridBreakpoints]})`,\n    styles: queries[breakpoint.value],\n  }));\n\n  return (\n    <InlineStyles\n      styles={baseStyles}\n      media={ctx.type === 'container' ? undefined : values}\n      container={ctx.type === 'container' ? values : undefined}\n      selector={selector}\n    />\n  );\n}\n"],"names":["useRaikouTheme","useGridContext","getBaseValue","filterProps","keys","getSortedBreakpoints","jsx","InlineStyles"],"mappings":"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"}