/** * FolderTree component types */ /** * Tree folder node representing a folder in the hierarchical structure */ export interface TreeFolder { /** Unique identifier */ id: string; /** Folder name */ name: string; /** Parent folder ID (null for root folders) */ parentId: string | null; /** Child folders (for pre-loaded children) */ children?: TreeFolder[]; /** Number of sub-folders */ foldersCount?: number; /** Number of resources/assets */ resourcesCount?: number; /** Public access flag */ isPublic?: boolean; /** Whether the folder is expanded */ isExpanded?: boolean; /** Whether the folder is currently loading children */ isLoading?: boolean; } /** * Indentation size options */ export type IndentSize = 'sm' | 'md' | 'lg'; /** * FolderTree component props */ export interface FolderTreeProps { /** Root folders to display */ folders: TreeFolder[]; /** Currently selected folder ID */ selectedId?: string | null; /** IDs of expanded folders */ expandedIds?: string[]; /** Callback when a folder is selected */ onSelect?: (folder: TreeFolder) => void; /** Callback when a folder is expanded/collapsed */ onToggleExpand?: (folderId: string, isExpanded: boolean) => void; /** Callback to load children (for lazy loading) */ onLoadChildren?: (folderId: string) => Promise; /** Show folder and resource counts */ showCounts?: boolean; /** Show root level folder */ showRoot?: boolean; /** Root folder name */ rootName?: string; /** Indentation size */ indentSize?: IndentSize; /** Loading state for initial load */ loading?: boolean; /** Message to display when tree is empty */ emptyMessage?: string; /** Additional CSS classes */ className?: string; /** Test ID for testing (deprecated, use dataTestId) */ 'data-testid'?: string; /** Test identifier for automated testing */ dataTestId?: string; /** Data identifier for ib-ui compatibility */ dataId?: string; } /** * Internal props for tree item rendering */ export interface TreeItemProps { /** Folder data */ folder: TreeFolder; /** Nesting depth level */ depth: number; /** Whether this folder is selected */ isSelected: boolean; /** Whether this folder is expanded */ isExpanded: boolean; /** Indentation size */ indentSize: IndentSize; /** Show folder counts */ showCounts: boolean; /** Click handler */ onClick: (folder: TreeFolder) => void; /** Expand toggle handler */ onToggle: (folder: TreeFolder) => void; /** Load children handler */ onLoadChildren?: (folderId: string) => Promise; /** Child folders */ children?: TreeFolder[]; } //# sourceMappingURL=FolderTree.types.d.ts.map