@weasel-js/core 1.9.2 → 1.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (542) hide show
  1. package/CHANGELOG.md +393 -0
  2. package/README.md +2 -2
  3. package/dist/WeaselProvider.js +5 -5
  4. package/dist/affordances/composeAffordanceLayer.js +10 -20
  5. package/dist/affordances/composeAffordanceLayer.js.map +1 -1
  6. package/dist/affordances/cornerResize.js +25 -17
  7. package/dist/affordances/cornerResize.js.map +1 -1
  8. package/dist/affordances/hitAffordanceRegions.js +27 -20
  9. package/dist/affordances/hitAffordanceRegions.js.map +1 -1
  10. package/dist/affordances/rotationHandle.js +18 -18
  11. package/dist/affordances/rotationHandle.js.map +1 -1
  12. package/dist/animation/behaviors/momentum.js +93 -55
  13. package/dist/animation/behaviors/momentum.js.map +1 -1
  14. package/dist/animation/loop.js +10 -12
  15. package/dist/animation/loop.js.map +1 -1
  16. package/dist/animation/reflow.js +8 -8
  17. package/dist/animation/reflow.js.map +1 -1
  18. package/dist/animation/stagger.js +64 -56
  19. package/dist/animation/stagger.js.map +1 -1
  20. package/dist/animation/timeline/booking.js +62 -54
  21. package/dist/animation/timeline/booking.js.map +1 -1
  22. package/dist/animation/timeline/createTimeline.js +85 -76
  23. package/dist/animation/timeline/createTimeline.js.map +1 -1
  24. package/dist/animation/timeline/sampleTrack.js +13 -5
  25. package/dist/animation/timeline/sampleTrack.js.map +1 -1
  26. package/dist/animation/useAnimator.js +45 -35
  27. package/dist/animation/useAnimator.js.map +1 -1
  28. package/dist/animation/wrappers/animateLifecycle.js +31 -24
  29. package/dist/animation/wrappers/animateLifecycle.js.map +1 -1
  30. package/dist/animation/wrappers/animateOnSetPose.js +28 -26
  31. package/dist/animation/wrappers/animateOnSetPose.js.map +1 -1
  32. package/dist/animation/wrappers/instantPose.js +13 -0
  33. package/dist/animation/wrappers/instantPose.js.map +1 -0
  34. package/dist/{poseDescriptor-D-OH-tu5.d.ts → autoPoseDescriptor-Ct7yqivU.d.ts} +28 -3
  35. package/dist/barrel/chrome.js +16 -0
  36. package/dist/barrel/input.js +19 -0
  37. package/dist/barrel/interactions.js +42 -0
  38. package/dist/barrel/paint.js +18 -0
  39. package/dist/barrel/paths.js +19 -0
  40. package/dist/barrel/renderer.js +20 -0
  41. package/dist/barrel/routing.js +51 -0
  42. package/dist/barrel/text.js +18 -0
  43. package/dist/barrel/viewport.js +52 -0
  44. package/dist/builtins-DPcdghtB.d.ts +1223 -0
  45. package/dist/canvas/Canvas.js +363 -448
  46. package/dist/canvas/Canvas.js.map +1 -1
  47. package/dist/canvas/CanvasView.js +164 -165
  48. package/dist/canvas/CanvasView.js.map +1 -1
  49. package/dist/canvas/CursorCoordsHud.js +37 -32
  50. package/dist/canvas/CursorCoordsHud.js.map +1 -1
  51. package/dist/canvas/DrawCanvas.js +49 -43
  52. package/dist/canvas/DrawCanvas.js.map +1 -1
  53. package/dist/canvas/MinimapCanvas.js +26 -25
  54. package/dist/canvas/MinimapCanvas.js.map +1 -1
  55. package/dist/canvas/NodeShape.js +59 -377
  56. package/dist/canvas/NodeShape.js.map +1 -1
  57. package/dist/canvas/PickHud.js +50 -47
  58. package/dist/canvas/PickHud.js.map +1 -1
  59. package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js +167 -0
  60. package/dist/canvas/SceneCanvas/GestureDispatcherMounter.js.map +1 -0
  61. package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js +13 -13
  62. package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js +67 -0
  63. package/dist/canvas/SceneCanvas/StandardActionsRegistrar.js.map +1 -0
  64. package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js +16 -0
  65. package/dist/canvas/SceneCanvas/ToolKeybindingsMounter.js.map +1 -0
  66. package/dist/canvas/SceneCanvas/coordTrace.js +10 -0
  67. package/dist/canvas/SceneCanvas/coordTrace.js.map +1 -0
  68. package/dist/canvas/SceneCanvas/defaultNodeProperties.js +146 -92
  69. package/dist/canvas/SceneCanvas/defaultNodeProperties.js.map +1 -1
  70. package/dist/canvas/SceneCanvas/defaultNodeRouting.js +9 -8
  71. package/dist/canvas/SceneCanvas/defaultNodeRouting.js.map +1 -1
  72. package/dist/canvas/SceneCanvas/features.js +1 -0
  73. package/dist/canvas/SceneCanvas/features.js.map +1 -1
  74. package/dist/canvas/SceneCanvas/isDev.js +12 -0
  75. package/dist/canvas/SceneCanvas/isDev.js.map +1 -0
  76. package/dist/canvas/SceneCanvas/poseGeometry.js +29 -28
  77. package/dist/canvas/SceneCanvas/poseGeometry.js.map +1 -1
  78. package/dist/canvas/SceneCanvas/poseRegistrars.js +13 -0
  79. package/dist/canvas/SceneCanvas/poseRegistrars.js.map +1 -0
  80. package/dist/canvas/SceneCanvas/props.js +38 -0
  81. package/dist/canvas/SceneCanvas/props.js.map +1 -0
  82. package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js +21 -62
  83. package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js.map +1 -1
  84. package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js.map +1 -1
  85. package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js +46 -48
  86. package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js.map +1 -1
  87. package/dist/canvas/SceneCanvas/useSceneSelectTool.js +33 -33
  88. package/dist/canvas/SceneCanvas/useSceneSelectTool.js.map +1 -1
  89. package/dist/canvas/SceneCanvas.js +534 -788
  90. package/dist/canvas/SceneCanvas.js.map +1 -1
  91. package/dist/canvas/SceneViewCanvas.js +45 -43
  92. package/dist/canvas/SceneViewCanvas.js.map +1 -1
  93. package/dist/canvas/buildSceneLayer.js +91 -0
  94. package/dist/canvas/buildSceneLayer.js.map +1 -0
  95. package/dist/canvas/buildSceneTree.js +16 -19
  96. package/dist/canvas/buildSceneTree.js.map +1 -1
  97. package/dist/canvas/canvasRenderer.js +68 -52
  98. package/dist/canvas/canvasRenderer.js.map +1 -1
  99. package/dist/canvas/deps/changes.js +13 -0
  100. package/dist/canvas/deps/changes.js.map +1 -0
  101. package/dist/canvas/deps/editAnchors.js +28 -28
  102. package/dist/canvas/deps/insert.js +119 -91
  103. package/dist/canvas/deps/insert.js.map +1 -1
  104. package/dist/canvas/deps/slice.js +46 -45
  105. package/dist/canvas/deps/slice.js.map +1 -1
  106. package/dist/canvas/deps/textEdit.js +10 -9
  107. package/dist/canvas/deps/textEdit.js.map +1 -1
  108. package/dist/canvas/derivedPath.js +46 -23
  109. package/dist/canvas/derivedPath.js.map +1 -1
  110. package/dist/canvas/getNodeAtPoint.js +7 -7
  111. package/dist/canvas/getNodeAtPoint.js.map +1 -1
  112. package/dist/canvas/hud.module.js +1 -1
  113. package/dist/canvas/hud.module.js.map +1 -1
  114. package/dist/canvas/kitRequirements.js +2 -2
  115. package/dist/canvas/kitRequirements.js.map +1 -1
  116. package/dist/canvas/layerOrder.js +13 -6
  117. package/dist/canvas/layerOrder.js.map +1 -1
  118. package/dist/canvas/minimapMath.js +12 -10
  119. package/dist/canvas/minimapMath.js.map +1 -1
  120. package/dist/canvas/nodeShapes/derivedPainter.js +34 -0
  121. package/dist/canvas/nodeShapes/derivedPainter.js.map +1 -0
  122. package/dist/canvas/nodeShapes/imagePainter.js +87 -0
  123. package/dist/canvas/nodeShapes/imagePainter.js.map +1 -0
  124. package/dist/canvas/nodeShapes/memo.js +9 -0
  125. package/dist/canvas/nodeShapes/memo.js.map +1 -0
  126. package/dist/canvas/nodeShapes/nodePaint.js +57 -0
  127. package/dist/canvas/nodeShapes/nodePaint.js.map +1 -0
  128. package/dist/canvas/nodeShapes/pathPainter.js +38 -0
  129. package/dist/canvas/nodeShapes/pathPainter.js.map +1 -0
  130. package/dist/canvas/nodeShapes/poseBox.js +20 -0
  131. package/dist/canvas/nodeShapes/poseBox.js.map +1 -0
  132. package/dist/canvas/nodeShapes/rectFallbackPainter.js +38 -0
  133. package/dist/canvas/nodeShapes/rectFallbackPainter.js.map +1 -0
  134. package/dist/canvas/nodeShapes/shapePainter.js +72 -0
  135. package/dist/canvas/nodeShapes/shapePainter.js.map +1 -0
  136. package/dist/canvas/nodeShapes/textPainter.js +55 -0
  137. package/dist/canvas/nodeShapes/textPainter.js.map +1 -0
  138. package/dist/canvas/overlayRoleStrokes.js.map +1 -1
  139. package/dist/canvas/paintCull.js +10 -11
  140. package/dist/canvas/paintCull.js.map +1 -1
  141. package/dist/canvas/pickWalk.js +52 -63
  142. package/dist/canvas/pickWalk.js.map +1 -1
  143. package/dist/canvas/poseRotation.js +11 -23
  144. package/dist/canvas/poseRotation.js.map +1 -1
  145. package/dist/canvas/renderDebugSnapshot.js +5 -5
  146. package/dist/canvas/renderSceneToPixels.js +3 -1
  147. package/dist/canvas/renderSceneToPixels.js.map +1 -1
  148. package/dist/canvas/sceneAdapter.js +66 -148
  149. package/dist/canvas/sceneAdapter.js.map +1 -1
  150. package/dist/canvas/sceneClipboard.js +112 -0
  151. package/dist/canvas/sceneClipboard.js.map +1 -0
  152. package/dist/canvas/sceneSlotWiring.js +4 -4
  153. package/dist/canvas/sceneSlotWiring.js.map +1 -1
  154. package/dist/canvas/sceneViewRender.js +39 -40
  155. package/dist/canvas/sceneViewRender.js.map +1 -1
  156. package/dist/canvas/useCanvasRenderer.js +14 -6
  157. package/dist/canvas/useCanvasRenderer.js.map +1 -1
  158. package/dist/canvas/useCanvasView.js +58 -0
  159. package/dist/canvas/useCanvasView.js.map +1 -0
  160. package/dist/canvas/useFrameLoop.js +35 -26
  161. package/dist/canvas/useFrameLoop.js.map +1 -1
  162. package/dist/canvas/useSceneLayerList.js +21 -0
  163. package/dist/canvas/useSceneLayerList.js.map +1 -0
  164. package/dist/clipboard.d.ts +10 -6
  165. package/dist/clone.d.ts +4 -3
  166. package/dist/core/adapters/arrayAdapter.js +48 -39
  167. package/dist/core/adapters/arrayAdapter.js.map +1 -1
  168. package/dist/core/device/index.js +5 -4
  169. package/dist/core/device/useDeviceProfile.js +38 -44
  170. package/dist/core/device/useDeviceProfile.js.map +1 -1
  171. package/dist/core/device/watchDevicePixelRatio.js +17 -0
  172. package/dist/core/device/watchDevicePixelRatio.js.map +1 -0
  173. package/dist/core/fillInPoseFrame.js.map +1 -1
  174. package/dist/core/geometry/poseDescriptor.js +21 -19
  175. package/dist/core/geometry/poseDescriptor.js.map +1 -1
  176. package/dist/core/geometry/poseFrame.js +44 -0
  177. package/dist/core/geometry/poseFrame.js.map +1 -0
  178. package/dist/core/geometry/poseRotation.js.map +1 -1
  179. package/dist/core/geometry/regionHit.js +9 -10
  180. package/dist/core/geometry/regionHit.js.map +1 -1
  181. package/dist/core/geometry/unionBounds.js +31 -29
  182. package/dist/core/geometry/unionBounds.js.map +1 -1
  183. package/dist/core/isPlainObject.js +2 -11
  184. package/dist/core/ops/arrange.js +1 -0
  185. package/dist/core/ops/arrange.js.map +1 -1
  186. package/dist/core/ops/create.js +10 -5
  187. package/dist/core/ops/create.js.map +1 -1
  188. package/dist/core/ops/delete.js +12 -24
  189. package/dist/core/ops/delete.js.map +1 -1
  190. package/dist/core/ops/reorder/index.js +43 -40
  191. package/dist/core/ops/reorder/index.js.map +1 -1
  192. package/dist/core/ops/reorder/setChildOrder.js +34 -0
  193. package/dist/core/ops/reorder/setChildOrder.js.map +1 -0
  194. package/dist/core/paintKinds.js +5 -5
  195. package/dist/core/paintKinds.js.map +1 -1
  196. package/dist/core/scene/NodeProperties.js.map +1 -1
  197. package/dist/core/scene/appliedLog.js +37 -0
  198. package/dist/core/scene/appliedLog.js.map +1 -0
  199. package/dist/core/scene/arrivalWindow.js +101 -0
  200. package/dist/core/scene/arrivalWindow.js.map +1 -0
  201. package/dist/core/scene/derivedPath.js.map +1 -1
  202. package/dist/core/scene/historyFacade.js +84 -0
  203. package/dist/core/scene/historyFacade.js.map +1 -0
  204. package/dist/core/scene/kitOps.js +173 -0
  205. package/dist/core/scene/kitOps.js.map +1 -0
  206. package/dist/core/scene/layerStack.js +38 -0
  207. package/dist/core/scene/layerStack.js.map +1 -0
  208. package/dist/core/scene/lockGuard.js +37 -0
  209. package/dist/core/scene/lockGuard.js.map +1 -0
  210. package/dist/core/scene/nodeFnFields.js +5 -6
  211. package/dist/core/scene/nodeFnFields.js.map +1 -1
  212. package/dist/core/scene/nodeMemo.js +45 -19
  213. package/dist/core/scene/nodeMemo.js.map +1 -1
  214. package/dist/core/scene/nodeStore.js +126 -0
  215. package/dist/core/scene/nodeStore.js.map +1 -0
  216. package/dist/core/scene/pickability.js +6 -0
  217. package/dist/core/scene/pickability.js.map +1 -0
  218. package/dist/core/scene/poseFeed.js +38 -38
  219. package/dist/core/scene/poseFeed.js.map +1 -1
  220. package/dist/core/scene/poseOverrides.js +34 -38
  221. package/dist/core/scene/poseOverrides.js.map +1 -1
  222. package/dist/core/scene/renderOrder.js +84 -0
  223. package/dist/core/scene/renderOrder.js.map +1 -0
  224. package/dist/core/scene/scene.js +289 -866
  225. package/dist/core/scene/scene.js.map +1 -1
  226. package/dist/core/scene/serialization.js +68 -0
  227. package/dist/core/scene/serialization.js.map +1 -0
  228. package/dist/core/scene/treeOrder.js +13 -0
  229. package/dist/core/scene/treeOrder.js.map +1 -0
  230. package/dist/core/scene/types.js.map +1 -1
  231. package/dist/core/viewport/meanScale.js +1 -1
  232. package/dist/core/viewport/meanScale.js.map +1 -1
  233. package/dist/core/viewport/view.js +12 -12
  234. package/dist/core/viewport/view.js.map +1 -1
  235. package/dist/core/viewport/zoomBounds.js +10 -8
  236. package/dist/core/viewport/zoomBounds.js.map +1 -1
  237. package/dist/{cornerHandles-BCrDp_mH.d.ts → cornerHandles-CtCb8a3G.d.ts} +1 -1
  238. package/dist/debug/createDebugOverlayLayer.js +14 -14
  239. package/dist/debug/createDebugOverlayLayer.js.map +1 -1
  240. package/dist/debug/flag.js +2 -41
  241. package/dist/features/chrome-caps/useHoverTracking.js +22 -17
  242. package/dist/features/chrome-caps/useHoverTracking.js.map +1 -1
  243. package/dist/features/focus/gateLayer.js +3 -4
  244. package/dist/features/focus/gateLayer.js.map +1 -1
  245. package/dist/features/images/imageCache.js +19 -9
  246. package/dist/features/images/imageCache.js.map +1 -1
  247. package/dist/features/ingestion/contentHandlers.js +14 -11
  248. package/dist/features/ingestion/contentHandlers.js.map +1 -1
  249. package/dist/features/ingestion/index.js +1 -1
  250. package/dist/features/ingestion/registerKitHandlers.js +7 -7
  251. package/dist/features/ingestion/weaselJsonHandler.js +17 -14
  252. package/dist/features/ingestion/weaselJsonHandler.js.map +1 -1
  253. package/dist/features/meshPaint/lazyKind.js +201 -35
  254. package/dist/features/meshPaint/lazyKind.js.map +1 -1
  255. package/dist/features/meshPaint/meshPaint.js +82 -79
  256. package/dist/features/meshPaint/meshPaint.js.map +1 -1
  257. package/dist/features/minimap/createMinimapContribution.js +42 -42
  258. package/dist/features/minimap/layers.js +44 -62
  259. package/dist/features/minimap/layers.js.map +1 -1
  260. package/dist/features/parallax/createParallaxPlane.js +10 -14
  261. package/dist/features/parallax/createParallaxPlane.js.map +1 -1
  262. package/dist/features/paths/anchorEdits.js +19 -8
  263. package/dist/features/paths/anchorEdits.js.map +1 -1
  264. package/dist/features/paths/anchors.js +31 -26
  265. package/dist/features/paths/anchors.js.map +1 -1
  266. package/dist/features/paths/booleans.js +2 -2
  267. package/dist/features/paths/index.js +13 -11
  268. package/dist/features/paths/markerCommands.js +37 -36
  269. package/dist/features/paths/markerCommands.js.map +1 -1
  270. package/dist/features/paths/pathInWorld.js +19 -19
  271. package/dist/features/paths/pathInWorld.js.map +1 -1
  272. package/dist/features/paths/pathLayer.js.map +1 -1
  273. package/dist/features/paths/strokeToPath.js +40 -0
  274. package/dist/features/paths/strokeToPath.js.map +1 -0
  275. package/dist/features/paths/tessellate/stroke.js.map +1 -1
  276. package/dist/features/patterns/commandPaint.js +18 -0
  277. package/dist/features/patterns/commandPaint.js.map +1 -0
  278. package/dist/features/patterns/index.js +5 -17
  279. package/dist/features/patterns/index.js.map +1 -1
  280. package/dist/features/patterns/rasterizeTile.js +17 -0
  281. package/dist/features/patterns/rasterizeTile.js.map +1 -0
  282. package/dist/features/patterns/resolveSpec.js +52 -44
  283. package/dist/features/patterns/resolveSpec.js.map +1 -1
  284. package/dist/features/poseRun/usePoseRun.js +8 -3
  285. package/dist/features/poseRun/usePoseRun.js.map +1 -1
  286. package/dist/features/selection/SelectionContext.js +5 -0
  287. package/dist/features/selection/SelectionContext.js.map +1 -1
  288. package/dist/features/selection/overlay.js +18 -18
  289. package/dist/features/selection/overlay.js.map +1 -1
  290. package/dist/features/text/domOffsets.js +82 -0
  291. package/dist/features/text/domOffsets.js.map +1 -0
  292. package/dist/features/text/domRuns.js +103 -131
  293. package/dist/features/text/domRuns.js.map +1 -1
  294. package/dist/features/text/hitTest.js +5 -2
  295. package/dist/features/text/hitTest.js.map +1 -1
  296. package/dist/features/text/isTextData.js +8 -0
  297. package/dist/features/text/isTextData.js.map +1 -0
  298. package/dist/features/text/overlayDirection.js +15 -0
  299. package/dist/features/text/overlayDirection.js.map +1 -0
  300. package/dist/features/text/runs/rangeStyle.js +32 -34
  301. package/dist/features/text/runs/rangeStyle.js.map +1 -1
  302. package/dist/features/text/textCommand.js +34 -33
  303. package/dist/features/text/textCommand.js.map +1 -1
  304. package/dist/features/text/textToPath.js +40 -40
  305. package/dist/features/text/textToPath.js.map +1 -1
  306. package/dist/features/text/useSceneTextEdit.js +76 -82
  307. package/dist/features/text/useSceneTextEdit.js.map +1 -1
  308. package/dist/features/text/useTextEdit.js +184 -160
  309. package/dist/features/text/useTextEdit.js.map +1 -1
  310. package/dist/features/tiling/createTiledLayer.js +24 -22
  311. package/dist/features/tiling/createTiledLayer.js.map +1 -1
  312. package/dist/index.d.ts +11010 -7700
  313. package/dist/index.js +316 -309
  314. package/dist/input/keyState.js +42 -43
  315. package/dist/input/keyState.js.map +1 -1
  316. package/dist/input/useKeyModifiers.js +11 -0
  317. package/dist/input/useKeyModifiers.js.map +1 -0
  318. package/dist/interactions/actions/align/align.js +8 -8
  319. package/dist/interactions/actions/clipboard/clipboardOps.js +34 -32
  320. package/dist/interactions/actions/clipboard/clipboardOps.js.map +1 -1
  321. package/dist/interactions/actions/clipboard/materializePaste.js +10 -7
  322. package/dist/interactions/actions/clipboard/materializePaste.js.map +1 -1
  323. package/dist/interactions/actions/clipboard/wireFormat.js.map +1 -1
  324. package/dist/interactions/actions/clone/behaviors/cloneByAltDrag.js.map +1 -1
  325. package/dist/interactions/actions/defaultCommitAdapter.js +20 -18
  326. package/dist/interactions/actions/defaultCommitAdapter.js.map +1 -1
  327. package/dist/interactions/actions/defaults/align.js +9 -10
  328. package/dist/interactions/actions/defaults/align.js.map +1 -1
  329. package/dist/interactions/actions/defaults/anchorEditing.js +59 -81
  330. package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
  331. package/dist/interactions/actions/defaults/areaSelect.js +35 -38
  332. package/dist/interactions/actions/defaults/areaSelect.js.map +1 -1
  333. package/dist/interactions/actions/defaults/clipboard.js +26 -10
  334. package/dist/interactions/actions/defaults/clipboard.js.map +1 -1
  335. package/dist/interactions/actions/defaults/clone.js +44 -60
  336. package/dist/interactions/actions/defaults/clone.js.map +1 -1
  337. package/dist/interactions/actions/defaults/copySubtree.js +40 -0
  338. package/dist/interactions/actions/defaults/copySubtree.js.map +1 -0
  339. package/dist/interactions/actions/defaults/distribute.js +14 -13
  340. package/dist/interactions/actions/defaults/distribute.js.map +1 -1
  341. package/dist/interactions/actions/defaults/duplicate.js +17 -57
  342. package/dist/interactions/actions/defaults/duplicate.js.map +1 -1
  343. package/dist/interactions/actions/defaults/editAnchors.js +18 -18
  344. package/dist/interactions/actions/defaults/enterTextEdit.js.map +1 -1
  345. package/dist/interactions/actions/defaults/flip.js +52 -46
  346. package/dist/interactions/actions/defaults/flip.js.map +1 -1
  347. package/dist/interactions/actions/defaults/group.js +43 -48
  348. package/dist/interactions/actions/defaults/group.js.map +1 -1
  349. package/dist/interactions/actions/defaults/ingest.js +35 -33
  350. package/dist/interactions/actions/defaults/ingest.js.map +1 -1
  351. package/dist/interactions/actions/defaults/insert.js +50 -51
  352. package/dist/interactions/actions/defaults/insert.js.map +1 -1
  353. package/dist/interactions/actions/defaults/insertPathAnchor.js +7 -7
  354. package/dist/interactions/actions/defaults/lassoSelect.js +67 -70
  355. package/dist/interactions/actions/defaults/lassoSelect.js.map +1 -1
  356. package/dist/interactions/actions/defaults/move.js +267 -249
  357. package/dist/interactions/actions/defaults/move.js.map +1 -1
  358. package/dist/interactions/actions/defaults/nudge.js +40 -68
  359. package/dist/interactions/actions/defaults/nudge.js.map +1 -1
  360. package/dist/interactions/actions/defaults/nudgeSteps.js +37 -0
  361. package/dist/interactions/actions/defaults/nudgeSteps.js.map +1 -0
  362. package/dist/interactions/actions/defaults/reorder.js +2 -0
  363. package/dist/interactions/actions/defaults/reorder.js.map +1 -1
  364. package/dist/interactions/actions/defaults/resize.js +104 -98
  365. package/dist/interactions/actions/defaults/resize.js.map +1 -1
  366. package/dist/interactions/actions/defaults/rotate.js +111 -110
  367. package/dist/interactions/actions/defaults/rotate.js.map +1 -1
  368. package/dist/interactions/actions/defaults/setFill.js +7 -7
  369. package/dist/interactions/actions/defaults/setFillOpacity.js +4 -4
  370. package/dist/interactions/actions/defaults/setStroke.js +12 -12
  371. package/dist/interactions/actions/defaults/setStrokeOpacity.js +6 -6
  372. package/dist/interactions/actions/defaults/sliceOps.js +19 -19
  373. package/dist/interactions/actions/defaults/viewportDragPan.js +37 -26
  374. package/dist/interactions/actions/defaults/viewportDragPan.js.map +1 -1
  375. package/dist/interactions/actions/edit-anchors/geometry.js +28 -23
  376. package/dist/interactions/actions/edit-anchors/geometry.js.map +1 -1
  377. package/dist/interactions/actions/flip/helpers.js +30 -17
  378. package/dist/interactions/actions/flip/helpers.js.map +1 -1
  379. package/dist/interactions/actions/hitSelection.js +8 -0
  380. package/dist/interactions/actions/hitSelection.js.map +1 -0
  381. package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js +14 -18
  382. package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js.map +1 -1
  383. package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js +5 -5
  384. package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js.map +1 -1
  385. package/dist/interactions/actions/move/behaviors/snapToContainer.js +32 -21
  386. package/dist/interactions/actions/move/behaviors/snapToContainer.js.map +1 -1
  387. package/dist/interactions/actions/move/gestureAdapter.js +32 -15
  388. package/dist/interactions/actions/move/gestureAdapter.js.map +1 -1
  389. package/dist/interactions/actions/move/landedDescendants.js +33 -0
  390. package/dist/interactions/actions/move/landedDescendants.js.map +1 -0
  391. package/dist/interactions/actions/outlines/createOutlines.js +18 -18
  392. package/dist/interactions/actions/poseDescriptorDep.js +16 -4
  393. package/dist/interactions/actions/poseDescriptorDep.js.map +1 -1
  394. package/dist/interactions/actions/poseFrame.js +11 -6
  395. package/dist/interactions/actions/poseFrame.js.map +1 -1
  396. package/dist/interactions/actions/previewOverrides.js +5 -5
  397. package/dist/interactions/actions/previewOverrides.js.map +1 -1
  398. package/dist/interactions/actions/selectionSubtree.js +69 -0
  399. package/dist/interactions/actions/selectionSubtree.js.map +1 -0
  400. package/dist/interactions/actions/useStandardActions.js +66 -62
  401. package/dist/interactions/actions/useStandardActions.js.map +1 -1
  402. package/dist/interactions/gestures/dragGesture/dragGesture.js +4 -7
  403. package/dist/interactions/gestures/dragGesture/dragGesture.js.map +1 -1
  404. package/dist/interactions/gestures/dragGesture/dragPointOf.js +23 -0
  405. package/dist/interactions/gestures/dragGesture/dragPointOf.js.map +1 -0
  406. package/dist/interactions/gestures/handleDrag/handleDrag.js +21 -26
  407. package/dist/interactions/gestures/handleDrag/handleDrag.js.map +1 -1
  408. package/dist/interactions/gestures/pointerDrag/pointerDrag.js +8 -6
  409. package/dist/interactions/gestures/pointerDrag/pointerDrag.js.map +1 -1
  410. package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js +8 -4
  411. package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js.map +1 -1
  412. package/dist/{math-Drrw4ewZ.d.ts → math-J-ACHyEg.d.ts} +1 -2
  413. package/dist/math.d.ts +2 -3
  414. package/dist/move.d.ts +12 -11
  415. package/dist/{originProjection-DEklpDc_.d.ts → originProjection-gHnOup4e.d.ts} +1 -1
  416. package/dist/{registerProgram-BMZRDgrh.d.ts → registerProgram-T9S_PfAX.d.ts} +18 -7
  417. package/dist/renderer/DrawCommand.js.map +1 -1
  418. package/dist/renderer/WeaselRenderer.js +75 -73
  419. package/dist/renderer/WeaselRenderer.js.map +1 -1
  420. package/dist/renderer/cache/GLImageCache.js +15 -5
  421. package/dist/renderer/cache/GLImageCache.js.map +1 -1
  422. package/dist/renderer/cache/GLMeshCache.js +23 -23
  423. package/dist/renderer/cache/GLMeshCache.js.map +1 -1
  424. package/dist/renderer/cache/GLTextureCache.js +18 -1
  425. package/dist/renderer/cache/GLTextureCache.js.map +1 -1
  426. package/dist/renderer/cache/cache.js.map +1 -1
  427. package/dist/renderer/cache/markerCommandCache.js.map +1 -1
  428. package/dist/renderer/cache/strokeMeshCache.js.map +1 -1
  429. package/dist/renderer/cullDrawCommands.js +11 -11
  430. package/dist/renderer/draw/batch.js +133 -0
  431. package/dist/renderer/draw/batch.js.map +1 -0
  432. package/dist/renderer/draw/clip.js +89 -0
  433. package/dist/renderer/draw/clip.js.map +1 -0
  434. package/dist/renderer/draw/customShader.js +230 -0
  435. package/dist/renderer/draw/customShader.js.map +1 -0
  436. package/dist/renderer/draw/drawTriangles.js +8 -0
  437. package/dist/renderer/draw/drawTriangles.js.map +1 -0
  438. package/dist/renderer/draw/effects.js +28 -0
  439. package/dist/renderer/draw/effects.js.map +1 -0
  440. package/dist/renderer/draw/flushBatch.js +35 -0
  441. package/dist/renderer/draw/flushBatch.js.map +1 -0
  442. package/dist/renderer/draw/gradient.js +90 -0
  443. package/dist/renderer/draw/gradient.js.map +1 -0
  444. package/dist/renderer/draw/image.js +38 -0
  445. package/dist/renderer/draw/image.js.map +1 -0
  446. package/dist/renderer/draw/mesh.js +16 -0
  447. package/dist/renderer/draw/mesh.js.map +1 -0
  448. package/dist/renderer/draw/paintBind.js +70 -0
  449. package/dist/renderer/draw/paintBind.js.map +1 -0
  450. package/dist/renderer/draw/pathPaint.js +142 -0
  451. package/dist/renderer/draw/pathPaint.js.map +1 -0
  452. package/dist/renderer/draw/scratchPass.js +83 -0
  453. package/dist/renderer/draw/scratchPass.js.map +1 -0
  454. package/dist/renderer/draw/stencil.js +28 -0
  455. package/dist/renderer/draw/stencil.js.map +1 -0
  456. package/dist/renderer/draw/text.js +167 -0
  457. package/dist/renderer/draw/text.js.map +1 -0
  458. package/dist/renderer/draw/uniforms.js +77 -0
  459. package/dist/renderer/draw/uniforms.js.map +1 -0
  460. package/dist/renderer/draw.js +60 -1116
  461. package/dist/renderer/draw.js.map +1 -1
  462. package/dist/renderer/effects/EffectTargets.js +3 -0
  463. package/dist/renderer/effects/EffectTargets.js.map +1 -1
  464. package/dist/renderer/effects/composite.js +7 -5
  465. package/dist/renderer/effects/composite.js.map +1 -1
  466. package/dist/renderer/index.js +18 -17
  467. package/dist/renderer/math/color.js +63 -83
  468. package/dist/renderer/math/color.js.map +1 -1
  469. package/dist/renderer/math/mat3.js +15 -11
  470. package/dist/renderer/math/mat3.js.map +1 -1
  471. package/dist/renderer/math/viewToMat3.js +1 -1
  472. package/dist/renderer/math/viewToMat3.js.map +1 -1
  473. package/dist/renderer/shaders/ShaderProgram.js +13 -13
  474. package/dist/renderer/shaders/ShaderProgram.js.map +1 -1
  475. package/dist/renderer/shaders/glyphPaint.js +3 -3
  476. package/dist/renderer/shaders/glyphPaint.js.map +1 -1
  477. package/dist/renderer/shaders/gradFill.js +2 -1
  478. package/dist/renderer/shaders/gradFill.js.map +1 -1
  479. package/dist/renderer/shaders/pathFill.js +2 -1
  480. package/dist/renderer/shaders/pathFill.js.map +1 -1
  481. package/dist/renderer/shaders/patternFill.js +2 -1
  482. package/dist/renderer/shaders/patternFill.js.map +1 -1
  483. package/dist/renderer/shaders/registerProgram.js.map +1 -1
  484. package/dist/renderer/strokeLengths.js.map +1 -1
  485. package/dist/renderer/textures/registerTexture.js +25 -5
  486. package/dist/renderer/textures/registerTexture.js.map +1 -1
  487. package/dist/renderer.d.ts +16 -15
  488. package/dist/renderer.js +17 -16
  489. package/dist/resize.d.ts +5 -6
  490. package/dist/resize.js +5 -5
  491. package/dist/style.css +1 -1
  492. package/dist/test-hook/install.js +12 -6
  493. package/dist/test-hook/install.js.map +1 -1
  494. package/dist/{test-seams-CuIxe0xY.d.ts → test-seams-DM2B87-g.d.ts} +4 -4
  495. package/dist/test-seams.d.ts +2 -2
  496. package/dist/tools/builtin/ellipse/useEllipseTool.js +1 -0
  497. package/dist/tools/builtin/ellipse/useEllipseTool.js.map +1 -1
  498. package/dist/tools/builtin/hand/useHandTool.js +1 -0
  499. package/dist/tools/builtin/hand/useHandTool.js.map +1 -1
  500. package/dist/tools/builtin/lasso/useLassoTool.js +11 -11
  501. package/dist/tools/builtin/lasso/useLassoTool.js.map +1 -1
  502. package/dist/tools/builtin/line/useLineTool.js +1 -0
  503. package/dist/tools/builtin/line/useLineTool.js.map +1 -1
  504. package/dist/tools/builtin/pen/usePenTool.js +153 -103
  505. package/dist/tools/builtin/pen/usePenTool.js.map +1 -1
  506. package/dist/tools/builtin/pencil/usePencilTool.js +1 -0
  507. package/dist/tools/builtin/pencil/usePencilTool.js.map +1 -1
  508. package/dist/tools/builtin/polygon/usePolygonTool.js +13 -8
  509. package/dist/tools/builtin/polygon/usePolygonTool.js.map +1 -1
  510. package/dist/tools/builtin/rect/useRectTool.js +1 -0
  511. package/dist/tools/builtin/rect/useRectTool.js.map +1 -1
  512. package/dist/tools/builtin/select/selectionContributions.js +24 -23
  513. package/dist/tools/builtin/select/selectionContributions.js.map +1 -1
  514. package/dist/tools/builtin/select/useSelectTool.js +51 -48
  515. package/dist/tools/builtin/select/useSelectTool.js.map +1 -1
  516. package/dist/tools/builtin/shared/pointerFollower.js +17 -0
  517. package/dist/tools/builtin/shared/pointerFollower.js.map +1 -0
  518. package/dist/tools/builtin/slice/useSliceTool.js +49 -54
  519. package/dist/tools/builtin/slice/useSliceTool.js.map +1 -1
  520. package/dist/tools/builtin/star/useStarTool.js +22 -16
  521. package/dist/tools/builtin/star/useStarTool.js.map +1 -1
  522. package/dist/tools/builtin/text/useTextTool.js +13 -2
  523. package/dist/tools/builtin/text/useTextTool.js.map +1 -1
  524. package/dist/tools/useKeybindings.js +14 -30
  525. package/dist/tools/useKeybindings.js.map +1 -1
  526. package/dist/{types-B_9g6hMM.d.ts → types-B4iJRHC3.d.ts} +5 -1
  527. package/dist/{types-A37hYkeR.d.ts → types-k-5Oqh-U.d.ts} +31 -7
  528. package/dist/util/color.js +3 -3
  529. package/dist/util/color.js.map +1 -1
  530. package/dist/util/paint.js.map +1 -1
  531. package/dist/version.js +1 -1
  532. package/package.json +20 -18
  533. package/dist/autoPoseDescriptor-vCdt55xm.d.ts +0 -27
  534. package/dist/builtins-C-VgUlWI.d.ts +0 -4514
  535. package/dist/core/isPlainObject.js.map +0 -1
  536. package/dist/debug/flag.js.map +0 -1
  537. package/dist/interactions/actions/defaults/freshNodeId.js +0 -10
  538. package/dist/interactions/actions/defaults/freshNodeId.js.map +0 -1
  539. package/dist/renderer/shaders/imageFill.js +0 -14
  540. package/dist/renderer/shaders/imageFill.js.map +0 -1
  541. package/dist/tools/prefs.js +0 -47
  542. package/dist/tools/prefs.js.map +0 -1
@@ -1,157 +1,101 @@
1
1
  import { normalizeView as e, viewZoom as t } from "../core/viewport/view.js";
2
2
  import { rectFromPlane as n } from "../core/viewport/parallax.js";
3
3
  import { DeviceProfileProvider as r, useDeviceProfile as i } from "../core/device/useDeviceProfile.js";
4
- import { clientToWorld as a } from "../core/viewport/clientToWorld.js";
5
- import { HANDLE_BASE_PX as o, targetSizesPx as s } from "../core/device/targets.js";
6
- import { AUTO_POSE_DESCRIPTOR as c } from "../interactions/actions/resize/autoPoseDescriptor.js";
7
- import { KIT_SHAPE_KINDS as l } from "../core/shapeKinds.js";
8
- import { usePointerContext as u } from "../features/pointer/PointerContext.js";
9
- import { dlog as d, dwarn as ee } from "../debug/flag.js";
10
- import { registerContentHandler as f } from "../features/ingestion/contentHandlers.js";
11
- import { KIT_STANDARD_ACTION_IDS as te, useStandardActions as p } from "../interactions/actions/useStandardActions.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
- import { useLayoutArrivals as at } from "../layout/arrivals.js";
65
- import { acquireKitContentHandlers as ot } from "../features/ingestion/registerKitHandlers.js";
66
- import { itemsFromFiles as st } from "../features/ingestion/index.js";
67
- import { useActionsPropResolver as ct } from "./SceneCanvas/useActionsPropResolver.js";
68
- import { useViewportActions as lt } from "./SceneCanvas/useViewportActions.js";
69
- import { createLongPressFeedbackContribution as ut } from "../features/longPress/longPressFeedback.js";
70
- import { createNodeRouting as dt } from "../core/scene/NodeRouting.js";
71
- import { inferredNodeRouting as ft } from "./SceneCanvas/defaultNodeRouting.js";
72
- import { installTestHookIfRequested as pt } from "../test-hook/install.js";
73
- import { makeGetNodeAtPoint as mt } from "./getNodeAtPoint.js";
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";
4
+ import { targetSizesPx as a } from "../core/device/targets.js";
5
+ import { useAnimator as o } from "../animation/useAnimator.js";
6
+ import { useViewAnimationOn as ee } from "../core/viewport/useViewAnimation.js";
7
+ import { clientToWorld as te } from "../core/viewport/clientToWorld.js";
8
+ import { dlog as s, dwarn as ne } from "../debug/flag.js";
9
+ import { useSelection as re } from "../core/selection/useSelection.js";
10
+ import { AUTO_POSE_DESCRIPTOR as ie } from "../interactions/actions/resize/autoPoseDescriptor.js";
11
+ import { pathFromPlane as ae } from "./planeClips.js";
12
+ import { createDispatcherPreviewSources as oe, createGestureSource as se } from "./SceneCanvas/dispatcherGestureBounds.js";
13
+ import { ViewInputsProvider as ce } from "./viewInputs.js";
14
+ import { createSceneLayerGate as le } from "./sceneLayerPaint.js";
15
+ import { ViewRegistryProvider as ue, useOptionalViewRegistry as de } from "./viewRegistry.js";
16
+ import { CanvasView as fe } from "./CanvasView.js";
17
+ import { useLateContentRedraw as pe } from "./useLateContentRedraw.js";
18
+ import { rotateAroundAABBCenter as me } from "./poseRotation.js";
19
+ import "./defaultDrawOne.js";
20
+ import { PointerProviderIfRoot as he, PointerPublisher as ge } from "./SceneCanvas/PointerProviderIfRoot.js";
21
+ import { sceneFromJSON as _e } from "../core/scene/scene.js";
22
+ import { createLongPressFeedbackContribution as ve } from "../features/longPress/longPressFeedback.js";
23
+ import { KIT_SHAPE_KINDS as ye } from "../core/shapeKinds.js";
24
+ import { registerContentHandler as be } from "../features/ingestion/contentHandlers.js";
25
+ import { KIT_STANDARD_ACTION_IDS as xe } from "../interactions/actions/useStandardActions.js";
26
+ import { useTools as Se } from "../tools/overlayBinding.js";
27
+ import { selectionMoveContribution as Ce, selectionResizeContribution as we, selectionRotateContribution as Te } from "../tools/builtin/select/selectionContributions.js";
28
+ import { useHandTool as Ee } from "../tools/builtin/hand/useHandTool.js";
29
+ import { never as c } from "../features/chrome-caps/conditions.js";
30
+ import { resolveVisibility as De } from "../features/chrome-caps/resolve.js";
31
+ import { buildChromeCtx as Oe } from "../features/chrome-caps/buildChromeCtx.js";
32
+ import { useHoverTracking as ke } from "../features/chrome-caps/useHoverTracking.js";
33
+ import { DEFAULT_ALLOWED_CAPABILITIES as Ae } from "../features/chrome-caps/index.js";
34
+ import { acquireKitContentHandlers as je } from "../features/ingestion/registerKitHandlers.js";
35
+ import { itemsFromFiles as Me } from "../features/ingestion/index.js";
36
+ import { createPathEditingOverlayLayer as Ne } from "../features/paths/pathEditingOverlayLayer.js";
37
+ import { createPenPreviewLayer as Pe } from "../features/paths/penPreviewLayer.js";
38
+ import { usePublishSelection as Fe } from "../features/selection/SelectionContext.js";
39
+ import { createSelectionOverlayLayer as Ie, rotationBadgeOf as Le } from "../features/selection/overlay.js";
40
+ import { createNodeRouting as Re } from "../core/scene/NodeRouting.js";
41
+ import { installTestHookIfRequested as ze, releaseTestHook as Be } from "../test-hook/install.js";
42
+ import { Canvas as Ve } from "./Canvas.js";
43
+ import { IS_DEV as He } from "./SceneCanvas/isDev.js";
44
+ import { COORD_DEV as Ue, coordTrace as We } from "./SceneCanvas/coordTrace.js";
45
+ import { GestureDispatcherMounter as Ge } from "./SceneCanvas/GestureDispatcherMounter.js";
46
+ import { resolveEditablePathOf as Ke } from "./deps/editAnchors.js";
47
+ import { StandardActionsRegistrar as qe } from "./SceneCanvas/StandardActionsRegistrar.js";
48
+ import { contributionEntries as Je } from "./SceneCanvas/useContributionRoles.js";
49
+ import { ToolKeybindingsMounter as Ye } from "./SceneCanvas/ToolKeybindingsMounter.js";
50
+ import { inferredNodeRouting as Xe } from "./SceneCanvas/defaultNodeRouting.js";
51
+ import { SCENE_CANVAS_FEATURES as Ze, featureActionIds as Qe, resolveFeatures as $e } from "./SceneCanvas/features.js";
52
+ import { BUILTIN_TOOL_IDS as l, DEFAULT_HANDLE_SIZE as et, NON_SHAPE_BUILTIN_TOOLS as tt, mergeLayersWithDefaults as nt } from "./SceneCanvas/props.js";
53
+ import { useBuiltinShapeTools as rt } from "./SceneCanvas/useBuiltinShapeTools.js";
54
+ import { useDispatcherOverlayLayer as it } from "./SceneCanvas/useDispatcherOverlayLayer.js";
55
+ import { usePreviewGhostLayer as at } from "./SceneCanvas/usePreviewGhostLayer.js";
56
+ import { useSceneSelectTool as ot } from "./SceneCanvas/useSceneSelectTool.js";
57
+ import { makeGetNodeAtPoint as st } from "./getNodeAtPoint.js";
58
+ import { useSceneAdapter as ct } from "./sceneAdapter.js";
59
+ import { composeAlphaFor as lt, wireSceneSlotToScene as ut } from "./sceneSlotWiring.js";
60
+ import { createSlopsDebugLayer as dt } from "./slopsDebugLayer.js";
61
+ import { useHitObserver as ft } from "./useHitObserver.js";
62
+ import { forwardRef as pt, useCallback as u, useEffect as d, useInsertionEffect as mt, useMemo as f, useRef as p, useState as m } from "react";
63
+ import { assignRef as ht, useLatest as h } from "@weasel-js/react";
64
+ import { createDispatcher as gt } from "@weasel-js/routing";
65
+ import { InputScope as _t } from "@weasel-js/routing/react";
66
+ import { Fragment as vt, jsx as g, jsxs as yt } from "react/jsx-runtime";
67
+ import { getActiveModeFor as bt } from "@weasel-js/modes";
86
68
  //#region src/canvas/SceneCanvas.tsx
87
- var Pt = o, Ft = (() => {
88
- try {
89
- return !1;
90
- } catch {
91
- return !1;
92
- }
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());
97
- }
98
- function zt(e, t = 1) {
99
- let n = {
100
- scene: {
101
- drawOne: ue,
102
- paintBounds: de
103
- },
104
- selectionOverlay: { handles: { size: s(t).handle } }
105
- };
106
- if (!e) return n;
107
- let r = { ...e };
108
- if (!("scene" in e)) r.scene = n.scene;
109
- else if (e.scene === null) r.scene = null;
110
- else {
111
- let t = {
112
- ...n.scene,
113
- ...e.scene
114
- };
115
- r.scene = e.scene && "paintBounds" in e.scene ? t : {
116
- ...t,
117
- paintBounds: x(t.drawOne)
118
- };
119
- }
120
- return r.selectionOverlay = "selectionOverlay" in e ? e.selectionOverlay === null ? null : {
121
- ...n.selectionOverlay,
122
- ...e.selectionOverlay
123
- } : n.selectionOverlay, r;
124
- }
125
- var Bt = ["select", "hand"], Vt = [...Bt, ...l];
126
- function Ht(e) {
69
+ Ue && typeof window < "u" && (window.__weaselCoordLog__ = We);
70
+ function xt(e) {
127
71
  if (e === !1) return !1;
128
72
  let { slops: t, ...n } = e;
129
73
  return n;
130
74
  }
131
- var Ut = /* @__PURE__ */ new Set(), Wt = /* @__PURE__ */ new Set();
132
- function Gt(e) {
75
+ var St = /* @__PURE__ */ new Set(), Ct = /* @__PURE__ */ new Set();
76
+ function wt(e) {
133
77
  return typeof e.setActive == "function";
134
78
  }
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);
137
- D(() => (d("scene-canvas", "mount"), () => d("scene-canvas", "unmount")), []);
138
- let un = g?.handlers;
139
- D(() => {
140
- let e = [ot()];
141
- for (let t of un ?? []) e.push(f(t));
79
+ function _(ue, me) {
80
+ let { scene: Ue, geometry: We, poseDescriptor: Ze, selectTool: l, insertTool: et, insertNodeFactories: pt, insertPaint: _t, ingestion: _, layouts: Tt, layoutDropTarget: Et, reflowTransition: Dt, poseComposition: v, geometryProjection: Ot, routing: kt, selection: At, selectionOptions: jt, selectable: Mt = !0, tools: y, features: Nt, enableKeybindings: Pt = !0, claimKeys: Ft = !1, enableGestureDispatcher: It = !0, onToolsCreated: Lt, defaultTools: Rt, toolOptions: zt, initialActiveTool: Bt, ambient: Vt, versionCheck: Ht, longPress: Ut, viewport: b, layers: Wt, actions: Gt, actionDefaults: Kt, describeKind: qt, animator: x, views: Jt, children: Yt, shaders: Xt, flattenTolerance: Zt, backgroundFill: Qt, cursorCoordsHud: $t, pickHud: en, debug: S, modalityHud: tn, alphaFor: C, layerVisibility: nn, layerOrder: rn, isPointerInteractive: an, onDoubleClick: on, onClick: sn, chromeVisibility: w, modes: T, getFocused: cn, device: ln, ...un } = ue, E = Ze ?? ie, D = i(ln), dn = f(() => a(D.targetScale), [D.targetScale]), fn = (e) => typeof e == "object" && !!e && e.version === 1 && Array.isArray(e.nodes), [pn] = m(() => fn(Ue) ? _e(Ue, {}) : null), O = pn ?? Ue, { view: k, onViewChange: A, defaultView: mn, redrawOn: hn, ...gn } = un, j = f(() => T ? bt(T) : void 0, [T]), _n = f(() => T ? [...hn ?? [], T] : hn, [T, hn]), M = p(null), N = p(null), [vn, yn] = m(!1);
81
+ d(() => (s("scene-canvas", "mount"), () => s("scene-canvas", "unmount")), []);
82
+ let bn = _?.handlers;
83
+ d(() => {
84
+ let e = [je()];
85
+ for (let t of bn ?? []) e.push(be(t));
142
86
  return () => e.forEach((e) => e());
143
- }, [un]), D(() => {
144
- if (it) return it.onTick(() => {
145
- B.current?.requestRedraw?.();
87
+ }, [bn]), d(() => {
88
+ if (x) return x.onTick(() => {
89
+ N.current?.requestRedraw?.();
146
90
  });
147
- }, [it]), fe(E(() => {
148
- B.current?.requestRedraw?.();
149
- }, [])), D(() => L.overrides.subscribe(() => {
150
- B.current?.requestRedraw?.();
151
- }), [L]), D(() => L.subscribe(() => {
152
- B.current?.requestRedraw?.();
153
- }), [L]);
154
- let V = k(e(R ?? nn ?? {
91
+ }, [x]), pe(u(() => {
92
+ N.current?.requestRedraw?.();
93
+ }, [])), d(() => O.overrides.subscribe(() => {
94
+ N.current?.requestRedraw?.();
95
+ }), [O]), d(() => O.subscribe(() => {
96
+ N.current?.requestRedraw?.();
97
+ }), [O]);
98
+ let P = p(e(k ?? mn ?? {
155
99
  x: 0,
156
100
  y: 0,
157
101
  scale: {
@@ -159,71 +103,71 @@ function P(o, u) {
159
103
  y: 1
160
104
  }
161
105
  }));
162
- St(() => {
163
- R !== void 0 && (V.current = e(R));
164
- }), D(() => {
165
- let e = B.current;
166
- if (e) return V.current = e.getView(), e.subscribeView((e) => {
167
- V.current = e;
106
+ mt(() => {
107
+ k !== void 0 && (P.current = e(k));
108
+ }), d(() => {
109
+ let e = N.current;
110
+ if (e) return P.current = e.getView(), e.subscribeView((e) => {
111
+ P.current = e;
168
112
  });
169
- }, [cn]);
170
- let dn = E((t) => {
171
- let n = B.current;
172
- if (R === void 0 && n) {
113
+ }, [vn]);
114
+ let xn = u((t) => {
115
+ let n = N.current;
116
+ if (k === void 0 && n) {
173
117
  n.setView(t);
174
118
  return;
175
119
  }
176
- tn?.(e(t));
177
- }, [R, tn]), fn = ae(), pn = O(() => ({
178
- get: () => V.current,
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 ? {
120
+ A?.(e(t));
121
+ }, [k, A]), Sn = o(), Cn = f(() => ({
122
+ get: () => P.current,
123
+ set: xn
124
+ }), [xn]), F = ee(Cn, Sn), wn = u((e) => {
125
+ F.stopIfExternal(), A?.(e);
126
+ }, [A, F]), Tn = b?.animatedZoom, En = b?.zoom ?? !0, Dn = f(() => {
127
+ if (En === !1) return !1;
128
+ let e = typeof En == "object" ? En : {};
129
+ return Tn ? {
186
130
  ...e,
187
- animate: hn === !0 ? {} : hn
131
+ animate: Tn === !0 ? {} : Tn
188
132
  } : e;
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(),
133
+ }, [En, Tn]), On = f(() => ({
134
+ scene: O,
135
+ ...jt ?? {}
136
+ }), [O, jt]), kn = re(On), I = At ?? kn, An = I.adapterMethods, jn = f(() => ({
137
+ getSelection: () => An.getSelection(),
194
138
  setSelection: () => {}
195
- }), [xn]), U = O(() => {
196
- if (De) return bn;
139
+ }), [An]), L = f(() => {
140
+ if (Mt) return I;
197
141
  let e = () => {};
198
142
  return {
199
143
  get current() {
200
- return bn.current;
144
+ return I.current;
201
145
  },
202
- get: bn.get,
203
- contains: bn.contains,
146
+ get: I.get,
147
+ contains: I.contains,
204
148
  set: e,
205
149
  add: e,
206
150
  remove: e,
207
151
  toggle: e,
208
152
  clear: e,
209
153
  applyClick: e,
210
- adapterMethods: Sn
154
+ adapterMethods: jn
211
155
  };
212
156
  }, [
213
- bn,
214
- De,
215
- Sn
216
- ]), Cn = U.current, wn = O(() => {
217
- if (Cn.length === 0) return;
157
+ I,
158
+ Mt,
159
+ jn
160
+ ]), Mn = L.current, Nn = f(() => {
161
+ if (Mn.length === 0) return;
218
162
  let e = [];
219
- for (let t of Cn) {
220
- let n = L.get(t);
163
+ for (let t of Mn) {
164
+ let n = O.get(t);
221
165
  if (!n) {
222
166
  e.push(void 0);
223
167
  continue;
224
168
  }
225
- if (rt) {
226
- e.push(rt(n));
169
+ if (qt) {
170
+ e.push(qt(n));
227
171
  continue;
228
172
  }
229
173
  if (n.kind === "container") {
@@ -239,201 +183,197 @@ function P(o, u) {
239
183
  }
240
184
  return e;
241
185
  }, [
242
- Cn,
243
- L,
244
- rt
186
+ Mn,
187
+ O,
188
+ qt
245
189
  ]);
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(() => ({
251
- getEditingId: () => W(),
252
- setEditingId: (e) => En(e ?? ""),
253
- getSelectedAnchors: () => kn.current,
190
+ Fe(Mn, Nn);
191
+ let [Pn, Fn] = m(""), In = h(Pn), Ln = p(void 0), R = u(() => {
192
+ let e = Ln.current;
193
+ return e && !e() ? "" : In.current;
194
+ }, [In]), Rn = p(Ct), zn = p(null), Bn = f(() => ({
195
+ getEditingId: () => R(),
196
+ setEditingId: (e) => Fn(e ?? ""),
197
+ getSelectedAnchors: () => Rn.current,
254
198
  setSelectedAnchors: (e) => {
255
- kn.current = e, B.current?.requestRedraw?.();
199
+ Rn.current = e, N.current?.requestRedraw?.();
256
200
  },
257
- getMarquee: () => An.current,
201
+ getMarquee: () => zn.current,
258
202
  setMarquee: (e) => {
259
- An.current = e, B.current?.requestRedraw?.();
203
+ zn.current = e, N.current?.requestRedraw?.();
260
204
  }
261
- }), [W]), Mn = O(() => ({
262
- handleHitRadius: Qt.handle,
263
- extendClickLocked: () => W() !== "",
264
- ...h
205
+ }), [R]), Vn = f(() => ({
206
+ handleHitRadius: dn.handle,
207
+ extendClickLocked: () => R() !== "",
208
+ ...l
265
209
  }), [
266
- h,
267
- Qt.handle,
268
- W
269
- ]), Nn = A(U), Pn = O(() => {
270
- let e = S === void 0 ? ft : S;
210
+ l,
211
+ dn.handle,
212
+ R
213
+ ]), Hn = h(L), z = f(() => {
214
+ let e = kt === void 0 ? Xe : kt;
271
215
  if (e.length === 0) return;
272
- let t = dt();
216
+ let t = Re();
273
217
  for (let n of e) t.register(n);
274
218
  return (e) => t.classify(e);
275
- }, [S]), Fn = O(() => {
276
- if (Pn) return (e) => {
277
- let t = L.get(e);
278
- return t ? Pn(t.data) : void 0;
219
+ }, [kt]), Un = f(() => {
220
+ if (z) return (e) => {
221
+ let t = O.get(e);
222
+ return t ? z(t.data) : void 0;
279
223
  };
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, {
288
- selection: U.adapterMethods,
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,
297
- adapter: G,
298
- poseDescriptor: F,
299
- geometry: ne,
300
- getView: () => V.current,
301
- ...j ? { alphaOf: In } : {},
302
- ...Vn ? { layerIsPainted: Vn } : {},
303
- selectTool: Mn
304
- }), Yn = A(qn), Xn = O(() => {
305
- if (!K) return;
306
- let e = mt(K, (e) => {
307
- let t = G.getNode(e);
308
- return {
309
- kind: t && Pn ? Pn(t.data) : "unknown",
310
- pose: G.getWorldPose(e),
311
- data: t ?? { id: e }
312
- };
224
+ }, [z, O]), Wn = f(() => lt(O, C), [O, C]), B = de(), Gn = h({
225
+ layerVisibility: nn,
226
+ layerOrder: rn
227
+ }), [Kn] = m(le), qn = u((e) => Kn(B?.surface()?.layers() ?? [], Gn.current)(e), [
228
+ B,
229
+ Kn,
230
+ Gn
231
+ ]), Jn = nn !== void 0 || rn !== void 0 ? qn : void 0, Yn = v !== void 0 && v.closure !== "identity", V = ct(O, {
232
+ selection: L.adapterMethods,
233
+ poseDescriptor: E,
234
+ commitInsert: et?.create,
235
+ insertLayer: et?.layer,
236
+ layouts: Tt,
237
+ poseComposition: v,
238
+ cascadeContainerPose: !Yn
239
+ }), { selectTool: Xn, pickEvery: H, pickBest: U, boundsOf: Zn, boundsOfPose: Qn, planeOfNode: $n, moveOptions: er } = ot({
240
+ scene: O,
241
+ adapter: V,
242
+ poseDescriptor: E,
243
+ geometry: We,
244
+ getView: () => P.current,
245
+ ...C ? { alphaOf: Wn } : {},
246
+ ...Jn ? { layerIsPainted: Jn } : {},
247
+ selectTool: Vn
248
+ }), tr = h($n), nr = f(() => {
249
+ if (!U) return;
250
+ let e = st(U, (e) => {
251
+ let t = V.getNode(e);
252
+ return t ? {
253
+ kind: z ? z(t.data) : "unknown",
254
+ pose: V.getWorldPose(e),
255
+ data: t
256
+ } : null;
313
257
  });
314
- return N ? (t, n, r) => {
258
+ return an ? (t, n, r) => {
315
259
  let i = e(t, n, r);
316
- return i == null || N(i.id) === !1 ? null : i;
260
+ return i == null || an(i.id) === !1 ? null : i;
317
261
  } : e;
318
262
  }, [
319
- G,
320
- K,
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"] : [],
331
- ...q.has("view") ? ["hand"] : []
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`);
263
+ V,
264
+ U,
265
+ an,
266
+ z
267
+ ]), rr = (Nt ?? []).join("|"), ir = b !== void 0, W = f(() => $e(Nt, { viewport: ir }), [rr, ir]), ar = !!b?.inertia, or = typeof b?.inertia == "object" ? b.inertia : void 0, sr = ar ? {
268
+ friction: or?.friction,
269
+ minSpeed: or?.minSpeed,
270
+ boundary: or?.boundary,
271
+ bounds: or?.bounds
272
+ } : void 0, cr = Ee(sr ? { inertia: sr } : {}), lr = [
273
+ ...Rt ?? [],
274
+ ...W.has("select") ? ["select"] : [],
275
+ ...W.has("view") ? ["hand"] : []
276
+ ], ur = /* @__PURE__ */ new Set([...tt, ...ye]), dr = !y || wt(y) ? null : y, fr = /* @__PURE__ */ new Set();
277
+ if (dr) {
278
+ for (let [e, t] of Object.entries(dr)) if (t === !0) {
279
+ if (!ur.has(e)) {
280
+ He && console.warn(`[SceneCanvas] tools.${e}=true is not a known built-in id; ignoring`);
337
281
  continue;
338
282
  }
339
- or.add(e);
283
+ fr.add(e);
340
284
  }
341
285
  }
342
- let J = (e) => rr.includes(e) || or.has(e), Y = Ge({
343
- scene: L,
344
- adapter: G,
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];
286
+ let G = (e) => lr.includes(e) || fr.has(e), K = rt({ options: zt }), pr = f(() => ve(), []), mr = Ut?.feedback ?? !0, hr = mr === !0 ? pr : mr || null, gr = f(() => hr ? [...Vt ?? [], hr] : Vt ?? [], [Vt, hr]), q = {};
287
+ G("select") && (q.select = Xn), G("hand") && (q.hand = cr), G("rect") && (q.rect = K.rect), G("ellipse") && (q.ellipse = K.ellipse), G("line") && (q.line = K.line), G("polygon") && (q.polygon = K.polygon), G("star") && (q.star = K.star), G("pen") && (q.pen = K.pen), G("pencil") && (q.pencil = K.pencil), G("lasso") && (q.lasso = K.lasso), G("text") && (q.text = K.text);
288
+ let _r = dr;
289
+ if (_r) for (let [e, t] of Object.entries(_r)) if (t === !1) delete q[e];
350
290
  else if (t === !0) continue;
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),
354
- registry: X,
355
- ...ur.length ? { ambient: ur } : {},
356
- ...P ? { modes: P } : {}
357
- }), mr = A(fr ?? pr), Z = A(on), hr = E((e) => {
358
- let t = Z.current;
291
+ else He && e in q && console.warn(`[SceneCanvas] tools prop overrides bundled "${e}" tool`), q[e] = t;
292
+ let vr = y && wt(y) ? y : null, yr = Se({
293
+ active: Bt ?? ("select" in q ? "select" : null),
294
+ registry: q,
295
+ ...gr.length ? { ambient: gr } : {},
296
+ ...T ? { modes: T } : {}
297
+ }), br = h(vr ?? yr), J = h(j), xr = u((e) => {
298
+ let t = J.current;
359
299
  if (!t) return !0;
360
- let n = (mr.current?.registry)?.[e]?.eligibility.capabilities ?? [];
300
+ let n = (br.current?.registry)?.[e]?.eligibility.capabilities ?? [];
361
301
  if (n.length === 0) return !1;
362
302
  let r = t().allowedCapabilities;
363
303
  for (let e of n) if (r.has(e)) return !0;
364
304
  return !1;
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)] : []
305
+ }, [J, br]), Y = vr ?? yr, Sr = f(() => ({ move: er }), [er]), Cr = l?.rotate || void 0, wr = f(() => [
306
+ ...W.has("resize") ? [we()] : [],
307
+ ...W.has("rotate") ? [Te({ rotate: Cr })] : [],
308
+ ...W.has("move") ? [Ce(Sr)] : []
369
309
  ], [
370
- q,
371
- gr,
372
- _r
373
- ]), yr = O(() => {
374
- let e = Re(q), t = [
375
- ...Object.values(Q.registry),
376
- ...Q.ambient,
377
- ...vr
310
+ W,
311
+ Sr,
312
+ Cr
313
+ ]), Tr = f(() => {
314
+ let e = Qe(W), t = [
315
+ ...Object.values(Y.registry),
316
+ ...Y.ambient,
317
+ ...wr
378
318
  ];
379
319
  for (let n of t) for (let t of n.bindings ?? []) e.add(t.actionId);
380
- return te.filter((t) => !e.has(t));
320
+ return xe.filter((t) => !e.has(t));
381
321
  }, [
382
- q,
383
- Q,
384
- vr
385
- ]), br = A(Ke);
386
- D(() => {
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 ?? {} };
322
+ W,
323
+ Y,
324
+ wr
325
+ ]), Er = h(Lt);
326
+ d(() => {
327
+ Er.current?.(Y);
328
+ }, [Y, Er]);
329
+ let Dr = h(nr), Or = ft(on, Dr), kr = ft(sn, Dr), X = f(() => nt(Wt, D.targetScale), [Wt, D.targetScale]), Ar = f(() => {
330
+ if (l?.rotate !== !1) return Gt;
331
+ if (Gt === null) return null;
332
+ let e = { ...Gt ?? {} };
393
333
  return "rotate" in e || (e.rotate = null), e;
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(() => {
397
- let e = $.scene;
398
- return !e || "layer" in e ? e : xe(e, L, j, it?.colorOverrides);
334
+ }, [Gt, l?.rotate]), jr = p(null), Mr = p(null);
335
+ Mr.current ||= gt({ getAction: (e) => jr.current?.(e) });
336
+ let Z = Mr.current, Nr = f(() => se(() => Mr.current), []), { previewIdsExtra: Pr, previewPoseExtra: Fr } = f(() => oe(() => Mr.current), []), Ir = f(() => {
337
+ let e = X.scene;
338
+ return !e || "layer" in e ? e : ut(e, O, C, x?.colorOverrides, v);
399
339
  }, [
400
- $.scene,
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,
340
+ X.scene,
341
+ C,
342
+ O,
343
+ x,
344
+ v
345
+ ]), Lr = at({
346
+ scene: O,
347
+ sceneSlot: Ir,
348
+ dispatcher: Z
349
+ }), Rr = it({ dispatcher: Z }), zr = h(nr), { getHover: Br, canvasRef: Vr } = ke({
410
350
  nodeAtClientPoint: (e, t) => {
411
- let n = z.current;
351
+ let n = M.current;
412
352
  if (!n) return null;
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 ? {
414
- scale: o.scale,
415
- layerIsPainted: l.layerIsPainted
416
- } : o);
417
- return u ? { id: u.id } : null;
353
+ let r = B?.resolver.at(null, e, t), i = r?.origin ?? n.getBoundingClientRect(), a = r?.view ?? P.current, [o, ee] = te(e, t, i, a), s = r?.id == null ? void 0 : B?.list().find((e) => e.id === r.id), ne = zr.current?.(o, ee, s ? {
354
+ scale: a.scale,
355
+ layerIsPainted: s.layerIsPainted
356
+ } : a);
357
+ return ne ? { id: ne.id } : null;
418
358
  },
419
- enabled: Vt !== void 0
420
- }), Ir = A(U.current), Lr = A(Yt), Rr = O(() => {
359
+ enabled: w !== void 0
360
+ }), Hr = h(L.current), Ur = h(cn), Wr = f(() => {
421
361
  let e = {};
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 : {
362
+ return W.has("outline") || (e["selection.outline"] = c), W.has("resize") || (e["selection.resize-handles"] = c), W.has("rotate") || (e["selection.rotation-handle"] = c), Mt || (e["action.marquee"] = c, e["action.lasso"] = c), l?.rotate === !1 && (e["selection.rotation-handle"] = c), Object.keys(e).length === 0 ? w : {
423
363
  ...e,
424
- ...Vt
364
+ ...w
425
365
  };
426
366
  }, [
427
- Vt,
428
- De,
429
- h?.rotate,
430
- q
431
- ]), zr = A(Rr), Br = A(I), Vr = A(h?.resize?.resizable), Hr = E((e) => {
432
- let n = e.selection, r = Z.current?.() ?? {
367
+ w,
368
+ Mt,
369
+ l?.rotate,
370
+ W
371
+ ]), Gr = h(Wr), Kr = h(D), qr = h(l?.resize?.resizable), Q = u((e) => {
372
+ let n = e.selection, r = J.current?.() ?? {
433
373
  id: "normal",
434
- allowedCapabilities: bt
435
- }, i = vt({
436
- focused: !Lr.current || Lr.current(),
374
+ allowedCapabilities: Ae
375
+ }, i = Oe({
376
+ focused: !Ur.current || Ur.current(),
437
377
  selection: n,
438
378
  multiActive: n.length > 1,
439
379
  modifiers: {
@@ -443,46 +383,46 @@ function P(o, u) {
443
383
  shift: !1
444
384
  },
445
385
  action: e.action,
446
- hover: Fr(),
386
+ hover: Br(),
447
387
  view: e.view
448
- }), a = Vr.current, o = a ? n.every((e) => a(e)) : void 0;
388
+ }), a = qr.current, o = a ? n.every((e) => a(e)) : void 0;
449
389
  return {
450
390
  ...i,
451
391
  zoom: t(e.view),
452
392
  mode: r.id,
453
393
  allowedCapabilities: r.allowedCapabilities,
454
394
  selectionResizable: o,
455
- editingAnchors: W() !== "",
456
- device: Br.current
395
+ editingAnchors: R() !== "",
396
+ device: Kr.current
457
397
  };
458
398
  }, [
459
- Fr,
460
- W,
461
- Z,
462
- Lr,
463
- Vr,
464
- Br
465
- ]), Ur = E(() => ({
466
- selection: Ir.current,
467
- view: V.current,
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;
399
+ Br,
400
+ R,
401
+ J,
402
+ Ur,
403
+ qr,
404
+ Kr
405
+ ]), Jr = u(() => ({
406
+ selection: Hr.current,
407
+ view: P.current,
408
+ action: Z.getActiveAction()
409
+ }), [Z, Hr]), Yr = u(() => Q(Jr()), [Q, Jr]), Xr = f(() => j ? () => J.current().allowedCapabilities.has("edits-anchors") : void 0, [j, J]);
410
+ mt(() => {
411
+ Ln.current = Xr;
472
412
  });
473
- let Kr = O(() => ({
474
- ruleCtx: (e) => Z.current ? Hr(e) : void 0,
475
- isVisible: (e) => _t(zr.current, Hr(e))
413
+ let $ = f(() => ({
414
+ ruleCtx: (e) => J.current ? Q(e) : void 0,
415
+ isVisible: (e) => De(Gr.current, Q(e))
476
416
  }), [
477
- Hr,
478
- Z,
479
- zr
480
- ]), qr = E(() => Kr.isVisible(Ur()), [Kr, Ur]), Jr = J("pen"), Yr = O(() => Jr ? He({ penTool: Y.pen }) : null, [Y.pen, Jr]);
481
- D(() => {
482
- B.current?.requestRedraw?.();
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);
417
+ Q,
418
+ J,
419
+ Gr
420
+ ]), Zr = u(() => $.isVisible(Jr()), [$, Jr]), Qr = G("pen"), $r = f(() => Qr ? Pe({ penTool: K.pen }) : null, [K.pen, Qr]);
421
+ d(() => {
422
+ N.current?.requestRedraw?.();
423
+ }, [Pn]);
424
+ let ei = h(O), ti = S !== void 0 && S !== !1 && S.slops === !0, ni = X.selectionOverlay, ri = ni ? Le(ni) : null, ii = f(() => ri, [ri?.distancePx, ri?.sizePx]), ai = p([]), oi = f(() => dt({ getAffordances: () => ai.current }), []), si = (e, t, n) => {
425
+ let r = ei.current?.get(e);
486
426
  if (!r) return null;
487
427
  let i = r.pose, a = r.data, o = !1;
488
428
  for (let n of t) {
@@ -494,100 +434,102 @@ function P(o, u) {
494
434
  break;
495
435
  }
496
436
  if (!r) continue;
497
- let s = n.previewPose?.(e);
498
- s != null && !o && (i = s, o = !0);
499
- let c = n.previewData?.(e);
500
- c != null && (a = c, o = !0);
437
+ let ee = n.previewPose?.(e);
438
+ ee != null && !o && (i = ee, o = !0);
439
+ let te = n.previewData?.(e);
440
+ te != null && (a = te, o = !0);
501
441
  }
502
- return se(Ze({
442
+ return ae(Ke({
503
443
  pose: i,
504
444
  data: a
505
- }), Yn.current(e, n));
506
- }, ii = O(() => Ue({
507
- getEditingId: () => W() || null,
508
- getPose: (e, t, n) => ri(e, t, n),
509
- getSelectedAnchors: () => kn.current,
445
+ }), tr.current(e, n));
446
+ }, ci = f(() => Ne({
447
+ getEditingId: () => R() || null,
448
+ getPose: (e, t, n) => si(e, t, n),
449
+ getSelectedAnchors: () => Rn.current,
510
450
  getMarquee: (e) => {
511
- let t = An.current, r = t ? Yn.current(W(), e) : null;
451
+ let t = zn.current, r = t ? tr.current(R(), e) : null;
512
452
  return t && r ? n(r, t) : t;
513
453
  }
514
- }), []), ai = E(() => {
515
- let e = W();
516
- return e ? /* @__PURE__ */ new Set([e]) : Ut;
517
- }, [W]), oi = O(() => {
518
- let e = $.selectionOverlay;
454
+ }), []), li = u(() => {
455
+ let e = R();
456
+ return e ? /* @__PURE__ */ new Set([e]) : St;
457
+ }, [R]), ui = f(() => {
458
+ let e = X.selectionOverlay;
519
459
  if (e === null) return null;
520
460
  let t = e ?? {}, n = t.getSuppressedIds, r = () => {
521
- let e = ai(), t = n?.();
461
+ let e = li(), t = n?.();
522
462
  if (!t || t.size === 0) return e;
523
463
  if (e.size === 0) return t;
524
464
  let r = new Set(t);
525
465
  for (let t of e) r.add(t);
526
466
  return r;
527
467
  };
528
- return C({
468
+ return Ie({
529
469
  ...t,
530
470
  getSuppressedIds: r,
531
471
  ...t.poseById ? {
532
472
  getPose: t.poseById,
533
- poseDescriptor: t.poseDescriptor ?? F
473
+ poseDescriptor: t.poseDescriptor ?? E
534
474
  } : {}
535
475
  });
536
476
  }, [
537
- $.selectionOverlay,
538
- ai,
539
- F
540
- ]), si = O(() => ({
541
- ...$,
542
- ...jr ? { scene: jr } : {},
543
- selectionOverlay: oi ? { layer: oi } : $.selectionOverlay === null ? null : void 0,
477
+ X.selectionOverlay,
478
+ li,
479
+ E
480
+ ]), di = f(() => ({
481
+ ...X,
482
+ ...Ir ? { scene: Ir } : {},
483
+ selectionOverlay: ui ? { layer: ui } : X.selectionOverlay === null ? null : void 0,
544
484
  previewGhost: {
545
- layer: Mr,
485
+ layer: Lr,
546
486
  after: "scene"
547
487
  },
548
488
  dispatcherOverlay: {
549
- layer: Nr,
489
+ layer: Rr,
550
490
  after: "previewGhost"
551
491
  },
552
- ...Yr ? { penPreview: {
553
- layer: Yr,
492
+ ...$r ? { penPreview: {
493
+ layer: $r,
554
494
  after: "dispatcherOverlay"
555
495
  } } : {},
556
496
  pathEditingOverlay: {
557
- layer: ii,
497
+ layer: ci,
558
498
  after: "selectionOverlay"
559
499
  },
560
- ...Zr ? { slopsDebug: {
561
- layer: ni,
500
+ ...ti ? { slopsDebug: {
501
+ layer: oi,
562
502
  after: "pathEditingOverlay"
563
503
  } } : {}
564
504
  }), [
565
- $,
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 {
576
- adapter: G,
577
- ...li ? { reviver: li } : {}
505
+ X,
506
+ Ir,
507
+ ui,
508
+ Lr,
509
+ Rr,
510
+ $r,
511
+ ci,
512
+ ti,
513
+ oi
514
+ ]), fi = p(null), pi = _?.clipboard?.reviver, mi = _?.clipboard?.enabled !== !1, hi = h(_?.clipboard?.onOmitted), gi = f(() => {
515
+ if (mi && V?.commitPaste) return {
516
+ adapter: V,
517
+ ...pi ? { reviver: pi } : {},
518
+ onOmitted: (e) => hi.current?.(e)
578
519
  };
579
520
  }, [
580
- G,
581
- ui,
582
- li
583
- ]), fi = E((e, t) => {
584
- let n = e.map((e) => e instanceof File ? st([e])[0] : e);
521
+ V,
522
+ mi,
523
+ pi,
524
+ hi
525
+ ]), _i = u((e, t) => {
526
+ let n = e.map((e) => e instanceof File ? Me([e])[0] : e);
585
527
  if (n.length !== 0) {
586
- if (!ci.current) {
587
- ee("ingest", "CanvasExtensionApi.ingest called before the action registry mounted — call ignored. Defer to an effect or event handler.");
528
+ if (!fi.current) {
529
+ ne("ingest", "CanvasExtensionApi.ingest called before the action registry mounted — call ignored. Defer to an effect or event handler.");
588
530
  return;
589
531
  }
590
- ci.current.trigger("ingest", {
532
+ fi.current.trigger("ingest", {
591
533
  items: n,
592
534
  ...t ? {
593
535
  worldX: t.x,
@@ -595,395 +537,199 @@ function P(o, u) {
595
537
  } : {}
596
538
  });
597
539
  }
598
- }, []), [pi, mi] = Ct([]), hi = E((e) => (mi((t) => [...t.filter((t) => t.id !== e.id), e]), {
540
+ }, []), [vi, yi] = m([]), bi = u((e) => (yi((t) => [...t.filter((t) => t.id !== e.id), e]), {
599
541
  id: e.id,
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;
542
+ draw: (t, n, r) => B?.list().find((t) => t.id === e.id)?.layer.draw(t, n, r) ?? [],
543
+ remove: () => yi((t) => t.filter((t) => t !== e))
544
+ }), [B]), xi = u((e) => {
545
+ M.current = e?.element ?? null, Vr(M.current);
604
546
  let t = e ? {
605
547
  ...e,
606
- ingest: fi,
607
- animateView: H.animate,
608
- stopViewAnimation: H.stop,
609
- isViewAnimating: H.isAnimating,
610
- addView: hi
548
+ ingest: _i,
549
+ animateView: F.animate,
550
+ stopViewAnimation: F.stop,
551
+ isViewAnimating: F.isAnimating,
552
+ addView: bi
611
553
  } : null;
612
- B.current = t, ln(t !== null), wt(u, t);
554
+ N.current = t, yn(t !== null), ht(me, t);
613
555
  }, [
614
- u,
615
- fi,
616
- H,
617
- hi
618
- ]), _i = O(() => ({
619
- adapter: G,
620
- geometry: F,
621
- boundsOf: Gn,
622
- boundsOfPose: Kn,
623
- planeOfNode: qn,
624
- tools: Q,
625
- pickEvery: K,
626
- pickBest: Wn,
627
- kindOfNode: Fn,
628
- chromeCaps: Kr,
629
- selectionApi: U,
630
- rotationBadge: ei
631
- }), [
632
- G,
556
+ me,
557
+ _i,
633
558
  F,
634
- Gn,
635
- Kn,
636
- qn,
637
- Q,
638
- K,
639
- Wn,
640
- Fn,
641
- Kr,
559
+ bi,
560
+ Vr
561
+ ]), Si = f(() => ({
562
+ adapter: V,
563
+ geometry: E,
564
+ boundsOf: Zn,
565
+ boundsOfPose: Qn,
566
+ planeOfNode: $n,
567
+ tools: Y,
568
+ pickEvery: H,
569
+ pickBest: U,
570
+ kindOfNode: Un,
571
+ chromeCaps: $,
572
+ selectionApi: L,
573
+ rotationBadge: ii
574
+ }), [
575
+ V,
576
+ E,
577
+ Zn,
578
+ Qn,
579
+ $n,
580
+ Y,
581
+ H,
642
582
  U,
643
- ei
644
- ]), vi = /* @__PURE__ */ M(ye, {
645
- ref: gi,
646
- adapter: G,
647
- selection: U,
648
- poseDescriptor: F,
649
- tools: Q,
650
- layers: si,
651
- pickEvery: K,
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,
669
- shaders: lt,
670
- flattenTolerance: xt,
671
- ...sn ? { redrawOn: sn } : {},
672
- ...an
673
- }), yi = A(L), bi = A(U), xi = k(null);
674
- return D(() => {
675
- process.env.NODE_ENV !== "production" && (xi.current = pt({
676
- getScene: () => yi.current,
677
- getSelectionIds: () => bi.current?.current ?? [],
678
- getView: () => V.current,
679
- getActiveToolId: () => mr.current?.active ?? null
680
- }), xi.current?._markReady());
583
+ Un,
584
+ $,
585
+ L,
586
+ ii
587
+ ]), Ci = /* @__PURE__ */ g(Ve, {
588
+ ref: xi,
589
+ adapter: V,
590
+ selection: L,
591
+ poseDescriptor: E,
592
+ tools: Y,
593
+ layers: di,
594
+ pickEvery: H,
595
+ boundsOf: Zn,
596
+ boundsOfPose: Qn,
597
+ getIsVisible: Zr,
598
+ previewIdsExtra: Pr,
599
+ gestureSource: Nr,
600
+ previewPoseExtra: Fr,
601
+ backgroundFill: Qt,
602
+ cursorCoordsHud: $t,
603
+ pickHud: en,
604
+ modalityHud: tn,
605
+ ...S === void 0 ? {} : { debug: xt(S) },
606
+ pickBest: U,
607
+ contentVersion: O.getVersion,
608
+ layerVisibility: nn,
609
+ layerOrder: rn,
610
+ ...k === void 0 ? { defaultView: mn } : { view: k },
611
+ onViewChange: wn,
612
+ shaders: Xt,
613
+ flattenTolerance: Zt,
614
+ ..._n ? { redrawOn: _n } : {},
615
+ ...gn
616
+ }), wi = h(O), Ti = h(L);
617
+ return d(() => {
618
+ if (process.env.NODE_ENV !== "production") {
619
+ let e = ze({
620
+ getScene: () => wi.current,
621
+ getSelectionIds: () => Ti.current?.current ?? [],
622
+ getView: () => P.current,
623
+ getActiveToolId: () => br.current?.active ?? null
624
+ });
625
+ if (e) return e._markReady(), () => Be(e);
626
+ }
681
627
  }, [
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, {
693
- selection: U,
694
- scene: L,
695
- adapter: G,
696
- actionDefaults: nt,
697
- actions: wr,
698
- excludeActions: yr,
699
- currentViewRef: V,
700
- onViewChange: dn,
701
- resizeOptions: h?.resize,
702
- poseDescriptor: F,
703
- geometryProjection: me,
704
- dispatcher: Dr,
705
- getActionRef: Tr,
706
- pickEvery: K,
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,
713
- viewAnimation: H,
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,
723
- canvasApiRef: B,
724
- ingestionResolveSrc: g?.resolveSrc,
725
- ingestionSvg: g?.svg,
726
- ingestionClipboard: di,
727
- actionsRegistryRef: ci
628
+ wi,
629
+ Ti,
630
+ br
631
+ ]), /* @__PURE__ */ g(r, {
632
+ value: ln,
633
+ children: /* @__PURE__ */ g(ce, {
634
+ value: Si,
635
+ children: /* @__PURE__ */ g(vt, { children: /* @__PURE__ */ g(he, { children: /* @__PURE__ */ yt(vt, { children: [
636
+ Ci,
637
+ /* @__PURE__ */ g(ge, { canvasRef: M }),
638
+ /* @__PURE__ */ g(qe, {
639
+ selection: L,
640
+ scene: O,
641
+ adapter: V,
642
+ actionDefaults: Kt,
643
+ actions: Ar,
644
+ excludeActions: Tr,
645
+ currentViewRef: P,
646
+ onViewChange: xn,
647
+ resizeOptions: l?.resize,
648
+ poseDescriptor: E,
649
+ geometryProjection: Ot,
650
+ dispatcher: Z,
651
+ getActionRef: jr,
652
+ pickEvery: H,
653
+ layerIsPainted: Jn,
654
+ alphaOf: C ? Wn : void 0,
655
+ viewportPanEnabled: W.has("view") ? b?.pan ?? !0 : !1,
656
+ viewportZoom: W.has("view") ? Dn : !1,
657
+ viewportPinchZoom: W.has("view") ? b?.pinchZoom ?? !0 : !1,
658
+ viewportRecenter: b?.recenter,
659
+ viewAnimation: F,
660
+ editAnchorsExternalState: Bn,
661
+ anchorEditingAllowed: Xr,
662
+ layouts: Tt,
663
+ layoutDropTarget: Et,
664
+ reflowTransition: Dt,
665
+ poseComposition: v,
666
+ insertNodeFactories: pt,
667
+ insertPaint: _t,
668
+ snapPoint: zt?.snapPoint,
669
+ canvasRef: M,
670
+ canvasApiRef: N,
671
+ ingestionResolveSrc: _?.resolveSrc,
672
+ ingestionSvg: _?.svg,
673
+ ingestionClipboard: gi,
674
+ actionsRegistryRef: fi
728
675
  }),
729
- /* @__PURE__ */ M(qt, {
730
- canvasRef: z,
731
- canvasApiRef: B,
732
- tools: Q,
733
- contributions: vr,
734
- enabled: Le,
735
- keyboard: Ne,
736
- selectionRef: Nn,
737
- boundsOf: Gn,
738
- planeOfNode: qn,
739
- pickEvery: K,
740
- pickBest: Wn,
741
- kindOfNode: Fn,
742
- viewRef: V,
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
676
+ /* @__PURE__ */ g(Ge, {
677
+ canvasRef: M,
678
+ canvasApiRef: N,
679
+ tools: Y,
680
+ contributions: wr,
681
+ enabled: It,
682
+ keyboard: Pt,
683
+ claimKeys: Ft,
684
+ selectionRef: Hn,
685
+ boundsOf: Zn,
686
+ planeOfNode: $n,
687
+ pickEvery: H,
688
+ pickBest: U,
689
+ kindOfNode: Un,
690
+ viewRef: P,
691
+ dispatcher: Z,
692
+ getIsVisibleForCanvas: Zr,
693
+ getRuleCtx: j ? Yr : void 0,
694
+ targetScale: D.targetScale,
695
+ handleHitRadius: l?.handleHitRadius,
696
+ rotationBadge: ii,
697
+ chromeAffordancesRef: ai,
698
+ onDoubleClick: Or,
699
+ onClick: kr,
700
+ longPress: Ut
753
701
  }),
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
702
+ /* @__PURE__ */ g(Ye, {
703
+ internalTools: yr,
704
+ toolsTakeover: vr ?? void 0,
705
+ enableKeybindings: Pt,
706
+ isToolEligible: xr,
707
+ canvasApi: vn ? N.current : null,
708
+ versionCheck: Ht
761
709
  }),
762
- at?.map((e, t) => /* @__PURE__ */ M(je, {
710
+ Jt?.map((e, t) => /* @__PURE__ */ g(fe, {
763
711
  ...e,
764
712
  order: e.order ?? t
765
713
  }, 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}`)),
768
- ct
714
+ Je(Y).flatMap((e) => e.views ?? []).map((e) => /* @__PURE__ */ g(fe, { ...e }, `contribution:${e.id}`)),
715
+ vi.map((e) => /* @__PURE__ */ g(fe, { ...e }, `added:${e.id}`)),
716
+ Yt
769
717
  ] }) }) })
770
718
  })
771
719
  });
772
720
  }
773
- function Kt({ internalTools: e, toolsTakeover: t, enableKeybindings: n, isToolEligible: r, canvasApi: i, versionCheck: a }) {
774
- return v(e, {
775
- disable: !!t || !n,
776
- isToolEligible: r
777
- }), v(t ?? e, {
778
- disable: !t || !n,
779
- isToolEligible: r
780
- }), Ne(t ?? e, i, a), null;
781
- }
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(() => {
784
- let e = /* @__PURE__ */ new Map();
785
- for (let [t, r] of Object.entries(n.registry)) e.set(t, r);
786
- for (let t of r) e.set(t.id, t);
787
- for (let t of n.ambient) e.set(t.id, t);
788
- return e;
789
- }, [
790
- n.registry,
791
- n.ambient,
792
- r
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
798
- }), [
799
- m,
800
- h,
801
- re,
802
- fe
803
- ]);
804
- St(() => {
805
- ie && (ie.current = pe);
806
- });
807
- let S = O(() => {
808
- if (s && c && f) return De({
809
- getChromeState: () => y?.surface()?.chromeState() ?? me,
810
- getView: () => f.current ?? {
811
- x: 0,
812
- y: 0,
813
- scale: {
814
- x: 1,
815
- y: 1
816
- }
817
- },
818
- affordances: pe,
819
- ...p ? { getIsVisible: () => p() } : {}
820
- });
821
- }, [
822
- s,
823
- c,
824
- f,
825
- pe,
826
- p,
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) ?? [];
832
- return n.length > 0 ? n[n.length - 1] : null;
833
- }, (e) => ue.current?.(e));
834
- }, [
835
- s,
836
- u,
837
- f,
838
- le,
839
- ce,
840
- ue
841
- ]), C = E((t, n) => {
842
- let r = e.current, i = f?.current;
843
- if (!r || !i) return Rt({
844
- ts: Date.now(),
845
- clientX: t,
846
- clientY: n,
847
- rect: null,
848
- view: null,
849
- world: {
850
- x: t,
851
- y: n
852
- },
853
- fallback: !0
854
- }), {
855
- x: t,
856
- y: n
857
- };
858
- let o = r.getBoundingClientRect(), [s, c] = a(t, n, o, i), l = {
859
- x: s,
860
- y: c
861
- };
862
- return Rt({
863
- ts: Date.now(),
864
- clientX: t,
865
- clientY: n,
866
- rect: {
867
- left: o.left,
868
- top: o.top,
869
- width: o.width,
870
- height: o.height
871
- },
872
- view: {
873
- x: i.x,
874
- y: i.y,
875
- scaleX: i.scale.x,
876
- scaleY: i.scale.y
877
- },
878
- world: l,
879
- fallback: !1
880
- }), l;
881
- }, [e, f]), _e = O(() => (e) => {
882
- let n = t?.current?.hitTestExtras?.(e.x, e.y);
883
- if (n) {
884
- let e = n.hit;
885
- return {
886
- kind: `layer:${n.layerId}`,
887
- owner: n.layerId,
888
- strength: e.strength ?? "shared",
889
- ...e.claimedKinds === void 0 ? {} : { claimedKinds: e.claimedKinds },
890
- ...e.cursor === void 0 ? {} : { cursor: e.cursor },
891
- ...e.initialScratch === void 0 ? {} : { payload: e.initialScratch }
892
- };
893
- }
894
- return S ? S(e) : null;
895
- }, [S, t]), ve = E(() => {
896
- t?.current?.requestRedraw?.();
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 }
901
- }), [
902
- be,
903
- _?.duration,
904
- _?.haptics
905
- ]), Se = O(() => {
906
- if (y) return {
907
- targets: () => y.list().map((e) => ({
908
- id: e.id,
909
- ...e.target
910
- })),
911
- resolver: y.resolver
912
- };
913
- }, [y]);
914
- return j({
915
- canvasRef: e,
916
- actions: oe,
917
- entriesById: b,
918
- enabled: i,
919
- keyboard: o,
920
- affordanceAt: _e,
921
- classifyTarget: ge,
922
- dispatcher: te,
923
- clientToWorld: C,
924
- requestRedraw: ve,
925
- paintedCursor: ye,
926
- getRuleCtx: ne,
927
- onClick: ae,
928
- onDoubleClick: g,
929
- longPress: xe,
930
- ...Se ? { views: Se } : {}
931
- }), At("longPress", () => be), null;
932
- }
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), () => {
941
- ee.current = null;
942
- };
943
- }, [C, ee]);
944
- let _e = g(), ve = Ke(a, o, oe, () => {
945
- let e = fe.current;
946
- return e ? {
947
- width: e.clientWidth,
948
- height: e.clientHeight
949
- } : null;
950
- }, v, _e, te);
951
- p({
952
- selection: e,
953
- scene: t,
954
- view: ve,
955
- history: t.history,
956
- exclude: i
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,
965
- poseDescriptor: c,
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] });
968
- }
969
- function Yt({ options: e }) {
970
- return m(ne(e)), null;
971
- }
972
- function Xt({ projection: e }) {
973
- return rt(e), null;
974
- }
975
- var Zt = xt(P);
976
- function F(e, t) {
977
- return /* @__PURE__ */ M(Dt, {
721
+ var Tt = pt(_);
722
+ function Et(e, t) {
723
+ return /* @__PURE__ */ g(_t, {
978
724
  yoke: e.yoke,
979
- children: /* @__PURE__ */ M(S, { children: /* @__PURE__ */ M(Zt, {
725
+ children: /* @__PURE__ */ g(ue, { children: /* @__PURE__ */ g(Tt, {
980
726
  ...e,
981
727
  ref: t
982
728
  }) })
983
729
  });
984
730
  }
985
- var I = xt(F);
731
+ var Dt = pt(Et);
986
732
  //#endregion
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 };
733
+ export { l as BUILTIN_TOOL_IDS, et as DEFAULT_HANDLE_SIZE, Ze as SCENE_CANVAS_FEATURES, Dt as SceneCanvas, me as rotateAroundAABBCenter };
988
734
 
989
735
  //# sourceMappingURL=SceneCanvas.js.map