@weasel-js/core 1.9.3 → 1.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +356 -0
- package/README.md +2 -2
- package/dist/WeaselProvider.js +5 -5
- package/dist/affordances/composeAffordanceLayer.js +10 -20
- package/dist/affordances/composeAffordanceLayer.js.map +1 -1
- package/dist/affordances/cornerResize.js +25 -17
- package/dist/affordances/cornerResize.js.map +1 -1
- package/dist/affordances/hitAffordanceRegions.js +27 -20
- package/dist/affordances/hitAffordanceRegions.js.map +1 -1
- package/dist/affordances/rotationHandle.js +18 -18
- package/dist/affordances/rotationHandle.js.map +1 -1
- package/dist/animation/behaviors/momentum.js +93 -55
- package/dist/animation/behaviors/momentum.js.map +1 -1
- package/dist/animation/loop.js +10 -12
- package/dist/animation/loop.js.map +1 -1
- package/dist/animation/reflow.js +8 -8
- package/dist/animation/reflow.js.map +1 -1
- package/dist/animation/stagger.js +64 -56
- package/dist/animation/stagger.js.map +1 -1
- package/dist/animation/timeline/booking.js +62 -54
- package/dist/animation/timeline/booking.js.map +1 -1
- package/dist/animation/timeline/createTimeline.js +85 -76
- package/dist/animation/timeline/createTimeline.js.map +1 -1
- package/dist/animation/timeline/sampleTrack.js +13 -5
- package/dist/animation/timeline/sampleTrack.js.map +1 -1
- package/dist/animation/useAnimator.js +45 -35
- package/dist/animation/useAnimator.js.map +1 -1
- package/dist/animation/wrappers/animateLifecycle.js +31 -24
- package/dist/animation/wrappers/animateLifecycle.js.map +1 -1
- package/dist/animation/wrappers/animateOnSetPose.js +28 -26
- package/dist/animation/wrappers/animateOnSetPose.js.map +1 -1
- package/dist/animation/wrappers/instantPose.js +13 -0
- package/dist/animation/wrappers/instantPose.js.map +1 -0
- package/dist/{poseDescriptor-D-OH-tu5.d.ts → autoPoseDescriptor-Ct7yqivU.d.ts} +28 -3
- package/dist/barrel/chrome.js +16 -0
- package/dist/barrel/input.js +19 -0
- package/dist/barrel/interactions.js +42 -0
- package/dist/barrel/paint.js +18 -0
- package/dist/barrel/paths.js +19 -0
- package/dist/barrel/renderer.js +20 -0
- package/dist/barrel/routing.js +51 -0
- package/dist/barrel/text.js +18 -0
- package/dist/barrel/viewport.js +52 -0
- package/dist/builtins-DPcdghtB.d.ts +1223 -0
- package/dist/canvas/Canvas.js +363 -448
- package/dist/canvas/Canvas.js.map +1 -1
- package/dist/canvas/CanvasView.js +164 -165
- package/dist/canvas/CanvasView.js.map +1 -1
- package/dist/canvas/CursorCoordsHud.js +37 -32
- package/dist/canvas/CursorCoordsHud.js.map +1 -1
- package/dist/canvas/DrawCanvas.js +49 -43
- package/dist/canvas/DrawCanvas.js.map +1 -1
- package/dist/canvas/MinimapCanvas.js +26 -25
- package/dist/canvas/MinimapCanvas.js.map +1 -1
- package/dist/canvas/NodeShape.js +59 -377
- package/dist/canvas/NodeShape.js.map +1 -1
- package/dist/canvas/PickHud.js +50 -47
- package/dist/canvas/PickHud.js.map +1 -1
- package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js +167 -0
- package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js.map +1 -0
- package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js +13 -13
- package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js +67 -0
- package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js.map +1 -0
- package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js +16 -0
- package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js.map +1 -0
- package/dist/canvas/SceneCanvas/coordTrace.js +10 -0
- package/dist/canvas/SceneCanvas/coordTrace.js.map +1 -0
- package/dist/canvas/SceneCanvas/defaultNodeProperties.js +112 -70
- package/dist/canvas/SceneCanvas/defaultNodeProperties.js.map +1 -1
- package/dist/canvas/SceneCanvas/defaultNodeRouting.js +9 -8
- package/dist/canvas/SceneCanvas/defaultNodeRouting.js.map +1 -1
- package/dist/canvas/SceneCanvas/features.js +1 -0
- package/dist/canvas/SceneCanvas/features.js.map +1 -1
- package/dist/canvas/SceneCanvas/isDev.js +12 -0
- package/dist/canvas/SceneCanvas/isDev.js.map +1 -0
- package/dist/canvas/SceneCanvas/poseGeometry.js +29 -28
- package/dist/canvas/SceneCanvas/poseGeometry.js.map +1 -1
- package/dist/canvas/SceneCanvas/poseRegistrars.js +13 -0
- package/dist/canvas/SceneCanvas/poseRegistrars.js.map +1 -0
- package/dist/canvas/SceneCanvas/props.js +38 -0
- package/dist/canvas/SceneCanvas/props.js.map +1 -0
- package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js +21 -62
- package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js.map +1 -1
- package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js.map +1 -1
- package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js +46 -48
- package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneSelectTool.js +33 -33
- package/dist/canvas/SceneCanvas/useSceneSelectTool.js.map +1 -1
- package/dist/canvas/SceneCanvas.js +534 -788
- package/dist/canvas/SceneCanvas.js.map +1 -1
- package/dist/canvas/SceneViewCanvas.js +45 -43
- package/dist/canvas/SceneViewCanvas.js.map +1 -1
- package/dist/canvas/buildSceneLayer.js +91 -0
- package/dist/canvas/buildSceneLayer.js.map +1 -0
- package/dist/canvas/buildSceneTree.js +16 -19
- package/dist/canvas/buildSceneTree.js.map +1 -1
- package/dist/canvas/canvasRenderer.js +68 -52
- package/dist/canvas/canvasRenderer.js.map +1 -1
- package/dist/canvas/deps/changes.js +13 -0
- package/dist/canvas/deps/changes.js.map +1 -0
- package/dist/canvas/deps/editAnchors.js +28 -28
- package/dist/canvas/deps/insert.js +119 -91
- package/dist/canvas/deps/insert.js.map +1 -1
- package/dist/canvas/deps/slice.js +46 -45
- package/dist/canvas/deps/slice.js.map +1 -1
- package/dist/canvas/deps/textEdit.js +10 -9
- package/dist/canvas/deps/textEdit.js.map +1 -1
- package/dist/canvas/derivedPath.js +46 -23
- package/dist/canvas/derivedPath.js.map +1 -1
- package/dist/canvas/getNodeAtPoint.js +7 -7
- package/dist/canvas/getNodeAtPoint.js.map +1 -1
- package/dist/canvas/hud.module.js +1 -1
- package/dist/canvas/hud.module.js.map +1 -1
- package/dist/canvas/kitRequirements.js +2 -2
- package/dist/canvas/kitRequirements.js.map +1 -1
- package/dist/canvas/layerOrder.js +13 -6
- package/dist/canvas/layerOrder.js.map +1 -1
- package/dist/canvas/minimapMath.js +12 -10
- package/dist/canvas/minimapMath.js.map +1 -1
- package/dist/canvas/nodeShapes/derivedPainter.js +34 -0
- package/dist/canvas/nodeShapes/derivedPainter.js.map +1 -0
- package/dist/canvas/nodeShapes/imagePainter.js +87 -0
- package/dist/canvas/nodeShapes/imagePainter.js.map +1 -0
- package/dist/canvas/nodeShapes/memo.js +9 -0
- package/dist/canvas/nodeShapes/memo.js.map +1 -0
- package/dist/canvas/nodeShapes/nodePaint.js +57 -0
- package/dist/canvas/nodeShapes/nodePaint.js.map +1 -0
- package/dist/canvas/nodeShapes/pathPainter.js +38 -0
- package/dist/canvas/nodeShapes/pathPainter.js.map +1 -0
- package/dist/canvas/nodeShapes/poseBox.js +20 -0
- package/dist/canvas/nodeShapes/poseBox.js.map +1 -0
- package/dist/canvas/nodeShapes/rectFallbackPainter.js +38 -0
- package/dist/canvas/nodeShapes/rectFallbackPainter.js.map +1 -0
- package/dist/canvas/nodeShapes/shapePainter.js +72 -0
- package/dist/canvas/nodeShapes/shapePainter.js.map +1 -0
- package/dist/canvas/nodeShapes/textPainter.js +55 -0
- package/dist/canvas/nodeShapes/textPainter.js.map +1 -0
- package/dist/canvas/overlayRoleStrokes.js.map +1 -1
- package/dist/canvas/paintCull.js +10 -11
- package/dist/canvas/paintCull.js.map +1 -1
- package/dist/canvas/pickWalk.js +52 -63
- package/dist/canvas/pickWalk.js.map +1 -1
- package/dist/canvas/poseRotation.js +11 -23
- package/dist/canvas/poseRotation.js.map +1 -1
- package/dist/canvas/renderDebugSnapshot.js +5 -5
- package/dist/canvas/renderSceneToPixels.js +3 -1
- package/dist/canvas/renderSceneToPixels.js.map +1 -1
- package/dist/canvas/sceneAdapter.js +66 -148
- package/dist/canvas/sceneAdapter.js.map +1 -1
- package/dist/canvas/sceneClipboard.js +112 -0
- package/dist/canvas/sceneClipboard.js.map +1 -0
- package/dist/canvas/sceneSlotWiring.js +4 -4
- package/dist/canvas/sceneSlotWiring.js.map +1 -1
- package/dist/canvas/sceneViewRender.js +39 -40
- package/dist/canvas/sceneViewRender.js.map +1 -1
- package/dist/canvas/useCanvasRenderer.js +14 -6
- package/dist/canvas/useCanvasRenderer.js.map +1 -1
- package/dist/canvas/useCanvasView.js +58 -0
- package/dist/canvas/useCanvasView.js.map +1 -0
- package/dist/canvas/useFrameLoop.js +35 -26
- package/dist/canvas/useFrameLoop.js.map +1 -1
- package/dist/canvas/useSceneLayerList.js +21 -0
- package/dist/canvas/useSceneLayerList.js.map +1 -0
- package/dist/clipboard.d.ts +10 -6
- package/dist/clone.d.ts +4 -3
- package/dist/core/adapters/arrayAdapter.js +48 -39
- package/dist/core/adapters/arrayAdapter.js.map +1 -1
- package/dist/core/device/index.js +5 -4
- package/dist/core/device/useDeviceProfile.js +38 -44
- package/dist/core/device/useDeviceProfile.js.map +1 -1
- package/dist/core/device/watchDevicePixelRatio.js +17 -0
- package/dist/core/device/watchDevicePixelRatio.js.map +1 -0
- package/dist/core/fillInPoseFrame.js.map +1 -1
- package/dist/core/geometry/poseDescriptor.js +21 -19
- package/dist/core/geometry/poseDescriptor.js.map +1 -1
- package/dist/core/geometry/poseFrame.js +44 -0
- package/dist/core/geometry/poseFrame.js.map +1 -0
- package/dist/core/geometry/poseRotation.js.map +1 -1
- package/dist/core/geometry/regionHit.js +9 -10
- package/dist/core/geometry/regionHit.js.map +1 -1
- package/dist/core/geometry/unionBounds.js +31 -29
- package/dist/core/geometry/unionBounds.js.map +1 -1
- package/dist/core/isPlainObject.js +2 -11
- package/dist/core/ops/arrange.js +1 -0
- package/dist/core/ops/arrange.js.map +1 -1
- package/dist/core/ops/create.js +10 -5
- package/dist/core/ops/create.js.map +1 -1
- package/dist/core/ops/delete.js +12 -24
- package/dist/core/ops/delete.js.map +1 -1
- package/dist/core/ops/reorder/index.js +43 -40
- package/dist/core/ops/reorder/index.js.map +1 -1
- package/dist/core/ops/reorder/setChildOrder.js +34 -0
- package/dist/core/ops/reorder/setChildOrder.js.map +1 -0
- package/dist/core/paintKinds.js +5 -5
- package/dist/core/paintKinds.js.map +1 -1
- package/dist/core/scene/NodeProperties.js.map +1 -1
- package/dist/core/scene/appliedLog.js +37 -0
- package/dist/core/scene/appliedLog.js.map +1 -0
- package/dist/core/scene/arrivalWindow.js +101 -0
- package/dist/core/scene/arrivalWindow.js.map +1 -0
- package/dist/core/scene/derivedPath.js.map +1 -1
- package/dist/core/scene/historyFacade.js +84 -0
- package/dist/core/scene/historyFacade.js.map +1 -0
- package/dist/core/scene/kitOps.js +173 -0
- package/dist/core/scene/kitOps.js.map +1 -0
- package/dist/core/scene/layerStack.js +38 -0
- package/dist/core/scene/layerStack.js.map +1 -0
- package/dist/core/scene/lockGuard.js +37 -0
- package/dist/core/scene/lockGuard.js.map +1 -0
- package/dist/core/scene/nodeFnFields.js +5 -6
- package/dist/core/scene/nodeFnFields.js.map +1 -1
- package/dist/core/scene/nodeMemo.js +45 -19
- package/dist/core/scene/nodeMemo.js.map +1 -1
- package/dist/core/scene/nodeStore.js +126 -0
- package/dist/core/scene/nodeStore.js.map +1 -0
- package/dist/core/scene/pickability.js +6 -0
- package/dist/core/scene/pickability.js.map +1 -0
- package/dist/core/scene/poseFeed.js +38 -38
- package/dist/core/scene/poseFeed.js.map +1 -1
- package/dist/core/scene/poseOverrides.js +34 -38
- package/dist/core/scene/poseOverrides.js.map +1 -1
- package/dist/core/scene/renderOrder.js +84 -0
- package/dist/core/scene/renderOrder.js.map +1 -0
- package/dist/core/scene/scene.js +289 -866
- package/dist/core/scene/scene.js.map +1 -1
- package/dist/core/scene/serialization.js +68 -0
- package/dist/core/scene/serialization.js.map +1 -0
- package/dist/core/scene/treeOrder.js +13 -0
- package/dist/core/scene/treeOrder.js.map +1 -0
- package/dist/core/scene/types.js.map +1 -1
- package/dist/core/viewport/meanScale.js +1 -1
- package/dist/core/viewport/meanScale.js.map +1 -1
- package/dist/core/viewport/view.js +12 -12
- package/dist/core/viewport/view.js.map +1 -1
- package/dist/core/viewport/zoomBounds.js +10 -8
- package/dist/core/viewport/zoomBounds.js.map +1 -1
- package/dist/{cornerHandles-BCrDp_mH.d.ts → cornerHandles-CtCb8a3G.d.ts} +1 -1
- package/dist/debug/createDebugOverlayLayer.js +14 -14
- package/dist/debug/createDebugOverlayLayer.js.map +1 -1
- package/dist/debug/flag.js +2 -41
- package/dist/features/chrome-caps/useHoverTracking.js +22 -17
- package/dist/features/chrome-caps/useHoverTracking.js.map +1 -1
- package/dist/features/focus/gateLayer.js +3 -4
- package/dist/features/focus/gateLayer.js.map +1 -1
- package/dist/features/images/imageCache.js +19 -9
- package/dist/features/images/imageCache.js.map +1 -1
- package/dist/features/ingestion/contentHandlers.js +14 -11
- package/dist/features/ingestion/contentHandlers.js.map +1 -1
- package/dist/features/ingestion/index.js +1 -1
- package/dist/features/ingestion/registerKitHandlers.js +7 -7
- package/dist/features/ingestion/weaselJsonHandler.js +17 -14
- package/dist/features/ingestion/weaselJsonHandler.js.map +1 -1
- package/dist/features/meshPaint/lazyKind.js +201 -35
- package/dist/features/meshPaint/lazyKind.js.map +1 -1
- package/dist/features/meshPaint/meshPaint.js +82 -79
- package/dist/features/meshPaint/meshPaint.js.map +1 -1
- package/dist/features/minimap/createMinimapContribution.js +42 -42
- package/dist/features/minimap/layers.js +44 -62
- package/dist/features/minimap/layers.js.map +1 -1
- package/dist/features/parallax/createParallaxPlane.js +10 -14
- package/dist/features/parallax/createParallaxPlane.js.map +1 -1
- package/dist/features/paths/anchorEdits.js +19 -8
- package/dist/features/paths/anchorEdits.js.map +1 -1
- package/dist/features/paths/anchors.js +31 -26
- package/dist/features/paths/anchors.js.map +1 -1
- package/dist/features/paths/booleans.js +2 -2
- package/dist/features/paths/index.js +13 -11
- package/dist/features/paths/markerCommands.js +37 -36
- package/dist/features/paths/markerCommands.js.map +1 -1
- package/dist/features/paths/pathInWorld.js +19 -19
- package/dist/features/paths/pathInWorld.js.map +1 -1
- package/dist/features/paths/pathLayer.js.map +1 -1
- package/dist/features/paths/strokeToPath.js +40 -0
- package/dist/features/paths/strokeToPath.js.map +1 -0
- package/dist/features/paths/tessellate/stroke.js.map +1 -1
- package/dist/features/patterns/commandPaint.js +18 -0
- package/dist/features/patterns/commandPaint.js.map +1 -0
- package/dist/features/patterns/index.js +5 -17
- package/dist/features/patterns/index.js.map +1 -1
- package/dist/features/patterns/rasterizeTile.js +17 -0
- package/dist/features/patterns/rasterizeTile.js.map +1 -0
- package/dist/features/patterns/resolveSpec.js +52 -44
- package/dist/features/patterns/resolveSpec.js.map +1 -1
- package/dist/features/poseRun/usePoseRun.js +8 -3
- package/dist/features/poseRun/usePoseRun.js.map +1 -1
- package/dist/features/selection/SelectionContext.js +5 -0
- package/dist/features/selection/SelectionContext.js.map +1 -1
- package/dist/features/selection/overlay.js +18 -18
- package/dist/features/selection/overlay.js.map +1 -1
- package/dist/features/text/domOffsets.js +82 -0
- package/dist/features/text/domOffsets.js.map +1 -0
- package/dist/features/text/domRuns.js +103 -131
- package/dist/features/text/domRuns.js.map +1 -1
- package/dist/features/text/hitTest.js +5 -2
- package/dist/features/text/hitTest.js.map +1 -1
- package/dist/features/text/isTextData.js +8 -0
- package/dist/features/text/isTextData.js.map +1 -0
- package/dist/features/text/overlayDirection.js +15 -0
- package/dist/features/text/overlayDirection.js.map +1 -0
- package/dist/features/text/runs/rangeStyle.js +32 -34
- package/dist/features/text/runs/rangeStyle.js.map +1 -1
- package/dist/features/text/textCommand.js +34 -33
- package/dist/features/text/textCommand.js.map +1 -1
- package/dist/features/text/textToPath.js +40 -40
- package/dist/features/text/textToPath.js.map +1 -1
- package/dist/features/text/useSceneTextEdit.js +76 -82
- package/dist/features/text/useSceneTextEdit.js.map +1 -1
- package/dist/features/text/useTextEdit.js +184 -160
- package/dist/features/text/useTextEdit.js.map +1 -1
- package/dist/features/tiling/createTiledLayer.js +24 -22
- package/dist/features/tiling/createTiledLayer.js.map +1 -1
- package/dist/index.d.ts +11033 -7749
- package/dist/index.js +316 -309
- package/dist/input/keyState.js +42 -43
- package/dist/input/keyState.js.map +1 -1
- package/dist/input/useKeyModifiers.js +11 -0
- package/dist/input/useKeyModifiers.js.map +1 -0
- package/dist/interactions/actions/align/align.js +8 -8
- package/dist/interactions/actions/clipboard/clipboardOps.js +34 -32
- package/dist/interactions/actions/clipboard/clipboardOps.js.map +1 -1
- package/dist/interactions/actions/clipboard/materializePaste.js +10 -7
- package/dist/interactions/actions/clipboard/materializePaste.js.map +1 -1
- package/dist/interactions/actions/clipboard/wireFormat.js.map +1 -1
- package/dist/interactions/actions/clone/behaviors/cloneByAltDrag.js.map +1 -1
- package/dist/interactions/actions/defaultCommitAdapter.js +20 -18
- package/dist/interactions/actions/defaultCommitAdapter.js.map +1 -1
- package/dist/interactions/actions/defaults/align.js +9 -10
- package/dist/interactions/actions/defaults/align.js.map +1 -1
- package/dist/interactions/actions/defaults/anchorEditing.js +59 -81
- package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
- package/dist/interactions/actions/defaults/areaSelect.js +35 -38
- package/dist/interactions/actions/defaults/areaSelect.js.map +1 -1
- package/dist/interactions/actions/defaults/clipboard.js +26 -10
- package/dist/interactions/actions/defaults/clipboard.js.map +1 -1
- package/dist/interactions/actions/defaults/clone.js +44 -60
- package/dist/interactions/actions/defaults/clone.js.map +1 -1
- package/dist/interactions/actions/defaults/copySubtree.js +40 -0
- package/dist/interactions/actions/defaults/copySubtree.js.map +1 -0
- package/dist/interactions/actions/defaults/distribute.js +14 -13
- package/dist/interactions/actions/defaults/distribute.js.map +1 -1
- package/dist/interactions/actions/defaults/duplicate.js +17 -57
- package/dist/interactions/actions/defaults/duplicate.js.map +1 -1
- package/dist/interactions/actions/defaults/editAnchors.js +18 -18
- package/dist/interactions/actions/defaults/enterTextEdit.js.map +1 -1
- package/dist/interactions/actions/defaults/flip.js +52 -46
- package/dist/interactions/actions/defaults/flip.js.map +1 -1
- package/dist/interactions/actions/defaults/group.js +43 -48
- package/dist/interactions/actions/defaults/group.js.map +1 -1
- package/dist/interactions/actions/defaults/ingest.js +35 -33
- package/dist/interactions/actions/defaults/ingest.js.map +1 -1
- package/dist/interactions/actions/defaults/insert.js +50 -51
- package/dist/interactions/actions/defaults/insert.js.map +1 -1
- package/dist/interactions/actions/defaults/insertPathAnchor.js +7 -7
- package/dist/interactions/actions/defaults/lassoSelect.js +67 -70
- package/dist/interactions/actions/defaults/lassoSelect.js.map +1 -1
- package/dist/interactions/actions/defaults/move.js +267 -249
- package/dist/interactions/actions/defaults/move.js.map +1 -1
- package/dist/interactions/actions/defaults/nudge.js +40 -68
- package/dist/interactions/actions/defaults/nudge.js.map +1 -1
- package/dist/interactions/actions/defaults/nudgeSteps.js +37 -0
- package/dist/interactions/actions/defaults/nudgeSteps.js.map +1 -0
- package/dist/interactions/actions/defaults/reorder.js +2 -0
- package/dist/interactions/actions/defaults/reorder.js.map +1 -1
- package/dist/interactions/actions/defaults/resize.js +104 -98
- package/dist/interactions/actions/defaults/resize.js.map +1 -1
- package/dist/interactions/actions/defaults/rotate.js +111 -110
- package/dist/interactions/actions/defaults/rotate.js.map +1 -1
- package/dist/interactions/actions/defaults/setFill.js +7 -7
- package/dist/interactions/actions/defaults/setFillOpacity.js +4 -4
- package/dist/interactions/actions/defaults/setStroke.js +12 -12
- package/dist/interactions/actions/defaults/setStrokeOpacity.js +6 -6
- package/dist/interactions/actions/defaults/sliceOps.js +19 -19
- package/dist/interactions/actions/defaults/viewportDragPan.js +37 -26
- package/dist/interactions/actions/defaults/viewportDragPan.js.map +1 -1
- package/dist/interactions/actions/edit-anchors/geometry.js +28 -23
- package/dist/interactions/actions/edit-anchors/geometry.js.map +1 -1
- package/dist/interactions/actions/flip/helpers.js +30 -17
- package/dist/interactions/actions/flip/helpers.js.map +1 -1
- package/dist/interactions/actions/hitSelection.js +8 -0
- package/dist/interactions/actions/hitSelection.js.map +1 -0
- package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js +14 -18
- package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js.map +1 -1
- package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js +5 -5
- package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js.map +1 -1
- package/dist/interactions/actions/move/behaviors/snapToContainer.js +32 -21
- package/dist/interactions/actions/move/behaviors/snapToContainer.js.map +1 -1
- package/dist/interactions/actions/move/gestureAdapter.js +32 -15
- package/dist/interactions/actions/move/gestureAdapter.js.map +1 -1
- package/dist/interactions/actions/move/landedDescendants.js +33 -0
- package/dist/interactions/actions/move/landedDescendants.js.map +1 -0
- package/dist/interactions/actions/outlines/createOutlines.js +18 -18
- package/dist/interactions/actions/poseDescriptorDep.js +16 -4
- package/dist/interactions/actions/poseDescriptorDep.js.map +1 -1
- package/dist/interactions/actions/poseFrame.js +11 -6
- package/dist/interactions/actions/poseFrame.js.map +1 -1
- package/dist/interactions/actions/previewOverrides.js +5 -5
- package/dist/interactions/actions/previewOverrides.js.map +1 -1
- package/dist/interactions/actions/selectionSubtree.js +69 -0
- package/dist/interactions/actions/selectionSubtree.js.map +1 -0
- package/dist/interactions/actions/useStandardActions.js +66 -62
- package/dist/interactions/actions/useStandardActions.js.map +1 -1
- package/dist/interactions/gestures/dragGesture/dragGesture.js +4 -7
- package/dist/interactions/gestures/dragGesture/dragGesture.js.map +1 -1
- package/dist/interactions/gestures/dragGesture/dragPointOf.js +23 -0
- package/dist/interactions/gestures/dragGesture/dragPointOf.js.map +1 -0
- package/dist/interactions/gestures/handleDrag/handleDrag.js +21 -26
- package/dist/interactions/gestures/handleDrag/handleDrag.js.map +1 -1
- package/dist/interactions/gestures/pointerDrag/pointerDrag.js +8 -6
- package/dist/interactions/gestures/pointerDrag/pointerDrag.js.map +1 -1
- package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js +8 -4
- package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js.map +1 -1
- package/dist/{math-Drrw4ewZ.d.ts → math-J-ACHyEg.d.ts} +1 -2
- package/dist/math.d.ts +2 -3
- package/dist/move.d.ts +12 -11
- package/dist/{originProjection-DEklpDc_.d.ts → originProjection-gHnOup4e.d.ts} +1 -1
- package/dist/{registerProgram-BMZRDgrh.d.ts → registerProgram-T9S_PfAX.d.ts} +18 -7
- package/dist/renderer/DrawCommand.js.map +1 -1
- package/dist/renderer/WeaselRenderer.js +75 -73
- package/dist/renderer/WeaselRenderer.js.map +1 -1
- package/dist/renderer/cache/GLImageCache.js +15 -5
- package/dist/renderer/cache/GLImageCache.js.map +1 -1
- package/dist/renderer/cache/GLMeshCache.js +23 -23
- package/dist/renderer/cache/GLMeshCache.js.map +1 -1
- package/dist/renderer/cache/GLTextureCache.js +18 -1
- package/dist/renderer/cache/GLTextureCache.js.map +1 -1
- package/dist/renderer/cache/cache.js.map +1 -1
- package/dist/renderer/cache/markerCommandCache.js.map +1 -1
- package/dist/renderer/cache/strokeMeshCache.js.map +1 -1
- package/dist/renderer/cullDrawCommands.js +11 -11
- package/dist/renderer/draw/batch.js +133 -0
- package/dist/renderer/draw/batch.js.map +1 -0
- package/dist/renderer/draw/clip.js +89 -0
- package/dist/renderer/draw/clip.js.map +1 -0
- package/dist/renderer/draw/customShader.js +230 -0
- package/dist/renderer/draw/customShader.js.map +1 -0
- package/dist/renderer/draw/drawTriangles.js +8 -0
- package/dist/renderer/draw/drawTriangles.js.map +1 -0
- package/dist/renderer/draw/effects.js +28 -0
- package/dist/renderer/draw/effects.js.map +1 -0
- package/dist/renderer/draw/flushBatch.js +35 -0
- package/dist/renderer/draw/flushBatch.js.map +1 -0
- package/dist/renderer/draw/gradient.js +90 -0
- package/dist/renderer/draw/gradient.js.map +1 -0
- package/dist/renderer/draw/image.js +38 -0
- package/dist/renderer/draw/image.js.map +1 -0
- package/dist/renderer/draw/mesh.js +16 -0
- package/dist/renderer/draw/mesh.js.map +1 -0
- package/dist/renderer/draw/paintBind.js +70 -0
- package/dist/renderer/draw/paintBind.js.map +1 -0
- package/dist/renderer/draw/pathPaint.js +142 -0
- package/dist/renderer/draw/pathPaint.js.map +1 -0
- package/dist/renderer/draw/scratchPass.js +83 -0
- package/dist/renderer/draw/scratchPass.js.map +1 -0
- package/dist/renderer/draw/stencil.js +28 -0
- package/dist/renderer/draw/stencil.js.map +1 -0
- package/dist/renderer/draw/text.js +167 -0
- package/dist/renderer/draw/text.js.map +1 -0
- package/dist/renderer/draw/uniforms.js +77 -0
- package/dist/renderer/draw/uniforms.js.map +1 -0
- package/dist/renderer/draw.js +60 -1116
- package/dist/renderer/draw.js.map +1 -1
- package/dist/renderer/effects/EffectTargets.js +3 -0
- package/dist/renderer/effects/EffectTargets.js.map +1 -1
- package/dist/renderer/effects/composite.js +7 -5
- package/dist/renderer/effects/composite.js.map +1 -1
- package/dist/renderer/index.js +18 -17
- package/dist/renderer/math/color.js +63 -83
- package/dist/renderer/math/color.js.map +1 -1
- package/dist/renderer/math/mat3.js +15 -11
- package/dist/renderer/math/mat3.js.map +1 -1
- package/dist/renderer/math/viewToMat3.js +1 -1
- package/dist/renderer/math/viewToMat3.js.map +1 -1
- package/dist/renderer/shaders/ShaderProgram.js +13 -13
- package/dist/renderer/shaders/ShaderProgram.js.map +1 -1
- package/dist/renderer/shaders/glyphPaint.js +3 -3
- package/dist/renderer/shaders/glyphPaint.js.map +1 -1
- package/dist/renderer/shaders/gradFill.js +2 -1
- package/dist/renderer/shaders/gradFill.js.map +1 -1
- package/dist/renderer/shaders/pathFill.js +2 -1
- package/dist/renderer/shaders/pathFill.js.map +1 -1
- package/dist/renderer/shaders/patternFill.js +2 -1
- package/dist/renderer/shaders/patternFill.js.map +1 -1
- package/dist/renderer/shaders/registerProgram.js.map +1 -1
- package/dist/renderer/strokeLengths.js.map +1 -1
- package/dist/renderer/textures/registerTexture.js +25 -5
- package/dist/renderer/textures/registerTexture.js.map +1 -1
- package/dist/renderer.d.ts +16 -15
- package/dist/renderer.js +17 -16
- package/dist/resize.d.ts +5 -6
- package/dist/resize.js +5 -5
- package/dist/style.css +1 -1
- package/dist/test-hook/install.js +12 -6
- package/dist/test-hook/install.js.map +1 -1
- package/dist/{test-seams-CuIxe0xY.d.ts → test-seams-DM2B87-g.d.ts} +4 -4
- package/dist/test-seams.d.ts +2 -2
- package/dist/tools/builtin/ellipse/useEllipseTool.js +1 -0
- package/dist/tools/builtin/ellipse/useEllipseTool.js.map +1 -1
- package/dist/tools/builtin/hand/useHandTool.js +1 -0
- package/dist/tools/builtin/hand/useHandTool.js.map +1 -1
- package/dist/tools/builtin/lasso/useLassoTool.js +11 -11
- package/dist/tools/builtin/lasso/useLassoTool.js.map +1 -1
- package/dist/tools/builtin/line/useLineTool.js +1 -0
- package/dist/tools/builtin/line/useLineTool.js.map +1 -1
- package/dist/tools/builtin/pen/usePenTool.js +153 -103
- package/dist/tools/builtin/pen/usePenTool.js.map +1 -1
- package/dist/tools/builtin/pencil/usePencilTool.js +1 -0
- package/dist/tools/builtin/pencil/usePencilTool.js.map +1 -1
- package/dist/tools/builtin/polygon/usePolygonTool.js +13 -8
- package/dist/tools/builtin/polygon/usePolygonTool.js.map +1 -1
- package/dist/tools/builtin/rect/useRectTool.js +1 -0
- package/dist/tools/builtin/rect/useRectTool.js.map +1 -1
- package/dist/tools/builtin/select/selectionContributions.js +24 -23
- package/dist/tools/builtin/select/selectionContributions.js.map +1 -1
- package/dist/tools/builtin/select/useSelectTool.js +51 -48
- package/dist/tools/builtin/select/useSelectTool.js.map +1 -1
- package/dist/tools/builtin/shared/pointerFollower.js +17 -0
- package/dist/tools/builtin/shared/pointerFollower.js.map +1 -0
- package/dist/tools/builtin/slice/useSliceTool.js +49 -54
- package/dist/tools/builtin/slice/useSliceTool.js.map +1 -1
- package/dist/tools/builtin/star/useStarTool.js +22 -16
- package/dist/tools/builtin/star/useStarTool.js.map +1 -1
- package/dist/tools/builtin/text/useTextTool.js +1 -0
- package/dist/tools/builtin/text/useTextTool.js.map +1 -1
- package/dist/tools/useKeybindings.js +14 -30
- package/dist/tools/useKeybindings.js.map +1 -1
- package/dist/{types-B_9g6hMM.d.ts → types-B4iJRHC3.d.ts} +5 -1
- package/dist/{types-A37hYkeR.d.ts → types-k-5Oqh-U.d.ts} +31 -7
- package/dist/util/color.js +3 -3
- package/dist/util/color.js.map +1 -1
- package/dist/util/paint.js.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +20 -18
- package/dist/autoPoseDescriptor-vCdt55xm.d.ts +0 -27
- package/dist/builtins-C-VgUlWI.d.ts +0 -4514
- package/dist/core/isPlainObject.js.map +0 -1
- package/dist/debug/flag.js.map +0 -1
- package/dist/interactions/actions/defaults/freshNodeId.js +0 -10
- package/dist/interactions/actions/defaults/freshNodeId.js.map +0 -1
- package/dist/renderer/shaders/imageFill.js +0 -14
- package/dist/renderer/shaders/imageFill.js.map +0 -1
- package/dist/tools/prefs.js +0 -62
- package/dist/tools/prefs.js.map +0 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { useVisibleRaf as e } from "../../scheduling/useVisibleRaf.js";
|
|
2
|
-
import {
|
|
2
|
+
import { charOffsetToDomPosition as t, domPositionToCharOffset as n } from "./domOffsets.js";
|
|
3
|
+
import { SMALL_CAPS_SCALE_PROPERTY as r, appendOverlayText as i, domToRuns as a, normalizeSmallCaps as o, runsToDom as s } from "./domRuns.js";
|
|
3
4
|
import { applyStyleToRange as c, patchRangeStyle as l, runsCarryStyling as u, styleAtRange as d, supersededKey as f } from "./runs/rangeStyle.js";
|
|
4
5
|
import { nodeHasFlag as p, setFlagOverRange as m, unboldPatch as h } from "./runs/flagRange.js";
|
|
5
6
|
import { rangeWeight as g } from "./runs/effectiveRangeStyle.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
7
|
+
import { applyOverlayDirection as _, overlayAlignEdge as v } from "./overlayDirection.js";
|
|
8
|
+
import { cssFontFamily as y, cssFontFamilyLoading as b, isCanvasFont as x } from "@weasel-js/font";
|
|
9
|
+
import { fontString as S, layoutTextPose as C, numericWeight as w, resolveTextStyle as ee, runsToPlainText as T, scriptMetricsFor as E, smallCapsScaleFor as D, verticalAlignOffset as O } from "@weasel-js/text";
|
|
8
10
|
import { useCallback as k, useEffect as A, useRef as j, useState as M } from "react";
|
|
9
11
|
import { useLatest as N } from "@weasel-js/react";
|
|
10
12
|
//#region src/features/text/useTextEdit.ts
|
|
@@ -43,7 +45,7 @@ var P = [
|
|
|
43
45
|
"+": "=",
|
|
44
46
|
_: "-"
|
|
45
47
|
};
|
|
46
|
-
function
|
|
48
|
+
function te(e) {
|
|
47
49
|
if (!e.metaKey && !e.ctrlKey) return null;
|
|
48
50
|
let t = e.key.toLowerCase(), n = F[t] ?? t;
|
|
49
51
|
return P.find((t) => t.key === n && t.shift === e.shiftKey)?.toggle ?? null;
|
|
@@ -56,7 +58,7 @@ function I(e, t, n) {
|
|
|
56
58
|
function L(e, t) {
|
|
57
59
|
return t > 0 ? d(e, t - 1, t) : d(e, 0, 1);
|
|
58
60
|
}
|
|
59
|
-
function
|
|
61
|
+
function ne(e, t, n) {
|
|
60
62
|
let r = [], i = 0, a = !1;
|
|
61
63
|
for (let o of e) {
|
|
62
64
|
let e = i + o.text.length;
|
|
@@ -74,16 +76,16 @@ function te(e, t, n) {
|
|
|
74
76
|
}
|
|
75
77
|
return a || r.push(n), c(r, 0, 0, {});
|
|
76
78
|
}
|
|
77
|
-
function R(e,
|
|
78
|
-
let
|
|
79
|
-
if (
|
|
79
|
+
function R(e, n) {
|
|
80
|
+
let r = document.activeElement;
|
|
81
|
+
if (r === e || e.contains(r) || r instanceof HTMLInputElement || r instanceof HTMLTextAreaElement || r instanceof HTMLElement && r.isContentEditable || r instanceof Element && r.closest("[role=\"dialog\"]") !== null) return;
|
|
80
82
|
e.focus();
|
|
81
|
-
let i =
|
|
83
|
+
let i = t(e, n.start), a = t(e, n.end), o = window.getSelection();
|
|
82
84
|
if (!i || !a || !o) return;
|
|
83
85
|
let s = document.createRange();
|
|
84
86
|
s.setStart(i.node, i.offset), s.setEnd(a.node, a.offset), o.removeAllRanges(), o.addRange(s);
|
|
85
87
|
}
|
|
86
|
-
function
|
|
88
|
+
function re(e, t, n) {
|
|
87
89
|
let r = 0, i = -1;
|
|
88
90
|
for (let e = 0; e < t.length; e++) {
|
|
89
91
|
if (r += t[e].text.length, r === n) {
|
|
@@ -98,7 +100,7 @@ function ne(e, t, n) {
|
|
|
98
100
|
s.setStartAfter(a), s.collapse(!0), o.removeAllRanges(), o.addRange(s);
|
|
99
101
|
}
|
|
100
102
|
var z = Object.freeze({});
|
|
101
|
-
function
|
|
103
|
+
function ie(e, t) {
|
|
102
104
|
let n = { ...e }, r = f(t);
|
|
103
105
|
r !== void 0 && delete n[r];
|
|
104
106
|
for (let [e, r] of Object.entries(t)) r === void 0 || r === !1 ? delete n[e] : n[e] = r;
|
|
@@ -107,26 +109,26 @@ function re(e, t) {
|
|
|
107
109
|
function B(e) {
|
|
108
110
|
let t = window.getSelection();
|
|
109
111
|
if (!t || t.rangeCount === 0) return null;
|
|
110
|
-
let
|
|
111
|
-
if (!e.contains(
|
|
112
|
-
let
|
|
113
|
-
return
|
|
114
|
-
start:
|
|
112
|
+
let r = t.getRangeAt(0);
|
|
113
|
+
if (!e.contains(r.startContainer) || !e.contains(r.endContainer)) return null;
|
|
114
|
+
let i = n(e, r.startContainer, r.startOffset), a = n(e, r.endContainer, r.endOffset);
|
|
115
|
+
return i <= a ? {
|
|
116
|
+
start: i,
|
|
115
117
|
end: a
|
|
116
118
|
} : {
|
|
117
119
|
start: a,
|
|
118
|
-
end:
|
|
120
|
+
end: i
|
|
119
121
|
};
|
|
120
122
|
}
|
|
121
|
-
function
|
|
123
|
+
function ae(e, n, r, i, a) {
|
|
122
124
|
let o = document.activeElement, c = o !== e && !e.contains(o) && (o instanceof HTMLInputElement || o instanceof HTMLTextAreaElement || o instanceof HTMLElement && o.isContentEditable);
|
|
123
|
-
if (s(
|
|
124
|
-
let l =
|
|
125
|
+
if (s(n, e, a), c) return;
|
|
126
|
+
let l = t(e, r), u = t(e, i), d = window.getSelection();
|
|
125
127
|
if (!l || !u || !d) return;
|
|
126
128
|
let f = document.createRange();
|
|
127
129
|
f.setStart(l.node, l.offset), f.setEnd(u.node, u.offset), d.removeAllRanges(), d.addRange(f);
|
|
128
130
|
}
|
|
129
|
-
function
|
|
131
|
+
function oe(e) {
|
|
130
132
|
let t = e[e.length - 1];
|
|
131
133
|
if (t === void 0 || !t.text.endsWith("\n")) return e;
|
|
132
134
|
let n = {
|
|
@@ -135,136 +137,157 @@ function ie(e) {
|
|
|
135
137
|
}, r = e.slice(0, -1);
|
|
136
138
|
return n.text === "" ? r : [...r, n];
|
|
137
139
|
}
|
|
138
|
-
function
|
|
140
|
+
function se(e, t) {
|
|
139
141
|
return e === null || t === null ? e === t : e.start === t.start && e.end === t.end;
|
|
140
142
|
}
|
|
141
|
-
var
|
|
142
|
-
function
|
|
143
|
-
let
|
|
144
|
-
|
|
145
|
-
}
|
|
143
|
+
var ce = 100;
|
|
144
|
+
function V(n) {
|
|
145
|
+
let r = N(n), [f, g] = M(null), _ = N(f), v = j(null), y = j(ee(void 0)), [b, x] = M(null), S = j(null), C = k((e) => {
|
|
146
|
+
S.current = e, x(e);
|
|
147
|
+
}, []), w = k((e) => S.current ?? r.current.getStyle(e), [r]), E = j(() => {}), D = e(() => {
|
|
148
|
+
E.current();
|
|
149
|
+
}), O = j("all"), P = j(null), [F, V] = M(null), [he, H] = M(null), [U, W] = M(z), G = j(z), K = j(null), q = k((e, t) => {
|
|
146
150
|
let n = Object.keys(e).length === 0;
|
|
147
|
-
|
|
148
|
-
}, []),
|
|
149
|
-
|
|
150
|
-
}, []),
|
|
151
|
+
G.current = n ? z : e, K.current = n ? null : t, W(G.current);
|
|
152
|
+
}, []), J = k(() => {
|
|
153
|
+
K.current !== null && (G.current = z, K.current = null, W(z));
|
|
154
|
+
}, []), Y = j(null), X = k((e, t) => {
|
|
151
155
|
let n = t.start === t.end;
|
|
152
|
-
|
|
156
|
+
K.current !== null && !(n && t.start === K.current) && J(), Y.current = t, V((e) => se(e, t) ? e : t);
|
|
153
157
|
let r = a(e);
|
|
154
|
-
|
|
155
|
-
}, [
|
|
158
|
+
H(n ? L(r, t.start) : d(r, t.start, t.end));
|
|
159
|
+
}, [J]), Z = k(() => {
|
|
156
160
|
let e = v.current;
|
|
157
161
|
if (!e) return;
|
|
158
162
|
let t = B(e);
|
|
159
|
-
t !== null &&
|
|
160
|
-
}, [
|
|
161
|
-
|
|
162
|
-
}, [
|
|
163
|
+
t !== null && X(e, t);
|
|
164
|
+
}, [X]), _e = k(() => {
|
|
165
|
+
Y.current = null, V(null), H(null), J();
|
|
166
|
+
}, [J]), ve = k(() => {
|
|
163
167
|
g(null);
|
|
164
|
-
}, []),
|
|
168
|
+
}, []), Q = k(() => {
|
|
165
169
|
let e = f, t = v.current;
|
|
166
170
|
if (e == null || !t) {
|
|
167
171
|
g(null);
|
|
168
172
|
return;
|
|
169
173
|
}
|
|
170
|
-
let n
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
174
|
+
let { getRuns: n, setRuns: i, setText: o, setStyle: s, commit: c } = r.current, l = n?.(e), d = a(t), p = S.current;
|
|
175
|
+
if (!p && JSON.stringify(d) === P.current) {
|
|
176
|
+
g(null);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
let m = oe(d), h = l != null && l.length > 0 || u(m), _ = T(m);
|
|
180
|
+
C(null), c ? c(e, {
|
|
181
|
+
text: _,
|
|
182
|
+
...h ? { runs: m } : {},
|
|
183
|
+
...p ? { style: p } : {}
|
|
184
|
+
}) : (p && s?.(e, p), o?.(e, _), i && h && i(e, m)), g(null);
|
|
185
|
+
}, [
|
|
186
|
+
f,
|
|
187
|
+
r,
|
|
188
|
+
C
|
|
189
|
+
]), ye = k((e, t) => {
|
|
190
|
+
O.current = t?.caret ?? "all", g(e);
|
|
191
|
+
}, []), be = k((e) => f === e, [f]), $ = k((e) => {
|
|
175
192
|
let t = v.current;
|
|
176
193
|
if (!t || Object.keys(e).length === 0) return;
|
|
177
|
-
let n = B(t) ??
|
|
194
|
+
let n = B(t) ?? Y.current;
|
|
178
195
|
if (!n) return;
|
|
179
|
-
let
|
|
180
|
-
e.bold === !1 && !("fontWeight" in e) &&
|
|
196
|
+
let i = _.current, o = r.current.setStyle !== void 0 || r.current.commit !== void 0, s = a(t);
|
|
197
|
+
e.bold === !1 && !("fontWeight" in e) && i !== null && (e = {
|
|
181
198
|
...e,
|
|
182
|
-
...h(i
|
|
199
|
+
...h(w(i) ?? {})
|
|
183
200
|
});
|
|
184
|
-
let l =
|
|
185
|
-
if (l !== void 0 &&
|
|
186
|
-
let a = i
|
|
187
|
-
|
|
188
|
-
|
|
201
|
+
let l = i !== null && o ? Object.keys(e).find((t) => t !== "bold" && e[t] === !1 && p(w(i) ?? {}, t)) : void 0;
|
|
202
|
+
if (l !== void 0 && i !== null) {
|
|
203
|
+
let a = m(s, w(i) ?? {}, n.start, n.end, l, !1);
|
|
204
|
+
C(a.style);
|
|
205
|
+
let o = ee(a.style, r.current.getPaint?.(i));
|
|
206
|
+
y.current = o, pe(t, o), ae(t, a.runs, n.start, n.end, o), X(t, n), n.start === n.end && q({
|
|
207
|
+
...G.current,
|
|
189
208
|
[l]: !1
|
|
190
209
|
}, n.start), R(t, n);
|
|
191
|
-
let
|
|
192
|
-
delete
|
|
210
|
+
let c = { ...e };
|
|
211
|
+
delete c[l], Object.keys(c).length > 0 && $(c);
|
|
193
212
|
return;
|
|
194
213
|
}
|
|
195
214
|
if (n.start === n.end) {
|
|
196
|
-
|
|
215
|
+
q(ie(G.current, e), n.start), R(t, n);
|
|
197
216
|
return;
|
|
198
217
|
}
|
|
199
|
-
|
|
218
|
+
ae(t, c(s, n.start, n.end, e), n.start, n.end, y.current), R(t, n), X(t, n);
|
|
200
219
|
}, [
|
|
201
|
-
|
|
202
|
-
|
|
220
|
+
X,
|
|
221
|
+
q,
|
|
203
222
|
_,
|
|
204
|
-
|
|
205
|
-
|
|
223
|
+
r,
|
|
224
|
+
w,
|
|
225
|
+
C
|
|
226
|
+
]), xe = k((e) => {
|
|
206
227
|
let t = v.current;
|
|
207
228
|
if (!t) return;
|
|
208
|
-
let n = B(t) ??
|
|
229
|
+
let n = B(t) ?? Y.current;
|
|
209
230
|
if (!n) return;
|
|
210
|
-
let r = a(t),
|
|
211
|
-
|
|
231
|
+
let r = a(t), i = _.current, o = (i === null ? void 0 : w(i)) ?? {}, s = n.start === n.end ? l(L(r, n.start), G.current) : d(r, n.start, n.end);
|
|
232
|
+
$(I(s, e, o));
|
|
212
233
|
}, [
|
|
213
|
-
|
|
234
|
+
$,
|
|
214
235
|
_,
|
|
215
|
-
|
|
236
|
+
w
|
|
216
237
|
]);
|
|
217
238
|
return A(() => {
|
|
218
239
|
if (f == null) return;
|
|
219
|
-
let { container: e, getText:
|
|
240
|
+
let { container: e, getText: n, getStyle: c, getPaint: l } = r.current;
|
|
220
241
|
if (!e) return;
|
|
221
|
-
|
|
242
|
+
C(null);
|
|
243
|
+
let u = ee(c(f), l?.(f)), d = document.createElement("div"), p = `weasel-text-edit-${++le}`;
|
|
222
244
|
d.classList.add(p), d.setAttribute("contenteditable", "true"), d.spellcheck = !1, y.current = u;
|
|
223
|
-
let m =
|
|
224
|
-
m && m.length > 0 ? s(m, d, u) : u.fontVariantCaps === "small-caps" ? s([{ text:
|
|
225
|
-
let h =
|
|
245
|
+
let m = r.current.getRuns?.(f);
|
|
246
|
+
m && m.length > 0 ? s(m, d, u) : u.fontVariantCaps === "small-caps" ? s([{ text: n(f) }], d, u) : i(d, n(f)), P.current = JSON.stringify(a(d)), pe(d, u);
|
|
247
|
+
let h = ue(u, m ?? []);
|
|
226
248
|
h && (d.style.opacity = "0");
|
|
227
|
-
let g =
|
|
249
|
+
let g = me(p, u), _ = fe();
|
|
228
250
|
_.appendChild(d), e.appendChild(_), v.current = d;
|
|
229
|
-
let
|
|
230
|
-
let e =
|
|
231
|
-
|
|
251
|
+
let b = () => {
|
|
252
|
+
let e = r.current.getClipRect?.() ?? null;
|
|
253
|
+
ge(d, _, r.current.getScreenPose(f), e, u);
|
|
232
254
|
};
|
|
233
|
-
|
|
234
|
-
let
|
|
235
|
-
|
|
236
|
-
},
|
|
237
|
-
h?.then(
|
|
238
|
-
let
|
|
239
|
-
k === "all" ?
|
|
255
|
+
b();
|
|
256
|
+
let x = h !== null, S = () => {
|
|
257
|
+
x && (x = !1, clearTimeout(w), b(), d.style.opacity = "");
|
|
258
|
+
}, w = x ? setTimeout(S, r.current.fontHold ?? ce) : void 0;
|
|
259
|
+
h?.then(S);
|
|
260
|
+
let T = document.createRange(), k = O.current;
|
|
261
|
+
k === "all" ? T.selectNodeContents(d) : de(d, T, k), d.focus();
|
|
240
262
|
let A = window.getSelection();
|
|
241
|
-
A?.removeAllRanges(), A?.addRange(
|
|
263
|
+
A?.removeAllRanges(), A?.addRange(T), Z();
|
|
242
264
|
let j = (e) => {
|
|
265
|
+
if (e.isComposing || e.keyCode === 229) return;
|
|
243
266
|
if (e.key === "Enter" && !e.shiftKey) {
|
|
244
|
-
e.preventDefault(),
|
|
267
|
+
e.preventDefault(), Q();
|
|
245
268
|
return;
|
|
246
269
|
}
|
|
247
270
|
if (e.key === "Escape") {
|
|
248
|
-
e.preventDefault(),
|
|
271
|
+
e.preventDefault(), r.current.escape === "commit" ? Q() : ve();
|
|
249
272
|
return;
|
|
250
273
|
}
|
|
251
|
-
let t =
|
|
252
|
-
t && (e.preventDefault(),
|
|
274
|
+
let t = te(e);
|
|
275
|
+
t && (e.preventDefault(), xe(t));
|
|
253
276
|
}, M = (e) => {
|
|
254
|
-
let t = e.relatedTarget, n =
|
|
255
|
-
n && t instanceof Element && n(t) ||
|
|
277
|
+
let t = e.relatedTarget, n = r.current.isEditorChrome;
|
|
278
|
+
n && t instanceof Element && n(t) || Q();
|
|
256
279
|
}, N = (e) => {
|
|
257
280
|
if (e.inputType !== "insertText" || !e.data) return;
|
|
258
|
-
let t =
|
|
281
|
+
let t = G.current;
|
|
259
282
|
if (Object.keys(t).length > 0) {
|
|
260
|
-
let n = B(d) ??
|
|
283
|
+
let n = B(d) ?? Y.current;
|
|
261
284
|
if (!n || n.start !== n.end) return;
|
|
262
285
|
e.preventDefault();
|
|
263
|
-
let r =
|
|
286
|
+
let r = ne(a(d), n.start, {
|
|
264
287
|
...t,
|
|
265
288
|
text: e.data
|
|
266
289
|
}), i = n.start + e.data.length;
|
|
267
|
-
|
|
290
|
+
ae(d, r, i, i, y.current), re(d, r, i), J(), X(d, {
|
|
268
291
|
start: i,
|
|
269
292
|
end: i
|
|
270
293
|
});
|
|
@@ -281,64 +304,67 @@ function U(t) {
|
|
|
281
304
|
let i = document.createRange();
|
|
282
305
|
i.setStartAfter(t), i.collapse(!0), n.removeAllRanges(), n.addRange(i);
|
|
283
306
|
}
|
|
284
|
-
|
|
285
|
-
},
|
|
307
|
+
F();
|
|
308
|
+
}, F = (e) => {
|
|
286
309
|
if (e instanceof InputEvent && e.isComposing) return;
|
|
287
|
-
let
|
|
288
|
-
if (!o(d) || !
|
|
289
|
-
let
|
|
290
|
-
if (!
|
|
310
|
+
let n = B(d);
|
|
311
|
+
if (!o(d) || !n) return;
|
|
312
|
+
let r = t(d, n.start), i = t(d, n.end), a = window.getSelection();
|
|
313
|
+
if (!r || !i || !a) return;
|
|
291
314
|
let s = document.createRange();
|
|
292
|
-
s.setStart(
|
|
293
|
-
}, F = (e) => {
|
|
294
|
-
P(e), C();
|
|
315
|
+
s.setStart(r.node, r.offset), s.setEnd(i.node, i.offset), a.removeAllRanges(), a.addRange(s);
|
|
295
316
|
}, I = (e) => {
|
|
317
|
+
F(e), b();
|
|
318
|
+
}, L = (e) => {
|
|
296
319
|
let t = e.target;
|
|
297
320
|
if (!(t instanceof Node) || d.contains(t)) return;
|
|
298
|
-
let n =
|
|
299
|
-
n && t instanceof Element && n(t) ||
|
|
321
|
+
let n = r.current.isEditorChrome;
|
|
322
|
+
n && t instanceof Element && n(t) || Q();
|
|
300
323
|
};
|
|
301
|
-
return d.addEventListener("keydown", j), d.addEventListener("blur", M), d.addEventListener("input",
|
|
302
|
-
|
|
303
|
-
},
|
|
304
|
-
|
|
324
|
+
return d.addEventListener("keydown", j), d.addEventListener("blur", M), d.addEventListener("input", I), d.addEventListener("beforeinput", N), document.addEventListener("pointerdown", L, !0), document.addEventListener("selectionchange", Z), E.current = () => {
|
|
325
|
+
b(), D.request();
|
|
326
|
+
}, D.request(), () => {
|
|
327
|
+
x = !1, clearTimeout(w), D.cancel(), E.current = () => {}, d.removeEventListener("keydown", j), d.removeEventListener("blur", M), d.removeEventListener("input", I), d.removeEventListener("beforeinput", N), document.removeEventListener("pointerdown", L, !0), document.removeEventListener("selectionchange", Z), _.remove(), g?.remove(), v.current = null, C(null), _e();
|
|
305
328
|
};
|
|
306
329
|
}, [
|
|
307
330
|
f,
|
|
308
|
-
|
|
331
|
+
n.container,
|
|
332
|
+
r,
|
|
333
|
+
Q,
|
|
334
|
+
ve,
|
|
309
335
|
Z,
|
|
336
|
+
_e,
|
|
337
|
+
D,
|
|
338
|
+
xe,
|
|
339
|
+
J,
|
|
310
340
|
X,
|
|
311
|
-
|
|
312
|
-
pe,
|
|
313
|
-
x,
|
|
314
|
-
$,
|
|
315
|
-
K,
|
|
316
|
-
J
|
|
341
|
+
C
|
|
317
342
|
]), {
|
|
318
343
|
editingId: f,
|
|
319
|
-
startEdit:
|
|
320
|
-
cancelEdit:
|
|
321
|
-
commit:
|
|
322
|
-
isEditing:
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
344
|
+
startEdit: ye,
|
|
345
|
+
cancelEdit: ve,
|
|
346
|
+
commit: Q,
|
|
347
|
+
isEditing: be,
|
|
348
|
+
nodeStyle: b,
|
|
349
|
+
selection: F,
|
|
350
|
+
rangeStyle: he,
|
|
351
|
+
pendingStyle: U,
|
|
352
|
+
applyStyleToSelection: $,
|
|
353
|
+
toggleStyle: xe
|
|
328
354
|
};
|
|
329
355
|
}
|
|
330
|
-
var
|
|
331
|
-
function
|
|
332
|
-
let n = [
|
|
333
|
-
weight:
|
|
356
|
+
var le = 0;
|
|
357
|
+
function ue(e, t) {
|
|
358
|
+
let n = [b(e.fontFamily, {
|
|
359
|
+
weight: w(e.fontWeight),
|
|
334
360
|
style: e.fontStyle
|
|
335
|
-
}), ...t.filter((e) => e.fontFamily != null).map((e) =>
|
|
361
|
+
}), ...t.filter((e) => e.fontFamily != null).map((e) => b(e.fontFamily, {
|
|
336
362
|
weight: e.fontWeight ?? (e.bold ? 700 : void 0),
|
|
337
363
|
style: e.italic ? "italic" : void 0
|
|
338
364
|
}))].filter((e) => e !== null);
|
|
339
365
|
return n.length === 0 ? null : Promise.all(n);
|
|
340
366
|
}
|
|
341
|
-
function
|
|
367
|
+
function de(e, t, n) {
|
|
342
368
|
let r = n, i = document.createTreeWalker(e, NodeFilter.SHOW_TEXT), a = i.nextNode();
|
|
343
369
|
for (; a;) {
|
|
344
370
|
let e = a.data.length;
|
|
@@ -350,41 +376,39 @@ function ce(e, t, n) {
|
|
|
350
376
|
}
|
|
351
377
|
t.selectNodeContents(e), t.collapse(!1);
|
|
352
378
|
}
|
|
353
|
-
function
|
|
379
|
+
function fe() {
|
|
354
380
|
let e = document.createElement("div");
|
|
355
381
|
return e.style.position = "absolute", e.style.margin = "0", e.style.padding = "0", e.style.border = "0", e.style.pointerEvents = "none", e;
|
|
356
382
|
}
|
|
357
|
-
function
|
|
358
|
-
e.style.position = "absolute", e.style.pointerEvents = "auto", e.style.boxSizing = "border-box", e.style.margin = "0", e.style.padding = "0", e.style.border = "0", e.style.outline = "none", e.style.background = "transparent", e.style.color =
|
|
359
|
-
let
|
|
360
|
-
weight:
|
|
361
|
-
style:
|
|
383
|
+
function pe(e, t) {
|
|
384
|
+
e.style.position = "absolute", e.style.pointerEvents = "auto", e.style.boxSizing = "border-box", e.style.margin = "0", e.style.padding = "0", e.style.border = "0", e.style.outline = "none", e.style.background = "transparent", e.style.color = t.fill !== null && "color" in t.fill ? t.fill.color : "#000", e.style.caretColor = t.caretColor;
|
|
385
|
+
let n = y(t.fontFamily, {
|
|
386
|
+
weight: w(t.fontWeight),
|
|
387
|
+
style: t.fontStyle
|
|
362
388
|
});
|
|
363
|
-
e.style.font =
|
|
364
|
-
...
|
|
365
|
-
fontFamily:
|
|
366
|
-
}), e.style.textRendering =
|
|
367
|
-
let i =
|
|
368
|
-
e.style.
|
|
369
|
-
let a = [];
|
|
370
|
-
n.underline && a.push("underline"), n.strikethrough && a.push("line-through"), n.overline && a.push("overline"), e.style.textDecoration = a.length > 0 ? a.join(" ") : "none", e.style.textTransform = n.textTransform, e.style.fontVariant = n.fontVariantCaps, e.style.setProperty(t, n.fontVariantCaps === "small-caps" ? String(D(n.fontFamily, S(n.fontWeight), n.fontStyle)) : ""), e.style.whiteSpace = n.wrap ? "pre-wrap" : "pre", e.style.overflowWrap = "normal", e.style.wordBreak = "normal";
|
|
389
|
+
e.style.font = S({
|
|
390
|
+
...t,
|
|
391
|
+
fontFamily: n
|
|
392
|
+
}), e.style.textRendering = x(t.fontFamily) ? "" : "geometricPrecision", e.style.lineHeight = String(t.lineHeight), _(e, t);
|
|
393
|
+
let i = [];
|
|
394
|
+
t.underline && i.push("underline"), t.strikethrough && i.push("line-through"), t.overline && i.push("overline"), e.style.textDecoration = i.length > 0 ? i.join(" ") : "none", e.style.textTransform = t.textTransform, e.style.fontVariant = t.fontVariantCaps, e.style.setProperty(r, t.fontVariantCaps === "small-caps" ? String(D(t.fontFamily, w(t.fontWeight), t.fontStyle)) : ""), e.style.whiteSpace = t.wrap ? "pre-wrap" : "pre", e.style.overflowWrap = "normal", e.style.wordBreak = "normal";
|
|
371
395
|
}
|
|
372
|
-
function
|
|
396
|
+
function me(e, t) {
|
|
373
397
|
if (t.selectionBackground == null && t.selectionColor == null) return null;
|
|
374
398
|
let n = document.createElement("style"), r = [];
|
|
375
399
|
return t.selectionBackground != null && r.push(`background: ${t.selectionBackground};`), t.selectionColor != null && r.push(`color: ${t.selectionColor};`), n.textContent = `.${e}::selection { ${r.join(" ")} }`, document.head.appendChild(n), n;
|
|
376
400
|
}
|
|
377
|
-
var
|
|
401
|
+
var he = {
|
|
378
402
|
left: 0,
|
|
379
403
|
center: .5,
|
|
380
404
|
right: 1
|
|
381
405
|
};
|
|
382
|
-
function
|
|
406
|
+
function H(e, t, n = 0) {
|
|
383
407
|
let r = O(e.verticalAlign, e.height, t);
|
|
384
408
|
return e.y + (r + n) * (e.zoom ?? 1);
|
|
385
409
|
}
|
|
386
|
-
function
|
|
387
|
-
let i =
|
|
410
|
+
function U(e, t, n, r) {
|
|
411
|
+
let i = C({
|
|
388
412
|
x: 0,
|
|
389
413
|
y: 0,
|
|
390
414
|
width: n.width,
|
|
@@ -398,11 +422,11 @@ function K(e, t, n, r) {
|
|
|
398
422
|
lineHeight: r,
|
|
399
423
|
script: t.script
|
|
400
424
|
}
|
|
401
|
-
}).laid.lines[0]?.baselineY ?? 0, a =
|
|
425
|
+
}).laid.lines[0]?.baselineY ?? 0, a = G(e);
|
|
402
426
|
return i > 0 && a > 0 ? i - a : 0;
|
|
403
427
|
}
|
|
404
|
-
var
|
|
405
|
-
function
|
|
428
|
+
var W = /* @__PURE__ */ new Map();
|
|
429
|
+
function G(e) {
|
|
406
430
|
let t = e.parentElement;
|
|
407
431
|
if (!t) return 0;
|
|
408
432
|
let { fontFamily: n, fontWeight: r, fontStyle: i, fontSize: a, lineHeight: o, textRendering: s } = e.style, c = [
|
|
@@ -412,7 +436,7 @@ function J(e) {
|
|
|
412
436
|
a,
|
|
413
437
|
o,
|
|
414
438
|
s
|
|
415
|
-
].join("|"), l =
|
|
439
|
+
].join("|"), l = W.get(c);
|
|
416
440
|
if (l !== void 0) return l;
|
|
417
441
|
let u = document.createElement("div");
|
|
418
442
|
Object.assign(u.style, {
|
|
@@ -440,28 +464,28 @@ function J(e) {
|
|
|
440
464
|
verticalAlign: "baseline"
|
|
441
465
|
}), u.appendChild(d), t.appendChild(u);
|
|
442
466
|
let f = u.getBoundingClientRect(), p = f.width / 100, m = p > 0 ? (d.getBoundingClientRect().top - f.top) / p : 0;
|
|
443
|
-
return u.remove(), m > 0 && document.fonts?.status !== "loading" && (
|
|
467
|
+
return u.remove(), m > 0 && document.fonts?.status !== "loading" && (W.size >= 64 && W.clear(), W.set(c, m)), m;
|
|
444
468
|
}
|
|
445
|
-
function
|
|
469
|
+
function ge(e, t, n, r, i) {
|
|
446
470
|
if (!n) {
|
|
447
471
|
e.style.display = "none";
|
|
448
472
|
return;
|
|
449
473
|
}
|
|
450
474
|
t.style.overflow = r ? "clip" : "visible", t.style.left = `${r?.x ?? 0}px`, t.style.top = `${r?.y ?? 0}px`, t.style.width = `${r?.width ?? 0}px`, t.style.height = `${r?.height ?? 0}px`, e.style.display = "";
|
|
451
|
-
let a = i.wrap ? 0 :
|
|
475
|
+
let a = i.wrap ? 0 : he[v(e, i)];
|
|
452
476
|
e.style.left = `${n.x + n.width * (n.zoom ?? 1) * a - (r?.x ?? 0)}px`, e.style.width = i.wrap ? `${n.width}px` : "max-content", e.style.minWidth = i.wrap ? "" : `${n.width}px`;
|
|
453
|
-
let o = i.script ? E(i.fontFamily,
|
|
477
|
+
let o = i.script ? E(i.fontFamily, w(i.fontWeight), i.fontStyle)[i.script] : void 0, s = n.lineHeight ?? i.lineHeight;
|
|
454
478
|
e.style.fontSize = `${n.fontSize * (o?.size ?? 1)}px`, e.style.lineHeight = o ? `${n.fontSize * s}px` : String(s);
|
|
455
479
|
let c = n.verticalAlign !== void 0 && n.verticalAlign !== "top";
|
|
456
480
|
e.style.minHeight = c ? "" : `${n.height}px`;
|
|
457
|
-
let l =
|
|
458
|
-
e.style.top = `${
|
|
481
|
+
let l = U(e, i, n, s) - (o?.shift ?? 0) * n.fontSize;
|
|
482
|
+
e.style.top = `${H(n, c ? e.offsetHeight : n.height, l) - (r?.y ?? 0)}px`, e.style.transformOrigin = "0 0";
|
|
459
483
|
let u = [];
|
|
460
484
|
n.zoom !== void 0 && n.zoom !== 1 && u.push(`scale(${n.zoom})`), a !== 0 && u.push(`translateX(${-a * 100}%)`), e.style.transform = u.length > 0 ? u.join(" ") : "none";
|
|
461
485
|
let d = n.zoom === void 0 && i.fontSize > 0 ? n.fontSize / i.fontSize : 1;
|
|
462
486
|
e.style.letterSpacing = `${i.letterSpacing * d}px`;
|
|
463
487
|
}
|
|
464
488
|
//#endregion
|
|
465
|
-
export {
|
|
489
|
+
export { ce as TEXT_EDIT_FONT_HOLD, U as baselineDrop, H as overlayTop, V as useTextEdit };
|
|
466
490
|
|
|
467
491
|
//# sourceMappingURL=useTextEdit.js.map
|