@yuzhouu/canvas-kit 0.1.2 → 0.1.4
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.
- package/README.md +80 -78
- package/_vendor/canvas-core/bindings/bindingUtil.d.ts +45 -0
- package/_vendor/canvas-core/bindings/bindingUtilRegistry.d.ts +8 -0
- package/_vendor/canvas-core/bindings/terminalBinding.d.ts +28 -0
- package/_vendor/canvas-core/editor/camera.d.ts +3 -0
- package/_vendor/canvas-core/editor/clipboard.d.ts +43 -0
- package/_vendor/canvas-core/editor/commands.d.ts +131 -0
- package/_vendor/canvas-core/editor/createEditorWithPlugins.d.ts +6 -0
- package/_vendor/canvas-core/editor/edgeScroll.d.ts +5 -0
- package/_vendor/canvas-core/editor/editor.d.ts +559 -0
- package/_vendor/canvas-core/editor/editorComputedHelpers.d.ts +21 -0
- package/_vendor/canvas-core/editor/editorSelectionTransforms.d.ts +6 -0
- package/_vendor/canvas-core/editor/events.d.ts +71 -0
- package/_vendor/canvas-core/editor/historyManager.d.ts +18 -0
- package/_vendor/canvas-core/editor/index.d.ts +11 -0
- package/_vendor/canvas-core/editor/interactions.d.ts +51 -0
- package/_vendor/canvas-core/editor/internal.d.ts +7 -0
- package/_vendor/canvas-core/editor/managers/bindingManager.d.ts +27 -0
- package/_vendor/canvas-core/editor/managers/cameraManager.d.ts +39 -0
- package/_vendor/canvas-core/editor/managers/clipboardManager.d.ts +14 -0
- package/_vendor/canvas-core/editor/managers/documentSnapshotManager.d.ts +28 -0
- package/_vendor/canvas-core/editor/managers/inputsManager.d.ts +44 -0
- package/_vendor/canvas-core/editor/managers/interactionTransientManager.d.ts +55 -0
- package/_vendor/canvas-core/editor/managers/queryManager.d.ts +77 -0
- package/_vendor/canvas-core/editor/managers/queryState.d.ts +18 -0
- package/_vendor/canvas-core/editor/managers/renderWindowManager.d.ts +25 -0
- package/_vendor/canvas-core/editor/managers/selectionGeometry.d.ts +28 -0
- package/_vendor/canvas-core/editor/managers/selectionLayoutManager.d.ts +29 -0
- package/_vendor/canvas-core/editor/managers/selectionManager.d.ts +21 -0
- package/_vendor/canvas-core/editor/managers/selectionOverlayManager.d.ts +24 -0
- package/_vendor/canvas-core/editor/managers/shapeEditingManager.d.ts +29 -0
- package/_vendor/canvas-core/editor/managers/shapeGeometryManager.d.ts +42 -0
- package/_vendor/canvas-core/editor/managers/shapeHierarchyManager.d.ts +55 -0
- package/_vendor/canvas-core/editor/managers/shapeOrder.d.ts +14 -0
- package/_vendor/canvas-core/editor/managers/shapeReparenting.d.ts +6 -0
- package/_vendor/canvas-core/editor/managers/shortcutManager.d.ts +56 -0
- package/_vendor/canvas-core/editor/managers/sideEffectManager.d.ts +23 -0
- package/_vendor/canvas-core/editor/managers/snapCalculations.d.ts +40 -0
- package/_vendor/canvas-core/editor/managers/snapGeometry.d.ts +26 -0
- package/_vendor/canvas-core/editor/managers/snapIndicators.d.ts +22 -0
- package/_vendor/canvas-core/editor/managers/snapManager.d.ts +29 -0
- package/_vendor/canvas-core/editor/managers/snapSnapshotBuilder.d.ts +22 -0
- package/_vendor/canvas-core/editor/managers/snapTypes.d.ts +98 -0
- package/_vendor/canvas-core/editor/managers/spatialIndexManager.d.ts +30 -0
- package/_vendor/canvas-core/editor/managers/toolManager.d.ts +24 -0
- package/_vendor/canvas-core/editor/queries/shapeTransforms.d.ts +27 -0
- package/_vendor/canvas-core/editor/renderWindow.d.ts +30 -0
- package/_vendor/canvas-core/editor/resizeGeometry.d.ts +97 -0
- package/_vendor/canvas-core/editor/selection.d.ts +231 -0
- package/_vendor/canvas-core/editor/selectionHandleInteractions.d.ts +11 -0
- package/_vendor/canvas-core/editor/selectionOverlay.d.ts +33 -0
- package/_vendor/canvas-core/editor/stateNode.d.ts +31 -0
- package/_vendor/canvas-core/exports/integrity.d.ts +32 -0
- package/_vendor/canvas-core/exports/svg.d.ts +52 -0
- package/_vendor/canvas-core/geometry/box.d.ts +19 -0
- package/_vendor/canvas-core/geometry/ellipse2d.d.ts +16 -0
- package/_vendor/canvas-core/geometry/geometry2d.d.ts +15 -0
- package/_vendor/canvas-core/geometry/index.d.ts +8 -0
- package/_vendor/canvas-core/geometry/mat.d.ts +28 -0
- package/_vendor/canvas-core/geometry/polyline2d.d.ts +14 -0
- package/_vendor/canvas-core/geometry/rectangle2d.d.ts +16 -0
- package/_vendor/canvas-core/geometry/segments.d.ts +5 -0
- package/_vendor/canvas-core/geometry/vec.d.ts +37 -0
- package/_vendor/canvas-core/index.d.ts +59 -0
- package/_vendor/canvas-core/plugins/editorPlugin.d.ts +28 -0
- package/_vendor/canvas-core/plugins/index.d.ts +1 -0
- package/_vendor/canvas-core/reactivity.d.ts +4 -0
- package/_vendor/canvas-core/schema/records.d.ts +112 -0
- package/_vendor/canvas-core/schema/snapshotSupport.d.ts +43 -0
- package/_vendor/canvas-core/schema/snapshots.d.ts +31 -0
- package/_vendor/canvas-core/shapes/capabilities.d.ts +25 -0
- package/_vendor/canvas-core/shapes/colors.d.ts +26 -0
- package/_vendor/canvas-core/shapes/shapeUtil.d.ts +146 -0
- package/_vendor/canvas-core/shapes/shapeUtilRegistry.d.ts +9 -0
- package/_vendor/canvas-core/shapes/types.d.ts +2 -0
- package/_vendor/canvas-core/surfaces/actions.d.ts +35 -0
- package/_vendor/canvas-core/surfaces/contextMenu.d.ts +64 -0
- package/_vendor/canvas-core/surfaces/toolbar.d.ts +96 -0
- package/_vendor/canvas-core/tools/hand/handTool.d.ts +5 -0
- package/_vendor/canvas-core/tools/index.d.ts +2 -0
- package/_vendor/canvas-core/tools/select/selectContainment.d.ts +12 -0
- package/_vendor/canvas-core/tools/select/selectTool.d.ts +5 -0
- package/_vendor/canvas-core/tools/select/selectToolHelpers.d.ts +161 -0
- package/_vendor/canvas-core/tools/select/states/brushingState.d.ts +19 -0
- package/_vendor/canvas-core/tools/select/states/draggingSelectionHandleInteractionState.d.ts +15 -0
- package/_vendor/canvas-core/tools/select/states/idleState.d.ts +8 -0
- package/_vendor/canvas-core/tools/select/states/index.d.ts +11 -0
- package/_vendor/canvas-core/tools/select/states/pointingCanvasState.d.ts +11 -0
- package/_vendor/canvas-core/tools/select/states/pointingResizeHandleState.d.ts +10 -0
- package/_vendor/canvas-core/tools/select/states/pointingRotateHandleState.d.ts +10 -0
- package/_vendor/canvas-core/tools/select/states/pointingSelectionHandleInteractionState.d.ts +10 -0
- package/_vendor/canvas-core/tools/select/states/pointingShapeState.d.ts +12 -0
- package/_vendor/canvas-core/tools/select/states/resizingState.d.ts +16 -0
- package/_vendor/canvas-core/tools/select/states/rotatingState.d.ts +14 -0
- package/_vendor/canvas-core/tools/select/states/selectStateNode.d.ts +60 -0
- package/_vendor/canvas-core/tools/select/states/translatingState.d.ts +17 -0
- package/_vendor/canvas-react/components/CanvasView.d.ts +14 -0
- package/_vendor/canvas-react/components/OverlayLayer.d.ts +1 -0
- package/_vendor/canvas-react/components/PageSpace.d.ts +6 -0
- package/_vendor/canvas-react/components/ShapeLayer.d.ts +4 -0
- package/_vendor/canvas-react/components/index.d.ts +2 -0
- package/_vendor/canvas-react/components/overlays/BindingGuide.d.ts +24 -0
- package/_vendor/canvas-react/components/overlays/BindingPreviewOverlay.d.ts +1 -0
- package/_vendor/canvas-react/components/overlays/BrushBoxOverlay.d.ts +1 -0
- package/_vendor/canvas-react/components/overlays/OverlaySvgRoot.d.ts +1 -0
- package/_vendor/canvas-react/components/overlays/SelectionFrameOverlay.d.ts +1 -0
- package/_vendor/canvas-react/components/overlays/SelectionHandlesOverlay.d.ts +1 -0
- package/_vendor/canvas-react/components/overlays/SelectionOverlaySvg.d.ts +1 -0
- package/_vendor/canvas-react/components/overlays/SelectionPathOverlay.d.ts +1 -0
- package/_vendor/canvas-react/components/overlays/ShapeOutlineOverlay.d.ts +8 -0
- package/_vendor/canvas-react/components/overlays/SnapIndicatorsOverlay.d.ts +1 -0
- package/_vendor/canvas-react/components/useCanvasDomEvents.d.ts +21 -0
- package/_vendor/canvas-react/dom.d.ts +10 -0
- package/_vendor/canvas-react/hooks/useEditor.d.ts +3 -0
- package/_vendor/canvas-react/hooks/useValue.d.ts +2 -0
- package/_vendor/canvas-react/host/canvasOverlayRegistryContext.d.ts +3 -0
- package/_vendor/canvas-react/host/canvasPlugin.d.ts +73 -0
- package/_vendor/canvas-react/host/canvasRendererRegistryContext.d.ts +3 -0
- package/_vendor/canvas-react/host/contextMenuRegistry.d.ts +12 -0
- package/_vendor/canvas-react/host/domEventGuards.d.ts +11 -0
- package/_vendor/canvas-react/host/extension.d.ts +37 -0
- package/_vendor/canvas-react/host/index.d.ts +13 -0
- package/_vendor/canvas-react/host/overlayRegistry.d.ts +18 -0
- package/_vendor/canvas-react/host/pluginHost.d.ts +2 -0
- package/_vendor/canvas-react/host/pluginHostManifest.d.ts +2 -0
- package/_vendor/canvas-react/host/pluginHostRuntime.d.ts +3 -0
- package/_vendor/canvas-react/host/pluginHostTypes.d.ts +102 -0
- package/_vendor/canvas-react/host/pluginHostValidation.d.ts +11 -0
- package/_vendor/canvas-react/host/rendererRegistry.d.ts +12 -0
- package/_vendor/canvas-react/host/toolbarRegistry.d.ts +24 -0
- package/_vendor/canvas-react/index.d.ts +4 -0
- package/_vendor/plugin-arrow/arrowBindingAnchors.d.ts +5 -0
- package/_vendor/plugin-arrow/arrowBindingGeometry.d.ts +28 -0
- package/_vendor/plugin-arrow/arrowBindingUtil.d.ts +27 -0
- package/_vendor/plugin-arrow/arrowGeometry.d.ts +74 -0
- package/_vendor/plugin-arrow/arrowShapeUtil.d.ts +21 -0
- package/_vendor/plugin-arrow/arrowTerminalBindingResolver.d.ts +20 -0
- package/_vendor/plugin-arrow/arrowTerminalCommands.d.ts +12 -0
- package/_vendor/plugin-arrow/arrowTool.d.ts +4 -0
- package/_vendor/plugin-arrow/canvas.d.ts +2 -0
- package/_vendor/plugin-arrow/editor.d.ts +7 -0
- package/_vendor/plugin-arrow/feature.d.ts +3 -0
- package/_vendor/plugin-arrow/index.d.ts +12 -0
- package/_vendor/plugin-arrow/selectionHandleInteractions.d.ts +3 -0
- package/_vendor/plugin-arrow/types.d.ts +31 -0
- package/_vendor/plugin-draw/DrawShapeRenderer.d.ts +10 -0
- package/_vendor/plugin-draw/canvas.d.ts +2 -0
- package/_vendor/plugin-draw/drawGeometry.d.ts +45 -0
- package/_vendor/plugin-draw/drawHitTest.d.ts +11 -0
- package/_vendor/plugin-draw/drawInterpolation.d.ts +5 -0
- package/_vendor/plugin-draw/drawPath.d.ts +37 -0
- package/_vendor/plugin-draw/drawSegments.d.ts +11 -0
- package/_vendor/plugin-draw/drawSelectionTransform.d.ts +18 -0
- package/_vendor/plugin-draw/drawShapeGeometry.d.ts +33 -0
- package/_vendor/plugin-draw/drawShapeUtil.d.ts +21 -0
- package/_vendor/plugin-draw/drawStrokeGeometry.d.ts +17 -0
- package/_vendor/plugin-draw/drawTool.d.ts +6 -0
- package/_vendor/plugin-draw/editor.d.ts +7 -0
- package/_vendor/plugin-draw/feature.d.ts +3 -0
- package/_vendor/plugin-draw/index.d.ts +13 -0
- package/_vendor/plugin-draw/types.d.ts +23 -0
- package/_vendor/plugin-eraser/canvas.d.ts +2 -0
- package/_vendor/plugin-eraser/editor.d.ts +2 -0
- package/_vendor/plugin-eraser/eraserTool.d.ts +5 -0
- package/_vendor/plugin-eraser/feature.d.ts +3 -0
- package/_vendor/plugin-eraser/{index.ts → index.d.ts} +2 -2
- package/_vendor/plugin-frame/canvas.d.ts +9 -0
- package/_vendor/plugin-frame/editor.d.ts +7 -0
- package/_vendor/plugin-frame/feature.d.ts +3 -0
- package/_vendor/plugin-frame/frameShapeUtil.d.ts +23 -0
- package/_vendor/plugin-frame/frameTool.d.ts +6 -0
- package/_vendor/plugin-frame/index.d.ts +6 -0
- package/_vendor/plugin-geo/canvas.d.ts +13 -0
- package/_vendor/plugin-geo/editor.d.ts +7 -0
- package/_vendor/plugin-geo/feature.d.ts +3 -0
- package/_vendor/plugin-geo/geoGeometry.d.ts +8 -0
- package/_vendor/plugin-geo/geoShapeUtil.d.ts +13 -0
- package/_vendor/plugin-geo/geoTools.d.ts +26 -0
- package/_vendor/plugin-geo/index.d.ts +7 -0
- package/_vendor/plugin-geo/types.d.ts +17 -0
- package/_vendor/plugin-group/canvas.d.ts +10 -0
- package/_vendor/plugin-group/editor.d.ts +7 -0
- package/_vendor/plugin-group/feature.d.ts +3 -0
- package/_vendor/plugin-group/groupShapeUtil.d.ts +15 -0
- package/_vendor/plugin-group/index.d.ts +5 -0
- package/_vendor/plugin-image/canvas.d.ts +2 -0
- package/_vendor/plugin-image/crop.d.ts +112 -0
- package/_vendor/plugin-image/cropInteractions.d.ts +3 -0
- package/_vendor/plugin-image/cropSession.d.ts +4 -0
- package/_vendor/plugin-image/editor.d.ts +16 -0
- package/_vendor/plugin-image/feature.d.ts +3 -0
- package/_vendor/plugin-image/imageShapeUtil.d.ts +11 -0
- package/_vendor/plugin-image/index.d.ts +8 -0
- package/_vendor/plugin-image/types.d.ts +37 -0
- package/_vendor/plugin-laser/canvas.d.ts +2 -0
- package/_vendor/plugin-laser/editor.d.ts +2 -0
- package/_vendor/plugin-laser/feature.d.ts +3 -0
- package/_vendor/plugin-laser/{index.ts → index.d.ts} +2 -2
- package/_vendor/plugin-laser/laserTool.d.ts +4 -0
- package/_vendor/plugin-text/arrowLabelBindingUtil.d.ts +42 -0
- package/_vendor/plugin-text/canvas.d.ts +2 -0
- package/_vendor/plugin-text/editor.d.ts +2 -0
- package/_vendor/plugin-text/feature.d.ts +3 -0
- package/_vendor/plugin-text/geoLabelBindingUtil.d.ts +45 -0
- package/_vendor/plugin-text/host/RichTextEditingBox.d.ts +5 -0
- package/_vendor/plugin-text/host/RichTextToolbar.d.ts +8 -0
- package/_vendor/plugin-text/host/TiptapTextEditor.d.ts +24 -0
- package/_vendor/plugin-text/host/richTextBubbleMenuPositionSync.d.ts +7 -0
- package/_vendor/plugin-text/host/richTextRendering.d.ts +3 -0
- package/_vendor/plugin-text/host/textDomSelection.d.ts +7 -0
- package/_vendor/plugin-text/host/textEditingBoxStyle.d.ts +3 -0
- package/_vendor/plugin-text/host/textEntryFocus.d.ts +22 -0
- package/_vendor/plugin-text/host/textFontLoader.d.ts +2 -0
- package/_vendor/plugin-text/host/textMeasurement.d.ts +12 -0
- package/_vendor/plugin-text/host/textMeasurementSync.d.ts +10 -0
- package/_vendor/plugin-text/host/textRangeSelection.d.ts +14 -0
- package/_vendor/plugin-text/host/textShapeRendererRuntime.d.ts +8 -0
- package/_vendor/plugin-text/host/textShapeSync.d.ts +17 -0
- package/_vendor/plugin-text/host/tiptapTextEditorController.d.ts +33 -0
- package/_vendor/plugin-text/index.d.ts +4 -0
- package/_vendor/plugin-text/richTextUtils.d.ts +18 -0
- package/_vendor/plugin-text/textInteractions.d.ts +2 -0
- package/_vendor/plugin-text/textLabelHelpers.d.ts +44 -0
- package/_vendor/plugin-text/textShapeHelpers.d.ts +21 -0
- package/_vendor/plugin-text/textShapeSvgExporter.d.ts +6 -0
- package/_vendor/plugin-text/textShapeUtil.d.ts +19 -0
- package/_vendor/plugin-text/textStyle.d.ts +9 -0
- package/_vendor/plugin-text/textTool.d.ts +4 -0
- package/_vendor/plugin-text/textTypes.d.ts +28 -0
- package/_vendor/signals/atom.d.ts +9 -0
- package/_vendor/signals/computed.d.ts +11 -0
- package/_vendor/signals/core.d.ts +17 -0
- package/_vendor/signals/effect.d.ts +29 -0
- package/_vendor/signals/types.d.ts +15 -0
- package/_vendor/store/diff.d.ts +9 -0
- package/_vendor/store/history.d.ts +37 -0
- package/_vendor/store/index.d.ts +5 -0
- package/_vendor/store/store.d.ts +32 -0
- package/_vendor/store/types.d.ts +27 -0
- package/browser/localSnapshotRestore.d.ts +13 -0
- package/browser/persistence.d.ts +46 -0
- package/builtins/controller/createBuiltInCanvasController.d.ts +16 -0
- package/builtins/controller/layerController.d.ts +9 -0
- package/builtins/controller/shapeCreationController.d.ts +74 -0
- package/builtins/extensions.d.ts +15 -0
- package/builtins/index.d.ts +5 -0
- package/chrome/CanvasKitFloatingToolbarLayer.d.ts +6 -0
- package/chrome/FloatingSelectionToolbarPageSpace.d.ts +9 -0
- package/chrome/bindings/useCanvasKitChromeControls.d.ts +27 -0
- package/chrome/bindings/useContextMenuSurface.d.ts +12 -0
- package/chrome/bindings/useSvgExport.d.ts +15 -0
- package/chrome/bindings/useToolbarSurfaces.d.ts +26 -0
- package/chrome/types.d.ts +66 -0
- package/chrome/useCanvasKitChromeContext.d.ts +19 -0
- package/controller/canvasKitController.d.ts +36 -0
- package/core/controller/canvasProductController.d.ts +114 -0
- package/core/controller/featureControllerRegistry.d.ts +12 -0
- package/core/controller/index.d.ts +4 -0
- package/core/controller/productLayerTree.d.ts +10 -0
- package/core/features/actions/canvasActionContext.d.ts +15 -0
- package/core/features/actions/canvasActions.d.ts +26 -0
- package/core/features/clipboard/clipboardContextMenuContributions.d.ts +2 -0
- package/core/features/clipboard/clipboardContribution.d.ts +19 -0
- package/core/features/clipboard/clipboardService.d.ts +10 -0
- package/core/features/context-menu/contextMenuActions.d.ts +12 -0
- package/core/features/context-menu/contextMenuContext.d.ts +6 -0
- package/core/features/context-menu/contextMenuContribution.d.ts +4 -0
- package/core/features/context-menu/viewContextMenuContributions.d.ts +2 -0
- package/core/features/export/svgExport.d.ts +33 -0
- package/core/features/hostActionIds.d.ts +1 -0
- package/core/features/toolbar/selectionContextMenuContributions.d.ts +2 -0
- package/core/features/toolbar/toolContextMenuContributions.d.ts +2 -0
- package/core/features/toolbar/toolbarContribution.d.ts +4 -0
- package/core/features/toolbar/toolbarLabels.d.ts +8 -0
- package/core/index.d.ts +23 -0
- package/core/runtime/productAssets.d.ts +18 -0
- package/core/runtime/productContributions.d.ts +9 -0
- package/core/runtime/productDefinition.d.ts +32 -0
- package/core/runtime/productEditor.d.ts +3 -0
- package/core/runtime/productHost.d.ts +17 -0
- package/core/runtime/productServices.d.ts +30 -0
- package/features/image/ImageImportController.d.ts +9 -0
- package/features/image/imageAssetService.d.ts +7 -0
- package/features/image/imageBlobStore.d.ts +25 -0
- package/features/image/imageFileHelpers.d.ts +35 -0
- package/features/image/imageHostActions.d.ts +36 -0
- package/features/image/imageHostExtension.d.ts +5 -0
- package/features/image/imageProductController.d.ts +22 -0
- package/features/image/imageProductToolbarActions.d.ts +2 -0
- package/features/image/imageToolbarHostBridge.d.ts +14 -0
- package/features/image/index.d.ts +15 -0
- package/features/image/svgImageAssetInliner.d.ts +3 -0
- package/features/image/useImageImport.d.ts +17 -0
- package/index.css +1 -2
- package/index.d.ts +12 -15
- package/index.mjs +66 -1
- package/package.json +1 -11
- package/product/canvasKitProduct.d.ts +59 -0
- package/react/CanvasKitPersistenceNotice.d.ts +4 -0
- package/react/CanvasKitRoot.d.ts +5 -0
- package/react/useCanvasKitController.d.ts +5 -0
- package/react/useCanvasKitKeyboardShortcuts.d.ts +6 -0
- package/react/useCanvasKitRuntime.d.ts +4 -0
- package/react/useCanvasKitStartup.d.ts +9 -0
- package/runtime/canvasKitHostExtensions.d.ts +19 -0
- package/runtime/canvasKitRuntime.d.ts +19 -0
- package/runtime/canvasKitRuntimeInitializer.d.ts +11 -0
- package/_vendor/canvas-core/bindings/BindingUtil.ts +0 -92
- package/_vendor/canvas-core/bindings/BindingUtilRegistry.ts +0 -22
- package/_vendor/canvas-core/bindings/arrow/arrowBindingHelpers.ts +0 -52
- package/_vendor/canvas-core/contextMenu.ts +0 -85
- package/_vendor/canvas-core/editor/Editor.ts +0 -2614
- package/_vendor/canvas-core/editor/HistoryManager.ts +0 -83
- package/_vendor/canvas-core/editor/StateNode.ts +0 -162
- package/_vendor/canvas-core/editor/camera.ts +0 -6
- package/_vendor/canvas-core/editor/clipboard.ts +0 -478
- package/_vendor/canvas-core/editor/commands.ts +0 -833
- package/_vendor/canvas-core/editor/edgeScroll.ts +0 -37
- package/_vendor/canvas-core/editor/editorComputedHelpers.ts +0 -257
- package/_vendor/canvas-core/editor/editorSelectionTransforms.ts +0 -116
- package/_vendor/canvas-core/editor/events.ts +0 -93
- package/_vendor/canvas-core/editor/index.ts +0 -12
- package/_vendor/canvas-core/editor/interactions.ts +0 -101
- package/_vendor/canvas-core/editor/internal.ts +0 -22
- package/_vendor/canvas-core/editor/managers/BindingManager.ts +0 -262
- package/_vendor/canvas-core/editor/managers/CameraManager.ts +0 -147
- package/_vendor/canvas-core/editor/managers/ClipboardManager.ts +0 -32
- package/_vendor/canvas-core/editor/managers/DocumentSnapshotManager.ts +0 -256
- package/_vendor/canvas-core/editor/managers/InputsManager.ts +0 -319
- package/_vendor/canvas-core/editor/managers/InteractionTransientManager.ts +0 -218
- package/_vendor/canvas-core/editor/managers/QueryManager.ts +0 -837
- package/_vendor/canvas-core/editor/managers/RenderWindowManager.ts +0 -347
- package/_vendor/canvas-core/editor/managers/SelectionLayoutManager.ts +0 -196
- package/_vendor/canvas-core/editor/managers/SelectionManager.ts +0 -98
- package/_vendor/canvas-core/editor/managers/SelectionOverlayManager.ts +0 -308
- package/_vendor/canvas-core/editor/managers/ShapeEditingManager.ts +0 -226
- package/_vendor/canvas-core/editor/managers/ShapeGeometryManager.ts +0 -162
- package/_vendor/canvas-core/editor/managers/ShapeHierarchyManager.ts +0 -797
- package/_vendor/canvas-core/editor/managers/SideEffectManager.ts +0 -83
- package/_vendor/canvas-core/editor/managers/SnapManager.ts +0 -433
- package/_vendor/canvas-core/editor/managers/SnapSnapshotBuilder.ts +0 -430
- package/_vendor/canvas-core/editor/managers/SpatialIndexManager.ts +0 -354
- package/_vendor/canvas-core/editor/managers/ToolManager.ts +0 -81
- package/_vendor/canvas-core/editor/managers/queryState.ts +0 -583
- package/_vendor/canvas-core/editor/managers/selectionGeometry.ts +0 -287
- package/_vendor/canvas-core/editor/managers/shapeOrder.ts +0 -350
- package/_vendor/canvas-core/editor/managers/shapeReparenting.ts +0 -160
- package/_vendor/canvas-core/editor/managers/snapCalculations.ts +0 -412
- package/_vendor/canvas-core/editor/managers/snapGeometry.ts +0 -202
- package/_vendor/canvas-core/editor/managers/snapIndicators.ts +0 -403
- package/_vendor/canvas-core/editor/managers/snapTypes.ts +0 -122
- package/_vendor/canvas-core/editor/queries/shapeTransforms.ts +0 -171
- package/_vendor/canvas-core/editor/renderWindow.ts +0 -439
- package/_vendor/canvas-core/editor/resizeGeometry.ts +0 -654
- package/_vendor/canvas-core/editor/selection.ts +0 -489
- package/_vendor/canvas-core/editor/selectionHandleInteractions.ts +0 -43
- package/_vendor/canvas-core/editor/selectionOverlay.ts +0 -567
- package/_vendor/canvas-core/exports/integrity.ts +0 -174
- package/_vendor/canvas-core/exports/svg.ts +0 -494
- package/_vendor/canvas-core/geometry/Box.ts +0 -80
- package/_vendor/canvas-core/geometry/Ellipse2d.ts +0 -67
- package/_vendor/canvas-core/geometry/Geometry2d.ts +0 -52
- package/_vendor/canvas-core/geometry/Mat.ts +0 -92
- package/_vendor/canvas-core/geometry/Polyline2d.ts +0 -63
- package/_vendor/canvas-core/geometry/Rectangle2d.ts +0 -64
- package/_vendor/canvas-core/geometry/Vec.ts +0 -123
- package/_vendor/canvas-core/geometry/index.ts +0 -13
- package/_vendor/canvas-core/geometry/segments.ts +0 -65
- package/_vendor/canvas-core/index.ts +0 -391
- package/_vendor/canvas-core/plugins/index.ts +0 -5
- package/_vendor/canvas-core/plugins/types.ts +0 -53
- package/_vendor/canvas-core/reactivity.ts +0 -16
- package/_vendor/canvas-core/schema/records.ts +0 -221
- package/_vendor/canvas-core/schema/snapshots.ts +0 -527
- package/_vendor/canvas-core/shapes/ShapeUtil.ts +0 -516
- package/_vendor/canvas-core/shapes/ShapeUtilRegistry.ts +0 -26
- package/_vendor/canvas-core/shapes/capabilities.ts +0 -67
- package/_vendor/canvas-core/shapes/types.ts +0 -20
- package/_vendor/canvas-core/toolbar.ts +0 -148
- package/_vendor/canvas-core/tools/hand/HandTool.ts +0 -75
- package/_vendor/canvas-core/tools/index.ts +0 -2
- package/_vendor/canvas-core/tools/select/SelectTool.ts +0 -33
- package/_vendor/canvas-core/tools/select/selectContainment.ts +0 -104
- package/_vendor/canvas-core/tools/select/selectToolHelpers.ts +0 -801
- package/_vendor/canvas-core/tools/select/states/BrushingState.ts +0 -145
- package/_vendor/canvas-core/tools/select/states/DraggingSelectionHandleInteractionState.ts +0 -116
- package/_vendor/canvas-core/tools/select/states/IdleState.ts +0 -159
- package/_vendor/canvas-core/tools/select/states/PointingCanvasState.ts +0 -41
- package/_vendor/canvas-core/tools/select/states/PointingResizeHandleState.ts +0 -78
- package/_vendor/canvas-core/tools/select/states/PointingRotateHandleState.ts +0 -64
- package/_vendor/canvas-core/tools/select/states/PointingSelectionHandleInteractionState.ts +0 -34
- package/_vendor/canvas-core/tools/select/states/PointingShapeState.ts +0 -140
- package/_vendor/canvas-core/tools/select/states/ResizingState.ts +0 -171
- package/_vendor/canvas-core/tools/select/states/RotatingState.ts +0 -124
- package/_vendor/canvas-core/tools/select/states/SelectStateNode.ts +0 -128
- package/_vendor/canvas-core/tools/select/states/TranslatingState.ts +0 -139
- package/_vendor/canvas-core/tools/select/states/index.ts +0 -11
- package/_vendor/canvas-plugin-api/feature.ts +0 -204
- package/_vendor/canvas-plugin-api/index.ts +0 -142
- package/_vendor/canvas-product-react/api/apiRegistry.ts +0 -35
- package/_vendor/canvas-product-react/api/canvasProductApi.ts +0 -422
- package/_vendor/canvas-product-react/api/index.ts +0 -31
- package/_vendor/canvas-product-react/capabilities/clipboard/clipboardService.ts +0 -36
- package/_vendor/canvas-product-react/capabilities/clipboard/systemClipboard.ts +0 -245
- package/_vendor/canvas-product-react/capabilities/context-menu/systemContextMenu.ts +0 -396
- package/_vendor/canvas-product-react/capabilities/context-menu/useContextMenuSurface.ts +0 -59
- package/_vendor/canvas-product-react/capabilities/export/useSvgExport.ts +0 -156
- package/_vendor/canvas-product-react/capabilities/history/useHistoryControls.ts +0 -23
- package/_vendor/canvas-product-react/capabilities/pages/usePageControls.ts +0 -41
- package/_vendor/canvas-product-react/capabilities/toolbar/systemToolbar.ts +0 -490
- package/_vendor/canvas-product-react/capabilities/toolbar/useToolbarSurfaces.ts +0 -92
- package/_vendor/canvas-product-react/capabilities/zoom/useZoomControls.ts +0 -27
- package/_vendor/canvas-product-react/index.ts +0 -84
- package/_vendor/canvas-product-react/persistence/index.ts +0 -18
- package/_vendor/canvas-product-react/persistence/localSnapshotPersistence.ts +0 -294
- package/_vendor/canvas-product-react/runtime/CanvasProductRoot.tsx +0 -250
- package/_vendor/canvas-product-react/runtime/productDefinition.ts +0 -72
- package/_vendor/canvas-product-react/runtime/productServices.ts +0 -96
- package/_vendor/canvas-react/components/CanvasView.tsx +0 -796
- package/_vendor/canvas-react/components/OverlayLayer.tsx +0 -879
- package/_vendor/canvas-react/components/PageSpace.tsx +0 -34
- package/_vendor/canvas-react/components/ShapeLayer.tsx +0 -428
- package/_vendor/canvas-react/components/index.ts +0 -4
- package/_vendor/canvas-react/hooks/useEditor.ts +0 -11
- package/_vendor/canvas-react/hooks/useValue.ts +0 -14
- package/_vendor/canvas-react/host/CanvasRendererRegistryContext.tsx +0 -14
- package/_vendor/canvas-react/host/contextMenuRegistry.ts +0 -61
- package/_vendor/canvas-react/host/domEventGuards.ts +0 -61
- package/_vendor/canvas-react/host/index.ts +0 -38
- package/_vendor/canvas-react/host/pluginHost.ts +0 -635
- package/_vendor/canvas-react/host/rendererRegistry.tsx +0 -58
- package/_vendor/canvas-react/host/toolbarRegistry.ts +0 -100
- package/_vendor/canvas-react/index.ts +0 -3
- package/_vendor/plugin-arrow/ArrowBindingUtil.ts +0 -239
- package/_vendor/plugin-arrow/ArrowShapeUtil.ts +0 -311
- package/_vendor/plugin-arrow/ArrowTool.ts +0 -208
- package/_vendor/plugin-arrow/arrowGeometry.ts +0 -441
- package/_vendor/plugin-arrow/arrowTerminalBindingResolver.ts +0 -253
- package/_vendor/plugin-arrow/arrowTerminalCommands.ts +0 -230
- package/_vendor/plugin-arrow/canvas.tsx +0 -92
- package/_vendor/plugin-arrow/core.ts +0 -409
- package/_vendor/plugin-arrow/feature.ts +0 -20
- package/_vendor/plugin-arrow/index.ts +0 -28
- package/_vendor/plugin-arrow/selectionHandleInteractions.ts +0 -154
- package/_vendor/plugin-arrow/types.ts +0 -63
- package/_vendor/plugin-draw/DrawShapeRenderer.tsx +0 -60
- package/_vendor/plugin-draw/DrawShapeUtil.ts +0 -372
- package/_vendor/plugin-draw/DrawTool.ts +0 -444
- package/_vendor/plugin-draw/canvas.tsx +0 -24
- package/_vendor/plugin-draw/core.ts +0 -515
- package/_vendor/plugin-draw/drawGeometry.ts +0 -491
- package/_vendor/plugin-draw/drawHitTest.ts +0 -271
- package/_vendor/plugin-draw/drawInterpolation.ts +0 -250
- package/_vendor/plugin-draw/drawPath.ts +0 -550
- package/_vendor/plugin-draw/drawSegments.ts +0 -106
- package/_vendor/plugin-draw/drawSelectionTransform.ts +0 -67
- package/_vendor/plugin-draw/drawShapeGeometry.ts +0 -307
- package/_vendor/plugin-draw/drawStrokeGeometry.ts +0 -454
- package/_vendor/plugin-draw/feature.ts +0 -20
- package/_vendor/plugin-draw/index.ts +0 -31
- package/_vendor/plugin-draw/types.ts +0 -36
- package/_vendor/plugin-eraser/EraserTool.ts +0 -297
- package/_vendor/plugin-eraser/canvas.tsx +0 -616
- package/_vendor/plugin-eraser/core.ts +0 -49
- package/_vendor/plugin-eraser/feature.ts +0 -20
- package/_vendor/plugin-frame/FrameShapeUtil.ts +0 -173
- package/_vendor/plugin-frame/FrameTool.ts +0 -225
- package/_vendor/plugin-frame/canvas.tsx +0 -75
- package/_vendor/plugin-frame/core.ts +0 -534
- package/_vendor/plugin-frame/feature.ts +0 -20
- package/_vendor/plugin-frame/index.ts +0 -6
- package/_vendor/plugin-geo/GeoShapeUtil.ts +0 -463
- package/_vendor/plugin-geo/GeoTools.ts +0 -247
- package/_vendor/plugin-geo/canvas.tsx +0 -90
- package/_vendor/plugin-geo/core.ts +0 -495
- package/_vendor/plugin-geo/feature.ts +0 -20
- package/_vendor/plugin-geo/index.ts +0 -7
- package/_vendor/plugin-geo/types.ts +0 -27
- package/_vendor/plugin-group/GroupShapeUtil.ts +0 -59
- package/_vendor/plugin-group/canvas.tsx +0 -59
- package/_vendor/plugin-group/core.ts +0 -40
- package/_vendor/plugin-group/feature.ts +0 -20
- package/_vendor/plugin-group/index.ts +0 -5
- package/_vendor/plugin-image/ImageShapeUtil.ts +0 -95
- package/_vendor/plugin-image/canvas.tsx +0 -212
- package/_vendor/plugin-image/core.ts +0 -542
- package/_vendor/plugin-image/crop.ts +0 -770
- package/_vendor/plugin-image/cropInteractions.ts +0 -350
- package/_vendor/plugin-image/cropSession.ts +0 -38
- package/_vendor/plugin-image/feature.ts +0 -20
- package/_vendor/plugin-image/index.ts +0 -29
- package/_vendor/plugin-image/types.ts +0 -55
- package/_vendor/plugin-image-product-react/ImageImportController.tsx +0 -143
- package/_vendor/plugin-image-product-react/imageAssetService.ts +0 -52
- package/_vendor/plugin-image-product-react/imageBlobStore.ts +0 -315
- package/_vendor/plugin-image-product-react/imageHostActions.ts +0 -438
- package/_vendor/plugin-image-product-react/imageProductApi.ts +0 -88
- package/_vendor/plugin-image-product-react/imageToolbarHostBridge.ts +0 -48
- package/_vendor/plugin-image-product-react/imageToolbarRuntime.ts +0 -21
- package/_vendor/plugin-image-product-react/index.ts +0 -60
- package/_vendor/plugin-image-product-react/snapshotGuards.ts +0 -33
- package/_vendor/plugin-image-product-react/svgImageAssetInliner.ts +0 -54
- package/_vendor/plugin-image-product-react/useImageImport.ts +0 -64
- package/_vendor/plugin-laser/LaserTool.ts +0 -154
- package/_vendor/plugin-laser/canvas.tsx +0 -645
- package/_vendor/plugin-laser/core.ts +0 -49
- package/_vendor/plugin-laser/feature.ts +0 -20
- package/_vendor/plugin-text/ArrowLabelBindingUtil.ts +0 -336
- package/_vendor/plugin-text/GeoLabelBindingUtil.ts +0 -391
- package/_vendor/plugin-text/TextShapeSvgExporter.ts +0 -101
- package/_vendor/plugin-text/TextShapeUtil.ts +0 -284
- package/_vendor/plugin-text/TextTool.ts +0 -228
- package/_vendor/plugin-text/canvas.tsx +0 -115
- package/_vendor/plugin-text/core.ts +0 -422
- package/_vendor/plugin-text/feature.ts +0 -20
- package/_vendor/plugin-text/host/RichTextEditingBox.tsx +0 -144
- package/_vendor/plugin-text/host/RichTextToolbar.tsx +0 -266
- package/_vendor/plugin-text/host/TiptapTextEditor.tsx +0 -191
- package/_vendor/plugin-text/host/richTextRendering.tsx +0 -49
- package/_vendor/plugin-text/host/textDomSelection.ts +0 -93
- package/_vendor/plugin-text/host/textEditingBoxStyle.ts +0 -36
- package/_vendor/plugin-text/host/textEntryFocus.ts +0 -307
- package/_vendor/plugin-text/host/textFontLoader.ts +0 -149
- package/_vendor/plugin-text/host/textMeasurement.ts +0 -258
- package/_vendor/plugin-text/host/textMeasurementSync.ts +0 -77
- package/_vendor/plugin-text/host/textRangeSelection.ts +0 -134
- package/_vendor/plugin-text/host/textShapeRendererRuntime.tsx +0 -89
- package/_vendor/plugin-text/host/textShapeSync.ts +0 -173
- package/_vendor/plugin-text/host/tiptapTextEditorController.ts +0 -148
- package/_vendor/plugin-text/index.ts +0 -18
- package/_vendor/plugin-text/richTextUtils.ts +0 -259
- package/_vendor/plugin-text/textInteractions.ts +0 -366
- package/_vendor/plugin-text/textLabelHelpers.ts +0 -235
- package/_vendor/plugin-text/textShapeHelpers.ts +0 -123
- package/_vendor/plugin-text/textStyle.ts +0 -96
- package/_vendor/plugin-text/textTypes.ts +0 -48
- package/_vendor/signals/atom.ts +0 -74
- package/_vendor/signals/computed.ts +0 -132
- package/_vendor/signals/core.ts +0 -130
- package/_vendor/signals/effect.ts +0 -117
- package/_vendor/signals/types.ts +0 -17
- package/_vendor/store/Store.ts +0 -171
- package/_vendor/store/diff.ts +0 -229
- package/_vendor/store/history.ts +0 -177
- package/_vendor/store/index.ts +0 -32
- package/_vendor/store/types.ts +0 -37
- package/api/canvasKitApi.d.ts +0 -29
- package/internal-modules.d.ts +0 -187
- package/product/Shell.d.ts +0 -19
- package/product/chromeContext.d.ts +0 -70
- package/product/createCanvasKitEditor.d.ts +0 -6
- package/product/index.d.ts +0 -7
- package/product/persistence.d.ts +0 -3
- package/product/product.d.ts +0 -22
- package/product/useCanvasClipboardShortcuts.d.ts +0 -6
- package/product-iyBbEPIs.mjs +0 -4
- package/product.mjs +0 -1
- package/standard/extensions.d.ts +0 -1
- package/standard/index.d.ts +0 -3
- package/standard/standardApi.d.ts +0 -91
- package/standard-BmrxwqpJ.mjs +0 -44
- package/standard.mjs +0 -1
- /package/_vendor/signals/{index.ts → index.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -1,102 +1,82 @@
|
|
|
1
1
|
# @land/canvas-kit
|
|
2
2
|
|
|
3
|
-
`@land/canvas-kit`
|
|
3
|
+
`@land/canvas-kit` is the public React SDK for the Land canvas kit. It includes the product runtime, built-in canvas extensions, image integration, persistence, chrome context, and typed controller surface behind one package root.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- `CanvasKit`,用于直接嵌入标准画布套件
|
|
8
|
-
- `createCanvasKitApi` 和 `CanvasKitApi`,用于编辑器自动化
|
|
9
|
-
- `createCanvasKitProduct`,用于较底层的 `CanvasProductRoot` 产品组合
|
|
10
|
-
- `@land/canvas-kit/product`,用于自定义产品 chrome
|
|
11
|
-
- `@land/canvas-kit/standard`,用于标准内置插件扩展与类型化 API
|
|
12
|
-
- 打包进发布产物的 Land 内部依赖
|
|
13
|
-
- 作为 peer dependency 的 `react` 和 `react-dom`
|
|
14
|
-
|
|
15
|
-
## 文档
|
|
16
|
-
|
|
17
|
-
- [使用文档](./docs/使用文档.md) - 基于 `apps/professional` 和 `apps/zen` 示例的使用指南。
|
|
18
|
-
- [API 文档](./docs/API文档.md) - `.`、`./product` 和 `./standard` 三个入口的完整 API 参考。
|
|
19
|
-
|
|
20
|
-
## 安装
|
|
5
|
+
## Install
|
|
21
6
|
|
|
22
7
|
```bash
|
|
23
8
|
pnpm add @land/canvas-kit react react-dom
|
|
24
9
|
```
|
|
25
10
|
|
|
26
|
-
##
|
|
11
|
+
## Basic Usage
|
|
27
12
|
|
|
28
13
|
```tsx
|
|
29
|
-
import {
|
|
14
|
+
import { useMemo } from "react";
|
|
30
15
|
import {
|
|
31
|
-
|
|
32
|
-
|
|
16
|
+
CanvasKitRoot,
|
|
17
|
+
defineCanvasKit,
|
|
33
18
|
} from "@land/canvas-kit";
|
|
34
19
|
import "@land/canvas-kit/style.css";
|
|
35
20
|
|
|
36
21
|
export function App() {
|
|
37
|
-
const
|
|
22
|
+
const product = useMemo(
|
|
23
|
+
() =>
|
|
24
|
+
defineCanvasKit({
|
|
25
|
+
onControllerReady(controller) {
|
|
26
|
+
console.log(controller.snapshot());
|
|
27
|
+
},
|
|
28
|
+
}),
|
|
29
|
+
[],
|
|
30
|
+
);
|
|
38
31
|
|
|
39
32
|
return (
|
|
40
33
|
<div style={{ width: "100%", height: "100vh" }}>
|
|
41
|
-
<
|
|
42
|
-
ref={apiRef}
|
|
43
|
-
onReady={(api) => {
|
|
44
|
-
console.log(api.snapshot());
|
|
45
|
-
}}
|
|
46
|
-
/>
|
|
34
|
+
<CanvasKitRoot product={product} />
|
|
47
35
|
</div>
|
|
48
36
|
);
|
|
49
37
|
}
|
|
50
38
|
```
|
|
51
39
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
## 注意事项
|
|
55
|
-
|
|
56
|
-
- 默认的 `canvas-kit` 产品包含画布表面、标准插件、产品运行时,以及插件自带的编辑 UI,例如文本行内格式工具条。
|
|
57
|
-
- 它不会注册产品级 chrome 面板、工具栏或上下文菜单。
|
|
40
|
+
The host element must provide a size. `CanvasKitRoot` fills the space provided by its parent and mounts the canvas runtime for the product.
|
|
58
41
|
|
|
59
|
-
##
|
|
42
|
+
## Custom Chrome
|
|
60
43
|
|
|
61
|
-
`
|
|
44
|
+
Use the `chrome` option when you want to provide your own toolbar, panels, or menus while keeping the kit runtime and built-in extensions.
|
|
62
45
|
|
|
63
46
|
```tsx
|
|
64
47
|
import { useMemo } from "react";
|
|
65
|
-
import { CanvasProductRoot } from "@land/canvas-product-react";
|
|
66
48
|
import {
|
|
67
|
-
|
|
49
|
+
CanvasKitRoot,
|
|
50
|
+
defineCanvasKit,
|
|
51
|
+
type CanvasKitController,
|
|
68
52
|
type CanvasKitChromeContext,
|
|
69
|
-
} from "@land/canvas-kit
|
|
70
|
-
import { type CanvasKitApi } from "@land/canvas-kit";
|
|
53
|
+
} from "@land/canvas-kit";
|
|
71
54
|
import "@land/canvas-kit/style.css";
|
|
72
55
|
|
|
73
|
-
function MyChrome({
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
56
|
+
function MyChrome({
|
|
57
|
+
context,
|
|
58
|
+
}: {
|
|
59
|
+
context: CanvasKitChromeContext<CanvasKitController>;
|
|
60
|
+
}) {
|
|
77
61
|
return (
|
|
78
62
|
<>
|
|
79
|
-
<
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
<aside className="my-context-panel">
|
|
97
|
-
{toolbarSurfaces.contextToolbarTitle}
|
|
98
|
-
</aside>
|
|
99
|
-
) : null}
|
|
63
|
+
<button
|
|
64
|
+
type="button"
|
|
65
|
+
disabled={!context.history.canUndo}
|
|
66
|
+
onClick={context.history.undo}
|
|
67
|
+
>
|
|
68
|
+
Undo
|
|
69
|
+
</button>
|
|
70
|
+
<button type="button" onClick={context.zoom.zoomIn}>
|
|
71
|
+
Zoom in
|
|
72
|
+
</button>
|
|
73
|
+
<button
|
|
74
|
+
type="button"
|
|
75
|
+
disabled={context.selection.count === 0}
|
|
76
|
+
onClick={() => context.controller.deleteShapes([...context.selectedShapeIds])}
|
|
77
|
+
>
|
|
78
|
+
Delete
|
|
79
|
+
</button>
|
|
100
80
|
</>
|
|
101
81
|
);
|
|
102
82
|
}
|
|
@@ -104,41 +84,63 @@ function MyChrome({ context }: { context: CanvasKitChromeContext<CanvasKitApi> }
|
|
|
104
84
|
export function App() {
|
|
105
85
|
const product = useMemo(
|
|
106
86
|
() =>
|
|
107
|
-
|
|
87
|
+
defineCanvasKit({
|
|
108
88
|
chrome: (context) => <MyChrome context={context} />,
|
|
109
|
-
exposeApiOnWindow: true,
|
|
110
89
|
}),
|
|
111
90
|
[],
|
|
112
91
|
);
|
|
113
92
|
|
|
114
93
|
return (
|
|
115
94
|
<div style={{ width: "100%", height: "100vh" }}>
|
|
116
|
-
<
|
|
95
|
+
<CanvasKitRoot product={product} />
|
|
117
96
|
</div>
|
|
118
97
|
);
|
|
119
98
|
}
|
|
120
99
|
```
|
|
121
100
|
|
|
122
|
-
|
|
101
|
+
Chrome should operate through `CanvasKitChromeContext` and `context.controller`. The product shell owns canvas mounting, so custom chrome should render controls and overlays rather than the canvas itself. It should not import `@land/canvas-core`, `@land/canvas-react`, built-in plugin packages, or kit internals.
|
|
123
102
|
|
|
124
|
-
|
|
103
|
+
The package no longer exposes a one-component direct render entry. Apps should define a product with `defineCanvasKit` and render it through `CanvasKitRoot`.
|
|
125
104
|
|
|
126
|
-
|
|
105
|
+
## Local Persistence
|
|
127
106
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
107
|
+
Default browser persistence restores supported records even when a saved
|
|
108
|
+
snapshot also contains unsupported shape or binding types. Unsupported raw
|
|
109
|
+
records are preserved outside the live editor and merged back into future saves.
|
|
110
|
+
When this happens, `CanvasKitRoot` shows a persistence notice and custom
|
|
111
|
+
chrome can inspect `context.persistence.status` or call
|
|
112
|
+
`context.persistence.discardUnsupportedRecords?.()` after explicit user
|
|
113
|
+
confirmation.
|
|
114
|
+
|
|
115
|
+
## Internal Assembly
|
|
116
|
+
|
|
117
|
+
The public product remains opaque. Internally, `defineCanvasKit()` resolves options into explicit product fields:
|
|
118
|
+
|
|
119
|
+
- `LandExtension[]` installs editor/canvas plugins through `@land/canvas-react/host`.
|
|
120
|
+
- `CanvasKitHostExtension[]` installs product-host behavior such as clipboard, toolbar, context menu, image import, asset URL resolution, SVG asset inlining, and controller components.
|
|
121
|
+
- Service factories and asset resolver tokens wire product-level services into runtime.
|
|
122
|
+
- `CanvasKitRuntime` creates services, the plugin host runtime, the editor, controller registry, and then runs product runtime setup.
|
|
123
|
+
|
|
124
|
+
This keeps app chrome on the root package controller while keeping browser-specific host behavior out of concrete shape plugins and out of `canvas-core`.
|
|
125
|
+
|
|
126
|
+
## Public Exports
|
|
127
|
+
|
|
128
|
+
The published package intentionally exposes only:
|
|
129
|
+
|
|
130
|
+
- `@land/canvas-kit`
|
|
131
|
+
- `@land/canvas-kit/style.css`
|
|
132
|
+
|
|
133
|
+
Package subpaths are internal implementation details.
|
|
132
134
|
|
|
133
|
-
##
|
|
135
|
+
## Local Build
|
|
134
136
|
|
|
135
|
-
|
|
137
|
+
Run from the workspace root:
|
|
136
138
|
|
|
137
139
|
```bash
|
|
138
140
|
pnpm build:canvas-kit:bundle
|
|
139
141
|
```
|
|
140
142
|
|
|
141
|
-
|
|
143
|
+
The publish-ready output is written to:
|
|
142
144
|
|
|
143
145
|
```text
|
|
144
146
|
packages/canvas-kit/dist-component/
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Editor } from "../editor/editor";
|
|
2
|
+
import type { SelectionOverlayFrameGeometryState } from "../editor/selection";
|
|
3
|
+
import type { BindingId, BindingRecord, BindingRecordBase, ShapeRecord } from "../schema/records";
|
|
4
|
+
export interface BindingUtilEffect {
|
|
5
|
+
shapes?: ShapeRecord[];
|
|
6
|
+
bindings?: BindingRecord[];
|
|
7
|
+
deleteShapeIds?: ShapeRecord["id"][];
|
|
8
|
+
deleteBindingIds?: BindingId[];
|
|
9
|
+
}
|
|
10
|
+
export interface BindingShapeChangeContext {
|
|
11
|
+
before: ShapeRecord;
|
|
12
|
+
after: ShapeRecord;
|
|
13
|
+
role: "from" | "to";
|
|
14
|
+
}
|
|
15
|
+
export interface BindingShapeDeleteContext {
|
|
16
|
+
shape: ShapeRecord;
|
|
17
|
+
role: "from" | "to";
|
|
18
|
+
}
|
|
19
|
+
export interface BindingEndpointContext {
|
|
20
|
+
fromShape: ShapeRecord;
|
|
21
|
+
toShape: ShapeRecord;
|
|
22
|
+
}
|
|
23
|
+
export interface BindingSelectionCompanionFrameContext {
|
|
24
|
+
selectedShape: ShapeRecord;
|
|
25
|
+
}
|
|
26
|
+
export interface BindingShapeGeometryDependencyContext {
|
|
27
|
+
shape: ShapeRecord;
|
|
28
|
+
role: "from" | "to";
|
|
29
|
+
}
|
|
30
|
+
export declare abstract class BindingUtil<B extends BindingRecordBase = BindingRecordBase> {
|
|
31
|
+
abstract readonly type: B["type"];
|
|
32
|
+
abstract getDefaultProps(): B["props"];
|
|
33
|
+
abstract validateProps(props: unknown): B["props"];
|
|
34
|
+
canBind?(editor: Editor, binding: B, context: BindingEndpointContext): boolean;
|
|
35
|
+
getExclusiveBindingKey?(binding: B): string | null;
|
|
36
|
+
onBindingCreate?(editor: Editor, binding: B): BindingUtilEffect | void;
|
|
37
|
+
onBindingUpdate?(editor: Editor, before: B, after: B): BindingUtilEffect | void;
|
|
38
|
+
onBindingLoad?(editor: Editor, binding: B): BindingUtilEffect | void;
|
|
39
|
+
onAfterShapeChange?(editor: Editor, binding: B, context: BindingShapeChangeContext): BindingUtilEffect | void;
|
|
40
|
+
onBeforeDeleteShape?(editor: Editor, binding: B, context: BindingShapeDeleteContext): BindingUtilEffect | void;
|
|
41
|
+
onBeforeDeleteBinding?(editor: Editor, binding: B): BindingUtilEffect | void;
|
|
42
|
+
getExportShapeIds?(editor: Editor, binding: B): ShapeRecord["id"][];
|
|
43
|
+
getGeometryDependentShapeIds?(editor: Editor, binding: B, context: BindingShapeGeometryDependencyContext): ShapeRecord["id"][];
|
|
44
|
+
getSelectionCompanionFrameGeometries?(editor: Editor, binding: B, context: BindingSelectionCompanionFrameContext): SelectionOverlayFrameGeometryState[];
|
|
45
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { BindingRecordBase } from "../schema/records";
|
|
2
|
+
import { BindingUtil } from "./bindingUtil";
|
|
3
|
+
export declare class BindingUtilRegistry {
|
|
4
|
+
private readonly registry;
|
|
5
|
+
register<B extends BindingRecordBase>(util: BindingUtil<B>): void;
|
|
6
|
+
values(): IterableIterator<BindingUtil>;
|
|
7
|
+
get<B extends BindingRecordBase>(type: B["type"]): BindingUtil<B>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Vec } from "../geometry/vec";
|
|
2
|
+
import type { Editor } from "../editor/editor";
|
|
3
|
+
import type { BindingPreviewState } from "../editor/selection";
|
|
4
|
+
import type { ShapeId } from "../schema/records";
|
|
5
|
+
export interface ConnectionPoint {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
}
|
|
9
|
+
export type ConnectionTerminal = "start" | "end";
|
|
10
|
+
export interface TerminalBindingTargetInput {
|
|
11
|
+
targetShapeId: ShapeId;
|
|
12
|
+
normalizedAnchor: ConnectionPoint;
|
|
13
|
+
}
|
|
14
|
+
export interface ResolvedTerminalBinding {
|
|
15
|
+
pagePoint: Vec;
|
|
16
|
+
binding: TerminalBindingTargetInput | null;
|
|
17
|
+
preview: BindingPreviewState | null;
|
|
18
|
+
}
|
|
19
|
+
export interface TerminalBindingResolverInput {
|
|
20
|
+
terminal: ConnectionTerminal;
|
|
21
|
+
rawPagePoint: Vec;
|
|
22
|
+
oppositePagePoint: Vec;
|
|
23
|
+
excludeShapeId?: ShapeId;
|
|
24
|
+
ignoreTargets?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export type TerminalBindingResolver = (editor: Editor, input: TerminalBindingResolverInput) => ResolvedTerminalBinding;
|
|
27
|
+
export declare function getFreeTerminalBinding({ rawPagePoint, }: TerminalBindingResolverInput): ResolvedTerminalBinding;
|
|
28
|
+
export declare function resolveTerminalBindingAtPoint(editor: Editor, input: TerminalBindingResolverInput): ResolvedTerminalBinding;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ChangeSource } from "../../store/index";
|
|
2
|
+
import { Vec } from "../geometry/vec";
|
|
3
|
+
import type { AssetId, AssetRecord, BindingRecord, ShapeId, ShapeRecord } from "../schema/records";
|
|
4
|
+
import type { Editor } from "./editor";
|
|
5
|
+
export interface EditorClipboardPayload {
|
|
6
|
+
type: "land/clipboard";
|
|
7
|
+
version: 1;
|
|
8
|
+
source: {
|
|
9
|
+
app: "land";
|
|
10
|
+
documentId?: string;
|
|
11
|
+
};
|
|
12
|
+
rootShapeIds: readonly ShapeId[];
|
|
13
|
+
records: {
|
|
14
|
+
shapes: readonly ShapeRecord[];
|
|
15
|
+
bindings: readonly BindingRecord[];
|
|
16
|
+
assets: readonly AssetRecord[];
|
|
17
|
+
};
|
|
18
|
+
bounds: {
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
w: number;
|
|
22
|
+
h: number;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface ClipboardAssetSidecar {
|
|
26
|
+
assetId: AssetId;
|
|
27
|
+
kind: "local-image-blob";
|
|
28
|
+
storageKey: string;
|
|
29
|
+
}
|
|
30
|
+
export interface PasteClipboardPayloadInput {
|
|
31
|
+
payload: EditorClipboardPayload;
|
|
32
|
+
pagePoint?: Vec;
|
|
33
|
+
offset?: Vec;
|
|
34
|
+
source?: ChangeSource;
|
|
35
|
+
}
|
|
36
|
+
export interface DuplicateSelectionInput {
|
|
37
|
+
offset?: Vec;
|
|
38
|
+
source?: ChangeSource;
|
|
39
|
+
}
|
|
40
|
+
export declare function isEditorClipboardPayload(value: unknown): value is EditorClipboardPayload;
|
|
41
|
+
export declare function createEditorClipboardPayloadFromSelection(editor: Editor): EditorClipboardPayload | null;
|
|
42
|
+
export declare function pasteEditorClipboardPayload(editor: Editor, input: PasteClipboardPayloadInput): ShapeId[];
|
|
43
|
+
export declare function duplicateEditorSelection(editor: Editor, input?: DuplicateSelectionInput): ShapeId[];
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import type { Editor } from "./editor";
|
|
2
|
+
import type { ChangeSource } from "../../store/index";
|
|
3
|
+
import type { AssetId, AssetRecord, AssetRecordBase, BindingId, BindingRecordBase, BindingRecord, Camera, PageId, PageRecord, ShapeId, ShapeParentId, ShapeRecordBase, ShapeRecord, ShapeEditingEntryMode } from "../schema/records";
|
|
4
|
+
export interface EditorCommandOptions {
|
|
5
|
+
source?: ChangeSource;
|
|
6
|
+
}
|
|
7
|
+
export interface CreateShapeInput {
|
|
8
|
+
type: ShapeRecordBase["type"];
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
props?: Record<string, unknown>;
|
|
12
|
+
parentId?: ShapeParentId;
|
|
13
|
+
index?: string;
|
|
14
|
+
opacity?: number;
|
|
15
|
+
isHidden?: boolean;
|
|
16
|
+
rotation?: number;
|
|
17
|
+
scaleX?: number;
|
|
18
|
+
scaleY?: number;
|
|
19
|
+
isLocked?: boolean;
|
|
20
|
+
meta?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
export interface CreateAssetInput {
|
|
23
|
+
id?: AssetId;
|
|
24
|
+
type: AssetRecordBase["type"];
|
|
25
|
+
props?: Record<string, unknown>;
|
|
26
|
+
meta?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
export interface UpdateAssetInput {
|
|
29
|
+
id: AssetId;
|
|
30
|
+
props?: Record<string, unknown>;
|
|
31
|
+
meta?: Record<string, unknown>;
|
|
32
|
+
}
|
|
33
|
+
export interface ShapeUpdate {
|
|
34
|
+
id: ShapeId;
|
|
35
|
+
x?: number;
|
|
36
|
+
y?: number;
|
|
37
|
+
rotation?: number;
|
|
38
|
+
scaleX?: number;
|
|
39
|
+
scaleY?: number;
|
|
40
|
+
opacity?: number;
|
|
41
|
+
isHidden?: boolean;
|
|
42
|
+
isLocked?: boolean;
|
|
43
|
+
parentId?: ShapeParentId;
|
|
44
|
+
index?: string;
|
|
45
|
+
props?: Record<string, unknown>;
|
|
46
|
+
}
|
|
47
|
+
export interface ReparentShapesInput {
|
|
48
|
+
ids: ShapeId[];
|
|
49
|
+
parentId: ShapeParentId;
|
|
50
|
+
}
|
|
51
|
+
export interface StartEditingShapeInput {
|
|
52
|
+
shapeId: ShapeId;
|
|
53
|
+
entryMode?: ShapeEditingEntryMode;
|
|
54
|
+
caretPagePoint?: {
|
|
55
|
+
x: number;
|
|
56
|
+
y: number;
|
|
57
|
+
};
|
|
58
|
+
markId?: string;
|
|
59
|
+
reuseExistingMark?: boolean;
|
|
60
|
+
preserveInteraction?: boolean;
|
|
61
|
+
}
|
|
62
|
+
export interface CreateBindingInput {
|
|
63
|
+
id?: BindingId;
|
|
64
|
+
type: BindingRecordBase["type"];
|
|
65
|
+
fromId: ShapeId;
|
|
66
|
+
toId: ShapeId;
|
|
67
|
+
props?: Record<string, unknown>;
|
|
68
|
+
meta?: Record<string, unknown>;
|
|
69
|
+
}
|
|
70
|
+
export interface UpdateBindingInput {
|
|
71
|
+
id: BindingId;
|
|
72
|
+
fromId?: ShapeId;
|
|
73
|
+
toId?: ShapeId;
|
|
74
|
+
props?: Record<string, unknown>;
|
|
75
|
+
meta?: Record<string, unknown>;
|
|
76
|
+
}
|
|
77
|
+
export interface CreatePageInput {
|
|
78
|
+
name?: string;
|
|
79
|
+
index?: string;
|
|
80
|
+
meta?: Record<string, unknown>;
|
|
81
|
+
}
|
|
82
|
+
export interface RenamePageInput {
|
|
83
|
+
id: PageId;
|
|
84
|
+
name: string;
|
|
85
|
+
}
|
|
86
|
+
export interface MovePageInput {
|
|
87
|
+
id: PageId;
|
|
88
|
+
toIndex: number;
|
|
89
|
+
}
|
|
90
|
+
export interface SetCameraInput {
|
|
91
|
+
pageId?: PageId;
|
|
92
|
+
camera: Partial<Camera>;
|
|
93
|
+
}
|
|
94
|
+
export interface EditorCommands {
|
|
95
|
+
createPage(input?: CreatePageInput, options?: EditorCommandOptions): PageRecord;
|
|
96
|
+
deletePage(id: PageId, options?: EditorCommandOptions): boolean;
|
|
97
|
+
renamePage(input: RenamePageInput, options?: EditorCommandOptions): void;
|
|
98
|
+
movePage(input: MovePageInput, options?: EditorCommandOptions): void;
|
|
99
|
+
createShapes(inputs: CreateShapeInput[], options?: EditorCommandOptions): ShapeRecord[];
|
|
100
|
+
/**
|
|
101
|
+
* Persist already-built shape records (with their existing ids) through the
|
|
102
|
+
* command pipeline. Used by paste/duplicate where ids must be assigned before
|
|
103
|
+
* parent/binding remapping. Prefer `createShapes` for fresh shapes.
|
|
104
|
+
*/
|
|
105
|
+
createShapesFromRecords(records: ShapeRecord[], options?: EditorCommandOptions): ShapeRecord[];
|
|
106
|
+
updateShapes(updates: ShapeUpdate[], options?: EditorCommandOptions): void;
|
|
107
|
+
/**
|
|
108
|
+
* Move shapes to a new parent, appending shapes that are entering that parent
|
|
109
|
+
* to the end of its child order in the order provided by `ids`.
|
|
110
|
+
*/
|
|
111
|
+
reparentShapes(input: ReparentShapesInput, options?: EditorCommandOptions): void;
|
|
112
|
+
deleteShapes(ids: ShapeId[], options?: EditorCommandOptions): void;
|
|
113
|
+
createAsset(input: CreateAssetInput, options?: EditorCommandOptions): AssetRecord;
|
|
114
|
+
/**
|
|
115
|
+
* Persist already-built asset records (with their existing ids) through the
|
|
116
|
+
* command pipeline. Used by paste/duplicate. Prefer `createAsset` otherwise.
|
|
117
|
+
*/
|
|
118
|
+
createAssetsFromRecords(records: AssetRecord[], options?: EditorCommandOptions): AssetRecord[];
|
|
119
|
+
updateAsset(input: UpdateAssetInput, options?: EditorCommandOptions): AssetRecord | null;
|
|
120
|
+
deleteAsset(id: AssetId, options?: EditorCommandOptions): boolean;
|
|
121
|
+
createBinding(input: CreateBindingInput, options?: EditorCommandOptions): BindingRecord;
|
|
122
|
+
updateBinding(input: UpdateBindingInput, options?: EditorCommandOptions): BindingRecord | null;
|
|
123
|
+
deleteBinding(id: BindingId, options?: EditorCommandOptions): boolean;
|
|
124
|
+
setCurrentPageId(id: PageId, options?: EditorCommandOptions): void;
|
|
125
|
+
setCamera(input: SetCameraInput, options?: EditorCommandOptions): void;
|
|
126
|
+
setSelectedShapeIds(ids: ShapeId[], options?: EditorCommandOptions): void;
|
|
127
|
+
setActiveTool(toolId: string, options?: EditorCommandOptions): void;
|
|
128
|
+
setToolLocked(locked: boolean, options?: EditorCommandOptions): void;
|
|
129
|
+
}
|
|
130
|
+
export declare function createEditorCommands(editor: Editor): EditorCommands;
|
|
131
|
+
export declare function reparentShapeToContainingParent(editor: Editor, shapeId: ShapeId, options?: EditorCommandOptions): void;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type LandEditorPlugin } from "../plugins";
|
|
2
|
+
import { Editor, type EditorOptions } from "./editor";
|
|
3
|
+
export interface CreateEditorWithPluginsOptions extends Omit<EditorOptions, "shapeUtils" | "shapeSvgExporters" | "bindingUtils" | "shapeCapabilities"> {
|
|
4
|
+
editorPlugins?: readonly LandEditorPlugin[];
|
|
5
|
+
}
|
|
6
|
+
export declare function createEditorWithPlugins(options?: CreateEditorWithPluginsOptions): Editor;
|