@yuzhouu/canvas-kit 0.1.9 → 0.1.11

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 (375) hide show
  1. package/README.md +204 -101
  2. package/_vendor/canvas-core/bindings/bindingUtil.d.ts +23 -0
  3. package/_vendor/canvas-core/bindings/terminalPorts.d.ts +67 -0
  4. package/_vendor/canvas-core/editor/bindingReactionScope.d.ts +7 -0
  5. package/_vendor/canvas-core/editor/cameraPanSession.d.ts +9 -0
  6. package/_vendor/canvas-core/editor/canvasPanInteraction.d.ts +2 -0
  7. package/_vendor/canvas-core/editor/commands.d.ts +16 -4
  8. package/_vendor/canvas-core/editor/createEditorWithPlugins.d.ts +6 -0
  9. package/_vendor/canvas-core/editor/editor.d.ts +44 -31
  10. package/_vendor/canvas-core/editor/editorComputedHelpers.d.ts +5 -2
  11. package/_vendor/canvas-core/editor/historyManager.d.ts +24 -6
  12. package/_vendor/canvas-core/editor/index.d.ts +2 -2
  13. package/_vendor/canvas-core/editor/interactions.d.ts +41 -8
  14. package/_vendor/canvas-core/editor/managers/bindingManager.d.ts +2 -6
  15. package/_vendor/canvas-core/editor/managers/inputsManager.d.ts +3 -0
  16. package/_vendor/canvas-core/editor/managers/interactionTransientManager.d.ts +0 -26
  17. package/_vendor/canvas-core/editor/managers/queryManager.d.ts +26 -1
  18. package/_vendor/canvas-core/editor/managers/selectionLayoutManager.d.ts +5 -0
  19. package/_vendor/canvas-core/editor/managers/selectionOverlayManager.d.ts +1 -0
  20. package/_vendor/canvas-core/editor/managers/shapeEditingManager.d.ts +4 -0
  21. package/_vendor/canvas-core/editor/managers/shapeGeometryManager.d.ts +3 -2
  22. package/_vendor/canvas-core/editor/managers/shapeHierarchyManager.d.ts +7 -2
  23. package/_vendor/canvas-core/editor/managers/shapeReparenting.d.ts +3 -2
  24. package/_vendor/canvas-core/editor/managers/snapCalculations.d.ts +4 -1
  25. package/_vendor/canvas-core/editor/managers/snapGeometry.d.ts +2 -1
  26. package/_vendor/canvas-core/editor/managers/snapTypes.d.ts +1 -0
  27. package/_vendor/canvas-core/editor/managers/spatialIndexManager.d.ts +1 -0
  28. package/_vendor/canvas-core/editor/operationManager.d.ts +74 -0
  29. package/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +32 -12
  30. package/_vendor/canvas-core/editor/selection.d.ts +19 -5
  31. package/_vendor/canvas-core/editor/selectionOverlay.d.ts +7 -4
  32. package/_vendor/canvas-core/editor/selectionResizeCapabilities.d.ts +9 -0
  33. package/_vendor/canvas-core/editor/shapeTransformSpace.d.ts +6 -0
  34. package/_vendor/canvas-core/exports/svg.d.ts +3 -3
  35. package/_vendor/canvas-core/geometry/contentCutout.d.ts +8 -0
  36. package/_vendor/canvas-core/geometry/index.d.ts +1 -0
  37. package/_vendor/canvas-core/geometry/mat.d.ts +6 -2
  38. package/_vendor/canvas-core/geometry/polygon.d.ts +7 -0
  39. package/_vendor/canvas-core/geometry/vec.d.ts +0 -2
  40. package/_vendor/canvas-core/index.d.ts +21 -23
  41. package/_vendor/canvas-core/plugins/editorRuntimePlugin.d.ts +4 -10
  42. package/_vendor/canvas-core/plugins/editorRuntimeRegistry.d.ts +19 -0
  43. package/_vendor/canvas-core/plugins/index.d.ts +2 -1
  44. package/_vendor/canvas-core/schema/records.d.ts +2 -7
  45. package/_vendor/canvas-core/schema/snapshots.d.ts +10 -19
  46. package/_vendor/canvas-core/shapes/colors.d.ts +3 -3
  47. package/_vendor/canvas-core/shapes/shapeUtil.d.ts +97 -13
  48. package/_vendor/canvas-core/tools/select/selectToolHelpers.d.ts +18 -8
  49. package/_vendor/canvas-core/tools/select/states/draggingPluginInteractionState.d.ts +16 -0
  50. package/_vendor/canvas-core/tools/select/states/index.d.ts +1 -1
  51. package/_vendor/canvas-core/tools/select/states/pointingSelectionHandleInteractionState.d.ts +3 -2
  52. package/_vendor/canvas-core/tools/select/states/pointingShapeState.d.ts +1 -1
  53. package/_vendor/canvas-core/tools/select/states/resizingState.d.ts +1 -1
  54. package/_vendor/canvas-core/tools/select/states/rotatingState.d.ts +1 -1
  55. package/_vendor/canvas-core/tools/select/states/selectStateNode.d.ts +6 -2
  56. package/_vendor/canvas-core/tools/select/states/translatingState.d.ts +1 -1
  57. package/_vendor/canvas-plugin-sdk/actionRegistry.d.ts +7 -0
  58. package/_vendor/{canvas-core/surfaces → canvas-plugin-sdk}/actions.d.ts +21 -6
  59. package/_vendor/canvas-plugin-sdk/capability.d.ts +16 -0
  60. package/_vendor/canvas-plugin-sdk/chrome.d.ts +52 -0
  61. package/_vendor/canvas-plugin-sdk/chromeRegistry.d.ts +15 -0
  62. package/_vendor/{canvas-core/surfaces → canvas-plugin-sdk}/contextMenu.d.ts +25 -30
  63. package/_vendor/canvas-plugin-sdk/contextMenuRegistry.d.ts +11 -0
  64. package/_vendor/canvas-plugin-sdk/exportRegistry.d.ts +9 -0
  65. package/_vendor/canvas-plugin-sdk/exports.d.ts +26 -0
  66. package/_vendor/canvas-plugin-sdk/importRegistry.d.ts +10 -0
  67. package/_vendor/canvas-plugin-sdk/imports.d.ts +38 -0
  68. package/_vendor/canvas-plugin-sdk/index.d.ts +18 -0
  69. package/_vendor/canvas-plugin-sdk/lifecycle.d.ts +31 -0
  70. package/_vendor/canvas-plugin-sdk/plugin.d.ts +76 -0
  71. package/_vendor/canvas-plugin-sdk/pluginUi.d.ts +37 -0
  72. package/_vendor/canvas-plugin-sdk/productApi.d.ts +28 -0
  73. package/_vendor/canvas-plugin-sdk/services.d.ts +20 -0
  74. package/_vendor/{canvas-core/surfaces → canvas-plugin-sdk}/toolbar.d.ts +48 -5
  75. package/_vendor/canvas-plugin-sdk/toolbarRegistry.d.ts +18 -0
  76. package/_vendor/canvas-react/components/CanvasView.d.ts +2 -2
  77. package/_vendor/canvas-react/components/canvasKeyboardEvents.d.ts +13 -0
  78. package/_vendor/canvas-react/components/useCanvasDomEvents.d.ts +4 -3
  79. package/_vendor/canvas-react/contextMenuRequest.d.ts +19 -0
  80. package/_vendor/canvas-react/host/canvasRenderPlugin.d.ts +22 -5
  81. package/_vendor/canvas-react/host/canvasRenderRuntime.d.ts +13 -0
  82. package/_vendor/canvas-react/host/domEventGuards.d.ts +3 -3
  83. package/_vendor/canvas-react/host/index.d.ts +3 -9
  84. package/_vendor/canvas-react/host/overlayRegistry.d.ts +3 -3
  85. package/_vendor/canvas-react/host/rendererRegistry.d.ts +7 -4
  86. package/_vendor/canvas-react/index.d.ts +1 -0
  87. package/_vendor/plugin-arrow/api.d.ts +33 -0
  88. package/_vendor/plugin-arrow/arrowGeometry.d.ts +7 -4
  89. package/_vendor/plugin-arrow/arrowHeadGeometry.d.ts +8 -0
  90. package/_vendor/plugin-arrow/arrowShapeUtil.d.ts +7 -4
  91. package/_vendor/plugin-arrow/arrowTerminalCommands.d.ts +2 -2
  92. package/_vendor/plugin-arrow/canvasRender.d.ts +2 -2
  93. package/_vendor/plugin-arrow/editorRuntime.d.ts +2 -2
  94. package/_vendor/plugin-arrow/feature.d.ts +2 -3
  95. package/_vendor/plugin-arrow/index.d.ts +5 -2
  96. package/_vendor/plugin-arrow/productRuntime.d.ts +2 -0
  97. package/_vendor/plugin-builtin-clipboard/clipboardChromeContributions.d.ts +2 -0
  98. package/{features/clipboard → _vendor/plugin-builtin-clipboard}/clipboardContextMenuContributions.d.ts +1 -1
  99. package/{features/clipboard → _vendor/plugin-builtin-clipboard}/clipboardContribution.d.ts +2 -2
  100. package/{features/clipboard → _vendor/plugin-builtin-clipboard}/clipboardService.d.ts +3 -3
  101. package/_vendor/plugin-builtin-clipboard/index.d.ts +3 -0
  102. package/_vendor/plugin-builtin-clipboard/plugin.d.ts +1 -0
  103. package/_vendor/plugin-builtin-export/blobDataUrl.d.ts +1 -0
  104. package/_vendor/plugin-builtin-export/canvasExportApi.d.ts +43 -0
  105. package/_vendor/plugin-builtin-export/index.d.ts +8 -0
  106. package/_vendor/plugin-builtin-export/plugin.d.ts +5 -0
  107. package/_vendor/plugin-builtin-export/pngExport.d.ts +15 -0
  108. package/{features/export → _vendor/plugin-builtin-export}/svgExport.d.ts +9 -2
  109. package/_vendor/plugin-builtin-import-host/CanvasImportHost.d.ts +3 -0
  110. package/_vendor/plugin-builtin-import-host/capability.d.ts +1 -0
  111. package/_vendor/plugin-builtin-import-host/index.d.ts +2 -0
  112. package/_vendor/plugin-builtin-import-host/plugin.d.ts +1 -0
  113. package/_vendor/plugin-builtin-tool-actions/capability.d.ts +1 -0
  114. package/_vendor/plugin-builtin-tool-actions/index.d.ts +2 -0
  115. package/_vendor/plugin-builtin-tool-actions/plugin.d.ts +1 -0
  116. package/_vendor/plugin-builtin-tool-actions/toolActions.d.ts +2 -0
  117. package/_vendor/plugin-connector/canvasRender.d.ts +2 -0
  118. package/_vendor/plugin-connector/connectorBindingUtil.d.ts +28 -0
  119. package/_vendor/plugin-connector/connectorBindings.d.ts +8 -0
  120. package/_vendor/plugin-connector/connectorGeometry.d.ts +70 -0
  121. package/_vendor/plugin-connector/connectorHandles.d.ts +12 -0
  122. package/_vendor/plugin-connector/connectorInteractions.d.ts +3 -0
  123. package/_vendor/plugin-connector/connectorMarker.d.ts +7 -0
  124. package/_vendor/plugin-connector/connectorModel.d.ts +43 -0
  125. package/_vendor/plugin-connector/connectorPortInteraction.d.ts +13 -0
  126. package/_vendor/plugin-connector/connectorPorts.d.ts +23 -0
  127. package/_vendor/plugin-connector/connectorRuntime.d.ts +62 -0
  128. package/_vendor/plugin-connector/connectorShapeUtil.d.ts +29 -0
  129. package/_vendor/plugin-connector/connectorTool.d.ts +4 -0
  130. package/_vendor/plugin-connector/constants.d.ts +17 -0
  131. package/_vendor/plugin-connector/editorRuntime.d.ts +7 -0
  132. package/_vendor/plugin-connector/feature.d.ts +4 -0
  133. package/_vendor/plugin-connector/index.d.ts +18 -0
  134. package/_vendor/plugin-connector/orthogonalRoute.d.ts +9 -0
  135. package/_vendor/plugin-connector/productRuntime.d.ts +2 -0
  136. package/_vendor/plugin-connector/quickConnect.d.ts +28 -0
  137. package/_vendor/plugin-connector/types.d.ts +51 -0
  138. package/_vendor/plugin-draw/DrawShapeRenderer.d.ts +5 -2
  139. package/_vendor/plugin-draw/canvasRender.d.ts +2 -2
  140. package/_vendor/plugin-draw/drawGeometry.d.ts +4 -7
  141. package/_vendor/plugin-draw/drawPath.d.ts +7 -1
  142. package/_vendor/plugin-draw/drawShapeUtil.d.ts +2 -2
  143. package/_vendor/plugin-draw/editorRuntime.d.ts +3 -3
  144. package/_vendor/plugin-draw/feature.d.ts +2 -3
  145. package/_vendor/plugin-draw/index.d.ts +4 -3
  146. package/_vendor/plugin-draw/productRuntime.d.ts +2 -0
  147. package/_vendor/plugin-eraser/canvasRender.d.ts +2 -2
  148. package/_vendor/plugin-eraser/editorRuntime.d.ts +2 -2
  149. package/_vendor/plugin-eraser/eraserRuntime.d.ts +12 -0
  150. package/_vendor/plugin-eraser/feature.d.ts +2 -3
  151. package/_vendor/plugin-eraser/index.d.ts +4 -2
  152. package/_vendor/plugin-eraser/productRuntime.d.ts +2 -0
  153. package/_vendor/plugin-frame/api.d.ts +19 -0
  154. package/_vendor/plugin-frame/canvasRender.d.ts +5 -5
  155. package/_vendor/plugin-frame/editorRuntime.d.ts +2 -2
  156. package/_vendor/plugin-frame/feature.d.ts +2 -3
  157. package/_vendor/plugin-frame/frameShapeUtil.d.ts +12 -2
  158. package/_vendor/plugin-frame/index.d.ts +5 -2
  159. package/_vendor/plugin-frame/productRuntime.d.ts +2 -0
  160. package/_vendor/plugin-geo/api.d.ts +27 -0
  161. package/_vendor/plugin-geo/canvasRender.d.ts +5 -5
  162. package/_vendor/plugin-geo/editorRuntime.d.ts +3 -3
  163. package/_vendor/plugin-geo/feature.d.ts +2 -3
  164. package/_vendor/plugin-geo/geoShapeUtil.d.ts +1 -1
  165. package/_vendor/plugin-geo/geoStrokeStyle.d.ts +2 -0
  166. package/_vendor/plugin-geo/geoTools.d.ts +1 -1
  167. package/_vendor/plugin-geo/index.d.ts +8 -5
  168. package/_vendor/plugin-geo/productRuntime.d.ts +2 -0
  169. package/_vendor/plugin-geo/types.d.ts +5 -1
  170. package/_vendor/plugin-group/canvasRender.d.ts +3 -4
  171. package/_vendor/plugin-group/editorRuntime.d.ts +2 -2
  172. package/_vendor/plugin-group/feature.d.ts +2 -3
  173. package/_vendor/plugin-group/groupContributions.d.ts +7 -0
  174. package/_vendor/plugin-group/groupShapeUtil.d.ts +24 -5
  175. package/_vendor/plugin-group/index.d.ts +4 -2
  176. package/_vendor/plugin-group/productRuntime.d.ts +2 -0
  177. package/_vendor/plugin-image/canvasRender.d.ts +2 -2
  178. package/_vendor/plugin-image/cropRuntime.d.ts +1 -1
  179. package/_vendor/plugin-image/cropSession.d.ts +5 -3
  180. package/_vendor/plugin-image/editorRuntime.d.ts +2 -4
  181. package/_vendor/plugin-image/feature.d.ts +2 -3
  182. package/_vendor/plugin-image/imageHostActionContract.d.ts +1 -1
  183. package/_vendor/plugin-image/imageShapeUtil.d.ts +3 -3
  184. package/_vendor/plugin-image/index.d.ts +5 -4
  185. package/_vendor/plugin-image/productRuntime.d.ts +4 -0
  186. package/_vendor/plugin-image/runtimeShared.d.ts +1 -1
  187. package/_vendor/plugin-image/smudge.d.ts +6 -2
  188. package/_vendor/plugin-image/smudgeRuntime.d.ts +1 -1
  189. package/_vendor/plugin-image/styleRuntime.d.ts +6 -1
  190. package/_vendor/plugin-image/toolbarRuntime.d.ts +1 -1
  191. package/_vendor/plugin-laser/canvasRender.d.ts +2 -2
  192. package/_vendor/plugin-laser/editorRuntime.d.ts +2 -2
  193. package/_vendor/plugin-laser/feature.d.ts +2 -3
  194. package/_vendor/plugin-laser/index.d.ts +4 -2
  195. package/_vendor/plugin-laser/laserRuntime.d.ts +18 -0
  196. package/_vendor/plugin-laser/productRuntime.d.ts +2 -0
  197. package/_vendor/plugin-packaging/api.d.ts +74 -0
  198. package/_vendor/plugin-packaging/canvasRender.d.ts +2 -0
  199. package/_vendor/plugin-packaging/editorRuntime.d.ts +2 -0
  200. package/_vendor/plugin-packaging/feature.d.ts +2 -0
  201. package/_vendor/plugin-packaging/index.d.ts +19 -0
  202. package/_vendor/plugin-packaging/packagingArtwork.d.ts +5 -0
  203. package/_vendor/plugin-packaging/packagingDxf.d.ts +9 -0
  204. package/_vendor/plugin-packaging/packagingGeometry.d.ts +74 -0
  205. package/_vendor/plugin-packaging/packagingInteractions.d.ts +2 -0
  206. package/_vendor/plugin-packaging/packagingPdfExporter.d.ts +25 -0
  207. package/_vendor/plugin-packaging/packagingRuntime.d.ts +11 -0
  208. package/_vendor/plugin-packaging/packagingShapeUtil.d.ts +34 -0
  209. package/_vendor/plugin-packaging/packagingStyle.d.ts +10 -0
  210. package/_vendor/plugin-packaging/packagingSvgExporter.d.ts +7 -0
  211. package/_vendor/plugin-packaging/productRuntime.d.ts +2 -0
  212. package/_vendor/plugin-packaging/types.d.ts +168 -0
  213. package/_vendor/plugin-packaging/validation.d.ts +3 -0
  214. package/_vendor/plugin-path/PathDraftOverlay.d.ts +1 -0
  215. package/_vendor/plugin-path/PathEditInsertPreviewOverlay.d.ts +1 -0
  216. package/_vendor/plugin-path/PathShapeRenderer.d.ts +15 -0
  217. package/_vendor/plugin-path/canvasRender.d.ts +2 -0
  218. package/_vendor/plugin-path/editorRuntime.d.ts +7 -0
  219. package/_vendor/plugin-path/feature.d.ts +2 -0
  220. package/_vendor/plugin-path/index.d.ts +8 -0
  221. package/_vendor/plugin-path/pathBoolean.d.ts +13 -0
  222. package/_vendor/plugin-path/pathDraft.d.ts +10 -0
  223. package/_vendor/plugin-path/pathEditPreview.d.ts +11 -0
  224. package/_vendor/plugin-path/pathEditSelection.d.ts +24 -0
  225. package/_vendor/plugin-path/pathEditSnap.d.ts +6 -0
  226. package/_vendor/plugin-path/pathGeometry.d.ts +74 -0
  227. package/_vendor/plugin-path/pathHandles.d.ts +18 -0
  228. package/_vendor/plugin-path/pathHistory.d.ts +13 -0
  229. package/_vendor/plugin-path/pathInteractions.d.ts +7 -0
  230. package/_vendor/plugin-path/pathShapeUtil.d.ts +30 -0
  231. package/_vendor/plugin-path/pathSvg.d.ts +3 -0
  232. package/_vendor/plugin-path/pathTool.d.ts +42 -0
  233. package/_vendor/plugin-path/productRuntime.d.ts +15 -0
  234. package/_vendor/plugin-path/types.d.ts +36 -0
  235. package/_vendor/plugin-text/api.d.ts +20 -0
  236. package/_vendor/plugin-text/canvasRender.d.ts +6 -3
  237. package/_vendor/plugin-text/capabilities.d.ts +2 -0
  238. package/_vendor/plugin-text/editorRuntime.d.ts +3 -3
  239. package/_vendor/plugin-text/feature.d.ts +4 -4
  240. package/_vendor/plugin-text/geoLabelBindingUtil.d.ts +6 -3
  241. package/_vendor/plugin-text/host/RichTextEditingBox.d.ts +4 -1
  242. package/_vendor/plugin-text/host/TiptapTextEditor.d.ts +6 -3
  243. package/_vendor/plugin-text/host/initialTextBackground.d.ts +2 -0
  244. package/_vendor/plugin-text/host/richTextRendering.d.ts +1 -2
  245. package/_vendor/plugin-text/host/textEditingBoxStyle.d.ts +1 -1
  246. package/_vendor/plugin-text/host/textEntryFocus.d.ts +2 -1
  247. package/_vendor/plugin-text/host/textFormattingApi.d.ts +16 -0
  248. package/_vendor/plugin-text/host/textMeasurement.d.ts +10 -2
  249. package/_vendor/plugin-text/host/textShapeRendererRuntime.d.ts +3 -1
  250. package/_vendor/plugin-text/host/tiptapTextEditorController.d.ts +4 -1
  251. package/_vendor/plugin-text/index.d.ts +11 -4
  252. package/_vendor/plugin-text/pathLabelBindingUtil.d.ts +55 -0
  253. package/_vendor/plugin-text/productRuntime.d.ts +6 -0
  254. package/_vendor/plugin-text/richTextUtils.d.ts +9 -2
  255. package/_vendor/plugin-text/shapeWideTextFormatting.d.ts +12 -0
  256. package/_vendor/plugin-text/textFonts.d.ts +6 -3
  257. package/_vendor/plugin-text/textFormatting.d.ts +47 -0
  258. package/_vendor/plugin-text/textFormattingSession.d.ts +6 -0
  259. package/_vendor/plugin-text/textLabelHelpers.d.ts +32 -6
  260. package/_vendor/plugin-text/textLinkPopoverPresentation.d.ts +18 -0
  261. package/_vendor/plugin-text/textShapeHelpers.d.ts +1 -0
  262. package/_vendor/plugin-text/textShapeUtil.d.ts +9 -5
  263. package/_vendor/plugin-text/textTypes.d.ts +1 -0
  264. package/_vendor/signals/core.d.ts +1 -0
  265. package/_vendor/signals/effect.d.ts +0 -4
  266. package/_vendor/signals/index.d.ts +2 -2
  267. package/_vendor/store/history.d.ts +1 -1
  268. package/_vendor/store/store.d.ts +6 -0
  269. package/browser/indexedDb.d.ts +10 -10
  270. package/browser/persistence.d.ts +6 -38
  271. package/chrome/floating/CanvasKitFloatingPortal.d.ts +6 -0
  272. package/chrome/floating/useCanvasKitFloatingPosition.d.ts +11 -0
  273. package/chrome/toolbar/CanvasKitFloatingToolbarLayer.d.ts +1 -1
  274. package/chrome/toolbar/FloatingSelectionToolbarPageSpace.d.ts +5 -3
  275. package/chrome/toolbar/toolbarLabels.d.ts +1 -1
  276. package/chrome/toolbar/useToolbarSurfaces.d.ts +11 -16
  277. package/chrome/types.d.ts +15 -17
  278. package/chrome/useCanvasKitChromeContext.d.ts +12 -15
  279. package/chrome/useChromeSurfaces.d.ts +12 -0
  280. package/chrome/useContextMenuSurface.d.ts +4 -4
  281. package/chrome/useHistoryControls.d.ts +3 -3
  282. package/chrome/usePageControls.d.ts +3 -3
  283. package/controller/canvasKitController.d.ts +5 -16
  284. package/core/index.d.ts +4 -6
  285. package/core/product-controller/canvasProductController.d.ts +42 -12
  286. package/core/product-controller/index.d.ts +1 -1
  287. package/core/runtime/productAssets.d.ts +4 -2
  288. package/core/runtime/productEditor.d.ts +1 -1
  289. package/core/runtime/productServices.d.ts +11 -21
  290. package/core/runtime/runtimeContracts.d.ts +17 -0
  291. package/es-DocrZgUh.mjs +2 -0
  292. package/features/context-menu/contextMenuRuntime.d.ts +4 -4
  293. package/features/image/asset/imageAssetService.d.ts +2 -3
  294. package/features/image/asset/imageBlobStore.d.ts +7 -2
  295. package/features/image/asset/imageFileHelpers.d.ts +0 -6
  296. package/features/image/asset/svgImageAssetInliner.d.ts +1 -1
  297. package/features/image/controller/imageProductController.d.ts +2 -2
  298. package/features/image/imageHostPlugin.d.ts +1 -0
  299. package/features/image/import/ImageImportController.d.ts +3 -1
  300. package/features/image/index.d.ts +1 -3
  301. package/features/image/smudge/imageSmudgeHostActions.d.ts +2 -2
  302. package/features/image/toolbar/imageHostActions.d.ts +17 -7
  303. package/features/image/toolbar/imageToolbarHostBridge.d.ts +1 -1
  304. package/features/text/link/TextLinkHoverPopover.d.ts +6 -0
  305. package/features/text/textHostPlugin.d.ts +5 -0
  306. package/features/text/textSvgAssetInliner.d.ts +3 -0
  307. package/features/text/textSvgAssetPlugin.d.ts +2 -0
  308. package/index.css +1 -1
  309. package/index.d.ts +36 -12
  310. package/index.mjs +111 -96
  311. package/package.json +12 -9
  312. package/plugins/standardCanvasKitPlugins.d.ts +16 -0
  313. package/react/CanvasKitRoot.d.ts +10 -5
  314. package/react/useCanvasKitControllerLifecycle.d.ts +8 -0
  315. package/react/useCanvasKitRuntime.d.ts +2 -4
  316. package/runtime/canvasKitCommandExecutor.d.ts +13 -0
  317. package/runtime/canvasKitPluginContracts.d.ts +34 -0
  318. package/runtime/canvasKitPluginSetup.d.ts +32 -0
  319. package/runtime/canvasKitResourceScope.d.ts +5 -0
  320. package/runtime/canvasKitRuntime.d.ts +48 -19
  321. package/runtime/canvasKitRuntimeContracts.d.ts +34 -0
  322. package/runtime/persistenceCoordinator.d.ts +33 -0
  323. package/_vendor/canvas-core/editor/createEditorWithRuntimePlugins.d.ts +0 -6
  324. package/_vendor/canvas-core/editor/middleMousePanInteraction.d.ts +0 -2
  325. package/_vendor/canvas-core/schema/snapshotSupport.d.ts +0 -43
  326. package/_vendor/canvas-core/tools/select/states/draggingSelectionHandleInteractionState.d.ts +0 -15
  327. package/_vendor/canvas-react/host/actionRegistry.d.ts +0 -15
  328. package/_vendor/canvas-react/host/canvasRenderPluginHost.d.ts +0 -2
  329. package/_vendor/canvas-react/host/canvasRenderPluginHostManifest.d.ts +0 -2
  330. package/_vendor/canvas-react/host/canvasRenderPluginHostRuntime.d.ts +0 -3
  331. package/_vendor/canvas-react/host/canvasRenderPluginHostTypes.d.ts +0 -104
  332. package/_vendor/canvas-react/host/canvasRenderPluginHostValidation.d.ts +0 -11
  333. package/_vendor/canvas-react/host/contextMenuRegistry.d.ts +0 -17
  334. package/_vendor/canvas-react/host/extension.d.ts +0 -37
  335. package/_vendor/canvas-react/host/toolbarRegistry.d.ts +0 -20
  336. package/_vendor/plugin-text/arrowLabelBindingUtil.d.ts +0 -42
  337. package/_vendor/plugin-text/host/RichTextLinkPopover.d.ts +0 -14
  338. package/_vendor/plugin-text/host/RichTextToolbar.d.ts +0 -8
  339. package/_vendor/plugin-text/host/richTextBubbleMenuPositionSync.d.ts +0 -7
  340. package/browser/localSnapshotRestore.d.ts +0 -13
  341. package/builtins/controller/createBuiltInCanvasController.d.ts +0 -16
  342. package/builtins/controller/layerController.d.ts +0 -9
  343. package/builtins/controller/shapeCreationController.d.ts +0 -83
  344. package/builtins/extensions.d.ts +0 -18
  345. package/builtins/index.d.ts +0 -5
  346. package/chrome/useSvgExport.d.ts +0 -15
  347. package/core/api/apiRegistry.d.ts +0 -12
  348. package/core/runtime/productDefinition.d.ts +0 -33
  349. package/core/runtime/productHost.d.ts +0 -20
  350. package/features/actions/actionRuntime.d.ts +0 -21
  351. package/features/clipboard/clipboardHostExtension.d.ts +0 -2
  352. package/features/image/imageHostExtension.d.ts +0 -10
  353. package/features/image/import/useImageImport.d.ts +0 -16
  354. package/features/keyboard/keyboardShortcutHostExtension.d.ts +0 -2
  355. package/features/keyboard/useCanvasKitKeyboardShortcuts.d.ts +0 -6
  356. package/features/persistence/CanvasKitPersistenceNotice.d.ts +0 -4
  357. package/features/persistence/persistenceHostExtension.d.ts +0 -2
  358. package/features/selection/selectionActions.d.ts +0 -20
  359. package/features/selection/selectionContextMenuContributions.d.ts +0 -2
  360. package/features/selection/selectionHostExtension.d.ts +0 -2
  361. package/features/selection/selectionToolbarContributions.d.ts +0 -2
  362. package/features/tool/toolActions.d.ts +0 -2
  363. package/features/tool/toolContextMenuContributions.d.ts +0 -2
  364. package/features/tool/toolHostExtension.d.ts +0 -2
  365. package/features/tool/toolToolbarContributions.d.ts +0 -2
  366. package/features/view/viewActions.d.ts +0 -5
  367. package/features/view/viewContextMenuContributions.d.ts +0 -2
  368. package/features/view/viewHostExtension.d.ts +0 -2
  369. package/host/defaultHostExtensions.d.ts +0 -2
  370. package/product/canvasKitProduct.d.ts +0 -51
  371. package/react/useCanvasKitController.d.ts +0 -5
  372. package/react/useCanvasKitStartup.d.ts +0 -9
  373. package/runtime/canvasKitHostContracts.d.ts +0 -135
  374. package/runtime/canvasKitHostFeatureHooks.d.ts +0 -12
  375. package/runtime/canvasKitRuntimePlan.d.ts +0 -50
@@ -5,6 +5,7 @@ import { BindingUtilRegistry } from "../bindings/bindingUtilRegistry";
5
5
  import { Box } from "../geometry/box";
6
6
  import { Mat } from "../geometry/mat";
7
7
  import { Vec } from "../geometry/vec";
8
+ import { EditorRuntimeRegistry } from "../plugins/editorRuntimeRegistry";
8
9
  import { type BindingId, type BindingRecord, type AssetId, type AssetRecord, type Camera, type DocumentMetadataRecord, type PageId, type PageRecord, type EditorRecord, type RecordScope, type SessionRecord, type ShapeId, type ShapeParentId, type ShapeRecord, type ShapeEditingEntryRequest, type ShapeEditingSession } from "../schema/records";
9
10
  import { type DocumentSnapshot, type SessionSnapshot } from "../schema/snapshots";
10
11
  import type { ShapeSelectionFlipAxis, ShapeUtil } from "../shapes/shapeUtil";
@@ -16,13 +17,14 @@ import { Store, type ChangeSource, type StoreChange } from "../../store/index";
16
17
  import { type CreateAssetInput, type CreateBindingInput, type CreatePageInput, type CreateShapeInput, type StartEditingShapeInput, type EditorCommands } from "./commands";
17
18
  import type { CancelEditorEvent, EditorEvent } from "./events";
18
19
  import { HistoryManager, type HistoryState } from "./historyManager";
20
+ import { EditorOperationManager } from "./operationManager";
19
21
  import { BindingManager } from "./managers/bindingManager";
20
22
  import { CameraManager } from "./managers/cameraManager";
21
23
  import { ClipboardManager } from "./managers/clipboardManager";
22
24
  import { DocumentSnapshotManager } from "./managers/documentSnapshotManager";
23
25
  import { InputsManager } from "./managers/inputsManager";
24
- import { InteractionTransientManager, type LaserTrailState } from "./managers/interactionTransientManager";
25
- import { QueryManager, type ShapeContainment } from "./managers/queryManager";
26
+ import { InteractionTransientManager } from "./managers/interactionTransientManager";
27
+ import { QueryManager, type ShapeHierarchySnapshotEntry, type ShapeContainment } from "./managers/queryManager";
26
28
  import { SpatialIndexManager, type ShapeAtPointOptions, type ShapeLineSegmentHitTestOptions, type SpatialQueryOptions } from "./managers/spatialIndexManager";
27
29
  import { SnapManager } from "./managers/snapManager";
28
30
  import { SideEffectManager } from "./managers/sideEffectManager";
@@ -87,7 +89,7 @@ export interface ShapeSelectionSiblingOrderState {
87
89
  canMoveBackward: boolean;
88
90
  canMoveForward: boolean;
89
91
  }
90
- export type ReparentShapePlacementFailureReason = "notFound" | "locked" | "hidden" | "invalidParent" | "cycle" | "invalidBeforeId";
92
+ export type ReparentShapePlacementFailureReason = "notFound" | "locked" | "hidden" | "invalidParent" | "cycle" | "invalidBeforeId" | "unsupportedTransform";
91
93
  export type ReparentShapePlacementResult = {
92
94
  ok: true;
93
95
  movedIds: ShapeId[];
@@ -103,7 +105,8 @@ export interface ReparentShapePlacementInput {
103
105
  export interface ShapeGroupState {
104
106
  parentId: ShapeParentId;
105
107
  shapeIds: ShapeId[];
106
- bounds: Box;
108
+ /** Axis-aligned bounds of the grouped roots in their common parent's local space. */
109
+ parentLocalBounds: Box;
107
110
  }
108
111
  export type LayerOrderDirection = "backward" | "forward";
109
112
  export type LayerOrderEdge = "back" | "front";
@@ -119,6 +122,7 @@ export interface EditorSelectionState {
119
122
  count: number;
120
123
  singleShapeType: ShapeRecord["type"] | null;
121
124
  commonShapeType: ShapeRecord["type"] | null;
125
+ canFlipSelection: boolean;
122
126
  hasPointHandleSelection: boolean;
123
127
  hasFrameSelection: boolean;
124
128
  isMixedFrameAndPointHandleSelection: boolean;
@@ -131,6 +135,7 @@ export interface EditorSelectionState {
131
135
  frameRotationCenter: Vec | null;
132
136
  selectionAnchorPagePoint: Vec | null;
133
137
  }
138
+ export type EditorSelectionMetadata = Omit<EditorSelectionState, "frameBounds" | "frameRotation" | "frameRotationCenter" | "selectionAnchorPagePoint">;
134
139
  export interface EditorRenderHostDebugState {
135
140
  culledCount: number;
136
141
  visibleCount: number;
@@ -169,6 +174,8 @@ export interface EditorOverlayDebugState {
169
174
  interface ReadonlyStore {
170
175
  readonly recordsSignal: Signal<Map<string, EditorRecord>>;
171
176
  get(id: string): EditorRecord | undefined;
177
+ getActiveAtomicOperationRevision(): number | null;
178
+ getActiveAtomicOperationSnapshot(): EditorRecord[];
172
179
  getRecordSignal(id: string): Signal<EditorRecord | undefined>;
173
180
  getAll(): EditorRecord[];
174
181
  getByScope(scope: RecordScope): EditorRecord[];
@@ -193,6 +200,7 @@ export declare class Editor {
193
200
  readonly bindingUtils: BindingUtilRegistry;
194
201
  readonly interactions: InteractionHandlerRegistry;
195
202
  readonly selectionHandleInteractions: SelectionHandleInteractionRegistry;
203
+ readonly runtime: EditorRuntimeRegistry;
196
204
  readonly queries: QueryManager;
197
205
  readonly bindings: BindingManager;
198
206
  readonly spatialIndex: SpatialIndexManager;
@@ -201,17 +209,12 @@ export declare class Editor {
201
209
  readonly selectionOverlay: SelectionOverlayManager;
202
210
  readonly transients: InteractionTransientManager;
203
211
  readonly history: HistoryManager;
212
+ readonly operations: EditorOperationManager;
204
213
  readonly sideEffects: SideEffectManager;
205
214
  readonly commands: EditorCommands;
206
215
  private readonly shapeCapabilityDefinitions;
207
216
  readonly brushBoxSignal: Signal<Box | null>;
208
217
  readonly brushBoxActiveSignal: Signal<boolean>;
209
- readonly erasingShapeIdsSignal: Signal<ShapeId[]>;
210
- readonly erasingShapeIdsActiveSignal: Signal<boolean>;
211
- readonly eraserTrailSignal: Signal<Vec[]>;
212
- readonly eraserTrailActiveSignal: Signal<boolean>;
213
- readonly laserTrailSignal: Signal<LaserTrailState | null>;
214
- readonly laserTrailActiveSignal: Signal<boolean>;
215
218
  readonly bindingPreviewSignal: Signal<BindingPreviewState | null>;
216
219
  readonly bindingPreviewActiveSignal: Signal<boolean>;
217
220
  readonly terminalBindingGuidesSignal: Signal<TerminalBindingGuideState[]>;
@@ -234,9 +237,12 @@ export declare class Editor {
234
237
  private assetUrlResolver;
235
238
  private get _internalStore();
236
239
  readonly sessionSignal: import("../../signals/index").Computed<SessionRecord>;
240
+ /** Read the latest session draft, including writes made inside store.atomic. */
241
+ getSessionRecord(): SessionRecord;
237
242
  readonly currentPageIdSignal: import("../../signals/index").Computed<`page:${string}`>;
238
243
  readonly currentPageShapeIdsSignal: Signal<ShapeId[]>;
239
244
  readonly currentPageShapesSignal: Signal<ShapeRecord[]>;
245
+ readonly currentPageShapeHierarchySignal: Signal<ShapeHierarchySnapshotEntry[]>;
240
246
  readonly culledShapeIdsSignal: Signal<ShapeId[]>;
241
247
  readonly renderVisibleShapeIdsSignal: Signal<ShapeId[]>;
242
248
  readonly retainedShapeIdsSignal: Signal<ShapeId[]>;
@@ -255,8 +261,10 @@ export declare class Editor {
255
261
  readonly selectionCountSignal: import("../../signals/index").Computed<number>;
256
262
  readonly selectedShapeIdSetSignal: import("../../signals/index").Computed<Set<`shape:${string}`>>;
257
263
  readonly selectedShapesSignal: import("../../signals/index").Computed<ShapeRecord[]>;
264
+ readonly selectionCanFlipSignal: import("../../signals/index").Computed<boolean>;
258
265
  readonly selectedShapeOverlayItemsSignal: import("../../signals/index").Computed<SelectedShapeOverlayItem[]>;
259
266
  readonly selectionStateSignal: import("../../signals/index").Computed<EditorSelectionState>;
267
+ readonly selectionMetadataSignal: import("../../signals/index").Computed<EditorSelectionMetadata>;
260
268
  readonly pageTransformSignal: import("../../signals/index").Computed<Mat>;
261
269
  readonly cameraZoomSignal: import("../../signals/index").Computed<number>;
262
270
  readonly viewportPageBoundsSignal: import("../../signals/index").Computed<Box | null>;
@@ -270,14 +278,15 @@ export declare class Editor {
270
278
  readonly selectedShapeIdsOutsideCulledSetSignal: Signal<Set<ShapeId>>;
271
279
  readonly renderVisibleShapeIdSetSignal: Signal<Set<ShapeId>>;
272
280
  private readonly shapeSignals;
281
+ private readonly shapeContentCutoutLocalPolygonSignals;
273
282
  private readonly shapeSelectedSignals;
274
283
  private readonly shapeRenderOrderSignals;
275
284
  private readonly shapeRenderVisibleSignals;
276
285
  private readonly shapeDocumentVisibleSignals;
286
+ private readonly shapeEffectiveOpacitySignals;
277
287
  private readonly shapeEditingSessionSignals;
278
288
  private readonly shapeDropTargetSignals;
279
289
  private readonly shapeHoveredSignals;
280
- private readonly shapeErasingSignals;
281
290
  private readonly shapeSelectedDescendantTransformAncestorSignals;
282
291
  private lastPointerDownForClickCount;
283
292
  private lastPointerUpForClickCount;
@@ -285,6 +294,7 @@ export declare class Editor {
285
294
  readonly selectionOverlayFrameGeometrySignal: Signal<SelectionOverlayFrameGeometryState | null>;
286
295
  readonly selectionOverlayCompanionFrameGeometriesSignal: Signal<SelectionOverlayFrameGeometryState[]>;
287
296
  readonly selectionOverlayPathSignal: Signal<string | null>;
297
+ readonly selectionOverlayPageClipPathSignal: Signal<string | null>;
288
298
  readonly selectionOverlayBindingSegmentsSignal: Signal<SelectionBindingSegment[]>;
289
299
  readonly selectionOverlayFrameStyleSignal: Signal<SelectionOverlayFrameStyleState>;
290
300
  readonly selectionOverlayFrameSignal: Signal<SelectionOverlayFrameState | null>;
@@ -356,18 +366,18 @@ export declare class Editor {
356
366
  moveShapesInParentOrder(ids: readonly ShapeId[], direction: LayerOrderDirection, source?: ChangeSource): boolean;
357
367
  moveShapesToParentOrderEdge(ids: readonly ShapeId[], edge: LayerOrderEdge, source?: ChangeSource): boolean;
358
368
  moveSelectionWithinParent(direction: ShapeSiblingOrderDirection, source?: ChangeSource): boolean;
369
+ canAlignSelection(): boolean;
359
370
  /**
360
- * Align selected top-level shapes along an edge or center of their combined
361
- * page bounds. Only shapes parented directly to the current page are moved so
362
- * the page-space delta maps directly onto `x`/`y`. Needs at least two shapes.
371
+ * Align selected, unlocked siblings along an edge or center of their combined
372
+ * page bounds. Needs at least two eligible shapes.
363
373
  */
364
374
  alignSelection(mode: "left" | "horizontal-center" | "right" | "top" | "vertical-center" | "bottom", source?: ChangeSource): boolean;
375
+ canDistributeSelection(): boolean;
365
376
  /**
366
- * Distribute selected top-level shapes so the gaps between them are equal
367
- * along the given axis. Needs at least three shapes.
377
+ * Distribute selected, unlocked siblings so the gaps between them are equal
378
+ * along the given axis. Needs at least three eligible shapes.
368
379
  */
369
380
  distributeSelection(axis: "horizontal" | "vertical", source?: ChangeSource): boolean;
370
- moveShapesToParentPlacement(input: ReparentShapePlacementInput, source?: ChangeSource): boolean;
371
381
  moveShapesToParentPlacementResult(input: ReparentShapePlacementInput, source?: ChangeSource): ReparentShapePlacementResult;
372
382
  moveSelectionInParentOrder(direction: ShapeSiblingOrderDirection, source?: ChangeSource): boolean;
373
383
  moveSelectionToParentOrderEdge(edge: ShapeSiblingOrderEdge, source?: ChangeSource): boolean;
@@ -393,20 +403,25 @@ export declare class Editor {
393
403
  resolveAssetUrl(assetId: AssetId): string | null;
394
404
  getUnreferencedAssetIdsAfterShapeDelete(shapeIds: readonly ShapeId[]): AssetId[];
395
405
  getShapeSignal(id: ShapeId): Signal<ShapeRecord | undefined>;
406
+ getShapeContentCutoutLocalPolygonsSignal(id: ShapeId): Signal<readonly (readonly Vec[])[]>;
407
+ getShapeLocalToPageTransformSignal(id: ShapeId): Signal<Mat | undefined>;
396
408
  getShapeSelectedSignal(id: ShapeId): Signal<boolean>;
397
409
  getShapeRenderOrderSignal(id: ShapeId): Signal<number>;
398
410
  getShapeRenderVisibleSignal(id: ShapeId): Signal<boolean>;
399
411
  getShapeDocumentVisibleSignal(id: ShapeId): Signal<boolean>;
412
+ getShapeEffectiveOpacitySignal(id: ShapeId): Signal<number>;
400
413
  getShapeEditingSessionForShapeSignal(id: ShapeId): Signal<ShapeEditingSession | null>;
401
414
  getShapeDropTargetSignal(id: ShapeId): Signal<boolean>;
402
415
  getShapeHoveredSignal(id: ShapeId): Signal<boolean>;
403
- getShapeErasingSignal(id: ShapeId): Signal<boolean>;
404
416
  getShapeSelectedDescendantTransformAncestorSignal(id: ShapeId): Signal<boolean>;
405
417
  getBinding(id: BindingId): BindingRecord | undefined;
406
418
  getShapesForPage(pageId: PageId): ShapeRecord[];
407
419
  getBindingsFromShape(shapeId: ShapeId): BindingRecord[];
420
+ getBindingsFromShapeSignal(shapeId: ShapeId): Signal<readonly BindingRecord[]>;
408
421
  getBindingsToShape(shapeId: ShapeId): BindingRecord[];
422
+ getBindingsToShapeSignal(shapeId: ShapeId): Signal<readonly BindingRecord[]>;
409
423
  getBindingsForShape(shapeId: ShapeId): BindingRecord[];
424
+ getBindingsForShapeSignal(shapeId: ShapeId): Signal<readonly BindingRecord[]>;
410
425
  getChildShapeIds(parentId: ShapeParentId): ShapeId[];
411
426
  getChildShapes(parentId: ShapeParentId): ShapeRecord[];
412
427
  getDescendantShapeIds(parentId: ShapeParentId): ShapeId[];
@@ -420,6 +435,10 @@ export declare class Editor {
420
435
  getShapeIdsForSelectionTransform(shapeIds: Iterable<ShapeId>): ShapeId[];
421
436
  getShapeIdsForSelectionRotation(shapeIds: Iterable<ShapeId>): ShapeId[];
422
437
  getSelectionTransformTargetShapes(): ShapeRecord[];
438
+ canResizeSelection(): boolean;
439
+ canFlipSelection(): boolean;
440
+ canRotateSelection(): boolean;
441
+ getSelectionResizeTargetShapes(): ShapeRecord[];
423
442
  getSelectionRotationTargetShapes(): ShapeRecord[];
424
443
  getShapeExportTraversalIds(shapeIds: Iterable<ShapeId>): ShapeId[];
425
444
  getShapeContainment(containerId: ShapeId, shapeId: ShapeId): ShapeContainment | null;
@@ -434,7 +453,7 @@ export declare class Editor {
434
453
  canUseShapeParent(parentId: ShapeParentId, childId?: ShapeId): boolean;
435
454
  getShapeUtil<S extends ShapeRecord>(shape: S): ShapeUtil<S>;
436
455
  getBindingUtil<B extends BindingRecord>(binding: B): BindingUtil<B>;
437
- computeShapeBounds(shape: ShapeRecord): Box;
456
+ computeShapePositionedBounds(shape: ShapeRecord): Box;
438
457
  computeShapeLocalBounds(shape: ShapeRecord): Box;
439
458
  computeShapeRenderBounds(shape: ShapeRecord): Box;
440
459
  computeShapeExportBounds(shape: ShapeRecord): Box;
@@ -448,7 +467,7 @@ export declare class Editor {
448
467
  computeShapePageCenter(shape: ShapeRecord): Vec;
449
468
  computeShapePageCorners(shape: ShapeRecord): Vec[];
450
469
  computeShapePageOutlineVertices(shape: ShapeRecord): Vec[];
451
- getShapeBounds(shapeId: ShapeId): Box | null;
470
+ getShapePositionedBounds(shapeId: ShapeId): Box | null;
452
471
  getShapePageBounds(shapeId: ShapeId): Box | null;
453
472
  getShapeGeometry(shapeId: ShapeId): ShapeGeometry | null;
454
473
  getShapePositionedToPageTransform(shapeId: ShapeId): Mat | null;
@@ -463,16 +482,6 @@ export declare class Editor {
463
482
  getSelectionAnchorPagePoint(): Vec | null;
464
483
  hitTestSelectionHandle(point: Vec): SelectionHandle | null;
465
484
  setBrushBox(brushBox: Box | null): void;
466
- getErasingShapeIds(): ShapeId[];
467
- setErasingShapeIds(shapeIds: readonly ShapeId[]): void;
468
- clearErasingShapeIds(): void;
469
- getEraserTrail(): Vec[];
470
- setEraserTrail(points: readonly Vec[]): void;
471
- clearEraserTrail(): void;
472
- startLaserTrail(): number;
473
- setLaserTrail(sessionId: number, points: readonly Vec[]): void;
474
- finishLaserTrail(sessionId: number): void;
475
- clearLaserTrail(sessionId: number): void;
476
485
  setBindingPreview(preview: BindingPreviewState | null): void;
477
486
  setTerminalBindingGuides(guides: readonly TerminalBindingGuideState[] | null): void;
478
487
  setDropTargetShapeId(shapeId: ShapeId | null): void;
@@ -507,7 +516,9 @@ export declare class Editor {
507
516
  }): void;
508
517
  syncAfterDocumentRestore(): void;
509
518
  cancelInteractionForCommand(): void;
510
- cancelInteractionAndClearTransients(reason: CancelEditorEvent["reason"]): void;
519
+ cancelInteractionAndClearTransients(reason: CancelEditorEvent["reason"], options?: {
520
+ notifyInteractionHandlers?: boolean;
521
+ }): void;
511
522
  syncToolStateFromSession(source: ChangeSource): void;
512
523
  createShapeRecord(input: CreateShapeInput): ShapeRecord;
513
524
  createBindingRecord(input: CreateBindingInput): BindingRecord;
@@ -520,6 +531,7 @@ export declare class Editor {
520
531
  }): void;
521
532
  removeShapeIdsFromSelection(ids: ShapeId[], source?: ChangeSource): void;
522
533
  removeShapeIdsFromEditingSession(ids: ShapeId[], source?: ChangeSource): void;
534
+ prepareShapeIdsForRemoval(ids: readonly ShapeId[], source?: ChangeSource): void;
523
535
  ensurePageSessionState(pageId: PageId, source?: ChangeSource): void;
524
536
  removePageSessionState(pageId: PageId, nextCurrentPageId: PageId, source?: ChangeSource): void;
525
537
  setCamera(partial: Partial<Camera>, options?: {
@@ -564,6 +576,7 @@ export declare class Editor {
564
576
  syncPageCounter(): void;
565
577
  syncBindingCounter(): void;
566
578
  syncAssetCounter(): void;
579
+ dispose(): void;
567
580
  private createPageId;
568
581
  private createPageIndex;
569
582
  private handleWheelEvent;
@@ -1,11 +1,14 @@
1
1
  import type { Box } from "../geometry/box";
2
2
  import type { Vec } from "../geometry/vec";
3
- import type { AssetId, PageId, ShapeId, ShapeRecord } from "../schema/records";
3
+ import type { AssetId, PageId, PageRecord, ShapeId, ShapeRecord } from "../schema/records";
4
4
  import type { BindingPreviewState } from "./selection";
5
- import type { EditorOverlayDebugState, EditorRenderHostDebugState, RenderItem } from "./editor";
5
+ import type { EditorOverlayDebugState, EditorRenderHostDebugState, EditorSelectionMetadata, RenderItem } from "./editor";
6
+ export declare function arePageRecordArraysEqual(a: readonly PageRecord[], b: readonly PageRecord[]): boolean;
7
+ export declare function areEditorSelectionMetadataEqual(a: EditorSelectionMetadata, b: EditorSelectionMetadata): boolean;
6
8
  export declare function areShapeIdArraysEqual(a: ShapeId[], b: ShapeId[]): boolean;
7
9
  export declare function areVecsEqual(a: Vec | null, b: Vec | null): boolean;
8
10
  export declare function areVecArraysEqual(a: readonly Vec[], b: readonly Vec[]): boolean;
11
+ export declare function areVecPolygonArraysEqual(a: readonly (readonly Vec[])[], b: readonly (readonly Vec[])[]): boolean;
9
12
  export declare function areBoxesEqual(a: Box | null, b: Box | null): boolean;
10
13
  export declare function isValidBox(box: Box): boolean;
11
14
  export declare function areRenderHostDebugStatesEqual(a: EditorRenderHostDebugState, b: EditorRenderHostDebugState): boolean;
@@ -1,18 +1,36 @@
1
+ import { type Signal } from "../../signals/index";
1
2
  import { type StoreHistoryEntry, type StoreHistoryState } from "../../store/index";
2
- import { type DocumentRecord } from "../schema/records";
3
+ import type { DocumentRecord } from "../schema/records";
3
4
  import type { Editor } from "./editor";
5
+ export interface HistoryScopeState {
6
+ canUndo: boolean;
7
+ canRedo: boolean;
8
+ undoDepth?: number;
9
+ redoDepth?: number;
10
+ }
11
+ export interface HistoryScope {
12
+ readonly id: string;
13
+ getState(): HistoryScopeState;
14
+ subscribe(listener: () => void): () => void;
15
+ undo(): boolean;
16
+ redo(): boolean;
17
+ }
4
18
  export type HistoryState = StoreHistoryState;
5
19
  export declare class HistoryManager {
6
20
  private readonly editor;
7
21
  private readonly buffer;
8
- readonly state: import("../../signals/index").Signal<StoreHistoryState>;
22
+ private readonly scopeActivations;
23
+ private readonly _state;
24
+ readonly state: Signal<HistoryState>;
9
25
  constructor(editor: Editor);
10
26
  clear(): void;
11
- mark(id: string): void;
12
- bailToMark(id: string): void;
13
- squashToMark(id: string, label?: string): void;
27
+ activateScope(scope: HistoryScope): () => void;
28
+ deactivateScope(scope: HistoryScope): boolean;
29
+ getActiveScope(): HistoryScope | null;
14
30
  undo(): boolean;
15
31
  redo(): boolean;
16
32
  getEntries(): readonly StoreHistoryEntry<DocumentRecord>[];
17
- private handleStoreChange;
33
+ private handleCommit;
34
+ private deactivateActivation;
35
+ private publishEffectiveState;
18
36
  }
@@ -1,7 +1,7 @@
1
1
  export { Editor } from "./editor";
2
- export { createEditorWithRuntimePlugins, type CreateEditorWithRuntimePluginsOptions, } from "./createEditorWithRuntimePlugins";
2
+ export { createEditorWithPlugins, type CreateEditorWithPluginsOptions, } from "./createEditorWithPlugins";
3
3
  export { StateNode } from "./stateNode";
4
- export { HistoryManager } from "./historyManager";
4
+ export { HistoryManager, type HistoryScope, type HistoryScopeState, type HistoryState, } from "./historyManager";
5
5
  export { InputsManager } from "./managers/inputsManager";
6
6
  export { QueryManager } from "./managers/queryManager";
7
7
  export { ShortcutManager, formatKeyboardShortcut, normalizeKeyboardShortcut, } from "./managers/shortcutManager";
@@ -2,7 +2,7 @@ import type { ChangeSource } from "../../store/index";
2
2
  import type { Vec } from "../geometry/vec";
3
3
  import type { ShapeId, ShapeRecord } from "../schema/records";
4
4
  import type { Editor } from "./editor";
5
- import type { EditorEvent } from "./events";
5
+ import type { CancelEditorEvent, EditorEvent, PointerEditorEvent } from "./events";
6
6
  import type { SelectionHandle } from "./selection";
7
7
  import type { HandleSnapContext, HandleSnapMode } from "./managers/snapTypes";
8
8
  export interface SelectionHandleInteractionInput {
@@ -10,28 +10,58 @@ export interface SelectionHandleInteractionInput {
10
10
  shape: ShapeRecord;
11
11
  originPagePoint: Vec;
12
12
  }
13
- export interface SelectionHandleInteractionSession {
13
+ export interface PointerDragInteractionSession {
14
14
  readonly shapeId: ShapeId;
15
15
  readonly historyMark: string;
16
- readonly handleSnapMode?: HandleSnapMode;
17
- readonly handleSnapContext?: HandleSnapContext;
18
- readonly allowSelfSnap?: boolean;
19
- readonly excludedSnapShapeIds?: readonly ShapeId[];
20
16
  readonly shouldClearBindingPreviewOnExit?: boolean;
17
+ onDragStart?(input: {
18
+ editor: Editor;
19
+ }): void;
20
+ onClick?(input: {
21
+ editor: Editor;
22
+ source: ChangeSource;
23
+ }): void;
24
+ onDoubleClick?(input: {
25
+ editor: Editor;
26
+ source: ChangeSource;
27
+ }): void;
28
+ onCancel?(input: {
29
+ editor: Editor;
30
+ reason: CancelEditorEvent["reason"];
31
+ }): void;
32
+ onComplete?(input: {
33
+ editor: Editor;
34
+ }): void;
21
35
  update(input: {
22
36
  editor: Editor;
23
37
  pagePoint: Vec;
24
38
  accelKey: boolean;
25
39
  source: ChangeSource;
26
- }): "continue" | "stop" | SelectionHandleInteractionUpdateResult;
40
+ }): "continue" | "stop" | PointerDragInteractionUpdateResult;
27
41
  }
28
- export interface SelectionHandleInteractionUpdateResult {
42
+ export interface PointerDragInteractionUpdateResult {
29
43
  status: "continue" | "stop";
30
44
  finalPagePoint?: Vec | null;
31
45
  }
46
+ export interface SelectionHandleInteractionSession extends PointerDragInteractionSession {
47
+ readonly handleSnapMode?: HandleSnapMode;
48
+ readonly handleSnapContext?: HandleSnapContext;
49
+ readonly allowSelfSnap?: boolean;
50
+ readonly excludedSnapShapeIds?: readonly ShapeId[];
51
+ }
52
+ export type SelectionHandleInteractionUpdateResult = PointerDragInteractionUpdateResult;
32
53
  export interface SelectionHandleInteractionHandler {
33
54
  createSession(editor: Editor, input: SelectionHandleInteractionInput): SelectionHandleInteractionSession | null;
34
55
  }
56
+ export interface ShapePointerInteractionInput {
57
+ shape: ShapeRecord;
58
+ selectionTargetId: ShapeId;
59
+ originPagePoint: Vec;
60
+ event: PointerEditorEvent;
61
+ }
62
+ export interface ShapePointerInteractionHandler {
63
+ createSession(editor: Editor, input: ShapePointerInteractionInput): PointerDragInteractionSession | null;
64
+ }
35
65
  export type EditorEventInteractionDecision = "continue" | "handled";
36
66
  export interface EditorEventInteractionHandler {
37
67
  handleEvent(editor: Editor, event: EditorEvent): EditorEventInteractionDecision;
@@ -40,6 +70,7 @@ export interface LandInteractionHandler {
40
70
  id: string;
41
71
  editorEvent?: EditorEventInteractionHandler;
42
72
  selectionHandle?: SelectionHandleInteractionHandler;
73
+ shapePointer?: ShapePointerInteractionHandler;
43
74
  }
44
75
  export declare class InteractionHandlerRegistry {
45
76
  private readonly handlers;
@@ -47,5 +78,7 @@ export declare class InteractionHandlerRegistry {
47
78
  register(handler: LandInteractionHandler): void;
48
79
  getHandlers(): readonly LandInteractionHandler[];
49
80
  handleEvent(editor: Editor, event: EditorEvent): EditorEventInteractionDecision;
81
+ broadcastEvent(editor: Editor, event: EditorEvent): EditorEventInteractionDecision;
50
82
  createSelectionHandleSession(editor: Editor, input: SelectionHandleInteractionInput): SelectionHandleInteractionSession | null;
83
+ createShapePointerSession(editor: Editor, input: ShapePointerInteractionInput): PointerDragInteractionSession | null;
51
84
  }
@@ -8,17 +8,13 @@ export interface ShapeChangeEntry {
8
8
  export declare class BindingManager {
9
9
  private readonly editor;
10
10
  constructor(editor: Editor);
11
- getBindingsFromShape(shapeId: ShapeId): BindingRecord[];
12
- getBindingsToShape(shapeId: ShapeId): BindingRecord[];
13
- getBindingsForShape(shapeId: ShapeId): BindingRecord[];
14
11
  getConflictingBindings(binding: BindingRecord): BindingRecord[];
15
12
  canBind(binding: BindingRecord): boolean;
16
13
  syncCreatedBinding(binding: BindingRecord, source: ChangeSource): void;
17
14
  syncUpdatedBinding(before: BindingRecord, after: BindingRecord, source: ChangeSource): void;
18
15
  repairLoadedBindings(source: ChangeSource): void;
19
- handleShapeChanges(changes: ShapeChangeEntry[], source: ChangeSource, options?: {
20
- skipBindingIds?: ReadonlySet<BindingId>;
21
- }): void;
16
+ handleShapeChanges(changes: ShapeChangeEntry[], source: ChangeSource): void;
17
+ getShapeHierarchyRootId(shapeId: ShapeId): ShapeId;
22
18
  cleanupBindingsForDeletedShapes(ids: ShapeId[], source: ChangeSource): void;
23
19
  cleanupBindings(ids: BindingId[], source: ChangeSource): void;
24
20
  private applyEffect;
@@ -25,6 +25,8 @@ export interface InputsState {
25
25
  accelKey: boolean;
26
26
  }
27
27
  export declare class InputsManager {
28
+ readonly pressedKeyCodes: import("../../../signals/index").Atom<ReadonlySet<string>>;
29
+ readonly isSpacePressed: import("../../../signals/index").Computed<boolean>;
28
30
  readonly state: import("../../../signals/index").Atom<InputsState>;
29
31
  setCurrentPointerPoint(input: {
30
32
  timestamp: number;
@@ -40,5 +42,6 @@ export declare class InputsManager {
40
42
  resetPointer(): void;
41
43
  private handlePointerEvent;
42
44
  private handleKeyboardEvent;
45
+ private resetKeyboard;
43
46
  private handleWheelEvent;
44
47
  }
@@ -1,30 +1,14 @@
1
1
  import { type Signal } from "../../../signals/index";
2
2
  import { type TerminalBindingResolver, type TerminalBindingResolverInput, type ResolvedTerminalBinding } from "../../bindings/terminalBinding";
3
3
  import type { Box } from "../../geometry/box";
4
- import type { Vec } from "../../geometry/vec";
5
4
  import type { ShapeId } from "../../schema/records";
6
5
  import type { Editor } from "../editor";
7
6
  import type { BindingPreviewState, SnapIndicatorState, TerminalBindingGuideState } from "../selection";
8
- export interface LaserTrailState {
9
- sessionId: number;
10
- phase: "active" | "ending";
11
- points: Vec[];
12
- }
13
7
  export declare class InteractionTransientManager {
14
8
  private readonly editor;
15
9
  private readonly _brushBoxSignal;
16
10
  readonly brushBoxSignal: Signal<Box | null>;
17
11
  readonly brushBoxActiveSignal: import("../../../signals/index").Computed<boolean>;
18
- private readonly _erasingShapeIdsSignal;
19
- readonly erasingShapeIdsSignal: Signal<ShapeId[]>;
20
- readonly erasingShapeIdsActiveSignal: import("../../../signals/index").Computed<boolean>;
21
- private readonly _eraserTrailSignal;
22
- readonly eraserTrailSignal: Signal<Vec[]>;
23
- readonly eraserTrailActiveSignal: import("../../../signals/index").Computed<boolean>;
24
- private readonly _laserTrailSignal;
25
- readonly laserTrailSignal: Signal<LaserTrailState | null>;
26
- readonly laserTrailActiveSignal: import("../../../signals/index").Computed<boolean>;
27
- private nextLaserSessionId;
28
12
  private readonly _bindingPreviewSignal;
29
13
  readonly bindingPreviewSignal: Signal<BindingPreviewState | null>;
30
14
  readonly bindingPreviewActiveSignal: import("../../../signals/index").Computed<boolean>;
@@ -39,16 +23,6 @@ export declare class InteractionTransientManager {
39
23
  private terminalBindingResolver;
40
24
  constructor(editor: Editor);
41
25
  setBrushBox(brushBox: Box | null): void;
42
- getErasingShapeIds(): ShapeId[];
43
- setErasingShapeIds(shapeIds: readonly ShapeId[]): void;
44
- clearErasingShapeIds(): void;
45
- getEraserTrail(): Vec[];
46
- setEraserTrail(points: readonly Vec[]): void;
47
- clearEraserTrail(): void;
48
- startLaserTrail(): number;
49
- setLaserTrail(sessionId: number, points: readonly Vec[]): void;
50
- finishLaserTrail(sessionId: number): void;
51
- clearLaserTrail(sessionId: number): void;
52
26
  setBindingPreview(preview: BindingPreviewState | null): void;
53
27
  setTerminalBindingGuides(guides: readonly TerminalBindingGuideState[] | null): void;
54
28
  setDropTargetShapeId(shapeId: ShapeId | null): void;
@@ -8,11 +8,17 @@ import { type ShapeGeometry } from "../queries/shapeTransforms";
8
8
  import { type QueryState } from "./queryState";
9
9
  import { type SelectionGeometrySnapshot } from "./selectionGeometry";
10
10
  export type ShapeContainment = "inside" | "intersecting" | "outside";
11
+ export interface ShapeHierarchySnapshotEntry {
12
+ id: ShapeId;
13
+ parentId: ShapeParentId;
14
+ type: ShapeRecord["type"];
15
+ }
11
16
  export declare class QueryManager {
12
17
  private readonly editor;
13
18
  readonly stateSignal: Signal<QueryState>;
14
19
  readonly currentPageShapeIdsSignal: Signal<ShapeId[]>;
15
20
  readonly currentPageShapesSignal: Signal<ShapeRecord[]>;
21
+ readonly currentPageShapeHierarchySignal: Signal<ShapeHierarchySnapshotEntry[]>;
16
22
  readonly selectionGeometrySignal: Signal<SelectionGeometrySnapshot>;
17
23
  readonly selectionPageOutlineVerticesSignal: Signal<Vec[]>;
18
24
  readonly selectionPageBoundsSignal: Signal<Box | null>;
@@ -24,6 +30,10 @@ export declare class QueryManager {
24
30
  readonly selectionAnchorPagePointSignal: Signal<Vec | null>;
25
31
  private readonly stateAtom;
26
32
  private readonly shapeQuerySignals;
33
+ private readonly bindingsFromShapeSignals;
34
+ private readonly bindingsToShapeSignals;
35
+ private readonly bindingsForShapeSignals;
36
+ private draftBindingIndex;
27
37
  constructor(editor: Editor);
28
38
  getShapeIdsForPage(pageId: PageId): ShapeId[];
29
39
  getShapesForPage(pageId: PageId): ShapeRecord[];
@@ -48,13 +58,20 @@ export declare class QueryManager {
48
58
  private getShapeIdsForPageSnapshot;
49
59
  private getChildShapeIdsSnapshot;
50
60
  private handleStoreChange;
61
+ private updateCachedBindingSignals;
62
+ private getShapeLocalToPageTransformSnapshot;
63
+ private getShapeParentToPageTransformSnapshot;
51
64
  private getShapeQuerySignals;
52
65
  private getShapeGeometrySnapshot;
53
66
  getShapePageBoundsSignal(shapeId: ShapeId): Signal<Box | undefined>;
67
+ getShapeLocalToPageTransformSignal(shapeId: ShapeId): Signal<Mat | undefined>;
54
68
  getShapeGeometry(shapeId: ShapeId): ShapeGeometry | undefined;
69
+ getShapeLocalToPageTransform(shapeId: ShapeId): Mat | undefined;
70
+ getShapeParentToPageTransform(parentId: ShapeParentId): Mat | undefined;
71
+ getShapePageToParentTransform(parentId: ShapeParentId): Mat | undefined;
55
72
  getShapePositionedToPageTransform(shapeId: ShapeId): Mat | undefined;
56
73
  getShapePageBounds(shapeId: ShapeId): Box | undefined;
57
- getShapeBounds(shapeId: ShapeId): Box | undefined;
74
+ getShapePositionedBounds(shapeId: ShapeId): Box | undefined;
58
75
  getShapePageCenter(shapeId: ShapeId): Vec | undefined;
59
76
  getShapePageCorners(shapeId: ShapeId): Vec[] | undefined;
60
77
  getShapePageOutlineVertices(shapeId: ShapeId): Vec[] | undefined;
@@ -72,6 +89,14 @@ export declare class QueryManager {
72
89
  getBindingIdsToShape(shapeId: ShapeId): BindingId[];
73
90
  getBindingIdsForShape(shapeId: ShapeId): BindingId[];
74
91
  getBindingsFromShape(shapeId: ShapeId): BindingRecord[];
92
+ getBindingsFromShapeSignal(shapeId: ShapeId): Signal<readonly BindingRecord[]>;
75
93
  getBindingsToShape(shapeId: ShapeId): BindingRecord[];
94
+ getBindingsToShapeSignal(shapeId: ShapeId): Signal<readonly BindingRecord[]>;
76
95
  getBindingsForShape(shapeId: ShapeId): BindingRecord[];
96
+ getBindingsForShapeSignal(shapeId: ShapeId): Signal<readonly BindingRecord[]>;
97
+ private getBindingsFromState;
98
+ private getBindingsToState;
99
+ private getBindingsForState;
100
+ private getBindingsForIds;
101
+ private getDraftBindingIndex;
77
102
  }
@@ -18,12 +18,17 @@ export interface ZoomToBoundsOptions {
18
18
  export declare class SelectionLayoutManager {
19
19
  private readonly editor;
20
20
  constructor(editor: Editor);
21
+ canAlign(): boolean;
21
22
  align(mode: AlignMode, source?: ChangeSource): boolean;
23
+ canDistribute(): boolean;
22
24
  distribute(axis: DistributeAxis, source?: ChangeSource): boolean;
23
25
  getCurrentPageBounds(pageId?: PageId): Box | null;
24
26
  zoomToBounds(bounds: Box, options?: ZoomToBoundsOptions): boolean;
25
27
  zoomToFit(options?: ZoomToBoundsOptions): boolean;
26
28
  zoomToSelection(options?: ZoomToBoundsOptions): boolean;
27
29
  private boundsOfShapeIds;
30
+ private canLayoutSelection;
28
31
  private getAlignableEntries;
32
+ private getPageToParentTransform;
33
+ private pageDeltaToParentDelta;
29
34
  }
@@ -11,6 +11,7 @@ export declare class SelectionOverlayManager {
11
11
  readonly frameGeometrySignal: Signal<SelectionOverlayFrameGeometryState | null>;
12
12
  readonly companionFrameGeometriesSignal: Signal<SelectionOverlayFrameGeometryState[]>;
13
13
  readonly pathSignal: Signal<string | null>;
14
+ readonly pageClipPathSignal: Signal<string | null>;
14
15
  readonly bindingSegmentsSignal: Signal<SelectionBindingSegment[]>;
15
16
  readonly frameStyleSignal: Signal<SelectionOverlayFrameStyleState>;
16
17
  readonly frameSignal: Signal<SelectionOverlayFrameState | null>;
@@ -13,6 +13,7 @@ export declare class ShapeEditingManager {
13
13
  private readonly entryRequestAtom;
14
14
  readonly entryRequestSignal: Signal<ShapeEditingEntryRequest | null>;
15
15
  private nextEntryRequestId;
16
+ private operation;
16
17
  constructor(editor: Editor);
17
18
  canEditShape(shapeOrId: ShapeRecord | ShapeId | null | undefined): boolean;
18
19
  start(input: StartEditingShapeInput, source?: ChangeSource): ShapeEditingSession | null;
@@ -21,9 +22,12 @@ export declare class ShapeEditingManager {
21
22
  setComposition(isComposing: boolean, source?: ChangeSource): void;
22
23
  consumeEntryRequest(requestId: number): void;
23
24
  removeShapeIds(ids: ShapeId[], source?: ChangeSource): void;
25
+ prepareForShapeRemoval(ids: readonly ShapeId[], source?: ChangeSource): void;
24
26
  end(options: {
25
27
  runEditEnd: boolean;
26
28
  source: ChangeSource;
27
29
  }): void;
30
+ cancelOperation(): void;
31
+ private commitOperation;
28
32
  private publishEntryRequest;
29
33
  }
@@ -12,7 +12,8 @@ import type { SelectionFrame } from "../selection";
12
12
  export declare class ShapeGeometryManager {
13
13
  private readonly editor;
14
14
  constructor(editor: Editor);
15
- computeShapeBounds(shape: ShapeRecord): Box;
15
+ private computeParentToPageTransform;
16
+ computeShapePositionedBounds(shape: ShapeRecord): Box;
16
17
  computeShapeLocalBounds(shape: ShapeRecord): Box;
17
18
  computeShapeRenderBounds(shape: ShapeRecord): Box;
18
19
  computeShapeExportBounds(shape: ShapeRecord): Box;
@@ -26,7 +27,7 @@ export declare class ShapeGeometryManager {
26
27
  computeShapePageCenter(shape: ShapeRecord): Vec;
27
28
  computeShapePageCorners(shape: ShapeRecord): Vec[];
28
29
  computeShapePageOutlineVertices(shape: ShapeRecord): Vec[];
29
- getShapeBounds(shapeId: ShapeId): Box | null;
30
+ getShapePositionedBounds(shapeId: ShapeId): Box | null;
30
31
  getShapePageBounds(shapeId: ShapeId): Box | null;
31
32
  getShapeGeometry(shapeId: ShapeId): ShapeGeometry | null;
32
33
  getShapePositionedToPageTransform(shapeId: ShapeId): Mat | null;