grid.tsx 565 B

12345678910111213141516171819202122232425262728
  1. "use client";
  2. import { type ComponentRenderProps } from "@json-render/react";
  3. export function Grid({ element, children }: ComponentRenderProps) {
  4. const { columns, gap } = element.props as {
  5. columns?: number | null;
  6. gap?: string | null;
  7. };
  8. const gaps: Record<string, string> = {
  9. none: "0",
  10. sm: "8px",
  11. md: "16px",
  12. lg: "24px",
  13. };
  14. return (
  15. <div
  16. style={{
  17. display: "grid",
  18. gridTemplateColumns: `repeat(${columns || 2}, 1fr)`,
  19. gap: gaps[gap || "md"],
  20. }}
  21. >
  22. {children}
  23. </div>
  24. );
  25. }