@weasel-js/core 1.14.2 → 1.15.1

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 (856) hide show
  1. package/CHANGELOG.md +251 -0
  2. package/dist/WeaselProvider.js +4 -5
  3. package/dist/affordances/composeAffordanceLayer.js +1 -2
  4. package/dist/affordances/cornerResize.js +4 -5
  5. package/dist/affordances/hitAffordanceRegions.js +1 -2
  6. package/dist/affordances/pathAnchors.js +1 -3
  7. package/dist/affordances/pathAnchors.js.map +1 -1
  8. package/dist/affordances/rotateCursor.js +1 -2
  9. package/dist/affordances/rotationHandle.js +2 -3
  10. package/dist/animation/behaviors/coast.js +1 -2
  11. package/dist/animation/behaviors/coastByWrite.js +2 -3
  12. package/dist/animation/behaviors/coastOnTargets.js +2 -3
  13. package/dist/animation/behaviors/momentum.js +1 -2
  14. package/dist/animation/clipTargets.js +1 -2
  15. package/dist/animation/departures.js +2 -3
  16. package/dist/animation/poseHelpers.js +2 -3
  17. package/dist/animation/poseTarget.js +2 -3
  18. package/dist/animation/poseTransition.js +1 -2
  19. package/dist/animation/reflow.js +2 -3
  20. package/dist/animation/rewind.js +1 -2
  21. package/dist/animation/rig/bindRig.js +2 -3
  22. package/dist/animation/rig/rigNode.js +1 -2
  23. package/dist/animation/rig/rigSeat.js +1 -2
  24. package/dist/animation/rig/skinBinding.js +1 -2
  25. package/dist/animation/rig/useRig.js +2 -3
  26. package/dist/animation/wrappers/animateLifecycle.js +1 -2
  27. package/dist/animation/wrappers/animateOnSetPose.js +1 -2
  28. package/dist/animation/wrappers/instantPose.js +1 -2
  29. package/dist/animation/writtenPoseTarget.js +1 -2
  30. package/dist/barrel/interactions.js +2 -1
  31. package/dist/barrel/paths.js +1 -1
  32. package/dist/barrel/renderer.js +2 -2
  33. package/dist/barrel/routing.js +6 -4
  34. package/dist/barrel/scene.js +2 -2
  35. package/dist/barrel/text.js +5 -3
  36. package/dist/canvas/Canvas.js +10 -7
  37. package/dist/canvas/Canvas.js.map +1 -1
  38. package/dist/canvas/CanvasView.js +6 -7
  39. package/dist/canvas/CursorCoordsHud.js +2 -3
  40. package/dist/canvas/DrawCanvas.js +8 -5
  41. package/dist/canvas/DrawCanvas.js.map +1 -1
  42. package/dist/canvas/GestureReason.js +1 -2
  43. package/dist/canvas/GestureReason.module.js +1 -2
  44. package/dist/canvas/LeanSceneCanvas.js +2 -3
  45. package/dist/canvas/ModalityHud.js +2 -3
  46. package/dist/canvas/NodeShape.js +3 -4
  47. package/dist/canvas/PickHud.js +2 -3
  48. package/dist/canvas/SceneCanvas/ActionsProviderIfRoot.js +1 -2
  49. package/dist/canvas/SceneCanvas/CanvasKitProviders.js +3 -4
  50. package/dist/canvas/SceneCanvas/DepRegistryProviderIfRoot.js +1 -2
  51. package/dist/canvas/SceneCanvas/DevHuds.js +1 -2
  52. package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js +1 -2
  53. package/dist/canvas/SceneCanvas/SceneCanvasInput.js +8 -5
  54. package/dist/canvas/SceneCanvas/SceneCanvasInput.js.map +1 -1
  55. package/dist/canvas/SceneCanvas/SurfaceDeclarations.js +1 -2
  56. package/dist/canvas/SceneCanvas/brushOverlay.js +1 -2
  57. package/dist/canvas/SceneCanvas/builtinToolSets.js +7 -5
  58. package/dist/canvas/SceneCanvas/builtinToolSets.js.map +1 -1
  59. package/dist/canvas/SceneCanvas/canvasPassThrough.js +1 -2
  60. package/dist/canvas/SceneCanvas/contributionFrameHooks.js +1 -2
  61. package/dist/canvas/SceneCanvas/coordTrace.js +1 -2
  62. package/dist/canvas/SceneCanvas/defaultNodeProperties.js +4 -5
  63. package/dist/canvas/SceneCanvas/defaultNodeRouting.js +1 -2
  64. package/dist/canvas/SceneCanvas/defaultTextEditor.js +4 -5
  65. package/dist/canvas/SceneCanvas/describePresets.js +1 -2
  66. package/dist/canvas/SceneCanvas/dispatcherGestureBounds.js +1 -2
  67. package/dist/canvas/SceneCanvas/features.js +1 -2
  68. package/dist/canvas/SceneCanvas/insertPreviewCommands.js +1 -2
  69. package/dist/canvas/SceneCanvas/mergeLayers.js +1 -2
  70. package/dist/canvas/SceneCanvas/namedPresets.js +5 -6
  71. package/dist/canvas/SceneCanvas/poseGeometry.js +1 -2
  72. package/dist/canvas/SceneCanvas/poseRegistrars.js +1 -2
  73. package/dist/canvas/SceneCanvas/presets/arrange.js +2 -3
  74. package/dist/canvas/SceneCanvas/presets/baseline.js +1 -2
  75. package/dist/canvas/SceneCanvas/presets/chrome.js +1 -2
  76. package/dist/canvas/SceneCanvas/presets/composites.js +1 -2
  77. package/dist/canvas/SceneCanvas/presets/edit.js +4 -5
  78. package/dist/canvas/SceneCanvas/presets/ingest.js +1 -2
  79. package/dist/canvas/SceneCanvas/presets/paths.js +9 -10
  80. package/dist/canvas/SceneCanvas/presets/paths.js.map +1 -1
  81. package/dist/canvas/SceneCanvas/presets/select.js +1 -2
  82. package/dist/canvas/SceneCanvas/presets/toolDriven.js +2 -3
  83. package/dist/canvas/SceneCanvas/presets/tools.js +1 -2
  84. package/dist/canvas/SceneCanvas/presets/transform.js +2 -3
  85. package/dist/canvas/SceneCanvas/presets/view.js +2 -3
  86. package/dist/canvas/SceneCanvas/props.js +1 -2
  87. package/dist/canvas/SceneCanvas/scenePointQuery.js +2 -3
  88. package/dist/canvas/SceneCanvas/shapeGeneratorProperties.js +2 -3
  89. package/dist/canvas/SceneCanvas/shapeGeneratorProperties.js.map +1 -1
  90. package/dist/canvas/SceneCanvas/toolRegistry.js +2 -3
  91. package/dist/canvas/SceneCanvas/useActionTunings.js +1 -2
  92. package/dist/canvas/SceneCanvas/useActionsPropResolver.js +1 -2
  93. package/dist/canvas/SceneCanvas/useBakedScene.js +2 -3
  94. package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js +7 -8
  95. package/dist/canvas/SceneCanvas/useBuiltinTools.js +3 -2
  96. package/dist/canvas/SceneCanvas/useBuiltinTools.js.map +1 -1
  97. package/dist/canvas/SceneCanvas/useCanvasCamera.js +2 -3
  98. package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js +1 -2
  99. package/dist/canvas/SceneCanvas/useCanvasDispatcher.js +1 -2
  100. package/dist/canvas/SceneCanvas/useCanvasSelection.js +8 -6
  101. package/dist/canvas/SceneCanvas/useCanvasSelection.js.map +1 -1
  102. package/dist/canvas/SceneCanvas/useCanvasTools.js +2 -3
  103. package/dist/canvas/SceneCanvas/useChromeAffordances.js +2 -3
  104. package/dist/canvas/SceneCanvas/useContributionRoles.js +3 -2
  105. package/dist/canvas/SceneCanvas/useContributionRoles.js.map +1 -1
  106. package/dist/canvas/SceneCanvas/useDepartureGhostLayer.js +4 -5
  107. package/dist/canvas/SceneCanvas/useDispatcherOverlayLayer.js +2 -3
  108. package/dist/canvas/SceneCanvas/useHeldModifiers.js +1 -2
  109. package/dist/canvas/SceneCanvas/useMagnificationCheck.js +41 -0
  110. package/dist/canvas/SceneCanvas/useMagnificationCheck.js.map +1 -0
  111. package/dist/canvas/SceneCanvas/useNodeAtPoint.js +1 -2
  112. package/dist/canvas/SceneCanvas/useNodeKinds.js +2 -3
  113. package/dist/canvas/SceneCanvas/usePreviewGhostLayer.js +10 -11
  114. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js +1 -2
  115. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js +6 -7
  116. package/dist/canvas/SceneCanvas/useSceneCanvasPathEdit.js +1 -2
  117. package/dist/canvas/SceneCanvas/useSceneCanvasTools.js +1 -2
  118. package/dist/canvas/SceneCanvas/useSceneChrome.js +22 -11
  119. package/dist/canvas/SceneCanvas/useSceneChrome.js.map +1 -1
  120. package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js +6 -7
  121. package/dist/canvas/SceneCanvas/useScenePicking.js +5 -6
  122. package/dist/canvas/SceneCanvas/useSceneRedrawSources.js +1 -2
  123. package/dist/canvas/SceneCanvas/useSceneSelectTool.js +7 -8
  124. package/dist/canvas/SceneCanvas/useSceneSlotLayers.js +2 -3
  125. package/dist/canvas/SceneCanvas/useSceneStandardActions.js +28 -17
  126. package/dist/canvas/SceneCanvas/useSceneStandardActions.js.map +1 -1
  127. package/dist/canvas/SceneCanvas/useSelectionOverlayLayer.js +2 -3
  128. package/dist/canvas/SceneCanvas/useSurfaceRouting.js +1 -2
  129. package/dist/canvas/SceneCanvas/useSurfaceViewInputs.js +1 -2
  130. package/dist/canvas/SceneCanvas/useToolKeybindings.js +1 -2
  131. package/dist/canvas/SceneCanvas/useViewportActions.js +3 -4
  132. package/dist/canvas/SceneCanvas/worldPointAt.js +1 -2
  133. package/dist/canvas/SceneCanvas.js +22 -20
  134. package/dist/canvas/SceneCanvas.js.map +1 -1
  135. package/dist/canvas/SceneViewCanvas.js +7 -4
  136. package/dist/canvas/SceneViewCanvas.js.map +1 -1
  137. package/dist/canvas/SurfaceCanvas.js +1 -2
  138. package/dist/canvas/ViewMarker.js +1 -2
  139. package/dist/canvas/accentColor.js +1 -2
  140. package/dist/canvas/adapterDerivedPath.js +2 -3
  141. package/dist/canvas/adapterPickSource.js +1 -2
  142. package/dist/canvas/affordanceAt.js +2 -4
  143. package/dist/canvas/affordanceAt.js.map +1 -1
  144. package/dist/canvas/buildSceneLayer.js +4 -5
  145. package/dist/canvas/buildSceneTree.js +4 -5
  146. package/dist/canvas/canvasRenderer.js +1 -2
  147. package/dist/canvas/colorOverrides.js +1 -2
  148. package/dist/canvas/contextAttributes.js +1 -2
  149. package/dist/canvas/copiesAbove.js +1 -2
  150. package/dist/canvas/defaultDrawOne.js +1 -2
  151. package/dist/canvas/deps/areaSelect.js +5 -3
  152. package/dist/canvas/deps/areaSelect.js.map +1 -1
  153. package/dist/canvas/deps/booleans.js +5 -6
  154. package/dist/canvas/deps/changes.js +1 -2
  155. package/dist/canvas/deps/chromeRules.js +36 -0
  156. package/dist/canvas/deps/chromeRules.js.map +1 -0
  157. package/dist/canvas/deps/debug.js +1 -2
  158. package/dist/canvas/deps/dispatchSources.js +1 -2
  159. package/dist/canvas/deps/dispatcher.js +1 -2
  160. package/dist/canvas/deps/editAnchors.js +3 -10
  161. package/dist/canvas/deps/editAnchors.js.map +1 -1
  162. package/dist/canvas/deps/enteredGroup.js +1 -2
  163. package/dist/canvas/deps/geometryProjection.js +1 -2
  164. package/dist/canvas/deps/hitTestArea.js +6 -5
  165. package/dist/canvas/deps/hitTestArea.js.map +1 -1
  166. package/dist/canvas/deps/ingestion.js +1 -2
  167. package/dist/canvas/deps/insert.js +3 -4
  168. package/dist/canvas/deps/insertSite.js +3 -4
  169. package/dist/canvas/deps/kitSettings.js +1 -2
  170. package/dist/canvas/deps/lassoSelect.js +5 -3
  171. package/dist/canvas/deps/lassoSelect.js.map +1 -1
  172. package/dist/canvas/deps/layout.js +1 -2
  173. package/dist/canvas/deps/modeDefaultTool.js +22 -0
  174. package/dist/canvas/deps/modeDefaultTool.js.map +1 -0
  175. package/dist/canvas/deps/nodeAtPoint.js +1 -2
  176. package/dist/canvas/deps/pathEditCommits.js +3 -4
  177. package/dist/canvas/deps/pathLeaf.js +1 -2
  178. package/dist/canvas/deps/pathLeafDeps.js +2 -3
  179. package/dist/canvas/deps/poseDescriptor.js +1 -2
  180. package/dist/canvas/deps/previewPaths.js +1 -2
  181. package/dist/canvas/deps/resizePolicy.js +1 -2
  182. package/dist/canvas/deps/selectionSnapshot.js +22 -0
  183. package/dist/canvas/deps/selectionSnapshot.js.map +1 -0
  184. package/dist/canvas/deps/slice.js +5 -6
  185. package/dist/canvas/deps/snap.js +4 -4
  186. package/dist/canvas/deps/snap.js.map +1 -1
  187. package/dist/canvas/deps/surface.js +1 -2
  188. package/dist/canvas/deps/textEdit.js +1 -2
  189. package/dist/canvas/deps/transformFollowers.js +1 -2
  190. package/dist/canvas/deps/view.js +1 -2
  191. package/dist/canvas/derivedPath.js +6 -7
  192. package/dist/canvas/doubleClickTarget.js +1 -2
  193. package/dist/canvas/drawEnvelope.js +1 -2
  194. package/dist/canvas/drawnBounds.js +4 -5
  195. package/dist/canvas/getNodeAtPoint.js +1 -2
  196. package/dist/canvas/hostAnchor.js +1 -2
  197. package/dist/canvas/hud.module.js +1 -2
  198. package/dist/canvas/inheritedPaints.js +1 -2
  199. package/dist/canvas/insertPreviewExtent.js +1 -2
  200. package/dist/canvas/kitRequirements.js +1 -2
  201. package/dist/canvas/layerHover.js +1 -2
  202. package/dist/canvas/layerOrder.js +1 -2
  203. package/dist/canvas/layerSlots.js +1 -2
  204. package/dist/canvas/mountedCanvases.js +1 -2
  205. package/dist/canvas/nodeShapes/derivedPainter.js +2 -3
  206. package/dist/canvas/nodeShapes/imagePainter.js +1 -2
  207. package/dist/canvas/nodeShapes/measurePainter.js +2 -3
  208. package/dist/canvas/nodeShapes/memo.js +1 -2
  209. package/dist/canvas/nodeShapes/nodePaint.js +1 -2
  210. package/dist/canvas/nodeShapes/pathPainter.js +3 -4
  211. package/dist/canvas/nodeShapes/poseBox.js +1 -2
  212. package/dist/canvas/nodeShapes/rectFallbackPainter.js +1 -2
  213. package/dist/canvas/nodeShapes/shapePainter.js +2 -3
  214. package/dist/canvas/nodeShapes/strokedBounds.js +1 -2
  215. package/dist/canvas/nodeShapes/textPainter.js +1 -2
  216. package/dist/canvas/overChildren.js +1 -2
  217. package/dist/canvas/overlayRoleStrokes.js +1 -2
  218. package/dist/canvas/ownClip.js +1 -2
  219. package/dist/canvas/paintCull.js +1 -2
  220. package/dist/canvas/paintedCursorLayer.js +1 -2
  221. package/dist/canvas/pathOverlay.js +1 -2
  222. package/dist/canvas/pickIndex/nodeBroadBox.js +3 -4
  223. package/dist/canvas/pickIndex/scenePickIndex.js +3 -4
  224. package/dist/canvas/pickReach.js +13 -10
  225. package/dist/canvas/pickReach.js.map +1 -1
  226. package/dist/canvas/pickWalk.js +9 -8
  227. package/dist/canvas/pickWalk.js.map +1 -1
  228. package/dist/canvas/planeClips.js +1 -2
  229. package/dist/canvas/poseRotation.js +1 -2
  230. package/dist/canvas/publishPreviews.js +1 -2
  231. package/dist/canvas/rasterReadback.js +1 -2
  232. package/dist/canvas/rasterToPng.js +1 -2
  233. package/dist/canvas/renderDebugSnapshot.js +1 -2
  234. package/dist/canvas/renderNeeds.js +1 -2
  235. package/dist/canvas/renderSceneToPixels.js +5 -6
  236. package/dist/canvas/sceneAdapter.js +37 -27
  237. package/dist/canvas/sceneAdapter.js.map +1 -1
  238. package/dist/canvas/sceneClipboard.js +19 -7
  239. package/dist/canvas/sceneClipboard.js.map +1 -1
  240. package/dist/canvas/sceneLayerPaint.js +1 -2
  241. package/dist/canvas/scenePickReads.js +1 -2
  242. package/dist/canvas/scenePickSource.js +7 -8
  243. package/dist/canvas/scenePickSource.js.map +1 -1
  244. package/dist/canvas/sceneSlotWiring.js +2 -3
  245. package/dist/canvas/sceneViewRender.js +5 -6
  246. package/dist/canvas/shownNodes.js +1 -2
  247. package/dist/canvas/slopsDebugLayer.js +1 -2
  248. package/dist/canvas/surfaceContribution.js +1 -2
  249. package/dist/canvas/useCanvasElements.js +1 -2
  250. package/dist/canvas/useCanvasHandle.js +1 -2
  251. package/dist/canvas/useCanvasPaint.js +2 -3
  252. package/dist/canvas/useCanvasRenderer.js +1 -2
  253. package/dist/canvas/useCanvasSurface.js +22 -5
  254. package/dist/canvas/useCanvasSurface.js.map +1 -1
  255. package/dist/canvas/useCanvasView.js +2 -3
  256. package/dist/canvas/useClientToWorld.js +1 -2
  257. package/dist/canvas/useExtraLayers.js +1 -2
  258. package/dist/canvas/useFrameLoop.js +7 -9
  259. package/dist/canvas/useFrameLoop.js.map +1 -1
  260. package/dist/canvas/useHitObserver.js +1 -2
  261. package/dist/canvas/useHostAnchor.js +1 -2
  262. package/dist/canvas/useInFlightBounds.js +6 -6
  263. package/dist/canvas/useInFlightBounds.js.map +1 -1
  264. package/dist/canvas/useLateContentRedraw.js +1 -2
  265. package/dist/canvas/useLayerStack.js +2 -3
  266. package/dist/canvas/usePaintedCursor.js +1 -2
  267. package/dist/canvas/useRedrawOn.js +1 -2
  268. package/dist/canvas/useSceneAdapter.js +1 -2
  269. package/dist/canvas/useSceneLayerList.js +1 -2
  270. package/dist/canvas/useSurfaceInput.js +1 -2
  271. package/dist/canvas/useSurfaceSize.js +5 -5
  272. package/dist/canvas/useSurfaceSize.js.map +1 -1
  273. package/dist/canvas/useToolCursor.js +1 -2
  274. package/dist/canvas/useViewAim.js +2 -3
  275. package/dist/canvas/useViewHelpers.js +5 -4
  276. package/dist/canvas/useViewHelpers.js.map +1 -1
  277. package/dist/canvas/useViewLayerGate.js +1 -2
  278. package/dist/canvas/useViewNesting.js +1 -2
  279. package/dist/canvas/useViewRegistrySurface.js +1 -2
  280. package/dist/canvas/viewInputs.js +1 -2
  281. package/dist/canvas/viewMarkers.js +1 -2
  282. package/dist/canvas/viewRegistry.js +1 -2
  283. package/dist/canvas/viewSnap.js +1 -2
  284. package/dist/canvas/watchElementMove.js +1 -2
  285. package/dist/canvas/wrapNodeOutput.js +1 -2
  286. package/dist/core/adapters/testing/rootsTree.js +1 -2
  287. package/dist/core/applyOps.js +1 -2
  288. package/dist/core/device/targets.js +1 -2
  289. package/dist/core/device/useDeviceProfile.js +1 -2
  290. package/dist/core/device/useTargetBasePx.js +1 -2
  291. package/dist/core/device/watchDevicePixelRatio.js +1 -2
  292. package/dist/core/geometry/autoPoseDescriptor.js +2 -3
  293. package/dist/core/geometry/booleanOfPaths.js +1 -2
  294. package/dist/core/geometry/inkExtents.js +1 -2
  295. package/dist/core/geometry/pathPoseDescriptor.js +1 -2
  296. package/dist/core/geometry/poseDescriptor.js +1 -2
  297. package/dist/core/geometry/regionHit.js +36 -18
  298. package/dist/core/geometry/regionHit.js.map +1 -1
  299. package/dist/core/geometry/targetFrame.js +1 -2
  300. package/dist/core/geometry/unionBounds.js +1 -2
  301. package/dist/core/layers/backgroundFill.js +1 -2
  302. package/dist/core/layers/children.js +1 -2
  303. package/dist/core/layers/gateLayer.js +1 -2
  304. package/dist/core/layers/layerGroup.js +1 -2
  305. package/dist/core/layers/redrawSource.js +1 -2
  306. package/dist/core/layers/render.js +1 -2
  307. package/dist/core/layers/retain.js +1 -2
  308. package/dist/core/ops/arrange.js +1 -2
  309. package/dist/core/ops/create.js +2 -3
  310. package/dist/core/ops/createHistory.js +2 -3
  311. package/dist/core/ops/delete.js +2 -3
  312. package/dist/core/ops/nodeFlags.js +1 -2
  313. package/dist/core/ops/registry.js +1 -2
  314. package/dist/core/ops/reorder/algorithms.js +1 -2
  315. package/dist/core/ops/reorder/index.js +1 -2
  316. package/dist/core/ops/reorder/setChildOrder.js +1 -2
  317. package/dist/core/ops/reparent.js +1 -2
  318. package/dist/core/ops/select.js +1 -2
  319. package/dist/core/ops/setData.js +1 -2
  320. package/dist/core/ops/setDependsOn.js +1 -2
  321. package/dist/core/ops/setLayer.js +1 -2
  322. package/dist/core/ops/setLayout.js +1 -2
  323. package/dist/core/ops/setPath.js +1 -2
  324. package/dist/core/ops/setText.js +1 -2
  325. package/dist/core/ops/slot.js +1 -2
  326. package/dist/core/ops/transform.js +1 -2
  327. package/dist/core/ops/writtenBy.js +1 -2
  328. package/dist/core/pages/fitViewToPage.js +1 -2
  329. package/dist/core/pages/pageEdits.js +3 -4
  330. package/dist/core/pages/pages.js +1 -2
  331. package/dist/core/pages/pages.js.map +1 -1
  332. package/dist/core/pages/pagesLayer.js +1 -2
  333. package/dist/core/paint/meshKind.js +1 -2
  334. package/dist/core/paint/meshKindLazy.js +9 -18
  335. package/dist/core/paint/meshKindLazy.js.map +1 -1
  336. package/dist/core/paint/paintKindEntry.js +1 -2
  337. package/dist/core/paint/paintKinds.js +1 -2
  338. package/dist/core/paint/registerMesh.js +1 -2
  339. package/dist/core/scene/NodeProperties.js +1 -2
  340. package/dist/core/scene/NodeRouting.js +1 -2
  341. package/dist/core/scene/annotation.js +1 -2
  342. package/dist/core/scene/appliedLog.js +1 -2
  343. package/dist/core/scene/arrivalWindow.js +2 -3
  344. package/dist/core/scene/arrivals.js +1 -2
  345. package/dist/core/scene/booleanGroup.js +1 -2
  346. package/dist/core/scene/booleanOfChildren.js +1 -2
  347. package/dist/core/scene/boundOps.js +1 -2
  348. package/dist/core/scene/carryDescendants.js +2 -3
  349. package/dist/core/scene/clipNothing.js +1 -2
  350. package/dist/core/scene/composeFrame.js +1 -2
  351. package/dist/core/scene/composePose.js +1 -2
  352. package/dist/core/scene/declaredFieldSetters.js +1 -2
  353. package/dist/core/scene/depFrame.js +1 -2
  354. package/dist/core/scene/depMemo.js +1 -2
  355. package/dist/core/scene/dependents.js +1 -2
  356. package/dist/core/scene/derivedParts.js +1 -2
  357. package/dist/core/scene/derivedPath.js +2 -3
  358. package/dist/core/scene/docValues.js +1 -2
  359. package/dist/core/scene/documentOf.js +1 -2
  360. package/dist/core/scene/editMode.js +5 -3
  361. package/dist/core/scene/editMode.js.map +1 -1
  362. package/dist/core/scene/editPass.js +1 -2
  363. package/dist/core/scene/effectivePose.js +3 -4
  364. package/dist/core/scene/fieldEdits.js +1 -2
  365. package/dist/core/scene/fontReads.js +1 -2
  366. package/dist/core/scene/historyFacade.js +8 -52
  367. package/dist/core/scene/historyFacade.js.map +1 -1
  368. package/dist/core/scene/historyForm.js +1 -2
  369. package/dist/core/scene/inheritedPaint.js +1 -2
  370. package/dist/core/scene/kitOps.js +16 -15
  371. package/dist/core/scene/kitOps.js.map +1 -1
  372. package/dist/core/scene/kitRegistry.js +2 -3
  373. package/dist/core/scene/layerOps.js +1 -2
  374. package/dist/core/scene/layerStack.js +1 -2
  375. package/dist/core/scene/layoutPass.js +4 -5
  376. package/dist/core/scene/lockGuard.js +1 -2
  377. package/dist/core/scene/minSize.js +1 -2
  378. package/dist/core/scene/nestedHit.js +1 -2
  379. package/dist/core/scene/nodeAsShown.js +1 -2
  380. package/dist/core/scene/nodeFlags.js +1 -2
  381. package/dist/core/scene/nodeFnFields.js +1 -2
  382. package/dist/core/scene/nodeGates.js +3 -4
  383. package/dist/core/scene/nodeGates.js.map +1 -1
  384. package/dist/core/scene/nodeMemo.js +1 -2
  385. package/dist/core/scene/nodeStore.js +2 -3
  386. package/dist/core/scene/notifier.js +1 -2
  387. package/dist/core/scene/opTable.js +9 -10
  388. package/dist/core/scene/opTable.js.map +1 -1
  389. package/dist/core/scene/outerOps.js +3 -4
  390. package/dist/core/scene/outerOps.js.map +1 -1
  391. package/dist/core/scene/pathEffects/blend.js +1 -2
  392. package/dist/core/scene/pathEffects/derive.js +2 -3
  393. package/dist/core/scene/pathEffects/effects.js +1 -2
  394. package/dist/core/scene/pathEffects/foundHidden.js +1 -2
  395. package/dist/core/scene/pathEffects/textAlong.js +1 -2
  396. package/dist/core/scene/pathEffects/textAlongBands.js +1 -2
  397. package/dist/core/scene/plyStacks.js +1 -2
  398. package/dist/core/scene/poseFeed.js +1 -2
  399. package/dist/core/scene/poseHold.js +1 -2
  400. package/dist/core/scene/poseOverrides.js +1 -2
  401. package/dist/core/scene/posePlies.js +1 -2
  402. package/dist/core/scene/poseRemovals.js +1 -2
  403. package/dist/core/scene/poseSnapshot.js +1 -2
  404. package/dist/core/scene/poseWrites.js +17 -17
  405. package/dist/core/scene/poseWrites.js.map +1 -1
  406. package/dist/core/scene/reconcileSpecs.js +26 -3
  407. package/dist/core/scene/reconcileSpecs.js.map +1 -1
  408. package/dist/core/scene/recorder.js +1 -2
  409. package/dist/core/scene/renderOrder.js +1 -2
  410. package/dist/core/scene/sameValue.js +1 -2
  411. package/dist/core/scene/scene.js +11 -12
  412. package/dist/core/scene/scene.js.map +1 -1
  413. package/dist/core/scene/sceneChanges.js +1 -2
  414. package/dist/core/scene/sceneEdits.js +1 -2
  415. package/dist/core/scene/sceneJournals.js +77 -0
  416. package/dist/core/scene/sceneJournals.js.map +1 -0
  417. package/dist/core/scene/sceneMutators.js +2 -3
  418. package/dist/core/scene/scenePoseAdapter.js +1 -2
  419. package/dist/core/scene/sceneRecording.js +4 -4
  420. package/dist/core/scene/sceneRecording.js.map +1 -1
  421. package/dist/core/scene/sceneSelection.js +8 -5
  422. package/dist/core/scene/sceneSelection.js.map +1 -1
  423. package/dist/core/scene/sceneState.js +3 -4
  424. package/dist/core/scene/scrollOffsets.js +1 -2
  425. package/dist/core/scene/serialization.js +2 -3
  426. package/dist/core/scene/staleReplay.js +1 -2
  427. package/dist/core/scene/statedFields.js +1 -2
  428. package/dist/core/scene/strategyView.js +1 -2
  429. package/dist/core/scene/treeEdits.js +2 -3
  430. package/dist/core/scene/treeOrder.js +1 -2
  431. package/dist/core/scene/treeReads.js +1 -2
  432. package/dist/core/scene/treeShape.js +1 -2
  433. package/dist/core/scene/types.js +1 -2
  434. package/dist/core/scene/types.js.map +1 -1
  435. package/dist/core/scene/unionOfChildren.js +1 -2
  436. package/dist/core/scene/unitScopes.js +20 -4
  437. package/dist/core/scene/unitScopes.js.map +1 -1
  438. package/dist/core/scene/useScene.js +2 -3
  439. package/dist/core/scene/worldSave.js +2 -3
  440. package/dist/core/selection/chromeState.js +1 -2
  441. package/dist/core/selection/outermostSelection.js +56 -0
  442. package/dist/core/selection/outermostSelection.js.map +1 -0
  443. package/dist/core/selection/readOnlySelection.js +1 -2
  444. package/dist/core/selection/selectionTarget.js +1 -2
  445. package/dist/core/selection/usePublishSceneSelection.js +1 -2
  446. package/dist/core/selection/useSelection.js +1 -2
  447. package/dist/core/shapeKinds.js +1 -2
  448. package/dist/core/stableStringify.js +1 -2
  449. package/dist/core/stylus/stylus.js +1 -2
  450. package/dist/core/stylus/usePointerStylus.js +1 -2
  451. package/dist/core/usePaintKinds.js +1 -2
  452. package/dist/core/viewport/clampView.js +1 -2
  453. package/dist/core/viewport/clientToWorld.js +1 -2
  454. package/dist/core/viewport/createVelocityTracker.js +1 -2
  455. package/dist/core/viewport/fitToBounds.js +1 -2
  456. package/dist/core/viewport/fitViewToBounds.js +1 -2
  457. package/dist/core/viewport/interpolateView.js +1 -2
  458. package/dist/core/viewport/parallax.js +1 -2
  459. package/dist/core/viewport/sceneNodeClientRect.js +1 -2
  460. package/dist/core/viewport/screenSlop.js +1 -2
  461. package/dist/core/viewport/useAutoCenter.js +1 -2
  462. package/dist/core/viewport/useCanvasSize.js +48 -28
  463. package/dist/core/viewport/useCanvasSize.js.map +1 -1
  464. package/dist/core/viewport/useDecayLoop.js +1 -2
  465. package/dist/core/viewport/useNodeOverlayFrame.js +1 -2
  466. package/dist/core/viewport/useVelocityTracker.js +1 -2
  467. package/dist/core/viewport/useViewAnimation.js +3 -4
  468. package/dist/core/viewport/view.js +1 -2
  469. package/dist/core/viewport/viewTransform.js +1 -2
  470. package/dist/core/viewport/viewportWorldRect.js +1 -2
  471. package/dist/core/viewport/wheelHandler.js +1 -2
  472. package/dist/core/viewport/zoomAt.js +2 -3
  473. package/dist/core/viewport/zoomBounds.js +1 -2
  474. package/dist/debug/createDebugOverlayLayer.js +1 -2
  475. package/dist/debug/createDebugSink.js +1 -2
  476. package/dist/debug/defaultTheme.js +1 -2
  477. package/dist/debug/features.js +1 -2
  478. package/dist/debug/frameStats.js +1 -2
  479. package/dist/debug/overlayPanels.js +1 -2
  480. package/dist/debug/parseDebugFlags.js +1 -2
  481. package/dist/debug/useDebugSink.js +2 -3
  482. package/dist/{depSchema-DD9H89gX.d.ts → depSchema-C7a_OMt-.d.ts} +101 -65
  483. package/dist/devtools/handlers.js +1 -2
  484. package/dist/devtools/history.js +1 -2
  485. package/dist/devtools/hook.js +1 -2
  486. package/dist/devtools/label.js +1 -2
  487. package/dist/devtools/notices.js +1 -2
  488. package/dist/devtools/protocol.js +1 -2
  489. package/dist/devtools/registry.js +1 -2
  490. package/dist/devtools/root.js +1 -2
  491. package/dist/devtools/serialize.js +1 -2
  492. package/dist/devtools/session.js +2 -3
  493. package/dist/devtools/transport.js +1 -2
  494. package/dist/devtools/useDevtoolsRoot.js +1 -2
  495. package/dist/devtools-protocol.d.ts +1 -1
  496. package/dist/devtools-protocol.js +2 -2
  497. package/dist/devtools.d.ts +1 -1
  498. package/dist/devtools.js +1 -2
  499. package/dist/domains/chrome-caps/buildChromeCtx.js +1 -2
  500. package/dist/domains/chrome-caps/conditions.js +1 -2
  501. package/dist/domains/chrome-caps/defaults.js +1 -2
  502. package/dist/domains/chrome-caps/resolve.js +3 -3
  503. package/dist/domains/chrome-caps/resolve.js.map +1 -1
  504. package/dist/domains/chrome-caps/useChromeCaps.js +5 -4
  505. package/dist/domains/chrome-caps/useChromeCaps.js.map +1 -1
  506. package/dist/domains/chrome-caps/useHoverTracking.js +1 -2
  507. package/dist/domains/ingestion/contentHandlers.js +1 -2
  508. package/dist/domains/ingestion/ghost.js +2 -3
  509. package/dist/domains/ingestion/imageHandler.js +1 -2
  510. package/dist/domains/ingestion/kitHandlers.js +2 -3
  511. package/dist/domains/ingestion/openFilePicker.js +1 -2
  512. package/dist/domains/ingestion/placement.js +1 -2
  513. package/dist/domains/ingestion/svgHandler.js +1 -2
  514. package/dist/domains/ingestion/textHandler.js +1 -2
  515. package/dist/domains/ingestion/useCanvasIngestion.js +1 -2
  516. package/dist/domains/ingestion/weaselJsonHandler.js +2 -3
  517. package/dist/domains/longPress/longPressFeedback.js +1 -2
  518. package/dist/domains/measure/actionIds.js +1 -2
  519. package/dist/domains/measure/measureCommands.js +6 -7
  520. package/dist/domains/measure/measureContribution.js +3 -4
  521. package/dist/domains/measure/measureEdits.js +3 -4
  522. package/dist/domains/measure/measureGestures.js +2 -3
  523. package/dist/domains/measure/measureHit.js +3 -4
  524. package/dist/domains/measure/measureLayer.js +3 -4
  525. package/dist/domains/measure/measurement.js +1 -2
  526. package/dist/domains/measure/measurements.js +1 -2
  527. package/dist/domains/modes/modeLayers.js +1 -2
  528. package/dist/domains/modes/modeTriggers.js +1 -2
  529. package/dist/domains/pathEffects/effectSources.js +2 -3
  530. package/dist/domains/pathEffects/index.js +1 -2
  531. package/dist/domains/pathEffects/readSource.js +3 -4
  532. package/dist/domains/pathEffects/textItems.js +1 -2
  533. package/dist/domains/pathEffects/useEffectSourcesLayer.js +3 -4
  534. package/dist/domains/paths/anchorData.js +1 -2
  535. package/dist/domains/paths/anchorMarkers.js +1 -2
  536. package/dist/domains/paths/editablePath.js +3 -4
  537. package/dist/domains/paths/originProjection.js +1 -2
  538. package/dist/domains/paths/pathEditExtension.js +1 -2
  539. package/dist/domains/paths/pathEditState.js +1 -26
  540. package/dist/domains/paths/pathEditState.js.map +1 -1
  541. package/dist/domains/paths/pathEditingOverlayLayer.js +2 -3
  542. package/dist/domains/paths/pathLayer.js +1 -2
  543. package/dist/domains/paths/pathRepresentation.js +1 -2
  544. package/dist/domains/paths/pathSnap/glyphs.js +1 -2
  545. package/dist/domains/paths/pathSnap/pathSnapSource.js +1 -2
  546. package/dist/domains/paths/pathSnap/sceneIndex.js +1 -2
  547. package/dist/domains/paths/pathSnap/snapGeometry.js +2 -3
  548. package/dist/domains/paths/penPreviewLayer.js +1 -2
  549. package/dist/domains/paths/shapeGenerator.js +1 -2
  550. package/dist/domains/paths/strokeOutline.js +2 -3
  551. package/dist/domains/paths/useAnchorFields.js +1 -2
  552. package/dist/domains/paths/usePathEdit.js +2 -3
  553. package/dist/domains/poseRun/usePoseRun.js +1 -2
  554. package/dist/domains/selection/enteredGroupFrame.js +1 -2
  555. package/dist/domains/selection/enteredGroupScope.js +1 -2
  556. package/dist/domains/selection/enteredOperands.js +1 -2
  557. package/dist/domains/selection/handleCommands.js +2 -3
  558. package/dist/domains/selection/overlay.js +6 -7
  559. package/dist/domains/selection/selectionPose.js +2 -3
  560. package/dist/domains/snap/angle2d.js +1 -2
  561. package/dist/domains/snap/debugCandidates.js +1 -2
  562. package/dist/domains/snap/gather.js +1 -2
  563. package/dist/domains/snap/inputSubspace.js +2 -3
  564. package/dist/domains/snap/lazySession.js +1 -2
  565. package/dist/domains/snap/marks.js +1 -2
  566. package/dist/domains/snap/outcomeStore.js +1 -2
  567. package/dist/domains/snap/pointSnap.js +1 -2
  568. package/dist/domains/snap/probes2d.js +6 -2
  569. package/dist/domains/snap/probes2d.js.map +1 -1
  570. package/dist/domains/snap/readoutDraw.js +1 -2
  571. package/dist/domains/snap/readoutLayer.js +1 -2
  572. package/dist/domains/snap/registry.js +1 -2
  573. package/dist/domains/snap/resizeBox.js +1 -2
  574. package/dist/domains/snap/roles.js +1 -2
  575. package/dist/domains/snap/rotationSource.js +1 -2
  576. package/dist/domains/snap/sceneReads.js +13 -4
  577. package/dist/domains/snap/sceneReads.js.map +1 -1
  578. package/dist/domains/snap/sceneSession2d.js +6 -5
  579. package/dist/domains/snap/sceneSession2d.js.map +1 -1
  580. package/dist/domains/snap/screen.js +2 -3
  581. package/dist/domains/snap/session2d.js +4 -5
  582. package/dist/domains/snap/spanSnap.js +1 -2
  583. package/dist/domains/snap/stepAngles.js +1 -2
  584. package/dist/domains/text/editingDrawOne.js +1 -2
  585. package/dist/domains/text/hostTextEditors.js +1 -2
  586. package/dist/domains/text/index.js +2 -2
  587. package/dist/domains/text/sceneTextDrafts.js +1 -2
  588. package/dist/domains/text/textHitAt.js +4 -5
  589. package/dist/domains/text/textLayer.js +12 -2
  590. package/dist/domains/text/textLayer.js.map +1 -1
  591. package/dist/domains/text/useSceneTextEdit.js +4 -5
  592. package/dist/domains/viewports/aim.js +3 -4
  593. package/dist/domains/viewports/viewMarker.js +1 -2
  594. package/dist/domains/viewports/viewMarkerDrag.js +1 -2
  595. package/dist/domains/viewports/viewResolver.js +1 -2
  596. package/dist/domains/viewports/viewportLayer.js +1 -2
  597. package/dist/iconRegistry/IconRegistryProvider.js +1 -2
  598. package/dist/iconRegistry/useIconGlyph.js +1 -2
  599. package/dist/iconRegistry/useIconVariant.js +1 -2
  600. package/dist/icons.table.js +2 -3
  601. package/dist/icons.table.js.map +1 -1
  602. package/dist/icons.table.json +5 -0
  603. package/dist/icons2.table.js +1 -2
  604. package/dist/index.d.ts +160 -64
  605. package/dist/index.js +14 -9
  606. package/dist/input/keyState.js +1 -2
  607. package/dist/input/useKeyModifiers.js +1 -2
  608. package/dist/input/useKeyState.js +1 -2
  609. package/dist/interactions/actions/admitsChild.js +1 -2
  610. package/dist/interactions/actions/align/action.js +6 -7
  611. package/dist/interactions/actions/align/align.js +6 -7
  612. package/dist/interactions/actions/booleans/action.js +5 -4
  613. package/dist/interactions/actions/booleans/action.js.map +1 -1
  614. package/dist/interactions/actions/booleans/booleanGroupAction.js +2 -3
  615. package/dist/interactions/actions/booleans/booleans.js +1 -2
  616. package/dist/interactions/actions/booleans/commit.js +4 -5
  617. package/dist/interactions/actions/booleans/custom.js +2 -3
  618. package/dist/interactions/actions/booleans/keymap.js +1 -2
  619. package/dist/interactions/actions/booleans/operands.js +1 -2
  620. package/dist/interactions/actions/booleans/pieces.js +1 -2
  621. package/dist/interactions/actions/booleans/placement.js +1 -2
  622. package/dist/interactions/actions/booleans/useBooleans.js +1 -2
  623. package/dist/interactions/actions/booleans/useBooleansAdapter.js +1 -2
  624. package/dist/interactions/actions/clipboard/action.js +2 -3
  625. package/dist/interactions/actions/clipboard/clipboardOps.js +2 -3
  626. package/dist/interactions/actions/clipboard/materializePaste.js +1 -2
  627. package/dist/interactions/actions/clipboard/wireFormat.js +1 -2
  628. package/dist/interactions/actions/clone/action.js +7 -8
  629. package/dist/interactions/actions/clone/behaviors.js +4 -5
  630. package/dist/interactions/actions/defaultCommitAdapter.js +2 -3
  631. package/dist/interactions/actions/defaults/anchorEditing.js +6 -10
  632. package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
  633. package/dist/interactions/actions/defaults/anchorFields.js +1 -2
  634. package/dist/interactions/actions/defaults/anchorHandles.js +2 -3
  635. package/dist/interactions/actions/defaults/anchorJoin.js +2 -3
  636. package/dist/interactions/actions/defaults/areaSelect.js +6 -6
  637. package/dist/interactions/actions/defaults/areaSelect.js.map +1 -1
  638. package/dist/interactions/actions/defaults/bendSegment.js +4 -6
  639. package/dist/interactions/actions/defaults/bendSegment.js.map +1 -1
  640. package/dist/interactions/actions/defaults/cancelGesture.js +1 -2
  641. package/dist/interactions/actions/defaults/clearSelection.js +1 -2
  642. package/dist/interactions/actions/defaults/containerScroll.js +4 -5
  643. package/dist/interactions/actions/defaults/contextMenu.js +6 -7
  644. package/dist/interactions/actions/defaults/copySubtree.js +2 -3
  645. package/dist/interactions/actions/defaults/createPaintAction.js +3 -4
  646. package/dist/interactions/actions/defaults/delete.js +2 -3
  647. package/dist/interactions/actions/defaults/duplicate.js +5 -6
  648. package/dist/interactions/actions/defaults/enterGroup.js +2 -3
  649. package/dist/interactions/actions/defaults/enterPathEdit.js +1 -2
  650. package/dist/interactions/actions/defaults/enterTextEdit.js +1 -2
  651. package/dist/interactions/actions/defaults/escape.js +1 -2
  652. package/dist/interactions/actions/defaults/exitPathEdit.js +18 -3
  653. package/dist/interactions/actions/defaults/exitPathEdit.js.map +1 -1
  654. package/dist/interactions/actions/defaults/group.js +6 -7
  655. package/dist/interactions/actions/defaults/ingest.js +3 -4
  656. package/dist/interactions/actions/defaults/insertPathAnchor.js +2 -3
  657. package/dist/interactions/actions/defaults/nudge.js +3 -4
  658. package/dist/interactions/actions/defaults/nudgeSteps.js +2 -3
  659. package/dist/interactions/actions/defaults/nudgeSteps.js.map +1 -1
  660. package/dist/interactions/actions/defaults/pathEditMarks.js +1 -2
  661. package/dist/interactions/actions/defaults/pinchZoom.js +3 -4
  662. package/dist/interactions/actions/defaults/reorder.js +2 -3
  663. package/dist/interactions/actions/defaults/requiresSelection.js +1 -2
  664. package/dist/interactions/actions/defaults/segmentUnder.js +1 -2
  665. package/dist/interactions/actions/defaults/selectAll.js +1 -2
  666. package/dist/interactions/actions/defaults/selectDeep.js +1 -2
  667. package/dist/interactions/actions/defaults/setFill.js +1 -2
  668. package/dist/interactions/actions/defaults/setFillOpacity.js +1 -2
  669. package/dist/interactions/actions/defaults/setStroke.js +1 -2
  670. package/dist/interactions/actions/defaults/setStrokeOpacity.js +1 -2
  671. package/dist/interactions/actions/defaults/slice.js +1 -2
  672. package/dist/interactions/actions/defaults/sliceOps.js +1 -2
  673. package/dist/interactions/actions/defaults/toolActivate.js +1 -2
  674. package/dist/interactions/actions/defaults/toolResetToDefault.js +1 -2
  675. package/dist/interactions/actions/defaults/undoRedo.js +1 -2
  676. package/dist/interactions/actions/defaults/viewportDragPan.js +1 -2
  677. package/dist/interactions/actions/defaults/viewportWheelPan.js +1 -2
  678. package/dist/interactions/actions/defaults/viewportZoom.js +3 -4
  679. package/dist/interactions/actions/distribute/action.js +4 -5
  680. package/dist/interactions/actions/distribute/distribute.js +5 -6
  681. package/dist/interactions/actions/distribute/plan.js +1 -2
  682. package/dist/interactions/actions/drawnBoxes.js +4 -5
  683. package/dist/interactions/actions/dropVerdict.js +1 -2
  684. package/dist/interactions/actions/edit-anchors/action.js +7 -9
  685. package/dist/interactions/actions/edit-anchors/action.js.map +1 -1
  686. package/dist/interactions/actions/edit-anchors/extensionDrags.js +1 -2
  687. package/dist/interactions/actions/edit-anchors/geometry.js +1 -2
  688. package/dist/interactions/actions/edit-anchors/handleDrag.js +1 -2
  689. package/dist/interactions/actions/edit-anchors/handles.js +1 -2
  690. package/dist/interactions/actions/edit-anchors/params.js +1 -2
  691. package/dist/interactions/actions/edit-anchors/preview.js +1 -2
  692. package/dist/interactions/actions/edit-anchors/symmetry.js +1 -2
  693. package/dist/interactions/actions/flip/action.js +8 -9
  694. package/dist/interactions/actions/flip/helpers.js +1 -2
  695. package/dist/interactions/actions/geometryProjection.js +1 -2
  696. package/dist/interactions/actions/gestureFrames.js +3 -4
  697. package/dist/interactions/actions/gestureLifecycle.js +1 -2
  698. package/dist/interactions/actions/hitSelection.js +7 -3
  699. package/dist/interactions/actions/hitSelection.js.map +1 -1
  700. package/dist/interactions/actions/insert/action.js +27 -9
  701. package/dist/interactions/actions/insert/action.js.map +1 -1
  702. package/dist/interactions/actions/insert/commit.js +2 -3
  703. package/dist/interactions/actions/insert/extras.js +1 -2
  704. package/dist/interactions/actions/insert/frame.js +1 -2
  705. package/dist/interactions/actions/insert/geometry.js +1 -2
  706. package/dist/interactions/actions/insert/params.js +42 -0
  707. package/dist/interactions/actions/insert/params.js.map +1 -0
  708. package/dist/interactions/actions/insert/parent.js +1 -2
  709. package/dist/interactions/actions/insert/placeAction.js +5 -6
  710. package/dist/interactions/actions/insert/repositionAction.js +1 -2
  711. package/dist/interactions/actions/insert/rotateAction.js +1 -2
  712. package/dist/interactions/actions/insert/session.js +5 -6
  713. package/dist/interactions/actions/insert/shape.js +2 -3
  714. package/dist/interactions/actions/lasso-select/action.js +9 -9
  715. package/dist/interactions/actions/lasso-select/action.js.map +1 -1
  716. package/dist/interactions/actions/lasso-select/behaviors/selectFromLasso.js +2 -3
  717. package/dist/interactions/actions/magnification.js +37 -0
  718. package/dist/interactions/actions/magnification.js.map +1 -0
  719. package/dist/interactions/actions/move/action.js +2 -3
  720. package/dist/interactions/actions/move/behaviors/layoutDrop.js +2 -3
  721. package/dist/interactions/actions/move/behaviors/reparentOnDrop.js +2 -3
  722. package/dist/interactions/actions/move/behaviors/snapBackOrDelete.js +1 -2
  723. package/dist/interactions/actions/move/behaviors/snapToContainer.js +2 -3
  724. package/dist/interactions/actions/move/capture.js +6 -7
  725. package/dist/interactions/actions/move/commit/index.js +2 -3
  726. package/dist/interactions/actions/move/commit/layoutDrop.js +4 -5
  727. package/dist/interactions/actions/move/commit/layoutRelease.js +7 -8
  728. package/dist/interactions/actions/move/commit/rebase.js +2 -3
  729. package/dist/interactions/actions/move/commit/reparent.js +5 -6
  730. package/dist/interactions/actions/move/delta.js +2 -3
  731. package/dist/interactions/actions/move/frame.js +2 -3
  732. package/dist/interactions/actions/move/gestureAdapter.js +1 -2
  733. package/dist/interactions/actions/move/landedDescendants.js +2 -3
  734. package/dist/interactions/actions/move/layout/container.js +3 -4
  735. package/dist/interactions/actions/move/layout/dragged.js +2 -3
  736. package/dist/interactions/actions/move/layout/dropPass.js +5 -6
  737. package/dist/interactions/actions/move/layout/exits.js +2 -3
  738. package/dist/interactions/actions/move/layout/glide.js +2 -3
  739. package/dist/interactions/actions/move/layout/view.js +1 -2
  740. package/dist/interactions/actions/move/refusal.js +2 -3
  741. package/dist/interactions/actions/move/session.js +4 -5
  742. package/dist/interactions/actions/move/translate.js +2 -3
  743. package/dist/interactions/actions/moveNodes.js +5 -6
  744. package/dist/interactions/actions/notices.js +16 -0
  745. package/dist/interactions/actions/notices.js.map +1 -0
  746. package/dist/interactions/actions/outlines/createOutlines.js +9 -8
  747. package/dist/interactions/actions/outlines/createOutlines.js.map +1 -1
  748. package/dist/interactions/actions/outlines/createOutlinesAction.js +14 -10
  749. package/dist/interactions/actions/outlines/createOutlinesAction.js.map +1 -1
  750. package/dist/interactions/actions/outlines/outlineStroke.js +2 -3
  751. package/dist/interactions/actions/outlines/outlineStrokeAction.js +5 -5
  752. package/dist/interactions/actions/outlines/outlineStrokeAction.js.map +1 -1
  753. package/dist/interactions/actions/outlines/replaceWithPaths.js +5 -6
  754. package/dist/interactions/actions/outlines/strokeRegion.js +1 -2
  755. package/dist/interactions/actions/outlines/useCreateOutlinesAdapter.js +1 -2
  756. package/dist/interactions/actions/pathCommands/cutJoin.js +3 -4
  757. package/dist/interactions/actions/pathCommands/livePathEdit.js +3 -4
  758. package/dist/interactions/actions/pathCommands/pathNodes.js +2 -3
  759. package/dist/interactions/actions/pathCommands/simplifyOffset.js +2 -3
  760. package/dist/interactions/actions/pathGestureTags.js +1 -2
  761. package/dist/interactions/actions/planeInput.js +2 -3
  762. package/dist/interactions/actions/pointerState.js +1 -2
  763. package/dist/interactions/actions/poseDescriptorDep.js +1 -2
  764. package/dist/interactions/actions/poseFrame.js +3 -4
  765. package/dist/interactions/actions/resize/action.js +3 -4
  766. package/dist/interactions/actions/resize/aspect.js +1 -2
  767. package/dist/interactions/actions/resize/behaviors/clampMinSize.js +1 -2
  768. package/dist/interactions/actions/resize/boxFrame.js +1 -2
  769. package/dist/interactions/actions/resize/capture.js +7 -8
  770. package/dist/interactions/actions/resize/commit.js +3 -4
  771. package/dist/interactions/actions/resize/cornerHandles.js +1 -2
  772. package/dist/interactions/actions/resize/frame.js +7 -8
  773. package/dist/interactions/actions/resize/held.js +2 -3
  774. package/dist/interactions/actions/resize/minimum.js +1 -2
  775. package/dist/interactions/actions/resize/replay.js +1 -2
  776. package/dist/interactions/actions/resize/ruleBounds.js +1 -2
  777. package/dist/interactions/actions/resize/session.js +9 -10
  778. package/dist/interactions/actions/resolveOverlays.js +1 -2
  779. package/dist/interactions/actions/resolvePreviews.js +3 -4
  780. package/dist/interactions/actions/rotate/action.js +5 -6
  781. package/dist/interactions/actions/rotate/commit.js +2 -3
  782. package/dist/interactions/actions/rotate/frame.js +3 -4
  783. package/dist/interactions/actions/rotate/geometry.js +1 -2
  784. package/dist/interactions/actions/rotate/handle.js +2 -3
  785. package/dist/interactions/actions/rotate/replay.js +2 -3
  786. package/dist/interactions/actions/rotate/session.js +10 -11
  787. package/dist/interactions/actions/selectionSubtree.js +7 -22
  788. package/dist/interactions/actions/selectionSubtree.js.map +1 -1
  789. package/dist/interactions/actions/spatialReference.js +1 -2
  790. package/dist/interactions/actions/testUtils.js +1 -9
  791. package/dist/interactions/actions/testUtils.js.map +1 -1
  792. package/dist/interactions/actions/transform-again/action.js +5 -6
  793. package/dist/interactions/actions/transform-again/memory.js +1 -2
  794. package/dist/interactions/actions/transformFinish.js +1 -2
  795. package/dist/interactions/actions/useActionSet.js +1 -2
  796. package/dist/interactions/actions/useNotices.js +12 -0
  797. package/dist/interactions/actions/useNotices.js.map +1 -0
  798. package/dist/interactions/actions/useStandardActions.js +1 -2
  799. package/dist/interactions/gestures/dragGesture/dragGesture.js +1 -2
  800. package/dist/interactions/gestures/dragGesture/dragPointOf.js +1 -2
  801. package/dist/interactions/gestures/dragRadial/dragRadial.js +2 -3
  802. package/dist/interactions/gestures/dragRect/dragRect.js +2 -3
  803. package/dist/interactions/gestures/handleDrag/handleDrag.js +1 -2
  804. package/dist/interactions/gestures/pointerDrag/pointerDrag.js +1 -2
  805. package/dist/interactions/gestures/shared/originProjection.js +1 -2
  806. package/dist/interactions/gestures/shared/screenTolerance.js +1 -2
  807. package/dist/interactions/gestures/thresholdDrag/thresholdDrag.js +1 -2
  808. package/dist/kitSettingsSchema.js +4 -5
  809. package/dist/test-hook/createTestHook.js +1 -2
  810. package/dist/test-hook/install.js +1 -2
  811. package/dist/test-hook/useTestHook.js +1 -2
  812. package/dist/test-seams.d.ts +7 -14
  813. package/dist/test-seams.js +2 -2
  814. package/dist/tools/builtin/anchors/anchorsTool.js +30 -0
  815. package/dist/tools/builtin/anchors/anchorsTool.js.map +1 -0
  816. package/dist/tools/builtin/ellipse/useEllipseTool.js +2 -3
  817. package/dist/tools/builtin/eyedropper/useEyedropperTool.js +1 -2
  818. package/dist/tools/builtin/hand/dragPanContribution.js +1 -2
  819. package/dist/tools/builtin/hand/useHandTool.js +1 -2
  820. package/dist/tools/builtin/image/useImageTool.js +1 -2
  821. package/dist/tools/builtin/lasso/useLassoTool.js +1 -2
  822. package/dist/tools/builtin/line/useLineTool.js +2 -3
  823. package/dist/tools/builtin/measure/useMeasureTool.js +2 -3
  824. package/dist/tools/builtin/pen/penHandle.js +1 -2
  825. package/dist/tools/builtin/pen/usePenTool.js +6 -7
  826. package/dist/tools/builtin/pencil/usePencilTool.js +1 -2
  827. package/dist/tools/builtin/pickTopMostHit.js +1 -2
  828. package/dist/tools/builtin/polygon/usePolygonTool.js +2 -3
  829. package/dist/tools/builtin/pressTarget.js +1 -2
  830. package/dist/tools/builtin/rect/useRectTool.js +2 -3
  831. package/dist/tools/builtin/select/adapterPointQuery.js +3 -4
  832. package/dist/tools/builtin/select/collapseDeferred.js +1 -2
  833. package/dist/tools/builtin/select/groupEntry.js +2 -3
  834. package/dist/tools/builtin/select/pressDecision.js +3 -4
  835. package/dist/tools/builtin/select/pressDecision.js.map +1 -1
  836. package/dist/tools/builtin/select/selectionContributions.js +1 -2
  837. package/dist/tools/builtin/select/useSelectTool.js +5 -6
  838. package/dist/tools/builtin/shared/insertToolOptions.js +1 -2
  839. package/dist/tools/builtin/shared/pointerFollower.js +1 -2
  840. package/dist/tools/builtin/slice/useSliceTool.js +5 -6
  841. package/dist/tools/builtin/star/useStarTool.js +2 -3
  842. package/dist/tools/builtin/sticky/stickyNode.js +1 -2
  843. package/dist/tools/builtin/sticky/useStickyTool.js +2 -3
  844. package/dist/tools/builtin/text/useTextTool.js +1 -2
  845. package/dist/tools/index.js +4 -2
  846. package/dist/tools/overlayBinding.js +1 -2
  847. package/dist/tools/toolOptions.js +60 -0
  848. package/dist/tools/toolOptions.js.map +1 -0
  849. package/dist/tools/useKeybindings.js +1 -2
  850. package/dist/{types-DW14eu9B.d.ts → types-BUvUXZe5.d.ts} +3 -3
  851. package/dist/util/color.js +1 -2
  852. package/dist/util/paint.js +1 -2
  853. package/dist/version.js +2 -3
  854. package/package.json +27 -27
  855. package/dist/interactions/actions/defaults/pathEditTools.js +0 -60
  856. package/dist/interactions/actions/defaults/pathEditTools.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import { layoutDropOps } from "../commit/layoutDrop.js";
2
- import { runDropPass } from "../layout/dropPass.js";
3
2
  import { layoutReleaseOps } from "../commit/layoutRelease.js";
3
+ import { runDropPass } from "../layout/dropPass.js";
4
4
  import { landReleased, releasedPoses, stepGlide } from "../layout/glide.js";
5
5
  import { refusalOverlays } from "../refusal.js";
6
6
 
7
- //#region src/interactions/actions/move/behaviors/layoutDrop.ts
7
+ // src/interactions/actions/move/behaviors/layoutDrop.ts
8
8
  /**
9
9
  * The move behavior that drops the selection into the layout container under
10
10
  * it. Each move it resolves the drop and shows the siblings making room; on
@@ -75,6 +75,5 @@ function layoutDrop(move) {
75
75
  };
76
76
  }
77
77
 
78
- //#endregion
79
78
  export { layoutDrop };
80
79
  //# sourceMappingURL=layoutDrop.js.map
@@ -1,7 +1,7 @@
1
- import { refusalOverlays } from "../refusal.js";
2
1
  import { reparentOps, resolveDrop } from "../commit/reparent.js";
2
+ import { refusalOverlays } from "../refusal.js";
3
3
 
4
- //#region src/interactions/actions/move/behaviors/reparentOnDrop.ts
4
+ // src/interactions/actions/move/behaviors/reparentOnDrop.ts
5
5
  /**
6
6
  * The move behavior that reparents the selection under the node the pointer is
7
7
  * released over, when the binding's `reparentOnDrop` param asks for it. While
@@ -39,6 +39,5 @@ function reparentOnDrop(move) {
39
39
  };
40
40
  }
41
41
 
42
- //#endregion
43
42
  export { reparentOnDrop };
44
43
  //# sourceMappingURL=reparentOnDrop.js.map
@@ -2,7 +2,7 @@ import { createDeleteOp } from "../../../../core/ops/delete.js";
2
2
  import { AUTO_ORIGIN_PROJECTION } from "../../../gestures/shared/originProjection.js";
3
3
  import { getScratch, scratchKey, setScratch } from "@weasel-js/routing";
4
4
 
5
- //#region src/interactions/actions/move/behaviors/snapBackOrDelete.ts
5
+ // src/interactions/actions/move/behaviors/snapBackOrDelete.ts
6
6
  var SNAPSHOTS = scratchKey("snapBackOrDelete.snapshots");
7
7
  var INDEXES = scratchKey("snapBackOrDelete.indexes");
8
8
  /** Snap back to the origin pose, or delete, depending on where the drag is
@@ -47,6 +47,5 @@ function snapBackOrDelete(args) {
47
47
  };
48
48
  }
49
49
 
50
- //#endregion
51
50
  export { snapBackOrDelete };
52
51
  //# sourceMappingURL=snapBackOrDelete.js.map
@@ -1,9 +1,9 @@
1
- import { definesFrame } from "../../../../core/scene/effectivePose.js";
2
1
  import { createTransformOp } from "../../../../core/ops/transform.js";
2
+ import { definesFrame } from "../../../../core/scene/effectivePose.js";
3
3
  import { createReparentOp } from "../../../../core/ops/reparent.js";
4
4
  import { getScratch, scratchKey, setScratch } from "@weasel-js/routing";
5
5
 
6
- //#region src/interactions/actions/move/behaviors/snapToContainer.ts
6
+ // src/interactions/actions/move/behaviors/snapToContainer.ts
7
7
  var STATE = scratchKey("snapToContainer");
8
8
  function getState(ctx) {
9
9
  let s = getScratch(ctx.scratch, STATE);
@@ -154,6 +154,5 @@ function keptInPlace(ctx, parentId, id, moved, label) {
154
154
  return ops;
155
155
  }
156
156
 
157
- //#endregion
158
157
  export { snapToContainer };
159
158
  //# sourceMappingURL=snapToContainer.js.map
@@ -1,16 +1,16 @@
1
+ import { pointerStateOf } from "../pointerState.js";
2
+ import { effectivePose } from "../../../core/scene/effectivePose.js";
1
3
  import { toPlane } from "../../../core/viewport/parallax.js";
2
4
  import { composeChildFrame, composeWorldPose, frameAtOrAbove } from "../../../core/scene/composeFrame.js";
3
- import { effectivePose } from "../../../core/scene/effectivePose.js";
4
5
  import { sceneViewPoseAdapter } from "../../../core/scene/scenePoseAdapter.js";
5
- import { scenePoseFrame } from "../poseFrame.js";
6
- import { poseDescriptorOf } from "../poseDescriptorDep.js";
7
6
  import { invertPlane, planeOf } from "../planeInput.js";
7
+ import { sceneGestureFrames } from "../gestureFrames.js";
8
+ import { poseDescriptorOf } from "../poseDescriptorDep.js";
9
+ import { scenePoseFrame } from "../poseFrame.js";
8
10
  import { translateTargets } from "../selectionSubtree.js";
9
11
  import { catchGliding } from "./layout/glide.js";
10
- import { pointerStateOf } from "../pointerState.js";
11
- import { sceneGestureFrames } from "../gestureFrames.js";
12
12
 
13
- //#region src/interactions/actions/move/capture.ts
13
+ // src/interactions/actions/move/capture.ts
14
14
  /** Start pose of each root and descendant, the descendants in walk order, and
15
15
  * the offsets of any caught mid-glide. */
16
16
  function captureStartPoses(scene, ids, reflow, projection) {
@@ -124,6 +124,5 @@ function buildGestureContext(ctx, scene, ids, startPoses, adapter, readers) {
124
124
  };
125
125
  }
126
126
 
127
- //#endregion
128
127
  export { buildGestureContext, captureFrames, capturePlaneRefs, captureStartPoses };
129
128
  //# sourceMappingURL=capture.js.map
@@ -1,9 +1,9 @@
1
1
  import { commitGestureOps, reduceBehaviorEnd } from "../../gestureLifecycle.js";
2
2
  import { draggedStoredPose } from "../delta.js";
3
- import { rootTranslateOps, translateOps } from "../translate.js";
4
3
  import { landedDescendantOps } from "../landedDescendants.js";
4
+ import { rootTranslateOps, translateOps } from "../translate.js";
5
5
 
6
- //#region src/interactions/actions/move/commit/index.ts
6
+ // src/interactions/actions/move/commit/index.ts
7
7
  /** What the behaviors answer for the commit: ops, `null` to abort, or
8
8
  * `undefined` when every one of them leaves it to the default translate. */
9
9
  function endBehaviors(session, delta, at) {
@@ -43,6 +43,5 @@ function commitMove(input) {
43
43
  return ops.length > 0 && commitOps(ops);
44
44
  }
45
45
 
46
- //#endregion
47
46
  export { commitMove };
48
47
  //# sourceMappingURL=index.js.map
@@ -1,12 +1,12 @@
1
+ import { createReparentOp } from "../../../../core/ops/reparent.js";
2
+ import { createTransformOp } from "../../../../core/ops/transform.js";
3
+ import { asNodeId } from "../../../../core/scene/types.js";
1
4
  import { rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
2
5
  import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
3
- import { asNodeId } from "../../../../core/scene/types.js";
4
- import { createTransformOp } from "../../../../core/ops/transform.js";
5
- import { createReparentOp } from "../../../../core/ops/reparent.js";
6
6
  import { rebaseTransformOp } from "./rebase.js";
7
7
  import { opInWorld } from "../layout/view.js";
8
8
 
9
- //#region src/interactions/actions/move/commit/layoutDrop.ts
9
+ // src/interactions/actions/move/commit/layoutDrop.ts
10
10
  /** The ops of a drop a layout container accepted: reparents, then each
11
11
  * placement's `commitDrop`, then the source containers' reflow. */
12
12
  function layoutDropOps(session, pass) {
@@ -51,6 +51,5 @@ function layoutDropOps(session, pass) {
51
51
  ];
52
52
  }
53
53
 
54
- //#endregion
55
54
  export { layoutDropOps };
56
55
  //# sourceMappingURL=layoutDrop.js.map
@@ -1,17 +1,17 @@
1
+ import { createReparentOp } from "../../../../core/ops/reparent.js";
2
+ import { createTransformOp } from "../../../../core/ops/transform.js";
3
+ import { asNodeId } from "../../../../core/scene/types.js";
1
4
  import { composeChildFrame, composeWorldPose, rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
2
- import { poseDescriptorForNode } from "../../../../core/geometry/poseDescriptor.js";
3
5
  import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
4
- import { asNodeId } from "../../../../core/scene/types.js";
5
- import { createTransformOp } from "../../../../core/ops/transform.js";
6
- import { createReparentOp } from "../../../../core/ops/reparent.js";
7
- import { rebaseTransformOp } from "./rebase.js";
8
- import { boxOf, containerView, draggedInView, opInWorld } from "../layout/view.js";
9
6
  import { draggedWorldPose, grabbedPoseAdapter } from "../delta.js";
10
7
  import { groupBySourceContainer } from "../layout/dropPass.js";
11
8
  import { resolveLayoutExits } from "../layout/exits.js";
12
9
  import { translateOps, unreleasedIds } from "../translate.js";
10
+ import { rebaseTransformOp } from "./rebase.js";
11
+ import { poseDescriptorForNode } from "../../../../core/geometry/poseDescriptor.js";
12
+ import { boxOf, containerView, draggedInView, opInWorld } from "../layout/view.js";
13
13
 
14
- //#region src/interactions/actions/move/commit/layoutRelease.ts
14
+ // src/interactions/actions/move/commit/layoutRelease.ts
15
15
  function releaseFrom(session, delta, srcId, leaving, commitAdapter) {
16
16
  const { dx, dy } = delta;
17
17
  const pc = session.pc;
@@ -121,6 +121,5 @@ function layoutReleaseOps(session, delta, dropCenter) {
121
121
  ];
122
122
  }
123
123
 
124
- //#endregion
125
124
  export { layoutReleaseOps };
126
125
  //# sourceMappingURL=layoutRelease.js.map
@@ -1,7 +1,7 @@
1
- import { rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
2
1
  import { createTransformOp } from "../../../../core/ops/transform.js";
2
+ import { rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
3
3
 
4
- //#region src/interactions/actions/move/commit/rebase.ts
4
+ // src/interactions/actions/move/commit/rebase.ts
5
5
  /** A world-posed transform op as one in its node's stored frame: `from` under
6
6
  * `fromParent`, `to` under `toParent`. Any other op is returned as it is. */
7
7
  function rebaseTransformOp(op, adapter, pc, fromParent, toParent) {
@@ -16,6 +16,5 @@ function rebaseTransformOp(op, adapter, pc, fromParent, toParent) {
16
16
  });
17
17
  }
18
18
 
19
- //#endregion
20
19
  export { rebaseTransformOp };
21
20
  //# sourceMappingURL=rebase.js.map
@@ -1,16 +1,16 @@
1
+ import { createReparentOp } from "../../../../core/ops/reparent.js";
2
+ import { createSetLayerOp } from "../../../../core/ops/setLayer.js";
3
+ import { createTransformOp } from "../../../../core/ops/transform.js";
1
4
  import { planeToPlane } from "../../../../core/viewport/parallax.js";
2
5
  import { rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
3
6
  import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
4
7
  import { carryPose, planeOf } from "../../planeInput.js";
5
- import { createTransformOp } from "../../../../core/ops/transform.js";
6
- import { createReparentOp } from "../../../../core/ops/reparent.js";
7
8
  import { draggedWorldPose, grabbedPoseAdapter } from "../delta.js";
8
- import { refusalOf } from "../../dropVerdict.js";
9
9
  import { translateOps } from "../translate.js";
10
+ import { refusalOf } from "../../dropVerdict.js";
10
11
  import { worldBoundsOf } from "../refusal.js";
11
- import { createSetLayerOp } from "../../../../core/ops/setLayer.js";
12
12
 
13
- //#region src/interactions/actions/move/commit/reparent.ts
13
+ // src/interactions/actions/move/commit/reparent.ts
14
14
  /** Walk the hit chain to find the appropriate drop target. Returns
15
15
  * `null` when no reparent should happen (drop on empty canvas, or the
16
16
  * only hits are the moved subtree itself), and a refusal when the first
@@ -98,6 +98,5 @@ function reparentOps(session, target, mode, delta) {
98
98
  return [...ops, ...translateOps(session, session.cascadeIds, delta)];
99
99
  }
100
100
 
101
- //#endregion
102
101
  export { reparentOps, resolveDrop };
103
102
  //# sourceMappingURL=reparent.js.map
@@ -1,9 +1,9 @@
1
+ import { leadUnder, translatePoseViaDescriptor } from "../../../core/geometry/poseDescriptor.js";
1
2
  import { toPlane } from "../../../core/viewport/parallax.js";
2
3
  import { composeWorldPose } from "../../../core/scene/composeFrame.js";
3
- import { leadUnder, translatePoseViaDescriptor } from "../../../core/geometry/poseDescriptor.js";
4
4
  import { planeOf } from "../planeInput.js";
5
5
 
6
- //#region src/interactions/actions/move/delta.ts
6
+ // src/interactions/actions/move/delta.ts
7
7
  /**
8
8
  * The world drag `(dx, dy)` as a translation of `id`'s stored pose. A pose is
9
9
  * stored in its frame, so under a turned frame the two point different ways.
@@ -114,6 +114,5 @@ function draggedWorldPose(session, adapter, id, delta) {
114
114
  return translatePoseViaDescriptor(start, own.dx, own.dy, session.descriptorOf(id), leadFor(session, id, delta.dx, delta.dy));
115
115
  }
116
116
 
117
- //#endregion
118
117
  export { draggedStoredPose, draggedWorldPose, grabbedPoseAdapter, localDelta, planeDelta, storedLeadFor };
119
118
  //# sourceMappingURL=delta.js.map
@@ -1,8 +1,8 @@
1
- import { draggedStoredPose } from "./delta.js";
2
1
  import { pointerStateOf } from "../pointerState.js";
2
+ import { draggedStoredPose } from "./delta.js";
3
3
  import { snapMods } from "../../../domains/snap/roles.js";
4
4
 
5
- //#region src/interactions/actions/move/frame.ts
5
+ // src/interactions/actions/move/frame.ts
6
6
  function foldBehaviors(session, readers, moveCtx, dx, dy) {
7
7
  const posed = /* @__PURE__ */ new Map();
8
8
  const opaque = /* @__PURE__ */ new Set();
@@ -77,6 +77,5 @@ function nextFrame(session, readers, moveCtx) {
77
77
  };
78
78
  }
79
79
 
80
- //#endregion
81
80
  export { nextFrame };
82
81
  //# sourceMappingURL=frame.js.map
@@ -2,7 +2,7 @@ import { asNodeId } from "../../../core/scene/types.js";
2
2
  import { scenePoseTarget } from "../../../animation/poseTarget.js";
3
3
  import { defaultCommitAdapter } from "../defaultCommitAdapter.js";
4
4
 
5
- //#region src/interactions/actions/move/gestureAdapter.ts
5
+ // src/interactions/actions/move/gestureAdapter.ts
6
6
  /** `commit` is how a behavior's own `applyOps` batch lands; the returned
7
7
  * adapter is passed back so the ops apply through it. Left out, the adapter
8
8
  * has no `applyOps`. `selection` is as `defaultCommitAdapter` takes it. */
@@ -33,6 +33,5 @@ function moveGestureAdapter(scene, commit, selection) {
33
33
  return adapter;
34
34
  }
35
35
 
36
- //#endregion
37
36
  export { moveGestureAdapter };
38
37
  //# sourceMappingURL=gestureAdapter.js.map
@@ -1,8 +1,8 @@
1
+ import { createTransformOp } from "../../../core/ops/transform.js";
1
2
  import { translatePoseViaDescriptor } from "../../../core/geometry/poseDescriptor.js";
2
3
  import { carriedDescendants, sceneCarrySource } from "../../../core/scene/carryDescendants.js";
3
- import { createTransformOp } from "../../../core/ops/transform.js";
4
4
 
5
- //#region src/interactions/actions/move/landedDescendants.ts
5
+ // src/interactions/actions/move/landedDescendants.ts
6
6
  /**
7
7
  * Ops that bring along the descendants of every node `ops` transforms. A
8
8
  * layout drop or a behavior places a dragged root somewhere the drag delta
@@ -46,6 +46,5 @@ function landedDescendantOps(input, ops) {
46
46
  return out;
47
47
  }
48
48
 
49
- //#endregion
50
49
  export { landedDescendantOps };
51
50
  //# sourceMappingURL=landedDescendants.js.map
@@ -1,14 +1,14 @@
1
+ import { poseDescriptorForNode } from "../../../../core/geometry/poseDescriptor.js";
1
2
  import { toPlane } from "../../../../core/viewport/parallax.js";
2
3
  import { childFrameAt, composeWorldPose } from "../../../../core/scene/composeFrame.js";
3
- import { poseDescriptorForNode } from "../../../../core/geometry/poseDescriptor.js";
4
4
  import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
5
5
  import { planeOf } from "../../planeInput.js";
6
- import { boxOf, containerView, draggedInView } from "./view.js";
7
6
  import { carryDragged } from "./dragged.js";
8
7
  import { refusalOf } from "../../dropVerdict.js";
8
+ import { boxOf, containerView, draggedInView } from "./view.js";
9
9
  import { pointInPath } from "@weasel-js/geom";
10
10
 
11
- //#region src/interactions/actions/move/layout/container.ts
11
+ // src/interactions/actions/move/layout/container.ts
12
12
  function pointInBounds(b, at) {
13
13
  return at.x >= b.x && at.x < b.x + b.width && at.y >= b.y && at.y < b.y + b.height;
14
14
  }
@@ -120,6 +120,5 @@ function pickContainer(session, dragged, center) {
120
120
  return chooseContainer(scene, mode, candidates);
121
121
  }
122
122
 
123
- //#endregion
124
123
  export { pickContainer, pointInBounds };
125
124
  //# sourceMappingURL=container.js.map
@@ -1,11 +1,11 @@
1
+ import { poseDescriptorForNode, translatePoseViaDescriptor } from "../../../../core/geometry/poseDescriptor.js";
1
2
  import { toPlane } from "../../../../core/viewport/parallax.js";
2
3
  import { composeWorldPose } from "../../../../core/scene/composeFrame.js";
3
- import { poseDescriptorForNode, translatePoseViaDescriptor } from "../../../../core/geometry/poseDescriptor.js";
4
4
  import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
5
5
  import { carryPose, invertPlane, planeOf } from "../../planeInput.js";
6
6
  import { grabbedPoseAdapter, planeDelta } from "../delta.js";
7
7
 
8
- //#region src/interactions/actions/move/layout/dragged.ts
8
+ // src/interactions/actions/move/layout/dragged.ts
9
9
  /** Each dragged root in world, in the edited plane. */
10
10
  function gatherDragged(session, delta) {
11
11
  const scene = session.scene;
@@ -75,6 +75,5 @@ function selectionCenter(session, dragged) {
75
75
  };
76
76
  }
77
77
 
78
- //#endregion
79
78
  export { carryDragged, gatherDragged, selectionCenter };
80
79
  //# sourceMappingURL=dragged.js.map
@@ -1,14 +1,14 @@
1
+ import { asNodeId } from "../../../../core/scene/types.js";
1
2
  import { toPlane } from "../../../../core/viewport/parallax.js";
2
3
  import { composeWorldPose, rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
3
- import { poseDescriptorForNode, translatePoseViaDescriptor } from "../../../../core/geometry/poseDescriptor.js";
4
4
  import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
5
5
  import { carriedDescendants, sceneCarrySource } from "../../../../core/scene/carryDescendants.js";
6
- import { asNodeId } from "../../../../core/scene/types.js";
7
- import { boxOf, containerView, draggedInView, pointInView } from "./view.js";
8
- import { carryDragged, gatherDragged, selectionCenter } from "./dragged.js";
6
+ import { poseDescriptorForNode, translatePoseViaDescriptor } from "../../../../core/geometry/poseDescriptor.js";
9
7
  import { pickContainer } from "./container.js";
8
+ import { carryDragged, gatherDragged, selectionCenter } from "./dragged.js";
9
+ import { boxOf, containerView, draggedInView, pointInView } from "./view.js";
10
10
 
11
- //#region src/interactions/actions/move/layout/dropPass.ts
11
+ // src/interactions/actions/move/layout/dropPass.ts
12
12
  /** Dragged ids grouped by the container they are leaving, skipping any that
13
13
  * stay put (`exclude` is the destination) or that had no container. */
14
14
  function groupBySourceContainer(dragged, exclude) {
@@ -194,6 +194,5 @@ function runDropPass(session, delta, pointer) {
194
194
  };
195
195
  }
196
196
 
197
- //#endregion
198
197
  export { groupBySourceContainer, runDropPass };
199
198
  //# sourceMappingURL=dropPass.js.map
@@ -1,11 +1,11 @@
1
+ import { poseDescriptorForNode } from "../../../../core/geometry/poseDescriptor.js";
1
2
  import { toPlane } from "../../../../core/viewport/parallax.js";
2
3
  import { composeWorldPose } from "../../../../core/scene/composeFrame.js";
3
- import { poseDescriptorForNode } from "../../../../core/geometry/poseDescriptor.js";
4
4
  import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
5
5
  import { planeOf } from "../../planeInput.js";
6
6
  import { pointInBounds } from "./container.js";
7
7
 
8
- //#region src/interactions/actions/move/layout/exits.ts
8
+ // src/interactions/actions/move/layout/exits.ts
9
9
  /** Where each dragged root that leaves its layout container on release lands.
10
10
  * A root leaves when the drop center falls outside the body of the layout
11
11
  * container holding it, and lands under the innermost plain container beneath
@@ -61,6 +61,5 @@ function resolveLayoutExits(session, dropCenter, ids) {
61
61
  return out;
62
62
  }
63
63
 
64
- //#endregion
65
64
  export { resolveLayoutExits };
66
65
  //# sourceMappingURL=exits.js.map
@@ -1,8 +1,8 @@
1
- import { composeChildFrame, frameAtOrAbove, rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
2
1
  import { documentPose } from "../../../../core/scene/effectivePose.js";
2
+ import { composeChildFrame, frameAtOrAbove, rebaseLocalPose } from "../../../../core/scene/composeFrame.js";
3
3
  import { sceneViewPoseAdapter } from "../../../../core/scene/scenePoseAdapter.js";
4
4
 
5
- //#region src/interactions/actions/move/layout/glide.ts
5
+ // src/interactions/actions/move/layout/glide.ts
6
6
  /** Hold a node still gliding from an earlier reflow where it is shown. Returns
7
7
  * how far that stands from its document pose, or null when it is not gliding. */
8
8
  function catchGliding(scene, reflow, projection, id) {
@@ -64,6 +64,5 @@ function landReleased(session, reflow, released) {
64
64
  }
65
65
  }
66
66
 
67
- //#endregion
68
67
  export { catchGliding, landReleased, releasedPoses, stepGlide };
69
68
  //# sourceMappingURL=glide.js.map
@@ -2,7 +2,7 @@ import { translatePoseViaDescriptor } from "../../../../core/geometry/poseDescri
2
2
  import { createTransformOp } from "../../../../core/ops/transform.js";
3
3
  import { strategyView } from "../../../../core/scene/strategyView.js";
4
4
 
5
- //#region src/interactions/actions/move/layout/view.ts
5
+ // src/interactions/actions/move/layout/view.ts
6
6
  /** `pose`'s box as `g` measures it, and nothing else of it. */
7
7
  function boxOf(g, pose) {
8
8
  const b = g.getBounds(pose);
@@ -50,6 +50,5 @@ function opInWorld(view, op) {
50
50
  });
51
51
  }
52
52
 
53
- //#endregion
54
53
  export { boxOf, containerView, draggedInView, opInWorld, pointInView };
55
54
  //# sourceMappingURL=view.js.map
@@ -1,8 +1,8 @@
1
- import { composeWorldPose } from "../../../core/scene/composeFrame.js";
2
1
  import { poseDescriptorForNode } from "../../../core/geometry/poseDescriptor.js";
2
+ import { composeWorldPose } from "../../../core/scene/composeFrame.js";
3
3
  import { sceneViewPoseAdapter } from "../../../core/scene/scenePoseAdapter.js";
4
4
 
5
- //#region src/interactions/actions/move/refusal.ts
5
+ // src/interactions/actions/move/refusal.ts
6
6
  /** What a move draws over a refusal: the container's outline, refused, and the reason at the pointer. */
7
7
  function refusalOverlays(refusal, pointer) {
8
8
  const { x, y, width, height } = refusal.bounds;
@@ -47,6 +47,5 @@ function worldBoundsOf(session, id) {
47
47
  return poseDescriptorForNode(session.projection, node).getBounds(pose);
48
48
  }
49
49
 
50
- //#endregion
51
50
  export { refusalOverlays, worldBoundsOf };
52
51
  //# sourceMappingURL=refusal.js.map
@@ -1,8 +1,8 @@
1
+ import { gestureReaders } from "../../gestures/shared/screenTolerance.js";
1
2
  import { childVerdict } from "../admitsChild.js";
2
- import { nodeDescriptors, poseDescriptorOf } from "../poseDescriptorDep.js";
3
- import { transformFinisher } from "../transformFinish.js";
4
3
  import { commitGestureOps, readGestureLifecycle } from "../gestureLifecycle.js";
5
- import { gestureReaders } from "../../gestures/shared/screenTolerance.js";
4
+ import { transformFinisher } from "../transformFinish.js";
5
+ import { nodeDescriptors, poseDescriptorOf } from "../poseDescriptorDep.js";
6
6
  import { moveSources } from "../selectionSubtree.js";
7
7
  import { layoutDrop } from "./behaviors/layoutDrop.js";
8
8
  import { reparentOnDrop } from "./behaviors/reparentOnDrop.js";
@@ -11,7 +11,7 @@ import { moveGestureAdapter } from "./gestureAdapter.js";
11
11
  import { lazySnapSession } from "../../../domains/snap/lazySession.js";
12
12
  import { isPathEditPart, resolveParams } from "@weasel-js/routing";
13
13
 
14
- //#region src/interactions/actions/move/session.ts
14
+ // src/interactions/actions/move/session.ts
15
15
  function verdictOf(canDropInto, ids, scene) {
16
16
  const roots = ids;
17
17
  return (parent) => childVerdict(scene, parent, roots, canDropInto);
@@ -99,6 +99,5 @@ function beginMove(ctx, opts, frame) {
99
99
  };
100
100
  }
101
101
 
102
- //#endregion
103
102
  export { beginMove };
104
103
  //# sourceMappingURL=session.js.map
@@ -1,7 +1,7 @@
1
- import { localDelta, storedLeadFor } from "./delta.js";
2
1
  import { translateNodeOps } from "../moveNodes.js";
2
+ import { localDelta, storedLeadFor } from "./delta.js";
3
3
 
4
- //#region src/interactions/actions/move/translate.ts
4
+ // src/interactions/actions/move/translate.ts
5
5
  /** The default translate commit: one transform op per id, plus the data-held
6
6
  * geometry op when the `geometryProjection` seam is wired. */
7
7
  function translateOps(session, ids, delta) {
@@ -48,6 +48,5 @@ function unreleasedIds(session, released) {
48
48
  return out;
49
49
  }
50
50
 
51
- //#endregion
52
51
  export { rootTranslateOps, translateOps, unreleasedIds };
53
52
  //# sourceMappingURL=translate.js.map
@@ -1,12 +1,12 @@
1
1
  import { leadUnder, translatePoseViaDescriptor } from "../../core/geometry/poseDescriptor.js";
2
- import { scenePoseFrame } from "./poseFrame.js";
3
- import { nodeDescriptors, poseDescriptorOf } from "./poseDescriptorDep.js";
4
- import { commitTransformOps } from "./transformFinish.js";
5
2
  import { createTransformOp } from "../../core/ops/transform.js";
6
- import { moveSources, storedDelta, translateTargets } from "./selectionSubtree.js";
7
3
  import { geometryDataOp } from "./geometryProjection.js";
4
+ import { nodeDescriptors, poseDescriptorOf } from "./poseDescriptorDep.js";
5
+ import { scenePoseFrame } from "./poseFrame.js";
6
+ import { moveSources, storedDelta, translateTargets } from "./selectionSubtree.js";
7
+ import { commitTransformOps } from "./transformFinish.js";
8
8
 
9
- //#region src/interactions/actions/moveNodes.ts
9
+ // src/interactions/actions/moveNodes.ts
10
10
  /** The deps {@link moveNodes} reads; an action calling it declares these. */
11
11
  var MOVE_NODES_REQUIRES = [
12
12
  "scene",
@@ -98,6 +98,5 @@ function moveNodes(deps, ids, delta, label = "Move") {
98
98
  return ops.length > 0 && commitTransformOps(deps, ops, label);
99
99
  }
100
100
 
101
- //#endregion
102
101
  export { MOVE_NODES_REQUIRES, moveNodes, moveNodesOps, translateNodeOps };
103
102
  //# sourceMappingURL=moveNodes.js.map
@@ -0,0 +1,16 @@
1
+ // src/interactions/actions/notices.ts
2
+ /** Warn the user through `notices`, or under `tag` on the console without one. */
3
+ function warnUser(notices, tag, title, opts = {}) {
4
+ if (notices) notices.warn(title, opts);
5
+ else console.warn(`[${tag}] ${title}${opts.description ? ` — ${opts.description}` : ""}`);
6
+ }
7
+ /** Warn that text in `error`'s face could not be turned into outlines. */
8
+ function warnTextOutlines(notices, tag, error) {
9
+ warnUser(notices, tag, `Text in "${error.family}" can't be converted to outlines`, {
10
+ id: "text-outlines",
11
+ description: error.message
12
+ });
13
+ }
14
+
15
+ export { warnTextOutlines, warnUser };
16
+ //# sourceMappingURL=notices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notices.js","names":[],"sources":["../../../src/interactions/actions/notices.ts"],"sourcesContent":["/**\n * How an action tells the user something went wrong: the `notices` dep a host\n * publishes, shown however it shows such things (draw raises a toast). Without\n * one the message goes to the console.\n */\nimport type { TextOutlinesError } from '@weasel-js/text';\n\n/** What a notice says beyond its title. */\nexport interface NoticeOptions {\n /** One notice per id: a later one with the same id replaces it. */\n id?: string;\n description?: string;\n}\n\n/** The host's notice surface, read by actions whose result the user must hear about. */\nexport interface NoticesDep {\n warn(title: string, opts?: NoticeOptions): void;\n}\n\n/** Warn the user through `notices`, or under `tag` on the console without one. */\nexport function warnUser(notices: NoticesDep | undefined, tag: string, title: string, opts: NoticeOptions = {}): void {\n if (notices) notices.warn(title, opts);\n else console.warn(`[${tag}] ${title}${opts.description ? ` — ${opts.description}` : ''}`);\n}\n\n/** Warn that text in `error`'s face could not be turned into outlines. */\nexport function warnTextOutlines(notices: NoticesDep | undefined, tag: string, error: TextOutlinesError): void {\n warnUser(notices, tag, `Text in \"${error.family}\" can't be converted to outlines`, {\n id: 'text-outlines', description: error.message,\n });\n}\n"],"mappings":";;AAoBA,SAAgB,SAAS,SAAiC,KAAa,OAAe,OAAsB,CAAC,GAAS;CACpH,IAAI,SAAS,QAAQ,KAAK,OAAO,IAAI;MAChC,QAAQ,KAAK,IAAI,IAAI,IAAI,QAAQ,KAAK,cAAc,MAAM,KAAK,gBAAgB,IAAI;AAC1F;;AAGA,SAAgB,iBAAiB,SAAiC,KAAa,OAAgC;CAC7G,SAAS,SAAS,KAAK,YAAY,MAAM,OAAO,mCAAmC;EACjF,IAAI;EAAiB,aAAa,MAAM;CAC1C,CAAC;AACH"}
@@ -1,18 +1,20 @@
1
1
  import { replaceWithPaths } from "./replaceWithPaths.js";
2
2
  import { TextOutlinesError, textToPathsByPaint } from "@weasel-js/text";
3
3
 
4
- //#region src/interactions/actions/outlines/createOutlines.ts
4
+ // src/interactions/actions/outlines/createOutlines.ts
5
5
  /**
6
- * Convert every text node in the selection to outlines, as one batch labeled
7
- * "Create Outlines". Other selected nodes are left alone and stay selected.
8
- * All or nothing: if any text node's face cannot supply outlines the scene is
9
- * untouched and the error comes back in the result.
6
+ * Convert every text node among `ids` — the selection, when not given — to
7
+ * outlines, as one batch labeled "Create Outlines". Other nodes are left
8
+ * alone, and the selection keeps them; a selected text node's replacement
9
+ * takes its place there. All or nothing: if any text node's face cannot
10
+ * supply outlines the scene is untouched and the error comes back in the
11
+ * result.
10
12
  */
11
- function applyCreateOutlines(adapter) {
13
+ function applyCreateOutlines(adapter, ids) {
12
14
  const sel = [...adapter.getSelection()];
13
15
  const converted = [];
14
16
  try {
15
- for (const id of sel) {
17
+ for (const id of ids ?? sel) {
16
18
  const text = adapter.getTextSource(id);
17
19
  if (!text) continue;
18
20
  const paths = textToPathsByPaint(text.data, text.pose);
@@ -40,6 +42,5 @@ function applyCreateOutlines(adapter) {
40
42
  };
41
43
  }
42
44
 
43
- //#endregion
44
45
  export { applyCreateOutlines };
45
46
  //# sourceMappingURL=createOutlines.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createOutlines.js","names":[],"sources":["../../../../src/interactions/actions/outlines/createOutlines.ts"],"sourcesContent":["/**\n * Create Outlines: replace each selected text node with path nodes carrying\n * its glyph outlines, giving up editability for geometry — the destructive\n * conversion every vector editor has. One path per paint the text wears; one\n * undoable batch; the replacement takes the text node's slot, so stacking\n * order is unchanged.\n */\nimport type { Affine, Path, Rect } from '@weasel-js/geom';\nimport type { PathPaint } from 'canvas/nodeShapes/nodePaint';\nimport type { Op } from 'core/ops/types';\nimport type { NodeId } from 'core/scene/types';\nimport { textToPathsByPaint, TextOutlinesError, type TextNodeSource } from '@weasel-js/text';\nimport { replaceWithPaths, type PaintedPath } from './replaceWithPaths';\n\n/** What a path minted by an outline action must carry — see\n * {@link CreateOutlinesAdapter.createPathNode}. */\nexport interface OutlinePathSpec extends PathPaint {\n /** The parent the path goes under: the source's own, or the container\n * minted to hold a source's several paths. */\n parent: string | null;\n}\n\n/** What `applyCreateOutlines` and `applyOutlineStroke` read and write through. */\nexport interface CreateOutlinesAdapter {\n getSelection(): readonly NodeId[] | readonly string[];\n /** The text node behind `id`, or `undefined` for anything else. */\n getTextSource(id: NodeId): TextNodeSource | undefined;\n /**\n * Optional: the world-space path of the path node behind `id`, and the\n * paint it wears. Outline Stroke reads both, and passes over a node that\n * lacks either.\n */\n getWorldPath?(id: NodeId): Path | undefined;\n getPaint?(id: NodeId): PathPaint | undefined;\n /**\n * Optional: the frame the node behind `id` draws its stroke in, as the\n * matrix taking that frame to world (`poseFrameOf`); null or absent for a\n * node drawn straight. Outline Stroke skews and stretches a world-width\n * stroke with it. Without it every stroke is outlined in world.\n */\n getStrokeFrame?(id: NodeId): Affine | null | undefined;\n /**\n * Mint one path node of node `sourceId`'s outlines. `path` is in world\n * space. The node must wear `spec`'s fill and stroke — a text whose runs\n * differ in paint gets one path per paint, and a filled node whose stroke\n * is outlined gets one for the fill and one for the stroke — and sit under\n * `spec.parent`. The kit places it; only the consumer knows its data shape,\n * so anything else of the source's `data` worth keeping is the adapter's to\n * copy: onto this path when it stands alone in the source's slot, onto the\n * container when `createContainerNode` minted one.\n */\n createPathNode(path: Path, sourceId: NodeId, spec: OutlinePathSpec): { id: string };\n /**\n * Mint the container that holds one source's several paths, under `parent`.\n * `bounds` is the world envelope of the paths. The kit puts the container in\n * the source's slot and the paths inside it, back to front. Without this,\n * the paths are laid flat in that slot instead.\n */\n createContainerNode?(sourceId: NodeId, spec: { parent: string | null; bounds: Rect }): { id: string };\n /** Full node for `id`, so undo restores the text node whole. */\n getNode(id: string): { id: string } | undefined | null;\n /** The tree: each path is inserted at its source node's index among its\n * parent's children. */\n getParent(id: string): string | null;\n getChildren(parentId: string | null): string[];\n applyOps?(ops: Op[], label?: string): void;\n setSelection?(ids: NodeId[]): void;\n insertNode?(node: { id: string }, index?: number): void;\n removeNode?(id: string): void;\n}\n\n/** Outcome of {@link applyCreateOutlines}. */\nexport type CreateOutlinesResult =\n /** `resultIds` are what replaced the text nodes at their level — a path,\n * a container, or a run of flat paths each — which is also what is now\n * selected in the text nodes' place. */\n | { kind: 'applied'; resultIds: string[] }\n /** Nothing selected is text with ink. */\n | { kind: 'noop'; reason: 'no-text' }\n /** Some selected text has no outline geometry; nothing was changed. */\n | { kind: 'failed'; reason: 'text-outlines'; error: TextOutlinesError };\n\n/**\n * Convert every text node in the selection to outlines, as one batch labeled\n * \"Create Outlines\". Other selected nodes are left alone and stay selected.\n * All or nothing: if any text node's face cannot supply outlines the scene is\n * untouched and the error comes back in the result.\n */\nexport function applyCreateOutlines(adapter: CreateOutlinesAdapter): CreateOutlinesResult {\n const sel = [...adapter.getSelection()] as NodeId[];\n const converted: { id: NodeId; paths: PaintedPath[] }[] = [];\n try {\n for (const id of sel) {\n const text = adapter.getTextSource(id);\n if (!text) continue;\n const paths = textToPathsByPaint(text.data, text.pose);\n if (paths.length > 0) converted.push({ id, paths });\n }\n } catch (err) {\n if (err instanceof TextOutlinesError) return { kind: 'failed', reason: 'text-outlines', error: err };\n throw err;\n }\n if (converted.length === 0) return { kind: 'noop', reason: 'no-text' };\n\n const replaced = replaceWithPaths(adapter, sel, converted, 'Create Outlines');\n return { kind: 'applied', resultIds: converted.flatMap((c) => replaced.get(c.id)!) };\n}\n"],"mappings":";;;;;;;;;;AAwFA,SAAgB,oBAAoB,SAAsD;CACxF,MAAM,MAAM,CAAC,GAAG,QAAQ,aAAa,CAAC;CACtC,MAAM,YAAoD,CAAC;CAC3D,IAAI;EACF,KAAK,MAAM,MAAM,KAAK;GACpB,MAAM,OAAO,QAAQ,cAAc,EAAE;GACrC,IAAI,CAAC,MAAM;GACX,MAAM,QAAQ,mBAAmB,KAAK,MAAM,KAAK,IAAI;GACrD,IAAI,MAAM,SAAS,GAAG,UAAU,KAAK;IAAE;IAAI;GAAM,CAAC;EACpD;CACF,SAAS,KAAK;EACZ,IAAI,eAAe,mBAAmB,OAAO;GAAE,MAAM;GAAU,QAAQ;GAAiB,OAAO;EAAI;EACnG,MAAM;CACR;CACA,IAAI,UAAU,WAAW,GAAG,OAAO;EAAE,MAAM;EAAQ,QAAQ;CAAU;CAErE,MAAM,WAAW,iBAAiB,SAAS,KAAK,WAAW,iBAAiB;CAC5E,OAAO;EAAE,MAAM;EAAW,WAAW,UAAU,SAAS,MAAM,SAAS,IAAI,EAAE,EAAE,CAAE;CAAE;AACrF"}
1
+ {"version":3,"file":"createOutlines.js","names":[],"sources":["../../../../src/interactions/actions/outlines/createOutlines.ts"],"sourcesContent":["/**\n * Create Outlines: replace each selected text node with path nodes carrying\n * its glyph outlines, giving up editability for geometry — the destructive\n * conversion every vector editor has. One path per paint the text wears; one\n * undoable batch; the replacement takes the text node's slot, so stacking\n * order is unchanged.\n */\nimport type { Affine, Path, Rect } from '@weasel-js/geom';\nimport type { PathPaint } from 'canvas/nodeShapes/nodePaint';\nimport type { Op } from 'core/ops/types';\nimport type { NodeId } from 'core/scene/types';\nimport { textToPathsByPaint, TextOutlinesError, type TextNodeSource } from '@weasel-js/text';\nimport { replaceWithPaths, type PaintedPath } from './replaceWithPaths';\n\n/** What a path minted by an outline action must carry — see\n * {@link CreateOutlinesAdapter.createPathNode}. */\nexport interface OutlinePathSpec extends PathPaint {\n /** The parent the path goes under: the source's own, or the container\n * minted to hold a source's several paths. */\n parent: string | null;\n}\n\n/** What `applyCreateOutlines` and `applyOutlineStroke` read and write through. */\nexport interface CreateOutlinesAdapter {\n getSelection(): readonly NodeId[] | readonly string[];\n /** The text node behind `id`, or `undefined` for anything else. */\n getTextSource(id: NodeId): TextNodeSource | undefined;\n /**\n * Optional: the world-space path of the path node behind `id`, and the\n * paint it wears. Outline Stroke reads both, and passes over a node that\n * lacks either.\n */\n getWorldPath?(id: NodeId): Path | undefined;\n getPaint?(id: NodeId): PathPaint | undefined;\n /**\n * Optional: the frame the node behind `id` draws its stroke in, as the\n * matrix taking that frame to world (`poseFrameOf`); null or absent for a\n * node drawn straight. Outline Stroke skews and stretches a world-width\n * stroke with it. Without it every stroke is outlined in world.\n */\n getStrokeFrame?(id: NodeId): Affine | null | undefined;\n /**\n * Mint one path node of node `sourceId`'s outlines. `path` is in world\n * space. The node must wear `spec`'s fill and stroke — a text whose runs\n * differ in paint gets one path per paint, and a filled node whose stroke\n * is outlined gets one for the fill and one for the stroke — and sit under\n * `spec.parent`. The kit places it; only the consumer knows its data shape,\n * so anything else of the source's `data` worth keeping is the adapter's to\n * copy: onto this path when it stands alone in the source's slot, onto the\n * container when `createContainerNode` minted one.\n */\n createPathNode(path: Path, sourceId: NodeId, spec: OutlinePathSpec): { id: string };\n /**\n * Mint the container that holds one source's several paths, under `parent`.\n * `bounds` is the world envelope of the paths. The kit puts the container in\n * the source's slot and the paths inside it, back to front. Without this,\n * the paths are laid flat in that slot instead.\n */\n createContainerNode?(sourceId: NodeId, spec: { parent: string | null; bounds: Rect }): { id: string };\n /** Full node for `id`, so undo restores the text node whole. */\n getNode(id: string): { id: string } | undefined | null;\n /** The tree: each path is inserted at its source node's index among its\n * parent's children. */\n getParent(id: string): string | null;\n getChildren(parentId: string | null): string[];\n applyOps?(ops: Op[], label?: string): void;\n setSelection?(ids: NodeId[]): void;\n insertNode?(node: { id: string }, index?: number): void;\n removeNode?(id: string): void;\n}\n\n/** Outcome of {@link applyCreateOutlines}. */\nexport type CreateOutlinesResult =\n /** `resultIds` are what replaced the text nodes at their level — a path,\n * a container, or a run of flat paths each — which is also what is now\n * selected in the text nodes' place. */\n | { kind: 'applied'; resultIds: string[] }\n /** Nothing selected is text with ink. */\n | { kind: 'noop'; reason: 'no-text' }\n /** Some selected text has no outline geometry; nothing was changed. */\n | { kind: 'failed'; reason: 'text-outlines'; error: TextOutlinesError };\n\n/**\n * Convert every text node among `ids` — the selection, when not given — to\n * outlines, as one batch labeled \"Create Outlines\". Other nodes are left\n * alone, and the selection keeps them; a selected text node's replacement\n * takes its place there. All or nothing: if any text node's face cannot\n * supply outlines the scene is untouched and the error comes back in the\n * result.\n */\nexport function applyCreateOutlines(adapter: CreateOutlinesAdapter, ids?: readonly NodeId[]): CreateOutlinesResult {\n const sel = [...adapter.getSelection()] as NodeId[];\n const converted: { id: NodeId; paths: PaintedPath[] }[] = [];\n try {\n for (const id of ids ?? sel) {\n const text = adapter.getTextSource(id);\n if (!text) continue;\n const paths = textToPathsByPaint(text.data, text.pose);\n if (paths.length > 0) converted.push({ id, paths });\n }\n } catch (err) {\n if (err instanceof TextOutlinesError) return { kind: 'failed', reason: 'text-outlines', error: err };\n throw err;\n }\n if (converted.length === 0) return { kind: 'noop', reason: 'no-text' };\n\n const replaced = replaceWithPaths(adapter, sel, converted, 'Create Outlines');\n return { kind: 'applied', resultIds: converted.flatMap((c) => replaced.get(c.id)!) };\n}\n"],"mappings":";;;;;;;;;;;;AA0FA,SAAgB,oBAAoB,SAAgC,KAA+C;CACjH,MAAM,MAAM,CAAC,GAAG,QAAQ,aAAa,CAAC;CACtC,MAAM,YAAoD,CAAC;CAC3D,IAAI;EACF,KAAK,MAAM,MAAM,OAAO,KAAK;GAC3B,MAAM,OAAO,QAAQ,cAAc,EAAE;GACrC,IAAI,CAAC,MAAM;GACX,MAAM,QAAQ,mBAAmB,KAAK,MAAM,KAAK,IAAI;GACrD,IAAI,MAAM,SAAS,GAAG,UAAU,KAAK;IAAE;IAAI;GAAM,CAAC;EACpD;CACF,SAAS,KAAK;EACZ,IAAI,eAAe,mBAAmB,OAAO;GAAE,MAAM;GAAU,QAAQ;GAAiB,OAAO;EAAI;EACnG,MAAM;CACR;CACA,IAAI,UAAU,WAAW,GAAG,OAAO;EAAE,MAAM;EAAQ,QAAQ;CAAU;CAErE,MAAM,WAAW,iBAAiB,SAAS,KAAK,WAAW,iBAAiB;CAC5E,OAAO;EAAE,MAAM;EAAW,WAAW,UAAU,SAAS,MAAM,SAAS,IAAI,EAAE,EAAE,CAAE;CAAE;AACrF"}