@eternalheart/react-file-preview 1.3.13 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/lib/FilePreviewContent.d.ts +3 -17
  2. package/lib/FilePreviewContent.d.ts.map +1 -1
  3. package/lib/FilePreviewEmbed.d.ts +2 -0
  4. package/lib/FilePreviewEmbed.d.ts.map +1 -1
  5. package/lib/chunks/RendererError-D5i8eSpN.mjs +15 -0
  6. package/lib/chunks/RendererError-D5i8eSpN.mjs.map +1 -0
  7. package/lib/chunks/{index-CIqtwqgy.mjs → index-0v5STX5f.mjs} +18 -18
  8. package/lib/chunks/index-0v5STX5f.mjs.map +1 -0
  9. package/lib/chunks/{index-p4mew8Hx.mjs → index-10O8tfTH.mjs} +7 -7
  10. package/lib/chunks/index-10O8tfTH.mjs.map +1 -0
  11. package/lib/chunks/{index-CRn7LdHD.mjs → index-BCyv1HM9.mjs} +6 -6
  12. package/lib/chunks/index-BCyv1HM9.mjs.map +1 -0
  13. package/lib/chunks/{index-B2IlXQPc.mjs → index-Bo90aGhy.mjs} +3 -3
  14. package/lib/chunks/{index-B2IlXQPc.mjs.map → index-Bo90aGhy.mjs.map} +1 -1
  15. package/lib/chunks/index-CEeKt7L3.mjs +2808 -0
  16. package/lib/chunks/index-CEeKt7L3.mjs.map +1 -0
  17. package/lib/chunks/{index-DtZwBUd0.mjs → index-CWKbnvW6.mjs} +3 -3
  18. package/lib/chunks/{index-DtZwBUd0.mjs.map → index-CWKbnvW6.mjs.map} +1 -1
  19. package/lib/chunks/{index-B0QA380T.mjs → index-C_BJatqr.mjs} +14 -14
  20. package/lib/chunks/index-C_BJatqr.mjs.map +1 -0
  21. package/lib/chunks/index-Cbz5Z6ZK.mjs +263 -0
  22. package/lib/chunks/index-Cbz5Z6ZK.mjs.map +1 -0
  23. package/lib/chunks/{index-DYNPnFww.mjs → index-Cp68OevR.mjs} +3 -3
  24. package/lib/chunks/{index-DYNPnFww.mjs.map → index-Cp68OevR.mjs.map} +1 -1
  25. package/lib/chunks/{index-_EpQHlUY.mjs → index-CzM2mxrD.mjs} +4 -4
  26. package/lib/chunks/{index-_EpQHlUY.mjs.map → index-CzM2mxrD.mjs.map} +1 -1
  27. package/lib/chunks/{index-DfkP0zX3.mjs → index-DTYBFuAH.mjs} +4 -4
  28. package/lib/chunks/{index-DfkP0zX3.mjs.map → index-DTYBFuAH.mjs.map} +1 -1
  29. package/lib/chunks/{index-DqXfw2eb.mjs → index-DaAXRBWL.mjs} +3 -3
  30. package/lib/chunks/{index-DqXfw2eb.mjs.map → index-DaAXRBWL.mjs.map} +1 -1
  31. package/lib/chunks/{index-BgMhDDkd.mjs → index-DoFsoBKL.mjs} +3 -3
  32. package/lib/chunks/{index-BgMhDDkd.mjs.map → index-DoFsoBKL.mjs.map} +1 -1
  33. package/lib/chunks/{index-sft0uUd7.mjs → index-DuP0Tlpo.mjs} +3 -3
  34. package/lib/chunks/{index-sft0uUd7.mjs.map → index-DuP0Tlpo.mjs.map} +1 -1
  35. package/lib/chunks/index-Dv3RQz86.mjs +270 -0
  36. package/lib/chunks/index-Dv3RQz86.mjs.map +1 -0
  37. package/lib/chunks/{index-8pqs-pW7.mjs → index-QfpHck8N.mjs} +5 -5
  38. package/lib/chunks/{index-8pqs-pW7.mjs.map → index-QfpHck8N.mjs.map} +1 -1
  39. package/lib/chunks/{index-DN4Lc1dx.mjs → index-gjSQeou7.mjs} +3 -3
  40. package/lib/chunks/{index-DN4Lc1dx.mjs.map → index-gjSQeou7.mjs.map} +1 -1
  41. package/lib/chunks/{index-DZxzCMp2.mjs → index-kALp0tqz.mjs} +3 -3
  42. package/lib/chunks/{index-DZxzCMp2.mjs.map → index-kALp0tqz.mjs.map} +1 -1
  43. package/lib/chunks/{index-C8r2-Evl.mjs → index-kCeSnFs-.mjs} +9 -9
  44. package/lib/chunks/{index-C8r2-Evl.mjs.map → index-kCeSnFs-.mjs.map} +1 -1
  45. package/lib/chunks/{useShikiHighlight-CDDi36pF.mjs → useShikiHighlight-BA9qgdGA.mjs} +2 -2
  46. package/lib/chunks/{useShikiHighlight-CDDi36pF.mjs.map → useShikiHighlight-BA9qgdGA.mjs.map} +1 -1
  47. package/lib/components/preview/FilePreviewRenderer.d.ts +18 -0
  48. package/lib/components/preview/FilePreviewRenderer.d.ts.map +1 -0
  49. package/lib/components/preview/FilePreviewToolbar.d.ts +19 -0
  50. package/lib/components/preview/FilePreviewToolbar.d.ts.map +1 -0
  51. package/lib/components/preview/NavArrows.d.ts +18 -0
  52. package/lib/components/preview/NavArrows.d.ts.map +1 -0
  53. package/lib/components/preview/RendererError.d.ts +15 -0
  54. package/lib/components/preview/RendererError.d.ts.map +1 -0
  55. package/lib/components/preview/RendererErrorBoundary.d.ts +23 -0
  56. package/lib/components/preview/RendererErrorBoundary.d.ts.map +1 -0
  57. package/lib/components/preview/ToolbarButton.d.ts +14 -0
  58. package/lib/components/preview/ToolbarButton.d.ts.map +1 -0
  59. package/lib/components/preview/index.d.ts +7 -0
  60. package/lib/components/preview/index.d.ts.map +1 -0
  61. package/lib/hooks/index.d.ts +9 -0
  62. package/lib/hooks/index.d.ts.map +1 -0
  63. package/lib/hooks/rendererReducer.d.ts +10 -0
  64. package/lib/hooks/rendererReducer.d.ts.map +1 -0
  65. package/lib/hooks/types.d.ts +152 -0
  66. package/lib/hooks/types.d.ts.map +1 -0
  67. package/lib/hooks/useBookRenderer.d.ts +14 -0
  68. package/lib/hooks/useBookRenderer.d.ts.map +1 -0
  69. package/lib/hooks/useFilePreviewState.d.ts +10 -0
  70. package/lib/hooks/useFilePreviewState.d.ts.map +1 -0
  71. package/lib/hooks/useImageAutoFit.d.ts +13 -0
  72. package/lib/hooks/useImageAutoFit.d.ts.map +1 -0
  73. package/lib/hooks/useKeyboardNavigation.d.ts +15 -0
  74. package/lib/hooks/useKeyboardNavigation.d.ts.map +1 -0
  75. package/lib/hooks/useThemeMode.d.ts +7 -0
  76. package/lib/hooks/useThemeMode.d.ts.map +1 -0
  77. package/lib/hooks/useToolbarConfig.d.ts +25 -0
  78. package/lib/hooks/useToolbarConfig.d.ts.map +1 -0
  79. package/lib/index.cjs +30 -30
  80. package/lib/index.cjs.map +1 -1
  81. package/lib/index.css +1 -1
  82. package/lib/index.mjs +1 -1
  83. package/lib/renderers/Epub/index.d.ts.map +1 -1
  84. package/lib/renderers/Markdown/index.d.ts.map +1 -1
  85. package/lib/renderers/Pdf/index.d.ts +2 -0
  86. package/lib/renderers/Pdf/index.d.ts.map +1 -1
  87. package/lib/renderers/Pdf/toolbar.d.ts +5 -0
  88. package/lib/renderers/Pdf/toolbar.d.ts.map +1 -1
  89. package/lib/renderers/toolbar.types.d.ts +1 -0
  90. package/lib/renderers/toolbar.types.d.ts.map +1 -1
  91. package/lib/toolbar/registry.d.ts +51 -0
  92. package/lib/toolbar/registry.d.ts.map +1 -0
  93. package/lib/toolbar/renderItems.d.ts +8 -0
  94. package/lib/toolbar/renderItems.d.ts.map +1 -0
  95. package/package.json +1 -1
  96. package/lib/chunks/RendererError-BH6fzLrN.mjs +0 -15
  97. package/lib/chunks/RendererError-BH6fzLrN.mjs.map +0 -1
  98. package/lib/chunks/index-B0QA380T.mjs.map +0 -1
  99. package/lib/chunks/index-BvjPzMFc.mjs +0 -161
  100. package/lib/chunks/index-BvjPzMFc.mjs.map +0 -1
  101. package/lib/chunks/index-CIqtwqgy.mjs.map +0 -1
  102. package/lib/chunks/index-CRn7LdHD.mjs.map +0 -1
  103. package/lib/chunks/index-CWCNvV2X.mjs +0 -2323
  104. package/lib/chunks/index-CWCNvV2X.mjs.map +0 -1
  105. package/lib/chunks/index-Ctf8mG_u.mjs +0 -240
  106. package/lib/chunks/index-Ctf8mG_u.mjs.map +0 -1
  107. package/lib/chunks/index-p4mew8Hx.mjs.map +0 -1
@@ -0,0 +1,14 @@
1
+ export interface UseBookRendererReturn<T> {
2
+ ref: React.RefObject<T | null>;
3
+ current: number;
4
+ total: number;
5
+ fullWidth: boolean;
6
+ setFullWidth: React.Dispatch<React.SetStateAction<boolean>>;
7
+ handleChapterChange: (current: number, total: number) => void;
8
+ }
9
+ /**
10
+ * 书籍渲染器(EPUB/Mobi)通用逻辑 hook
11
+ * 统一 ref、状态管理和章节变化回调
12
+ */
13
+ export declare function useBookRenderer<T>(onChapterChange?: (current: number, total: number) => void): UseBookRendererReturn<T>;
14
+ //# sourceMappingURL=useBookRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBookRenderer.d.ts","sourceRoot":"","sources":["../../src/hooks/useBookRenderer.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACzD,qBAAqB,CAAC,CAAC,CAAC,CAuB1B"}
@@ -0,0 +1,10 @@
1
+ import type { RendererState, RendererAction } from './types';
2
+ /**
3
+ * 文件预览状态管理 hook
4
+ * 自动在 currentIndex 改变时重置所有状态
5
+ */
6
+ export declare function useFilePreviewState(currentIndex: number): {
7
+ state: RendererState;
8
+ dispatch: React.Dispatch<RendererAction>;
9
+ };
10
+ //# sourceMappingURL=useFilePreviewState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFilePreviewState.d.ts","sourceRoot":"","sources":["../../src/hooks/useFilePreviewState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG;IACzD,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;CAC1C,CAQA"}
@@ -0,0 +1,13 @@
1
+ export interface UseImageAutoFitParams {
2
+ enabled: boolean;
3
+ naturalWidth: number;
4
+ naturalHeight: number;
5
+ containerRef: React.RefObject<HTMLDivElement | null>;
6
+ onZoomChange: (zoom: number) => void;
7
+ }
8
+ /**
9
+ * 图片自动适应窗口 hook
10
+ * 当图片加载完成后,自动计算适应窗口的缩放比例
11
+ */
12
+ export declare function useImageAutoFit({ enabled, naturalWidth, naturalHeight, containerRef, onZoomChange, }: UseImageAutoFitParams): void;
13
+ //# sourceMappingURL=useImageAutoFit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useImageAutoFit.d.ts","sourceRoot":"","sources":["../../src/hooks/useImageAutoFit.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACrD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,GACb,EAAE,qBAAqB,GAAG,IAAI,CAa9B"}
@@ -0,0 +1,15 @@
1
+ export interface UseKeyboardNavigationParams {
2
+ mode: 'modal' | 'embed';
3
+ currentIndex: number;
4
+ totalFiles: number;
5
+ onNavigate?: (index: number) => void;
6
+ onClose?: () => void;
7
+ rootRef?: React.RefObject<HTMLDivElement | null>;
8
+ }
9
+ /**
10
+ * 键盘导航 hook
11
+ * - modal 模式:监听 window 的 keydown 事件
12
+ * - embed 模式:仅监听根容器的 keydown 事件(需要容器获得焦点)
13
+ */
14
+ export declare function useKeyboardNavigation({ mode, currentIndex, totalFiles, onNavigate, onClose, rootRef, }: UseKeyboardNavigationParams): void;
15
+ //# sourceMappingURL=useKeyboardNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKeyboardNavigation.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeyboardNavigation.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAClD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,GACR,EAAE,2BAA2B,GAAG,IAAI,CA8BpC"}
@@ -0,0 +1,7 @@
1
+ import type { Theme } from '@eternalheart/file-preview-core';
2
+ /**
3
+ * 主题模式 hook
4
+ * 处理 auto 主题时的系统偏好监听
5
+ */
6
+ export declare function useThemeMode(theme: Theme): 'light' | 'dark';
7
+ //# sourceMappingURL=useThemeMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThemeMode.d.ts","sourceRoot":"","sources":["../../src/hooks/useThemeMode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAiB3D"}
@@ -0,0 +1,25 @@
1
+ import type { ToolbarGroup } from '../renderers/toolbar.types';
2
+ import type { Translator } from '@eternalheart/file-preview-core';
3
+ import type { CustomRenderer, CustomRendererContext, PreviewFile } from '../types';
4
+ import type { RendererState } from './types';
5
+ import { type ToolbarFactoryContext } from '../toolbar/registry';
6
+ /**
7
+ * useToolbarConfig 所需的 handlers(不含 state/t/fileName,由 hook 内部合并)
8
+ */
9
+ export type ToolbarConfigHandlers = Omit<ToolbarFactoryContext, 'state' | 't' | 'fileName'>;
10
+ export interface UseToolbarConfigParams {
11
+ fileType: string;
12
+ fileName: string;
13
+ state: RendererState;
14
+ handlers: ToolbarConfigHandlers;
15
+ t: Translator;
16
+ customRenderer?: CustomRenderer | null;
17
+ currentFile: PreviewFile;
18
+ customRendererContext: CustomRendererContext;
19
+ }
20
+ /**
21
+ * 工具栏配置 hook
22
+ * 根据文件类型和自定义渲染器返回工具栏配置
23
+ */
24
+ export declare function useToolbarConfig({ fileType, fileName, state, handlers, t, customRenderer, currentFile, customRendererContext, }: UseToolbarConfigParams): ToolbarGroup[];
25
+ //# sourceMappingURL=useToolbarConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToolbarConfig.d.ts","sourceRoot":"","sources":["../../src/hooks/useToolbarConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,EAAE,OAAO,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC;AAE5F,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,CAAC,EAAE,UAAU,CAAC;IACd,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,CAAC,EACD,cAAc,EACd,WAAW,EACX,qBAAqB,GACtB,EAAE,sBAAsB,GAAG,YAAY,EAAE,CAezC"}