@weasel-js/core 1.9.3 → 1.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +356 -0
- package/README.md +2 -2
- package/dist/WeaselProvider.js +5 -5
- package/dist/affordances/composeAffordanceLayer.js +10 -20
- package/dist/affordances/composeAffordanceLayer.js.map +1 -1
- package/dist/affordances/cornerResize.js +25 -17
- package/dist/affordances/cornerResize.js.map +1 -1
- package/dist/affordances/hitAffordanceRegions.js +27 -20
- package/dist/affordances/hitAffordanceRegions.js.map +1 -1
- package/dist/affordances/rotationHandle.js +18 -18
- package/dist/affordances/rotationHandle.js.map +1 -1
- package/dist/animation/behaviors/momentum.js +93 -55
- package/dist/animation/behaviors/momentum.js.map +1 -1
- package/dist/animation/loop.js +10 -12
- package/dist/animation/loop.js.map +1 -1
- package/dist/animation/reflow.js +8 -8
- package/dist/animation/reflow.js.map +1 -1
- package/dist/animation/stagger.js +64 -56
- package/dist/animation/stagger.js.map +1 -1
- package/dist/animation/timeline/booking.js +62 -54
- package/dist/animation/timeline/booking.js.map +1 -1
- package/dist/animation/timeline/createTimeline.js +85 -76
- package/dist/animation/timeline/createTimeline.js.map +1 -1
- package/dist/animation/timeline/sampleTrack.js +13 -5
- package/dist/animation/timeline/sampleTrack.js.map +1 -1
- package/dist/animation/useAnimator.js +45 -35
- package/dist/animation/useAnimator.js.map +1 -1
- package/dist/animation/wrappers/animateLifecycle.js +31 -24
- package/dist/animation/wrappers/animateLifecycle.js.map +1 -1
- package/dist/animation/wrappers/animateOnSetPose.js +28 -26
- package/dist/animation/wrappers/animateOnSetPose.js.map +1 -1
- package/dist/animation/wrappers/instantPose.js +13 -0
- package/dist/animation/wrappers/instantPose.js.map +1 -0
- package/dist/{poseDescriptor-D-OH-tu5.d.ts → autoPoseDescriptor-Ct7yqivU.d.ts} +28 -3
- package/dist/barrel/chrome.js +16 -0
- package/dist/barrel/input.js +19 -0
- package/dist/barrel/interactions.js +42 -0
- package/dist/barrel/paint.js +18 -0
- package/dist/barrel/paths.js +19 -0
- package/dist/barrel/renderer.js +20 -0
- package/dist/barrel/routing.js +51 -0
- package/dist/barrel/text.js +18 -0
- package/dist/barrel/viewport.js +52 -0
- package/dist/builtins-DPcdghtB.d.ts +1223 -0
- package/dist/canvas/Canvas.js +363 -448
- package/dist/canvas/Canvas.js.map +1 -1
- package/dist/canvas/CanvasView.js +164 -165
- package/dist/canvas/CanvasView.js.map +1 -1
- package/dist/canvas/CursorCoordsHud.js +37 -32
- package/dist/canvas/CursorCoordsHud.js.map +1 -1
- package/dist/canvas/DrawCanvas.js +49 -43
- package/dist/canvas/DrawCanvas.js.map +1 -1
- package/dist/canvas/MinimapCanvas.js +26 -25
- package/dist/canvas/MinimapCanvas.js.map +1 -1
- package/dist/canvas/NodeShape.js +59 -377
- package/dist/canvas/NodeShape.js.map +1 -1
- package/dist/canvas/PickHud.js +50 -47
- package/dist/canvas/PickHud.js.map +1 -1
- package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js +167 -0
- package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js.map +1 -0
- package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js +13 -13
- package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js +67 -0
- package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js.map +1 -0
- package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js +16 -0
- package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js.map +1 -0
- package/dist/canvas/SceneCanvas/coordTrace.js +10 -0
- package/dist/canvas/SceneCanvas/coordTrace.js.map +1 -0
- package/dist/canvas/SceneCanvas/defaultNodeProperties.js +112 -70
- package/dist/canvas/SceneCanvas/defaultNodeProperties.js.map +1 -1
- package/dist/canvas/SceneCanvas/defaultNodeRouting.js +9 -8
- package/dist/canvas/SceneCanvas/defaultNodeRouting.js.map +1 -1
- package/dist/canvas/SceneCanvas/features.js +1 -0
- package/dist/canvas/SceneCanvas/features.js.map +1 -1
- package/dist/canvas/SceneCanvas/isDev.js +12 -0
- package/dist/canvas/SceneCanvas/isDev.js.map +1 -0
- package/dist/canvas/SceneCanvas/poseGeometry.js +29 -28
- package/dist/canvas/SceneCanvas/poseGeometry.js.map +1 -1
- package/dist/canvas/SceneCanvas/poseRegistrars.js +13 -0
- package/dist/canvas/SceneCanvas/poseRegistrars.js.map +1 -0
- package/dist/canvas/SceneCanvas/props.js +38 -0
- package/dist/canvas/SceneCanvas/props.js.map +1 -0
- package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js +21 -62
- package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js.map +1 -1
- package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js.map +1 -1
- package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js +46 -48
- package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneSelectTool.js +33 -33
- package/dist/canvas/SceneCanvas/useSceneSelectTool.js.map +1 -1
- package/dist/canvas/SceneCanvas.js +534 -788
- package/dist/canvas/SceneCanvas.js.map +1 -1
- package/dist/canvas/SceneViewCanvas.js +45 -43
- package/dist/canvas/SceneViewCanvas.js.map +1 -1
- package/dist/canvas/buildSceneLayer.js +91 -0
- package/dist/canvas/buildSceneLayer.js.map +1 -0
- package/dist/canvas/buildSceneTree.js +16 -19
- package/dist/canvas/buildSceneTree.js.map +1 -1
- package/dist/canvas/canvasRenderer.js +68 -52
- package/dist/canvas/canvasRenderer.js.map +1 -1
- package/dist/canvas/deps/changes.js +13 -0
- package/dist/canvas/deps/changes.js.map +1 -0
- package/dist/canvas/deps/editAnchors.js +28 -28
- package/dist/canvas/deps/insert.js +119 -91
- package/dist/canvas/deps/insert.js.map +1 -1
- package/dist/canvas/deps/slice.js +46 -45
- package/dist/canvas/deps/slice.js.map +1 -1
- package/dist/canvas/deps/textEdit.js +10 -9
- package/dist/canvas/deps/textEdit.js.map +1 -1
- package/dist/canvas/derivedPath.js +46 -23
- package/dist/canvas/derivedPath.js.map +1 -1
- package/dist/canvas/getNodeAtPoint.js +7 -7
- package/dist/canvas/getNodeAtPoint.js.map +1 -1
- package/dist/canvas/hud.module.js +1 -1
- package/dist/canvas/hud.module.js.map +1 -1
- package/dist/canvas/kitRequirements.js +2 -2
- package/dist/canvas/kitRequirements.js.map +1 -1
- package/dist/canvas/layerOrder.js +13 -6
- package/dist/canvas/layerOrder.js.map +1 -1
- package/dist/canvas/minimapMath.js +12 -10
- package/dist/canvas/minimapMath.js.map +1 -1
- package/dist/canvas/nodeShapes/derivedPainter.js +34 -0
- package/dist/canvas/nodeShapes/derivedPainter.js.map +1 -0
- package/dist/canvas/nodeShapes/imagePainter.js +87 -0
- package/dist/canvas/nodeShapes/imagePainter.js.map +1 -0
- package/dist/canvas/nodeShapes/memo.js +9 -0
- package/dist/canvas/nodeShapes/memo.js.map +1 -0
- package/dist/canvas/nodeShapes/nodePaint.js +57 -0
- package/dist/canvas/nodeShapes/nodePaint.js.map +1 -0
- package/dist/canvas/nodeShapes/pathPainter.js +38 -0
- package/dist/canvas/nodeShapes/pathPainter.js.map +1 -0
- package/dist/canvas/nodeShapes/poseBox.js +20 -0
- package/dist/canvas/nodeShapes/poseBox.js.map +1 -0
- package/dist/canvas/nodeShapes/rectFallbackPainter.js +38 -0
- package/dist/canvas/nodeShapes/rectFallbackPainter.js.map +1 -0
- package/dist/canvas/nodeShapes/shapePainter.js +72 -0
- package/dist/canvas/nodeShapes/shapePainter.js.map +1 -0
- package/dist/canvas/nodeShapes/textPainter.js +55 -0
- package/dist/canvas/nodeShapes/textPainter.js.map +1 -0
- package/dist/canvas/overlayRoleStrokes.js.map +1 -1
- package/dist/canvas/paintCull.js +10 -11
- package/dist/canvas/paintCull.js.map +1 -1
- package/dist/canvas/pickWalk.js +52 -63
- package/dist/canvas/pickWalk.js.map +1 -1
- package/dist/canvas/poseRotation.js +11 -23
- package/dist/canvas/poseRotation.js.map +1 -1
- package/dist/canvas/renderDebugSnapshot.js +5 -5
- package/dist/canvas/renderSceneToPixels.js +3 -1
- package/dist/canvas/renderSceneToPixels.js.map +1 -1
- package/dist/canvas/sceneAdapter.js +66 -148
- package/dist/canvas/sceneAdapter.js.map +1 -1
- package/dist/canvas/sceneClipboard.js +112 -0
- package/dist/canvas/sceneClipboard.js.map +1 -0
- package/dist/canvas/sceneSlotWiring.js +4 -4
- package/dist/canvas/sceneSlotWiring.js.map +1 -1
- package/dist/canvas/sceneViewRender.js +39 -40
- package/dist/canvas/sceneViewRender.js.map +1 -1
- package/dist/canvas/useCanvasRenderer.js +14 -6
- package/dist/canvas/useCanvasRenderer.js.map +1 -1
- package/dist/canvas/useCanvasView.js +58 -0
- package/dist/canvas/useCanvasView.js.map +1 -0
- package/dist/canvas/useFrameLoop.js +35 -26
- package/dist/canvas/useFrameLoop.js.map +1 -1
- package/dist/canvas/useSceneLayerList.js +21 -0
- package/dist/canvas/useSceneLayerList.js.map +1 -0
- package/dist/clipboard.d.ts +10 -6
- package/dist/clone.d.ts +4 -3
- package/dist/core/adapters/arrayAdapter.js +48 -39
- package/dist/core/adapters/arrayAdapter.js.map +1 -1
- package/dist/core/device/index.js +5 -4
- package/dist/core/device/useDeviceProfile.js +38 -44
- package/dist/core/device/useDeviceProfile.js.map +1 -1
- package/dist/core/device/watchDevicePixelRatio.js +17 -0
- package/dist/core/device/watchDevicePixelRatio.js.map +1 -0
- package/dist/core/fillInPoseFrame.js.map +1 -1
- package/dist/core/geometry/poseDescriptor.js +21 -19
- package/dist/core/geometry/poseDescriptor.js.map +1 -1
- package/dist/core/geometry/poseFrame.js +44 -0
- package/dist/core/geometry/poseFrame.js.map +1 -0
- package/dist/core/geometry/poseRotation.js.map +1 -1
- package/dist/core/geometry/regionHit.js +9 -10
- package/dist/core/geometry/regionHit.js.map +1 -1
- package/dist/core/geometry/unionBounds.js +31 -29
- package/dist/core/geometry/unionBounds.js.map +1 -1
- package/dist/core/isPlainObject.js +2 -11
- package/dist/core/ops/arrange.js +1 -0
- package/dist/core/ops/arrange.js.map +1 -1
- package/dist/core/ops/create.js +10 -5
- package/dist/core/ops/create.js.map +1 -1
- package/dist/core/ops/delete.js +12 -24
- package/dist/core/ops/delete.js.map +1 -1
- package/dist/core/ops/reorder/index.js +43 -40
- package/dist/core/ops/reorder/index.js.map +1 -1
- package/dist/core/ops/reorder/setChildOrder.js +34 -0
- package/dist/core/ops/reorder/setChildOrder.js.map +1 -0
- package/dist/core/paintKinds.js +5 -5
- package/dist/core/paintKinds.js.map +1 -1
- package/dist/core/scene/NodeProperties.js.map +1 -1
- package/dist/core/scene/appliedLog.js +37 -0
- package/dist/core/scene/appliedLog.js.map +1 -0
- package/dist/core/scene/arrivalWindow.js +101 -0
- package/dist/core/scene/arrivalWindow.js.map +1 -0
- package/dist/core/scene/derivedPath.js.map +1 -1
- package/dist/core/scene/historyFacade.js +84 -0
- package/dist/core/scene/historyFacade.js.map +1 -0
- package/dist/core/scene/kitOps.js +173 -0
- package/dist/core/scene/kitOps.js.map +1 -0
- package/dist/core/scene/layerStack.js +38 -0
- package/dist/core/scene/layerStack.js.map +1 -0
- package/dist/core/scene/lockGuard.js +37 -0
- package/dist/core/scene/lockGuard.js.map +1 -0
- package/dist/core/scene/nodeFnFields.js +5 -6
- package/dist/core/scene/nodeFnFields.js.map +1 -1
- package/dist/core/scene/nodeMemo.js +45 -19
- package/dist/core/scene/nodeMemo.js.map +1 -1
- package/dist/core/scene/nodeStore.js +126 -0
- package/dist/core/scene/nodeStore.js.map +1 -0
- package/dist/core/scene/pickability.js +6 -0
- package/dist/core/scene/pickability.js.map +1 -0
- package/dist/core/scene/poseFeed.js +38 -38
- package/dist/core/scene/poseFeed.js.map +1 -1
- package/dist/core/scene/poseOverrides.js +34 -38
- package/dist/core/scene/poseOverrides.js.map +1 -1
- package/dist/core/scene/renderOrder.js +84 -0
- package/dist/core/scene/renderOrder.js.map +1 -0
- package/dist/core/scene/scene.js +289 -866
- package/dist/core/scene/scene.js.map +1 -1
- package/dist/core/scene/serialization.js +68 -0
- package/dist/core/scene/serialization.js.map +1 -0
- package/dist/core/scene/treeOrder.js +13 -0
- package/dist/core/scene/treeOrder.js.map +1 -0
- package/dist/core/scene/types.js.map +1 -1
- package/dist/core/viewport/meanScale.js +1 -1
- package/dist/core/viewport/meanScale.js.map +1 -1
- package/dist/core/viewport/view.js +12 -12
- package/dist/core/viewport/view.js.map +1 -1
- package/dist/core/viewport/zoomBounds.js +10 -8
- package/dist/core/viewport/zoomBounds.js.map +1 -1
- package/dist/{cornerHandles-BCrDp_mH.d.ts → cornerHandles-CtCb8a3G.d.ts} +1 -1
- package/dist/debug/createDebugOverlayLayer.js +14 -14
- package/dist/debug/createDebugOverlayLayer.js.map +1 -1
- package/dist/debug/flag.js +2 -41
- package/dist/features/chrome-caps/useHoverTracking.js +22 -17
- package/dist/features/chrome-caps/useHoverTracking.js.map +1 -1
- package/dist/features/focus/gateLayer.js +3 -4
- package/dist/features/focus/gateLayer.js.map +1 -1
- package/dist/features/images/imageCache.js +19 -9
- package/dist/features/images/imageCache.js.map +1 -1
- package/dist/features/ingestion/contentHandlers.js +14 -11
- package/dist/features/ingestion/contentHandlers.js.map +1 -1
- package/dist/features/ingestion/index.js +1 -1
- package/dist/features/ingestion/registerKitHandlers.js +7 -7
- package/dist/features/ingestion/weaselJsonHandler.js +17 -14
- package/dist/features/ingestion/weaselJsonHandler.js.map +1 -1
- package/dist/features/meshPaint/lazyKind.js +201 -35
- package/dist/features/meshPaint/lazyKind.js.map +1 -1
- package/dist/features/meshPaint/meshPaint.js +82 -79
- package/dist/features/meshPaint/meshPaint.js.map +1 -1
- package/dist/features/minimap/createMinimapContribution.js +42 -42
- package/dist/features/minimap/layers.js +44 -62
- package/dist/features/minimap/layers.js.map +1 -1
- package/dist/features/parallax/createParallaxPlane.js +10 -14
- package/dist/features/parallax/createParallaxPlane.js.map +1 -1
- package/dist/features/paths/anchorEdits.js +19 -8
- package/dist/features/paths/anchorEdits.js.map +1 -1
- package/dist/features/paths/anchors.js +31 -26
- package/dist/features/paths/anchors.js.map +1 -1
- package/dist/features/paths/booleans.js +2 -2
- package/dist/features/paths/index.js +13 -11
- package/dist/features/paths/markerCommands.js +37 -36
- package/dist/features/paths/markerCommands.js.map +1 -1
- package/dist/features/paths/pathInWorld.js +19 -19
- package/dist/features/paths/pathInWorld.js.map +1 -1
- package/dist/features/paths/pathLayer.js.map +1 -1
- package/dist/features/paths/strokeToPath.js +40 -0
- package/dist/features/paths/strokeToPath.js.map +1 -0
- package/dist/features/paths/tessellate/stroke.js.map +1 -1
- package/dist/features/patterns/commandPaint.js +18 -0
- package/dist/features/patterns/commandPaint.js.map +1 -0
- package/dist/features/patterns/index.js +5 -17
- package/dist/features/patterns/index.js.map +1 -1
- package/dist/features/patterns/rasterizeTile.js +17 -0
- package/dist/features/patterns/rasterizeTile.js.map +1 -0
- package/dist/features/patterns/resolveSpec.js +52 -44
- package/dist/features/patterns/resolveSpec.js.map +1 -1
- package/dist/features/poseRun/usePoseRun.js +8 -3
- package/dist/features/poseRun/usePoseRun.js.map +1 -1
- package/dist/features/selection/SelectionContext.js +5 -0
- package/dist/features/selection/SelectionContext.js.map +1 -1
- package/dist/features/selection/overlay.js +18 -18
- package/dist/features/selection/overlay.js.map +1 -1
- package/dist/features/text/domOffsets.js +82 -0
- package/dist/features/text/domOffsets.js.map +1 -0
- package/dist/features/text/domRuns.js +103 -131
- package/dist/features/text/domRuns.js.map +1 -1
- package/dist/features/text/hitTest.js +5 -2
- package/dist/features/text/hitTest.js.map +1 -1
- package/dist/features/text/isTextData.js +8 -0
- package/dist/features/text/isTextData.js.map +1 -0
- package/dist/features/text/overlayDirection.js +15 -0
- package/dist/features/text/overlayDirection.js.map +1 -0
- package/dist/features/text/runs/rangeStyle.js +32 -34
- package/dist/features/text/runs/rangeStyle.js.map +1 -1
- package/dist/features/text/textCommand.js +34 -33
- package/dist/features/text/textCommand.js.map +1 -1
- package/dist/features/text/textToPath.js +40 -40
- package/dist/features/text/textToPath.js.map +1 -1
- package/dist/features/text/useSceneTextEdit.js +76 -82
- package/dist/features/text/useSceneTextEdit.js.map +1 -1
- package/dist/features/text/useTextEdit.js +184 -160
- package/dist/features/text/useTextEdit.js.map +1 -1
- package/dist/features/tiling/createTiledLayer.js +24 -22
- package/dist/features/tiling/createTiledLayer.js.map +1 -1
- package/dist/index.d.ts +11033 -7749
- package/dist/index.js +316 -309
- package/dist/input/keyState.js +42 -43
- package/dist/input/keyState.js.map +1 -1
- package/dist/input/useKeyModifiers.js +11 -0
- package/dist/input/useKeyModifiers.js.map +1 -0
- package/dist/interactions/actions/align/align.js +8 -8
- package/dist/interactions/actions/clipboard/clipboardOps.js +34 -32
- package/dist/interactions/actions/clipboard/clipboardOps.js.map +1 -1
- package/dist/interactions/actions/clipboard/materializePaste.js +10 -7
- package/dist/interactions/actions/clipboard/materializePaste.js.map +1 -1
- package/dist/interactions/actions/clipboard/wireFormat.js.map +1 -1
- package/dist/interactions/actions/clone/behaviors/cloneByAltDrag.js.map +1 -1
- package/dist/interactions/actions/defaultCommitAdapter.js +20 -18
- package/dist/interactions/actions/defaultCommitAdapter.js.map +1 -1
- package/dist/interactions/actions/defaults/align.js +9 -10
- package/dist/interactions/actions/defaults/align.js.map +1 -1
- package/dist/interactions/actions/defaults/anchorEditing.js +59 -81
- package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
- package/dist/interactions/actions/defaults/areaSelect.js +35 -38
- package/dist/interactions/actions/defaults/areaSelect.js.map +1 -1
- package/dist/interactions/actions/defaults/clipboard.js +26 -10
- package/dist/interactions/actions/defaults/clipboard.js.map +1 -1
- package/dist/interactions/actions/defaults/clone.js +44 -60
- package/dist/interactions/actions/defaults/clone.js.map +1 -1
- package/dist/interactions/actions/defaults/copySubtree.js +40 -0
- package/dist/interactions/actions/defaults/copySubtree.js.map +1 -0
- package/dist/interactions/actions/defaults/distribute.js +14 -13
- package/dist/interactions/actions/defaults/distribute.js.map +1 -1
- package/dist/interactions/actions/defaults/duplicate.js +17 -57
- package/dist/interactions/actions/defaults/duplicate.js.map +1 -1
- package/dist/interactions/actions/defaults/editAnchors.js +18 -18
- package/dist/interactions/actions/defaults/enterTextEdit.js.map +1 -1
- package/dist/interactions/actions/defaults/flip.js +52 -46
- package/dist/interactions/actions/defaults/flip.js.map +1 -1
- package/dist/interactions/actions/defaults/group.js +43 -48
- package/dist/interactions/actions/defaults/group.js.map +1 -1
- package/dist/interactions/actions/defaults/ingest.js +35 -33
- package/dist/interactions/actions/defaults/ingest.js.map +1 -1
- package/dist/interactions/actions/defaults/insert.js +50 -51
- package/dist/interactions/actions/defaults/insert.js.map +1 -1
- package/dist/interactions/actions/defaults/insertPathAnchor.js +7 -7
- package/dist/interactions/actions/defaults/lassoSelect.js +67 -70
- package/dist/interactions/actions/defaults/lassoSelect.js.map +1 -1
- package/dist/interactions/actions/defaults/move.js +267 -249
- package/dist/interactions/actions/defaults/move.js.map +1 -1
- package/dist/interactions/actions/defaults/nudge.js +40 -68
- package/dist/interactions/actions/defaults/nudge.js.map +1 -1
- package/dist/interactions/actions/defaults/nudgeSteps.js +37 -0
- package/dist/interactions/actions/defaults/nudgeSteps.js.map +1 -0
- package/dist/interactions/actions/defaults/reorder.js +2 -0
- package/dist/interactions/actions/defaults/reorder.js.map +1 -1
- package/dist/interactions/actions/defaults/resize.js +104 -98
- package/dist/interactions/actions/defaults/resize.js.map +1 -1
- package/dist/interactions/actions/defaults/rotate.js +111 -110
- package/dist/interactions/actions/defaults/rotate.js.map +1 -1
- package/dist/interactions/actions/defaults/setFill.js +7 -7
- package/dist/interactions/actions/defaults/setFillOpacity.js +4 -4
- package/dist/interactions/actions/defaults/setStroke.js +12 -12
- package/dist/interactions/actions/defaults/setStrokeOpacity.js +6 -6
- package/dist/interactions/actions/defaults/sliceOps.js +19 -19
- package/dist/interactions/actions/defaults/viewportDragPan.js +37 -26
- package/dist/interactions/actions/defaults/viewportDragPan.js.map +1 -1
- package/dist/interactions/actions/edit-anchors/geometry.js +28 -23
- package/dist/interactions/actions/edit-anchors/geometry.js.map +1 -1
- package/dist/interactions/actions/flip/helpers.js +30 -17
- package/dist/interactions/actions/flip/helpers.js.map +1 -1
- package/dist/interactions/actions/hitSelection.js +8 -0
- package/dist/interactions/actions/hitSelection.js.map +1 -0
- package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js +14 -18
- package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js.map +1 -1
- package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js +5 -5
- package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js.map +1 -1
- package/dist/interactions/actions/move/behaviors/snapToContainer.js +32 -21
- package/dist/interactions/actions/move/behaviors/snapToContainer.js.map +1 -1
- package/dist/interactions/actions/move/gestureAdapter.js +32 -15
- package/dist/interactions/actions/move/gestureAdapter.js.map +1 -1
- package/dist/interactions/actions/move/landedDescendants.js +33 -0
- package/dist/interactions/actions/move/landedDescendants.js.map +1 -0
- package/dist/interactions/actions/outlines/createOutlines.js +18 -18
- package/dist/interactions/actions/poseDescriptorDep.js +16 -4
- package/dist/interactions/actions/poseDescriptorDep.js.map +1 -1
- package/dist/interactions/actions/poseFrame.js +11 -6
- package/dist/interactions/actions/poseFrame.js.map +1 -1
- package/dist/interactions/actions/previewOverrides.js +5 -5
- package/dist/interactions/actions/previewOverrides.js.map +1 -1
- package/dist/interactions/actions/selectionSubtree.js +69 -0
- package/dist/interactions/actions/selectionSubtree.js.map +1 -0
- package/dist/interactions/actions/useStandardActions.js +66 -62
- package/dist/interactions/actions/useStandardActions.js.map +1 -1
- package/dist/interactions/gestures/dragGesture/dragGesture.js +4 -7
- package/dist/interactions/gestures/dragGesture/dragGesture.js.map +1 -1
- package/dist/interactions/gestures/dragGesture/dragPointOf.js +23 -0
- package/dist/interactions/gestures/dragGesture/dragPointOf.js.map +1 -0
- package/dist/interactions/gestures/handleDrag/handleDrag.js +21 -26
- package/dist/interactions/gestures/handleDrag/handleDrag.js.map +1 -1
- package/dist/interactions/gestures/pointerDrag/pointerDrag.js +8 -6
- package/dist/interactions/gestures/pointerDrag/pointerDrag.js.map +1 -1
- package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js +8 -4
- package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js.map +1 -1
- package/dist/{math-Drrw4ewZ.d.ts → math-J-ACHyEg.d.ts} +1 -2
- package/dist/math.d.ts +2 -3
- package/dist/move.d.ts +12 -11
- package/dist/{originProjection-DEklpDc_.d.ts → originProjection-gHnOup4e.d.ts} +1 -1
- package/dist/{registerProgram-BMZRDgrh.d.ts → registerProgram-T9S_PfAX.d.ts} +18 -7
- package/dist/renderer/DrawCommand.js.map +1 -1
- package/dist/renderer/WeaselRenderer.js +75 -73
- package/dist/renderer/WeaselRenderer.js.map +1 -1
- package/dist/renderer/cache/GLImageCache.js +15 -5
- package/dist/renderer/cache/GLImageCache.js.map +1 -1
- package/dist/renderer/cache/GLMeshCache.js +23 -23
- package/dist/renderer/cache/GLMeshCache.js.map +1 -1
- package/dist/renderer/cache/GLTextureCache.js +18 -1
- package/dist/renderer/cache/GLTextureCache.js.map +1 -1
- package/dist/renderer/cache/cache.js.map +1 -1
- package/dist/renderer/cache/markerCommandCache.js.map +1 -1
- package/dist/renderer/cache/strokeMeshCache.js.map +1 -1
- package/dist/renderer/cullDrawCommands.js +11 -11
- package/dist/renderer/draw/batch.js +133 -0
- package/dist/renderer/draw/batch.js.map +1 -0
- package/dist/renderer/draw/clip.js +89 -0
- package/dist/renderer/draw/clip.js.map +1 -0
- package/dist/renderer/draw/customShader.js +230 -0
- package/dist/renderer/draw/customShader.js.map +1 -0
- package/dist/renderer/draw/drawTriangles.js +8 -0
- package/dist/renderer/draw/drawTriangles.js.map +1 -0
- package/dist/renderer/draw/effects.js +28 -0
- package/dist/renderer/draw/effects.js.map +1 -0
- package/dist/renderer/draw/flushBatch.js +35 -0
- package/dist/renderer/draw/flushBatch.js.map +1 -0
- package/dist/renderer/draw/gradient.js +90 -0
- package/dist/renderer/draw/gradient.js.map +1 -0
- package/dist/renderer/draw/image.js +38 -0
- package/dist/renderer/draw/image.js.map +1 -0
- package/dist/renderer/draw/mesh.js +16 -0
- package/dist/renderer/draw/mesh.js.map +1 -0
- package/dist/renderer/draw/paintBind.js +70 -0
- package/dist/renderer/draw/paintBind.js.map +1 -0
- package/dist/renderer/draw/pathPaint.js +142 -0
- package/dist/renderer/draw/pathPaint.js.map +1 -0
- package/dist/renderer/draw/scratchPass.js +83 -0
- package/dist/renderer/draw/scratchPass.js.map +1 -0
- package/dist/renderer/draw/stencil.js +28 -0
- package/dist/renderer/draw/stencil.js.map +1 -0
- package/dist/renderer/draw/text.js +167 -0
- package/dist/renderer/draw/text.js.map +1 -0
- package/dist/renderer/draw/uniforms.js +77 -0
- package/dist/renderer/draw/uniforms.js.map +1 -0
- package/dist/renderer/draw.js +60 -1116
- package/dist/renderer/draw.js.map +1 -1
- package/dist/renderer/effects/EffectTargets.js +3 -0
- package/dist/renderer/effects/EffectTargets.js.map +1 -1
- package/dist/renderer/effects/composite.js +7 -5
- package/dist/renderer/effects/composite.js.map +1 -1
- package/dist/renderer/index.js +18 -17
- package/dist/renderer/math/color.js +63 -83
- package/dist/renderer/math/color.js.map +1 -1
- package/dist/renderer/math/mat3.js +15 -11
- package/dist/renderer/math/mat3.js.map +1 -1
- package/dist/renderer/math/viewToMat3.js +1 -1
- package/dist/renderer/math/viewToMat3.js.map +1 -1
- package/dist/renderer/shaders/ShaderProgram.js +13 -13
- package/dist/renderer/shaders/ShaderProgram.js.map +1 -1
- package/dist/renderer/shaders/glyphPaint.js +3 -3
- package/dist/renderer/shaders/glyphPaint.js.map +1 -1
- package/dist/renderer/shaders/gradFill.js +2 -1
- package/dist/renderer/shaders/gradFill.js.map +1 -1
- package/dist/renderer/shaders/pathFill.js +2 -1
- package/dist/renderer/shaders/pathFill.js.map +1 -1
- package/dist/renderer/shaders/patternFill.js +2 -1
- package/dist/renderer/shaders/patternFill.js.map +1 -1
- package/dist/renderer/shaders/registerProgram.js.map +1 -1
- package/dist/renderer/strokeLengths.js.map +1 -1
- package/dist/renderer/textures/registerTexture.js +25 -5
- package/dist/renderer/textures/registerTexture.js.map +1 -1
- package/dist/renderer.d.ts +16 -15
- package/dist/renderer.js +17 -16
- package/dist/resize.d.ts +5 -6
- package/dist/resize.js +5 -5
- package/dist/style.css +1 -1
- package/dist/test-hook/install.js +12 -6
- package/dist/test-hook/install.js.map +1 -1
- package/dist/{test-seams-CuIxe0xY.d.ts → test-seams-DM2B87-g.d.ts} +4 -4
- package/dist/test-seams.d.ts +2 -2
- package/dist/tools/builtin/ellipse/useEllipseTool.js +1 -0
- package/dist/tools/builtin/ellipse/useEllipseTool.js.map +1 -1
- package/dist/tools/builtin/hand/useHandTool.js +1 -0
- package/dist/tools/builtin/hand/useHandTool.js.map +1 -1
- package/dist/tools/builtin/lasso/useLassoTool.js +11 -11
- package/dist/tools/builtin/lasso/useLassoTool.js.map +1 -1
- package/dist/tools/builtin/line/useLineTool.js +1 -0
- package/dist/tools/builtin/line/useLineTool.js.map +1 -1
- package/dist/tools/builtin/pen/usePenTool.js +153 -103
- package/dist/tools/builtin/pen/usePenTool.js.map +1 -1
- package/dist/tools/builtin/pencil/usePencilTool.js +1 -0
- package/dist/tools/builtin/pencil/usePencilTool.js.map +1 -1
- package/dist/tools/builtin/polygon/usePolygonTool.js +13 -8
- package/dist/tools/builtin/polygon/usePolygonTool.js.map +1 -1
- package/dist/tools/builtin/rect/useRectTool.js +1 -0
- package/dist/tools/builtin/rect/useRectTool.js.map +1 -1
- package/dist/tools/builtin/select/selectionContributions.js +24 -23
- package/dist/tools/builtin/select/selectionContributions.js.map +1 -1
- package/dist/tools/builtin/select/useSelectTool.js +51 -48
- package/dist/tools/builtin/select/useSelectTool.js.map +1 -1
- package/dist/tools/builtin/shared/pointerFollower.js +17 -0
- package/dist/tools/builtin/shared/pointerFollower.js.map +1 -0
- package/dist/tools/builtin/slice/useSliceTool.js +49 -54
- package/dist/tools/builtin/slice/useSliceTool.js.map +1 -1
- package/dist/tools/builtin/star/useStarTool.js +22 -16
- package/dist/tools/builtin/star/useStarTool.js.map +1 -1
- package/dist/tools/builtin/text/useTextTool.js +1 -0
- package/dist/tools/builtin/text/useTextTool.js.map +1 -1
- package/dist/tools/useKeybindings.js +14 -30
- package/dist/tools/useKeybindings.js.map +1 -1
- package/dist/{types-B_9g6hMM.d.ts → types-B4iJRHC3.d.ts} +5 -1
- package/dist/{types-A37hYkeR.d.ts → types-k-5Oqh-U.d.ts} +31 -7
- package/dist/util/color.js +3 -3
- package/dist/util/color.js.map +1 -1
- package/dist/util/paint.js.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +20 -18
- package/dist/autoPoseDescriptor-vCdt55xm.d.ts +0 -27
- package/dist/builtins-C-VgUlWI.d.ts +0 -4514
- package/dist/core/isPlainObject.js.map +0 -1
- package/dist/debug/flag.js.map +0 -1
- package/dist/interactions/actions/defaults/freshNodeId.js +0 -10
- package/dist/interactions/actions/defaults/freshNodeId.js.map +0 -1
- package/dist/renderer/shaders/imageFill.js +0 -14
- package/dist/renderer/shaders/imageFill.js.map +0 -1
- package/dist/tools/prefs.js +0 -62
- package/dist/tools/prefs.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nudge.js","names":["
|
|
1
|
+
{"version":3,"file":"nudge.js","names":["nudgeSelection","descriptorOf","nodeDescriptors","scene","d","ids","translateTargets","scenePoseFrame","poseComposition","moveSources","selection","m","dx","dy","ops","id","node","createTransformOp","translatePoseViaDescriptor","dataOp","geometryDataOp","geometryProjection","applyOps","defaultCommitAdapter","makeNudgeAction","dir","NUDGE_LABEL","NUDGE_KEY","nudgeDelta","params","deps","poseDescriptorOf","requiresSelection","nudgeUpAction","nudgeDownAction","nudgeLeftAction","nudgeRightAction"],"sources":["../../../../src/interactions/actions/defaults/nudge.ts"],"sourcesContent":["import type { Scene } from 'core/scene/types';\nimport type { SelectionApi } from 'core/selection/useSelection';\nimport type { Op } from 'core/ops/types';\nimport type { Mat3 } from '@weasel-js/geom';\nimport { createTransformOp } from 'core/ops/transform';\nimport type { PoseDescriptor } from '../resize/geometry';\nimport { translatePoseViaDescriptor } from '../resize/geometry';\nimport { nodeDescriptors, poseDescriptorOf } from '../poseDescriptorDep';\nimport type { Action } from '@weasel-js/routing';\nimport { defaultCommitAdapter } from '../defaultCommitAdapter';\nimport { requiresSelection } from './requiresSelection';\nimport { geometryDataOp, type GeometryProjection } from '../geometryProjection';\nimport { scenePoseFrame } from '../poseFrame';\nimport { moveSources, translateTargets } from '../selectionSubtree';\nimport { NUDGE_KEY, NUDGE_LABEL, nudgeDelta, type NudgeDirection } from './nudgeSteps';\n\n/**\n * Apply a translation of (dx, dy) to the selected nodes and the descendants\n * that do not ride on one of them, by building one `createTransformOp` per\n * node (from = pre-mutation pose, to = nudged pose) and routing the batch\n * through the consumer commit hook. Translates through the `poseDescriptor`\n * dep, so any pose shape moves.\n *\n * Mirrors `moveAction`'s `commitOps` helper: when `deps.applyOps` is present\n * the ops route through the consumer's history (one undo entry there);\n * otherwise they apply straight to the scene's own history via\n * `scene.applyBatch` + `defaultCommitAdapter`. Either way the whole nudge is a\n * single batch → one undo entry, preserving the old `scene.batch('Nudge', …)`\n * semantics exactly.\n */\nfunction nudgeSelection(\n selection: SelectionApi,\n scene: Scene<unknown, string, unknown>,\n dx: number,\n dy: number,\n applyOps: ((ops: Op[], label: string) => void) | undefined,\n geometryProjection: GeometryProjection | undefined,\n d: PoseDescriptor<unknown>,\n poseComposition: unknown,\n): void {\n const descriptorOf = nodeDescriptors(scene, d);\n const ids = translateTargets(\n scene, scenePoseFrame(scene, poseComposition), moveSources(scene, selection.get()),\n );\n if (ids.length === 0) return;\n // Pure translation by the nudge step. Pushed alongside each transform op so\n // a wired geometryProjection mirrors the node's data-held geometry too.\n const m: Mat3 = [1, 0, 0, 1, dx, dy];\n\n // Read poses BEFORE building ops so each op's `from` is the pre-mutation\n // value (the same value the old direct mutation captured implicitly).\n const ops: Op[] = [];\n for (const id of ids) {\n const node = scene.get(id);\n if (!node) continue;\n ops.push(createTransformOp<unknown>({\n id: id as string,\n from: node.pose,\n to: translatePoseViaDescriptor(node.pose, dx, dy, descriptorOf(id)),\n label: 'Nudge',\n }));\n const dataOp = geometryDataOp(\n geometryProjection,\n { id: id as string, data: node.data, pose: node.pose },\n m,\n 'Nudge',\n );\n if (dataOp) ops.push(dataOp);\n }\n if (ops.length === 0) return;\n\n if (applyOps) applyOps(ops, 'Nudge');\n else scene.applyBatch(ops, 'Nudge', defaultCommitAdapter(scene, selection.adapterMethods));\n}\n\n/**\n * @experimental\n * Build one static nudge descriptor for the given direction. Each descriptor\n * carries two parametric bindings: bare arrow (magnitude='small') and\n * Shift+arrow (magnitude='big').\n *\n * Requires dep-schema entries: `selection`, `scene`.\n */\nfunction makeNudgeAction(dir: NudgeDirection): Action & { requires: string[] } {\n return {\n id: `nudge.${dir}`,\n label: `Nudge ${NUDGE_LABEL[dir]}`,\n group: 'nudge',\n defaultBinding: [\n { spec: { kind: 'key', key: NUDGE_KEY[dir] }, opts: { params: { magnitude: 'small' } } },\n { spec: { kind: 'key', key: NUDGE_KEY[dir], mods: { shift: true } }, opts: { params: { magnitude: 'big' } } },\n ],\n eligible: { capability: 'transforms-selection' },\n requires: ['selection', 'scene', 'applyOps', 'geometryProjection', 'poseDescriptor', 'poseComposition'],\n invoker: {\n timing: 'immediate',\n run: (deps, params) => {\n const { dx, dy } = nudgeDelta(dir, params?.magnitude);\n const selection = deps.selection;\n const scene = deps.scene;\n const applyOps = deps.applyOps;\n const geometryProjection = deps.geometryProjection;\n if (!selection || !scene) return;\n nudgeSelection(selection, scene, dx, dy, applyOps, geometryProjection, poseDescriptorOf(deps.poseDescriptor), deps.poseComposition);\n },\n },\n enabled: requiresSelection,\n };\n}\n\nexport const nudgeUpAction = makeNudgeAction('up');\nexport const nudgeDownAction = makeNudgeAction('down');\nexport const nudgeLeftAction = makeNudgeAction('left');\nexport const nudgeRightAction = makeNudgeAction('right');\n"],"mappings":";;;;;;;;;;AA8BA,SAASA,EACP,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACM;CACN,IAAMC,IAAeC,EAAgBC,GAAOC,CAAC,GACvCC,IAAMC,EACVH,GAAOI,EAAeJ,GAAOK,CAAe,GAAGC,EAAYN,GAAOO,EAAU,IAAI,CAAC,CACnF;CACA,IAAIL,EAAI,WAAW,GAAG;CAGtB,IAAMM,IAAU;EAAC;EAAG;EAAG;EAAG;EAAGC;EAAIC;CAAE,GAI7BC,IAAY,CAAC;CACnB,KAAK,IAAMC,KAAMV,GAAK;EACpB,IAAMW,IAAOb,EAAM,IAAIY,CAAE;EACzB,IAAI,CAACC,GAAM;EACX,EAAI,KAAKC,EAA2B;GAC9B;GACJ,MAAMD,EAAK;GACX,IAAIE,EAA2BF,EAAK,MAAMJ,GAAIC,GAAIZ,EAAac,CAAE,CAAC;GAClE,OAAO;EACT,CAAC,CAAC;EACF,IAAMI,IAASC,EACbC,GACA;GAAM;GAAc,MAAML,EAAK;GAAM,MAAMA,EAAK;EAAK,GACrDL,GACA,OACF;EACA,AAAIQ,KAAQL,EAAI,KAAKK,CAAM;CAC7B;CACA,AAAIL,EAAI,WAAW,MAEfQ,IAAUA,EAASR,GAAK,OAAO,IAC9BX,EAAM,WAAWW,GAAK,SAASS,EAAqBpB,GAAOO,EAAU,cAAc,CAAC;AAC3F;AAUA,SAASc,EAAgB,GAAsD;CAC7E,OAAO;EACL,IAAI,SAASC;EACb,OAAO,SAASC,EAAYD;EAC5B,OAAO;EACP,gBAAgB,CACd;GAAE,MAAM;IAAE,MAAM;IAAO,KAAKE,EAAUF;GAAK;GAAgC,MAAM,EAAE,QAAQ,EAAE,WAAW,QAAQ,EAAE;EAAE,GACpH;GAAE,MAAM;IAAE,MAAM;IAAO,KAAKE,EAAUF;IAAM,MAAM,EAAE,OAAO,GAAK;GAAE;GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,MAAM,EAAE;EAAE,CAC9G;EACA,UAAU,EAAE,YAAY,uBAAuB;EAC/C,UAAU;GAAC;GAAa;GAAS;GAAY;GAAsB;GAAkB;EAAiB;EACtG,SAAS;GACP,QAAQ;GACR,MAAM,GAAM,MAAW;IACrB,IAAM,EAAE,OAAI,UAAOG,EAAWH,GAAKI,GAAQ,SAAS,GAC9CnB,IAAYoB,EAAK,WACjB3B,IAAQ2B,EAAK,OACbR,IAAWQ,EAAK,UAChBT,IAAqBS,EAAK;IAChC,AAAKpB,KAAcP,KACnBH,EAAeU,GAAWP,GAAOS,GAAIC,GAAIS,GAAUD,GAAoBU,EAAiBD,EAAK,cAAc,GAAGA,EAAK,eAAe;GACpI;EACF;EACA,SAASE;CACX;AACF;AAEA,IAAaC,IAAmBT,EAAgB,IAAI,GACvCU,IAAmBV,EAAgB,MAAM,GACzCW,IAAmBX,EAAgB,MAAM,GACzCY,IAAmBZ,EAAgB,OAAO"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//#region src/interactions/actions/defaults/nudgeSteps.ts
|
|
2
|
+
var e = {
|
|
3
|
+
up: "ArrowUp",
|
|
4
|
+
down: "ArrowDown",
|
|
5
|
+
left: "ArrowLeft",
|
|
6
|
+
right: "ArrowRight"
|
|
7
|
+
}, t = {
|
|
8
|
+
up: "Up",
|
|
9
|
+
down: "Down",
|
|
10
|
+
left: "Left",
|
|
11
|
+
right: "Right"
|
|
12
|
+
}, n = 1, r = 10;
|
|
13
|
+
function i(e, t) {
|
|
14
|
+
let i = t === "big" ? r : n;
|
|
15
|
+
switch (e) {
|
|
16
|
+
case "up": return {
|
|
17
|
+
dx: 0,
|
|
18
|
+
dy: -i
|
|
19
|
+
};
|
|
20
|
+
case "down": return {
|
|
21
|
+
dx: 0,
|
|
22
|
+
dy: i
|
|
23
|
+
};
|
|
24
|
+
case "left": return {
|
|
25
|
+
dx: -i,
|
|
26
|
+
dy: 0
|
|
27
|
+
};
|
|
28
|
+
case "right": return {
|
|
29
|
+
dx: i,
|
|
30
|
+
dy: 0
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
export { e as NUDGE_KEY, t as NUDGE_LABEL, i as nudgeDelta };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=nudgeSteps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nudgeSteps.js","names":["NUDGE_KEY","NUDGE_LABEL","SMALL_STEP","BIG_STEP","nudgeDelta","step","magnitude","dir"],"sources":["../../../../src/interactions/actions/defaults/nudgeSteps.ts"],"sourcesContent":["/** The arrow-key nudge shared by nodes and path anchors: one direction per\n * key, a small step bare and a big one with Shift. */\nexport type NudgeDirection = 'up' | 'down' | 'left' | 'right';\n\nexport const NUDGE_KEY: Record<NudgeDirection, string> = {\n up: 'ArrowUp', down: 'ArrowDown', left: 'ArrowLeft', right: 'ArrowRight',\n};\n\nexport const NUDGE_LABEL: Record<NudgeDirection, string> = {\n up: 'Up', down: 'Down', left: 'Left', right: 'Right',\n};\n\nconst SMALL_STEP = 1;\nconst BIG_STEP = 10;\n\n/** The world delta of one nudge. `magnitude` is the binding param: `'big'`\n * for the Shift step, anything else for the small one. */\nexport function nudgeDelta(dir: NudgeDirection, magnitude: unknown): { dx: number; dy: number } {\n const step = magnitude === 'big' ? BIG_STEP : SMALL_STEP;\n switch (dir) {\n case 'up': return { dx: 0, dy: -step };\n case 'down': return { dx: 0, dy: step };\n case 'left': return { dx: -step, dy: 0 };\n case 'right': return { dx: step, dy: 0 };\n }\n}\n"],"mappings":";AAIA,IAAaA,IAA4C;CACvD,IAAI;CAAW,MAAM;CAAa,MAAM;CAAa,OAAO;AAC9D,GAEaC,IAA8C;CACzD,IAAI;CAAM,MAAM;CAAQ,MAAM;CAAQ,OAAO;AAC/C,GAEMC,IAAa,GACbC,IAAW;AAIjB,SAAgBC,EAAW,GAAqB,GAAgD;CAC9F,IAAMC,IAAOC,MAAc,QAAQH,IAAWD;CAC9C,QAAQK,GAAR;EACE,KAAK,MAAS,OAAO;GAAE,IAAI;GAAO,IAAI,CAACF;EAAK;EAC5C,KAAK,QAAS,OAAO;GAAE,IAAI;GAAO,IAAKA;EAAK;EAC5C,KAAK,QAAS,OAAO;GAAE,IAAI,CAACA;GAAM,IAAI;EAAM;EAC5C,KAAK,SAAS,OAAO;GAAE,IAAKA;GAAM,IAAI;EAAM;CAC9C;AACF"}
|
|
@@ -53,6 +53,7 @@ var l = {
|
|
|
53
53
|
spec: {
|
|
54
54
|
kind: "key",
|
|
55
55
|
key: ["]", "‘"],
|
|
56
|
+
code: "BracketRight",
|
|
56
57
|
mods: {
|
|
57
58
|
mod: !0,
|
|
58
59
|
alt: !0
|
|
@@ -114,6 +115,7 @@ var l = {
|
|
|
114
115
|
spec: {
|
|
115
116
|
kind: "key",
|
|
116
117
|
key: ["[", "“"],
|
|
118
|
+
code: "BracketLeft",
|
|
117
119
|
mods: {
|
|
118
120
|
mod: !0,
|
|
119
121
|
alt: !0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reorder.js","names":["reorderSelection","ids","selection","op","createReorderOp","direction","distance","applyOps","scene","defaultCommitAdapter","reorderForwardAction","createElement","BringForwardIcon","BringToFrontIcon","params","deps","requiresSelection","reorderBackwardAction","SendBackwardIcon","SendToBackIcon"],"sources":["../../../../src/interactions/actions/defaults/reorder.ts"],"sourcesContent":["import { createReorderOp } from 'core/ops/reorder';\nimport { createElement } from 'react';\nimport { BringForwardIcon, BringToFrontIcon, SendBackwardIcon, SendToBackIcon } from './icons/editIcons';\nimport type { Scene } from 'core/scene/types';\nimport type { Op } from 'core/ops/types';\nimport type { SelectionApi } from 'core/selection/useSelection';\nimport { defaultCommitAdapter } from '../defaultCommitAdapter';\nimport type { Action } from '@weasel-js/routing';\nimport { requiresSelection } from './requiresSelection';\n\n// ---------------------------------------------------------------------------\n// Shared helper\n// ---------------------------------------------------------------------------\n\ntype ReorderDistance = 'adjacent' | 'extreme';\n\n/**\n * Execute a directional reorder on the current selection. Translates\n * `direction` + `distance` into the four-way `ReorderDirection` understood by\n * `createReorderOp`, then routes the single reorder op through the consumer\n * `applyOps` commit hook (consumer history) when present, falling back to\n * `scene.applyBatch` against the shared `defaultCommitAdapter`. Either way the\n * whole reorder lands as one undo entry labelled `'Reorder'`.\n */\nfunction reorderSelection(\n selection: SelectionApi,\n scene: Scene<unknown, string, unknown>,\n direction: 'forward' | 'backward',\n distance: ReorderDistance,\n applyOps: ((ops: Op[], label: string) => void) | undefined,\n): void {\n const ids = selection.get() as string[];\n if (ids.length === 0) return;\n\n const reorderDir =\n direction === 'forward'\n ? distance === 'extreme' ? 'front' : 'forward'\n : distance === 'extreme' ? 'back' : 'backward';\n\n // `createReorderOp` partitions `ids` by their current parent and rewrites\n // each affected parent's child order via the adapter's `getChildren` /\n // `setChildOrder` (and `getParent`) — all carried by `defaultCommitAdapter`.\n const op = createReorderOp({ ids, direction: reorderDir, label: 'Reorder' });\n\n if (applyOps) applyOps([op], 'Reorder');\n else scene.applyBatch([op], 'Reorder', defaultCommitAdapter(scene, selection.adapterMethods));\n}\n\n// ---------------------------------------------------------------------------\n// Descriptors\n// ---------------------------------------------------------------------------\n\n/**\n * @experimental\n * Parametric descriptor for forward reorder (`reorder.forward`).\n *\n * Collapses the old `reorder.forward` (adjacent) and `reorder.front`\n * (extreme) actions into one descriptor with two keybindings. The distance\n * param (`'adjacent'` | `'extreme'`) is carried in `opts.params.distance`\n * and forwarded to `invoker.run` by the dispatcher.\n */\nexport const reorderForwardAction: Action & { requires: string[] } = {\n id: 'reorder.forward',\n label: 'Bring Forward',\n group: 'reorder',\n variants: [\n { key: 'adjacent', label: 'Bring Forward', icon: createElement(BringForwardIcon), params: { distance: 'adjacent' } },\n { key: 'extreme', label: 'Bring to Front', icon: createElement(BringToFrontIcon), params: { distance: 'extreme' } },\n ],\n defaultBinding: [\n {\n // Modifier matching is strict, so Shift must be absent here — listing\n // the shifted `'}'` on this binding would be dead weight, since you\n // can't type it without the Shift this spec forbids.\n spec: { kind: 'key', key: [']'], mods: { mod: true } },\n opts: { params: { distance: 'adjacent' } },\n },\n {\n // Cmd+Shift+] → bring-to-front, the convention every drawing app uses.\n // With Shift held the US-layout key reports as '}', so both characters\n // are listed. Some browsers bind Cmd+Shift+[ / ] to tab switching and\n // may consume the event before the page sees it — hence the Cmd+Alt\n // binding below, which nothing reserves.\n spec: { kind: 'key', key: [']', '}'], mods: { mod: true, shift: true } },\n opts: { params: { distance: 'extreme' } },\n },\n {\n // Cmd+Alt+] → bring-to-front. On macOS Option+] emits '‘' (U+2018);\n // whether Cmd suppresses that transform is browser-dependent, so match\n // both the bracket and the Option-produced char (US layout).
|
|
1
|
+
{"version":3,"file":"reorder.js","names":["reorderSelection","ids","selection","op","createReorderOp","direction","distance","applyOps","scene","defaultCommitAdapter","reorderForwardAction","createElement","BringForwardIcon","BringToFrontIcon","params","deps","requiresSelection","reorderBackwardAction","SendBackwardIcon","SendToBackIcon"],"sources":["../../../../src/interactions/actions/defaults/reorder.ts"],"sourcesContent":["import { createReorderOp } from 'core/ops/reorder';\nimport { createElement } from 'react';\nimport { BringForwardIcon, BringToFrontIcon, SendBackwardIcon, SendToBackIcon } from './icons/editIcons';\nimport type { Scene } from 'core/scene/types';\nimport type { Op } from 'core/ops/types';\nimport type { SelectionApi } from 'core/selection/useSelection';\nimport { defaultCommitAdapter } from '../defaultCommitAdapter';\nimport type { Action } from '@weasel-js/routing';\nimport { requiresSelection } from './requiresSelection';\n\n// ---------------------------------------------------------------------------\n// Shared helper\n// ---------------------------------------------------------------------------\n\ntype ReorderDistance = 'adjacent' | 'extreme';\n\n/**\n * Execute a directional reorder on the current selection. Translates\n * `direction` + `distance` into the four-way `ReorderDirection` understood by\n * `createReorderOp`, then routes the single reorder op through the consumer\n * `applyOps` commit hook (consumer history) when present, falling back to\n * `scene.applyBatch` against the shared `defaultCommitAdapter`. Either way the\n * whole reorder lands as one undo entry labelled `'Reorder'`.\n */\nfunction reorderSelection(\n selection: SelectionApi,\n scene: Scene<unknown, string, unknown>,\n direction: 'forward' | 'backward',\n distance: ReorderDistance,\n applyOps: ((ops: Op[], label: string) => void) | undefined,\n): void {\n const ids = selection.get() as string[];\n if (ids.length === 0) return;\n\n const reorderDir =\n direction === 'forward'\n ? distance === 'extreme' ? 'front' : 'forward'\n : distance === 'extreme' ? 'back' : 'backward';\n\n // `createReorderOp` partitions `ids` by their current parent and rewrites\n // each affected parent's child order via the adapter's `getChildren` /\n // `setChildOrder` (and `getParent`) — all carried by `defaultCommitAdapter`.\n const op = createReorderOp({ ids, direction: reorderDir, label: 'Reorder' });\n\n if (applyOps) applyOps([op], 'Reorder');\n else scene.applyBatch([op], 'Reorder', defaultCommitAdapter(scene, selection.adapterMethods));\n}\n\n// ---------------------------------------------------------------------------\n// Descriptors\n// ---------------------------------------------------------------------------\n\n/**\n * @experimental\n * Parametric descriptor for forward reorder (`reorder.forward`).\n *\n * Collapses the old `reorder.forward` (adjacent) and `reorder.front`\n * (extreme) actions into one descriptor with two keybindings. The distance\n * param (`'adjacent'` | `'extreme'`) is carried in `opts.params.distance`\n * and forwarded to `invoker.run` by the dispatcher.\n */\nexport const reorderForwardAction: Action & { requires: string[] } = {\n id: 'reorder.forward',\n label: 'Bring Forward',\n group: 'reorder',\n variants: [\n { key: 'adjacent', label: 'Bring Forward', icon: createElement(BringForwardIcon), params: { distance: 'adjacent' } },\n { key: 'extreme', label: 'Bring to Front', icon: createElement(BringToFrontIcon), params: { distance: 'extreme' } },\n ],\n defaultBinding: [\n {\n // Modifier matching is strict, so Shift must be absent here — listing\n // the shifted `'}'` on this binding would be dead weight, since you\n // can't type it without the Shift this spec forbids.\n spec: { kind: 'key', key: [']'], mods: { mod: true } },\n opts: { params: { distance: 'adjacent' } },\n },\n {\n // Cmd+Shift+] → bring-to-front, the convention every drawing app uses.\n // With Shift held the US-layout key reports as '}', so both characters\n // are listed. Some browsers bind Cmd+Shift+[ / ] to tab switching and\n // may consume the event before the page sees it — hence the Cmd+Alt\n // binding below, which nothing reserves.\n spec: { kind: 'key', key: [']', '}'], mods: { mod: true, shift: true } },\n opts: { params: { distance: 'extreme' } },\n },\n {\n // Cmd+Alt+] → bring-to-front. On macOS Option+] emits '‘' (U+2018);\n // whether Cmd suppresses that transform is browser-dependent, so match\n // both the bracket and the Option-produced char (US layout). `code`\n // covers the layouts where Option types something else on that key.\n spec: { kind: 'key', key: [']', '‘'], code: 'BracketRight', mods: { mod: true, alt: true } },\n opts: { params: { distance: 'extreme' } },\n },\n ],\n eligible: { capability: 'edits-page' },\n requires: ['selection', 'scene', 'applyOps'],\n invoker: {\n timing: 'immediate',\n run: (deps, params) => {\n const distance = (params?.distance as ReorderDistance | undefined) ?? 'adjacent';\n const selection = deps.selection;\n const scene = deps.scene;\n const applyOps = deps.applyOps;\n if (!selection || !scene) return;\n reorderSelection(selection, scene, 'forward', distance, applyOps);\n },\n },\n enabled: requiresSelection,\n};\n\n/**\n * @experimental\n * Parametric descriptor for backward reorder (`reorder.backward`).\n *\n * Collapses the old `reorder.backward` (adjacent) and `reorder.back`\n * (extreme) actions into one descriptor with two keybindings.\n */\nexport const reorderBackwardAction: Action & { requires: string[] } = {\n id: 'reorder.backward',\n label: 'Send Backward',\n group: 'reorder',\n variants: [\n { key: 'adjacent', label: 'Send Backward', icon: createElement(SendBackwardIcon), params: { distance: 'adjacent' } },\n { key: 'extreme', label: 'Send to Back', icon: createElement(SendToBackIcon), params: { distance: 'extreme' } },\n ],\n defaultBinding: [\n {\n spec: { kind: 'key', key: ['['], mods: { mod: true } },\n opts: { params: { distance: 'adjacent' } },\n },\n {\n // Cmd+Shift+[ → send-to-back. See the bring-to-front notes above.\n spec: { kind: 'key', key: ['[', '{'], mods: { mod: true, shift: true } },\n opts: { params: { distance: 'extreme' } },\n },\n {\n // Cmd+Alt+[ → send-to-back, the binding no browser reserves. On macOS\n // Option+[ emits '“' (U+201C), included alongside the bracket.\n spec: { kind: 'key', key: ['[', '“'], code: 'BracketLeft', mods: { mod: true, alt: true } },\n opts: { params: { distance: 'extreme' } },\n },\n ],\n eligible: { capability: 'edits-page' },\n requires: ['selection', 'scene', 'applyOps'],\n invoker: {\n timing: 'immediate',\n run: (deps, params) => {\n const distance = (params?.distance as ReorderDistance | undefined) ?? 'adjacent';\n const selection = deps.selection;\n const scene = deps.scene;\n const applyOps = deps.applyOps;\n if (!selection || !scene) return;\n reorderSelection(selection, scene, 'backward', distance, applyOps);\n },\n },\n enabled: requiresSelection,\n};\n\n"],"mappings":";;;;;;AAwBA,SAASA,EACP,GACA,GACA,GACA,GACA,GACM;CACN,IAAMC,IAAMC,EAAU,IAAI;CAC1B,IAAID,EAAI,WAAW,GAAG;CAUtB,IAAME,IAAKC,EAAgB;EAAE;EAAK,WAPhCC,MAAc,YACVC,MAAa,YAAY,UAAU,YACnCA,MAAa,YAAY,SAAS;EAKiB,OAAO;CAAU,CAAC;CAE3E,AAAIC,IAAUA,EAAS,CAACJ,CAAE,GAAG,SAAS,IACjCK,EAAM,WAAW,CAACL,CAAE,GAAG,WAAWM,EAAqBD,GAAON,EAAU,cAAc,CAAC;AAC9F;AAeA,IAAaQ,IAAwD;CACnE,IAAI;CACJ,OAAO;CACP,OAAO;CACP,UAAU,CACR;EAAE,KAAK;EAAY,OAAO;EAAiB,MAAMC,EAAcC,CAAgB;EAAG,QAAQ,EAAE,UAAU,WAAW;CAAE,GACnH;EAAE,KAAK;EAAW,OAAO;EAAkB,MAAMD,EAAcE,CAAgB;EAAG,QAAQ,EAAE,UAAU,UAAU;CAAE,CACpH;CACA,gBAAgB;EACd;GAIE,MAAM;IAAE,MAAM;IAAO,KAAK,CAAC,GAAG;IAAG,MAAM,EAAE,KAAK,GAAK;GAAE;GACrD,MAAM,EAAE,QAAQ,EAAE,UAAU,WAAW,EAAE;EAC3C;EACA;GAME,MAAM;IAAE,MAAM;IAAO,KAAK,CAAC,KAAK,GAAG;IAAG,MAAM;KAAE,KAAK;KAAM,OAAO;IAAK;GAAE;GACvE,MAAM,EAAE,QAAQ,EAAE,UAAU,UAAU,EAAE;EAC1C;EACA;GAKE,MAAM;IAAE,MAAM;IAAO,KAAK,CAAC,KAAK,GAAG;IAAG,MAAM;IAAgB,MAAM;KAAE,KAAK;KAAM,KAAK;IAAK;GAAE;GAC3F,MAAM,EAAE,QAAQ,EAAE,UAAU,UAAU,EAAE;EAC1C;CACF;CACA,UAAU,EAAE,YAAY,aAAa;CACrC,UAAU;EAAC;EAAa;EAAS;CAAU;CAC3C,SAAS;EACP,QAAQ;EACR,MAAM,GAAM,MAAW;GACrB,IAAMP,IAAYQ,GAAQ,YAA4C,YAChEZ,IAAYa,EAAK,WACjBP,IAAQO,EAAK,OACbR,IAAWQ,EAAK;GACtB,AAAKb,KAAcM,KACnBR,EAAiBE,GAAWM,GAAO,WAAWF,GAAUC,CAAQ;EAClE;CACF;CACA,SAASS;AACX,GASaC,IAAyD;CACpE,IAAI;CACJ,OAAO;CACP,OAAO;CACP,UAAU,CACR;EAAE,KAAK;EAAY,OAAO;EAAiB,MAAMN,EAAcO,CAAgB;EAAG,QAAQ,EAAE,UAAU,WAAW;CAAE,GACnH;EAAE,KAAK;EAAW,OAAO;EAAgB,MAAMP,EAAcQ,CAAc;EAAG,QAAQ,EAAE,UAAU,UAAU;CAAE,CAChH;CACA,gBAAgB;EACd;GACE,MAAM;IAAE,MAAM;IAAO,KAAK,CAAC,GAAG;IAAG,MAAM,EAAE,KAAK,GAAK;GAAE;GACrD,MAAM,EAAE,QAAQ,EAAE,UAAU,WAAW,EAAE;EAC3C;EACA;GAEE,MAAM;IAAE,MAAM;IAAO,KAAK,CAAC,KAAK,GAAG;IAAG,MAAM;KAAE,KAAK;KAAM,OAAO;IAAK;GAAE;GACvE,MAAM,EAAE,QAAQ,EAAE,UAAU,UAAU,EAAE;EAC1C;EACA;GAGE,MAAM;IAAE,MAAM;IAAO,KAAK,CAAC,KAAK,GAAG;IAAG,MAAM;IAAe,MAAM;KAAE,KAAK;KAAM,KAAK;IAAK;GAAE;GAC1F,MAAM,EAAE,QAAQ,EAAE,UAAU,UAAU,EAAE;EAC1C;CACF;CACA,UAAU,EAAE,YAAY,aAAa;CACrC,UAAU;EAAC;EAAa;EAAS;CAAU;CAC3C,SAAS;EACP,QAAQ;EACR,MAAM,GAAM,MAAW;GACrB,IAAMb,IAAYQ,GAAQ,YAA4C,YAChEZ,IAAYa,EAAK,WACjBP,IAAQO,EAAK,OACbR,IAAWQ,EAAK;GACtB,AAAKb,KAAcM,KACnBR,EAAiBE,GAAWM,GAAO,YAAYF,GAAUC,CAAQ;EACnE;CACF;CACA,SAASS;AACX"}
|
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
import { fromPlane as e, toPlane as t } from "../../../core/viewport/parallax.js";
|
|
2
2
|
import { dropPreviewOverrides as n, syncPreviewOverrides as r } from "../previewOverrides.js";
|
|
3
3
|
import { poseRotationOf as i } from "../../../core/geometry/poseRotation.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
4
|
+
import { createTransformOp as a } from "../../../core/ops/transform.js";
|
|
5
|
+
import { unionAABB as o, unionBounds as s } from "../../../core/geometry/unionBounds.js";
|
|
6
|
+
import { remapRotatedLeaf as c, translatePoseViaDescriptor as l, visualBoundsViaDescriptor as u } from "../../../core/geometry/poseDescriptor.js";
|
|
7
|
+
import { isRectPose as d } from "../resize/autoPoseDescriptor.js";
|
|
8
|
+
import { fixedCornerOf as f } from "../resize/cornerHandles.js";
|
|
9
|
+
import { rotatePoint as p } from "../rotate/geometry.js";
|
|
10
|
+
import { gesturePlaneReader as m, gestureViewReader as ee } from "../../gestures/shared/screenTolerance.js";
|
|
11
|
+
import { commitGestureOps as h, readGestureLifecycle as te, reduceBehaviorEnd as g, runBehaviorCancel as ne } from "../gestureLifecycle.js";
|
|
12
|
+
import { shapeSources as re } from "../selectionSubtree.js";
|
|
13
|
+
import { geometryDataOp as ie } from "../geometryProjection.js";
|
|
14
|
+
import { nodeDescriptors as ae, poseDescriptorOf as _ } from "../poseDescriptorDep.js";
|
|
15
|
+
import { carryPose as v, inPlane as y, invertPlane as oe, planeOf as b, selectionLayer as x } from "../planeInput.js";
|
|
12
16
|
import { DEFAULT_RESIZE_BEHAVIORS as S } from "../resize/behaviors/index.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { scenePoseFrame as te } from "../poseFrame.js";
|
|
17
|
-
import { boxToBox as T } from "@weasel-js/geom";
|
|
17
|
+
import { defaultCommitAdapter as se } from "../defaultCommitAdapter.js";
|
|
18
|
+
import { scenePoseFrame as ce } from "../poseFrame.js";
|
|
19
|
+
import { boxToBox as le } from "@weasel-js/geom";
|
|
18
20
|
//#region src/interactions/actions/defaults/resize.ts
|
|
19
|
-
var
|
|
20
|
-
function
|
|
21
|
-
let t =
|
|
21
|
+
var C = (e) => e, w = [];
|
|
22
|
+
function ue(e) {
|
|
23
|
+
let t = _(e.deps.poseDescriptor), n = e.deps.resizePolicy;
|
|
22
24
|
return n ? {
|
|
23
25
|
behaviors: n.constraints,
|
|
24
26
|
pointSnap: n.pointSnap,
|
|
@@ -27,14 +29,17 @@ function O(e) {
|
|
|
27
29
|
policy: n
|
|
28
30
|
} : {
|
|
29
31
|
behaviors: S,
|
|
30
|
-
pointSnap:
|
|
31
|
-
expandIds:
|
|
32
|
+
pointSnap: w,
|
|
33
|
+
expandIds: C,
|
|
32
34
|
geometry: t,
|
|
33
35
|
policy: void 0
|
|
34
36
|
};
|
|
35
37
|
}
|
|
36
|
-
function
|
|
37
|
-
|
|
38
|
+
function T(e, t) {
|
|
39
|
+
return d(t) ? t : e.getBounds(t);
|
|
40
|
+
}
|
|
41
|
+
function de(e, t, n, r) {
|
|
42
|
+
let i = e.x + e.width / 2, a = e.y + e.height / 2, o = p(e.x, e.y, i, a, t), s = p(e.x + e.width, e.y, i, a, t), c = p(e.x + e.width, e.y + e.height, i, a, t), l = p(e.x, e.y + e.height, i, a, t), u = null, d = null;
|
|
38
43
|
if (n.x !== "free" && n.y !== "free") {
|
|
39
44
|
let e = n.x === "min" && n.y === "min" ? o : n.x === "max" && n.y === "min" ? s : n.x === "max" && n.y === "max" ? c : l, t = n.x === "min" && n.y === "min" ? c : n.x === "max" && n.y === "min" ? l : n.x === "max" && n.y === "max" ? o : s;
|
|
40
45
|
d = {
|
|
@@ -62,7 +67,7 @@ function k(e, t, n, r) {
|
|
|
62
67
|
modifiers: r
|
|
63
68
|
};
|
|
64
69
|
}
|
|
65
|
-
function
|
|
70
|
+
function fe(e, t, n, r) {
|
|
66
71
|
if (n.frame === "center") {
|
|
67
72
|
let t = n.worldX - r.center.worldX, i = n.worldY - r.center.worldY;
|
|
68
73
|
return {
|
|
@@ -90,7 +95,7 @@ function ne(e, t, n, r) {
|
|
|
90
95
|
height: f
|
|
91
96
|
};
|
|
92
97
|
}
|
|
93
|
-
function
|
|
98
|
+
function pe(t, n) {
|
|
94
99
|
let r = (t) => {
|
|
95
100
|
let r = e(n, {
|
|
96
101
|
x: t.worldX,
|
|
@@ -109,7 +114,7 @@ function re(t, n) {
|
|
|
109
114
|
origin: r(t.origin)
|
|
110
115
|
};
|
|
111
116
|
}
|
|
112
|
-
function
|
|
117
|
+
function E(e, n) {
|
|
113
118
|
if (!e) return e;
|
|
114
119
|
let r = t(n, {
|
|
115
120
|
x: e.worldX,
|
|
@@ -121,7 +126,7 @@ function ie(e, n) {
|
|
|
121
126
|
worldY: r.y
|
|
122
127
|
};
|
|
123
128
|
}
|
|
124
|
-
function
|
|
129
|
+
function D(e, t, n, r, i) {
|
|
125
130
|
if (i !== 0) {
|
|
126
131
|
let e = Math.cos(-i), t = Math.sin(-i), a = e * n - t * r, o = t * n + e * r;
|
|
127
132
|
n = a, r = o;
|
|
@@ -134,7 +139,7 @@ function ae(e, t, n, r, i) {
|
|
|
134
139
|
height: c
|
|
135
140
|
};
|
|
136
141
|
}
|
|
137
|
-
var
|
|
142
|
+
var O = y({
|
|
138
143
|
id: "resize",
|
|
139
144
|
label: "Resize",
|
|
140
145
|
eligible: { capability: "transforms-selection" },
|
|
@@ -151,77 +156,77 @@ var A = v({
|
|
|
151
156
|
invoker: {
|
|
152
157
|
timing: "ongoing",
|
|
153
158
|
start(e, t) {
|
|
154
|
-
let
|
|
155
|
-
if (!
|
|
156
|
-
let
|
|
157
|
-
if (
|
|
158
|
-
let
|
|
159
|
-
if (!
|
|
160
|
-
let { behaviors:
|
|
161
|
-
if (
|
|
162
|
-
let
|
|
163
|
-
let n =
|
|
164
|
-
return
|
|
165
|
-
},
|
|
166
|
-
for (let e of
|
|
167
|
-
let t =
|
|
159
|
+
let _ = e.deps.selection, y = e.deps.scene, x = e.deps.applyOps, S = e.deps.geometryProjection;
|
|
160
|
+
if (!_ || !y) return {};
|
|
161
|
+
let C = _.get();
|
|
162
|
+
if (C.length === 0) return {};
|
|
163
|
+
let w = e.drag?.affordance?.anchor;
|
|
164
|
+
if (!w) return {};
|
|
165
|
+
let { behaviors: O, pointSnap: me, expandIds: he, geometry: k, policy: ge } = ue(e), A = ae(y, k), j = re(y, he(C));
|
|
166
|
+
if (j.length === 0) return {};
|
|
167
|
+
let M = C.length === 1 && (j.length !== 1 || j[0] !== C[0]), N = M || C.length > 1 ? j : C, P = ce(y, e.deps.poseComposition), F = e.deps.view, I = (e, t) => {
|
|
168
|
+
let n = y.get(e)?.layer;
|
|
169
|
+
return P.local(e, v(A(e), t, n === void 0 ? null : b(F, n)));
|
|
170
|
+
}, L = /* @__PURE__ */ new Map(), R = /* @__PURE__ */ new Map(), z = [], B = [];
|
|
171
|
+
for (let e of N) {
|
|
172
|
+
let t = y.get(e);
|
|
168
173
|
if (!t) continue;
|
|
169
|
-
|
|
170
|
-
let n =
|
|
171
|
-
|
|
174
|
+
L.set(e, t.pose);
|
|
175
|
+
let n = A(e), r = v(n, P.world(e), oe(b(F, t.layer)));
|
|
176
|
+
R.set(e, r), z.push(n.getBounds(r)), B.push(u(r, n));
|
|
172
177
|
}
|
|
173
|
-
if (
|
|
174
|
-
let
|
|
178
|
+
if (L.size === 0) return {};
|
|
179
|
+
let V = z.length === 1 ? z[0] : M ? s(z) : o(B), H = !M && N.length === 1 ? R.get(N[0]) : V, U = !M && N.length === 1 ? A(N[0]) : k, W = M ? 0 : U.getRotation?.(H) ?? 0, G = f(V, w), K = W === 0 ? G : p(G.x, G.y, V.x + V.width / 2, V.y + V.height / 2, W), q = {
|
|
175
180
|
x: e.drag?.start.x ?? 0,
|
|
176
181
|
y: e.drag?.start.y ?? 0
|
|
177
|
-
},
|
|
178
|
-
draggedIds:
|
|
179
|
-
origin: /* @__PURE__ */ new Map([[
|
|
180
|
-
current: /* @__PURE__ */ new Map([[
|
|
182
|
+
}, J = ee(e.deps), Y = m(e.deps), X = T(U, H), Z = {
|
|
183
|
+
draggedIds: C,
|
|
184
|
+
origin: /* @__PURE__ */ new Map([[C[0], X]]),
|
|
185
|
+
current: /* @__PURE__ */ new Map([[C[0], X]]),
|
|
181
186
|
snap: null,
|
|
182
187
|
modifiers: { ...e.modifiers },
|
|
183
188
|
pointer: {
|
|
184
|
-
worldX:
|
|
185
|
-
worldY:
|
|
189
|
+
worldX: q.x,
|
|
190
|
+
worldY: q.y,
|
|
186
191
|
clientX: 0,
|
|
187
192
|
clientY: 0
|
|
188
193
|
},
|
|
189
|
-
view:
|
|
190
|
-
plane:
|
|
194
|
+
view: J(),
|
|
195
|
+
plane: Y(),
|
|
191
196
|
adapter: void 0,
|
|
192
197
|
scratch: {}
|
|
193
|
-
},
|
|
194
|
-
for (let e of
|
|
198
|
+
}, _e = Z;
|
|
199
|
+
for (let e of O) e.onStart?.(_e);
|
|
195
200
|
let Q = {
|
|
196
|
-
writeIds:
|
|
197
|
-
scene:
|
|
198
|
-
frame:
|
|
199
|
-
startPoses:
|
|
200
|
-
startWorlds:
|
|
201
|
-
originBounds:
|
|
202
|
-
anchor:
|
|
203
|
-
startWorld:
|
|
204
|
-
originRotation:
|
|
205
|
-
fixedWorld:
|
|
201
|
+
writeIds: N,
|
|
202
|
+
scene: y,
|
|
203
|
+
frame: P,
|
|
204
|
+
startPoses: L,
|
|
205
|
+
startWorlds: R,
|
|
206
|
+
originBounds: V,
|
|
207
|
+
anchor: w,
|
|
208
|
+
startWorld: q,
|
|
209
|
+
originRotation: W,
|
|
210
|
+
fixedWorld: K,
|
|
206
211
|
previews: /* @__PURE__ */ new Map(),
|
|
207
212
|
overrideEntries: /* @__PURE__ */ new Map(),
|
|
208
|
-
|
|
209
|
-
behaviors:
|
|
210
|
-
pointSnap:
|
|
213
|
+
geometryOf: A,
|
|
214
|
+
behaviors: O,
|
|
215
|
+
pointSnap: me,
|
|
211
216
|
gestureCtx: Z,
|
|
212
217
|
applyOps: x,
|
|
213
218
|
geometryProjection: S,
|
|
214
|
-
lifecycle:
|
|
219
|
+
lifecycle: te(ge, "Resize", O)
|
|
215
220
|
}, { lifecycle: $ } = Q;
|
|
216
|
-
$.start(
|
|
217
|
-
let
|
|
221
|
+
$.start(N);
|
|
222
|
+
let ve = () => {
|
|
218
223
|
let e = {
|
|
219
|
-
scene:
|
|
224
|
+
scene: y,
|
|
220
225
|
applyOps: Q.applyOps,
|
|
221
|
-
adapter:
|
|
222
|
-
}, t =
|
|
226
|
+
adapter: se(y, _.adapterMethods)
|
|
227
|
+
}, t = g(Q.behaviors, Q.gestureCtx);
|
|
223
228
|
if (t === null) return !1;
|
|
224
|
-
if (t !== void 0) return
|
|
229
|
+
if (t !== void 0) return h(e, $, t), !0;
|
|
225
230
|
if (Q.previews.size === 0) return !1;
|
|
226
231
|
let n = [];
|
|
227
232
|
for (let e of Q.writeIds) {
|
|
@@ -233,31 +238,31 @@ var A = v({
|
|
|
233
238
|
if (Q.geometryProjection) {
|
|
234
239
|
let a = Q.scene.get(e);
|
|
235
240
|
if (a) {
|
|
236
|
-
let o = Q.
|
|
241
|
+
let o = Q.geometryOf(e).getBounds(r), s = Q.geometryOf(e).getBounds(t), c = le(o.x, o.y, o.width, o.height, s.x, s.y, s.width, s.height), l = ie(Q.geometryProjection, {
|
|
237
242
|
id: e,
|
|
238
243
|
data: a.data,
|
|
239
244
|
pose: r
|
|
240
245
|
}, c, $.label);
|
|
241
246
|
if (l && (n.push(l), s.width < 0 || s.height < 0)) {
|
|
242
|
-
let
|
|
247
|
+
let n = {
|
|
243
248
|
...s,
|
|
244
249
|
x: s.width < 0 ? s.x + s.width : s.x,
|
|
245
250
|
y: s.height < 0 ? s.y + s.height : s.y,
|
|
246
251
|
width: Math.abs(s.width),
|
|
247
252
|
height: Math.abs(s.height)
|
|
248
253
|
};
|
|
249
|
-
i = Q.
|
|
254
|
+
i = Q.geometryOf(e).remapBounds(t, s, n);
|
|
250
255
|
}
|
|
251
256
|
}
|
|
252
257
|
}
|
|
253
|
-
n.push(
|
|
258
|
+
n.push(a({
|
|
254
259
|
id: e,
|
|
255
260
|
from: r,
|
|
256
261
|
to: i,
|
|
257
262
|
label: $.label
|
|
258
263
|
}));
|
|
259
264
|
}
|
|
260
|
-
return n.length !== 0 && (
|
|
265
|
+
return n.length !== 0 && (h(e, $, n), !0);
|
|
261
266
|
};
|
|
262
267
|
return {
|
|
263
268
|
kind: "resize",
|
|
@@ -269,8 +274,8 @@ var A = v({
|
|
|
269
274
|
worldY: e.drag.current.y,
|
|
270
275
|
clientX: 0,
|
|
271
276
|
clientY: 0
|
|
272
|
-
}, Q.gestureCtx.view =
|
|
273
|
-
let a =
|
|
277
|
+
}, Q.gestureCtx.view = J(), Q.gestureCtx.plane = Y();
|
|
278
|
+
let a = D(Q.originBounds, Q.anchor, t, n, Q.originRotation), o = Q.gestureCtx;
|
|
274
279
|
for (let e of Q.behaviors) {
|
|
275
280
|
let t = e.onMove?.(o, {
|
|
276
281
|
pose: a,
|
|
@@ -283,41 +288,42 @@ var A = v({
|
|
|
283
288
|
height: t.pose.height
|
|
284
289
|
});
|
|
285
290
|
}
|
|
286
|
-
let s = (e) => {
|
|
291
|
+
let s = M || Q.writeIds.length > 1, u = (e) => {
|
|
287
292
|
let t = Q.startWorlds.get(e);
|
|
288
|
-
if (t !== void 0) return
|
|
293
|
+
if (t !== void 0) return s && i(t) !== null ? c(t, Q.originBounds, a) : Q.geometryOf(e).remapBounds(t, Q.originBounds, a);
|
|
289
294
|
};
|
|
290
|
-
if (Q.previews.clear(), !
|
|
291
|
-
let e = Q.writeIds[0], t =
|
|
292
|
-
if (
|
|
295
|
+
if (Q.previews.clear(), !M && Q.writeIds.length === 1) {
|
|
296
|
+
let e = Q.writeIds[0], t = Q.geometryOf(e), n = u(e);
|
|
297
|
+
if (n === void 0) {
|
|
293
298
|
r(Q);
|
|
294
299
|
return;
|
|
295
300
|
}
|
|
296
301
|
if (Q.originRotation !== 0) {
|
|
297
|
-
let e = a.x + a.width / 2,
|
|
298
|
-
|
|
302
|
+
let e = a.x + a.width / 2, r = a.y + a.height / 2, i = f(a, Q.anchor), o = p(i.x, i.y, e, r, Q.originRotation), s = Q.fixedWorld.x - o.x, c = Q.fixedWorld.y - o.y;
|
|
303
|
+
n = l(n, s, c, t);
|
|
299
304
|
}
|
|
300
305
|
if (Q.pointSnap.length > 0) {
|
|
301
|
-
let e = Q.originRotation, n = t, r =
|
|
302
|
-
for (let
|
|
303
|
-
let
|
|
304
|
-
if (
|
|
305
|
-
|
|
306
|
+
let e = Q.originRotation, r = n, i = T(t, r), a = de(i, e, Q.anchor, Q.gestureCtx.modifiers), o = Q.gestureCtx.plane ?? null;
|
|
307
|
+
for (let s of Q.pointSnap) {
|
|
308
|
+
let c = o ? E(s.onMove(pe(a, o)), o) : s.onMove(a);
|
|
309
|
+
if (c) {
|
|
310
|
+
let o = fe(i, e, c, a);
|
|
311
|
+
n = d(r) ? o : t.remapBounds(r, i, o);
|
|
306
312
|
break;
|
|
307
313
|
}
|
|
308
314
|
}
|
|
309
315
|
}
|
|
310
|
-
Q.previews.set(e,
|
|
316
|
+
Q.previews.set(e, I(e, n)), Q.gestureCtx.current = /* @__PURE__ */ new Map([[e, T(t, n)]]);
|
|
311
317
|
} else for (let e of Q.writeIds) {
|
|
312
|
-
let t =
|
|
313
|
-
t !== void 0 && Q.previews.set(e,
|
|
318
|
+
let t = u(e);
|
|
319
|
+
t !== void 0 && Q.previews.set(e, I(e, t));
|
|
314
320
|
}
|
|
315
321
|
r(Q);
|
|
316
322
|
},
|
|
317
323
|
onEnd(e, t) {
|
|
318
324
|
let r = !1;
|
|
319
325
|
try {
|
|
320
|
-
t === "commit" ? r =
|
|
326
|
+
t === "commit" ? r = ve() : ne(Q.behaviors, Q.gestureCtx);
|
|
321
327
|
} finally {
|
|
322
328
|
n(Q), Q.previews.clear(), $.end(r);
|
|
323
329
|
}
|
|
@@ -330,6 +336,6 @@ var A = v({
|
|
|
330
336
|
enabled: () => !0
|
|
331
337
|
}, x);
|
|
332
338
|
//#endregion
|
|
333
|
-
export {
|
|
339
|
+
export { O as resizeAction };
|
|
334
340
|
|
|
335
341
|
//# sourceMappingURL=resize.js.map
|