@weasel-js/core 1.9.2 → 1.9.3

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.
package/dist/index.js CHANGED
@@ -143,172 +143,172 @@ import { useAnimator as Zi } from "./animation/useAnimator.js";
143
143
  import { VIEW_ANIMATION_KEY as Qi, useViewAnimation as $i, useViewAnimationOn as ea } from "./core/viewport/useViewAnimation.js";
144
144
  import { defineTool as ta, useTools as na } from "./tools/overlayBinding.js";
145
145
  import { useKeybindings as ra } from "./tools/useKeybindings.js";
146
- import { TOOL_PREF_KINDS as ia, isBuiltinToolPref as aa, prefUnit as oa } from "./tools/prefs.js";
147
- import sa from "./icons/SelectIcon.js";
148
- import ca from "./icons/LassoIcon.js";
149
- import la from "./icons/RectIcon.js";
150
- import ua from "./icons/EllipseIcon.js";
151
- import da from "./icons/ImageIcon.js";
152
- import fa from "./icons/EyedropperIcon.js";
153
- import pa from "./icons/LineIcon.js";
154
- import ma from "./icons/ArrowIcon.js";
155
- import ha from "./icons/PolygonIcon.js";
156
- import ga from "./icons/StarIcon.js";
157
- import _a from "./icons/PencilIcon.js";
158
- import va from "./icons/TextIcon.js";
159
- import ya from "./icons/PenIcon.js";
160
- import ba from "./icons/HandIcon.js";
161
- import xa from "./icons/UnknownIcon.js";
162
- import { getImageBitmap as Sa, imageStatus as Ca, isVectorImageSrc as wa, subscribeImageReady as Ta } from "./features/images/imageCache.js";
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
- import { pickTopMostHit as Pa } from "./tools/builtin/pickTopMostHit.js";
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 { reconcileSpecs as Rc } from "./core/scene/reconcileSpecs.js";
237
- import { createPoseFeed as zc } from "./core/scene/poseFeed.js";
238
- import { FALLBACK_FIT_VIEW as Bc, computeFitView as Vc, computeIndicatorCommand as Hc } from "./canvas/minimapMath.js";
239
- import { MinimapCanvas as Uc } from "./canvas/MinimapCanvas.js";
240
- import { createLinkedCursorContribution as Wc, createMinimapContribution as Gc } from "./features/minimap/createMinimapContribution.js";
241
- import { renderNeeds as Kc } from "./canvas/renderNeeds.js";
242
- import { createRasterSession as qc, planPixelRender as Jc, renderSceneToPixels as Yc, warmRender as Xc } from "./canvas/renderSceneToPixels.js";
243
- import { debugSnapshotArgs as Zc, renderDebugSnapshot as Qc } from "./canvas/renderDebugSnapshot.js";
244
- import { rasterToPng as $c } from "./canvas/rasterToPng.js";
245
- import { ActionsProviderIfRoot as el } from "./canvas/SceneCanvas/ActionsProviderIfRoot.js";
246
- import { DepRegistryProviderIfRoot as tl } from "./canvas/SceneCanvas/DepRegistryProviderIfRoot.js";
247
- import { WeaselProvider as nl } from "./WeaselProvider.js";
248
- import { useCanvasFocus as rl } from "./features/focus/useCanvasFocus.js";
249
- import { gateLayer as il } from "./features/focus/gateLayer.js";
250
- import { modeDecorationLayer as al, workspaceTintLayer as ol } from "./features/modes/modeLayers.js";
251
- import { createChildrenLayer as sl } from "./features/groups/children.js";
252
- import { composeAffordanceLayer as cl } from "./affordances/composeAffordanceLayer.js";
253
- import { defaultLabelTextRenderer as ll, renderLabel as ul } from "./features/text/renderLabel.js";
254
- import { createTextLayer as dl } from "./features/text/textLayer.js";
255
- import { caretIndexAt as fl, pointInTextPose as pl } from "./features/text/hitTest.js";
256
- import { fitTextPose as ml } from "./features/text/fitTextPose.js";
257
- import { charOffsetToDomPosition as hl, domPositionToCharOffset as gl, domToRuns as _l, runsToDom as vl } from "./features/text/domRuns.js";
258
- import { MIXED as yl } from "./core/mixed.js";
259
- import { applyStyleToRange as bl, patchRangeStyle as xl, styleAtRange as Sl } from "./features/text/runs/rangeStyle.js";
260
- import { nodeHasFlag as Cl, setFlagOverRange as wl, unboldPatch as Tl } from "./features/text/runs/flagRange.js";
261
- import { effectiveRangeStyle as El, rangeWeight as Dl } from "./features/text/runs/effectiveRangeStyle.js";
262
- import { TEXT_EDIT_FONT_HOLD as Ol, useTextEdit as kl } from "./features/text/useTextEdit.js";
263
- import { useSceneTextEdit as Al } from "./features/text/useSceneTextEdit.js";
264
- import { createSetTextOp as jl } from "./core/ops/setText.js";
265
- import { createSetLayerOp as Ml } from "./core/ops/setLayer.js";
266
- import { createSetLayoutOp as Nl } from "./core/ops/setLayout.js";
267
- import { createSetPathOp as Pl } from "./core/ops/setPath.js";
268
- import { nestedHitTester as Fl } from "./features/groups/nestedHit.js";
269
- import { unionOfChildrenVia as Il } from "./features/groups/unionOfChildren.js";
270
- import { createPathLayer as Ll } from "./features/paths/pathLayer.js";
271
- import { pathOriginProjection as Rl } from "./features/paths/originProjection.js";
272
- import { DEFAULT_FLATTEN_TOLERANCE as zl, PATH_C as Bl, PATH_CMD_LENGTHS as Vl, PATH_L as Hl, PATH_M as Ul, PATH_Q as Wl, PATH_Z as Gl, PathBuilder as Kl, boundsOfPath as ql, composePath as Jl, decomposePath as Yl, ellipsePath as Xl, flattenCubic as Zl, flattenCubicWithArcLen as Ql, flattenQuadratic as $l, flattenQuadraticWithArcLen as eu, linePath as tu, pathCommandCoordCount as nu, pathContainsPoint as ru, pathContainsPolygon as iu, pathContainsRect as au, pathDistanceToPoint as ou, pathFromD as su, pathIntersectsPolygon as cu, pathIntersectsRect as lu, pathSignedArea as uu, pointAlongPath as du, pointInPath as fu, polygonFromPoints as pu, polylineFromPoints as mu, rectPath as hu, regularPolygonPath as gu, reversePath as _u, scalePathToBounds as vu, snipPathByPolyline as yu, splitPathByPolyline as bu, splitPathBySegment as xu, splitSubpaths as Su, starPath as Cu, transformPath as wu, translatePath as Tu, unionBoundsPath as Eu } from "./features/paths/index.js";
273
- import { useGradientKinds as Du, usePaintKind as Ou, usePaintKinds as ku } from "./core/usePaintKinds.js";
274
- import { createHistory as Au } from "./core/ops/createHistory.js";
275
- import { arrayAdapter as ju } from "./core/adapters/arrayAdapter.js";
276
- import { useArrayAdapter as Mu } from "./core/adapters/useArrayAdapter.js";
277
- import { useDragGesture as Nu } from "./interactions/gestures/dragGesture/dragGesture.js";
278
- import { useDragRect as Pu } from "./interactions/gestures/dragRect/dragRect.js";
279
- import { useDragRadial as Fu } from "./interactions/gestures/dragRadial/dragRadial.js";
280
- import { hitAnchor as Iu } from "./interactions/actions/edit-anchors/handles.js";
281
- import { useClipboardOps as Lu } from "./interactions/actions/clipboard/clipboardOps.js";
282
- import { useDistribute as Ru } from "./interactions/actions/distribute/distribute.js";
283
- import { cloneByAltDrag as zu } from "./interactions/actions/clone/behaviors/cloneByAltDrag.js";
284
- import { useBooleans as Bu } from "./interactions/actions/booleans/useBooleans.js";
285
- import { useBooleansAdapter as Vu } from "./interactions/actions/booleans/useBooleansAdapter.js";
286
- import { useCreateOutlinesAdapter as Hu } from "./interactions/actions/outlines/useCreateOutlinesAdapter.js";
287
- import { animateOnSetPose as Uu } from "./animation/wrappers/animateOnSetPose.js";
288
- import { animateLifecycle as Wu } from "./animation/wrappers/animateLifecycle.js";
289
- import { createReflowTransition as Gu, useAnimatedReflow as Ku } from "./animation/reflow.js";
290
- import { momentum as qu } from "./animation/behaviors/momentum.js";
291
- import { createSlew as Ju, slewToward as Yu } from "./animation/slew.js";
292
- import { cycleVertexColors as Xu, rainbowVertexColors as Zu, solidVertexColors as Qu, springVertexColors as $u, staggerVertexColors as ed, tweenVertexColors as td } from "./animation/colorHelpers.js";
293
- import { IDENTITY_JOINT as nd } from "./animation/rig/types.js";
294
- import { blendPoses as rd } from "./animation/rig/blendPoses.js";
295
- import { mirrorPose as id } from "./animation/rig/mirrorPose.js";
296
- import { resolveSkeleton as ad } from "./animation/rig/resolveSkeleton.js";
297
- import { bindRig as od, rigidRigApply as sd } from "./animation/rig/bindRig.js";
298
- import { solveIk as cd } from "./animation/rig/solveIk.js";
299
- import { useRig as ld } from "./animation/rig/useRig.js";
300
- import { EASINGS as ud, SPRING_PRESETS as dd, cubicBezierEasing as fd, easeIn as pd, easeInBack as md, easeInBounce as hd, easeInCirc as gd, easeInCubic as _d, easeInElastic as vd, easeInExpo as yd, easeInOut as bd, easeInOutBack as xd, easeInOutBounce as Sd, easeInOutCirc as Cd, easeInOutCubic as wd, easeInOutElastic as Td, easeInOutExpo as Ed, easeInOutQuad as Dd, easeInOutQuart as Od, easeInOutQuint as kd, easeInOutSine as Ad, easeInQuad as jd, easeInQuart as Md, easeInQuint as Nd, easeInSine as Pd, easeOut as Fd, easeOutBack as Id, easeOutBounce as Ld, easeOutCirc as Rd, easeOutCubic as zd, easeOutElastic as Bd, easeOutExpo as Vd, easeOutQuad as Hd, easeOutQuart as Ud, easeOutQuint as Wd, easeOutSine as Gd, hexToOklchDeg as Kd, hslToSrgb as qd, interpolateSrgb as Jd, lerpColorArray as Yd, lerpOklab as Xd, lerpOklch as Zd, linear as Qd, linearSrgbToOklab as $d, linearToSrgb as ef, oklabToLinearSrgb as tf, oklabToOklch as nf, oklabToSrgbU8 as rf, oklchDegToHex as af, oklchToOklab as of, resolveEasing as sf, srgbFloatToOklab as cf, srgbToHsl as lf, srgbToLinear as uf, srgbU8ToOklab as df } from "./animation/index.js";
301
- import { mergeContributions as ff } from "./canvas/surfaceContribution.js";
302
- import { canQueryLocalFonts as pf, cssFontFamily as mf, cssFontFamilyLoading as hf, enableLocalFontOutlines as gf, fontOutlineRegistry as _f, fontRegistry as vf, hasFontOutlines as yf, isCanvasFont as bf, listFontOutlines as xf, loadFontOutlines as Sf, outlineStatus as Cf, registerCanvasFont as wf, registerFont as Tf, registerFontOutlines as Ef, subscribeGlyphReady as Df, unregisterCanvasFont as Of, unregisterFontOutlines as kf, warmFonts as Af } from "@weasel-js/font";
303
- import { STROKE_DASH_RATIOS as jf, alignedStrokeRect as Mf, composePatternTransform as Nf, contrastLineColor as Pf, dashForStrokeStyle as Ff, decomposePatternTransform as If, resolveScreenLength as Lf, strokeDashStyleOf as Rf } from "@weasel-js/paint";
304
- import { createReflectable as zf } from "@weasel-js/registry";
305
- import { DEFAULT_DECORATION_METRICS as Bf, DEFAULT_TEXT_STYLE as Vf, MARKDOWN_RUN_GRAMMAR as Hf, SCRIPT_METRICS as Uf, SMALL_CAPS_SCALE as Wf, cachedLayoutRuns as Gf, createMarkdownRenderer as Kf, decorationMetrics as qf, fontString as Jf, isBoldWeight as Yf, isSmallCapsLetter as Xf, layoutMarkdown as Zf, layoutRuns as Qf, layoutTextPose as $f, markdownToRuns as ep, measureText as tp, measureTextBounds as np, measuredWidth as rp, numericWeight as ip, resolveAlign as ap, resolveRunFace as op, resolveRuns as sp, resolveTextStyle as cp, runsToMarkdown as lp, runsToPlainText as up, scriptMetrics as dp, scriptMetricsFor as fp, smallCapsScale as pp, smallCapsScaleFor as mp, smallCapsText as hp, textLineBoxes as gp, textPoseLayoutInput as _p, toRuns as vp, transformRunTexts as yp, verticalAlignOffset as bp } from "@weasel-js/text";
306
- import { trimPolyline as xp } from "@weasel-js/geom/tessellate";
307
- import { useLatest as Sp } from "@weasel-js/react";
308
- import { ActionDisabledReason as Cp, CONTROL_SELECTOR as wp, DRAG_THRESHOLD_PX as Tp, LONG_PRESS_MS as Ep, actionBindings as Dp, actionItems as Op, buildDepsFromRequires as kp, clientToCanvas as Ap, createDepRegistry as jp, createDispatcher as Mp, createLongPressStore as Np, deleteScratch as Pp, evaluateEnabled as Fp, getScratch as Ip, isEditableTarget as Lp, isInControlWithin as Rp, liveScope as zp, matchesKeyBinding as Bp, modeShortcutSpec as Vp, modeShortcuts as Hp, openPointerSession as Up, pastDragThreshold as Wp, resolveParams as Gp, scopeBindings as Kp, scratchKey as qp, setScratch as Jp, specificity as Yp } from "@weasel-js/routing";
309
- import { ActionsProvider as Xp, ActiveToolContextProvider as Zp, ActiveToolContextProviderIfRoot as Qp, DepRegistryProvider as $p, InputScope as em, Yoke as tm, useAction as nm, useActionsRegistry as rm, useActiveToolContext as im, useDepRegistry as am, useDepSource as om, useGestureDispatcher as sm, useOngoingAction as cm, useOptionalActiveToolContext as lm, useOptionalDepRegistry as um, useYoke as dm } from "@weasel-js/routing/react";
310
- import { ANGLE_RADIANS as fm, IMPERIAL_INCHES as pm, METRIC_MM as mm, PIXELS as hm, formatUnit as gm, resolveUnit as _m, unitScale as vm } from "@weasel-js/quantity";
311
- import { CURSOR_ANGLE_STEPS as ym, CURSOR_MAX_CSS_PX as bm, bakeCursor as xm, createPaintedCursorState as Sm, cursorFor as Cm, resolveCursor as wm, resolveCursorTier as Tm } from "@weasel-js/cursor";
312
- import { CURVE_REPS as Em, bezierCubic as Dm, bezierQuadratic as Om, nurbs as km, spiro as Am } from "@weasel-js/geom/curves";
146
+ import { TOOL_PREF_KINDS as ia, isBuiltinToolPref as aa, pairRowsOf as oa, prefUnit as sa } from "./tools/prefs.js";
147
+ import ca from "./icons/SelectIcon.js";
148
+ import la from "./icons/LassoIcon.js";
149
+ import ua from "./icons/RectIcon.js";
150
+ import da from "./icons/EllipseIcon.js";
151
+ import fa from "./icons/ImageIcon.js";
152
+ import pa from "./icons/EyedropperIcon.js";
153
+ import ma from "./icons/LineIcon.js";
154
+ import ha from "./icons/ArrowIcon.js";
155
+ import ga from "./icons/PolygonIcon.js";
156
+ import _a from "./icons/StarIcon.js";
157
+ import va from "./icons/PencilIcon.js";
158
+ import ya from "./icons/TextIcon.js";
159
+ import ba from "./icons/PenIcon.js";
160
+ import xa from "./icons/HandIcon.js";
161
+ import Sa from "./icons/UnknownIcon.js";
162
+ import { getImageBitmap as Ca, imageStatus as wa, isVectorImageSrc as Ta, subscribeImageReady as Ea } from "./features/images/imageCache.js";
163
+ import { DEFAULT_INK as Da, findNodeShape as Oa, findShapeBounds as ka, findShapeInk as Aa, findShapeSilhouette as ja, getNodeShapes as Ma, registerNodeShape as Na, shapeCoversPoint as Pa } from "./canvas/NodeShape.js";
164
+ import { pickTopMostHit as Fa } from "./tools/builtin/pickTopMostHit.js";
165
+ import { AREA_SELECT_ID as Ia, SELECTION_MOVE_ID as La, SELECTION_RESIZE_ID as Ra, SELECTION_ROTATE_ID as za, SELECTION_TRANSFORM_ID as Ba, areaSelectContribution as Va, onEmptyCanvas as Ha, selectionMoveBindings as Ua, selectionMoveContribution as Wa, selectionResizeBindings as Ga, selectionResizeContribution as Ka, selectionRotateBindings as qa, selectionRotateContribution as Ja, selectionTransformBindings as Ya, selectionTransformContribution as Xa } from "./tools/builtin/select/selectionContributions.js";
166
+ import { useSelectTool as Za } from "./tools/builtin/select/useSelectTool.js";
167
+ import { useHandTool as Qa } from "./tools/builtin/hand/useHandTool.js";
168
+ import { DRAG_PAN_ID as $a, dragPanContribution as eo } from "./tools/builtin/hand/dragPanContribution.js";
169
+ import { useTextTool as to } from "./tools/builtin/text/useTextTool.js";
170
+ import { constrainTo45 as no } from "./util/constrainTo45.js";
171
+ import { usePenTool as ro } from "./tools/builtin/pen/usePenTool.js";
172
+ import { useRectTool as io } from "./tools/builtin/rect/useRectTool.js";
173
+ import { useEllipseTool as ao } from "./tools/builtin/ellipse/useEllipseTool.js";
174
+ import { useImageTool as oo } from "./tools/builtin/image/useImageTool.js";
175
+ import { useEyedropperTool as so } from "./tools/builtin/eyedropper/useEyedropperTool.js";
176
+ import { useLineTool as co } from "./tools/builtin/line/useLineTool.js";
177
+ import { useLassoTool as lo } from "./tools/builtin/lasso/useLassoTool.js";
178
+ import { usePolygonTool as uo } from "./tools/builtin/polygon/usePolygonTool.js";
179
+ import { useStarTool as fo } from "./tools/builtin/star/useStarTool.js";
180
+ import { usePencilTool as po } from "./tools/builtin/pencil/usePencilTool.js";
181
+ import { useSliceTool as mo } from "./tools/builtin/slice/useSliceTool.js";
182
+ import { defaultDrawOne as ho, defaultPaintBounds as go } from "./canvas/defaultDrawOne.js";
183
+ import { releaseCanvasRenderer as _o } from "./canvas/canvasRenderer.js";
184
+ import { useSelection as vo } from "./core/selection/useSelection.js";
185
+ import { DEFAULT_ROTATION_HANDLE_DISTANCE as yo, hitRotationHandle as bo, rotationHandle as xo } from "./interactions/actions/rotate/handle.js";
186
+ import { composeSelectionPose as So, createSelectionHandlesLayer as Co, createSelectionOutlineLayer as wo, createSelectionOverlayLayer as To } from "./features/selection/overlay.js";
187
+ import { PAINTED_CURSOR_LAYER_ID as Eo, createPaintedCursorLayer as Do } from "./features/cursor/paintedCursorLayer.js";
188
+ import { rotateAroundAABBCenter as Oo } from "./canvas/poseRotation.js";
189
+ import { hostAnchorCss as ko, hostAnchorRect as Ao } from "./canvas/hostAnchor.js";
190
+ import { useHostAnchor as jo } from "./canvas/useHostAnchor.js";
191
+ import { CursorCoordsHud as Mo } from "./canvas/CursorCoordsHud.js";
192
+ import { PickHud as No } from "./canvas/PickHud.js";
193
+ import { sceneToAdapter as Po, useSceneAdapter as Fo } from "./canvas/sceneAdapter.js";
194
+ import { createArrangeOp as Io } from "./core/ops/arrange.js";
195
+ import { createPoseOverrides as Lo } from "./core/scene/poseOverrides.js";
196
+ import { createScene as Ro, sceneFromJSON as zo, sceneSelectionStore as Bo } from "./core/scene/scene.js";
197
+ import { SelectionContextProvider as Vo, SelectionContextProviderIfRoot as Ho, usePublishSelection as Uo, useSelectionContext as Wo } from "./features/selection/SelectionContext.js";
198
+ import { annulusSemiAxes as Go, hitAffordanceRegions as Ko, pointRegionFrame as qo } from "./affordances/hitAffordanceRegions.js";
199
+ import { createCornerResizeAffordance as Jo } from "./affordances/cornerResize.js";
200
+ import { createRotationAffordance as Yo } from "./affordances/rotationHandle.js";
201
+ import { enumerateAnchors as Xo, withCoord as Zo } from "./interactions/actions/edit-anchors/geometry.js";
202
+ import { PATH_ANCHOR_CHROME_ID as Qo, createPathAnchorAffordances as $o } from "./affordances/pathAnchors.js";
203
+ import { insertPreviewExtent as es } from "./canvas/insertPreviewExtent.js";
204
+ import { CanvasView as ts } from "./canvas/CanvasView.js";
205
+ import { KIT_VERSIONS as ns, checkRequirements as rs, satisfiesRange as is } from "./canvas/kitRequirements.js";
206
+ import { PointerProviderIfRoot as as } from "./canvas/SceneCanvas/PointerProviderIfRoot.js";
207
+ import { AUTO_ORIGIN_PROJECTION as os, RECT_ORIGIN_PROJECTION as ss } from "./interactions/gestures/shared/originProjection.js";
208
+ import { snap as cs } from "./interactions/gestures/shared/snap.js";
209
+ import { COMPOSITE_FEATURES as ls, FEATURE_ACTION_IDS as us, SCENE_CANVAS_FEATURES as ds, TOOL_DRIVEN_ACTION_IDS as fs } from "./canvas/SceneCanvas/features.js";
210
+ import { flattenPreviews as ps, resolvePreviews as ms } from "./interactions/actions/resolvePreviews.js";
211
+ import { resolveOverlays as hs } from "./interactions/actions/resolveOverlays.js";
212
+ import { circlePath as gs, rectMarkerPath as _s, roundRectPath as vs, squarePath as ys } from "./features/paths/markers.js";
213
+ import { createPenPreviewLayer as bs } from "./features/paths/penPreviewLayer.js";
214
+ import { createPathEditingOverlayLayer as xs } from "./features/paths/pathEditingOverlayLayer.js";
215
+ import { layoutArrivalHandler as Ss, useLayoutArrivals as Cs } from "./layout/arrivals.js";
216
+ import { WEASEL_CLIPBOARD_MIME as ws, WEASEL_CLIPBOARD_MIME_WEB as Ts, buildWeaselClipboardText as Es, embedWeaselMetadataInSvg as Ds, extractWeaselClipboardFromSvg as Os, parseWeaselClipboardText as ks, sniffWeaselClipboardText as As } from "./interactions/actions/clipboard/wireFormat.js";
217
+ import { openFilePicker as js } from "./features/ingestion/openFilePicker.js";
218
+ import { LONG_PRESS_FEEDBACK_ID as Ms, createLongPressFeedbackContribution as Ns } from "./features/longPress/longPressFeedback.js";
219
+ import { createNodeRouting as Ps } from "./core/scene/NodeRouting.js";
220
+ import { defaultNodeRouting as Fs, inferredNodeRouting as Is } from "./canvas/SceneCanvas/defaultNodeRouting.js";
221
+ import { actionIs as Ls, always as Rs, and as zs, canHover as Bs, capabilityAll as Vs, capabilityIn as Hs, capabilityIs as Us, capabilityNot as Ws, coarsePointer as Gs, cond as Ks, focused as qs, gesturing as Js, hovering as Ys, hoveringSelected as Xs, modeIn as Zs, modeIs as Qs, modeNot as $s, modifierHeld as ec, multiActive as tc, never as nc, not as rc, or as ic, selectionAtLeast as ac, selectionEmpty as oc, selectionIs as sc, when as cc, zoomAtLeast as lc } from "./features/chrome-caps/conditions.js";
222
+ import { defaultVisibilityRules as uc } from "./features/chrome-caps/defaults.js";
223
+ import { resolveVisibility as dc } from "./features/chrome-caps/resolve.js";
224
+ import { buildChromeCtx as fc } from "./features/chrome-caps/buildChromeCtx.js";
225
+ import { useHoverTracking as pc } from "./features/chrome-caps/useHoverTracking.js";
226
+ import { ALWAYS as mc, DEFAULT_ALLOWED_CAPABILITIES as hc, NEVER as gc, buildRuleCtx as _c, describeRule as vc, evaluate as yc } from "./features/chrome-caps/index.js";
227
+ import { BUILTIN_TOOL_IDS as bc, DEFAULT_HANDLE_SIZE as xc, SceneCanvas as Sc } from "./canvas/SceneCanvas.js";
228
+ import { createNodeProperties as Cc } from "./core/scene/NodeProperties.js";
229
+ import { defaultNodeProperties as wc, inferredNodeProperties as Tc, rotationDegreesUnit as Ec } from "./canvas/SceneCanvas/defaultNodeProperties.js";
230
+ import { buildSceneViewCommands as Dc, renderSceneToCanvas as Oc } from "./canvas/sceneViewRender.js";
231
+ import { SceneViewCanvas as kc } from "./canvas/SceneViewCanvas.js";
232
+ import { DrawCanvas as Ac } from "./canvas/DrawCanvas.js";
233
+ import { MINIMAP_CENTER as jc, MINIMAP_PAN as Mc, centerRootOn as Nc, minimapCenterAction as Pc, minimapPanAction as Fc } from "./features/minimap/actions.js";
234
+ import { CROSSHAIR_HALO as Ic, crosshairRects as Lc } from "./features/minimap/layers.js";
235
+ import { useScene as Rc } from "./core/scene/useScene.js";
236
+ import { reconcileSpecs as zc } from "./core/scene/reconcileSpecs.js";
237
+ import { createPoseFeed as Bc } from "./core/scene/poseFeed.js";
238
+ import { FALLBACK_FIT_VIEW as Vc, computeFitView as Hc, computeIndicatorCommand as Uc } from "./canvas/minimapMath.js";
239
+ import { MinimapCanvas as Wc } from "./canvas/MinimapCanvas.js";
240
+ import { createLinkedCursorContribution as Gc, createMinimapContribution as Kc } from "./features/minimap/createMinimapContribution.js";
241
+ import { renderNeeds as qc } from "./canvas/renderNeeds.js";
242
+ import { createRasterSession as Jc, planPixelRender as Yc, renderSceneToPixels as Xc, warmRender as Zc } from "./canvas/renderSceneToPixels.js";
243
+ import { debugSnapshotArgs as Qc, renderDebugSnapshot as $c } from "./canvas/renderDebugSnapshot.js";
244
+ import { rasterToPng as el } from "./canvas/rasterToPng.js";
245
+ import { ActionsProviderIfRoot as tl } from "./canvas/SceneCanvas/ActionsProviderIfRoot.js";
246
+ import { DepRegistryProviderIfRoot as nl } from "./canvas/SceneCanvas/DepRegistryProviderIfRoot.js";
247
+ import { WeaselProvider as rl } from "./WeaselProvider.js";
248
+ import { useCanvasFocus as il } from "./features/focus/useCanvasFocus.js";
249
+ import { gateLayer as al } from "./features/focus/gateLayer.js";
250
+ import { modeDecorationLayer as ol, workspaceTintLayer as sl } from "./features/modes/modeLayers.js";
251
+ import { createChildrenLayer as cl } from "./features/groups/children.js";
252
+ import { composeAffordanceLayer as ll } from "./affordances/composeAffordanceLayer.js";
253
+ import { defaultLabelTextRenderer as ul, renderLabel as dl } from "./features/text/renderLabel.js";
254
+ import { createTextLayer as fl } from "./features/text/textLayer.js";
255
+ import { caretIndexAt as pl, pointInTextPose as ml } from "./features/text/hitTest.js";
256
+ import { fitTextPose as hl } from "./features/text/fitTextPose.js";
257
+ import { charOffsetToDomPosition as gl, domPositionToCharOffset as _l, domToRuns as vl, runsToDom as yl } from "./features/text/domRuns.js";
258
+ import { MIXED as bl } from "./core/mixed.js";
259
+ import { applyStyleToRange as xl, patchRangeStyle as Sl, styleAtRange as Cl } from "./features/text/runs/rangeStyle.js";
260
+ import { nodeHasFlag as wl, setFlagOverRange as Tl, unboldPatch as El } from "./features/text/runs/flagRange.js";
261
+ import { effectiveRangeStyle as Dl, rangeWeight as Ol } from "./features/text/runs/effectiveRangeStyle.js";
262
+ import { TEXT_EDIT_FONT_HOLD as kl, useTextEdit as Al } from "./features/text/useTextEdit.js";
263
+ import { useSceneTextEdit as jl } from "./features/text/useSceneTextEdit.js";
264
+ import { createSetTextOp as Ml } from "./core/ops/setText.js";
265
+ import { createSetLayerOp as Nl } from "./core/ops/setLayer.js";
266
+ import { createSetLayoutOp as Pl } from "./core/ops/setLayout.js";
267
+ import { createSetPathOp as Fl } from "./core/ops/setPath.js";
268
+ import { nestedHitTester as Il } from "./features/groups/nestedHit.js";
269
+ import { unionOfChildrenVia as Ll } from "./features/groups/unionOfChildren.js";
270
+ import { createPathLayer as Rl } from "./features/paths/pathLayer.js";
271
+ import { pathOriginProjection as zl } from "./features/paths/originProjection.js";
272
+ import { DEFAULT_FLATTEN_TOLERANCE as Bl, PATH_C as Vl, PATH_CMD_LENGTHS as Hl, PATH_L as Ul, PATH_M as Wl, PATH_Q as Gl, PATH_Z as Kl, PathBuilder as ql, boundsOfPath as Jl, composePath as Yl, decomposePath as Xl, ellipsePath as Zl, flattenCubic as Ql, flattenCubicWithArcLen as $l, flattenQuadratic as eu, flattenQuadraticWithArcLen as tu, linePath as nu, pathCommandCoordCount as ru, pathContainsPoint as iu, pathContainsPolygon as au, pathContainsRect as ou, pathDistanceToPoint as su, pathFromD as cu, pathIntersectsPolygon as lu, pathIntersectsRect as uu, pathSignedArea as du, pointAlongPath as fu, pointInPath as pu, polygonFromPoints as mu, polylineFromPoints as hu, rectPath as gu, regularPolygonPath as _u, reversePath as vu, scalePathToBounds as yu, snipPathByPolyline as bu, splitPathByPolyline as xu, splitPathBySegment as Su, splitSubpaths as Cu, starPath as wu, transformPath as Tu, translatePath as Eu, unionBoundsPath as Du } from "./features/paths/index.js";
273
+ import { useGradientKinds as Ou, usePaintKind as ku, usePaintKinds as Au } from "./core/usePaintKinds.js";
274
+ import { createHistory as ju } from "./core/ops/createHistory.js";
275
+ import { arrayAdapter as Mu } from "./core/adapters/arrayAdapter.js";
276
+ import { useArrayAdapter as Nu } from "./core/adapters/useArrayAdapter.js";
277
+ import { useDragGesture as Pu } from "./interactions/gestures/dragGesture/dragGesture.js";
278
+ import { useDragRect as Fu } from "./interactions/gestures/dragRect/dragRect.js";
279
+ import { useDragRadial as Iu } from "./interactions/gestures/dragRadial/dragRadial.js";
280
+ import { hitAnchor as Lu } from "./interactions/actions/edit-anchors/handles.js";
281
+ import { useClipboardOps as Ru } from "./interactions/actions/clipboard/clipboardOps.js";
282
+ import { useDistribute as zu } from "./interactions/actions/distribute/distribute.js";
283
+ import { cloneByAltDrag as Bu } from "./interactions/actions/clone/behaviors/cloneByAltDrag.js";
284
+ import { useBooleans as Vu } from "./interactions/actions/booleans/useBooleans.js";
285
+ import { useBooleansAdapter as Hu } from "./interactions/actions/booleans/useBooleansAdapter.js";
286
+ import { useCreateOutlinesAdapter as Uu } from "./interactions/actions/outlines/useCreateOutlinesAdapter.js";
287
+ import { animateOnSetPose as Wu } from "./animation/wrappers/animateOnSetPose.js";
288
+ import { animateLifecycle as Gu } from "./animation/wrappers/animateLifecycle.js";
289
+ import { createReflowTransition as Ku, useAnimatedReflow as qu } from "./animation/reflow.js";
290
+ import { momentum as Ju } from "./animation/behaviors/momentum.js";
291
+ import { createSlew as Yu, slewToward as Xu } from "./animation/slew.js";
292
+ import { cycleVertexColors as Zu, rainbowVertexColors as Qu, solidVertexColors as $u, springVertexColors as ed, staggerVertexColors as td, tweenVertexColors as nd } from "./animation/colorHelpers.js";
293
+ import { IDENTITY_JOINT as rd } from "./animation/rig/types.js";
294
+ import { blendPoses as id } from "./animation/rig/blendPoses.js";
295
+ import { mirrorPose as ad } from "./animation/rig/mirrorPose.js";
296
+ import { resolveSkeleton as od } from "./animation/rig/resolveSkeleton.js";
297
+ import { bindRig as sd, rigidRigApply as cd } from "./animation/rig/bindRig.js";
298
+ import { solveIk as ld } from "./animation/rig/solveIk.js";
299
+ import { useRig as ud } from "./animation/rig/useRig.js";
300
+ import { EASINGS as dd, SPRING_PRESETS as fd, cubicBezierEasing as pd, easeIn as md, easeInBack as hd, easeInBounce as gd, easeInCirc as _d, easeInCubic as vd, easeInElastic as yd, easeInExpo as bd, easeInOut as xd, easeInOutBack as Sd, easeInOutBounce as Cd, easeInOutCirc as wd, easeInOutCubic as Td, easeInOutElastic as Ed, easeInOutExpo as Dd, easeInOutQuad as Od, easeInOutQuart as kd, easeInOutQuint as Ad, easeInOutSine as jd, easeInQuad as Md, easeInQuart as Nd, easeInQuint as Pd, easeInSine as Fd, easeOut as Id, easeOutBack as Ld, easeOutBounce as Rd, easeOutCirc as zd, easeOutCubic as Bd, easeOutElastic as Vd, easeOutExpo as Hd, easeOutQuad as Ud, easeOutQuart as Wd, easeOutQuint as Gd, easeOutSine as Kd, hexToOklchDeg as qd, hslToSrgb as Jd, interpolateSrgb as Yd, lerpColorArray as Xd, lerpOklab as Zd, lerpOklch as Qd, linear as $d, linearSrgbToOklab as ef, linearToSrgb as tf, oklabToLinearSrgb as nf, oklabToOklch as rf, oklabToSrgbU8 as af, oklchDegToHex as of, oklchToOklab as sf, resolveEasing as cf, srgbFloatToOklab as lf, srgbToHsl as uf, srgbToLinear as df, srgbU8ToOklab as ff } from "./animation/index.js";
301
+ import { mergeContributions as pf } from "./canvas/surfaceContribution.js";
302
+ import { canQueryLocalFonts as mf, cssFamilyName as hf, cssFontFamily as gf, cssFontFamilyLoading as _f, enableLocalFontOutlines as vf, fontOutlineRegistry as yf, fontRegistry as bf, hasFontOutlines as xf, isCanvasFont as Sf, listFontOutlines as Cf, loadFontOutlines as wf, outlineStatus as Tf, registerCanvasFont as Ef, registerFont as Df, registerFontOutlines as Of, subscribeGlyphReady as kf, unregisterCanvasFont as Af, unregisterFontOutlines as jf, warmFonts as Mf } from "@weasel-js/font";
303
+ import { STROKE_DASH_RATIOS as Nf, alignedStrokeRect as Pf, composePatternTransform as Ff, contrastLineColor as If, dashForStrokeStyle as Lf, decomposePatternTransform as Rf, resolveScreenLength as zf, strokeDashStyleOf as Bf } from "@weasel-js/paint";
304
+ import { createReflectable as Vf } from "@weasel-js/registry";
305
+ import { DEFAULT_DECORATION_METRICS as Hf, DEFAULT_TEXT_STYLE as Uf, MARKDOWN_RUN_GRAMMAR as Wf, SCRIPT_METRICS as Gf, SMALL_CAPS_SCALE as Kf, cachedLayoutRuns as qf, createMarkdownRenderer as Jf, decorationMetrics as Yf, fontString as Xf, isBoldWeight as Zf, isSmallCapsLetter as Qf, layoutMarkdown as $f, layoutRuns as ep, layoutTextPose as tp, markdownToRuns as np, measureText as rp, measureTextBounds as ip, measuredWidth as ap, numericWeight as op, resolveAlign as sp, resolveRunFace as cp, resolveRuns as lp, resolveTextStyle as up, runsToMarkdown as dp, runsToPlainText as fp, scriptMetrics as pp, scriptMetricsFor as mp, smallCapsScale as hp, smallCapsScaleFor as gp, smallCapsText as _p, textLineBoxes as vp, textPoseLayoutInput as yp, toRuns as bp, transformRunTexts as xp, verticalAlignOffset as Sp } from "@weasel-js/text";
306
+ import { trimPolyline as Cp } from "@weasel-js/geom/tessellate";
307
+ import { useLatest as wp } from "@weasel-js/react";
308
+ import { ActionDisabledReason as Tp, CONTROL_SELECTOR as Ep, DRAG_THRESHOLD_PX as Dp, LONG_PRESS_MS as Op, actionBindings as kp, actionItems as Ap, activatesFocusedControl as jp, buildDepsFromRequires as Mp, clientToCanvas as Np, createDepRegistry as Pp, createDispatcher as Fp, createLongPressStore as Ip, deleteScratch as Lp, evaluateEnabled as Rp, getScratch as zp, historyKey as Bp, isEditableTarget as Vp, isInControlWithin as Hp, liveScope as Up, matchesKeyBinding as Wp, modeShortcutSpec as Gp, modeShortcuts as Kp, openPointerSession as qp, pastDragThreshold as Jp, resolveParams as Yp, scopeBindings as Xp, scratchKey as Zp, setScratch as Qp, specificity as $p } from "@weasel-js/routing";
309
+ import { ActionsProvider as em, ActiveToolContextProvider as tm, ActiveToolContextProviderIfRoot as nm, DepRegistryProvider as rm, InputScope as im, Yoke as am, useAction as om, useActionsRegistry as sm, useActiveToolContext as cm, useDepRegistry as lm, useDepSource as um, useGestureDispatcher as dm, useOngoingAction as fm, useOptionalActiveToolContext as pm, useOptionalDepRegistry as mm, useYoke as hm } from "@weasel-js/routing/react";
310
+ import { ANGLE_RADIANS as gm, IMPERIAL_INCHES as _m, METRIC_MM as vm, PIXELS as ym, formatUnit as bm, resolveUnit as xm, unitScale as Sm } from "@weasel-js/quantity";
311
+ import { CURSOR_ANGLE_STEPS as Cm, CURSOR_MAX_CSS_PX as wm, bakeCursor as Tm, createPaintedCursorState as Em, cursorFor as Dm, resolveCursor as Om, resolveCursorTier as km } from "@weasel-js/cursor";
312
+ import { CURVE_REPS as Am, bezierCubic as jm, bezierQuadratic as Mm, nurbs as Nm, spiro as Pm } from "@weasel-js/geom/curves";
313
313
  export * from "@weasel-js/history";
314
- export { sr as ACTION_GLYPHS, pc as ALWAYS, lt as ANCHOR_HIT_BASE_PX, fm as ANGLE_RADIANS, Fa as AREA_SELECT_ID, as as AUTO_ORIGIN_PROJECTION, Jt as AUTO_POSE_DESCRIPTOR, Cp as ActionDisabledReason, Xp as ActionsProvider, el as ActionsProviderIfRoot, Zp as ActiveToolContextProvider, Qp 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, wp as CONTROL_SELECTOR, nn as CORNER_ANCHORS, Fc as CROSSHAIR_HALO, ym as CURSOR_ANGLE_STEPS, bm as CURSOR_MAX_CSS_PX, Em 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, Bf as DEFAULT_DECORATION_METRICS, pt as DEFAULT_DEVICE_PROFILE, ai as DEFAULT_FILL_COLOR, zl 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, Vf as DEFAULT_TEXT_STYLE, _e as DEFAULT_VELOCITY_DECAY, Qa as DRAG_PAN_ID, Tp as DRAG_THRESHOLD_PX, cr as DeleteIcon, $p as DepRegistryProvider, tl as DepRegistryProviderIfRoot, Se as DeviceProfileProvider, Fr as DistributeHorizontalIcon, Ir as DistributeVerticalIcon, Jr as DivideIcon, kc as DrawCanvas, $n as DuplicateIcon, ud as EASINGS, ua as EllipseIcon, Yr as ExcludeIcon, fa as EyedropperIcon, Bc 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, nd as IDENTITY_JOINT, Te as IDENTITY_POSE_COMPOSITION, pm as IMPERIAL_INCHES, da as ImageIcon, em 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, Ep as LONG_PRESS_MS, ca as LassoIcon, pa as LineIcon, Hf as MARKDOWN_RUN_GRAMMAR, mm as METRIC_MM, Ac as MINIMAP_CENTER, jc as MINIMAP_PAN, yl as MIXED, Uc as MinimapCanvas, hc as NEVER, To as PAINTED_CURSOR_LAYER_ID, Zo as PATH_ANCHOR_CHROME_ID, Bl as PATH_C, Vl as PATH_CMD_LENGTHS, Hl as PATH_L, Ul as PATH_M, Wl as PATH_Q, Gl as PATH_Z, hm as PIXELS, rr as PasteIcon, Kl 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, Uf 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, Wf as SMALL_CAPS_SCALE, dd as SPRING_PRESETS, w as SPRITE_STRIDE, jf 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, Ol 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, nl as WeaselProvider, tm as Yoke, X as ZOOM_FLOOR, cn as aabbCenter, Dp as actionBindings, Is as actionIs, Op as actionItems, Tt as actionShortcuts, Sr as alignDeltaFor, Cr as alignTargetBounds, Mf as alignedStrokeRect, Ls as always, Rs as and, Wu as animateLifecycle, Uu as animateOnSetPose, Wo as annulusSemiAxes, Kr as applyBooleanOp, $r as applyCreateOutlines, Vn as applyOpsTo, bl as applyStyleToRange, gn as areaSelectAction, Ba as areaSelectContribution, ju as arrayAdapter, At as asNodeId, p as asPaint, zt as axisAlignedBounds, xm as bakeCursor, Dm as bezierCubic, Om as bezierQuadratic, od as bindRig, rd as blendPoses, B as blur, ql as boundsOfPath, dc as buildChromeCtx, Ni as buildDebugOverlayCommands, kp as buildDepsFromRequires, gc as buildRuleCtx, Ec as buildSceneViewCommands, Ts as buildWeaselClipboardText, Gf as cachedLayoutRuns, Tr as canBringForward, zs as canHover, pf as canQueryLocalFonts, Er as canSendBackward, Bs as capabilityAll, Vs as capabilityIn, Hs as capabilityIs, Us as capabilityNot, fl as caretIndexAt, Mc as centerRootOn, hl as charOffsetToDomPosition, ns as checkRequirements, hs as circlePath, yt as clampView, bn as clearSelectionAction, Ap as clientToCanvas, dr as clipboardCopyAction, fr as clipboardCutAction, pr as clipboardPasteAction, Cn as cloneAction, zu as cloneByAltDrag, Ws as coarsePointer, cl as composeAffordanceLayer, Jl as composePath, Nf as composePatternTransform, Ae as composeRectPose, je as composeRigidPose, xo as composeSelectionPose, Ee as composeWorldPose, Vc as computeFitView, xt as computeFitViewport, Hc as computeIndicatorCommand, Vi as computeSliceOps, Dn as computeWheelAction, Gs as cond, to as constrainTo45, Pf as contrastLineColor, rn as cornerPoint, an as cornerResizeHandles, Fn as countPathAnchors, Fo as createArrangeOp, sl as createChildrenLayer, qo as createCornerResizeAffordance, Pi as createDebugOverlayLayer, xi as createDebugSink, xn as createDeleteOp, jp as createDepRegistry, Mp as createDispatcher, Au as createHistory, Sn as createInsertOp, Ct as createKeyState, Wc as createLinkedCursorContribution, Ms as createLongPressFeedbackContribution, Np as createLongPressStore, Kf as createMarkdownRenderer, Gc as createMinimapContribution, Dr as createMoveToIndexOp, Sc as createNodeProperties, Ns as createNodeRouting, Eo as createPaintedCursorLayer, Sm as createPaintedCursorState, fe as createParallaxLayer, de as createParallaxPlane, Qo as createPathAnchorAffordances, bs as createPathEditingOverlayLayer, Ll as createPathLayer, ys as createPenPreviewLayer, vr as createPointerStore, zc as createPoseFeed, Io as createPoseOverrides, qc as createRasterSession, zf as createReflectable, Gu 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, Ml as createSetLayerOp, Nl as createSetLayoutOp, Pl as createSetPathOp, Un as createSetSelectionOp, jl as createSetTextOp, ve as createSimulation, Ju as createSlew, dl as createTextLayer, wi as createTilePattern, me as createTiledLayer, It as createTransformOp, wn as createVelocityTracker, ne as createViewResolver, te as createViewportLayer, Ic as crosshairRects, mf as cssFontFamily, hf as cssFontFamilyLoading, fd as cubicBezierEasing, R as cullDrawCommands, Cm as cursorFor, ui as cycleFill, Xu as cycleVertexColors, Ff as dashForStrokeStyle, Zc as debugSnapshotArgs, Yl as decomposePath, If as decomposePatternTransform, Me as decomposeRectPose, Ne as decomposeRigidPose, qf as decorationMetrics, pn as defaultCommitAdapter, mo as defaultDrawOne, ll as defaultLabelTextRenderer, Cc as defaultNodeProperties, Ps as defaultNodeRouting, ho as defaultPaintBounds, lc as defaultVisibilityRules, ta as defineTool, Le as definesFrame, Pp 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, gl as domPositionToCharOffset, _l as domToRuns, $a as dragPanContribution, U as drawLayers, W as drawOneLayer, vi as dwarn, pd as easeIn, md as easeInBack, hd as easeInBounce, gd as easeInCirc, _d as easeInCubic, vd as easeInElastic, yd as easeInExpo, bd as easeInOut, xd as easeInOutBack, Sd as easeInOutBounce, Cd as easeInOutCirc, wd as easeInOutCubic, Td as easeInOutElastic, Ed as easeInOutExpo, Dd as easeInOutQuad, Od as easeInOutQuart, kd as easeInOutQuint, Ad as easeInOutSine, jd as easeInQuad, Md as easeInQuart, Nd as easeInQuint, Pd as easeInSine, Fd as easeOut, Id as easeOutBack, Ld as easeOutBounce, Rd as easeOutCirc, zd as easeOutCubic, Bd as easeOutElastic, Vd as easeOutExpo, Hd as easeOutQuad, Ud as easeOutQuart, Wd as easeOutQuint, Gd as easeOutSine, Bn as editAnchorsAction, Zt as editingLayer, Ve as effectivePose, El as effectiveRangeStyle, Xl as ellipsePath, Es as embedWeaselMetadataInSvg, gf as enableLocalFontOutlines, mr as enterTextEditAction, Yo as enumerateAnchors, vc as evaluate, Fp as evaluateEnabled, Ds as extractWeaselClipboardFromSvg, Si as fillInPoseFrame, Ci as fillToBoundsFrame, Da as findNodeShape, Oa as findShapeBounds, ka as findShapeInk, Aa as findShapeSilhouette, ml as fitTextPose, ht as fitToBounds, _t as fitViewToBounds, gt as fitZoom, on as fixedCornerOf, Zl as flattenCubic, Ql as flattenCubicWithArcLen, fs as flattenPreviews, $l as flattenQuadratic, eu as flattenQuadraticWithArcLen, Ks as focused, _f as fontOutlineRegistry, vf as fontRegistry, Jf as fontString, Ge as forEachCoalesced, gm as formatUnit, I as frameRect, ie as fromPlane, il 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, Ip as getScratch, Ke as getStylusData, s as gradientForBounds, c as gradientGeometry, yf as hasFontOutlines, Kd as hexToOklchDeg, t as hexToRgba, Go as hitAffordanceRegions, Iu as hitAnchor, sn as hitCornerHandle, yo as hitRotationHandle, Oo as hostAnchorCss, ko as hostAnchorRect, Js as hovering, Ys as hoveringSelected, qd as hslToSrgb, Ca as imageStatus, Qt as inPlane, wc as inferredNodeProperties, Fs as inferredNodeRouting, yn as insertAction, $t as insertLayer, $o as insertPreviewExtent, Jd as interpolateSrgb, Ki as interpolateView, Yf as isBoldWeight, aa as isBuiltinToolPref, bf as isCanvasFont, yi as isDebugEnabled, Lp as isEditableTarget, l as isGradientFill, Rp as isInControlWithin, G as isLayerPainted, K as isLayerVisible, h as isPaintKindKnown, Yt as isPathLike, Ti as isPatternSpec, Ie as isPlainObject, Xt as isRectPose, Xf as isSmallCapsLetter, wa as isVectorImageSrc, Et as keySpecShortcut, Gn as lassoSelectAction, xs as layoutArrivalHandler, Zf as layoutMarkdown, Qf as layoutRuns, $f as layoutTextPose, Yd as lerpColorArray, Xd as lerpOklab, Zd as lerpOklch, tu as linePath, Qd as linear, $d as linearSrgbToOklab, ef as linearToSrgb, xf as listFontOutlines, g as listGradientKinds, O as listMarkers, _ as listPaintKinds, zp as liveScope, Sf as loadFontOutlines, Ur as loadTextOutlines, qn as makePinchZoomAction, Nn as makeViewportWheelPanAction, jn as makeViewportZoomAction, ep as markdownToRuns, j as markerInset, M as markerKeyOf, k as markerRegistry, F as markerSites, f as mat3, Bp as matchesKeyBinding, Ze as meanScale, tp as measureText, np as measureTextBounds, rp as measuredWidth, ni as mergeAlphaFromPrev, ff as mergeContributions, Nc as minimapCenterAction, Pc as minimapPanAction, id as mirrorPose, al as modeDecorationLayer, Xs as modeIn, Zs as modeIs, Qs as modeNot, Vp as modeShortcutSpec, Hp as modeShortcuts, $s as modifierHeld, qu as momentum, tn as moveAction, ec as multiActive, Fl as nestedHitTester, tc as never, Cl as nodeHasFlag, n as normalizeHex, Q as normalizeView, Z as normalizeZoom, nc as not, ip as numericWeight, km as nurbs, tf as oklabToLinearSrgb, nf as oklabToOklch, rf as oklabToSrgbU8, af as oklchDegToHex, of as oklchToOklab, Va as onEmptyCanvas, Mt as opFactoryRegistry, As as openFilePicker, Up as openPointerSession, rc as or, Cf 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, Wp as pastDragThreshold, xl as patchRangeStyle, nu as pathCommandCoordCount, ru as pathContainsPoint, iu as pathContainsPolygon, au as pathContainsRect, ou as pathDistanceToPoint, Lr as pathDivide, Rr as pathExclude, su as pathFromD, Ln as pathInPoseFrame, Rn as pathInWorld, zr as pathIntersect, cu as pathIntersectsPolygon, lu as pathIntersectsRect, Rl as pathOriginProjection, qt as pathPoseDescriptor, uu as pathSignedArea, Br as pathSubtract, In as pathToAnchors, Vr as pathUnion, Pa as pickTopMostHit, Jn as pinchZoomAction, Jc as planPixelRender, ae as planeMap, oe as planeMatrix, se as planeToPlane, du as pointAlongPath, fu as pointInPath, ln as pointInRotatedRect, pl as pointInTextPose, Ko as pointRegionFrame, pu as polygonFromPoints, mu as polylineFromPoints, Wt as poseDescriptorForNode, He as poseRotationOf, oa as prefUnit, qe as pressureToWidth, $e as pxExtent, Zu as rainbowVertexColors, Dl as rangeWeight, $c as rasterToPng, De as rebaseLocalPose, Nt as rebuildOp, Rc as reconcileSpecs, un as rectCorners, ce as rectFromPlane, gs as rectMarkerPath, hu as rectPath, le as rectToPlane, wf as registerCanvasFont, Fi as registerContentHandler, z as registerEffect, Tf as registerFont, Ef as registerFontOutlines, A as registerMarker, Ma as registerNodeShape, Pt as registerOpFactory, b as registerPaintKind, x as registerPaintKindLoader, Ft as registeredOpNames, gu as regularPolygonPath, go as releaseCanvasRenderer, Qc as renderDebugSnapshot, ul as renderLabel, Kc as renderNeeds, Dc as renderSceneToCanvas, Yc as renderSceneToPixels, mn as resizeAction, ap as resolveAlign, a as resolveColor, wm as resolveCursor, Tm as resolveCursorTier, mt as resolveDeviceProfile, sf as resolveEasing, Ei as resolveFillPattern, N as resolveMarkerSize, ms as resolveOverlays, Gp as resolveParams, Di as resolvePatternSpec, ps as resolvePreviews, op as resolveRunFace, sp as resolveRuns, Lf as resolveScreenLength, ad as resolveSkeleton, xr as resolveSpatialReference, T as resolveStrokeWidth, cp as resolveTextStyle, _m as resolveUnit, uc as resolveVisibility, _u as reversePath, o as rgbaToHex, sd 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, vl as runsToDom, lp as runsToMarkdown, up as runsToPlainText, u as sampleGradientStops, Yi as sampleTrack, rs as satisfiesRange, et as scaleDelta, vu as scalePathToBounds, Ro as sceneFromJSON, bt as sceneNodeClientRect, zo as sceneSelectionStore, No as sceneToAdapter, Kp as scopeBindings, qp as scratchKey, tt as screenAngleOf, Ye as screenToWorld, kt as screenTolerance, dp as scriptMetrics, fp 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, wl as setFlagOverRange, Jp as setScratch, Na as shapeCoversPoint, Yu as slewToward, Kn as sliceAction, pp as smallCapsScale, mp as smallCapsScaleFor, hp as smallCapsText, ss as snap, ks as sniffWeaselClipboardText, yu as snipPathByPolyline, mi as solid, Qu as solidVertexColors, cd as solveIk, Yp as specificity, Am as spiro, bu as splitPathByPolyline, xu as splitPathBySegment, Su as splitSubpaths, qi as springPose, $u as springVertexColors, vs as squarePath, cf as srgbFloatToOklab, lf as srgbToHsl, uf as srgbToLinear, df as srgbU8ToOklab, Qe as stableStringify, ed as staggerVertexColors, nt as standoff, Cu as starPath, ct as startThresholdDrag, Rf as strokeDashStyleOf, P as strokeInsets, hi as strokeOf, gi as strokeWith, Sl as styleAtRange, Df as subscribeGlyphReady, Ta as subscribeImageReady, q as subscribeToSources, S as switchGradientKind, Oi as textCommand, ki as textCommandFromPose, Ai as textCommandFromRuns, gp as textLineBoxes, _p as textPoseLayoutInput, Wr as textToPath, Gr as textToPathsByPaint, pe as tiledProject, ri as toHex8, ue as toPlane, vp as toRuns, wu as transformPath, yp as transformRunTexts, Tu as translatePath, Gt as translatePoseViaDescriptor, Pe as translateRectPose, xp as trimPolyline, Ji as tweenPose, td as tweenVertexColors, Tl as unboldPatch, Bt as unionAABB, Vt as unionBounds, Eu as unionBoundsPath, gr as unionOfChildren, Il as unionOfChildrenVia, vm as unitScale, Of as unregisterCanvasFont, kf as unregisterFontOutlines, nm as useAction, rm as useActionsRegistry, im as useActiveToolContext, wr as useAlign, Ku as useAnimatedReflow, Zi as useAnimator, Mu as useArrayAdapter, St as useAutoCenter, Bu as useBooleans, Vu as useBooleansAdapter, rl as useCanvasFocus, we as useCanvasSize, Lu as useClipboardOps, Hu as useCreateOutlinesAdapter, Gi as useDecayLoop, am as useDepRegistry, om as useDepSource, Ce as useDeviceProfile, Ru as useDistribute, Nu as useDragGesture, ot as useDragHandle, Fu as useDragRadial, Pu as useDragRect, st as useDropZone, io as useEllipseTool, oo as useEyedropperTool, sm as useGestureDispatcher, Du 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, Sp as useLatest, Ss as useLayoutArrivals, so as useLineTool, We as useNodeOverlayFrame, cm as useOngoingAction, lm as useOptionalActiveToolContext, um as useOptionalDepRegistry, Ou as usePaintKind, ku 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, ld as useRig, Lc as useScene, Po as useSceneAdapter, Al 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, kl as useTextEdit, eo as useTextTool, na as useTools, Wi as useVelocityTracker, $i as useViewAnimation, ea as useViewAnimationOn, ye as useVisibleRaf, dm as useYoke, bp 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, Af as warmFonts, C as warmPaintKinds, Xc 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, ol as workspaceTintLayer, zn as worldEditToStorage, Fe as worldPoseLookup, Xe as worldToScreen, vt as zoomAt, cc as zoomAtLeast };
314
+ export { sr as ACTION_GLYPHS, mc as ALWAYS, lt as ANCHOR_HIT_BASE_PX, gm as ANGLE_RADIANS, Ia as AREA_SELECT_ID, os as AUTO_ORIGIN_PROJECTION, Jt as AUTO_POSE_DESCRIPTOR, Tp as ActionDisabledReason, em as ActionsProvider, tl as ActionsProviderIfRoot, tm as ActiveToolContextProvider, nm as ActiveToolContextProviderIfRoot, kr as AlignBottomIcon, Ar as AlignCenterXIcon, jr as AlignCenterYIcon, Mr as AlignLeftIcon, Nr as AlignRightIcon, Pr as AlignTopIcon, ha as ArrowIcon, E as BUILTIN_MARKERS, bc as BUILTIN_TOOL_IDS, Yn as BringForwardIcon, Xn as BringToFrontIcon, ft as COARSE_TARGET_SCALE, ls as COMPOSITE_FEATURES, Ep as CONTROL_SELECTOR, nn as CORNER_ANCHORS, Ic as CROSSHAIR_HALO, Cm as CURSOR_ANGLE_STEPS, wm as CURSOR_MAX_CSS_PX, Am as CURVE_REPS, ts as CanvasView, Xi as ColorOverrideRegistry, Zn as CopyIcon, ei as CreateOutlinesIcon, qr as CropIcon, Mo as CursorCoordsHud, Qn as CutIcon, hc as DEFAULT_ALLOWED_CAPABILITIES, he as DEFAULT_ALPHA_DECAY, ge as DEFAULT_ALPHA_MIN, ji as DEFAULT_DEBUG_STROKES, Mi as DEFAULT_DEBUG_THEME, Hf as DEFAULT_DECORATION_METRICS, pt as DEFAULT_DEVICE_PROFILE, ai as DEFAULT_FILL_COLOR, Bl as DEFAULT_FLATTEN_TOLERANCE, xc as DEFAULT_HANDLE_SIZE, Da as DEFAULT_INK, J as DEFAULT_MAX_ZOOM, Y as DEFAULT_MIN_ZOOM, oi as DEFAULT_PALETTE, yo as DEFAULT_ROTATION_HANDLE_DISTANCE, si as DEFAULT_SHAPE_FILL, ci as DEFAULT_STROKE_COLOR, Uf as DEFAULT_TEXT_STYLE, _e as DEFAULT_VELOCITY_DECAY, $a as DRAG_PAN_ID, Dp as DRAG_THRESHOLD_PX, cr as DeleteIcon, rm as DepRegistryProvider, nl as DepRegistryProviderIfRoot, Se as DeviceProfileProvider, Fr as DistributeHorizontalIcon, Ir as DistributeVerticalIcon, Jr as DivideIcon, Ac as DrawCanvas, $n as DuplicateIcon, dd as EASINGS, da as EllipseIcon, Yr as ExcludeIcon, pa as EyedropperIcon, Vc as FALLBACK_FIT_VIEW, us as FEATURE_ACTION_IDS, er as FlipXIcon, tr as FlipYIcon, li as GHOST_STROKE, nr as GroupIcon, ut as HANDLE_BASE_PX, xa as HandIcon, rd as IDENTITY_JOINT, Te as IDENTITY_POSE_COMPOSITION, _m as IMPERIAL_INCHES, fa as ImageIcon, im as InputScope, Xr as IntersectIcon, _n as KIT_SHAPE_KINDS, Ii as KIT_STANDARD_ACTION_IDS, ns as KIT_VERSIONS, Ms as LONG_PRESS_FEEDBACK_ID, Op as LONG_PRESS_MS, la as LassoIcon, ma as LineIcon, Wf as MARKDOWN_RUN_GRAMMAR, vm as METRIC_MM, jc as MINIMAP_CENTER, Mc as MINIMAP_PAN, bl as MIXED, Wc as MinimapCanvas, gc as NEVER, Eo as PAINTED_CURSOR_LAYER_ID, Qo as PATH_ANCHOR_CHROME_ID, Vl as PATH_C, Hl as PATH_CMD_LENGTHS, Ul as PATH_L, Wl as PATH_M, Gl as PATH_Q, Kl as PATH_Z, ym as PIXELS, rr as PasteIcon, ql as PathBuilder, ba as PenIcon, va as PencilIcon, No as PickHud, _r as PointerContextProvider, as as PointerProviderIfRoot, ga as PolygonIcon, ss 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, ua as RectIcon, lr as RedoIcon, ds as SCENE_CANVAS_FEATURES, Gf as SCRIPT_METRICS, La as SELECTION_MOVE_ID, Ra as SELECTION_RESIZE_ID, za as SELECTION_ROTATE_ID, Ba as SELECTION_TRANSFORM_ID, vn as SHAPE_KINDS, Kf as SMALL_CAPS_SCALE, fd as SPRING_PRESETS, w as SPRITE_STRIDE, Nf as STROKE_DASH_RATIOS, jt as SceneArrivalRefused, Sc as SceneCanvas, kc as SceneViewCanvas, ca as SelectIcon, Vo as SelectionContextProvider, Ho as SelectionContextProviderIfRoot, ir as SendBackwardIcon, ar as SendToBackIcon, _a as StarIcon, Zr as SubtractIcon, kl as TEXT_EDIT_FONT_HOLD, fs as TOOL_DRIVEN_ACTION_IDS, ia as TOOL_PREF_KINDS, ya as TextIcon, Hr as TextOutlinesError, hr as UNION_OF_CHILDREN, ur as UndoIcon, or as UngroupIcon, Qr as UnionIcon, Sa as UnknownIcon, e as VERSION, Qi as VIEW_ANIMATION_KEY, ws as WEASEL_CLIPBOARD_MIME, Ts as WEASEL_CLIPBOARD_MIME_WEB, En as WHEEL_ZOOM_STEP, rl as WeaselProvider, am as Yoke, X as ZOOM_FLOOR, cn as aabbCenter, kp as actionBindings, Ls as actionIs, Ap as actionItems, Tt as actionShortcuts, jp as activatesFocusedControl, Sr as alignDeltaFor, Cr as alignTargetBounds, Pf as alignedStrokeRect, Rs as always, zs as and, Gu as animateLifecycle, Wu as animateOnSetPose, Go as annulusSemiAxes, Kr as applyBooleanOp, $r as applyCreateOutlines, Vn as applyOpsTo, xl as applyStyleToRange, gn as areaSelectAction, Va as areaSelectContribution, Mu as arrayAdapter, At as asNodeId, p as asPaint, zt as axisAlignedBounds, Tm as bakeCursor, jm as bezierCubic, Mm as bezierQuadratic, sd as bindRig, id as blendPoses, B as blur, Jl as boundsOfPath, fc as buildChromeCtx, Ni as buildDebugOverlayCommands, Mp as buildDepsFromRequires, _c as buildRuleCtx, Dc as buildSceneViewCommands, Es as buildWeaselClipboardText, qf as cachedLayoutRuns, Tr as canBringForward, Bs as canHover, mf as canQueryLocalFonts, Er as canSendBackward, Vs as capabilityAll, Hs as capabilityIn, Us as capabilityIs, Ws as capabilityNot, pl as caretIndexAt, Nc as centerRootOn, gl as charOffsetToDomPosition, rs as checkRequirements, gs as circlePath, yt as clampView, bn as clearSelectionAction, Np as clientToCanvas, dr as clipboardCopyAction, fr as clipboardCutAction, pr as clipboardPasteAction, Cn as cloneAction, Bu as cloneByAltDrag, Gs as coarsePointer, ll as composeAffordanceLayer, Yl as composePath, Ff as composePatternTransform, Ae as composeRectPose, je as composeRigidPose, So as composeSelectionPose, Ee as composeWorldPose, Hc as computeFitView, xt as computeFitViewport, Uc as computeIndicatorCommand, Vi as computeSliceOps, Dn as computeWheelAction, Ks as cond, no as constrainTo45, If as contrastLineColor, rn as cornerPoint, an as cornerResizeHandles, Fn as countPathAnchors, Io as createArrangeOp, cl as createChildrenLayer, Jo as createCornerResizeAffordance, Pi as createDebugOverlayLayer, xi as createDebugSink, xn as createDeleteOp, Pp as createDepRegistry, Fp as createDispatcher, ju as createHistory, Sn as createInsertOp, Ct as createKeyState, Gc as createLinkedCursorContribution, Ns as createLongPressFeedbackContribution, Ip as createLongPressStore, Jf as createMarkdownRenderer, Kc as createMinimapContribution, Dr as createMoveToIndexOp, Cc as createNodeProperties, Ps as createNodeRouting, Do as createPaintedCursorLayer, Em as createPaintedCursorState, fe as createParallaxLayer, de as createParallaxPlane, $o as createPathAnchorAffordances, xs as createPathEditingOverlayLayer, Rl as createPathLayer, bs as createPenPreviewLayer, vr as createPointerStore, Bc as createPoseFeed, Lo as createPoseOverrides, Jc as createRasterSession, Vf as createReflectable, Ku as createReflowTransition, Or as createReorderOp, Lt as createReparentOp, Yo as createRotationAffordance, Ro as createScene, Co as createSelectionHandlesLayer, wo as createSelectionOutlineLayer, To as createSelectionOverlayLayer, Rt as createSetDataOp, Nl as createSetLayerOp, Pl as createSetLayoutOp, Fl as createSetPathOp, Un as createSetSelectionOp, Ml as createSetTextOp, ve as createSimulation, Yu as createSlew, fl as createTextLayer, wi as createTilePattern, me as createTiledLayer, It as createTransformOp, wn as createVelocityTracker, ne as createViewResolver, te as createViewportLayer, Lc as crosshairRects, hf as cssFamilyName, gf as cssFontFamily, _f as cssFontFamilyLoading, pd as cubicBezierEasing, R as cullDrawCommands, Dm as cursorFor, ui as cycleFill, Zu as cycleVertexColors, Lf as dashForStrokeStyle, Qc as debugSnapshotArgs, Xl as decomposePath, Rf as decomposePatternTransform, Me as decomposeRectPose, Ne as decomposeRigidPose, Yf as decorationMetrics, pn as defaultCommitAdapter, ho as defaultDrawOne, ul as defaultLabelTextRenderer, wc as defaultNodeProperties, Fs as defaultNodeRouting, go as defaultPaintBounds, uc as defaultVisibilityRules, ta as defineTool, Le as definesFrame, Lp as deleteScratch, H as depsUnchanged, re as deriveParallaxView, Re as derivedDepOf, ze as derivedPose, vc as describeRule, Hn as dispatchApplyBatch, _i as dlog, Be as documentPose, _l as domPositionToCharOffset, vl as domToRuns, eo as dragPanContribution, U as drawLayers, W as drawOneLayer, vi as dwarn, md as easeIn, hd as easeInBack, gd as easeInBounce, _d as easeInCirc, vd as easeInCubic, yd as easeInElastic, bd as easeInExpo, xd as easeInOut, Sd as easeInOutBack, Cd as easeInOutBounce, wd as easeInOutCirc, Td as easeInOutCubic, Ed as easeInOutElastic, Dd as easeInOutExpo, Od as easeInOutQuad, kd as easeInOutQuart, Ad as easeInOutQuint, jd as easeInOutSine, Md as easeInQuad, Nd as easeInQuart, Pd as easeInQuint, Fd as easeInSine, Id as easeOut, Ld as easeOutBack, Rd as easeOutBounce, zd as easeOutCirc, Bd as easeOutCubic, Vd as easeOutElastic, Hd as easeOutExpo, Ud as easeOutQuad, Wd as easeOutQuart, Gd as easeOutQuint, Kd as easeOutSine, Bn as editAnchorsAction, Zt as editingLayer, Ve as effectivePose, Dl as effectiveRangeStyle, Zl as ellipsePath, Ds as embedWeaselMetadataInSvg, vf as enableLocalFontOutlines, mr as enterTextEditAction, Xo as enumerateAnchors, yc as evaluate, Rp as evaluateEnabled, Os as extractWeaselClipboardFromSvg, Si as fillInPoseFrame, Ci as fillToBoundsFrame, Oa as findNodeShape, ka as findShapeBounds, Aa as findShapeInk, ja as findShapeSilhouette, hl as fitTextPose, ht as fitToBounds, _t as fitViewToBounds, gt as fitZoom, on as fixedCornerOf, Ql as flattenCubic, $l as flattenCubicWithArcLen, ps as flattenPreviews, eu as flattenQuadratic, tu as flattenQuadraticWithArcLen, qs as focused, yf as fontOutlineRegistry, bf as fontRegistry, Xf as fontString, Ge as forEachCoalesced, bm as formatUnit, I as frameRect, ie as fromPlane, al as gateLayer, Dt as gesturePlaneReader, Ot as gestureViewReader, Js as gesturing, ti as getAlpha01, Ca as getImageBitmap, D as getMarker, Ma as getNodeShapes, m as getPaintKind, zp as getScratch, Ke as getStylusData, s as gradientForBounds, c as gradientGeometry, xf as hasFontOutlines, qd as hexToOklchDeg, t as hexToRgba, Bp as historyKey, Ko as hitAffordanceRegions, Lu as hitAnchor, sn as hitCornerHandle, bo as hitRotationHandle, ko as hostAnchorCss, Ao as hostAnchorRect, Ys as hovering, Xs as hoveringSelected, Jd as hslToSrgb, wa as imageStatus, Qt as inPlane, Tc as inferredNodeProperties, Is as inferredNodeRouting, yn as insertAction, $t as insertLayer, es as insertPreviewExtent, Yd as interpolateSrgb, Ki as interpolateView, Zf as isBoldWeight, aa as isBuiltinToolPref, Sf as isCanvasFont, yi as isDebugEnabled, Vp as isEditableTarget, l as isGradientFill, Hp as isInControlWithin, G as isLayerPainted, K as isLayerVisible, h as isPaintKindKnown, Yt as isPathLike, Ti as isPatternSpec, Ie as isPlainObject, Xt as isRectPose, Qf as isSmallCapsLetter, Ta as isVectorImageSrc, Et as keySpecShortcut, Gn as lassoSelectAction, Ss as layoutArrivalHandler, $f as layoutMarkdown, ep as layoutRuns, tp as layoutTextPose, Xd as lerpColorArray, Zd as lerpOklab, Qd as lerpOklch, nu as linePath, $d as linear, ef as linearSrgbToOklab, tf as linearToSrgb, Cf as listFontOutlines, g as listGradientKinds, O as listMarkers, _ as listPaintKinds, Up as liveScope, wf as loadFontOutlines, Ur as loadTextOutlines, qn as makePinchZoomAction, Nn as makeViewportWheelPanAction, jn as makeViewportZoomAction, np as markdownToRuns, j as markerInset, M as markerKeyOf, k as markerRegistry, F as markerSites, f as mat3, Wp as matchesKeyBinding, Ze as meanScale, rp as measureText, ip as measureTextBounds, ap as measuredWidth, ni as mergeAlphaFromPrev, pf as mergeContributions, Pc as minimapCenterAction, Fc as minimapPanAction, ad as mirrorPose, ol as modeDecorationLayer, Zs as modeIn, Qs as modeIs, $s as modeNot, Gp as modeShortcutSpec, Kp as modeShortcuts, ec as modifierHeld, Ju as momentum, tn as moveAction, tc as multiActive, Il as nestedHitTester, nc as never, wl as nodeHasFlag, n as normalizeHex, Q as normalizeView, Z as normalizeZoom, rc as not, op as numericWeight, Nm as nurbs, nf as oklabToLinearSrgb, rf as oklabToOklch, af as oklabToSrgbU8, of as oklchDegToHex, sf as oklchToOklab, Ha as onEmptyCanvas, Mt as opFactoryRegistry, js as openFilePicker, qp as openPointerSession, ic as or, Tf as outlineStatus, di as paintAlpha, v as paintKindOf, y as paintKindRegistry, fi as paintWithAlpha, pi as paintWithColor, oa as pairRowsOf, r as parseColor, i as parseColorToRgba255, bi as parseDebugFlags, ks as parseWeaselClipboardText, Jp as pastDragThreshold, Sl as patchRangeStyle, ru as pathCommandCoordCount, iu as pathContainsPoint, au as pathContainsPolygon, ou as pathContainsRect, su as pathDistanceToPoint, Lr as pathDivide, Rr as pathExclude, cu as pathFromD, Ln as pathInPoseFrame, Rn as pathInWorld, zr as pathIntersect, lu as pathIntersectsPolygon, uu as pathIntersectsRect, zl as pathOriginProjection, qt as pathPoseDescriptor, du as pathSignedArea, Br as pathSubtract, In as pathToAnchors, Vr as pathUnion, Fa as pickTopMostHit, Jn as pinchZoomAction, Yc as planPixelRender, ae as planeMap, oe as planeMatrix, se as planeToPlane, fu as pointAlongPath, pu as pointInPath, ln as pointInRotatedRect, ml as pointInTextPose, qo as pointRegionFrame, mu as polygonFromPoints, hu as polylineFromPoints, Wt as poseDescriptorForNode, He as poseRotationOf, sa as prefUnit, qe as pressureToWidth, $e as pxExtent, Qu as rainbowVertexColors, Ol as rangeWeight, el as rasterToPng, De as rebaseLocalPose, Nt as rebuildOp, zc as reconcileSpecs, un as rectCorners, ce as rectFromPlane, _s as rectMarkerPath, gu as rectPath, le as rectToPlane, Ef as registerCanvasFont, Fi as registerContentHandler, z as registerEffect, Df as registerFont, Of as registerFontOutlines, A as registerMarker, Na as registerNodeShape, Pt as registerOpFactory, b as registerPaintKind, x as registerPaintKindLoader, Ft as registeredOpNames, _u as regularPolygonPath, _o as releaseCanvasRenderer, $c as renderDebugSnapshot, dl as renderLabel, qc as renderNeeds, Oc as renderSceneToCanvas, Xc as renderSceneToPixels, mn as resizeAction, sp as resolveAlign, a as resolveColor, Om as resolveCursor, km as resolveCursorTier, mt as resolveDeviceProfile, cf as resolveEasing, Ei as resolveFillPattern, N as resolveMarkerSize, hs as resolveOverlays, Yp as resolveParams, Di as resolvePatternSpec, ms as resolvePreviews, cp as resolveRunFace, lp as resolveRuns, zf as resolveScreenLength, od as resolveSkeleton, xr as resolveSpatialReference, T as resolveStrokeWidth, up as resolveTextStyle, xm as resolveUnit, dc as resolveVisibility, vu as reversePath, o as rgbaToHex, cd as rigidRigApply, hn as rotateAction, Oo as rotateAroundAABBCenter, Ue as rotatePathAround, dn as rotatePoint, fn as rotatedRectCorners, Ec as rotationDegreesUnit, xo as rotationHandle, vs as roundRectPath, yl as runsToDom, dp as runsToMarkdown, fp as runsToPlainText, u as sampleGradientStops, Yi as sampleTrack, is as satisfiesRange, et as scaleDelta, yu as scalePathToBounds, zo as sceneFromJSON, bt as sceneNodeClientRect, Bo as sceneSelectionStore, Po as sceneToAdapter, Xp as scopeBindings, Zp as scratchKey, tt as screenAngleOf, Ye as screenToWorld, kt as screenTolerance, pp as scriptMetrics, mp as scriptMetricsFor, Wn as selectFromLasso, ac as selectionAtLeast, oc as selectionEmpty, sc as selectionIs, en as selectionLayer, Ua as selectionMoveBindings, Wa as selectionMoveContribution, Ga as selectionResizeBindings, Ka as selectionResizeContribution, qa as selectionRotateBindings, Ja as selectionRotateContribution, Ya as selectionTransformBindings, Xa as selectionTransformContribution, Tl as setFlagOverRange, Qp as setScratch, Pa as shapeCoversPoint, Xu as slewToward, Kn as sliceAction, hp as smallCapsScale, gp as smallCapsScaleFor, _p as smallCapsText, cs as snap, As as sniffWeaselClipboardText, bu as snipPathByPolyline, mi as solid, $u as solidVertexColors, ld as solveIk, $p as specificity, Pm as spiro, xu as splitPathByPolyline, Su as splitPathBySegment, Cu as splitSubpaths, qi as springPose, ed as springVertexColors, ys as squarePath, lf as srgbFloatToOklab, uf as srgbToHsl, df as srgbToLinear, ff as srgbU8ToOklab, Qe as stableStringify, td as staggerVertexColors, nt as standoff, wu as starPath, ct as startThresholdDrag, Bf as strokeDashStyleOf, P as strokeInsets, hi as strokeOf, gi as strokeWith, Cl as styleAtRange, kf as subscribeGlyphReady, Ea as subscribeImageReady, q as subscribeToSources, S as switchGradientKind, Oi as textCommand, ki as textCommandFromPose, Ai as textCommandFromRuns, vp as textLineBoxes, yp as textPoseLayoutInput, Wr as textToPath, Gr as textToPathsByPaint, pe as tiledProject, ri as toHex8, ue as toPlane, bp as toRuns, Tu as transformPath, xp as transformRunTexts, Eu as translatePath, Gt as translatePoseViaDescriptor, Pe as translateRectPose, Cp as trimPolyline, Ji as tweenPose, nd as tweenVertexColors, El as unboldPatch, Bt as unionAABB, Vt as unionBounds, Du as unionBoundsPath, gr as unionOfChildren, Ll as unionOfChildrenVia, Sm as unitScale, Af as unregisterCanvasFont, jf as unregisterFontOutlines, om as useAction, sm as useActionsRegistry, cm as useActiveToolContext, wr as useAlign, qu as useAnimatedReflow, Zi as useAnimator, Nu as useArrayAdapter, St as useAutoCenter, Vu as useBooleans, Hu as useBooleansAdapter, il as useCanvasFocus, we as useCanvasSize, Ru as useClipboardOps, Uu as useCreateOutlinesAdapter, Gi as useDecayLoop, lm as useDepRegistry, um as useDepSource, Ce as useDeviceProfile, zu as useDistribute, Pu as useDragGesture, ot as useDragHandle, Iu as useDragRadial, Fu as useDragRect, st as useDropZone, ao as useEllipseTool, so as useEyedropperTool, dm as useGestureDispatcher, Ou as useGradientKinds, Qa as useHandTool, at as useHandleDrag, jo as useHostAnchor, pc as useHoverTracking, oo as useImageTool, wt as useKeyState, ra as useKeybindings, lo as useLassoTool, wp as useLatest, Cs as useLayoutArrivals, co as useLineTool, We as useNodeOverlayFrame, fm as useOngoingAction, pm as useOptionalActiveToolContext, mm as useOptionalDepRegistry, ku as usePaintKind, Au as usePaintKinds, ro as usePenTool, po as usePencilTool, yr as usePointerContext, br as usePointerPosition, Je as usePointerStylus, uo as usePolygonTool, Bi as usePoseCompositionDepSource, zi as usePoseDescriptorDepSource, xe as usePoseRun, Uo as usePublishSelection, io as useRectTool, Ri as useResizePolicy, ud as useRig, Rc as useScene, Fo as useSceneAdapter, jl as useSceneTextEdit, Za as useSelectTool, vo as useSelection, Wo as useSelectionContext, be as useSimulation, Hi as useSliceDep, Ui as useSliceDepSource, mo as useSliceTool, Li as useStandardActions, fo as useStarTool, Al as useTextEdit, to as useTextTool, na as useTools, Wi as useVelocityTracker, $i as useViewAnimation, ea as useViewAnimationOn, ye as useVisibleRaf, hm as useYoke, Sp 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, Mf as warmFonts, C as warmPaintKinds, Zc as warmRender, On as wheelPan, kn as wheelZoom, An as wheelZoomFactor, cc as when, ii as withAlpha01, Zo as withCoord, d as withGradientKind, rt as withinPxBox, it as withinPxRadius, sl as workspaceTintLayer, zn as worldEditToStorage, Fe as worldPoseLookup, Xe as worldToScreen, vt as zoomAt, lc as zoomAtLeast };
@@ -42,14 +42,24 @@ var s = {
42
42
  description: `${e} for the characters in the range.`,
43
43
  icon: t,
44
44
  control: "toggle",
45
- pair: "Character style",
46
45
  default: !1
47
46
  });
48
47
  o.options = {
49
48
  name: "Text",
50
49
  description: "Character styling for the selected range.",
51
50
  children: {
52
- bold: c("Bold", "bold"),
51
+ bold: {
52
+ ...c("Bold", "bold"),
53
+ pair: {
54
+ with: [
55
+ "italic",
56
+ "underline",
57
+ "strikethrough",
58
+ "overline"
59
+ ],
60
+ label: "Character style"
61
+ }
62
+ },
53
63
  italic: c("Italic", "italic"),
54
64
  underline: c("Underline", "underline"),
55
65
  strikethrough: c("Strikethrough", "strikethrough"),
@@ -1 +1 @@
1
- {"version":3,"file":"useTextTool.js","names":["TextIcon","PRESENTATION","createElement","useTextTool","options","useMemo","defineTool","insertBindingBehaviors","behaviors","PERCENT","v","flag","name"],"sources":["../../../../src/tools/builtin/text/useTextTool.ts"],"sourcesContent":["import { useMemo, createElement } from 'react';\nimport { defineTool } from '../../overlayBinding';\nimport type { Tool } from '../../overlayBinding';\nimport { insertBindingBehaviors, type InsertToolOptions } from '../shared/insertToolOptions';\nimport type { ToolPrefGroup } from '../../prefs';\nimport { TextIcon } from '../../../icons';\n\nconst PRESENTATION = {\n label: 'Text',\n icon: createElement(TextIcon),\n group: 'type',\n};\n\n/** Text tool. Drag-rect insertion is owned end-to-end by the dispatcher's\n * `insertAction` (kind: `'text'`); click-on-selected-text-node enters edit\n * mode via the `enterTextEdit` action.\n *\n * Consumers must register both the `insert` dep (e.g. through\n * `SceneCanvas`'s `useInsertDepSource`) and the `textEdit` dep\n * (`enterTextEditAction`'s contract — see\n * `src/interactions/actions/defaults/enterTextEdit.ts`). Custom node\n * factories and hit gating belong on those deps, not on the tool. */\nexport function useTextTool(options: InsertToolOptions = {}): Tool<undefined> {\n const { behaviors } = options;\n return useMemo<Tool<undefined>>(\n () =>\n defineTool<undefined>({\n id: 'text',\n capabilities: ['creates-text'],\n hookName: 'useTextTool',\n cursor: 'text',\n presentation: PRESENTATION,\n bindings: [\n { spec: { kind: 'drag' }, actionId: 'insert', opts: { params: { kind: 'text' }, ...insertBindingBehaviors(behaviors) } },\n { spec: { kind: 'click', target: 'selected-body' }, actionId: 'enterTextEdit' },\n ],\n }),\n [behaviors],\n );\n}\n\n/** Both script primitives are fractions of the inherited size, so both read\n * as percentages. The step is a tenth of a point because the field snaps the\n * *displayed* value to it, and a coarser one would render a superscript's\n * 58.3% as 60% and commit that on the next edit. */\nconst PERCENT = {\n toDisplay: (v: number) => Math.round(v * 1000) / 10,\n // Rounded rather than divided: 33.3 / 100 is 0.33299999999999996, and that\n // dust would be written into the document and shown back on the next read.\n fromDisplay: (v: number) => Math.round(v * 1000) / 100_000,\n suffix: '%',\n};\n\n/** A run flag: on or off per character, drawn as one segment of a bar. */\nconst flag = (name: string, icon: string) =>\n ({\n kind: 'boolean',\n name,\n description: `${name} for the characters in the range.`,\n icon,\n control: 'toggle',\n pair: 'Character style',\n default: false,\n }) as const;\n\n/**\n * What the tool offers while a caret range is active — the character half of\n * text styling, against the node-level Character group a selection shows.\n *\n * Keyed by {@link StyledRun} field, so a host reads values out of a\n * `RangeStyle` and writes a `RunStylePatch` back with no name mapping of its\n * own. `script` is a preset over `baselineShift` and `fontScale`, so all three\n * are here and naming either primitive overrides that half.\n */\nuseTextTool.options = {\n name: 'Text',\n description: 'Character styling for the selected range.',\n children: {\n bold: flag('Bold', 'bold'),\n italic: flag('Italic', 'italic'),\n underline: flag('Underline', 'underline'),\n strikethrough: flag('Strikethrough', 'strikethrough'),\n overline: flag('Overline', 'overline'),\n // Clearable: the two values are exclusive *and* absent is a third state,\n // so clicking the lit segment turns the script off.\n script: {\n kind: 'enum',\n name: 'Script',\n description: 'Raise or lower the range off the baseline, at a smaller size.',\n control: 'toggle',\n clearable: true,\n default: undefined,\n options: [\n { value: 'super', label: 'Superscript', icon: 'superscript' },\n { value: 'sub', label: 'Subscript', icon: 'subscript' },\n ],\n },\n textTransform: {\n kind: 'enum',\n name: 'Case',\n description: 'Draw the range in capitals, lowercase or title case. The text itself is unchanged.',\n control: 'toggle',\n default: 'none',\n options: [{ value: 'none', label: 'None', short: ['–'] }, { value: 'uppercase', label: 'Uppercase', short: ['AA'] }, { value: 'lowercase', label: 'Lowercase', short: ['aa'] }, { value: 'capitalize', label: 'Capitalize', short: ['Aa'] }],\n },\n fontVariantCaps: {\n kind: 'enum',\n name: 'Small caps',\n description: 'Draw lowercase letters in the range as smaller capitals. The text itself is unchanged.',\n control: 'toggle',\n default: 'normal',\n options: [{ value: 'normal', label: 'Normal', short: ['–'] }, { value: 'small-caps', label: 'Small caps', short: ['Sc'] }],\n },\n fontFamily: {\n kind: 'font-family',\n name: 'Font',\n description: 'Typeface for the range.',\n default: undefined,\n },\n // Listed from the weights the range's family has registered. Bold is a\n // preset over it: toggling Bold clears it, picking one clears Bold.\n fontWeight: {\n kind: 'font-weight',\n name: 'Weight',\n description: 'Weight of the range, from the faces its family has.',\n default: undefined,\n },\n fontSize: { kind: 'number', name: 'Size', description: 'Type size.', min: 1, step: 1, default: 16 },\n letterSpacing: {\n kind: 'number',\n name: 'Tracking',\n // The typographic term, short enough for a strip; `name` stays the\n // accessible one.\n short: ['VA'],\n description: 'Space added between characters.',\n step: 0.1,\n default: 0,\n },\n baselineShift: {\n kind: 'number',\n name: 'Baseline shift',\n short: ['Shift'],\n description: 'Raise or lower the range, in ems of the inherited size.',\n step: 0.001,\n unit: PERCENT,\n default: 0,\n },\n fontScale: {\n kind: 'number',\n name: 'Scale',\n description: 'Size of the range against the inherited size.',\n min: 0.01,\n step: 0.001,\n unit: PERCENT,\n default: 1,\n },\n fill: {\n kind: 'color',\n name: 'Color',\n description: 'Ink for the range.',\n alpha: true,\n default: '#000000',\n },\n },\n} satisfies ToolPrefGroup;\n"],"mappings":"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"}
1
+ {"version":3,"file":"useTextTool.js","names":["TextIcon","PRESENTATION","createElement","useTextTool","options","useMemo","defineTool","insertBindingBehaviors","behaviors","PERCENT","v","flag","name"],"sources":["../../../../src/tools/builtin/text/useTextTool.ts"],"sourcesContent":["import { useMemo, createElement } from 'react';\nimport { defineTool } from '../../overlayBinding';\nimport type { Tool } from '../../overlayBinding';\nimport { insertBindingBehaviors, type InsertToolOptions } from '../shared/insertToolOptions';\nimport type { ToolPrefGroup } from '../../prefs';\nimport { TextIcon } from '../../../icons';\n\nconst PRESENTATION = {\n label: 'Text',\n icon: createElement(TextIcon),\n group: 'type',\n};\n\n/** Text tool. Drag-rect insertion is owned end-to-end by the dispatcher's\n * `insertAction` (kind: `'text'`); click-on-selected-text-node enters edit\n * mode via the `enterTextEdit` action.\n *\n * Consumers must register both the `insert` dep (e.g. through\n * `SceneCanvas`'s `useInsertDepSource`) and the `textEdit` dep\n * (`enterTextEditAction`'s contract — see\n * `src/interactions/actions/defaults/enterTextEdit.ts`). Custom node\n * factories and hit gating belong on those deps, not on the tool. */\nexport function useTextTool(options: InsertToolOptions = {}): Tool<undefined> {\n const { behaviors } = options;\n return useMemo<Tool<undefined>>(\n () =>\n defineTool<undefined>({\n id: 'text',\n capabilities: ['creates-text'],\n hookName: 'useTextTool',\n cursor: 'text',\n presentation: PRESENTATION,\n bindings: [\n { spec: { kind: 'drag' }, actionId: 'insert', opts: { params: { kind: 'text' }, ...insertBindingBehaviors(behaviors) } },\n { spec: { kind: 'click', target: 'selected-body' }, actionId: 'enterTextEdit' },\n ],\n }),\n [behaviors],\n );\n}\n\n/** Both script primitives are fractions of the inherited size, so both read\n * as percentages. The step is a tenth of a point because the field snaps the\n * *displayed* value to it, and a coarser one would render a superscript's\n * 58.3% as 60% and commit that on the next edit. */\nconst PERCENT = {\n toDisplay: (v: number) => Math.round(v * 1000) / 10,\n // Rounded rather than divided: 33.3 / 100 is 0.33299999999999996, and that\n // dust would be written into the document and shown back on the next read.\n fromDisplay: (v: number) => Math.round(v * 1000) / 100_000,\n suffix: '%',\n};\n\n/** A run flag: on or off per character, drawn as one segment of a bar. */\nconst flag = (name: string, icon: string) =>\n ({\n kind: 'boolean',\n name,\n description: `${name} for the characters in the range.`,\n icon,\n control: 'toggle',\n default: false,\n }) as const;\n\n/**\n * What the tool offers while a caret range is active — the character half of\n * text styling, against the node-level Character group a selection shows.\n *\n * Keyed by {@link StyledRun} field, so a host reads values out of a\n * `RangeStyle` and writes a `RunStylePatch` back with no name mapping of its\n * own. `script` is a preset over `baselineShift` and `fontScale`, so all three\n * are here and naming either primitive overrides that half.\n */\nuseTextTool.options = {\n name: 'Text',\n description: 'Character styling for the selected range.',\n children: {\n bold: {\n ...flag('Bold', 'bold'),\n pair: { with: ['italic', 'underline', 'strikethrough', 'overline'], label: 'Character style' },\n },\n italic: flag('Italic', 'italic'),\n underline: flag('Underline', 'underline'),\n strikethrough: flag('Strikethrough', 'strikethrough'),\n overline: flag('Overline', 'overline'),\n // Clearable: the two values are exclusive *and* absent is a third state,\n // so clicking the lit segment turns the script off.\n script: {\n kind: 'enum',\n name: 'Script',\n description: 'Raise or lower the range off the baseline, at a smaller size.',\n control: 'toggle',\n clearable: true,\n default: undefined,\n options: [\n { value: 'super', label: 'Superscript', icon: 'superscript' },\n { value: 'sub', label: 'Subscript', icon: 'subscript' },\n ],\n },\n textTransform: {\n kind: 'enum',\n name: 'Case',\n description: 'Draw the range in capitals, lowercase or title case. The text itself is unchanged.',\n control: 'toggle',\n default: 'none',\n options: [{ value: 'none', label: 'None', short: ['–'] }, { value: 'uppercase', label: 'Uppercase', short: ['AA'] }, { value: 'lowercase', label: 'Lowercase', short: ['aa'] }, { value: 'capitalize', label: 'Capitalize', short: ['Aa'] }],\n },\n fontVariantCaps: {\n kind: 'enum',\n name: 'Small caps',\n description: 'Draw lowercase letters in the range as smaller capitals. The text itself is unchanged.',\n control: 'toggle',\n default: 'normal',\n options: [{ value: 'normal', label: 'Normal', short: ['–'] }, { value: 'small-caps', label: 'Small caps', short: ['Sc'] }],\n },\n fontFamily: {\n kind: 'font-family',\n name: 'Font',\n description: 'Typeface for the range.',\n default: undefined,\n },\n // Listed from the weights the range's family has registered. Bold is a\n // preset over it: toggling Bold clears it, picking one clears Bold.\n fontWeight: {\n kind: 'font-weight',\n name: 'Weight',\n description: 'Weight of the range, from the faces its family has.',\n default: undefined,\n },\n fontSize: { kind: 'number', name: 'Size', description: 'Type size.', min: 1, step: 1, default: 16 },\n letterSpacing: {\n kind: 'number',\n name: 'Tracking',\n // The typographic term, short enough for a strip; `name` stays the\n // accessible one.\n short: ['VA'],\n description: 'Space added between characters.',\n step: 0.1,\n default: 0,\n },\n baselineShift: {\n kind: 'number',\n name: 'Baseline shift',\n short: ['Shift'],\n description: 'Raise or lower the range, in ems of the inherited size.',\n step: 0.001,\n unit: PERCENT,\n default: 0,\n },\n fontScale: {\n kind: 'number',\n name: 'Scale',\n description: 'Size of the range against the inherited size.',\n min: 0.01,\n step: 0.001,\n unit: PERCENT,\n default: 1,\n },\n fill: {\n kind: 'color',\n name: 'Color',\n description: 'Ink for the range.',\n alpha: true,\n default: '#000000',\n },\n },\n} satisfies ToolPrefGroup;\n"],"mappings":"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"}
@@ -36,12 +36,27 @@ var r = {
36
36
  enum: !0,
37
37
  color: !0,
38
38
  paint: !0,
39
- object: !0
39
+ object: !0,
40
+ field: !0
40
41
  };
41
42
  function i(e) {
43
+ let t = /* @__PURE__ */ new Map();
44
+ for (let [n, r] of e) {
45
+ if (!r.pair || t.has(n)) continue;
46
+ let e = {
47
+ key: n,
48
+ label: r.pair.label ?? r.name
49
+ };
50
+ t.set(n, e);
51
+ let i = typeof r.pair.with == "string" ? [r.pair.with] : r.pair.with;
52
+ for (let n of i) t.has(n) || t.set(n, e);
53
+ }
54
+ return t;
55
+ }
56
+ function a(e) {
42
57
  return Object.hasOwn(r, e.kind);
43
58
  }
44
59
  //#endregion
45
- export { r as TOOL_PREF_KINDS, i as isBuiltinToolPref, n as prefUnit };
60
+ export { r as TOOL_PREF_KINDS, a as isBuiltinToolPref, i as pairRowsOf, n as prefUnit };
46
61
 
47
62
  //# sourceMappingURL=prefs.js.map