@weasel-js/core 1.11.0 → 1.11.1
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/CHANGELOG.md +427 -0
- package/README.md +1 -1
- package/dist/animation/index.js +3 -3
- package/dist/animation/rig/bindRig.js +1 -1
- package/dist/animation/rig/rigNode.js.map +1 -1
- package/dist/barrel/canvas.js +7 -3
- package/dist/barrel/interactions.js +5 -4
- package/dist/barrel/paths.js +3 -3
- package/dist/barrel/renderer.js +3 -2
- package/dist/barrel/routing.js +6 -11
- package/dist/barrel/scene.js +8 -5
- package/dist/barrel/viewport.js +4 -3
- package/dist/canvas/Canvas.js +3 -1
- package/dist/canvas/Canvas.js.map +1 -1
- package/dist/canvas/SceneCanvas/SceneCanvasInput.js +17 -3
- package/dist/canvas/SceneCanvas/SceneCanvasInput.js.map +1 -1
- package/dist/canvas/SceneCanvas/builtinToolSets.js +30 -0
- package/dist/canvas/SceneCanvas/builtinToolSets.js.map +1 -0
- package/dist/canvas/SceneCanvas/canvasPassThrough.js +1 -0
- package/dist/canvas/SceneCanvas/canvasPassThrough.js.map +1 -1
- package/dist/canvas/SceneCanvas/coordTrace.js +5 -16
- package/dist/canvas/SceneCanvas/coordTrace.js.map +1 -1
- package/dist/canvas/SceneCanvas/defaultNodeProperties.js +5 -0
- package/dist/canvas/SceneCanvas/defaultNodeProperties.js.map +1 -1
- package/dist/canvas/SceneCanvas/features.js +45 -5
- package/dist/canvas/SceneCanvas/features.js.map +1 -1
- package/dist/canvas/SceneCanvas/props.js +1 -11
- package/dist/canvas/SceneCanvas/props.js.map +1 -1
- package/dist/canvas/SceneCanvas/toolRegistry.js +8 -4
- package/dist/canvas/SceneCanvas/toolRegistry.js.map +1 -1
- package/dist/canvas/SceneCanvas/useActionsPropResolver.js +1 -11
- package/dist/canvas/SceneCanvas/useActionsPropResolver.js.map +1 -1
- package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js.map +1 -1
- package/dist/canvas/SceneCanvas/useBuiltinTools.js +2 -9
- package/dist/canvas/SceneCanvas/useBuiltinTools.js.map +1 -1
- package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js +93 -0
- package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js.map +1 -0
- package/dist/canvas/SceneCanvas/useCanvasSelection.js +7 -2
- package/dist/canvas/SceneCanvas/useCanvasSelection.js.map +1 -1
- package/dist/canvas/SceneCanvas/useCanvasTools.js +8 -8
- package/dist/canvas/SceneCanvas/useCanvasTools.js.map +1 -1
- package/dist/canvas/SceneCanvas/useNodeKinds.js +1 -1
- package/dist/canvas/SceneCanvas/useNodeKinds.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js +13 -2
- package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneCanvasTools.js +1 -3
- package/dist/canvas/SceneCanvas/useSceneCanvasTools.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneChrome.js +6 -7
- package/dist/canvas/SceneCanvas/useSceneChrome.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js +5 -3
- package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js.map +1 -1
- package/dist/canvas/SceneCanvas/useScenePicking.js +2 -3
- package/dist/canvas/SceneCanvas/useScenePicking.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneSelectTool.js +2 -1
- package/dist/canvas/SceneCanvas/useSceneSelectTool.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneStandardActions.js +3 -4
- package/dist/canvas/SceneCanvas/useSceneStandardActions.js.map +1 -1
- package/dist/canvas/SceneCanvas.js +16 -14
- package/dist/canvas/SceneCanvas.js.map +1 -1
- package/dist/canvas/SurfaceCanvas.js +5 -22
- package/dist/canvas/SurfaceCanvas.js.map +1 -1
- package/dist/canvas/canvasRenderer.js +9 -5
- package/dist/canvas/canvasRenderer.js.map +1 -1
- package/dist/canvas/contextAttributes.js +14 -0
- package/dist/canvas/contextAttributes.js.map +1 -0
- package/dist/canvas/deps/editAnchors.js +9 -113
- package/dist/canvas/deps/editAnchors.js.map +1 -1
- package/dist/canvas/deps/insert.js +4 -2
- package/dist/canvas/deps/insert.js.map +1 -1
- package/dist/canvas/deps/pathEditCommits.js +193 -0
- package/dist/canvas/deps/pathEditCommits.js.map +1 -0
- package/dist/canvas/deps/snap.js +12 -9
- package/dist/canvas/deps/snap.js.map +1 -1
- package/dist/canvas/deps/transformFollowers.js +20 -0
- package/dist/canvas/deps/transformFollowers.js.map +1 -0
- package/dist/canvas/derivedPath.js +20 -1
- package/dist/canvas/derivedPath.js.map +1 -1
- package/dist/canvas/drawnBounds.js +29 -3
- package/dist/canvas/drawnBounds.js.map +1 -1
- package/dist/canvas/nodeShapes/derivedPainter.js +9 -1
- package/dist/canvas/nodeShapes/derivedPainter.js.map +1 -1
- package/dist/canvas/nodeShapes/pathPainter.js +3 -2
- package/dist/canvas/nodeShapes/pathPainter.js.map +1 -1
- package/dist/canvas/nodeShapes/shapePainter.js +1 -1
- package/dist/canvas/overlayRoleStrokes.js +12 -0
- package/dist/canvas/overlayRoleStrokes.js.map +1 -1
- package/dist/canvas/pathOverlay.js +27 -7
- package/dist/canvas/pathOverlay.js.map +1 -1
- package/dist/canvas/renderDebugSnapshot.js +1 -0
- package/dist/canvas/renderDebugSnapshot.js.map +1 -1
- package/dist/canvas/renderSceneToPixels.js +6 -5
- package/dist/canvas/renderSceneToPixels.js.map +1 -1
- package/dist/canvas/sceneAdapter.js.map +1 -1
- package/dist/canvas/useCanvasPaint.js +2 -1
- package/dist/canvas/useCanvasPaint.js.map +1 -1
- package/dist/canvas/useInFlightBounds.js +52 -0
- package/dist/canvas/useInFlightBounds.js.map +1 -0
- package/dist/canvas/useViewHelpers.js +7 -9
- package/dist/canvas/useViewHelpers.js.map +1 -1
- package/dist/clipboard.d.ts +3 -2
- package/dist/{clone-DZDrfIlU.d.ts → clone-C3e0OTuF.d.ts} +8 -21
- package/dist/clone.d.ts +4 -3
- package/dist/core/geometry/autoPoseDescriptor.js +1 -1
- package/dist/core/ops/setDependsOn.js +37 -0
- package/dist/core/ops/setDependsOn.js.map +1 -0
- package/dist/core/ops/writtenBy.js +53 -0
- package/dist/core/ops/writtenBy.js.map +1 -0
- package/dist/core/pages/fitViewToPage.js +12 -1
- package/dist/core/pages/fitViewToPage.js.map +1 -1
- package/dist/core/pages/pageEdits.js +164 -0
- package/dist/core/pages/pageEdits.js.map +1 -0
- package/dist/core/pages/pages.js +30 -1
- package/dist/core/pages/pages.js.map +1 -1
- package/dist/core/scene/NodeRouting.js +8 -3
- package/dist/core/scene/NodeRouting.js.map +1 -1
- package/dist/core/scene/arrivalWindow.js.map +1 -1
- package/dist/core/scene/carryDescendants.js +51 -0
- package/dist/core/scene/carryDescendants.js.map +1 -0
- package/dist/core/scene/docValues.js +57 -0
- package/dist/core/scene/docValues.js.map +1 -0
- package/dist/core/scene/editPass.js +111 -0
- package/dist/core/scene/editPass.js.map +1 -0
- package/dist/core/scene/effectivePose.js +7 -1
- package/dist/core/scene/effectivePose.js.map +1 -1
- package/dist/core/scene/fieldEdits.js +4 -1
- package/dist/core/scene/fieldEdits.js.map +1 -1
- package/dist/core/scene/historyFacade.js +1 -0
- package/dist/core/scene/historyFacade.js.map +1 -1
- package/dist/core/scene/layoutPass.js +28 -3
- package/dist/core/scene/layoutPass.js.map +1 -1
- package/dist/core/scene/recorder.js +28 -19
- package/dist/core/scene/recorder.js.map +1 -1
- package/dist/core/scene/scene.js +15 -9
- package/dist/core/scene/scene.js.map +1 -1
- package/dist/core/scene/sceneChanges.js +13 -0
- package/dist/core/scene/sceneChanges.js.map +1 -0
- package/dist/core/scene/sceneEdits.js +8 -1
- package/dist/core/scene/sceneEdits.js.map +1 -1
- package/dist/core/scene/sceneMutators.js +1 -0
- package/dist/core/scene/sceneMutators.js.map +1 -1
- package/dist/core/scene/sceneRecording.js +20 -3
- package/dist/core/scene/sceneRecording.js.map +1 -1
- package/dist/core/scene/sceneSelection.js +4 -1
- package/dist/core/scene/sceneSelection.js.map +1 -1
- package/dist/core/scene/sceneState.js +11 -5
- package/dist/core/scene/sceneState.js.map +1 -1
- package/dist/core/scene/serialization.js +5 -3
- package/dist/core/scene/serialization.js.map +1 -1
- package/dist/core/scene/types.js.map +1 -1
- package/dist/core/scene/unitScopes.js +19 -1
- package/dist/core/scene/unitScopes.js.map +1 -1
- package/dist/core/selection/usePublishSceneSelection.js +6 -12
- package/dist/core/selection/usePublishSceneSelection.js.map +1 -1
- package/dist/core/shapeKinds.js +25 -11
- package/dist/core/shapeKinds.js.map +1 -1
- package/dist/{cornerHandles-Camw_yeu.d.ts → cornerHandles-BHuoMs1o.d.ts} +1 -1
- package/dist/debug/createDebugOverlayLayer.js +16 -111
- package/dist/debug/createDebugOverlayLayer.js.map +1 -1
- package/dist/debug/createDebugSink.js +2 -1
- package/dist/debug/createDebugSink.js.map +1 -1
- package/dist/debug/defaultTheme.js +4 -2
- package/dist/debug/defaultTheme.js.map +1 -1
- package/dist/debug/features.js +17 -0
- package/dist/debug/features.js.map +1 -0
- package/dist/debug/overlayPanels.js +117 -0
- package/dist/debug/overlayPanels.js.map +1 -0
- package/dist/debug/parseDebugFlags.js +4 -13
- package/dist/debug/parseDebugFlags.js.map +1 -1
- package/dist/{depSchema-Cgfu_G9s.d.ts → depSchema-BpZNOv7q.d.ts} +114 -892
- package/dist/devtools/handlers.js +112 -0
- package/dist/devtools/handlers.js.map +1 -0
- package/dist/devtools/history.js +71 -0
- package/dist/devtools/history.js.map +1 -0
- package/dist/devtools/hook.js +74 -0
- package/dist/devtools/hook.js.map +1 -0
- package/dist/devtools/label.js +25 -0
- package/dist/devtools/label.js.map +1 -0
- package/dist/devtools/notices.js +58 -0
- package/dist/devtools/notices.js.map +1 -0
- package/dist/devtools/protocol.js +7 -0
- package/dist/devtools/protocol.js.map +1 -0
- package/dist/devtools/registry.js +90 -0
- package/dist/devtools/registry.js.map +1 -0
- package/dist/devtools/root.js +80 -0
- package/dist/devtools/root.js.map +1 -0
- package/dist/devtools/serialize.js +86 -0
- package/dist/devtools/serialize.js.map +1 -0
- package/dist/devtools/session.js +111 -0
- package/dist/devtools/session.js.map +1 -0
- package/dist/devtools/transport.js +67 -0
- package/dist/devtools/transport.js.map +1 -0
- package/dist/devtools/useDevtoolsRoot.js +81 -0
- package/dist/devtools/useDevtoolsRoot.js.map +1 -0
- package/dist/devtools-protocol.d.ts +435 -0
- package/dist/devtools-protocol.js +7 -0
- package/dist/devtools.d.ts +8 -0
- package/dist/devtools.js +12 -0
- package/dist/devtools.js.map +1 -0
- package/dist/features/chrome-caps/useHoverTracking.js +16 -10
- package/dist/features/chrome-caps/useHoverTracking.js.map +1 -1
- package/dist/features/ingestion/contentHandlers.js +25 -2
- package/dist/features/ingestion/contentHandlers.js.map +1 -1
- package/dist/features/measure/measureCommands.js +7 -5
- package/dist/features/measure/measureCommands.js.map +1 -1
- package/dist/features/paths/index.js +2 -2
- package/dist/features/paths/pathEditExtension.js.map +1 -1
- package/dist/features/paths/pathSnap/pathSnapSource.js +5 -5
- package/dist/features/paths/pathSnap/pathSnapSource.js.map +1 -1
- package/dist/features/paths/pathSnap/sceneIndex.js +10 -3
- package/dist/features/paths/pathSnap/sceneIndex.js.map +1 -1
- package/dist/features/selection/selectionPose.js +4 -1
- package/dist/features/selection/selectionPose.js.map +1 -1
- package/dist/features/snap/gather.js +9 -1
- package/dist/features/snap/gather.js.map +1 -1
- package/dist/features/snap/lazySession.js +17 -0
- package/dist/features/snap/lazySession.js.map +1 -0
- package/dist/features/snap/marks.js.map +1 -1
- package/dist/features/snap/probes2d.js +27 -19
- package/dist/features/snap/probes2d.js.map +1 -1
- package/dist/features/snap/readoutLayer.js.map +1 -1
- package/dist/features/snap/roles.js +2 -1
- package/dist/features/snap/roles.js.map +1 -1
- package/dist/features/snap/rotationSource.js +25 -8
- package/dist/features/snap/rotationSource.js.map +1 -1
- package/dist/features/snap/sceneSession2d.js +6 -4
- package/dist/features/snap/sceneSession2d.js.map +1 -1
- package/dist/features/snap/session2d.js +37 -23
- package/dist/features/snap/session2d.js.map +1 -1
- package/dist/features/snap/spanSnap.js +5 -2
- package/dist/features/snap/spanSnap.js.map +1 -1
- package/dist/icons.table.js +1 -1
- package/dist/icons.table.js.map +1 -1
- package/dist/icons.table.json +0 -10
- package/dist/index.d.ts +701 -696
- package/dist/index.js +35 -29
- package/dist/interactions/actions/align/action.js +6 -4
- package/dist/interactions/actions/align/action.js.map +1 -1
- package/dist/interactions/actions/align/align.js.map +1 -1
- package/dist/interactions/actions/booleans/action.js +7 -1
- package/dist/interactions/actions/booleans/action.js.map +1 -1
- package/dist/interactions/actions/clone/action.js +1 -1
- package/dist/interactions/actions/clone/behaviors.js +4 -4
- package/dist/interactions/actions/clone/behaviors.js.map +1 -1
- package/dist/interactions/actions/defaults/bendSegment.js +1 -1
- package/dist/interactions/actions/defaults/bendSegment.js.map +1 -1
- package/dist/interactions/actions/defaults/createPaintAction.js +1 -1
- package/dist/interactions/actions/defaults/delete.js +48 -39
- package/dist/interactions/actions/defaults/delete.js.map +1 -1
- package/dist/interactions/actions/defaults/duplicate.js +1 -1
- package/dist/interactions/actions/defaults/group.js +2 -2
- package/dist/interactions/actions/defaults/ingest.js +7 -5
- package/dist/interactions/actions/defaults/ingest.js.map +1 -1
- package/dist/interactions/actions/defaults/nudge.js +13 -38
- package/dist/interactions/actions/defaults/nudge.js.map +1 -1
- package/dist/interactions/actions/distribute/action.js +6 -4
- package/dist/interactions/actions/distribute/action.js.map +1 -1
- package/dist/interactions/actions/drawnBoxes.js +2 -1
- package/dist/interactions/actions/drawnBoxes.js.map +1 -1
- package/dist/interactions/actions/edit-anchors/action.js +3 -6
- package/dist/interactions/actions/edit-anchors/action.js.map +1 -1
- package/dist/interactions/actions/edit-anchors/preview.js +41 -8
- package/dist/interactions/actions/edit-anchors/preview.js.map +1 -1
- package/dist/interactions/actions/flip/action.js +6 -4
- package/dist/interactions/actions/flip/action.js.map +1 -1
- package/dist/interactions/actions/gestureLifecycle.js +5 -2
- package/dist/interactions/actions/gestureLifecycle.js.map +1 -1
- package/dist/interactions/actions/insert/action.js +1 -2
- package/dist/interactions/actions/insert/action.js.map +1 -1
- package/dist/interactions/actions/insert/commit.js +1 -1
- package/dist/interactions/actions/insert/parent.js +11 -0
- package/dist/interactions/actions/insert/parent.js.map +1 -0
- package/dist/interactions/actions/insert/placeAction.js +7 -2
- package/dist/interactions/actions/insert/placeAction.js.map +1 -1
- package/dist/interactions/actions/insert/session.js +5 -1
- package/dist/interactions/actions/insert/session.js.map +1 -1
- package/dist/interactions/actions/move/action.js +8 -4
- package/dist/interactions/actions/move/action.js.map +1 -1
- package/dist/interactions/actions/move/behaviors/layoutDrop.js +0 -1
- package/dist/interactions/actions/move/behaviors/layoutDrop.js.map +1 -1
- package/dist/interactions/actions/move/behaviors/snapToContainer.js +1 -1
- package/dist/interactions/actions/move/capture.js +1 -1
- package/dist/interactions/actions/move/commit/index.js +0 -2
- package/dist/interactions/actions/move/commit/index.js.map +1 -1
- package/dist/interactions/actions/move/commit/layoutDrop.js +2 -2
- package/dist/interactions/actions/move/commit/layoutRelease.js +2 -2
- package/dist/interactions/actions/move/commit/reparent.js +11 -5
- package/dist/interactions/actions/move/commit/reparent.js.map +1 -1
- package/dist/interactions/actions/move/frame.js +4 -10
- package/dist/interactions/actions/move/frame.js.map +1 -1
- package/dist/interactions/actions/move/landedDescendants.js +20 -17
- package/dist/interactions/actions/move/landedDescendants.js.map +1 -1
- package/dist/interactions/actions/move/layout/container.js +2 -1
- package/dist/interactions/actions/move/layout/container.js.map +1 -1
- package/dist/interactions/actions/move/layout/dragged.js +1 -1
- package/dist/interactions/actions/move/layout/dropPass.js +18 -1
- package/dist/interactions/actions/move/layout/dropPass.js.map +1 -1
- package/dist/interactions/actions/move/layout/exits.js +5 -5
- package/dist/interactions/actions/move/layout/exits.js.map +1 -1
- package/dist/interactions/actions/move/session.js +14 -3
- package/dist/interactions/actions/move/session.js.map +1 -1
- package/dist/interactions/actions/move/translate.js +8 -37
- package/dist/interactions/actions/move/translate.js.map +1 -1
- package/dist/interactions/actions/moveNodes.js +87 -0
- package/dist/interactions/actions/moveNodes.js.map +1 -0
- package/dist/interactions/actions/planeInput.js.map +1 -1
- package/dist/interactions/actions/resize/action.js +83 -72
- package/dist/interactions/actions/resize/action.js.map +1 -1
- package/dist/interactions/actions/resize/commit.js +2 -1
- package/dist/interactions/actions/resize/commit.js.map +1 -1
- package/dist/interactions/actions/resize/session.js +2 -0
- package/dist/interactions/actions/resize/session.js.map +1 -1
- package/dist/interactions/actions/resolvePreviews.js +3 -3
- package/dist/interactions/actions/resolvePreviews.js.map +1 -1
- package/dist/interactions/actions/rotate/action.js +7 -4
- package/dist/interactions/actions/rotate/action.js.map +1 -1
- package/dist/interactions/actions/rotate/commit.js +2 -1
- package/dist/interactions/actions/rotate/commit.js.map +1 -1
- package/dist/interactions/actions/rotate/session.js +2 -0
- package/dist/interactions/actions/rotate/session.js.map +1 -1
- package/dist/interactions/actions/selectionSubtree.js +13 -2
- package/dist/interactions/actions/selectionSubtree.js.map +1 -1
- package/dist/interactions/actions/testUtils.js.map +1 -1
- package/dist/interactions/actions/transform-again/action.js +5 -6
- package/dist/interactions/actions/transform-again/action.js.map +1 -1
- package/dist/interactions/actions/transformFinish.js +106 -0
- package/dist/interactions/actions/transformFinish.js.map +1 -0
- package/dist/kitSettingsSchema.js +0 -4
- package/dist/kitSettingsSchema.js.map +1 -1
- package/dist/move.d.ts +5 -4
- package/dist/{options-p9GZMXbY.d.ts → options-DBxEryYq.d.ts} +1 -1
- package/dist/resize.d.ts +4 -3
- package/dist/routing.d.ts +1 -1
- package/dist/routing.js +2 -2
- package/dist/test-hook/createTestHook.js +1 -1
- package/dist/test-hook/createTestHook.js.map +1 -1
- package/dist/test-hook/useTestHook.js +2 -1
- package/dist/test-hook/useTestHook.js.map +1 -1
- package/dist/test-seams.d.ts +9 -5
- package/dist/tools/builtin/pen/penHandle.js +3 -5
- package/dist/tools/builtin/pen/penHandle.js.map +1 -1
- package/dist/tools/index.js +26 -0
- package/dist/{types-CHVXGfYm.d.ts → types-7puAuVD2.d.ts} +3 -262
- package/dist/types-BN9hbdMI.d.ts +184 -0
- package/dist/types-CniVctmk.d.ts +949 -0
- package/dist/types-oFeQ5VjV.d.ts +264 -0
- package/dist/version.js +1 -1
- package/package.json +35 -25
- package/dist/canvas/SceneCanvas/useBuiltinRigTools.js +0 -65
- package/dist/canvas/SceneCanvas/useBuiltinRigTools.js.map +0 -1
- package/dist/tools/builtin/bone/boneActions.js +0 -156
- package/dist/tools/builtin/bone/boneActions.js.map +0 -1
- package/dist/tools/builtin/bone/boneOverlay.js +0 -71
- package/dist/tools/builtin/bone/boneOverlay.js.map +0 -1
- package/dist/tools/builtin/bone/placedRig.js +0 -28
- package/dist/tools/builtin/bone/placedRig.js.map +0 -1
- package/dist/tools/builtin/bone/rigEditState.js +0 -30
- package/dist/tools/builtin/bone/rigEditState.js.map +0 -1
- package/dist/tools/builtin/bone/useBoneTool.js +0 -125
- package/dist/tools/builtin/bone/useBoneTool.js.map +0 -1
- package/dist/tools/builtin/weight/useWeightTool.js +0 -101
- package/dist/tools/builtin/weight/useWeightTool.js.map +0 -1
- package/dist/tools/builtin/weight/weightActions.js +0 -140
- package/dist/tools/builtin/weight/weightActions.js.map +0 -1
- package/dist/tools/builtin/weight/weightOverlay.js +0 -78
- package/dist/tools/builtin/weight/weightOverlay.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,24 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
import { View, Scale2, Path, FramedBox, PolygonPath, Point as Point$3, AnchorField, AnchorSet, GlMat3, PlacementAlign, Rect, Affine, PathSnapKind, PathInWorldPose, AnchorFieldValues, NumberEntry, JoinOptions, SegmentHit, AnchorSymmetry, BlendPathsOptions, BendAlongPathOptions, RepeatAlongPathOptions, PoseLinear } from '@weasel-js/geom';
|
|
4
|
-
export { AnchorField, AnchorFieldValues, AnchorPair, AverageAxis, BendAlongPathOptions, BezierEasing, BlendPathsOptions, FramedBox as Bounds, CONSTRAINT_TOLERANCE, CORNER_FIT_TOLERANCE, CORNER_KEYWORDS, ConstrainedPathEdit, ConstraintPoint, CornerFrame, CornerKeyword, CornerPiece, CornerShape, CornerShapeFrame, CornerSpec, DEFAULT_FLATTEN_TOLERANCE, EASINGS, EasingFn, EasingName, EasingSpec, ExtendToMeetOptions, JoinOptions, MeasurePathOptions, NumberEntry, OpenPathEnd, PATH_C, PATH_CMD_LENGTHS, PATH_L, PATH_M, PATH_Q, PATH_SNAP_KINDS, PATH_Z, Path, PathBlend, PathBuilder, PathConstraint, PathConstraintKind, PathCrossing, PathFillRule, PathInWorldPose, PathMeasure, PathSegment, PathSnapHit, PathSnapIndex, PathSnapKind, PathSnapQuery, PathStation, PathStop, PenAnchor, PointAlongPathOptions, PointInPathOptions, PolygonPath, PoseLinear, PoseRotation, Rect, RectPath, RepeatAlongPathOptions, RepeatStation, ResolvedCorners, SPRING_PRESETS, Scale2, SegmentCrossing, SimplifyPathOptions, SmudgePathOptions, SolveConstraintsOptions, SolveConstraintsResult, SpringPreset, SpringPresetName, TrimPathOptions, TrimResult, Point as Vec2, View, ZOOM_FLOOR, asPolygonPath, averageAnchorsAt, bendAlongPath, blendPaths, boundsOfPath, circlePath, composePath, constrainPathEdit, constraintAnchors, cornerAt, cornerFrameAt, cornerFrames, cornerKeywordOf, cornerShapeK, cornerShapePieces, cornerSpecAt, countPathAnchors, createPathSnapIndex, cubicBezierEasing, decomposePath, easeIn, easeInBack, easeInBounce, easeInCirc, easeInCubic, easeInElastic, easeInExpo, easeInOut, easeInOutBack, easeInOutBounce, easeInOutCirc, easeInOutCubic, easeInOutElastic, easeInOutExpo, easeInOutQuad, easeInOutQuart, easeInOutQuint, easeInOutSine, easeInQuad, easeInQuart, easeInQuint, easeInSine, easeOut, easeOutBack, easeOutBounce, easeOutCirc, easeOutCubic, easeOutElastic, easeOutExpo, easeOutQuad, easeOutQuart, easeOutQuint, easeOutSine, ellipsePath, extendToMeet, findPathSnap, flattenCubic, flattenCubicWithArcLen, flattenQuadratic, flattenQuadraticWithArcLen, hasCorners, hasOpenSubpath, intersectSegments, isCornerShape, joinAnchorsAt, lengthenOpenEnd, linePath, linear, meanScale, measurePath, nextCornerShape, openEndRay, openPathEnds, pathAnchorPoints, pathCommandCoordCount, pathContainsPoint, pathContainsPolygon, pathContainsRect, pathCrossings, pathDistanceToPoint, pathFromD, pathInPoseFrame, pathInWorld, pathIntersectsPolygon, pathIntersectsRect, pathSegments, pathSignedArea, pathThroughPoseFrame, pathToAnchors, pointAlongPath, pointInPath, polygonFromPoints, polylineFromPoints, poseFrameInverseOf, poseFrameOf, poseLinearOf, poseRotationOf, prepareBlend, pxExtent, rectMarkerPath, rectPath, regularPolygonPath, remapPerAnchor, repeatAlongPath, resolveCorners, resolveCornersWithSources, resolveEasing, reversePath, rotatePathAround, roundRectPath, scaleDelta, scalePathToBounds, screenAngleOf, simplifyAnchorsAt, simplifyPath, smudgePath, solveConstraints, solvePathConstraints, splitByClosure, splitSubpaths, squarePath, standoff, starPath, stationsAlongPath, transformPath, translatePath, trimPathAt, unionBoundsPath, unsatisfiedConstraints, withCorner, withinPxBox, withinPxRadius, withoutCorners, worldEditToStorage } from '@weasel-js/geom';
|
|
5
|
-
import {
|
|
6
|
-
export { C as ContainerBounds, D as DropRegion,
|
|
1
|
+
import { D as Dims, R as RenderLayer, L as LayerHit, V as ViewAnimationOptions, a as PathEditExtension, h as ViewportDims, F as FitViewToBoundsOptions, i as RedrawSource, j as EditAnchorsParams, I as InertiaConfig, E as EditAnchorsDep, G as GestureLifecycleOptions, k as SliceDep, l as StickyStyle, C as ContentHandlerEntry, A as AnchorMarkerShape, P as PathEditMark, m as ChromeState, n as LayerGroup, S as SnapSource, T as TransformFollower, o as GeometryProjection, p as InsertNodeFactory, q as InsertPaint, r as SvgIngestOptions, s as SceneCanvasSnap, t as Affordance, u as AffordanceRegion, v as AffordanceBinding, w as CommonAffordanceScratch, x as TextOverflow, y as CreateOutlinesAdapter, z as PaintKindEntry, B as PathEditTarget, J as FinishedEditFrame, K as PathSymmetryDep, H as HandleLocks, M as BooleanOpOptions, N as BooleansAdapter, O as BooleanOp, Q as PathPaint, U as BooleanOpResult, W as BooleanStrokes, X as SnapMods, Y as SourceCandidate, Z as SnapProbeAt, $ as SnapCollect, a0 as SnapMark, b as SnapGesture, a1 as SnapDep, a2 as SnapOutcome, f as SnapOutcomeStore, a3 as SnapReadoutStyle } from './depSchema-BpZNOv7q.js';
|
|
2
|
+
export { a4 as AngleCandidate, a5 as AngleCollect, a6 as AnimateToBoundsOptions, a7 as AreaSelectDep, a8 as BooleanOpPreview, a9 as BooleanPreviewPiece, aa as CanDropIntoDep, ab as ClipboardDep, ac as ClipboardIngestCtx, ad as CreateOutlinesResult, ae as CustomPaintContext, af as DEFAULT_LAYER_RETAIN, ag as DecayLoopConfig, ah as FinishedPathEdit, ai as GEOMETRY_BOUND_DATA, aj as HandleLock, ak as HitTestView, al as IngestCtx, am as IngestionDep, an as InsertDep, ao as InsertEnds, ap as InsertExtras, aq as InsertIntoDep, ar as InsertLive, as as LassoSelectDep, at as LayerCommandCache, au as LayerDrawFailure, av as LayerDrawSpan, aw as LayerRetainPolicy, ax as LayoutDep, ay as Locus, az as MinSize, aA as NodeAtPointDep, aB as OutlinePathSpec, aC as PATH_OVERLAY_ROLES, aD as PaintKind, aE as PaintKindEditorProps, aF as PaintKindFamily, aG as PaintKindLoader, aH as PanBounds, aI as PathEditDrag, aJ as PathEditDragStart, aK as PathEditFinishCtx, aL as PathEditHandleMove, aM as PathEditMarksCtx, aN as PathEditOther, aO as PathEditPart, aP as PathEditStore, aQ as PathForm, aR as PathOverlay, aS as PathOverlayOptions, aT as PathOverlayStyle, aU as PathRepresentation, aV as PathTransformFinishCtx, aW as PreviewPathsDep, aX as ResizePolicy, aY as STICKY_DEFAULTS, aZ as SnapBegin, c as SnapConstrain, a_ as SnapEdge, a$ as SnapEdges, e as SnapGeometry, b0 as SnapMarks, b1 as SnapReadoutDep, d as SnapResizeBox, g as SnapSession, b2 as SvgUnpacker, b3 as TextEditDep, b4 as TextNodeData, b5 as TransformPreviewNode, b6 as TransientPath, b7 as VIEW_ANIMATION_KEY, b8 as ViewAnimationApi, b9 as ViewApi, ba as ViewChannel, bb as applyBooleanOp, bc as applyCreateOutlines, bd as asPaint, be as createPathOverlay, bf as createSnapOutcomeStore, bg as depsUnchanged, bh as drawLayers, bi as drawOneLayer, bj as fitViewToBounds, bk as getPaintKind, bl as isLayerPainted, bm as isLayerVisible, bn as listGradientKinds, bo as listPaintKinds, bp as minSizeOf, bq as paintKindOf, br as paintKindRegistry, bs as paintedLayers, bt as paintsLayer, bu as paletteInsertPaint, bv as pathPaintOf, bw as patternFamily, bx as previewBooleanOp, by as registerContentHandler, bz as registerPaintKind, bA as registerPaintKindLoader, bB as seedTile, bC as stickyData, bD as stickyNodeFactory, bE as subscribeToSources, bF as switchGradientKind, bG as textBoxOf, bH as useDecayLoop, bI as useViewAnimation, bJ as useViewAnimationOn, bK as viewAxes, bL as withoutGeometryBoundData } from './depSchema-BpZNOv7q.js';
|
|
3
|
+
import { View, Scale2, Path, FramedBox, PolygonPath, Point as Point$3, AnchorField, AnchorSet, GlMat3, PlacementAlign, Rect, Affine, PathSnapKind, PathInWorldPose, AnchorFieldValues, NumberEntry, JoinOptions, SegmentHit, PointOrigin, AnchorSymmetry, BlendPathsOptions, BendAlongPathOptions, RepeatAlongPathOptions, PoseLinear } from '@weasel-js/geom';
|
|
4
|
+
export { AnchorField, AnchorFieldValues, AnchorPair, AverageAxis, BendAlongPathOptions, BezierEasing, BlendPathsOptions, FramedBox as Bounds, CONSTRAINT_TOLERANCE, CORNER_FIT_TOLERANCE, CORNER_KEYWORDS, ConstrainedPathEdit, ConstraintPoint, CornerFrame, CornerKeyword, CornerPiece, CornerShape, CornerShapeFrame, CornerSpec, DEFAULT_FLATTEN_TOLERANCE, EASINGS, EasingFn, EasingName, EasingSpec, ExtendToMeetOptions, JoinOptions, MeasurePathOptions, NumberEntry, OpenPathEnd, PATH_C, PATH_CMD_LENGTHS, PATH_L, PATH_M, PATH_Q, PATH_SNAP_KINDS, PATH_Z, Path, PathBlend, PathBuilder, PathConstraint, PathConstraintKind, PathCrossing, PathFillRule, PathInWorldPose, PathMeasure, PathSegment, PathSnapHit, PathSnapIndex, PathSnapKind, PathSnapQuery, PathStation, PathStop, PenAnchor, PointAlongPathOptions, PointInPathOptions, PolygonPath, PoseLinear, PoseRotation, Rect, RectPath, RepeatAlongPathOptions, RepeatStation, ResolvedCorners, SPRING_PRESETS, Scale2, SegmentCrossing, SimplifyPathOptions, SmudgePathOptions, SolveConstraintsOptions, SolveConstraintsResult, SpringPreset, SpringPresetName, TrimPathOptions, TrimResult, Point as Vec2, View, ZOOM_FLOOR, asPolygonPath, averageAnchorsAt, bendAlongPath, blendPaths, boundsOfPath, circlePath, composePath, constrainPathEdit, constraintAnchors, cornerAt, cornerFrameAt, cornerFrames, cornerKeywordOf, cornerShapeK, cornerShapePieces, cornerSpecAt, countPathAnchors, createPathSnapIndex, cubicBezierEasing, decomposePath, easeIn, easeInBack, easeInBounce, easeInCirc, easeInCubic, easeInElastic, easeInExpo, easeInOut, easeInOutBack, easeInOutBounce, easeInOutCirc, easeInOutCubic, easeInOutElastic, easeInOutExpo, easeInOutQuad, easeInOutQuart, easeInOutQuint, easeInOutSine, easeInQuad, easeInQuart, easeInQuint, easeInSine, easeOut, easeOutBack, easeOutBounce, easeOutCirc, easeOutCubic, easeOutElastic, easeOutExpo, easeOutQuad, easeOutQuart, easeOutQuint, easeOutSine, ellipsePath, extendToMeet, findPathSnap, flattenCubic, flattenCubicWithArcLen, flattenQuadratic, flattenQuadraticWithArcLen, hasCorners, hasOpenSubpath, intersectSegments, isCornerShape, joinAnchorsAt, lengthenOpenEnd, linePath, linear, meanScale, measurePath, nextCornerShape, openEndRay, openPathEnds, pathAnchorPoints, pathCommandCoordCount, pathContainsPoint, pathContainsPolygon, pathContainsRect, pathCrossings, pathDistanceToPoint, pathFromD, pathInPoseFrame, pathInWorld, pathIntersectsPolygon, pathIntersectsRect, pathSegments, pathSignedArea, pathThroughPoseFrame, pathToAnchors, pathToD, pointAlongPath, pointInPath, polygonFromPoints, polylineFromPoints, poseFrameInverseOf, poseFrameOf, poseLinearOf, poseRotationOf, prepareBlend, pxExtent, rectMarkerPath, rectPath, regularPolygonPath, remapPerAnchor, repeatAlongPath, resolveCorners, resolveCornersWithSources, resolveEasing, reversePath, rotatePathAround, roundRectPath, scaleDelta, scalePathToBounds, screenAngleOf, simplifyAnchorsAt, simplifyPath, smudgePath, solveConstraints, solvePathConstraints, splitByClosure, splitSubpaths, squarePath, standoff, starPath, stationsAlongPath, transformPath, translatePath, trimPathAt, unionBoundsPath, unsatisfiedConstraints, withCorner, withinPxBox, withinPxRadius, withoutCorners, worldEditToStorage } from '@weasel-js/geom';
|
|
5
|
+
import { a as PlaneMap, L as LayoutStrategy, R as ReflowTransition, b as LayoutDropTargetMode } from './types-7puAuVD2.js';
|
|
6
|
+
export { C as ContainerBounds, D as DropRegion, c as DropTarget, d as LayoutArrival, e as LayoutChild, f as LayoutContainer, g as LayoutDragged, h as LayoutSnap, P as ParallaxOpts, i as ReflowGlideOptions, S as ScalarOrXY, j as deriveParallaxView, k as fromPlane, p as planeMap, l as planeMatrix, m as planeToPlane, r as rectFromPlane, n as rectToPlane, t as toPlane } from './types-7puAuVD2.js';
|
|
7
7
|
export { DEFAULT_ALPHA_DECAY, DEFAULT_ALPHA_MIN, DEFAULT_VELOCITY_DECAY, Simulation, SimulationCore, SimulationForce, SimulationNode, SimulationOptions, UseSimulationOptions, createSimulation } from '@weasel-js/simulation';
|
|
8
8
|
export { useSimulation } from '@weasel-js/simulation/react';
|
|
9
|
-
import {
|
|
10
|
-
export {
|
|
11
|
-
import
|
|
12
|
-
|
|
9
|
+
import { R as RectPose, a as SystemLayerSpec, A as AddNodeSpec, b as RegisteredOp, c as SceneRegistry, P as PoseComposition, L as LayoutFrame, N as Node, d as PoseAdapter, S as Scene, e as PoseRemoval, f as PoseWrite, g as ScenePoseReports, h as PoseOverrides, i as SerializedScene, D as DerivePoseFn, j as DerivePathFn, k as DerivedDep } from './types-CniVctmk.js';
|
|
10
|
+
export { l as AddLayerSpec, B as Bivariant, C as ClipFromPoseFn, m as ContainerNode, n as CopiesFromPoseFn, I as IDENTITY_POSE_COMPOSITION, o as LayerRecord, p as LayoutMove, q as LeafNode, r as PoseClosure, s as PoseHold, t as PoseOverride, u as PoseWriteOrigin, v as RemovedNode, w as SCENE_HISTORY_FORM, x as SceneArrivalHandler, y as SceneBatchOptions, z as SceneDoc, E as SceneDocValues, F as SceneEditPass, G as SceneEditPassOptions, H as SceneEditSummary, J as SerializedDoc, K as SerializedLayer, M as SerializedNode, O as SerializedSceneHistory, Q as SystemLayerRecord, U as UserLayerRecord, T as asNodeId, V as composeWorldPose, W as composesFrames, X as rebaseLocalPose } from './types-CniVctmk.js';
|
|
11
|
+
import { NodeId, SelectionMode, SelectionExtendKey, SelectionApi, IngestItem, OngoingOverlay, PointerSessionCancelReason, DeviceProfile, Bounds, Tool as Tool$1, Contribution as Contribution$1, ContributionChrome as ContributionChrome$1, ToolDef as ToolDef$1, DepName, DepSchema, Action, ActionDeps, GestureBinding, AffordanceHit, ActionDisabledReason, ToolKeybinding, HotkeyTrigger, ModifierState, RuleCtx, Rule, DebugSink, ToolSet, ToolEntry, ActionTunings, ActionsProp, OverlayRole, ResizeAnchor, InvocationCtx, OngoingHandle } from '@weasel-js/routing';
|
|
12
|
+
export { ALWAYS, Action, ActionDeps, ActionDisabledReason, ActionDisabledReasonValue, ActionDispatch, ActionEnabledResult, ActionEntry, ActionItem, ActionParamSchema, ActionParams, ActionPresentation, ActionSettings, ActionSettingsState, ActionShortcut, ActionTuning, ActionTunings, ActionVariant, ActionsProp, ActionsRegistry, AffordanceHit, AssemblyInputs, BindingOpts, BindingScope, BindingSource, BoundGesture, BuildRuleCtxArgs, COARSE_TARGET_SCALE, CONTROL_SELECTOR, Carried, Carry, CarryCallbacks, CarryPayload, CarryPointer, CarryStage, ContributionDeps, ContributionRouting, DEFAULT_ALLOWED_CAPABILITIES, DEFAULT_DEVICE_PROFILE, DRAG_THRESHOLD_PX, DebugSink, DepListing, DepName, DepRegistry, DepSchema, DepSource, DetectedDeviceFacts, DeviceProfile, DispatchRecord, DispatchRecordInput, Dispatcher, DispatcherContext, DragSample, DroppedCandidate, Eligibility, EligibilityState, GestureBinding, GestureKitSettings, HandleKind, HitShape, HotkeyTrigger, ImmediateInvoker, IngestItem, InputEvent, InvocationCtx, Invoker, KeyBinding, KeyReach, LONG_PRESS_MS, LongPressOptions, LongPressState, LongPressStore, MatchResult, MenuDef, MenuHit, MenuHost, MenuOpenRequest, MenuSources, ModeShortcutHandlers, ModifierRole, ModifierRoles, ModifierState, NEVER, NodeId, OngoingHandle, OngoingInvoker, OngoingOverlay, OpenMenu, OverlayPosition, OverlayRole, PendingLongPress, PlacedBy, Point2, PointerSession, PointerSessionCallbacks, PointerSessionCancelReason, PointerSessionOptions, RankedCandidate, RecordCandidate, ResizeAnchor, ResolveAllOptions, ResolveOnlyResult, ResolvedCandidate, RoleKeys, RoleRebinds, Rule, RuleCtx, ScopedBinding, ScratchKey, ScratchStore, SelectionApi, SelectionExtendKey, SelectionMode, Selector, SpecificityPart, ToolEntry, ToolKeybinding, ToolModifiers, ToolPresentation, ToolSet, ToolSlot, TunedBinding, UiOngoingControl, ViewportGestureKind, WalkStep, actionBindings, actionCursor, actionItemTitle, actionItems, actionSettingsParams, actionShortcuts, actionsTagged, activatesFocusedControl, assembleEntries, buildDepsFromRequires, buildRuleCtx, clientToCanvas, createDepRegistry, createDispatcher, createLongPressStore, defineTool, deleteScratch, describeRule, dlog, dwarn, evaluate, evaluateActive, evaluateEnabled, focusedControlOwnsKey, getScratch, heldKeySpec, historyKey, isDebugEnabled, isEditableTarget, isInControlWithin, isToolSet, keySpecShortcut, keysHeld, liveScope, matchActionItem, matchesKeyBinding, modeShortcutSpec, modeShortcuts, openPointerSession, overlaysOf, pastDragThreshold, readActionSettings, resolveDeviceProfile, resolveParams, resolveSchemaMenu, roleReader, scopeBindings, scratchKey, setScratch, specificity, startCarry, taggedActionItems, toolIdsOf, toolSet, toolSetHas, tuneAction, withoutTools } from '@weasel-js/routing';
|
|
13
|
+
import * as react from 'react';
|
|
14
|
+
import react__default, { Ref, RefObject, ReactNode, MutableRefObject, MouseEvent } from 'react';
|
|
13
15
|
import { Reflection } from '@weasel-js/registry';
|
|
14
16
|
export { MIXED, Mixed, QueryMatch, Reflectable, ReflectedEntry, Reflection, RegisterOptions, Registrant, createReflectable, isPlainObject } from '@weasel-js/registry';
|
|
17
|
+
import { P as PoseDescriptor, b as RotatedPose } from './poseDescriptor-DN2yfnq_.js';
|
|
18
|
+
export { R as RECT_POSE_DESCRIPTOR, a as ROTATED_POSE_DESCRIPTOR, p as poseDescriptorForNode, t as translatePoseViaDescriptor, v as visualBoundsViaDescriptor } from './poseDescriptor-DN2yfnq_.js';
|
|
15
19
|
import { KitSettingsStore } from '@weasel-js/react';
|
|
16
20
|
export { CanvasFocusReturn, FrameClock, FrameClockOptions, UseCanvasFocusOptions, VisibleRaf, VisibleRafOptions, VisibleRafTarget, useCanvasFocus, useFrameClock, useLatest, useVisibleRaf } from '@weasel-js/react';
|
|
17
21
|
import { PaintedCursorState, CursorSink, CursorSpec } from '@weasel-js/cursor';
|
|
18
22
|
export { BakeOptions, CURSOR_ANGLE_STEPS, CURSOR_MAX_CSS_PX, CursorGlyph, CursorGlyphName, CursorGlyphSpec, CursorSink, CursorSinkTarget, CursorSpec, PaintedCursor, PaintedCursorFrame, PaintedCursorState, ResolvedCursor, bakeCursor, createCursorSink, createPaintedCursorState, cursorFor, resolveCursor, resolveCursorTier } from '@weasel-js/cursor';
|
|
19
|
-
import { DrawCommand, FlattenTolerance, ShaderProgramHandle, CommandStroke as CommandStroke$1 } from '@weasel-js/renderer';
|
|
23
|
+
import { DrawCommand, FlattenTolerance, ImageMinification, ShaderProgramHandle, CommandStroke as CommandStroke$1 } from '@weasel-js/renderer';
|
|
20
24
|
export { BlendFactor, BlendFactors, CompositeOp, CullRect, DrawCommand, Effect, FillPoseBox, FlattenTolerance, GlMat3, GroupDrawCommand, ImageDrawCommand, ImageMinification, ImageNodeData, ImageRasterSize, ImageStatus, PaintBindContext, PaintDrawKind, PaintProgram, PaintResources, PathDrawCommand, ProgramSource, RenderTarget, SPRITE_STRIDE, ShaderDrawCommand, ShaderProgram, ShaderProgramHandle, ShaderUniform, SpriteSheet, SpritesDrawCommand, TextDrawCommand, TilePatternOpts, bitmapSrc, blur, commandFill, commandPaint, commandStroke, createTilePattern, cullDrawCommands, fillInPoseFrame, fillToBoundsFrame, frameRect, getImageBitmap, imageStatus, isPaintKindKnown, isVectorImageSrc, mat3, registerEffect, releaseImage, resolveFillPattern, resolvePatternSpec, retryImage, setImageCacheBudget, subscribeImageReady, textCommand, textCommandFromPose, textCommandFromRuns, viewToMat3, vignette, warmPaintKinds } from '@weasel-js/renderer';
|
|
21
|
-
import {
|
|
25
|
+
import { C as CanvasDebugSink, D as DebugSnapshot, a as DebugConfig, b as DebugStrokes, c as DebugTheme } from './types-BN9hbdMI.js';
|
|
26
|
+
export { d as DEBUG_FEATURES, e as DebugFeature, f as DebugStroke, F as FrameStats, L as LayerFrameStats, R as RecordedBounds, g as RecordedHandle, h as RecordedHitbox, i as RecordedLayer, j as RecordedOrigin, k as RecordedSnap, l as RecordedViewport } from './types-BN9hbdMI.js';
|
|
27
|
+
import { VertexColorChannel, Target, Animator, ColorOverrideRegistry, TargetAxes, Pose, ClipBinder, SpringPresetName, StaggerOptions, StaggerDelay, EasingSpec, AnimationHandle, Skeleton, Skin } from '@weasel-js/animator';
|
|
22
28
|
import { SelectionStore as SelectionStore$1 } from '@weasel-js/select';
|
|
23
29
|
import { Paint, CommandFill, CommandStroke, CommandPaint, Fill, Stroke, Palette, SolidPaint, VertexWidth } from '@weasel-js/paint';
|
|
24
30
|
export { ColorInterpolationSpace, ColorSpace, CommandFill, CommandPaint, CommandPaintUnits, CommandStroke, Fill, GradStop, GradientKind, GradientPaint, HalfWidths, HueInterpolation, KitMarkerKey, MarkerKey, MarkerRef, OklchDeg, Paint, PaintUnits, PatternPaint, PatternPlacement, PatternTransform, PatternTransformParts, PosedPaint, Region, STROKE_DASH_RATIOS, ScreenLength, SolidPaint, Stroke, StrokeAlign, StrokeDashStyle, StrokeNib, TILE_KINDS, TextureHandle, TexturePaint, TileKind, TilePaint, TilePatternSpec, VertexWidth, VertexWidthSides, alignedStrokeRect, composePatternTransform, contrastLineColor, dashForStrokeStyle, decomposePatternTransform, gradientForBounds, gradientGeometry, hexToOklchDeg, hexToRgbBytes, hexToRgba, hslToSrgb, interpolateSrgb, isGradientPaint, isPatternPaint, isSolidPaint, isTileKind, isTilePaint, lerpColorArray, lerpFill, lerpOklab, lerpOklch, lerpPaint, lerpStroke, linearSrgbToOklab, linearToSrgb, normalizeHex, oklabToLinearSrgb, oklabToOklch, oklabToSrgbU8, oklchDegToHex, oklchToOklab, parseColor, parseColorToRgba255, parseHexBytes, patternPlacementOf, resolveColor, resolveScreenLength, rgbaToHex, sampleGradientStops, scaleVertexWidth, srgbFloatToOklab, srgbToHsl, srgbToLinear, srgbU8ToOklab, strokeDashStyleOf, tileSpecOf, vertexHalfWidths, vertexWidthFromSides, widestHalfWidth, withGradientKind } from '@weasel-js/paint';
|
|
@@ -28,17 +34,17 @@ import { FontRequest } from '@weasel-js/font';
|
|
|
28
34
|
export { FaceMetrics, FaceRuleMetrics, FaceScriptMetrics, FontFamilyFaces, FontRequest, FontStyle, FontVariant, LocalFontOutlinesResult, OutlineFaceInfo, OutlineSource, OutlineStatus, OutlineVariant, RegisterFontOptions, canQueryLocalFonts, cssFamilyName, cssFontFamily, cssFontFamilyLoading, enableLocalFontOutlines, fontOutlineRegistry, fontRegistry, hasFontOutlines, isCanvasFont, listFontOutlines, loadFontOutlines, outlineStatus, refreshCanvasFont, registerCanvasFont, registerFont, registerFontOutlines, subscribeGlyphReady, unregisterCanvasFont, unregisterFontOutlines, warmFonts } from '@weasel-js/font';
|
|
29
35
|
import * as _weasel_js_history from '@weasel-js/history';
|
|
30
36
|
import { Op, CreateHistoryOptions, History, HistorySelection } from '@weasel-js/history';
|
|
31
|
-
export { BeginJournalOptions, CreateHistoryOptions, EvictedEntry, History, HistoryBranch, HistoryEntry, HistoryLogger, HistorySelection, Journal, Op, RecordEntryOptions, SerializedHistory, SerializedHistoryEntry, SerializedOp, SwapArgs, SwapOpOptions, swapOp } from '@weasel-js/history';
|
|
32
|
-
import {
|
|
33
|
-
export {
|
|
34
|
-
import {
|
|
35
|
-
export {
|
|
36
|
-
import { d as ResizeHandleLayout, U as UseResizeOptions, T as TargetTransform } from './cornerHandles-Camw_yeu.js';
|
|
37
|
-
export { C as CORNER_ANCHORS, a as CornerAnchor, k as CornerEdge, b as CornerHandle, E as EDGE_HANDLE_MIN_RADII, H as HandleEdge, R as RESIZE_HANDLE_ANCHORS, c as ResizeHandleAnchor, e as cornerPoint, f as cornerResizeHandles, g as fixedCornerOf, h as handlePoint, i as hitCornerHandle, j as isCornerHandle, r as resizeHandlesFor } from './cornerHandles-Camw_yeu.js';
|
|
37
|
+
export { BeginJournalOptions, CreateHistoryOptions, EvictedEntry, History, HistoryBranch, HistoryEntry, HistoryLogger, HistorySelection, HistoryStep, Journal, Op, RecordEntryOptions, SerializedHistory, SerializedHistoryEntry, SerializedOp, SwapArgs, SwapOpOptions, swapOp } from '@weasel-js/history';
|
|
38
|
+
import { G as GestureContext, B as BoundsConstraint, R as RotateBehavior, I as InsertBehavior, L as LassoSelectBehavior, M as MoveBehavior } from './clone-C3e0OTuF.js';
|
|
39
|
+
export { A as ActionBehavior, a as AreaSelectOverlay, b as BehaviorEnd, c as BehaviorResult, C as CloneBehavior, d as CloneBehaviorResult, e as GestureFrames, f as GroupTransform, g as InsertMoveResult, h as InsertOverlay, i as InsertPoint, j as InsertProposed, k as LassoSelectMoveResult, l as LassoSelectOverlay, m as LassoSelectPose, n as LassoSelectProposed, o as MoveEnd, P as PointerState, p as ResizeMoveResult, q as ResizeOverlay, r as ResizeProposed, s as RotateMoveResult, t as RotateOverlay, u as RotateProposed } from './clone-C3e0OTuF.js';
|
|
40
|
+
import { d as ResizeHandleLayout, U as UseResizeOptions, T as TargetTransform } from './cornerHandles-BHuoMs1o.js';
|
|
41
|
+
export { C as CORNER_ANCHORS, a as CornerAnchor, k as CornerEdge, b as CornerHandle, E as EDGE_HANDLE_MIN_RADII, H as HandleEdge, R as RESIZE_HANDLE_ANCHORS, c as ResizeHandleAnchor, e as cornerPoint, f as cornerResizeHandles, g as fixedCornerOf, h as handlePoint, i as hitCornerHandle, j as isCornerHandle, r as resizeHandlesFor } from './cornerHandles-BHuoMs1o.js';
|
|
38
42
|
import { ModeRegistry, ModeDecorations } from '@weasel-js/modes';
|
|
43
|
+
import { M as MoveAdapter, A as AreaSelectAdapter, L as LayerEnumerableAdapter, a as LassoHitMode, P as PasteOmission, b as ResizeAdapter, c as RotateAdapter, d as LassoSelectAdapter, I as InsertAdapter, C as ClipboardSnapshot, e as PasteCtx, O as OrderedAdapter } from './types-oFeQ5VjV.js';
|
|
44
|
+
export { R as RegionPickView, S as SnapTarget } from './types-oFeQ5VjV.js';
|
|
39
45
|
import * as _weasel_js_gestures from '@weasel-js/gestures';
|
|
40
46
|
export { CarrySpec, ClaimableGesture, ClickSpec, DragSpec, DropSpec, GestureSpec, KeyHeldSpec, KeySpec, ModSpec, MultiTouchSpec, PasteSpec, PinchSpec, TargetPredicate, TargetSpec, WheelSpec, bodyPredicate, hitPredicate } from '@weasel-js/gestures';
|
|
41
|
-
import { U as UseMoveOptions } from './options-
|
|
47
|
+
import { U as UseMoveOptions } from './options-DBxEryYq.js';
|
|
42
48
|
import { IconRef, IconTable, IconVariantLoader, IconRegistry, IconGlyph, IconEntry, IconVariantState } from '@weasel-js/icons';
|
|
43
49
|
export { IconRef, IconTable, toIconRef } from '@weasel-js/icons';
|
|
44
50
|
import * as _weasel_js_prefs from '@weasel-js/prefs';
|
|
@@ -60,6 +66,29 @@ export { a as aabbCenter, p as pointInRotatedRect, r as rectCorners, b as rotate
|
|
|
60
66
|
export { ClipboardFlavors, UseClipboardOpsOptions, UseClipboardOpsReturn, WEASEL_CLIPBOARD_MIME, WEASEL_CLIPBOARD_MIME_WEB, buildWeaselClipboardText, embedWeaselMetadataInSvg, extractWeaselClipboardFromSvg, parseWeaselClipboardText, sniffWeaselClipboardText, useClipboardOps } from './clipboard.js';
|
|
61
67
|
import { Vec, SnapCandidate } from '@weasel-js/geom/nd';
|
|
62
68
|
|
|
69
|
+
/** One pose write an {@link createArrangeOp} made. */
|
|
70
|
+
interface ArrangedPose {
|
|
71
|
+
id: string;
|
|
72
|
+
from: unknown;
|
|
73
|
+
to: unknown;
|
|
74
|
+
}
|
|
75
|
+
/** Arguments to {@link createArrangeOp}. */
|
|
76
|
+
interface ArrangeArgs {
|
|
77
|
+
/** The writes to make. Absent until a computed arrangement has run once. */
|
|
78
|
+
placed?: ArrangedPose[];
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Op: write a set of poses decided when the op first applies, not when it is
|
|
82
|
+
* built. The scene appends one to an edit that moves nodes into a container,
|
|
83
|
+
* and `compute` asks the container what to do with them after the rest of
|
|
84
|
+
* the edit has landed. Every later apply — redo, or a rebuild from a
|
|
85
|
+
* serialized history — replays the writes it recorded, so the arrangement is
|
|
86
|
+
* decided once. `write` replaces the adapter's `setPose` for this op and its
|
|
87
|
+
* inverses — the scene passes its own, since not every adapter an edit is
|
|
88
|
+
* applied through can write poses.
|
|
89
|
+
*/
|
|
90
|
+
declare function createArrangeOp(args: ArrangeArgs, compute?: () => ArrangedPose[], write?: (id: string, pose: unknown) => void): Op;
|
|
91
|
+
|
|
63
92
|
/** Pan offset (in pixels) plus per-axis zoom (pixels per content unit). */
|
|
64
93
|
interface ViewTransform {
|
|
65
94
|
panX: number;
|
|
@@ -109,6 +138,8 @@ declare function normalizeView(view: View): View;
|
|
|
109
138
|
interface UseSceneOptions<TData, TLayer extends string, TPose = RectPose> {
|
|
110
139
|
systemLayers: readonly SystemLayerSpec<TLayer>[];
|
|
111
140
|
initial?: readonly AddNodeSpec<TData, TLayer, TPose>[];
|
|
141
|
+
/** The document values the scene starts with, outside history. See `Scene.doc`. */
|
|
142
|
+
doc?: Readonly<Record<string, unknown>>;
|
|
112
143
|
ops?: Readonly<Record<string, RegisteredOp<unknown>>>;
|
|
113
144
|
historyLimit?: number;
|
|
114
145
|
/** Window (ms) within which consecutive same-shaped mutations merge into
|
|
@@ -291,6 +322,9 @@ interface NodeInkCtx {
|
|
|
291
322
|
* rotation and `transform`. With it, a `{ px }` length is measured the way
|
|
292
323
|
* the renderer builds it, exact in every direction; without, at `scale`. */
|
|
293
324
|
screen?: readonly [number, number, number, number];
|
|
325
|
+
/** The path the node shows in place of its pose's, already where it is
|
|
326
|
+
* drawn: its box is measured from this, not from the placeholder pose. */
|
|
327
|
+
derivedPath?: Path | null;
|
|
294
328
|
}
|
|
295
329
|
|
|
296
330
|
/** What a painter that declares no `ink` is assumed to do. */
|
|
@@ -499,178 +533,6 @@ interface CanvasViewProps {
|
|
|
499
533
|
*/
|
|
500
534
|
declare function CanvasView(props: CanvasViewProps): null;
|
|
501
535
|
|
|
502
|
-
/**
|
|
503
|
-
* `DebugSink`, `HitShape` and `HandleKind` are declared in
|
|
504
|
-
* `@weasel-js/routing`. Re-exported here, beside the overlay that reads one.
|
|
505
|
-
*/
|
|
506
|
-
|
|
507
|
-
/** One bit per debug feature; absent keys are off. */
|
|
508
|
-
interface DebugConfig {
|
|
509
|
-
hitboxes?: boolean;
|
|
510
|
-
handles?: boolean;
|
|
511
|
-
bounds?: boolean;
|
|
512
|
-
origins?: boolean;
|
|
513
|
-
snap?: boolean;
|
|
514
|
-
layers?: boolean;
|
|
515
|
-
/** Render each tracked node's id as a label at the top-left of its
|
|
516
|
-
* bounds. Pulls from the same `recordBounds` stream `bounds` uses, so
|
|
517
|
-
* no extra sink calls are required to enable. */
|
|
518
|
-
ids?: boolean;
|
|
519
|
-
/** Frame panel in the top-left corner: repaint rate and interval, the
|
|
520
|
-
* CPU cost and GL draw-call count of the last paint, and both again per
|
|
521
|
-
* render layer. The rate tracks the overlay's own draw callback, so it is
|
|
522
|
-
* the canvas's repaint rate — a canvas that is not repainting shows the
|
|
523
|
-
* last numbers, not zero. */
|
|
524
|
-
fps?: boolean;
|
|
525
|
-
/** The last viewport change a pan or zoom made: the viewport it started
|
|
526
|
-
* from, outlined in the current view, and the world point it held fixed. */
|
|
527
|
-
viewport?: boolean;
|
|
528
|
-
/** Optional per-feature color overrides; falls back to the default theme. */
|
|
529
|
-
theme?: Partial<DebugTheme>;
|
|
530
|
-
/** Optional per-feature line-width / dash overrides; falls back to
|
|
531
|
-
* {@link DEFAULT_DEBUG_STROKES}. */
|
|
532
|
-
strokes?: Partial<DebugStrokes>;
|
|
533
|
-
}
|
|
534
|
-
/** The name of one debug-overlay feature — the keys of {@link DebugConfig}
|
|
535
|
-
* that toggle a visualization. */
|
|
536
|
-
type DebugFeature = 'hitboxes' | 'handles' | 'bounds' | 'origins' | 'snap' | 'layers' | 'ids' | 'fps' | 'viewport';
|
|
537
|
-
/** Colors the debug overlay draws with, one entry per feature. */
|
|
538
|
-
interface DebugTheme {
|
|
539
|
-
hitboxFill: string;
|
|
540
|
-
hitboxStroke: string;
|
|
541
|
-
handle: string;
|
|
542
|
-
bounds: string;
|
|
543
|
-
origin: string;
|
|
544
|
-
snap: string;
|
|
545
|
-
layerText: string;
|
|
546
|
-
layerTextBg: string;
|
|
547
|
-
/** Color for the per-node id label rendered when `config.ids` is on. */
|
|
548
|
-
idText: string;
|
|
549
|
-
/** Foreground / background for the FPS panel. */
|
|
550
|
-
fpsText: string;
|
|
551
|
-
fpsTextBg: string;
|
|
552
|
-
/** Previous-viewport outline, anchor trail and readout. */
|
|
553
|
-
viewport: string;
|
|
554
|
-
}
|
|
555
|
-
/** Line width and dash pattern for one stroked debug feature. An empty (or
|
|
556
|
-
* omitted) `dash` is a solid line. */
|
|
557
|
-
interface DebugStroke {
|
|
558
|
-
width: number;
|
|
559
|
-
dash?: readonly number[];
|
|
560
|
-
}
|
|
561
|
-
/** The stroked half of the debug overlay's appearance, split from
|
|
562
|
-
* {@link DebugTheme} because only some features draw a line at all — text
|
|
563
|
-
* panels and filled origin dots take color and nothing else. */
|
|
564
|
-
interface DebugStrokes {
|
|
565
|
-
hitbox: DebugStroke;
|
|
566
|
-
bounds: DebugStroke;
|
|
567
|
-
handle: DebugStroke;
|
|
568
|
-
/** Rejected snap candidates only; accepted ones paint as a filled dot. */
|
|
569
|
-
snap: DebugStroke;
|
|
570
|
-
/** The previous-viewport outline and the anchor's trail. */
|
|
571
|
-
viewport: DebugStroke;
|
|
572
|
-
}
|
|
573
|
-
/** A hit region tested during the current frame. */
|
|
574
|
-
interface RecordedHitbox {
|
|
575
|
-
id: string;
|
|
576
|
-
kind: 'body' | 'handle' | 'rotation' | 'anchor';
|
|
577
|
-
shape: HitShape;
|
|
578
|
-
}
|
|
579
|
-
/** A handle drawn during the current frame, and where. */
|
|
580
|
-
interface RecordedHandle {
|
|
581
|
-
id: string;
|
|
582
|
-
position: {
|
|
583
|
-
x: number;
|
|
584
|
-
y: number;
|
|
585
|
-
};
|
|
586
|
-
kind: HandleKind;
|
|
587
|
-
}
|
|
588
|
-
/** A node's bounds as computed during the current frame. */
|
|
589
|
-
interface RecordedBounds {
|
|
590
|
-
id: string;
|
|
591
|
-
bounds: {
|
|
592
|
-
x: number;
|
|
593
|
-
y: number;
|
|
594
|
-
width: number;
|
|
595
|
-
height: number;
|
|
596
|
-
};
|
|
597
|
-
}
|
|
598
|
-
/** A node's transform origin as used during the current frame. */
|
|
599
|
-
interface RecordedOrigin {
|
|
600
|
-
id: string;
|
|
601
|
-
point: {
|
|
602
|
-
x: number;
|
|
603
|
-
y: number;
|
|
604
|
-
};
|
|
605
|
-
}
|
|
606
|
-
/** A snap candidate considered during the current gesture, and whether it
|
|
607
|
-
* won. Unlike the other records these survive across frames, until the
|
|
608
|
-
* gesture ends. */
|
|
609
|
-
interface RecordedSnap {
|
|
610
|
-
point: {
|
|
611
|
-
x: number;
|
|
612
|
-
y: number;
|
|
613
|
-
};
|
|
614
|
-
accepted: boolean;
|
|
615
|
-
}
|
|
616
|
-
/** A render layer that drew during the current frame. */
|
|
617
|
-
interface RecordedLayer {
|
|
618
|
-
id: string;
|
|
619
|
-
label: string;
|
|
620
|
-
space: 'world' | 'screen';
|
|
621
|
-
index: number;
|
|
622
|
-
}
|
|
623
|
-
/** The last viewport change a gesture made. See `DebugSink.recordViewport`. */
|
|
624
|
-
interface RecordedViewport {
|
|
625
|
-
kind: ViewportGestureKind;
|
|
626
|
-
from: View$1;
|
|
627
|
-
to: View$1;
|
|
628
|
-
/** World point the gesture held fixed, when it had one. */
|
|
629
|
-
anchor?: {
|
|
630
|
-
x: number;
|
|
631
|
-
y: number;
|
|
632
|
-
};
|
|
633
|
-
}
|
|
634
|
-
/** What one render layer cost in a paint. */
|
|
635
|
-
interface LayerFrameStats {
|
|
636
|
-
id: string;
|
|
637
|
-
/** GL draw calls issued while this layer's commands were dispatched. A
|
|
638
|
-
* batched run is drawn when it closes, so it counts toward the layer that
|
|
639
|
-
* closed it. */
|
|
640
|
-
drawCalls: number;
|
|
641
|
-
/** CPU milliseconds: building the layer's commands plus dispatching them. */
|
|
642
|
-
ms: number;
|
|
643
|
-
}
|
|
644
|
-
/** What one paint cost, for the frame panel. */
|
|
645
|
-
interface FrameStats {
|
|
646
|
-
/** CPU milliseconds for the whole paint — command build and dispatch. GPU
|
|
647
|
-
* time is not included; the GPU runs asynchronously. */
|
|
648
|
-
paintMs: number;
|
|
649
|
-
drawCalls: number;
|
|
650
|
-
layers: LayerFrameStats[];
|
|
651
|
-
}
|
|
652
|
-
/** Everything the sink collected, ready for the overlay to draw. */
|
|
653
|
-
interface DebugSnapshot {
|
|
654
|
-
hitboxes: RecordedHitbox[];
|
|
655
|
-
handles: RecordedHandle[];
|
|
656
|
-
bounds: RecordedBounds[];
|
|
657
|
-
origins: RecordedOrigin[];
|
|
658
|
-
snap: RecordedSnap[];
|
|
659
|
-
layers: RecordedLayer[];
|
|
660
|
-
/** Latest viewport change; survives frames until replaced. */
|
|
661
|
-
viewport: RecordedViewport | null;
|
|
662
|
-
/** The previous paint's cost. The overlay draws before the paint it is part
|
|
663
|
-
* of is dispatched, so this is always one paint behind. */
|
|
664
|
-
frame: FrameStats | null;
|
|
665
|
-
}
|
|
666
|
-
/** The sink `<Canvas>` creates: what tools record into, plus the canvas-side
|
|
667
|
-
* half — the frame stats only the painter knows — and the read the overlay
|
|
668
|
-
* draws from. */
|
|
669
|
-
interface CanvasDebugSink extends DebugSink {
|
|
670
|
-
recordFrame(stats: FrameStats): void;
|
|
671
|
-
snapshot(): DebugSnapshot;
|
|
672
|
-
}
|
|
673
|
-
|
|
674
536
|
/**
|
|
675
537
|
* A view added through {@link SceneCanvasApi.addView}.
|
|
676
538
|
*/
|
|
@@ -942,6 +804,8 @@ interface SceneCanvasApi extends CanvasExtensionApi {
|
|
|
942
804
|
*/
|
|
943
805
|
interface GesturePreviewSource {
|
|
944
806
|
previewIds?(): Iterable<string> | null;
|
|
807
|
+
/** Absent/null falls back to the node's effective pose, which is where a
|
|
808
|
+
* transform publishing to the scene's overrides puts it. */
|
|
945
809
|
previewPose?(id: string): unknown;
|
|
946
810
|
/** Companion to `previewPose` for actions that mutate node data (anchor
|
|
947
811
|
* edits on `data.path` nodes). Absent/null falls back to committed data. */
|
|
@@ -1644,7 +1508,7 @@ interface DeviceProfileProviderProps {
|
|
|
1644
1508
|
* Publish one resolved profile to a subtree. `<SceneCanvas>` renders this so
|
|
1645
1509
|
* overlays, affordances, and consumer chrome all read the same object.
|
|
1646
1510
|
*/
|
|
1647
|
-
declare function DeviceProfileProvider({ value, children }: DeviceProfileProviderProps):
|
|
1511
|
+
declare function DeviceProfileProvider({ value, children }: DeviceProfileProviderProps): react.FunctionComponentElement<react.ProviderProps<DeviceProfile | null>>;
|
|
1648
1512
|
|
|
1649
1513
|
/**
|
|
1650
1514
|
* Call `onChange` each time `window.devicePixelRatio` changes: the window
|
|
@@ -1717,6 +1581,10 @@ interface PageLayoutOptions {
|
|
|
1717
1581
|
* Throws on two pages with one id.
|
|
1718
1582
|
*/
|
|
1719
1583
|
declare function layoutPages(pages: readonly Page[], options?: PageLayoutOptions): PlacedPage[];
|
|
1584
|
+
/** The name page `index` of the page order shows: its own, else "Page" and its place. */
|
|
1585
|
+
declare function pageName(page: {
|
|
1586
|
+
readonly name?: string | undefined;
|
|
1587
|
+
}, index: number): string;
|
|
1720
1588
|
/** The page under a world point, or `null` between and outside them. A point on an edge is on the page. */
|
|
1721
1589
|
declare function pageAt(pages: readonly PlacedPage[], point: {
|
|
1722
1590
|
readonly x: number;
|
|
@@ -1728,6 +1596,13 @@ declare function pageAt(pages: readonly PlacedPage[], point: {
|
|
|
1728
1596
|
* rule that says which page an object is on.
|
|
1729
1597
|
*/
|
|
1730
1598
|
declare function pageOfBounds(pages: readonly PlacedPage[], bounds: Bounds): PlacedPage | null;
|
|
1599
|
+
/**
|
|
1600
|
+
* The page a world-space box is held by: the one it is on (`pageOfBounds`),
|
|
1601
|
+
* else the one nearest it by the box-to-box gap, the earlier of two equally
|
|
1602
|
+
* near. `null` only with no pages. Used where every object must land on some
|
|
1603
|
+
* page, such as an export; `pageOfBounds` stays the rule for what is on one.
|
|
1604
|
+
*/
|
|
1605
|
+
declare function pageHolding(pages: readonly PlacedPage[], bounds: Bounds): PlacedPage | null;
|
|
1731
1606
|
/**
|
|
1732
1607
|
* The page `step` places along the page order from the one with id `current`:
|
|
1733
1608
|
* the next slide is `1`, the one before is `-1`. `null` past either end, unless
|
|
@@ -1758,6 +1633,64 @@ declare function pagesLayer(pages: readonly PlacedPage[], options: PagesLayerOpt
|
|
|
1758
1633
|
|
|
1759
1634
|
/** The view that shows one placed page whole: `fitViewToBounds` on its rect. */
|
|
1760
1635
|
declare function fitViewToPage(page: PlacedPage, viewportDims: ViewportDims, currentView: View, options?: FitViewToBoundsOptions): View;
|
|
1636
|
+
/** The page the view shows most of: the one overlapping the visible world rect most, or `null` when none shows. */
|
|
1637
|
+
declare function pageInView(pages: readonly PlacedPage[], view: View, viewportDims: ViewportDims): PlacedPage | null;
|
|
1638
|
+
|
|
1639
|
+
/**
|
|
1640
|
+
* A document's pages as a scene document value, and the edits that change
|
|
1641
|
+
* them. Each edit moves the nodes on a page by however far the page itself
|
|
1642
|
+
* moved, so what is on a page stays where it is on that page.
|
|
1643
|
+
*/
|
|
1644
|
+
|
|
1645
|
+
/** The document value under {@link PAGES_DOC_KEY}: the pages in order, and how they are laid out. */
|
|
1646
|
+
interface PagesDoc {
|
|
1647
|
+
readonly pages: readonly Page[];
|
|
1648
|
+
readonly layout?: PageLayoutOptions;
|
|
1649
|
+
}
|
|
1650
|
+
/** The scene document value key a page list lives under (`scene.doc`). */
|
|
1651
|
+
declare const PAGES_DOC_KEY = "core:pages";
|
|
1652
|
+
/** Options every page edit takes. */
|
|
1653
|
+
interface PageEditOptions {
|
|
1654
|
+
/** The undo entry's label. */
|
|
1655
|
+
label?: string;
|
|
1656
|
+
/** How node poses are measured and moved. Default: poses are rects. */
|
|
1657
|
+
descriptor?: PoseDescriptor<unknown>;
|
|
1658
|
+
}
|
|
1659
|
+
/** The scene's pages doc, or `null` when it has none. */
|
|
1660
|
+
declare function pagesOf<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>): PagesDoc | null;
|
|
1661
|
+
/** The scene's pages, placed in world space; empty when it has no pages doc. */
|
|
1662
|
+
declare function placedPagesOf<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>): PlacedPage[];
|
|
1663
|
+
/** An id none of `pages` has: `page-1`, `page-2`, and so on. */
|
|
1664
|
+
declare function nextPageId(pages: readonly Page[]): string;
|
|
1665
|
+
/**
|
|
1666
|
+
* The root nodes on each placed page, by page id: each root belongs to the
|
|
1667
|
+
* page its bounds overlap most (`pageOfBounds`). A root in the gaps belongs to
|
|
1668
|
+
* none, and one that derives from other nodes is left out, since it follows
|
|
1669
|
+
* them.
|
|
1670
|
+
*/
|
|
1671
|
+
declare function pageMembers<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>, placed: readonly PlacedPage[], descriptor?: PoseDescriptor<unknown>): Map<string, NodeId[]>;
|
|
1672
|
+
/**
|
|
1673
|
+
* Replace the scene's pages doc with `next`, moving each page's members by
|
|
1674
|
+
* the change in their page's place, all as one undo entry labeled `label`.
|
|
1675
|
+
* Members of a page `next` drops are left where they are; `removePage` deletes
|
|
1676
|
+
* them first.
|
|
1677
|
+
*/
|
|
1678
|
+
declare function setPages<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>, next: PagesDoc, label: string, options?: Pick<PageEditOptions, 'descriptor'>): void;
|
|
1679
|
+
/** Insert `page` at `index`, by default after the last page. */
|
|
1680
|
+
declare function addPage<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>, page: Page, options?: PageEditOptions & {
|
|
1681
|
+
index?: number;
|
|
1682
|
+
}): void;
|
|
1683
|
+
/** Delete page `id`, what is on it, and every node that derives from that, as one entry. */
|
|
1684
|
+
declare function removePage<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>, id: string, options?: PageEditOptions): void;
|
|
1685
|
+
/** Move page `id` to `index` in the page order. */
|
|
1686
|
+
declare function movePage<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>, id: string, index: number, options?: PageEditOptions): void;
|
|
1687
|
+
/** Give page `id` a new size. Its members keep their places on it; the pages after it shift. */
|
|
1688
|
+
declare function resizePage<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>, id: string, size: {
|
|
1689
|
+
readonly width: number;
|
|
1690
|
+
readonly height: number;
|
|
1691
|
+
}, options?: PageEditOptions): void;
|
|
1692
|
+
/** Rename page `id`; an empty name removes it. */
|
|
1693
|
+
declare function renamePage<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>, id: string, name: string, options?: PageEditOptions): void;
|
|
1761
1694
|
|
|
1762
1695
|
/** Optional clamp bounds for `zoomAt`. Defaults: {@link DEFAULT_MIN_ZOOM} /
|
|
1763
1696
|
* {@link DEFAULT_MAX_ZOOM} (per axis). */
|
|
@@ -2118,7 +2051,7 @@ interface SceneViewCanvasProps<TData, TLayer extends string, TPose> extends Surf
|
|
|
2118
2051
|
* pointer listeners or call `toBlob` for snapshots through this. */
|
|
2119
2052
|
canvasRef?: Ref<HTMLCanvasElement>;
|
|
2120
2053
|
}
|
|
2121
|
-
declare function SceneViewCanvasInner<TData, TLayer extends string, TPose>(props: SceneViewCanvasProps<TData, TLayer, TPose>):
|
|
2054
|
+
declare function SceneViewCanvasInner<TData, TLayer extends string, TPose>(props: SceneViewCanvasProps<TData, TLayer, TPose>): react.JSX.Element;
|
|
2122
2055
|
/**
|
|
2123
2056
|
* Pointer-inert read-only scene view. It attaches no event listeners;
|
|
2124
2057
|
* consumers attach their own through `canvasRef`, a plain prop because
|
|
@@ -2162,7 +2095,7 @@ interface DrawCanvasProps extends SurfaceSizeProps {
|
|
|
2162
2095
|
* a package demo, a swatch, a preview — where a `<SceneCanvas>` would bring a
|
|
2163
2096
|
* scene, tools and an input dispatcher that nothing uses.
|
|
2164
2097
|
*/
|
|
2165
|
-
declare function DrawCanvas(props: DrawCanvasProps):
|
|
2098
|
+
declare function DrawCanvas(props: DrawCanvasProps): react.JSX.Element;
|
|
2166
2099
|
|
|
2167
2100
|
/** The accent canvas chrome paints in when the element sits under no theme. */
|
|
2168
2101
|
declare const FALLBACK_ACCENT = "#4c8dff";
|
|
@@ -2629,6 +2562,10 @@ interface RenderSceneToPixelsArgs<TData, TLayer extends string, TPose> {
|
|
|
2629
2562
|
* output's top-left, one unit per output pixel. Annotations, watermarks,
|
|
2630
2563
|
* and `renderDebugSnapshot`'s overlay ride here. */
|
|
2631
2564
|
overlay?: readonly DrawCommand[];
|
|
2565
|
+
/** Draw the scene's annotation layers (`isAnnotationLayer`). Default
|
|
2566
|
+
* `false`: a raster is an export, which leaves them out as the SVG export
|
|
2567
|
+
* does. Pass `true` to reproduce the canvas as it looked. */
|
|
2568
|
+
annotations?: boolean;
|
|
2632
2569
|
}
|
|
2633
2570
|
/** The result of planning a headless render: how big the output is, the view
|
|
2634
2571
|
* that maps the source rect onto it, and the commands to draw. */
|
|
@@ -2774,6 +2711,8 @@ interface RenderDebugSnapshotArgs<TData, TLayer extends string, TPose> extends O
|
|
|
2774
2711
|
/** Which overlay features to draw, as on `<Canvas debug>`. The frame panel
|
|
2775
2712
|
* shows the recorded paint cost but no rate: a still image has no frames. */
|
|
2776
2713
|
config: DebugConfig;
|
|
2714
|
+
/** Draw the scene's annotation layers. Default `true`, as the canvas did. */
|
|
2715
|
+
annotations?: boolean;
|
|
2777
2716
|
}
|
|
2778
2717
|
/**
|
|
2779
2718
|
* Rasterize the scene through `view` at `size` and paint the debug overlay
|
|
@@ -2794,18 +2733,18 @@ declare function rasterToPng(image: RasterImage): Promise<Blob>;
|
|
|
2794
2733
|
/** Mount a `<PointerContextProvider>` only when none is already in scope. */
|
|
2795
2734
|
declare function PointerProviderIfRoot({ children }: {
|
|
2796
2735
|
children: ReactNode;
|
|
2797
|
-
}):
|
|
2736
|
+
}): react.JSX.Element;
|
|
2798
2737
|
|
|
2799
2738
|
/** Mount an `<ActionsProvider>` only when none is already in scope. */
|
|
2800
2739
|
declare function ActionsProviderIfRoot({ children }: {
|
|
2801
2740
|
children: ReactNode;
|
|
2802
|
-
}):
|
|
2741
|
+
}): react.JSX.Element;
|
|
2803
2742
|
|
|
2804
2743
|
/** Mount a `<DepRegistryProvider>` only when none is already in scope, so a
|
|
2805
2744
|
* consumer's dep sources are not shadowed by a nested canvas. */
|
|
2806
2745
|
declare function DepRegistryProviderIfRoot({ children }: {
|
|
2807
2746
|
children: ReactNode;
|
|
2808
|
-
}):
|
|
2747
|
+
}): react.JSX.Element;
|
|
2809
2748
|
|
|
2810
2749
|
/**
|
|
2811
2750
|
* Open the menu for a right-click, or for Shift+F10 when `params` carry no client point. Reads
|
|
@@ -2855,10 +2794,13 @@ declare function pathOperationTags(family: PathGestureFamily): readonly string[]
|
|
|
2855
2794
|
*/
|
|
2856
2795
|
|
|
2857
2796
|
/** The scene reads {@link drawnBoundsOf} makes. `childrenOf` absent: every
|
|
2858
|
-
* node is a leaf.
|
|
2797
|
+
* node is a leaf. `derivedPathOf` absent: every node is measured by its pose,
|
|
2798
|
+
* a path-derived one included — `drawnBoundsScene` supplies it for a `Scene`. */
|
|
2859
2799
|
interface DrawnBoundsScene {
|
|
2860
2800
|
get(id: NodeId): Node<unknown, string, unknown> | undefined;
|
|
2861
2801
|
childrenOf?(id: NodeId): readonly NodeId[];
|
|
2802
|
+
/** The path a node shows in place of its pose's, or `null` for one that shows its own. */
|
|
2803
|
+
derivedPathOf?(id: NodeId): Path | null;
|
|
2862
2804
|
}
|
|
2863
2805
|
/** How {@link drawnBoundsOf} reads a node. */
|
|
2864
2806
|
interface DrawnBoundsOptions {
|
|
@@ -2877,7 +2819,8 @@ interface DrawnBoundsOptions {
|
|
|
2877
2819
|
* drawn in: a turned node's box comes back turned with it. A node with no
|
|
2878
2820
|
* stroke, a painter that declares no {@link NodeShapeEntry.drawnBounds}, or
|
|
2879
2821
|
* `includeStroke: false` answers `framedBounds` unchanged. A container's box
|
|
2880
|
-
* reaches as far as its members' boxes do.
|
|
2822
|
+
* reaches as far as its members' boxes do. A node showing a derived path is
|
|
2823
|
+
* boxed around that path, and its placeholder pose plays no part.
|
|
2881
2824
|
*/
|
|
2882
2825
|
declare function drawnBoundsOf(scene: DrawnBoundsScene, id: NodeId, pose: unknown, opts?: DrawnBoundsOptions): FramedBox;
|
|
2883
2826
|
/** How far `id`'s ink at `pose` reaches past its pose box on each side, in
|
|
@@ -2956,7 +2899,9 @@ interface UseAlignOptions<TPose> {
|
|
|
2956
2899
|
* the same value and the alignment runs entirely in stored coordinates. */
|
|
2957
2900
|
composition?: PoseComposition<TPose>;
|
|
2958
2901
|
/** The nodes behind the adapter's ids. With it, a stroked node aligns by
|
|
2959
|
-
* the box it is drawn with (`drawnBoundsOf`); without, by its pose box.
|
|
2902
|
+
* the box it is drawn with (`drawnBoundsOf`); without, by its pose box.
|
|
2903
|
+
* Pass a `Scene` through `drawnBoundsScene` so a path-derived node is
|
|
2904
|
+
* boxed by its path. */
|
|
2960
2905
|
scene?: DrawnBoundsScene;
|
|
2961
2906
|
/** View scale a screen-pixel stroke is resolved at. Default 1. */
|
|
2962
2907
|
viewScale?: () => number | Scale2;
|
|
@@ -3145,6 +3090,7 @@ declare function defaultCommitAdapter<TPose>(scene: Scene<unknown, string, TPose
|
|
|
3145
3090
|
setChildOrder(parentId: string | null, ids: string[]): void;
|
|
3146
3091
|
setData(id: string, data: unknown): void;
|
|
3147
3092
|
setLayer(id: string, layer: string): void;
|
|
3093
|
+
setDependsOn(id: string, dependsOn: readonly string[] | "children" | undefined): void;
|
|
3148
3094
|
setLayout(id: string, layout: string | LayoutStrategy<TPose> | null): void;
|
|
3149
3095
|
setHidden(id: string, hidden: boolean): void;
|
|
3150
3096
|
setLocked(id: string, locked: boolean): void;
|
|
@@ -3182,6 +3128,14 @@ declare const flipAction: Action & {
|
|
|
3182
3128
|
requires: string[];
|
|
3183
3129
|
};
|
|
3184
3130
|
|
|
3131
|
+
/** Options for {@link createResizeAction}. */
|
|
3132
|
+
interface ResizeActionOptions {
|
|
3133
|
+
/** Runs in place of the scene commit, handed each resized node's pose at
|
|
3134
|
+
* release, so a host keeping the geometry as data can store it. The scene
|
|
3135
|
+
* is left as it was, and no undo entry is made; the constraints' `onEnd`
|
|
3136
|
+
* answers are not asked for. */
|
|
3137
|
+
commit?: (poses: ReadonlyMap<NodeId, unknown>, deps: ActionDeps) => void;
|
|
3138
|
+
}
|
|
3185
3139
|
/**
|
|
3186
3140
|
* Anchor-relative drag resize, committed as one batch on release. It needs
|
|
3187
3141
|
* `InvocationCtx.drag.affordance` with a `handle:*` kind.
|
|
@@ -3192,6 +3146,10 @@ declare const flipAction: Action & {
|
|
|
3192
3146
|
* carries the constraints, point snaps, and `expandIds`; absent, the invoker
|
|
3193
3147
|
* runs no constraints and `ids => ids` expansion.
|
|
3194
3148
|
*/
|
|
3149
|
+
declare function createResizeAction(opts?: ResizeActionOptions): Action & {
|
|
3150
|
+
requires: string[];
|
|
3151
|
+
};
|
|
3152
|
+
/** The resize that commits to the scene. */
|
|
3195
3153
|
declare const resizeAction: Action & {
|
|
3196
3154
|
requires: string[];
|
|
3197
3155
|
};
|
|
@@ -3628,6 +3586,27 @@ declare const sliceAction: Action & {
|
|
|
3628
3586
|
requires: string[];
|
|
3629
3587
|
};
|
|
3630
3588
|
|
|
3589
|
+
/** Options for {@link createDeleteAction}. */
|
|
3590
|
+
interface DeleteActionOptions {
|
|
3591
|
+
/** Runs in place of the default, {@link commitDeleteToScene}. */
|
|
3592
|
+
commit?: (ids: readonly NodeId[], deps: ActionDeps) => void;
|
|
3593
|
+
}
|
|
3594
|
+
/** The default commit: removes `ids` and their dependents as one undo entry,
|
|
3595
|
+
* then empties the selection. */
|
|
3596
|
+
declare function commitDeleteToScene(ids: readonly NodeId[], deps: ActionDeps): void;
|
|
3597
|
+
/** Delete on Delete and Backspace: hands the selected ids to `commit`. */
|
|
3598
|
+
declare function createDeleteAction(opts?: DeleteActionOptions): Action & {
|
|
3599
|
+
requires: string[];
|
|
3600
|
+
};
|
|
3601
|
+
/**
|
|
3602
|
+
* Removes every selected node from the scene as one undo entry. Undo restores
|
|
3603
|
+
* everything the removal cascaded — a container's children and a deleted
|
|
3604
|
+
* node's dependents come back with it, at their own slots.
|
|
3605
|
+
*/
|
|
3606
|
+
declare const deleteAction: Action & {
|
|
3607
|
+
requires: string[];
|
|
3608
|
+
};
|
|
3609
|
+
|
|
3631
3610
|
/**
|
|
3632
3611
|
* Tuning for {@link makePinchZoomAction}.
|
|
3633
3612
|
*/
|
|
@@ -4323,318 +4302,6 @@ interface UseStickyToolOptions extends InsertToolOptions, StickyStyle {
|
|
|
4323
4302
|
*/
|
|
4324
4303
|
declare function useStickyTool(options?: UseStickyToolOptions): Tool;
|
|
4325
4304
|
|
|
4326
|
-
/** The part of a scene a rig's skins read and write. */
|
|
4327
|
-
interface SkinScene<TPose> {
|
|
4328
|
-
get(id: NodeId): {
|
|
4329
|
-
pose: TPose;
|
|
4330
|
-
data?: unknown;
|
|
4331
|
-
} | undefined;
|
|
4332
|
-
readonly overrides: PoseOverrides<TPose>;
|
|
4333
|
-
setPose(id: NodeId, pose: TPose): void;
|
|
4334
|
-
update(id: NodeId, patch: {
|
|
4335
|
-
data: never;
|
|
4336
|
-
}): void;
|
|
4337
|
-
}
|
|
4338
|
-
/** Where a node's path is drawn, for a skin to bend: `null` for a node with none. */
|
|
4339
|
-
type RestPath<TPose> = (node: {
|
|
4340
|
-
pose: TPose;
|
|
4341
|
-
data?: unknown;
|
|
4342
|
-
}) => Path | null;
|
|
4343
|
-
/** The path in a node's `data.path`, carried through its pose as `kit:path` paints it. */
|
|
4344
|
-
declare function dataRestPath<TPose>(node: {
|
|
4345
|
-
pose: TPose;
|
|
4346
|
-
data?: unknown;
|
|
4347
|
-
}): Path | null;
|
|
4348
|
-
|
|
4349
|
-
/** The part of a scene a rig writes to. */
|
|
4350
|
-
interface RigScene<TPose> extends SkinScene<TPose> {
|
|
4351
|
-
batch<T>(label: string, fn: () => T): T;
|
|
4352
|
-
}
|
|
4353
|
-
/** What a `RigApply` knows about the node it is posing. */
|
|
4354
|
-
interface RigApplyContext<TPose> {
|
|
4355
|
-
/** The joint the node rides. */
|
|
4356
|
-
joint: string;
|
|
4357
|
-
node: NodeId;
|
|
4358
|
-
/** The node's document pose when the rig was bound — where it sits at the
|
|
4359
|
-
* bind pose. */
|
|
4360
|
-
rest: TPose;
|
|
4361
|
-
/** The joint's world transform at the bind pose. */
|
|
4362
|
-
restWorld: GlMat3;
|
|
4363
|
-
/** `world * inverse(restWorld)`: the motion since the bind pose, in world
|
|
4364
|
-
* space. Carrying `rest` by it is what welding the node to the joint means. */
|
|
4365
|
-
fromRest: GlMat3;
|
|
4366
|
-
}
|
|
4367
|
-
/** Turns a joint's world transform into a pose for one bound node. The only
|
|
4368
|
-
* part of a rig that knows the scene's pose shape. */
|
|
4369
|
-
type RigApply<TPose> = (world: GlMat3, ctx: RigApplyContext<TPose>) => TPose;
|
|
4370
|
-
/** Options for `bindRig`. */
|
|
4371
|
-
interface BindRigOptions<TPose> {
|
|
4372
|
-
scene: RigScene<TPose>;
|
|
4373
|
-
skeleton: Skeleton;
|
|
4374
|
-
/** Joint name → the node or nodes that ride it. Each node keeps the offset
|
|
4375
|
-
* from its joint that it has at the bind pose. */
|
|
4376
|
-
bindings?: Readonly<Record<string, NodeId | readonly NodeId[]>>;
|
|
4377
|
-
/** Node id → the weights its path bends by. Where a bound node moves whole with one joint,
|
|
4378
|
-
* a skinned node's points each follow their own joints, and the rig shows the bent path
|
|
4379
|
-
* through the node's pose override, posed at the path's bounds. */
|
|
4380
|
-
skins?: Readonly<Record<NodeId, Skin>>;
|
|
4381
|
-
/** Where a skinned node's path is drawn when the rig is bound. Default
|
|
4382
|
-
* {@link dataRestPath}: the node's `data.path`, through its pose. */
|
|
4383
|
-
restPath?: RestPath<TPose>;
|
|
4384
|
-
/** Default: {@link rigidRigApply} over `descriptor`. */
|
|
4385
|
-
apply?: RigApply<TPose>;
|
|
4386
|
-
/** The descriptor the default `apply` reads and writes poses through.
|
|
4387
|
-
* Default `AUTO_POSE_DESCRIPTOR`. */
|
|
4388
|
-
descriptor?: PoseDescriptor<TPose>;
|
|
4389
|
-
}
|
|
4390
|
-
/** A skeleton bound to scene nodes, as `bindRig` returns it. */
|
|
4391
|
-
interface Rig {
|
|
4392
|
-
readonly skeleton: Skeleton;
|
|
4393
|
-
/**
|
|
4394
|
-
* The rig's pose as a value an animator moves. Its committed value starts as `{}`, the bind
|
|
4395
|
-
* pose, and each frame the rig is posed with what the target shows. A clip is a
|
|
4396
|
-
* `SampledTrack<Pose>` given this as its `target`: clips on one rig crossfade by their
|
|
4397
|
-
* `weight`s, weights short of 1 leave the rest to the committed pose, and a `spring` or
|
|
4398
|
-
* `tween` from a pose away from the committed one adds on top. `animator.hold` shows a pose made elsewhere the same way, an
|
|
4399
|
-
* IK solve included.
|
|
4400
|
-
*/
|
|
4401
|
-
readonly target: Target<Pose>;
|
|
4402
|
-
/**
|
|
4403
|
-
* Commit `pose` and move every bound node to what the target now shows, which is `pose`
|
|
4404
|
-
* unless something is animating the target; a hold on it weighs the new pose in when it is
|
|
4405
|
-
* next read, at the animator's next frame or the hold's `touch()`. Writes go through the scene's pose overrides —
|
|
4406
|
-
* no history entry, no document write, no version bump — and are committed. `root`, where
|
|
4407
|
-
* given, replaces the placement, as {@link Rig.place}.
|
|
4408
|
-
*/
|
|
4409
|
-
pose(pose: Pose, root?: GlMat3): void;
|
|
4410
|
-
/** Place the rig in the world by `root`, which may mirror it, and pose it there. It stays
|
|
4411
|
-
* until placed again; with no `root`, the rig goes back to where its skeleton puts it. */
|
|
4412
|
-
place(root?: GlMat3): void;
|
|
4413
|
-
/** The joint world transforms as the rig was last posed, root applied. */
|
|
4414
|
-
world(): ReadonlyMap<string, GlMat3>;
|
|
4415
|
-
/** Write the current frame into the bound nodes' document poses as one
|
|
4416
|
-
* undo entry, and drop the overrides. A skinned node's bent path goes into
|
|
4417
|
-
* its `data.path`. Later frames stay relative to the bind-time rest, so
|
|
4418
|
-
* baking does not compound. */
|
|
4419
|
-
bake(label?: string): void;
|
|
4420
|
-
/** Drop the overrides; the nodes show their document poses again until the
|
|
4421
|
-
* rig is next posed. */
|
|
4422
|
-
release(): void;
|
|
4423
|
-
}
|
|
4424
|
-
/**
|
|
4425
|
-
* Carries a node rigidly with its joint: the rest pose's center moves by
|
|
4426
|
-
* `fromRest`, and its rotation turns with the rest pose's x-axis. Scale in the
|
|
4427
|
-
* joint chain moves positions but not sizes — the pose model holds no shear,
|
|
4428
|
-
* and a sized pose under anisotropic scale would need one. Write an `apply`
|
|
4429
|
-
* that reads `world` to size nodes from joint scale.
|
|
4430
|
-
*/
|
|
4431
|
-
declare function rigidRigApply<TPose>(descriptor: PoseDescriptor<TPose>): RigApply<TPose>;
|
|
4432
|
-
/**
|
|
4433
|
-
* Bind a skeleton's joints to scene nodes. Nodes are written in world space
|
|
4434
|
-
* and the rig resolves its own hierarchy, so bound nodes are best left
|
|
4435
|
-
* unparented, or under containers whose pose does not compose into theirs;
|
|
4436
|
-
* the scene's tree stays free to order and group them for drawing.
|
|
4437
|
-
*/
|
|
4438
|
-
declare function bindRig<TPose>(options: BindRigOptions<TPose>): Rig;
|
|
4439
|
-
|
|
4440
|
-
/** What a rig reads from node data: a `skeleton` on the node that is the rig, and on the nodes
|
|
4441
|
-
* under it a `skin` for a path that bends or a `joint` for a node that rides one whole. */
|
|
4442
|
-
interface RigNodeData {
|
|
4443
|
-
/** Joints relative to the node's pose: its box's top-left corner, turned as the node is. */
|
|
4444
|
-
skeleton?: Skeleton;
|
|
4445
|
-
skin?: Skin;
|
|
4446
|
-
joint?: string;
|
|
4447
|
-
}
|
|
4448
|
-
/** Weights to bind in place of the document's, and word of when they change. A `RigEditState`
|
|
4449
|
-
* is one: it holds what a stroke of the weight tool has painted and not yet written. */
|
|
4450
|
-
interface PaintedSkins {
|
|
4451
|
-
/** By node. A new map whenever the weights change. */
|
|
4452
|
-
painted(): ReadonlyMap<NodeId, Skin>;
|
|
4453
|
-
listen(fn: () => void): () => void;
|
|
4454
|
-
}
|
|
4455
|
-
/** The part of a scene `rigFromNode` reads. */
|
|
4456
|
-
interface RigNodeSource<TPose> {
|
|
4457
|
-
get(id: NodeId): {
|
|
4458
|
-
pose: TPose;
|
|
4459
|
-
data?: unknown;
|
|
4460
|
-
} | undefined;
|
|
4461
|
-
childrenOf(id: NodeId): readonly NodeId[];
|
|
4462
|
-
}
|
|
4463
|
-
/** The skeleton, bindings, and skins a rig node declares, as `bindRig` takes them. */
|
|
4464
|
-
interface RigNodeParts {
|
|
4465
|
-
skeleton: Skeleton;
|
|
4466
|
-
bindings: Record<string, NodeId[]>;
|
|
4467
|
-
skins: Record<NodeId, Skin>;
|
|
4468
|
-
}
|
|
4469
|
-
/**
|
|
4470
|
-
* A skeleton as a rig node's data keeps it, moved to where the node's pose puts it: its root
|
|
4471
|
-
* joints are offset from the pose box's top-left corner and turned as the node is. Joints
|
|
4472
|
-
* under a root are relative to their parents and are left as they are.
|
|
4473
|
-
*/
|
|
4474
|
-
declare function placeSkeleton<TPose>(skeleton: Skeleton, pose: TPose, descriptor?: PoseDescriptor<TPose>): Skeleton;
|
|
4475
|
-
/** The inverse of {@link placeSkeleton}: a skeleton in the scene's space, as the node at
|
|
4476
|
-
* `pose` would keep it in its data. */
|
|
4477
|
-
declare function unplaceSkeleton<TPose>(skeleton: Skeleton, pose: TPose, descriptor?: PoseDescriptor<TPose>): Skeleton;
|
|
4478
|
-
/**
|
|
4479
|
-
* Read a rig out of the scene: the skeleton in `id`'s `data.skeleton`, placed by that node's
|
|
4480
|
-
* pose, and under it every node whose data has a `skin` or names a `joint`.
|
|
4481
|
-
*/
|
|
4482
|
-
declare function rigFromNode<TPose>(scene: RigNodeSource<TPose>, id: NodeId, descriptor?: PoseDescriptor<TPose>): RigNodeParts;
|
|
4483
|
-
/** Options for `useRigNode`. */
|
|
4484
|
-
interface UseRigNodeOptions<TPose> extends Pick<BindRigOptions<TPose>, 'apply' | 'descriptor' | 'restPath'> {
|
|
4485
|
-
scene: RigScene<TPose> & RigNodeSource<TPose> & {
|
|
4486
|
-
subscribe(listener: () => void): () => void;
|
|
4487
|
-
getVersion(): number;
|
|
4488
|
-
};
|
|
4489
|
-
/** The node whose data holds the skeleton. */
|
|
4490
|
-
node: NodeId;
|
|
4491
|
-
/** Weights bound in place of a node's `data.skin` while they are held. Give it the
|
|
4492
|
-
* `RigEditState` the weight tool has, and a stroke bends the path as it is painted. */
|
|
4493
|
-
painting?: PaintedSkins;
|
|
4494
|
-
}
|
|
4495
|
-
/**
|
|
4496
|
-
* A {@link Rig} read from a node, as {@link rigFromNode} reads it. It is bound again when the
|
|
4497
|
-
* rig node or a node under it changes its pose or data, or when nodes under it come or go; an
|
|
4498
|
-
* edit elsewhere in the scene leaves it alone. A rig bound again keeps its `target`, with the
|
|
4499
|
-
* animations running on it, its committed pose, and its placement, unless the skeleton's
|
|
4500
|
-
* joints were added, removed, renamed, or reordered. Then it has a new `target`, which takes
|
|
4501
|
-
* over the placement and the pose of every joint the skeleton still names. Animations go on
|
|
4502
|
-
* running on the target they were started on and show through the new one, so a joint that
|
|
4503
|
-
* was renamed stops moving.
|
|
4504
|
-
*/
|
|
4505
|
-
declare function useRigNode<TPose>(options: UseRigNodeOptions<TPose>): Rig;
|
|
4506
|
-
|
|
4507
|
-
/** What the bone and weight tools share between gestures: the joint they act on, and the
|
|
4508
|
-
* weights a stroke has painted and not yet written. */
|
|
4509
|
-
interface RigEditState extends PaintedSkins {
|
|
4510
|
-
/** The active joint's name, or `null`. */
|
|
4511
|
-
active(): string | null;
|
|
4512
|
-
setActive(joint: string | null): void;
|
|
4513
|
-
/** Weights a stroke of the weight tool has painted and not yet written, by node. Empty
|
|
4514
|
-
* between strokes. `useRigNode` given this state as `painting` binds them as they change. */
|
|
4515
|
-
painted(): ReadonlyMap<NodeId, Skin>;
|
|
4516
|
-
/** Replace the painted weights; `null` empties them. */
|
|
4517
|
-
paint(next: ReadonlyMap<NodeId, Skin> | null): void;
|
|
4518
|
-
/** Notified when the active joint or the painted weights change. Returns an unsubscribe. */
|
|
4519
|
-
listen(fn: () => void): () => void;
|
|
4520
|
-
}
|
|
4521
|
-
/** A `RigEditState` with no joint active. Hand one to both tools so a joint picked with the
|
|
4522
|
-
* bone tool is the one the weight tool paints. */
|
|
4523
|
-
declare function createRigEditState(): RigEditState;
|
|
4524
|
-
|
|
4525
|
-
/** Options for `useBoneTool`. */
|
|
4526
|
-
interface UseBoneToolOptions {
|
|
4527
|
-
scene: Scene<unknown, string, unknown>;
|
|
4528
|
-
/** The node whose data holds the skeleton, or will once a bone is drawn: usually read from
|
|
4529
|
-
* the selection. `null` leaves the tool with nothing to edit. */
|
|
4530
|
-
rig: () => NodeId | null;
|
|
4531
|
-
/** Shared with `useWeightTool`, so both act on one joint. Default: the tool's own. */
|
|
4532
|
-
state?: RigEditState;
|
|
4533
|
-
/** Override the default keybinding (`{ key: 'J' }`). Pass `null` to omit. */
|
|
4534
|
-
keybinding?: ToolKeybinding | null;
|
|
4535
|
-
/** Screen px around a joint within which a press takes it. Default 10. */
|
|
4536
|
-
reach?: number;
|
|
4537
|
-
}
|
|
4538
|
-
/**
|
|
4539
|
-
* Draws and edits the skeleton in a node's `data.skeleton`. A drag on a joint moves it, with
|
|
4540
|
-
* the joints under it; a drag from anywhere else draws a bone, from the active joint if there
|
|
4541
|
-
* is one and from the press if not, and the new joint becomes the active one. A click picks
|
|
4542
|
-
* the active joint or clears it, Delete removes it with everything under it, taking its
|
|
4543
|
-
* weights out of every skin beneath the rig node, and Escape clears it. Each edit is one undo
|
|
4544
|
-
* entry.
|
|
4545
|
-
*/
|
|
4546
|
-
declare function useBoneTool(options: UseBoneToolOptions): Tool;
|
|
4547
|
-
|
|
4548
|
-
/** A rig node and its skeleton in the scene's space, as the rig tools edit and draw it. */
|
|
4549
|
-
interface PlacedRig {
|
|
4550
|
-
id: NodeId;
|
|
4551
|
-
skeleton: Skeleton;
|
|
4552
|
-
}
|
|
4553
|
-
/** The rig at node `id`, an empty skeleton for a node that has none yet, or `null` when
|
|
4554
|
-
* there is no such node. */
|
|
4555
|
-
declare function placedRig(scene: {
|
|
4556
|
-
get(id: NodeId): {
|
|
4557
|
-
pose: unknown;
|
|
4558
|
-
data?: unknown;
|
|
4559
|
-
} | undefined;
|
|
4560
|
-
}, id: NodeId | null): PlacedRig | null;
|
|
4561
|
-
|
|
4562
|
-
/**
|
|
4563
|
-
* A screen-space layer drawing a skeleton as bones and joints at a constant size: a line from
|
|
4564
|
-
* each joint to its parent, a ring on each joint, and the active joint filled.
|
|
4565
|
-
*/
|
|
4566
|
-
declare function createBoneOverlay(source: {
|
|
4567
|
-
id: string;
|
|
4568
|
-
/** The skeleton to draw, in the scene's space, or `null` for none. */
|
|
4569
|
-
skeleton(): Skeleton | null;
|
|
4570
|
-
active(): string | null;
|
|
4571
|
-
subscribe(fn: () => void): () => void;
|
|
4572
|
-
/** Joint dot radius in screen px, read each frame. Default `JOINT_RADIUS_PX`. */
|
|
4573
|
-
jointRadiusPx?: () => number | undefined;
|
|
4574
|
-
}): RenderLayer<unknown>;
|
|
4575
|
-
|
|
4576
|
-
/** Options for `useWeightTool`. */
|
|
4577
|
-
interface UseWeightToolOptions {
|
|
4578
|
-
scene: Scene<unknown, string, unknown>;
|
|
4579
|
-
/** The node whose data holds the skeleton; the tool paints the paths under it. */
|
|
4580
|
-
rig: () => NodeId | null;
|
|
4581
|
-
/** Shared with `useBoneTool`, so both act on one joint. Default: the tool's own. */
|
|
4582
|
-
state?: RigEditState;
|
|
4583
|
-
/** Override the default keybinding (`{ key: 'W' }`). Pass `null` to omit. */
|
|
4584
|
-
keybinding?: ToolKeybinding | null;
|
|
4585
|
-
/** The brush's radius in screen px. Default 24. */
|
|
4586
|
-
radius?: number;
|
|
4587
|
-
/** Screen px around a joint within which a click picks it. Default 10. */
|
|
4588
|
-
reach?: number;
|
|
4589
|
-
}
|
|
4590
|
-
/**
|
|
4591
|
-
* Paints how much the active joint weighs each point of the paths under a rig node, into
|
|
4592
|
-
* their `data.skin`. A click on a joint makes it the active one. A drag is a round brush:
|
|
4593
|
-
* points under it follow the active joint more, the nearer the brush's center, and their
|
|
4594
|
-
* other joints give way; with Alt held they follow it less. A click away from any joint is
|
|
4595
|
-
* one dab. Every point shows as a dot colored by the active joint's share of it. A stroke is
|
|
4596
|
-
* one undo entry, and until it ends its weights are in `state.painted()`, which `useRigNode`
|
|
4597
|
-
* binds when given the same `state` as `painting`.
|
|
4598
|
-
*/
|
|
4599
|
-
declare function useWeightTool(options: UseWeightToolOptions): Tool;
|
|
4600
|
-
|
|
4601
|
-
/** One path under the rig node, where it is drawn, with the weights now showing. */
|
|
4602
|
-
interface WeighedPath {
|
|
4603
|
-
id: NodeId;
|
|
4604
|
-
path: PolygonPath;
|
|
4605
|
-
skin: Skin;
|
|
4606
|
-
}
|
|
4607
|
-
/** What the weight tool's actions read and write, all of it the tool's own. */
|
|
4608
|
-
interface WeightEnv {
|
|
4609
|
-
scene(): Scene<unknown, string, unknown>;
|
|
4610
|
-
placed(): PlacedRig | null;
|
|
4611
|
-
state: RigEditState;
|
|
4612
|
-
/** Screen px around a joint within which a click picks it. */
|
|
4613
|
-
reachPx(): number;
|
|
4614
|
-
/** The brush's radius in screen px. */
|
|
4615
|
-
radiusPx(): number;
|
|
4616
|
-
/** Weights a stroke has painted and not yet committed, by node. */
|
|
4617
|
-
painted(): ReadonlyMap<NodeId, Skin>;
|
|
4618
|
-
paint(next: ReadonlyMap<NodeId, Skin> | null): void;
|
|
4619
|
-
}
|
|
4620
|
-
/** Every path under the rig node, with what `env.painted()` holds for it in place of its
|
|
4621
|
-
* `data.skin`. */
|
|
4622
|
-
declare function weighedPaths(env: Pick<WeightEnv, 'scene' | 'placed' | 'painted'>): WeighedPath[];
|
|
4623
|
-
|
|
4624
|
-
/**
|
|
4625
|
-
* A screen-space layer drawing a dot on every point of every path under a rig, anchors and
|
|
4626
|
-
* curve handles alike, colored by how much the active joint weighs it. With no joint active
|
|
4627
|
-
* the dots are gray.
|
|
4628
|
-
*/
|
|
4629
|
-
declare function createWeightOverlay(source: {
|
|
4630
|
-
id: string;
|
|
4631
|
-
paths(): readonly WeighedPath[];
|
|
4632
|
-
active(): string | null;
|
|
4633
|
-
subscribe(fn: () => void): () => void;
|
|
4634
|
-
/** Point dot radius in screen px, read each frame. Default `POINT_RADIUS_PX`. */
|
|
4635
|
-
pointRadiusPx?: () => number | undefined;
|
|
4636
|
-
}): RenderLayer<unknown>;
|
|
4637
|
-
|
|
4638
4305
|
/**
|
|
4639
4306
|
* In-progress pen anchor. A click places a corner, with no handles. A drag
|
|
4640
4307
|
* sets `outHandle` to the drag point and `inHandle` to its mirror through
|
|
@@ -5297,6 +4964,8 @@ interface UseHoverTrackingArgs {
|
|
|
5297
4964
|
id: NodeId;
|
|
5298
4965
|
} | null;
|
|
5299
4966
|
enabled?: boolean;
|
|
4967
|
+
/** Called when the hovered id changes, `null` once the pointer is over no node or has left. */
|
|
4968
|
+
onChange?: (id: NodeId | null) => void;
|
|
5300
4969
|
}
|
|
5301
4970
|
/** What `useHoverTracking` returns. Both members keep their identity. */
|
|
5302
4971
|
interface HoverTracking {
|
|
@@ -5381,96 +5050,11 @@ interface SceneCanvasPointerProps {
|
|
|
5381
5050
|
* behavior, so a pick it made is already in the selection, and fires
|
|
5382
5051
|
* again on a node that was already picked. */
|
|
5383
5052
|
onClick?: (hit: SceneCanvasHit | null) => void;
|
|
5053
|
+
/** Called when the topmost pickable node under the pointer changes, with
|
|
5054
|
+
* its id, and with `null` once there is none or the pointer leaves. */
|
|
5055
|
+
onHover?: (id: string | null) => void;
|
|
5384
5056
|
}
|
|
5385
5057
|
|
|
5386
|
-
/**
|
|
5387
|
-
* The kit's built-in shape kinds — one table, every other spelling derived.
|
|
5388
|
-
*
|
|
5389
|
-
* This module imports nothing on purpose: `useBuiltinShapeTools` imports the
|
|
5390
|
-
* package barrel, so anything barrel-reachable that needs these lists at
|
|
5391
|
-
* module-evaluation time must not route through it.
|
|
5392
|
-
*/
|
|
5393
|
-
/** What the kit knows about one built-in shape kind. */
|
|
5394
|
-
interface ShapeKindDescriptor {
|
|
5395
|
-
/** Mounted as a built-in shape tool by `useBuiltinShapeTools`, and so a
|
|
5396
|
-
* member of `BuiltinShapeToolId` / `KIT_SHAPE_KINDS`. `image` is false:
|
|
5397
|
-
* `useImageTool` needs a `src` and can't be auto-mounted. */
|
|
5398
|
-
readonly tool: boolean;
|
|
5399
|
-
/** `insertAction` emits an `insertPreview` overlay for this kind, and the
|
|
5400
|
-
* dispatcher overlay layer knows how to draw it. Kinds without one still
|
|
5401
|
-
* commit; they just have no live drag preview. */
|
|
5402
|
-
readonly insertPreview: boolean;
|
|
5403
|
-
/** A node of this kind is a text node: an insert drops into its caret, and
|
|
5404
|
-
* its properties carry the text groups. Absent, it is not. */
|
|
5405
|
-
readonly text?: boolean;
|
|
5406
|
-
}
|
|
5407
|
-
/**
|
|
5408
|
-
* Declaration order is the enumeration order of every derived list —
|
|
5409
|
-
* `KIT_SHAPE_KINDS`, and through it `defaultNodeRouting` /
|
|
5410
|
-
* `defaultNodeProperties` / `BUILTIN_TOOL_IDS`.
|
|
5411
|
-
*/
|
|
5412
|
-
declare const SHAPE_KINDS: {
|
|
5413
|
-
readonly rect: {
|
|
5414
|
-
readonly tool: true;
|
|
5415
|
-
readonly insertPreview: true;
|
|
5416
|
-
};
|
|
5417
|
-
readonly ellipse: {
|
|
5418
|
-
readonly tool: true;
|
|
5419
|
-
readonly insertPreview: true;
|
|
5420
|
-
};
|
|
5421
|
-
readonly line: {
|
|
5422
|
-
readonly tool: true;
|
|
5423
|
-
readonly insertPreview: true;
|
|
5424
|
-
};
|
|
5425
|
-
readonly polygon: {
|
|
5426
|
-
readonly tool: true;
|
|
5427
|
-
readonly insertPreview: true;
|
|
5428
|
-
};
|
|
5429
|
-
readonly star: {
|
|
5430
|
-
readonly tool: true;
|
|
5431
|
-
readonly insertPreview: true;
|
|
5432
|
-
};
|
|
5433
|
-
readonly pen: {
|
|
5434
|
-
readonly tool: true;
|
|
5435
|
-
readonly insertPreview: false;
|
|
5436
|
-
};
|
|
5437
|
-
readonly pencil: {
|
|
5438
|
-
readonly tool: true;
|
|
5439
|
-
readonly insertPreview: true;
|
|
5440
|
-
};
|
|
5441
|
-
readonly lasso: {
|
|
5442
|
-
readonly tool: true;
|
|
5443
|
-
readonly insertPreview: false;
|
|
5444
|
-
};
|
|
5445
|
-
readonly text: {
|
|
5446
|
-
readonly tool: true;
|
|
5447
|
-
readonly insertPreview: true;
|
|
5448
|
-
readonly text: true;
|
|
5449
|
-
};
|
|
5450
|
-
readonly sticky: {
|
|
5451
|
-
readonly tool: true;
|
|
5452
|
-
readonly insertPreview: true;
|
|
5453
|
-
readonly text: true;
|
|
5454
|
-
};
|
|
5455
|
-
readonly image: {
|
|
5456
|
-
readonly tool: false;
|
|
5457
|
-
readonly insertPreview: true;
|
|
5458
|
-
};
|
|
5459
|
-
};
|
|
5460
|
-
/** Every kind in the table, tool or not. */
|
|
5461
|
-
type ShapeKind = keyof typeof SHAPE_KINDS;
|
|
5462
|
-
/** The keys of a shape-kind table whose descriptor sets `F` to `true`. */
|
|
5463
|
-
type ShapeKindsWhere<T, F extends keyof ShapeKindDescriptor> = {
|
|
5464
|
-
[K in keyof T]: T[K] extends Record<F, true> ? K : never;
|
|
5465
|
-
}[keyof T];
|
|
5466
|
-
/** Built-in shape tool ids handled by `useBuiltinShapeTools`. */
|
|
5467
|
-
type BuiltinShapeToolId = ShapeKindsWhere<typeof SHAPE_KINDS, 'tool'>;
|
|
5468
|
-
/** The insert kinds the kit's dispatcher overlay layer knows how to render.
|
|
5469
|
-
* Consumer-defined kinds fall outside it: no live preview, commit unaffected. */
|
|
5470
|
-
type KitInsertShape = ShapeKindsWhere<typeof SHAPE_KINDS, 'insertPreview'>;
|
|
5471
|
-
/** Runtime, iterable list of the shape-tool ids in `BuiltinShapeToolId`. */
|
|
5472
|
-
declare const KIT_SHAPE_KINDS: readonly BuiltinShapeToolId[];
|
|
5473
|
-
|
|
5474
5058
|
/**
|
|
5475
5059
|
* Turns pasted or dropped plain text into a text node sized to the string. Registered nowhere by
|
|
5476
5060
|
* default: a canvas opts in with `ingestion={{ handlers: [kitTextHandler] }}`.
|
|
@@ -5606,6 +5190,9 @@ interface NodeRouting {
|
|
|
5606
5190
|
/** Enumerate registered kinds in registration order. */
|
|
5607
5191
|
list(): readonly NodeRoutingEntry[];
|
|
5608
5192
|
}
|
|
5193
|
+
/** The routing kind of a node: the name of the first entry whose `matches(data, node)` returns
|
|
5194
|
+
* true, or `'unknown'`. What `NodeRouting.classify` answers, for a caller holding a plain list. */
|
|
5195
|
+
declare function routeKind(entries: readonly NodeRoutingEntry[], data: unknown, node?: RoutedNode): string;
|
|
5609
5196
|
/** Build a registry of per-node-kind routing entries. Registering a duplicate
|
|
5610
5197
|
* kind name throws. */
|
|
5611
5198
|
declare function createNodeRouting(): NodeRouting;
|
|
@@ -6212,6 +5799,12 @@ interface CanvasProps<TPose = unknown> extends SurfaceSizeProps {
|
|
|
6212
5799
|
* zoom, whatever the scene's world unit. A number holds a fixed world
|
|
6213
5800
|
* tolerance instead. */
|
|
6214
5801
|
flattenTolerance?: FlattenTolerance;
|
|
5802
|
+
/** How images drawn smaller than their pixels are filtered, forwarded to
|
|
5803
|
+
* `WeaselRendererOptions.imageMinification`. Default `'linear'`, one tap,
|
|
5804
|
+
* which aliases an image drawn at half size or less; `'auto'` builds an
|
|
5805
|
+
* image's mipmaps the first time a frame draws it that small. Changing it
|
|
5806
|
+
* re-uploads every image. */
|
|
5807
|
+
imageMinification?: ImageMinification;
|
|
6215
5808
|
/** Which unchanged layers the renderer keeps as pixels between frames and
|
|
6216
5809
|
* composites as one quad, instead of drawing their commands again — see
|
|
6217
5810
|
* `RenderLayer.retain` and `LayerRetainPolicy`. `false` retains no layer on
|
|
@@ -6298,11 +5891,14 @@ interface CanvasProps<TPose = unknown> extends SurfaceSizeProps {
|
|
|
6298
5891
|
/** Inline style for the `<canvas>` this component renders; a tool's cursor
|
|
6299
5892
|
* is merged over it. Not applied under `paintInto`, where only that cursor
|
|
6300
5893
|
* is written, onto the input element. */
|
|
6301
|
-
style?:
|
|
5894
|
+
style?: react__default.CSSProperties;
|
|
6302
5895
|
/** Tab order of the `<canvas>` this component renders. Default 0, so the
|
|
6303
5896
|
* canvas is focusable. Not applied under `paintInto`: whether the input
|
|
6304
5897
|
* element can take focus is the caller's to decide. */
|
|
6305
5898
|
tabIndex?: number;
|
|
5899
|
+
/** Accessible name of the `<canvas>` this component renders; devtools lists the canvas under it.
|
|
5900
|
+
* Not applied under `paintInto`. */
|
|
5901
|
+
'aria-label'?: string;
|
|
6306
5902
|
/** Fired when the element input comes from gains focus: the canvas, or
|
|
6307
5903
|
* under `paintInto` the `inputElement`. Called with the DOM event. */
|
|
6308
5904
|
onFocus?: (event: FocusEvent) => void;
|
|
@@ -6327,7 +5923,7 @@ interface CanvasProps<TPose = unknown> extends SurfaceSizeProps {
|
|
|
6327
5923
|
* (move/resize/rotate) instead of the committed scene; an id outside the active overlay
|
|
6328
5924
|
* falls back to the adapter.
|
|
6329
5925
|
*/
|
|
6330
|
-
helpersRef?:
|
|
5926
|
+
helpersRef?: react__default.MutableRefObject<CanvasHelpers<TPose> | null>;
|
|
6331
5927
|
/**
|
|
6332
5928
|
* Debug overlay configuration.
|
|
6333
5929
|
* - `undefined` (default): read `?debug=…` from the URL.
|
|
@@ -6341,7 +5937,7 @@ interface CanvasProps<TPose = unknown> extends SurfaceSizeProps {
|
|
|
6341
5937
|
debug?: DebugConfig | false;
|
|
6342
5938
|
/** Test-only escape hatch: writes the live debug sink to this ref so tests
|
|
6343
5939
|
* can call `snapshot()` after a render. No effect when debug is off. */
|
|
6344
|
-
debugSinkRef?:
|
|
5940
|
+
debugSinkRef?: react__default.MutableRefObject<CanvasDebugSink | null>;
|
|
6345
5941
|
/**
|
|
6346
5942
|
* Shader programs to compile before the frame that first draws them; one
|
|
6347
5943
|
* not named here compiles on that frame. Each handle comes from a
|
|
@@ -6414,6 +6010,115 @@ interface CanvasProps<TPose = unknown> extends SurfaceSizeProps {
|
|
|
6414
6010
|
* Pass a stable object: a new one each render re-registers it. */
|
|
6415
6011
|
declare function useSnapSource(source: SnapSource): void;
|
|
6416
6012
|
|
|
6013
|
+
/**
|
|
6014
|
+
* Add a follower to the `transformFollowers` dep for the lifetime of the
|
|
6015
|
+
* calling component, after every one already there in its scope and the
|
|
6016
|
+
* scopes above. `follower` is read each time the dep is; answering null adds
|
|
6017
|
+
* nothing.
|
|
6018
|
+
*/
|
|
6019
|
+
declare function useTransformFollower(follower: () => TransformFollower | null): void;
|
|
6020
|
+
|
|
6021
|
+
/**
|
|
6022
|
+
* The kit's built-in shape kinds — one table, every other spelling derived.
|
|
6023
|
+
*
|
|
6024
|
+
* This module imports nothing on purpose: `useBuiltinShapeTools` imports the
|
|
6025
|
+
* package barrel, so anything barrel-reachable that needs these lists at
|
|
6026
|
+
* module-evaluation time must not route through it.
|
|
6027
|
+
*/
|
|
6028
|
+
/** What the kit knows about one built-in shape kind. */
|
|
6029
|
+
interface ShapeKindDescriptor {
|
|
6030
|
+
/** Mounted as a built-in shape tool by `useBuiltinShapeTools`, and so a
|
|
6031
|
+
* member of `BuiltinShapeToolId` / `KIT_SHAPE_KINDS`. `image` is false:
|
|
6032
|
+
* `useImageTool` needs a `src` and can't be auto-mounted. */
|
|
6033
|
+
readonly tool: boolean;
|
|
6034
|
+
/** `insertAction` emits an `insertPreview` overlay for this kind, and the
|
|
6035
|
+
* dispatcher overlay layer knows how to draw it. Kinds without one still
|
|
6036
|
+
* commit; they just have no live drag preview. */
|
|
6037
|
+
readonly insertPreview: boolean;
|
|
6038
|
+
/** The tool family a kind with a tool belongs to: which built-in tool set
|
|
6039
|
+
* names it, and so which palette group it sits in. */
|
|
6040
|
+
readonly family?: 'shape' | 'draw' | 'select' | 'type';
|
|
6041
|
+
/** A node of this kind is a text node: an insert drops into its caret, and
|
|
6042
|
+
* its properties carry the text groups. Absent, it is not. */
|
|
6043
|
+
readonly text?: boolean;
|
|
6044
|
+
}
|
|
6045
|
+
/**
|
|
6046
|
+
* Declaration order is the enumeration order of every derived list —
|
|
6047
|
+
* `KIT_SHAPE_KINDS`, and through it `defaultNodeRouting` /
|
|
6048
|
+
* `defaultNodeProperties` / `BUILTIN_TOOL_IDS`.
|
|
6049
|
+
*/
|
|
6050
|
+
declare const SHAPE_KINDS: {
|
|
6051
|
+
readonly rect: {
|
|
6052
|
+
readonly tool: true;
|
|
6053
|
+
readonly insertPreview: true;
|
|
6054
|
+
readonly family: "shape";
|
|
6055
|
+
};
|
|
6056
|
+
readonly ellipse: {
|
|
6057
|
+
readonly tool: true;
|
|
6058
|
+
readonly insertPreview: true;
|
|
6059
|
+
readonly family: "shape";
|
|
6060
|
+
};
|
|
6061
|
+
readonly line: {
|
|
6062
|
+
readonly tool: true;
|
|
6063
|
+
readonly insertPreview: true;
|
|
6064
|
+
readonly family: "shape";
|
|
6065
|
+
};
|
|
6066
|
+
readonly polygon: {
|
|
6067
|
+
readonly tool: true;
|
|
6068
|
+
readonly insertPreview: true;
|
|
6069
|
+
readonly family: "shape";
|
|
6070
|
+
};
|
|
6071
|
+
readonly star: {
|
|
6072
|
+
readonly tool: true;
|
|
6073
|
+
readonly insertPreview: true;
|
|
6074
|
+
readonly family: "shape";
|
|
6075
|
+
};
|
|
6076
|
+
readonly pen: {
|
|
6077
|
+
readonly tool: true;
|
|
6078
|
+
readonly insertPreview: false;
|
|
6079
|
+
readonly family: "draw";
|
|
6080
|
+
};
|
|
6081
|
+
readonly pencil: {
|
|
6082
|
+
readonly tool: true;
|
|
6083
|
+
readonly insertPreview: true;
|
|
6084
|
+
readonly family: "draw";
|
|
6085
|
+
};
|
|
6086
|
+
readonly lasso: {
|
|
6087
|
+
readonly tool: true;
|
|
6088
|
+
readonly insertPreview: false;
|
|
6089
|
+
readonly family: "select";
|
|
6090
|
+
};
|
|
6091
|
+
readonly text: {
|
|
6092
|
+
readonly tool: true;
|
|
6093
|
+
readonly insertPreview: true;
|
|
6094
|
+
readonly text: true;
|
|
6095
|
+
readonly family: "type";
|
|
6096
|
+
};
|
|
6097
|
+
readonly sticky: {
|
|
6098
|
+
readonly tool: true;
|
|
6099
|
+
readonly insertPreview: true;
|
|
6100
|
+
readonly text: true;
|
|
6101
|
+
readonly family: "type";
|
|
6102
|
+
};
|
|
6103
|
+
readonly image: {
|
|
6104
|
+
readonly tool: false;
|
|
6105
|
+
readonly insertPreview: true;
|
|
6106
|
+
};
|
|
6107
|
+
};
|
|
6108
|
+
/** Every kind in the table, tool or not. */
|
|
6109
|
+
type ShapeKind = keyof typeof SHAPE_KINDS;
|
|
6110
|
+
/** The keys of a shape-kind table whose descriptor sets `F` to `true`. */
|
|
6111
|
+
type ShapeKindsWhere<T, F extends keyof ShapeKindDescriptor> = {
|
|
6112
|
+
[K in keyof T]: T[K] extends Record<F, true> ? K : never;
|
|
6113
|
+
}[keyof T];
|
|
6114
|
+
/** Built-in shape tool ids handled by `useBuiltinShapeTools`. */
|
|
6115
|
+
type BuiltinShapeToolId = ShapeKindsWhere<typeof SHAPE_KINDS, 'tool'>;
|
|
6116
|
+
/** The insert kinds the kit's dispatcher overlay layer knows how to render.
|
|
6117
|
+
* Consumer-defined kinds fall outside it: no live preview, commit unaffected. */
|
|
6118
|
+
type KitInsertShape = ShapeKindsWhere<typeof SHAPE_KINDS, 'insertPreview'>;
|
|
6119
|
+
/** Runtime, iterable list of the shape-tool ids in `BuiltinShapeToolId`. */
|
|
6120
|
+
declare const KIT_SHAPE_KINDS: readonly BuiltinShapeToolId[];
|
|
6121
|
+
|
|
6417
6122
|
/** Per-tool option overrides for the built-in tools.
|
|
6418
6123
|
* Each entry is a narrow subset of the underlying hook's options surface
|
|
6419
6124
|
* — just the knobs that need consumer control under the bundle pattern. */
|
|
@@ -6431,21 +6136,7 @@ interface BuiltinToolOptions {
|
|
|
6431
6136
|
sticky?: StickyStyle;
|
|
6432
6137
|
/** The knife: screen px around the first point within which a click closes the cut. */
|
|
6433
6138
|
slice?: {
|
|
6434
|
-
closeHitRadius?: number;
|
|
6435
|
-
};
|
|
6436
|
-
/** The bone and weight tools. `rig` names the node they edit; by default the one
|
|
6437
|
-
* selected node, or the nearest ancestor of it holding `data.skeleton`. `state` is the
|
|
6438
|
-
* joint they share, which a canvas otherwise makes for itself; pass the one handed to
|
|
6439
|
-
* `useRigNode` as `painting` so a stroke shows as it is painted. `reach` is the screen
|
|
6440
|
-
* px around a joint within which a press takes it. */
|
|
6441
|
-
rig?: {
|
|
6442
|
-
rig?: () => NodeId | null;
|
|
6443
|
-
state?: RigEditState;
|
|
6444
|
-
reach?: number;
|
|
6445
|
-
};
|
|
6446
|
-
/** The weight tool's brush radius, in screen px. */
|
|
6447
|
-
weight?: {
|
|
6448
|
-
radius?: number;
|
|
6139
|
+
closeHitRadius?: number;
|
|
6449
6140
|
};
|
|
6450
6141
|
}
|
|
6451
6142
|
|
|
@@ -6492,6 +6183,26 @@ interface SceneCanvasViewport {
|
|
|
6492
6183
|
recenter?: () => View | void;
|
|
6493
6184
|
}
|
|
6494
6185
|
|
|
6186
|
+
/** Built-in tool ids SceneCanvas knows how to mount, through `defaultTools` or a preset. */
|
|
6187
|
+
type BuiltinToolId = 'select' | 'hand' | BuiltinShapeToolId | 'slice';
|
|
6188
|
+
/** The selection tools: click and marquee, and the lasso. */
|
|
6189
|
+
declare const SELECT_TOOLS: ToolSet<BuiltinToolId>;
|
|
6190
|
+
/** The view tools. */
|
|
6191
|
+
declare const VIEW_TOOLS: ToolSet<BuiltinToolId>;
|
|
6192
|
+
/** The tools that drag out a closed or open primitive. */
|
|
6193
|
+
declare const SHAPE_TOOLS: ToolSet<BuiltinToolId>;
|
|
6194
|
+
/** The freehand and bezier path tools. */
|
|
6195
|
+
declare const DRAW_TOOLS: ToolSet<BuiltinToolId>;
|
|
6196
|
+
/** The text tools: text and the sticky note. */
|
|
6197
|
+
declare const TYPE_TOOLS: ToolSet<BuiltinToolId>;
|
|
6198
|
+
/** The tools that cut the page itself. */
|
|
6199
|
+
declare const PAGE_TOOLS: ToolSet<BuiltinToolId>;
|
|
6200
|
+
/** Every built-in tool, in palette order: the navigation tools, the shape-kind
|
|
6201
|
+
* table's tools in its order, then the knife. */
|
|
6202
|
+
declare const BUILTIN_TOOLS: ToolSet<BuiltinToolId>;
|
|
6203
|
+
/** Every built-in tool id, in palette order: {@link BUILTIN_TOOLS} opened. */
|
|
6204
|
+
declare const BUILTIN_TOOL_IDS: readonly BuiltinToolId[];
|
|
6205
|
+
|
|
6495
6206
|
/** Default size in CSS pixels for selection corner-handles AND their
|
|
6496
6207
|
* hit-test radius, at `targetScale = 1`. Deliberately unscaled; kit-internal
|
|
6497
6208
|
* use sites multiply by `DeviceProfile.targetScale`. */
|
|
@@ -6518,12 +6229,6 @@ interface SceneCanvasLongPress {
|
|
|
6518
6229
|
type SceneCanvasLayers<TNode extends {
|
|
6519
6230
|
id: string;
|
|
6520
6231
|
}, TPose> = LayersMap<TNode, TPose, Partial<SceneSlotConfig<TNode, TPose>>>;
|
|
6521
|
-
/** Built-in tool ids SceneCanvas knows how to mount when no `tools` prop
|
|
6522
|
-
* is supplied, via `defaultTools`. */
|
|
6523
|
-
type BuiltinToolId = 'select' | 'hand' | BuiltinShapeToolId | 'slice' | 'bone' | 'weight';
|
|
6524
|
-
/** Every built-in tool id, in palette order: the navigation tools, the shape
|
|
6525
|
-
* tools of the `core/shapeKinds` table, then the knife and the rig tools. */
|
|
6526
|
-
declare const BUILTIN_TOOL_IDS: readonly BuiltinToolId[];
|
|
6527
6232
|
|
|
6528
6233
|
/** Props for `<SceneCanvas>`. A scene is the only thing it needs. With nothing
|
|
6529
6234
|
* else it renders that scene and keeps a selection no input sets; `features`
|
|
@@ -6593,8 +6298,8 @@ type SceneCanvasProps<TData, TLayer extends string, TPose> = Omit<CanvasProps<TP
|
|
|
6593
6298
|
selectTool?: {
|
|
6594
6299
|
move?: UseMoveOptions<TPose>;
|
|
6595
6300
|
resize?: UseResizeOptions<TPose>;
|
|
6596
|
-
/** Rotation options, or `false` to
|
|
6597
|
-
* `rotate` action
|
|
6301
|
+
/** Rotation options, or `false` to hide the rotation handle and bind it to
|
|
6302
|
+
* nothing; the `rotate` action stays, for other tools and `actions.rotate`. */
|
|
6598
6303
|
rotate?: UseRotateOptions<TPose> | false;
|
|
6599
6304
|
handleHitRadius?: number;
|
|
6600
6305
|
/** Override the body-pick used on click/pointerdown. Alt-aware: receives
|
|
@@ -6706,8 +6411,8 @@ type SceneCanvasProps<TData, TLayer extends string, TPose> = Omit<CanvasProps<TP
|
|
|
6706
6411
|
* - `true` pulls in the built-in for this id (`'pen'`, `'lasso'`,
|
|
6707
6412
|
* `'hand'`, …), the same as listing it in `defaultTools`. Unknown
|
|
6708
6413
|
* built-in ids warn in dev and are ignored.
|
|
6709
|
-
* - `Tool` adds a new id or replaces an existing one
|
|
6710
|
-
* (dev-only warning
|
|
6414
|
+
* - `Tool` adds a new id or replaces an existing one in place
|
|
6415
|
+
* (dev-only warning if `defaultTools` also names that id).
|
|
6711
6416
|
* - `false` omits a bundled tool entirely.
|
|
6712
6417
|
* Auto-wiring (keybindings, dispatcher, action registry) still runs.
|
|
6713
6418
|
*
|
|
@@ -6745,12 +6450,13 @@ type SceneCanvasProps<TData, TLayer extends string, TPose> = Omit<CanvasProps<TP
|
|
|
6745
6450
|
onToolsCreated?: (tools: ToolsApi) => void;
|
|
6746
6451
|
/**
|
|
6747
6452
|
* Built-in tools SceneCanvas registers in its internal `useTools`, on top
|
|
6748
|
-
* of the ones presets bring (`select` from `pick`, `hand` from `view`)
|
|
6453
|
+
* of the ones presets bring (`select` from `pick`, `hand` from `view`):
|
|
6454
|
+
* ids, or sets of them such as `SHAPE_TOOLS`, or `withoutTools(...)` of one.
|
|
6749
6455
|
* Default: none. Each tool also registers the kit actions it binds, so
|
|
6750
6456
|
* `['rect']` brings `insert`. Ignored when the consumer supplies their own
|
|
6751
6457
|
* `tools` prop.
|
|
6752
6458
|
*/
|
|
6753
|
-
defaultTools?: readonly BuiltinToolId[];
|
|
6459
|
+
defaultTools?: readonly ToolEntry<BuiltinToolId>[];
|
|
6754
6460
|
/** Per-tool option overrides for the built-in tools. Each entry is a
|
|
6755
6461
|
* narrow subset of the underlying hook's options surface — `lasso.mode`,
|
|
6756
6462
|
* `rig.state`, etc. */
|
|
@@ -6795,8 +6501,8 @@ type SceneCanvasProps<TData, TLayer extends string, TPose> = Omit<CanvasProps<TP
|
|
|
6795
6501
|
* Given a scene node, return a short human-readable "kind" label (e.g. `'rectangle'`,
|
|
6796
6502
|
* `'sticky note'`), which the kit publishes per id into any surrounding
|
|
6797
6503
|
* `<SelectionContextProvider>`. Return `undefined` to skip an entry. When omitted,
|
|
6798
|
-
*
|
|
6799
|
-
*
|
|
6504
|
+
* each node reports its routing kind (see `routing`), and a node that routes as
|
|
6505
|
+
* `'unknown'` is left unlabeled.
|
|
6800
6506
|
*/
|
|
6801
6507
|
describeKind?: (node: Node<TData, TLayer, TPose>) => string | undefined;
|
|
6802
6508
|
/**
|
|
@@ -6960,8 +6666,8 @@ interface FeaturePreset {
|
|
|
6960
6666
|
* are standard actions: `<SceneCanvas actions>` overrides and mutes them,
|
|
6961
6667
|
* and `tune` reaches them. */
|
|
6962
6668
|
readonly actions?: readonly Action[];
|
|
6963
|
-
/** Tools it mounts: a built-in by id, or a tool of its own. */
|
|
6964
|
-
readonly tools?: readonly (BuiltinToolId | Tool)[];
|
|
6669
|
+
/** Tools it mounts: a built-in by id or a set of them, or a tool of its own. */
|
|
6670
|
+
readonly tools?: readonly (ToolEntry<BuiltinToolId> | Tool)[];
|
|
6965
6671
|
/** Its ambient bindings: an always-live entry routing a gesture to its
|
|
6966
6672
|
* actions under any tool that does not claim the gesture itself. */
|
|
6967
6673
|
readonly ambient?: (options: FeatureBindingOptions) => Contribution;
|
|
@@ -7040,7 +6746,7 @@ declare function rotateAroundAABBCenter(x: number, y: number, width: number, hei
|
|
|
7040
6746
|
|
|
7041
6747
|
declare function SceneCanvasInner<TData, TLayer extends string, TPose>(props: SceneCanvasProps<TData, TLayer, TPose> & {
|
|
7042
6748
|
presetSource: PresetSource;
|
|
7043
|
-
}, ref:
|
|
6749
|
+
}, ref: react__default.ForwardedRef<SceneCanvasApi>): react__default.JSX.Element;
|
|
7044
6750
|
/**
|
|
7045
6751
|
* The canvas component: renders a `Scene` and wires the interaction stack
|
|
7046
6752
|
* around it.
|
|
@@ -7056,9 +6762,16 @@ declare function SceneCanvasInner<TData, TLayer extends string, TPose>(props: Sc
|
|
|
7056
6762
|
* fit a prop (view control, hit queries, redraw requests).
|
|
7057
6763
|
*/
|
|
7058
6764
|
declare const SceneCanvas: <TData, TLayer extends string, TPose>(props: SceneCanvasProps<TData, TLayer, TPose> & {
|
|
7059
|
-
ref?:
|
|
6765
|
+
ref?: react__default.Ref<SceneCanvasApi>;
|
|
7060
6766
|
}) => ReturnType<typeof SceneCanvasInner>;
|
|
7061
6767
|
|
|
6768
|
+
/**
|
|
6769
|
+
* What a canvas's WebGL2 context is opened with. A context keeps the attributes of whoever opened it
|
|
6770
|
+
* first, and the renderer refuses one without a stencil buffer, so anything that may open a weasel
|
|
6771
|
+
* canvas before its first paint (a pixel reader in a test, a tenant sharing the buffer) asks for these.
|
|
6772
|
+
*/
|
|
6773
|
+
declare const CANVAS_CONTEXT_ATTRIBUTES: Readonly<WebGLContextAttributes>;
|
|
6774
|
+
|
|
7062
6775
|
/** How each `polyline` overlay role reads. An action publishes the run and
|
|
7063
6776
|
* the word; this table is the whole of the paint, for the dispatcher overlay
|
|
7064
6777
|
* and for any tool previewing the same kind of run between gestures. */
|
|
@@ -7078,8 +6791,8 @@ type LeanSceneCanvasProps<TData, TLayer extends string, TPose> = Omit<SceneCanva
|
|
|
7078
6791
|
* `viewPreset` here; pass it.
|
|
7079
6792
|
*/
|
|
7080
6793
|
declare const LeanSceneCanvas: <TData, TLayer extends string, TPose>(props: LeanSceneCanvasProps<TData, TLayer, TPose> & {
|
|
7081
|
-
ref?:
|
|
7082
|
-
}) =>
|
|
6794
|
+
ref?: react__default.Ref<SceneCanvasApi>;
|
|
6795
|
+
}) => react__default.ReactElement;
|
|
7083
6796
|
|
|
7084
6797
|
/**
|
|
7085
6798
|
* How a painter asks for part of a node's paint to land on top of the node's
|
|
@@ -7203,7 +6916,7 @@ interface CursorCoordsHudProps {
|
|
|
7203
6916
|
}
|
|
7204
6917
|
/** Debug overlay showing the pointer's client and world coordinates and the
|
|
7205
6918
|
* current frame rate, pinned to the canvas's top-right corner. */
|
|
7206
|
-
declare function CursorCoordsHud({ canvasRef, anchorRef, viewRef, toWorld, offset }: CursorCoordsHudProps):
|
|
6919
|
+
declare function CursorCoordsHud({ canvasRef, anchorRef, viewRef, toWorld, offset }: CursorCoordsHudProps): react.JSX.Element | null;
|
|
7207
6920
|
|
|
7208
6921
|
/** Props for `<PickHud>`. */
|
|
7209
6922
|
interface PickHudProps {
|
|
@@ -7231,7 +6944,20 @@ interface PickHudProps {
|
|
|
7231
6944
|
}
|
|
7232
6945
|
/** Debug overlay listing every node under the pointer, with the one a click
|
|
7233
6946
|
* would actually select shown in bold. */
|
|
7234
|
-
declare function PickHud({ canvasRef, anchorRef, viewRef, toWorld, pickEvery, pickBest, offset }: PickHudProps):
|
|
6947
|
+
declare function PickHud({ canvasRef, anchorRef, viewRef, toWorld, pickEvery, pickBest, offset }: PickHudProps): react.JSX.Element | null;
|
|
6948
|
+
|
|
6949
|
+
/**
|
|
6950
|
+
* The render walk's half of derived paths: resolving one against a scene, and
|
|
6951
|
+
* handing it to the painter.
|
|
6952
|
+
*
|
|
6953
|
+
* The resolver itself lives in `core/scene/derivedPath.ts`, beside
|
|
6954
|
+
* `derivedPose` — a *pose* can derive from a dependency's path, so
|
|
6955
|
+
* `effectivePose` has to be able to reach it.
|
|
6956
|
+
*/
|
|
6957
|
+
|
|
6958
|
+
/** `scene` read as `drawnBoundsOf` reads one, each node that shows a computed
|
|
6959
|
+
* path answering it. One object per scene, so it can key a memo. */
|
|
6960
|
+
declare function drawnBoundsScene<TData, TLayer extends string, TPose>(scene: Scene<TData, TLayer, TPose>): DrawnBoundsScene;
|
|
7235
6961
|
|
|
7236
6962
|
/**
|
|
7237
6963
|
* Synthesize a `<Canvas>`-compatible adapter from a `Scene` primitive.
|
|
@@ -7282,6 +7008,8 @@ type SceneCanvasAdapter<TData, TLayer extends string, TPose> = MoveAdapter<Node<
|
|
|
7282
7008
|
setLayout(id: string, layout: LayoutStrategy<TPose> | string | null): void;
|
|
7283
7009
|
/** Move a node to another layer — what a `setLayer` op writes through. */
|
|
7284
7010
|
setLayer(id: string, layer: TLayer): void;
|
|
7011
|
+
/** Retarget a derived node's sources — what a `setDependsOn` op writes through. */
|
|
7012
|
+
setDependsOn(id: string, dependsOn: readonly string[] | 'children' | undefined): void;
|
|
7285
7013
|
/** Hide or show a node — what a `setHidden` op writes through. */
|
|
7286
7014
|
setHidden(id: string, hidden: boolean): void;
|
|
7287
7015
|
/** Lock or unlock a node — what a `setLocked` op writes through. */
|
|
@@ -7430,22 +7158,24 @@ declare const defaultNodeProperties: readonly NodePropertiesEntry[];
|
|
|
7430
7158
|
declare const inferredNodeProperties: readonly NodePropertiesEntry[];
|
|
7431
7159
|
|
|
7432
7160
|
/**
|
|
7433
|
-
* What an in-flight gesture is proposing, resolved against the
|
|
7161
|
+
* What an in-flight gesture is proposing, resolved against the scene.
|
|
7434
7162
|
*
|
|
7435
|
-
* An ongoing action
|
|
7436
|
-
*
|
|
7437
|
-
*
|
|
7438
|
-
*
|
|
7439
|
-
*
|
|
7440
|
-
*
|
|
7163
|
+
* An ongoing action names the ids it previews on its handle. A transform —
|
|
7164
|
+
* move, resize, rotate — publishes their poses to the scene's overrides, and
|
|
7165
|
+
* other actions answer `previewPose` on the handle. Resolving them means
|
|
7166
|
+
* knowing which ids are in flight, which of those are roots, whose preview
|
|
7167
|
+
* wins when two sources name the same id, and which are merely displaced
|
|
7168
|
+
* rather than dragged. None of that is about drawing, and a consumer with its
|
|
7169
|
+
* own renderer needs all of it.
|
|
7441
7170
|
*/
|
|
7442
7171
|
|
|
7443
7172
|
/** One node an in-flight gesture is previewing, as {@link resolvePreviews} returns it. */
|
|
7444
7173
|
interface PreviewNode<TData, TLayer extends string, TPose> {
|
|
7445
7174
|
id: NodeId;
|
|
7446
|
-
/** The node as committed
|
|
7175
|
+
/** The node as committed. */
|
|
7447
7176
|
node: Node<TData, TLayer, TPose>;
|
|
7448
|
-
/** The
|
|
7177
|
+
/** The pose a source previews, else the node's effective pose — where the
|
|
7178
|
+
* scene's overrides put it mid-transform. */
|
|
7449
7179
|
pose: TPose;
|
|
7450
7180
|
/** The interim data, or the committed one when only the pose is in flight. */
|
|
7451
7181
|
data: TData;
|
|
@@ -7463,7 +7193,7 @@ interface PreviewNode<TData, TLayer extends string, TPose> {
|
|
|
7463
7193
|
* which is what lets a caller draw a container and its contents as one thing.
|
|
7464
7194
|
*
|
|
7465
7195
|
* An id with no node is skipped: an insert previews before the node it will
|
|
7466
|
-
* create exists.
|
|
7196
|
+
* create exists.
|
|
7467
7197
|
*/
|
|
7468
7198
|
declare function resolvePreviews<TData, TLayer extends string, TPose>(sources: Iterable<GesturePreviewSource>, scene: Scene<TData, TLayer, TPose>): PreviewNode<TData, TLayer, TPose>[];
|
|
7469
7199
|
/** Every entry in the forest, parents before their children. */
|
|
@@ -7629,11 +7359,11 @@ interface IconRegistryProviderProps {
|
|
|
7629
7359
|
children: ReactNode;
|
|
7630
7360
|
}
|
|
7631
7361
|
/** Holds one icon registry for everything below it. */
|
|
7632
|
-
declare function IconRegistryProvider({ icons, variants, children }: IconRegistryProviderProps):
|
|
7362
|
+
declare function IconRegistryProvider({ icons, variants, children }: IconRegistryProviderProps): react.JSX.Element;
|
|
7633
7363
|
/** Mount an empty {@link IconRegistryProvider} only when none is already in scope. */
|
|
7634
7364
|
declare function IconRegistryProviderIfRoot({ children }: {
|
|
7635
7365
|
children: ReactNode;
|
|
7636
|
-
}):
|
|
7366
|
+
}): react.JSX.Element;
|
|
7637
7367
|
/** The registry in scope, or `null` outside every provider. */
|
|
7638
7368
|
declare function useIconRegistry(): IconRegistry | null;
|
|
7639
7369
|
|
|
@@ -7674,7 +7404,7 @@ interface WeaselProviderProps {
|
|
|
7674
7404
|
* panel, or two canvases that should agree on the selection. Mount it above
|
|
7675
7405
|
* any `useTools(...)` call, or the dispatcher sees a stale active tool.
|
|
7676
7406
|
*/
|
|
7677
|
-
declare function WeaselProvider({ children, isolate, icons, iconVariants }: WeaselProviderProps):
|
|
7407
|
+
declare function WeaselProvider({ children, isolate, icons, iconVariants }: WeaselProviderProps): react.JSX.Element;
|
|
7678
7408
|
|
|
7679
7409
|
/** Options for {@link workspaceTintLayer}. */
|
|
7680
7410
|
interface WorkspaceTintLayerOptions {
|
|
@@ -7817,6 +7547,22 @@ declare const DEFAULT_DEBUG_THEME: DebugTheme;
|
|
|
7817
7547
|
*/
|
|
7818
7548
|
declare const DEFAULT_DEBUG_STROKES: DebugStrokes;
|
|
7819
7549
|
|
|
7550
|
+
/** Props for `<DevtoolsLabel>`. */
|
|
7551
|
+
interface DevtoolsLabelProps {
|
|
7552
|
+
/** The name a devtools panel lists each canvas below this under, unless the canvas has an `aria-label` or id. */
|
|
7553
|
+
value: string;
|
|
7554
|
+
children?: ReactNode;
|
|
7555
|
+
}
|
|
7556
|
+
/**
|
|
7557
|
+
* Names the canvases beneath it in a devtools panel, ahead of any labeled
|
|
7558
|
+
* element between them and it. A host that frames canvases it did not write,
|
|
7559
|
+
* such as a lab's trial or a story's frame, knows the right name; the nearest
|
|
7560
|
+
* labeled ancestor is only a guess.
|
|
7561
|
+
*/
|
|
7562
|
+
declare function DevtoolsLabel({ value, children }: DevtoolsLabelProps): react.JSX.Element;
|
|
7563
|
+
/** The label the nearest `<DevtoolsLabel>` gives, or null outside one. */
|
|
7564
|
+
declare function useDevtoolsLabel(): string | null;
|
|
7565
|
+
|
|
7820
7566
|
/**
|
|
7821
7567
|
* Bundle a list of Affordances into a single RenderLayer.
|
|
7822
7568
|
*
|
|
@@ -8426,29 +8172,6 @@ interface TransformArgs<TPose> {
|
|
|
8426
8172
|
* coalesce window. Pass an explicit key (or a unique one) to opt out. */
|
|
8427
8173
|
declare function createTransformOp<TPose>(args: TransformArgs<TPose>): Op;
|
|
8428
8174
|
|
|
8429
|
-
/** One pose write an {@link createArrangeOp} made. */
|
|
8430
|
-
interface ArrangedPose {
|
|
8431
|
-
id: string;
|
|
8432
|
-
from: unknown;
|
|
8433
|
-
to: unknown;
|
|
8434
|
-
}
|
|
8435
|
-
/** Arguments to {@link createArrangeOp}. */
|
|
8436
|
-
interface ArrangeArgs {
|
|
8437
|
-
/** The writes to make. Absent until a computed arrangement has run once. */
|
|
8438
|
-
placed?: ArrangedPose[];
|
|
8439
|
-
}
|
|
8440
|
-
/**
|
|
8441
|
-
* Op: write a set of poses decided when the op first applies, not when it is
|
|
8442
|
-
* built. The scene appends one to an edit that moves nodes into a container,
|
|
8443
|
-
* and `compute` asks the container what to do with them after the rest of
|
|
8444
|
-
* the edit has landed. Every later apply — redo, or a rebuild from a
|
|
8445
|
-
* serialized history — replays the writes it recorded, so the arrangement is
|
|
8446
|
-
* decided once. `write` replaces the adapter's `setPose` for this op and its
|
|
8447
|
-
* inverses — the scene passes its own, since not every adapter an edit is
|
|
8448
|
-
* applied through can write poses.
|
|
8449
|
-
*/
|
|
8450
|
-
declare function createArrangeOp(args: ArrangeArgs, compute?: () => ArrangedPose[], write?: (id: string, pose: unknown) => void): Op;
|
|
8451
|
-
|
|
8452
8175
|
/**
|
|
8453
8176
|
* A node's position among its siblings, recorded so an op can put it back.
|
|
8454
8177
|
*
|
|
@@ -8605,6 +8328,20 @@ interface SetLayerArgs {
|
|
|
8605
8328
|
* explicit key to opt out. */
|
|
8606
8329
|
declare function createSetLayerOp(args: SetLayerArgs): Op;
|
|
8607
8330
|
|
|
8331
|
+
type DependsOn = readonly string[] | 'children' | undefined;
|
|
8332
|
+
/** Arguments to {@link createSetDependsOnOp}: retarget node `id`'s derivation
|
|
8333
|
+
* from the sources `from` to `to`. `undefined` is no derivation. */
|
|
8334
|
+
interface SetDependsOnArgs {
|
|
8335
|
+
id: string;
|
|
8336
|
+
from: DependsOn;
|
|
8337
|
+
to: DependsOn;
|
|
8338
|
+
label?: string;
|
|
8339
|
+
coalesceKey?: string;
|
|
8340
|
+
}
|
|
8341
|
+
/** Op: set what a derived node's geometry derives from, inverting back to
|
|
8342
|
+
* `from`. */
|
|
8343
|
+
declare function createSetDependsOnOp(args: SetDependsOnArgs): Op;
|
|
8344
|
+
|
|
8608
8345
|
/** Arguments to {@link createSetHiddenOp} and {@link createSetLockedOp}: set
|
|
8609
8346
|
* node `id`'s flag `from` → `to`. */
|
|
8610
8347
|
interface NodeFlagArgs {
|
|
@@ -8739,6 +8476,18 @@ interface SetPathArgs {
|
|
|
8739
8476
|
*/
|
|
8740
8477
|
declare function createSetPathOp(args: SetPathArgs): Op;
|
|
8741
8478
|
|
|
8479
|
+
/** A node's pose and data, as a batch of ops leaves them. */
|
|
8480
|
+
interface WrittenNode {
|
|
8481
|
+
pose: unknown;
|
|
8482
|
+
data: unknown;
|
|
8483
|
+
}
|
|
8484
|
+
/**
|
|
8485
|
+
* The pose and data `ops` leave each node they write, by id, read by applying
|
|
8486
|
+
* them to a recorder rather than the scene; null when one cannot be read that
|
|
8487
|
+
* way. A node only re-parented, re-layered, inserted, or removed is not in it.
|
|
8488
|
+
*/
|
|
8489
|
+
declare function writtenBy(sc: Scene<unknown, string, unknown>, ops: readonly Op[]): Map<string, WrittenNode> | null;
|
|
8490
|
+
|
|
8742
8491
|
/** Rebuilds an op from its serialized `args`. */
|
|
8743
8492
|
type OpFactory = (args: unknown) => Op;
|
|
8744
8493
|
/** Every registered op factory, keyed by op name, in registration order. */
|
|
@@ -8764,6 +8513,31 @@ declare function registeredOpNames(): readonly string[];
|
|
|
8764
8513
|
* parent updates compose correctly. */
|
|
8765
8514
|
declare function scenePoseAdapter(scene: Scene<unknown, string, unknown>): PoseAdapter<unknown>;
|
|
8766
8515
|
|
|
8516
|
+
/**
|
|
8517
|
+
* Bringing a node's descendants along when something writes the node's pose
|
|
8518
|
+
* and nothing writes theirs: a layout restacking a container, a drop landing
|
|
8519
|
+
* one, a page move. Under absolute poses a descendant stores its own world
|
|
8520
|
+
* pose, so it stays behind unless it is written too.
|
|
8521
|
+
*/
|
|
8522
|
+
|
|
8523
|
+
/** What carrying reads: the tree, every stored pose, and how poses compose. */
|
|
8524
|
+
interface CarrySource<TPose> {
|
|
8525
|
+
childrenOf(id: NodeId): readonly NodeId[];
|
|
8526
|
+
poses: PoseAdapter<TPose>;
|
|
8527
|
+
composition: PoseComposition<TPose>;
|
|
8528
|
+
}
|
|
8529
|
+
/** A {@link CarrySource} over a scene's document poses. */
|
|
8530
|
+
declare function sceneCarrySource(scene: Scene<unknown, string, unknown>): CarrySource<unknown>;
|
|
8531
|
+
/**
|
|
8532
|
+
* The stored poses that bring `root`'s descendants along with it: each one's
|
|
8533
|
+
* world pose put through `translate`, rebased into the frame it is stored in.
|
|
8534
|
+
* A descendant stored in the frame of `root` or of a node under it is left
|
|
8535
|
+
* out, since that frame carries it, and so is one `translate` answers null
|
|
8536
|
+
* for. A descendant `moving` names is moving on its own: it and everything
|
|
8537
|
+
* under it are left to whoever moves it.
|
|
8538
|
+
*/
|
|
8539
|
+
declare function carriedDescendants<TPose>(source: CarrySource<TPose>, root: NodeId, translate: (world: TPose, id: NodeId) => TPose | null, moving?: (id: NodeId) => boolean): Map<NodeId, TPose>;
|
|
8540
|
+
|
|
8767
8541
|
/** @internal */
|
|
8768
8542
|
interface HitAdapter<TNode extends {
|
|
8769
8543
|
id: string;
|
|
@@ -8946,6 +8720,13 @@ interface ScopedScene {
|
|
|
8946
8720
|
declare function sceneUnitScopes(scene: ScopedScene, id: NodeId, root: UnitScope, opts?: {
|
|
8947
8721
|
inclusive?: boolean;
|
|
8948
8722
|
}): UnitScope[];
|
|
8723
|
+
/**
|
|
8724
|
+
* The unit scopes every node of `ids` sits in, outermost first: the run of
|
|
8725
|
+
* their chains that agree, where two containers declaring equal scopes
|
|
8726
|
+
* agree. What a reader showing or snapping several nodes as one reads them
|
|
8727
|
+
* in; the root alone for no nodes.
|
|
8728
|
+
*/
|
|
8729
|
+
declare function sceneSharedUnitScopes(scene: ScopedScene, ids: readonly NodeId[], root: UnitScope): UnitScope[];
|
|
8949
8730
|
|
|
8950
8731
|
/**
|
|
8951
8732
|
* Thrown by a scene edit — `batch`, `untracked`, or a bare `add` / `move` —
|
|
@@ -9006,6 +8787,10 @@ declare function derivedPose<TPose>(source: PoseSource<TPose>, node: PosedNode<T
|
|
|
9006
8787
|
* resolved before it is read.
|
|
9007
8788
|
*/
|
|
9008
8789
|
declare function derivedDepOf<TPose>(source: PoseSource<TPose>, id: NodeId, reader?: PosedNode<TPose>): DerivedDep<TPose> | undefined;
|
|
8790
|
+
/** `id` as {@link derivedDepOf} answers it, but at the pose and path the
|
|
8791
|
+
* document holds: no override anywhere down its dependencies counts. For a
|
|
8792
|
+
* reader that must not see an in-flight gesture, such as an edit pass. */
|
|
8793
|
+
declare function documentDepOf<TPose>(source: PoseSource<TPose>, id: NodeId): DerivedDep<TPose> | undefined;
|
|
9009
8794
|
/**
|
|
9010
8795
|
* The pose the *document* says `node` is at: derived when it derives, else
|
|
9011
8796
|
* authored. `effectivePose` minus the override step, at every link of the
|
|
@@ -9587,17 +9372,33 @@ interface PathEditPreview {
|
|
|
9587
9372
|
previewPose: NonNullable<OngoingHandle['previewPose']>;
|
|
9588
9373
|
previewData: NonNullable<OngoingHandle['previewData']>;
|
|
9589
9374
|
}
|
|
9375
|
+
/** One frame of a drag that reshapes the path in edit mode: the world-space
|
|
9376
|
+
* polygon it makes, and where each of its points came from when the drag
|
|
9377
|
+
* knows (`editAnchorSetTracked`). */
|
|
9378
|
+
interface PathEditFrame {
|
|
9379
|
+
path: PolygonPath;
|
|
9380
|
+
origins?: readonly (PointOrigin | null)[];
|
|
9381
|
+
}
|
|
9382
|
+
/** `path`, a frame of an edit of `id`, finished by the dep's `finishEdit` as
|
|
9383
|
+
* committing it would be: its path and the other nodes' that move with it.
|
|
9384
|
+
* Null when an extension cannot finish it. */
|
|
9385
|
+
declare function finishPathEditFrame(dep: EditAnchorsDep, id: string, path: PolygonPath, origins?: readonly (PointOrigin | null)[]): FinishedEditFrame | null;
|
|
9590
9386
|
/**
|
|
9591
9387
|
* Preview ghosts for a drag that reshapes the path in edit mode. `current`
|
|
9592
|
-
* answers the
|
|
9593
|
-
*
|
|
9594
|
-
*
|
|
9595
|
-
*
|
|
9596
|
-
*
|
|
9388
|
+
* answers the frame to show, or null while there is nothing to preview yet.
|
|
9389
|
+
* Each frame is finished as committing it would be
|
|
9390
|
+
* ({@link finishPathEditFrame}), so the node's constraints and the nodes
|
|
9391
|
+
* linked to it show as they will commit; a frame that cannot be finished
|
|
9392
|
+
* commits nothing, and shows nothing. A drag that finishes its own frames
|
|
9393
|
+
* passes `finished`, the world-space paths of the other nodes its frame
|
|
9394
|
+
* moves, and its frames are shown as they are. Null when the node stores its
|
|
9395
|
+
* path in neither supported place.
|
|
9396
|
+
*
|
|
9397
|
+
* The ghost is what committing the frame would store (`storeEditablePath`),
|
|
9597
9398
|
* so a path drawn from a form is drawn again from the edited form on every
|
|
9598
9399
|
* move.
|
|
9599
9400
|
*/
|
|
9600
|
-
declare function pathEditPreview(dep: EditAnchorsDep, id: string, current: () =>
|
|
9401
|
+
declare function pathEditPreview(dep: EditAnchorsDep, id: string, current: () => PathEditFrame | null, finished?: () => readonly {
|
|
9601
9402
|
id: string;
|
|
9602
9403
|
path: PolygonPath;
|
|
9603
9404
|
}[]): PathEditPreview | null;
|
|
@@ -10203,6 +10004,33 @@ interface AnchorHit {
|
|
|
10203
10004
|
* are within `threshold` (controls are smaller and rendered on top). */
|
|
10204
10005
|
declare function hitAnchor(path: PolygonPath, worldX: number, worldY: number, threshold: number): AnchorHit | null;
|
|
10205
10006
|
|
|
10007
|
+
type AnyScene = Scene<unknown, string, unknown>;
|
|
10008
|
+
/** The deps {@link moveNodes} reads; an action calling it declares these. */
|
|
10009
|
+
declare const MOVE_NODES_REQUIRES: readonly ["scene", "selection", "applyOps", "poseDescriptor", "geometryProjection", "transformFollowers"];
|
|
10010
|
+
/**
|
|
10011
|
+
* The ops that move `ids` by `delta` the way a drag of them commits: each id
|
|
10012
|
+
* that is not itself derived (a derived one is moved through what it derives
|
|
10013
|
+
* from) and every descendant not carried by a moving frame, each translated in
|
|
10014
|
+
* the frame it is stored in. `delta` is in the coordinates a gesture's points
|
|
10015
|
+
* are — world on a 2D canvas — and the `poseDescriptor` dep turns it into each
|
|
10016
|
+
* pose's translation, so a 3D host's descriptor lands it on the node's plane.
|
|
10017
|
+
*/
|
|
10018
|
+
declare function moveNodesOps(scene: AnyScene, ids: readonly string[], delta: {
|
|
10019
|
+
dx: number;
|
|
10020
|
+
dy: number;
|
|
10021
|
+
}, deps?: Pick<ActionDeps, 'poseDescriptor' | 'geometryProjection'>, label?: string): Op[];
|
|
10022
|
+
/**
|
|
10023
|
+
* Move `ids` by `delta` the way a drag of them commits ({@link moveNodesOps}),
|
|
10024
|
+
* finished by the `transformFollowers` and committed as one undo entry through
|
|
10025
|
+
* `applyOps`, else the scene. Inside an open `scene.batch` it joins that
|
|
10026
|
+
* batch's entry. Returns whether anything moved. A caller running as an
|
|
10027
|
+
* action declares {@link MOVE_NODES_REQUIRES}.
|
|
10028
|
+
*/
|
|
10029
|
+
declare function moveNodes(deps: ActionDeps, ids: readonly string[], delta: {
|
|
10030
|
+
dx: number;
|
|
10031
|
+
dy: number;
|
|
10032
|
+
}, label?: string): boolean;
|
|
10033
|
+
|
|
10206
10034
|
/**
|
|
10207
10035
|
* A transform the selection underwent, kept relative so it can be applied to
|
|
10208
10036
|
* whatever is selected next.
|
|
@@ -10605,6 +10433,120 @@ interface MomentumOptions {
|
|
|
10605
10433
|
*/
|
|
10606
10434
|
declare function momentum<TPose>(opts: MomentumOptions): MoveBehavior<TPose>;
|
|
10607
10435
|
|
|
10436
|
+
/** The part of a scene a rig's skins read and write. */
|
|
10437
|
+
interface SkinScene<TPose> {
|
|
10438
|
+
get(id: NodeId): {
|
|
10439
|
+
pose: TPose;
|
|
10440
|
+
data?: unknown;
|
|
10441
|
+
} | undefined;
|
|
10442
|
+
readonly overrides: PoseOverrides<TPose>;
|
|
10443
|
+
setPose(id: NodeId, pose: TPose): void;
|
|
10444
|
+
update(id: NodeId, patch: {
|
|
10445
|
+
data: never;
|
|
10446
|
+
}): void;
|
|
10447
|
+
}
|
|
10448
|
+
/** Where a node's path is drawn, for a skin to bend: `null` for a node with none. */
|
|
10449
|
+
type RestPath<TPose> = (node: {
|
|
10450
|
+
pose: TPose;
|
|
10451
|
+
data?: unknown;
|
|
10452
|
+
}) => Path | null;
|
|
10453
|
+
/** The path in a node's `data.path`, carried through its pose as `kit:path` paints it. */
|
|
10454
|
+
declare function dataRestPath<TPose>(node: {
|
|
10455
|
+
pose: TPose;
|
|
10456
|
+
data?: unknown;
|
|
10457
|
+
}): Path | null;
|
|
10458
|
+
|
|
10459
|
+
/** The part of a scene a rig writes to. */
|
|
10460
|
+
interface RigScene<TPose> extends SkinScene<TPose> {
|
|
10461
|
+
batch<T>(label: string, fn: () => T): T;
|
|
10462
|
+
}
|
|
10463
|
+
/** What a `RigApply` knows about the node it is posing. */
|
|
10464
|
+
interface RigApplyContext<TPose> {
|
|
10465
|
+
/** The joint the node rides. */
|
|
10466
|
+
joint: string;
|
|
10467
|
+
node: NodeId;
|
|
10468
|
+
/** The node's document pose when the rig was bound — where it sits at the
|
|
10469
|
+
* bind pose. */
|
|
10470
|
+
rest: TPose;
|
|
10471
|
+
/** The joint's world transform at the bind pose. */
|
|
10472
|
+
restWorld: GlMat3;
|
|
10473
|
+
/** `world * inverse(restWorld)`: the motion since the bind pose, in world
|
|
10474
|
+
* space. Carrying `rest` by it is what welding the node to the joint means. */
|
|
10475
|
+
fromRest: GlMat3;
|
|
10476
|
+
}
|
|
10477
|
+
/** Turns a joint's world transform into a pose for one bound node. The only
|
|
10478
|
+
* part of a rig that knows the scene's pose shape. */
|
|
10479
|
+
type RigApply<TPose> = (world: GlMat3, ctx: RigApplyContext<TPose>) => TPose;
|
|
10480
|
+
/** Options for `bindRig`. */
|
|
10481
|
+
interface BindRigOptions<TPose> {
|
|
10482
|
+
scene: RigScene<TPose>;
|
|
10483
|
+
skeleton: Skeleton;
|
|
10484
|
+
/** Joint name → the node or nodes that ride it. Each node keeps the offset
|
|
10485
|
+
* from its joint that it has at the bind pose. */
|
|
10486
|
+
bindings?: Readonly<Record<string, NodeId | readonly NodeId[]>>;
|
|
10487
|
+
/** Node id → the weights its path bends by. Where a bound node moves whole with one joint,
|
|
10488
|
+
* a skinned node's points each follow their own joints, and the rig shows the bent path
|
|
10489
|
+
* through the node's pose override, posed at the path's bounds. */
|
|
10490
|
+
skins?: Readonly<Record<NodeId, Skin>>;
|
|
10491
|
+
/** Where a skinned node's path is drawn when the rig is bound. Default
|
|
10492
|
+
* {@link dataRestPath}: the node's `data.path`, through its pose. */
|
|
10493
|
+
restPath?: RestPath<TPose>;
|
|
10494
|
+
/** Default: {@link rigidRigApply} over `descriptor`. */
|
|
10495
|
+
apply?: RigApply<TPose>;
|
|
10496
|
+
/** The descriptor the default `apply` reads and writes poses through.
|
|
10497
|
+
* Default `AUTO_POSE_DESCRIPTOR`. */
|
|
10498
|
+
descriptor?: PoseDescriptor<TPose>;
|
|
10499
|
+
}
|
|
10500
|
+
/** A skeleton bound to scene nodes, as `bindRig` returns it. */
|
|
10501
|
+
interface Rig {
|
|
10502
|
+
readonly skeleton: Skeleton;
|
|
10503
|
+
/**
|
|
10504
|
+
* The rig's pose as a value an animator moves. Its committed value starts as `{}`, the bind
|
|
10505
|
+
* pose, and each frame the rig is posed with what the target shows. A clip is a
|
|
10506
|
+
* `SampledTrack<Pose>` given this as its `target`: clips on one rig crossfade by their
|
|
10507
|
+
* `weight`s, weights short of 1 leave the rest to the committed pose, and a `spring` or
|
|
10508
|
+
* `tween` from a pose away from the committed one adds on top. `animator.hold` shows a pose made elsewhere the same way, an
|
|
10509
|
+
* IK solve included.
|
|
10510
|
+
*/
|
|
10511
|
+
readonly target: Target<Pose>;
|
|
10512
|
+
/**
|
|
10513
|
+
* Commit `pose` and move every bound node to what the target now shows, which is `pose`
|
|
10514
|
+
* unless something is animating the target; a hold on it weighs the new pose in when it is
|
|
10515
|
+
* next read, at the animator's next frame or the hold's `touch()`. Writes go through the scene's pose overrides —
|
|
10516
|
+
* no history entry, no document write, no version bump — and are committed. `root`, where
|
|
10517
|
+
* given, replaces the placement, as {@link Rig.place}.
|
|
10518
|
+
*/
|
|
10519
|
+
pose(pose: Pose, root?: GlMat3): void;
|
|
10520
|
+
/** Place the rig in the world by `root`, which may mirror it, and pose it there. It stays
|
|
10521
|
+
* until placed again; with no `root`, the rig goes back to where its skeleton puts it. */
|
|
10522
|
+
place(root?: GlMat3): void;
|
|
10523
|
+
/** The joint world transforms as the rig was last posed, root applied. */
|
|
10524
|
+
world(): ReadonlyMap<string, GlMat3>;
|
|
10525
|
+
/** Write the current frame into the bound nodes' document poses as one
|
|
10526
|
+
* undo entry, and drop the overrides. A skinned node's bent path goes into
|
|
10527
|
+
* its `data.path`. Later frames stay relative to the bind-time rest, so
|
|
10528
|
+
* baking does not compound. */
|
|
10529
|
+
bake(label?: string): void;
|
|
10530
|
+
/** Drop the overrides; the nodes show their document poses again until the
|
|
10531
|
+
* rig is next posed. */
|
|
10532
|
+
release(): void;
|
|
10533
|
+
}
|
|
10534
|
+
/**
|
|
10535
|
+
* Carries a node rigidly with its joint: the rest pose's center moves by
|
|
10536
|
+
* `fromRest`, and its rotation turns with the rest pose's x-axis. Scale in the
|
|
10537
|
+
* joint chain moves positions but not sizes — the pose model holds no shear,
|
|
10538
|
+
* and a sized pose under anisotropic scale would need one. Write an `apply`
|
|
10539
|
+
* that reads `world` to size nodes from joint scale.
|
|
10540
|
+
*/
|
|
10541
|
+
declare function rigidRigApply<TPose>(descriptor: PoseDescriptor<TPose>): RigApply<TPose>;
|
|
10542
|
+
/**
|
|
10543
|
+
* Bind a skeleton's joints to scene nodes. Nodes are written in world space
|
|
10544
|
+
* and the rig resolves its own hierarchy, so bound nodes are best left
|
|
10545
|
+
* unparented, or under containers whose pose does not compose into theirs;
|
|
10546
|
+
* the scene's tree stays free to order and group them for drawing.
|
|
10547
|
+
*/
|
|
10548
|
+
declare function bindRig<TPose>(options: BindRigOptions<TPose>): Rig;
|
|
10549
|
+
|
|
10608
10550
|
/**
|
|
10609
10551
|
* A {@link Rig} bound for the component's lifetime, its overrides dropped on
|
|
10610
10552
|
* unmount. Rebinds — re-reading every node's rest pose — whenever an option's
|
|
@@ -10612,12 +10554,78 @@ declare function momentum<TPose>(opts: MomentumOptions): MoveBehavior<TPose>;
|
|
|
10612
10554
|
*/
|
|
10613
10555
|
declare function useRig<TPose>(options: BindRigOptions<TPose>): Rig;
|
|
10614
10556
|
|
|
10557
|
+
/** What a rig reads from node data: a `skeleton` on the node that is the rig, and on the nodes
|
|
10558
|
+
* under it a `skin` for a path that bends or a `joint` for a node that rides one whole. */
|
|
10559
|
+
interface RigNodeData {
|
|
10560
|
+
/** Joints relative to the node's pose: its box's top-left corner, turned as the node is. */
|
|
10561
|
+
skeleton?: Skeleton;
|
|
10562
|
+
skin?: Skin;
|
|
10563
|
+
joint?: string;
|
|
10564
|
+
}
|
|
10565
|
+
/** Weights to bind in place of the document's, and word of when they change. `@weasel-js/rig`'s
|
|
10566
|
+
* `RigEditState` is one: it holds what a stroke of the weight tool has painted and not yet written. */
|
|
10567
|
+
interface PaintedSkins {
|
|
10568
|
+
/** By node. A new map whenever the weights change. */
|
|
10569
|
+
painted(): ReadonlyMap<NodeId, Skin>;
|
|
10570
|
+
listen(fn: () => void): () => void;
|
|
10571
|
+
}
|
|
10572
|
+
/** The part of a scene `rigFromNode` reads. */
|
|
10573
|
+
interface RigNodeSource<TPose> {
|
|
10574
|
+
get(id: NodeId): {
|
|
10575
|
+
pose: TPose;
|
|
10576
|
+
data?: unknown;
|
|
10577
|
+
} | undefined;
|
|
10578
|
+
childrenOf(id: NodeId): readonly NodeId[];
|
|
10579
|
+
}
|
|
10580
|
+
/** The skeleton, bindings, and skins a rig node declares, as `bindRig` takes them. */
|
|
10581
|
+
interface RigNodeParts {
|
|
10582
|
+
skeleton: Skeleton;
|
|
10583
|
+
bindings: Record<string, NodeId[]>;
|
|
10584
|
+
skins: Record<NodeId, Skin>;
|
|
10585
|
+
}
|
|
10586
|
+
/**
|
|
10587
|
+
* A skeleton as a rig node's data keeps it, moved to where the node's pose puts it: its root
|
|
10588
|
+
* joints are offset from the pose box's top-left corner and turned as the node is. Joints
|
|
10589
|
+
* under a root are relative to their parents and are left as they are.
|
|
10590
|
+
*/
|
|
10591
|
+
declare function placeSkeleton<TPose>(skeleton: Skeleton, pose: TPose, descriptor?: PoseDescriptor<TPose>): Skeleton;
|
|
10592
|
+
/** The inverse of {@link placeSkeleton}: a skeleton in the scene's space, as the node at
|
|
10593
|
+
* `pose` would keep it in its data. */
|
|
10594
|
+
declare function unplaceSkeleton<TPose>(skeleton: Skeleton, pose: TPose, descriptor?: PoseDescriptor<TPose>): Skeleton;
|
|
10595
|
+
/**
|
|
10596
|
+
* Read a rig out of the scene: the skeleton in `id`'s `data.skeleton`, placed by that node's
|
|
10597
|
+
* pose, and under it every node whose data has a `skin` or names a `joint`.
|
|
10598
|
+
*/
|
|
10599
|
+
declare function rigFromNode<TPose>(scene: RigNodeSource<TPose>, id: NodeId, descriptor?: PoseDescriptor<TPose>): RigNodeParts;
|
|
10600
|
+
/** Options for `useRigNode`. */
|
|
10601
|
+
interface UseRigNodeOptions<TPose> extends Pick<BindRigOptions<TPose>, 'apply' | 'descriptor' | 'restPath'> {
|
|
10602
|
+
scene: RigScene<TPose> & RigNodeSource<TPose> & {
|
|
10603
|
+
subscribe(listener: () => void): () => void;
|
|
10604
|
+
getVersion(): number;
|
|
10605
|
+
};
|
|
10606
|
+
/** The node whose data holds the skeleton. */
|
|
10607
|
+
node: NodeId;
|
|
10608
|
+
/** Weights bound in place of a node's `data.skin` while they are held. Give it the
|
|
10609
|
+
* `RigEditState` `@weasel-js/rig`'s weight tool has, and a stroke bends the path as it is painted. */
|
|
10610
|
+
painting?: PaintedSkins;
|
|
10611
|
+
}
|
|
10612
|
+
/**
|
|
10613
|
+
* A {@link Rig} read from a node, as {@link rigFromNode} reads it. It is bound again when the
|
|
10614
|
+
* rig node or a node under it changes its pose or data, or when nodes under it come or go; an
|
|
10615
|
+
* edit elsewhere in the scene leaves it alone. A rig bound again keeps its `target`, with the
|
|
10616
|
+
* animations running on it, its committed pose, and its placement, unless the skeleton's
|
|
10617
|
+
* joints were added, removed, renamed, or reordered. Then it has a new `target`, which takes
|
|
10618
|
+
* over the placement and the pose of every joint the skeleton still names. Animations go on
|
|
10619
|
+
* running on the target they were started on and show through the new one, so a joint that
|
|
10620
|
+
* was renamed stops moving.
|
|
10621
|
+
*/
|
|
10622
|
+
declare function useRigNode<TPose>(options: UseRigNodeOptions<TPose>): Rig;
|
|
10623
|
+
|
|
10615
10624
|
/** A glyph this package draws, by its bare name. */
|
|
10616
|
-
type CoreIconName = 'arrow' | '
|
|
10625
|
+
type CoreIconName = 'arrow' | 'ellipse' | 'eyedropper' | 'hand' | 'image' | 'lasso' | 'line' | 'pen' | 'pencil' | 'polygon' | 'rect' | 'select' | 'slice' | 'star' | 'sticky' | 'text' | 'unknown' | 'cut' | 'copy' | 'paste' | 'duplicate' | 'transformAgain' | 'group' | 'ungroup' | 'bringForward' | 'bringToFront' | 'sendBackward' | 'sendToBack' | 'flipX' | 'flipY' | 'delete' | 'undo' | 'redo' | 'measure' | 'tune' | 'alignLeft' | 'alignRight' | 'alignTop' | 'alignBottom' | 'alignCenterX' | 'alignCenterY' | 'distributeHorizontal' | 'distributeVertical' | 'union' | 'intersect' | 'subtract' | 'exclude' | 'divide' | 'crop' | 'trim' | 'merge' | 'join' | 'bridge' | 'cutAtCrossings' | 'simplify' | 'offsetPath' | 'retractHandles' | 'symmetricHandles' | 'holdHandleAngle' | 'holdHandleLength' | 'simplifyBrush' | 'harmonize' | 'averageAnchors' | 'bendSegment' | 'nudgeAnchors' | 'nudgeAnchorsUp' | 'nudgeAnchorsDown' | 'nudgeAnchorsLeft' | 'createOutlines' | 'outlineStroke' | 'bold' | 'italic' | 'underline' | 'strikethrough' | 'overline' | 'superscript' | 'subscript' | 'textAlignLeft' | 'textAlignCenter' | 'textAlignRight' | 'textAlignJustify' | 'textAlignTop' | 'textAlignMiddle' | 'textAlignBottom' | 'strokeWidth' | 'strokeCap' | 'strokeJoin' | 'strokeAlign' | 'capButt' | 'capRound' | 'capSquare' | 'joinMiter' | 'joinRound' | 'joinBevel' | 'alignInner' | 'alignCenter' | 'alignOuter' | 'dashSolid' | 'dashDashed' | 'dashDotted' | 'dashCustom' | 'paintSolid' | 'paintLinear' | 'paintRadial' | 'paintConic' | 'paintMesh' | 'paintPattern' | 'paintNone';
|
|
10617
10626
|
declare module '@weasel-js/icons' {
|
|
10618
10627
|
interface IconName {
|
|
10619
10628
|
'core:arrow': true;
|
|
10620
|
-
'core:bone': true;
|
|
10621
10629
|
'core:ellipse': true;
|
|
10622
10630
|
'core:eyedropper': true;
|
|
10623
10631
|
'core:hand': true;
|
|
@@ -10634,7 +10642,6 @@ declare module '@weasel-js/icons' {
|
|
|
10634
10642
|
'core:sticky': true;
|
|
10635
10643
|
'core:text': true;
|
|
10636
10644
|
'core:unknown': true;
|
|
10637
|
-
'core:weight': true;
|
|
10638
10645
|
'core:cut': true;
|
|
10639
10646
|
'core:copy': true;
|
|
10640
10647
|
'core:paste': true;
|
|
@@ -10830,7 +10837,8 @@ declare const SNAP_ROLES: {
|
|
|
10830
10837
|
/** The angle step `snap.constrain` (Shift) holds a direction to: a line, a
|
|
10831
10838
|
* measurement, a rotate, a symmetry axis. 15 degrees. */
|
|
10832
10839
|
declare const SNAP_ANGLE_STEP: number;
|
|
10833
|
-
/** The step an `'axis'` lock holds a move
|
|
10840
|
+
/** The step an `'axis'` lock holds a move or an anchor drag to, and Shift a
|
|
10841
|
+
* pen handle: the axes and the diagonals. */
|
|
10834
10842
|
declare const SNAP_AXIS_STEP: number;
|
|
10835
10843
|
/** The snap roles `ctx` holds. */
|
|
10836
10844
|
declare function snapMods(ctx: {
|
|
@@ -10840,6 +10848,8 @@ declare function snapMods(ctx: {
|
|
|
10840
10848
|
|
|
10841
10849
|
/** The sources that answer `gesture`: those naming it, and, for one naming none, point, move and resize. */
|
|
10842
10850
|
declare function snapSourcesFor<S extends Pick<SnapSource<unknown>, 'gestures'>>(sources: readonly S[], gesture: SnapGesture): S[];
|
|
10851
|
+
/** Throws if two of `sources` share an id: one would silently replace the other. */
|
|
10852
|
+
declare function assertSnapSourceIds(sources: readonly Pick<SnapSource<unknown>, 'id'>[]): void;
|
|
10843
10853
|
/** What a candidate draws when the result meets it. */
|
|
10844
10854
|
type SnapCandidateMark<P> = NonNullable<SourceCandidate<P>['mark']>;
|
|
10845
10855
|
/** How `gatherSnapCandidates` reads a host's points. */
|
|
@@ -10917,6 +10927,9 @@ declare function pathSnapSource(opts?: PathSnapSourceOptions): SnapSource;
|
|
|
10917
10927
|
/** The canvas's reach when neither a source nor the kit settings name one. */
|
|
10918
10928
|
declare const DEFAULT_SNAP_PX = 8;
|
|
10919
10929
|
|
|
10930
|
+
/** A screen-space layer drawing the marks in `store`, redrawn when they change. */
|
|
10931
|
+
declare function createSnapReadoutLayer(store: SnapOutcomeStore, style?: SnapReadoutStyle): RenderLayer<unknown>;
|
|
10932
|
+
|
|
10920
10933
|
/**
|
|
10921
10934
|
* The screen-space drawing the snap readout and the guides overlay share:
|
|
10922
10935
|
* ticked segments, number pills, and the glyph-and-label of a point mark.
|
|
@@ -10951,8 +10964,6 @@ interface CoreKitTargetSettings {
|
|
|
10951
10964
|
penCloseHintRadiusPx: number;
|
|
10952
10965
|
/** How near the pen's first anchor a click closes the subpath. */
|
|
10953
10966
|
penCloseHitPx: number;
|
|
10954
|
-
boneJointRadiusPx: number;
|
|
10955
|
-
weightPointRadiusPx: number;
|
|
10956
10967
|
sliceVertexRadiusPx: number;
|
|
10957
10968
|
/** How near the knife's first point a click closes the cut. */
|
|
10958
10969
|
sliceCloseHitPx: number;
|
|
@@ -11039,12 +11050,6 @@ declare const coreKitSettingsSchema: Omit<_weasel_js_prefs.PrefGroup, "children"
|
|
|
11039
11050
|
readonly penCloseHitPx: _weasel_js_prefs.PrefNumber & {
|
|
11040
11051
|
default: number;
|
|
11041
11052
|
};
|
|
11042
|
-
readonly boneJointRadiusPx: _weasel_js_prefs.PrefNumber & {
|
|
11043
|
-
default: number;
|
|
11044
|
-
};
|
|
11045
|
-
readonly weightPointRadiusPx: _weasel_js_prefs.PrefNumber & {
|
|
11046
|
-
default: number;
|
|
11047
|
-
};
|
|
11048
11053
|
readonly sliceVertexRadiusPx: _weasel_js_prefs.PrefNumber & {
|
|
11049
11054
|
default: number;
|
|
11050
11055
|
};
|
|
@@ -11063,4 +11068,4 @@ declare const coreKitSettingsSchema: Omit<_weasel_js_prefs.PrefGroup, "children"
|
|
|
11063
11068
|
};
|
|
11064
11069
|
};
|
|
11065
11070
|
|
|
11066
|
-
export { ANCHOR_HIT_BASE_PX, AREA_SELECT_ID, ActionsProviderIfRoot, AddNodeSpec, Affordance, AffordanceBinding, AffordanceRegion, type AffordanceRegionHit, type AlignAdapter, type AlignEdge, type AlignReference, type AnchorEdit, type AnchorFieldsApi, type AnchorHit, AnchorMarkerShape, type AnchorScratch, type AnchorState, type AnimateOnSetPoseOptions, type AnimatedReflow, type AnnotationFlag, type AnyTool, AreaSelectAdapter, type ArrangeArgs, type ArrangedPose, BUILTIN_TOOL_IDS, type BaseFeature, type BendAlongEffect, type BindRigOptions, type BlendEffect, type BooleanCommitPiece, BooleanOp, BooleanOpOptions, BooleanOpResult, type BooleanOperands, type BooleanSource, BooleanStrokes, BooleansAdapter, BoundsConstraint, type BuildChromeCtxArgs, type BuiltinShapeToolId, type BuiltinToolId, type BuiltinToolOptions, COMPOSITE_FEATURES, type CameraProps, type CanvasDebugSink, type CanvasExtensionApi, type CanvasHelpers, type CanvasLayers, type CanvasProps, type CanvasRetainOptions, type CanvasSize, type CanvasSizeSnapshot, type CanvasSurfaceHelpers, CanvasView, type CanvasViewCamera, type CanvasViewHandle, type CanvasViewHelpers, type CanvasViewProps, type CanvasViewState, type ChildOrder, type ChromeCtx, type ChromeId, ChromeState, type ClampBounds, ClipboardSnapshot, type CoalescedCtx, CommonAffordanceScratch, type ComposeSelectionPoseOpts, type CompositeFeature, type ComputeSliceOpsArgs, type ComputeSliceResult, type Condition, ContentHandlerEntry, type Contribution, type ContributionChrome, type ContributionDepReader, type ContributionFrameCtx, type CoreIconName, type CoreKitTargetSettings, type CornerResizeAffordanceOptions, type CornerResizeScratch, type CreateChildrenLayerOpts, type CreateDebugOverlayLayerOpts, CreateOutlinesAdapter, type CreatePathEditingOverlayLayerOptions, type CreatePathLayerOpts, type CreatePenPreviewLayerOptions, type CreateTextLayerOpts, type CreateViewResolverOpts, type CreateViewportLayerOpts, CursorCoordsHud, type CursorCoordsHudProps, type CustomLayerEntry, DEFAULT_DEBUG_STROKES, DEFAULT_DEBUG_THEME, DEFAULT_FILL_COLOR, DEFAULT_HANDLE_SIZE, DEFAULT_INK, DEFAULT_MAX_ZOOM, DEFAULT_MIN_ZOOM, DEFAULT_OVERLAY_STYLE, DEFAULT_PALETTE, DEFAULT_ROTATION_HANDLE_DISTANCE, DEFAULT_SHAPE_FILL, DEFAULT_SIMPLIFY_TOLERANCE, DEFAULT_SNAP_PX, DEFAULT_STROKE_COLOR, DRAG_PAN_ID, type DebugConfig, type DebugFeature, type DebugSnapshot, type DebugStroke, type DebugStrokes, type DebugTheme, type DefaultTextData, type DeleteArgs, DepRegistryProviderIfRoot, type Departures, DerivePathFn, DerivePoseFn, DerivedDep, type DerivedPart, DeviceProfileProvider, type DeviceProfileProviderProps, Dims, type DistributeAdapter, type DistributeAxis, type DistributeMode, type DragGestureController, type DragGestureCtx, type DragGestureEndCtx, type DragGesturePhase, type DragGesturePoint, type DragHandleOptions, type DragPanParams, type DragPayload, type DragRadialController, type DragRadialCtx, type DragRadialEndCtx, type DragRadialPoint, type DragRadialState, type DragRectBounds, type DragRectController, type DragRectCtx, type DragRectEndCtx, type DragRectPoint, DrawCanvas, type DrawCanvasDraw, type DrawCanvasProps, type DrawnBoundsOptions, type DrawnBoundsScene, type DropZoneOptions, EditAnchorsDep, EditAnchorsParams, type EditableShape, type EditedLayerOf, type EditingDrawOne, type EffectSource, type EffectSourceReader, FALLBACK_ACCENT, FEATURE_ACTION_IDS, type Feature, type FeatureBindingOptions, type FeatureEntry, type FeaturePreset, type FeedDelta, type FeedNode, FitViewToBoundsOptions, type FlipAxis, type FlipPivot, type FrameStats, GHOST_STROKE, type GateLayerOptions, type GateSource, type GatedLayer, type GatedNode, type GatherSnapOptions, type GeneratedShape, GeometryProjection, GestureContext, type GesturePreviewSource, type GestureSource, HANDLE_BASE_PX, HANDLE_LOCK_ROLES, InertiaConfig as HandToolInertiaConfig, type HandleDragEnd, type HandleDragPoint, type HandleEdit, HandleLocks, type HandleScope, type HeadlessCanvasLike, type HostAnchorAlign, type HostAnchorInput, type HostAnchorOffset, type HostAnchorStyle, type HoverTracking, INSERT_REPOSITION_BINDING, IconRegistryProvider, IconRegistryProviderIfRoot, type IconRegistryProviderProps, InertiaConfig, type InkExtents, InsertAdapter, type InsertArgs, InsertBehavior, InsertNodeFactory, type InsertOp, type InsertOverlayStyle, InsertPaint, type InsertPreviewExtent, type InsertPreviewGeometry, type InsertPreviewLike, type InsertPreviewOverlay, type InsertToolOptions, type JoinPlan, KIT_SHAPE_KINDS, KIT_STANDARD_ACTION_IDS, KIT_VERSIONS, type KeyModifiers, type KeyState, type KeyStateAttachOptions, type KitInsertShape, type KitRequirements, type KitVersions, LONG_PRESS_FEEDBACK_ID, LassoHitMode, LassoSelectAdapter, LassoSelectBehavior, LayerEnumerableAdapter, type LayerFrameStats, LayerGroup, LayerHit, type LayerSlotValue, type LayersMap, LayoutDropTargetMode, LayoutFrame, type LayoutRef, LayoutStrategy, LeanSceneCanvas, type LeanSceneCanvasProps, type LifecycleAdapter, type LifecycleAnimation, type LinePoint, type LivePathEditSpec, type LongPressFeedbackOptions, MEASURE_ACTION_IDS, MEASURE_AFFORDANCE_KIND, MEASURE_LAYER_ID, type MeasureCell, type MeasureData, type MeasureEnd, type MeasureEndSourceOptions, type MeasureHit, type MeasurePoint, type Measurement, type Measurements, type ModeTriggerHandlers, type MomentumOptions, MoveAdapter, MoveBehavior, type MoveToIndexArgs, type NestedHitOpts, type NestedHitTester, type NodeClientRect, type NodeFlagArgs, type NodeGates, type NodeInk, type NodeInkCtx, type NodeOverlayFrame, type NodePaintCtx, type NodeProperties, type NodePropertiesEntry, type NodeRouting, type NodeRoutingEntry, type NodeShapeEntry, type NodeSilhouetteCtx, OVERLAY_ROLE_STROKES, type OpFactory, type OpenFilePickerOptions, type OpsApplier, OrderedAdapter, OriginProjection, type OutlineStrokeResult, type Overlay, type OverlayPoint, type OverlayVisibilityId, PAINTED_CURSOR_LAYER_ID, PATHFINDER_STROKES, PATH_ANCHOR_CHROME_ID, PATH_EFFECT, PATH_EFFECT_DERIVATIONS, PATH_GESTURE_TAGS, PATH_SNAP_LABELS, type Page, type PageLayoutOptions, type PagesLayerOptions, type PaintBoundsFn, PaintKindEntry, type PaintedSkins, PasteCtx, PasteOmission, type PathAnchor, type PathAnchorAffordanceOptions, PathEditExtension, type PathEditHost, PathEditMark, type PathEditOpening, type PathEditPreview, PathEditTarget, type PathEditingOverlaySlotConfig, type PathEditingOverlayStyle, type PathEffect, type PathEffectDerivations, type PathGestureFamily, type PathNode, PathPaint, type PathSnapSourceOptions, type PathStorageKind, PathSymmetryDep, type PenContinuation, type PenPreviewStyle, type PenScratch, type PenSubpath, type PencilPoint, PickHud, type PickHudProps, type PickSlop, type PickTopMostHitAdapter, type PinchZoomOptions, type PixelRenderPlan, type PlacedNode, type PlacedPage, type PlacedRig, PlaneMap, type PointSnap, type PointerFollower, PointerProviderIfRoot, type PointerSample, type PointerStylusState, type PolygonGenerator, type PolygonPoint, PoseAdapter, type PoseAnimationAdapter, type PoseCascade, PoseComposition, PoseDescriptor, type PoseFeed, type PoseFrame, PoseOverrides, PoseRemoval, type PoseRun, type PoseRunCtx, type PoseRunStep, type PoseSource, type PoseTargetOptions, type PoseTargetScene, type PoseTransitionScene, type PoseTransitionSeat, PoseWrite, type PosedNode, type PressureToWidthOptions, type PreviewNode, RECT_POSE_COMPOSITION, RIGID_POSE_COMPOSITION, ROTATION_HANDLE_BASE_PX, type RasterImage, type RasterRenderArgs, type RasterSession, type RasterSessionOptions, type RecordedBounds, type RecordedHandle, type RecordedHitbox, type RecordedLayer, type RecordedOrigin, type RecordedSnap, type RecordedViewport, RectPose, RedrawSource, type ReflowScene, ReflowTransition, type ReflowTransitionOptions, type RegisterNodeShapeOptions, RegisteredOp, type RenderDebugSnapshotArgs, RenderLayer, type RenderNeeds, type RenderSceneToCanvasArgs, type RenderSceneToPixelsArgs, type ReorderArgs, type ReorderDirection, type ReorderRestoreEntry, type ReparentArgs, type RepeatAlongEffect, type RepeatableTransform, type RequirementMismatch, ResizeAdapter, ResizeHandleLayout, type ResolvableView, type ResolvedOverlay, type RestPath, type Rig, type RigApply, type RigApplyContext, type RigEditState, type RigNodeData, type RigNodeParts, type RigNodeSource, type RigScene, RotateAdapter, RotateBehavior, RotatedPose, type RotationAffordanceOptions, type RotationHandle, type RotationScratch, type RoutedNode, SCENE_CANVAS_FEATURES, SELECTION_MOVE_ID, SELECTION_RESIZE_ID, SELECTION_ROTATE_ID, SELECTION_TRANSFORM_ID, SHAPE_COUNT_RANGE, SHAPE_KINDS, SNAP_ANGLE_STEP, SNAP_AXIS_STEP, SNAP_ROLES, STAR_RATIO_RANGE, Scene, type SceneAdapterSelection, SceneArrivalRefused, SceneCanvas, type SceneCanvasAdapter, type SceneCanvasApi, type SceneCanvasGeometry, type SceneCanvasHit, type SceneCanvasLayers, type SceneCanvasLongPress, type SceneCanvasProps, SceneCanvasSnap, type SceneCanvasViewport, type SceneClipTargetsOptions, Node as SceneNode, type SceneNodeClientRectOpts, ScenePoseReports, SceneRegistry, type SceneSlotConfig, type SceneSlotLayers, type SceneToAdapterOptions, SceneViewCanvas, type SceneViewCanvasProps, type SceneViewCull, type SceneViewDrawOne, type SceneViewLayers, type ScopedScene, type ScreenSlop, type SelectAdapter, type SelectFromLassoOptions, type SelectionHandleStyle, type SelectionHandlesLayerOpts, type SelectionMoveOptions, type SelectionOutlineLayerOpts, type SelectionOverlayLayerOpts, type SelectionOverlaySlotConfig, type SelectionRotateOptions, type SelectionStore, type SelectionTransformOptions, SerializedScene, type SetAnchorFieldParams, type SetChildOrderArgs, type SetDataArgs, type SetLayerArgs, type SetLayoutArgs, type SetPathArgs, type SetPathFields, type SetSelectionArgs, type SetTextArgs, type ShapeCoversPointOptions, type ShapeGenerator, type ShapeKind, type ShapeKindDescriptor, type ShapeKindsWhere, type ShownDeparture, type SiblingSlot, SliceDep, type SliceLeaf, type SlicePiece, type SliceScratch, type SliceableNode, type SnapCandidateMark, SnapCollect, SnapDep, SnapGesture, SnapMark, SnapMods, SnapOutcome, SnapProbeAt, SnapSource, SourceCandidate, type SpatialReference, type SpatialReferenceSources, type SpringPoseOptions, type StaggerSpringPoseOptions, type StandardSlotConfig, type StandardSlotName, type StarGenerator, type StarPoint, StickyStyle, type StrokeRegionOptions, type StylusData, type SurfaceContribution, type SurfaceSizeProps, SvgIngestOptions, SystemLayerSpec, TOOL_DRIVEN_ACTION_IDS, TargetTransform, TextOverflow, type ThresholdDragHandle, type ThresholdDragOptions, type Tool, type ToolDef, type ToolsApi, type TransformArgs, type TweenPoseOptions, UNION_OF_CHILDREN, type UseAlignOptions, type UseAlignReturn, type UseBoneToolOptions, type UseBooleansOptions, type UseBooleansReturn, type UseDistributeOptions, type UseDistributeReturn, type UseDragGestureOptions, type UseDragRadialOptions, type UseDragRectOptions, type UseEyedropperToolOptions, type UseHandToolOptions, type UseHandleDragOptions, type UseHandleDragReturn, type UseHostAnchorOptions, type UseHoverTrackingArgs, type UseImageToolOptions, type UseKeyStateOptions, type UseKeybindingsOptions, type UseLassoSelectOptions, type UseLassoToolOptions, type UseMeasureToolOptions, UseMoveOptions, type UseNodeOverlayFrameOptions, type UsePenToolOptions, type UsePointerStylusOptions, type UsePolygonToolOptions, type UsePoseRunOptions, UseResizeOptions, type UseResizePolicyOptions, type UseRigNodeOptions, type UseRotateOptions, type UseSceneOptions, type UseSceneTextEditOptions, type UseSceneTextEditReturn, type UseSceneTrivialOptions, type UseSelectToolOptions, type UseSelectionOptions, type UseSliceToolOptions, type UseStandardActionsOptions, type UseStarToolOptions, type UseStickyToolOptions, type UseToolsOptions, type UseWeightToolOptions, VERSION, type VelocityTracker, type VersionCheck, ViewAnimationOptions, type ViewAt, type ViewKitSettings, type ViewLike, type ViewPoseAdapter, type ViewRect, type ViewResolver, type ViewTarget, type ViewTransform, ViewportDims, type ViewportLayer, type ViewportZoomAnimateOptions, type ViewportZoomOptions, type VisibilityRules, WHEEL_ZOOM_STEP, type WarmRenderOptions, WeaselProvider, type WeaselProviderProps, type WeighedPath, type WeightEnv, type WheelInput, type WheelPanOptions, type WheelPanOpts, type WorkspaceTintLayerOptions, type WrittenPoseTargetOptions, type ZoomAxis, type ZoomBound, type ZoomClampOpts, type ZoomFactor, accentColorOf, actionIs, adjacentPage, alignDeltaFor, alignTargetBounds, always, anchorEditWouldChange, and, animateLifecycle, animateOnSetPose, annotationLayerIds, annulusSemiAxes, applyOpsTo, applyOutlineStroke, areaSelectAction, areaSelectContribution, arrangePreset, axisAlignedBounds, axisZoomFactor, bindPoseTransition, bindRig, buildChromeCtx, buildDebugOverlayCommands, buildSceneViewCommands, canBringForward, canHover, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, checkRequirements, clampShapeGenerator, clampView, classifyPathStorage, clearSelectionAction, clipboardCopyAction, clipboardCutAction, clipboardPasteAction, clipboardPasteEventAction, cloneAction, coarsePointer, commitAnchorEdit, commitBooleanPieces, commitOps, composeAffordanceLayer, composeRectPose, composeRigidPose, composeSelectionPose, computeFitViewport, computeSliceOps, computeWheelAction, cond, contextMenuAction, coreKitSettingsSchema, createArrangeOp, createBoneOverlay, createChildrenLayer, createCornerResizeAffordance, createDebugOverlayLayer, createDebugSink, createDeleteOp, createDepartures, createHistory, createInsertOp, createKeyState, createLongPressFeedbackContribution, createMeasurements, createMoveToIndexOp, createNodeProperties, createNodeRouting, createPaintedCursorLayer, createPathAnchorAffordances, createPathEditingOverlayLayer, createPathEffectDerivations, createPathLayer, createPenPreviewLayer, createPointerFollower, createPoseFeed, createPoseOverrides, createPoseTarget, createRasterSession, createReflowTransition, createReorderOp, createReparentOp, createRigEditState, createRotationAffordance, createScene, createSelectionHandlesLayer, createSelectionOutlineLayer, createSelectionOverlayLayer, createSetChildOrderOp, createSetDataOp, createSetHiddenOp, createSetLayerOp, createSetLayoutOp, createSetLockedOp, createSetPathOp, createSetSelectionOp, createSetTextOp, createTextLayer, createTransformOp, createVelocityTracker, createViewResolver, createViewportLayer, createWeightOverlay, createWrittenPoseTarget, currentMeasureId, cycleFill, dataRestPath, debugSnapshotArgs, decomposeRectPose, decomposeRigidPose, defaultCommitAdapter, defaultDrawOne, defaultNodeProperties, defaultNodeRouting, defaultPaintBounds, defaultVisibilityRules, definesFrame, deleteAnchorsAction, deleteNode, deleteSelectedMark, depOf, derivedDepOf, derivedPartsOf, derivedPose, dispatchApplyBatch, documentPose, dragPanContribution, dragPointOf, drawnAABBOf, drawnBoundsOf, editAnchorsAction, editPreset, editTargetOf, editedPathSymmetries, editingAnchors, editingLayer, effectivePose, enterTextEditAction, enumerateAnchors, exitPathEditToolAction, findNodeShape, findShapeBounds, findShapeDrawnBounds, findShapeInk, findShapeSilhouette, fitToBounds, fitViewToPage, fitZoom, flattenPreviews, flipAction, focused, forEachCoalesced, forgetTransform, gateLayer, gatherSnapCandidates, gesturePlaneReader, gestureViewReader, gesturing, getAlpha01, getNodeShapes, getStylusData, glidesByDefault, groupNodeRouting, hasEditablePath, hidesSubtree, hitAffordanceRegions, hitAnchor, hitRotationHandle, hostAnchorCss, hostAnchorRect, hovering, hoveringSelected, inPlane, inferredNodeProperties, inferredNodeRouting, ingestPreset, inkExtentsOf, insertAction, insertAt, insertLayer, insertPreviewExtent, insertRepositionAction, interpolateView, isAnnotationLayer, isAnnotationNode, isNodeHidden, isNodeLocked, isOverChildren, isShapeGenerator, joinPathsCommand, joinSelectedAnchors, kitTextHandler, lassoSelectAction, lastTransform, layoutPages, livePathEdit, locksInForce, makeHandleCommand, makePinchZoomAction, makeViewportWheelPanAction, makeViewportZoomAction, markUnder, measureAt, measureBetween, measureEndSource, measureEndsOf, measureIds, measureNode, measurePose, measuredSegmentCommands, measurementOf, measurementsContribution, mergeAlphaFromPrev, mergeContributions, modeDecorationLayer, modeIn, modeIs, modeNot, modeTriggers, modifierHeld, momentum, moveAction, movePreset, multiActive, nestedHitTester, never, nodeGates, nodeOutline, normalizeView, normalizeZoom, not, nudgeAnchorsDownAction, nudgeAnchorsLeftAction, nudgeAnchorsRightAction, nudgeAnchorsUpAction, onEmptyCanvas, opFactoryRegistry, openContextMenu, openFilePicker, or, outlinePreset, overChildren, pageAt, pageOfBounds, pagesBounds, pagesLayer, paintAlpha, paintWithAlpha, paintWithColor, parseDebugFlags, pathCopy, pathEditPathOf, pathEditPreview, pathEditToolAction, pathEditToolActive, pathEffectNode, pathEffectOf, pathEffectParts, pathFromParts, pathNodesOf, pathOperationTags, pathOriginProjection, pathPoseDescriptor, pathSnapGlyph, pathSnapSource, pathsPreset, pickTopMostHit, pillCommands, pinchZoomAction, placeAction, placeSkeleton, placedRig, planJoin, planPixelRender, pointRegionFrame, pointSnap, poseAxes, pressureToWidth, rasterToPng, readEffectSource, rebuildOp, reconcileSpecs, recordTransform, regenerateShape, registerNodeShape, registerOpFactory, registeredOpNames, registeredPathEffects, releaseCanvasRenderer, renderDebugSnapshot, renderNeeds, renderSceneToCanvas, renderSceneToPixels, requiresAnchorSelection, reshapeOps, reshapeTo, resizeAction, resizePreset, resolveBooleanOperands, resolveEditablePathOf, resolveOverlays, resolvePreviews, resolveSpatialReference, resolveVisibility, resolvedSnapMarks, rigFromNode, rigidRigApply, rotateAction, rotateAroundAABBCenter, rotatePreset, rotationDegreesUnit, rotationHandle, rotationSnapSource, satisfiesRange, sceneClipTargets, sceneFromJSON, sceneNodeClientRect, scenePoseAdapter, scenePoseFrame, scenePoseTarget, sceneSelectionStore, sceneToAdapter, sceneUnitScopes, screenToWorld, screenTolerance, segmentUnder, selectAnchorAction, selectFromLasso, selectPreset, selectedPathNodes, selectionAtLeast, selectionEmpty, selectionIs, selectionLayer, selectionMoveBindings, selectionMoveContribution, selectionResizeBindings, selectionResizeContribution, selectionRotateBindings, selectionRotateContribution, selectionTransformBindings, selectionTransformContribution, settleShapeGenerator, shapeCoversPoint, shapeGeneratorOf, shapeGeneratorPath, sliceAction, slotOf, snapMods, snapSourcesFor, solid, splitOverChildren, springPose, stableStringify, staggerSpringPose, startThresholdDrag, stepAngles, storeEditablePath, strokeOf, strokeRegion, strokeWith, tickedSegment, toHex8, translateRectPose, tweenPose, unionAABB, unionBounds, unionOfChildren, unionOfChildrenVia, unplaceSkeleton, useAlign, useAnchorFields, useAnimatedReflow, useAutoCenter, useBoneTool, useBooleans, useBooleansAdapter, useBooleansAdapterSource, useCanvasSize, useCreateOutlinesAdapter, useDeviceProfile, useDistribute, useDragGesture, useDragHandle, useDragRadial, useDragRect, useDropZone, useElementSize, useEllipseTool, useEyedropperTool, useGradientKinds, useHandTool, useHandleDrag, useHostAnchor, useHoverTracking, useIconGlyph, useIconRegistry, useIconVariant, useImageTool, useKeyModifiers, useKeyState, useKeybindings, useLassoTool, useLineTool, useMeasureTool, useNodeOverlayFrame, usePaintKind, usePaintKinds, usePenTool, usePencilTool, usePointerStylus, usePolygonTool, usePoseDescriptorDepSource, usePoseRun, usePoseTransition, useRectTool, useResizePolicy, useRig, useRigNode, useScene, useSceneAdapter, useSceneTextEdit, useSelectTool, useSelection, useSliceDep, useSliceDepSource, useSliceTool, useSnapSource, useStandardActions, useStarTool, useStickyTool, useTextTool, useTools, useVelocityTracker, useWeightTool, viewPreset, viewToTransform, viewZoom, viewportDragPanAction, viewportWheelPanAction, viewportWorldRect, viewportZoomAction, warmRender, watchDevicePixelRatio, weighedPaths, wheelPan, wheelZoom, wheelZoomFactor, when, withAlpha01, withCoord, withPath, withPathEffectsRegistry, withoutShapeGenerator, workspaceTintLayer, worldPoseLookup, worldToScreen, zoomAt, zoomAtLeast };
|
|
11071
|
+
export { ANCHOR_HIT_BASE_PX, AREA_SELECT_ID, ActionsProviderIfRoot, AddNodeSpec, Affordance, AffordanceBinding, AffordanceRegion, type AffordanceRegionHit, type AlignAdapter, type AlignEdge, type AlignReference, type AnchorEdit, type AnchorFieldsApi, type AnchorHit, AnchorMarkerShape, type AnchorScratch, type AnchorState, type AnimateOnSetPoseOptions, type AnimatedReflow, type AnnotationFlag, type AnyTool, AreaSelectAdapter, type ArrangeArgs, type ArrangedPose, BUILTIN_TOOLS, BUILTIN_TOOL_IDS, type BaseFeature, type BendAlongEffect, type BindRigOptions, type BlendEffect, type BooleanCommitPiece, BooleanOp, BooleanOpOptions, BooleanOpResult, type BooleanOperands, type BooleanSource, BooleanStrokes, BooleansAdapter, BoundsConstraint, type BuildChromeCtxArgs, type BuiltinShapeToolId, type BuiltinToolId, type BuiltinToolOptions, CANVAS_CONTEXT_ATTRIBUTES, COMPOSITE_FEATURES, type CameraProps, CanvasDebugSink, type CanvasExtensionApi, type CanvasHelpers, type CanvasLayers, type CanvasProps, type CanvasRetainOptions, type CanvasSize, type CanvasSizeSnapshot, type CanvasSurfaceHelpers, CanvasView, type CanvasViewCamera, type CanvasViewHandle, type CanvasViewHelpers, type CanvasViewProps, type CanvasViewState, type CarrySource, type ChildOrder, type ChromeCtx, type ChromeId, ChromeState, type ClampBounds, ClipboardSnapshot, type CoalescedCtx, CommonAffordanceScratch, type ComposeSelectionPoseOpts, type CompositeFeature, type ComputeSliceOpsArgs, type ComputeSliceResult, type Condition, ContentHandlerEntry, type Contribution, type ContributionChrome, type ContributionDepReader, type ContributionFrameCtx, type CoreIconName, type CoreKitTargetSettings, type CornerResizeAffordanceOptions, type CornerResizeScratch, type CreateChildrenLayerOpts, type CreateDebugOverlayLayerOpts, CreateOutlinesAdapter, type CreatePathEditingOverlayLayerOptions, type CreatePathLayerOpts, type CreatePenPreviewLayerOptions, type CreateTextLayerOpts, type CreateViewResolverOpts, type CreateViewportLayerOpts, CursorCoordsHud, type CursorCoordsHudProps, type CustomLayerEntry, DEFAULT_DEBUG_STROKES, DEFAULT_DEBUG_THEME, DEFAULT_FILL_COLOR, DEFAULT_HANDLE_SIZE, DEFAULT_INK, DEFAULT_MAX_ZOOM, DEFAULT_MIN_ZOOM, DEFAULT_OVERLAY_STYLE, DEFAULT_PALETTE, DEFAULT_ROTATION_HANDLE_DISTANCE, DEFAULT_SHAPE_FILL, DEFAULT_SIMPLIFY_TOLERANCE, DEFAULT_SNAP_PX, DEFAULT_STROKE_COLOR, DRAG_PAN_ID, DRAW_TOOLS, DebugConfig, DebugSnapshot, DebugStrokes, DebugTheme, type DefaultTextData, type DeleteActionOptions, type DeleteArgs, DepRegistryProviderIfRoot, type Departures, DerivePathFn, DerivePoseFn, DerivedDep, type DerivedPart, DeviceProfileProvider, type DeviceProfileProviderProps, DevtoolsLabel, type DevtoolsLabelProps, Dims, type DistributeAdapter, type DistributeAxis, type DistributeMode, type DragGestureController, type DragGestureCtx, type DragGestureEndCtx, type DragGesturePhase, type DragGesturePoint, type DragHandleOptions, type DragPanParams, type DragPayload, type DragRadialController, type DragRadialCtx, type DragRadialEndCtx, type DragRadialPoint, type DragRadialState, type DragRectBounds, type DragRectController, type DragRectCtx, type DragRectEndCtx, type DragRectPoint, DrawCanvas, type DrawCanvasDraw, type DrawCanvasProps, type DrawnBoundsOptions, type DrawnBoundsScene, type DropZoneOptions, EditAnchorsDep, EditAnchorsParams, type EditableShape, type EditedLayerOf, type EditingDrawOne, type EffectSource, type EffectSourceReader, FALLBACK_ACCENT, FEATURE_ACTION_IDS, type Feature, type FeatureBindingOptions, type FeatureEntry, type FeaturePreset, type FeedDelta, type FeedNode, FinishedEditFrame, FitViewToBoundsOptions, type FlipAxis, type FlipPivot, GHOST_STROKE, type GateLayerOptions, type GateSource, type GatedLayer, type GatedNode, type GatherSnapOptions, type GeneratedShape, GeometryProjection, GestureContext, type GesturePreviewSource, type GestureSource, HANDLE_BASE_PX, HANDLE_LOCK_ROLES, InertiaConfig as HandToolInertiaConfig, type HandleDragEnd, type HandleDragPoint, type HandleEdit, HandleLocks, type HandleScope, type HeadlessCanvasLike, type HostAnchorAlign, type HostAnchorInput, type HostAnchorOffset, type HostAnchorStyle, type HoverTracking, INSERT_REPOSITION_BINDING, IconRegistryProvider, IconRegistryProviderIfRoot, type IconRegistryProviderProps, InertiaConfig, type InkExtents, InsertAdapter, type InsertArgs, InsertBehavior, InsertNodeFactory, type InsertOp, type InsertOverlayStyle, InsertPaint, type InsertPreviewExtent, type InsertPreviewGeometry, type InsertPreviewLike, type InsertPreviewOverlay, type InsertToolOptions, type JoinPlan, KIT_SHAPE_KINDS, KIT_STANDARD_ACTION_IDS, KIT_VERSIONS, type KeyModifiers, type KeyState, type KeyStateAttachOptions, type KitInsertShape, type KitRequirements, type KitVersions, LONG_PRESS_FEEDBACK_ID, LassoHitMode, LassoSelectAdapter, LassoSelectBehavior, LayerEnumerableAdapter, LayerGroup, LayerHit, type LayerSlotValue, type LayersMap, LayoutDropTargetMode, LayoutFrame, type LayoutRef, LayoutStrategy, LeanSceneCanvas, type LeanSceneCanvasProps, type LifecycleAdapter, type LifecycleAnimation, type LinePoint, type LivePathEditSpec, type LongPressFeedbackOptions, MEASURE_ACTION_IDS, MEASURE_AFFORDANCE_KIND, MEASURE_LAYER_ID, MOVE_NODES_REQUIRES, type MeasureCell, type MeasureData, type MeasureEnd, type MeasureEndSourceOptions, type MeasureHit, type MeasurePoint, type Measurement, type Measurements, type ModeTriggerHandlers, type MomentumOptions, MoveAdapter, MoveBehavior, type MoveToIndexArgs, type NestedHitOpts, type NestedHitTester, type NodeClientRect, type NodeFlagArgs, type NodeGates, type NodeInk, type NodeInkCtx, type NodeOverlayFrame, type NodePaintCtx, type NodeProperties, type NodePropertiesEntry, type NodeRouting, type NodeRoutingEntry, type NodeShapeEntry, type NodeSilhouetteCtx, OVERLAY_ROLE_STROKES, type OpFactory, type OpenFilePickerOptions, type OpsApplier, OrderedAdapter, OriginProjection, type OutlineStrokeResult, type Overlay, type OverlayPoint, type OverlayVisibilityId, PAGES_DOC_KEY, PAGE_TOOLS, PAINTED_CURSOR_LAYER_ID, PATHFINDER_STROKES, PATH_ANCHOR_CHROME_ID, PATH_EFFECT, PATH_EFFECT_DERIVATIONS, PATH_GESTURE_TAGS, PATH_SNAP_LABELS, type Page, type PageEditOptions, type PageLayoutOptions, type PagesDoc, type PagesLayerOptions, type PaintBoundsFn, PaintKindEntry, type PaintedSkins, PasteCtx, PasteOmission, type PathAnchor, type PathAnchorAffordanceOptions, PathEditExtension, type PathEditFrame, type PathEditHost, PathEditMark, type PathEditOpening, type PathEditPreview, PathEditTarget, type PathEditingOverlaySlotConfig, type PathEditingOverlayStyle, type PathEffect, type PathEffectDerivations, type PathGestureFamily, type PathNode, PathPaint, type PathSnapSourceOptions, type PathStorageKind, PathSymmetryDep, type PenContinuation, type PenPreviewStyle, type PenScratch, type PenSubpath, type PencilPoint, PickHud, type PickHudProps, type PickSlop, type PickTopMostHitAdapter, type PinchZoomOptions, type PixelRenderPlan, type PlacedNode, type PlacedPage, PlaneMap, type PointSnap, type PointerFollower, PointerProviderIfRoot, type PointerSample, type PointerStylusState, type PolygonGenerator, type PolygonPoint, PoseAdapter, type PoseAnimationAdapter, type PoseCascade, PoseComposition, PoseDescriptor, type PoseFeed, type PoseFrame, PoseOverrides, PoseRemoval, type PoseRun, type PoseRunCtx, type PoseRunStep, type PoseSource, type PoseTargetOptions, type PoseTargetScene, type PoseTransitionScene, type PoseTransitionSeat, PoseWrite, type PosedNode, type PressureToWidthOptions, type PreviewNode, RECT_POSE_COMPOSITION, RIGID_POSE_COMPOSITION, ROTATION_HANDLE_BASE_PX, type RasterImage, type RasterRenderArgs, type RasterSession, type RasterSessionOptions, RectPose, RedrawSource, type ReflowScene, ReflowTransition, type ReflowTransitionOptions, type RegisterNodeShapeOptions, RegisteredOp, type RenderDebugSnapshotArgs, RenderLayer, type RenderNeeds, type RenderSceneToCanvasArgs, type RenderSceneToPixelsArgs, type ReorderArgs, type ReorderDirection, type ReorderRestoreEntry, type ReparentArgs, type RepeatAlongEffect, type RepeatableTransform, type RequirementMismatch, type ResizeActionOptions, ResizeAdapter, ResizeHandleLayout, type ResolvableView, type ResolvedOverlay, type RestPath, type Rig, type RigApply, type RigApplyContext, type RigNodeData, type RigNodeParts, type RigNodeSource, type RigScene, RotateAdapter, RotateBehavior, RotatedPose, type RotationAffordanceOptions, type RotationHandle, type RotationScratch, type RoutedNode, SCENE_CANVAS_FEATURES, SELECTION_MOVE_ID, SELECTION_RESIZE_ID, SELECTION_ROTATE_ID, SELECTION_TRANSFORM_ID, SELECT_TOOLS, SHAPE_COUNT_RANGE, SHAPE_KINDS, SHAPE_TOOLS, SNAP_ANGLE_STEP, SNAP_AXIS_STEP, SNAP_ROLES, STAR_RATIO_RANGE, Scene, type SceneAdapterSelection, SceneArrivalRefused, SceneCanvas, type SceneCanvasAdapter, type SceneCanvasApi, type SceneCanvasGeometry, type SceneCanvasHit, type SceneCanvasLayers, type SceneCanvasLongPress, type SceneCanvasProps, SceneCanvasSnap, type SceneCanvasViewport, type SceneClipTargetsOptions, Node as SceneNode, type SceneNodeClientRectOpts, ScenePoseReports, SceneRegistry, type SceneSlotConfig, type SceneSlotLayers, type SceneToAdapterOptions, SceneViewCanvas, type SceneViewCanvasProps, type SceneViewCull, type SceneViewDrawOne, type SceneViewLayers, type ScopedScene, type ScreenSlop, type SelectAdapter, type SelectFromLassoOptions, type SelectionHandleStyle, type SelectionHandlesLayerOpts, type SelectionMoveOptions, type SelectionOutlineLayerOpts, type SelectionOverlayLayerOpts, type SelectionOverlaySlotConfig, type SelectionRotateOptions, type SelectionStore, type SelectionTransformOptions, SerializedScene, type SetAnchorFieldParams, type SetChildOrderArgs, type SetDataArgs, type SetDependsOnArgs, type SetLayerArgs, type SetLayoutArgs, type SetPathArgs, type SetPathFields, type SetSelectionArgs, type SetTextArgs, type ShapeCoversPointOptions, type ShapeGenerator, type ShapeKind, type ShapeKindDescriptor, type ShapeKindsWhere, type ShownDeparture, type SiblingSlot, SliceDep, type SliceLeaf, type SlicePiece, type SliceScratch, type SliceableNode, type SnapCandidateMark, SnapCollect, SnapDep, SnapGesture, SnapMark, SnapMods, SnapOutcome, SnapOutcomeStore, SnapProbeAt, SnapReadoutStyle, SnapSource, SourceCandidate, type SpatialReference, type SpatialReferenceSources, type SpringPoseOptions, type StaggerSpringPoseOptions, type StandardSlotConfig, type StandardSlotName, type StarGenerator, type StarPoint, StickyStyle, type StrokeRegionOptions, type StylusData, type SurfaceContribution, type SurfaceSizeProps, SvgIngestOptions, SystemLayerSpec, TOOL_DRIVEN_ACTION_IDS, TYPE_TOOLS, TargetTransform, TextOverflow, type ThresholdDragHandle, type ThresholdDragOptions, type Tool, type ToolDef, type ToolsApi, type TransformArgs, TransformFollower, type TweenPoseOptions, UNION_OF_CHILDREN, type UseAlignOptions, type UseAlignReturn, type UseBooleansOptions, type UseBooleansReturn, type UseDistributeOptions, type UseDistributeReturn, type UseDragGestureOptions, type UseDragRadialOptions, type UseDragRectOptions, type UseEyedropperToolOptions, type UseHandToolOptions, type UseHandleDragOptions, type UseHandleDragReturn, type UseHostAnchorOptions, type UseHoverTrackingArgs, type UseImageToolOptions, type UseKeyStateOptions, type UseKeybindingsOptions, type UseLassoSelectOptions, type UseLassoToolOptions, type UseMeasureToolOptions, UseMoveOptions, type UseNodeOverlayFrameOptions, type UsePenToolOptions, type UsePointerStylusOptions, type UsePolygonToolOptions, type UsePoseRunOptions, UseResizeOptions, type UseResizePolicyOptions, type UseRigNodeOptions, type UseRotateOptions, type UseSceneOptions, type UseSceneTextEditOptions, type UseSceneTextEditReturn, type UseSceneTrivialOptions, type UseSelectToolOptions, type UseSelectionOptions, type UseSliceToolOptions, type UseStandardActionsOptions, type UseStarToolOptions, type UseStickyToolOptions, type UseToolsOptions, VERSION, VIEW_TOOLS, type VelocityTracker, type VersionCheck, ViewAnimationOptions, type ViewAt, type ViewKitSettings, type ViewLike, type ViewPoseAdapter, type ViewRect, type ViewResolver, type ViewTarget, type ViewTransform, ViewportDims, type ViewportLayer, type ViewportZoomAnimateOptions, type ViewportZoomOptions, type VisibilityRules, WHEEL_ZOOM_STEP, type WarmRenderOptions, WeaselProvider, type WeaselProviderProps, type WheelInput, type WheelPanOptions, type WheelPanOpts, type WorkspaceTintLayerOptions, type WrittenNode, type WrittenPoseTargetOptions, type ZoomAxis, type ZoomBound, type ZoomClampOpts, type ZoomFactor, accentColorOf, actionIs, addPage, adjacentPage, alignDeltaFor, alignTargetBounds, always, anchorEditWouldChange, and, animateLifecycle, animateOnSetPose, annotationLayerIds, annulusSemiAxes, applyOpsTo, applyOutlineStroke, areaSelectAction, areaSelectContribution, arrangePreset, assertSnapSourceIds, axisAlignedBounds, axisZoomFactor, bindPoseTransition, bindRig, buildChromeCtx, buildDebugOverlayCommands, buildSceneViewCommands, canBringForward, canHover, canSendBackward, capabilityAll, capabilityIn, capabilityIs, capabilityNot, carriedDescendants, checkRequirements, clampShapeGenerator, clampView, classifyPathStorage, clearSelectionAction, clipboardCopyAction, clipboardCutAction, clipboardPasteAction, clipboardPasteEventAction, cloneAction, coarsePointer, commitAnchorEdit, commitBooleanPieces, commitDeleteToScene, commitOps, composeAffordanceLayer, composeRectPose, composeRigidPose, composeSelectionPose, computeFitViewport, computeSliceOps, computeWheelAction, cond, contextMenuAction, coreKitSettingsSchema, createArrangeOp, createChildrenLayer, createCornerResizeAffordance, createDebugOverlayLayer, createDebugSink, createDeleteAction, createDeleteOp, createDepartures, createHistory, createInsertOp, createKeyState, createLongPressFeedbackContribution, createMeasurements, createMoveToIndexOp, createNodeProperties, createNodeRouting, createPaintedCursorLayer, createPathAnchorAffordances, createPathEditingOverlayLayer, createPathEffectDerivations, createPathLayer, createPenPreviewLayer, createPointerFollower, createPoseFeed, createPoseOverrides, createPoseTarget, createRasterSession, createReflowTransition, createReorderOp, createReparentOp, createResizeAction, createRotationAffordance, createScene, createSelectionHandlesLayer, createSelectionOutlineLayer, createSelectionOverlayLayer, createSetChildOrderOp, createSetDataOp, createSetDependsOnOp, createSetHiddenOp, createSetLayerOp, createSetLayoutOp, createSetLockedOp, createSetPathOp, createSetSelectionOp, createSetTextOp, createSnapReadoutLayer, createTextLayer, createTransformOp, createVelocityTracker, createViewResolver, createViewportLayer, createWrittenPoseTarget, currentMeasureId, cycleFill, dataRestPath, debugSnapshotArgs, decomposeRectPose, decomposeRigidPose, defaultCommitAdapter, defaultDrawOne, defaultNodeProperties, defaultNodeRouting, defaultPaintBounds, defaultVisibilityRules, definesFrame, deleteAction, deleteAnchorsAction, deleteNode, deleteSelectedMark, depOf, derivedDepOf, derivedPartsOf, derivedPose, dispatchApplyBatch, documentDepOf, documentPose, dragPanContribution, dragPointOf, drawnAABBOf, drawnBoundsOf, drawnBoundsScene, editAnchorsAction, editPreset, editTargetOf, editedPathSymmetries, editingAnchors, editingLayer, effectivePose, enterTextEditAction, enumerateAnchors, exitPathEditToolAction, findNodeShape, findShapeBounds, findShapeDrawnBounds, findShapeInk, findShapeSilhouette, finishPathEditFrame, fitToBounds, fitViewToPage, fitZoom, flattenPreviews, flipAction, focused, forEachCoalesced, forgetTransform, gateLayer, gatherSnapCandidates, gesturePlaneReader, gestureViewReader, gesturing, getAlpha01, getNodeShapes, getStylusData, glidesByDefault, groupNodeRouting, hasEditablePath, hidesSubtree, hitAffordanceRegions, hitAnchor, hitRotationHandle, hostAnchorCss, hostAnchorRect, hovering, hoveringSelected, inPlane, inferredNodeProperties, inferredNodeRouting, ingestPreset, inkExtentsOf, insertAction, insertAt, insertLayer, insertPreviewExtent, insertRepositionAction, interpolateView, isAnnotationLayer, isAnnotationNode, isNodeHidden, isNodeLocked, isOverChildren, isShapeGenerator, joinPathsCommand, joinSelectedAnchors, kitTextHandler, lassoSelectAction, lastTransform, layoutPages, livePathEdit, locksInForce, makeHandleCommand, makePinchZoomAction, makeViewportWheelPanAction, makeViewportZoomAction, markUnder, measureAt, measureBetween, measureEndSource, measureEndsOf, measureIds, measureNode, measurePose, measuredSegmentCommands, measurementOf, measurementsContribution, mergeAlphaFromPrev, mergeContributions, modeDecorationLayer, modeIn, modeIs, modeNot, modeTriggers, modifierHeld, momentum, moveAction, moveNodes, moveNodesOps, movePage, movePreset, multiActive, nestedHitTester, never, nextPageId, nodeGates, nodeOutline, normalizeView, normalizeZoom, not, nudgeAnchorsDownAction, nudgeAnchorsLeftAction, nudgeAnchorsRightAction, nudgeAnchorsUpAction, onEmptyCanvas, opFactoryRegistry, openContextMenu, openFilePicker, or, outlinePreset, overChildren, pageAt, pageHolding, pageInView, pageMembers, pageName, pageOfBounds, pagesBounds, pagesLayer, pagesOf, paintAlpha, paintWithAlpha, paintWithColor, parseDebugFlags, pathCopy, pathEditPathOf, pathEditPreview, pathEditToolAction, pathEditToolActive, pathEffectNode, pathEffectOf, pathEffectParts, pathFromParts, pathNodesOf, pathOperationTags, pathOriginProjection, pathPoseDescriptor, pathSnapGlyph, pathSnapSource, pathsPreset, pickTopMostHit, pillCommands, pinchZoomAction, placeAction, placeSkeleton, placedPagesOf, planJoin, planPixelRender, pointRegionFrame, pointSnap, poseAxes, pressureToWidth, rasterToPng, readEffectSource, rebuildOp, reconcileSpecs, recordTransform, regenerateShape, registerNodeShape, registerOpFactory, registeredOpNames, registeredPathEffects, releaseCanvasRenderer, removePage, renamePage, renderDebugSnapshot, renderNeeds, renderSceneToCanvas, renderSceneToPixels, requiresAnchorSelection, reshapeOps, reshapeTo, resizeAction, resizePage, resizePreset, resolveBooleanOperands, resolveEditablePathOf, resolveOverlays, resolvePreviews, resolveSpatialReference, resolveVisibility, resolvedSnapMarks, rigFromNode, rigidRigApply, rotateAction, rotateAroundAABBCenter, rotatePreset, rotationDegreesUnit, rotationHandle, rotationSnapSource, routeKind, satisfiesRange, sceneCarrySource, sceneClipTargets, sceneFromJSON, sceneNodeClientRect, scenePoseAdapter, scenePoseFrame, scenePoseTarget, sceneSelectionStore, sceneSharedUnitScopes, sceneToAdapter, sceneUnitScopes, screenToWorld, screenTolerance, segmentUnder, selectAnchorAction, selectFromLasso, selectPreset, selectedPathNodes, selectionAtLeast, selectionEmpty, selectionIs, selectionLayer, selectionMoveBindings, selectionMoveContribution, selectionResizeBindings, selectionResizeContribution, selectionRotateBindings, selectionRotateContribution, selectionTransformBindings, selectionTransformContribution, setPages, settleShapeGenerator, shapeCoversPoint, shapeGeneratorOf, shapeGeneratorPath, sliceAction, slotOf, snapMods, snapSourcesFor, solid, splitOverChildren, springPose, stableStringify, staggerSpringPose, startThresholdDrag, stepAngles, storeEditablePath, strokeOf, strokeRegion, strokeWith, tickedSegment, toHex8, translateRectPose, tweenPose, unionAABB, unionBounds, unionOfChildren, unionOfChildrenVia, unplaceSkeleton, useAlign, useAnchorFields, useAnimatedReflow, useAutoCenter, useBooleans, useBooleansAdapter, useBooleansAdapterSource, useCanvasSize, useCreateOutlinesAdapter, useDeviceProfile, useDevtoolsLabel, useDistribute, useDragGesture, useDragHandle, useDragRadial, useDragRect, useDropZone, useElementSize, useEllipseTool, useEyedropperTool, useGradientKinds, useHandTool, useHandleDrag, useHostAnchor, useHoverTracking, useIconGlyph, useIconRegistry, useIconVariant, useImageTool, useKeyModifiers, useKeyState, useKeybindings, useLassoTool, useLineTool, useMeasureTool, useNodeOverlayFrame, usePaintKind, usePaintKinds, usePenTool, usePencilTool, usePointerStylus, usePolygonTool, usePoseDescriptorDepSource, usePoseRun, usePoseTransition, useRectTool, useResizePolicy, useRig, useRigNode, useScene, useSceneAdapter, useSceneTextEdit, useSelectTool, useSelection, useSliceDep, useSliceDepSource, useSliceTool, useSnapSource, useStandardActions, useStarTool, useStickyTool, useTextTool, useTools, useTransformFollower, useVelocityTracker, viewPreset, viewToTransform, viewZoom, viewportDragPanAction, viewportWheelPanAction, viewportWorldRect, viewportZoomAction, warmRender, watchDevicePixelRatio, wheelPan, wheelZoom, wheelZoomFactor, when, withAlpha01, withCoord, withPath, withPathEffectsRegistry, withoutShapeGenerator, workspaceTintLayer, worldPoseLookup, worldToScreen, writtenBy, zoomAt, zoomAtLeast };
|