FS UI API reference
Exports of @anymux/fs-ui. Back to the module
Classes
FileBrowserModel
classclass FileBrowserModel
fileSystem
propertyfileSystem: IFileSystem
fileSystemBridge
propertyfileSystemBridge: FileSystemBridge
treeProvider
propertytreeProvider: FileSystemTreeProvider
listProvider
propertylistProvider: FileSystemListProvider
treeModel
propertytreeModel: TreeModel
listModel
propertylistModel: ListItemsModel
currentPath
propertycurrentPath: string
selectedPath
propertyselectedPath: string
isLoading
propertyisLoading: boolean
error
propertyerror: string
openFile
propertyopenFile: OpenFileState
renameState
propertyrenameState: { itemId: string; currentName: string; path: string; source: "list" | "tree"; }deleteState
propertydeleteState: { targets: Array<{ path: string; isDirectory: boolean; name: string; }>; }createState
propertycreateState: { parentPath: string; type: "file" | "folder"; }constructor
constructorconstructor(fileSystem: IFileSystem): FileBrowserModel
setInitialPath
methodsetInitialPath(path: string): Promise<void>
handleTreeSelection
propertyhandleTreeSelection: (path: string) => Promise<void>
handleListNavigation
propertyhandleListNavigation: (path: string) => Promise<void>
handleListSelection
propertyhandleListSelection: (selectedItems: ListItemData[]) => void
navigateUp
methodnavigateUp(): Promise<void>
navigateToPath
methodnavigateToPath(path: string): Promise<void>
refresh
methodrefresh(): Promise<void>
navigateToBreadcrumb
methodnavigateToBreadcrumb(path: string): Promise<void>
refreshItems
methodrefreshItems(): Promise<void>
clearError
methodclearError(): void
setCurrentPath
methodsetCurrentPath(path: string): Promise<void>
openFileViewer
methodopenFileViewer(path: string, name: string, size?: number): Promise<void>
navigateToNextFile
methodnavigateToNextFile(): Promise<void>
navigateToPrevFile
methodnavigateToPrevFile(): Promise<void>
closeFileViewer
methodcloseFileViewer(): void
requestRename
methodrequestRename(itemId: string, currentName: string, path: string, source?: "list" | "tree"): void
confirmRename
methodconfirmRename(newName: string): Promise<void>
cancelRename
methodcancelRename(): void
requestDelete
methodrequestDelete(targets: Array<{ path: string; isDirectory: boolean; name: string; }>): voidconfirmDelete
methodconfirmDelete(): Promise<void>
cancelDelete
methodcancelDelete(): void
requestCreate
methodrequestCreate(parentPath: string, type: "file" | "folder"): void
confirmCreate
methodconfirmCreate(name: string): Promise<void>
cancelCreate
methodcancelCreate(): void
SelectionManagerModel
classclass SelectionManagerModel
selectedItems
propertyselectedItems: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, boolean>lastSelectedIndex
propertylastSelectedIndex: number
focusedItem
propertyfocusedItem: FileBrowserItem
isUpdatingFromPanels
propertyisUpdatingFromPanels: boolean
constructor
constructorconstructor(owner: SelectionOwner): SelectionManagerModel
isSelected
propertyisSelected: (itemId: string) => boolean
selectItem
propertyselectItem: (itemId: string, multiSelect?: boolean) => void
deselectItem
propertydeselectItem: (itemId: string) => void
toggleSelection
propertytoggleSelection: (itemId: string, multiSelect?: boolean) => void
selectRange
propertyselectRange: (startItemId: string, endItemId: string, allItems: FileBrowserItem[]) => void
selectAll
propertyselectAll: (items: FileBrowserItem[]) => void
clearSelection
propertyclearSelection: () => void
invertSelection
propertyinvertSelection: (allItems: FileBrowserItem[]) => void
getSelectedItems
propertygetSelectedItems: (allItems: FileBrowserItem[]) => FileBrowserItem[]
setFocusedItem
propertysetFocusedItem: (item: FileBrowserItem | null) => void
selectFromTreePanel
propertyselectFromTreePanel: (item: FileBrowserItem) => void
selectFromRightPanel
propertyselectFromRightPanel: (item: FileBrowserItem) => void
selectFromNavigation
propertyselectFromNavigation: (path: string, allItems: FileBrowserItem[]) => void
dispose
propertydispose: () => void
NavigationManagerModel
classclass NavigationManagerModel
history
propertyhistory: string[]
historyIndex
propertyhistoryIndex: number
isUpdatingFromPanels
propertyisUpdatingFromPanels: boolean
constructor
constructorconstructor(owner: NavigationOwner): NavigationManagerModel
addToHistory
propertyaddToHistory: (path: string) => void
goBack
propertygoBack: () => string | null
goForward
propertygoForward: () => string | null
goToParent
propertygoToParent: (currentPath: string) => string | null
clearHistory
propertyclearHistory: () => void
setCurrentPath
propertysetCurrentPath: (path: string) => void
navigateTo
propertynavigateTo: (path: string) => void
normalizePath
propertynormalizePath: (path: string) => string
getParentPath
propertygetParentPath: (path: string) => string | null
getPathSegments
propertygetPathSegments: (path: string) => string[]
joinPaths
propertyjoinPaths: (...paths: string[]) => string
navigateFromTreePanel
propertynavigateFromTreePanel: (path: string) => void
navigateFromRightPanel
propertynavigateFromRightPanel: (path: string) => void
navigateFromBreadcrumb
propertynavigateFromBreadcrumb: (path: string) => void
navigateToWithCoordination
propertynavigateToWithCoordination: (path: string, source?: "tree" | "right" | "breadcrumb" | "history") => void
setSelectionManager
propertysetSelectionManager: (selectionManager: any) => void
dispose
propertydispose: () => void
ToolbarManagerModel
classclass ToolbarManagerModel
toolbarActions
propertytoolbarActions: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, ToolbarAction>contextActions
propertycontextActions: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, ContextAction>constructor
constructorconstructor(owner: ToolbarOwner): ToolbarManagerModel
addAction
propertyaddAction: (action: ToolbarAction) => void
removeAction
propertyremoveAction: (actionId: string) => void
updateAction
propertyupdateAction: (actionId: string, updates: Partial<ToolbarAction>) => void
addContextAction
propertyaddContextAction: (action: ContextAction) => void
removeContextAction
propertyremoveContextAction: (actionId: string) => void
getAvailableActions
propertygetAvailableActions: (context: ActionContext) => ToolbarAction[]
getContextActionsForItem
propertygetContextActionsForItem: (context: ActionContext) => ContextAction[]
canExecuteAction
propertycanExecuteAction: (actionId: string, context: ActionContext) => boolean
getActionById
propertygetActionById: (actionId: string) => ToolbarAction | undefined
getContextActionById
propertygetContextActionById: (actionId: string) => ContextAction | undefined
setActions
propertysetActions: (actions: ToolbarAction[]) => void
setContextActions
propertysetContextActions: (actions: ContextAction[]) => void
clearAllActions
propertyclearAllActions: () => void
ViewModeManagerModel
classclass ViewModeManagerModel
availableViewModes
propertyavailableViewModes: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, ViewModeDefinition>currentViewMode
propertycurrentViewMode: string
currentFilters
propertycurrentFilters: FilterCriteria
currentSortCriteria
propertycurrentSortCriteria: SortCriteria
treeViewUI
propertytreeViewUI: TreeViewUIModel
listViewUI
propertylistViewUI: ListViewUIModel
thumbnailViewUI
propertythumbnailViewUI: ThumbnailViewUIModel
treemapViewUI
propertytreemapViewUI: TreemapViewUIModel
constructor
constructorconstructor(owner: any): ViewModeManagerModel
setCurrentViewMode
propertysetCurrentViewMode: (viewModeId: string) => void
registerViewMode
propertyregisterViewMode: (definition: ViewModeDefinition) => void
unregisterViewMode
propertyunregisterViewMode: (viewModeId: string) => void
setFilter
propertysetFilter: (key: keyof FilterCriteria, value: any) => void
clearFilters
propertyclearFilters: () => void
setSortCriteria
propertysetSortCriteria: (field: string, direction: "asc" | "desc") => void
clearSort
propertyclearSort: () => void
toggleSortDirection
propertytoggleSortDirection: () => void
supportsCapability
propertysupportsCapability: (capability: string) => boolean
dispose
methoddispose(): void
TreeViewUIModel
classclass TreeViewUIModel
expandedFolders
propertyexpandedFolders: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, boolean>indentSize
propertyindentSize: number
showConnectors
propertyshowConnectors: boolean
expandOnSingleClick
propertyexpandOnSingleClick: boolean
collapseOnSecondClick
propertycollapseOnSecondClick: boolean
rememberExpansion
propertyrememberExpansion: boolean
settings
propertysettings: TreeViewSettings
constructor
constructorconstructor(owner: any): TreeViewUIModel
expandFolder
propertyexpandFolder: (path: string) => void
collapseFolder
propertycollapseFolder: (path: string) => void
toggleFolder
propertytoggleFolder: (path: string) => void
isFolderExpanded
propertyisFolderExpanded: (path: string) => boolean
hasChildren
propertyhasChildren: (item: FileBrowserItem) => boolean
sortTreeNodes
propertysortTreeNodes: (nodes: FileBrowserItem[]) => FileBrowserItem[]
expandAll
propertyexpandAll: () => void
collapseAll
propertycollapseAll: () => void
updateSettings
propertyupdateSettings: (newSettings: Partial<TreeViewSettings>) => void
dispose
methoddispose(): void
ListViewUIModel
classclass ListViewUIModel
columns
propertycolumns: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, ColumnDefinition>columnOrder
propertycolumnOrder: string[]
currentSort
propertycurrentSort: SortCriteria
settings
propertysettings: ListViewSettings
showHeader
propertyshowHeader: boolean
striped
propertystriped: boolean
compact
propertycompact: boolean
hoverable
propertyhoverable: boolean
constructor
constructorconstructor(owner: ListViewOwner): ListViewUIModel
addColumn
propertyaddColumn: (column: ColumnDefinition) => void
removeColumn
propertyremoveColumn: (columnId: string) => void
updateColumn
propertyupdateColumn: (columnId: string, updates: Partial<ColumnDefinition>) => void
resizeColumn
propertyresizeColumn: (columnId: string, width: number) => void
reorderColumns
propertyreorderColumns: (fromIndex: number, toIndex: number) => void
showColumn
propertyshowColumn: (columnId: string) => void
hideColumn
propertyhideColumn: (columnId: string) => void
toggleColumnVisibility
propertytoggleColumnVisibility: (columnId: string) => void
setSortCriteria
propertysetSortCriteria: (field: string, direction: "asc" | "desc") => void
toggleSort
propertytoggleSort: (field: string) => void
clearSort
propertyclearSort: () => void
updateSettings
propertyupdateSettings: (newSettings: Partial<ListViewSettings>) => void
resetToDefaults
propertyresetToDefaults: () => void
saveColumnLayout
propertysaveColumnLayout: (name: string) => void
loadColumnLayout
propertyloadColumnLayout: (name: string) => void
dispose
methoddispose(): void
ThumbnailViewUIModel
classclass ThumbnailViewUIModel
thumbnailSize
propertythumbnailSize: number
gridSpacing
propertygridSpacing: number
aspectRatio
propertyaspectRatio: number
showFilenames
propertyshowFilenames: boolean
showFileSize
propertyshowFileSize: boolean
showDate
propertyshowDate: boolean
loadThumbnails
propertyloadThumbnails: boolean
thumbnailQuality
propertythumbnailQuality: "low" | "medium" | "high"
columnsPerRow
propertycolumnsPerRow: number | "auto"
settings
propertysettings: ThumbnailViewSettings
loadingThumbnails
propertyloadingThumbnails: Set<string>
failedThumbnails
propertyfailedThumbnails: Set<string>
constructor
constructorconstructor(owner: ThumbnailOwner): ThumbnailViewUIModel
setThumbnailSize
propertysetThumbnailSize: (size: number) => void
setGridSpacing
propertysetGridSpacing: (spacing: number) => void
setAspectRatio
propertysetAspectRatio: (ratio: number) => void
setColumnsPerRow
propertysetColumnsPerRow: (columns: number | "auto") => void
toggleShowFilenames
propertytoggleShowFilenames: () => void
toggleShowFileSize
propertytoggleShowFileSize: () => void
toggleShowDate
propertytoggleShowDate: () => void
setThumbnailQuality
propertysetThumbnailQuality: (quality: "low" | "medium" | "high") => void
setThumbnailLoading
propertysetThumbnailLoading: (itemId: string, loading: boolean) => void
setThumbnailFailed
propertysetThumbnailFailed: (itemId: string) => void
setThumbnailSuccess
propertysetThumbnailSuccess: (itemId: string) => void
isThumbnailLoading
propertyisThumbnailLoading: (itemId: string) => boolean
isThumbnailFailed
propertyisThumbnailFailed: (itemId: string) => boolean
clearThumbnailStates
propertyclearThumbnailStates: () => void
calculateGridLayout
propertycalculateGridLayout: (containerWidth: number) => { columns: number; itemsPerRow: number; }updateSettings
propertyupdateSettings: (newSettings: Partial<ThumbnailViewSettings>) => void
applyPreset
propertyapplyPreset: (preset: "compact" | "balanced" | "detailed") => void
resetToDefaults
propertyresetToDefaults: () => void
dispose
methoddispose(): void
ErrorBoundary
classclass ErrorBoundary
constructor
constructorconstructor(props: ErrorBoundaryProps): ErrorBoundary
getDerivedStateFromError
methodgetDerivedStateFromError(error: Error): Partial<ErrorBoundaryState>
componentDidCatch
methodcomponentDidCatch(error: Error, errorInfo: React.ErrorInfo): void
handleReset
propertyhandleReset: () => void
render
methodrender(): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode>> | import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/jsx-runtime").JSX.ElementFileSystemProvider
classclass FileSystemProvider
id
propertyid: "filesystem"
name
propertyname: "File System Provider"
version
propertyversion: "1.0.0"
constructor
constructorconstructor(fileSystem: IFileSystem, cacheOptions?: Partial<CacheOptions>): FileSystemProvider
loadItems
methodloadItems(path: string): Promise<FileBrowserItem[]>
normalizePath
methodnormalizePath(path: string): string
getParentPath
methodgetParentPath(path: string): string | null
resolvePath
methodresolvePath(basePath: string, relativePath: string): string
getItemIcon
methodgetItemIcon(item: FileBrowserItem): IconDefinition
getItemDisplayName
methodgetItemDisplayName(item: FileBrowserItem): string
getItemPreview
methodgetItemPreview(item: FileBrowserItem): Promise<PreviewData | null>
canPerformAction
methodcanPerformAction(action: string, items: FileBrowserItem[]): boolean
performAction
methodperformAction(action: string, items: FileBrowserItem[]): Promise<any>
initialize
methodinitialize(): Promise<void>
dispose
methoddispose(): void
clearCache
methodclearCache(): void
getCacheStats
methodgetCacheStats(): { size: number; maxSize: number; hitRate?: number; }getLeftPanelModes
methodgetLeftPanelModes(): LeftPanelMode[]
getRightPanelViewModes
methodgetRightPanelViewModes(): ViewModeDefinition[]
GitRepositoryProvider
classclass GitRepositoryProvider
id
propertyid: "git-repository"
name
propertyname: "Git Repository Provider"
version
propertyversion: "1.0.0"
constructor
constructorconstructor(options: GitRepositoryOptions): GitRepositoryProvider
loadItems
methodloadItems(path: string): Promise<FileBrowserItem[]>
normalizePath
methodnormalizePath(path: string): string
getParentPath
methodgetParentPath(path: string): string | null
resolvePath
methodresolvePath(basePath: string, relativePath: string): string
getItemIcon
methodgetItemIcon(item: FileBrowserItem): IconDefinition
getItemDisplayName
methodgetItemDisplayName(item: FileBrowserItem): string
getItemPreview
methodgetItemPreview(item: FileBrowserItem): Promise<PreviewData | null>
canPerformAction
methodcanPerformAction(action: string, items: FileBrowserItem[]): boolean
performAction
methodperformAction(action: string, items: FileBrowserItem[]): Promise<any>
initialize
methodinitialize(): Promise<void>
dispose
methoddispose(): void
getCurrentBranch
methodgetCurrentBranch(): Promise<string>
getBranches
methodgetBranches(): Promise<string[]>
switchBranch
methodswitchBranch(branch: string): Promise<void>
getCommitHistory
methodgetCommitHistory(path?: string, limit?: number): Promise<any[]>
GitProvider
classclass GitProvider
id
propertyid: "git"
name
propertyname: "Git Provider"
version
propertyversion: "1.0.0"
constructor
constructorconstructor(repository: GitRepositoryModel | GitWrapperIntegration): GitProvider
loadItems
methodloadItems(path: string): Promise<FileBrowserItem[]>
getLeftPanelModes
methodgetLeftPanelModes(): LeftPanelMode[]
getRightPanelViewModes
methodgetRightPanelViewModes(): ViewModeDefinition[]
normalizePath
methodnormalizePath(path: string): string
getParentPath
methodgetParentPath(path: string): string | null
resolvePath
methodresolvePath(basePath: string, relativePath: string): string
getItemIcon
methodgetItemIcon(item: FileBrowserItem): IconDefinition
getItemDisplayName
methodgetItemDisplayName(item: FileBrowserItem): string
canPreviewFile
methodcanPreviewFile(item: FileBrowserItem): boolean
getFilePreview
methodgetFilePreview(item: FileBrowserItem): Promise<PreviewData>
getItemPreview
methodgetItemPreview(item: FileBrowserItem): Promise<PreviewData | null>
canPerformAction
methodcanPerformAction(action: string, items: FileBrowserItem[]): boolean
performAction
methodperformAction(action: string, items: FileBrowserItem[]): Promise<any>
initialize
methodinitialize(): Promise<void>
dispose
methoddispose(): void
TreeModel
classclass TreeModel
nodes
propertynodes: TreeNodeData[]
nodeMap
propertynodeMap: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, TreeNodeData>isLoading
propertyisLoading: boolean
errors
propertyerrors: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, Error>selectedNodes
propertyselectedNodes: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, TreeNodeData>focusedNode
propertyfocusedNode: string
checkboxStates
propertycheckboxStates: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, CheckboxState>expandedNodes
propertyexpandedNodes: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, boolean>loadingNodes
propertyloadingNodes: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, boolean>contextMenuVisible
propertycontextMenuVisible: boolean
contextMenuPosition
propertycontextMenuPosition: { x: number; y: number; }contextMenuItems
propertycontextMenuItems: TreeContextMenuItem[]
contextMenuNodes
propertycontextMenuNodes: TreeNodeData[]
constructor
constructorconstructor(provider: TreeProvider): TreeModel
isNodeSelected
methodCheck if a specific node is selected
isNodeSelected(nodeId: string): boolean
isNodeExpanded
methodCheck if a specific node is expanded
isNodeExpanded(nodeId: string): boolean
isNodeLoading
methodCheck if a specific node is loading
isNodeLoading(nodeId: string): boolean
loadNodes
propertyLoad nodes from the provider Uses MobX flow for proper async action handling
loadNodes: (options?: TreeLoadOptions) => import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").CancellablePromise<void>selectNode
methodSelect a specific node
selectNode(node: TreeNodeData): void
deselectNode
methodDeselect a specific node
deselectNode(node: TreeNodeData): void
clearSelection
methodClear all selected nodes
clearSelection(): void
selectAll
methodSelect all nodes (only if multi-select is enabled)
selectAll(): void
getCheckboxState
methodGet checkbox state for a specific node
getCheckboxState(nodeId: string): CheckboxState
handleCheckboxChange
methodHandle checkbox click for a node
handleCheckboxChange(node: TreeNodeData, newState: CheckboxState): void
setFocus
methodSet focus to a specific node
setFocus(nodeId: string): void
focusNext
methodMove focus to next visible node
focusNext(): boolean
focusPrevious
methodMove focus to previous visible node
focusPrevious(): boolean
focusFirst
methodMove focus to first visible node
focusFirst(): boolean
focusLast
methodMove focus to last visible node
focusLast(): boolean
expandNode
propertyExpand a specific node
expandNode: (node: TreeNodeData) => import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").CancellablePromise<void>collapseNode
methodCollapse a specific node
collapseNode(node: TreeNodeData): void
toggleExpansion
methodToggle expansion state of a specific node
toggleExpansion(node: TreeNodeData): void
showContextMenu
methodShow context menu for a specific node
showContextMenu(node: TreeNodeData, event: MouseEvent): void
showMultiNodeContextMenu
methodShow context menu for multiple selected nodes
showMultiNodeContextMenu(nodes: TreeNodeData[], event: MouseEvent): void
hideContextMenu
methodHide context menu
hideContextMenu(): void
handleContextMenuAction
methodHandle context menu item click
handleContextMenuAction(menuItem: TreeContextMenuItem): void
TestTreeProvider
classclass TestTreeProvider
id
propertyid: "test-tree-provider"
name
propertyname: "Test Tree Provider"
version
propertyversion: "1.0.0"
isMultiSelectEnabled
propertyisMultiSelectEnabled: boolean
isDragDropEnabled
propertyisDragDropEnabled: false
isVirtualizationEnabled
propertyisVirtualizationEnabled: false
isTableViewEnabled
propertyisTableViewEnabled: true
useCheckboxSelection
propertyuseCheckboxSelection: boolean
allowPartialSelection
propertyallowPartialSelection: true
config
propertyconfig: {}selectionTheme
propertyselectionTheme: TreeSelectionTheme
slowLoading
propertyslowLoading: boolean
simulateErrors
propertysimulateErrors: boolean
maxDepth
propertymaxDepth: number
nodesPerLevel
propertynodesPerLevel: number
loadingDelay
propertyloadingDelay: number
onSelectionChange
propertyonSelectionChange: (selectionInfo: TreeSelectionInfo) => void
onNodeExpansion
propertyonNodeExpansion: (node: TreeNodeData, isExpanded: boolean) => void
onNodeFocus
propertyonNodeFocus: (node: TreeNodeData | null) => void
constructor
constructorconstructor(): TestTreeProvider
updateSelectionTheme
propertyUpdate selection theme reactively
updateSelectionTheme: (theme: Partial<TreeSelectionTheme>) => void
setMultiSelectEnabled
propertyUpdate multi-select setting
setMultiSelectEnabled: (enabled: boolean) => void
setCheckboxSelection
propertyUpdate checkbox selection setting
setCheckboxSelection: (enabled: boolean) => void
getSelectionTheme
methodGet selection theme configuration
getSelectionTheme(): TreeSelectionTheme
loadNodes
methodLoad tree nodes
loadNodes(options?: TreeLoadOptions): Promise<TreeLoadResult>
loadChildren
methodLoad child nodes for a given parent
loadChildren(node: TreeNodeData, options?: TreeLoadOptions): Promise<TreeLoadResult>
refresh
methodRefresh tree data
refresh(path?: string): Promise<TreeLoadResult>
canExpand
methodcanExpand(node: TreeNodeData): boolean
canSelect
methodcanSelect(node: TreeNodeData): boolean
getNodeContextMenu
methodgetNodeContextMenu(node: TreeNodeData): TreeContextMenuItem[]
getMultiNodeContextMenu
methodgetMultiNodeContextMenu(nodes: TreeNodeData[]): TreeContextMenuItem[]
onContextMenuAction
methodonContextMenuAction(menuItemId: string, nodes: TreeNodeData[]): void
getTableColumns
methodgetTableColumns(): TreeTableColumn[]
getDefaultTableSort
methodgetDefaultTableSort(): TreeTableSort
onTableSort
methodonTableSort(sort: TreeTableSort | null): void
onTableExport
methodonTableExport(options: TreeTableExportOptions): Promise<string | void>
getNodeIcon
methodGet custom icon for a node based on file type and category
getNodeIcon(node: TreeNodeData): string | React.ComponentType<any>
SimpleTreeProvider
classclass SimpleTreeProvider
id
propertyid: "simple-tree-provider"
name
propertyname: "Simple Tree Provider"
version
propertyversion: "1.0.0"
isMultiSelectEnabled
propertyisMultiSelectEnabled: boolean
isDragDropEnabled
propertyisDragDropEnabled: false
isVirtualizationEnabled
propertyisVirtualizationEnabled: false
isTableViewEnabled
propertyisTableViewEnabled: false
useCheckboxSelection
propertyuseCheckboxSelection: boolean
allowPartialSelection
propertyallowPartialSelection: true
config
propertyconfig: {}selectionTheme
propertyselectionTheme: TreeSelectionTheme
onSelectionChange
propertyonSelectionChange: (selectionInfo: TreeSelectionInfo) => void
onNodeExpansion
propertyonNodeExpansion: (node: TreeNodeData, isExpanded: boolean) => void
onNodeFocus
propertyonNodeFocus: (node: TreeNodeData | null) => void
onContextMenuAction
propertyonContextMenuAction: (actionId: string, nodes: TreeNodeData[]) => void
constructor
constructorconstructor(options?: SimpleTreeProviderOptions): SimpleTreeProvider
loadNodes
methodLoad root nodes
loadNodes(options?: TreeLoadOptions): Promise<TreeLoadResult>
loadChildren
methodLoad children for a specific node
loadChildren(node: TreeNodeData, options?: TreeLoadOptions): Promise<TreeLoadResult>
refresh
methodRefresh/reload nodes
refresh(path?: string): Promise<TreeLoadResult>
getNodeContextMenu
methodGet context menu for a single node
getNodeContextMenu(node: TreeNodeData): TreeContextMenuItem[]
getMultiNodeContextMenu
methodGet context menu for multiple selected nodes
getMultiNodeContextMenu(nodes: TreeNodeData[]): TreeContextMenuItem[]
getSelectionTheme
methodGet selection theme configuration
getSelectionTheme(): TreeSelectionTheme
setData
methodUpdate the static data
setData(data: TreeNodeData[]): void
getData
methodGet current data
getData(): TreeNodeData[]
addNode
methodAdd a new node to the tree
addNode(parentPath: string | null, newNode: TreeNodeData): boolean
removeNode
methodRemove a node from the tree
removeNode(nodePath: string): boolean
findNodeByPath
methodFind a node by its path
findNodeByPath(path: string): TreeNodeData | null
updateSelectionTheme
propertyUpdate selection theme reactively
updateSelectionTheme: (theme: Partial<TreeSelectionTheme>) => void
setMultiSelectEnabled
propertyUpdate multi-select setting
setMultiSelectEnabled: (enabled: boolean) => void
setCheckboxSelection
propertyUpdate checkbox selection setting
setCheckboxSelection: (enabled: boolean) => void
ListErrorBoundary
classclass ListErrorBoundary
constructor
constructorconstructor(props: ErrorBoundaryProps): ListErrorBoundary
getDerivedStateFromError
methodgetDerivedStateFromError(error: Error): Partial<ErrorBoundaryState>
componentDidCatch
methodcomponentDidCatch(error: Error, errorInfo: ErrorInfo): void
handleRetry
propertyhandleRetry: () => void
render
methodrender(): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode>> | import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/jsx-runtime").JSX.ElementFocusManager
classclass FocusManager
saveFocus
methodsaveFocus(): void
restoreFocus
methodrestoreFocus(): boolean
focusFirst
methodfocusFirst(container: HTMLElement): boolean
focusLast
methodfocusLast(container: HTMLElement): boolean
ListItemsModel
classclass ListItemsModel
currentViewType
propertycurrentViewType: ListViewType
items
propertyitems: ListItemData[]
itemMap
propertyitemMap: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, ListItemData>totalItemCount
propertytotalItemCount: number
selectedItems
propertyselectedItems: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, ListItemData>previousSelection
propertypreviousSelection: ListItemData[]
focusedItem
propertyfocusedItem: string
selectionAnchor
propertyselectionAnchor: string
isLoading
propertyisLoading: boolean
loadingRanges
propertyloadingRanges: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, boolean>errors
propertyerrors: import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").ObservableMap<string, Error>viewportRange
propertyviewportRange: { start: number; end: number; }scrollPosition
propertyscrollPosition: number
containerSize
propertycontainerSize: { width: number; height: number; }isDragging
propertyisDragging: boolean
draggedItems
propertydraggedItems: ListItemData[]
dragOverItem
propertydragOverItem: string
dragOverPosition
propertydragOverPosition: "before" | "after" | "inside"
itemSize
propertyitemSize: "medium" | "small" | "large" | "extra-large"
customItemWidth
propertycustomItemWidth: number
customItemHeight
propertycustomItemHeight: number
itemsPerRow
propertyitemsPerRow: number | "auto"
debugVisualization
propertydebugVisualization: boolean
constructor
constructorconstructor(provider: ListItemsProvider): ListItemsModel
onItemsCountChanged
methodonItemsCountChanged(count: number): void
onItemChanged
methodonItemChanged(itemIndex: number): void
loadItems
propertyLoad items from the provider Uses MobX flow for proper async action handling
loadItems: (options?: ListLoadOptions) => import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").CancellablePromise<void>loadItemRange
propertyLoad a specific range of items for virtualization
loadItemRange: (start: number, end: number) => import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").CancellablePromise<void>refresh
propertyRefresh items from provider
refresh: () => import("/home/andrew/gits/github/AnyFileSystem/AnyFsMnoorepo-sf-phase3-npmf/node_modules/.pnpm/mobx@6.15.0/node_modules/mobx/dist/internal").CancellablePromise<void>selectItem
methodSelect a single item with proper single/multi-selection logic
selectItem(item: ListItemData, modifiers?: { ctrl?: boolean; shift?: boolean; }): voidselectRange
methodSelect a contiguous range of items between two item IDs
selectRange(fromId: string, toId: string): void
clearSelection
methodClear all selection
clearSelection(): void
selectAll
methodSelect all items (if multi-select enabled)
selectAll(): void
setViewType
methodSet the current view type
setViewType(viewType: ListViewType): void
setItemSize
methodSet item size for grid and masonry views
setItemSize(size: "small" | "medium" | "large" | "extra-large"): void
setCustomItemWidth
methodSet custom item width and update calculators
setCustomItemWidth(width: number): void
setCustomItemHeight
methodSet custom item height and update calculators
setCustomItemHeight(height: number): void
setItemsPerRow
methodSet items per row for grid and masonry views
setItemsPerRow(itemsPerRow: number | "auto"): void
setDebugVisualization
methodSet debug visualization mode
setDebugVisualization(enabled: boolean): void
getEffectiveItemsPerRow
methodGet effective items per row based on view and container width
getEffectiveItemsPerRow(containerWidth?: number): number
setFocusedItem
methodSet focused item
setFocusedItem(itemId: string | null): void
focusNext
methodFocus next item
focusNext(): boolean
focusPrevious
methodFocus previous item
focusPrevious(): boolean
canDragItem
methodCheck if an item can be dragged
canDragItem(item: ListItemData): boolean
canDropItems
methodCheck if items can be dropped on a target
canDropItems(draggedItems: ListItemData[], targetItem: ListItemData | null, position: "before" | "after" | "inside"): boolean
startDrag
methodStart drag operation
startDrag(items: ListItemData[], event: DragEvent): void
setDragOver
methodHandle drag over item
setDragOver(itemId: string | null, position: "before" | "after" | "inside" | null): void
handleDrop
methodHandle drop operation
handleDrop(targetItem: ListItemData | null, position: "before" | "after" | "inside", event: DragEvent): boolean
endDrag
methodEnd drag operation
endDrag(success: boolean): void
updateViewportRange
methodUpdate viewport range for virtualization and trigger dynamic loading
updateViewportRange(start: number, end: number): void
updateScrollPosition
methodUpdate scroll position
updateScrollPosition(position: number): void
updateContainerSize
methodUpdate container size
updateContainerSize(width: number, height: number): void
getGridLayout
methodGet grid layout for current items
getGridLayout(): { layout: GridItemLayout[]; totalHeight: number; } | nullgetVerticalMasonryLayout
methodGet vertical masonry layout for current items
getVerticalMasonryLayout(): { layout: MasonryItemPosition[]; totalHeight: number; } | nullgetHorizontalMasonryLayout
methodGet horizontal masonry layout for current items
getHorizontalMasonryLayout(): { layout: MasonryItemPosition[]; totalHeight: number; } | nullgetVisibleGridItems
methodGet visible items for virtualization
getVisibleGridItems(scrollTop: number, viewportHeight: number): GridItemLayout[]
getVisibleVerticalMasonryItems
methodGet visible vertical masonry items for virtualization
getVisibleVerticalMasonryItems(scrollTop: number, viewportHeight: number): MasonryItemPosition[]
getVisibleHorizontalMasonryItems
methodGet visible horizontal masonry items for virtualization
getVisibleHorizontalMasonryItems(scrollTop: number, viewportHeight: number): MasonryItemPosition[]
getVisibleMasonryItems
methodGet visible masonry items for virtualization (unified method)
getVisibleMasonryItems(scrollTop: number, viewportHeight: number, isHorizontal?: boolean, overscan?: number): MasonryItemPosition[]
ensureItemVisible
methodEnsure item is visible (scroll to item)
ensureItemVisible(itemId: string): boolean
getItem
methodGet item by ID
getItem(itemId: string): ListItemData | undefined
getItemIndex
methodGet item index
getItemIndex(itemId: string): number
TestListProvider
classclass TestListProvider
id
propertyid: "test-list-provider"
name
propertyname: "Test List Provider"
isMultiSelectEnabled
propertyisMultiSelectEnabled: true
isVirtualizationEnabled
propertyisVirtualizationEnabled: true
isDragDropEnabled
propertyisDragDropEnabled: true
supportedViewTypes
propertysupportedViewTypes: ListViewType[]
constructor
constructorconstructor(): TestListProvider
getItemIcon
methodGet custom icon for an item based on file type and extension
getItemIcon(item: ListItemData): string | React.ComponentType<any>
loadItems
methodloadItems(options?: ListLoadOptions): Promise<ListLoadResult>
getItemCount
methodgetItemCount(): Promise<number>
loadItemRange
methodloadItemRange(start: number, end: number): Promise<ListLoadResult>
refresh
methodrefresh(): Promise<ListLoadResult>
getItemHeight
methodgetItemHeight(viewType: ListViewType): number
getItemWidth
methodgetItemWidth(viewType: ListViewType): number
getVirtualizationConfig
methodgetVirtualizationConfig(): VirtualizationConfig
onSelectionChange
methodonSelectionChange(selectionInfo: ListSelectionInfo): void
onViewTypeChange
methodonViewTypeChange(viewType: ListViewType): void
onItemDoubleClick
methodonItemDoubleClick(item: ListItemData): void
getItemContextMenu
methodgetItemContextMenu(item: ListItemData): ListContextMenuItem[]
getMultiItemContextMenu
methodgetMultiItemContextMenu(items: ListItemData[]): ListContextMenuItem[]
onContextMenuAction
methodonContextMenuAction(menuItemId: string, items: ListItemData[]): void
canDragItem
methodcanDragItem(item: ListItemData): boolean
canDropItems
methodcanDropItems(draggedItems: ListItemData[], targetItem: ListItemData | null, position: "before" | "after" | "inside"): boolean
onDragStart
methodonDragStart(draggedItems: ListItemData[], event: DragEvent): void
onDrop
methodonDrop(dragDropInfo: ListDragDropInfo): void
onDragEnd
methodonDragEnd(draggedItems: ListItemData[], success: boolean): void
addListener
methodaddListener(listener: ListItemsProviderListener): void
removeListener
methodremoveListener(listener: ListItemsProviderListener): void
addMockItem
methodAdd a new mock item (useful for testing dynamic updates)
addMockItem(item: Partial<ListItemData>): void
removeMockItem
methodRemove an item by ID (useful for testing dynamic updates)
removeMockItem(itemId: string): void
updateMockItem
methodUpdate an existing item (useful for testing dynamic updates)
updateMockItem(itemId: string, updates: Partial<ListItemData>): void
GridLayoutCalculator
classclass GridLayoutCalculator
constructor
constructorconstructor(config: GridLayoutConfig): GridLayoutCalculator
updateConfig
methodupdateConfig(updates: Partial<GridLayoutConfig>): void
calculateItemsPerRow
methodcalculateItemsPerRow(): number
calculateItemDimensions
methodcalculateItemDimensions(itemsPerRow: number): { width: number; height: number; }calculateThumbnailSize
methodcalculateThumbnailSize(itemWidth: number, itemHeight: number): number
calculateLayout
methodcalculateLayout(totalItems: number): GridLayoutResult
calculateVisibleItems
methodcalculateVisibleItems(totalItems: number, scrollTop: number, viewportHeight: number, overscan?: number): { startIndex: number; endIndex: number; visibleItems: GridItemLayout[]; }getItemPosition
methodgetItemPosition(itemIndex: number, totalItems: number): GridItemLayout | null
getItemAtPosition
methodgetItemAtPosition(x: number, y: number, totalItems: number): number | null
MasonryLayoutCalculator
classclass MasonryLayoutCalculator
constructor
constructorconstructor(config: MasonryLayoutConfig): MasonryLayoutCalculator
updateConfig
methodupdateConfig(updates: Partial<MasonryLayoutConfig>): void
calculateColumnCount
methodcalculateColumnCount(): number
calculateColumnWidth
methodcalculateColumnWidth(columnCount: number): number
calculateItemHeight
methodcalculateItemHeight(item: MasonryItemData, columnWidth: number, baseHeight?: number): number
calculateThumbnailDimensions
methodcalculateThumbnailDimensions(item: MasonryItemData, columnWidth: number, itemHeight: number): { width: number; height: number; }calculateLayout
methodcalculateLayout(items: MasonryItemData[]): MasonryLayoutResult
calculateVisibleItems
methodcalculateVisibleItems(items: MasonryItemData[], scrollTop: number, viewportHeight: number, overscan?: number): { startIndex: number; endIndex: number; visibleItems: MasonryItemLayout[]; }getItemPosition
methodgetItemPosition(itemIndex: number, items: MasonryItemData[]): MasonryItemLayout | null
getItemAtPosition
methodgetItemAtPosition(x: number, y: number, items: MasonryItemData[]): number | null
Functions
resolveIcon
functionresolveIcon(name: string, className?: string): React.ReactElement
getIconForExtension
functiongetIconForExtension(filename: string): string
getIconForFile
functiongetIconForFile(filename: string, isDirectory: boolean): string
cn
functioncn(...inputs: ClassValue[]): string
getCustomColorVariables
functionGenerate CSS custom properties for custom color schemes NOTE: This function is now simplified since we handle custom colors with inline styles
getCustomColorVariables(theme: TreeSelectionTheme): Record<string, string>
getSelectionClasses
functionGenerate complete selection classes for a tree node
getSelectionClasses(theme: TreeSelectionTheme, isSelected: boolean, isFocused: boolean, useCheckboxes?: boolean): string
getListAccessibilityProps
functiongetListAccessibilityProps(config: { viewType: string; isMultiSelect: boolean; totalItems: number; selectedCount: number; label?: string; labelledBy?: string; describedBy?: string; }): AccessibilityConfiggetItemAccessibilityProps
functiongetItemAccessibilityProps(config: { item: any; index: number; totalItems: number; isSelected: boolean; isFocused: boolean; viewType: string; isExpandable?: boolean; isExpanded?: boolean; level?: number; }): ItemAccessibilityConfigcreateLiveRegionAnnouncement
functioncreateLiveRegionAnnouncement(config: { action: "select" | "deselect" | "focus" | "activate" | "load" | "error"; itemName?: string; itemCount?: number; selectedCount?: number; totalCount?: number; errorMessage?: string; }): stringgetNextFocusIndex
functiongetNextFocusIndex(key: string, config: KeyboardNavigationConfig): number | null
announceToScreenReader
functionannounceToScreenReader(message: string, priority?: "polite" | "assertive"): void
createGridCalculator
functioncreateGridCalculator(containerWidth: number, containerHeight: number, options?: Partial<GridLayoutConfig>): GridLayoutCalculator
createMasonryCalculator
functioncreateMasonryCalculator(containerWidth: number, containerHeight: number, options?: Partial<MasonryLayoutConfig>): MasonryLayoutCalculator
Types
LoadingState
typetype LoadingState = 'idle' | 'loading' | 'success' | 'error'
CheckboxState
typetype CheckboxState = 'unchecked' | 'checked' | 'indeterminate'
SelectionColorScheme
typeSelection theme color scheme
type SelectionColorScheme = 'primary' | 'secondary' | 'accent' | 'custom'
SelectionIntensity
typeSelection intensity levels
type SelectionIntensity = 'subtle' | 'prominent' | 'high-contrast'
FocusIndicatorStyle
typeFocus indicator style
type FocusIndicatorStyle = 'ring' | 'outline' | 'border' | 'underline'
ViewModeType
typetype ViewModeType = 'tree' | 'list' | 'thumbnail' | 'treemap' | 'custom'
Interfaces
FileBrowserProps
interfaceinterface FileBrowserProps
provider
propertyprovider: any
initialPath
propertyinitialPath: string
initialViewMode
propertyinitialViewMode: string
eventHandlers
propertyeventHandlers: FileBrowserEventHandlers
className
propertyclassName: string
style
propertystyle: React.CSSProperties
showToolbar
propertyshowToolbar: boolean
showBreadcrumb
propertyshowBreadcrumb: boolean
showStatusBar
propertyshowStatusBar: boolean
allowMultiSelect
propertyallowMultiSelect: boolean
availableViewModes
propertyavailableViewModes: string[]
defaultViewMode
propertydefaultViewMode: string
theme
propertytheme: "light" | "dark" | "auto"
density
propertydensity: "compact" | "normal" | "comfortable"
FileBrowserItem
interfaceinterface FileBrowserItem
id
propertyid: string
name
propertyname: string
path
propertypath: string
type
propertytype: "file" | "directory"
size
propertysize: number
lastModified
propertylastModified: Date
permissions
propertypermissions: string
metadata
propertymetadata: Record<string, any>
children
propertychildren: FileBrowserItem[]
isLoading
propertyisLoading: boolean
hasChildren
propertyhasChildren: boolean
FileBrowserItemDetails
interfaceinterface FileBrowserItemDetails
content
propertycontent: string | Uint8Array<ArrayBufferLike>
preview
propertypreview: PreviewData
properties
propertyproperties: Record<string, any>
FileBrowserEventHandlers
interfaceinterface FileBrowserEventHandlers
onPathChange
propertyonPathChange: (path: string) => void
onItemSelect
propertyonItemSelect: (item: FileBrowserItem) => void
onItemActivate
propertyonItemActivate: (item: FileBrowserItem) => void
onSelectionChange
propertyonSelectionChange: (selectedItems: FileBrowserItem[]) => void
onError
propertyonError: (error: ErrorState) => void
onLoadingChange
propertyonLoadingChange: (isLoading: boolean) => void
ErrorState
interfaceinterface ErrorState
message
propertymessage: string
code
propertycode: string
details
propertydetails: any
timestamp
propertytimestamp: Date
FilterCriteria
interfaceinterface FilterCriteria
searchText
propertysearchText: string
fileTypes
propertyfileTypes: string[]
dateRange
propertydateRange: { start: Date; end: Date; }sizeRange
propertysizeRange: { min: number; max: number; }customFilters
propertycustomFilters: Record<string, any>
SortCriteria
interfaceinterface SortCriteria
field
propertyfield: string
direction
propertydirection: "asc" | "desc"
NavigationState
interfaceinterface NavigationState
currentPath
propertycurrentPath: string
history
propertyhistory: string[]
historyIndex
propertyhistoryIndex: number
canGoBack
propertycanGoBack: boolean
canGoForward
propertycanGoForward: boolean
SelectionState
interfaceinterface SelectionState
selectedItems
propertyselectedItems: Set<string>
lastSelectedIndex
propertylastSelectedIndex: number
focusedItemId
propertyfocusedItemId: string
selectionMode
propertyselectionMode: "single" | "multiple"
IconDefinition
interfaceinterface IconDefinition
type
propertytype: "lucide" | "custom"
name
propertyname: string
component
propertycomponent: React.ComponentType<any>
color
propertycolor: string
size
propertysize: number
PreviewData
interfaceinterface PreviewData
type
propertytype: "image" | "text" | "video" | "audio" | "document"
url
propertyurl: string
content
propertycontent: string
thumbnail
propertythumbnail: string
metadata
propertymetadata: Record<string, any>
ItemChange
interfaceinterface ItemChange
type
propertytype: "added" | "removed" | "modified" | "moved"
item
propertyitem: FileBrowserItem
oldPath
propertyoldPath: string
newPath
propertynewPath: string
ColumnDefinition
interfaceinterface ColumnDefinition
id
propertyid: string
label
propertylabel: string
field
propertyfield: string
width
propertywidth: number
minWidth
propertyminWidth: number
maxWidth
propertymaxWidth: number
resizable
propertyresizable: boolean
sortable
propertysortable: boolean
visible
propertyvisible: boolean
align
propertyalign: "right" | "left" | "center"
format
propertyformat: (value: any) => string
LoadingSpinnerProps
interfaceinterface LoadingSpinnerProps
size
propertysize: "sm" | "md" | "lg"
overlay
propertyoverlay: boolean
className
propertyclassName: string
'aria-label'
property'aria-label': string
ErrorBoundaryProps
interfaceinterface ErrorBoundaryProps
children
propertychildren: React.ReactNode
fallback
propertyfallback: (error: Error, errorInfo: string, onReset: () => void) => ReactNode
onError
propertyonError: (error: Error, errorInfo: string) => void
className
propertyclassName: string
FileIconProps
interfaceinterface FileIconProps
item
propertyitem: FileBrowserItem
getItemIcon
propertygetItemIcon: (item: FileBrowserItem) => IconDefinition
size
propertysize: "sm" | "md" | "lg" | "xl"
className
propertyclassName: string
isExpanded
propertyisExpanded: boolean
FileBrowserHeaderProps
interfaceinterface FileBrowserHeaderProps
model
propertymodel: FileBrowserModel
toolbarManager
propertytoolbarManager: ToolbarManagerModel
className
propertyclassName: string
showBreadcrumb
propertyshowBreadcrumb: boolean
showToolbar
propertyshowToolbar: boolean
FileBrowserContentProps
interfaceinterface FileBrowserContentProps
model
propertymodel: FileBrowserModel
className
propertyclassName: string
currentViewMode
propertycurrentViewMode: string
TreeViewProps
interfaceinterface TreeViewProps
items
propertyitems: FileBrowserItem[]
treeModel
propertytreeModel: TreeViewUIModel
onItemClick
propertyonItemClick: (item: FileBrowserItem) => void
onItemDoubleClick
propertyonItemDoubleClick: (item: FileBrowserItem) => void
onItemActivate
propertyonItemActivate: (item: FileBrowserItem) => void
onSelectionChange
propertyonSelectionChange: (selectedItems: FileBrowserItem[]) => void
onPathChange
propertyonPathChange: (path: string) => void
selectedItemIds
propertyselectedItemIds: Set<string>
focusedItemId
propertyfocusedItemId: string
className
propertyclassName: string
getItemIcon
propertygetItemIcon: (item: FileBrowserItem) => any
loadFolder
propertyloadFolder: (path: string) => Promise<FileBrowserItem[]>
virtualization
propertyvirtualization: boolean
maxHeight
propertymaxHeight: number
TreeNodeProps
interfaceinterface TreeNodeProps
item
propertyitem: FileBrowserItem
treeModel
propertytreeModel: TreeViewUIModel
level
propertylevel: number
onItemClick
propertyonItemClick: (item: FileBrowserItem) => void
onItemDoubleClick
propertyonItemDoubleClick: (item: FileBrowserItem) => void
isSelected
propertyisSelected: boolean
isFocused
propertyisFocused: boolean
getItemIcon
propertygetItemIcon: (item: FileBrowserItem) => any
TreeNodeListProps
interfaceinterface TreeNodeListProps
items
propertyitems: FileBrowserItem[]
treeModel
propertytreeModel: TreeViewUIModel
onItemClick
propertyonItemClick: (item: FileBrowserItem) => void
onItemDoubleClick
propertyonItemDoubleClick: (item: FileBrowserItem) => void
onSelectionChange
propertyonSelectionChange: (selectedItems: FileBrowserItem[]) => void
selectedItemIds
propertyselectedItemIds: Set<string>
focusedItemId
propertyfocusedItemId: string
className
propertyclassName: string
getItemIcon
propertygetItemIcon: (item: FileBrowserItem) => any
virtualization
propertyvirtualization: boolean
maxHeight
propertymaxHeight: number
ListViewProps
interfaceinterface ListViewProps
items
propertyitems: FileBrowserItem[]
listModel
propertylistModel: ListViewUIModel
responsiveManager
propertyresponsiveManager: ResponsiveLayoutManagerModel
onItemClick
propertyonItemClick: (item: FileBrowserItem) => void
onItemDoubleClick
propertyonItemDoubleClick: (item: FileBrowserItem) => void
onItemActivate
propertyonItemActivate: (item: FileBrowserItem) => void
onSelectionChange
propertyonSelectionChange: (selectedItems: FileBrowserItem[]) => void
selectedItemIds
propertyselectedItemIds: Set<string>
focusedItemId
propertyfocusedItemId: string
className
propertyclassName: string
getItemIcon
propertygetItemIcon: (item: FileBrowserItem) => any
BreadcrumbProps
interfaceinterface BreadcrumbProps
path
propertypath: string
onPathChange
propertyonPathChange: (path: string) => void
className
propertyclassName: string
maxSegments
propertymaxSegments: number
separator
propertyseparator: React.ReactNode
showRoot
propertyshowRoot: boolean
rootLabel
propertyrootLabel: string
NavigationButtonsProps
interfaceinterface NavigationButtonsProps
canGoBack
propertycanGoBack: boolean
canGoForward
propertycanGoForward: boolean
canGoUp
propertycanGoUp: boolean
onGoBack
propertyonGoBack: () => void
onGoForward
propertyonGoForward: () => void
onGoUp
propertyonGoUp: () => void
className
propertyclassName: string
variant
propertyvariant: "compact" | "default"
showLabels
propertyshowLabels: boolean
disabled
propertydisabled: boolean
ViewModeToggleProps
interfaceinterface ViewModeToggleProps
currentMode
propertycurrentMode: ViewModeType
availableModes
propertyavailableModes: ViewModeType[]
onModeChange
propertyonModeChange: (mode: ViewModeType) => void
className
propertyclassName: string
variant
propertyvariant: "tabs" | "buttons"
showLabels
propertyshowLabels: boolean
disabled
propertydisabled: boolean
TreeProvider
interfaceinterface TreeProvider
id
propertyProvider identifier
id: string
name
propertyHuman-readable name
name: string
version
propertyProvider version
version: string
isMultiSelectEnabled
propertyWhether multi-selection is enabled
isMultiSelectEnabled: boolean
isDragDropEnabled
propertyWhether drag and drop is enabled
isDragDropEnabled: boolean
isVirtualizationEnabled
propertyWhether virtualization is enabled for large trees
isVirtualizationEnabled: boolean
useCheckboxSelection
propertyWhether to use checkbox-based selection instead of highlight selection
useCheckboxSelection: boolean
allowPartialSelection
propertyWhether to allow partial (indeterminate) checkbox selection for parent nodes
allowPartialSelection: boolean
isTableViewEnabled
propertyWhether table view is enabled for this provider
isTableViewEnabled: boolean
getVirtualizationConfig
methodGet virtualization configuration
getVirtualizationConfig(): { itemHeight: number; overscan: number; threshold: number; }getTableColumns
methodGet table column configuration for table view
getTableColumns(): TreeTableColumn[]
getDefaultTableSort
methodGet default sort configuration for table view
getDefaultTableSort(): TreeTableSort | null
getSelectionTheme
methodGet selection theme configuration
getSelectionTheme(): TreeSelectionTheme
loadNodes
methodLoad tree nodes
loadNodes(options?: TreeLoadOptions): Promise<TreeLoadResult>
loadChildren
methodLoad children for a specific node
loadChildren(node: TreeNodeData, options?: TreeLoadOptions): Promise<TreeLoadResult>
refresh
methodRefresh/reload nodes
refresh(path?: string): Promise<TreeLoadResult>
search
methodSearch nodes
search(query: string, options?: TreeLoadOptions): Promise<TreeLoadResult>
getNodeContextMenu
methodGet context menu items for a specific node
getNodeContextMenu(node: TreeNodeData): TreeContextMenuItem[]
getMultiNodeContextMenu
methodGet context menu items for multiple selected nodes
getMultiNodeContextMenu(nodes: TreeNodeData[]): TreeContextMenuItem[]
getEmptySpaceContextMenu
methodGet context menu items for empty space (no node)
getEmptySpaceContextMenu(parentNode?: TreeNodeData): TreeContextMenuItem[]
getNodeRenderer
methodGet custom renderer for a specific node
getNodeRenderer(node: TreeNodeData): TreeNodeRenderer | null
getDefaultRenderer
methodGet default renderer for all nodes of this provider
getDefaultRenderer(): TreeNodeRenderer
getNodeIcon
methodGet custom icon for a node
getNodeIcon(node: TreeNodeData): string | React.ComponentType<any>
canExpand
methodCheck if a node can be expanded
canExpand(node: TreeNodeData): boolean
canSelect
methodCheck if a node can be selected
canSelect(node: TreeNodeData): boolean
canDrag
methodCheck if nodes can be dragged
canDrag(nodes: TreeNodeData[]): boolean
canDrop
methodCheck if a drop operation is allowed
canDrop(dragInfo: TreeDragDropInfo): boolean
onSelectionChange
methodCalled when node selection changes
onSelectionChange(selectionInfo: TreeSelectionInfo): void
onNodeExpansion
methodCalled when a node is expanded or collapsed
onNodeExpansion(node: TreeNodeData, expanded: boolean): void
onNodeDoubleClick
methodCalled when a node is double-clicked
onNodeDoubleClick(node: TreeNodeData): void
onDragDrop
methodCalled when a drag and drop operation completes
onDragDrop(dragInfo: TreeDragDropInfo): Promise<void>
onContextMenuAction
methodCalled when a context menu item is selected
onContextMenuAction(menuItemId: string, nodes: TreeNodeData[]): void
onNodeFocus
methodCalled when a node is focused
onNodeFocus(node: TreeNodeData | null): void
onTableSort
methodCalled when table sort changes
onTableSort(sort: TreeTableSort | null): void
onTableExport
methodCalled when table data export is requested
onTableExport(options: TreeTableExportOptions): Promise<string | void>
initialize
methodInitialize the provider
initialize(): Promise<void>
dispose
methodCleanup provider resources
dispose(): void
config
propertyProvider-specific configuration
config: Record<string, any>
TreeNodeData
interfaceRepresents a single node in the tree structure This interface defines the core properties that every tree node must have, along with optional properties for enhanced functionality like lazy loading, custom styling, and metadata storage.
interface TreeNodeData
id
propertyUnique identifier for the node
id: string
name
propertyDisplay name of the node
name: string
path
propertyFull path or identifier for the node
path: string
type
propertyType of node (file, directory, custom types)
type: string
hasChildren
propertyWhether this node has children (for lazy loading)
hasChildren: boolean
children
propertyChild nodes (if loaded)
children: TreeNodeData[]
metadata
propertyCustom metadata for the node
metadata: Record<string, any>
size
propertySize in bytes (for files)
size: number
lastModified
propertyLast modified date
lastModified: Date
icon
propertyCustom icon identifier
icon: string
className
propertyCustom CSS class
className: string
disabled
propertyWhether the node is disabled
disabled: boolean
renderData
propertyCustom render data for this specific node
renderData: Record<string, any>
TreeLoadResult
interfaceResult of loading tree nodes This interface defines what providers return when loading tree data, including the nodes themselves and metadata about the loading operation.
interface TreeLoadResult
nodes
propertyThe loaded nodes
nodes: TreeNodeData[]
hasMore
propertyWhether there are more nodes to load
hasMore: boolean
totalCount
propertyTotal count of nodes (for virtual scrolling)
totalCount: number
error
propertyAny loading errors
error: Error
TreeLoadOptions
interfaceConfiguration options for loading tree data
interface TreeLoadOptions
filter
propertyFilter to apply when loading nodes
filter: string
forceReload
propertyWhether to force reload even if data is cached
forceReload: boolean
maxDepth
propertyMaximum depth to load initially
maxDepth: number
TreeTableColumn
interfaceColumn configuration for table view display
interface TreeTableColumn
id
propertyUnique identifier for the column
id: string
label
propertyDisplay label for the column header
label: string
dataKey
propertyProperty path in TreeNodeData to display (supports dot notation)
dataKey: string
width
propertyColumn width (CSS value)
width: string
minWidth
propertyMinimum width (CSS value)
minWidth: string
align
propertyColumn alignment
align: "right" | "left" | "center"
sortable
propertyWhether column is sortable
sortable: boolean
filterable
propertyWhether column is filterable
filterable: boolean
isTreeColumn
propertyWhether this column displays the tree hierarchy
isTreeColumn: boolean
className
propertyCustom CSS classes for the column
className: string
renderCell
propertyCustom cell renderer function
renderCell: (value: any, node: TreeNodeData) => React.ReactNode
formatValue
propertyCustom value formatter
formatValue: (value: any, node: TreeNodeData) => string
TreeTableSort
interfaceSort configuration for table view
interface TreeTableSort
columnId
propertyColumn ID to sort by
columnId: string
direction
propertySort direction
direction: "asc" | "desc"
TreeTableExportOptions
interfaceExport configuration for table view
interface TreeTableExportOptions
format
propertyExport format
format: "csv" | "json" | "tsv"
columns
propertyColumn IDs to include (empty = all columns)
columns: string[]
includeHierarchy
propertyWhether to include hierarchy structure
includeHierarchy: boolean
flatten
propertyWhether to flatten nested data
flatten: boolean
filename
propertyCustom filename for download
filename: string
TreeSelectionTheme
interfaceEnhanced selection theme configuration
interface TreeSelectionTheme
colorScheme
propertyColor scheme for selection highlighting
colorScheme: SelectionColorScheme
intensity
propertySelection intensity level
intensity: SelectionIntensity
focusStyle
propertyFocus indicator style
focusStyle: FocusIndicatorStyle
customColors
propertyCustom colors when using 'custom' color scheme
customColors: { background: string; foreground: string; accent: string; }animated
propertyWhether to animate selection changes
animated: boolean
persistSelection
propertyWhether to show selection even when component loses focus
persistSelection: boolean
TreeComponentProps
interfaceinterface TreeComponentProps
provider
propertyProvider that supplies tree data and operations
provider: TreeProvider
model
propertyOptional pre-created TreeModel (if provided, component won't create its own)
model: TreeModel
loadOptions
propertyOptional loading options to pass to the provider
loadOptions: TreeLoadOptions
className
propertyAdditional CSS classes to apply to the tree container
className: string
TreeTableProps
interfaceinterface TreeTableProps
treeModel
propertyThe tree model managing state
treeModel: TreeModel
columns
propertyTable columns configuration
columns: TreeTableColumn[]
enableAnimations
propertyEnable animations for expand/collapse transitions
enableAnimations: boolean
className
propertyAdditional CSS classes
className: string
enableExport
propertyWhether to show export functionality
enableExport: boolean
enableFiltering
propertyWhether to enable filtering
enableFiltering: boolean
enableSorting
propertyWhether to enable sorting
enableSorting: boolean
AccessibilityConfig
interfaceinterface AccessibilityConfig
role
propertyrole: string
ariaLabel
propertyariaLabel: string
ariaLabelledBy
propertyariaLabelledBy: string
ariaDescribedBy
propertyariaDescribedBy: string
ariaMultiSelectable
propertyariaMultiSelectable: boolean
ariaOrientation
propertyariaOrientation: "horizontal" | "vertical"
tabIndex
propertytabIndex: number
ItemAccessibilityConfig
interfaceinterface ItemAccessibilityConfig
role
propertyrole: string
ariaLabel
propertyariaLabel: string
ariaSelected
propertyariaSelected: boolean
ariaExpanded
propertyariaExpanded: boolean
ariaLevel
propertyariaLevel: number
ariaSetSize
propertyariaSetSize: number
ariaPosInSet
propertyariaPosInSet: number
tabIndex
propertytabIndex: number
KeyboardNavigationConfig
interfaceinterface KeyboardNavigationConfig
currentIndex
propertycurrentIndex: number
totalItems
propertytotalItems: number
itemsPerRow
propertyitemsPerRow: number
viewType
propertyviewType: string
ListItemsProvider
interfaceinterface ListItemsProvider
id
propertyProvider identifier
id: string
name
propertyHuman-readable name
name: string
supportedViewTypes
propertySupported view types for this provider
supportedViewTypes: ListViewType[]
isMultiSelectEnabled
propertyWhether multi-selection is enabled
isMultiSelectEnabled: boolean
isVirtualizationEnabled
propertyWhether virtualization is enabled
isVirtualizationEnabled: boolean
loadItems
methodLoad items from the data source
loadItems(options?: ListLoadOptions): Promise<ListLoadResult>
getItemCount
methodGet total count of items (for virtualization)
getItemCount(): Promise<number>
loadItemRange
methodLoad a specific range of items (for virtualization)
loadItemRange(start: number, end: number): Promise<ListLoadResult>
refresh
methodRefresh/reload items
refresh(): Promise<ListLoadResult>
getItemHeight
methodGet item height for a specific view type (for virtualization)
getItemHeight(viewType: ListViewType): number
getItemWidth
methodGet item width for grid-based view types
getItemWidth(viewType: ListViewType): number
getVirtualizationConfig
methodGet virtualization configuration
getVirtualizationConfig(): VirtualizationConfig
onSelectionChange
methodCalled when selection changes
onSelectionChange(selectionInfo: ListSelectionInfo): void
onViewTypeChange
methodCalled when view type changes
onViewTypeChange(viewType: ListViewType): void
onItemDoubleClick
methodCalled when an item is double-clicked
onItemDoubleClick(item: ListItemData): void
addListener
methodaddListener(listener: ListItemsProviderListener): void
removeListener
methodremoveListener(listener: ListItemsProviderListener): void
getItemIcon
methodGet custom icon for an item
getItemIcon(item: ListItemData): string | React.ComponentType<any>
getItemContextMenu
methodGet context menu items for a specific item
getItemContextMenu(item: ListItemData): ListContextMenuItem[]
getMultiItemContextMenu
methodGet context menu items for multiple selected items
getMultiItemContextMenu(items: ListItemData[]): ListContextMenuItem[]
onContextMenuAction
methodCalled when a context menu action is selected
onContextMenuAction(menuItemId: string, items: ListItemData[]): void
isDragDropEnabled
propertyWhether drag and drop is enabled
isDragDropEnabled: boolean
canDragItem
methodCheck if an item can be dragged
canDragItem(item: ListItemData): boolean
canDropItems
methodCheck if items can be dropped on a target
canDropItems(draggedItems: ListItemData[], targetItem: ListItemData | null, position: "before" | "after" | "inside"): boolean
onDragStart
methodCalled when drag operation starts
onDragStart(draggedItems: ListItemData[], event: DragEvent): void
onDrop
methodCalled when items are dropped
onDrop(dragDropInfo: ListDragDropInfo): void
onDragEnd
methodCalled when drag operation ends (whether successful or not)
onDragEnd(draggedItems: ListItemData[], success: boolean): void
ListViewType
interfaceinterface ListViewType
BenchmarkResult
interfaceinterface BenchmarkResult
operation
propertyoperation: string
duration
propertyduration: number
timestamp
propertytimestamp: number
metadata
propertymetadata: Record<string, any>
BenchmarkReport
interfaceinterface BenchmarkReport
totalOperations
propertytotalOperations: number
totalDuration
propertytotalDuration: number
averageDuration
propertyaverageDuration: number
slowestOperation
propertyslowestOperation: BenchmarkResult
fastestOperation
propertyfastestOperation: BenchmarkResult
operations
propertyoperations: BenchmarkResult[]
GridLayoutConfig
interfaceinterface GridLayoutConfig
containerWidth
propertycontainerWidth: number
containerHeight
propertycontainerHeight: number
itemsPerRow
propertyitemsPerRow: number | "auto"
gap
propertygap: number
padding
propertypadding: number
minItemWidth
propertyminItemWidth: number
maxItemWidth
propertymaxItemWidth: number
aspectRatio
propertyaspectRatio: number
GridItemLayout
interfaceinterface GridItemLayout
x
propertyx: number
y
propertyy: number
width
propertywidth: number
height
propertyheight: number
thumbnailSize
propertythumbnailSize: number
textHeight
propertytextHeight: number
GridLayoutResult
interfaceinterface GridLayoutResult
itemsPerRow
propertyitemsPerRow: number
itemWidth
propertyitemWidth: number
itemHeight
propertyitemHeight: number
totalRows
propertytotalRows: number
totalHeight
propertytotalHeight: number
items
propertyitems: GridItemLayout[]
MasonryLayoutConfig
interfaceinterface MasonryLayoutConfig
containerWidth
propertycontainerWidth: number
containerHeight
propertycontainerHeight: number
columnCount
propertycolumnCount: number | "auto"
gap
propertygap: number
padding
propertypadding: number
minColumnWidth
propertyminColumnWidth: number
maxColumnWidth
propertymaxColumnWidth: number
MasonryItemLayout
interfaceinterface MasonryItemLayout
x
propertyx: number
y
propertyy: number
width
propertywidth: number
height
propertyheight: number
column
propertycolumn: number
thumbnailWidth
propertythumbnailWidth: number
thumbnailHeight
propertythumbnailHeight: number
textHeight
propertytextHeight: number
MasonryLayoutResult
interfaceinterface MasonryLayoutResult
columnCount
propertycolumnCount: number
columnWidth
propertycolumnWidth: number
totalHeight
propertytotalHeight: number
items
propertyitems: MasonryItemLayout[]
columnHeights
propertycolumnHeights: number[]
MasonryItemData
interfaceinterface MasonryItemData
id
propertyid: string
aspectRatio
propertyaspectRatio: number
customHeight
propertycustomHeight: number
textLength
propertytextLength: number
ExplorerLayoutProps
interfaceinterface ExplorerLayoutProps
sections
propertysections: ExplorerSections
className
propertyclassName: string
isSidebarCollapsed
propertyisSidebarCollapsed: boolean
setSidebarCollapsed
propertysetSidebarCollapsed: (collapsed: boolean) => void
ExplorerSections
interfaceinterface ExplorerSections
header
propertyheader: React.ReactNode
footer
propertyfooter: React.ReactNode
sidebar
propertysidebar: { content: ReactNode; toolbar?: ReactNode; width?: number; }main
propertymain: { content: ReactNode; toolbar?: ReactNode; }ViewModeDefinition
interfaceinterface ViewModeDefinition
id
propertyid: string
name
propertyname: string
description
propertydescription: string
icon
propertyicon: IconDefinition
component
propertycomponent: React.ComponentType<ViewModeComponentProps>
capabilities
propertycapabilities: ViewModeCapabilities
settings
propertysettings: ViewModeSettings
isDefault
propertyisDefault: boolean
priority
propertypriority: number
ViewModeComponentProps
interfaceinterface ViewModeComponentProps
model
propertymodel: any
className
propertyclassName: string
style
propertystyle: React.CSSProperties
ViewModeCapabilities
interfaceinterface ViewModeCapabilities
supportsSelection
propertysupportsSelection: boolean
supportsMultiSelection
propertysupportsMultiSelection: boolean
supportsNavigation
propertysupportsNavigation: boolean
supportsSorting
propertysupportsSorting: boolean
supportsFiltering
propertysupportsFiltering: boolean
supportsDragDrop
propertysupportsDragDrop: boolean
supportsKeyboardNavigation
propertysupportsKeyboardNavigation: boolean
supportsVirtualization
propertysupportsVirtualization: boolean
supportsGrouping
propertysupportsGrouping: boolean
supportsInlinePreview
propertysupportsInlinePreview: boolean
supportsCustomColumns
propertysupportsCustomColumns: boolean
supportsZoom
propertysupportsZoom: boolean
ViewModeSettings
interfaceinterface ViewModeSettings
defaultSortField
propertydefaultSortField: string
defaultSortDirection
propertydefaultSortDirection: "asc" | "desc"
itemSize
propertyitemSize: { width?: number; height?: number; minWidth?: number; maxWidth?: number; minHeight?: number; maxHeight?: number; }layout
propertylayout: { padding?: number; gap?: number; columns?: number | "auto"; rows?: number | "auto"; }display
propertydisplay: { showIcons?: boolean; showLabels?: boolean; showDetails?: boolean; showPreview?: boolean; iconSize?: "small" | "medium" | "large"; labelPosition?: "bottom" | "right" | "overlay"; }interaction
propertyinteraction: { singleClickOpen?: boolean; doubleClickOpen?: boolean; hoverPreview?: boolean; contextMenu?: boolean; }performance
propertyperformance: { virtualization?: boolean; bufferSize?: number; preloadCount?: number; debounceMs?: number; }customSettings
propertycustomSettings: Record<string, any>
ViewModeState
interfaceinterface ViewModeState
isActive
propertyisActive: boolean
isInitialized
propertyisInitialized: boolean
settings
propertysettings: ViewModeSettings
lastUsed
propertylastUsed: Date
userPreferences
propertyuserPreferences: Record<string, any>
TreeViewSettings
interfaceinterface TreeViewSettings
indentSize
propertyindentSize: number
showConnectors
propertyshowConnectors: boolean
expandOnSingleClick
propertyexpandOnSingleClick: boolean
collapseOnSecondClick
propertycollapseOnSecondClick: boolean
rememberExpansion
propertyrememberExpansion: boolean
autoExpand
propertyautoExpand: boolean
maxDepth
propertymaxDepth: number
ListViewSettings
interfaceinterface ListViewSettings
columns
propertycolumns: ColumnDefinition[]
headerHeight
propertyheaderHeight: number
rowHeight
propertyrowHeight: number
alternatingRows
propertyalternatingRows: boolean
gridLines
propertygridLines: boolean
resizableColumns
propertyresizableColumns: boolean
sortableColumns
propertysortableColumns: boolean
ThumbnailViewSettings
interfaceinterface ThumbnailViewSettings
thumbnailSize
propertythumbnailSize: number
aspectRatio
propertyaspectRatio: number
showFilenames
propertyshowFilenames: boolean
showFileSize
propertyshowFileSize: boolean
showDate
propertyshowDate: boolean
gridSpacing
propertygridSpacing: number
loadThumbnails
propertyloadThumbnails: boolean
thumbnailQuality
propertythumbnailQuality: "low" | "medium" | "high"
TreemapViewSettings
interfaceinterface TreemapViewSettings
algorithm
propertyalgorithm: "squarified" | "slice-dice" | "strip"
colorScheme
propertycolorScheme: "custom" | "size" | "type" | "date"
paddingInner
propertypaddingInner: number
paddingOuter
propertypaddingOuter: number
showLabels
propertyshowLabels: boolean
labelThreshold
propertylabelThreshold: number
animation
propertyanimation: boolean
zoomable
propertyzoomable: boolean
ViewModeRegistry
interfaceinterface ViewModeRegistry
registerViewMode
methodregisterViewMode(definition: ViewModeDefinition): void
unregisterViewMode
methodunregisterViewMode(id: string): void
getViewMode
methodgetViewMode(id: string): ViewModeDefinition | undefined
getAllViewModes
methodgetAllViewModes(): ViewModeDefinition[]
getViewModesByCapability
methodgetViewModesByCapability(capability: keyof ViewModeCapabilities): ViewModeDefinition[]
IFileBrowserProvider
interfaceinterface IFileBrowserProvider
id
propertyid: string
name
propertyname: string
version
propertyversion: string
loadItems
methodloadItems(path: string): Promise<FileBrowserItem[]>
loadItemDetails
methodloadItemDetails(item: FileBrowserItem): Promise<FileBrowserItemDetails>
refreshItems
methodrefreshItems(path: string): Promise<FileBrowserItem[]>
normalizePath
methodnormalizePath(path: string): string
getParentPath
methodgetParentPath(path: string): string | null
resolvePath
methodresolvePath(basePath: string, relativePath: string): string
getSupportedViewModes
methodgetSupportedViewModes(): ViewModeDefinition[]
getToolbarActions
methodgetToolbarActions(): ToolbarAction[]
getContextMenuActions
methodgetContextMenuActions(item: FileBrowserItem): ContextAction[]
getDefaultViewMode
methodgetDefaultViewMode(): string
canPerformAction
methodcanPerformAction(action: string, items: FileBrowserItem[]): boolean
performAction
methodperformAction(action: string, items: FileBrowserItem[]): Promise<ActionResult>
getItemIcon
methodgetItemIcon(item: FileBrowserItem): IconDefinition
getItemPreview
methodgetItemPreview(item: FileBrowserItem): Promise<PreviewData | null>
getItemDisplayName
methodgetItemDisplayName(item: FileBrowserItem): string
getItemTooltip
methodgetItemTooltip(item: FileBrowserItem): string
getAvailableFilters
methodgetAvailableFilters(): FilterDefinition[]
getAvailableSortFields
methodgetAvailableSortFields(): SortFieldDefinition[]
applyFilter
methodapplyFilter(items: FileBrowserItem[], criteria: any): FileBrowserItem[]
applySort
methodapplySort(items: FileBrowserItem[], field: string, direction: "asc" | "desc"): FileBrowserItem[]
onItemsChanged
methodonItemsChanged(callback: (changes: ItemChange[]) => void): () => void
onError
methodonError(callback: (error: Error) => void): () => void
initialize
methodinitialize(): Promise<void>
dispose
methoddispose(): void
ToolbarAction
interfaceinterface ToolbarAction
id
propertyid: string
label
propertylabel: string
icon
propertyicon: IconDefinition
tooltip
propertytooltip: string
category
propertycategory: string
priority
propertypriority: number
shortcut
propertyshortcut: string
isVisible
propertyisVisible: (context: ActionContext) => boolean
isEnabled
propertyisEnabled: (context: ActionContext) => boolean
isActive
propertyisActive: (context: ActionContext) => boolean
action
propertyaction: (context: ActionContext) => Promise<void> | void
variant
propertyvariant: "default" | "primary" | "secondary" | "destructive"
size
propertysize: "sm" | "md" | "lg"
showLabel
propertyshowLabel: boolean
ContextAction
interfaceinterface ContextAction
id
propertyid: string
label
propertylabel: string
icon
propertyicon: IconDefinition
shortcut
propertyshortcut: string
group
propertygroup: string
separator
propertyseparator: boolean
isEnabled
propertyisEnabled: (context: ActionContext) => boolean
isVisible
propertyisVisible: (context: ActionContext) => boolean
action
propertyaction: (context: ActionContext) => Promise<void> | void
submenu
propertysubmenu: ContextAction[]
ActionContext
interfaceinterface ActionContext
selectedItems
propertyselectedItems: FileBrowserItem[]
currentPath
propertycurrentPath: string
provider
propertyprovider: IFileBrowserProvider
viewMode
propertyviewMode: string
allItems
propertyallItems: FileBrowserItem[]
ActionResult
interfaceinterface ActionResult
success
propertysuccess: boolean
message
propertymessage: string
data
propertydata: any
error
propertyerror: Error
FilterDefinition
interfaceinterface FilterDefinition
id
propertyid: string
label
propertylabel: string
type
propertytype: "boolean" | "text" | "date" | "select" | "multiselect" | "range"
defaultValue
propertydefaultValue: any
options
propertyoptions: { value: any; label: string; }[]placeholder
propertyplaceholder: string
SortFieldDefinition
interfaceinterface SortFieldDefinition
id
propertyid: string
label
propertylabel: string
defaultDirection
propertydefaultDirection: "asc" | "desc"
customSort
propertycustomSort: (a: FileBrowserItem, b: FileBrowserItem, direction: "asc" | "desc") => number
ProviderCapabilities
interfaceinterface ProviderCapabilities
canCreate
propertycanCreate: boolean
canRead
propertycanRead: boolean
canUpdate
propertycanUpdate: boolean
canDelete
propertycanDelete: boolean
canMove
propertycanMove: boolean
canCopy
propertycanCopy: boolean
canRename
propertycanRename: boolean
canUpload
propertycanUpload: boolean
canDownload
propertycanDownload: boolean
canPreview
propertycanPreview: boolean
canSearch
propertycanSearch: boolean
canFilter
propertycanFilter: boolean
canSort
propertycanSort: boolean
supportsNavigation
propertysupportsNavigation: boolean
supportsSelection
propertysupportsSelection: boolean
supportsHierarchy
propertysupportsHierarchy: boolean
maxFileSize
propertymaxFileSize: number
supportedFileTypes
propertysupportedFileTypes: string[]
ProviderConfiguration
interfaceinterface ProviderConfiguration
enableLogging
propertyenableLogging: boolean
cacheSize
propertycacheSize: number
cacheTTL
propertycacheTTL: number
batchSize
propertybatchSize: number
timeout
propertytimeout: number
retryAttempts
propertyretryAttempts: number
customOptions
propertycustomOptions: Record<string, any>
Constants
FileBrowser
constconst FileBrowser: React.FC<FileBrowserProps>
LoadingSpinner
constconst LoadingSpinner: React.FC<LoadingSpinnerProps>
FileIcon
constconst FileIcon: React.FC<FileIconProps>
FileBrowserHeader
constconst FileBrowserHeader: React.FC<FileBrowserHeaderProps>
FileBrowserContent
constconst FileBrowserContent: React.FC<FileBrowserContentProps>
TreeView
constconst TreeView: React.FC<TreeViewProps>
TreeNode
constconst TreeNode: React.FC<TreeNodeProps>
TreeNodeList
constconst TreeNodeList: React.FC<TreeNodeListProps>
ListView
constconst ListView: React.FC<ListViewProps>
FileBrowserBreadcrumb
constconst FileBrowserBreadcrumb: React.FC<BreadcrumbProps>
NavigationButtons
constconst NavigationButtons: React.FC<NavigationButtonsProps>
ViewModeToggle
constconst ViewModeToggle: React.FC<ViewModeToggleProps>
lucideIconMap
constconst lucideIconMap: Record<string, LucideIcon>
iconColorMap
constconst iconColorMap: Record<string, string>
contextMenuIconMap
constconst contextMenuIconMap: Record<string, LucideIcon>
fileExtensionIconMap
constconst fileExtensionIconMap: Record<string, string>
TreeComponent
constTree Component - Reactive tree display with loading states This is the main tree component that: - Creates and manages TreeModel - Shows loading/error states - Renders tree nodes - Follows MobX observer pattern for reactivity - Handles keyboard navigation
const TreeComponent: React.FunctionComponent<TreeProps>
TreeTable
constTreeTable Component - Table view of tree data
const TreeTable: React.FunctionComponent<TreeTableProps>
TreeCheckbox
constTreeCheckbox Component - 3-state checkbox for tree selection
const TreeCheckbox: React.FunctionComponent<TreeCheckboxProps>
DEFAULT_SELECTION_THEME
constDefault selection theme configuration
const DEFAULT_SELECTION_THEME: TreeSelectionTheme
ListItems
constconst ListItems: React.FunctionComponent<ListItemsProps>
ListItem
constconst ListItem: React.NamedExoticComponent<ListItemProps>
ListContextMenu
constconst ListContextMenu: React.FunctionComponent<ListContextMenuProps>
VirtualizedList
constconst VirtualizedList: React.FunctionComponent<VirtualizedListProps>
VirtualizedGrid
constconst VirtualizedGrid: React.FunctionComponent<VirtualizedGridProps>
MasonryView
constconst MasonryView: React.FC<MasonryViewProps>
ViewSizeControls
constconst ViewSizeControls: React.FunctionComponent<ViewSizeControlsProps>
ViewTypeSelector
constconst ViewTypeSelector: React.NamedExoticComponent<ViewTypeSelectorProps>
ListLoader
constconst ListLoader: React.FunctionComponent<ListLoaderProps>
LoadingIndicator
constconst LoadingIndicator: React.FunctionComponent<LoadingIndicatorProps>
InlineLoading
constconst InlineLoading: React.FunctionComponent<InlineLoadingProps>
LoadingProgress
constconst LoadingProgress: React.FunctionComponent<LoadingProgressProps>
ErrorDisplay
constconst ErrorDisplay: React.FunctionComponent<ErrorDisplayProps>
NetworkError
constconst NetworkError: React.FunctionComponent<NetworkErrorProps>
LoadError
constconst LoadError: React.FunctionComponent<LoadErrorProps>
EmptyState
constconst EmptyState: React.FunctionComponent<EmptyStateProps>
NoItems
constconst NoItems: React.FunctionComponent<NoItemsProps>
NoSearchResults
constconst NoSearchResults: React.FunctionComponent<NoSearchResultsProps>
NoSelection
constconst NoSelection: React.FunctionComponent<NoSelectionProps>
LIST_VIEW_TYPE
constconst LIST_VIEW_TYPE: ListViewType
GRID_VIEW_TYPE
constconst GRID_VIEW_TYPE: ListViewType
DETAILS_VIEW_TYPE
constconst DETAILS_VIEW_TYPE: ListViewType
MASONRY_HORIZONTAL_VIEW_TYPE
constconst MASONRY_HORIZONTAL_VIEW_TYPE: ListViewType
MASONRY_VERTICAL_VIEW_TYPE
constconst MASONRY_VERTICAL_VIEW_TYPE: ListViewType
benchmark
constconst benchmark: { start: (operation: string, metadata?: Record<string, any>) => void; end: (operation: string, metadata?: Record<string, any>) => number; time: <T>(operation: string, fn: () => T, metadata?: Record<string, any>) => T; timeAsync: <T>(operation: string, fn: () => Promise<T>, metadata?: Record<string, any>) => Promise<T>; report: () => void; clear: () => void; setEnabled: (enabled: boolean) => void; }benchmarkLogger
constconst benchmarkLogger: BenchmarkLogger
GRID_PRESETS
constconst GRID_PRESETS: { readonly compact: { readonly gap: 8; readonly padding: 12; readonly minItemWidth: 120; readonly maxItemWidth: 200; readonly aspectRatio: 1; }; readonly comfortable: { readonly gap: 16; readonly padding: 20; readonly minItemWidth: 200; readonly maxItemWidth: 300; readonly aspectRatio: 1.3; }; readonly spacious: { readonly gap: 24; readonly padding: 32; readonly minItemWidth: 280; readonly maxItemWidth: 400; readonly aspectRatio: 1.4; }; }MASONRY_PRESETS
constconst MASONRY_PRESETS: { readonly compact: { readonly gap: 8; readonly padding: 12; readonly minColumnWidth: 160; readonly maxColumnWidth: 250; }; readonly comfortable: { readonly gap: 16; readonly padding: 20; readonly minColumnWidth: 200; readonly maxColumnWidth: 300; }; readonly spacious: { readonly gap: 24; readonly padding: 32; readonly minColumnWidth: 250; readonly maxColumnWidth: 400; }; }CalculatedGridView
constconst CalculatedGridView: React.FunctionComponent<CalculatedGridViewProps>
ExplorerLayout
constconst ExplorerLayout: React.FC<ExplorerLayoutProps>
ExplorerLayoutSimpleExample
constconst ExplorerLayoutSimpleExample: React.FC<{}>