@weasel-js/core 1.8.0 → 1.9.0
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 +84 -0
- package/README.md +9 -5
- package/dist/animation/useAnimator.js +20 -13
- package/dist/animation/useAnimator.js.map +1 -1
- package/dist/{builtins-BW32dOXy.d.ts → builtins-CQcvcLXh.d.ts} +105 -31
- package/dist/canvas/DrawCanvas.js +33 -33
- package/dist/canvas/DrawCanvas.js.map +1 -1
- package/dist/canvas/MinimapCanvas.js +29 -29
- package/dist/canvas/MinimapCanvas.js.map +1 -1
- package/dist/canvas/NodeShape.js +63 -54
- package/dist/canvas/NodeShape.js.map +1 -1
- package/dist/canvas/SceneCanvas/features.js +26 -5
- package/dist/canvas/SceneCanvas/features.js.map +1 -1
- package/dist/canvas/SceneCanvas/useSceneSelectTool.js +3 -2
- package/dist/canvas/SceneCanvas/useSceneSelectTool.js.map +1 -1
- package/dist/canvas/SceneCanvas.js +526 -529
- package/dist/canvas/SceneCanvas.js.map +1 -1
- package/dist/canvas/SceneViewCanvas.js +35 -35
- package/dist/canvas/SceneViewCanvas.js.map +1 -1
- package/dist/canvas/defaultDrawOne.js +6 -1
- package/dist/canvas/defaultDrawOne.js.map +1 -1
- package/dist/canvas/pickWalk.js.map +1 -1
- package/dist/canvas/sceneAdapter.js.map +1 -1
- package/dist/canvas/useHitObserver.js +23 -0
- package/dist/canvas/useHitObserver.js.map +1 -0
- package/dist/canvas/useHostAnchor.js.map +1 -1
- package/dist/core/device/useDeviceProfile.js.map +1 -1
- package/dist/core/scene/derivedPath.js.map +1 -1
- package/dist/core/scene/effectivePose.js.map +1 -1
- package/dist/core/scene/kitRegistry.js.map +1 -1
- package/dist/core/scene/scene.js +9 -0
- package/dist/core/scene/scene.js.map +1 -1
- package/dist/core/scene/types.js.map +1 -1
- package/dist/core/scene/useScene.js.map +1 -1
- package/dist/core/selection/useSelection.js +27 -33
- package/dist/core/selection/useSelection.js.map +1 -1
- package/dist/core/stableStringify.js +8 -0
- package/dist/core/stableStringify.js.map +1 -0
- package/dist/core/viewport/fitViewToBounds.js +3 -3
- package/dist/core/viewport/fitViewToBounds.js.map +1 -1
- package/dist/core/viewport/screenSlop.js +8 -2
- package/dist/core/viewport/screenSlop.js.map +1 -1
- package/dist/features/minimap/actions.js.map +1 -1
- package/dist/features/paths/markerCommands.js +95 -63
- package/dist/features/paths/markerCommands.js.map +1 -1
- package/dist/features/paths/tessellate/dash.js +52 -0
- package/dist/features/paths/tessellate/dash.js.map +1 -0
- package/dist/features/paths/tessellate/insets.js +32 -0
- package/dist/features/paths/tessellate/insets.js.map +1 -0
- package/dist/features/paths/tessellate/metric.js +72 -0
- package/dist/features/paths/tessellate/metric.js.map +1 -0
- package/dist/features/paths/tessellate/stroke.js +74 -134
- package/dist/features/paths/tessellate/stroke.js.map +1 -1
- package/dist/features/paths/tessellate/vertexWidths.js +32 -0
- package/dist/features/paths/tessellate/vertexWidths.js.map +1 -0
- package/dist/features/pointer/PointerContext.js +2 -2
- package/dist/features/pointer/PointerContext.js.map +1 -1
- package/dist/features/poseRun/usePoseRun.js.map +1 -1
- package/dist/features/text/useTextEdit.js +86 -84
- package/dist/features/text/useTextEdit.js.map +1 -1
- package/dist/index.d.ts +84 -45
- package/dist/index.js +269 -268
- package/dist/interactions/actions/defaults/align.js.map +1 -1
- package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
- package/dist/interactions/actions/defaults/areaSelect.js.map +1 -1
- package/dist/interactions/actions/defaults/booleans.js.map +1 -1
- package/dist/interactions/actions/defaults/cancelGesture.js.map +1 -1
- package/dist/interactions/actions/defaults/clearSelection.js.map +1 -1
- package/dist/interactions/actions/defaults/clipboard.js.map +1 -1
- package/dist/interactions/actions/defaults/clone.js.map +1 -1
- package/dist/interactions/actions/defaults/createOutlines.js +1 -1
- package/dist/interactions/actions/defaults/createOutlines.js.map +1 -1
- package/dist/interactions/actions/defaults/createPaintAction.js.map +1 -1
- package/dist/interactions/actions/defaults/delete.js.map +1 -1
- package/dist/interactions/actions/defaults/distribute.js.map +1 -1
- package/dist/interactions/actions/defaults/duplicate.js.map +1 -1
- package/dist/interactions/actions/defaults/editAnchors.js.map +1 -1
- package/dist/interactions/actions/defaults/enterPathEdit.js.map +1 -1
- package/dist/interactions/actions/defaults/enterTextEdit.js.map +1 -1
- package/dist/interactions/actions/defaults/escape.js +1 -1
- package/dist/interactions/actions/defaults/escape.js.map +1 -1
- package/dist/interactions/actions/defaults/exitPathEdit.js.map +1 -1
- package/dist/interactions/actions/defaults/flip.js.map +1 -1
- package/dist/interactions/actions/defaults/group.js.map +1 -1
- package/dist/interactions/actions/defaults/ingest.js.map +1 -1
- package/dist/interactions/actions/defaults/insert.js.map +1 -1
- package/dist/interactions/actions/defaults/insertPathAnchor.js +1 -1
- package/dist/interactions/actions/defaults/insertPathAnchor.js.map +1 -1
- package/dist/interactions/actions/defaults/lassoSelect.js.map +1 -1
- package/dist/interactions/actions/defaults/move.js.map +1 -1
- package/dist/interactions/actions/defaults/nudge.js.map +1 -1
- package/dist/interactions/actions/defaults/pinchZoom.js.map +1 -1
- package/dist/interactions/actions/defaults/reorder.js.map +1 -1
- package/dist/interactions/actions/defaults/requiresSelection.js.map +1 -1
- package/dist/interactions/actions/defaults/resize.js.map +1 -1
- package/dist/interactions/actions/defaults/rotate.js.map +1 -1
- package/dist/interactions/actions/defaults/selectAll.js.map +1 -1
- package/dist/interactions/actions/defaults/slice.js.map +1 -1
- package/dist/interactions/actions/defaults/toolActivate.js.map +1 -1
- package/dist/interactions/actions/defaults/toolResetToDefault.js.map +1 -1
- package/dist/interactions/actions/defaults/undoRedo.js +1 -1
- package/dist/interactions/actions/defaults/undoRedo.js.map +1 -1
- package/dist/interactions/actions/defaults/viewportDragPan.js.map +1 -1
- package/dist/interactions/actions/defaults/viewportWheelPan.js.map +1 -1
- package/dist/interactions/actions/defaults/viewportZoom.js.map +1 -1
- package/dist/interactions/actions/planeInput.js.map +1 -1
- package/dist/interactions/gestures/shared/screenTolerance.js.map +1 -1
- package/dist/{registerProgram-ateHDGjw.d.ts → registerProgram-BMZRDgrh.d.ts} +4 -0
- package/dist/renderer/cache/markerCommandCache.js +46 -42
- package/dist/renderer/cache/markerCommandCache.js.map +1 -1
- package/dist/renderer/cache/outlineStrokeMeshCache.js +30 -25
- package/dist/renderer/cache/outlineStrokeMeshCache.js.map +1 -1
- package/dist/renderer/cache/strokeMeshCache.js +42 -31
- package/dist/renderer/cache/strokeMeshCache.js.map +1 -1
- package/dist/renderer/cullDrawCommands.js +32 -31
- package/dist/renderer/cullDrawCommands.js.map +1 -1
- package/dist/renderer/draw.js +315 -362
- package/dist/renderer/draw.js.map +1 -1
- package/dist/renderer/drawBatch.js.map +1 -1
- package/dist/renderer/glyphOutlineMesh.js +67 -0
- package/dist/renderer/glyphOutlineMesh.js.map +1 -0
- package/dist/renderer/math/mat3.js +8 -3
- package/dist/renderer/math/mat3.js.map +1 -1
- package/dist/renderer/shaders/batchFill.js +3 -2
- package/dist/renderer/shaders/batchFill.js.map +1 -1
- package/dist/renderer/strokeLengths.js +50 -0
- package/dist/renderer/strokeLengths.js.map +1 -0
- package/dist/renderer.d.ts +2 -2
- package/dist/{test-seams-fYf6m5pu.d.ts → test-seams-CuIxe0xY.d.ts} +1 -1
- package/dist/test-seams.d.ts +2 -2
- package/dist/tools/builtin/eyedropper/useEyedropperTool.js.map +1 -1
- package/dist/tools/builtin/pen/usePenTool.js +1 -1
- package/dist/tools/builtin/pen/usePenTool.js.map +1 -1
- package/dist/tools/builtin/select/selectionContributions.js +43 -23
- package/dist/tools/builtin/select/selectionContributions.js.map +1 -1
- package/dist/tools/builtin/select/useSelectTool.js.map +1 -1
- package/dist/tools/builtin/slice/useSliceTool.js.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +17 -16
|
@@ -9,58 +9,58 @@ import { usePointerContext as u } from "../features/pointer/PointerContext.js";
|
|
|
9
9
|
import { dlog as d, dwarn as ee } from "../debug/flag.js";
|
|
10
10
|
import { registerContentHandler as f } from "../features/ingestion/contentHandlers.js";
|
|
11
11
|
import { KIT_STANDARD_ACTION_IDS as te, useStandardActions as p } from "../interactions/actions/useStandardActions.js";
|
|
12
|
-
import { resizePolicyOptions as ne, useResizePolicy as
|
|
13
|
-
import { usePoseDescriptorDepSource as
|
|
14
|
-
import { usePoseCompositionDepSource as
|
|
15
|
-
import { useSliceDepSource as
|
|
16
|
-
import { useDecayLoop as
|
|
17
|
-
import { useAnimator as
|
|
18
|
-
import { useViewAnimationOn as
|
|
19
|
-
import { useTools as
|
|
20
|
-
import { useKeybindings as
|
|
21
|
-
import { pathFromPlane as
|
|
22
|
-
import { selectionMoveContribution as
|
|
23
|
-
import { useHandTool as
|
|
24
|
-
import { defaultDrawOne as
|
|
25
|
-
import { useLateContentRedraw as
|
|
26
|
-
import { createSceneLayerGate as
|
|
27
|
-
import { EMPTY_CHROME_STATE as
|
|
28
|
-
import { ViewRegistryProvider as
|
|
29
|
-
import { useSelection as
|
|
30
|
-
import { createSelectionOverlayLayer as
|
|
31
|
-
import { rotateAroundAABBCenter as
|
|
32
|
-
import { Canvas as
|
|
33
|
-
import { composeAlphaFor as
|
|
34
|
-
import { useSceneAdapter as
|
|
35
|
-
import { sceneFromJSON as
|
|
36
|
-
import { usePublishSelection as
|
|
37
|
-
import { ViewInputsProvider as
|
|
38
|
-
import { anchorStateFrom as
|
|
39
|
-
import { createDispatcherPreviewSources as
|
|
40
|
-
import { CanvasView as
|
|
41
|
-
import { contributionEntries as
|
|
42
|
-
import { PointerProviderIfRoot as
|
|
43
|
-
import { useSceneSelectTool as
|
|
44
|
-
import { SCENE_CANVAS_FEATURES as
|
|
45
|
-
import { usePreviewGhostLayer as
|
|
46
|
-
import { useDispatcherOverlayLayer as
|
|
47
|
-
import { createPenPreviewLayer as
|
|
48
|
-
import { createPathEditingOverlayLayer as
|
|
49
|
-
import { createSlopsDebugLayer as
|
|
50
|
-
import { useBuiltinShapeTools as
|
|
51
|
-
import { useViewDepSource as
|
|
52
|
-
import { useAreaSelectDepSource as
|
|
53
|
-
import { useNodeAtPointDepSource as
|
|
54
|
-
import { useLassoSelectDepSource as
|
|
55
|
-
import { useTextEditDepSource as
|
|
56
|
-
import { resolveEditablePathOf as
|
|
57
|
-
import { useInsertDepSource as
|
|
58
|
-
import { useSnapDepSource as
|
|
59
|
-
import { useDebugDepSource as
|
|
60
|
-
import { useDispatcherDepSource as
|
|
61
|
-
import { useLayoutDepSource as
|
|
62
|
-
import { useGeometryProjection as
|
|
63
|
-
import { useIngestionDepSource as
|
|
12
|
+
import { resizePolicyOptions as ne, useResizePolicy as m } from "./deps/resizePolicy.js";
|
|
13
|
+
import { usePoseDescriptorDepSource as h } from "./deps/poseDescriptor.js";
|
|
14
|
+
import { usePoseCompositionDepSource as re } from "./deps/poseComposition.js";
|
|
15
|
+
import { useSliceDepSource as ie } from "./deps/slice.js";
|
|
16
|
+
import { useDecayLoop as g } from "../core/viewport/useDecayLoop.js";
|
|
17
|
+
import { useAnimator as ae } from "../animation/useAnimator.js";
|
|
18
|
+
import { useViewAnimationOn as _ } from "../core/viewport/useViewAnimation.js";
|
|
19
|
+
import { useTools as oe } from "../tools/overlayBinding.js";
|
|
20
|
+
import { useKeybindings as v } from "../tools/useKeybindings.js";
|
|
21
|
+
import { pathFromPlane as se } from "./planeClips.js";
|
|
22
|
+
import { selectionMoveContribution as y, selectionResizeContribution as b, selectionRotateContribution as ce } from "../tools/builtin/select/selectionContributions.js";
|
|
23
|
+
import { useHandTool as le } from "../tools/builtin/hand/useHandTool.js";
|
|
24
|
+
import { defaultDrawOne as ue, defaultPaintBounds as de, paintBoundsFor as x } from "./defaultDrawOne.js";
|
|
25
|
+
import { useLateContentRedraw as fe } from "./useLateContentRedraw.js";
|
|
26
|
+
import { createSceneLayerGate as pe } from "./sceneLayerPaint.js";
|
|
27
|
+
import { EMPTY_CHROME_STATE as me } from "../core/selection/chromeState.js";
|
|
28
|
+
import { ViewRegistryProvider as S, useOptionalViewRegistry as he } from "./viewRegistry.js";
|
|
29
|
+
import { useSelection as ge } from "../core/selection/useSelection.js";
|
|
30
|
+
import { createSelectionOverlayLayer as C, rotationBadgeOf as _e } from "../features/selection/overlay.js";
|
|
31
|
+
import { rotateAroundAABBCenter as ve } from "./poseRotation.js";
|
|
32
|
+
import { Canvas as ye } from "./Canvas.js";
|
|
33
|
+
import { composeAlphaFor as be, wireSceneSlotToScene as xe } from "./sceneSlotWiring.js";
|
|
34
|
+
import { useSceneAdapter as Se } from "./sceneAdapter.js";
|
|
35
|
+
import { sceneFromJSON as Ce } from "../core/scene/scene.js";
|
|
36
|
+
import { usePublishSelection as we } from "../features/selection/SelectionContext.js";
|
|
37
|
+
import { ViewInputsProvider as Te } from "./viewInputs.js";
|
|
38
|
+
import { anchorStateFrom as Ee, buildAffordanceAt as De, buildClassifyTarget as w, chromeAffordances as Oe } from "./affordanceAt.js";
|
|
39
|
+
import { createDispatcherPreviewSources as ke, createGestureSource as Ae } from "./SceneCanvas/dispatcherGestureBounds.js";
|
|
40
|
+
import { CanvasView as je } from "./CanvasView.js";
|
|
41
|
+
import { contributionEntries as Me, useContributionRoles as Ne } from "./SceneCanvas/useContributionRoles.js";
|
|
42
|
+
import { PointerProviderIfRoot as Pe, PointerPublisher as Fe } from "./SceneCanvas/PointerProviderIfRoot.js";
|
|
43
|
+
import { useSceneSelectTool as Ie } from "./SceneCanvas/useSceneSelectTool.js";
|
|
44
|
+
import { SCENE_CANVAS_FEATURES as Le, featureActionIds as Re, resolveFeatures as ze } from "./SceneCanvas/features.js";
|
|
45
|
+
import { usePreviewGhostLayer as Be } from "./SceneCanvas/usePreviewGhostLayer.js";
|
|
46
|
+
import { useDispatcherOverlayLayer as Ve } from "./SceneCanvas/useDispatcherOverlayLayer.js";
|
|
47
|
+
import { createPenPreviewLayer as He } from "../features/paths/penPreviewLayer.js";
|
|
48
|
+
import { createPathEditingOverlayLayer as Ue } from "../features/paths/pathEditingOverlayLayer.js";
|
|
49
|
+
import { createSlopsDebugLayer as We } from "./slopsDebugLayer.js";
|
|
50
|
+
import { useBuiltinShapeTools as Ge } from "./SceneCanvas/useBuiltinShapeTools.js";
|
|
51
|
+
import { useViewDepSource as Ke } from "./deps/view.js";
|
|
52
|
+
import { useAreaSelectDepSource as qe } from "./deps/areaSelect.js";
|
|
53
|
+
import { useNodeAtPointDepSource as Je } from "./deps/nodeAtPoint.js";
|
|
54
|
+
import { useLassoSelectDepSource as Ye } from "./deps/lassoSelect.js";
|
|
55
|
+
import { useTextEditDepSource as Xe } from "./deps/textEdit.js";
|
|
56
|
+
import { resolveEditablePathOf as Ze, useEditAnchorsDepSource as Qe } from "./deps/editAnchors.js";
|
|
57
|
+
import { useInsertDepSource as $e } from "./deps/insert.js";
|
|
58
|
+
import { useSnapDepSource as T } from "./deps/snap.js";
|
|
59
|
+
import { useDebugDepSource as et } from "./deps/debug.js";
|
|
60
|
+
import { useDispatcherDepSource as tt } from "./deps/dispatcher.js";
|
|
61
|
+
import { useLayoutDepSource as nt } from "./deps/layout.js";
|
|
62
|
+
import { useGeometryProjection as rt } from "./deps/geometryProjection.js";
|
|
63
|
+
import { useIngestionDepSource as it } from "./deps/ingestion.js";
|
|
64
64
|
import { useLayoutArrivals as at } from "../layout/arrivals.js";
|
|
65
65
|
import { acquireKitContentHandlers as ot } from "../features/ingestion/registerKitHandlers.js";
|
|
66
66
|
import { itemsFromFiles as st } from "../features/ingestion/index.js";
|
|
@@ -71,34 +71,35 @@ import { createNodeRouting as dt } from "../core/scene/NodeRouting.js";
|
|
|
71
71
|
import { inferredNodeRouting as ft } from "./SceneCanvas/defaultNodeRouting.js";
|
|
72
72
|
import { installTestHookIfRequested as pt } from "../test-hook/install.js";
|
|
73
73
|
import { makeGetNodeAtPoint as mt } from "./getNodeAtPoint.js";
|
|
74
|
-
import {
|
|
75
|
-
import {
|
|
76
|
-
import {
|
|
77
|
-
import {
|
|
78
|
-
import {
|
|
79
|
-
import {
|
|
80
|
-
import {
|
|
81
|
-
import {
|
|
82
|
-
import {
|
|
83
|
-
import {
|
|
84
|
-
import {
|
|
74
|
+
import { useHitObserver as ht } from "./useHitObserver.js";
|
|
75
|
+
import { never as gt } from "../features/chrome-caps/conditions.js";
|
|
76
|
+
import { resolveVisibility as _t } from "../features/chrome-caps/resolve.js";
|
|
77
|
+
import { buildChromeCtx as vt } from "../features/chrome-caps/buildChromeCtx.js";
|
|
78
|
+
import { useHoverTracking as yt } from "../features/chrome-caps/useHoverTracking.js";
|
|
79
|
+
import { DEFAULT_ALLOWED_CAPABILITIES as bt } from "../features/chrome-caps/index.js";
|
|
80
|
+
import { forwardRef as xt, useCallback as E, useEffect as D, useInsertionEffect as St, useMemo as O, useRef as k, useState as Ct } from "react";
|
|
81
|
+
import { assignRef as wt, useLatest as A } from "@weasel-js/react";
|
|
82
|
+
import { createDispatcher as Tt, createLongPressStore as Et } from "@weasel-js/routing";
|
|
83
|
+
import { InputScope as Dt, useActionsRegistry as Ot, useDepRegistry as kt, useDepSource as At, useGestureDispatcher as j } from "@weasel-js/routing/react";
|
|
84
|
+
import { Fragment as jt, jsx as M, jsxs as Mt } from "react/jsx-runtime";
|
|
85
|
+
import { getActiveModeFor as Nt } from "@weasel-js/modes";
|
|
85
86
|
//#region src/canvas/SceneCanvas.tsx
|
|
86
|
-
var
|
|
87
|
+
var Pt = o, Ft = (() => {
|
|
87
88
|
try {
|
|
88
89
|
return !1;
|
|
89
90
|
} catch {
|
|
90
91
|
return !1;
|
|
91
92
|
}
|
|
92
|
-
})(),
|
|
93
|
-
|
|
94
|
-
function
|
|
95
|
-
|
|
93
|
+
})(), It = 200, N = [], Lt = Ft;
|
|
94
|
+
Lt && typeof window < "u" && (window.__weaselCoordLog__ = N);
|
|
95
|
+
function Rt(e) {
|
|
96
|
+
Lt && (N.push(e), N.length > It && N.shift());
|
|
96
97
|
}
|
|
97
|
-
function
|
|
98
|
+
function zt(e, t = 1) {
|
|
98
99
|
let n = {
|
|
99
100
|
scene: {
|
|
100
|
-
drawOne:
|
|
101
|
-
paintBounds:
|
|
101
|
+
drawOne: ue,
|
|
102
|
+
paintBounds: de
|
|
102
103
|
},
|
|
103
104
|
selectionOverlay: { handles: { size: s(t).handle } }
|
|
104
105
|
};
|
|
@@ -113,7 +114,7 @@ function Ft(e, t = 1) {
|
|
|
113
114
|
};
|
|
114
115
|
r.scene = e.scene && "paintBounds" in e.scene ? t : {
|
|
115
116
|
...t,
|
|
116
|
-
paintBounds:
|
|
117
|
+
paintBounds: x(t.drawOne)
|
|
117
118
|
};
|
|
118
119
|
}
|
|
119
120
|
return r.selectionOverlay = "selectionOverlay" in e ? e.selectionOverlay === null ? null : {
|
|
@@ -121,36 +122,36 @@ function Ft(e, t = 1) {
|
|
|
121
122
|
...e.selectionOverlay
|
|
122
123
|
} : n.selectionOverlay, r;
|
|
123
124
|
}
|
|
124
|
-
var
|
|
125
|
-
function
|
|
125
|
+
var Bt = ["select", "hand"], Vt = [...Bt, ...l];
|
|
126
|
+
function Ht(e) {
|
|
126
127
|
if (e === !1) return !1;
|
|
127
128
|
let { slops: t, ...n } = e;
|
|
128
129
|
return n;
|
|
129
130
|
}
|
|
130
|
-
var
|
|
131
|
-
function
|
|
131
|
+
var Ut = /* @__PURE__ */ new Set(), Wt = /* @__PURE__ */ new Set();
|
|
132
|
+
function Gt(e) {
|
|
132
133
|
return typeof e.setActive == "function";
|
|
133
134
|
}
|
|
134
|
-
function
|
|
135
|
-
let { scene: p, geometry: ne, poseDescriptor:
|
|
135
|
+
function P(o, u) {
|
|
136
|
+
let { scene: p, geometry: ne, poseDescriptor: m, selectTool: h, insertTool: re, insertNodeFactories: ie, ingestion: g, layouts: v, layoutDropTarget: ue, reflowTransition: de, poseComposition: x, geometryProjection: me, routing: S, selection: ve, selectionOptions: Ee, selectable: De = !0, tools: w, features: Oe, enableKeybindings: Ne = !0, enableGestureDispatcher: Le = !0, onToolsCreated: Ke, defaultTools: qe, toolOptions: Je, initialActiveTool: Ye, ambient: Xe, versionCheck: Qe, longPress: $e, viewport: T, layers: et, actions: tt, actionDefaults: nt, describeKind: rt, animator: it, views: at, children: ct, shaders: lt, flattenTolerance: xt, backgroundFill: Et, cursorCoordsHud: Dt, pickHud: Ot, debug: kt, modalityHud: At, alphaFor: j, layerVisibility: Pt, layerOrder: It, isPointerInteractive: N, onDoubleClick: Lt, onClick: Rt, chromeVisibility: Vt, modes: P, getFocused: Yt, device: Xt, ...Zt } = o, F = m ?? c, I = i(Xt), Qt = O(() => s(I.targetScale), [I.targetScale]), $t = (e) => typeof e == "object" && !!e && e.version === 1 && Array.isArray(e.nodes), [en] = Ct(() => $t(p) ? Ce(p, {}) : null), L = en ?? p, { view: R, onViewChange: tn, defaultView: nn, redrawOn: rn, ...an } = Zt, on = O(() => P ? Nt(P) : void 0, [P]), sn = O(() => P ? [...rn ?? [], P] : rn, [P, rn]), z = k(null), B = k(null), [cn, ln] = Ct(!1);
|
|
136
137
|
D(() => (d("scene-canvas", "mount"), () => d("scene-canvas", "unmount")), []);
|
|
137
|
-
let
|
|
138
|
+
let un = g?.handlers;
|
|
138
139
|
D(() => {
|
|
139
140
|
let e = [ot()];
|
|
140
|
-
for (let t of
|
|
141
|
+
for (let t of un ?? []) e.push(f(t));
|
|
141
142
|
return () => e.forEach((e) => e());
|
|
142
|
-
}, [
|
|
143
|
-
if (
|
|
143
|
+
}, [un]), D(() => {
|
|
144
|
+
if (it) return it.onTick(() => {
|
|
144
145
|
B.current?.requestRedraw?.();
|
|
145
146
|
});
|
|
146
|
-
}, [
|
|
147
|
+
}, [it]), fe(E(() => {
|
|
147
148
|
B.current?.requestRedraw?.();
|
|
148
|
-
}, [])), D(() =>
|
|
149
|
+
}, [])), D(() => L.overrides.subscribe(() => {
|
|
149
150
|
B.current?.requestRedraw?.();
|
|
150
|
-
}), [
|
|
151
|
+
}), [L]), D(() => L.subscribe(() => {
|
|
151
152
|
B.current?.requestRedraw?.();
|
|
152
|
-
}), [
|
|
153
|
-
let V = k(e(
|
|
153
|
+
}), [L]);
|
|
154
|
+
let V = k(e(R ?? nn ?? {
|
|
154
155
|
x: 0,
|
|
155
156
|
y: 0,
|
|
156
157
|
scale: {
|
|
@@ -158,71 +159,71 @@ function Vt(o, u) {
|
|
|
158
159
|
y: 1
|
|
159
160
|
}
|
|
160
161
|
}));
|
|
161
|
-
|
|
162
|
-
|
|
162
|
+
St(() => {
|
|
163
|
+
R !== void 0 && (V.current = e(R));
|
|
163
164
|
}), D(() => {
|
|
164
165
|
let e = B.current;
|
|
165
166
|
if (e) return V.current = e.getView(), e.subscribeView((e) => {
|
|
166
167
|
V.current = e;
|
|
167
168
|
});
|
|
168
|
-
}, [
|
|
169
|
-
let
|
|
169
|
+
}, [cn]);
|
|
170
|
+
let dn = E((t) => {
|
|
170
171
|
let n = B.current;
|
|
171
|
-
if (
|
|
172
|
+
if (R === void 0 && n) {
|
|
172
173
|
n.setView(t);
|
|
173
174
|
return;
|
|
174
175
|
}
|
|
175
|
-
|
|
176
|
-
}, [
|
|
176
|
+
tn?.(e(t));
|
|
177
|
+
}, [R, tn]), fn = ae(), pn = O(() => ({
|
|
177
178
|
get: () => V.current,
|
|
178
|
-
set:
|
|
179
|
-
}), [
|
|
180
|
-
H.stopIfExternal(),
|
|
181
|
-
}, [
|
|
182
|
-
if (
|
|
183
|
-
let e = typeof
|
|
184
|
-
return
|
|
179
|
+
set: dn
|
|
180
|
+
}), [dn]), H = _(pn, fn), mn = E((e) => {
|
|
181
|
+
H.stopIfExternal(), tn?.(e);
|
|
182
|
+
}, [tn, H]), hn = T?.animatedZoom, gn = T?.zoom ?? !0, _n = O(() => {
|
|
183
|
+
if (gn === !1) return !1;
|
|
184
|
+
let e = typeof gn == "object" ? gn : {};
|
|
185
|
+
return hn ? {
|
|
185
186
|
...e,
|
|
186
|
-
animate:
|
|
187
|
+
animate: hn === !0 ? {} : hn
|
|
187
188
|
} : e;
|
|
188
|
-
}, [
|
|
189
|
-
scene:
|
|
190
|
-
...
|
|
191
|
-
}), [
|
|
192
|
-
getSelection: () =>
|
|
189
|
+
}, [gn, hn]), vn = O(() => ({
|
|
190
|
+
scene: L,
|
|
191
|
+
...Ee ?? {}
|
|
192
|
+
}), [L, Ee]), yn = ge(vn), bn = ve ?? yn, xn = bn.adapterMethods, Sn = O(() => ({
|
|
193
|
+
getSelection: () => xn.getSelection(),
|
|
193
194
|
setSelection: () => {}
|
|
194
|
-
}), [
|
|
195
|
-
if (
|
|
195
|
+
}), [xn]), U = O(() => {
|
|
196
|
+
if (De) return bn;
|
|
196
197
|
let e = () => {};
|
|
197
198
|
return {
|
|
198
199
|
get current() {
|
|
199
|
-
return
|
|
200
|
+
return bn.current;
|
|
200
201
|
},
|
|
201
|
-
get:
|
|
202
|
-
contains:
|
|
202
|
+
get: bn.get,
|
|
203
|
+
contains: bn.contains,
|
|
203
204
|
set: e,
|
|
204
205
|
add: e,
|
|
205
206
|
remove: e,
|
|
206
207
|
toggle: e,
|
|
207
208
|
clear: e,
|
|
208
209
|
applyClick: e,
|
|
209
|
-
adapterMethods:
|
|
210
|
+
adapterMethods: Sn
|
|
210
211
|
};
|
|
211
212
|
}, [
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
]),
|
|
216
|
-
if (
|
|
213
|
+
bn,
|
|
214
|
+
De,
|
|
215
|
+
Sn
|
|
216
|
+
]), Cn = U.current, wn = O(() => {
|
|
217
|
+
if (Cn.length === 0) return;
|
|
217
218
|
let e = [];
|
|
218
|
-
for (let t of
|
|
219
|
-
let n =
|
|
219
|
+
for (let t of Cn) {
|
|
220
|
+
let n = L.get(t);
|
|
220
221
|
if (!n) {
|
|
221
222
|
e.push(void 0);
|
|
222
223
|
continue;
|
|
223
224
|
}
|
|
224
|
-
if (
|
|
225
|
-
e.push(
|
|
225
|
+
if (rt) {
|
|
226
|
+
e.push(rt(n));
|
|
226
227
|
continue;
|
|
227
228
|
}
|
|
228
229
|
if (n.kind === "container") {
|
|
@@ -238,207 +239,201 @@ function Vt(o, u) {
|
|
|
238
239
|
}
|
|
239
240
|
return e;
|
|
240
241
|
}, [
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
242
|
+
Cn,
|
|
243
|
+
L,
|
|
244
|
+
rt
|
|
244
245
|
]);
|
|
245
|
-
|
|
246
|
-
let [
|
|
247
|
-
let e =
|
|
248
|
-
return e && !e() ? "" :
|
|
249
|
-
}, [
|
|
246
|
+
we(Cn, wn);
|
|
247
|
+
let [Tn, En] = Ct(""), Dn = A(Tn), On = k(void 0), W = E(() => {
|
|
248
|
+
let e = On.current;
|
|
249
|
+
return e && !e() ? "" : Dn.current;
|
|
250
|
+
}, [Dn]), kn = k(Wt), An = k(null), jn = O(() => ({
|
|
250
251
|
getEditingId: () => W(),
|
|
251
|
-
setEditingId: (e) =>
|
|
252
|
-
getSelectedAnchors: () =>
|
|
252
|
+
setEditingId: (e) => En(e ?? ""),
|
|
253
|
+
getSelectedAnchors: () => kn.current,
|
|
253
254
|
setSelectedAnchors: (e) => {
|
|
254
|
-
|
|
255
|
+
kn.current = e, B.current?.requestRedraw?.();
|
|
255
256
|
},
|
|
256
|
-
getMarquee: () =>
|
|
257
|
+
getMarquee: () => An.current,
|
|
257
258
|
setMarquee: (e) => {
|
|
258
|
-
|
|
259
|
+
An.current = e, B.current?.requestRedraw?.();
|
|
259
260
|
}
|
|
260
|
-
}), [W]),
|
|
261
|
-
handleHitRadius:
|
|
261
|
+
}), [W]), Mn = O(() => ({
|
|
262
|
+
handleHitRadius: Qt.handle,
|
|
262
263
|
extendClickLocked: () => W() !== "",
|
|
263
|
-
...
|
|
264
|
+
...h
|
|
264
265
|
}), [
|
|
265
|
-
|
|
266
|
-
|
|
266
|
+
h,
|
|
267
|
+
Qt.handle,
|
|
267
268
|
W
|
|
268
|
-
]),
|
|
269
|
-
let e =
|
|
269
|
+
]), Nn = A(U), Pn = O(() => {
|
|
270
|
+
let e = S === void 0 ? ft : S;
|
|
270
271
|
if (e.length === 0) return;
|
|
271
272
|
let t = dt();
|
|
272
273
|
for (let n of e) t.register(n);
|
|
273
274
|
return (e) => t.classify(e);
|
|
274
|
-
}, [
|
|
275
|
-
if (
|
|
276
|
-
let t =
|
|
277
|
-
return t ?
|
|
275
|
+
}, [S]), Fn = O(() => {
|
|
276
|
+
if (Pn) return (e) => {
|
|
277
|
+
let t = L.get(e);
|
|
278
|
+
return t ? Pn(t.data) : void 0;
|
|
278
279
|
};
|
|
279
|
-
}, [
|
|
280
|
-
layerVisibility:
|
|
281
|
-
layerOrder:
|
|
282
|
-
}), [
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
]),
|
|
280
|
+
}, [Pn, L]), In = O(() => be(L, j), [L, j]), Ln = he(), Rn = A({
|
|
281
|
+
layerVisibility: Pt,
|
|
282
|
+
layerOrder: It
|
|
283
|
+
}), [zn] = Ct(pe), Bn = E((e) => zn(Ln?.surface()?.layers() ?? [], Rn.current)(e), [
|
|
284
|
+
Ln,
|
|
285
|
+
zn,
|
|
286
|
+
Rn
|
|
287
|
+
]), Vn = Pt !== void 0 || It !== void 0 ? Bn : void 0, Hn = x !== void 0 && x.closure !== "identity", G = Se(L, {
|
|
287
288
|
selection: U.adapterMethods,
|
|
288
|
-
poseDescriptor:
|
|
289
|
-
commitInsert:
|
|
290
|
-
insertLayer:
|
|
291
|
-
layouts:
|
|
292
|
-
poseComposition:
|
|
293
|
-
cascadeContainerPose: !
|
|
294
|
-
}), { selectTool:
|
|
295
|
-
scene:
|
|
289
|
+
poseDescriptor: F,
|
|
290
|
+
commitInsert: re?.create,
|
|
291
|
+
insertLayer: re?.layer,
|
|
292
|
+
layouts: v,
|
|
293
|
+
poseComposition: x,
|
|
294
|
+
cascadeContainerPose: !Hn
|
|
295
|
+
}), { selectTool: Un, pickEvery: K, pickBest: Wn, boundsOf: Gn, boundsOfPose: Kn, planeOfNode: qn, moveOptions: Jn } = Ie({
|
|
296
|
+
scene: L,
|
|
296
297
|
adapter: G,
|
|
297
|
-
poseDescriptor:
|
|
298
|
+
poseDescriptor: F,
|
|
298
299
|
geometry: ne,
|
|
299
300
|
getView: () => V.current,
|
|
300
|
-
...
|
|
301
|
-
...
|
|
302
|
-
selectTool:
|
|
303
|
-
}),
|
|
301
|
+
...j ? { alphaOf: In } : {},
|
|
302
|
+
...Vn ? { layerIsPainted: Vn } : {},
|
|
303
|
+
selectTool: Mn
|
|
304
|
+
}), Yn = A(qn), Xn = O(() => {
|
|
304
305
|
if (!K) return;
|
|
305
306
|
let e = mt(K, (e) => {
|
|
306
307
|
let t = G.getNode(e);
|
|
307
308
|
return {
|
|
308
|
-
kind: t &&
|
|
309
|
+
kind: t && Pn ? Pn(t.data) : "unknown",
|
|
309
310
|
pose: G.getWorldPose(e),
|
|
310
311
|
data: t ?? { id: e }
|
|
311
312
|
};
|
|
312
313
|
});
|
|
313
|
-
return
|
|
314
|
+
return N ? (t, n, r) => {
|
|
314
315
|
let i = e(t, n, r);
|
|
315
|
-
return i == null ||
|
|
316
|
+
return i == null || N(i.id) === !1 ? null : i;
|
|
316
317
|
} : e;
|
|
317
318
|
}, [
|
|
318
319
|
G,
|
|
319
320
|
K,
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
]),
|
|
323
|
-
friction:
|
|
324
|
-
minSpeed:
|
|
325
|
-
boundary:
|
|
326
|
-
bounds:
|
|
327
|
-
} : void 0,
|
|
328
|
-
...
|
|
329
|
-
...q.has("
|
|
321
|
+
N,
|
|
322
|
+
Pn
|
|
323
|
+
]), Zn = (Oe ?? []).join("|"), Qn = T !== void 0, q = O(() => ze(Oe, { viewport: Qn }), [Zn, Qn]), $n = !!T?.inertia, er = typeof T?.inertia == "object" ? T.inertia : void 0, tr = $n ? {
|
|
324
|
+
friction: er?.friction,
|
|
325
|
+
minSpeed: er?.minSpeed,
|
|
326
|
+
boundary: er?.boundary,
|
|
327
|
+
bounds: er?.bounds
|
|
328
|
+
} : void 0, nr = le(tr ? { inertia: tr } : {}), rr = [
|
|
329
|
+
...qe ?? [],
|
|
330
|
+
...q.has("select") ? ["select"] : [],
|
|
330
331
|
...q.has("view") ? ["hand"] : []
|
|
331
|
-
],
|
|
332
|
-
if (
|
|
333
|
-
for (let [e, t] of Object.entries(
|
|
334
|
-
if (!
|
|
335
|
-
|
|
332
|
+
], ir = /* @__PURE__ */ new Set([...Bt, ...l]), ar = !w || Gt(w) ? null : w, or = /* @__PURE__ */ new Set();
|
|
333
|
+
if (ar) {
|
|
334
|
+
for (let [e, t] of Object.entries(ar)) if (t === !0) {
|
|
335
|
+
if (!ir.has(e)) {
|
|
336
|
+
Ft && console.warn(`[SceneCanvas] tools.${e}=true is not a known built-in id; ignoring`);
|
|
336
337
|
continue;
|
|
337
338
|
}
|
|
338
|
-
|
|
339
|
+
or.add(e);
|
|
339
340
|
}
|
|
340
341
|
}
|
|
341
|
-
let J = (e) =>
|
|
342
|
-
scene:
|
|
342
|
+
let J = (e) => rr.includes(e) || or.has(e), Y = Ge({
|
|
343
|
+
scene: L,
|
|
343
344
|
adapter: G,
|
|
344
|
-
options:
|
|
345
|
-
}),
|
|
346
|
-
J("select") && (X.select =
|
|
347
|
-
let
|
|
348
|
-
if (
|
|
345
|
+
options: Je
|
|
346
|
+
}), sr = O(() => ut(), []), cr = $e?.feedback ?? !0, lr = cr === !0 ? sr : cr || null, ur = O(() => lr ? [...Xe ?? [], lr] : Xe ?? [], [Xe, lr]), X = {};
|
|
347
|
+
J("select") && (X.select = Un), J("hand") && (X.hand = nr), J("rect") && (X.rect = Y.rect), J("ellipse") && (X.ellipse = Y.ellipse), J("line") && (X.line = Y.line), J("polygon") && (X.polygon = Y.polygon), J("star") && (X.star = Y.star), J("pen") && (X.pen = Y.pen), J("pencil") && (X.pencil = Y.pencil), J("lasso") && (X.lasso = Y.lasso), J("text") && (X.text = Y.text);
|
|
348
|
+
let dr = ar;
|
|
349
|
+
if (dr) for (let [e, t] of Object.entries(dr)) if (t === !1) delete X[e];
|
|
349
350
|
else if (t === !0) continue;
|
|
350
|
-
else
|
|
351
|
-
let
|
|
352
|
-
active:
|
|
351
|
+
else Ft && e in X && console.warn(`[SceneCanvas] tools prop overrides bundled "${e}" tool`), X[e] = t;
|
|
352
|
+
let fr = w && Gt(w) ? w : null, pr = oe({
|
|
353
|
+
active: Ye ?? ("select" in X ? "select" : null),
|
|
353
354
|
registry: X,
|
|
354
|
-
...
|
|
355
|
-
...
|
|
356
|
-
}),
|
|
355
|
+
...ur.length ? { ambient: ur } : {},
|
|
356
|
+
...P ? { modes: P } : {}
|
|
357
|
+
}), mr = A(fr ?? pr), Z = A(on), hr = E((e) => {
|
|
357
358
|
let t = Z.current;
|
|
358
359
|
if (!t) return !0;
|
|
359
|
-
let n = (
|
|
360
|
+
let n = (mr.current?.registry)?.[e]?.eligibility.capabilities ?? [];
|
|
360
361
|
if (n.length === 0) return !1;
|
|
361
362
|
let r = t().allowedCapabilities;
|
|
362
363
|
for (let e of n) if (r.has(e)) return !0;
|
|
363
364
|
return !1;
|
|
364
|
-
}, [Z,
|
|
365
|
+
}, [Z, mr]), Q = fr ?? pr, gr = O(() => ({ move: Jn }), [Jn]), _r = h?.rotate || void 0, vr = O(() => [
|
|
366
|
+
...q.has("resize") ? [b()] : [],
|
|
367
|
+
...q.has("rotate") ? [ce({ rotate: _r })] : [],
|
|
368
|
+
...q.has("move") ? [y(gr)] : []
|
|
369
|
+
], [
|
|
365
370
|
q,
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
]),
|
|
369
|
-
let e =
|
|
371
|
+
gr,
|
|
372
|
+
_r
|
|
373
|
+
]), yr = O(() => {
|
|
374
|
+
let e = Re(q), t = [
|
|
370
375
|
...Object.values(Q.registry),
|
|
371
376
|
...Q.ambient,
|
|
372
|
-
...
|
|
377
|
+
...vr
|
|
373
378
|
];
|
|
374
379
|
for (let n of t) for (let t of n.bindings ?? []) e.add(t.actionId);
|
|
375
380
|
return te.filter((t) => !e.has(t));
|
|
376
381
|
}, [
|
|
377
382
|
q,
|
|
378
383
|
Q,
|
|
379
|
-
|
|
380
|
-
]),
|
|
384
|
+
vr
|
|
385
|
+
]), br = A(Ke);
|
|
381
386
|
D(() => {
|
|
382
|
-
|
|
383
|
-
}, [Q,
|
|
384
|
-
let
|
|
385
|
-
if (
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
let n = vr.current?.(e.x, e.y);
|
|
389
|
-
t(n ? {
|
|
390
|
-
id: n.id,
|
|
391
|
-
kind: n.kind
|
|
392
|
-
} : null);
|
|
393
|
-
};
|
|
394
|
-
}, [!!Nt]), $ = O(() => Ft(tt, L.targetScale), [tt, L.targetScale]), br = O(() => {
|
|
395
|
-
if (m?.rotate !== !1) return nt;
|
|
396
|
-
if (nt === null) return null;
|
|
397
|
-
let e = { ...nt ?? {} };
|
|
387
|
+
br.current?.(Q);
|
|
388
|
+
}, [Q, br]);
|
|
389
|
+
let xr = A(Xn), Sr = ht(Lt, xr), Cr = ht(Rt, xr), $ = O(() => zt(et, I.targetScale), [et, I.targetScale]), wr = O(() => {
|
|
390
|
+
if (h?.rotate !== !1) return tt;
|
|
391
|
+
if (tt === null) return null;
|
|
392
|
+
let e = { ...tt ?? {} };
|
|
398
393
|
return "rotate" in e || (e.rotate = null), e;
|
|
399
|
-
}, [
|
|
400
|
-
|
|
401
|
-
let
|
|
394
|
+
}, [tt, h?.rotate]), Tr = k(null), Er = k(null);
|
|
395
|
+
Er.current ||= Tt({ getAction: (e) => Tr.current?.(e) });
|
|
396
|
+
let Dr = Er.current, Or = O(() => Ae(() => Er.current), []), { previewIdsExtra: kr, previewPoseExtra: Ar } = O(() => ke(() => Er.current), []), jr = O(() => {
|
|
402
397
|
let e = $.scene;
|
|
403
|
-
return !e || "layer" in e ? e :
|
|
398
|
+
return !e || "layer" in e ? e : xe(e, L, j, it?.colorOverrides);
|
|
404
399
|
}, [
|
|
405
400
|
$.scene,
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
]),
|
|
410
|
-
scene:
|
|
411
|
-
sceneSlot:
|
|
412
|
-
dispatcher:
|
|
413
|
-
}),
|
|
414
|
-
canvasRef:
|
|
401
|
+
j,
|
|
402
|
+
L,
|
|
403
|
+
it
|
|
404
|
+
]), Mr = Be({
|
|
405
|
+
scene: L,
|
|
406
|
+
sceneSlot: jr,
|
|
407
|
+
dispatcher: Dr
|
|
408
|
+
}), Nr = Ve({ dispatcher: Dr }), Pr = A(Xn), Fr = yt({
|
|
409
|
+
canvasRef: z,
|
|
415
410
|
nodeAtClientPoint: (e, t) => {
|
|
416
|
-
let n =
|
|
411
|
+
let n = z.current;
|
|
417
412
|
if (!n) return null;
|
|
418
|
-
let r =
|
|
413
|
+
let r = Ln?.resolver.at(null, e, t), i = r?.origin ?? n.getBoundingClientRect(), o = r?.view ?? V.current, [s, c] = a(e, t, i, o), l = r?.id == null ? void 0 : Ln?.list().find((e) => e.id === r.id), u = Pr.current?.(s, c, l ? {
|
|
419
414
|
scale: o.scale,
|
|
420
415
|
layerIsPainted: l.layerIsPainted
|
|
421
416
|
} : o);
|
|
422
417
|
return u ? { id: u.id } : null;
|
|
423
418
|
},
|
|
424
|
-
enabled:
|
|
425
|
-
}),
|
|
419
|
+
enabled: Vt !== void 0
|
|
420
|
+
}), Ir = A(U.current), Lr = A(Yt), Rr = O(() => {
|
|
426
421
|
let e = {};
|
|
427
|
-
return q.has("
|
|
422
|
+
return q.has("outline") || (e["selection.outline"] = gt), q.has("resize") || (e["selection.resize-handles"] = gt), q.has("rotate") || (e["selection.rotation-handle"] = gt), De || (e["action.marquee"] = gt, e["action.lasso"] = gt), h?.rotate === !1 && (e["selection.rotation-handle"] = gt), Object.keys(e).length === 0 ? Vt : {
|
|
428
423
|
...e,
|
|
429
|
-
...
|
|
424
|
+
...Vt
|
|
430
425
|
};
|
|
431
426
|
}, [
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
427
|
+
Vt,
|
|
428
|
+
De,
|
|
429
|
+
h?.rotate,
|
|
435
430
|
q
|
|
436
|
-
]),
|
|
431
|
+
]), zr = A(Rr), Br = A(I), Vr = A(h?.resize?.resizable), Hr = E((e) => {
|
|
437
432
|
let n = e.selection, r = Z.current?.() ?? {
|
|
438
433
|
id: "normal",
|
|
439
|
-
allowedCapabilities:
|
|
440
|
-
}, i =
|
|
441
|
-
focused: !
|
|
434
|
+
allowedCapabilities: bt
|
|
435
|
+
}, i = vt({
|
|
436
|
+
focused: !Lr.current || Lr.current(),
|
|
442
437
|
selection: n,
|
|
443
438
|
multiActive: n.length > 1,
|
|
444
439
|
modifiers: {
|
|
@@ -448,9 +443,9 @@ function Vt(o, u) {
|
|
|
448
443
|
shift: !1
|
|
449
444
|
},
|
|
450
445
|
action: e.action,
|
|
451
|
-
hover:
|
|
446
|
+
hover: Fr(),
|
|
452
447
|
view: e.view
|
|
453
|
-
}), a =
|
|
448
|
+
}), a = Vr.current, o = a ? n.every((e) => a(e)) : void 0;
|
|
454
449
|
return {
|
|
455
450
|
...i,
|
|
456
451
|
zoom: t(e.view),
|
|
@@ -458,36 +453,36 @@ function Vt(o, u) {
|
|
|
458
453
|
allowedCapabilities: r.allowedCapabilities,
|
|
459
454
|
selectionResizable: o,
|
|
460
455
|
editingAnchors: W() !== "",
|
|
461
|
-
device:
|
|
456
|
+
device: Br.current
|
|
462
457
|
};
|
|
463
458
|
}, [
|
|
464
|
-
|
|
459
|
+
Fr,
|
|
465
460
|
W,
|
|
466
461
|
Z,
|
|
467
|
-
Nr,
|
|
468
462
|
Lr,
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
463
|
+
Vr,
|
|
464
|
+
Br
|
|
465
|
+
]), Ur = E(() => ({
|
|
466
|
+
selection: Ir.current,
|
|
472
467
|
view: V.current,
|
|
473
|
-
action:
|
|
474
|
-
}), [
|
|
475
|
-
|
|
476
|
-
|
|
468
|
+
action: Dr.getActiveAction()
|
|
469
|
+
}), [Dr, Ir]), Wr = E(() => Hr(Ur()), [Hr, Ur]), Gr = O(() => on ? () => Z.current().allowedCapabilities.has("edits-anchors") : void 0, [on, Z]);
|
|
470
|
+
St(() => {
|
|
471
|
+
On.current = Gr;
|
|
477
472
|
});
|
|
478
|
-
let
|
|
479
|
-
ruleCtx: (e) => Z.current ?
|
|
480
|
-
isVisible: (e) =>
|
|
473
|
+
let Kr = O(() => ({
|
|
474
|
+
ruleCtx: (e) => Z.current ? Hr(e) : void 0,
|
|
475
|
+
isVisible: (e) => _t(zr.current, Hr(e))
|
|
481
476
|
}), [
|
|
482
|
-
|
|
477
|
+
Hr,
|
|
483
478
|
Z,
|
|
484
|
-
|
|
485
|
-
]),
|
|
479
|
+
zr
|
|
480
|
+
]), qr = E(() => Kr.isVisible(Ur()), [Kr, Ur]), Jr = J("pen"), Yr = O(() => Jr ? He({ penTool: Y.pen }) : null, [Y.pen, Jr]);
|
|
486
481
|
D(() => {
|
|
487
482
|
B.current?.requestRedraw?.();
|
|
488
|
-
}, [
|
|
489
|
-
let
|
|
490
|
-
let r =
|
|
483
|
+
}, [Tn]);
|
|
484
|
+
let Xr = A(L), Zr = kt !== void 0 && kt !== !1 && kt.slops === !0, Qr = $.selectionOverlay, $r = Qr ? _e(Qr) : null, ei = O(() => $r, [$r?.distancePx, $r?.sizePx]), ti = k([]), ni = O(() => We({ getAffordances: () => ti.current }), []), ri = (e, t, n) => {
|
|
485
|
+
let r = Xr.current?.get(e);
|
|
491
486
|
if (!r) return null;
|
|
492
487
|
let i = r.pose, a = r.data, o = !1;
|
|
493
488
|
for (let n of t) {
|
|
@@ -504,95 +499,95 @@ function Vt(o, u) {
|
|
|
504
499
|
let c = n.previewData?.(e);
|
|
505
500
|
c != null && (a = c, o = !0);
|
|
506
501
|
}
|
|
507
|
-
return
|
|
502
|
+
return se(Ze({
|
|
508
503
|
pose: i,
|
|
509
504
|
data: a
|
|
510
|
-
}),
|
|
511
|
-
},
|
|
505
|
+
}), Yn.current(e, n));
|
|
506
|
+
}, ii = O(() => Ue({
|
|
512
507
|
getEditingId: () => W() || null,
|
|
513
|
-
getPose: (e, t, n) =>
|
|
514
|
-
getSelectedAnchors: () =>
|
|
508
|
+
getPose: (e, t, n) => ri(e, t, n),
|
|
509
|
+
getSelectedAnchors: () => kn.current,
|
|
515
510
|
getMarquee: (e) => {
|
|
516
|
-
let t =
|
|
511
|
+
let t = An.current, r = t ? Yn.current(W(), e) : null;
|
|
517
512
|
return t && r ? n(r, t) : t;
|
|
518
513
|
}
|
|
519
|
-
}), []),
|
|
514
|
+
}), []), ai = E(() => {
|
|
520
515
|
let e = W();
|
|
521
|
-
return e ? /* @__PURE__ */ new Set([e]) :
|
|
522
|
-
}, [W]),
|
|
516
|
+
return e ? /* @__PURE__ */ new Set([e]) : Ut;
|
|
517
|
+
}, [W]), oi = O(() => {
|
|
523
518
|
let e = $.selectionOverlay;
|
|
524
519
|
if (e === null) return null;
|
|
525
520
|
let t = e ?? {}, n = t.getSuppressedIds, r = () => {
|
|
526
|
-
let e =
|
|
521
|
+
let e = ai(), t = n?.();
|
|
527
522
|
if (!t || t.size === 0) return e;
|
|
528
523
|
if (e.size === 0) return t;
|
|
529
524
|
let r = new Set(t);
|
|
530
525
|
for (let t of e) r.add(t);
|
|
531
526
|
return r;
|
|
532
527
|
};
|
|
533
|
-
return
|
|
528
|
+
return C({
|
|
534
529
|
...t,
|
|
535
530
|
getSuppressedIds: r,
|
|
536
531
|
...t.poseById ? {
|
|
537
532
|
getPose: t.poseById,
|
|
538
|
-
poseDescriptor: t.poseDescriptor ??
|
|
533
|
+
poseDescriptor: t.poseDescriptor ?? F
|
|
539
534
|
} : {}
|
|
540
535
|
});
|
|
541
536
|
}, [
|
|
542
537
|
$.selectionOverlay,
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
]),
|
|
538
|
+
ai,
|
|
539
|
+
F
|
|
540
|
+
]), si = O(() => ({
|
|
546
541
|
...$,
|
|
547
|
-
...
|
|
548
|
-
selectionOverlay:
|
|
542
|
+
...jr ? { scene: jr } : {},
|
|
543
|
+
selectionOverlay: oi ? { layer: oi } : $.selectionOverlay === null ? null : void 0,
|
|
549
544
|
previewGhost: {
|
|
550
|
-
layer:
|
|
545
|
+
layer: Mr,
|
|
551
546
|
after: "scene"
|
|
552
547
|
},
|
|
553
548
|
dispatcherOverlay: {
|
|
554
|
-
layer:
|
|
549
|
+
layer: Nr,
|
|
555
550
|
after: "previewGhost"
|
|
556
551
|
},
|
|
557
|
-
...
|
|
558
|
-
layer:
|
|
552
|
+
...Yr ? { penPreview: {
|
|
553
|
+
layer: Yr,
|
|
559
554
|
after: "dispatcherOverlay"
|
|
560
555
|
} } : {},
|
|
561
556
|
pathEditingOverlay: {
|
|
562
|
-
layer:
|
|
557
|
+
layer: ii,
|
|
563
558
|
after: "selectionOverlay"
|
|
564
559
|
},
|
|
565
|
-
...
|
|
566
|
-
layer:
|
|
560
|
+
...Zr ? { slopsDebug: {
|
|
561
|
+
layer: ni,
|
|
567
562
|
after: "pathEditingOverlay"
|
|
568
563
|
} } : {}
|
|
569
564
|
}), [
|
|
570
565
|
$,
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
]),
|
|
580
|
-
if (
|
|
566
|
+
jr,
|
|
567
|
+
oi,
|
|
568
|
+
Mr,
|
|
569
|
+
Nr,
|
|
570
|
+
Yr,
|
|
571
|
+
ii,
|
|
572
|
+
Zr,
|
|
573
|
+
ni
|
|
574
|
+
]), ci = k(null), li = g?.clipboard?.reviver, ui = g?.clipboard?.enabled !== !1, di = O(() => {
|
|
575
|
+
if (ui && G?.commitPaste) return {
|
|
581
576
|
adapter: G,
|
|
582
|
-
...
|
|
577
|
+
...li ? { reviver: li } : {}
|
|
583
578
|
};
|
|
584
579
|
}, [
|
|
585
580
|
G,
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
]),
|
|
581
|
+
ui,
|
|
582
|
+
li
|
|
583
|
+
]), fi = E((e, t) => {
|
|
589
584
|
let n = e.map((e) => e instanceof File ? st([e])[0] : e);
|
|
590
585
|
if (n.length !== 0) {
|
|
591
|
-
if (!
|
|
586
|
+
if (!ci.current) {
|
|
592
587
|
ee("ingest", "CanvasExtensionApi.ingest called before the action registry mounted — call ignored. Defer to an effect or event handler.");
|
|
593
588
|
return;
|
|
594
589
|
}
|
|
595
|
-
|
|
590
|
+
ci.current.trigger("ingest", {
|
|
596
591
|
items: n,
|
|
597
592
|
...t ? {
|
|
598
593
|
worldX: t.x,
|
|
@@ -600,191 +595,192 @@ function Vt(o, u) {
|
|
|
600
595
|
} : {}
|
|
601
596
|
});
|
|
602
597
|
}
|
|
603
|
-
}, []), [
|
|
598
|
+
}, []), [pi, mi] = Ct([]), hi = E((e) => (mi((t) => [...t.filter((t) => t.id !== e.id), e]), {
|
|
604
599
|
id: e.id,
|
|
605
|
-
draw: (t, n, r) =>
|
|
606
|
-
remove: () =>
|
|
607
|
-
}), [
|
|
608
|
-
|
|
600
|
+
draw: (t, n, r) => Ln?.list().find((t) => t.id === e.id)?.layer.draw(t, n, r) ?? [],
|
|
601
|
+
remove: () => mi((t) => t.filter((t) => t !== e))
|
|
602
|
+
}), [Ln]), gi = E((e) => {
|
|
603
|
+
z.current = e?.element ?? null;
|
|
609
604
|
let t = e ? {
|
|
610
605
|
...e,
|
|
611
|
-
ingest:
|
|
606
|
+
ingest: fi,
|
|
612
607
|
animateView: H.animate,
|
|
613
608
|
stopViewAnimation: H.stop,
|
|
614
609
|
isViewAnimating: H.isAnimating,
|
|
615
|
-
addView:
|
|
610
|
+
addView: hi
|
|
616
611
|
} : null;
|
|
617
|
-
B.current = t,
|
|
612
|
+
B.current = t, ln(t !== null), wt(u, t);
|
|
618
613
|
}, [
|
|
619
614
|
u,
|
|
620
|
-
|
|
615
|
+
fi,
|
|
621
616
|
H,
|
|
622
|
-
|
|
623
|
-
]),
|
|
617
|
+
hi
|
|
618
|
+
]), _i = O(() => ({
|
|
624
619
|
adapter: G,
|
|
625
|
-
geometry:
|
|
626
|
-
boundsOf:
|
|
627
|
-
boundsOfPose:
|
|
628
|
-
planeOfNode:
|
|
620
|
+
geometry: F,
|
|
621
|
+
boundsOf: Gn,
|
|
622
|
+
boundsOfPose: Kn,
|
|
623
|
+
planeOfNode: qn,
|
|
629
624
|
tools: Q,
|
|
630
625
|
pickEvery: K,
|
|
631
|
-
pickBest:
|
|
632
|
-
kindOfNode:
|
|
633
|
-
chromeCaps:
|
|
626
|
+
pickBest: Wn,
|
|
627
|
+
kindOfNode: Fn,
|
|
628
|
+
chromeCaps: Kr,
|
|
634
629
|
selectionApi: U,
|
|
635
|
-
rotationBadge:
|
|
630
|
+
rotationBadge: ei
|
|
636
631
|
}), [
|
|
637
632
|
G,
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
633
|
+
F,
|
|
634
|
+
Gn,
|
|
635
|
+
Kn,
|
|
636
|
+
qn,
|
|
642
637
|
Q,
|
|
643
638
|
K,
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
639
|
+
Wn,
|
|
640
|
+
Fn,
|
|
641
|
+
Kr,
|
|
647
642
|
U,
|
|
648
|
-
|
|
649
|
-
]),
|
|
650
|
-
ref:
|
|
643
|
+
ei
|
|
644
|
+
]), vi = /* @__PURE__ */ M(ye, {
|
|
645
|
+
ref: gi,
|
|
651
646
|
adapter: G,
|
|
652
647
|
selection: U,
|
|
653
|
-
poseDescriptor:
|
|
648
|
+
poseDescriptor: F,
|
|
654
649
|
tools: Q,
|
|
655
|
-
layers:
|
|
650
|
+
layers: si,
|
|
656
651
|
pickEvery: K,
|
|
657
|
-
boundsOf:
|
|
658
|
-
boundsOfPose:
|
|
659
|
-
getIsVisible:
|
|
660
|
-
previewIdsExtra:
|
|
661
|
-
gestureSource:
|
|
662
|
-
previewPoseExtra:
|
|
663
|
-
backgroundFill:
|
|
664
|
-
cursorCoordsHud:
|
|
665
|
-
pickHud:
|
|
666
|
-
modalityHud:
|
|
667
|
-
...
|
|
668
|
-
pickBest:
|
|
669
|
-
contentVersion:
|
|
670
|
-
layerVisibility:
|
|
671
|
-
layerOrder:
|
|
672
|
-
...
|
|
673
|
-
onViewChange:
|
|
652
|
+
boundsOf: Gn,
|
|
653
|
+
boundsOfPose: Kn,
|
|
654
|
+
getIsVisible: qr,
|
|
655
|
+
previewIdsExtra: kr,
|
|
656
|
+
gestureSource: Or,
|
|
657
|
+
previewPoseExtra: Ar,
|
|
658
|
+
backgroundFill: Et,
|
|
659
|
+
cursorCoordsHud: Dt,
|
|
660
|
+
pickHud: Ot,
|
|
661
|
+
modalityHud: At,
|
|
662
|
+
...kt === void 0 ? {} : { debug: Ht(kt) },
|
|
663
|
+
pickBest: Wn,
|
|
664
|
+
contentVersion: L.getVersion,
|
|
665
|
+
layerVisibility: Pt,
|
|
666
|
+
layerOrder: It,
|
|
667
|
+
...R === void 0 ? { defaultView: nn } : { view: R },
|
|
668
|
+
onViewChange: mn,
|
|
674
669
|
shaders: lt,
|
|
675
|
-
flattenTolerance:
|
|
676
|
-
...
|
|
677
|
-
|
|
678
|
-
}),
|
|
670
|
+
flattenTolerance: xt,
|
|
671
|
+
...sn ? { redrawOn: sn } : {},
|
|
672
|
+
...an
|
|
673
|
+
}), yi = A(L), bi = A(U), xi = k(null);
|
|
679
674
|
return D(() => {
|
|
680
|
-
process.env.NODE_ENV !== "production" && (
|
|
681
|
-
getScene: () =>
|
|
682
|
-
getSelectionIds: () =>
|
|
675
|
+
process.env.NODE_ENV !== "production" && (xi.current = pt({
|
|
676
|
+
getScene: () => yi.current,
|
|
677
|
+
getSelectionIds: () => bi.current?.current ?? [],
|
|
683
678
|
getView: () => V.current,
|
|
684
|
-
getActiveToolId: () =>
|
|
685
|
-
}),
|
|
679
|
+
getActiveToolId: () => mr.current?.active ?? null
|
|
680
|
+
}), xi.current?._markReady());
|
|
686
681
|
}, [
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
]), /* @__PURE__ */
|
|
691
|
-
value:
|
|
692
|
-
children: /* @__PURE__ */
|
|
693
|
-
value:
|
|
694
|
-
children: /* @__PURE__ */
|
|
695
|
-
|
|
696
|
-
/* @__PURE__ */
|
|
697
|
-
/* @__PURE__ */
|
|
682
|
+
yi,
|
|
683
|
+
bi,
|
|
684
|
+
mr
|
|
685
|
+
]), /* @__PURE__ */ M(r, {
|
|
686
|
+
value: Xt,
|
|
687
|
+
children: /* @__PURE__ */ M(Te, {
|
|
688
|
+
value: _i,
|
|
689
|
+
children: /* @__PURE__ */ M(jt, { children: /* @__PURE__ */ M(Pe, { children: /* @__PURE__ */ Mt(jt, { children: [
|
|
690
|
+
vi,
|
|
691
|
+
/* @__PURE__ */ M(Fe, { canvasRef: z }),
|
|
692
|
+
/* @__PURE__ */ M(Jt, {
|
|
698
693
|
selection: U,
|
|
699
|
-
scene:
|
|
694
|
+
scene: L,
|
|
700
695
|
adapter: G,
|
|
701
|
-
actionDefaults:
|
|
702
|
-
actions:
|
|
703
|
-
excludeActions:
|
|
696
|
+
actionDefaults: nt,
|
|
697
|
+
actions: wr,
|
|
698
|
+
excludeActions: yr,
|
|
704
699
|
currentViewRef: V,
|
|
705
|
-
onViewChange:
|
|
706
|
-
resizeOptions:
|
|
707
|
-
poseDescriptor:
|
|
708
|
-
geometryProjection:
|
|
709
|
-
dispatcher:
|
|
710
|
-
getActionRef:
|
|
700
|
+
onViewChange: dn,
|
|
701
|
+
resizeOptions: h?.resize,
|
|
702
|
+
poseDescriptor: F,
|
|
703
|
+
geometryProjection: me,
|
|
704
|
+
dispatcher: Dr,
|
|
705
|
+
getActionRef: Tr,
|
|
711
706
|
pickEvery: K,
|
|
712
|
-
layerIsPainted:
|
|
713
|
-
alphaOf:
|
|
714
|
-
viewportPanEnabled: q.has("view") ?
|
|
715
|
-
viewportZoom: q.has("view") ?
|
|
716
|
-
viewportPinchZoom: q.has("view") ?
|
|
717
|
-
viewportRecenter:
|
|
707
|
+
layerIsPainted: Vn,
|
|
708
|
+
alphaOf: j ? In : void 0,
|
|
709
|
+
viewportPanEnabled: q.has("view") ? T?.pan ?? !0 : !1,
|
|
710
|
+
viewportZoom: q.has("view") ? _n : !1,
|
|
711
|
+
viewportPinchZoom: q.has("view") ? T?.pinchZoom ?? !0 : !1,
|
|
712
|
+
viewportRecenter: T?.recenter,
|
|
718
713
|
viewAnimation: H,
|
|
719
|
-
editAnchorsExternalState:
|
|
720
|
-
anchorEditingAllowed:
|
|
721
|
-
layouts:
|
|
722
|
-
layoutDropTarget:
|
|
723
|
-
reflowTransition:
|
|
724
|
-
poseComposition:
|
|
725
|
-
insertNodeFactories:
|
|
726
|
-
snapPoint:
|
|
727
|
-
canvasRef:
|
|
714
|
+
editAnchorsExternalState: jn,
|
|
715
|
+
anchorEditingAllowed: Gr,
|
|
716
|
+
layouts: v,
|
|
717
|
+
layoutDropTarget: ue,
|
|
718
|
+
reflowTransition: de,
|
|
719
|
+
poseComposition: x,
|
|
720
|
+
insertNodeFactories: ie,
|
|
721
|
+
snapPoint: Je?.snapPoint,
|
|
722
|
+
canvasRef: z,
|
|
728
723
|
canvasApiRef: B,
|
|
729
|
-
ingestionResolveSrc:
|
|
730
|
-
ingestionSvg:
|
|
731
|
-
ingestionClipboard:
|
|
732
|
-
actionsRegistryRef:
|
|
724
|
+
ingestionResolveSrc: g?.resolveSrc,
|
|
725
|
+
ingestionSvg: g?.svg,
|
|
726
|
+
ingestionClipboard: di,
|
|
727
|
+
actionsRegistryRef: ci
|
|
733
728
|
}),
|
|
734
|
-
/* @__PURE__ */
|
|
735
|
-
canvasRef:
|
|
729
|
+
/* @__PURE__ */ M(qt, {
|
|
730
|
+
canvasRef: z,
|
|
736
731
|
canvasApiRef: B,
|
|
737
732
|
tools: Q,
|
|
738
|
-
contributions:
|
|
739
|
-
enabled:
|
|
740
|
-
keyboard:
|
|
741
|
-
selectionRef:
|
|
742
|
-
boundsOf:
|
|
743
|
-
planeOfNode:
|
|
733
|
+
contributions: vr,
|
|
734
|
+
enabled: Le,
|
|
735
|
+
keyboard: Ne,
|
|
736
|
+
selectionRef: Nn,
|
|
737
|
+
boundsOf: Gn,
|
|
738
|
+
planeOfNode: qn,
|
|
744
739
|
pickEvery: K,
|
|
745
|
-
pickBest:
|
|
746
|
-
kindOfNode:
|
|
740
|
+
pickBest: Wn,
|
|
741
|
+
kindOfNode: Fn,
|
|
747
742
|
viewRef: V,
|
|
748
|
-
dispatcher:
|
|
749
|
-
getIsVisibleForCanvas:
|
|
750
|
-
getRuleCtx:
|
|
751
|
-
targetScale:
|
|
752
|
-
handleHitRadius:
|
|
753
|
-
rotationBadge:
|
|
754
|
-
chromeAffordancesRef:
|
|
755
|
-
onDoubleClick:
|
|
756
|
-
|
|
743
|
+
dispatcher: Dr,
|
|
744
|
+
getIsVisibleForCanvas: qr,
|
|
745
|
+
getRuleCtx: on ? Wr : void 0,
|
|
746
|
+
targetScale: I.targetScale,
|
|
747
|
+
handleHitRadius: h?.handleHitRadius,
|
|
748
|
+
rotationBadge: ei,
|
|
749
|
+
chromeAffordancesRef: ti,
|
|
750
|
+
onDoubleClick: Sr,
|
|
751
|
+
onClick: Cr,
|
|
752
|
+
longPress: $e
|
|
757
753
|
}),
|
|
758
|
-
/* @__PURE__ */
|
|
759
|
-
internalTools:
|
|
760
|
-
toolsTakeover:
|
|
761
|
-
enableKeybindings:
|
|
762
|
-
isToolEligible:
|
|
763
|
-
canvasApi:
|
|
764
|
-
versionCheck:
|
|
754
|
+
/* @__PURE__ */ M(Kt, {
|
|
755
|
+
internalTools: pr,
|
|
756
|
+
toolsTakeover: fr ?? void 0,
|
|
757
|
+
enableKeybindings: Ne,
|
|
758
|
+
isToolEligible: hr,
|
|
759
|
+
canvasApi: cn ? B.current : null,
|
|
760
|
+
versionCheck: Qe
|
|
765
761
|
}),
|
|
766
|
-
at?.map((e, t) => /* @__PURE__ */
|
|
762
|
+
at?.map((e, t) => /* @__PURE__ */ M(je, {
|
|
767
763
|
...e,
|
|
768
764
|
order: e.order ?? t
|
|
769
765
|
}, e.id)),
|
|
770
|
-
|
|
771
|
-
|
|
766
|
+
Me(Q).flatMap((e) => e.views ?? []).map((e) => /* @__PURE__ */ M(je, { ...e }, `contribution:${e.id}`)),
|
|
767
|
+
pi.map((e) => /* @__PURE__ */ M(je, { ...e }, `added:${e.id}`)),
|
|
772
768
|
ct
|
|
773
769
|
] }) }) })
|
|
774
770
|
})
|
|
775
771
|
});
|
|
776
772
|
}
|
|
777
|
-
function
|
|
778
|
-
return
|
|
773
|
+
function Kt({ internalTools: e, toolsTakeover: t, enableKeybindings: n, isToolEligible: r, canvasApi: i, versionCheck: a }) {
|
|
774
|
+
return v(e, {
|
|
779
775
|
disable: !!t || !n,
|
|
780
776
|
isToolEligible: r
|
|
781
|
-
}),
|
|
777
|
+
}), v(t ?? e, {
|
|
782
778
|
disable: !t || !n,
|
|
783
779
|
isToolEligible: r
|
|
784
|
-
}),
|
|
780
|
+
}), Ne(t ?? e, i, a), null;
|
|
785
781
|
}
|
|
786
|
-
function
|
|
787
|
-
let oe =
|
|
782
|
+
function qt({ canvasRef: e, canvasApiRef: t, tools: n, contributions: r, enabled: i, keyboard: o, selectionRef: s, boundsOf: c, planeOfNode: l, pickEvery: u, pickBest: d, kindOfNode: ee, viewRef: f, dispatcher: te, getIsVisibleForCanvas: p, getRuleCtx: ne, targetScale: m, handleHitRadius: h, rotationBadge: re, chromeAffordancesRef: ie, onDoubleClick: g, onClick: ae, longPress: _ }) {
|
|
783
|
+
let oe = Ot(), v = kt(), y = he(), b = O(() => {
|
|
788
784
|
let e = /* @__PURE__ */ new Map();
|
|
789
785
|
for (let [t, r] of Object.entries(n.registry)) e.set(t, r);
|
|
790
786
|
for (let t of r) e.set(t.id, t);
|
|
@@ -794,23 +790,23 @@ function Ut({ canvasRef: e, canvasApiRef: t, tools: n, contributions: r, enabled
|
|
|
794
790
|
n.registry,
|
|
795
791
|
n.ambient,
|
|
796
792
|
r
|
|
797
|
-
]),
|
|
798
|
-
...
|
|
799
|
-
...
|
|
800
|
-
rotationBadge:
|
|
801
|
-
getAnchorState:
|
|
793
|
+
]), ce = A(u), le = A(d), ue = A(ee), de = A(v), x = A(l), fe = O(() => Ee(() => de.current, (e, t) => se(t, x.current?.(e) ?? null)), [de, x]), pe = O(() => Oe({
|
|
794
|
+
...m === void 0 ? {} : { targetScale: m },
|
|
795
|
+
...h === void 0 ? {} : { handleHitRadius: h },
|
|
796
|
+
rotationBadge: re,
|
|
797
|
+
getAnchorState: fe
|
|
802
798
|
}), [
|
|
803
|
-
re,
|
|
804
799
|
m,
|
|
805
|
-
|
|
806
|
-
|
|
800
|
+
h,
|
|
801
|
+
re,
|
|
802
|
+
fe
|
|
807
803
|
]);
|
|
808
|
-
|
|
809
|
-
|
|
804
|
+
St(() => {
|
|
805
|
+
ie && (ie.current = pe);
|
|
810
806
|
});
|
|
811
|
-
let
|
|
812
|
-
if (s && c && f) return
|
|
813
|
-
getChromeState: () =>
|
|
807
|
+
let S = O(() => {
|
|
808
|
+
if (s && c && f) return De({
|
|
809
|
+
getChromeState: () => y?.surface()?.chromeState() ?? me,
|
|
814
810
|
getView: () => f.current ?? {
|
|
815
811
|
x: 0,
|
|
816
812
|
y: 0,
|
|
@@ -819,32 +815,32 @@ function Ut({ canvasRef: e, canvasApiRef: t, tools: n, contributions: r, enabled
|
|
|
819
815
|
y: 1
|
|
820
816
|
}
|
|
821
817
|
},
|
|
822
|
-
affordances:
|
|
818
|
+
affordances: pe,
|
|
823
819
|
...p ? { getIsVisible: () => p() } : {}
|
|
824
820
|
});
|
|
825
821
|
}, [
|
|
826
822
|
s,
|
|
827
823
|
c,
|
|
828
824
|
f,
|
|
829
|
-
|
|
825
|
+
pe,
|
|
830
826
|
p,
|
|
831
|
-
|
|
832
|
-
]),
|
|
833
|
-
if (s && u && f) return
|
|
834
|
-
if (
|
|
835
|
-
let n =
|
|
827
|
+
y
|
|
828
|
+
]), ge = O(() => {
|
|
829
|
+
if (s && u && f) return w(() => s.current?.current ?? [], (e, t) => {
|
|
830
|
+
if (le.current) return le.current(e, t);
|
|
831
|
+
let n = ce.current?.(e, t) ?? [];
|
|
836
832
|
return n.length > 0 ? n[n.length - 1] : null;
|
|
837
|
-
}, (e) =>
|
|
833
|
+
}, (e) => ue.current?.(e));
|
|
838
834
|
}, [
|
|
839
835
|
s,
|
|
840
836
|
u,
|
|
841
837
|
f,
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
]),
|
|
838
|
+
le,
|
|
839
|
+
ce,
|
|
840
|
+
ue
|
|
841
|
+
]), C = E((t, n) => {
|
|
846
842
|
let r = e.current, i = f?.current;
|
|
847
|
-
if (!r || !i) return
|
|
843
|
+
if (!r || !i) return Rt({
|
|
848
844
|
ts: Date.now(),
|
|
849
845
|
clientX: t,
|
|
850
846
|
clientY: n,
|
|
@@ -863,7 +859,7 @@ function Ut({ canvasRef: e, canvasApiRef: t, tools: n, contributions: r, enabled
|
|
|
863
859
|
x: s,
|
|
864
860
|
y: c
|
|
865
861
|
};
|
|
866
|
-
return
|
|
862
|
+
return Rt({
|
|
867
863
|
ts: Date.now(),
|
|
868
864
|
clientX: t,
|
|
869
865
|
clientY: n,
|
|
@@ -882,7 +878,7 @@ function Ut({ canvasRef: e, canvasApiRef: t, tools: n, contributions: r, enabled
|
|
|
882
878
|
world: l,
|
|
883
879
|
fallback: !1
|
|
884
880
|
}), l;
|
|
885
|
-
}, [e, f]),
|
|
881
|
+
}, [e, f]), _e = O(() => (e) => {
|
|
886
882
|
let n = t?.current?.hitTestExtras?.(e.x, e.y);
|
|
887
883
|
if (n) {
|
|
888
884
|
let e = n.hit;
|
|
@@ -895,98 +891,99 @@ function Ut({ canvasRef: e, canvasApiRef: t, tools: n, contributions: r, enabled
|
|
|
895
891
|
...e.initialScratch === void 0 ? {} : { payload: e.initialScratch }
|
|
896
892
|
};
|
|
897
893
|
}
|
|
898
|
-
return
|
|
899
|
-
}, [
|
|
894
|
+
return S ? S(e) : null;
|
|
895
|
+
}, [S, t]), ve = E(() => {
|
|
900
896
|
t?.current?.requestRedraw?.();
|
|
901
|
-
}, [t]),
|
|
902
|
-
state:
|
|
903
|
-
...
|
|
904
|
-
...
|
|
897
|
+
}, [t]), ye = E(() => t?.current?.paintedCursor, [t]), [be] = Ct(Et), xe = O(() => ({
|
|
898
|
+
state: be,
|
|
899
|
+
..._?.duration === void 0 ? {} : { duration: _.duration },
|
|
900
|
+
..._?.haptics === void 0 ? {} : { haptics: _.haptics }
|
|
905
901
|
}), [
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
]),
|
|
910
|
-
if (
|
|
911
|
-
targets: () =>
|
|
902
|
+
be,
|
|
903
|
+
_?.duration,
|
|
904
|
+
_?.haptics
|
|
905
|
+
]), Se = O(() => {
|
|
906
|
+
if (y) return {
|
|
907
|
+
targets: () => y.list().map((e) => ({
|
|
912
908
|
id: e.id,
|
|
913
909
|
...e.target
|
|
914
910
|
})),
|
|
915
|
-
resolver:
|
|
911
|
+
resolver: y.resolver
|
|
916
912
|
};
|
|
917
|
-
}, [
|
|
918
|
-
return
|
|
913
|
+
}, [y]);
|
|
914
|
+
return j({
|
|
919
915
|
canvasRef: e,
|
|
920
916
|
actions: oe,
|
|
921
|
-
entriesById:
|
|
917
|
+
entriesById: b,
|
|
922
918
|
enabled: i,
|
|
923
919
|
keyboard: o,
|
|
924
|
-
affordanceAt:
|
|
925
|
-
classifyTarget:
|
|
920
|
+
affordanceAt: _e,
|
|
921
|
+
classifyTarget: ge,
|
|
926
922
|
dispatcher: te,
|
|
927
|
-
clientToWorld:
|
|
928
|
-
requestRedraw:
|
|
929
|
-
paintedCursor:
|
|
923
|
+
clientToWorld: C,
|
|
924
|
+
requestRedraw: ve,
|
|
925
|
+
paintedCursor: ye,
|
|
930
926
|
getRuleCtx: ne,
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
927
|
+
onClick: ae,
|
|
928
|
+
onDoubleClick: g,
|
|
929
|
+
longPress: xe,
|
|
930
|
+
...Se ? { views: Se } : {}
|
|
931
|
+
}), At("longPress", () => be), null;
|
|
935
932
|
}
|
|
936
|
-
function
|
|
937
|
-
let
|
|
938
|
-
D(() => (
|
|
939
|
-
|
|
940
|
-
}), [
|
|
941
|
-
if (
|
|
942
|
-
}, [
|
|
943
|
-
if (
|
|
933
|
+
function Jt({ selection: e, scene: t, adapter: n, actions: r, excludeActions: i, currentViewRef: a, onViewChange: o, resizeOptions: s, poseDescriptor: c, geometryProjection: l, dispatcher: d, getActionRef: ee, pickEvery: f, layerIsPainted: te, alphaOf: ne, viewportPanEnabled: m, viewportZoom: ae, viewportPinchZoom: _, viewportRecenter: oe, viewAnimation: v, editAnchorsExternalState: se, anchorEditingAllowed: y, poseComposition: b, layouts: ce, layoutDropTarget: le, reflowTransition: ue, insertNodeFactories: de, snapPoint: x, canvasRef: fe, canvasApiRef: pe, ingestionResolveSrc: me, ingestionSvg: S, ingestionClipboard: he, actionsRegistryRef: ge }) {
|
|
934
|
+
let C = Ot();
|
|
935
|
+
D(() => (ge.current = C, () => {
|
|
936
|
+
ge.current = null;
|
|
937
|
+
}), [C, ge]), D(() => {
|
|
938
|
+
if (C) return C.setDispatcher(d);
|
|
939
|
+
}, [C, d]), D(() => {
|
|
940
|
+
if (C) return ee.current = (e) => C.list().find((t) => t.id === e), () => {
|
|
944
941
|
ee.current = null;
|
|
945
942
|
};
|
|
946
|
-
}, [
|
|
947
|
-
let
|
|
948
|
-
let e =
|
|
943
|
+
}, [C, ee]);
|
|
944
|
+
let _e = g(), ve = Ke(a, o, oe, () => {
|
|
945
|
+
let e = fe.current;
|
|
949
946
|
return e ? {
|
|
950
947
|
width: e.clientWidth,
|
|
951
948
|
height: e.clientHeight
|
|
952
949
|
} : null;
|
|
953
|
-
},
|
|
950
|
+
}, v, _e, te);
|
|
954
951
|
p({
|
|
955
952
|
selection: e,
|
|
956
953
|
scene: t,
|
|
957
|
-
view:
|
|
954
|
+
view: ve,
|
|
958
955
|
history: t.history,
|
|
959
956
|
exclude: i
|
|
960
|
-
}),
|
|
961
|
-
let
|
|
962
|
-
return
|
|
963
|
-
pan:
|
|
964
|
-
zoom:
|
|
965
|
-
pinchZoom:
|
|
966
|
-
}),
|
|
967
|
-
layouts:
|
|
957
|
+
}), At("rootView", () => ve);
|
|
958
|
+
let ye = u();
|
|
959
|
+
return At("pointer", () => ye ?? void 0), lt({
|
|
960
|
+
pan: m,
|
|
961
|
+
zoom: ae,
|
|
962
|
+
pinchZoom: _
|
|
963
|
+
}), qe(t, e, c, b, ne), Je(f), nt(t, ce, le, ue), at(t, {
|
|
964
|
+
layouts: ce,
|
|
968
965
|
poseDescriptor: c,
|
|
969
|
-
poseComposition:
|
|
970
|
-
}),
|
|
966
|
+
poseComposition: b
|
|
967
|
+
}), $e(t, n, de), ie(t, e, n, b, c), T(x), et(pe), it(fe, () => a.current, me, S, he), Ye(t, e, c, b, ne), Xe(t), Qe(t, e, n, se, { anchorEditingAllowed: y }), tt(d), h(c), re(b), ct(r, i.join("|")), /* @__PURE__ */ Mt(jt, { children: [s ? /* @__PURE__ */ M(Yt, { options: s }) : null, l ? /* @__PURE__ */ M(Xt, { projection: l }) : null] });
|
|
971
968
|
}
|
|
972
|
-
function
|
|
973
|
-
return
|
|
969
|
+
function Yt({ options: e }) {
|
|
970
|
+
return m(ne(e)), null;
|
|
974
971
|
}
|
|
975
|
-
function
|
|
976
|
-
return
|
|
972
|
+
function Xt({ projection: e }) {
|
|
973
|
+
return rt(e), null;
|
|
977
974
|
}
|
|
978
|
-
var
|
|
979
|
-
function
|
|
980
|
-
return /* @__PURE__ */
|
|
975
|
+
var Zt = xt(P);
|
|
976
|
+
function F(e, t) {
|
|
977
|
+
return /* @__PURE__ */ M(Dt, {
|
|
981
978
|
yoke: e.yoke,
|
|
982
|
-
children: /* @__PURE__ */
|
|
979
|
+
children: /* @__PURE__ */ M(S, { children: /* @__PURE__ */ M(Zt, {
|
|
983
980
|
...e,
|
|
984
981
|
ref: t
|
|
985
982
|
}) })
|
|
986
983
|
});
|
|
987
984
|
}
|
|
988
|
-
var
|
|
985
|
+
var I = xt(F);
|
|
989
986
|
//#endregion
|
|
990
|
-
export {
|
|
987
|
+
export { Vt as BUILTIN_TOOL_IDS, Pt as DEFAULT_HANDLE_SIZE, Le as SCENE_CANVAS_FEATURES, I as SceneCanvas, zt as mergeLayersWithDefaults, ve as rotateAroundAABBCenter };
|
|
991
988
|
|
|
992
989
|
//# sourceMappingURL=SceneCanvas.js.map
|