Files
documents/src/types/index.ts
T
Sebastian a59dbff9f1 refactor: standardize design
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
2026-03-03 21:55:48 -05:00

51 lines
1.1 KiB
TypeScript

/**
* 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<unknown>
}