@grafloria/element 0.3.20 → 0.3.22

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 (1083) hide show
  1. package/package.json +2 -2
  2. package/src/libs/element/src/index.d.ts +0 -92
  3. package/src/libs/element/src/index.js +0 -576
  4. package/src/libs/element/src/lib/dashboard-kit/dashboard.d.ts +0 -345
  5. package/src/libs/element/src/lib/dashboard-kit/dashboard.js +0 -594
  6. package/src/libs/element/src/lib/dashboard-kit/grid-binder.d.ts +0 -277
  7. package/src/libs/element/src/lib/dashboard-kit/grid-binder.js +0 -1636
  8. package/src/libs/element/src/lib/dashboard-kit/grid-mapping.d.ts +0 -141
  9. package/src/libs/element/src/lib/dashboard-kit/grid-mapping.js +0 -176
  10. package/src/libs/element/src/lib/dashboard-kit/index.d.ts +0 -5
  11. package/src/libs/element/src/lib/dashboard-kit/index.js +0 -33
  12. package/src/libs/element/src/lib/dashboard-kit/styles.d.ts +0 -25
  13. package/src/libs/element/src/lib/dashboard-kit/styles.js +0 -209
  14. package/src/libs/element/src/lib/dashboard-kit/widgets.d.ts +0 -112
  15. package/src/libs/element/src/lib/dashboard-kit/widgets.js +0 -389
  16. package/src/libs/element/src/lib/diagram-kit/card.d.ts +0 -75
  17. package/src/libs/element/src/lib/diagram-kit/card.js +0 -209
  18. package/src/libs/element/src/lib/diagram-kit/editing.d.ts +0 -58
  19. package/src/libs/element/src/lib/diagram-kit/editing.js +0 -453
  20. package/src/libs/element/src/lib/diagram-kit/er.d.ts +0 -73
  21. package/src/libs/element/src/lib/diagram-kit/er.js +0 -163
  22. package/src/libs/element/src/lib/diagram-kit/handles.d.ts +0 -181
  23. package/src/libs/element/src/lib/diagram-kit/handles.js +0 -325
  24. package/src/libs/element/src/lib/diagram-kit/index.d.ts +0 -10
  25. package/src/libs/element/src/lib/diagram-kit/index.js +0 -55
  26. package/src/libs/element/src/lib/diagram-kit/join-guidance.d.ts +0 -116
  27. package/src/libs/element/src/lib/diagram-kit/join-guidance.js +0 -331
  28. package/src/libs/element/src/lib/diagram-kit/rows.d.ts +0 -53
  29. package/src/libs/element/src/lib/diagram-kit/rows.js +0 -147
  30. package/src/libs/element/src/lib/diagram-kit/styles.d.ts +0 -18
  31. package/src/libs/element/src/lib/diagram-kit/styles.js +0 -122
  32. package/src/libs/element/src/lib/diagram-kit/uml.d.ts +0 -59
  33. package/src/libs/element/src/lib/diagram-kit/uml.js +0 -138
  34. package/src/libs/element/src/lib/diagram-kit/update.d.ts +0 -133
  35. package/src/libs/element/src/lib/diagram-kit/update.js +0 -251
  36. package/src/libs/element/src/lib/grafloria-flow-element.d.ts +0 -48
  37. package/src/libs/element/src/lib/grafloria-flow-element.js +0 -271
  38. package/src/libs/element/src/lib/grafloria.d.ts +0 -72
  39. package/src/libs/element/src/lib/grafloria.js +0 -74
  40. package/src/libs/element/src/lib/load.d.ts +0 -72
  41. package/src/libs/element/src/lib/load.js +0 -255
  42. package/src/libs/element/src/lib/node-type-registry.d.ts +0 -39
  43. package/src/libs/element/src/lib/node-type-registry.js +0 -50
  44. package/src/libs/element/src/lib/stencil-kit/builders.d.ts +0 -45
  45. package/src/libs/element/src/lib/stencil-kit/builders.js +0 -24
  46. package/src/libs/element/src/lib/stencil-kit/card-builders.d.ts +0 -2
  47. package/src/libs/element/src/lib/stencil-kit/card-builders.js +0 -108
  48. package/src/libs/element/src/lib/stencil-kit/index.d.ts +0 -7
  49. package/src/libs/element/src/lib/stencil-kit/index.js +0 -19
  50. package/src/libs/element/src/lib/stencil-kit/palette.d.ts +0 -93
  51. package/src/libs/element/src/lib/stencil-kit/palette.js +0 -430
  52. package/src/libs/element/src/lib/stencil-kit/shape-data.d.ts +0 -28
  53. package/src/libs/element/src/lib/stencil-kit/shape-data.js +0 -540
  54. package/src/libs/element/src/lib/stencil-kit/styles.d.ts +0 -2
  55. package/src/libs/element/src/lib/stencil-kit/styles.js +0 -129
  56. package/src/libs/engine/src/adapters/component-adapter.interface.d.ts +0 -302
  57. package/src/libs/engine/src/adapters/component-adapter.interface.js +0 -84
  58. package/src/libs/engine/src/adapters/index.d.ts +0 -7
  59. package/src/libs/engine/src/adapters/index.js +0 -11
  60. package/src/libs/engine/src/clipboard/ClipboardManager.d.ts +0 -81
  61. package/src/libs/engine/src/clipboard/ClipboardManager.js +0 -108
  62. package/src/libs/engine/src/clipboard/index.d.ts +0 -1
  63. package/src/libs/engine/src/clipboard/index.js +0 -6
  64. package/src/libs/engine/src/collab/apply-op.d.ts +0 -42
  65. package/src/libs/engine/src/collab/apply-op.js +0 -939
  66. package/src/libs/engine/src/collab/capture.d.ts +0 -147
  67. package/src/libs/engine/src/collab/capture.js +0 -510
  68. package/src/libs/engine/src/collab/index.d.ts +0 -12
  69. package/src/libs/engine/src/collab/index.js +0 -84
  70. package/src/libs/engine/src/collab/integrity.d.ts +0 -178
  71. package/src/libs/engine/src/collab/integrity.js +0 -438
  72. package/src/libs/engine/src/collab/lww.d.ts +0 -47
  73. package/src/libs/engine/src/collab/lww.js +0 -188
  74. package/src/libs/engine/src/collab/op-log.d.ts +0 -50
  75. package/src/libs/engine/src/collab/op-log.js +0 -167
  76. package/src/libs/engine/src/collab/op.d.ts +0 -120
  77. package/src/libs/engine/src/collab/op.js +0 -118
  78. package/src/libs/engine/src/collab/replica.d.ts +0 -188
  79. package/src/libs/engine/src/collab/replica.js +0 -526
  80. package/src/libs/engine/src/collab/undo.d.ts +0 -106
  81. package/src/libs/engine/src/collab/undo.js +0 -388
  82. package/src/libs/engine/src/commands/Command.d.ts +0 -66
  83. package/src/libs/engine/src/commands/Command.js +0 -64
  84. package/src/libs/engine/src/commands/CommandManager.d.ts +0 -161
  85. package/src/libs/engine/src/commands/CommandManager.js +0 -417
  86. package/src/libs/engine/src/commands/basic/AddGroupCommand.d.ts +0 -13
  87. package/src/libs/engine/src/commands/basic/AddGroupCommand.js +0 -50
  88. package/src/libs/engine/src/commands/basic/AddLinkCommand.d.ts +0 -13
  89. package/src/libs/engine/src/commands/basic/AddLinkCommand.js +0 -50
  90. package/src/libs/engine/src/commands/basic/AddNodeCommand.d.ts +0 -13
  91. package/src/libs/engine/src/commands/basic/AddNodeCommand.js +0 -65
  92. package/src/libs/engine/src/commands/basic/AddToGroupCommand.d.ts +0 -12
  93. package/src/libs/engine/src/commands/basic/AddToGroupCommand.js +0 -73
  94. package/src/libs/engine/src/commands/basic/AlignCommands.d.ts +0 -42
  95. package/src/libs/engine/src/commands/basic/AlignCommands.js +0 -138
  96. package/src/libs/engine/src/commands/basic/CollapseGroupCommand.d.ts +0 -14
  97. package/src/libs/engine/src/commands/basic/CollapseGroupCommand.js +0 -70
  98. package/src/libs/engine/src/commands/basic/CopyCommand.d.ts +0 -29
  99. package/src/libs/engine/src/commands/basic/CopyCommand.js +0 -131
  100. package/src/libs/engine/src/commands/basic/CutCommand.d.ts +0 -49
  101. package/src/libs/engine/src/commands/basic/CutCommand.js +0 -68
  102. package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.d.ts +0 -58
  103. package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.js +0 -309
  104. package/src/libs/engine/src/commands/basic/DuplicateCommand.d.ts +0 -31
  105. package/src/libs/engine/src/commands/basic/DuplicateCommand.js +0 -232
  106. package/src/libs/engine/src/commands/basic/ExpandGroupCommand.d.ts +0 -12
  107. package/src/libs/engine/src/commands/basic/ExpandGroupCommand.js +0 -69
  108. package/src/libs/engine/src/commands/basic/MoveGroupCommand.d.ts +0 -46
  109. package/src/libs/engine/src/commands/basic/MoveGroupCommand.js +0 -77
  110. package/src/libs/engine/src/commands/basic/MoveNodeCommand.d.ts +0 -30
  111. package/src/libs/engine/src/commands/basic/MoveNodeCommand.js +0 -87
  112. package/src/libs/engine/src/commands/basic/NodeZOrderCommands.d.ts +0 -39
  113. package/src/libs/engine/src/commands/basic/NodeZOrderCommands.js +0 -120
  114. package/src/libs/engine/src/commands/basic/PasteCommand.d.ts +0 -33
  115. package/src/libs/engine/src/commands/basic/PasteCommand.js +0 -228
  116. package/src/libs/engine/src/commands/basic/PortCommands.d.ts +0 -22
  117. package/src/libs/engine/src/commands/basic/PortCommands.js +0 -85
  118. package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.d.ts +0 -15
  119. package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.js +0 -59
  120. package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.d.ts +0 -12
  121. package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.js +0 -64
  122. package/src/libs/engine/src/commands/basic/RemoveGroupCommand.d.ts +0 -12
  123. package/src/libs/engine/src/commands/basic/RemoveGroupCommand.js +0 -56
  124. package/src/libs/engine/src/commands/basic/RemoveLinkCommand.d.ts +0 -12
  125. package/src/libs/engine/src/commands/basic/RemoveLinkCommand.js +0 -57
  126. package/src/libs/engine/src/commands/basic/RemoveNodeCommand.d.ts +0 -23
  127. package/src/libs/engine/src/commands/basic/RemoveNodeCommand.js +0 -108
  128. package/src/libs/engine/src/commands/basic/ResizeNodeCommand.d.ts +0 -16
  129. package/src/libs/engine/src/commands/basic/ResizeNodeCommand.js +0 -81
  130. package/src/libs/engine/src/commands/basic/RotateNodeCommand.d.ts +0 -37
  131. package/src/libs/engine/src/commands/basic/RotateNodeCommand.js +0 -88
  132. package/src/libs/engine/src/commands/basic/SetFlexItemCommand.d.ts +0 -14
  133. package/src/libs/engine/src/commands/basic/SetFlexItemCommand.js +0 -74
  134. package/src/libs/engine/src/commands/basic/SetGridItemCommand.d.ts +0 -14
  135. package/src/libs/engine/src/commands/basic/SetGridItemCommand.js +0 -74
  136. package/src/libs/engine/src/commands/basic/SetLayoutCommand.d.ts +0 -16
  137. package/src/libs/engine/src/commands/basic/SetLayoutCommand.js +0 -80
  138. package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.d.ts +0 -28
  139. package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.js +0 -83
  140. package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.d.ts +0 -24
  141. package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.js +0 -81
  142. package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.d.ts +0 -14
  143. package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.js +0 -75
  144. package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.d.ts +0 -14
  145. package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.js +0 -77
  146. package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.d.ts +0 -32
  147. package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.js +0 -87
  148. package/src/libs/engine/src/commands/basic/SetNodeDataCommand.d.ts +0 -14
  149. package/src/libs/engine/src/commands/basic/SetNodeDataCommand.js +0 -93
  150. package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.d.ts +0 -26
  151. package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.js +0 -81
  152. package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.d.ts +0 -14
  153. package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.js +0 -69
  154. package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.d.ts +0 -15
  155. package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.js +0 -88
  156. package/src/libs/engine/src/commands/basic/SetParentCommand.d.ts +0 -13
  157. package/src/libs/engine/src/commands/basic/SetParentCommand.js +0 -109
  158. package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.d.ts +0 -34
  159. package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.js +0 -86
  160. package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.d.ts +0 -31
  161. package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.js +0 -88
  162. package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.d.ts +0 -15
  163. package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.js +0 -72
  164. package/src/libs/engine/src/commands/basic/index.d.ts +0 -41
  165. package/src/libs/engine/src/commands/basic/index.js +0 -52
  166. package/src/libs/engine/src/commands/basic/remapNodePortIds.d.ts +0 -23
  167. package/src/libs/engine/src/commands/basic/remapNodePortIds.js +0 -46
  168. package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.d.ts +0 -31
  169. package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.js +0 -49
  170. package/src/libs/engine/src/commands/composite/BatchCommand.d.ts +0 -19
  171. package/src/libs/engine/src/commands/composite/BatchCommand.js +0 -61
  172. package/src/libs/engine/src/commands/composite/MacroCommand.d.ts +0 -35
  173. package/src/libs/engine/src/commands/composite/MacroCommand.js +0 -87
  174. package/src/libs/engine/src/commands/composite/index.d.ts +0 -2
  175. package/src/libs/engine/src/commands/composite/index.js +0 -7
  176. package/src/libs/engine/src/commands/index.d.ts +0 -4
  177. package/src/libs/engine/src/commands/index.js +0 -9
  178. package/src/libs/engine/src/comments/comment-store.d.ts +0 -238
  179. package/src/libs/engine/src/comments/comment-store.js +0 -538
  180. package/src/libs/engine/src/comments/index.d.ts +0 -4
  181. package/src/libs/engine/src/comments/index.js +0 -31
  182. package/src/libs/engine/src/comments/mentions.d.ts +0 -52
  183. package/src/libs/engine/src/comments/mentions.js +0 -94
  184. package/src/libs/engine/src/comments/read-state.d.ts +0 -37
  185. package/src/libs/engine/src/comments/read-state.js +0 -105
  186. package/src/libs/engine/src/comments/types.d.ts +0 -154
  187. package/src/libs/engine/src/comments/types.js +0 -107
  188. package/src/libs/engine/src/config/InteractionConfig.d.ts +0 -330
  189. package/src/libs/engine/src/config/InteractionConfig.js +0 -154
  190. package/src/libs/engine/src/config/index.d.ts +0 -1
  191. package/src/libs/engine/src/config/index.js +0 -6
  192. package/src/libs/engine/src/dsl/DSL.d.ts +0 -197
  193. package/src/libs/engine/src/dsl/DSL.js +0 -564
  194. package/src/libs/engine/src/dsl/advanced/StyleParser.d.ts +0 -75
  195. package/src/libs/engine/src/dsl/advanced/StyleParser.js +0 -166
  196. package/src/libs/engine/src/dsl/advanced/TemplateParser.d.ts +0 -88
  197. package/src/libs/engine/src/dsl/advanced/TemplateParser.js +0 -226
  198. package/src/libs/engine/src/dsl/advanced/index.d.ts +0 -9
  199. package/src/libs/engine/src/dsl/advanced/index.js +0 -13
  200. package/src/libs/engine/src/dsl/detector/LayoutDetector.d.ts +0 -80
  201. package/src/libs/engine/src/dsl/detector/LayoutDetector.js +0 -333
  202. package/src/libs/engine/src/dsl/extended/BPMNGenerator.d.ts +0 -38
  203. package/src/libs/engine/src/dsl/extended/BPMNGenerator.js +0 -90
  204. package/src/libs/engine/src/dsl/extended/BPMNParser.d.ts +0 -83
  205. package/src/libs/engine/src/dsl/extended/BPMNParser.js +0 -198
  206. package/src/libs/engine/src/dsl/extended/ERDGenerator.d.ts +0 -38
  207. package/src/libs/engine/src/dsl/extended/ERDGenerator.js +0 -126
  208. package/src/libs/engine/src/dsl/extended/ERDParser.d.ts +0 -81
  209. package/src/libs/engine/src/dsl/extended/ERDParser.js +0 -161
  210. package/src/libs/engine/src/dsl/extended/ERDTransformer.d.ts +0 -43
  211. package/src/libs/engine/src/dsl/extended/ERDTransformer.js +0 -105
  212. package/src/libs/engine/src/dsl/extended/UMLGenerator.d.ts +0 -42
  213. package/src/libs/engine/src/dsl/extended/UMLGenerator.js +0 -157
  214. package/src/libs/engine/src/dsl/extended/UMLParser.d.ts +0 -99
  215. package/src/libs/engine/src/dsl/extended/UMLParser.js +0 -200
  216. package/src/libs/engine/src/dsl/extended/index.d.ts +0 -13
  217. package/src/libs/engine/src/dsl/extended/index.js +0 -27
  218. package/src/libs/engine/src/dsl/generator/DSLFormatter.d.ts +0 -87
  219. package/src/libs/engine/src/dsl/generator/DSLFormatter.js +0 -261
  220. package/src/libs/engine/src/dsl/generator/DSLGenerator.d.ts +0 -96
  221. package/src/libs/engine/src/dsl/generator/DSLGenerator.js +0 -328
  222. package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.d.ts +0 -111
  223. package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.js +0 -361
  224. package/src/libs/engine/src/dsl/index.d.ts +0 -35
  225. package/src/libs/engine/src/dsl/index.js +0 -64
  226. package/src/libs/engine/src/dsl/lexer/Lexer.d.ts +0 -117
  227. package/src/libs/engine/src/dsl/lexer/Lexer.js +0 -521
  228. package/src/libs/engine/src/dsl/mermaid/MermaidClass.d.ts +0 -136
  229. package/src/libs/engine/src/dsl/mermaid/MermaidClass.js +0 -429
  230. package/src/libs/engine/src/dsl/mermaid/MermaidER.d.ts +0 -118
  231. package/src/libs/engine/src/dsl/mermaid/MermaidER.js +0 -338
  232. package/src/libs/engine/src/dsl/mermaid/MermaidState.d.ts +0 -89
  233. package/src/libs/engine/src/dsl/mermaid/MermaidState.js +0 -613
  234. package/src/libs/engine/src/dsl/mermaid/index.d.ts +0 -10
  235. package/src/libs/engine/src/dsl/mermaid/index.js +0 -33
  236. package/src/libs/engine/src/dsl/mermaid/layout.d.ts +0 -70
  237. package/src/libs/engine/src/dsl/mermaid/layout.js +0 -162
  238. package/src/libs/engine/src/dsl/mermaid/lines.d.ts +0 -25
  239. package/src/libs/engine/src/dsl/mermaid/lines.js +0 -74
  240. package/src/libs/engine/src/dsl/parser/Parser.d.ts +0 -131
  241. package/src/libs/engine/src/dsl/parser/Parser.js +0 -725
  242. package/src/libs/engine/src/dsl/sync/BidirectionalSync.d.ts +0 -154
  243. package/src/libs/engine/src/dsl/sync/BidirectionalSync.js +0 -389
  244. package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.d.ts +0 -128
  245. package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.js +0 -244
  246. package/src/libs/engine/src/dsl/sync/LayoutApplicator.d.ts +0 -140
  247. package/src/libs/engine/src/dsl/sync/LayoutApplicator.js +0 -271
  248. package/src/libs/engine/src/dsl/sync/SyncStateManager.d.ts +0 -145
  249. package/src/libs/engine/src/dsl/sync/SyncStateManager.js +0 -253
  250. package/src/libs/engine/src/dsl/sync/index.d.ts +0 -13
  251. package/src/libs/engine/src/dsl/sync/index.js +0 -21
  252. package/src/libs/engine/src/dsl/transformer/ASTTransformer.d.ts +0 -150
  253. package/src/libs/engine/src/dsl/transformer/ASTTransformer.js +0 -605
  254. package/src/libs/engine/src/dsl/types/ASTNode.d.ts +0 -159
  255. package/src/libs/engine/src/dsl/types/ASTNode.js +0 -31
  256. package/src/libs/engine/src/dsl/types/Token.d.ts +0 -79
  257. package/src/libs/engine/src/dsl/types/Token.js +0 -84
  258. package/src/libs/engine/src/engine/DiagramEngine.d.ts +0 -917
  259. package/src/libs/engine/src/engine/DiagramEngine.js +0 -2190
  260. package/src/libs/engine/src/engine/DiagramMode.d.ts +0 -51
  261. package/src/libs/engine/src/engine/DiagramMode.js +0 -53
  262. package/src/libs/engine/src/engine/DiagramModeTypes.d.ts +0 -73
  263. package/src/libs/engine/src/engine/DiagramModeTypes.js +0 -4
  264. package/src/libs/engine/src/engine/ModeManager.d.ts +0 -155
  265. package/src/libs/engine/src/engine/ModeManager.js +0 -387
  266. package/src/libs/engine/src/engine/index.d.ts +0 -2
  267. package/src/libs/engine/src/engine/index.js +0 -7
  268. package/src/libs/engine/src/events/EventBus.d.ts +0 -106
  269. package/src/libs/engine/src/events/EventBus.js +0 -226
  270. package/src/libs/engine/src/events/index.d.ts +0 -1
  271. package/src/libs/engine/src/events/index.js +0 -6
  272. package/src/libs/engine/src/index.d.ts +0 -43
  273. package/src/libs/engine/src/index.js +0 -142
  274. package/src/libs/engine/src/interaction/GroupCollapseService.d.ts +0 -53
  275. package/src/libs/engine/src/interaction/GroupCollapseService.js +0 -274
  276. package/src/libs/engine/src/interaction/GroupMembershipService.d.ts +0 -107
  277. package/src/libs/engine/src/interaction/GroupMembershipService.js +0 -245
  278. package/src/libs/engine/src/interaction/SemanticMembershipService.d.ts +0 -28
  279. package/src/libs/engine/src/interaction/SemanticMembershipService.js +0 -168
  280. package/src/libs/engine/src/interaction/SwimlaneService.d.ts +0 -62
  281. package/src/libs/engine/src/interaction/SwimlaneService.js +0 -180
  282. package/src/libs/engine/src/interaction/index.d.ts +0 -4
  283. package/src/libs/engine/src/interaction/index.js +0 -9
  284. package/src/libs/engine/src/interop/drawio/importDrawio.d.ts +0 -52
  285. package/src/libs/engine/src/interop/drawio/importDrawio.js +0 -940
  286. package/src/libs/engine/src/interop/drawio/index.d.ts +0 -1
  287. package/src/libs/engine/src/interop/drawio/index.js +0 -12
  288. package/src/libs/engine/src/interop/drawio/xml.d.ts +0 -26
  289. package/src/libs/engine/src/interop/drawio/xml.js +0 -213
  290. package/src/libs/engine/src/layout/CompoundLayoutService.d.ts +0 -121
  291. package/src/libs/engine/src/layout/CompoundLayoutService.js +0 -616
  292. package/src/libs/engine/src/layout/ILayoutAlgorithm.d.ts +0 -120
  293. package/src/libs/engine/src/layout/ILayoutAlgorithm.js +0 -88
  294. package/src/libs/engine/src/layout/LayoutManager.d.ts +0 -155
  295. package/src/libs/engine/src/layout/LayoutManager.js +0 -640
  296. package/src/libs/engine/src/layout/SmartSpacingCalculator.d.ts +0 -62
  297. package/src/libs/engine/src/layout/SmartSpacingCalculator.js +0 -134
  298. package/src/libs/engine/src/layout/ViewportTransform.d.ts +0 -55
  299. package/src/libs/engine/src/layout/ViewportTransform.js +0 -118
  300. package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.d.ts +0 -34
  301. package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.js +0 -317
  302. package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.d.ts +0 -56
  303. package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.js +0 -223
  304. package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.d.ts +0 -60
  305. package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.js +0 -307
  306. package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.d.ts +0 -62
  307. package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.js +0 -324
  308. package/src/libs/engine/src/layout/community-layout-adapter.d.ts +0 -107
  309. package/src/libs/engine/src/layout/community-layout-adapter.js +0 -486
  310. package/src/libs/engine/src/layout/component-packing.d.ts +0 -98
  311. package/src/libs/engine/src/layout/component-packing.js +0 -307
  312. package/src/libs/engine/src/layout/dagre-layout-adapter.d.ts +0 -122
  313. package/src/libs/engine/src/layout/dagre-layout-adapter.js +0 -697
  314. package/src/libs/engine/src/layout/edge-bundling.interface.d.ts +0 -159
  315. package/src/libs/engine/src/layout/edge-bundling.interface.js +0 -379
  316. package/src/libs/engine/src/layout/elk-layout-adapter.d.ts +0 -121
  317. package/src/libs/engine/src/layout/elk-layout-adapter.js +0 -586
  318. package/src/libs/engine/src/layout/elk-loader.d.ts +0 -1
  319. package/src/libs/engine/src/layout/elk-loader.js +0 -24
  320. package/src/libs/engine/src/layout/force-layout-adapter.d.ts +0 -167
  321. package/src/libs/engine/src/layout/force-layout-adapter.js +0 -790
  322. package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.d.ts +0 -323
  323. package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.js +0 -685
  324. package/src/libs/engine/src/layout/incremental/mental-map.d.ts +0 -98
  325. package/src/libs/engine/src/layout/incremental/mental-map.js +0 -221
  326. package/src/libs/engine/src/layout/incremental-layout.interface.d.ts +0 -145
  327. package/src/libs/engine/src/layout/incremental-layout.interface.js +0 -300
  328. package/src/libs/engine/src/layout/index.d.ts +0 -83
  329. package/src/libs/engine/src/layout/index.js +0 -116
  330. package/src/libs/engine/src/layout/layout-adapter.interface.d.ts +0 -185
  331. package/src/libs/engine/src/layout/layout-adapter.interface.js +0 -10
  332. package/src/libs/engine/src/layout/layout-auto-select.d.ts +0 -160
  333. package/src/libs/engine/src/layout/layout-auto-select.js +0 -621
  334. package/src/libs/engine/src/layout/layout-constraints.interface.d.ts +0 -117
  335. package/src/libs/engine/src/layout/layout-constraints.interface.js +0 -138
  336. package/src/libs/engine/src/layout/layout-graph.d.ts +0 -70
  337. package/src/libs/engine/src/layout/layout-graph.js +0 -119
  338. package/src/libs/engine/src/layout/layout-history.d.ts +0 -147
  339. package/src/libs/engine/src/layout/layout-history.js +0 -258
  340. package/src/libs/engine/src/layout/layout-host.d.ts +0 -172
  341. package/src/libs/engine/src/layout/layout-host.js +0 -523
  342. package/src/libs/engine/src/layout/layout-presets.d.ts +0 -91
  343. package/src/libs/engine/src/layout/layout-presets.js +0 -333
  344. package/src/libs/engine/src/layout/layout-quality-extended.d.ts +0 -66
  345. package/src/libs/engine/src/layout/layout-quality-extended.js +0 -246
  346. package/src/libs/engine/src/layout/layout-quality-metrics.d.ts +0 -127
  347. package/src/libs/engine/src/layout/layout-quality-metrics.js +0 -466
  348. package/src/libs/engine/src/layout/layout-registry.d.ts +0 -309
  349. package/src/libs/engine/src/layout/layout-registry.js +0 -414
  350. package/src/libs/engine/src/layout/layout.service.d.ts +0 -100
  351. package/src/libs/engine/src/layout/layout.service.js +0 -216
  352. package/src/libs/engine/src/layout/overlap-removal.d.ts +0 -20
  353. package/src/libs/engine/src/layout/overlap-removal.js +0 -117
  354. package/src/libs/engine/src/layout/port-aware-layout.interface.d.ts +0 -232
  355. package/src/libs/engine/src/layout/port-aware-layout.interface.js +0 -413
  356. package/src/libs/engine/src/layout/port-label-bridge.d.ts +0 -77
  357. package/src/libs/engine/src/layout/port-label-bridge.js +0 -250
  358. package/src/libs/engine/src/layout/portfolio-layouts.d.ts +0 -53
  359. package/src/libs/engine/src/layout/portfolio-layouts.js +0 -388
  360. package/src/libs/engine/src/layout/rng.d.ts +0 -34
  361. package/src/libs/engine/src/layout/rng.js +0 -71
  362. package/src/libs/engine/src/layout/spectral-layout-adapter.d.ts +0 -72
  363. package/src/libs/engine/src/layout/spectral-layout-adapter.js +0 -379
  364. package/src/libs/engine/src/layout/steppable-layout.d.ts +0 -40
  365. package/src/libs/engine/src/layout/steppable-layout.js +0 -34
  366. package/src/libs/engine/src/layout/subgraph-layout.interface.d.ts +0 -269
  367. package/src/libs/engine/src/layout/subgraph-layout.interface.js +0 -452
  368. package/src/libs/engine/src/layout/sugiyama/layered-layout.d.ts +0 -9
  369. package/src/libs/engine/src/layout/sugiyama/layered-layout.js +0 -83
  370. package/src/libs/engine/src/layout/sugiyama/sugiyama.d.ts +0 -91
  371. package/src/libs/engine/src/layout/sugiyama/sugiyama.js +0 -797
  372. package/src/libs/engine/src/layout/tree-layout.d.ts +0 -43
  373. package/src/libs/engine/src/layout/tree-layout.js +0 -426
  374. package/src/libs/engine/src/layout/types.d.ts +0 -263
  375. package/src/libs/engine/src/layout/types.js +0 -6
  376. package/src/libs/engine/src/lib/performance/mobile-performance.service.d.ts +0 -43
  377. package/src/libs/engine/src/lib/performance/mobile-performance.service.js +0 -95
  378. package/src/libs/engine/src/models/DiagramEntity.d.ts +0 -174
  379. package/src/libs/engine/src/models/DiagramEntity.js +0 -366
  380. package/src/libs/engine/src/models/DiagramModel.d.ts +0 -960
  381. package/src/libs/engine/src/models/DiagramModel.js +0 -2416
  382. package/src/libs/engine/src/models/GroupModel.d.ts +0 -573
  383. package/src/libs/engine/src/models/GroupModel.js +0 -1373
  384. package/src/libs/engine/src/models/LinkModel.d.ts +0 -395
  385. package/src/libs/engine/src/models/LinkModel.js +0 -1045
  386. package/src/libs/engine/src/models/NodeModel.d.ts +0 -666
  387. package/src/libs/engine/src/models/NodeModel.js +0 -1512
  388. package/src/libs/engine/src/models/PortModel.d.ts +0 -292
  389. package/src/libs/engine/src/models/PortModel.js +0 -637
  390. package/src/libs/engine/src/models/StrokeModel.d.ts +0 -160
  391. package/src/libs/engine/src/models/StrokeModel.js +0 -387
  392. package/src/libs/engine/src/models/index.d.ts +0 -7
  393. package/src/libs/engine/src/models/index.js +0 -12
  394. package/src/libs/engine/src/models/readonly-lock.d.ts +0 -108
  395. package/src/libs/engine/src/models/readonly-lock.js +0 -125
  396. package/src/libs/engine/src/performance/LRUCache.d.ts +0 -78
  397. package/src/libs/engine/src/performance/LRUCache.js +0 -179
  398. package/src/libs/engine/src/performance/PerformanceMonitor.d.ts +0 -47
  399. package/src/libs/engine/src/performance/PerformanceMonitor.js +0 -112
  400. package/src/libs/engine/src/performance/SpatialIndex.d.ts +0 -157
  401. package/src/libs/engine/src/performance/SpatialIndex.js +0 -306
  402. package/src/libs/engine/src/performance/index.d.ts +0 -2
  403. package/src/libs/engine/src/performance/index.js +0 -7
  404. package/src/libs/engine/src/plugins/PluginManager.d.ts +0 -95
  405. package/src/libs/engine/src/plugins/PluginManager.js +0 -388
  406. package/src/libs/engine/src/plugins/index.d.ts +0 -1
  407. package/src/libs/engine/src/plugins/index.js +0 -6
  408. package/src/libs/engine/src/ports/connection-rules.d.ts +0 -32
  409. package/src/libs/engine/src/ports/connection-rules.js +0 -131
  410. package/src/libs/engine/src/ports/dynamic-ports.d.ts +0 -27
  411. package/src/libs/engine/src/ports/dynamic-ports.js +0 -135
  412. package/src/libs/engine/src/ports/index.d.ts +0 -5
  413. package/src/libs/engine/src/ports/index.js +0 -16
  414. package/src/libs/engine/src/ports/port-groups.d.ts +0 -43
  415. package/src/libs/engine/src/ports/port-groups.js +0 -185
  416. package/src/libs/engine/src/ports/port-type-registry.d.ts +0 -34
  417. package/src/libs/engine/src/ports/port-type-registry.js +0 -87
  418. package/src/libs/engine/src/ports/port-types.d.ts +0 -266
  419. package/src/libs/engine/src/ports/port-types.js +0 -30
  420. package/src/libs/engine/src/rendering/HtmlTemplateRenderer.d.ts +0 -136
  421. package/src/libs/engine/src/rendering/HtmlTemplateRenderer.js +0 -292
  422. package/src/libs/engine/src/rendering/LemonadeJSRenderer.d.ts +0 -160
  423. package/src/libs/engine/src/rendering/LemonadeJSRenderer.js +0 -362
  424. package/src/libs/engine/src/rendering/index.d.ts +0 -2
  425. package/src/libs/engine/src/rendering/index.js +0 -7
  426. package/src/libs/engine/src/routing/LiveReroutingEngine.d.ts +0 -75
  427. package/src/libs/engine/src/routing/LiveReroutingEngine.js +0 -173
  428. package/src/libs/engine/src/routing/ObstacleIndex.d.ts +0 -42
  429. package/src/libs/engine/src/routing/ObstacleIndex.js +0 -215
  430. package/src/libs/engine/src/routing/ObstacleMap.d.ts +0 -68
  431. package/src/libs/engine/src/routing/ObstacleMap.js +0 -312
  432. package/src/libs/engine/src/routing/ObstacleMapBuilder.d.ts +0 -28
  433. package/src/libs/engine/src/routing/ObstacleMapBuilder.js +0 -76
  434. package/src/libs/engine/src/routing/PathSimplifier.d.ts +0 -119
  435. package/src/libs/engine/src/routing/PathSimplifier.js +0 -224
  436. package/src/libs/engine/src/routing/RoutingEngine.d.ts +0 -118
  437. package/src/libs/engine/src/routing/RoutingEngine.js +0 -546
  438. package/src/libs/engine/src/routing/algorithms/AStarRouter.d.ts +0 -90
  439. package/src/libs/engine/src/routing/algorithms/AStarRouter.js +0 -331
  440. package/src/libs/engine/src/routing/algorithms/DijkstraRouter.d.ts +0 -74
  441. package/src/libs/engine/src/routing/algorithms/DijkstraRouter.js +0 -297
  442. package/src/libs/engine/src/routing/algorithms/ElkRouter.d.ts +0 -34
  443. package/src/libs/engine/src/routing/algorithms/ElkRouter.js +0 -210
  444. package/src/libs/engine/src/routing/algorithms/ManhattanRouter.d.ts +0 -18
  445. package/src/libs/engine/src/routing/algorithms/ManhattanRouter.js +0 -224
  446. package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.d.ts +0 -173
  447. package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.js +0 -1092
  448. package/src/libs/engine/src/routing/algorithms/StraightRouter.d.ts +0 -8
  449. package/src/libs/engine/src/routing/algorithms/StraightRouter.js +0 -53
  450. package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.d.ts +0 -59
  451. package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.js +0 -258
  452. package/src/libs/engine/src/routing/global/GlobalRouteSolver.d.ts +0 -64
  453. package/src/libs/engine/src/routing/global/GlobalRouteSolver.js +0 -334
  454. package/src/libs/engine/src/routing/global/solver-host.d.ts +0 -65
  455. package/src/libs/engine/src/routing/global/solver-host.js +0 -87
  456. package/src/libs/engine/src/routing/index.d.ts +0 -15
  457. package/src/libs/engine/src/routing/index.js +0 -20
  458. package/src/libs/engine/src/routing/types.d.ts +0 -161
  459. package/src/libs/engine/src/routing/types.js +0 -4
  460. package/src/libs/engine/src/selection/SelectionManager.d.ts +0 -161
  461. package/src/libs/engine/src/selection/SelectionManager.js +0 -483
  462. package/src/libs/engine/src/selection/index.d.ts +0 -1
  463. package/src/libs/engine/src/selection/index.js +0 -6
  464. package/src/libs/engine/src/serialization/DiagramMigrations.d.ts +0 -41
  465. package/src/libs/engine/src/serialization/DiagramMigrations.js +0 -124
  466. package/src/libs/engine/src/serialization/DiagramValidator.d.ts +0 -20
  467. package/src/libs/engine/src/serialization/DiagramValidator.js +0 -136
  468. package/src/libs/engine/src/serialization/DocumentEnvelope.d.ts +0 -53
  469. package/src/libs/engine/src/serialization/DocumentEnvelope.js +0 -111
  470. package/src/libs/engine/src/serialization/Incremental.d.ts +0 -77
  471. package/src/libs/engine/src/serialization/Incremental.js +0 -227
  472. package/src/libs/engine/src/serialization/Serializer.d.ts +0 -29
  473. package/src/libs/engine/src/serialization/Serializer.js +0 -45
  474. package/src/libs/engine/src/serialization/Subgraph.d.ts +0 -51
  475. package/src/libs/engine/src/serialization/Subgraph.js +0 -172
  476. package/src/libs/engine/src/serialization/TextFormat.d.ts +0 -71
  477. package/src/libs/engine/src/serialization/TextFormat.js +0 -261
  478. package/src/libs/engine/src/state/ConnectionStateManager.d.ts +0 -178
  479. package/src/libs/engine/src/state/ConnectionStateManager.js +0 -319
  480. package/src/libs/engine/src/state/DiagramStore.d.ts +0 -134
  481. package/src/libs/engine/src/state/DiagramStore.js +0 -372
  482. package/src/libs/engine/src/state/index.d.ts +0 -2
  483. package/src/libs/engine/src/state/index.js +0 -7
  484. package/src/libs/engine/src/sync/awareness.d.ts +0 -91
  485. package/src/libs/engine/src/sync/awareness.js +0 -221
  486. package/src/libs/engine/src/sync/batcher.d.ts +0 -84
  487. package/src/libs/engine/src/sync/batcher.js +0 -0
  488. package/src/libs/engine/src/sync/causal-buffer.d.ts +0 -81
  489. package/src/libs/engine/src/sync/causal-buffer.js +0 -199
  490. package/src/libs/engine/src/sync/index.d.ts +0 -20
  491. package/src/libs/engine/src/sync/index.js +0 -41
  492. package/src/libs/engine/src/sync/protocol.d.ts +0 -74
  493. package/src/libs/engine/src/sync/protocol.js +0 -39
  494. package/src/libs/engine/src/sync/sync-adapter.d.ts +0 -243
  495. package/src/libs/engine/src/sync/sync-adapter.js +0 -524
  496. package/src/libs/engine/src/sync/transport.d.ts +0 -30
  497. package/src/libs/engine/src/sync/transport.js +0 -28
  498. package/src/libs/engine/src/sync/transports/broadcast-channel.d.ts +0 -39
  499. package/src/libs/engine/src/sync/transports/broadcast-channel.js +0 -117
  500. package/src/libs/engine/src/sync/transports/memory.d.ts +0 -38
  501. package/src/libs/engine/src/sync/transports/memory.js +0 -111
  502. package/src/libs/engine/src/sync/transports/unreliable.d.ts +0 -59
  503. package/src/libs/engine/src/sync/transports/unreliable.js +0 -153
  504. package/src/libs/engine/src/sync/transports/websocket.d.ts +0 -60
  505. package/src/libs/engine/src/sync/transports/websocket.js +0 -210
  506. package/src/libs/engine/src/sync/version-vector.d.ts +0 -47
  507. package/src/libs/engine/src/sync/version-vector.js +0 -218
  508. package/src/libs/engine/src/template-library/common-templates.d.ts +0 -46
  509. package/src/libs/engine/src/template-library/common-templates.js +0 -395
  510. package/src/libs/engine/src/template-library/data-viz-templates.d.ts +0 -52
  511. package/src/libs/engine/src/template-library/data-viz-templates.js +0 -471
  512. package/src/libs/engine/src/template-library/erd-templates.d.ts +0 -71
  513. package/src/libs/engine/src/template-library/erd-templates.js +0 -773
  514. package/src/libs/engine/src/template-library/index.d.ts +0 -141
  515. package/src/libs/engine/src/template-library/index.js +0 -271
  516. package/src/libs/engine/src/template-library/integration.d.ts +0 -80
  517. package/src/libs/engine/src/template-library/integration.js +0 -141
  518. package/src/libs/engine/src/template-library/workflow-templates.d.ts +0 -52
  519. package/src/libs/engine/src/template-library/workflow-templates.js +0 -438
  520. package/src/libs/engine/src/templates/NodeFactory.d.ts +0 -118
  521. package/src/libs/engine/src/templates/NodeFactory.js +0 -436
  522. package/src/libs/engine/src/templates/NodeTemplate.d.ts +0 -342
  523. package/src/libs/engine/src/templates/NodeTemplate.js +0 -13
  524. package/src/libs/engine/src/templates/TemplateLoader.d.ts +0 -46
  525. package/src/libs/engine/src/templates/TemplateLoader.js +0 -114
  526. package/src/libs/engine/src/templates/TemplateRegistry.d.ts +0 -70
  527. package/src/libs/engine/src/templates/TemplateRegistry.js +0 -128
  528. package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.d.ts +0 -11
  529. package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.js +0 -123
  530. package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.d.ts +0 -11
  531. package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.js +0 -123
  532. package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.d.ts +0 -11
  533. package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.js +0 -123
  534. package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.d.ts +0 -11
  535. package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.js +0 -124
  536. package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.d.ts +0 -11
  537. package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.js +0 -123
  538. package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.d.ts +0 -11
  539. package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.js +0 -124
  540. package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.d.ts +0 -11
  541. package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.js +0 -123
  542. package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.d.ts +0 -11
  543. package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.js +0 -122
  544. package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.d.ts +0 -11
  545. package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.js +0 -125
  546. package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.d.ts +0 -11
  547. package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.js +0 -123
  548. package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.d.ts +0 -11
  549. package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.js +0 -123
  550. package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.d.ts +0 -11
  551. package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.js +0 -123
  552. package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.d.ts +0 -11
  553. package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.js +0 -152
  554. package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.d.ts +0 -11
  555. package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.js +0 -123
  556. package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.d.ts +0 -11
  557. package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.js +0 -123
  558. package/src/libs/engine/src/templates/generated/bpmn/index.d.ts +0 -15
  559. package/src/libs/engine/src/templates/generated/bpmn/index.js +0 -34
  560. package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.d.ts +0 -11
  561. package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.js +0 -152
  562. package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.d.ts +0 -11
  563. package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.js +0 -122
  564. package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.d.ts +0 -11
  565. package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.js +0 -151
  566. package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.d.ts +0 -11
  567. package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.js +0 -122
  568. package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.d.ts +0 -11
  569. package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.js +0 -122
  570. package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.d.ts +0 -11
  571. package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.js +0 -123
  572. package/src/libs/engine/src/templates/generated/erd/erd-entity.template.d.ts +0 -11
  573. package/src/libs/engine/src/templates/generated/erd/erd-entity.template.js +0 -149
  574. package/src/libs/engine/src/templates/generated/erd/erd-isa.template.d.ts +0 -11
  575. package/src/libs/engine/src/templates/generated/erd/erd-isa.template.js +0 -123
  576. package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.d.ts +0 -11
  577. package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.js +0 -122
  578. package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.d.ts +0 -11
  579. package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.js +0 -122
  580. package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.d.ts +0 -11
  581. package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.js +0 -122
  582. package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.d.ts +0 -11
  583. package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.js +0 -123
  584. package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.d.ts +0 -11
  585. package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.js +0 -121
  586. package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.d.ts +0 -11
  587. package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.js +0 -123
  588. package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.d.ts +0 -11
  589. package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.js +0 -123
  590. package/src/libs/engine/src/templates/generated/erd/erd-table.template.d.ts +0 -11
  591. package/src/libs/engine/src/templates/generated/erd/erd-table.template.js +0 -123
  592. package/src/libs/engine/src/templates/generated/erd/erd-view.template.d.ts +0 -11
  593. package/src/libs/engine/src/templates/generated/erd/erd-view.template.js +0 -123
  594. package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.d.ts +0 -11
  595. package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.js +0 -149
  596. package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.d.ts +0 -11
  597. package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.js +0 -122
  598. package/src/libs/engine/src/templates/generated/erd/index.d.ts +0 -19
  599. package/src/libs/engine/src/templates/generated/erd/index.js +0 -42
  600. package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.d.ts +0 -11
  601. package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.js +0 -123
  602. package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.d.ts +0 -11
  603. package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.js +0 -123
  604. package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.d.ts +0 -11
  605. package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.js +0 -123
  606. package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.d.ts +0 -11
  607. package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.js +0 -124
  608. package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.d.ts +0 -11
  609. package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.js +0 -124
  610. package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.d.ts +0 -11
  611. package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.js +0 -123
  612. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.d.ts +0 -11
  613. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.js +0 -123
  614. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.d.ts +0 -11
  615. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.js +0 -122
  616. package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.d.ts +0 -11
  617. package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.js +0 -122
  618. package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.d.ts +0 -11
  619. package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.js +0 -123
  620. package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.d.ts +0 -11
  621. package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.js +0 -123
  622. package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.d.ts +0 -11
  623. package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.js +0 -123
  624. package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.d.ts +0 -11
  625. package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.js +0 -122
  626. package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.d.ts +0 -11
  627. package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.js +0 -123
  628. package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.d.ts +0 -11
  629. package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.js +0 -124
  630. package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.d.ts +0 -11
  631. package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.js +0 -124
  632. package/src/libs/engine/src/templates/generated/flowchart/index.d.ts +0 -16
  633. package/src/libs/engine/src/templates/generated/flowchart/index.js +0 -36
  634. package/src/libs/engine/src/templates/generated/index.d.ts +0 -9
  635. package/src/libs/engine/src/templates/generated/index.js +0 -13
  636. package/src/libs/engine/src/templates/generated/register.d.ts +0 -23
  637. package/src/libs/engine/src/templates/generated/register.js +0 -31
  638. package/src/libs/engine/src/templates/generated/uml/index.d.ts +0 -30
  639. package/src/libs/engine/src/templates/generated/uml/index.js +0 -64
  640. package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.d.ts +0 -11
  641. package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.js +0 -204
  642. package/src/libs/engine/src/templates/generated/uml/uml-activation.template.d.ts +0 -11
  643. package/src/libs/engine/src/templates/generated/uml/uml-activation.template.js +0 -124
  644. package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.d.ts +0 -11
  645. package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.js +0 -124
  646. package/src/libs/engine/src/templates/generated/uml/uml-activity.template.d.ts +0 -11
  647. package/src/libs/engine/src/templates/generated/uml/uml-activity.template.js +0 -123
  648. package/src/libs/engine/src/templates/generated/uml/uml-actor.template.d.ts +0 -11
  649. package/src/libs/engine/src/templates/generated/uml/uml-actor.template.js +0 -123
  650. package/src/libs/engine/src/templates/generated/uml/uml-class.template.d.ts +0 -11
  651. package/src/libs/engine/src/templates/generated/uml/uml-class.template.js +0 -204
  652. package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.d.ts +0 -11
  653. package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.js +0 -122
  654. package/src/libs/engine/src/templates/generated/uml/uml-component.template.d.ts +0 -11
  655. package/src/libs/engine/src/templates/generated/uml/uml-component.template.js +0 -122
  656. package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.d.ts +0 -11
  657. package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.js +0 -204
  658. package/src/libs/engine/src/templates/generated/uml/uml-decision.template.d.ts +0 -11
  659. package/src/libs/engine/src/templates/generated/uml/uml-decision.template.js +0 -124
  660. package/src/libs/engine/src/templates/generated/uml/uml-enum.template.d.ts +0 -11
  661. package/src/libs/engine/src/templates/generated/uml/uml-enum.template.js +0 -204
  662. package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.d.ts +0 -11
  663. package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.js +0 -124
  664. package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.d.ts +0 -11
  665. package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.js +0 -124
  666. package/src/libs/engine/src/templates/generated/uml/uml-fork.template.d.ts +0 -11
  667. package/src/libs/engine/src/templates/generated/uml/uml-fork.template.js +0 -125
  668. package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.d.ts +0 -11
  669. package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.js +0 -123
  670. package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.d.ts +0 -11
  671. package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.js +0 -123
  672. package/src/libs/engine/src/templates/generated/uml/uml-interface.template.d.ts +0 -11
  673. package/src/libs/engine/src/templates/generated/uml/uml-interface.template.js +0 -204
  674. package/src/libs/engine/src/templates/generated/uml/uml-join.template.d.ts +0 -11
  675. package/src/libs/engine/src/templates/generated/uml/uml-join.template.js +0 -125
  676. package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.d.ts +0 -11
  677. package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.js +0 -123
  678. package/src/libs/engine/src/templates/generated/uml/uml-merge.template.d.ts +0 -11
  679. package/src/libs/engine/src/templates/generated/uml/uml-merge.template.js +0 -122
  680. package/src/libs/engine/src/templates/generated/uml/uml-node.template.d.ts +0 -11
  681. package/src/libs/engine/src/templates/generated/uml/uml-node.template.js +0 -122
  682. package/src/libs/engine/src/templates/generated/uml/uml-note.template.d.ts +0 -11
  683. package/src/libs/engine/src/templates/generated/uml/uml-note.template.js +0 -123
  684. package/src/libs/engine/src/templates/generated/uml/uml-object.template.d.ts +0 -11
  685. package/src/libs/engine/src/templates/generated/uml/uml-object.template.js +0 -204
  686. package/src/libs/engine/src/templates/generated/uml/uml-package.template.d.ts +0 -11
  687. package/src/libs/engine/src/templates/generated/uml/uml-package.template.js +0 -123
  688. package/src/libs/engine/src/templates/generated/uml/uml-part.template.d.ts +0 -11
  689. package/src/libs/engine/src/templates/generated/uml/uml-part.template.js +0 -122
  690. package/src/libs/engine/src/templates/generated/uml/uml-port.template.d.ts +0 -11
  691. package/src/libs/engine/src/templates/generated/uml/uml-port.template.js +0 -123
  692. package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.d.ts +0 -11
  693. package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.js +0 -204
  694. package/src/libs/engine/src/templates/generated/uml/uml-signal.template.d.ts +0 -11
  695. package/src/libs/engine/src/templates/generated/uml/uml-signal.template.js +0 -123
  696. package/src/libs/engine/src/templates/generated/uml/uml-state.template.d.ts +0 -11
  697. package/src/libs/engine/src/templates/generated/uml/uml-state.template.js +0 -123
  698. package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.d.ts +0 -11
  699. package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.js +0 -122
  700. package/src/libs/engine/src/templates/index.d.ts +0 -12
  701. package/src/libs/engine/src/templates/index.js +0 -27
  702. package/src/libs/engine/src/templates/stencils.d.ts +0 -45
  703. package/src/libs/engine/src/templates/stencils.js +0 -85
  704. package/src/libs/engine/src/types/domain/bpmn.d.ts +0 -25
  705. package/src/libs/engine/src/types/domain/bpmn.js +0 -313
  706. package/src/libs/engine/src/types/domain/erd.d.ts +0 -29
  707. package/src/libs/engine/src/types/domain/erd.js +0 -394
  708. package/src/libs/engine/src/types/domain/flowchart.d.ts +0 -26
  709. package/src/libs/engine/src/types/domain/flowchart.js +0 -434
  710. package/src/libs/engine/src/types/domain/index.d.ts +0 -4
  711. package/src/libs/engine/src/types/domain/index.js +0 -9
  712. package/src/libs/engine/src/types/domain/uml.d.ts +0 -40
  713. package/src/libs/engine/src/types/domain/uml.js +0 -758
  714. package/src/libs/engine/src/types/event.types.d.ts +0 -142
  715. package/src/libs/engine/src/types/event.types.js +0 -96
  716. package/src/libs/engine/src/types/geometry.types.d.ts +0 -84
  717. package/src/libs/engine/src/types/geometry.types.js +0 -16
  718. package/src/libs/engine/src/types/index.d.ts +0 -7
  719. package/src/libs/engine/src/types/index.js +0 -14
  720. package/src/libs/engine/src/types/layout.types.d.ts +0 -148
  721. package/src/libs/engine/src/types/layout.types.js +0 -28
  722. package/src/libs/engine/src/types/model.types.d.ts +0 -378
  723. package/src/libs/engine/src/types/model.types.js +0 -4
  724. package/src/libs/engine/src/types/performance.types.d.ts +0 -109
  725. package/src/libs/engine/src/types/performance.types.js +0 -122
  726. package/src/libs/engine/src/types/plugin.types.d.ts +0 -30
  727. package/src/libs/engine/src/types/plugin.types.js +0 -4
  728. package/src/libs/engine/src/utils/deep-clone.d.ts +0 -9
  729. package/src/libs/engine/src/utils/deep-clone.js +0 -123
  730. package/src/libs/engine/src/utils/geometry.d.ts +0 -45
  731. package/src/libs/engine/src/utils/geometry.js +0 -241
  732. package/src/libs/engine/src/utils/id.d.ts +0 -22
  733. package/src/libs/engine/src/utils/id.js +0 -44
  734. package/src/libs/engine/src/utils/index.d.ts +0 -3
  735. package/src/libs/engine/src/utils/index.js +0 -8
  736. package/src/libs/engine/src/utils/transform.d.ts +0 -84
  737. package/src/libs/engine/src/utils/transform.js +0 -200
  738. package/src/libs/engine/src/validation/ConnectionGroupValidator.d.ts +0 -22
  739. package/src/libs/engine/src/validation/ConnectionGroupValidator.js +0 -56
  740. package/src/libs/engine/src/validation/TypeRegistry.d.ts +0 -179
  741. package/src/libs/engine/src/validation/TypeRegistry.js +0 -358
  742. package/src/libs/engine/src/validation/ValidationEngine.d.ts +0 -79
  743. package/src/libs/engine/src/validation/ValidationEngine.js +0 -1150
  744. package/src/libs/engine/src/validation/index.d.ts +0 -3
  745. package/src/libs/engine/src/validation/index.js +0 -8
  746. package/src/libs/renderer/src/a11y/diagram-outline.d.ts +0 -93
  747. package/src/libs/renderer/src/a11y/diagram-outline.js +0 -0
  748. package/src/libs/renderer/src/a11y/focus-containment.d.ts +0 -90
  749. package/src/libs/renderer/src/a11y/focus-containment.js +0 -173
  750. package/src/libs/renderer/src/a11y/graph-topology.d.ts +0 -70
  751. package/src/libs/renderer/src/a11y/graph-topology.js +0 -0
  752. package/src/libs/renderer/src/a11y/index.d.ts +0 -26
  753. package/src/libs/renderer/src/a11y/index.js +0 -30
  754. package/src/libs/renderer/src/a11y/live-region.d.ts +0 -83
  755. package/src/libs/renderer/src/a11y/live-region.js +0 -170
  756. package/src/libs/renderer/src/a11y/outline-view.d.ts +0 -62
  757. package/src/libs/renderer/src/a11y/outline-view.js +0 -158
  758. package/src/libs/renderer/src/a11y/reduced-motion.d.ts +0 -48
  759. package/src/libs/renderer/src/a11y/reduced-motion.js +0 -223
  760. package/src/libs/renderer/src/a11y/semantics.d.ts +0 -76
  761. package/src/libs/renderer/src/a11y/semantics.js +0 -229
  762. package/src/libs/renderer/src/canvas/canvas-context.d.ts +0 -167
  763. package/src/libs/renderer/src/canvas/canvas-context.js +0 -267
  764. package/src/libs/renderer/src/canvas/canvas-renderer.d.ts +0 -194
  765. package/src/libs/renderer/src/canvas/canvas-renderer.js +0 -600
  766. package/src/libs/renderer/src/canvas/dirty-region.d.ts +0 -56
  767. package/src/libs/renderer/src/canvas/dirty-region.js +0 -171
  768. package/src/libs/renderer/src/canvas/index.d.ts +0 -16
  769. package/src/libs/renderer/src/canvas/index.js +0 -79
  770. package/src/libs/renderer/src/canvas/path-geometry.d.ts +0 -112
  771. package/src/libs/renderer/src/canvas/path-geometry.js +0 -673
  772. package/src/libs/renderer/src/canvas/render-backend.d.ts +0 -133
  773. package/src/libs/renderer/src/canvas/render-backend.js +0 -339
  774. package/src/libs/renderer/src/canvas/style-resolution.d.ts +0 -101
  775. package/src/libs/renderer/src/canvas/style-resolution.js +0 -466
  776. package/src/libs/renderer/src/canvas/tier-policy.d.ts +0 -33
  777. package/src/libs/renderer/src/canvas/tier-policy.js +0 -89
  778. package/src/libs/renderer/src/canvas/vnode-painter.d.ts +0 -154
  779. package/src/libs/renderer/src/canvas/vnode-painter.js +0 -649
  780. package/src/libs/renderer/src/comments/comment-overlay.d.ts +0 -56
  781. package/src/libs/renderer/src/comments/comment-overlay.js +0 -127
  782. package/src/libs/renderer/src/comments/comment-panel.d.ts +0 -45
  783. package/src/libs/renderer/src/comments/comment-panel.js +0 -287
  784. package/src/libs/renderer/src/comments/comment-pins.d.ts +0 -34
  785. package/src/libs/renderer/src/comments/comment-pins.js +0 -227
  786. package/src/libs/renderer/src/comments/index.d.ts +0 -3
  787. package/src/libs/renderer/src/comments/index.js +0 -17
  788. package/src/libs/renderer/src/export/assets.d.ts +0 -96
  789. package/src/libs/renderer/src/export/assets.js +0 -350
  790. package/src/libs/renderer/src/export/batch.d.ts +0 -49
  791. package/src/libs/renderer/src/export/batch.js +0 -95
  792. package/src/libs/renderer/src/export/bounds.d.ts +0 -81
  793. package/src/libs/renderer/src/export/bounds.js +0 -367
  794. package/src/libs/renderer/src/export/capture-host.d.ts +0 -39
  795. package/src/libs/renderer/src/export/capture-host.js +0 -1259
  796. package/src/libs/renderer/src/export/custom-nodes.d.ts +0 -88
  797. package/src/libs/renderer/src/export/custom-nodes.js +0 -237
  798. package/src/libs/renderer/src/export/index.d.ts +0 -14
  799. package/src/libs/renderer/src/export/index.js +0 -30
  800. package/src/libs/renderer/src/export/node-raster.d.ts +0 -60
  801. package/src/libs/renderer/src/export/node-raster.js +0 -161
  802. package/src/libs/renderer/src/export/pagination.d.ts +0 -116
  803. package/src/libs/renderer/src/export/pagination.js +0 -245
  804. package/src/libs/renderer/src/export/pdf/flate.d.ts +0 -13
  805. package/src/libs/renderer/src/export/pdf/flate.js +0 -287
  806. package/src/libs/renderer/src/export/pdf/index.d.ts +0 -4
  807. package/src/libs/renderer/src/export/pdf/index.js +0 -15
  808. package/src/libs/renderer/src/export/pdf/pdf-export.d.ts +0 -64
  809. package/src/libs/renderer/src/export/pdf/pdf-export.js +0 -1076
  810. package/src/libs/renderer/src/export/pdf/pdf-path.d.ts +0 -17
  811. package/src/libs/renderer/src/export/pdf/pdf-path.js +0 -85
  812. package/src/libs/renderer/src/export/pdf/pdf-primitives.d.ts +0 -115
  813. package/src/libs/renderer/src/export/pdf/pdf-primitives.js +0 -338
  814. package/src/libs/renderer/src/export/pdf/png.d.ts +0 -25
  815. package/src/libs/renderer/src/export/pdf/png.js +0 -596
  816. package/src/libs/renderer/src/export/raster.d.ts +0 -42
  817. package/src/libs/renderer/src/export/raster.js +0 -126
  818. package/src/libs/renderer/src/export/round-trip.d.ts +0 -83
  819. package/src/libs/renderer/src/export/round-trip.js +0 -432
  820. package/src/libs/renderer/src/export/scope.d.ts +0 -16
  821. package/src/libs/renderer/src/export/scope.js +0 -69
  822. package/src/libs/renderer/src/export/style-flattener.d.ts +0 -23
  823. package/src/libs/renderer/src/export/style-flattener.js +0 -144
  824. package/src/libs/renderer/src/export/svg-export.d.ts +0 -123
  825. package/src/libs/renderer/src/export/svg-export.js +0 -178
  826. package/src/libs/renderer/src/export/vnode-serializer.d.ts +0 -75
  827. package/src/libs/renderer/src/export/vnode-serializer.js +0 -344
  828. package/src/libs/renderer/src/ext/capabilities.d.ts +0 -178
  829. package/src/libs/renderer/src/ext/capabilities.js +0 -22
  830. package/src/libs/renderer/src/ext/capability-factory.d.ts +0 -44
  831. package/src/libs/renderer/src/ext/capability-factory.js +0 -194
  832. package/src/libs/renderer/src/ext/components/attach.d.ts +0 -66
  833. package/src/libs/renderer/src/ext/components/attach.js +0 -112
  834. package/src/libs/renderer/src/ext/components/background.d.ts +0 -84
  835. package/src/libs/renderer/src/ext/components/background.js +0 -202
  836. package/src/libs/renderer/src/ext/components/controls.d.ts +0 -49
  837. package/src/libs/renderer/src/ext/components/controls.js +0 -144
  838. package/src/libs/renderer/src/ext/components/minimap.d.ts +0 -78
  839. package/src/libs/renderer/src/ext/components/minimap.js +0 -326
  840. package/src/libs/renderer/src/ext/diagram-registry.d.ts +0 -109
  841. package/src/libs/renderer/src/ext/diagram-registry.js +0 -303
  842. package/src/libs/renderer/src/ext/disposable.d.ts +0 -51
  843. package/src/libs/renderer/src/ext/disposable.js +0 -104
  844. package/src/libs/renderer/src/ext/extension-host.d.ts +0 -144
  845. package/src/libs/renderer/src/ext/extension-host.js +0 -272
  846. package/src/libs/renderer/src/ext/index.d.ts +0 -62
  847. package/src/libs/renderer/src/ext/index.js +0 -91
  848. package/src/libs/renderer/src/ext/link-pipeline.d.ts +0 -195
  849. package/src/libs/renderer/src/ext/link-pipeline.js +0 -431
  850. package/src/libs/renderer/src/ext/manifest.d.ts +0 -73
  851. package/src/libs/renderer/src/ext/manifest.js +0 -149
  852. package/src/libs/renderer/src/ext/node-component.d.ts +0 -114
  853. package/src/libs/renderer/src/ext/node-component.js +0 -290
  854. package/src/libs/renderer/src/ext/plugins-loader.d.ts +0 -1
  855. package/src/libs/renderer/src/ext/plugins-loader.js +0 -18
  856. package/src/libs/renderer/src/ext/portal.d.ts +0 -129
  857. package/src/libs/renderer/src/ext/portal.js +0 -267
  858. package/src/libs/renderer/src/ext/public-api.d.ts +0 -101
  859. package/src/libs/renderer/src/ext/public-api.js +0 -201
  860. package/src/libs/renderer/src/ext/registry-scope.d.ts +0 -93
  861. package/src/libs/renderer/src/ext/registry-scope.js +0 -142
  862. package/src/libs/renderer/src/ext/tools.d.ts +0 -164
  863. package/src/libs/renderer/src/ext/tools.js +0 -170
  864. package/src/libs/renderer/src/index.d.ts +0 -34
  865. package/src/libs/renderer/src/index.js +0 -108
  866. package/src/libs/renderer/src/instance/create-diagram.d.ts +0 -385
  867. package/src/libs/renderer/src/instance/create-diagram.js +0 -1150
  868. package/src/libs/renderer/src/instance/diagram-instance.d.ts +0 -48
  869. package/src/libs/renderer/src/instance/diagram-instance.js +0 -51
  870. package/src/libs/renderer/src/instance/dom-event-binder.d.ts +0 -394
  871. package/src/libs/renderer/src/instance/dom-event-binder.js +0 -2104
  872. package/src/libs/renderer/src/instance/index.d.ts +0 -5
  873. package/src/libs/renderer/src/instance/index.js +0 -13
  874. package/src/libs/renderer/src/instance/layers.d.ts +0 -31
  875. package/src/libs/renderer/src/instance/layers.js +0 -43
  876. package/src/libs/renderer/src/instance/model-input.d.ts +0 -229
  877. package/src/libs/renderer/src/instance/model-input.js +0 -325
  878. package/src/libs/renderer/src/instance/render-scheduler.d.ts +0 -79
  879. package/src/libs/renderer/src/instance/render-scheduler.js +0 -96
  880. package/src/libs/renderer/src/instance/wheel-scroll-yield.d.ts +0 -38
  881. package/src/libs/renderer/src/instance/wheel-scroll-yield.js +0 -118
  882. package/src/libs/renderer/src/interaction/ControlPointEditor.d.ts +0 -160
  883. package/src/libs/renderer/src/interaction/ControlPointEditor.js +0 -360
  884. package/src/libs/renderer/src/interaction/WaypointEditor.d.ts +0 -133
  885. package/src/libs/renderer/src/interaction/WaypointEditor.js +0 -263
  886. package/src/libs/renderer/src/interaction/highlighters.d.ts +0 -88
  887. package/src/libs/renderer/src/interaction/highlighters.js +0 -212
  888. package/src/libs/renderer/src/interaction/in-place-editor.d.ts +0 -63
  889. package/src/libs/renderer/src/interaction/in-place-editor.js +0 -141
  890. package/src/libs/renderer/src/interaction/index.d.ts +0 -11
  891. package/src/libs/renderer/src/interaction/index.js +0 -29
  892. package/src/libs/renderer/src/interaction/ink-overlay.d.ts +0 -53
  893. package/src/libs/renderer/src/interaction/ink-overlay.js +0 -154
  894. package/src/libs/renderer/src/interaction/interaction-controller.d.ts +0 -555
  895. package/src/libs/renderer/src/interaction/interaction-controller.js +0 -1733
  896. package/src/libs/renderer/src/interaction/keyboard-navigation.d.ts +0 -223
  897. package/src/libs/renderer/src/interaction/keyboard-navigation.js +0 -885
  898. package/src/libs/renderer/src/interaction/selection-tools.d.ts +0 -343
  899. package/src/libs/renderer/src/interaction/selection-tools.js +0 -918
  900. package/src/libs/renderer/src/interaction/snapping.d.ts +0 -210
  901. package/src/libs/renderer/src/interaction/snapping.js +0 -569
  902. package/src/libs/renderer/src/interaction/touch-gestures.d.ts +0 -160
  903. package/src/libs/renderer/src/interaction/touch-gestures.js +0 -549
  904. package/src/libs/renderer/src/interaction/whiteboard-tools.d.ts +0 -171
  905. package/src/libs/renderer/src/interaction/whiteboard-tools.js +0 -476
  906. package/src/libs/renderer/src/lazy/host-culling.d.ts +0 -116
  907. package/src/libs/renderer/src/lazy/host-culling.js +0 -135
  908. package/src/libs/renderer/src/lazy/index.d.ts +0 -7
  909. package/src/libs/renderer/src/lazy/index.js +0 -28
  910. package/src/libs/renderer/src/lazy/progressive-mounter.d.ts +0 -80
  911. package/src/libs/renderer/src/lazy/progressive-mounter.js +0 -264
  912. package/src/libs/renderer/src/lazy/types.d.ts +0 -43
  913. package/src/libs/renderer/src/lazy/types.js +0 -14
  914. package/src/libs/renderer/src/lazy/view-lifecycle.d.ts +0 -97
  915. package/src/libs/renderer/src/lazy/view-lifecycle.js +0 -221
  916. package/src/libs/renderer/src/perf/index.d.ts +0 -2
  917. package/src/libs/renderer/src/perf/index.js +0 -7
  918. package/src/libs/renderer/src/perf/perf-hud.d.ts +0 -46
  919. package/src/libs/renderer/src/perf/perf-hud.js +0 -105
  920. package/src/libs/renderer/src/perf/quality-governor.d.ts +0 -77
  921. package/src/libs/renderer/src/perf/quality-governor.js +0 -154
  922. package/src/libs/renderer/src/platform/index.d.ts +0 -1
  923. package/src/libs/renderer/src/platform/index.js +0 -5
  924. package/src/libs/renderer/src/platform/platform.d.ts +0 -34
  925. package/src/libs/renderer/src/platform/platform.js +0 -64
  926. package/src/libs/renderer/src/presence/bind-presence.d.ts +0 -51
  927. package/src/libs/renderer/src/presence/bind-presence.js +0 -144
  928. package/src/libs/renderer/src/presence/index.d.ts +0 -4
  929. package/src/libs/renderer/src/presence/index.js +0 -18
  930. package/src/libs/renderer/src/presence/presence-overlay.d.ts +0 -121
  931. package/src/libs/renderer/src/presence/presence-overlay.js +0 -465
  932. package/src/libs/renderer/src/presentation/index.d.ts +0 -3
  933. package/src/libs/renderer/src/presentation/index.js +0 -14
  934. package/src/libs/renderer/src/presentation/presentation.d.ts +0 -94
  935. package/src/libs/renderer/src/presentation/presentation.js +0 -158
  936. package/src/libs/renderer/src/presentation/viewport-channel.d.ts +0 -78
  937. package/src/libs/renderer/src/presentation/viewport-channel.js +0 -86
  938. package/src/libs/renderer/src/services/animation-lifecycle.d.ts +0 -153
  939. package/src/libs/renderer/src/services/animation-lifecycle.js +0 -326
  940. package/src/libs/renderer/src/services/animation-performance.service.d.ts +0 -191
  941. package/src/libs/renderer/src/services/animation-performance.service.js +0 -371
  942. package/src/libs/renderer/src/services/animation-sequencer.d.ts +0 -226
  943. package/src/libs/renderer/src/services/animation-sequencer.js +0 -379
  944. package/src/libs/renderer/src/services/animation.service.d.ts +0 -182
  945. package/src/libs/renderer/src/services/animation.service.js +0 -858
  946. package/src/libs/renderer/src/services/custom-animation-registry.d.ts +0 -182
  947. package/src/libs/renderer/src/services/custom-animation-registry.js +0 -361
  948. package/src/libs/renderer/src/ssr/index.d.ts +0 -1
  949. package/src/libs/renderer/src/ssr/index.js +0 -6
  950. package/src/libs/renderer/src/ssr/render-to-static.d.ts +0 -91
  951. package/src/libs/renderer/src/ssr/render-to-static.js +0 -81
  952. package/src/libs/renderer/src/svg/ArrowRenderer.d.ts +0 -159
  953. package/src/libs/renderer/src/svg/ArrowRenderer.js +0 -723
  954. package/src/libs/renderer/src/svg/JumpPointDetector.d.ts +0 -79
  955. package/src/libs/renderer/src/svg/JumpPointDetector.js +0 -176
  956. package/src/libs/renderer/src/svg/JumpPointRenderer.d.ts +0 -59
  957. package/src/libs/renderer/src/svg/JumpPointRenderer.js +0 -309
  958. package/src/libs/renderer/src/svg/LabelRenderer.d.ts +0 -76
  959. package/src/libs/renderer/src/svg/LabelRenderer.js +0 -273
  960. package/src/libs/renderer/src/svg/auto-size.d.ts +0 -76
  961. package/src/libs/renderer/src/svg/auto-size.js +0 -142
  962. package/src/libs/renderer/src/svg/channel-nudging.d.ts +0 -34
  963. package/src/libs/renderer/src/svg/channel-nudging.js +0 -226
  964. package/src/libs/renderer/src/svg/edge-optimizer.d.ts +0 -228
  965. package/src/libs/renderer/src/svg/edge-optimizer.js +0 -606
  966. package/src/libs/renderer/src/svg/edge-templates.d.ts +0 -152
  967. package/src/libs/renderer/src/svg/edge-templates.js +0 -233
  968. package/src/libs/renderer/src/svg/html-node.d.ts +0 -50
  969. package/src/libs/renderer/src/svg/html-node.js +0 -214
  970. package/src/libs/renderer/src/svg/index.d.ts +0 -25
  971. package/src/libs/renderer/src/svg/index.js +0 -32
  972. package/src/libs/renderer/src/svg/link-fanout.d.ts +0 -127
  973. package/src/libs/renderer/src/svg/link-fanout.js +0 -333
  974. package/src/libs/renderer/src/svg/link-hit-test.d.ts +0 -142
  975. package/src/libs/renderer/src/svg/link-hit-test.js +0 -182
  976. package/src/libs/renderer/src/svg/motion-tracker.d.ts +0 -18
  977. package/src/libs/renderer/src/svg/motion-tracker.js +0 -71
  978. package/src/libs/renderer/src/svg/node-sizing.d.ts +0 -51
  979. package/src/libs/renderer/src/svg/node-sizing.js +0 -65
  980. package/src/libs/renderer/src/svg/node-toolbar.d.ts +0 -30
  981. package/src/libs/renderer/src/svg/node-toolbar.js +0 -45
  982. package/src/libs/renderer/src/svg/notation-shapes.d.ts +0 -2
  983. package/src/libs/renderer/src/svg/notation-shapes.js +0 -126
  984. package/src/libs/renderer/src/svg/paint-servers.d.ts +0 -49
  985. package/src/libs/renderer/src/svg/paint-servers.js +0 -225
  986. package/src/libs/renderer/src/svg/panel.d.ts +0 -115
  987. package/src/libs/renderer/src/svg/panel.js +0 -353
  988. package/src/libs/renderer/src/svg/path-outline.d.ts +0 -35
  989. package/src/libs/renderer/src/svg/path-outline.js +0 -134
  990. package/src/libs/renderer/src/svg/port-glyph.d.ts +0 -27
  991. package/src/libs/renderer/src/svg/port-glyph.js +0 -97
  992. package/src/libs/renderer/src/svg/port-label.d.ts +0 -74
  993. package/src/libs/renderer/src/svg/port-label.js +0 -201
  994. package/src/libs/renderer/src/svg/port-layout.d.ts +0 -50
  995. package/src/libs/renderer/src/svg/port-layout.js +0 -212
  996. package/src/libs/renderer/src/svg/port-positioning.d.ts +0 -33
  997. package/src/libs/renderer/src/svg/port-positioning.js +0 -101
  998. package/src/libs/renderer/src/svg/port-spots.d.ts +0 -69
  999. package/src/libs/renderer/src/svg/port-spots.js +0 -154
  1000. package/src/libs/renderer/src/svg/route-memo.d.ts +0 -63
  1001. package/src/libs/renderer/src/svg/route-memo.js +0 -206
  1002. package/src/libs/renderer/src/svg/route-solver-bridge.d.ts +0 -48
  1003. package/src/libs/renderer/src/svg/route-solver-bridge.js +0 -151
  1004. package/src/libs/renderer/src/svg/shape-registry.d.ts +0 -189
  1005. package/src/libs/renderer/src/svg/shape-registry.js +0 -1104
  1006. package/src/libs/renderer/src/svg/stroke-layer.d.ts +0 -36
  1007. package/src/libs/renderer/src/svg/stroke-layer.js +0 -183
  1008. package/src/libs/renderer/src/svg/svg-renderer.d.ts +0 -1737
  1009. package/src/libs/renderer/src/svg/svg-renderer.js +0 -7772
  1010. package/src/libs/renderer/src/svg/text-block.d.ts +0 -54
  1011. package/src/libs/renderer/src/svg/text-block.js +0 -171
  1012. package/src/libs/renderer/src/themes/color-mode.d.ts +0 -81
  1013. package/src/libs/renderer/src/themes/color-mode.js +0 -158
  1014. package/src/libs/renderer/src/themes/contrast.d.ts +0 -67
  1015. package/src/libs/renderer/src/themes/contrast.js +0 -215
  1016. package/src/libs/renderer/src/themes/default-dark-theme.d.ts +0 -6
  1017. package/src/libs/renderer/src/themes/default-dark-theme.js +0 -126
  1018. package/src/libs/renderer/src/themes/default-light-theme.d.ts +0 -6
  1019. package/src/libs/renderer/src/themes/default-light-theme.js +0 -168
  1020. package/src/libs/renderer/src/themes/default-theme-set.d.ts +0 -10
  1021. package/src/libs/renderer/src/themes/default-theme-set.js +0 -25
  1022. package/src/libs/renderer/src/themes/high-contrast-theme.d.ts +0 -5
  1023. package/src/libs/renderer/src/themes/high-contrast-theme.js +0 -170
  1024. package/src/libs/renderer/src/themes/index.d.ts +0 -22
  1025. package/src/libs/renderer/src/themes/index.js +0 -93
  1026. package/src/libs/renderer/src/themes/style-cascade.d.ts +0 -23
  1027. package/src/libs/renderer/src/themes/style-cascade.js +0 -194
  1028. package/src/libs/renderer/src/themes/style-registry.d.ts +0 -40
  1029. package/src/libs/renderer/src/themes/style-registry.js +0 -129
  1030. package/src/libs/renderer/src/themes/theme-a11y.d.ts +0 -65
  1031. package/src/libs/renderer/src/themes/theme-a11y.js +0 -256
  1032. package/src/libs/renderer/src/themes/theme-css.d.ts +0 -30
  1033. package/src/libs/renderer/src/themes/theme-css.js +0 -304
  1034. package/src/libs/renderer/src/themes/theme-ref.d.ts +0 -63
  1035. package/src/libs/renderer/src/themes/theme-ref.js +0 -206
  1036. package/src/libs/renderer/src/themes/theme-vars.d.ts +0 -49
  1037. package/src/libs/renderer/src/themes/theme-vars.js +0 -112
  1038. package/src/libs/renderer/src/themes/token-bridge.d.ts +0 -62
  1039. package/src/libs/renderer/src/themes/token-bridge.js +0 -354
  1040. package/src/libs/renderer/src/types/geometry.types.d.ts +0 -10
  1041. package/src/libs/renderer/src/types/geometry.types.js +0 -3
  1042. package/src/libs/renderer/src/types/index.d.ts +0 -5
  1043. package/src/libs/renderer/src/types/index.js +0 -14
  1044. package/src/libs/renderer/src/types/property-schema/conditions.d.ts +0 -96
  1045. package/src/libs/renderer/src/types/property-schema/conditions.js +0 -8
  1046. package/src/libs/renderer/src/types/property-schema/editor-types.d.ts +0 -310
  1047. package/src/libs/renderer/src/types/property-schema/editor-types.js +0 -8
  1048. package/src/libs/renderer/src/types/property-schema/groups.d.ts +0 -58
  1049. package/src/libs/renderer/src/types/property-schema/groups.js +0 -8
  1050. package/src/libs/renderer/src/types/property-schema/index.d.ts +0 -101
  1051. package/src/libs/renderer/src/types/property-schema/index.js +0 -98
  1052. package/src/libs/renderer/src/types/property-schema/property-definition.d.ts +0 -117
  1053. package/src/libs/renderer/src/types/property-schema/property-definition.js +0 -8
  1054. package/src/libs/renderer/src/types/property-schema/schema.d.ts +0 -108
  1055. package/src/libs/renderer/src/types/property-schema/schema.js +0 -8
  1056. package/src/libs/renderer/src/types/property-schema/validation.d.ts +0 -181
  1057. package/src/libs/renderer/src/types/property-schema/validation.js +0 -8
  1058. package/src/libs/renderer/src/types/renderer.interface.d.ts +0 -623
  1059. package/src/libs/renderer/src/types/renderer.interface.js +0 -3
  1060. package/src/libs/renderer/src/types/theme.types.d.ts +0 -305
  1061. package/src/libs/renderer/src/types/theme.types.js +0 -3
  1062. package/src/libs/renderer/src/types/vnode.types.d.ts +0 -139
  1063. package/src/libs/renderer/src/types/vnode.types.js +0 -3
  1064. package/src/libs/renderer/src/utils/animation-presets.d.ts +0 -310
  1065. package/src/libs/renderer/src/utils/animation-presets.js +0 -406
  1066. package/src/libs/renderer/src/utils/animation-priority.d.ts +0 -118
  1067. package/src/libs/renderer/src/utils/animation-priority.js +0 -258
  1068. package/src/libs/renderer/src/utils/animation-utils.d.ts +0 -159
  1069. package/src/libs/renderer/src/utils/animation-utils.js +0 -323
  1070. package/src/libs/renderer/src/utils/lru-cache.d.ts +0 -34
  1071. package/src/libs/renderer/src/utils/lru-cache.js +0 -72
  1072. package/src/libs/renderer/src/viewport/index.d.ts +0 -1
  1073. package/src/libs/renderer/src/viewport/index.js +0 -6
  1074. package/src/libs/renderer/src/viewport/viewport-controller.d.ts +0 -198
  1075. package/src/libs/renderer/src/viewport/viewport-controller.js +0 -315
  1076. package/src/libs/renderer/src/vnode/container-id-generator.d.ts +0 -94
  1077. package/src/libs/renderer/src/vnode/container-id-generator.js +0 -110
  1078. package/src/libs/renderer/src/vnode/foreign-object.d.ts +0 -157
  1079. package/src/libs/renderer/src/vnode/foreign-object.js +0 -167
  1080. package/src/libs/renderer/src/vnode/index.d.ts +0 -56
  1081. package/src/libs/renderer/src/vnode/index.js +0 -78
  1082. package/src/libs/renderer/src/vnode/patch.d.ts +0 -189
  1083. package/src/libs/renderer/src/vnode/patch.js +0 -564
@@ -1,1076 +0,0 @@
1
- "use strict";
2
- // Vector PDF (Card 4) — a TRUE vector PDF with selectable, searchable text.
3
- //
4
- // THE DEPENDENCY DECISION (the card asks for it explicitly)
5
- // ---------------------------------------------------------
6
- // The named pipeline is svg2pdf.js + jsPDF. We do NOT use it, for three reasons that all
7
- // point the same way:
8
- //
9
- // 1. svg2pdf.js NEEDS A DOM. It walks a live `SVGElement`, and leans on `getBBox()` and
10
- // `getComputedStyle()` — browser layout APIs. jsdom does not implement `getBBox` (it
11
- // returns zeros), so in Node it does not merely need a shim, it silently produces an
12
- // EMPTY PDF. Adopting it would therefore break the two things this module is FOR:
13
- // the DOM-free guarantee (a node-environment test pins it) and the headless-server
14
- // story that is Card 6's whole differentiator.
15
- // 2. It is ~450KB (jsPDF ~350 + svg2pdf ~100) shipped to every browser consumer, to
16
- // re-derive a picture we already hold in a clean, fully-resolved VNode tree.
17
- // 3. Its input would be our SVG STRING — so we would serialize a tree to XML, hand it to
18
- // a library to re-parse into a DOM, and have it walk that DOM. We already have the
19
- // tree, already flattened (every `var(--…)` resolved into a concrete value). Painting
20
- // straight from it is both less code and strictly more faithful.
21
- //
22
- // So the PDF is written directly. This is not "faking it" — the output is a real vector
23
- // PDF: paths are paths, and text is text (`BT`/`Tj`), so it is selectable and searchable
24
- // in any reader, and it scales without pixelation.
25
- //
26
- // WHAT IT COSTS — stated plainly, because these are real limits:
27
- // • FONTS are the PDF base-14 (Helvetica/Times/Courier). Those are built into every
28
- // reader, so text needs no embedded font program — but the diagram's actual face
29
- // (Inter, system-ui) is NOT one of them, so a PDF renders in the nearest standard
30
- // family. Embedding the real face would need a font parser + subsetter.
31
- // • TEXT OUTSIDE WinAnsi (Arabic, CJK, emoji) cannot be written with a standard font.
32
- // Those characters are replaced with '?' and reported in `warnings` — loudly, because
33
- // a silently-mangled label is worse than a missing one.
34
- // • GRADIENT FILLS are REAL: linear → /ShadingType 2, radial → /ShadingType 3, painted
35
- // as `sh` clipped to the shape (see the shading section for why not a pattern fill).
36
- // Stop OPACITY is real too: a luminosity soft mask (a DeviceGray transparency-group
37
- // form painting the alpha ramp, wired through /ExtGState /SMask). Gradient-filled
38
- // TEXT is real: text rendering mode 7 turns the glyphs into the clip and the shading
39
- // paints through. What still flattens to the first stop, with a warning: gradient
40
- // STROKES — a shading through a stroke needs either the stroke outline as a clip
41
- // (PDF cannot build one) or a shading pattern whose /Matrix lives in page space,
42
- // i.e. exactly the accumulated-CTM bookkeeping the sh approach exists to avoid.
43
- // • IMAGES embed as real XObjects for data: PNGs — RGBA's alpha splits into an /SMask,
44
- // interlaced (Adam7) PNGs are de-interlaced, 16-bit samples downsample to their high
45
- // byte (< 0.4% error) — and JPEGs (DCTDecode passthrough), including CMYK: the Adobe
46
- // APP14 convention stores inverted ink values, undone via /Decode. Still refused,
47
- // loudly: external URLs (fetching would make the export impure) and sub-8-bit PNGs.
48
- // RGBA re-compression is stored-block (see flate.ts): raw-size streams, correct
49
- // pixels.
50
- // • ELEMENT clip-paths (clip-path="url(#…)" with userSpaceOnUse shapes) clip for real
51
- // via W n. clipPathUnits="objectBoundingBox" warns and paints unclipped.
52
- // • BLURRED elements (the node drop shadow) are DROPPED. PDF has no gaussian blur, and
53
- // drawing the shadow un-blurred would put a hard black slab behind every node — far
54
- // worse than no shadow.
55
- // • foreignObject cannot be represented at all.
56
- //
57
- // Everything here is pure and deterministic: same tree ⇒ same bytes.
58
- Object.defineProperty(exports, "__esModule", { value: true });
59
- exports.exportPdf = exportPdf;
60
- const pdf_primitives_1 = require("./pdf-primitives");
61
- const pdf_path_1 = require("./pdf-path");
62
- const png_1 = require("./png");
63
- const bounds_1 = require("../bounds");
64
- // The shared geometry module — see pdf-path.ts.
65
- const path_geometry_1 = require("../../canvas/path-geometry");
66
- const style_flattener_1 = require("../style-flattener");
67
- const patch_1 = require("../../vnode/patch");
68
- const default_light_theme_1 = require("../../themes/default-light-theme");
69
- function resolveMargins(margin) {
70
- if (typeof margin === 'number')
71
- return { top: margin, right: margin, bottom: margin, left: margin };
72
- if (margin)
73
- return margin;
74
- return { top: 36, right: 36, bottom: 36, left: 36 };
75
- }
76
- class ContentStream {
77
- constructor() {
78
- this.ops = [];
79
- this.state = { fill: null, stroke: null, lineWidth: null, dash: null, alpha: null, font: null };
80
- /** ExtGState names for the alphas we used: PDF puts constant alpha in a resource dict. */
81
- this.alphas = new Set();
82
- this.fonts = new Set();
83
- }
84
- push(op) {
85
- this.ops.push(op);
86
- }
87
- save() {
88
- this.ops.push('q');
89
- }
90
- restore() {
91
- this.ops.push('Q');
92
- // A `Q` rolls the graphics state back to whatever it was at the matching `q`, and we
93
- // do not track that — so forget our cache rather than skip an op we still need.
94
- this.state = { fill: null, stroke: null, lineWidth: null, dash: null, alpha: null, font: null };
95
- }
96
- setFill(rgb) {
97
- const op = `${(0, pdf_primitives_1.num)(rgb.r)} ${(0, pdf_primitives_1.num)(rgb.g)} ${(0, pdf_primitives_1.num)(rgb.b)} rg`;
98
- if (this.state.fill === op)
99
- return;
100
- this.state.fill = op;
101
- this.ops.push(op);
102
- }
103
- setStroke(rgb) {
104
- const op = `${(0, pdf_primitives_1.num)(rgb.r)} ${(0, pdf_primitives_1.num)(rgb.g)} ${(0, pdf_primitives_1.num)(rgb.b)} RG`;
105
- if (this.state.stroke === op)
106
- return;
107
- this.state.stroke = op;
108
- this.ops.push(op);
109
- }
110
- setLineWidth(width) {
111
- if (this.state.lineWidth === width)
112
- return;
113
- this.state.lineWidth = width;
114
- this.ops.push(`${(0, pdf_primitives_1.num)(width)} w`);
115
- }
116
- setDash(dash) {
117
- const op = dash ? `[${dash}] 0 d` : '[] 0 d';
118
- if (this.state.dash === op)
119
- return;
120
- this.state.dash = op;
121
- this.ops.push(op);
122
- }
123
- setAlpha(alpha) {
124
- const rounded = Number(alpha.toFixed(3));
125
- if (this.state.alpha === rounded)
126
- return;
127
- this.state.alpha = rounded;
128
- this.alphas.add(rounded);
129
- this.ops.push(`/GS${alphaName(rounded)} gs`);
130
- }
131
- setFont(font, size) {
132
- const op = `/F${fontIndex(font)} ${(0, pdf_primitives_1.num)(size)} Tf`;
133
- if (this.state.font === op)
134
- return;
135
- this.state.font = op;
136
- this.fonts.add(font);
137
- this.ops.push(op);
138
- }
139
- concat(m) {
140
- this.ops.push(`${(0, pdf_primitives_1.num)(m.a)} ${(0, pdf_primitives_1.num)(m.b)} ${(0, pdf_primitives_1.num)(m.c)} ${(0, pdf_primitives_1.num)(m.d)} ${(0, pdf_primitives_1.num)(m.e)} ${(0, pdf_primitives_1.num)(m.f)} cm`);
141
- }
142
- }
143
- const BASE_FONTS = [
144
- 'Helvetica',
145
- 'Helvetica-Bold',
146
- 'Helvetica-Oblique',
147
- 'Helvetica-BoldOblique',
148
- 'Times-Roman',
149
- 'Times-Bold',
150
- 'Times-Italic',
151
- 'Times-BoldItalic',
152
- 'Courier',
153
- 'Courier-Bold',
154
- ];
155
- const fontIndex = (font) => BASE_FONTS.indexOf(font) + 1;
156
- const alphaName = (alpha) => String(Math.round(alpha * 1000));
157
- /** Elements that draw nothing and whose children are references. */
158
- const NON_PAINTING = new Set([
159
- 'defs', 'title', 'desc', 'metadata', 'linearGradient', 'radialGradient',
160
- 'stop', 'filter', 'marker', 'clipPath', 'mask', 'pattern', 'style',
161
- ]);
162
- function nn(value, fallback = 0) {
163
- const n = Number(value);
164
- return Number.isFinite(n) ? n : fallback;
165
- }
166
- /**
167
- * Export a rendered VNode tree as a vector PDF.
168
- */
169
- function exportPdf(root, options = {}) {
170
- var _a, _b, _c, _d, _e;
171
- const warnings = [];
172
- const margins = resolveMargins(options.margin);
173
- const page = (0, pdf_primitives_1.pageDimensions)((_a = options.pageSize) !== null && _a !== void 0 ? _a : 'a4', (_b = options.orientation) !== null && _b !== void 0 ? _b : 'landscape');
174
- // The world rectangle(s) to draw. One page unless the paginator supplied a grid.
175
- const content = (_c = options.viewBox) !== null && _c !== void 0 ? _c : (() => {
176
- var _a;
177
- const bounds = (0, bounds_1.vnodeBounds)(root);
178
- const pad = (_a = options.padding) !== null && _a !== void 0 ? _a : 20;
179
- if (!bounds)
180
- return { x: 0, y: 0, width: 100, height: 100 };
181
- return { x: bounds.x - pad, y: bounds.y - pad, width: bounds.width + pad * 2, height: bounds.height + pad * 2 };
182
- })();
183
- // Normalise: a bare Rectangle means "paint the whole window".
184
- const pages = (((_d = options.pages) === null || _d === void 0 ? void 0 : _d.length) ? options.pages : [content]).map(page => {
185
- var _a;
186
- const rect = 'rect' in page ? page.rect : page;
187
- const clip = 'rect' in page ? ((_a = page.clip) !== null && _a !== void 0 ? _a : rect) : page;
188
- return { rect, clip };
189
- });
190
- // Gradients / patterns / clip paths are resolved by id from <defs> — collect first.
191
- const defs = collectDefs(root);
192
- // The stylesheet, flattened — the same resolver the SVG exporter uses.
193
- const classStyles = (0, style_flattener_1.createClassStyleResolver)((_e = options.theme) !== null && _e !== void 0 ? _e : default_light_theme_1.LIGHT_THEME, warnings);
194
- const ctx = {
195
- defs,
196
- shadings: new ShadingRegistry(),
197
- softMasks: new SoftMaskRegistry(),
198
- images: new ImageRegistry(),
199
- warnings,
200
- classStyles,
201
- };
202
- const writer = new pdf_primitives_1.PdfWriter();
203
- const catalogId = writer.allocate();
204
- const pagesId = writer.allocate();
205
- const pageIds = [];
206
- const contentIds = [];
207
- const streams = [];
208
- for (let i = 0; i < pages.length; i++) {
209
- pageIds.push(writer.allocate());
210
- contentIds.push(writer.allocate());
211
- }
212
- const boxWidth = page.width - margins.left - margins.right;
213
- const boxHeight = page.height - margins.top - margins.bottom;
214
- pages.forEach(({ rect, clip }, index) => {
215
- const stream = new ContentStream();
216
- streams.push(stream);
217
- // Fit the world rectangle into the page's content box, preserving aspect, centred.
218
- const scale = Math.min(boxWidth / rect.width, boxHeight / rect.height);
219
- const drawWidth = rect.width * scale;
220
- const drawHeight = rect.height * scale;
221
- const offsetX = margins.left + (boxWidth - drawWidth) / 2;
222
- const offsetY = margins.bottom + (boxHeight - drawHeight) / 2;
223
- if (options.backgroundColor) {
224
- const bg = (0, pdf_primitives_1.parsePdfColor)(options.backgroundColor);
225
- if (bg) {
226
- stream.save();
227
- stream.setFill(bg);
228
- stream.push(`0 0 ${(0, pdf_primitives_1.num)(page.width)} ${(0, pdf_primitives_1.num)(page.height)} re`);
229
- stream.push('f');
230
- stream.restore();
231
- }
232
- }
233
- stream.save();
234
- // PDF's origin is BOTTOM-left with y up; SVG's is TOP-left with y down. This one
235
- // matrix does the flip, the fit, and the world offset in a single CTM — so every
236
- // coordinate below is written in the SVG's own space and lands in the right place.
237
- // x_pdf = offsetX + (x_svg - rect.x) * scale
238
- // y_pdf = offsetY + drawHeight - (y_svg - rect.y) * scale
239
- const ctm = {
240
- a: scale,
241
- b: 0,
242
- c: 0,
243
- d: -scale,
244
- e: offsetX - rect.x * scale,
245
- f: offsetY + drawHeight + rect.y * scale,
246
- };
247
- stream.concat(ctm);
248
- // Clip to what this page actually PAINTS. That is `clip`, not `rect`: when the
249
- // paginator pulled a break back to spare a node, the clip is narrower than the window,
250
- // and the page shows white space instead of a sliced-in-half box.
251
- stream.push(`${(0, pdf_primitives_1.num)(clip.x)} ${(0, pdf_primitives_1.num)(clip.y)} ${(0, pdf_primitives_1.num)(clip.width)} ${(0, pdf_primitives_1.num)(clip.height)} re`);
252
- stream.push('W n');
253
- paint(root, stream, ctx);
254
- stream.restore();
255
- if (options.pageNumbers && pages.length > 0) {
256
- paintPageNumber(stream, index + 1, pages.length, page, margins);
257
- }
258
- });
259
- // ---- assemble the document ------------------------------------------------
260
- const usedFonts = new Set();
261
- const usedAlphas = new Set();
262
- for (const stream of streams) {
263
- stream.fonts.forEach(f => usedFonts.add(f));
264
- stream.alphas.forEach(a => usedAlphas.add(a));
265
- }
266
- const fontIds = new Map();
267
- for (const font of BASE_FONTS) {
268
- if (usedFonts.has(font))
269
- fontIds.set(font, writer.allocate());
270
- }
271
- const fontResources = [...fontIds.entries()]
272
- .map(([font, id]) => `/F${fontIndex(font)} ${id} 0 R`)
273
- .join(' ');
274
- // Constant alpha lives in an ExtGState, not in an operator — /ca fill, /CA stroke.
275
- const alphaResources = [...usedAlphas]
276
- .sort((a, b) => a - b)
277
- .map(alpha => `/GS${alphaName(alpha)} << /Type /ExtGState /ca ${(0, pdf_primitives_1.num)(alpha)} /CA ${(0, pdf_primitives_1.num)(alpha)} >>`)
278
- .join(' ');
279
- // Image XObjects: one stream object per distinct image, plus its /SMask stream when the
280
- // source PNG carried alpha. Wiring the SMask by reference is the whole point — an alpha
281
- // plane that exists but is not named in the image dict renders opaque, silently.
282
- const imageEntries = ctx.images.entries();
283
- const imageRefs = [];
284
- for (const { name, image } of imageEntries) {
285
- let smaskRef = '';
286
- if (image.smask) {
287
- const smaskId = writer.allocate();
288
- writer.setStream(smaskId, `/Type /XObject /Subtype /Image /Width ${image.width} /Height ${image.height} ` +
289
- `/ColorSpace /DeviceGray /BitsPerComponent ${image.smask.bitsPerComponent} /Filter /FlateDecode`, Array.from(image.smask.data));
290
- smaskRef = ` /SMask ${smaskId} 0 R`;
291
- }
292
- const imageId = writer.allocate();
293
- const decodeParms = image.decodeParms ? ` /DecodeParms ${image.decodeParms}` : '';
294
- // /Decode is how an Adobe-inverted CMYK JPEG comes out the right colours — dropping
295
- // it here renders every such image inverted (red → cyan) with no other symptom.
296
- const decode = image.decode ? ` /Decode ${image.decode}` : '';
297
- writer.setStream(imageId, `/Type /XObject /Subtype /Image /Width ${image.width} /Height ${image.height} ` +
298
- `/ColorSpace ${image.colorSpace} /BitsPerComponent ${image.bitsPerComponent} ` +
299
- `/Filter ${image.filter}${decodeParms}${decode}${smaskRef}`, Array.from(image.data));
300
- imageRefs.push(`/${name} ${imageId} 0 R`);
301
- }
302
- const shadingResources = ctx.shadings
303
- .entries()
304
- .map(([name, dict]) => `/${name} ${dict}`)
305
- .join(' ');
306
- // Luminosity soft masks: a Form XObject painting the alpha ramp in DeviceGray, and an
307
- // ExtGState pointing at it. The /Transparency group's /CS MUST be DeviceGray — an RGB
308
- // group's luminosity is a different function of the ramp, and the mask silently warps.
309
- const softMaskResources = ctx.softMasks
310
- .entries()
311
- .map(mask => {
312
- const formId = writer.allocate();
313
- writer.setStream(formId, `/Type /XObject /Subtype /Form /BBox [${mask.bbox}] ` +
314
- `/Group << /S /Transparency /CS /DeviceGray >> ` +
315
- `/Resources << /Shading << /G0 ${mask.shading} >> >>`, (0, pdf_primitives_1.latin1Bytes)('/G0 sh'));
316
- return `/${mask.name} << /Type /ExtGState /SMask << /S /Luminosity /G ${formId} 0 R >> >>`;
317
- })
318
- .join(' ');
319
- const resources = `<< /Font << ${fontResources} >> ` +
320
- `/ExtGState << ${alphaResources}${softMaskResources ? ` ${softMaskResources}` : ''} >> ` +
321
- (shadingResources ? `/Shading << ${shadingResources} >> ` : '') +
322
- (imageRefs.length ? `/XObject << ${imageRefs.join(' ')} >> ` : '') +
323
- `/ProcSet [/PDF /Text${imageRefs.length ? ' /ImageB /ImageC /ImageI' : ''}] >>`;
324
- streams.forEach((stream, index) => {
325
- writer.set(pageIds[index], `<< /Type /Page /Parent ${pagesId} 0 R ` +
326
- `/MediaBox [0 0 ${(0, pdf_primitives_1.num)(page.width)} ${(0, pdf_primitives_1.num)(page.height)}] ` +
327
- `/Resources ${resources} ` +
328
- `/Contents ${contentIds[index]} 0 R >>`);
329
- writer.setStream(contentIds[index], '', (0, pdf_primitives_1.latin1Bytes)(stream.ops.join('\n')));
330
- });
331
- for (const [font, id] of fontIds) {
332
- writer.set(id, `<< /Type /Font /Subtype /Type1 /BaseFont /${font} /Encoding /WinAnsiEncoding >>`);
333
- }
334
- writer.set(pagesId, `<< /Type /Pages /Kids [${pageIds.map(id => `${id} 0 R`).join(' ')}] /Count ${pageIds.length} >>`);
335
- const infoId = buildInfo(writer, options.metadata);
336
- writer.set(catalogId, `<< /Type /Catalog /Pages ${pagesId} 0 R >>`);
337
- return { pdf: writer.build(catalogId, infoId), pageCount: pages.length, warnings: dedupe(warnings) };
338
- }
339
- function buildInfo(writer, metadata) {
340
- if (!metadata)
341
- return null;
342
- const entries = [];
343
- const add = (key, value) => {
344
- if (value)
345
- entries.push(`/${key} ${(0, pdf_primitives_1.pdfString)((0, pdf_primitives_1.encodeWinAnsi)(value).bytes)}`);
346
- };
347
- add('Title', metadata.title);
348
- add('Author', metadata.author);
349
- add('Subject', metadata.subject);
350
- add('Keywords', metadata.keywords);
351
- entries.push('/Producer (Grafloria)');
352
- if (metadata.creationDate)
353
- add('CreationDate', toPdfDate(metadata.creationDate));
354
- const id = writer.allocate();
355
- writer.set(id, `<< ${entries.join(' ')} >>`);
356
- return id;
357
- }
358
- /** ISO-8601 → PDF's own `D:YYYYMMDDHHmmSS` date literal. */
359
- function toPdfDate(iso) {
360
- const date = new Date(iso);
361
- if (Number.isNaN(date.getTime()))
362
- return iso;
363
- const pad = (n) => String(n).padStart(2, '0');
364
- return (`D:${date.getUTCFullYear()}${pad(date.getUTCMonth() + 1)}${pad(date.getUTCDate())}` +
365
- `${pad(date.getUTCHours())}${pad(date.getUTCMinutes())}${pad(date.getUTCSeconds())}Z`);
366
- }
367
- /**
368
- * THE ELEMENT'S REAL PAINT — the CSS cascade, resolved.
369
- *
370
- * This is not optional decoration. In CSS mode (the live default) a node's fill and a
371
- * link's stroke are NOT on the element: they come from the injected stylesheet, and the
372
- * VNode carries only `class="diagram-node"`. Painting the raw props would therefore give
373
- * every link no stroke and every node no fill — i.e. a nearly BLANK PDF. (It did. That is
374
- * how this was found.)
375
- *
376
- * So the same flattener the SVG exporter uses is applied here, in the same CSS priority
377
- * order — presentation attribute < author rule < inline style — and keys are normalised
378
- * through `attrNameForProp`, the mapping SHARED with the DOM patcher. Sharing it is what
379
- * stops a `strokeWidth` prop and a `stroke-width` rule from both surviving and the wrong
380
- * one winning.
381
- */
382
- function resolved(vnode, ctx) {
383
- var _a;
384
- const props = (_a = vnode.props) !== null && _a !== void 0 ? _a : {};
385
- const out = {};
386
- // (1) presentation attributes — the lowest layer
387
- for (const key of Object.keys(props)) {
388
- const value = props[key];
389
- if (value === null || value === undefined || typeof value === 'function')
390
- continue;
391
- if (key === 'style' || key === 'className' || key === 'textContent' || key === 'innerHTML')
392
- continue;
393
- out[(0, patch_1.attrNameForProp)(key)] = String(value);
394
- }
395
- // (2) the stylesheet — an author rule BEATS a presentation attribute
396
- const className = props['className'];
397
- if (typeof className === 'string' && className.trim() !== '') {
398
- Object.assign(out, ctx.classStyles(className.trim().split(/\s+/)));
399
- }
400
- // (3) the element's own inline style — the cascade's winner
401
- const style = (0, patch_1.serializeStyle)(props['style']);
402
- if (style) {
403
- for (const declaration of style.split(';')) {
404
- const colon = declaration.indexOf(':');
405
- if (colon < 0)
406
- continue;
407
- const prop = declaration.slice(0, colon).trim();
408
- const value = declaration.slice(colon + 1).trim();
409
- if (prop && value)
410
- out[prop] = value;
411
- }
412
- }
413
- return out;
414
- }
415
- /** Both prop spellings occur: the capture emits `stop-color`, hand-built trees `stopColor`. */
416
- function stopProp(vnode, kebab, camel) {
417
- var _a, _b, _c;
418
- return (_b = (_a = vnode.props) === null || _a === void 0 ? void 0 : _a[kebab]) !== null && _b !== void 0 ? _b : (_c = vnode.props) === null || _c === void 0 ? void 0 : _c[camel];
419
- }
420
- function parseStops(vnode) {
421
- var _a, _b;
422
- const stops = [];
423
- for (const child of (_a = vnode.children) !== null && _a !== void 0 ? _a : []) {
424
- if (!child || typeof child !== 'object' || child.type !== 'stop')
425
- continue;
426
- const colorValue = stopProp(child, 'stop-color', 'stopColor');
427
- const color = (0, pdf_primitives_1.parsePdfColor)(colorValue);
428
- if (!color)
429
- continue;
430
- // Offsets arrive as numbers, "0.5" or "50%".
431
- const rawOffset = (_b = child.props) === null || _b === void 0 ? void 0 : _b['offset'];
432
- let offset = 0;
433
- if (typeof rawOffset === 'number')
434
- offset = rawOffset;
435
- else if (typeof rawOffset === 'string') {
436
- const pct = rawOffset.trim().endsWith('%');
437
- const parsed = Number.parseFloat(rawOffset);
438
- offset = Number.isFinite(parsed) ? (pct ? parsed / 100 : parsed) : 0;
439
- }
440
- const stopOpacity = nn(stopProp(child, 'stop-opacity', 'stopOpacity'), 1);
441
- stops.push({
442
- offset: Math.max(0, Math.min(1, offset)),
443
- color,
444
- alpha: stopOpacity * (0, pdf_primitives_1.parseColorAlpha)(colorValue),
445
- });
446
- }
447
- // PDF stitching wants monotonic domains; SVG clamps out-of-order offsets the same way.
448
- for (let i = 1; i < stops.length; i++)
449
- stops[i].offset = Math.max(stops[i].offset, stops[i - 1].offset);
450
- return stops;
451
- }
452
- /** Every def the painter can resolve by id, in one walk. */
453
- function collectDefs(root) {
454
- const defs = { gradients: new Map(), patterns: new Map(), clipPaths: new Map() };
455
- const walk = (vnode) => {
456
- var _a, _b, _c;
457
- if (!vnode || typeof vnode !== 'object')
458
- return;
459
- const id = (_a = vnode.props) === null || _a === void 0 ? void 0 : _a['id'];
460
- if ((vnode.type === 'linearGradient' || vnode.type === 'radialGradient') && typeof id === 'string') {
461
- const props = (_b = vnode.props) !== null && _b !== void 0 ? _b : {};
462
- const stops = parseStops(vnode);
463
- if (stops.length > 0) {
464
- defs.gradients.set(id, {
465
- kind: vnode.type === 'linearGradient' ? 'linear' : 'radial',
466
- objectBoundingBox: props['gradientUnits'] !== 'userSpaceOnUse',
467
- coords: vnode.type === 'linearGradient'
468
- ? { x1: nn(props['x1'], 0), y1: nn(props['y1'], 0), x2: nn(props['x2'], 1), y2: nn(props['y2'], 0) }
469
- : { cx: nn(props['cx'], 0.5), cy: nn(props['cy'], 0.5), r: nn(props['r'], 0.5) },
470
- stops,
471
- });
472
- }
473
- }
474
- else if (vnode.type === 'pattern' && typeof id === 'string') {
475
- defs.patterns.set(id, vnode);
476
- }
477
- else if (vnode.type === 'clipPath' && typeof id === 'string') {
478
- defs.clipPaths.set(id, vnode);
479
- }
480
- for (const child of (_c = vnode.children) !== null && _c !== void 0 ? _c : [])
481
- walk(child);
482
- };
483
- walk(root);
484
- return defs;
485
- }
486
- // ---------------------------------------------------------------------------
487
- // Document-level resources the painter accumulates while painting.
488
- // ---------------------------------------------------------------------------
489
- /** Shadings, deduped by their full dict (same gradient + same geometry = one resource). */
490
- class ShadingRegistry {
491
- constructor() {
492
- this.byDict = new Map();
493
- }
494
- nameFor(dict) {
495
- const existing = this.byDict.get(dict);
496
- if (existing)
497
- return existing;
498
- const name = `Sh${this.byDict.size + 1}`;
499
- this.byDict.set(dict, name);
500
- return name;
501
- }
502
- entries() {
503
- return [...this.byDict.entries()].map(([dict, name]) => [name, dict]);
504
- }
505
- get size() {
506
- return this.byDict.size;
507
- }
508
- }
509
- /**
510
- * Luminosity soft masks — one per distinct (gray alpha-ramp shading, bbox) pair.
511
- *
512
- * Each entry becomes a Form XObject painting the alpha ramp as a DEVICEGRAY shading
513
- * (stop alpha 1 → white, 0 → black) inside a /Transparency group, plus an ExtGState
514
- * whose /SMask /Luminosity points at it. `gs` that state and every later paint is
515
- * multiplied by the mask — which is exactly SVG's per-stop opacity.
516
- */
517
- class SoftMaskRegistry {
518
- constructor() {
519
- this.byKey = new Map();
520
- }
521
- nameFor(shading, bbox) {
522
- const key = `${bbox}|${shading}`;
523
- const existing = this.byKey.get(key);
524
- if (existing)
525
- return existing.name;
526
- const name = `GSM${this.byKey.size + 1}`;
527
- this.byKey.set(key, { name, shading, bbox });
528
- return name;
529
- }
530
- entries() {
531
- return [...this.byKey.values()];
532
- }
533
- }
534
- /** Images, deduped by href — one XObject however many times a data URL is drawn. */
535
- class ImageRegistry {
536
- constructor() {
537
- /** null = decode failed (already warned) — remembered so one bad image warns once. */
538
- this.byHref = new Map();
539
- this.count = 0;
540
- }
541
- resolve(href, warn) {
542
- const cached = this.byHref.get(href);
543
- if (cached !== undefined)
544
- return cached;
545
- const image = (0, png_1.decodeDataUrlImage)(href, warn);
546
- const entry = image ? { name: `Im${++this.count}`, image } : null;
547
- this.byHref.set(href, entry);
548
- return entry;
549
- }
550
- entries() {
551
- return [...this.byHref.values()].filter((e) => e !== null);
552
- }
553
- }
554
- /**
555
- * Walk the tree, painting into the content stream.
556
- *
557
- * There is no parent-matrix parameter here on purpose: PDF's CTM is STATEFUL, and `q`/`Q`
558
- * are a real stack. So a group's transform is pushed with `cm` and popped with `Q`, and
559
- * the composition happens in the PDF itself — exactly as it does in SVG. Threading an
560
- * accumulated matrix through as well would apply every transform twice.
561
- */
562
- function paint(vnode, stream, ctx) {
563
- var _a;
564
- if (!vnode || typeof vnode !== 'object' || typeof vnode.type !== 'string')
565
- return;
566
- if (NON_PAINTING.has(vnode.type))
567
- return;
568
- // The CASCADE, resolved — see `resolved()`. Everything below reads from this map, never
569
- // from the raw props, because in CSS mode the raw props carry no paint at all.
570
- const style = resolved(vnode, ctx);
571
- if (style['display'] === 'none')
572
- return;
573
- if (vnode.type === 'foreignObject') {
574
- ctx.warnings.push('foreignObject cannot be represented in PDF (it is HTML, and PDF has no HTML) — omitted. ' +
575
- 'Nodes rendered as HTML components will be missing from the PDF.');
576
- return;
577
- }
578
- // A blur is a filter, and PDF has no filters. Dropping the element beats drawing the
579
- // node shadow as a hard black slab.
580
- const filter = style['filter'];
581
- if (typeof filter === 'string' && /blur\(|url\(#grafloria-blur/.test(filter)) {
582
- ctx.warnings.push('blurred elements (the node drop shadow) are omitted — PDF has no gaussian blur');
583
- return;
584
- }
585
- const local = (0, path_geometry_1.parseTransform)(style['transform']);
586
- const hasTransform = !isIdentity(local);
587
- // An element's clip path rides INSIDE its own transform: SVG applies the transform to
588
- // element and clip alike (they move together), so the clip ops are emitted after `cm`.
589
- const clip = resolveClip(style['clip-path'], ctx);
590
- if (clip === 'hide')
591
- return; // an EMPTY clipPath clips everything away — SVG semantics
592
- const scoped = hasTransform || clip !== null;
593
- if (scoped)
594
- stream.save();
595
- if (hasTransform)
596
- stream.concat(local);
597
- if (clip) {
598
- for (const op of clip)
599
- stream.push(op);
600
- stream.push('W n');
601
- }
602
- drawElement(vnode, style, stream, ctx);
603
- for (const child of (_a = vnode.children) !== null && _a !== void 0 ? _a : []) {
604
- if (child && typeof child === 'object')
605
- paint(child, stream, ctx);
606
- }
607
- if (scoped)
608
- stream.restore();
609
- }
610
- /**
611
- * `clip-path: url(#…)` → the clip's PDF path ops, or null for "paint unclipped", or
612
- * 'hide' when the clip resolves to nothing (SVG: an empty clip path renders nothing).
613
- *
614
- * Multiple clip shapes concatenate into ONE path before a single `W n` — nonzero winding
615
- * over same-direction subpaths is their union, which is SVG's multi-child semantics.
616
- * Every refusal (missing def, objectBoundingBox units) WARNS and paints unclipped:
617
- * bleeding content is a visible flaw, silently vanished content is a lost diagram.
618
- */
619
- function resolveClip(value, ctx) {
620
- var _a, _b, _c;
621
- if (typeof value !== 'string')
622
- return null;
623
- const ref = /^url\(#([^)]+)\)$/.exec(value.trim());
624
- if (!ref)
625
- return value.trim() === 'none' ? null : null;
626
- const def = ctx.defs.clipPaths.get(ref[1]);
627
- if (!def) {
628
- ctx.warnings.push(`a clip-path references "#${ref[1]}", which is not in the tree — the content is painted UNCLIPPED`);
629
- return null;
630
- }
631
- if (((_a = def.props) === null || _a === void 0 ? void 0 : _a['clipPathUnits']) === 'objectBoundingBox') {
632
- ctx.warnings.push('a clipPath with clipPathUnits="objectBoundingBox" is not supported — the content is painted UNCLIPPED');
633
- return null;
634
- }
635
- const ops = [];
636
- for (const child of (_b = def.children) !== null && _b !== void 0 ? _b : []) {
637
- if (!child || typeof child !== 'object')
638
- continue;
639
- const childOps = geometryOps(child, resolved(child, ctx));
640
- if (childOps)
641
- ops.push(...childOps);
642
- if ((_c = child.props) === null || _c === void 0 ? void 0 : _c['transform']) {
643
- ctx.warnings.push('a transform on a clipPath child is ignored — the untransformed shape clips');
644
- }
645
- }
646
- return ops.length > 0 ? ops : 'hide';
647
- }
648
- function isIdentity(m) {
649
- return m.a === 1 && m.b === 0 && m.c === 0 && m.d === 1 && m.e === 0 && m.f === 0;
650
- }
651
- /** A `url(#…)` reference's target id, or null. */
652
- function urlRefId(value) {
653
- if (typeof value !== 'string')
654
- return null;
655
- const ref = /^url\(#([^)]+)\)$/.exec(value.trim());
656
- return ref ? ref[1] : null;
657
- }
658
- /**
659
- * Resolve a paint value to a FLAT colour, degrading paint servers with a warning.
660
- *
661
- * This is the fallback path only: gradient FILLS on shapes render as real shadings and
662
- * never come through here. What does: gradient strokes, gradient-filled text, and
663
- * patterns — each flattened to its most honest stand-in colour, each warned with the
664
- * caller's own reason (`why`), so the fidelity report says exactly what degraded.
665
- */
666
- function flattenedPaint(value, ctx, why) {
667
- var _a, _b;
668
- const id = urlRefId(value);
669
- if (id === null)
670
- return (0, pdf_primitives_1.parsePdfColor)(value);
671
- const gradient = ctx.defs.gradients.get(id);
672
- if (gradient) {
673
- ctx.warnings.push(why);
674
- return gradient.stops[0].color;
675
- }
676
- const pattern = ctx.defs.patterns.get(id);
677
- if (pattern) {
678
- // The most honest stand-in for a pattern is the field its marks sit on — its
679
- // background rect's fill, when it has one.
680
- ctx.warnings.push('a pattern paint was flattened to its background colour — PDF tiling patterns are not implemented');
681
- for (const child of (_a = pattern.children) !== null && _a !== void 0 ? _a : []) {
682
- const color = (0, pdf_primitives_1.parsePdfColor)((_b = child === null || child === void 0 ? void 0 : child.props) === null || _b === void 0 ? void 0 : _b['fill']);
683
- if ((child === null || child === void 0 ? void 0 : child.type) === 'rect' && color)
684
- return color;
685
- }
686
- return null;
687
- }
688
- ctx.warnings.push(`a paint references "url(#${id})", which is not in the tree — not painted`);
689
- return null;
690
- }
691
- const COLOR_CHANNELS = s => [s.color.r, s.color.g, s.color.b];
692
- /** Stop alpha as DeviceGray luminosity: 1 → white (keep), 0 → black (mask away). */
693
- const ALPHA_CHANNELS = s => [s.alpha];
694
- /** Type 2 (exponential) function between two stops — PDF's native two-value ramp. */
695
- function rampFunction(from, to, channels) {
696
- const c = (s) => `[${channels(s).map(pdf_primitives_1.num).join(' ')}]`;
697
- return `<< /FunctionType 2 /Domain [0 1] /C0 ${c(from)} /C1 ${c(to)} /N 1 >>`;
698
- }
699
- /** 2 stops → one Type 2; more → a Type 3 stitching of Type 2 ramps at the stop offsets. */
700
- function shadingFunction(stops, channels) {
701
- // Pad the domain: SVG pads before the first and after the last stop with their colours.
702
- const padded = [...stops];
703
- if (padded[0].offset > 0)
704
- padded.unshift(Object.assign(Object.assign({}, padded[0]), { offset: 0 }));
705
- if (padded[padded.length - 1].offset < 1)
706
- padded.push(Object.assign(Object.assign({}, padded[padded.length - 1]), { offset: 1 }));
707
- if (padded.length === 1)
708
- padded.push(Object.assign(Object.assign({}, padded[0]), { offset: 1 }));
709
- if (padded.length === 2)
710
- return rampFunction(padded[0], padded[1], channels);
711
- // /Bounds must ascend strictly inside (0,1) — two stops at one offset (a hard colour
712
- // break) become an epsilon-wide ramp, which is what it looks like at any zoom.
713
- const bounds = [];
714
- let previous = 0;
715
- for (let i = 1; i < padded.length - 1; i++) {
716
- const bound = Math.min(Math.max(padded[i].offset, previous + 0.0001), 0.9999);
717
- bounds.push(bound);
718
- previous = bound;
719
- }
720
- const functions = [];
721
- for (let i = 0; i < padded.length - 1; i++)
722
- functions.push(rampFunction(padded[i], padded[i + 1], channels));
723
- return (`<< /FunctionType 3 /Domain [0 1] /Functions [${functions.join(' ')}] ` +
724
- `/Bounds [${bounds.map(pdf_primitives_1.num).join(' ')}] /Encode [${functions.map(() => '0 1').join(' ')}] >>`);
725
- }
726
- /**
727
- * The shading dicts for a gradient as used by ONE element (objectBoundingBox coords
728
- * depend on the element's box), or null when the box cannot be determined.
729
- */
730
- function shadingDictFor(gradient, vnode, ctx) {
731
- let geometry;
732
- if (gradient.kind === 'linear') {
733
- let { x1, y1, x2, y2 } = gradient.coords;
734
- if (gradient.objectBoundingBox) {
735
- const box = (0, bounds_1.vnodeBounds)(vnode);
736
- if (!box)
737
- return null;
738
- x1 = box.x + x1 * box.width;
739
- y1 = box.y + y1 * box.height;
740
- x2 = box.x + x2 * box.width;
741
- y2 = box.y + y2 * box.height;
742
- }
743
- geometry = `/ShadingType 2 /ColorSpace {CS} /Coords [${(0, pdf_primitives_1.num)(x1)} ${(0, pdf_primitives_1.num)(y1)} ${(0, pdf_primitives_1.num)(x2)} ${(0, pdf_primitives_1.num)(y2)}]`;
744
- }
745
- else {
746
- let { cx, cy, r } = gradient.coords;
747
- if (gradient.objectBoundingBox) {
748
- const box = (0, bounds_1.vnodeBounds)(vnode);
749
- if (!box)
750
- return null;
751
- cx = box.x + cx * box.width;
752
- cy = box.y + cy * box.height;
753
- // SVG's oBB radius against a non-square box is an ellipse (via gradientTransform);
754
- // the normalised diagonal is the spec's own circle-equivalent and the honest circle.
755
- r = r * (Math.hypot(box.width, box.height) / Math.SQRT2);
756
- }
757
- // PDF radial coords are [x0 y0 r0 x1 y1 r1]: inner circle (SVG's focal, radius 0) to
758
- // the outer circle. The capture emits no focal point, so it sits at the centre.
759
- geometry = `/ShadingType 3 /ColorSpace {CS} /Coords [${(0, pdf_primitives_1.num)(cx)} ${(0, pdf_primitives_1.num)(cy)} 0 ${(0, pdf_primitives_1.num)(cx)} ${(0, pdf_primitives_1.num)(cy)} ${(0, pdf_primitives_1.num)(r)}]`;
760
- }
761
- // /Extend [true true] = SVG's default spreadMethod="pad": both ends run on.
762
- const dict = (cs, channels) => `<< ${geometry.replace('{CS}', cs)} /Function ${shadingFunction(gradient.stops, channels)} /Extend [true true] >>`;
763
- const color = dict('/DeviceRGB', COLOR_CHANNELS);
764
- // Translucent stops → a luminosity soft mask painting the SAME geometry as a gray
765
- // alpha ramp. The mask form's /BBox must cover everything the colour shading can
766
- // reach (the element, since the sh is clipped to it) — outside the BBox the mask's
767
- // BLACK backdrop rules, i.e. alpha 0, so an under-sized box eats the element's edge.
768
- if (gradient.stops.some(stop => stop.alpha < 1)) {
769
- const box = (0, bounds_1.vnodeBounds)(vnode);
770
- if (!box) {
771
- ctx.warnings.push('a gradient with stop opacity is painted OPAQUE — its soft-mask form needs an element ' +
772
- 'bounding box that could not be determined');
773
- return { color, mask: null };
774
- }
775
- const pad = 8; // anti-aliasing head-room; the shape clip bounds the real paint anyway
776
- const bbox = `${(0, pdf_primitives_1.num)(box.x - pad)} ${(0, pdf_primitives_1.num)(box.y - pad)} ` +
777
- `${(0, pdf_primitives_1.num)(box.x + box.width + pad)} ${(0, pdf_primitives_1.num)(box.y + box.height + pad)}`;
778
- return { color, mask: { shading: dict('/DeviceGray', ALPHA_CHANNELS), bbox } };
779
- }
780
- return { color, mask: null };
781
- }
782
- function drawElement(vnode, style, stream, ctx) {
783
- if (vnode.type === 'text') {
784
- drawText(vnode, style, stream, ctx);
785
- return;
786
- }
787
- if (vnode.type === 'image') {
788
- drawImage(style, stream, ctx);
789
- return;
790
- }
791
- const ops = geometryOps(vnode, style);
792
- if (!ops || ops.length === 0)
793
- return;
794
- // A gradient FILL gets a real shading; everything else resolves to a flat colour.
795
- const fillId = urlRefId(style['fill']);
796
- const gradient = fillId ? ctx.defs.gradients.get(fillId) : undefined;
797
- let shadingName = null;
798
- let softMaskName = null;
799
- let fill = null;
800
- if (gradient) {
801
- const shading = shadingDictFor(gradient, vnode, ctx);
802
- if (shading) {
803
- shadingName = ctx.shadings.nameFor(shading.color);
804
- if (shading.mask)
805
- softMaskName = ctx.softMasks.nameFor(shading.mask.shading, shading.mask.bbox);
806
- }
807
- else {
808
- ctx.warnings.push('a gradient fill was flattened to its first stop — its objectBoundingBox coords need an ' +
809
- 'element bounding box that could not be determined');
810
- fill = gradient.stops[0].color;
811
- }
812
- }
813
- else {
814
- // The gradient branch above is the only gradient path, so the `why` here can only
815
- // ever fire for patterns / dangling refs, which carry their own messages.
816
- fill = flattenedPaint(style['fill'], ctx, 'a gradient fill was flattened to its first stop');
817
- }
818
- const stroke = flattenedPaint(style['stroke'], ctx, 'a gradient STROKE was flattened to its first stop — painting a shading through a stroke ' +
819
- 'needs the stroke outline as a clipping path, which this exporter does not build');
820
- // `1px` is a legal CSS width and `Number('1px')` is NaN — parseFloat, not Number.
821
- const strokeWidth = len(style['stroke-width'], 1);
822
- const willFill = fill !== null;
823
- const willStroke = stroke !== null && strokeWidth > 0;
824
- if (!shadingName && !willFill && !willStroke)
825
- return;
826
- const alpha = nn(style['opacity'], 1) *
827
- nn(style['fill-opacity'], 1) *
828
- (fill ? (0, pdf_primitives_1.parseColorAlpha)(style['fill']) : 1);
829
- if (shadingName) {
830
- // Clip to the shape, paint the shading, pop. The clip is why W n precedes sh.
831
- // The soft-mask gs (stop opacity) comes FIRST: the mask form's coordinate space is
832
- // fixed at gs time, and it must be the same current user space the sh paints in.
833
- // The matching Q resets the SMask — nothing after this block stays masked.
834
- stream.save();
835
- if (softMaskName)
836
- stream.push(`/${softMaskName} gs`);
837
- if (alpha < 1)
838
- stream.setAlpha(Math.max(0, alpha));
839
- for (const op of ops)
840
- stream.push(op);
841
- stream.push('W n');
842
- stream.push(`/${shadingName} sh`);
843
- stream.restore();
844
- if (willStroke) {
845
- // Second pass: the shading consumed the path as its clip, so stroke a fresh one.
846
- const strokeAlpha = nn(style['opacity'], 1);
847
- stream.save();
848
- if (strokeAlpha < 1)
849
- stream.setAlpha(Math.max(0, strokeAlpha));
850
- stream.setStroke(stroke);
851
- stream.setLineWidth(strokeWidth);
852
- stream.setDash(normaliseDash(style['stroke-dasharray']));
853
- for (const op of ops)
854
- stream.push(op);
855
- stream.push('S');
856
- stream.restore();
857
- }
858
- return;
859
- }
860
- stream.save();
861
- if (alpha < 1)
862
- stream.setAlpha(Math.max(0, alpha));
863
- if (fill)
864
- stream.setFill(fill);
865
- if (stroke && willStroke) {
866
- stream.setStroke(stroke);
867
- stream.setLineWidth(strokeWidth);
868
- stream.setDash(normaliseDash(style['stroke-dasharray']));
869
- }
870
- for (const op of ops)
871
- stream.push(op);
872
- // B = fill then stroke; f = fill; S = stroke.
873
- stream.push(willFill && willStroke ? 'B' : willFill ? 'f' : 'S');
874
- stream.restore();
875
- }
876
- /**
877
- * An <image> → its XObject invocation: `q`, a placement `cm`, `Do`, `Q`.
878
- *
879
- * The placement matrix is [w 0 0 -h x y+h]: Do paints the unit square with (0,0) at the
880
- * image's BOTTOM-left, while the page CTM is y-down SVG space — the -h re-flips so the
881
- * top pixel row lands at y, not upside down at y+h.
882
- */
883
- function drawImage(style, stream, ctx) {
884
- var _a;
885
- const href = (_a = style['href']) !== null && _a !== void 0 ? _a : style['xlink:href'];
886
- if (typeof href !== 'string' || href.trim() === '')
887
- return;
888
- const entry = ctx.images.resolve(href, message => ctx.warnings.push(message));
889
- if (!entry)
890
- return; // refused and already warned (external URL, interlaced, corrupt…)
891
- const width = len(style['width'], entry.image.width);
892
- const height = len(style['height'], entry.image.height);
893
- if (width <= 0 || height <= 0)
894
- return;
895
- const alpha = nn(style['opacity'], 1);
896
- stream.save();
897
- if (alpha < 1)
898
- stream.setAlpha(Math.max(0, alpha));
899
- stream.concat({ a: width, b: 0, c: 0, d: -height, e: len(style['x']), f: len(style['y']) + height });
900
- stream.push(`/${entry.name} Do`);
901
- stream.restore();
902
- }
903
- /**
904
- * A CSS length → number. `parseFloat`, because the flattener emits real CSS values and
905
- * `stroke-width: 1px` is one of them — `Number('1px')` is NaN, which would silently turn
906
- * every themed stroke into width 0 (i.e. invisible links).
907
- */
908
- function len(value, fallback = 0) {
909
- if (typeof value === 'number')
910
- return Number.isFinite(value) ? value : fallback;
911
- if (typeof value !== 'string')
912
- return fallback;
913
- const parsed = Number.parseFloat(value);
914
- return Number.isFinite(parsed) ? parsed : fallback;
915
- }
916
- /** `"5,5"` / `"5 5"` → `"5 5"` (PDF wants a space-separated array). */
917
- function normaliseDash(value) {
918
- if (typeof value !== 'string' || value.trim() === '' || value.trim() === 'none')
919
- return null;
920
- const parts = value
921
- .split(/[\s,]+/)
922
- .map(Number)
923
- .filter(n => Number.isFinite(n) && n >= 0);
924
- return parts.length ? parts.map(pdf_primitives_1.num).join(' ') : null;
925
- }
926
- function geometryOps(vnode, style) {
927
- switch (vnode.type) {
928
- case 'rect':
929
- return (0, pdf_path_1.pdfRect)(len(style['x']), len(style['y']), len(style['width']), len(style['height']), len(style['rx']), len(style['ry']));
930
- case 'circle': {
931
- const r = len(style['r']);
932
- return r > 0 ? (0, pdf_path_1.pdfCircle)(len(style['cx']), len(style['cy']), r) : null;
933
- }
934
- case 'ellipse':
935
- return (0, pdf_path_1.pdfEllipse)(len(style['cx']), len(style['cy']), len(style['rx']), len(style['ry']));
936
- case 'line':
937
- return (0, pdf_path_1.pdfLine)(len(style['x1']), len(style['y1']), len(style['x2']), len(style['y2']));
938
- case 'polygon':
939
- case 'polyline':
940
- return (0, pdf_path_1.pdfPoly)(style['points'], vnode.type === 'polygon');
941
- case 'path': {
942
- const d = style['d'];
943
- return typeof d === 'string' && d.trim() !== '' ? (0, pdf_path_1.svgPathToPdf)(d) : null;
944
- }
945
- default:
946
- return null; // g, svg, tspan: containers, no geometry of their own
947
- }
948
- }
949
- function parsePoints(points) {
950
- if (typeof points !== 'string')
951
- return [];
952
- const nums = points.trim().split(/[\s,]+/).map(Number).filter(n => Number.isFinite(n));
953
- const out = [];
954
- for (let i = 0; i + 1 < nums.length; i += 2)
955
- out.push([nums[i], nums[i + 1]]);
956
- return out;
957
- }
958
- /**
959
- * Real PDF text: `BT … Tj … ET`. Selectable, searchable, copy-pasteable.
960
- *
961
- * The one fiddly bit is the TEXT MATRIX. The page CTM flips y (PDF is y-up, SVG is
962
- * y-down), and text drawn under that flip would come out MIRRORED. So the text matrix
963
- * un-flips locally — `1 0 0 -1 x y` — which puts the glyphs upright at the right place.
964
- */
965
- function drawText(vnode, style, stream, ctx) {
966
- var _a, _b, _c;
967
- const content = textContentOf(vnode);
968
- if (!content.trim())
969
- return;
970
- // `font-size: 14px` — parseFloat, not Number (see `len`).
971
- const fontSize = len(style['font-size'], 12);
972
- if (fontSize <= 0)
973
- return;
974
- const font = (0, pdf_primitives_1.pickBaseFont)(style['font-family'], style['font-weight'], style['font-style']);
975
- const fillValue = (_a = style['fill']) !== null && _a !== void 0 ? _a : style['color'];
976
- const anchor = String((_b = style['text-anchor']) !== null && _b !== void 0 ? _b : 'start');
977
- const x = len(style['x']);
978
- const y = len(style['y']);
979
- const lines = content.split('\n');
980
- const opacity = nn(style['opacity'], 1) * nn(style['fill-opacity'], 1);
981
- // A gradient-filled text gets the REAL gradient: text rendering mode 7 adds the glyph
982
- // outlines to the CLIP path at ET, and the shading is then painted through them —
983
- // the same clipped-sh technique shapes use, with glyphs for geometry.
984
- const gradientId = urlRefId(fillValue);
985
- const gradient = gradientId ? ctx.defs.gradients.get(gradientId) : undefined;
986
- const shading = gradient ? shadingDictFor(gradient, vnode, ctx) : null;
987
- const emitLine = (line, index) => {
988
- const encoded = (0, pdf_primitives_1.encodeWinAnsi)(line);
989
- if (encoded.unsupported.length > 0) {
990
- ctx.warnings.push(`text "${line}" contains characters the PDF base-14 fonts cannot encode ` +
991
- `(${[...new Set(encoded.unsupported)].join('')}) — they are replaced with '?'. ` +
992
- `Embedding a font that covers them would need a font subsetter, which this exporter does not have.`);
993
- }
994
- const width = (0, pdf_primitives_1.measureBaseFont)(font, line, fontSize);
995
- const left = anchor === 'middle' ? x - width / 2 : anchor === 'end' ? x - width : x;
996
- const lineY = y + index * fontSize;
997
- // Un-flip: the page CTM has d = -scale, so without this the glyphs render upside down.
998
- stream.push(`1 0 0 -1 ${(0, pdf_primitives_1.num)(left)} ${(0, pdf_primitives_1.num)(lineY)} Tm`);
999
- stream.push(`${(0, pdf_primitives_1.pdfString)(encoded.bytes)} Tj`);
1000
- };
1001
- if (shading) {
1002
- const shadingName = ctx.shadings.nameFor(shading.color);
1003
- const softMaskName = shading.mask
1004
- ? ctx.softMasks.nameFor(shading.mask.shading, shading.mask.bbox)
1005
- : null;
1006
- stream.save();
1007
- // Mask gs first — its coordinate space is fixed at gs time (see drawElement).
1008
- if (softMaskName)
1009
- stream.push(`/${softMaskName} gs`);
1010
- if (opacity < 1)
1011
- stream.setAlpha(Math.max(0, opacity));
1012
- stream.setFont(font, fontSize);
1013
- // ONE BT/ET for every line: each ET intersects the block's accumulated outlines with
1014
- // the current clip, so per-line blocks would intersect line 1's clip with line 2's —
1015
- // empty — and the gradient would paint nothing.
1016
- stream.push('BT');
1017
- stream.push('7 Tr'); // mode 7: add to clip, paint nothing
1018
- lines.forEach(emitLine);
1019
- stream.push('ET');
1020
- stream.push(`/${shadingName} sh`);
1021
- // Q restores both the clip and text mode 0 for whatever paints next.
1022
- stream.restore();
1023
- return;
1024
- }
1025
- // Reached with a gradient only when shadingDictFor failed (no bounding box for its
1026
- // objectBoundingBox coords) — the honest degrade is first stop, said out loud.
1027
- const fill = (_c = flattenedPaint(fillValue, ctx, 'a gradient fill on text was flattened to its first stop — its objectBoundingBox coords ' +
1028
- 'need an element bounding box that could not be determined')) !== null && _c !== void 0 ? _c : { r: 0, g: 0, b: 0 };
1029
- stream.save();
1030
- if (opacity < 1)
1031
- stream.setAlpha(Math.max(0, opacity));
1032
- stream.setFill(fill);
1033
- stream.setFont(font, fontSize);
1034
- lines.forEach((line, index) => {
1035
- stream.push('BT');
1036
- emitLine(line, index);
1037
- stream.push('ET');
1038
- });
1039
- stream.restore();
1040
- }
1041
- function textContentOf(vnode) {
1042
- var _a, _b;
1043
- const own = (_a = vnode.props) === null || _a === void 0 ? void 0 : _a['textContent'];
1044
- if (typeof own === 'string' && own !== '')
1045
- return own;
1046
- const lines = [];
1047
- for (const child of (_b = vnode.children) !== null && _b !== void 0 ? _b : []) {
1048
- if (typeof child === 'string') {
1049
- lines.push(child);
1050
- }
1051
- else if (child && typeof child === 'object') {
1052
- const nested = textContentOf(child);
1053
- if (nested)
1054
- lines.push(nested);
1055
- }
1056
- }
1057
- return lines.join('\n');
1058
- }
1059
- /** "3 / 7", centred in the bottom margin. Drawn OUTSIDE the clipped content area. */
1060
- function paintPageNumber(stream, page, total, size, margins) {
1061
- const label = `${page} / ${total}`;
1062
- const fontSize = 9;
1063
- const width = (0, pdf_primitives_1.measureBaseFont)('Helvetica', label, fontSize);
1064
- stream.save();
1065
- stream.setFill({ r: 0.4, g: 0.4, b: 0.4 });
1066
- stream.setFont('Helvetica', fontSize);
1067
- stream.push('BT');
1068
- stream.push(`${(0, pdf_primitives_1.num)((size.width - width) / 2)} ${(0, pdf_primitives_1.num)(Math.max(12, margins.bottom / 2))} Td`);
1069
- stream.push(`${(0, pdf_primitives_1.pdfString)((0, pdf_primitives_1.encodeWinAnsi)(label).bytes)} Tj`);
1070
- stream.push('ET');
1071
- stream.restore();
1072
- }
1073
- function dedupe(warnings) {
1074
- return [...new Set(warnings)];
1075
- }
1076
- //# sourceMappingURL=pdf-export.js.map