@sliiu/present-renderer 0.0.0-stage → 0.1.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 (126) hide show
  1. package/COPYRIGHT +5 -0
  2. package/LICENSE +661 -0
  3. package/THIRD-PARTY-NOTICES.md +221 -0
  4. package/dist/cjs/arrow-geom.js +38 -0
  5. package/dist/cjs/canvas-backend.js +1368 -0
  6. package/dist/cjs/cell-borders.js +25 -0
  7. package/dist/cjs/chart-canvas.js +1059 -0
  8. package/dist/cjs/chart-ex-render.js +275 -0
  9. package/dist/cjs/chart-geom.js +313 -0
  10. package/dist/cjs/chart-svg.js +1110 -0
  11. package/dist/cjs/compose.js +74 -0
  12. package/dist/cjs/effect-clip.js +652 -0
  13. package/dist/cjs/entrance-hide.js +63 -0
  14. package/dist/cjs/font-stack.js +103 -0
  15. package/dist/cjs/hit-geom.js +50 -0
  16. package/dist/cjs/hybrid-backend.js +93 -0
  17. package/dist/cjs/hybrid-segments.js +54 -0
  18. package/dist/cjs/index.js +70 -0
  19. package/dist/cjs/linked-src.js +116 -0
  20. package/dist/cjs/metafile-preview.js +142 -0
  21. package/dist/cjs/model3d-frame.js +199 -0
  22. package/dist/cjs/model3d-render.js +78 -0
  23. package/dist/cjs/morph-transition.js +57 -0
  24. package/dist/cjs/node-affine.js +79 -0
  25. package/dist/cjs/ole-render.js +291 -0
  26. package/dist/cjs/package.json +1 -0
  27. package/dist/cjs/paint-canvas.js +701 -0
  28. package/dist/cjs/paint-svg.js +674 -0
  29. package/dist/cjs/scene-node.js +762 -0
  30. package/dist/cjs/selection.js +130 -0
  31. package/dist/cjs/shape-effects.js +66 -0
  32. package/dist/cjs/shape-front.js +38 -0
  33. package/dist/cjs/stage-chrome.js +15 -0
  34. package/dist/cjs/svg-backend.js +2172 -0
  35. package/dist/cjs/text-autofit.js +48 -0
  36. package/dist/cjs/text-hit.js +284 -0
  37. package/dist/cjs/text-layout.js +408 -0
  38. package/dist/cjs/text-shared.js +238 -0
  39. package/dist/cjs/text-stacked.js +82 -0
  40. package/dist/cjs/text-warp.js +377 -0
  41. package/dist/cjs/text-wordart.js +33 -0
  42. package/dist/cjs/video-frame.js +113 -0
  43. package/dist/cjs/webgl-model3d-backend.js +285 -0
  44. package/dist/cjs/webgl-shape-backend.js +360 -0
  45. package/dist/esm/arrow-geom.js +33 -0
  46. package/dist/esm/canvas-backend.js +1363 -0
  47. package/dist/esm/cell-borders.js +21 -0
  48. package/dist/esm/chart-canvas.js +1056 -0
  49. package/dist/esm/chart-ex-render.js +261 -0
  50. package/dist/esm/chart-geom.js +296 -0
  51. package/dist/esm/chart-svg.js +1107 -0
  52. package/dist/esm/compose.js +71 -0
  53. package/dist/esm/effect-clip.js +648 -0
  54. package/dist/esm/entrance-hide.js +59 -0
  55. package/dist/esm/font-stack.js +100 -0
  56. package/dist/esm/hit-geom.js +45 -0
  57. package/dist/esm/hybrid-backend.js +89 -0
  58. package/dist/esm/hybrid-segments.js +51 -0
  59. package/dist/esm/index.js +24 -0
  60. package/dist/esm/linked-src.js +109 -0
  61. package/dist/esm/metafile-preview.js +135 -0
  62. package/dist/esm/model3d-frame.js +158 -0
  63. package/dist/esm/model3d-render.js +73 -0
  64. package/dist/esm/morph-transition.js +54 -0
  65. package/dist/esm/node-affine.js +71 -0
  66. package/dist/esm/ole-render.js +286 -0
  67. package/dist/esm/paint-canvas.js +693 -0
  68. package/dist/esm/paint-svg.js +670 -0
  69. package/dist/esm/scene-node.js +750 -0
  70. package/dist/esm/selection.js +122 -0
  71. package/dist/esm/shape-effects.js +60 -0
  72. package/dist/esm/shape-front.js +35 -0
  73. package/dist/esm/stage-chrome.js +12 -0
  74. package/dist/esm/svg-backend.js +2168 -0
  75. package/dist/esm/text-autofit.js +44 -0
  76. package/dist/esm/text-hit.js +280 -0
  77. package/dist/esm/text-layout.js +400 -0
  78. package/dist/esm/text-shared.js +221 -0
  79. package/dist/esm/text-stacked.js +78 -0
  80. package/dist/esm/text-warp.js +371 -0
  81. package/dist/esm/text-wordart.js +30 -0
  82. package/dist/esm/video-frame.js +109 -0
  83. package/dist/esm/webgl-model3d-backend.js +248 -0
  84. package/dist/esm/webgl-shape-backend.js +323 -0
  85. package/dist/types/arrow-geom.d.ts +10 -0
  86. package/dist/types/canvas-backend.d.ts +55 -0
  87. package/dist/types/cell-borders.d.ts +9 -0
  88. package/dist/types/chart-canvas.d.ts +2 -0
  89. package/dist/types/chart-ex-render.d.ts +79 -0
  90. package/dist/types/chart-geom.d.ts +112 -0
  91. package/dist/types/chart-svg.d.ts +2 -0
  92. package/dist/types/compose.d.ts +2 -0
  93. package/dist/types/effect-clip.d.ts +10 -0
  94. package/dist/types/entrance-hide.d.ts +16 -0
  95. package/dist/types/font-stack.d.ts +9 -0
  96. package/dist/types/hit-geom.d.ts +15 -0
  97. package/dist/types/hybrid-backend.d.ts +21 -0
  98. package/dist/types/hybrid-segments.d.ts +11 -0
  99. package/dist/types/index.d.ts +24 -0
  100. package/dist/types/linked-src.d.ts +13 -0
  101. package/dist/types/metafile-preview.d.ts +11 -0
  102. package/dist/types/model3d-frame.d.ts +8 -0
  103. package/dist/types/model3d-render.d.ts +4 -0
  104. package/dist/types/morph-transition.d.ts +15 -0
  105. package/dist/types/node-affine.d.ts +22 -0
  106. package/dist/types/ole-render.d.ts +7 -0
  107. package/dist/types/paint-canvas.d.ts +22 -0
  108. package/dist/types/paint-svg.d.ts +19 -0
  109. package/dist/types/scene-node.d.ts +128 -0
  110. package/dist/types/selection.d.ts +22 -0
  111. package/dist/types/shape-effects.d.ts +13 -0
  112. package/dist/types/shape-front.d.ts +4 -0
  113. package/dist/types/stage-chrome.d.ts +8 -0
  114. package/dist/types/svg-backend.d.ts +88 -0
  115. package/dist/types/text-autofit.d.ts +7 -0
  116. package/dist/types/text-hit.d.ts +7 -0
  117. package/dist/types/text-layout.d.ts +35 -0
  118. package/dist/types/text-shared.d.ts +86 -0
  119. package/dist/types/text-stacked.d.ts +11 -0
  120. package/dist/types/text-warp.d.ts +37 -0
  121. package/dist/types/text-wordart.d.ts +18 -0
  122. package/dist/types/video-frame.d.ts +2 -0
  123. package/dist/types/webgl-model3d-backend.d.ts +25 -0
  124. package/dist/types/webgl-shape-backend.d.ts +33 -0
  125. package/package.json +33 -4
  126. package/README.md +0 -3
@@ -0,0 +1,221 @@
1
+ # 第三方许可证
2
+
3
+ 公开包自有代码的版权人是 Sliiu Inc,使用 AGPL-3.0-or-later,全文是同目录的 `AGPL-3.0.txt`。版权行见 `COPYRIGHT`。下面这些库不是 SlimPPT 写的,许可证保持原样。版本是整理这份声明时锁文件里的版本。
4
+
5
+ 各依赖包自带的 `LICENSE` 随 npm 安装保留。这里记下标识,以及不能被商业授权盖住的那几份。
6
+
7
+ ## 不能并进商业授权
8
+
9
+ `mtx-decompressor@1.6.0`(`@ppt/parser`)是 MPL-2.0,作者 ChristopherVR。全文是 `MPL-2.0.txt`。只约束这个库的文件,可以和闭源程序放在一起,不能改成专有许可。
10
+
11
+ `@ffmpeg/ffmpeg@0.12.15` 和 `@ffmpeg/util@0.12.2` 是 MIT,作者 Jerome Wu。编辑器在 `packages/editor/src/video-export.ts` 里另从 `https://unpkg.com/@ffmpeg/core@0.12.6/dist/esm` 加载内核。`0.12.6` 的 npm 元数据写着 MIT。该 WebAssembly 的构建串包含 libx264、libx265 和 libmp3lame,实际是 GPL-2.0-or-later。GPL-2.0 全文是 `GPL-2.0.txt`;“or later” 也可以选用 GNU GPL 3.0。商业授权不含这段内核。
12
+
13
+ ## Apache-2.0
14
+
15
+ 全文是 `Apache-2.0.txt`。可以放进 AGPL 程序,文件本身仍是 Apache-2.0。
16
+
17
+ | 包 | 版本 | 版权声明 |
18
+ |---|---|---|
19
+ | `ai`、`@ai-sdk/anthropic`、`@ai-sdk/google`、`@ai-sdk/mcp`、`@ai-sdk/openai`、`@ai-sdk/openai-compatible`,以及它们带上的 `@ai-sdk/gateway`、`@ai-sdk/provider`、`@ai-sdk/provider-utils`、`@vercel/oidc` | 见附录 | Copyright 2023 Vercel, Inc. |
20
+ | `@paddleocr/paddleocr-js` | 0.4.2 | PaddlePaddle Authors |
21
+ | `@techstark/opencv-js` | 4.10.0-release.1 | Apache-2.0 |
22
+ | `tesseract.js`、`tesseract.js-core` | 7.0.0 | Apache-2.0 |
23
+ | `emf-converter` | 4.8.0 | ChristopherVR |
24
+
25
+ ## 字体
26
+
27
+ `katex@0.18.9` 的代码是 MIT,Copyright (c) 2013-2020 Khan Academy and other contributors。随包的字体文件是 SIL OFL 1.1,全文是 `OFL-1.1.txt`。字体不能改许可,可以随软件分发;用这些字体排出来的幻灯片不因此变成 OFL。
28
+
29
+ 主题只引用 Google Fonts 的 CSS,字体文件不打进包。
30
+
31
+ 网站壳自带的那份字体许可证是另一份 OFL,不进公开包。
32
+
33
+ ## 其余直接依赖
34
+
35
+ | 包 | 版本 | 许可证 | 版权声明 |
36
+ |---|---|---|---|
37
+ | `fast-xml-parser` | 5.11.1 | MIT | Copyright (c) 2017 Amit Kumar Gupta |
38
+ | `fflate` | 0.8.3 | MIT | Copyright (c) 2026 Arjun Barrett |
39
+ | `three` | 0.186.0 | MIT | Copyright © 2010-2026 three.js authors |
40
+ | `zod` | 4.6.5 | MIT | Copyright (c) 2025 Colin McDonnell |
41
+ | `@modelcontextprotocol/sdk` | 1.30.1 | MIT | Copyright (c) 2024 Anthropic, PBC |
42
+ | `lucide` | 1.48.0 | ISC | Copyright (c) 2026 Lucide Icons and Contributors。其中来自 Feather 的图标另为 MIT,Copyright (c) 2013-present Cole Bemis |
43
+ | `clipper-lib` | 6.4.2 | Boost-1.0 | Copyright Angus Johnson 2010-2017。使用、修改和分发遵循 Boost Software License 1.0 |
44
+ | `js-yaml` | 4.3.2 | MIT | Copyright (C) 2011-2015 by Vitaly Puzrin |
45
+ | `onnxruntime-web`、`onnxruntime-common` | 1.30.0 | MIT | 版权声明以包内 LICENSE 为准 |
46
+
47
+ `@modelcontextprotocol/sdk` 会带上 `express`、`hono` 这些服务端库。它们随 `@ppt/ai` 安装,许可证见附录,不因此把网关算进公开包。
48
+
49
+ `json-schema@0.4.0` 是 AFL-2.1 或 BSD-3-Clause。这里取 BSD-3-Clause。
50
+
51
+ ## 不在这份声明里
52
+
53
+ 网关及其依赖、`tests/pptx-viewer` 依赖的 `pptx-react-viewer`(Apache-2.0)、构建工具(`lightningcss`、`sharp`、`axe-core`、Sentry 命令行)。这些不进公开包。
54
+
55
+ ## 附录:公开包生产依赖
56
+
57
+ `animation`、`core`、`parser`、`serializer`、`three-bake`、`renderer`、`transition-fx`、`plugin-sdk`、`themes`、`ui`、`player`、`editor`、`ai` 的生产依赖,含传递依赖。不含 `@ppt/*` 自身,不含上面那份另行加载的 `@ffmpeg/core`。
58
+
59
+ | 包 | 版本 | 许可证 |
60
+ |---|---|---|
61
+ | `@ai-sdk/anthropic` | 4.0.62 | `Apache-2.0` |
62
+ | `@ai-sdk/gateway` | 4.0.91 | `Apache-2.0` |
63
+ | `@ai-sdk/google` | 4.0.79 | `Apache-2.0` |
64
+ | `@ai-sdk/mcp` | 2.0.57 | `Apache-2.0` |
65
+ | `@ai-sdk/openai` | 4.0.74 | `Apache-2.0` |
66
+ | `@ai-sdk/openai-compatible` | 3.0.55 | `Apache-2.0` |
67
+ | `@ai-sdk/provider` | 4.0.18 | `Apache-2.0` |
68
+ | `@ai-sdk/provider-utils` | 5.0.47 | `Apache-2.0` |
69
+ | `@exodus/bytes` | 1.16.0 | `MIT` |
70
+ | `@ffmpeg/ffmpeg` | 0.12.15 | `MIT` |
71
+ | `@ffmpeg/types` | 0.12.4 | `MIT` |
72
+ | `@ffmpeg/util` | 0.12.2 | `MIT` |
73
+ | `@hono/node-server` | 2.1.1 | `MIT` |
74
+ | `@modelcontextprotocol/sdk` | 1.30.1 | `MIT` |
75
+ | `@nodable/entities` | 3.0.0 | `MIT` |
76
+ | `@paddleocr/paddleocr-js` | 0.4.2 | `Apache-2.0` |
77
+ | `@protobufjs/aspromise` | 1.1.2 | `BSD-3-Clause` |
78
+ | `@protobufjs/base64` | 1.1.2 | `BSD-3-Clause` |
79
+ | `@protobufjs/codegen` | 2.0.5 | `BSD-3-Clause` |
80
+ | `@protobufjs/eventemitter` | 1.1.1 | `BSD-3-Clause` |
81
+ | `@protobufjs/fetch` | 1.1.1 | `BSD-3-Clause` |
82
+ | `@protobufjs/float` | 1.0.2 | `BSD-3-Clause` |
83
+ | `@protobufjs/path` | 1.1.2 | `BSD-3-Clause` |
84
+ | `@protobufjs/pool` | 1.1.0 | `BSD-3-Clause` |
85
+ | `@protobufjs/utf8` | 1.1.2 | `BSD-3-Clause` |
86
+ | `@standard-schema/spec` | 1.1.0 | `MIT` |
87
+ | `@techstark/opencv-js` | 4.10.0-release.1 | `Apache-2.0` |
88
+ | `@types/node` | 26.6.2 | `MIT` |
89
+ | `@vercel/oidc` | 3.2.0 | `Apache-2.0` |
90
+ | `@workflow/serde` | 4.1.0 | `Apache-2.0` |
91
+ | `accepts` | 2.0.0 | `MIT` |
92
+ | `ai` | 7.0.113 | `Apache-2.0` |
93
+ | `ajv` | 8.20.0 | `MIT` |
94
+ | `ajv-formats` | 3.0.1 | `MIT` |
95
+ | `anynum` | 1.0.1 | `MIT` |
96
+ | `argparse` | 2.0.1 | `Python-2.0` |
97
+ | `bmp-js` | 0.1.0 | `MIT` |
98
+ | `body-parser` | 2.3.0 | `MIT` |
99
+ | `bytes` | 3.1.2 | `MIT` |
100
+ | `call-bind-apply-helpers` | 1.0.2 | `MIT` |
101
+ | `call-bound` | 1.0.4 | `MIT` |
102
+ | `clipper-lib` | 6.4.2 | `BSL`(Boost-1.0) |
103
+ | `commander` | 15.0.0 | `MIT` |
104
+ | `content-disposition` | 1.1.0 | `MIT` |
105
+ | `content-type` | 1.0.5 | `MIT` |
106
+ | `cookie` | 1.1.1 | `MIT` |
107
+ | `cookie-signature` | 1.2.2 | `MIT` |
108
+ | `cors` | 2.8.6 | `MIT` |
109
+ | `cross-spawn` | 7.0.6 | `MIT` |
110
+ | `debug` | 4.4.3 | `MIT` |
111
+ | `depd` | 2.0.0 | `MIT` |
112
+ | `dunder-proto` | 1.0.1 | `MIT` |
113
+ | `ee-first` | 1.1.1 | `MIT` |
114
+ | `emf-converter` | 4.8.0 | `Apache-2.0` |
115
+ | `encodeurl` | 2.0.0 | `MIT` |
116
+ | `es-define-property` | 1.0.1 | `MIT` |
117
+ | `es-errors` | 1.3.0 | `MIT` |
118
+ | `es-object-atoms` | 1.1.2 | `MIT` |
119
+ | `escape-html` | 1.0.3 | `MIT` |
120
+ | `etag` | 1.8.1 | `MIT` |
121
+ | `eventsource` | 3.0.7 | `MIT` |
122
+ | `eventsource-parser` | 3.1.1 | `MIT` |
123
+ | `express` | 5.2.1 | `MIT` |
124
+ | `express-rate-limit` | 8.7.0 | `MIT` |
125
+ | `fast-deep-equal` | 3.1.3 | `MIT` |
126
+ | `fast-uri` | 3.1.8 | `BSD-3-Clause` |
127
+ | `fast-xml-builder` | 1.3.1 | `MIT` |
128
+ | `fast-xml-parser` | 5.11.1 | `MIT` |
129
+ | `fflate` | 0.8.3 | `MIT` |
130
+ | `finalhandler` | 2.1.1 | `MIT` |
131
+ | `flatbuffers` | 25.9.23 | `Apache-2.0` |
132
+ | `forwarded` | 0.2.0 | `MIT` |
133
+ | `fresh` | 2.0.0 | `MIT` |
134
+ | `function-bind` | 1.1.2 | `MIT` |
135
+ | `get-intrinsic` | 1.3.0 | `MIT` |
136
+ | `get-proto` | 1.0.1 | `MIT` |
137
+ | `gopd` | 1.2.0 | `MIT` |
138
+ | `guid-typescript` | 1.0.9 | `ISC` |
139
+ | `has-symbols` | 1.1.0 | `MIT` |
140
+ | `hasown` | 2.0.4 | `MIT` |
141
+ | `hono` | 4.13.9 | `MIT` |
142
+ | `http-errors` | 2.0.1 | `MIT` |
143
+ | `iconv-lite` | 0.7.3 | `MIT` |
144
+ | `idb-keyval` | 6.3.0 | `Apache-2.0` |
145
+ | `inherits` | 2.0.4 | `ISC` |
146
+ | `ip-address` | 10.7.2 | `MIT` |
147
+ | `ipaddr.js` | 1.9.1 | `MIT` |
148
+ | `is-promise` | 4.0.0 | `MIT` |
149
+ | `is-unsafe` | 2.0.2 | `MIT` |
150
+ | `is-url` | 1.2.4 | `MIT` |
151
+ | `isexe` | 2.0.0 | `ISC` |
152
+ | `jose` | 6.2.12 | `MIT` |
153
+ | `js-yaml` | 4.3.2 | `MIT` |
154
+ | `json-schema` | 0.4.0 | `BSD-3-Clause`(双许可,取这一支) |
155
+ | `json-schema-traverse` | 1.0.0 | `MIT` |
156
+ | `json-schema-typed` | 8.0.2 | `BSD-2-Clause` |
157
+ | `katex` | 0.18.9 | `MIT` |
158
+ | `long` | 5.3.2 | `Apache-2.0` |
159
+ | `lucide` | 1.48.0 | `ISC` |
160
+ | `math-intrinsics` | 1.1.0 | `MIT` |
161
+ | `media-typer` | 1.1.1 | `MIT` |
162
+ | `merge-descriptors` | 2.0.0 | `MIT` |
163
+ | `mime-db` | 1.54.0 | `MIT` |
164
+ | `mime-types` | 3.0.2 | `MIT` |
165
+ | `ms` | 2.1.3 | `MIT` |
166
+ | `mtx-decompressor` | 1.6.0 | `MPL-2.0` |
167
+ | `negotiator` | 1.1.0 | `MIT` |
168
+ | `node-fetch` | 2.7.0 | `MIT` |
169
+ | `object-assign` | 4.1.1 | `MIT` |
170
+ | `object-inspect` | 1.13.4 | `MIT` |
171
+ | `on-finished` | 2.4.1 | `MIT` |
172
+ | `once` | 1.4.0 | `ISC` |
173
+ | `onnxruntime-common` | 1.30.0 | `MIT` |
174
+ | `onnxruntime-web` | 1.30.0 | `MIT` |
175
+ | `opencollective-postinstall` | 2.0.3 | `MIT` |
176
+ | `parseurl` | 1.3.3 | `MIT` |
177
+ | `path-expression-matcher` | 1.6.2 | `MIT` |
178
+ | `path-key` | 3.1.1 | `MIT` |
179
+ | `path-to-regexp` | 8.4.2 | `MIT` |
180
+ | `pkce-challenge` | 5.0.1 | `MIT` |
181
+ | `platform` | 1.3.6 | `MIT` |
182
+ | `protobufjs` | 7.6.6 | `BSD-3-Clause` |
183
+ | `proxy-addr` | 2.0.8 | `MIT` |
184
+ | `punycode` | 2.3.1 | `MIT` |
185
+ | `qs` | 6.16.0 | `BSD-3-Clause` |
186
+ | `range-parser` | 1.3.0 | `MIT` |
187
+ | `raw-body` | 3.0.2 | `MIT` |
188
+ | `regenerator-runtime` | 0.13.11 | `MIT` |
189
+ | `require-from-string` | 2.0.2 | `MIT` |
190
+ | `router` | 2.2.0 | `MIT` |
191
+ | `safer-buffer` | 2.1.2 | `MIT` |
192
+ | `send` | 1.2.1 | `MIT` |
193
+ | `serve-static` | 2.2.1 | `MIT` |
194
+ | `setprototypeof` | 1.2.0 | `ISC` |
195
+ | `shebang-command` | 2.0.0 | `MIT` |
196
+ | `shebang-regex` | 3.0.0 | `MIT` |
197
+ | `side-channel` | 1.1.1 | `MIT` |
198
+ | `side-channel-list` | 1.0.1 | `MIT` |
199
+ | `side-channel-map` | 1.0.1 | `MIT` |
200
+ | `side-channel-weakmap` | 1.0.2 | `MIT` |
201
+ | `statuses` | 2.0.2 | `MIT` |
202
+ | `strnum` | 2.4.2 | `MIT` |
203
+ | `tesseract.js` | 7.0.0 | `Apache-2.0` |
204
+ | `tesseract.js-core` | 7.0.0 | `Apache-2.0` |
205
+ | `three` | 0.186.0 | `MIT` |
206
+ | `toidentifier` | 1.0.1 | `MIT` |
207
+ | `tr46` | 6.0.0 | `MIT` |
208
+ | `type-is` | 2.1.0 | `MIT` |
209
+ | `undici` | 7.29.0 | `MIT` |
210
+ | `undici-types` | 8.9.0 | `MIT` |
211
+ | `unpipe` | 1.0.0 | `MIT` |
212
+ | `vary` | 1.1.2 | `MIT` |
213
+ | `wasm-feature-detect` | 1.9.0 | `Apache-2.0` |
214
+ | `webidl-conversions` | 8.0.1 | `BSD-2-Clause` |
215
+ | `whatwg-url` | 17.1.2 | `MIT` |
216
+ | `which` | 2.0.2 | `ISC` |
217
+ | `wrappy` | 1.0.2 | `ISC` |
218
+ | `xml-naming` | 0.3.0 | `MIT` |
219
+ | `zlibjs` | 0.3.1 | `MIT` |
220
+ | `zod` | 4.6.5 | `MIT` |
221
+ | `zod-to-json-schema` | 3.25.2 | `ISC` |
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.arrowSize = arrowSize;
4
+ exports.arrowPathD = arrowPathD;
5
+ exports.arrowRefX = arrowRefX;
6
+ // 线端箭头(headEnd / tailEnd)的几何,SVG 与 Canvas 两个 backend 共用,保证导出一致。
7
+ // 尺寸单位为 strokeWidth 的倍数(与 SVG markerUnits="strokeWidth" 一致)。
8
+ function arrowSize(spec) {
9
+ const wMap = { sm: 3, med: 5, lg: 8 };
10
+ const lMap = { sm: 3, med: 5, lg: 8 };
11
+ return { w: wMap[spec.w ?? "med"], l: lMap[spec.len ?? "med"] };
12
+ }
13
+ function arrowPathD(kind, w, l, side) {
14
+ if (kind === "oval") {
15
+ return `M 0 ${-w / 2} a ${l / 2} ${w / 2} 0 1 0 0 ${w} a ${l / 2} ${w / 2} 0 1 0 0 ${-w} z`;
16
+ }
17
+ if (kind === "diamond") {
18
+ return `M 0 0 L ${l / 2} ${-w / 2} L ${l} 0 L ${l / 2} ${w / 2} Z`;
19
+ }
20
+ if (kind === "stealth") {
21
+ return side === "end"
22
+ ? `M 0 ${-w / 2} L ${l} 0 L 0 ${w / 2} L ${l * 0.3} 0 Z`
23
+ : `M ${l} ${-w / 2} L 0 0 L ${l} ${w / 2} L ${l * 0.7} 0 Z`;
24
+ }
25
+ return side === "end"
26
+ ? `M 0 ${-w / 2} L ${l} 0 L 0 ${w / 2} Z`
27
+ : `M ${l} ${-w / 2} L 0 0 L ${l} ${w / 2} Z`;
28
+ }
29
+ // PowerPoint / WPS 约定下,三角 / 隐身箭头的"基底"锚定在线端点,"尖端"向外延伸;
30
+ // 圆 / 菱形等中心对称形状骑跨在线端点上(中心 = 端点)。orient="auto" 让 +X 沿线方向,
31
+ // 因此 end 侧 refX=0(基底在端点、尖端向 +X 外延),start 侧 path 已镜像、refX=l。
32
+ function arrowRefX(kind, side, l) {
33
+ if (kind === "oval")
34
+ return 0;
35
+ if (kind === "diamond")
36
+ return l / 2;
37
+ return side === "end" ? 0 : l;
38
+ }