omnify-onboarding-package
Version:
A comprehensive onboarding flow component for React applications with 5-step process including profile setup, company setup, analytics connection, asset upload, and brand guidelines.
84 lines • 2.21 kB
TypeScript
export interface User {
id: string;
name?: string;
email: string;
companyName?: string;
role?: 'CEO' | 'CMO' | 'Marketing' | 'MarketingTeam' | 'General';
}
export interface OnboardingData {
firstName: string;
lastName: string;
role: string;
companyName: string;
industry: string;
objective: string;
analyticsConnected: boolean;
selectedPlatforms: string[];
assets: Asset[];
adCopy: string;
brandGuidelines: BrandGuidelines;
}
export interface Asset {
id: string;
type: 'image' | 'text' | 'video' | 'document';
name: string;
url?: string;
file?: File;
size?: number;
uploadedAt?: string;
}
export interface BrandGuidelines {
colors: string[];
toneOfVoice: string;
targetAudience: string;
style?: string;
}
export interface OnboardingStep {
id: number;
key: string;
title: string;
description: string;
icon: string;
isCompleted: boolean;
isActive: boolean;
}
export interface OnboardingFlowProps {
user: User;
onComplete: (data: OnboardingData) => void;
onStepChange?: (step: number, data: Partial<OnboardingData>) => void;
initialData?: Partial<OnboardingData>;
showHeader?: boolean;
showFooter?: boolean;
className?: string;
}
export interface OnboardingStepProps {
step: number;
data: OnboardingData;
onNext: () => void;
onBack: () => void;
onDataChange: (data: Partial<OnboardingData>) => void;
isLastStep: boolean;
}
export interface ValidationResult {
isValid: boolean;
errors: string[];
}
export interface OnboardingConfig {
steps: OnboardingStep[];
validationRules: Record<number, (data: OnboardingData) => ValidationResult>;
customComponents?: Record<string, React.ComponentType<any>>;
theme?: {
primaryColor?: string;
secondaryColor?: string;
backgroundColor?: string;
textColor?: string;
};
}
export type OnboardingStepKey = 'profile' | 'company' | 'analytics' | 'assets' | 'brand';
export interface StepNavigation {
canGoNext: boolean;
canGoBack: boolean;
isFirstStep: boolean;
isLastStep: boolean;
}
//# sourceMappingURL=types.d.ts.map