Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Google Cloud Grid Integration Block for React

An integration grid section for an event-loading tool connecting to Google Cloud: four export tables as a two-by-two of cells, each with an indeterminate parent checkbox over its BigQuery columns, personal-data columns off by default, and a worked-out tally.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

An integration grid section for React with Base UI, written for Ferrybase, a fictional tool that loads a product's events into BigQuery, and its Google Cloud connection. A compact header ("Choose the columns each table gets") has the mark pair at its end. Under a band rule, a polite status line gives the tally worked out from the columns ("27 of 30 columns will be written, 0 of 2 holding personal data"). Below it, four export tables (events, sessions, users, invoices) form a two-by-two of cells with overshoot corners. Each cell has a parent checkbox that is indeterminate when only some of its columns are on (one press turns them all on, or all off when all were on), the count of its columns, and a Collapsible of its columns: a checkbox, the column name in code and its BigQuery type (STRING, TIMESTAMP, JSON, INT64, BOOL). email and ip_address carry a "Personal data" badge and start off, together with the free-form traits column. On a phone the cells stack in one column and each one folds with its Collapsible. The page's rails and top rule come from the Guides spine. It's built from Guides, Checkbox, Collapsible, Field and Badge, with your theme's tokens for every colour. Google Cloud is named in text only: no Google logo, colour or wordmark ships with the block. Nothing is sent to Google Cloud, and the tables and columns are example data.

FAQ

How do I change the tables and columns?

Edit TABLES at the top of the file: each table has a name and its columns, each built with col(name, type) or person(name, type) for a column that holds personal data. START_OFF lists the columns that begin unticked, as table.column keys, because column names repeat across tables (user_id). The counts, the parent checkbox states and the tally line are all worked out from those lists.

How does the parent checkbox work?

It shows three states: on when every column of the table is on, off when none is, and a bar (indeterminate) when only some are. Pressing it never chooses between the two halves: it turns every column on, or all of them off when all were on already. The bar is drawn by the block in the same way on every base, so it looks the same in each library. It is named by the table it belongs to.

What does Personal data mean here?

It is a label you set per column: email and ip_address carry the badge, start off, and are counted in the tally ("0 of 2 holding personal data"). The block does not detect personal data; mark the columns your own schema treats that way, and decide in your product what an off column means (here it is never written to the BigQuery table).

Does ticking a column change anything in Google Cloud?

No. The block reads and writes nothing: the choices stay in the page, and the status line under the header says so from the first paint ("Nothing is sent to Google Cloud; your choices stay in this page."). In a real product, save the chosen column list with your own settings and build each table's schema from it.

How does it work with keyboards and screen readers?

Every column and every parent is a real checkbox, in a labelled cell, and each Collapsible trigger is a button named for its table ("Columns of events") that reports whether it is open. The tally line is polite, so each change is read out. Types and names keep their left-to-right order in a right-to-left layout.

How does it fit on a phone and with reduced motion?

The two-by-two becomes one column, and each cell can be folded with its chevron to shorten the page. The header fades up once on load and the folding and the chevron animate briefly; reduced motion turns all of it off. The overshoot corners need room beside the cells, so the grid keeps the page's side padding.

  • Pro

    An integration detail section for an event-loading tool connecting to Google Cloud: a header with the mark pair and Connect Google Cloud, three steps, a live project ID field, and an accordion of three IAM roles whose gcloud commands already carry the project ID typed, each with a Copy button.

  • Pro

    An integration list section for an event-loading tool connecting to Google Cloud: daily BigQuery partitions as rows in a fixed, focusable window seven rows tall, a 7 or 14 day choice, size and a bar worked out from the rows, and a working Backfill on the days that failed or arrived short.

  • Pro

    An integration setup section for an event pipeline connecting to Google Cloud: a project ID that is checked as you type, four gcloud commands built around it, a key-file drop zone that never reads the file, a dataset and a location.

  • Pro

    An integration stats section for an event pipeline on Google Cloud: a gauge of how much of BigQuery's free query tier the dashboards used, three figures and the three biggest queries, all derived from typed data.

  • Pro

    AWS Grid Integration

    Switch and tick grids

    An integration grid section for a cloud cost tool reading from AWS: eight service tiles you tick, and one stacked bar and coverage figure that follow every tick, counted from last month's typed spend.

  • Pro

    GitHub Grid Integration

    Cards and previews

    An integration grid section for a release-notes tool reading from GitHub: five check rows with a switch each, and a drawn pull request box whose merge button reads Merge or Waiting on a count of checks as you switch them.