@anymux/ui-kit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ExplorerLayout-CSIJd7N4.js +105 -0
- package/dist/ExplorerLayout-CSIJd7N4.js.map +1 -0
- package/dist/FileBrowserContext-B6jixa2j.js +11 -0
- package/dist/FileBrowserContext-B6jixa2j.js.map +1 -0
- package/dist/calendar-DSlrbHoj.js +761 -0
- package/dist/calendar-DSlrbHoj.js.map +1 -0
- package/dist/calendar.d.ts +3 -0
- package/dist/calendar.js +3 -0
- package/dist/contacts-DQXTZzHc.js +539 -0
- package/dist/contacts-DQXTZzHc.js.map +1 -0
- package/dist/contacts.d.ts +3 -0
- package/dist/contacts.js +3 -0
- package/dist/file-browser-m5atC3kF.js +6755 -0
- package/dist/file-browser-m5atC3kF.js.map +1 -0
- package/dist/file-browser.d.ts +11 -0
- package/dist/file-browser.js +9 -0
- package/dist/git-B55e6LL-.js +561 -0
- package/dist/git-B55e6LL-.js.map +1 -0
- package/dist/git.d.ts +2 -0
- package/dist/git.js +3 -0
- package/dist/iconMap-V4B8P-Uh.js +206 -0
- package/dist/iconMap-V4B8P-Uh.js.map +1 -0
- package/dist/icons-CIsIOZXR.js +0 -0
- package/dist/icons.d.ts +2 -0
- package/dist/icons.js +4 -0
- package/dist/index-BNmNIWBL.d.ts +71 -0
- package/dist/index-BNmNIWBL.d.ts.map +1 -0
- package/dist/index-Bryv_GCG.d.ts +1481 -0
- package/dist/index-Bryv_GCG.d.ts.map +1 -0
- package/dist/index-CuQIjSXs.d.ts +134 -0
- package/dist/index-CuQIjSXs.d.ts.map +1 -0
- package/dist/index-DSu19mq0.d.ts +153 -0
- package/dist/index-DSu19mq0.d.ts.map +1 -0
- package/dist/index-DmsyeHFr.d.ts +149 -0
- package/dist/index-DmsyeHFr.d.ts.map +1 -0
- package/dist/index-DxnJ8FYM.d.ts +17 -0
- package/dist/index-DxnJ8FYM.d.ts.map +1 -0
- package/dist/index-DzfY1Tok.d.ts +32 -0
- package/dist/index-DzfY1Tok.d.ts.map +1 -0
- package/dist/index-Ml_SgiKa.d.ts +1847 -0
- package/dist/index-Ml_SgiKa.d.ts.map +1 -0
- package/dist/index-kHr9udZD.d.ts +1025 -0
- package/dist/index-kHr9udZD.d.ts.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +15 -0
- package/dist/layout-Ca_4r8ka.js +89 -0
- package/dist/layout-Ca_4r8ka.js.map +1 -0
- package/dist/layout.d.ts +2 -0
- package/dist/layout.js +5 -0
- package/dist/list-CxfT6hix.js +6831 -0
- package/dist/list-CxfT6hix.js.map +1 -0
- package/dist/list.d.ts +2 -0
- package/dist/list.js +5 -0
- package/dist/media-DZ292aKK.js +557 -0
- package/dist/media-DZ292aKK.js.map +1 -0
- package/dist/media.d.ts +3 -0
- package/dist/media.js +3 -0
- package/dist/tree-Dd9Z0Aso.js +3351 -0
- package/dist/tree-Dd9Z0Aso.js.map +1 -0
- package/dist/tree.d.ts +2 -0
- package/dist/tree.js +6 -0
- package/dist/types-common-CB3kRek8.d.ts +26 -0
- package/dist/types-common-CB3kRek8.d.ts.map +1 -0
- package/dist/utils-B4fdKKsy.js +3 -0
- package/package.json +109 -0
- package/src/calendar/AgendaView.tsx +37 -0
- package/src/calendar/CalendarBrowser.tsx +90 -0
- package/src/calendar/CalendarModel.ts +142 -0
- package/src/calendar/CalendarSidebar.tsx +81 -0
- package/src/calendar/DayView.tsx +76 -0
- package/src/calendar/EventCard.tsx +51 -0
- package/src/calendar/MockCalendarProvider.ts +98 -0
- package/src/calendar/MonthView.tsx +77 -0
- package/src/calendar/WeekView.tsx +129 -0
- package/src/calendar/index.ts +18 -0
- package/src/calendar/types.ts +25 -0
- package/src/contacts/ContactAvatar.tsx +35 -0
- package/src/contacts/ContactBrowser.tsx +56 -0
- package/src/contacts/ContactCard.tsx +37 -0
- package/src/contacts/ContactDetail.tsx +63 -0
- package/src/contacts/ContactGroupSidebar.tsx +40 -0
- package/src/contacts/ContactList.tsx +32 -0
- package/src/contacts/ContactListModel.ts +120 -0
- package/src/contacts/MockContactProvider.ts +77 -0
- package/src/contacts/index.ts +17 -0
- package/src/contacts/types.ts +26 -0
- package/src/demos/CalendarBrowserDemo.tsx +15 -0
- package/src/demos/ContactBrowserDemo.tsx +15 -0
- package/src/demos/MediaBrowserDemo.tsx +15 -0
- package/src/file-browser/adapters/DocumentViewerAdapter.ts +371 -0
- package/src/file-browser/adapters/FileSystemBridge.ts +168 -0
- package/src/file-browser/adapters/GitBrowserAdapter.ts +546 -0
- package/src/file-browser/adapters/README.md +504 -0
- package/src/file-browser/adapters/index.ts +27 -0
- package/src/file-browser/adapters/types.ts +70 -0
- package/src/file-browser/architecture.md +645 -0
- package/src/file-browser/components/CreateItemDialog.tsx +71 -0
- package/src/file-browser/components/DeleteConfirmDialog.tsx +58 -0
- package/src/file-browser/components/FileBrowser.tsx +473 -0
- package/src/file-browser/components/FileBrowserContent.tsx +209 -0
- package/src/file-browser/components/FileBrowserHeader.tsx +151 -0
- package/src/file-browser/components/FileBrowserToolbar.tsx +145 -0
- package/src/file-browser/components/LeftPanel/LeftPanel.tsx +103 -0
- package/src/file-browser/components/LeftPanel/LeftPanelTabs.tsx +70 -0
- package/src/file-browser/components/LeftPanel/TreeNavigationView.tsx +256 -0
- package/src/file-browser/components/PreviewPane.tsx +146 -0
- package/src/file-browser/components/RightPanel/FilePreview.tsx +219 -0
- package/src/file-browser/components/RightPanel/RightPanel.tsx +186 -0
- package/src/file-browser/components/RightPanel/RightPanelToolbar.tsx +113 -0
- package/src/file-browser/components/UploadProgress.tsx +123 -0
- package/src/file-browser/components/ViewerHost.tsx +208 -0
- package/src/file-browser/components/mobile/MobileNavigation.tsx +227 -0
- package/src/file-browser/components/navigation/NavigationButtons.tsx +171 -0
- package/src/file-browser/components/shared/ErrorBoundary.tsx +116 -0
- package/src/file-browser/components/shared/FileBrowserItem.tsx +195 -0
- package/src/file-browser/components/shared/FileIcon.tsx +169 -0
- package/src/file-browser/components/toolbar/ViewModeToggle.tsx +200 -0
- package/src/file-browser/components/views/ListView/ListView.tsx +484 -0
- package/src/file-browser/components/views/ThumbnailView/ThumbnailView.tsx +323 -0
- package/src/file-browser/components/views/TreeView/TreeNode.tsx +186 -0
- package/src/file-browser/components/views/TreeView/TreeNodeList.tsx +191 -0
- package/src/file-browser/components/views/TreeView/TreeView.tsx +200 -0
- package/src/file-browser/components/views/TreemapView/TreemapView.tsx +339 -0
- package/src/file-browser/context/FileBrowserContext.tsx +13 -0
- package/src/file-browser/examples/BasicUsage.tsx +20 -0
- package/src/file-browser/index.ts +98 -0
- package/src/file-browser/models/FileBrowserModel.ts +623 -0
- package/src/file-browser/models/LeftPanelManagerModel.ts +105 -0
- package/src/file-browser/models/NavigationManagerModel.ts +312 -0
- package/src/file-browser/models/ResponsiveLayoutManagerModel.ts +437 -0
- package/src/file-browser/models/RightPanelManagerModel.ts +190 -0
- package/src/file-browser/models/SelectionManagerModel.ts +252 -0
- package/src/file-browser/models/ToolbarManagerModel.ts +144 -0
- package/src/file-browser/models/UploadModel.ts +147 -0
- package/src/file-browser/models/ViewModeManagerModel.ts +185 -0
- package/src/file-browser/models/ViewerHostModel.ts +44 -0
- package/src/file-browser/models/ui/ListViewUIModel.ts +265 -0
- package/src/file-browser/models/ui/PreviewUIModel.ts +297 -0
- package/src/file-browser/models/ui/ThumbnailViewUIModel.ts +254 -0
- package/src/file-browser/models/ui/TreeViewUIModel.ts +128 -0
- package/src/file-browser/models/ui/TreemapViewUIModel.ts +350 -0
- package/src/file-browser/providers/FileSystemListProvider.ts +552 -0
- package/src/file-browser/providers/FileSystemProvider.ts +401 -0
- package/src/file-browser/providers/FileSystemTreeProvider.ts +231 -0
- package/src/file-browser/providers/GitProvider.ts +337 -0
- package/src/file-browser/providers/GitRepositoryProvider.ts +376 -0
- package/src/file-browser/providers/IFileBrowserProvider.ts +56 -0
- package/src/file-browser/providers/MemoryProvider.ts +303 -0
- package/src/file-browser/providers/index.ts +4 -0
- package/src/file-browser/registry/ViewerRegistry.ts +551 -0
- package/src/file-browser/registry/types.ts +144 -0
- package/src/file-browser/scripts/performanceBenchmark.ts +553 -0
- package/src/file-browser/services/ThumbnailCacheService.ts +128 -0
- package/src/file-browser/tasks.md +537 -0
- package/src/file-browser/types/FileBrowserTypes.ts +126 -0
- package/src/file-browser/types/ProviderTypes.ts +155 -0
- package/src/file-browser/types/UITypes.ts +235 -0
- package/src/file-browser/types/ViewModeTypes.ts +150 -0
- package/src/file-browser/utils/gestures.ts +327 -0
- package/src/file-browser/utils/performance.ts +563 -0
- package/src/file-browser/viewers/ImageViewer.tsx +163 -0
- package/src/file-browser/viewers/ImageViewerModel.ts +79 -0
- package/src/file-browser/viewers/TextViewer.tsx +95 -0
- package/src/file-browser/viewers/UnsupportedFileViewer.tsx +57 -0
- package/src/file-browser/viewers/index.ts +61 -0
- package/src/git/BranchList.tsx +128 -0
- package/src/git/CommitGraph.tsx +239 -0
- package/src/git/CommitList.tsx +258 -0
- package/src/git/DiffViewer.tsx +219 -0
- package/src/git/index.ts +4 -0
- package/src/icons/iconMap.ts +146 -0
- package/src/icons/index.ts +9 -0
- package/src/index.ts +13 -0
- package/src/layout/README.md +307 -0
- package/src/layout/components/ExplorerLayout/ExplorerLayout.tsx +178 -0
- package/src/layout/examples/SimpleExample.tsx +60 -0
- package/src/layout/index.ts +6 -0
- package/src/lib/utils.ts +1 -0
- package/src/list/README.md +303 -0
- package/src/list/architecture.md +807 -0
- package/src/list/components/CalculatedGridView.tsx +252 -0
- package/src/list/components/DragPreview.tsx +102 -0
- package/src/list/components/ListContextMenu.tsx +274 -0
- package/src/list/components/ListItem.tsx +761 -0
- package/src/list/components/ListItems.tsx +919 -0
- package/src/list/components/MasonryView.tsx +241 -0
- package/src/list/components/SearchFilter.tsx +44 -0
- package/src/list/components/TreemapView.tsx +709 -0
- package/src/list/components/ViewSizeControls.tsx +205 -0
- package/src/list/components/ViewTypeSelector.tsx +312 -0
- package/src/list/components/VirtualizedDetailsView.tsx +231 -0
- package/src/list/components/VirtualizedGrid.tsx +164 -0
- package/src/list/components/VirtualizedList.tsx +154 -0
- package/src/list/components/VirtualizedMasonryView.tsx +344 -0
- package/src/list/components/shared/EmptyState.tsx +103 -0
- package/src/list/components/shared/ErrorBoundary.tsx +123 -0
- package/src/list/components/shared/ErrorDisplay.tsx +100 -0
- package/src/list/components/shared/ListLoader.tsx +146 -0
- package/src/list/components/shared/LoadingIndicator.tsx +80 -0
- package/src/list/index.ts +92 -0
- package/src/list/models/ListItemsModel.ts +1301 -0
- package/src/list/models/TreemapModel.ts +204 -0
- package/src/list/providers/ListItemsProvider.ts +313 -0
- package/src/list/providers/TestListProvider.ts +604 -0
- package/src/list/tasks.md +937 -0
- package/src/list/types/ListTypes.ts +178 -0
- package/src/list/utils/BenchmarkLogger.ts +243 -0
- package/src/list/utils/DragDropManager.ts +320 -0
- package/src/list/utils/GridLayoutCalculator.ts +290 -0
- package/src/list/utils/ListAccessibility.ts +367 -0
- package/src/list/utils/ListKeyboard.ts +414 -0
- package/src/list/utils/MasonryLayoutCalculator.ts +302 -0
- package/src/list/utils/MasonryLayoutEngine.ts +401 -0
- package/src/list/utils/__tests__/MasonryLayoutEngine.test.ts +157 -0
- package/src/list/utils/__tests__/VirtualizedMasonryView.test.tsx +251 -0
- package/src/media/AlbumSidebar.tsx +48 -0
- package/src/media/MediaBrowser.tsx +92 -0
- package/src/media/MediaBrowserModel.ts +138 -0
- package/src/media/MediaGrid.tsx +50 -0
- package/src/media/MediaList.tsx +49 -0
- package/src/media/MediaPreview.tsx +63 -0
- package/src/media/MediaTimeline.tsx +38 -0
- package/src/media/MockMediaProvider.ts +70 -0
- package/src/media/index.ts +18 -0
- package/src/media/types.ts +21 -0
- package/src/styles/variables.css +60 -0
- package/src/tree/DEVELOPMENT_SUMMARY.md +170 -0
- package/src/tree/__tests__/TreeModel.test.ts +16 -0
- package/src/tree/architecture.md +530 -0
- package/src/tree/components/Tree.tsx +283 -0
- package/src/tree/components/TreeCheckbox.tsx +147 -0
- package/src/tree/components/TreeContextMenu.tsx +139 -0
- package/src/tree/components/TreeNodeList.tsx +329 -0
- package/src/tree/components/TreeTable.tsx +382 -0
- package/src/tree/index.ts +58 -0
- package/src/tree/models/TreeModel.ts +839 -0
- package/src/tree/providers/SimpleTreeProvider.ts +463 -0
- package/src/tree/providers/TestTreeProvider.ts +946 -0
- package/src/tree/providers/TreeProvider.ts +308 -0
- package/src/tree/tasks.md +2046 -0
- package/src/tree/types/TreeTypes.ts +279 -0
- package/src/tree/utils/SelectionTheme.ts +150 -0
- package/src/tree/utils/logger.ts +203 -0
- package/src/types-common.ts +21 -0
|
@@ -0,0 +1,1481 @@
|
|
|
1
|
+
import React$1, { Component, ErrorInfo, ReactNode } from "react";
|
|
2
|
+
import * as mobx15 from "mobx";
|
|
3
|
+
import * as mobx16 from "mobx";
|
|
4
|
+
import * as mobx17 from "mobx";
|
|
5
|
+
import * as mobx18 from "mobx";
|
|
6
|
+
import * as react_jsx_runtime14 from "react/jsx-runtime";
|
|
7
|
+
import * as mobx_dist_internal19 from "mobx/dist/internal";
|
|
8
|
+
import * as mobx_dist_internal20 from "mobx/dist/internal";
|
|
9
|
+
import * as mobx_dist_internal21 from "mobx/dist/internal";
|
|
10
|
+
import * as mobx_dist_internal22 from "mobx/dist/internal";
|
|
11
|
+
import * as mobx_dist_internal23 from "mobx/dist/internal";
|
|
12
|
+
import * as mobx_dist_internal24 from "mobx/dist/internal";
|
|
13
|
+
|
|
14
|
+
//#region src/list/types/ListTypes.d.ts
|
|
15
|
+
/**
|
|
16
|
+
* Core Type Definitions for ListItemsComponent
|
|
17
|
+
*
|
|
18
|
+
* Defines the fundamental interfaces and types used throughout the component.
|
|
19
|
+
* These types support the provider pattern and multiple view types.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Core Type Definitions for ListItemsComponent
|
|
23
|
+
*
|
|
24
|
+
* Defines the fundamental interfaces and types used throughout the component.
|
|
25
|
+
* These types support the provider pattern and multiple view types.
|
|
26
|
+
*/
|
|
27
|
+
interface ListItemData {
|
|
28
|
+
/** Unique identifier for the item */
|
|
29
|
+
id: string;
|
|
30
|
+
/** Display name of the item */
|
|
31
|
+
name: string;
|
|
32
|
+
/** Optional type classification (file, folder, etc.) */
|
|
33
|
+
type?: string;
|
|
34
|
+
/** Optional size in bytes */
|
|
35
|
+
size?: number;
|
|
36
|
+
/** Optional modification date */
|
|
37
|
+
modified?: Date;
|
|
38
|
+
/** Optional icon identifier or URL */
|
|
39
|
+
icon?: string;
|
|
40
|
+
/** Optional thumbnail URL */
|
|
41
|
+
thumbnail?: string;
|
|
42
|
+
/** Optional thumbnail URL (alias for image display) */
|
|
43
|
+
thumbnailUrl?: string;
|
|
44
|
+
/** Additional custom properties */
|
|
45
|
+
[key: string]: any;
|
|
46
|
+
isDirectory?: boolean;
|
|
47
|
+
children?: ListItemData[];
|
|
48
|
+
metadata?: Record<string, any>;
|
|
49
|
+
imageUrl?: string;
|
|
50
|
+
aspectRatio?: number;
|
|
51
|
+
getDimensions?(): {
|
|
52
|
+
width: number;
|
|
53
|
+
height: number;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
interface ListLoadOptions {
|
|
57
|
+
/** Number of items to load (for pagination) */
|
|
58
|
+
limit?: number;
|
|
59
|
+
/** Starting offset for pagination */
|
|
60
|
+
offset?: number;
|
|
61
|
+
/** Search query to filter items */
|
|
62
|
+
searchQuery?: string;
|
|
63
|
+
/** Sort field */
|
|
64
|
+
sortBy?: string;
|
|
65
|
+
/** Sort direction */
|
|
66
|
+
sortDirection?: 'asc' | 'desc';
|
|
67
|
+
/** Additional filter criteria */
|
|
68
|
+
filters?: Record<string, any>;
|
|
69
|
+
}
|
|
70
|
+
interface ListLoadResult {
|
|
71
|
+
/** Array of loaded items */
|
|
72
|
+
items: ListItemData[];
|
|
73
|
+
/** Total number of items available (for virtualization) */
|
|
74
|
+
totalCount?: number;
|
|
75
|
+
/** Whether there are more items to load */
|
|
76
|
+
hasMore?: boolean;
|
|
77
|
+
/** Loading cursor for pagination */
|
|
78
|
+
nextCursor?: string;
|
|
79
|
+
}
|
|
80
|
+
interface ListSelectionInfo {
|
|
81
|
+
/** Currently selected items */
|
|
82
|
+
selectedItems: ListItemData[];
|
|
83
|
+
/** Previously selected items */
|
|
84
|
+
previousSelection: ListItemData[];
|
|
85
|
+
/** Type of selection operation */
|
|
86
|
+
selectionType: 'single' | 'multi' | 'range';
|
|
87
|
+
/** What triggered the selection change */
|
|
88
|
+
trigger: 'click' | 'keyboard' | 'api';
|
|
89
|
+
}
|
|
90
|
+
interface ListDragDropInfo {
|
|
91
|
+
/** Items being dragged */
|
|
92
|
+
draggedItems: ListItemData[];
|
|
93
|
+
/** Target item being dropped on */
|
|
94
|
+
targetItem: ListItemData | null;
|
|
95
|
+
/** Drop position relative to target */
|
|
96
|
+
position: 'before' | 'after' | 'inside';
|
|
97
|
+
/** Original drag event */
|
|
98
|
+
event: DragEvent;
|
|
99
|
+
}
|
|
100
|
+
interface VirtualizationConfig {
|
|
101
|
+
/** Fixed item height for current view type */
|
|
102
|
+
itemHeight: number;
|
|
103
|
+
/** Items to render outside visible area */
|
|
104
|
+
overscan?: number;
|
|
105
|
+
/** Minimum items before enabling virtualization */
|
|
106
|
+
threshold?: number;
|
|
107
|
+
/** Dynamic loading range size */
|
|
108
|
+
rangeSize?: number;
|
|
109
|
+
}
|
|
110
|
+
interface ListViewType$1 {
|
|
111
|
+
/** Unique identifier for the view type */
|
|
112
|
+
readonly id: string;
|
|
113
|
+
/** Human-readable name */
|
|
114
|
+
readonly name: string;
|
|
115
|
+
/** Optional icon for the view type */
|
|
116
|
+
readonly icon?: string;
|
|
117
|
+
/** Number of items per row (1 for list, 'auto' for responsive grid) */
|
|
118
|
+
readonly itemsPerRow?: number | 'auto' | 'custom';
|
|
119
|
+
/** Whether to show detailed information */
|
|
120
|
+
readonly showDetails?: boolean;
|
|
121
|
+
/** Whether to show thumbnails */
|
|
122
|
+
readonly showThumbnails?: boolean;
|
|
123
|
+
/** Available thumbnail sizes */
|
|
124
|
+
readonly thumbnailSizes?: ThumbnailSize[];
|
|
125
|
+
/** Column definitions for details view */
|
|
126
|
+
readonly columns?: string[];
|
|
127
|
+
/** Custom renderer for this view type */
|
|
128
|
+
readonly customRenderer?: any;
|
|
129
|
+
}
|
|
130
|
+
type ThumbnailSize = 'small' | 'medium' | 'large' | 'extra-large';
|
|
131
|
+
interface ListContextMenuItem {
|
|
132
|
+
/** Menu item identifier */
|
|
133
|
+
id: string;
|
|
134
|
+
/** Display label */
|
|
135
|
+
label: string;
|
|
136
|
+
/** Optional icon (string or React component) */
|
|
137
|
+
icon?: string | React.ComponentType<any>;
|
|
138
|
+
/** Whether item is disabled */
|
|
139
|
+
disabled?: boolean;
|
|
140
|
+
/** Whether this is a separator */
|
|
141
|
+
type?: 'item' | 'separator';
|
|
142
|
+
/** Whether this is a destructive action */
|
|
143
|
+
destructive?: boolean;
|
|
144
|
+
/** Tooltip text */
|
|
145
|
+
tooltip?: string;
|
|
146
|
+
/** Keyboard shortcut display */
|
|
147
|
+
shortcut?: string;
|
|
148
|
+
/** Submenu items */
|
|
149
|
+
submenu?: ListContextMenuItem[];
|
|
150
|
+
}
|
|
151
|
+
interface ListItemRenderer {
|
|
152
|
+
/** Render item as text (for non-React environments) */
|
|
153
|
+
renderText?(item: ListItemData): string;
|
|
154
|
+
/** Render item icon */
|
|
155
|
+
renderIcon?(item: ListItemData): string;
|
|
156
|
+
/** Render item thumbnail */
|
|
157
|
+
renderThumbnail?(item: ListItemData): string;
|
|
158
|
+
/** Get display properties */
|
|
159
|
+
getDisplayProps?(item: ListItemData): {
|
|
160
|
+
className?: string;
|
|
161
|
+
style?: React.CSSProperties;
|
|
162
|
+
title?: string;
|
|
163
|
+
ariaLabel?: string;
|
|
164
|
+
};
|
|
165
|
+
/** Custom React component for item rendering */
|
|
166
|
+
renderComponent?: React.ComponentType<{
|
|
167
|
+
item: ListItemData;
|
|
168
|
+
[key: string]: any;
|
|
169
|
+
}>;
|
|
170
|
+
}
|
|
171
|
+
interface ListError {
|
|
172
|
+
/** Error message */
|
|
173
|
+
message: string;
|
|
174
|
+
/** Error code */
|
|
175
|
+
code?: string;
|
|
176
|
+
/** Whether error is recoverable */
|
|
177
|
+
recoverable?: boolean;
|
|
178
|
+
/** Retry function */
|
|
179
|
+
retry?: () => void;
|
|
180
|
+
} //#endregion
|
|
181
|
+
//#region src/list/providers/ListItemsProvider.d.ts
|
|
182
|
+
|
|
183
|
+
//# sourceMappingURL=ListTypes.d.ts.map
|
|
184
|
+
interface ListItemsProviderListener {
|
|
185
|
+
onItemsCountChanged(count: number): void;
|
|
186
|
+
onItemChanged(itemIndex: number): void;
|
|
187
|
+
}
|
|
188
|
+
interface ListViewType extends ListViewType$1 {}
|
|
189
|
+
declare const LIST_VIEW_TYPE: ListViewType;
|
|
190
|
+
declare const GRID_VIEW_TYPE: ListViewType;
|
|
191
|
+
declare const DETAILS_VIEW_TYPE: ListViewType;
|
|
192
|
+
declare const MASONRY_HORIZONTAL_VIEW_TYPE: ListViewType;
|
|
193
|
+
declare const MASONRY_VERTICAL_VIEW_TYPE: ListViewType;
|
|
194
|
+
declare const TREEMAP_VIEW_TYPE: ListViewType;
|
|
195
|
+
/** Recursive tree node for treemap view */
|
|
196
|
+
interface TreemapNodeData {
|
|
197
|
+
name: string;
|
|
198
|
+
path: string;
|
|
199
|
+
size?: number;
|
|
200
|
+
isDirectory: boolean;
|
|
201
|
+
children?: TreemapNodeData[];
|
|
202
|
+
}
|
|
203
|
+
/** Progress info reported during recursive directory scan */
|
|
204
|
+
interface TreemapScanProgress {
|
|
205
|
+
directoriesScanned: number;
|
|
206
|
+
filesFound: number;
|
|
207
|
+
totalSize: number;
|
|
208
|
+
}
|
|
209
|
+
interface ListItemsProvider {
|
|
210
|
+
/** Provider identifier */
|
|
211
|
+
readonly id: string;
|
|
212
|
+
/** Human-readable name */
|
|
213
|
+
readonly name: string;
|
|
214
|
+
/** Supported view types for this provider */
|
|
215
|
+
readonly supportedViewTypes: ListViewType[];
|
|
216
|
+
/** Whether multi-selection is enabled */
|
|
217
|
+
readonly isMultiSelectEnabled: boolean;
|
|
218
|
+
/** Whether virtualization is enabled */
|
|
219
|
+
readonly isVirtualizationEnabled: boolean;
|
|
220
|
+
/**
|
|
221
|
+
* Load items from the data source
|
|
222
|
+
* @param options Loading options for filtering, sorting, pagination
|
|
223
|
+
* @returns Promise resolving to loaded items
|
|
224
|
+
*/
|
|
225
|
+
loadItems(options?: ListLoadOptions): Promise<ListLoadResult>;
|
|
226
|
+
/**
|
|
227
|
+
* Get total count of items (for virtualization)
|
|
228
|
+
* @returns Promise resolving to total item count
|
|
229
|
+
*/
|
|
230
|
+
getItemCount(): Promise<number>;
|
|
231
|
+
/**
|
|
232
|
+
* Load a specific range of items (for virtualization)
|
|
233
|
+
* @param start Starting index
|
|
234
|
+
* @param end Ending index
|
|
235
|
+
* @returns Promise resolving to items in range
|
|
236
|
+
*/
|
|
237
|
+
loadItemRange?(start: number, end: number): Promise<ListLoadResult>;
|
|
238
|
+
/**
|
|
239
|
+
* Refresh/reload items
|
|
240
|
+
* @returns Promise resolving to refreshed items
|
|
241
|
+
*/
|
|
242
|
+
refresh?(): Promise<ListLoadResult>;
|
|
243
|
+
/**
|
|
244
|
+
* Get item height for a specific view type (for virtualization)
|
|
245
|
+
* @param viewType The view type to get height for
|
|
246
|
+
* @returns Fixed height in pixels
|
|
247
|
+
*/
|
|
248
|
+
getItemHeight(viewType: ListViewType): number;
|
|
249
|
+
/**
|
|
250
|
+
* Get item width for grid-based view types
|
|
251
|
+
* @param viewType The view type to get width for
|
|
252
|
+
* @returns Fixed width in pixels
|
|
253
|
+
*/
|
|
254
|
+
getItemWidth?(viewType: ListViewType): number;
|
|
255
|
+
/**
|
|
256
|
+
* Get virtualization configuration
|
|
257
|
+
* @returns Virtualization config object
|
|
258
|
+
*/
|
|
259
|
+
getVirtualizationConfig?(): VirtualizationConfig;
|
|
260
|
+
/**
|
|
261
|
+
* Called when selection changes
|
|
262
|
+
* @param selectionInfo Information about the selection change
|
|
263
|
+
*/
|
|
264
|
+
onSelectionChange?(selectionInfo: ListSelectionInfo): void;
|
|
265
|
+
/**
|
|
266
|
+
* Called when view type changes
|
|
267
|
+
* @param viewType New view type
|
|
268
|
+
*/
|
|
269
|
+
onViewTypeChange?(viewType: ListViewType): void;
|
|
270
|
+
/**
|
|
271
|
+
* Called when an item is double-clicked
|
|
272
|
+
* @param item The item that was double-clicked
|
|
273
|
+
*/
|
|
274
|
+
onItemDoubleClick?(item: ListItemData): void;
|
|
275
|
+
/**
|
|
276
|
+
* Called when keyboard navigation requests going up one level (Escape key).
|
|
277
|
+
* Providers that support hierarchical navigation should implement this.
|
|
278
|
+
*/
|
|
279
|
+
onNavigateUp?(): void;
|
|
280
|
+
addListener(listener: ListItemsProviderListener): void;
|
|
281
|
+
removeListener(listener: ListItemsProviderListener): void;
|
|
282
|
+
/**
|
|
283
|
+
* Get custom icon for an item
|
|
284
|
+
* @param item Target item
|
|
285
|
+
* @returns Icon identifier or React component
|
|
286
|
+
*/
|
|
287
|
+
getItemIcon?(item: ListItemData): string | React.ComponentType<any>;
|
|
288
|
+
/**
|
|
289
|
+
* Resolve a thumbnail URL for an item. Providers with async thumbnail
|
|
290
|
+
* loading return blob URLs from an observable cache — MobX observer
|
|
291
|
+
* components re-render when the URL becomes available.
|
|
292
|
+
*/
|
|
293
|
+
resolveThumbnailUrl?(item: ListItemData): string | undefined;
|
|
294
|
+
/**
|
|
295
|
+
* Get measured aspect ratio (width/height) for an item by path.
|
|
296
|
+
* Used by masonry layout to size items correctly instead of using
|
|
297
|
+
* deterministic random fallback ratios.
|
|
298
|
+
*/
|
|
299
|
+
getAspectRatio?(path: string): number | undefined;
|
|
300
|
+
/**
|
|
301
|
+
* Load recursive directory data for treemap view.
|
|
302
|
+
* Returns a nested tree of items including subfolder contents.
|
|
303
|
+
* @param onProgress Optional callback reporting scan progress
|
|
304
|
+
*/
|
|
305
|
+
loadTreemapData?(onProgress?: (progress: TreemapScanProgress) => void): Promise<TreemapNodeData[]>;
|
|
306
|
+
/**
|
|
307
|
+
* Get context menu items for a specific item
|
|
308
|
+
* @param item Target item
|
|
309
|
+
* @returns Array of context menu items
|
|
310
|
+
*/
|
|
311
|
+
getItemContextMenu?(item: ListItemData): ListContextMenuItem[];
|
|
312
|
+
/**
|
|
313
|
+
* Get context menu items for multiple selected items
|
|
314
|
+
* @param items Selected items
|
|
315
|
+
* @returns Array of context menu items
|
|
316
|
+
*/
|
|
317
|
+
getMultiItemContextMenu?(items: ListItemData[]): ListContextMenuItem[];
|
|
318
|
+
/**
|
|
319
|
+
* Get context menu items for empty space (no item right-clicked)
|
|
320
|
+
* @returns Array of context menu items
|
|
321
|
+
*/
|
|
322
|
+
getEmptySpaceContextMenu?(): ListContextMenuItem[];
|
|
323
|
+
/**
|
|
324
|
+
* Called when a context menu action is selected
|
|
325
|
+
* @param menuItemId Menu item identifier
|
|
326
|
+
* @param items Items the action applies to (empty array for empty-space actions)
|
|
327
|
+
*/
|
|
328
|
+
onContextMenuAction?(menuItemId: string, items: ListItemData[]): void;
|
|
329
|
+
/**
|
|
330
|
+
* Whether drag and drop is enabled
|
|
331
|
+
*/
|
|
332
|
+
readonly isDragDropEnabled?: boolean;
|
|
333
|
+
/**
|
|
334
|
+
* Check if an item can be dragged
|
|
335
|
+
* @param item Item to check
|
|
336
|
+
* @returns Whether the item can be dragged
|
|
337
|
+
*/
|
|
338
|
+
canDragItem?(item: ListItemData): boolean;
|
|
339
|
+
/**
|
|
340
|
+
* Check if items can be dropped on a target
|
|
341
|
+
* @param draggedItems Items being dragged
|
|
342
|
+
* @param targetItem Target item (null for empty space)
|
|
343
|
+
* @param position Drop position relative to target
|
|
344
|
+
* @returns Whether the drop is allowed
|
|
345
|
+
*/
|
|
346
|
+
canDropItems?(draggedItems: ListItemData[], targetItem: ListItemData | null, position: 'before' | 'after' | 'inside'): boolean;
|
|
347
|
+
/**
|
|
348
|
+
* Called when drag operation starts
|
|
349
|
+
* @param draggedItems Items being dragged
|
|
350
|
+
* @param event Original drag event
|
|
351
|
+
*/
|
|
352
|
+
onDragStart?(draggedItems: ListItemData[], event: DragEvent): void;
|
|
353
|
+
/**
|
|
354
|
+
* Called when items are dropped
|
|
355
|
+
* @param dragDropInfo Information about the drag and drop operation
|
|
356
|
+
*/
|
|
357
|
+
onDrop?(dragDropInfo: ListDragDropInfo): void;
|
|
358
|
+
/**
|
|
359
|
+
* Called when drag operation ends (whether successful or not)
|
|
360
|
+
* @param draggedItems Items that were being dragged
|
|
361
|
+
* @param success Whether the drop was successful
|
|
362
|
+
*/
|
|
363
|
+
onDragEnd?(draggedItems: ListItemData[], success: boolean): void;
|
|
364
|
+
} //#endregion
|
|
365
|
+
//#region src/list/utils/GridLayoutCalculator.d.ts
|
|
366
|
+
|
|
367
|
+
//# sourceMappingURL=ListItemsProvider.d.ts.map
|
|
368
|
+
interface GridLayoutConfig {
|
|
369
|
+
containerWidth: number;
|
|
370
|
+
containerHeight: number;
|
|
371
|
+
itemsPerRow: number | 'auto';
|
|
372
|
+
gap: number;
|
|
373
|
+
padding: number;
|
|
374
|
+
minItemWidth: number;
|
|
375
|
+
maxItemWidth: number;
|
|
376
|
+
aspectRatio: number;
|
|
377
|
+
}
|
|
378
|
+
interface GridItemLayout {
|
|
379
|
+
x: number;
|
|
380
|
+
y: number;
|
|
381
|
+
width: number;
|
|
382
|
+
height: number;
|
|
383
|
+
thumbnailSize: number;
|
|
384
|
+
textHeight: number;
|
|
385
|
+
}
|
|
386
|
+
interface GridLayoutResult {
|
|
387
|
+
itemsPerRow: number;
|
|
388
|
+
itemWidth: number;
|
|
389
|
+
itemHeight: number;
|
|
390
|
+
totalRows: number;
|
|
391
|
+
totalHeight: number;
|
|
392
|
+
items: GridItemLayout[];
|
|
393
|
+
}
|
|
394
|
+
declare class GridLayoutCalculator {
|
|
395
|
+
private config;
|
|
396
|
+
constructor(config: GridLayoutConfig);
|
|
397
|
+
updateConfig(updates: Partial<GridLayoutConfig>): void;
|
|
398
|
+
get currentConfig(): GridLayoutConfig;
|
|
399
|
+
calculateItemsPerRow(): number;
|
|
400
|
+
calculateItemDimensions(itemsPerRow: number): {
|
|
401
|
+
width: number;
|
|
402
|
+
height: number;
|
|
403
|
+
};
|
|
404
|
+
calculateThumbnailSize(itemWidth: number, itemHeight: number): number;
|
|
405
|
+
calculateLayout(totalItems: number): GridLayoutResult;
|
|
406
|
+
calculateVisibleItems(totalItems: number, scrollTop: number, viewportHeight: number, overscan?: number): {
|
|
407
|
+
startIndex: number;
|
|
408
|
+
endIndex: number;
|
|
409
|
+
visibleItems: GridItemLayout[];
|
|
410
|
+
};
|
|
411
|
+
getItemPosition(itemIndex: number, totalItems: number): GridItemLayout | null;
|
|
412
|
+
getItemAtPosition(x: number, y: number, totalItems: number): number | null;
|
|
413
|
+
}
|
|
414
|
+
declare function createGridCalculator(containerWidth: number, containerHeight: number, options?: Partial<GridLayoutConfig>): GridLayoutCalculator;
|
|
415
|
+
declare const GRID_PRESETS: {
|
|
416
|
+
readonly compact: {
|
|
417
|
+
readonly gap: 8;
|
|
418
|
+
readonly padding: 12;
|
|
419
|
+
readonly minItemWidth: 120;
|
|
420
|
+
readonly maxItemWidth: 200;
|
|
421
|
+
readonly aspectRatio: 0.85;
|
|
422
|
+
};
|
|
423
|
+
readonly comfortable: {
|
|
424
|
+
readonly gap: 16;
|
|
425
|
+
readonly padding: 20;
|
|
426
|
+
readonly minItemWidth: 200;
|
|
427
|
+
readonly maxItemWidth: 300;
|
|
428
|
+
readonly aspectRatio: 0.9;
|
|
429
|
+
};
|
|
430
|
+
readonly spacious: {
|
|
431
|
+
readonly gap: 24;
|
|
432
|
+
readonly padding: 32;
|
|
433
|
+
readonly minItemWidth: 280;
|
|
434
|
+
readonly maxItemWidth: 400;
|
|
435
|
+
readonly aspectRatio: 0.95;
|
|
436
|
+
};
|
|
437
|
+
};
|
|
438
|
+
|
|
439
|
+
//#endregion
|
|
440
|
+
//#region src/list/utils/MasonryLayoutEngine.d.ts
|
|
441
|
+
//# sourceMappingURL=GridLayoutCalculator.d.ts.map
|
|
442
|
+
interface MasonryItemPosition {
|
|
443
|
+
id: string;
|
|
444
|
+
x: number;
|
|
445
|
+
y: number;
|
|
446
|
+
width: number;
|
|
447
|
+
height: number;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
//#endregion
|
|
451
|
+
//#region src/list/models/ListItemsModel.d.ts
|
|
452
|
+
declare class ListItemsModel implements ListItemsProviderListener {
|
|
453
|
+
provider: ListItemsProvider;
|
|
454
|
+
currentViewType: ListViewType;
|
|
455
|
+
_allItems: ListItemData[];
|
|
456
|
+
itemMap: mobx15.ObservableMap<string, ListItemData>;
|
|
457
|
+
totalItemCount: number;
|
|
458
|
+
searchQuery: string;
|
|
459
|
+
selectedItems: mobx16.ObservableMap<string, ListItemData>;
|
|
460
|
+
previousSelection: ListItemData[];
|
|
461
|
+
focusedItem: string | null;
|
|
462
|
+
selectionAnchor: string | null;
|
|
463
|
+
isLoading: boolean;
|
|
464
|
+
loadingRanges: mobx17.ObservableMap<string, boolean>;
|
|
465
|
+
errors: mobx18.ObservableMap<string, Error>;
|
|
466
|
+
viewportRange: {
|
|
467
|
+
start: number;
|
|
468
|
+
end: number;
|
|
469
|
+
};
|
|
470
|
+
scrollPosition: number;
|
|
471
|
+
containerSize: {
|
|
472
|
+
width: number;
|
|
473
|
+
height: number;
|
|
474
|
+
};
|
|
475
|
+
isDragging: boolean;
|
|
476
|
+
draggedItems: ListItemData[];
|
|
477
|
+
dragOverItem: string | null;
|
|
478
|
+
dragOverPosition: 'before' | 'after' | 'inside' | null;
|
|
479
|
+
itemSize: 'small' | 'medium' | 'large' | 'extra-large';
|
|
480
|
+
customItemWidth: number;
|
|
481
|
+
customItemHeight: number;
|
|
482
|
+
itemsPerRow: number | 'auto';
|
|
483
|
+
private gridCalculator;
|
|
484
|
+
private verticalMasonryEngine;
|
|
485
|
+
private horizontalMasonryEngine;
|
|
486
|
+
debugVisualization: boolean;
|
|
487
|
+
compactMode: boolean;
|
|
488
|
+
columnVisibility: {
|
|
489
|
+
type: boolean;
|
|
490
|
+
modified: boolean;
|
|
491
|
+
size: boolean;
|
|
492
|
+
};
|
|
493
|
+
showCheckboxes: boolean;
|
|
494
|
+
scrollToItemId: string | null;
|
|
495
|
+
pageSize: number;
|
|
496
|
+
currentPage: number;
|
|
497
|
+
constructor(provider: ListItemsProvider);
|
|
498
|
+
get items(): ListItemData[];
|
|
499
|
+
get hasSearchQuery(): boolean;
|
|
500
|
+
get allItemsCount(): number;
|
|
501
|
+
setSearchQuery(query: string): void;
|
|
502
|
+
clearSearch(): void;
|
|
503
|
+
clearItems(): void;
|
|
504
|
+
onItemsCountChanged(count: number): void;
|
|
505
|
+
onItemChanged(itemIndex: number): void;
|
|
506
|
+
get selectedItemsArray(): ListItemData[];
|
|
507
|
+
get hasSelection(): boolean;
|
|
508
|
+
get isItemSelected(): (itemId: string) => boolean;
|
|
509
|
+
get itemHeight(): number;
|
|
510
|
+
get isLoaded(): boolean;
|
|
511
|
+
get hasErrors(): boolean;
|
|
512
|
+
get selectedItemIds(): Set<string>;
|
|
513
|
+
get visibleItemsCount(): number;
|
|
514
|
+
get loadedItemsCount(): number;
|
|
515
|
+
get loadingProgress(): number;
|
|
516
|
+
get isFullyLoaded(): boolean;
|
|
517
|
+
get totalPages(): number;
|
|
518
|
+
get hasNextPage(): boolean;
|
|
519
|
+
get hasPreviousPage(): boolean;
|
|
520
|
+
goToPage: (page: number) => mobx_dist_internal19.CancellablePromise<void>;
|
|
521
|
+
nextPage: () => mobx_dist_internal20.CancellablePromise<void>;
|
|
522
|
+
prevPage: () => mobx_dist_internal21.CancellablePromise<void>;
|
|
523
|
+
setPageSize(size: number): void;
|
|
524
|
+
/**
|
|
525
|
+
* Load items from the provider
|
|
526
|
+
* Uses MobX flow for proper async action handling
|
|
527
|
+
*/
|
|
528
|
+
loadItems: (options?: ListLoadOptions | undefined) => mobx_dist_internal22.CancellablePromise<void>;
|
|
529
|
+
/**
|
|
530
|
+
* Load a specific range of items for virtualization
|
|
531
|
+
*/
|
|
532
|
+
loadItemRange: (start: number, end: number) => mobx_dist_internal23.CancellablePromise<void>;
|
|
533
|
+
/**
|
|
534
|
+
* Refresh items from provider
|
|
535
|
+
*/
|
|
536
|
+
refresh: () => mobx_dist_internal24.CancellablePromise<void>;
|
|
537
|
+
/**
|
|
538
|
+
* Select a single item with proper single/multi-selection logic
|
|
539
|
+
*/
|
|
540
|
+
selectItem(item: ListItemData, modifiers?: {
|
|
541
|
+
ctrl?: boolean;
|
|
542
|
+
shift?: boolean;
|
|
543
|
+
}): void;
|
|
544
|
+
/**
|
|
545
|
+
* Select a contiguous range of items between two item IDs
|
|
546
|
+
*/
|
|
547
|
+
selectRange(fromId: string, toId: string): void;
|
|
548
|
+
/**
|
|
549
|
+
* Clear all selection
|
|
550
|
+
*/
|
|
551
|
+
clearSelection(): void;
|
|
552
|
+
/**
|
|
553
|
+
* Select all items (if multi-select enabled)
|
|
554
|
+
*/
|
|
555
|
+
selectAll(): void;
|
|
556
|
+
/**
|
|
557
|
+
* Set the current view type
|
|
558
|
+
*/
|
|
559
|
+
setViewType(viewType: ListViewType): void;
|
|
560
|
+
/**
|
|
561
|
+
* Set item size for grid and masonry views
|
|
562
|
+
*/
|
|
563
|
+
setItemSize(size: 'small' | 'medium' | 'large' | 'extra-large'): void;
|
|
564
|
+
/**
|
|
565
|
+
* Set custom item width and update calculators
|
|
566
|
+
*/
|
|
567
|
+
setCustomItemWidth(width: number): void;
|
|
568
|
+
/**
|
|
569
|
+
* Set custom item height and update calculators
|
|
570
|
+
*/
|
|
571
|
+
setCustomItemHeight(height: number): void;
|
|
572
|
+
/**
|
|
573
|
+
* Get current item dimensions
|
|
574
|
+
*/
|
|
575
|
+
get itemDimensions(): {
|
|
576
|
+
width: number;
|
|
577
|
+
height: number;
|
|
578
|
+
};
|
|
579
|
+
/**
|
|
580
|
+
* Set items per row for grid and masonry views
|
|
581
|
+
*/
|
|
582
|
+
setItemsPerRow(itemsPerRow: number | 'auto'): void;
|
|
583
|
+
/**
|
|
584
|
+
* Set debug visualization mode
|
|
585
|
+
*/
|
|
586
|
+
setDebugVisualization(enabled: boolean): void;
|
|
587
|
+
setCompactMode(compact: boolean): void;
|
|
588
|
+
toggleCheckboxes(): void;
|
|
589
|
+
setShowCheckboxes(show: boolean): void;
|
|
590
|
+
setColumnVisibility(column: 'type' | 'modified' | 'size', visible: boolean): void;
|
|
591
|
+
get detailsGridTemplateColumns(): string;
|
|
592
|
+
/**
|
|
593
|
+
* Generate random aspect ratio for Pinterest-like variety
|
|
594
|
+
*/
|
|
595
|
+
/**
|
|
596
|
+
* Deterministic aspect ratio based on item id (stable across re-renders).
|
|
597
|
+
* Uses a simple hash to pick from predefined ratios.
|
|
598
|
+
*/
|
|
599
|
+
private generateDeterministicAspectRatio;
|
|
600
|
+
/**
|
|
601
|
+
* Get effective items per row based on view and container width
|
|
602
|
+
*/
|
|
603
|
+
getEffectiveItemsPerRow(containerWidth?: number): number;
|
|
604
|
+
/**
|
|
605
|
+
* Set focused item
|
|
606
|
+
*/
|
|
607
|
+
setFocusedItem(itemId: string | null): void;
|
|
608
|
+
/**
|
|
609
|
+
* Focus next item
|
|
610
|
+
*/
|
|
611
|
+
focusNext(): boolean;
|
|
612
|
+
/**
|
|
613
|
+
* Focus previous item
|
|
614
|
+
*/
|
|
615
|
+
focusPrevious(): boolean;
|
|
616
|
+
/**
|
|
617
|
+
* Focus the first item in the list
|
|
618
|
+
*/
|
|
619
|
+
focusFirst(): boolean;
|
|
620
|
+
/**
|
|
621
|
+
* Focus the last item in the list
|
|
622
|
+
*/
|
|
623
|
+
focusLast(): boolean;
|
|
624
|
+
/**
|
|
625
|
+
* Handle keyboard events for list navigation.
|
|
626
|
+
* Can be used directly via onKeyDown on a container element,
|
|
627
|
+
* or the useListKeyboard hook can be used for automatic attachment.
|
|
628
|
+
*
|
|
629
|
+
* - ArrowUp/ArrowDown: navigate between items
|
|
630
|
+
* - Home/End: jump to first/last item
|
|
631
|
+
* - Enter: open focused item (navigate into folder or open file)
|
|
632
|
+
* - Space: toggle selection of focused item
|
|
633
|
+
* - Escape: clear selection, or navigate up one directory level if nothing selected
|
|
634
|
+
* - Ctrl+A: select all items
|
|
635
|
+
*/
|
|
636
|
+
handleKeyDown(event: KeyboardEvent): void;
|
|
637
|
+
/**
|
|
638
|
+
* Get the index of the currently focused item, defaulting to 0
|
|
639
|
+
*/
|
|
640
|
+
private getFocusedIndex;
|
|
641
|
+
/**
|
|
642
|
+
* Navigate to a specific item index, updating focus, selection, and scroll
|
|
643
|
+
*/
|
|
644
|
+
private navigateToIndex;
|
|
645
|
+
/**
|
|
646
|
+
* Check if an item can be dragged
|
|
647
|
+
*/
|
|
648
|
+
canDragItem(item: ListItemData): boolean;
|
|
649
|
+
/**
|
|
650
|
+
* Check if items can be dropped on a target
|
|
651
|
+
*/
|
|
652
|
+
canDropItems(draggedItems: ListItemData[], targetItem: ListItemData | null, position: 'before' | 'after' | 'inside'): boolean;
|
|
653
|
+
/**
|
|
654
|
+
* Start drag operation
|
|
655
|
+
*/
|
|
656
|
+
startDrag(items: ListItemData[], event: DragEvent): void;
|
|
657
|
+
/**
|
|
658
|
+
* Handle drag over item
|
|
659
|
+
*/
|
|
660
|
+
setDragOver(itemId: string | null, position: 'before' | 'after' | 'inside' | null): void;
|
|
661
|
+
/**
|
|
662
|
+
* Handle drop operation
|
|
663
|
+
*/
|
|
664
|
+
handleDrop(targetItem: ListItemData | null, position: 'before' | 'after' | 'inside', event: DragEvent): boolean;
|
|
665
|
+
/**
|
|
666
|
+
* End drag operation
|
|
667
|
+
*/
|
|
668
|
+
endDrag(success: boolean): void;
|
|
669
|
+
/**
|
|
670
|
+
* Update viewport range for virtualization and trigger dynamic loading
|
|
671
|
+
*/
|
|
672
|
+
updateViewportRange(start: number, end: number): void;
|
|
673
|
+
/**
|
|
674
|
+
* Load items that are visible in the current viewport
|
|
675
|
+
*/
|
|
676
|
+
private loadVisibleItems;
|
|
677
|
+
/**
|
|
678
|
+
* Update scroll position
|
|
679
|
+
*/
|
|
680
|
+
updateScrollPosition(position: number): void;
|
|
681
|
+
/**
|
|
682
|
+
* Update container size
|
|
683
|
+
*/
|
|
684
|
+
updateContainerSize(width: number, height: number): void;
|
|
685
|
+
/**
|
|
686
|
+
* Update layout calculators with current settings
|
|
687
|
+
*/
|
|
688
|
+
private updateLayoutCalculators;
|
|
689
|
+
/**
|
|
690
|
+
* Get grid layout for current items
|
|
691
|
+
*/
|
|
692
|
+
getGridLayout(): {
|
|
693
|
+
layout: GridItemLayout[];
|
|
694
|
+
totalHeight: number;
|
|
695
|
+
} | null;
|
|
696
|
+
/**
|
|
697
|
+
* Check whether an item is an actual image that should get variable height
|
|
698
|
+
* in masonry layout. Non-image items (folders, docs, code files) get uniform height.
|
|
699
|
+
*/
|
|
700
|
+
private isImageItem;
|
|
701
|
+
/**
|
|
702
|
+
* Get vertical masonry layout for current items
|
|
703
|
+
*/
|
|
704
|
+
getVerticalMasonryLayout(): {
|
|
705
|
+
layout: MasonryItemPosition[];
|
|
706
|
+
totalHeight: number;
|
|
707
|
+
} | null;
|
|
708
|
+
/**
|
|
709
|
+
* Get horizontal masonry layout for current items
|
|
710
|
+
*/
|
|
711
|
+
getHorizontalMasonryLayout(): {
|
|
712
|
+
layout: MasonryItemPosition[];
|
|
713
|
+
totalHeight: number;
|
|
714
|
+
} | null;
|
|
715
|
+
/**
|
|
716
|
+
* Get visible items for virtualization
|
|
717
|
+
*/
|
|
718
|
+
getVisibleGridItems(scrollTop: number, viewportHeight: number): GridItemLayout[];
|
|
719
|
+
/**
|
|
720
|
+
* Get visible vertical masonry items for virtualization
|
|
721
|
+
*/
|
|
722
|
+
getVisibleVerticalMasonryItems(scrollTop: number, viewportHeight: number): MasonryItemPosition[];
|
|
723
|
+
/**
|
|
724
|
+
* Get visible horizontal masonry items for virtualization
|
|
725
|
+
*/
|
|
726
|
+
getVisibleHorizontalMasonryItems(scrollTop: number, viewportHeight: number): MasonryItemPosition[];
|
|
727
|
+
/**
|
|
728
|
+
* Get visible masonry items for virtualization (unified method)
|
|
729
|
+
*/
|
|
730
|
+
getVisibleMasonryItems(scrollTop: number, viewportHeight: number, isHorizontal?: boolean, overscan?: number): MasonryItemPosition[];
|
|
731
|
+
/**
|
|
732
|
+
* Ensure item is visible (scroll to item)
|
|
733
|
+
*/
|
|
734
|
+
ensureItemVisible(itemId: string): boolean;
|
|
735
|
+
clearScrollToItem(): void;
|
|
736
|
+
/**
|
|
737
|
+
* Get item by ID
|
|
738
|
+
*/
|
|
739
|
+
getItem(itemId: string): ListItemData | undefined;
|
|
740
|
+
/**
|
|
741
|
+
* Get item index
|
|
742
|
+
*/
|
|
743
|
+
getItemIndex(itemId: string): number;
|
|
744
|
+
/**
|
|
745
|
+
* Resolve thumbnail URL for an item via provider cache.
|
|
746
|
+
* Returns blob URL when ready, undefined while loading.
|
|
747
|
+
* MobX observer components re-render when the URL becomes available.
|
|
748
|
+
*/
|
|
749
|
+
resolveThumbnailUrl(item: ListItemData): string | undefined;
|
|
750
|
+
} //#endregion
|
|
751
|
+
//#region src/list/components/ListItem.d.ts
|
|
752
|
+
|
|
753
|
+
//# sourceMappingURL=ListItemsModel.d.ts.map
|
|
754
|
+
interface ListItemProps {
|
|
755
|
+
item: ListItemData;
|
|
756
|
+
index: number;
|
|
757
|
+
totalItems: number;
|
|
758
|
+
viewType: ListViewType$1;
|
|
759
|
+
provider?: ListItemsProvider;
|
|
760
|
+
model?: ListItemsModel;
|
|
761
|
+
itemWidth?: number;
|
|
762
|
+
itemHeight?: number;
|
|
763
|
+
thumbnailSize?: number;
|
|
764
|
+
isSelected?: boolean;
|
|
765
|
+
isFocused?: boolean;
|
|
766
|
+
isDraggedOver?: boolean;
|
|
767
|
+
dragOverPosition?: 'before' | 'after' | 'inside' | null;
|
|
768
|
+
canDrag?: boolean;
|
|
769
|
+
onClick?: (item: ListItemData, event: React$1.MouseEvent) => void;
|
|
770
|
+
onDoubleClick?: (item: ListItemData, event: React$1.MouseEvent) => void;
|
|
771
|
+
onContextMenu?: (item: ListItemData, event: React$1.MouseEvent) => void;
|
|
772
|
+
onDragStart?: (item: ListItemData, event: React$1.DragEvent) => void;
|
|
773
|
+
onDragOver?: (item: ListItemData, event: React$1.DragEvent) => void;
|
|
774
|
+
onDragLeave?: (item: ListItemData, event: React$1.DragEvent) => void;
|
|
775
|
+
onDrop?: (item: ListItemData, event: React$1.DragEvent) => void;
|
|
776
|
+
}
|
|
777
|
+
declare const ListItem: React$1.FunctionComponent<ListItemProps>;
|
|
778
|
+
|
|
779
|
+
//#endregion
|
|
780
|
+
//#region src/list/components/ListItems.d.ts
|
|
781
|
+
//# sourceMappingURL=ListItem.d.ts.map
|
|
782
|
+
interface ListItemsProps {
|
|
783
|
+
model: ListItemsModel;
|
|
784
|
+
className?: string;
|
|
785
|
+
style?: React$1.CSSProperties;
|
|
786
|
+
height?: number;
|
|
787
|
+
width?: number;
|
|
788
|
+
enableVirtualization?: boolean;
|
|
789
|
+
enableKeyboardNavigation?: boolean;
|
|
790
|
+
}
|
|
791
|
+
declare const ListItems: React$1.FunctionComponent<ListItemsProps>;
|
|
792
|
+
|
|
793
|
+
//#endregion
|
|
794
|
+
//#region src/list/components/ListContextMenu.d.ts
|
|
795
|
+
//# sourceMappingURL=ListItems.d.ts.map
|
|
796
|
+
interface ListContextMenuProps {
|
|
797
|
+
isOpen: boolean;
|
|
798
|
+
position: {
|
|
799
|
+
x: number;
|
|
800
|
+
y: number;
|
|
801
|
+
};
|
|
802
|
+
items: ListItemData[];
|
|
803
|
+
provider: ListItemsProvider;
|
|
804
|
+
onClose: () => void;
|
|
805
|
+
/** Extra menu items to prepend before provider items */
|
|
806
|
+
extraMenuItems?: ListContextMenuItem[];
|
|
807
|
+
/** Handler for extra menu item actions (called instead of provider.onContextMenuAction) */
|
|
808
|
+
onExtraMenuAction?: (actionId: string, items: ListItemData[]) => void;
|
|
809
|
+
}
|
|
810
|
+
declare const ListContextMenu: React$1.FunctionComponent<ListContextMenuProps>;
|
|
811
|
+
|
|
812
|
+
//#endregion
|
|
813
|
+
//#region src/list/components/ViewTypeSelector.d.ts
|
|
814
|
+
//# sourceMappingURL=ListContextMenu.d.ts.map
|
|
815
|
+
interface ViewTypeSelectorProps {
|
|
816
|
+
viewTypes: ListViewType$1[];
|
|
817
|
+
currentViewType: ListViewType$1;
|
|
818
|
+
onViewTypeChange: (viewType: ListViewType$1) => void;
|
|
819
|
+
variant?: 'buttons' | 'tabs' | 'dropdown';
|
|
820
|
+
size?: 'sm' | 'md' | 'lg';
|
|
821
|
+
className?: string;
|
|
822
|
+
}
|
|
823
|
+
declare const ViewTypeSelector: React$1.NamedExoticComponent<ViewTypeSelectorProps>;
|
|
824
|
+
|
|
825
|
+
//#endregion
|
|
826
|
+
//#region src/list/components/SearchFilter.d.ts
|
|
827
|
+
//# sourceMappingURL=ViewTypeSelector.d.ts.map
|
|
828
|
+
interface SearchFilterProps {
|
|
829
|
+
model: ListItemsModel;
|
|
830
|
+
placeholder?: string;
|
|
831
|
+
className?: string;
|
|
832
|
+
}
|
|
833
|
+
declare const SearchFilter: React$1.FunctionComponent<SearchFilterProps>;
|
|
834
|
+
|
|
835
|
+
//#endregion
|
|
836
|
+
//#region src/list/components/VirtualizedList.d.ts
|
|
837
|
+
//# sourceMappingURL=SearchFilter.d.ts.map
|
|
838
|
+
interface VirtualizedListProps {
|
|
839
|
+
model: ListItemsModel;
|
|
840
|
+
height: number;
|
|
841
|
+
width?: number;
|
|
842
|
+
className?: string;
|
|
843
|
+
overscanCount?: number;
|
|
844
|
+
}
|
|
845
|
+
declare const VirtualizedList: React$1.FunctionComponent<VirtualizedListProps>;
|
|
846
|
+
|
|
847
|
+
//#endregion
|
|
848
|
+
//#region src/list/components/VirtualizedGrid.d.ts
|
|
849
|
+
//# sourceMappingURL=VirtualizedList.d.ts.map
|
|
850
|
+
interface VirtualizedGridProps {
|
|
851
|
+
model: ListItemsModel;
|
|
852
|
+
height: number;
|
|
853
|
+
width: number;
|
|
854
|
+
className?: string;
|
|
855
|
+
overscanCount?: number;
|
|
856
|
+
}
|
|
857
|
+
declare const VirtualizedGrid: React$1.FunctionComponent<VirtualizedGridProps>;
|
|
858
|
+
|
|
859
|
+
//#endregion
|
|
860
|
+
//#region src/list/components/MasonryView.d.ts
|
|
861
|
+
//# sourceMappingURL=VirtualizedGrid.d.ts.map
|
|
862
|
+
interface MasonryViewProps {
|
|
863
|
+
model: ListItemsModel;
|
|
864
|
+
items: ListItemData[];
|
|
865
|
+
containerWidth: number;
|
|
866
|
+
containerHeight: number;
|
|
867
|
+
isHorizontal?: boolean;
|
|
868
|
+
}
|
|
869
|
+
declare const MasonryView: React$1.FC<MasonryViewProps>;
|
|
870
|
+
|
|
871
|
+
//#endregion
|
|
872
|
+
//#region src/list/components/ViewSizeControls.d.ts
|
|
873
|
+
interface ViewSizeControlsProps {
|
|
874
|
+
model: ListItemsModel;
|
|
875
|
+
className?: string;
|
|
876
|
+
showSizePresets?: boolean;
|
|
877
|
+
showCustomSliders?: boolean;
|
|
878
|
+
showDebugToggle?: boolean;
|
|
879
|
+
}
|
|
880
|
+
declare const ViewSizeControls: React$1.FunctionComponent<ViewSizeControlsProps>;
|
|
881
|
+
|
|
882
|
+
//#endregion
|
|
883
|
+
//#region src/list/models/TreemapModel.d.ts
|
|
884
|
+
//# sourceMappingURL=ViewSizeControls.d.ts.map
|
|
885
|
+
type ColorScheme = 'extension' | 'size' | 'type';
|
|
886
|
+
/**
|
|
887
|
+
* Get the RGBA color for a file extension (used by the cushion treemap renderer).
|
|
888
|
+
*/
|
|
889
|
+
|
|
890
|
+
/**
|
|
891
|
+
* Phase 1 TreemapModel — works with items already loaded in ListItemsModel.
|
|
892
|
+
*
|
|
893
|
+
* No worker scanning, no async. Computes layout from the flat items list,
|
|
894
|
+
* using file `size` for proportional rectangles (directories get size=1).
|
|
895
|
+
*/
|
|
896
|
+
declare class TreemapModel {
|
|
897
|
+
/** Current zoom path within the treemap */
|
|
898
|
+
zoomPath: string;
|
|
899
|
+
/** Path of the hovered tile (for tooltip) */
|
|
900
|
+
hoveredPath: string | null;
|
|
901
|
+
/** Active color scheme */
|
|
902
|
+
colorScheme: ColorScheme;
|
|
903
|
+
/** Whether to show file name labels on tiles */
|
|
904
|
+
showLabels: boolean;
|
|
905
|
+
/** Whether to show size labels on tiles */
|
|
906
|
+
showSizes: boolean;
|
|
907
|
+
/** Highlighted extension category label (e.g. 'JS/TS') for legend filtering */
|
|
908
|
+
highlightedExtension: string | null;
|
|
909
|
+
constructor();
|
|
910
|
+
zoomIn(path: string): void;
|
|
911
|
+
zoomOut(): void;
|
|
912
|
+
resetZoom(): void;
|
|
913
|
+
setHoveredPath(path: string | null): void;
|
|
914
|
+
setColorScheme(scheme: ColorScheme): void;
|
|
915
|
+
toggleLabels(): void;
|
|
916
|
+
toggleSizes(): void;
|
|
917
|
+
setHighlightedExtension(ext: string | null): void;
|
|
918
|
+
get breadcrumbs(): Array<{
|
|
919
|
+
name: string;
|
|
920
|
+
path: string;
|
|
921
|
+
}>;
|
|
922
|
+
/**
|
|
923
|
+
* Get the RGBA color for a node based on the current color scheme.
|
|
924
|
+
*/
|
|
925
|
+
getNodeColor(item: ListItemData): [number, number, number, number];
|
|
926
|
+
}
|
|
927
|
+
|
|
928
|
+
//#endregion
|
|
929
|
+
//#region src/list/components/TreemapView.d.ts
|
|
930
|
+
//# sourceMappingURL=TreemapModel.d.ts.map
|
|
931
|
+
/** Node metadata for overlay tiles */
|
|
932
|
+
interface TileInfo {
|
|
933
|
+
path: string;
|
|
934
|
+
name: string;
|
|
935
|
+
size?: number;
|
|
936
|
+
isDirectory: boolean;
|
|
937
|
+
}
|
|
938
|
+
interface TreemapViewProps {
|
|
939
|
+
model: ListItemsModel;
|
|
940
|
+
treemapModel: TreemapModel;
|
|
941
|
+
width: number;
|
|
942
|
+
height: number;
|
|
943
|
+
className?: string;
|
|
944
|
+
onTileContextMenu?: (info: TileInfo, event: React$1.MouseEvent) => void;
|
|
945
|
+
onEmptyContextMenu?: (event: React$1.MouseEvent) => void;
|
|
946
|
+
}
|
|
947
|
+
/**
|
|
948
|
+
* TreemapView — renders items from ListItemsModel as a cushion-shaded treemap.
|
|
949
|
+
*
|
|
950
|
+
* Uses @cushiontreemap/core to render to a canvas, with transparent overlaid
|
|
951
|
+
* divs for click/hover interactivity.
|
|
952
|
+
*
|
|
953
|
+
* If the provider supports loadTreemapData(), shows recursive subdirectory content.
|
|
954
|
+
*/
|
|
955
|
+
declare const TreemapView: React$1.FunctionComponent<TreemapViewProps>;
|
|
956
|
+
|
|
957
|
+
//#endregion
|
|
958
|
+
//#region src/list/components/CalculatedGridView.d.ts
|
|
959
|
+
//# sourceMappingURL=TreemapView.d.ts.map
|
|
960
|
+
interface CalculatedGridViewProps {
|
|
961
|
+
model: ListItemsModel;
|
|
962
|
+
className?: string;
|
|
963
|
+
height?: number;
|
|
964
|
+
width?: number;
|
|
965
|
+
enableVirtualization?: boolean;
|
|
966
|
+
onItemClick?: (item: ListItemData, event: React$1.MouseEvent) => void;
|
|
967
|
+
onItemDoubleClick?: (item: ListItemData, event: React$1.MouseEvent) => void;
|
|
968
|
+
onItemContextMenu?: (item: ListItemData, event: React$1.MouseEvent) => void;
|
|
969
|
+
onItemDragStart?: (item: ListItemData, event: React$1.DragEvent) => void;
|
|
970
|
+
onItemDragOver?: (item: ListItemData, event: React$1.DragEvent) => void;
|
|
971
|
+
onItemDragLeave?: (item: ListItemData, event: React$1.DragEvent) => void;
|
|
972
|
+
onItemDrop?: (item: ListItemData, event: React$1.DragEvent) => void;
|
|
973
|
+
}
|
|
974
|
+
declare const CalculatedGridView: React$1.FunctionComponent<CalculatedGridViewProps>;
|
|
975
|
+
|
|
976
|
+
//#endregion
|
|
977
|
+
//#region src/list/components/shared/ListLoader.d.ts
|
|
978
|
+
//# sourceMappingURL=CalculatedGridView.d.ts.map
|
|
979
|
+
interface ListLoaderProps {
|
|
980
|
+
viewType: ListViewType;
|
|
981
|
+
itemCount?: number;
|
|
982
|
+
itemWidth?: number;
|
|
983
|
+
itemHeight?: number;
|
|
984
|
+
className?: string;
|
|
985
|
+
}
|
|
986
|
+
declare const ListLoader: React$1.FunctionComponent<ListLoaderProps>;
|
|
987
|
+
|
|
988
|
+
//#endregion
|
|
989
|
+
//#region src/list/components/shared/LoadingIndicator.d.ts
|
|
990
|
+
//# sourceMappingURL=ListLoader.d.ts.map
|
|
991
|
+
interface LoadingIndicatorProps {
|
|
992
|
+
size?: 'small' | 'medium' | 'large';
|
|
993
|
+
message?: string;
|
|
994
|
+
className?: string;
|
|
995
|
+
showSpinner?: boolean;
|
|
996
|
+
}
|
|
997
|
+
interface InlineLoadingProps {
|
|
998
|
+
className?: string;
|
|
999
|
+
}
|
|
1000
|
+
interface LoadingProgressProps {
|
|
1001
|
+
progress: number;
|
|
1002
|
+
message?: string;
|
|
1003
|
+
className?: string;
|
|
1004
|
+
}
|
|
1005
|
+
declare const LoadingIndicator: React$1.FunctionComponent<LoadingIndicatorProps>;
|
|
1006
|
+
declare const InlineLoading: React$1.FunctionComponent<InlineLoadingProps>;
|
|
1007
|
+
declare const LoadingProgress: React$1.FunctionComponent<LoadingProgressProps>;
|
|
1008
|
+
|
|
1009
|
+
//#endregion
|
|
1010
|
+
//#region src/list/components/shared/ErrorBoundary.d.ts
|
|
1011
|
+
//# sourceMappingURL=LoadingIndicator.d.ts.map
|
|
1012
|
+
interface ErrorBoundaryProps {
|
|
1013
|
+
children: ReactNode;
|
|
1014
|
+
fallback?: (error: Error, errorInfo: ErrorInfo) => ReactNode;
|
|
1015
|
+
onError?: (error: Error, errorInfo: ErrorInfo) => void;
|
|
1016
|
+
className?: string;
|
|
1017
|
+
}
|
|
1018
|
+
interface ErrorBoundaryState {
|
|
1019
|
+
hasError: boolean;
|
|
1020
|
+
error: Error | null;
|
|
1021
|
+
errorInfo: ErrorInfo | null;
|
|
1022
|
+
}
|
|
1023
|
+
declare class ListErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
|
|
1024
|
+
constructor(props: ErrorBoundaryProps);
|
|
1025
|
+
static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState>;
|
|
1026
|
+
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
|
|
1027
|
+
handleRetry: () => void;
|
|
1028
|
+
render(): string | number | bigint | boolean | react_jsx_runtime14.JSX.Element | Iterable<React$1.ReactNode> | Promise<string | number | bigint | boolean | React$1.ReactPortal | React$1.ReactElement<unknown, string | React$1.JSXElementConstructor<any>> | Iterable<React$1.ReactNode> | null | undefined> | null | undefined;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
//#endregion
|
|
1032
|
+
//#region src/list/components/shared/ErrorDisplay.d.ts
|
|
1033
|
+
//# sourceMappingURL=ErrorBoundary.d.ts.map
|
|
1034
|
+
interface ErrorDisplayProps {
|
|
1035
|
+
error: Error | string;
|
|
1036
|
+
title?: string;
|
|
1037
|
+
message?: string;
|
|
1038
|
+
onRetry?: () => void;
|
|
1039
|
+
onDismiss?: () => void;
|
|
1040
|
+
className?: string;
|
|
1041
|
+
size?: 'small' | 'medium' | 'large';
|
|
1042
|
+
variant?: 'default' | 'destructive' | 'warning';
|
|
1043
|
+
}
|
|
1044
|
+
interface NetworkErrorProps {
|
|
1045
|
+
onRetry?: () => void;
|
|
1046
|
+
className?: string;
|
|
1047
|
+
}
|
|
1048
|
+
interface LoadErrorProps {
|
|
1049
|
+
error: Error | string;
|
|
1050
|
+
onRetry?: () => void;
|
|
1051
|
+
className?: string;
|
|
1052
|
+
}
|
|
1053
|
+
declare const ErrorDisplay: React$1.FunctionComponent<ErrorDisplayProps>;
|
|
1054
|
+
declare const NetworkError: React$1.FunctionComponent<NetworkErrorProps>;
|
|
1055
|
+
declare const LoadError: React$1.FunctionComponent<LoadErrorProps>;
|
|
1056
|
+
|
|
1057
|
+
//#endregion
|
|
1058
|
+
//#region src/list/components/shared/EmptyState.d.ts
|
|
1059
|
+
//# sourceMappingURL=ErrorDisplay.d.ts.map
|
|
1060
|
+
interface EmptyStateProps {
|
|
1061
|
+
title?: string;
|
|
1062
|
+
message?: string;
|
|
1063
|
+
icon?: React$1.ReactNode;
|
|
1064
|
+
actions?: React$1.ReactNode;
|
|
1065
|
+
className?: string;
|
|
1066
|
+
size?: 'small' | 'medium' | 'large';
|
|
1067
|
+
}
|
|
1068
|
+
interface NoItemsProps {
|
|
1069
|
+
onRefresh?: () => void;
|
|
1070
|
+
className?: string;
|
|
1071
|
+
}
|
|
1072
|
+
interface NoSearchResultsProps {
|
|
1073
|
+
searchQuery?: string;
|
|
1074
|
+
onClearSearch?: () => void;
|
|
1075
|
+
className?: string;
|
|
1076
|
+
}
|
|
1077
|
+
interface NoSelectionProps {
|
|
1078
|
+
message?: string;
|
|
1079
|
+
className?: string;
|
|
1080
|
+
}
|
|
1081
|
+
declare const EmptyState: React$1.FunctionComponent<EmptyStateProps>;
|
|
1082
|
+
declare const NoItems: React$1.FunctionComponent<NoItemsProps>;
|
|
1083
|
+
declare const NoSearchResults: React$1.FunctionComponent<NoSearchResultsProps>;
|
|
1084
|
+
declare const NoSelection: React$1.FunctionComponent<NoSelectionProps>;
|
|
1085
|
+
|
|
1086
|
+
//#endregion
|
|
1087
|
+
//#region src/list/providers/TestListProvider.d.ts
|
|
1088
|
+
//# sourceMappingURL=EmptyState.d.ts.map
|
|
1089
|
+
declare class TestListProvider implements ListItemsProvider {
|
|
1090
|
+
readonly id = "test-list-provider";
|
|
1091
|
+
readonly name = "Test List Provider";
|
|
1092
|
+
readonly isMultiSelectEnabled = true;
|
|
1093
|
+
readonly isVirtualizationEnabled = true;
|
|
1094
|
+
readonly isDragDropEnabled = true;
|
|
1095
|
+
readonly supportedViewTypes: ListViewType[];
|
|
1096
|
+
private items;
|
|
1097
|
+
private listener?;
|
|
1098
|
+
constructor();
|
|
1099
|
+
private generateLargeDataset;
|
|
1100
|
+
private getIconForType;
|
|
1101
|
+
/**
|
|
1102
|
+
* Get custom icon for an item based on file type and extension
|
|
1103
|
+
*/
|
|
1104
|
+
getItemIcon(item: ListItemData): string | React$1.ComponentType<any>;
|
|
1105
|
+
loadItems(options?: ListLoadOptions): Promise<ListLoadResult>;
|
|
1106
|
+
getItemCount(): Promise<number>;
|
|
1107
|
+
loadItemRange(start: number, end: number): Promise<ListLoadResult>;
|
|
1108
|
+
refresh(): Promise<ListLoadResult>;
|
|
1109
|
+
getItemHeight(viewType: ListViewType): number;
|
|
1110
|
+
getItemWidth(viewType: ListViewType): number;
|
|
1111
|
+
getVirtualizationConfig(): VirtualizationConfig;
|
|
1112
|
+
onSelectionChange(selectionInfo: ListSelectionInfo): void;
|
|
1113
|
+
onViewTypeChange(viewType: ListViewType): void;
|
|
1114
|
+
onItemDoubleClick(item: ListItemData): void;
|
|
1115
|
+
getItemContextMenu(item: ListItemData): ListContextMenuItem[];
|
|
1116
|
+
getMultiItemContextMenu(items: ListItemData[]): ListContextMenuItem[];
|
|
1117
|
+
onContextMenuAction(menuItemId: string, items: ListItemData[]): void;
|
|
1118
|
+
canDragItem(item: ListItemData): boolean;
|
|
1119
|
+
canDropItems(draggedItems: ListItemData[], targetItem: ListItemData | null, position: 'before' | 'after' | 'inside'): boolean;
|
|
1120
|
+
onDragStart(draggedItems: ListItemData[], event: DragEvent): void;
|
|
1121
|
+
onDrop(dragDropInfo: ListDragDropInfo): void;
|
|
1122
|
+
onDragEnd(draggedItems: ListItemData[], success: boolean): void;
|
|
1123
|
+
addListener(listener: ListItemsProviderListener): void;
|
|
1124
|
+
removeListener(listener: ListItemsProviderListener): void;
|
|
1125
|
+
/**
|
|
1126
|
+
* Add a new mock item (useful for testing dynamic updates)
|
|
1127
|
+
*/
|
|
1128
|
+
addMockItem(item: Partial<ListItemData>): void;
|
|
1129
|
+
/**
|
|
1130
|
+
* Remove an item by ID (useful for testing dynamic updates)
|
|
1131
|
+
*/
|
|
1132
|
+
removeMockItem(itemId: string): void;
|
|
1133
|
+
/**
|
|
1134
|
+
* Update an existing item (useful for testing dynamic updates)
|
|
1135
|
+
*/
|
|
1136
|
+
updateMockItem(itemId: string, updates: Partial<ListItemData>): void;
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1139
|
+
//#endregion
|
|
1140
|
+
//#region src/list/utils/ListKeyboard.d.ts
|
|
1141
|
+
//# sourceMappingURL=TestListProvider.d.ts.map
|
|
1142
|
+
interface KeyboardNavigationOptions {
|
|
1143
|
+
enableArrowKeys?: boolean;
|
|
1144
|
+
enableHomeEnd?: boolean;
|
|
1145
|
+
enableSpaceEnter?: boolean;
|
|
1146
|
+
enableSelectAll?: boolean;
|
|
1147
|
+
enableEscape?: boolean;
|
|
1148
|
+
enablePageUpDown?: boolean;
|
|
1149
|
+
}
|
|
1150
|
+
declare class ListKeyboardHandler {
|
|
1151
|
+
private model;
|
|
1152
|
+
private options;
|
|
1153
|
+
private isAttached;
|
|
1154
|
+
constructor(model: ListItemsModel, options?: KeyboardNavigationOptions);
|
|
1155
|
+
/**
|
|
1156
|
+
* Attach keyboard event listeners
|
|
1157
|
+
*/
|
|
1158
|
+
attach(element?: HTMLElement): void;
|
|
1159
|
+
/**
|
|
1160
|
+
* Detach keyboard event listeners
|
|
1161
|
+
*/
|
|
1162
|
+
detach(element?: HTMLElement): void;
|
|
1163
|
+
/**
|
|
1164
|
+
* Main keyboard event handler
|
|
1165
|
+
*/
|
|
1166
|
+
private handleKeyDown;
|
|
1167
|
+
/**
|
|
1168
|
+
* Handle arrow up navigation
|
|
1169
|
+
*/
|
|
1170
|
+
private handleArrowUp;
|
|
1171
|
+
/**
|
|
1172
|
+
* Handle arrow down navigation
|
|
1173
|
+
*/
|
|
1174
|
+
private handleArrowDown;
|
|
1175
|
+
/**
|
|
1176
|
+
* Handle arrow left navigation (grid view)
|
|
1177
|
+
*/
|
|
1178
|
+
private handleArrowLeft;
|
|
1179
|
+
/**
|
|
1180
|
+
* Handle arrow right navigation (grid view)
|
|
1181
|
+
*/
|
|
1182
|
+
private handleArrowRight;
|
|
1183
|
+
/**
|
|
1184
|
+
* Handle list view arrow up
|
|
1185
|
+
*/
|
|
1186
|
+
private handleListArrowUp;
|
|
1187
|
+
/**
|
|
1188
|
+
* Handle list view arrow down
|
|
1189
|
+
*/
|
|
1190
|
+
private handleListArrowDown;
|
|
1191
|
+
/**
|
|
1192
|
+
* Handle grid view arrow up (move up by grid columns)
|
|
1193
|
+
*/
|
|
1194
|
+
private handleGridArrowUp;
|
|
1195
|
+
/**
|
|
1196
|
+
* Handle grid view arrow down (move down by grid columns)
|
|
1197
|
+
*/
|
|
1198
|
+
private handleGridArrowDown;
|
|
1199
|
+
/**
|
|
1200
|
+
* Handle Home key - go to first item
|
|
1201
|
+
*/
|
|
1202
|
+
private handleHome;
|
|
1203
|
+
/**
|
|
1204
|
+
* Handle End key - go to last item
|
|
1205
|
+
*/
|
|
1206
|
+
private handleEnd;
|
|
1207
|
+
/**
|
|
1208
|
+
* Handle Page Up - move up by visible page size
|
|
1209
|
+
*/
|
|
1210
|
+
private handlePageUp;
|
|
1211
|
+
/**
|
|
1212
|
+
* Handle Page Down - move down by visible page size
|
|
1213
|
+
*/
|
|
1214
|
+
private handlePageDown;
|
|
1215
|
+
/**
|
|
1216
|
+
* Handle Space key - toggle selection of focused item
|
|
1217
|
+
*/
|
|
1218
|
+
private handleSpace;
|
|
1219
|
+
/**
|
|
1220
|
+
* Handle Enter key - activate focused item
|
|
1221
|
+
*/
|
|
1222
|
+
private handleEnter;
|
|
1223
|
+
/**
|
|
1224
|
+
* Handle Ctrl+A - select all items
|
|
1225
|
+
*/
|
|
1226
|
+
private handleSelectAll;
|
|
1227
|
+
/**
|
|
1228
|
+
* Handle Escape - clear selection first, then navigate up one directory
|
|
1229
|
+
*/
|
|
1230
|
+
private handleEscape;
|
|
1231
|
+
/**
|
|
1232
|
+
* Navigate to specific index with optional range selection
|
|
1233
|
+
*/
|
|
1234
|
+
private navigateToIndex;
|
|
1235
|
+
/**
|
|
1236
|
+
* Get current focused item index
|
|
1237
|
+
*/
|
|
1238
|
+
private getCurrentFocusedIndex;
|
|
1239
|
+
/**
|
|
1240
|
+
* Get currently focused item
|
|
1241
|
+
*/
|
|
1242
|
+
private getFocusedItem;
|
|
1243
|
+
/**
|
|
1244
|
+
* Get number of columns per row in grid view
|
|
1245
|
+
*/
|
|
1246
|
+
private getGridColumnsPerRow;
|
|
1247
|
+
/**
|
|
1248
|
+
* Get page size for page up/down navigation
|
|
1249
|
+
*/
|
|
1250
|
+
private getPageSize;
|
|
1251
|
+
}
|
|
1252
|
+
/**
|
|
1253
|
+
* Hook for using keyboard navigation in React components
|
|
1254
|
+
*/
|
|
1255
|
+
declare const useListKeyboard: (model: ListItemsModel, options?: KeyboardNavigationOptions, containerRef?: React$1.RefObject<HTMLElement | HTMLDivElement | null>) => ListKeyboardHandler;
|
|
1256
|
+
|
|
1257
|
+
//#endregion
|
|
1258
|
+
//#region src/list/utils/ListAccessibility.d.ts
|
|
1259
|
+
//# sourceMappingURL=ListKeyboard.d.ts.map
|
|
1260
|
+
interface AccessibilityConfig {
|
|
1261
|
+
role?: string;
|
|
1262
|
+
ariaLabel?: string;
|
|
1263
|
+
ariaLabelledBy?: string;
|
|
1264
|
+
ariaDescribedBy?: string;
|
|
1265
|
+
ariaMultiSelectable?: boolean;
|
|
1266
|
+
ariaOrientation?: 'horizontal' | 'vertical';
|
|
1267
|
+
tabIndex?: number;
|
|
1268
|
+
}
|
|
1269
|
+
interface ItemAccessibilityConfig {
|
|
1270
|
+
role?: string;
|
|
1271
|
+
ariaLabel?: string;
|
|
1272
|
+
ariaSelected?: boolean;
|
|
1273
|
+
ariaExpanded?: boolean;
|
|
1274
|
+
ariaLevel?: number;
|
|
1275
|
+
ariaSetSize?: number;
|
|
1276
|
+
ariaPosInSet?: number;
|
|
1277
|
+
tabIndex?: number;
|
|
1278
|
+
}
|
|
1279
|
+
declare function getListAccessibilityProps(config: {
|
|
1280
|
+
viewType: string;
|
|
1281
|
+
isMultiSelect: boolean;
|
|
1282
|
+
totalItems: number;
|
|
1283
|
+
selectedCount: number;
|
|
1284
|
+
label?: string;
|
|
1285
|
+
labelledBy?: string;
|
|
1286
|
+
describedBy?: string;
|
|
1287
|
+
}): AccessibilityConfig;
|
|
1288
|
+
declare function getItemAccessibilityProps(config: {
|
|
1289
|
+
item: any;
|
|
1290
|
+
index: number;
|
|
1291
|
+
totalItems: number;
|
|
1292
|
+
isSelected: boolean;
|
|
1293
|
+
isFocused: boolean;
|
|
1294
|
+
viewType: string;
|
|
1295
|
+
isExpandable?: boolean;
|
|
1296
|
+
isExpanded?: boolean;
|
|
1297
|
+
level?: number;
|
|
1298
|
+
}): ItemAccessibilityConfig;
|
|
1299
|
+
declare function createLiveRegionAnnouncement(config: {
|
|
1300
|
+
action: 'select' | 'deselect' | 'focus' | 'activate' | 'load' | 'error';
|
|
1301
|
+
itemName?: string;
|
|
1302
|
+
itemCount?: number;
|
|
1303
|
+
selectedCount?: number;
|
|
1304
|
+
totalCount?: number;
|
|
1305
|
+
errorMessage?: string;
|
|
1306
|
+
}): string;
|
|
1307
|
+
interface KeyboardNavigationConfig {
|
|
1308
|
+
currentIndex: number;
|
|
1309
|
+
totalItems: number;
|
|
1310
|
+
itemsPerRow?: number;
|
|
1311
|
+
viewType: string;
|
|
1312
|
+
}
|
|
1313
|
+
declare function getNextFocusIndex(key: string, config: KeyboardNavigationConfig): number | null;
|
|
1314
|
+
declare class FocusManager {
|
|
1315
|
+
private focusedElement;
|
|
1316
|
+
private focusHistory;
|
|
1317
|
+
saveFocus(): void;
|
|
1318
|
+
restoreFocus(): boolean;
|
|
1319
|
+
focusFirst(container: HTMLElement): boolean;
|
|
1320
|
+
focusLast(container: HTMLElement): boolean;
|
|
1321
|
+
private getFocusableElements;
|
|
1322
|
+
}
|
|
1323
|
+
declare function announceToScreenReader(message: string, priority?: 'polite' | 'assertive'): void;
|
|
1324
|
+
|
|
1325
|
+
//#endregion
|
|
1326
|
+
//#region src/list/utils/BenchmarkLogger.d.ts
|
|
1327
|
+
//# sourceMappingURL=ListAccessibility.d.ts.map
|
|
1328
|
+
interface BenchmarkResult {
|
|
1329
|
+
operation: string;
|
|
1330
|
+
duration: number;
|
|
1331
|
+
timestamp: number;
|
|
1332
|
+
metadata?: Record<string, any>;
|
|
1333
|
+
}
|
|
1334
|
+
interface BenchmarkReport {
|
|
1335
|
+
totalOperations: number;
|
|
1336
|
+
totalDuration: number;
|
|
1337
|
+
averageDuration: number;
|
|
1338
|
+
slowestOperation: BenchmarkResult | null;
|
|
1339
|
+
fastestOperation: BenchmarkResult | null;
|
|
1340
|
+
operations: BenchmarkResult[];
|
|
1341
|
+
}
|
|
1342
|
+
declare class BenchmarkLogger {
|
|
1343
|
+
private results;
|
|
1344
|
+
private activeTimers;
|
|
1345
|
+
private enabled;
|
|
1346
|
+
constructor(enabled?: boolean);
|
|
1347
|
+
/**
|
|
1348
|
+
* Start timing an operation
|
|
1349
|
+
*/
|
|
1350
|
+
start(operation: string, metadata?: Record<string, any>): void;
|
|
1351
|
+
/**
|
|
1352
|
+
* End timing an operation and log the result
|
|
1353
|
+
*/
|
|
1354
|
+
end(operation: string, metadata?: Record<string, any>): number;
|
|
1355
|
+
/**
|
|
1356
|
+
* Time a synchronous operation
|
|
1357
|
+
*/
|
|
1358
|
+
time<T>(operation: string, fn: () => T, metadata?: Record<string, any>): T;
|
|
1359
|
+
/**
|
|
1360
|
+
* Time an asynchronous operation
|
|
1361
|
+
*/
|
|
1362
|
+
timeAsync<T>(operation: string, fn: () => Promise<T>, metadata?: Record<string, any>): Promise<T>;
|
|
1363
|
+
/**
|
|
1364
|
+
* Get a performance report
|
|
1365
|
+
*/
|
|
1366
|
+
getReport(): BenchmarkReport;
|
|
1367
|
+
/**
|
|
1368
|
+
* Log a performance report
|
|
1369
|
+
*/
|
|
1370
|
+
logReport(): void;
|
|
1371
|
+
/**
|
|
1372
|
+
* Clear all benchmark results
|
|
1373
|
+
*/
|
|
1374
|
+
clear(): void;
|
|
1375
|
+
/**
|
|
1376
|
+
* Enable or disable benchmarking
|
|
1377
|
+
*/
|
|
1378
|
+
setEnabled(enabled: boolean): void;
|
|
1379
|
+
/**
|
|
1380
|
+
* Check if benchmarking is enabled
|
|
1381
|
+
*/
|
|
1382
|
+
isEnabled(): boolean;
|
|
1383
|
+
private getDurationColor;
|
|
1384
|
+
private formatDuration;
|
|
1385
|
+
private groupOperationsByName;
|
|
1386
|
+
}
|
|
1387
|
+
declare const benchmarkLogger: BenchmarkLogger;
|
|
1388
|
+
declare const benchmark: {
|
|
1389
|
+
start: (operation: string, metadata?: Record<string, any>) => void;
|
|
1390
|
+
end: (operation: string, metadata?: Record<string, any>) => number;
|
|
1391
|
+
time: <T>(operation: string, fn: () => T, metadata?: Record<string, any>) => T;
|
|
1392
|
+
timeAsync: <T>(operation: string, fn: () => Promise<T>, metadata?: Record<string, any>) => Promise<T>;
|
|
1393
|
+
report: () => void;
|
|
1394
|
+
clear: () => void;
|
|
1395
|
+
setEnabled: (enabled: boolean) => void;
|
|
1396
|
+
};
|
|
1397
|
+
|
|
1398
|
+
//#endregion
|
|
1399
|
+
//#region src/list/utils/MasonryLayoutCalculator.d.ts
|
|
1400
|
+
//# sourceMappingURL=BenchmarkLogger.d.ts.map
|
|
1401
|
+
interface MasonryLayoutConfig {
|
|
1402
|
+
containerWidth: number;
|
|
1403
|
+
containerHeight: number;
|
|
1404
|
+
columnCount: number | 'auto';
|
|
1405
|
+
gap: number;
|
|
1406
|
+
padding: number;
|
|
1407
|
+
minColumnWidth: number;
|
|
1408
|
+
maxColumnWidth: number;
|
|
1409
|
+
}
|
|
1410
|
+
interface MasonryItemLayout {
|
|
1411
|
+
x: number;
|
|
1412
|
+
y: number;
|
|
1413
|
+
width: number;
|
|
1414
|
+
height: number;
|
|
1415
|
+
column: number;
|
|
1416
|
+
thumbnailWidth: number;
|
|
1417
|
+
thumbnailHeight: number;
|
|
1418
|
+
textHeight: number;
|
|
1419
|
+
}
|
|
1420
|
+
interface MasonryLayoutResult {
|
|
1421
|
+
columnCount: number;
|
|
1422
|
+
columnWidth: number;
|
|
1423
|
+
totalHeight: number;
|
|
1424
|
+
items: MasonryItemLayout[];
|
|
1425
|
+
columnHeights: number[];
|
|
1426
|
+
}
|
|
1427
|
+
interface MasonryItemData {
|
|
1428
|
+
id: string;
|
|
1429
|
+
aspectRatio?: number;
|
|
1430
|
+
customHeight?: number;
|
|
1431
|
+
textLength?: number;
|
|
1432
|
+
}
|
|
1433
|
+
declare class MasonryLayoutCalculator {
|
|
1434
|
+
private config;
|
|
1435
|
+
constructor(config: MasonryLayoutConfig);
|
|
1436
|
+
updateConfig(updates: Partial<MasonryLayoutConfig>): void;
|
|
1437
|
+
get currentConfig(): MasonryLayoutConfig;
|
|
1438
|
+
calculateColumnCount(): number;
|
|
1439
|
+
calculateColumnWidth(columnCount: number): number;
|
|
1440
|
+
calculateItemHeight(item: MasonryItemData, columnWidth: number, baseHeight?: number): number;
|
|
1441
|
+
private calculateTextHeight;
|
|
1442
|
+
calculateThumbnailDimensions(item: MasonryItemData, columnWidth: number, itemHeight: number): {
|
|
1443
|
+
width: number;
|
|
1444
|
+
height: number;
|
|
1445
|
+
};
|
|
1446
|
+
calculateLayout(items: MasonryItemData[]): MasonryLayoutResult;
|
|
1447
|
+
calculateVisibleItems(items: MasonryItemData[], scrollTop: number, viewportHeight: number, overscan?: number): {
|
|
1448
|
+
startIndex: number;
|
|
1449
|
+
endIndex: number;
|
|
1450
|
+
visibleItems: MasonryItemLayout[];
|
|
1451
|
+
};
|
|
1452
|
+
getItemPosition(itemIndex: number, items: MasonryItemData[]): MasonryItemLayout | null;
|
|
1453
|
+
getItemAtPosition(x: number, y: number, items: MasonryItemData[]): number | null;
|
|
1454
|
+
}
|
|
1455
|
+
declare function createMasonryCalculator(containerWidth: number, containerHeight: number, options?: Partial<MasonryLayoutConfig>): MasonryLayoutCalculator;
|
|
1456
|
+
declare const MASONRY_PRESETS: {
|
|
1457
|
+
readonly compact: {
|
|
1458
|
+
readonly gap: 4;
|
|
1459
|
+
readonly padding: 4;
|
|
1460
|
+
readonly minColumnWidth: 160;
|
|
1461
|
+
readonly maxColumnWidth: 250;
|
|
1462
|
+
};
|
|
1463
|
+
readonly comfortable: {
|
|
1464
|
+
readonly gap: 8;
|
|
1465
|
+
readonly padding: 8;
|
|
1466
|
+
readonly minColumnWidth: 200;
|
|
1467
|
+
readonly maxColumnWidth: 300;
|
|
1468
|
+
};
|
|
1469
|
+
readonly spacious: {
|
|
1470
|
+
readonly gap: 16;
|
|
1471
|
+
readonly padding: 16;
|
|
1472
|
+
readonly minColumnWidth: 250;
|
|
1473
|
+
readonly maxColumnWidth: 400;
|
|
1474
|
+
};
|
|
1475
|
+
};
|
|
1476
|
+
|
|
1477
|
+
//#endregion
|
|
1478
|
+
//# sourceMappingURL=MasonryLayoutCalculator.d.ts.map
|
|
1479
|
+
|
|
1480
|
+
export { AccessibilityConfig, BenchmarkReport, BenchmarkResult, CalculatedGridView as CalculatedGridView$1, DETAILS_VIEW_TYPE as DETAILS_VIEW_TYPE$1, EmptyState as EmptyState$1, ErrorDisplay as ErrorDisplay$1, FocusManager as FocusManager$1, GRID_PRESETS as GRID_PRESETS$1, GRID_VIEW_TYPE as GRID_VIEW_TYPE$1, GridItemLayout, GridLayoutCalculator as GridLayoutCalculator$1, GridLayoutConfig, GridLayoutResult, InlineLoading as InlineLoading$1, ItemAccessibilityConfig, KeyboardNavigationConfig, KeyboardNavigationOptions, LIST_VIEW_TYPE as LIST_VIEW_TYPE$1, ListContextMenu as ListContextMenu$1, ListContextMenuItem, ListDragDropInfo, ListError, ListErrorBoundary as ListErrorBoundary$1, ListItem as ListItem$1, ListItemData, ListItemProps, ListItemRenderer, ListItems as ListItems$1, ListItemsModel as ListItemsModel$1, ListItemsProps, ListItemsProvider, ListItemsProviderListener, ListKeyboardHandler as ListKeyboardHandler$1, ListLoadOptions, ListLoadResult, ListLoader as ListLoader$1, ListSelectionInfo, ListViewType, ListViewType$1, LoadError as LoadError$1, LoadingIndicator as LoadingIndicator$1, LoadingProgress as LoadingProgress$1, MASONRY_HORIZONTAL_VIEW_TYPE as MASONRY_HORIZONTAL_VIEW_TYPE$1, MASONRY_PRESETS as MASONRY_PRESETS$1, MASONRY_VERTICAL_VIEW_TYPE as MASONRY_VERTICAL_VIEW_TYPE$1, MasonryItemData, MasonryItemLayout, MasonryLayoutCalculator as MasonryLayoutCalculator$1, MasonryLayoutConfig, MasonryLayoutResult, MasonryView as MasonryView$1, NetworkError as NetworkError$1, NoItems as NoItems$1, NoSearchResults as NoSearchResults$1, NoSelection as NoSelection$1, SearchFilter as SearchFilter$1, TREEMAP_VIEW_TYPE as TREEMAP_VIEW_TYPE$1, TestListProvider as TestListProvider$1, ThumbnailSize, TreemapModel as TreemapModel$1, TreemapNodeData, TreemapScanProgress, TreemapView as TreemapView$1, ViewSizeControls as ViewSizeControls$1, ViewTypeSelector as ViewTypeSelector$1, ViewTypeSelectorProps, VirtualizationConfig, VirtualizedGrid as VirtualizedGrid$1, VirtualizedGridProps, VirtualizedList as VirtualizedList$1, VirtualizedListProps, announceToScreenReader as announceToScreenReader$1, benchmark as benchmark$1, benchmarkLogger as benchmarkLogger$1, createGridCalculator as createGridCalculator$1, createLiveRegionAnnouncement as createLiveRegionAnnouncement$1, createMasonryCalculator as createMasonryCalculator$1, getItemAccessibilityProps as getItemAccessibilityProps$1, getListAccessibilityProps as getListAccessibilityProps$1, getNextFocusIndex as getNextFocusIndex$1, useListKeyboard as useListKeyboard$1 };
|
|
1481
|
+
//# sourceMappingURL=index-Bryv_GCG.d.ts.map
|