/** * Files module types */ export type ViewMode = 'grid' | 'list' | 'details' export type SortField = 'label' | 'size' | 'modifiedOn' | 'createdOn' | 'mime' export type SortOrder = 'asc' | 'desc' export interface ViewSettings { mode: ViewMode sortField: SortField sortOrder: SortOrder showHidden: boolean } export interface BreadcrumbItem { id: string label: string isRoot: boolean } export interface ContextMenuAction { id: string label: string icon: string disabled?: boolean divider?: boolean } /** * Shape of an item registered at the `documents_file_viewer` integration point. * Stored under `meta` so it fits inside a standard `ModuleIntegrationItem`. */ export interface DocumentViewerMeta { /** Exact MIME type matches, e.g. ['application/pdf'] */ mimeTypes?: string[] /** Glob-style patterns, e.g. ['image/*', 'video/*'] */ mimePatterns?: string[] } export interface DocumentViewerItem { id: string label?: string priority?: number meta: DocumentViewerMeta /** Async factory returning the Vue viewer component */ component: () => Promise }