orcasvn-react-diagrams 0.2.1 → 0.2.3

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 (366) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +107 -88
  3. package/ai/api-contract.json +257 -205
  4. package/ai/invariants.json +43 -41
  5. package/ai/manifest.json +34 -34
  6. package/dist/cjs/examples.js +13382 -0
  7. package/dist/cjs/index.js +4339 -896
  8. package/dist/cjs/types/api/createDiagramEditor.d.ts +25 -2
  9. package/dist/cjs/types/api/index.d.ts +1 -1
  10. package/dist/cjs/types/api/types.d.ts +210 -0
  11. package/dist/cjs/types/displaybox/DisplayBoxControls.d.ts +5 -1
  12. package/dist/cjs/types/displaybox/demos/AsymmetricPortMultiAnchorDemoTab.d.ts +3 -0
  13. package/dist/cjs/types/displaybox/demos/DeletionEventsDemoTab.d.ts +3 -0
  14. package/dist/cjs/types/displaybox/demos/LayoutLabelReservedSpaceDemoTab.d.ts +3 -0
  15. package/dist/cjs/types/displaybox/demos/ShapeHoverControlsDemoTab.d.ts +3 -0
  16. package/dist/cjs/types/displaybox/demos/TextLayoutDemoTab.d.ts +3 -0
  17. package/dist/cjs/types/displaybox/demos/VertexControlLinkSessionDemoTab.d.ts +3 -0
  18. package/dist/cjs/types/displaybox/demos/asymmetricPortMultiAnchorDemo.d.ts +31 -0
  19. package/dist/cjs/types/displaybox/demos/deletionEventsDemo.d.ts +2 -0
  20. package/dist/cjs/types/displaybox/demos/layoutLabelReservedSpaceDemo.d.ts +11 -0
  21. package/dist/cjs/types/displaybox/demos/rotatedCreationDemo.d.ts +2 -0
  22. package/dist/cjs/types/displaybox/demos/roundedRectRadiusDemo.d.ts +2 -0
  23. package/dist/cjs/types/displaybox/demos/shapeBorderMovementDemo.d.ts +2 -0
  24. package/dist/cjs/types/displaybox/demos/shapeHoverControlsDemo.d.ts +10 -0
  25. package/dist/cjs/types/displaybox/demos/textDemo.d.ts +4 -0
  26. package/dist/cjs/types/displaybox/demos/vertexControlLinkSessionDemo.d.ts +12 -0
  27. package/dist/cjs/types/displaybox/useDemoControls.d.ts +4 -0
  28. package/dist/cjs/types/displaybox/useDemoEditor.d.ts +5 -2
  29. package/dist/cjs/types/engine/AutoLayoutService.d.ts +26 -0
  30. package/dist/cjs/types/engine/DiagramEngine.d.ts +37 -14
  31. package/dist/cjs/types/engine/EngineCommands.d.ts +4 -1
  32. package/dist/cjs/types/engine/LinkRoutingService.d.ts +43 -0
  33. package/dist/cjs/types/engine/MutationPipeline.d.ts +23 -0
  34. package/dist/cjs/types/engine/TextLayoutService.d.ts +40 -0
  35. package/dist/cjs/types/examples/index.d.ts +2 -0
  36. package/dist/cjs/types/measure/textStyleDefaults.d.ts +9 -0
  37. package/dist/cjs/types/models/DiagramModel.d.ts +1 -0
  38. package/dist/cjs/types/models/ElementModel.d.ts +1 -0
  39. package/dist/cjs/types/models/PortModel.d.ts +8 -0
  40. package/dist/cjs/types/models/TextModel.d.ts +8 -0
  41. package/dist/cjs/types/renderer/RenderTypes.d.ts +36 -1
  42. package/dist/cjs/types/renderer/konva/KonvaHitTester.d.ts +1 -1
  43. package/dist/cjs/types/renderer/konva/KonvaInteraction.d.ts +67 -3
  44. package/dist/cjs/types/renderer/konva/KonvaNodeFactory.d.ts +19 -1
  45. package/dist/cjs/types/renderer/konva/KonvaRenderer.d.ts +48 -2
  46. package/dist/cjs/types/shapes/BuiltInShapes.d.ts +109 -0
  47. package/dist/cjs/types/shapes/__tests__/BuiltInShapes.test.d.ts +1 -0
  48. package/dist/cjs/types/shapes/index.d.ts +1 -0
  49. package/dist/cjs/types/utils/__tests__/borderGeometry.test.d.ts +1 -0
  50. package/dist/cjs/types/utils/__tests__/portGeometry.test.d.ts +1 -0
  51. package/dist/cjs/types/utils/borderGeometry.d.ts +6 -0
  52. package/dist/cjs/types/utils/geometry.d.ts +22 -0
  53. package/dist/cjs/types/utils/portGeometry.d.ts +44 -0
  54. package/dist/esm/examples.js +13374 -0
  55. package/dist/esm/examples.js.map +1 -0
  56. package/dist/esm/index.js +4340 -897
  57. package/dist/esm/index.js.map +1 -1
  58. package/dist/esm/types/api/createDiagramEditor.d.ts +25 -2
  59. package/dist/esm/types/api/index.d.ts +1 -1
  60. package/dist/esm/types/api/types.d.ts +210 -0
  61. package/dist/esm/types/displaybox/DisplayBoxControls.d.ts +5 -1
  62. package/dist/esm/types/displaybox/demos/AsymmetricPortMultiAnchorDemoTab.d.ts +3 -0
  63. package/dist/esm/types/displaybox/demos/DeletionEventsDemoTab.d.ts +3 -0
  64. package/dist/esm/types/displaybox/demos/LayoutLabelReservedSpaceDemoTab.d.ts +3 -0
  65. package/dist/esm/types/displaybox/demos/ShapeHoverControlsDemoTab.d.ts +3 -0
  66. package/dist/esm/types/displaybox/demos/TextLayoutDemoTab.d.ts +3 -0
  67. package/dist/esm/types/displaybox/demos/VertexControlLinkSessionDemoTab.d.ts +3 -0
  68. package/dist/esm/types/displaybox/demos/asymmetricPortMultiAnchorDemo.d.ts +31 -0
  69. package/dist/esm/types/displaybox/demos/deletionEventsDemo.d.ts +2 -0
  70. package/dist/esm/types/displaybox/demos/layoutLabelReservedSpaceDemo.d.ts +11 -0
  71. package/dist/esm/types/displaybox/demos/rotatedCreationDemo.d.ts +2 -0
  72. package/dist/esm/types/displaybox/demos/roundedRectRadiusDemo.d.ts +2 -0
  73. package/dist/esm/types/displaybox/demos/shapeBorderMovementDemo.d.ts +2 -0
  74. package/dist/esm/types/displaybox/demos/shapeHoverControlsDemo.d.ts +10 -0
  75. package/dist/esm/types/displaybox/demos/textDemo.d.ts +4 -0
  76. package/dist/esm/types/displaybox/demos/vertexControlLinkSessionDemo.d.ts +12 -0
  77. package/dist/esm/types/displaybox/useDemoControls.d.ts +4 -0
  78. package/dist/esm/types/displaybox/useDemoEditor.d.ts +5 -2
  79. package/dist/esm/types/engine/AutoLayoutService.d.ts +26 -0
  80. package/dist/esm/types/engine/DiagramEngine.d.ts +37 -14
  81. package/dist/esm/types/engine/EngineCommands.d.ts +4 -1
  82. package/dist/esm/types/engine/LinkRoutingService.d.ts +43 -0
  83. package/dist/esm/types/engine/MutationPipeline.d.ts +23 -0
  84. package/dist/esm/types/engine/TextLayoutService.d.ts +40 -0
  85. package/dist/esm/types/examples/index.d.ts +2 -0
  86. package/dist/esm/types/measure/textStyleDefaults.d.ts +9 -0
  87. package/dist/esm/types/models/DiagramModel.d.ts +1 -0
  88. package/dist/esm/types/models/ElementModel.d.ts +1 -0
  89. package/dist/esm/types/models/PortModel.d.ts +8 -0
  90. package/dist/esm/types/models/TextModel.d.ts +8 -0
  91. package/dist/esm/types/renderer/RenderTypes.d.ts +36 -1
  92. package/dist/esm/types/renderer/konva/KonvaHitTester.d.ts +1 -1
  93. package/dist/esm/types/renderer/konva/KonvaInteraction.d.ts +67 -3
  94. package/dist/esm/types/renderer/konva/KonvaNodeFactory.d.ts +19 -1
  95. package/dist/esm/types/renderer/konva/KonvaRenderer.d.ts +48 -2
  96. package/dist/esm/types/shapes/BuiltInShapes.d.ts +109 -0
  97. package/dist/esm/types/shapes/__tests__/BuiltInShapes.test.d.ts +1 -0
  98. package/dist/esm/types/shapes/index.d.ts +1 -0
  99. package/dist/esm/types/utils/__tests__/borderGeometry.test.d.ts +1 -0
  100. package/dist/esm/types/utils/__tests__/portGeometry.test.d.ts +1 -0
  101. package/dist/esm/types/utils/borderGeometry.d.ts +6 -0
  102. package/dist/esm/types/utils/geometry.d.ts +22 -0
  103. package/dist/esm/types/utils/portGeometry.d.ts +44 -0
  104. package/dist/{displaybox.d.ts → examples.d.ts} +219 -5
  105. package/dist/index.d.ts +290 -2
  106. package/docs/API_CONTRACT.md +200 -144
  107. package/docs/ARCHITECTURE.md +32 -31
  108. package/docs/CAPABILITIES.md +40 -38
  109. package/docs/COMMANDS_EVENTS.md +65 -60
  110. package/docs/DOCUMENTATION_WORKFLOW.md +27 -29
  111. package/docs/INDEX.md +41 -41
  112. package/docs/INTEGRATION_PLAYBOOK.md +56 -54
  113. package/docs/PORTING_CHECKLIST.md +59 -58
  114. package/docs/STATE_INVARIANTS.md +60 -56
  115. package/docs/fixtures/basic-linked-elements.json +52 -52
  116. package/docs/fixtures/empty-state.json +11 -11
  117. package/docs/fixtures/nested-layout.json +54 -54
  118. package/package.json +20 -22
  119. package/src/displaybox/demos/AsymmetricPortMultiAnchorDemoTab.tsx +269 -0
  120. package/src/displaybox/demos/AutoLayoutDemoTab.tsx +603 -0
  121. package/src/displaybox/demos/DeletionEventsDemoTab.tsx +152 -0
  122. package/src/displaybox/demos/EngineEventsDemoTab.tsx +156 -0
  123. package/src/displaybox/demos/EventHandlersDemoTab.tsx +115 -0
  124. package/src/displaybox/demos/ExternalDragDropDemoTab.tsx +266 -0
  125. package/src/displaybox/demos/LayoutLabelReservedSpaceDemoTab.tsx +291 -0
  126. package/src/displaybox/demos/LinkCancelDemoTab.tsx +243 -0
  127. package/src/displaybox/demos/ObstacleRoutingDemoTab.tsx +30 -0
  128. package/src/displaybox/demos/ShapeHoverControlsDemoTab.tsx +563 -0
  129. package/src/displaybox/demos/SimpleDemo.tsx +78 -0
  130. package/src/displaybox/demos/SvgPathDemoTab.tsx +332 -0
  131. package/src/displaybox/demos/TextLayoutDemoTab.tsx +391 -0
  132. package/src/displaybox/demos/VertexControlLinkSessionDemoTab.tsx +302 -0
  133. package/src/displaybox/demos/asymmetricPortMultiAnchorDemo.ts +357 -0
  134. package/src/displaybox/demos/autoLayoutDemo.ts +129 -0
  135. package/src/displaybox/demos/basicDemo.ts +131 -0
  136. package/src/displaybox/demos/childConstraintsDemo.ts +65 -0
  137. package/src/displaybox/demos/customDemo.ts +59 -0
  138. package/src/displaybox/demos/deletionEventsDemo.ts +91 -0
  139. package/src/displaybox/demos/engineEventsDemo.ts +64 -0
  140. package/src/displaybox/demos/eventHandlersDemo.ts +41 -0
  141. package/src/displaybox/demos/externalDragDropDemo.ts +28 -0
  142. package/src/displaybox/demos/gridOverlayDemo.ts +50 -0
  143. package/src/displaybox/demos/index.tsx +233 -0
  144. package/src/displaybox/demos/layoutLabelReservedSpaceDemo.ts +121 -0
  145. package/src/displaybox/demos/linkBendHandlesDemo.ts +143 -0
  146. package/src/displaybox/demos/linkCancelDemo.ts +56 -0
  147. package/src/displaybox/demos/linkPortCreationDemo.ts +46 -0
  148. package/src/displaybox/demos/multiLevelTreeDemo.ts +120 -0
  149. package/src/displaybox/demos/multipleElementsDemo.ts +62 -0
  150. package/src/displaybox/demos/nestedDemo.ts +78 -0
  151. package/src/displaybox/demos/obstacleRoutingDemo.ts +176 -0
  152. package/src/displaybox/demos/portBorderDemo.ts +98 -0
  153. package/src/displaybox/demos/portConstraintsDemo.ts +175 -0
  154. package/src/displaybox/demos/rotatedCreationDemo.ts +185 -0
  155. package/src/displaybox/demos/roundedRectRadiusDemo.ts +93 -0
  156. package/src/displaybox/demos/routingDemo.ts +57 -0
  157. package/src/displaybox/demos/selectionDemo.ts +49 -0
  158. package/src/displaybox/demos/shapeBorderMovementDemo.ts +126 -0
  159. package/src/displaybox/demos/shapeGalleryDemo.ts +73 -0
  160. package/src/displaybox/demos/shapeHoverControlsDemo.ts +172 -0
  161. package/src/displaybox/demos/shared.ts +161 -0
  162. package/src/displaybox/demos/svgPathDemo.ts +71 -0
  163. package/src/displaybox/demos/textDemo.ts +62 -0
  164. package/src/displaybox/demos/vertexControlLinkSessionDemo.ts +145 -0
  165. package/src/displaybox/types.ts +66 -0
  166. package/src/examples/index.ts +21 -0
  167. package/displaybox/package.json +0 -5
  168. package/dist/cjs/displaybox.js +0 -7214
  169. package/dist/cjs/types/components/BBoxDebugger.d.ts +0 -6
  170. package/dist/cjs/types/components/CloseIcon.d.ts +0 -6
  171. package/dist/cjs/types/components/LinkDebugger.d.ts +0 -8
  172. package/dist/cjs/types/components/editor.d.ts +0 -9
  173. package/dist/cjs/types/components/elementShowbox.d.ts +0 -3
  174. package/dist/cjs/types/components/elements/dragDropHandlerElement.d.ts +0 -7
  175. package/dist/cjs/types/components/elements/element.d.ts +0 -4
  176. package/dist/cjs/types/components/elements/elementWrapper.d.ts +0 -18
  177. package/dist/cjs/types/components/links/elementLink.d.ts +0 -4
  178. package/dist/cjs/types/components/links/index.d.ts +0 -2
  179. package/dist/cjs/types/components/links/point.d.ts +0 -11
  180. package/dist/cjs/types/components/paper.d.ts +0 -49
  181. package/dist/cjs/types/components/ports/index.d.ts +0 -2
  182. package/dist/cjs/types/components/ports/port.d.ts +0 -3
  183. package/dist/cjs/types/components/shapeShowbox.d.ts +0 -3
  184. package/dist/cjs/types/components/shapes/circle.d.ts +0 -9
  185. package/dist/cjs/types/components/shapes/customShape.d.ts +0 -7
  186. package/dist/cjs/types/components/shapes/halfCircle.d.ts +0 -9
  187. package/dist/cjs/types/components/shapes/index.d.ts +0 -7
  188. package/dist/cjs/types/components/shapes/polygon.d.ts +0 -8
  189. package/dist/cjs/types/components/shapes/rectangle.d.ts +0 -10
  190. package/dist/cjs/types/components/shapes/rectangularFrame.d.ts +0 -12
  191. package/dist/cjs/types/components/shapes/shapeWrapper.d.ts +0 -8
  192. package/dist/cjs/types/components/svgUtilsShowbox.d.ts +0 -3
  193. package/dist/cjs/types/components/texts/index.d.ts +0 -2
  194. package/dist/cjs/types/components/texts/text.d.ts +0 -4
  195. package/dist/cjs/types/components/viewControls/ruler.d.ts +0 -10
  196. package/dist/cjs/types/components/viewControls/selectionFrame.d.ts +0 -4
  197. package/dist/cjs/types/contexts/editorConfigurationContext.d.ts +0 -4
  198. package/dist/cjs/types/contexts/paperEventEmitterContext.d.ts +0 -45
  199. package/dist/cjs/types/contexts/zoomContext.d.ts +0 -16
  200. package/dist/cjs/types/contexts/zoomPanContext.d.ts +0 -23
  201. package/dist/cjs/types/displaybox/index.d.ts +0 -3
  202. package/dist/cjs/types/hooks/useKeyboardCommands.d.ts +0 -5
  203. package/dist/cjs/types/hooks/useSelectionFrame.d.ts +0 -6
  204. package/dist/cjs/types/logs/Logger.d.ts +0 -14
  205. package/dist/cjs/types/logs/configureLogger.d.ts +0 -4
  206. package/dist/cjs/types/main.d.ts +0 -8
  207. package/dist/cjs/types/mocks/customPortWithBuiltinShape.d.ts +0 -2
  208. package/dist/cjs/types/mocks/diamondElement.d.ts +0 -11
  209. package/dist/cjs/types/mocks/editorContext.d.ts +0 -2
  210. package/dist/cjs/types/mocks/editorContextElementMoveAsPort.d.ts +0 -2
  211. package/dist/cjs/types/mocks/editorContextForOptimizeRerender.d.ts +0 -2
  212. package/dist/cjs/types/mocks/editorContextMultipleElements.d.ts +0 -2
  213. package/dist/cjs/types/mocks/editorContextSingleElement.d.ts +0 -2
  214. package/dist/cjs/types/mocks/editorContextSingleElementTestEvents.d.ts +0 -2
  215. package/dist/cjs/types/mocks/editorContextTriggerRenderElements.d.ts +0 -2
  216. package/dist/cjs/types/mocks/editorContextWithElementAnchorCenter.d.ts +0 -2
  217. package/dist/cjs/types/mocks/port1.d.ts +0 -5
  218. package/dist/cjs/types/mocks/port2.d.ts +0 -5
  219. package/dist/cjs/types/mocks/portIn.d.ts +0 -4
  220. package/dist/cjs/types/mocks/rectangularFrameElement.d.ts +0 -11
  221. package/dist/cjs/types/mocks/textsWithFlexBox.d.ts +0 -2
  222. package/dist/cjs/types/models/IEditorConfiguration.d.ts +0 -7
  223. package/dist/cjs/types/models/IEditorContext.d.ts +0 -56
  224. package/dist/cjs/types/models/IElement.d.ts +0 -46
  225. package/dist/cjs/types/models/IElementLink.d.ts +0 -23
  226. package/dist/cjs/types/models/IElementLinkProps.d.ts +0 -31
  227. package/dist/cjs/types/models/IElementProps.d.ts +0 -36
  228. package/dist/cjs/types/models/IElementSelectorProps.d.ts +0 -25
  229. package/dist/cjs/types/models/IFlexboxType.d.ts +0 -20
  230. package/dist/cjs/types/models/IPaperBounds.d.ts +0 -6
  231. package/dist/cjs/types/models/IPort.d.ts +0 -13
  232. package/dist/cjs/types/models/IPortProps.d.ts +0 -31
  233. package/dist/cjs/types/models/IResizability.d.ts +0 -4
  234. package/dist/cjs/types/models/IShape.d.ts +0 -18
  235. package/dist/cjs/types/models/IText.d.ts +0 -20
  236. package/dist/cjs/types/models/ITextProps.d.ts +0 -25
  237. package/dist/cjs/types/models/callbackTypes.d.ts +0 -21
  238. package/dist/cjs/types/models/enums/PositioningAnchor.d.ts +0 -4
  239. package/dist/cjs/types/models/enums/ResizingDirection.d.ts +0 -10
  240. package/dist/cjs/types/models/enums/SubObjectDirection.d.ts +0 -4
  241. package/dist/cjs/types/models/enums/TextAlign.d.ts +0 -5
  242. package/dist/cjs/types/models/enums/index.d.ts +0 -4
  243. package/dist/cjs/types/models/implementations/CustomPort.d.ts +0 -7
  244. package/dist/cjs/types/models/implementations/CustomPortFromJSXElement.d.ts +0 -7
  245. package/dist/cjs/types/models/implementations/CustomPortFromShape.d.ts +0 -7
  246. package/dist/cjs/types/models/implementations/EditorContext.d.ts +0 -67
  247. package/dist/cjs/types/models/implementations/Element.d.ts +0 -61
  248. package/dist/cjs/types/models/implementations/ElementLink.d.ts +0 -25
  249. package/dist/cjs/types/models/implementations/Port.d.ts +0 -22
  250. package/dist/cjs/types/models/implementations/Text.d.ts +0 -20
  251. package/dist/cjs/types/models/implementations/diamondElement.d.ts +0 -11
  252. package/dist/cjs/types/models/implementations/index.d.ts +0 -6
  253. package/dist/cjs/types/models/implementations/rectangularFrameElement.d.ts +0 -11
  254. package/dist/cjs/types/models/index.d.ts +0 -19
  255. package/dist/cjs/types/models/position.d.ts +0 -4
  256. package/dist/cjs/types/models/size.d.ts +0 -4
  257. package/dist/cjs/types/utils/constants.d.ts +0 -54
  258. package/dist/cjs/types/utils/elementLinkUtil.d.ts +0 -2
  259. package/dist/cjs/types/utils/generateUniqueId.d.ts +0 -1
  260. package/dist/cjs/types/utils/index.d.ts +0 -9
  261. package/dist/cjs/types/utils/lineUtil.d.ts +0 -3
  262. package/dist/cjs/types/utils/mathUtil.d.ts +0 -6
  263. package/dist/cjs/types/utils/pathUtil.d.ts +0 -13
  264. package/dist/cjs/types/utils/portSlideRailSVGUtil.d.ts +0 -3
  265. package/dist/cjs/types/utils/positionUtil.d.ts +0 -55
  266. package/dist/cjs/types/utils/svgUtil.d.ts +0 -3
  267. package/dist/esm/displaybox.js +0 -7212
  268. package/dist/esm/displaybox.js.map +0 -1
  269. package/dist/esm/types/components/BBoxDebugger.d.ts +0 -6
  270. package/dist/esm/types/components/CloseIcon.d.ts +0 -6
  271. package/dist/esm/types/components/LinkDebugger.d.ts +0 -8
  272. package/dist/esm/types/components/editor.d.ts +0 -9
  273. package/dist/esm/types/components/elementShowbox.d.ts +0 -3
  274. package/dist/esm/types/components/elements/dragDropHandlerElement.d.ts +0 -7
  275. package/dist/esm/types/components/elements/element.d.ts +0 -4
  276. package/dist/esm/types/components/elements/elementWrapper.d.ts +0 -18
  277. package/dist/esm/types/components/links/elementLink.d.ts +0 -4
  278. package/dist/esm/types/components/links/index.d.ts +0 -2
  279. package/dist/esm/types/components/links/point.d.ts +0 -11
  280. package/dist/esm/types/components/paper.d.ts +0 -49
  281. package/dist/esm/types/components/ports/index.d.ts +0 -2
  282. package/dist/esm/types/components/ports/port.d.ts +0 -3
  283. package/dist/esm/types/components/shapeShowbox.d.ts +0 -3
  284. package/dist/esm/types/components/shapes/circle.d.ts +0 -9
  285. package/dist/esm/types/components/shapes/customShape.d.ts +0 -7
  286. package/dist/esm/types/components/shapes/halfCircle.d.ts +0 -9
  287. package/dist/esm/types/components/shapes/index.d.ts +0 -7
  288. package/dist/esm/types/components/shapes/polygon.d.ts +0 -8
  289. package/dist/esm/types/components/shapes/rectangle.d.ts +0 -10
  290. package/dist/esm/types/components/shapes/rectangularFrame.d.ts +0 -12
  291. package/dist/esm/types/components/shapes/shapeWrapper.d.ts +0 -8
  292. package/dist/esm/types/components/svgUtilsShowbox.d.ts +0 -3
  293. package/dist/esm/types/components/texts/index.d.ts +0 -2
  294. package/dist/esm/types/components/texts/text.d.ts +0 -4
  295. package/dist/esm/types/components/viewControls/ruler.d.ts +0 -10
  296. package/dist/esm/types/components/viewControls/selectionFrame.d.ts +0 -4
  297. package/dist/esm/types/contexts/editorConfigurationContext.d.ts +0 -4
  298. package/dist/esm/types/contexts/paperEventEmitterContext.d.ts +0 -45
  299. package/dist/esm/types/contexts/zoomContext.d.ts +0 -16
  300. package/dist/esm/types/contexts/zoomPanContext.d.ts +0 -23
  301. package/dist/esm/types/displaybox/index.d.ts +0 -3
  302. package/dist/esm/types/hooks/useKeyboardCommands.d.ts +0 -5
  303. package/dist/esm/types/hooks/useSelectionFrame.d.ts +0 -6
  304. package/dist/esm/types/logs/Logger.d.ts +0 -14
  305. package/dist/esm/types/logs/configureLogger.d.ts +0 -4
  306. package/dist/esm/types/main.d.ts +0 -8
  307. package/dist/esm/types/mocks/customPortWithBuiltinShape.d.ts +0 -2
  308. package/dist/esm/types/mocks/diamondElement.d.ts +0 -11
  309. package/dist/esm/types/mocks/editorContext.d.ts +0 -2
  310. package/dist/esm/types/mocks/editorContextElementMoveAsPort.d.ts +0 -2
  311. package/dist/esm/types/mocks/editorContextForOptimizeRerender.d.ts +0 -2
  312. package/dist/esm/types/mocks/editorContextMultipleElements.d.ts +0 -2
  313. package/dist/esm/types/mocks/editorContextSingleElement.d.ts +0 -2
  314. package/dist/esm/types/mocks/editorContextSingleElementTestEvents.d.ts +0 -2
  315. package/dist/esm/types/mocks/editorContextTriggerRenderElements.d.ts +0 -2
  316. package/dist/esm/types/mocks/editorContextWithElementAnchorCenter.d.ts +0 -2
  317. package/dist/esm/types/mocks/port1.d.ts +0 -5
  318. package/dist/esm/types/mocks/port2.d.ts +0 -5
  319. package/dist/esm/types/mocks/portIn.d.ts +0 -4
  320. package/dist/esm/types/mocks/rectangularFrameElement.d.ts +0 -11
  321. package/dist/esm/types/mocks/textsWithFlexBox.d.ts +0 -2
  322. package/dist/esm/types/models/IEditorConfiguration.d.ts +0 -7
  323. package/dist/esm/types/models/IEditorContext.d.ts +0 -56
  324. package/dist/esm/types/models/IElement.d.ts +0 -46
  325. package/dist/esm/types/models/IElementLink.d.ts +0 -23
  326. package/dist/esm/types/models/IElementLinkProps.d.ts +0 -31
  327. package/dist/esm/types/models/IElementProps.d.ts +0 -36
  328. package/dist/esm/types/models/IElementSelectorProps.d.ts +0 -25
  329. package/dist/esm/types/models/IFlexboxType.d.ts +0 -20
  330. package/dist/esm/types/models/IPaperBounds.d.ts +0 -6
  331. package/dist/esm/types/models/IPort.d.ts +0 -13
  332. package/dist/esm/types/models/IPortProps.d.ts +0 -31
  333. package/dist/esm/types/models/IResizability.d.ts +0 -4
  334. package/dist/esm/types/models/IShape.d.ts +0 -18
  335. package/dist/esm/types/models/IText.d.ts +0 -20
  336. package/dist/esm/types/models/ITextProps.d.ts +0 -25
  337. package/dist/esm/types/models/callbackTypes.d.ts +0 -21
  338. package/dist/esm/types/models/enums/PositioningAnchor.d.ts +0 -4
  339. package/dist/esm/types/models/enums/ResizingDirection.d.ts +0 -10
  340. package/dist/esm/types/models/enums/SubObjectDirection.d.ts +0 -4
  341. package/dist/esm/types/models/enums/TextAlign.d.ts +0 -5
  342. package/dist/esm/types/models/enums/index.d.ts +0 -4
  343. package/dist/esm/types/models/implementations/CustomPort.d.ts +0 -7
  344. package/dist/esm/types/models/implementations/CustomPortFromJSXElement.d.ts +0 -7
  345. package/dist/esm/types/models/implementations/CustomPortFromShape.d.ts +0 -7
  346. package/dist/esm/types/models/implementations/EditorContext.d.ts +0 -67
  347. package/dist/esm/types/models/implementations/Element.d.ts +0 -61
  348. package/dist/esm/types/models/implementations/ElementLink.d.ts +0 -25
  349. package/dist/esm/types/models/implementations/Port.d.ts +0 -22
  350. package/dist/esm/types/models/implementations/Text.d.ts +0 -20
  351. package/dist/esm/types/models/implementations/diamondElement.d.ts +0 -11
  352. package/dist/esm/types/models/implementations/index.d.ts +0 -6
  353. package/dist/esm/types/models/implementations/rectangularFrameElement.d.ts +0 -11
  354. package/dist/esm/types/models/index.d.ts +0 -19
  355. package/dist/esm/types/models/position.d.ts +0 -4
  356. package/dist/esm/types/models/size.d.ts +0 -4
  357. package/dist/esm/types/utils/constants.d.ts +0 -54
  358. package/dist/esm/types/utils/elementLinkUtil.d.ts +0 -2
  359. package/dist/esm/types/utils/generateUniqueId.d.ts +0 -1
  360. package/dist/esm/types/utils/index.d.ts +0 -9
  361. package/dist/esm/types/utils/lineUtil.d.ts +0 -3
  362. package/dist/esm/types/utils/mathUtil.d.ts +0 -6
  363. package/dist/esm/types/utils/pathUtil.d.ts +0 -13
  364. package/dist/esm/types/utils/portSlideRailSVGUtil.d.ts +0 -3
  365. package/dist/esm/types/utils/positionUtil.d.ts +0 -55
  366. package/dist/esm/types/utils/svgUtil.d.ts +0 -3
package/CHANGELOG.md ADDED
@@ -0,0 +1,51 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented in this file.
4
+
5
+ ## [0.2.3] - 2026-05-03
6
+
7
+ ### Added
8
+ - Diagram export to image support, including fit-to-content export options.
9
+ - Programmatic link-session support for vertex-control drag workflows.
10
+ - Asymmetric multi-anchor port demo expansion with multiple SVG glyph variants.
11
+ - Auto-layout label reserved-space handling and related demo coverage.
12
+
13
+ ### Changed
14
+ - Asymmetric SVG-path multi-anchor transform/orientation behavior for deterministic border-side placement.
15
+ - DisplayBox demo coverage consolidated for auto-layout and vertex-control scenarios.
16
+ - Vertex-control session logs in demo flows improved for collapse/scroll stability.
17
+
18
+ ### Fixed
19
+ - Restored port selection priority when shape hover controls are active.
20
+ - Suppressed occupied vertex targets when an element-owned port already occupies that anchor.
21
+ - Guarded invalid vertex-control link drop cleanup to prevent re-entrant stack overflow.
22
+ - Corrected initial external-link endpoint alignment in asymmetric multi-anchor demo.
23
+ - Kept auto-layout label text visible in consolidated demo scenarios.
24
+
25
+ ### Docs
26
+ - Updated release highlights in `README.md` for `v0.2.3`.
27
+ - Added release-process requirement to maintain changelog entries in `RELEASE_AGENTS.md`.
28
+
29
+ ## [0.2.2] - 2026-04-25
30
+
31
+ ### Added
32
+ - Discrete port anchor constraints with anchor-based movement support.
33
+ - Shape hover controls for edge and vertex targets with configurable trigger modes.
34
+ - Ellipse midpoint control enumeration support.
35
+ - DisplayBox demos for discrete anchors, hover controls, and ellipse midpoints.
36
+
37
+ ### Changed
38
+ - Refactored built-in shape behavior to class-based implementations.
39
+ - Removed remaining runtime `boundaryKind` branching in shape behavior paths.
40
+ - Extracted engine internals into dedicated services:
41
+ - text layout service
42
+ - auto layout service
43
+ - link routing service
44
+ - mutation pipeline
45
+
46
+ ### Fixed
47
+ - Improved rotated-shape selection, hit testing, and resize alignment consistency.
48
+ - Improved shape-aware endpoint edge detection for link routing.
49
+
50
+ ### Docs
51
+ - Refreshed DisplayBox verification coverage for shape class and rotation behavior.
package/README.md CHANGED
@@ -1,88 +1,107 @@
1
- # orcasvn-react-diagrams
2
-
3
- Diagram editor library with a Konva-backed editor (`createDiagramEditor`) and an engine-only API (`createDiagramEngine`).
4
-
5
- ## Install
6
-
7
- ```bash
8
- npm install orcasvn-react-diagrams
9
- ```
10
-
11
- Node engine for this repository/toolchain: `>=18.17.0 <19.0.0`.
12
-
13
- ## Quick Start
14
-
15
- ```ts
16
- import { createDiagramEditor } from 'orcasvn-react-diagrams';
17
-
18
- const editor = createDiagramEditor({
19
- container: document.getElementById('diagram-root') as HTMLDivElement,
20
- width: 960,
21
- height: 600,
22
- initialState: { elements: [], ports: [], links: [], texts: [] },
23
- });
24
-
25
- editor.addElement({
26
- id: 'node-1',
27
- position: { x: 80, y: 80 },
28
- size: { width: 160, height: 100 },
29
- shapeId: 'default',
30
- });
31
- ```
32
-
33
- ## DisplayBox Review Surface
34
-
35
- The published package also exposes the full demo review surface used by this repository's hosted example app:
36
-
37
- ```ts
38
- import { DisplayBox, demoTabs } from 'orcasvn-react-diagrams/displaybox';
39
- ```
40
-
41
- Use this entrypoint when you want to review the packaged demo scenarios from an installed npm dependency instead of importing repository source files directly.
42
-
43
- ## API Docs
44
-
45
- - Human-first docs index: `docs/INDEX.md`
46
- - API contract: `docs/API_CONTRACT.md`
47
- - State invariants: `docs/STATE_INVARIANTS.md`
48
- - Integration: `docs/INTEGRATION_PLAYBOOK.md`
49
-
50
- Machine-readable docs shipped in npm package:
51
-
52
- - `ai/manifest.json`
53
- - `ai/api-contract.json`
54
- - `ai/invariants.json`
55
-
56
- UNPKG examples:
57
-
58
- - `https://unpkg.com/orcasvn-react-diagrams@<version>/ai/manifest.json`
59
- - `https://unpkg.com/orcasvn-react-diagrams@<version>/docs/INDEX.md`
60
-
61
- Node subpath export:
62
-
63
- - `orcasvn-react-diagrams/ai-manifest`
64
-
65
- ## External Drag And Drop
66
-
67
- ```ts
68
- const world = editor.clientToWorld(
69
- { x: event.clientX, y: event.clientY },
70
- stageContainer
71
- );
72
-
73
- editor.addElement({
74
- id,
75
- position: { x: world.x - width / 2, y: world.y - height / 2 },
76
- size: { width, height },
77
- shapeId,
78
- });
79
- ```
80
-
81
- ## Scripts (Repository Development)
82
-
83
- - `npm start`: run demo app.
84
- - `npm run start-doc`: serve `analysis/`.
85
- - `npm test`: run tests (watch mode).
86
- - `npm run typecheck`: run TypeScript checks.
87
- - `npm run build`: CRA build to `build/`.
88
- - `npm run rollup-build-lib`: library build to `dist/`.
1
+ # orcasvn-react-diagrams
2
+
3
+ Diagram editor library with a Konva-backed editor (`createDiagramEditor`) and an engine-only API (`createDiagramEngine`).
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install orcasvn-react-diagrams
9
+ ```
10
+
11
+ Node engine for this repository/toolchain: `>=20.17.0 <21.0.0`.
12
+
13
+ ## Quick Start
14
+
15
+ ```ts
16
+ import { createDiagramEditor } from 'orcasvn-react-diagrams';
17
+
18
+ const editor = createDiagramEditor({
19
+ container: document.getElementById('diagram-root') as HTMLDivElement,
20
+ width: 960,
21
+ height: 600,
22
+ initialState: { elements: [], ports: [], links: [], texts: [] },
23
+ });
24
+
25
+ editor.addElement({
26
+ id: 'node-1',
27
+ position: { x: 80, y: 80 },
28
+ size: { width: 160, height: 100 },
29
+ shapeId: 'default',
30
+ });
31
+ ```
32
+
33
+ ## Release Highlights (v0.2.3)
34
+
35
+ - Includes all completed `v0.2.1` and `v0.2.2` work, plus `v0.2.3` updates.
36
+ - `v0.2.3` interaction and stability updates:
37
+ - restored port-selection priority over vertex controls
38
+ - suppressed occupied-vertex controls where ports already own the anchor
39
+ - hardened invalid vertex-control link-drop cancellation to prevent re-entrant stack overflow
40
+ - `v0.2.3` demo and behavior updates:
41
+ - asymmetric multi-anchor demo now aligns initial external link endpoints deterministically
42
+ - added multiple asymmetric SVG glyph variants for multi-anchor comparison
43
+ - consolidated auto-layout demo coverage with label-visibility fixes
44
+ - Shape system upgrade:
45
+ - class-based built-in shape behaviors
46
+ - runtime removal of `boundaryKind` branching
47
+ - additive rotation (`baseRotation` + instance rotation style)
48
+ - Port movement enhancements:
49
+ - shape-aware border projection
50
+ - optional anchor-constrained movement (`portMovement.moveMode = 'anchors'`)
51
+ - orientation support with host-border normals and resize reprojection
52
+ - Shape hover controls:
53
+ - generic control definitions with `targetKind` (`edge`, `vertex`, `midpoint`, `ellipse-midpoint`)
54
+ - trigger modes (`element-hover`, `target-hover`)
55
+ - interaction callbacks for click and drag lifecycle
56
+ - Text layout improvements:
57
+ - owner/fixed bounds modes, wrap and overflow controls, and layout padding
58
+ - `textUpdated` lifecycle event with rendered display content
59
+ - Additional lifecycle events:
60
+ - `portDeleted`, `linkDeleted`, `textDeleted`
61
+
62
+ ## API Docs
63
+
64
+ - Human-first docs index: `docs/INDEX.md`
65
+ - API contract: `docs/API_CONTRACT.md`
66
+ - State invariants: `docs/STATE_INVARIANTS.md`
67
+ - Integration: `docs/INTEGRATION_PLAYBOOK.md`
68
+
69
+ Machine-readable docs shipped in npm package:
70
+
71
+ - `ai/manifest.json`
72
+ - `ai/api-contract.json`
73
+ - `ai/invariants.json`
74
+
75
+ UNPKG examples:
76
+
77
+ - `https://unpkg.com/orcasvn-react-diagrams@<version>/ai/manifest.json`
78
+ - `https://unpkg.com/orcasvn-react-diagrams@<version>/docs/INDEX.md`
79
+
80
+ Node subpath export:
81
+
82
+ - `orcasvn-react-diagrams/ai-manifest`
83
+
84
+ ## External Drag And Drop
85
+
86
+ ```ts
87
+ const world = editor.clientToWorld(
88
+ { x: event.clientX, y: event.clientY },
89
+ stageContainer
90
+ );
91
+
92
+ editor.addElement({
93
+ id,
94
+ position: { x: world.x - width / 2, y: world.y - height / 2 },
95
+ size: { width, height },
96
+ shapeId,
97
+ });
98
+ ```
99
+
100
+ ## Scripts (Repository Development)
101
+
102
+ - `npm start`: run demo app.
103
+ - `npm run start-doc`: serve `analysis/`.
104
+ - `npm test`: run tests (watch mode).
105
+ - `npm run typecheck`: run TypeScript checks.
106
+ - `npm run build`: CRA build to `build/`.
107
+ - `npm run rollup-build-lib`: library build to `dist/`.