@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,1104 @@
1
+ "use strict";
2
+ // Shape registry + geometry contract (Nodes & shapes foundation)
3
+ //
4
+ // Historically the five built-in node shapes (rect, circle, ellipse, diamond,
5
+ // hexagon) were hardcoded across FIVE parallel switch statements:
6
+ // - SVGRenderer.renderNodeShape (node body)
7
+ // - SVGRenderer.renderSelectionHighlight
8
+ // - SVGRenderer.renderShadow
9
+ // - SVGRenderer.shapeEdgePoint (smart-connection boundary)
10
+ // - getPortPositionForShape (port-positioning.ts)
11
+ // Adding a shape meant editing every switch in lock-step.
12
+ //
13
+ // This module introduces ONE `ShapeDefinition` geometry contract and a
14
+ // registry so every shape lives in a single place. The five render sites now
15
+ // consult the registry instead of switching on `shapeConfig.type`.
16
+ //
17
+ // GEOMETRY CONTRACT — each shape exposes just three geometry primitives:
18
+ // 1. outline(w, h, transform) — the shape's outline as an SVG element +
19
+ // geometry props. A single `transform` (grow outward by `grow` px,
20
+ // translate by dx/dy, optional corner radius) drives ALL THREE render
21
+ // sites: the node body (identity transform), the selection highlight
22
+ // (grow = padding) and the drop shadow (dx = dy = offset). This is why
23
+ // "selection + shadow reuse outline".
24
+ // 2. boundaryPoint(rect, side, cross) — the point on the outline used by
25
+ // smart connection points; returns null to fall back to the bbox edge.
26
+ // 3. portAnchor(w, h, side, rank, count) — the local-space port position.
27
+ //
28
+ // The exact rendered output of the five built-ins is preserved bit-for-bit;
29
+ // this is a structural refactor, not a visual change.
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.registerShape = registerShape;
32
+ exports.registerPathShape = registerPathShape;
33
+ exports.buildPathShapeDefinition = buildPathShapeDefinition;
34
+ exports.getShape = getShape;
35
+ exports.hasShape = hasShape;
36
+ exports.listShapes = listShapes;
37
+ exports.unregisterShape = unregisterShape;
38
+ exports.getShapeDefinition = getShapeDefinition;
39
+ exports.getShapeRegistryVersion = getShapeRegistryVersion;
40
+ exports.onShapeRegistryChange = onShapeRegistryChange;
41
+ exports.notifyShapeRegistered = notifyShapeRegistered;
42
+ exports.getInnerRect = getInnerRect;
43
+ exports.defaultInnerRect = defaultInnerRect;
44
+ exports.buildShapeBody = buildShapeBody;
45
+ exports.buildShapeSelection = buildShapeSelection;
46
+ exports.buildShapeShadow = buildShapeShadow;
47
+ const tslib_1 = require("tslib");
48
+ const path_outline_1 = require("./path-outline");
49
+ const path_geometry_1 = require("../canvas/path-geometry");
50
+ const registry_scope_1 = require("../ext/registry-scope");
51
+ // ---------------------------------------------------------------------------
52
+ // Shared geometry helpers (extracted verbatim from the original switch sites)
53
+ // ---------------------------------------------------------------------------
54
+ function fmt(verts) {
55
+ return verts.map((v) => `${v.x},${v.y}`).join(' ');
56
+ }
57
+ /** Even fraction along an edge: 1 port → 1/2; 2 ports → 1/3, 2/3; … */
58
+ function edgeFraction(rank, count) {
59
+ return (rank + 1) / (count + 1);
60
+ }
61
+ /** Base perimeter angle for each side (radians) — circle/ellipse anchors. */
62
+ const SIDE_ANGLES = {
63
+ top: -Math.PI / 2,
64
+ right: 0,
65
+ bottom: Math.PI / 2,
66
+ left: Math.PI,
67
+ };
68
+ /**
69
+ * Symmetric angular fan around the side's base angle: a single port sits on
70
+ * the base angle; additional ports spread ±15° steps, centered.
71
+ */
72
+ function fanAngle(side, rank, count) {
73
+ const spacing = Math.PI / 12; // 15 degrees between adjacent ports
74
+ return SIDE_ANGLES[side] + (rank - (count - 1) / 2) * spacing;
75
+ }
76
+ /**
77
+ * Analytic projection onto an ellipse/circle outline for a smart attachment.
78
+ * Mirrors the original shapeEdgePoint ellipse/circle branch exactly.
79
+ */
80
+ function ellipseBoundaryPoint(rect, side, cross, rx, ry) {
81
+ const cx = rect.x + rect.w / 2;
82
+ const cy = rect.y + rect.h / 2;
83
+ const vertical = side === 'top' || side === 'bottom';
84
+ const clampv = (v, lo, hi) => Math.max(lo, Math.min(hi, v));
85
+ if (vertical) {
86
+ const x = clampv(cross, cx - rx * 0.9, cx + rx * 0.9);
87
+ const dy = ry * Math.sqrt(Math.max(0, 1 - Math.pow(((x - cx) / rx), 2)));
88
+ return { x, y: side === 'top' ? cy - dy : cy + dy };
89
+ }
90
+ const y = clampv(cross, cy - ry * 0.9, cy + ry * 0.9);
91
+ const dx = rx * Math.sqrt(Math.max(0, 1 - Math.pow(((y - cy) / ry), 2)));
92
+ return { x: side === 'left' ? cx - dx : cx + dx, y };
93
+ }
94
+ /**
95
+ * Intersect the outline polygon with the axis line at `cross`, keeping the
96
+ * intersection that belongs to the requested side. Mirrors the original
97
+ * shapeEdgePoint hexagon/diamond branch exactly (returns null at a degenerate
98
+ * vertex tangent so the caller falls through to the box edge).
99
+ */
100
+ function polygonBoundaryPoint(verts, side, cross) {
101
+ const vertical = side === 'top' || side === 'bottom';
102
+ let best = null;
103
+ for (let i = 0; i < verts.length; i++) {
104
+ const a = verts[i];
105
+ const b = verts[(i + 1) % verts.length];
106
+ if (vertical) {
107
+ const lo = Math.min(a.x, b.x);
108
+ const hi = Math.max(a.x, b.x);
109
+ if (cross < lo || cross > hi || lo === hi)
110
+ continue;
111
+ const y = a.y + ((cross - a.x) / (b.x - a.x)) * (b.y - a.y);
112
+ if (best === null || (side === 'top' ? y < best : y > best))
113
+ best = y;
114
+ }
115
+ else {
116
+ const lo = Math.min(a.y, b.y);
117
+ const hi = Math.max(a.y, b.y);
118
+ if (cross < lo || cross > hi || lo === hi)
119
+ continue;
120
+ const x = a.x + ((cross - a.y) / (b.y - a.y)) * (b.x - a.x);
121
+ if (best === null || (side === 'left' ? x < best : x > best))
122
+ best = x;
123
+ }
124
+ }
125
+ if (best !== null) {
126
+ return vertical ? { x: cross, y: best } : { x: best, y: cross };
127
+ }
128
+ return null;
129
+ }
130
+ // ---------------------------------------------------------------------------
131
+ // Built-in shape definitions (existing geometry — extracted, not invented)
132
+ // ---------------------------------------------------------------------------
133
+ const RectShape = {
134
+ type: 'rect',
135
+ styleMode: 'inline',
136
+ bodyDeferGeomKeys: ['rx', 'ry'],
137
+ outline(width, height, t = {}) {
138
+ var _a, _b, _c;
139
+ const grow = (_a = t.grow) !== null && _a !== void 0 ? _a : 0;
140
+ const dx = (_b = t.dx) !== null && _b !== void 0 ? _b : 0;
141
+ const dy = (_c = t.dy) !== null && _c !== void 0 ? _c : 0;
142
+ const geom = {
143
+ x: -grow + dx,
144
+ y: -grow + dy,
145
+ width: width + 2 * grow,
146
+ height: height + 2 * grow,
147
+ };
148
+ if (t.radius !== undefined && (t.radiusAlways || t.radius)) {
149
+ geom['rx'] = t.radius;
150
+ if (t.radiusY)
151
+ geom['ry'] = t.radius;
152
+ }
153
+ return { el: 'rect', geom };
154
+ },
155
+ boundaryPoint() {
156
+ // Rects use the bounding-box edge — handled by the caller's fallback.
157
+ return null;
158
+ },
159
+ portAnchor(width, height, side, rank, count) {
160
+ const f = edgeFraction(rank, count);
161
+ switch (side) {
162
+ case 'left':
163
+ return { x: 0, y: height * f };
164
+ case 'right':
165
+ return { x: width, y: height * f };
166
+ case 'top':
167
+ return { x: width * f, y: 0 };
168
+ case 'bottom':
169
+ return { x: width * f, y: height };
170
+ default:
171
+ return { x: 0, y: 0 };
172
+ }
173
+ },
174
+ };
175
+ const CircleShape = {
176
+ type: 'circle',
177
+ styleMode: 'inline',
178
+ // rx/ry are rect corner-radius styles — meaningless (and confusing) on a circle
179
+ bodyStripKeys: ['rx', 'ry'],
180
+ outline(width, height, t = {}) {
181
+ var _a, _b, _c;
182
+ const grow = (_a = t.grow) !== null && _a !== void 0 ? _a : 0;
183
+ const dx = (_b = t.dx) !== null && _b !== void 0 ? _b : 0;
184
+ const dy = (_c = t.dy) !== null && _c !== void 0 ? _c : 0;
185
+ const radius = Math.min(width, height) / 2 + grow;
186
+ return {
187
+ el: 'circle',
188
+ geom: { cx: width / 2 + dx, cy: height / 2 + dy, r: radius },
189
+ };
190
+ },
191
+ boundaryPoint(rect, side, cross) {
192
+ const r = Math.min(rect.w, rect.h) / 2;
193
+ return ellipseBoundaryPoint(rect, side, cross, r, r);
194
+ },
195
+ portAnchor(width, height, side, rank, count) {
196
+ const radius = Math.min(width, height) / 2;
197
+ const cx = width / 2;
198
+ const cy = height / 2;
199
+ const angle = fanAngle(side, rank, count);
200
+ return { x: cx + radius * Math.cos(angle), y: cy + radius * Math.sin(angle) };
201
+ },
202
+ // A square inscribed in the circle: side = 2r/√2 ≈ 0.707·(2r). Use 0.6·min
203
+ // as a conservative label box so text never bleeds past the curve.
204
+ innerRect(width, height) {
205
+ const d = Math.min(width, height);
206
+ return { x: (width - 0.6 * d) / 2, y: (height - 0.6 * d) / 2, w: 0.6 * d, h: 0.6 * d };
207
+ },
208
+ };
209
+ const EllipseShape = {
210
+ type: 'ellipse',
211
+ // Ellipse spreads node styles directly; geometry is merged AFTER so a rect
212
+ // corner-radius `rx` (borderRadius) in the styles never wins over rx = w/2.
213
+ styleMode: 'spread',
214
+ outline(width, height, t = {}) {
215
+ var _a, _b, _c;
216
+ const grow = (_a = t.grow) !== null && _a !== void 0 ? _a : 0;
217
+ const dx = (_b = t.dx) !== null && _b !== void 0 ? _b : 0;
218
+ const dy = (_c = t.dy) !== null && _c !== void 0 ? _c : 0;
219
+ return {
220
+ el: 'ellipse',
221
+ geom: {
222
+ cx: width / 2 + dx,
223
+ cy: height / 2 + dy,
224
+ rx: width / 2 + grow,
225
+ ry: height / 2 + grow,
226
+ },
227
+ };
228
+ },
229
+ boundaryPoint(rect, side, cross) {
230
+ return ellipseBoundaryPoint(rect, side, cross, rect.w / 2, rect.h / 2);
231
+ },
232
+ portAnchor(width, height, side, rank, count) {
233
+ const rx = width / 2;
234
+ const ry = height / 2;
235
+ const cx = width / 2;
236
+ const cy = height / 2;
237
+ const angle = fanAngle(side, rank, count);
238
+ return { x: cx + rx * Math.cos(angle), y: cy + ry * Math.sin(angle) };
239
+ },
240
+ // ~0.6·w × ~0.6·h centered box (inscribed-rectangle approximation).
241
+ innerRect(width, height) {
242
+ return { x: 0.2 * width, y: 0.2 * height, w: 0.6 * width, h: 0.6 * height };
243
+ },
244
+ };
245
+ function diamondVerts(width, height, t) {
246
+ var _a, _b, _c;
247
+ // Diamond of the reference box expanded by `grow` on every side, translated
248
+ // by (dx, dy). Center is invariant under grow, so vertices push outward.
249
+ const grow = (_a = t.grow) !== null && _a !== void 0 ? _a : 0;
250
+ const dx = (_b = t.dx) !== null && _b !== void 0 ? _b : 0;
251
+ const dy = (_c = t.dy) !== null && _c !== void 0 ? _c : 0;
252
+ const x0 = -grow + dx;
253
+ const y0 = -grow + dy;
254
+ const w = width + 2 * grow;
255
+ const h = height + 2 * grow;
256
+ const cx = x0 + w / 2;
257
+ const cy = y0 + h / 2;
258
+ return [
259
+ { x: cx, y: y0 }, // top
260
+ { x: x0 + w, y: cy }, // right
261
+ { x: cx, y: y0 + h }, // bottom
262
+ { x: x0, y: cy }, // left
263
+ ];
264
+ }
265
+ const DiamondShape = {
266
+ type: 'diamond',
267
+ styleMode: 'inline',
268
+ outline(width, height, t = {}) {
269
+ const verts = diamondVerts(width, height, t);
270
+ return { el: 'polygon', geom: { points: fmt(verts) }, verts };
271
+ },
272
+ boundaryPoint(rect, side, cross) {
273
+ const local = diamondVerts(rect.w, rect.h, {});
274
+ const world = local.map((v) => ({ x: v.x + rect.x, y: v.y + rect.y }));
275
+ return polygonBoundaryPoint(world, side, cross);
276
+ },
277
+ portAnchor(width, height, side) {
278
+ const cx = width / 2;
279
+ const cy = height / 2;
280
+ const vertices = {
281
+ top: { x: cx, y: 0 },
282
+ right: { x: width, y: cy },
283
+ bottom: { x: cx, y: height },
284
+ left: { x: 0, y: cy },
285
+ };
286
+ return vertices[side];
287
+ },
288
+ // The largest axis-aligned rectangle inside a diamond is half its span; use
289
+ // ~0.5 so text clears the sloped edges (documented approximation).
290
+ innerRect(width, height) {
291
+ return { x: 0.25 * width, y: 0.25 * height, w: 0.5 * width, h: 0.5 * height };
292
+ },
293
+ };
294
+ function hexagonVerts(width, height, t) {
295
+ var _a, _b, _c;
296
+ // Flat-top hexagon. The horizontal 25% offset stays keyed to the ORIGINAL
297
+ // width; `grow` pushes each vertex outward and (dx, dy) translates. This
298
+ // matches the original renderHexagonShape / selection / shadow geometry.
299
+ const grow = (_a = t.grow) !== null && _a !== void 0 ? _a : 0;
300
+ const dx = (_b = t.dx) !== null && _b !== void 0 ? _b : 0;
301
+ const dy = (_c = t.dy) !== null && _c !== void 0 ? _c : 0;
302
+ const ox = width * 0.25;
303
+ const cy = height / 2;
304
+ return [
305
+ { x: ox - grow + dx, y: -grow + dy }, // top-left
306
+ { x: width - ox + grow + dx, y: -grow + dy }, // top-right
307
+ { x: width + grow + dx, y: cy + dy }, // right
308
+ { x: width - ox + grow + dx, y: height + grow + dy }, // bottom-right
309
+ { x: ox - grow + dx, y: height + grow + dy }, // bottom-left
310
+ { x: -grow + dx, y: cy + dy }, // left
311
+ ];
312
+ }
313
+ const HexagonShape = {
314
+ type: 'hexagon',
315
+ // Hexagon spreads node styles directly (historical parity with ellipse).
316
+ styleMode: 'spread',
317
+ outline(width, height, t = {}) {
318
+ const verts = hexagonVerts(width, height, t);
319
+ return { el: 'polygon', geom: { points: fmt(verts) }, verts };
320
+ },
321
+ boundaryPoint(rect, side, cross) {
322
+ const local = hexagonVerts(rect.w, rect.h, {});
323
+ const world = local.map((v) => ({ x: v.x + rect.x, y: v.y + rect.y }));
324
+ return polygonBoundaryPoint(world, side, cross);
325
+ },
326
+ portAnchor(width, height, side, rank, count) {
327
+ const cy = height / 2;
328
+ const edgeStart = width * 0.25;
329
+ const edgeSpan = width * 0.5;
330
+ switch (side) {
331
+ case 'top':
332
+ return { x: edgeStart + edgeSpan * edgeFraction(rank, count), y: 0 };
333
+ case 'bottom':
334
+ return { x: edgeStart + edgeSpan * edgeFraction(rank, count), y: height };
335
+ case 'right':
336
+ return { x: width, y: cy };
337
+ case 'left':
338
+ default:
339
+ return { x: 0, y: cy };
340
+ }
341
+ },
342
+ };
343
+ function boxOf(width, height, t) {
344
+ var _a, _b, _c;
345
+ const grow = (_a = t.grow) !== null && _a !== void 0 ? _a : 0;
346
+ return { x0: -grow + ((_b = t.dx) !== null && _b !== void 0 ? _b : 0), y0: -grow + ((_c = t.dy) !== null && _c !== void 0 ? _c : 0), w: width + 2 * grow, h: height + 2 * grow };
347
+ }
348
+ /** Round to 3dp so path/point strings stay compact and diff-stable. */
349
+ function r3(n) {
350
+ return Math.round(n * 1000) / 1000;
351
+ }
352
+ /** Clamp a scalar into [lo, hi]. */
353
+ function clampN(v, lo, hi) {
354
+ return Math.max(lo, Math.min(hi, v));
355
+ }
356
+ /**
357
+ * Port anchor on a polygon's REAL edge: intersect the outline with the center
358
+ * line at the even edge-fraction; fall back to the box edge at a vertex tangent.
359
+ */
360
+ function polygonPortAnchor(verts, width, height, side, rank, count) {
361
+ const f = edgeFraction(rank, count);
362
+ const cross = side === 'top' || side === 'bottom' ? width * f : height * f;
363
+ const p = polygonBoundaryPoint(verts, side, cross);
364
+ if (p)
365
+ return p;
366
+ return side === 'left'
367
+ ? { x: 0, y: cross }
368
+ : side === 'right'
369
+ ? { x: width, y: cross }
370
+ : side === 'top'
371
+ ? { x: cross, y: 0 }
372
+ : { x: cross, y: height };
373
+ }
374
+ /** Rect-style box-edge port anchor (used by the ~rectangular path shapes). */
375
+ function boxPortAnchor(width, height, side, rank, count) {
376
+ const f = edgeFraction(rank, count);
377
+ switch (side) {
378
+ case 'left':
379
+ return { x: 0, y: height * f };
380
+ case 'right':
381
+ return { x: width, y: height * f };
382
+ case 'top':
383
+ return { x: width * f, y: 0 };
384
+ default:
385
+ return { x: width * f, y: height };
386
+ }
387
+ }
388
+ /** Build a straight-edged (polygon) shape from a box-parameterized vertex list. */
389
+ function polygonShape(type, vertsFn, opts = {}) {
390
+ var _a;
391
+ return {
392
+ type,
393
+ styleMode: (_a = opts.styleMode) !== null && _a !== void 0 ? _a : 'inline',
394
+ outline(width, height, t = {}) {
395
+ const verts = vertsFn(boxOf(width, height, t));
396
+ return { el: 'polygon', geom: { points: fmt(verts) }, verts };
397
+ },
398
+ boundaryPoint(rect, side, cross) {
399
+ const local = vertsFn({ x0: 0, y0: 0, w: rect.w, h: rect.h });
400
+ const world = local.map((v) => ({ x: v.x + rect.x, y: v.y + rect.y }));
401
+ return polygonBoundaryPoint(world, side, cross);
402
+ },
403
+ portAnchor(width, height, side, rank, count) {
404
+ if (opts.portAnchor)
405
+ return opts.portAnchor(width, height, side, rank, count);
406
+ const verts = vertsFn({ x0: 0, y0: 0, w: width, h: height });
407
+ return polygonPortAnchor(verts, width, height, side, rank, count);
408
+ },
409
+ innerRect: opts.innerRect,
410
+ };
411
+ }
412
+ /** Build a curved / compound shape emitted as a single <path> (`d` from box). */
413
+ function pathShape(type, dFn, opts = {}) {
414
+ var _a, _b;
415
+ return {
416
+ type,
417
+ styleMode: 'inline',
418
+ outline(width, height, t = {}) {
419
+ return { el: 'path', geom: { d: dFn(boxOf(width, height, t)) } };
420
+ },
421
+ // ~rectangular footprint → the bounding-box edge is a good attachment.
422
+ boundaryPoint: (_a = opts.boundaryPoint) !== null && _a !== void 0 ? _a : (() => null),
423
+ portAnchor: (_b = opts.portAnchor) !== null && _b !== void 0 ? _b : boxPortAnchor,
424
+ innerRect: opts.innerRect,
425
+ };
426
+ }
427
+ // ── Vertex builders (skew = horizontal shear used by parallelogram/trapezoid) ─
428
+ const SKEW = 0.25; // fraction of width sheared off — the classic flowchart lean
429
+ function parallelogramVerts(b, lean) {
430
+ const s = b.w * SKEW;
431
+ // lean = 1 → top edge shifted right (data / I-O); lean = -1 → shifted left.
432
+ return lean === 1
433
+ ? [
434
+ { x: r3(b.x0 + s), y: b.y0 },
435
+ { x: r3(b.x0 + b.w), y: b.y0 },
436
+ { x: r3(b.x0 + b.w - s), y: r3(b.y0 + b.h) },
437
+ { x: b.x0, y: r3(b.y0 + b.h) },
438
+ ]
439
+ : [
440
+ { x: b.x0, y: b.y0 },
441
+ { x: r3(b.x0 + b.w - s), y: b.y0 },
442
+ { x: r3(b.x0 + b.w), y: r3(b.y0 + b.h) },
443
+ { x: r3(b.x0 + s), y: r3(b.y0 + b.h) },
444
+ ];
445
+ }
446
+ function trapezoidVerts(b, narrow) {
447
+ const s = b.w * SKEW;
448
+ return narrow === 'top'
449
+ ? [
450
+ { x: r3(b.x0 + s), y: b.y0 },
451
+ { x: r3(b.x0 + b.w - s), y: b.y0 },
452
+ { x: r3(b.x0 + b.w), y: r3(b.y0 + b.h) },
453
+ { x: b.x0, y: r3(b.y0 + b.h) },
454
+ ]
455
+ : [
456
+ { x: b.x0, y: b.y0 },
457
+ { x: r3(b.x0 + b.w), y: b.y0 },
458
+ { x: r3(b.x0 + b.w - s), y: r3(b.y0 + b.h) },
459
+ { x: r3(b.x0 + s), y: r3(b.y0 + b.h) },
460
+ ];
461
+ }
462
+ function triangleVerts(b, dir) {
463
+ const cx = r3(b.x0 + b.w / 2);
464
+ return dir === 'up'
465
+ ? [
466
+ { x: cx, y: b.y0 },
467
+ { x: r3(b.x0 + b.w), y: r3(b.y0 + b.h) },
468
+ { x: b.x0, y: r3(b.y0 + b.h) },
469
+ ]
470
+ : [
471
+ { x: b.x0, y: b.y0 },
472
+ { x: r3(b.x0 + b.w), y: b.y0 },
473
+ { x: cx, y: r3(b.y0 + b.h) },
474
+ ];
475
+ }
476
+ /** UML package (folder): a tab on the top-left plus the body — a 7-vertex poly. */
477
+ function packageVerts(b) {
478
+ const tabW = b.w * 0.4;
479
+ const tabH = b.h * 0.2;
480
+ return [
481
+ { x: b.x0, y: r3(b.y0 + tabH) },
482
+ { x: b.x0, y: b.y0 },
483
+ { x: r3(b.x0 + tabW), y: b.y0 },
484
+ { x: r3(b.x0 + tabW), y: r3(b.y0 + tabH) },
485
+ { x: r3(b.x0 + b.w), y: r3(b.y0 + tabH) },
486
+ { x: r3(b.x0 + b.w), y: r3(b.y0 + b.h) },
487
+ { x: b.x0, y: r3(b.y0 + b.h) },
488
+ ];
489
+ }
490
+ /** Isometric cube outer silhouette (a 6-vertex hexagon; edges drawn by cubePath). */
491
+ function cubeSilhouetteVerts(b) {
492
+ const d = Math.min(b.w, b.h) * 0.22;
493
+ return [
494
+ { x: b.x0, y: r3(b.y0 + d) },
495
+ { x: r3(b.x0 + d), y: b.y0 },
496
+ { x: r3(b.x0 + b.w), y: b.y0 },
497
+ { x: r3(b.x0 + b.w), y: r3(b.y0 + b.h - d) },
498
+ { x: r3(b.x0 + b.w - d), y: r3(b.y0 + b.h) },
499
+ { x: b.x0, y: r3(b.y0 + b.h) },
500
+ ];
501
+ }
502
+ /** Note silhouette (folded top-right corner) — a 6-vertex poly; fold by notePath. */
503
+ function noteVerts(b) {
504
+ const f = Math.min(b.w, b.h) * 0.25;
505
+ return [
506
+ { x: b.x0, y: b.y0 },
507
+ { x: r3(b.x0 + b.w - f), y: b.y0 },
508
+ { x: r3(b.x0 + b.w), y: r3(b.y0 + f) },
509
+ { x: r3(b.x0 + b.w), y: r3(b.y0 + b.h) },
510
+ { x: b.x0, y: r3(b.y0 + b.h) },
511
+ ];
512
+ }
513
+ // ── Straight-edged shapes ──────────────────────────────────────────────────
514
+ const ParallelogramShape = polygonShape('parallelogram', (b) => parallelogramVerts(b, 1));
515
+ const ParallelogramTopShape = polygonShape('parallelogram-top', (b) => parallelogramVerts(b, -1));
516
+ const TrapezoidShape = polygonShape('trapezoid', (b) => trapezoidVerts(b, 'top'));
517
+ const TrapezoidBottomShape = polygonShape('trapezoid-bottom', (b) => trapezoidVerts(b, 'bottom'));
518
+ const TriangleShape = polygonShape('triangle', (b) => triangleVerts(b, 'up'), {
519
+ // apex/base custom anchors read better than generic edge intersections
520
+ portAnchor(width, height, side, rank, count) {
521
+ if (side === 'top')
522
+ return { x: width / 2, y: 0 };
523
+ if (side === 'bottom')
524
+ return { x: width * edgeFraction(rank, count), y: height };
525
+ if (side === 'left')
526
+ return { x: width * 0.25, y: height / 2 };
527
+ return { x: width * 0.75, y: height / 2 };
528
+ },
529
+ innerRect: (w, h) => ({ x: 0.25 * w, y: 0.45 * h, w: 0.5 * w, h: 0.5 * h }),
530
+ });
531
+ const TriangleDownShape = polygonShape('triangle-down', (b) => triangleVerts(b, 'down'), {
532
+ innerRect: (w, h) => ({ x: 0.25 * w, y: 0.05 * h, w: 0.5 * w, h: 0.5 * h }),
533
+ });
534
+ const PackageShape = polygonShape('package', packageVerts, {
535
+ innerRect: (w, h) => ({ x: 0.08 * w, y: 0.28 * h, w: 0.84 * w, h: 0.64 * h }),
536
+ });
537
+ const CubeShape = Object.assign(Object.assign({}, polygonShape('cube', cubeSilhouetteVerts, {
538
+ innerRect: (w, h) => ({ x: 0.06 * w, y: 0.32 * h, w: 0.62 * w, h: 0.6 * h }),
539
+ })), {
540
+ // Override the outline to draw the two interior 3D edges as extra subpaths.
541
+ outline(width, height, t = {}) {
542
+ const b = boxOf(width, height, t);
543
+ const d = Math.min(b.w, b.h) * 0.22;
544
+ const { x0, y0 } = b;
545
+ const w = b.w;
546
+ const h = b.h;
547
+ const front = `M ${r3(x0)},${r3(y0 + d)} L ${r3(x0)},${r3(y0 + h)} L ${r3(x0 + w - d)},${r3(y0 + h)} L ${r3(x0 + w - d)},${r3(y0 + d)} Z`;
548
+ const top = `M ${r3(x0)},${r3(y0 + d)} L ${r3(x0 + d)},${r3(y0)} L ${r3(x0 + w)},${r3(y0)} L ${r3(x0 + w - d)},${r3(y0 + d)}`;
549
+ const rightEdge = `M ${r3(x0 + w - d)},${r3(y0 + d)} L ${r3(x0 + w)},${r3(y0)} L ${r3(x0 + w)},${r3(y0 + h - d)} L ${r3(x0 + w - d)},${r3(y0 + h)}`;
550
+ return { el: 'path', geom: { d: `${front} ${top} ${rightEdge}` } };
551
+ } });
552
+ // ── Curved / compound (path) shapes ────────────────────────────────────────
553
+ const DocumentShape = pathShape('document', (b) => {
554
+ const wave = b.h * 0.12;
555
+ const { x0, y0, w, h } = b;
556
+ // rect top + sides, then a double Q-curve wavy bottom
557
+ return (`M ${r3(x0)},${r3(y0)} L ${r3(x0 + w)},${r3(y0)} L ${r3(x0 + w)},${r3(y0 + h - wave)} ` +
558
+ `Q ${r3(x0 + 0.75 * w)},${r3(y0 + h - 2 * wave)} ${r3(x0 + 0.5 * w)},${r3(y0 + h - wave)} ` +
559
+ `Q ${r3(x0 + 0.25 * w)},${r3(y0 + h)} ${r3(x0)},${r3(y0 + h - wave)} Z`);
560
+ }, { innerRect: (w, h) => ({ x: 0.08 * w, y: 0.08 * h, w: 0.84 * w, h: 0.72 * h }) });
561
+ /** Classic DB-cylinder rim radius (must match the outline generator exactly). */
562
+ function cylinderRy(w, h) {
563
+ return Math.min(h / 2, w / 2 / (2.5 + w / h));
564
+ }
565
+ const CylinderShape = Object.assign(Object.assign({}, pathShape('cylinder', (b) => {
566
+ const { x0, y0, w, h } = b;
567
+ const rx = w / 2;
568
+ const ry = cylinderRy(w, h); // classic DB rim curvature
569
+ const body = h - 2 * ry;
570
+ // full top ellipse (two arcs) + body sides + front bottom arc
571
+ return (`M ${r3(x0)},${r3(y0 + ry)} ` +
572
+ `a ${r3(rx)},${r3(ry)} 0 0 0 ${r3(w)} 0 ` +
573
+ `a ${r3(rx)},${r3(ry)} 0 0 0 ${r3(-w)} 0 ` +
574
+ `l 0 ${r3(body)} ` +
575
+ `a ${r3(rx)},${r3(ry)} 0 0 0 ${r3(w)} 0 ` +
576
+ `l 0 ${r3(-body)}`);
577
+ }, { innerRect: (w, h) => ({ x: 0.1 * w, y: 0.28 * h, w: 0.8 * w, h: 0.5 * h }) })), {
578
+ // Card 7 — geometry-true anchors. Ports ride the cylinder's real geometry: the
579
+ // top port sits on the FRONT RIM SEAM (the visible top edge of the body, at
580
+ // y = 2·ry), the bottom on the front base arc, and the sides on the vertical
581
+ // body seam — not the bounding box.
582
+ portAnchor(width, height, side, rank, count) {
583
+ const ry = cylinderRy(width, height);
584
+ const rx = width / 2;
585
+ const cx = width / 2;
586
+ const f = edgeFraction(rank, count);
587
+ if (side === 'left' || side === 'right') {
588
+ return { x: side === 'left' ? 0 : width, y: ry + (height - 2 * ry) * f };
589
+ }
590
+ const x = Math.max(0, Math.min(width, cx + (f - 0.5) * rx * 1.6));
591
+ const dx = rx > 0 ? (x - cx) / rx : 0;
592
+ const off = ry * Math.sqrt(Math.max(0, 1 - dx * dx));
593
+ // front rim seam (top) / front base arc (bottom)
594
+ return side === 'top' ? { x, y: ry + off } : { x, y: height - ry + off };
595
+ },
596
+ // Smart-connection boundary: project onto the SILHOUETTE — the top/bottom rim
597
+ // curves and the vertical sides — instead of the bounding box.
598
+ boundaryPoint(rect, side, cross) {
599
+ const ry = cylinderRy(rect.w, rect.h);
600
+ const rx = rect.w / 2;
601
+ const cx = rect.x + rect.w / 2;
602
+ if (side === 'left')
603
+ return { x: rect.x, y: clampN(cross, rect.y + ry, rect.y + rect.h - ry) };
604
+ if (side === 'right')
605
+ return { x: rect.x + rect.w, y: clampN(cross, rect.y + ry, rect.y + rect.h - ry) };
606
+ const px = clampN(cross, rect.x, rect.x + rect.w);
607
+ const dx = rx > 0 ? (px - cx) / rx : 0;
608
+ const off = ry * Math.sqrt(Math.max(0, 1 - dx * dx));
609
+ return side === 'top'
610
+ ? { x: px, y: rect.y + ry - off } // upper half of the top rim
611
+ : { x: px, y: rect.y + rect.h - ry + off }; // lower half of the base
612
+ } });
613
+ const CloudShape = pathShape('cloud', (b) => {
614
+ // Five bump arcs around the box — a recognizable cloud silhouette scaled
615
+ // to (w, h). Bumps are cubic beziers so grow/dx-dy just move the box.
616
+ const { x0, y0, w, h } = b;
617
+ const X = (fx) => r3(x0 + fx * w);
618
+ const Y = (fy) => r3(y0 + fy * h);
619
+ return (`M ${X(0.25)},${Y(0.85)} ` +
620
+ `C ${X(0.05)},${Y(0.85)} ${X(0.05)},${Y(0.55)} ${X(0.2)},${Y(0.5)} ` +
621
+ `C ${X(0.15)},${Y(0.2)} ${X(0.45)},${Y(0.1)} ${X(0.55)},${Y(0.3)} ` +
622
+ `C ${X(0.65)},${Y(0.08)} ${X(0.95)},${Y(0.15)} ${X(0.85)},${Y(0.45)} ` +
623
+ `C ${X(1.02)},${Y(0.5)} ${X(0.98)},${Y(0.82)} ${X(0.78)},${Y(0.85)} ` +
624
+ `Z`);
625
+ }, { innerRect: (w, h) => ({ x: 0.2 * w, y: 0.35 * h, w: 0.6 * w, h: 0.45 * h }) });
626
+ // Predefined process / subroutine: rect + a vertical bar inset on each side.
627
+ const PredefinedProcessShape = pathShape('predefined-process', (b) => {
628
+ const { x0, y0, w, h } = b;
629
+ const bar = w * 0.1;
630
+ const rect = `M ${r3(x0)},${r3(y0)} L ${r3(x0 + w)},${r3(y0)} L ${r3(x0 + w)},${r3(y0 + h)} L ${r3(x0)},${r3(y0 + h)} Z`;
631
+ const left = `M ${r3(x0 + bar)},${r3(y0)} L ${r3(x0 + bar)},${r3(y0 + h)}`;
632
+ const right = `M ${r3(x0 + w - bar)},${r3(y0)} L ${r3(x0 + w - bar)},${r3(y0 + h)}`;
633
+ return `${rect} ${left} ${right}`;
634
+ }, { innerRect: (w, h) => ({ x: 0.12 * w, y: 0.12 * h, w: 0.76 * w, h: 0.76 * h }) });
635
+ // UML component: body rect + two small tabs protruding on the left edge.
636
+ const ComponentShape = pathShape('component', (b) => {
637
+ const { x0, y0, w, h } = b;
638
+ const tw = w * 0.14;
639
+ const th = h * 0.16;
640
+ const bodyX = x0 + tw / 2;
641
+ const bodyW = w - tw / 2;
642
+ const y1 = y0 + h * 0.2;
643
+ const y2 = y0 + h * 0.55;
644
+ const body = `M ${r3(bodyX)},${r3(y0)} L ${r3(x0 + bodyW)},${r3(y0)} L ${r3(x0 + bodyW)},${r3(y0 + h)} L ${r3(bodyX)},${r3(y0 + h)} Z`;
645
+ const tab = (ty) => `M ${r3(x0)},${r3(ty)} L ${r3(x0 + tw)},${r3(ty)} L ${r3(x0 + tw)},${r3(ty + th)} L ${r3(x0)},${r3(ty + th)} Z`;
646
+ return `${body} ${tab(y1)} ${tab(y2)}`;
647
+ }, { innerRect: (w, h) => ({ x: 0.16 * w, y: 0.1 * h, w: 0.76 * w, h: 0.8 * h }) });
648
+ // Note: folded top-right corner rect + the little fold triangle.
649
+ const NoteShape = Object.assign(Object.assign({}, pathShape('note', () => '', {
650
+ innerRect: (w, h) => ({ x: 0.08 * w, y: 0.08 * h, w: 0.84 * w, h: 0.84 * h }),
651
+ })), { outline(width, height, t = {}) {
652
+ const b = boxOf(width, height, t);
653
+ const f = Math.min(b.w, b.h) * 0.25;
654
+ const { x0, y0, w, h } = b;
655
+ const body = `M ${r3(x0)},${r3(y0)} L ${r3(x0 + w - f)},${r3(y0)} L ${r3(x0 + w)},${r3(y0 + f)} L ${r3(x0 + w)},${r3(y0 + h)} L ${r3(x0)},${r3(y0 + h)} Z`;
656
+ const fold = `M ${r3(x0 + w - f)},${r3(y0)} L ${r3(x0 + w - f)},${r3(y0 + f)} L ${r3(x0 + w)},${r3(y0 + f)}`;
657
+ return { el: 'path', geom: { d: `${body} ${fold}` } };
658
+ },
659
+ boundaryPoint(rect, side, cross) {
660
+ const local = noteVerts({ x0: 0, y0: 0, w: rect.w, h: rect.h });
661
+ const world = local.map((v) => ({ x: v.x + rect.x, y: v.y + rect.y }));
662
+ return polygonBoundaryPoint(world, side, cross);
663
+ } });
664
+ // Terminal / stadium / pill: a fully rounded rectangle (rx = ry = height/2).
665
+ const TerminalShape = {
666
+ type: 'terminal',
667
+ styleMode: 'inline',
668
+ bodyStripKeys: ['rx', 'ry'], // never let a themed borderRadius fight rx = h/2
669
+ outline(width, height, t = {}) {
670
+ const b = boxOf(width, height, t);
671
+ const rad = b.h / 2;
672
+ return { el: 'rect', geom: { x: r3(b.x0), y: r3(b.y0), width: r3(b.w), height: r3(b.h), rx: r3(rad), ry: r3(rad) } };
673
+ },
674
+ boundaryPoint() {
675
+ return null; // straight top/bottom + semicircle ends → bbox edge is fine
676
+ },
677
+ portAnchor: boxPortAnchor,
678
+ innerRect: (w, h) => ({ x: h * 0.5, y: 0.15 * h, w: Math.max(0, w - h), h: 0.7 * h }),
679
+ };
680
+ // Actor (UML use-case): stick figure — head circle + torso/arms/legs strokes.
681
+ const ActorShape = {
682
+ type: 'actor',
683
+ styleMode: 'inline',
684
+ outline(width, height, t = {}) {
685
+ const b = boxOf(width, height, t);
686
+ const { x0, y0, w, h } = b;
687
+ const cx = x0 + w / 2;
688
+ const rHead = Math.min(w * 0.22, h * 0.16);
689
+ const headCy = y0 + rHead;
690
+ const neck = headCy + rHead;
691
+ const hip = y0 + h * 0.62;
692
+ const arms = y0 + h * 0.4;
693
+ // head as two arcs (full circle), then torso, arms, and two legs
694
+ const head = `M ${r3(cx - rHead)},${r3(headCy)} a ${r3(rHead)},${r3(rHead)} 0 1 0 ${r3(2 * rHead)} 0 a ${r3(rHead)},${r3(rHead)} 0 1 0 ${r3(-2 * rHead)} 0`;
695
+ const torso = `M ${r3(cx)},${r3(neck)} L ${r3(cx)},${r3(hip)}`;
696
+ const armLine = `M ${r3(x0 + w * 0.18)},${r3(arms)} L ${r3(x0 + w * 0.82)},${r3(arms)}`;
697
+ const legs = `M ${r3(x0 + w * 0.2)},${r3(y0 + h)} L ${r3(cx)},${r3(hip)} L ${r3(x0 + w * 0.8)},${r3(y0 + h)}`;
698
+ return { el: 'path', geom: { d: `${head} ${torso} ${armLine} ${legs}` } };
699
+ },
700
+ boundaryPoint() {
701
+ return null;
702
+ },
703
+ // Card 7 — geometry-true anchors: the side ports attach to the actor's HANDS
704
+ // (the ends of the arm line at 40% height), the top to the head crown, and the
705
+ // bottom between the feet. Multiple ports on a side fan slightly so they don't
706
+ // stack on the same hand.
707
+ portAnchor(width, height, side, rank, count) {
708
+ const armY = height * 0.4;
709
+ const spread = (rank - (count - 1) / 2) * height * 0.12;
710
+ switch (side) {
711
+ case 'left':
712
+ return { x: width * 0.18, y: clampN(armY + spread, 0, height) };
713
+ case 'right':
714
+ return { x: width * 0.82, y: clampN(armY + spread, 0, height) };
715
+ case 'top':
716
+ return { x: width / 2, y: 0 };
717
+ case 'bottom':
718
+ default:
719
+ return { x: width * (0.2 + 0.6 * edgeFraction(rank, count)), y: height };
720
+ }
721
+ },
722
+ };
723
+ // ---------------------------------------------------------------------------
724
+ // Registry
725
+ // ---------------------------------------------------------------------------
726
+ const registry = new Map();
727
+ /**
728
+ * Register (or replace) a shape definition. This is the payoff: a new shape is
729
+ * added in ONE place and immediately works across body/selection/shadow,
730
+ * smart-connection boundaries and port positioning — no switch edits.
731
+ */
732
+ function registerShape(type, def) {
733
+ registry.set(type, Object.assign(Object.assign({}, def), { type }));
734
+ // Wave 6: participate in the version/notify protocol (see `unregisterShape`
735
+ // below) so cached renders invalidate and ExtensionHost disposers are exact.
736
+ notifyShapeRegistered();
737
+ }
738
+ /**
739
+ * Register an arbitrary SVG-path shape (Card 2). This is the payoff of the
740
+ * geometry contract: a userland caller adds a brand-new silhouette in ONE call
741
+ * and it works everywhere the built-ins do — node body, selection highlight,
742
+ * drop shadow, smart-connection boundary and geometry-true port anchors — with
743
+ * NO core-team switch edits.
744
+ *
745
+ * ```ts
746
+ * // Parametric — a 5-point star that fills any box.
747
+ * registerPathShape('star', (w, h) => starPath(w, h));
748
+ * // Static — a chevron authored in a 24×24 art box.
749
+ * registerPathShape('chevron', 'M2,4 L14,4 L22,12 L14,20 L2,20 L10,12 Z',
750
+ * { viewBox: { x: 0, y: 0, w: 24, h: 24 } });
751
+ * ```
752
+ */
753
+ function registerPathShape(type, path, opts = {}) {
754
+ registry.set(type, buildPathShapeDefinition(type, path, opts));
755
+ // Wave 6: path shapes bypass `registerShape` (they build the definition here),
756
+ // so they must bump the version themselves or an extension that contributes a
757
+ // path shape would be invisible to cache invalidation and to its own disposer.
758
+ notifyShapeRegistered();
759
+ }
760
+ /**
761
+ * BUILD a path shape's definition without storing it anywhere.
762
+ *
763
+ * Extracted from {@link registerPathShape} so a PER-DIAGRAM registry can offer
764
+ * `registerPathShape` too. Everything expensive and everything subtle — path
765
+ * parsing, the one-slot outline sample memo, the derived boundary and port
766
+ * anchors — lives here, so the global and scoped paths cannot drift into
767
+ * producing different geometry for the same path.
768
+ */
769
+ function buildPathShapeDefinition(type, path, opts = {}) {
770
+ var _a, _b;
771
+ const steps = (_a = opts.sampleSteps) !== null && _a !== void 0 ? _a : 24;
772
+ const viewBox = (_b = opts.viewBox) !== null && _b !== void 0 ? _b : { x: 0, y: 0, w: 1, h: 1 };
773
+ // Commands for a natural (origin-anchored) `width × height` box. Static strings
774
+ // are parsed ONCE and rescaled per size; generators re-parse their output.
775
+ const staticCmds = typeof path === 'string' ? (0, path_geometry_1.parsePath)(path) : null;
776
+ const cmdsForSize = (width, height) => staticCmds
777
+ ? (0, path_outline_1.fitCmdsToBox)(staticCmds, viewBox, width, height)
778
+ : (0, path_geometry_1.parsePath)(path(width, height));
779
+ // One-slot memo for the sampled outline — port positions are recomputed every
780
+ // frame per port, so re-flattening the path each call would be wasteful.
781
+ let sampleKey = '';
782
+ let sampleCache = [];
783
+ const outlinePoints = (width, height) => {
784
+ const key = `${width}x${height}`;
785
+ if (key !== sampleKey) {
786
+ sampleKey = key;
787
+ sampleCache = (0, path_outline_1.sampleOutlinePoints)(cmdsForSize(width, height), steps);
788
+ }
789
+ return sampleCache;
790
+ };
791
+ return {
792
+ type,
793
+ styleMode: 'inline',
794
+ outline(width, height, t = {}) {
795
+ const box = boxOf(width, height, t);
796
+ // Draw at the (grown) box size, then translate to the box origin so grow
797
+ // (selection padding) and dx/dy (shadow offset) compose exactly as they do
798
+ // for every other shape.
799
+ const cmds = (0, path_outline_1.translateCmds)(cmdsForSize(box.w, box.h), box.x0, box.y0);
800
+ return { el: 'path', geom: { d: (0, path_outline_1.serializePathCmds)(cmds) } };
801
+ },
802
+ boundaryPoint(rect, side, cross) {
803
+ if (opts.boundaryPoint)
804
+ return opts.boundaryPoint(rect, side, cross);
805
+ const local = outlinePoints(rect.w, rect.h);
806
+ if (local.length < 3)
807
+ return null; // degenerate → caller uses bbox edge
808
+ const world = local.map((v) => ({ x: v.x + rect.x, y: v.y + rect.y }));
809
+ return polygonBoundaryPoint(world, side, cross);
810
+ },
811
+ portAnchor(width, height, side, rank, count) {
812
+ if (opts.portAnchor)
813
+ return opts.portAnchor(width, height, side, rank, count);
814
+ const verts = outlinePoints(width, height);
815
+ if (verts.length < 3)
816
+ return boxPortAnchor(width, height, side, rank, count);
817
+ return polygonPortAnchor(verts, width, height, side, rank, count);
818
+ },
819
+ innerRect: opts.innerRect,
820
+ };
821
+ }
822
+ /**
823
+ * The rect shape is the default fallback for unknown / unset shape types.
824
+ *
825
+ * Resolution order is DIAGRAM-FIRST, then process-global. A diagram that
826
+ * contributed its own `badge` sees its own; every other diagram — and this one,
827
+ * for every name it did not claim — still sees the global registry. See
828
+ * `ext/registry-scope.ts` for why the lookup is ambient rather than threaded.
829
+ */
830
+ function getShape(type) {
831
+ var _a, _b, _c;
832
+ if (!type)
833
+ return RectShape;
834
+ return (_c = (_b = (_a = (0, registry_scope_1.scopedTable)(registry_scope_1.SHAPES)) === null || _a === void 0 ? void 0 : _a.get(type)) !== null && _b !== void 0 ? _b : registry.get(type)) !== null && _c !== void 0 ? _c : RectShape;
835
+ }
836
+ /** Whether a shape type is registered (excludes the implicit rect fallback). */
837
+ function hasShape(type) {
838
+ var _a;
839
+ return ((_a = (0, registry_scope_1.scopedTable)(registry_scope_1.SHAPES)) === null || _a === void 0 ? void 0 : _a.has(type)) === true || registry.has(type);
840
+ }
841
+ /** All registered shape type names (built-ins + extended library + aliases). */
842
+ function listShapes() {
843
+ const scoped = (0, registry_scope_1.scopedTable)(registry_scope_1.SHAPES);
844
+ if (!scoped || scoped.size === 0)
845
+ return [...registry.keys()];
846
+ // Union, global order first, so an override renames nothing and adds nothing twice.
847
+ return [...new Set([...registry.keys(), ...scoped.keys()])];
848
+ }
849
+ // ---------------------------------------------------------------------------
850
+ // Wave 6 — Card 0: removal + invalidation.
851
+ //
852
+ // The registry previously had NO removal path and NO change signal, which made
853
+ // a leak-free `ExtensionHost` disposer impossible to synthesize: an extension
854
+ // could add a shape but never take it back, so tearing an extension down left
855
+ // its shapes live forever. These are PURELY ADDITIVE — `registerShape` and the
856
+ // lookup path above are untouched — and they are what `shapes.register()` on the
857
+ // ExtensionHost returns its disposer against.
858
+ //
859
+ // The version counter mirrors the one edge-templates and the style registry
860
+ // already expose, so a renderer can invalidate a cached VNode when the shape
861
+ // catalogue changes underneath it.
862
+ // ---------------------------------------------------------------------------
863
+ let shapeVersion = 0;
864
+ const shapeListeners = new Set();
865
+ function bumpShapes() {
866
+ shapeVersion++;
867
+ for (const listener of [...shapeListeners])
868
+ listener();
869
+ }
870
+ /** Remove a registered shape. Returns false when the type was not registered. */
871
+ function unregisterShape(type) {
872
+ const existed = registry.delete(type);
873
+ if (existed)
874
+ bumpShapes();
875
+ return existed;
876
+ }
877
+ /**
878
+ * Snapshot the current catalogue, so a caller can restore it later. Used by the
879
+ * ExtensionHost to give a scoped extension an exact "undo" even when it OVERWROTE
880
+ * an existing shape rather than adding a new one.
881
+ */
882
+ function getShapeDefinition(type) {
883
+ var _a, _b;
884
+ return (_b = (_a = (0, registry_scope_1.scopedTable)(registry_scope_1.SHAPES)) === null || _a === void 0 ? void 0 : _a.get(type)) !== null && _b !== void 0 ? _b : registry.get(type);
885
+ }
886
+ /**
887
+ * Monotonic counter, incremented on every add/remove. Cheap cache key.
888
+ * NOTE: `registerShape` itself bumps it — see the wrapper installed below.
889
+ */
890
+ function getShapeRegistryVersion() {
891
+ return shapeVersion;
892
+ }
893
+ /** Subscribe to catalogue changes. Returns a disposer. */
894
+ function onShapeRegistryChange(listener) {
895
+ shapeListeners.add(listener);
896
+ return () => shapeListeners.delete(listener);
897
+ }
898
+ /** Internal: let `registerShape` participate in the version/notify protocol. */
899
+ function notifyShapeRegistered() {
900
+ bumpShapes();
901
+ }
902
+ /**
903
+ * The label box for a shape in local coords. Falls back to a padded bounding
904
+ * box when the shape doesn't override `innerRect`.
905
+ */
906
+ function getInnerRect(def, width, height) {
907
+ return def.innerRect ? def.innerRect(width, height) : defaultInnerRect(width, height);
908
+ }
909
+ /** Padded-bbox label box: inset by up to 8px, clamped so it never inverts. */
910
+ function defaultInnerRect(width, height) {
911
+ const pad = Math.max(0, Math.min(8, width / 2 - 1, height / 2 - 1));
912
+ return { x: pad, y: pad, w: width - 2 * pad, h: height - 2 * pad };
913
+ }
914
+ // Register the five built-ins.
915
+ for (const def of [RectShape, CircleShape, EllipseShape, DiamondShape, HexagonShape]) {
916
+ registry.set(def.type, def);
917
+ }
918
+ // Register the extended flowchart / BPMN / UML / ERD figure library. Each is a
919
+ // full ShapeDefinition, so it works everywhere the built-ins do — no switch
920
+ // edits at any of the five render sites.
921
+ for (const def of [
922
+ ParallelogramShape,
923
+ ParallelogramTopShape,
924
+ TrapezoidShape,
925
+ TrapezoidBottomShape,
926
+ TriangleShape,
927
+ TriangleDownShape,
928
+ PackageShape,
929
+ CubeShape,
930
+ DocumentShape,
931
+ CylinderShape,
932
+ CloudShape,
933
+ PredefinedProcessShape,
934
+ ComponentShape,
935
+ NoteShape,
936
+ TerminalShape,
937
+ ActorShape,
938
+ ]) {
939
+ registry.set(def.type, def);
940
+ }
941
+ // Common aliases (draw.io / mermaid / BPMN vocabulary) → the same definitions.
942
+ const SHAPE_ALIASES = {
943
+ data: ParallelogramShape, // flowchart I/O
944
+ 'input-output': ParallelogramShape,
945
+ database: CylinderShape,
946
+ cylinder3d: CylinderShape,
947
+ subroutine: PredefinedProcessShape,
948
+ 'predefined-process-alt': PredefinedProcessShape,
949
+ stadium: TerminalShape,
950
+ pill: TerminalShape,
951
+ terminator: TerminalShape,
952
+ 'manual-operation': TrapezoidShape, // narrow-bottom in some dialects; near enough
953
+ folder: PackageShape,
954
+ comment: NoteShape,
955
+ 'use-case-actor': ActorShape,
956
+ };
957
+ for (const [alias, def] of Object.entries(SHAPE_ALIASES)) {
958
+ registry.set(alias, def);
959
+ }
960
+ // ---------------------------------------------------------------------------
961
+ // VNode builders — turn a ShapeDefinition + styles into the exact VNodes the
962
+ // three render sites used to build inline. Kept here so all shape geometry and
963
+ // its style-composition rules live together.
964
+ // ---------------------------------------------------------------------------
965
+ /**
966
+ * Node body VNode. Reproduces the historical per-shape style composition:
967
+ * - 'inline' shapes (rect/circle/diamond) hoist fill/stroke/strokeWidth into
968
+ * an inline `style` string (highest CSS specificity) and pass the rest
969
+ * through; circle strips the meaningless rect rx/ry.
970
+ * - 'spread' shapes (ellipse/hexagon) spread node styles as presentation
971
+ * attributes with geometry merged last.
972
+ */
973
+ /** CSS property name for each paint key that may carry a `var()` reference. */
974
+ const CSS_PAINT_PROPS = {
975
+ fill: 'fill',
976
+ stroke: 'stroke',
977
+ strokeWidth: 'stroke-width',
978
+ };
979
+ /**
980
+ * Pull any paint whose value is a `var(--…)` reference out of the attribute bag
981
+ * and into an inline CSS style string (where variables are legal).
982
+ *
983
+ * `hoisted` is `''` when nothing needed moving — the overwhelmingly common case,
984
+ * and the caller then emits the original props untouched.
985
+ */
986
+ function hoistCssVarPaints(styles) {
987
+ const rest = Object.assign({}, styles);
988
+ const decls = [];
989
+ for (const [key, cssProp] of Object.entries(CSS_PAINT_PROPS)) {
990
+ const value = rest[key];
991
+ if (typeof value === 'string' && value.includes('var(')) {
992
+ decls.push(`${cssProp}: ${value}`);
993
+ delete rest[key];
994
+ }
995
+ }
996
+ if (decls.length === 0)
997
+ return { hoisted: '', rest };
998
+ // Preserve an existing style string, with the hoisted paints appended so they
999
+ // still win over anything the caller had already put there.
1000
+ const existing = typeof rest['style'] === 'string' ? rest['style'] : '';
1001
+ delete rest['style'];
1002
+ return { hoisted: [existing, decls.join('; ')].filter(Boolean).join('; '), rest };
1003
+ }
1004
+ function buildShapeBody(def, width, height, cornerRadius,
1005
+ // `any` (not Record<string, any>) so the inline `style` string below is
1006
+ // accepted — matches the original render helpers' loosely-typed styles arg.
1007
+ styles) {
1008
+ var _a, _b;
1009
+ const spec = def.outline(width, height, { radius: cornerRadius, radiusY: true });
1010
+ if (def.styleMode === 'spread') {
1011
+ // TWO bugs met on this line, found independently by the export and the theming
1012
+ // work. Both are the same root cause — a 'spread' shape paints through
1013
+ // PRESENTATION ATTRIBUTES — and the fix for one subsumes the other:
1014
+ //
1015
+ // 1. A presentation attribute LOSES to any author stylesheet rule. So
1016
+ // `[data-grafloria-instance] .diagram-node { fill: var(--grafloria-node-fill) }`
1017
+ // beat `fill="#e8f5e9"`, and in CSS mode an ellipse/hexagon (and every
1018
+ // 'spread' figure) silently rendered the THEME fill instead of its own.
1019
+ // 'inline' shapes never had this, because they hoist the same values into
1020
+ // an inline `style`, which DOES beat the stylesheet — the two style modes
1021
+ // simply disagreed about the cascade.
1022
+ // 2. An attribute cannot hold a CSS variable: `fill="var(--grafloria-…)"` is
1023
+ // invalid, the attribute is dropped, and the shape paints BLACK. Wave 4
1024
+ // made that reachable, because a theme-bound property (`themeRef(...)`)
1025
+ // emits exactly such a var() reference.
1026
+ //
1027
+ // Hoisting EVERY paint into the inline style fixes both: inline style outranks
1028
+ // the stylesheet (1) and is the one place var() is legal (2). The presentation
1029
+ // attributes are KEPT, because Canvas/programmatic consumers and existing tests
1030
+ // read props.fill — and where the value is a var(), the inline style is what
1031
+ // actually paints.
1032
+ const inlineStyle = composeInlineStyle(styles);
1033
+ // Literal paints KEEP their presentation attribute (Canvas + programmatic
1034
+ // consumers and the existing tests read props.fill). A var() paint DROPS it:
1035
+ // the attribute is invalid, so it is not merely outranked — it is garbage that
1036
+ // every downstream consumer would have to special-case (the headless exporter
1037
+ // would write `fill="var(--…)"` into a standalone file, where nothing resolves
1038
+ // it and the shape paints BLACK).
1039
+ const { rest } = hoistCssVarPaints(styles);
1040
+ return {
1041
+ type: spec.el,
1042
+ props: Object.assign(Object.assign(Object.assign({}, rest), (inlineStyle ? { style: mergeInlineStyle(styles.style, inlineStyle) } : {})), spec.geom),
1043
+ };
1044
+ }
1045
+ // Split geometry into pre/post so deferred keys (rect rx/ry) win over any
1046
+ // same-named key arriving via the pass-through styles.
1047
+ const deferKeys = (_a = def.bodyDeferGeomKeys) !== null && _a !== void 0 ? _a : [];
1048
+ const pre = {};
1049
+ const post = {};
1050
+ for (const [k, v] of Object.entries(spec.geom)) {
1051
+ (deferKeys.includes(k) ? post : pre)[k] = v;
1052
+ }
1053
+ const { fill, stroke, strokeWidth, className } = styles, rest = tslib_1.__rest(styles, ["fill", "stroke", "strokeWidth", "className"]);
1054
+ for (const k of (_b = def.bodyStripKeys) !== null && _b !== void 0 ? _b : [])
1055
+ delete rest[k];
1056
+ const inlineStyle = composeInlineStyle({ fill, stroke, strokeWidth });
1057
+ return {
1058
+ type: spec.el,
1059
+ props: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, pre), (className ? { className } : {})), (inlineStyle ? { style: inlineStyle } : {})), rest), post),
1060
+ };
1061
+ }
1062
+ /**
1063
+ * The paint values a node body must carry as an INLINE style, so they beat the
1064
+ * themed `.diagram-node` stylesheet rule (a presentation attribute would not).
1065
+ * Returns '' when no layer above the theme set anything — which is what lets an
1066
+ * untouched node still fall back to the theme.
1067
+ */
1068
+ function composeInlineStyle(styles) {
1069
+ return [
1070
+ styles.fill ? `fill: ${styles.fill}` : '',
1071
+ styles.stroke ? `stroke: ${styles.stroke}` : '',
1072
+ styles.strokeWidth !== undefined ? `stroke-width: ${styles.strokeWidth}` : '',
1073
+ ]
1074
+ .filter(Boolean)
1075
+ .join('; ');
1076
+ }
1077
+ /** Append the hoisted paint to a style the caller already had (string or object form). */
1078
+ function mergeInlineStyle(existing, hoisted) {
1079
+ if (existing === null || existing === undefined || existing === '')
1080
+ return hoisted;
1081
+ if (typeof existing === 'string')
1082
+ return `${existing}; ${hoisted}`;
1083
+ const parts = Object.entries(existing)
1084
+ .filter(([, v]) => v !== null && v !== undefined)
1085
+ .map(([k, v]) => `${k.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase()}: ${v}`);
1086
+ return [...parts, hoisted].join('; ');
1087
+ }
1088
+ /** Selection-highlight VNode: the outline grown by `padding`, plus baseProps. */
1089
+ function buildShapeSelection(def, width, height, padding, baseProps) {
1090
+ const spec = def.outline(width, height, { grow: padding, radius: 6, radiusY: true });
1091
+ return { type: spec.el, props: Object.assign(Object.assign({}, spec.geom), baseProps) };
1092
+ }
1093
+ /** Drop-shadow VNode: the outline offset by (offset, offset), plus baseProps. */
1094
+ function buildShapeShadow(def, width, height, offset, borderRadius, baseProps) {
1095
+ const spec = def.outline(width, height, {
1096
+ dx: offset,
1097
+ dy: offset,
1098
+ radius: borderRadius,
1099
+ radiusAlways: true,
1100
+ radiusY: false,
1101
+ });
1102
+ return { type: spec.el, props: Object.assign(Object.assign({}, spec.geom), baseProps) };
1103
+ }
1104
+ //# sourceMappingURL=shape-registry.js.map