UNPKG

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.

166 lines (152 loc) 5.09 kB
import React$1 from 'react'; interface User { id: string; name?: string; email: string; companyName?: string; role?: 'CEO' | 'CMO' | 'Marketing' | 'MarketingTeam' | 'General'; } interface OnboardingData { firstName: string; lastName: string; role: string; companyName: string; industry: string; objective: string; analyticsConnected: boolean; selectedPlatforms: string[]; assets: Asset[]; adCopy: string; brandGuidelines: BrandGuidelines; } interface Asset { id: string; type: 'image' | 'text' | 'video' | 'document'; name: string; url?: string; file?: File; size?: number; uploadedAt?: string; } interface BrandGuidelines { colors: string[]; toneOfVoice: string; targetAudience: string; style?: string; } interface OnboardingStep { id: number; key: string; title: string; description: string; icon: string; isCompleted: boolean; isActive: boolean; } interface OnboardingFlowProps { user: User; onComplete: (data: OnboardingData) => void; onStepChange?: (step: number, data: Partial<OnboardingData>) => void; initialData?: Partial<OnboardingData>; showHeader?: boolean; showFooter?: boolean; className?: string; } interface OnboardingStepProps { step: number; data: OnboardingData; onNext: () => void; onBack: () => void; onDataChange: (data: Partial<OnboardingData>) => void; isLastStep: boolean; } interface ValidationResult { isValid: boolean; errors: string[]; } 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; }; } type OnboardingStepKey = 'profile' | 'company' | 'analytics' | 'assets' | 'brand'; interface StepNavigation { canGoNext: boolean; canGoBack: boolean; isFirstStep: boolean; isLastStep: boolean; } declare const OnboardingFlow: React$1.FC<OnboardingFlowProps>; declare const ProfileStep: React$1.FC<OnboardingStepProps>; declare const CompanyStep: React$1.FC<OnboardingStepProps>; declare const AnalyticsStep: React$1.FC<OnboardingStepProps>; declare const AssetsStep: React$1.FC<OnboardingStepProps>; declare const BrandStep: React$1.FC<OnboardingStepProps>; interface ProgressIndicatorProps { steps: OnboardingStep[]; currentStep: number; onStepClick: (stepId: number) => void; } declare const ProgressIndicator: React$1.FC<ProgressIndicatorProps>; interface HeaderProps { user?: User; } declare const Header: React$1.FC<HeaderProps>; declare const Footer: React$1.FC; declare const validateProfileStep: (data: OnboardingData) => ValidationResult; declare const validateCompanyStep: (data: OnboardingData) => ValidationResult; declare const validateAnalyticsStep: (data: OnboardingData) => ValidationResult; declare const validateAssetsStep: (data: OnboardingData) => ValidationResult; declare const validateBrandStep: (data: OnboardingData) => ValidationResult; declare const validateStep: (step: number, data: OnboardingData) => ValidationResult; declare const validateAllSteps: (data: OnboardingData) => ValidationResult; declare const ONBOARDING_STEPS: { id: number; key: string; title: string; description: string; icon: string; isCompleted: boolean; isActive: boolean; }[]; declare const ROLE_OPTIONS: { value: string; label: string; }[]; declare const INDUSTRY_OPTIONS: string[]; declare const MARKETING_OBJECTIVES: string[]; declare const PLATFORM_OPTIONS: { value: string; label: string; icon: string; }[]; declare const TONE_OF_VOICE_OPTIONS: string[]; declare const TARGET_AUDIENCE_OPTIONS: string[]; declare const BRAND_STYLE_OPTIONS: { value: string; label: string; icon: string; }[]; declare const BRAND_COLORS: { primary: string[]; neutral: string[]; }; declare const FILE_UPLOAD_CONFIG: { maxFileSize: number; acceptedFileTypes: { 'image/*': string[]; 'application/pdf': string[]; 'text/csv': string[]; 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': string[]; 'application/vnd.ms-excel': string[]; }; maxFiles: number; }; export { AnalyticsStep, AssetsStep, BRAND_COLORS, BRAND_STYLE_OPTIONS, BrandStep, CompanyStep, FILE_UPLOAD_CONFIG, Footer, Header, INDUSTRY_OPTIONS, MARKETING_OBJECTIVES, ONBOARDING_STEPS, OnboardingFlow, PLATFORM_OPTIONS, ProfileStep, ProgressIndicator, ROLE_OPTIONS, TARGET_AUDIENCE_OPTIONS, TONE_OF_VOICE_OPTIONS, validateAllSteps, validateAnalyticsStep, validateAssetsStep, validateBrandStep, validateCompanyStep, validateProfileStep, validateStep }; export type { Asset, BrandGuidelines, OnboardingConfig, OnboardingData, OnboardingFlowProps, OnboardingStep, OnboardingStepKey, OnboardingStepProps, StepNavigation, User, ValidationResult };