@grafloria/element 0.3.18 → 0.3.20

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 (1148) hide show
  1. package/esm/src/index.js +295 -0
  2. package/esm/src/lib/dashboard-kit/dashboard.js +590 -0
  3. package/esm/src/lib/dashboard-kit/grid-binder.js +1633 -0
  4. package/esm/src/lib/dashboard-kit/grid-mapping.js +164 -0
  5. package/esm/src/lib/dashboard-kit/index.js +8 -0
  6. package/esm/src/lib/dashboard-kit/styles.js +205 -0
  7. package/esm/src/lib/dashboard-kit/widgets.js +379 -0
  8. package/esm/src/lib/diagram-kit/card.js +199 -0
  9. package/esm/src/lib/diagram-kit/editing.js +448 -0
  10. package/esm/src/lib/diagram-kit/er.js +160 -0
  11. package/esm/src/lib/diagram-kit/handles.js +312 -0
  12. package/esm/src/lib/diagram-kit/index.js +15 -0
  13. package/esm/src/lib/diagram-kit/join-guidance.js +322 -0
  14. package/esm/src/lib/diagram-kit/rows.js +144 -0
  15. package/esm/src/lib/diagram-kit/styles.js +118 -0
  16. package/esm/src/lib/diagram-kit/uml.js +135 -0
  17. package/esm/src/lib/diagram-kit/update.js +244 -0
  18. package/esm/src/lib/grafloria-flow-element.js +266 -0
  19. package/esm/src/lib/grafloria.js +69 -0
  20. package/esm/src/lib/load.js +252 -0
  21. package/esm/src/lib/node-type-registry.js +42 -0
  22. package/esm/src/lib/stencil-kit/builders.js +18 -0
  23. package/esm/src/lib/stencil-kit/card-builders.js +105 -0
  24. package/esm/src/lib/stencil-kit/index.js +9 -0
  25. package/esm/src/lib/stencil-kit/palette.js +427 -0
  26. package/esm/src/lib/stencil-kit/shape-data.js +537 -0
  27. package/esm/src/lib/stencil-kit/styles.js +126 -0
  28. package/package.json +13 -4
  29. package/src/index.d.ts +2 -1
  30. package/src/index.js +11 -2
  31. package/src/lib/dashboard-kit/grid-binder.js +16 -15
  32. package/src/lib/dashboard-kit/styles.js +9 -3
  33. package/src/lib/diagram-kit/index.d.ts +1 -0
  34. package/src/lib/diagram-kit/index.js +11 -1
  35. package/src/lib/diagram-kit/join-guidance.d.ts +116 -0
  36. package/src/lib/diagram-kit/join-guidance.js +331 -0
  37. package/src/lib/stencil-kit/palette.js +60 -6
  38. package/src/lib/stencil-kit/shape-data.d.ts +3 -2
  39. package/src/lib/stencil-kit/shape-data.js +323 -31
  40. package/src/lib/stencil-kit/styles.js +15 -0
  41. package/src/libs/element/src/index.d.ts +92 -0
  42. package/src/libs/element/src/index.js +576 -0
  43. package/src/libs/element/src/lib/dashboard-kit/dashboard.d.ts +345 -0
  44. package/src/libs/element/src/lib/dashboard-kit/dashboard.js +594 -0
  45. package/src/libs/element/src/lib/dashboard-kit/grid-binder.d.ts +277 -0
  46. package/src/libs/element/src/lib/dashboard-kit/grid-binder.js +1636 -0
  47. package/src/libs/element/src/lib/dashboard-kit/grid-mapping.d.ts +141 -0
  48. package/src/libs/element/src/lib/dashboard-kit/grid-mapping.js +176 -0
  49. package/src/libs/element/src/lib/dashboard-kit/index.d.ts +5 -0
  50. package/src/libs/element/src/lib/dashboard-kit/index.js +33 -0
  51. package/src/libs/element/src/lib/dashboard-kit/styles.d.ts +25 -0
  52. package/src/libs/element/src/lib/dashboard-kit/styles.js +209 -0
  53. package/src/libs/element/src/lib/dashboard-kit/widgets.d.ts +112 -0
  54. package/src/libs/element/src/lib/dashboard-kit/widgets.js +389 -0
  55. package/src/libs/element/src/lib/diagram-kit/card.d.ts +75 -0
  56. package/src/libs/element/src/lib/diagram-kit/card.js +209 -0
  57. package/src/libs/element/src/lib/diagram-kit/editing.d.ts +58 -0
  58. package/src/libs/element/src/lib/diagram-kit/editing.js +453 -0
  59. package/src/libs/element/src/lib/diagram-kit/er.d.ts +73 -0
  60. package/src/libs/element/src/lib/diagram-kit/er.js +163 -0
  61. package/src/libs/element/src/lib/diagram-kit/handles.d.ts +181 -0
  62. package/src/libs/element/src/lib/diagram-kit/handles.js +325 -0
  63. package/src/libs/element/src/lib/diagram-kit/index.d.ts +10 -0
  64. package/src/libs/element/src/lib/diagram-kit/index.js +55 -0
  65. package/src/libs/element/src/lib/diagram-kit/join-guidance.d.ts +116 -0
  66. package/src/libs/element/src/lib/diagram-kit/join-guidance.js +331 -0
  67. package/src/libs/element/src/lib/diagram-kit/rows.d.ts +53 -0
  68. package/src/libs/element/src/lib/diagram-kit/rows.js +147 -0
  69. package/src/libs/element/src/lib/diagram-kit/styles.d.ts +18 -0
  70. package/src/libs/element/src/lib/diagram-kit/styles.js +122 -0
  71. package/src/libs/element/src/lib/diagram-kit/uml.d.ts +59 -0
  72. package/src/libs/element/src/lib/diagram-kit/uml.js +138 -0
  73. package/src/libs/element/src/lib/diagram-kit/update.d.ts +133 -0
  74. package/src/libs/element/src/lib/diagram-kit/update.js +251 -0
  75. package/src/libs/element/src/lib/grafloria-flow-element.d.ts +48 -0
  76. package/src/libs/element/src/lib/grafloria-flow-element.js +271 -0
  77. package/src/libs/element/src/lib/grafloria.d.ts +72 -0
  78. package/src/libs/element/src/lib/grafloria.js +74 -0
  79. package/src/libs/element/src/lib/load.d.ts +72 -0
  80. package/src/libs/element/src/lib/load.js +255 -0
  81. package/src/libs/element/src/lib/node-type-registry.d.ts +39 -0
  82. package/src/libs/element/src/lib/node-type-registry.js +50 -0
  83. package/src/libs/element/src/lib/stencil-kit/builders.d.ts +45 -0
  84. package/src/libs/element/src/lib/stencil-kit/builders.js +24 -0
  85. package/src/libs/element/src/lib/stencil-kit/card-builders.d.ts +2 -0
  86. package/src/libs/element/src/lib/stencil-kit/card-builders.js +108 -0
  87. package/src/libs/element/src/lib/stencil-kit/index.d.ts +7 -0
  88. package/src/libs/element/src/lib/stencil-kit/index.js +19 -0
  89. package/src/libs/element/src/lib/stencil-kit/palette.d.ts +93 -0
  90. package/src/libs/element/src/lib/stencil-kit/palette.js +430 -0
  91. package/src/libs/element/src/lib/stencil-kit/shape-data.d.ts +28 -0
  92. package/src/libs/element/src/lib/stencil-kit/shape-data.js +540 -0
  93. package/src/libs/element/src/lib/stencil-kit/styles.d.ts +2 -0
  94. package/src/libs/element/src/lib/stencil-kit/styles.js +129 -0
  95. package/src/libs/engine/src/adapters/component-adapter.interface.d.ts +302 -0
  96. package/src/libs/engine/src/adapters/component-adapter.interface.js +84 -0
  97. package/src/libs/engine/src/adapters/index.d.ts +7 -0
  98. package/src/libs/engine/src/adapters/index.js +11 -0
  99. package/src/libs/engine/src/clipboard/ClipboardManager.d.ts +81 -0
  100. package/src/libs/engine/src/clipboard/ClipboardManager.js +108 -0
  101. package/src/libs/engine/src/clipboard/index.d.ts +1 -0
  102. package/src/libs/engine/src/clipboard/index.js +6 -0
  103. package/src/libs/engine/src/collab/apply-op.d.ts +42 -0
  104. package/src/libs/engine/src/collab/apply-op.js +939 -0
  105. package/src/libs/engine/src/collab/capture.d.ts +147 -0
  106. package/src/libs/engine/src/collab/capture.js +510 -0
  107. package/src/libs/engine/src/collab/index.d.ts +12 -0
  108. package/src/libs/engine/src/collab/index.js +84 -0
  109. package/src/libs/engine/src/collab/integrity.d.ts +178 -0
  110. package/src/libs/engine/src/collab/integrity.js +438 -0
  111. package/src/libs/engine/src/collab/lww.d.ts +47 -0
  112. package/src/libs/engine/src/collab/lww.js +188 -0
  113. package/src/libs/engine/src/collab/op-log.d.ts +50 -0
  114. package/src/libs/engine/src/collab/op-log.js +167 -0
  115. package/src/libs/engine/src/collab/op.d.ts +120 -0
  116. package/src/libs/engine/src/collab/op.js +118 -0
  117. package/src/libs/engine/src/collab/replica.d.ts +188 -0
  118. package/src/libs/engine/src/collab/replica.js +526 -0
  119. package/src/libs/engine/src/collab/undo.d.ts +106 -0
  120. package/src/libs/engine/src/collab/undo.js +388 -0
  121. package/src/libs/engine/src/commands/Command.d.ts +66 -0
  122. package/src/libs/engine/src/commands/Command.js +64 -0
  123. package/src/libs/engine/src/commands/CommandManager.d.ts +161 -0
  124. package/src/libs/engine/src/commands/CommandManager.js +417 -0
  125. package/src/libs/engine/src/commands/basic/AddGroupCommand.d.ts +13 -0
  126. package/src/libs/engine/src/commands/basic/AddGroupCommand.js +50 -0
  127. package/src/libs/engine/src/commands/basic/AddLinkCommand.d.ts +13 -0
  128. package/src/libs/engine/src/commands/basic/AddLinkCommand.js +50 -0
  129. package/src/libs/engine/src/commands/basic/AddNodeCommand.d.ts +13 -0
  130. package/src/libs/engine/src/commands/basic/AddNodeCommand.js +65 -0
  131. package/src/libs/engine/src/commands/basic/AddToGroupCommand.d.ts +12 -0
  132. package/src/libs/engine/src/commands/basic/AddToGroupCommand.js +73 -0
  133. package/src/libs/engine/src/commands/basic/AlignCommands.d.ts +42 -0
  134. package/src/libs/engine/src/commands/basic/AlignCommands.js +138 -0
  135. package/src/libs/engine/src/commands/basic/CollapseGroupCommand.d.ts +14 -0
  136. package/src/libs/engine/src/commands/basic/CollapseGroupCommand.js +70 -0
  137. package/src/libs/engine/src/commands/basic/CopyCommand.d.ts +29 -0
  138. package/src/libs/engine/src/commands/basic/CopyCommand.js +131 -0
  139. package/src/libs/engine/src/commands/basic/CutCommand.d.ts +49 -0
  140. package/src/libs/engine/src/commands/basic/CutCommand.js +68 -0
  141. package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.d.ts +58 -0
  142. package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.js +309 -0
  143. package/src/libs/engine/src/commands/basic/DuplicateCommand.d.ts +31 -0
  144. package/src/libs/engine/src/commands/basic/DuplicateCommand.js +232 -0
  145. package/src/libs/engine/src/commands/basic/ExpandGroupCommand.d.ts +12 -0
  146. package/src/libs/engine/src/commands/basic/ExpandGroupCommand.js +69 -0
  147. package/src/libs/engine/src/commands/basic/MoveGroupCommand.d.ts +46 -0
  148. package/src/libs/engine/src/commands/basic/MoveGroupCommand.js +77 -0
  149. package/src/libs/engine/src/commands/basic/MoveNodeCommand.d.ts +30 -0
  150. package/src/libs/engine/src/commands/basic/MoveNodeCommand.js +87 -0
  151. package/src/libs/engine/src/commands/basic/NodeZOrderCommands.d.ts +39 -0
  152. package/src/libs/engine/src/commands/basic/NodeZOrderCommands.js +120 -0
  153. package/src/libs/engine/src/commands/basic/PasteCommand.d.ts +33 -0
  154. package/src/libs/engine/src/commands/basic/PasteCommand.js +228 -0
  155. package/src/libs/engine/src/commands/basic/PortCommands.d.ts +22 -0
  156. package/src/libs/engine/src/commands/basic/PortCommands.js +85 -0
  157. package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.d.ts +15 -0
  158. package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.js +59 -0
  159. package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.d.ts +12 -0
  160. package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.js +64 -0
  161. package/src/libs/engine/src/commands/basic/RemoveGroupCommand.d.ts +12 -0
  162. package/src/libs/engine/src/commands/basic/RemoveGroupCommand.js +56 -0
  163. package/src/libs/engine/src/commands/basic/RemoveLinkCommand.d.ts +12 -0
  164. package/src/libs/engine/src/commands/basic/RemoveLinkCommand.js +57 -0
  165. package/src/libs/engine/src/commands/basic/RemoveNodeCommand.d.ts +23 -0
  166. package/src/libs/engine/src/commands/basic/RemoveNodeCommand.js +108 -0
  167. package/src/libs/engine/src/commands/basic/ResizeNodeCommand.d.ts +16 -0
  168. package/src/libs/engine/src/commands/basic/ResizeNodeCommand.js +81 -0
  169. package/src/libs/engine/src/commands/basic/RotateNodeCommand.d.ts +37 -0
  170. package/src/libs/engine/src/commands/basic/RotateNodeCommand.js +88 -0
  171. package/src/libs/engine/src/commands/basic/SetFlexItemCommand.d.ts +14 -0
  172. package/src/libs/engine/src/commands/basic/SetFlexItemCommand.js +74 -0
  173. package/src/libs/engine/src/commands/basic/SetGridItemCommand.d.ts +14 -0
  174. package/src/libs/engine/src/commands/basic/SetGridItemCommand.js +74 -0
  175. package/src/libs/engine/src/commands/basic/SetLayoutCommand.d.ts +16 -0
  176. package/src/libs/engine/src/commands/basic/SetLayoutCommand.js +80 -0
  177. package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.d.ts +28 -0
  178. package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.js +83 -0
  179. package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.d.ts +24 -0
  180. package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.js +81 -0
  181. package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.d.ts +14 -0
  182. package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.js +75 -0
  183. package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.d.ts +14 -0
  184. package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.js +77 -0
  185. package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.d.ts +32 -0
  186. package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.js +87 -0
  187. package/src/libs/engine/src/commands/basic/SetNodeDataCommand.d.ts +14 -0
  188. package/src/libs/engine/src/commands/basic/SetNodeDataCommand.js +93 -0
  189. package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.d.ts +26 -0
  190. package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.js +81 -0
  191. package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.d.ts +14 -0
  192. package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.js +69 -0
  193. package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.d.ts +15 -0
  194. package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.js +88 -0
  195. package/src/libs/engine/src/commands/basic/SetParentCommand.d.ts +13 -0
  196. package/src/libs/engine/src/commands/basic/SetParentCommand.js +109 -0
  197. package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.d.ts +34 -0
  198. package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.js +86 -0
  199. package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.d.ts +31 -0
  200. package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.js +88 -0
  201. package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.d.ts +15 -0
  202. package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.js +72 -0
  203. package/src/libs/engine/src/commands/basic/index.d.ts +41 -0
  204. package/src/libs/engine/src/commands/basic/index.js +52 -0
  205. package/src/libs/engine/src/commands/basic/remapNodePortIds.d.ts +23 -0
  206. package/src/libs/engine/src/commands/basic/remapNodePortIds.js +46 -0
  207. package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.d.ts +31 -0
  208. package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.js +49 -0
  209. package/src/libs/engine/src/commands/composite/BatchCommand.d.ts +19 -0
  210. package/src/libs/engine/src/commands/composite/BatchCommand.js +61 -0
  211. package/src/libs/engine/src/commands/composite/MacroCommand.d.ts +35 -0
  212. package/src/libs/engine/src/commands/composite/MacroCommand.js +87 -0
  213. package/src/libs/engine/src/commands/composite/index.d.ts +2 -0
  214. package/src/libs/engine/src/commands/composite/index.js +7 -0
  215. package/src/libs/engine/src/commands/index.d.ts +4 -0
  216. package/src/libs/engine/src/commands/index.js +9 -0
  217. package/src/libs/engine/src/comments/comment-store.d.ts +238 -0
  218. package/src/libs/engine/src/comments/comment-store.js +538 -0
  219. package/src/libs/engine/src/comments/index.d.ts +4 -0
  220. package/src/libs/engine/src/comments/index.js +31 -0
  221. package/src/libs/engine/src/comments/mentions.d.ts +52 -0
  222. package/src/libs/engine/src/comments/mentions.js +94 -0
  223. package/src/libs/engine/src/comments/read-state.d.ts +37 -0
  224. package/src/libs/engine/src/comments/read-state.js +105 -0
  225. package/src/libs/engine/src/comments/types.d.ts +154 -0
  226. package/src/libs/engine/src/comments/types.js +107 -0
  227. package/src/libs/engine/src/config/InteractionConfig.d.ts +330 -0
  228. package/src/libs/engine/src/config/InteractionConfig.js +154 -0
  229. package/src/libs/engine/src/config/index.d.ts +1 -0
  230. package/src/libs/engine/src/config/index.js +6 -0
  231. package/src/libs/engine/src/dsl/DSL.d.ts +197 -0
  232. package/src/libs/engine/src/dsl/DSL.js +564 -0
  233. package/src/libs/engine/src/dsl/advanced/StyleParser.d.ts +75 -0
  234. package/src/libs/engine/src/dsl/advanced/StyleParser.js +166 -0
  235. package/src/libs/engine/src/dsl/advanced/TemplateParser.d.ts +88 -0
  236. package/src/libs/engine/src/dsl/advanced/TemplateParser.js +226 -0
  237. package/src/libs/engine/src/dsl/advanced/index.d.ts +9 -0
  238. package/src/libs/engine/src/dsl/advanced/index.js +13 -0
  239. package/src/libs/engine/src/dsl/detector/LayoutDetector.d.ts +80 -0
  240. package/src/libs/engine/src/dsl/detector/LayoutDetector.js +333 -0
  241. package/src/libs/engine/src/dsl/extended/BPMNGenerator.d.ts +38 -0
  242. package/src/libs/engine/src/dsl/extended/BPMNGenerator.js +90 -0
  243. package/src/libs/engine/src/dsl/extended/BPMNParser.d.ts +83 -0
  244. package/src/libs/engine/src/dsl/extended/BPMNParser.js +198 -0
  245. package/src/libs/engine/src/dsl/extended/ERDGenerator.d.ts +38 -0
  246. package/src/libs/engine/src/dsl/extended/ERDGenerator.js +126 -0
  247. package/src/libs/engine/src/dsl/extended/ERDParser.d.ts +81 -0
  248. package/src/libs/engine/src/dsl/extended/ERDParser.js +161 -0
  249. package/src/libs/engine/src/dsl/extended/ERDTransformer.d.ts +43 -0
  250. package/src/libs/engine/src/dsl/extended/ERDTransformer.js +105 -0
  251. package/src/libs/engine/src/dsl/extended/UMLGenerator.d.ts +42 -0
  252. package/src/libs/engine/src/dsl/extended/UMLGenerator.js +157 -0
  253. package/src/libs/engine/src/dsl/extended/UMLParser.d.ts +99 -0
  254. package/src/libs/engine/src/dsl/extended/UMLParser.js +200 -0
  255. package/src/libs/engine/src/dsl/extended/index.d.ts +13 -0
  256. package/src/libs/engine/src/dsl/extended/index.js +27 -0
  257. package/src/libs/engine/src/dsl/generator/DSLFormatter.d.ts +87 -0
  258. package/src/libs/engine/src/dsl/generator/DSLFormatter.js +261 -0
  259. package/src/libs/engine/src/dsl/generator/DSLGenerator.d.ts +96 -0
  260. package/src/libs/engine/src/dsl/generator/DSLGenerator.js +328 -0
  261. package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.d.ts +111 -0
  262. package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.js +361 -0
  263. package/src/libs/engine/src/dsl/index.d.ts +35 -0
  264. package/src/libs/engine/src/dsl/index.js +64 -0
  265. package/src/libs/engine/src/dsl/lexer/Lexer.d.ts +117 -0
  266. package/src/libs/engine/src/dsl/lexer/Lexer.js +521 -0
  267. package/src/libs/engine/src/dsl/mermaid/MermaidClass.d.ts +136 -0
  268. package/src/libs/engine/src/dsl/mermaid/MermaidClass.js +429 -0
  269. package/src/libs/engine/src/dsl/mermaid/MermaidER.d.ts +118 -0
  270. package/src/libs/engine/src/dsl/mermaid/MermaidER.js +338 -0
  271. package/src/libs/engine/src/dsl/mermaid/MermaidState.d.ts +89 -0
  272. package/src/libs/engine/src/dsl/mermaid/MermaidState.js +613 -0
  273. package/src/libs/engine/src/dsl/mermaid/index.d.ts +10 -0
  274. package/src/libs/engine/src/dsl/mermaid/index.js +33 -0
  275. package/src/libs/engine/src/dsl/mermaid/layout.d.ts +70 -0
  276. package/src/libs/engine/src/dsl/mermaid/layout.js +162 -0
  277. package/src/libs/engine/src/dsl/mermaid/lines.d.ts +25 -0
  278. package/src/libs/engine/src/dsl/mermaid/lines.js +74 -0
  279. package/src/libs/engine/src/dsl/parser/Parser.d.ts +131 -0
  280. package/src/libs/engine/src/dsl/parser/Parser.js +725 -0
  281. package/src/libs/engine/src/dsl/sync/BidirectionalSync.d.ts +154 -0
  282. package/src/libs/engine/src/dsl/sync/BidirectionalSync.js +389 -0
  283. package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.d.ts +128 -0
  284. package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.js +244 -0
  285. package/src/libs/engine/src/dsl/sync/LayoutApplicator.d.ts +140 -0
  286. package/src/libs/engine/src/dsl/sync/LayoutApplicator.js +271 -0
  287. package/src/libs/engine/src/dsl/sync/SyncStateManager.d.ts +145 -0
  288. package/src/libs/engine/src/dsl/sync/SyncStateManager.js +253 -0
  289. package/src/libs/engine/src/dsl/sync/index.d.ts +13 -0
  290. package/src/libs/engine/src/dsl/sync/index.js +21 -0
  291. package/src/libs/engine/src/dsl/transformer/ASTTransformer.d.ts +150 -0
  292. package/src/libs/engine/src/dsl/transformer/ASTTransformer.js +605 -0
  293. package/src/libs/engine/src/dsl/types/ASTNode.d.ts +159 -0
  294. package/src/libs/engine/src/dsl/types/ASTNode.js +31 -0
  295. package/src/libs/engine/src/dsl/types/Token.d.ts +79 -0
  296. package/src/libs/engine/src/dsl/types/Token.js +84 -0
  297. package/src/libs/engine/src/engine/DiagramEngine.d.ts +917 -0
  298. package/src/libs/engine/src/engine/DiagramEngine.js +2190 -0
  299. package/src/libs/engine/src/engine/DiagramMode.d.ts +51 -0
  300. package/src/libs/engine/src/engine/DiagramMode.js +53 -0
  301. package/src/libs/engine/src/engine/DiagramModeTypes.d.ts +73 -0
  302. package/src/libs/engine/src/engine/DiagramModeTypes.js +4 -0
  303. package/src/libs/engine/src/engine/ModeManager.d.ts +155 -0
  304. package/src/libs/engine/src/engine/ModeManager.js +387 -0
  305. package/src/libs/engine/src/engine/index.d.ts +2 -0
  306. package/src/libs/engine/src/engine/index.js +7 -0
  307. package/src/libs/engine/src/events/EventBus.d.ts +106 -0
  308. package/src/libs/engine/src/events/EventBus.js +226 -0
  309. package/src/libs/engine/src/events/index.d.ts +1 -0
  310. package/src/libs/engine/src/events/index.js +6 -0
  311. package/src/libs/engine/src/index.d.ts +43 -0
  312. package/src/libs/engine/src/index.js +142 -0
  313. package/src/libs/engine/src/interaction/GroupCollapseService.d.ts +53 -0
  314. package/src/libs/engine/src/interaction/GroupCollapseService.js +274 -0
  315. package/src/libs/engine/src/interaction/GroupMembershipService.d.ts +107 -0
  316. package/src/libs/engine/src/interaction/GroupMembershipService.js +245 -0
  317. package/src/libs/engine/src/interaction/SemanticMembershipService.d.ts +28 -0
  318. package/src/libs/engine/src/interaction/SemanticMembershipService.js +168 -0
  319. package/src/libs/engine/src/interaction/SwimlaneService.d.ts +62 -0
  320. package/src/libs/engine/src/interaction/SwimlaneService.js +180 -0
  321. package/src/libs/engine/src/interaction/index.d.ts +4 -0
  322. package/src/libs/engine/src/interaction/index.js +9 -0
  323. package/src/libs/engine/src/interop/drawio/importDrawio.d.ts +52 -0
  324. package/src/libs/engine/src/interop/drawio/importDrawio.js +940 -0
  325. package/src/libs/engine/src/interop/drawio/index.d.ts +1 -0
  326. package/src/libs/engine/src/interop/drawio/index.js +12 -0
  327. package/src/libs/engine/src/interop/drawio/xml.d.ts +26 -0
  328. package/src/libs/engine/src/interop/drawio/xml.js +213 -0
  329. package/src/libs/engine/src/layout/CompoundLayoutService.d.ts +121 -0
  330. package/src/libs/engine/src/layout/CompoundLayoutService.js +616 -0
  331. package/src/libs/engine/src/layout/ILayoutAlgorithm.d.ts +120 -0
  332. package/src/libs/engine/src/layout/ILayoutAlgorithm.js +88 -0
  333. package/src/libs/engine/src/layout/LayoutManager.d.ts +155 -0
  334. package/src/libs/engine/src/layout/LayoutManager.js +640 -0
  335. package/src/libs/engine/src/layout/SmartSpacingCalculator.d.ts +62 -0
  336. package/src/libs/engine/src/layout/SmartSpacingCalculator.js +134 -0
  337. package/src/libs/engine/src/layout/ViewportTransform.d.ts +55 -0
  338. package/src/libs/engine/src/layout/ViewportTransform.js +118 -0
  339. package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.d.ts +34 -0
  340. package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.js +317 -0
  341. package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.d.ts +56 -0
  342. package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.js +223 -0
  343. package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.d.ts +60 -0
  344. package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.js +307 -0
  345. package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.d.ts +62 -0
  346. package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.js +324 -0
  347. package/src/libs/engine/src/layout/community-layout-adapter.d.ts +107 -0
  348. package/src/libs/engine/src/layout/community-layout-adapter.js +486 -0
  349. package/src/libs/engine/src/layout/component-packing.d.ts +98 -0
  350. package/src/libs/engine/src/layout/component-packing.js +307 -0
  351. package/src/libs/engine/src/layout/dagre-layout-adapter.d.ts +122 -0
  352. package/src/libs/engine/src/layout/dagre-layout-adapter.js +697 -0
  353. package/src/libs/engine/src/layout/edge-bundling.interface.d.ts +159 -0
  354. package/src/libs/engine/src/layout/edge-bundling.interface.js +379 -0
  355. package/src/libs/engine/src/layout/elk-layout-adapter.d.ts +121 -0
  356. package/src/libs/engine/src/layout/elk-layout-adapter.js +586 -0
  357. package/src/libs/engine/src/layout/elk-loader.d.ts +1 -0
  358. package/src/libs/engine/src/layout/elk-loader.js +24 -0
  359. package/src/libs/engine/src/layout/force-layout-adapter.d.ts +167 -0
  360. package/src/libs/engine/src/layout/force-layout-adapter.js +790 -0
  361. package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.d.ts +323 -0
  362. package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.js +685 -0
  363. package/src/libs/engine/src/layout/incremental/mental-map.d.ts +98 -0
  364. package/src/libs/engine/src/layout/incremental/mental-map.js +221 -0
  365. package/src/libs/engine/src/layout/incremental-layout.interface.d.ts +145 -0
  366. package/src/libs/engine/src/layout/incremental-layout.interface.js +300 -0
  367. package/src/libs/engine/src/layout/index.d.ts +83 -0
  368. package/src/libs/engine/src/layout/index.js +116 -0
  369. package/src/libs/engine/src/layout/layout-adapter.interface.d.ts +185 -0
  370. package/src/libs/engine/src/layout/layout-adapter.interface.js +10 -0
  371. package/src/libs/engine/src/layout/layout-auto-select.d.ts +160 -0
  372. package/src/libs/engine/src/layout/layout-auto-select.js +621 -0
  373. package/src/libs/engine/src/layout/layout-constraints.interface.d.ts +117 -0
  374. package/src/libs/engine/src/layout/layout-constraints.interface.js +138 -0
  375. package/src/libs/engine/src/layout/layout-graph.d.ts +70 -0
  376. package/src/libs/engine/src/layout/layout-graph.js +119 -0
  377. package/src/libs/engine/src/layout/layout-history.d.ts +147 -0
  378. package/src/libs/engine/src/layout/layout-history.js +258 -0
  379. package/src/libs/engine/src/layout/layout-host.d.ts +172 -0
  380. package/src/libs/engine/src/layout/layout-host.js +523 -0
  381. package/src/libs/engine/src/layout/layout-presets.d.ts +91 -0
  382. package/src/libs/engine/src/layout/layout-presets.js +333 -0
  383. package/src/libs/engine/src/layout/layout-quality-extended.d.ts +66 -0
  384. package/src/libs/engine/src/layout/layout-quality-extended.js +246 -0
  385. package/src/libs/engine/src/layout/layout-quality-metrics.d.ts +127 -0
  386. package/src/libs/engine/src/layout/layout-quality-metrics.js +466 -0
  387. package/src/libs/engine/src/layout/layout-registry.d.ts +309 -0
  388. package/src/libs/engine/src/layout/layout-registry.js +414 -0
  389. package/src/libs/engine/src/layout/layout.service.d.ts +100 -0
  390. package/src/libs/engine/src/layout/layout.service.js +216 -0
  391. package/src/libs/engine/src/layout/overlap-removal.d.ts +20 -0
  392. package/src/libs/engine/src/layout/overlap-removal.js +117 -0
  393. package/src/libs/engine/src/layout/port-aware-layout.interface.d.ts +232 -0
  394. package/src/libs/engine/src/layout/port-aware-layout.interface.js +413 -0
  395. package/src/libs/engine/src/layout/port-label-bridge.d.ts +77 -0
  396. package/src/libs/engine/src/layout/port-label-bridge.js +250 -0
  397. package/src/libs/engine/src/layout/portfolio-layouts.d.ts +53 -0
  398. package/src/libs/engine/src/layout/portfolio-layouts.js +388 -0
  399. package/src/libs/engine/src/layout/rng.d.ts +34 -0
  400. package/src/libs/engine/src/layout/rng.js +71 -0
  401. package/src/libs/engine/src/layout/spectral-layout-adapter.d.ts +72 -0
  402. package/src/libs/engine/src/layout/spectral-layout-adapter.js +379 -0
  403. package/src/libs/engine/src/layout/steppable-layout.d.ts +40 -0
  404. package/src/libs/engine/src/layout/steppable-layout.js +34 -0
  405. package/src/libs/engine/src/layout/subgraph-layout.interface.d.ts +269 -0
  406. package/src/libs/engine/src/layout/subgraph-layout.interface.js +452 -0
  407. package/src/libs/engine/src/layout/sugiyama/layered-layout.d.ts +9 -0
  408. package/src/libs/engine/src/layout/sugiyama/layered-layout.js +83 -0
  409. package/src/libs/engine/src/layout/sugiyama/sugiyama.d.ts +91 -0
  410. package/src/libs/engine/src/layout/sugiyama/sugiyama.js +797 -0
  411. package/src/libs/engine/src/layout/tree-layout.d.ts +43 -0
  412. package/src/libs/engine/src/layout/tree-layout.js +426 -0
  413. package/src/libs/engine/src/layout/types.d.ts +263 -0
  414. package/src/libs/engine/src/layout/types.js +6 -0
  415. package/src/libs/engine/src/lib/performance/mobile-performance.service.d.ts +43 -0
  416. package/src/libs/engine/src/lib/performance/mobile-performance.service.js +95 -0
  417. package/src/libs/engine/src/models/DiagramEntity.d.ts +174 -0
  418. package/src/libs/engine/src/models/DiagramEntity.js +366 -0
  419. package/src/libs/engine/src/models/DiagramModel.d.ts +960 -0
  420. package/src/libs/engine/src/models/DiagramModel.js +2416 -0
  421. package/src/libs/engine/src/models/GroupModel.d.ts +573 -0
  422. package/src/libs/engine/src/models/GroupModel.js +1373 -0
  423. package/src/libs/engine/src/models/LinkModel.d.ts +395 -0
  424. package/src/libs/engine/src/models/LinkModel.js +1045 -0
  425. package/src/libs/engine/src/models/NodeModel.d.ts +666 -0
  426. package/src/libs/engine/src/models/NodeModel.js +1512 -0
  427. package/src/libs/engine/src/models/PortModel.d.ts +292 -0
  428. package/src/libs/engine/src/models/PortModel.js +637 -0
  429. package/src/libs/engine/src/models/StrokeModel.d.ts +160 -0
  430. package/src/libs/engine/src/models/StrokeModel.js +387 -0
  431. package/src/libs/engine/src/models/index.d.ts +7 -0
  432. package/src/libs/engine/src/models/index.js +12 -0
  433. package/src/libs/engine/src/models/readonly-lock.d.ts +108 -0
  434. package/src/libs/engine/src/models/readonly-lock.js +125 -0
  435. package/src/libs/engine/src/performance/LRUCache.d.ts +78 -0
  436. package/src/libs/engine/src/performance/LRUCache.js +179 -0
  437. package/src/libs/engine/src/performance/PerformanceMonitor.d.ts +47 -0
  438. package/src/libs/engine/src/performance/PerformanceMonitor.js +112 -0
  439. package/src/libs/engine/src/performance/SpatialIndex.d.ts +157 -0
  440. package/src/libs/engine/src/performance/SpatialIndex.js +306 -0
  441. package/src/libs/engine/src/performance/index.d.ts +2 -0
  442. package/src/libs/engine/src/performance/index.js +7 -0
  443. package/src/libs/engine/src/plugins/PluginManager.d.ts +95 -0
  444. package/src/libs/engine/src/plugins/PluginManager.js +388 -0
  445. package/src/libs/engine/src/plugins/index.d.ts +1 -0
  446. package/src/libs/engine/src/plugins/index.js +6 -0
  447. package/src/libs/engine/src/ports/connection-rules.d.ts +32 -0
  448. package/src/libs/engine/src/ports/connection-rules.js +131 -0
  449. package/src/libs/engine/src/ports/dynamic-ports.d.ts +27 -0
  450. package/src/libs/engine/src/ports/dynamic-ports.js +135 -0
  451. package/src/libs/engine/src/ports/index.d.ts +5 -0
  452. package/src/libs/engine/src/ports/index.js +16 -0
  453. package/src/libs/engine/src/ports/port-groups.d.ts +43 -0
  454. package/src/libs/engine/src/ports/port-groups.js +185 -0
  455. package/src/libs/engine/src/ports/port-type-registry.d.ts +34 -0
  456. package/src/libs/engine/src/ports/port-type-registry.js +87 -0
  457. package/src/libs/engine/src/ports/port-types.d.ts +266 -0
  458. package/src/libs/engine/src/ports/port-types.js +30 -0
  459. package/src/libs/engine/src/rendering/HtmlTemplateRenderer.d.ts +136 -0
  460. package/src/libs/engine/src/rendering/HtmlTemplateRenderer.js +292 -0
  461. package/src/libs/engine/src/rendering/LemonadeJSRenderer.d.ts +160 -0
  462. package/src/libs/engine/src/rendering/LemonadeJSRenderer.js +362 -0
  463. package/src/libs/engine/src/rendering/index.d.ts +2 -0
  464. package/src/libs/engine/src/rendering/index.js +7 -0
  465. package/src/libs/engine/src/routing/LiveReroutingEngine.d.ts +75 -0
  466. package/src/libs/engine/src/routing/LiveReroutingEngine.js +173 -0
  467. package/src/libs/engine/src/routing/ObstacleIndex.d.ts +42 -0
  468. package/src/libs/engine/src/routing/ObstacleIndex.js +215 -0
  469. package/src/libs/engine/src/routing/ObstacleMap.d.ts +68 -0
  470. package/src/libs/engine/src/routing/ObstacleMap.js +312 -0
  471. package/src/libs/engine/src/routing/ObstacleMapBuilder.d.ts +28 -0
  472. package/src/libs/engine/src/routing/ObstacleMapBuilder.js +76 -0
  473. package/src/libs/engine/src/routing/PathSimplifier.d.ts +119 -0
  474. package/src/libs/engine/src/routing/PathSimplifier.js +224 -0
  475. package/src/libs/engine/src/routing/RoutingEngine.d.ts +118 -0
  476. package/src/libs/engine/src/routing/RoutingEngine.js +546 -0
  477. package/src/libs/engine/src/routing/algorithms/AStarRouter.d.ts +90 -0
  478. package/src/libs/engine/src/routing/algorithms/AStarRouter.js +331 -0
  479. package/src/libs/engine/src/routing/algorithms/DijkstraRouter.d.ts +74 -0
  480. package/src/libs/engine/src/routing/algorithms/DijkstraRouter.js +297 -0
  481. package/src/libs/engine/src/routing/algorithms/ElkRouter.d.ts +34 -0
  482. package/src/libs/engine/src/routing/algorithms/ElkRouter.js +210 -0
  483. package/src/libs/engine/src/routing/algorithms/ManhattanRouter.d.ts +18 -0
  484. package/src/libs/engine/src/routing/algorithms/ManhattanRouter.js +224 -0
  485. package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.d.ts +173 -0
  486. package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.js +1092 -0
  487. package/src/libs/engine/src/routing/algorithms/StraightRouter.d.ts +8 -0
  488. package/src/libs/engine/src/routing/algorithms/StraightRouter.js +53 -0
  489. package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.d.ts +59 -0
  490. package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.js +258 -0
  491. package/src/libs/engine/src/routing/global/GlobalRouteSolver.d.ts +64 -0
  492. package/src/libs/engine/src/routing/global/GlobalRouteSolver.js +334 -0
  493. package/src/libs/engine/src/routing/global/solver-host.d.ts +65 -0
  494. package/src/libs/engine/src/routing/global/solver-host.js +87 -0
  495. package/src/libs/engine/src/routing/index.d.ts +15 -0
  496. package/src/libs/engine/src/routing/index.js +20 -0
  497. package/src/libs/engine/src/routing/types.d.ts +161 -0
  498. package/src/libs/engine/src/routing/types.js +4 -0
  499. package/src/libs/engine/src/selection/SelectionManager.d.ts +161 -0
  500. package/src/libs/engine/src/selection/SelectionManager.js +483 -0
  501. package/src/libs/engine/src/selection/index.d.ts +1 -0
  502. package/src/libs/engine/src/selection/index.js +6 -0
  503. package/src/libs/engine/src/serialization/DiagramMigrations.d.ts +41 -0
  504. package/src/libs/engine/src/serialization/DiagramMigrations.js +124 -0
  505. package/src/libs/engine/src/serialization/DiagramValidator.d.ts +20 -0
  506. package/src/libs/engine/src/serialization/DiagramValidator.js +136 -0
  507. package/src/libs/engine/src/serialization/DocumentEnvelope.d.ts +53 -0
  508. package/src/libs/engine/src/serialization/DocumentEnvelope.js +111 -0
  509. package/src/libs/engine/src/serialization/Incremental.d.ts +77 -0
  510. package/src/libs/engine/src/serialization/Incremental.js +227 -0
  511. package/src/libs/engine/src/serialization/Serializer.d.ts +29 -0
  512. package/src/libs/engine/src/serialization/Serializer.js +45 -0
  513. package/src/libs/engine/src/serialization/Subgraph.d.ts +51 -0
  514. package/src/libs/engine/src/serialization/Subgraph.js +172 -0
  515. package/src/libs/engine/src/serialization/TextFormat.d.ts +71 -0
  516. package/src/libs/engine/src/serialization/TextFormat.js +261 -0
  517. package/src/libs/engine/src/state/ConnectionStateManager.d.ts +178 -0
  518. package/src/libs/engine/src/state/ConnectionStateManager.js +319 -0
  519. package/src/libs/engine/src/state/DiagramStore.d.ts +134 -0
  520. package/src/libs/engine/src/state/DiagramStore.js +372 -0
  521. package/src/libs/engine/src/state/index.d.ts +2 -0
  522. package/src/libs/engine/src/state/index.js +7 -0
  523. package/src/libs/engine/src/sync/awareness.d.ts +91 -0
  524. package/src/libs/engine/src/sync/awareness.js +221 -0
  525. package/src/libs/engine/src/sync/batcher.d.ts +84 -0
  526. package/src/libs/engine/src/sync/batcher.js +0 -0
  527. package/src/libs/engine/src/sync/causal-buffer.d.ts +81 -0
  528. package/src/libs/engine/src/sync/causal-buffer.js +199 -0
  529. package/src/libs/engine/src/sync/index.d.ts +20 -0
  530. package/src/libs/engine/src/sync/index.js +41 -0
  531. package/src/libs/engine/src/sync/protocol.d.ts +74 -0
  532. package/src/libs/engine/src/sync/protocol.js +39 -0
  533. package/src/libs/engine/src/sync/sync-adapter.d.ts +243 -0
  534. package/src/libs/engine/src/sync/sync-adapter.js +524 -0
  535. package/src/libs/engine/src/sync/transport.d.ts +30 -0
  536. package/src/libs/engine/src/sync/transport.js +28 -0
  537. package/src/libs/engine/src/sync/transports/broadcast-channel.d.ts +39 -0
  538. package/src/libs/engine/src/sync/transports/broadcast-channel.js +117 -0
  539. package/src/libs/engine/src/sync/transports/memory.d.ts +38 -0
  540. package/src/libs/engine/src/sync/transports/memory.js +111 -0
  541. package/src/libs/engine/src/sync/transports/unreliable.d.ts +59 -0
  542. package/src/libs/engine/src/sync/transports/unreliable.js +153 -0
  543. package/src/libs/engine/src/sync/transports/websocket.d.ts +60 -0
  544. package/src/libs/engine/src/sync/transports/websocket.js +210 -0
  545. package/src/libs/engine/src/sync/version-vector.d.ts +47 -0
  546. package/src/libs/engine/src/sync/version-vector.js +218 -0
  547. package/src/libs/engine/src/template-library/common-templates.d.ts +46 -0
  548. package/src/libs/engine/src/template-library/common-templates.js +395 -0
  549. package/src/libs/engine/src/template-library/data-viz-templates.d.ts +52 -0
  550. package/src/libs/engine/src/template-library/data-viz-templates.js +471 -0
  551. package/src/libs/engine/src/template-library/erd-templates.d.ts +71 -0
  552. package/src/libs/engine/src/template-library/erd-templates.js +773 -0
  553. package/src/libs/engine/src/template-library/index.d.ts +141 -0
  554. package/src/libs/engine/src/template-library/index.js +271 -0
  555. package/src/libs/engine/src/template-library/integration.d.ts +80 -0
  556. package/src/libs/engine/src/template-library/integration.js +141 -0
  557. package/src/libs/engine/src/template-library/workflow-templates.d.ts +52 -0
  558. package/src/libs/engine/src/template-library/workflow-templates.js +438 -0
  559. package/src/libs/engine/src/templates/NodeFactory.d.ts +118 -0
  560. package/src/libs/engine/src/templates/NodeFactory.js +436 -0
  561. package/src/libs/engine/src/templates/NodeTemplate.d.ts +342 -0
  562. package/src/libs/engine/src/templates/NodeTemplate.js +13 -0
  563. package/src/libs/engine/src/templates/TemplateLoader.d.ts +46 -0
  564. package/src/libs/engine/src/templates/TemplateLoader.js +114 -0
  565. package/src/libs/engine/src/templates/TemplateRegistry.d.ts +70 -0
  566. package/src/libs/engine/src/templates/TemplateRegistry.js +128 -0
  567. package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.d.ts +11 -0
  568. package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.js +123 -0
  569. package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.d.ts +11 -0
  570. package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.js +123 -0
  571. package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.d.ts +11 -0
  572. package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.js +123 -0
  573. package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.d.ts +11 -0
  574. package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.js +124 -0
  575. package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.d.ts +11 -0
  576. package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.js +123 -0
  577. package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.d.ts +11 -0
  578. package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.js +124 -0
  579. package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.d.ts +11 -0
  580. package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.js +123 -0
  581. package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.d.ts +11 -0
  582. package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.js +122 -0
  583. package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.d.ts +11 -0
  584. package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.js +125 -0
  585. package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.d.ts +11 -0
  586. package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.js +123 -0
  587. package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.d.ts +11 -0
  588. package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.js +123 -0
  589. package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.d.ts +11 -0
  590. package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.js +123 -0
  591. package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.d.ts +11 -0
  592. package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.js +152 -0
  593. package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.d.ts +11 -0
  594. package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.js +123 -0
  595. package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.d.ts +11 -0
  596. package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.js +123 -0
  597. package/src/libs/engine/src/templates/generated/bpmn/index.d.ts +15 -0
  598. package/src/libs/engine/src/templates/generated/bpmn/index.js +34 -0
  599. package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.d.ts +11 -0
  600. package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.js +152 -0
  601. package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.d.ts +11 -0
  602. package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.js +122 -0
  603. package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.d.ts +11 -0
  604. package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.js +151 -0
  605. package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.d.ts +11 -0
  606. package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.js +122 -0
  607. package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.d.ts +11 -0
  608. package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.js +122 -0
  609. package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.d.ts +11 -0
  610. package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.js +123 -0
  611. package/src/libs/engine/src/templates/generated/erd/erd-entity.template.d.ts +11 -0
  612. package/src/libs/engine/src/templates/generated/erd/erd-entity.template.js +149 -0
  613. package/src/libs/engine/src/templates/generated/erd/erd-isa.template.d.ts +11 -0
  614. package/src/libs/engine/src/templates/generated/erd/erd-isa.template.js +123 -0
  615. package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.d.ts +11 -0
  616. package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.js +122 -0
  617. package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.d.ts +11 -0
  618. package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.js +122 -0
  619. package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.d.ts +11 -0
  620. package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.js +122 -0
  621. package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.d.ts +11 -0
  622. package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.js +123 -0
  623. package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.d.ts +11 -0
  624. package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.js +121 -0
  625. package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.d.ts +11 -0
  626. package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.js +123 -0
  627. package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.d.ts +11 -0
  628. package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.js +123 -0
  629. package/src/libs/engine/src/templates/generated/erd/erd-table.template.d.ts +11 -0
  630. package/src/libs/engine/src/templates/generated/erd/erd-table.template.js +123 -0
  631. package/src/libs/engine/src/templates/generated/erd/erd-view.template.d.ts +11 -0
  632. package/src/libs/engine/src/templates/generated/erd/erd-view.template.js +123 -0
  633. package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.d.ts +11 -0
  634. package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.js +149 -0
  635. package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.d.ts +11 -0
  636. package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.js +122 -0
  637. package/src/libs/engine/src/templates/generated/erd/index.d.ts +19 -0
  638. package/src/libs/engine/src/templates/generated/erd/index.js +42 -0
  639. package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.d.ts +11 -0
  640. package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.js +123 -0
  641. package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.d.ts +11 -0
  642. package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.js +123 -0
  643. package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.d.ts +11 -0
  644. package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.js +123 -0
  645. package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.d.ts +11 -0
  646. package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.js +124 -0
  647. package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.d.ts +11 -0
  648. package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.js +124 -0
  649. package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.d.ts +11 -0
  650. package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.js +123 -0
  651. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.d.ts +11 -0
  652. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.js +123 -0
  653. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.d.ts +11 -0
  654. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.js +122 -0
  655. package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.d.ts +11 -0
  656. package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.js +122 -0
  657. package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.d.ts +11 -0
  658. package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.js +123 -0
  659. package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.d.ts +11 -0
  660. package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.js +123 -0
  661. package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.d.ts +11 -0
  662. package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.js +123 -0
  663. package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.d.ts +11 -0
  664. package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.js +122 -0
  665. package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.d.ts +11 -0
  666. package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.js +123 -0
  667. package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.d.ts +11 -0
  668. package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.js +124 -0
  669. package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.d.ts +11 -0
  670. package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.js +124 -0
  671. package/src/libs/engine/src/templates/generated/flowchart/index.d.ts +16 -0
  672. package/src/libs/engine/src/templates/generated/flowchart/index.js +36 -0
  673. package/src/libs/engine/src/templates/generated/index.d.ts +9 -0
  674. package/src/libs/engine/src/templates/generated/index.js +13 -0
  675. package/src/libs/engine/src/templates/generated/register.d.ts +23 -0
  676. package/src/libs/engine/src/templates/generated/register.js +31 -0
  677. package/src/libs/engine/src/templates/generated/uml/index.d.ts +30 -0
  678. package/src/libs/engine/src/templates/generated/uml/index.js +64 -0
  679. package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.d.ts +11 -0
  680. package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.js +204 -0
  681. package/src/libs/engine/src/templates/generated/uml/uml-activation.template.d.ts +11 -0
  682. package/src/libs/engine/src/templates/generated/uml/uml-activation.template.js +124 -0
  683. package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.d.ts +11 -0
  684. package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.js +124 -0
  685. package/src/libs/engine/src/templates/generated/uml/uml-activity.template.d.ts +11 -0
  686. package/src/libs/engine/src/templates/generated/uml/uml-activity.template.js +123 -0
  687. package/src/libs/engine/src/templates/generated/uml/uml-actor.template.d.ts +11 -0
  688. package/src/libs/engine/src/templates/generated/uml/uml-actor.template.js +123 -0
  689. package/src/libs/engine/src/templates/generated/uml/uml-class.template.d.ts +11 -0
  690. package/src/libs/engine/src/templates/generated/uml/uml-class.template.js +204 -0
  691. package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.d.ts +11 -0
  692. package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.js +122 -0
  693. package/src/libs/engine/src/templates/generated/uml/uml-component.template.d.ts +11 -0
  694. package/src/libs/engine/src/templates/generated/uml/uml-component.template.js +122 -0
  695. package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.d.ts +11 -0
  696. package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.js +204 -0
  697. package/src/libs/engine/src/templates/generated/uml/uml-decision.template.d.ts +11 -0
  698. package/src/libs/engine/src/templates/generated/uml/uml-decision.template.js +124 -0
  699. package/src/libs/engine/src/templates/generated/uml/uml-enum.template.d.ts +11 -0
  700. package/src/libs/engine/src/templates/generated/uml/uml-enum.template.js +204 -0
  701. package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.d.ts +11 -0
  702. package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.js +124 -0
  703. package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.d.ts +11 -0
  704. package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.js +124 -0
  705. package/src/libs/engine/src/templates/generated/uml/uml-fork.template.d.ts +11 -0
  706. package/src/libs/engine/src/templates/generated/uml/uml-fork.template.js +125 -0
  707. package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.d.ts +11 -0
  708. package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.js +123 -0
  709. package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.d.ts +11 -0
  710. package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.js +123 -0
  711. package/src/libs/engine/src/templates/generated/uml/uml-interface.template.d.ts +11 -0
  712. package/src/libs/engine/src/templates/generated/uml/uml-interface.template.js +204 -0
  713. package/src/libs/engine/src/templates/generated/uml/uml-join.template.d.ts +11 -0
  714. package/src/libs/engine/src/templates/generated/uml/uml-join.template.js +125 -0
  715. package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.d.ts +11 -0
  716. package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.js +123 -0
  717. package/src/libs/engine/src/templates/generated/uml/uml-merge.template.d.ts +11 -0
  718. package/src/libs/engine/src/templates/generated/uml/uml-merge.template.js +122 -0
  719. package/src/libs/engine/src/templates/generated/uml/uml-node.template.d.ts +11 -0
  720. package/src/libs/engine/src/templates/generated/uml/uml-node.template.js +122 -0
  721. package/src/libs/engine/src/templates/generated/uml/uml-note.template.d.ts +11 -0
  722. package/src/libs/engine/src/templates/generated/uml/uml-note.template.js +123 -0
  723. package/src/libs/engine/src/templates/generated/uml/uml-object.template.d.ts +11 -0
  724. package/src/libs/engine/src/templates/generated/uml/uml-object.template.js +204 -0
  725. package/src/libs/engine/src/templates/generated/uml/uml-package.template.d.ts +11 -0
  726. package/src/libs/engine/src/templates/generated/uml/uml-package.template.js +123 -0
  727. package/src/libs/engine/src/templates/generated/uml/uml-part.template.d.ts +11 -0
  728. package/src/libs/engine/src/templates/generated/uml/uml-part.template.js +122 -0
  729. package/src/libs/engine/src/templates/generated/uml/uml-port.template.d.ts +11 -0
  730. package/src/libs/engine/src/templates/generated/uml/uml-port.template.js +123 -0
  731. package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.d.ts +11 -0
  732. package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.js +204 -0
  733. package/src/libs/engine/src/templates/generated/uml/uml-signal.template.d.ts +11 -0
  734. package/src/libs/engine/src/templates/generated/uml/uml-signal.template.js +123 -0
  735. package/src/libs/engine/src/templates/generated/uml/uml-state.template.d.ts +11 -0
  736. package/src/libs/engine/src/templates/generated/uml/uml-state.template.js +123 -0
  737. package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.d.ts +11 -0
  738. package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.js +122 -0
  739. package/src/libs/engine/src/templates/index.d.ts +12 -0
  740. package/src/libs/engine/src/templates/index.js +27 -0
  741. package/src/libs/engine/src/templates/stencils.d.ts +45 -0
  742. package/src/libs/engine/src/templates/stencils.js +85 -0
  743. package/src/libs/engine/src/types/domain/bpmn.d.ts +25 -0
  744. package/src/libs/engine/src/types/domain/bpmn.js +313 -0
  745. package/src/libs/engine/src/types/domain/erd.d.ts +29 -0
  746. package/src/libs/engine/src/types/domain/erd.js +394 -0
  747. package/src/libs/engine/src/types/domain/flowchart.d.ts +26 -0
  748. package/src/libs/engine/src/types/domain/flowchart.js +434 -0
  749. package/src/libs/engine/src/types/domain/index.d.ts +4 -0
  750. package/src/libs/engine/src/types/domain/index.js +9 -0
  751. package/src/libs/engine/src/types/domain/uml.d.ts +40 -0
  752. package/src/libs/engine/src/types/domain/uml.js +758 -0
  753. package/src/libs/engine/src/types/event.types.d.ts +142 -0
  754. package/src/libs/engine/src/types/event.types.js +96 -0
  755. package/src/libs/engine/src/types/geometry.types.d.ts +84 -0
  756. package/src/libs/engine/src/types/geometry.types.js +16 -0
  757. package/src/libs/engine/src/types/index.d.ts +7 -0
  758. package/src/libs/engine/src/types/index.js +14 -0
  759. package/src/libs/engine/src/types/layout.types.d.ts +148 -0
  760. package/src/libs/engine/src/types/layout.types.js +28 -0
  761. package/src/libs/engine/src/types/model.types.d.ts +378 -0
  762. package/src/libs/engine/src/types/model.types.js +4 -0
  763. package/src/libs/engine/src/types/performance.types.d.ts +109 -0
  764. package/src/libs/engine/src/types/performance.types.js +122 -0
  765. package/src/libs/engine/src/types/plugin.types.d.ts +30 -0
  766. package/src/libs/engine/src/types/plugin.types.js +4 -0
  767. package/src/libs/engine/src/utils/deep-clone.d.ts +9 -0
  768. package/src/libs/engine/src/utils/deep-clone.js +123 -0
  769. package/src/libs/engine/src/utils/geometry.d.ts +45 -0
  770. package/src/libs/engine/src/utils/geometry.js +241 -0
  771. package/src/libs/engine/src/utils/id.d.ts +22 -0
  772. package/src/libs/engine/src/utils/id.js +44 -0
  773. package/src/libs/engine/src/utils/index.d.ts +3 -0
  774. package/src/libs/engine/src/utils/index.js +8 -0
  775. package/src/libs/engine/src/utils/transform.d.ts +84 -0
  776. package/src/libs/engine/src/utils/transform.js +200 -0
  777. package/src/libs/engine/src/validation/ConnectionGroupValidator.d.ts +22 -0
  778. package/src/libs/engine/src/validation/ConnectionGroupValidator.js +56 -0
  779. package/src/libs/engine/src/validation/TypeRegistry.d.ts +179 -0
  780. package/src/libs/engine/src/validation/TypeRegistry.js +358 -0
  781. package/src/libs/engine/src/validation/ValidationEngine.d.ts +79 -0
  782. package/src/libs/engine/src/validation/ValidationEngine.js +1150 -0
  783. package/src/libs/engine/src/validation/index.d.ts +3 -0
  784. package/src/libs/engine/src/validation/index.js +8 -0
  785. package/src/libs/renderer/src/a11y/diagram-outline.d.ts +93 -0
  786. package/src/libs/renderer/src/a11y/diagram-outline.js +0 -0
  787. package/src/libs/renderer/src/a11y/focus-containment.d.ts +90 -0
  788. package/src/libs/renderer/src/a11y/focus-containment.js +173 -0
  789. package/src/libs/renderer/src/a11y/graph-topology.d.ts +70 -0
  790. package/src/libs/renderer/src/a11y/graph-topology.js +0 -0
  791. package/src/libs/renderer/src/a11y/index.d.ts +26 -0
  792. package/src/libs/renderer/src/a11y/index.js +30 -0
  793. package/src/libs/renderer/src/a11y/live-region.d.ts +83 -0
  794. package/src/libs/renderer/src/a11y/live-region.js +170 -0
  795. package/src/libs/renderer/src/a11y/outline-view.d.ts +62 -0
  796. package/src/libs/renderer/src/a11y/outline-view.js +158 -0
  797. package/src/libs/renderer/src/a11y/reduced-motion.d.ts +48 -0
  798. package/src/libs/renderer/src/a11y/reduced-motion.js +223 -0
  799. package/src/libs/renderer/src/a11y/semantics.d.ts +76 -0
  800. package/src/libs/renderer/src/a11y/semantics.js +229 -0
  801. package/src/libs/renderer/src/canvas/canvas-context.d.ts +167 -0
  802. package/src/libs/renderer/src/canvas/canvas-context.js +267 -0
  803. package/src/libs/renderer/src/canvas/canvas-renderer.d.ts +194 -0
  804. package/src/libs/renderer/src/canvas/canvas-renderer.js +600 -0
  805. package/src/libs/renderer/src/canvas/dirty-region.d.ts +56 -0
  806. package/src/libs/renderer/src/canvas/dirty-region.js +171 -0
  807. package/src/libs/renderer/src/canvas/index.d.ts +16 -0
  808. package/src/libs/renderer/src/canvas/index.js +79 -0
  809. package/src/libs/renderer/src/canvas/path-geometry.d.ts +112 -0
  810. package/src/libs/renderer/src/canvas/path-geometry.js +673 -0
  811. package/src/libs/renderer/src/canvas/render-backend.d.ts +133 -0
  812. package/src/libs/renderer/src/canvas/render-backend.js +339 -0
  813. package/src/libs/renderer/src/canvas/style-resolution.d.ts +101 -0
  814. package/src/libs/renderer/src/canvas/style-resolution.js +466 -0
  815. package/src/libs/renderer/src/canvas/tier-policy.d.ts +33 -0
  816. package/src/libs/renderer/src/canvas/tier-policy.js +89 -0
  817. package/src/libs/renderer/src/canvas/vnode-painter.d.ts +154 -0
  818. package/src/libs/renderer/src/canvas/vnode-painter.js +649 -0
  819. package/src/libs/renderer/src/comments/comment-overlay.d.ts +56 -0
  820. package/src/libs/renderer/src/comments/comment-overlay.js +127 -0
  821. package/src/libs/renderer/src/comments/comment-panel.d.ts +45 -0
  822. package/src/libs/renderer/src/comments/comment-panel.js +287 -0
  823. package/src/libs/renderer/src/comments/comment-pins.d.ts +34 -0
  824. package/src/libs/renderer/src/comments/comment-pins.js +227 -0
  825. package/src/libs/renderer/src/comments/index.d.ts +3 -0
  826. package/src/libs/renderer/src/comments/index.js +17 -0
  827. package/src/libs/renderer/src/export/assets.d.ts +96 -0
  828. package/src/libs/renderer/src/export/assets.js +350 -0
  829. package/src/libs/renderer/src/export/batch.d.ts +49 -0
  830. package/src/libs/renderer/src/export/batch.js +95 -0
  831. package/src/libs/renderer/src/export/bounds.d.ts +81 -0
  832. package/src/libs/renderer/src/export/bounds.js +367 -0
  833. package/src/libs/renderer/src/export/capture-host.d.ts +39 -0
  834. package/src/libs/renderer/src/export/capture-host.js +1259 -0
  835. package/src/libs/renderer/src/export/custom-nodes.d.ts +88 -0
  836. package/src/libs/renderer/src/export/custom-nodes.js +237 -0
  837. package/src/libs/renderer/src/export/index.d.ts +14 -0
  838. package/src/libs/renderer/src/export/index.js +30 -0
  839. package/src/libs/renderer/src/export/node-raster.d.ts +60 -0
  840. package/src/libs/renderer/src/export/node-raster.js +161 -0
  841. package/src/libs/renderer/src/export/pagination.d.ts +116 -0
  842. package/src/libs/renderer/src/export/pagination.js +245 -0
  843. package/src/libs/renderer/src/export/pdf/flate.d.ts +13 -0
  844. package/src/libs/renderer/src/export/pdf/flate.js +287 -0
  845. package/src/libs/renderer/src/export/pdf/index.d.ts +4 -0
  846. package/src/libs/renderer/src/export/pdf/index.js +15 -0
  847. package/src/libs/renderer/src/export/pdf/pdf-export.d.ts +64 -0
  848. package/src/libs/renderer/src/export/pdf/pdf-export.js +1076 -0
  849. package/src/libs/renderer/src/export/pdf/pdf-path.d.ts +17 -0
  850. package/src/libs/renderer/src/export/pdf/pdf-path.js +85 -0
  851. package/src/libs/renderer/src/export/pdf/pdf-primitives.d.ts +115 -0
  852. package/src/libs/renderer/src/export/pdf/pdf-primitives.js +338 -0
  853. package/src/libs/renderer/src/export/pdf/png.d.ts +25 -0
  854. package/src/libs/renderer/src/export/pdf/png.js +596 -0
  855. package/src/libs/renderer/src/export/raster.d.ts +42 -0
  856. package/src/libs/renderer/src/export/raster.js +126 -0
  857. package/src/libs/renderer/src/export/round-trip.d.ts +83 -0
  858. package/src/libs/renderer/src/export/round-trip.js +432 -0
  859. package/src/libs/renderer/src/export/scope.d.ts +16 -0
  860. package/src/libs/renderer/src/export/scope.js +69 -0
  861. package/src/libs/renderer/src/export/style-flattener.d.ts +23 -0
  862. package/src/libs/renderer/src/export/style-flattener.js +144 -0
  863. package/src/libs/renderer/src/export/svg-export.d.ts +123 -0
  864. package/src/libs/renderer/src/export/svg-export.js +178 -0
  865. package/src/libs/renderer/src/export/vnode-serializer.d.ts +75 -0
  866. package/src/libs/renderer/src/export/vnode-serializer.js +344 -0
  867. package/src/libs/renderer/src/ext/capabilities.d.ts +178 -0
  868. package/src/libs/renderer/src/ext/capabilities.js +22 -0
  869. package/src/libs/renderer/src/ext/capability-factory.d.ts +44 -0
  870. package/src/libs/renderer/src/ext/capability-factory.js +194 -0
  871. package/src/libs/renderer/src/ext/components/attach.d.ts +66 -0
  872. package/src/libs/renderer/src/ext/components/attach.js +112 -0
  873. package/src/libs/renderer/src/ext/components/background.d.ts +84 -0
  874. package/src/libs/renderer/src/ext/components/background.js +202 -0
  875. package/src/libs/renderer/src/ext/components/controls.d.ts +49 -0
  876. package/src/libs/renderer/src/ext/components/controls.js +144 -0
  877. package/src/libs/renderer/src/ext/components/minimap.d.ts +78 -0
  878. package/src/libs/renderer/src/ext/components/minimap.js +326 -0
  879. package/src/libs/renderer/src/ext/diagram-registry.d.ts +109 -0
  880. package/src/libs/renderer/src/ext/diagram-registry.js +303 -0
  881. package/src/libs/renderer/src/ext/disposable.d.ts +51 -0
  882. package/src/libs/renderer/src/ext/disposable.js +104 -0
  883. package/src/libs/renderer/src/ext/extension-host.d.ts +144 -0
  884. package/src/libs/renderer/src/ext/extension-host.js +272 -0
  885. package/src/libs/renderer/src/ext/index.d.ts +62 -0
  886. package/src/libs/renderer/src/ext/index.js +91 -0
  887. package/src/libs/renderer/src/ext/link-pipeline.d.ts +195 -0
  888. package/src/libs/renderer/src/ext/link-pipeline.js +431 -0
  889. package/src/libs/renderer/src/ext/manifest.d.ts +73 -0
  890. package/src/libs/renderer/src/ext/manifest.js +149 -0
  891. package/src/libs/renderer/src/ext/node-component.d.ts +114 -0
  892. package/src/libs/renderer/src/ext/node-component.js +290 -0
  893. package/src/libs/renderer/src/ext/plugins-loader.d.ts +1 -0
  894. package/src/libs/renderer/src/ext/plugins-loader.js +18 -0
  895. package/src/libs/renderer/src/ext/portal.d.ts +129 -0
  896. package/src/libs/renderer/src/ext/portal.js +267 -0
  897. package/src/libs/renderer/src/ext/public-api.d.ts +101 -0
  898. package/src/libs/renderer/src/ext/public-api.js +201 -0
  899. package/src/libs/renderer/src/ext/registry-scope.d.ts +93 -0
  900. package/src/libs/renderer/src/ext/registry-scope.js +142 -0
  901. package/src/libs/renderer/src/ext/tools.d.ts +164 -0
  902. package/src/libs/renderer/src/ext/tools.js +170 -0
  903. package/src/libs/renderer/src/index.d.ts +34 -0
  904. package/src/libs/renderer/src/index.js +108 -0
  905. package/src/libs/renderer/src/instance/create-diagram.d.ts +385 -0
  906. package/src/libs/renderer/src/instance/create-diagram.js +1150 -0
  907. package/src/libs/renderer/src/instance/diagram-instance.d.ts +48 -0
  908. package/src/libs/renderer/src/instance/diagram-instance.js +51 -0
  909. package/src/libs/renderer/src/instance/dom-event-binder.d.ts +394 -0
  910. package/src/libs/renderer/src/instance/dom-event-binder.js +2104 -0
  911. package/src/libs/renderer/src/instance/index.d.ts +5 -0
  912. package/src/libs/renderer/src/instance/index.js +13 -0
  913. package/src/libs/renderer/src/instance/layers.d.ts +31 -0
  914. package/src/libs/renderer/src/instance/layers.js +43 -0
  915. package/src/libs/renderer/src/instance/model-input.d.ts +229 -0
  916. package/src/libs/renderer/src/instance/model-input.js +325 -0
  917. package/src/libs/renderer/src/instance/render-scheduler.d.ts +79 -0
  918. package/src/libs/renderer/src/instance/render-scheduler.js +96 -0
  919. package/src/libs/renderer/src/instance/wheel-scroll-yield.d.ts +38 -0
  920. package/src/libs/renderer/src/instance/wheel-scroll-yield.js +118 -0
  921. package/src/libs/renderer/src/interaction/ControlPointEditor.d.ts +160 -0
  922. package/src/libs/renderer/src/interaction/ControlPointEditor.js +360 -0
  923. package/src/libs/renderer/src/interaction/WaypointEditor.d.ts +133 -0
  924. package/src/libs/renderer/src/interaction/WaypointEditor.js +263 -0
  925. package/src/libs/renderer/src/interaction/highlighters.d.ts +88 -0
  926. package/src/libs/renderer/src/interaction/highlighters.js +212 -0
  927. package/src/libs/renderer/src/interaction/in-place-editor.d.ts +63 -0
  928. package/src/libs/renderer/src/interaction/in-place-editor.js +141 -0
  929. package/src/libs/renderer/src/interaction/index.d.ts +11 -0
  930. package/src/libs/renderer/src/interaction/index.js +29 -0
  931. package/src/libs/renderer/src/interaction/ink-overlay.d.ts +53 -0
  932. package/src/libs/renderer/src/interaction/ink-overlay.js +154 -0
  933. package/src/libs/renderer/src/interaction/interaction-controller.d.ts +555 -0
  934. package/src/libs/renderer/src/interaction/interaction-controller.js +1733 -0
  935. package/src/libs/renderer/src/interaction/keyboard-navigation.d.ts +223 -0
  936. package/src/libs/renderer/src/interaction/keyboard-navigation.js +885 -0
  937. package/src/libs/renderer/src/interaction/selection-tools.d.ts +343 -0
  938. package/src/libs/renderer/src/interaction/selection-tools.js +918 -0
  939. package/src/libs/renderer/src/interaction/snapping.d.ts +210 -0
  940. package/src/libs/renderer/src/interaction/snapping.js +569 -0
  941. package/src/libs/renderer/src/interaction/touch-gestures.d.ts +160 -0
  942. package/src/libs/renderer/src/interaction/touch-gestures.js +549 -0
  943. package/src/libs/renderer/src/interaction/whiteboard-tools.d.ts +171 -0
  944. package/src/libs/renderer/src/interaction/whiteboard-tools.js +476 -0
  945. package/src/libs/renderer/src/lazy/host-culling.d.ts +116 -0
  946. package/src/libs/renderer/src/lazy/host-culling.js +135 -0
  947. package/src/libs/renderer/src/lazy/index.d.ts +7 -0
  948. package/src/libs/renderer/src/lazy/index.js +28 -0
  949. package/src/libs/renderer/src/lazy/progressive-mounter.d.ts +80 -0
  950. package/src/libs/renderer/src/lazy/progressive-mounter.js +264 -0
  951. package/src/libs/renderer/src/lazy/types.d.ts +43 -0
  952. package/src/libs/renderer/src/lazy/types.js +14 -0
  953. package/src/libs/renderer/src/lazy/view-lifecycle.d.ts +97 -0
  954. package/src/libs/renderer/src/lazy/view-lifecycle.js +221 -0
  955. package/src/libs/renderer/src/perf/index.d.ts +2 -0
  956. package/src/libs/renderer/src/perf/index.js +7 -0
  957. package/src/libs/renderer/src/perf/perf-hud.d.ts +46 -0
  958. package/src/libs/renderer/src/perf/perf-hud.js +105 -0
  959. package/src/libs/renderer/src/perf/quality-governor.d.ts +77 -0
  960. package/src/libs/renderer/src/perf/quality-governor.js +154 -0
  961. package/src/libs/renderer/src/platform/index.d.ts +1 -0
  962. package/src/libs/renderer/src/platform/index.js +5 -0
  963. package/src/libs/renderer/src/platform/platform.d.ts +34 -0
  964. package/src/libs/renderer/src/platform/platform.js +64 -0
  965. package/src/libs/renderer/src/presence/bind-presence.d.ts +51 -0
  966. package/src/libs/renderer/src/presence/bind-presence.js +144 -0
  967. package/src/libs/renderer/src/presence/index.d.ts +4 -0
  968. package/src/libs/renderer/src/presence/index.js +18 -0
  969. package/src/libs/renderer/src/presence/presence-overlay.d.ts +121 -0
  970. package/src/libs/renderer/src/presence/presence-overlay.js +465 -0
  971. package/src/libs/renderer/src/presentation/index.d.ts +3 -0
  972. package/src/libs/renderer/src/presentation/index.js +14 -0
  973. package/src/libs/renderer/src/presentation/presentation.d.ts +94 -0
  974. package/src/libs/renderer/src/presentation/presentation.js +158 -0
  975. package/src/libs/renderer/src/presentation/viewport-channel.d.ts +78 -0
  976. package/src/libs/renderer/src/presentation/viewport-channel.js +86 -0
  977. package/src/libs/renderer/src/services/animation-lifecycle.d.ts +153 -0
  978. package/src/libs/renderer/src/services/animation-lifecycle.js +326 -0
  979. package/src/libs/renderer/src/services/animation-performance.service.d.ts +191 -0
  980. package/src/libs/renderer/src/services/animation-performance.service.js +371 -0
  981. package/src/libs/renderer/src/services/animation-sequencer.d.ts +226 -0
  982. package/src/libs/renderer/src/services/animation-sequencer.js +379 -0
  983. package/src/libs/renderer/src/services/animation.service.d.ts +182 -0
  984. package/src/libs/renderer/src/services/animation.service.js +858 -0
  985. package/src/libs/renderer/src/services/custom-animation-registry.d.ts +182 -0
  986. package/src/libs/renderer/src/services/custom-animation-registry.js +361 -0
  987. package/src/libs/renderer/src/ssr/index.d.ts +1 -0
  988. package/src/libs/renderer/src/ssr/index.js +6 -0
  989. package/src/libs/renderer/src/ssr/render-to-static.d.ts +91 -0
  990. package/src/libs/renderer/src/ssr/render-to-static.js +81 -0
  991. package/src/libs/renderer/src/svg/ArrowRenderer.d.ts +159 -0
  992. package/src/libs/renderer/src/svg/ArrowRenderer.js +723 -0
  993. package/src/libs/renderer/src/svg/JumpPointDetector.d.ts +79 -0
  994. package/src/libs/renderer/src/svg/JumpPointDetector.js +176 -0
  995. package/src/libs/renderer/src/svg/JumpPointRenderer.d.ts +59 -0
  996. package/src/libs/renderer/src/svg/JumpPointRenderer.js +309 -0
  997. package/src/libs/renderer/src/svg/LabelRenderer.d.ts +76 -0
  998. package/src/libs/renderer/src/svg/LabelRenderer.js +273 -0
  999. package/src/libs/renderer/src/svg/auto-size.d.ts +76 -0
  1000. package/src/libs/renderer/src/svg/auto-size.js +142 -0
  1001. package/src/libs/renderer/src/svg/channel-nudging.d.ts +34 -0
  1002. package/src/libs/renderer/src/svg/channel-nudging.js +226 -0
  1003. package/src/libs/renderer/src/svg/edge-optimizer.d.ts +228 -0
  1004. package/src/libs/renderer/src/svg/edge-optimizer.js +606 -0
  1005. package/src/libs/renderer/src/svg/edge-templates.d.ts +152 -0
  1006. package/src/libs/renderer/src/svg/edge-templates.js +233 -0
  1007. package/src/libs/renderer/src/svg/html-node.d.ts +50 -0
  1008. package/src/libs/renderer/src/svg/html-node.js +214 -0
  1009. package/src/libs/renderer/src/svg/index.d.ts +25 -0
  1010. package/src/libs/renderer/src/svg/index.js +32 -0
  1011. package/src/libs/renderer/src/svg/link-fanout.d.ts +127 -0
  1012. package/src/libs/renderer/src/svg/link-fanout.js +333 -0
  1013. package/src/libs/renderer/src/svg/link-hit-test.d.ts +142 -0
  1014. package/src/libs/renderer/src/svg/link-hit-test.js +182 -0
  1015. package/src/libs/renderer/src/svg/motion-tracker.d.ts +18 -0
  1016. package/src/libs/renderer/src/svg/motion-tracker.js +71 -0
  1017. package/src/libs/renderer/src/svg/node-sizing.d.ts +51 -0
  1018. package/src/libs/renderer/src/svg/node-sizing.js +65 -0
  1019. package/src/libs/renderer/src/svg/node-toolbar.d.ts +30 -0
  1020. package/src/libs/renderer/src/svg/node-toolbar.js +45 -0
  1021. package/src/libs/renderer/src/svg/notation-shapes.d.ts +2 -0
  1022. package/src/libs/renderer/src/svg/notation-shapes.js +126 -0
  1023. package/src/libs/renderer/src/svg/paint-servers.d.ts +49 -0
  1024. package/src/libs/renderer/src/svg/paint-servers.js +225 -0
  1025. package/src/libs/renderer/src/svg/panel.d.ts +115 -0
  1026. package/src/libs/renderer/src/svg/panel.js +353 -0
  1027. package/src/libs/renderer/src/svg/path-outline.d.ts +35 -0
  1028. package/src/libs/renderer/src/svg/path-outline.js +134 -0
  1029. package/src/libs/renderer/src/svg/port-glyph.d.ts +27 -0
  1030. package/src/libs/renderer/src/svg/port-glyph.js +97 -0
  1031. package/src/libs/renderer/src/svg/port-label.d.ts +74 -0
  1032. package/src/libs/renderer/src/svg/port-label.js +201 -0
  1033. package/src/libs/renderer/src/svg/port-layout.d.ts +50 -0
  1034. package/src/libs/renderer/src/svg/port-layout.js +212 -0
  1035. package/src/libs/renderer/src/svg/port-positioning.d.ts +33 -0
  1036. package/src/libs/renderer/src/svg/port-positioning.js +101 -0
  1037. package/src/libs/renderer/src/svg/port-spots.d.ts +69 -0
  1038. package/src/libs/renderer/src/svg/port-spots.js +154 -0
  1039. package/src/libs/renderer/src/svg/route-memo.d.ts +63 -0
  1040. package/src/libs/renderer/src/svg/route-memo.js +206 -0
  1041. package/src/libs/renderer/src/svg/route-solver-bridge.d.ts +48 -0
  1042. package/src/libs/renderer/src/svg/route-solver-bridge.js +151 -0
  1043. package/src/libs/renderer/src/svg/shape-registry.d.ts +189 -0
  1044. package/src/libs/renderer/src/svg/shape-registry.js +1104 -0
  1045. package/src/libs/renderer/src/svg/stroke-layer.d.ts +36 -0
  1046. package/src/libs/renderer/src/svg/stroke-layer.js +183 -0
  1047. package/src/libs/renderer/src/svg/svg-renderer.d.ts +1737 -0
  1048. package/src/libs/renderer/src/svg/svg-renderer.js +7772 -0
  1049. package/src/libs/renderer/src/svg/text-block.d.ts +54 -0
  1050. package/src/libs/renderer/src/svg/text-block.js +171 -0
  1051. package/src/libs/renderer/src/themes/color-mode.d.ts +81 -0
  1052. package/src/libs/renderer/src/themes/color-mode.js +158 -0
  1053. package/src/libs/renderer/src/themes/contrast.d.ts +67 -0
  1054. package/src/libs/renderer/src/themes/contrast.js +215 -0
  1055. package/src/libs/renderer/src/themes/default-dark-theme.d.ts +6 -0
  1056. package/src/libs/renderer/src/themes/default-dark-theme.js +126 -0
  1057. package/src/libs/renderer/src/themes/default-light-theme.d.ts +6 -0
  1058. package/src/libs/renderer/src/themes/default-light-theme.js +168 -0
  1059. package/src/libs/renderer/src/themes/default-theme-set.d.ts +10 -0
  1060. package/src/libs/renderer/src/themes/default-theme-set.js +25 -0
  1061. package/src/libs/renderer/src/themes/high-contrast-theme.d.ts +5 -0
  1062. package/src/libs/renderer/src/themes/high-contrast-theme.js +170 -0
  1063. package/src/libs/renderer/src/themes/index.d.ts +22 -0
  1064. package/src/libs/renderer/src/themes/index.js +93 -0
  1065. package/src/libs/renderer/src/themes/style-cascade.d.ts +23 -0
  1066. package/src/libs/renderer/src/themes/style-cascade.js +194 -0
  1067. package/src/libs/renderer/src/themes/style-registry.d.ts +40 -0
  1068. package/src/libs/renderer/src/themes/style-registry.js +129 -0
  1069. package/src/libs/renderer/src/themes/theme-a11y.d.ts +65 -0
  1070. package/src/libs/renderer/src/themes/theme-a11y.js +256 -0
  1071. package/src/libs/renderer/src/themes/theme-css.d.ts +30 -0
  1072. package/src/libs/renderer/src/themes/theme-css.js +304 -0
  1073. package/src/libs/renderer/src/themes/theme-ref.d.ts +63 -0
  1074. package/src/libs/renderer/src/themes/theme-ref.js +206 -0
  1075. package/src/libs/renderer/src/themes/theme-vars.d.ts +49 -0
  1076. package/src/libs/renderer/src/themes/theme-vars.js +112 -0
  1077. package/src/libs/renderer/src/themes/token-bridge.d.ts +62 -0
  1078. package/src/libs/renderer/src/themes/token-bridge.js +354 -0
  1079. package/src/libs/renderer/src/types/geometry.types.d.ts +10 -0
  1080. package/src/libs/renderer/src/types/geometry.types.js +3 -0
  1081. package/src/libs/renderer/src/types/index.d.ts +5 -0
  1082. package/src/libs/renderer/src/types/index.js +14 -0
  1083. package/src/libs/renderer/src/types/property-schema/conditions.d.ts +96 -0
  1084. package/src/libs/renderer/src/types/property-schema/conditions.js +8 -0
  1085. package/src/libs/renderer/src/types/property-schema/editor-types.d.ts +310 -0
  1086. package/src/libs/renderer/src/types/property-schema/editor-types.js +8 -0
  1087. package/src/libs/renderer/src/types/property-schema/groups.d.ts +58 -0
  1088. package/src/libs/renderer/src/types/property-schema/groups.js +8 -0
  1089. package/src/libs/renderer/src/types/property-schema/index.d.ts +101 -0
  1090. package/src/libs/renderer/src/types/property-schema/index.js +98 -0
  1091. package/src/libs/renderer/src/types/property-schema/property-definition.d.ts +117 -0
  1092. package/src/libs/renderer/src/types/property-schema/property-definition.js +8 -0
  1093. package/src/libs/renderer/src/types/property-schema/schema.d.ts +108 -0
  1094. package/src/libs/renderer/src/types/property-schema/schema.js +8 -0
  1095. package/src/libs/renderer/src/types/property-schema/validation.d.ts +181 -0
  1096. package/src/libs/renderer/src/types/property-schema/validation.js +8 -0
  1097. package/src/libs/renderer/src/types/renderer.interface.d.ts +623 -0
  1098. package/src/libs/renderer/src/types/renderer.interface.js +3 -0
  1099. package/src/libs/renderer/src/types/theme.types.d.ts +305 -0
  1100. package/src/libs/renderer/src/types/theme.types.js +3 -0
  1101. package/src/libs/renderer/src/types/vnode.types.d.ts +139 -0
  1102. package/src/libs/renderer/src/types/vnode.types.js +3 -0
  1103. package/src/libs/renderer/src/utils/animation-presets.d.ts +310 -0
  1104. package/src/libs/renderer/src/utils/animation-presets.js +406 -0
  1105. package/src/libs/renderer/src/utils/animation-priority.d.ts +118 -0
  1106. package/src/libs/renderer/src/utils/animation-priority.js +258 -0
  1107. package/src/libs/renderer/src/utils/animation-utils.d.ts +159 -0
  1108. package/src/libs/renderer/src/utils/animation-utils.js +323 -0
  1109. package/src/libs/renderer/src/utils/lru-cache.d.ts +34 -0
  1110. package/src/libs/renderer/src/utils/lru-cache.js +72 -0
  1111. package/src/libs/renderer/src/viewport/index.d.ts +1 -0
  1112. package/src/libs/renderer/src/viewport/index.js +6 -0
  1113. package/src/libs/renderer/src/viewport/viewport-controller.d.ts +198 -0
  1114. package/src/libs/renderer/src/viewport/viewport-controller.js +315 -0
  1115. package/src/libs/renderer/src/vnode/container-id-generator.d.ts +94 -0
  1116. package/src/libs/renderer/src/vnode/container-id-generator.js +110 -0
  1117. package/src/libs/renderer/src/vnode/foreign-object.d.ts +157 -0
  1118. package/src/libs/renderer/src/vnode/foreign-object.js +167 -0
  1119. package/src/libs/renderer/src/vnode/index.d.ts +56 -0
  1120. package/src/libs/renderer/src/vnode/index.js +78 -0
  1121. package/src/libs/renderer/src/vnode/patch.d.ts +189 -0
  1122. package/src/libs/renderer/src/vnode/patch.js +564 -0
  1123. package/src/index.js.map +0 -1
  1124. package/src/lib/dashboard-kit/dashboard.js.map +0 -1
  1125. package/src/lib/dashboard-kit/grid-binder.js.map +0 -1
  1126. package/src/lib/dashboard-kit/grid-mapping.js.map +0 -1
  1127. package/src/lib/dashboard-kit/index.js.map +0 -1
  1128. package/src/lib/dashboard-kit/styles.js.map +0 -1
  1129. package/src/lib/dashboard-kit/widgets.js.map +0 -1
  1130. package/src/lib/diagram-kit/card.js.map +0 -1
  1131. package/src/lib/diagram-kit/editing.js.map +0 -1
  1132. package/src/lib/diagram-kit/er.js.map +0 -1
  1133. package/src/lib/diagram-kit/handles.js.map +0 -1
  1134. package/src/lib/diagram-kit/index.js.map +0 -1
  1135. package/src/lib/diagram-kit/rows.js.map +0 -1
  1136. package/src/lib/diagram-kit/styles.js.map +0 -1
  1137. package/src/lib/diagram-kit/uml.js.map +0 -1
  1138. package/src/lib/diagram-kit/update.js.map +0 -1
  1139. package/src/lib/grafloria-flow-element.js.map +0 -1
  1140. package/src/lib/grafloria.js.map +0 -1
  1141. package/src/lib/load.js.map +0 -1
  1142. package/src/lib/node-type-registry.js.map +0 -1
  1143. package/src/lib/stencil-kit/builders.js.map +0 -1
  1144. package/src/lib/stencil-kit/card-builders.js.map +0 -1
  1145. package/src/lib/stencil-kit/index.js.map +0 -1
  1146. package/src/lib/stencil-kit/palette.js.map +0 -1
  1147. package/src/lib/stencil-kit/shape-data.js.map +0 -1
  1148. package/src/lib/stencil-kit/styles.js.map +0 -1
@@ -0,0 +1,1259 @@
1
+ "use strict";
2
+ // THE DOM BOUNDARY of custom-node export — the one file here that needs a browser.
3
+ //
4
+ // THE SPLIT, AND WHY
5
+ // ------------------
6
+ // `exportSvg` is pure, DOM-free and deterministic, and that is a guarantee worth more
7
+ // than the feature this file enables. So the DOM is not allowed to leak into it. The
8
+ // division is:
9
+ //
10
+ // capture-host.ts (HERE) reads live elements — getBoundingClientRect,
11
+ // getComputedStyle — and emits PLAIN DATA.
12
+ // custom-nodes.ts (pure) places that data into the export tree.
13
+ // svg-export.ts (pure) still takes only data; still runs in bare Node.
14
+ //
15
+ // Nothing in this module touches ambient `document` or `window`: every entry point
16
+ // takes the element it works on and reaches the window through `ownerDocument`. So
17
+ // importing it from an SSR bundle is harmless — it simply is never called there, and
18
+ // `exportSvg` keeps working with no capture at all.
19
+ //
20
+ // WHY TRANSCRIBE RATHER THAN SCREENSHOT
21
+ // -------------------------------------
22
+ // The tempting shortcut is `foreignObject` for everything: paste the host's HTML in
23
+ // and let the browser deal with it. But a `foreignObject` is dead weight in a PDF and
24
+ // in every standalone rasterizer — the export would look right in exactly one viewer
25
+ // and be blank in the places people actually send files.
26
+ //
27
+ // So this walks the host and transcribes what it finds into SVG primitives:
28
+ //
29
+ // inline <svg> LIFTED, element for element, with `var(--…)` resolved through
30
+ // getComputedStyle. A donut's arcs stay arcs. This is the common
31
+ // case for the dashboard kit and it is exact, not approximated.
32
+ // text emitted as <text> at its laid-out position, with the resolved
33
+ // font and fill. This is what makes a KPI's headline number — plain
34
+ // HTML, no SVG anywhere near it — survive the trip.
35
+ // boxes background fills and borders become <rect>/<line>, which is what
36
+ // draws widget cards and table rules.
37
+ //
38
+ // Beyond those three it now also transcribes the CSS paint a widget card is actually
39
+ // built from, REUSING the renderer's own paint-server model (`svg/paint-servers.ts`) so
40
+ // there is exactly one set of gradient/shadow VNode builders in the codebase:
41
+ //
42
+ // background gradient linear-/radial-gradient() → a `<linearGradient>` /
43
+ // `<radialGradient>` def (userSpaceOnUse, real pixel endpoints so
44
+ // the CSS angle is not distorted on a non-square box) that the box
45
+ // rect fills with via `url(#…)`.
46
+ // box-shadow → the `feDropShadow` filter def, applied to the box. Outer only;
47
+ // `inset` is skipped and reported.
48
+ // images <img> / background-image:url() → an `<image>`, inlined to a
49
+ // data: URI when the canvas is readable.
50
+ //
51
+ // The SAME VNode tree then feeds the SVG serializer, the PDF painter and `vnodeBounds`,
52
+ // all of which already understand these element types. The honest per-format story: SVG
53
+ // and resvg render them faithfully; PDF flattens a gradient to a solid stop (with a
54
+ // warning), omits the shadow blur (the box still draws), and CANNOT draw an image at all
55
+ // (no image XObject) — so an image is reported as a PDF fidelity risk here rather than
56
+ // vanishing silently.
57
+ //
58
+ // Two more things it transcribes:
59
+ //
60
+ // pseudo-elements `::before` / `::after` boxes, read via getComputedStyle(el, '::…').
61
+ // A pseudo has NO element to getBoundingClientRect(), so its box is
62
+ // DERIVED: explicit width/height + position offsets for an absolute
63
+ // pseudo; the origin's content start (border + padding in) for a
64
+ // static one. Quoted `content` strings go through the SAME text
65
+ // emission as real text nodes (so text-transform etc. hold);
66
+ // attr()/counter()/url() content is skipped and reported; a painted
67
+ // pseudo whose box cannot be derived is reported, never guessed.
68
+ // clipping `overflow: hidden|clip|auto|scroll` wraps the element's
69
+ // DESCENDANTS in a `<g clip-path="url(#…)">` whose `<clipPath>` is
70
+ // the (rounded) border box, so a chart or image inside a rounded
71
+ // card cannot bleed past the corners; CSS `clip-path` basic shapes
72
+ // (inset/circle/ellipse/polygon) wrap the element ITSELF the same
73
+ // way; path()/url() clip-paths are skipped and reported (content
74
+ // exports unclipped, not wrong). Nested clips compose as nested
75
+ // groups. SVG/resvg honour clipPath faithfully; the PDF painter does
76
+ // not yet apply clips, which is reported as a fidelity risk.
77
+ // Transforms remain out of scope and, when they carry paint we cannot see, degrade to
78
+ // the reported fidelity fallbacks.
79
+ Object.defineProperty(exports, "__esModule", { value: true });
80
+ exports.IMAGE_NOT_INLINED_WARNING = exports.IMAGE_PDF_WARNING = void 0;
81
+ exports.captureCustomNodeHost = captureCustomNodeHost;
82
+ exports.stripResolvedImageWarnings = stripResolvedImageWarnings;
83
+ const custom_nodes_1 = require("./custom-nodes");
84
+ const paint_servers_1 = require("../svg/paint-servers");
85
+ const ELEMENT_NODE = 1;
86
+ const TEXT_NODE = 3;
87
+ /** Presentation properties lifted off computed style when transcribing inline SVG. */
88
+ const SVG_PAINT_PROPS = [
89
+ ['fill', 'fill'],
90
+ ['fill-opacity', 'fillOpacity'],
91
+ ['stroke', 'stroke'],
92
+ ['stroke-width', 'strokeWidth'],
93
+ ['stroke-opacity', 'strokeOpacity'],
94
+ ['stroke-linecap', 'strokeLinecap'],
95
+ ['stroke-linejoin', 'strokeLinejoin'],
96
+ ['stroke-dasharray', 'strokeDasharray'],
97
+ ['opacity', 'opacity'],
98
+ ];
99
+ /**
100
+ * Text properties — applied ONLY to elements that can render glyphs. `getComputedStyle`
101
+ * happily reports a font for every `<path>` and `<line>` in the document, and writing
102
+ * those out would add a `font-family` to several hundred marks that can never draw a
103
+ * character. That is pure file weight.
104
+ */
105
+ const SVG_TEXT_PROPS = [
106
+ ['font-family', 'fontFamily'],
107
+ ['font-size', 'fontSize'],
108
+ ['font-weight', 'fontWeight'],
109
+ ['letter-spacing', 'letterSpacing'],
110
+ ['text-anchor', 'textAnchor'],
111
+ ];
112
+ const TEXT_ELEMENTS = new Set(['text', 'tspan', 'textPath']);
113
+ /** Attributes that must NOT be copied verbatim — they are re-derived or meaningless here. */
114
+ const SKIP_ATTRS = new Set(['class', 'style', 'xmlns']);
115
+ /** Geometry-free SVG elements we never need to emit. */
116
+ const SVG_IGNORED = new Set(['title', 'desc', 'metadata', 'script', 'style']);
117
+ /**
118
+ * Capture ONE custom node's host into plain data.
119
+ *
120
+ * Never throws: an export must not be taken down by a host in a state we did not
121
+ * anticipate. A failed capture degrades to `fidelity: 'empty'`, which the pure layer
122
+ * turns into a marked box and a warning — the whole point being that a blank is never
123
+ * silent.
124
+ */
125
+ function captureCustomNodeHost(id, rect, host, options = {}) {
126
+ var _a, _b, _c, _d;
127
+ try {
128
+ const el = host;
129
+ const win = (_a = el === null || el === void 0 ? void 0 : el.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;
130
+ if (!el || !win || typeof win.getComputedStyle !== 'function') {
131
+ return { id, rect, fidelity: 'empty' };
132
+ }
133
+ const hostRect = el.getBoundingClientRect();
134
+ // The html layer carries the camera as a CSS transform, so client rects come back
135
+ // multiplied by the zoom. `offsetWidth` is layout space and is not, so their ratio
136
+ // IS the zoom — no need to be told it.
137
+ const inferred = hostRect.width > 0 && host.offsetWidth
138
+ ? hostRect.width / host.offsetWidth
139
+ : 1;
140
+ const scale = options.scale && options.scale > 0 ? options.scale : inferred > 0 ? inferred : 1;
141
+ const ctx = {
142
+ win,
143
+ originX: hostRect.left,
144
+ originY: hostRect.top,
145
+ scale,
146
+ out: [],
147
+ budget: (_b = options.maxElements) !== null && _b !== void 0 ? _b : 4000,
148
+ sawUncapturable: false,
149
+ warnings: [],
150
+ emittedDefs: new Set(),
151
+ // jsdom does not implement getComputedStyle(el, '::before') — it LOGS a
152
+ // not-implemented error (it does not throw) and returns the element's own style,
153
+ // once per call. Probing it per element would print hundreds of identical lines
154
+ // into every jsdom-hosted test run for a fact known up front: jsdom announces
155
+ // itself in the UA. Real browsers are untouched.
156
+ pseudoUnsupported: /jsdom/i.test((_d = (_c = win.navigator) === null || _c === void 0 ? void 0 : _c.userAgent) !== null && _d !== void 0 ? _d : ''),
157
+ };
158
+ walk(el, ctx, ctx.out);
159
+ if (ctx.out.length === 0)
160
+ return { id, rect, fidelity: 'empty' };
161
+ const warning = ctx.warnings.length ? dedupe(ctx.warnings).join(' ') : undefined;
162
+ return warning
163
+ ? { id, rect, fidelity: 'vector', content: ctx.out, warning }
164
+ : { id, rect, fidelity: 'vector', content: ctx.out };
165
+ }
166
+ catch (_e) {
167
+ return { id, rect, fidelity: 'empty' };
168
+ }
169
+ }
170
+ /** Collapse repeated caveats — one gradient warning for a board of twelve is enough. */
171
+ function dedupe(values) {
172
+ return [...new Set(values)];
173
+ }
174
+ /** Client-space rect → host-local layout rect. */
175
+ function localRect(ctx, r) {
176
+ return {
177
+ x: (r.left - ctx.originX) / ctx.scale,
178
+ y: (r.top - ctx.originY) / ctx.scale,
179
+ width: r.width / ctx.scale,
180
+ height: r.height / ctx.scale,
181
+ };
182
+ }
183
+ function isTransparent(color) {
184
+ if (!color)
185
+ return true;
186
+ const c = color.trim().toLowerCase();
187
+ if (c === 'transparent' || c === 'none')
188
+ return true;
189
+ // rgba(…, 0) — a zero alpha paints nothing.
190
+ const m = /^rgba?\(([^)]+)\)$/.exec(c);
191
+ if (m) {
192
+ const parts = m[1].split(',').map(s => parseFloat(s.trim()));
193
+ if (parts.length === 4 && !(parts[3] > 0))
194
+ return true;
195
+ }
196
+ return false;
197
+ }
198
+ const px = (value) => {
199
+ const v = parseFloat(value);
200
+ return Number.isFinite(v) ? v : 0;
201
+ };
202
+ function walk(el, ctx, sink) {
203
+ var _a, _b, _c, _d, _e;
204
+ if (ctx.budget-- <= 0)
205
+ return;
206
+ const style = ctx.win.getComputedStyle(el);
207
+ if (style['display'] === 'none' || style['visibility'] === 'hidden')
208
+ return;
209
+ // Fully transparent chrome — the kit's hover-revealed resize handle is exactly this.
210
+ // It is not on screen, so it must not be in the file.
211
+ if (parseFloat((_a = style['opacity']) !== null && _a !== void 0 ? _a : '1') === 0)
212
+ return;
213
+ if (el.localName === 'svg' && el.namespaceURI !== 'http://www.w3.org/1999/xhtml') {
214
+ liftSvg(el, ctx, sink);
215
+ return; // lifted whole — never descend, the transcription owns the subtree
216
+ }
217
+ const rect = localRect(ctx, el.getBoundingClientRect());
218
+ const hasBox = rect.width > 0 && rect.height > 0;
219
+ // Clipping. CSS `clip-path` clips the element ITSELF (own background included);
220
+ // `overflow` clips only its DESCENDANTS. Each becomes a detached sink that is
221
+ // wrapped in a `<g clip-path="url(#…)">` at the end — IF anything painted into it,
222
+ // so an empty clip leaves neither a group nor a def behind. Nested clips compose
223
+ // naturally: an inner clipped element builds its own group inside the outer one.
224
+ const selfClip = hasBox ? clipPathShapeFor((_c = (_b = style['clip-path']) !== null && _b !== void 0 ? _b : style['clipPath']) !== null && _c !== void 0 ? _c : '', rect, ctx) : null;
225
+ const overflowClip = hasBox ? overflowClipFor(style, rect) : null;
226
+ const ownSink = selfClip ? [] : sink;
227
+ const childSink = overflowClip ? [] : ownSink;
228
+ if (hasBox) {
229
+ emitBox(style, rect, ctx, ownSink);
230
+ // An <img> paints its bitmap; that is its whole content and it has no children.
231
+ if (el.localName === 'img')
232
+ emitImage(el, rect, ctx, el.getAttribute('src'), ownSink);
233
+ }
234
+ // Does the origin have flow content of its own? A static ::after flows AFTER it,
235
+ // at a position this transcriber cannot measure — that case warns instead of guessing.
236
+ let hasFlowContent = false;
237
+ for (let i = 0; i < el.childNodes.length; i++) {
238
+ const child = el.childNodes[i];
239
+ if (child.nodeType === ELEMENT_NODE ||
240
+ (child.nodeType === TEXT_NODE && ((_d = child.nodeValue) !== null && _d !== void 0 ? _d : '').trim() !== '')) {
241
+ hasFlowContent = true;
242
+ break;
243
+ }
244
+ }
245
+ const beforeExists = hasBox ? emitPseudo(el, style, rect, '::before', ctx, childSink, false) : false;
246
+ for (let i = 0; i < el.childNodes.length; i++) {
247
+ const child = el.childNodes[i];
248
+ if (child.nodeType === ELEMENT_NODE) {
249
+ walk(child, ctx, childSink);
250
+ }
251
+ else if (child.nodeType === TEXT_NODE && ((_e = child.nodeValue) !== null && _e !== void 0 ? _e : '').trim() !== '') {
252
+ emitText(el, child, style, ctx, childSink);
253
+ }
254
+ }
255
+ if (hasBox)
256
+ emitPseudo(el, style, rect, '::after', ctx, childSink, hasFlowContent || beforeExists);
257
+ if (overflowClip && childSink.length > 0) {
258
+ pushDef(ctx, overflowClip.id, () => overflowClip.def);
259
+ ownSink.push({
260
+ type: 'g',
261
+ props: { 'clip-path': `url(#${overflowClip.id})` },
262
+ children: childSink,
263
+ });
264
+ }
265
+ if (selfClip && ownSink.length > 0) {
266
+ pushDef(ctx, selfClip.id, () => selfClip.def);
267
+ sink.push({
268
+ type: 'g',
269
+ props: { 'clip-path': `url(#${selfClip.id})` },
270
+ children: ownSink,
271
+ });
272
+ }
273
+ }
274
+ /**
275
+ * Background fill and borders → `<rect>` / `<line>`, pushed into `sink` (the display
276
+ * list of whatever clip scope the element lives in). Also used for a pseudo-element's
277
+ * derived box — the style record is then the PSEUDO's computed style, which is what
278
+ * makes gradients/shadows/borders on a `::before` ride the exact same code.
279
+ */
280
+ function emitBox(style, rect, ctx, sink) {
281
+ var _a, _b, _c, _d, _e, _f, _g, _h;
282
+ const bg = (_b = (_a = style['background-color']) !== null && _a !== void 0 ? _a : style['backgroundColor']) !== null && _b !== void 0 ? _b : '';
283
+ const radius = px((_d = (_c = style['border-top-left-radius']) !== null && _c !== void 0 ? _c : style['borderTopLeftRadius']) !== null && _d !== void 0 ? _d : '0');
284
+ // A CSS `background-image` is either a gradient (→ paint-server fill) or a bitmap
285
+ // (→ an <image> behind the content). Its computed value keeps the layers we authored.
286
+ const bgImage = (_f = (_e = style['background-image']) !== null && _e !== void 0 ? _e : style['backgroundImage']) !== null && _f !== void 0 ? _f : '';
287
+ const gradientFill = gradientFillFor(bgImage, rect, ctx);
288
+ // The box's fill: a gradient wins over a flat colour (CSS paints the image over the
289
+ // colour), and either one is what a drop shadow is cast from.
290
+ const fill = gradientFill !== null && gradientFill !== void 0 ? gradientFill : (isTransparent(bg) ? undefined : bg);
291
+ const shadowRef = shadowFilterFor((_h = (_g = style['box-shadow']) !== null && _g !== void 0 ? _g : style['boxShadow']) !== null && _h !== void 0 ? _h : '', ctx);
292
+ if (fill !== undefined) {
293
+ sink.push({
294
+ type: 'rect',
295
+ props: Object.assign(Object.assign(Object.assign({ x: round(rect.x), y: round(rect.y), width: round(rect.width), height: round(rect.height) }, (radius > 0 ? { rx: round(radius) } : {})), { fill }), (shadowRef ? { filter: shadowRef } : {})),
296
+ children: [],
297
+ });
298
+ }
299
+ else if (shadowRef) {
300
+ // A shadow with nothing to cast it from: feDropShadow blurs the source graphic's
301
+ // alpha, and a box with no fill has none. Report rather than emit a shadow of nothing.
302
+ ctx.warnings.push('a box-shadow on a widget with no painted background was omitted.');
303
+ }
304
+ // A bitmap background sits behind the element's content — emitted here, before the
305
+ // children the walk descends into next.
306
+ emitBackgroundImage(bgImage, rect, ctx, sink);
307
+ // Borders. A uniform box gets one stroked rect; anything else (a table's row rule is
308
+ // a bottom border only) gets a line per painted side, which is the only way those
309
+ // survive at all.
310
+ const sides = ['top', 'right', 'bottom', 'left'].map(side => {
311
+ var _a, _b, _c;
312
+ return ({
313
+ side,
314
+ width: px((_a = style[`border-${side}-width`]) !== null && _a !== void 0 ? _a : ''),
315
+ color: (_b = style[`border-${side}-color`]) !== null && _b !== void 0 ? _b : '',
316
+ style: (_c = style[`border-${side}-style`]) !== null && _c !== void 0 ? _c : 'none',
317
+ });
318
+ });
319
+ const painted = sides.filter(s => s.width > 0 && s.style !== 'none' && !isTransparent(s.color));
320
+ if (painted.length === 0)
321
+ return;
322
+ const uniform = painted.length === 4 &&
323
+ painted.every(s => s.width === painted[0].width && s.color === painted[0].color);
324
+ if (uniform) {
325
+ const w = painted[0].width;
326
+ // A CSS border sits INSIDE the box; an SVG stroke straddles the path. Inset by half.
327
+ sink.push({
328
+ type: 'rect',
329
+ props: Object.assign(Object.assign({ x: round(rect.x + w / 2), y: round(rect.y + w / 2), width: round(Math.max(0, rect.width - w)), height: round(Math.max(0, rect.height - w)) }, (radius > 0 ? { rx: round(Math.max(0, radius - w / 2)) } : {})), { fill: 'none', stroke: painted[0].color, 'stroke-width': round(w) }),
330
+ children: [],
331
+ });
332
+ return;
333
+ }
334
+ for (const s of painted) {
335
+ const inset = s.width / 2;
336
+ const [x1, y1, x2, y2] = s.side === 'top'
337
+ ? [rect.x, rect.y + inset, rect.x + rect.width, rect.y + inset]
338
+ : s.side === 'bottom'
339
+ ? [rect.x, rect.y + rect.height - inset, rect.x + rect.width, rect.y + rect.height - inset]
340
+ : s.side === 'left'
341
+ ? [rect.x + inset, rect.y, rect.x + inset, rect.y + rect.height]
342
+ : [rect.x + rect.width - inset, rect.y, rect.x + rect.width - inset, rect.y + rect.height];
343
+ sink.push({
344
+ type: 'line',
345
+ props: {
346
+ x1: round(x1),
347
+ y1: round(y1),
348
+ x2: round(x2),
349
+ y2: round(y2),
350
+ stroke: s.color,
351
+ 'stroke-width': round(s.width),
352
+ },
353
+ children: [],
354
+ });
355
+ }
356
+ }
357
+ /**
358
+ * One run of text → `<text>`.
359
+ *
360
+ * The position comes from a Range over the text node, which is the TIGHT laid-out box
361
+ * — the parent's box would be the whole card for a title. SVG's `y` is the baseline
362
+ * and CSS gives us a line box, so the baseline is derived from the box centre and the
363
+ * font size; that is an approximation, but it is the same one every HTML→SVG
364
+ * transcriber makes and it is visually indistinguishable for single-line runs.
365
+ */
366
+ function emitText(parent, textNode, style, ctx, sink) {
367
+ var _a, _b, _c;
368
+ const raw = ((_a = textNode.nodeValue) !== null && _a !== void 0 ? _a : '').replace(/\s+/g, ' ').trim();
369
+ if (raw === '')
370
+ return;
371
+ const doc = ((_b = parent.ownerDocument) !== null && _b !== void 0 ? _b : null);
372
+ let box = null;
373
+ try {
374
+ const range = (_c = doc === null || doc === void 0 ? void 0 : doc.createRange) === null || _c === void 0 ? void 0 : _c.call(doc);
375
+ if (range) {
376
+ range.selectNodeContents(textNode);
377
+ const r = range.getBoundingClientRect();
378
+ if (r && r.width >= 0 && r.height > 0)
379
+ box = r;
380
+ }
381
+ }
382
+ catch (_d) {
383
+ /* fall through to the parent's box */
384
+ }
385
+ if (!box)
386
+ box = parent.getBoundingClientRect();
387
+ const rect = localRect(ctx, box);
388
+ if (!(rect.height > 0))
389
+ return;
390
+ pushTextVNode(raw, rect, style, ctx, sink);
391
+ }
392
+ /**
393
+ * The one place a run of text becomes a `<text>` VNode. Real text nodes arrive here
394
+ * with their Range-measured box; pseudo-element `content` strings arrive with their
395
+ * DERIVED box — and because both go through this, text-transform, colour, tracking and
396
+ * the baseline approximation cannot drift between the two.
397
+ */
398
+ function pushTextVNode(raw, rect, style, ctx, sink) {
399
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
400
+ const collapsed = raw.replace(/\s+/g, ' ').trim();
401
+ if (collapsed === '')
402
+ return;
403
+ // `text-transform` is applied by the RENDERER, not stored in the text node — the DOM
404
+ // still says "Total revenue" while the screen says "TOTAL REVENUE". Copying nodeValue
405
+ // verbatim is how an export comes out subtly but visibly wrong on every widget title.
406
+ const content = applyTextTransform(collapsed, (_a = style['text-transform']) !== null && _a !== void 0 ? _a : style['textTransform']);
407
+ const fontSize = px((_c = (_b = style['font-size']) !== null && _b !== void 0 ? _b : style['fontSize']) !== null && _c !== void 0 ? _c : '12') / 1;
408
+ const align = ((_e = (_d = style['text-align']) !== null && _d !== void 0 ? _d : style['textAlign']) !== null && _e !== void 0 ? _e : 'start').toLowerCase();
409
+ const anchor = align === 'center' ? 'middle' : align === 'right' || align === 'end' ? 'end' : 'start';
410
+ const x = anchor === 'middle' ? rect.x + rect.width / 2 : anchor === 'end' ? rect.x + rect.width : rect.x;
411
+ // Alphabetic baseline ≈ 0.36em below the centre of the line box for typical faces.
412
+ const y = rect.y + rect.height / 2 + fontSize * 0.36;
413
+ const color = (_f = style['color']) !== null && _f !== void 0 ? _f : '#000';
414
+ const tracking = px((_h = (_g = style['letter-spacing']) !== null && _g !== void 0 ? _g : style['letterSpacing']) !== null && _h !== void 0 ? _h : '');
415
+ sink.push({
416
+ type: 'text',
417
+ props: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ x: round(x), y: round(y) }, (anchor !== 'start' ? { 'text-anchor': anchor } : {})), { 'font-family': (_k = (_j = style['font-family']) !== null && _j !== void 0 ? _j : style['fontFamily']) !== null && _k !== void 0 ? _k : 'sans-serif', 'font-size': round(fontSize) }), (normalWeight(style) ? {} : { 'font-weight': (_l = style['font-weight']) !== null && _l !== void 0 ? _l : style['fontWeight'] })), (tracking ? { 'letter-spacing': round(tracking) } : {})), { fill: color, textContent: content }),
418
+ children: [],
419
+ });
420
+ }
421
+ /** What the renderer does to the text on the way to the screen. */
422
+ function applyTextTransform(text, transform) {
423
+ switch ((transform !== null && transform !== void 0 ? transform : '').toLowerCase()) {
424
+ case 'uppercase':
425
+ return text.toUpperCase();
426
+ case 'lowercase':
427
+ return text.toLowerCase();
428
+ case 'capitalize':
429
+ return text.replace(/(^|\s)(\S)/g, (_, lead, ch) => lead + ch.toUpperCase());
430
+ default:
431
+ return text;
432
+ }
433
+ }
434
+ function normalWeight(style) {
435
+ var _a, _b;
436
+ const w = String((_b = (_a = style['font-weight']) !== null && _a !== void 0 ? _a : style['fontWeight']) !== null && _b !== void 0 ? _b : '400');
437
+ return w === '400' || w === 'normal';
438
+ }
439
+ /**
440
+ * Lift an inline `<svg>` into the display list.
441
+ *
442
+ * This is the fidelity win: the kit draws every chart as inline SVG, so a donut's arcs,
443
+ * a bar's rects and a line's polylines come across as THEMSELVES — real vector, exact
444
+ * geometry, valid in a PDF. The two things that must happen on the way:
445
+ *
446
+ * 1. the viewBox fit is baked into a transform (see `viewBoxTransform`), because no
447
+ * target downstream of here implements nested-`<svg>` viewBox mapping;
448
+ * 2. every paint is read from COMPUTED style, which is what resolves the kit's
449
+ * `var(--axdb-grid)` / `var(--axdb-ink)` into literal colours. Copying attributes
450
+ * verbatim would carry `var(…)` into the file and break the export's standing
451
+ * "no unresolved custom properties" guarantee — the values would render black, or
452
+ * not at all, outside a browser.
453
+ */
454
+ function liftSvg(el, ctx, sink) {
455
+ var _a;
456
+ const rect = localRect(ctx, el.getBoundingClientRect());
457
+ if (!(rect.width > 0) || !(rect.height > 0))
458
+ return;
459
+ const viewBox = parseViewBox(el.getAttribute('viewBox'));
460
+ const fit = viewBox
461
+ ? (0, custom_nodes_1.viewBoxTransform)(viewBox, rect, (_a = el.getAttribute('preserveAspectRatio')) !== null && _a !== void 0 ? _a : 'xMidYMid meet')
462
+ : '';
463
+ const children = [];
464
+ for (let i = 0; i < el.childNodes.length; i++) {
465
+ const child = el.childNodes[i];
466
+ if (child.nodeType !== ELEMENT_NODE)
467
+ continue;
468
+ const vnode = transcribeSvgElement(child, ctx);
469
+ if (vnode)
470
+ children.push(vnode);
471
+ }
472
+ if (children.length === 0)
473
+ return;
474
+ const transform = [`translate(${round(rect.x)} ${round(rect.y)})`, fit].filter(Boolean).join(' ');
475
+ sink.push({
476
+ type: 'g',
477
+ props: { transform, className: 'grafloria-lifted-svg' },
478
+ children,
479
+ });
480
+ }
481
+ function parseViewBox(raw) {
482
+ if (!raw)
483
+ return null;
484
+ const parts = raw.trim().split(/[\s,]+/).map(Number);
485
+ if (parts.length !== 4 || !parts.every(Number.isFinite))
486
+ return null;
487
+ return { x: parts[0], y: parts[1], width: parts[2], height: parts[3] };
488
+ }
489
+ function transcribeSvgElement(el, ctx) {
490
+ var _a, _b, _c;
491
+ if (ctx.budget-- <= 0)
492
+ return null;
493
+ if (SVG_IGNORED.has(el.localName))
494
+ return null;
495
+ const style = ctx.win.getComputedStyle(el);
496
+ if (style['display'] === 'none' || style['visibility'] === 'hidden')
497
+ return null;
498
+ const props = {};
499
+ // Geometry and every other authored attribute, verbatim.
500
+ for (let i = 0; i < el.attributes.length; i++) {
501
+ const attr = el.attributes[i];
502
+ if (SKIP_ATTRS.has(attr.name))
503
+ continue;
504
+ props[attr.name] = attr.value;
505
+ }
506
+ // Paint, RESOLVED — this is what turns `var(--axdb-grid)` into a colour.
507
+ const wanted = TEXT_ELEMENTS.has(el.localName)
508
+ ? [...SVG_PAINT_PROPS, ...SVG_TEXT_PROPS]
509
+ : SVG_PAINT_PROPS;
510
+ for (const [attr, prop] of wanted) {
511
+ const value = (_a = style[attr]) !== null && _a !== void 0 ? _a : style[prop];
512
+ if (value === undefined || value === '' || value === 'normal')
513
+ continue;
514
+ props[attr] = value;
515
+ }
516
+ const children = [];
517
+ let text;
518
+ for (let i = 0; i < el.childNodes.length; i++) {
519
+ const child = el.childNodes[i];
520
+ if (child.nodeType === ELEMENT_NODE) {
521
+ const vnode = transcribeSvgElement(child, ctx);
522
+ if (vnode)
523
+ children.push(vnode);
524
+ }
525
+ else if (child.nodeType === TEXT_NODE && ((_b = child.nodeValue) !== null && _b !== void 0 ? _b : '').trim() !== '') {
526
+ text = (text !== null && text !== void 0 ? text : '') + ((_c = child.nodeValue) !== null && _c !== void 0 ? _c : '');
527
+ }
528
+ }
529
+ if (text !== undefined && children.length === 0)
530
+ props['textContent'] = text;
531
+ return { type: el.localName, props, children };
532
+ }
533
+ // ---------------------------------------------------------------------------
534
+ // CSS paint transcription — gradients, shadows, images.
535
+ //
536
+ // These read COMPUTED style values (rgb()/rgba() colours, px lengths, resolved angles),
537
+ // so the parsing is deliberately narrow: it handles the forms a browser actually emits
538
+ // from getComputedStyle, not the full authoring grammar. Everything reuses the renderer's
539
+ // own paint-server VNode builders (`svg/paint-servers.ts`) so the def shapes live in one
540
+ // place. Def dedup is by the stable `paintDefId` hash: identical paint → one def.
541
+ // ---------------------------------------------------------------------------
542
+ /**
543
+ * The capture-time verdict on an external image, EXPORTED because the async export path
544
+ * revises it: `await export(…)` fetches external URLs (environment fetch, then
545
+ * `ExportOptions.assetFetcher`) and STRIPS this warning from any capture whose images it
546
+ * embedded — see `stripResolvedImageWarnings`. The synchronous entry points cannot fetch,
547
+ * so for them this text is the whole truth, and it names the way out.
548
+ */
549
+ exports.IMAGE_PDF_WARNING = 'a widget image references an EXTERNAL URL — a synchronous export keeps the link (the ' +
550
+ 'SVG renders online, but a PDF cannot fetch a URL, so it will be MISSING from a PDF ' +
551
+ 'export). `await export(…)` embeds the image when its server allows CORS or when ' +
552
+ 'ExportOptions.assetFetcher is supplied.';
553
+ /** Companion caveat from `resolveImageHref` — same lifecycle as {@link IMAGE_PDF_WARNING}. */
554
+ exports.IMAGE_NOT_INLINED_WARNING = 'an image could not be inlined (cross-origin or unloaded) — the export references it ' +
555
+ 'externally and is not fully self-contained.';
556
+ /**
557
+ * Remove the two external-image caveats from a capture's warning — called by the async
558
+ * export AFTER it embedded every external image the capture held, at which point both
559
+ * sentences assert a problem that no longer exists (the same defect, mirrored, as
560
+ * staying silent about one that does). Returns undefined when nothing else remains.
561
+ */
562
+ function stripResolvedImageWarnings(warning) {
563
+ if (!warning)
564
+ return warning;
565
+ const stripped = warning
566
+ .replace(exports.IMAGE_PDF_WARNING, '')
567
+ .replace(exports.IMAGE_NOT_INLINED_WARNING, '')
568
+ .replace(/\s+/g, ' ')
569
+ .trim();
570
+ return stripped === '' ? undefined : stripped;
571
+ }
572
+ /** Register a def VNode once per capture; identical defs (same id) collapse to one. */
573
+ function pushDef(ctx, id, build) {
574
+ if (ctx.emittedDefs.has(id))
575
+ return;
576
+ ctx.emittedDefs.add(id);
577
+ ctx.out.push(build());
578
+ }
579
+ /** Split on TOP-LEVEL commas only — commas inside `rgb(…)` / nested `()` are left alone. */
580
+ function splitTopLevel(value) {
581
+ const out = [];
582
+ let depth = 0;
583
+ let cur = '';
584
+ for (const ch of value) {
585
+ if (ch === '(')
586
+ depth++;
587
+ else if (ch === ')')
588
+ depth--;
589
+ if (ch === ',' && depth === 0) {
590
+ out.push(cur);
591
+ cur = '';
592
+ }
593
+ else {
594
+ cur += ch;
595
+ }
596
+ }
597
+ if (cur.trim() !== '')
598
+ out.push(cur);
599
+ return out.map(s => s.trim());
600
+ }
601
+ const COLOR_TOKEN = /(rgba?\([^)]*\)|hsla?\([^)]*\)|#[0-9a-fA-F]{3,8})/;
602
+ /** Does an argument carry a colour (→ a stop), or is it a direction/shape config? */
603
+ function looksLikeColor(arg) {
604
+ return COLOR_TOKEN.test(arg);
605
+ }
606
+ /** The one flat colour that best stands in — the fill a box wears when a gradient is present. */
607
+ function gradientFillFor(bgImage, rect, ctx) {
608
+ const grad = parseGradient(bgImage);
609
+ if (!grad)
610
+ return undefined;
611
+ for (const c of grad.caveats)
612
+ ctx.warnings.push(c);
613
+ if (grad.kind === 'linear') {
614
+ const e = linearEndpoints(grad.angle, rect);
615
+ const id = (0, paint_servers_1.paintDefId)(Object.assign(Object.assign({ k: 'l' }, e), { stops: grad.stops }));
616
+ pushDef(ctx, id, () => (0, paint_servers_1.buildLinearGradientUserSpace)(id, Object.assign(Object.assign({}, e), { stops: grad.stops })));
617
+ return `url(#${id})`;
618
+ }
619
+ const g = radialGeometry(grad, rect);
620
+ const id = (0, paint_servers_1.paintDefId)(Object.assign(Object.assign({ k: 'r' }, g), { stops: grad.stops }));
621
+ pushDef(ctx, id, () => (0, paint_servers_1.buildRadialGradientUserSpace)(id, Object.assign(Object.assign({}, g), { stops: grad.stops })));
622
+ return `url(#${id})`;
623
+ }
624
+ /** Parse a computed `background-image` gradient. Returns null for a bitmap or `none`. */
625
+ function parseGradient(bgImage) {
626
+ const raw = (bgImage !== null && bgImage !== void 0 ? bgImage : '').trim();
627
+ if (!raw || raw === 'none')
628
+ return null;
629
+ const layers = splitTopLevel(raw);
630
+ const caveats = [];
631
+ if (layers.length > 1)
632
+ caveats.push('only the first of multiple background-image layers was exported.');
633
+ const m = /^(repeating-)?(linear|radial)-gradient\(([\s\S]*)\)$/i.exec(layers[0]);
634
+ if (!m)
635
+ return null;
636
+ if (m[1])
637
+ caveats.push('a repeating gradient was exported as a single non-repeating gradient.');
638
+ const kind = m[2].toLowerCase();
639
+ const args = splitTopLevel(m[3]);
640
+ if (args.length === 0)
641
+ return null;
642
+ let angle = 180; // CSS default direction is `to bottom`
643
+ let center = null;
644
+ let stopArgs = args;
645
+ if (!looksLikeColor(args[0])) {
646
+ if (kind === 'linear')
647
+ angle = parseAngle(args[0]);
648
+ else
649
+ center = parseRadialCenter(args[0]);
650
+ stopArgs = args.slice(1);
651
+ }
652
+ const stops = parseStops(stopArgs);
653
+ if (stops.length < 2)
654
+ return null;
655
+ return { kind, angle, center, stops, caveats };
656
+ }
657
+ /** A CSS gradient angle/side → degrees (0=up, 90=right, clockwise). */
658
+ function parseAngle(token) {
659
+ const t = token.trim().toLowerCase();
660
+ const m = /^(-?[\d.]+)(deg|grad|rad|turn)?$/.exec(t);
661
+ if (m) {
662
+ const v = parseFloat(m[1]);
663
+ switch (m[2]) {
664
+ case 'rad':
665
+ return (v * 180) / Math.PI;
666
+ case 'grad':
667
+ return v * 0.9;
668
+ case 'turn':
669
+ return v * 360;
670
+ default:
671
+ return v;
672
+ }
673
+ }
674
+ if (t.startsWith('to ')) {
675
+ const sides = new Set(t.slice(3).trim().split(/\s+/));
676
+ const top = sides.has('top');
677
+ const bottom = sides.has('bottom');
678
+ const left = sides.has('left');
679
+ const right = sides.has('right');
680
+ // Corner directions are approximated by their 45° diagonal — exact CSS corner angles
681
+ // depend on the box aspect ratio, which is a refinement not worth its complexity here.
682
+ if (top && right)
683
+ return 45;
684
+ if (bottom && right)
685
+ return 135;
686
+ if (bottom && left)
687
+ return 225;
688
+ if (top && left)
689
+ return 315;
690
+ if (top)
691
+ return 0;
692
+ if (right)
693
+ return 90;
694
+ if (left)
695
+ return 270;
696
+ return 180; // bottom
697
+ }
698
+ return 180;
699
+ }
700
+ /** Endpoints for a linear gradient, in host-local pixel space (userSpaceOnUse). */
701
+ function linearEndpoints(angleDeg, rect) {
702
+ const th = (angleDeg * Math.PI) / 180;
703
+ const s = Math.sin(th);
704
+ const c = Math.cos(th);
705
+ const w = rect.width;
706
+ const h = rect.height;
707
+ const cx = rect.x + w / 2;
708
+ const cy = rect.y + h / 2;
709
+ // The gradient line runs through the centre and spans corner-to-corner.
710
+ const len = Math.abs(w * s) + Math.abs(h * c);
711
+ // y is DOWN in SVG, so the "to top" direction (θ=0) is (0,-1): end = centre + (s,-c)·len/2.
712
+ return {
713
+ x1: round(cx - (s * len) / 2),
714
+ y1: round(cy + (c * len) / 2),
715
+ x2: round(cx + (s * len) / 2),
716
+ y2: round(cy - (c * len) / 2),
717
+ };
718
+ }
719
+ /** Centre + radius for a radial gradient, host-local pixels. Default: centre, farthest-corner. */
720
+ function radialGeometry(grad, rect) {
721
+ var _a, _b, _c, _d;
722
+ const fx = (_b = (_a = grad.center) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 0.5;
723
+ const fy = (_d = (_c = grad.center) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0.5;
724
+ const cx = rect.x + rect.width * fx;
725
+ const cy = rect.y + rect.height * fy;
726
+ // Default ending shape/size is farthest-corner: the max distance from the centre to any
727
+ // of the box's four corners.
728
+ const dx = Math.max(cx - rect.x, rect.x + rect.width - cx);
729
+ const dy = Math.max(cy - rect.y, rect.y + rect.height - cy);
730
+ return { cx: round(cx), cy: round(cy), r: round(Math.hypot(dx, dy)) };
731
+ }
732
+ /** `circle at 25% 75%` / `at center` → the centre as 0–1 fractions, or null for default. */
733
+ function parseRadialCenter(config) {
734
+ var _a, _b, _c;
735
+ const at = /\bat\s+(.+)$/i.exec(config.trim());
736
+ if (!at)
737
+ return null;
738
+ const parts = at[1].trim().split(/\s+/);
739
+ const axis = (token, horizontal) => {
740
+ const t = token.toLowerCase();
741
+ if (t === 'center')
742
+ return 0.5;
743
+ if (t === 'left')
744
+ return 0;
745
+ if (t === 'right')
746
+ return 1;
747
+ if (t === 'top')
748
+ return 0;
749
+ if (t === 'bottom')
750
+ return 1;
751
+ const pct = /^(-?[\d.]+)%$/.exec(t);
752
+ if (pct)
753
+ return parseFloat(pct[1]) / 100;
754
+ return horizontal ? 0.5 : 0.5;
755
+ };
756
+ const x = axis((_a = parts[0]) !== null && _a !== void 0 ? _a : 'center', true);
757
+ const y = axis((_c = (_b = parts[1]) !== null && _b !== void 0 ? _b : parts[0]) !== null && _c !== void 0 ? _c : 'center', false);
758
+ return { x, y };
759
+ }
760
+ /** Parse the colour-stop list, filling in unpositioned stops by even distribution. */
761
+ function parseStops(parts) {
762
+ const raw = parts.map(parseStop).filter((s) => s !== null);
763
+ if (raw.length === 0)
764
+ return [];
765
+ if (raw[0].offset == null)
766
+ raw[0].offset = 0;
767
+ if (raw[raw.length - 1].offset == null)
768
+ raw[raw.length - 1].offset = 1;
769
+ // Fill each run of unpositioned stops by interpolating between its anchored neighbours.
770
+ let i = 0;
771
+ while (i < raw.length) {
772
+ if (raw[i].offset != null) {
773
+ i++;
774
+ continue;
775
+ }
776
+ let j = i;
777
+ while (j < raw.length && raw[j].offset == null)
778
+ j++;
779
+ const prev = raw[i - 1].offset;
780
+ const next = raw[j].offset;
781
+ const gap = j - (i - 1);
782
+ for (let k = i; k < j; k++)
783
+ raw[k].offset = prev + ((next - prev) * (k - (i - 1))) / gap;
784
+ i = j;
785
+ }
786
+ return raw.map(s => (Object.assign({ offset: round(s.offset), color: s.color }, (s.opacity !== undefined ? { opacity: s.opacity } : {}))));
787
+ }
788
+ /** One `rgb(…) 40%` stop → colour + optional offset (fraction) + optional split-out alpha. */
789
+ function parseStop(part) {
790
+ const t = part.trim();
791
+ const cm = COLOR_TOKEN.exec(t);
792
+ if (!cm)
793
+ return null;
794
+ const rawColor = cm[0];
795
+ const rest = t.slice(0, cm.index) + t.slice(cm.index + rawColor.length);
796
+ const pm = /(-?[\d.]+)%/.exec(rest);
797
+ const offset = pm ? Math.max(0, Math.min(1, parseFloat(pm[1]) / 100)) : null;
798
+ return Object.assign(Object.assign({}, splitAlpha(rawColor)), { offset });
799
+ }
800
+ /** rgba(r,g,b,a<1) → { color: rgb(r,g,b), opacity: a }. Everything else passes through. */
801
+ function splitAlpha(color) {
802
+ const m = /^rgba\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)$/i.exec(color.trim());
803
+ if (m) {
804
+ const a = parseFloat(m[4]);
805
+ if (a < 1)
806
+ return { color: `rgb(${m[1]}, ${m[2]}, ${m[3]})`, opacity: a };
807
+ return { color: `rgb(${m[1]}, ${m[2]}, ${m[3]})` };
808
+ }
809
+ return { color };
810
+ }
811
+ // -- box-shadow --------------------------------------------------------------
812
+ /** Build the drop-shadow filter def for a box-shadow and return its `url(#…)` ref. */
813
+ function shadowFilterFor(boxShadow, ctx) {
814
+ const raw = (boxShadow !== null && boxShadow !== void 0 ? boxShadow : '').trim();
815
+ if (!raw || raw === 'none')
816
+ return undefined;
817
+ const shadows = splitTopLevel(raw);
818
+ const first = shadows[0];
819
+ if (/\binset\b/i.test(first)) {
820
+ ctx.warnings.push('an inset box-shadow was skipped — inset shadows are not exported.');
821
+ return undefined;
822
+ }
823
+ if (shadows.length > 1)
824
+ ctx.warnings.push('only the first of multiple box-shadows was exported.');
825
+ const shadow = parseShadow(first);
826
+ if (!shadow)
827
+ return undefined;
828
+ const id = (0, paint_servers_1.paintDefId)({ shadow });
829
+ pushDef(ctx, id, () => (0, paint_servers_1.buildShadowFilterVNode)(id, shadow));
830
+ return `url(#${id})`;
831
+ }
832
+ /** `rgba(…) 2px 4px 12px 0px` (computed form: colour first) → a Shadow spec, or null. */
833
+ function parseShadow(value) {
834
+ var _a;
835
+ const t = value.trim();
836
+ const cm = COLOR_TOKEN.exec(t);
837
+ const color = cm ? cm[0] : 'rgba(0, 0, 0, 0.35)';
838
+ const rest = cm ? t.slice(0, cm.index) + t.slice(cm.index + color.length) : t;
839
+ const nums = ((_a = rest.match(/-?[\d.]+px/g)) !== null && _a !== void 0 ? _a : []).map(v => parseFloat(v));
840
+ if (nums.length < 2)
841
+ return null;
842
+ const [offsetX, offsetY, blur = 0] = nums; // a 4th value is spread, which SVG has no analogue for
843
+ // CSS blur radius ≈ 2× the Gaussian std-deviation — halve it so the shadow is as soft as
844
+ // the browser paints it, matching the serializer's own `blur()` translation.
845
+ return { offsetX, offsetY, blur: round(blur / 2), color };
846
+ }
847
+ // -- images ------------------------------------------------------------------
848
+ /** `background-image: url("…")` → an `<image>` behind the element's content. */
849
+ function emitBackgroundImage(bgImage, rect, ctx, sink) {
850
+ const url = parseBgUrl(bgImage);
851
+ if (!url)
852
+ return;
853
+ emitImage(null, rect, ctx, url, sink);
854
+ }
855
+ /** The first `url(…)` in a computed `background-image`, unquoted, or null. */
856
+ function parseBgUrl(bgImage) {
857
+ const m = /url\(\s*(['"]?)([^'")]+)\1\s*\)/i.exec(bgImage !== null && bgImage !== void 0 ? bgImage : '');
858
+ return m ? m[2] : null;
859
+ }
860
+ /**
861
+ * Emit an `<image>` for an `<img>` (pass the element) or a CSS bitmap (pass null).
862
+ * Inlined to a data: URI when the pixels are readable, so the file stays self-contained;
863
+ * ALWAYS warned, because PDF cannot draw an image at all.
864
+ */
865
+ function emitImage(el, rect, ctx, src, sink) {
866
+ if (!src)
867
+ return;
868
+ const href = resolveImageHref(el, src, ctx);
869
+ // Only an EXTERNAL image is a PDF risk now: the PDF writer embeds data: PNGs/JPEGs
870
+ // as image XObjects (b2854b0a1) and carries its own precise warnings for the forms
871
+ // it refuses (interlaced, 16-bit, CMYK…). An external URL it cannot fetch, so that
872
+ // half of the old blanket warning is the half that stays.
873
+ if (!href.startsWith('data:'))
874
+ ctx.warnings.push(exports.IMAGE_PDF_WARNING);
875
+ sink.push({
876
+ type: 'image',
877
+ props: {
878
+ x: round(rect.x),
879
+ y: round(rect.y),
880
+ width: round(rect.width),
881
+ height: round(rect.height),
882
+ href,
883
+ },
884
+ children: [],
885
+ });
886
+ }
887
+ /** A data: URI if we can read the bitmap; otherwise the original src (external, warned). */
888
+ function resolveImageHref(el, src, ctx) {
889
+ if (src.startsWith('data:'))
890
+ return src;
891
+ const inlined = el ? tryCanvasInline(el, ctx) : null;
892
+ if (inlined)
893
+ return inlined;
894
+ ctx.warnings.push(exports.IMAGE_NOT_INLINED_WARNING);
895
+ return src;
896
+ }
897
+ /** Read a loaded, same-origin `<img>` to a PNG data URI via a canvas. Null on any failure. */
898
+ function tryCanvasInline(el, ctx) {
899
+ var _a, _b;
900
+ try {
901
+ const doc = el.ownerDocument;
902
+ if (!doc || typeof doc.createElement !== 'function')
903
+ return null;
904
+ const img = el;
905
+ const nw = (_a = img.naturalWidth) !== null && _a !== void 0 ? _a : 0;
906
+ const nh = (_b = img.naturalHeight) !== null && _b !== void 0 ? _b : 0;
907
+ if (!nw || !nh)
908
+ return null;
909
+ const canvas = doc.createElement('canvas');
910
+ canvas.width = nw;
911
+ canvas.height = nh;
912
+ const context = canvas.getContext('2d');
913
+ if (!context)
914
+ return null;
915
+ context.drawImage(el, 0, 0);
916
+ return canvas.toDataURL('image/png');
917
+ }
918
+ catch (_c) {
919
+ ctx.warnings.push('an image could not be inlined (cross-origin or unloaded) — the export references it ' +
920
+ 'externally and is not fully self-contained.');
921
+ return null;
922
+ }
923
+ }
924
+ // -- pseudo-elements ---------------------------------------------------------
925
+ //
926
+ // `getComputedStyle(el, '::before')` reports a pseudo's computed style, but a pseudo
927
+ // has NO element to getBoundingClientRect() — its box must be DERIVED:
928
+ //
929
+ // absolute/fixed left/top (or right/bottom + size) offsets against the origin's
930
+ // border box, plus computed width/height. This is the decorative-
931
+ // pseudo idiom and it derives exactly.
932
+ // static/relative a ::before flows at the origin's CONTENT start (border + padding
933
+ // in). A ::after only flows there when the origin has no other flow
934
+ // content — otherwise its position depends on layout this
935
+ // transcriber cannot measure, and it warns instead of guessing.
936
+ //
937
+ // Sizes: explicit px/% resolve; `auto` resolves for a TEXT pseudo (its line box is
938
+ // derived from its own font, the same approximation `emitText` makes), but a PAINTED
939
+ // box with auto size is underivable and is reported, never guessed.
940
+ /** A px/% length against a basis. Returns null for auto/keywords/unparsable. */
941
+ function resolveLen(token, basis) {
942
+ const t = (token !== null && token !== void 0 ? token : '').trim();
943
+ if (t === '')
944
+ return null;
945
+ const pct = /^(-?[\d.]+)%$/.exec(t);
946
+ if (pct)
947
+ return (parseFloat(pct[1]) / 100) * basis;
948
+ const abs = /^(-?[\d.]+)(?:px)?$/.exec(t);
949
+ if (abs)
950
+ return parseFloat(abs[1]);
951
+ return null;
952
+ }
953
+ /** Everything outside quoted strings — for detecting attr()/counter()/url() content. */
954
+ function stripQuoted(value) {
955
+ return value.replace(/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/g, '');
956
+ }
957
+ /**
958
+ * A computed `content` value → the text it contributes. Quoted strings (and their
959
+ * concatenation) are transcribed; attr()/counter()/url() cannot be resolved from
960
+ * computed style alone and are skipped WITH a warning. The `/ "alt text"` clause is
961
+ * not rendered content and is cut.
962
+ */
963
+ function parsePseudoContent(value, ctx) {
964
+ if (/(attr|counters?|url|image-set)\s*\(/i.test(stripQuoted(value))) {
965
+ ctx.warnings.push('a pseudo-element content value (attr()/counter()/url()) was skipped — only quoted ' +
966
+ 'strings are transcribed.');
967
+ }
968
+ let out = '';
969
+ let quote = null;
970
+ for (let i = 0; i < value.length; i++) {
971
+ const ch = value[i];
972
+ if (quote) {
973
+ if (ch === quote)
974
+ quote = null;
975
+ else if (ch === '\\' && i + 1 < value.length)
976
+ out += value[++i];
977
+ else
978
+ out += ch;
979
+ }
980
+ else if (ch === '"' || ch === "'") {
981
+ quote = ch;
982
+ }
983
+ else if (ch === '/') {
984
+ break; // alt-text clause — never rendered
985
+ }
986
+ }
987
+ return out;
988
+ }
989
+ /** Does the pseudo's style paint a box at all (background or any visible border)? */
990
+ function pseudoPaintsBox(ps) {
991
+ var _a, _b, _c, _d, _e, _f, _g;
992
+ if (!isTransparent((_b = (_a = ps['background-color']) !== null && _a !== void 0 ? _a : ps['backgroundColor']) !== null && _b !== void 0 ? _b : ''))
993
+ return true;
994
+ const bgi = ((_d = (_c = ps['background-image']) !== null && _c !== void 0 ? _c : ps['backgroundImage']) !== null && _d !== void 0 ? _d : '').trim();
995
+ if (bgi !== '' && bgi !== 'none')
996
+ return true;
997
+ for (const side of ['top', 'right', 'bottom', 'left']) {
998
+ if (px((_e = ps[`border-${side}-width`]) !== null && _e !== void 0 ? _e : '') > 0 &&
999
+ ((_f = ps[`border-${side}-style`]) !== null && _f !== void 0 ? _f : 'none') !== 'none' &&
1000
+ !isTransparent((_g = ps[`border-${side}-color`]) !== null && _g !== void 0 ? _g : '')) {
1001
+ return true;
1002
+ }
1003
+ }
1004
+ return false;
1005
+ }
1006
+ /**
1007
+ * Transcribe one `::before` / `::after`. Returns whether the pseudo EXISTS (generated
1008
+ * a box per `content`), which the caller feeds into the ::after flow-position rule —
1009
+ * a ::before box is flow content the ::after would come after.
1010
+ */
1011
+ function emitPseudo(el, originStyle, originRect, which, ctx, sink, precededByFlowContent) {
1012
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
1013
+ if (ctx.pseudoUnsupported)
1014
+ return false;
1015
+ let ps;
1016
+ try {
1017
+ ps = ctx.win.getComputedStyle(el, which);
1018
+ }
1019
+ catch (_1) {
1020
+ ctx.pseudoUnsupported = true; // e.g. jsdom — learn it once, not once per element
1021
+ return false;
1022
+ }
1023
+ if (!ps)
1024
+ return false;
1025
+ const rawContent = ((_a = ps['content']) !== null && _a !== void 0 ? _a : '').trim();
1026
+ // `content: none | normal` (or nothing readable) → the pseudo generates NO box.
1027
+ if (rawContent === '' || rawContent === 'none' || rawContent === 'normal')
1028
+ return false;
1029
+ if (ps['display'] === 'none' || ps['visibility'] === 'hidden')
1030
+ return true;
1031
+ if (parseFloat((_b = ps['opacity']) !== null && _b !== void 0 ? _b : '1') === 0)
1032
+ return true;
1033
+ const text = parsePseudoContent(rawContent, ctx);
1034
+ const paintsBox = pseudoPaintsBox(ps);
1035
+ if (text === '' && !paintsBox)
1036
+ return true; // exists, but there is nothing to draw
1037
+ const w = resolveLen((_c = ps['width']) !== null && _c !== void 0 ? _c : '', originRect.width);
1038
+ const h = resolveLen((_d = ps['height']) !== null && _d !== void 0 ? _d : '', originRect.height);
1039
+ // The flow start of the origin's content box — where a static ::before sits.
1040
+ const flowX = originRect.x +
1041
+ px((_f = (_e = originStyle['border-left-width']) !== null && _e !== void 0 ? _e : originStyle['borderLeftWidth']) !== null && _f !== void 0 ? _f : '') +
1042
+ px((_h = (_g = originStyle['padding-left']) !== null && _g !== void 0 ? _g : originStyle['paddingLeft']) !== null && _h !== void 0 ? _h : '');
1043
+ const flowY = originRect.y +
1044
+ px((_k = (_j = originStyle['border-top-width']) !== null && _j !== void 0 ? _j : originStyle['borderTopWidth']) !== null && _k !== void 0 ? _k : '') +
1045
+ px((_m = (_l = originStyle['padding-top']) !== null && _l !== void 0 ? _l : originStyle['paddingTop']) !== null && _m !== void 0 ? _m : '');
1046
+ const pos = ((_o = ps['position']) !== null && _o !== void 0 ? _o : 'static').toLowerCase();
1047
+ let x;
1048
+ let y;
1049
+ if (pos === 'absolute' || pos === 'fixed') {
1050
+ // Containing block approximated by the origin box — the decorative-pseudo idiom
1051
+ // (`position: relative` origin, absolute pseudo) makes this exact.
1052
+ const left = resolveLen((_p = ps['left']) !== null && _p !== void 0 ? _p : '', originRect.width);
1053
+ const right = resolveLen((_q = ps['right']) !== null && _q !== void 0 ? _q : '', originRect.width);
1054
+ const top = resolveLen((_r = ps['top']) !== null && _r !== void 0 ? _r : '', originRect.height);
1055
+ const bottom = resolveLen((_s = ps['bottom']) !== null && _s !== void 0 ? _s : '', originRect.height);
1056
+ x =
1057
+ left !== null
1058
+ ? originRect.x + left
1059
+ : right !== null && w !== null
1060
+ ? originRect.x + originRect.width - right - w
1061
+ : left === null && right === null
1062
+ ? flowX // no offsets → the static position
1063
+ : null;
1064
+ y =
1065
+ top !== null
1066
+ ? originRect.y + top
1067
+ : bottom !== null && h !== null
1068
+ ? originRect.y + originRect.height - bottom - h
1069
+ : top === null && bottom === null
1070
+ ? flowY
1071
+ : null;
1072
+ }
1073
+ else {
1074
+ if (which === '::after' && precededByFlowContent) {
1075
+ ctx.warnings.push('a painted ::after pseudo-element flows after content this transcriber cannot ' +
1076
+ 'measure — it was skipped.');
1077
+ return true;
1078
+ }
1079
+ x = flowX;
1080
+ y = flowY;
1081
+ if (pos === 'relative') {
1082
+ x += (_u = resolveLen((_t = ps['left']) !== null && _t !== void 0 ? _t : '', originRect.width)) !== null && _u !== void 0 ? _u : 0;
1083
+ y += (_w = resolveLen((_v = ps['top']) !== null && _v !== void 0 ? _v : '', originRect.height)) !== null && _w !== void 0 ? _w : 0;
1084
+ }
1085
+ }
1086
+ if (x === null || y === null) {
1087
+ ctx.warnings.push(`the position of a ${which} pseudo-element could not be derived — it was skipped.`);
1088
+ return true;
1089
+ }
1090
+ const box = w !== null && h !== null ? { x, y, width: w, height: h } : null;
1091
+ if (box && box.width > 0 && box.height > 0) {
1092
+ emitBox(ps, box, ctx, sink);
1093
+ }
1094
+ else if (paintsBox) {
1095
+ ctx.warnings.push(`a painted ${which} pseudo-element's box could not be derived (auto size) — its ` +
1096
+ 'background/border was skipped.');
1097
+ }
1098
+ if (text !== '') {
1099
+ const fontSize = px((_y = (_x = ps['font-size']) !== null && _x !== void 0 ? _x : ps['fontSize']) !== null && _y !== void 0 ? _y : '12');
1100
+ const lineBox = (_0 = resolveLen((_z = ps['line-height']) !== null && _z !== void 0 ? _z : '', 0)) !== null && _0 !== void 0 ? _0 : fontSize * 1.2;
1101
+ const textRect = box !== null && box !== void 0 ? box : { x, y, width: w !== null && w !== void 0 ? w : 0, height: h !== null && h !== void 0 ? h : lineBox };
1102
+ pushTextVNode(text, textRect, ps, ctx, sink);
1103
+ }
1104
+ return true;
1105
+ }
1106
+ const OVERFLOW_CLIPPING = new Set(['hidden', 'clip', 'auto', 'scroll']);
1107
+ /** `overflow` that clips → the element's (rounded) border box as a clip shape. */
1108
+ function overflowClipFor(style, rect) {
1109
+ var _a, _b, _c, _d, _e, _f, _g, _h;
1110
+ const ox = (_c = (_b = (_a = style['overflow-x']) !== null && _a !== void 0 ? _a : style['overflowX']) !== null && _b !== void 0 ? _b : style['overflow']) !== null && _c !== void 0 ? _c : '';
1111
+ const oy = (_f = (_e = (_d = style['overflow-y']) !== null && _d !== void 0 ? _d : style['overflowY']) !== null && _e !== void 0 ? _e : style['overflow']) !== null && _f !== void 0 ? _f : '';
1112
+ if (!OVERFLOW_CLIPPING.has(ox) && !OVERFLOW_CLIPPING.has(oy))
1113
+ return null;
1114
+ const radius = px((_h = (_g = style['border-top-left-radius']) !== null && _g !== void 0 ? _g : style['borderTopLeftRadius']) !== null && _h !== void 0 ? _h : '0');
1115
+ return clipShapeDef('rect', Object.assign({ x: round(rect.x), y: round(rect.y), width: round(rect.width), height: round(rect.height) }, (radius > 0 ? { rx: round(radius) } : {})));
1116
+ }
1117
+ /** Wrap one shape in a stably-identified `<clipPath>` def (same shape → same id). */
1118
+ function clipShapeDef(type, props) {
1119
+ const id = (0, paint_servers_1.paintDefId)({ clip: type, props });
1120
+ return {
1121
+ id,
1122
+ def: { type: 'clipPath', props: { id }, children: [{ type, props, children: [] }] },
1123
+ };
1124
+ }
1125
+ /**
1126
+ * A computed CSS `clip-path` → a clip def, or null. inset()/circle()/ellipse()/
1127
+ * polygon() are transcribed; path()/url()/shape() cannot be expressed as one of the
1128
+ * def shapes and are skipped WITH a warning — the content exports unclipped, which is
1129
+ * a smaller lie than clipping it wrong.
1130
+ */
1131
+ function clipPathShapeFor(value, rect, ctx) {
1132
+ const t = (value !== null && value !== void 0 ? value : '').trim();
1133
+ if (t === '' || t === 'none')
1134
+ return null;
1135
+ const m = /^(inset|circle|ellipse|polygon)\(([\s\S]*)\)(?:\s+([a-z-]+))?$/i.exec(t);
1136
+ if (!m) {
1137
+ ctx.warnings.push('an unsupported clip-path (path()/url()/reference-box form) was skipped — that ' +
1138
+ 'content is exported UNCLIPPED.');
1139
+ return null;
1140
+ }
1141
+ if (m[3] && m[3].toLowerCase() !== 'border-box') {
1142
+ ctx.warnings.push(`a clip-path reference box "${m[3]}" was approximated as border-box.`);
1143
+ }
1144
+ const kind = m[1].toLowerCase();
1145
+ const args = m[2].trim();
1146
+ const shape = kind === 'inset'
1147
+ ? insetShape(args, rect)
1148
+ : kind === 'circle'
1149
+ ? circleShape(args, rect)
1150
+ : kind === 'ellipse'
1151
+ ? ellipseShape(args, rect)
1152
+ : polygonShape(args, rect);
1153
+ if (!shape) {
1154
+ ctx.warnings.push(`a clip-path ${kind}() could not be parsed and was skipped — that content is exported UNCLIPPED.`);
1155
+ return null;
1156
+ }
1157
+ return clipShapeDef(shape.type, shape.props);
1158
+ }
1159
+ /** `inset(t r b l round radius)` → a (rounded) rect. Percentages resolve per axis. */
1160
+ function insetShape(args, rect) {
1161
+ var _a, _b, _c, _d, _e;
1162
+ const [offsetsPart, roundPart] = args.split(/\bround\b/i);
1163
+ const tokens = offsetsPart.trim().split(/\s+/).filter(Boolean);
1164
+ if (tokens.length < 1 || tokens.length > 4)
1165
+ return null;
1166
+ // CSS 1-to-4 expansion: t / t+lr / t+lr+b / t r b l.
1167
+ const o = [
1168
+ tokens[0],
1169
+ (_a = tokens[1]) !== null && _a !== void 0 ? _a : tokens[0],
1170
+ (_b = tokens[2]) !== null && _b !== void 0 ? _b : tokens[0],
1171
+ (_d = (_c = tokens[3]) !== null && _c !== void 0 ? _c : tokens[1]) !== null && _d !== void 0 ? _d : tokens[0],
1172
+ ];
1173
+ const top = resolveLen(o[0], rect.height);
1174
+ const right = resolveLen(o[1], rect.width);
1175
+ const bottom = resolveLen(o[2], rect.height);
1176
+ const left = resolveLen(o[3], rect.width);
1177
+ if (top === null || right === null || bottom === null || left === null)
1178
+ return null;
1179
+ const width = rect.width - left - right;
1180
+ const height = rect.height - top - bottom;
1181
+ if (!(width > 0) || !(height > 0))
1182
+ return null;
1183
+ const radius = roundPart ? resolveLen((_e = roundPart.trim().split(/[\s/]+/)[0]) !== null && _e !== void 0 ? _e : '', rect.width) : null;
1184
+ return {
1185
+ type: 'rect',
1186
+ props: Object.assign({ x: round(rect.x + left), y: round(rect.y + top), width: round(width), height: round(height) }, (radius !== null && radius > 0 ? { rx: round(radius) } : {})),
1187
+ };
1188
+ }
1189
+ /** The centre a `… at <position>` clause resolves to, in host-local pixels. */
1190
+ function shapeCentre(args, rect) {
1191
+ var _a;
1192
+ const c = (_a = parseRadialCenter(args)) !== null && _a !== void 0 ? _a : { x: 0.5, y: 0.5 };
1193
+ return { cx: rect.x + rect.width * c.x, cy: rect.y + rect.height * c.y };
1194
+ }
1195
+ /** One radius token against one axis; `closest-`/`farthest-side` use the given distances. */
1196
+ function shapeRadius(token, basis, closest, farthest) {
1197
+ const t = (token !== null && token !== void 0 ? token : '').trim().toLowerCase();
1198
+ if (t === '' || t === 'closest-side')
1199
+ return closest;
1200
+ if (t === 'farthest-side')
1201
+ return farthest;
1202
+ return resolveLen(t, basis);
1203
+ }
1204
+ function circleShape(args, rect) {
1205
+ const { cx, cy } = shapeCentre(args, rect);
1206
+ const sides = [cx - rect.x, rect.x + rect.width - cx, cy - rect.y, rect.y + rect.height - cy];
1207
+ const rToken = args.split(/\bat\b/i)[0].trim();
1208
+ // A circle's percentage radius resolves against the reference-box diagonal / √2.
1209
+ const r = shapeRadius(rToken, Math.hypot(rect.width, rect.height) / Math.SQRT2, Math.min(...sides), Math.max(...sides));
1210
+ if (r === null || !(r > 0))
1211
+ return null;
1212
+ return { type: 'circle', props: { cx: round(cx), cy: round(cy), r: round(r) } };
1213
+ }
1214
+ function ellipseShape(args, rect) {
1215
+ var _a, _b, _c;
1216
+ const { cx, cy } = shapeCentre(args, rect);
1217
+ const tokens = args.split(/\bat\b/i)[0].trim().split(/\s+/).filter(Boolean);
1218
+ const rx = shapeRadius((_a = tokens[0]) !== null && _a !== void 0 ? _a : '', rect.width, Math.min(cx - rect.x, rect.x + rect.width - cx), Math.max(cx - rect.x, rect.x + rect.width - cx));
1219
+ const ry = shapeRadius((_c = (_b = tokens[1]) !== null && _b !== void 0 ? _b : tokens[0]) !== null && _c !== void 0 ? _c : '', rect.height, Math.min(cy - rect.y, rect.y + rect.height - cy), Math.max(cy - rect.y, rect.y + rect.height - cy));
1220
+ if (rx === null || ry === null || !(rx > 0) || !(ry > 0))
1221
+ return null;
1222
+ return {
1223
+ type: 'ellipse',
1224
+ props: { cx: round(cx), cy: round(cy), rx: round(rx), ry: round(ry) },
1225
+ };
1226
+ }
1227
+ function polygonShape(args, rect) {
1228
+ var _a;
1229
+ const parts = splitTopLevel(args);
1230
+ let start = 0;
1231
+ let evenodd = false;
1232
+ const first = ((_a = parts[0]) !== null && _a !== void 0 ? _a : '').trim().toLowerCase();
1233
+ if (first === 'evenodd' || first === 'nonzero') {
1234
+ evenodd = first === 'evenodd';
1235
+ start = 1;
1236
+ }
1237
+ const points = [];
1238
+ for (let i = start; i < parts.length; i++) {
1239
+ const pair = parts[i].trim().split(/\s+/);
1240
+ if (pair.length !== 2)
1241
+ return null;
1242
+ const vx = resolveLen(pair[0], rect.width);
1243
+ const vy = resolveLen(pair[1], rect.height);
1244
+ if (vx === null || vy === null)
1245
+ return null;
1246
+ points.push(`${round(rect.x + vx)},${round(rect.y + vy)}`);
1247
+ }
1248
+ if (points.length < 3)
1249
+ return null;
1250
+ return {
1251
+ type: 'polygon',
1252
+ props: Object.assign({ points: points.join(' ') }, (evenodd ? { 'clip-rule': 'evenodd' } : {})),
1253
+ };
1254
+ }
1255
+ /** 4dp is finer than any renderer resolves, and keeps the output byte-stable. */
1256
+ function round(value) {
1257
+ return Math.round(value * 1e4) / 1e4;
1258
+ }
1259
+ //# sourceMappingURL=capture-host.js.map