/** * Auto-generated component prop types from design document * Generated at: 2025-12-19T06:09:11.387360 * DO NOT EDIT - Regenerate with generate_types.py */ import type { User, Recording, GeneratedApp, } from './types'; export type SidebarNavigatePayload = string; export type LoginFormSuccessPayload = User; export type LoginFormErrorPayload = string; export type RegisterFormSuccessPayload = User; export type RegisterFormErrorPayload = string; export type RecordButtonStoprecordingPayload = Blob; export type RecordingListSelectrecordingPayload = string; export type RecordingListDeleterecordingPayload = string; export type RecordingCardClickPayload = string; export type RecordingCardDeletePayload = string; export type AudioPlayerPlaypausePayload = boolean; export type AudioPlayerSeekPayload = number; export type AppGallerySelectappPayload = string; export type AppCardClickPayload = string; export type AppCardDeletePayload = string; export interface HeaderProps { /** Current user for displaying name/avatar */ user?: User | null; } export interface SidebarProps { /** Current route path for highlighting */ activePath: string; /** Fired when navigation item clicked */ onNavigate?: (payload: SidebarNavigatePayload) => void; } export interface HeroProps { /** Fired when CTA button clicked */ onGetStarted?: () => void; } export interface FeaturesProps { } export interface LoginFormProps { /** Fired when login successful */ onSuccess?: (payload: LoginFormSuccessPayload) => void; /** Fired when login fails */ onError?: (payload: LoginFormErrorPayload) => void; } export interface RegisterFormProps { /** Fired when registration successful */ onSuccess?: (payload: RegisterFormSuccessPayload) => void; /** Fired when registration fails */ onError?: (payload: RegisterFormErrorPayload) => void; } export interface RecordButtonProps { /** Whether currently recording */ isRecording: boolean; /** Whether transcribing in real-time */ isTranscribing?: boolean; /** Fired when recording starts */ onStartRecording?: () => void; /** Fired when recording stops, includes audio blob */ onStopRecording?: (payload: RecordButtonStoprecordingPayload) => void; } export interface WakeWordIndicatorProps { /** Whether wake word detection is active */ isListening: boolean; /** The wake word phrase */ wakeWord: string; /** Fired when wake word is detected */ onWakeWordDetected?: () => void; } export interface RecordingListProps { /** Array of recordings to display */ recordings: Recording[]; /** Whether recordings are being loaded */ isLoading?: boolean; /** Fired when recording is clicked, payload is recording ID */ onSelectRecording?: (payload: RecordingListSelectrecordingPayload) => void; /** Fired when delete confirmed, payload is recording ID */ onDeleteRecording?: (payload: RecordingListDeleterecordingPayload) => void; } export interface RecordingCardProps { /** Recording to display */ recording: Recording; /** Show edit/delete buttons */ showActions?: boolean; /** Fired when card clicked, payload is recording ID */ onClick?: (payload: RecordingCardClickPayload) => void; /** Fired when delete confirmed, payload is recording ID */ onDelete?: (payload: RecordingCardDeletePayload) => void; } export interface AudioPlayerProps { /** URL to audio file */ audioUrl: string; /** Duration in seconds */ duration: number; /** Fired when play/pause toggled, payload is isPlaying */ onPlayPause?: (payload: AudioPlayerPlaypausePayload) => void; /** Fired when user seeks, payload is new time in seconds */ onSeek?: (payload: AudioPlayerSeekPayload) => void; } export interface TranscriptViewerProps { /** Transcript text to display */ transcript: string; /** Whether showing live transcription */ isLive?: boolean; } export interface SummaryDisplayProps { /** AI-generated summary text */ summary: string; /** Whether summary is being generated */ isLoading?: boolean; } export interface AppGalleryProps { /** Array of generated apps to display */ apps: GeneratedApp[]; /** Whether apps are being loaded */ isLoading?: boolean; /** Fired when app is clicked, payload is app ID */ onSelectApp?: (payload: AppGallerySelectappPayload) => void; } export interface AppCardProps { /** Generated app to display */ app: GeneratedApp; /** Show delete button */ showActions?: boolean; /** Fired when card clicked, payload is app ID */ onClick?: (payload: AppCardClickPayload) => void; /** Fired when delete confirmed, payload is app ID */ onDelete?: (payload: AppCardDeletePayload) => void; } export interface AppIframeViewerProps { /** HTML content to render in iframe */ htmlContent: string; /** App title for accessibility */ title: string; /** Fired when iframe finishes loading */ onLoadComplete?: () => void; }