Phials plugin documentation
User guide
AI Disclosure: This page was generated by an LLM and may contain inaccuracies. Hand-crafted documentation will be implemented over time on the road to 1.0

PreviewProvider

Since Plugin API: 1.0.0

Preview provider - renders file previews, thumbnails, and fullscreen views

Signature

interface PreviewProvider {
    type: "preview";
    id: string;
    name: string;
    priority?: number;
    extensions?: string[];
    mimeTypes?: string[];
    categories?: FileCategory[];
    canHandle?: (file: FileEntry, api: FileMatchAPI) => boolean;
    thumbnail?: import("svelte").Component<ThumbnailProviderProps>;
    surface?: import("svelte").Component<PreviewSurfaceProps>;
    createSession?: (props: PreviewSessionFactoryProps) => PreviewSession | Promise<PreviewSession>;
    toolbar?: import("svelte").Component<PreviewToolbarContributionProps>;
    destinations?: PreviewDestinationCapabilities;
    overridesDoubleClick?: boolean;
    isEditable?: (file: FileEntry, metadata?: FileMetadata) => boolean;
}

Members

NameTypeRequiredDescription
type"preview"yes-
idstringyes-
namestringyes-
prioritynumberno-
extensionsstring[]noFile matching criteria
mimeTypesstring[]no-
categoriesFileCategory[]no-
canHandle(file:FileEntry, api:FileMatchAPI) => booleanno-
thumbnailimport("svelte").Component<ThumbnailProviderProps>noComponents
surfaceimport("svelte").Component<PreviewSurfaceProps>noResponsive file-specific viewer/editor used by every host destination.
createSession(props:PreviewSessionFactoryProps) =>PreviewSession| Promise<PreviewSession>no-
toolbarimport("svelte").Component<PreviewToolbarContributionProps>noSingle reactive provider control group mounted at the host toolbar’s trailing edge.
destinationsPreviewDestinationCapabilitiesno-
overridesDoubleClickbooleannoBehavior
isEditable(file:FileEntry, metadata?:FileMetadata) => booleannoPreview can modify file contents; the host exposes editor chrome only when this returns true.