@pixerate/editor 0.246.0 → 0.249.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +1 -0
  2. package/dist/animation-editor/index.cjs +64 -61
  3. package/dist/animation-editor/index.js +8 -5
  4. package/dist/{brushstrokeRender-ZDHMXJAE.cjs → brushstrokeRender-GCKK7V2I.cjs} +14 -11
  5. package/dist/{brushstrokeRender-AKUI3SEJ.js → brushstrokeRender-T3JZST44.js} +7 -4
  6. package/dist/canvas/index.cjs +8 -8
  7. package/dist/canvas/index.js +1 -1
  8. package/dist/{chunk-UVPD55UZ.cjs → chunk-2SMMZDMG.cjs} +35 -35
  9. package/dist/chunk-2VJAVXLI.js +192 -0
  10. package/dist/{chunk-OLNIPTB3.cjs → chunk-2VX55NFM.cjs} +1 -320
  11. package/dist/chunk-3K6HWEXZ.cjs +92 -0
  12. package/dist/{chunk-UOOK7HTX.js → chunk-3PPJRMIG.js} +1 -1
  13. package/dist/chunk-4D6KP5BV.js +92 -0
  14. package/dist/chunk-5RH3VXAK.js +269 -0
  15. package/dist/{chunk-LDPLEZ5T.js → chunk-6BIDVPED.js} +1 -1
  16. package/dist/{chunk-2ONK3ERD.cjs → chunk-75K3W4D6.cjs} +20 -20
  17. package/dist/chunk-BOHDJJ2O.cjs +192 -0
  18. package/dist/{chunk-2PBZBRP5.js → chunk-D5KGAO4Z.js} +10 -92
  19. package/dist/{chunk-DQWPMGH2.js → chunk-DOIU7VJG.js} +1 -1
  20. package/dist/{chunk-HB4ICNNA.cjs → chunk-DPYAO5U6.cjs} +42 -42
  21. package/dist/chunk-EJLRBS5Q.js +301 -0
  22. package/dist/{chunk-Q2UYUWAZ.cjs → chunk-H4AOUUBE.cjs} +679 -164
  23. package/dist/{chunk-PQ3H2AAN.cjs → chunk-I7NJPHWV.cjs} +122 -204
  24. package/dist/{chunk-FK5LTDOO.cjs → chunk-IOFVM3L3.cjs} +7 -7
  25. package/dist/{chunk-42TWUPNJ.js → chunk-IRSTHLQQ.js} +1 -320
  26. package/dist/{chunk-VDAWA546.js → chunk-J7T5QZ45.js} +614 -99
  27. package/dist/{chunk-VMROIWLL.cjs → chunk-KBYB7OWB.cjs} +3 -3
  28. package/dist/{chunk-5MFDD7SP.cjs → chunk-KYX7NZ5V.cjs} +1 -1
  29. package/dist/chunk-LJRCU3BJ.cjs +301 -0
  30. package/dist/{chunk-XTWXBQD4.cjs → chunk-LP2MCSBE.cjs} +593 -236
  31. package/dist/{chunk-A23PSOBB.js → chunk-O75V4ZS3.js} +1 -1
  32. package/dist/chunk-OTTT5N3K.js +322 -0
  33. package/dist/{chunk-N6WUB3Y5.js → chunk-PZP2SZIZ.js} +2 -2
  34. package/dist/{chunk-4PMCMWQS.js → chunk-UBRJOIR5.js} +367 -10
  35. package/dist/chunk-W5M3J7PV.cjs +322 -0
  36. package/dist/{chunk-4P6H35HU.js → chunk-WA44NKPF.js} +2 -2
  37. package/dist/{chunk-CEPKXLBS.cjs → chunk-WLJZZHUZ.cjs} +23 -23
  38. package/dist/{chunk-P3NIPIKS.js → chunk-WQCNC4DK.js} +1 -1
  39. package/dist/chunk-ZEYMKDYS.cjs +269 -0
  40. package/dist/image-editor/effect-tools.d.cts +37 -4
  41. package/dist/image-editor/effect-tools.d.ts +37 -4
  42. package/dist/image-editor/index.cjs +1340 -1828
  43. package/dist/image-editor/index.d.cts +1 -1
  44. package/dist/image-editor/index.d.ts +1 -1
  45. package/dist/image-editor/index.js +298 -786
  46. package/dist/paint/index.cjs +8 -5
  47. package/dist/paint/index.js +13 -10
  48. package/dist/paint-editor/controller.d.cts +71 -2
  49. package/dist/paint-editor/controller.d.ts +71 -2
  50. package/dist/paint-editor/index.cjs +901 -589
  51. package/dist/paint-editor/index.d.cts +3 -0
  52. package/dist/paint-editor/index.d.ts +3 -0
  53. package/dist/paint-editor/index.js +365 -53
  54. package/dist/paint-editor/procedural.d.cts +82 -5
  55. package/dist/paint-editor/procedural.d.ts +82 -5
  56. package/dist/paint-editor/sticker-art.d.cts +55 -0
  57. package/dist/paint-editor/sticker-art.d.ts +55 -0
  58. package/dist/paint-editor/stickers.d.cts +30 -17
  59. package/dist/paint-editor/stickers.d.ts +30 -17
  60. package/dist/paint-editor/stroke.d.cts +4 -0
  61. package/dist/paint-editor/stroke.d.ts +4 -0
  62. package/dist/paint-editor/tools.d.cts +1 -1
  63. package/dist/paint-editor/tools.d.ts +1 -1
  64. package/dist/paint-editor/ui.d.cts +25 -4
  65. package/dist/paint-editor/ui.d.ts +25 -4
  66. package/dist/{image-editor/layers/effects-ui.d.cts → raster/effects/ui.d.cts} +32 -5
  67. package/dist/{image-editor/layers/effects-ui.d.ts → raster/effects/ui.d.ts} +32 -5
  68. package/dist/raster/index.cjs +17 -3
  69. package/dist/raster/index.d.cts +1 -0
  70. package/dist/raster/index.d.ts +1 -0
  71. package/dist/raster/index.js +23 -9
  72. package/dist/stickers/browser.d.cts +48 -0
  73. package/dist/stickers/browser.d.ts +48 -0
  74. package/dist/stickers/combine.d.cts +10 -0
  75. package/dist/stickers/combine.d.ts +10 -0
  76. package/dist/stickers/conformance.d.cts +18 -0
  77. package/dist/stickers/conformance.d.ts +18 -0
  78. package/dist/stickers/editor.d.cts +14 -0
  79. package/dist/stickers/editor.d.ts +14 -0
  80. package/dist/stickers/errors.d.cts +6 -0
  81. package/dist/stickers/errors.d.ts +6 -0
  82. package/dist/stickers/fake.d.cts +16 -0
  83. package/dist/stickers/fake.d.ts +16 -0
  84. package/dist/stickers/helpers.d.cts +51 -0
  85. package/dist/stickers/helpers.d.ts +51 -0
  86. package/dist/stickers/index.cjs +331 -0
  87. package/dist/stickers/index.d.cts +16 -0
  88. package/dist/stickers/index.d.ts +16 -0
  89. package/dist/stickers/index.js +331 -0
  90. package/dist/stickers/stamps.d.cts +13 -0
  91. package/dist/stickers/stamps.d.ts +13 -0
  92. package/dist/stickers/tools.d.cts +25 -0
  93. package/dist/stickers/tools.d.ts +25 -0
  94. package/dist/stickers/types.d.cts +123 -0
  95. package/dist/stickers/types.d.ts +123 -0
  96. package/dist/vector/index.cjs +978 -975
  97. package/dist/vector/index.js +9 -6
  98. package/package.json +11 -1
  99. package/skills/README.md +1 -0
  100. package/skills/pixerate-paint-editor/SKILL.md +26 -32
  101. package/skills/pixerate-paint-editor/references/gradient-paint.md +23 -0
  102. package/skills/pixerate-paint-editor/references/layer-effects.md +28 -0
  103. package/skills/pixerate-paint-editor/references/light-paint.md +10 -2
  104. package/skills/pixerate-paint-editor/references/particle-brushes.md +66 -0
  105. package/skills/pixerate-stickers/SKILL.md +45 -0
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import type { AgentToolProvider } from '../tools/registry.js';
8
8
  import { type PaintOrigin } from './hosted.js';
9
- import type { PaintEditorController } from './controller.js';
9
+ import { type PaintEditorController } from './controller.js';
10
10
  import type { PaintDirector } from './presence.js';
11
11
  import type { PresenceActorInfo } from '../animation/presence.js';
12
12
  export interface PaintEditorToolProviderOptions {
@@ -15,8 +15,9 @@ import type { PaintEditorController } from './controller.cjs';
15
15
  import type { PenPoint } from './engine.cjs';
16
16
  import { type Point2 } from './guides.cjs';
17
17
  import { type StencilInput } from './stencils.cjs';
18
- import type { ParticleKind, ParticleRender } from './procedural.cjs';
19
- import type { StampKind } from './stickers.cjs';
18
+ import { type DotRotation, type DotTextureOrder, type ParticleKind, type ParticleRender, type RibbonPairs } from './procedural.cjs';
19
+ import { type StampKind } from './stickers.cjs';
20
+ import type { StickerRef } from '../stickers/types.cjs';
20
21
  import type { WetEngineInfo, WetGpuMode } from './wet.cjs';
21
22
  import { type PointerSample } from './input.cjs';
22
23
  import { type ColorWheel } from './color.cjs';
@@ -189,9 +190,13 @@ export interface BrushEngineControls {
189
190
  wetTool?: boolean;
190
191
  /** The impasto tool menu (`impasto.tool`, `IMPASTO_TOOLS`). */
191
192
  impastoTool?: boolean;
192
- /** The particle kind and render menus (`particle.kind`, `particle.render`). */
193
+ /**
194
+ * The particle menus: kind and render (`particle.kind`, `particle.render`), ribbon pairs
195
+ * (`particle.ribbonPairs`), and the textured-dot stamps, order and rotation
196
+ * (`particle.dotTextures` up to `MAX_DOT_TEXTURES` of `STAMP_KINDS`, `dotTextureOrder`, `dotRotation`).
197
+ */
193
198
  particleMenus?: boolean;
194
- /** The sticker stamp toggles (`sticker.stamps`, `STAMP_KINDS`). */
199
+ /** The sticker picker for the brush's stickers (`sticker.stamps`, refs from the sticker library; `toggleStickerRef`). */
195
200
  stickerStamps?: boolean;
196
201
  /** Light paint: the "light follows pressure" toggle (`light.pressure`); the Light slider is in `sliders`. */
197
202
  light?: boolean;
@@ -253,10 +258,26 @@ export declare const LIGHT_SLIDERS: readonly SliderControl[];
253
258
  /** Labels of the particle kinds and renders. */
254
259
  export declare const PARTICLE_KIND_LABELS: Readonly<Record<ParticleKind, string>>;
255
260
  export declare const PARTICLE_RENDER_LABELS: Readonly<Record<ParticleRender, string>>;
261
+ /** Labels of the ribbon pairings, textured-dot orders and textured-dot rotations. */
262
+ export declare const RIBBON_PAIR_LABELS: Readonly<Record<RibbonPairs, string>>;
263
+ export declare const DOT_TEXTURE_ORDER_LABELS: Readonly<Record<DotTextureOrder, string>>;
264
+ export declare const DOT_ROTATION_LABELS: Readonly<Record<DotRotation, string>>;
256
265
  /** Labels of the sticker stamps. */
257
266
  export declare const STAMP_LABELS: Readonly<Record<StampKind, string>>;
258
267
  /** Toggles one stamp in a sticker brush's set (never leaving it empty). */
268
+ /**
269
+ * Toggles a sticker ref in a sticker brush's list (`sticker.stamps`): removes it when present (a
270
+ * brush keeps at least one), else adds it while there are fewer than `MAX_STICKER_STAMPS`.
271
+ */
272
+ export declare function toggleStickerRef(refs: readonly StickerRef[], ref: StickerRef): StickerRef[];
273
+ /** A short label for a sticker ref: the editor stamp's name, else the id after the provider. */
274
+ export declare function stickerRefLabel(ref: StickerRef): string;
259
275
  export declare function toggleStamp(stamps: readonly StampKind[], stamp: StampKind): StampKind[];
276
+ /**
277
+ * Toggles a textured-dot stamp (`particle.dotTextures`): removes it (every copy) when present,
278
+ * else adds it while there are fewer than `MAX_DOT_TEXTURES`. Empty means round dots.
279
+ */
280
+ export declare function toggleDotTexture(textures: readonly StampKind[], stamp: StampKind): StampKind[];
260
281
  /** The sticker panel's sliders for the selected sticker. */
261
282
  /** The brush sliders of a picked stroke on a stroke layer (paths into its brush; see `updateStroke`). */
262
283
  export declare const STROKE_SLIDERS: readonly SliderControl[];
@@ -15,8 +15,9 @@ import type { PaintEditorController } from './controller.js';
15
15
  import type { PenPoint } from './engine.js';
16
16
  import { type Point2 } from './guides.js';
17
17
  import { type StencilInput } from './stencils.js';
18
- import type { ParticleKind, ParticleRender } from './procedural.js';
19
- import type { StampKind } from './stickers.js';
18
+ import { type DotRotation, type DotTextureOrder, type ParticleKind, type ParticleRender, type RibbonPairs } from './procedural.js';
19
+ import { type StampKind } from './stickers.js';
20
+ import type { StickerRef } from '../stickers/types.js';
20
21
  import type { WetEngineInfo, WetGpuMode } from './wet.js';
21
22
  import { type PointerSample } from './input.js';
22
23
  import { type ColorWheel } from './color.js';
@@ -189,9 +190,13 @@ export interface BrushEngineControls {
189
190
  wetTool?: boolean;
190
191
  /** The impasto tool menu (`impasto.tool`, `IMPASTO_TOOLS`). */
191
192
  impastoTool?: boolean;
192
- /** The particle kind and render menus (`particle.kind`, `particle.render`). */
193
+ /**
194
+ * The particle menus: kind and render (`particle.kind`, `particle.render`), ribbon pairs
195
+ * (`particle.ribbonPairs`), and the textured-dot stamps, order and rotation
196
+ * (`particle.dotTextures` up to `MAX_DOT_TEXTURES` of `STAMP_KINDS`, `dotTextureOrder`, `dotRotation`).
197
+ */
193
198
  particleMenus?: boolean;
194
- /** The sticker stamp toggles (`sticker.stamps`, `STAMP_KINDS`). */
199
+ /** The sticker picker for the brush's stickers (`sticker.stamps`, refs from the sticker library; `toggleStickerRef`). */
195
200
  stickerStamps?: boolean;
196
201
  /** Light paint: the "light follows pressure" toggle (`light.pressure`); the Light slider is in `sliders`. */
197
202
  light?: boolean;
@@ -253,10 +258,26 @@ export declare const LIGHT_SLIDERS: readonly SliderControl[];
253
258
  /** Labels of the particle kinds and renders. */
254
259
  export declare const PARTICLE_KIND_LABELS: Readonly<Record<ParticleKind, string>>;
255
260
  export declare const PARTICLE_RENDER_LABELS: Readonly<Record<ParticleRender, string>>;
261
+ /** Labels of the ribbon pairings, textured-dot orders and textured-dot rotations. */
262
+ export declare const RIBBON_PAIR_LABELS: Readonly<Record<RibbonPairs, string>>;
263
+ export declare const DOT_TEXTURE_ORDER_LABELS: Readonly<Record<DotTextureOrder, string>>;
264
+ export declare const DOT_ROTATION_LABELS: Readonly<Record<DotRotation, string>>;
256
265
  /** Labels of the sticker stamps. */
257
266
  export declare const STAMP_LABELS: Readonly<Record<StampKind, string>>;
258
267
  /** Toggles one stamp in a sticker brush's set (never leaving it empty). */
268
+ /**
269
+ * Toggles a sticker ref in a sticker brush's list (`sticker.stamps`): removes it when present (a
270
+ * brush keeps at least one), else adds it while there are fewer than `MAX_STICKER_STAMPS`.
271
+ */
272
+ export declare function toggleStickerRef(refs: readonly StickerRef[], ref: StickerRef): StickerRef[];
273
+ /** A short label for a sticker ref: the editor stamp's name, else the id after the provider. */
274
+ export declare function stickerRefLabel(ref: StickerRef): string;
259
275
  export declare function toggleStamp(stamps: readonly StampKind[], stamp: StampKind): StampKind[];
276
+ /**
277
+ * Toggles a textured-dot stamp (`particle.dotTextures`): removes it (every copy) when present,
278
+ * else adds it while there are fewer than `MAX_DOT_TEXTURES`. Empty means round dots.
279
+ */
280
+ export declare function toggleDotTexture(textures: readonly StampKind[], stamp: StampKind): StampKind[];
260
281
  /** The sticker panel's sliders for the selected sticker. */
261
282
  /** The brush sliders of a picked stroke on a stroke layer (paths into its brush; see `updateStroke`). */
262
283
  export declare const STROKE_SLIDERS: readonly SliderControl[];
@@ -3,9 +3,36 @@
3
3
  * can take effects, its effect rows, the menu of kinds to add, and per effect a flat list of
4
4
  * controls (sliders, colours, toggles, choices) with how a change maps to `updateLayerEffect`.
5
5
  */
6
- import { type LayerEffect, type LayerEffectKind } from '../../raster/effects/model.cjs';
7
- import { type EffectPattern } from '../../raster/effects/patterns.cjs';
8
- import type { ImageLayer } from './model.cjs';
6
+ import { type LayerEffect, type LayerEffectKind, type LayerEffects } from './model.cjs';
7
+ import { type EffectPattern } from './patterns.cjs';
8
+ /** What the effects section reads of a layer (image and paint layers both fit). */
9
+ export interface LayerEffectsTarget {
10
+ id: string;
11
+ type: string;
12
+ effects?: LayerEffects;
13
+ locks?: {
14
+ all?: boolean;
15
+ };
16
+ }
17
+ /**
18
+ * What the layer effects panels need of an editor: the image and paint editor controllers both
19
+ * provide it, so both show the same panel.
20
+ */
21
+ export interface LayerEffectsController {
22
+ subscribe(listener: () => void): () => void;
23
+ getLayer(id: string): LayerEffectsTarget | null | undefined;
24
+ getActiveLayer(): LayerEffectsTarget | null | undefined;
25
+ getLayerEffects(id: string): LayerEffects;
26
+ getDocumentPatterns(): readonly EffectPattern[];
27
+ addLayerEffect(id: string, kind: LayerEffectKind, settings?: Record<string, unknown>, index?: number): {
28
+ effect: {
29
+ id: string;
30
+ };
31
+ };
32
+ updateLayerEffect(id: string, effectId: string, changes: Record<string, unknown>, commitToHistory?: boolean): unknown;
33
+ removeLayerEffect(id: string, effectId: string): unknown;
34
+ setLayerEffectsEnabled(id: string, enabled: boolean, scale?: number, commitToHistory?: boolean): unknown;
35
+ }
9
36
  export interface LayerEffectRow {
10
37
  id: string;
11
38
  kind: LayerEffectKind;
@@ -24,9 +51,9 @@ export interface LayerEffectsPanelModel {
24
51
  rows: LayerEffectRow[];
25
52
  }
26
53
  /** The effects section for `layer`. */
27
- export declare function layerEffectsPanel(layer: ImageLayer | null | undefined): LayerEffectsPanelModel;
54
+ export declare function layerEffectsPanel(layer: LayerEffectsTarget | null | undefined): LayerEffectsPanelModel;
28
55
  /** The fx badge of a layer row: `on` (effects render), `off` (effects but switched off), or `null`. */
29
- export declare function layerEffectsBadge(layer: ImageLayer): 'on' | 'off' | null;
56
+ export declare function layerEffectsBadge(layer: Pick<LayerEffectsTarget, 'effects'>): 'on' | 'off' | null;
30
57
  /** The kinds the "Add effect" menu offers, in the Layer Style dialog's order. */
31
58
  export declare const LAYER_EFFECT_MENU: ReadonlyArray<{
32
59
  kind: LayerEffectKind;
@@ -3,9 +3,36 @@
3
3
  * can take effects, its effect rows, the menu of kinds to add, and per effect a flat list of
4
4
  * controls (sliders, colours, toggles, choices) with how a change maps to `updateLayerEffect`.
5
5
  */
6
- import { type LayerEffect, type LayerEffectKind } from '../../raster/effects/model.js';
7
- import { type EffectPattern } from '../../raster/effects/patterns.js';
8
- import type { ImageLayer } from './model.js';
6
+ import { type LayerEffect, type LayerEffectKind, type LayerEffects } from './model.js';
7
+ import { type EffectPattern } from './patterns.js';
8
+ /** What the effects section reads of a layer (image and paint layers both fit). */
9
+ export interface LayerEffectsTarget {
10
+ id: string;
11
+ type: string;
12
+ effects?: LayerEffects;
13
+ locks?: {
14
+ all?: boolean;
15
+ };
16
+ }
17
+ /**
18
+ * What the layer effects panels need of an editor: the image and paint editor controllers both
19
+ * provide it, so both show the same panel.
20
+ */
21
+ export interface LayerEffectsController {
22
+ subscribe(listener: () => void): () => void;
23
+ getLayer(id: string): LayerEffectsTarget | null | undefined;
24
+ getActiveLayer(): LayerEffectsTarget | null | undefined;
25
+ getLayerEffects(id: string): LayerEffects;
26
+ getDocumentPatterns(): readonly EffectPattern[];
27
+ addLayerEffect(id: string, kind: LayerEffectKind, settings?: Record<string, unknown>, index?: number): {
28
+ effect: {
29
+ id: string;
30
+ };
31
+ };
32
+ updateLayerEffect(id: string, effectId: string, changes: Record<string, unknown>, commitToHistory?: boolean): unknown;
33
+ removeLayerEffect(id: string, effectId: string): unknown;
34
+ setLayerEffectsEnabled(id: string, enabled: boolean, scale?: number, commitToHistory?: boolean): unknown;
35
+ }
9
36
  export interface LayerEffectRow {
10
37
  id: string;
11
38
  kind: LayerEffectKind;
@@ -24,9 +51,9 @@ export interface LayerEffectsPanelModel {
24
51
  rows: LayerEffectRow[];
25
52
  }
26
53
  /** The effects section for `layer`. */
27
- export declare function layerEffectsPanel(layer: ImageLayer | null | undefined): LayerEffectsPanelModel;
54
+ export declare function layerEffectsPanel(layer: LayerEffectsTarget | null | undefined): LayerEffectsPanelModel;
28
55
  /** The fx badge of a layer row: `on` (effects render), `off` (effects but switched off), or `null`. */
29
- export declare function layerEffectsBadge(layer: ImageLayer): 'on' | 'off' | null;
56
+ export declare function layerEffectsBadge(layer: Pick<LayerEffectsTarget, 'effects'>): 'on' | 'off' | null;
30
57
  /** The kinds the "Add effect" menu offers, in the Layer Style dialog's order. */
31
58
  export declare const LAYER_EFFECT_MENU: ReadonlyArray<{
32
59
  kind: LayerEffectKind;
@@ -4,6 +4,7 @@
4
4
 
5
5
 
6
6
 
7
+ var _chunkBOHDJJ2Ocjs = require('../chunk-BOHDJJ2O.cjs');
7
8
 
8
9
 
9
10
 
@@ -60,7 +61,13 @@
60
61
 
61
62
 
62
63
 
63
- var _chunkHB4ICNNAcjs = require('../chunk-HB4ICNNA.cjs');
64
+
65
+
66
+
67
+
68
+
69
+
70
+ var _chunkDPYAO5U6cjs = require('../chunk-DPYAO5U6.cjs');
64
71
  require('../chunk-QT26RHKK.cjs');
65
72
 
66
73
 
@@ -108,6 +115,7 @@ var _chunkK6PXS6DOcjs = require('../chunk-K6PXS6DO.cjs');
108
115
 
109
116
 
110
117
 
118
+ var _chunk2VX55NFMcjs = require('../chunk-2VX55NFM.cjs');
111
119
 
112
120
 
113
121
 
@@ -115,7 +123,8 @@ var _chunkK6PXS6DOcjs = require('../chunk-K6PXS6DO.cjs');
115
123
 
116
124
 
117
125
 
118
- var _chunkOLNIPTB3cjs = require('../chunk-OLNIPTB3.cjs');
126
+
127
+ var _chunkW5M3J7PVcjs = require('../chunk-W5M3J7PV.cjs');
119
128
 
120
129
 
121
130
 
@@ -516,4 +525,9 @@ function drawSurfaceToViewport(ctx, surface, mapping, view, options) {
516
525
 
517
526
 
518
527
 
519
- exports.BIT_DEPTHS = _chunkOLNIPTB3cjs.BIT_DEPTHS; exports.BLEND_MODES = _chunkOLNIPTB3cjs.BLEND_MODES; exports.CURVE_LUT_SIZE = _chunkHB4ICNNAcjs.CURVE_LUT_SIZE; exports.DEFAULT_GLOBAL_LIGHT = _chunkHB4ICNNAcjs.DEFAULT_GLOBAL_LIGHT; exports.DIRECT_GAUSSIAN_MAX_SIGMA = _chunkK6PXS6DOcjs.DIRECT_GAUSSIAN_MAX_SIGMA; exports.DeepCompositor = _chunkHB4ICNNAcjs.DeepCompositor; exports.INTERPOLATIONS = _chunkHB4ICNNAcjs.INTERPOLATIONS; exports.LAYER_EFFECT_KINDS = _chunkHB4ICNNAcjs.LAYER_EFFECT_KINDS; exports.LayerEffectError = _chunkHB4ICNNAcjs.LayerEffectError; exports.MAX_EFFECT_REACH = _chunkHB4ICNNAcjs.MAX_EFFECT_REACH; exports.MAX_TRANSFORM_PIXELS = _chunkHB4ICNNAcjs.MAX_TRANSFORM_PIXELS; exports.PAINTERLY_BLEND_MODES = _chunkOLNIPTB3cjs.PAINTERLY_BLEND_MODES; exports.PatternPlacement = _chunkHB4ICNNAcjs.PatternPlacement; exports.PatternTile = _chunkHB4ICNNAcjs.PatternTile; exports.RasterCompositor = _chunkHB4ICNNAcjs.RasterCompositor; exports.SHADOW_AMBIENT = _chunkOLNIPTB3cjs.SHADOW_AMBIENT; exports.STROKE_CHAMFER_MAX = _chunkHB4ICNNAcjs.STROKE_CHAMFER_MAX; exports.SurfaceDraft = _chunk474IQG74cjs.SurfaceDraft; exports.SurfaceViewportRenderer = SurfaceViewportRenderer; exports.TILE = _chunk474IQG74cjs.TILE; exports.TILE_SHIFT = _chunk474IQG74cjs.TILE_SHIFT; exports.TiledSurface = _chunk474IQG74cjs.TiledSurface; exports.TransformTooLargeError = _chunkHB4ICNNAcjs.TransformTooLargeError; exports.ZlibError = _chunkXFM3OCHUcjs.ZlibError; exports.activeEffectItems = _chunkHB4ICNNAcjs.activeEffectItems; exports.adler32 = _chunkXFM3OCHUcjs.adler32; exports.applyEdgeAmbient = _chunkHB4ICNNAcjs.applyEdgeAmbient; exports.base64ToBytes = _chunkOLNIPTB3cjs.base64ToBytes; exports.blendChannel = _chunkOLNIPTB3cjs.blendChannel; exports.blendImageData = _chunkOLNIPTB3cjs.blendImageData; exports.blendLum = _chunkOLNIPTB3cjs.blendLum; exports.blendPixel = _chunkOLNIPTB3cjs.blendPixel; exports.blendRgb = _chunkOLNIPTB3cjs.blendRgb; exports.blendTile = _chunkHB4ICNNAcjs.blendTile; exports.buildEffectMaps = _chunkHB4ICNNAcjs.buildEffectMaps; exports.builtinPattern = _chunkHB4ICNNAcjs.builtinPattern; exports.builtinPatternIds = _chunkHB4ICNNAcjs.builtinPatternIds; exports.bytesToBase64 = _chunkOLNIPTB3cjs.bytesToBase64; exports.canvasCompositeOperation = _chunkOLNIPTB3cjs.canvasCompositeOperation; exports.changedTiles = _chunkHB4ICNNAcjs.changedTiles; exports.collectTiles = _chunk474IQG74cjs.collectTiles; exports.compositeLayerEffects = _chunkHB4ICNNAcjs.compositeLayerEffects; exports.compositeSurfaceOver = _chunkHB4ICNNAcjs.compositeSurfaceOver; exports.contentBounds = _chunk474IQG74cjs.contentBounds; exports.contourLut = _chunkHB4ICNNAcjs.contourLut; exports.convertSurfaceDepth = _chunkOLNIPTB3cjs.convertSurfaceDepth; exports.curveLut = _chunkHB4ICNNAcjs.curveLut; exports.decodePng = _chunkOLNIPTB3cjs.decodePng; exports.deepBytes = _chunkOLNIPTB3cjs.deepBytes; exports.deepTile = _chunkOLNIPTB3cjs.deepTile; exports.defaultEffectGradient = _chunkHB4ICNNAcjs.defaultEffectGradient; exports.defaultLayerEffect = _chunkHB4ICNNAcjs.defaultLayerEffect; exports.deflate = _chunkXFM3OCHUcjs.deflate; exports.deflateRaw = _chunkXFM3OCHUcjs.deflateRaw; exports.depthOf = _chunkOLNIPTB3cjs.depthOf; exports.drawSurfaceToViewport = drawSurfaceToViewport; exports.effectColorHex = _chunkHB4ICNNAcjs.effectColorHex; exports.effectFillColors = _chunkHB4ICNNAcjs.effectFillColors; exports.effectReach = _chunkHB4ICNNAcjs.effectReach; exports.effectsAreLocal = _chunkHB4ICNNAcjs.effectsAreLocal; exports.effectsFingerprint = _chunkHB4ICNNAcjs.effectsFingerprint; exports.effectsMargin = _chunkHB4ICNNAcjs.effectsMargin; exports.effectsScale = _chunkHB4ICNNAcjs.effectsScale; exports.emptySurface = _chunk474IQG74cjs.emptySurface; exports.encodePng = _chunkOLNIPTB3cjs.encodePng; exports.fillRect = _chunk474IQG74cjs.fillRect; exports.findLayer = _chunkHB4ICNNAcjs.findLayer; exports.finishTile = _chunk474IQG74cjs.finishTile; exports.flattenLayers = _chunkHB4ICNNAcjs.flattenLayers; exports.gaussianBlur = _chunkK6PXS6DOcjs.gaussianBlur; exports.gradientT = _chunkHB4ICNNAcjs.gradientT; exports.hasActiveEffects = _chunkHB4ICNNAcjs.hasActiveEffects; exports.hashNoise = _chunkHB4ICNNAcjs.hashNoise; exports.inflate = _chunkXFM3OCHUcjs.inflate; exports.inflateRaw = _chunkXFM3OCHUcjs.inflateRaw; exports.insertLayer = _chunkHB4ICNNAcjs.insertLayer; exports.isBitDepth = _chunkOLNIPTB3cjs.isBitDepth; exports.isBlendMode = _chunkOLNIPTB3cjs.isBlendMode; exports.isInterpolation = _chunkHB4ICNNAcjs.isInterpolation; exports.isLayerEffectKind = _chunkHB4ICNNAcjs.isLayerEffectKind; exports.isLayerLocked = _chunkHB4ICNNAcjs.isLayerLocked; exports.isPainterlyBlendMode = _chunkOLNIPTB3cjs.isPainterlyBlendMode; exports.isPng = _chunkOLNIPTB3cjs.isPng; exports.isSeparableBlendMode = _chunkOLNIPTB3cjs.isSeparableBlendMode; exports.keepDeepSamples = _chunkOLNIPTB3cjs.keepDeepSamples; exports.keysWeight = _chunkHB4ICNNAcjs.keysWeight; exports.layerEffectFields = _chunkHB4ICNNAcjs.layerEffectFields; exports.layerEffectLabel = _chunkHB4ICNNAcjs.layerEffectLabel; exports.mapLayer = _chunkHB4ICNNAcjs.mapLayer; exports.mergeLayerEffect = _chunkHB4ICNNAcjs.mergeLayerEffect; exports.mixPigment8 = _chunkOLNIPTB3cjs.mixPigment8; exports.mixPigmentRgb = _chunkOLNIPTB3cjs.mixPigmentRgb; exports.newEffectId = _chunkHB4ICNNAcjs.newEffectId; exports.normalizeBlendMode = _chunkOLNIPTB3cjs.normalizeBlendMode; exports.normalizeLayerEffects = _chunkHB4ICNNAcjs.normalizeLayerEffects; exports.packRgba = _chunk474IQG74cjs.packRgba; exports.parseDataUrl = _chunkOLNIPTB3cjs.parseDataUrl; exports.parseEffectColor = _chunkHB4ICNNAcjs.parseEffectColor; exports.patchEffectMaps = _chunkHB4ICNNAcjs.patchEffectMaps; exports.pigment8 = _chunkOLNIPTB3cjs.pigment8; exports.pngDataUrl = _chunkOLNIPTB3cjs.pngDataUrl; exports.proxyOf = _chunkOLNIPTB3cjs.proxyOf; exports.readDeepRegion = _chunkOLNIPTB3cjs.readDeepRegion; exports.readPixel = _chunk474IQG74cjs.readPixel; exports.readRegion = _chunk474IQG74cjs.readRegion; exports.reduceSurface = _chunkHB4ICNNAcjs.reduceSurface; exports.renderLayerEffects = _chunkHB4ICNNAcjs.renderLayerEffects; exports.scaleLayerEffect = _chunkHB4ICNNAcjs.scaleLayerEffect; exports.screenToWorld = screenToWorld; exports.setLum = _chunkOLNIPTB3cjs.setLum; exports.solidSurface = _chunk474IQG74cjs.solidSurface; exports.srgbDecode = _chunkOLNIPTB3cjs.srgbDecode; exports.srgbEncode = _chunkOLNIPTB3cjs.srgbEncode; exports.standardBlendMode = _chunkOLNIPTB3cjs.standardBlendMode; exports.surfaceBytes = _chunk474IQG74cjs.surfaceBytes; exports.surfaceDepth = _chunkOLNIPTB3cjs.surfaceDepth; exports.surfaceFromDeepPixels = _chunkOLNIPTB3cjs.surfaceFromDeepPixels; exports.surfaceFromPixels = _chunk474IQG74cjs.surfaceFromPixels; exports.surfaceMipLevel = surfaceMipLevel; exports.surfaceResolutionForZoom = surfaceResolutionForZoom; exports.surfaceToWorld = surfaceToWorld; exports.surfacesEqual = _chunk474IQG74cjs.surfacesEqual; exports.tileCoord = _chunk474IQG74cjs.tileCoord; exports.tileKey = _chunk474IQG74cjs.tileKey; exports.tileRect = _chunk474IQG74cjs.tileRect; exports.tileSamples = _chunkOLNIPTB3cjs.tileSamples; exports.tileSamples16 = _chunkOLNIPTB3cjs.tileSamples16; exports.tileSamples32 = _chunkOLNIPTB3cjs.tileSamples32; exports.tilesInRect = _chunk474IQG74cjs.tilesInRect; exports.to16From32 = _chunkOLNIPTB3cjs.to16From32; exports.to16From8 = _chunkOLNIPTB3cjs.to16From8; exports.to32From16 = _chunkOLNIPTB3cjs.to32From16; exports.to32From8 = _chunkOLNIPTB3cjs.to32From8; exports.to8From16 = _chunkOLNIPTB3cjs.to8From16; exports.to8From32 = _chunkOLNIPTB3cjs.to8From32; exports.transformSurface = _chunkHB4ICNNAcjs.transformSurface; exports.transformedBounds = _chunkHB4ICNNAcjs.transformedBounds; exports.translateSurface = _chunk474IQG74cjs.translateSurface; exports.uniformTile = _chunk474IQG74cjs.uniformTile; exports.validateEffectGradient = _chunkHB4ICNNAcjs.validateEffectGradient; exports.validateLayerEffect = _chunkHB4ICNNAcjs.validateLayerEffect; exports.validateLayerEffects = _chunkHB4ICNNAcjs.validateLayerEffects; exports.visibleSurfaceRect = visibleSurfaceRect; exports.visibleWorldRect = visibleWorldRect; exports.warpSurface = _chunkHB4ICNNAcjs.warpSurface; exports.workingToSamples = _chunkHB4ICNNAcjs.workingToSamples; exports.worldRectToSurface = worldRectToSurface; exports.worldToSurface = worldToSurface; exports.writeDeepRegion = _chunkOLNIPTB3cjs.writeDeepRegion; exports.writeRegion = _chunk474IQG74cjs.writeRegion;
528
+
529
+
530
+
531
+
532
+
533
+ exports.BIT_DEPTHS = _chunk2VX55NFMcjs.BIT_DEPTHS; exports.BLEND_MODES = _chunk2VX55NFMcjs.BLEND_MODES; exports.CURVE_LUT_SIZE = _chunkDPYAO5U6cjs.CURVE_LUT_SIZE; exports.DEFAULT_GLOBAL_LIGHT = _chunkDPYAO5U6cjs.DEFAULT_GLOBAL_LIGHT; exports.DIRECT_GAUSSIAN_MAX_SIGMA = _chunkK6PXS6DOcjs.DIRECT_GAUSSIAN_MAX_SIGMA; exports.DeepCompositor = _chunkDPYAO5U6cjs.DeepCompositor; exports.INTERPOLATIONS = _chunkDPYAO5U6cjs.INTERPOLATIONS; exports.LAYER_EFFECT_KINDS = _chunkDPYAO5U6cjs.LAYER_EFFECT_KINDS; exports.LAYER_EFFECT_MENU = _chunkBOHDJJ2Ocjs.LAYER_EFFECT_MENU; exports.LayerEffectError = _chunkDPYAO5U6cjs.LayerEffectError; exports.MAX_EFFECT_REACH = _chunkDPYAO5U6cjs.MAX_EFFECT_REACH; exports.MAX_TRANSFORM_PIXELS = _chunkDPYAO5U6cjs.MAX_TRANSFORM_PIXELS; exports.PAINTERLY_BLEND_MODES = _chunk2VX55NFMcjs.PAINTERLY_BLEND_MODES; exports.PatternPlacement = _chunkDPYAO5U6cjs.PatternPlacement; exports.PatternTile = _chunkDPYAO5U6cjs.PatternTile; exports.RasterCompositor = _chunkDPYAO5U6cjs.RasterCompositor; exports.SHADOW_AMBIENT = _chunk2VX55NFMcjs.SHADOW_AMBIENT; exports.STROKE_CHAMFER_MAX = _chunkDPYAO5U6cjs.STROKE_CHAMFER_MAX; exports.SurfaceDraft = _chunk474IQG74cjs.SurfaceDraft; exports.SurfaceViewportRenderer = SurfaceViewportRenderer; exports.TILE = _chunk474IQG74cjs.TILE; exports.TILE_SHIFT = _chunk474IQG74cjs.TILE_SHIFT; exports.TiledSurface = _chunk474IQG74cjs.TiledSurface; exports.TransformTooLargeError = _chunkDPYAO5U6cjs.TransformTooLargeError; exports.ZlibError = _chunkXFM3OCHUcjs.ZlibError; exports.activeEffectItems = _chunkDPYAO5U6cjs.activeEffectItems; exports.adler32 = _chunkXFM3OCHUcjs.adler32; exports.applyEdgeAmbient = _chunkDPYAO5U6cjs.applyEdgeAmbient; exports.base64ToBytes = _chunkW5M3J7PVcjs.base64ToBytes; exports.blendChannel = _chunk2VX55NFMcjs.blendChannel; exports.blendImageData = _chunk2VX55NFMcjs.blendImageData; exports.blendLum = _chunk2VX55NFMcjs.blendLum; exports.blendPixel = _chunk2VX55NFMcjs.blendPixel; exports.blendRgb = _chunk2VX55NFMcjs.blendRgb; exports.blendTile = _chunkDPYAO5U6cjs.blendTile; exports.buildEffectMaps = _chunkDPYAO5U6cjs.buildEffectMaps; exports.builtinPattern = _chunkDPYAO5U6cjs.builtinPattern; exports.builtinPatternIds = _chunkDPYAO5U6cjs.builtinPatternIds; exports.bytesToBase64 = _chunkW5M3J7PVcjs.bytesToBase64; exports.canvasCompositeOperation = _chunk2VX55NFMcjs.canvasCompositeOperation; exports.changedTiles = _chunkDPYAO5U6cjs.changedTiles; exports.collectTiles = _chunk474IQG74cjs.collectTiles; exports.compositeLayerEffects = _chunkDPYAO5U6cjs.compositeLayerEffects; exports.compositeSurfaceOver = _chunkDPYAO5U6cjs.compositeSurfaceOver; exports.contentBounds = _chunk474IQG74cjs.contentBounds; exports.contourLut = _chunkDPYAO5U6cjs.contourLut; exports.convertSurfaceDepth = _chunk2VX55NFMcjs.convertSurfaceDepth; exports.curveLut = _chunkDPYAO5U6cjs.curveLut; exports.decodePng = _chunkW5M3J7PVcjs.decodePng; exports.deepBytes = _chunk2VX55NFMcjs.deepBytes; exports.deepTile = _chunk2VX55NFMcjs.deepTile; exports.defaultEffectGradient = _chunkDPYAO5U6cjs.defaultEffectGradient; exports.defaultLayerEffect = _chunkDPYAO5U6cjs.defaultLayerEffect; exports.deflate = _chunkXFM3OCHUcjs.deflate; exports.deflateRaw = _chunkXFM3OCHUcjs.deflateRaw; exports.depthOf = _chunk2VX55NFMcjs.depthOf; exports.drawSurfaceToViewport = drawSurfaceToViewport; exports.effectColorHex = _chunkDPYAO5U6cjs.effectColorHex; exports.effectControlChange = _chunkBOHDJJ2Ocjs.effectControlChange; exports.effectFillColors = _chunkDPYAO5U6cjs.effectFillColors; exports.effectReach = _chunkDPYAO5U6cjs.effectReach; exports.effectsAreLocal = _chunkDPYAO5U6cjs.effectsAreLocal; exports.effectsFingerprint = _chunkDPYAO5U6cjs.effectsFingerprint; exports.effectsMargin = _chunkDPYAO5U6cjs.effectsMargin; exports.effectsScale = _chunkDPYAO5U6cjs.effectsScale; exports.emptySurface = _chunk474IQG74cjs.emptySurface; exports.encodePng = _chunkW5M3J7PVcjs.encodePng; exports.fillRect = _chunk474IQG74cjs.fillRect; exports.findLayer = _chunkDPYAO5U6cjs.findLayer; exports.finishTile = _chunk474IQG74cjs.finishTile; exports.flattenLayers = _chunkDPYAO5U6cjs.flattenLayers; exports.gaussianBlur = _chunkK6PXS6DOcjs.gaussianBlur; exports.gradientT = _chunkDPYAO5U6cjs.gradientT; exports.hasActiveEffects = _chunkDPYAO5U6cjs.hasActiveEffects; exports.hashNoise = _chunkDPYAO5U6cjs.hashNoise; exports.inflate = _chunkXFM3OCHUcjs.inflate; exports.inflateRaw = _chunkXFM3OCHUcjs.inflateRaw; exports.insertLayer = _chunkDPYAO5U6cjs.insertLayer; exports.isBitDepth = _chunk2VX55NFMcjs.isBitDepth; exports.isBlendMode = _chunk2VX55NFMcjs.isBlendMode; exports.isInterpolation = _chunkDPYAO5U6cjs.isInterpolation; exports.isLayerEffectKind = _chunkDPYAO5U6cjs.isLayerEffectKind; exports.isLayerLocked = _chunkDPYAO5U6cjs.isLayerLocked; exports.isPainterlyBlendMode = _chunk2VX55NFMcjs.isPainterlyBlendMode; exports.isPng = _chunkW5M3J7PVcjs.isPng; exports.isSeparableBlendMode = _chunk2VX55NFMcjs.isSeparableBlendMode; exports.keepDeepSamples = _chunk2VX55NFMcjs.keepDeepSamples; exports.keysWeight = _chunkDPYAO5U6cjs.keysWeight; exports.layerEffectControls = _chunkBOHDJJ2Ocjs.layerEffectControls; exports.layerEffectFields = _chunkDPYAO5U6cjs.layerEffectFields; exports.layerEffectLabel = _chunkDPYAO5U6cjs.layerEffectLabel; exports.layerEffectsBadge = _chunkBOHDJJ2Ocjs.layerEffectsBadge; exports.layerEffectsPanel = _chunkBOHDJJ2Ocjs.layerEffectsPanel; exports.mapLayer = _chunkDPYAO5U6cjs.mapLayer; exports.mergeLayerEffect = _chunkDPYAO5U6cjs.mergeLayerEffect; exports.mixPigment8 = _chunk2VX55NFMcjs.mixPigment8; exports.mixPigmentRgb = _chunk2VX55NFMcjs.mixPigmentRgb; exports.newEffectId = _chunkDPYAO5U6cjs.newEffectId; exports.normalizeBlendMode = _chunk2VX55NFMcjs.normalizeBlendMode; exports.normalizeLayerEffects = _chunkDPYAO5U6cjs.normalizeLayerEffects; exports.packRgba = _chunk474IQG74cjs.packRgba; exports.parseDataUrl = _chunkW5M3J7PVcjs.parseDataUrl; exports.parseEffectColor = _chunkDPYAO5U6cjs.parseEffectColor; exports.patchEffectMaps = _chunkDPYAO5U6cjs.patchEffectMaps; exports.pigment8 = _chunk2VX55NFMcjs.pigment8; exports.pngDataUrl = _chunkW5M3J7PVcjs.pngDataUrl; exports.proxyOf = _chunk2VX55NFMcjs.proxyOf; exports.readDeepRegion = _chunk2VX55NFMcjs.readDeepRegion; exports.readPixel = _chunk474IQG74cjs.readPixel; exports.readRegion = _chunk474IQG74cjs.readRegion; exports.reduceSurface = _chunkDPYAO5U6cjs.reduceSurface; exports.renderLayerEffects = _chunkDPYAO5U6cjs.renderLayerEffects; exports.scaleLayerEffect = _chunkDPYAO5U6cjs.scaleLayerEffect; exports.screenToWorld = screenToWorld; exports.setLum = _chunk2VX55NFMcjs.setLum; exports.solidSurface = _chunk474IQG74cjs.solidSurface; exports.srgbDecode = _chunk2VX55NFMcjs.srgbDecode; exports.srgbEncode = _chunk2VX55NFMcjs.srgbEncode; exports.standardBlendMode = _chunk2VX55NFMcjs.standardBlendMode; exports.surfaceBytes = _chunk474IQG74cjs.surfaceBytes; exports.surfaceDepth = _chunk2VX55NFMcjs.surfaceDepth; exports.surfaceFromDeepPixels = _chunk2VX55NFMcjs.surfaceFromDeepPixels; exports.surfaceFromPixels = _chunk474IQG74cjs.surfaceFromPixels; exports.surfaceMipLevel = surfaceMipLevel; exports.surfaceResolutionForZoom = surfaceResolutionForZoom; exports.surfaceToWorld = surfaceToWorld; exports.surfacesEqual = _chunk474IQG74cjs.surfacesEqual; exports.tileCoord = _chunk474IQG74cjs.tileCoord; exports.tileKey = _chunk474IQG74cjs.tileKey; exports.tileRect = _chunk474IQG74cjs.tileRect; exports.tileSamples = _chunk2VX55NFMcjs.tileSamples; exports.tileSamples16 = _chunk2VX55NFMcjs.tileSamples16; exports.tileSamples32 = _chunk2VX55NFMcjs.tileSamples32; exports.tilesInRect = _chunk474IQG74cjs.tilesInRect; exports.to16From32 = _chunk2VX55NFMcjs.to16From32; exports.to16From8 = _chunk2VX55NFMcjs.to16From8; exports.to32From16 = _chunk2VX55NFMcjs.to32From16; exports.to32From8 = _chunk2VX55NFMcjs.to32From8; exports.to8From16 = _chunk2VX55NFMcjs.to8From16; exports.to8From32 = _chunk2VX55NFMcjs.to8From32; exports.transformSurface = _chunkDPYAO5U6cjs.transformSurface; exports.transformedBounds = _chunkDPYAO5U6cjs.transformedBounds; exports.translateSurface = _chunk474IQG74cjs.translateSurface; exports.uniformTile = _chunk474IQG74cjs.uniformTile; exports.validateEffectGradient = _chunkDPYAO5U6cjs.validateEffectGradient; exports.validateLayerEffect = _chunkDPYAO5U6cjs.validateLayerEffect; exports.validateLayerEffects = _chunkDPYAO5U6cjs.validateLayerEffects; exports.visibleSurfaceRect = visibleSurfaceRect; exports.visibleWorldRect = visibleWorldRect; exports.warpSurface = _chunkDPYAO5U6cjs.warpSurface; exports.workingToSamples = _chunkDPYAO5U6cjs.workingToSamples; exports.worldRectToSurface = worldRectToSurface; exports.worldToSurface = worldToSurface; exports.writeDeepRegion = _chunk2VX55NFMcjs.writeDeepRegion; exports.writeRegion = _chunk474IQG74cjs.writeRegion;
@@ -18,6 +18,7 @@ export * from './curve.cjs';
18
18
  export * from './transform.cjs';
19
19
  export * from './effects/model.cjs';
20
20
  export * from './effects/patterns.cjs';
21
+ export * from './effects/ui.cjs';
21
22
  export { activeEffectItems, buildEffectMaps, compositeLayerEffects, contourLut, effectFillColors, effectsAreLocal, gradientT, patchEffectMaps, renderLayerEffects, STROKE_CHAMFER_MAX, type EffectCompositeInput, type EffectContext, type EffectMaps, type EffectRect, } from './effects/render.cjs';
22
23
  export { encodePng, decodePng, isPng, bytesToBase64, base64ToBytes, parseDataUrl, pngDataUrl, type DecodedPng } from './png.cjs';
23
24
  export { inflate, inflateRaw, deflate, deflateRaw, adler32, ZlibError } from './zlib.cjs';
@@ -18,6 +18,7 @@ export * from './curve.js';
18
18
  export * from './transform.js';
19
19
  export * from './effects/model.js';
20
20
  export * from './effects/patterns.js';
21
+ export * from './effects/ui.js';
21
22
  export { activeEffectItems, buildEffectMaps, compositeLayerEffects, contourLut, effectFillColors, effectsAreLocal, gradientT, patchEffectMaps, renderLayerEffects, STROKE_CHAMFER_MAX, type EffectCompositeInput, type EffectContext, type EffectMaps, type EffectRect, } from './effects/render.js';
22
23
  export { encodePng, decodePng, isPng, bytesToBase64, base64ToBytes, parseDataUrl, pngDataUrl, type DecodedPng } from './png.js';
23
24
  export { inflate, inflateRaw, deflate, deflateRaw, adler32, ZlibError } from './zlib.js';
@@ -1,3 +1,10 @@
1
+ import {
2
+ LAYER_EFFECT_MENU,
3
+ effectControlChange,
4
+ layerEffectControls,
5
+ layerEffectsBadge,
6
+ layerEffectsPanel
7
+ } from "../chunk-2VJAVXLI.js";
1
8
  import {
2
9
  CURVE_LUT_SIZE,
3
10
  DEFAULT_GLOBAL_LIGHT,
@@ -60,7 +67,7 @@ import {
60
67
  validateLayerEffects,
61
68
  warpSurface,
62
69
  workingToSamples
63
- } from "../chunk-UOOK7HTX.js";
70
+ } from "../chunk-3PPJRMIG.js";
64
71
  import "../chunk-OHKOFKBY.js";
65
72
  import {
66
73
  DIRECT_GAUSSIAN_MAX_SIGMA,
@@ -71,32 +78,25 @@ import {
71
78
  BLEND_MODES,
72
79
  PAINTERLY_BLEND_MODES,
73
80
  SHADOW_AMBIENT,
74
- base64ToBytes,
75
81
  blendChannel,
76
82
  blendImageData,
77
83
  blendLum,
78
84
  blendPixel,
79
85
  blendRgb,
80
- bytesToBase64,
81
86
  canvasCompositeOperation,
82
87
  convertSurfaceDepth,
83
- decodePng,
84
88
  deepBytes,
85
89
  deepTile,
86
90
  depthOf,
87
- encodePng,
88
91
  isBitDepth,
89
92
  isBlendMode,
90
93
  isPainterlyBlendMode,
91
- isPng,
92
94
  isSeparableBlendMode,
93
95
  keepDeepSamples,
94
96
  mixPigment8,
95
97
  mixPigmentRgb,
96
98
  normalizeBlendMode,
97
- parseDataUrl,
98
99
  pigment8,
99
- pngDataUrl,
100
100
  proxyOf,
101
101
  readDeepRegion,
102
102
  setLum,
@@ -115,7 +115,16 @@ import {
115
115
  to8From16,
116
116
  to8From32,
117
117
  writeDeepRegion
118
- } from "../chunk-42TWUPNJ.js";
118
+ } from "../chunk-IRSTHLQQ.js";
119
+ import {
120
+ base64ToBytes,
121
+ bytesToBase64,
122
+ decodePng,
123
+ encodePng,
124
+ isPng,
125
+ parseDataUrl,
126
+ pngDataUrl
127
+ } from "../chunk-OTTT5N3K.js";
119
128
  import {
120
129
  SurfaceDraft,
121
130
  TILE,
@@ -374,6 +383,7 @@ export {
374
383
  DeepCompositor,
375
384
  INTERPOLATIONS,
376
385
  LAYER_EFFECT_KINDS,
386
+ LAYER_EFFECT_MENU,
377
387
  LayerEffectError,
378
388
  MAX_EFFECT_REACH,
379
389
  MAX_TRANSFORM_PIXELS,
@@ -423,6 +433,7 @@ export {
423
433
  depthOf,
424
434
  drawSurfaceToViewport,
425
435
  effectColorHex,
436
+ effectControlChange,
426
437
  effectFillColors,
427
438
  effectReach,
428
439
  effectsAreLocal,
@@ -452,8 +463,11 @@ export {
452
463
  isSeparableBlendMode,
453
464
  keepDeepSamples,
454
465
  keysWeight,
466
+ layerEffectControls,
455
467
  layerEffectFields,
456
468
  layerEffectLabel,
469
+ layerEffectsBadge,
470
+ layerEffectsPanel,
457
471
  mapLayer,
458
472
  mergeLayerEffect,
459
473
  mixPigment8,
@@ -0,0 +1,48 @@
1
+ /**
2
+ * `StickerBrowser`: the state behind a sticker picker, shared by the React and Svelte pickers. It
3
+ * searches or lists the provider a page at a time (search words, category), keeps the pages it
4
+ * has loaded and its categories, and tells listeners when anything changes. UI-agnostic.
5
+ */
6
+ import type { StickerProvider, StickerRef, StickerSummary } from './types.cjs';
7
+ export interface StickerBrowserItem extends StickerSummary {
8
+ ref: StickerRef;
9
+ }
10
+ export interface StickerBrowserState {
11
+ query: string;
12
+ /** `''` for every category. */
13
+ category: string;
14
+ items: StickerBrowserItem[];
15
+ total: number;
16
+ /** More pages to load (`more()`). */
17
+ hasMore: boolean;
18
+ loading: boolean;
19
+ error: string | null;
20
+ categories: Array<{
21
+ id: string;
22
+ name: string;
23
+ count: number;
24
+ }>;
25
+ /** The provider's name. */
26
+ provider: string;
27
+ }
28
+ export declare class StickerBrowser {
29
+ private readonly provider;
30
+ private readonly pageSize;
31
+ private s;
32
+ private next;
33
+ private run;
34
+ private readonly listeners;
35
+ constructor(provider: () => StickerProvider, pageSize?: number);
36
+ get state(): StickerBrowserState;
37
+ subscribe(listener: () => void): () => void;
38
+ private set;
39
+ /** Loads the first page (and the categories) again, for the current provider. */
40
+ refresh(): Promise<void>;
41
+ /** Searches for `query` (words; `''` lists everything) from the first page. */
42
+ setQuery(query: string): Promise<void>;
43
+ /** Shows one category (`''` for all) from the first page. */
44
+ setCategory(category: string): Promise<void>;
45
+ /** Loads the next page onto the list. */
46
+ more(): Promise<void>;
47
+ private page;
48
+ }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * `StickerBrowser`: the state behind a sticker picker, shared by the React and Svelte pickers. It
3
+ * searches or lists the provider a page at a time (search words, category), keeps the pages it
4
+ * has loaded and its categories, and tells listeners when anything changes. UI-agnostic.
5
+ */
6
+ import type { StickerProvider, StickerRef, StickerSummary } from './types.js';
7
+ export interface StickerBrowserItem extends StickerSummary {
8
+ ref: StickerRef;
9
+ }
10
+ export interface StickerBrowserState {
11
+ query: string;
12
+ /** `''` for every category. */
13
+ category: string;
14
+ items: StickerBrowserItem[];
15
+ total: number;
16
+ /** More pages to load (`more()`). */
17
+ hasMore: boolean;
18
+ loading: boolean;
19
+ error: string | null;
20
+ categories: Array<{
21
+ id: string;
22
+ name: string;
23
+ count: number;
24
+ }>;
25
+ /** The provider's name. */
26
+ provider: string;
27
+ }
28
+ export declare class StickerBrowser {
29
+ private readonly provider;
30
+ private readonly pageSize;
31
+ private s;
32
+ private next;
33
+ private run;
34
+ private readonly listeners;
35
+ constructor(provider: () => StickerProvider, pageSize?: number);
36
+ get state(): StickerBrowserState;
37
+ subscribe(listener: () => void): () => void;
38
+ private set;
39
+ /** Loads the first page (and the categories) again, for the current provider. */
40
+ refresh(): Promise<void>;
41
+ /** Searches for `query` (words; `''` lists everything) from the first page. */
42
+ setQuery(query: string): Promise<void>;
43
+ /** Shows one category (`''` for all) from the first page. */
44
+ setCategory(category: string): Promise<void>;
45
+ /** Loads the next page onto the list. */
46
+ more(): Promise<void>;
47
+ private page;
48
+ }
@@ -0,0 +1,10 @@
1
+ import type { StickerProvider } from './types.cjs';
2
+ /**
3
+ * One provider over several, in order. Its ids are refs (`provider:id`, `namespaced`), so the
4
+ * same id from two libraries stays two stickers. Pages run through the providers in turn; the
5
+ * cursor is `<provider index>|<that provider's cursor>`. Capabilities are what any of them offers.
6
+ */
7
+ export declare function combineStickerProviders(providers: readonly StickerProvider[], options?: {
8
+ id?: string;
9
+ name?: string;
10
+ }): StickerProvider;
@@ -0,0 +1,10 @@
1
+ import type { StickerProvider } from './types.js';
2
+ /**
3
+ * One provider over several, in order. Its ids are refs (`provider:id`, `namespaced`), so the
4
+ * same id from two libraries stays two stickers. Pages run through the providers in turn; the
5
+ * cursor is `<provider index>|<that provider's cursor>`. Capabilities are what any of them offers.
6
+ */
7
+ export declare function combineStickerProviders(providers: readonly StickerProvider[], options?: {
8
+ id?: string;
9
+ name?: string;
10
+ }): StickerProvider;
@@ -0,0 +1,18 @@
1
+ import type { StickerProvider } from './types.cjs';
2
+ export interface StickerConformanceIssue {
3
+ /** The sticker it is about, when it is about one. */
4
+ stickerId?: string;
5
+ message: string;
6
+ }
7
+ export interface StickerConformanceOptions {
8
+ /** Stop walking pages after this many (default 50). */
9
+ maxPages?: number;
10
+ /** Load at most this many stickers in each format (default 3). */
11
+ loads?: number;
12
+ }
13
+ /**
14
+ * Checks a sticker provider against the contract: capabilities, every listed sticker (walking the
15
+ * pages), search and list agreeing, paging limits, describe and load for known and unknown ids,
16
+ * and tinting. Returns the problems found (empty when it conforms).
17
+ */
18
+ export declare function checkStickerProvider(provider: StickerProvider, options?: StickerConformanceOptions): Promise<StickerConformanceIssue[]>;
@@ -0,0 +1,18 @@
1
+ import type { StickerProvider } from './types.js';
2
+ export interface StickerConformanceIssue {
3
+ /** The sticker it is about, when it is about one. */
4
+ stickerId?: string;
5
+ message: string;
6
+ }
7
+ export interface StickerConformanceOptions {
8
+ /** Stop walking pages after this many (default 50). */
9
+ maxPages?: number;
10
+ /** Load at most this many stickers in each format (default 3). */
11
+ loads?: number;
12
+ }
13
+ /**
14
+ * Checks a sticker provider against the contract: capabilities, every listed sticker (walking the
15
+ * pages), search and list agreeing, paging limits, describe and load for known and unknown ids,
16
+ * and tinting. Returns the problems found (empty when it conforms).
17
+ */
18
+ export declare function checkStickerProvider(provider: StickerProvider, options?: StickerConformanceOptions): Promise<StickerConformanceIssue[]>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `editorStickers()`: the editor's own stamps as a sticker provider (id `editor`), the default in
3
+ * every `StickersSlot`, so stickers work with no setup. Each stamp is MIT-licensed and tintable.
4
+ * Its SVG is the stamp's outline, contoured from the coverage function the paint editor draws, so
5
+ * the vector art and the painted stamp have the same shape; its PNG is drawn from the function.
6
+ */
7
+ import { type StampKind } from './stamps.cjs';
8
+ import type { StickerProvider } from './types.cjs';
9
+ /** The stamp's outline as SVG path data in a `BOX` px square (marching squares on the 0.5 level, simplified). */
10
+ export declare function stampOutline(kind: StampKind): string;
11
+ /** The stamp drawn flat in `colour` as RGBA, `size` px square (supersampled). */
12
+ export declare function stampPixels(kind: StampKind, size: number, colour: string): Uint8ClampedArray;
13
+ /** The editor's own stamps as a `StickerProvider` (id `editor`): tintable, MIT, SVG and PNG. */
14
+ export declare function editorStickers(): StickerProvider;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `editorStickers()`: the editor's own stamps as a sticker provider (id `editor`), the default in
3
+ * every `StickersSlot`, so stickers work with no setup. Each stamp is MIT-licensed and tintable.
4
+ * Its SVG is the stamp's outline, contoured from the coverage function the paint editor draws, so
5
+ * the vector art and the painted stamp have the same shape; its PNG is drawn from the function.
6
+ */
7
+ import { type StampKind } from './stamps.js';
8
+ import type { StickerProvider } from './types.js';
9
+ /** The stamp's outline as SVG path data in a `BOX` px square (marching squares on the 0.5 level, simplified). */
10
+ export declare function stampOutline(kind: StampKind): string;
11
+ /** The stamp drawn flat in `colour` as RGBA, `size` px square (supersampled). */
12
+ export declare function stampPixels(kind: StampKind, size: number, colour: string): Uint8ClampedArray;
13
+ /** The editor's own stamps as a `StickerProvider` (id `editor`): tintable, MIT, SVG and PNG. */
14
+ export declare function editorStickers(): StickerProvider;
@@ -0,0 +1,6 @@
1
+ export type StickerErrorCode = 'unknown_sticker' | 'unknown_provider' | 'unsupported_format' | 'no_provider' | 'load_failed' | 'invalid_argument';
2
+ /** A refusal from a sticker provider or the sticker tools. The message says what to do instead. */
3
+ export declare class StickerError extends Error {
4
+ readonly code: StickerErrorCode;
5
+ constructor(code: StickerErrorCode, message: string);
6
+ }
@@ -0,0 +1,6 @@
1
+ export type StickerErrorCode = 'unknown_sticker' | 'unknown_provider' | 'unsupported_format' | 'no_provider' | 'load_failed' | 'invalid_argument';
2
+ /** A refusal from a sticker provider or the sticker tools. The message says what to do instead. */
3
+ export declare class StickerError extends Error {
4
+ readonly code: StickerErrorCode;
5
+ constructor(code: StickerErrorCode, message: string);
6
+ }