@pixerate/editor 0.136.0 → 0.137.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/animation-editor/index.cjs +60 -55
- package/dist/animation-editor/index.cjs.map +1 -1
- package/dist/animation-editor/index.d.cts +4 -4
- package/dist/animation-editor/index.d.ts +4 -4
- package/dist/animation-editor/index.js +7 -2
- package/dist/animation-editor/index.js.map +1 -1
- package/dist/{bezier-CdccFsF8.d.cts → bezier-CZ2AhjID.d.cts} +1 -1
- package/dist/{bezier-DG9qNZQV.d.ts → bezier-Dywv3Bw8.d.ts} +1 -1
- package/dist/blending-D7jCmjO6.d.cts +1026 -0
- package/dist/blending-NgF3qo3d.d.ts +1026 -0
- package/dist/brushes-CnvZSYYU.d.cts +744 -0
- package/dist/brushes-DJmUbIgz.d.ts +744 -0
- package/dist/{brushstrokeRender-SII6MG4R.js → brushstrokeRender-2FAXA3XC.js} +13 -16
- package/dist/{brushstrokeRender-SII6MG4R.js.map → brushstrokeRender-2FAXA3XC.js.map} +1 -1
- package/dist/{brushstrokeRender-JNHVEUFG.cjs → brushstrokeRender-IMFY3FF6.cjs} +16 -19
- package/dist/brushstrokeRender-IMFY3FF6.cjs.map +1 -0
- package/dist/canvas/index.cjs +10 -10
- package/dist/canvas/index.cjs.map +1 -1
- package/dist/canvas/index.d.cts +7 -7
- package/dist/canvas/index.d.ts +7 -7
- package/dist/canvas/index.js +4 -4
- package/dist/{chunk-W4LNKTHT.cjs → chunk-2XS6LTUP.cjs} +63 -63
- package/dist/{chunk-W4LNKTHT.cjs.map → chunk-2XS6LTUP.cjs.map} +1 -1
- package/dist/{chunk-MAHQC3SK.js → chunk-3D77LOBM.js} +222 -135
- package/dist/chunk-3D77LOBM.js.map +1 -0
- package/dist/{chunk-BR7EKQUP.js → chunk-3G6J7UFV.js} +322 -2
- package/dist/chunk-3G6J7UFV.js.map +1 -0
- package/dist/{chunk-62XUO5LB.js → chunk-3X6IAJUQ.js} +2 -2
- package/dist/{chunk-EM3FMJWE.js → chunk-5FSRTP6E.js} +320 -3
- package/dist/chunk-5FSRTP6E.js.map +1 -0
- package/dist/{chunk-2R3UW57U.cjs → chunk-5OOIUXNJ.cjs} +333 -246
- package/dist/chunk-5OOIUXNJ.cjs.map +1 -0
- package/dist/{chunk-KZXLZCQ7.js → chunk-6S6362D2.js} +2 -2
- package/dist/{chunk-24ATT2PE.cjs → chunk-AEAAN4AD.cjs} +120 -120
- package/dist/{chunk-24ATT2PE.cjs.map → chunk-AEAAN4AD.cjs.map} +1 -1
- package/dist/{chunk-SVYE5HIM.js → chunk-EQQMGO42.js} +2 -2
- package/dist/{chunk-FHPVDTI2.cjs → chunk-F2Y4E4GU.cjs} +22 -22
- package/dist/{chunk-FHPVDTI2.cjs.map → chunk-F2Y4E4GU.cjs.map} +1 -1
- package/dist/{chunk-UYQUPUR6.js → chunk-HUO3TI4C.js} +3 -3
- package/dist/{chunk-DDSO4HS7.cjs → chunk-KEENUAFN.cjs} +2 -2
- package/dist/{chunk-DDSO4HS7.cjs.map → chunk-KEENUAFN.cjs.map} +1 -1
- package/dist/{chunk-2HC4DRF4.js → chunk-LLFHCSU2.js} +2 -2
- package/dist/{chunk-J5BA3BQ6.cjs → chunk-O7LUD7MH.cjs} +323 -3
- package/dist/chunk-O7LUD7MH.cjs.map +1 -0
- package/dist/{chunk-ILYFOJUN.js → chunk-OIBIRXRG.js} +3 -3
- package/dist/{chunk-B2CUCM7Y.cjs → chunk-PRSRYHQD.cjs} +36 -36
- package/dist/{chunk-B2CUCM7Y.cjs.map → chunk-PRSRYHQD.cjs.map} +1 -1
- package/dist/{chunk-6GFRKLLS.cjs → chunk-QBWEH3IM.cjs} +429 -112
- package/dist/chunk-QBWEH3IM.cjs.map +1 -0
- package/dist/{chunk-6QQR4LKE.js → chunk-SYT2TLQF.js} +35 -37
- package/dist/{chunk-6QQR4LKE.js.map → chunk-SYT2TLQF.js.map} +1 -1
- package/dist/{chunk-YT3JL7YM.cjs → chunk-TLCTTQFF.cjs} +53 -53
- package/dist/{chunk-YT3JL7YM.cjs.map → chunk-TLCTTQFF.cjs.map} +1 -1
- package/dist/{chunk-JLGNZMUV.cjs → chunk-XN2NBLV5.cjs} +313 -315
- package/dist/chunk-XN2NBLV5.cjs.map +1 -0
- package/dist/effects/index.d.cts +4 -4
- package/dist/effects/index.d.ts +4 -4
- package/dist/{export-Ds7zgGD8.d.ts → export-41rL6Cne.d.ts} +1 -1
- package/dist/{export-BOheWw2R.d.cts → export-CyJdfP_Z.d.cts} +5 -4
- package/dist/{export-CEYeRQXH.d.cts → export-D9mXp05Q.d.cts} +1 -1
- package/dist/{export-ByKKIA2S.d.ts → export-DwnZ_hvQ.d.ts} +5 -4
- package/dist/{helpers--ns3W2D7.d.ts → helpers-C-RgeyvH.d.ts} +18 -7
- package/dist/{helpers-BVkU4oUi.d.cts → helpers-v6GMazzg.d.cts} +18 -7
- package/dist/image-editor/index.cjs +984 -987
- package/dist/image-editor/index.cjs.map +1 -1
- package/dist/image-editor/index.d.cts +12 -11
- package/dist/image-editor/index.d.ts +12 -11
- package/dist/image-editor/index.js +92 -95
- package/dist/image-editor/index.js.map +1 -1
- package/dist/{opentype-yi-Kz4ND.d.cts → opentype-KR_jj6b_.d.cts} +1 -1
- package/dist/{opentype-DfoVYgmG.d.ts → opentype-a1KAW-qs.d.ts} +1 -1
- package/dist/paint/index.cjs +5 -8
- package/dist/paint/index.cjs.map +1 -1
- package/dist/paint/index.d.cts +4 -2
- package/dist/paint/index.d.ts +4 -2
- package/dist/paint/index.js +15 -18
- package/dist/paint-editor/index.cjs +403 -404
- package/dist/paint-editor/index.cjs.map +1 -1
- package/dist/paint-editor/index.d.cts +12 -748
- package/dist/paint-editor/index.d.ts +12 -748
- package/dist/paint-editor/index.js +77 -78
- package/dist/paint-editor/index.js.map +1 -1
- package/dist/{pathfinder-7JkMwYvC.d.cts → pathfinder-BHS4vQNm.d.cts} +1 -1
- package/dist/{pathfinder-GM3UWdBZ.d.ts → pathfinder-BVvTIBMo.d.ts} +1 -1
- package/dist/{pool-CkTxlLMC.d.ts → pool-CZQOrSXZ.d.ts} +1 -1
- package/dist/{pool-04qp8iW4.d.cts → pool-FjZZmZ80.d.cts} +1 -1
- package/dist/rand-8xbUb6ur.d.ts +1118 -0
- package/dist/rand-Cw9VLrVC.d.cts +1118 -0
- package/dist/raster/index.cjs +17 -19
- package/dist/raster/index.cjs.map +1 -1
- package/dist/raster/index.js +9 -11
- package/dist/raster/index.js.map +1 -1
- package/dist/{svg-rV6_HPmn.d.ts → svg-CSz3mzkw.d.ts} +2 -2
- package/dist/{svg-BDDKvWWY.d.cts → svg-DTb40ICU.d.cts} +2 -2
- package/dist/{tools-DPYerqeR.d.ts → tools-B0wXP5cF.d.ts} +1 -1
- package/dist/{tools-BAjSbTdY.d.cts → tools-Ca0kI1qo.d.cts} +1 -1
- package/dist/vector/index.cjs +1459 -1259
- package/dist/vector/index.cjs.map +1 -1
- package/dist/vector/index.d.cts +87 -11
- package/dist/vector/index.d.ts +87 -11
- package/dist/vector/index.js +213 -13
- package/dist/vector/index.js.map +1 -1
- package/dist/video-editor/index.d.cts +4 -4
- package/dist/video-editor/index.d.ts +4 -4
- package/dist/{warp-DQh9R7Ie.d.cts → warp-DTOp0lON.d.cts} +1 -1
- package/dist/{warp-XVL6SpSh.d.ts → warp-pd7hrH4T.d.ts} +1 -1
- package/package.json +1 -1
- package/skills/pixerate-vector/SKILL.md +8 -0
- package/dist/brushstrokeRender-JNHVEUFG.cjs.map +0 -1
- package/dist/chunk-2R3UW57U.cjs.map +0 -1
- package/dist/chunk-64PYNEHJ.js +0 -340
- package/dist/chunk-64PYNEHJ.js.map +0 -1
- package/dist/chunk-6GFRKLLS.cjs.map +0 -1
- package/dist/chunk-7QN76ESJ.js +0 -323
- package/dist/chunk-7QN76ESJ.js.map +0 -1
- package/dist/chunk-BR7EKQUP.js.map +0 -1
- package/dist/chunk-DCLJNVZS.cjs +0 -323
- package/dist/chunk-DCLJNVZS.cjs.map +0 -1
- package/dist/chunk-EM3FMJWE.js.map +0 -1
- package/dist/chunk-J5BA3BQ6.cjs.map +0 -1
- package/dist/chunk-JLGNZMUV.cjs.map +0 -1
- package/dist/chunk-MAHQC3SK.js.map +0 -1
- package/dist/chunk-Z6OUCS2K.cjs +0 -340
- package/dist/chunk-Z6OUCS2K.cjs.map +0 -1
- package/dist/rand-BszBST4s.d.ts +0 -2140
- package/dist/rand-DOH_aMvm.d.cts +0 -2140
- /package/dist/{chunk-62XUO5LB.js.map → chunk-3X6IAJUQ.js.map} +0 -0
- /package/dist/{chunk-KZXLZCQ7.js.map → chunk-6S6362D2.js.map} +0 -0
- /package/dist/{chunk-SVYE5HIM.js.map → chunk-EQQMGO42.js.map} +0 -0
- /package/dist/{chunk-UYQUPUR6.js.map → chunk-HUO3TI4C.js.map} +0 -0
- /package/dist/{chunk-2HC4DRF4.js.map → chunk-LLFHCSU2.js.map} +0 -0
- /package/dist/{chunk-ILYFOJUN.js.map → chunk-OIBIRXRG.js.map} +0 -0
package/dist/canvas/index.d.cts
CHANGED
|
@@ -5,23 +5,23 @@ export { a as AnimationPlayerOptions, M as ManualClock, c as createAnimationPlay
|
|
|
5
5
|
import { b as CanvasNodeUpdate, N as NodeRectOptions, A as AlignEdge, c as AlignNodesOptions, D as DistributeAxis, a as DistributeMode, d as DistributeNodesOptions, S as SizeDimension, M as MatchSizeOptions, Z as ZOrderOperation, C as CanvasArrangeAction } from '../arrange-CKXK_hf7.cjs';
|
|
6
6
|
export { e as ArrangeShortcutBinding, f as DEFAULT_ARRANGE_SHORTCUTS, L as LOCKED_DATA_KEY, g as LOCKED_PREVIOUS_FLAGS_KEY, h as alignNodes, i as applyNodeUpdates, j as createNodeLookup, k as distributeNodes, l as getAbsolutePosition, m as getNodeRect, n as getNodeSize, o as invertNodeUpdates, p as isLocked, q as lockNodes, r as matchArrangeShortcut, s as matchSize, t as readStyleSize, u as reorderNodes, v as toggleLockNodes, w as unlockNodes, x as withStyleSize } from '../arrange-CKXK_hf7.cjs';
|
|
7
7
|
import { C as Command, M as MergedExecutionOptions } from '../types-DsiXGmjo.cjs';
|
|
8
|
-
import { S as ShapeDescription, B as BezierPath, b as PolygonFillRule, e as PolygonRing, f as ShapeSize, a as BezierPathInput, g as PathShape, C as CanvasShapeEffect } from '../bezier-
|
|
9
|
-
export { A as AffineMatrix, h as BezierCommand, d as BezierContour, i as BezierPathToSvgOptions, c as BezierSegment, E as EllipseShape, F as FlattenOptions, G as GetShapeRenderDataOptions, M as MultiPolygon, j as PathCommand, k as PathPointAtLength, P as PolygonBooleanOperation, l as PolygonBooleanOptions, m as PolygonInput, n as PolygonOperand, o as PolygonPiece, p as PolygonToPathOptions, q as PolygonWithHoles, R as RectShape, r as RegularPolygonShape, s as SHAPE_KINDS, t as ShapeKind, u as ShapePaint, v as ShapeRenderData, w as StarShape, x as arcToCubics, y as bezierPathBounds, z as bezierPathLength, D as bezierPathPointAtLength, H as bezierPathSignedArea, I as bezierPathToSvg, J as closeContour, K as contourSignedArea, L as contoursToPath, N as countPathSegments, O as distanceToBezierPath, Q as dividePolygons, T as flattenSvgPath, U as formatNumber, V as getShapeRenderData, W as getShapeSvg, X as intersectPolygons, Y as isShapeDescription, Z as multiPolygonArea, _ as multiPolygonBounds, $ as parseSvgPath, a0 as pathToContours, a1 as pointInBezierPath, a2 as pointInMultiPolygon, a3 as pointInRings, a4 as polygonArea, a5 as polygonBoolean, a6 as polygonToSvgPath, a7 as ringSignedArea, a8 as segmentBounds, a9 as segmentCurvature, aa as segmentDerivative, ab as segmentExtrema, ac as segmentLength, ad as segmentNearest, ae as segmentParamAtLength, af as segmentPoint, ag as segmentTangent, ah as shapeToPolygon, ai as simplifyRing, aj as splitSegment, ak as subSegment, al as subtractPolygons, am as toBezierPath, an as transformBezierPath, ao as trimSegments, ap as unionPolygons, aq as windingNumber, ar as xorPolygons } from '../bezier-
|
|
10
|
-
import { S as StrokeJoin, a as StrokeCap } from '../pathfinder-
|
|
11
|
-
export { D as DashedPath, d as DividePathsResult, O as OffsetPathOptions, e as OutlineStrokeOptions, f as PATHFINDER_OPERATIONS, g as PathBooleanOperation, h as PathBooleanResult, i as PathOperand, j as PathOperandInput, k as PathOpsError, l as PathOpsOptions, m as PathOpsReport, n as PathPiece, o as PathSelectResult, b as PathfinderOperation, p as PathfinderPiece, q as PathfinderResult, c as PathfinderShape, r as PlanarChain, s as PlanarFace, t as PlanarInput, P as PlanarMap, u as PlanarMapOptions, v as PlanarSplitEdge, w as PlanarSplitResult, x as SegmentIntersection, y as bezierPathArea, z as contourEnclosesArea, A as cutOutPiece, B as dashContours, C as dividePaths, E as excludePaths, F as interiorPoint, G as intersectPaths, H as normalizeBezierPath, I as offsetPath, J as outlineStroke, K as pathBoolean, L as pathBooleanSelect, M as pathfinder, N as planarSplit, Q as segmentIntersections, R as strokeOutlineRings, T as subtractPaths, U as unitePaths } from '../pathfinder-
|
|
8
|
+
import { S as ShapeDescription, B as BezierPath, b as PolygonFillRule, e as PolygonRing, f as ShapeSize, a as BezierPathInput, g as PathShape, C as CanvasShapeEffect } from '../bezier-CZ2AhjID.cjs';
|
|
9
|
+
export { A as AffineMatrix, h as BezierCommand, d as BezierContour, i as BezierPathToSvgOptions, c as BezierSegment, E as EllipseShape, F as FlattenOptions, G as GetShapeRenderDataOptions, M as MultiPolygon, j as PathCommand, k as PathPointAtLength, P as PolygonBooleanOperation, l as PolygonBooleanOptions, m as PolygonInput, n as PolygonOperand, o as PolygonPiece, p as PolygonToPathOptions, q as PolygonWithHoles, R as RectShape, r as RegularPolygonShape, s as SHAPE_KINDS, t as ShapeKind, u as ShapePaint, v as ShapeRenderData, w as StarShape, x as arcToCubics, y as bezierPathBounds, z as bezierPathLength, D as bezierPathPointAtLength, H as bezierPathSignedArea, I as bezierPathToSvg, J as closeContour, K as contourSignedArea, L as contoursToPath, N as countPathSegments, O as distanceToBezierPath, Q as dividePolygons, T as flattenSvgPath, U as formatNumber, V as getShapeRenderData, W as getShapeSvg, X as intersectPolygons, Y as isShapeDescription, Z as multiPolygonArea, _ as multiPolygonBounds, $ as parseSvgPath, a0 as pathToContours, a1 as pointInBezierPath, a2 as pointInMultiPolygon, a3 as pointInRings, a4 as polygonArea, a5 as polygonBoolean, a6 as polygonToSvgPath, a7 as ringSignedArea, a8 as segmentBounds, a9 as segmentCurvature, aa as segmentDerivative, ab as segmentExtrema, ac as segmentLength, ad as segmentNearest, ae as segmentParamAtLength, af as segmentPoint, ag as segmentTangent, ah as shapeToPolygon, ai as simplifyRing, aj as splitSegment, ak as subSegment, al as subtractPolygons, am as toBezierPath, an as transformBezierPath, ao as trimSegments, ap as unionPolygons, aq as windingNumber, ar as xorPolygons } from '../bezier-CZ2AhjID.cjs';
|
|
10
|
+
import { S as StrokeJoin, a as StrokeCap } from '../pathfinder-BHS4vQNm.cjs';
|
|
11
|
+
export { D as DashedPath, d as DividePathsResult, O as OffsetPathOptions, e as OutlineStrokeOptions, f as PATHFINDER_OPERATIONS, g as PathBooleanOperation, h as PathBooleanResult, i as PathOperand, j as PathOperandInput, k as PathOpsError, l as PathOpsOptions, m as PathOpsReport, n as PathPiece, o as PathSelectResult, b as PathfinderOperation, p as PathfinderPiece, q as PathfinderResult, c as PathfinderShape, r as PlanarChain, s as PlanarFace, t as PlanarInput, P as PlanarMap, u as PlanarMapOptions, v as PlanarSplitEdge, w as PlanarSplitResult, x as SegmentIntersection, y as bezierPathArea, z as contourEnclosesArea, A as cutOutPiece, B as dashContours, C as dividePaths, E as excludePaths, F as interiorPoint, G as intersectPaths, H as normalizeBezierPath, I as offsetPath, J as outlineStroke, K as pathBoolean, L as pathBooleanSelect, M as pathfinder, N as planarSplit, Q as segmentIntersections, R as strokeOutlineRings, T as subtractPaths, U as unitePaths } from '../pathfinder-BHS4vQNm.cjs';
|
|
12
12
|
import { d as TokenModeContext, r as TokenType, o as TokenScope, f as TokenLiteral, c as TokenVariable, e as TokenResolution, T as TokenState } from '../model-C1zApQM8.cjs';
|
|
13
13
|
import { b as AnimationEasing } from '../easing-lM0Xo9Ni.cjs';
|
|
14
14
|
export { A as ANIMATION_EASING_LABELS, a as ANIMATION_EASING_PRESETS, c as AnimationEasingPreset, C as CUBIC_BEZIER_PRESETS, d as CubicBezierEasing, E as ElasticEasing, S as SPRING_PRESETS, e as SpringEasing, f as cubicBezierAt, g as easingFromInfluence, h as easingLabel, i as easingToCss, j as elasticAt, k as evaluateEasing, l as isAnimationEasing, p as parseCssEasing, r as resolveEasing, m as reverseCubicBezier, s as springAt, n as springSettleMs } from '../easing-lM0Xo9Ni.cjs';
|
|
15
15
|
export { O as OklabColor, f as formatOklab, m as mixColorsOklab, o as oklabToRgb, p as parseOklab, r as rgbToOklab } from '../color-E9pwm--w.cjs';
|
|
16
16
|
import { e as AnimationValueType, d as AnimationValue, c as AnimationTrack, b as AnimationLoopMode } from '../evaluate-BsxYieLN.cjs';
|
|
17
17
|
export { A as ANIMATION_TIME_EPSILON, a as AnimationKeyframe, h as evaluateTrack, j as interpolateAnimationValue, k as isAnimationKeyframe, n as normalizeKeyframes, w as wrapAnimationTime } from '../evaluate-BsxYieLN.cjs';
|
|
18
|
-
import { C as CanvasGradientDef, E as EffectProvider, v as EffectsSlot, e as EffectValue, b as EffectPixels } from '../helpers-
|
|
19
|
-
export {
|
|
18
|
+
import { C as CanvasGradientDef, E as EffectProvider, v as EffectsSlot, e as EffectValue, b as EffectPixels } from '../helpers-v6GMazzg.cjs';
|
|
19
|
+
export { cT as CANVAS_GRADIENT_PRESETS, cU as CanvasLinearGradient, cV as CanvasRadialGradient, cW as GradientStop, cX as PIXERATE_BRAND_GRADIENT, S as SvgGradientDef, cY as SvgGradientStop, cZ as angleToSvgLinearCoords, c_ as gradientToSvgDef, c$ as isCanvasGradient, d0 as parseCssGradient, d1 as resolveCanvasGradient } from '../helpers-v6GMazzg.cjs';
|
|
20
20
|
import { P as Point$1, G as GraphNode, D as DiagramFamily, a as DiagramGraph, b as DiagramMeta, c as GraphGroup, d as GraphEdge, E as EdgePattern, A as ArrowHead, M as MermaidDocument, e as EditOp } from '../types-DYkjhzdz.cjs';
|
|
21
21
|
import { a as CapturedImage, g as CaptureToolProviderOptions, b as CaptureSurface } from '../capture-DFEMFmVt.cjs';
|
|
22
22
|
import { R as RasterizeElementOptions } from '../dom-capture-GyYuE-zq.cjs';
|
|
23
23
|
import { a as AgentToolProvider } from '../registry-BqA1AZt0.cjs';
|
|
24
|
-
import { E as EffectRendererPool } from '../pool-
|
|
24
|
+
import { E as EffectRendererPool } from '../pool-FjZZmZ80.cjs';
|
|
25
25
|
export { b as brushstrokeScaleBucket } from '../brushstroke-scale-B6XAdPSY.cjs';
|
|
26
26
|
import { n as ChartSpec } from '../types-BRp-6zkY.cjs';
|
|
27
27
|
import '../schema-Di0CS6Pe.cjs';
|
package/dist/canvas/index.d.ts
CHANGED
|
@@ -5,23 +5,23 @@ export { a as AnimationPlayerOptions, M as ManualClock, c as createAnimationPlay
|
|
|
5
5
|
import { b as CanvasNodeUpdate, N as NodeRectOptions, A as AlignEdge, c as AlignNodesOptions, D as DistributeAxis, a as DistributeMode, d as DistributeNodesOptions, S as SizeDimension, M as MatchSizeOptions, Z as ZOrderOperation, C as CanvasArrangeAction } from '../arrange-BUREmgD9.js';
|
|
6
6
|
export { e as ArrangeShortcutBinding, f as DEFAULT_ARRANGE_SHORTCUTS, L as LOCKED_DATA_KEY, g as LOCKED_PREVIOUS_FLAGS_KEY, h as alignNodes, i as applyNodeUpdates, j as createNodeLookup, k as distributeNodes, l as getAbsolutePosition, m as getNodeRect, n as getNodeSize, o as invertNodeUpdates, p as isLocked, q as lockNodes, r as matchArrangeShortcut, s as matchSize, t as readStyleSize, u as reorderNodes, v as toggleLockNodes, w as unlockNodes, x as withStyleSize } from '../arrange-BUREmgD9.js';
|
|
7
7
|
import { C as Command, M as MergedExecutionOptions } from '../types-DsiXGmjo.js';
|
|
8
|
-
import { S as ShapeDescription, B as BezierPath, b as PolygonFillRule, e as PolygonRing, f as ShapeSize, a as BezierPathInput, g as PathShape, C as CanvasShapeEffect } from '../bezier-
|
|
9
|
-
export { A as AffineMatrix, h as BezierCommand, d as BezierContour, i as BezierPathToSvgOptions, c as BezierSegment, E as EllipseShape, F as FlattenOptions, G as GetShapeRenderDataOptions, M as MultiPolygon, j as PathCommand, k as PathPointAtLength, P as PolygonBooleanOperation, l as PolygonBooleanOptions, m as PolygonInput, n as PolygonOperand, o as PolygonPiece, p as PolygonToPathOptions, q as PolygonWithHoles, R as RectShape, r as RegularPolygonShape, s as SHAPE_KINDS, t as ShapeKind, u as ShapePaint, v as ShapeRenderData, w as StarShape, x as arcToCubics, y as bezierPathBounds, z as bezierPathLength, D as bezierPathPointAtLength, H as bezierPathSignedArea, I as bezierPathToSvg, J as closeContour, K as contourSignedArea, L as contoursToPath, N as countPathSegments, O as distanceToBezierPath, Q as dividePolygons, T as flattenSvgPath, U as formatNumber, V as getShapeRenderData, W as getShapeSvg, X as intersectPolygons, Y as isShapeDescription, Z as multiPolygonArea, _ as multiPolygonBounds, $ as parseSvgPath, a0 as pathToContours, a1 as pointInBezierPath, a2 as pointInMultiPolygon, a3 as pointInRings, a4 as polygonArea, a5 as polygonBoolean, a6 as polygonToSvgPath, a7 as ringSignedArea, a8 as segmentBounds, a9 as segmentCurvature, aa as segmentDerivative, ab as segmentExtrema, ac as segmentLength, ad as segmentNearest, ae as segmentParamAtLength, af as segmentPoint, ag as segmentTangent, ah as shapeToPolygon, ai as simplifyRing, aj as splitSegment, ak as subSegment, al as subtractPolygons, am as toBezierPath, an as transformBezierPath, ao as trimSegments, ap as unionPolygons, aq as windingNumber, ar as xorPolygons } from '../bezier-
|
|
10
|
-
import { S as StrokeJoin, a as StrokeCap } from '../pathfinder-
|
|
11
|
-
export { D as DashedPath, d as DividePathsResult, O as OffsetPathOptions, e as OutlineStrokeOptions, f as PATHFINDER_OPERATIONS, g as PathBooleanOperation, h as PathBooleanResult, i as PathOperand, j as PathOperandInput, k as PathOpsError, l as PathOpsOptions, m as PathOpsReport, n as PathPiece, o as PathSelectResult, b as PathfinderOperation, p as PathfinderPiece, q as PathfinderResult, c as PathfinderShape, r as PlanarChain, s as PlanarFace, t as PlanarInput, P as PlanarMap, u as PlanarMapOptions, v as PlanarSplitEdge, w as PlanarSplitResult, x as SegmentIntersection, y as bezierPathArea, z as contourEnclosesArea, A as cutOutPiece, B as dashContours, C as dividePaths, E as excludePaths, F as interiorPoint, G as intersectPaths, H as normalizeBezierPath, I as offsetPath, J as outlineStroke, K as pathBoolean, L as pathBooleanSelect, M as pathfinder, N as planarSplit, Q as segmentIntersections, R as strokeOutlineRings, T as subtractPaths, U as unitePaths } from '../pathfinder-
|
|
8
|
+
import { S as ShapeDescription, B as BezierPath, b as PolygonFillRule, e as PolygonRing, f as ShapeSize, a as BezierPathInput, g as PathShape, C as CanvasShapeEffect } from '../bezier-Dywv3Bw8.js';
|
|
9
|
+
export { A as AffineMatrix, h as BezierCommand, d as BezierContour, i as BezierPathToSvgOptions, c as BezierSegment, E as EllipseShape, F as FlattenOptions, G as GetShapeRenderDataOptions, M as MultiPolygon, j as PathCommand, k as PathPointAtLength, P as PolygonBooleanOperation, l as PolygonBooleanOptions, m as PolygonInput, n as PolygonOperand, o as PolygonPiece, p as PolygonToPathOptions, q as PolygonWithHoles, R as RectShape, r as RegularPolygonShape, s as SHAPE_KINDS, t as ShapeKind, u as ShapePaint, v as ShapeRenderData, w as StarShape, x as arcToCubics, y as bezierPathBounds, z as bezierPathLength, D as bezierPathPointAtLength, H as bezierPathSignedArea, I as bezierPathToSvg, J as closeContour, K as contourSignedArea, L as contoursToPath, N as countPathSegments, O as distanceToBezierPath, Q as dividePolygons, T as flattenSvgPath, U as formatNumber, V as getShapeRenderData, W as getShapeSvg, X as intersectPolygons, Y as isShapeDescription, Z as multiPolygonArea, _ as multiPolygonBounds, $ as parseSvgPath, a0 as pathToContours, a1 as pointInBezierPath, a2 as pointInMultiPolygon, a3 as pointInRings, a4 as polygonArea, a5 as polygonBoolean, a6 as polygonToSvgPath, a7 as ringSignedArea, a8 as segmentBounds, a9 as segmentCurvature, aa as segmentDerivative, ab as segmentExtrema, ac as segmentLength, ad as segmentNearest, ae as segmentParamAtLength, af as segmentPoint, ag as segmentTangent, ah as shapeToPolygon, ai as simplifyRing, aj as splitSegment, ak as subSegment, al as subtractPolygons, am as toBezierPath, an as transformBezierPath, ao as trimSegments, ap as unionPolygons, aq as windingNumber, ar as xorPolygons } from '../bezier-Dywv3Bw8.js';
|
|
10
|
+
import { S as StrokeJoin, a as StrokeCap } from '../pathfinder-BVvTIBMo.js';
|
|
11
|
+
export { D as DashedPath, d as DividePathsResult, O as OffsetPathOptions, e as OutlineStrokeOptions, f as PATHFINDER_OPERATIONS, g as PathBooleanOperation, h as PathBooleanResult, i as PathOperand, j as PathOperandInput, k as PathOpsError, l as PathOpsOptions, m as PathOpsReport, n as PathPiece, o as PathSelectResult, b as PathfinderOperation, p as PathfinderPiece, q as PathfinderResult, c as PathfinderShape, r as PlanarChain, s as PlanarFace, t as PlanarInput, P as PlanarMap, u as PlanarMapOptions, v as PlanarSplitEdge, w as PlanarSplitResult, x as SegmentIntersection, y as bezierPathArea, z as contourEnclosesArea, A as cutOutPiece, B as dashContours, C as dividePaths, E as excludePaths, F as interiorPoint, G as intersectPaths, H as normalizeBezierPath, I as offsetPath, J as outlineStroke, K as pathBoolean, L as pathBooleanSelect, M as pathfinder, N as planarSplit, Q as segmentIntersections, R as strokeOutlineRings, T as subtractPaths, U as unitePaths } from '../pathfinder-BVvTIBMo.js';
|
|
12
12
|
import { d as TokenModeContext, r as TokenType, o as TokenScope, f as TokenLiteral, c as TokenVariable, e as TokenResolution, T as TokenState } from '../model-C1zApQM8.js';
|
|
13
13
|
import { b as AnimationEasing } from '../easing-lM0Xo9Ni.js';
|
|
14
14
|
export { A as ANIMATION_EASING_LABELS, a as ANIMATION_EASING_PRESETS, c as AnimationEasingPreset, C as CUBIC_BEZIER_PRESETS, d as CubicBezierEasing, E as ElasticEasing, S as SPRING_PRESETS, e as SpringEasing, f as cubicBezierAt, g as easingFromInfluence, h as easingLabel, i as easingToCss, j as elasticAt, k as evaluateEasing, l as isAnimationEasing, p as parseCssEasing, r as resolveEasing, m as reverseCubicBezier, s as springAt, n as springSettleMs } from '../easing-lM0Xo9Ni.js';
|
|
15
15
|
export { O as OklabColor, f as formatOklab, m as mixColorsOklab, o as oklabToRgb, p as parseOklab, r as rgbToOklab } from '../color-E9pwm--w.js';
|
|
16
16
|
import { e as AnimationValueType, d as AnimationValue, c as AnimationTrack, b as AnimationLoopMode } from '../evaluate-BbCeF6pt.js';
|
|
17
17
|
export { A as ANIMATION_TIME_EPSILON, a as AnimationKeyframe, h as evaluateTrack, j as interpolateAnimationValue, k as isAnimationKeyframe, n as normalizeKeyframes, w as wrapAnimationTime } from '../evaluate-BbCeF6pt.js';
|
|
18
|
-
import { C as CanvasGradientDef, E as EffectProvider, v as EffectsSlot, e as EffectValue, b as EffectPixels } from '../helpers
|
|
19
|
-
export {
|
|
18
|
+
import { C as CanvasGradientDef, E as EffectProvider, v as EffectsSlot, e as EffectValue, b as EffectPixels } from '../helpers-C-RgeyvH.js';
|
|
19
|
+
export { cT as CANVAS_GRADIENT_PRESETS, cU as CanvasLinearGradient, cV as CanvasRadialGradient, cW as GradientStop, cX as PIXERATE_BRAND_GRADIENT, S as SvgGradientDef, cY as SvgGradientStop, cZ as angleToSvgLinearCoords, c_ as gradientToSvgDef, c$ as isCanvasGradient, d0 as parseCssGradient, d1 as resolveCanvasGradient } from '../helpers-C-RgeyvH.js';
|
|
20
20
|
import { P as Point$1, G as GraphNode, D as DiagramFamily, a as DiagramGraph, b as DiagramMeta, c as GraphGroup, d as GraphEdge, E as EdgePattern, A as ArrowHead, M as MermaidDocument, e as EditOp } from '../types-DYkjhzdz.js';
|
|
21
21
|
import { a as CapturedImage, g as CaptureToolProviderOptions, b as CaptureSurface } from '../capture-wwNGaW05.js';
|
|
22
22
|
import { R as RasterizeElementOptions } from '../dom-capture-7Wvf6Tyg.js';
|
|
23
23
|
import { a as AgentToolProvider } from '../registry-D-4fit9C.js';
|
|
24
|
-
import { E as EffectRendererPool } from '../pool-
|
|
24
|
+
import { E as EffectRendererPool } from '../pool-CZQOrSXZ.js';
|
|
25
25
|
export { b as brushstrokeScaleBucket } from '../brushstroke-scale-B6XAdPSY.js';
|
|
26
26
|
import { n as ChartSpec } from '../types-BRp-6zkY.js';
|
|
27
27
|
import '../schema-Di0CS6Pe.js';
|
package/dist/canvas/index.js
CHANGED
|
@@ -51,7 +51,7 @@ import {
|
|
|
51
51
|
renderShapeBrushstroke,
|
|
52
52
|
validateCanvasBrush,
|
|
53
53
|
validateCanvasBrushPaint
|
|
54
|
-
} from "../chunk-
|
|
54
|
+
} from "../chunk-EQQMGO42.js";
|
|
55
55
|
import {
|
|
56
56
|
TokenError,
|
|
57
57
|
getTokenCollection,
|
|
@@ -90,9 +90,6 @@ import {
|
|
|
90
90
|
createCaptureToolProvider,
|
|
91
91
|
unionCaptureRects
|
|
92
92
|
} from "../chunk-REOJJIY3.js";
|
|
93
|
-
import {
|
|
94
|
-
brushstrokeScaleBucket
|
|
95
|
-
} from "../chunk-63AZAUSN.js";
|
|
96
93
|
import {
|
|
97
94
|
layoutChart
|
|
98
95
|
} from "../chunk-OEFCLWZ3.js";
|
|
@@ -192,6 +189,9 @@ import {
|
|
|
192
189
|
resolveEffectValues
|
|
193
190
|
} from "../chunk-QFSTQHZY.js";
|
|
194
191
|
import "../chunk-4FX5ACVG.js";
|
|
192
|
+
import {
|
|
193
|
+
brushstrokeScaleBucket
|
|
194
|
+
} from "../chunk-63AZAUSN.js";
|
|
195
195
|
import {
|
|
196
196
|
ANIMATION_TIME_EPSILON,
|
|
197
197
|
AnimationPlayer,
|
|
@@ -17,17 +17,17 @@
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkQBWEH3IMcjs = require('./chunk-QBWEH3IM.cjs');
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _chunkO7LUD7MHcjs = require('./chunk-O7LUD7MH.cjs');
|
|
27
27
|
|
|
28
28
|
// src/paint-editor/noise.ts
|
|
29
29
|
function randSigned(seed, index, stream) {
|
|
30
|
-
return
|
|
30
|
+
return _chunkQBWEH3IMcjs.rand01.call(void 0, seed, index, stream) * 2 - 1;
|
|
31
31
|
}
|
|
32
32
|
function seedFromString(text) {
|
|
33
33
|
let h = 2166136261;
|
|
@@ -35,7 +35,7 @@ function seedFromString(text) {
|
|
|
35
35
|
h ^= text.charCodeAt(i);
|
|
36
36
|
h = Math.imul(h, 16777619);
|
|
37
37
|
}
|
|
38
|
-
return
|
|
38
|
+
return _chunkQBWEH3IMcjs.mix32.call(void 0, h >>> 0);
|
|
39
39
|
}
|
|
40
40
|
var smooth = (t) => t * t * (3 - 2 * t);
|
|
41
41
|
var Lattice = class {
|
|
@@ -43,7 +43,7 @@ var Lattice = class {
|
|
|
43
43
|
this.px = px;
|
|
44
44
|
this.py = py;
|
|
45
45
|
this.values = new Float32Array(px * py);
|
|
46
|
-
for (let j = 0; j < py; j++) for (let i = 0; i < px; i++) this.values[j * px + i] =
|
|
46
|
+
for (let j = 0; j < py; j++) for (let i = 0; i < px; i++) this.values[j * px + i] = _chunkQBWEH3IMcjs.hash2.call(void 0, i, j, salt);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
|
|
@@ -181,24 +181,24 @@ function patternHeights(pattern, n, seed) {
|
|
|
181
181
|
const base = noise(20 * k, 20 * k, 4);
|
|
182
182
|
const fine = noise(64 * k, 64 * k, 2, 3);
|
|
183
183
|
for (let y = 0; y < n; y++)
|
|
184
|
-
for (let x = 0; x < n; x++) out[y * n + x] = clamp01((base.at(x, y) - 0.5) * 1.8 + 0.5 + (fine.at(x, y) - 0.5) * 0.5 + (
|
|
184
|
+
for (let x = 0; x < n; x++) out[y * n + x] = clamp01((base.at(x, y) - 0.5) * 1.8 + 0.5 + (fine.at(x, y) - 0.5) * 0.5 + (_chunkQBWEH3IMcjs.hash2.call(void 0, x, y, salt) - 0.5) * 0.12);
|
|
185
185
|
break;
|
|
186
186
|
}
|
|
187
187
|
case "hot-pressed": {
|
|
188
188
|
const base = noise(40 * k, 40 * k, 3);
|
|
189
|
-
for (let y = 0; y < n; y++) for (let x = 0; x < n; x++) out[y * n + x] = clamp01((base.at(x, y) - 0.5) * 1.1 + 0.6 + (
|
|
189
|
+
for (let y = 0; y < n; y++) for (let x = 0; x < n; x++) out[y * n + x] = clamp01((base.at(x, y) - 0.5) * 1.1 + 0.6 + (_chunkQBWEH3IMcjs.hash2.call(void 0, x, y, salt) - 0.5) * 0.08);
|
|
190
190
|
break;
|
|
191
191
|
}
|
|
192
192
|
case "rough": {
|
|
193
193
|
const base = noise(10 * k, 10 * k, 5);
|
|
194
194
|
const blot = noise(28 * k, 28 * k, 2, 5);
|
|
195
195
|
for (let y = 0; y < n; y++)
|
|
196
|
-
for (let x = 0; x < n; x++) out[y * n + x] = clamp01((base.at(x, y) - 0.5) * 2.4 + 0.5 + (blot.at(x, y) - 0.5) * 0.7 + (
|
|
196
|
+
for (let x = 0; x < n; x++) out[y * n + x] = clamp01((base.at(x, y) - 0.5) * 2.4 + 0.5 + (blot.at(x, y) - 0.5) * 0.7 + (_chunkQBWEH3IMcjs.hash2.call(void 0, x, y, salt) - 0.5) * 0.15);
|
|
197
197
|
break;
|
|
198
198
|
}
|
|
199
199
|
case "vellum": {
|
|
200
200
|
const base = noise(40 * k, 40 * k, 3);
|
|
201
|
-
for (let y = 0; y < n; y++) for (let x = 0; x < n; x++) out[y * n + x] = clamp01((base.at(x, y) - 0.5) * 1.6 + 0.55 + (
|
|
201
|
+
for (let y = 0; y < n; y++) for (let x = 0; x < n; x++) out[y * n + x] = clamp01((base.at(x, y) - 0.5) * 1.6 + 0.55 + (_chunkQBWEH3IMcjs.hash2.call(void 0, x, y, salt) - 0.5) * 0.2);
|
|
202
202
|
break;
|
|
203
203
|
}
|
|
204
204
|
case "laid": {
|
|
@@ -219,7 +219,7 @@ function patternHeights(pattern, n, seed) {
|
|
|
219
219
|
const base = noise(16 * k, 16 * k, 3, 7);
|
|
220
220
|
for (let y = 0; y < n; y++)
|
|
221
221
|
for (let x = 0; x < n; x++) {
|
|
222
|
-
const g =
|
|
222
|
+
const g = _chunkQBWEH3IMcjs.hash2.call(void 0, x, y, salt ^ 85);
|
|
223
223
|
out[y * n + x] = clamp01((fibres.at(x, y) - 0.5) * 1.5 + (base.at(x, y) - 0.5) * 0.7 + 0.55 + (g < 0.1 ? -0.3 : 0));
|
|
224
224
|
}
|
|
225
225
|
break;
|
|
@@ -228,7 +228,7 @@ function patternHeights(pattern, n, seed) {
|
|
|
228
228
|
const grit = noise(96 * k, 96 * k, 2);
|
|
229
229
|
for (let y = 0; y < n; y++)
|
|
230
230
|
for (let x = 0; x < n; x++) {
|
|
231
|
-
const h =
|
|
231
|
+
const h = _chunkQBWEH3IMcjs.hash2.call(void 0, x, y, salt);
|
|
232
232
|
out[y * n + x] = clamp01((grit.at(x, y) - 0.5) * 2.4 + 0.5 + (h - 0.5) * 0.7);
|
|
233
233
|
}
|
|
234
234
|
break;
|
|
@@ -249,7 +249,7 @@ function patternHeights(pattern, n, seed) {
|
|
|
249
249
|
const weft = Math.sin(Math.PI * (fy - cy));
|
|
250
250
|
const top = (cx + cy) % 2 === 0 ? warp : weft;
|
|
251
251
|
const irregular = pattern === "linen" ? (slub.at(x, y) - 0.5) * 0.5 : 0;
|
|
252
|
-
out[y * n + x] = clamp01(0.2 + 0.7 * top + irregular + (
|
|
252
|
+
out[y * n + x] = clamp01(0.2 + 0.7 * top + irregular + (_chunkQBWEH3IMcjs.hash2.call(void 0, x, y, salt) - 0.5) * 0.15);
|
|
253
253
|
}
|
|
254
254
|
break;
|
|
255
255
|
}
|
|
@@ -599,7 +599,7 @@ var DryStroke = (_class5 = class {
|
|
|
599
599
|
}
|
|
600
600
|
|
|
601
601
|
|
|
602
|
-
__init14() {this.coverage = new (0,
|
|
602
|
+
__init14() {this.coverage = new (0, _chunkQBWEH3IMcjs.CoverageMap)()}
|
|
603
603
|
__init15() {this.dabCount = 0}
|
|
604
604
|
|
|
605
605
|
|
|
@@ -633,11 +633,11 @@ var DryStroke = (_class5 = class {
|
|
|
633
633
|
const hardness = this.brush.tip.hardness;
|
|
634
634
|
const grain = this.options.grain;
|
|
635
635
|
for (const d of dabs) {
|
|
636
|
-
const rect =
|
|
636
|
+
const rect = _chunkQBWEH3IMcjs.dabRect.call(void 0, d, hardness);
|
|
637
637
|
const n = rect.width * rect.height;
|
|
638
638
|
if (this.buf.length < n) this.buf = new Float32Array(n);
|
|
639
639
|
const vals = this.buf.subarray(0, n);
|
|
640
|
-
|
|
640
|
+
_chunkQBWEH3IMcjs.rasterizeDab.call(void 0, d, hardness, rect, vals);
|
|
641
641
|
if (this.depth > 0 && grain) {
|
|
642
642
|
for (let yy = 0, k = 0; yy < rect.height; yy++) {
|
|
643
643
|
const y = rect.y + yy + 0.5;
|
|
@@ -715,14 +715,14 @@ function stampCoverage(kind, u, v, t) {
|
|
|
715
715
|
}
|
|
716
716
|
case "splat": {
|
|
717
717
|
let rr = 0.55;
|
|
718
|
-
for (let k = 1; k <= 3; k++) rr += 0.08 * Math.sin(a * (k + 2) +
|
|
718
|
+
for (let k = 1; k <= 3; k++) rr += 0.08 * Math.sin(a * (k + 2) + _chunkQBWEH3IMcjs.hash2.call(void 0, k, 1, t) * 6.28) / k;
|
|
719
719
|
let c = edge(rr - r);
|
|
720
720
|
for (let k = 0; k < 4; k++) {
|
|
721
|
-
const ang =
|
|
722
|
-
const dist = 0.72 + 0.2 *
|
|
721
|
+
const ang = _chunkQBWEH3IMcjs.hash2.call(void 0, k, 7, t) * Math.PI * 2;
|
|
722
|
+
const dist = 0.72 + 0.2 * _chunkQBWEH3IMcjs.hash2.call(void 0, k, 9, t);
|
|
723
723
|
const dx = u - Math.cos(ang) * dist;
|
|
724
724
|
const dy = v - Math.sin(ang) * dist;
|
|
725
|
-
c = Math.max(c, edge(0.08 + 0.06 *
|
|
725
|
+
c = Math.max(c, edge(0.08 + 0.06 * _chunkQBWEH3IMcjs.hash2.call(void 0, k, 11, t) - Math.hypot(dx, dy)));
|
|
726
726
|
}
|
|
727
727
|
return c;
|
|
728
728
|
}
|
|
@@ -760,7 +760,7 @@ function drawSticker(medium, s) {
|
|
|
760
760
|
c /= 4;
|
|
761
761
|
if (c <= 0) continue;
|
|
762
762
|
cov[p] = c;
|
|
763
|
-
const shade = 1 + 0.12 * (-(u + v) / 2) + 0.06 * (
|
|
763
|
+
const shade = 1 + 0.12 * (-(u + v) / 2) + 0.06 * (_chunkQBWEH3IMcjs.hash2.call(void 0, px, rect.y + yy, s.seed) - 0.5);
|
|
764
764
|
field[p * 3] = Math.min(1, Math.max(0, r * shade));
|
|
765
765
|
field[p * 3 + 1] = Math.min(1, Math.max(0, g * shade));
|
|
766
766
|
field[p * 3 + 2] = Math.min(1, Math.max(0, b * shade));
|
|
@@ -771,8 +771,8 @@ function drawSticker(medium, s) {
|
|
|
771
771
|
}
|
|
772
772
|
function jitterColor(hex, amount, seed, i) {
|
|
773
773
|
const [r, g, b] = hexRgb(hex);
|
|
774
|
-
const l = (
|
|
775
|
-
const h = (
|
|
774
|
+
const l = (_chunkQBWEH3IMcjs.rand01.call(void 0, seed, i, 61) - 0.5) * amount * 0.6;
|
|
775
|
+
const h = (_chunkQBWEH3IMcjs.rand01.call(void 0, seed, i, 63) - 0.5) * amount;
|
|
776
776
|
const m = (r + g + b) / 3;
|
|
777
777
|
const rot = (c0, c1) => c0 + (c1 - c0) * h;
|
|
778
778
|
const out = [rot(r, g), rot(g, b), rot(b, r)].map((c) => Math.min(1, Math.max(0, c + l + (c - m) * 0)));
|
|
@@ -787,7 +787,7 @@ var StickerSpray = (_class6 = class {
|
|
|
787
787
|
const spacing = Math.max(0.05, 1 / Math.max(0.05, b.sticker.density * 4));
|
|
788
788
|
const walk = { ...b, tip: { ...b.tip, spacing }, dynamics: { ...b.dynamics, scatter: 0, sizeJitter: 0, angleJitter: 0 } };
|
|
789
789
|
this.walkers = this.copies.map((c, i) => new PenDabWalker(walk, init.seed + i * 7919 | 0, c.linear));
|
|
790
|
-
this.medium = new (0,
|
|
790
|
+
this.medium = new (0, _chunkQBWEH3IMcjs.TileMedium)(init.target, {});
|
|
791
791
|
this.next = init.nextId;
|
|
792
792
|
}
|
|
793
793
|
|
|
@@ -830,21 +830,21 @@ var StickerSpray = (_class6 = class {
|
|
|
830
830
|
const st = this.init.brush.sticker;
|
|
831
831
|
const i = this.next;
|
|
832
832
|
const seed = this.init.seed;
|
|
833
|
-
const size = d.radius * 2 * (1 - st.sizeJitter * 0.7 *
|
|
833
|
+
const size = d.radius * 2 * (1 - st.sizeJitter * 0.7 * _chunkQBWEH3IMcjs.rand01.call(void 0, seed, i, 51));
|
|
834
834
|
const off = st.scatter * d.radius * 2;
|
|
835
|
-
const a =
|
|
836
|
-
const dist =
|
|
835
|
+
const a = _chunkQBWEH3IMcjs.rand01.call(void 0, seed, i, 53) * Math.PI * 2;
|
|
836
|
+
const dist = _chunkQBWEH3IMcjs.rand01.call(void 0, seed, i, 55) * off;
|
|
837
837
|
const base = this.colorAt(d, Math.cos(a) * dist, Math.sin(a) * dist);
|
|
838
838
|
const sticker = {
|
|
839
839
|
id: `st${this.next++}`,
|
|
840
|
-
stamp: _nullishCoalesce(st.stamps[Math.floor(
|
|
840
|
+
stamp: _nullishCoalesce(st.stamps[Math.floor(_chunkQBWEH3IMcjs.rand01.call(void 0, seed, i, 57) * st.stamps.length)], () => ( "dot")),
|
|
841
841
|
x: Math.round((d.x + Math.cos(a) * dist) * 100) / 100,
|
|
842
842
|
y: Math.round((d.y + Math.sin(a) * dist) * 100) / 100,
|
|
843
843
|
size: Math.max(2, Math.round(size * 10) / 10),
|
|
844
|
-
rotation: Math.round((-d.angle * 180 / Math.PI + (
|
|
844
|
+
rotation: Math.round((-d.angle * 180 / Math.PI + (_chunkQBWEH3IMcjs.rand01.call(void 0, seed, i, 59) * 2 - 1) * 180 * st.rotationJitter) * 10) / 10,
|
|
845
845
|
color: st.colorJitter > 0 ? jitterColor(base.color, st.colorJitter, seed, i) : base.color,
|
|
846
846
|
opacity: Math.round(Math.min(1, d.opacity * this.init.brush.tip.opacity * base.alpha) * 1e3) / 1e3,
|
|
847
|
-
seed: Math.floor(
|
|
847
|
+
seed: Math.floor(_chunkQBWEH3IMcjs.rand01.call(void 0, seed, i, 65) * 1e9)
|
|
848
848
|
};
|
|
849
849
|
this.stickers.push(sticker);
|
|
850
850
|
rects.push(drawSticker(this.medium, sticker));
|
|
@@ -855,13 +855,13 @@ var StickerSpray = (_class6 = class {
|
|
|
855
855
|
colorAt(d, dx, dy) {
|
|
856
856
|
const g = this.init.paint;
|
|
857
857
|
if (!g) return { color: this.init.color, alpha: 1 };
|
|
858
|
-
this.sampler ??= new (0,
|
|
858
|
+
this.sampler ??= new (0, _chunkQBWEH3IMcjs.PaintGradientSampler)(g, this.init.seed);
|
|
859
859
|
const s = g.map.by === "across-tip" ? this.sampler.sample(((dx * Math.sin(d.direction) + dy * Math.cos(d.direction)) / Math.max(0.5, d.radius) + 1) / 2) : this.sampler.dab(d);
|
|
860
860
|
return { color: "#" + s.rgb.map((c) => Math.round(Math.min(1, Math.max(0, c)) * 255).toString(16).padStart(2, "0")).join(""), alpha: s.alpha };
|
|
861
861
|
}
|
|
862
862
|
}, _class6);
|
|
863
863
|
function renderStickers(stickers, target) {
|
|
864
|
-
const medium = new (0,
|
|
864
|
+
const medium = new (0, _chunkQBWEH3IMcjs.TileMedium)(target, {});
|
|
865
865
|
for (const s of stickers) drawSticker(medium, s);
|
|
866
866
|
}
|
|
867
867
|
function normalizeStickerUpdate(u) {
|
|
@@ -898,21 +898,21 @@ function stickerSurface(stickers) {
|
|
|
898
898
|
offset: { x: 0, y: 0 },
|
|
899
899
|
lockTransparency: false,
|
|
900
900
|
selection: null,
|
|
901
|
-
readTile: (tx, ty) => _nullishCoalesce(live.get(
|
|
901
|
+
readTile: (tx, ty) => _nullishCoalesce(live.get(_chunkO7LUD7MHcjs.tileKey.call(void 0, tx, ty)), () => ( null)),
|
|
902
902
|
writeTile: (tx, ty) => {
|
|
903
|
-
const k =
|
|
903
|
+
const k = _chunkO7LUD7MHcjs.tileKey.call(void 0, tx, ty);
|
|
904
904
|
let t = live.get(k);
|
|
905
|
-
if (!t) live.set(k, t = new Uint8ClampedArray(
|
|
905
|
+
if (!t) live.set(k, t = new Uint8ClampedArray(_chunkO7LUD7MHcjs.TILE * _chunkO7LUD7MHcjs.TILE * 4));
|
|
906
906
|
return t;
|
|
907
907
|
}
|
|
908
908
|
};
|
|
909
909
|
renderStickers(stickers, target);
|
|
910
910
|
const tiles = /* @__PURE__ */ new Map();
|
|
911
911
|
for (const [k, d] of live) {
|
|
912
|
-
const t =
|
|
912
|
+
const t = _chunkO7LUD7MHcjs.finishTile.call(void 0, d, 4, 0);
|
|
913
913
|
if (t) tiles.set(k, t);
|
|
914
914
|
}
|
|
915
|
-
return new (0,
|
|
915
|
+
return new (0, _chunkO7LUD7MHcjs.TiledSurface)(4, tiles, 0);
|
|
916
916
|
}
|
|
917
917
|
|
|
918
918
|
// src/paint-editor/procedural.ts
|
|
@@ -921,8 +921,8 @@ var MarkStroke = (_class7 = class {
|
|
|
921
921
|
constructor(brush, options) {;_class7.prototype.__init23.call(this);_class7.prototype.__init24.call(this);_class7.prototype.__init25.call(this);_class7.prototype.__init26.call(this);_class7.prototype.__init27.call(this);_class7.prototype.__init28.call(this);_class7.prototype.__init29.call(this);
|
|
922
922
|
this.brush = brush;
|
|
923
923
|
this.options = options;
|
|
924
|
-
this.sampler = options.paint ? new (0,
|
|
925
|
-
this.tipTable = _optionalChain([this, 'access', _5 => _5.sampler, 'optionalAccess', _6 => _6.acrossTip]) ? this.sampler.tipTable(
|
|
924
|
+
this.sampler = options.paint ? new (0, _chunkQBWEH3IMcjs.PaintGradientSampler)(options.paint, _nullishCoalesce(options.seed, () => ( 0))) : null;
|
|
925
|
+
this.tipTable = _optionalChain([this, 'access', _5 => _5.sampler, 'optionalAccess', _6 => _6.acrossTip]) ? this.sampler.tipTable(_chunkQBWEH3IMcjs.TIP_GRADIENT_STEPS) : null;
|
|
926
926
|
this.smoother = new PenSmoother(brush.tip.smoothing, brush.pressureSmoothing);
|
|
927
927
|
this.copies = _optionalChain([options, 'access', _7 => _7.copies, 'optionalAccess', _8 => _8.length]) ? options.copies : [IDENTITY_COPY];
|
|
928
928
|
this.seed = _nullishCoalesce(options.seed, () => ( 0));
|
|
@@ -932,7 +932,7 @@ var MarkStroke = (_class7 = class {
|
|
|
932
932
|
}
|
|
933
933
|
|
|
934
934
|
|
|
935
|
-
__init23() {this.coverage = new (0,
|
|
935
|
+
__init23() {this.coverage = new (0, _chunkQBWEH3IMcjs.CoverageMap)()}
|
|
936
936
|
__init24() {this.dabCount = 0}
|
|
937
937
|
|
|
938
938
|
|
|
@@ -994,12 +994,12 @@ var MarkStroke = (_class7 = class {
|
|
|
994
994
|
if (!(r > 0.05) || !(alpha > 0)) return;
|
|
995
995
|
const dab = { x, y, radius: Math.max(0.5, r), alpha: Math.min(1, alpha), opacity: Math.min(1, opacity), angle: 0, roundness: 1 };
|
|
996
996
|
const hardness = this.brush.tip.hardness;
|
|
997
|
-
const rect =
|
|
997
|
+
const rect = _chunkQBWEH3IMcjs.dabRect.call(void 0, dab, hardness);
|
|
998
998
|
const n = rect.width * rect.height;
|
|
999
999
|
if (n <= 0) return;
|
|
1000
1000
|
if (this.buf.length < n) this.buf = new Float32Array(n);
|
|
1001
1001
|
const vals = this.buf.subarray(0, n);
|
|
1002
|
-
|
|
1002
|
+
_chunkQBWEH3IMcjs.rasterizeDab.call(void 0, dab, hardness, rect, vals);
|
|
1003
1003
|
const grain = this.options.grain;
|
|
1004
1004
|
if (this.depth > 0 && grain) {
|
|
1005
1005
|
for (let yy = 0, k = 0; yy < rect.height; yy++)
|
|
@@ -1046,7 +1046,7 @@ function curl(x, y, seed) {
|
|
|
1046
1046
|
const fy = v - y0;
|
|
1047
1047
|
const sx = fx * fx * (3 - 2 * fx);
|
|
1048
1048
|
const sy = fy * fy * (3 - 2 * fy);
|
|
1049
|
-
const h = (a2, b2) =>
|
|
1049
|
+
const h = (a2, b2) => _chunkQBWEH3IMcjs.rand01.call(void 0, seed, a2 * 73856093 + b2 * 19349663, 41);
|
|
1050
1050
|
const a = h(x0, y0);
|
|
1051
1051
|
const b = h(x0 + 1, y0);
|
|
1052
1052
|
const c = h(x0, y0 + 1);
|
|
@@ -1070,11 +1070,11 @@ var ParticleStroke = (_class8 = class extends MarkStroke {
|
|
|
1070
1070
|
const list = this.sets[copy];
|
|
1071
1071
|
const size = Math.max(1, d.radius * 2);
|
|
1072
1072
|
for (let i = 0; i < (s.kind === "flow" ? 0 : s.count); i++) {
|
|
1073
|
-
const r =
|
|
1074
|
-
const a =
|
|
1073
|
+
const r = _chunkQBWEH3IMcjs.rand01.call(void 0, this.seed, i, 3 + copy) * s.spread * size * 0.5;
|
|
1074
|
+
const a = _chunkQBWEH3IMcjs.rand01.call(void 0, this.seed, i, 5 + copy) * Math.PI * 2;
|
|
1075
1075
|
const ox = Math.cos(a) * r;
|
|
1076
1076
|
const oy = Math.sin(a) * r;
|
|
1077
|
-
const p = { x: d.x + ox, y: d.y + oy, vx: 0, vy: 0, ox, oy, k: 0.6 + 0.8 *
|
|
1077
|
+
const p = { x: d.x + ox, y: d.y + oy, vx: 0, vy: 0, ox, oy, k: 0.6 + 0.8 * _chunkQBWEH3IMcjs.rand01.call(void 0, this.seed, i, 7), phase: a, age: 0, run: 0, bead: 0, alive: true };
|
|
1078
1078
|
if (s.kind === "string") p.strand = Array.from({ length: 6 }, () => ({ x: d.x + ox, y: d.y + oy, vx: 0, vy: 0 }));
|
|
1079
1079
|
if (s.kind === "orbit") {
|
|
1080
1080
|
p.ox = Math.max(1, r + size * 0.15);
|
|
@@ -1099,8 +1099,8 @@ var ParticleStroke = (_class8 = class extends MarkStroke {
|
|
|
1099
1099
|
while (this.spawn >= 1) {
|
|
1100
1100
|
this.spawn -= 1;
|
|
1101
1101
|
const i = this.dabCount + list.length * 31 + Math.floor(d.index);
|
|
1102
|
-
const a =
|
|
1103
|
-
const r =
|
|
1102
|
+
const a = _chunkQBWEH3IMcjs.rand01.call(void 0, this.seed, i, 11 + copy) * Math.PI * 2;
|
|
1103
|
+
const r = _chunkQBWEH3IMcjs.rand01.call(void 0, this.seed, i, 13 + copy) * s.spread * size * 0.5;
|
|
1104
1104
|
list.push({ x: d.x + Math.cos(a) * r, y: d.y + Math.sin(a) * r, vx: 0, vy: 0, ox: 0, oy: 0, k: 1, phase: a, age: 0, run: 0, bead: 0, alive: true });
|
|
1105
1105
|
}
|
|
1106
1106
|
}
|
|
@@ -1135,7 +1135,7 @@ var ParticleStroke = (_class8 = class extends MarkStroke {
|
|
|
1135
1135
|
break;
|
|
1136
1136
|
}
|
|
1137
1137
|
case "orbit": {
|
|
1138
|
-
p.phase += (0.05 + 0.3 * s.speed) * (i % 2 ? -1 : 1) * (0.7 + 0.6 *
|
|
1138
|
+
p.phase += (0.05 + 0.3 * s.speed) * (i % 2 ? -1 : 1) * (0.7 + 0.6 * _chunkQBWEH3IMcjs.rand01.call(void 0, this.seed, i, 17));
|
|
1139
1139
|
p.x = d.x + Math.cos(p.phase) * p.ox;
|
|
1140
1140
|
p.y = d.y + Math.sin(p.phase) * p.ox + g * p.ox;
|
|
1141
1141
|
break;
|
|
@@ -1194,16 +1194,16 @@ var BristleStroke = class extends MarkStroke {
|
|
|
1194
1194
|
const s = this.s;
|
|
1195
1195
|
this.tufts = this.copies.map(
|
|
1196
1196
|
(_, c) => Array.from({ length: s.count }, (_2, i) => {
|
|
1197
|
-
const a =
|
|
1198
|
-
const r = Math.sqrt(
|
|
1197
|
+
const a = _chunkQBWEH3IMcjs.rand01.call(void 0, this.seed, i, 21 + c) * Math.PI * 2;
|
|
1198
|
+
const r = Math.sqrt(_chunkQBWEH3IMcjs.rand01.call(void 0, this.seed, i, 23 + c));
|
|
1199
1199
|
return {
|
|
1200
1200
|
u: Math.cos(a) * r,
|
|
1201
1201
|
v: Math.sin(a) * r,
|
|
1202
1202
|
x: 0,
|
|
1203
1203
|
y: 0,
|
|
1204
|
-
paint: 1 - s.jitter * 0.4 *
|
|
1205
|
-
thirst: 1 + s.jitter * (
|
|
1206
|
-
w: 1 + s.jitter * 0.6 * (
|
|
1204
|
+
paint: 1 - s.jitter * 0.4 * _chunkQBWEH3IMcjs.rand01.call(void 0, this.seed, i, 25 + c),
|
|
1205
|
+
thirst: 1 + s.jitter * (_chunkQBWEH3IMcjs.rand01.call(void 0, this.seed, i, 27 + c) * 2 - 1),
|
|
1206
|
+
w: 1 + s.jitter * 0.6 * (_chunkQBWEH3IMcjs.rand01.call(void 0, this.seed, i, 29 + c) - 0.5),
|
|
1207
1207
|
started: false
|
|
1208
1208
|
};
|
|
1209
1209
|
})
|
|
@@ -1402,12 +1402,12 @@ function normalizePaintBrush(raw = {}, base) {
|
|
|
1402
1402
|
if (rb.dirty !== void 0) mixerIn.cleanEachStroke = !rb.dirty;
|
|
1403
1403
|
if (rb.mixing !== void 0) mixerIn.mixing = rb.mixing;
|
|
1404
1404
|
}
|
|
1405
|
-
const mixer =
|
|
1405
|
+
const mixer = _chunkQBWEH3IMcjs.normalizeMixer.call(void 0, mixerIn);
|
|
1406
1406
|
let behavior = normalizeBehavior(rb, b.behavior);
|
|
1407
1407
|
if (engine === "mixer") behavior = { ...behavior, pickup: mixer.wet, mix: mixer.mix, dirty: !mixer.cleanEachStroke, mixing: mixer.mixing };
|
|
1408
1408
|
let paint = _nullishCoalesce(b.paint, () => ( null));
|
|
1409
1409
|
if (raw.paint !== void 0) {
|
|
1410
|
-
const p =
|
|
1410
|
+
const p = _chunkQBWEH3IMcjs.readPaintSource.call(void 0, raw.paint);
|
|
1411
1411
|
paint = p && p.type === "gradient" ? p : null;
|
|
1412
1412
|
} else if (rb.multicolor !== void 0) {
|
|
1413
1413
|
const mc = normalizeMultiColor(rb.multicolor, _nullishCoalesce(paintToMultiColor(paint), () => ( DEFAULT_MULTI_COLOR)));
|
|
@@ -1419,7 +1419,7 @@ function normalizePaintBrush(raw = {}, base) {
|
|
|
1419
1419
|
name: typeof raw.name === "string" && raw.name.trim() ? raw.name.trim().slice(0, 80) : b.name,
|
|
1420
1420
|
category: PAINT_BRUSH_CATEGORIES.includes(raw.category) ? raw.category : b.category,
|
|
1421
1421
|
engine,
|
|
1422
|
-
tip:
|
|
1422
|
+
tip: _chunkQBWEH3IMcjs.normalizeBrush.call(void 0, { ...b.tip, ..._nullishCoalesce(raw.tip, () => ( {})) }),
|
|
1423
1423
|
grain: unit4(raw.grain, b.grain),
|
|
1424
1424
|
pressureSmoothing: range(raw.pressureSmoothing, 0, 0.95, b.pressureSmoothing),
|
|
1425
1425
|
rotation: BRUSH_ROTATIONS.includes(raw.rotation) ? raw.rotation : b.rotation,
|
|
@@ -1427,8 +1427,8 @@ function normalizePaintBrush(raw = {}, base) {
|
|
|
1427
1427
|
mixer,
|
|
1428
1428
|
loadsColor: typeof raw.loadsColor === "boolean" ? raw.loadsColor : b.loadsColor,
|
|
1429
1429
|
behavior,
|
|
1430
|
-
blender:
|
|
1431
|
-
smudge:
|
|
1430
|
+
blender: _chunkQBWEH3IMcjs.normalizeBlender.call(void 0, _nullishCoalesce(raw.blender, () => ( {})), b.blender),
|
|
1431
|
+
smudge: _chunkQBWEH3IMcjs.normalizeSmudge.call(void 0, _nullishCoalesce(raw.smudge, () => ( {})), b.smudge),
|
|
1432
1432
|
wet: normalizeWetBrush(_nullishCoalesce(raw.wet, () => ( {})), _nullishCoalesce(b.wet, () => ( DEFAULT_WET_BRUSH))),
|
|
1433
1433
|
impasto: normalizeImpasto(_nullishCoalesce(raw.impasto, () => ( {})), _nullishCoalesce(b.impasto, () => ( DEFAULT_IMPASTO))),
|
|
1434
1434
|
particle: normalizeParticle(_nullishCoalesce(raw.particle, () => ( {})), _nullishCoalesce(b.particle, () => ( DEFAULT_PARTICLE))),
|
|
@@ -1443,16 +1443,16 @@ var BASE_BRUSH = {
|
|
|
1443
1443
|
name: "Round",
|
|
1444
1444
|
category: "custom",
|
|
1445
1445
|
engine: "dab",
|
|
1446
|
-
tip: { ...
|
|
1446
|
+
tip: { ..._chunkQBWEH3IMcjs.DEFAULT_BRUSH },
|
|
1447
1447
|
grain: 0,
|
|
1448
1448
|
pressureSmoothing: 0,
|
|
1449
1449
|
rotation: "fixed",
|
|
1450
1450
|
dynamics: { ...DEFAULT_DYNAMICS },
|
|
1451
|
-
mixer: { ...
|
|
1451
|
+
mixer: { ..._chunkQBWEH3IMcjs.DEFAULT_MIXER },
|
|
1452
1452
|
loadsColor: true,
|
|
1453
1453
|
behavior: { ...DEFAULT_BEHAVIOR, multicolor: { ...DEFAULT_MULTI_COLOR, colors: [] } },
|
|
1454
|
-
blender: { ...
|
|
1455
|
-
smudge: { ...
|
|
1454
|
+
blender: { ..._chunkQBWEH3IMcjs.DEFAULT_BLENDER },
|
|
1455
|
+
smudge: { ..._chunkQBWEH3IMcjs.DEFAULT_SMUDGE },
|
|
1456
1456
|
wet: { ...DEFAULT_WET_BRUSH },
|
|
1457
1457
|
impasto: { ...DEFAULT_IMPASTO },
|
|
1458
1458
|
particle: { ...DEFAULT_PARTICLE },
|
|
@@ -2073,4 +2073,4 @@ function parseBrushLibrary(raw, problems = []) {
|
|
|
2073
2073
|
|
|
2074
2074
|
|
|
2075
2075
|
exports.randSigned = randSigned; exports.seedFromString = seedFromString; exports.TileableNoise = TileableNoise; exports.GRAIN_PATTERNS = GRAIN_PATTERNS; exports.PAPER_FAMILIES = PAPER_FAMILIES; exports.GRAIN_TILE = GRAIN_TILE; exports.PAPER_LIBRARY = PAPER_LIBRARY; exports.DEFAULT_PAPER = DEFAULT_PAPER; exports.paperPreset = paperPreset; exports.clonePaper = clonePaper; exports.normalizePaper = normalizePaper; exports.grainHeights = grainHeights; exports.PaperGrain = PaperGrain; exports.grainCatch = grainCatch; exports.hexToRgb8 = hexToRgb8; exports.renderPaper = renderPaper; exports.penOrientation = penOrientation; exports.tiltToOrientation = tiltToOrientation; exports.PenSmoother = PenSmoother; exports.IDENTITY_COPY = IDENTITY_COPY; exports.PenDabWalker = PenDabWalker; exports.DryStroke = DryStroke; exports.mixerTip = mixerTip; exports.toStrokePoint = toStrokePoint; exports.STAMP_KINDS = STAMP_KINDS; exports.DEFAULT_STICKER = DEFAULT_STICKER; exports.normalizeStickerSettings = normalizeStickerSettings; exports.stampCoverage = stampCoverage; exports.stickerRect = stickerRect; exports.drawSticker = drawSticker; exports.StickerSpray = StickerSpray; exports.renderStickers = renderStickers; exports.normalizeStickerUpdate = normalizeStickerUpdate; exports.stickerSurface = stickerSurface; exports.PARTICLE_KINDS = PARTICLE_KINDS; exports.PARTICLE_RENDERS = PARTICLE_RENDERS; exports.DEFAULT_PARTICLE = DEFAULT_PARTICLE; exports.normalizeParticle = normalizeParticle; exports.ParticleStroke = ParticleStroke; exports.DEFAULT_BRISTLE = DEFAULT_BRISTLE; exports.normalizeBristle = normalizeBristle; exports.BristleStroke = BristleStroke; exports.PAINT_BRUSH_ENGINES = PAINT_BRUSH_ENGINES; exports.PAINT_BRUSH_CATEGORIES = PAINT_BRUSH_CATEGORIES; exports.WET_TOOLS = WET_TOOLS; exports.WET_MEDIA = WET_MEDIA; exports.DEFAULT_WET_BRUSH = DEFAULT_WET_BRUSH; exports.normalizeWetBrush = normalizeWetBrush; exports.IMPASTO_TOOLS = IMPASTO_TOOLS; exports.DEFAULT_IMPASTO = DEFAULT_IMPASTO; exports.normalizeImpasto = normalizeImpasto; exports.MULTI_COLOR_MODES = MULTI_COLOR_MODES; exports.DEFAULT_MULTI_COLOR = DEFAULT_MULTI_COLOR; exports.DEFAULT_BEHAVIOR = DEFAULT_BEHAVIOR; exports.BRUSH_ROTATIONS = BRUSH_ROTATIONS; exports.DEFAULT_DYNAMICS = DEFAULT_DYNAMICS; exports.normalizeDynamics = normalizeDynamics; exports.BRUSH_ID = BRUSH_ID; exports.normalizeMultiColor = normalizeMultiColor; exports.normalizeBehavior = normalizeBehavior; exports.isWetCapable = isWetCapable; exports.isWetBrush = isWetBrush; exports.usesPaintExchange = usesPaintExchange; exports.brushTakesPaint = brushTakesPaint; exports.paintToMultiColor = paintToMultiColor; exports.multiColorToPaint = multiColorToPaint; exports.normalizePaintBrush = normalizePaintBrush; exports.BUILTIN_BRUSHES = BUILTIN_BRUSHES; exports.DEFAULT_BRUSH_ID = DEFAULT_BRUSH_ID; exports.brushToJSON = brushToJSON; exports.parseBrushLibrary = parseBrushLibrary;
|
|
2076
|
-
//# sourceMappingURL=chunk-
|
|
2076
|
+
//# sourceMappingURL=chunk-2XS6LTUP.cjs.map
|