file-viewer3 1.0.7 → 1.0.25

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 (423) hide show
  1. package/LICENSE +160 -0
  2. package/README.en.md +390 -0
  3. package/README.md +306 -87
  4. package/dist/_headers +22 -0
  5. package/dist/assets/3MFLoader--yjh7udp.js +1 -0
  6. package/dist/assets/AMFLoader-C0y7NIAO.js +1 -0
  7. package/dist/assets/ArchiveViewer-6AvBZVl3.js +2 -0
  8. package/dist/assets/ArchiveViewer-B2pHxHFv.css +1 -0
  9. package/dist/assets/AudioViewer-0CSMvCtp.css +1 -0
  10. package/dist/assets/AudioViewer-6a_DDcur.js +1 -0
  11. package/dist/assets/CadViewer-A9PKtCth.css +1 -0
  12. package/dist/assets/CadViewer-D94LUXKO.js +110 -0
  13. package/dist/assets/CodeViewer-BdZGsbFh.js +2 -0
  14. package/dist/assets/CodeViewer-CR2CsPRi.css +1 -0
  15. package/dist/assets/ColladaLoader-DTiuvWJL.js +3 -0
  16. package/dist/assets/DrawingViewer-BplS278E.js +2 -0
  17. package/dist/assets/DrawingViewer-DXiF5YWV.css +1 -0
  18. package/dist/assets/EdaViewer-BXH1Jmwr.js +8 -0
  19. package/dist/assets/EdaViewer-CKf1YQnh.css +1 -0
  20. package/dist/assets/EmailViewer-BsBKZ_A5.js +4 -0
  21. package/dist/assets/EmailViewer-BwvGE4ns.css +1 -0
  22. package/dist/assets/EpubViewer-Cci0l1Vm.css +1 -0
  23. package/dist/assets/EpubViewer-DlGzr8_x.js +2 -0
  24. package/dist/assets/FBXLoader-Bj34Z_uf.js +1 -0
  25. package/dist/assets/GLTFLoader-BNUIXeRP.js +1 -0
  26. package/dist/assets/ImageViewer-BKp7YpMs.css +10 -0
  27. package/dist/assets/ImageViewer-D1Yc0jYg.js +1 -0
  28. package/dist/assets/KMZLoader-DTmXWzX_.js +1 -0
  29. package/dist/assets/MarkdownViewer-CIljbLlu.css +1 -0
  30. package/dist/assets/MarkdownViewer-CRi0rhWw.js +64 -0
  31. package/dist/assets/ModelViewer-C4ir9AyI.css +1 -0
  32. package/dist/assets/ModelViewer-yxcVdLzz.js +2 -0
  33. package/dist/assets/OBJLoader-DW4Mv-mq.js +5 -0
  34. package/dist/assets/OfdViewer-DbkG1-Bp.js +2 -0
  35. package/dist/assets/OfdViewer-Ulv-WZWh.css +1 -0
  36. package/dist/assets/PCDLoader-CHA1g8rk.js +3 -0
  37. package/dist/assets/PLYLoader-DwTzA-Dg.js +2 -0
  38. package/dist/assets/PdfView-_Uu48dkU.js +558 -0
  39. package/dist/assets/PdfView-fKwbB_8j.css +1 -0
  40. package/dist/assets/PptxRender-BNoW_9_0.css +1 -0
  41. package/dist/assets/PptxRender-myCCfHiR.js +32 -0
  42. package/dist/assets/STLLoader-Bt7FMgMu.js +1 -0
  43. package/dist/assets/TDSLoader-D__OhSS9.js +1 -0
  44. package/dist/assets/TypstViewer-4dMAIp9x.js +60 -0
  45. package/dist/assets/TypstViewer-BgYR02wU.css +1 -0
  46. package/dist/assets/USDLoader-BovI5HgZ.js +6 -0
  47. package/dist/assets/UmdViewer-BfIWw5dV.js +3 -0
  48. package/dist/assets/UmdViewer-DpObj56a.css +1 -0
  49. package/dist/assets/VRMLLoader-_VxVXPvX.js +140 -0
  50. package/dist/assets/VTKLoader-BfnzBXsa.js +3 -0
  51. package/dist/assets/XYZLoader-DbQZs-aZ.js +2 -0
  52. package/dist/assets/XlsxTable-CKmWT6Iw.js +5 -0
  53. package/dist/assets/XlsxTable-Ccp_ksQc.css +1 -0
  54. package/dist/assets/__vite-browser-external-j1Zxnfxm.js +1 -0
  55. package/dist/assets/ar-SA-G6X2FPQ2-h0GtAVoD.js +10 -0
  56. package/dist/assets/arc-C_eH0vTw.js +1 -0
  57. package/dist/assets/architecture-7EHR7CIX-nPLvVkG5.js +1 -0
  58. package/dist/assets/architectureDiagram-3BPJPVTR-Cx8fJaC_.js +36 -0
  59. package/dist/assets/archive-D-0w4Z7t.js +2 -0
  60. package/dist/assets/audio-IkwcqgJA.js +2 -0
  61. package/dist/assets/az-AZ-76LH7QW2-D_aQ-6Zd.js +1 -0
  62. package/dist/assets/bash-LmRjUKlR.js +1 -0
  63. package/dist/assets/bg-BG-XCXSNQG7-H7Czia1L.js +5 -0
  64. package/dist/assets/blockDiagram-GPEHLZMM-v3Efy6dm.js +132 -0
  65. package/dist/assets/bn-BD-2XOGV67Q-f6ymEr9g.js +5 -0
  66. package/dist/assets/c4Diagram-AAUBKEIU-BdstYnMv.js +10 -0
  67. package/dist/assets/ca-ES-6MX7JW3Y-DTzyqWmS.js +8 -0
  68. package/dist/assets/cad-DFnQbJJO.js +2 -0
  69. package/dist/assets/cfb-Bv6fOQ4m.js +11 -0
  70. package/dist/assets/channel-C66J400U.js +1 -0
  71. package/dist/assets/chunk-2J33WTMH-BoyKZPbs.js +1 -0
  72. package/dist/assets/chunk-3OPIFGDE-a_QAVzsM.js +62 -0
  73. package/dist/assets/chunk-4BX2VUAB-DZj4_o2K.js +1 -0
  74. package/dist/assets/chunk-55IACEB6-C7hP08Mf.js +1 -0
  75. package/dist/assets/chunk-5ZQYHXKU-DBQ_7Zc2.js +2 -0
  76. package/dist/assets/chunk-6U3AYISY-C6-Mtja1.js +12 -0
  77. package/dist/assets/chunk-727SXJPM-BVNP_kQ-.js +206 -0
  78. package/dist/assets/chunk-AGHRB4JF-DrBKq3qz.js +1 -0
  79. package/dist/assets/chunk-AQP2D5EJ-0N6k4ROT.js +231 -0
  80. package/dist/assets/chunk-BSJP7CBP-b8olRIQO.js +1 -0
  81. package/dist/assets/chunk-CSCIHK7Q-B5j-yHKS.js +124 -0
  82. package/dist/assets/chunk-EIO257PC-C6qii-N9.js +22 -0
  83. package/dist/assets/chunk-FMBD7UC4-CBBZh2UU.js +15 -0
  84. package/dist/assets/chunk-K2UTITRG-Cx4xt2xV.js +35 -0
  85. package/dist/assets/chunk-KSCS5N6A-Dwg0HTxH.js +10 -0
  86. package/dist/assets/chunk-L5ZTLDWV-BPuCpePB.js +1 -0
  87. package/dist/assets/chunk-LZXEDZCA-CvLuVK3G.js +2 -0
  88. package/dist/assets/chunk-ND2GUHAM-CWJPhGEg.js +1 -0
  89. package/dist/assets/chunk-NNHCCRGN-DlpIbxXb.js +159 -0
  90. package/dist/assets/chunk-NZK2D7GU-DuaLWEa1.js +1 -0
  91. package/dist/assets/chunk-O5CBEL6O-dK2KeDfH.js +70 -0
  92. package/dist/assets/chunk-QZHKN3VN-4Bf82riF.js +1 -0
  93. package/dist/assets/chunk-SRAX5OIU-BhbLEiib.js +1 -0
  94. package/dist/assets/chunk-WU5MYG2G-DLkui5D2.js +1 -0
  95. package/dist/assets/chunk-XPW4576I-BvXQTKbm.js +32 -0
  96. package/dist/assets/chunk-Z3N5DIM6-D9TMVU7m.js +1 -0
  97. package/dist/assets/chunk-ZUYEQ4TG-BzFOpW--.js +7 -0
  98. package/dist/assets/classDiagram-4FO5ZUOK-DKj6zlra.js +1 -0
  99. package/dist/assets/classDiagram-v2-Q7XG4LA2-DKj6zlra.js +1 -0
  100. package/dist/assets/compare-BA1y8ff-.css +1 -0
  101. package/dist/assets/compare-QN3IusOj.js +1 -0
  102. package/dist/assets/compiler-qgJWLAtm.js +1 -0
  103. package/dist/assets/core-S5OLGxXP.js +3 -0
  104. package/dist/assets/cose-bilkent-S5V4N54A-CslZOqNN.js +1 -0
  105. package/dist/assets/cpp-V0F2hNk9.js +1 -0
  106. package/dist/assets/cs-CZ-2BRQDIVT-BRw0NNL_.js +11 -0
  107. package/dist/assets/csharp-GZmu99Fo.js +1 -0
  108. package/dist/assets/css-D5l_8KUR.js +1 -0
  109. package/dist/assets/cytoscape.esm-C8YCVR3_.js +321 -0
  110. package/dist/assets/da-DK-5WZEPLOC-q5u_UoZe.js +5 -0
  111. package/dist/assets/dagre-BM42HDAG-D6fpH9H3.js +4 -0
  112. package/dist/assets/dagre-Bx709z4p.js +1 -0
  113. package/dist/assets/de-DE-XR44H4JA-B79lsSt9.js +8 -0
  114. package/dist/assets/defaultLocale-C8Fc0cco.js +1 -0
  115. package/dist/assets/diagram-2AECGRRQ-DGviV3zF.js +43 -0
  116. package/dist/assets/diagram-5GNKFQAL-D8edmK5r.js +10 -0
  117. package/dist/assets/diagram-KO2AKTUF-DonC_-9l.js +3 -0
  118. package/dist/assets/diagram-LMA3HP47-T0-OD5uV.js +24 -0
  119. package/dist/assets/diagram-OG6HWLK6-BsRJiZE3.js +24 -0
  120. package/dist/assets/diff-CJb8JxGC.js +1 -0
  121. package/dist/assets/directory-open-01563666-D4xXyWb_.js +1 -0
  122. package/dist/assets/directory-open-4ed118d0-1i309Asm.js +1 -0
  123. package/dist/assets/dist-ND9DUPs_.js +1 -0
  124. package/dist/assets/dist-S-2Hyh3N.js +1 -0
  125. package/dist/assets/dist-jshluroQ.js +27 -0
  126. package/dist/assets/docx-preview-CAHEyNQy.js +20 -0
  127. package/dist/assets/drawing-B3sCN7BX.js +2 -0
  128. package/dist/assets/ebook-DDycOGR3.js +2 -0
  129. package/dist/assets/eda-JxVOVy9j.js +2 -0
  130. package/dist/assets/el-GR-BZB4AONW-DVV0CNhT.js +10 -0
  131. package/dist/assets/email-D9tCfCzQ.js +2 -0
  132. package/dist/assets/en-B4ZKOASM-CpbJugBW.js +1 -0
  133. package/dist/assets/erDiagram-TEJ5UH35-O-dDoXsU.js +85 -0
  134. package/dist/assets/es-ES-U4NZUMDT-DUvN9FXg.js +9 -0
  135. package/dist/assets/eu-ES-A7QVB2H4-DV6UAZB_.js +11 -0
  136. package/dist/assets/eventmodeling-FCH6USID-BONfeu8r.js +1 -0
  137. package/dist/assets/fa-IR-HGAKTJCU-0ql2xhuq.js +8 -0
  138. package/dist/assets/fflate.module-BIQmJeC9.js +1 -0
  139. package/dist/assets/fi-FI-Z5N7JZ37-CxtRUMtw.js +6 -0
  140. package/dist/assets/file-open-002ab408-BHUWm0Sh.js +1 -0
  141. package/dist/assets/file-open-7c801643-DZtJT5zp.js +1 -0
  142. package/dist/assets/file-save-3189631c-CO9S4HFW.js +1 -0
  143. package/dist/assets/file-save-745eba88-Bwdfz6OZ.js +1 -0
  144. package/dist/assets/flowDiagram-I6XJVG4X-DsWkZiFB.js +162 -0
  145. package/dist/assets/fr-FR-RHASNOE6-CLi1nCBA.js +9 -0
  146. package/dist/assets/ganttDiagram-6RSMTGT7-r5IfYmu1.js +292 -0
  147. package/dist/assets/gitGraph-WXDBUCRP-BPjRwtiT.js +1 -0
  148. package/dist/assets/gitGraphDiagram-PVQCEYII-DGYT-2sl.js +106 -0
  149. package/dist/assets/gl-ES-HMX3MZ6V-NMLOwshd.js +10 -0
  150. package/dist/assets/global-compiler-D1EEBbpA.js +1 -0
  151. package/dist/assets/global-renderer-AKzBLvRw.js +1 -0
  152. package/dist/assets/go-B-PCS5zA.js +1 -0
  153. package/dist/assets/graphlib-B8gBHxth.js +1 -0
  154. package/dist/assets/he-IL-6SHJWFNN-BWPkP_3r.js +10 -0
  155. package/dist/assets/hi-IN-IWLTKZ5I-KNyxys-k.js +4 -0
  156. package/dist/assets/hu-HU-A5ZG7DT2-BjcxkVW9.js +7 -0
  157. package/dist/assets/id-ID-SAP4L64H-B-oUkzcH.js +10 -0
  158. package/dist/assets/image-6zdrB4g6.js +2 -0
  159. package/dist/assets/image-GAAHSSAO-7tK5sChZ.js +1 -0
  160. package/dist/assets/image-blob-reduce.esm-NzmDxm1v.js +2 -0
  161. package/dist/assets/info-J43DQDTF-sQY7EXUc.js +1 -0
  162. package/dist/assets/infoDiagram-5YYISTIA-Dzg1KIdJ.js +2 -0
  163. package/dist/assets/ini-B1CroMsf.js +1 -0
  164. package/dist/assets/init-D6jRqBbL.js +1 -0
  165. package/dist/assets/ishikawaDiagram-YF4QCWOH-C4gAmRlT.js +70 -0
  166. package/dist/assets/it-IT-JPQ66NNP-Bwud0QsX.js +11 -0
  167. package/dist/assets/ja-JP-DBVTYXUO-DgNQ5bjg.js +8 -0
  168. package/dist/assets/java-ChVphriW.js +1 -0
  169. package/dist/assets/javascript-w9aIBC1S.js +1 -0
  170. package/dist/assets/journeyDiagram-JHISSGLW-ofw85AZe.js +139 -0
  171. package/dist/assets/json-DS4EA3dC.js +1 -0
  172. package/dist/assets/jszip.min-C7VJhIfM.js +2 -0
  173. package/dist/assets/kaa-6HZHGXH3-BMz8LTXv.js +1 -0
  174. package/dist/assets/kab-KAB-ZGHBKWFO-B9w0Zir8.js +8 -0
  175. package/dist/assets/kanban-definition-UN3LZRKU-CljG07f4.js +89 -0
  176. package/dist/assets/katex-Vhh-h91d.js +257 -0
  177. package/dist/assets/kk-KZ-P5N5QNE5-2tUcaoKh.js +1 -0
  178. package/dist/assets/km-KH-HSX4SM5Z-_kaSqGhJ.js +11 -0
  179. package/dist/assets/ko-KR-MTYHY66A-CIjaox2B.js +9 -0
  180. package/dist/assets/ku-TR-6OUDTVRD-CkLMAwgC.js +9 -0
  181. package/dist/assets/lib-CxFoY_GP.js +6 -0
  182. package/dist/assets/libarchive-DknIq1tb.js +1 -0
  183. package/dist/assets/libarchive-DxGirPmi.wasm +0 -0
  184. package/dist/assets/linear-DAeDjlp3.js +1 -0
  185. package/dist/assets/logo-DG62cSZK.png +0 -0
  186. package/dist/assets/lt-LT-XHIRWOB4-BsH7UAds.js +3 -0
  187. package/dist/assets/lv-LV-5QDEKY6T-DH8to9BS.js +7 -0
  188. package/dist/assets/main-B8S7RFzE.js +4 -0
  189. package/dist/assets/main-BZ1u3qpM.css +1 -0
  190. package/dist/assets/markdown-C8bVcNXx.js +1 -0
  191. package/dist/assets/md-OHaN-Ra2.js +2 -0
  192. package/dist/assets/mermaid-parser.core-DX-qibXo.js +4 -0
  193. package/dist/assets/mindmap-definition-RKZ34NQL-5NZ4x9hJ.js +96 -0
  194. package/dist/assets/model-B6Ua5SnP.js +2 -0
  195. package/dist/assets/mp4-Dho29Zd7.js +1 -0
  196. package/dist/assets/mr-IN-CRQNXWMA-BrKaFNSo.js +13 -0
  197. package/dist/assets/my-MM-5M5IBNSE-BZSEmctA.js +1 -0
  198. package/dist/assets/nb-NO-T6EIAALU-6a9gavJA.js +10 -0
  199. package/dist/assets/nestedRender-vUCW8qgY.js +3 -0
  200. package/dist/assets/nl-NL-IS3SIHDZ-uxPhLMYz.js +8 -0
  201. package/dist/assets/nn-NO-6E72VCQL-D4PNCwHO.js +8 -0
  202. package/dist/assets/oc-FR-POXYY2M6-C7kpaHdZ.js +8 -0
  203. package/dist/assets/ofd-CM51fmds.js +2 -0
  204. package/dist/assets/ofd-CsX4S_yH.js +6 -0
  205. package/dist/assets/ordinal-hYBb2elL.js +1 -0
  206. package/dist/assets/pa-IN-N4M65BXN-DudflUsb.js +4 -0
  207. package/dist/assets/package-BuR3Qm_h.css +1 -0
  208. package/dist/assets/package-DbhUOWuO.js +296 -0
  209. package/dist/assets/packet-YPE3B663-zJFiRlih.js +1 -0
  210. package/dist/assets/pdf-CZTifdsT.js +2 -0
  211. package/dist/assets/percentages-BXMCSKIN-DuKjcyNK.js +1 -0
  212. package/dist/assets/php-5k5YNuRS.js +2 -0
  213. package/dist/assets/pica-W1nY7k4k.js +2 -0
  214. package/dist/assets/pie-CZr-MxNa.js +1 -0
  215. package/dist/assets/pie-LRSECV5Y-ChrxPon2.js +1 -0
  216. package/dist/assets/pieDiagram-4H26LBE5-rqS9xOI6.js +30 -0
  217. package/dist/assets/pl-PL-T2D74RX3-BjwyDbo2.js +9 -0
  218. package/dist/assets/postal-mime-kkzCFkih.js +29 -0
  219. package/dist/assets/pptx-HCi3sDR0.js +2 -0
  220. package/dist/assets/printLayout-D2pf0W9y.js +24 -0
  221. package/dist/assets/prod-CAexHIHC.js +149 -0
  222. package/dist/assets/pt-BR-5N22H2LF-dhO4g53z.js +9 -0
  223. package/dist/assets/pt-PT-UZXXM6DQ-B0FVw5E6.js +9 -0
  224. package/dist/assets/python-DwhXSSGr.js +1 -0
  225. package/dist/assets/quadrantDiagram-W4KKPZXB-CvbA748i.js +7 -0
  226. package/dist/assets/radar-GUYGQ44K-Ch58tAlJ.js +1 -0
  227. package/dist/assets/reactivity.esm-bundler-Bfmlzvr-.js +1 -0
  228. package/dist/assets/renderer-69XMfifI.js +1 -0
  229. package/dist/assets/requirementDiagram-4Y6WPE33-Ek_Wtky1.js +84 -0
  230. package/dist/assets/ro-RO-JPDTUUEW-CRyQ9zJm.js +11 -0
  231. package/dist/assets/rough.esm-CIepY_sA.js +1 -0
  232. package/dist/assets/roundRect-D01gJrlt.js +1 -0
  233. package/dist/assets/ru-RU-B4JR7IUQ-Ccj6OqLf.js +9 -0
  234. package/dist/assets/runtime-core.esm-bundler-CR6OOEFf.js +1 -0
  235. package/dist/assets/rust-Dk33Kfe-.js +1 -0
  236. package/dist/assets/sankeyDiagram-5OEKKPKP-D3gZ6xE7.js +40 -0
  237. package/dist/assets/sequenceDiagram-3UESZ5HK-C5489xFA.js +162 -0
  238. package/dist/assets/si-LK-N5RQ5JYF-BwS2qaTv.js +1 -0
  239. package/dist/assets/sk-SK-C5VTKIMK-ly1tHoOw.js +6 -0
  240. package/dist/assets/sl-SI-NN7IZMDC-iZiOFm2y.js +6 -0
  241. package/dist/assets/sql-DWRKyvJ-.js +1 -0
  242. package/dist/assets/src-BrOGWJpF.js +1 -0
  243. package/dist/assets/src-D_n3k0l_.js +5 -0
  244. package/dist/assets/stateDiagram-AJRCARHV-1hoVbE34.js +1 -0
  245. package/dist/assets/stateDiagram-v2-BHNVJYJU-CZmypPHd.js +1 -0
  246. package/dist/assets/style-x1XGuNl0.css +1 -0
  247. package/dist/assets/subset-shared.chunk-CK2m59fy.js +1 -0
  248. package/dist/assets/subset-worker.chunk-B5G7hWyg.js +1 -0
  249. package/dist/assets/sv-SE-XGPEYMSR-BNpkY1PO.js +10 -0
  250. package/dist/assets/ta-IN-2NMHFXQM-DsldkrWk.js +9 -0
  251. package/dist/assets/text-CMp0EW11.js +2 -0
  252. package/dist/assets/th-TH-HPSO5L25-AVrKqKOh.js +2 -0
  253. package/dist/assets/three.module-BFsVh7r1.js +4104 -0
  254. package/dist/assets/time-B8nkukJS.js +1 -0
  255. package/dist/assets/timeline-definition-PNZ67QCA-CfMKM_FS.js +120 -0
  256. package/dist/assets/tr-TR-DEFEU3FU-DYarL0Oa.js +7 -0
  257. package/dist/assets/treeView-BLDUP644-CGGdcSoP.js +1 -0
  258. package/dist/assets/treemap-LRROVOQU-C3Zg5qig.js +1 -0
  259. package/dist/assets/typescript-BvteI6YB.js +1 -0
  260. package/dist/assets/typst-DOlgRigg.js +2 -0
  261. package/dist/assets/typst_ts_renderer_bg-DRRWm1TP.wasm +0 -0
  262. package/dist/assets/uk-UA-QMV73CPH-D36-a0jl.js +6 -0
  263. package/dist/assets/umd-r51rBtd2.js +2 -0
  264. package/dist/assets/vennDiagram-CIIHVFJN-GrdHiqIf.js +34 -0
  265. package/dist/assets/vi-VN-M7AON7JQ-zdUBY1Fz.js +5 -0
  266. package/dist/assets/wardley-L42UT6IY-ilBO1QYS.js +1 -0
  267. package/dist/assets/wardleyDiagram-YWT4CUSO-Cgr3uPws.js +78 -0
  268. package/dist/assets/wasm-C3ukMqzA.js +1 -0
  269. package/dist/assets/wasm-pack-shim-BShYmbRf.js +1 -0
  270. package/dist/assets/wasm-pack-shim-BnuNh1z7.js +1 -0
  271. package/dist/assets/word-DQCwLNG7.js +150 -0
  272. package/dist/assets/worker-bundle-Dx5mKZOL.js +6 -0
  273. package/dist/assets/worker-ref-BbTnHTC-.js +1 -0
  274. package/dist/assets/xlsx-B1qUDXfb.js +2 -0
  275. package/dist/assets/xlsx-ff7ER-JZ.png +0 -0
  276. package/dist/assets/xml-DasnpDVC.js +1 -0
  277. package/dist/assets/xychartDiagram-2RQKCTM6-BwoaSxOF.js +7 -0
  278. package/dist/assets/yaml-1XF8XcZB.js +1 -0
  279. package/dist/assets/zh-CN-LNUGB5OW-WQ7J6JkH.js +10 -0
  280. package/dist/assets/zh-HK-E62DVLB3-BoGXaBos.js +1 -0
  281. package/dist/assets/zh-TW-RAJ6MFWO-DZQOFop7.js +9 -0
  282. package/dist/compare.html +21 -0
  283. package/dist/example/README.md +137 -0
  284. package/dist/example/SOURCES.md +49 -0
  285. package/dist/example/app.log +13 -0
  286. package/dist/example/archive.tar.gz +0 -0
  287. package/dist/example/archive.zip +0 -0
  288. package/dist/example/audio.mp3 +0 -0
  289. package/dist/example/audio.ogg +0 -0
  290. package/dist/example/book.epub +0 -0
  291. package/dist/example/book.umd +0 -0
  292. package/dist/example/change.diff +40 -0
  293. package/dist/example/code.cjs +38 -0
  294. package/dist/example/code.css +64 -0
  295. package/dist/example/code.java +55 -0
  296. package/dist/example/code.js +55 -0
  297. package/dist/example/code.jsx +43 -0
  298. package/dist/example/code.mjs +36 -0
  299. package/dist/example/code.py +56 -0
  300. package/dist/example/code.ts +78 -0
  301. package/dist/example/code.tsx +36 -0
  302. package/dist/example/component.vue +68 -0
  303. package/dist/example/config.yaml +48 -0
  304. package/dist/example/config.yml +25 -0
  305. package/dist/example/data.json +50 -0
  306. package/dist/example/data.xml +47 -0
  307. package/dist/example/drawing.dxf +22186 -0
  308. package/dist/example/embedded.html +316 -0
  309. package/dist/example/excel.fods +0 -0
  310. package/dist/example/excel.numbers +0 -0
  311. package/dist/example/excel.ods +0 -0
  312. package/dist/example/excel.xls +0 -0
  313. package/dist/example/excel.xlsb +0 -0
  314. package/dist/example/excel.xlsm +0 -0
  315. package/dist/example/excel.xlsx +0 -0
  316. package/dist/example/flow.excalidraw +1 -0
  317. package/dist/example/index.php +44 -0
  318. package/dist/example/main.c +39 -0
  319. package/dist/example/main.cpp +50 -0
  320. package/dist/example/main.go +55 -0
  321. package/dist/example/main.h +22 -0
  322. package/dist/example/main.hpp +28 -0
  323. package/dist/example/main.rs +36 -0
  324. package/dist/example/markdown.md +84 -0
  325. package/dist/example/model.gltf +66 -0
  326. package/dist/example/model.obj +10 -0
  327. package/dist/example/model.ply +18 -0
  328. package/dist/example/model.step +9 -0
  329. package/dist/example/model.stl +30 -0
  330. package/dist/example/module.cc +36 -0
  331. package/dist/example/notes.markdown +15 -0
  332. package/dist/example/ofd.ofd +0 -0
  333. package/dist/example/page.htm +29 -0
  334. package/dist/example/page.html +33 -0
  335. package/dist/example/pdf.pdf +9125 -3
  336. package/dist/example/pic.bmp +0 -0
  337. package/dist/example/pic.gif +0 -0
  338. package/dist/example/pic.jpeg +0 -0
  339. package/dist/example/pic.jpg +0 -0
  340. package/dist/example/pic.png +0 -0
  341. package/dist/example/pic.tif +0 -0
  342. package/dist/example/pic.tiff +0 -0
  343. package/dist/example/pic.webp +0 -0
  344. package/dist/example/ppt.pptx +0 -0
  345. package/dist/example/process.drawio +249 -0
  346. package/dist/example/program.cs +42 -0
  347. package/dist/example/query.sql +30 -0
  348. package/dist/example/report.typ +90 -0
  349. package/dist/example/sample.dra +0 -0
  350. package/dist/example/sample.dwg +0 -0
  351. package/dist/example/sample.eml +46 -0
  352. package/dist/example/sample.msg +0 -0
  353. package/dist/example/sample.olb +0 -0
  354. package/dist/example/samples/apache/blocks_and_tables.dwf +0 -0
  355. package/dist/example/samples/autodesk/house.dwfx +0 -0
  356. package/dist/example/samples/autodesk/robot-arm.dwfx +0 -0
  357. package/dist/example/script.bash +36 -0
  358. package/dist/example/script.sh +24 -0
  359. package/dist/example/settings.ini +23 -0
  360. package/dist/example/table.csv +4 -0
  361. package/dist/example/template.dot +0 -0
  362. package/dist/example/test.doc +0 -0
  363. package/dist/example/text.txt +3 -0
  364. package/dist/example/vector.svg +6 -0
  365. package/dist/example/video.mp4 +0 -0
  366. package/dist/example/word.docx +0 -0
  367. package/dist/index.html +302 -0
  368. package/dist/vendor/libarchive/libarchive.wasm +0 -0
  369. package/dist/vendor/libarchive/worker-bundle.js +6 -0
  370. package/dist/wasm/cad/dwfv-render.wasm +0 -0
  371. package/dist/wasm/cad/dwg-worker.js +24 -0
  372. package/dist/wasm/cad/libredwg-web.js +15 -0
  373. package/dist/wasm/cad/libredwg-web.wasm +0 -0
  374. package/package.json +118 -41
  375. package/dist/components/ImageViewer.js +0 -1898
  376. package/dist/components/MarkdownViewer.js +0 -1577
  377. package/dist/components/PdfView.js +0 -21660
  378. package/dist/components/PptxRender.js +0 -21165
  379. package/dist/components/XlsxTable.js +0 -69864
  380. package/dist/components/_commonjs-dynamic-modules.js +0 -6
  381. package/dist/components/_commonjsHelpers.js +0 -36
  382. package/dist/components/docx-preview.min.js +0 -5287
  383. package/dist/components/index.js +0 -1711
  384. package/dist/components/worker-ref.js +0 -21
  385. package/dist/index.mjs +0 -6
  386. package/dist/index.umd.js +0 -436
  387. package/dist/src/package/common/type.d.ts +0 -26
  388. package/dist/src/package/common/util.d.ts +0 -5
  389. package/dist/src/package/common/worker-ref.d.ts +0 -12
  390. package/dist/src/package/components/FileViewer/FileViewer.vue.d.ts +0 -25
  391. package/dist/src/package/components/FileViewer/index.d.ts +0 -2
  392. package/dist/src/package/components/FileViewer/util.d.ts +0 -2
  393. package/dist/src/package/index.d.ts +0 -12
  394. package/dist/src/package/vendors/docx/index.d.ts +0 -4
  395. package/dist/src/package/vendors/image/ImageViewer.vue.d.ts +0 -13
  396. package/dist/src/package/vendors/image/index.d.ts +0 -4
  397. package/dist/src/package/vendors/md/MarkdownViewer.vue.d.ts +0 -13
  398. package/dist/src/package/vendors/md/index.d.ts +0 -4
  399. package/dist/src/package/vendors/mp4/index.d.ts +0 -4
  400. package/dist/src/package/vendors/pdf/PdfView.vue.d.ts +0 -13
  401. package/dist/src/package/vendors/pdf/index.d.ts +0 -1
  402. package/dist/src/package/vendors/pdf/worker/index.d.ts +0 -4
  403. package/dist/src/package/vendors/pptx/PptxRender.vue.d.ts +0 -81
  404. package/dist/src/package/vendors/pptx/index.d.ts +0 -6
  405. package/dist/src/package/vendors/pptx/options.d.ts +0 -39
  406. package/dist/src/package/vendors/pptx/support/chart.d.ts +0 -4
  407. package/dist/src/package/vendors/pptx/worker/index.d.ts +0 -4
  408. package/dist/src/package/vendors/renders.d.ts +0 -3
  409. package/dist/src/package/vendors/text/CodeViewer.vue.d.ts +0 -13
  410. package/dist/src/package/vendors/text/index.d.ts +0 -6
  411. package/dist/src/package/vendors/xlsx/XlsxTable.vue.d.ts +0 -13
  412. package/dist/src/package/vendors/xlsx/index.d.ts +0 -5
  413. package/dist/src/package/vendors/xlsx/render.d.ts +0 -6
  414. package/dist/src/package/vendors/xlsx/util.d.ts +0 -8
  415. package/dist/src/package/vendors/xlsx/worker/SheetData.d.ts +0 -51
  416. package/dist/src/package/vendors/xlsx/worker/color.d.ts +0 -2
  417. package/dist/src/package/vendors/xlsx/worker/context.d.ts +0 -6
  418. package/dist/src/package/vendors/xlsx/worker/index.d.ts +0 -4
  419. package/dist/src/package/vendors/xlsx/worker/util.d.ts +0 -10
  420. package/dist/style.css +0 -57
  421. package/dist/worker/pdf.worker.js +0 -66
  422. package/dist/worker/pptx.worker.js +0 -21
  423. package/dist/worker/xlsx.worker.js +0 -65
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,249 @@
1
+ <mxfile host="Electron" modified="2023-07-27T15:03:53.622Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="NQ6N_BSsNbhpSRxe8Am2" version="21.6.5" type="device" pages="2">
2
+ <diagram name="detailed DFD" id="WVXzPFL2b05tTFR0NIl-">
3
+ <mxGraphModel dx="1761" dy="930" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
4
+ <root>
5
+ <mxCell id="0" />
6
+ <mxCell id="1" parent="0" />
7
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-52" style="edgeStyle=none;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;endArrow=none;endFill=0;dashed=1;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-30" target="_VqTWJ9UZErcvDfO2zWc-12">
8
+ <mxGeometry relative="1" as="geometry" />
9
+ </mxCell>
10
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-54" style="edgeStyle=none;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;endArrow=none;endFill=0;dashed=1;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-30" target="_VqTWJ9UZErcvDfO2zWc-16">
11
+ <mxGeometry relative="1" as="geometry">
12
+ <Array as="points">
13
+ <mxPoint x="402" y="274" />
14
+ <mxPoint x="366" y="597" />
15
+ </Array>
16
+ </mxGeometry>
17
+ </mxCell>
18
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-68" style="edgeStyle=none;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;endArrow=none;endFill=0;dashed=1;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-12" target="_VqTWJ9UZErcvDfO2zWc-22">
19
+ <mxGeometry relative="1" as="geometry">
20
+ <Array as="points">
21
+ <mxPoint x="843" y="272" />
22
+ </Array>
23
+ </mxGeometry>
24
+ </mxCell>
25
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-69" style="edgeStyle=none;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;endArrow=none;endFill=0;dashed=1;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-16" target="_VqTWJ9UZErcvDfO2zWc-22">
26
+ <mxGeometry relative="1" as="geometry">
27
+ <Array as="points">
28
+ <mxPoint x="714" y="514" />
29
+ </Array>
30
+ </mxGeometry>
31
+ </mxCell>
32
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-42" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-1" target="_VqTWJ9UZErcvDfO2zWc-17">
33
+ <mxGeometry relative="1" as="geometry" />
34
+ </mxCell>
35
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-44" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-1" target="_VqTWJ9UZErcvDfO2zWc-2">
36
+ <mxGeometry relative="1" as="geometry" />
37
+ </mxCell>
38
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-48" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-1" target="_VqTWJ9UZErcvDfO2zWc-6">
39
+ <mxGeometry relative="1" as="geometry" />
40
+ </mxCell>
41
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-1" value="External User" style="whiteSpace=wrap;html=1;aspect=fixed;fontSize=16;rounded=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
42
+ <mxGeometry x="-55" y="279" width="80" height="80" as="geometry" />
43
+ </mxCell>
44
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-45" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-2" target="_VqTWJ9UZErcvDfO2zWc-7">
45
+ <mxGeometry relative="1" as="geometry" />
46
+ </mxCell>
47
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-2" value="enter prompt" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=12;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
48
+ <mxGeometry x="129" y="279" width="80" height="80" as="geometry" />
49
+ </mxCell>
50
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-37" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-3" target="_VqTWJ9UZErcvDfO2zWc-4">
51
+ <mxGeometry relative="1" as="geometry" />
52
+ </mxCell>
53
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-51" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;noJump=0;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-22" target="_VqTWJ9UZErcvDfO2zWc-3">
54
+ <mxGeometry relative="1" as="geometry" />
55
+ </mxCell>
56
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-3" value="LLM interface" style="whiteSpace=wrap;html=1;aspect=fixed;fontSize=16;rounded=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
57
+ <mxGeometry x="558" y="416" width="80" height="80" as="geometry" />
58
+ </mxCell>
59
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-36" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-4" target="_VqTWJ9UZErcvDfO2zWc-7">
60
+ <mxGeometry relative="1" as="geometry" />
61
+ </mxCell>
62
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-4" value="generate response" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=12;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
63
+ <mxGeometry x="416" y="416" width="80" height="80" as="geometry" />
64
+ </mxCell>
65
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-46" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-5" target="_VqTWJ9UZErcvDfO2zWc-1">
66
+ <mxGeometry relative="1" as="geometry" />
67
+ </mxCell>
68
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-5" value="display response" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=12;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
69
+ <mxGeometry x="129" y="416" width="80" height="80" as="geometry" />
70
+ </mxCell>
71
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-49" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-6" target="_VqTWJ9UZErcvDfO2zWc-7">
72
+ <mxGeometry relative="1" as="geometry" />
73
+ </mxCell>
74
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-6" value="correct response" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=12;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
75
+ <mxGeometry x="129" y="553" width="80" height="80" as="geometry" />
76
+ </mxCell>
77
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-35" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;startArrow=classic;startFill=1;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-7" target="_VqTWJ9UZErcvDfO2zWc-31">
78
+ <mxGeometry relative="1" as="geometry" />
79
+ </mxCell>
80
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-38" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-7" target="_VqTWJ9UZErcvDfO2zWc-9">
81
+ <mxGeometry relative="1" as="geometry" />
82
+ </mxCell>
83
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-39" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-7" target="_VqTWJ9UZErcvDfO2zWc-33">
84
+ <mxGeometry relative="1" as="geometry" />
85
+ </mxCell>
86
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-47" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-7" target="_VqTWJ9UZErcvDfO2zWc-5">
87
+ <mxGeometry relative="1" as="geometry" />
88
+ </mxCell>
89
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-50" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-7" target="_VqTWJ9UZErcvDfO2zWc-8">
90
+ <mxGeometry relative="1" as="geometry" />
91
+ </mxCell>
92
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-7" value="website/ API interface" style="whiteSpace=wrap;html=1;aspect=fixed;fontSize=16;rounded=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
93
+ <mxGeometry x="272" y="416" width="80" height="80" as="geometry" />
94
+ </mxCell>
95
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-19" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-8" target="_VqTWJ9UZErcvDfO2zWc-16">
96
+ <mxGeometry relative="1" as="geometry" />
97
+ </mxCell>
98
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-8" value="store wrong response and&amp;nbsp; correction" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=12;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
99
+ <mxGeometry x="416" y="553" width="80" height="80" as="geometry" />
100
+ </mxCell>
101
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-14" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-9" target="_VqTWJ9UZErcvDfO2zWc-12">
102
+ <mxGeometry relative="1" as="geometry" />
103
+ </mxCell>
104
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-9" value="store prompt" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=12;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
105
+ <mxGeometry x="416" y="279" width="80" height="80" as="geometry" />
106
+ </mxCell>
107
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-23" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-10" target="_VqTWJ9UZErcvDfO2zWc-11">
108
+ <mxGeometry relative="1" as="geometry" />
109
+ </mxCell>
110
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-10" value="Training algorithm" style="whiteSpace=wrap;html=1;aspect=fixed;fontSize=16;rounded=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
111
+ <mxGeometry x="724" y="553" width="80" height="80" as="geometry" />
112
+ </mxCell>
113
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-24" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-11" target="_VqTWJ9UZErcvDfO2zWc-22">
114
+ <mxGeometry relative="1" as="geometry" />
115
+ </mxCell>
116
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-11" value="integrate into LLM" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=12;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
117
+ <mxGeometry x="898" y="553" width="80" height="80" as="geometry" />
118
+ </mxCell>
119
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-63" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-12" target="_VqTWJ9UZErcvDfO2zWc-61">
120
+ <mxGeometry relative="1" as="geometry" />
121
+ </mxCell>
122
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-12" value="User Prompts" style="html=1;dashed=0;whiteSpace=wrap;shape=mxgraph.dfd.dataStoreID;align=center;spacingLeft=3;points=[[0,0],[0.5,0],[1,0],[0,0.5],[1,0.5],[0,1],[0.5,1],[1,1]];fontSize=16;labelPosition=center;verticalLabelPosition=top;verticalAlign=bottom;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
123
+ <mxGeometry x="548" y="167" width="100" height="30" as="geometry" />
124
+ </mxCell>
125
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-65" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-16" target="_VqTWJ9UZErcvDfO2zWc-58">
126
+ <mxGeometry relative="1" as="geometry" />
127
+ </mxCell>
128
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-16" value="User Corrections" style="html=1;dashed=0;whiteSpace=wrap;shape=mxgraph.dfd.dataStoreID;align=center;spacingLeft=3;points=[[0,0],[0.5,0],[1,0],[0,0.5],[1,0.5],[0,1],[0.5,1],[1,1]];fontSize=16;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
129
+ <mxGeometry x="406" y="686" width="100" height="30" as="geometry" />
130
+ </mxCell>
131
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-43" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-17" target="_VqTWJ9UZErcvDfO2zWc-7">
132
+ <mxGeometry relative="1" as="geometry" />
133
+ </mxCell>
134
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-17" value="log in" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=12;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
135
+ <mxGeometry x="129" y="142" width="80" height="80" as="geometry" />
136
+ </mxCell>
137
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-29" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-22" target="_VqTWJ9UZErcvDfO2zWc-10">
138
+ <mxGeometry relative="1" as="geometry" />
139
+ </mxCell>
140
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-22" value="Large Language Model" style="html=1;dashed=0;whiteSpace=wrap;shape=mxgraph.dfd.dataStoreID;align=left;spacingLeft=3;points=[[0,0],[0.5,0],[1,0],[0,0.5],[1,0.5],[0,1],[0.5,1],[1,1]];fontSize=16;labelPosition=right;verticalLabelPosition=middle;verticalAlign=middle;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
141
+ <mxGeometry x="888" y="441" width="100" height="30" as="geometry" />
142
+ </mxCell>
143
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-30" value="Accounts Database" style="html=1;dashed=0;whiteSpace=wrap;shape=mxgraph.dfd.dataStoreID;align=center;spacingLeft=3;points=[[0,0],[0.5,0],[1,0],[0,0.5],[1,0.5],[0,1],[0.5,1],[1,1]];fontSize=16;labelPosition=center;verticalLabelPosition=top;verticalAlign=bottom;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
144
+ <mxGeometry x="262" y="167" width="100" height="30" as="geometry" />
145
+ </mxCell>
146
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-34" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;startArrow=classic;startFill=1;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-31" target="_VqTWJ9UZErcvDfO2zWc-30">
147
+ <mxGeometry relative="1" as="geometry" />
148
+ </mxCell>
149
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-31" value="validate user login &amp;amp; account" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=12;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
150
+ <mxGeometry x="272" y="279" width="80" height="80" as="geometry" />
151
+ </mxCell>
152
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-40" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-33" target="_VqTWJ9UZErcvDfO2zWc-3">
153
+ <mxGeometry relative="1" as="geometry" />
154
+ </mxCell>
155
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-33" value="pass prompt to LLM" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=12;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
156
+ <mxGeometry x="558" y="279" width="80" height="80" as="geometry" />
157
+ </mxCell>
158
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-66" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-58" target="_VqTWJ9UZErcvDfO2zWc-10">
159
+ <mxGeometry relative="1" as="geometry" />
160
+ </mxCell>
161
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-58" value="read corrections" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=12;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
162
+ <mxGeometry x="558" y="661" width="80" height="80" as="geometry" />
163
+ </mxCell>
164
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-64" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;jumpStyle=arc;" edge="1" parent="1" source="_VqTWJ9UZErcvDfO2zWc-61" target="_VqTWJ9UZErcvDfO2zWc-10">
165
+ <mxGeometry relative="1" as="geometry" />
166
+ </mxCell>
167
+ <mxCell id="_VqTWJ9UZErcvDfO2zWc-61" value="read prompts" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontSize=12;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
168
+ <mxGeometry x="724" y="279" width="80" height="80" as="geometry" />
169
+ </mxCell>
170
+ </root>
171
+ </mxGraphModel>
172
+ </diagram>
173
+ <diagram id="76xZlu7qyclzCOkfQ9TL" name="context diagram">
174
+ <mxGraphModel dx="2161" dy="930" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
175
+ <root>
176
+ <mxCell id="0" />
177
+ <mxCell id="1" parent="0" />
178
+ <mxCell id="HG2r_jVnAqMEqGUrKUAG-4" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;" edge="1" parent="1" source="HG2r_jVnAqMEqGUrKUAG-1" target="HG2r_jVnAqMEqGUrKUAG-2">
179
+ <mxGeometry relative="1" as="geometry" />
180
+ </mxCell>
181
+ <mxCell id="HG2r_jVnAqMEqGUrKUAG-5" value="submit prompt" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=16;" vertex="1" connectable="0" parent="HG2r_jVnAqMEqGUrKUAG-4">
182
+ <mxGeometry x="-0.5283" y="1" relative="1" as="geometry">
183
+ <mxPoint x="51" y="1" as="offset" />
184
+ </mxGeometry>
185
+ </mxCell>
186
+ <mxCell id="HG2r_jVnAqMEqGUrKUAG-8" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" edge="1" parent="1" source="HG2r_jVnAqMEqGUrKUAG-1" target="HG2r_jVnAqMEqGUrKUAG-2">
187
+ <mxGeometry relative="1" as="geometry">
188
+ <mxPoint x="-309" y="395" as="sourcePoint" />
189
+ <mxPoint x="-97" y="395" as="targetPoint" />
190
+ </mxGeometry>
191
+ </mxCell>
192
+ <mxCell id="HG2r_jVnAqMEqGUrKUAG-9" value="log in" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=16;" vertex="1" connectable="0" parent="HG2r_jVnAqMEqGUrKUAG-8">
193
+ <mxGeometry x="-0.2453" y="2" relative="1" as="geometry">
194
+ <mxPoint y="1" as="offset" />
195
+ </mxGeometry>
196
+ </mxCell>
197
+ <mxCell id="HG2r_jVnAqMEqGUrKUAG-1" value="External User" style="whiteSpace=wrap;html=1;aspect=fixed;fontSize=16;rounded=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
198
+ <mxGeometry x="-463" y="377" width="80" height="80" as="geometry" />
199
+ </mxCell>
200
+ <mxCell id="HG2r_jVnAqMEqGUrKUAG-6" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="HG2r_jVnAqMEqGUrKUAG-2" target="HG2r_jVnAqMEqGUrKUAG-1">
201
+ <mxGeometry relative="1" as="geometry">
202
+ <mxPoint x="-97" y="442" as="sourcePoint" />
203
+ <mxPoint x="-309" y="442" as="targetPoint" />
204
+ </mxGeometry>
205
+ </mxCell>
206
+ <mxCell id="HG2r_jVnAqMEqGUrKUAG-7" value="generated response" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=16;" vertex="1" connectable="0" parent="HG2r_jVnAqMEqGUrKUAG-6">
207
+ <mxGeometry x="0.4245" y="-2" relative="1" as="geometry">
208
+ <mxPoint x="40" as="offset" />
209
+ </mxGeometry>
210
+ </mxCell>
211
+ <mxCell id="HG2r_jVnAqMEqGUrKUAG-11" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="HG2r_jVnAqMEqGUrKUAG-3" target="HG2r_jVnAqMEqGUrKUAG-2">
212
+ <mxGeometry relative="1" as="geometry" />
213
+ </mxCell>
214
+ <mxCell id="BquQUG1SqXJBCUo184Wz-6" value="analyse prompt &amp;amp; generate response" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=16;rotation=0;" vertex="1" connectable="0" parent="HG2r_jVnAqMEqGUrKUAG-11">
215
+ <mxGeometry x="0.7501" relative="1" as="geometry">
216
+ <mxPoint x="125" y="-4" as="offset" />
217
+ </mxGeometry>
218
+ </mxCell>
219
+ <mxCell id="BquQUG1SqXJBCUo184Wz-2" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;startArrow=classic;startFill=1;" edge="1" parent="1" source="HG2r_jVnAqMEqGUrKUAG-2" target="BquQUG1SqXJBCUo184Wz-1">
220
+ <mxGeometry relative="1" as="geometry" />
221
+ </mxCell>
222
+ <mxCell id="BquQUG1SqXJBCUo184Wz-3" value="verify user" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=16;" vertex="1" connectable="0" parent="BquQUG1SqXJBCUo184Wz-2">
223
+ <mxGeometry x="0.1061" y="1" relative="1" as="geometry">
224
+ <mxPoint y="1" as="offset" />
225
+ </mxGeometry>
226
+ </mxCell>
227
+ <mxCell id="BquQUG1SqXJBCUo184Wz-4" style="edgeStyle=none;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontSize=12;startSize=8;endSize=8;exitX=1;exitY=0.25;exitDx=0;exitDy=0;" edge="1" parent="1" source="HG2r_jVnAqMEqGUrKUAG-2" target="HG2r_jVnAqMEqGUrKUAG-3">
228
+ <mxGeometry relative="1" as="geometry" />
229
+ </mxCell>
230
+ <mxCell id="BquQUG1SqXJBCUo184Wz-5" value="train model with prompt" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=16;" vertex="1" connectable="0" parent="BquQUG1SqXJBCUo184Wz-4">
231
+ <mxGeometry x="-0.6739" y="2" relative="1" as="geometry">
232
+ <mxPoint x="68" y="4" as="offset" />
233
+ </mxGeometry>
234
+ </mxCell>
235
+ <UserObject label="LLM application" link="data:page/id,WVXzPFL2b05tTFR0NIl-" id="HG2r_jVnAqMEqGUrKUAG-2">
236
+ <mxCell style="whiteSpace=wrap;html=1;aspect=fixed;fontSize=16;rounded=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
237
+ <mxGeometry x="-97" y="377" width="80" height="80" as="geometry" />
238
+ </mxCell>
239
+ </UserObject>
240
+ <mxCell id="HG2r_jVnAqMEqGUrKUAG-3" value="Large Language Model" style="html=1;dashed=0;whiteSpace=wrap;shape=mxgraph.dfd.dataStoreID;align=left;spacingLeft=3;points=[[0,0],[0.5,0],[1,0],[0,0.5],[1,0.5],[0,1],[0.5,1],[1,1]];fontSize=16;labelPosition=right;verticalLabelPosition=middle;verticalAlign=middle;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
241
+ <mxGeometry x="322" y="402" width="100" height="30" as="geometry" />
242
+ </mxCell>
243
+ <mxCell id="BquQUG1SqXJBCUo184Wz-1" value="Accounts Database" style="html=1;dashed=0;whiteSpace=wrap;shape=mxgraph.dfd.dataStoreID;align=center;spacingLeft=3;points=[[0,0],[0.5,0],[1,0],[0,0.5],[1,0.5],[0,1],[0.5,1],[1,1]];fontSize=16;labelPosition=center;verticalLabelPosition=top;verticalAlign=bottom;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
244
+ <mxGeometry x="-107" y="273" width="100" height="30" as="geometry" />
245
+ </mxCell>
246
+ </root>
247
+ </mxGraphModel>
248
+ </diagram>
249
+ </mxfile>
@@ -0,0 +1,42 @@
1
+ using System;
2
+ using System.Collections.Generic;
3
+ using System.IO;
4
+ using System.Linq;
5
+
6
+ public static class Program
7
+ {
8
+ private static readonly IReadOnlyDictionary<string, string> Renderers =
9
+ new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
10
+ {
11
+ ["pdf"] = "pdfjs-dist",
12
+ ["ofd"] = "DLTech21/ofd.js",
13
+ ["typ"] = "typst.ts",
14
+ ["dxf"] = "@flyfish-dev/cad-viewer",
15
+ ["dwg"] = "@flyfish-dev/cad-viewer",
16
+ ["dwf"] = "@flyfish-dev/cad-viewer",
17
+ ["dwfx"] = "@flyfish-dev/cad-viewer",
18
+ ["xps"] = "@flyfish-dev/cad-viewer",
19
+ ["cs"] = "highlight.js",
20
+ ["json"] = "highlight.js"
21
+ };
22
+
23
+ public static void Main()
24
+ {
25
+ var files = new[] { "contract.pdf", "invoice.ofd", "report.typ", "program.cs", "archive.bin" };
26
+ var rows = files.Select(CreatePreviewPlan);
27
+
28
+ foreach (var row in rows)
29
+ {
30
+ Console.WriteLine($"{row.File,-14} {row.Renderer,-18} async={row.Async}");
31
+ }
32
+ }
33
+
34
+ private static PreviewPlan CreatePreviewPlan(string file)
35
+ {
36
+ var extension = Path.GetExtension(file).TrimStart('.');
37
+ var renderer = Renderers.TryGetValue(extension, out var value) ? value : "fallback";
38
+ return new PreviewPlan(file, renderer, renderer != "fallback");
39
+ }
40
+ }
41
+
42
+ public sealed record PreviewPlan(string File, string Renderer, bool Async);
@@ -0,0 +1,30 @@
1
+ with preview_files as (
2
+ select 1 as id, 'contract.pdf' as filename, 184320 as size_bytes, 'document' as category
3
+ union all
4
+ select 2, 'invoice.ofd', 4278691, 'document'
5
+ union all
6
+ select 3, 'house.dwfx', 17340177, 'drawing'
7
+ union all
8
+ select 4, 'code.ts', 4096, 'source'
9
+ ),
10
+ renderer_map as (
11
+ select 'pdf' as extension, 'pdfjs-dist' as renderer
12
+ union all select 'ofd', 'DLTech21/ofd.js'
13
+ union all select 'dxf', '@flyfish-dev/cad-viewer'
14
+ union all select 'dwg', '@flyfish-dev/cad-viewer'
15
+ union all select 'dwf', '@flyfish-dev/cad-viewer'
16
+ union all select 'dwfx', '@flyfish-dev/cad-viewer'
17
+ union all select 'xps', '@flyfish-dev/cad-viewer'
18
+ union all select 'ts', 'highlight.js'
19
+ )
20
+ select
21
+ f.id,
22
+ f.filename,
23
+ lower(regexp_replace(f.filename, '^.*\.', '')) as extension,
24
+ coalesce(m.renderer, 'fallback') as renderer,
25
+ case when f.size_bytes > 1024 * 1024 then 'large' else 'normal' end as size_bucket
26
+ from preview_files f
27
+ left join renderer_map m
28
+ on m.extension = lower(regexp_replace(f.filename, '^.*\.', ''))
29
+ where f.category in ('document', 'drawing', 'source')
30
+ order by f.id;
@@ -0,0 +1,90 @@
1
+ #set page(paper: "a4", margin: (x: 18mm, y: 16mm))
2
+ #set text(size: 10pt)
3
+ #set heading(numbering: "1.")
4
+
5
+ #align(center)[
6
+ #text(size: 22pt, weight: "bold")[Flyfish Viewer Typst Report]
7
+ #linebreak()
8
+ #text(fill: rgb("#64748b"))[Native Typst preview rendered in the browser]
9
+ ]
10
+
11
+ #v(10pt)
12
+
13
+ #grid(
14
+ columns: (1fr, 1fr, 1fr),
15
+ gutter: 10pt,
16
+ box(fill: rgb("#f0fdf4"), stroke: rgb("#bbf7d0"), inset: 10pt, radius: 5pt)[
17
+ #text(weight: "bold", fill: rgb("#166534"))[Async Runtime]
18
+ #linebreak()
19
+ WASM compiler and renderer are loaded only for `.typ` documents.
20
+ ],
21
+ box(fill: rgb("#eff6ff"), stroke: rgb("#bfdbfe"), inset: 10pt, radius: 5pt)[
22
+ #text(weight: "bold", fill: rgb("#1d4ed8"))[Paged Output]
23
+ #linebreak()
24
+ Page size metadata is preserved for preview, print, and HTML export.
25
+ ],
26
+ box(fill: rgb("#fff7ed"), stroke: rgb("#fed7aa"), inset: 10pt, radius: 5pt)[
27
+ #text(weight: "bold", fill: rgb("#9a3412"))[Safe SVG]
28
+ #linebreak()
29
+ Generated SVG keeps scripts disabled in the viewer integration.
30
+ ],
31
+ )
32
+
33
+ = Why Typst
34
+
35
+ Typst is a modern markup-based typesetting system. It is expressive like a
36
+ document language, but fast enough for interactive browser previews when paired
37
+ with a WASM renderer.
38
+
39
+ == Supported preview path
40
+
41
+ #table(
42
+ columns: (1.1fr, 1.5fr, 1.4fr, 1.3fr),
43
+ inset: 7pt,
44
+ stroke: 0.5pt + rgb("#d8dee8"),
45
+ fill: (x, y) => if y == 0 { rgb("#e8f3ff") } else if calc.rem(y, 2) == 0 { rgb("#f8fafc") },
46
+ [Format], [Renderer], [Loading], [Operations],
47
+ [`.typ`], [`typst.ts` WASM], [Async vendor chunk], [Preview / print / HTML],
48
+ [`.typst`], [Compatibility alias], [Same render path], [Preview / print / HTML],
49
+ [Packages], [Typst registry], [Network-bound when used], [Best with pinned templates],
50
+ )
51
+
52
+ == Formula and code
53
+
54
+ The renderer keeps mathematical layout and text positioning in SVG:
55
+
56
+ $ integral_0^1 x^2 dif x = 1/3 quad and quad E = m c^2 $
57
+
58
+ ```ts
59
+ import FileViewer from '@flyfish-group/file-viewer3'
60
+
61
+ const options = {
62
+ toolbar: { print: true, exportHtml: true },
63
+ watermark: { enabled: true, text: 'Internal Preview' }
64
+ }
65
+ ```
66
+
67
+ #pagebreak()
68
+
69
+ = Browser integration checklist
70
+
71
+ #enum(
72
+ [Select `report.typ` from the grouped demo file picker.],
73
+ [The Typst renderer compiles the source to SVG in a dedicated async chunk.],
74
+ [Each page is displayed on a white document surface over a neutral canvas.],
75
+ [Printing and rendered HTML export use the document page dimensions.],
76
+ )
77
+
78
+ #v(8pt)
79
+
80
+ #quote(block: true)[
81
+ The demo intentionally includes headings, tables, math, code, and multiple
82
+ pages so smoke tests can catch empty output, clipped pages, and broken print
83
+ adapters.
84
+ ]
85
+
86
+ #rect(width: 100%, height: 58pt, fill: rgb("#ecfdf5"), stroke: rgb("#86efac"), radius: 6pt)[
87
+ #align(center + horizon)[#text(weight: "bold", fill: rgb("#166534"))[
88
+ Flyfish Viewer renders Typst documents without server-side conversion.
89
+ ]]
90
+ ]
Binary file
Binary file
@@ -0,0 +1,46 @@
1
+ From: Flyfish Viewer <viewer@flyfish.dev>
2
+ To: Demo User <demo@flyfish.dev>
3
+ Subject: Flyfish Viewer EML Sample
4
+ Date: Tue, 26 May 2026 10:00:00 +0800
5
+ MIME-Version: 1.0
6
+ Message-ID: <sample-eml-20260526@flyfish.dev>
7
+ Content-Type: multipart/mixed; boundary="flyfish-mixed-boundary"
8
+
9
+ --flyfish-mixed-boundary
10
+ Content-Type: multipart/alternative; boundary="flyfish-alt-boundary"
11
+
12
+ --flyfish-alt-boundary
13
+ Content-Type: text/plain; charset="UTF-8"
14
+ Content-Transfer-Encoding: 8bit
15
+
16
+ 这是一封用于验证 EML 在线预览的示例邮件。
17
+
18
+ 它包含纯文本正文、HTML 正文和一个文本附件,便于验证邮件头信息、正文切换、附件下载与附件预览。
19
+
20
+ --flyfish-alt-boundary
21
+ Content-Type: text/html; charset="UTF-8"
22
+ Content-Transfer-Encoding: 8bit
23
+
24
+ <!doctype html>
25
+ <html>
26
+ <body>
27
+ <h1>Flyfish Viewer EML Sample</h1>
28
+ <p>这是一封用于验证 <strong>EML 在线预览</strong> 的示例邮件。</p>
29
+ <ul>
30
+ <li>HTML 正文安全地渲染在 sandbox iframe 中。</li>
31
+ <li>附件会按需读取并继续调用统一文件预览链路。</li>
32
+ <li>头信息、纯文本和 HTML 可以独立切换。</li>
33
+ </ul>
34
+ </body>
35
+ </html>
36
+
37
+ --flyfish-alt-boundary--
38
+
39
+ --flyfish-mixed-boundary
40
+ Content-Type: text/plain; charset="UTF-8"; name="attachment.txt"
41
+ Content-Disposition: attachment; filename="attachment.txt"
42
+ Content-Transfer-Encoding: base64
43
+
44
+ Rmx5ZmlzaCBWaWV3ZXIgZW1haWwgYXR0YWNobWVudCBzYW1wbGUuCg==
45
+
46
+ --flyfish-mixed-boundary--
Binary file
Binary file
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ declare -A RENDERERS=(
5
+ [pdf]="pdfjs-dist"
6
+ [ofd]="DLTech21/ofd.js"
7
+ [dxf]="@flyfish-dev/cad-viewer"
8
+ [dwg]="@flyfish-dev/cad-viewer"
9
+ [dwf]="@flyfish-dev/cad-viewer"
10
+ [dwfx]="@flyfish-dev/cad-viewer"
11
+ [xps]="@flyfish-dev/cad-viewer"
12
+ [ts]="highlight.js"
13
+ [json]="highlight.js"
14
+ )
15
+
16
+ extension_of() {
17
+ local filename=$1
18
+ printf '%s\n' "${filename##*.}" | tr '[:upper:]' '[:lower:]'
19
+ }
20
+
21
+ preview_plan() {
22
+ local filename=$1
23
+ local ext
24
+ ext=$(extension_of "$filename")
25
+ local renderer=${RENDERERS[$ext]:-fallback}
26
+ printf '%-18s -> %-18s async=%s\n' "$filename" "$renderer" "$([[ $renderer != fallback ]] && echo yes || echo no)"
27
+ }
28
+
29
+ main() {
30
+ local files=(contract.pdf invoice.ofd house.dwfx code.ts archive.bin)
31
+ for file in "${files[@]}"; do
32
+ preview_plan "$file"
33
+ done
34
+ }
35
+
36
+ main "$@"
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env sh
2
+ set -eu
3
+
4
+ ROOT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")/../.." && pwd)"
5
+ EXAMPLE_DIR="$ROOT_DIR/public/example"
6
+
7
+ count_files() {
8
+ find "$EXAMPLE_DIR" -type f | wc -l | tr -d ' '
9
+ }
10
+
11
+ print_section() {
12
+ printf '\n== %s ==\n' "$1"
13
+ }
14
+
15
+ print_section "Flyfish Viewer sample audit"
16
+ printf 'root: %s\n' "$ROOT_DIR"
17
+ printf 'examples: %s files\n' "$(count_files)"
18
+
19
+ print_section "code samples"
20
+ find "$EXAMPLE_DIR" \
21
+ \( -name '*.js' -o -name '*.ts' -o -name '*.vue' -o -name '*.sql' \) \
22
+ -maxdepth 1 \
23
+ -type f \
24
+ -print | sort
@@ -0,0 +1,23 @@
1
+ [viewer]
2
+ theme = light
3
+ async = true
4
+ default_scale = fit-width
5
+ sample_picker = accordion
6
+ close_after_select = true
7
+
8
+ [formats]
9
+ ofd = enabled
10
+ typst = enabled
11
+ dxf = enabled
12
+ dwg = compatibility-message
13
+ html = source-only
14
+
15
+ [pdf]
16
+ toolbar = enabled
17
+ navigation = enabled
18
+ auto_fit_on_resize = true
19
+
20
+ [security]
21
+ execute_html = false
22
+ allow_remote_url = true
23
+ require_cors = true
@@ -0,0 +1,4 @@
1
+ name,type,status
2
+ contract,ofd,ready
3
+ drawing,dxf,ready
4
+ source,ts,ready
Binary file
Binary file
@@ -0,0 +1,3 @@
1
+ File Viewer text sample
2
+
3
+ This file is rendered as plain text with the same safe code preview pipeline.
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="480" height="260" viewBox="0 0 480 260">
2
+ <rect width="480" height="260" fill="#f6f8fb"/>
3
+ <rect x="68" y="58" width="344" height="144" rx="20" fill="#ffffff" stroke="#21a366" stroke-width="6"/>
4
+ <text x="240" y="126" text-anchor="middle" font-family="Arial, sans-serif" font-size="34" font-weight="700" fill="#142335">SVG Preview</text>
5
+ <text x="240" y="166" text-anchor="middle" font-family="Arial, sans-serif" font-size="18" fill="#64748b">Rendered as a safe image asset</text>
6
+ </svg>
Binary file
Binary file