@yuzhouu/canvas-kit 0.1.12 → 0.1.14

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 (483) hide show
  1. package/README.md +52 -238
  2. package/_vendor/canvas-core/bindings/bindingManager.d.ts +33 -0
  3. package/_vendor/canvas-core/bindings/bindingUtil.d.ts +7 -6
  4. package/_vendor/canvas-core/bindings/terminalBinding.d.ts +1 -1
  5. package/_vendor/canvas-core/editor/clipboard.d.ts +1 -1
  6. package/_vendor/canvas-core/editor/clipboardAssets.d.ts +6 -0
  7. package/_vendor/canvas-core/editor/commands/assetCommands.d.ts +7 -0
  8. package/_vendor/canvas-core/editor/commands/bindingCommands.d.ts +12 -0
  9. package/_vendor/canvas-core/editor/{commands.d.ts → commands/commandTypes.d.ts} +4 -8
  10. package/_vendor/canvas-core/editor/commands/commands.d.ts +5 -0
  11. package/_vendor/canvas-core/editor/commands/documentCommands.d.ts +9 -0
  12. package/_vendor/canvas-core/editor/commands/sessionCommands.d.ts +13 -0
  13. package/_vendor/canvas-core/editor/commands/shapeCommands.d.ts +9 -0
  14. package/_vendor/canvas-core/editor/commands/shapeFlags.d.ts +10 -0
  15. package/_vendor/canvas-core/editor/commands/shapeRemoval.d.ts +10 -0
  16. package/_vendor/canvas-core/editor/commands/shapeRepair.d.ts +11 -0
  17. package/_vendor/canvas-core/editor/createEditor.d.ts +6 -0
  18. package/_vendor/canvas-core/editor/editor.d.ts +310 -538
  19. package/_vendor/canvas-core/editor/events/canvasNavigationInteraction.d.ts +2 -0
  20. package/_vendor/canvas-core/editor/events/eventRouter.d.ts +16 -0
  21. package/_vendor/canvas-core/editor/{events.d.ts → events/events.d.ts} +18 -8
  22. package/_vendor/canvas-core/editor/{managers → events}/inputsManager.d.ts +6 -4
  23. package/_vendor/canvas-core/editor/{interactions.d.ts → events/interactions.d.ts} +12 -12
  24. package/_vendor/canvas-core/editor/events/keyboardShortcuts.d.ts +23 -0
  25. package/_vendor/canvas-core/editor/events/pointerClickRecognizer.d.ts +11 -0
  26. package/_vendor/canvas-core/editor/history/historyManager.d.ts +40 -0
  27. package/_vendor/canvas-core/editor/{operationManager.d.ts → history/operationManager.d.ts} +21 -18
  28. package/_vendor/canvas-core/editor/queries/bindingQueryCache.d.ts +28 -0
  29. package/_vendor/canvas-core/editor/queries/bindingQueryState.d.ts +11 -0
  30. package/_vendor/canvas-core/editor/queries/draftBindingIndex.d.ts +19 -0
  31. package/_vendor/canvas-core/editor/queries/shapeGeometryQueryCache.d.ts +34 -0
  32. package/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +15 -19
  33. package/_vendor/canvas-core/editor/queries/shapeTreeIndex.d.ts +27 -0
  34. package/_vendor/canvas-core/editor/queries/shapeTreeIndexState.d.ts +11 -0
  35. package/_vendor/canvas-core/editor/{managers → queries}/spatialIndexManager.d.ts +5 -3
  36. package/_vendor/canvas-core/editor/records/documentSnapshots.d.ts +14 -0
  37. package/_vendor/canvas-core/editor/records/editorRecordFactory.d.ts +19 -0
  38. package/_vendor/canvas-core/editor/records/recordQueries.d.ts +3 -0
  39. package/_vendor/canvas-core/editor/{resizeGeometry.d.ts → selection/resizeGeometry.d.ts} +22 -2
  40. package/_vendor/canvas-core/editor/{selection.d.ts → selection/selection.d.ts} +4 -30
  41. package/_vendor/canvas-core/editor/{managers → selection}/selectionGeometry.d.ts +2 -2
  42. package/_vendor/canvas-core/editor/selection/selectionHandleHitTest.d.ts +8 -0
  43. package/_vendor/canvas-core/editor/selection/selectionLayout.d.ts +20 -0
  44. package/_vendor/canvas-core/editor/selection/selectionOverlay.d.ts +25 -0
  45. package/_vendor/canvas-core/editor/selection/selectionOverlayEquality.d.ts +8 -0
  46. package/_vendor/canvas-core/editor/selection/selectionOverlayManager.d.ts +34 -0
  47. package/_vendor/canvas-core/editor/{selectionResizeCapabilities.d.ts → selection/selectionResizeCapabilities.d.ts} +4 -2
  48. package/_vendor/canvas-core/editor/selection/selectionSet.d.ts +9 -0
  49. package/_vendor/canvas-core/editor/selection/selectionTargets.d.ts +10 -0
  50. package/_vendor/canvas-core/editor/selection/selectionTransforms.d.ts +6 -0
  51. package/_vendor/canvas-core/editor/shapes/shapeContainment.d.ts +14 -0
  52. package/_vendor/canvas-core/editor/{managers → shapes}/shapeEditingManager.d.ts +2 -2
  53. package/_vendor/canvas-core/editor/shapes/shapeExportTraversal.d.ts +3 -0
  54. package/_vendor/canvas-core/editor/shapes/shapeGeometry.d.ts +21 -0
  55. package/_vendor/canvas-core/editor/shapes/shapeGrouping.d.ts +22 -0
  56. package/_vendor/canvas-core/editor/{managers → shapes}/shapeOrder.d.ts +20 -2
  57. package/_vendor/canvas-core/editor/shapes/shapeReparenting.d.ts +21 -0
  58. package/_vendor/canvas-core/editor/shapes/shapeSignalManager.d.ts +35 -0
  59. package/_vendor/canvas-core/editor/{shapeTransformSpace.d.ts → shapes/shapeTransformSpace.d.ts} +3 -3
  60. package/_vendor/canvas-core/editor/shapes/shapeTreeQueries.d.ts +12 -0
  61. package/_vendor/canvas-core/editor/snapping/gapSnap.d.ts +6 -0
  62. package/_vendor/canvas-core/editor/snapping/pointSnap.d.ts +5 -0
  63. package/_vendor/canvas-core/editor/snapping/resizeSnap.d.ts +11 -0
  64. package/_vendor/canvas-core/editor/snapping/snapDecision.d.ts +2 -0
  65. package/_vendor/canvas-core/editor/{managers → snapping}/snapGeometry.d.ts +0 -1
  66. package/_vendor/canvas-core/editor/{managers → snapping}/snapIndicators.d.ts +2 -2
  67. package/_vendor/canvas-core/editor/{managers → snapping}/snapManager.d.ts +23 -5
  68. package/_vendor/canvas-core/editor/{managers/snapCalculations.d.ts → snapping/snapResults.d.ts} +2 -17
  69. package/_vendor/canvas-core/editor/{managers → snapping}/snapTypes.d.ts +1 -1
  70. package/_vendor/canvas-core/editor/state/editorReadModels.d.ts +34 -0
  71. package/_vendor/canvas-core/editor/state/editorSignals.d.ts +82 -0
  72. package/_vendor/canvas-core/editor/state/editorStateUtils.d.ts +9 -0
  73. package/_vendor/canvas-core/editor/{managers → state}/interactionTransientManager.d.ts +4 -4
  74. package/_vendor/canvas-core/editor/{managers → viewport}/cameraManager.d.ts +21 -4
  75. package/_vendor/canvas-core/editor/{cameraPanSession.d.ts → viewport/cameraPanSession.d.ts} +3 -3
  76. package/_vendor/canvas-core/editor/{edgeScroll.d.ts → viewport/edgeScroll.d.ts} +1 -1
  77. package/_vendor/canvas-core/editor/{renderWindow.d.ts → viewport/renderWindow.d.ts} +8 -8
  78. package/_vendor/canvas-core/editor/{managers → viewport}/renderWindowManager.d.ts +14 -6
  79. package/_vendor/canvas-core/geometry/box.d.ts +1 -0
  80. package/_vendor/canvas-core/geometry/mat.d.ts +2 -3
  81. package/_vendor/canvas-core/index.d.ts +33 -26
  82. package/_vendor/canvas-core/plugins/editorRuntimePlugin.d.ts +2 -5
  83. package/_vendor/canvas-core/plugins/editorRuntimeRegistry.d.ts +0 -4
  84. package/_vendor/canvas-core/plugins/index.d.ts +1 -1
  85. package/_vendor/canvas-core/reactivity.d.ts +2 -0
  86. package/_vendor/canvas-core/schema/records.d.ts +1 -2
  87. package/_vendor/canvas-core/schema/snapshots.d.ts +2 -2
  88. package/_vendor/canvas-core/shapes/childTransformPolicy.d.ts +16 -0
  89. package/_vendor/canvas-core/shapes/shapeUtil.d.ts +9 -8
  90. package/_vendor/canvas-core/shapes/shapeUtilGeometry.d.ts +6 -0
  91. package/_vendor/canvas-core/tools/hand/handTool.d.ts +1 -1
  92. package/_vendor/canvas-core/tools/select/selectTool.d.ts +1 -1
  93. package/_vendor/canvas-core/tools/select/selectToolHelpers.d.ts +11 -12
  94. package/_vendor/canvas-core/tools/select/states/brushingState.d.ts +2 -2
  95. package/_vendor/canvas-core/tools/select/states/draggingPluginInteractionState.d.ts +2 -3
  96. package/_vendor/canvas-core/tools/select/states/idleState.d.ts +2 -2
  97. package/_vendor/canvas-core/tools/select/states/pointingCanvasState.d.ts +2 -2
  98. package/_vendor/canvas-core/tools/select/states/pointingResizeHandleState.d.ts +1 -1
  99. package/_vendor/canvas-core/tools/select/states/pointingRotateHandleState.d.ts +1 -1
  100. package/_vendor/canvas-core/tools/select/states/pointingSelectionHandleInteractionState.d.ts +3 -3
  101. package/_vendor/canvas-core/tools/select/states/pointingShapeState.d.ts +3 -3
  102. package/_vendor/canvas-core/tools/select/states/resizingState.d.ts +3 -3
  103. package/_vendor/canvas-core/tools/select/states/rotatingState.d.ts +3 -3
  104. package/_vendor/canvas-core/tools/select/states/selectStateNode.d.ts +8 -12
  105. package/_vendor/canvas-core/tools/select/states/translatingState.d.ts +2 -3
  106. package/_vendor/canvas-core/tools/stateNode.d.ts +30 -0
  107. package/_vendor/canvas-core/tools/toolManager.d.ts +24 -0
  108. package/_vendor/canvas-core/utils/equality.d.ts +9 -0
  109. package/_vendor/canvas-extension-contracts/contributions.d.ts +92 -0
  110. package/_vendor/canvas-extension-contracts/index.d.ts +6 -0
  111. package/_vendor/canvas-extension-contracts/operations.d.ts +131 -0
  112. package/_vendor/canvas-extension-contracts/persistence.d.ts +16 -0
  113. package/_vendor/canvas-extension-contracts/plugin.d.ts +37 -0
  114. package/_vendor/canvas-extension-contracts/shape.d.ts +5 -0
  115. package/_vendor/canvas-extension-contracts/tokens.d.ts +12 -0
  116. package/_vendor/canvas-react/components/CanvasView.d.ts +3 -10
  117. package/_vendor/canvas-react/components/DefaultGrid.d.ts +1 -0
  118. package/_vendor/canvas-react/components/canvasKeyboardEvents.d.ts +2 -2
  119. package/_vendor/canvas-react/components/index.d.ts +1 -0
  120. package/_vendor/canvas-react/components/shape-layer/ShapeClipStack.d.ts +11 -0
  121. package/_vendor/canvas-react/components/shape-layer/ShapeDecorations.d.ts +2 -0
  122. package/_vendor/canvas-react/components/shape-layer/ShapeForegroundItem.d.ts +5 -0
  123. package/_vendor/canvas-react/components/shape-layer/ShapeItem.d.ts +5 -0
  124. package/_vendor/canvas-react/components/shape-layer/ShapeRenderList.d.ts +1 -0
  125. package/_vendor/canvas-react/components/shape-layer/ShapeRenderer.d.ts +12 -0
  126. package/_vendor/canvas-react/components/shape-layer/shapeFrame.d.ts +11 -0
  127. package/_vendor/canvas-react/components/useCanvasDomEvents.d.ts +2 -2
  128. package/_vendor/canvas-react/dom.d.ts +1 -1
  129. package/_vendor/canvas-react/host/canvasRenderBindings.d.ts +21 -0
  130. package/_vendor/canvas-react/host/canvasRenderBindingsContext.d.ts +5 -0
  131. package/_vendor/canvas-react/host/canvasRenderPlugin.d.ts +3 -12
  132. package/_vendor/canvas-react/host/index.d.ts +4 -7
  133. package/_vendor/canvas-react/index.d.ts +1 -1
  134. package/_vendor/signals/atom.d.ts +7 -5
  135. package/_vendor/signals/computed.d.ts +10 -8
  136. package/_vendor/signals/core.d.ts +32 -15
  137. package/_vendor/signals/effect.d.ts +2 -22
  138. package/_vendor/signals/index.d.ts +6 -7
  139. package/_vendor/signals/types.d.ts +14 -7
  140. package/_vendor/store/diff.d.ts +1 -1
  141. package/_vendor/store/history.d.ts +6 -21
  142. package/_vendor/store/index.d.ts +4 -4
  143. package/_vendor/store/store.d.ts +19 -17
  144. package/browser/indexedDb.d.ts +0 -4
  145. package/browser/persistence.d.ts +3 -3
  146. package/browser/persistenceFlushEvents.d.ts +2 -0
  147. package/chrome/floating/CanvasKitFloatingContent.d.ts +10 -0
  148. package/chrome/floating/CanvasKitFloatingPortal.d.ts +1 -0
  149. package/chrome/floating/useCanvasKitFloatingPosition.d.ts +5 -3
  150. package/chrome/toolbar/FloatingSelectionToolbarPageSpace.d.ts +7 -3
  151. package/index.css +1 -1
  152. package/index.d.ts +16 -45
  153. package/index.mjs +46 -88
  154. package/package.json +3 -15
  155. package/react/CanvasKitContext.d.ts +8 -0
  156. package/react/CanvasKitRoot.d.ts +2 -10
  157. package/react/canvasActions.d.ts +3 -0
  158. package/react/canvasKitRootContracts.d.ts +19 -0
  159. package/react/host/CanvasKitCanvasHost.d.ts +7 -0
  160. package/react/host/import/CanvasImportHost.d.ts +13 -0
  161. package/react/host/keyboard/useCanvasKeyboardShortcuts.d.ts +8 -0
  162. package/react/reportCanvasHostError.d.ts +1 -0
  163. package/react/useCanvasKitRootRuntime.d.ts +12 -0
  164. package/runtime/activateCanvasPlugins.d.ts +16 -0
  165. package/runtime/canvasExportController.d.ts +11 -0
  166. package/runtime/canvasKit.d.ts +3 -0
  167. package/runtime/canvasKitContracts.d.ts +192 -0
  168. package/runtime/canvasKitRootRuntime.d.ts +17 -0
  169. package/runtime/canvasPluginGraph.d.ts +5 -11
  170. package/runtime/canvasRuntimeInitialization.d.ts +12 -0
  171. package/runtime/canvasRuntimeOwner.d.ts +16 -0
  172. package/runtime/createCanvasKitEditor.d.ts +8 -0
  173. package/runtime/facade/canvasProductData.d.ts +14 -0
  174. package/runtime/facade/canvasReadable.d.ts +13 -0
  175. package/runtime/facade/createCanvasKitFacade.d.ts +17 -0
  176. package/runtime/facade/layerTree.d.ts +12 -0
  177. package/runtime/persistenceCoordinator.d.ts +22 -5
  178. package/runtime/registries/productApiRegistry.d.ts +12 -3
  179. package/_vendor/canvas-core/editor/bindingReactionScope.d.ts +0 -7
  180. package/_vendor/canvas-core/editor/canvasPanInteraction.d.ts +0 -2
  181. package/_vendor/canvas-core/editor/createEditorWithPlugins.d.ts +0 -6
  182. package/_vendor/canvas-core/editor/editorComputedHelpers.d.ts +0 -24
  183. package/_vendor/canvas-core/editor/editorSelectionTransforms.d.ts +0 -6
  184. package/_vendor/canvas-core/editor/historyManager.d.ts +0 -36
  185. package/_vendor/canvas-core/editor/index.d.ts +0 -11
  186. package/_vendor/canvas-core/editor/managers/bindingManager.d.ts +0 -23
  187. package/_vendor/canvas-core/editor/managers/clipboardManager.d.ts +0 -14
  188. package/_vendor/canvas-core/editor/managers/documentSnapshotManager.d.ts +0 -28
  189. package/_vendor/canvas-core/editor/managers/queryManager.d.ts +0 -102
  190. package/_vendor/canvas-core/editor/managers/queryState.d.ts +0 -18
  191. package/_vendor/canvas-core/editor/managers/selectionLayoutManager.d.ts +0 -34
  192. package/_vendor/canvas-core/editor/managers/selectionManager.d.ts +0 -21
  193. package/_vendor/canvas-core/editor/managers/selectionOverlayManager.d.ts +0 -25
  194. package/_vendor/canvas-core/editor/managers/shapeGeometryManager.d.ts +0 -43
  195. package/_vendor/canvas-core/editor/managers/shapeHierarchyManager.d.ts +0 -63
  196. package/_vendor/canvas-core/editor/managers/shapeReparenting.d.ts +0 -7
  197. package/_vendor/canvas-core/editor/managers/shortcutManager.d.ts +0 -56
  198. package/_vendor/canvas-core/editor/managers/sideEffectManager.d.ts +0 -23
  199. package/_vendor/canvas-core/editor/managers/toolManager.d.ts +0 -24
  200. package/_vendor/canvas-core/editor/selectionHandleInteractions.d.ts +0 -11
  201. package/_vendor/canvas-core/editor/selectionOverlay.d.ts +0 -35
  202. package/_vendor/canvas-core/editor/stateNode.d.ts +0 -31
  203. package/_vendor/canvas-core/shapes/capabilities.d.ts +0 -25
  204. package/_vendor/canvas-core/tools/index.d.ts +0 -2
  205. package/_vendor/canvas-plugin-sdk/capability.d.ts +0 -10
  206. package/_vendor/canvas-plugin-sdk/index.d.ts +0 -3
  207. package/_vendor/canvas-plugin-sdk/plugin.d.ts +0 -29
  208. package/_vendor/canvas-plugin-sdk/setupExtension.d.ts +0 -5
  209. package/_vendor/canvas-product-contracts/actionRegistry.d.ts +0 -4
  210. package/_vendor/canvas-product-contracts/actions.d.ts +0 -44
  211. package/_vendor/canvas-product-contracts/capability.d.ts +0 -8
  212. package/_vendor/canvas-product-contracts/chrome.d.ts +0 -53
  213. package/_vendor/canvas-product-contracts/chromeRegistry.d.ts +0 -9
  214. package/_vendor/canvas-product-contracts/contextMenu.d.ts +0 -63
  215. package/_vendor/canvas-product-contracts/contextMenuRegistry.d.ts +0 -4
  216. package/_vendor/canvas-product-contracts/exportRegistry.d.ts +0 -6
  217. package/_vendor/canvas-product-contracts/exports.d.ts +0 -27
  218. package/_vendor/canvas-product-contracts/importRegistry.d.ts +0 -7
  219. package/_vendor/canvas-product-contracts/imports.d.ts +0 -39
  220. package/_vendor/canvas-product-contracts/index.d.ts +0 -15
  221. package/_vendor/canvas-product-contracts/productApi.d.ts +0 -29
  222. package/_vendor/canvas-product-contracts/services.d.ts +0 -21
  223. package/_vendor/canvas-product-contracts/toolbar.d.ts +0 -146
  224. package/_vendor/canvas-product-contracts/toolbarRegistry.d.ts +0 -9
  225. package/_vendor/canvas-react/host/canvasOverlayRegistryContext.d.ts +0 -3
  226. package/_vendor/canvas-react/host/canvasRenderRuntime.d.ts +0 -13
  227. package/_vendor/canvas-react/host/canvasRendererRegistryContext.d.ts +0 -3
  228. package/_vendor/canvas-react/host/domEventGuards.d.ts +0 -11
  229. package/_vendor/canvas-react/host/overlayRegistry.d.ts +0 -18
  230. package/_vendor/canvas-react/host/rendererRegistry.d.ts +0 -15
  231. package/_vendor/plugin-arrow/api.d.ts +0 -33
  232. package/_vendor/plugin-arrow/arrowBindingAnchors.d.ts +0 -5
  233. package/_vendor/plugin-arrow/arrowBindingGeometry.d.ts +0 -28
  234. package/_vendor/plugin-arrow/arrowBindingTargets.d.ts +0 -3
  235. package/_vendor/plugin-arrow/arrowBindingUtil.d.ts +0 -27
  236. package/_vendor/plugin-arrow/arrowGeometry.d.ts +0 -77
  237. package/_vendor/plugin-arrow/arrowHeadGeometry.d.ts +0 -8
  238. package/_vendor/plugin-arrow/arrowShapeUtil.d.ts +0 -25
  239. package/_vendor/plugin-arrow/arrowTerminalBindingResolver.d.ts +0 -20
  240. package/_vendor/plugin-arrow/arrowTerminalCommands.d.ts +0 -13
  241. package/_vendor/plugin-arrow/arrowTool.d.ts +0 -4
  242. package/_vendor/plugin-arrow/canvasRender.d.ts +0 -2
  243. package/_vendor/plugin-arrow/editorRuntime.d.ts +0 -7
  244. package/_vendor/plugin-arrow/feature.d.ts +0 -2
  245. package/_vendor/plugin-arrow/index.d.ts +0 -15
  246. package/_vendor/plugin-arrow/productRuntime.d.ts +0 -2
  247. package/_vendor/plugin-arrow/selectionHandleInteractions.d.ts +0 -3
  248. package/_vendor/plugin-arrow/types.d.ts +0 -31
  249. package/_vendor/plugin-draw/DrawShapeRenderer.d.ts +0 -13
  250. package/_vendor/plugin-draw/canvasRender.d.ts +0 -2
  251. package/_vendor/plugin-draw/drawGeometry.d.ts +0 -42
  252. package/_vendor/plugin-draw/drawHitTest.d.ts +0 -11
  253. package/_vendor/plugin-draw/drawInterpolation.d.ts +0 -5
  254. package/_vendor/plugin-draw/drawPath.d.ts +0 -43
  255. package/_vendor/plugin-draw/drawSegments.d.ts +0 -11
  256. package/_vendor/plugin-draw/drawSelectionTransform.d.ts +0 -18
  257. package/_vendor/plugin-draw/drawShapeGeometry.d.ts +0 -33
  258. package/_vendor/plugin-draw/drawShapeUtil.d.ts +0 -22
  259. package/_vendor/plugin-draw/drawStrokeGeometry.d.ts +0 -17
  260. package/_vendor/plugin-draw/drawTool.d.ts +0 -6
  261. package/_vendor/plugin-draw/editorRuntime.d.ts +0 -7
  262. package/_vendor/plugin-draw/feature.d.ts +0 -2
  263. package/_vendor/plugin-draw/index.d.ts +0 -14
  264. package/_vendor/plugin-draw/productRuntime.d.ts +0 -2
  265. package/_vendor/plugin-draw/types.d.ts +0 -23
  266. package/_vendor/plugin-eraser/canvasRender.d.ts +0 -2
  267. package/_vendor/plugin-eraser/editorRuntime.d.ts +0 -2
  268. package/_vendor/plugin-eraser/eraserRuntime.d.ts +0 -12
  269. package/_vendor/plugin-eraser/eraserTool.d.ts +0 -5
  270. package/_vendor/plugin-eraser/feature.d.ts +0 -2
  271. package/_vendor/plugin-eraser/index.d.ts +0 -6
  272. package/_vendor/plugin-eraser/productRuntime.d.ts +0 -2
  273. package/_vendor/plugin-frame/api.d.ts +0 -19
  274. package/_vendor/plugin-frame/canvasRender.d.ts +0 -9
  275. package/_vendor/plugin-frame/editorRuntime.d.ts +0 -7
  276. package/_vendor/plugin-frame/feature.d.ts +0 -2
  277. package/_vendor/plugin-frame/frameShapeUtil.d.ts +0 -35
  278. package/_vendor/plugin-frame/frameTool.d.ts +0 -6
  279. package/_vendor/plugin-frame/index.d.ts +0 -9
  280. package/_vendor/plugin-frame/productRuntime.d.ts +0 -2
  281. package/_vendor/plugin-geo/api.d.ts +0 -27
  282. package/_vendor/plugin-geo/canvasRender.d.ts +0 -13
  283. package/_vendor/plugin-geo/editorRuntime.d.ts +0 -7
  284. package/_vendor/plugin-geo/feature.d.ts +0 -2
  285. package/_vendor/plugin-geo/geoGeometry.d.ts +0 -24
  286. package/_vendor/plugin-geo/geoShapeUtil.d.ts +0 -14
  287. package/_vendor/plugin-geo/geoStrokeStyle.d.ts +0 -2
  288. package/_vendor/plugin-geo/geoTools.d.ts +0 -27
  289. package/_vendor/plugin-geo/index.d.ts +0 -10
  290. package/_vendor/plugin-geo/productRuntime.d.ts +0 -2
  291. package/_vendor/plugin-geo/types.d.ts +0 -22
  292. package/_vendor/plugin-group/canvasRender.d.ts +0 -9
  293. package/_vendor/plugin-group/editorRuntime.d.ts +0 -7
  294. package/_vendor/plugin-group/feature.d.ts +0 -2
  295. package/_vendor/plugin-group/groupContributions.d.ts +0 -7
  296. package/_vendor/plugin-group/groupShapeUtil.d.ts +0 -35
  297. package/_vendor/plugin-group/index.d.ts +0 -7
  298. package/_vendor/plugin-group/productRuntime.d.ts +0 -2
  299. package/_vendor/plugin-image/actionIds.d.ts +0 -9
  300. package/_vendor/plugin-image/canvasRender.d.ts +0 -2
  301. package/_vendor/plugin-image/cornerRadius.d.ts +0 -6
  302. package/_vendor/plugin-image/crop.d.ts +0 -112
  303. package/_vendor/plugin-image/cropInteractions.d.ts +0 -3
  304. package/_vendor/plugin-image/cropRuntime.d.ts +0 -2
  305. package/_vendor/plugin-image/cropSession.d.ts +0 -6
  306. package/_vendor/plugin-image/editorRuntime.d.ts +0 -3
  307. package/_vendor/plugin-image/feature.d.ts +0 -2
  308. package/_vendor/plugin-image/imageHostActionContract.d.ts +0 -2
  309. package/_vendor/plugin-image/imageShapeUtil.d.ts +0 -13
  310. package/_vendor/plugin-image/imageSvgExporter.d.ts +0 -6
  311. package/_vendor/plugin-image/index.d.ts +0 -13
  312. package/_vendor/plugin-image/productRuntime.d.ts +0 -4
  313. package/_vendor/plugin-image/runtimeShared.d.ts +0 -5
  314. package/_vendor/plugin-image/smudge.d.ts +0 -67
  315. package/_vendor/plugin-image/smudgeInteractions.d.ts +0 -2
  316. package/_vendor/plugin-image/smudgeRuntime.d.ts +0 -2
  317. package/_vendor/plugin-image/styleRuntime.d.ts +0 -22
  318. package/_vendor/plugin-image/toolbarRuntime.d.ts +0 -3
  319. package/_vendor/plugin-image/types.d.ts +0 -53
  320. package/_vendor/plugin-laser/canvasRender.d.ts +0 -2
  321. package/_vendor/plugin-laser/editorRuntime.d.ts +0 -2
  322. package/_vendor/plugin-laser/feature.d.ts +0 -2
  323. package/_vendor/plugin-laser/index.d.ts +0 -6
  324. package/_vendor/plugin-laser/laserRuntime.d.ts +0 -18
  325. package/_vendor/plugin-laser/laserTool.d.ts +0 -4
  326. package/_vendor/plugin-laser/productRuntime.d.ts +0 -2
  327. package/_vendor/plugin-path/PathDraftOverlay.d.ts +0 -1
  328. package/_vendor/plugin-path/PathEditInsertPreviewOverlay.d.ts +0 -1
  329. package/_vendor/plugin-path/PathShapeRenderer.d.ts +0 -15
  330. package/_vendor/plugin-path/canvasRender.d.ts +0 -2
  331. package/_vendor/plugin-path/editorRuntime.d.ts +0 -7
  332. package/_vendor/plugin-path/feature.d.ts +0 -2
  333. package/_vendor/plugin-path/index.d.ts +0 -8
  334. package/_vendor/plugin-path/pathBoolean.d.ts +0 -13
  335. package/_vendor/plugin-path/pathDraft.d.ts +0 -10
  336. package/_vendor/plugin-path/pathEditPreview.d.ts +0 -11
  337. package/_vendor/plugin-path/pathEditSelection.d.ts +0 -24
  338. package/_vendor/plugin-path/pathEditSnap.d.ts +0 -6
  339. package/_vendor/plugin-path/pathGeometry.d.ts +0 -74
  340. package/_vendor/plugin-path/pathHandles.d.ts +0 -18
  341. package/_vendor/plugin-path/pathHistory.d.ts +0 -13
  342. package/_vendor/plugin-path/pathInteractions.d.ts +0 -7
  343. package/_vendor/plugin-path/pathShapeUtil.d.ts +0 -30
  344. package/_vendor/plugin-path/pathSvg.d.ts +0 -3
  345. package/_vendor/plugin-path/pathTool.d.ts +0 -42
  346. package/_vendor/plugin-path/productRuntime.d.ts +0 -15
  347. package/_vendor/plugin-path/types.d.ts +0 -36
  348. package/_vendor/plugin-runtime-clipboard/capability.d.ts +0 -1
  349. package/_vendor/plugin-runtime-clipboard/clipboardActions.d.ts +0 -6
  350. package/_vendor/plugin-runtime-clipboard/clipboardService.d.ts +0 -10
  351. package/_vendor/plugin-runtime-clipboard/index.d.ts +0 -4
  352. package/_vendor/plugin-runtime-clipboard/plugin.d.ts +0 -1
  353. package/_vendor/plugin-runtime-export/blobDataUrl.d.ts +0 -1
  354. package/_vendor/plugin-runtime-export/canvasExportApi.d.ts +0 -43
  355. package/_vendor/plugin-runtime-export/index.d.ts +0 -8
  356. package/_vendor/plugin-runtime-export/plugin.d.ts +0 -5
  357. package/_vendor/plugin-runtime-export/pngExport.d.ts +0 -15
  358. package/_vendor/plugin-runtime-export/svgExport.d.ts +0 -40
  359. package/_vendor/plugin-text/api.d.ts +0 -20
  360. package/_vendor/plugin-text/canvasRender.d.ts +0 -8
  361. package/_vendor/plugin-text/capabilities.d.ts +0 -2
  362. package/_vendor/plugin-text/editorRuntime.d.ts +0 -5
  363. package/_vendor/plugin-text/feature.d.ts +0 -4
  364. package/_vendor/plugin-text/geoLabelBindingUtil.d.ts +0 -48
  365. package/_vendor/plugin-text/host/RichTextEditingBox.d.ts +0 -10
  366. package/_vendor/plugin-text/host/TiptapTextEditor.d.ts +0 -29
  367. package/_vendor/plugin-text/host/initialTextBackground.d.ts +0 -2
  368. package/_vendor/plugin-text/host/richTextRendering.d.ts +0 -10
  369. package/_vendor/plugin-text/host/textDomSelection.d.ts +0 -7
  370. package/_vendor/plugin-text/host/textEditingBoxStyle.d.ts +0 -4
  371. package/_vendor/plugin-text/host/textEntryFocus.d.ts +0 -23
  372. package/_vendor/plugin-text/host/textFontLoader.d.ts +0 -3
  373. package/_vendor/plugin-text/host/textFormattingApi.d.ts +0 -16
  374. package/_vendor/plugin-text/host/textMeasurement.d.ts +0 -21
  375. package/_vendor/plugin-text/host/textMeasurementSync.d.ts +0 -11
  376. package/_vendor/plugin-text/host/textRangeSelection.d.ts +0 -14
  377. package/_vendor/plugin-text/host/textShapeRendererRuntime.d.ts +0 -11
  378. package/_vendor/plugin-text/host/textShapeSync.d.ts +0 -19
  379. package/_vendor/plugin-text/host/tiptapTextEditorController.d.ts +0 -38
  380. package/_vendor/plugin-text/index.d.ts +0 -15
  381. package/_vendor/plugin-text/pathLabelBindingUtil.d.ts +0 -55
  382. package/_vendor/plugin-text/productRuntime.d.ts +0 -6
  383. package/_vendor/plugin-text/richTextLinks.d.ts +0 -3
  384. package/_vendor/plugin-text/richTextUtils.d.ts +0 -26
  385. package/_vendor/plugin-text/shapeWideTextFormatting.d.ts +0 -12
  386. package/_vendor/plugin-text/textFonts.d.ts +0 -49
  387. package/_vendor/plugin-text/textFormatting.d.ts +0 -47
  388. package/_vendor/plugin-text/textFormattingSession.d.ts +0 -6
  389. package/_vendor/plugin-text/textInteractions.d.ts +0 -2
  390. package/_vendor/plugin-text/textLabelHelpers.d.ts +0 -70
  391. package/_vendor/plugin-text/textLinkPopoverPresentation.d.ts +0 -18
  392. package/_vendor/plugin-text/textShapeHelpers.d.ts +0 -22
  393. package/_vendor/plugin-text/textShapeSvgExporter.d.ts +0 -9
  394. package/_vendor/plugin-text/textShapeUtil.d.ts +0 -24
  395. package/_vendor/plugin-text/textStyle.d.ts +0 -18
  396. package/_vendor/plugin-text/textTool.d.ts +0 -4
  397. package/_vendor/plugin-text/textTypes.d.ts +0 -29
  398. package/chrome/toolbar/mergeToolbarGroups.d.ts +0 -8
  399. package/chrome/toolbar/toolbarLabels.d.ts +0 -8
  400. package/chrome/toolbar/useToolbarSurfaces.d.ts +0 -21
  401. package/chrome/types.d.ts +0 -72
  402. package/chrome/useCanvasKitChromeContext.d.ts +0 -18
  403. package/chrome/useCanvasKitLayerTree.d.ts +0 -5
  404. package/chrome/useChromeSurfaces.d.ts +0 -12
  405. package/chrome/useContextMenuSurface.d.ts +0 -12
  406. package/chrome/useHistoryControls.d.ts +0 -12
  407. package/chrome/usePageControls.d.ts +0 -16
  408. package/chrome/useZoomControls.d.ts +0 -9
  409. package/controller/canvasKitController.d.ts +0 -28
  410. package/core/index.d.ts +0 -7
  411. package/core/product-controller/canvasProductController.d.ts +0 -202
  412. package/core/product-controller/index.d.ts +0 -2
  413. package/core/product-controller/productLayerTree.d.ts +0 -10
  414. package/core/runtime/productAssets.d.ts +0 -20
  415. package/core/runtime/productEditor.d.ts +0 -3
  416. package/core/runtime/productServices.d.ts +0 -20
  417. package/core/runtime/runtimeContracts.d.ts +0 -17
  418. package/features/context-menu/contextMenuRuntime.d.ts +0 -13
  419. package/features/image/asset/imageAssetService.d.ts +0 -10
  420. package/features/image/asset/imageBlobStore.d.ts +0 -31
  421. package/features/image/asset/imageFileHelpers.d.ts +0 -43
  422. package/features/image/asset/svgImageAssetInliner.d.ts +0 -3
  423. package/features/image/controller/imageProductController.d.ts +0 -27
  424. package/features/image/imageHostPlugin.d.ts +0 -1
  425. package/features/image/import/ImageImportController.d.ts +0 -11
  426. package/features/image/index.d.ts +0 -15
  427. package/features/image/smudge/imageSmudgeHostActions.d.ts +0 -10
  428. package/features/image/smudge/imageSmudgeTypes.d.ts +0 -25
  429. package/features/image/toolbar/imageHostActions.d.ts +0 -79
  430. package/features/image/toolbar/imageToolbarHostBridge.d.ts +0 -14
  431. package/features/text/link/TextLinkHoverPopover.d.ts +0 -6
  432. package/features/text/textHostPlugin.d.ts +0 -5
  433. package/features/text/textSvgAssetInliner.d.ts +0 -3
  434. package/features/text/textSvgAssetPlugin.d.ts +0 -2
  435. package/plugins/runtime/import-host/CanvasImportHost.d.ts +0 -4
  436. package/plugins/runtime/import-host/capability.d.ts +0 -1
  437. package/plugins/runtime/import-host/index.d.ts +0 -2
  438. package/plugins/runtime/import-host/plugin.d.ts +0 -1
  439. package/plugins/runtime/keyboard-shortcuts/index.d.ts +0 -1
  440. package/plugins/runtime/keyboard-shortcuts/plugin.d.ts +0 -1
  441. package/plugins/runtime/keyboard-shortcuts/useCanvasKeyboardShortcuts.d.ts +0 -8
  442. package/plugins/runtime/tool-actions/capability.d.ts +0 -1
  443. package/plugins/runtime/tool-actions/index.d.ts +0 -2
  444. package/plugins/runtime/tool-actions/plugin.d.ts +0 -1
  445. package/plugins/runtime/tool-actions/toolActions.d.ts +0 -2
  446. package/plugins/standard/clipboard/chrome.d.ts +0 -2
  447. package/plugins/standard/clipboard/contextMenu.d.ts +0 -2
  448. package/plugins/standard/clipboard/plugin.d.ts +0 -1
  449. package/plugins/standard/clipboard/shortcuts.d.ts +0 -5
  450. package/plugins/standard/createStandardCanvasKitPlugins.d.ts +0 -15
  451. package/plugins/standard/selection/actions.d.ts +0 -21
  452. package/plugins/standard/selection/chrome.d.ts +0 -2
  453. package/plugins/standard/selection/contextMenu.d.ts +0 -2
  454. package/plugins/standard/selection/plugin.d.ts +0 -1
  455. package/plugins/standard/selection/toolbar.d.ts +0 -2
  456. package/plugins/standard/tool-ui/contextMenu.d.ts +0 -2
  457. package/plugins/standard/tool-ui/plugin.d.ts +0 -1
  458. package/plugins/standard/tool-ui/toolbar.d.ts +0 -2
  459. package/plugins/standard/view/actions.d.ts +0 -5
  460. package/plugins/standard/view/chrome.d.ts +0 -2
  461. package/plugins/standard/view/contextMenu.d.ts +0 -2
  462. package/plugins/standard/view/plugin.d.ts +0 -1
  463. package/react/useCanvasKitControllerLifecycle.d.ts +0 -8
  464. package/react/useCanvasKitRuntime.d.ts +0 -2
  465. package/runtime/canvasKitActionContext.d.ts +0 -17
  466. package/runtime/canvasKitCommandExecutor.d.ts +0 -13
  467. package/runtime/canvasKitPluginContracts.d.ts +0 -32
  468. package/runtime/canvasKitPluginLifecycle.d.ts +0 -32
  469. package/runtime/canvasKitPluginSetup.d.ts +0 -34
  470. package/runtime/canvasKitPluginUi.d.ts +0 -35
  471. package/runtime/canvasKitResourceScope.d.ts +0 -5
  472. package/runtime/canvasKitRuntime.d.ts +0 -50
  473. package/runtime/canvasKitRuntimeContracts.d.ts +0 -34
  474. package/runtime/registries/actionRegistry.d.ts +0 -5
  475. package/runtime/registries/chromeRegistry.d.ts +0 -2
  476. package/runtime/registries/contextMenuRegistry.d.ts +0 -5
  477. package/runtime/registries/exportRegistry.d.ts +0 -2
  478. package/runtime/registries/importRegistry.d.ts +0 -2
  479. package/runtime/registries/index.d.ts +0 -7
  480. package/runtime/registries/toolbarRegistry.d.ts +0 -5
  481. /package/_vendor/canvas-core/editor/{selectionBindingSegments.d.ts → selection/selectionBindingSegments.d.ts} +0 -0
  482. /package/_vendor/canvas-core/editor/{managers → snapping}/snapSnapshotBuilder.d.ts +0 -0
  483. /package/_vendor/canvas-core/editor/{camera.d.ts → viewport/camera.d.ts} +0 -0
package/README.md CHANGED
@@ -1,262 +1,76 @@
1
- # @land/canvas-kit
1
+ # @yuzhouu/canvas-kit
2
2
 
3
- CanvasKit is the public composition root for the Land canvas. It compiles one graph of `CanvasPlugin` objects and nested plugin groups to assemble an isolated Runtime, then exposes a controller-oriented API without exposing Editor, services, registries, or private render data.
3
+ CanvasKit is Land's plugin-agnostic canvas runtime and React host. It has no concrete first-party plugin dependencies or plugin API reexports; predefined first-party composition lives exclusively in `@yuzhouu/canvas-standard`.
4
4
 
5
- ## React usage
5
+ It owns plugin activation, persistence, imports, exports, lifecycle, the grouped public CanvasKit facade, and its fine-grained observable state. It does not own a toolbar, context-menu, or Chrome UI DSL.
6
6
 
7
- Keep the options object stable. The hook uses reference identity to decide when to replace a Runtime.
8
-
9
- ```tsx
10
- import {
11
- CanvasKitRoot,
12
- useCanvasKitRuntime,
13
- type CanvasKitRuntimeOptions,
14
- } from "@land/canvas-kit";
15
-
16
- const RUNTIME_OPTIONS: CanvasKitRuntimeOptions = {
17
- id: "my-canvas",
18
- storageNamespace: "my-app.canvas",
19
- };
20
-
21
- export function App() {
22
- const state = useCanvasKitRuntime(RUNTIME_OPTIONS);
23
-
24
- if (state.status === "error") throw state.error;
25
- if (state.status !== "ready") return null;
26
-
27
- return (
28
- <CanvasKitRoot
29
- runtime={state.runtime}
30
- onControllerReady={(controller) => {
31
- controller.setTool("select");
32
- }}
33
- />
34
- );
35
- }
36
- ```
37
-
38
- Use a module-level constant or `useMemo` for `CanvasKitRuntimeOptions`. An inline object creates and disposes a Runtime after every render.
39
-
40
- ## Imperative usage
41
-
42
- The creator owns the complete lifecycle:
43
-
44
- ```tsx
45
- import { createRoot } from "react-dom/client";
46
- import {
47
- CanvasKitRoot,
48
- createCanvasKitRuntime,
49
- } from "@land/canvas-kit";
50
-
51
- const runtime = createCanvasKitRuntime({ persistence: null });
52
- const startup = await runtime.start();
53
-
54
- const root = createRoot(document.getElementById("app")!);
55
- root.render(<CanvasKitRoot runtime={runtime} />);
56
-
57
- // Later:
58
- root.unmount();
59
- runtime.dispose();
60
- ```
61
-
62
- One Runtime can be mounted by only one `CanvasKitRoot` at a time. `CanvasKitRoot` requires a ready Runtime and never calls `start()` or `dispose()`.
63
-
64
- ## Runtime options
65
-
66
- ```ts
67
- interface CanvasKitRuntimeOptions {
68
- id?: string;
69
- chrome?: CanvasKitChromeRenderer;
70
- documentMeta?: Record<string, unknown>;
71
- persistence?: ProductPersistenceAdapter | null;
72
- seedDocument?: CanvasKitDocumentSeed;
73
- shouldSkipStoredSnapshots?: () => boolean;
74
- plugins?: readonly CanvasPluginInput[];
75
- storageNamespace?: string;
76
- }
77
- ```
78
-
79
- Controller callbacks, window exposure, and `windowKey` are mount concerns and
80
- belong on `CanvasKitRoot`. Export appearance is supplied to each export request;
81
- it is not stored on the Root or Runtime.
82
-
83
- `plugins` is the complete caller-supplied plugin graph. Before compiling it,
84
- CanvasKit adds Runtime default providers for clipboard behavior, import host,
85
- generic tool actions, and the export API only when the graph does not already
86
- provide the corresponding capability token. A plugin that provides
87
- `canvasClipboardRuntimeCapability`, `canvasToolActionsCapability`, or
88
- `canvasExportApiToken` therefore replaces that default implementation. Runtime
89
- defaults and caller plugins use the same `CanvasPlugin` contract and compile
90
- into one dependency graph.
91
-
92
- CanvasKit-specific import, keyboard, and tool-action defaults live with the
93
- composition root under `src/plugins/runtime`. Reusable clipboard and export
94
- capabilities remain independent Runtime plugin packages. Physical ownership
95
- does not change capability replacement semantics.
96
-
97
- ## Startup result
98
-
99
- `runtime.start()` is single-flight and idempotent. It returns:
7
+ ## Standard composition
100
8
 
101
9
  ```ts
102
- interface CanvasKitStartupResult {
103
- documentSource: "restored" | "seeded" | "empty";
104
- sessionRestored: boolean;
105
- warnings: readonly unknown[];
106
- }
10
+ import {
11
+ createStandardCanvasKitProfile,
12
+ } from "@yuzhouu/canvas-standard";
13
+ import { CanvasKitRoot } from "@yuzhouu/canvas-kit";
14
+
15
+ const profile = createStandardCanvasKitProfile();
16
+ root.render(
17
+ <CanvasKitRoot
18
+ actions={profile.actions}
19
+ options={{ plugins: profile.plugins, persistence: null }}
20
+ />,
21
+ );
107
22
  ```
108
23
 
109
- Startup loads snapshots, resets to a clean document/session, restores the document or seeds after a clean fallback, restores session state, clears history, prepares assets, runs `beforeReady`, and starts Runtime-owned persistence coordination. Recoverable load/restore/asset/hook errors are returned in `warnings`. Synchronous assembly and seed failures are fatal.
24
+ `CanvasKitRoot` exclusively creates and disposes one private Runtime for its component lifetime. Its `onCanvasChange` callback and Chrome renderer receive a borrowed `CanvasKit` without `dispose()`. Root installs `CanvasKitProvider` without accessing Editor directly; the private Canvas render host owns `EditorContext` around the internal Canvas tree. There is no public standalone Runtime factory.
110
25
 
111
- Disposal aborts startup and unwinds one Runtime-owned disposer stack in reverse creation order. Persistence, plugin setup resources, Editor, and services all enter that stack. A disposed Runtime cannot restart.
112
-
113
- ## Persistence adapter
114
-
115
- Persistence is IO-only; Runtime owns restore and seed ordering.
26
+ ## Minimal actions
116
27
 
117
28
  ```ts
118
- interface ProductPersistenceAdapter {
119
- load?(options: {
120
- signal: AbortSignal;
121
- }): Promise<{
122
- documentSnapshot: unknown | null;
123
- sessionSnapshot: unknown | null;
124
- }>;
125
- saveDocument?(snapshot: DocumentSnapshot): Promise<void>;
126
- saveSession?(snapshot: SessionSnapshot): Promise<void>;
29
+ interface CanvasAction {
30
+ id: string;
31
+ shortcut?: KeyboardShortcut | readonly KeyboardShortcut[];
32
+ isEnabled(canvas: CanvasKit): boolean;
33
+ run(canvas: CanvasKit): void | Promise<void>;
127
34
  }
128
35
  ```
129
36
 
130
- Runtime captures document state from operation commits, captures session state
131
- independently, applies trailing debounce, retries transient write failures, and
132
- passes immutable snapshots to the adapter. When no document snapshot exists,
133
- `seedDocument` runs once. Session restore happens after seed so persisted camera
134
- and selection state win.
135
-
136
- ## Plugin authoring
137
-
138
- Use `defineCanvasPlugin()` and pass plugins or nested plugin groups through Runtime options:
139
-
140
- ```ts
141
- import {
142
- createProductServiceToken,
143
- createStandardCanvasKitPlugins,
144
- defineCanvasPlugin,
145
- type CanvasKitRuntimeOptions,
146
- } from "@land/canvas-kit";
147
-
148
- const analyticsToken = createProductServiceToken<{ track(name: string): void }>(
149
- "example.analytics",
150
- );
151
-
152
- const analyticsPlugin = defineCanvasPlugin({
153
- id: "example.analytics",
154
- provides: [analyticsToken],
155
- setup(context) {
156
- const analytics = context.services.add({
157
- token: analyticsToken,
158
- create: () => ({ track: console.log }),
159
- });
160
- context.actions.add({
161
- id: "example.track",
162
- run: () => analytics.track("canvas-action"),
163
- });
164
- },
165
- });
37
+ CanvasKit owns shortcut matching and `applyCanvasActionShortcutOverrides()`, but
38
+ does not install default product bindings. Profiles apply overrides while
39
+ composing their final action arrays; `null` disables a default binding. Actions
40
+ remain a `CanvasKitRoot` prop and never enter Runtime options.
166
41
 
167
- const reportingPlugin = defineCanvasPlugin({
168
- id: "example.reporting",
169
- requires: [analyticsToken],
170
- setup(context) {
171
- context.services.get(analyticsToken)?.track("runtime-ready");
172
- },
173
- });
42
+ Toolbar and menu components import or close over actual action objects. They do not reference them through an action ID registry.
174
43
 
175
- const options: CanvasKitRuntimeOptions = {
176
- plugins: [
177
- createStandardCanvasKitPlugins(),
178
- [analyticsPlugin, reportingPlugin],
179
- ],
44
+ ```tsx
45
+ const duplicate: CanvasAction = {
46
+ id: "my-product.duplicate",
47
+ shortcut: { key: "d", accelKey: true },
48
+ isEnabled: (canvas) => canvas.selection.state.getSnapshot().count > 0,
49
+ run: (canvas) => canvas.selection.duplicate(),
180
50
  };
181
- ```
182
-
183
- `CanvasPlugin` has optional `editor`, `render`, and `setup` entries. `requires` lives at the plugin top level, so one dependency order applies to editor/render creation and setup installation. Depend on a plugin object when the whole extension must exist; depend on a typed API, service, or value capability token when only that cross-plugin contract matters. Providers declare those tokens in `provides` and register the matching implementation during setup. Raw `{ id }` dependency objects are rejected.
184
-
185
- Nested arrays are groups only; they do not need IDs and are flattened in declaration order. Optional features are included or omitted explicitly.
186
-
187
- Runtime creation compiles the graph, creates Editor and the Runtime resource owner, runs each setup once in dependency order, then seals all registries. Sealing validates duplicate IDs and action references, materializes registered APIs, and prevents later registration.
188
-
189
- Connector and Packaging are composed outside CanvasKit and are intentionally
190
- absent from the standard plugin profile. Products that need them depend on their
191
- plugin packages and add them explicitly:
192
-
193
- ```ts
194
- import {
195
- createStandardCanvasKitPlugins,
196
- type CanvasKitRuntimeOptions,
197
- } from "@land/canvas-kit";
198
- import { Connector } from "@land/plugin-connector";
199
- import { Packaging } from "@land/plugin-packaging";
200
51
 
201
- const options: CanvasKitRuntimeOptions = {
202
- plugins: [Connector, createStandardCanvasKitPlugins(), Packaging],
203
- };
52
+ function SelectionToolbar() {
53
+ const canvas = useCanvasKit();
54
+ const selection = useCanvasValue(canvas.selection.state);
55
+ return (
56
+ <button
57
+ disabled={selection.count === 0}
58
+ onClick={() => duplicate.run(canvas)}
59
+ >
60
+ Duplicate
61
+ </button>
62
+ );
63
+ }
204
64
  ```
205
65
 
206
- `setup(context)` installs capabilities through focused registrars:
207
-
208
- - `actions`, `toolbar`, `contextMenu`, and `apis`
209
- - `services`
210
- - `assets`
211
- - `ui`
212
- - `lifecycle.beforeReady()`, `lifecycle.beforeCommand()`, and `lifecycle.defer()`
213
-
214
- `setup` returns nothing. Every owned resource registers cleanup through `lifecycle.defer()`, which gives Runtime one cleanup protocol and reverse-order resource stack. `beforeReady` runs serially during `start()` after restore/seed and asset preparation. `beforeCommand` is a repeatable interceptor executed by the Runtime-bound command executor.
215
-
216
- The set-active-tool and tool-lock actions are provided by the replaceable
217
- Runtime default for `canvasToolActionsCapability`, so shape toolbar plugins do
218
- not depend on the standard profile installing a Tool action provider.
219
- Components share one props contract and render between Canvas and chrome; there
220
- are no component slots.
221
-
222
- ## Public controller
66
+ ## Product-owned Chrome
223
67
 
224
- External code should work through `runtime.controller` or the controller supplied to `onControllerReady`. The controller exposes document, selection, page, tool, camera, layer, history, export, standard shape creation, and registered API operations without exposing the raw store.
68
+ Pass a `chromeRenderer` to `CanvasKitRoot`. The renderer receives the same `CanvasKit` available from `useCanvasKit()`. Product components subscribe only to the capability they render, for example `useCanvasValue(canvas.pages.state)` or `useCanvasValue(canvas.history.state)`.
225
69
 
226
- ### Export API
70
+ Zen and Professional build separate React trees and CSS from that facade. Feature controls call `canvas.api(token)` directly. Packaging UI therefore remains in Professional, while Connector is part of the standard plugin graph.
227
71
 
228
- SVG and PNG export are async registered APIs so resource preparation and
229
- embedding complete before a result is returned:
72
+ ## Plugins and React composition
230
73
 
231
- ```ts
232
- import { canvasExportApiToken } from "@land/canvas-kit";
233
-
234
- const exportApi = runtime.controller.apis.get(canvasExportApiToken);
235
- if (!exportApi) throw new Error("Canvas export API is unavailable.");
236
-
237
- const pagePng = await exportApi.exportPng({
238
- appearance: {
239
- resolveThemeColor(token, fallback) {
240
- return currentTheme.tokens[token] ?? fallback;
241
- },
242
- },
243
- scope: "page",
244
- pixelRatio: 2,
245
- });
246
- const selectedSvg = await exportApi.exportSvg({ scope: "selection" });
247
- const customSvg = await exportApi.exportSvg({ shapeIds: [shapeId] });
248
- ```
249
-
250
- `exportPng()` resolves with an `image/png` Blob and `exportSvg()` resolves with
251
- a self-contained SVG string when export succeeds. The API deliberately exposes
252
- no loading state; callers own pending-state presentation around the returned
253
- Promise. SVG and PNG share one internal lock and reject a concurrent export.
254
- When `appearance.resolveThemeColor` is omitted, core color fallbacks are used.
74
+ Runtime plugins own editor/render facets, one direct API value, import/export/asset contributions, and cleanup. `CanvasKitRoot` directly owns the generic keyboard and import browser integration. Products wrap the Root with their own React providers and pass actions/Chrome as ordinary props; Runtime plugins do not register product UI.
255
75
 
256
- ## Styles
257
-
258
- The package root imports its base styles. Published consumers may also use the explicit stylesheet export when their bundler requires it:
259
-
260
- ```ts
261
- import "@land/canvas-kit/style.css";
262
- ```
76
+ The runtime is static after creation: plugins are ordered once, set up once, and disposed in reverse lifetime order. Third-party product UI injection is intentionally unsupported until a concrete use case justifies a small actions facet.
@@ -0,0 +1,33 @@
1
+ import type { ChangeSource } from "../../store/index";
2
+ import { type BindingId, type BindingRecord, type ShapeId, type ShapeRecord } from "../schema/records";
3
+ import type { Editor } from "../editor/editor";
4
+ declare const SYNCHRONOUS_CALLBACK_ERROR = "Binding reaction scope callbacks must be synchronous";
5
+ type SynchronousCallbackGuard<T> = T extends PromiseLike<unknown> ? [error: typeof SYNCHRONOUS_CALLBACK_ERROR] : [];
6
+ export interface ShapeChangeEntry {
7
+ before: ShapeRecord;
8
+ after: ShapeRecord;
9
+ }
10
+ export declare class BindingManager {
11
+ private readonly editor;
12
+ private suppressedReactionIds;
13
+ constructor(editor: Editor);
14
+ getSuppressedReactionIds(): ReadonlySet<BindingId>;
15
+ runWithSuppressedReactions<T>(bindingIds: Iterable<BindingId>, callback: () => T, ..._synchronousCallbackGuard: SynchronousCallbackGuard<T>): T;
16
+ getConflictingBindings(binding: BindingRecord): BindingRecord[];
17
+ canBind(binding: BindingRecord): boolean;
18
+ syncCreatedBinding(binding: BindingRecord, source: ChangeSource): void;
19
+ syncUpdatedBinding(before: BindingRecord, after: BindingRecord, source: ChangeSource): void;
20
+ repairLoadedBindings(source: ChangeSource): void;
21
+ handleShapeChanges(changes: ShapeChangeEntry[], source: ChangeSource): void;
22
+ getShapeCompanionRootId(shapeId: ShapeId): ShapeId;
23
+ getShapeCompanionRootIds(shapeIds: readonly ShapeId[], bindings?: readonly BindingRecord[]): ReadonlyMap<ShapeId, ShapeId>;
24
+ getShapeCompanionMemberIds(shapeIds: readonly ShapeId[]): ShapeId[];
25
+ cleanupBindingsForDeletedShapes(ids: ShapeId[], source: ChangeSource): void;
26
+ cleanupBindings(ids: BindingId[], source: ChangeSource): void;
27
+ private applyEffect;
28
+ private syncShapeCompanionState;
29
+ private getShapeCompanionContext;
30
+ private getAllBindings;
31
+ private getExclusiveBindingKey;
32
+ }
33
+ export {};
@@ -1,5 +1,5 @@
1
1
  import type { Editor } from "../editor/editor";
2
- import type { SelectionOverlayFrameGeometryState } from "../editor/selection";
2
+ import type { SelectionOverlayFrameGeometryState } from "../editor/selection/selection";
3
3
  import type { Vec } from "../geometry/vec";
4
4
  import type { BindingId, BindingRecord, BindingRecordBase, ShapeRecord } from "../schema/records";
5
5
  export interface BindingUtilEffect {
@@ -50,11 +50,11 @@ export declare abstract class BindingUtil<B extends BindingRecordBase = BindingR
50
50
  onBeforeDeleteBinding?(editor: Editor, binding: B): BindingUtilEffect | void;
51
51
  getExportShapeIds?(editor: Editor, binding: B): ShapeRecord["id"][];
52
52
  /**
53
- * Map a hierarchy companion (for example, a bound label) to the shape that
54
- * owns its group lifecycle and selection semantics.
53
+ * Map a companion shape (for example, a bound label) to the owner shape that
54
+ * controls its grouping lifecycle and selection semantics.
55
55
  */
56
- getShapeHierarchyRootId?(binding: B, shapeId: ShapeRecord["id"]): ShapeRecord["id"] | null;
57
- canUseShapeHierarchy?(binding: B, context: BindingEndpointContext): boolean;
56
+ getShapeCompanionRootId?(binding: B, shapeId: ShapeRecord["id"]): ShapeRecord["id"] | null;
57
+ canUseShapeCompanion?(binding: B, context: BindingEndpointContext): boolean;
58
58
  getGeometryDependentShapeIds?(editor: Editor, binding: B, context: BindingShapeGeometryDependencyContext): ShapeRecord["id"][];
59
59
  /**
60
60
  * Return polygons in the target shape's local space that should be removed
@@ -65,4 +65,5 @@ export declare abstract class BindingUtil<B extends BindingRecordBase = BindingR
65
65
  getTargetShapeContentCutoutLocalPolygons?(editor: Editor, binding: B, context: BindingTargetShapeContentCutoutContext): readonly (readonly Vec[])[];
66
66
  getSelectionCompanionFrameGeometries?(editor: Editor, binding: B, context: BindingSelectionCompanionFrameContext): SelectionOverlayFrameGeometryState[];
67
67
  }
68
- export declare function resolveShapeHierarchyRootId(shapeId: ShapeRecord["id"], bindings: readonly BindingRecord[], getBindingUtil: (binding: BindingRecord) => BindingUtil): ShapeRecord["id"];
68
+ export declare function resolveShapeCompanionRootId(shapeId: ShapeRecord["id"], bindings: readonly BindingRecord[], getBindingUtil: (binding: BindingRecord) => BindingUtil): ShapeRecord["id"];
69
+ export declare function resolveShapeCompanionRootIds(shapeIds: readonly ShapeRecord["id"][], bindings: readonly BindingRecord[], getBindingUtil: (binding: BindingRecord) => BindingUtil): ReadonlyMap<ShapeRecord["id"], ShapeRecord["id"]>;
@@ -1,6 +1,6 @@
1
1
  import { Vec } from "../geometry/vec";
2
2
  import type { Editor } from "../editor/editor";
3
- import type { BindingPreviewState } from "../editor/selection";
3
+ import type { BindingPreviewState } from "../editor/selection/selection";
4
4
  import type { ShapeId } from "../schema/records";
5
5
  export interface ConnectionPoint {
6
6
  x: number;
@@ -4,7 +4,7 @@ import type { AssetId, AssetRecord, BindingRecord, ShapeId, ShapeRecord } from "
4
4
  import type { Editor } from "./editor";
5
5
  export interface EditorClipboardPayload {
6
6
  type: "land/clipboard";
7
- version: 1;
7
+ version: 2;
8
8
  source: {
9
9
  app: "land";
10
10
  documentId?: string;
@@ -0,0 +1,6 @@
1
+ import type { Editor } from "./editor";
2
+ import type { AssetId, AssetRecord, ShapeRecord } from "../schema/records";
3
+ export declare function getClipboardAssets(editor: Editor, shapes: readonly ShapeRecord[]): AssetRecord[];
4
+ export declare function remapAssetIdsInRecord(record: object, assetIdMap: ReadonlyMap<AssetId, AssetId>): Record<string, unknown>;
5
+ export declare function cloneRecordObject(value: object): Record<string, unknown>;
6
+ export declare function cloneSerializableRecord<T>(value: T): T;
@@ -0,0 +1,7 @@
1
+ import type { AssetId, AssetRecord } from "../../schema/records";
2
+ import type { CreateAssetInput, EditorCommandOptions, UpdateAssetInput } from "./commandTypes";
3
+ import type { Editor } from "../editor";
4
+ export declare function createAsset(editor: Editor, input: CreateAssetInput, options?: EditorCommandOptions): AssetRecord;
5
+ export declare function createAssetsFromRecords(editor: Editor, records: AssetRecord[], options?: EditorCommandOptions): AssetRecord[];
6
+ export declare function updateAsset(editor: Editor, input: UpdateAssetInput, options?: EditorCommandOptions): AssetRecord | null;
7
+ export declare function deleteAsset(editor: Editor, id: AssetId, options?: EditorCommandOptions): boolean;
@@ -0,0 +1,12 @@
1
+ import type { ChangeSource } from "../../../store/index";
2
+ import type { BindingId, BindingRecord, ShapeId } from "../../schema/records";
3
+ import type { CreateBindingInput, EditorCommandOptions, UpdateBindingInput } from "./commandTypes";
4
+ import type { Editor } from "../editor";
5
+ type RepairMinimumChildContainers = (containerIds: Iterable<ShapeId>, deletedIds: Set<ShapeId>, source: ChangeSource) => void;
6
+ interface BindingCommandSet {
7
+ createBinding(input: CreateBindingInput, options?: EditorCommandOptions): BindingRecord;
8
+ updateBinding(input: UpdateBindingInput, options?: EditorCommandOptions): BindingRecord | null;
9
+ deleteBinding(id: BindingId, options?: EditorCommandOptions): boolean;
10
+ }
11
+ export declare function createBindingCommandSet(editor: Editor, repairMinimumChildContainers: RepairMinimumChildContainers): BindingCommandSet;
12
+ export {};
@@ -1,9 +1,9 @@
1
- import type { Editor } from "./editor";
2
- import type { ChangeSource } from "../../store/index";
3
- import type { AssetId, AssetRecord, AssetRecordBase, BindingId, BindingRecordBase, BindingRecord, Camera, DocumentMetadataRecord, PageId, PageRecord, ShapeId, ShapeParentId, ShapeRecordBase, ShapeRecord, ShapeEditingEntryMode } from "../schema/records";
1
+ import type { ChangeSource } from "../../../store/index";
2
+ import type { AssetId, AssetRecord, AssetRecordBase, BindingId, BindingRecord, BindingRecordBase, Camera, DocumentMetadataRecord, PageId, PageRecord, ShapeEditingEntryMode, ShapeId, ShapeParentId, ShapeRecord, ShapeRecordBase } from "../../schema/records";
4
3
  export interface EditorCommandOptions {
5
4
  source?: ChangeSource;
6
5
  }
6
+ export type ShapePropsPatch = Record<string, unknown>;
7
7
  export interface CreateShapesOptions extends EditorCommandOptions {
8
8
  /** Defer spatial containment until an interactive creation gesture completes. */
9
9
  autoReparent?: boolean;
@@ -24,7 +24,6 @@ export interface CreateShapeInput {
24
24
  opacity?: number;
25
25
  isHidden?: boolean;
26
26
  rotation?: number;
27
- skewX?: number;
28
27
  scaleX?: number;
29
28
  scaleY?: number;
30
29
  isLocked?: boolean;
@@ -46,7 +45,6 @@ export interface ShapeUpdate {
46
45
  x?: number;
47
46
  y?: number;
48
47
  rotation?: number;
49
- skewX?: number;
50
48
  scaleX?: number;
51
49
  scaleY?: number;
52
50
  opacity?: number;
@@ -68,7 +66,7 @@ export interface StartEditingShapeInput {
68
66
  x: number;
69
67
  y: number;
70
68
  };
71
- markId?: string;
69
+ operationKind?: string;
72
70
  reuseActiveOperation?: boolean;
73
71
  preserveInteraction?: boolean;
74
72
  }
@@ -149,5 +147,3 @@ export interface EditorCommands {
149
147
  setActiveTool(toolId: string, options?: EditorCommandOptions): void;
150
148
  setToolLocked(locked: boolean, options?: EditorCommandOptions): void;
151
149
  }
152
- export declare function createEditorCommands(editor: Editor): EditorCommands;
153
- export declare function reparentShapeToContainingParent(editor: Editor, shapeId: ShapeId, options?: EditorCommandOptions): void;
@@ -0,0 +1,5 @@
1
+ import type { Editor } from "../editor";
2
+ import type { EditorCommands } from "./commandTypes";
3
+ export declare function createEditorCommands(editor: Editor): EditorCommands;
4
+ export { reparentShapeToContainingParent } from "./shapeCommands";
5
+ export type * from "./commandTypes";
@@ -0,0 +1,9 @@
1
+ import type { DocumentMetadataRecord, PageId, PageRecord } from "../../schema/records";
2
+ import type { CreatePageInput, EditorCommandOptions, MovePageInput, RenamePageInput, UpdateDocumentMetaInput, UpdatePageMetaInput } from "./commandTypes";
3
+ import type { Editor } from "../editor";
4
+ export declare function createPage(editor: Editor, input?: CreatePageInput, options?: EditorCommandOptions): PageRecord;
5
+ export declare function deletePage(editor: Editor, id: PageId, options?: EditorCommandOptions): boolean;
6
+ export declare function renamePage(editor: Editor, input: RenamePageInput, options?: EditorCommandOptions): void;
7
+ export declare function updateDocumentMeta(editor: Editor, input: UpdateDocumentMetaInput, options?: EditorCommandOptions): DocumentMetadataRecord;
8
+ export declare function updatePageMeta(editor: Editor, input: UpdatePageMetaInput, options?: EditorCommandOptions): PageRecord | null;
9
+ export declare function movePage(editor: Editor, input: MovePageInput, options?: EditorCommandOptions): void;
@@ -0,0 +1,13 @@
1
+ import type { ChangeSource } from "../../../store/index";
2
+ import { type PageId, type SessionRecord, type ShapeId } from "../../schema/records";
3
+ import type { EditorCommandOptions, SetCameraInput } from "./commandTypes";
4
+ import type { Editor } from "../editor";
5
+ export declare function updateSession(editor: Editor, partial: Partial<SessionRecord>, source?: ChangeSource): void;
6
+ export declare function setCurrentPageId(editor: Editor, id: PageId, options?: EditorCommandOptions): void;
7
+ export declare function setCamera(editor: Editor, input: SetCameraInput, options?: EditorCommandOptions): void;
8
+ export declare function setSelectedShapeIds(editor: Editor, ids: ShapeId[], options?: EditorCommandOptions): void;
9
+ export declare function setActiveTool(editor: Editor, toolId: string, options?: EditorCommandOptions): void;
10
+ export declare function setToolLocked(editor: Editor, locked: boolean, options?: EditorCommandOptions): void;
11
+ export declare function ensurePageState(editor: Editor, pageId: PageId, source?: ChangeSource): void;
12
+ export declare function removePageState(editor: Editor, pageId: PageId, nextCurrentPageId: PageId, source?: ChangeSource): void;
13
+ export declare function syncToolStateFromSession(editor: Editor, source: ChangeSource): void;
@@ -0,0 +1,9 @@
1
+ import { type ShapeId, type ShapeRecord } from "../../schema/records";
2
+ import type { CreateShapeInput, CreateShapesOptions, EditorCommandOptions, ReparentShapesInput, ShapeUpdate, UpdateShapesOptions } from "./commandTypes";
3
+ import type { Editor } from "../editor";
4
+ export declare function createShapes(editor: Editor, inputs: CreateShapeInput[], options?: CreateShapesOptions): ShapeRecord[];
5
+ export declare function createShapesFromRecords(editor: Editor, records: ShapeRecord[], options?: EditorCommandOptions): ShapeRecord[];
6
+ export declare function reparentShapeToContainingParent(editor: Editor, shapeId: ShapeId, options?: EditorCommandOptions): void;
7
+ export declare function updateShapes(editor: Editor, updates: ShapeUpdate[], options?: UpdateShapesOptions): void;
8
+ export declare function reparentShapes(editor: Editor, input: ReparentShapesInput, options?: EditorCommandOptions): boolean;
9
+ export declare function deleteShapes(editor: Editor, ids: ShapeId[], options?: EditorCommandOptions): void;
@@ -0,0 +1,10 @@
1
+ import type { ChangeSource } from "../../../store/index";
2
+ import type { ShapeId } from "../../schema/records";
3
+ import type { Editor } from "../editor";
4
+ type ShapeBooleanFlag = "isHidden" | "isLocked";
5
+ export declare function setShapeBooleanFlag(editor: Editor, ids: readonly ShapeId[], input: {
6
+ flag: ShapeBooleanFlag;
7
+ value: boolean;
8
+ source: ChangeSource;
9
+ }): ShapeId[];
10
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { ChangeSource } from "../../../store/index";
2
+ import { type AssetId, type ShapeId } from "../../schema/records";
3
+ import type { Editor } from "../editor";
4
+ interface RemoveShapeRecordsOptions {
5
+ source: ChangeSource;
6
+ afterRemove?: (removedIds: readonly ShapeId[]) => void;
7
+ }
8
+ export declare function getUnreferencedAssetIdsAfterShapeDelete(editor: Editor, shapeIds: readonly ShapeId[]): AssetId[];
9
+ export declare function removeShapeRecords(editor: Editor, ids: readonly ShapeId[], options: RemoveShapeRecordsOptions): ShapeId[];
10
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { ChangeSource } from "../../../store/index";
2
+ import { type ShapeId, type ShapeParentId, type ShapeRecord } from "../../schema/records";
3
+ import type { Editor } from "../editor";
4
+ export declare function syncTransformDescendantAncestorBounds(editor: Editor, changes: Array<{
5
+ before: ShapeRecord;
6
+ after: ShapeRecord;
7
+ }>, source: ChangeSource): void;
8
+ export declare function syncTransformDescendantAncestorBoundsByIds(editor: Editor, ancestorIds: Iterable<ShapeId>, source: ChangeSource, excludedIds?: ReadonlySet<ShapeId>): void;
9
+ export declare function getCurrentChildShapes(editor: Editor, parentId: ShapeParentId): ShapeRecord[];
10
+ export declare function collectTransformDescendantAncestorIdsForShapes(editor: Editor, ids: readonly ShapeId[]): Set<ShapeId>;
11
+ export declare function repairMinimumChildContainers(editor: Editor, ancestorIds: Iterable<ShapeId>, deletedIds: Set<ShapeId>, source: ChangeSource): ShapeId[];
@@ -0,0 +1,6 @@
1
+ import { type EditorPlugin } from "../plugins/editorRuntimePlugin";
2
+ import { Editor, type EditorOptions } from "./editor";
3
+ export interface CreateEditorOptions extends Omit<EditorOptions, "shapeUtils" | "shapeSvgExporters" | "bindingUtils"> {
4
+ plugins?: readonly EditorPlugin[];
5
+ }
6
+ export declare function createEditor(options?: CreateEditorOptions): Editor;