@weasel-js/core 1.14.2 → 1.15.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 +251 -0
- package/dist/WeaselProvider.js +4 -5
- package/dist/affordances/composeAffordanceLayer.js +1 -2
- package/dist/affordances/cornerResize.js +4 -5
- package/dist/affordances/hitAffordanceRegions.js +1 -2
- package/dist/affordances/pathAnchors.js +1 -3
- package/dist/affordances/pathAnchors.js.map +1 -1
- package/dist/affordances/rotateCursor.js +1 -2
- package/dist/affordances/rotationHandle.js +2 -3
- package/dist/animation/behaviors/coast.js +1 -2
- package/dist/animation/behaviors/coastByWrite.js +2 -3
- package/dist/animation/behaviors/coastOnTargets.js +2 -3
- package/dist/animation/behaviors/momentum.js +1 -2
- package/dist/animation/clipTargets.js +1 -2
- package/dist/animation/departures.js +2 -3
- package/dist/animation/poseHelpers.js +2 -3
- package/dist/animation/poseTarget.js +2 -3
- package/dist/animation/poseTransition.js +1 -2
- package/dist/animation/reflow.js +2 -3
- package/dist/animation/rewind.js +1 -2
- package/dist/animation/rig/bindRig.js +2 -3
- package/dist/animation/rig/rigNode.js +1 -2
- package/dist/animation/rig/rigSeat.js +1 -2
- package/dist/animation/rig/skinBinding.js +1 -2
- package/dist/animation/rig/useRig.js +2 -3
- package/dist/animation/wrappers/animateLifecycle.js +1 -2
- package/dist/animation/wrappers/animateOnSetPose.js +1 -2
- package/dist/animation/wrappers/instantPose.js +1 -2
- package/dist/animation/writtenPoseTarget.js +1 -2
- package/dist/barrel/interactions.js +2 -1
- package/dist/barrel/paths.js +1 -1
- package/dist/barrel/renderer.js +2 -2
- package/dist/barrel/routing.js +6 -4
- package/dist/barrel/scene.js +2 -2
- package/dist/barrel/text.js +5 -3
- package/dist/canvas/Canvas.js +10 -7
- package/dist/canvas/Canvas.js.map +1 -1
- package/dist/canvas/CanvasView.js +6 -7
- package/dist/canvas/CursorCoordsHud.js +2 -3
- package/dist/canvas/DrawCanvas.js +8 -5
- package/dist/canvas/DrawCanvas.js.map +1 -1
- package/dist/canvas/GestureReason.js +1 -2
- package/dist/canvas/GestureReason.module.js +1 -2
- package/dist/canvas/LeanSceneCanvas.js +2 -3
- package/dist/canvas/ModalityHud.js +2 -3
- package/dist/canvas/NodeShape.js +3 -4
- package/dist/canvas/PickHud.js +2 -3
- package/dist/canvas/SceneCanvas/ActionsProviderIfRoot.js +1 -2
- package/dist/canvas/SceneCanvas/CanvasKitProviders.js +3 -4
- package/dist/canvas/SceneCanvas/DepRegistryProviderIfRoot.js +1 -2
- package/dist/canvas/SceneCanvas/DevHuds.js +1 -2
- package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js +1 -2
- package/dist/canvas/SceneCanvas/SceneCanvasInput.js +8 -5
- package/dist/canvas/SceneCanvas/SceneCanvasInput.js.map +1 -1
- package/dist/canvas/SceneCanvas/SurfaceDeclarations.js +1 -2
- package/dist/canvas/SceneCanvas/brushOverlay.js +1 -2
- package/dist/canvas/SceneCanvas/builtinToolSets.js +7 -5
- package/dist/canvas/SceneCanvas/builtinToolSets.js.map +1 -1
- package/dist/canvas/SceneCanvas/canvasPassThrough.js +1 -2
- package/dist/canvas/SceneCanvas/contributionFrameHooks.js +1 -2
- package/dist/canvas/SceneCanvas/coordTrace.js +1 -2
- package/dist/canvas/SceneCanvas/defaultNodeProperties.js +4 -5
- package/dist/canvas/SceneCanvas/defaultNodeRouting.js +1 -2
- package/dist/canvas/SceneCanvas/defaultTextEditor.js +4 -5
- package/dist/canvas/SceneCanvas/describePresets.js +1 -2
- package/dist/canvas/SceneCanvas/dispatcherGestureBounds.js +1 -2
- package/dist/canvas/SceneCanvas/features.js +1 -2
- package/dist/canvas/SceneCanvas/insertPreviewCommands.js +1 -2
- package/dist/canvas/SceneCanvas/mergeLayers.js +1 -2
- package/dist/canvas/SceneCanvas/namedPresets.js +5 -6
- package/dist/canvas/SceneCanvas/poseGeometry.js +1 -2
- package/dist/canvas/SceneCanvas/poseRegistrars.js +1 -2
- package/dist/canvas/SceneCanvas/presets/arrange.js +2 -3
- package/dist/canvas/SceneCanvas/presets/baseline.js +1 -2
- package/dist/canvas/SceneCanvas/presets/chrome.js +1 -2
- package/dist/canvas/SceneCanvas/presets/composites.js +1 -2
- package/dist/canvas/SceneCanvas/presets/edit.js +4 -5
- package/dist/canvas/SceneCanvas/presets/ingest.js +1 -2
- package/dist/canvas/SceneCanvas/presets/paths.js +9 -10
- package/dist/canvas/SceneCanvas/presets/paths.js.map +1 -1
- package/dist/canvas/SceneCanvas/presets/select.js +1 -2
- package/dist/canvas/SceneCanvas/presets/toolDriven.js +2 -3
- package/dist/canvas/SceneCanvas/presets/tools.js +1 -2
- package/dist/canvas/SceneCanvas/presets/transform.js +2 -3
- package/dist/canvas/SceneCanvas/presets/view.js +2 -3
- package/dist/canvas/SceneCanvas/props.js +1 -2
- package/dist/canvas/SceneCanvas/scenePointQuery.js +2 -3
- package/dist/canvas/SceneCanvas/shapeGeneratorProperties.js +2 -3
- package/dist/canvas/SceneCanvas/shapeGeneratorProperties.js.map +1 -1
- package/dist/canvas/SceneCanvas/toolRegistry.js +2 -3
- package/dist/canvas/SceneCanvas/useActionTunings.js +1 -2
- package/dist/canvas/SceneCanvas/useActionsPropResolver.js +1 -2
- package/dist/canvas/SceneCanvas/useBakedScene.js +2 -3
- package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js +7 -8
- package/dist/canvas/SceneCanvas/useBuiltinTools.js +3 -2
- package/dist/canvas/SceneCanvas/useBuiltinTools.js.map +1 -1
- package/dist/canvas/SceneCanvas/useCanvasCamera.js +2 -3
- package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js +1 -2
- package/dist/canvas/SceneCanvas/useCanvasDispatcher.js +1 -2
- package/dist/canvas/SceneCanvas/useCanvasSelection.js +8 -6
- package/dist/canvas/SceneCanvas/useCanvasSelection.js.map +1 -1
- package/dist/canvas/SceneCanvas/useCanvasTools.js +2 -3
- package/dist/canvas/SceneCanvas/useChromeAffordances.js +2 -3
- package/dist/canvas/SceneCanvas/useContributionRoles.js +3 -2
- package/dist/canvas/SceneCanvas/useContributionRoles.js.map +1 -1
- package/dist/canvas/SceneCanvas/useDepartureGhostLayer.js +4 -5
- package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js +2 -3
- package/dist/canvas/SceneCanvas/useHeldModifiers.js +1 -2
- package/dist/canvas/SceneCanvas/useMagnificationCheck.js +41 -0
- package/dist/canvas/SceneCanvas/useMagnificationCheck.js.map +1 -0
- package/dist/canvas/SceneCanvas/useNodeAtPoint.js +1 -2
- package/dist/canvas/SceneCanvas/useNodeKinds.js +2 -3
- package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js +10 -11
- package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js +1 -2
- package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js +6 -7
- package/dist/canvas/SceneCanvas/useSceneCanvasPathEdit.js +1 -2
- package/dist/canvas/SceneCanvas/useSceneCanvasTools.js +1 -2
- package/dist/canvas/SceneCanvas/useSceneChrome.js +22 -11
- package/dist/canvas/SceneCanvas/useSceneChrome.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js +6 -7
- package/dist/canvas/SceneCanvas/useScenePicking.js +5 -6
- package/dist/canvas/SceneCanvas/useSceneRedrawSources.js +1 -2
- package/dist/canvas/SceneCanvas/useSceneSelectTool.js +7 -8
- package/dist/canvas/SceneCanvas/useSceneSlotLayers.js +2 -3
- package/dist/canvas/SceneCanvas/useSceneStandardActions.js +28 -17
- package/dist/canvas/SceneCanvas/useSceneStandardActions.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSelectionOverlayLayer.js +2 -3
- package/dist/canvas/SceneCanvas/useSurfaceRouting.js +1 -2
- package/dist/canvas/SceneCanvas/useSurfaceViewInputs.js +1 -2
- package/dist/canvas/SceneCanvas/useToolKeybindings.js +1 -2
- package/dist/canvas/SceneCanvas/useViewportActions.js +3 -4
- package/dist/canvas/SceneCanvas/worldPointAt.js +1 -2
- package/dist/canvas/SceneCanvas.js +22 -20
- package/dist/canvas/SceneCanvas.js.map +1 -1
- package/dist/canvas/SceneViewCanvas.js +7 -4
- package/dist/canvas/SceneViewCanvas.js.map +1 -1
- package/dist/canvas/SurfaceCanvas.js +1 -2
- package/dist/canvas/ViewMarker.js +1 -2
- package/dist/canvas/accentColor.js +1 -2
- package/dist/canvas/adapterDerivedPath.js +2 -3
- package/dist/canvas/adapterPickSource.js +1 -2
- package/dist/canvas/affordanceAt.js +2 -4
- package/dist/canvas/affordanceAt.js.map +1 -1
- package/dist/canvas/buildSceneLayer.js +4 -5
- package/dist/canvas/buildSceneTree.js +4 -5
- package/dist/canvas/canvasRenderer.js +1 -2
- package/dist/canvas/colorOverrides.js +1 -2
- package/dist/canvas/contextAttributes.js +1 -2
- package/dist/canvas/copiesAbove.js +1 -2
- package/dist/canvas/defaultDrawOne.js +1 -2
- package/dist/canvas/deps/areaSelect.js +5 -3
- package/dist/canvas/deps/areaSelect.js.map +1 -1
- package/dist/canvas/deps/booleans.js +5 -6
- package/dist/canvas/deps/changes.js +1 -2
- package/dist/canvas/deps/chromeRules.js +36 -0
- package/dist/canvas/deps/chromeRules.js.map +1 -0
- package/dist/canvas/deps/debug.js +1 -2
- package/dist/canvas/deps/dispatchSources.js +1 -2
- package/dist/canvas/deps/dispatcher.js +1 -2
- package/dist/canvas/deps/editAnchors.js +3 -10
- package/dist/canvas/deps/editAnchors.js.map +1 -1
- package/dist/canvas/deps/enteredGroup.js +1 -2
- package/dist/canvas/deps/geometryProjection.js +1 -2
- package/dist/canvas/deps/hitTestArea.js +6 -5
- package/dist/canvas/deps/hitTestArea.js.map +1 -1
- package/dist/canvas/deps/ingestion.js +1 -2
- package/dist/canvas/deps/insert.js +3 -4
- package/dist/canvas/deps/insertSite.js +3 -4
- package/dist/canvas/deps/kitSettings.js +1 -2
- package/dist/canvas/deps/lassoSelect.js +5 -3
- package/dist/canvas/deps/lassoSelect.js.map +1 -1
- package/dist/canvas/deps/layout.js +1 -2
- package/dist/canvas/deps/modeDefaultTool.js +22 -0
- package/dist/canvas/deps/modeDefaultTool.js.map +1 -0
- package/dist/canvas/deps/nodeAtPoint.js +1 -2
- package/dist/canvas/deps/pathEditCommits.js +3 -4
- package/dist/canvas/deps/pathLeaf.js +1 -2
- package/dist/canvas/deps/pathLeafDeps.js +2 -3
- package/dist/canvas/deps/poseDescriptor.js +1 -2
- package/dist/canvas/deps/previewPaths.js +1 -2
- package/dist/canvas/deps/resizePolicy.js +1 -2
- package/dist/canvas/deps/selectionSnapshot.js +22 -0
- package/dist/canvas/deps/selectionSnapshot.js.map +1 -0
- package/dist/canvas/deps/slice.js +5 -6
- package/dist/canvas/deps/snap.js +4 -4
- package/dist/canvas/deps/snap.js.map +1 -1
- package/dist/canvas/deps/surface.js +1 -2
- package/dist/canvas/deps/textEdit.js +1 -2
- package/dist/canvas/deps/transformFollowers.js +1 -2
- package/dist/canvas/deps/view.js +1 -2
- package/dist/canvas/derivedPath.js +6 -7
- package/dist/canvas/doubleClickTarget.js +1 -2
- package/dist/canvas/drawEnvelope.js +1 -2
- package/dist/canvas/drawnBounds.js +4 -5
- package/dist/canvas/getNodeAtPoint.js +1 -2
- package/dist/canvas/hostAnchor.js +1 -2
- package/dist/canvas/hud.module.js +1 -2
- package/dist/canvas/inheritedPaints.js +1 -2
- package/dist/canvas/insertPreviewExtent.js +1 -2
- package/dist/canvas/kitRequirements.js +1 -2
- package/dist/canvas/layerHover.js +1 -2
- package/dist/canvas/layerOrder.js +1 -2
- package/dist/canvas/layerSlots.js +1 -2
- package/dist/canvas/mountedCanvases.js +1 -2
- package/dist/canvas/nodeShapes/derivedPainter.js +2 -3
- package/dist/canvas/nodeShapes/imagePainter.js +1 -2
- package/dist/canvas/nodeShapes/measurePainter.js +2 -3
- package/dist/canvas/nodeShapes/memo.js +1 -2
- package/dist/canvas/nodeShapes/nodePaint.js +1 -2
- package/dist/canvas/nodeShapes/pathPainter.js +3 -4
- package/dist/canvas/nodeShapes/poseBox.js +1 -2
- package/dist/canvas/nodeShapes/rectFallbackPainter.js +1 -2
- package/dist/canvas/nodeShapes/shapePainter.js +2 -3
- package/dist/canvas/nodeShapes/strokedBounds.js +1 -2
- package/dist/canvas/nodeShapes/textPainter.js +1 -2
- package/dist/canvas/overChildren.js +1 -2
- package/dist/canvas/overlayRoleStrokes.js +1 -2
- package/dist/canvas/ownClip.js +1 -2
- package/dist/canvas/paintCull.js +1 -2
- package/dist/canvas/paintedCursorLayer.js +1 -2
- package/dist/canvas/pathOverlay.js +1 -2
- package/dist/canvas/pickIndex/nodeBroadBox.js +3 -4
- package/dist/canvas/pickIndex/scenePickIndex.js +3 -4
- package/dist/canvas/pickReach.js +13 -10
- package/dist/canvas/pickReach.js.map +1 -1
- package/dist/canvas/pickWalk.js +9 -8
- package/dist/canvas/pickWalk.js.map +1 -1
- package/dist/canvas/planeClips.js +1 -2
- package/dist/canvas/poseRotation.js +1 -2
- package/dist/canvas/publishPreviews.js +1 -2
- package/dist/canvas/rasterReadback.js +1 -2
- package/dist/canvas/rasterToPng.js +1 -2
- package/dist/canvas/renderDebugSnapshot.js +1 -2
- package/dist/canvas/renderNeeds.js +1 -2
- package/dist/canvas/renderSceneToPixels.js +5 -6
- package/dist/canvas/sceneAdapter.js +37 -27
- package/dist/canvas/sceneAdapter.js.map +1 -1
- package/dist/canvas/sceneClipboard.js +19 -7
- package/dist/canvas/sceneClipboard.js.map +1 -1
- package/dist/canvas/sceneLayerPaint.js +1 -2
- package/dist/canvas/scenePickReads.js +1 -2
- package/dist/canvas/scenePickSource.js +7 -8
- package/dist/canvas/scenePickSource.js.map +1 -1
- package/dist/canvas/sceneSlotWiring.js +2 -3
- package/dist/canvas/sceneViewRender.js +5 -6
- package/dist/canvas/shownNodes.js +1 -2
- package/dist/canvas/slopsDebugLayer.js +1 -2
- package/dist/canvas/surfaceContribution.js +1 -2
- package/dist/canvas/useCanvasElements.js +1 -2
- package/dist/canvas/useCanvasHandle.js +1 -2
- package/dist/canvas/useCanvasPaint.js +2 -3
- package/dist/canvas/useCanvasRenderer.js +1 -2
- package/dist/canvas/useCanvasSurface.js +22 -5
- package/dist/canvas/useCanvasSurface.js.map +1 -1
- package/dist/canvas/useCanvasView.js +2 -3
- package/dist/canvas/useClientToWorld.js +1 -2
- package/dist/canvas/useExtraLayers.js +1 -2
- package/dist/canvas/useFrameLoop.js +7 -9
- package/dist/canvas/useFrameLoop.js.map +1 -1
- package/dist/canvas/useHitObserver.js +1 -2
- package/dist/canvas/useHostAnchor.js +1 -2
- package/dist/canvas/useInFlightBounds.js +6 -6
- package/dist/canvas/useInFlightBounds.js.map +1 -1
- package/dist/canvas/useLateContentRedraw.js +1 -2
- package/dist/canvas/useLayerStack.js +2 -3
- package/dist/canvas/usePaintedCursor.js +1 -2
- package/dist/canvas/useRedrawOn.js +1 -2
- package/dist/canvas/useSceneAdapter.js +1 -2
- package/dist/canvas/useSceneLayerList.js +1 -2
- package/dist/canvas/useSurfaceInput.js +1 -2
- package/dist/canvas/useSurfaceSize.js +5 -5
- package/dist/canvas/useSurfaceSize.js.map +1 -1
- package/dist/canvas/useToolCursor.js +1 -2
- package/dist/canvas/useViewAim.js +2 -3
- package/dist/canvas/useViewHelpers.js +5 -4
- package/dist/canvas/useViewHelpers.js.map +1 -1
- package/dist/canvas/useViewLayerGate.js +1 -2
- package/dist/canvas/useViewNesting.js +1 -2
- package/dist/canvas/useViewRegistrySurface.js +1 -2
- package/dist/canvas/viewInputs.js +1 -2
- package/dist/canvas/viewMarkers.js +1 -2
- package/dist/canvas/viewRegistry.js +1 -2
- package/dist/canvas/viewSnap.js +1 -2
- package/dist/canvas/watchElementMove.js +1 -2
- package/dist/canvas/wrapNodeOutput.js +1 -2
- package/dist/core/adapters/testing/rootsTree.js +1 -2
- package/dist/core/applyOps.js +1 -2
- package/dist/core/device/targets.js +1 -2
- package/dist/core/device/useDeviceProfile.js +1 -2
- package/dist/core/device/useTargetBasePx.js +1 -2
- package/dist/core/device/watchDevicePixelRatio.js +1 -2
- package/dist/core/geometry/autoPoseDescriptor.js +2 -3
- package/dist/core/geometry/booleanOfPaths.js +1 -2
- package/dist/core/geometry/inkExtents.js +1 -2
- package/dist/core/geometry/pathPoseDescriptor.js +1 -2
- package/dist/core/geometry/poseDescriptor.js +1 -2
- package/dist/core/geometry/regionHit.js +36 -18
- package/dist/core/geometry/regionHit.js.map +1 -1
- package/dist/core/geometry/targetFrame.js +1 -2
- package/dist/core/geometry/unionBounds.js +1 -2
- package/dist/core/layers/backgroundFill.js +1 -2
- package/dist/core/layers/children.js +1 -2
- package/dist/core/layers/gateLayer.js +1 -2
- package/dist/core/layers/layerGroup.js +1 -2
- package/dist/core/layers/redrawSource.js +1 -2
- package/dist/core/layers/render.js +1 -2
- package/dist/core/layers/retain.js +1 -2
- package/dist/core/ops/arrange.js +1 -2
- package/dist/core/ops/create.js +2 -3
- package/dist/core/ops/createHistory.js +2 -3
- package/dist/core/ops/delete.js +2 -3
- package/dist/core/ops/nodeFlags.js +1 -2
- package/dist/core/ops/registry.js +1 -2
- package/dist/core/ops/reorder/algorithms.js +1 -2
- package/dist/core/ops/reorder/index.js +1 -2
- package/dist/core/ops/reorder/setChildOrder.js +1 -2
- package/dist/core/ops/reparent.js +1 -2
- package/dist/core/ops/select.js +1 -2
- package/dist/core/ops/setData.js +1 -2
- package/dist/core/ops/setDependsOn.js +1 -2
- package/dist/core/ops/setLayer.js +1 -2
- package/dist/core/ops/setLayout.js +1 -2
- package/dist/core/ops/setPath.js +1 -2
- package/dist/core/ops/setText.js +1 -2
- package/dist/core/ops/slot.js +1 -2
- package/dist/core/ops/transform.js +1 -2
- package/dist/core/ops/writtenBy.js +1 -2
- package/dist/core/pages/fitViewToPage.js +1 -2
- package/dist/core/pages/pageEdits.js +3 -4
- package/dist/core/pages/pages.js +1 -2
- package/dist/core/pages/pages.js.map +1 -1
- package/dist/core/pages/pagesLayer.js +1 -2
- package/dist/core/paint/meshKind.js +1 -2
- package/dist/core/paint/meshKindLazy.js +9 -18
- package/dist/core/paint/meshKindLazy.js.map +1 -1
- package/dist/core/paint/paintKindEntry.js +1 -2
- package/dist/core/paint/paintKinds.js +1 -2
- package/dist/core/paint/registerMesh.js +1 -2
- package/dist/core/scene/NodeProperties.js +1 -2
- package/dist/core/scene/NodeRouting.js +1 -2
- package/dist/core/scene/annotation.js +1 -2
- package/dist/core/scene/appliedLog.js +1 -2
- package/dist/core/scene/arrivalWindow.js +2 -3
- package/dist/core/scene/arrivals.js +1 -2
- package/dist/core/scene/booleanGroup.js +1 -2
- package/dist/core/scene/booleanOfChildren.js +1 -2
- package/dist/core/scene/boundOps.js +1 -2
- package/dist/core/scene/carryDescendants.js +2 -3
- package/dist/core/scene/clipNothing.js +1 -2
- package/dist/core/scene/composeFrame.js +1 -2
- package/dist/core/scene/composePose.js +1 -2
- package/dist/core/scene/declaredFieldSetters.js +1 -2
- package/dist/core/scene/depFrame.js +1 -2
- package/dist/core/scene/depMemo.js +1 -2
- package/dist/core/scene/dependents.js +1 -2
- package/dist/core/scene/derivedParts.js +1 -2
- package/dist/core/scene/derivedPath.js +2 -3
- package/dist/core/scene/docValues.js +1 -2
- package/dist/core/scene/documentOf.js +1 -2
- package/dist/core/scene/editMode.js +5 -3
- package/dist/core/scene/editMode.js.map +1 -1
- package/dist/core/scene/editPass.js +1 -2
- package/dist/core/scene/effectivePose.js +3 -4
- package/dist/core/scene/fieldEdits.js +1 -2
- package/dist/core/scene/fontReads.js +1 -2
- package/dist/core/scene/historyFacade.js +8 -52
- package/dist/core/scene/historyFacade.js.map +1 -1
- package/dist/core/scene/historyForm.js +1 -2
- package/dist/core/scene/inheritedPaint.js +1 -2
- package/dist/core/scene/kitOps.js +16 -15
- package/dist/core/scene/kitOps.js.map +1 -1
- package/dist/core/scene/kitRegistry.js +2 -3
- package/dist/core/scene/layerOps.js +1 -2
- package/dist/core/scene/layerStack.js +1 -2
- package/dist/core/scene/layoutPass.js +4 -5
- package/dist/core/scene/lockGuard.js +1 -2
- package/dist/core/scene/minSize.js +1 -2
- package/dist/core/scene/nestedHit.js +1 -2
- package/dist/core/scene/nodeAsShown.js +1 -2
- package/dist/core/scene/nodeFlags.js +1 -2
- package/dist/core/scene/nodeFnFields.js +1 -2
- package/dist/core/scene/nodeGates.js +3 -4
- package/dist/core/scene/nodeGates.js.map +1 -1
- package/dist/core/scene/nodeMemo.js +1 -2
- package/dist/core/scene/nodeStore.js +2 -3
- package/dist/core/scene/notifier.js +1 -2
- package/dist/core/scene/opTable.js +9 -10
- package/dist/core/scene/opTable.js.map +1 -1
- package/dist/core/scene/outerOps.js +3 -4
- package/dist/core/scene/outerOps.js.map +1 -1
- package/dist/core/scene/pathEffects/blend.js +1 -2
- package/dist/core/scene/pathEffects/derive.js +2 -3
- package/dist/core/scene/pathEffects/effects.js +1 -2
- package/dist/core/scene/pathEffects/foundHidden.js +1 -2
- package/dist/core/scene/pathEffects/textAlong.js +1 -2
- package/dist/core/scene/pathEffects/textAlongBands.js +1 -2
- package/dist/core/scene/plyStacks.js +1 -2
- package/dist/core/scene/poseFeed.js +1 -2
- package/dist/core/scene/poseHold.js +1 -2
- package/dist/core/scene/poseOverrides.js +1 -2
- package/dist/core/scene/posePlies.js +1 -2
- package/dist/core/scene/poseRemovals.js +1 -2
- package/dist/core/scene/poseSnapshot.js +1 -2
- package/dist/core/scene/poseWrites.js +17 -17
- package/dist/core/scene/poseWrites.js.map +1 -1
- package/dist/core/scene/reconcileSpecs.js +26 -3
- package/dist/core/scene/reconcileSpecs.js.map +1 -1
- package/dist/core/scene/recorder.js +1 -2
- package/dist/core/scene/renderOrder.js +1 -2
- package/dist/core/scene/sameValue.js +1 -2
- package/dist/core/scene/scene.js +11 -12
- package/dist/core/scene/scene.js.map +1 -1
- package/dist/core/scene/sceneChanges.js +1 -2
- package/dist/core/scene/sceneEdits.js +1 -2
- package/dist/core/scene/sceneJournals.js +77 -0
- package/dist/core/scene/sceneJournals.js.map +1 -0
- package/dist/core/scene/sceneMutators.js +2 -3
- package/dist/core/scene/scenePoseAdapter.js +1 -2
- package/dist/core/scene/sceneRecording.js +4 -4
- package/dist/core/scene/sceneRecording.js.map +1 -1
- package/dist/core/scene/sceneSelection.js +8 -5
- package/dist/core/scene/sceneSelection.js.map +1 -1
- package/dist/core/scene/sceneState.js +3 -4
- package/dist/core/scene/scrollOffsets.js +1 -2
- package/dist/core/scene/serialization.js +2 -3
- package/dist/core/scene/staleReplay.js +1 -2
- package/dist/core/scene/statedFields.js +1 -2
- package/dist/core/scene/strategyView.js +1 -2
- package/dist/core/scene/treeEdits.js +2 -3
- package/dist/core/scene/treeOrder.js +1 -2
- package/dist/core/scene/treeReads.js +1 -2
- package/dist/core/scene/treeShape.js +1 -2
- package/dist/core/scene/types.js +1 -2
- package/dist/core/scene/types.js.map +1 -1
- package/dist/core/scene/unionOfChildren.js +1 -2
- package/dist/core/scene/unitScopes.js +20 -4
- package/dist/core/scene/unitScopes.js.map +1 -1
- package/dist/core/scene/useScene.js +2 -3
- package/dist/core/scene/worldSave.js +2 -3
- package/dist/core/selection/chromeState.js +1 -2
- package/dist/core/selection/outermostSelection.js +56 -0
- package/dist/core/selection/outermostSelection.js.map +1 -0
- package/dist/core/selection/readOnlySelection.js +1 -2
- package/dist/core/selection/selectionTarget.js +1 -2
- package/dist/core/selection/usePublishSceneSelection.js +1 -2
- package/dist/core/selection/useSelection.js +1 -2
- package/dist/core/shapeKinds.js +1 -2
- package/dist/core/stableStringify.js +1 -2
- package/dist/core/stylus/stylus.js +1 -2
- package/dist/core/stylus/usePointerStylus.js +1 -2
- package/dist/core/usePaintKinds.js +1 -2
- package/dist/core/viewport/clampView.js +1 -2
- package/dist/core/viewport/clientToWorld.js +1 -2
- package/dist/core/viewport/createVelocityTracker.js +1 -2
- package/dist/core/viewport/fitToBounds.js +1 -2
- package/dist/core/viewport/fitViewToBounds.js +1 -2
- package/dist/core/viewport/interpolateView.js +1 -2
- package/dist/core/viewport/parallax.js +1 -2
- package/dist/core/viewport/sceneNodeClientRect.js +1 -2
- package/dist/core/viewport/screenSlop.js +1 -2
- package/dist/core/viewport/useAutoCenter.js +1 -2
- package/dist/core/viewport/useCanvasSize.js +48 -28
- package/dist/core/viewport/useCanvasSize.js.map +1 -1
- package/dist/core/viewport/useDecayLoop.js +1 -2
- package/dist/core/viewport/useNodeOverlayFrame.js +1 -2
- package/dist/core/viewport/useVelocityTracker.js +1 -2
- package/dist/core/viewport/useViewAnimation.js +3 -4
- package/dist/core/viewport/view.js +1 -2
- package/dist/core/viewport/viewTransform.js +1 -2
- package/dist/core/viewport/viewportWorldRect.js +1 -2
- package/dist/core/viewport/wheelHandler.js +1 -2
- package/dist/core/viewport/zoomAt.js +2 -3
- package/dist/core/viewport/zoomBounds.js +1 -2
- package/dist/debug/createDebugOverlayLayer.js +1 -2
- package/dist/debug/createDebugSink.js +1 -2
- package/dist/debug/defaultTheme.js +1 -2
- package/dist/debug/features.js +1 -2
- package/dist/debug/frameStats.js +1 -2
- package/dist/debug/overlayPanels.js +1 -2
- package/dist/debug/parseDebugFlags.js +1 -2
- package/dist/debug/useDebugSink.js +2 -3
- package/dist/{depSchema-DD9H89gX.d.ts → depSchema-C7a_OMt-.d.ts} +101 -65
- package/dist/devtools/handlers.js +1 -2
- package/dist/devtools/history.js +1 -2
- package/dist/devtools/hook.js +1 -2
- package/dist/devtools/label.js +1 -2
- package/dist/devtools/notices.js +1 -2
- package/dist/devtools/protocol.js +1 -2
- package/dist/devtools/registry.js +1 -2
- package/dist/devtools/root.js +1 -2
- package/dist/devtools/serialize.js +1 -2
- package/dist/devtools/session.js +2 -3
- package/dist/devtools/transport.js +1 -2
- package/dist/devtools/useDevtoolsRoot.js +1 -2
- package/dist/devtools-protocol.d.ts +1 -1
- package/dist/devtools-protocol.js +2 -2
- package/dist/devtools.d.ts +1 -1
- package/dist/devtools.js +1 -2
- package/dist/domains/chrome-caps/buildChromeCtx.js +1 -2
- package/dist/domains/chrome-caps/conditions.js +1 -2
- package/dist/domains/chrome-caps/defaults.js +1 -2
- package/dist/domains/chrome-caps/resolve.js +3 -3
- package/dist/domains/chrome-caps/resolve.js.map +1 -1
- package/dist/domains/chrome-caps/useChromeCaps.js +5 -4
- package/dist/domains/chrome-caps/useChromeCaps.js.map +1 -1
- package/dist/domains/chrome-caps/useHoverTracking.js +1 -2
- package/dist/domains/ingestion/contentHandlers.js +1 -2
- package/dist/domains/ingestion/ghost.js +2 -3
- package/dist/domains/ingestion/imageHandler.js +1 -2
- package/dist/domains/ingestion/kitHandlers.js +2 -3
- package/dist/domains/ingestion/openFilePicker.js +1 -2
- package/dist/domains/ingestion/placement.js +1 -2
- package/dist/domains/ingestion/svgHandler.js +1 -2
- package/dist/domains/ingestion/textHandler.js +1 -2
- package/dist/domains/ingestion/useCanvasIngestion.js +1 -2
- package/dist/domains/ingestion/weaselJsonHandler.js +2 -3
- package/dist/domains/longPress/longPressFeedback.js +1 -2
- package/dist/domains/measure/actionIds.js +1 -2
- package/dist/domains/measure/measureCommands.js +6 -7
- package/dist/domains/measure/measureContribution.js +3 -4
- package/dist/domains/measure/measureEdits.js +3 -4
- package/dist/domains/measure/measureGestures.js +2 -3
- package/dist/domains/measure/measureHit.js +3 -4
- package/dist/domains/measure/measureLayer.js +3 -4
- package/dist/domains/measure/measurement.js +1 -2
- package/dist/domains/measure/measurements.js +1 -2
- package/dist/domains/modes/modeLayers.js +1 -2
- package/dist/domains/modes/modeTriggers.js +1 -2
- package/dist/domains/pathEffects/effectSources.js +2 -3
- package/dist/domains/pathEffects/index.js +1 -2
- package/dist/domains/pathEffects/readSource.js +3 -4
- package/dist/domains/pathEffects/textItems.js +1 -2
- package/dist/domains/pathEffects/useEffectSourcesLayer.js +3 -4
- package/dist/domains/paths/anchorData.js +1 -2
- package/dist/domains/paths/anchorMarkers.js +1 -2
- package/dist/domains/paths/editablePath.js +3 -4
- package/dist/domains/paths/originProjection.js +1 -2
- package/dist/domains/paths/pathEditExtension.js +1 -2
- package/dist/domains/paths/pathEditState.js +1 -26
- package/dist/domains/paths/pathEditState.js.map +1 -1
- package/dist/domains/paths/pathEditingOverlayLayer.js +2 -3
- package/dist/domains/paths/pathLayer.js +1 -2
- package/dist/domains/paths/pathRepresentation.js +1 -2
- package/dist/domains/paths/pathSnap/glyphs.js +1 -2
- package/dist/domains/paths/pathSnap/pathSnapSource.js +1 -2
- package/dist/domains/paths/pathSnap/sceneIndex.js +1 -2
- package/dist/domains/paths/pathSnap/snapGeometry.js +2 -3
- package/dist/domains/paths/penPreviewLayer.js +1 -2
- package/dist/domains/paths/shapeGenerator.js +1 -2
- package/dist/domains/paths/strokeOutline.js +2 -3
- package/dist/domains/paths/useAnchorFields.js +1 -2
- package/dist/domains/paths/usePathEdit.js +2 -3
- package/dist/domains/poseRun/usePoseRun.js +1 -2
- package/dist/domains/selection/enteredGroupFrame.js +1 -2
- package/dist/domains/selection/enteredGroupScope.js +1 -2
- package/dist/domains/selection/enteredOperands.js +1 -2
- package/dist/domains/selection/handleCommands.js +2 -3
- package/dist/domains/selection/overlay.js +6 -7
- package/dist/domains/selection/selectionPose.js +2 -3
- package/dist/domains/snap/angle2d.js +1 -2
- package/dist/domains/snap/debugCandidates.js +1 -2
- package/dist/domains/snap/gather.js +1 -2
- package/dist/domains/snap/inputSubspace.js +2 -3
- package/dist/domains/snap/lazySession.js +1 -2
- package/dist/domains/snap/marks.js +1 -2
- package/dist/domains/snap/outcomeStore.js +1 -2
- package/dist/domains/snap/pointSnap.js +1 -2
- package/dist/domains/snap/probes2d.js +6 -2
- package/dist/domains/snap/probes2d.js.map +1 -1
- package/dist/domains/snap/readoutDraw.js +1 -2
- package/dist/domains/snap/readoutLayer.js +1 -2
- package/dist/domains/snap/registry.js +1 -2
- package/dist/domains/snap/resizeBox.js +1 -2
- package/dist/domains/snap/roles.js +1 -2
- package/dist/domains/snap/rotationSource.js +1 -2
- package/dist/domains/snap/sceneReads.js +13 -4
- package/dist/domains/snap/sceneReads.js.map +1 -1
- package/dist/domains/snap/sceneSession2d.js +6 -5
- package/dist/domains/snap/sceneSession2d.js.map +1 -1
- package/dist/domains/snap/screen.js +2 -3
- package/dist/domains/snap/session2d.js +4 -5
- package/dist/domains/snap/spanSnap.js +1 -2
- package/dist/domains/snap/stepAngles.js +1 -2
- package/dist/domains/text/editingDrawOne.js +1 -2
- package/dist/domains/text/hostTextEditors.js +1 -2
- package/dist/domains/text/index.js +2 -2
- package/dist/domains/text/sceneTextDrafts.js +1 -2
- package/dist/domains/text/textHitAt.js +4 -5
- package/dist/domains/text/textLayer.js +12 -2
- package/dist/domains/text/textLayer.js.map +1 -1
- package/dist/domains/text/useSceneTextEdit.js +4 -5
- package/dist/domains/viewports/aim.js +3 -4
- package/dist/domains/viewports/viewMarker.js +1 -2
- package/dist/domains/viewports/viewMarkerDrag.js +1 -2
- package/dist/domains/viewports/viewResolver.js +1 -2
- package/dist/domains/viewports/viewportLayer.js +1 -2
- package/dist/iconRegistry/IconRegistryProvider.js +1 -2
- package/dist/iconRegistry/useIconGlyph.js +1 -2
- package/dist/iconRegistry/useIconVariant.js +1 -2
- package/dist/icons.table.js +2 -3
- package/dist/icons.table.js.map +1 -1
- package/dist/icons.table.json +5 -0
- package/dist/icons2.table.js +1 -2
- package/dist/index.d.ts +160 -64
- package/dist/index.js +14 -9
- package/dist/input/keyState.js +1 -2
- package/dist/input/useKeyModifiers.js +1 -2
- package/dist/input/useKeyState.js +1 -2
- package/dist/interactions/actions/admitsChild.js +1 -2
- package/dist/interactions/actions/align/action.js +6 -7
- package/dist/interactions/actions/align/align.js +6 -7
- package/dist/interactions/actions/booleans/action.js +5 -4
- package/dist/interactions/actions/booleans/action.js.map +1 -1
- package/dist/interactions/actions/booleans/booleanGroupAction.js +2 -3
- package/dist/interactions/actions/booleans/booleans.js +1 -2
- package/dist/interactions/actions/booleans/commit.js +4 -5
- package/dist/interactions/actions/booleans/custom.js +2 -3
- package/dist/interactions/actions/booleans/keymap.js +1 -2
- package/dist/interactions/actions/booleans/operands.js +1 -2
- package/dist/interactions/actions/booleans/pieces.js +1 -2
- package/dist/interactions/actions/booleans/placement.js +1 -2
- package/dist/interactions/actions/booleans/useBooleans.js +1 -2
- package/dist/interactions/actions/booleans/useBooleansAdapter.js +1 -2
- package/dist/interactions/actions/clipboard/action.js +2 -3
- package/dist/interactions/actions/clipboard/clipboardOps.js +2 -3
- package/dist/interactions/actions/clipboard/materializePaste.js +1 -2
- package/dist/interactions/actions/clipboard/wireFormat.js +1 -2
- package/dist/interactions/actions/clone/action.js +7 -8
- package/dist/interactions/actions/clone/behaviors.js +4 -5
- package/dist/interactions/actions/defaultCommitAdapter.js +2 -3
- package/dist/interactions/actions/defaults/anchorEditing.js +6 -10
- package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
- package/dist/interactions/actions/defaults/anchorFields.js +1 -2
- package/dist/interactions/actions/defaults/anchorHandles.js +2 -3
- package/dist/interactions/actions/defaults/anchorJoin.js +2 -3
- package/dist/interactions/actions/defaults/areaSelect.js +6 -6
- package/dist/interactions/actions/defaults/areaSelect.js.map +1 -1
- package/dist/interactions/actions/defaults/bendSegment.js +4 -6
- package/dist/interactions/actions/defaults/bendSegment.js.map +1 -1
- package/dist/interactions/actions/defaults/cancelGesture.js +1 -2
- package/dist/interactions/actions/defaults/clearSelection.js +1 -2
- package/dist/interactions/actions/defaults/containerScroll.js +4 -5
- package/dist/interactions/actions/defaults/contextMenu.js +6 -7
- package/dist/interactions/actions/defaults/copySubtree.js +2 -3
- package/dist/interactions/actions/defaults/createPaintAction.js +3 -4
- package/dist/interactions/actions/defaults/delete.js +2 -3
- package/dist/interactions/actions/defaults/duplicate.js +5 -6
- package/dist/interactions/actions/defaults/enterGroup.js +2 -3
- package/dist/interactions/actions/defaults/enterPathEdit.js +1 -2
- package/dist/interactions/actions/defaults/enterTextEdit.js +1 -2
- package/dist/interactions/actions/defaults/escape.js +1 -2
- package/dist/interactions/actions/defaults/exitPathEdit.js +18 -3
- package/dist/interactions/actions/defaults/exitPathEdit.js.map +1 -1
- package/dist/interactions/actions/defaults/group.js +6 -7
- package/dist/interactions/actions/defaults/ingest.js +3 -4
- package/dist/interactions/actions/defaults/insertPathAnchor.js +2 -3
- package/dist/interactions/actions/defaults/nudge.js +3 -4
- package/dist/interactions/actions/defaults/nudgeSteps.js +2 -3
- package/dist/interactions/actions/defaults/nudgeSteps.js.map +1 -1
- package/dist/interactions/actions/defaults/pathEditMarks.js +1 -2
- package/dist/interactions/actions/defaults/pinchZoom.js +3 -4
- package/dist/interactions/actions/defaults/reorder.js +2 -3
- package/dist/interactions/actions/defaults/requiresSelection.js +1 -2
- package/dist/interactions/actions/defaults/segmentUnder.js +1 -2
- package/dist/interactions/actions/defaults/selectAll.js +1 -2
- package/dist/interactions/actions/defaults/selectDeep.js +1 -2
- package/dist/interactions/actions/defaults/setFill.js +1 -2
- package/dist/interactions/actions/defaults/setFillOpacity.js +1 -2
- package/dist/interactions/actions/defaults/setStroke.js +1 -2
- package/dist/interactions/actions/defaults/setStrokeOpacity.js +1 -2
- package/dist/interactions/actions/defaults/slice.js +1 -2
- package/dist/interactions/actions/defaults/sliceOps.js +1 -2
- package/dist/interactions/actions/defaults/toolActivate.js +1 -2
- package/dist/interactions/actions/defaults/toolResetToDefault.js +1 -2
- package/dist/interactions/actions/defaults/undoRedo.js +1 -2
- package/dist/interactions/actions/defaults/viewportDragPan.js +1 -2
- package/dist/interactions/actions/defaults/viewportWheelPan.js +1 -2
- package/dist/interactions/actions/defaults/viewportZoom.js +3 -4
- package/dist/interactions/actions/distribute/action.js +4 -5
- package/dist/interactions/actions/distribute/distribute.js +5 -6
- package/dist/interactions/actions/distribute/plan.js +1 -2
- package/dist/interactions/actions/drawnBoxes.js +4 -5
- package/dist/interactions/actions/dropVerdict.js +1 -2
- package/dist/interactions/actions/edit-anchors/action.js +7 -9
- package/dist/interactions/actions/edit-anchors/action.js.map +1 -1
- package/dist/interactions/actions/edit-anchors/extensionDrags.js +1 -2
- package/dist/interactions/actions/edit-anchors/geometry.js +1 -2
- package/dist/interactions/actions/edit-anchors/handleDrag.js +1 -2
- package/dist/interactions/actions/edit-anchors/handles.js +1 -2
- package/dist/interactions/actions/edit-anchors/params.js +1 -2
- package/dist/interactions/actions/edit-anchors/preview.js +1 -2
- package/dist/interactions/actions/edit-anchors/symmetry.js +1 -2
- package/dist/interactions/actions/flip/action.js +8 -9
- package/dist/interactions/actions/flip/helpers.js +1 -2
- package/dist/interactions/actions/geometryProjection.js +1 -2
- package/dist/interactions/actions/gestureFrames.js +3 -4
- package/dist/interactions/actions/gestureLifecycle.js +1 -2
- package/dist/interactions/actions/hitSelection.js +7 -3
- package/dist/interactions/actions/hitSelection.js.map +1 -1
- package/dist/interactions/actions/insert/action.js +27 -9
- package/dist/interactions/actions/insert/action.js.map +1 -1
- package/dist/interactions/actions/insert/commit.js +2 -3
- package/dist/interactions/actions/insert/extras.js +1 -2
- package/dist/interactions/actions/insert/frame.js +1 -2
- package/dist/interactions/actions/insert/geometry.js +1 -2
- package/dist/interactions/actions/insert/params.js +42 -0
- package/dist/interactions/actions/insert/params.js.map +1 -0
- package/dist/interactions/actions/insert/parent.js +1 -2
- package/dist/interactions/actions/insert/placeAction.js +5 -6
- package/dist/interactions/actions/insert/repositionAction.js +1 -2
- package/dist/interactions/actions/insert/rotateAction.js +1 -2
- package/dist/interactions/actions/insert/session.js +5 -6
- package/dist/interactions/actions/insert/shape.js +2 -3
- package/dist/interactions/actions/lasso-select/action.js +9 -9
- package/dist/interactions/actions/lasso-select/action.js.map +1 -1
- package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js +2 -3
- package/dist/interactions/actions/magnification.js +37 -0
- package/dist/interactions/actions/magnification.js.map +1 -0
- package/dist/interactions/actions/move/action.js +2 -3
- package/dist/interactions/actions/move/behaviors/layoutDrop.js +2 -3
- package/dist/interactions/actions/move/behaviors/reparentOnDrop.js +2 -3
- package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js +1 -2
- package/dist/interactions/actions/move/behaviors/snapToContainer.js +2 -3
- package/dist/interactions/actions/move/capture.js +6 -7
- package/dist/interactions/actions/move/commit/index.js +2 -3
- package/dist/interactions/actions/move/commit/layoutDrop.js +4 -5
- package/dist/interactions/actions/move/commit/layoutRelease.js +7 -8
- package/dist/interactions/actions/move/commit/rebase.js +2 -3
- package/dist/interactions/actions/move/commit/reparent.js +5 -6
- package/dist/interactions/actions/move/delta.js +2 -3
- package/dist/interactions/actions/move/frame.js +2 -3
- package/dist/interactions/actions/move/gestureAdapter.js +1 -2
- package/dist/interactions/actions/move/landedDescendants.js +2 -3
- package/dist/interactions/actions/move/layout/container.js +3 -4
- package/dist/interactions/actions/move/layout/dragged.js +2 -3
- package/dist/interactions/actions/move/layout/dropPass.js +5 -6
- package/dist/interactions/actions/move/layout/exits.js +2 -3
- package/dist/interactions/actions/move/layout/glide.js +2 -3
- package/dist/interactions/actions/move/layout/view.js +1 -2
- package/dist/interactions/actions/move/refusal.js +2 -3
- package/dist/interactions/actions/move/session.js +4 -5
- package/dist/interactions/actions/move/translate.js +2 -3
- package/dist/interactions/actions/moveNodes.js +5 -6
- package/dist/interactions/actions/notices.js +16 -0
- package/dist/interactions/actions/notices.js.map +1 -0
- package/dist/interactions/actions/outlines/createOutlines.js +9 -8
- package/dist/interactions/actions/outlines/createOutlines.js.map +1 -1
- package/dist/interactions/actions/outlines/createOutlinesAction.js +14 -10
- package/dist/interactions/actions/outlines/createOutlinesAction.js.map +1 -1
- package/dist/interactions/actions/outlines/outlineStroke.js +2 -3
- package/dist/interactions/actions/outlines/outlineStrokeAction.js +5 -5
- package/dist/interactions/actions/outlines/outlineStrokeAction.js.map +1 -1
- package/dist/interactions/actions/outlines/replaceWithPaths.js +5 -6
- package/dist/interactions/actions/outlines/strokeRegion.js +1 -2
- package/dist/interactions/actions/outlines/useCreateOutlinesAdapter.js +1 -2
- package/dist/interactions/actions/pathCommands/cutJoin.js +3 -4
- package/dist/interactions/actions/pathCommands/livePathEdit.js +3 -4
- package/dist/interactions/actions/pathCommands/pathNodes.js +2 -3
- package/dist/interactions/actions/pathCommands/simplifyOffset.js +2 -3
- package/dist/interactions/actions/pathGestureTags.js +1 -2
- package/dist/interactions/actions/planeInput.js +2 -3
- package/dist/interactions/actions/pointerState.js +1 -2
- package/dist/interactions/actions/poseDescriptorDep.js +1 -2
- package/dist/interactions/actions/poseFrame.js +3 -4
- package/dist/interactions/actions/resize/action.js +3 -4
- package/dist/interactions/actions/resize/aspect.js +1 -2
- package/dist/interactions/actions/resize/behaviors/clampMinSize.js +1 -2
- package/dist/interactions/actions/resize/boxFrame.js +1 -2
- package/dist/interactions/actions/resize/capture.js +7 -8
- package/dist/interactions/actions/resize/commit.js +3 -4
- package/dist/interactions/actions/resize/cornerHandles.js +1 -2
- package/dist/interactions/actions/resize/frame.js +7 -8
- package/dist/interactions/actions/resize/held.js +2 -3
- package/dist/interactions/actions/resize/minimum.js +1 -2
- package/dist/interactions/actions/resize/replay.js +1 -2
- package/dist/interactions/actions/resize/ruleBounds.js +1 -2
- package/dist/interactions/actions/resize/session.js +9 -10
- package/dist/interactions/actions/resolveOverlays.js +1 -2
- package/dist/interactions/actions/resolvePreviews.js +3 -4
- package/dist/interactions/actions/rotate/action.js +5 -6
- package/dist/interactions/actions/rotate/commit.js +2 -3
- package/dist/interactions/actions/rotate/frame.js +3 -4
- package/dist/interactions/actions/rotate/geometry.js +1 -2
- package/dist/interactions/actions/rotate/handle.js +2 -3
- package/dist/interactions/actions/rotate/replay.js +2 -3
- package/dist/interactions/actions/rotate/session.js +10 -11
- package/dist/interactions/actions/selectionSubtree.js +7 -22
- package/dist/interactions/actions/selectionSubtree.js.map +1 -1
- package/dist/interactions/actions/spatialReference.js +1 -2
- package/dist/interactions/actions/testUtils.js +1 -9
- 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/memory.js +1 -2
- package/dist/interactions/actions/transformFinish.js +1 -2
- package/dist/interactions/actions/useActionSet.js +1 -2
- package/dist/interactions/actions/useNotices.js +12 -0
- package/dist/interactions/actions/useNotices.js.map +1 -0
- package/dist/interactions/actions/useStandardActions.js +1 -2
- package/dist/interactions/gestures/dragGesture/dragGesture.js +1 -2
- package/dist/interactions/gestures/dragGesture/dragPointOf.js +1 -2
- package/dist/interactions/gestures/dragRadial/dragRadial.js +2 -3
- package/dist/interactions/gestures/dragRect/dragRect.js +2 -3
- package/dist/interactions/gestures/handleDrag/handleDrag.js +1 -2
- package/dist/interactions/gestures/pointerDrag/pointerDrag.js +1 -2
- package/dist/interactions/gestures/shared/originProjection.js +1 -2
- package/dist/interactions/gestures/shared/screenTolerance.js +1 -2
- package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js +1 -2
- package/dist/kitSettingsSchema.js +4 -5
- package/dist/test-hook/createTestHook.js +1 -2
- package/dist/test-hook/install.js +1 -2
- package/dist/test-hook/useTestHook.js +1 -2
- package/dist/test-seams.d.ts +7 -14
- package/dist/test-seams.js +2 -2
- package/dist/tools/builtin/anchors/anchorsTool.js +30 -0
- package/dist/tools/builtin/anchors/anchorsTool.js.map +1 -0
- package/dist/tools/builtin/ellipse/useEllipseTool.js +2 -3
- package/dist/tools/builtin/eyedropper/useEyedropperTool.js +1 -2
- package/dist/tools/builtin/hand/dragPanContribution.js +1 -2
- package/dist/tools/builtin/hand/useHandTool.js +1 -2
- package/dist/tools/builtin/image/useImageTool.js +1 -2
- package/dist/tools/builtin/lasso/useLassoTool.js +1 -2
- package/dist/tools/builtin/line/useLineTool.js +2 -3
- package/dist/tools/builtin/measure/useMeasureTool.js +2 -3
- package/dist/tools/builtin/pen/penHandle.js +1 -2
- package/dist/tools/builtin/pen/usePenTool.js +6 -7
- package/dist/tools/builtin/pencil/usePencilTool.js +1 -2
- package/dist/tools/builtin/pickTopMostHit.js +1 -2
- package/dist/tools/builtin/polygon/usePolygonTool.js +2 -3
- package/dist/tools/builtin/pressTarget.js +1 -2
- package/dist/tools/builtin/rect/useRectTool.js +2 -3
- package/dist/tools/builtin/select/adapterPointQuery.js +3 -4
- package/dist/tools/builtin/select/collapseDeferred.js +1 -2
- package/dist/tools/builtin/select/groupEntry.js +2 -3
- package/dist/tools/builtin/select/pressDecision.js +3 -4
- package/dist/tools/builtin/select/pressDecision.js.map +1 -1
- package/dist/tools/builtin/select/selectionContributions.js +1 -2
- package/dist/tools/builtin/select/useSelectTool.js +5 -6
- package/dist/tools/builtin/shared/insertToolOptions.js +1 -2
- package/dist/tools/builtin/shared/pointerFollower.js +1 -2
- package/dist/tools/builtin/slice/useSliceTool.js +5 -6
- package/dist/tools/builtin/star/useStarTool.js +2 -3
- package/dist/tools/builtin/sticky/stickyNode.js +1 -2
- package/dist/tools/builtin/sticky/useStickyTool.js +2 -3
- package/dist/tools/builtin/text/useTextTool.js +1 -2
- package/dist/tools/index.js +4 -2
- package/dist/tools/overlayBinding.js +1 -2
- package/dist/tools/toolOptions.js +60 -0
- package/dist/tools/toolOptions.js.map +1 -0
- package/dist/tools/useKeybindings.js +1 -2
- package/dist/{types-DW14eu9B.d.ts → types-BUvUXZe5.d.ts} +3 -3
- package/dist/util/color.js +1 -2
- package/dist/util/paint.js +1 -2
- package/dist/version.js +2 -3
- package/package.json +27 -27
- package/dist/interactions/actions/defaults/pathEditTools.js +0 -60
- package/dist/interactions/actions/defaults/pathEditTools.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { layoutDropOps } from "../commit/layoutDrop.js";
|
|
2
|
-
import { runDropPass } from "../layout/dropPass.js";
|
|
3
2
|
import { layoutReleaseOps } from "../commit/layoutRelease.js";
|
|
3
|
+
import { runDropPass } from "../layout/dropPass.js";
|
|
4
4
|
import { landReleased, releasedPoses, stepGlide } from "../layout/glide.js";
|
|
5
5
|
import { refusalOverlays } from "../refusal.js";
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
// src/interactions/actions/move/behaviors/layoutDrop.ts
|
|
8
8
|
/**
|
|
9
9
|
* The move behavior that drops the selection into the layout container under
|
|
10
10
|
* it. Each move it resolves the drop and shows the siblings making room; on
|
|
@@ -75,6 +75,5 @@ function layoutDrop(move) {
|
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
//#endregion
|
|
79
78
|
export { layoutDrop };
|
|
80
79
|
//# sourceMappingURL=layoutDrop.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { refusalOverlays } from "../refusal.js";
|
|
2
1
|
import { reparentOps, resolveDrop } from "../commit/reparent.js";
|
|
2
|
+
import { refusalOverlays } from "../refusal.js";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// src/interactions/actions/move/behaviors/reparentOnDrop.ts
|
|
5
5
|
/**
|
|
6
6
|
* The move behavior that reparents the selection under the node the pointer is
|
|
7
7
|
* released over, when the binding's `reparentOnDrop` param asks for it. While
|
|
@@ -39,6 +39,5 @@ function reparentOnDrop(move) {
|
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
//#endregion
|
|
43
42
|
export { reparentOnDrop };
|
|
44
43
|
//# sourceMappingURL=reparentOnDrop.js.map
|
|
@@ -2,7 +2,7 @@ import { createDeleteOp } from "../../../../core/ops/delete.js";
|
|
|
2
2
|
import { AUTO_ORIGIN_PROJECTION } from "../../../gestures/shared/originProjection.js";
|
|
3
3
|
import { getScratch, scratchKey, setScratch } from "@weasel-js/routing";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// src/interactions/actions/move/behaviors/snapBackOrDelete.ts
|
|
6
6
|
var SNAPSHOTS = scratchKey("snapBackOrDelete.snapshots");
|
|
7
7
|
var INDEXES = scratchKey("snapBackOrDelete.indexes");
|
|
8
8
|
/** Snap back to the origin pose, or delete, depending on where the drag is
|
|
@@ -47,6 +47,5 @@ function snapBackOrDelete(args) {
|
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
//#endregion
|
|
51
50
|
export { snapBackOrDelete };
|
|
52
51
|
//# sourceMappingURL=snapBackOrDelete.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { definesFrame } from "../../../../core/scene/effectivePose.js";
|
|
2
1
|
import { createTransformOp } from "../../../../core/ops/transform.js";
|
|
2
|
+
import { definesFrame } from "../../../../core/scene/effectivePose.js";
|
|
3
3
|
import { createReparentOp } from "../../../../core/ops/reparent.js";
|
|
4
4
|
import { getScratch, scratchKey, setScratch } from "@weasel-js/routing";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/interactions/actions/move/behaviors/snapToContainer.ts
|
|
7
7
|
var STATE = scratchKey("snapToContainer");
|
|
8
8
|
function getState(ctx) {
|
|
9
9
|
let s = getScratch(ctx.scratch, STATE);
|
|
@@ -154,6 +154,5 @@ function keptInPlace(ctx, parentId, id, moved, label) {
|
|
|
154
154
|
return ops;
|
|
155
155
|
}
|
|
156
156
|
|
|
157
|
-
//#endregion
|
|
158
157
|
export { snapToContainer };
|
|
159
158
|
//# sourceMappingURL=snapToContainer.js.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
+
import { pointerStateOf } from "../pointerState.js";
|
|
2
|
+
import { effectivePose } from "../../../core/scene/effectivePose.js";
|
|
1
3
|
import { toPlane } from "../../../core/viewport/parallax.js";
|
|
2
4
|
import { composeChildFrame, composeWorldPose, frameAtOrAbove } from "../../../core/scene/composeFrame.js";
|
|
3
|
-
import { effectivePose } from "../../../core/scene/effectivePose.js";
|
|
4
5
|
import { sceneViewPoseAdapter } from "../../../core/scene/scenePoseAdapter.js";
|
|
5
|
-
import { scenePoseFrame } from "../poseFrame.js";
|
|
6
|
-
import { poseDescriptorOf } from "../poseDescriptorDep.js";
|
|
7
6
|
import { invertPlane, planeOf } from "../planeInput.js";
|
|
7
|
+
import { sceneGestureFrames } from "../gestureFrames.js";
|
|
8
|
+
import { poseDescriptorOf } from "../poseDescriptorDep.js";
|
|
9
|
+
import { scenePoseFrame } from "../poseFrame.js";
|
|
8
10
|
import { translateTargets } from "../selectionSubtree.js";
|
|
9
11
|
import { catchGliding } from "./layout/glide.js";
|
|
10
|
-
import { pointerStateOf } from "../pointerState.js";
|
|
11
|
-
import { sceneGestureFrames } from "../gestureFrames.js";
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
// src/interactions/actions/move/capture.ts
|
|
14
14
|
/** Start pose of each root and descendant, the descendants in walk order, and
|
|
15
15
|
* the offsets of any caught mid-glide. */
|
|
16
16
|
function captureStartPoses(scene, ids, reflow, projection) {
|
|
@@ -124,6 +124,5 @@ function buildGestureContext(ctx, scene, ids, startPoses, adapter, readers) {
|
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
-
//#endregion
|
|
128
127
|
export { buildGestureContext, captureFrames, capturePlaneRefs, captureStartPoses };
|
|
129
128
|
//# sourceMappingURL=capture.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { commitGestureOps, reduceBehaviorEnd } from "../../gestureLifecycle.js";
|
|
2
2
|
import { draggedStoredPose } from "../delta.js";
|
|
3
|
-
import { rootTranslateOps, translateOps } from "../translate.js";
|
|
4
3
|
import { landedDescendantOps } from "../landedDescendants.js";
|
|
4
|
+
import { rootTranslateOps, translateOps } from "../translate.js";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/interactions/actions/move/commit/index.ts
|
|
7
7
|
/** What the behaviors answer for the commit: ops, `null` to abort, or
|
|
8
8
|
* `undefined` when every one of them leaves it to the default translate. */
|
|
9
9
|
function endBehaviors(session, delta, at) {
|
|
@@ -43,6 +43,5 @@ function commitMove(input) {
|
|
|
43
43
|
return ops.length > 0 && commitOps(ops);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
//#endregion
|
|
47
46
|
export { commitMove };
|
|
48
47
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { createReparentOp } from "../../../../core/ops/reparent.js";
|
|
2
|
+
import { createTransformOp } from "../../../../core/ops/transform.js";
|
|
3
|
+
import { asNodeId } from "../../../../core/scene/types.js";
|
|
1
4
|
import { rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
|
|
2
5
|
import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
|
|
3
|
-
import { asNodeId } from "../../../../core/scene/types.js";
|
|
4
|
-
import { createTransformOp } from "../../../../core/ops/transform.js";
|
|
5
|
-
import { createReparentOp } from "../../../../core/ops/reparent.js";
|
|
6
6
|
import { rebaseTransformOp } from "./rebase.js";
|
|
7
7
|
import { opInWorld } from "../layout/view.js";
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
// src/interactions/actions/move/commit/layoutDrop.ts
|
|
10
10
|
/** The ops of a drop a layout container accepted: reparents, then each
|
|
11
11
|
* placement's `commitDrop`, then the source containers' reflow. */
|
|
12
12
|
function layoutDropOps(session, pass) {
|
|
@@ -51,6 +51,5 @@ function layoutDropOps(session, pass) {
|
|
|
51
51
|
];
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
//#endregion
|
|
55
54
|
export { layoutDropOps };
|
|
56
55
|
//# sourceMappingURL=layoutDrop.js.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
+
import { createReparentOp } from "../../../../core/ops/reparent.js";
|
|
2
|
+
import { createTransformOp } from "../../../../core/ops/transform.js";
|
|
3
|
+
import { asNodeId } from "../../../../core/scene/types.js";
|
|
1
4
|
import { composeChildFrame, composeWorldPose, rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
|
|
2
|
-
import { poseDescriptorForNode } from "../../../../core/geometry/poseDescriptor.js";
|
|
3
5
|
import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
|
|
4
|
-
import { asNodeId } from "../../../../core/scene/types.js";
|
|
5
|
-
import { createTransformOp } from "../../../../core/ops/transform.js";
|
|
6
|
-
import { createReparentOp } from "../../../../core/ops/reparent.js";
|
|
7
|
-
import { rebaseTransformOp } from "./rebase.js";
|
|
8
|
-
import { boxOf, containerView, draggedInView, opInWorld } from "../layout/view.js";
|
|
9
6
|
import { draggedWorldPose, grabbedPoseAdapter } from "../delta.js";
|
|
10
7
|
import { groupBySourceContainer } from "../layout/dropPass.js";
|
|
11
8
|
import { resolveLayoutExits } from "../layout/exits.js";
|
|
12
9
|
import { translateOps, unreleasedIds } from "../translate.js";
|
|
10
|
+
import { rebaseTransformOp } from "./rebase.js";
|
|
11
|
+
import { poseDescriptorForNode } from "../../../../core/geometry/poseDescriptor.js";
|
|
12
|
+
import { boxOf, containerView, draggedInView, opInWorld } from "../layout/view.js";
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
// src/interactions/actions/move/commit/layoutRelease.ts
|
|
15
15
|
function releaseFrom(session, delta, srcId, leaving, commitAdapter) {
|
|
16
16
|
const { dx, dy } = delta;
|
|
17
17
|
const pc = session.pc;
|
|
@@ -121,6 +121,5 @@ function layoutReleaseOps(session, delta, dropCenter) {
|
|
|
121
121
|
];
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
//#endregion
|
|
125
124
|
export { layoutReleaseOps };
|
|
126
125
|
//# sourceMappingURL=layoutRelease.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
|
|
2
1
|
import { createTransformOp } from "../../../../core/ops/transform.js";
|
|
2
|
+
import { rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// src/interactions/actions/move/commit/rebase.ts
|
|
5
5
|
/** A world-posed transform op as one in its node's stored frame: `from` under
|
|
6
6
|
* `fromParent`, `to` under `toParent`. Any other op is returned as it is. */
|
|
7
7
|
function rebaseTransformOp(op, adapter, pc, fromParent, toParent) {
|
|
@@ -16,6 +16,5 @@ function rebaseTransformOp(op, adapter, pc, fromParent, toParent) {
|
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
//#endregion
|
|
20
19
|
export { rebaseTransformOp };
|
|
21
20
|
//# sourceMappingURL=rebase.js.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
+
import { createReparentOp } from "../../../../core/ops/reparent.js";
|
|
2
|
+
import { createSetLayerOp } from "../../../../core/ops/setLayer.js";
|
|
3
|
+
import { createTransformOp } from "../../../../core/ops/transform.js";
|
|
1
4
|
import { planeToPlane } from "../../../../core/viewport/parallax.js";
|
|
2
5
|
import { rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
|
|
3
6
|
import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
|
|
4
7
|
import { carryPose, planeOf } from "../../planeInput.js";
|
|
5
|
-
import { createTransformOp } from "../../../../core/ops/transform.js";
|
|
6
|
-
import { createReparentOp } from "../../../../core/ops/reparent.js";
|
|
7
8
|
import { draggedWorldPose, grabbedPoseAdapter } from "../delta.js";
|
|
8
|
-
import { refusalOf } from "../../dropVerdict.js";
|
|
9
9
|
import { translateOps } from "../translate.js";
|
|
10
|
+
import { refusalOf } from "../../dropVerdict.js";
|
|
10
11
|
import { worldBoundsOf } from "../refusal.js";
|
|
11
|
-
import { createSetLayerOp } from "../../../../core/ops/setLayer.js";
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
// src/interactions/actions/move/commit/reparent.ts
|
|
14
14
|
/** Walk the hit chain to find the appropriate drop target. Returns
|
|
15
15
|
* `null` when no reparent should happen (drop on empty canvas, or the
|
|
16
16
|
* only hits are the moved subtree itself), and a refusal when the first
|
|
@@ -98,6 +98,5 @@ function reparentOps(session, target, mode, delta) {
|
|
|
98
98
|
return [...ops, ...translateOps(session, session.cascadeIds, delta)];
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
//#endregion
|
|
102
101
|
export { reparentOps, resolveDrop };
|
|
103
102
|
//# sourceMappingURL=reparent.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { leadUnder, translatePoseViaDescriptor } from "../../../core/geometry/poseDescriptor.js";
|
|
1
2
|
import { toPlane } from "../../../core/viewport/parallax.js";
|
|
2
3
|
import { composeWorldPose } from "../../../core/scene/composeFrame.js";
|
|
3
|
-
import { leadUnder, translatePoseViaDescriptor } from "../../../core/geometry/poseDescriptor.js";
|
|
4
4
|
import { planeOf } from "../planeInput.js";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
// src/interactions/actions/move/delta.ts
|
|
7
7
|
/**
|
|
8
8
|
* The world drag `(dx, dy)` as a translation of `id`'s stored pose. A pose is
|
|
9
9
|
* stored in its frame, so under a turned frame the two point different ways.
|
|
@@ -114,6 +114,5 @@ function draggedWorldPose(session, adapter, id, delta) {
|
|
|
114
114
|
return translatePoseViaDescriptor(start, own.dx, own.dy, session.descriptorOf(id), leadFor(session, id, delta.dx, delta.dy));
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
//#endregion
|
|
118
117
|
export { draggedStoredPose, draggedWorldPose, grabbedPoseAdapter, localDelta, planeDelta, storedLeadFor };
|
|
119
118
|
//# sourceMappingURL=delta.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { draggedStoredPose } from "./delta.js";
|
|
2
1
|
import { pointerStateOf } from "../pointerState.js";
|
|
2
|
+
import { draggedStoredPose } from "./delta.js";
|
|
3
3
|
import { snapMods } from "../../../domains/snap/roles.js";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// src/interactions/actions/move/frame.ts
|
|
6
6
|
function foldBehaviors(session, readers, moveCtx, dx, dy) {
|
|
7
7
|
const posed = /* @__PURE__ */ new Map();
|
|
8
8
|
const opaque = /* @__PURE__ */ new Set();
|
|
@@ -77,6 +77,5 @@ function nextFrame(session, readers, moveCtx) {
|
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
//#endregion
|
|
81
80
|
export { nextFrame };
|
|
82
81
|
//# sourceMappingURL=frame.js.map
|
|
@@ -2,7 +2,7 @@ import { asNodeId } from "../../../core/scene/types.js";
|
|
|
2
2
|
import { scenePoseTarget } from "../../../animation/poseTarget.js";
|
|
3
3
|
import { defaultCommitAdapter } from "../defaultCommitAdapter.js";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// src/interactions/actions/move/gestureAdapter.ts
|
|
6
6
|
/** `commit` is how a behavior's own `applyOps` batch lands; the returned
|
|
7
7
|
* adapter is passed back so the ops apply through it. Left out, the adapter
|
|
8
8
|
* has no `applyOps`. `selection` is as `defaultCommitAdapter` takes it. */
|
|
@@ -33,6 +33,5 @@ function moveGestureAdapter(scene, commit, selection) {
|
|
|
33
33
|
return adapter;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
//#endregion
|
|
37
36
|
export { moveGestureAdapter };
|
|
38
37
|
//# sourceMappingURL=gestureAdapter.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { createTransformOp } from "../../../core/ops/transform.js";
|
|
1
2
|
import { translatePoseViaDescriptor } from "../../../core/geometry/poseDescriptor.js";
|
|
2
3
|
import { carriedDescendants, sceneCarrySource } from "../../../core/scene/carryDescendants.js";
|
|
3
|
-
import { createTransformOp } from "../../../core/ops/transform.js";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// src/interactions/actions/move/landedDescendants.ts
|
|
6
6
|
/**
|
|
7
7
|
* Ops that bring along the descendants of every node `ops` transforms. A
|
|
8
8
|
* layout drop or a behavior places a dragged root somewhere the drag delta
|
|
@@ -46,6 +46,5 @@ function landedDescendantOps(input, ops) {
|
|
|
46
46
|
return out;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
//#endregion
|
|
50
49
|
export { landedDescendantOps };
|
|
51
50
|
//# sourceMappingURL=landedDescendants.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
+
import { poseDescriptorForNode } from "../../../../core/geometry/poseDescriptor.js";
|
|
1
2
|
import { toPlane } from "../../../../core/viewport/parallax.js";
|
|
2
3
|
import { childFrameAt, composeWorldPose } from "../../../../core/scene/composeFrame.js";
|
|
3
|
-
import { poseDescriptorForNode } from "../../../../core/geometry/poseDescriptor.js";
|
|
4
4
|
import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
|
|
5
5
|
import { planeOf } from "../../planeInput.js";
|
|
6
|
-
import { boxOf, containerView, draggedInView } from "./view.js";
|
|
7
6
|
import { carryDragged } from "./dragged.js";
|
|
8
7
|
import { refusalOf } from "../../dropVerdict.js";
|
|
8
|
+
import { boxOf, containerView, draggedInView } from "./view.js";
|
|
9
9
|
import { pointInPath } from "@weasel-js/geom";
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
// src/interactions/actions/move/layout/container.ts
|
|
12
12
|
function pointInBounds(b, at) {
|
|
13
13
|
return at.x >= b.x && at.x < b.x + b.width && at.y >= b.y && at.y < b.y + b.height;
|
|
14
14
|
}
|
|
@@ -120,6 +120,5 @@ function pickContainer(session, dragged, center) {
|
|
|
120
120
|
return chooseContainer(scene, mode, candidates);
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
//#endregion
|
|
124
123
|
export { pickContainer, pointInBounds };
|
|
125
124
|
//# sourceMappingURL=container.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { poseDescriptorForNode, translatePoseViaDescriptor } from "../../../../core/geometry/poseDescriptor.js";
|
|
1
2
|
import { toPlane } from "../../../../core/viewport/parallax.js";
|
|
2
3
|
import { composeWorldPose } from "../../../../core/scene/composeFrame.js";
|
|
3
|
-
import { poseDescriptorForNode, translatePoseViaDescriptor } from "../../../../core/geometry/poseDescriptor.js";
|
|
4
4
|
import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
|
|
5
5
|
import { carryPose, invertPlane, planeOf } from "../../planeInput.js";
|
|
6
6
|
import { grabbedPoseAdapter, planeDelta } from "../delta.js";
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
// src/interactions/actions/move/layout/dragged.ts
|
|
9
9
|
/** Each dragged root in world, in the edited plane. */
|
|
10
10
|
function gatherDragged(session, delta) {
|
|
11
11
|
const scene = session.scene;
|
|
@@ -75,6 +75,5 @@ function selectionCenter(session, dragged) {
|
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
//#endregion
|
|
79
78
|
export { carryDragged, gatherDragged, selectionCenter };
|
|
80
79
|
//# sourceMappingURL=dragged.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
+
import { asNodeId } from "../../../../core/scene/types.js";
|
|
1
2
|
import { toPlane } from "../../../../core/viewport/parallax.js";
|
|
2
3
|
import { composeWorldPose, rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
|
|
3
|
-
import { poseDescriptorForNode, translatePoseViaDescriptor } from "../../../../core/geometry/poseDescriptor.js";
|
|
4
4
|
import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
|
|
5
5
|
import { carriedDescendants, sceneCarrySource } from "../../../../core/scene/carryDescendants.js";
|
|
6
|
-
import {
|
|
7
|
-
import { boxOf, containerView, draggedInView, pointInView } from "./view.js";
|
|
8
|
-
import { carryDragged, gatherDragged, selectionCenter } from "./dragged.js";
|
|
6
|
+
import { poseDescriptorForNode, translatePoseViaDescriptor } from "../../../../core/geometry/poseDescriptor.js";
|
|
9
7
|
import { pickContainer } from "./container.js";
|
|
8
|
+
import { carryDragged, gatherDragged, selectionCenter } from "./dragged.js";
|
|
9
|
+
import { boxOf, containerView, draggedInView, pointInView } from "./view.js";
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
// src/interactions/actions/move/layout/dropPass.ts
|
|
12
12
|
/** Dragged ids grouped by the container they are leaving, skipping any that
|
|
13
13
|
* stay put (`exclude` is the destination) or that had no container. */
|
|
14
14
|
function groupBySourceContainer(dragged, exclude) {
|
|
@@ -194,6 +194,5 @@ function runDropPass(session, delta, pointer) {
|
|
|
194
194
|
};
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
-
//#endregion
|
|
198
197
|
export { groupBySourceContainer, runDropPass };
|
|
199
198
|
//# sourceMappingURL=dropPass.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { poseDescriptorForNode } from "../../../../core/geometry/poseDescriptor.js";
|
|
1
2
|
import { toPlane } from "../../../../core/viewport/parallax.js";
|
|
2
3
|
import { composeWorldPose } from "../../../../core/scene/composeFrame.js";
|
|
3
|
-
import { poseDescriptorForNode } from "../../../../core/geometry/poseDescriptor.js";
|
|
4
4
|
import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
|
|
5
5
|
import { planeOf } from "../../planeInput.js";
|
|
6
6
|
import { pointInBounds } from "./container.js";
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
// src/interactions/actions/move/layout/exits.ts
|
|
9
9
|
/** Where each dragged root that leaves its layout container on release lands.
|
|
10
10
|
* A root leaves when the drop center falls outside the body of the layout
|
|
11
11
|
* container holding it, and lands under the innermost plain container beneath
|
|
@@ -61,6 +61,5 @@ function resolveLayoutExits(session, dropCenter, ids) {
|
|
|
61
61
|
return out;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
//#endregion
|
|
65
64
|
export { resolveLayoutExits };
|
|
66
65
|
//# sourceMappingURL=exits.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { composeChildFrame, frameAtOrAbove, rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
|
|
2
1
|
import { documentPose } from "../../../../core/scene/effectivePose.js";
|
|
2
|
+
import { composeChildFrame, frameAtOrAbove, rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
|
|
3
3
|
import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// src/interactions/actions/move/layout/glide.ts
|
|
6
6
|
/** Hold a node still gliding from an earlier reflow where it is shown. Returns
|
|
7
7
|
* how far that stands from its document pose, or null when it is not gliding. */
|
|
8
8
|
function catchGliding(scene, reflow, projection, id) {
|
|
@@ -64,6 +64,5 @@ function landReleased(session, reflow, released) {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
//#endregion
|
|
68
67
|
export { catchGliding, landReleased, releasedPoses, stepGlide };
|
|
69
68
|
//# sourceMappingURL=glide.js.map
|
|
@@ -2,7 +2,7 @@ import { translatePoseViaDescriptor } from "../../../../core/geometry/poseDescri
|
|
|
2
2
|
import { createTransformOp } from "../../../../core/ops/transform.js";
|
|
3
3
|
import { strategyView } from "../../../../core/scene/strategyView.js";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// src/interactions/actions/move/layout/view.ts
|
|
6
6
|
/** `pose`'s box as `g` measures it, and nothing else of it. */
|
|
7
7
|
function boxOf(g, pose) {
|
|
8
8
|
const b = g.getBounds(pose);
|
|
@@ -50,6 +50,5 @@ function opInWorld(view, op) {
|
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
//#endregion
|
|
54
53
|
export { boxOf, containerView, draggedInView, opInWorld, pointInView };
|
|
55
54
|
//# sourceMappingURL=view.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { composeWorldPose } from "../../../core/scene/composeFrame.js";
|
|
2
1
|
import { poseDescriptorForNode } from "../../../core/geometry/poseDescriptor.js";
|
|
2
|
+
import { composeWorldPose } from "../../../core/scene/composeFrame.js";
|
|
3
3
|
import { sceneViewPoseAdapter } from "../../../core/scene/scenePoseAdapter.js";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// src/interactions/actions/move/refusal.ts
|
|
6
6
|
/** What a move draws over a refusal: the container's outline, refused, and the reason at the pointer. */
|
|
7
7
|
function refusalOverlays(refusal, pointer) {
|
|
8
8
|
const { x, y, width, height } = refusal.bounds;
|
|
@@ -47,6 +47,5 @@ function worldBoundsOf(session, id) {
|
|
|
47
47
|
return poseDescriptorForNode(session.projection, node).getBounds(pose);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
//#endregion
|
|
51
50
|
export { refusalOverlays, worldBoundsOf };
|
|
52
51
|
//# sourceMappingURL=refusal.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { gestureReaders } from "../../gestures/shared/screenTolerance.js";
|
|
1
2
|
import { childVerdict } from "../admitsChild.js";
|
|
2
|
-
import { nodeDescriptors, poseDescriptorOf } from "../poseDescriptorDep.js";
|
|
3
|
-
import { transformFinisher } from "../transformFinish.js";
|
|
4
3
|
import { commitGestureOps, readGestureLifecycle } from "../gestureLifecycle.js";
|
|
5
|
-
import {
|
|
4
|
+
import { transformFinisher } from "../transformFinish.js";
|
|
5
|
+
import { nodeDescriptors, poseDescriptorOf } from "../poseDescriptorDep.js";
|
|
6
6
|
import { moveSources } from "../selectionSubtree.js";
|
|
7
7
|
import { layoutDrop } from "./behaviors/layoutDrop.js";
|
|
8
8
|
import { reparentOnDrop } from "./behaviors/reparentOnDrop.js";
|
|
@@ -11,7 +11,7 @@ import { moveGestureAdapter } from "./gestureAdapter.js";
|
|
|
11
11
|
import { lazySnapSession } from "../../../domains/snap/lazySession.js";
|
|
12
12
|
import { isPathEditPart, resolveParams } from "@weasel-js/routing";
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
// src/interactions/actions/move/session.ts
|
|
15
15
|
function verdictOf(canDropInto, ids, scene) {
|
|
16
16
|
const roots = ids;
|
|
17
17
|
return (parent) => childVerdict(scene, parent, roots, canDropInto);
|
|
@@ -99,6 +99,5 @@ function beginMove(ctx, opts, frame) {
|
|
|
99
99
|
};
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
//#endregion
|
|
103
102
|
export { beginMove };
|
|
104
103
|
//# sourceMappingURL=session.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { localDelta, storedLeadFor } from "./delta.js";
|
|
2
1
|
import { translateNodeOps } from "../moveNodes.js";
|
|
2
|
+
import { localDelta, storedLeadFor } from "./delta.js";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// src/interactions/actions/move/translate.ts
|
|
5
5
|
/** The default translate commit: one transform op per id, plus the data-held
|
|
6
6
|
* geometry op when the `geometryProjection` seam is wired. */
|
|
7
7
|
function translateOps(session, ids, delta) {
|
|
@@ -48,6 +48,5 @@ function unreleasedIds(session, released) {
|
|
|
48
48
|
return out;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
//#endregion
|
|
52
51
|
export { rootTranslateOps, translateOps, unreleasedIds };
|
|
53
52
|
//# sourceMappingURL=translate.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { leadUnder, translatePoseViaDescriptor } from "../../core/geometry/poseDescriptor.js";
|
|
2
|
-
import { scenePoseFrame } from "./poseFrame.js";
|
|
3
|
-
import { nodeDescriptors, poseDescriptorOf } from "./poseDescriptorDep.js";
|
|
4
|
-
import { commitTransformOps } from "./transformFinish.js";
|
|
5
2
|
import { createTransformOp } from "../../core/ops/transform.js";
|
|
6
|
-
import { moveSources, storedDelta, translateTargets } from "./selectionSubtree.js";
|
|
7
3
|
import { geometryDataOp } from "./geometryProjection.js";
|
|
4
|
+
import { nodeDescriptors, poseDescriptorOf } from "./poseDescriptorDep.js";
|
|
5
|
+
import { scenePoseFrame } from "./poseFrame.js";
|
|
6
|
+
import { moveSources, storedDelta, translateTargets } from "./selectionSubtree.js";
|
|
7
|
+
import { commitTransformOps } from "./transformFinish.js";
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
// src/interactions/actions/moveNodes.ts
|
|
10
10
|
/** The deps {@link moveNodes} reads; an action calling it declares these. */
|
|
11
11
|
var MOVE_NODES_REQUIRES = [
|
|
12
12
|
"scene",
|
|
@@ -98,6 +98,5 @@ function moveNodes(deps, ids, delta, label = "Move") {
|
|
|
98
98
|
return ops.length > 0 && commitTransformOps(deps, ops, label);
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
//#endregion
|
|
102
101
|
export { MOVE_NODES_REQUIRES, moveNodes, moveNodesOps, translateNodeOps };
|
|
103
102
|
//# sourceMappingURL=moveNodes.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// src/interactions/actions/notices.ts
|
|
2
|
+
/** Warn the user through `notices`, or under `tag` on the console without one. */
|
|
3
|
+
function warnUser(notices, tag, title, opts = {}) {
|
|
4
|
+
if (notices) notices.warn(title, opts);
|
|
5
|
+
else console.warn(`[${tag}] ${title}${opts.description ? ` — ${opts.description}` : ""}`);
|
|
6
|
+
}
|
|
7
|
+
/** Warn that text in `error`'s face could not be turned into outlines. */
|
|
8
|
+
function warnTextOutlines(notices, tag, error) {
|
|
9
|
+
warnUser(notices, tag, `Text in "${error.family}" can't be converted to outlines`, {
|
|
10
|
+
id: "text-outlines",
|
|
11
|
+
description: error.message
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { warnTextOutlines, warnUser };
|
|
16
|
+
//# sourceMappingURL=notices.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notices.js","names":[],"sources":["../../../src/interactions/actions/notices.ts"],"sourcesContent":["/**\n * How an action tells the user something went wrong: the `notices` dep a host\n * publishes, shown however it shows such things (draw raises a toast). Without\n * one the message goes to the console.\n */\nimport type { TextOutlinesError } from '@weasel-js/text';\n\n/** What a notice says beyond its title. */\nexport interface NoticeOptions {\n /** One notice per id: a later one with the same id replaces it. */\n id?: string;\n description?: string;\n}\n\n/** The host's notice surface, read by actions whose result the user must hear about. */\nexport interface NoticesDep {\n warn(title: string, opts?: NoticeOptions): void;\n}\n\n/** Warn the user through `notices`, or under `tag` on the console without one. */\nexport function warnUser(notices: NoticesDep | undefined, tag: string, title: string, opts: NoticeOptions = {}): void {\n if (notices) notices.warn(title, opts);\n else console.warn(`[${tag}] ${title}${opts.description ? ` — ${opts.description}` : ''}`);\n}\n\n/** Warn that text in `error`'s face could not be turned into outlines. */\nexport function warnTextOutlines(notices: NoticesDep | undefined, tag: string, error: TextOutlinesError): void {\n warnUser(notices, tag, `Text in \"${error.family}\" can't be converted to outlines`, {\n id: 'text-outlines', description: error.message,\n });\n}\n"],"mappings":";;AAoBA,SAAgB,SAAS,SAAiC,KAAa,OAAe,OAAsB,CAAC,GAAS;CACpH,IAAI,SAAS,QAAQ,KAAK,OAAO,IAAI;MAChC,QAAQ,KAAK,IAAI,IAAI,IAAI,QAAQ,KAAK,cAAc,MAAM,KAAK,gBAAgB,IAAI;AAC1F;;AAGA,SAAgB,iBAAiB,SAAiC,KAAa,OAAgC;CAC7G,SAAS,SAAS,KAAK,YAAY,MAAM,OAAO,mCAAmC;EACjF,IAAI;EAAiB,aAAa,MAAM;CAC1C,CAAC;AACH"}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { replaceWithPaths } from "./replaceWithPaths.js";
|
|
2
2
|
import { TextOutlinesError, textToPathsByPaint } from "@weasel-js/text";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// src/interactions/actions/outlines/createOutlines.ts
|
|
5
5
|
/**
|
|
6
|
-
* Convert every text node
|
|
7
|
-
* "Create Outlines". Other
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Convert every text node among `ids` — the selection, when not given — to
|
|
7
|
+
* outlines, as one batch labeled "Create Outlines". Other nodes are left
|
|
8
|
+
* alone, and the selection keeps them; a selected text node's replacement
|
|
9
|
+
* takes its place there. All or nothing: if any text node's face cannot
|
|
10
|
+
* supply outlines the scene is untouched and the error comes back in the
|
|
11
|
+
* result.
|
|
10
12
|
*/
|
|
11
|
-
function applyCreateOutlines(adapter) {
|
|
13
|
+
function applyCreateOutlines(adapter, ids) {
|
|
12
14
|
const sel = [...adapter.getSelection()];
|
|
13
15
|
const converted = [];
|
|
14
16
|
try {
|
|
15
|
-
for (const id of sel) {
|
|
17
|
+
for (const id of ids ?? sel) {
|
|
16
18
|
const text = adapter.getTextSource(id);
|
|
17
19
|
if (!text) continue;
|
|
18
20
|
const paths = textToPathsByPaint(text.data, text.pose);
|
|
@@ -40,6 +42,5 @@ function applyCreateOutlines(adapter) {
|
|
|
40
42
|
};
|
|
41
43
|
}
|
|
42
44
|
|
|
43
|
-
//#endregion
|
|
44
45
|
export { applyCreateOutlines };
|
|
45
46
|
//# sourceMappingURL=createOutlines.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOutlines.js","names":[],"sources":["../../../../src/interactions/actions/outlines/createOutlines.ts"],"sourcesContent":["/**\n * Create Outlines: replace each selected text node with path nodes carrying\n * its glyph outlines, giving up editability for geometry — the destructive\n * conversion every vector editor has. One path per paint the text wears; one\n * undoable batch; the replacement takes the text node's slot, so stacking\n * order is unchanged.\n */\nimport type { Affine, Path, Rect } from '@weasel-js/geom';\nimport type { PathPaint } from 'canvas/nodeShapes/nodePaint';\nimport type { Op } from 'core/ops/types';\nimport type { NodeId } from 'core/scene/types';\nimport { textToPathsByPaint, TextOutlinesError, type TextNodeSource } from '@weasel-js/text';\nimport { replaceWithPaths, type PaintedPath } from './replaceWithPaths';\n\n/** What a path minted by an outline action must carry — see\n * {@link CreateOutlinesAdapter.createPathNode}. */\nexport interface OutlinePathSpec extends PathPaint {\n /** The parent the path goes under: the source's own, or the container\n * minted to hold a source's several paths. */\n parent: string | null;\n}\n\n/** What `applyCreateOutlines` and `applyOutlineStroke` read and write through. */\nexport interface CreateOutlinesAdapter {\n getSelection(): readonly NodeId[] | readonly string[];\n /** The text node behind `id`, or `undefined` for anything else. */\n getTextSource(id: NodeId): TextNodeSource | undefined;\n /**\n * Optional: the world-space path of the path node behind `id`, and the\n * paint it wears. Outline Stroke reads both, and passes over a node that\n * lacks either.\n */\n getWorldPath?(id: NodeId): Path | undefined;\n getPaint?(id: NodeId): PathPaint | undefined;\n /**\n * Optional: the frame the node behind `id` draws its stroke in, as the\n * matrix taking that frame to world (`poseFrameOf`); null or absent for a\n * node drawn straight. Outline Stroke skews and stretches a world-width\n * stroke with it. Without it every stroke is outlined in world.\n */\n getStrokeFrame?(id: NodeId): Affine | null | undefined;\n /**\n * Mint one path node of node `sourceId`'s outlines. `path` is in world\n * space. The node must wear `spec`'s fill and stroke — a text whose runs\n * differ in paint gets one path per paint, and a filled node whose stroke\n * is outlined gets one for the fill and one for the stroke — and sit under\n * `spec.parent`. The kit places it; only the consumer knows its data shape,\n * so anything else of the source's `data` worth keeping is the adapter's to\n * copy: onto this path when it stands alone in the source's slot, onto the\n * container when `createContainerNode` minted one.\n */\n createPathNode(path: Path, sourceId: NodeId, spec: OutlinePathSpec): { id: string };\n /**\n * Mint the container that holds one source's several paths, under `parent`.\n * `bounds` is the world envelope of the paths. The kit puts the container in\n * the source's slot and the paths inside it, back to front. Without this,\n * the paths are laid flat in that slot instead.\n */\n createContainerNode?(sourceId: NodeId, spec: { parent: string | null; bounds: Rect }): { id: string };\n /** Full node for `id`, so undo restores the text node whole. */\n getNode(id: string): { id: string } | undefined | null;\n /** The tree: each path is inserted at its source node's index among its\n * parent's children. */\n getParent(id: string): string | null;\n getChildren(parentId: string | null): string[];\n applyOps?(ops: Op[], label?: string): void;\n setSelection?(ids: NodeId[]): void;\n insertNode?(node: { id: string }, index?: number): void;\n removeNode?(id: string): void;\n}\n\n/** Outcome of {@link applyCreateOutlines}. */\nexport type CreateOutlinesResult =\n /** `resultIds` are what replaced the text nodes at their level — a path,\n * a container, or a run of flat paths each — which is also what is now\n * selected in the text nodes' place. */\n | { kind: 'applied'; resultIds: string[] }\n /** Nothing selected is text with ink. */\n | { kind: 'noop'; reason: 'no-text' }\n /** Some selected text has no outline geometry; nothing was changed. */\n | { kind: 'failed'; reason: 'text-outlines'; error: TextOutlinesError };\n\n/**\n * Convert every text node
|
|
1
|
+
{"version":3,"file":"createOutlines.js","names":[],"sources":["../../../../src/interactions/actions/outlines/createOutlines.ts"],"sourcesContent":["/**\n * Create Outlines: replace each selected text node with path nodes carrying\n * its glyph outlines, giving up editability for geometry — the destructive\n * conversion every vector editor has. One path per paint the text wears; one\n * undoable batch; the replacement takes the text node's slot, so stacking\n * order is unchanged.\n */\nimport type { Affine, Path, Rect } from '@weasel-js/geom';\nimport type { PathPaint } from 'canvas/nodeShapes/nodePaint';\nimport type { Op } from 'core/ops/types';\nimport type { NodeId } from 'core/scene/types';\nimport { textToPathsByPaint, TextOutlinesError, type TextNodeSource } from '@weasel-js/text';\nimport { replaceWithPaths, type PaintedPath } from './replaceWithPaths';\n\n/** What a path minted by an outline action must carry — see\n * {@link CreateOutlinesAdapter.createPathNode}. */\nexport interface OutlinePathSpec extends PathPaint {\n /** The parent the path goes under: the source's own, or the container\n * minted to hold a source's several paths. */\n parent: string | null;\n}\n\n/** What `applyCreateOutlines` and `applyOutlineStroke` read and write through. */\nexport interface CreateOutlinesAdapter {\n getSelection(): readonly NodeId[] | readonly string[];\n /** The text node behind `id`, or `undefined` for anything else. */\n getTextSource(id: NodeId): TextNodeSource | undefined;\n /**\n * Optional: the world-space path of the path node behind `id`, and the\n * paint it wears. Outline Stroke reads both, and passes over a node that\n * lacks either.\n */\n getWorldPath?(id: NodeId): Path | undefined;\n getPaint?(id: NodeId): PathPaint | undefined;\n /**\n * Optional: the frame the node behind `id` draws its stroke in, as the\n * matrix taking that frame to world (`poseFrameOf`); null or absent for a\n * node drawn straight. Outline Stroke skews and stretches a world-width\n * stroke with it. Without it every stroke is outlined in world.\n */\n getStrokeFrame?(id: NodeId): Affine | null | undefined;\n /**\n * Mint one path node of node `sourceId`'s outlines. `path` is in world\n * space. The node must wear `spec`'s fill and stroke — a text whose runs\n * differ in paint gets one path per paint, and a filled node whose stroke\n * is outlined gets one for the fill and one for the stroke — and sit under\n * `spec.parent`. The kit places it; only the consumer knows its data shape,\n * so anything else of the source's `data` worth keeping is the adapter's to\n * copy: onto this path when it stands alone in the source's slot, onto the\n * container when `createContainerNode` minted one.\n */\n createPathNode(path: Path, sourceId: NodeId, spec: OutlinePathSpec): { id: string };\n /**\n * Mint the container that holds one source's several paths, under `parent`.\n * `bounds` is the world envelope of the paths. The kit puts the container in\n * the source's slot and the paths inside it, back to front. Without this,\n * the paths are laid flat in that slot instead.\n */\n createContainerNode?(sourceId: NodeId, spec: { parent: string | null; bounds: Rect }): { id: string };\n /** Full node for `id`, so undo restores the text node whole. */\n getNode(id: string): { id: string } | undefined | null;\n /** The tree: each path is inserted at its source node's index among its\n * parent's children. */\n getParent(id: string): string | null;\n getChildren(parentId: string | null): string[];\n applyOps?(ops: Op[], label?: string): void;\n setSelection?(ids: NodeId[]): void;\n insertNode?(node: { id: string }, index?: number): void;\n removeNode?(id: string): void;\n}\n\n/** Outcome of {@link applyCreateOutlines}. */\nexport type CreateOutlinesResult =\n /** `resultIds` are what replaced the text nodes at their level — a path,\n * a container, or a run of flat paths each — which is also what is now\n * selected in the text nodes' place. */\n | { kind: 'applied'; resultIds: string[] }\n /** Nothing selected is text with ink. */\n | { kind: 'noop'; reason: 'no-text' }\n /** Some selected text has no outline geometry; nothing was changed. */\n | { kind: 'failed'; reason: 'text-outlines'; error: TextOutlinesError };\n\n/**\n * Convert every text node among `ids` — the selection, when not given — to\n * outlines, as one batch labeled \"Create Outlines\". Other nodes are left\n * alone, and the selection keeps them; a selected text node's replacement\n * takes its place there. All or nothing: if any text node's face cannot\n * supply outlines the scene is untouched and the error comes back in the\n * result.\n */\nexport function applyCreateOutlines(adapter: CreateOutlinesAdapter, ids?: readonly NodeId[]): CreateOutlinesResult {\n const sel = [...adapter.getSelection()] as NodeId[];\n const converted: { id: NodeId; paths: PaintedPath[] }[] = [];\n try {\n for (const id of ids ?? sel) {\n const text = adapter.getTextSource(id);\n if (!text) continue;\n const paths = textToPathsByPaint(text.data, text.pose);\n if (paths.length > 0) converted.push({ id, paths });\n }\n } catch (err) {\n if (err instanceof TextOutlinesError) return { kind: 'failed', reason: 'text-outlines', error: err };\n throw err;\n }\n if (converted.length === 0) return { kind: 'noop', reason: 'no-text' };\n\n const replaced = replaceWithPaths(adapter, sel, converted, 'Create Outlines');\n return { kind: 'applied', resultIds: converted.flatMap((c) => replaced.get(c.id)!) };\n}\n"],"mappings":";;;;;;;;;;;;AA0FA,SAAgB,oBAAoB,SAAgC,KAA+C;CACjH,MAAM,MAAM,CAAC,GAAG,QAAQ,aAAa,CAAC;CACtC,MAAM,YAAoD,CAAC;CAC3D,IAAI;EACF,KAAK,MAAM,MAAM,OAAO,KAAK;GAC3B,MAAM,OAAO,QAAQ,cAAc,EAAE;GACrC,IAAI,CAAC,MAAM;GACX,MAAM,QAAQ,mBAAmB,KAAK,MAAM,KAAK,IAAI;GACrD,IAAI,MAAM,SAAS,GAAG,UAAU,KAAK;IAAE;IAAI;GAAM,CAAC;EACpD;CACF,SAAS,KAAK;EACZ,IAAI,eAAe,mBAAmB,OAAO;GAAE,MAAM;GAAU,QAAQ;GAAiB,OAAO;EAAI;EACnG,MAAM;CACR;CACA,IAAI,UAAU,WAAW,GAAG,OAAO;EAAE,MAAM;EAAQ,QAAQ;CAAU;CAErE,MAAM,WAAW,iBAAiB,SAAS,KAAK,WAAW,iBAAiB;CAC5E,OAAO;EAAE,MAAM;EAAW,WAAW,UAAU,SAAS,MAAM,SAAS,IAAI,EAAE,EAAE,CAAE;CAAE;AACrF"}
|