@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
@@ -59,6 +59,7 @@ export interface ShapeRecordBase<Type extends string = string, Props extends obj
59
59
  x: number;
60
60
  y: number;
61
61
  rotation: number;
62
+ skewX: number;
62
63
  scaleX: number;
63
64
  scaleY: number;
64
65
  opacity: number;
@@ -85,9 +86,6 @@ export interface AssetRecordBase<Type extends string = string, Props extends obj
85
86
  export type ShapeRecord = ShapeRecordBase<string, object>;
86
87
  export type BindingRecord = BindingRecordBase<string, object>;
87
88
  export type AssetRecord = AssetRecordBase<string, object>;
88
- export type AnyShapeRecord = ShapeRecord;
89
- export type AnyBindingRecord = BindingRecord;
90
- export type AnyAssetRecord = AssetRecord;
91
89
  export interface SessionRecord extends BaseRecord {
92
90
  id: SessionId;
93
91
  typeName: "session";
@@ -100,7 +98,7 @@ export interface SessionRecord extends BaseRecord {
100
98
  pageCameraById: PageCameraById;
101
99
  pageSelectedShapeIdsById: PageSelectionById;
102
100
  }
103
- export type DocumentRecord = DocumentMetadataRecord | PageRecord | AnyShapeRecord | AnyBindingRecord | AnyAssetRecord;
101
+ export type DocumentRecord = DocumentMetadataRecord | PageRecord | ShapeRecord | BindingRecord | AssetRecord;
104
102
  export type EditorRecord = DocumentRecord | SessionRecord;
105
103
  export declare const DEFAULT_DOCUMENT_ID: DocumentId;
106
104
  export declare const DEFAULT_PAGE_ID: PageId;
@@ -112,10 +110,7 @@ export declare function createDefaultSession(currentPageId?: PageId): SessionRec
112
110
  export declare function isPageRecord(record: BaseRecord | null | undefined): record is PageRecord;
113
111
  export declare function isDocumentMetadataRecord(record: BaseRecord | null | undefined): record is DocumentMetadataRecord;
114
112
  export declare function isShapeRecord(record: BaseRecord | null | undefined): record is ShapeRecord;
115
- export declare function isAnyShapeRecord(record: BaseRecord | null | undefined): record is AnyShapeRecord;
116
113
  export declare function isSessionRecord(record: BaseRecord | null | undefined): record is SessionRecord;
117
114
  export declare function isBindingRecord(record: BaseRecord | null | undefined): record is BindingRecord;
118
- export declare function isAnyBindingRecord(record: BaseRecord | null | undefined): record is AnyBindingRecord;
119
115
  export declare function isAssetRecord(record: BaseRecord | null | undefined): record is AssetRecord;
120
- export declare function isAnyAssetRecord(record: BaseRecord | null | undefined): record is AnyAssetRecord;
121
116
  export declare function isDocumentRecord(record: EditorRecord): record is DocumentRecord;
@@ -2,30 +2,21 @@ import type { ShapeUtilRegistry } from "../shapes/shapeUtilRegistry";
2
2
  import type { BindingUtilRegistry } from "../bindings/bindingUtilRegistry";
3
3
  import type { StoreSnapshot } from "../../store/index";
4
4
  import { type DocumentRecord, type SessionRecord } from "./records";
5
- export type DocumentSnapshot = StoreSnapshot<DocumentRecord, 1>;
5
+ export type DocumentSnapshot = StoreSnapshot<DocumentRecord, 2>;
6
6
  export type SessionSnapshot = StoreSnapshot<SessionRecord, 1>;
7
7
  export declare class SnapshotParseError extends Error {
8
8
  constructor(message: string);
9
9
  }
10
- /**
11
- * A single forward migration step. `up` transforms the raw records array from
12
- * `fromVersion` to `fromVersion + 1`. Steps are chained in order, so adding a
13
- * new schema version means bumping the CURRENT_* constant and appending one
14
- * migration with `fromVersion` equal to the previous current version.
15
- */
16
- export interface SnapshotMigration {
17
- fromVersion: number;
18
- up: (records: unknown[]) => unknown[];
19
- }
20
- /**
21
- * Apply forward migration steps to bring a records array from `fromVersion` up
22
- * to `toVersion`. Throws if a step is missing or the snapshot is newer than the
23
- * supported version (no down-migration).
24
- */
25
- export declare function migrateSnapshotRecords(records: unknown[], fromVersion: number, toVersion: number, migrations: readonly SnapshotMigration[], kind?: "document" | "session"): unknown[];
26
- export declare function getSnapshotEnvelope(snapshot: unknown, kind: "document" | "session"): {
27
- schemaVersion: number;
10
+ declare const CURRENT_DOCUMENT_SNAPSHOT_VERSION: 2;
11
+ declare const CURRENT_SESSION_SNAPSHOT_VERSION: 1;
12
+ export declare function getSnapshotEnvelope(snapshot: unknown, kind: "document"): {
13
+ schemaVersion: typeof CURRENT_DOCUMENT_SNAPSHOT_VERSION;
14
+ records: unknown[];
15
+ };
16
+ export declare function getSnapshotEnvelope(snapshot: unknown, kind: "session"): {
17
+ schemaVersion: typeof CURRENT_SESSION_SNAPSHOT_VERSION;
28
18
  records: unknown[];
29
19
  };
30
20
  export declare function parseDocumentSnapshot(snapshot: unknown, shapeUtils: ShapeUtilRegistry, bindingUtils: BindingUtilRegistry): DocumentSnapshot;
31
21
  export declare function parseSessionSnapshot(snapshot: unknown): SessionSnapshot;
22
+ export {};
@@ -1,6 +1,7 @@
1
1
  export declare const LAND_THEME_COLOR_SLOTS: readonly ["fill-blue", "fill-green", "fill-red", "fill-amber", "fill-white", "fill-slate", "stroke-blue", "stroke-green", "stroke-red", "stroke-orange", "stroke-slate", "stroke-muted", "text-slate", "text-blue", "text-green", "text-red"];
2
2
  export type ThemeColorSlot = (typeof LAND_THEME_COLOR_SLOTS)[number];
3
3
  export type ThemeColorTokenName = `--land-shape-${ThemeColorSlot}`;
4
+ export type ThemeColorResolver = (token: ThemeColorTokenName, fallback: string) => string;
4
5
  export interface ThemeShapeColorRef {
5
6
  kind: "theme";
6
7
  slot: ThemeColorSlot;
@@ -9,8 +10,7 @@ export interface CustomShapeColorRef {
9
10
  kind: "custom";
10
11
  value: string;
11
12
  }
12
- export type ShapeColorRef = ThemeShapeColorRef | CustomShapeColorRef;
13
- export type ShapeColor = string | ShapeColorRef;
13
+ export type ShapeColor = ThemeShapeColorRef | CustomShapeColorRef;
14
14
  export declare const LAND_THEME_COLOR_TOKEN_BY_SLOT: Record<ThemeColorSlot, ThemeColorTokenName>;
15
15
  export declare const LAND_DEFAULT_THEME_COLOR_FALLBACKS: Record<ThemeColorSlot, string>;
16
16
  export declare function createThemeShapeColor(slot: ThemeColorSlot): ThemeShapeColorRef;
@@ -21,6 +21,6 @@ export declare function isShapeColor(value: unknown): value is ShapeColor;
21
21
  export declare function getThemeColorTokenName(slot: ThemeColorSlot): ThemeColorTokenName;
22
22
  export declare function normalizeShapeColor(value: unknown, fallback: ShapeColor): ShapeColor;
23
23
  export declare function shapeColorToCssColor(color: ShapeColor): string;
24
- export declare function resolveShapeColor(color: ShapeColor, resolveThemeColor?: (token: ThemeColorTokenName, fallback: string) => string): string;
24
+ export declare function resolveShapeColor(color: ShapeColor, resolveThemeColor?: ThemeColorResolver): string;
25
25
  export declare function isTransparentShapeColor(color: ShapeColor): boolean;
26
26
  export declare function areShapeColorsEqual(left: ShapeColor | null | undefined, right: ShapeColor | null | undefined): boolean;
@@ -2,10 +2,11 @@ import { Box } from "../geometry/box";
2
2
  import { Mat } from "../geometry/mat";
3
3
  import { Vec } from "../geometry/vec";
4
4
  import type { Editor } from "../editor/editor";
5
- import type { ShapeUpdate } from "../editor/commands";
5
+ import type { CreateShapeInput, ShapeUpdate } from "../editor/commands";
6
6
  import { type SelectionMirrorAxis } from "../editor/selection";
7
- import type { SelectionBindingMiddleHandleAnchor, SelectionBindingSegment, SelectionBindingTerminalHandleAnchor, SelectionCustomHandleAnchor, SelectionHandle, SelectionResizeHandleId } from "../editor/selection";
8
- import type { ShapeId, ShapeRecordBase } from "../schema/records";
7
+ import type { SelectionBindingMiddleHandleAnchor, SelectionBindingSegment, SelectionBindingTerminalHandleAnchor, SelectionCustomHandleAnchor, SelectionHandle, SelectionResizeHandleId, SelectionResizeMode } from "../editor/selection";
8
+ import type { ShapeId, ShapeParentId, ShapeRecordBase } from "../schema/records";
9
+ import { type ShapeTerminalBindingPort } from "../bindings/terminalPorts";
9
10
  export interface ShapeEditEndResult {
10
11
  deleteShapeIds?: ShapeId[];
11
12
  }
@@ -13,11 +14,13 @@ export interface ShapeEditEndInput {
13
14
  editor: Editor;
14
15
  }
15
16
  export interface ShapeBindingPointInput {
17
+ editor: Editor;
16
18
  rawPagePoint: Vec;
17
19
  oppositePagePoint: Vec;
18
20
  }
19
21
  export interface ShapeSelectionResizeInput {
20
22
  handleId: SelectionResizeHandleId;
23
+ isOnlyResizeTarget: boolean;
21
24
  pageCenter: Vec;
22
25
  selectionLocalBounds: Box;
23
26
  scaleX: number;
@@ -26,10 +29,17 @@ export interface ShapeSelectionResizeInput {
26
29
  selectionRotation: number;
27
30
  selectionRotationCenter: Vec;
28
31
  }
29
- export interface ShapeSelectionResizeAspectRatioLockInput {
32
+ export interface ShapeSelectionResizeCapabilityInput {
33
+ editor: Editor;
34
+ isOnlyResizeTarget: boolean;
35
+ }
36
+ export interface ShapeSelectionTransformCapabilityInput {
30
37
  editor: Editor;
38
+ /** Set by aggregate capability checks; omitted by frame-only queries. */
39
+ isOnlyAffectedShape?: boolean;
40
+ }
41
+ export interface ShapeSelectionResizeModesInput extends ShapeSelectionResizeCapabilityInput {
31
42
  handleId: SelectionResizeHandleId;
32
- isOnlySelected: boolean;
33
43
  }
34
44
  export type ShapeSelectionFlipAxis = SelectionMirrorAxis;
35
45
  export interface ShapeSelectionFlipInput {
@@ -42,8 +52,10 @@ export interface ShapeSelectionFlipInput {
42
52
  export type ShapeSelectionPagePoints = readonly [Vec, Vec];
43
53
  export interface ShapeSelectionPagePointsInput {
44
54
  pagePoints: ShapeSelectionPagePoints;
55
+ pageMiddlePoint?: Vec;
45
56
  }
46
57
  export interface ShapeBrushWrapInput {
58
+ editor: Editor;
47
59
  brushBounds: Box;
48
60
  pageOutlineVertices: readonly Vec[];
49
61
  pageBounds: Box | null;
@@ -51,23 +63,43 @@ export interface ShapeBrushWrapInput {
51
63
  export interface ShapeBrushSelectInput extends ShapeBrushWrapInput {
52
64
  isWrapping: boolean;
53
65
  }
66
+ export interface ShapeGroupingInput {
67
+ parentId: ShapeParentId;
68
+ parentLocalBounds: Box;
69
+ }
54
70
  export interface ShapeLineSegmentHitTestInput {
55
71
  editor?: Editor;
56
72
  pageStart: Vec;
57
73
  pageEnd: Vec;
74
+ pageMargin: number;
58
75
  positionedStart: Vec;
59
76
  positionedEnd: Vec;
60
- margin: number;
77
+ positionedMargin: number;
61
78
  }
62
79
  export interface ShapeGeometryInput {
63
80
  editor: Editor;
64
81
  }
82
+ export interface ShapeClipboardCopyInput {
83
+ editor: Editor;
84
+ copiedShapeIds: ReadonlySet<ShapeId>;
85
+ }
86
+ export interface ShapeChildVisibilityInput {
87
+ editor: Editor;
88
+ }
89
+ export interface ShapeChildPlacementInput {
90
+ editor: Editor;
91
+ reason: "create" | "reparent";
92
+ }
65
93
  export interface ShapePointHitTestInput extends ShapeGeometryInput {
66
94
  pagePoint: Vec;
67
95
  positionedPoint: Vec;
68
96
  }
69
97
  export interface ShapeBindingTargetHitTestInput extends ShapePointHitTestInput {
70
98
  }
99
+ export interface ShapeTerminalBindingOutline {
100
+ points: readonly Vec[];
101
+ closed: boolean;
102
+ }
71
103
  export type ShapeSnapPointKind = "corner" | "edge_midpoint" | "center" | "custom";
72
104
  export interface ShapeSnapPoint {
73
105
  point: Vec;
@@ -92,7 +124,8 @@ export interface ShapeSelectionHandleAnchorInput {
92
124
  isOnlySelected: boolean;
93
125
  editor: Editor;
94
126
  }
95
- export interface ShapeSelectionFrameInput {
127
+ export type ShapeSelectionFrameInput = ShapeSelectionTransformCapabilityInput;
128
+ export interface ShapeHoverTargetInput {
96
129
  editor: Editor;
97
130
  }
98
131
  export interface ShapeSelectionTranslateInput {
@@ -101,56 +134,107 @@ export interface ShapeSelectionTranslateInput {
101
134
  export interface ShapeSelectionOverlayInfoInput {
102
135
  editor: Editor;
103
136
  }
137
+ export interface ShapeLabelPathNearestPositionOptions {
138
+ hintPosition?: number;
139
+ }
140
+ /**
141
+ * A page-space path that can host a bound label. Positions are normalized by
142
+ * the owner-defined path measure so labels preserve their relative placement
143
+ * when the owner geometry changes.
144
+ */
145
+ export interface ShapeLabelPathGeometry {
146
+ length: number;
147
+ defaultPosition: number;
148
+ getPointAt(position: number): Vec;
149
+ getNearestPosition(point: Vec, options?: ShapeLabelPathNearestPositionOptions): number;
150
+ }
104
151
  export interface ShapeSelectionHandleAnchors {
105
152
  terminalHandleAnchors: readonly SelectionBindingTerminalHandleAnchor[];
106
153
  middleHandleAnchors: readonly SelectionBindingMiddleHandleAnchor[];
107
154
  customHandleAnchors?: readonly SelectionCustomHandleAnchor[];
108
155
  }
156
+ export interface ShapeSelectionPathStyle {
157
+ localPath: string;
158
+ localDecorationPaths: readonly string[];
159
+ localBounds: Box;
160
+ localToPage: Mat;
161
+ strokeWidth: number;
162
+ strokeDasharray?: string;
163
+ }
109
164
  export interface ShapeSelectionOverlayInfo {
110
165
  usesSelectionPathOverlay: boolean;
111
166
  startPagePoint: Vec | null;
112
167
  endPagePoint: Vec | null;
113
168
  middlePagePoint: Vec | null;
114
169
  path: string | null;
170
+ pathStyle: ShapeSelectionPathStyle | null;
171
+ pageClipPath?: string | null;
115
172
  bindingSegments?: readonly SelectionBindingSegment[];
116
173
  }
117
174
  export declare abstract class ShapeUtil<S extends ShapeRecordBase = ShapeRecordBase> {
118
175
  abstract readonly type: S["type"];
119
176
  abstract getDefaultProps(): S["props"];
120
177
  abstract validateProps(props: unknown): S["props"];
121
- abstract getBounds(shape: S): Box;
122
- getLocalBounds(shape: S): Box;
178
+ abstract getLocalBounds(shape: S): Box;
179
+ getPositionedBounds(shape: S): Box;
123
180
  getRenderBounds(shape: S): Box;
124
181
  getPointHitTestBounds(shape: S, _input?: ShapeGeometryInput): Box;
125
182
  getExportBounds(shape: S): Box;
126
183
  getChildClipLocalBounds(_shape: S): Box | null;
184
+ getChildClipLocalPolygons(shape: S): readonly (readonly Vec[])[] | null;
127
185
  getChildExportClipLocalBounds(shape: S): Box | null;
186
+ getChildExportClipLocalPolygons(shape: S): readonly (readonly Vec[])[] | null;
128
187
  getSelectionResizeLocalBounds(shape: S): Box;
129
188
  resizeSelectionBounds(shape: S, input: ShapeSelectionResizeInput): ShapeUpdate;
130
- getSelectionResizeAspectRatioLock(_shape: S, _input: ShapeSelectionResizeAspectRatioLockInput): boolean | null;
189
+ getAllowedSelectionResizeModes(_shape: S, _input: ShapeSelectionResizeModesInput): readonly SelectionResizeMode[];
190
+ getSelectionResizeHandleIds(_shape: S, _input: ShapeSelectionResizeCapabilityInput): readonly SelectionResizeHandleId[];
131
191
  flipSelectionBounds(shape: S, input: ShapeSelectionFlipInput): ShapeUpdate;
132
192
  updateSelectionPagePoints(shape: S, _input: ShapeSelectionPagePointsInput): ShapeUpdate;
133
193
  getSelectionPagePoints(_shape: S): ShapeSelectionPagePoints | null;
194
+ getSelectionPageMiddlePoint(_shape: S): Vec | null;
134
195
  contributesToSelectionFrame(_shape: S, _input: ShapeSelectionFrameInput): boolean;
135
- canUseSelectionFrameHandles(_shape: S, _input: ShapeSelectionFrameInput): boolean;
196
+ canParticipateInSelectionResize(_shape: S, _input: ShapeSelectionTransformCapabilityInput): boolean;
197
+ canParticipateInSelectionFlip(shape: S, input: ShapeSelectionTransformCapabilityInput): boolean;
198
+ canParticipateInSelectionRotation(_shape: S, _input: ShapeSelectionTransformCapabilityInput): boolean;
199
+ canUseSelectionResizeHandles(shape: S, input: ShapeSelectionFrameInput): boolean;
200
+ canUseSelectionRotateHandle(shape: S, input: ShapeSelectionFrameInput): boolean;
201
+ canParticipateInSelectionTranslation(_shape: S, _input: ShapeSelectionTranslateInput): boolean;
136
202
  getSelectionTargetId(shape: S, _input: ShapeSelectionFrameInput): ShapeId;
203
+ getHoverTargetId(shape: S, _input: ShapeHoverTargetInput): ShapeId;
204
+ getHoverDecorationTargetId(shape: S, _input: ShapeHoverTargetInput): ShapeId;
137
205
  getTranslateTargetId(shape: S, _input: ShapeSelectionTranslateInput): ShapeId;
138
- isTransformDescendantContainer(_shape: S): boolean;
206
+ isSelectionTransformContainer(_shape: S): boolean;
139
207
  shouldRotateDescendants(shape: S): boolean;
208
+ shouldResizeDescendants(_shape: S): boolean;
209
+ getResizeToFitDescendantsProps(_shape: S, _descendantBounds: Box): S["props"] | null;
210
+ getMinimumChildCount(_shape: S): number;
211
+ contributesToExportBounds(_shape: S): boolean;
140
212
  canUngroupChildren(_shape: S): boolean;
213
+ getGroupingShapeCreateInput(_input: ShapeGroupingInput): CreateShapeInput | null;
141
214
  canStartTranslateFromSelectionBounds(_shape: S, _input: ShapeSelectionFrameInput): boolean;
142
- canSnap(_shape: S): boolean;
215
+ canSnap(_shape: S, _input?: ShapeGeometryInput): boolean;
216
+ canSnapChildrenToSelf(_shape: S): boolean;
143
217
  getBoundsSnapGeometry(_shape: S): ShapeBoundsSnapGeometry;
144
218
  getHandleSnapGeometry(shape: S): ShapeHandleSnapGeometry;
145
219
  getPositionedOutlineVertices(shape: S): Vec[];
220
+ getSelectionFramePositionedOutlineVertices(_shape: S, _input: ShapeSelectionFrameInput): Vec[] | null;
146
221
  getSelectionHandleAnchors(_shape: S, _input: ShapeSelectionHandleAnchorInput): ShapeSelectionHandleAnchors;
147
222
  getSelectionOverlayInfo(_shape: S, _input: ShapeSelectionOverlayInfoInput): ShapeSelectionOverlayInfo;
223
+ getLabelPathGeometry(_shape: S, _input: ShapeSelectionOverlayInfoInput): ShapeLabelPathGeometry | null;
148
224
  isWrappedByBrush(_shape: S, input: ShapeBrushWrapInput): boolean;
149
225
  canSelectByBrush(shape: S, input: ShapeBrushSelectInput): boolean;
150
226
  getLocalToPageTransform(shape: S): Mat;
151
227
  canEdit(_shape: S): boolean;
152
228
  canReceiveChildren(_shape: S): boolean;
229
+ canReceiveChild(shape: S, _child: ShapeRecordBase): boolean;
230
+ isChildVisible(_shape: S, _child: ShapeRecordBase, _input: ShapeChildVisibilityInput): boolean;
231
+ getChildPlacementMeta(_shape: S, child: ShapeRecordBase, _input: ShapeChildPlacementInput): Record<string, unknown>;
232
+ canAutomaticallyReceiveChildren(shape: S): boolean;
233
+ canBeDirectlyBrushSelected(_shape: S): boolean;
153
234
  canReceiveTerminalBinding(_shape: S, _input?: ShapeGeometryInput): boolean;
235
+ getTerminalBindingPorts(shape: S, input: ShapeGeometryInput): readonly ShapeTerminalBindingPort[];
236
+ getTerminalBindingOutlines(shape: S, input: ShapeGeometryInput): readonly ShapeTerminalBindingOutline[];
237
+ canCopyToClipboard(_shape: S, _input: ShapeClipboardCopyInput): boolean;
154
238
  repairLoadedShape(_shape: S): S | null;
155
239
  onEditEnd(_shape: S, _input: ShapeEditEndInput): ShapeEditEndResult | void;
156
240
  hitTest(shape: S, positionedPoint: Vec, _input?: ShapePointHitTestInput): boolean;
@@ -1,10 +1,12 @@
1
1
  import { Box } from "../../geometry/box";
2
+ import { Mat } from "../../geometry/mat";
2
3
  import { Vec } from "../../geometry/vec";
3
4
  import type { ShapeUpdate } from "../../editor/commands";
4
5
  import type { Editor } from "../../editor/editor";
5
6
  import type { PointerEditorEvent, TickEditorEvent } from "../../editor/events";
6
- import type { SelectionResizeHandleId, SelectionResizePointShapeSnapshot, SelectionResizeShapeSnapshot, SelectionRotationTransform, SelectionRotatePointShapeSnapshot, SelectionRotateShapeSnapshot } from "../../editor/selection";
7
- import type { HandleSnapSnapshot, ResizeSnapSnapshot, TranslateSnapSnapshot } from "../../editor/managers/snapTypes";
7
+ import type { SelectionResizeHandleId, SelectionResizeMode, SelectionResizePointShapeSnapshot, SelectionResizeShapeSnapshot, SelectionRotationTransform, SelectionRotatePointShapeSnapshot, SelectionRotateShapeSnapshot } from "../../editor/selection";
8
+ import type { HandleSnapMode, HandleSnapSnapshot, ResizeSnapSnapshot, TranslateSnapSnapshot } from "../../editor/managers/snapTypes";
9
+ import type { PointerDragInteractionSession } from "../../editor/interactions";
8
10
  import type { SelectionHandleInteractionSession } from "../../editor/selectionHandleInteractions";
9
11
  import type { ShapeId, ShapeRecord } from "../../schema/records";
10
12
  export declare const DRAG_START_DISTANCE = 3;
@@ -37,16 +39,18 @@ export interface PointingShapeInfo {
37
39
  wasSelected: boolean;
38
40
  fromSelectionBounds: boolean;
39
41
  quickClickSelectionTargetId: ShapeId | null;
42
+ dragSession: PointerDragInteractionSession | null;
40
43
  }
41
44
  export interface TranslatingShapeSnapshot {
42
45
  id: ShapeId;
43
46
  x: number;
44
47
  y: number;
48
+ startLocalToPage: Mat;
45
49
  }
46
50
  export interface TranslatingInfo {
47
51
  originPagePoint: Vec;
48
52
  previousSelection: ShapeId[];
49
- selectedShapeIds: ShapeId[];
53
+ movingShapeIds: ShapeId[];
50
54
  startBounds: Box | null;
51
55
  snapSnapshot: TranslateSnapSnapshot;
52
56
  snapRotation: number;
@@ -76,7 +80,7 @@ export interface ResizingInfo extends PointingResizeHandleInfo {
76
80
  shapes: SelectionResizeShapeSnapshot[];
77
81
  pointShapes: SelectionResizePointShapeSnapshot[];
78
82
  updates: ShapeUpdate[];
79
- aspectRatioLockOverride: boolean | null;
83
+ allowedResizeModes: readonly SelectionResizeMode[];
80
84
  lastPagePointX: number;
81
85
  lastPagePointY: number;
82
86
  lastShiftKey: boolean;
@@ -105,9 +109,16 @@ export interface PointingSelectionHandleInteractionInfo {
105
109
  session: SelectionHandleInteractionSession;
106
110
  snapSnapshot: HandleSnapSnapshot | null;
107
111
  }
108
- export interface DraggingSelectionHandleInteractionInfo extends PointingSelectionHandleInteractionInfo {
112
+ export interface DraggingPluginInteractionInfo {
113
+ originPagePoint: Vec;
114
+ previousSelection: ShapeId[];
115
+ session: PointerDragInteractionSession;
116
+ snapMode: HandleSnapMode;
117
+ snapSnapshot: HandleSnapSnapshot | null;
109
118
  lastPagePointX: number;
110
119
  lastPagePointY: number;
120
+ lastShiftKey: boolean;
121
+ lastAltKey: boolean;
111
122
  lastAccelKey: boolean;
112
123
  }
113
124
  export interface SelectionDragInput {
@@ -146,11 +157,10 @@ export declare function normalizeAngle(angle: number): number;
146
157
  export declare function snapAngle(angle: number, step: number): number;
147
158
  export declare function getBoxCorners(bounds: Box): Vec[];
148
159
  export declare function getShapeSelectionResizePageOutlineVertices(editor: Editor, shape: ShapeRecord): Vec[];
149
- export declare function getResizedShapeUpdate(editor: Editor, shape: SelectionResizeShapeSnapshot, startBounds: Box, nextBounds: Box, scaleX: number, scaleY: number, handleId: SelectionResizeHandleId, isResizingFromCenter: boolean, rotationCenter: Vec, selectionRotation: number, update: ShapeUpdate): void;
160
+ export declare function getResizedShapeUpdate(editor: Editor, shape: SelectionResizeShapeSnapshot, startBounds: Box, nextBounds: Box, scaleX: number, scaleY: number, handleId: SelectionResizeHandleId, isOnlyResizeTarget: boolean, isResizingFromCenter: boolean, rotationCenter: Vec, selectionRotation: number, update: ShapeUpdate): void;
150
161
  export declare function getSelectionTransform(rotationCenter: Vec, selectionRotation: number): SelectionRotationTransform;
151
162
  export declare function getResizedPagePointsUpdate(editor: Editor, shape: SelectionResizePointShapeSnapshot, startBounds: Box, nextBounds: Box, scaleX: number, scaleY: number, handleId: SelectionResizeHandleId, isResizingFromCenter: boolean, rotationCenter: Vec, selectionRotation: number, update: ShapeUpdate): void;
152
- export declare function getSelectionResizeAspectRatioLockOverride(editor: Editor, shapes: readonly ShapeRecord[], handleId: SelectionResizeHandleId): boolean | null;
153
- export declare function getRotatedShapeUpdate(shape: SelectionRotateShapeSnapshot, center: Vec, delta: number, update: ShapeUpdate): void;
163
+ export declare function getRotatedShapeUpdate(editor: Editor, shape: SelectionRotateShapeSnapshot, center: Vec, delta: number, update: ShapeUpdate): void;
154
164
  export declare function getRotatedPagePointsUpdate(editor: Editor, shape: SelectionRotatePointShapeSnapshot, center: Vec, delta: number, update: ShapeUpdate): void;
155
165
  export declare function createTranslatingUpdates(shapes: TranslatingShapeSnapshot[]): ShapeUpdate[];
156
166
  export declare function getTranslateShapeSnapshots(editor: Editor, selectedShapeIds: ShapeId[]): TranslatingShapeSnapshot[];
@@ -0,0 +1,16 @@
1
+ import type { Editor } from "../../../editor/editor";
2
+ import { StateNode } from "../../../editor/stateNode";
3
+ import type { CancelEditorEvent, PointerEditorEvent } from "../../../editor/events";
4
+ import { type DraggingPluginInteractionInfo } from "../selectToolHelpers";
5
+ import { DraggingStateNode, type DragApplyInput } from "./selectStateNode";
6
+ export declare class DraggingPluginInteractionState extends DraggingStateNode<DraggingPluginInteractionInfo> {
7
+ protected readonly tickMode: "apply_after_scroll";
8
+ constructor(editor: Editor, parent: StateNode);
9
+ protected getOperationKind(info: DraggingPluginInteractionInfo): string;
10
+ protected onDragStart(): void;
11
+ protected onPointerUp(event: PointerEditorEvent): void;
12
+ protected onCancel(event: CancelEditorEvent): void;
13
+ protected onInfoExit(): void;
14
+ protected apply({ pagePoint, shiftKey, altKey, accelKey, }: DragApplyInput): void;
15
+ private complete;
16
+ }
@@ -1,5 +1,5 @@
1
1
  export { BrushingState } from "./brushingState";
2
- export { DraggingSelectionHandleInteractionState } from "./draggingSelectionHandleInteractionState";
2
+ export { DraggingPluginInteractionState } from "./draggingPluginInteractionState";
3
3
  export { IdleState } from "./idleState";
4
4
  export { PointingCanvasState } from "./pointingCanvasState";
5
5
  export { PointingResizeHandleState } from "./pointingResizeHandleState";
@@ -1,10 +1,11 @@
1
1
  import type { Editor } from "../../../editor/editor";
2
+ import type { CancelEditorEvent, PointerEditorEvent } from "../../../editor/events";
2
3
  import { StateNode } from "../../../editor/stateNode";
3
4
  import { type PointingSelectionHandleInteractionInfo } from "../selectToolHelpers";
4
5
  import { PointingStateNode } from "./selectStateNode";
5
6
  export declare class PointingSelectionHandleInteractionState extends PointingStateNode<PointingSelectionHandleInteractionInfo> {
6
7
  constructor(editor: Editor, parent: StateNode);
7
8
  protected onDragThresholdExceeded(): void;
8
- protected onPointerUp(): void;
9
- protected onCancel(): void;
9
+ protected onPointerUp(event: PointerEditorEvent): void;
10
+ protected onCancel(event: CancelEditorEvent): void;
10
11
  }
@@ -6,7 +6,7 @@ import { PointingStateNode } from "./selectStateNode";
6
6
  export declare class PointingShapeState extends PointingStateNode<PointingShapeInfo> {
7
7
  constructor(editor: Editor, parent: StateNode);
8
8
  protected onInfoEnter(): void;
9
- protected onDragThresholdExceeded(): void;
9
+ protected onDragThresholdExceeded(event: PointerEditorEvent): void;
10
10
  protected onPointerUp(event: PointerEditorEvent): void;
11
11
  protected onCancel(): void;
12
12
  }
@@ -5,7 +5,7 @@ import { DraggingStateNode, type DragApplyInput } from "./selectStateNode";
5
5
  export declare class ResizingState extends DraggingStateNode<ResizingInfo> {
6
6
  protected readonly tickMode: "apply_after_scroll_or_without_screen_point";
7
7
  constructor(editor: Editor, parent: StateNode);
8
- protected getHistoryMark(): string;
8
+ protected getOperationKind(): string;
9
9
  protected onDragStart(): void;
10
10
  protected onPointerUp(): void;
11
11
  protected onCancel(): void;
@@ -5,7 +5,7 @@ import { DraggingStateNode, type DragApplyInput } from "./selectStateNode";
5
5
  export declare class RotatingState extends DraggingStateNode<RotatingInfo> {
6
6
  protected readonly tickMode: "apply_after_scroll";
7
7
  constructor(editor: Editor, parent: StateNode);
8
- protected getHistoryMark(): string;
8
+ protected getOperationKind(): string;
9
9
  protected onPointerUp(): void;
10
10
  protected onCancel(): void;
11
11
  protected apply({ pagePoint, shiftKey, accelKey }: DragApplyInput): void;
@@ -2,6 +2,7 @@ import type { Vec } from "../../../geometry/vec";
2
2
  import { StateNode } from "../../../editor/stateNode";
3
3
  import type { PointerEditorEvent, TickEditorEvent } from "../../../editor/events";
4
4
  import { type EdgeScrollTickMode } from "../selectToolHelpers";
5
+ import type { EditorOperation } from "../../../editor/operationManager";
5
6
  /**
6
7
  * Base for every select-tool state that carries a transient `info` payload.
7
8
  * Centralises the identical `info` lifecycle (assign on enter, clear on exit)
@@ -43,10 +44,11 @@ export interface DragApplyInput {
43
44
  * completion/cancellation and any extra cleanup.
44
45
  */
45
46
  export declare abstract class DraggingStateNode<T> extends InfoStateNode<T> {
47
+ protected operation: EditorOperation | null;
46
48
  /** Edge-scroll behaviour for this gesture's tick handling. */
47
49
  protected abstract readonly tickMode: EdgeScrollTickMode;
48
- /** History mark to open on enter (constant or derived from `info`). */
49
- protected abstract getHistoryMark(info: T): string;
50
+ /** Stable operation kind for this gesture. */
51
+ protected abstract getOperationKind(info: T): string;
50
52
  /** Apply one drag sample. Implementations must guard on `this.info`. */
51
53
  protected abstract apply(input: DragApplyInput): void;
52
54
  protected onInfoEnter(): void;
@@ -57,4 +59,6 @@ export declare abstract class DraggingStateNode<T> extends InfoStateNode<T> {
57
59
  protected onKeyDown(): void;
58
60
  protected onKeyUp(): void;
59
61
  protected applyFromInputs(): void;
62
+ protected commitOperation(): void;
63
+ protected cancelOperation(): void;
60
64
  }
@@ -6,7 +6,7 @@ import { DraggingStateNode, type DragApplyInput } from "./selectStateNode";
6
6
  export declare class TranslatingState extends DraggingStateNode<TranslatingInfo> {
7
7
  protected readonly tickMode: "always_apply";
8
8
  constructor(editor: Editor, parent: StateNode);
9
- protected getHistoryMark(): string;
9
+ protected getOperationKind(): string;
10
10
  protected onDragStart(): void;
11
11
  protected onPointerUp(event: PointerEditorEvent): void;
12
12
  protected onCancel(): void;
@@ -0,0 +1,7 @@
1
+ import type { CanvasAction } from "./actions";
2
+ export declare class CanvasActionRegistry {
3
+ private readonly actions;
4
+ registerAction(action: CanvasAction): void;
5
+ getAction(actionId: string): CanvasAction | null;
6
+ }
7
+ export declare function createCanvasActionRegistry(actions?: readonly CanvasAction[]): CanvasActionRegistry;
@@ -1,12 +1,11 @@
1
- import type { Editor } from "../editor/editor";
2
- import type { ShapeId, ShapeRecordBase } from "../schema/records";
3
- import type { ShapeColorRef } from "../shapes/colors";
1
+ import type { Editor, ShapeColor, ShapeId, ShapeRecordBase } from "../canvas-core/index";
4
2
  export interface CanvasSelectionSnapshot {
5
3
  selectedShapeIds: readonly ShapeId[];
6
4
  selectedShapes: readonly ShapeRecordBase[];
7
5
  count: number;
8
6
  singleShapeType: ShapeRecordBase["type"] | null;
9
7
  commonShapeType: ShapeRecordBase["type"] | null;
8
+ canFlip: boolean;
10
9
  canResetRotation: boolean;
11
10
  isMixedFrameAndPointHandleSelection: boolean;
12
11
  }
@@ -19,17 +18,33 @@ export interface CanvasActionContext {
19
18
  selection: CanvasSelectionSnapshot;
20
19
  tool: CanvasToolSnapshot;
21
20
  }
22
- export type CanvasActionValue = string | number | boolean | null | ShapeColorRef | {
21
+ export type CanvasActionValue = string | number | boolean | null | ShapeColor | {
23
22
  readonly [key: string]: CanvasActionValue;
24
23
  } | readonly CanvasActionValue[];
25
24
  export interface CanvasActionRunInput<TValue extends CanvasActionValue> {
26
25
  context: CanvasActionContext;
27
26
  value: TValue;
28
27
  }
28
+ export type CanvasActionAvailability = "inapplicable" | "disabled" | "enabled";
29
29
  export interface CanvasAction<TValue extends CanvasActionValue = CanvasActionValue> {
30
30
  id: string;
31
- isVisible?(context: CanvasActionContext): boolean;
32
- isEnabled?(context: CanvasActionContext): boolean;
31
+ getAvailability?(context: CanvasActionContext): CanvasActionAvailability;
33
32
  getValue?(context: CanvasActionContext): TValue;
34
33
  run(input: CanvasActionRunInput<TValue>): void;
35
34
  }
35
+ export declare function resolveCanvasActionAvailability(action: CanvasAction, context: CanvasActionContext): CanvasActionAvailability;
36
+ export declare function createCanvasActionContext({ editor, toolState, selectionState, }: {
37
+ editor: Editor;
38
+ toolState: {
39
+ activeToolId: string;
40
+ isToolLocked: boolean;
41
+ };
42
+ selectionState: {
43
+ count: number;
44
+ singleShapeType: CanvasActionContext["selection"]["singleShapeType"];
45
+ commonShapeType: CanvasActionContext["selection"]["commonShapeType"];
46
+ canFlipSelection: boolean;
47
+ canResetSelectionRotation: boolean;
48
+ isMixedFrameAndPointHandleSelection: boolean;
49
+ };
50
+ }): CanvasActionContext;
@@ -0,0 +1,16 @@
1
+ export type CanvasPluginCapabilityKind = "api" | "service" | "value";
2
+ export interface CanvasPluginCapabilityToken<TValue = unknown, TKind extends CanvasPluginCapabilityKind = CanvasPluginCapabilityKind> {
3
+ readonly id: string;
4
+ readonly kind: TKind;
5
+ readonly __value?: TValue;
6
+ }
7
+ export interface CanvasPluginValueToken<TValue> extends CanvasPluginCapabilityToken<TValue, "value"> {
8
+ }
9
+ export interface CanvasPluginCapabilityRegistry {
10
+ get<TValue>(token: CanvasPluginValueToken<TValue>): TValue | null;
11
+ }
12
+ export interface CanvasPluginCapabilitySetup extends CanvasPluginCapabilityRegistry {
13
+ provide<TValue>(token: CanvasPluginValueToken<TValue>, value: TValue): void;
14
+ }
15
+ export declare function createCanvasPluginValueToken<TValue>(id: string): CanvasPluginValueToken<TValue>;
16
+ export declare function isCanvasPluginCapabilityToken(value: unknown): value is CanvasPluginCapabilityToken;