Files
paseo/plugin-examples/pdf-panel/README.md
T
Mohamed Boudra dfb6215de0 feat(file-panels): panels read and write through a file handle
The file tab stats the file and mounts its panel without reading it. Every
panel, built-in or plugin, gets a PluginFile handle: readText, readBytes, url,
version-checked writeText/writeBytes (PluginFileConflictError unless force),
and watch. useFileText, useFileBytes and useFileUrl read through it, and
Loading joins @getpaseo/plugin/client/ui. Panels own their loading state.

The host document pipeline, the explorer preview cache and the preview
lifecycle are deleted. The daemon classifies a file version from a bounded
sniff and writes base64 content as bytes behind fileByteWrites.

A deleted file keeps its panel mounted; a read confirms the deletion first,
so a remove-and-rewrite is not reported as one. Native Source decodes with
builtins and highlights in idle-time slices, the lines around the opening
line first, so a large file no longer blocks the JS thread.
2026-10-20 08:02:49 +02:00

697 B

PDF file panel example

Requires Paseo 0.13.0 or later. Install this directory with paseo plugin install /absolute/path/to/plugin-examples/pdf-panel, then open a .pdf in Files.

The panel resolves the file's local URL with useFileUrl, shows Loading until it does, and passes it to DocumentFrame on web and iOS. Android shows the filename, size, and a message that inline PDF rendering is unavailable. The plugin does not construct daemon URLs.

See the file panel reference.

Inline PDF rendering needs a daemon from Paseo 0.13.0 or later; see the DocumentFrame reference.