@weasel-js/core 1.8.1 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +9 -5
  3. package/dist/{builtins-CMEh6-Oc.d.ts → builtins-CQcvcLXh.d.ts} +98 -31
  4. package/dist/canvas/DrawCanvas.js +33 -33
  5. package/dist/canvas/DrawCanvas.js.map +1 -1
  6. package/dist/canvas/MinimapCanvas.js +29 -29
  7. package/dist/canvas/MinimapCanvas.js.map +1 -1
  8. package/dist/canvas/NodeShape.js +63 -54
  9. package/dist/canvas/NodeShape.js.map +1 -1
  10. package/dist/canvas/SceneCanvas/features.js +26 -5
  11. package/dist/canvas/SceneCanvas/features.js.map +1 -1
  12. package/dist/canvas/SceneCanvas/useSceneSelectTool.js +3 -2
  13. package/dist/canvas/SceneCanvas/useSceneSelectTool.js.map +1 -1
  14. package/dist/canvas/SceneCanvas.js +526 -529
  15. package/dist/canvas/SceneCanvas.js.map +1 -1
  16. package/dist/canvas/SceneViewCanvas.js +35 -35
  17. package/dist/canvas/SceneViewCanvas.js.map +1 -1
  18. package/dist/canvas/defaultDrawOne.js +6 -1
  19. package/dist/canvas/defaultDrawOne.js.map +1 -1
  20. package/dist/canvas/pickWalk.js.map +1 -1
  21. package/dist/canvas/sceneAdapter.js.map +1 -1
  22. package/dist/canvas/useHitObserver.js +23 -0
  23. package/dist/canvas/useHitObserver.js.map +1 -0
  24. package/dist/canvas/useHostAnchor.js.map +1 -1
  25. package/dist/core/device/useDeviceProfile.js.map +1 -1
  26. package/dist/core/scene/derivedPath.js.map +1 -1
  27. package/dist/core/scene/effectivePose.js.map +1 -1
  28. package/dist/core/scene/kitRegistry.js.map +1 -1
  29. package/dist/core/scene/scene.js.map +1 -1
  30. package/dist/core/scene/types.js.map +1 -1
  31. package/dist/core/scene/useScene.js.map +1 -1
  32. package/dist/core/viewport/fitViewToBounds.js +3 -3
  33. package/dist/core/viewport/fitViewToBounds.js.map +1 -1
  34. package/dist/core/viewport/screenSlop.js +8 -2
  35. package/dist/core/viewport/screenSlop.js.map +1 -1
  36. package/dist/features/minimap/actions.js.map +1 -1
  37. package/dist/features/paths/markerCommands.js +95 -63
  38. package/dist/features/paths/markerCommands.js.map +1 -1
  39. package/dist/features/paths/tessellate/dash.js +52 -0
  40. package/dist/features/paths/tessellate/dash.js.map +1 -0
  41. package/dist/features/paths/tessellate/insets.js +32 -0
  42. package/dist/features/paths/tessellate/insets.js.map +1 -0
  43. package/dist/features/paths/tessellate/metric.js +72 -0
  44. package/dist/features/paths/tessellate/metric.js.map +1 -0
  45. package/dist/features/paths/tessellate/stroke.js +74 -134
  46. package/dist/features/paths/tessellate/stroke.js.map +1 -1
  47. package/dist/features/paths/tessellate/vertexWidths.js +32 -0
  48. package/dist/features/paths/tessellate/vertexWidths.js.map +1 -0
  49. package/dist/features/pointer/PointerContext.js +2 -2
  50. package/dist/features/pointer/PointerContext.js.map +1 -1
  51. package/dist/features/poseRun/usePoseRun.js.map +1 -1
  52. package/dist/features/text/useTextEdit.js +86 -84
  53. package/dist/features/text/useTextEdit.js.map +1 -1
  54. package/dist/index.d.ts +78 -39
  55. package/dist/index.js +148 -148
  56. package/dist/interactions/actions/defaults/align.js.map +1 -1
  57. package/dist/interactions/actions/defaults/anchorEditing.js.map +1 -1
  58. package/dist/interactions/actions/defaults/areaSelect.js.map +1 -1
  59. package/dist/interactions/actions/defaults/booleans.js.map +1 -1
  60. package/dist/interactions/actions/defaults/cancelGesture.js.map +1 -1
  61. package/dist/interactions/actions/defaults/clearSelection.js.map +1 -1
  62. package/dist/interactions/actions/defaults/clipboard.js.map +1 -1
  63. package/dist/interactions/actions/defaults/clone.js.map +1 -1
  64. package/dist/interactions/actions/defaults/createOutlines.js +1 -1
  65. package/dist/interactions/actions/defaults/createOutlines.js.map +1 -1
  66. package/dist/interactions/actions/defaults/createPaintAction.js.map +1 -1
  67. package/dist/interactions/actions/defaults/delete.js.map +1 -1
  68. package/dist/interactions/actions/defaults/distribute.js.map +1 -1
  69. package/dist/interactions/actions/defaults/duplicate.js.map +1 -1
  70. package/dist/interactions/actions/defaults/editAnchors.js.map +1 -1
  71. package/dist/interactions/actions/defaults/enterPathEdit.js.map +1 -1
  72. package/dist/interactions/actions/defaults/enterTextEdit.js.map +1 -1
  73. package/dist/interactions/actions/defaults/escape.js +1 -1
  74. package/dist/interactions/actions/defaults/escape.js.map +1 -1
  75. package/dist/interactions/actions/defaults/exitPathEdit.js.map +1 -1
  76. package/dist/interactions/actions/defaults/flip.js.map +1 -1
  77. package/dist/interactions/actions/defaults/group.js.map +1 -1
  78. package/dist/interactions/actions/defaults/ingest.js.map +1 -1
  79. package/dist/interactions/actions/defaults/insert.js.map +1 -1
  80. package/dist/interactions/actions/defaults/insertPathAnchor.js +1 -1
  81. package/dist/interactions/actions/defaults/insertPathAnchor.js.map +1 -1
  82. package/dist/interactions/actions/defaults/lassoSelect.js.map +1 -1
  83. package/dist/interactions/actions/defaults/move.js.map +1 -1
  84. package/dist/interactions/actions/defaults/nudge.js.map +1 -1
  85. package/dist/interactions/actions/defaults/pinchZoom.js.map +1 -1
  86. package/dist/interactions/actions/defaults/reorder.js.map +1 -1
  87. package/dist/interactions/actions/defaults/requiresSelection.js.map +1 -1
  88. package/dist/interactions/actions/defaults/resize.js.map +1 -1
  89. package/dist/interactions/actions/defaults/rotate.js.map +1 -1
  90. package/dist/interactions/actions/defaults/selectAll.js.map +1 -1
  91. package/dist/interactions/actions/defaults/slice.js.map +1 -1
  92. package/dist/interactions/actions/defaults/toolActivate.js.map +1 -1
  93. package/dist/interactions/actions/defaults/toolResetToDefault.js.map +1 -1
  94. package/dist/interactions/actions/defaults/undoRedo.js +1 -1
  95. package/dist/interactions/actions/defaults/undoRedo.js.map +1 -1
  96. package/dist/interactions/actions/defaults/viewportDragPan.js.map +1 -1
  97. package/dist/interactions/actions/defaults/viewportWheelPan.js.map +1 -1
  98. package/dist/interactions/actions/defaults/viewportZoom.js.map +1 -1
  99. package/dist/interactions/actions/planeInput.js.map +1 -1
  100. package/dist/interactions/gestures/shared/screenTolerance.js.map +1 -1
  101. package/dist/{registerProgram-ateHDGjw.d.ts → registerProgram-BMZRDgrh.d.ts} +4 -0
  102. package/dist/renderer/cache/markerCommandCache.js +46 -42
  103. package/dist/renderer/cache/markerCommandCache.js.map +1 -1
  104. package/dist/renderer/cache/outlineStrokeMeshCache.js +30 -25
  105. package/dist/renderer/cache/outlineStrokeMeshCache.js.map +1 -1
  106. package/dist/renderer/cache/strokeMeshCache.js +42 -31
  107. package/dist/renderer/cache/strokeMeshCache.js.map +1 -1
  108. package/dist/renderer/cullDrawCommands.js +32 -31
  109. package/dist/renderer/cullDrawCommands.js.map +1 -1
  110. package/dist/renderer/draw.js +315 -362
  111. package/dist/renderer/draw.js.map +1 -1
  112. package/dist/renderer/glyphOutlineMesh.js +67 -0
  113. package/dist/renderer/glyphOutlineMesh.js.map +1 -0
  114. package/dist/renderer/math/mat3.js +8 -3
  115. package/dist/renderer/math/mat3.js.map +1 -1
  116. package/dist/renderer/strokeLengths.js +50 -0
  117. package/dist/renderer/strokeLengths.js.map +1 -0
  118. package/dist/renderer.d.ts +2 -2
  119. package/dist/{test-seams-fYf6m5pu.d.ts → test-seams-CuIxe0xY.d.ts} +1 -1
  120. package/dist/test-seams.d.ts +2 -2
  121. package/dist/tools/builtin/eyedropper/useEyedropperTool.js.map +1 -1
  122. package/dist/tools/builtin/pen/usePenTool.js +1 -1
  123. package/dist/tools/builtin/pen/usePenTool.js.map +1 -1
  124. package/dist/tools/builtin/select/selectionContributions.js +43 -23
  125. package/dist/tools/builtin/select/selectionContributions.js.map +1 -1
  126. package/dist/tools/builtin/select/useSelectTool.js.map +1 -1
  127. package/dist/tools/builtin/slice/useSliceTool.js.map +1 -1
  128. package/dist/version.js +1 -1
  129. package/package.json +17 -17
package/dist/index.js CHANGED
@@ -162,152 +162,152 @@ import xa from "./icons/UnknownIcon.js";
162
162
  import { getImageBitmap as Sa, imageStatus as Ca, isVectorImageSrc as wa, subscribeImageReady as Ta } from "./features/images/imageCache.js";
163
163
  import { DEFAULT_INK as Ea, findNodeShape as Da, findShapeBounds as Oa, findShapeInk as ka, findShapeSilhouette as Aa, getNodeShapes as ja, registerNodeShape as Ma, shapeCoversPoint as Na } from "./canvas/NodeShape.js";
164
164
  import { pickTopMostHit as Pa } from "./tools/builtin/pickTopMostHit.js";
165
- import { AREA_SELECT_ID as Fa, SELECTION_MOVE_ID as Ia, SELECTION_TRANSFORM_ID as La, areaSelectContribution as Ra, onEmptyCanvas as za, selectionMoveBindings as Ba, selectionMoveContribution as Va, selectionTransformBindings as Ha, selectionTransformContribution as Ua } from "./tools/builtin/select/selectionContributions.js";
166
- import { useSelectTool as Wa } from "./tools/builtin/select/useSelectTool.js";
167
- import { useHandTool as Ga } from "./tools/builtin/hand/useHandTool.js";
168
- import { DRAG_PAN_ID as Ka, dragPanContribution as qa } from "./tools/builtin/hand/dragPanContribution.js";
169
- import { useTextTool as Ja } from "./tools/builtin/text/useTextTool.js";
170
- import { constrainTo45 as Ya } from "./util/constrainTo45.js";
171
- import { usePenTool as Xa } from "./tools/builtin/pen/usePenTool.js";
172
- import { useRectTool as Za } from "./tools/builtin/rect/useRectTool.js";
173
- import { useEllipseTool as Qa } from "./tools/builtin/ellipse/useEllipseTool.js";
174
- import { useImageTool as $a } from "./tools/builtin/image/useImageTool.js";
175
- import { useEyedropperTool as eo } from "./tools/builtin/eyedropper/useEyedropperTool.js";
176
- import { useLineTool as to } from "./tools/builtin/line/useLineTool.js";
177
- import { useLassoTool as no } from "./tools/builtin/lasso/useLassoTool.js";
178
- import { usePolygonTool as ro } from "./tools/builtin/polygon/usePolygonTool.js";
179
- import { useStarTool as io } from "./tools/builtin/star/useStarTool.js";
180
- import { usePencilTool as ao } from "./tools/builtin/pencil/usePencilTool.js";
181
- import { useSliceTool as oo } from "./tools/builtin/slice/useSliceTool.js";
182
- import { defaultDrawOne as so, defaultPaintBounds as co } from "./canvas/defaultDrawOne.js";
183
- import { releaseCanvasRenderer as lo } from "./canvas/canvasRenderer.js";
184
- import { useSelection as uo } from "./core/selection/useSelection.js";
185
- import { DEFAULT_ROTATION_HANDLE_DISTANCE as fo, hitRotationHandle as po, rotationHandle as mo } from "./interactions/actions/rotate/handle.js";
186
- import { composeSelectionPose as ho, createSelectionHandlesLayer as go, createSelectionOutlineLayer as _o, createSelectionOverlayLayer as vo } from "./features/selection/overlay.js";
187
- import { PAINTED_CURSOR_LAYER_ID as yo, createPaintedCursorLayer as bo } from "./features/cursor/paintedCursorLayer.js";
188
- import { rotateAroundAABBCenter as xo } from "./canvas/poseRotation.js";
189
- import { hostAnchorCss as So, hostAnchorRect as Co } from "./canvas/hostAnchor.js";
190
- import { useHostAnchor as wo } from "./canvas/useHostAnchor.js";
191
- import { CursorCoordsHud as To } from "./canvas/CursorCoordsHud.js";
192
- import { PickHud as Eo } from "./canvas/PickHud.js";
193
- import { sceneToAdapter as Do, useSceneAdapter as Oo } from "./canvas/sceneAdapter.js";
194
- import { createArrangeOp as ko } from "./core/ops/arrange.js";
195
- import { createPoseOverrides as Ao } from "./core/scene/poseOverrides.js";
196
- import { createScene as jo, sceneFromJSON as Mo, sceneSelectionStore as No } from "./core/scene/scene.js";
197
- import { SelectionContextProvider as Po, SelectionContextProviderIfRoot as Fo, usePublishSelection as Io, useSelectionContext as Lo } from "./features/selection/SelectionContext.js";
198
- import { annulusSemiAxes as Ro, hitAffordanceRegions as zo, pointRegionFrame as Bo } from "./affordances/hitAffordanceRegions.js";
199
- import { createCornerResizeAffordance as Vo } from "./affordances/cornerResize.js";
200
- import { createRotationAffordance as Ho } from "./affordances/rotationHandle.js";
201
- import { enumerateAnchors as Uo, withCoord as Wo } from "./interactions/actions/edit-anchors/geometry.js";
202
- import { PATH_ANCHOR_CHROME_ID as Go, createPathAnchorAffordances as Ko } from "./affordances/pathAnchors.js";
203
- import { insertPreviewExtent as qo } from "./canvas/insertPreviewExtent.js";
204
- import { CanvasView as Jo } from "./canvas/CanvasView.js";
205
- import { KIT_VERSIONS as Yo, checkRequirements as Xo, satisfiesRange as Zo } from "./canvas/kitRequirements.js";
206
- import { PointerProviderIfRoot as Qo } from "./canvas/SceneCanvas/PointerProviderIfRoot.js";
207
- import { AUTO_ORIGIN_PROJECTION as $o, RECT_ORIGIN_PROJECTION as es } from "./interactions/gestures/shared/originProjection.js";
208
- import { snap as ts } from "./interactions/gestures/shared/snap.js";
209
- import { FEATURE_ACTION_IDS as ns, SCENE_CANVAS_FEATURES as rs, TOOL_DRIVEN_ACTION_IDS as is } from "./canvas/SceneCanvas/features.js";
210
- import { flattenPreviews as as, resolvePreviews as os } from "./interactions/actions/resolvePreviews.js";
211
- import { resolveOverlays as ss } from "./interactions/actions/resolveOverlays.js";
212
- import { circlePath as cs, rectMarkerPath as ls, roundRectPath as us, squarePath as ds } from "./features/paths/markers.js";
213
- import { createPenPreviewLayer as fs } from "./features/paths/penPreviewLayer.js";
214
- import { createPathEditingOverlayLayer as ps } from "./features/paths/pathEditingOverlayLayer.js";
215
- import { layoutArrivalHandler as ms, useLayoutArrivals as hs } from "./layout/arrivals.js";
216
- import { WEASEL_CLIPBOARD_MIME as gs, WEASEL_CLIPBOARD_MIME_WEB as _s, buildWeaselClipboardText as vs, embedWeaselMetadataInSvg as ys, extractWeaselClipboardFromSvg as bs, parseWeaselClipboardText as xs, sniffWeaselClipboardText as Ss } from "./interactions/actions/clipboard/wireFormat.js";
217
- import { openFilePicker as Cs } from "./features/ingestion/openFilePicker.js";
218
- import { LONG_PRESS_FEEDBACK_ID as ws, createLongPressFeedbackContribution as Ts } from "./features/longPress/longPressFeedback.js";
219
- import { createNodeRouting as Es } from "./core/scene/NodeRouting.js";
220
- import { defaultNodeRouting as Ds, inferredNodeRouting as Os } from "./canvas/SceneCanvas/defaultNodeRouting.js";
221
- import { actionIs as ks, always as As, and as js, canHover as Ms, capabilityAll as Ns, capabilityIn as Ps, capabilityIs as Fs, capabilityNot as Is, coarsePointer as Ls, cond as Rs, focused as zs, gesturing as Bs, hovering as Vs, hoveringSelected as Hs, modeIn as Us, modeIs as Ws, modeNot as Gs, modifierHeld as Ks, multiActive as qs, never as Js, not as Ys, or as Xs, selectionAtLeast as Zs, selectionEmpty as Qs, selectionIs as $s, when as ec, zoomAtLeast as tc } from "./features/chrome-caps/conditions.js";
222
- import { defaultVisibilityRules as nc } from "./features/chrome-caps/defaults.js";
223
- import { resolveVisibility as rc } from "./features/chrome-caps/resolve.js";
224
- import { buildChromeCtx as ic } from "./features/chrome-caps/buildChromeCtx.js";
225
- import { useHoverTracking as ac } from "./features/chrome-caps/useHoverTracking.js";
226
- import { ALWAYS as oc, DEFAULT_ALLOWED_CAPABILITIES as sc, NEVER as cc, buildRuleCtx as lc, describeRule as uc, evaluate as dc } from "./features/chrome-caps/index.js";
227
- import { BUILTIN_TOOL_IDS as fc, DEFAULT_HANDLE_SIZE as pc, SceneCanvas as mc } from "./canvas/SceneCanvas.js";
228
- import { createNodeProperties as hc } from "./core/scene/NodeProperties.js";
229
- import { defaultNodeProperties as gc, inferredNodeProperties as _c, rotationDegreesUnit as vc } from "./canvas/SceneCanvas/defaultNodeProperties.js";
230
- import { buildSceneViewCommands as yc, renderSceneToCanvas as bc } from "./canvas/sceneViewRender.js";
231
- import { SceneViewCanvas as xc } from "./canvas/SceneViewCanvas.js";
232
- import { DrawCanvas as Sc } from "./canvas/DrawCanvas.js";
233
- import { MINIMAP_CENTER as Cc, MINIMAP_PAN as wc, centerRootOn as Tc, minimapCenterAction as Ec, minimapPanAction as Dc } from "./features/minimap/actions.js";
234
- import { CROSSHAIR_HALO as Oc, crosshairRects as kc } from "./features/minimap/layers.js";
235
- import { useScene as Ac } from "./core/scene/useScene.js";
236
- import { createPoseFeed as jc } from "./core/scene/poseFeed.js";
237
- import { FALLBACK_FIT_VIEW as Mc, computeFitView as Nc, computeIndicatorCommand as Pc } from "./canvas/minimapMath.js";
238
- import { MinimapCanvas as Fc } from "./canvas/MinimapCanvas.js";
239
- import { createLinkedCursorContribution as Ic, createMinimapContribution as Lc } from "./features/minimap/createMinimapContribution.js";
240
- import { renderNeeds as Rc } from "./canvas/renderNeeds.js";
241
- import { createRasterSession as zc, planPixelRender as Bc, renderSceneToPixels as Vc, warmRender as Hc } from "./canvas/renderSceneToPixels.js";
242
- import { debugSnapshotArgs as Uc, renderDebugSnapshot as Wc } from "./canvas/renderDebugSnapshot.js";
243
- import { rasterToPng as Gc } from "./canvas/rasterToPng.js";
244
- import { ActionsProviderIfRoot as Kc } from "./canvas/SceneCanvas/ActionsProviderIfRoot.js";
245
- import { DepRegistryProviderIfRoot as qc } from "./canvas/SceneCanvas/DepRegistryProviderIfRoot.js";
246
- import { WeaselProvider as Jc } from "./WeaselProvider.js";
247
- import { useCanvasFocus as Yc } from "./features/focus/useCanvasFocus.js";
248
- import { gateLayer as Xc } from "./features/focus/gateLayer.js";
249
- import { modeDecorationLayer as Zc, workspaceTintLayer as Qc } from "./features/modes/modeLayers.js";
250
- import { createChildrenLayer as $c } from "./features/groups/children.js";
251
- import { composeAffordanceLayer as el } from "./affordances/composeAffordanceLayer.js";
252
- import { defaultLabelTextRenderer as tl, renderLabel as nl } from "./features/text/renderLabel.js";
253
- import { createTextLayer as rl } from "./features/text/textLayer.js";
254
- import { caretIndexAt as il, pointInTextPose as al } from "./features/text/hitTest.js";
255
- import { fitTextPose as ol } from "./features/text/fitTextPose.js";
256
- import { charOffsetToDomPosition as sl, domPositionToCharOffset as cl, domToRuns as ll, runsToDom as ul } from "./features/text/domRuns.js";
257
- import { MIXED as dl } from "./core/mixed.js";
258
- import { applyStyleToRange as fl, patchRangeStyle as pl, styleAtRange as ml } from "./features/text/runs/rangeStyle.js";
259
- import { nodeHasFlag as hl, setFlagOverRange as gl, unboldPatch as _l } from "./features/text/runs/flagRange.js";
260
- import { effectiveRangeStyle as vl, rangeWeight as yl } from "./features/text/runs/effectiveRangeStyle.js";
261
- import { TEXT_EDIT_FONT_HOLD as bl, useTextEdit as xl } from "./features/text/useTextEdit.js";
262
- import { useSceneTextEdit as Sl } from "./features/text/useSceneTextEdit.js";
263
- import { createSetTextOp as Cl } from "./core/ops/setText.js";
264
- import { createSetLayerOp as wl } from "./core/ops/setLayer.js";
265
- import { createSetLayoutOp as Tl } from "./core/ops/setLayout.js";
266
- import { createSetPathOp as El } from "./core/ops/setPath.js";
267
- import { nestedHitTester as Dl } from "./features/groups/nestedHit.js";
268
- import { unionOfChildrenVia as Ol } from "./features/groups/unionOfChildren.js";
269
- import { createPathLayer as kl } from "./features/paths/pathLayer.js";
270
- import { pathOriginProjection as Al } from "./features/paths/originProjection.js";
271
- import { DEFAULT_FLATTEN_TOLERANCE as jl, PATH_C as Ml, PATH_CMD_LENGTHS as Nl, PATH_L as Pl, PATH_M as Fl, PATH_Q as Il, PATH_Z as Ll, PathBuilder as Rl, boundsOfPath as zl, composePath as Bl, decomposePath as Vl, ellipsePath as Hl, flattenCubic as Ul, flattenCubicWithArcLen as Wl, flattenQuadratic as Gl, flattenQuadraticWithArcLen as Kl, linePath as ql, pathCommandCoordCount as Jl, pathContainsPoint as Yl, pathContainsPolygon as Xl, pathContainsRect as Zl, pathDistanceToPoint as Ql, pathFromD as $l, pathIntersectsPolygon as eu, pathIntersectsRect as tu, pathSignedArea as nu, pointAlongPath as ru, pointInPath as iu, polygonFromPoints as au, polylineFromPoints as ou, rectPath as su, regularPolygonPath as cu, reversePath as lu, scalePathToBounds as uu, snipPathByPolyline as du, splitPathByPolyline as fu, splitPathBySegment as pu, splitSubpaths as mu, starPath as hu, transformPath as gu, translatePath as _u, unionBoundsPath as vu } from "./features/paths/index.js";
272
- import { useGradientKinds as yu, usePaintKind as bu, usePaintKinds as xu } from "./core/usePaintKinds.js";
273
- import { createHistory as Su } from "./core/ops/createHistory.js";
274
- import { arrayAdapter as Cu } from "./core/adapters/arrayAdapter.js";
275
- import { useArrayAdapter as wu } from "./core/adapters/useArrayAdapter.js";
276
- import { useDragGesture as Tu } from "./interactions/gestures/dragGesture/dragGesture.js";
277
- import { useDragRect as Eu } from "./interactions/gestures/dragRect/dragRect.js";
278
- import { useDragRadial as Du } from "./interactions/gestures/dragRadial/dragRadial.js";
279
- import { hitAnchor as Ou } from "./interactions/actions/edit-anchors/handles.js";
280
- import { useClipboardOps as ku } from "./interactions/actions/clipboard/clipboardOps.js";
281
- import { useDistribute as Au } from "./interactions/actions/distribute/distribute.js";
282
- import { cloneByAltDrag as ju } from "./interactions/actions/clone/behaviors/cloneByAltDrag.js";
283
- import { useBooleans as Mu } from "./interactions/actions/booleans/useBooleans.js";
284
- import { useBooleansAdapter as Nu } from "./interactions/actions/booleans/useBooleansAdapter.js";
285
- import { useCreateOutlinesAdapter as Pu } from "./interactions/actions/outlines/useCreateOutlinesAdapter.js";
286
- import { animateOnSetPose as Fu } from "./animation/wrappers/animateOnSetPose.js";
287
- import { animateLifecycle as Iu } from "./animation/wrappers/animateLifecycle.js";
288
- import { createReflowTransition as Lu, useAnimatedReflow as Ru } from "./animation/reflow.js";
289
- import { momentum as zu } from "./animation/behaviors/momentum.js";
290
- import { createSlew as Bu, slewToward as Vu } from "./animation/slew.js";
291
- import { cycleVertexColors as Hu, rainbowVertexColors as Uu, solidVertexColors as Wu, springVertexColors as Gu, staggerVertexColors as Ku, tweenVertexColors as qu } from "./animation/colorHelpers.js";
292
- import { IDENTITY_JOINT as Ju } from "./animation/rig/types.js";
293
- import { blendPoses as Yu } from "./animation/rig/blendPoses.js";
294
- import { mirrorPose as Xu } from "./animation/rig/mirrorPose.js";
295
- import { resolveSkeleton as Zu } from "./animation/rig/resolveSkeleton.js";
296
- import { bindRig as Qu, rigidRigApply as $u } from "./animation/rig/bindRig.js";
297
- import { solveIk as ed } from "./animation/rig/solveIk.js";
298
- import { useRig as td } from "./animation/rig/useRig.js";
299
- import { EASINGS as nd, SPRING_PRESETS as rd, cubicBezierEasing as id, easeIn as ad, easeInBack as od, easeInBounce as sd, easeInCirc as cd, easeInCubic as ld, easeInElastic as ud, easeInExpo as dd, easeInOut as fd, easeInOutBack as pd, easeInOutBounce as md, easeInOutCirc as hd, easeInOutCubic as gd, easeInOutElastic as _d, easeInOutExpo as vd, easeInOutQuad as yd, easeInOutQuart as bd, easeInOutQuint as xd, easeInOutSine as Sd, easeInQuad as Cd, easeInQuart as wd, easeInQuint as Td, easeInSine as Ed, easeOut as Dd, easeOutBack as Od, easeOutBounce as kd, easeOutCirc as Ad, easeOutCubic as jd, easeOutElastic as Md, easeOutExpo as Nd, easeOutQuad as Pd, easeOutQuart as Fd, easeOutQuint as Id, easeOutSine as Ld, hexToOklchDeg as Rd, hslToSrgb as zd, interpolateSrgb as Bd, lerpColorArray as Vd, lerpOklab as Hd, lerpOklch as Ud, linear as Wd, linearSrgbToOklab as Gd, linearToSrgb as Kd, oklabToLinearSrgb as qd, oklabToOklch as Jd, oklabToSrgbU8 as Yd, oklchDegToHex as Xd, oklchToOklab as Zd, resolveEasing as Qd, srgbFloatToOklab as $d, srgbToHsl as ef, srgbToLinear as tf, srgbU8ToOklab as nf } from "./animation/index.js";
300
- import { mergeContributions as rf } from "./canvas/surfaceContribution.js";
301
- import { canQueryLocalFonts as af, cssFontFamily as of, cssFontFamilyLoading as sf, enableLocalFontOutlines as cf, fontOutlineRegistry as lf, fontRegistry as uf, hasFontOutlines as df, isCanvasFont as ff, listFontOutlines as pf, loadFontOutlines as mf, outlineStatus as hf, registerCanvasFont as gf, registerFont as _f, registerFontOutlines as vf, subscribeGlyphReady as yf, unregisterCanvasFont as bf, unregisterFontOutlines as xf, warmFonts as Sf } from "@weasel-js/font";
302
- import { STROKE_DASH_RATIOS as Cf, alignedStrokeRect as wf, composePatternTransform as Tf, contrastLineColor as Ef, dashForStrokeStyle as Df, decomposePatternTransform as Of, resolveScreenLength as kf, strokeDashStyleOf as Af } from "@weasel-js/paint";
303
- import { createReflectable as jf } from "@weasel-js/registry";
304
- import { DEFAULT_DECORATION_METRICS as Mf, DEFAULT_TEXT_STYLE as Nf, MARKDOWN_RUN_GRAMMAR as Pf, SCRIPT_METRICS as Ff, SMALL_CAPS_SCALE as If, cachedLayoutRuns as Lf, createMarkdownRenderer as Rf, decorationMetrics as zf, fontString as Bf, isBoldWeight as Vf, isSmallCapsLetter as Hf, layoutMarkdown as Uf, layoutRuns as Wf, layoutTextPose as Gf, markdownToRuns as Kf, measureText as qf, measureTextBounds as Jf, measuredWidth as Yf, numericWeight as Xf, resolveAlign as Zf, resolveRunFace as Qf, resolveRuns as $f, resolveTextStyle as ep, runsToMarkdown as tp, runsToPlainText as np, scriptMetrics as rp, scriptMetricsFor as ip, smallCapsScale as ap, smallCapsScaleFor as op, smallCapsText as sp, textLineBoxes as cp, textPoseLayoutInput as lp, toRuns as up, transformRunTexts as dp, verticalAlignOffset as fp } from "@weasel-js/text";
305
- import { trimPolyline as pp } from "@weasel-js/geom/tessellate";
306
- import { useLatest as mp } from "@weasel-js/react";
307
- import { ActionDisabledReason as hp, CONTROL_SELECTOR as gp, DRAG_THRESHOLD_PX as _p, LONG_PRESS_MS as vp, actionBindings as yp, actionItems as bp, buildDepsFromRequires as xp, clientToCanvas as Sp, createDepRegistry as Cp, createDispatcher as wp, createLongPressStore as Tp, deleteScratch as Ep, evaluateEnabled as Dp, getScratch as Op, isEditableTarget as kp, isInControlWithin as Ap, liveScope as jp, matchesKeyBinding as Mp, modeShortcutSpec as Np, modeShortcuts as Pp, openPointerSession as Fp, pastDragThreshold as Ip, resolveParams as Lp, scopeBindings as Rp, scratchKey as zp, setScratch as Bp, specificity as Vp } from "@weasel-js/routing";
308
- import { ActionsProvider as Hp, ActiveToolContextProvider as Up, ActiveToolContextProviderIfRoot as Wp, DepRegistryProvider as Gp, InputScope as Kp, Yoke as qp, useAction as Jp, useActionsRegistry as Yp, useActiveToolContext as Xp, useDepRegistry as Zp, useDepSource as Qp, useGestureDispatcher as $p, useOngoingAction as em, useOptionalActiveToolContext as tm, useOptionalDepRegistry as nm, useYoke as rm } from "@weasel-js/routing/react";
309
- import { ANGLE_RADIANS as im, IMPERIAL_INCHES as am, METRIC_MM as om, PIXELS as sm, formatUnit as cm, resolveUnit as lm, unitScale as um } from "@weasel-js/quantity";
310
- import { CURSOR_ANGLE_STEPS as dm, CURSOR_MAX_CSS_PX as fm, bakeCursor as pm, createPaintedCursorState as mm, cursorFor as hm, resolveCursor as gm, resolveCursorTier as _m } from "@weasel-js/cursor";
311
- import { CURVE_REPS as vm, bezierCubic as ym, bezierQuadratic as bm, nurbs as xm, spiro as Sm } from "@weasel-js/geom/curves";
165
+ import { AREA_SELECT_ID as Fa, SELECTION_MOVE_ID as Ia, SELECTION_RESIZE_ID as La, SELECTION_ROTATE_ID as Ra, SELECTION_TRANSFORM_ID as za, areaSelectContribution as Ba, onEmptyCanvas as Va, selectionMoveBindings as Ha, selectionMoveContribution as Ua, selectionResizeBindings as Wa, selectionResizeContribution as Ga, selectionRotateBindings as Ka, selectionRotateContribution as qa, selectionTransformBindings as Ja, selectionTransformContribution as Ya } from "./tools/builtin/select/selectionContributions.js";
166
+ import { useSelectTool as Xa } from "./tools/builtin/select/useSelectTool.js";
167
+ import { useHandTool as Za } from "./tools/builtin/hand/useHandTool.js";
168
+ import { DRAG_PAN_ID as Qa, dragPanContribution as $a } from "./tools/builtin/hand/dragPanContribution.js";
169
+ import { useTextTool as eo } from "./tools/builtin/text/useTextTool.js";
170
+ import { constrainTo45 as to } from "./util/constrainTo45.js";
171
+ import { usePenTool as no } from "./tools/builtin/pen/usePenTool.js";
172
+ import { useRectTool as ro } from "./tools/builtin/rect/useRectTool.js";
173
+ import { useEllipseTool as io } from "./tools/builtin/ellipse/useEllipseTool.js";
174
+ import { useImageTool as ao } from "./tools/builtin/image/useImageTool.js";
175
+ import { useEyedropperTool as oo } from "./tools/builtin/eyedropper/useEyedropperTool.js";
176
+ import { useLineTool as so } from "./tools/builtin/line/useLineTool.js";
177
+ import { useLassoTool as co } from "./tools/builtin/lasso/useLassoTool.js";
178
+ import { usePolygonTool as lo } from "./tools/builtin/polygon/usePolygonTool.js";
179
+ import { useStarTool as uo } from "./tools/builtin/star/useStarTool.js";
180
+ import { usePencilTool as fo } from "./tools/builtin/pencil/usePencilTool.js";
181
+ import { useSliceTool as po } from "./tools/builtin/slice/useSliceTool.js";
182
+ import { defaultDrawOne as mo, defaultPaintBounds as ho } from "./canvas/defaultDrawOne.js";
183
+ import { releaseCanvasRenderer as go } from "./canvas/canvasRenderer.js";
184
+ import { useSelection as _o } from "./core/selection/useSelection.js";
185
+ import { DEFAULT_ROTATION_HANDLE_DISTANCE as vo, hitRotationHandle as yo, rotationHandle as bo } from "./interactions/actions/rotate/handle.js";
186
+ import { composeSelectionPose as xo, createSelectionHandlesLayer as So, createSelectionOutlineLayer as Co, createSelectionOverlayLayer as wo } from "./features/selection/overlay.js";
187
+ import { PAINTED_CURSOR_LAYER_ID as To, createPaintedCursorLayer as Eo } from "./features/cursor/paintedCursorLayer.js";
188
+ import { rotateAroundAABBCenter as Do } from "./canvas/poseRotation.js";
189
+ import { hostAnchorCss as Oo, hostAnchorRect as ko } from "./canvas/hostAnchor.js";
190
+ import { useHostAnchor as Ao } from "./canvas/useHostAnchor.js";
191
+ import { CursorCoordsHud as jo } from "./canvas/CursorCoordsHud.js";
192
+ import { PickHud as Mo } from "./canvas/PickHud.js";
193
+ import { sceneToAdapter as No, useSceneAdapter as Po } from "./canvas/sceneAdapter.js";
194
+ import { createArrangeOp as Fo } from "./core/ops/arrange.js";
195
+ import { createPoseOverrides as Io } from "./core/scene/poseOverrides.js";
196
+ import { createScene as Lo, sceneFromJSON as Ro, sceneSelectionStore as zo } from "./core/scene/scene.js";
197
+ import { SelectionContextProvider as Bo, SelectionContextProviderIfRoot as Vo, usePublishSelection as Ho, useSelectionContext as Uo } from "./features/selection/SelectionContext.js";
198
+ import { annulusSemiAxes as Wo, hitAffordanceRegions as Go, pointRegionFrame as Ko } from "./affordances/hitAffordanceRegions.js";
199
+ import { createCornerResizeAffordance as qo } from "./affordances/cornerResize.js";
200
+ import { createRotationAffordance as Jo } from "./affordances/rotationHandle.js";
201
+ import { enumerateAnchors as Yo, withCoord as Xo } from "./interactions/actions/edit-anchors/geometry.js";
202
+ import { PATH_ANCHOR_CHROME_ID as Zo, createPathAnchorAffordances as Qo } from "./affordances/pathAnchors.js";
203
+ import { insertPreviewExtent as $o } from "./canvas/insertPreviewExtent.js";
204
+ import { CanvasView as es } from "./canvas/CanvasView.js";
205
+ import { KIT_VERSIONS as ts, checkRequirements as ns, satisfiesRange as rs } from "./canvas/kitRequirements.js";
206
+ import { PointerProviderIfRoot as is } from "./canvas/SceneCanvas/PointerProviderIfRoot.js";
207
+ import { AUTO_ORIGIN_PROJECTION as as, RECT_ORIGIN_PROJECTION as os } from "./interactions/gestures/shared/originProjection.js";
208
+ import { snap as ss } from "./interactions/gestures/shared/snap.js";
209
+ import { COMPOSITE_FEATURES as cs, FEATURE_ACTION_IDS as ls, SCENE_CANVAS_FEATURES as us, TOOL_DRIVEN_ACTION_IDS as ds } from "./canvas/SceneCanvas/features.js";
210
+ import { flattenPreviews as fs, resolvePreviews as ps } from "./interactions/actions/resolvePreviews.js";
211
+ import { resolveOverlays as ms } from "./interactions/actions/resolveOverlays.js";
212
+ import { circlePath as hs, rectMarkerPath as gs, roundRectPath as _s, squarePath as vs } from "./features/paths/markers.js";
213
+ import { createPenPreviewLayer as ys } from "./features/paths/penPreviewLayer.js";
214
+ import { createPathEditingOverlayLayer as bs } from "./features/paths/pathEditingOverlayLayer.js";
215
+ import { layoutArrivalHandler as xs, useLayoutArrivals as Ss } from "./layout/arrivals.js";
216
+ import { WEASEL_CLIPBOARD_MIME as Cs, WEASEL_CLIPBOARD_MIME_WEB as ws, buildWeaselClipboardText as Ts, embedWeaselMetadataInSvg as Es, extractWeaselClipboardFromSvg as Ds, parseWeaselClipboardText as Os, sniffWeaselClipboardText as ks } from "./interactions/actions/clipboard/wireFormat.js";
217
+ import { openFilePicker as As } from "./features/ingestion/openFilePicker.js";
218
+ import { LONG_PRESS_FEEDBACK_ID as js, createLongPressFeedbackContribution as Ms } from "./features/longPress/longPressFeedback.js";
219
+ import { createNodeRouting as Ns } from "./core/scene/NodeRouting.js";
220
+ import { defaultNodeRouting as Ps, inferredNodeRouting as Fs } from "./canvas/SceneCanvas/defaultNodeRouting.js";
221
+ import { actionIs as Is, always as Ls, and as Rs, canHover as zs, capabilityAll as Bs, capabilityIn as Vs, capabilityIs as Hs, capabilityNot as Us, coarsePointer as Ws, cond as Gs, focused as Ks, gesturing as qs, hovering as Js, hoveringSelected as Ys, modeIn as Xs, modeIs as Zs, modeNot as Qs, modifierHeld as $s, multiActive as ec, never as tc, not as nc, or as rc, selectionAtLeast as ic, selectionEmpty as ac, selectionIs as oc, when as sc, zoomAtLeast as cc } from "./features/chrome-caps/conditions.js";
222
+ import { defaultVisibilityRules as lc } from "./features/chrome-caps/defaults.js";
223
+ import { resolveVisibility as uc } from "./features/chrome-caps/resolve.js";
224
+ import { buildChromeCtx as dc } from "./features/chrome-caps/buildChromeCtx.js";
225
+ import { useHoverTracking as fc } from "./features/chrome-caps/useHoverTracking.js";
226
+ import { ALWAYS as pc, DEFAULT_ALLOWED_CAPABILITIES as mc, NEVER as hc, buildRuleCtx as gc, describeRule as _c, evaluate as vc } from "./features/chrome-caps/index.js";
227
+ import { BUILTIN_TOOL_IDS as yc, DEFAULT_HANDLE_SIZE as bc, SceneCanvas as xc } from "./canvas/SceneCanvas.js";
228
+ import { createNodeProperties as Sc } from "./core/scene/NodeProperties.js";
229
+ import { defaultNodeProperties as Cc, inferredNodeProperties as wc, rotationDegreesUnit as Tc } from "./canvas/SceneCanvas/defaultNodeProperties.js";
230
+ import { buildSceneViewCommands as Ec, renderSceneToCanvas as Dc } from "./canvas/sceneViewRender.js";
231
+ import { SceneViewCanvas as Oc } from "./canvas/SceneViewCanvas.js";
232
+ import { DrawCanvas as kc } from "./canvas/DrawCanvas.js";
233
+ import { MINIMAP_CENTER as Ac, MINIMAP_PAN as jc, centerRootOn as Mc, minimapCenterAction as Nc, minimapPanAction as Pc } from "./features/minimap/actions.js";
234
+ import { CROSSHAIR_HALO as Fc, crosshairRects as Ic } from "./features/minimap/layers.js";
235
+ import { useScene as Lc } from "./core/scene/useScene.js";
236
+ import { createPoseFeed as Rc } from "./core/scene/poseFeed.js";
237
+ import { FALLBACK_FIT_VIEW as zc, computeFitView as Bc, computeIndicatorCommand as Vc } from "./canvas/minimapMath.js";
238
+ import { MinimapCanvas as Hc } from "./canvas/MinimapCanvas.js";
239
+ import { createLinkedCursorContribution as Uc, createMinimapContribution as Wc } from "./features/minimap/createMinimapContribution.js";
240
+ import { renderNeeds as Gc } from "./canvas/renderNeeds.js";
241
+ import { createRasterSession as Kc, planPixelRender as qc, renderSceneToPixels as Jc, warmRender as Yc } from "./canvas/renderSceneToPixels.js";
242
+ import { debugSnapshotArgs as Xc, renderDebugSnapshot as Zc } from "./canvas/renderDebugSnapshot.js";
243
+ import { rasterToPng as Qc } from "./canvas/rasterToPng.js";
244
+ import { ActionsProviderIfRoot as $c } from "./canvas/SceneCanvas/ActionsProviderIfRoot.js";
245
+ import { DepRegistryProviderIfRoot as el } from "./canvas/SceneCanvas/DepRegistryProviderIfRoot.js";
246
+ import { WeaselProvider as tl } from "./WeaselProvider.js";
247
+ import { useCanvasFocus as nl } from "./features/focus/useCanvasFocus.js";
248
+ import { gateLayer as rl } from "./features/focus/gateLayer.js";
249
+ import { modeDecorationLayer as il, workspaceTintLayer as al } from "./features/modes/modeLayers.js";
250
+ import { createChildrenLayer as ol } from "./features/groups/children.js";
251
+ import { composeAffordanceLayer as sl } from "./affordances/composeAffordanceLayer.js";
252
+ import { defaultLabelTextRenderer as cl, renderLabel as ll } from "./features/text/renderLabel.js";
253
+ import { createTextLayer as ul } from "./features/text/textLayer.js";
254
+ import { caretIndexAt as dl, pointInTextPose as fl } from "./features/text/hitTest.js";
255
+ import { fitTextPose as pl } from "./features/text/fitTextPose.js";
256
+ import { charOffsetToDomPosition as ml, domPositionToCharOffset as hl, domToRuns as gl, runsToDom as _l } from "./features/text/domRuns.js";
257
+ import { MIXED as vl } from "./core/mixed.js";
258
+ import { applyStyleToRange as yl, patchRangeStyle as bl, styleAtRange as xl } from "./features/text/runs/rangeStyle.js";
259
+ import { nodeHasFlag as Sl, setFlagOverRange as Cl, unboldPatch as wl } from "./features/text/runs/flagRange.js";
260
+ import { effectiveRangeStyle as Tl, rangeWeight as El } from "./features/text/runs/effectiveRangeStyle.js";
261
+ import { TEXT_EDIT_FONT_HOLD as Dl, useTextEdit as Ol } from "./features/text/useTextEdit.js";
262
+ import { useSceneTextEdit as kl } from "./features/text/useSceneTextEdit.js";
263
+ import { createSetTextOp as Al } from "./core/ops/setText.js";
264
+ import { createSetLayerOp as jl } from "./core/ops/setLayer.js";
265
+ import { createSetLayoutOp as Ml } from "./core/ops/setLayout.js";
266
+ import { createSetPathOp as Nl } from "./core/ops/setPath.js";
267
+ import { nestedHitTester as Pl } from "./features/groups/nestedHit.js";
268
+ import { unionOfChildrenVia as Fl } from "./features/groups/unionOfChildren.js";
269
+ import { createPathLayer as Il } from "./features/paths/pathLayer.js";
270
+ import { pathOriginProjection as Ll } from "./features/paths/originProjection.js";
271
+ import { DEFAULT_FLATTEN_TOLERANCE as Rl, PATH_C as zl, PATH_CMD_LENGTHS as Bl, PATH_L as Vl, PATH_M as Hl, PATH_Q as Ul, PATH_Z as Wl, PathBuilder as Gl, boundsOfPath as Kl, composePath as ql, decomposePath as Jl, ellipsePath as Yl, flattenCubic as Xl, flattenCubicWithArcLen as Zl, flattenQuadratic as Ql, flattenQuadraticWithArcLen as $l, linePath as eu, pathCommandCoordCount as tu, pathContainsPoint as nu, pathContainsPolygon as ru, pathContainsRect as iu, pathDistanceToPoint as au, pathFromD as ou, pathIntersectsPolygon as su, pathIntersectsRect as cu, pathSignedArea as lu, pointAlongPath as uu, pointInPath as du, polygonFromPoints as fu, polylineFromPoints as pu, rectPath as mu, regularPolygonPath as hu, reversePath as gu, scalePathToBounds as _u, snipPathByPolyline as vu, splitPathByPolyline as yu, splitPathBySegment as bu, splitSubpaths as xu, starPath as Su, transformPath as Cu, translatePath as wu, unionBoundsPath as Tu } from "./features/paths/index.js";
272
+ import { useGradientKinds as Eu, usePaintKind as Du, usePaintKinds as Ou } from "./core/usePaintKinds.js";
273
+ import { createHistory as ku } from "./core/ops/createHistory.js";
274
+ import { arrayAdapter as Au } from "./core/adapters/arrayAdapter.js";
275
+ import { useArrayAdapter as ju } from "./core/adapters/useArrayAdapter.js";
276
+ import { useDragGesture as Mu } from "./interactions/gestures/dragGesture/dragGesture.js";
277
+ import { useDragRect as Nu } from "./interactions/gestures/dragRect/dragRect.js";
278
+ import { useDragRadial as Pu } from "./interactions/gestures/dragRadial/dragRadial.js";
279
+ import { hitAnchor as Fu } from "./interactions/actions/edit-anchors/handles.js";
280
+ import { useClipboardOps as Iu } from "./interactions/actions/clipboard/clipboardOps.js";
281
+ import { useDistribute as Lu } from "./interactions/actions/distribute/distribute.js";
282
+ import { cloneByAltDrag as Ru } from "./interactions/actions/clone/behaviors/cloneByAltDrag.js";
283
+ import { useBooleans as zu } from "./interactions/actions/booleans/useBooleans.js";
284
+ import { useBooleansAdapter as Bu } from "./interactions/actions/booleans/useBooleansAdapter.js";
285
+ import { useCreateOutlinesAdapter as Vu } from "./interactions/actions/outlines/useCreateOutlinesAdapter.js";
286
+ import { animateOnSetPose as Hu } from "./animation/wrappers/animateOnSetPose.js";
287
+ import { animateLifecycle as Uu } from "./animation/wrappers/animateLifecycle.js";
288
+ import { createReflowTransition as Wu, useAnimatedReflow as Gu } from "./animation/reflow.js";
289
+ import { momentum as Ku } from "./animation/behaviors/momentum.js";
290
+ import { createSlew as qu, slewToward as Ju } from "./animation/slew.js";
291
+ import { cycleVertexColors as Yu, rainbowVertexColors as Xu, solidVertexColors as Zu, springVertexColors as Qu, staggerVertexColors as $u, tweenVertexColors as ed } from "./animation/colorHelpers.js";
292
+ import { IDENTITY_JOINT as td } from "./animation/rig/types.js";
293
+ import { blendPoses as nd } from "./animation/rig/blendPoses.js";
294
+ import { mirrorPose as rd } from "./animation/rig/mirrorPose.js";
295
+ import { resolveSkeleton as id } from "./animation/rig/resolveSkeleton.js";
296
+ import { bindRig as ad, rigidRigApply as od } from "./animation/rig/bindRig.js";
297
+ import { solveIk as sd } from "./animation/rig/solveIk.js";
298
+ import { useRig as cd } from "./animation/rig/useRig.js";
299
+ import { EASINGS as ld, SPRING_PRESETS as ud, cubicBezierEasing as dd, easeIn as fd, easeInBack as pd, easeInBounce as md, easeInCirc as hd, easeInCubic as gd, easeInElastic as _d, easeInExpo as vd, easeInOut as yd, easeInOutBack as bd, easeInOutBounce as xd, easeInOutCirc as Sd, easeInOutCubic as Cd, easeInOutElastic as wd, easeInOutExpo as Td, easeInOutQuad as Ed, easeInOutQuart as Dd, easeInOutQuint as Od, easeInOutSine as kd, easeInQuad as Ad, easeInQuart as jd, easeInQuint as Md, easeInSine as Nd, easeOut as Pd, easeOutBack as Fd, easeOutBounce as Id, easeOutCirc as Ld, easeOutCubic as Rd, easeOutElastic as zd, easeOutExpo as Bd, easeOutQuad as Vd, easeOutQuart as Hd, easeOutQuint as Ud, easeOutSine as Wd, hexToOklchDeg as Gd, hslToSrgb as Kd, interpolateSrgb as qd, lerpColorArray as Jd, lerpOklab as Yd, lerpOklch as Xd, linear as Zd, linearSrgbToOklab as Qd, linearToSrgb as $d, oklabToLinearSrgb as ef, oklabToOklch as tf, oklabToSrgbU8 as nf, oklchDegToHex as rf, oklchToOklab as af, resolveEasing as of, srgbFloatToOklab as sf, srgbToHsl as cf, srgbToLinear as lf, srgbU8ToOklab as uf } from "./animation/index.js";
300
+ import { mergeContributions as df } from "./canvas/surfaceContribution.js";
301
+ import { canQueryLocalFonts as ff, cssFontFamily as pf, cssFontFamilyLoading as mf, enableLocalFontOutlines as hf, fontOutlineRegistry as gf, fontRegistry as _f, hasFontOutlines as vf, isCanvasFont as yf, listFontOutlines as bf, loadFontOutlines as xf, outlineStatus as Sf, registerCanvasFont as Cf, registerFont as wf, registerFontOutlines as Tf, subscribeGlyphReady as Ef, unregisterCanvasFont as Df, unregisterFontOutlines as Of, warmFonts as kf } from "@weasel-js/font";
302
+ import { STROKE_DASH_RATIOS as Af, alignedStrokeRect as jf, composePatternTransform as Mf, contrastLineColor as Nf, dashForStrokeStyle as Pf, decomposePatternTransform as Ff, resolveScreenLength as If, strokeDashStyleOf as Lf } from "@weasel-js/paint";
303
+ import { createReflectable as Rf } from "@weasel-js/registry";
304
+ import { DEFAULT_DECORATION_METRICS as zf, DEFAULT_TEXT_STYLE as Bf, MARKDOWN_RUN_GRAMMAR as Vf, SCRIPT_METRICS as Hf, SMALL_CAPS_SCALE as Uf, cachedLayoutRuns as Wf, createMarkdownRenderer as Gf, decorationMetrics as Kf, fontString as qf, isBoldWeight as Jf, isSmallCapsLetter as Yf, layoutMarkdown as Xf, layoutRuns as Zf, layoutTextPose as Qf, markdownToRuns as $f, measureText as ep, measureTextBounds as tp, measuredWidth as np, numericWeight as rp, resolveAlign as ip, resolveRunFace as ap, resolveRuns as op, resolveTextStyle as sp, runsToMarkdown as cp, runsToPlainText as lp, scriptMetrics as up, scriptMetricsFor as dp, smallCapsScale as fp, smallCapsScaleFor as pp, smallCapsText as mp, textLineBoxes as hp, textPoseLayoutInput as gp, toRuns as _p, transformRunTexts as vp, verticalAlignOffset as yp } from "@weasel-js/text";
305
+ import { trimPolyline as bp } from "@weasel-js/geom/tessellate";
306
+ import { useLatest as xp } from "@weasel-js/react";
307
+ import { ActionDisabledReason as Sp, CONTROL_SELECTOR as Cp, DRAG_THRESHOLD_PX as wp, LONG_PRESS_MS as Tp, actionBindings as Ep, actionItems as Dp, buildDepsFromRequires as Op, clientToCanvas as kp, createDepRegistry as Ap, createDispatcher as jp, createLongPressStore as Mp, deleteScratch as Np, evaluateEnabled as Pp, getScratch as Fp, isEditableTarget as Ip, isInControlWithin as Lp, liveScope as Rp, matchesKeyBinding as zp, modeShortcutSpec as Bp, modeShortcuts as Vp, openPointerSession as Hp, pastDragThreshold as Up, resolveParams as Wp, scopeBindings as Gp, scratchKey as Kp, setScratch as qp, specificity as Jp } from "@weasel-js/routing";
308
+ import { ActionsProvider as Yp, ActiveToolContextProvider as Xp, ActiveToolContextProviderIfRoot as Zp, DepRegistryProvider as Qp, InputScope as $p, Yoke as em, useAction as tm, useActionsRegistry as nm, useActiveToolContext as rm, useDepRegistry as im, useDepSource as am, useGestureDispatcher as om, useOngoingAction as sm, useOptionalActiveToolContext as cm, useOptionalDepRegistry as lm, useYoke as um } from "@weasel-js/routing/react";
309
+ import { ANGLE_RADIANS as dm, IMPERIAL_INCHES as fm, METRIC_MM as pm, PIXELS as mm, formatUnit as hm, resolveUnit as gm, unitScale as _m } from "@weasel-js/quantity";
310
+ import { CURSOR_ANGLE_STEPS as vm, CURSOR_MAX_CSS_PX as ym, bakeCursor as bm, createPaintedCursorState as xm, cursorFor as Sm, resolveCursor as Cm, resolveCursorTier as wm } from "@weasel-js/cursor";
311
+ import { CURVE_REPS as Tm, bezierCubic as Em, bezierQuadratic as Dm, nurbs as Om, spiro as km } from "@weasel-js/geom/curves";
312
312
  export * from "@weasel-js/history";
313
- export { sr as ACTION_GLYPHS, oc as ALWAYS, lt as ANCHOR_HIT_BASE_PX, im as ANGLE_RADIANS, Fa as AREA_SELECT_ID, $o as AUTO_ORIGIN_PROJECTION, Jt as AUTO_POSE_DESCRIPTOR, hp as ActionDisabledReason, Hp as ActionsProvider, Kc as ActionsProviderIfRoot, Up as ActiveToolContextProvider, Wp as ActiveToolContextProviderIfRoot, kr as AlignBottomIcon, Ar as AlignCenterXIcon, jr as AlignCenterYIcon, Mr as AlignLeftIcon, Nr as AlignRightIcon, Pr as AlignTopIcon, ma as ArrowIcon, E as BUILTIN_MARKERS, fc as BUILTIN_TOOL_IDS, Yn as BringForwardIcon, Xn as BringToFrontIcon, ft as COARSE_TARGET_SCALE, gp as CONTROL_SELECTOR, nn as CORNER_ANCHORS, Oc as CROSSHAIR_HALO, dm as CURSOR_ANGLE_STEPS, fm as CURSOR_MAX_CSS_PX, vm as CURVE_REPS, Jo as CanvasView, Xi as ColorOverrideRegistry, Zn as CopyIcon, ei as CreateOutlinesIcon, qr as CropIcon, To as CursorCoordsHud, Qn as CutIcon, sc as DEFAULT_ALLOWED_CAPABILITIES, he as DEFAULT_ALPHA_DECAY, ge as DEFAULT_ALPHA_MIN, ji as DEFAULT_DEBUG_STROKES, Mi as DEFAULT_DEBUG_THEME, Mf as DEFAULT_DECORATION_METRICS, pt as DEFAULT_DEVICE_PROFILE, ai as DEFAULT_FILL_COLOR, jl as DEFAULT_FLATTEN_TOLERANCE, pc as DEFAULT_HANDLE_SIZE, Ea as DEFAULT_INK, J as DEFAULT_MAX_ZOOM, Y as DEFAULT_MIN_ZOOM, oi as DEFAULT_PALETTE, fo as DEFAULT_ROTATION_HANDLE_DISTANCE, si as DEFAULT_SHAPE_FILL, ci as DEFAULT_STROKE_COLOR, Nf as DEFAULT_TEXT_STYLE, _e as DEFAULT_VELOCITY_DECAY, Ka as DRAG_PAN_ID, _p as DRAG_THRESHOLD_PX, cr as DeleteIcon, Gp as DepRegistryProvider, qc as DepRegistryProviderIfRoot, Se as DeviceProfileProvider, Fr as DistributeHorizontalIcon, Ir as DistributeVerticalIcon, Jr as DivideIcon, Sc as DrawCanvas, $n as DuplicateIcon, nd as EASINGS, ua as EllipseIcon, Yr as ExcludeIcon, fa as EyedropperIcon, Mc as FALLBACK_FIT_VIEW, ns as FEATURE_ACTION_IDS, er as FlipXIcon, tr as FlipYIcon, li as GHOST_STROKE, nr as GroupIcon, ut as HANDLE_BASE_PX, ba as HandIcon, Ju as IDENTITY_JOINT, Te as IDENTITY_POSE_COMPOSITION, am as IMPERIAL_INCHES, da as ImageIcon, Kp as InputScope, Xr as IntersectIcon, _n as KIT_SHAPE_KINDS, Ii as KIT_STANDARD_ACTION_IDS, Yo as KIT_VERSIONS, ws as LONG_PRESS_FEEDBACK_ID, vp as LONG_PRESS_MS, ca as LassoIcon, pa as LineIcon, Pf as MARKDOWN_RUN_GRAMMAR, om as METRIC_MM, Cc as MINIMAP_CENTER, wc as MINIMAP_PAN, dl as MIXED, Fc as MinimapCanvas, cc as NEVER, yo as PAINTED_CURSOR_LAYER_ID, Go as PATH_ANCHOR_CHROME_ID, Ml as PATH_C, Nl as PATH_CMD_LENGTHS, Pl as PATH_L, Fl as PATH_M, Il as PATH_Q, Ll as PATH_Z, sm as PIXELS, rr as PasteIcon, Rl as PathBuilder, ya as PenIcon, _a as PencilIcon, Eo as PickHud, _r as PointerContextProvider, Qo as PointerProviderIfRoot, ha as PolygonIcon, es as RECT_ORIGIN_PROJECTION, Oe as RECT_POSE_COMPOSITION, Ht as RECT_POSE_DESCRIPTOR, ke as RIGID_POSE_COMPOSITION, Ut as ROTATED_POSE_DESCRIPTOR, dt as ROTATION_HANDLE_BASE_PX, la as RectIcon, lr as RedoIcon, rs as SCENE_CANVAS_FEATURES, Ff as SCRIPT_METRICS, Ia as SELECTION_MOVE_ID, La as SELECTION_TRANSFORM_ID, vn as SHAPE_KINDS, If as SMALL_CAPS_SCALE, rd as SPRING_PRESETS, w as SPRITE_STRIDE, Cf as STROKE_DASH_RATIOS, jt as SceneArrivalRefused, mc as SceneCanvas, xc as SceneViewCanvas, sa as SelectIcon, Po as SelectionContextProvider, Fo as SelectionContextProviderIfRoot, ir as SendBackwardIcon, ar as SendToBackIcon, ga as StarIcon, Zr as SubtractIcon, bl as TEXT_EDIT_FONT_HOLD, is as TOOL_DRIVEN_ACTION_IDS, ia as TOOL_PREF_KINDS, va as TextIcon, Hr as TextOutlinesError, hr as UNION_OF_CHILDREN, ur as UndoIcon, or as UngroupIcon, Qr as UnionIcon, xa as UnknownIcon, e as VERSION, Qi as VIEW_ANIMATION_KEY, gs as WEASEL_CLIPBOARD_MIME, _s as WEASEL_CLIPBOARD_MIME_WEB, En as WHEEL_ZOOM_STEP, Jc as WeaselProvider, qp as Yoke, X as ZOOM_FLOOR, cn as aabbCenter, yp as actionBindings, ks as actionIs, bp as actionItems, Tt as actionShortcuts, Sr as alignDeltaFor, Cr as alignTargetBounds, wf as alignedStrokeRect, As as always, js as and, Iu as animateLifecycle, Fu as animateOnSetPose, Ro as annulusSemiAxes, Kr as applyBooleanOp, $r as applyCreateOutlines, Vn as applyOpsTo, fl as applyStyleToRange, gn as areaSelectAction, Ra as areaSelectContribution, Cu as arrayAdapter, At as asNodeId, p as asPaint, zt as axisAlignedBounds, pm as bakeCursor, ym as bezierCubic, bm as bezierQuadratic, Qu as bindRig, Yu as blendPoses, B as blur, zl as boundsOfPath, ic as buildChromeCtx, Ni as buildDebugOverlayCommands, xp as buildDepsFromRequires, lc as buildRuleCtx, yc as buildSceneViewCommands, vs as buildWeaselClipboardText, Lf as cachedLayoutRuns, Tr as canBringForward, Ms as canHover, af as canQueryLocalFonts, Er as canSendBackward, Ns as capabilityAll, Ps as capabilityIn, Fs as capabilityIs, Is as capabilityNot, il as caretIndexAt, Tc as centerRootOn, sl as charOffsetToDomPosition, Xo as checkRequirements, cs as circlePath, yt as clampView, bn as clearSelectionAction, Sp as clientToCanvas, dr as clipboardCopyAction, fr as clipboardCutAction, pr as clipboardPasteAction, Cn as cloneAction, ju as cloneByAltDrag, Ls as coarsePointer, el as composeAffordanceLayer, Bl as composePath, Tf as composePatternTransform, Ae as composeRectPose, je as composeRigidPose, ho as composeSelectionPose, Ee as composeWorldPose, Nc as computeFitView, xt as computeFitViewport, Pc as computeIndicatorCommand, Vi as computeSliceOps, Dn as computeWheelAction, Rs as cond, Ya as constrainTo45, Ef as contrastLineColor, rn as cornerPoint, an as cornerResizeHandles, Fn as countPathAnchors, ko as createArrangeOp, $c as createChildrenLayer, Vo as createCornerResizeAffordance, Pi as createDebugOverlayLayer, xi as createDebugSink, xn as createDeleteOp, Cp as createDepRegistry, wp as createDispatcher, Su as createHistory, Sn as createInsertOp, Ct as createKeyState, Ic as createLinkedCursorContribution, Ts as createLongPressFeedbackContribution, Tp as createLongPressStore, Rf as createMarkdownRenderer, Lc as createMinimapContribution, Dr as createMoveToIndexOp, hc as createNodeProperties, Es as createNodeRouting, bo as createPaintedCursorLayer, mm as createPaintedCursorState, fe as createParallaxLayer, de as createParallaxPlane, Ko as createPathAnchorAffordances, ps as createPathEditingOverlayLayer, kl as createPathLayer, fs as createPenPreviewLayer, vr as createPointerStore, jc as createPoseFeed, Ao as createPoseOverrides, zc as createRasterSession, jf as createReflectable, Lu as createReflowTransition, Or as createReorderOp, Lt as createReparentOp, Ho as createRotationAffordance, jo as createScene, go as createSelectionHandlesLayer, _o as createSelectionOutlineLayer, vo as createSelectionOverlayLayer, Rt as createSetDataOp, wl as createSetLayerOp, Tl as createSetLayoutOp, El as createSetPathOp, Un as createSetSelectionOp, Cl as createSetTextOp, ve as createSimulation, Bu as createSlew, rl as createTextLayer, wi as createTilePattern, me as createTiledLayer, It as createTransformOp, wn as createVelocityTracker, ne as createViewResolver, te as createViewportLayer, kc as crosshairRects, of as cssFontFamily, sf as cssFontFamilyLoading, id as cubicBezierEasing, R as cullDrawCommands, hm as cursorFor, ui as cycleFill, Hu as cycleVertexColors, Df as dashForStrokeStyle, Uc as debugSnapshotArgs, Vl as decomposePath, Of as decomposePatternTransform, Me as decomposeRectPose, Ne as decomposeRigidPose, zf as decorationMetrics, pn as defaultCommitAdapter, so as defaultDrawOne, tl as defaultLabelTextRenderer, gc as defaultNodeProperties, Ds as defaultNodeRouting, co as defaultPaintBounds, nc as defaultVisibilityRules, ta as defineTool, Le as definesFrame, Ep as deleteScratch, H as depsUnchanged, re as deriveParallaxView, Re as derivedDepOf, ze as derivedPose, uc as describeRule, Hn as dispatchApplyBatch, _i as dlog, Be as documentPose, cl as domPositionToCharOffset, ll as domToRuns, qa as dragPanContribution, U as drawLayers, W as drawOneLayer, vi as dwarn, ad as easeIn, od as easeInBack, sd as easeInBounce, cd as easeInCirc, ld as easeInCubic, ud as easeInElastic, dd as easeInExpo, fd as easeInOut, pd as easeInOutBack, md as easeInOutBounce, hd as easeInOutCirc, gd as easeInOutCubic, _d as easeInOutElastic, vd as easeInOutExpo, yd as easeInOutQuad, bd as easeInOutQuart, xd as easeInOutQuint, Sd as easeInOutSine, Cd as easeInQuad, wd as easeInQuart, Td as easeInQuint, Ed as easeInSine, Dd as easeOut, Od as easeOutBack, kd as easeOutBounce, Ad as easeOutCirc, jd as easeOutCubic, Md as easeOutElastic, Nd as easeOutExpo, Pd as easeOutQuad, Fd as easeOutQuart, Id as easeOutQuint, Ld as easeOutSine, Bn as editAnchorsAction, Zt as editingLayer, Ve as effectivePose, vl as effectiveRangeStyle, Hl as ellipsePath, ys as embedWeaselMetadataInSvg, cf as enableLocalFontOutlines, mr as enterTextEditAction, Uo as enumerateAnchors, dc as evaluate, Dp as evaluateEnabled, bs as extractWeaselClipboardFromSvg, Si as fillInPoseFrame, Ci as fillToBoundsFrame, Da as findNodeShape, Oa as findShapeBounds, ka as findShapeInk, Aa as findShapeSilhouette, ol as fitTextPose, ht as fitToBounds, _t as fitViewToBounds, gt as fitZoom, on as fixedCornerOf, Ul as flattenCubic, Wl as flattenCubicWithArcLen, as as flattenPreviews, Gl as flattenQuadratic, Kl as flattenQuadraticWithArcLen, zs as focused, lf as fontOutlineRegistry, uf as fontRegistry, Bf as fontString, Ge as forEachCoalesced, cm as formatUnit, I as frameRect, ie as fromPlane, Xc as gateLayer, Dt as gesturePlaneReader, Ot as gestureViewReader, Bs as gesturing, ti as getAlpha01, Sa as getImageBitmap, D as getMarker, ja as getNodeShapes, m as getPaintKind, Op as getScratch, Ke as getStylusData, s as gradientForBounds, c as gradientGeometry, df as hasFontOutlines, Rd as hexToOklchDeg, t as hexToRgba, zo as hitAffordanceRegions, Ou as hitAnchor, sn as hitCornerHandle, po as hitRotationHandle, So as hostAnchorCss, Co as hostAnchorRect, Vs as hovering, Hs as hoveringSelected, zd as hslToSrgb, Ca as imageStatus, Qt as inPlane, _c as inferredNodeProperties, Os as inferredNodeRouting, yn as insertAction, $t as insertLayer, qo as insertPreviewExtent, Bd as interpolateSrgb, Ki as interpolateView, Vf as isBoldWeight, aa as isBuiltinToolPref, ff as isCanvasFont, yi as isDebugEnabled, kp as isEditableTarget, l as isGradientFill, Ap as isInControlWithin, G as isLayerPainted, K as isLayerVisible, h as isPaintKindKnown, Yt as isPathLike, Ti as isPatternSpec, Ie as isPlainObject, Xt as isRectPose, Hf as isSmallCapsLetter, wa as isVectorImageSrc, Et as keySpecShortcut, Gn as lassoSelectAction, ms as layoutArrivalHandler, Uf as layoutMarkdown, Wf as layoutRuns, Gf as layoutTextPose, Vd as lerpColorArray, Hd as lerpOklab, Ud as lerpOklch, ql as linePath, Wd as linear, Gd as linearSrgbToOklab, Kd as linearToSrgb, pf as listFontOutlines, g as listGradientKinds, O as listMarkers, _ as listPaintKinds, jp as liveScope, mf as loadFontOutlines, Ur as loadTextOutlines, qn as makePinchZoomAction, Nn as makeViewportWheelPanAction, jn as makeViewportZoomAction, Kf as markdownToRuns, j as markerInset, M as markerKeyOf, k as markerRegistry, F as markerSites, f as mat3, Mp as matchesKeyBinding, Ze as meanScale, qf as measureText, Jf as measureTextBounds, Yf as measuredWidth, ni as mergeAlphaFromPrev, rf as mergeContributions, Ec as minimapCenterAction, Dc as minimapPanAction, Xu as mirrorPose, Zc as modeDecorationLayer, Us as modeIn, Ws as modeIs, Gs as modeNot, Np as modeShortcutSpec, Pp as modeShortcuts, Ks as modifierHeld, zu as momentum, tn as moveAction, qs as multiActive, Dl as nestedHitTester, Js as never, hl as nodeHasFlag, n as normalizeHex, Q as normalizeView, Z as normalizeZoom, Ys as not, Xf as numericWeight, xm as nurbs, qd as oklabToLinearSrgb, Jd as oklabToOklch, Yd as oklabToSrgbU8, Xd as oklchDegToHex, Zd as oklchToOklab, za as onEmptyCanvas, Mt as opFactoryRegistry, Cs as openFilePicker, Fp as openPointerSession, Xs as or, hf as outlineStatus, di as paintAlpha, v as paintKindOf, y as paintKindRegistry, fi as paintWithAlpha, pi as paintWithColor, r as parseColor, i as parseColorToRgba255, bi as parseDebugFlags, xs as parseWeaselClipboardText, Ip as pastDragThreshold, pl as patchRangeStyle, Jl as pathCommandCoordCount, Yl as pathContainsPoint, Xl as pathContainsPolygon, Zl as pathContainsRect, Ql as pathDistanceToPoint, Lr as pathDivide, Rr as pathExclude, $l as pathFromD, Ln as pathInPoseFrame, Rn as pathInWorld, zr as pathIntersect, eu as pathIntersectsPolygon, tu as pathIntersectsRect, Al as pathOriginProjection, qt as pathPoseDescriptor, nu as pathSignedArea, Br as pathSubtract, In as pathToAnchors, Vr as pathUnion, Pa as pickTopMostHit, Jn as pinchZoomAction, Bc as planPixelRender, ae as planeMap, oe as planeMatrix, se as planeToPlane, ru as pointAlongPath, iu as pointInPath, ln as pointInRotatedRect, al as pointInTextPose, Bo as pointRegionFrame, au as polygonFromPoints, ou as polylineFromPoints, Wt as poseDescriptorForNode, He as poseRotationOf, oa as prefUnit, qe as pressureToWidth, $e as pxExtent, Uu as rainbowVertexColors, yl as rangeWeight, Gc as rasterToPng, De as rebaseLocalPose, Nt as rebuildOp, un as rectCorners, ce as rectFromPlane, ls as rectMarkerPath, su as rectPath, le as rectToPlane, gf as registerCanvasFont, Fi as registerContentHandler, z as registerEffect, _f as registerFont, vf as registerFontOutlines, A as registerMarker, Ma as registerNodeShape, Pt as registerOpFactory, b as registerPaintKind, x as registerPaintKindLoader, Ft as registeredOpNames, cu as regularPolygonPath, lo as releaseCanvasRenderer, Wc as renderDebugSnapshot, nl as renderLabel, Rc as renderNeeds, bc as renderSceneToCanvas, Vc as renderSceneToPixels, mn as resizeAction, Zf as resolveAlign, a as resolveColor, gm as resolveCursor, _m as resolveCursorTier, mt as resolveDeviceProfile, Qd as resolveEasing, Ei as resolveFillPattern, N as resolveMarkerSize, ss as resolveOverlays, Lp as resolveParams, Di as resolvePatternSpec, os as resolvePreviews, Qf as resolveRunFace, $f as resolveRuns, kf as resolveScreenLength, Zu as resolveSkeleton, xr as resolveSpatialReference, T as resolveStrokeWidth, ep as resolveTextStyle, lm as resolveUnit, rc as resolveVisibility, lu as reversePath, o as rgbaToHex, $u as rigidRigApply, hn as rotateAction, xo as rotateAroundAABBCenter, Ue as rotatePathAround, dn as rotatePoint, fn as rotatedRectCorners, vc as rotationDegreesUnit, mo as rotationHandle, us as roundRectPath, ul as runsToDom, tp as runsToMarkdown, np as runsToPlainText, u as sampleGradientStops, Yi as sampleTrack, Zo as satisfiesRange, et as scaleDelta, uu as scalePathToBounds, Mo as sceneFromJSON, bt as sceneNodeClientRect, No as sceneSelectionStore, Do as sceneToAdapter, Rp as scopeBindings, zp as scratchKey, tt as screenAngleOf, Ye as screenToWorld, kt as screenTolerance, rp as scriptMetrics, ip as scriptMetricsFor, Wn as selectFromLasso, Zs as selectionAtLeast, Qs as selectionEmpty, $s as selectionIs, en as selectionLayer, Ba as selectionMoveBindings, Va as selectionMoveContribution, Ha as selectionTransformBindings, Ua as selectionTransformContribution, gl as setFlagOverRange, Bp as setScratch, Na as shapeCoversPoint, Vu as slewToward, Kn as sliceAction, ap as smallCapsScale, op as smallCapsScaleFor, sp as smallCapsText, ts as snap, Ss as sniffWeaselClipboardText, du as snipPathByPolyline, mi as solid, Wu as solidVertexColors, ed as solveIk, Vp as specificity, Sm as spiro, fu as splitPathByPolyline, pu as splitPathBySegment, mu as splitSubpaths, qi as springPose, Gu as springVertexColors, ds as squarePath, $d as srgbFloatToOklab, ef as srgbToHsl, tf as srgbToLinear, nf as srgbU8ToOklab, Qe as stableStringify, Ku as staggerVertexColors, nt as standoff, hu as starPath, ct as startThresholdDrag, Af as strokeDashStyleOf, P as strokeInsets, hi as strokeOf, gi as strokeWith, ml as styleAtRange, yf as subscribeGlyphReady, Ta as subscribeImageReady, q as subscribeToSources, S as switchGradientKind, Oi as textCommand, ki as textCommandFromPose, Ai as textCommandFromRuns, cp as textLineBoxes, lp as textPoseLayoutInput, Wr as textToPath, Gr as textToPathsByPaint, pe as tiledProject, ri as toHex8, ue as toPlane, up as toRuns, gu as transformPath, dp as transformRunTexts, _u as translatePath, Gt as translatePoseViaDescriptor, Pe as translateRectPose, pp as trimPolyline, Ji as tweenPose, qu as tweenVertexColors, _l as unboldPatch, Bt as unionAABB, Vt as unionBounds, vu as unionBoundsPath, gr as unionOfChildren, Ol as unionOfChildrenVia, um as unitScale, bf as unregisterCanvasFont, xf as unregisterFontOutlines, Jp as useAction, Yp as useActionsRegistry, Xp as useActiveToolContext, wr as useAlign, Ru as useAnimatedReflow, Zi as useAnimator, wu as useArrayAdapter, St as useAutoCenter, Mu as useBooleans, Nu as useBooleansAdapter, Yc as useCanvasFocus, we as useCanvasSize, ku as useClipboardOps, Pu as useCreateOutlinesAdapter, Gi as useDecayLoop, Zp as useDepRegistry, Qp as useDepSource, Ce as useDeviceProfile, Au as useDistribute, Tu as useDragGesture, ot as useDragHandle, Du as useDragRadial, Eu as useDragRect, st as useDropZone, Qa as useEllipseTool, eo as useEyedropperTool, $p as useGestureDispatcher, yu as useGradientKinds, Ga as useHandTool, at as useHandleDrag, wo as useHostAnchor, ac as useHoverTracking, $a as useImageTool, wt as useKeyState, ra as useKeybindings, no as useLassoTool, mp as useLatest, hs as useLayoutArrivals, to as useLineTool, We as useNodeOverlayFrame, em as useOngoingAction, tm as useOptionalActiveToolContext, nm as useOptionalDepRegistry, bu as usePaintKind, xu as usePaintKinds, Xa as usePenTool, ao as usePencilTool, yr as usePointerContext, br as usePointerPosition, Je as usePointerStylus, ro as usePolygonTool, Bi as usePoseCompositionDepSource, zi as usePoseDescriptorDepSource, xe as usePoseRun, Io as usePublishSelection, Za as useRectTool, Ri as useResizePolicy, td as useRig, Ac as useScene, Oo as useSceneAdapter, Sl as useSceneTextEdit, Wa as useSelectTool, uo as useSelection, Lo as useSelectionContext, be as useSimulation, Hi as useSliceDep, Ui as useSliceDepSource, oo as useSliceTool, Li as useStandardActions, io as useStarTool, xl as useTextEdit, Ja as useTextTool, na as useTools, Wi as useVelocityTracker, $i as useViewAnimation, ea as useViewAnimationOn, ye as useVisibleRaf, rm as useYoke, fp as verticalAlignOffset, L as viewToMat3, $ as viewToTransform, ee as viewZoom, Tn as viewportDragPanAction, Pn as viewportWheelPanAction, Mn as viewportZoomAction, V as vignette, Kt as visualBoundsViaDescriptor, Sf as warmFonts, C as warmPaintKinds, Hc as warmRender, On as wheelPan, kn as wheelZoom, An as wheelZoomFactor, ec as when, ii as withAlpha01, Wo as withCoord, d as withGradientKind, rt as withinPxBox, it as withinPxRadius, Qc as workspaceTintLayer, zn as worldEditToStorage, Fe as worldPoseLookup, Xe as worldToScreen, vt as zoomAt, tc as zoomAtLeast };
313
+ export { sr as ACTION_GLYPHS, pc as ALWAYS, lt as ANCHOR_HIT_BASE_PX, dm as ANGLE_RADIANS, Fa as AREA_SELECT_ID, as as AUTO_ORIGIN_PROJECTION, Jt as AUTO_POSE_DESCRIPTOR, Sp as ActionDisabledReason, Yp as ActionsProvider, $c as ActionsProviderIfRoot, Xp as ActiveToolContextProvider, Zp as ActiveToolContextProviderIfRoot, kr as AlignBottomIcon, Ar as AlignCenterXIcon, jr as AlignCenterYIcon, Mr as AlignLeftIcon, Nr as AlignRightIcon, Pr as AlignTopIcon, ma as ArrowIcon, E as BUILTIN_MARKERS, yc as BUILTIN_TOOL_IDS, Yn as BringForwardIcon, Xn as BringToFrontIcon, ft as COARSE_TARGET_SCALE, cs as COMPOSITE_FEATURES, Cp as CONTROL_SELECTOR, nn as CORNER_ANCHORS, Fc as CROSSHAIR_HALO, vm as CURSOR_ANGLE_STEPS, ym as CURSOR_MAX_CSS_PX, Tm as CURVE_REPS, es as CanvasView, Xi as ColorOverrideRegistry, Zn as CopyIcon, ei as CreateOutlinesIcon, qr as CropIcon, jo as CursorCoordsHud, Qn as CutIcon, mc as DEFAULT_ALLOWED_CAPABILITIES, he as DEFAULT_ALPHA_DECAY, ge as DEFAULT_ALPHA_MIN, ji as DEFAULT_DEBUG_STROKES, Mi as DEFAULT_DEBUG_THEME, zf as DEFAULT_DECORATION_METRICS, pt as DEFAULT_DEVICE_PROFILE, ai as DEFAULT_FILL_COLOR, Rl as DEFAULT_FLATTEN_TOLERANCE, bc as DEFAULT_HANDLE_SIZE, Ea as DEFAULT_INK, J as DEFAULT_MAX_ZOOM, Y as DEFAULT_MIN_ZOOM, oi as DEFAULT_PALETTE, vo as DEFAULT_ROTATION_HANDLE_DISTANCE, si as DEFAULT_SHAPE_FILL, ci as DEFAULT_STROKE_COLOR, Bf as DEFAULT_TEXT_STYLE, _e as DEFAULT_VELOCITY_DECAY, Qa as DRAG_PAN_ID, wp as DRAG_THRESHOLD_PX, cr as DeleteIcon, Qp as DepRegistryProvider, el as DepRegistryProviderIfRoot, Se as DeviceProfileProvider, Fr as DistributeHorizontalIcon, Ir as DistributeVerticalIcon, Jr as DivideIcon, kc as DrawCanvas, $n as DuplicateIcon, ld as EASINGS, ua as EllipseIcon, Yr as ExcludeIcon, fa as EyedropperIcon, zc as FALLBACK_FIT_VIEW, ls as FEATURE_ACTION_IDS, er as FlipXIcon, tr as FlipYIcon, li as GHOST_STROKE, nr as GroupIcon, ut as HANDLE_BASE_PX, ba as HandIcon, td as IDENTITY_JOINT, Te as IDENTITY_POSE_COMPOSITION, fm as IMPERIAL_INCHES, da as ImageIcon, $p as InputScope, Xr as IntersectIcon, _n as KIT_SHAPE_KINDS, Ii as KIT_STANDARD_ACTION_IDS, ts as KIT_VERSIONS, js as LONG_PRESS_FEEDBACK_ID, Tp as LONG_PRESS_MS, ca as LassoIcon, pa as LineIcon, Vf as MARKDOWN_RUN_GRAMMAR, pm as METRIC_MM, Ac as MINIMAP_CENTER, jc as MINIMAP_PAN, vl as MIXED, Hc as MinimapCanvas, hc as NEVER, To as PAINTED_CURSOR_LAYER_ID, Zo as PATH_ANCHOR_CHROME_ID, zl as PATH_C, Bl as PATH_CMD_LENGTHS, Vl as PATH_L, Hl as PATH_M, Ul as PATH_Q, Wl as PATH_Z, mm as PIXELS, rr as PasteIcon, Gl as PathBuilder, ya as PenIcon, _a as PencilIcon, Mo as PickHud, _r as PointerContextProvider, is as PointerProviderIfRoot, ha as PolygonIcon, os as RECT_ORIGIN_PROJECTION, Oe as RECT_POSE_COMPOSITION, Ht as RECT_POSE_DESCRIPTOR, ke as RIGID_POSE_COMPOSITION, Ut as ROTATED_POSE_DESCRIPTOR, dt as ROTATION_HANDLE_BASE_PX, la as RectIcon, lr as RedoIcon, us as SCENE_CANVAS_FEATURES, Hf as SCRIPT_METRICS, Ia as SELECTION_MOVE_ID, La as SELECTION_RESIZE_ID, Ra as SELECTION_ROTATE_ID, za as SELECTION_TRANSFORM_ID, vn as SHAPE_KINDS, Uf as SMALL_CAPS_SCALE, ud as SPRING_PRESETS, w as SPRITE_STRIDE, Af as STROKE_DASH_RATIOS, jt as SceneArrivalRefused, xc as SceneCanvas, Oc as SceneViewCanvas, sa as SelectIcon, Bo as SelectionContextProvider, Vo as SelectionContextProviderIfRoot, ir as SendBackwardIcon, ar as SendToBackIcon, ga as StarIcon, Zr as SubtractIcon, Dl as TEXT_EDIT_FONT_HOLD, ds as TOOL_DRIVEN_ACTION_IDS, ia as TOOL_PREF_KINDS, va as TextIcon, Hr as TextOutlinesError, hr as UNION_OF_CHILDREN, ur as UndoIcon, or as UngroupIcon, Qr as UnionIcon, xa as UnknownIcon, e as VERSION, Qi as VIEW_ANIMATION_KEY, Cs as WEASEL_CLIPBOARD_MIME, ws as WEASEL_CLIPBOARD_MIME_WEB, En as WHEEL_ZOOM_STEP, tl as WeaselProvider, em as Yoke, X as ZOOM_FLOOR, cn as aabbCenter, Ep as actionBindings, Is as actionIs, Dp as actionItems, Tt as actionShortcuts, Sr as alignDeltaFor, Cr as alignTargetBounds, jf as alignedStrokeRect, Ls as always, Rs as and, Uu as animateLifecycle, Hu as animateOnSetPose, Wo as annulusSemiAxes, Kr as applyBooleanOp, $r as applyCreateOutlines, Vn as applyOpsTo, yl as applyStyleToRange, gn as areaSelectAction, Ba as areaSelectContribution, Au as arrayAdapter, At as asNodeId, p as asPaint, zt as axisAlignedBounds, bm as bakeCursor, Em as bezierCubic, Dm as bezierQuadratic, ad as bindRig, nd as blendPoses, B as blur, Kl as boundsOfPath, dc as buildChromeCtx, Ni as buildDebugOverlayCommands, Op as buildDepsFromRequires, gc as buildRuleCtx, Ec as buildSceneViewCommands, Ts as buildWeaselClipboardText, Wf as cachedLayoutRuns, Tr as canBringForward, zs as canHover, ff as canQueryLocalFonts, Er as canSendBackward, Bs as capabilityAll, Vs as capabilityIn, Hs as capabilityIs, Us as capabilityNot, dl as caretIndexAt, Mc as centerRootOn, ml as charOffsetToDomPosition, ns as checkRequirements, hs as circlePath, yt as clampView, bn as clearSelectionAction, kp as clientToCanvas, dr as clipboardCopyAction, fr as clipboardCutAction, pr as clipboardPasteAction, Cn as cloneAction, Ru as cloneByAltDrag, Ws as coarsePointer, sl as composeAffordanceLayer, ql as composePath, Mf as composePatternTransform, Ae as composeRectPose, je as composeRigidPose, xo as composeSelectionPose, Ee as composeWorldPose, Bc as computeFitView, xt as computeFitViewport, Vc as computeIndicatorCommand, Vi as computeSliceOps, Dn as computeWheelAction, Gs as cond, to as constrainTo45, Nf as contrastLineColor, rn as cornerPoint, an as cornerResizeHandles, Fn as countPathAnchors, Fo as createArrangeOp, ol as createChildrenLayer, qo as createCornerResizeAffordance, Pi as createDebugOverlayLayer, xi as createDebugSink, xn as createDeleteOp, Ap as createDepRegistry, jp as createDispatcher, ku as createHistory, Sn as createInsertOp, Ct as createKeyState, Uc as createLinkedCursorContribution, Ms as createLongPressFeedbackContribution, Mp as createLongPressStore, Gf as createMarkdownRenderer, Wc as createMinimapContribution, Dr as createMoveToIndexOp, Sc as createNodeProperties, Ns as createNodeRouting, Eo as createPaintedCursorLayer, xm as createPaintedCursorState, fe as createParallaxLayer, de as createParallaxPlane, Qo as createPathAnchorAffordances, bs as createPathEditingOverlayLayer, Il as createPathLayer, ys as createPenPreviewLayer, vr as createPointerStore, Rc as createPoseFeed, Io as createPoseOverrides, Kc as createRasterSession, Rf as createReflectable, Wu as createReflowTransition, Or as createReorderOp, Lt as createReparentOp, Jo as createRotationAffordance, Lo as createScene, So as createSelectionHandlesLayer, Co as createSelectionOutlineLayer, wo as createSelectionOverlayLayer, Rt as createSetDataOp, jl as createSetLayerOp, Ml as createSetLayoutOp, Nl as createSetPathOp, Un as createSetSelectionOp, Al as createSetTextOp, ve as createSimulation, qu as createSlew, ul as createTextLayer, wi as createTilePattern, me as createTiledLayer, It as createTransformOp, wn as createVelocityTracker, ne as createViewResolver, te as createViewportLayer, Ic as crosshairRects, pf as cssFontFamily, mf as cssFontFamilyLoading, dd as cubicBezierEasing, R as cullDrawCommands, Sm as cursorFor, ui as cycleFill, Yu as cycleVertexColors, Pf as dashForStrokeStyle, Xc as debugSnapshotArgs, Jl as decomposePath, Ff as decomposePatternTransform, Me as decomposeRectPose, Ne as decomposeRigidPose, Kf as decorationMetrics, pn as defaultCommitAdapter, mo as defaultDrawOne, cl as defaultLabelTextRenderer, Cc as defaultNodeProperties, Ps as defaultNodeRouting, ho as defaultPaintBounds, lc as defaultVisibilityRules, ta as defineTool, Le as definesFrame, Np as deleteScratch, H as depsUnchanged, re as deriveParallaxView, Re as derivedDepOf, ze as derivedPose, _c as describeRule, Hn as dispatchApplyBatch, _i as dlog, Be as documentPose, hl as domPositionToCharOffset, gl as domToRuns, $a as dragPanContribution, U as drawLayers, W as drawOneLayer, vi as dwarn, fd as easeIn, pd as easeInBack, md as easeInBounce, hd as easeInCirc, gd as easeInCubic, _d as easeInElastic, vd as easeInExpo, yd as easeInOut, bd as easeInOutBack, xd as easeInOutBounce, Sd as easeInOutCirc, Cd as easeInOutCubic, wd as easeInOutElastic, Td as easeInOutExpo, Ed as easeInOutQuad, Dd as easeInOutQuart, Od as easeInOutQuint, kd as easeInOutSine, Ad as easeInQuad, jd as easeInQuart, Md as easeInQuint, Nd as easeInSine, Pd as easeOut, Fd as easeOutBack, Id as easeOutBounce, Ld as easeOutCirc, Rd as easeOutCubic, zd as easeOutElastic, Bd as easeOutExpo, Vd as easeOutQuad, Hd as easeOutQuart, Ud as easeOutQuint, Wd as easeOutSine, Bn as editAnchorsAction, Zt as editingLayer, Ve as effectivePose, Tl as effectiveRangeStyle, Yl as ellipsePath, Es as embedWeaselMetadataInSvg, hf as enableLocalFontOutlines, mr as enterTextEditAction, Yo as enumerateAnchors, vc as evaluate, Pp as evaluateEnabled, Ds as extractWeaselClipboardFromSvg, Si as fillInPoseFrame, Ci as fillToBoundsFrame, Da as findNodeShape, Oa as findShapeBounds, ka as findShapeInk, Aa as findShapeSilhouette, pl as fitTextPose, ht as fitToBounds, _t as fitViewToBounds, gt as fitZoom, on as fixedCornerOf, Xl as flattenCubic, Zl as flattenCubicWithArcLen, fs as flattenPreviews, Ql as flattenQuadratic, $l as flattenQuadraticWithArcLen, Ks as focused, gf as fontOutlineRegistry, _f as fontRegistry, qf as fontString, Ge as forEachCoalesced, hm as formatUnit, I as frameRect, ie as fromPlane, rl as gateLayer, Dt as gesturePlaneReader, Ot as gestureViewReader, qs as gesturing, ti as getAlpha01, Sa as getImageBitmap, D as getMarker, ja as getNodeShapes, m as getPaintKind, Fp as getScratch, Ke as getStylusData, s as gradientForBounds, c as gradientGeometry, vf as hasFontOutlines, Gd as hexToOklchDeg, t as hexToRgba, Go as hitAffordanceRegions, Fu as hitAnchor, sn as hitCornerHandle, yo as hitRotationHandle, Oo as hostAnchorCss, ko as hostAnchorRect, Js as hovering, Ys as hoveringSelected, Kd as hslToSrgb, Ca as imageStatus, Qt as inPlane, wc as inferredNodeProperties, Fs as inferredNodeRouting, yn as insertAction, $t as insertLayer, $o as insertPreviewExtent, qd as interpolateSrgb, Ki as interpolateView, Jf as isBoldWeight, aa as isBuiltinToolPref, yf as isCanvasFont, yi as isDebugEnabled, Ip as isEditableTarget, l as isGradientFill, Lp as isInControlWithin, G as isLayerPainted, K as isLayerVisible, h as isPaintKindKnown, Yt as isPathLike, Ti as isPatternSpec, Ie as isPlainObject, Xt as isRectPose, Yf as isSmallCapsLetter, wa as isVectorImageSrc, Et as keySpecShortcut, Gn as lassoSelectAction, xs as layoutArrivalHandler, Xf as layoutMarkdown, Zf as layoutRuns, Qf as layoutTextPose, Jd as lerpColorArray, Yd as lerpOklab, Xd as lerpOklch, eu as linePath, Zd as linear, Qd as linearSrgbToOklab, $d as linearToSrgb, bf as listFontOutlines, g as listGradientKinds, O as listMarkers, _ as listPaintKinds, Rp as liveScope, xf as loadFontOutlines, Ur as loadTextOutlines, qn as makePinchZoomAction, Nn as makeViewportWheelPanAction, jn as makeViewportZoomAction, $f as markdownToRuns, j as markerInset, M as markerKeyOf, k as markerRegistry, F as markerSites, f as mat3, zp as matchesKeyBinding, Ze as meanScale, ep as measureText, tp as measureTextBounds, np as measuredWidth, ni as mergeAlphaFromPrev, df as mergeContributions, Nc as minimapCenterAction, Pc as minimapPanAction, rd as mirrorPose, il as modeDecorationLayer, Xs as modeIn, Zs as modeIs, Qs as modeNot, Bp as modeShortcutSpec, Vp as modeShortcuts, $s as modifierHeld, Ku as momentum, tn as moveAction, ec as multiActive, Pl as nestedHitTester, tc as never, Sl as nodeHasFlag, n as normalizeHex, Q as normalizeView, Z as normalizeZoom, nc as not, rp as numericWeight, Om as nurbs, ef as oklabToLinearSrgb, tf as oklabToOklch, nf as oklabToSrgbU8, rf as oklchDegToHex, af as oklchToOklab, Va as onEmptyCanvas, Mt as opFactoryRegistry, As as openFilePicker, Hp as openPointerSession, rc as or, Sf as outlineStatus, di as paintAlpha, v as paintKindOf, y as paintKindRegistry, fi as paintWithAlpha, pi as paintWithColor, r as parseColor, i as parseColorToRgba255, bi as parseDebugFlags, Os as parseWeaselClipboardText, Up as pastDragThreshold, bl as patchRangeStyle, tu as pathCommandCoordCount, nu as pathContainsPoint, ru as pathContainsPolygon, iu as pathContainsRect, au as pathDistanceToPoint, Lr as pathDivide, Rr as pathExclude, ou as pathFromD, Ln as pathInPoseFrame, Rn as pathInWorld, zr as pathIntersect, su as pathIntersectsPolygon, cu as pathIntersectsRect, Ll as pathOriginProjection, qt as pathPoseDescriptor, lu as pathSignedArea, Br as pathSubtract, In as pathToAnchors, Vr as pathUnion, Pa as pickTopMostHit, Jn as pinchZoomAction, qc as planPixelRender, ae as planeMap, oe as planeMatrix, se as planeToPlane, uu as pointAlongPath, du as pointInPath, ln as pointInRotatedRect, fl as pointInTextPose, Ko as pointRegionFrame, fu as polygonFromPoints, pu as polylineFromPoints, Wt as poseDescriptorForNode, He as poseRotationOf, oa as prefUnit, qe as pressureToWidth, $e as pxExtent, Xu as rainbowVertexColors, El as rangeWeight, Qc as rasterToPng, De as rebaseLocalPose, Nt as rebuildOp, un as rectCorners, ce as rectFromPlane, gs as rectMarkerPath, mu as rectPath, le as rectToPlane, Cf as registerCanvasFont, Fi as registerContentHandler, z as registerEffect, wf as registerFont, Tf as registerFontOutlines, A as registerMarker, Ma as registerNodeShape, Pt as registerOpFactory, b as registerPaintKind, x as registerPaintKindLoader, Ft as registeredOpNames, hu as regularPolygonPath, go as releaseCanvasRenderer, Zc as renderDebugSnapshot, ll as renderLabel, Gc as renderNeeds, Dc as renderSceneToCanvas, Jc as renderSceneToPixels, mn as resizeAction, ip as resolveAlign, a as resolveColor, Cm as resolveCursor, wm as resolveCursorTier, mt as resolveDeviceProfile, of as resolveEasing, Ei as resolveFillPattern, N as resolveMarkerSize, ms as resolveOverlays, Wp as resolveParams, Di as resolvePatternSpec, ps as resolvePreviews, ap as resolveRunFace, op as resolveRuns, If as resolveScreenLength, id as resolveSkeleton, xr as resolveSpatialReference, T as resolveStrokeWidth, sp as resolveTextStyle, gm as resolveUnit, uc as resolveVisibility, gu as reversePath, o as rgbaToHex, od as rigidRigApply, hn as rotateAction, Do as rotateAroundAABBCenter, Ue as rotatePathAround, dn as rotatePoint, fn as rotatedRectCorners, Tc as rotationDegreesUnit, bo as rotationHandle, _s as roundRectPath, _l as runsToDom, cp as runsToMarkdown, lp as runsToPlainText, u as sampleGradientStops, Yi as sampleTrack, rs as satisfiesRange, et as scaleDelta, _u as scalePathToBounds, Ro as sceneFromJSON, bt as sceneNodeClientRect, zo as sceneSelectionStore, No as sceneToAdapter, Gp as scopeBindings, Kp as scratchKey, tt as screenAngleOf, Ye as screenToWorld, kt as screenTolerance, up as scriptMetrics, dp as scriptMetricsFor, Wn as selectFromLasso, ic as selectionAtLeast, ac as selectionEmpty, oc as selectionIs, en as selectionLayer, Ha as selectionMoveBindings, Ua as selectionMoveContribution, Wa as selectionResizeBindings, Ga as selectionResizeContribution, Ka as selectionRotateBindings, qa as selectionRotateContribution, Ja as selectionTransformBindings, Ya as selectionTransformContribution, Cl as setFlagOverRange, qp as setScratch, Na as shapeCoversPoint, Ju as slewToward, Kn as sliceAction, fp as smallCapsScale, pp as smallCapsScaleFor, mp as smallCapsText, ss as snap, ks as sniffWeaselClipboardText, vu as snipPathByPolyline, mi as solid, Zu as solidVertexColors, sd as solveIk, Jp as specificity, km as spiro, yu as splitPathByPolyline, bu as splitPathBySegment, xu as splitSubpaths, qi as springPose, Qu as springVertexColors, vs as squarePath, sf as srgbFloatToOklab, cf as srgbToHsl, lf as srgbToLinear, uf as srgbU8ToOklab, Qe as stableStringify, $u as staggerVertexColors, nt as standoff, Su as starPath, ct as startThresholdDrag, Lf as strokeDashStyleOf, P as strokeInsets, hi as strokeOf, gi as strokeWith, xl as styleAtRange, Ef as subscribeGlyphReady, Ta as subscribeImageReady, q as subscribeToSources, S as switchGradientKind, Oi as textCommand, ki as textCommandFromPose, Ai as textCommandFromRuns, hp as textLineBoxes, gp as textPoseLayoutInput, Wr as textToPath, Gr as textToPathsByPaint, pe as tiledProject, ri as toHex8, ue as toPlane, _p as toRuns, Cu as transformPath, vp as transformRunTexts, wu as translatePath, Gt as translatePoseViaDescriptor, Pe as translateRectPose, bp as trimPolyline, Ji as tweenPose, ed as tweenVertexColors, wl as unboldPatch, Bt as unionAABB, Vt as unionBounds, Tu as unionBoundsPath, gr as unionOfChildren, Fl as unionOfChildrenVia, _m as unitScale, Df as unregisterCanvasFont, Of as unregisterFontOutlines, tm as useAction, nm as useActionsRegistry, rm as useActiveToolContext, wr as useAlign, Gu as useAnimatedReflow, Zi as useAnimator, ju as useArrayAdapter, St as useAutoCenter, zu as useBooleans, Bu as useBooleansAdapter, nl as useCanvasFocus, we as useCanvasSize, Iu as useClipboardOps, Vu as useCreateOutlinesAdapter, Gi as useDecayLoop, im as useDepRegistry, am as useDepSource, Ce as useDeviceProfile, Lu as useDistribute, Mu as useDragGesture, ot as useDragHandle, Pu as useDragRadial, Nu as useDragRect, st as useDropZone, io as useEllipseTool, oo as useEyedropperTool, om as useGestureDispatcher, Eu as useGradientKinds, Za as useHandTool, at as useHandleDrag, Ao as useHostAnchor, fc as useHoverTracking, ao as useImageTool, wt as useKeyState, ra as useKeybindings, co as useLassoTool, xp as useLatest, Ss as useLayoutArrivals, so as useLineTool, We as useNodeOverlayFrame, sm as useOngoingAction, cm as useOptionalActiveToolContext, lm as useOptionalDepRegistry, Du as usePaintKind, Ou as usePaintKinds, no as usePenTool, fo as usePencilTool, yr as usePointerContext, br as usePointerPosition, Je as usePointerStylus, lo as usePolygonTool, Bi as usePoseCompositionDepSource, zi as usePoseDescriptorDepSource, xe as usePoseRun, Ho as usePublishSelection, ro as useRectTool, Ri as useResizePolicy, cd as useRig, Lc as useScene, Po as useSceneAdapter, kl as useSceneTextEdit, Xa as useSelectTool, _o as useSelection, Uo as useSelectionContext, be as useSimulation, Hi as useSliceDep, Ui as useSliceDepSource, po as useSliceTool, Li as useStandardActions, uo as useStarTool, Ol as useTextEdit, eo as useTextTool, na as useTools, Wi as useVelocityTracker, $i as useViewAnimation, ea as useViewAnimationOn, ye as useVisibleRaf, um as useYoke, yp as verticalAlignOffset, L as viewToMat3, $ as viewToTransform, ee as viewZoom, Tn as viewportDragPanAction, Pn as viewportWheelPanAction, Mn as viewportZoomAction, V as vignette, Kt as visualBoundsViaDescriptor, kf as warmFonts, C as warmPaintKinds, Yc as warmRender, On as wheelPan, kn as wheelZoom, An as wheelZoomFactor, sc as when, ii as withAlpha01, Xo as withCoord, d as withGradientKind, rt as withinPxBox, it as withinPxRadius, al as workspaceTintLayer, zn as worldEditToStorage, Fe as worldPoseLookup, Xe as worldToScreen, vt as zoomAt, cc as zoomAtLeast };
@@ -1 +1 @@
1
- {"version":3,"file":"align.js","names":["ID_FOR","\"left\"","\"right\"","\"top\"","\"bottom\"","LABEL_FOR","ICON_FOR","AlignLeftIcon","AlignRightIcon","AlignTopIcon","AlignBottomIcon","AlignCenterXIcon","AlignCenterYIcon","alignSelection","ids","selection","frame","scenePoseFrame","scene","poseComposition","poses","id","bounds","visualBoundsViaDescriptor","p","geom","target","alignTargetBounds","params","actionReferenceSources","pointer","i","alignDeltaFor","edge","dx","dy","to","translatePoseViaDescriptor","makeAlignAction","deps","poseDescriptorOf","ActionDisabledReason","alignLeftAction","alignRightAction","alignTopAction","alignBottomAction","alignCenterXAction","alignCenterYAction"],"sources":["../../../../src/interactions/actions/defaults/align.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { Scene } from 'core/scene/types';\nimport type { PoseDescriptor } from '../resize/geometry';\nimport { poseDescriptorOf } from '../poseDescriptorDep';\nimport {\n alignDeltaFor,\n alignTargetBounds,\n translatePoseViaDescriptor,\n visualBoundsViaDescriptor,\n type AlignEdge,\n type AlignReference,\n} from '../align/align';\nimport { actionReferenceSources } from '../spatialReference';\nimport type { PointerContextValue } from 'features/pointer/PointerContext';\nimport { scenePoseFrame } from '../poseFrame';\nimport type { Action } from '@weasel-js/routing';\nimport { ActionDisabledReason } from '@weasel-js/routing';\nimport type { SelectionApi } from 'core/selection/useSelection';\nimport type { ImmediateInvoker } from '@weasel-js/routing';\nimport {\n AlignLeftIcon,\n AlignRightIcon,\n AlignTopIcon,\n AlignBottomIcon,\n AlignCenterXIcon,\n AlignCenterYIcon,\n} from './icons/alignIcons';\nconst ID_FOR: Record<AlignEdge, string> = {\n 'left': 'align.left',\n 'right': 'align.right',\n 'top': 'align.top',\n 'bottom': 'align.bottom',\n 'center-x': 'align.centerX',\n 'center-y': 'align.centerY',\n};\nconst LABEL_FOR: Record<AlignEdge, string> = {\n 'left': 'Align Left',\n 'right': 'Align Right',\n 'top': 'Align Top',\n 'bottom': 'Align Bottom',\n 'center-x': 'Align Centers Horizontally',\n 'center-y': 'Align Centers Vertically',\n};\nconst ICON_FOR: Record<AlignEdge, ReactNode> = {\n 'left': <AlignLeftIcon />,\n 'right': <AlignRightIcon />,\n 'top': <AlignTopIcon />,\n 'bottom': <AlignBottomIcon />,\n 'center-x': <AlignCenterXIcon />,\n 'center-y': <AlignCenterYIcon />,\n};\n\n// ---------------------------------------------------------------------------\n// Shared helper for descriptor invokers\n// ---------------------------------------------------------------------------\n\n/**\n * Apply an align operation to the current selection via the Scene API.\n * Reads poses through the `poseDescriptor` dep; what the selection aligns to\n * comes from `params.to` (an `AlignReference`, default `'union'`).\n *\n * The edge every member lines up on is a world edge, so the bounds are read\n * and translated in world and each result is stored back in its own parent's\n * frame.\n */\nfunction alignSelection(\n selection: SelectionApi,\n scene: Scene<unknown, string, unknown>,\n edge: AlignEdge,\n geom: PoseDescriptor<unknown>,\n poseComposition: unknown,\n params: Record<string, unknown> | undefined,\n pointer: PointerContextValue | undefined,\n): void {\n const ids = selection.get();\n const frame = scenePoseFrame(scene, poseComposition);\n const poses = ids.map((id) => frame.world(id));\n const bounds = poses.map((p) => visualBoundsViaDescriptor(p, geom));\n const target = alignTargetBounds(\n bounds,\n params?.to as AlignReference | undefined,\n actionReferenceSources(params, pointer, scene, frame, geom),\n );\n if (target === null) return;\n scene.batch('Align', () => {\n for (let i = 0; i < ids.length; i++) {\n const { dx, dy } = alignDeltaFor(bounds[i], target, edge);\n if (dx === 0 && dy === 0) continue;\n const to = translatePoseViaDescriptor(poses[i], dx, dy, geom);\n scene.setPose(ids[i], frame.local(ids[i], to));\n }\n });\n}\n\n// ---------------------------------------------------------------------------\n// Static descriptors\n// ---------------------------------------------------------------------------\n\nfunction makeAlignAction(edge: AlignEdge): Action {\n return {\n id: ID_FOR[edge],\n label: LABEL_FOR[edge],\n icon: ICON_FOR[edge],\n group: 'align',\n eligible: { capability: 'transforms-selection' },\n requires: ['selection', 'scene', 'poseDescriptor', 'poseComposition', 'pointer'],\n // No default keybindings — six edges/centers don't fit a clean default\n // chord set. Wire bindings explicitly via the actions registry override map.\n invoker: {\n timing: 'immediate',\n run: (deps, params) => {\n const selection = deps.selection as SelectionApi | undefined;\n const scene = deps.scene as Scene<unknown, string, unknown> | undefined;\n if (!selection || !scene) return;\n alignSelection(\n selection, scene, edge, poseDescriptorOf(deps.poseDescriptor), deps.poseComposition,\n params, deps.pointer as PointerContextValue | undefined,\n );\n },\n } satisfies ImmediateInvoker,\n // One item is enough: `enabled` cannot see the binding's `to`, and every\n // reference but `'union'` aligns a single item. Deps-aware, since a\n // constant disabled reason greys the entry out forever (see\n // `requiresSelection`).\n enabled: (deps) => {\n const selection = deps?.selection as SelectionApi | undefined;\n const count = selection?.get().length ?? 0;\n return count >= 1 ? true : ActionDisabledReason.SelectionRequired;\n },\n };\n}\n\n/** @experimental Static descriptor for align-left. */\nexport const alignLeftAction = makeAlignAction('left');\n/** @experimental Static descriptor for align-right. */\nexport const alignRightAction = makeAlignAction('right');\n/** @experimental Static descriptor for align-top. */\nexport const alignTopAction = makeAlignAction('top');\n/** @experimental Static descriptor for align-bottom. */\nexport const alignBottomAction = makeAlignAction('bottom');\n/** @experimental Static descriptor for align-center-x. */\nexport const alignCenterXAction = makeAlignAction('center-x');\n/** @experimental Static descriptor for align-center-y. */\nexport const alignCenterYAction = makeAlignAction('center-y');\n\n"],"mappings":";;;;;;;;;AA2BA,IAAMA,IAAoC;CACxCC,MAAQ;CACRC,OAAS;CACTC,KAAO;CACPC,QAAU;CACV,YAAY;CACZ,YAAY;AACd,GACMC,IAAuC;CAC3CJ,MAAQ;CACRC,OAAS;CACTC,KAAO;CACPC,QAAU;CACV,YAAY;CACZ,YAAY;AACd,GACME,IAAyC;CAC7CL,MAAQ,kBAACM,GAAD,CAAgB,CAAA;CACxBL,OAAS,kBAACM,GAAD,CAAiB,CAAA;CAC1BL,KAAO,kBAACM,GAAD,CAAe,CAAA;CACtBL,QAAU,kBAACM,GAAD,CAAkB,CAAA;CAC5B,YAAY,kBAACC,GAAD,CAAmB,CAAA;CAC/B,YAAY,kBAACC,GAAD,CAAmB,CAAA;AACjC;AAeA,SAASC,EACP,GACA,GACA,GACA,GACA,GACA,GACA,GACM;CACN,IAAMC,IAAMC,EAAU,IAAI,GACpBC,IAAQC,EAAeC,GAAOC,CAAe,GAC7CC,IAAQN,EAAI,KAAK,MAAOE,EAAM,MAAMK,CAAE,CAAC,GACvCC,IAASF,EAAM,KAAK,MAAMG,EAA0BC,GAAGC,CAAI,CAAC,GAC5DC,IAASC,EACbL,GACAM,GAAQ,IACRC,EAAuBD,GAAQE,GAASZ,GAAOF,GAAOS,CAAI,CAC5D;CACA,AAAIC,MAAW,QACfR,EAAM,MAAM,eAAe;EACzB,KAAK,IAAIa,IAAI,GAAGA,IAAIjB,EAAI,QAAQ,KAAK;GACnC,IAAM,EAAE,OAAI,UAAOkB,EAAcV,EAAOS,IAAIL,GAAQO,CAAI;GACxD,IAAIC,MAAO,KAAKC,MAAO,GAAG;GAC1B,IAAMC,IAAKC,EAA2BjB,EAAMW,IAAIG,GAAIC,GAAIV,CAAI;GAC5D,EAAM,QAAQX,EAAIiB,IAAIf,EAAM,MAAMF,EAAIiB,IAAIK,CAAE,CAAC;EAC/C;CACF,CAAC;AACH;AAMA,SAASE,EAAgB,GAAyB;CAChD,OAAO;EACL,IAAItC,EAAOiC;EACX,OAAO5B,EAAU4B;EACjB,MAAM3B,EAAS2B;EACf,OAAO;EACP,UAAU,EAAE,YAAY,uBAAuB;EAC/C,UAAU;GAAC;GAAa;GAAS;GAAkB;GAAmB;EAAS;EAG/E,SAAS;GACP,QAAQ;GACR,MAAM,GAAM,MAAW;IACrB,IAAMlB,IAAYwB,EAAK,WACjBrB,IAAQqB,EAAK;IACnB,AAAKxB,KAAcG,KACnBL,EACEE,GAAWG,GAAOe,GAAMO,EAAiBD,EAAK,cAAc,GAAGA,EAAK,iBACpEX,GAAQW,EAAK,OACf;GACF;EACF;EAKA,UAAU,QACUA,GAAM,UAAA,EACC,IAAI,CAAC,CAAC,UAAU,MACzB,KAAWE,EAAqB;CAEpD;AACF;AAGA,IAAaC,IAAqBJ,EAAgB,MAAM,GAE3CK,IAAqBL,EAAgB,OAAO,GAE5CM,IAAqBN,EAAgB,KAAK,GAE1CO,IAAqBP,EAAgB,QAAQ,GAE7CQ,IAAqBR,EAAgB,UAAU,GAE/CS,IAAqBT,EAAgB,UAAU"}
1
+ {"version":3,"file":"align.js","names":["ID_FOR","\"left\"","\"right\"","\"top\"","\"bottom\"","LABEL_FOR","ICON_FOR","AlignLeftIcon","AlignRightIcon","AlignTopIcon","AlignBottomIcon","AlignCenterXIcon","AlignCenterYIcon","alignSelection","ids","selection","frame","scenePoseFrame","scene","poseComposition","poses","id","bounds","visualBoundsViaDescriptor","p","geom","target","alignTargetBounds","params","actionReferenceSources","pointer","i","alignDeltaFor","edge","dx","dy","to","translatePoseViaDescriptor","makeAlignAction","deps","poseDescriptorOf","ActionDisabledReason","alignLeftAction","alignRightAction","alignTopAction","alignBottomAction","alignCenterXAction","alignCenterYAction"],"sources":["../../../../src/interactions/actions/defaults/align.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { Scene } from 'core/scene/types';\nimport type { PoseDescriptor } from '../resize/geometry';\nimport { poseDescriptorOf } from '../poseDescriptorDep';\nimport {\n alignDeltaFor,\n alignTargetBounds,\n translatePoseViaDescriptor,\n visualBoundsViaDescriptor,\n type AlignEdge,\n type AlignReference,\n} from '../align/align';\nimport { actionReferenceSources } from '../spatialReference';\nimport type { PointerContextValue } from 'features/pointer/PointerContext';\nimport { scenePoseFrame } from '../poseFrame';\nimport type { Action } from '@weasel-js/routing';\nimport { ActionDisabledReason } from '@weasel-js/routing';\nimport type { SelectionApi } from 'core/selection/useSelection';\nimport type { ImmediateInvoker } from '@weasel-js/routing';\nimport {\n AlignLeftIcon,\n AlignRightIcon,\n AlignTopIcon,\n AlignBottomIcon,\n AlignCenterXIcon,\n AlignCenterYIcon,\n} from './icons/alignIcons';\nconst ID_FOR: Record<AlignEdge, string> = {\n 'left': 'align.left',\n 'right': 'align.right',\n 'top': 'align.top',\n 'bottom': 'align.bottom',\n 'center-x': 'align.centerX',\n 'center-y': 'align.centerY',\n};\nconst LABEL_FOR: Record<AlignEdge, string> = {\n 'left': 'Align Left',\n 'right': 'Align Right',\n 'top': 'Align Top',\n 'bottom': 'Align Bottom',\n 'center-x': 'Align Centers Horizontally',\n 'center-y': 'Align Centers Vertically',\n};\nconst ICON_FOR: Record<AlignEdge, ReactNode> = {\n 'left': <AlignLeftIcon />,\n 'right': <AlignRightIcon />,\n 'top': <AlignTopIcon />,\n 'bottom': <AlignBottomIcon />,\n 'center-x': <AlignCenterXIcon />,\n 'center-y': <AlignCenterYIcon />,\n};\n\n// ---------------------------------------------------------------------------\n// Shared helper for descriptor invokers\n// ---------------------------------------------------------------------------\n\n/**\n * Apply an align operation to the current selection via the Scene API.\n * Reads poses through the `poseDescriptor` dep; what the selection aligns to\n * comes from `params.to` (an `AlignReference`, default `'union'`).\n *\n * The edge every member lines up on is a world edge, so the bounds are read\n * and translated in world and each result is stored back in its own parent's\n * frame.\n */\nfunction alignSelection(\n selection: SelectionApi,\n scene: Scene<unknown, string, unknown>,\n edge: AlignEdge,\n geom: PoseDescriptor<unknown>,\n poseComposition: unknown,\n params: Record<string, unknown> | undefined,\n pointer: PointerContextValue | undefined,\n): void {\n const ids = selection.get();\n const frame = scenePoseFrame(scene, poseComposition);\n const poses = ids.map((id) => frame.world(id));\n const bounds = poses.map((p) => visualBoundsViaDescriptor(p, geom));\n const target = alignTargetBounds(\n bounds,\n params?.to as AlignReference | undefined,\n actionReferenceSources(params, pointer, scene, frame, geom),\n );\n if (target === null) return;\n scene.batch('Align', () => {\n for (let i = 0; i < ids.length; i++) {\n const { dx, dy } = alignDeltaFor(bounds[i], target, edge);\n if (dx === 0 && dy === 0) continue;\n const to = translatePoseViaDescriptor(poses[i], dx, dy, geom);\n scene.setPose(ids[i], frame.local(ids[i], to));\n }\n });\n}\n\n// ---------------------------------------------------------------------------\n// Static descriptors\n// ---------------------------------------------------------------------------\n\nfunction makeAlignAction(edge: AlignEdge): Action {\n return {\n id: ID_FOR[edge],\n label: LABEL_FOR[edge],\n icon: ICON_FOR[edge],\n group: 'align',\n eligible: { capability: 'transforms-selection' },\n requires: ['selection', 'scene', 'poseDescriptor', 'poseComposition', 'pointer'],\n // No default keybindings — six edges/centers don't fit a clean default\n // chord set. Wire bindings explicitly via the actions registry override map.\n invoker: {\n timing: 'immediate',\n run: (deps, params) => {\n const selection = deps.selection;\n const scene = deps.scene;\n if (!selection || !scene) return;\n alignSelection(\n selection, scene, edge, poseDescriptorOf(deps.poseDescriptor), deps.poseComposition,\n params, deps.pointer,\n );\n },\n } satisfies ImmediateInvoker,\n // One item is enough: `enabled` cannot see the binding's `to`, and every\n // reference but `'union'` aligns a single item. Deps-aware, since a\n // constant disabled reason greys the entry out forever (see\n // `requiresSelection`).\n enabled: (deps) => {\n const selection = deps?.selection;\n const count = selection?.get().length ?? 0;\n return count >= 1 ? true : ActionDisabledReason.SelectionRequired;\n },\n };\n}\n\n/** @experimental Static descriptor for align-left. */\nexport const alignLeftAction = makeAlignAction('left');\n/** @experimental Static descriptor for align-right. */\nexport const alignRightAction = makeAlignAction('right');\n/** @experimental Static descriptor for align-top. */\nexport const alignTopAction = makeAlignAction('top');\n/** @experimental Static descriptor for align-bottom. */\nexport const alignBottomAction = makeAlignAction('bottom');\n/** @experimental Static descriptor for align-center-x. */\nexport const alignCenterXAction = makeAlignAction('center-x');\n/** @experimental Static descriptor for align-center-y. */\nexport const alignCenterYAction = makeAlignAction('center-y');\n\n"],"mappings":";;;;;;;;;AA2BA,IAAMA,IAAoC;CACxCC,MAAQ;CACRC,OAAS;CACTC,KAAO;CACPC,QAAU;CACV,YAAY;CACZ,YAAY;AACd,GACMC,IAAuC;CAC3CJ,MAAQ;CACRC,OAAS;CACTC,KAAO;CACPC,QAAU;CACV,YAAY;CACZ,YAAY;AACd,GACME,IAAyC;CAC7CL,MAAQ,kBAACM,GAAD,CAAgB,CAAA;CACxBL,OAAS,kBAACM,GAAD,CAAiB,CAAA;CAC1BL,KAAO,kBAACM,GAAD,CAAe,CAAA;CACtBL,QAAU,kBAACM,GAAD,CAAkB,CAAA;CAC5B,YAAY,kBAACC,GAAD,CAAmB,CAAA;CAC/B,YAAY,kBAACC,GAAD,CAAmB,CAAA;AACjC;AAeA,SAASC,EACP,GACA,GACA,GACA,GACA,GACA,GACA,GACM;CACN,IAAMC,IAAMC,EAAU,IAAI,GACpBC,IAAQC,EAAeC,GAAOC,CAAe,GAC7CC,IAAQN,EAAI,KAAK,MAAOE,EAAM,MAAMK,CAAE,CAAC,GACvCC,IAASF,EAAM,KAAK,MAAMG,EAA0BC,GAAGC,CAAI,CAAC,GAC5DC,IAASC,EACbL,GACAM,GAAQ,IACRC,EAAuBD,GAAQE,GAASZ,GAAOF,GAAOS,CAAI,CAC5D;CACA,AAAIC,MAAW,QACfR,EAAM,MAAM,eAAe;EACzB,KAAK,IAAIa,IAAI,GAAGA,IAAIjB,EAAI,QAAQ,KAAK;GACnC,IAAM,EAAE,OAAI,UAAOkB,EAAcV,EAAOS,IAAIL,GAAQO,CAAI;GACxD,IAAIC,MAAO,KAAKC,MAAO,GAAG;GAC1B,IAAMC,IAAKC,EAA2BjB,EAAMW,IAAIG,GAAIC,GAAIV,CAAI;GAC5D,EAAM,QAAQX,EAAIiB,IAAIf,EAAM,MAAMF,EAAIiB,IAAIK,CAAE,CAAC;EAC/C;CACF,CAAC;AACH;AAMA,SAASE,EAAgB,GAAyB;CAChD,OAAO;EACL,IAAItC,EAAOiC;EACX,OAAO5B,EAAU4B;EACjB,MAAM3B,EAAS2B;EACf,OAAO;EACP,UAAU,EAAE,YAAY,uBAAuB;EAC/C,UAAU;GAAC;GAAa;GAAS;GAAkB;GAAmB;EAAS;EAG/E,SAAS;GACP,QAAQ;GACR,MAAM,GAAM,MAAW;IACrB,IAAMlB,IAAYwB,EAAK,WACjBrB,IAAQqB,EAAK;IACnB,AAAKxB,KAAcG,KACnBL,EACEE,GAAWG,GAAOe,GAAMO,EAAiBD,EAAK,cAAc,GAAGA,EAAK,iBACpEX,GAAQW,EAAK,OACf;GACF;EACF;EAKA,UAAU,QACUA,GAAM,UAAA,EACC,IAAI,CAAC,CAAC,UAAU,MACzB,KAAWE,EAAqB;CAEpD;AACF;AAGA,IAAaC,IAAqBJ,EAAgB,MAAM,GAE3CK,IAAqBL,EAAgB,OAAO,GAE5CM,IAAqBN,EAAgB,KAAK,GAE1CO,IAAqBP,EAAgB,QAAQ,GAE7CQ,IAAqBR,EAAgB,UAAU,GAE/CS,IAAqBT,EAAgB,UAAU"}