AnyMux

FS UI API reference

Exports of @anymux/fs-ui. Back to the module

Classes

FileBrowserModel

class
class FileBrowserModel

fileSystem

property
fileSystem: IFileSystem

fileSystemBridge

property
fileSystemBridge: FileSystemBridge

treeProvider

property
treeProvider: FileSystemTreeProvider

listProvider

property
listProvider: FileSystemListProvider

treeModel

property
treeModel: TreeModel

listModel

property
listModel: ListItemsModel

currentPath

property
currentPath: string

selectedPath

property
selectedPath: string

isLoading

property
isLoading: boolean

error

property
error: string

openFile

property
openFile: OpenFileState

renameState

property
renameState: { itemId: string; currentName: string; path: string; source: "list" | "tree"; }

deleteState

property
deleteState: { targets: Array<{ path: string; isDirectory: boolean; name: string; }>; }

createState

property
createState: { parentPath: string; type: "file" | "folder"; }

constructor

constructor
constructor(fileSystem: IFileSystem): FileBrowserModel

setInitialPath

method
setInitialPath(path: string): Promise<void>

handleTreeSelection

property
handleTreeSelection: (path: string) => Promise<void>

handleListNavigation

property
handleListNavigation: (path: string) => Promise<void>

handleListSelection

property
handleListSelection: (selectedItems: ListItemData[]) => void

navigateUp

method
navigateUp(): Promise<void>

navigateToPath

method
navigateToPath(path: string): Promise<void>

refresh

method
refresh(): Promise<void>

navigateToBreadcrumb

method
navigateToBreadcrumb(path: string): Promise<void>

refreshItems

method
refreshItems(): Promise<void>

clearError

method
clearError(): void

setCurrentPath

method
setCurrentPath(path: string): Promise<void>

openFileViewer

method
openFileViewer(path: string, name: string, size?: number): Promise<void>

navigateToNextFile

method
navigateToNextFile(): Promise<void>

navigateToPrevFile

method
navigateToPrevFile(): Promise<void>

closeFileViewer

method
closeFileViewer(): void

requestRename

method
requestRename(itemId: string, currentName: string, path: string, source?: "list" | "tree"): void

confirmRename

method
confirmRename(newName: string): Promise<void>

cancelRename

method
cancelRename(): void

requestDelete

method
requestDelete(targets: Array<{ path: string; isDirectory: boolean; name: string; }>): void

confirmDelete

method
confirmDelete(): Promise<void>

cancelDelete

method
cancelDelete(): void

requestCreate

method
requestCreate(parentPath: string, type: "file" | "folder"): void

confirmCreate

method
confirmCreate(name: string): Promise<void>

cancelCreate

method
cancelCreate(): void

SelectionManagerModel

class
class SelectionManagerModel

selectedItems

property
selectedItems: 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

property
lastSelectedIndex: number

focusedItem

property
focusedItem: FileBrowserItem

isUpdatingFromPanels

property
isUpdatingFromPanels: boolean

constructor

constructor
constructor(owner: SelectionOwner): SelectionManagerModel

isSelected

property
isSelected: (itemId: string) => boolean

selectItem

property
selectItem: (itemId: string, multiSelect?: boolean) => void

deselectItem

property
deselectItem: (itemId: string) => void

toggleSelection

property
toggleSelection: (itemId: string, multiSelect?: boolean) => void

selectRange

property
selectRange: (startItemId: string, endItemId: string, allItems: FileBrowserItem[]) => void

selectAll

property
selectAll: (items: FileBrowserItem[]) => void

clearSelection

property
clearSelection: () => void

invertSelection

property
invertSelection: (allItems: FileBrowserItem[]) => void

getSelectedItems

property
getSelectedItems: (allItems: FileBrowserItem[]) => FileBrowserItem[]

setFocusedItem

property
setFocusedItem: (item: FileBrowserItem | null) => void

selectFromTreePanel

property
selectFromTreePanel: (item: FileBrowserItem) => void

selectFromRightPanel

property
selectFromRightPanel: (item: FileBrowserItem) => void

selectFromNavigation

property
selectFromNavigation: (path: string, allItems: FileBrowserItem[]) => void

dispose

property
dispose: () => void

ToolbarManagerModel

class
class ToolbarManagerModel

toolbarActions

property
toolbarActions: 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

property
contextActions: 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

constructor
constructor(owner: ToolbarOwner): ToolbarManagerModel

addAction

property
addAction: (action: ToolbarAction) => void

removeAction

property
removeAction: (actionId: string) => void

updateAction

property
updateAction: (actionId: string, updates: Partial<ToolbarAction>) => void

addContextAction

property
addContextAction: (action: ContextAction) => void

removeContextAction

property
removeContextAction: (actionId: string) => void

getAvailableActions

property
getAvailableActions: (context: ActionContext) => ToolbarAction[]

getContextActionsForItem

property
getContextActionsForItem: (context: ActionContext) => ContextAction[]

canExecuteAction

property
canExecuteAction: (actionId: string, context: ActionContext) => boolean

getActionById

property
getActionById: (actionId: string) => ToolbarAction | undefined

getContextActionById

property
getContextActionById: (actionId: string) => ContextAction | undefined

setActions

property
setActions: (actions: ToolbarAction[]) => void

setContextActions

property
setContextActions: (actions: ContextAction[]) => void

clearAllActions

property
clearAllActions: () => void

ViewModeManagerModel

class
class ViewModeManagerModel

availableViewModes

property
availableViewModes: 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

property
currentViewMode: string

currentFilters

property
currentFilters: FilterCriteria

currentSortCriteria

property
currentSortCriteria: SortCriteria

treeViewUI

property
treeViewUI: TreeViewUIModel

listViewUI

property
listViewUI: ListViewUIModel

thumbnailViewUI

property
thumbnailViewUI: ThumbnailViewUIModel

treemapViewUI

property
treemapViewUI: TreemapViewUIModel

constructor

constructor
constructor(owner: any): ViewModeManagerModel

setCurrentViewMode

property
setCurrentViewMode: (viewModeId: string) => void

registerViewMode

property
registerViewMode: (definition: ViewModeDefinition) => void

unregisterViewMode

property
unregisterViewMode: (viewModeId: string) => void

setFilter

property
setFilter: (key: keyof FilterCriteria, value: any) => void

clearFilters

property
clearFilters: () => void

setSortCriteria

property
setSortCriteria: (field: string, direction: "asc" | "desc") => void

clearSort

property
clearSort: () => void

toggleSortDirection

property
toggleSortDirection: () => void

supportsCapability

property
supportsCapability: (capability: string) => boolean

dispose

method
dispose(): void

TreeViewUIModel

class
class TreeViewUIModel

expandedFolders

property
expandedFolders: 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

property
indentSize: number

showConnectors

property
showConnectors: boolean

expandOnSingleClick

property
expandOnSingleClick: boolean

collapseOnSecondClick

property
collapseOnSecondClick: boolean

rememberExpansion

property
rememberExpansion: boolean

settings

property
settings: TreeViewSettings

constructor

constructor
constructor(owner: any): TreeViewUIModel

expandFolder

property
expandFolder: (path: string) => void

collapseFolder

property
collapseFolder: (path: string) => void

toggleFolder

property
toggleFolder: (path: string) => void

isFolderExpanded

property
isFolderExpanded: (path: string) => boolean

hasChildren

property
hasChildren: (item: FileBrowserItem) => boolean

sortTreeNodes

property
sortTreeNodes: (nodes: FileBrowserItem[]) => FileBrowserItem[]

expandAll

property
expandAll: () => void

collapseAll

property
collapseAll: () => void

updateSettings

property
updateSettings: (newSettings: Partial<TreeViewSettings>) => void

dispose

method
dispose(): void

ListViewUIModel

class
class ListViewUIModel

columns

property
columns: 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

property
columnOrder: string[]

currentSort

property
currentSort: SortCriteria

settings

property
settings: ListViewSettings

showHeader

property
showHeader: boolean

striped

property
striped: boolean

compact

property
compact: boolean

hoverable

property
hoverable: boolean

constructor

constructor
constructor(owner: ListViewOwner): ListViewUIModel

addColumn

property
addColumn: (column: ColumnDefinition) => void

removeColumn

property
removeColumn: (columnId: string) => void

updateColumn

property
updateColumn: (columnId: string, updates: Partial<ColumnDefinition>) => void

resizeColumn

property
resizeColumn: (columnId: string, width: number) => void

reorderColumns

property
reorderColumns: (fromIndex: number, toIndex: number) => void

showColumn

property
showColumn: (columnId: string) => void

hideColumn

property
hideColumn: (columnId: string) => void

toggleColumnVisibility

property
toggleColumnVisibility: (columnId: string) => void

setSortCriteria

property
setSortCriteria: (field: string, direction: "asc" | "desc") => void

toggleSort

property
toggleSort: (field: string) => void

clearSort

property
clearSort: () => void

updateSettings

property
updateSettings: (newSettings: Partial<ListViewSettings>) => void

resetToDefaults

property
resetToDefaults: () => void

saveColumnLayout

property
saveColumnLayout: (name: string) => void

loadColumnLayout

property
loadColumnLayout: (name: string) => void

dispose

method
dispose(): void

ThumbnailViewUIModel

class
class ThumbnailViewUIModel

thumbnailSize

property
thumbnailSize: number

gridSpacing

property
gridSpacing: number

aspectRatio

property
aspectRatio: number

showFilenames

property
showFilenames: boolean

showFileSize

property
showFileSize: boolean

showDate

property
showDate: boolean

loadThumbnails

property
loadThumbnails: boolean

thumbnailQuality

property
thumbnailQuality: "low" | "medium" | "high"

columnsPerRow

property
columnsPerRow: number | "auto"

settings

property
settings: ThumbnailViewSettings

loadingThumbnails

property
loadingThumbnails: Set<string>

failedThumbnails

property
failedThumbnails: Set<string>

constructor

constructor
constructor(owner: ThumbnailOwner): ThumbnailViewUIModel

setThumbnailSize

property
setThumbnailSize: (size: number) => void

setGridSpacing

property
setGridSpacing: (spacing: number) => void

setAspectRatio

property
setAspectRatio: (ratio: number) => void

setColumnsPerRow

property
setColumnsPerRow: (columns: number | "auto") => void

toggleShowFilenames

property
toggleShowFilenames: () => void

toggleShowFileSize

property
toggleShowFileSize: () => void

toggleShowDate

property
toggleShowDate: () => void

setThumbnailQuality

property
setThumbnailQuality: (quality: "low" | "medium" | "high") => void

setThumbnailLoading

property
setThumbnailLoading: (itemId: string, loading: boolean) => void

setThumbnailFailed

property
setThumbnailFailed: (itemId: string) => void

setThumbnailSuccess

property
setThumbnailSuccess: (itemId: string) => void

isThumbnailLoading

property
isThumbnailLoading: (itemId: string) => boolean

isThumbnailFailed

property
isThumbnailFailed: (itemId: string) => boolean

clearThumbnailStates

property
clearThumbnailStates: () => void

calculateGridLayout

property
calculateGridLayout: (containerWidth: number) => { columns: number; itemsPerRow: number; }

updateSettings

property
updateSettings: (newSettings: Partial<ThumbnailViewSettings>) => void

applyPreset

property
applyPreset: (preset: "compact" | "balanced" | "detailed") => void

resetToDefaults

property
resetToDefaults: () => void

dispose

method
dispose(): void

ErrorBoundary

class
class ErrorBoundary

constructor

constructor
constructor(props: ErrorBoundaryProps): ErrorBoundary

getDerivedStateFromError

method
getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState>

componentDidCatch

method
componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void

handleReset

property
handleReset: () => void

render

method
render(): 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.Element

FileSystemProvider

class
class FileSystemProvider

id

property
id: "filesystem"

name

property
name: "File System Provider"

version

property
version: "1.0.0"

constructor

constructor
constructor(fileSystem: IFileSystem, cacheOptions?: Partial<CacheOptions>): FileSystemProvider

loadItems

method
loadItems(path: string): Promise<FileBrowserItem[]>

normalizePath

method
normalizePath(path: string): string

getParentPath

method
getParentPath(path: string): string | null

resolvePath

method
resolvePath(basePath: string, relativePath: string): string

getItemIcon

method
getItemIcon(item: FileBrowserItem): IconDefinition

getItemDisplayName

method
getItemDisplayName(item: FileBrowserItem): string

getItemPreview

method
getItemPreview(item: FileBrowserItem): Promise<PreviewData | null>

canPerformAction

method
canPerformAction(action: string, items: FileBrowserItem[]): boolean

performAction

method
performAction(action: string, items: FileBrowserItem[]): Promise<any>

initialize

method
initialize(): Promise<void>

dispose

method
dispose(): void

clearCache

method
clearCache(): void

getCacheStats

method
getCacheStats(): { size: number; maxSize: number; hitRate?: number; }

getLeftPanelModes

method
getLeftPanelModes(): LeftPanelMode[]

getRightPanelViewModes

method
getRightPanelViewModes(): ViewModeDefinition[]

GitRepositoryProvider

class
class GitRepositoryProvider

id

property
id: "git-repository"

name

property
name: "Git Repository Provider"

version

property
version: "1.0.0"

constructor

constructor
constructor(options: GitRepositoryOptions): GitRepositoryProvider

loadItems

method
loadItems(path: string): Promise<FileBrowserItem[]>

normalizePath

method
normalizePath(path: string): string

getParentPath

method
getParentPath(path: string): string | null

resolvePath

method
resolvePath(basePath: string, relativePath: string): string

getItemIcon

method
getItemIcon(item: FileBrowserItem): IconDefinition

getItemDisplayName

method
getItemDisplayName(item: FileBrowserItem): string

getItemPreview

method
getItemPreview(item: FileBrowserItem): Promise<PreviewData | null>

canPerformAction

method
canPerformAction(action: string, items: FileBrowserItem[]): boolean

performAction

method
performAction(action: string, items: FileBrowserItem[]): Promise<any>

initialize

method
initialize(): Promise<void>

dispose

method
dispose(): void

getCurrentBranch

method
getCurrentBranch(): Promise<string>

getBranches

method
getBranches(): Promise<string[]>

switchBranch

method
switchBranch(branch: string): Promise<void>

getCommitHistory

method
getCommitHistory(path?: string, limit?: number): Promise<any[]>

GitProvider

class
class GitProvider

id

property
id: "git"

name

property
name: "Git Provider"

version

property
version: "1.0.0"

constructor

constructor
constructor(repository: GitRepositoryModel | GitWrapperIntegration): GitProvider

loadItems

method
loadItems(path: string): Promise<FileBrowserItem[]>

getLeftPanelModes

method
getLeftPanelModes(): LeftPanelMode[]

getRightPanelViewModes

method
getRightPanelViewModes(): ViewModeDefinition[]

normalizePath

method
normalizePath(path: string): string

getParentPath

method
getParentPath(path: string): string | null

resolvePath

method
resolvePath(basePath: string, relativePath: string): string

getItemIcon

method
getItemIcon(item: FileBrowserItem): IconDefinition

getItemDisplayName

method
getItemDisplayName(item: FileBrowserItem): string

canPreviewFile

method
canPreviewFile(item: FileBrowserItem): boolean

getFilePreview

method
getFilePreview(item: FileBrowserItem): Promise<PreviewData>

getItemPreview

method
getItemPreview(item: FileBrowserItem): Promise<PreviewData | null>

canPerformAction

method
canPerformAction(action: string, items: FileBrowserItem[]): boolean

performAction

method
performAction(action: string, items: FileBrowserItem[]): Promise<any>

initialize

method
initialize(): Promise<void>

dispose

method
dispose(): void

TreeModel

class
class TreeModel

nodes

property
nodes: TreeNodeData[]

nodeMap

property
nodeMap: 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

property
isLoading: boolean

errors

property
errors: 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

property
selectedNodes: 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

property
focusedNode: string

checkboxStates

property
checkboxStates: 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

property
expandedNodes: 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

property
loadingNodes: 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

property
contextMenuVisible: boolean

contextMenuPosition

property
contextMenuPosition: { x: number; y: number; }

contextMenuItems

property
contextMenuItems: TreeContextMenuItem[]

contextMenuNodes

property
contextMenuNodes: TreeNodeData[]

constructor

constructor
constructor(provider: TreeProvider): TreeModel

isNodeSelected

method

Check if a specific node is selected

isNodeSelected(nodeId: string): boolean

isNodeExpanded

method

Check if a specific node is expanded

isNodeExpanded(nodeId: string): boolean

isNodeLoading

method

Check if a specific node is loading

isNodeLoading(nodeId: string): boolean

loadNodes

property

Load 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

method

Select a specific node

selectNode(node: TreeNodeData): void

deselectNode

method

Deselect a specific node

deselectNode(node: TreeNodeData): void

clearSelection

method

Clear all selected nodes

clearSelection(): void

selectAll

method

Select all nodes (only if multi-select is enabled)

selectAll(): void

getCheckboxState

method

Get checkbox state for a specific node

getCheckboxState(nodeId: string): CheckboxState

handleCheckboxChange

method

Handle checkbox click for a node

handleCheckboxChange(node: TreeNodeData, newState: CheckboxState): void

setFocus

method

Set focus to a specific node

setFocus(nodeId: string): void

focusNext

method

Move focus to next visible node

focusNext(): boolean

focusPrevious

method

Move focus to previous visible node

focusPrevious(): boolean

focusFirst

method

Move focus to first visible node

focusFirst(): boolean

focusLast

method

Move focus to last visible node

focusLast(): boolean

expandNode

property

Expand 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

method

Collapse a specific node

collapseNode(node: TreeNodeData): void

toggleExpansion

method

Toggle expansion state of a specific node

toggleExpansion(node: TreeNodeData): void

showContextMenu

method

Show context menu for a specific node

showContextMenu(node: TreeNodeData, event: MouseEvent): void

showMultiNodeContextMenu

method

Show context menu for multiple selected nodes

showMultiNodeContextMenu(nodes: TreeNodeData[], event: MouseEvent): void

hideContextMenu

method

Hide context menu

hideContextMenu(): void

handleContextMenuAction

method

Handle context menu item click

handleContextMenuAction(menuItem: TreeContextMenuItem): void

TestTreeProvider

class
class TestTreeProvider

id

property
id: "test-tree-provider"

name

property
name: "Test Tree Provider"

version

property
version: "1.0.0"

isMultiSelectEnabled

property
isMultiSelectEnabled: boolean

isDragDropEnabled

property
isDragDropEnabled: false

isVirtualizationEnabled

property
isVirtualizationEnabled: false

isTableViewEnabled

property
isTableViewEnabled: true

useCheckboxSelection

property
useCheckboxSelection: boolean

allowPartialSelection

property
allowPartialSelection: true

config

property
config: {}

selectionTheme

property
selectionTheme: TreeSelectionTheme

slowLoading

property
slowLoading: boolean

simulateErrors

property
simulateErrors: boolean

maxDepth

property
maxDepth: number

nodesPerLevel

property
nodesPerLevel: number

loadingDelay

property
loadingDelay: number

onSelectionChange

property
onSelectionChange: (selectionInfo: TreeSelectionInfo) => void

onNodeExpansion

property
onNodeExpansion: (node: TreeNodeData, isExpanded: boolean) => void

onNodeFocus

property
onNodeFocus: (node: TreeNodeData | null) => void

constructor

constructor
constructor(): TestTreeProvider

updateSelectionTheme

property

Update selection theme reactively

updateSelectionTheme: (theme: Partial<TreeSelectionTheme>) => void

setMultiSelectEnabled

property

Update multi-select setting

setMultiSelectEnabled: (enabled: boolean) => void

setCheckboxSelection

property

Update checkbox selection setting

setCheckboxSelection: (enabled: boolean) => void

getSelectionTheme

method

Get selection theme configuration

getSelectionTheme(): TreeSelectionTheme

loadNodes

method

Load tree nodes

loadNodes(options?: TreeLoadOptions): Promise<TreeLoadResult>

loadChildren

method

Load child nodes for a given parent

loadChildren(node: TreeNodeData, options?: TreeLoadOptions): Promise<TreeLoadResult>

refresh

method

Refresh tree data

refresh(path?: string): Promise<TreeLoadResult>

canExpand

method
canExpand(node: TreeNodeData): boolean

canSelect

method
canSelect(node: TreeNodeData): boolean

getNodeContextMenu

method
getNodeContextMenu(node: TreeNodeData): TreeContextMenuItem[]

getMultiNodeContextMenu

method
getMultiNodeContextMenu(nodes: TreeNodeData[]): TreeContextMenuItem[]

onContextMenuAction

method
onContextMenuAction(menuItemId: string, nodes: TreeNodeData[]): void

getTableColumns

method
getTableColumns(): TreeTableColumn[]

getDefaultTableSort

method
getDefaultTableSort(): TreeTableSort

onTableSort

method
onTableSort(sort: TreeTableSort | null): void

onTableExport

method
onTableExport(options: TreeTableExportOptions): Promise<string | void>

getNodeIcon

method

Get custom icon for a node based on file type and category

getNodeIcon(node: TreeNodeData): string | React.ComponentType<any>

SimpleTreeProvider

class
class SimpleTreeProvider

id

property
id: "simple-tree-provider"

name

property
name: "Simple Tree Provider"

version

property
version: "1.0.0"

isMultiSelectEnabled

property
isMultiSelectEnabled: boolean

isDragDropEnabled

property
isDragDropEnabled: false

isVirtualizationEnabled

property
isVirtualizationEnabled: false

isTableViewEnabled

property
isTableViewEnabled: false

useCheckboxSelection

property
useCheckboxSelection: boolean

allowPartialSelection

property
allowPartialSelection: true

config

property
config: {}

selectionTheme

property
selectionTheme: TreeSelectionTheme

onSelectionChange

property
onSelectionChange: (selectionInfo: TreeSelectionInfo) => void

onNodeExpansion

property
onNodeExpansion: (node: TreeNodeData, isExpanded: boolean) => void

onNodeFocus

property
onNodeFocus: (node: TreeNodeData | null) => void

onContextMenuAction

property
onContextMenuAction: (actionId: string, nodes: TreeNodeData[]) => void

constructor

constructor
constructor(options?: SimpleTreeProviderOptions): SimpleTreeProvider

loadNodes

method

Load root nodes

loadNodes(options?: TreeLoadOptions): Promise<TreeLoadResult>

loadChildren

method

Load children for a specific node

loadChildren(node: TreeNodeData, options?: TreeLoadOptions): Promise<TreeLoadResult>

refresh

method

Refresh/reload nodes

refresh(path?: string): Promise<TreeLoadResult>

getNodeContextMenu

method

Get context menu for a single node

getNodeContextMenu(node: TreeNodeData): TreeContextMenuItem[]

getMultiNodeContextMenu

method

Get context menu for multiple selected nodes

getMultiNodeContextMenu(nodes: TreeNodeData[]): TreeContextMenuItem[]

getSelectionTheme

method

Get selection theme configuration

getSelectionTheme(): TreeSelectionTheme

setData

method

Update the static data

setData(data: TreeNodeData[]): void

getData

method

Get current data

getData(): TreeNodeData[]

addNode

method

Add a new node to the tree

addNode(parentPath: string | null, newNode: TreeNodeData): boolean

removeNode

method

Remove a node from the tree

removeNode(nodePath: string): boolean

findNodeByPath

method

Find a node by its path

findNodeByPath(path: string): TreeNodeData | null

updateSelectionTheme

property

Update selection theme reactively

updateSelectionTheme: (theme: Partial<TreeSelectionTheme>) => void

setMultiSelectEnabled

property

Update multi-select setting

setMultiSelectEnabled: (enabled: boolean) => void

setCheckboxSelection

property

Update checkbox selection setting

setCheckboxSelection: (enabled: boolean) => void

ListErrorBoundary

class
class ListErrorBoundary

constructor

constructor
constructor(props: ErrorBoundaryProps): ListErrorBoundary

getDerivedStateFromError

method
getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState>

componentDidCatch

method
componentDidCatch(error: Error, errorInfo: ErrorInfo): void

handleRetry

property
handleRetry: () => void

render

method
render(): 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.Element

FocusManager

class
class FocusManager

saveFocus

method
saveFocus(): void

restoreFocus

method
restoreFocus(): boolean

focusFirst

method
focusFirst(container: HTMLElement): boolean

focusLast

method
focusLast(container: HTMLElement): boolean

ListItemsModel

class
class ListItemsModel

currentViewType

property
currentViewType: ListViewType

items

property
items: ListItemData[]

itemMap

property
itemMap: 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

property
totalItemCount: number

selectedItems

property
selectedItems: 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

property
previousSelection: ListItemData[]

focusedItem

property
focusedItem: string

selectionAnchor

property
selectionAnchor: string

isLoading

property
isLoading: boolean

loadingRanges

property
loadingRanges: 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

property
errors: 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

property
viewportRange: { start: number; end: number; }

scrollPosition

property
scrollPosition: number

containerSize

property
containerSize: { width: number; height: number; }

isDragging

property
isDragging: boolean

draggedItems

property
draggedItems: ListItemData[]

dragOverItem

property
dragOverItem: string

dragOverPosition

property
dragOverPosition: "before" | "after" | "inside"

itemSize

property
itemSize: "medium" | "small" | "large" | "extra-large"

customItemWidth

property
customItemWidth: number

customItemHeight

property
customItemHeight: number

itemsPerRow

property
itemsPerRow: number | "auto"

debugVisualization

property
debugVisualization: boolean

constructor

constructor
constructor(provider: ListItemsProvider): ListItemsModel

onItemsCountChanged

method
onItemsCountChanged(count: number): void

onItemChanged

method
onItemChanged(itemIndex: number): void

loadItems

property

Load 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

property

Load 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

property

Refresh 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

method

Select a single item with proper single/multi-selection logic

selectItem(item: ListItemData, modifiers?: { ctrl?: boolean; shift?: boolean; }): void

selectRange

method

Select a contiguous range of items between two item IDs

selectRange(fromId: string, toId: string): void

clearSelection

method

Clear all selection

clearSelection(): void

selectAll

method

Select all items (if multi-select enabled)

selectAll(): void

setViewType

method

Set the current view type

setViewType(viewType: ListViewType): void

setItemSize

method

Set item size for grid and masonry views

setItemSize(size: "small" | "medium" | "large" | "extra-large"): void

setCustomItemWidth

method

Set custom item width and update calculators

setCustomItemWidth(width: number): void

setCustomItemHeight

method

Set custom item height and update calculators

setCustomItemHeight(height: number): void

setItemsPerRow

method

Set items per row for grid and masonry views

setItemsPerRow(itemsPerRow: number | "auto"): void

setDebugVisualization

method

Set debug visualization mode

setDebugVisualization(enabled: boolean): void

getEffectiveItemsPerRow

method

Get effective items per row based on view and container width

getEffectiveItemsPerRow(containerWidth?: number): number

setFocusedItem

method

Set focused item

setFocusedItem(itemId: string | null): void

focusNext

method

Focus next item

focusNext(): boolean

focusPrevious

method

Focus previous item

focusPrevious(): boolean

canDragItem

method

Check if an item can be dragged

canDragItem(item: ListItemData): boolean

canDropItems

method

Check if items can be dropped on a target

canDropItems(draggedItems: ListItemData[], targetItem: ListItemData | null, position: "before" | "after" | "inside"): boolean

startDrag

method

Start drag operation

startDrag(items: ListItemData[], event: DragEvent): void

setDragOver

method

Handle drag over item

setDragOver(itemId: string | null, position: "before" | "after" | "inside" | null): void

handleDrop

method

Handle drop operation

handleDrop(targetItem: ListItemData | null, position: "before" | "after" | "inside", event: DragEvent): boolean

endDrag

method

End drag operation

endDrag(success: boolean): void

updateViewportRange

method

Update viewport range for virtualization and trigger dynamic loading

updateViewportRange(start: number, end: number): void

updateScrollPosition

method

Update scroll position

updateScrollPosition(position: number): void

updateContainerSize

method

Update container size

updateContainerSize(width: number, height: number): void

getGridLayout

method

Get grid layout for current items

getGridLayout(): { layout: GridItemLayout[]; totalHeight: number; } | null

getVerticalMasonryLayout

method

Get vertical masonry layout for current items

getVerticalMasonryLayout(): { layout: MasonryItemPosition[]; totalHeight: number; } | null

getHorizontalMasonryLayout

method

Get horizontal masonry layout for current items

getHorizontalMasonryLayout(): { layout: MasonryItemPosition[]; totalHeight: number; } | null

getVisibleGridItems

method

Get visible items for virtualization

getVisibleGridItems(scrollTop: number, viewportHeight: number): GridItemLayout[]

getVisibleVerticalMasonryItems

method

Get visible vertical masonry items for virtualization

getVisibleVerticalMasonryItems(scrollTop: number, viewportHeight: number): MasonryItemPosition[]

getVisibleHorizontalMasonryItems

method

Get visible horizontal masonry items for virtualization

getVisibleHorizontalMasonryItems(scrollTop: number, viewportHeight: number): MasonryItemPosition[]

getVisibleMasonryItems

method

Get visible masonry items for virtualization (unified method)

getVisibleMasonryItems(scrollTop: number, viewportHeight: number, isHorizontal?: boolean, overscan?: number): MasonryItemPosition[]

ensureItemVisible

method

Ensure item is visible (scroll to item)

ensureItemVisible(itemId: string): boolean

getItem

method

Get item by ID

getItem(itemId: string): ListItemData | undefined

getItemIndex

method

Get item index

getItemIndex(itemId: string): number

TestListProvider

class
class TestListProvider

id

property
id: "test-list-provider"

name

property
name: "Test List Provider"

isMultiSelectEnabled

property
isMultiSelectEnabled: true

isVirtualizationEnabled

property
isVirtualizationEnabled: true

isDragDropEnabled

property
isDragDropEnabled: true

supportedViewTypes

property
supportedViewTypes: ListViewType[]

constructor

constructor
constructor(): TestListProvider

getItemIcon

method

Get custom icon for an item based on file type and extension

getItemIcon(item: ListItemData): string | React.ComponentType<any>

loadItems

method
loadItems(options?: ListLoadOptions): Promise<ListLoadResult>

getItemCount

method
getItemCount(): Promise<number>

loadItemRange

method
loadItemRange(start: number, end: number): Promise<ListLoadResult>

refresh

method
refresh(): Promise<ListLoadResult>

getItemHeight

method
getItemHeight(viewType: ListViewType): number

getItemWidth

method
getItemWidth(viewType: ListViewType): number

getVirtualizationConfig

method
getVirtualizationConfig(): VirtualizationConfig

onSelectionChange

method
onSelectionChange(selectionInfo: ListSelectionInfo): void

onViewTypeChange

method
onViewTypeChange(viewType: ListViewType): void

onItemDoubleClick

method
onItemDoubleClick(item: ListItemData): void

getItemContextMenu

method
getItemContextMenu(item: ListItemData): ListContextMenuItem[]

getMultiItemContextMenu

method
getMultiItemContextMenu(items: ListItemData[]): ListContextMenuItem[]

onContextMenuAction

method
onContextMenuAction(menuItemId: string, items: ListItemData[]): void

canDragItem

method
canDragItem(item: ListItemData): boolean

canDropItems

method
canDropItems(draggedItems: ListItemData[], targetItem: ListItemData | null, position: "before" | "after" | "inside"): boolean

onDragStart

method
onDragStart(draggedItems: ListItemData[], event: DragEvent): void

onDrop

method
onDrop(dragDropInfo: ListDragDropInfo): void

onDragEnd

method
onDragEnd(draggedItems: ListItemData[], success: boolean): void

addListener

method
addListener(listener: ListItemsProviderListener): void

removeListener

method
removeListener(listener: ListItemsProviderListener): void

addMockItem

method

Add a new mock item (useful for testing dynamic updates)

addMockItem(item: Partial<ListItemData>): void

removeMockItem

method

Remove an item by ID (useful for testing dynamic updates)

removeMockItem(itemId: string): void

updateMockItem

method

Update an existing item (useful for testing dynamic updates)

updateMockItem(itemId: string, updates: Partial<ListItemData>): void

GridLayoutCalculator

class
class GridLayoutCalculator

constructor

constructor
constructor(config: GridLayoutConfig): GridLayoutCalculator

updateConfig

method
updateConfig(updates: Partial<GridLayoutConfig>): void

calculateItemsPerRow

method
calculateItemsPerRow(): number

calculateItemDimensions

method
calculateItemDimensions(itemsPerRow: number): { width: number; height: number; }

calculateThumbnailSize

method
calculateThumbnailSize(itemWidth: number, itemHeight: number): number

calculateLayout

method
calculateLayout(totalItems: number): GridLayoutResult

calculateVisibleItems

method
calculateVisibleItems(totalItems: number, scrollTop: number, viewportHeight: number, overscan?: number): { startIndex: number; endIndex: number; visibleItems: GridItemLayout[]; }

getItemPosition

method
getItemPosition(itemIndex: number, totalItems: number): GridItemLayout | null

getItemAtPosition

method
getItemAtPosition(x: number, y: number, totalItems: number): number | null

MasonryLayoutCalculator

class
class MasonryLayoutCalculator

constructor

constructor
constructor(config: MasonryLayoutConfig): MasonryLayoutCalculator

updateConfig

method
updateConfig(updates: Partial<MasonryLayoutConfig>): void

calculateColumnCount

method
calculateColumnCount(): number

calculateColumnWidth

method
calculateColumnWidth(columnCount: number): number

calculateItemHeight

method
calculateItemHeight(item: MasonryItemData, columnWidth: number, baseHeight?: number): number

calculateThumbnailDimensions

method
calculateThumbnailDimensions(item: MasonryItemData, columnWidth: number, itemHeight: number): { width: number; height: number; }

calculateLayout

method
calculateLayout(items: MasonryItemData[]): MasonryLayoutResult

calculateVisibleItems

method
calculateVisibleItems(items: MasonryItemData[], scrollTop: number, viewportHeight: number, overscan?: number): { startIndex: number; endIndex: number; visibleItems: MasonryItemLayout[]; }

getItemPosition

method
getItemPosition(itemIndex: number, items: MasonryItemData[]): MasonryItemLayout | null

getItemAtPosition

method
getItemAtPosition(x: number, y: number, items: MasonryItemData[]): number | null

Functions

resolveIcon

function
resolveIcon(name: string, className?: string): React.ReactElement

getIconForExtension

function
getIconForExtension(filename: string): string

getIconForFile

function
getIconForFile(filename: string, isDirectory: boolean): string

cn

function
cn(...inputs: ClassValue[]): string

getCustomColorVariables

function

Generate 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

function

Generate complete selection classes for a tree node

getSelectionClasses(theme: TreeSelectionTheme, isSelected: boolean, isFocused: boolean, useCheckboxes?: boolean): string

getListAccessibilityProps

function
getListAccessibilityProps(config: { viewType: string; isMultiSelect: boolean; totalItems: number; selectedCount: number; label?: string; labelledBy?: string; describedBy?: string; }): AccessibilityConfig

getItemAccessibilityProps

function
getItemAccessibilityProps(config: { item: any; index: number; totalItems: number; isSelected: boolean; isFocused: boolean; viewType: string; isExpandable?: boolean; isExpanded?: boolean; level?: number; }): ItemAccessibilityConfig

createLiveRegionAnnouncement

function
createLiveRegionAnnouncement(config: { action: "select" | "deselect" | "focus" | "activate" | "load" | "error"; itemName?: string; itemCount?: number; selectedCount?: number; totalCount?: number; errorMessage?: string; }): string

getNextFocusIndex

function
getNextFocusIndex(key: string, config: KeyboardNavigationConfig): number | null

announceToScreenReader

function
announceToScreenReader(message: string, priority?: "polite" | "assertive"): void

createGridCalculator

function
createGridCalculator(containerWidth: number, containerHeight: number, options?: Partial<GridLayoutConfig>): GridLayoutCalculator

createMasonryCalculator

function
createMasonryCalculator(containerWidth: number, containerHeight: number, options?: Partial<MasonryLayoutConfig>): MasonryLayoutCalculator

Types

LoadingState

type
type LoadingState = 'idle' | 'loading' | 'success' | 'error'

CheckboxState

type
type CheckboxState = 'unchecked' | 'checked' | 'indeterminate'

SelectionColorScheme

type

Selection theme color scheme

type SelectionColorScheme = 'primary' | 'secondary' | 'accent' | 'custom'

SelectionIntensity

type

Selection intensity levels

type SelectionIntensity = 'subtle' | 'prominent' | 'high-contrast'

FocusIndicatorStyle

type

Focus indicator style

type FocusIndicatorStyle = 'ring' | 'outline' | 'border' | 'underline'

ViewModeType

type
type ViewModeType = 'tree' | 'list' | 'thumbnail' | 'treemap' | 'custom'

Interfaces

FileBrowserProps

interface
interface FileBrowserProps

provider

property
provider: any

initialPath

property
initialPath: string

initialViewMode

property
initialViewMode: string

eventHandlers

property
eventHandlers: FileBrowserEventHandlers

className

property
className: string

style

property
style: React.CSSProperties

showToolbar

property
showToolbar: boolean

showBreadcrumb

property
showBreadcrumb: boolean

showStatusBar

property
showStatusBar: boolean

allowMultiSelect

property
allowMultiSelect: boolean

availableViewModes

property
availableViewModes: string[]

defaultViewMode

property
defaultViewMode: string

theme

property
theme: "light" | "dark" | "auto"

density

property
density: "compact" | "normal" | "comfortable"

FileBrowserItem

interface
interface FileBrowserItem

id

property
id: string

name

property
name: string

path

property
path: string

type

property
type: "file" | "directory"

size

property
size: number

lastModified

property
lastModified: Date

permissions

property
permissions: string

metadata

property
metadata: Record<string, any>

children

property
children: FileBrowserItem[]

isLoading

property
isLoading: boolean

hasChildren

property
hasChildren: boolean

FileBrowserItemDetails

interface
interface FileBrowserItemDetails

content

property
content: string | Uint8Array<ArrayBufferLike>

preview

property
preview: PreviewData

properties

property
properties: Record<string, any>

FileBrowserEventHandlers

interface
interface FileBrowserEventHandlers

onPathChange

property
onPathChange: (path: string) => void

onItemSelect

property
onItemSelect: (item: FileBrowserItem) => void

onItemActivate

property
onItemActivate: (item: FileBrowserItem) => void

onSelectionChange

property
onSelectionChange: (selectedItems: FileBrowserItem[]) => void

onError

property
onError: (error: ErrorState) => void

onLoadingChange

property
onLoadingChange: (isLoading: boolean) => void

ErrorState

interface
interface ErrorState

message

property
message: string

code

property
code: string

details

property
details: any

timestamp

property
timestamp: Date

FilterCriteria

interface
interface FilterCriteria

searchText

property
searchText: string

fileTypes

property
fileTypes: string[]

dateRange

property
dateRange: { start: Date; end: Date; }

sizeRange

property
sizeRange: { min: number; max: number; }

customFilters

property
customFilters: Record<string, any>

SortCriteria

interface
interface SortCriteria

field

property
field: string

direction

property
direction: "asc" | "desc"

SelectionState

interface
interface SelectionState

selectedItems

property
selectedItems: Set<string>

lastSelectedIndex

property
lastSelectedIndex: number

focusedItemId

property
focusedItemId: string

selectionMode

property
selectionMode: "single" | "multiple"

IconDefinition

interface
interface IconDefinition

type

property
type: "lucide" | "custom"

name

property
name: string

component

property
component: React.ComponentType<any>

color

property
color: string

size

property
size: number

PreviewData

interface
interface PreviewData

type

property
type: "image" | "text" | "video" | "audio" | "document"

url

property
url: string

content

property
content: string

thumbnail

property
thumbnail: string

metadata

property
metadata: Record<string, any>

ItemChange

interface
interface ItemChange

type

property
type: "added" | "removed" | "modified" | "moved"

item

property
item: FileBrowserItem

oldPath

property
oldPath: string

newPath

property
newPath: string

ColumnDefinition

interface
interface ColumnDefinition

id

property
id: string

label

property
label: string

field

property
field: string

width

property
width: number

minWidth

property
minWidth: number

maxWidth

property
maxWidth: number

resizable

property
resizable: boolean

sortable

property
sortable: boolean

visible

property
visible: boolean

align

property
align: "right" | "left" | "center"

format

property
format: (value: any) => string

LoadingSpinnerProps

interface
interface LoadingSpinnerProps

size

property
size: "sm" | "md" | "lg"

overlay

property
overlay: boolean

className

property
className: string

'aria-label'

property
'aria-label': string

ErrorBoundaryProps

interface
interface ErrorBoundaryProps

children

property
children: React.ReactNode

fallback

property
fallback: (error: Error, errorInfo: string, onReset: () => void) => ReactNode

onError

property
onError: (error: Error, errorInfo: string) => void

className

property
className: string

FileIconProps

interface
interface FileIconProps

item

property
item: FileBrowserItem

getItemIcon

property
getItemIcon: (item: FileBrowserItem) => IconDefinition

size

property
size: "sm" | "md" | "lg" | "xl"

className

property
className: string

isExpanded

property
isExpanded: boolean

FileBrowserHeaderProps

interface
interface FileBrowserHeaderProps

model

property
model: FileBrowserModel

toolbarManager

property
toolbarManager: ToolbarManagerModel

className

property
className: string

showBreadcrumb

property
showBreadcrumb: boolean

showToolbar

property
showToolbar: boolean

FileBrowserContentProps

interface
interface FileBrowserContentProps

model

property
model: FileBrowserModel

className

property
className: string

currentViewMode

property
currentViewMode: string

TreeViewProps

interface
interface TreeViewProps

items

property
items: FileBrowserItem[]

treeModel

property
treeModel: TreeViewUIModel

onItemClick

property
onItemClick: (item: FileBrowserItem) => void

onItemDoubleClick

property
onItemDoubleClick: (item: FileBrowserItem) => void

onItemActivate

property
onItemActivate: (item: FileBrowserItem) => void

onSelectionChange

property
onSelectionChange: (selectedItems: FileBrowserItem[]) => void

onPathChange

property
onPathChange: (path: string) => void

selectedItemIds

property
selectedItemIds: Set<string>

focusedItemId

property
focusedItemId: string

className

property
className: string

getItemIcon

property
getItemIcon: (item: FileBrowserItem) => any

loadFolder

property
loadFolder: (path: string) => Promise<FileBrowserItem[]>

virtualization

property
virtualization: boolean

maxHeight

property
maxHeight: number

TreeNodeProps

interface
interface TreeNodeProps

item

property
item: FileBrowserItem

treeModel

property
treeModel: TreeViewUIModel

level

property
level: number

onItemClick

property
onItemClick: (item: FileBrowserItem) => void

onItemDoubleClick

property
onItemDoubleClick: (item: FileBrowserItem) => void

isSelected

property
isSelected: boolean

isFocused

property
isFocused: boolean

getItemIcon

property
getItemIcon: (item: FileBrowserItem) => any

TreeNodeListProps

interface
interface TreeNodeListProps

items

property
items: FileBrowserItem[]

treeModel

property
treeModel: TreeViewUIModel

onItemClick

property
onItemClick: (item: FileBrowserItem) => void

onItemDoubleClick

property
onItemDoubleClick: (item: FileBrowserItem) => void

onSelectionChange

property
onSelectionChange: (selectedItems: FileBrowserItem[]) => void

selectedItemIds

property
selectedItemIds: Set<string>

focusedItemId

property
focusedItemId: string

className

property
className: string

getItemIcon

property
getItemIcon: (item: FileBrowserItem) => any

virtualization

property
virtualization: boolean

maxHeight

property
maxHeight: number

ListViewProps

interface
interface ListViewProps

items

property
items: FileBrowserItem[]

listModel

property
listModel: ListViewUIModel

responsiveManager

property
responsiveManager: ResponsiveLayoutManagerModel

onItemClick

property
onItemClick: (item: FileBrowserItem) => void

onItemDoubleClick

property
onItemDoubleClick: (item: FileBrowserItem) => void

onItemActivate

property
onItemActivate: (item: FileBrowserItem) => void

onSelectionChange

property
onSelectionChange: (selectedItems: FileBrowserItem[]) => void

selectedItemIds

property
selectedItemIds: Set<string>

focusedItemId

property
focusedItemId: string

className

property
className: string

getItemIcon

property
getItemIcon: (item: FileBrowserItem) => any

ViewModeToggleProps

interface
interface ViewModeToggleProps

currentMode

property
currentMode: ViewModeType

availableModes

property
availableModes: ViewModeType[]

onModeChange

property
onModeChange: (mode: ViewModeType) => void

className

property
className: string

variant

property
variant: "tabs" | "buttons"

showLabels

property
showLabels: boolean

disabled

property
disabled: boolean

TreeProvider

interface
interface TreeProvider

id

property

Provider identifier

id: string

name

property

Human-readable name

name: string

version

property

Provider version

version: string

isMultiSelectEnabled

property

Whether multi-selection is enabled

isMultiSelectEnabled: boolean

isDragDropEnabled

property

Whether drag and drop is enabled

isDragDropEnabled: boolean

isVirtualizationEnabled

property

Whether virtualization is enabled for large trees

isVirtualizationEnabled: boolean

useCheckboxSelection

property

Whether to use checkbox-based selection instead of highlight selection

useCheckboxSelection: boolean

allowPartialSelection

property

Whether to allow partial (indeterminate) checkbox selection for parent nodes

allowPartialSelection: boolean

isTableViewEnabled

property

Whether table view is enabled for this provider

isTableViewEnabled: boolean

getVirtualizationConfig

method

Get virtualization configuration

getVirtualizationConfig(): { itemHeight: number; overscan: number; threshold: number; }

getTableColumns

method

Get table column configuration for table view

getTableColumns(): TreeTableColumn[]

getDefaultTableSort

method

Get default sort configuration for table view

getDefaultTableSort(): TreeTableSort | null

getSelectionTheme

method

Get selection theme configuration

getSelectionTheme(): TreeSelectionTheme

loadNodes

method

Load tree nodes

loadNodes(options?: TreeLoadOptions): Promise<TreeLoadResult>

loadChildren

method

Load children for a specific node

loadChildren(node: TreeNodeData, options?: TreeLoadOptions): Promise<TreeLoadResult>

refresh

method

Refresh/reload nodes

refresh(path?: string): Promise<TreeLoadResult>

search

method

Search nodes

search(query: string, options?: TreeLoadOptions): Promise<TreeLoadResult>

getNodeContextMenu

method

Get context menu items for a specific node

getNodeContextMenu(node: TreeNodeData): TreeContextMenuItem[]

getMultiNodeContextMenu

method

Get context menu items for multiple selected nodes

getMultiNodeContextMenu(nodes: TreeNodeData[]): TreeContextMenuItem[]

getEmptySpaceContextMenu

method

Get context menu items for empty space (no node)

getEmptySpaceContextMenu(parentNode?: TreeNodeData): TreeContextMenuItem[]

getNodeRenderer

method

Get custom renderer for a specific node

getNodeRenderer(node: TreeNodeData): TreeNodeRenderer | null

getDefaultRenderer

method

Get default renderer for all nodes of this provider

getDefaultRenderer(): TreeNodeRenderer

getNodeIcon

method

Get custom icon for a node

getNodeIcon(node: TreeNodeData): string | React.ComponentType<any>

canExpand

method

Check if a node can be expanded

canExpand(node: TreeNodeData): boolean

canSelect

method

Check if a node can be selected

canSelect(node: TreeNodeData): boolean

canDrag

method

Check if nodes can be dragged

canDrag(nodes: TreeNodeData[]): boolean

canDrop

method

Check if a drop operation is allowed

canDrop(dragInfo: TreeDragDropInfo): boolean

onSelectionChange

method

Called when node selection changes

onSelectionChange(selectionInfo: TreeSelectionInfo): void

onNodeExpansion

method

Called when a node is expanded or collapsed

onNodeExpansion(node: TreeNodeData, expanded: boolean): void

onNodeDoubleClick

method

Called when a node is double-clicked

onNodeDoubleClick(node: TreeNodeData): void

onDragDrop

method

Called when a drag and drop operation completes

onDragDrop(dragInfo: TreeDragDropInfo): Promise<void>

onContextMenuAction

method

Called when a context menu item is selected

onContextMenuAction(menuItemId: string, nodes: TreeNodeData[]): void

onNodeFocus

method

Called when a node is focused

onNodeFocus(node: TreeNodeData | null): void

onTableSort

method

Called when table sort changes

onTableSort(sort: TreeTableSort | null): void

onTableExport

method

Called when table data export is requested

onTableExport(options: TreeTableExportOptions): Promise<string | void>

initialize

method

Initialize the provider

initialize(): Promise<void>

dispose

method

Cleanup provider resources

dispose(): void

config

property

Provider-specific configuration

config: Record<string, any>

TreeNodeData

interface

Represents 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

property

Unique identifier for the node

id: string

name

property

Display name of the node

name: string

path

property

Full path or identifier for the node

path: string

type

property

Type of node (file, directory, custom types)

type: string

hasChildren

property

Whether this node has children (for lazy loading)

hasChildren: boolean

children

property

Child nodes (if loaded)

children: TreeNodeData[]

metadata

property

Custom metadata for the node

metadata: Record<string, any>

size

property

Size in bytes (for files)

size: number

lastModified

property

Last modified date

lastModified: Date

icon

property

Custom icon identifier

icon: string

className

property

Custom CSS class

className: string

disabled

property

Whether the node is disabled

disabled: boolean

renderData

property

Custom render data for this specific node

renderData: Record<string, any>

TreeLoadResult

interface

Result 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

property

The loaded nodes

nodes: TreeNodeData[]

hasMore

property

Whether there are more nodes to load

hasMore: boolean

totalCount

property

Total count of nodes (for virtual scrolling)

totalCount: number

error

property

Any loading errors

error: Error

TreeLoadOptions

interface

Configuration options for loading tree data

interface TreeLoadOptions

filter

property

Filter to apply when loading nodes

filter: string

forceReload

property

Whether to force reload even if data is cached

forceReload: boolean

maxDepth

property

Maximum depth to load initially

maxDepth: number

TreeTableColumn

interface

Column configuration for table view display

interface TreeTableColumn

id

property

Unique identifier for the column

id: string

label

property

Display label for the column header

label: string

dataKey

property

Property path in TreeNodeData to display (supports dot notation)

dataKey: string

width

property

Column width (CSS value)

width: string

minWidth

property

Minimum width (CSS value)

minWidth: string

align

property

Column alignment

align: "right" | "left" | "center"

sortable

property

Whether column is sortable

sortable: boolean

filterable

property

Whether column is filterable

filterable: boolean

isTreeColumn

property

Whether this column displays the tree hierarchy

isTreeColumn: boolean

className

property

Custom CSS classes for the column

className: string

renderCell

property

Custom cell renderer function

renderCell: (value: any, node: TreeNodeData) => React.ReactNode

formatValue

property

Custom value formatter

formatValue: (value: any, node: TreeNodeData) => string

TreeTableSort

interface

Sort configuration for table view

interface TreeTableSort

columnId

property

Column ID to sort by

columnId: string

direction

property

Sort direction

direction: "asc" | "desc"

TreeTableExportOptions

interface

Export configuration for table view

interface TreeTableExportOptions

format

property

Export format

format: "csv" | "json" | "tsv"

columns

property

Column IDs to include (empty = all columns)

columns: string[]

includeHierarchy

property

Whether to include hierarchy structure

includeHierarchy: boolean

flatten

property

Whether to flatten nested data

flatten: boolean

filename

property

Custom filename for download

filename: string

TreeSelectionTheme

interface

Enhanced selection theme configuration

interface TreeSelectionTheme

colorScheme

property

Color scheme for selection highlighting

colorScheme: SelectionColorScheme

intensity

property

Selection intensity level

intensity: SelectionIntensity

focusStyle

property

Focus indicator style

focusStyle: FocusIndicatorStyle

customColors

property

Custom colors when using 'custom' color scheme

customColors: { background: string; foreground: string; accent: string; }

animated

property

Whether to animate selection changes

animated: boolean

persistSelection

property

Whether to show selection even when component loses focus

persistSelection: boolean

TreeComponentProps

interface
interface TreeComponentProps

provider

property

Provider that supplies tree data and operations

provider: TreeProvider

model

property

Optional pre-created TreeModel (if provided, component won't create its own)

model: TreeModel

loadOptions

property

Optional loading options to pass to the provider

loadOptions: TreeLoadOptions

className

property

Additional CSS classes to apply to the tree container

className: string

TreeTableProps

interface
interface TreeTableProps

treeModel

property

The tree model managing state

treeModel: TreeModel

columns

property

Table columns configuration

columns: TreeTableColumn[]

enableAnimations

property

Enable animations for expand/collapse transitions

enableAnimations: boolean

className

property

Additional CSS classes

className: string

enableExport

property

Whether to show export functionality

enableExport: boolean

enableFiltering

property

Whether to enable filtering

enableFiltering: boolean

enableSorting

property

Whether to enable sorting

enableSorting: boolean

AccessibilityConfig

interface
interface AccessibilityConfig

role

property
role: string

ariaLabel

property
ariaLabel: string

ariaLabelledBy

property
ariaLabelledBy: string

ariaDescribedBy

property
ariaDescribedBy: string

ariaMultiSelectable

property
ariaMultiSelectable: boolean

ariaOrientation

property
ariaOrientation: "horizontal" | "vertical"

tabIndex

property
tabIndex: number

ItemAccessibilityConfig

interface
interface ItemAccessibilityConfig

role

property
role: string

ariaLabel

property
ariaLabel: string

ariaSelected

property
ariaSelected: boolean

ariaExpanded

property
ariaExpanded: boolean

ariaLevel

property
ariaLevel: number

ariaSetSize

property
ariaSetSize: number

ariaPosInSet

property
ariaPosInSet: number

tabIndex

property
tabIndex: number

KeyboardNavigationConfig

interface
interface KeyboardNavigationConfig

currentIndex

property
currentIndex: number

totalItems

property
totalItems: number

itemsPerRow

property
itemsPerRow: number

viewType

property
viewType: string

ListItemsProvider

interface
interface ListItemsProvider

id

property

Provider identifier

id: string

name

property

Human-readable name

name: string

supportedViewTypes

property

Supported view types for this provider

supportedViewTypes: ListViewType[]

isMultiSelectEnabled

property

Whether multi-selection is enabled

isMultiSelectEnabled: boolean

isVirtualizationEnabled

property

Whether virtualization is enabled

isVirtualizationEnabled: boolean

loadItems

method

Load items from the data source

loadItems(options?: ListLoadOptions): Promise<ListLoadResult>

getItemCount

method

Get total count of items (for virtualization)

getItemCount(): Promise<number>

loadItemRange

method

Load a specific range of items (for virtualization)

loadItemRange(start: number, end: number): Promise<ListLoadResult>

refresh

method

Refresh/reload items

refresh(): Promise<ListLoadResult>

getItemHeight

method

Get item height for a specific view type (for virtualization)

getItemHeight(viewType: ListViewType): number

getItemWidth

method

Get item width for grid-based view types

getItemWidth(viewType: ListViewType): number

getVirtualizationConfig

method

Get virtualization configuration

getVirtualizationConfig(): VirtualizationConfig

onSelectionChange

method

Called when selection changes

onSelectionChange(selectionInfo: ListSelectionInfo): void

onViewTypeChange

method

Called when view type changes

onViewTypeChange(viewType: ListViewType): void

onItemDoubleClick

method

Called when an item is double-clicked

onItemDoubleClick(item: ListItemData): void

addListener

method
addListener(listener: ListItemsProviderListener): void

removeListener

method
removeListener(listener: ListItemsProviderListener): void

getItemIcon

method

Get custom icon for an item

getItemIcon(item: ListItemData): string | React.ComponentType<any>

getItemContextMenu

method

Get context menu items for a specific item

getItemContextMenu(item: ListItemData): ListContextMenuItem[]

getMultiItemContextMenu

method

Get context menu items for multiple selected items

getMultiItemContextMenu(items: ListItemData[]): ListContextMenuItem[]

onContextMenuAction

method

Called when a context menu action is selected

onContextMenuAction(menuItemId: string, items: ListItemData[]): void

isDragDropEnabled

property

Whether drag and drop is enabled

isDragDropEnabled: boolean

canDragItem

method

Check if an item can be dragged

canDragItem(item: ListItemData): boolean

canDropItems

method

Check if items can be dropped on a target

canDropItems(draggedItems: ListItemData[], targetItem: ListItemData | null, position: "before" | "after" | "inside"): boolean

onDragStart

method

Called when drag operation starts

onDragStart(draggedItems: ListItemData[], event: DragEvent): void

onDrop

method

Called when items are dropped

onDrop(dragDropInfo: ListDragDropInfo): void

onDragEnd

method

Called when drag operation ends (whether successful or not)

onDragEnd(draggedItems: ListItemData[], success: boolean): void

ListViewType

interface
interface ListViewType

BenchmarkResult

interface
interface BenchmarkResult

operation

property
operation: string

duration

property
duration: number

timestamp

property
timestamp: number

metadata

property
metadata: Record<string, any>

BenchmarkReport

interface
interface BenchmarkReport

totalOperations

property
totalOperations: number

totalDuration

property
totalDuration: number

averageDuration

property
averageDuration: number

slowestOperation

property
slowestOperation: BenchmarkResult

fastestOperation

property
fastestOperation: BenchmarkResult

operations

property
operations: BenchmarkResult[]

GridLayoutConfig

interface
interface GridLayoutConfig

containerWidth

property
containerWidth: number

containerHeight

property
containerHeight: number

itemsPerRow

property
itemsPerRow: number | "auto"

gap

property
gap: number

padding

property
padding: number

minItemWidth

property
minItemWidth: number

maxItemWidth

property
maxItemWidth: number

aspectRatio

property
aspectRatio: number

GridItemLayout

interface
interface GridItemLayout

x

property
x: number

y

property
y: number

width

property
width: number

height

property
height: number

thumbnailSize

property
thumbnailSize: number

textHeight

property
textHeight: number

GridLayoutResult

interface
interface GridLayoutResult

itemsPerRow

property
itemsPerRow: number

itemWidth

property
itemWidth: number

itemHeight

property
itemHeight: number

totalRows

property
totalRows: number

totalHeight

property
totalHeight: number

items

property
items: GridItemLayout[]

MasonryLayoutConfig

interface
interface MasonryLayoutConfig

containerWidth

property
containerWidth: number

containerHeight

property
containerHeight: number

columnCount

property
columnCount: number | "auto"

gap

property
gap: number

padding

property
padding: number

minColumnWidth

property
minColumnWidth: number

maxColumnWidth

property
maxColumnWidth: number

MasonryItemLayout

interface
interface MasonryItemLayout

x

property
x: number

y

property
y: number

width

property
width: number

height

property
height: number

column

property
column: number

thumbnailWidth

property
thumbnailWidth: number

thumbnailHeight

property
thumbnailHeight: number

textHeight

property
textHeight: number

MasonryLayoutResult

interface
interface MasonryLayoutResult

columnCount

property
columnCount: number

columnWidth

property
columnWidth: number

totalHeight

property
totalHeight: number

items

property
items: MasonryItemLayout[]

columnHeights

property
columnHeights: number[]

MasonryItemData

interface
interface MasonryItemData

id

property
id: string

aspectRatio

property
aspectRatio: number

customHeight

property
customHeight: number

textLength

property
textLength: number

ExplorerLayoutProps

interface
interface ExplorerLayoutProps

sections

property
sections: ExplorerSections

className

property
className: string

isSidebarCollapsed

property
isSidebarCollapsed: boolean

setSidebarCollapsed

property
setSidebarCollapsed: (collapsed: boolean) => void

ExplorerSections

interface
interface ExplorerSections

header

property
header: React.ReactNode

footer

property
footer: React.ReactNode

sidebar

property
sidebar: { content: ReactNode; toolbar?: ReactNode; width?: number; }

main

property
main: { content: ReactNode; toolbar?: ReactNode; }

ViewModeDefinition

interface
interface ViewModeDefinition

id

property
id: string

name

property
name: string

description

property
description: string

icon

property
icon: IconDefinition

component

property
component: React.ComponentType<ViewModeComponentProps>

capabilities

property
capabilities: ViewModeCapabilities

settings

property
settings: ViewModeSettings

isDefault

property
isDefault: boolean

priority

property
priority: number

ViewModeComponentProps

interface
interface ViewModeComponentProps

model

property
model: any

className

property
className: string

style

property
style: React.CSSProperties

ViewModeCapabilities

interface
interface ViewModeCapabilities

supportsSelection

property
supportsSelection: boolean

supportsMultiSelection

property
supportsMultiSelection: boolean

supportsNavigation

property
supportsNavigation: boolean

supportsSorting

property
supportsSorting: boolean

supportsFiltering

property
supportsFiltering: boolean

supportsDragDrop

property
supportsDragDrop: boolean

supportsKeyboardNavigation

property
supportsKeyboardNavigation: boolean

supportsVirtualization

property
supportsVirtualization: boolean

supportsGrouping

property
supportsGrouping: boolean

supportsInlinePreview

property
supportsInlinePreview: boolean

supportsCustomColumns

property
supportsCustomColumns: boolean

supportsZoom

property
supportsZoom: boolean

ViewModeSettings

interface
interface ViewModeSettings

defaultSortField

property
defaultSortField: string

defaultSortDirection

property
defaultSortDirection: "asc" | "desc"

itemSize

property
itemSize: { width?: number; height?: number; minWidth?: number; maxWidth?: number; minHeight?: number; maxHeight?: number; }

layout

property
layout: { padding?: number; gap?: number; columns?: number | "auto"; rows?: number | "auto"; }

display

property
display: { showIcons?: boolean; showLabels?: boolean; showDetails?: boolean; showPreview?: boolean; iconSize?: "small" | "medium" | "large"; labelPosition?: "bottom" | "right" | "overlay"; }

interaction

property
interaction: { singleClickOpen?: boolean; doubleClickOpen?: boolean; hoverPreview?: boolean; contextMenu?: boolean; }

performance

property
performance: { virtualization?: boolean; bufferSize?: number; preloadCount?: number; debounceMs?: number; }

customSettings

property
customSettings: Record<string, any>

ViewModeState

interface
interface ViewModeState

isActive

property
isActive: boolean

isInitialized

property
isInitialized: boolean

settings

property
settings: ViewModeSettings

lastUsed

property
lastUsed: Date

userPreferences

property
userPreferences: Record<string, any>

TreeViewSettings

interface
interface TreeViewSettings

indentSize

property
indentSize: number

showConnectors

property
showConnectors: boolean

expandOnSingleClick

property
expandOnSingleClick: boolean

collapseOnSecondClick

property
collapseOnSecondClick: boolean

rememberExpansion

property
rememberExpansion: boolean

autoExpand

property
autoExpand: boolean

maxDepth

property
maxDepth: number

ListViewSettings

interface
interface ListViewSettings

columns

property
columns: ColumnDefinition[]

headerHeight

property
headerHeight: number

rowHeight

property
rowHeight: number

alternatingRows

property
alternatingRows: boolean

gridLines

property
gridLines: boolean

resizableColumns

property
resizableColumns: boolean

sortableColumns

property
sortableColumns: boolean

ThumbnailViewSettings

interface
interface ThumbnailViewSettings

thumbnailSize

property
thumbnailSize: number

aspectRatio

property
aspectRatio: number

showFilenames

property
showFilenames: boolean

showFileSize

property
showFileSize: boolean

showDate

property
showDate: boolean

gridSpacing

property
gridSpacing: number

loadThumbnails

property
loadThumbnails: boolean

thumbnailQuality

property
thumbnailQuality: "low" | "medium" | "high"

TreemapViewSettings

interface
interface TreemapViewSettings

algorithm

property
algorithm: "squarified" | "slice-dice" | "strip"

colorScheme

property
colorScheme: "custom" | "size" | "type" | "date"

paddingInner

property
paddingInner: number

paddingOuter

property
paddingOuter: number

showLabels

property
showLabels: boolean

labelThreshold

property
labelThreshold: number

animation

property
animation: boolean

zoomable

property
zoomable: boolean

ViewModeRegistry

interface
interface ViewModeRegistry

registerViewMode

method
registerViewMode(definition: ViewModeDefinition): void

unregisterViewMode

method
unregisterViewMode(id: string): void

getViewMode

method
getViewMode(id: string): ViewModeDefinition | undefined

getAllViewModes

method
getAllViewModes(): ViewModeDefinition[]

getViewModesByCapability

method
getViewModesByCapability(capability: keyof ViewModeCapabilities): ViewModeDefinition[]

IFileBrowserProvider

interface
interface IFileBrowserProvider

id

property
id: string

name

property
name: string

version

property
version: string

loadItems

method
loadItems(path: string): Promise<FileBrowserItem[]>

loadItemDetails

method
loadItemDetails(item: FileBrowserItem): Promise<FileBrowserItemDetails>

refreshItems

method
refreshItems(path: string): Promise<FileBrowserItem[]>

normalizePath

method
normalizePath(path: string): string

getParentPath

method
getParentPath(path: string): string | null

resolvePath

method
resolvePath(basePath: string, relativePath: string): string

getSupportedViewModes

method
getSupportedViewModes(): ViewModeDefinition[]

getToolbarActions

method
getToolbarActions(): ToolbarAction[]

getContextMenuActions

method
getContextMenuActions(item: FileBrowserItem): ContextAction[]

getDefaultViewMode

method
getDefaultViewMode(): string

canPerformAction

method
canPerformAction(action: string, items: FileBrowserItem[]): boolean

performAction

method
performAction(action: string, items: FileBrowserItem[]): Promise<ActionResult>

getItemIcon

method
getItemIcon(item: FileBrowserItem): IconDefinition

getItemPreview

method
getItemPreview(item: FileBrowserItem): Promise<PreviewData | null>

getItemDisplayName

method
getItemDisplayName(item: FileBrowserItem): string

getItemTooltip

method
getItemTooltip(item: FileBrowserItem): string

getAvailableFilters

method
getAvailableFilters(): FilterDefinition[]

getAvailableSortFields

method
getAvailableSortFields(): SortFieldDefinition[]

applyFilter

method
applyFilter(items: FileBrowserItem[], criteria: any): FileBrowserItem[]

applySort

method
applySort(items: FileBrowserItem[], field: string, direction: "asc" | "desc"): FileBrowserItem[]

onItemsChanged

method
onItemsChanged(callback: (changes: ItemChange[]) => void): () => void

onError

method
onError(callback: (error: Error) => void): () => void

initialize

method
initialize(): Promise<void>

dispose

method
dispose(): void

ToolbarAction

interface
interface ToolbarAction

id

property
id: string

label

property
label: string

icon

property
icon: IconDefinition

tooltip

property
tooltip: string

category

property
category: string

priority

property
priority: number

shortcut

property
shortcut: string

isVisible

property
isVisible: (context: ActionContext) => boolean

isEnabled

property
isEnabled: (context: ActionContext) => boolean

isActive

property
isActive: (context: ActionContext) => boolean

action

property
action: (context: ActionContext) => Promise<void> | void

variant

property
variant: "default" | "primary" | "secondary" | "destructive"

size

property
size: "sm" | "md" | "lg"

showLabel

property
showLabel: boolean

ContextAction

interface
interface ContextAction

id

property
id: string

label

property
label: string

icon

property
icon: IconDefinition

shortcut

property
shortcut: string

group

property
group: string

separator

property
separator: boolean

isEnabled

property
isEnabled: (context: ActionContext) => boolean

isVisible

property
isVisible: (context: ActionContext) => boolean

action

property
action: (context: ActionContext) => Promise<void> | void

submenu

property
submenu: ContextAction[]

ActionContext

interface
interface ActionContext

selectedItems

property
selectedItems: FileBrowserItem[]

currentPath

property
currentPath: string

provider

property
provider: IFileBrowserProvider

viewMode

property
viewMode: string

allItems

property
allItems: FileBrowserItem[]

ActionResult

interface
interface ActionResult

success

property
success: boolean

message

property
message: string

data

property
data: any

error

property
error: Error

FilterDefinition

interface
interface FilterDefinition

id

property
id: string

label

property
label: string

type

property
type: "boolean" | "text" | "date" | "select" | "multiselect" | "range"

defaultValue

property
defaultValue: any

options

property
options: { value: any; label: string; }[]

placeholder

property
placeholder: string

SortFieldDefinition

interface
interface SortFieldDefinition

id

property
id: string

label

property
label: string

defaultDirection

property
defaultDirection: "asc" | "desc"

customSort

property
customSort: (a: FileBrowserItem, b: FileBrowserItem, direction: "asc" | "desc") => number

ProviderCapabilities

interface
interface ProviderCapabilities

canCreate

property
canCreate: boolean

canRead

property
canRead: boolean

canUpdate

property
canUpdate: boolean

canDelete

property
canDelete: boolean

canMove

property
canMove: boolean

canCopy

property
canCopy: boolean

canRename

property
canRename: boolean

canUpload

property
canUpload: boolean

canDownload

property
canDownload: boolean

canPreview

property
canPreview: boolean

canSearch

property
canSearch: boolean

canFilter

property
canFilter: boolean

canSort

property
canSort: boolean

supportsNavigation

property
supportsNavigation: boolean

supportsSelection

property
supportsSelection: boolean

supportsHierarchy

property
supportsHierarchy: boolean

maxFileSize

property
maxFileSize: number

supportedFileTypes

property
supportedFileTypes: string[]

ProviderConfiguration

interface
interface ProviderConfiguration

enableLogging

property
enableLogging: boolean

cacheSize

property
cacheSize: number

cacheTTL

property
cacheTTL: number

batchSize

property
batchSize: number

timeout

property
timeout: number

retryAttempts

property
retryAttempts: number

customOptions

property
customOptions: Record<string, any>

Constants

FileBrowser

const
const FileBrowser: React.FC<FileBrowserProps>

LoadingSpinner

const
const LoadingSpinner: React.FC<LoadingSpinnerProps>

FileIcon

const
const FileIcon: React.FC<FileIconProps>

FileBrowserHeader

const
const FileBrowserHeader: React.FC<FileBrowserHeaderProps>

FileBrowserContent

const
const FileBrowserContent: React.FC<FileBrowserContentProps>

TreeView

const
const TreeView: React.FC<TreeViewProps>

TreeNode

const
const TreeNode: React.FC<TreeNodeProps>

TreeNodeList

const
const TreeNodeList: React.FC<TreeNodeListProps>

ListView

const
const ListView: React.FC<ListViewProps>

FileBrowserBreadcrumb

const
const FileBrowserBreadcrumb: React.FC<BreadcrumbProps>

ViewModeToggle

const
const ViewModeToggle: React.FC<ViewModeToggleProps>

lucideIconMap

const
const lucideIconMap: Record<string, LucideIcon>

iconColorMap

const
const iconColorMap: Record<string, string>

contextMenuIconMap

const
const contextMenuIconMap: Record<string, LucideIcon>

fileExtensionIconMap

const
const fileExtensionIconMap: Record<string, string>

TreeComponent

const

Tree 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

const

TreeTable Component - Table view of tree data

const TreeTable: React.FunctionComponent<TreeTableProps>

TreeCheckbox

const

TreeCheckbox Component - 3-state checkbox for tree selection

const TreeCheckbox: React.FunctionComponent<TreeCheckboxProps>

DEFAULT_SELECTION_THEME

const

Default selection theme configuration

const DEFAULT_SELECTION_THEME: TreeSelectionTheme

ListItems

const
const ListItems: React.FunctionComponent<ListItemsProps>

ListItem

const
const ListItem: React.NamedExoticComponent<ListItemProps>

ListContextMenu

const
const ListContextMenu: React.FunctionComponent<ListContextMenuProps>

VirtualizedList

const
const VirtualizedList: React.FunctionComponent<VirtualizedListProps>

VirtualizedGrid

const
const VirtualizedGrid: React.FunctionComponent<VirtualizedGridProps>

MasonryView

const
const MasonryView: React.FC<MasonryViewProps>

ViewSizeControls

const
const ViewSizeControls: React.FunctionComponent<ViewSizeControlsProps>

ViewTypeSelector

const
const ViewTypeSelector: React.NamedExoticComponent<ViewTypeSelectorProps>

ListLoader

const
const ListLoader: React.FunctionComponent<ListLoaderProps>

LoadingIndicator

const
const LoadingIndicator: React.FunctionComponent<LoadingIndicatorProps>

InlineLoading

const
const InlineLoading: React.FunctionComponent<InlineLoadingProps>

LoadingProgress

const
const LoadingProgress: React.FunctionComponent<LoadingProgressProps>

ErrorDisplay

const
const ErrorDisplay: React.FunctionComponent<ErrorDisplayProps>

NetworkError

const
const NetworkError: React.FunctionComponent<NetworkErrorProps>

LoadError

const
const LoadError: React.FunctionComponent<LoadErrorProps>

EmptyState

const
const EmptyState: React.FunctionComponent<EmptyStateProps>

NoItems

const
const NoItems: React.FunctionComponent<NoItemsProps>

NoSearchResults

const
const NoSearchResults: React.FunctionComponent<NoSearchResultsProps>

NoSelection

const
const NoSelection: React.FunctionComponent<NoSelectionProps>

LIST_VIEW_TYPE

const
const LIST_VIEW_TYPE: ListViewType

GRID_VIEW_TYPE

const
const GRID_VIEW_TYPE: ListViewType

DETAILS_VIEW_TYPE

const
const DETAILS_VIEW_TYPE: ListViewType

MASONRY_HORIZONTAL_VIEW_TYPE

const
const MASONRY_HORIZONTAL_VIEW_TYPE: ListViewType

MASONRY_VERTICAL_VIEW_TYPE

const
const MASONRY_VERTICAL_VIEW_TYPE: ListViewType

benchmark

const
const 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

const
const benchmarkLogger: BenchmarkLogger

GRID_PRESETS

const
const 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

const
const 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

const
const CalculatedGridView: React.FunctionComponent<CalculatedGridViewProps>

ExplorerLayout

const
const ExplorerLayout: React.FC<ExplorerLayoutProps>

ExplorerLayoutSimpleExample

const
const ExplorerLayoutSimpleExample: React.FC<{}>