carepath-api / interpreter /frontend /src /components /OnboardingFrame.tsx
tranth3truong's picture
Deploy public Scribe-only CarePath Space
cc678b9
Raw
History Blame Contribute Delete
1.08 kB
import type { ReactNode } from "react";
import { type Language } from "../copy";
import { OnboardingStepper } from "./OnboardingStepper";
type OnboardingFrameProps = {
language: Language;
consentSubmitted?: boolean;
kicker: string;
title: string;
titleId?: string;
children: ReactNode;
};
/** Shared onboarding layout: compact horizontal stepper, product kicker and
* screen title, then the screen's own content — used by the intent quiz,
* consent gate, and device check so they read as one flow. */
export function OnboardingFrame({ language, consentSubmitted = false, kicker, title, titleId, children }: OnboardingFrameProps) {
return (
<main className="page onboarding" lang={language}>
<div className="onboarding-frame">
<OnboardingStepper consentSubmitted={consentSubmitted} language={language} />
<div className="onboarding-frame__head">
<p className="onboarding-kicker">{kicker}</p>
<h1 className="onboarding-title" id={titleId}>{title}</h1>
</div>
{children}
</div>
</main>
);
}