@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,127 +1,44 @@
1
1
  import { getProgramSource as e, programSourceRegistry as t } from "../renderer/shaders/registerProgram.js";
2
- import { viewToMat3 as n } from "../renderer/math/viewToMat3.js";
3
- import { cullDrawCommands as r } from "../renderer/cullDrawCommands.js";
2
+ import { commandFill as n } from "../features/patterns/commandPaint.js";
3
+ import { viewToMat3 as r } from "../renderer/math/viewToMat3.js";
4
4
  import { drawLayers as i, isLayerPainted as a } from "../core/layers/render.js";
5
- import { normalizeView as o } from "../core/viewport/view.js";
6
- import { clientToWorld as s } from "../core/viewport/clientToWorld.js";
7
- import { clampView as c } from "../core/viewport/clampView.js";
8
- import { AUTO_POSE_DESCRIPTOR as l } from "../interactions/actions/resize/autoPoseDescriptor.js";
9
- import { dispatchApplyBatch as u } from "../core/applyOps.js";
10
- import { parseDebugFlags as d } from "../debug/parseDebugFlags.js";
11
- import { createDebugSink as f } from "../debug/createDebugSink.js";
12
- import { createDebugOverlayLayer as p } from "../debug/createDebugOverlayLayer.js";
13
- import { isCustomEntry as m } from "./layerSlots.js";
14
- import { composeOrderedLayers as h, placeToolOverlays as g } from "./layerOrder.js";
15
- import { sceneLayerKey as _ } from "./sceneLayerPaint.js";
16
- import { registerMountedCanvas as ee } from "./mountedCanvases.js";
17
- import { aggregatePreviewIds as te } from "./toolPreview.js";
18
- import { useViewHelpers as ne } from "./useViewHelpers.js";
19
- import { useOptionalViewRegistry as re } from "./viewRegistry.js";
20
- import { useFrameLoop as ie } from "./useFrameLoop.js";
21
- import { useRedrawOn as ae } from "./useRedrawOn.js";
22
- import { useCanvasRenderer as oe } from "./useCanvasRenderer.js";
23
- import { createSelectionOverlayLayer as se } from "../features/selection/overlay.js";
24
- import { frameStatsOf as ce } from "../debug/frameStats.js";
25
- import { buildSceneTree as v } from "./buildSceneTree.js";
26
- import { createPaintedCursorLayer as le } from "../features/cursor/paintedCursorLayer.js";
27
- import { wrapNodeOutput as y } from "./wrapNodeOutput.js";
28
- import { paintMissesView as ue } from "./paintCull.js";
29
- import { CursorCoordsHud as de } from "./CursorCoordsHud.js";
30
- import { PickHud as fe } from "./PickHud.js";
31
- import { ModalityHud as pe } from "./ModalityHud.js";
32
- import { forwardRef as me, useCallback as b, useEffect as x, useImperativeHandle as he, useInsertionEffect as ge, useLayoutEffect as _e, useMemo as S, useRef as C, useState as ve, useSyncExternalStore as ye } from "react";
33
- import { useLatest as w } from "@weasel-js/react";
34
- import { Fragment as be, jsx as xe, jsxs as Se } from "react/jsx-runtime";
35
- import { createPaintedCursorState as Ce, resolveCursorTier as T } from "@weasel-js/cursor";
5
+ import { clientToWorld as o } from "../core/viewport/clientToWorld.js";
6
+ import { AUTO_POSE_DESCRIPTOR as s } from "../interactions/actions/resize/autoPoseDescriptor.js";
7
+ import { aggregatePreviewIds as c } from "./toolPreview.js";
8
+ import { useViewHelpers as ee } from "./useViewHelpers.js";
9
+ import { useOptionalViewRegistry as te } from "./viewRegistry.js";
10
+ import { useFrameLoop as l } from "./useFrameLoop.js";
11
+ import { useCanvasRenderer as ne, useRedrawOnDensityChange as re, useRedrawOnRestore as ie } from "./useCanvasRenderer.js";
12
+ import { useRedrawOn as u } from "./useRedrawOn.js";
13
+ import { createDebugOverlayLayer as ae } from "../debug/createDebugOverlayLayer.js";
14
+ import { dispatchApplyBatch as d } from "../core/applyOps.js";
15
+ import { parseDebugFlags as oe } from "../debug/parseDebugFlags.js";
16
+ import { createDebugSink as se } from "../debug/createDebugSink.js";
17
+ import { createSelectionOverlayLayer as ce } from "../features/selection/overlay.js";
18
+ import { isCustomEntry as f } from "./layerSlots.js";
19
+ import { composeOrderedLayers as le, placeToolOverlays as ue } from "./layerOrder.js";
20
+ import { buildSceneLayers as de } from "./buildSceneLayer.js";
21
+ import { registerMountedCanvas as fe } from "./mountedCanvases.js";
22
+ import { useCanvasView as pe } from "./useCanvasView.js";
23
+ import { useSceneLayerList as me } from "./useSceneLayerList.js";
24
+ import { frameStatsOf as he } from "../debug/frameStats.js";
25
+ import { createPaintedCursorLayer as ge } from "../features/cursor/paintedCursorLayer.js";
26
+ import { CursorCoordsHud as _e } from "./CursorCoordsHud.js";
27
+ import { PickHud as ve } from "./PickHud.js";
28
+ import { ModalityHud as ye } from "./ModalityHud.js";
29
+ import { forwardRef as be, useCallback as p, useEffect as m, useImperativeHandle as xe, useInsertionEffect as Se, useLayoutEffect as Ce, useMemo as h, useRef as g, useState as we, useSyncExternalStore as Te } from "react";
30
+ import { useLatest as _ } from "@weasel-js/react";
31
+ import { Fragment as Ee, jsx as v, jsxs as De } from "react/jsx-runtime";
32
+ import { createPaintedCursorState as Oe, resolveCursorTier as y } from "@weasel-js/cursor";
36
33
  //#region src/canvas/Canvas.tsx
37
- var we = (e) => !0;
38
- function E(e, t, i, a, o, s) {
39
- let c = e.toPose ?? ((e) => t ? t.getPose(e.id) : e), l = e.drawOne, u = e.postProcess, d = e.cull ? (e, t, i) => r(e, n(t), {
40
- x: 0,
41
- y: 0,
42
- width: i.width,
43
- height: i.height
44
- }) : (e) => e, f = e.cull ? e.paintBounds : void 0, p = (e, t) => f ? ue(f, e, {
45
- x: 0,
46
- y: 0,
47
- width: t.width,
48
- height: t.height
49
- }) : void 0;
50
- return {
51
- id: s?.id ?? "scene",
52
- label: s ? `Scene: ${s.forLayer}` : "Scene",
53
- draw: (n, r, f) => {
54
- let m = o(), h = t;
55
- if (h && e.objects === void 0 && typeof h.getLayers == "function" && typeof h.getNode == "function" && typeof h.getChildren == "function" && l) {
56
- let t = (t, n, r) => {
57
- if (m && m.has(t.id)) return [];
58
- let o = l(t, n, r);
59
- if (i) {
60
- let e = a ? a(t.id) : null;
61
- e && i.recordBounds(t.id, e);
62
- let r = n.x ?? (e ? e.x : 0), o = n.y ?? (e ? e.y : 0);
63
- i.recordOrigin(t.id, {
64
- x: r,
65
- y: o
66
- });
67
- }
68
- return y(o, n, e.alphaFor ? e.alphaFor(t.id) : 1);
69
- }, n = e.toPose ? {
70
- ...h,
71
- getPose: (e) => {
72
- let t = h.getNode(e);
73
- return t ? c(t) : h.getPose(e);
74
- }
75
- } : h, o = v(n, t, r, s?.forLayer, e.derivedPathOf, p(r, f));
76
- return d(u ? u(o, r, f) : o, r, f);
77
- }
78
- let g = e.objects ?? t?.getNodes() ?? [], _ = [], ee = p(r, f);
79
- for (let t of g) {
80
- if (m && m.has(t.id)) continue;
81
- let n = c(t);
82
- if (l && !ee?.(t, n)) {
83
- let i = l(t, n, r), a = y(i, n, e.alphaFor ? e.alphaFor(t.id) : 1);
84
- for (let e of a) _.push(e);
85
- }
86
- if (i) {
87
- let e = a ? a(t.id) : null;
88
- e && i.recordBounds(t.id, {
89
- x: e.x,
90
- y: e.y,
91
- width: e.width,
92
- height: e.height
93
- });
94
- let r = n.x ?? (e ? e.x : 0), o = n.y ?? (e ? e.y : 0);
95
- i.recordOrigin(t.id, {
96
- x: r,
97
- y: o
98
- });
99
- }
100
- }
101
- return d(u ? u(_, r, f) : _, r, f);
102
- }
103
- };
104
- }
105
- function Te(e, t, n, r, i) {
106
- let a = e.objects === void 0 && typeof t?.getLayers == "function" ? t.getLayers().map((e) => e.id) : null;
107
- return !a || a.length === 0 ? [{
108
- key: "scene",
109
- layer: E(e, t, n, r, i)
110
- }] : a.map((a) => ({
111
- key: _(a),
112
- layer: E(e, t, n, r, i, {
113
- id: _(a),
114
- forLayer: a
115
- })
116
- }));
117
- }
118
- function Ee(e, t) {
34
+ var ke = (e) => !0;
35
+ function Ae(e, t) {
119
36
  let n = e.hotkeyEngaged ?? e.active, r = n === null ? void 0 : e.registry[n];
120
37
  if (r?.cursor) {
121
- if (typeof r.cursor != "function") return T(r.cursor);
38
+ if (typeof r.cursor != "function") return y(r.cursor);
122
39
  if (t) try {
123
40
  let e = t();
124
- return T(r.cursor({
41
+ return y(r.cursor({
125
42
  ...e,
126
43
  scratch: null
127
44
  }));
@@ -130,131 +47,121 @@ function Ee(e, t) {
130
47
  }
131
48
  }
132
49
  }
133
- var De = {};
134
- function Oe(e, t, n, r, i) {
135
- return i ? i(e, t, n) : s(t, n, e.getBoundingClientRect(), r);
50
+ var je = {};
51
+ function Me(e, t, n, r, i) {
52
+ return i ? i(e, t, n) : o(t, n, e.getBoundingClientRect(), r);
136
53
  }
137
- function ke(r, s) {
138
- let { width: _, height: v, dpr: y, flattenTolerance: ue, contentVersion: me, syncPaint: T = !1, redrawOn: E, adapter: ke, layers: D, selection: Ae, boundsOf: je, boundsOfPose: Me, pickEvery: Ne, clientToWorld: Pe, paintInto: O, inputElement: k, poseDescriptor: Fe = l, className: Ie, style: Le, tabIndex: Re = 0, onFocus: ze, onBlur: Be, autoFocusOnPointerDown: Ve = !0, helpersRef: He, tools: A, view: j, defaultView: Ue, onViewChange: We, viewBounds: Ge, debug: Ke, debugSinkRef: qe, shaders: Je, previewIdsExtra: Ye, previewPoseExtra: Xe, gestureSource: Ze, backgroundFill: Qe, cursorCoordsHud: $e, pickHud: et, modalityHud: tt, pickBest: nt, decorationLayer: rt, getIsVisible: it, layerVisibility: at, layerOrder: ot, layerGroups: st } = r, ct = Ke === void 0 ? void 0 : JSON.stringify(Ke), M = S(() => ct === void 0 ? typeof window > "u" ? null : d(window.location.search) : JSON.parse(ct) || null, [ct]), N = S(() => M === null ? null : f(M), [M]), lt = w(N), ut = b(() => lt.current, [lt]), P = ke, F = C(null), I = C(null), dt = b((e) => {
139
- I.current = e, F.current = e;
140
- }, []), L = !!O;
141
- ge(() => {
142
- L && (F.current = k ?? null);
54
+ function b(o, be) {
55
+ let { width: y, height: b, dpr: x, flattenTolerance: Ne, contentVersion: Pe, syncPaint: Fe = !1, redrawOn: Ie, adapter: Le, layers: S, selection: Re, boundsOf: ze, boundsOfPose: Be, pickEvery: Ve, clientToWorld: He, paintInto: C, inputElement: w, poseDescriptor: Ue = s, className: We, style: Ge, tabIndex: Ke = 0, onFocus: qe, onBlur: Je, autoFocusOnPointerDown: Ye = !0, helpersRef: Xe, tools: T, view: Ze, defaultView: Qe, onViewChange: $e, viewBounds: et, debug: tt, debugSinkRef: nt, shaders: rt, previewIdsExtra: it, previewPoseExtra: at, gestureSource: ot, backgroundFill: st, cursorCoordsHud: ct, pickHud: lt, modalityHud: ut, pickBest: dt, decorationLayer: ft, getIsVisible: pt, layerVisibility: mt, layerOrder: ht, layerGroups: gt } = o, _t = tt === void 0 ? void 0 : JSON.stringify(tt), E = h(() => _t === void 0 ? typeof window > "u" ? null : oe(window.location.search) : JSON.parse(_t) || null, [_t]), D = h(() => E === null ? null : se(E), [E]), vt = _(D), yt = p(() => vt.current, [vt]), O = Le, k = g(null), A = g(null), bt = p((e) => {
56
+ A.current = e, k.current = e;
57
+ }, []), j = !!C;
58
+ Se(() => {
59
+ j && (k.current = w ?? null);
143
60
  });
144
- let ft = L ? O.canvas ?? null : null, pt = w(ft), mt = L ? {
145
- x: O.x,
146
- y: O.y
147
- } : null, R = w(mt), z = C(null), B = w({
148
- width: _,
149
- height: v
150
- }), ht = w(it), gt = w(at), _t = w(ot), vt = C(() => !1), { requestRedraw: V, subscribeFrame: yt, subscribeBeforePaint: bt } = ie(b(() => vt.current(), []), {
151
- syncPaint: T,
152
- target: F
153
- }), xt = w(me), St = C(0), Ct = b(() => St.current, []), [wt, Tt] = ve(0), H = C(/* @__PURE__ */ new Set()), Et = b((e) => (H.current.add(e), Tt((e) => e + 1), () => {
154
- H.current.delete(e), Tt((e) => e + 1);
155
- }), []), U = b((e, t, n, r, i, o) => {
156
- let s = [...H.current].reverse(), c = ht.current?.() ?? we, l = gt.current ?? De, u = _t.current;
157
- for (let d of s) {
158
- if (!d.hitTest || o && !o.includes(d) || !a(d, l, u)) continue;
159
- let s = d.hitTest(e, t, i, n, r, c);
61
+ let xt = j ? C.canvas ?? null : null, St = _(xt), Ct = j ? {
62
+ x: C.x,
63
+ y: C.y
64
+ } : null, M = _(Ct), N = g(null), P = _({
65
+ width: y,
66
+ height: b
67
+ }), wt = _(pt), F = _(mt), I = _(ht), Tt = g(() => !1), { requestRedraw: L, subscribeFrame: Et, subscribeBeforePaint: Dt, subscribeResume: Ot } = l(p(() => Tt.current(), []), {
68
+ syncPaint: Fe,
69
+ target: k
70
+ }), kt = _(Pe), At = g(0), jt = p(() => At.current, []), [Mt, Nt] = we(0), R = g(/* @__PURE__ */ new Set()), Pt = p((e) => (R.current.add(e), Nt((e) => e + 1), () => {
71
+ R.current.delete(e), Nt((e) => e + 1);
72
+ }), []), z = p((e, t, n, r, i, o) => {
73
+ let s = [...R.current].reverse(), c = wt.current?.() ?? ke, ee = F.current ?? je, te = I.current;
74
+ for (let l of s) {
75
+ if (!l.hitTest || o && !o.includes(l) || !a(l, ee, te)) continue;
76
+ let s = l.hitTest(e, t, i, n, r, c);
160
77
  if (s) return {
161
- layerId: d.id,
78
+ layerId: l.id,
162
79
  hit: s
163
80
  };
164
81
  }
165
82
  return null;
166
83
  }, [
167
- ht,
168
- _t,
169
- gt
170
- ]), Dt = b((e, t, n) => U(e, t, n?.view ?? W.current, n?.dims ?? B.current, z.current), [U, B]), W = C(o(j ?? Ue ?? {
171
- x: 0,
172
- y: 0,
173
- scale: {
174
- x: 1,
175
- y: 1
176
- }
177
- })), Ot = j !== void 0, kt = Ot ? o(j) : void 0, G = C(/* @__PURE__ */ new Set()), At = w(We), jt = w(Ge), Mt = w(Ot), Nt = C(!1), Pt = b((e) => {
178
- let t = o(typeof e == "function" ? e(W.current) : e), n = jt.current, r = n ? c(t, n, B.current) : t;
179
- if (Mt.current) {
180
- let e = At.current;
181
- Nt.current || (Nt.current = !0, console.warn(e ? "[weasel] setView not applied locally: this canvas is controlled by its `view` prop. The value was forwarded to `onViewChange` — update the prop from there, or drop it to take the imperative path." : "[weasel] setView ignored: this canvas is controlled by its `view` prop and has no `onViewChange`, so the value has nowhere to go. Update the prop, or drop it to take the imperative path.")), e?.(r);
182
- return;
183
- }
184
- W.current = r;
185
- for (let e of G.current) e(r);
186
- At.current?.(r), V();
187
- }, [
188
- V,
189
- B,
190
- Mt,
191
- At,
192
- jt
193
- ]), K = b(() => W.current, []), Ft = b((e) => (G.current.add(e), () => {
194
- G.current.delete(e);
195
- }), []);
196
- _e(() => {
197
- let e = F.current;
198
- if (e) return ee({
84
+ wt,
85
+ I,
86
+ F
87
+ ]), { viewRef: B, controlledView: Ft, setView: It, getView: V, subscribeView: Lt, adoptControlled: Rt, announceControlled: zt, clearSubscribers: Bt } = pe({
88
+ view: Ze,
89
+ defaultView: Qe,
90
+ onViewChange: $e,
91
+ viewBounds: et,
92
+ dimsRef: P,
93
+ requestRedraw: L
94
+ }), Vt = p((e, t, n) => z(e, t, n?.view ?? B.current, n?.dims ?? P.current, N.current), [
95
+ z,
96
+ P,
97
+ B
98
+ ]);
99
+ Ce(() => {
100
+ let e = k.current;
101
+ if (e) return fe({
199
102
  element: e,
200
- getView: K
103
+ getView: V
201
104
  });
202
105
  }, [
203
- L,
204
- k,
205
- K
106
+ j,
107
+ w,
108
+ V
206
109
  ]);
207
- let q = S(() => Ce(), []), It = S(() => le(q), [q]);
208
- x(() => q.subscribe(() => {
209
- V();
210
- }), [q, V]);
211
- let Lt = b(() => {
212
- let e = R.current, { width: t, height: n } = B.current;
110
+ let H = h(() => Oe(), []), Ht = h(() => ge(H), [H]);
111
+ m(() => H.subscribe(() => {
112
+ L();
113
+ }), [H, L]);
114
+ let Ut = p(() => {
115
+ let e = M.current, { width: t, height: n } = P.current;
213
116
  return {
214
117
  x: e?.x ?? 0,
215
118
  y: e?.y ?? 0,
216
119
  width: t,
217
120
  height: n
218
121
  };
219
- }, [B, R]);
220
- he(s, () => ({
221
- element: L ? k ?? null : F.current,
222
- surface: L ? O?.canvas ?? null : I.current,
223
- getSurfaceRect: Lt,
224
- requestRedraw: V,
225
- subscribeFrame: yt,
226
- subscribeBeforePaint: bt,
227
- registerLayer: Et,
228
- hitTestExtras: Dt,
229
- getView: K,
230
- setView: Pt,
231
- subscribeView: Ft,
232
- getPaintedVersion: Ct,
233
- paintedCursor: q,
234
- getDebug: ut
122
+ }, [P, M]);
123
+ xe(be, () => ({
124
+ element: j ? w ?? null : k.current,
125
+ surface: j ? C?.canvas ?? null : A.current,
126
+ getSurfaceRect: Ut,
127
+ requestRedraw: L,
128
+ subscribeFrame: Et,
129
+ subscribeBeforePaint: Dt,
130
+ subscribeResume: Ot,
131
+ registerLayer: Pt,
132
+ hitTestExtras: Vt,
133
+ getView: V,
134
+ setView: It,
135
+ subscribeView: Lt,
136
+ getPaintedVersion: jt,
137
+ paintedCursor: H,
138
+ getDebug: yt
235
139
  }), [
236
- F,
237
- I,
238
- L,
239
140
  k,
240
- O?.canvas,
241
- Lt,
242
- V,
243
- yt,
244
- bt,
141
+ A,
142
+ j,
143
+ w,
144
+ C?.canvas,
145
+ Ut,
146
+ L,
245
147
  Et,
246
148
  Dt,
247
- K,
149
+ Ot,
248
150
  Pt,
249
- Ft,
250
- Ct,
251
- q,
252
- ut
151
+ Vt,
152
+ V,
153
+ It,
154
+ Lt,
155
+ jt,
156
+ H,
157
+ yt
253
158
  ]);
254
- let Rt = oe(), zt = C(/* @__PURE__ */ new Map()), J = re(), Bt = S(() => ({
159
+ let Wt = ne();
160
+ ie(Wt, L), re(L, x);
161
+ let Gt = g(/* @__PURE__ */ new Map()), U = te(), Kt = h(() => ({
255
162
  getPose: () => ({}),
256
163
  getNodes: () => []
257
- }), []), Vt = P ?? Bt, Ht = S(() => ({
164
+ }), []), qt = O ?? Kt, Jt = h(() => ({
258
165
  current: [],
259
166
  get: () => [],
260
167
  contains: () => !1,
@@ -268,8 +175,8 @@ function ke(r, s) {
268
175
  getSelection: () => [],
269
176
  setSelection: () => {}
270
177
  }
271
- }), []), Ut = Ae ?? Ht, Wt = w(Vt), Gt = w(Pe), Kt = () => {
272
- let e = kt ?? W.current, t = L ? k ?? null : F.current, n = t ? t.getBoundingClientRect() : typeof DOMRect < "u" ? new DOMRect() : {
178
+ }), []), Yt = Re ?? Jt, Xt = _(qt), W = _(He), Zt = () => {
179
+ let e = Ft ?? B.current, t = j ? w ?? null : k.current, n = t ? t.getBoundingClientRect() : typeof DOMRect < "u" ? new DOMRect() : {
273
180
  x: 0,
274
181
  y: 0,
275
182
  width: 0,
@@ -288,105 +195,100 @@ function ke(r, s) {
288
195
  meta: !1,
289
196
  ctrl: !1
290
197
  },
291
- selection: Ut,
292
- adapter: Vt,
198
+ selection: Yt,
199
+ adapter: qt,
293
200
  applyOps: (e, t) => {
294
- u(Wt.current, e, t);
201
+ d(Xt.current, e, t);
295
202
  },
296
203
  view: e,
297
- setView: Pt,
204
+ setView: It,
298
205
  canvasRect: n,
299
- debug: N ?? void 0
206
+ debug: D ?? void 0
300
207
  };
301
- }, qt = w(Ne), Jt = w(nt), Yt = b((e, t) => {
302
- let n = qt.current;
208
+ }, Qt = _(Ve), $t = _(dt), en = p((e, t) => {
209
+ let n = Qt.current;
303
210
  if (!n) return [];
304
211
  let r = n(e, t);
305
212
  return r ? Array.isArray(r) ? r : [r] : [];
306
- }, [qt]), Xt = b((e, t) => Jt.current?.(e, t) ?? null, [Jt]), Zt = Ut.current, { helpers: Qt, chromeState: $t, effectiveBoundsOf: en, previewExtraRef: tn } = ne({
307
- adapter: P,
308
- geometry: Fe,
309
- boundsOf: je,
310
- boundsOfPose: Me,
311
- selection: Zt,
312
- tools: A,
313
- gestureSource: Ze,
314
- previewPoseExtra: Xe,
315
- previewIdsExtra: Ye,
316
- getIsVisible: () => ht.current?.() ?? we
317
- }), nn = { getDebug: () => N }, rn = {
318
- ...Qt,
319
- ...nn,
213
+ }, [Qt]), tn = p((e, t) => $t.current?.(e, t) ?? null, [$t]), nn = p((e, t) => {
214
+ let n = k.current;
215
+ return n ? Me(n, e, t, B.current, W.current) : [e, t];
216
+ }, [W, B]), rn = Yt.current, { helpers: an, chromeState: on, effectiveBoundsOf: sn, previewExtraRef: cn } = ee({
217
+ adapter: O,
218
+ geometry: Ue,
219
+ boundsOf: ze,
220
+ boundsOfPose: Be,
221
+ selection: rn,
222
+ tools: T,
223
+ gestureSource: ot,
224
+ previewPoseExtra: at,
225
+ previewIdsExtra: it,
226
+ getIsVisible: () => wt.current?.() ?? ke
227
+ }), ln = { getDebug: () => D }, un = {
228
+ ...an,
229
+ ...ln,
320
230
  viewId: null
321
- }, Y = C(!1), an = (e) => {
322
- Ve && e.currentTarget.focus(), Y.current = !0;
323
- }, on = ((e) => {
324
- if (Y.current) return;
325
- let t = e.currentTarget, n = W.current, [r, i] = Oe(t, e.clientX, e.clientY, n, Gt.current);
326
- for (let t of X) t.onUncapturedMove?.(r, i, e.nativeEvent, n, {
327
- width: _,
328
- height: v
329
- });
330
- }), sn = (e) => {
331
- Y.current = !1;
332
- for (let e of X) e.onUncapturedLeave?.();
333
- }, cn = (e) => {
334
- Y.current = !1;
335
- }, ln = S(() => Qe ? {
231
+ }, G = g(!1), dn = h(() => st ? {
336
232
  id: "scene-background-fill",
337
233
  label: "Background fill",
338
234
  space: "screen",
339
- draw: (e, t, n) => [{
340
- kind: "path",
341
- path: {
342
- kind: "rect",
235
+ draw: (e, t, r) => {
236
+ let i = {
343
237
  x: 0,
344
238
  y: 0,
345
- width: n.width,
346
- height: n.height
347
- },
348
- fill: Qe
349
- }]
350
- } : null, [Qe]), un = S(() => {
351
- let e = {}, t = D.grid;
352
- m(t) && (e.grid = t.layer);
353
- let n = D.cellHighlight;
354
- m(n) && (e.cellHighlight = n.layer);
355
- let r = D.scene, i;
356
- r && !m(r) && r.drawOne && (i = Te(r, P, N, en, () => {
357
- let e = te(A), t = tn.current.previewIdsExtra?.();
239
+ width: r.width,
240
+ height: r.height
241
+ }, a = n(st, i);
242
+ return a ? [{
243
+ kind: "path",
244
+ path: {
245
+ kind: "rect",
246
+ ...i
247
+ },
248
+ fill: a
249
+ }] : [];
250
+ }
251
+ } : null, [st]), { key: fn, sync: pn } = me(O), K = h(() => {
252
+ let e = {}, t = S.grid;
253
+ f(t) && (e.grid = t.layer);
254
+ let n = S.cellHighlight;
255
+ f(n) && (e.cellHighlight = n.layer);
256
+ let r = S.scene, i;
257
+ r && !f(r) && r.drawOne && (i = de(r, O, D, sn, () => {
258
+ let e = c(T), t = cn.current.previewIdsExtra?.();
358
259
  if (t) for (let n of t) e.add(n);
359
260
  return e.size > 0 ? e : null;
360
261
  }));
361
- let a = D.selectionOverlay;
362
- if (m(a)) e.selectionOverlay = a.layer;
262
+ let a = S.selectionOverlay;
263
+ if (f(a)) e.selectionOverlay = a.layer;
363
264
  else if (a !== null) {
364
265
  let t = a ?? {};
365
- e.selectionOverlay = se({
266
+ e.selectionOverlay = ce({
366
267
  ...t,
367
268
  ...t.poseById ? {
368
269
  getPose: t.poseById,
369
- poseDescriptor: t.poseDescriptor ?? Fe
270
+ poseDescriptor: t.poseDescriptor ?? Ue
370
271
  } : {}
371
272
  });
372
273
  }
373
- let o = h(D, e, i, ln ?? void 0);
374
- return rt && o.push(rt), A && g(o, e.selectionOverlay, A.getActiveOverlays), o;
274
+ let o = le(S, e, i, dn ?? void 0);
275
+ return ft && o.push(ft), T && ue(o, e.selectionOverlay, T.getActiveOverlays), o;
375
276
  }, [
277
+ S,
278
+ O,
279
+ sn,
376
280
  D,
377
- P,
378
- en,
379
- N,
380
- A,
381
- ln,
382
- rt,
383
- Fe,
384
- tn
385
- ]), dn = ye(b((e) => J?.subscribe(e) ?? (() => {}), [J]), () => J?.getVersion() ?? 0, () => 0), fn = w(un);
386
- x(() => {
387
- J?.attachSurface({
281
+ T,
282
+ dn,
283
+ ft,
284
+ Ue,
285
+ cn,
286
+ fn
287
+ ]), mn = Te(p((e) => U?.subscribe(e) ?? (() => {}), [U]), () => U?.getVersion() ?? 0, () => 0), hn = _(K);
288
+ m(() => {
289
+ U?.attachSurface({
388
290
  origin: () => {
389
- let e = F.current;
291
+ let e = k.current;
390
292
  if (!e) return {
391
293
  left: 0,
392
294
  top: 0
@@ -397,212 +299,225 @@ function ke(r, s) {
397
299
  top: t.top
398
300
  };
399
301
  },
400
- view: () => W.current,
401
- dims: () => B.current,
402
- layers: () => fn.current,
403
- requestRedraw: V,
404
- chromeState: () => z.current.getChromeState(),
405
- hitTestExtras: U,
302
+ view: () => B.current,
303
+ dims: () => P.current,
304
+ layers: () => hn.current,
305
+ requestRedraw: L,
306
+ chromeState: () => N.current.getChromeState(),
307
+ hitTestExtras: z,
406
308
  claimsAbove: (e, t) => {
407
- let n = W.current;
408
- return U(n.x + e / n.scale.x, n.y + t / n.scale.y, n, B.current, z.current) !== null;
309
+ let n = B.current;
310
+ return z(n.x + e / n.scale.x, n.y + t / n.scale.y, n, P.current, N.current) !== null;
409
311
  }
410
312
  });
411
313
  }, [
412
- J,
413
- F,
414
- V,
415
314
  U,
416
- B,
417
- fn
315
+ k,
316
+ L,
317
+ z,
318
+ P,
319
+ hn,
320
+ B
418
321
  ]);
419
- let X = S(() => {
420
- let e = J ? [...un, ...J.list().filter((e) => e.paint).map((e) => e.layer)] : un;
322
+ let q = h(() => {
323
+ let e = U ? [...K, ...U.list().filter((e) => e.paint).map((e) => e.layer)] : K;
421
324
  return [
422
- ...N && M ? [...e, p({
423
- sink: N,
424
- config: M
325
+ ...D && E ? [...e, ae({
326
+ sink: D,
327
+ config: E
425
328
  })] : e,
426
- ...H.current,
427
- It
329
+ ...R.current,
330
+ Ht
428
331
  ];
429
332
  }, [
430
- un,
431
- N,
432
- M,
433
- wt,
434
- J,
435
- dn,
436
- It
333
+ K,
334
+ D,
335
+ E,
336
+ Mt,
337
+ U,
338
+ mn,
339
+ Ht
437
340
  ]);
438
- x(() => {
341
+ m(() => {
439
342
  let e = () => {
440
- V();
343
+ L();
441
344
  }, t = [];
442
- for (let n of X) n.subscribe && t.push(n.subscribe(e));
345
+ for (let n of q) n.subscribe && t.push(n.subscribe(e));
443
346
  return () => {
444
347
  for (let e of t) e();
445
348
  };
446
- }, [X, V]), ae(E, V);
447
- let pn = Je?.map((e) => e.id).join("|") ?? "", mn = {
448
- layers: X,
449
- width: _,
450
- height: v,
451
- debugSink: N,
452
- frameStats: M?.fps === !0,
453
- dpr: y,
454
- layerVisibility: at,
455
- layerOrder: ot,
456
- layerGroups: st,
457
- shaders: Je,
458
- flattenTolerance: ue
459
- }, hn = w(mn);
460
- ge(() => {
461
- kt && (W.current = kt), z.current = rn, He && (He.current = rn), qe && (qe.current = N);
349
+ }, [q, L]), u(Ie, L);
350
+ let J = rt?.map((e) => e.id).join("|") ?? "", gn = {
351
+ layers: q,
352
+ width: y,
353
+ height: b,
354
+ debugSink: D,
355
+ frameStats: E?.fps === !0,
356
+ dpr: x,
357
+ layerVisibility: mt,
358
+ layerOrder: ht,
359
+ layerGroups: gt,
360
+ shaders: rt,
361
+ flattenTolerance: Ne
362
+ }, _n = _(gn);
363
+ Se(() => {
364
+ Rt(), N.current = un, Xe && (Xe.current = un), nt && (nt.current = D);
365
+ }), Ce(() => {
366
+ zt();
462
367
  });
463
- let gn = b(() => {
464
- let e = pt.current ?? I.current;
465
- if (!e) return !1;
466
- let t = R.current, { layers: r, width: a, height: o, debugSink: s, frameStats: c, dpr: l, layerVisibility: u, layerOrder: d, flattenTolerance: f, layerGroups: p, shaders: m } = hn.current;
467
- if (s?.beginFrame(), s) for (let e = 0; e < r.length; e++) {
468
- let t = r[e];
368
+ let vn = p(() => {
369
+ let e = St.current ?? A.current;
370
+ if (!e || pn()) return !1;
371
+ let t = M.current, { layers: n, width: a, height: o, debugSink: s, frameStats: c, dpr: ee, layerVisibility: te, layerOrder: l, flattenTolerance: ne, layerGroups: re, shaders: ie } = _n.current;
372
+ if (s?.beginFrame(), s) for (let e = 0; e < n.length; e++) {
373
+ let t = n[e];
469
374
  t.id !== "debug-overlay" && s.recordLayer(t.id, t.label, t.space ?? "world", e);
470
375
  }
471
- let h = Rt.bind(e, {
376
+ let u = Wt.bind(e, {
472
377
  width: a,
473
378
  height: o,
474
- dpr: l
379
+ dpr: ee
475
380
  }, {
476
381
  tile: t,
477
- flattenTolerance: f,
478
- shaders: m
382
+ flattenTolerance: ne,
383
+ shaders: ie
479
384
  });
480
- if (!h) return !1;
481
- let g = W.current, _ = s && c ? [] : void 0, ee = _ ? performance.now() : 0, te = i(r, z.current, u ?? De, d, g, {
385
+ if (!u) return !1;
386
+ let ae = B.current, d = s && c ? [] : void 0, oe = d ? performance.now() : 0, se = i(n, N.current, te ?? je, l, ae, {
482
387
  width: a,
483
388
  height: o
484
- }, zt.current, void 0, p, _);
485
- return h.render(te, n(g), _ ? { spans: _ } : void 0), s && _ && s.recordFrame(ce(_, h.lastFrameStats(), performance.now() - ee)), St.current = xt.current?.() ?? 0, !0;
389
+ }, Gt.current, void 0, re, d);
390
+ return u.render(se, r(ae), d ? { spans: d } : void 0), s && d && s.recordFrame(he(d, u.lastFrameStats(), performance.now() - oe)), At.current = kt.current?.() ?? 0, !0;
486
391
  }, [
487
- xt,
488
- Rt,
489
- hn,
490
- R,
491
- pt
392
+ kt,
393
+ Wt,
394
+ _n,
395
+ M,
396
+ St,
397
+ pn,
398
+ B
492
399
  ]);
493
- ge(() => {
494
- vt.current = gn;
495
- }), _e(() => {
496
- V();
400
+ Se(() => {
401
+ Tt.current = vn;
402
+ }), Ce(() => {
403
+ L();
497
404
  }, [
498
- X,
499
- _,
500
- v,
501
- j,
502
- N,
405
+ q,
503
406
  y,
504
- ue,
505
- at,
506
- ot,
507
- st,
508
- pn,
509
- T,
510
- $t,
511
- it,
512
- ft,
513
- mt?.x,
514
- mt?.y,
515
- V
516
- ]), x(() => {
517
- let e = zt.current, t = G.current;
407
+ b,
408
+ Ze,
409
+ D,
410
+ x,
411
+ Ne,
412
+ mt,
413
+ ht,
414
+ gt,
415
+ J,
416
+ Fe,
417
+ on,
418
+ pt,
419
+ xt,
420
+ Ct?.x,
421
+ Ct?.y,
422
+ L
423
+ ]), m(() => {
424
+ let e = Gt.current;
518
425
  return () => {
519
- e.clear(), t.clear();
426
+ e.clear(), Bt();
520
427
  };
521
- }, []), x(() => {
522
- if (!pn) return;
523
- let n = pn.split("|"), r = n.map(e);
428
+ }, [Bt]), m(() => {
429
+ if (!J) return;
430
+ let n = J.split("|"), r = n.map(e);
524
431
  return t.subscribe(() => {
525
432
  let t = n.map(e), i = t.some((e, t) => e !== r[t]);
526
- r = t, i && V();
433
+ r = t, i && L();
527
434
  });
528
- }, [pn, V]);
529
- let Z = A ? Ee(A, Kt) : void 0, Q = Z === void 0 ? void 0 : Z.kind === "css" ? Z.css : "none", _n = Q ? {
530
- ...Le,
531
- cursor: Q
532
- } : Le, $ = Z?.kind === "painted" ? Z : null, vn = $ ? `${$.glyph}|${$.angle}|${$.size}|${$.worldRadius}` : "";
533
- x(() => {
534
- q.setBase($);
535
- }, [q, vn]);
536
- let yn = w(X);
537
- x(() => {
538
- if (!L || !k) return;
539
- let e = k, t = () => {
540
- Ve && e.focus(), Y.current = !0;
541
- }, n = (t) => {
542
- if (Y.current) return;
543
- let n = W.current, [r, i] = Oe(e, t.clientX, t.clientY, n, Gt.current), a = B.current;
544
- for (let e of yn.current) e.onUncapturedMove?.(r, i, t, n, a);
545
- }, r = () => {
546
- Y.current = !1;
547
- }, i = () => {
548
- Y.current = !1;
549
- for (let e of yn.current) e.onUncapturedLeave?.();
550
- }, a = (e) => e.preventDefault();
435
+ }, [J, L]);
436
+ let Y = T ? Ae(T, Zt) : void 0, X = Y === void 0 ? void 0 : Y.kind === "css" ? Y.css : "none", yn = X ? {
437
+ ...Ge,
438
+ cursor: X
439
+ } : Ge, Z = Y?.kind === "painted" ? Y : null, bn = Z ? `${Z.glyph}|${Z.angle}|${Z.size}|${Z.worldRadius}` : "";
440
+ m(() => {
441
+ H.setBase(Z);
442
+ }, [H, bn]);
443
+ let Q = _(q), xn = p((e) => {
444
+ Ye && e.focus(), G.current = !0;
445
+ }, [Ye]), Sn = p(() => {
446
+ G.current = !1;
447
+ }, []), Cn = p((e, t) => {
448
+ if (G.current) return;
449
+ let n = B.current, [r, i] = Me(e, t.clientX, t.clientY, n, W.current), o = F.current ?? je;
450
+ for (let e of Q.current) e.onUncapturedMove && a(e, o, I.current) && e.onUncapturedMove(r, i, t, n, P.current);
451
+ }, [
452
+ W,
453
+ P,
454
+ I,
455
+ F,
456
+ Q,
457
+ B
458
+ ]), $ = p(() => {
459
+ G.current = !1;
460
+ for (let e of Q.current) e.onUncapturedLeave?.();
461
+ }, [Q]);
462
+ m(() => {
463
+ if (!j || !w) return;
464
+ let e = w, t = () => xn(e), n = (t) => Cn(e, t), r = Sn, i = $, a = (e) => e.preventDefault();
551
465
  return e.addEventListener("pointerdown", t), e.addEventListener("pointermove", n), e.addEventListener("pointerup", r), e.addEventListener("pointerleave", i), e.addEventListener("contextmenu", a), () => {
552
466
  e.removeEventListener("pointerdown", t), e.removeEventListener("pointermove", n), e.removeEventListener("pointerup", r), e.removeEventListener("pointerleave", i), e.removeEventListener("contextmenu", a);
553
467
  };
554
468
  }, [
555
- L,
556
- k,
557
- Ve,
558
- Gt,
559
- B,
560
- yn
561
- ]), x(() => {
562
- L && k && (k.style.cursor = Q ?? "");
469
+ j,
470
+ w,
471
+ xn,
472
+ Cn,
473
+ Sn,
474
+ $
475
+ ]), m(() => {
476
+ j && w && (w.style.cursor = X ?? "");
563
477
  }, [
564
- L,
565
- k,
566
- Q
478
+ j,
479
+ w,
480
+ X
567
481
  ]);
568
- let bn = /* @__PURE__ */ Se(be, { children: [
569
- $e && /* @__PURE__ */ xe(de, {
570
- canvasRef: F,
571
- ...L ? { anchorRef: F } : {},
572
- viewRef: W
482
+ let wn = /* @__PURE__ */ De(Ee, { children: [
483
+ ct && /* @__PURE__ */ v(_e, {
484
+ canvasRef: k,
485
+ ...j ? { anchorRef: k } : {},
486
+ viewRef: B,
487
+ toWorld: nn
573
488
  }),
574
- et && /* @__PURE__ */ xe(fe, {
575
- canvasRef: F,
576
- ...L ? { anchorRef: F } : {},
577
- viewRef: W,
578
- pickEvery: Yt,
579
- pickBest: Xt
489
+ lt && /* @__PURE__ */ v(ve, {
490
+ canvasRef: k,
491
+ ...j ? { anchorRef: k } : {},
492
+ viewRef: B,
493
+ toWorld: nn,
494
+ pickEvery: en,
495
+ pickBest: tn
580
496
  }),
581
- tt && /* @__PURE__ */ xe(pe, {
582
- canvasRef: F,
583
- ...L ? { anchorRef: F } : {},
584
- modeId: typeof tt == "object" ? tt.modeId : void 0
497
+ ut && /* @__PURE__ */ v(ye, {
498
+ canvasRef: k,
499
+ ...j ? { anchorRef: k } : {},
500
+ modeId: typeof ut == "object" ? ut.modeId : void 0
585
501
  })
586
502
  ] });
587
- return L ? k ? bn : null : /* @__PURE__ */ Se(be, { children: [/* @__PURE__ */ xe("canvas", {
588
- ref: dt,
589
- width: _,
590
- height: v,
591
- tabIndex: Re,
592
- className: Ie,
593
- style: _n,
594
- onFocus: ze,
595
- onBlur: Be,
596
- onPointerDown: an,
597
- onPointerMove: on,
598
- onPointerUp: cn,
599
- onPointerCancel: void 0,
600
- onPointerLeave: sn,
503
+ return j ? w ? wn : null : /* @__PURE__ */ De(Ee, { children: [/* @__PURE__ */ v("canvas", {
504
+ ref: bt,
505
+ width: y,
506
+ height: b,
507
+ tabIndex: Ke,
508
+ className: We,
509
+ style: yn,
510
+ onFocus: qe,
511
+ onBlur: Je,
512
+ onPointerDown: (e) => xn(e.currentTarget),
513
+ onPointerMove: (e) => Cn(e.currentTarget, e.nativeEvent),
514
+ onPointerUp: Sn,
515
+ onPointerLeave: $,
601
516
  onContextMenu: (e) => e.preventDefault()
602
- }), bn] });
517
+ }), wn] });
603
518
  }
604
- var D = me(ke);
519
+ var x = be(b);
605
520
  //#endregion
606
- export { D as Canvas, E as buildSceneLayer, Te as buildSceneLayers };
521
+ export { x as Canvas };
607
522
 
608
523
  //# sourceMappingURL=Canvas.js.map