@grafloria/element 0.3.19 → 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 (638) hide show
  1. package/{src/index.ts → esm/src/index.js} +60 -569
  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/{src/lib/dashboard-kit/styles.ts → esm/src/lib/dashboard-kit/styles.js} +8 -9
  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/{src/lib/diagram-kit/styles.ts → esm/src/lib/diagram-kit/styles.js} +10 -10
  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/{src/lib/stencil-kit/styles.ts → esm/src/lib/stencil-kit/styles.js} +9 -9
  28. package/package.json +12 -3
  29. package/jest.config.ts +0 -16
  30. package/project.json +0 -44
  31. package/src/front-door-probe.spec.ts +0 -173
  32. package/src/index.js.map +0 -1
  33. package/src/lib/dashboard-kit/dashboard.js.map +0 -1
  34. package/src/lib/dashboard-kit/dashboard.spec.ts +0 -821
  35. package/src/lib/dashboard-kit/dashboard.ts +0 -906
  36. package/src/lib/dashboard-kit/grid-binder.js.map +0 -1
  37. package/src/lib/dashboard-kit/grid-binder.ts +0 -1976
  38. package/src/lib/dashboard-kit/grid-mapping.js.map +0 -1
  39. package/src/lib/dashboard-kit/grid-mapping.spec.ts +0 -308
  40. package/src/lib/dashboard-kit/grid-mapping.ts +0 -283
  41. package/src/lib/dashboard-kit/index.js.map +0 -1
  42. package/src/lib/dashboard-kit/index.ts +0 -56
  43. package/src/lib/dashboard-kit/styles.js.map +0 -1
  44. package/src/lib/dashboard-kit/widgets.js.map +0 -1
  45. package/src/lib/dashboard-kit/widgets.spec.ts +0 -239
  46. package/src/lib/dashboard-kit/widgets.ts +0 -484
  47. package/src/lib/diagram-kit/card.js.map +0 -1
  48. package/src/lib/diagram-kit/card.ts +0 -219
  49. package/src/lib/diagram-kit/diagram-kit.spec.ts +0 -465
  50. package/src/lib/diagram-kit/editing.js.map +0 -1
  51. package/src/lib/diagram-kit/editing.spec.ts +0 -172
  52. package/src/lib/diagram-kit/editing.ts +0 -493
  53. package/src/lib/diagram-kit/er.js.map +0 -1
  54. package/src/lib/diagram-kit/er.ts +0 -246
  55. package/src/lib/diagram-kit/handles.js.map +0 -1
  56. package/src/lib/diagram-kit/handles.spec.ts +0 -224
  57. package/src/lib/diagram-kit/handles.ts +0 -375
  58. package/src/lib/diagram-kit/index.js.map +0 -1
  59. package/src/lib/diagram-kit/index.ts +0 -66
  60. package/src/lib/diagram-kit/join-guidance.js.map +0 -1
  61. package/src/lib/diagram-kit/join-guidance.spec.ts +0 -241
  62. package/src/lib/diagram-kit/join-guidance.ts +0 -390
  63. package/src/lib/diagram-kit/rows.js.map +0 -1
  64. package/src/lib/diagram-kit/rows.ts +0 -174
  65. package/src/lib/diagram-kit/styles.js.map +0 -1
  66. package/src/lib/diagram-kit/uml.js.map +0 -1
  67. package/src/lib/diagram-kit/uml.ts +0 -213
  68. package/src/lib/diagram-kit/update.js.map +0 -1
  69. package/src/lib/diagram-kit/update.spec.ts +0 -208
  70. package/src/lib/diagram-kit/update.ts +0 -324
  71. package/src/lib/grafloria-flow-element.js.map +0 -1
  72. package/src/lib/grafloria-flow-element.spec.ts +0 -290
  73. package/src/lib/grafloria-flow-element.ts +0 -298
  74. package/src/lib/grafloria.js.map +0 -1
  75. package/src/lib/grafloria.ts +0 -151
  76. package/src/lib/load.js.map +0 -1
  77. package/src/lib/load.spec.ts +0 -565
  78. package/src/lib/load.ts +0 -359
  79. package/src/lib/node-type-registry.js.map +0 -1
  80. package/src/lib/node-type-registry.ts +0 -76
  81. package/src/lib/stencil-kit/builders.js.map +0 -1
  82. package/src/lib/stencil-kit/builders.ts +0 -58
  83. package/src/lib/stencil-kit/card-builders.js.map +0 -1
  84. package/src/lib/stencil-kit/card-builders.ts +0 -113
  85. package/src/lib/stencil-kit/index.js.map +0 -1
  86. package/src/lib/stencil-kit/index.ts +0 -17
  87. package/src/lib/stencil-kit/palette.js.map +0 -1
  88. package/src/lib/stencil-kit/palette.ts +0 -482
  89. package/src/lib/stencil-kit/shape-data.js.map +0 -1
  90. package/src/lib/stencil-kit/shape-data.spec.ts +0 -470
  91. package/src/lib/stencil-kit/shape-data.ts +0 -680
  92. package/src/lib/stencil-kit/styles.js.map +0 -1
  93. package/src/libs/element/src/index.js.map +0 -1
  94. package/src/libs/element/src/lib/dashboard-kit/dashboard.js.map +0 -1
  95. package/src/libs/element/src/lib/dashboard-kit/grid-binder.js.map +0 -1
  96. package/src/libs/element/src/lib/dashboard-kit/grid-mapping.js.map +0 -1
  97. package/src/libs/element/src/lib/dashboard-kit/index.js.map +0 -1
  98. package/src/libs/element/src/lib/dashboard-kit/styles.js.map +0 -1
  99. package/src/libs/element/src/lib/dashboard-kit/widgets.js.map +0 -1
  100. package/src/libs/element/src/lib/diagram-kit/card.js.map +0 -1
  101. package/src/libs/element/src/lib/diagram-kit/editing.js.map +0 -1
  102. package/src/libs/element/src/lib/diagram-kit/er.js.map +0 -1
  103. package/src/libs/element/src/lib/diagram-kit/handles.js.map +0 -1
  104. package/src/libs/element/src/lib/diagram-kit/index.js.map +0 -1
  105. package/src/libs/element/src/lib/diagram-kit/join-guidance.js.map +0 -1
  106. package/src/libs/element/src/lib/diagram-kit/rows.js.map +0 -1
  107. package/src/libs/element/src/lib/diagram-kit/styles.js.map +0 -1
  108. package/src/libs/element/src/lib/diagram-kit/uml.js.map +0 -1
  109. package/src/libs/element/src/lib/diagram-kit/update.js.map +0 -1
  110. package/src/libs/element/src/lib/grafloria-flow-element.js.map +0 -1
  111. package/src/libs/element/src/lib/grafloria.js.map +0 -1
  112. package/src/libs/element/src/lib/load.js.map +0 -1
  113. package/src/libs/element/src/lib/node-type-registry.js.map +0 -1
  114. package/src/libs/element/src/lib/stencil-kit/builders.js.map +0 -1
  115. package/src/libs/element/src/lib/stencil-kit/card-builders.js.map +0 -1
  116. package/src/libs/element/src/lib/stencil-kit/index.js.map +0 -1
  117. package/src/libs/element/src/lib/stencil-kit/palette.js.map +0 -1
  118. package/src/libs/element/src/lib/stencil-kit/shape-data.js.map +0 -1
  119. package/src/libs/element/src/lib/stencil-kit/styles.js.map +0 -1
  120. package/src/libs/engine/src/adapters/component-adapter.interface.js.map +0 -1
  121. package/src/libs/engine/src/adapters/index.js.map +0 -1
  122. package/src/libs/engine/src/clipboard/ClipboardManager.js.map +0 -1
  123. package/src/libs/engine/src/clipboard/index.js.map +0 -1
  124. package/src/libs/engine/src/collab/apply-op.js.map +0 -1
  125. package/src/libs/engine/src/collab/capture.js.map +0 -1
  126. package/src/libs/engine/src/collab/index.js.map +0 -1
  127. package/src/libs/engine/src/collab/integrity.js.map +0 -1
  128. package/src/libs/engine/src/collab/lww.js.map +0 -1
  129. package/src/libs/engine/src/collab/op-log.js.map +0 -1
  130. package/src/libs/engine/src/collab/op.js.map +0 -1
  131. package/src/libs/engine/src/collab/replica.js.map +0 -1
  132. package/src/libs/engine/src/collab/undo.js.map +0 -1
  133. package/src/libs/engine/src/commands/Command.js.map +0 -1
  134. package/src/libs/engine/src/commands/CommandManager.js.map +0 -1
  135. package/src/libs/engine/src/commands/basic/AddGroupCommand.js.map +0 -1
  136. package/src/libs/engine/src/commands/basic/AddLinkCommand.js.map +0 -1
  137. package/src/libs/engine/src/commands/basic/AddNodeCommand.js.map +0 -1
  138. package/src/libs/engine/src/commands/basic/AddToGroupCommand.js.map +0 -1
  139. package/src/libs/engine/src/commands/basic/AlignCommands.js.map +0 -1
  140. package/src/libs/engine/src/commands/basic/CollapseGroupCommand.js.map +0 -1
  141. package/src/libs/engine/src/commands/basic/CopyCommand.js.map +0 -1
  142. package/src/libs/engine/src/commands/basic/CutCommand.js.map +0 -1
  143. package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.js.map +0 -1
  144. package/src/libs/engine/src/commands/basic/DuplicateCommand.js.map +0 -1
  145. package/src/libs/engine/src/commands/basic/ExpandGroupCommand.js.map +0 -1
  146. package/src/libs/engine/src/commands/basic/MoveGroupCommand.js.map +0 -1
  147. package/src/libs/engine/src/commands/basic/MoveNodeCommand.js.map +0 -1
  148. package/src/libs/engine/src/commands/basic/NodeZOrderCommands.js.map +0 -1
  149. package/src/libs/engine/src/commands/basic/PasteCommand.js.map +0 -1
  150. package/src/libs/engine/src/commands/basic/PortCommands.js.map +0 -1
  151. package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.js.map +0 -1
  152. package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.js.map +0 -1
  153. package/src/libs/engine/src/commands/basic/RemoveGroupCommand.js.map +0 -1
  154. package/src/libs/engine/src/commands/basic/RemoveLinkCommand.js.map +0 -1
  155. package/src/libs/engine/src/commands/basic/RemoveNodeCommand.js.map +0 -1
  156. package/src/libs/engine/src/commands/basic/ResizeNodeCommand.js.map +0 -1
  157. package/src/libs/engine/src/commands/basic/RotateNodeCommand.js.map +0 -1
  158. package/src/libs/engine/src/commands/basic/SetFlexItemCommand.js.map +0 -1
  159. package/src/libs/engine/src/commands/basic/SetGridItemCommand.js.map +0 -1
  160. package/src/libs/engine/src/commands/basic/SetLayoutCommand.js.map +0 -1
  161. package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.js.map +0 -1
  162. package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.js.map +0 -1
  163. package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.js.map +0 -1
  164. package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.js.map +0 -1
  165. package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.js.map +0 -1
  166. package/src/libs/engine/src/commands/basic/SetNodeDataCommand.js.map +0 -1
  167. package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.js.map +0 -1
  168. package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.js.map +0 -1
  169. package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.js.map +0 -1
  170. package/src/libs/engine/src/commands/basic/SetParentCommand.js.map +0 -1
  171. package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.js.map +0 -1
  172. package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.js.map +0 -1
  173. package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.js.map +0 -1
  174. package/src/libs/engine/src/commands/basic/index.js.map +0 -1
  175. package/src/libs/engine/src/commands/basic/remapNodePortIds.js.map +0 -1
  176. package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.js.map +0 -1
  177. package/src/libs/engine/src/commands/composite/BatchCommand.js.map +0 -1
  178. package/src/libs/engine/src/commands/composite/MacroCommand.js.map +0 -1
  179. package/src/libs/engine/src/commands/composite/index.js.map +0 -1
  180. package/src/libs/engine/src/commands/index.js.map +0 -1
  181. package/src/libs/engine/src/comments/comment-store.js.map +0 -1
  182. package/src/libs/engine/src/comments/index.js.map +0 -1
  183. package/src/libs/engine/src/comments/mentions.js.map +0 -1
  184. package/src/libs/engine/src/comments/read-state.js.map +0 -1
  185. package/src/libs/engine/src/comments/types.js.map +0 -1
  186. package/src/libs/engine/src/config/InteractionConfig.js.map +0 -1
  187. package/src/libs/engine/src/config/index.js.map +0 -1
  188. package/src/libs/engine/src/dsl/DSL.js.map +0 -1
  189. package/src/libs/engine/src/dsl/advanced/StyleParser.js.map +0 -1
  190. package/src/libs/engine/src/dsl/advanced/TemplateParser.js.map +0 -1
  191. package/src/libs/engine/src/dsl/advanced/index.js.map +0 -1
  192. package/src/libs/engine/src/dsl/detector/LayoutDetector.js.map +0 -1
  193. package/src/libs/engine/src/dsl/extended/BPMNGenerator.js.map +0 -1
  194. package/src/libs/engine/src/dsl/extended/BPMNParser.js.map +0 -1
  195. package/src/libs/engine/src/dsl/extended/ERDGenerator.js.map +0 -1
  196. package/src/libs/engine/src/dsl/extended/ERDParser.js.map +0 -1
  197. package/src/libs/engine/src/dsl/extended/ERDTransformer.js.map +0 -1
  198. package/src/libs/engine/src/dsl/extended/UMLGenerator.js.map +0 -1
  199. package/src/libs/engine/src/dsl/extended/UMLParser.js.map +0 -1
  200. package/src/libs/engine/src/dsl/extended/index.js.map +0 -1
  201. package/src/libs/engine/src/dsl/generator/DSLFormatter.js.map +0 -1
  202. package/src/libs/engine/src/dsl/generator/DSLGenerator.js.map +0 -1
  203. package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.js.map +0 -1
  204. package/src/libs/engine/src/dsl/index.js.map +0 -1
  205. package/src/libs/engine/src/dsl/lexer/Lexer.js.map +0 -1
  206. package/src/libs/engine/src/dsl/mermaid/MermaidClass.js.map +0 -1
  207. package/src/libs/engine/src/dsl/mermaid/MermaidER.js.map +0 -1
  208. package/src/libs/engine/src/dsl/mermaid/MermaidState.js.map +0 -1
  209. package/src/libs/engine/src/dsl/mermaid/index.js.map +0 -1
  210. package/src/libs/engine/src/dsl/mermaid/layout.js.map +0 -1
  211. package/src/libs/engine/src/dsl/mermaid/lines.js.map +0 -1
  212. package/src/libs/engine/src/dsl/parser/Parser.js.map +0 -1
  213. package/src/libs/engine/src/dsl/sync/BidirectionalSync.js.map +0 -1
  214. package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.js.map +0 -1
  215. package/src/libs/engine/src/dsl/sync/LayoutApplicator.js.map +0 -1
  216. package/src/libs/engine/src/dsl/sync/SyncStateManager.js.map +0 -1
  217. package/src/libs/engine/src/dsl/sync/index.js.map +0 -1
  218. package/src/libs/engine/src/dsl/transformer/ASTTransformer.js.map +0 -1
  219. package/src/libs/engine/src/dsl/types/ASTNode.js.map +0 -1
  220. package/src/libs/engine/src/dsl/types/Token.js.map +0 -1
  221. package/src/libs/engine/src/engine/DiagramEngine.js.map +0 -1
  222. package/src/libs/engine/src/engine/DiagramMode.js.map +0 -1
  223. package/src/libs/engine/src/engine/DiagramModeTypes.js.map +0 -1
  224. package/src/libs/engine/src/engine/ModeManager.js.map +0 -1
  225. package/src/libs/engine/src/engine/index.js.map +0 -1
  226. package/src/libs/engine/src/events/EventBus.js.map +0 -1
  227. package/src/libs/engine/src/events/index.js.map +0 -1
  228. package/src/libs/engine/src/index.js.map +0 -1
  229. package/src/libs/engine/src/interaction/GroupCollapseService.js.map +0 -1
  230. package/src/libs/engine/src/interaction/GroupMembershipService.js.map +0 -1
  231. package/src/libs/engine/src/interaction/SemanticMembershipService.js.map +0 -1
  232. package/src/libs/engine/src/interaction/SwimlaneService.js.map +0 -1
  233. package/src/libs/engine/src/interaction/index.js.map +0 -1
  234. package/src/libs/engine/src/interop/drawio/importDrawio.js.map +0 -1
  235. package/src/libs/engine/src/interop/drawio/index.js.map +0 -1
  236. package/src/libs/engine/src/interop/drawio/xml.js.map +0 -1
  237. package/src/libs/engine/src/layout/CompoundLayoutService.js.map +0 -1
  238. package/src/libs/engine/src/layout/ILayoutAlgorithm.js.map +0 -1
  239. package/src/libs/engine/src/layout/LayoutManager.js.map +0 -1
  240. package/src/libs/engine/src/layout/SmartSpacingCalculator.js.map +0 -1
  241. package/src/libs/engine/src/layout/ViewportTransform.js.map +0 -1
  242. package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.js.map +0 -1
  243. package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.js.map +0 -1
  244. package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.js.map +0 -1
  245. package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.js.map +0 -1
  246. package/src/libs/engine/src/layout/community-layout-adapter.js.map +0 -1
  247. package/src/libs/engine/src/layout/component-packing.js.map +0 -1
  248. package/src/libs/engine/src/layout/dagre-layout-adapter.js.map +0 -1
  249. package/src/libs/engine/src/layout/edge-bundling.interface.js.map +0 -1
  250. package/src/libs/engine/src/layout/elk-layout-adapter.js.map +0 -1
  251. package/src/libs/engine/src/layout/elk-loader.js.map +0 -1
  252. package/src/libs/engine/src/layout/force-layout-adapter.js.map +0 -1
  253. package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.js.map +0 -1
  254. package/src/libs/engine/src/layout/incremental/mental-map.js.map +0 -1
  255. package/src/libs/engine/src/layout/incremental-layout.interface.js.map +0 -1
  256. package/src/libs/engine/src/layout/index.js.map +0 -1
  257. package/src/libs/engine/src/layout/layout-adapter.interface.js.map +0 -1
  258. package/src/libs/engine/src/layout/layout-auto-select.js.map +0 -1
  259. package/src/libs/engine/src/layout/layout-constraints.interface.js.map +0 -1
  260. package/src/libs/engine/src/layout/layout-graph.js.map +0 -1
  261. package/src/libs/engine/src/layout/layout-history.js.map +0 -1
  262. package/src/libs/engine/src/layout/layout-host.js.map +0 -1
  263. package/src/libs/engine/src/layout/layout-presets.js.map +0 -1
  264. package/src/libs/engine/src/layout/layout-quality-extended.js.map +0 -1
  265. package/src/libs/engine/src/layout/layout-quality-metrics.js.map +0 -1
  266. package/src/libs/engine/src/layout/layout-registry.js.map +0 -1
  267. package/src/libs/engine/src/layout/layout.service.js.map +0 -1
  268. package/src/libs/engine/src/layout/overlap-removal.js.map +0 -1
  269. package/src/libs/engine/src/layout/port-aware-layout.interface.js.map +0 -1
  270. package/src/libs/engine/src/layout/port-label-bridge.js.map +0 -1
  271. package/src/libs/engine/src/layout/portfolio-layouts.js.map +0 -1
  272. package/src/libs/engine/src/layout/rng.js.map +0 -1
  273. package/src/libs/engine/src/layout/spectral-layout-adapter.js.map +0 -1
  274. package/src/libs/engine/src/layout/steppable-layout.js.map +0 -1
  275. package/src/libs/engine/src/layout/subgraph-layout.interface.js.map +0 -1
  276. package/src/libs/engine/src/layout/sugiyama/layered-layout.js.map +0 -1
  277. package/src/libs/engine/src/layout/sugiyama/sugiyama.js.map +0 -1
  278. package/src/libs/engine/src/layout/tree-layout.js.map +0 -1
  279. package/src/libs/engine/src/layout/types.js.map +0 -1
  280. package/src/libs/engine/src/lib/performance/mobile-performance.service.js.map +0 -1
  281. package/src/libs/engine/src/models/DiagramEntity.js.map +0 -1
  282. package/src/libs/engine/src/models/DiagramModel.js.map +0 -1
  283. package/src/libs/engine/src/models/GroupModel.js.map +0 -1
  284. package/src/libs/engine/src/models/LinkModel.js.map +0 -1
  285. package/src/libs/engine/src/models/NodeModel.js.map +0 -1
  286. package/src/libs/engine/src/models/PortModel.js.map +0 -1
  287. package/src/libs/engine/src/models/StrokeModel.js.map +0 -1
  288. package/src/libs/engine/src/models/index.js.map +0 -1
  289. package/src/libs/engine/src/models/readonly-lock.js.map +0 -1
  290. package/src/libs/engine/src/performance/LRUCache.js.map +0 -1
  291. package/src/libs/engine/src/performance/PerformanceMonitor.js.map +0 -1
  292. package/src/libs/engine/src/performance/SpatialIndex.js.map +0 -1
  293. package/src/libs/engine/src/performance/index.js.map +0 -1
  294. package/src/libs/engine/src/plugins/PluginManager.js.map +0 -1
  295. package/src/libs/engine/src/plugins/index.js.map +0 -1
  296. package/src/libs/engine/src/ports/connection-rules.js.map +0 -1
  297. package/src/libs/engine/src/ports/dynamic-ports.js.map +0 -1
  298. package/src/libs/engine/src/ports/index.js.map +0 -1
  299. package/src/libs/engine/src/ports/port-groups.js.map +0 -1
  300. package/src/libs/engine/src/ports/port-type-registry.js.map +0 -1
  301. package/src/libs/engine/src/ports/port-types.js.map +0 -1
  302. package/src/libs/engine/src/rendering/HtmlTemplateRenderer.js.map +0 -1
  303. package/src/libs/engine/src/rendering/LemonadeJSRenderer.js.map +0 -1
  304. package/src/libs/engine/src/rendering/index.js.map +0 -1
  305. package/src/libs/engine/src/routing/LiveReroutingEngine.js.map +0 -1
  306. package/src/libs/engine/src/routing/ObstacleIndex.js.map +0 -1
  307. package/src/libs/engine/src/routing/ObstacleMap.js.map +0 -1
  308. package/src/libs/engine/src/routing/ObstacleMapBuilder.js.map +0 -1
  309. package/src/libs/engine/src/routing/PathSimplifier.js.map +0 -1
  310. package/src/libs/engine/src/routing/RoutingEngine.js.map +0 -1
  311. package/src/libs/engine/src/routing/algorithms/AStarRouter.js.map +0 -1
  312. package/src/libs/engine/src/routing/algorithms/DijkstraRouter.js.map +0 -1
  313. package/src/libs/engine/src/routing/algorithms/ElkRouter.js.map +0 -1
  314. package/src/libs/engine/src/routing/algorithms/ManhattanRouter.js.map +0 -1
  315. package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.js.map +0 -1
  316. package/src/libs/engine/src/routing/algorithms/StraightRouter.js.map +0 -1
  317. package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.js.map +0 -1
  318. package/src/libs/engine/src/routing/global/GlobalRouteSolver.js.map +0 -1
  319. package/src/libs/engine/src/routing/global/solver-host.js.map +0 -1
  320. package/src/libs/engine/src/routing/index.js.map +0 -1
  321. package/src/libs/engine/src/routing/types.js.map +0 -1
  322. package/src/libs/engine/src/selection/SelectionManager.js.map +0 -1
  323. package/src/libs/engine/src/selection/index.js.map +0 -1
  324. package/src/libs/engine/src/serialization/DiagramMigrations.js.map +0 -1
  325. package/src/libs/engine/src/serialization/DiagramValidator.js.map +0 -1
  326. package/src/libs/engine/src/serialization/DocumentEnvelope.js.map +0 -1
  327. package/src/libs/engine/src/serialization/Incremental.js.map +0 -1
  328. package/src/libs/engine/src/serialization/Serializer.js.map +0 -1
  329. package/src/libs/engine/src/serialization/Subgraph.js.map +0 -1
  330. package/src/libs/engine/src/serialization/TextFormat.js.map +0 -1
  331. package/src/libs/engine/src/state/ConnectionStateManager.js.map +0 -1
  332. package/src/libs/engine/src/state/DiagramStore.js.map +0 -1
  333. package/src/libs/engine/src/state/index.js.map +0 -1
  334. package/src/libs/engine/src/sync/awareness.js.map +0 -1
  335. package/src/libs/engine/src/sync/batcher.js.map +0 -1
  336. package/src/libs/engine/src/sync/causal-buffer.js.map +0 -1
  337. package/src/libs/engine/src/sync/index.js.map +0 -1
  338. package/src/libs/engine/src/sync/protocol.js.map +0 -1
  339. package/src/libs/engine/src/sync/sync-adapter.js.map +0 -1
  340. package/src/libs/engine/src/sync/transport.js.map +0 -1
  341. package/src/libs/engine/src/sync/transports/broadcast-channel.js.map +0 -1
  342. package/src/libs/engine/src/sync/transports/memory.js.map +0 -1
  343. package/src/libs/engine/src/sync/transports/unreliable.js.map +0 -1
  344. package/src/libs/engine/src/sync/transports/websocket.js.map +0 -1
  345. package/src/libs/engine/src/sync/version-vector.js.map +0 -1
  346. package/src/libs/engine/src/template-library/common-templates.js.map +0 -1
  347. package/src/libs/engine/src/template-library/data-viz-templates.js.map +0 -1
  348. package/src/libs/engine/src/template-library/erd-templates.js.map +0 -1
  349. package/src/libs/engine/src/template-library/index.js.map +0 -1
  350. package/src/libs/engine/src/template-library/integration.js.map +0 -1
  351. package/src/libs/engine/src/template-library/workflow-templates.js.map +0 -1
  352. package/src/libs/engine/src/templates/NodeFactory.js.map +0 -1
  353. package/src/libs/engine/src/templates/NodeTemplate.js.map +0 -1
  354. package/src/libs/engine/src/templates/TemplateLoader.js.map +0 -1
  355. package/src/libs/engine/src/templates/TemplateRegistry.js.map +0 -1
  356. package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.js.map +0 -1
  357. package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.js.map +0 -1
  358. package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.js.map +0 -1
  359. package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.js.map +0 -1
  360. package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.js.map +0 -1
  361. package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.js.map +0 -1
  362. package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.js.map +0 -1
  363. package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.js.map +0 -1
  364. package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.js.map +0 -1
  365. package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.js.map +0 -1
  366. package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.js.map +0 -1
  367. package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.js.map +0 -1
  368. package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.js.map +0 -1
  369. package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.js.map +0 -1
  370. package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.js.map +0 -1
  371. package/src/libs/engine/src/templates/generated/bpmn/index.js.map +0 -1
  372. package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.js.map +0 -1
  373. package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.js.map +0 -1
  374. package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.js.map +0 -1
  375. package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.js.map +0 -1
  376. package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.js.map +0 -1
  377. package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.js.map +0 -1
  378. package/src/libs/engine/src/templates/generated/erd/erd-entity.template.js.map +0 -1
  379. package/src/libs/engine/src/templates/generated/erd/erd-isa.template.js.map +0 -1
  380. package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.js.map +0 -1
  381. package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.js.map +0 -1
  382. package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.js.map +0 -1
  383. package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.js.map +0 -1
  384. package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.js.map +0 -1
  385. package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.js.map +0 -1
  386. package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.js.map +0 -1
  387. package/src/libs/engine/src/templates/generated/erd/erd-table.template.js.map +0 -1
  388. package/src/libs/engine/src/templates/generated/erd/erd-view.template.js.map +0 -1
  389. package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.js.map +0 -1
  390. package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.js.map +0 -1
  391. package/src/libs/engine/src/templates/generated/erd/index.js.map +0 -1
  392. package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.js.map +0 -1
  393. package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.js.map +0 -1
  394. package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.js.map +0 -1
  395. package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.js.map +0 -1
  396. package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.js.map +0 -1
  397. package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.js.map +0 -1
  398. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.js.map +0 -1
  399. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.js.map +0 -1
  400. package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.js.map +0 -1
  401. package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.js.map +0 -1
  402. package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.js.map +0 -1
  403. package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.js.map +0 -1
  404. package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.js.map +0 -1
  405. package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.js.map +0 -1
  406. package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.js.map +0 -1
  407. package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.js.map +0 -1
  408. package/src/libs/engine/src/templates/generated/flowchart/index.js.map +0 -1
  409. package/src/libs/engine/src/templates/generated/index.js.map +0 -1
  410. package/src/libs/engine/src/templates/generated/register.js.map +0 -1
  411. package/src/libs/engine/src/templates/generated/uml/index.js.map +0 -1
  412. package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.js.map +0 -1
  413. package/src/libs/engine/src/templates/generated/uml/uml-activation.template.js.map +0 -1
  414. package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.js.map +0 -1
  415. package/src/libs/engine/src/templates/generated/uml/uml-activity.template.js.map +0 -1
  416. package/src/libs/engine/src/templates/generated/uml/uml-actor.template.js.map +0 -1
  417. package/src/libs/engine/src/templates/generated/uml/uml-class.template.js.map +0 -1
  418. package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.js.map +0 -1
  419. package/src/libs/engine/src/templates/generated/uml/uml-component.template.js.map +0 -1
  420. package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.js.map +0 -1
  421. package/src/libs/engine/src/templates/generated/uml/uml-decision.template.js.map +0 -1
  422. package/src/libs/engine/src/templates/generated/uml/uml-enum.template.js.map +0 -1
  423. package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.js.map +0 -1
  424. package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.js.map +0 -1
  425. package/src/libs/engine/src/templates/generated/uml/uml-fork.template.js.map +0 -1
  426. package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.js.map +0 -1
  427. package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.js.map +0 -1
  428. package/src/libs/engine/src/templates/generated/uml/uml-interface.template.js.map +0 -1
  429. package/src/libs/engine/src/templates/generated/uml/uml-join.template.js.map +0 -1
  430. package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.js.map +0 -1
  431. package/src/libs/engine/src/templates/generated/uml/uml-merge.template.js.map +0 -1
  432. package/src/libs/engine/src/templates/generated/uml/uml-node.template.js.map +0 -1
  433. package/src/libs/engine/src/templates/generated/uml/uml-note.template.js.map +0 -1
  434. package/src/libs/engine/src/templates/generated/uml/uml-object.template.js.map +0 -1
  435. package/src/libs/engine/src/templates/generated/uml/uml-package.template.js.map +0 -1
  436. package/src/libs/engine/src/templates/generated/uml/uml-part.template.js.map +0 -1
  437. package/src/libs/engine/src/templates/generated/uml/uml-port.template.js.map +0 -1
  438. package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.js.map +0 -1
  439. package/src/libs/engine/src/templates/generated/uml/uml-signal.template.js.map +0 -1
  440. package/src/libs/engine/src/templates/generated/uml/uml-state.template.js.map +0 -1
  441. package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.js.map +0 -1
  442. package/src/libs/engine/src/templates/index.js.map +0 -1
  443. package/src/libs/engine/src/templates/stencils.js.map +0 -1
  444. package/src/libs/engine/src/types/domain/bpmn.js.map +0 -1
  445. package/src/libs/engine/src/types/domain/erd.js.map +0 -1
  446. package/src/libs/engine/src/types/domain/flowchart.js.map +0 -1
  447. package/src/libs/engine/src/types/domain/index.js.map +0 -1
  448. package/src/libs/engine/src/types/domain/uml.js.map +0 -1
  449. package/src/libs/engine/src/types/event.types.js.map +0 -1
  450. package/src/libs/engine/src/types/geometry.types.js.map +0 -1
  451. package/src/libs/engine/src/types/index.js.map +0 -1
  452. package/src/libs/engine/src/types/layout.types.js.map +0 -1
  453. package/src/libs/engine/src/types/model.types.js.map +0 -1
  454. package/src/libs/engine/src/types/performance.types.js.map +0 -1
  455. package/src/libs/engine/src/types/plugin.types.js.map +0 -1
  456. package/src/libs/engine/src/utils/deep-clone.js.map +0 -1
  457. package/src/libs/engine/src/utils/geometry.js.map +0 -1
  458. package/src/libs/engine/src/utils/id.js.map +0 -1
  459. package/src/libs/engine/src/utils/index.js.map +0 -1
  460. package/src/libs/engine/src/utils/transform.js.map +0 -1
  461. package/src/libs/engine/src/validation/ConnectionGroupValidator.js.map +0 -1
  462. package/src/libs/engine/src/validation/TypeRegistry.js.map +0 -1
  463. package/src/libs/engine/src/validation/ValidationEngine.js.map +0 -1
  464. package/src/libs/engine/src/validation/index.js.map +0 -1
  465. package/src/libs/renderer/src/a11y/diagram-outline.js.map +0 -1
  466. package/src/libs/renderer/src/a11y/focus-containment.js.map +0 -1
  467. package/src/libs/renderer/src/a11y/graph-topology.js.map +0 -1
  468. package/src/libs/renderer/src/a11y/index.js.map +0 -1
  469. package/src/libs/renderer/src/a11y/live-region.js.map +0 -1
  470. package/src/libs/renderer/src/a11y/outline-view.js.map +0 -1
  471. package/src/libs/renderer/src/a11y/reduced-motion.js.map +0 -1
  472. package/src/libs/renderer/src/a11y/semantics.js.map +0 -1
  473. package/src/libs/renderer/src/canvas/canvas-context.js.map +0 -1
  474. package/src/libs/renderer/src/canvas/canvas-renderer.js.map +0 -1
  475. package/src/libs/renderer/src/canvas/dirty-region.js.map +0 -1
  476. package/src/libs/renderer/src/canvas/index.js.map +0 -1
  477. package/src/libs/renderer/src/canvas/path-geometry.js.map +0 -1
  478. package/src/libs/renderer/src/canvas/render-backend.js.map +0 -1
  479. package/src/libs/renderer/src/canvas/style-resolution.js.map +0 -1
  480. package/src/libs/renderer/src/canvas/tier-policy.js.map +0 -1
  481. package/src/libs/renderer/src/canvas/vnode-painter.js.map +0 -1
  482. package/src/libs/renderer/src/comments/comment-overlay.js.map +0 -1
  483. package/src/libs/renderer/src/comments/comment-panel.js.map +0 -1
  484. package/src/libs/renderer/src/comments/comment-pins.js.map +0 -1
  485. package/src/libs/renderer/src/comments/index.js.map +0 -1
  486. package/src/libs/renderer/src/export/assets.js.map +0 -1
  487. package/src/libs/renderer/src/export/batch.js.map +0 -1
  488. package/src/libs/renderer/src/export/bounds.js.map +0 -1
  489. package/src/libs/renderer/src/export/capture-host.js.map +0 -1
  490. package/src/libs/renderer/src/export/custom-nodes.js.map +0 -1
  491. package/src/libs/renderer/src/export/index.js.map +0 -1
  492. package/src/libs/renderer/src/export/node-raster.js.map +0 -1
  493. package/src/libs/renderer/src/export/pagination.js.map +0 -1
  494. package/src/libs/renderer/src/export/pdf/flate.js.map +0 -1
  495. package/src/libs/renderer/src/export/pdf/index.js.map +0 -1
  496. package/src/libs/renderer/src/export/pdf/pdf-export.js.map +0 -1
  497. package/src/libs/renderer/src/export/pdf/pdf-path.js.map +0 -1
  498. package/src/libs/renderer/src/export/pdf/pdf-primitives.js.map +0 -1
  499. package/src/libs/renderer/src/export/pdf/png.js.map +0 -1
  500. package/src/libs/renderer/src/export/raster.js.map +0 -1
  501. package/src/libs/renderer/src/export/round-trip.js.map +0 -1
  502. package/src/libs/renderer/src/export/scope.js.map +0 -1
  503. package/src/libs/renderer/src/export/style-flattener.js.map +0 -1
  504. package/src/libs/renderer/src/export/svg-export.js.map +0 -1
  505. package/src/libs/renderer/src/export/vnode-serializer.js.map +0 -1
  506. package/src/libs/renderer/src/ext/capabilities.js.map +0 -1
  507. package/src/libs/renderer/src/ext/capability-factory.js.map +0 -1
  508. package/src/libs/renderer/src/ext/components/attach.js.map +0 -1
  509. package/src/libs/renderer/src/ext/components/background.js.map +0 -1
  510. package/src/libs/renderer/src/ext/components/controls.js.map +0 -1
  511. package/src/libs/renderer/src/ext/components/minimap.js.map +0 -1
  512. package/src/libs/renderer/src/ext/diagram-registry.js.map +0 -1
  513. package/src/libs/renderer/src/ext/disposable.js.map +0 -1
  514. package/src/libs/renderer/src/ext/extension-host.js.map +0 -1
  515. package/src/libs/renderer/src/ext/index.js.map +0 -1
  516. package/src/libs/renderer/src/ext/link-pipeline.js.map +0 -1
  517. package/src/libs/renderer/src/ext/manifest.js.map +0 -1
  518. package/src/libs/renderer/src/ext/node-component.js.map +0 -1
  519. package/src/libs/renderer/src/ext/plugins-loader.js.map +0 -1
  520. package/src/libs/renderer/src/ext/portal.js.map +0 -1
  521. package/src/libs/renderer/src/ext/public-api.js.map +0 -1
  522. package/src/libs/renderer/src/ext/registry-scope.js.map +0 -1
  523. package/src/libs/renderer/src/ext/tools.js.map +0 -1
  524. package/src/libs/renderer/src/index.js.map +0 -1
  525. package/src/libs/renderer/src/instance/create-diagram.js.map +0 -1
  526. package/src/libs/renderer/src/instance/diagram-instance.js.map +0 -1
  527. package/src/libs/renderer/src/instance/dom-event-binder.js.map +0 -1
  528. package/src/libs/renderer/src/instance/index.js.map +0 -1
  529. package/src/libs/renderer/src/instance/layers.js.map +0 -1
  530. package/src/libs/renderer/src/instance/model-input.js.map +0 -1
  531. package/src/libs/renderer/src/instance/render-scheduler.js.map +0 -1
  532. package/src/libs/renderer/src/instance/wheel-scroll-yield.js.map +0 -1
  533. package/src/libs/renderer/src/interaction/ControlPointEditor.js.map +0 -1
  534. package/src/libs/renderer/src/interaction/WaypointEditor.js.map +0 -1
  535. package/src/libs/renderer/src/interaction/highlighters.js.map +0 -1
  536. package/src/libs/renderer/src/interaction/in-place-editor.js.map +0 -1
  537. package/src/libs/renderer/src/interaction/index.js.map +0 -1
  538. package/src/libs/renderer/src/interaction/ink-overlay.js.map +0 -1
  539. package/src/libs/renderer/src/interaction/interaction-controller.js.map +0 -1
  540. package/src/libs/renderer/src/interaction/keyboard-navigation.js.map +0 -1
  541. package/src/libs/renderer/src/interaction/selection-tools.js.map +0 -1
  542. package/src/libs/renderer/src/interaction/snapping.js.map +0 -1
  543. package/src/libs/renderer/src/interaction/touch-gestures.js.map +0 -1
  544. package/src/libs/renderer/src/interaction/whiteboard-tools.js.map +0 -1
  545. package/src/libs/renderer/src/lazy/host-culling.js.map +0 -1
  546. package/src/libs/renderer/src/lazy/index.js.map +0 -1
  547. package/src/libs/renderer/src/lazy/progressive-mounter.js.map +0 -1
  548. package/src/libs/renderer/src/lazy/types.js.map +0 -1
  549. package/src/libs/renderer/src/lazy/view-lifecycle.js.map +0 -1
  550. package/src/libs/renderer/src/perf/index.js.map +0 -1
  551. package/src/libs/renderer/src/perf/perf-hud.js.map +0 -1
  552. package/src/libs/renderer/src/perf/quality-governor.js.map +0 -1
  553. package/src/libs/renderer/src/platform/index.js.map +0 -1
  554. package/src/libs/renderer/src/platform/platform.js.map +0 -1
  555. package/src/libs/renderer/src/presence/bind-presence.js.map +0 -1
  556. package/src/libs/renderer/src/presence/index.js.map +0 -1
  557. package/src/libs/renderer/src/presence/presence-overlay.js.map +0 -1
  558. package/src/libs/renderer/src/presentation/index.js.map +0 -1
  559. package/src/libs/renderer/src/presentation/presentation.js.map +0 -1
  560. package/src/libs/renderer/src/presentation/viewport-channel.js.map +0 -1
  561. package/src/libs/renderer/src/services/animation-lifecycle.js.map +0 -1
  562. package/src/libs/renderer/src/services/animation-performance.service.js.map +0 -1
  563. package/src/libs/renderer/src/services/animation-sequencer.js.map +0 -1
  564. package/src/libs/renderer/src/services/animation.service.js.map +0 -1
  565. package/src/libs/renderer/src/services/custom-animation-registry.js.map +0 -1
  566. package/src/libs/renderer/src/ssr/index.js.map +0 -1
  567. package/src/libs/renderer/src/ssr/render-to-static.js.map +0 -1
  568. package/src/libs/renderer/src/svg/ArrowRenderer.js.map +0 -1
  569. package/src/libs/renderer/src/svg/JumpPointDetector.js.map +0 -1
  570. package/src/libs/renderer/src/svg/JumpPointRenderer.js.map +0 -1
  571. package/src/libs/renderer/src/svg/LabelRenderer.js.map +0 -1
  572. package/src/libs/renderer/src/svg/auto-size.js.map +0 -1
  573. package/src/libs/renderer/src/svg/channel-nudging.js.map +0 -1
  574. package/src/libs/renderer/src/svg/edge-optimizer.js.map +0 -1
  575. package/src/libs/renderer/src/svg/edge-templates.js.map +0 -1
  576. package/src/libs/renderer/src/svg/html-node.js.map +0 -1
  577. package/src/libs/renderer/src/svg/index.js.map +0 -1
  578. package/src/libs/renderer/src/svg/link-fanout.js.map +0 -1
  579. package/src/libs/renderer/src/svg/link-hit-test.js.map +0 -1
  580. package/src/libs/renderer/src/svg/motion-tracker.js.map +0 -1
  581. package/src/libs/renderer/src/svg/node-sizing.js.map +0 -1
  582. package/src/libs/renderer/src/svg/node-toolbar.js.map +0 -1
  583. package/src/libs/renderer/src/svg/notation-shapes.js.map +0 -1
  584. package/src/libs/renderer/src/svg/paint-servers.js.map +0 -1
  585. package/src/libs/renderer/src/svg/panel.js.map +0 -1
  586. package/src/libs/renderer/src/svg/path-outline.js.map +0 -1
  587. package/src/libs/renderer/src/svg/port-glyph.js.map +0 -1
  588. package/src/libs/renderer/src/svg/port-label.js.map +0 -1
  589. package/src/libs/renderer/src/svg/port-layout.js.map +0 -1
  590. package/src/libs/renderer/src/svg/port-positioning.js.map +0 -1
  591. package/src/libs/renderer/src/svg/port-spots.js.map +0 -1
  592. package/src/libs/renderer/src/svg/route-memo.js.map +0 -1
  593. package/src/libs/renderer/src/svg/route-solver-bridge.js.map +0 -1
  594. package/src/libs/renderer/src/svg/shape-registry.js.map +0 -1
  595. package/src/libs/renderer/src/svg/stroke-layer.js.map +0 -1
  596. package/src/libs/renderer/src/svg/svg-renderer.js.map +0 -1
  597. package/src/libs/renderer/src/svg/text-block.js.map +0 -1
  598. package/src/libs/renderer/src/themes/color-mode.js.map +0 -1
  599. package/src/libs/renderer/src/themes/contrast.js.map +0 -1
  600. package/src/libs/renderer/src/themes/default-dark-theme.js.map +0 -1
  601. package/src/libs/renderer/src/themes/default-light-theme.js.map +0 -1
  602. package/src/libs/renderer/src/themes/default-theme-set.js.map +0 -1
  603. package/src/libs/renderer/src/themes/high-contrast-theme.js.map +0 -1
  604. package/src/libs/renderer/src/themes/index.js.map +0 -1
  605. package/src/libs/renderer/src/themes/style-cascade.js.map +0 -1
  606. package/src/libs/renderer/src/themes/style-registry.js.map +0 -1
  607. package/src/libs/renderer/src/themes/theme-a11y.js.map +0 -1
  608. package/src/libs/renderer/src/themes/theme-css.js.map +0 -1
  609. package/src/libs/renderer/src/themes/theme-ref.js.map +0 -1
  610. package/src/libs/renderer/src/themes/theme-vars.js.map +0 -1
  611. package/src/libs/renderer/src/themes/token-bridge.js.map +0 -1
  612. package/src/libs/renderer/src/types/geometry.types.js.map +0 -1
  613. package/src/libs/renderer/src/types/index.js.map +0 -1
  614. package/src/libs/renderer/src/types/property-schema/conditions.js.map +0 -1
  615. package/src/libs/renderer/src/types/property-schema/editor-types.js.map +0 -1
  616. package/src/libs/renderer/src/types/property-schema/groups.js.map +0 -1
  617. package/src/libs/renderer/src/types/property-schema/index.js.map +0 -1
  618. package/src/libs/renderer/src/types/property-schema/property-definition.js.map +0 -1
  619. package/src/libs/renderer/src/types/property-schema/schema.js.map +0 -1
  620. package/src/libs/renderer/src/types/property-schema/validation.js.map +0 -1
  621. package/src/libs/renderer/src/types/renderer.interface.js.map +0 -1
  622. package/src/libs/renderer/src/types/theme.types.js.map +0 -1
  623. package/src/libs/renderer/src/types/vnode.types.js.map +0 -1
  624. package/src/libs/renderer/src/utils/animation-presets.js.map +0 -1
  625. package/src/libs/renderer/src/utils/animation-priority.js.map +0 -1
  626. package/src/libs/renderer/src/utils/animation-utils.js.map +0 -1
  627. package/src/libs/renderer/src/utils/lru-cache.js.map +0 -1
  628. package/src/libs/renderer/src/viewport/index.js.map +0 -1
  629. package/src/libs/renderer/src/viewport/viewport-controller.js.map +0 -1
  630. package/src/libs/renderer/src/vnode/container-id-generator.js.map +0 -1
  631. package/src/libs/renderer/src/vnode/foreign-object.js.map +0 -1
  632. package/src/libs/renderer/src/vnode/index.js.map +0 -1
  633. package/src/libs/renderer/src/vnode/patch.js.map +0 -1
  634. package/src/reachability.spec.ts +0 -173
  635. package/tsconfig.esm.json +0 -9
  636. package/tsconfig.json +0 -24
  637. package/tsconfig.lib.json +0 -10
  638. package/tsconfig.spec.json +0 -14
@@ -1,219 +0,0 @@
1
- /**
2
- * Card building — the ONE source of truth for the ER/UML card HTML trees, the
3
- * layout constants and the size math.
4
- *
5
- * Both the builders (er.ts / uml.ts, which emit the initial render() spec) and
6
- * the live editor (update.ts, which regenerates a card after an edit) call
7
- * these. Keeping them here is what stops the two paths from drifting: an edited
8
- * card is byte-for-byte the card the builder would have produced for the same
9
- * data, so a re-rendered table looks identical to a freshly built one.
10
- *
11
- * `editable` threads through: when true the card grows the in-canvas editing
12
- * chrome (a per-row delete control and a trailing "add" affordance). That
13
- * chrome is DELIBERATELY not a `.axk-row`/`.axk-member` — the row-selection and
14
- * port-reconciliation code count those, and the affordance is neither a column
15
- * nor a member.
16
- */
17
-
18
- import type { ErColumn, ErEntitySpec } from './er';
19
- import type { UmlClassSpec } from './uml';
20
-
21
- /** Row height / header height of the entity card — sizing is derived from these. */
22
- export const ER_ROW_H = 25;
23
- export const ER_HEAD_H = 28;
24
- /**
25
- * Auto-height slack: the html wrapper's padding (8px) + the card's 1px
26
- * top/bottom borders + the head rendering slightly under ER_HEAD_H. Measured
27
- * live — with less, an auto-sized card overflows a few px, and the wheel
28
- * delegation would steal that much scroll on EVERY card.
29
- */
30
- export const ER_BORDER_SLACK = 9;
31
- /** The editable "add column" affordance row's height (excluded from row math). */
32
- export const ER_ADD_H = 26;
33
-
34
- /** UML compartment metrics (mirrors the pre-kit demos, measured live). */
35
- export const UML_LINE_H = 19;
36
- export const UML_NAME_H = 30;
37
- export const UML_STEREO_H = 14;
38
- export const UML_PAD = 8;
39
-
40
- /** Node-local y of a row's centre (the +1 offsets past the card's top border). */
41
- export function erRowCenterY(rowIndex: number): number {
42
- return ER_HEAD_H + rowIndex * ER_ROW_H + ER_ROW_H / 2 + 1;
43
- }
44
-
45
- /** Inverse of {@link erRowCenterY}: which column row a pinned port sits on. */
46
- export function rowIndexFromY(y: number): number {
47
- return Math.round((y - ER_HEAD_H - ER_ROW_H / 2 - 1) / ER_ROW_H);
48
- }
49
-
50
- /** A node's html-content tree node (the shape the renderer's html layer eats). */
51
- export interface HtmlNode {
52
- tag: string;
53
- className?: string;
54
- text?: string;
55
- children?: HtmlNode[];
56
- }
57
-
58
- /**
59
- * The `.axk-entity` content tree — the SAME tree er.ts ships and update.ts
60
- * regenerates. `editable` adds the delete control per row and the trailing add
61
- * affordance.
62
- */
63
- export function entityCardContent(entity: ErEntitySpec, editable = false): HtmlNode {
64
- const rows: HtmlNode[] = entity.columns.map((c) => {
65
- const children: HtmlNode[] = [
66
- { tag: 'span', className: 'axk-key' + (c.fk ? ' axk-fk' : ''), text: c.pk ? 'PK' : c.fk ? 'FK' : '' },
67
- { tag: 'span', className: 'axk-col', text: c.name },
68
- { tag: 'span', className: 'axk-ty', text: c.type ?? '' },
69
- ];
70
- // The delete control is a real child so it survives re-renders (the card is
71
- // regenerated wholesale on every edit) and hover-reveals via CSS only.
72
- if (editable) children.push({ tag: 'span', className: 'axk-col-del', text: '×' });
73
- return { tag: 'div', className: 'axk-row' + (c.pk ? ' axk-pk' : ''), children };
74
- });
75
-
76
- const body: HtmlNode = {
77
- // Scroll is OPT-IN via an explicit height: an auto-sized card fits by
78
- // construction and must never trap the wheel, not even by a pixel.
79
- tag: 'div',
80
- className: entity.height != null ? 'axk-entity-body axk-scroll' : 'axk-entity-body',
81
- children: rows,
82
- };
83
-
84
- const children: HtmlNode[] = [
85
- { tag: 'div', className: 'axk-entity-head', text: entity.name ?? entity.id },
86
- body,
87
- ];
88
- // The affordance sits OUTSIDE the (scrollable) body so it is always reachable.
89
- if (editable) children.push({ tag: 'div', className: 'axk-entity-add', text: '+ add column' });
90
-
91
- return { tag: 'div', className: 'axk-entity', children };
92
- }
93
-
94
- /** Card height for an entity — explicit height wins, else derived from columns. */
95
- export function entityAutoHeight(entity: ErEntitySpec, editable = false): number {
96
- if (entity.height != null) return entity.height;
97
- return ER_HEAD_H + entity.columns.length * ER_ROW_H + ER_BORDER_SLACK + (editable ? ER_ADD_H : 0);
98
- }
99
-
100
- /**
101
- * The `.axk-uml` content tree. `editable` adds a delete control per member and
102
- * a trailing add affordance in each compartment.
103
- */
104
- export function classCardContent(cls: UmlClassSpec, editable = false): HtmlNode {
105
- const attrs = cls.attributes ?? [];
106
- const methods = cls.methods ?? [];
107
- const italic = cls.abstract || cls.stereotype === 'abstract' || cls.stereotype === 'interface';
108
-
109
- // Non-editable output stays BYTE-IDENTICAL to the pre-editing builder (a
110
- // member is a text div); editable additions are purely additive.
111
- const member = (text: string): HtmlNode =>
112
- editable
113
- ? {
114
- tag: 'div',
115
- className: 'axk-member',
116
- children: [
117
- { tag: 'span', className: 'axk-mtext', text },
118
- { tag: 'span', className: 'axk-col-del', text: '×' },
119
- ],
120
- }
121
- : { tag: 'div', className: 'axk-member', text };
122
-
123
- const compartment = (members: string[], section: 'attributes' | 'methods'): HtmlNode => {
124
- const children: HtmlNode[] = members.map(member);
125
- if (editable) {
126
- children.push({
127
- tag: 'div',
128
- className: 'axk-uml-add',
129
- text: section === 'attributes' ? '+ attribute' : '+ method',
130
- });
131
- }
132
- return {
133
- tag: 'div',
134
- className: 'axk-uml-comp' + (members.length ? '' : ' axk-empty'),
135
- children,
136
- };
137
- };
138
-
139
- const name: HtmlNode = {
140
- tag: 'div',
141
- className: 'axk-uml-name' + (italic ? ' axk-abstract' : ''),
142
- children: [
143
- ...(cls.stereotype ? [{ tag: 'span', className: 'axk-uml-stereo', text: `«${cls.stereotype}»` } as HtmlNode] : []),
144
- { tag: 'span', text: cls.name ?? cls.id },
145
- ],
146
- };
147
-
148
- return {
149
- tag: 'div',
150
- className: 'axk-uml',
151
- children: [
152
- name,
153
- {
154
- tag: 'div',
155
- className: cls.height != null ? 'axk-uml-body axk-scroll' : 'axk-uml-body',
156
- children: [compartment(attrs, 'attributes'), compartment(methods, 'methods')],
157
- },
158
- ],
159
- };
160
- }
161
-
162
- /** Card height for a class — explicit height wins, else derived from members. */
163
- export function classAutoHeight(cls: UmlClassSpec, editable = false): number {
164
- if (cls.height != null) return cls.height;
165
- const attrs = cls.attributes ?? [];
166
- const methods = cls.methods ?? [];
167
- const addRows = editable ? 2 : 0; // one "add" affordance per compartment
168
- return (
169
- UML_NAME_H +
170
- (cls.stereotype ? UML_STEREO_H : 0) +
171
- (attrs.length + methods.length + addRows) * UML_LINE_H +
172
- UML_PAD * 2 +
173
- 12
174
- );
175
- }
176
-
177
- /**
178
- * Match old columns to new columns for port reconciliation. Returns a map from
179
- * OLD index → NEW index; an old index absent from the map is a REMOVED column
180
- * (its pinned ports and their edges are dropped).
181
- *
182
- * Three passes, most-certain first, so a single edit is always read the way a
183
- * human means it:
184
- * 1. object identity — reorder / add / remove that preserved references;
185
- * 2. name — a retype (same name, new object) or a rebuilt array;
186
- * 3. positional remainder — the leftovers matched in order, which is exactly
187
- * what a rename is (one old + one new in the same slot). Without pass 3 a
188
- * rename reads as remove+add and the edge is severed.
189
- */
190
- export function matchColumns(oldCols: ErColumn[], newCols: ErColumn[]): Map<number, number> {
191
- const out = new Map<number, number>();
192
- const usedNew = new Set<number>();
193
- const matchedOld = new Set<number>();
194
-
195
- const claim = (oldIdx: number, newIdx: number) => {
196
- out.set(oldIdx, newIdx);
197
- usedNew.add(newIdx);
198
- matchedOld.add(oldIdx);
199
- };
200
-
201
- // Pass 1: object identity.
202
- oldCols.forEach((oc, oi) => {
203
- const ni = newCols.indexOf(oc);
204
- if (ni !== -1 && !usedNew.has(ni)) claim(oi, ni);
205
- });
206
- // Pass 2: by name, among the unmatched.
207
- oldCols.forEach((oc, oi) => {
208
- if (matchedOld.has(oi)) return;
209
- const ni = newCols.findIndex((nc, i) => !usedNew.has(i) && nc.name === oc.name);
210
- if (ni !== -1) claim(oi, ni);
211
- });
212
- // Pass 3: positional remainder (rename / retype-and-rename).
213
- const remOld = oldCols.map((_, i) => i).filter((i) => !matchedOld.has(i));
214
- const remNew = newCols.map((_, i) => i).filter((i) => !usedNew.has(i));
215
- const n = Math.min(remOld.length, remNew.length);
216
- for (let k = 0; k < n; k++) claim(remOld[k]!, remNew[k]!);
217
-
218
- return out;
219
- }
@@ -1,465 +0,0 @@
1
- /**
2
- * Diagram kit — reusable ER / UML builders (the packaged form of what the
3
- * diagrams/* demos hand-composed).
4
- *
5
- * The demos proved the CAPABILITY (HTML table/class cards, crow's-foot and UML
6
- * markers, field-level ports, clean routing, card-ring selection) but every
7
- * page re-implemented it. This kit is the reusable feature: typed builders
8
- * that emit a ready render() spec + one injected stylesheet, so an embedder
9
- * writes data, not plumbing.
10
- */
11
- import { erDiagram, ER_ROW_H, ER_HEAD_H } from './er';
12
- import { umlDiagram } from './uml';
13
- import { DIAGRAM_KIT_STYLE_ID, ensureDiagramKitStyles } from './styles';
14
-
15
- const CUSTOMER = {
16
- id: 'CUSTOMER',
17
- name: 'Customer',
18
- columns: [
19
- { name: 'id', type: 'int', pk: true },
20
- { name: 'name', type: 'varchar' },
21
- { name: 'email', type: 'varchar' },
22
- ],
23
- };
24
- const ORDER = {
25
- id: 'ORDER',
26
- name: 'Order',
27
- columns: [
28
- { name: 'id', type: 'int', pk: true },
29
- { name: 'customer_id', type: 'int', fk: true },
30
- ],
31
- };
32
-
33
- const findNode = (spec: { nodes: Array<{ id?: string }> }, id: string) =>
34
- spec.nodes.find((n) => n.id === id)! as Record<string, unknown> & {
35
- size: { width: number; height: number };
36
- metadata: { html: { content: unknown } };
37
- ports?: Array<Record<string, unknown>>;
38
- };
39
- const treeText = (tree: unknown): string => JSON.stringify(tree);
40
-
41
- afterEach(() => {
42
- document.getElementById(DIAGRAM_KIT_STYLE_ID)?.remove();
43
- });
44
-
45
- describe('erDiagram — entities', () => {
46
- it('builds an HTML table card per entity: header + one row per column + PK/FK badges', () => {
47
- const spec = erDiagram({ entities: [CUSTOMER, ORDER] });
48
- expect(spec.nodes).toHaveLength(2);
49
- const text = treeText(findNode(spec, 'CUSTOMER').metadata.html.content);
50
- expect(text).toContain('Customer');
51
- expect(text).toContain('email');
52
- expect(text).toContain('varchar');
53
- expect(text).toContain('PK');
54
- expect(treeText(findNode(spec, 'ORDER').metadata.html.content)).toContain('FK');
55
- // Kit-scoped class names, never the demo's.
56
- expect(text).toContain('axk-entity');
57
- });
58
-
59
- it('sizes the card from its column count (slack covers wrapper padding + borders)', () => {
60
- const spec = erDiagram({ entities: [CUSTOMER] });
61
- expect(findNode(spec, 'CUSTOMER').size.height).toBe(ER_HEAD_H + 3 * ER_ROW_H + 9);
62
- });
63
-
64
- it("hides the node's own rectangle so the card's border is the only border", () => {
65
- const node = findNode(erDiagram({ entities: [CUSTOMER] }), 'CUSTOMER');
66
- expect((node['shape'] as { fill?: string }).fill).toBe('none');
67
- expect((node['style'] as { stroke?: string }).stroke).toBe('transparent');
68
- });
69
-
70
- it('lays entities on a default grid when positions are omitted, and respects explicit ones', () => {
71
- const spec = erDiagram({ entities: [CUSTOMER, { ...ORDER, position: { x: 900, y: 40 } }] });
72
- const a = findNode(spec, 'CUSTOMER')['position'] as { x: number; y: number };
73
- const b = findNode(spec, 'ORDER')['position'] as { x: number; y: number };
74
- expect(typeof a.x).toBe('number');
75
- expect(b).toEqual({ x: 900, y: 40 });
76
- expect(a.x).not.toBe(b.x);
77
- });
78
- });
79
-
80
- describe('scrollable cards (many fields + user resize)', () => {
81
- it('wraps the entity rows in a body region; scroll is OPT-IN via explicit height', () => {
82
- const auto = erDiagram({ entities: [CUSTOMER] });
83
- const autoText = treeText(findNode(auto, 'CUSTOMER').metadata.html.content);
84
- expect(autoText).toContain('axk-entity-body');
85
- // An auto-sized card fits by construction — it must never trap the wheel.
86
- expect(autoText).not.toContain('axk-scroll');
87
- const fixed = erDiagram({ entities: [{ ...CUSTOMER, height: 160 }] });
88
- expect(treeText(findNode(fixed, 'CUSTOMER').metadata.html.content)).toContain('axk-scroll');
89
- });
90
-
91
- it('an explicit entity height wins over the computed one (fixed height → the body scrolls)', () => {
92
- const spec = erDiagram({ entities: [{ ...CUSTOMER, height: 160 }] });
93
- expect(findNode(spec, 'CUSTOMER').size.height).toBe(160);
94
- });
95
-
96
- it('wraps the uml compartments in a body region, honours explicit height, and gates scroll on it', () => {
97
- const fixed = umlDiagram({
98
- classes: [{ id: 'Big', attributes: ['+ a: int'], methods: ['+ m(): void'], height: 140 }],
99
- relationships: [],
100
- });
101
- const fixedText = treeText(findNode(fixed, 'Big').metadata.html.content);
102
- expect(fixedText).toContain('axk-uml-body');
103
- expect(fixedText).toContain('axk-scroll');
104
- expect(findNode(fixed, 'Big').size.height).toBe(140);
105
- const auto = umlDiagram({ classes: [{ id: 'Small', attributes: ['+ a: int'] }], relationships: [] });
106
- expect(treeText(findNode(auto, 'Small').metadata.html.content)).not.toContain('axk-scroll');
107
- });
108
-
109
- it('the kit stylesheet scrolls ONLY the opted-in body regions', () => {
110
- ensureDiagramKitStyles();
111
- const css = document.getElementById(DIAGRAM_KIT_STYLE_ID)!.textContent || '';
112
- expect(css).toMatch(/\.axk-entity-body\.axk-scroll[^}]*overflow-y:\s*auto/);
113
- expect(css).toMatch(/\.axk-uml-body\.axk-scroll[^}]*overflow-y:\s*auto/);
114
- // The un-opted body clips: auto-height cards never show a scrollbar.
115
- expect(css).toMatch(/\.axk-entity-body\s*\{[^}]*overflow-y:\s*hidden/);
116
- expect(css).toMatch(/\.axk-uml-body\s*\{[^}]*overflow-y:\s*hidden/);
117
- });
118
- });
119
-
120
- describe('erDiagram — relationships', () => {
121
- it('defaults to one-to-many: a "one" tail and a crow-foot head, orthogonal, side handles', () => {
122
- const spec = erDiagram({
123
- entities: [CUSTOMER, ORDER],
124
- relationships: [{ from: 'CUSTOMER', to: 'ORDER', label: 'places' }],
125
- });
126
- expect(spec.edges).toHaveLength(1);
127
- const e = spec.edges[0] as any;
128
- expect(e.type).toBe('orthogonal');
129
- expect(e.label).toBe('places');
130
- expect(e.sourceHandle).toBe('right');
131
- expect(e.targetHandle).toBe('left');
132
- expect(e.style.arrowTail.type).toBe('one');
133
- expect(e.style.arrowHead.type).toBe('crow-foot');
134
- });
135
-
136
- it.each([
137
- ['one-to-one', 'one', 'one'],
138
- ['many-to-many', 'crow-foot', 'crow-foot'],
139
- ['one-to-zero-or-many', 'one', 'zero-or-many'],
140
- ['one-to-one-or-many', 'one', 'one-or-many'],
141
- ] as const)('cardinality %s → tail %s / head %s', (cardinality, tail, head) => {
142
- const spec = erDiagram({
143
- entities: [CUSTOMER, ORDER],
144
- relationships: [{ from: 'CUSTOMER', to: 'ORDER', cardinality }],
145
- });
146
- const e = spec.edges[0] as any;
147
- expect(e.style.arrowTail.type).toBe(tail);
148
- expect(e.style.arrowHead.type).toBe(head);
149
- });
150
-
151
- it('FIELD-LEVEL: "TABLE.column" pins an absolute-layout port on that row and wires the handle to it', () => {
152
- const spec = erDiagram({
153
- entities: [CUSTOMER, ORDER],
154
- relationships: [{ from: 'ORDER.customer_id', to: 'CUSTOMER.id' }],
155
- });
156
- const e = spec.edges[0] as any;
157
- const order = findNode(spec, 'ORDER');
158
- const customer = findNode(spec, 'CUSTOMER');
159
- const orderPort = (order.ports ?? []).find((p) => p['id'] === e.sourceHandle) as any;
160
- const customerPort = (customer.ports ?? []).find((p) => p['id'] === e.targetHandle) as any;
161
- expect(orderPort).toBeTruthy();
162
- expect(customerPort).toBeTruthy();
163
- expect(orderPort.layout.strategy).toBe('absolute');
164
- // customer_id is row index 1; id is row index 0 — pinned at each row's centre.
165
- expect(orderPort.layout.args.y).toBe(ER_HEAD_H + 1 * ER_ROW_H + ER_ROW_H / 2 + 1);
166
- expect(customerPort.layout.args.y).toBe(ER_HEAD_H + 0 * ER_ROW_H + ER_ROW_H / 2 + 1);
167
- // exit directions follow the default sides
168
- expect(orderPort.side).toBe('right');
169
- expect(customerPort.side).toBe('left');
170
- });
171
-
172
- it('two relationships landing on the SAME column get spread apart, not stacked', () => {
173
- const WAREHOUSE = { id: 'WAREHOUSE', columns: [{ name: 'id', type: 'int', pk: true }] };
174
- const SHIPMENT = {
175
- id: 'SHIPMENT',
176
- columns: [
177
- { name: 'from_warehouse_id', type: 'int', fk: true },
178
- { name: 'to_warehouse_id', type: 'int', fk: true },
179
- ],
180
- };
181
- const spec = erDiagram({
182
- entities: [WAREHOUSE, SHIPMENT],
183
- relationships: [
184
- { from: 'SHIPMENT.from_warehouse_id', to: 'WAREHOUSE.id' },
185
- { from: 'SHIPMENT.to_warehouse_id', to: 'WAREHOUSE.id' },
186
- ],
187
- });
188
- const wh = findNode(spec, 'WAREHOUSE');
189
- const pkPorts = (wh.ports ?? []).filter(
190
- (p) => (p as any).layout?.strategy === 'absolute'
191
- ) as any[];
192
- expect(pkPorts).toHaveLength(2);
193
- const dys = pkPorts.map((p) => p.layout.args.dy ?? 0);
194
- expect(dys[0]).not.toBe(dys[1]);
195
- });
196
-
197
- it('throws on an unknown column so a typo cannot silently fall back to table-level', () => {
198
- expect(() =>
199
- erDiagram({
200
- entities: [CUSTOMER, ORDER],
201
- relationships: [{ from: 'ORDER.nope', to: 'CUSTOMER.id' }],
202
- })
203
- ).toThrow(/nope/);
204
- });
205
- });
206
-
207
- describe('umlDiagram', () => {
208
- const SHAPE = { id: 'Shape', abstract: true, attributes: ['# x: float'], methods: ['+ area(): float'] };
209
- const CIRCLE = { id: 'Circle', attributes: ['+ r: float'], methods: [] };
210
-
211
- it('builds three-compartment class cards, with stereotype and abstract styling', () => {
212
- const spec = umlDiagram({
213
- classes: [{ ...SHAPE, stereotype: 'abstract' }, CIRCLE],
214
- relationships: [],
215
- });
216
- const text = treeText(findNode(spec, 'Shape').metadata.html.content);
217
- expect(text).toContain('axk-uml');
218
- expect(text).toContain('«abstract»');
219
- expect(text).toContain('# x: float');
220
- expect(text).toContain('+ area(): float');
221
- });
222
-
223
- it.each([
224
- // kind, dashed?, head type, tail type, filled diamond?
225
- ['inheritance', false, 'generalization', 'none', false],
226
- ['realization', true, 'generalization', 'none', false],
227
- ['association', false, 'none', 'none', false],
228
- ['directed-association', false, 'open-arrow', 'none', false],
229
- ['aggregation', false, 'none', 'hollow-diamond', false],
230
- ['composition', false, 'none', 'filled-diamond', true],
231
- ['dependency', true, 'open-arrow', 'none', false],
232
- ] as const)('%s → dashed=%s head=%s tail=%s', (kind, dashed, head, tail, filled) => {
233
- const spec = umlDiagram({
234
- classes: [SHAPE, CIRCLE],
235
- relationships: [{ from: 'Circle', to: 'Shape', kind }],
236
- });
237
- const e = spec.edges[0] as any;
238
- expect(!!e.style.strokeDasharray).toBe(dashed);
239
- expect((e.style.arrowHead?.type ?? 'none')).toBe(head);
240
- expect((e.style.arrowTail?.type ?? 'none')).toBe(tail);
241
- if (tail === 'filled-diamond') expect(e.style.arrowTail.filled).toBe(filled);
242
- // The stray-default-arrowhead regression: a plain association must
243
- // EXPLICITLY carry arrowHead none, or the renderer paints a default arrow.
244
- if (kind === 'association') expect(e.style.arrowHead?.type).toBe('none');
245
- });
246
-
247
- it('multiplicity rides finalize(api): chips are added as positioned labels after render', () => {
248
- const spec = umlDiagram({
249
- classes: [SHAPE, CIRCLE],
250
- relationships: [{ from: 'Circle', to: 'Shape', kind: 'association', multiplicity: ['0..*', '1'] }],
251
- });
252
- const added: Array<Record<string, unknown>> = [];
253
- const fakeApi = {
254
- getModel: () => ({
255
- getLink: (id: string) =>
256
- id === (spec.edges[0] as any).id
257
- ? { addLabel: (l: Record<string, unknown>) => added.push(l) }
258
- : null,
259
- }),
260
- renderNow: () => undefined,
261
- };
262
- spec.finalize(fakeApi as never);
263
- expect(added).toHaveLength(2);
264
- expect(treeText(added)).toContain('0..*');
265
- expect(treeText(added)).toContain('1');
266
- });
267
- });
268
-
269
- describe('kit stylesheet', () => {
270
- it('is injected once, idempotently, with kit-scoped classes and the card-ring selection rules', () => {
271
- ensureDiagramKitStyles();
272
- ensureDiagramKitStyles();
273
- const styles = document.querySelectorAll(`#${DIAGRAM_KIT_STYLE_ID}`);
274
- expect(styles).toHaveLength(1);
275
- const css = styles[0].textContent || '';
276
- expect(css).toContain('.axk-entity');
277
- expect(css).toContain('.axk-uml');
278
- // Selection highlights the CARD, not a detached rectangle — scoped with
279
- // :has() so it never affects non-kit nodes.
280
- expect(css).toContain(':has(.axk-entity)');
281
- expect(css).toContain('selection-highlight');
282
- expect(css).toContain('data-selected');
283
- });
284
-
285
- it('building a diagram injects the stylesheet automatically', () => {
286
- erDiagram({ entities: [CUSTOMER] });
287
- expect(document.getElementById(DIAGRAM_KIT_STYLE_ID)).toBeTruthy();
288
- });
289
- });
290
-
291
- describe('row selection (P1: select a column / field)', () => {
292
- /** Build the DOM shape the renderer produces for a kit card, in jsdom. */
293
- function mountCard(container: HTMLElement, nodeId: string, rows: string[][], kind: 'er' | 'uml' = 'er') {
294
- const svg = container.querySelector('svg') ?? container.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'svg'));
295
- const g = document.createElementNS('http://www.w3.org/2000/svg', 'g');
296
- g.setAttribute('data-node-id', nodeId);
297
- g.classList.add('node-group');
298
- const fo = document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject');
299
- const wrapper = document.createElement('div');
300
- const card = document.createElement('div');
301
- card.className = kind === 'er' ? 'axk-entity' : 'axk-uml';
302
- const body = document.createElement('div');
303
- body.className = kind === 'er' ? 'axk-entity-body' : 'axk-uml-body';
304
- for (const cells of rows) {
305
- const row = document.createElement('div');
306
- row.className = kind === 'er' ? 'axk-row' : 'axk-member';
307
- for (const [cls, text] of cells.map((t, i) => [['axk-key', 'axk-col', 'axk-ty'][i] ?? 'axk-x', t] as const)) {
308
- const span = document.createElement('span');
309
- span.className = cls;
310
- span.textContent = text;
311
- row.appendChild(span);
312
- }
313
- body.appendChild(row);
314
- }
315
- card.appendChild(body);
316
- wrapper.appendChild(card);
317
- fo.appendChild(wrapper);
318
- g.appendChild(fo);
319
- svg.appendChild(g);
320
- return { g, body };
321
- }
322
-
323
- const fakeApi = (container: HTMLElement, metaByNode: Record<string, Record<string, unknown>> = {}) => ({
324
- container,
325
- getModel: () => ({
326
- getNode: (id: string) => (id in metaByNode ? { getMetadata: (k: string) => metaByNode[id][k] } : undefined),
327
- }),
328
- });
329
-
330
- let container: HTMLElement;
331
- beforeEach(() => {
332
- container = document.createElement('div');
333
- document.body.appendChild(container);
334
- });
335
-
336
- it('kit cards are interactive and carry their spec in metadata (rows can be real event targets)', () => {
337
- const spec = erDiagram({ entities: [CUSTOMER] });
338
- const node = findNode(spec, 'CUSTOMER') as any;
339
- expect(node.metadata.html.interactive).toBe(true);
340
- expect(node.metadata.kitEntity.columns.map((c: any) => c.name)).toEqual(['id', 'name', 'email']);
341
- const uml = umlDiagram({ classes: [{ id: 'A', attributes: ['+ x: int'], methods: ['+ m(): void'] }], relationships: [] });
342
- const cls = findNode(uml, 'A') as any;
343
- expect(cls.metadata.html.interactive).toBe(true);
344
- expect(cls.metadata.kitClass.attributes).toEqual(['+ x: int']);
345
- });
346
-
347
- it('clicking a row selects it: class applied, axk:row-select fired with node/row/name', async () => {
348
- const { bindRowInteractions } = await import('./rows');
349
- mountCard(container, 'ORDER', [['PK', 'id', 'int'], ['FK', 'customer_id', 'int']]);
350
- const api = fakeApi(container, { ORDER: { kitEntity: { columns: [{ name: 'id' }, { name: 'customer_id' }] } } });
351
- const events: any[] = [];
352
- container.addEventListener('axk:row-select', (e: any) => events.push(e.detail));
353
- const handle = bindRowInteractions(api as never);
354
- const row1 = container.querySelectorAll('.axk-row')[1] as HTMLElement;
355
- row1.dispatchEvent(new MouseEvent('click', { bubbles: true }));
356
- expect(row1.classList.contains('axk-row-selected')).toBe(true);
357
- expect(handle.getSelected()).toMatchObject({ nodeId: 'ORDER', rowIndex: 1, name: 'customer_id' });
358
- expect(events.at(-1).selected).toMatchObject({ nodeId: 'ORDER', rowIndex: 1, name: 'customer_id' });
359
- handle.dispose();
360
- });
361
-
362
- it('clicking the selected row again, or empty canvas, deselects', async () => {
363
- const { bindRowInteractions } = await import('./rows');
364
- mountCard(container, 'ORDER', [['PK', 'id', 'int']]);
365
- const api = fakeApi(container);
366
- const handle = bindRowInteractions(api as never);
367
- const row = container.querySelector('.axk-row') as HTMLElement;
368
- row.dispatchEvent(new MouseEvent('click', { bubbles: true }));
369
- expect(handle.getSelected()).not.toBeNull();
370
- row.dispatchEvent(new MouseEvent('click', { bubbles: true }));
371
- expect(handle.getSelected()).toBeNull();
372
- expect(row.classList.contains('axk-row-selected')).toBe(false);
373
- row.dispatchEvent(new MouseEvent('click', { bubbles: true }));
374
- container.dispatchEvent(new MouseEvent('click', { bubbles: true })); // empty canvas
375
- expect(handle.getSelected()).toBeNull();
376
- handle.dispose();
377
- });
378
-
379
- it('only one row is selected per diagram — selecting in another card moves the selection', async () => {
380
- const { bindRowInteractions } = await import('./rows');
381
- mountCard(container, 'A', [['PK', 'id', 'int']]);
382
- mountCard(container, 'B', [['PK', 'id', 'int']]);
383
- const handle = bindRowInteractions(fakeApi(container) as never);
384
- const [rowA, rowB] = Array.from(container.querySelectorAll('.axk-row')) as HTMLElement[];
385
- rowA.dispatchEvent(new MouseEvent('click', { bubbles: true }));
386
- rowB.dispatchEvent(new MouseEvent('click', { bubbles: true }));
387
- expect(rowA.classList.contains('axk-row-selected')).toBe(false);
388
- expect(rowB.classList.contains('axk-row-selected')).toBe(true);
389
- expect(handle.getSelected()?.nodeId).toBe('B');
390
- handle.dispose();
391
- });
392
-
393
- it('uml members resolve with their section (attributes vs methods)', async () => {
394
- const { bindRowInteractions } = await import('./rows');
395
- // uml card: two compartments, members across both — rowIndex is global.
396
- const svg = container.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'svg'));
397
- const g = document.createElementNS('http://www.w3.org/2000/svg', 'g');
398
- g.setAttribute('data-node-id', 'K');
399
- const card = document.createElement('div');
400
- card.className = 'axk-uml';
401
- for (const members of [['+ a: int', '+ b: int'], ['+ m(): void']]) {
402
- const comp = document.createElement('div');
403
- comp.className = 'axk-uml-comp';
404
- for (const text of members) {
405
- const m = document.createElement('div');
406
- m.className = 'axk-member';
407
- m.textContent = text;
408
- comp.appendChild(m);
409
- }
410
- card.appendChild(comp);
411
- }
412
- g.appendChild(card);
413
- svg.appendChild(g);
414
- const handle = bindRowInteractions(fakeApi(container, { K: { kitClass: { attributes: ['+ a: int', '+ b: int'], methods: ['+ m(): void'] } } }) as never);
415
- const members = Array.from(container.querySelectorAll('.axk-member')) as HTMLElement[];
416
- members[2].dispatchEvent(new MouseEvent('click', { bubbles: true }));
417
- expect(handle.getSelected()).toMatchObject({ nodeId: 'K', rowIndex: 2, section: 'methods', name: '+ m(): void' });
418
- handle.dispose();
419
- });
420
-
421
- it('selection survives a card re-render (the foreignObject subtree is replaced)', async () => {
422
- const { bindRowInteractions } = await import('./rows');
423
- const { g } = mountCard(container, 'ORDER', [['PK', 'id', 'int'], ['FK', 'customer_id', 'int']]);
424
- const handle = bindRowInteractions(fakeApi(container) as never);
425
- const row1 = container.querySelectorAll('.axk-row')[1] as HTMLElement;
426
- row1.dispatchEvent(new MouseEvent('click', { bubbles: true }));
427
- // Simulate the renderer swapping the subtree (content-hash keyed re-render).
428
- const fo = g.querySelector('foreignObject')!;
429
- g.removeChild(fo);
430
- mountCard(container, 'ORDER-tmp', [['x', 'x', 'x']]); // unrelated churn
431
- g.appendChild(fo.cloneNode(true)); // fresh subtree, no classes... clone keeps class
432
- (g.querySelectorAll('.axk-row')[1] as HTMLElement).classList.remove('axk-row-selected');
433
- await new Promise((r) => setTimeout(r, 30)); // let the MutationObserver run
434
- const fresh = g.querySelectorAll('.axk-row')[1] as HTMLElement;
435
- expect(fresh.classList.contains('axk-row-selected')).toBe(true);
436
- expect(handle.getSelected()).toMatchObject({ nodeId: 'ORDER', rowIndex: 1 });
437
- handle.dispose();
438
- });
439
-
440
- it('the kit stylesheet ships row hover + selected styles and suppresses text selection', () => {
441
- ensureDiagramKitStyles();
442
- const css = document.getElementById(DIAGRAM_KIT_STYLE_ID)!.textContent || '';
443
- expect(css).toMatch(/\.axk-row:hover/);
444
- expect(css).toMatch(/\.axk-member:hover/);
445
- expect(css).toMatch(/\.axk-row-selected/);
446
- expect(css).toMatch(/user-select:\s*none/);
447
- });
448
-
449
- it('erDiagram finalize binds row interactions against a live-ish api (and rowSelection:false opts out)', async () => {
450
- const spec = erDiagram({ entities: [CUSTOMER] });
451
- mountCard(container, 'CUSTOMER', [['PK', 'id', 'int'], ['', 'name', 'varchar'], ['', 'email', 'varchar']]);
452
- const api = { ...fakeApi(container, { CUSTOMER: { kitEntity: CUSTOMER } }), getModel: fakeApi(container, { CUSTOMER: { kitEntity: CUSTOMER } }).getModel };
453
- spec.finalize(api as never);
454
- const row = container.querySelectorAll('.axk-row')[2] as HTMLElement;
455
- row.dispatchEvent(new MouseEvent('click', { bubbles: true }));
456
- expect(row.classList.contains('axk-row-selected')).toBe(true);
457
- const off = erDiagram({ entities: [CUSTOMER], rowSelection: false });
458
- const container2 = document.body.appendChild(document.createElement('div'));
459
- mountCard(container2, 'CUSTOMER', [['PK', 'id', 'int']]);
460
- off.finalize(fakeApi(container2, {}) as never);
461
- const row2 = container2.querySelector('.axk-row') as HTMLElement;
462
- row2.dispatchEvent(new MouseEvent('click', { bubbles: true }));
463
- expect(row2.classList.contains('axk-row-selected')).toBe(false);
464
- });
465
- });