orcasvn-react-diagrams 0.2.1 → 0.2.2

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 (335) hide show
  1. package/README.md +99 -88
  2. package/ai/api-contract.json +257 -205
  3. package/ai/invariants.json +43 -41
  4. package/ai/manifest.json +34 -34
  5. package/dist/cjs/{displaybox.js → examples.js} +5974 -1413
  6. package/dist/cjs/index.js +3889 -1112
  7. package/dist/cjs/types/api/createDiagramEditor.d.ts +7 -2
  8. package/dist/cjs/types/api/types.d.ts +178 -0
  9. package/dist/cjs/types/displaybox/demos/DeletionEventsDemoTab.d.ts +3 -0
  10. package/dist/cjs/types/displaybox/demos/ShapeHoverControlsDemoTab.d.ts +3 -0
  11. package/dist/cjs/types/displaybox/demos/TextLayoutDemoTab.d.ts +3 -0
  12. package/dist/cjs/types/displaybox/demos/deletionEventsDemo.d.ts +2 -0
  13. package/dist/cjs/types/displaybox/demos/rotatedCreationDemo.d.ts +2 -0
  14. package/dist/cjs/types/displaybox/demos/roundedRectRadiusDemo.d.ts +2 -0
  15. package/dist/cjs/types/displaybox/demos/shapeBorderMovementDemo.d.ts +2 -0
  16. package/dist/cjs/types/displaybox/demos/shapeHoverControlsDemo.d.ts +10 -0
  17. package/dist/cjs/types/displaybox/demos/textDemo.d.ts +4 -0
  18. package/dist/cjs/types/displaybox/useDemoEditor.d.ts +5 -2
  19. package/dist/cjs/types/engine/AutoLayoutService.d.ts +24 -0
  20. package/dist/cjs/types/engine/DiagramEngine.d.ts +32 -14
  21. package/dist/cjs/types/engine/EngineCommands.d.ts +4 -1
  22. package/dist/cjs/types/engine/LinkRoutingService.d.ts +35 -0
  23. package/dist/cjs/types/engine/MutationPipeline.d.ts +23 -0
  24. package/dist/cjs/types/engine/TextLayoutService.d.ts +40 -0
  25. package/dist/cjs/types/examples/index.d.ts +2 -0
  26. package/dist/cjs/types/measure/textStyleDefaults.d.ts +9 -0
  27. package/dist/cjs/types/models/DiagramModel.d.ts +1 -0
  28. package/dist/cjs/types/models/ElementModel.d.ts +1 -0
  29. package/dist/cjs/types/models/PortModel.d.ts +3 -0
  30. package/dist/cjs/types/models/TextModel.d.ts +8 -0
  31. package/dist/cjs/types/renderer/RenderTypes.d.ts +34 -1
  32. package/dist/cjs/types/renderer/konva/KonvaHitTester.d.ts +1 -1
  33. package/dist/cjs/types/renderer/konva/KonvaInteraction.d.ts +53 -3
  34. package/dist/cjs/types/renderer/konva/KonvaNodeFactory.d.ts +18 -1
  35. package/dist/cjs/types/renderer/konva/KonvaRenderer.d.ts +49 -2
  36. package/dist/cjs/types/shapes/BuiltInShapes.d.ts +107 -0
  37. package/dist/cjs/types/shapes/__tests__/BuiltInShapes.test.d.ts +1 -0
  38. package/dist/cjs/types/shapes/index.d.ts +1 -0
  39. package/dist/cjs/types/utils/__tests__/borderGeometry.test.d.ts +1 -0
  40. package/dist/cjs/types/utils/borderGeometry.d.ts +6 -0
  41. package/dist/cjs/types/utils/geometry.d.ts +22 -0
  42. package/dist/esm/{displaybox.js → examples.js} +5969 -1414
  43. package/dist/esm/examples.js.map +1 -0
  44. package/dist/esm/index.js +3890 -1113
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/types/api/createDiagramEditor.d.ts +7 -2
  47. package/dist/esm/types/api/types.d.ts +178 -0
  48. package/dist/esm/types/displaybox/demos/DeletionEventsDemoTab.d.ts +3 -0
  49. package/dist/esm/types/displaybox/demos/ShapeHoverControlsDemoTab.d.ts +3 -0
  50. package/dist/esm/types/displaybox/demos/TextLayoutDemoTab.d.ts +3 -0
  51. package/dist/esm/types/displaybox/demos/deletionEventsDemo.d.ts +2 -0
  52. package/dist/esm/types/displaybox/demos/rotatedCreationDemo.d.ts +2 -0
  53. package/dist/esm/types/displaybox/demos/roundedRectRadiusDemo.d.ts +2 -0
  54. package/dist/esm/types/displaybox/demos/shapeBorderMovementDemo.d.ts +2 -0
  55. package/dist/esm/types/displaybox/demos/shapeHoverControlsDemo.d.ts +10 -0
  56. package/dist/esm/types/displaybox/demos/textDemo.d.ts +4 -0
  57. package/dist/esm/types/displaybox/useDemoEditor.d.ts +5 -2
  58. package/dist/esm/types/engine/AutoLayoutService.d.ts +24 -0
  59. package/dist/esm/types/engine/DiagramEngine.d.ts +32 -14
  60. package/dist/esm/types/engine/EngineCommands.d.ts +4 -1
  61. package/dist/esm/types/engine/LinkRoutingService.d.ts +35 -0
  62. package/dist/esm/types/engine/MutationPipeline.d.ts +23 -0
  63. package/dist/esm/types/engine/TextLayoutService.d.ts +40 -0
  64. package/dist/esm/types/examples/index.d.ts +2 -0
  65. package/dist/esm/types/measure/textStyleDefaults.d.ts +9 -0
  66. package/dist/esm/types/models/DiagramModel.d.ts +1 -0
  67. package/dist/esm/types/models/ElementModel.d.ts +1 -0
  68. package/dist/esm/types/models/PortModel.d.ts +3 -0
  69. package/dist/esm/types/models/TextModel.d.ts +8 -0
  70. package/dist/esm/types/renderer/RenderTypes.d.ts +34 -1
  71. package/dist/esm/types/renderer/konva/KonvaHitTester.d.ts +1 -1
  72. package/dist/esm/types/renderer/konva/KonvaInteraction.d.ts +53 -3
  73. package/dist/esm/types/renderer/konva/KonvaNodeFactory.d.ts +18 -1
  74. package/dist/esm/types/renderer/konva/KonvaRenderer.d.ts +49 -2
  75. package/dist/esm/types/shapes/BuiltInShapes.d.ts +107 -0
  76. package/dist/esm/types/shapes/__tests__/BuiltInShapes.test.d.ts +1 -0
  77. package/dist/esm/types/shapes/index.d.ts +1 -0
  78. package/dist/esm/types/utils/__tests__/borderGeometry.test.d.ts +1 -0
  79. package/dist/esm/types/utils/borderGeometry.d.ts +6 -0
  80. package/dist/esm/types/utils/geometry.d.ts +22 -0
  81. package/dist/{displaybox.d.ts → examples.d.ts} +169 -5
  82. package/dist/index.d.ts +233 -2
  83. package/docs/API_CONTRACT.md +200 -144
  84. package/docs/ARCHITECTURE.md +32 -31
  85. package/docs/CAPABILITIES.md +40 -38
  86. package/docs/COMMANDS_EVENTS.md +65 -60
  87. package/docs/DOCUMENTATION_WORKFLOW.md +27 -29
  88. package/docs/INDEX.md +41 -41
  89. package/docs/INTEGRATION_PLAYBOOK.md +56 -54
  90. package/docs/PORTING_CHECKLIST.md +59 -58
  91. package/docs/STATE_INVARIANTS.md +60 -56
  92. package/docs/fixtures/basic-linked-elements.json +52 -52
  93. package/docs/fixtures/empty-state.json +11 -11
  94. package/docs/fixtures/nested-layout.json +54 -54
  95. package/package.json +13 -16
  96. package/src/displaybox/demos/AutoLayoutDemoTab.tsx +501 -0
  97. package/src/displaybox/demos/DeletionEventsDemoTab.tsx +147 -0
  98. package/src/displaybox/demos/EngineEventsDemoTab.tsx +151 -0
  99. package/src/displaybox/demos/EventHandlersDemoTab.tsx +110 -0
  100. package/src/displaybox/demos/ExternalDragDropDemoTab.tsx +261 -0
  101. package/src/displaybox/demos/LinkCancelDemoTab.tsx +238 -0
  102. package/src/displaybox/demos/ObstacleRoutingDemoTab.tsx +30 -0
  103. package/src/displaybox/demos/ShapeHoverControlsDemoTab.tsx +558 -0
  104. package/src/displaybox/demos/SimpleDemo.tsx +73 -0
  105. package/src/displaybox/demos/SvgPathDemoTab.tsx +327 -0
  106. package/src/displaybox/demos/TextLayoutDemoTab.tsx +386 -0
  107. package/src/displaybox/demos/autoLayoutDemo.ts +111 -0
  108. package/src/displaybox/demos/basicDemo.ts +131 -0
  109. package/src/displaybox/demos/childConstraintsDemo.ts +65 -0
  110. package/src/displaybox/demos/customDemo.ts +59 -0
  111. package/src/displaybox/demos/deletionEventsDemo.ts +91 -0
  112. package/src/displaybox/demos/engineEventsDemo.ts +64 -0
  113. package/src/displaybox/demos/eventHandlersDemo.ts +41 -0
  114. package/src/displaybox/demos/externalDragDropDemo.ts +28 -0
  115. package/src/displaybox/demos/gridOverlayDemo.ts +50 -0
  116. package/src/displaybox/demos/index.tsx +217 -0
  117. package/src/displaybox/demos/linkBendHandlesDemo.ts +143 -0
  118. package/src/displaybox/demos/linkCancelDemo.ts +56 -0
  119. package/src/displaybox/demos/linkPortCreationDemo.ts +46 -0
  120. package/src/displaybox/demos/multiLevelTreeDemo.ts +120 -0
  121. package/src/displaybox/demos/multipleElementsDemo.ts +62 -0
  122. package/src/displaybox/demos/nestedDemo.ts +78 -0
  123. package/src/displaybox/demos/obstacleRoutingDemo.ts +176 -0
  124. package/src/displaybox/demos/portBorderDemo.ts +98 -0
  125. package/src/displaybox/demos/portConstraintsDemo.ts +175 -0
  126. package/src/displaybox/demos/rotatedCreationDemo.ts +185 -0
  127. package/src/displaybox/demos/roundedRectRadiusDemo.ts +93 -0
  128. package/src/displaybox/demos/routingDemo.ts +57 -0
  129. package/src/displaybox/demos/selectionDemo.ts +49 -0
  130. package/src/displaybox/demos/shapeBorderMovementDemo.ts +126 -0
  131. package/src/displaybox/demos/shapeGalleryDemo.ts +73 -0
  132. package/src/displaybox/demos/shapeHoverControlsDemo.ts +172 -0
  133. package/src/displaybox/demos/shared.ts +161 -0
  134. package/src/displaybox/demos/svgPathDemo.ts +71 -0
  135. package/src/displaybox/demos/textDemo.ts +62 -0
  136. package/src/displaybox/types.ts +66 -0
  137. package/src/examples/index.ts +21 -0
  138. package/displaybox/package.json +0 -5
  139. package/dist/cjs/types/components/BBoxDebugger.d.ts +0 -6
  140. package/dist/cjs/types/components/CloseIcon.d.ts +0 -6
  141. package/dist/cjs/types/components/LinkDebugger.d.ts +0 -8
  142. package/dist/cjs/types/components/editor.d.ts +0 -9
  143. package/dist/cjs/types/components/elementShowbox.d.ts +0 -3
  144. package/dist/cjs/types/components/elements/dragDropHandlerElement.d.ts +0 -7
  145. package/dist/cjs/types/components/elements/element.d.ts +0 -4
  146. package/dist/cjs/types/components/elements/elementWrapper.d.ts +0 -18
  147. package/dist/cjs/types/components/links/elementLink.d.ts +0 -4
  148. package/dist/cjs/types/components/links/index.d.ts +0 -2
  149. package/dist/cjs/types/components/links/point.d.ts +0 -11
  150. package/dist/cjs/types/components/paper.d.ts +0 -49
  151. package/dist/cjs/types/components/ports/index.d.ts +0 -2
  152. package/dist/cjs/types/components/ports/port.d.ts +0 -3
  153. package/dist/cjs/types/components/shapeShowbox.d.ts +0 -3
  154. package/dist/cjs/types/components/shapes/circle.d.ts +0 -9
  155. package/dist/cjs/types/components/shapes/customShape.d.ts +0 -7
  156. package/dist/cjs/types/components/shapes/halfCircle.d.ts +0 -9
  157. package/dist/cjs/types/components/shapes/index.d.ts +0 -7
  158. package/dist/cjs/types/components/shapes/polygon.d.ts +0 -8
  159. package/dist/cjs/types/components/shapes/rectangle.d.ts +0 -10
  160. package/dist/cjs/types/components/shapes/rectangularFrame.d.ts +0 -12
  161. package/dist/cjs/types/components/shapes/shapeWrapper.d.ts +0 -8
  162. package/dist/cjs/types/components/svgUtilsShowbox.d.ts +0 -3
  163. package/dist/cjs/types/components/texts/index.d.ts +0 -2
  164. package/dist/cjs/types/components/texts/text.d.ts +0 -4
  165. package/dist/cjs/types/components/viewControls/ruler.d.ts +0 -10
  166. package/dist/cjs/types/components/viewControls/selectionFrame.d.ts +0 -4
  167. package/dist/cjs/types/contexts/editorConfigurationContext.d.ts +0 -4
  168. package/dist/cjs/types/contexts/paperEventEmitterContext.d.ts +0 -45
  169. package/dist/cjs/types/contexts/zoomContext.d.ts +0 -16
  170. package/dist/cjs/types/contexts/zoomPanContext.d.ts +0 -23
  171. package/dist/cjs/types/displaybox/index.d.ts +0 -3
  172. package/dist/cjs/types/hooks/useKeyboardCommands.d.ts +0 -5
  173. package/dist/cjs/types/hooks/useSelectionFrame.d.ts +0 -6
  174. package/dist/cjs/types/logs/Logger.d.ts +0 -14
  175. package/dist/cjs/types/logs/configureLogger.d.ts +0 -4
  176. package/dist/cjs/types/main.d.ts +0 -8
  177. package/dist/cjs/types/mocks/customPortWithBuiltinShape.d.ts +0 -2
  178. package/dist/cjs/types/mocks/diamondElement.d.ts +0 -11
  179. package/dist/cjs/types/mocks/editorContext.d.ts +0 -2
  180. package/dist/cjs/types/mocks/editorContextElementMoveAsPort.d.ts +0 -2
  181. package/dist/cjs/types/mocks/editorContextForOptimizeRerender.d.ts +0 -2
  182. package/dist/cjs/types/mocks/editorContextMultipleElements.d.ts +0 -2
  183. package/dist/cjs/types/mocks/editorContextSingleElement.d.ts +0 -2
  184. package/dist/cjs/types/mocks/editorContextSingleElementTestEvents.d.ts +0 -2
  185. package/dist/cjs/types/mocks/editorContextTriggerRenderElements.d.ts +0 -2
  186. package/dist/cjs/types/mocks/editorContextWithElementAnchorCenter.d.ts +0 -2
  187. package/dist/cjs/types/mocks/port1.d.ts +0 -5
  188. package/dist/cjs/types/mocks/port2.d.ts +0 -5
  189. package/dist/cjs/types/mocks/portIn.d.ts +0 -4
  190. package/dist/cjs/types/mocks/rectangularFrameElement.d.ts +0 -11
  191. package/dist/cjs/types/mocks/textsWithFlexBox.d.ts +0 -2
  192. package/dist/cjs/types/models/IEditorConfiguration.d.ts +0 -7
  193. package/dist/cjs/types/models/IEditorContext.d.ts +0 -56
  194. package/dist/cjs/types/models/IElement.d.ts +0 -46
  195. package/dist/cjs/types/models/IElementLink.d.ts +0 -23
  196. package/dist/cjs/types/models/IElementLinkProps.d.ts +0 -31
  197. package/dist/cjs/types/models/IElementProps.d.ts +0 -36
  198. package/dist/cjs/types/models/IElementSelectorProps.d.ts +0 -25
  199. package/dist/cjs/types/models/IFlexboxType.d.ts +0 -20
  200. package/dist/cjs/types/models/IPaperBounds.d.ts +0 -6
  201. package/dist/cjs/types/models/IPort.d.ts +0 -13
  202. package/dist/cjs/types/models/IPortProps.d.ts +0 -31
  203. package/dist/cjs/types/models/IResizability.d.ts +0 -4
  204. package/dist/cjs/types/models/IShape.d.ts +0 -18
  205. package/dist/cjs/types/models/IText.d.ts +0 -20
  206. package/dist/cjs/types/models/ITextProps.d.ts +0 -25
  207. package/dist/cjs/types/models/callbackTypes.d.ts +0 -21
  208. package/dist/cjs/types/models/enums/PositioningAnchor.d.ts +0 -4
  209. package/dist/cjs/types/models/enums/ResizingDirection.d.ts +0 -10
  210. package/dist/cjs/types/models/enums/SubObjectDirection.d.ts +0 -4
  211. package/dist/cjs/types/models/enums/TextAlign.d.ts +0 -5
  212. package/dist/cjs/types/models/enums/index.d.ts +0 -4
  213. package/dist/cjs/types/models/implementations/CustomPort.d.ts +0 -7
  214. package/dist/cjs/types/models/implementations/CustomPortFromJSXElement.d.ts +0 -7
  215. package/dist/cjs/types/models/implementations/CustomPortFromShape.d.ts +0 -7
  216. package/dist/cjs/types/models/implementations/EditorContext.d.ts +0 -67
  217. package/dist/cjs/types/models/implementations/Element.d.ts +0 -61
  218. package/dist/cjs/types/models/implementations/ElementLink.d.ts +0 -25
  219. package/dist/cjs/types/models/implementations/Port.d.ts +0 -22
  220. package/dist/cjs/types/models/implementations/Text.d.ts +0 -20
  221. package/dist/cjs/types/models/implementations/diamondElement.d.ts +0 -11
  222. package/dist/cjs/types/models/implementations/index.d.ts +0 -6
  223. package/dist/cjs/types/models/implementations/rectangularFrameElement.d.ts +0 -11
  224. package/dist/cjs/types/models/index.d.ts +0 -19
  225. package/dist/cjs/types/models/position.d.ts +0 -4
  226. package/dist/cjs/types/models/size.d.ts +0 -4
  227. package/dist/cjs/types/utils/constants.d.ts +0 -54
  228. package/dist/cjs/types/utils/elementLinkUtil.d.ts +0 -2
  229. package/dist/cjs/types/utils/generateUniqueId.d.ts +0 -1
  230. package/dist/cjs/types/utils/index.d.ts +0 -9
  231. package/dist/cjs/types/utils/lineUtil.d.ts +0 -3
  232. package/dist/cjs/types/utils/mathUtil.d.ts +0 -6
  233. package/dist/cjs/types/utils/pathUtil.d.ts +0 -13
  234. package/dist/cjs/types/utils/portSlideRailSVGUtil.d.ts +0 -3
  235. package/dist/cjs/types/utils/positionUtil.d.ts +0 -55
  236. package/dist/cjs/types/utils/svgUtil.d.ts +0 -3
  237. package/dist/esm/displaybox.js.map +0 -1
  238. package/dist/esm/types/components/BBoxDebugger.d.ts +0 -6
  239. package/dist/esm/types/components/CloseIcon.d.ts +0 -6
  240. package/dist/esm/types/components/LinkDebugger.d.ts +0 -8
  241. package/dist/esm/types/components/editor.d.ts +0 -9
  242. package/dist/esm/types/components/elementShowbox.d.ts +0 -3
  243. package/dist/esm/types/components/elements/dragDropHandlerElement.d.ts +0 -7
  244. package/dist/esm/types/components/elements/element.d.ts +0 -4
  245. package/dist/esm/types/components/elements/elementWrapper.d.ts +0 -18
  246. package/dist/esm/types/components/links/elementLink.d.ts +0 -4
  247. package/dist/esm/types/components/links/index.d.ts +0 -2
  248. package/dist/esm/types/components/links/point.d.ts +0 -11
  249. package/dist/esm/types/components/paper.d.ts +0 -49
  250. package/dist/esm/types/components/ports/index.d.ts +0 -2
  251. package/dist/esm/types/components/ports/port.d.ts +0 -3
  252. package/dist/esm/types/components/shapeShowbox.d.ts +0 -3
  253. package/dist/esm/types/components/shapes/circle.d.ts +0 -9
  254. package/dist/esm/types/components/shapes/customShape.d.ts +0 -7
  255. package/dist/esm/types/components/shapes/halfCircle.d.ts +0 -9
  256. package/dist/esm/types/components/shapes/index.d.ts +0 -7
  257. package/dist/esm/types/components/shapes/polygon.d.ts +0 -8
  258. package/dist/esm/types/components/shapes/rectangle.d.ts +0 -10
  259. package/dist/esm/types/components/shapes/rectangularFrame.d.ts +0 -12
  260. package/dist/esm/types/components/shapes/shapeWrapper.d.ts +0 -8
  261. package/dist/esm/types/components/svgUtilsShowbox.d.ts +0 -3
  262. package/dist/esm/types/components/texts/index.d.ts +0 -2
  263. package/dist/esm/types/components/texts/text.d.ts +0 -4
  264. package/dist/esm/types/components/viewControls/ruler.d.ts +0 -10
  265. package/dist/esm/types/components/viewControls/selectionFrame.d.ts +0 -4
  266. package/dist/esm/types/contexts/editorConfigurationContext.d.ts +0 -4
  267. package/dist/esm/types/contexts/paperEventEmitterContext.d.ts +0 -45
  268. package/dist/esm/types/contexts/zoomContext.d.ts +0 -16
  269. package/dist/esm/types/contexts/zoomPanContext.d.ts +0 -23
  270. package/dist/esm/types/displaybox/index.d.ts +0 -3
  271. package/dist/esm/types/hooks/useKeyboardCommands.d.ts +0 -5
  272. package/dist/esm/types/hooks/useSelectionFrame.d.ts +0 -6
  273. package/dist/esm/types/logs/Logger.d.ts +0 -14
  274. package/dist/esm/types/logs/configureLogger.d.ts +0 -4
  275. package/dist/esm/types/main.d.ts +0 -8
  276. package/dist/esm/types/mocks/customPortWithBuiltinShape.d.ts +0 -2
  277. package/dist/esm/types/mocks/diamondElement.d.ts +0 -11
  278. package/dist/esm/types/mocks/editorContext.d.ts +0 -2
  279. package/dist/esm/types/mocks/editorContextElementMoveAsPort.d.ts +0 -2
  280. package/dist/esm/types/mocks/editorContextForOptimizeRerender.d.ts +0 -2
  281. package/dist/esm/types/mocks/editorContextMultipleElements.d.ts +0 -2
  282. package/dist/esm/types/mocks/editorContextSingleElement.d.ts +0 -2
  283. package/dist/esm/types/mocks/editorContextSingleElementTestEvents.d.ts +0 -2
  284. package/dist/esm/types/mocks/editorContextTriggerRenderElements.d.ts +0 -2
  285. package/dist/esm/types/mocks/editorContextWithElementAnchorCenter.d.ts +0 -2
  286. package/dist/esm/types/mocks/port1.d.ts +0 -5
  287. package/dist/esm/types/mocks/port2.d.ts +0 -5
  288. package/dist/esm/types/mocks/portIn.d.ts +0 -4
  289. package/dist/esm/types/mocks/rectangularFrameElement.d.ts +0 -11
  290. package/dist/esm/types/mocks/textsWithFlexBox.d.ts +0 -2
  291. package/dist/esm/types/models/IEditorConfiguration.d.ts +0 -7
  292. package/dist/esm/types/models/IEditorContext.d.ts +0 -56
  293. package/dist/esm/types/models/IElement.d.ts +0 -46
  294. package/dist/esm/types/models/IElementLink.d.ts +0 -23
  295. package/dist/esm/types/models/IElementLinkProps.d.ts +0 -31
  296. package/dist/esm/types/models/IElementProps.d.ts +0 -36
  297. package/dist/esm/types/models/IElementSelectorProps.d.ts +0 -25
  298. package/dist/esm/types/models/IFlexboxType.d.ts +0 -20
  299. package/dist/esm/types/models/IPaperBounds.d.ts +0 -6
  300. package/dist/esm/types/models/IPort.d.ts +0 -13
  301. package/dist/esm/types/models/IPortProps.d.ts +0 -31
  302. package/dist/esm/types/models/IResizability.d.ts +0 -4
  303. package/dist/esm/types/models/IShape.d.ts +0 -18
  304. package/dist/esm/types/models/IText.d.ts +0 -20
  305. package/dist/esm/types/models/ITextProps.d.ts +0 -25
  306. package/dist/esm/types/models/callbackTypes.d.ts +0 -21
  307. package/dist/esm/types/models/enums/PositioningAnchor.d.ts +0 -4
  308. package/dist/esm/types/models/enums/ResizingDirection.d.ts +0 -10
  309. package/dist/esm/types/models/enums/SubObjectDirection.d.ts +0 -4
  310. package/dist/esm/types/models/enums/TextAlign.d.ts +0 -5
  311. package/dist/esm/types/models/enums/index.d.ts +0 -4
  312. package/dist/esm/types/models/implementations/CustomPort.d.ts +0 -7
  313. package/dist/esm/types/models/implementations/CustomPortFromJSXElement.d.ts +0 -7
  314. package/dist/esm/types/models/implementations/CustomPortFromShape.d.ts +0 -7
  315. package/dist/esm/types/models/implementations/EditorContext.d.ts +0 -67
  316. package/dist/esm/types/models/implementations/Element.d.ts +0 -61
  317. package/dist/esm/types/models/implementations/ElementLink.d.ts +0 -25
  318. package/dist/esm/types/models/implementations/Port.d.ts +0 -22
  319. package/dist/esm/types/models/implementations/Text.d.ts +0 -20
  320. package/dist/esm/types/models/implementations/diamondElement.d.ts +0 -11
  321. package/dist/esm/types/models/implementations/index.d.ts +0 -6
  322. package/dist/esm/types/models/implementations/rectangularFrameElement.d.ts +0 -11
  323. package/dist/esm/types/models/index.d.ts +0 -19
  324. package/dist/esm/types/models/position.d.ts +0 -4
  325. package/dist/esm/types/models/size.d.ts +0 -4
  326. package/dist/esm/types/utils/constants.d.ts +0 -54
  327. package/dist/esm/types/utils/elementLinkUtil.d.ts +0 -2
  328. package/dist/esm/types/utils/generateUniqueId.d.ts +0 -1
  329. package/dist/esm/types/utils/index.d.ts +0 -9
  330. package/dist/esm/types/utils/lineUtil.d.ts +0 -3
  331. package/dist/esm/types/utils/mathUtil.d.ts +0 -6
  332. package/dist/esm/types/utils/pathUtil.d.ts +0 -13
  333. package/dist/esm/types/utils/portSlideRailSVGUtil.d.ts +0 -3
  334. package/dist/esm/types/utils/positionUtil.d.ts +0 -55
  335. package/dist/esm/types/utils/svgUtil.d.ts +0 -3
package/README.md CHANGED
@@ -1,88 +1,99 @@
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.2)
34
+
35
+ - Includes all completed `v0.2.1` work plus `v0.2.2` additions in one release.
36
+ - Shape system upgrade:
37
+ - class-based built-in shape behaviors
38
+ - runtime removal of `boundaryKind` branching
39
+ - additive rotation (`baseRotation` + instance rotation style)
40
+ - Port movement enhancements:
41
+ - shape-aware border projection
42
+ - optional anchor-constrained movement (`portMovement.moveMode = 'anchors'`)
43
+ - orientation support with host-border normals and resize reprojection
44
+ - Shape hover controls:
45
+ - generic control definitions with `targetKind` (`edge`, `vertex`, `midpoint`, `ellipse-midpoint`)
46
+ - trigger modes (`element-hover`, `target-hover`)
47
+ - interaction callbacks for click and drag lifecycle
48
+ - Text layout improvements:
49
+ - owner/fixed bounds modes, wrap and overflow controls, and layout padding
50
+ - `textUpdated` lifecycle event with rendered display content
51
+ - Additional lifecycle events:
52
+ - `portDeleted`, `linkDeleted`, `textDeleted`
53
+
54
+ ## API Docs
55
+
56
+ - Human-first docs index: `docs/INDEX.md`
57
+ - API contract: `docs/API_CONTRACT.md`
58
+ - State invariants: `docs/STATE_INVARIANTS.md`
59
+ - Integration: `docs/INTEGRATION_PLAYBOOK.md`
60
+
61
+ Machine-readable docs shipped in npm package:
62
+
63
+ - `ai/manifest.json`
64
+ - `ai/api-contract.json`
65
+ - `ai/invariants.json`
66
+
67
+ UNPKG examples:
68
+
69
+ - `https://unpkg.com/orcasvn-react-diagrams@<version>/ai/manifest.json`
70
+ - `https://unpkg.com/orcasvn-react-diagrams@<version>/docs/INDEX.md`
71
+
72
+ Node subpath export:
73
+
74
+ - `orcasvn-react-diagrams/ai-manifest`
75
+
76
+ ## External Drag And Drop
77
+
78
+ ```ts
79
+ const world = editor.clientToWorld(
80
+ { x: event.clientX, y: event.clientY },
81
+ stageContainer
82
+ );
83
+
84
+ editor.addElement({
85
+ id,
86
+ position: { x: world.x - width / 2, y: world.y - height / 2 },
87
+ size: { width, height },
88
+ shapeId,
89
+ });
90
+ ```
91
+
92
+ ## Scripts (Repository Development)
93
+
94
+ - `npm start`: run demo app.
95
+ - `npm run start-doc`: serve `analysis/`.
96
+ - `npm test`: run tests (watch mode).
97
+ - `npm run typecheck`: run TypeScript checks.
98
+ - `npm run build`: CRA build to `build/`.
99
+ - `npm run rollup-build-lib`: library build to `dist/`.
@@ -1,205 +1,257 @@
1
- {
2
- "schemaVersion": "1.1.0",
3
- "typeSource": "src/api/types.ts",
4
- "entrypoints": [
5
- {
6
- "name": "createDiagramEditor",
7
- "source": "src/api/createDiagramEditor.ts",
8
- "returns": "DiagramEditorHandle"
9
- },
10
- {
11
- "name": "createDiagramEngine",
12
- "source": "src/engine/DiagramEngine.ts",
13
- "returns": "DiagramEngineHandle"
14
- }
15
- ],
16
- "configs": {
17
- "diagramEditorConfig": {
18
- "required": {
19
- "container": "HTMLDivElement | string"
20
- },
21
- "optional": {
22
- "width": "number",
23
- "height": "number",
24
- "initialState": "DiagramState",
25
- "elementShapes": "SimpleShape[]",
26
- "portShapes": "SimpleShape[]",
27
- "panKey": "'Control' | 'Shift' | 'Alt' | 'Meta'",
28
- "onChange": "(event: EngineChangeEvent) => void",
29
- "onSelection": "(event: EngineSelectionEvent) => void"
30
- },
31
- "defaults": {
32
- "width": 900,
33
- "height": 560,
34
- "panKey": "Control"
35
- }
36
- },
37
- "diagramEngineConfig": {
38
- "required": {
39
- "renderer": "Renderer"
40
- },
41
- "optional": {
42
- "scheduler": "RenderScheduler",
43
- "router": "RouterStrategy",
44
- "snapper": "SnapStrategy",
45
- "shapeRegistry": "ShapeRegistry",
46
- "textMeasurer": "TextMeasurer"
47
- },
48
- "defaults": {
49
- "scheduler": "RenderScheduler",
50
- "router": "ObstacleRouter",
51
- "snapper": "DefaultSnapper",
52
- "shapeRegistry": "ShapeRegistry",
53
- "textMeasurer": "CanvasTextMeasurer"
54
- }
55
- }
56
- },
57
- "stateTypes": {
58
- "diagramState": {
59
- "required": [
60
- "elements",
61
- "ports",
62
- "links",
63
- "texts"
64
- ]
65
- },
66
- "elementData": {
67
- "required": [
68
- "id",
69
- "position",
70
- "size",
71
- "shapeId"
72
- ],
73
- "optional": [
74
- "style",
75
- "portIds",
76
- "textIds",
77
- "parentId",
78
- "moveMode",
79
- "anchorCenter",
80
- "layout"
81
- ],
82
- "defaults": {
83
- "portIds": [],
84
- "textIds": [],
85
- "parentId": null
86
- }
87
- },
88
- "portData": {
89
- "required": [
90
- "id",
91
- "elementId",
92
- "position"
93
- ],
94
- "optional": [
95
- "shapeId",
96
- "size",
97
- "style",
98
- "textIds",
99
- "moveMode",
100
- "anchorCenter"
101
- ],
102
- "defaults": {
103
- "textIds": [],
104
- "anchorCenter": true
105
- }
106
- },
107
- "linkData": {
108
- "required": [
109
- "id",
110
- "sourcePortId",
111
- "targetPortId",
112
- "points"
113
- ],
114
- "optional": [
115
- "routing",
116
- "style",
117
- "textIds"
118
- ],
119
- "defaults": {
120
- "routing": "auto",
121
- "textIds": []
122
- }
123
- },
124
- "textData": {
125
- "required": [
126
- "id",
127
- "content",
128
- "position"
129
- ],
130
- "optional": [
131
- "size",
132
- "style",
133
- "ownerId"
134
- ],
135
- "defaults": {
136
- "ownerId": null
137
- }
138
- },
139
- "elementLayoutDefaults": {
140
- "padding": 12,
141
- "gap": 12,
142
- "align": "center"
143
- }
144
- },
145
- "handleMethods": {
146
- "shared": [
147
- "load",
148
- "getState",
149
- "getViewport",
150
- "clientToWorld",
151
- "createOverlayShape",
152
- "on",
153
- "addElement",
154
- "moveElementTo",
155
- "resizeElement",
156
- "setElementLayout",
157
- "removeElement",
158
- "addPortToElement",
159
- "movePortTo",
160
- "removePort",
161
- "addLink",
162
- "updateLinkPoints",
163
- "setLinkRoutingMode",
164
- "rerouteAllLinks",
165
- "rerouteLinks",
166
- "removeLink",
167
- "addText",
168
- "updateText",
169
- "moveTextTo",
170
- "removeText",
171
- "setSelection",
172
- "setViewport",
173
- "setRouting",
174
- "setSnapping",
175
- "registerShape",
176
- "render"
177
- ],
178
- "editorOnly": [
179
- "resize",
180
- "destroy"
181
- ]
182
- },
183
- "events": {
184
- "change": "EngineChangeEvent",
185
- "selection": "EngineSelectionEvent",
186
- "config": "EngineConfigEvent",
187
- "element-drop": "ElementDropEvent",
188
- "elementDrop": "ElementDropEvent",
189
- "paperClick": "PaperClickEvent",
190
- "portMouseDown": "PortMouseEvent",
191
- "portMouseUp": "PortMouseEvent",
192
- "portMoved": "PortMovedEvent",
193
- "portSelected": "PortSelectedEvent",
194
- "elementClick": "ElementPointerEvent",
195
- "elementDragged": "ElementDropEvent",
196
- "elementMoved": "ElementMovedEvent",
197
- "elementResized": "ElementResizedEvent",
198
- "elementDeleted": "ElementDeletedEvent",
199
- "elementSelected": "ElementSelectedEvent",
200
- "elementLinkStarted": "ElementLinkStartedEvent",
201
- "elementLinkConnecting": "ElementLinkConnectingEvent",
202
- "elementLinkEnded": "ElementLinkEndedEvent",
203
- "textSelected": "TextSelectedEvent"
204
- }
205
- }
1
+ {
2
+ "schemaVersion": "1.2.0",
3
+ "typeSource": "src/api/types.ts",
4
+ "entrypoints": [
5
+ {
6
+ "name": "createDiagramEditor",
7
+ "source": "src/api/createDiagramEditor.ts",
8
+ "returns": "DiagramEditorHandle"
9
+ },
10
+ {
11
+ "name": "createDiagramEngine",
12
+ "source": "src/engine/DiagramEngine.ts",
13
+ "returns": "DiagramEngineHandle"
14
+ }
15
+ ],
16
+ "configs": {
17
+ "diagramEditorConfig": {
18
+ "required": {
19
+ "container": "HTMLDivElement | string"
20
+ },
21
+ "optional": {
22
+ "width": "number",
23
+ "height": "number",
24
+ "initialState": "DiagramState",
25
+ "elementShapes": "SimpleShape[]",
26
+ "portShapes": "SimpleShape[]",
27
+ "panKey": "'Control' | 'Shift' | 'Alt' | 'Meta'",
28
+ "elementShapeHoverControls": "ElementShapeHoverControls",
29
+ "onElementShapeHoverControlInteraction": "(event: ElementShapeHoverControlInteractionEvent) => void",
30
+ "onElementShapeHoverControlActivated": "(event: ElementShapeHoverControlActivationEvent) => void",
31
+ "onChange": "(event: EngineChangeEvent) => void",
32
+ "onSelection": "(event: EngineSelectionEvent) => void"
33
+ },
34
+ "defaults": {
35
+ "width": 900,
36
+ "height": 560,
37
+ "panKey": "Control"
38
+ }
39
+ },
40
+ "diagramEngineConfig": {
41
+ "required": {
42
+ "renderer": "Renderer"
43
+ },
44
+ "optional": {
45
+ "scheduler": "RenderScheduler",
46
+ "router": "RouterStrategy",
47
+ "snapper": "SnapStrategy",
48
+ "shapeRegistry": "ShapeRegistry",
49
+ "textMeasurer": "TextMeasurer"
50
+ },
51
+ "defaults": {
52
+ "scheduler": "RenderScheduler",
53
+ "router": "ObstacleRouter",
54
+ "snapper": "DefaultSnapper",
55
+ "shapeRegistry": "ShapeRegistry",
56
+ "textMeasurer": "CanvasTextMeasurer"
57
+ }
58
+ }
59
+ },
60
+ "stateTypes": {
61
+ "diagramState": {
62
+ "required": [
63
+ "elements",
64
+ "ports",
65
+ "links",
66
+ "texts"
67
+ ]
68
+ },
69
+ "elementData": {
70
+ "required": [
71
+ "id",
72
+ "position",
73
+ "size",
74
+ "shapeId"
75
+ ],
76
+ "optional": [
77
+ "style",
78
+ "portIds",
79
+ "textIds",
80
+ "parentId",
81
+ "moveMode",
82
+ "anchorCenter",
83
+ "layout",
84
+ "portMovement"
85
+ ],
86
+ "defaults": {
87
+ "portIds": [],
88
+ "textIds": [],
89
+ "parentId": null
90
+ }
91
+ },
92
+ "portData": {
93
+ "required": [
94
+ "id",
95
+ "elementId",
96
+ "position"
97
+ ],
98
+ "optional": [
99
+ "shapeId",
100
+ "size",
101
+ "style",
102
+ "textIds",
103
+ "moveMode",
104
+ "anchorCenter",
105
+ "orientToHostBorder",
106
+ "currentAnchorId"
107
+ ],
108
+ "defaults": {
109
+ "textIds": [],
110
+ "anchorCenter": true,
111
+ "orientToHostBorder": true
112
+ }
113
+ },
114
+ "linkData": {
115
+ "required": [
116
+ "id",
117
+ "sourcePortId",
118
+ "targetPortId",
119
+ "points"
120
+ ],
121
+ "optional": [
122
+ "routing",
123
+ "style",
124
+ "textIds"
125
+ ],
126
+ "defaults": {
127
+ "routing": "auto",
128
+ "textIds": []
129
+ }
130
+ },
131
+ "textData": {
132
+ "required": [
133
+ "id",
134
+ "content",
135
+ "position"
136
+ ],
137
+ "optional": [
138
+ "size",
139
+ "style",
140
+ "ownerId",
141
+ "layout",
142
+ "displayContent",
143
+ "displayOffset",
144
+ "displayClipSize"
145
+ ],
146
+ "defaults": {
147
+ "ownerId": null
148
+ }
149
+ },
150
+ "elementLayoutDefaults": {
151
+ "padding": 12,
152
+ "gap": 12,
153
+ "align": "center"
154
+ }
155
+ },
156
+ "additionalContracts": {
157
+ "portMovementPolicy": {
158
+ "moveMode": "'free' | 'inside' | 'border' | 'anchors'",
159
+ "anchorConstraint": "PortAnchorConstraint"
160
+ },
161
+ "portAnchorConstraint": {
162
+ "preset": "'vertices' | 'cardinal'",
163
+ "fallback": "'nearest'"
164
+ },
165
+ "textLayout": {
166
+ "boundsMode": "'owner-width' | 'owner-box' | 'fixed'",
167
+ "wrap": "'none' | 'word' | 'char'",
168
+ "overflow": "'clip' | 'ellipsis-end' | 'ellipsis-middle' | 'ellipsis-start'",
169
+ "padding": "number",
170
+ "maxLines": "number",
171
+ "fixedSize": "Size"
172
+ },
173
+ "shapeHoverControls": {
174
+ "targetKinds": [
175
+ "vertex",
176
+ "edge",
177
+ "midpoint",
178
+ "ellipse-midpoint"
179
+ ],
180
+ "visibilityTriggers": [
181
+ "element-hover",
182
+ "target-hover"
183
+ ],
184
+ "interactionEventTypes": [
185
+ "click",
186
+ "drag-start",
187
+ "drag-move",
188
+ "drag-end"
189
+ ]
190
+ }
191
+ },
192
+ "handleMethods": {
193
+ "shared": [
194
+ "load",
195
+ "getState",
196
+ "getViewport",
197
+ "clientToWorld",
198
+ "createOverlayShape",
199
+ "on",
200
+ "addElement",
201
+ "moveElementTo",
202
+ "resizeElement",
203
+ "setElementLayout",
204
+ "removeElement",
205
+ "addPortToElement",
206
+ "movePortTo",
207
+ "removePort",
208
+ "addLink",
209
+ "updateLinkPoints",
210
+ "setLinkRoutingMode",
211
+ "rerouteAllLinks",
212
+ "rerouteLinks",
213
+ "removeLink",
214
+ "addText",
215
+ "updateText",
216
+ "moveTextTo",
217
+ "removeText",
218
+ "setSelection",
219
+ "setViewport",
220
+ "setRouting",
221
+ "setSnapping",
222
+ "registerShape",
223
+ "render"
224
+ ],
225
+ "editorOnly": [
226
+ "resize",
227
+ "setElementShapeHoverControls",
228
+ "destroy"
229
+ ]
230
+ },
231
+ "events": {
232
+ "change": "EngineChangeEvent",
233
+ "selection": "EngineSelectionEvent",
234
+ "config": "EngineConfigEvent",
235
+ "element-drop": "ElementDropEvent",
236
+ "elementDrop": "ElementDropEvent",
237
+ "paperClick": "PaperClickEvent",
238
+ "portMouseDown": "PortMouseEvent",
239
+ "portMouseUp": "PortMouseEvent",
240
+ "portMoved": "PortMovedEvent",
241
+ "portSelected": "PortSelectedEvent",
242
+ "elementClick": "ElementPointerEvent",
243
+ "elementDragged": "ElementDropEvent",
244
+ "elementMoved": "ElementMovedEvent",
245
+ "elementResized": "ElementResizedEvent",
246
+ "elementDeleted": "ElementDeletedEvent",
247
+ "portDeleted": "PortDeletedEvent",
248
+ "linkDeleted": "LinkDeletedEvent",
249
+ "textDeleted": "TextDeletedEvent",
250
+ "textUpdated": "TextUpdatedEvent",
251
+ "elementSelected": "ElementSelectedEvent",
252
+ "elementLinkStarted": "ElementLinkStartedEvent",
253
+ "elementLinkConnecting": "ElementLinkConnectingEvent",
254
+ "elementLinkEnded": "ElementLinkEndedEvent",
255
+ "textSelected": "TextSelectedEvent"
256
+ }
257
+ }