@embedpdf/plugin-shell

中文文档
3.2.0发布于 2026/11/12Apache-2.0TypeScriptESM + CJS近 30 天下载 6.6万

Panels and menus for EmbedPDF: keeps track of which panels, dialogs and menus are open.

原始使用文档

@embedpdf/plugin-shell

Panels and menus for EmbedPDF: keeps track of which panels, dialogs and menus are open.

This plugin comes with each EmbedPDF framework package. Import it from the one you use:

FrameworkImport fromDocs
React@embedpdf/react/shellPanels & dialogs
Vue@embedpdf/vue/shellPanels & dialogs
Svelte@embedpdf/svelte/shellPanels & dialogs
Angular@embedpdf/angular/shellPanels & dialogs

In React

A viewer has sidebars (thumbnails, comments, search), dialogs and menus. The shell plugin keeps track of which are open, so a toolbar button, a keyboard shortcut and your own code can all open the same panel, and you can remember the layout for next time. You draw the panels; the plugin only holds their state. Register shellPlugin():

shell-plugin.tsx

import { shellPlugin } from '@embedpdf/react/shell';

export const plugins = [/* … */ shellPlugin()];

Then ask for a panel by name:

comments-panel.tsx

import { useSurface } from '@embedpdf/react/shell';
import { CommentList } from './comment-list';

export function CommentsPanel() {
  const panel = useSurface('comments');
  if (!panel.isOpen) return null;

  return (
    <aside>
      <button onClick={panel.close}>Close</button>
      <CommentList />
    </aside>
  );
}

export function CommentsButton() {
  const panel = useSurface('comments');
  return <button onClick={() => panel.toggle({ exclusive: 'right' })}>Comments</button>;
}

The names are yours: 'comments', 'thumbnails', 'settings'. Each document keeps its own, so every tab remembers which panels were open.

License

Apache-2.0

版本与发布记录

@embedpdf/plugin-shell 共发布 27 个版本,首次发布于 2026/08/06;过去 12 个月发布了 27 个版本。

版本发布日期距今
3.2.0latest2026/11/121 天前
3.1.02026/11/094 天前
3.0.02026/11/076 天前
3.0.0-next.23next2026/11/076 天前
3.0.0-next.222026/11/049 天前
3.0.0-next.212026/11/0310 天前

关于 @embedpdf/plugin-shell 的常见问题

@embedpdf/plugin-shell 是什么?

Panels and menus for EmbedPDF: keeps track of which panels, dialogs and menus are open.

如何安装 @embedpdf/plugin-shell?

在项目目录运行 npm install @embedpdf/plugin-shell,或使用 pnpm add / yarn add / bun add。

@embedpdf/plugin-shell 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@embedpdf/plugin-shell 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@embedpdf/plugin-shell 可以商用吗?

@embedpdf/plugin-shell 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@embedpdf/plugin-shell 的下载量有多少?

根据 npm 官方下载统计,@embedpdf/plugin-shell 在 2026/10/14 – 2026/11/12 这 30 天内被下载 65,587 次,日均约 2,186 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@embedpdf/plugin-shell 还在维护吗?

最新版本 3.2.0 发布于 2026/11/12(1 天前);至今共发布 27 个版本,其中过去 12 个月发布了 27 个;首次发布于 2026/08/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。