UNPKG

@a24z/dynamic-file-tree

Version:

React component for selective directory filtering and file tree visualization

44 lines 2.02 kB
import { Theme } from '@a24z/industry-theme'; import type { FileTreeSource, LoadedFileTreeSource } from '@principal-ai/repository-abstraction'; import { DirectoryFilter } from '../DirectoryFilterInput'; export interface MultiFileTreeCoreProps { /** Array of loaded file tree sources to display */ sources: LoadedFileTreeSource[]; /** Theme for styling the component */ theme: Theme; /** Currently selected directory paths */ selectedDirectories?: string[]; /** Current directory filters */ filters?: DirectoryFilter[]; /** View mode: 'all' shows all files, 'selected' shows only filtered directories */ viewMode?: 'all' | 'selected'; /** Callback when a file is selected */ onFileSelect?: (source: FileTreeSource, filePath: string) => void; /** Callback when directory filters change */ onFiltersChange?: (filters: DirectoryFilter[]) => void; /** Callback when view mode changes */ onViewModeChange?: (mode: 'all' | 'selected') => void; /** Initial open state for tree nodes (map of node ID to boolean) */ initialOpenState?: Record<string, boolean>; /** Default to opening all nodes (default: false - closed) */ defaultOpen?: boolean; /** Optional padding for the file tree container */ padding?: string; } export interface MultiFileTreeProps extends Omit<MultiFileTreeCoreProps, 'filters' | 'viewMode' | 'onFiltersChange' | 'onViewModeChange'> { /** Show the header with title and view mode toggle */ showHeader?: boolean; /** Show the directory filter input */ showFilters?: boolean; /** Show the view mode toggle buttons */ showViewModeToggle?: boolean; /** Show the selected file indicator */ showSelectedFileIndicator?: boolean; /** Initial view mode */ initialViewMode?: 'all' | 'selected'; /** Custom root directory name (default: "Repositories") */ rootDirectoryName?: string; /** Custom title for the header */ title?: string; } //# sourceMappingURL=types.d.ts.map