Data Import Split

Deep green gradient backdrop

Import member records

Drop a CSV or browse — we map the fields

members_export_2026.csv72%
Bring your data

Your records move over in one drop

Export from whatever you use today, drop the file in, and Sirius maps the fields for you. No re-typing, no data-entry week.

01

Export what you have

A CSV from your old system, or a direct export.

02

Drop it in

We detect the columns and match them for you.

03

Review and go live

Confirm the preview and your team is ready to book.

About this block

Data Import SplitPRO

A reversed split with an image tile floating a live import dropzone on the left, and an eyebrow, light heading, three monospace-numbered steps, and an accent button on the right.

Onboarding32: Data Import Split

Two-column split layout with a floating live import dropzone over a background photo on one side, and an eyebrow, light heading, three monospace-numbered steps, and a CTA button on the other. Static content, the only "live" piece is the embedded dropzone component.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/onboarding32?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/onboarding32?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/onboarding32.tsx, the badge23 and button21 components it renders (the eyebrow pill and the accent CTA button), the upload32 piece embedded in the demo as the floating import dropzone, and its dependencies.

Quick start

The installed file exports onboarding32Demo alongside the block: the exact props behind the preview above. Spread it to get a working data-import split in one line.

tsx
import { Onboarding32, onboarding32Demo } from "@/components/beste/block/onboarding32";

export default function OnboardingPage() {
  return <Onboarding32 {...onboarding32Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Onboarding32 } from "@/components/beste/block/onboarding32";
import { Upload32 } from "@/components/beste/piece/upload32";

export default function OnboardingPage() {
  return (
    <Onboarding32
      badge={{ label: "Bring your data" }}
      heading="Your records move over in one drop"
      description="Export from whatever you use today, drop the file in, and we map the fields."
      steps={[
        { title: "Export what you have", description: "A CSV from your old system." },
        { title: "Drop it in", description: "We detect the columns and match them." },
        { title: "Review and go live", description: "Confirm the preview and go." },
      ]}
      button={{ label: "Start your import", href: "https://beste.co" }}
      media={
        <Upload32
          title="Import member records"
          hint="Drop a CSV or browse"
          file={{ name: "members.csv", percent: 40 }}
        />
      }
      image={{
        src: "https://images.unsplash.com/photo-1699391202824-247ed6fbc484?w=1200&h=900&fit=crop",
        alt: "Deep green gradient backdrop",
      }}
    />
  );
}

Props

PropTypeDefaultDescription
badgeBadgeEyebrow pill above the heading
headingstringRight-column headline
descriptionstringRight-column supporting copy
stepsStep[][]Ordered, numbered step list
buttonActionLinkCTA rendered below the steps
mediaReactNodeContent rendered inside the left media tile
imageTileImageBackground photo behind media
classNamestringExtra classes for the outer <section>
ts
type Badge = { label: string };
type ActionLink = { label: string; href: string };
type Step = { title: string; description: string };
type TileImage = { src: string; alt: string };

Behavior notes

  • media is typed as a plain React.ReactNode, not the image | video | component discriminated union used elsewhere in this registry for media slots; the demo fills it with a live <Upload32 /> piece instance directly, so swapping the media means passing different JSX rather than a different data shape.
  • image only renders when media is also set, both the background <img> and the media node live inside the same {media && (...)} conditional block, so passing only image without media renders neither the photo nor the dropzone column.
  • When media is omitted, the two-column grid (md:grid-cols-2) collapses to a single rendered child: the text column becomes the grid's only item and occupies the first track, leaving the second column blank on desktop instead of stretching to fill the row.
  • When present, image fills the tile edge-to-edge (absolute inset-0 object-cover) behind media, which is layered on top via relative z-10, so any live piece placed in media needs its own opaque chrome to stay legible over the photo.
  • Steps are numbered from the array index the same way as onboarding31 (padStart(2, "0")), and the CTA (Button21) sits below the steps in the text column rather than beside the media tile.

More Onboarding blocks

View all Onboarding
PRO

onboarding38

Data Import Reassurance

An import section leading with an image tile that floats a live upload dropzone, then setting out the formats that are read and the records that come across as two checked hairline lists.

PRO

onboarding26

Data Import Selector

Onboarding screen with import options from other platforms, CSV upload, and manual entry. Perfect for SaaS migration flows that help users bring existing data into the platform.

PRO

onboarding31

Three Step Getting Started

A getting-started section with an eyebrow over a hairline rule, a two-column heading, three monospace-numbered steps under their own hairlines, and an accent button.

PRO

onboarding35

Tracked Setup Sequence

A setup section listing four numbered steps with who owns each one, against a column that sticks while they scroll and floats a live step tracker on an image tile.

FREE

onboarding43

Guided Workspace Setup

A two-column setup section: the pitch and what each answer changes on the left, and a one-question-at-a-time wizard on the right that ends in a review of everything it is about to create.

PRO

onboarding10

Accordion Steps with Expandable Actions

Interactive accordion layout where each step expands to reveal detailed instructions and action buttons. Perfect for setup guides that let users complete tasks at their own pace.