diff --git a/component-library/src/assets/gebos/full-hero-section.avif b/component-library/src/assets/gebos/full-hero-section.avif new file mode 100644 index 0000000..f62f910 Binary files /dev/null and b/component-library/src/assets/gebos/full-hero-section.avif differ diff --git a/component-library/src/assets/gebos/full-hero-section.webp b/component-library/src/assets/gebos/full-hero-section.webp new file mode 100644 index 0000000..f5f9269 Binary files /dev/null and b/component-library/src/assets/gebos/full-hero-section.webp differ diff --git a/component-library/src/assets/gebos/house-small-isometric.avif b/component-library/src/assets/gebos/house-small-isometric.avif new file mode 100644 index 0000000..18eb94a Binary files /dev/null and b/component-library/src/assets/gebos/house-small-isometric.avif differ diff --git a/component-library/src/assets/gebos/house-small-isometric.webp b/component-library/src/assets/gebos/house-small-isometric.webp new file mode 100644 index 0000000..822e86f Binary files /dev/null and b/component-library/src/assets/gebos/house-small-isometric.webp differ diff --git a/component-library/src/assets/gebos/laptop-portfolio.avif b/component-library/src/assets/gebos/laptop-portfolio.avif new file mode 100644 index 0000000..c10b267 Binary files /dev/null and b/component-library/src/assets/gebos/laptop-portfolio.avif differ diff --git a/component-library/src/assets/gebos/laptop-portfolio.webp b/component-library/src/assets/gebos/laptop-portfolio.webp new file mode 100644 index 0000000..3119a28 Binary files /dev/null and b/component-library/src/assets/gebos/laptop-portfolio.webp differ diff --git a/component-library/src/assets/gebos/refresh-loop-cloud.avif b/component-library/src/assets/gebos/refresh-loop-cloud.avif new file mode 100644 index 0000000..3278a52 Binary files /dev/null and b/component-library/src/assets/gebos/refresh-loop-cloud.avif differ diff --git a/component-library/src/assets/gebos/refresh-loop-cloud.webp b/component-library/src/assets/gebos/refresh-loop-cloud.webp new file mode 100644 index 0000000..4265e86 Binary files /dev/null and b/component-library/src/assets/gebos/refresh-loop-cloud.webp differ diff --git a/component-library/src/assets/gebos/refresh-loop.avif b/component-library/src/assets/gebos/refresh-loop.avif new file mode 100644 index 0000000..921aa36 Binary files /dev/null and b/component-library/src/assets/gebos/refresh-loop.avif differ diff --git a/component-library/src/assets/gebos/refresh-loop.webp b/component-library/src/assets/gebos/refresh-loop.webp new file mode 100644 index 0000000..6050bb6 Binary files /dev/null and b/component-library/src/assets/gebos/refresh-loop.webp differ diff --git a/component-library/src/assets/gebos/technician-pipe.avif b/component-library/src/assets/gebos/technician-pipe.avif new file mode 100644 index 0000000..a0b3d8f Binary files /dev/null and b/component-library/src/assets/gebos/technician-pipe.avif differ diff --git a/component-library/src/assets/gebos/technician-pipe.webp b/component-library/src/assets/gebos/technician-pipe.webp new file mode 100644 index 0000000..095bd7b Binary files /dev/null and b/component-library/src/assets/gebos/technician-pipe.webp differ diff --git a/component-library/src/assets/gebos/worker-drilling-gateway-2.avif b/component-library/src/assets/gebos/worker-drilling-gateway-2.avif new file mode 100644 index 0000000..87d3838 Binary files /dev/null and b/component-library/src/assets/gebos/worker-drilling-gateway-2.avif differ diff --git a/component-library/src/assets/gebos/worker-drilling-gateway-2.webp b/component-library/src/assets/gebos/worker-drilling-gateway-2.webp new file mode 100644 index 0000000..6f073ea Binary files /dev/null and b/component-library/src/assets/gebos/worker-drilling-gateway-2.webp differ diff --git a/component-library/src/assets/gebos/worker-drilling-gateway.avif b/component-library/src/assets/gebos/worker-drilling-gateway.avif new file mode 100644 index 0000000..c63c770 Binary files /dev/null and b/component-library/src/assets/gebos/worker-drilling-gateway.avif differ diff --git a/component-library/src/assets/gebos/worker-drilling-gateway.webp b/component-library/src/assets/gebos/worker-drilling-gateway.webp new file mode 100644 index 0000000..693e3a6 Binary files /dev/null and b/component-library/src/assets/gebos/worker-drilling-gateway.webp differ diff --git a/component-library/src/components/gebos/benefit-grid.tsx b/component-library/src/components/gebos/benefit-grid.tsx new file mode 100644 index 0000000..11a9e3e --- /dev/null +++ b/component-library/src/components/gebos/benefit-grid.tsx @@ -0,0 +1,56 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" +import { Card } from "@/components/ui/card" + +type BenefitGridItem = { + icon: React.ReactNode + title: React.ReactNode + text: React.ReactNode +} + +/** + * Benefit cards ringing a product render: three across the top row, two + * flanking the render below. Built for five items — the render claims the + * bottom row's middle cell from `lg`, and grid auto-placement then pushes the + * fifth card past it into the last column, so no card needs explicit coords. + * + * The middle cell is handed to the caller as a positioned, never-clipped + * containing block, so the visual can fill it or lap out of it as its own + * matte requires — sizing it is the caller's job. Below `lg` the placement is + * dropped and the visual simply trails the cards. + */ +function BenefitGrid({ + items, + visual, + className, +}: { + items: BenefitGridItem[] + visual: React.ReactNode + className?: string +}) { + return ( +
+ {item.text} +
++ {item.sub} +
+ ) : null} ++ {lead} +
+ {takeaway ? ( ++ {takeaway} +
+ ) : null} ++ {step.description} +
+ ) : null} +