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