@weasel-js/core 1.11.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (586) hide show
  1. package/CHANGELOG.md +611 -0
  2. package/README.md +1 -1
  3. package/dist/WeaselProvider.js +1 -1
  4. package/dist/affordances/pathAnchors.js +10 -6
  5. package/dist/affordances/pathAnchors.js.map +1 -1
  6. package/dist/animation/index.js +3 -3
  7. package/dist/animation/rig/bindRig.js +1 -1
  8. package/dist/animation/rig/rigNode.js.map +1 -1
  9. package/dist/barrel/canvas.js +9 -3
  10. package/dist/barrel/interactions.js +5 -4
  11. package/dist/barrel/paint.js +4 -4
  12. package/dist/barrel/paths.js +10 -6
  13. package/dist/barrel/renderer.js +5 -3
  14. package/dist/barrel/routing.js +7 -12
  15. package/dist/barrel/scene.js +9 -5
  16. package/dist/barrel/text.js +2 -2
  17. package/dist/barrel/viewport.js +9 -4
  18. package/dist/canvas/Canvas.js +5 -2
  19. package/dist/canvas/Canvas.js.map +1 -1
  20. package/dist/canvas/CanvasView.js +23 -34
  21. package/dist/canvas/CanvasView.js.map +1 -1
  22. package/dist/canvas/ModalityHud.js +1 -1
  23. package/dist/canvas/NodeShape.js +4 -1
  24. package/dist/canvas/NodeShape.js.map +1 -1
  25. package/dist/canvas/SceneCanvas/ActionsProviderIfRoot.js +1 -1
  26. package/dist/canvas/SceneCanvas/DepRegistryProviderIfRoot.js +1 -1
  27. package/dist/canvas/SceneCanvas/PointerProviderIfRoot.js +1 -1
  28. package/dist/canvas/SceneCanvas/SceneCanvasInput.js +17 -3
  29. package/dist/canvas/SceneCanvas/SceneCanvasInput.js.map +1 -1
  30. package/dist/canvas/SceneCanvas/SurfaceDeclarations.js +23 -0
  31. package/dist/canvas/SceneCanvas/SurfaceDeclarations.js.map +1 -0
  32. package/dist/canvas/SceneCanvas/builtinToolSets.js +30 -0
  33. package/dist/canvas/SceneCanvas/builtinToolSets.js.map +1 -0
  34. package/dist/canvas/SceneCanvas/canvasPassThrough.js +2 -0
  35. package/dist/canvas/SceneCanvas/canvasPassThrough.js.map +1 -1
  36. package/dist/canvas/SceneCanvas/coordTrace.js +5 -16
  37. package/dist/canvas/SceneCanvas/coordTrace.js.map +1 -1
  38. package/dist/canvas/SceneCanvas/defaultNodeProperties.js +5 -0
  39. package/dist/canvas/SceneCanvas/defaultNodeProperties.js.map +1 -1
  40. package/dist/canvas/SceneCanvas/features.js +45 -5
  41. package/dist/canvas/SceneCanvas/features.js.map +1 -1
  42. package/dist/canvas/SceneCanvas/props.js +1 -11
  43. package/dist/canvas/SceneCanvas/props.js.map +1 -1
  44. package/dist/canvas/SceneCanvas/scenePointQuery.js +7 -3
  45. package/dist/canvas/SceneCanvas/scenePointQuery.js.map +1 -1
  46. package/dist/canvas/SceneCanvas/toolRegistry.js +8 -4
  47. package/dist/canvas/SceneCanvas/toolRegistry.js.map +1 -1
  48. package/dist/canvas/SceneCanvas/useActionTunings.js +6 -1
  49. package/dist/canvas/SceneCanvas/useActionTunings.js.map +1 -1
  50. package/dist/canvas/SceneCanvas/useActionsPropResolver.js +1 -11
  51. package/dist/canvas/SceneCanvas/useActionsPropResolver.js.map +1 -1
  52. package/dist/canvas/SceneCanvas/useBuiltinShapeTools.js.map +1 -1
  53. package/dist/canvas/SceneCanvas/useBuiltinTools.js +2 -9
  54. package/dist/canvas/SceneCanvas/useBuiltinTools.js.map +1 -1
  55. package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js +94 -0
  56. package/dist/canvas/SceneCanvas/useCanvasDevtoolsRoot.js.map +1 -0
  57. package/dist/canvas/SceneCanvas/useCanvasSelection.js +7 -2
  58. package/dist/canvas/SceneCanvas/useCanvasSelection.js.map +1 -1
  59. package/dist/canvas/SceneCanvas/useCanvasTools.js +15 -10
  60. package/dist/canvas/SceneCanvas/useCanvasTools.js.map +1 -1
  61. package/dist/canvas/SceneCanvas/useNodeKinds.js +1 -1
  62. package/dist/canvas/SceneCanvas/useNodeKinds.js.map +1 -1
  63. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js +9 -3
  64. package/dist/canvas/SceneCanvas/useSceneCanvasHandle.js.map +1 -1
  65. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js +23 -4
  66. package/dist/canvas/SceneCanvas/useSceneCanvasLayers.js.map +1 -1
  67. package/dist/canvas/SceneCanvas/useSceneCanvasTools.js +2 -3
  68. package/dist/canvas/SceneCanvas/useSceneCanvasTools.js.map +1 -1
  69. package/dist/canvas/SceneCanvas/useSceneChrome.js +6 -7
  70. package/dist/canvas/SceneCanvas/useSceneChrome.js.map +1 -1
  71. package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js +24 -7
  72. package/dist/canvas/SceneCanvas/useSceneGestureDispatcher.js.map +1 -1
  73. package/dist/canvas/SceneCanvas/useScenePicking.js +2 -3
  74. package/dist/canvas/SceneCanvas/useScenePicking.js.map +1 -1
  75. package/dist/canvas/SceneCanvas/useSceneSelectTool.js +2 -1
  76. package/dist/canvas/SceneCanvas/useSceneSelectTool.js.map +1 -1
  77. package/dist/canvas/SceneCanvas/useSceneStandardActions.js +5 -5
  78. package/dist/canvas/SceneCanvas/useSceneStandardActions.js.map +1 -1
  79. package/dist/canvas/SceneCanvas.js +27 -24
  80. package/dist/canvas/SceneCanvas.js.map +1 -1
  81. package/dist/canvas/SurfaceCanvas.js +5 -22
  82. package/dist/canvas/SurfaceCanvas.js.map +1 -1
  83. package/dist/canvas/ViewMarker.js +35 -0
  84. package/dist/canvas/ViewMarker.js.map +1 -0
  85. package/dist/canvas/canvasRenderer.js +9 -5
  86. package/dist/canvas/canvasRenderer.js.map +1 -1
  87. package/dist/canvas/contextAttributes.js +14 -0
  88. package/dist/canvas/contextAttributes.js.map +1 -0
  89. package/dist/canvas/defaultDrawOne.js +2 -0
  90. package/dist/canvas/defaultDrawOne.js.map +1 -1
  91. package/dist/canvas/deps/booleans.js +2 -1
  92. package/dist/canvas/deps/booleans.js.map +1 -1
  93. package/dist/canvas/deps/editAnchors.js +9 -113
  94. package/dist/canvas/deps/editAnchors.js.map +1 -1
  95. package/dist/canvas/deps/hitTestArea.js +2 -2
  96. package/dist/canvas/deps/hitTestArea.js.map +1 -1
  97. package/dist/canvas/deps/insert.js +10 -4
  98. package/dist/canvas/deps/insert.js.map +1 -1
  99. package/dist/canvas/deps/pathEditCommits.js +189 -0
  100. package/dist/canvas/deps/pathEditCommits.js.map +1 -0
  101. package/dist/canvas/deps/snap.js +12 -9
  102. package/dist/canvas/deps/snap.js.map +1 -1
  103. package/dist/canvas/deps/transformFollowers.js +20 -0
  104. package/dist/canvas/deps/transformFollowers.js.map +1 -0
  105. package/dist/canvas/derivedPath.js +20 -1
  106. package/dist/canvas/derivedPath.js.map +1 -1
  107. package/dist/canvas/drawnBounds.js +38 -4
  108. package/dist/canvas/drawnBounds.js.map +1 -1
  109. package/dist/canvas/inheritedPaints.js +44 -0
  110. package/dist/canvas/inheritedPaints.js.map +1 -0
  111. package/dist/canvas/nodeShapes/derivedPainter.js +23 -16
  112. package/dist/canvas/nodeShapes/derivedPainter.js.map +1 -1
  113. package/dist/canvas/nodeShapes/nodePaint.js +13 -34
  114. package/dist/canvas/nodeShapes/nodePaint.js.map +1 -1
  115. package/dist/canvas/nodeShapes/pathPainter.js +12 -10
  116. package/dist/canvas/nodeShapes/pathPainter.js.map +1 -1
  117. package/dist/canvas/nodeShapes/rectFallbackPainter.js +4 -5
  118. package/dist/canvas/nodeShapes/rectFallbackPainter.js.map +1 -1
  119. package/dist/canvas/nodeShapes/shapePainter.js +12 -11
  120. package/dist/canvas/nodeShapes/shapePainter.js.map +1 -1
  121. package/dist/canvas/nodeShapes/textPainter.js +13 -12
  122. package/dist/canvas/nodeShapes/textPainter.js.map +1 -1
  123. package/dist/canvas/overlayRoleStrokes.js +12 -0
  124. package/dist/canvas/overlayRoleStrokes.js.map +1 -1
  125. package/dist/canvas/pathOverlay.js +27 -7
  126. package/dist/canvas/pathOverlay.js.map +1 -1
  127. package/dist/canvas/pickReach.js +3 -3
  128. package/dist/canvas/pickReach.js.map +1 -1
  129. package/dist/canvas/pickWalk.js +3 -1
  130. package/dist/canvas/pickWalk.js.map +1 -1
  131. package/dist/canvas/renderDebugSnapshot.js +1 -0
  132. package/dist/canvas/renderDebugSnapshot.js.map +1 -1
  133. package/dist/canvas/renderSceneToPixels.js +7 -6
  134. package/dist/canvas/renderSceneToPixels.js.map +1 -1
  135. package/dist/canvas/sceneAdapter.js.map +1 -1
  136. package/dist/canvas/sceneSlotWiring.js +2 -1
  137. package/dist/canvas/sceneSlotWiring.js.map +1 -1
  138. package/dist/canvas/sceneViewRender.js +2 -1
  139. package/dist/canvas/sceneViewRender.js.map +1 -1
  140. package/dist/canvas/surfaceContribution.js +12 -8
  141. package/dist/canvas/surfaceContribution.js.map +1 -1
  142. package/dist/canvas/useCanvasPaint.js +2 -1
  143. package/dist/canvas/useCanvasPaint.js.map +1 -1
  144. package/dist/canvas/useCanvasView.js +4 -2
  145. package/dist/canvas/useCanvasView.js.map +1 -1
  146. package/dist/canvas/useInFlightBounds.js +52 -0
  147. package/dist/canvas/useInFlightBounds.js.map +1 -0
  148. package/dist/canvas/useLayerStack.js +6 -2
  149. package/dist/canvas/useLayerStack.js.map +1 -1
  150. package/dist/canvas/useViewAim.js +121 -0
  151. package/dist/canvas/useViewAim.js.map +1 -0
  152. package/dist/canvas/useViewHelpers.js +7 -9
  153. package/dist/canvas/useViewHelpers.js.map +1 -1
  154. package/dist/canvas/useViewNesting.js +3 -2
  155. package/dist/canvas/useViewNesting.js.map +1 -1
  156. package/dist/canvas/useViewRegistrySurface.js +4 -2
  157. package/dist/canvas/useViewRegistrySurface.js.map +1 -1
  158. package/dist/canvas/viewMarkers.js +63 -0
  159. package/dist/canvas/viewMarkers.js.map +1 -0
  160. package/dist/canvas/viewRegistry.js +27 -1
  161. package/dist/canvas/viewRegistry.js.map +1 -1
  162. package/dist/clipboard.d.ts +3 -2
  163. package/dist/{clone-DZDrfIlU.d.ts → clone-C3e0OTuF.d.ts} +8 -21
  164. package/dist/clone.d.ts +4 -3
  165. package/dist/core/geometry/autoPoseDescriptor.js +1 -1
  166. package/dist/core/ops/setDependsOn.js +37 -0
  167. package/dist/core/ops/setDependsOn.js.map +1 -0
  168. package/dist/core/ops/writtenBy.js +53 -0
  169. package/dist/core/ops/writtenBy.js.map +1 -0
  170. package/dist/core/pages/fitViewToPage.js +12 -1
  171. package/dist/core/pages/fitViewToPage.js.map +1 -1
  172. package/dist/core/pages/pageEdits.js +163 -0
  173. package/dist/core/pages/pageEdits.js.map +1 -0
  174. package/dist/core/pages/pages.js +30 -1
  175. package/dist/core/pages/pages.js.map +1 -1
  176. package/dist/core/paint/meshKindLazy.js +59 -2
  177. package/dist/core/paint/meshKindLazy.js.map +1 -1
  178. package/dist/core/scene/NodeRouting.js +8 -3
  179. package/dist/core/scene/NodeRouting.js.map +1 -1
  180. package/dist/core/scene/arrivalWindow.js.map +1 -1
  181. package/dist/core/scene/carryDescendants.js +51 -0
  182. package/dist/core/scene/carryDescendants.js.map +1 -0
  183. package/dist/core/scene/clipNothing.js +13 -0
  184. package/dist/core/scene/clipNothing.js.map +1 -0
  185. package/dist/core/scene/depMemo.js +11 -3
  186. package/dist/core/scene/depMemo.js.map +1 -1
  187. package/dist/core/scene/dependents.js +7 -1
  188. package/dist/core/scene/dependents.js.map +1 -1
  189. package/dist/core/scene/derivedParts.js +10 -11
  190. package/dist/core/scene/derivedParts.js.map +1 -1
  191. package/dist/core/scene/docValues.js +57 -0
  192. package/dist/core/scene/docValues.js.map +1 -0
  193. package/dist/core/scene/editPass.js +111 -0
  194. package/dist/core/scene/editPass.js.map +1 -0
  195. package/dist/core/scene/effectivePose.js +13 -2
  196. package/dist/core/scene/effectivePose.js.map +1 -1
  197. package/dist/core/scene/fieldEdits.js +4 -1
  198. package/dist/core/scene/fieldEdits.js.map +1 -1
  199. package/dist/core/scene/fontReads.js +37 -0
  200. package/dist/core/scene/fontReads.js.map +1 -0
  201. package/dist/core/scene/historyFacade.js +1 -0
  202. package/dist/core/scene/historyFacade.js.map +1 -1
  203. package/dist/core/scene/inheritedPaint.js +75 -0
  204. package/dist/core/scene/inheritedPaint.js.map +1 -0
  205. package/dist/core/scene/kitRegistry.js +5 -0
  206. package/dist/core/scene/kitRegistry.js.map +1 -1
  207. package/dist/core/scene/layoutPass.js +28 -3
  208. package/dist/core/scene/layoutPass.js.map +1 -1
  209. package/dist/core/scene/nodeMemo.js +15 -7
  210. package/dist/core/scene/nodeMemo.js.map +1 -1
  211. package/dist/core/scene/pathEffects/blend.js.map +1 -1
  212. package/dist/core/scene/pathEffects/derive.js +7 -2
  213. package/dist/core/scene/pathEffects/derive.js.map +1 -1
  214. package/dist/core/scene/pathEffects/effects.js +3 -1
  215. package/dist/core/scene/pathEffects/effects.js.map +1 -1
  216. package/dist/core/scene/pathEffects/textAlong.js +95 -0
  217. package/dist/core/scene/pathEffects/textAlong.js.map +1 -0
  218. package/dist/core/scene/recorder.js +28 -19
  219. package/dist/core/scene/recorder.js.map +1 -1
  220. package/dist/core/scene/scene.js +15 -9
  221. package/dist/core/scene/scene.js.map +1 -1
  222. package/dist/core/scene/sceneChanges.js +13 -0
  223. package/dist/core/scene/sceneChanges.js.map +1 -0
  224. package/dist/core/scene/sceneEdits.js +8 -1
  225. package/dist/core/scene/sceneEdits.js.map +1 -1
  226. package/dist/core/scene/sceneMutators.js +1 -0
  227. package/dist/core/scene/sceneMutators.js.map +1 -1
  228. package/dist/core/scene/sceneRecording.js +20 -3
  229. package/dist/core/scene/sceneRecording.js.map +1 -1
  230. package/dist/core/scene/sceneSelection.js +4 -1
  231. package/dist/core/scene/sceneSelection.js.map +1 -1
  232. package/dist/core/scene/sceneState.js +11 -5
  233. package/dist/core/scene/sceneState.js.map +1 -1
  234. package/dist/core/scene/serialization.js +5 -3
  235. package/dist/core/scene/serialization.js.map +1 -1
  236. package/dist/core/scene/types.js.map +1 -1
  237. package/dist/core/scene/unitScopes.js +19 -1
  238. package/dist/core/scene/unitScopes.js.map +1 -1
  239. package/dist/core/selection/usePublishSceneSelection.js +6 -12
  240. package/dist/core/selection/usePublishSceneSelection.js.map +1 -1
  241. package/dist/core/shapeKinds.js +25 -11
  242. package/dist/core/shapeKinds.js.map +1 -1
  243. package/dist/{cornerHandles-Camw_yeu.d.ts → cornerHandles-p8fDIAKt.d.ts} +3 -2
  244. package/dist/debug/createDebugOverlayLayer.js +16 -111
  245. package/dist/debug/createDebugOverlayLayer.js.map +1 -1
  246. package/dist/debug/createDebugSink.js +2 -1
  247. package/dist/debug/createDebugSink.js.map +1 -1
  248. package/dist/debug/defaultTheme.js +4 -2
  249. package/dist/debug/defaultTheme.js.map +1 -1
  250. package/dist/debug/features.js +17 -0
  251. package/dist/debug/features.js.map +1 -0
  252. package/dist/debug/overlayPanels.js +117 -0
  253. package/dist/debug/overlayPanels.js.map +1 -0
  254. package/dist/debug/parseDebugFlags.js +4 -13
  255. package/dist/debug/parseDebugFlags.js.map +1 -1
  256. package/dist/{depSchema-Cgfu_G9s.d.ts → depSchema-mG19aEdD.d.ts} +174 -904
  257. package/dist/devtools/handlers.js +112 -0
  258. package/dist/devtools/handlers.js.map +1 -0
  259. package/dist/devtools/history.js +71 -0
  260. package/dist/devtools/history.js.map +1 -0
  261. package/dist/devtools/hook.js +74 -0
  262. package/dist/devtools/hook.js.map +1 -0
  263. package/dist/devtools/label.js +25 -0
  264. package/dist/devtools/label.js.map +1 -0
  265. package/dist/devtools/notices.js +58 -0
  266. package/dist/devtools/notices.js.map +1 -0
  267. package/dist/devtools/protocol.js +7 -0
  268. package/dist/devtools/protocol.js.map +1 -0
  269. package/dist/devtools/registry.js +90 -0
  270. package/dist/devtools/registry.js.map +1 -0
  271. package/dist/devtools/root.js +80 -0
  272. package/dist/devtools/root.js.map +1 -0
  273. package/dist/devtools/serialize.js +86 -0
  274. package/dist/devtools/serialize.js.map +1 -0
  275. package/dist/devtools/session.js +111 -0
  276. package/dist/devtools/session.js.map +1 -0
  277. package/dist/devtools/transport.js +67 -0
  278. package/dist/devtools/transport.js.map +1 -0
  279. package/dist/devtools/useDevtoolsRoot.js +81 -0
  280. package/dist/devtools/useDevtoolsRoot.js.map +1 -0
  281. package/dist/devtools-protocol.d.ts +435 -0
  282. package/dist/devtools-protocol.js +7 -0
  283. package/dist/devtools.d.ts +8 -0
  284. package/dist/devtools.js +12 -0
  285. package/dist/devtools.js.map +1 -0
  286. package/dist/features/chrome-caps/useHoverTracking.js +16 -10
  287. package/dist/features/chrome-caps/useHoverTracking.js.map +1 -1
  288. package/dist/features/ingestion/contentHandlers.js +25 -2
  289. package/dist/features/ingestion/contentHandlers.js.map +1 -1
  290. package/dist/features/measure/measureCommands.js +7 -5
  291. package/dist/features/measure/measureCommands.js.map +1 -1
  292. package/dist/features/measure/measureContribution.js +4 -2
  293. package/dist/features/measure/measureContribution.js.map +1 -1
  294. package/dist/features/modes/modeTriggers.js +7 -3
  295. package/dist/features/modes/modeTriggers.js.map +1 -1
  296. package/dist/features/pathEffects/effectSources.js +60 -0
  297. package/dist/features/pathEffects/effectSources.js.map +1 -0
  298. package/dist/features/pathEffects/readSource.js +17 -1
  299. package/dist/features/pathEffects/readSource.js.map +1 -1
  300. package/dist/features/pathEffects/textItems.js +53 -0
  301. package/dist/features/pathEffects/textItems.js.map +1 -0
  302. package/dist/features/pathEffects/useEffectSourcesLayer.js +57 -0
  303. package/dist/features/pathEffects/useEffectSourcesLayer.js.map +1 -0
  304. package/dist/features/paths/index.js +2 -2
  305. package/dist/features/paths/pathEditExtension.js.map +1 -1
  306. package/dist/features/paths/pathEditState.js +5 -2
  307. package/dist/features/paths/pathEditState.js.map +1 -1
  308. package/dist/features/paths/pathSnap/pathSnapSource.js +5 -5
  309. package/dist/features/paths/pathSnap/pathSnapSource.js.map +1 -1
  310. package/dist/features/paths/pathSnap/sceneIndex.js +10 -3
  311. package/dist/features/paths/pathSnap/sceneIndex.js.map +1 -1
  312. package/dist/features/selection/selectionPose.js +4 -1
  313. package/dist/features/selection/selectionPose.js.map +1 -1
  314. package/dist/features/snap/gather.js +9 -1
  315. package/dist/features/snap/gather.js.map +1 -1
  316. package/dist/features/snap/lazySession.js +17 -0
  317. package/dist/features/snap/lazySession.js.map +1 -0
  318. package/dist/features/snap/marks.js.map +1 -1
  319. package/dist/features/snap/probes2d.js +27 -19
  320. package/dist/features/snap/probes2d.js.map +1 -1
  321. package/dist/features/snap/readoutLayer.js.map +1 -1
  322. package/dist/features/snap/roles.js +2 -1
  323. package/dist/features/snap/roles.js.map +1 -1
  324. package/dist/features/snap/rotationSource.js +25 -8
  325. package/dist/features/snap/rotationSource.js.map +1 -1
  326. package/dist/features/snap/sceneSession2d.js +6 -4
  327. package/dist/features/snap/sceneSession2d.js.map +1 -1
  328. package/dist/features/snap/session2d.js +37 -23
  329. package/dist/features/snap/session2d.js.map +1 -1
  330. package/dist/features/snap/spanSnap.js +5 -2
  331. package/dist/features/snap/spanSnap.js.map +1 -1
  332. package/dist/features/text/sceneTextDrafts.js +65 -0
  333. package/dist/features/text/sceneTextDrafts.js.map +1 -0
  334. package/dist/features/text/textHitAt.js +31 -2
  335. package/dist/features/text/textHitAt.js.map +1 -1
  336. package/dist/features/text/useSceneTextEdit.js +22 -18
  337. package/dist/features/text/useSceneTextEdit.js.map +1 -1
  338. package/dist/features/viewports/aim.js +105 -0
  339. package/dist/features/viewports/aim.js.map +1 -0
  340. package/dist/features/viewports/viewMarker.js +82 -0
  341. package/dist/features/viewports/viewMarker.js.map +1 -0
  342. package/dist/features/viewports/viewMarkerDrag.js +55 -0
  343. package/dist/features/viewports/viewMarkerDrag.js.map +1 -0
  344. package/dist/icons.table.js +1 -1
  345. package/dist/icons.table.js.map +1 -1
  346. package/dist/icons.table.json +0 -10
  347. package/dist/index.d.ts +1198 -894
  348. package/dist/index.js +55 -38
  349. package/dist/interactions/actions/align/action.js +6 -4
  350. package/dist/interactions/actions/align/action.js.map +1 -1
  351. package/dist/interactions/actions/align/align.js.map +1 -1
  352. package/dist/interactions/actions/booleans/action.js +7 -1
  353. package/dist/interactions/actions/booleans/action.js.map +1 -1
  354. package/dist/interactions/actions/booleans/booleans.js +2 -1
  355. package/dist/interactions/actions/booleans/booleans.js.map +1 -1
  356. package/dist/interactions/actions/booleans/operands.js +6 -5
  357. package/dist/interactions/actions/booleans/operands.js.map +1 -1
  358. package/dist/interactions/actions/clipboard/action.js +27 -17
  359. package/dist/interactions/actions/clipboard/action.js.map +1 -1
  360. package/dist/interactions/actions/clone/action.js +1 -1
  361. package/dist/interactions/actions/clone/behaviors.js +4 -4
  362. package/dist/interactions/actions/clone/behaviors.js.map +1 -1
  363. package/dist/interactions/actions/defaults/anchorEditing.js +44 -23
  364. package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
  365. package/dist/interactions/actions/defaults/anchorJoin.js +12 -6
  366. package/dist/interactions/actions/defaults/anchorJoin.js.map +1 -1
  367. package/dist/interactions/actions/defaults/bendSegment.js +8 -5
  368. package/dist/interactions/actions/defaults/bendSegment.js.map +1 -1
  369. package/dist/interactions/actions/defaults/cancelGesture.js +11 -8
  370. package/dist/interactions/actions/defaults/cancelGesture.js.map +1 -1
  371. package/dist/interactions/actions/defaults/contextMenu.js +17 -8
  372. package/dist/interactions/actions/defaults/contextMenu.js.map +1 -1
  373. package/dist/interactions/actions/defaults/createPaintAction.js +2 -2
  374. package/dist/interactions/actions/defaults/createPaintAction.js.map +1 -1
  375. package/dist/interactions/actions/defaults/delete.js +64 -41
  376. package/dist/interactions/actions/defaults/delete.js.map +1 -1
  377. package/dist/interactions/actions/defaults/duplicate.js +12 -9
  378. package/dist/interactions/actions/defaults/duplicate.js.map +1 -1
  379. package/dist/interactions/actions/defaults/enterPathEdit.js +19 -9
  380. package/dist/interactions/actions/defaults/enterPathEdit.js.map +1 -1
  381. package/dist/interactions/actions/defaults/escape.js +11 -8
  382. package/dist/interactions/actions/defaults/escape.js.map +1 -1
  383. package/dist/interactions/actions/defaults/exitPathEdit.js +7 -4
  384. package/dist/interactions/actions/defaults/exitPathEdit.js.map +1 -1
  385. package/dist/interactions/actions/defaults/group.js +21 -15
  386. package/dist/interactions/actions/defaults/group.js.map +1 -1
  387. package/dist/interactions/actions/defaults/ingest.js +17 -9
  388. package/dist/interactions/actions/defaults/ingest.js.map +1 -1
  389. package/dist/interactions/actions/defaults/insertPathAnchor.js +7 -4
  390. package/dist/interactions/actions/defaults/insertPathAnchor.js.map +1 -1
  391. package/dist/interactions/actions/defaults/nudge.js +21 -40
  392. package/dist/interactions/actions/defaults/nudge.js.map +1 -1
  393. package/dist/interactions/actions/defaults/pathEditTools.js +11 -8
  394. package/dist/interactions/actions/defaults/pathEditTools.js.map +1 -1
  395. package/dist/interactions/actions/defaults/pinchZoom.js +7 -4
  396. package/dist/interactions/actions/defaults/pinchZoom.js.map +1 -1
  397. package/dist/interactions/actions/defaults/reorder.js +24 -6
  398. package/dist/interactions/actions/defaults/reorder.js.map +1 -1
  399. package/dist/interactions/actions/defaults/selectAll.js +8 -5
  400. package/dist/interactions/actions/defaults/selectAll.js.map +1 -1
  401. package/dist/interactions/actions/defaults/setFill.js +7 -3
  402. package/dist/interactions/actions/defaults/setFill.js.map +1 -1
  403. package/dist/interactions/actions/defaults/setFillOpacity.js +1 -1
  404. package/dist/interactions/actions/defaults/setStroke.js +12 -11
  405. package/dist/interactions/actions/defaults/setStroke.js.map +1 -1
  406. package/dist/interactions/actions/defaults/setStrokeOpacity.js +1 -1
  407. package/dist/interactions/actions/defaults/toolActivate.js +7 -1
  408. package/dist/interactions/actions/defaults/toolActivate.js.map +1 -1
  409. package/dist/interactions/actions/defaults/toolResetToDefault.js +7 -4
  410. package/dist/interactions/actions/defaults/toolResetToDefault.js.map +1 -1
  411. package/dist/interactions/actions/defaults/undoRedo.js +19 -13
  412. package/dist/interactions/actions/defaults/undoRedo.js.map +1 -1
  413. package/dist/interactions/actions/defaults/viewportWheelPan.js +16 -7
  414. package/dist/interactions/actions/defaults/viewportWheelPan.js.map +1 -1
  415. package/dist/interactions/actions/defaults/viewportZoom.js +24 -6
  416. package/dist/interactions/actions/defaults/viewportZoom.js.map +1 -1
  417. package/dist/interactions/actions/distribute/action.js +6 -4
  418. package/dist/interactions/actions/distribute/action.js.map +1 -1
  419. package/dist/interactions/actions/drawnBoxes.js +2 -1
  420. package/dist/interactions/actions/drawnBoxes.js.map +1 -1
  421. package/dist/interactions/actions/edit-anchors/action.js +10 -10
  422. package/dist/interactions/actions/edit-anchors/action.js.map +1 -1
  423. package/dist/interactions/actions/edit-anchors/preview.js +41 -8
  424. package/dist/interactions/actions/edit-anchors/preview.js.map +1 -1
  425. package/dist/interactions/actions/flip/action.js +14 -6
  426. package/dist/interactions/actions/flip/action.js.map +1 -1
  427. package/dist/interactions/actions/gestureLifecycle.js +5 -2
  428. package/dist/interactions/actions/gestureLifecycle.js.map +1 -1
  429. package/dist/interactions/actions/insert/action.js +1 -2
  430. package/dist/interactions/actions/insert/action.js.map +1 -1
  431. package/dist/interactions/actions/insert/commit.js +1 -1
  432. package/dist/interactions/actions/insert/parent.js +11 -0
  433. package/dist/interactions/actions/insert/parent.js.map +1 -0
  434. package/dist/interactions/actions/insert/placeAction.js +7 -2
  435. package/dist/interactions/actions/insert/placeAction.js.map +1 -1
  436. package/dist/interactions/actions/insert/repositionAction.js +2 -1
  437. package/dist/interactions/actions/insert/repositionAction.js.map +1 -1
  438. package/dist/interactions/actions/insert/session.js +5 -1
  439. package/dist/interactions/actions/insert/session.js.map +1 -1
  440. package/dist/interactions/actions/move/action.js +15 -8
  441. package/dist/interactions/actions/move/action.js.map +1 -1
  442. package/dist/interactions/actions/move/behaviors/layoutDrop.js +0 -1
  443. package/dist/interactions/actions/move/behaviors/layoutDrop.js.map +1 -1
  444. package/dist/interactions/actions/move/behaviors/snapToContainer.js +1 -1
  445. package/dist/interactions/actions/move/capture.js +1 -1
  446. package/dist/interactions/actions/move/commit/index.js +0 -2
  447. package/dist/interactions/actions/move/commit/index.js.map +1 -1
  448. package/dist/interactions/actions/move/commit/layoutDrop.js +2 -2
  449. package/dist/interactions/actions/move/commit/layoutRelease.js +2 -2
  450. package/dist/interactions/actions/move/commit/reparent.js +11 -5
  451. package/dist/interactions/actions/move/commit/reparent.js.map +1 -1
  452. package/dist/interactions/actions/move/frame.js +4 -10
  453. package/dist/interactions/actions/move/frame.js.map +1 -1
  454. package/dist/interactions/actions/move/landedDescendants.js +20 -17
  455. package/dist/interactions/actions/move/landedDescendants.js.map +1 -1
  456. package/dist/interactions/actions/move/layout/container.js +2 -1
  457. package/dist/interactions/actions/move/layout/container.js.map +1 -1
  458. package/dist/interactions/actions/move/layout/dragged.js +1 -1
  459. package/dist/interactions/actions/move/layout/dropPass.js +18 -1
  460. package/dist/interactions/actions/move/layout/dropPass.js.map +1 -1
  461. package/dist/interactions/actions/move/layout/exits.js +5 -5
  462. package/dist/interactions/actions/move/layout/exits.js.map +1 -1
  463. package/dist/interactions/actions/move/session.js +14 -3
  464. package/dist/interactions/actions/move/session.js.map +1 -1
  465. package/dist/interactions/actions/move/translate.js +8 -37
  466. package/dist/interactions/actions/move/translate.js.map +1 -1
  467. package/dist/interactions/actions/moveNodes.js +87 -0
  468. package/dist/interactions/actions/moveNodes.js.map +1 -0
  469. package/dist/interactions/actions/outlines/createOutlinesAction.js +8 -5
  470. package/dist/interactions/actions/outlines/createOutlinesAction.js.map +1 -1
  471. package/dist/interactions/actions/outlines/outlineStroke.js +5 -3
  472. package/dist/interactions/actions/outlines/outlineStroke.js.map +1 -1
  473. package/dist/interactions/actions/pathCommands/cutJoin.js +8 -5
  474. package/dist/interactions/actions/pathCommands/cutJoin.js.map +1 -1
  475. package/dist/interactions/actions/planeInput.js.map +1 -1
  476. package/dist/interactions/actions/resize/action.js +83 -72
  477. package/dist/interactions/actions/resize/action.js.map +1 -1
  478. package/dist/interactions/actions/resize/commit.js +2 -1
  479. package/dist/interactions/actions/resize/commit.js.map +1 -1
  480. package/dist/interactions/actions/resize/cornerHandles.js +2 -1
  481. package/dist/interactions/actions/resize/cornerHandles.js.map +1 -1
  482. package/dist/interactions/actions/resize/session.js +2 -0
  483. package/dist/interactions/actions/resize/session.js.map +1 -1
  484. package/dist/interactions/actions/resolvePreviews.js +3 -3
  485. package/dist/interactions/actions/resolvePreviews.js.map +1 -1
  486. package/dist/interactions/actions/rotate/action.js +7 -4
  487. package/dist/interactions/actions/rotate/action.js.map +1 -1
  488. package/dist/interactions/actions/rotate/commit.js +2 -1
  489. package/dist/interactions/actions/rotate/commit.js.map +1 -1
  490. package/dist/interactions/actions/rotate/session.js +2 -0
  491. package/dist/interactions/actions/rotate/session.js.map +1 -1
  492. package/dist/interactions/actions/selectionSubtree.js +25 -9
  493. package/dist/interactions/actions/selectionSubtree.js.map +1 -1
  494. package/dist/interactions/actions/testUtils.js.map +1 -1
  495. package/dist/interactions/actions/transform-again/action.js +13 -11
  496. package/dist/interactions/actions/transform-again/action.js.map +1 -1
  497. package/dist/interactions/actions/transformFinish.js +106 -0
  498. package/dist/interactions/actions/transformFinish.js.map +1 -0
  499. package/dist/json.d.ts +4 -0
  500. package/dist/json.js +3 -0
  501. package/dist/kitSettingsSchema.js +8 -5
  502. package/dist/kitSettingsSchema.js.map +1 -1
  503. package/dist/{math-CrJULaZI.d.ts → math-B56zxVs5.d.ts} +10 -1
  504. package/dist/math.d.ts +1 -1
  505. package/dist/math.js +2 -1
  506. package/dist/move.d.ts +5 -4
  507. package/dist/{options-p9GZMXbY.d.ts → options-DBxEryYq.d.ts} +1 -1
  508. package/dist/resize.d.ts +4 -3
  509. package/dist/routing.d.ts +1 -1
  510. package/dist/routing.js +2 -2
  511. package/dist/test-hook/createTestHook.js +1 -1
  512. package/dist/test-hook/createTestHook.js.map +1 -1
  513. package/dist/test-hook/useTestHook.js +2 -1
  514. package/dist/test-hook/useTestHook.js.map +1 -1
  515. package/dist/test-seams.d.ts +9 -5
  516. package/dist/tools/builtin/ellipse/useEllipseTool.js +1 -0
  517. package/dist/tools/builtin/ellipse/useEllipseTool.js.map +1 -1
  518. package/dist/tools/builtin/eyedropper/useEyedropperTool.js +2 -1
  519. package/dist/tools/builtin/eyedropper/useEyedropperTool.js.map +1 -1
  520. package/dist/tools/builtin/hand/dragPanContribution.js +4 -1
  521. package/dist/tools/builtin/hand/dragPanContribution.js.map +1 -1
  522. package/dist/tools/builtin/hand/useHandTool.js +7 -4
  523. package/dist/tools/builtin/hand/useHandTool.js.map +1 -1
  524. package/dist/tools/builtin/image/useImageTool.js +1 -0
  525. package/dist/tools/builtin/image/useImageTool.js.map +1 -1
  526. package/dist/tools/builtin/lasso/useLassoTool.js +1 -0
  527. package/dist/tools/builtin/lasso/useLassoTool.js.map +1 -1
  528. package/dist/tools/builtin/line/useLineTool.js +1 -0
  529. package/dist/tools/builtin/line/useLineTool.js.map +1 -1
  530. package/dist/tools/builtin/measure/useMeasureTool.js +12 -5
  531. package/dist/tools/builtin/measure/useMeasureTool.js.map +1 -1
  532. package/dist/tools/builtin/pen/penHandle.js +3 -5
  533. package/dist/tools/builtin/pen/penHandle.js.map +1 -1
  534. package/dist/tools/builtin/pen/usePenTool.js +14 -6
  535. package/dist/tools/builtin/pen/usePenTool.js.map +1 -1
  536. package/dist/tools/builtin/pencil/usePencilTool.js +1 -0
  537. package/dist/tools/builtin/pencil/usePencilTool.js.map +1 -1
  538. package/dist/tools/builtin/polygon/usePolygonTool.js +13 -4
  539. package/dist/tools/builtin/polygon/usePolygonTool.js.map +1 -1
  540. package/dist/tools/builtin/rect/useRectTool.js +1 -0
  541. package/dist/tools/builtin/rect/useRectTool.js.map +1 -1
  542. package/dist/tools/builtin/select/adapterPointQuery.js +3 -2
  543. package/dist/tools/builtin/select/adapterPointQuery.js.map +1 -1
  544. package/dist/tools/builtin/select/pressDecision.js +32 -0
  545. package/dist/tools/builtin/select/pressDecision.js.map +1 -0
  546. package/dist/tools/builtin/select/selectionContributions.js +22 -13
  547. package/dist/tools/builtin/select/selectionContributions.js.map +1 -1
  548. package/dist/tools/builtin/select/useSelectTool.js +13 -10
  549. package/dist/tools/builtin/select/useSelectTool.js.map +1 -1
  550. package/dist/tools/builtin/slice/useSliceTool.js +22 -8
  551. package/dist/tools/builtin/slice/useSliceTool.js.map +1 -1
  552. package/dist/tools/builtin/star/useStarTool.js +13 -4
  553. package/dist/tools/builtin/star/useStarTool.js.map +1 -1
  554. package/dist/tools/builtin/sticky/stickyNode.js +4 -1
  555. package/dist/tools/builtin/sticky/stickyNode.js.map +1 -1
  556. package/dist/tools/builtin/sticky/useStickyTool.js +10 -5
  557. package/dist/tools/builtin/sticky/useStickyTool.js.map +1 -1
  558. package/dist/tools/builtin/text/useTextTool.js +3 -1
  559. package/dist/tools/builtin/text/useTextTool.js.map +1 -1
  560. package/dist/tools/index.js +26 -0
  561. package/dist/{types-CHVXGfYm.d.ts → types-7puAuVD2.d.ts} +3 -262
  562. package/dist/types-BN9hbdMI.d.ts +184 -0
  563. package/dist/types-CniVctmk.d.ts +949 -0
  564. package/dist/types-oFeQ5VjV.d.ts +264 -0
  565. package/dist/util/paint.js +1 -3
  566. package/dist/util/paint.js.map +1 -1
  567. package/dist/version.js +1 -1
  568. package/package.json +39 -25
  569. package/dist/canvas/SceneCanvas/useBuiltinRigTools.js +0 -65
  570. package/dist/canvas/SceneCanvas/useBuiltinRigTools.js.map +0 -1
  571. package/dist/tools/builtin/bone/boneActions.js +0 -156
  572. package/dist/tools/builtin/bone/boneActions.js.map +0 -1
  573. package/dist/tools/builtin/bone/boneOverlay.js +0 -71
  574. package/dist/tools/builtin/bone/boneOverlay.js.map +0 -1
  575. package/dist/tools/builtin/bone/placedRig.js +0 -28
  576. package/dist/tools/builtin/bone/placedRig.js.map +0 -1
  577. package/dist/tools/builtin/bone/rigEditState.js +0 -30
  578. package/dist/tools/builtin/bone/rigEditState.js.map +0 -1
  579. package/dist/tools/builtin/bone/useBoneTool.js +0 -125
  580. package/dist/tools/builtin/bone/useBoneTool.js.map +0 -1
  581. package/dist/tools/builtin/weight/useWeightTool.js +0 -101
  582. package/dist/tools/builtin/weight/useWeightTool.js.map +0 -1
  583. package/dist/tools/builtin/weight/weightActions.js +0 -140
  584. package/dist/tools/builtin/weight/weightActions.js.map +0 -1
  585. package/dist/tools/builtin/weight/weightOverlay.js +0 -78
  586. package/dist/tools/builtin/weight/weightOverlay.js.map +0 -1
@@ -0,0 +1,105 @@
1
+ import { ZOOM_FLOOR } from "../../core/viewport/zoomBounds.js";
2
+ import { normalizeView } from "../../core/viewport/view.js";
3
+ import { fitViewToBounds } from "../../core/viewport/fitViewToBounds.js";
4
+
5
+ //#region src/features/viewports/aim.ts
6
+ /** The aim of view `viewId` (`null`: a surface's root) showing world rect `rect`. */
7
+ function rectAim(viewId, rect) {
8
+ return {
9
+ viewId,
10
+ kind: "rect",
11
+ extent: rect,
12
+ outlineIn(space) {
13
+ const { x, y, width, height } = rect;
14
+ const out = [];
15
+ for (const corner of [
16
+ {
17
+ x,
18
+ y
19
+ },
20
+ {
21
+ x: x + width,
22
+ y
23
+ },
24
+ {
25
+ x: x + width,
26
+ y: y + height
27
+ },
28
+ {
29
+ x,
30
+ y: y + height
31
+ }
32
+ ]) {
33
+ const p = space.project(corner);
34
+ if (!p) return null;
35
+ out.push(p);
36
+ }
37
+ return out;
38
+ },
39
+ pannedIn(space, from, to) {
40
+ const a = space.unproject(from);
41
+ const b = space.unproject(to);
42
+ if (!a || !b) return null;
43
+ return rectAim(viewId, {
44
+ ...rect,
45
+ x: rect.x + (b.x - a.x),
46
+ y: rect.y + (b.y - a.y)
47
+ });
48
+ }
49
+ };
50
+ }
51
+ /** Whether `aim` is core's 2D rect aim, so its `extent` is a world rect. */
52
+ function isRectAim(aim) {
53
+ return aim.kind === "rect";
54
+ }
55
+ /** A 2D view's frame: `view` is its camera and `size` its frame; frame px are measured from the frame's top-left. */
56
+ function aimSpace2d(viewId, view, size) {
57
+ return {
58
+ viewId,
59
+ kind: "2d",
60
+ size: {
61
+ width: size.width,
62
+ height: size.height
63
+ },
64
+ project: (p) => ({
65
+ x: (p.x - view.x) * view.scale.x,
66
+ y: (p.y - view.y) * view.scale.y
67
+ }),
68
+ unproject: (px) => ({
69
+ x: px.x / view.scale.x + view.x,
70
+ y: px.y / view.scale.y + view.y
71
+ })
72
+ };
73
+ }
74
+ var UNUSED_CURRENT = {
75
+ x: 0,
76
+ y: 0,
77
+ scale: {
78
+ x: 1,
79
+ y: 1
80
+ }
81
+ };
82
+ /**
83
+ * The camera that shows `rect` in a frame of `size`: `'exact'` per axis (the inverse of `viewportWorldRect`),
84
+ * `'contain'` uniform and centered. Not clamped to a zoom range, and finite for an empty rect or frame. Normalized.
85
+ */
86
+ function viewForAim(rect, size, fit) {
87
+ if (!(rect.width > 0 && rect.height > 0 && size.width > 0 && size.height > 0)) return normalizeView({
88
+ x: rect.x,
89
+ y: rect.y,
90
+ scale: {
91
+ x: ZOOM_FLOOR,
92
+ y: ZOOM_FLOOR
93
+ }
94
+ });
95
+ return normalizeView(fitViewToBounds(rect, size, UNUSED_CURRENT, {
96
+ mode: fit === "exact" ? "stretch" : "contain",
97
+ padding: 0,
98
+ minScale: 0,
99
+ maxScale: Infinity
100
+ }));
101
+ }
102
+
103
+ //#endregion
104
+ export { aimSpace2d, isRectAim, rectAim, viewForAim };
105
+ //# sourceMappingURL=aim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aim.js","names":[],"sources":["../../../src/features/viewports/aim.ts"],"sourcesContent":["import { fitViewToBounds, type Bounds } from 'core/viewport/fitViewToBounds';\nimport type { Dims } from 'core/layers/render';\nimport { normalizeView, type View } from 'core/viewport/view';\nimport { ZOOM_FLOOR } from 'core/viewport/zoomBounds';\n\n/** A point in a view's world. A 2D world is the plane z = 0, so `z` is absent there. */\nexport interface AimPoint {\n x: number;\n y: number;\n z?: number;\n}\n\n/** A closed outline in a frame's CSS px, from the frame's top-left; at least 3 points. */\nexport type AimOutline = readonly { x: number; y: number }[];\n\n/** A target view, as an aim is drawn into it: its world, and its frame. */\nexport interface AimSpace {\n /** The view whose frame this is; `null` for a surface's root view. */\n readonly viewId: string | null;\n /** `'2d'` for core's views; any other value is its owner's (kernel3d: `'3d'`). */\n readonly kind: string;\n readonly size: { width: number; height: number };\n /** World point to frame px; `null` where the point does not draw (behind a 3D camera). */\n project(p: AimPoint): { x: number; y: number } | null;\n /** Frame px to the world point under it; `null` where there is none (a 3D ray missing its plane). */\n unproject(px: { x: number; y: number }): AimPoint | null;\n}\n\n/** What a viewport shows, read in the world of the view it names. */\nexport interface ViewAim<TExtent = unknown> {\n readonly viewId: string | null;\n /** Discriminates `extent`: `'rect'` for core's 2D views. */\n readonly kind: string;\n /** Where the aim lies in its world, in its owner's own terms. */\n readonly extent: TExtent;\n /** The aim's outline in `space`'s frame, or `null` when it cannot be drawn there. */\n outlineIn(space: AimSpace): AimOutline | null;\n /** This aim moved so the world point under frame px `from` in `space` ends up under `to`; `null` when either misses. */\n pannedIn(space: AimSpace, from: { x: number; y: number }, to: { x: number; y: number }): ViewAim<TExtent> | null;\n}\n\n/** Core's 2D aim: a world rect a view shows. */\nexport type RectAim = ViewAim<Bounds> & { readonly kind: 'rect' };\n\n/** The aim of view `viewId` (`null`: a surface's root) showing world rect `rect`. */\nexport function rectAim(viewId: string | null, rect: Bounds): RectAim {\n return {\n viewId,\n kind: 'rect',\n extent: rect,\n outlineIn(space) {\n const { x, y, width, height } = rect;\n const out: { x: number; y: number }[] = [];\n for (const corner of [\n { x, y },\n { x: x + width, y },\n { x: x + width, y: y + height },\n { x, y: y + height },\n ]) {\n const p = space.project(corner);\n if (!p) return null;\n out.push(p);\n }\n return out;\n },\n pannedIn(space, from, to) {\n const a = space.unproject(from);\n const b = space.unproject(to);\n if (!a || !b) return null;\n return rectAim(viewId, { ...rect, x: rect.x + (b.x - a.x), y: rect.y + (b.y - a.y) });\n },\n };\n}\n\n/** Whether `aim` is core's 2D rect aim, so its `extent` is a world rect. */\nexport function isRectAim(aim: ViewAim): aim is RectAim {\n return aim.kind === 'rect';\n}\n\n/** A 2D view's frame: `view` is its camera and `size` its frame; frame px are measured from the frame's top-left. */\nexport function aimSpace2d(viewId: string | null, view: View, size: Dims): AimSpace {\n return {\n viewId,\n kind: '2d',\n size: { width: size.width, height: size.height },\n project: (p) => ({ x: (p.x - view.x) * view.scale.x, y: (p.y - view.y) * view.scale.y }),\n unproject: (px) => ({ x: px.x / view.scale.x + view.x, y: px.y / view.scale.y + view.y }),\n };\n}\n\nconst UNUSED_CURRENT: View = { x: 0, y: 0, scale: { x: 1, y: 1 } };\n\n/**\n * The camera that shows `rect` in a frame of `size`: `'exact'` per axis (the inverse of `viewportWorldRect`),\n * `'contain'` uniform and centered. Not clamped to a zoom range, and finite for an empty rect or frame. Normalized.\n */\nexport function viewForAim(rect: Bounds, size: Dims, fit: 'exact' | 'contain'): View {\n if (!(rect.width > 0 && rect.height > 0 && size.width > 0 && size.height > 0)) {\n return normalizeView({ x: rect.x, y: rect.y, scale: { x: ZOOM_FLOOR, y: ZOOM_FLOOR } });\n }\n return normalizeView(fitViewToBounds(rect, size, UNUSED_CURRENT, {\n mode: fit === 'exact' ? 'stretch' : 'contain', padding: 0, minScale: 0, maxScale: Infinity,\n }));\n}\n"],"mappings":";;;;;;AA6CA,SAAgB,QAAQ,QAAuB,MAAuB;CACpE,OAAO;EACL;EACA,MAAM;EACN,QAAQ;EACR,UAAU,OAAO;GACf,MAAM,EAAE,GAAG,GAAG,OAAO,WAAW;GAChC,MAAM,MAAkC,CAAC;GACzC,KAAK,MAAM,UAAU;IACnB;KAAE;KAAG;IAAE;IACP;KAAE,GAAG,IAAI;KAAO;IAAE;IAClB;KAAE,GAAG,IAAI;KAAO,GAAG,IAAI;IAAO;IAC9B;KAAE;KAAG,GAAG,IAAI;IAAO;GACrB,GAAG;IACD,MAAM,IAAI,MAAM,QAAQ,MAAM;IAC9B,IAAI,CAAC,GAAG,OAAO;IACf,IAAI,KAAK,CAAC;GACZ;GACA,OAAO;EACT;EACA,SAAS,OAAO,MAAM,IAAI;GACxB,MAAM,IAAI,MAAM,UAAU,IAAI;GAC9B,MAAM,IAAI,MAAM,UAAU,EAAE;GAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO;GACrB,OAAO,QAAQ,QAAQ;IAAE,GAAG;IAAM,GAAG,KAAK,KAAK,EAAE,IAAI,EAAE;IAAI,GAAG,KAAK,KAAK,EAAE,IAAI,EAAE;GAAG,CAAC;EACtF;CACF;AACF;;AAGA,SAAgB,UAAU,KAA8B;CACtD,OAAO,IAAI,SAAS;AACtB;;AAGA,SAAgB,WAAW,QAAuB,MAAY,MAAsB;CAClF,OAAO;EACL;EACA,MAAM;EACN,MAAM;GAAE,OAAO,KAAK;GAAO,QAAQ,KAAK;EAAO;EAC/C,UAAU,OAAO;GAAE,IAAI,EAAE,IAAI,KAAK,KAAK,KAAK,MAAM;GAAG,IAAI,EAAE,IAAI,KAAK,KAAK,KAAK,MAAM;EAAE;EACtF,YAAY,QAAQ;GAAE,GAAG,GAAG,IAAI,KAAK,MAAM,IAAI,KAAK;GAAG,GAAG,GAAG,IAAI,KAAK,MAAM,IAAI,KAAK;EAAE;CACzF;AACF;AAEA,IAAM,iBAAuB;CAAE,GAAG;CAAG,GAAG;CAAG,OAAO;EAAE,GAAG;EAAG,GAAG;CAAE;AAAE;;;;;AAMjE,SAAgB,WAAW,MAAc,MAAY,KAAgC;CACnF,IAAI,EAAE,KAAK,QAAQ,KAAK,KAAK,SAAS,KAAK,KAAK,QAAQ,KAAK,KAAK,SAAS,IACzE,OAAO,cAAc;EAAE,GAAG,KAAK;EAAG,GAAG,KAAK;EAAG,OAAO;GAAE,GAAG;GAAY,GAAG;EAAW;CAAE,CAAC;CAExF,OAAO,cAAc,gBAAgB,MAAM,MAAM,gBAAgB;EAC/D,MAAM,QAAQ,UAAU,YAAY;EAAW,SAAS;EAAG,UAAU;EAAG,UAAU;CACpF,CAAC,CAAC;AACJ"}
@@ -0,0 +1,82 @@
1
+ import { aimSpace2d } from "./aim.js";
2
+ import { pointInPolygon, pointSegmentDist2, polygonFromPoints } from "@weasel-js/geom";
3
+
4
+ //#region src/features/viewports/viewMarker.ts
5
+ /** The marker style a {@link ViewMarkerProps.style} fills in from: the minimap indicator's. */
6
+ var VIEW_MARKER_DEFAULT_STYLE = {
7
+ stroke: "#ffffff",
8
+ width: 1,
9
+ dash: [2, 3]
10
+ };
11
+ /** The aim `source` names: a view's through `host`, or one handed in by value. */
12
+ function markerSourceAim(source, host) {
13
+ return source === null || typeof source === "string" ? host.aimOf(source) : source.aim();
14
+ }
15
+ /** A screen-space layer, id `view-marker:<id>`, drawing `props`'s source aim in the frame it is handed. */
16
+ function createViewMarkerLayer(props, host) {
17
+ const { id } = props();
18
+ return {
19
+ id: `view-marker:${id}`,
20
+ label: `View marker ${id}`,
21
+ space: "screen",
22
+ draw: (_data, view, dims) => {
23
+ const { source, target, style } = props();
24
+ if (source === target) return [];
25
+ const outline = markerSourceAim(source, host)?.outlineIn(aimSpace2d(target, view, dims));
26
+ if (!outline) return [];
27
+ const d = VIEW_MARKER_DEFAULT_STYLE;
28
+ return [{
29
+ kind: "path",
30
+ path: polygonFromPoints(outline),
31
+ stroke: {
32
+ paint: {
33
+ kind: "solid",
34
+ color: style?.stroke ?? d.stroke
35
+ },
36
+ width: style?.width ?? d.width,
37
+ dash: [...style?.dash ?? d.dash]
38
+ }
39
+ }];
40
+ }
41
+ };
42
+ }
43
+ /** A press this many screen px outside the outline still counts. */
44
+ var VIEW_MARKER_HIT_SLOP_PX = 4;
45
+ /**
46
+ * The grab for a press at frame px `at` in `space`, the marker's target, or
47
+ * `null` when the marker is not interactive, its source has no writer or no
48
+ * aim, or `at` is not on its outline or within {@link VIEW_MARKER_HIT_SLOP_PX} of it. A surface with views
49
+ * calls this itself; a canvas with none, such as a detached minimap, calls it to route a press to its marker.
50
+ */
51
+ function grabViewMarker(props, host, space, at) {
52
+ const { id, source, target, interactive } = props;
53
+ if (interactive === false || source === target) return null;
54
+ const write = source === null || typeof source === "string" ? (aim) => {
55
+ host.setAim(source, aim);
56
+ } : source.setAim?.bind(source);
57
+ if (!write) return null;
58
+ const startAim = markerSourceAim(source, host);
59
+ const outline = startAim?.outlineIn(space);
60
+ if (!startAim || !outline || !outlineHolds(outline, at, VIEW_MARKER_HIT_SLOP_PX)) return null;
61
+ return {
62
+ markerId: id,
63
+ moveTo: (world) => {
64
+ const to = space.project(world);
65
+ const next = to && startAim.pannedIn(space, at, to);
66
+ if (next) write(next);
67
+ }
68
+ };
69
+ }
70
+ function outlineHolds(outline, p, slop) {
71
+ if (pointInPolygon(outline.flatMap((q) => [q.x, q.y]), p.x, p.y)) return true;
72
+ for (let i = 0; i < outline.length; i++) {
73
+ const a = outline[i];
74
+ const b = outline[(i + 1) % outline.length];
75
+ if (pointSegmentDist2(p.x, p.y, a.x, a.y, b.x, b.y) <= slop * slop) return true;
76
+ }
77
+ return false;
78
+ }
79
+
80
+ //#endregion
81
+ export { VIEW_MARKER_DEFAULT_STYLE, VIEW_MARKER_HIT_SLOP_PX, createViewMarkerLayer, grabViewMarker, markerSourceAim };
82
+ //# sourceMappingURL=viewMarker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewMarker.js","names":[],"sources":["../../../src/features/viewports/viewMarker.ts"],"sourcesContent":["import { pointInPolygon, pointSegmentDist2, polygonFromPoints } from '@weasel-js/geom';\nimport type { DrawCommand } from '@weasel-js/renderer';\nimport type { RenderLayer } from 'core/layers/render';\nimport { aimSpace2d, type AimOutline, type AimSpace, type ViewAim } from './aim';\n\n/** An aim handed in by value (another surface's view, a 3D pane), with the writer that moves it. */\nexport interface AimSource {\n aim(): ViewAim | null;\n setAim?(aim: ViewAim): void;\n}\n\n/** How a marker's outline is stroked, in screen px. */\nexport interface ViewMarkerStyle {\n stroke?: string;\n width?: number;\n dash?: readonly number[];\n}\n\n/** One view's aim, drawn inside another view's frame. */\nexport interface ViewMarkerProps {\n /** Unique among the markers on one surface. */\n id: string;\n /** Whose aim: a view id on this surface, `null` for the root view, or an aim by value. */\n source: string | null | AimSource;\n /** Whose frame it is drawn in, after that view's layers: a view id, or `null` for the root. */\n target: string | null;\n /** Screen px. Default: stroke `#ffffff`, width 1, dash [2, 3]. */\n style?: ViewMarkerStyle;\n /** Default true: dragging the marker edits the source's aim. A source with no writer is never interactive.\n * A marker grabs its whole interior plus {@link VIEW_MARKER_HIT_SLOP_PX}, so one covering much of its\n * frame takes every press there; `false` opts out. */\n interactive?: boolean;\n}\n\n/** The marker style a {@link ViewMarkerProps.style} fills in from: the minimap indicator's. */\nexport const VIEW_MARKER_DEFAULT_STYLE: Required<ViewMarkerStyle> = { stroke: '#ffffff', width: 1, dash: [2, 3] };\n\n/** What a marker resolves aims through: the surface's views. */\nexport interface ViewMarkerHost {\n aimOf(id: string | null): ViewAim | null;\n setAim(id: string | null, aim: ViewAim): boolean;\n}\n\n/** The aim `source` names: a view's through `host`, or one handed in by value. */\nexport function markerSourceAim(source: ViewMarkerProps['source'], host: ViewMarkerHost): ViewAim | null {\n return source === null || typeof source === 'string' ? host.aimOf(source) : source.aim();\n}\n\n/** A screen-space layer, id `view-marker:<id>`, drawing `props`'s source aim in the frame it is handed. */\nexport function createViewMarkerLayer(props: () => ViewMarkerProps, host: ViewMarkerHost): RenderLayer<unknown> {\n const { id } = props();\n return {\n id: `view-marker:${id}`,\n label: `View marker ${id}`,\n space: 'screen',\n draw: (_data, view, dims): DrawCommand[] => {\n const { source, target, style } = props();\n if (source === target) return [];\n const aim = markerSourceAim(source, host);\n const outline = aim?.outlineIn(aimSpace2d(target, view, dims));\n if (!outline) return [];\n const d = VIEW_MARKER_DEFAULT_STYLE;\n return [{\n kind: 'path',\n path: polygonFromPoints(outline),\n stroke: {\n paint: { kind: 'solid', color: style?.stroke ?? d.stroke },\n width: style?.width ?? d.width,\n dash: [...(style?.dash ?? d.dash)],\n },\n }];\n },\n };\n}\n\n/** A press on a marker, held for the drag: where it started, and the aim it started from. */\nexport interface ViewMarkerGrab {\n readonly markerId: string;\n /** Pan the source so the world point under the press ends up under `world`, a point in the target's world. */\n moveTo(world: { x: number; y: number }): void;\n}\n\n/** A press this many screen px outside the outline still counts. */\nexport const VIEW_MARKER_HIT_SLOP_PX = 4;\n\n/**\n * The grab for a press at frame px `at` in `space`, the marker's target, or\n * `null` when the marker is not interactive, its source has no writer or no\n * aim, or `at` is not on its outline or within {@link VIEW_MARKER_HIT_SLOP_PX} of it. A surface with views\n * calls this itself; a canvas with none, such as a detached minimap, calls it to route a press to its marker.\n */\nexport function grabViewMarker(\n props: ViewMarkerProps,\n host: ViewMarkerHost,\n space: AimSpace,\n at: { x: number; y: number },\n): ViewMarkerGrab | null {\n const { id, source, target, interactive } = props;\n if (interactive === false || source === target) return null;\n const write = source === null || typeof source === 'string'\n ? (aim: ViewAim) => { host.setAim(source, aim); }\n : source.setAim?.bind(source);\n if (!write) return null;\n const startAim = markerSourceAim(source, host);\n const outline = startAim?.outlineIn(space);\n if (!startAim || !outline || !outlineHolds(outline, at, VIEW_MARKER_HIT_SLOP_PX)) return null;\n return {\n markerId: id,\n moveTo: (world) => {\n const to = space.project(world);\n const next = to && startAim.pannedIn(space, at, to);\n if (next) write(next);\n },\n };\n}\n\nfunction outlineHolds(outline: AimOutline, p: { x: number; y: number }, slop: number): boolean {\n if (pointInPolygon(outline.flatMap((q) => [q.x, q.y]), p.x, p.y)) return true;\n for (let i = 0; i < outline.length; i++) {\n const a = outline[i]!;\n const b = outline[(i + 1) % outline.length]!;\n if (pointSegmentDist2(p.x, p.y, a.x, a.y, b.x, b.y) <= slop * slop) return true;\n }\n return false;\n}\n"],"mappings":";;;;;AAmCA,IAAa,4BAAuD;CAAE,QAAQ;CAAW,OAAO;CAAG,MAAM,CAAC,GAAG,CAAC;AAAE;;AAShH,SAAgB,gBAAgB,QAAmC,MAAsC;CACvG,OAAO,WAAW,QAAQ,OAAO,WAAW,WAAW,KAAK,MAAM,MAAM,IAAI,OAAO,IAAI;AACzF;;AAGA,SAAgB,sBAAsB,OAA8B,MAA4C;CAC9G,MAAM,EAAE,OAAO,MAAM;CACrB,OAAO;EACL,IAAI,eAAe;EACnB,OAAO,eAAe;EACtB,OAAO;EACP,OAAO,OAAO,MAAM,SAAwB;GAC1C,MAAM,EAAE,QAAQ,QAAQ,UAAU,MAAM;GACxC,IAAI,WAAW,QAAQ,OAAO,CAAC;GAE/B,MAAM,UADM,gBAAgB,QAAQ,IACpB,CAAA,EAAK,UAAU,WAAW,QAAQ,MAAM,IAAI,CAAC;GAC7D,IAAI,CAAC,SAAS,OAAO,CAAC;GACtB,MAAM,IAAI;GACV,OAAO,CAAC;IACN,MAAM;IACN,MAAM,kBAAkB,OAAO;IAC/B,QAAQ;KACN,OAAO;MAAE,MAAM;MAAS,OAAO,OAAO,UAAU,EAAE;KAAO;KACzD,OAAO,OAAO,SAAS,EAAE;KACzB,MAAM,CAAC,GAAI,OAAO,QAAQ,EAAE,IAAK;IACnC;GACF,CAAC;EACH;CACF;AACF;;AAUA,IAAa,0BAA0B;;;;;;;AAQvC,SAAgB,eACd,OACA,MACA,OACA,IACuB;CACvB,MAAM,EAAE,IAAI,QAAQ,QAAQ,gBAAgB;CAC5C,IAAI,gBAAgB,SAAS,WAAW,QAAQ,OAAO;CACvD,MAAM,QAAQ,WAAW,QAAQ,OAAO,WAAW,YAC9C,QAAiB;EAAE,KAAK,OAAO,QAAQ,GAAG;CAAG,IAC9C,OAAO,QAAQ,KAAK,MAAM;CAC9B,IAAI,CAAC,OAAO,OAAO;CACnB,MAAM,WAAW,gBAAgB,QAAQ,IAAI;CAC7C,MAAM,UAAU,UAAU,UAAU,KAAK;CACzC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,aAAa,SAAS,IAAI,uBAAuB,GAAG,OAAO;CACzF,OAAO;EACL,UAAU;EACV,SAAS,UAAU;GACjB,MAAM,KAAK,MAAM,QAAQ,KAAK;GAC9B,MAAM,OAAO,MAAM,SAAS,SAAS,OAAO,IAAI,EAAE;GAClD,IAAI,MAAM,MAAM,IAAI;EACtB;CACF;AACF;AAEA,SAAS,aAAa,SAAqB,GAA6B,MAAuB;CAC7F,IAAI,eAAe,QAAQ,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO;CACzE,KAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;EACvC,MAAM,IAAI,QAAQ;EAClB,MAAM,IAAI,SAAS,IAAI,KAAK,QAAQ;EACpC,IAAI,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,OAAO,MAAM,OAAO;CAC7E;CACA,OAAO;AACT"}
@@ -0,0 +1,55 @@
1
+ import { hitPredicate } from "@weasel-js/gestures";
2
+
3
+ //#region src/features/viewports/viewMarkerDrag.ts
4
+ /** The action id a drag on a view marker routes to. */
5
+ var VIEW_MARKER_DRAG = "view.marker.drag";
6
+ /** The id of the entry {@link createViewMarkerContribution} builds. */
7
+ var VIEW_MARKER_ENTRY_ID = "view-marker";
8
+ var MARKER_KIND_PREFIX = "layer:view-marker:";
9
+ function grabIn(affordance) {
10
+ return affordance?.payload ?? null;
11
+ }
12
+ /** Drags the grabbed marker. There is nothing to commit, so a cancel ends where a release does. */
13
+ function viewMarkerDragAction() {
14
+ return {
15
+ id: VIEW_MARKER_DRAG,
16
+ label: "View marker — drag",
17
+ invoker: {
18
+ timing: "ongoing",
19
+ start: (ctx) => {
20
+ const grab = grabIn(ctx.drag?.affordance);
21
+ if (!grab) return {};
22
+ return {
23
+ kind: VIEW_MARKER_DRAG,
24
+ onMove: (m) => {
25
+ grab.moveTo(m.drag?.current ?? m.world);
26
+ }
27
+ };
28
+ }
29
+ }
30
+ };
31
+ }
32
+ /**
33
+ * The always-on entry (id `'view-marker'`) that binds a drag on any marker to {@link VIEW_MARKER_DRAG}.
34
+ * A `<SceneCanvas>` installs it unless `actions={null}` or a `tools` takeover leaves it out; to turn marker
35
+ * dragging back on there, pass it in `ambient`, or in the takeover's own `useTools` ambient list.
36
+ */
37
+ function createViewMarkerContribution() {
38
+ return {
39
+ id: VIEW_MARKER_ENTRY_ID,
40
+ eligibility: { always: true },
41
+ actions: [viewMarkerDragAction()],
42
+ bindings: [{
43
+ spec: {
44
+ kind: "drag",
45
+ target: { kindOf: hitPredicate((hit) => hit?.kind?.startsWith(MARKER_KIND_PREFIX) ?? false) }
46
+ },
47
+ actionId: VIEW_MARKER_DRAG,
48
+ opts: { id: "view-marker.drag" }
49
+ }]
50
+ };
51
+ }
52
+
53
+ //#endregion
54
+ export { VIEW_MARKER_DRAG, VIEW_MARKER_ENTRY_ID, createViewMarkerContribution, viewMarkerDragAction };
55
+ //# sourceMappingURL=viewMarkerDrag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewMarkerDrag.js","names":[],"sources":["../../../src/features/viewports/viewMarkerDrag.ts"],"sourcesContent":["import { hitPredicate } from '@weasel-js/gestures';\nimport type { Action, InvocationCtx } from '@weasel-js/routing';\nimport type { SurfaceContribution } from 'canvas/surfaceContribution';\nimport type { ViewMarkerGrab } from './viewMarker';\n\n/** The action id a drag on a view marker routes to. */\nexport const VIEW_MARKER_DRAG = 'view.marker.drag';\n\n/** The id of the entry {@link createViewMarkerContribution} builds. */\nexport const VIEW_MARKER_ENTRY_ID = 'view-marker';\n\nconst MARKER_KIND_PREFIX = 'layer:view-marker:';\n\nfunction grabIn(affordance: unknown): ViewMarkerGrab | null {\n return (affordance as { payload?: ViewMarkerGrab } | null | undefined)?.payload ?? null;\n}\n\n/** Drags the grabbed marker. There is nothing to commit, so a cancel ends where a release does. */\nexport function viewMarkerDragAction(): Action {\n return {\n id: VIEW_MARKER_DRAG,\n label: 'View marker — drag',\n invoker: {\n timing: 'ongoing',\n start: (ctx: InvocationCtx) => {\n const grab = grabIn(ctx.drag?.affordance);\n if (!grab) return {};\n return {\n kind: VIEW_MARKER_DRAG,\n onMove: (m: InvocationCtx) => { grab.moveTo(m.drag?.current ?? m.world); },\n };\n },\n },\n };\n}\n\n/**\n * The always-on entry (id `'view-marker'`) that binds a drag on any marker to {@link VIEW_MARKER_DRAG}.\n * A `<SceneCanvas>` installs it unless `actions={null}` or a `tools` takeover leaves it out; to turn marker\n * dragging back on there, pass it in `ambient`, or in the takeover's own `useTools` ambient list.\n */\nexport function createViewMarkerContribution(): SurfaceContribution {\n return {\n id: VIEW_MARKER_ENTRY_ID,\n eligibility: { always: true },\n actions: [viewMarkerDragAction()],\n bindings: [{\n spec: {\n kind: 'drag',\n target: { kindOf: hitPredicate((hit) => (hit as { kind?: string } | null | undefined)?.kind?.startsWith(MARKER_KIND_PREFIX) ?? false) },\n },\n actionId: VIEW_MARKER_DRAG,\n opts: { id: 'view-marker.drag' },\n }],\n };\n}\n"],"mappings":";;;;AAMA,IAAa,mBAAmB;;AAGhC,IAAa,uBAAuB;AAEpC,IAAM,qBAAqB;AAE3B,SAAS,OAAO,YAA4C;CAC1D,OAAQ,YAAgE,WAAW;AACrF;;AAGA,SAAgB,uBAA+B;CAC7C,OAAO;EACL,IAAI;EACJ,OAAO;EACP,SAAS;GACP,QAAQ;GACR,QAAQ,QAAuB;IAC7B,MAAM,OAAO,OAAO,IAAI,MAAM,UAAU;IACxC,IAAI,CAAC,MAAM,OAAO,CAAC;IACnB,OAAO;KACL,MAAM;KACN,SAAS,MAAqB;MAAE,KAAK,OAAO,EAAE,MAAM,WAAW,EAAE,KAAK;KAAG;IAC3E;GACF;EACF;CACF;AACF;;;;;;AAOA,SAAgB,+BAAoD;CAClE,OAAO;EACL,IAAI;EACJ,aAAa,EAAE,QAAQ,KAAK;EAC5B,SAAS,CAAC,qBAAqB,CAAC;EAChC,UAAU,CAAC;GACT,MAAM;IACJ,MAAM;IACN,QAAQ,EAAE,QAAQ,cAAc,QAAS,KAA8C,MAAM,WAAW,kBAAkB,KAAK,KAAK,EAAE;GACxI;GACA,UAAU;GACV,MAAM,EAAE,IAAI,mBAAmB;EACjC,CAAC;CACH;AACF"}
@@ -1,7 +1,7 @@
1
1
  //#region src/icons.table.json
2
2
  var namespace = "core";
3
3
  var owner = "@weasel-js/core";
4
- var icons = /*#__PURE__*/ JSON.parse("{\"arrow\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M3.5 16.5 12.9 7.1\\\" stroke-linecap=\\\"round\\\"/><path d=\\\"M16.5 3.5 11.06 5.98 14.03 8.95Z\\\" fill=\\\"currentColor\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"bone\":{\"body\":\"<g stroke-linecap=\\\"butt\\\"><path d=\\\"M 5.6 14.4 L 8.9 14.7 L 15.2 4.8 L 5.3 11.1 Z\\\"/><circle cx=\\\"4.6\\\" cy=\\\"15.4\\\" r=\\\"2\\\" stroke-width=\\\"1.25\\\"/><circle cx=\\\"15.6\\\" cy=\\\"4.4\\\" r=\\\"1.4\\\" stroke-width=\\\"1.25\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"ellipse\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><ellipse cx=\\\"10\\\" cy=\\\"10\\\" rx=\\\"7\\\" ry=\\\"5\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"eyedropper\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><line x1=\\\"12.5\\\" y1=\\\"3.5\\\" x2=\\\"16.5\\\" y2=\\\"7.5\\\" stroke-linecap=\\\"round\\\"/><path d=\\\"M 11 7 L 13 5 a 2 2 0 0 1 2.8 0 l 1.2 1.2 a 2 2 0 0 1 0 2.8 L 15 11 Z\\\" stroke-linejoin=\\\"round\\\"/><line x1=\\\"13\\\" y1=\\\"9\\\" x2=\\\"5\\\" y2=\\\"17\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"11\\\" y1=\\\"7\\\" x2=\\\"3\\\" y2=\\\"15\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"3\\\" y1=\\\"15\\\" x2=\\\"5\\\" y2=\\\"17\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"hand\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"5\\\" y=\\\"10\\\" width=\\\"10\\\" height=\\\"7.5\\\" rx=\\\"2\\\"/><line x1=\\\"6.5\\\" y1=\\\"10\\\" x2=\\\"6.5\\\" y2=\\\"4.5\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"9\\\" y1=\\\"10\\\" x2=\\\"9\\\" y2=\\\"3\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"11.5\\\" y1=\\\"10\\\" x2=\\\"11.5\\\" y2=\\\"3.5\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"14\\\" y1=\\\"10\\\" x2=\\\"14\\\" y2=\\\"5.5\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"5\\\" y1=\\\"12.5\\\" x2=\\\"2.5\\\" y2=\\\"14.5\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"image\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"3\\\" y=\\\"4\\\" width=\\\"14\\\" height=\\\"12\\\" rx=\\\"1\\\"/><circle cx=\\\"7\\\" cy=\\\"8\\\" r=\\\"1.4\\\"/><path d=\\\"M4 14l4-4 3 3 3-4 2 2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"lasso\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 6 13 Q 2.5 8.5 5 5 Q 9 2 13.5 4.5 Q 17.5 7.5 15.5 11.5 Q 13 14 9.5 13.5 Q 7.5 13.2 6 13 Z\\\" stroke-linejoin=\\\"round\\\"/><path d=\\\"M 6 13 L 4 17\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"line\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><line x1=\\\"4\\\" y1=\\\"16\\\" x2=\\\"16\\\" y2=\\\"4\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"pen\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 4 4 L 8.5 4 L 16 11.5 L 13 14.5 L 4 5.5 Z\\\" fill=\\\"currentColor\\\" stroke-linejoin=\\\"round\\\"/><line x1=\\\"13\\\" y1=\\\"14.5\\\" x2=\\\"14.2\\\" y2=\\\"15.7\\\" stroke-linecap=\\\"round\\\"/><circle cx=\\\"15.5\\\" cy=\\\"16.5\\\" r=\\\"1.1\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"pencil\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 3 17 L 5.5 14.5 L 14 6 L 17 9 L 8.5 17.5 L 6 17 Z\\\" stroke-linejoin=\\\"round\\\"/><line x1=\\\"12\\\" y1=\\\"4\\\" x2=\\\"17\\\" y2=\\\"9\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"polygon\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><polygon points=\\\"10,3 16.5,6.5 16.5,13.5 10,17 3.5,13.5 3.5,6.5\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"rect\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"5\\\" y=\\\"6\\\" width=\\\"11\\\" height=\\\"9\\\"/><line x1=\\\"3\\\" y1=\\\"4\\\" x2=\\\"7\\\" y2=\\\"4\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"5\\\" y1=\\\"2\\\" x2=\\\"5\\\" y2=\\\"6\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"select\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 4 3 L 4 14.5 L 7.2 11.4 L 9.5 16 L 11.4 15.1 L 9.1 10.5 L 13.5 10.5 Z\\\" fill=\\\"currentColor\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"slice\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 8.5 10.5 L 14.5 4.5 L 16.5 6.5 L 10.5 12.5\\\" stroke-linejoin=\\\"round\\\" stroke-linecap=\\\"round\\\"/><path d=\\\"M 8.5 10.5 L 3.5 15.5 L 10.5 12.5 Z\\\" fill=\\\"currentColor\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"star\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><polygon points=\\\"10,2.5 12.1,7.9 17.8,8.3 13.4,12 14.8,17.5 10,14.4 5.2,17.5 6.6,12 2.2,8.3 7.9,7.9\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"sticky\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M 3.5 3.5 L 16.5 3.5 L 16.5 12 L 12 16.5 L 3.5 16.5 Z\\\"/><path d=\\\"M 16.5 12 L 12 12 L 12 16.5\\\"/><path d=\\\"M 6.5 7.5 L 13.5 7.5 M 6.5 10.5 L 9.5 10.5\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"text\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 4 5 L 16 5 M 10 5 L 10 16 M 7 16 L 13 16\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"unknown\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"7.5\\\"/><path d=\\\"M 7.5 8 Q 7.5 5.5 10 5.5 Q 12.5 5.5 12.5 8 Q 12.5 9.5 10 11 L 10 12.5\\\" stroke-linecap=\\\"round\\\"/><circle cx=\\\"10\\\" cy=\\\"14.5\\\" r=\\\"0.6\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"weight\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"7\\\" stroke-width=\\\"1\\\" stroke-dasharray=\\\"1.6 1.6\\\"/><circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"4.25\\\" stroke-width=\\\"1.25\\\"/><circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"2\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"cut\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"6\\\" cy=\\\"14\\\" r=\\\"2.5\\\"/><circle cx=\\\"14\\\" cy=\\\"14\\\" r=\\\"2.5\\\"/><path d=\\\"M8 12 L16 4\\\" stroke-linecap=\\\"round\\\"/><path d=\\\"M12 12 L4 4\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"copy\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M6 14 H3 V3 H14 V6\\\" stroke-linejoin=\\\"round\\\"/><rect x=\\\"6\\\" y=\\\"6\\\" width=\\\"11\\\" height=\\\"11\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"paste\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"4\\\" y=\\\"5\\\" width=\\\"12\\\" height=\\\"13\\\" rx=\\\"1\\\"/><rect x=\\\"7.5\\\" y=\\\"2.5\\\" width=\\\"5\\\" height=\\\"4\\\" rx=\\\"0.5\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"duplicate\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"3\\\" y=\\\"3\\\" width=\\\"10\\\" height=\\\"10\\\"/><rect x=\\\"7\\\" y=\\\"7\\\" width=\\\"10\\\" height=\\\"10\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"transformAgain\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"2\\\" y=\\\"2\\\" width=\\\"8\\\" height=\\\"8\\\"/><rect x=\\\"6\\\" y=\\\"6\\\" width=\\\"8\\\" height=\\\"8\\\"/><rect x=\\\"10\\\" y=\\\"10\\\" width=\\\"8\\\" height=\\\"8\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"group\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 2 5 L 2 2 L 5 2\\\"/><path d=\\\"M 18 5 L 18 2 L 15 2\\\"/><path d=\\\"M 2 15 L 2 18 L 5 18\\\"/><path d=\\\"M 18 15 L 18 18 L 15 18\\\"/><rect x=\\\"5\\\" y=\\\"6\\\" width=\\\"4.5\\\" height=\\\"8\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"11\\\" y=\\\"6\\\" width=\\\"4\\\" height=\\\"8\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"ungroup\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 2 5 L 2 2 L 5 2\\\" stroke-dasharray=\\\"1.5 1.5\\\"/><path d=\\\"M 18 15 L 18 18 L 15 18\\\" stroke-dasharray=\\\"1.5 1.5\\\"/><rect x=\\\"3\\\" y=\\\"5\\\" width=\\\"4.5\\\" height=\\\"8\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"13\\\" y=\\\"7\\\" width=\\\"4\\\" height=\\\"8\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"bringForward\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"3\\\" y=\\\"3\\\" width=\\\"11\\\" height=\\\"11\\\"/><rect x=\\\"6\\\" y=\\\"6\\\" width=\\\"11\\\" height=\\\"11\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"bringToFront\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"2\\\" y=\\\"2\\\" width=\\\"9\\\" height=\\\"9\\\"/><rect x=\\\"6\\\" y=\\\"6\\\" width=\\\"9\\\" height=\\\"9\\\"/><rect x=\\\"9\\\" y=\\\"9\\\" width=\\\"9\\\" height=\\\"9\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"sendBackward\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"3\\\" y=\\\"3\\\" width=\\\"11\\\" height=\\\"11\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"6\\\" y=\\\"6\\\" width=\\\"11\\\" height=\\\"11\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"sendToBack\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"2\\\" y=\\\"2\\\" width=\\\"9\\\" height=\\\"9\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"6\\\" y=\\\"6\\\" width=\\\"9\\\" height=\\\"9\\\"/><rect x=\\\"9\\\" y=\\\"9\\\" width=\\\"9\\\" height=\\\"9\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"flipX\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><line x1=\\\"10\\\" y1=\\\"2\\\" x2=\\\"10\\\" y2=\\\"18\\\" stroke-dasharray=\\\"2 1.5\\\"/><path d=\\\"M 8 4 L 3 10 L 8 16 Z\\\"/><path d=\\\"M 12 4 L 17 10 L 12 16 Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"flipY\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><line x1=\\\"2\\\" y1=\\\"10\\\" x2=\\\"18\\\" y2=\\\"10\\\" stroke-dasharray=\\\"2 1.5\\\"/><path d=\\\"M 4 8 L 10 3 L 16 8 Z\\\"/><path d=\\\"M 4 12 L 10 17 L 16 12 Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"delete\":{\"body\":\"<path d=\\\"M3.6 5.8h12.8M8 5.8V4.5A1.1 1.1 0 0 1 9.1 3.4h1.8A1.1 1.1 0 0 1 12 4.5v1.3\\\"/><path d=\\\"M5.2 5.8v9.6A1.6 1.6 0 0 0 6.8 17h6.4a1.6 1.6 0 0 0 1.6-1.6V5.8\\\"/><path d=\\\"M8.4 8.8v5.2M11.6 8.8v5.2\\\" stroke-width=\\\"1\\\"/>\",\"group\":\"History\",\"tags\":[]},\"undo\":{\"body\":\"<path d=\\\"M4.4 8.4h6.8a3.6 3.6 0 0 1 0 7.2H8.6\\\"/><path d=\\\"M6.47 10.14 4.4 8.4 6.47 6.66\\\"/>\",\"group\":\"History\",\"tags\":[]},\"redo\":{\"body\":\"<path d=\\\"M15.6 8.4H8.8a3.6 3.6 0 0 0 0 7.2H11.4\\\"/><path d=\\\"M13.53 6.66 15.6 8.4 13.53 10.14\\\"/>\",\"group\":\"History\",\"tags\":[]},\"measure\":{\"body\":\"<rect x=\\\"2.6\\\" y=\\\"7.4\\\" width=\\\"14.8\\\" height=\\\"5.2\\\" rx=\\\"1.2\\\"/><path d=\\\"M6 7.4v2.2M9.4 7.4v3M12.8 7.4v2.2\\\" stroke-width=\\\"1\\\"/>\",\"group\":\"History\",\"tags\":[]},\"tune\":{\"body\":\"<path d=\\\"M3.4 6h13.2M3.4 10h13.2M3.4 14h13.2\\\" stroke-width=\\\"1.25\\\"/><circle cx=\\\"7\\\" cy=\\\"6\\\" r=\\\"1.8\\\"/><circle cx=\\\"12.6\\\" cy=\\\"10\\\" r=\\\"1.8\\\"/><circle cx=\\\"9\\\" cy=\\\"14\\\" r=\\\"1.8\\\"/>\",\"group\":\"History\",\"tags\":[]},\"alignLeft\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><line x1=\\\"2\\\" y1=\\\"2\\\" x2=\\\"2\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/><rect x=\\\"2.5\\\" y=\\\"3\\\" width=\\\"9\\\" height=\\\"3\\\"/><rect x=\\\"2.5\\\" y=\\\"9\\\" width=\\\"6\\\" height=\\\"3\\\"/></g>\",\"group\":\"Align\",\"tags\":[]},\"alignRight\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><line x1=\\\"14\\\" y1=\\\"2\\\" x2=\\\"14\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/><rect x=\\\"4.5\\\" y=\\\"3\\\" width=\\\"9\\\" height=\\\"3\\\"/><rect x=\\\"7.5\\\" y=\\\"9\\\" width=\\\"6\\\" height=\\\"3\\\"/></g>\",\"group\":\"Align\",\"tags\":[]},\"alignTop\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><line x1=\\\"2\\\" y1=\\\"2\\\" x2=\\\"14\\\" y2=\\\"2\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/><rect x=\\\"3\\\" y=\\\"2.5\\\" width=\\\"3\\\" height=\\\"9\\\"/><rect x=\\\"9\\\" y=\\\"2.5\\\" width=\\\"3\\\" height=\\\"6\\\"/></g>\",\"group\":\"Align\",\"tags\":[]},\"alignBottom\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><line x1=\\\"2\\\" y1=\\\"14\\\" x2=\\\"14\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/><rect x=\\\"3\\\" y=\\\"4.5\\\" width=\\\"3\\\" height=\\\"9\\\"/><rect x=\\\"9\\\" y=\\\"7.5\\\" width=\\\"3\\\" height=\\\"6\\\"/></g>\",\"group\":\"Align\",\"tags\":[]},\"alignCenterX\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><line x1=\\\"8\\\" y1=\\\"2\\\" x2=\\\"8\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/><rect x=\\\"3.5\\\" y=\\\"3\\\" width=\\\"9\\\" height=\\\"3\\\"/><rect x=\\\"5\\\" y=\\\"9\\\" width=\\\"6\\\" height=\\\"3\\\"/></g>\",\"group\":\"Align\",\"tags\":[]},\"alignCenterY\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><line x1=\\\"2\\\" y1=\\\"8\\\" x2=\\\"14\\\" y2=\\\"8\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/><rect x=\\\"3\\\" y=\\\"3.5\\\" width=\\\"3\\\" height=\\\"9\\\"/><rect x=\\\"9\\\" y=\\\"5\\\" width=\\\"3\\\" height=\\\"6\\\"/></g>\",\"group\":\"Align\",\"tags\":[]},\"distributeHorizontal\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><rect x=\\\"1\\\" y=\\\"4\\\" width=\\\"3\\\" height=\\\"8\\\"/><rect x=\\\"6.5\\\" y=\\\"4\\\" width=\\\"3\\\" height=\\\"8\\\"/><rect x=\\\"12\\\" y=\\\"4\\\" width=\\\"3\\\" height=\\\"8\\\"/></g>\",\"group\":\"Distribute\",\"tags\":[]},\"distributeVertical\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><rect x=\\\"4\\\" y=\\\"1\\\" width=\\\"8\\\" height=\\\"3\\\"/><rect x=\\\"4\\\" y=\\\"6.5\\\" width=\\\"8\\\" height=\\\"3\\\"/><rect x=\\\"4\\\" y=\\\"12\\\" width=\\\"8\\\" height=\\\"3\\\"/></g>\",\"group\":\"Distribute\",\"tags\":[]},\"union\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"5\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"5\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"intersect\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"5\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\"/><path d=\\\"M 10 6 A 5 5 0 0 1 10 14 A 5 5 0 0 1 10 6 Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"subtract\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"5\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\"/><path d=\\\"M 10 6 A 5 5 0 1 0 10 14 A 5 5 0 0 0 10 6 Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"exclude\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"5\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\"/><path d=\\\"M 10 6 A 5 5 0 1 0 10 14 A 5 5 0 0 0 10 6 Z M 10 6 A 5 5 0 1 1 10 14 A 5 5 0 0 1 10 6 Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-rule=\\\"evenodd\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"divide\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"5\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\"/><line x1=\\\"10\\\" y1=\\\"6\\\" x2=\\\"10\\\" y2=\\\"14\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"crop\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><defs><clipPath id=\\\"weasel-default-crop-mask\\\"><rect x=\\\"9\\\" y=\\\"5\\\" width=\\\"8\\\" height=\\\"10\\\"/></clipPath></defs><circle cx=\\\"9\\\" cy=\\\"10\\\" r=\\\"5\\\"/><circle cx=\\\"9\\\" cy=\\\"10\\\" r=\\\"5\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" clip-path=\\\"url(#weasel-default-crop-mask)\\\"/><rect x=\\\"9\\\" y=\\\"5\\\" width=\\\"8\\\" height=\\\"10\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"trim\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 10 6 A 5 5 0 1 0 10 14 A 5 5 0 0 0 10 6 Z\\\" stroke-linejoin=\\\"round\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\" fill=\\\"currentColor\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"merge\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 10 6 A 5 5 0 1 0 10 14 A 5 5 0 1 0 10 6 Z\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"join\":{\"body\":\"<path d=\\\"M2 15.6 H6 M14 4.4 H18\\\"/><path d=\\\"M6 15.6 L14 4.4\\\"/><rect x=\\\"4.5\\\" y=\\\"14.1\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"12.5\\\" y=\\\"2.9\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Path commands\",\"tags\":[]},\"bridge\":{\"body\":\"<path d=\\\"M2 15.6 H6 M14 4.4 H18\\\"/><path d=\\\"M6 15.6 C11 15.6 9 4.4 14 4.4\\\"/><rect x=\\\"4.5\\\" y=\\\"14.1\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"12.5\\\" y=\\\"2.9\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Path commands\",\"tags\":[]},\"cutAtCrossings\":{\"body\":\"<path d=\\\"M2.5 10.625 H6 M12.75 10.625 H17.5\\\"/><path d=\\\"M9.375 2.5 V17.5\\\"/><rect x=\\\"4.5\\\" y=\\\"9.125\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"11.25\\\" y=\\\"9.125\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Path commands\",\"tags\":[]},\"simplify\":{\"body\":\"<path d=\\\"M3 7.5 L5.5 4.5 L8 7.5 L10.5 4.5 L13 7.5 L15.5 4.5 L17 6\\\" stroke-width=\\\"1.25\\\"/><path d=\\\"M4 15.6 C8 10.5 12 10.5 16 15.6\\\"/><rect x=\\\"2.5\\\" y=\\\"14.1\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"14.5\\\" y=\\\"14.1\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Path commands\",\"tags\":[]},\"offsetPath\":{\"body\":\"<rect x=\\\"6.875\\\" y=\\\"6.875\\\" width=\\\"6.25\\\" height=\\\"6.25\\\" rx=\\\"1\\\"/><rect x=\\\"3.125\\\" y=\\\"3.125\\\" width=\\\"13.75\\\" height=\\\"13.75\\\" rx=\\\"4.75\\\" stroke-width=\\\"1.25\\\"/>\",\"group\":\"Path commands\",\"tags\":[]},\"retractHandles\":{\"body\":\"<path d=\\\"M3 17 L10 7 L17 17\\\"/><path d=\\\"M2.5 5 H6.5 M5 3.5 L6.5 5 L5 6.5\\\" stroke-width=\\\"1\\\"/><path d=\\\"M17.5 5 H13.5 M15 3.5 L13.5 5 L15 6.5\\\" stroke-width=\\\"1\\\"/><rect x=\\\"8.5\\\" y=\\\"5.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"symmetricHandles\":{\"body\":\"<path d=\\\"M3 17 C3 10 6 8 10 8 S17 10 17 17\\\"/><path d=\\\"M3.5 8 H16.5\\\" stroke-width=\\\"1\\\"/><circle cx=\\\"3.5\\\" cy=\\\"8\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><circle cx=\\\"16.5\\\" cy=\\\"8\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"8.5\\\" y=\\\"6.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"holdHandleAngle\":{\"body\":\"<path d=\\\"M5 15 L16 4\\\"/><path d=\\\"M12 4 H16 V8\\\"/><circle cx=\\\"10.5\\\" cy=\\\"9.5\\\" r=\\\"1.75\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"3.5\\\" y=\\\"13.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"holdHandleLength\":{\"body\":\"<circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"6.5\\\" stroke-width=\\\"1\\\"/><path d=\\\"M10 10 L14.5962 5.4038\\\"/><circle cx=\\\"14.5962\\\" cy=\\\"5.4038\\\" r=\\\"1.75\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"8.5\\\" y=\\\"8.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"simplifyBrush\":{\"body\":\"<path d=\\\"M2 16 C5 6 15 6 18 16\\\"/><circle cx=\\\"10\\\" cy=\\\"8.5\\\" r=\\\"5\\\" stroke-width=\\\"1\\\" stroke-dasharray=\\\"2 1.5\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"harmonize\":{\"body\":\"<path d=\\\"M3 16 C3 9 6.5 6 10 6 S17 9 17 16\\\"/><path d=\\\"M4.02 7.43 L2.47 6.18 M10 3.5 V1.5 M15.98 7.43 L17.53 6.18\\\" stroke-width=\\\"1\\\"/><rect x=\\\"8.5\\\" y=\\\"4.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"averageAnchors\":{\"body\":\"<path d=\\\"M5.6 5.6 L7.6 7.6 M14.4 5.6 L12.4 7.6 M10 14.4 V12.5\\\" stroke-width=\\\"1.25\\\"/><rect x=\\\"2.875\\\" y=\\\"2.875\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"14.125\\\" y=\\\"2.875\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"8.5\\\" y=\\\"14.125\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"8.125\\\" y=\\\"8.125\\\" width=\\\"3.75\\\" height=\\\"3.75\\\" stroke-width=\\\"1.25\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"bendSegment\":{\"body\":\"<path d=\\\"M3.5 15 H16.5\\\" stroke-width=\\\"1\\\" stroke-dasharray=\\\"1.4 1.4\\\"/><path d=\\\"M3.5 15 Q10 3 16.5 15\\\"/><path d=\\\"M10 12.5 V10 M8.8 11.2 L10 10 L11.2 11.2\\\" stroke-width=\\\"1\\\"/><rect x=\\\"2\\\" y=\\\"13.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"15\\\" y=\\\"13.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"nudgeAnchors\":{\"body\":\"<g transform=\\\"rotate(0 10 10)\\\"><path d=\\\"M4.1605 6.4645 A5 5 0 0 1 4.1605 13.5355\\\"/><path d=\\\"M6.8122 3.8128 A8.75 8.75 0 0 1 6.8122 16.1872\\\"/><svg x=\\\"11.25\\\" y=\\\"3.75\\\" width=\\\"5\\\" height=\\\"12.5\\\" viewBox=\\\"11.25 3.75 5 12.5\\\" overflow=\\\"hidden\\\"><path d=\\\"M0 16.25 L20 -3.75 M3.75 16.25 L23.75 -3.75 M7.5 16.25 L27.5 -3.75 M11.25 16.25 L31.25 -3.75 M15 16.25 L35 -3.75\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"/></svg></g>\",\"group\":\"Anchors\",\"tags\":[]},\"nudgeAnchorsUp\":{\"body\":\"<g transform=\\\"rotate(-90 10 10)\\\"><path d=\\\"M4.1605 6.4645 A5 5 0 0 1 4.1605 13.5355\\\"/><path d=\\\"M6.8122 3.8128 A8.75 8.75 0 0 1 6.8122 16.1872\\\"/><svg x=\\\"11.25\\\" y=\\\"3.75\\\" width=\\\"5\\\" height=\\\"12.5\\\" viewBox=\\\"11.25 3.75 5 12.5\\\" overflow=\\\"hidden\\\"><path d=\\\"M0 16.25 L20 -3.75 M3.75 16.25 L23.75 -3.75 M7.5 16.25 L27.5 -3.75 M11.25 16.25 L31.25 -3.75 M15 16.25 L35 -3.75\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"/></svg></g>\",\"group\":\"Anchors\",\"tags\":[]},\"nudgeAnchorsDown\":{\"body\":\"<g transform=\\\"rotate(90 10 10)\\\"><path d=\\\"M4.1605 6.4645 A5 5 0 0 1 4.1605 13.5355\\\"/><path d=\\\"M6.8122 3.8128 A8.75 8.75 0 0 1 6.8122 16.1872\\\"/><svg x=\\\"11.25\\\" y=\\\"3.75\\\" width=\\\"5\\\" height=\\\"12.5\\\" viewBox=\\\"11.25 3.75 5 12.5\\\" overflow=\\\"hidden\\\"><path d=\\\"M0 16.25 L20 -3.75 M3.75 16.25 L23.75 -3.75 M7.5 16.25 L27.5 -3.75 M11.25 16.25 L31.25 -3.75 M15 16.25 L35 -3.75\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"/></svg></g>\",\"group\":\"Anchors\",\"tags\":[]},\"nudgeAnchorsLeft\":{\"body\":\"<g transform=\\\"rotate(180 10 10)\\\"><path d=\\\"M4.1605 6.4645 A5 5 0 0 1 4.1605 13.5355\\\"/><path d=\\\"M6.8122 3.8128 A8.75 8.75 0 0 1 6.8122 16.1872\\\"/><svg x=\\\"11.25\\\" y=\\\"3.75\\\" width=\\\"5\\\" height=\\\"12.5\\\" viewBox=\\\"11.25 3.75 5 12.5\\\" overflow=\\\"hidden\\\"><path d=\\\"M0 16.25 L20 -3.75 M3.75 16.25 L23.75 -3.75 M7.5 16.25 L27.5 -3.75 M11.25 16.25 L31.25 -3.75 M15 16.25 L35 -3.75\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"/></svg></g>\",\"group\":\"Anchors\",\"tags\":[]},\"createOutlines\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M3.5 3.5 H16.5 V7.5 H12 V16.5 H8 V7.5 H3.5 Z\\\" stroke-linejoin=\\\"miter\\\"/><g fill=\\\"currentColor\\\" stroke=\\\"none\\\"><rect x=\\\"2\\\" y=\\\"2\\\" width=\\\"3\\\" height=\\\"3\\\"/><rect x=\\\"15\\\" y=\\\"2\\\" width=\\\"3\\\" height=\\\"3\\\"/><rect x=\\\"6.5\\\" y=\\\"15\\\" width=\\\"3\\\" height=\\\"3\\\"/><rect x=\\\"10.5\\\" y=\\\"15\\\" width=\\\"3\\\" height=\\\"3\\\"/></g></g>\",\"group\":\"Outline\",\"tags\":[]},\"outlineStroke\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M4 4 A12 12 0 0 1 16 16 H10 A6 6 0 0 0 4 10 Z\\\" stroke-linejoin=\\\"miter\\\"/><g fill=\\\"currentColor\\\" stroke=\\\"none\\\"><rect x=\\\"2.5\\\" y=\\\"2.5\\\" width=\\\"3\\\" height=\\\"3\\\"/><rect x=\\\"14.5\\\" y=\\\"14.5\\\" width=\\\"3\\\" height=\\\"3\\\"/><rect x=\\\"8.5\\\" y=\\\"14.5\\\" width=\\\"3\\\" height=\\\"3\\\"/><rect x=\\\"2.5\\\" y=\\\"8.5\\\" width=\\\"3\\\" height=\\\"3\\\"/></g></g>\",\"group\":\"Outline\",\"tags\":[]},\"bold\":{\"body\":\"<path d=\\\"M6 3.5h4.6a3.1 3.1 0 0 1 0 6.2H6zM6 9.7h5.4a3.4 3.4 0 0 1 0 6.8H6z\\\" stroke-width=\\\"2.1\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"italic\":{\"body\":\"<path d=\\\"M9 3.5h6M5 16.5h6M12.5 3.5 7.5 16.5\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"underline\":{\"body\":\"<path d=\\\"M6 3.4v5.6a4 4 0 0 0 8 0V3.4\\\"/><path d=\\\"M4.6 17h10.8\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"strikethrough\":{\"body\":\"<path d=\\\"M14.4 5.8c-.9-1.6-2.4-2.4-4.4-2.4-2.5 0-4.2 1.3-4.2 3.1 0 .9.4 1.6 1.2 2.2\\\"/><path d=\\\"M5.6 14.2c.9 1.6 2.4 2.4 4.4 2.4 2.5 0 4.2-1.3 4.2-3.1 0-.9-.4-1.6-1.2-2.2\\\"/><path d=\\\"M3.4 10h13.2\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"overline\":{\"body\":\"<path d=\\\"M4.6 3h10.8\\\"/><ellipse cx=\\\"10\\\" cy=\\\"11.4\\\" rx=\\\"4.4\\\" ry=\\\"4.8\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"superscript\":{\"body\":\"<path d=\\\"M3.6 8.6 10.4 16.4M10.4 8.6 3.6 16.4\\\"/><path d=\\\"M11.9 5.3a2.2 2.2 0 1 1 4.3.8c0 1.4-4.3 2.2-4.3 3.5h4.5\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"subscript\":{\"body\":\"<path d=\\\"M3.6 3.6 10.4 11.4M10.4 3.6 3.6 11.4\\\"/><path d=\\\"M11.9 11.5a2.2 2.2 0 1 1 4.3.8c0 1.4-4.3 2.2-4.3 3.5h4.5\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"textAlignLeft\":{\"body\":\"<path d=\\\"M3 4.375H17M3 8.125H12M3 11.875H17M3 15.625H12\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"textAlignCenter\":{\"body\":\"<path d=\\\"M3 4.375H17M5.5 8.125H14.5M3 11.875H17M5.5 15.625H14.5\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"textAlignRight\":{\"body\":\"<path d=\\\"M3 4.375H17M8 8.125H17M3 11.875H17M8 15.625H17\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"textAlignJustify\":{\"body\":\"<path d=\\\"M3 4.375H17M3 8.125H17M3 11.875H17M3 15.625H12\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"textAlignTop\":{\"body\":\"<rect x=\\\"1.875\\\" y=\\\"1.875\\\" width=\\\"16.25\\\" height=\\\"16.25\\\" rx=\\\"2\\\" stroke-width=\\\"1\\\"/><path d=\\\"M5.5 5.625H14.5M7 9.375H13\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"textAlignMiddle\":{\"body\":\"<rect x=\\\"1.875\\\" y=\\\"1.875\\\" width=\\\"16.25\\\" height=\\\"16.25\\\" rx=\\\"2\\\" stroke-width=\\\"1\\\"/><path d=\\\"M5.5 8.125H14.5M7 11.875H13\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"textAlignBottom\":{\"body\":\"<rect x=\\\"1.875\\\" y=\\\"1.875\\\" width=\\\"16.25\\\" height=\\\"16.25\\\" rx=\\\"2\\\" stroke-width=\\\"1\\\"/><path d=\\\"M5.5 10.625H14.5M7 14.375H13\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"strokeWidth\":{\"body\":\"<path d=\\\"M3.4 5.6h13.2\\\" stroke-width=\\\"1\\\"/><path d=\\\"M3.4 10h13.2\\\" stroke-width=\\\"2\\\"/><path d=\\\"M3.4 15.2h13.2\\\" stroke-width=\\\"3.4\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"strokeCap\":{\"body\":\"<path d=\\\"M2.5 10H12\\\" stroke-linecap=\\\"butt\\\"/><path d=\\\"M12 6V14\\\" stroke-width=\\\"1\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"strokeJoin\":{\"body\":\"<path d=\\\"M4.4 15.5 10 5.5 15.6 15.5\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"strokeAlign\":{\"body\":\"<circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"6.2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"capButt\":{\"body\":\"<path d=\\\"M5.5 5.25H14.5V14.75H5.5Z\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linejoin=\\\"miter\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"capRound\":{\"body\":\"<path d=\\\"M3.13 5.25H12.13V14.75H3.13Z\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linejoin=\\\"miter\\\"/><path d=\\\"M12.13 4.5A5.5 5.5 0 0 1 12.13 15.5Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"capSquare\":{\"body\":\"<path d=\\\"M3.13 5.25H12.13V14.75H3.13Z\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linejoin=\\\"miter\\\"/><path d=\\\"M12.13 4.5H17.63V15.5H12.13Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"joinMiter\":{\"body\":\"<path d=\\\"M10 3.5 15.6 15.5H4.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"joinRound\":{\"body\":\"<path d=\\\"M4.4 15.5V12a5.6 5.6 0 0 1 11.2 0v3.5Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"joinBevel\":{\"body\":\"<path d=\\\"M6.8 8.2h6.4l2.4 7.3H4.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"alignInner\":{\"body\":\"<path d=\\\"M10 3.8A6.2 6.2 0 1 0 10 16.2A6.2 6.2 0 1 0 10 3.8Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"alignCenter\":{\"body\":\"<path d=\\\"M10 2.1A7.9 7.9 0 1 0 10 17.9A7.9 7.9 0 1 0 10 2.1ZM10 5.5A4.5 4.5 0 1 0 10 14.5A4.5 4.5 0 1 0 10 5.5Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-rule=\\\"evenodd\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"alignOuter\":{\"body\":\"<path d=\\\"M0 0H20V20H0ZM10 3.8A6.2 6.2 0 1 0 10 16.2A6.2 6.2 0 1 0 10 3.8Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-rule=\\\"evenodd\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"dashSolid\":{\"body\":\"<path d=\\\"M2 10h16\\\" stroke-width=\\\"3\\\" stroke-linecap=\\\"butt\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"dashDashed\":{\"body\":\"<path d=\\\"M2 10h16\\\" stroke-width=\\\"3\\\" stroke-linecap=\\\"butt\\\" stroke-dasharray=\\\"6 4\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"dashDotted\":{\"body\":\"<path d=\\\"M2 10h16\\\" stroke-width=\\\"3\\\" stroke-linecap=\\\"butt\\\" stroke-dasharray=\\\"2.5 2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"dashCustom\":{\"body\":\"<path d=\\\"M2 10h16\\\" stroke-width=\\\"3\\\" stroke-linecap=\\\"butt\\\" stroke-dasharray=\\\"5 2 2 2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintSolid\":{\"body\":\"<path d=\\\"M3.4 3.4H16.6V16.6H3.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"1\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintLinear\":{\"body\":\"<path d=\\\"M3.4 3.4H6.7V16.6H3.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"1\\\"/><path d=\\\"M6.7 3.4H10V16.6H6.7Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.68\\\"/><path d=\\\"M10 3.4H13.3V16.6H10Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.42\\\"/><path d=\\\"M13.3 3.4H16.6V16.6H13.3Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintRadial\":{\"body\":\"<path d=\\\"M3.4 3.4H16.6V16.6H3.4ZM4.95 4.95H15.05V15.05H4.95Z\\\" fill=\\\"currentColor\\\" fill-rule=\\\"evenodd\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.7\\\"/><path d=\\\"M4.95 4.95H15.05V15.05H4.95ZM6.5 6.5H13.5V13.5H6.5Z\\\" fill=\\\"currentColor\\\" fill-rule=\\\"evenodd\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.53\\\"/><path d=\\\"M6.5 6.5H13.5V13.5H6.5ZM8.05 8.05H11.95V11.95H8.05Z\\\" fill=\\\"currentColor\\\" fill-rule=\\\"evenodd\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.37\\\"/><path d=\\\"M8.05 8.05H11.95V11.95H8.05Z\\\" fill=\\\"currentColor\\\" fill-rule=\\\"evenodd\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintConic\":{\"body\":\"<path d=\\\"M10 10L16.6 3.4L16.6 16.6Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"1\\\"/><path d=\\\"M10 10L16.6 16.6L3.4 16.6Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.68\\\"/><path d=\\\"M10 10L3.4 16.6L3.4 3.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.42\\\"/><path d=\\\"M10 10L3.4 3.4L16.6 3.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintMesh\":{\"body\":\"<path d=\\\"M3.4 3.4L10 3.4C10 6.26 11.6 5.74 11.6 8.6C7.09 8.6 7.91 10 3.4 10L3.4 3.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"1\\\"/><path d=\\\"M10 3.4L16.6 3.4L16.6 10C13.85 10 14.35 8.6 11.6 8.6C11.6 5.74 10 6.26 10 3.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.68\\\"/><path d=\\\"M11.6 8.6C14.35 8.6 13.85 10 16.6 10L16.6 16.6L10 16.6C10 12.2 11.6 13 11.6 8.6Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.42\\\"/><path d=\\\"M11.6 8.6C11.6 13 10 12.2 10 16.6L3.4 16.6L3.4 10C7.91 10 7.09 8.6 11.6 8.6Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintPattern\":{\"body\":\"<path d=\\\"M3.4 3.4L4.7 3.4L3.4 4.7Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M8.7 3.4L11.3 3.4L3.4 11.3L3.4 8.7Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M15.3 3.4L16.6 3.4L16.6 4.7L4.7 16.6L3.4 16.6L3.4 15.3Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M16.6 8.7L16.6 11.3L11.3 16.6L8.7 16.6Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M16.6 15.3L16.6 16.6L15.3 16.6Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M15.3 3.4L16.6 3.4L16.6 4.7Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M8.7 3.4L11.3 3.4L16.6 8.7L16.6 11.3Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M3.4 3.4L4.7 3.4L16.6 15.3L16.6 16.6L15.3 16.6L3.4 4.7Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M11.3 16.6L8.7 16.6L3.4 11.3L3.4 8.7Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M4.7 16.6L3.4 16.6L3.4 15.3Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintNone\":{\"body\":\"<path d=\\\"M3.4 3.4H16.6V16.6H3.4Z\\\"/><path d=\\\"M3.4 16.6L16.6 3.4\\\" stroke=\\\"var(--wzl-danger, #d94a3f)\\\" stroke-width=\\\"1.8\\\" stroke-linecap=\\\"butt\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]}}");
4
+ var icons = /*#__PURE__*/ JSON.parse("{\"arrow\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M3.5 16.5 12.9 7.1\\\" stroke-linecap=\\\"round\\\"/><path d=\\\"M16.5 3.5 11.06 5.98 14.03 8.95Z\\\" fill=\\\"currentColor\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"ellipse\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><ellipse cx=\\\"10\\\" cy=\\\"10\\\" rx=\\\"7\\\" ry=\\\"5\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"eyedropper\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><line x1=\\\"12.5\\\" y1=\\\"3.5\\\" x2=\\\"16.5\\\" y2=\\\"7.5\\\" stroke-linecap=\\\"round\\\"/><path d=\\\"M 11 7 L 13 5 a 2 2 0 0 1 2.8 0 l 1.2 1.2 a 2 2 0 0 1 0 2.8 L 15 11 Z\\\" stroke-linejoin=\\\"round\\\"/><line x1=\\\"13\\\" y1=\\\"9\\\" x2=\\\"5\\\" y2=\\\"17\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"11\\\" y1=\\\"7\\\" x2=\\\"3\\\" y2=\\\"15\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"3\\\" y1=\\\"15\\\" x2=\\\"5\\\" y2=\\\"17\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"hand\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"5\\\" y=\\\"10\\\" width=\\\"10\\\" height=\\\"7.5\\\" rx=\\\"2\\\"/><line x1=\\\"6.5\\\" y1=\\\"10\\\" x2=\\\"6.5\\\" y2=\\\"4.5\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"9\\\" y1=\\\"10\\\" x2=\\\"9\\\" y2=\\\"3\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"11.5\\\" y1=\\\"10\\\" x2=\\\"11.5\\\" y2=\\\"3.5\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"14\\\" y1=\\\"10\\\" x2=\\\"14\\\" y2=\\\"5.5\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"5\\\" y1=\\\"12.5\\\" x2=\\\"2.5\\\" y2=\\\"14.5\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"image\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"3\\\" y=\\\"4\\\" width=\\\"14\\\" height=\\\"12\\\" rx=\\\"1\\\"/><circle cx=\\\"7\\\" cy=\\\"8\\\" r=\\\"1.4\\\"/><path d=\\\"M4 14l4-4 3 3 3-4 2 2\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"lasso\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 6 13 Q 2.5 8.5 5 5 Q 9 2 13.5 4.5 Q 17.5 7.5 15.5 11.5 Q 13 14 9.5 13.5 Q 7.5 13.2 6 13 Z\\\" stroke-linejoin=\\\"round\\\"/><path d=\\\"M 6 13 L 4 17\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"line\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><line x1=\\\"4\\\" y1=\\\"16\\\" x2=\\\"16\\\" y2=\\\"4\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"pen\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 4 4 L 8.5 4 L 16 11.5 L 13 14.5 L 4 5.5 Z\\\" fill=\\\"currentColor\\\" stroke-linejoin=\\\"round\\\"/><line x1=\\\"13\\\" y1=\\\"14.5\\\" x2=\\\"14.2\\\" y2=\\\"15.7\\\" stroke-linecap=\\\"round\\\"/><circle cx=\\\"15.5\\\" cy=\\\"16.5\\\" r=\\\"1.1\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"pencil\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 3 17 L 5.5 14.5 L 14 6 L 17 9 L 8.5 17.5 L 6 17 Z\\\" stroke-linejoin=\\\"round\\\"/><line x1=\\\"12\\\" y1=\\\"4\\\" x2=\\\"17\\\" y2=\\\"9\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"polygon\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><polygon points=\\\"10,3 16.5,6.5 16.5,13.5 10,17 3.5,13.5 3.5,6.5\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"rect\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"5\\\" y=\\\"6\\\" width=\\\"11\\\" height=\\\"9\\\"/><line x1=\\\"3\\\" y1=\\\"4\\\" x2=\\\"7\\\" y2=\\\"4\\\" stroke-linecap=\\\"round\\\"/><line x1=\\\"5\\\" y1=\\\"2\\\" x2=\\\"5\\\" y2=\\\"6\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"select\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 4 3 L 4 14.5 L 7.2 11.4 L 9.5 16 L 11.4 15.1 L 9.1 10.5 L 13.5 10.5 Z\\\" fill=\\\"currentColor\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"slice\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 8.5 10.5 L 14.5 4.5 L 16.5 6.5 L 10.5 12.5\\\" stroke-linejoin=\\\"round\\\" stroke-linecap=\\\"round\\\"/><path d=\\\"M 8.5 10.5 L 3.5 15.5 L 10.5 12.5 Z\\\" fill=\\\"currentColor\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"star\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><polygon points=\\\"10,2.5 12.1,7.9 17.8,8.3 13.4,12 14.8,17.5 10,14.4 5.2,17.5 6.6,12 2.2,8.3 7.9,7.9\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"sticky\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"round\\\"><path d=\\\"M 3.5 3.5 L 16.5 3.5 L 16.5 12 L 12 16.5 L 3.5 16.5 Z\\\"/><path d=\\\"M 16.5 12 L 12 12 L 12 16.5\\\"/><path d=\\\"M 6.5 7.5 L 13.5 7.5 M 6.5 10.5 L 9.5 10.5\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"text\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 4 5 L 16 5 M 10 5 L 10 16 M 7 16 L 13 16\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"unknown\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"7.5\\\"/><path d=\\\"M 7.5 8 Q 7.5 5.5 10 5.5 Q 12.5 5.5 12.5 8 Q 12.5 9.5 10 11 L 10 12.5\\\" stroke-linecap=\\\"round\\\"/><circle cx=\\\"10\\\" cy=\\\"14.5\\\" r=\\\"0.6\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Tools\",\"tags\":[]},\"cut\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"6\\\" cy=\\\"14\\\" r=\\\"2.5\\\"/><circle cx=\\\"14\\\" cy=\\\"14\\\" r=\\\"2.5\\\"/><path d=\\\"M8 12 L16 4\\\" stroke-linecap=\\\"round\\\"/><path d=\\\"M12 12 L4 4\\\" stroke-linecap=\\\"round\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"copy\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M6 14 H3 V3 H14 V6\\\" stroke-linejoin=\\\"round\\\"/><rect x=\\\"6\\\" y=\\\"6\\\" width=\\\"11\\\" height=\\\"11\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"paste\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"4\\\" y=\\\"5\\\" width=\\\"12\\\" height=\\\"13\\\" rx=\\\"1\\\"/><rect x=\\\"7.5\\\" y=\\\"2.5\\\" width=\\\"5\\\" height=\\\"4\\\" rx=\\\"0.5\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"duplicate\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"3\\\" y=\\\"3\\\" width=\\\"10\\\" height=\\\"10\\\"/><rect x=\\\"7\\\" y=\\\"7\\\" width=\\\"10\\\" height=\\\"10\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"transformAgain\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"2\\\" y=\\\"2\\\" width=\\\"8\\\" height=\\\"8\\\"/><rect x=\\\"6\\\" y=\\\"6\\\" width=\\\"8\\\" height=\\\"8\\\"/><rect x=\\\"10\\\" y=\\\"10\\\" width=\\\"8\\\" height=\\\"8\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"group\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 2 5 L 2 2 L 5 2\\\"/><path d=\\\"M 18 5 L 18 2 L 15 2\\\"/><path d=\\\"M 2 15 L 2 18 L 5 18\\\"/><path d=\\\"M 18 15 L 18 18 L 15 18\\\"/><rect x=\\\"5\\\" y=\\\"6\\\" width=\\\"4.5\\\" height=\\\"8\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"11\\\" y=\\\"6\\\" width=\\\"4\\\" height=\\\"8\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"ungroup\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 2 5 L 2 2 L 5 2\\\" stroke-dasharray=\\\"1.5 1.5\\\"/><path d=\\\"M 18 15 L 18 18 L 15 18\\\" stroke-dasharray=\\\"1.5 1.5\\\"/><rect x=\\\"3\\\" y=\\\"5\\\" width=\\\"4.5\\\" height=\\\"8\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"13\\\" y=\\\"7\\\" width=\\\"4\\\" height=\\\"8\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"bringForward\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"3\\\" y=\\\"3\\\" width=\\\"11\\\" height=\\\"11\\\"/><rect x=\\\"6\\\" y=\\\"6\\\" width=\\\"11\\\" height=\\\"11\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"bringToFront\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"2\\\" y=\\\"2\\\" width=\\\"9\\\" height=\\\"9\\\"/><rect x=\\\"6\\\" y=\\\"6\\\" width=\\\"9\\\" height=\\\"9\\\"/><rect x=\\\"9\\\" y=\\\"9\\\" width=\\\"9\\\" height=\\\"9\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"sendBackward\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"3\\\" y=\\\"3\\\" width=\\\"11\\\" height=\\\"11\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"6\\\" y=\\\"6\\\" width=\\\"11\\\" height=\\\"11\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"sendToBack\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><rect x=\\\"2\\\" y=\\\"2\\\" width=\\\"9\\\" height=\\\"9\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"6\\\" y=\\\"6\\\" width=\\\"9\\\" height=\\\"9\\\"/><rect x=\\\"9\\\" y=\\\"9\\\" width=\\\"9\\\" height=\\\"9\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"flipX\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><line x1=\\\"10\\\" y1=\\\"2\\\" x2=\\\"10\\\" y2=\\\"18\\\" stroke-dasharray=\\\"2 1.5\\\"/><path d=\\\"M 8 4 L 3 10 L 8 16 Z\\\"/><path d=\\\"M 12 4 L 17 10 L 12 16 Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"flipY\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><line x1=\\\"2\\\" y1=\\\"10\\\" x2=\\\"18\\\" y2=\\\"10\\\" stroke-dasharray=\\\"2 1.5\\\"/><path d=\\\"M 4 8 L 10 3 L 16 8 Z\\\"/><path d=\\\"M 4 12 L 10 17 L 16 12 Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Edit\",\"tags\":[]},\"delete\":{\"body\":\"<path d=\\\"M3.6 5.8h12.8M8 5.8V4.5A1.1 1.1 0 0 1 9.1 3.4h1.8A1.1 1.1 0 0 1 12 4.5v1.3\\\"/><path d=\\\"M5.2 5.8v9.6A1.6 1.6 0 0 0 6.8 17h6.4a1.6 1.6 0 0 0 1.6-1.6V5.8\\\"/><path d=\\\"M8.4 8.8v5.2M11.6 8.8v5.2\\\" stroke-width=\\\"1\\\"/>\",\"group\":\"History\",\"tags\":[]},\"undo\":{\"body\":\"<path d=\\\"M4.4 8.4h6.8a3.6 3.6 0 0 1 0 7.2H8.6\\\"/><path d=\\\"M6.47 10.14 4.4 8.4 6.47 6.66\\\"/>\",\"group\":\"History\",\"tags\":[]},\"redo\":{\"body\":\"<path d=\\\"M15.6 8.4H8.8a3.6 3.6 0 0 0 0 7.2H11.4\\\"/><path d=\\\"M13.53 6.66 15.6 8.4 13.53 10.14\\\"/>\",\"group\":\"History\",\"tags\":[]},\"measure\":{\"body\":\"<rect x=\\\"2.6\\\" y=\\\"7.4\\\" width=\\\"14.8\\\" height=\\\"5.2\\\" rx=\\\"1.2\\\"/><path d=\\\"M6 7.4v2.2M9.4 7.4v3M12.8 7.4v2.2\\\" stroke-width=\\\"1\\\"/>\",\"group\":\"History\",\"tags\":[]},\"tune\":{\"body\":\"<path d=\\\"M3.4 6h13.2M3.4 10h13.2M3.4 14h13.2\\\" stroke-width=\\\"1.25\\\"/><circle cx=\\\"7\\\" cy=\\\"6\\\" r=\\\"1.8\\\"/><circle cx=\\\"12.6\\\" cy=\\\"10\\\" r=\\\"1.8\\\"/><circle cx=\\\"9\\\" cy=\\\"14\\\" r=\\\"1.8\\\"/>\",\"group\":\"History\",\"tags\":[]},\"alignLeft\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><line x1=\\\"2\\\" y1=\\\"2\\\" x2=\\\"2\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/><rect x=\\\"2.5\\\" y=\\\"3\\\" width=\\\"9\\\" height=\\\"3\\\"/><rect x=\\\"2.5\\\" y=\\\"9\\\" width=\\\"6\\\" height=\\\"3\\\"/></g>\",\"group\":\"Align\",\"tags\":[]},\"alignRight\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><line x1=\\\"14\\\" y1=\\\"2\\\" x2=\\\"14\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/><rect x=\\\"4.5\\\" y=\\\"3\\\" width=\\\"9\\\" height=\\\"3\\\"/><rect x=\\\"7.5\\\" y=\\\"9\\\" width=\\\"6\\\" height=\\\"3\\\"/></g>\",\"group\":\"Align\",\"tags\":[]},\"alignTop\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><line x1=\\\"2\\\" y1=\\\"2\\\" x2=\\\"14\\\" y2=\\\"2\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/><rect x=\\\"3\\\" y=\\\"2.5\\\" width=\\\"3\\\" height=\\\"9\\\"/><rect x=\\\"9\\\" y=\\\"2.5\\\" width=\\\"3\\\" height=\\\"6\\\"/></g>\",\"group\":\"Align\",\"tags\":[]},\"alignBottom\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><line x1=\\\"2\\\" y1=\\\"14\\\" x2=\\\"14\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/><rect x=\\\"3\\\" y=\\\"4.5\\\" width=\\\"3\\\" height=\\\"9\\\"/><rect x=\\\"9\\\" y=\\\"7.5\\\" width=\\\"3\\\" height=\\\"6\\\"/></g>\",\"group\":\"Align\",\"tags\":[]},\"alignCenterX\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><line x1=\\\"8\\\" y1=\\\"2\\\" x2=\\\"8\\\" y2=\\\"14\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/><rect x=\\\"3.5\\\" y=\\\"3\\\" width=\\\"9\\\" height=\\\"3\\\"/><rect x=\\\"5\\\" y=\\\"9\\\" width=\\\"6\\\" height=\\\"3\\\"/></g>\",\"group\":\"Align\",\"tags\":[]},\"alignCenterY\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><line x1=\\\"2\\\" y1=\\\"8\\\" x2=\\\"14\\\" y2=\\\"8\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1\\\" fill=\\\"none\\\"/><rect x=\\\"3\\\" y=\\\"3.5\\\" width=\\\"3\\\" height=\\\"9\\\"/><rect x=\\\"9\\\" y=\\\"5\\\" width=\\\"3\\\" height=\\\"6\\\"/></g>\",\"group\":\"Align\",\"tags\":[]},\"distributeHorizontal\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><rect x=\\\"1\\\" y=\\\"4\\\" width=\\\"3\\\" height=\\\"8\\\"/><rect x=\\\"6.5\\\" y=\\\"4\\\" width=\\\"3\\\" height=\\\"8\\\"/><rect x=\\\"12\\\" y=\\\"4\\\" width=\\\"3\\\" height=\\\"8\\\"/></g>\",\"group\":\"Distribute\",\"tags\":[]},\"distributeVertical\":{\"body\":\"<g fill=\\\"currentColor\\\" stroke=\\\"none\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\" transform=\\\"scale(1.25)\\\"><rect x=\\\"4\\\" y=\\\"1\\\" width=\\\"8\\\" height=\\\"3\\\"/><rect x=\\\"4\\\" y=\\\"6.5\\\" width=\\\"8\\\" height=\\\"3\\\"/><rect x=\\\"4\\\" y=\\\"12\\\" width=\\\"8\\\" height=\\\"3\\\"/></g>\",\"group\":\"Distribute\",\"tags\":[]},\"union\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"5\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"5\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"intersect\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"5\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\"/><path d=\\\"M 10 6 A 5 5 0 0 1 10 14 A 5 5 0 0 1 10 6 Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"subtract\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"5\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\"/><path d=\\\"M 10 6 A 5 5 0 1 0 10 14 A 5 5 0 0 0 10 6 Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"exclude\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"5\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\"/><path d=\\\"M 10 6 A 5 5 0 1 0 10 14 A 5 5 0 0 0 10 6 Z M 10 6 A 5 5 0 1 1 10 14 A 5 5 0 0 1 10 6 Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-rule=\\\"evenodd\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"divide\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><circle cx=\\\"7\\\" cy=\\\"10\\\" r=\\\"5\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\"/><line x1=\\\"10\\\" y1=\\\"6\\\" x2=\\\"10\\\" y2=\\\"14\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"crop\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><defs><clipPath id=\\\"weasel-default-crop-mask\\\"><rect x=\\\"9\\\" y=\\\"5\\\" width=\\\"8\\\" height=\\\"10\\\"/></clipPath></defs><circle cx=\\\"9\\\" cy=\\\"10\\\" r=\\\"5\\\"/><circle cx=\\\"9\\\" cy=\\\"10\\\" r=\\\"5\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" clip-path=\\\"url(#weasel-default-crop-mask)\\\"/><rect x=\\\"9\\\" y=\\\"5\\\" width=\\\"8\\\" height=\\\"10\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"trim\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 10 6 A 5 5 0 1 0 10 14 A 5 5 0 0 0 10 6 Z\\\" stroke-linejoin=\\\"round\\\"/><circle cx=\\\"13\\\" cy=\\\"10\\\" r=\\\"5\\\" fill=\\\"currentColor\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"merge\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M 10 6 A 5 5 0 1 0 10 14 A 5 5 0 1 0 10 6 Z\\\" stroke-linejoin=\\\"round\\\"/></g>\",\"group\":\"Booleans\",\"tags\":[]},\"join\":{\"body\":\"<path d=\\\"M2 15.6 H6 M14 4.4 H18\\\"/><path d=\\\"M6 15.6 L14 4.4\\\"/><rect x=\\\"4.5\\\" y=\\\"14.1\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"12.5\\\" y=\\\"2.9\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Path commands\",\"tags\":[]},\"bridge\":{\"body\":\"<path d=\\\"M2 15.6 H6 M14 4.4 H18\\\"/><path d=\\\"M6 15.6 C11 15.6 9 4.4 14 4.4\\\"/><rect x=\\\"4.5\\\" y=\\\"14.1\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"12.5\\\" y=\\\"2.9\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Path commands\",\"tags\":[]},\"cutAtCrossings\":{\"body\":\"<path d=\\\"M2.5 10.625 H6 M12.75 10.625 H17.5\\\"/><path d=\\\"M9.375 2.5 V17.5\\\"/><rect x=\\\"4.5\\\" y=\\\"9.125\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"11.25\\\" y=\\\"9.125\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Path commands\",\"tags\":[]},\"simplify\":{\"body\":\"<path d=\\\"M3 7.5 L5.5 4.5 L8 7.5 L10.5 4.5 L13 7.5 L15.5 4.5 L17 6\\\" stroke-width=\\\"1.25\\\"/><path d=\\\"M4 15.6 C8 10.5 12 10.5 16 15.6\\\"/><rect x=\\\"2.5\\\" y=\\\"14.1\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"14.5\\\" y=\\\"14.1\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Path commands\",\"tags\":[]},\"offsetPath\":{\"body\":\"<rect x=\\\"6.875\\\" y=\\\"6.875\\\" width=\\\"6.25\\\" height=\\\"6.25\\\" rx=\\\"1\\\"/><rect x=\\\"3.125\\\" y=\\\"3.125\\\" width=\\\"13.75\\\" height=\\\"13.75\\\" rx=\\\"4.75\\\" stroke-width=\\\"1.25\\\"/>\",\"group\":\"Path commands\",\"tags\":[]},\"retractHandles\":{\"body\":\"<path d=\\\"M3 17 L10 7 L17 17\\\"/><path d=\\\"M2.5 5 H6.5 M5 3.5 L6.5 5 L5 6.5\\\" stroke-width=\\\"1\\\"/><path d=\\\"M17.5 5 H13.5 M15 3.5 L13.5 5 L15 6.5\\\" stroke-width=\\\"1\\\"/><rect x=\\\"8.5\\\" y=\\\"5.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"symmetricHandles\":{\"body\":\"<path d=\\\"M3 17 C3 10 6 8 10 8 S17 10 17 17\\\"/><path d=\\\"M3.5 8 H16.5\\\" stroke-width=\\\"1\\\"/><circle cx=\\\"3.5\\\" cy=\\\"8\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><circle cx=\\\"16.5\\\" cy=\\\"8\\\" r=\\\"1.5\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"8.5\\\" y=\\\"6.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"holdHandleAngle\":{\"body\":\"<path d=\\\"M5 15 L16 4\\\"/><path d=\\\"M12 4 H16 V8\\\"/><circle cx=\\\"10.5\\\" cy=\\\"9.5\\\" r=\\\"1.75\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"3.5\\\" y=\\\"13.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"holdHandleLength\":{\"body\":\"<circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"6.5\\\" stroke-width=\\\"1\\\"/><path d=\\\"M10 10 L14.5962 5.4038\\\"/><circle cx=\\\"14.5962\\\" cy=\\\"5.4038\\\" r=\\\"1.75\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"8.5\\\" y=\\\"8.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"simplifyBrush\":{\"body\":\"<path d=\\\"M2 16 C5 6 15 6 18 16\\\"/><circle cx=\\\"10\\\" cy=\\\"8.5\\\" r=\\\"5\\\" stroke-width=\\\"1\\\" stroke-dasharray=\\\"2 1.5\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"harmonize\":{\"body\":\"<path d=\\\"M3 16 C3 9 6.5 6 10 6 S17 9 17 16\\\"/><path d=\\\"M4.02 7.43 L2.47 6.18 M10 3.5 V1.5 M15.98 7.43 L17.53 6.18\\\" stroke-width=\\\"1\\\"/><rect x=\\\"8.5\\\" y=\\\"4.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"averageAnchors\":{\"body\":\"<path d=\\\"M5.6 5.6 L7.6 7.6 M14.4 5.6 L12.4 7.6 M10 14.4 V12.5\\\" stroke-width=\\\"1.25\\\"/><rect x=\\\"2.875\\\" y=\\\"2.875\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"14.125\\\" y=\\\"2.875\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"8.5\\\" y=\\\"14.125\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"8.125\\\" y=\\\"8.125\\\" width=\\\"3.75\\\" height=\\\"3.75\\\" stroke-width=\\\"1.25\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"bendSegment\":{\"body\":\"<path d=\\\"M3.5 15 H16.5\\\" stroke-width=\\\"1\\\" stroke-dasharray=\\\"1.4 1.4\\\"/><path d=\\\"M3.5 15 Q10 3 16.5 15\\\"/><path d=\\\"M10 12.5 V10 M8.8 11.2 L10 10 L11.2 11.2\\\" stroke-width=\\\"1\\\"/><rect x=\\\"2\\\" y=\\\"13.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><rect x=\\\"15\\\" y=\\\"13.5\\\" width=\\\"3\\\" height=\\\"3\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Anchors\",\"tags\":[]},\"nudgeAnchors\":{\"body\":\"<g transform=\\\"rotate(0 10 10)\\\"><path d=\\\"M4.1605 6.4645 A5 5 0 0 1 4.1605 13.5355\\\"/><path d=\\\"M6.8122 3.8128 A8.75 8.75 0 0 1 6.8122 16.1872\\\"/><svg x=\\\"11.25\\\" y=\\\"3.75\\\" width=\\\"5\\\" height=\\\"12.5\\\" viewBox=\\\"11.25 3.75 5 12.5\\\" overflow=\\\"hidden\\\"><path d=\\\"M0 16.25 L20 -3.75 M3.75 16.25 L23.75 -3.75 M7.5 16.25 L27.5 -3.75 M11.25 16.25 L31.25 -3.75 M15 16.25 L35 -3.75\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"/></svg></g>\",\"group\":\"Anchors\",\"tags\":[]},\"nudgeAnchorsUp\":{\"body\":\"<g transform=\\\"rotate(-90 10 10)\\\"><path d=\\\"M4.1605 6.4645 A5 5 0 0 1 4.1605 13.5355\\\"/><path d=\\\"M6.8122 3.8128 A8.75 8.75 0 0 1 6.8122 16.1872\\\"/><svg x=\\\"11.25\\\" y=\\\"3.75\\\" width=\\\"5\\\" height=\\\"12.5\\\" viewBox=\\\"11.25 3.75 5 12.5\\\" overflow=\\\"hidden\\\"><path d=\\\"M0 16.25 L20 -3.75 M3.75 16.25 L23.75 -3.75 M7.5 16.25 L27.5 -3.75 M11.25 16.25 L31.25 -3.75 M15 16.25 L35 -3.75\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"/></svg></g>\",\"group\":\"Anchors\",\"tags\":[]},\"nudgeAnchorsDown\":{\"body\":\"<g transform=\\\"rotate(90 10 10)\\\"><path d=\\\"M4.1605 6.4645 A5 5 0 0 1 4.1605 13.5355\\\"/><path d=\\\"M6.8122 3.8128 A8.75 8.75 0 0 1 6.8122 16.1872\\\"/><svg x=\\\"11.25\\\" y=\\\"3.75\\\" width=\\\"5\\\" height=\\\"12.5\\\" viewBox=\\\"11.25 3.75 5 12.5\\\" overflow=\\\"hidden\\\"><path d=\\\"M0 16.25 L20 -3.75 M3.75 16.25 L23.75 -3.75 M7.5 16.25 L27.5 -3.75 M11.25 16.25 L31.25 -3.75 M15 16.25 L35 -3.75\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"/></svg></g>\",\"group\":\"Anchors\",\"tags\":[]},\"nudgeAnchorsLeft\":{\"body\":\"<g transform=\\\"rotate(180 10 10)\\\"><path d=\\\"M4.1605 6.4645 A5 5 0 0 1 4.1605 13.5355\\\"/><path d=\\\"M6.8122 3.8128 A8.75 8.75 0 0 1 6.8122 16.1872\\\"/><svg x=\\\"11.25\\\" y=\\\"3.75\\\" width=\\\"5\\\" height=\\\"12.5\\\" viewBox=\\\"11.25 3.75 5 12.5\\\" overflow=\\\"hidden\\\"><path d=\\\"M0 16.25 L20 -3.75 M3.75 16.25 L23.75 -3.75 M7.5 16.25 L27.5 -3.75 M11.25 16.25 L31.25 -3.75 M15 16.25 L35 -3.75\\\" stroke-width=\\\"1\\\" stroke-linecap=\\\"butt\\\"/></svg></g>\",\"group\":\"Anchors\",\"tags\":[]},\"createOutlines\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M3.5 3.5 H16.5 V7.5 H12 V16.5 H8 V7.5 H3.5 Z\\\" stroke-linejoin=\\\"miter\\\"/><g fill=\\\"currentColor\\\" stroke=\\\"none\\\"><rect x=\\\"2\\\" y=\\\"2\\\" width=\\\"3\\\" height=\\\"3\\\"/><rect x=\\\"15\\\" y=\\\"2\\\" width=\\\"3\\\" height=\\\"3\\\"/><rect x=\\\"6.5\\\" y=\\\"15\\\" width=\\\"3\\\" height=\\\"3\\\"/><rect x=\\\"10.5\\\" y=\\\"15\\\" width=\\\"3\\\" height=\\\"3\\\"/></g></g>\",\"group\":\"Outline\",\"tags\":[]},\"outlineStroke\":{\"body\":\"<g stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"><path d=\\\"M4 4 A12 12 0 0 1 16 16 H10 A6 6 0 0 0 4 10 Z\\\" stroke-linejoin=\\\"miter\\\"/><g fill=\\\"currentColor\\\" stroke=\\\"none\\\"><rect x=\\\"2.5\\\" y=\\\"2.5\\\" width=\\\"3\\\" height=\\\"3\\\"/><rect x=\\\"14.5\\\" y=\\\"14.5\\\" width=\\\"3\\\" height=\\\"3\\\"/><rect x=\\\"8.5\\\" y=\\\"14.5\\\" width=\\\"3\\\" height=\\\"3\\\"/><rect x=\\\"2.5\\\" y=\\\"8.5\\\" width=\\\"3\\\" height=\\\"3\\\"/></g></g>\",\"group\":\"Outline\",\"tags\":[]},\"bold\":{\"body\":\"<path d=\\\"M6 3.5h4.6a3.1 3.1 0 0 1 0 6.2H6zM6 9.7h5.4a3.4 3.4 0 0 1 0 6.8H6z\\\" stroke-width=\\\"2.1\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"italic\":{\"body\":\"<path d=\\\"M9 3.5h6M5 16.5h6M12.5 3.5 7.5 16.5\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"underline\":{\"body\":\"<path d=\\\"M6 3.4v5.6a4 4 0 0 0 8 0V3.4\\\"/><path d=\\\"M4.6 17h10.8\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"strikethrough\":{\"body\":\"<path d=\\\"M14.4 5.8c-.9-1.6-2.4-2.4-4.4-2.4-2.5 0-4.2 1.3-4.2 3.1 0 .9.4 1.6 1.2 2.2\\\"/><path d=\\\"M5.6 14.2c.9 1.6 2.4 2.4 4.4 2.4 2.5 0 4.2-1.3 4.2-3.1 0-.9-.4-1.6-1.2-2.2\\\"/><path d=\\\"M3.4 10h13.2\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"overline\":{\"body\":\"<path d=\\\"M4.6 3h10.8\\\"/><ellipse cx=\\\"10\\\" cy=\\\"11.4\\\" rx=\\\"4.4\\\" ry=\\\"4.8\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"superscript\":{\"body\":\"<path d=\\\"M3.6 8.6 10.4 16.4M10.4 8.6 3.6 16.4\\\"/><path d=\\\"M11.9 5.3a2.2 2.2 0 1 1 4.3.8c0 1.4-4.3 2.2-4.3 3.5h4.5\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"subscript\":{\"body\":\"<path d=\\\"M3.6 3.6 10.4 11.4M10.4 3.6 3.6 11.4\\\"/><path d=\\\"M11.9 11.5a2.2 2.2 0 1 1 4.3.8c0 1.4-4.3 2.2-4.3 3.5h4.5\\\"/>\",\"group\":\"Character styling\",\"tags\":[]},\"textAlignLeft\":{\"body\":\"<path d=\\\"M3 4.375H17M3 8.125H12M3 11.875H17M3 15.625H12\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"textAlignCenter\":{\"body\":\"<path d=\\\"M3 4.375H17M5.5 8.125H14.5M3 11.875H17M5.5 15.625H14.5\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"textAlignRight\":{\"body\":\"<path d=\\\"M3 4.375H17M8 8.125H17M3 11.875H17M8 15.625H17\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"textAlignJustify\":{\"body\":\"<path d=\\\"M3 4.375H17M3 8.125H17M3 11.875H17M3 15.625H12\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"textAlignTop\":{\"body\":\"<rect x=\\\"1.875\\\" y=\\\"1.875\\\" width=\\\"16.25\\\" height=\\\"16.25\\\" rx=\\\"2\\\" stroke-width=\\\"1\\\"/><path d=\\\"M5.5 5.625H14.5M7 9.375H13\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"textAlignMiddle\":{\"body\":\"<rect x=\\\"1.875\\\" y=\\\"1.875\\\" width=\\\"16.25\\\" height=\\\"16.25\\\" rx=\\\"2\\\" stroke-width=\\\"1\\\"/><path d=\\\"M5.5 8.125H14.5M7 11.875H13\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"textAlignBottom\":{\"body\":\"<rect x=\\\"1.875\\\" y=\\\"1.875\\\" width=\\\"16.25\\\" height=\\\"16.25\\\" rx=\\\"2\\\" stroke-width=\\\"1\\\"/><path d=\\\"M5.5 10.625H14.5M7 14.375H13\\\"/>\",\"group\":\"Paragraph alignment\",\"tags\":[]},\"strokeWidth\":{\"body\":\"<path d=\\\"M3.4 5.6h13.2\\\" stroke-width=\\\"1\\\"/><path d=\\\"M3.4 10h13.2\\\" stroke-width=\\\"2\\\"/><path d=\\\"M3.4 15.2h13.2\\\" stroke-width=\\\"3.4\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"strokeCap\":{\"body\":\"<path d=\\\"M2.5 10H12\\\" stroke-linecap=\\\"butt\\\"/><path d=\\\"M12 6V14\\\" stroke-width=\\\"1\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"strokeJoin\":{\"body\":\"<path d=\\\"M4.4 15.5 10 5.5 15.6 15.5\\\" stroke-linecap=\\\"butt\\\" stroke-linejoin=\\\"miter\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"strokeAlign\":{\"body\":\"<circle cx=\\\"10\\\" cy=\\\"10\\\" r=\\\"6.2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"capButt\":{\"body\":\"<path d=\\\"M5.5 5.25H14.5V14.75H5.5Z\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linejoin=\\\"miter\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"capRound\":{\"body\":\"<path d=\\\"M3.13 5.25H12.13V14.75H3.13Z\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linejoin=\\\"miter\\\"/><path d=\\\"M12.13 4.5A5.5 5.5 0 0 1 12.13 15.5Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"capSquare\":{\"body\":\"<path d=\\\"M3.13 5.25H12.13V14.75H3.13Z\\\" fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\" stroke-linejoin=\\\"miter\\\"/><path d=\\\"M12.13 4.5H17.63V15.5H12.13Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"joinMiter\":{\"body\":\"<path d=\\\"M10 3.5 15.6 15.5H4.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"joinRound\":{\"body\":\"<path d=\\\"M4.4 15.5V12a5.6 5.6 0 0 1 11.2 0v3.5Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"joinBevel\":{\"body\":\"<path d=\\\"M6.8 8.2h6.4l2.4 7.3H4.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"alignInner\":{\"body\":\"<path d=\\\"M10 3.8A6.2 6.2 0 1 0 10 16.2A6.2 6.2 0 1 0 10 3.8Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"alignCenter\":{\"body\":\"<path d=\\\"M10 2.1A7.9 7.9 0 1 0 10 17.9A7.9 7.9 0 1 0 10 2.1ZM10 5.5A4.5 4.5 0 1 0 10 14.5A4.5 4.5 0 1 0 10 5.5Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-rule=\\\"evenodd\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"alignOuter\":{\"body\":\"<path d=\\\"M0 0H20V20H0ZM10 3.8A6.2 6.2 0 1 0 10 16.2A6.2 6.2 0 1 0 10 3.8Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-rule=\\\"evenodd\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"dashSolid\":{\"body\":\"<path d=\\\"M2 10h16\\\" stroke-width=\\\"3\\\" stroke-linecap=\\\"butt\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"dashDashed\":{\"body\":\"<path d=\\\"M2 10h16\\\" stroke-width=\\\"3\\\" stroke-linecap=\\\"butt\\\" stroke-dasharray=\\\"6 4\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"dashDotted\":{\"body\":\"<path d=\\\"M2 10h16\\\" stroke-width=\\\"3\\\" stroke-linecap=\\\"butt\\\" stroke-dasharray=\\\"2.5 2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"dashCustom\":{\"body\":\"<path d=\\\"M2 10h16\\\" stroke-width=\\\"3\\\" stroke-linecap=\\\"butt\\\" stroke-dasharray=\\\"5 2 2 2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintSolid\":{\"body\":\"<path d=\\\"M3.4 3.4H16.6V16.6H3.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"1\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintLinear\":{\"body\":\"<path d=\\\"M3.4 3.4H6.7V16.6H3.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"1\\\"/><path d=\\\"M6.7 3.4H10V16.6H6.7Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.68\\\"/><path d=\\\"M10 3.4H13.3V16.6H10Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.42\\\"/><path d=\\\"M13.3 3.4H16.6V16.6H13.3Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintRadial\":{\"body\":\"<path d=\\\"M3.4 3.4H16.6V16.6H3.4ZM4.95 4.95H15.05V15.05H4.95Z\\\" fill=\\\"currentColor\\\" fill-rule=\\\"evenodd\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.7\\\"/><path d=\\\"M4.95 4.95H15.05V15.05H4.95ZM6.5 6.5H13.5V13.5H6.5Z\\\" fill=\\\"currentColor\\\" fill-rule=\\\"evenodd\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.53\\\"/><path d=\\\"M6.5 6.5H13.5V13.5H6.5ZM8.05 8.05H11.95V11.95H8.05Z\\\" fill=\\\"currentColor\\\" fill-rule=\\\"evenodd\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.37\\\"/><path d=\\\"M8.05 8.05H11.95V11.95H8.05Z\\\" fill=\\\"currentColor\\\" fill-rule=\\\"evenodd\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintConic\":{\"body\":\"<path d=\\\"M10 10L16.6 3.4L16.6 16.6Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"1\\\"/><path d=\\\"M10 10L16.6 16.6L3.4 16.6Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.68\\\"/><path d=\\\"M10 10L3.4 16.6L3.4 3.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.42\\\"/><path d=\\\"M10 10L3.4 3.4L16.6 3.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintMesh\":{\"body\":\"<path d=\\\"M3.4 3.4L10 3.4C10 6.26 11.6 5.74 11.6 8.6C7.09 8.6 7.91 10 3.4 10L3.4 3.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"1\\\"/><path d=\\\"M10 3.4L16.6 3.4L16.6 10C13.85 10 14.35 8.6 11.6 8.6C11.6 5.74 10 6.26 10 3.4Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.68\\\"/><path d=\\\"M11.6 8.6C14.35 8.6 13.85 10 16.6 10L16.6 16.6L10 16.6C10 12.2 11.6 13 11.6 8.6Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.42\\\"/><path d=\\\"M11.6 8.6C11.6 13 10 12.2 10 16.6L3.4 16.6L3.4 10C7.91 10 7.09 8.6 11.6 8.6Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\" fill-opacity=\\\"0.2\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintPattern\":{\"body\":\"<path d=\\\"M3.4 3.4L4.7 3.4L3.4 4.7Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M8.7 3.4L11.3 3.4L3.4 11.3L3.4 8.7Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M15.3 3.4L16.6 3.4L16.6 4.7L4.7 16.6L3.4 16.6L3.4 15.3Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M16.6 8.7L16.6 11.3L11.3 16.6L8.7 16.6Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M16.6 15.3L16.6 16.6L15.3 16.6Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M15.3 3.4L16.6 3.4L16.6 4.7Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M8.7 3.4L11.3 3.4L16.6 8.7L16.6 11.3Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M3.4 3.4L4.7 3.4L16.6 15.3L16.6 16.6L15.3 16.6L3.4 4.7Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M11.3 16.6L8.7 16.6L3.4 11.3L3.4 8.7Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/><path d=\\\"M4.7 16.6L3.4 16.6L3.4 15.3Z\\\" fill=\\\"currentColor\\\" stroke=\\\"none\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]},\"paintNone\":{\"body\":\"<path d=\\\"M3.4 3.4H16.6V16.6H3.4Z\\\"/><path d=\\\"M3.4 16.6L16.6 3.4\\\" stroke=\\\"var(--wzl-danger, #d94a3f)\\\" stroke-width=\\\"1.8\\\" stroke-linecap=\\\"butt\\\"/>\",\"group\":\"Stroke and paint\",\"tags\":[]}}");
5
5
  var icons_table_default = {
6
6
  namespace,
7
7
  owner,