project-standalo-note-to-app/types/component-props.ts

156 lines
4.8 KiB
TypeScript

/**
* 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;
}