@pixerate/editor 0.97.0 → 0.98.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/THIRD_PARTY_NOTICES.md +4 -2
- package/dist/animation-editor/index.cjs +55 -53
- package/dist/animation-editor/index.cjs.map +1 -1
- package/dist/animation-editor/index.d.cts +3 -2
- package/dist/animation-editor/index.d.ts +3 -2
- package/dist/animation-editor/index.js +11 -9
- package/dist/animation-editor/index.js.map +1 -1
- package/dist/chunk-DWGZUSES.cjs +694 -0
- package/dist/chunk-DWGZUSES.cjs.map +1 -0
- package/dist/chunk-GX332W2C.js +181 -0
- package/dist/chunk-GX332W2C.js.map +1 -0
- package/dist/{chunk-7MD7C6XQ.cjs → chunk-JF5PXN7W.cjs} +96 -744
- package/dist/chunk-JF5PXN7W.cjs.map +1 -0
- package/dist/chunk-KKREERP2.js +694 -0
- package/dist/chunk-KKREERP2.js.map +1 -0
- package/dist/chunk-MUUXNRU4.cjs +181 -0
- package/dist/chunk-MUUXNRU4.cjs.map +1 -0
- package/dist/{chunk-OEVSVA6V.js → chunk-WIR377F6.js} +788 -22
- package/dist/chunk-WIR377F6.js.map +1 -0
- package/dist/{chunk-4AB5BHYK.cjs → chunk-WT6ZAWJP.cjs} +788 -22
- package/dist/chunk-WT6ZAWJP.cjs.map +1 -0
- package/dist/{chunk-4JLB2USO.js → chunk-YGZNGDIT.js} +45 -693
- package/dist/chunk-YGZNGDIT.js.map +1 -0
- package/dist/image-editor/index.cjs +1280 -299
- package/dist/image-editor/index.cjs.map +1 -1
- package/dist/image-editor/index.d.cts +304 -5
- package/dist/image-editor/index.d.ts +304 -5
- package/dist/image-editor/index.js +991 -10
- package/dist/image-editor/index.js.map +1 -1
- package/dist/raster/index.cjs +23 -2
- package/dist/raster/index.cjs.map +1 -1
- package/dist/raster/index.d.cts +98 -2
- package/dist/raster/index.d.ts +98 -2
- package/dist/raster/index.js +23 -2
- package/dist/{svg-ymShkNtu.d.cts → svg-C9r284x8.d.cts} +6 -9
- package/dist/{svg-Dh17jCyA.d.ts → svg-MVKBqwD4.d.ts} +6 -9
- package/dist/types-CwMPoRMU.d.cts +40 -0
- package/dist/types-CwMPoRMU.d.ts +40 -0
- package/dist/vector/index.cjs +490 -554
- package/dist/vector/index.cjs.map +1 -1
- package/dist/vector/index.d.cts +154 -292
- package/dist/vector/index.d.ts +154 -292
- package/dist/vector/index.js +91 -155
- package/dist/vector/index.js.map +1 -1
- package/dist/warp-B8rAguzs.d.ts +165 -0
- package/dist/warp-nYs2DPrx.d.cts +165 -0
- package/package.json +1 -1
- package/skills/pixerate-image-editor/SKILL.md +49 -3
- package/dist/chunk-4AB5BHYK.cjs.map +0 -1
- package/dist/chunk-4JLB2USO.js.map +0 -1
- package/dist/chunk-7MD7C6XQ.cjs.map +0 -1
- package/dist/chunk-OEVSVA6V.js.map +0 -1
package/dist/raster/index.cjs
CHANGED
|
@@ -61,7 +61,18 @@
|
|
|
61
61
|
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
var _chunkWT6ZAWJPcjs = require('../chunk-WT6ZAWJP.cjs');
|
|
75
|
+
require('../chunk-MUUXNRU4.cjs');
|
|
65
76
|
|
|
66
77
|
|
|
67
78
|
|
|
@@ -199,5 +210,15 @@ var _chunkCRMAXIUVcjs = require('../chunk-CRMAXIUV.cjs');
|
|
|
199
210
|
|
|
200
211
|
|
|
201
212
|
|
|
202
|
-
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
exports.BLEND_MODES = _chunkCRMAXIUVcjs.BLEND_MODES; exports.CURVE_LUT_SIZE = _chunkWT6ZAWJPcjs.CURVE_LUT_SIZE; exports.DEFAULT_GLOBAL_LIGHT = _chunkWT6ZAWJPcjs.DEFAULT_GLOBAL_LIGHT; exports.DIRECT_GAUSSIAN_MAX_SIGMA = _chunkWT6ZAWJPcjs.DIRECT_GAUSSIAN_MAX_SIGMA; exports.INTERPOLATIONS = _chunkWT6ZAWJPcjs.INTERPOLATIONS; exports.LAYER_EFFECT_KINDS = _chunkWT6ZAWJPcjs.LAYER_EFFECT_KINDS; exports.LayerEffectError = _chunkWT6ZAWJPcjs.LayerEffectError; exports.MAX_EFFECT_REACH = _chunkWT6ZAWJPcjs.MAX_EFFECT_REACH; exports.MAX_TRANSFORM_PIXELS = _chunkWT6ZAWJPcjs.MAX_TRANSFORM_PIXELS; exports.PatternPlacement = _chunkWT6ZAWJPcjs.PatternPlacement; exports.PatternTile = _chunkWT6ZAWJPcjs.PatternTile; exports.RasterCompositor = _chunkWT6ZAWJPcjs.RasterCompositor; exports.STROKE_CHAMFER_MAX = _chunkWT6ZAWJPcjs.STROKE_CHAMFER_MAX; exports.SurfaceDraft = _chunkCRMAXIUVcjs.SurfaceDraft; exports.TILE = _chunkCRMAXIUVcjs.TILE; exports.TILE_SHIFT = _chunkCRMAXIUVcjs.TILE_SHIFT; exports.TiledSurface = _chunkCRMAXIUVcjs.TiledSurface; exports.TransformTooLargeError = _chunkWT6ZAWJPcjs.TransformTooLargeError; exports.ZlibError = _chunkWT6ZAWJPcjs.ZlibError; exports.activeEffectItems = _chunkWT6ZAWJPcjs.activeEffectItems; exports.adler32 = _chunkWT6ZAWJPcjs.adler32; exports.base64ToBytes = _chunkWT6ZAWJPcjs.base64ToBytes; exports.blendChannel = _chunkCRMAXIUVcjs.blendChannel; exports.blendImageData = _chunkCRMAXIUVcjs.blendImageData; exports.blendLum = _chunkCRMAXIUVcjs.blendLum; exports.blendPixel = _chunkCRMAXIUVcjs.blendPixel; exports.blendRgb = _chunkCRMAXIUVcjs.blendRgb; exports.blendTile = _chunkWT6ZAWJPcjs.blendTile; exports.buildEffectMaps = _chunkWT6ZAWJPcjs.buildEffectMaps; exports.builtinPattern = _chunkWT6ZAWJPcjs.builtinPattern; exports.builtinPatternIds = _chunkWT6ZAWJPcjs.builtinPatternIds; exports.bytesToBase64 = _chunkWT6ZAWJPcjs.bytesToBase64; exports.canvasCompositeOperation = _chunkCRMAXIUVcjs.canvasCompositeOperation; exports.changedTiles = _chunkWT6ZAWJPcjs.changedTiles; exports.collectTiles = _chunkCRMAXIUVcjs.collectTiles; exports.compositeLayerEffects = _chunkWT6ZAWJPcjs.compositeLayerEffects; exports.compositeSurfaceOver = _chunkWT6ZAWJPcjs.compositeSurfaceOver; exports.contentBounds = _chunkCRMAXIUVcjs.contentBounds; exports.contourLut = _chunkWT6ZAWJPcjs.contourLut; exports.curveLut = _chunkWT6ZAWJPcjs.curveLut; exports.decodePng = _chunkWT6ZAWJPcjs.decodePng; exports.defaultEffectGradient = _chunkWT6ZAWJPcjs.defaultEffectGradient; exports.defaultLayerEffect = _chunkWT6ZAWJPcjs.defaultLayerEffect; exports.deflate = _chunkWT6ZAWJPcjs.deflate; exports.deflateRaw = _chunkWT6ZAWJPcjs.deflateRaw; exports.effectColorHex = _chunkWT6ZAWJPcjs.effectColorHex; exports.effectReach = _chunkWT6ZAWJPcjs.effectReach; exports.effectsAreLocal = _chunkWT6ZAWJPcjs.effectsAreLocal; exports.effectsFingerprint = _chunkWT6ZAWJPcjs.effectsFingerprint; exports.effectsMargin = _chunkWT6ZAWJPcjs.effectsMargin; exports.effectsScale = _chunkWT6ZAWJPcjs.effectsScale; exports.emptySurface = _chunkCRMAXIUVcjs.emptySurface; exports.encodePng = _chunkWT6ZAWJPcjs.encodePng; exports.fillRect = _chunkCRMAXIUVcjs.fillRect; exports.findLayer = _chunkWT6ZAWJPcjs.findLayer; exports.finishTile = _chunkCRMAXIUVcjs.finishTile; exports.flattenLayers = _chunkWT6ZAWJPcjs.flattenLayers; exports.gaussianBlur = _chunkWT6ZAWJPcjs.gaussianBlur; exports.gradientT = _chunkWT6ZAWJPcjs.gradientT; exports.hasActiveEffects = _chunkWT6ZAWJPcjs.hasActiveEffects; exports.hashNoise = _chunkWT6ZAWJPcjs.hashNoise; exports.inflate = _chunkWT6ZAWJPcjs.inflate; exports.inflateRaw = _chunkWT6ZAWJPcjs.inflateRaw; exports.insertLayer = _chunkWT6ZAWJPcjs.insertLayer; exports.isBlendMode = _chunkCRMAXIUVcjs.isBlendMode; exports.isInterpolation = _chunkWT6ZAWJPcjs.isInterpolation; exports.isLayerEffectKind = _chunkWT6ZAWJPcjs.isLayerEffectKind; exports.isLayerLocked = _chunkWT6ZAWJPcjs.isLayerLocked; exports.isPng = _chunkWT6ZAWJPcjs.isPng; exports.isSeparableBlendMode = _chunkCRMAXIUVcjs.isSeparableBlendMode; exports.keysWeight = _chunkWT6ZAWJPcjs.keysWeight; exports.layerEffectFields = _chunkWT6ZAWJPcjs.layerEffectFields; exports.layerEffectLabel = _chunkWT6ZAWJPcjs.layerEffectLabel; exports.mapLayer = _chunkWT6ZAWJPcjs.mapLayer; exports.mergeLayerEffect = _chunkWT6ZAWJPcjs.mergeLayerEffect; exports.mixPigment8 = _chunkCRMAXIUVcjs.mixPigment8; exports.mixPigmentRgb = _chunkCRMAXIUVcjs.mixPigmentRgb; exports.newEffectId = _chunkWT6ZAWJPcjs.newEffectId; exports.normalizeBlendMode = _chunkCRMAXIUVcjs.normalizeBlendMode; exports.normalizeLayerEffects = _chunkWT6ZAWJPcjs.normalizeLayerEffects; exports.packRgba = _chunkCRMAXIUVcjs.packRgba; exports.parseDataUrl = _chunkWT6ZAWJPcjs.parseDataUrl; exports.parseEffectColor = _chunkWT6ZAWJPcjs.parseEffectColor; exports.patchEffectMaps = _chunkWT6ZAWJPcjs.patchEffectMaps; exports.pngDataUrl = _chunkWT6ZAWJPcjs.pngDataUrl; exports.readPixel = _chunkCRMAXIUVcjs.readPixel; exports.readRegion = _chunkCRMAXIUVcjs.readRegion; exports.reduceSurface = _chunkWT6ZAWJPcjs.reduceSurface; exports.renderLayerEffects = _chunkWT6ZAWJPcjs.renderLayerEffects; exports.scaleLayerEffect = _chunkWT6ZAWJPcjs.scaleLayerEffect; exports.setLum = _chunkCRMAXIUVcjs.setLum; exports.solidSurface = _chunkCRMAXIUVcjs.solidSurface; exports.surfaceBytes = _chunkCRMAXIUVcjs.surfaceBytes; exports.surfaceFromPixels = _chunkCRMAXIUVcjs.surfaceFromPixels; exports.surfacesEqual = _chunkCRMAXIUVcjs.surfacesEqual; exports.tileCoord = _chunkCRMAXIUVcjs.tileCoord; exports.tileKey = _chunkCRMAXIUVcjs.tileKey; exports.tileRect = _chunkCRMAXIUVcjs.tileRect; exports.tilesInRect = _chunkCRMAXIUVcjs.tilesInRect; exports.transformSurface = _chunkWT6ZAWJPcjs.transformSurface; exports.transformedBounds = _chunkWT6ZAWJPcjs.transformedBounds; exports.translateSurface = _chunkCRMAXIUVcjs.translateSurface; exports.uniformTile = _chunkCRMAXIUVcjs.uniformTile; exports.validateEffectGradient = _chunkWT6ZAWJPcjs.validateEffectGradient; exports.validateLayerEffect = _chunkWT6ZAWJPcjs.validateLayerEffect; exports.validateLayerEffects = _chunkWT6ZAWJPcjs.validateLayerEffects; exports.warpSurface = _chunkWT6ZAWJPcjs.warpSurface; exports.writeRegion = _chunkCRMAXIUVcjs.writeRegion;
|
|
203
224
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/editor/editor/packages/core/dist/raster/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/editor/editor/packages/core/dist/raster/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,ikMAAC","file":"/home/runner/work/editor/editor/packages/core/dist/raster/index.cjs"}
|
package/dist/raster/index.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { B as BlendMode, M as MaskSurface, P as PixelSurface, R as RasterRect, T as TiledSurface, h as TileKey } from '../surface-DIA-XatS.cjs';
|
|
2
2
|
export { a as BLEND_MODES, b as BlendModeInfo, c as Rgb, d as Rgba, S as SurfaceDraft, e as TILE, f as TILE_SHIFT, g as Tile, i as blendChannel, j as blendImageData, k as blendLum, l as blendPixel, m as blendRgb, n as canvasCompositeOperation, o as collectTiles, p as contentBounds, q as emptySurface, r as fillRect, s as finishTile, t as isBlendMode, u as isSeparableBlendMode, v as mixPigment8, w as mixPigmentRgb, x as normalizeBlendMode, y as packRgba, z as readPixel, A as readRegion, C as setLum, D as solidSurface, E as surfaceBytes, F as surfaceFromPixels, G as surfacesEqual, H as tileCoord, I as tileKey, J as tileRect, K as tilesInRect, L as translateSurface, N as uniformTile, O as writeRegion } from '../surface-DIA-XatS.cjs';
|
|
3
|
+
import { H as Homography, V as Vec2 } from '../types-CwMPoRMU.cjs';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Layer effects (Photoshop's layer styles) as data: drop and inner shadows, outer and inner
|
|
@@ -396,6 +397,11 @@ interface RasterMask<Source = unknown> {
|
|
|
396
397
|
feather?: number;
|
|
397
398
|
/** `false` keeps the mask but ignores it. */
|
|
398
399
|
enabled?: boolean;
|
|
400
|
+
/**
|
|
401
|
+
* `false` unlinks the mask from its layer (Photoshop's chain icon): moving or transforming the
|
|
402
|
+
* layer's pixels leaves the mask where it is. Missing = linked.
|
|
403
|
+
*/
|
|
404
|
+
linked?: boolean;
|
|
399
405
|
source?: Source;
|
|
400
406
|
}
|
|
401
407
|
interface RasterLayerBase {
|
|
@@ -414,7 +420,7 @@ interface RasterLayerBase {
|
|
|
414
420
|
}
|
|
415
421
|
interface RasterPixelLayer extends RasterLayerBase {
|
|
416
422
|
type: 'pixel';
|
|
417
|
-
/** Pixels in layer space; document position = layer position + `offset`. A mask moves with it. */
|
|
423
|
+
/** Pixels in layer space; document position = layer position + `offset`. A linked mask moves with it. */
|
|
418
424
|
surface: PixelSurface;
|
|
419
425
|
/** Integer move without re-tiling. */
|
|
420
426
|
offset: {
|
|
@@ -742,6 +748,96 @@ type Edge = BlurEdge;
|
|
|
742
748
|
*/
|
|
743
749
|
declare function gaussianBlur(src: ArrayLike<number>, w: number, h: number, sigma: number, edge?: Edge): Float32Array;
|
|
744
750
|
|
|
751
|
+
/**
|
|
752
|
+
* Resampling tiled surfaces through geometric maps: Free Transform (scale, rotate, skew, distort,
|
|
753
|
+
* perspective: one projective map) and Warp (any forward map, such as a Bézier mesh).
|
|
754
|
+
*
|
|
755
|
+
* - Inverse mapping per destination tile: each destination tile reads only the source window its
|
|
756
|
+
* pixels map into, so memory stays bounded by one tile's footprint, and the result is a new
|
|
757
|
+
* copy-on-write surface (an identity or a whole-pixel move returns the source, or shares its
|
|
758
|
+
* tiles).
|
|
759
|
+
* - Nearest, bilinear and Photoshop's Bicubic (the Keys cubic at a = −0.75). Colour is sampled
|
|
760
|
+
* premultiplied by alpha, so partially transparent edges don't pick up the colour of the
|
|
761
|
+
* transparent pixels around them; outside the source everything is transparent.
|
|
762
|
+
* - Large reductions with Bicubic are pre-filtered: the source is box-averaged by whole factors
|
|
763
|
+
* first and the cubic widened by the rest, so shrinking a layer doesn't alias. Bilinear and
|
|
764
|
+
* nearest sample the source directly, as Photoshop's do.
|
|
765
|
+
* - Masks (one channel) are warped as "value + inside": outside the source and outside the warped
|
|
766
|
+
* area they read as the surface's default value, so a reveal-all mask stays white around a
|
|
767
|
+
* transformed hole.
|
|
768
|
+
* - A Distort dragged past the horizon draws only the side of the horizon most of the source maps
|
|
769
|
+
* to (no mirrored copy wrapped round infinity).
|
|
770
|
+
*
|
|
771
|
+
* No DOM: runs in Node, tests and workers.
|
|
772
|
+
*/
|
|
773
|
+
|
|
774
|
+
/** Resampling of a transform (Photoshop's interpolation menu). */
|
|
775
|
+
type Interpolation = 'nearest' | 'bilinear' | 'bicubic';
|
|
776
|
+
declare const INTERPOLATIONS: readonly Interpolation[];
|
|
777
|
+
declare function isInterpolation(value: unknown): value is Interpolation;
|
|
778
|
+
/**
|
|
779
|
+
* The largest result (pixels) one resample may build: about 11 600 × 11 600. Only the size of the
|
|
780
|
+
* result counts, not where it lands. A scale past it is refused rather than clipped.
|
|
781
|
+
*/
|
|
782
|
+
declare const MAX_TRANSFORM_PIXELS: number;
|
|
783
|
+
/** A transform whose result would be too large; the message gives the size and the limit. */
|
|
784
|
+
declare class TransformTooLargeError extends Error {
|
|
785
|
+
constructor(message: string);
|
|
786
|
+
}
|
|
787
|
+
interface ResampleOptions {
|
|
788
|
+
/** Default `bicubic`. */
|
|
789
|
+
interpolation?: Interpolation;
|
|
790
|
+
/** The source region to transform (default: the surface's content bounds). Pixels outside it are not moved. */
|
|
791
|
+
source?: RasterRect;
|
|
792
|
+
/** Keep only destination pixels inside this rectangle (a preview of the visible area). */
|
|
793
|
+
clip?: RasterRect;
|
|
794
|
+
/**
|
|
795
|
+
* Preview speed-up: sample once per `step × step` block of destination pixels and fill the
|
|
796
|
+
* block (a power of two, 1..64; default 1, every pixel).
|
|
797
|
+
*/
|
|
798
|
+
step?: number;
|
|
799
|
+
}
|
|
800
|
+
/**
|
|
801
|
+
* Photoshop's Bicubic: the Keys cubic at a = −0.75 (Catmull-Rom is −0.5). Measured on Photoshop
|
|
802
|
+
* 27.11's Free Transform by photocraft: a 200 % step edge matches within 0.5 levels.
|
|
803
|
+
*/
|
|
804
|
+
declare function keysWeight(x: number): number;
|
|
805
|
+
/**
|
|
806
|
+
* The surface box-averaged by `factor` (a whole number ≥ 1) in both directions: reduced pixel
|
|
807
|
+
* (i, j) covers pixels [i·factor, (i+1)·factor) of each axis. For previews: transform the reduced
|
|
808
|
+
* surface through the map composed with a scale by `factor`, so a preview at a low zoom reads a
|
|
809
|
+
* fraction of the pixels.
|
|
810
|
+
*/
|
|
811
|
+
declare function reduceSurface(src: TiledSurface, factor: number): TiledSurface;
|
|
812
|
+
/** The destination rectangle `transformSurface` fills for `source` under `h`, or `null` when it is empty or unbounded. */
|
|
813
|
+
declare function transformedBounds(source: RasterRect, h: Homography): RasterRect | null;
|
|
814
|
+
/**
|
|
815
|
+
* The surface's content inside `options.source` (default: all of it) warped by `h` (source →
|
|
816
|
+
* destination, both in the surface's pixel space). Pixels outside the warped area are the default
|
|
817
|
+
* (transparent for layers). Throws `TransformTooLargeError` past `MAX_TRANSFORM_PIXELS`.
|
|
818
|
+
*/
|
|
819
|
+
declare function transformSurface(src: TiledSurface, h: Homography, options?: ResampleOptions): TiledSurface;
|
|
820
|
+
/**
|
|
821
|
+
* The surface's content inside `options.source` (default: all of it) warped through the forward
|
|
822
|
+
* map `f` (source → destination pixel space; `null` where it is undefined).
|
|
823
|
+
*
|
|
824
|
+
* The source rectangle is subdivided into a fine grid whose vertices are mapped forward; each
|
|
825
|
+
* cell's two triangles are rasterized in destination space with the source position interpolated
|
|
826
|
+
* barycentrically, then the source is sampled there. Cells are a few source pixels across, so the
|
|
827
|
+
* piecewise-affine inverse is within a small fraction of a pixel of the true one; affine maps (the
|
|
828
|
+
* identity included) are reproduced exactly. Where the warp shrinks the source, each pixel instead
|
|
829
|
+
* averages a grid of bilinear subsamples over its source footprint, so thin lines don't alias.
|
|
830
|
+
* Where the warp folds over itself the later (lower-right) cell wins.
|
|
831
|
+
*/
|
|
832
|
+
declare function warpSurface(src: TiledSurface, f: (p: Vec2) => Vec2 | null, options?: ResampleOptions): TiledSurface;
|
|
833
|
+
/**
|
|
834
|
+
* `top` (RGBA, straight alpha) composited over `base` with the Normal blend. A one-channel `base`
|
|
835
|
+
* (a mask) takes `top`'s red channel as the value, weighted by its alpha: that is how a moved part
|
|
836
|
+
* of a mask travels (value and coverage) and lands. Only tiles `top` stores are touched, so every
|
|
837
|
+
* other tile of `base` stays shared.
|
|
838
|
+
*/
|
|
839
|
+
declare function compositeSurfaceOver(base: TiledSurface, top: TiledSurface): TiledSurface;
|
|
840
|
+
|
|
745
841
|
/**
|
|
746
842
|
* Curve lookup tables shared by Curves adjustments and layer-effect contours.
|
|
747
843
|
*/
|
|
@@ -947,4 +1043,4 @@ declare function deflateRaw(data: Uint8Array, level?: 0 | 1): Uint8Array;
|
|
|
947
1043
|
/** zlib stream: header, raw deflate, Adler-32. */
|
|
948
1044
|
declare function deflate(data: Uint8Array, level?: 0 | 1): Uint8Array;
|
|
949
1045
|
|
|
950
|
-
export { type BevelContour, type BevelEmbossEffect, type BevelStyle, type BevelTechnique, type BevelTexture, BlendMode, type BlurEdge, CURVE_LUT_SIZE, type ColorOverlayEffect, type CompositeCallOptions, type CompositeStats, type CompositorLayer, type CompositorOptions, type CompositorProfile, type ContourPoint, DEFAULT_GLOBAL_LIGHT, DIRECT_GAUSSIAN_MAX_SIGMA, type DecodedPng, type DropShadowEffect, type EffectCompositeInput, type EffectContext, type EffectContour, type EffectFill, type EffectGradient, type EffectMaps, type EffectPattern, type EffectPatternRef, type EffectRect, type GlobalLight, type GlowTechnique, type GradientColorStop, type GradientOpacityStop, type GradientOverlayEffect, type GradientStyle, type GroupBlendMode, type GroupIn, type InnerGlowEffect, type InnerShadowEffect, LAYER_EFFECT_KINDS, type LayerEffect, LayerEffectError, type LayerEffectKind, type LayerEffects, type LayerLocation, type LayerLocks, MAX_EFFECT_REACH, MaskSurface, type OuterGlowEffect, type PatternOverlayEffect, PatternPlacement, PatternTile, type PixelFilterSpec, PixelSurface, RasterCompositor, type RasterGroupLayer, type RasterLayer, type RasterLayerBase, type RasterMask, type RasterNode, type RasterPixelLayer, RasterRect, type RasterSources, STROKE_CHAMFER_MAX, type SatinEffect, type StrokeEffect, type StrokePosition, TileKey, TiledSurface, ZlibError, activeEffectItems, adler32, base64ToBytes, blendTile, buildEffectMaps, builtinPattern, builtinPatternIds, bytesToBase64, changedTiles, compositeLayerEffects, contourLut, curveLut, decodePng, defaultEffectGradient, defaultLayerEffect, deflate, deflateRaw, effectColorHex, effectReach, effectsAreLocal, effectsFingerprint, effectsMargin, effectsScale, encodePng, findLayer, flattenLayers, gaussianBlur, gradientT, hasActiveEffects, hashNoise, inflate, inflateRaw, insertLayer, isLayerEffectKind, isLayerLocked, isPng, layerEffectFields, layerEffectLabel, mapLayer, mergeLayerEffect, newEffectId, normalizeLayerEffects, parseDataUrl, parseEffectColor, patchEffectMaps, pngDataUrl, renderLayerEffects, scaleLayerEffect, validateEffectGradient, validateLayerEffect, validateLayerEffects };
|
|
1046
|
+
export { type BevelContour, type BevelEmbossEffect, type BevelStyle, type BevelTechnique, type BevelTexture, BlendMode, type BlurEdge, CURVE_LUT_SIZE, type ColorOverlayEffect, type CompositeCallOptions, type CompositeStats, type CompositorLayer, type CompositorOptions, type CompositorProfile, type ContourPoint, DEFAULT_GLOBAL_LIGHT, DIRECT_GAUSSIAN_MAX_SIGMA, type DecodedPng, type DropShadowEffect, type EffectCompositeInput, type EffectContext, type EffectContour, type EffectFill, type EffectGradient, type EffectMaps, type EffectPattern, type EffectPatternRef, type EffectRect, type GlobalLight, type GlowTechnique, type GradientColorStop, type GradientOpacityStop, type GradientOverlayEffect, type GradientStyle, type GroupBlendMode, type GroupIn, INTERPOLATIONS, type InnerGlowEffect, type InnerShadowEffect, type Interpolation, LAYER_EFFECT_KINDS, type LayerEffect, LayerEffectError, type LayerEffectKind, type LayerEffects, type LayerLocation, type LayerLocks, MAX_EFFECT_REACH, MAX_TRANSFORM_PIXELS, MaskSurface, type OuterGlowEffect, type PatternOverlayEffect, PatternPlacement, PatternTile, type PixelFilterSpec, PixelSurface, RasterCompositor, type RasterGroupLayer, type RasterLayer, type RasterLayerBase, type RasterMask, type RasterNode, type RasterPixelLayer, RasterRect, type RasterSources, type ResampleOptions, STROKE_CHAMFER_MAX, type SatinEffect, type StrokeEffect, type StrokePosition, TileKey, TiledSurface, TransformTooLargeError, ZlibError, activeEffectItems, adler32, base64ToBytes, blendTile, buildEffectMaps, builtinPattern, builtinPatternIds, bytesToBase64, changedTiles, compositeLayerEffects, compositeSurfaceOver, contourLut, curveLut, decodePng, defaultEffectGradient, defaultLayerEffect, deflate, deflateRaw, effectColorHex, effectReach, effectsAreLocal, effectsFingerprint, effectsMargin, effectsScale, encodePng, findLayer, flattenLayers, gaussianBlur, gradientT, hasActiveEffects, hashNoise, inflate, inflateRaw, insertLayer, isInterpolation, isLayerEffectKind, isLayerLocked, isPng, keysWeight, layerEffectFields, layerEffectLabel, mapLayer, mergeLayerEffect, newEffectId, normalizeLayerEffects, parseDataUrl, parseEffectColor, patchEffectMaps, pngDataUrl, reduceSurface, renderLayerEffects, scaleLayerEffect, transformSurface, transformedBounds, validateEffectGradient, validateLayerEffect, validateLayerEffects, warpSurface };
|
package/dist/raster/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { B as BlendMode, M as MaskSurface, P as PixelSurface, R as RasterRect, T as TiledSurface, h as TileKey } from '../surface-DIA-XatS.js';
|
|
2
2
|
export { a as BLEND_MODES, b as BlendModeInfo, c as Rgb, d as Rgba, S as SurfaceDraft, e as TILE, f as TILE_SHIFT, g as Tile, i as blendChannel, j as blendImageData, k as blendLum, l as blendPixel, m as blendRgb, n as canvasCompositeOperation, o as collectTiles, p as contentBounds, q as emptySurface, r as fillRect, s as finishTile, t as isBlendMode, u as isSeparableBlendMode, v as mixPigment8, w as mixPigmentRgb, x as normalizeBlendMode, y as packRgba, z as readPixel, A as readRegion, C as setLum, D as solidSurface, E as surfaceBytes, F as surfaceFromPixels, G as surfacesEqual, H as tileCoord, I as tileKey, J as tileRect, K as tilesInRect, L as translateSurface, N as uniformTile, O as writeRegion } from '../surface-DIA-XatS.js';
|
|
3
|
+
import { H as Homography, V as Vec2 } from '../types-CwMPoRMU.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Layer effects (Photoshop's layer styles) as data: drop and inner shadows, outer and inner
|
|
@@ -396,6 +397,11 @@ interface RasterMask<Source = unknown> {
|
|
|
396
397
|
feather?: number;
|
|
397
398
|
/** `false` keeps the mask but ignores it. */
|
|
398
399
|
enabled?: boolean;
|
|
400
|
+
/**
|
|
401
|
+
* `false` unlinks the mask from its layer (Photoshop's chain icon): moving or transforming the
|
|
402
|
+
* layer's pixels leaves the mask where it is. Missing = linked.
|
|
403
|
+
*/
|
|
404
|
+
linked?: boolean;
|
|
399
405
|
source?: Source;
|
|
400
406
|
}
|
|
401
407
|
interface RasterLayerBase {
|
|
@@ -414,7 +420,7 @@ interface RasterLayerBase {
|
|
|
414
420
|
}
|
|
415
421
|
interface RasterPixelLayer extends RasterLayerBase {
|
|
416
422
|
type: 'pixel';
|
|
417
|
-
/** Pixels in layer space; document position = layer position + `offset`. A mask moves with it. */
|
|
423
|
+
/** Pixels in layer space; document position = layer position + `offset`. A linked mask moves with it. */
|
|
418
424
|
surface: PixelSurface;
|
|
419
425
|
/** Integer move without re-tiling. */
|
|
420
426
|
offset: {
|
|
@@ -742,6 +748,96 @@ type Edge = BlurEdge;
|
|
|
742
748
|
*/
|
|
743
749
|
declare function gaussianBlur(src: ArrayLike<number>, w: number, h: number, sigma: number, edge?: Edge): Float32Array;
|
|
744
750
|
|
|
751
|
+
/**
|
|
752
|
+
* Resampling tiled surfaces through geometric maps: Free Transform (scale, rotate, skew, distort,
|
|
753
|
+
* perspective: one projective map) and Warp (any forward map, such as a Bézier mesh).
|
|
754
|
+
*
|
|
755
|
+
* - Inverse mapping per destination tile: each destination tile reads only the source window its
|
|
756
|
+
* pixels map into, so memory stays bounded by one tile's footprint, and the result is a new
|
|
757
|
+
* copy-on-write surface (an identity or a whole-pixel move returns the source, or shares its
|
|
758
|
+
* tiles).
|
|
759
|
+
* - Nearest, bilinear and Photoshop's Bicubic (the Keys cubic at a = −0.75). Colour is sampled
|
|
760
|
+
* premultiplied by alpha, so partially transparent edges don't pick up the colour of the
|
|
761
|
+
* transparent pixels around them; outside the source everything is transparent.
|
|
762
|
+
* - Large reductions with Bicubic are pre-filtered: the source is box-averaged by whole factors
|
|
763
|
+
* first and the cubic widened by the rest, so shrinking a layer doesn't alias. Bilinear and
|
|
764
|
+
* nearest sample the source directly, as Photoshop's do.
|
|
765
|
+
* - Masks (one channel) are warped as "value + inside": outside the source and outside the warped
|
|
766
|
+
* area they read as the surface's default value, so a reveal-all mask stays white around a
|
|
767
|
+
* transformed hole.
|
|
768
|
+
* - A Distort dragged past the horizon draws only the side of the horizon most of the source maps
|
|
769
|
+
* to (no mirrored copy wrapped round infinity).
|
|
770
|
+
*
|
|
771
|
+
* No DOM: runs in Node, tests and workers.
|
|
772
|
+
*/
|
|
773
|
+
|
|
774
|
+
/** Resampling of a transform (Photoshop's interpolation menu). */
|
|
775
|
+
type Interpolation = 'nearest' | 'bilinear' | 'bicubic';
|
|
776
|
+
declare const INTERPOLATIONS: readonly Interpolation[];
|
|
777
|
+
declare function isInterpolation(value: unknown): value is Interpolation;
|
|
778
|
+
/**
|
|
779
|
+
* The largest result (pixels) one resample may build: about 11 600 × 11 600. Only the size of the
|
|
780
|
+
* result counts, not where it lands. A scale past it is refused rather than clipped.
|
|
781
|
+
*/
|
|
782
|
+
declare const MAX_TRANSFORM_PIXELS: number;
|
|
783
|
+
/** A transform whose result would be too large; the message gives the size and the limit. */
|
|
784
|
+
declare class TransformTooLargeError extends Error {
|
|
785
|
+
constructor(message: string);
|
|
786
|
+
}
|
|
787
|
+
interface ResampleOptions {
|
|
788
|
+
/** Default `bicubic`. */
|
|
789
|
+
interpolation?: Interpolation;
|
|
790
|
+
/** The source region to transform (default: the surface's content bounds). Pixels outside it are not moved. */
|
|
791
|
+
source?: RasterRect;
|
|
792
|
+
/** Keep only destination pixels inside this rectangle (a preview of the visible area). */
|
|
793
|
+
clip?: RasterRect;
|
|
794
|
+
/**
|
|
795
|
+
* Preview speed-up: sample once per `step × step` block of destination pixels and fill the
|
|
796
|
+
* block (a power of two, 1..64; default 1, every pixel).
|
|
797
|
+
*/
|
|
798
|
+
step?: number;
|
|
799
|
+
}
|
|
800
|
+
/**
|
|
801
|
+
* Photoshop's Bicubic: the Keys cubic at a = −0.75 (Catmull-Rom is −0.5). Measured on Photoshop
|
|
802
|
+
* 27.11's Free Transform by photocraft: a 200 % step edge matches within 0.5 levels.
|
|
803
|
+
*/
|
|
804
|
+
declare function keysWeight(x: number): number;
|
|
805
|
+
/**
|
|
806
|
+
* The surface box-averaged by `factor` (a whole number ≥ 1) in both directions: reduced pixel
|
|
807
|
+
* (i, j) covers pixels [i·factor, (i+1)·factor) of each axis. For previews: transform the reduced
|
|
808
|
+
* surface through the map composed with a scale by `factor`, so a preview at a low zoom reads a
|
|
809
|
+
* fraction of the pixels.
|
|
810
|
+
*/
|
|
811
|
+
declare function reduceSurface(src: TiledSurface, factor: number): TiledSurface;
|
|
812
|
+
/** The destination rectangle `transformSurface` fills for `source` under `h`, or `null` when it is empty or unbounded. */
|
|
813
|
+
declare function transformedBounds(source: RasterRect, h: Homography): RasterRect | null;
|
|
814
|
+
/**
|
|
815
|
+
* The surface's content inside `options.source` (default: all of it) warped by `h` (source →
|
|
816
|
+
* destination, both in the surface's pixel space). Pixels outside the warped area are the default
|
|
817
|
+
* (transparent for layers). Throws `TransformTooLargeError` past `MAX_TRANSFORM_PIXELS`.
|
|
818
|
+
*/
|
|
819
|
+
declare function transformSurface(src: TiledSurface, h: Homography, options?: ResampleOptions): TiledSurface;
|
|
820
|
+
/**
|
|
821
|
+
* The surface's content inside `options.source` (default: all of it) warped through the forward
|
|
822
|
+
* map `f` (source → destination pixel space; `null` where it is undefined).
|
|
823
|
+
*
|
|
824
|
+
* The source rectangle is subdivided into a fine grid whose vertices are mapped forward; each
|
|
825
|
+
* cell's two triangles are rasterized in destination space with the source position interpolated
|
|
826
|
+
* barycentrically, then the source is sampled there. Cells are a few source pixels across, so the
|
|
827
|
+
* piecewise-affine inverse is within a small fraction of a pixel of the true one; affine maps (the
|
|
828
|
+
* identity included) are reproduced exactly. Where the warp shrinks the source, each pixel instead
|
|
829
|
+
* averages a grid of bilinear subsamples over its source footprint, so thin lines don't alias.
|
|
830
|
+
* Where the warp folds over itself the later (lower-right) cell wins.
|
|
831
|
+
*/
|
|
832
|
+
declare function warpSurface(src: TiledSurface, f: (p: Vec2) => Vec2 | null, options?: ResampleOptions): TiledSurface;
|
|
833
|
+
/**
|
|
834
|
+
* `top` (RGBA, straight alpha) composited over `base` with the Normal blend. A one-channel `base`
|
|
835
|
+
* (a mask) takes `top`'s red channel as the value, weighted by its alpha: that is how a moved part
|
|
836
|
+
* of a mask travels (value and coverage) and lands. Only tiles `top` stores are touched, so every
|
|
837
|
+
* other tile of `base` stays shared.
|
|
838
|
+
*/
|
|
839
|
+
declare function compositeSurfaceOver(base: TiledSurface, top: TiledSurface): TiledSurface;
|
|
840
|
+
|
|
745
841
|
/**
|
|
746
842
|
* Curve lookup tables shared by Curves adjustments and layer-effect contours.
|
|
747
843
|
*/
|
|
@@ -947,4 +1043,4 @@ declare function deflateRaw(data: Uint8Array, level?: 0 | 1): Uint8Array;
|
|
|
947
1043
|
/** zlib stream: header, raw deflate, Adler-32. */
|
|
948
1044
|
declare function deflate(data: Uint8Array, level?: 0 | 1): Uint8Array;
|
|
949
1045
|
|
|
950
|
-
export { type BevelContour, type BevelEmbossEffect, type BevelStyle, type BevelTechnique, type BevelTexture, BlendMode, type BlurEdge, CURVE_LUT_SIZE, type ColorOverlayEffect, type CompositeCallOptions, type CompositeStats, type CompositorLayer, type CompositorOptions, type CompositorProfile, type ContourPoint, DEFAULT_GLOBAL_LIGHT, DIRECT_GAUSSIAN_MAX_SIGMA, type DecodedPng, type DropShadowEffect, type EffectCompositeInput, type EffectContext, type EffectContour, type EffectFill, type EffectGradient, type EffectMaps, type EffectPattern, type EffectPatternRef, type EffectRect, type GlobalLight, type GlowTechnique, type GradientColorStop, type GradientOpacityStop, type GradientOverlayEffect, type GradientStyle, type GroupBlendMode, type GroupIn, type InnerGlowEffect, type InnerShadowEffect, LAYER_EFFECT_KINDS, type LayerEffect, LayerEffectError, type LayerEffectKind, type LayerEffects, type LayerLocation, type LayerLocks, MAX_EFFECT_REACH, MaskSurface, type OuterGlowEffect, type PatternOverlayEffect, PatternPlacement, PatternTile, type PixelFilterSpec, PixelSurface, RasterCompositor, type RasterGroupLayer, type RasterLayer, type RasterLayerBase, type RasterMask, type RasterNode, type RasterPixelLayer, RasterRect, type RasterSources, STROKE_CHAMFER_MAX, type SatinEffect, type StrokeEffect, type StrokePosition, TileKey, TiledSurface, ZlibError, activeEffectItems, adler32, base64ToBytes, blendTile, buildEffectMaps, builtinPattern, builtinPatternIds, bytesToBase64, changedTiles, compositeLayerEffects, contourLut, curveLut, decodePng, defaultEffectGradient, defaultLayerEffect, deflate, deflateRaw, effectColorHex, effectReach, effectsAreLocal, effectsFingerprint, effectsMargin, effectsScale, encodePng, findLayer, flattenLayers, gaussianBlur, gradientT, hasActiveEffects, hashNoise, inflate, inflateRaw, insertLayer, isLayerEffectKind, isLayerLocked, isPng, layerEffectFields, layerEffectLabel, mapLayer, mergeLayerEffect, newEffectId, normalizeLayerEffects, parseDataUrl, parseEffectColor, patchEffectMaps, pngDataUrl, renderLayerEffects, scaleLayerEffect, validateEffectGradient, validateLayerEffect, validateLayerEffects };
|
|
1046
|
+
export { type BevelContour, type BevelEmbossEffect, type BevelStyle, type BevelTechnique, type BevelTexture, BlendMode, type BlurEdge, CURVE_LUT_SIZE, type ColorOverlayEffect, type CompositeCallOptions, type CompositeStats, type CompositorLayer, type CompositorOptions, type CompositorProfile, type ContourPoint, DEFAULT_GLOBAL_LIGHT, DIRECT_GAUSSIAN_MAX_SIGMA, type DecodedPng, type DropShadowEffect, type EffectCompositeInput, type EffectContext, type EffectContour, type EffectFill, type EffectGradient, type EffectMaps, type EffectPattern, type EffectPatternRef, type EffectRect, type GlobalLight, type GlowTechnique, type GradientColorStop, type GradientOpacityStop, type GradientOverlayEffect, type GradientStyle, type GroupBlendMode, type GroupIn, INTERPOLATIONS, type InnerGlowEffect, type InnerShadowEffect, type Interpolation, LAYER_EFFECT_KINDS, type LayerEffect, LayerEffectError, type LayerEffectKind, type LayerEffects, type LayerLocation, type LayerLocks, MAX_EFFECT_REACH, MAX_TRANSFORM_PIXELS, MaskSurface, type OuterGlowEffect, type PatternOverlayEffect, PatternPlacement, PatternTile, type PixelFilterSpec, PixelSurface, RasterCompositor, type RasterGroupLayer, type RasterLayer, type RasterLayerBase, type RasterMask, type RasterNode, type RasterPixelLayer, RasterRect, type RasterSources, type ResampleOptions, STROKE_CHAMFER_MAX, type SatinEffect, type StrokeEffect, type StrokePosition, TileKey, TiledSurface, TransformTooLargeError, ZlibError, activeEffectItems, adler32, base64ToBytes, blendTile, buildEffectMaps, builtinPattern, builtinPatternIds, bytesToBase64, changedTiles, compositeLayerEffects, compositeSurfaceOver, contourLut, curveLut, decodePng, defaultEffectGradient, defaultLayerEffect, deflate, deflateRaw, effectColorHex, effectReach, effectsAreLocal, effectsFingerprint, effectsMargin, effectsScale, encodePng, findLayer, flattenLayers, gaussianBlur, gradientT, hasActiveEffects, hashNoise, inflate, inflateRaw, insertLayer, isInterpolation, isLayerEffectKind, isLayerLocked, isPng, keysWeight, layerEffectFields, layerEffectLabel, mapLayer, mergeLayerEffect, newEffectId, normalizeLayerEffects, parseDataUrl, parseEffectColor, patchEffectMaps, pngDataUrl, reduceSurface, renderLayerEffects, scaleLayerEffect, transformSurface, transformedBounds, validateEffectGradient, validateLayerEffect, validateLayerEffects, warpSurface };
|
package/dist/raster/index.js
CHANGED
|
@@ -2,13 +2,16 @@ import {
|
|
|
2
2
|
CURVE_LUT_SIZE,
|
|
3
3
|
DEFAULT_GLOBAL_LIGHT,
|
|
4
4
|
DIRECT_GAUSSIAN_MAX_SIGMA,
|
|
5
|
+
INTERPOLATIONS,
|
|
5
6
|
LAYER_EFFECT_KINDS,
|
|
6
7
|
LayerEffectError,
|
|
7
8
|
MAX_EFFECT_REACH,
|
|
9
|
+
MAX_TRANSFORM_PIXELS,
|
|
8
10
|
PatternPlacement,
|
|
9
11
|
PatternTile,
|
|
10
12
|
RasterCompositor,
|
|
11
13
|
STROKE_CHAMFER_MAX,
|
|
14
|
+
TransformTooLargeError,
|
|
12
15
|
ZlibError,
|
|
13
16
|
activeEffectItems,
|
|
14
17
|
adler32,
|
|
@@ -20,6 +23,7 @@ import {
|
|
|
20
23
|
bytesToBase64,
|
|
21
24
|
changedTiles,
|
|
22
25
|
compositeLayerEffects,
|
|
26
|
+
compositeSurfaceOver,
|
|
23
27
|
contourLut,
|
|
24
28
|
curveLut,
|
|
25
29
|
decodePng,
|
|
@@ -43,9 +47,11 @@ import {
|
|
|
43
47
|
inflate,
|
|
44
48
|
inflateRaw,
|
|
45
49
|
insertLayer,
|
|
50
|
+
isInterpolation,
|
|
46
51
|
isLayerEffectKind,
|
|
47
52
|
isLayerLocked,
|
|
48
53
|
isPng,
|
|
54
|
+
keysWeight,
|
|
49
55
|
layerEffectFields,
|
|
50
56
|
layerEffectLabel,
|
|
51
57
|
mapLayer,
|
|
@@ -56,12 +62,17 @@ import {
|
|
|
56
62
|
parseEffectColor,
|
|
57
63
|
patchEffectMaps,
|
|
58
64
|
pngDataUrl,
|
|
65
|
+
reduceSurface,
|
|
59
66
|
renderLayerEffects,
|
|
60
67
|
scaleLayerEffect,
|
|
68
|
+
transformSurface,
|
|
69
|
+
transformedBounds,
|
|
61
70
|
validateEffectGradient,
|
|
62
71
|
validateLayerEffect,
|
|
63
|
-
validateLayerEffects
|
|
64
|
-
|
|
72
|
+
validateLayerEffects,
|
|
73
|
+
warpSurface
|
|
74
|
+
} from "../chunk-WIR377F6.js";
|
|
75
|
+
import "../chunk-GX332W2C.js";
|
|
65
76
|
import {
|
|
66
77
|
BLEND_MODES,
|
|
67
78
|
SurfaceDraft,
|
|
@@ -105,9 +116,11 @@ export {
|
|
|
105
116
|
CURVE_LUT_SIZE,
|
|
106
117
|
DEFAULT_GLOBAL_LIGHT,
|
|
107
118
|
DIRECT_GAUSSIAN_MAX_SIGMA,
|
|
119
|
+
INTERPOLATIONS,
|
|
108
120
|
LAYER_EFFECT_KINDS,
|
|
109
121
|
LayerEffectError,
|
|
110
122
|
MAX_EFFECT_REACH,
|
|
123
|
+
MAX_TRANSFORM_PIXELS,
|
|
111
124
|
PatternPlacement,
|
|
112
125
|
PatternTile,
|
|
113
126
|
RasterCompositor,
|
|
@@ -116,6 +129,7 @@ export {
|
|
|
116
129
|
TILE,
|
|
117
130
|
TILE_SHIFT,
|
|
118
131
|
TiledSurface,
|
|
132
|
+
TransformTooLargeError,
|
|
119
133
|
ZlibError,
|
|
120
134
|
activeEffectItems,
|
|
121
135
|
adler32,
|
|
@@ -134,6 +148,7 @@ export {
|
|
|
134
148
|
changedTiles,
|
|
135
149
|
collectTiles,
|
|
136
150
|
compositeLayerEffects,
|
|
151
|
+
compositeSurfaceOver,
|
|
137
152
|
contentBounds,
|
|
138
153
|
contourLut,
|
|
139
154
|
curveLut,
|
|
@@ -162,10 +177,12 @@ export {
|
|
|
162
177
|
inflateRaw,
|
|
163
178
|
insertLayer,
|
|
164
179
|
isBlendMode,
|
|
180
|
+
isInterpolation,
|
|
165
181
|
isLayerEffectKind,
|
|
166
182
|
isLayerLocked,
|
|
167
183
|
isPng,
|
|
168
184
|
isSeparableBlendMode,
|
|
185
|
+
keysWeight,
|
|
169
186
|
layerEffectFields,
|
|
170
187
|
layerEffectLabel,
|
|
171
188
|
mapLayer,
|
|
@@ -182,6 +199,7 @@ export {
|
|
|
182
199
|
pngDataUrl,
|
|
183
200
|
readPixel,
|
|
184
201
|
readRegion,
|
|
202
|
+
reduceSurface,
|
|
185
203
|
renderLayerEffects,
|
|
186
204
|
scaleLayerEffect,
|
|
187
205
|
setLum,
|
|
@@ -193,11 +211,14 @@ export {
|
|
|
193
211
|
tileKey,
|
|
194
212
|
tileRect,
|
|
195
213
|
tilesInRect,
|
|
214
|
+
transformSurface,
|
|
215
|
+
transformedBounds,
|
|
196
216
|
translateSurface,
|
|
197
217
|
uniformTile,
|
|
198
218
|
validateEffectGradient,
|
|
199
219
|
validateLayerEffect,
|
|
200
220
|
validateLayerEffects,
|
|
221
|
+
warpSurface,
|
|
201
222
|
writeRegion
|
|
202
223
|
};
|
|
203
224
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { C as CanvasGradientDef, S as SvgGradientDef, A as AffineMatrix } from './bezier-BfwIbVTl.cjs';
|
|
2
|
+
import { W as WarpStyle, a as WarpMesh } from './types-CwMPoRMU.cjs';
|
|
2
3
|
|
|
3
4
|
/** An affine matrix `[a, b, c, d, e, f]`: `x' = a·x + c·y + e`, `y' = b·x + d·y + f` (SVG order). */
|
|
4
5
|
type VectorMatrix = readonly [number, number, number, number, number, number];
|
|
@@ -369,20 +370,16 @@ type VectorAverageAxis = 'horizontal' | 'vertical' | 'both';
|
|
|
369
370
|
*/
|
|
370
371
|
type VectorEffectType = 'trim' | 'roundCorners' | 'puckerBloat' | 'twist' | 'zigzag' | 'wiggle' | 'offset' | 'merge' | 'repeater' | 'envelope';
|
|
371
372
|
declare const VECTOR_EFFECT_TYPES: readonly VectorEffectType[];
|
|
372
|
-
/** Warp presets (Photoshop's fifteen, in menu order). */
|
|
373
|
-
type VectorWarpStyle =
|
|
373
|
+
/** Warp presets (Photoshop's fifteen, in menu order); shared with the image editor (`src/geom`). */
|
|
374
|
+
type VectorWarpStyle = WarpStyle;
|
|
374
375
|
/**
|
|
375
376
|
* A grid of bicubic Bézier patches mapping a source box onto the plane. `us` / `vs` are the patch
|
|
376
377
|
* boundaries as fractions of the box (increasing, first 0, last 1); `points` is the
|
|
377
378
|
* `(3·(us.length − 1) + 1) × (3·(vs.length − 1) + 1)` control grid, row by row, in the node's own
|
|
378
379
|
* space. Neighbouring patches share their edge row: anchors sit where both indices are multiples
|
|
379
|
-
* of 3, handles where one is.
|
|
380
|
+
* of 3, handles where one is. Shared with the image editor (`src/geom`).
|
|
380
381
|
*/
|
|
381
|
-
|
|
382
|
-
us: number[];
|
|
383
|
-
vs: number[];
|
|
384
|
-
points: Vec2[];
|
|
385
|
-
}
|
|
382
|
+
type VectorWarpMesh = WarpMesh;
|
|
386
383
|
/** Merge Paths modes: a compound path (no boolean), union, the first minus the others, intersection or exclusion. */
|
|
387
384
|
type VectorMergeMode = 'merge' | 'add' | 'subtract' | 'intersect' | 'exclude';
|
|
388
385
|
declare const VECTOR_MERGE_MODES: readonly VectorMergeMode[];
|
|
@@ -865,4 +862,4 @@ declare function parseSvgTransform(value: string | undefined): AffineMatrix;
|
|
|
865
862
|
/** Parses SVG markup into a vector document. Throws when there is no `<svg>` element. */
|
|
866
863
|
declare function parseVectorSvg(svg: string, options?: VectorSvgImportOptions): VectorDocument;
|
|
867
864
|
|
|
868
|
-
export {
|
|
865
|
+
export { VECTOR_CORNER_KINDS as $, type VectorDefaults as A, type VectorStyle as B, type VectorHandleRef as C, type VectorSegmentRef as D, type VectorBlendOptions as E, type VectorModifiers as F, type VectorGradientPatch as G, type VectorAlign as H, type VectorDistribute as I, type VectorArrange as J, type VectorAverageAxis as K, type VectorArrowhead as L, type VectorBlendSpacing as M, type VectorGradientInterpolation as N, type VectorGradientSpread as O, type VectorGradientType as P, type VectorStrokeAlign as Q, type VectorStrokeGradientMode as R, type VectorRenderStrokeParts as S, type VectorPaintDef as T, type VectorArrowAlign as U, type VectorDocument as V, type VectorBlend as W, type VectorMergeMode as X, type VectorLineJoin as Y, VECTOR_ARROWHEADS as Z, VECTOR_BLEND_SPACINGS as _, type VectorNode as a, vectorGradientAspect as a$, VECTOR_EFFECT_TYPES as a0, VECTOR_GRADIENT_INTERPOLATIONS as a1, VECTOR_GRADIENT_MAX_PERIODS as a2, VECTOR_GRADIENT_MIN_STOPS as a3, VECTOR_GRADIENT_SPREADS as a4, VECTOR_GRADIENT_TYPES as a5, VECTOR_MERGE_MODES as a6, VECTOR_PATHFINDER_OPERATIONS as a7, VECTOR_STROKE_GRADIENT_MODES as a8, VECTOR_TOOLS as a9, isVectorGradient as aA, mapVectorGradient as aB, mapVectorPaint as aC, moveVectorGradientHandle as aD, moveVectorGradientStop as aE, parseSvgTransform as aF, parseVectorColor as aG, parseVectorSvg as aH, patternAttrs as aI, periodicVectorGradientStops as aJ, pinVectorGradient as aK, removeVectorGradientStop as aL, reverseVectorGradient as aM, samplePlainStops as aN, sampleVectorGradient as aO, sampleVectorGradientAt as aP, sampleVectorPaintDefAt as aQ, sanitizeVectorGradient as aR, setVectorGradientVector as aS, sortedVectorGradientStops as aT, spanVectorGradientStops as aU, transformVectorGradient as aV, transformVectorPaint as aW, vectorBoxMatrix as aX, vectorCornersAttribute as aY, vectorDocumentToSvg as aZ, vectorGradientArea as a_, VECTOR_TRANSFORM_HANDLES as aa, type VectorCorner as ab, type VectorGradientPoints as ac, type VectorGradientRamp as ad, type VectorGradientSvgOptions as ae, type VectorGradientUnits as af, type VectorLineCap as ag, type VectorMatrix as ah, type VectorPaintSvgOptions as ai, type VectorRgba as aj, type VectorSvgImportOptions as ak, type VectorSvgPatternDef as al, type VectorSvgWrapper as am, type VectorWarpStyle as an, applyVectorCornersAttribute as ao, applyVectorGradientPatch as ap, applyVectorGradientSpread as aq, convertVectorGradient as ar, defaultVectorGradient as as, expandVectorGradientSpread as at, expandVectorGradientStops as au, explicitVectorGradient as av, gradientMidpointRemap as aw, hasExplicitGradientGeometry as ax, insertVectorGradientStop as ay, isCentredVectorGradient as az, type VectorBounds as b, vectorGradientFocalParam as b0, vectorGradientHandles as b1, vectorGradientMatrix as b2, vectorGradientMidpointFromPosition as b3, vectorGradientMidpointPosition as b4, vectorGradientNeedsExpansion as b5, vectorGradientParam as b6, vectorGradientPoints as b7, vectorGradientRamp as b8, vectorGradientSvgDefs as b9, vectorGradientTAt as ba, vectorGradientUnitsMatrix as bb, vectorPaintToSvg as bc, vectorPathLocalBounds as bd, vectorStrokeSvgParts as be, widthProfileFromAttribute as bf, widthProfileToAttribute as bg, type VectorSvgExportOptions as c, type Vec2 as d, type VectorSubpath as e, type VectorAnchor as f, type VectorPathNode as g, type VectorAnchorType as h, type VectorPaint as i, type VectorGroupNode as j, type VectorCornerKind as k, type VectorWidthPoint as l, type VectorGradientHandle as m, type VectorGradient as n, type VectorGradientStop as o, type VectorViewport as p, type VectorEffectType as q, type VectorEffectParamsMap as r, type VectorFillRule as s, type VectorBooleanOperation as t, type VectorEffect as u, type VectorWarpMesh as v, type VectorTransformHandle as w, type VectorAnchorRef as x, type VectorPathfinderOperation as y, type VectorTool as z };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { C as CanvasGradientDef, S as SvgGradientDef, A as AffineMatrix } from './bezier-DYBvLgUH.js';
|
|
2
|
+
import { W as WarpStyle, a as WarpMesh } from './types-CwMPoRMU.js';
|
|
2
3
|
|
|
3
4
|
/** An affine matrix `[a, b, c, d, e, f]`: `x' = a·x + c·y + e`, `y' = b·x + d·y + f` (SVG order). */
|
|
4
5
|
type VectorMatrix = readonly [number, number, number, number, number, number];
|
|
@@ -369,20 +370,16 @@ type VectorAverageAxis = 'horizontal' | 'vertical' | 'both';
|
|
|
369
370
|
*/
|
|
370
371
|
type VectorEffectType = 'trim' | 'roundCorners' | 'puckerBloat' | 'twist' | 'zigzag' | 'wiggle' | 'offset' | 'merge' | 'repeater' | 'envelope';
|
|
371
372
|
declare const VECTOR_EFFECT_TYPES: readonly VectorEffectType[];
|
|
372
|
-
/** Warp presets (Photoshop's fifteen, in menu order). */
|
|
373
|
-
type VectorWarpStyle =
|
|
373
|
+
/** Warp presets (Photoshop's fifteen, in menu order); shared with the image editor (`src/geom`). */
|
|
374
|
+
type VectorWarpStyle = WarpStyle;
|
|
374
375
|
/**
|
|
375
376
|
* A grid of bicubic Bézier patches mapping a source box onto the plane. `us` / `vs` are the patch
|
|
376
377
|
* boundaries as fractions of the box (increasing, first 0, last 1); `points` is the
|
|
377
378
|
* `(3·(us.length − 1) + 1) × (3·(vs.length − 1) + 1)` control grid, row by row, in the node's own
|
|
378
379
|
* space. Neighbouring patches share their edge row: anchors sit where both indices are multiples
|
|
379
|
-
* of 3, handles where one is.
|
|
380
|
+
* of 3, handles where one is. Shared with the image editor (`src/geom`).
|
|
380
381
|
*/
|
|
381
|
-
|
|
382
|
-
us: number[];
|
|
383
|
-
vs: number[];
|
|
384
|
-
points: Vec2[];
|
|
385
|
-
}
|
|
382
|
+
type VectorWarpMesh = WarpMesh;
|
|
386
383
|
/** Merge Paths modes: a compound path (no boolean), union, the first minus the others, intersection or exclusion. */
|
|
387
384
|
type VectorMergeMode = 'merge' | 'add' | 'subtract' | 'intersect' | 'exclude';
|
|
388
385
|
declare const VECTOR_MERGE_MODES: readonly VectorMergeMode[];
|
|
@@ -865,4 +862,4 @@ declare function parseSvgTransform(value: string | undefined): AffineMatrix;
|
|
|
865
862
|
/** Parses SVG markup into a vector document. Throws when there is no `<svg>` element. */
|
|
866
863
|
declare function parseVectorSvg(svg: string, options?: VectorSvgImportOptions): VectorDocument;
|
|
867
864
|
|
|
868
|
-
export {
|
|
865
|
+
export { VECTOR_CORNER_KINDS as $, type VectorDefaults as A, type VectorStyle as B, type VectorHandleRef as C, type VectorSegmentRef as D, type VectorBlendOptions as E, type VectorModifiers as F, type VectorGradientPatch as G, type VectorAlign as H, type VectorDistribute as I, type VectorArrange as J, type VectorAverageAxis as K, type VectorArrowhead as L, type VectorBlendSpacing as M, type VectorGradientInterpolation as N, type VectorGradientSpread as O, type VectorGradientType as P, type VectorStrokeAlign as Q, type VectorStrokeGradientMode as R, type VectorRenderStrokeParts as S, type VectorPaintDef as T, type VectorArrowAlign as U, type VectorDocument as V, type VectorBlend as W, type VectorMergeMode as X, type VectorLineJoin as Y, VECTOR_ARROWHEADS as Z, VECTOR_BLEND_SPACINGS as _, type VectorNode as a, vectorGradientAspect as a$, VECTOR_EFFECT_TYPES as a0, VECTOR_GRADIENT_INTERPOLATIONS as a1, VECTOR_GRADIENT_MAX_PERIODS as a2, VECTOR_GRADIENT_MIN_STOPS as a3, VECTOR_GRADIENT_SPREADS as a4, VECTOR_GRADIENT_TYPES as a5, VECTOR_MERGE_MODES as a6, VECTOR_PATHFINDER_OPERATIONS as a7, VECTOR_STROKE_GRADIENT_MODES as a8, VECTOR_TOOLS as a9, isVectorGradient as aA, mapVectorGradient as aB, mapVectorPaint as aC, moveVectorGradientHandle as aD, moveVectorGradientStop as aE, parseSvgTransform as aF, parseVectorColor as aG, parseVectorSvg as aH, patternAttrs as aI, periodicVectorGradientStops as aJ, pinVectorGradient as aK, removeVectorGradientStop as aL, reverseVectorGradient as aM, samplePlainStops as aN, sampleVectorGradient as aO, sampleVectorGradientAt as aP, sampleVectorPaintDefAt as aQ, sanitizeVectorGradient as aR, setVectorGradientVector as aS, sortedVectorGradientStops as aT, spanVectorGradientStops as aU, transformVectorGradient as aV, transformVectorPaint as aW, vectorBoxMatrix as aX, vectorCornersAttribute as aY, vectorDocumentToSvg as aZ, vectorGradientArea as a_, VECTOR_TRANSFORM_HANDLES as aa, type VectorCorner as ab, type VectorGradientPoints as ac, type VectorGradientRamp as ad, type VectorGradientSvgOptions as ae, type VectorGradientUnits as af, type VectorLineCap as ag, type VectorMatrix as ah, type VectorPaintSvgOptions as ai, type VectorRgba as aj, type VectorSvgImportOptions as ak, type VectorSvgPatternDef as al, type VectorSvgWrapper as am, type VectorWarpStyle as an, applyVectorCornersAttribute as ao, applyVectorGradientPatch as ap, applyVectorGradientSpread as aq, convertVectorGradient as ar, defaultVectorGradient as as, expandVectorGradientSpread as at, expandVectorGradientStops as au, explicitVectorGradient as av, gradientMidpointRemap as aw, hasExplicitGradientGeometry as ax, insertVectorGradientStop as ay, isCentredVectorGradient as az, type VectorBounds as b, vectorGradientFocalParam as b0, vectorGradientHandles as b1, vectorGradientMatrix as b2, vectorGradientMidpointFromPosition as b3, vectorGradientMidpointPosition as b4, vectorGradientNeedsExpansion as b5, vectorGradientParam as b6, vectorGradientPoints as b7, vectorGradientRamp as b8, vectorGradientSvgDefs as b9, vectorGradientTAt as ba, vectorGradientUnitsMatrix as bb, vectorPaintToSvg as bc, vectorPathLocalBounds as bd, vectorStrokeSvgParts as be, widthProfileFromAttribute as bf, widthProfileToAttribute as bg, type VectorSvgExportOptions as c, type Vec2 as d, type VectorSubpath as e, type VectorAnchor as f, type VectorPathNode as g, type VectorAnchorType as h, type VectorPaint as i, type VectorGroupNode as j, type VectorCornerKind as k, type VectorWidthPoint as l, type VectorGradientHandle as m, type VectorGradient as n, type VectorGradientStop as o, type VectorViewport as p, type VectorEffectType as q, type VectorEffectParamsMap as r, type VectorFillRule as s, type VectorBooleanOperation as t, type VectorEffect as u, type VectorWarpMesh as v, type VectorTransformHandle as w, type VectorAnchorRef as x, type VectorPathfinderOperation as y, type VectorTool as z };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plain geometry types shared by the vector and image editors. No DOM, no editor types.
|
|
3
|
+
*/
|
|
4
|
+
/** A point (or a vector) in some 2D space. */
|
|
5
|
+
interface Vec2 {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
}
|
|
9
|
+
/** An axis-aligned box: top-left corner, width and height. */
|
|
10
|
+
interface Box {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
}
|
|
16
|
+
/** An affine matrix `[a, b, c, d, e, f]`: `x' = a·x + c·y + e`, `y' = b·x + d·y + f` (SVG order). */
|
|
17
|
+
type AffineMatrix = readonly [number, number, number, number, number, number];
|
|
18
|
+
/**
|
|
19
|
+
* A 3×3 projective map, row-major: `[x', y', w'] = H · [x, y, 1]`, so `x' = (h0 x + h1 y + h2) / w'`
|
|
20
|
+
* and `y' = (h3 x + h4 y + h5) / w'` with `w' = h6 x + h7 y + h8`.
|
|
21
|
+
*/
|
|
22
|
+
type Homography = readonly [number, number, number, number, number, number, number, number, number];
|
|
23
|
+
/** A quadrilateral's corners clockwise on screen (y down) from the top left: TL, TR, BR, BL. */
|
|
24
|
+
type Quad = readonly [Vec2, Vec2, Vec2, Vec2];
|
|
25
|
+
/** Warp presets (Photoshop's fifteen, in menu order). */
|
|
26
|
+
type WarpStyle = 'arc' | 'arcLower' | 'arcUpper' | 'arch' | 'bulge' | 'shellLower' | 'shellUpper' | 'flag' | 'wave' | 'fish' | 'rise' | 'fisheye' | 'inflate' | 'squeeze' | 'twist';
|
|
27
|
+
/**
|
|
28
|
+
* A grid of bicubic Bézier patches mapping a source box onto the plane. `us` / `vs` are the patch
|
|
29
|
+
* boundaries as fractions of the box (increasing, first 0, last 1); `points` is the
|
|
30
|
+
* `(3·(us.length − 1) + 1) × (3·(vs.length − 1) + 1)` control grid, row by row, in the output
|
|
31
|
+
* space. Neighbouring patches share their edge row: anchors sit where both indices are multiples
|
|
32
|
+
* of 3, handles where one is.
|
|
33
|
+
*/
|
|
34
|
+
interface WarpMesh {
|
|
35
|
+
us: number[];
|
|
36
|
+
vs: number[];
|
|
37
|
+
points: Vec2[];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export type { AffineMatrix as A, Box as B, Homography as H, Quad as Q, Vec2 as V, WarpStyle as W, WarpMesh as a };
|