@weasel-js/core 1.10.1 → 1.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1014 -0
- package/README.md +16 -15
- package/dist/WeaselProvider.js +25 -9
- package/dist/WeaselProvider.js.map +1 -1
- package/dist/affordances/composeAffordanceLayer.js +217 -140
- package/dist/affordances/composeAffordanceLayer.js.map +1 -1
- package/dist/affordances/cornerResize.js +92 -50
- package/dist/affordances/cornerResize.js.map +1 -1
- package/dist/affordances/hitAffordanceRegions.js +147 -84
- package/dist/affordances/hitAffordanceRegions.js.map +1 -1
- package/dist/affordances/pathAnchors.js +140 -65
- package/dist/affordances/pathAnchors.js.map +1 -1
- package/dist/affordances/rotateCursor.js +10 -4
- package/dist/affordances/rotateCursor.js.map +1 -1
- package/dist/affordances/rotationHandle.js +83 -60
- package/dist/affordances/rotationHandle.js.map +1 -1
- package/dist/animation/behaviors/coast.js +20 -14
- package/dist/animation/behaviors/coast.js.map +1 -1
- package/dist/animation/behaviors/coastByWrite.js +98 -70
- package/dist/animation/behaviors/coastByWrite.js.map +1 -1
- package/dist/animation/behaviors/coastOnTargets.js +115 -67
- package/dist/animation/behaviors/coastOnTargets.js.map +1 -1
- package/dist/animation/behaviors/momentum.js +88 -53
- package/dist/animation/behaviors/momentum.js.map +1 -1
- package/dist/animation/clipTargets.js +14 -7
- package/dist/animation/clipTargets.js.map +1 -1
- package/dist/animation/departures.js +116 -0
- package/dist/animation/departures.js.map +1 -0
- package/dist/animation/index.js +18 -15
- package/dist/animation/poseHelpers.js +147 -107
- package/dist/animation/poseHelpers.js.map +1 -1
- package/dist/animation/poseTarget.js +158 -85
- package/dist/animation/poseTarget.js.map +1 -1
- package/dist/animation/poseTransition.js +64 -0
- package/dist/animation/poseTransition.js.map +1 -0
- package/dist/animation/reflow.js +208 -120
- package/dist/animation/reflow.js.map +1 -1
- package/dist/animation/rewind.js +76 -45
- package/dist/animation/rewind.js.map +1 -1
- package/dist/animation/rig/bindRig.js +135 -82
- package/dist/animation/rig/bindRig.js.map +1 -1
- package/dist/animation/rig/rigNode.js +120 -75
- package/dist/animation/rig/rigNode.js.map +1 -1
- package/dist/animation/rig/rigSeat.js +61 -41
- package/dist/animation/rig/rigSeat.js.map +1 -1
- package/dist/animation/rig/skinBinding.js +57 -45
- package/dist/animation/rig/skinBinding.js.map +1 -1
- package/dist/animation/rig/useRig.js +44 -30
- package/dist/animation/rig/useRig.js.map +1 -1
- package/dist/animation/wrappers/animateLifecycle.js +51 -35
- package/dist/animation/wrappers/animateLifecycle.js.map +1 -1
- package/dist/animation/wrappers/animateOnSetPose.js +55 -32
- package/dist/animation/wrappers/animateOnSetPose.js.map +1 -1
- package/dist/animation/wrappers/instantPose.js +13 -8
- package/dist/animation/wrappers/instantPose.js.map +1 -1
- package/dist/animation/writtenPoseTarget.js +44 -22
- package/dist/animation/writtenPoseTarget.js.map +1 -1
- package/dist/{autoPoseDescriptor-DHg5KqaJ.d.ts → autoPoseDescriptor-CZ1eXbzY.d.ts} +1 -1
- package/dist/barrel/canvas.js +45 -32
- package/dist/barrel/chrome.js +19 -16
- package/dist/barrel/icons.js +6 -0
- package/dist/barrel/input.js +19 -18
- package/dist/barrel/interactions.js +41 -39
- package/dist/barrel/paint.js +12 -11
- package/dist/barrel/paths.js +39 -13
- package/dist/barrel/renderer.js +25 -14
- package/dist/barrel/routing.js +64 -58
- package/dist/barrel/scene.js +51 -37
- package/dist/barrel/text.js +10 -9
- package/dist/barrel/viewport.js +48 -45
- package/dist/canvas/Canvas.js +191 -306
- package/dist/canvas/Canvas.js.map +1 -1
- package/dist/canvas/CanvasView.js +273 -199
- package/dist/canvas/CanvasView.js.map +1 -1
- package/dist/canvas/CursorCoordsHud.js +103 -64
- package/dist/canvas/CursorCoordsHud.js.map +1 -1
- package/dist/canvas/DrawCanvas.js +68 -41
- package/dist/canvas/DrawCanvas.js.map +1 -1
- package/dist/canvas/LeanSceneCanvas.js +23 -0
- package/dist/canvas/LeanSceneCanvas.js.map +1 -0
- package/dist/canvas/ModalityHud.js +58 -43
- package/dist/canvas/ModalityHud.js.map +1 -1
- package/dist/canvas/NodeShape.js +137 -60
- package/dist/canvas/NodeShape.js.map +1 -1
- package/dist/canvas/PickHud.js +77 -59
- package/dist/canvas/PickHud.js.map +1 -1
- package/dist/canvas/SceneCanvas/ActionsProviderIfRoot.js +9 -6
- package/dist/canvas/SceneCanvas/ActionsProviderIfRoot.js.map +1 -1
- package/dist/canvas/SceneCanvas/CanvasKitProviders.js +25 -0
- package/dist/canvas/SceneCanvas/CanvasKitProviders.js.map +1 -0
- package/dist/canvas/SceneCanvas/DepRegistryProviderIfRoot.js +10 -6
- package/dist/canvas/SceneCanvas/DepRegistryProviderIfRoot.js.map +1 -1
- package/dist/canvas/SceneCanvas/DevHuds.js +47 -32
- package/dist/canvas/SceneCanvas/DevHuds.js.map +1 -1
- package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js +72 -37
- package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js.map +1 -1
- package/dist/canvas/SceneCanvas/SceneCanvasInput.js +124 -0
- package/dist/canvas/SceneCanvas/SceneCanvasInput.js.map +1 -0
- package/dist/canvas/SceneCanvas/brushOverlay.js +36 -0
- package/dist/canvas/SceneCanvas/brushOverlay.js.map +1 -0
- package/dist/canvas/SceneCanvas/builtinToolSets.js +30 -0
- package/dist/canvas/SceneCanvas/builtinToolSets.js.map +1 -0
- package/dist/canvas/SceneCanvas/canvasPassThrough.js +73 -0
- package/dist/canvas/SceneCanvas/canvasPassThrough.js.map +1 -0
- package/dist/canvas/SceneCanvas/contributionFrameHooks.js +54 -32
- package/dist/canvas/SceneCanvas/contributionFrameHooks.js.map +1 -1
- package/dist/canvas/SceneCanvas/coordTrace.js +26 -30
- package/dist/canvas/SceneCanvas/coordTrace.js.map +1 -1
- package/dist/canvas/SceneCanvas/defaultNodeProperties.js +323 -159
- package/dist/canvas/SceneCanvas/defaultNodeProperties.js.map +1 -1
- package/dist/canvas/SceneCanvas/defaultNodeRouting.js +39 -13
- package/dist/canvas/SceneCanvas/defaultNodeRouting.js.map +1 -1
- package/dist/canvas/SceneCanvas/dispatcherGestureBounds.js +83 -47
- package/dist/canvas/SceneCanvas/dispatcherGestureBounds.js.map +1 -1
- package/dist/canvas/SceneCanvas/features.js +123 -106
- package/dist/canvas/SceneCanvas/features.js.map +1 -1
- package/dist/canvas/SceneCanvas/insertPreviewCommands.js +80 -62
- package/dist/canvas/SceneCanvas/insertPreviewCommands.js.map +1 -1
- package/dist/canvas/SceneCanvas/mergeLayers.js +43 -0
- package/dist/canvas/SceneCanvas/mergeLayers.js.map +1 -0
- package/dist/canvas/SceneCanvas/namedPresets.js +56 -0
- package/dist/canvas/SceneCanvas/namedPresets.js.map +1 -0
- package/dist/canvas/SceneCanvas/poseGeometry.js +66 -31
- package/dist/canvas/SceneCanvas/poseGeometry.js.map +1 -1
- package/dist/canvas/SceneCanvas/poseRegistrars.js +18 -8
- package/dist/canvas/SceneCanvas/poseRegistrars.js.map +1 -1
- package/dist/canvas/SceneCanvas/presets/arrange.js +27 -0
- package/dist/canvas/SceneCanvas/presets/arrange.js.map +1 -0
- package/dist/canvas/SceneCanvas/presets/chrome.js +14 -0
- package/dist/canvas/SceneCanvas/presets/chrome.js.map +1 -0
- package/dist/canvas/SceneCanvas/presets/edit.js +59 -0
- package/dist/canvas/SceneCanvas/presets/edit.js.map +1 -0
- package/dist/canvas/SceneCanvas/presets/ingest.js +13 -0
- package/dist/canvas/SceneCanvas/presets/ingest.js.map +1 -0
- package/dist/canvas/SceneCanvas/presets/paths.js +67 -0
- package/dist/canvas/SceneCanvas/presets/paths.js.map +1 -0
- package/dist/canvas/SceneCanvas/presets/select.js +19 -0
- package/dist/canvas/SceneCanvas/presets/select.js.map +1 -0
- package/dist/canvas/SceneCanvas/presets/toolDriven.js +20 -0
- package/dist/canvas/SceneCanvas/presets/toolDriven.js.map +1 -0
- package/dist/canvas/SceneCanvas/presets/transform.js +41 -0
- package/dist/canvas/SceneCanvas/presets/transform.js.map +1 -0
- package/dist/canvas/SceneCanvas/presets/view.js +14 -0
- package/dist/canvas/SceneCanvas/presets/view.js.map +1 -0
- package/dist/canvas/SceneCanvas/props.js +9 -35
- package/dist/canvas/SceneCanvas/props.js.map +1 -1
- package/dist/canvas/SceneCanvas/scenePointQuery.js +43 -35
- package/dist/canvas/SceneCanvas/scenePointQuery.js.map +1 -1
- package/dist/canvas/SceneCanvas/shapeGeneratorProperties.js +22 -15
- package/dist/canvas/SceneCanvas/shapeGeneratorProperties.js.map +1 -1
- package/dist/canvas/SceneCanvas/toolRegistry.js +34 -15
- package/dist/canvas/SceneCanvas/toolRegistry.js.map +1 -1
- package/dist/canvas/SceneCanvas/useActionTunings.js +14 -11
- package/dist/canvas/SceneCanvas/useActionTunings.js.map +1 -1
- package/dist/canvas/SceneCanvas/useActionsPropResolver.js +59 -36
- package/dist/canvas/SceneCanvas/useActionsPropResolver.js.map +1 -1
- package/dist/canvas/SceneCanvas/useBakedScene.js +17 -0
- package/dist/canvas/SceneCanvas/useBakedScene.js.map +1 -0
- package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js +47 -23
- package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js.map +1 -1
- package/dist/canvas/SceneCanvas/useBuiltinTools.js +22 -14
- package/dist/canvas/SceneCanvas/useBuiltinTools.js.map +1 -1
- package/dist/canvas/SceneCanvas/useCanvasCamera.js +53 -38
- package/dist/canvas/SceneCanvas/useCanvasCamera.js.map +1 -1
- package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js +93 -0
- package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js.map +1 -0
- package/dist/canvas/SceneCanvas/useCanvasDispatcher.js +24 -14
- package/dist/canvas/SceneCanvas/useCanvasDispatcher.js.map +1 -1
- package/dist/canvas/SceneCanvas/useCanvasSelection.js +35 -12
- package/dist/canvas/SceneCanvas/useCanvasSelection.js.map +1 -1
- package/dist/canvas/SceneCanvas/useCanvasTools.js +112 -53
- package/dist/canvas/SceneCanvas/useCanvasTools.js.map +1 -1
- package/dist/canvas/SceneCanvas/useChromeAffordances.js +31 -0
- package/dist/canvas/SceneCanvas/useChromeAffordances.js.map +1 -0
- package/dist/canvas/SceneCanvas/useContributionRoles.js +107 -56
- package/dist/canvas/SceneCanvas/useContributionRoles.js.map +1 -1
- package/dist/canvas/SceneCanvas/useDepartureGhostLayer.js +64 -0
- package/dist/canvas/SceneCanvas/useDepartureGhostLayer.js.map +1 -0
- package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js +104 -71
- package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js.map +1 -1
- package/dist/canvas/SceneCanvas/useHeldModifiers.js +21 -14
- package/dist/canvas/SceneCanvas/useHeldModifiers.js.map +1 -1
- package/dist/canvas/SceneCanvas/useNodeAtPoint.js +21 -19
- package/dist/canvas/SceneCanvas/useNodeAtPoint.js.map +1 -1
- package/dist/canvas/SceneCanvas/useNodeKinds.js +28 -19
- package/dist/canvas/SceneCanvas/useNodeKinds.js.map +1 -1
- package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js +91 -59
- package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js +62 -35
- package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js +121 -50
- package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneCanvasPathEdit.js +30 -0
- package/dist/canvas/SceneCanvas/useSceneCanvasPathEdit.js.map +1 -0
- package/dist/canvas/SceneCanvas/useSceneCanvasTools.js +38 -0
- package/dist/canvas/SceneCanvas/useSceneCanvasTools.js.map +1 -0
- package/dist/canvas/SceneCanvas/useSceneChrome.js +99 -44
- package/dist/canvas/SceneCanvas/useSceneChrome.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js +165 -0
- package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js.map +1 -0
- package/dist/canvas/SceneCanvas/useScenePicking.js +68 -0
- package/dist/canvas/SceneCanvas/useScenePicking.js.map +1 -0
- package/dist/canvas/SceneCanvas/useSceneRedrawSources.js +28 -17
- package/dist/canvas/SceneCanvas/useSceneRedrawSources.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneSelectTool.js +160 -80
- package/dist/canvas/SceneCanvas/useSceneSelectTool.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneSlotLayers.js +38 -26
- package/dist/canvas/SceneCanvas/useSceneSlotLayers.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneStandardActions.js +107 -0
- package/dist/canvas/SceneCanvas/useSceneStandardActions.js.map +1 -0
- package/dist/canvas/SceneCanvas/useSelectionOverlayLayer.js +40 -27
- package/dist/canvas/SceneCanvas/useSelectionOverlayLayer.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSurfaceRouting.js +29 -0
- package/dist/canvas/SceneCanvas/useSurfaceRouting.js.map +1 -0
- package/dist/canvas/SceneCanvas/useSurfaceViewInputs.js +44 -0
- package/dist/canvas/SceneCanvas/useSurfaceViewInputs.js.map +1 -0
- package/dist/canvas/SceneCanvas/useToolKeybindings.js +28 -0
- package/dist/canvas/SceneCanvas/useToolKeybindings.js.map +1 -0
- package/dist/canvas/SceneCanvas/useViewportActions.js +52 -28
- package/dist/canvas/SceneCanvas/useViewportActions.js.map +1 -1
- package/dist/canvas/SceneCanvas/worldPointAt.js +10 -4
- package/dist/canvas/SceneCanvas/worldPointAt.js.map +1 -1
- package/dist/canvas/SceneCanvas.js +276 -312
- package/dist/canvas/SceneCanvas.js.map +1 -1
- package/dist/canvas/SceneViewCanvas.js +68 -42
- package/dist/canvas/SceneViewCanvas.js.map +1 -1
- package/dist/canvas/SurfaceCanvas.js +38 -33
- package/dist/canvas/SurfaceCanvas.js.map +1 -1
- package/dist/canvas/accentColor.js +8 -5
- package/dist/canvas/accentColor.js.map +1 -1
- package/dist/canvas/adapterDerivedPath.js +33 -18
- package/dist/canvas/adapterDerivedPath.js.map +1 -1
- package/dist/canvas/adapterPickSource.js +49 -23
- package/dist/canvas/adapterPickSource.js.map +1 -1
- package/dist/canvas/affordanceAt.js +106 -50
- package/dist/canvas/affordanceAt.js.map +1 -1
- package/dist/canvas/buildSceneLayer.js +111 -80
- package/dist/canvas/buildSceneLayer.js.map +1 -1
- package/dist/canvas/buildSceneTree.js +101 -59
- package/dist/canvas/buildSceneTree.js.map +1 -1
- package/dist/canvas/canvasRenderer.js +161 -72
- package/dist/canvas/canvasRenderer.js.map +1 -1
- package/dist/canvas/colorOverrides.js +18 -10
- package/dist/canvas/colorOverrides.js.map +1 -1
- package/dist/canvas/contextAttributes.js +14 -0
- package/dist/canvas/contextAttributes.js.map +1 -0
- package/dist/canvas/copiesAbove.js +24 -14
- package/dist/canvas/copiesAbove.js.map +1 -1
- package/dist/canvas/defaultDrawOne.js +55 -31
- package/dist/canvas/defaultDrawOne.js.map +1 -1
- package/dist/canvas/deps/areaSelect.js +30 -12
- package/dist/canvas/deps/areaSelect.js.map +1 -1
- package/dist/canvas/deps/booleans.js +104 -0
- package/dist/canvas/deps/booleans.js.map +1 -0
- package/dist/canvas/deps/changes.js +17 -9
- package/dist/canvas/deps/changes.js.map +1 -1
- package/dist/canvas/deps/debug.js +12 -5
- package/dist/canvas/deps/debug.js.map +1 -1
- package/dist/canvas/deps/dispatchSources.js +27 -0
- package/dist/canvas/deps/dispatchSources.js.map +1 -0
- package/dist/canvas/deps/dispatcher.js +18 -7
- package/dist/canvas/deps/dispatcher.js.map +1 -1
- package/dist/canvas/deps/editAnchors.js +150 -64
- package/dist/canvas/deps/editAnchors.js.map +1 -1
- package/dist/canvas/deps/geometryProjection.js +13 -7
- package/dist/canvas/deps/geometryProjection.js.map +1 -1
- package/dist/canvas/deps/hitTestArea.js +78 -53
- package/dist/canvas/deps/hitTestArea.js.map +1 -1
- package/dist/canvas/deps/ingestion.js +18 -13
- package/dist/canvas/deps/ingestion.js.map +1 -1
- package/dist/canvas/deps/insert.js +178 -116
- package/dist/canvas/deps/insert.js.map +1 -1
- package/dist/canvas/deps/kitSettings.js +16 -0
- package/dist/canvas/deps/kitSettings.js.map +1 -0
- package/dist/canvas/deps/lassoSelect.js +25 -13
- package/dist/canvas/deps/lassoSelect.js.map +1 -1
- package/dist/canvas/deps/layout.js +32 -20
- package/dist/canvas/deps/layout.js.map +1 -1
- package/dist/canvas/deps/nodeAtPoint.js +28 -14
- package/dist/canvas/deps/nodeAtPoint.js.map +1 -1
- package/dist/canvas/deps/pathEditCommits.js +193 -0
- package/dist/canvas/deps/pathEditCommits.js.map +1 -0
- package/dist/canvas/deps/pathLeaf.js +66 -0
- package/dist/canvas/deps/pathLeaf.js.map +1 -0
- package/dist/canvas/deps/pathLeafDeps.js +13 -0
- package/dist/canvas/deps/pathLeafDeps.js.map +1 -0
- package/dist/canvas/deps/poseDescriptor.js +10 -8
- package/dist/canvas/deps/poseDescriptor.js.map +1 -1
- package/dist/canvas/deps/previewPaths.js +44 -0
- package/dist/canvas/deps/previewPaths.js.map +1 -0
- package/dist/canvas/deps/resizePolicy.js +32 -25
- package/dist/canvas/deps/resizePolicy.js.map +1 -1
- package/dist/canvas/deps/slice.js +73 -87
- package/dist/canvas/deps/slice.js.map +1 -1
- package/dist/canvas/deps/snap.js +61 -7
- package/dist/canvas/deps/snap.js.map +1 -1
- package/dist/canvas/deps/surface.js +30 -0
- package/dist/canvas/deps/surface.js.map +1 -0
- package/dist/canvas/deps/textEdit.js +21 -13
- package/dist/canvas/deps/textEdit.js.map +1 -1
- package/dist/canvas/deps/transformFollowers.js +20 -0
- package/dist/canvas/deps/transformFollowers.js.map +1 -0
- package/dist/canvas/deps/view.js +46 -34
- package/dist/canvas/deps/view.js.map +1 -1
- package/dist/canvas/derivedPath.js +173 -70
- package/dist/canvas/derivedPath.js.map +1 -1
- package/dist/canvas/doubleClickTarget.js +20 -0
- package/dist/canvas/doubleClickTarget.js.map +1 -0
- package/dist/canvas/drawEnvelope.js +26 -17
- package/dist/canvas/drawEnvelope.js.map +1 -1
- package/dist/canvas/drawnBounds.js +142 -0
- package/dist/canvas/drawnBounds.js.map +1 -0
- package/dist/canvas/getNodeAtPoint.js +11 -8
- package/dist/canvas/getNodeAtPoint.js.map +1 -1
- package/dist/canvas/hostAnchor.js +35 -18
- package/dist/canvas/hostAnchor.js.map +1 -1
- package/dist/canvas/hud.module.js +25 -14
- package/dist/canvas/hud.module.js.map +1 -1
- package/dist/canvas/insertPreviewExtent.js +82 -61
- package/dist/canvas/insertPreviewExtent.js.map +1 -1
- package/dist/canvas/kitRequirements.js +154 -115
- package/dist/canvas/kitRequirements.js.map +1 -1
- package/dist/canvas/layerHover.js +28 -0
- package/dist/canvas/layerHover.js.map +1 -0
- package/dist/canvas/layerOrder.js +107 -57
- package/dist/canvas/layerOrder.js.map +1 -1
- package/dist/canvas/layerSlots.js +16 -9
- package/dist/canvas/layerSlots.js.map +1 -1
- package/dist/canvas/mountedCanvases.js +23 -13
- package/dist/canvas/mountedCanvases.js.map +1 -1
- package/dist/canvas/nodeShapes/derivedPainter.js +73 -25
- package/dist/canvas/nodeShapes/derivedPainter.js.map +1 -1
- package/dist/canvas/nodeShapes/imagePainter.js +69 -53
- package/dist/canvas/nodeShapes/imagePainter.js.map +1 -1
- package/dist/canvas/nodeShapes/measurePainter.js +58 -0
- package/dist/canvas/nodeShapes/measurePainter.js.map +1 -0
- package/dist/canvas/nodeShapes/memo.js +16 -5
- package/dist/canvas/nodeShapes/memo.js.map +1 -1
- package/dist/canvas/nodeShapes/nodePaint.js +125 -46
- package/dist/canvas/nodeShapes/nodePaint.js.map +1 -1
- package/dist/canvas/nodeShapes/pathPainter.js +42 -27
- package/dist/canvas/nodeShapes/pathPainter.js.map +1 -1
- package/dist/canvas/nodeShapes/poseBox.js +20 -13
- package/dist/canvas/nodeShapes/poseBox.js.map +1 -1
- package/dist/canvas/nodeShapes/rectFallbackPainter.js +26 -22
- package/dist/canvas/nodeShapes/rectFallbackPainter.js.map +1 -1
- package/dist/canvas/nodeShapes/shapePainter.js +67 -46
- package/dist/canvas/nodeShapes/shapePainter.js.map +1 -1
- package/dist/canvas/nodeShapes/strokedBounds.js +177 -0
- package/dist/canvas/nodeShapes/strokedBounds.js.map +1 -0
- package/dist/canvas/nodeShapes/textPainter.js +170 -37
- package/dist/canvas/nodeShapes/textPainter.js.map +1 -1
- package/dist/canvas/overChildren.js +29 -18
- package/dist/canvas/overChildren.js.map +1 -1
- package/dist/canvas/overlayRoleStrokes.js +32 -3
- package/dist/canvas/overlayRoleStrokes.js.map +1 -1
- package/dist/canvas/paintCull.js +24 -12
- package/dist/canvas/paintCull.js.map +1 -1
- package/dist/canvas/paintedCursorLayer.js +59 -35
- package/dist/canvas/paintedCursorLayer.js.map +1 -1
- package/dist/canvas/pathOverlay.js +83 -0
- package/dist/canvas/pathOverlay.js.map +1 -0
- package/dist/canvas/pickReach.js +34 -17
- package/dist/canvas/pickReach.js.map +1 -1
- package/dist/canvas/pickWalk.js +151 -102
- package/dist/canvas/pickWalk.js.map +1 -1
- package/dist/canvas/planeClips.js +39 -22
- package/dist/canvas/planeClips.js.map +1 -1
- package/dist/canvas/poseCascade.js +51 -27
- package/dist/canvas/poseCascade.js.map +1 -1
- package/dist/canvas/poseRotation.js +24 -14
- package/dist/canvas/poseRotation.js.map +1 -1
- package/dist/canvas/rasterReadback.js +23 -15
- package/dist/canvas/rasterReadback.js.map +1 -1
- package/dist/canvas/rasterToPng.js +21 -15
- package/dist/canvas/rasterToPng.js.map +1 -1
- package/dist/canvas/renderDebugSnapshot.js +37 -19
- package/dist/canvas/renderDebugSnapshot.js.map +1 -1
- package/dist/canvas/renderNeeds.js +33 -18
- package/dist/canvas/renderNeeds.js.map +1 -1
- package/dist/canvas/renderSceneToPixels.js +203 -87
- package/dist/canvas/renderSceneToPixels.js.map +1 -1
- package/dist/canvas/sceneAdapter.js +96 -75
- package/dist/canvas/sceneAdapter.js.map +1 -1
- package/dist/canvas/sceneClipboard.js +141 -92
- package/dist/canvas/sceneClipboard.js.map +1 -1
- package/dist/canvas/sceneLayerPaint.js +56 -27
- package/dist/canvas/sceneLayerPaint.js.map +1 -1
- package/dist/canvas/sceneSlotWiring.js +24 -14
- package/dist/canvas/sceneSlotWiring.js.map +1 -1
- package/dist/canvas/sceneViewRender.js +85 -49
- package/dist/canvas/sceneViewRender.js.map +1 -1
- package/dist/canvas/slopsDebugLayer.js +58 -49
- package/dist/canvas/slopsDebugLayer.js.map +1 -1
- package/dist/canvas/surfaceContribution.js +22 -10
- package/dist/canvas/surfaceContribution.js.map +1 -1
- package/dist/canvas/useCanvasElements.js +31 -0
- package/dist/canvas/useCanvasElements.js.map +1 -0
- package/dist/canvas/useCanvasHandle.js +69 -0
- package/dist/canvas/useCanvasHandle.js.map +1 -0
- package/dist/canvas/useCanvasPaint.js +92 -0
- package/dist/canvas/useCanvasPaint.js.map +1 -0
- package/dist/canvas/useCanvasRenderer.js +45 -23
- package/dist/canvas/useCanvasRenderer.js.map +1 -1
- package/dist/canvas/useCanvasSurface.js +41 -23
- package/dist/canvas/useCanvasSurface.js.map +1 -1
- package/dist/canvas/useCanvasView.js +80 -48
- package/dist/canvas/useCanvasView.js.map +1 -1
- package/dist/canvas/useClientToWorld.js +27 -0
- package/dist/canvas/useClientToWorld.js.map +1 -0
- package/dist/canvas/useExtraLayers.js +45 -0
- package/dist/canvas/useExtraLayers.js.map +1 -0
- package/dist/canvas/useFrameLoop.js +109 -49
- package/dist/canvas/useFrameLoop.js.map +1 -1
- package/dist/canvas/useHitObserver.js +22 -15
- package/dist/canvas/useHitObserver.js.map +1 -1
- package/dist/canvas/useHostAnchor.js +83 -53
- package/dist/canvas/useHostAnchor.js.map +1 -1
- package/dist/canvas/useInFlightBounds.js +52 -0
- package/dist/canvas/useInFlightBounds.js.map +1 -0
- package/dist/canvas/useLateContentRedraw.js +21 -14
- package/dist/canvas/useLateContentRedraw.js.map +1 -1
- package/dist/canvas/useLayerStack.js +72 -0
- package/dist/canvas/useLayerStack.js.map +1 -0
- package/dist/canvas/usePaintedCursor.js +28 -0
- package/dist/canvas/usePaintedCursor.js.map +1 -0
- package/dist/canvas/useRedrawOn.js +24 -14
- package/dist/canvas/useRedrawOn.js.map +1 -1
- package/dist/canvas/useSceneAdapter.js +21 -16
- package/dist/canvas/useSceneAdapter.js.map +1 -1
- package/dist/canvas/useSceneLayerList.js +15 -7
- package/dist/canvas/useSceneLayerList.js.map +1 -1
- package/dist/canvas/useSurfaceInput.js +46 -27
- package/dist/canvas/useSurfaceInput.js.map +1 -1
- package/dist/canvas/useSurfaceSize.js +43 -0
- package/dist/canvas/useSurfaceSize.js.map +1 -0
- package/dist/canvas/useToolCursor.js +30 -21
- package/dist/canvas/useToolCursor.js.map +1 -1
- package/dist/canvas/useViewHelpers.js +110 -61
- package/dist/canvas/useViewHelpers.js.map +1 -1
- package/dist/canvas/useViewLayerGate.js +29 -0
- package/dist/canvas/useViewLayerGate.js.map +1 -0
- package/dist/canvas/useViewNesting.js +104 -0
- package/dist/canvas/useViewNesting.js.map +1 -0
- package/dist/canvas/useViewRegistrySurface.js +44 -0
- package/dist/canvas/useViewRegistrySurface.js.map +1 -0
- package/dist/canvas/viewInputs.js +14 -11
- package/dist/canvas/viewInputs.js.map +1 -1
- package/dist/canvas/viewRegistry.js +140 -42
- package/dist/canvas/viewRegistry.js.map +1 -1
- package/dist/canvas/watchElementMove.js +71 -33
- package/dist/canvas/watchElementMove.js.map +1 -1
- package/dist/canvas/wrapNodeOutput.js +20 -13
- package/dist/canvas/wrapNodeOutput.js.map +1 -1
- package/dist/clipboard.d.ts +9 -4
- package/dist/clipboard.js +4 -3
- package/dist/{clone-C0eADtS0.d.ts → clone-C3e0OTuF.d.ts} +27 -73
- package/dist/clone.d.ts +7 -5
- package/dist/core/adapters/testing/rootsTree.js +17 -0
- package/dist/core/adapters/testing/rootsTree.js.map +1 -0
- package/dist/core/applyOps.js +23 -7
- package/dist/core/applyOps.js.map +1 -1
- package/dist/core/device/index.js +6 -5
- package/dist/core/device/targets.js +29 -8
- package/dist/core/device/targets.js.map +1 -1
- package/dist/core/device/useDeviceProfile.js +86 -52
- package/dist/core/device/useDeviceProfile.js.map +1 -1
- package/dist/core/device/useTargetBasePx.js +23 -0
- package/dist/core/device/useTargetBasePx.js.map +1 -0
- package/dist/core/device/watchDevicePixelRatio.js +27 -10
- package/dist/core/device/watchDevicePixelRatio.js.map +1 -1
- package/dist/core/geometry/autoPoseDescriptor.js +38 -24
- package/dist/core/geometry/autoPoseDescriptor.js.map +1 -1
- package/dist/core/geometry/inkExtents.js +60 -0
- package/dist/core/geometry/inkExtents.js.map +1 -0
- package/dist/core/geometry/pathPoseDescriptor.js +101 -76
- package/dist/core/geometry/pathPoseDescriptor.js.map +1 -1
- package/dist/core/geometry/poseDescriptor.js +199 -136
- package/dist/core/geometry/poseDescriptor.js.map +1 -1
- package/dist/core/geometry/regionHit.js +127 -79
- package/dist/core/geometry/regionHit.js.map +1 -1
- package/dist/core/geometry/targetFrame.js +84 -60
- package/dist/core/geometry/targetFrame.js.map +1 -1
- package/dist/core/geometry/unionBounds.js +103 -48
- package/dist/core/geometry/unionBounds.js.map +1 -1
- package/dist/core/isPlainObject.js +3 -2
- package/dist/core/layers/backgroundFill.js +23 -15
- package/dist/core/layers/backgroundFill.js.map +1 -1
- package/dist/core/layers/children.js +16 -13
- package/dist/core/layers/children.js.map +1 -1
- package/dist/core/layers/gateLayer.js +24 -9
- package/dist/core/layers/gateLayer.js.map +1 -1
- package/dist/core/layers/layerGroup.js +42 -29
- package/dist/core/layers/layerGroup.js.map +1 -1
- package/dist/core/layers/redrawSource.js +15 -0
- package/dist/core/layers/redrawSource.js.map +1 -0
- package/dist/core/layers/render.js +183 -93
- package/dist/core/layers/render.js.map +1 -1
- package/dist/core/layers/retain.js +38 -0
- package/dist/core/layers/retain.js.map +1 -0
- package/dist/core/ops/arrange.js +30 -19
- package/dist/core/ops/arrange.js.map +1 -1
- package/dist/core/ops/create.js +32 -23
- package/dist/core/ops/create.js.map +1 -1
- package/dist/core/ops/createHistory.js +23 -14
- package/dist/core/ops/createHistory.js.map +1 -1
- package/dist/core/ops/delete.js +80 -53
- package/dist/core/ops/delete.js.map +1 -1
- package/dist/core/ops/nodeFlags.js +44 -0
- package/dist/core/ops/nodeFlags.js.map +1 -0
- package/dist/core/ops/registry.js +26 -11
- package/dist/core/ops/registry.js.map +1 -1
- package/dist/core/ops/reorder/algorithms.js +62 -38
- package/dist/core/ops/reorder/algorithms.js.map +1 -1
- package/dist/core/ops/reorder/index.js +124 -84
- package/dist/core/ops/reorder/index.js.map +1 -1
- package/dist/core/ops/reorder/setChildOrder.js +32 -23
- package/dist/core/ops/reorder/setChildOrder.js.map +1 -1
- package/dist/core/ops/reparent.js +63 -37
- package/dist/core/ops/reparent.js.map +1 -1
- package/dist/core/ops/select.js +23 -20
- package/dist/core/ops/select.js.map +1 -1
- package/dist/core/ops/setData.js +23 -21
- package/dist/core/ops/setData.js.map +1 -1
- package/dist/core/ops/setDependsOn.js +37 -0
- package/dist/core/ops/setDependsOn.js.map +1 -0
- package/dist/core/ops/setLayer.js +26 -21
- package/dist/core/ops/setLayer.js.map +1 -1
- package/dist/core/ops/setLayout.js +27 -18
- package/dist/core/ops/setLayout.js.map +1 -1
- package/dist/core/ops/setPath.js +60 -41
- package/dist/core/ops/setPath.js.map +1 -1
- package/dist/core/ops/setText.js +26 -21
- package/dist/core/ops/setText.js.map +1 -1
- package/dist/core/ops/slot.js +36 -22
- package/dist/core/ops/slot.js.map +1 -1
- package/dist/core/ops/transform.js +35 -28
- package/dist/core/ops/transform.js.map +1 -1
- package/dist/core/ops/writtenBy.js +53 -0
- package/dist/core/ops/writtenBy.js.map +1 -0
- package/dist/core/pages/fitViewToPage.js +24 -11
- package/dist/core/pages/fitViewToPage.js.map +1 -1
- package/dist/core/pages/pageEdits.js +164 -0
- package/dist/core/pages/pageEdits.js.map +1 -0
- package/dist/core/pages/pages.js +102 -42
- package/dist/core/pages/pages.js.map +1 -1
- package/dist/core/pages/pagesLayer.js +19 -13
- package/dist/core/pages/pagesLayer.js.map +1 -1
- package/dist/core/paint/meshKind.js +16 -11
- package/dist/core/paint/meshKind.js.map +1 -1
- package/dist/core/paint/meshKindLazy.js +1 -1
- package/dist/core/paint/meshKindLazy.js.map +1 -1
- package/dist/core/paint/paintKindEntry.js +13 -4
- package/dist/core/paint/paintKindEntry.js.map +1 -1
- package/dist/core/paint/paintKinds.js +149 -88
- package/dist/core/paint/paintKinds.js.map +1 -1
- package/dist/core/paint/registerMesh.js +6 -4
- package/dist/core/paint/registerMesh.js.map +1 -1
- package/dist/core/scene/NodeProperties.js +15 -10
- package/dist/core/scene/NodeProperties.js.map +1 -1
- package/dist/core/scene/NodeRouting.js +22 -13
- package/dist/core/scene/NodeRouting.js.map +1 -1
- package/dist/core/scene/annotation.js +28 -0
- package/dist/core/scene/annotation.js.map +1 -0
- package/dist/core/scene/appliedLog.js +31 -23
- package/dist/core/scene/appliedLog.js.map +1 -1
- package/dist/core/scene/arrivalWindow.js +120 -75
- package/dist/core/scene/arrivalWindow.js.map +1 -1
- package/dist/core/scene/arrivals.js +17 -6
- package/dist/core/scene/arrivals.js.map +1 -1
- package/dist/core/scene/boundOps.js +42 -23
- package/dist/core/scene/boundOps.js.map +1 -1
- package/dist/core/scene/carryDescendants.js +51 -0
- package/dist/core/scene/carryDescendants.js.map +1 -0
- package/dist/core/scene/composeFrame.js +51 -21
- package/dist/core/scene/composeFrame.js.map +1 -1
- package/dist/core/scene/composePose.js +114 -62
- package/dist/core/scene/composePose.js.map +1 -1
- package/dist/core/scene/depFrame.js +94 -0
- package/dist/core/scene/depFrame.js.map +1 -0
- package/dist/core/scene/depMemo.js +44 -19
- package/dist/core/scene/depMemo.js.map +1 -1
- package/dist/core/scene/dependents.js +73 -45
- package/dist/core/scene/dependents.js.map +1 -1
- package/dist/core/scene/derivedParts.js +58 -0
- package/dist/core/scene/derivedParts.js.map +1 -0
- package/dist/core/scene/derivedPath.js +52 -22
- package/dist/core/scene/derivedPath.js.map +1 -1
- package/dist/core/scene/docValues.js +57 -0
- package/dist/core/scene/docValues.js.map +1 -0
- package/dist/core/scene/editMode.js +11 -11
- package/dist/core/scene/editMode.js.map +1 -1
- package/dist/core/scene/editPass.js +111 -0
- package/dist/core/scene/editPass.js.map +1 -0
- package/dist/core/scene/effectivePose.js +173 -51
- package/dist/core/scene/effectivePose.js.map +1 -1
- package/dist/core/scene/fieldEdits.js +98 -75
- package/dist/core/scene/fieldEdits.js.map +1 -1
- package/dist/core/scene/historyFacade.js +127 -87
- package/dist/core/scene/historyFacade.js.map +1 -1
- package/dist/core/scene/historyForm.js +7 -3
- package/dist/core/scene/historyForm.js.map +1 -1
- package/dist/core/scene/kitOps.js +203 -131
- package/dist/core/scene/kitOps.js.map +1 -1
- package/dist/core/scene/kitRegistry.js +49 -22
- package/dist/core/scene/kitRegistry.js.map +1 -1
- package/dist/core/scene/layerStack.js +123 -92
- package/dist/core/scene/layerStack.js.map +1 -1
- package/dist/core/scene/layoutPass.js +143 -72
- package/dist/core/scene/layoutPass.js.map +1 -1
- package/dist/core/scene/lockGuard.js +32 -24
- package/dist/core/scene/lockGuard.js.map +1 -1
- package/dist/core/scene/minSize.js +17 -0
- package/dist/core/scene/minSize.js.map +1 -0
- package/dist/core/scene/nestedHit.js +45 -31
- package/dist/core/scene/nestedHit.js.map +1 -1
- package/dist/core/scene/nodeFlags.js +43 -0
- package/dist/core/scene/nodeFlags.js.map +1 -0
- package/dist/core/scene/nodeFnFields.js +58 -41
- package/dist/core/scene/nodeFnFields.js.map +1 -1
- package/dist/core/scene/nodeGates.js +58 -0
- package/dist/core/scene/nodeGates.js.map +1 -0
- package/dist/core/scene/nodeMemo.js +92 -40
- package/dist/core/scene/nodeMemo.js.map +1 -1
- package/dist/core/scene/nodeStore.js +179 -99
- package/dist/core/scene/nodeStore.js.map +1 -1
- package/dist/core/scene/notifier.js +30 -19
- package/dist/core/scene/notifier.js.map +1 -1
- package/dist/core/scene/opTable.js +42 -36
- package/dist/core/scene/opTable.js.map +1 -1
- package/dist/core/scene/outerOps.js +49 -43
- package/dist/core/scene/outerOps.js.map +1 -1
- package/dist/core/scene/pathEffects/blend.js +80 -0
- package/dist/core/scene/pathEffects/blend.js.map +1 -0
- package/dist/core/scene/pathEffects/derive.js +112 -0
- package/dist/core/scene/pathEffects/derive.js.map +1 -0
- package/dist/core/scene/pathEffects/effects.js +40 -0
- package/dist/core/scene/pathEffects/effects.js.map +1 -0
- package/dist/core/scene/poseFeed.js +95 -60
- package/dist/core/scene/poseFeed.js.map +1 -1
- package/dist/core/scene/poseHold.js +33 -24
- package/dist/core/scene/poseHold.js.map +1 -1
- package/dist/core/scene/poseOverrides.js +86 -49
- package/dist/core/scene/poseOverrides.js.map +1 -1
- package/dist/core/scene/poseRemovals.js +58 -0
- package/dist/core/scene/poseRemovals.js.map +1 -0
- package/dist/core/scene/poseSnapshot.js +62 -41
- package/dist/core/scene/poseSnapshot.js.map +1 -1
- package/dist/core/scene/poseWrites.js +151 -0
- package/dist/core/scene/poseWrites.js.map +1 -0
- package/dist/core/scene/reconcileSpecs.js +63 -34
- package/dist/core/scene/reconcileSpecs.js.map +1 -1
- package/dist/core/scene/recorder.js +99 -57
- package/dist/core/scene/recorder.js.map +1 -1
- package/dist/core/scene/renderOrder.js +105 -59
- package/dist/core/scene/renderOrder.js.map +1 -1
- package/dist/core/scene/scene.js +139 -80
- package/dist/core/scene/scene.js.map +1 -1
- package/dist/core/scene/sceneChanges.js +13 -0
- package/dist/core/scene/sceneChanges.js.map +1 -0
- package/dist/core/scene/sceneEdits.js +69 -49
- package/dist/core/scene/sceneEdits.js.map +1 -1
- package/dist/core/scene/sceneMutators.js +45 -36
- package/dist/core/scene/sceneMutators.js.map +1 -1
- package/dist/core/scene/scenePoseAdapter.js +13 -9
- package/dist/core/scene/scenePoseAdapter.js.map +1 -1
- package/dist/core/scene/sceneRecording.js +106 -73
- package/dist/core/scene/sceneRecording.js.map +1 -1
- package/dist/core/scene/sceneSelection.js +26 -16
- package/dist/core/scene/sceneSelection.js.map +1 -1
- package/dist/core/scene/sceneState.js +61 -37
- package/dist/core/scene/sceneState.js.map +1 -1
- package/dist/core/scene/serialization.js +89 -50
- package/dist/core/scene/serialization.js.map +1 -1
- package/dist/core/scene/staleReplay.js +35 -26
- package/dist/core/scene/staleReplay.js.map +1 -1
- package/dist/core/scene/statedFields.js +10 -5
- package/dist/core/scene/statedFields.js.map +1 -1
- package/dist/core/scene/treeEdits.js +129 -98
- package/dist/core/scene/treeEdits.js.map +1 -1
- package/dist/core/scene/treeOrder.js +13 -8
- package/dist/core/scene/treeOrder.js.map +1 -1
- package/dist/core/scene/treeReads.js +25 -16
- package/dist/core/scene/treeReads.js.map +1 -1
- package/dist/core/scene/types.js +4 -3
- package/dist/core/scene/types.js.map +1 -1
- package/dist/core/scene/unionOfChildren.js +20 -10
- package/dist/core/scene/unionOfChildren.js.map +1 -1
- package/dist/core/scene/unitScopes.js +33 -8
- package/dist/core/scene/unitScopes.js.map +1 -1
- package/dist/core/scene/useScene.js +32 -24
- package/dist/core/scene/useScene.js.map +1 -1
- package/dist/core/selection/chromeState.js +41 -17
- package/dist/core/selection/chromeState.js.map +1 -1
- package/dist/core/selection/readOnlySelection.js +39 -24
- package/dist/core/selection/readOnlySelection.js.map +1 -1
- package/dist/core/selection/selectionTarget.js +14 -3
- package/dist/core/selection/selectionTarget.js.map +1 -1
- package/dist/core/selection/usePublishSceneSelection.js +20 -19
- package/dist/core/selection/usePublishSceneSelection.js.map +1 -1
- package/dist/core/selection/useSelection.js +90 -57
- package/dist/core/selection/useSelection.js.map +1 -1
- package/dist/core/shapeKinds.js +57 -28
- package/dist/core/shapeKinds.js.map +1 -1
- package/dist/core/stableStringify.js +5 -4
- package/dist/core/stableStringify.js.map +1 -1
- package/dist/core/stylus/stylus.js +49 -25
- package/dist/core/stylus/stylus.js.map +1 -1
- package/dist/core/stylus/usePointerStylus.js +61 -34
- package/dist/core/stylus/usePointerStylus.js.map +1 -1
- package/dist/core/usePaintKinds.js +21 -11
- package/dist/core/usePaintKinds.js.map +1 -1
- package/dist/core/viewport/clampView.js +31 -15
- package/dist/core/viewport/clampView.js.map +1 -1
- package/dist/core/viewport/clientToWorld.js +15 -4
- package/dist/core/viewport/clientToWorld.js.map +1 -1
- package/dist/core/viewport/createVelocityTracker.js +23 -19
- package/dist/core/viewport/createVelocityTracker.js.map +1 -1
- package/dist/core/viewport/fitToBounds.js +28 -11
- package/dist/core/viewport/fitToBounds.js.map +1 -1
- package/dist/core/viewport/fitViewToBounds.js +45 -19
- package/dist/core/viewport/fitViewToBounds.js.map +1 -1
- package/dist/core/viewport/interpolateView.js +40 -20
- package/dist/core/viewport/interpolateView.js.map +1 -1
- package/dist/core/viewport/parallax.js +89 -56
- package/dist/core/viewport/parallax.js.map +1 -1
- package/dist/core/viewport/sceneNodeClientRect.js +21 -12
- package/dist/core/viewport/sceneNodeClientRect.js.map +1 -1
- package/dist/core/viewport/screenSlop.js +40 -17
- package/dist/core/viewport/screenSlop.js.map +1 -1
- package/dist/core/viewport/useAutoCenter.js +36 -22
- package/dist/core/viewport/useAutoCenter.js.map +1 -1
- package/dist/core/viewport/useCanvasSize.js +43 -22
- package/dist/core/viewport/useCanvasSize.js.map +1 -1
- package/dist/core/viewport/useDecayLoop.js +120 -48
- package/dist/core/viewport/useDecayLoop.js.map +1 -1
- package/dist/core/viewport/useNodeOverlayFrame.js +93 -58
- package/dist/core/viewport/useNodeOverlayFrame.js.map +1 -1
- package/dist/core/viewport/useVelocityTracker.js +9 -6
- package/dist/core/viewport/useVelocityTracker.js.map +1 -1
- package/dist/core/viewport/useViewAnimation.js +143 -84
- package/dist/core/viewport/useViewAnimation.js.map +1 -1
- package/dist/core/viewport/view.js +48 -24
- package/dist/core/viewport/view.js.map +1 -1
- package/dist/core/viewport/viewTransform.js +8 -6
- package/dist/core/viewport/viewTransform.js.map +1 -1
- package/dist/core/viewport/viewportWorldRect.js +15 -7
- package/dist/core/viewport/viewportWorldRect.js.map +1 -1
- package/dist/core/viewport/wheelHandler.js +31 -20
- package/dist/core/viewport/wheelHandler.js.map +1 -1
- package/dist/core/viewport/zoomAt.js +47 -19
- package/dist/core/viewport/zoomAt.js.map +1 -1
- package/dist/core/viewport/zoomBounds.js +33 -17
- package/dist/core/viewport/zoomBounds.js.map +1 -1
- package/dist/cornerHandles-BHuoMs1o.d.ts +169 -0
- package/dist/debug/createDebugOverlayLayer.js +251 -258
- package/dist/debug/createDebugOverlayLayer.js.map +1 -1
- package/dist/debug/createDebugSink.js +69 -47
- package/dist/debug/createDebugSink.js.map +1 -1
- package/dist/debug/defaultTheme.js +20 -6
- package/dist/debug/defaultTheme.js.map +1 -1
- package/dist/debug/features.js +17 -0
- package/dist/debug/features.js.map +1 -0
- package/dist/debug/flag.js +3 -2
- package/dist/debug/frameStats.js +11 -9
- package/dist/debug/frameStats.js.map +1 -1
- package/dist/debug/overlayPanels.js +117 -0
- package/dist/debug/overlayPanels.js.map +1 -0
- package/dist/debug/parseDebugFlags.js +26 -27
- package/dist/debug/parseDebugFlags.js.map +1 -1
- package/dist/debug/useDebugSink.js +52 -33
- package/dist/debug/useDebugSink.js.map +1 -1
- package/dist/depSchema-BpZNOv7q.d.ts +2803 -0
- package/dist/devtools/handlers.js +112 -0
- package/dist/devtools/handlers.js.map +1 -0
- package/dist/devtools/history.js +71 -0
- package/dist/devtools/history.js.map +1 -0
- package/dist/devtools/hook.js +74 -0
- package/dist/devtools/hook.js.map +1 -0
- package/dist/devtools/label.js +25 -0
- package/dist/devtools/label.js.map +1 -0
- package/dist/devtools/notices.js +58 -0
- package/dist/devtools/notices.js.map +1 -0
- package/dist/devtools/protocol.js +7 -0
- package/dist/devtools/protocol.js.map +1 -0
- package/dist/devtools/registry.js +90 -0
- package/dist/devtools/registry.js.map +1 -0
- package/dist/devtools/root.js +80 -0
- package/dist/devtools/root.js.map +1 -0
- package/dist/devtools/serialize.js +86 -0
- package/dist/devtools/serialize.js.map +1 -0
- package/dist/devtools/session.js +111 -0
- package/dist/devtools/session.js.map +1 -0
- package/dist/devtools/transport.js +67 -0
- package/dist/devtools/transport.js.map +1 -0
- package/dist/devtools/useDevtoolsRoot.js +81 -0
- package/dist/devtools/useDevtoolsRoot.js.map +1 -0
- package/dist/devtools-protocol.d.ts +435 -0
- package/dist/devtools-protocol.js +7 -0
- package/dist/devtools.d.ts +8 -0
- package/dist/devtools.js +12 -0
- package/dist/devtools.js.map +1 -0
- package/dist/features/chrome-caps/buildChromeCtx.js +12 -10
- package/dist/features/chrome-caps/buildChromeCtx.js.map +1 -1
- package/dist/features/chrome-caps/conditions.js +103 -25
- package/dist/features/chrome-caps/conditions.js.map +1 -1
- package/dist/features/chrome-caps/defaults.js +18 -10
- package/dist/features/chrome-caps/defaults.js.map +1 -1
- package/dist/features/chrome-caps/index.js +8 -7
- package/dist/features/chrome-caps/resolve.js +28 -16
- package/dist/features/chrome-caps/resolve.js.map +1 -1
- package/dist/features/chrome-caps/useChromeCaps.js +52 -44
- package/dist/features/chrome-caps/useChromeCaps.js.map +1 -1
- package/dist/features/chrome-caps/useHoverTracking.js +58 -26
- package/dist/features/chrome-caps/useHoverTracking.js.map +1 -1
- package/dist/features/ingestion/contentHandlers.js +105 -36
- package/dist/features/ingestion/contentHandlers.js.map +1 -1
- package/dist/features/ingestion/imageHandler.js +49 -29
- package/dist/features/ingestion/imageHandler.js.map +1 -1
- package/dist/features/ingestion/openFilePicker.js +27 -9
- package/dist/features/ingestion/openFilePicker.js.map +1 -1
- package/dist/features/ingestion/placement.js +20 -11
- package/dist/features/ingestion/placement.js.map +1 -1
- package/dist/features/ingestion/registerKitHandlers.js +35 -18
- package/dist/features/ingestion/registerKitHandlers.js.map +1 -1
- package/dist/features/ingestion/svgHandler.js +60 -34
- package/dist/features/ingestion/svgHandler.js.map +1 -1
- package/dist/features/ingestion/textHandler.js +37 -16
- package/dist/features/ingestion/textHandler.js.map +1 -1
- package/dist/features/ingestion/useCanvasIngestion.js +57 -39
- package/dist/features/ingestion/useCanvasIngestion.js.map +1 -1
- package/dist/features/ingestion/weaselJsonHandler.js +38 -28
- package/dist/features/ingestion/weaselJsonHandler.js.map +1 -1
- package/dist/features/longPress/longPressFeedback.js +110 -81
- package/dist/features/longPress/longPressFeedback.js.map +1 -1
- package/dist/features/measure/actionIds.js +22 -0
- package/dist/features/measure/actionIds.js.map +1 -0
- package/dist/features/measure/measureCommands.js +180 -0
- package/dist/features/measure/measureCommands.js.map +1 -0
- package/dist/features/measure/measureContribution.js +57 -0
- package/dist/features/measure/measureContribution.js.map +1 -0
- package/dist/features/measure/measureEdits.js +82 -0
- package/dist/features/measure/measureEdits.js.map +1 -0
- package/dist/features/measure/measureGestures.js +185 -0
- package/dist/features/measure/measureGestures.js.map +1 -0
- package/dist/features/measure/measureHit.js +80 -0
- package/dist/features/measure/measureHit.js.map +1 -0
- package/dist/features/measure/measureLayer.js +86 -0
- package/dist/features/measure/measureLayer.js.map +1 -0
- package/dist/features/measure/measurement.js +79 -0
- package/dist/features/measure/measurement.js.map +1 -0
- package/dist/features/measure/measurements.js +41 -0
- package/dist/features/measure/measurements.js.map +1 -0
- package/dist/features/modes/modeLayers.js +81 -55
- package/dist/features/modes/modeLayers.js.map +1 -1
- package/dist/features/modes/modeTriggers.js +66 -0
- package/dist/features/modes/modeTriggers.js.map +1 -0
- package/dist/features/pathEffects/index.js +35 -0
- package/dist/features/pathEffects/index.js.map +1 -0
- package/dist/features/pathEffects/readSource.js +46 -0
- package/dist/features/pathEffects/readSource.js.map +1 -0
- package/dist/features/paths/anchorData.js +65 -0
- package/dist/features/paths/anchorData.js.map +1 -0
- package/dist/features/paths/anchorMarkers.js +137 -0
- package/dist/features/paths/anchorMarkers.js.map +1 -0
- package/dist/features/paths/editablePath.js +149 -46
- package/dist/features/paths/editablePath.js.map +1 -1
- package/dist/features/paths/index.js +12 -9
- package/dist/features/paths/originProjection.js +16 -9
- package/dist/features/paths/originProjection.js.map +1 -1
- package/dist/features/paths/pathEditExtension.js +26 -0
- package/dist/features/paths/pathEditExtension.js.map +1 -0
- package/dist/features/paths/pathEditState.js +107 -26
- package/dist/features/paths/pathEditState.js.map +1 -1
- package/dist/features/paths/pathEditingOverlayLayer.js +58 -110
- package/dist/features/paths/pathEditingOverlayLayer.js.map +1 -1
- package/dist/features/paths/pathLayer.js +79 -29
- package/dist/features/paths/pathLayer.js.map +1 -1
- package/dist/features/paths/pathRepresentation.js +27 -0
- package/dist/features/paths/pathRepresentation.js.map +1 -0
- package/dist/features/paths/pathSnap/glyphs.js +39 -0
- package/dist/features/paths/pathSnap/glyphs.js.map +1 -0
- package/dist/features/paths/pathSnap/pathSnapSource.js +82 -0
- package/dist/features/paths/pathSnap/pathSnapSource.js.map +1 -0
- package/dist/features/paths/pathSnap/sceneIndex.js +85 -0
- package/dist/features/paths/pathSnap/sceneIndex.js.map +1 -0
- package/dist/features/paths/pathSnap/snapGeometry.js +47 -0
- package/dist/features/paths/pathSnap/snapGeometry.js.map +1 -0
- package/dist/features/paths/penPreviewLayer.js +135 -102
- package/dist/features/paths/penPreviewLayer.js.map +1 -1
- package/dist/features/paths/shapeGenerator.js +112 -60
- package/dist/features/paths/shapeGenerator.js.map +1 -1
- package/dist/features/paths/strokeOutline.js +15 -0
- package/dist/features/paths/strokeOutline.js.map +1 -0
- package/dist/features/paths/useAnchorFields.js +35 -0
- package/dist/features/paths/useAnchorFields.js.map +1 -0
- package/dist/features/paths/usePathEdit.js +58 -28
- package/dist/features/paths/usePathEdit.js.map +1 -1
- package/dist/features/poseRun/usePoseRun.js +110 -43
- package/dist/features/poseRun/usePoseRun.js.map +1 -1
- package/dist/features/selection/handleCommands.js +116 -0
- package/dist/features/selection/handleCommands.js.map +1 -0
- package/dist/features/selection/overlay.js +288 -328
- package/dist/features/selection/overlay.js.map +1 -1
- package/dist/features/selection/selectionPose.js +112 -0
- package/dist/features/selection/selectionPose.js.map +1 -0
- package/dist/features/snap/angle2d.js +158 -0
- package/dist/features/snap/angle2d.js.map +1 -0
- package/dist/features/snap/debugCandidates.js +27 -0
- package/dist/features/snap/debugCandidates.js.map +1 -0
- package/dist/features/snap/gather.js +79 -0
- package/dist/features/snap/gather.js.map +1 -0
- package/dist/features/snap/inputSubspace.js +46 -0
- package/dist/features/snap/inputSubspace.js.map +1 -0
- package/dist/features/snap/lazySession.js +17 -0
- package/dist/features/snap/lazySession.js.map +1 -0
- package/dist/features/snap/marks.js +29 -0
- package/dist/features/snap/marks.js.map +1 -0
- package/dist/features/snap/outcomeStore.js +25 -0
- package/dist/features/snap/outcomeStore.js.map +1 -0
- package/dist/features/snap/pointSnap.js +48 -0
- package/dist/features/snap/pointSnap.js.map +1 -0
- package/dist/features/snap/probes2d.js +99 -0
- package/dist/features/snap/probes2d.js.map +1 -0
- package/dist/features/snap/readoutDraw.js +93 -0
- package/dist/features/snap/readoutDraw.js.map +1 -0
- package/dist/features/snap/readoutLayer.js +49 -0
- package/dist/features/snap/readoutLayer.js.map +1 -0
- package/dist/features/snap/registry.js +27 -0
- package/dist/features/snap/registry.js.map +1 -0
- package/dist/features/snap/resizeBox.js +137 -0
- package/dist/features/snap/resizeBox.js.map +1 -0
- package/dist/features/snap/roles.js +32 -0
- package/dist/features/snap/roles.js.map +1 -0
- package/dist/features/snap/rotationSource.js +47 -0
- package/dist/features/snap/rotationSource.js.map +1 -0
- package/dist/features/snap/sceneReads.js +45 -0
- package/dist/features/snap/sceneReads.js.map +1 -0
- package/dist/features/snap/sceneSession2d.js +81 -0
- package/dist/features/snap/sceneSession2d.js.map +1 -0
- package/dist/features/snap/screen.js +23 -0
- package/dist/features/snap/screen.js.map +1 -0
- package/dist/features/snap/session2d.js +143 -0
- package/dist/features/snap/session2d.js.map +1 -0
- package/dist/features/snap/spanSnap.js +80 -0
- package/dist/features/snap/spanSnap.js.map +1 -0
- package/dist/features/snap/stepAngles.js +15 -0
- package/dist/features/snap/stepAngles.js.map +1 -0
- package/dist/features/text/editingDrawOne.js +32 -0
- package/dist/features/text/editingDrawOne.js.map +1 -0
- package/dist/features/text/index.js +7 -6
- package/dist/features/text/textHitAt.js +51 -0
- package/dist/features/text/textHitAt.js.map +1 -0
- package/dist/features/text/textLayer.js +21 -27
- package/dist/features/text/textLayer.js.map +1 -1
- package/dist/features/text/useSceneTextEdit.js +190 -128
- package/dist/features/text/useSceneTextEdit.js.map +1 -1
- package/dist/features/viewports/viewResolver.js +48 -39
- package/dist/features/viewports/viewResolver.js.map +1 -1
- package/dist/features/viewports/viewportLayer.js +60 -29
- package/dist/features/viewports/viewportLayer.js.map +1 -1
- package/dist/iconRegistry/IconRegistryProvider.js +73 -0
- package/dist/iconRegistry/IconRegistryProvider.js.map +1 -0
- package/dist/iconRegistry/useIconGlyph.js +14 -0
- package/dist/iconRegistry/useIconGlyph.js.map +1 -0
- package/dist/iconRegistry/useIconVariant.js +29 -0
- package/dist/iconRegistry/useIconVariant.js.map +1 -0
- package/dist/icons.d.ts +6 -0
- package/dist/icons.js +3 -0
- package/dist/icons.table.js +13 -0
- package/dist/icons.table.js.map +1 -0
- package/dist/icons.table.json +546 -0
- package/dist/icons2.table.js +9 -0
- package/dist/icons2.table.js.map +1 -0
- package/dist/index.d.ts +4856 -5666
- package/dist/index.js +346 -285
- package/dist/input/keyState.js +118 -54
- package/dist/input/keyState.js.map +1 -1
- package/dist/input/useKeyModifiers.js +13 -7
- package/dist/input/useKeyModifiers.js.map +1 -1
- package/dist/input/useKeyState.js +23 -16
- package/dist/input/useKeyState.js.map +1 -1
- package/dist/interactions/actions/align/action.js +78 -45
- package/dist/interactions/actions/align/action.js.map +1 -1
- package/dist/interactions/actions/align/align.js +86 -48
- package/dist/interactions/actions/align/align.js.map +1 -1
- package/dist/interactions/actions/booleans/action.js +73 -33
- package/dist/interactions/actions/booleans/action.js.map +1 -1
- package/dist/interactions/actions/booleans/booleans.js +77 -70
- package/dist/interactions/actions/booleans/booleans.js.map +1 -1
- package/dist/interactions/actions/booleans/commit.js +49 -0
- package/dist/interactions/actions/booleans/commit.js.map +1 -0
- package/dist/interactions/actions/booleans/custom.js +48 -0
- package/dist/interactions/actions/booleans/custom.js.map +1 -0
- package/dist/interactions/actions/booleans/operands.js +43 -32
- package/dist/interactions/actions/booleans/operands.js.map +1 -1
- package/dist/interactions/actions/booleans/pieces.js +29 -23
- package/dist/interactions/actions/booleans/pieces.js.map +1 -1
- package/dist/interactions/actions/booleans/placement.js +30 -17
- package/dist/interactions/actions/booleans/placement.js.map +1 -1
- package/dist/interactions/actions/booleans/useBooleans.js +30 -17
- package/dist/interactions/actions/booleans/useBooleans.js.map +1 -1
- package/dist/interactions/actions/booleans/useBooleansAdapter.js +8 -5
- package/dist/interactions/actions/booleans/useBooleansAdapter.js.map +1 -1
- package/dist/interactions/actions/clipboard/action.js +81 -40
- package/dist/interactions/actions/clipboard/action.js.map +1 -1
- package/dist/interactions/actions/clipboard/clipboardOps.js +100 -72
- package/dist/interactions/actions/clipboard/clipboardOps.js.map +1 -1
- package/dist/interactions/actions/clipboard/materializePaste.js +38 -19
- package/dist/interactions/actions/clipboard/materializePaste.js.map +1 -1
- package/dist/interactions/actions/clipboard/wireFormat.js +66 -28
- package/dist/interactions/actions/clipboard/wireFormat.js.map +1 -1
- package/dist/interactions/actions/clone/action.js +102 -70
- package/dist/interactions/actions/clone/action.js.map +1 -1
- package/dist/interactions/actions/clone/behaviors.js +55 -38
- package/dist/interactions/actions/clone/behaviors.js.map +1 -1
- package/dist/interactions/actions/defaultCommitAdapter.js +32 -10
- package/dist/interactions/actions/defaultCommitAdapter.js.map +1 -1
- package/dist/interactions/actions/defaults/anchorEditing.js +252 -111
- package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
- package/dist/interactions/actions/defaults/anchorFields.js +54 -0
- package/dist/interactions/actions/defaults/anchorFields.js.map +1 -0
- package/dist/interactions/actions/defaults/anchorHandles.js +31 -27
- package/dist/interactions/actions/defaults/anchorHandles.js.map +1 -1
- package/dist/interactions/actions/defaults/anchorJoin.js +55 -37
- package/dist/interactions/actions/defaults/anchorJoin.js.map +1 -1
- package/dist/interactions/actions/defaults/areaSelect.js +56 -40
- package/dist/interactions/actions/defaults/areaSelect.js.map +1 -1
- package/dist/interactions/actions/defaults/bendSegment.js +67 -31
- package/dist/interactions/actions/defaults/bendSegment.js.map +1 -1
- package/dist/interactions/actions/defaults/cancelGesture.js +12 -5
- package/dist/interactions/actions/defaults/cancelGesture.js.map +1 -1
- package/dist/interactions/actions/defaults/clearSelection.js +22 -7
- package/dist/interactions/actions/defaults/clearSelection.js.map +1 -1
- package/dist/interactions/actions/defaults/contextMenu.js +149 -0
- package/dist/interactions/actions/defaults/contextMenu.js.map +1 -0
- package/dist/interactions/actions/defaults/copySubtree.js +43 -29
- package/dist/interactions/actions/defaults/copySubtree.js.map +1 -1
- package/dist/interactions/actions/defaults/createPaintAction.js +79 -54
- package/dist/interactions/actions/defaults/createPaintAction.js.map +1 -1
- package/dist/interactions/actions/defaults/delete.js +92 -55
- package/dist/interactions/actions/defaults/delete.js.map +1 -1
- package/dist/interactions/actions/defaults/duplicate.js +60 -32
- package/dist/interactions/actions/defaults/duplicate.js.map +1 -1
- package/dist/interactions/actions/defaults/enterPathEdit.js +22 -18
- package/dist/interactions/actions/defaults/enterPathEdit.js.map +1 -1
- package/dist/interactions/actions/defaults/enterTextEdit.js +20 -8
- package/dist/interactions/actions/defaults/enterTextEdit.js.map +1 -1
- package/dist/interactions/actions/defaults/escape.js +16 -7
- package/dist/interactions/actions/defaults/escape.js.map +1 -1
- package/dist/interactions/actions/defaults/exitPathEdit.js +6 -6
- package/dist/interactions/actions/defaults/exitPathEdit.js.map +1 -1
- package/dist/interactions/actions/defaults/group.js +122 -73
- package/dist/interactions/actions/defaults/group.js.map +1 -1
- package/dist/interactions/actions/defaults/ingest.js +58 -39
- package/dist/interactions/actions/defaults/ingest.js.map +1 -1
- package/dist/interactions/actions/defaults/insertPathAnchor.js +43 -22
- package/dist/interactions/actions/defaults/insertPathAnchor.js.map +1 -1
- package/dist/interactions/actions/defaults/nudge.js +57 -55
- package/dist/interactions/actions/defaults/nudge.js.map +1 -1
- package/dist/interactions/actions/defaults/nudgeSteps.js +17 -12
- package/dist/interactions/actions/defaults/nudgeSteps.js.map +1 -1
- package/dist/interactions/actions/defaults/pathEditMarks.js +60 -0
- package/dist/interactions/actions/defaults/pathEditMarks.js.map +1 -0
- package/dist/interactions/actions/defaults/pathEditTools.js +57 -0
- package/dist/interactions/actions/defaults/pathEditTools.js.map +1 -0
- package/dist/interactions/actions/defaults/pinchZoom.js +55 -39
- package/dist/interactions/actions/defaults/pinchZoom.js.map +1 -1
- package/dist/interactions/actions/defaults/reorder.js +71 -40
- package/dist/interactions/actions/defaults/reorder.js.map +1 -1
- package/dist/interactions/actions/defaults/requiresSelection.js +13 -6
- package/dist/interactions/actions/defaults/requiresSelection.js.map +1 -1
- package/dist/interactions/actions/defaults/segmentUnder.js +24 -16
- package/dist/interactions/actions/defaults/segmentUnder.js.map +1 -1
- package/dist/interactions/actions/defaults/selectAll.js +21 -7
- package/dist/interactions/actions/defaults/selectAll.js.map +1 -1
- package/dist/interactions/actions/defaults/setFill.js +37 -21
- package/dist/interactions/actions/defaults/setFill.js.map +1 -1
- package/dist/interactions/actions/defaults/setFillOpacity.js +19 -10
- package/dist/interactions/actions/defaults/setFillOpacity.js.map +1 -1
- package/dist/interactions/actions/defaults/setStroke.js +46 -25
- package/dist/interactions/actions/defaults/setStroke.js.map +1 -1
- package/dist/interactions/actions/defaults/setStrokeOpacity.js +19 -11
- package/dist/interactions/actions/defaults/setStrokeOpacity.js.map +1 -1
- package/dist/interactions/actions/defaults/slice.js +42 -17
- package/dist/interactions/actions/defaults/slice.js.map +1 -1
- package/dist/interactions/actions/defaults/sliceOps.js +63 -42
- package/dist/interactions/actions/defaults/sliceOps.js.map +1 -1
- package/dist/interactions/actions/defaults/toolActivate.js +34 -16
- package/dist/interactions/actions/defaults/toolActivate.js.map +1 -1
- package/dist/interactions/actions/defaults/toolResetToDefault.js +29 -10
- package/dist/interactions/actions/defaults/toolResetToDefault.js.map +1 -1
- package/dist/interactions/actions/defaults/undoRedo.js +26 -20
- package/dist/interactions/actions/defaults/undoRedo.js.map +1 -1
- package/dist/interactions/actions/defaults/viewportDragPan.js +91 -58
- package/dist/interactions/actions/defaults/viewportDragPan.js.map +1 -1
- package/dist/interactions/actions/defaults/viewportWheelPan.js +42 -23
- package/dist/interactions/actions/defaults/viewportWheelPan.js.map +1 -1
- package/dist/interactions/actions/defaults/viewportZoom.js +107 -59
- package/dist/interactions/actions/defaults/viewportZoom.js.map +1 -1
- package/dist/interactions/actions/distribute/action.js +64 -39
- package/dist/interactions/actions/distribute/action.js.map +1 -1
- package/dist/interactions/actions/distribute/distribute.js +53 -34
- package/dist/interactions/actions/distribute/distribute.js.map +1 -1
- package/dist/interactions/actions/distribute/plan.js +40 -22
- package/dist/interactions/actions/distribute/plan.js.map +1 -1
- package/dist/interactions/actions/drawnBoxes.js +32 -0
- package/dist/interactions/actions/drawnBoxes.js.map +1 -0
- package/dist/interactions/actions/edit-anchors/action.js +245 -72
- package/dist/interactions/actions/edit-anchors/action.js.map +1 -1
- package/dist/interactions/actions/edit-anchors/extensionDrags.js +50 -0
- package/dist/interactions/actions/edit-anchors/extensionDrags.js.map +1 -0
- package/dist/interactions/actions/edit-anchors/geometry.js +74 -47
- package/dist/interactions/actions/edit-anchors/geometry.js.map +1 -1
- package/dist/interactions/actions/edit-anchors/handleDrag.js +101 -0
- package/dist/interactions/actions/edit-anchors/handleDrag.js.map +1 -0
- package/dist/interactions/actions/edit-anchors/handles.js +41 -27
- package/dist/interactions/actions/edit-anchors/handles.js.map +1 -1
- package/dist/interactions/actions/edit-anchors/params.js +12 -0
- package/dist/interactions/actions/edit-anchors/params.js.map +1 -0
- package/dist/interactions/actions/edit-anchors/preview.js +93 -18
- package/dist/interactions/actions/edit-anchors/preview.js.map +1 -1
- package/dist/interactions/actions/edit-anchors/symmetry.js +12 -7
- package/dist/interactions/actions/edit-anchors/symmetry.js.map +1 -1
- package/dist/interactions/actions/flip/action.js +121 -61
- package/dist/interactions/actions/flip/action.js.map +1 -1
- package/dist/interactions/actions/flip/helpers.js +69 -36
- package/dist/interactions/actions/flip/helpers.js.map +1 -1
- package/dist/interactions/actions/geometryProjection.js +17 -12
- package/dist/interactions/actions/geometryProjection.js.map +1 -1
- package/dist/interactions/actions/gestureFrames.js +20 -11
- package/dist/interactions/actions/gestureFrames.js.map +1 -1
- package/dist/interactions/actions/gestureLifecycle.js +96 -48
- package/dist/interactions/actions/gestureLifecycle.js.map +1 -1
- package/dist/interactions/actions/hitSelection.js +6 -4
- package/dist/interactions/actions/hitSelection.js.map +1 -1
- package/dist/interactions/actions/insert/action.js +70 -42
- package/dist/interactions/actions/insert/action.js.map +1 -1
- package/dist/interactions/actions/insert/commit.js +44 -22
- package/dist/interactions/actions/insert/commit.js.map +1 -1
- package/dist/interactions/actions/insert/extras.js +60 -38
- package/dist/interactions/actions/insert/extras.js.map +1 -1
- package/dist/interactions/actions/insert/frame.js +58 -39
- package/dist/interactions/actions/insert/frame.js.map +1 -1
- package/dist/interactions/actions/insert/geometry.js +29 -25
- package/dist/interactions/actions/insert/geometry.js.map +1 -1
- package/dist/interactions/actions/insert/parent.js +11 -0
- package/dist/interactions/actions/insert/parent.js.map +1 -0
- package/dist/interactions/actions/insert/placeAction.js +113 -0
- package/dist/interactions/actions/insert/placeAction.js.map +1 -0
- package/dist/interactions/actions/insert/repositionAction.js +26 -11
- package/dist/interactions/actions/insert/repositionAction.js.map +1 -1
- package/dist/interactions/actions/insert/rotateAction.js +19 -8
- package/dist/interactions/actions/insert/rotateAction.js.map +1 -1
- package/dist/interactions/actions/insert/session.js +61 -41
- package/dist/interactions/actions/insert/session.js.map +1 -1
- package/dist/interactions/actions/insert/shape.js +83 -25
- package/dist/interactions/actions/insert/shape.js.map +1 -1
- package/dist/interactions/actions/lasso-select/action.js +160 -100
- package/dist/interactions/actions/lasso-select/action.js.map +1 -1
- package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js +44 -25
- package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js.map +1 -1
- package/dist/interactions/actions/move/action.js +91 -52
- package/dist/interactions/actions/move/action.js.map +1 -1
- package/dist/interactions/actions/move/behaviors/layoutDrop.js +55 -36
- package/dist/interactions/actions/move/behaviors/layoutDrop.js.map +1 -1
- package/dist/interactions/actions/move/behaviors/reparentOnDrop.js +20 -10
- package/dist/interactions/actions/move/behaviors/reparentOnDrop.js.map +1 -1
- package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js +40 -24
- package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js.map +1 -1
- package/dist/interactions/actions/move/behaviors/snapToContainer.js +102 -64
- package/dist/interactions/actions/move/behaviors/snapToContainer.js.map +1 -1
- package/dist/interactions/actions/move/capture.js +103 -78
- package/dist/interactions/actions/move/capture.js.map +1 -1
- package/dist/interactions/actions/move/commit/index.js +41 -34
- package/dist/interactions/actions/move/commit/index.js.map +1 -1
- package/dist/interactions/actions/move/commit/layoutDrop.js +43 -32
- package/dist/interactions/actions/move/commit/layoutDrop.js.map +1 -1
- package/dist/interactions/actions/move/commit/layoutRelease.js +97 -77
- package/dist/interactions/actions/move/commit/layoutRelease.js.map +1 -1
- package/dist/interactions/actions/move/commit/rebase.js +16 -13
- package/dist/interactions/actions/move/commit/rebase.js.map +1 -1
- package/dist/interactions/actions/move/commit/reparent.js +89 -57
- package/dist/interactions/actions/move/commit/reparent.js.map +1 -1
- package/dist/interactions/actions/move/delta.js +58 -36
- package/dist/interactions/actions/move/delta.js.map +1 -1
- package/dist/interactions/actions/move/frame.js +66 -35
- package/dist/interactions/actions/move/frame.js.map +1 -1
- package/dist/interactions/actions/move/gestureAdapter.js +30 -20
- package/dist/interactions/actions/move/gestureAdapter.js.map +1 -1
- package/dist/interactions/actions/move/landedDescendants.js +43 -25
- package/dist/interactions/actions/move/landedDescendants.js.map +1 -1
- package/dist/interactions/actions/move/layout/container.js +93 -72
- package/dist/interactions/actions/move/layout/container.js.map +1 -1
- package/dist/interactions/actions/move/layout/dragged.js +61 -39
- package/dist/interactions/actions/move/layout/dragged.js.map +1 -1
- package/dist/interactions/actions/move/layout/dropPass.js +153 -94
- package/dist/interactions/actions/move/layout/dropPass.js.map +1 -1
- package/dist/interactions/actions/move/layout/exits.js +58 -30
- package/dist/interactions/actions/move/layout/exits.js.map +1 -1
- package/dist/interactions/actions/move/layout/glide.js +55 -34
- package/dist/interactions/actions/move/layout/glide.js.map +1 -1
- package/dist/interactions/actions/move/session.js +96 -56
- package/dist/interactions/actions/move/session.js.map +1 -1
- package/dist/interactions/actions/move/translate.js +37 -51
- package/dist/interactions/actions/move/translate.js.map +1 -1
- package/dist/interactions/actions/moveNodes.js +87 -0
- package/dist/interactions/actions/moveNodes.js.map +1 -0
- package/dist/interactions/actions/outlines/createOutlines.js +28 -20
- package/dist/interactions/actions/outlines/createOutlines.js.map +1 -1
- package/dist/interactions/actions/outlines/createOutlinesAction.js +43 -31
- package/dist/interactions/actions/outlines/createOutlinesAction.js.map +1 -1
- package/dist/interactions/actions/outlines/outlineStroke.js +68 -45
- package/dist/interactions/actions/outlines/outlineStroke.js.map +1 -1
- package/dist/interactions/actions/outlines/outlineStrokeAction.js +24 -19
- package/dist/interactions/actions/outlines/outlineStrokeAction.js.map +1 -1
- package/dist/interactions/actions/outlines/replaceWithPaths.js +57 -42
- package/dist/interactions/actions/outlines/replaceWithPaths.js.map +1 -1
- package/dist/interactions/actions/outlines/strokeRegion.js +37 -22
- package/dist/interactions/actions/outlines/strokeRegion.js.map +1 -1
- package/dist/interactions/actions/outlines/useCreateOutlinesAdapter.js +8 -5
- package/dist/interactions/actions/outlines/useCreateOutlinesAdapter.js.map +1 -1
- package/dist/interactions/actions/pathCommands/cutJoin.js +119 -72
- package/dist/interactions/actions/pathCommands/cutJoin.js.map +1 -1
- package/dist/interactions/actions/pathCommands/livePathEdit.js +74 -40
- package/dist/interactions/actions/pathCommands/livePathEdit.js.map +1 -1
- package/dist/interactions/actions/pathCommands/pathNodes.js +91 -82
- package/dist/interactions/actions/pathCommands/pathNodes.js.map +1 -1
- package/dist/interactions/actions/pathCommands/simplifyOffset.js +52 -28
- package/dist/interactions/actions/pathCommands/simplifyOffset.js.map +1 -1
- package/dist/interactions/actions/pathGestureTags.js +29 -0
- package/dist/interactions/actions/pathGestureTags.js.map +1 -0
- package/dist/interactions/actions/planeInput.js +198 -123
- package/dist/interactions/actions/planeInput.js.map +1 -1
- package/dist/interactions/actions/pointerState.js +12 -7
- package/dist/interactions/actions/pointerState.js.map +1 -1
- package/dist/interactions/actions/poseDescriptorDep.js +24 -14
- package/dist/interactions/actions/poseDescriptorDep.js.map +1 -1
- package/dist/interactions/actions/poseFrame.js +45 -28
- package/dist/interactions/actions/poseFrame.js.map +1 -1
- package/dist/interactions/actions/resize/action.js +103 -63
- package/dist/interactions/actions/resize/action.js.map +1 -1
- package/dist/interactions/actions/resize/aspect.js +44 -0
- package/dist/interactions/actions/resize/aspect.js.map +1 -0
- package/dist/interactions/actions/resize/behaviors/clampMinSize.js +38 -13
- package/dist/interactions/actions/resize/behaviors/clampMinSize.js.map +1 -1
- package/dist/interactions/actions/resize/boxFrame.js +15 -11
- package/dist/interactions/actions/resize/boxFrame.js.map +1 -1
- package/dist/interactions/actions/resize/capture.js +105 -62
- package/dist/interactions/actions/resize/capture.js.map +1 -1
- package/dist/interactions/actions/resize/commit.js +76 -56
- package/dist/interactions/actions/resize/commit.js.map +1 -1
- package/dist/interactions/actions/resize/cornerHandles.js +154 -17
- package/dist/interactions/actions/resize/cornerHandles.js.map +1 -1
- package/dist/interactions/actions/resize/frame.js +133 -66
- package/dist/interactions/actions/resize/frame.js.map +1 -1
- package/dist/interactions/actions/resize/minimum.js +35 -0
- package/dist/interactions/actions/resize/minimum.js.map +1 -0
- package/dist/interactions/actions/resize/replay.js +40 -30
- package/dist/interactions/actions/resize/replay.js.map +1 -1
- package/dist/interactions/actions/resize/ruleBounds.js +8 -5
- package/dist/interactions/actions/resize/ruleBounds.js.map +1 -1
- package/dist/interactions/actions/resize/session.js +97 -50
- package/dist/interactions/actions/resize/session.js.map +1 -1
- package/dist/interactions/actions/resolveOverlays.js +48 -33
- package/dist/interactions/actions/resolveOverlays.js.map +1 -1
- package/dist/interactions/actions/resolvePreviews.js +63 -46
- package/dist/interactions/actions/resolvePreviews.js.map +1 -1
- package/dist/interactions/actions/rotate/action.js +71 -42
- package/dist/interactions/actions/rotate/action.js.map +1 -1
- package/dist/interactions/actions/rotate/commit.js +40 -31
- package/dist/interactions/actions/rotate/commit.js.map +1 -1
- package/dist/interactions/actions/rotate/frame.js +75 -47
- package/dist/interactions/actions/rotate/frame.js.map +1 -1
- package/dist/interactions/actions/rotate/geometry.js +36 -24
- package/dist/interactions/actions/rotate/geometry.js.map +1 -1
- package/dist/interactions/actions/rotate/handle.js +28 -15
- package/dist/interactions/actions/rotate/handle.js.map +1 -1
- package/dist/interactions/actions/rotate/replay.js +22 -18
- package/dist/interactions/actions/rotate/replay.js.map +1 -1
- package/dist/interactions/actions/rotate/session.js +117 -76
- package/dist/interactions/actions/rotate/session.js.map +1 -1
- package/dist/interactions/actions/selectionSubtree.js +135 -53
- package/dist/interactions/actions/selectionSubtree.js.map +1 -1
- package/dist/interactions/actions/spatialReference.js +33 -26
- package/dist/interactions/actions/spatialReference.js.map +1 -1
- package/dist/interactions/actions/testUtils.js +53 -0
- package/dist/interactions/actions/testUtils.js.map +1 -0
- package/dist/interactions/actions/transform-again/action.js +49 -35
- package/dist/interactions/actions/transform-again/action.js.map +1 -1
- package/dist/interactions/actions/transform-again/memory.js +32 -21
- package/dist/interactions/actions/transform-again/memory.js.map +1 -1
- package/dist/interactions/actions/transformFinish.js +106 -0
- package/dist/interactions/actions/transformFinish.js.map +1 -0
- package/dist/interactions/actions/useActionSet.js +83 -0
- package/dist/interactions/actions/useActionSet.js.map +1 -0
- package/dist/interactions/actions/useStandardActions.js +23 -165
- package/dist/interactions/actions/useStandardActions.js.map +1 -1
- package/dist/interactions/gestures/dragGesture/dragGesture.js +109 -68
- package/dist/interactions/gestures/dragGesture/dragGesture.js.map +1 -1
- package/dist/interactions/gestures/dragGesture/dragPointOf.js +17 -10
- package/dist/interactions/gestures/dragGesture/dragPointOf.js.map +1 -1
- package/dist/interactions/gestures/dragRadial/dragRadial.js +129 -93
- package/dist/interactions/gestures/dragRadial/dragRadial.js.map +1 -1
- package/dist/interactions/gestures/dragRect/dragRect.js +155 -111
- package/dist/interactions/gestures/dragRect/dragRect.js.map +1 -1
- package/dist/interactions/gestures/handleDrag/handleDrag.js +52 -30
- package/dist/interactions/gestures/handleDrag/handleDrag.js.map +1 -1
- package/dist/interactions/gestures/pointerDrag/pointerDrag.js +168 -97
- package/dist/interactions/gestures/pointerDrag/pointerDrag.js.map +1 -1
- package/dist/interactions/gestures/shared/originProjection.js +32 -25
- package/dist/interactions/gestures/shared/originProjection.js.map +1 -1
- package/dist/interactions/gestures/shared/screenTolerance.js +26 -17
- package/dist/interactions/gestures/shared/screenTolerance.js.map +1 -1
- package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js +39 -21
- package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js.map +1 -1
- package/dist/kitSettingsSchema.js +76 -0
- package/dist/kitSettingsSchema.js.map +1 -0
- package/dist/{math-CYUjoyyU.d.ts → math-CrJULaZI.d.ts} +5 -6
- package/dist/math.d.ts +4 -5
- package/dist/math.js +7 -6
- package/dist/mesh.js +3 -2
- package/dist/move.d.ts +9 -7
- package/dist/move.js +4 -3
- package/dist/{originProjection-CoNVpITV.d.ts → options-DBxEryYq.d.ts} +4 -27
- package/dist/originProjection-gY0jb4Wb.d.ts +24 -0
- package/dist/patterns-builtin.js +3 -2
- package/dist/{poseDescriptor-Bqk-11Rl.d.ts → poseDescriptor-DN2yfnq_.d.ts} +7 -7
- package/dist/renderer.d.ts +1 -1
- package/dist/renderer.js +3 -2
- package/dist/resize.d.ts +11 -28
- package/dist/resize.js +6 -7
- package/dist/routing.d.ts +1 -1
- package/dist/routing.js +3 -2
- package/dist/style.css +88 -1
- package/dist/test-hook/createTestHook.js +23 -20
- package/dist/test-hook/createTestHook.js.map +1 -1
- package/dist/test-hook/install.js +32 -13
- package/dist/test-hook/install.js.map +1 -1
- package/dist/test-hook/useTestHook.js +23 -16
- package/dist/test-hook/useTestHook.js.map +1 -1
- package/dist/test-seams.d.ts +168 -1
- package/dist/test-seams.js +8 -3
- package/dist/tools/builtin/ellipse/useEllipseTool.js +22 -17
- package/dist/tools/builtin/ellipse/useEllipseTool.js.map +1 -1
- package/dist/tools/builtin/eyedropper/useEyedropperTool.js +44 -28
- package/dist/tools/builtin/eyedropper/useEyedropperTool.js.map +1 -1
- package/dist/tools/builtin/hand/dragPanContribution.js +12 -7
- package/dist/tools/builtin/hand/dragPanContribution.js.map +1 -1
- package/dist/tools/builtin/hand/useHandTool.js +21 -13
- package/dist/tools/builtin/hand/useHandTool.js.map +1 -1
- package/dist/tools/builtin/image/useImageTool.js +28 -19
- package/dist/tools/builtin/image/useImageTool.js.map +1 -1
- package/dist/tools/builtin/lasso/useLassoTool.js +48 -36
- package/dist/tools/builtin/lasso/useLassoTool.js.map +1 -1
- package/dist/tools/builtin/line/useLineTool.js +24 -17
- package/dist/tools/builtin/line/useLineTool.js.map +1 -1
- package/dist/tools/builtin/measure/useMeasureTool.js +84 -0
- package/dist/tools/builtin/measure/useMeasureTool.js.map +1 -0
- package/dist/tools/builtin/pen/penHandle.js +58 -0
- package/dist/tools/builtin/pen/penHandle.js.map +1 -0
- package/dist/tools/builtin/pen/usePenTool.js +461 -303
- package/dist/tools/builtin/pen/usePenTool.js.map +1 -1
- package/dist/tools/builtin/pencil/usePencilTool.js +20 -15
- package/dist/tools/builtin/pencil/usePencilTool.js.map +1 -1
- package/dist/tools/builtin/pickTopMostHit.js +51 -31
- package/dist/tools/builtin/pickTopMostHit.js.map +1 -1
- package/dist/tools/builtin/polygon/usePolygonTool.js +45 -28
- package/dist/tools/builtin/polygon/usePolygonTool.js.map +1 -1
- package/dist/tools/builtin/rect/useRectTool.js +24 -16
- package/dist/tools/builtin/rect/useRectTool.js.map +1 -1
- package/dist/tools/builtin/select/adapterPointQuery.js +47 -30
- package/dist/tools/builtin/select/adapterPointQuery.js.map +1 -1
- package/dist/tools/builtin/select/selectionContributions.js +94 -56
- package/dist/tools/builtin/select/selectionContributions.js.map +1 -1
- package/dist/tools/builtin/select/useSelectTool.js +155 -108
- package/dist/tools/builtin/select/useSelectTool.js.map +1 -1
- package/dist/tools/builtin/shared/insertToolOptions.js +5 -4
- package/dist/tools/builtin/shared/insertToolOptions.js.map +1 -1
- package/dist/tools/builtin/shared/pointerFollower.js +15 -8
- package/dist/tools/builtin/shared/pointerFollower.js.map +1 -1
- package/dist/tools/builtin/slice/useSliceTool.js +148 -101
- package/dist/tools/builtin/slice/useSliceTool.js.map +1 -1
- package/dist/tools/builtin/star/useStarTool.js +48 -31
- package/dist/tools/builtin/star/useStarTool.js.map +1 -1
- package/dist/tools/builtin/sticky/stickyNode.js +49 -0
- package/dist/tools/builtin/sticky/stickyNode.js.map +1 -0
- package/dist/tools/builtin/sticky/useStickyTool.js +86 -0
- package/dist/tools/builtin/sticky/useStickyTool.js.map +1 -0
- package/dist/tools/builtin/text/useTextTool.js +59 -34
- package/dist/tools/builtin/text/useTextTool.js.map +1 -1
- package/dist/tools/index.js +26 -0
- package/dist/tools/overlayBinding.js +7 -5
- package/dist/tools/overlayBinding.js.map +1 -1
- package/dist/tools/useKeybindings.js +62 -46
- package/dist/tools/useKeybindings.js.map +1 -1
- package/dist/{types-DBbbCy0i.d.ts → types-7puAuVD2.d.ts} +5 -264
- package/dist/types-BN9hbdMI.d.ts +184 -0
- package/dist/types-CniVctmk.d.ts +949 -0
- package/dist/types-oFeQ5VjV.d.ts +264 -0
- package/dist/util/color.js +39 -18
- package/dist/util/color.js.map +1 -1
- package/dist/util/paint.js +93 -38
- package/dist/util/paint.js.map +1 -1
- package/dist/version.js +11 -3
- package/dist/version.js.map +1 -1
- package/package.json +46 -24
- package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js +0 -126
- package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js.map +0 -1
- package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js +0 -55
- package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js.map +0 -1
- package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js +0 -16
- package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js.map +0 -1
- package/dist/canvas/SceneCanvas/isDev.js +0 -12
- package/dist/canvas/SceneCanvas/isDev.js.map +0 -1
- package/dist/canvas/SceneCanvas/useViewLayerGate.js +0 -20
- package/dist/canvas/SceneCanvas/useViewLayerGate.js.map +0 -1
- package/dist/cornerHandles-BSKbyuvQ.d.ts +0 -104
- package/dist/icons/ArrowIcon.js +0 -23
- package/dist/icons/ArrowIcon.js.map +0 -1
- package/dist/icons/EllipseIcon.js +0 -21
- package/dist/icons/EllipseIcon.js.map +0 -1
- package/dist/icons/EyedropperIcon.js +0 -49
- package/dist/icons/EyedropperIcon.js.map +0 -1
- package/dist/icons/HandIcon.js +0 -59
- package/dist/icons/HandIcon.js.map +0 -1
- package/dist/icons/ImageIcon.js +0 -34
- package/dist/icons/ImageIcon.js.map +0 -1
- package/dist/icons/LassoIcon.js +0 -22
- package/dist/icons/LassoIcon.js.map +0 -1
- package/dist/icons/LineIcon.js +0 -22
- package/dist/icons/LineIcon.js.map +0 -1
- package/dist/icons/PenIcon.js +0 -36
- package/dist/icons/PenIcon.js.map +0 -1
- package/dist/icons/PencilIcon.js +0 -25
- package/dist/icons/PencilIcon.js.map +0 -1
- package/dist/icons/PolygonIcon.js +0 -19
- package/dist/icons/PolygonIcon.js.map +0 -1
- package/dist/icons/RectIcon.js +0 -37
- package/dist/icons/RectIcon.js.map +0 -1
- package/dist/icons/SelectIcon.js +0 -20
- package/dist/icons/SelectIcon.js.map +0 -1
- package/dist/icons/SliceIcon.js +0 -24
- package/dist/icons/SliceIcon.js.map +0 -1
- package/dist/icons/StarIcon.js +0 -19
- package/dist/icons/StarIcon.js.map +0 -1
- package/dist/icons/TextIcon.js +0 -19
- package/dist/icons/TextIcon.js.map +0 -1
- package/dist/icons/UnknownIcon.js +0 -33
- package/dist/icons/UnknownIcon.js.map +0 -1
- package/dist/icons/_base.js +0 -12
- package/dist/icons/_base.js.map +0 -1
- package/dist/interactions/actions/actionShortcuts.js +0 -32
- package/dist/interactions/actions/actionShortcuts.js.map +0 -1
- package/dist/interactions/actions/defaults/icons/actionGlyphIcons.js +0 -40
- package/dist/interactions/actions/defaults/icons/actionGlyphIcons.js.map +0 -1
- package/dist/interactions/actions/defaults/icons/actionGlyphs.js +0 -10
- package/dist/interactions/actions/defaults/icons/actionGlyphs.js.map +0 -1
- package/dist/interactions/actions/defaults/icons/alignIcons.js +0 -173
- package/dist/interactions/actions/defaults/icons/alignIcons.js.map +0 -1
- package/dist/interactions/actions/defaults/icons/anchorIcons.js +0 -75
- package/dist/interactions/actions/defaults/icons/anchorIcons.js.map +0 -1
- package/dist/interactions/actions/defaults/icons/booleanIcons.js +0 -194
- package/dist/interactions/actions/defaults/icons/booleanIcons.js.map +0 -1
- package/dist/interactions/actions/defaults/icons/distributeIcons.js +0 -63
- package/dist/interactions/actions/defaults/icons/distributeIcons.js.map +0 -1
- package/dist/interactions/actions/defaults/icons/editIcons.js +0 -307
- package/dist/interactions/actions/defaults/icons/editIcons.js.map +0 -1
- package/dist/interactions/actions/defaults/icons/outlineIcons.js +0 -91
- package/dist/interactions/actions/defaults/icons/outlineIcons.js.map +0 -1
- package/dist/interactions/actions/resize/behaviors/index.js +0 -8
- package/dist/interactions/actions/resize/behaviors/index.js.map +0 -1
- package/dist/interactions/actions/resize/behaviors/lockAspect.js +0 -24
- package/dist/interactions/actions/resize/behaviors/lockAspect.js.map +0 -1
- package/dist/interactions/actions/resize/pointSnap.js +0 -111
- package/dist/interactions/actions/resize/pointSnap.js.map +0 -1
- package/dist/interactions/actions/rotate/behaviors/index.js +0 -7
- package/dist/interactions/actions/rotate/behaviors/index.js.map +0 -1
- package/dist/interactions/actions/rotate/behaviors/snapRotation.js +0 -12
- package/dist/interactions/actions/rotate/behaviors/snapRotation.js.map +0 -1
- package/dist/interactions/gestures/shared/snap.js +0 -24
- package/dist/interactions/gestures/shared/snap.js.map +0 -1
- package/dist/test-seams-D0pyV3pR.d.ts +0 -149
- package/dist/tools/builtin/bone/boneActions.js +0 -130
- package/dist/tools/builtin/bone/boneActions.js.map +0 -1
- package/dist/tools/builtin/bone/boneOverlay.js +0 -58
- package/dist/tools/builtin/bone/boneOverlay.js.map +0 -1
- package/dist/tools/builtin/bone/placedRig.js +0 -24
- package/dist/tools/builtin/bone/placedRig.js.map +0 -1
- package/dist/tools/builtin/bone/rigEditState.js +0 -21
- package/dist/tools/builtin/bone/rigEditState.js.map +0 -1
- package/dist/tools/builtin/bone/useBoneTool.js +0 -98
- package/dist/tools/builtin/bone/useBoneTool.js.map +0 -1
- package/dist/tools/builtin/weight/useWeightTool.js +0 -77
- package/dist/tools/builtin/weight/useWeightTool.js.map +0 -1
- package/dist/tools/builtin/weight/weightActions.js +0 -112
- package/dist/tools/builtin/weight/weightActions.js.map +0 -1
- package/dist/tools/builtin/weight/weightOverlay.js +0 -61
- package/dist/tools/builtin/weight/weightOverlay.js.map +0 -1
- package/dist/util/constrainTo45.js +0 -17
- package/dist/util/constrainTo45.js.map +0 -1
|
@@ -1,40 +1,64 @@
|
|
|
1
|
-
import { normalizeZoom as
|
|
2
|
-
import { meanScale
|
|
1
|
+
import { normalizeZoom as normalizeZoom$1, warnInvalidView } from "./zoomBounds.js";
|
|
2
|
+
import { meanScale } from "@weasel-js/geom";
|
|
3
|
+
|
|
3
4
|
//#region src/core/viewport/view.ts
|
|
4
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Bridge `View` into the legacy `ViewTransform` shape. The two use opposite
|
|
7
|
+
* sign conventions for the translation half: `view.x` is camera position;
|
|
8
|
+
* `panX` is canvas translation.
|
|
9
|
+
*/
|
|
10
|
+
function viewToTransform(view) {
|
|
5
11
|
return {
|
|
6
|
-
panX: -
|
|
7
|
-
panY: -
|
|
12
|
+
panX: -view.x * view.scale.x + 0,
|
|
13
|
+
panY: -view.y * view.scale.y + 0,
|
|
8
14
|
zoom: {
|
|
9
|
-
x:
|
|
10
|
-
y:
|
|
15
|
+
x: view.scale.x,
|
|
16
|
+
y: view.scale.y
|
|
11
17
|
}
|
|
12
18
|
};
|
|
13
19
|
}
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
/**
|
|
21
|
+
* How far `view` is zoomed in, as one number — the geometric mean of its two
|
|
22
|
+
* axes, so a uniform view reports its own scale and a stretched one reports
|
|
23
|
+
* the scale that covers the same area.
|
|
24
|
+
*/
|
|
25
|
+
function viewZoom(view) {
|
|
26
|
+
return meanScale(view.scale);
|
|
16
27
|
}
|
|
17
|
-
|
|
18
|
-
|
|
28
|
+
/** Whether two views are the same camera, whatever objects hold them. */
|
|
29
|
+
function sameView(a, b) {
|
|
30
|
+
return a.x === b.x && a.y === b.y && a.scale.x === b.scale.x && a.scale.y === b.scale.y;
|
|
19
31
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
32
|
+
/**
|
|
33
|
+
* `view` inside the invariant {@link View} documents: a zero or non-finite
|
|
34
|
+
* scale axis becomes `ZOOM_FLOOR`, a negative one keeps its sign, and a
|
|
35
|
+
* non-finite translation becomes 0. Returns `view` itself when it already
|
|
36
|
+
* holds, so a valid view keeps its identity.
|
|
37
|
+
*/
|
|
38
|
+
function normalizeView(view) {
|
|
39
|
+
const sx = normalizeAxis(view.scale.x);
|
|
40
|
+
const sy = normalizeAxis(view.scale.y);
|
|
41
|
+
const x = finiteTranslation(view.x);
|
|
42
|
+
const y = finiteTranslation(view.y);
|
|
43
|
+
if (sx === view.scale.x && sy === view.scale.y && x === view.x && y === view.y) return view;
|
|
44
|
+
return {
|
|
45
|
+
x,
|
|
46
|
+
y,
|
|
25
47
|
scale: {
|
|
26
|
-
x:
|
|
27
|
-
y:
|
|
48
|
+
x: sx,
|
|
49
|
+
y: sy
|
|
28
50
|
}
|
|
29
51
|
};
|
|
30
52
|
}
|
|
31
|
-
function s
|
|
32
|
-
return
|
|
53
|
+
function normalizeAxis(s) {
|
|
54
|
+
return s < 0 && s > -Infinity ? -normalizeZoom$1(-s) : normalizeZoom$1(s);
|
|
33
55
|
}
|
|
34
|
-
function
|
|
35
|
-
|
|
56
|
+
function finiteTranslation(v) {
|
|
57
|
+
if (Number.isFinite(v)) return v;
|
|
58
|
+
warnInvalidView(`a position of ${v}`);
|
|
59
|
+
return 0;
|
|
36
60
|
}
|
|
37
|
-
//#endregion
|
|
38
|
-
export { o as normalizeView, a as sameView, r as viewToTransform, i as viewZoom };
|
|
39
61
|
|
|
62
|
+
//#endregion
|
|
63
|
+
export { normalizeView, sameView, viewToTransform, viewZoom };
|
|
40
64
|
//# sourceMappingURL=view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","names":["normalizeZoom"
|
|
1
|
+
{"version":3,"file":"view.js","names":["normalizeZoom"],"sources":["../../../src/core/viewport/view.ts"],"sourcesContent":["import type { ViewTransform } from './viewTransform';\nimport type { View } from '@weasel-js/geom';\nimport { meanScale } from '@weasel-js/geom';\nimport { normalizeZoom, warnInvalidView } from './zoomBounds';\n\n/**\n * Every view the kit keeps is total: each `scale` axis is finite with a\n * magnitude of at least `ZOOM_FLOOR` and `x` / `y` are finite. A negative\n * axis is a flipped one (y-up), not a degenerate one, and keeps its sign.\n * Canvases, views, and animations pass what they are given through\n * {@link normalizeView}, so screen/world conversion never divides by zero.\n */\nexport type { View };\n\n/** A zoom factor: a `number` applies to both axes, a `{x, y}` vector per axis. */\nexport type ZoomFactor = number | { x: number; y: number };\n\n/** A zoom-clamp bound: a `number` applies to both axes, a `{x, y}` vector per axis. */\nexport type ZoomBound = number | { x: number; y: number };\n\n/**\n * Bridge `View` into the legacy `ViewTransform` shape. The two use opposite\n * sign conventions for the translation half: `view.x` is camera position;\n * `panX` is canvas translation.\n */\nexport function viewToTransform(view: View): ViewTransform {\n // `+ 0` coerces `-0 → 0` without swallowing NaN (matches viewToMat3).\n return {\n panX: -view.x * view.scale.x + 0,\n panY: -view.y * view.scale.y + 0,\n zoom: { x: view.scale.x, y: view.scale.y },\n };\n}\n\n/**\n * How far `view` is zoomed in, as one number — the geometric mean of its two\n * axes, so a uniform view reports its own scale and a stretched one reports\n * the scale that covers the same area.\n */\nexport function viewZoom(view: View): number {\n return meanScale(view.scale);\n}\n\n/** Whether two views are the same camera, whatever objects hold them. */\nexport function sameView(a: View, b: View): boolean {\n return a.x === b.x && a.y === b.y && a.scale.x === b.scale.x && a.scale.y === b.scale.y;\n}\n\n/**\n * `view` inside the invariant {@link View} documents: a zero or non-finite\n * scale axis becomes `ZOOM_FLOOR`, a negative one keeps its sign, and a\n * non-finite translation becomes 0. Returns `view` itself when it already\n * holds, so a valid view keeps its identity.\n */\nexport function normalizeView(view: View): View {\n const sx = normalizeAxis(view.scale.x);\n const sy = normalizeAxis(view.scale.y);\n const x = finiteTranslation(view.x);\n const y = finiteTranslation(view.y);\n if (sx === view.scale.x && sy === view.scale.y && x === view.x && y === view.y) return view;\n return { x, y, scale: { x: sx, y: sy } };\n}\n\nfunction normalizeAxis(s: number): number {\n return s < 0 && s > -Infinity ? -normalizeZoom(-s) : normalizeZoom(s);\n}\n\nfunction finiteTranslation(v: number): number {\n if (Number.isFinite(v)) return v;\n warnInvalidView(`a position of ${v}`);\n return 0;\n}\n"],"mappings":";;;;;;;;;AAyBA,SAAgB,gBAAgB,MAA2B;CAEzD,OAAO;EACL,MAAM,CAAC,KAAK,IAAI,KAAK,MAAM,IAAI;EAC/B,MAAM,CAAC,KAAK,IAAI,KAAK,MAAM,IAAI;EAC/B,MAAM;GAAE,GAAG,KAAK,MAAM;GAAG,GAAG,KAAK,MAAM;EAAE;CAC3C;AACF;;;;;;AAOA,SAAgB,SAAS,MAAoB;CAC3C,OAAO,UAAU,KAAK,KAAK;AAC7B;;AAGA,SAAgB,SAAS,GAAS,GAAkB;CAClD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,MAAM,EAAE,MAAM,KAAK,EAAE,MAAM,MAAM,EAAE,MAAM;AACxF;;;;;;;AAQA,SAAgB,cAAc,MAAkB;CAC9C,MAAM,KAAK,cAAc,KAAK,MAAM,CAAC;CACrC,MAAM,KAAK,cAAc,KAAK,MAAM,CAAC;CACrC,MAAM,IAAI,kBAAkB,KAAK,CAAC;CAClC,MAAM,IAAI,kBAAkB,KAAK,CAAC;CAClC,IAAI,OAAO,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,KAAK,MAAM,KAAK,KAAK,MAAM,KAAK,GAAG,OAAO;CACvF,OAAO;EAAE;EAAG;EAAG,OAAO;GAAE,GAAG;GAAI,GAAG;EAAG;CAAE;AACzC;AAEA,SAAS,cAAc,GAAmB;CACxC,OAAO,IAAI,KAAK,IAAI,YAAY,CAACA,gBAAc,CAAC,CAAC,IAAIA,gBAAc,CAAC;AACtE;AAEA,SAAS,kBAAkB,GAAmB;CAC5C,IAAI,OAAO,SAAS,CAAC,GAAG,OAAO;CAC/B,gBAAgB,iBAAiB,GAAG;CACpC,OAAO;AACT"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
//#region src/core/viewport/viewTransform.ts
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/** Project a world-space point to screen-space pixels through a `ViewTransform`. */
|
|
3
|
+
function worldToScreen(worldX, worldY, view) {
|
|
4
|
+
return [view.panX + worldX * view.zoom.x, view.panY + worldY * view.zoom.y];
|
|
4
5
|
}
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
/** Inverse of `worldToScreen` — recover the world-space point under a screen-space pixel. */
|
|
7
|
+
function screenToWorld(screenX, screenY, view) {
|
|
8
|
+
return [(screenX - view.panX) / view.zoom.x, (screenY - view.panY) / view.zoom.y];
|
|
7
9
|
}
|
|
8
|
-
//#endregion
|
|
9
|
-
export { t as screenToWorld, e as worldToScreen };
|
|
10
10
|
|
|
11
|
+
//#endregion
|
|
12
|
+
export { screenToWorld, worldToScreen };
|
|
11
13
|
//# sourceMappingURL=viewTransform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewTransform.js","names":[
|
|
1
|
+
{"version":3,"file":"viewTransform.js","names":[],"sources":["../../../src/core/viewport/viewTransform.ts"],"sourcesContent":["/** Pan offset (in pixels) plus per-axis zoom (pixels per content unit). */\nexport interface ViewTransform {\n panX: number;\n panY: number;\n zoom: { x: number; y: number };\n}\n\n/** Project a world-space point to screen-space pixels through a `ViewTransform`. */\nexport function worldToScreen(\n worldX: number,\n worldY: number,\n view: ViewTransform,\n): [number, number] {\n return [view.panX + worldX * view.zoom.x, view.panY + worldY * view.zoom.y];\n}\n\n/** Inverse of `worldToScreen` — recover the world-space point under a screen-space pixel. */\nexport function screenToWorld(\n screenX: number,\n screenY: number,\n view: ViewTransform,\n): [number, number] {\n return [(screenX - view.panX) / view.zoom.x, (screenY - view.panY) / view.zoom.y];\n}\n"],"mappings":";;AAQA,SAAgB,cACd,QACA,QACA,MACkB;CAClB,OAAO,CAAC,KAAK,OAAO,SAAS,KAAK,KAAK,GAAG,KAAK,OAAO,SAAS,KAAK,KAAK,CAAC;AAC5E;;AAGA,SAAgB,cACd,SACA,SACA,MACkB;CAClB,OAAO,EAAE,UAAU,KAAK,QAAQ,KAAK,KAAK,IAAI,UAAU,KAAK,QAAQ,KAAK,KAAK,CAAC;AAClF"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
//#region src/core/viewport/viewportWorldRect.ts
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* The world-space rectangle a camera shows in a host `size` CSS pixels across.
|
|
4
|
+
*
|
|
5
|
+
* One formula, because two callers need it against different hosts: the
|
|
6
|
+
* canvas element for view zero, and a view's own rect for a panel. Paste
|
|
7
|
+
* placement centers on it, so the two disagreeing puts pasted content in a
|
|
8
|
+
* view the user is not looking at.
|
|
9
|
+
*/
|
|
10
|
+
function viewportWorldRect(view, size) {
|
|
3
11
|
return {
|
|
4
|
-
x:
|
|
5
|
-
y:
|
|
6
|
-
width:
|
|
7
|
-
height:
|
|
12
|
+
x: view.x,
|
|
13
|
+
y: view.y,
|
|
14
|
+
width: size.width / view.scale.x,
|
|
15
|
+
height: size.height / view.scale.y
|
|
8
16
|
};
|
|
9
17
|
}
|
|
10
|
-
//#endregion
|
|
11
|
-
export { e as viewportWorldRect };
|
|
12
18
|
|
|
19
|
+
//#endregion
|
|
20
|
+
export { viewportWorldRect };
|
|
13
21
|
//# sourceMappingURL=viewportWorldRect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewportWorldRect.js","names":[
|
|
1
|
+
{"version":3,"file":"viewportWorldRect.js","names":[],"sources":["../../../src/core/viewport/viewportWorldRect.ts"],"sourcesContent":["import type { View } from './view';\n\n/**\n * The world-space rectangle a camera shows in a host `size` CSS pixels across.\n *\n * One formula, because two callers need it against different hosts: the\n * canvas element for view zero, and a view's own rect for a panel. Paste\n * placement centers on it, so the two disagreeing puts pasted content in a\n * view the user is not looking at.\n */\nexport function viewportWorldRect(\n view: View,\n size: { width: number; height: number },\n): { x: number; y: number; width: number; height: number } {\n return {\n x: view.x,\n y: view.y,\n width: size.width / view.scale.x,\n height: size.height / view.scale.y,\n };\n}\n"],"mappings":";;;;;;;;;AAUA,SAAgB,kBACd,MACA,MACyD;CACzD,OAAO;EACL,GAAG,KAAK;EACR,GAAG,KAAK;EACR,OAAO,KAAK,QAAQ,KAAK,MAAM;EAC/B,QAAQ,KAAK,SAAS,KAAK,MAAM;CACnC;AACF"}
|
|
@@ -1,30 +1,41 @@
|
|
|
1
|
-
import { zoomAt
|
|
1
|
+
import { zoomAt } from "./zoomAt.js";
|
|
2
|
+
|
|
2
3
|
//#region src/core/viewport/wheelHandler.ts
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
/** Multiplicative zoom applied per 100 px of wheel `deltaY`. */
|
|
5
|
+
var WHEEL_ZOOM_STEP = 1.1;
|
|
6
|
+
/** Zoom multiplier for one wheel sample. Reciprocal in `deltaY`, so scrolling
|
|
7
|
+
* a distance and back returns to the scale you started from. */
|
|
8
|
+
function wheelZoomFactor(deltaY) {
|
|
9
|
+
return Math.pow(WHEEL_ZOOM_STEP, -deltaY / 100);
|
|
6
10
|
}
|
|
7
|
-
|
|
8
|
-
|
|
11
|
+
/** Zoom one wheel sample about `anchor` (canvas-local pixels). */
|
|
12
|
+
function wheelZoom(view, anchor, deltaY, clamp) {
|
|
13
|
+
return zoomAt(view, anchor, wheelZoomFactor(deltaY), clamp);
|
|
9
14
|
}
|
|
10
|
-
|
|
11
|
-
|
|
15
|
+
/** Pan by one wheel sample. `delta` is in screen pixels. */
|
|
16
|
+
function wheelPan(view, delta, opts = {}) {
|
|
17
|
+
const axis = opts.axis ?? "both";
|
|
18
|
+
const swapped = opts.swapAxis === true;
|
|
19
|
+
const screenX = swapped ? delta.deltaX !== 0 ? delta.deltaX : delta.deltaY : delta.deltaX;
|
|
20
|
+
const screenY = swapped ? 0 : delta.deltaY;
|
|
12
21
|
return {
|
|
13
|
-
scale:
|
|
14
|
-
x:
|
|
15
|
-
y:
|
|
22
|
+
scale: view.scale,
|
|
23
|
+
x: view.x + (axis === "y" ? 0 : screenX / view.scale.x),
|
|
24
|
+
y: view.y + (axis === "x" ? 0 : screenY / view.scale.y)
|
|
16
25
|
};
|
|
17
26
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
/** Pure reducer: the whole wheel convention in one call. */
|
|
28
|
+
function computeWheelAction(view, input, clamp, opts = {}) {
|
|
29
|
+
if (input.ctrlKey || input.metaKey) return wheelZoom(view, {
|
|
30
|
+
x: input.x,
|
|
31
|
+
y: input.y
|
|
32
|
+
}, input.deltaY, clamp);
|
|
33
|
+
return wheelPan(view, input, {
|
|
34
|
+
axis: opts.axis,
|
|
35
|
+
swapAxis: input.shiftKey === true
|
|
25
36
|
});
|
|
26
37
|
}
|
|
27
|
-
//#endregion
|
|
28
|
-
export { t as WHEEL_ZOOM_STEP, a as computeWheelAction, i as wheelPan, r as wheelZoom, n as wheelZoomFactor };
|
|
29
38
|
|
|
39
|
+
//#endregion
|
|
40
|
+
export { WHEEL_ZOOM_STEP, computeWheelAction, wheelPan, wheelZoom, wheelZoomFactor };
|
|
30
41
|
//# sourceMappingURL=wheelHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wheelHandler.js","names":[
|
|
1
|
+
{"version":3,"file":"wheelHandler.js","names":[],"sources":["../../../src/core/viewport/wheelHandler.ts"],"sourcesContent":["/**\n * The kit's one wheel convention, as pure functions over `View`.\n *\n * ## Modifiers\n * - bare wheel → pan\n * - shift+wheel → horizontal pan (mouse wheels emit only `deltaY`)\n * - Cmd/Ctrl+wheel → zoom, anchored under the pointer. Ctrl also covers the\n * trackpad pinch, which browsers deliver as ctrl+wheel.\n *\n * ## Coordinates\n * `View.x` / `View.y` are world-space, so a pan delta — screen pixels, as the\n * DOM reports them — is divided by `View.scale` before it lands. The zoom\n * anchor is canvas-local: client coords minus the canvas's bounding rect.\n */\n\nimport type { View } from './view';\nimport { zoomAt, type ZoomClampOpts } from './zoomAt';\n\n/** Multiplicative zoom applied per 100 px of wheel `deltaY`. */\nexport const WHEEL_ZOOM_STEP = 1.1;\n\n/** A wheel event, decoupled from the DOM `WheelEvent` shape for testability. */\nexport interface WheelInput {\n deltaX: number;\n deltaY: number;\n /** Zoom anchor, canvas-local: client coords minus the canvas's rect. */\n x: number;\n y: number;\n shiftKey?: boolean;\n ctrlKey?: boolean;\n metaKey?: boolean;\n}\n\n/** Which axes a wheel pan is allowed to move, and whether `deltaY` is routed\n * into the x axis (shift+wheel). An axis lock outranks `swapAxis`. */\nexport interface WheelPanOpts {\n axis?: 'both' | 'x' | 'y';\n swapAxis?: boolean;\n}\n\n/** Zoom multiplier for one wheel sample. Reciprocal in `deltaY`, so scrolling\n * a distance and back returns to the scale you started from. */\nexport function wheelZoomFactor(deltaY: number): number {\n return Math.pow(WHEEL_ZOOM_STEP, -deltaY / 100);\n}\n\n/** Zoom one wheel sample about `anchor` (canvas-local pixels). */\nexport function wheelZoom(\n view: View,\n anchor: { x: number; y: number },\n deltaY: number,\n clamp?: ZoomClampOpts,\n): View {\n return zoomAt(view, anchor, wheelZoomFactor(deltaY), clamp);\n}\n\n/** Pan by one wheel sample. `delta` is in screen pixels. */\nexport function wheelPan(\n view: View,\n delta: { deltaX: number; deltaY: number },\n opts: WheelPanOpts = {},\n): View {\n const axis = opts.axis ?? 'both';\n const swapped = opts.swapAxis === true;\n // Shift+wheel wants a horizontal pan, but a mouse wheel only emits deltaY.\n const screenX = swapped ? (delta.deltaX !== 0 ? delta.deltaX : delta.deltaY) : delta.deltaX;\n const screenY = swapped ? 0 : delta.deltaY;\n return {\n scale: view.scale,\n x: view.x + (axis === 'y' ? 0 : screenX / view.scale.x),\n y: view.y + (axis === 'x' ? 0 : screenY / view.scale.y),\n };\n}\n\n/** Pure reducer: the whole wheel convention in one call. */\nexport function computeWheelAction(\n view: View,\n input: WheelInput,\n clamp?: ZoomClampOpts,\n opts: Pick<WheelPanOpts, 'axis'> = {},\n): View {\n if (input.ctrlKey || input.metaKey) {\n return wheelZoom(view, { x: input.x, y: input.y }, input.deltaY, clamp);\n }\n return wheelPan(view, input, { axis: opts.axis, swapAxis: input.shiftKey === true });\n}\n"],"mappings":";;;;AAmBA,IAAa,kBAAkB;;;AAuB/B,SAAgB,gBAAgB,QAAwB;CACtD,OAAO,KAAK,IAAI,iBAAiB,CAAC,SAAS,GAAG;AAChD;;AAGA,SAAgB,UACd,MACA,QACA,QACA,OACM;CACN,OAAO,OAAO,MAAM,QAAQ,gBAAgB,MAAM,GAAG,KAAK;AAC5D;;AAGA,SAAgB,SACd,MACA,OACA,OAAqB,CAAC,GAChB;CACN,MAAM,OAAO,KAAK,QAAQ;CAC1B,MAAM,UAAU,KAAK,aAAa;CAElC,MAAM,UAAU,UAAW,MAAM,WAAW,IAAI,MAAM,SAAS,MAAM,SAAU,MAAM;CACrF,MAAM,UAAU,UAAU,IAAI,MAAM;CACpC,OAAO;EACL,OAAO,KAAK;EACZ,GAAG,KAAK,KAAK,SAAS,MAAM,IAAI,UAAU,KAAK,MAAM;EACrD,GAAG,KAAK,KAAK,SAAS,MAAM,IAAI,UAAU,KAAK,MAAM;CACvD;AACF;;AAGA,SAAgB,mBACd,MACA,OACA,OACA,OAAmC,CAAC,GAC9B;CACN,IAAI,MAAM,WAAW,MAAM,SACzB,OAAO,UAAU,MAAM;EAAE,GAAG,MAAM;EAAG,GAAG,MAAM;CAAE,GAAG,MAAM,QAAQ,KAAK;CAExE,OAAO,SAAS,MAAM,OAAO;EAAE,MAAM,KAAK;EAAM,UAAU,MAAM,aAAa;CAAK,CAAC;AACrF"}
|
|
@@ -1,31 +1,59 @@
|
|
|
1
|
-
import { DEFAULT_MAX_ZOOM
|
|
2
|
-
import { normalizeView
|
|
1
|
+
import { DEFAULT_MAX_ZOOM, DEFAULT_MIN_ZOOM, normalizeZoom } from "./zoomBounds.js";
|
|
2
|
+
import { normalizeView } from "./view.js";
|
|
3
|
+
|
|
3
4
|
//#region src/core/viewport/zoomAt.ts
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
/** Bound a scale's *magnitude*, keeping its direction. `scale.y < 0` is how a
|
|
6
|
+
* `View` spells a y-up camera, so clamping the signed value against positive
|
|
7
|
+
* bounds would flip the axis and collapse the zoom rather than limit it. */
|
|
8
|
+
function clampScale(scale, min, max) {
|
|
9
|
+
const magnitude = normalizeZoom(Math.min(max, Math.max(min, Math.abs(scale))));
|
|
10
|
+
return scale < 0 ? -magnitude : magnitude;
|
|
7
11
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
12
|
+
/** `factor` held to one axis: the other axis's factor is 1, so `zoomAt` leaves
|
|
13
|
+
* its scale and its translation where they were. */
|
|
14
|
+
function axisZoomFactor(factor, axis) {
|
|
15
|
+
if (axis === "x") return {
|
|
16
|
+
x: factor,
|
|
11
17
|
y: 1
|
|
12
|
-
}
|
|
18
|
+
};
|
|
19
|
+
if (axis === "y") return {
|
|
13
20
|
x: 1,
|
|
14
|
-
y:
|
|
15
|
-
}
|
|
21
|
+
y: factor
|
|
22
|
+
};
|
|
23
|
+
return factor;
|
|
16
24
|
}
|
|
17
|
-
|
|
18
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Pure zoom primitive. Returns a new `View` whose `scale` is multiplied
|
|
27
|
+
* by `factor` (per-axis, clamped) and whose translation is adjusted so
|
|
28
|
+
* that the world point currently under `anchor` (screen coords relative
|
|
29
|
+
* to the canvas top-left) stays under the same screen pixel after the
|
|
30
|
+
* zoom — independently on each axis.
|
|
31
|
+
*
|
|
32
|
+
* `factor: number` means "apply uniformly to both axes". `factor: {x, y}`
|
|
33
|
+
* applies per-axis factors. Likewise for `opts.min` / `opts.max`.
|
|
34
|
+
*/
|
|
35
|
+
function zoomAt(input, anchor, factor, opts) {
|
|
36
|
+
const view = normalizeView(input);
|
|
37
|
+
const fx = typeof factor === "number" ? factor : factor.x;
|
|
38
|
+
const fy = typeof factor === "number" ? factor : factor.y;
|
|
39
|
+
const minX = typeof opts?.min === "number" ? opts.min : opts?.min?.x ?? DEFAULT_MIN_ZOOM;
|
|
40
|
+
const minY = typeof opts?.min === "number" ? opts.min : opts?.min?.y ?? DEFAULT_MIN_ZOOM;
|
|
41
|
+
const maxX = typeof opts?.max === "number" ? opts.max : opts?.max?.x ?? DEFAULT_MAX_ZOOM;
|
|
42
|
+
const maxY = typeof opts?.max === "number" ? opts.max : opts?.max?.y ?? DEFAULT_MAX_ZOOM;
|
|
43
|
+
const nextX = clampScale(view.scale.x * fx, minX, maxX);
|
|
44
|
+
const nextY = clampScale(view.scale.y * fy, minY, maxY);
|
|
45
|
+
const worldX = anchor.x / view.scale.x + view.x;
|
|
46
|
+
const worldY = anchor.y / view.scale.y + view.y;
|
|
19
47
|
return {
|
|
20
48
|
scale: {
|
|
21
|
-
x:
|
|
22
|
-
y:
|
|
49
|
+
x: nextX,
|
|
50
|
+
y: nextY
|
|
23
51
|
},
|
|
24
|
-
x:
|
|
25
|
-
y:
|
|
52
|
+
x: worldX - anchor.x / nextX,
|
|
53
|
+
y: worldY - anchor.y / nextY
|
|
26
54
|
};
|
|
27
55
|
}
|
|
28
|
-
//#endregion
|
|
29
|
-
export { a as axisZoomFactor, o as zoomAt };
|
|
30
56
|
|
|
57
|
+
//#endregion
|
|
58
|
+
export { axisZoomFactor, zoomAt };
|
|
31
59
|
//# sourceMappingURL=zoomAt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoomAt.js","names":[
|
|
1
|
+
{"version":3,"file":"zoomAt.js","names":[],"sources":["../../../src/core/viewport/zoomAt.ts"],"sourcesContent":["import { normalizeView, type View, type ZoomFactor, type ZoomBound } from './view';\nimport { DEFAULT_MIN_ZOOM, DEFAULT_MAX_ZOOM, normalizeZoom } from './zoomBounds';\n\n/** Optional clamp bounds for `zoomAt`. Defaults: {@link DEFAULT_MIN_ZOOM} /\n * {@link DEFAULT_MAX_ZOOM} (per axis). */\nexport interface ZoomClampOpts {\n min?: ZoomBound;\n max?: ZoomBound;\n}\n\n/** Bound a scale's *magnitude*, keeping its direction. `scale.y < 0` is how a\n * `View` spells a y-up camera, so clamping the signed value against positive\n * bounds would flip the axis and collapse the zoom rather than limit it. */\nfunction clampScale(scale: number, min: number, max: number): number {\n const magnitude = normalizeZoom(Math.min(max, Math.max(min, Math.abs(scale))));\n return scale < 0 ? -magnitude : magnitude;\n}\n\n/** Which axes a zoom scales. */\nexport type ZoomAxis = 'both' | 'x' | 'y';\n\n/** `factor` held to one axis: the other axis's factor is 1, so `zoomAt` leaves\n * its scale and its translation where they were. */\nexport function axisZoomFactor(factor: number, axis: ZoomAxis): ZoomFactor {\n if (axis === 'x') return { x: factor, y: 1 };\n if (axis === 'y') return { x: 1, y: factor };\n return factor;\n}\n\n/**\n * Pure zoom primitive. Returns a new `View` whose `scale` is multiplied\n * by `factor` (per-axis, clamped) and whose translation is adjusted so\n * that the world point currently under `anchor` (screen coords relative\n * to the canvas top-left) stays under the same screen pixel after the\n * zoom — independently on each axis.\n *\n * `factor: number` means \"apply uniformly to both axes\". `factor: {x, y}`\n * applies per-axis factors. Likewise for `opts.min` / `opts.max`.\n */\nexport function zoomAt(\n input: View,\n anchor: { x: number; y: number },\n factor: ZoomFactor,\n opts?: ZoomClampOpts,\n): View {\n const view = normalizeView(input);\n const fx = typeof factor === 'number' ? factor : factor.x;\n const fy = typeof factor === 'number' ? factor : factor.y;\n const minX = typeof opts?.min === 'number' ? opts.min : opts?.min?.x ?? DEFAULT_MIN_ZOOM;\n const minY = typeof opts?.min === 'number' ? opts.min : opts?.min?.y ?? DEFAULT_MIN_ZOOM;\n const maxX = typeof opts?.max === 'number' ? opts.max : opts?.max?.x ?? DEFAULT_MAX_ZOOM;\n const maxY = typeof opts?.max === 'number' ? opts.max : opts?.max?.y ?? DEFAULT_MAX_ZOOM;\n\n const nextX = clampScale(view.scale.x * fx, minX, maxX);\n const nextY = clampScale(view.scale.y * fy, minY, maxY);\n\n const worldX = anchor.x / view.scale.x + view.x;\n const worldY = anchor.y / view.scale.y + view.y;\n return {\n scale: { x: nextX, y: nextY },\n x: worldX - anchor.x / nextX,\n y: worldY - anchor.y / nextY,\n };\n}\n"],"mappings":";;;;;;;AAaA,SAAS,WAAW,OAAe,KAAa,KAAqB;CACnE,MAAM,YAAY,cAAc,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;CAC7E,OAAO,QAAQ,IAAI,CAAC,YAAY;AAClC;;;AAOA,SAAgB,eAAe,QAAgB,MAA4B;CACzE,IAAI,SAAS,KAAK,OAAO;EAAE,GAAG;EAAQ,GAAG;CAAE;CAC3C,IAAI,SAAS,KAAK,OAAO;EAAE,GAAG;EAAG,GAAG;CAAO;CAC3C,OAAO;AACT;;;;;;;;;;;AAYA,SAAgB,OACd,OACA,QACA,QACA,MACM;CACN,MAAM,OAAO,cAAc,KAAK;CAChC,MAAM,KAAK,OAAO,WAAW,WAAW,SAAS,OAAO;CACxD,MAAM,KAAK,OAAO,WAAW,WAAW,SAAS,OAAO;CACxD,MAAM,OAAO,OAAO,MAAM,QAAQ,WAAW,KAAK,MAAM,MAAM,KAAK,KAAK;CACxE,MAAM,OAAO,OAAO,MAAM,QAAQ,WAAW,KAAK,MAAM,MAAM,KAAK,KAAK;CACxE,MAAM,OAAO,OAAO,MAAM,QAAQ,WAAW,KAAK,MAAM,MAAM,KAAK,KAAK;CACxE,MAAM,OAAO,OAAO,MAAM,QAAQ,WAAW,KAAK,MAAM,MAAM,KAAK,KAAK;CAExE,MAAM,QAAQ,WAAW,KAAK,MAAM,IAAI,IAAI,MAAM,IAAI;CACtD,MAAM,QAAQ,WAAW,KAAK,MAAM,IAAI,IAAI,MAAM,IAAI;CAEtD,MAAM,SAAS,OAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAC9C,MAAM,SAAS,OAAO,IAAI,KAAK,MAAM,IAAI,KAAK;CAC9C,OAAO;EACL,OAAO;GAAE,GAAG;GAAO,GAAG;EAAM;EAC5B,GAAG,SAAS,OAAO,IAAI;EACvB,GAAG,SAAS,OAAO,IAAI;CACzB;AACF"}
|
|
@@ -1,22 +1,38 @@
|
|
|
1
|
-
import { ZOOM_FLOOR
|
|
1
|
+
import { ZOOM_FLOOR, normalizeZoom } from "@weasel-js/geom";
|
|
2
|
+
import { isDev } from "@weasel-js/registry";
|
|
3
|
+
|
|
2
4
|
//#region src/core/viewport/zoomBounds.ts
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
/**
|
|
6
|
+
* The kit's system-wide zoom clamp, in `View.scale` units (pixels per world
|
|
7
|
+
* unit): `1` is 100%, `0.1` is 10%, `8` is 800%.
|
|
8
|
+
*
|
|
9
|
+
* Every zoom path defaults from these — `zoomAt`, the `viewport.zoom` and
|
|
10
|
+
* pinch actions, `fitViewToBounds`, `computeWheelAction`. They
|
|
11
|
+
* used to carry two disagreeing pairs, so a fit could legally land at 10x
|
|
12
|
+
* and the next pinch frame would clamp it back to 8x.
|
|
13
|
+
*/
|
|
14
|
+
var DEFAULT_MIN_ZOOM = .1;
|
|
15
|
+
/** Upper end of the kit's default zoom clamp — 800%. See {@link DEFAULT_MIN_ZOOM}. */
|
|
16
|
+
var DEFAULT_MAX_ZOOM = 8;
|
|
17
|
+
/**
|
|
18
|
+
* The one rule for a zoom magnitude: a finite number no smaller than
|
|
19
|
+
* {@link ZOOM_FLOOR}. Anything else (0, negative, NaN, ±Infinity) becomes the
|
|
20
|
+
* floor. Dev builds warn once when a zoom that was never valid arrives; a
|
|
21
|
+
* positive zoom that merely undershoots the floor clamps silently.
|
|
22
|
+
*/
|
|
23
|
+
function normalizeZoom$1(zoom) {
|
|
24
|
+
const held = normalizeZoom(zoom);
|
|
25
|
+
if (held !== zoom && (!(zoom > 0) || zoom === Infinity)) warnInvalidView(`a zoom of ${zoom}`);
|
|
26
|
+
return held;
|
|
7
27
|
}
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
28
|
+
var warned = false;
|
|
29
|
+
/** @internal Once per session, in dev builds only. */
|
|
30
|
+
function warnInvalidView(what) {
|
|
31
|
+
if (warned || !isDev()) return;
|
|
32
|
+
warned = true;
|
|
33
|
+
console.warn(`[weasel] a view was given ${what} and has been clamped. A view's zoom is always positive and finite, and its position finite; see ZOOM_FLOOR.`);
|
|
11
34
|
}
|
|
12
|
-
var s = (() => {
|
|
13
|
-
try {
|
|
14
|
-
return !1;
|
|
15
|
-
} catch {
|
|
16
|
-
return !1;
|
|
17
|
-
}
|
|
18
|
-
})();
|
|
19
|
-
//#endregion
|
|
20
|
-
export { r as DEFAULT_MAX_ZOOM, n as DEFAULT_MIN_ZOOM, e as ZOOM_FLOOR, i as normalizeZoom, o as warnInvalidView };
|
|
21
35
|
|
|
36
|
+
//#endregion
|
|
37
|
+
export { DEFAULT_MAX_ZOOM, DEFAULT_MIN_ZOOM, ZOOM_FLOOR, normalizeZoom$1 as normalizeZoom, warnInvalidView };
|
|
22
38
|
//# sourceMappingURL=zoomBounds.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoomBounds.js","names":["normalizeZoom","clampToFloor"
|
|
1
|
+
{"version":3,"file":"zoomBounds.js","names":["normalizeZoom","clampToFloor"],"sources":["../../../src/core/viewport/zoomBounds.ts"],"sourcesContent":["import { normalizeZoom as clampToFloor, ZOOM_FLOOR } from '@weasel-js/geom';\nimport { isDev } from '@weasel-js/registry';\n\n/**\n * The kit's system-wide zoom clamp, in `View.scale` units (pixels per world\n * unit): `1` is 100%, `0.1` is 10%, `8` is 800%.\n *\n * Every zoom path defaults from these — `zoomAt`, the `viewport.zoom` and\n * pinch actions, `fitViewToBounds`, `computeWheelAction`. They\n * used to carry two disagreeing pairs, so a fit could legally land at 10x\n * and the next pinch frame would clamp it back to 8x.\n */\nexport const DEFAULT_MIN_ZOOM = 0.1;\n/** Upper end of the kit's default zoom clamp — 800%. See {@link DEFAULT_MIN_ZOOM}. */\nexport const DEFAULT_MAX_ZOOM = 8;\n\nexport { ZOOM_FLOOR };\n\n/**\n * The one rule for a zoom magnitude: a finite number no smaller than\n * {@link ZOOM_FLOOR}. Anything else (0, negative, NaN, ±Infinity) becomes the\n * floor. Dev builds warn once when a zoom that was never valid arrives; a\n * positive zoom that merely undershoots the floor clamps silently.\n */\nexport function normalizeZoom(zoom: number): number {\n const held = clampToFloor(zoom);\n if (held !== zoom && (!(zoom > 0) || zoom === Infinity)) warnInvalidView(`a zoom of ${zoom}`);\n return held;\n}\n\nlet warned = false;\n\n/** @internal Once per session, in dev builds only. */\nexport function warnInvalidView(what: string): void {\n if (warned || !isDev()) return;\n warned = true;\n console.warn(\n `[weasel] a view was given ${what} and has been clamped. A view's zoom is ` +\n 'always positive and finite, and its position finite; see ZOOM_FLOOR.',\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAYA,IAAa,mBAAmB;;AAEhC,IAAa,mBAAmB;;;;;;;AAUhC,SAAgBA,gBAAc,MAAsB;CAClD,MAAM,OAAOC,cAAa,IAAI;CAC9B,IAAI,SAAS,SAAS,EAAE,OAAO,MAAM,SAAS,WAAW,gBAAgB,aAAa,MAAM;CAC5F,OAAO;AACT;AAEA,IAAI,SAAS;;AAGb,SAAgB,gBAAgB,MAAoB;CAClD,IAAI,UAAU,CAAC,MAAM,GAAG;CACxB,SAAS;CACT,QAAQ,KACN,6BAA6B,KAAK,6GAEpC;AACF"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { B as BoundsConstraint } from './clone-C3e0OTuF.js';
|
|
2
|
+
import { FramedBox, Affine } from '@weasel-js/geom';
|
|
3
|
+
import { ResizeAnchor } from '@weasel-js/routing';
|
|
4
|
+
|
|
5
|
+
/** Option surface for the `resize` action. */
|
|
6
|
+
|
|
7
|
+
/** Options for the `resize` action: the constraints applied to the dragged
|
|
8
|
+
* bounding box, how a gesture expands a group into its leaves, and its
|
|
9
|
+
* history and lifecycle. `<SceneCanvas>` publishes them as the
|
|
10
|
+
* `resizePolicy` dep (`resizePolicyOptions`). */
|
|
11
|
+
interface UseResizeOptions<TPose> {
|
|
12
|
+
/** Behaviors are rect-typed: they read/write `{x,y,width,height}`. For a
|
|
13
|
+
* non-rect `TPose`, constraints are typed `never`; the pose descriptor
|
|
14
|
+
* comes from `<SceneCanvas poseDescriptor>`. */
|
|
15
|
+
behaviors?: TPose extends FramedBox ? BoundsConstraint<TPose>[] : never;
|
|
16
|
+
/** History label for the committed resize. Default `'Resize'`. */
|
|
17
|
+
resizeLabel?: string;
|
|
18
|
+
/** Commit without an undo entry (`scene.untracked`), bypassing the
|
|
19
|
+
* consumer `applyOps` hook. Unset, a behavior's `defaultTransient` decides. */
|
|
20
|
+
transient?: boolean;
|
|
21
|
+
/** Fired when the resize starts, with the ids it writes. */
|
|
22
|
+
onGestureStart?: (ids: string[]) => void;
|
|
23
|
+
/** Fired once per `onGestureStart`: `true` when the resize wrote to the
|
|
24
|
+
* document, `false` on cancel, a behavior abort, or no change. */
|
|
25
|
+
onGestureEnd?: (committed: boolean) => void;
|
|
26
|
+
/** Expand the incoming id into leaf ids, for resizing a group: the kit
|
|
27
|
+
* resizes the union AABB of the leaves' bounds and remaps each leaf into
|
|
28
|
+
* the result. Called once at `start()`. Returning `[]` aborts the gesture
|
|
29
|
+
* cleanly. */
|
|
30
|
+
expandIds?: (ids: string[]) => string[];
|
|
31
|
+
/** Per-node resizability predicate. Returns `false` for nodes that should
|
|
32
|
+
* never show resize handles (and thus can't start a resize gesture). The
|
|
33
|
+
* handles hide whenever any selected node is non-resizable. Default: every
|
|
34
|
+
* node resizable. */
|
|
35
|
+
resizable?: (id: string) => boolean;
|
|
36
|
+
/** Give the selection a resize handle at the middle of each edge, as well
|
|
37
|
+
* as each corner: it resizes along one axis with the opposite edge pinned.
|
|
38
|
+
* A side too short on screen for one (`EDGE_HANDLE_MIN_RADII` handle
|
|
39
|
+
* radii) shows none. Read by `<SceneCanvas>` for its overlay and hit-test.
|
|
40
|
+
* Default true. */
|
|
41
|
+
edgeHandles?: boolean;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* The frame selection chrome reads a target in: `poseFrameOf` over the
|
|
46
|
+
* target's bounds, with the helpers the outline, the handles, their hit
|
|
47
|
+
* regions, and the resize and rotate actions all place themselves by.
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
/** Local↔world maps for a chrome target. Local is the target's unrotated box
|
|
51
|
+
* frame; world is where the node is drawn. */
|
|
52
|
+
interface TargetTransform {
|
|
53
|
+
/** No rotation and no `transform`: local is world. */
|
|
54
|
+
identity: boolean;
|
|
55
|
+
/** Target box frame → world. */
|
|
56
|
+
toWorld: Affine;
|
|
57
|
+
/** World → target box frame. `null` when the target's `transform` is
|
|
58
|
+
* singular: it draws nothing, and no world point maps back. */
|
|
59
|
+
toLocal: Affine | null;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Corner resize-handle: world-space center plus the anchor that pins the opposite corner during resize. */
|
|
63
|
+
interface CornerHandle {
|
|
64
|
+
cx: number;
|
|
65
|
+
cy: number;
|
|
66
|
+
anchor: ResizeAnchor;
|
|
67
|
+
}
|
|
68
|
+
/** Which AABB edge a corner sits on, per axis. `'min'` = the x/y origin
|
|
69
|
+
* edge; `'max'` = the origin + extent edge. */
|
|
70
|
+
type CornerEdge = 'min' | 'max';
|
|
71
|
+
/** Where a resize handle sits on one axis: on an edge (`CornerEdge`), or
|
|
72
|
+
* `'mid'`way between them, which is what makes a handle an edge handle. */
|
|
73
|
+
type HandleEdge = CornerEdge | 'mid';
|
|
74
|
+
/** One entry of the canonical resize-handle layout: where the handle sits,
|
|
75
|
+
* which edges it pins, and what a press on it reports. */
|
|
76
|
+
interface ResizeHandleAnchor {
|
|
77
|
+
/** Where the handle sits on x (`'min'` = left, `'mid'` = centered, `'max'` = right). */
|
|
78
|
+
xEdge: HandleEdge;
|
|
79
|
+
/** Where the handle sits on y (`'min'` = top, `'mid'` = centered, `'max'` = bottom). */
|
|
80
|
+
yEdge: HandleEdge;
|
|
81
|
+
/** Anchor that pins the opposite side: the axis-wise opposite of each
|
|
82
|
+
* edge the handle sits on, and `'free'` on an axis it sits mid-way along,
|
|
83
|
+
* which the drag leaves alone. */
|
|
84
|
+
anchor: ResizeAnchor;
|
|
85
|
+
/** Affordance/handle discriminator string for this handle. */
|
|
86
|
+
kind: string;
|
|
87
|
+
/** Short positional tag (`'<xEdge>-<yEdge>'`), e.g. `'min-max'`. */
|
|
88
|
+
tag: string;
|
|
89
|
+
}
|
|
90
|
+
/** A corner entry of {@link RESIZE_HANDLE_ANCHORS}. */
|
|
91
|
+
interface CornerAnchor extends ResizeHandleAnchor {
|
|
92
|
+
/** Which x-edge the corner sits on (`'min'` = left, `'max'` = right). */
|
|
93
|
+
xEdge: CornerEdge;
|
|
94
|
+
/** Which y-edge the corner sits on (`'min'` = top, `'max'` = bottom). */
|
|
95
|
+
yEdge: CornerEdge;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The single ordered resize-handle table: the four corners (TL, TR, BL, BR),
|
|
99
|
+
* then the four edge midpoints (top, right, bottom, left). Order is
|
|
100
|
+
* **load-bearing**: the resize-handle affordance, the selection overlay and
|
|
101
|
+
* `cornerResizeHandles` all iterate it in this sequence, so the i-th handle
|
|
102
|
+
* means the same thing to each. A corner pins the diagonally opposite corner;
|
|
103
|
+
* an edge pins the opposite edge and leaves the other axis free.
|
|
104
|
+
*/
|
|
105
|
+
declare const RESIZE_HANDLE_ANCHORS: readonly ResizeHandleAnchor[];
|
|
106
|
+
/** True for a corner entry of {@link RESIZE_HANDLE_ANCHORS}. */
|
|
107
|
+
declare function isCornerHandle(entry: ResizeHandleAnchor): entry is CornerAnchor;
|
|
108
|
+
/** The corner entries of {@link RESIZE_HANDLE_ANCHORS}, in its order. */
|
|
109
|
+
declare const CORNER_ANCHORS: readonly CornerAnchor[];
|
|
110
|
+
/** An edge handle sits this many hit radii on screen from each corner of the
|
|
111
|
+
* side it is on, at least: under that, it would crowd the corners and leave
|
|
112
|
+
* the body too little room to be grabbed. At the default 8 px radius, a
|
|
113
|
+
* side must span 48 px. */
|
|
114
|
+
declare const EDGE_HANDLE_MIN_RADII = 6;
|
|
115
|
+
/** How a canvas lays out its resize handles. `hitRadiusPx` is the one size
|
|
116
|
+
* the edge-handle decision keys on, because a handle exists to be grabbed:
|
|
117
|
+
* paint and hit-test both read it, so no handle is drawn that cannot be
|
|
118
|
+
* grabbed or grabbable where none is drawn. */
|
|
119
|
+
interface ResizeHandleLayout {
|
|
120
|
+
/** Whether the edge midpoints get handles at all. */
|
|
121
|
+
edges: boolean;
|
|
122
|
+
/** The handles' hit radius, screen px. */
|
|
123
|
+
hitRadiusPx: number;
|
|
124
|
+
}
|
|
125
|
+
/** The handles a body gets in `layout`: every corner, then the edge
|
|
126
|
+
* midpoints when the layout has them and {@link edgeHandlesFit} at its hit
|
|
127
|
+
* radius. The answer the selection overlay paints; the hit-test reaches the
|
|
128
|
+
* same one through the regions' `edgeOf`. */
|
|
129
|
+
declare function resizeHandlesFor(layout: ResizeHandleLayout, body: {
|
|
130
|
+
width: number;
|
|
131
|
+
height: number;
|
|
132
|
+
}, xf: TargetTransform, scale: {
|
|
133
|
+
x: number;
|
|
134
|
+
y: number;
|
|
135
|
+
}): readonly ResizeHandleAnchor[];
|
|
136
|
+
/** Resolve a handle's position for the given bounds, in the bounds' frame:
|
|
137
|
+
* `'min'` → the origin edge, `'max'` → origin + extent, `'mid'` → between. */
|
|
138
|
+
declare function handlePoint(bounds: FramedBox, entry: Pick<ResizeHandleAnchor, 'xEdge' | 'yEdge'>): {
|
|
139
|
+
x: number;
|
|
140
|
+
y: number;
|
|
141
|
+
};
|
|
142
|
+
/** @deprecated Use {@link handlePoint}, which also places edge handles. */
|
|
143
|
+
declare const cornerPoint: (bounds: FramedBox, entry: Pick<CornerAnchor, 'xEdge' | 'yEdge'>) => {
|
|
144
|
+
x: number;
|
|
145
|
+
y: number;
|
|
146
|
+
};
|
|
147
|
+
/** Standard 4-corner resize-handle layout: each corner pins the opposite
|
|
148
|
+
* corner via an anchor of `{x: 'min'|'max', y: 'min'|'max'}` so dragging it
|
|
149
|
+
* scales the box from the fixed opposite corner. Decodes {@link CORNER_ANCHORS}
|
|
150
|
+
* against `bounds`; edge handles are the affordance's, which knows the view. */
|
|
151
|
+
declare function cornerResizeHandles(bounds: FramedBox): CornerHandle[];
|
|
152
|
+
/** Square hit-test for a handle: returns true if `(px, py)` is within
|
|
153
|
+
* `radius` of the handle center on both axes. */
|
|
154
|
+
declare function hitCornerHandle(handle: CornerHandle, px: number, py: number, radius: number): boolean;
|
|
155
|
+
/** The corner that does NOT move under a resize gesture with the given
|
|
156
|
+
* anchor. Used by the rotated-resize math to pin a world-space invariant.
|
|
157
|
+
*
|
|
158
|
+
* Convention: `anchor.x === 'min'` means the min-x (left) edge is the
|
|
159
|
+
* fixed anchor, so the fixed corner sits at `x = bounds.x` (min-x).
|
|
160
|
+
* `anchor.x === 'max'` means the max-x (right) edge is fixed, so the
|
|
161
|
+
* fixed corner sits at `x = bounds.x + bounds.width`. `'free'` on an
|
|
162
|
+
* axis (an edge handle's other axis) pins the bounds' center on it: a drag
|
|
163
|
+
* leaves that extent alone, and an aspect lock grows it about the center. */
|
|
164
|
+
declare function fixedCornerOf(bounds: FramedBox, anchor: ResizeAnchor): {
|
|
165
|
+
x: number;
|
|
166
|
+
y: number;
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
export { CORNER_ANCHORS as C, EDGE_HANDLE_MIN_RADII as E, type HandleEdge as H, RESIZE_HANDLE_ANCHORS as R, type TargetTransform as T, type UseResizeOptions as U, type CornerAnchor as a, type CornerHandle as b, type ResizeHandleAnchor as c, type ResizeHandleLayout as d, cornerPoint as e, cornerResizeHandles as f, fixedCornerOf as g, handlePoint as h, hitCornerHandle as i, isCornerHandle as j, type CornerEdge as k, resizeHandlesFor as r };
|