gradiente 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -181,19 +181,27 @@ type GradientCommonConfig = {
181
181
  //#endregion
182
182
  //#region src/gradients/GradientBase.d.ts
183
183
  type GradientType = string;
184
+ interface GradientLike<TJSON = unknown> {
185
+ readonly type: GradientType;
186
+ clone(): this;
187
+ toString(): string;
188
+ toJSON(): TJSON & {
189
+ type: GradientType;
190
+ };
191
+ }
184
192
  interface GradientData<TConfig = unknown> {
185
193
  isRepeating: boolean;
186
194
  config: TConfig;
187
195
  stops: GradientStop[];
188
196
  }
189
- interface IGradientBase<TConfig = unknown> {
197
+ interface IGradientBase<TConfig = unknown> extends GradientLike<GradientData<TConfig>> {
190
198
  readonly type: GradientType;
191
199
  readonly isRepeating: boolean;
192
200
  readonly config: TConfig;
193
201
  readonly stops: GradientStop[];
194
- clone(): this;
195
- toString(): string;
196
- toJSON(): GradientData<TConfig>;
202
+ toJSON(): GradientData<TConfig> & {
203
+ type: GradientType;
204
+ };
197
205
  addStop(stop: GradientStop): void;
198
206
  removeStop(index: number): void;
199
207
  equals(other: IGradientBase<TConfig>): boolean;
@@ -289,7 +297,7 @@ type RadialGradientConfig = {
289
297
  };
290
298
  declare class RadialGradient extends GradientBase<RadialGradientConfig> {
291
299
  private static readonly DEFAULT_CONFIG;
292
- readonly type = "radial-gradient";
300
+ readonly type: GradientType;
293
301
  constructor(input: Partial<GradientData<RadialGradientConfig>>);
294
302
  static fromString(input: string): RadialGradient;
295
303
  static fromAbi(abi: GradientAbi): RadialGradient;
@@ -305,11 +313,21 @@ declare class RadialGradient extends GradientBase<RadialGradientConfig> {
305
313
  private _isDefaultRadialPosition;
306
314
  private _serializePosition;
307
315
  private _formatLengthPercentage;
308
- private static _parseConfig;
316
+ protected static _parseConfig(inputs: GradientAbiInput[]): RadialGradientConfig;
309
317
  private static _parseLengthPercentage;
310
318
  private static _normalizeConfigInterpolation;
311
319
  }
312
320
  //#endregion
321
+ //#region src/gradients/DiamondGradient.d.ts
322
+ type DiamondGradientConfig = RadialGradientConfig;
323
+ declare class DiamondGradient extends RadialGradient {
324
+ readonly type: GradientType;
325
+ constructor(input: Partial<GradientData<DiamondGradientConfig>>);
326
+ static fromString(input: string): DiamondGradient;
327
+ static fromAbi(abi: GradientAbi): DiamondGradient;
328
+ clone(): this;
329
+ }
330
+ //#endregion
313
331
  //#region src/gradients/ConicGradient.d.ts
314
332
  type ConicGradientConfig = {
315
333
  from: GradientAngleValue;
@@ -335,8 +353,96 @@ declare class ConicGradient extends GradientBase<ConicGradientConfig> {
335
353
  private static _parseAngle;
336
354
  }
337
355
  //#endregion
356
+ //#region src/gradients/MeshGradient.d.ts
357
+ type MeshGradientInterpolationMethod = "bilinear" | "bicubic";
358
+ type MeshGradientPatchSide = "top" | "right" | "bottom" | "left";
359
+ type MeshGradientConfig = {
360
+ rows: number;
361
+ columns: number;
362
+ method: MeshGradientInterpolationMethod;
363
+ interpolation?: GradientInterpolation;
364
+ };
365
+ type MeshGradientVertex = {
366
+ id: string;
367
+ x: GradientLengthPercentage;
368
+ y: GradientLengthPercentage;
369
+ color: string;
370
+ };
371
+ type MeshGradientHandle = {
372
+ x: GradientLengthPercentage;
373
+ y: GradientLengthPercentage;
374
+ };
375
+ type MeshGradientPatch = {
376
+ id: string;
377
+ topLeft: string;
378
+ topRight: string;
379
+ bottomRight: string;
380
+ bottomLeft: string;
381
+ handles?: {
382
+ top?: {
383
+ from: MeshGradientHandle;
384
+ to: MeshGradientHandle;
385
+ };
386
+ right?: {
387
+ from: MeshGradientHandle;
388
+ to: MeshGradientHandle;
389
+ };
390
+ bottom?: {
391
+ from: MeshGradientHandle;
392
+ to: MeshGradientHandle;
393
+ };
394
+ left?: {
395
+ from: MeshGradientHandle;
396
+ to: MeshGradientHandle;
397
+ };
398
+ };
399
+ };
400
+ type MeshGradientData = {
401
+ config: MeshGradientConfig;
402
+ vertices: MeshGradientVertex[];
403
+ patches: MeshGradientPatch[];
404
+ };
405
+ declare class MeshGradient implements GradientLike<MeshGradientData> {
406
+ readonly type = "mesh-gradient";
407
+ private readonly _config;
408
+ private readonly _vertices;
409
+ private readonly _patches;
410
+ constructor(input: MeshGradientData);
411
+ get config(): MeshGradientConfig;
412
+ get vertices(): MeshGradientVertex[];
413
+ get patches(): MeshGradientPatch[];
414
+ static fromString(input: string): MeshGradient;
415
+ static fromAbi(abi: GradientAbi): MeshGradient;
416
+ clone(): this;
417
+ toJSON(): MeshGradientData & {
418
+ type: "mesh-gradient";
419
+ };
420
+ toString(): string;
421
+ getVertex(id: string): MeshGradientVertex | null;
422
+ private _serializeConfig;
423
+ private _serializeVertex;
424
+ private _serializePatch;
425
+ private _serializeHandles;
426
+ private _formatLengthPercentage;
427
+ private _validate;
428
+ private _validateId;
429
+ private _validateHandles;
430
+ private _validateLengthPercentage;
431
+ private static _parseConfig;
432
+ private static _parseVertex;
433
+ private static _parsePatch;
434
+ private static _parseHandle;
435
+ private static _attachHandles;
436
+ private static _parseLengthPercentage;
437
+ private static _normalizeInterpolation;
438
+ private static _parseFunction;
439
+ private static _findOuterClosingParenIndex;
440
+ private static _splitTopLevelInputs;
441
+ private static _pushTrimmed;
442
+ }
443
+ //#endregion
338
444
  //#region src/gradients/GradientFactory.d.ts
339
- interface IGradientStatic<TGradient extends GradientBase = GradientBase> {
445
+ interface IGradientStatic<TGradient extends GradientLike = GradientLike> {
340
446
  fromAbi(abi: GradientAbi): TGradient;
341
447
  fromString(input: string): TGradient;
342
448
  }
@@ -346,23 +452,24 @@ declare class GradientFactory {
346
452
  static add(type: string, value: IGradientStatic): void;
347
453
  static get(functionName: string): IGradientStatic | null;
348
454
  static remove(functionName: string): boolean;
349
- static create(input: string | GradientAbi): IGradientBase<any>;
455
+ static create(input: string | GradientAbi): AnyGradient;
350
456
  static isValid(input: string): boolean;
351
457
  private static _ensureInitialized;
458
+ private static _getFunctionName;
352
459
  }
353
- type AnyGradient = LinearGradient | RadialGradient | ConicGradient;
460
+ type AnyGradient = LinearGradient | RadialGradient | DiamondGradient | ConicGradient | MeshGradient;
354
461
  declare function parse(input: string): AnyGradient;
355
462
  declare function isGradient(input: string): boolean;
356
463
  declare function format(input: string | AnyGradient): string;
357
- declare function transformTo(target: string, input: string | GradientBase<any>): unknown;
358
- declare function transformFrom<TInput = unknown>(target: string, gradientType: string, input: TInput): GradientBase<any>;
464
+ declare function transformTo(target: string, input: string | AnyGradient): unknown;
465
+ declare function transformFrom<TInput = unknown>(target: string, gradientType: string, input: TInput): AnyGradient;
359
466
  //#endregion
360
467
  //#region src/gradient-transformer/modules/types.d.ts
361
468
  interface IGradientTransformerModule<TOutput = unknown> {
362
469
  readonly target: string;
363
470
  readonly gradientType: string;
364
- to(input: GradientBase<any>): TOutput;
365
- from?(input: TOutput): GradientBase<any>;
471
+ to(input: GradientLike): TOutput;
472
+ from?(input: TOutput): GradientLike;
366
473
  }
367
474
  interface ICanvasPaintResult {
368
475
  draw(ctx: CanvasRenderingContext2D, width: number, height: number): void;
@@ -382,6 +489,13 @@ declare class ModuleTransformerRadialGradientToCss implements IGradientTransform
382
489
  to(input: GradientBase<any>): string;
383
490
  }
384
491
  //#endregion
492
+ //#region src/gradient-transformer/modules/css/ModuleTransformerDiamondGradientToCss.d.ts
493
+ declare class ModuleTransformerDiamondGradientToCss implements IGradientTransformerModule<string> {
494
+ readonly target = "css";
495
+ readonly gradientType = "diamond-gradient";
496
+ to(input: GradientBase<any>): string;
497
+ }
498
+ //#endregion
385
499
  //#region src/gradient-transformer/modules/css/ModuleTransformerConicGradientToCss.d.ts
386
500
  declare class ModuleTransformerConicGradientToCss implements IGradientTransformerModule<string> {
387
501
  readonly target = "css";
@@ -389,6 +503,13 @@ declare class ModuleTransformerConicGradientToCss implements IGradientTransforme
389
503
  to(input: GradientBase<any>): string;
390
504
  }
391
505
  //#endregion
506
+ //#region src/gradient-transformer/modules/css/ModuleTransformerMeshGradientToCss.d.ts
507
+ declare class ModuleTransformerMeshGradientToCss implements IGradientTransformerModule<string> {
508
+ readonly target = "css";
509
+ readonly gradientType = "mesh-gradient";
510
+ to(input: GradientLike): string;
511
+ }
512
+ //#endregion
392
513
  //#region src/gradient-transformer/modules/canvas/ModuleTransformerLinearGradientToCanvas.d.ts
393
514
  declare class ModuleTransformerLinearGradientToCanvas implements IGradientTransformerModule<ICanvasPaintResult> {
394
515
  readonly target = "canvas-2d";
@@ -408,6 +529,18 @@ declare class ModuleTransformerRadialGradientToCanvas implements IGradientTransf
408
529
  private _resolve;
409
530
  }
410
531
  //#endregion
532
+ //#region src/gradient-transformer/modules/canvas/ModuleTransformerDiamondGradientToCanvas.d.ts
533
+ declare class ModuleTransformerDiamondGradientToCanvas implements IGradientTransformerModule<ICanvasPaintResult> {
534
+ readonly target = "canvas-2d";
535
+ readonly gradientType = "diamond-gradient";
536
+ to(input: GradientBase<any>): ICanvasPaintResult;
537
+ private _resolveCenter;
538
+ private _resolveKeywordX;
539
+ private _resolveKeywordY;
540
+ private _resolveDiamondRadii;
541
+ private _resolve;
542
+ }
543
+ //#endregion
411
544
  //#region src/gradient-transformer/modules/canvas/ModuleTransformerConicGradientToCanvas.d.ts
412
545
  declare class ModuleTransformerConicGradientToCanvas implements IGradientTransformerModule<ICanvasPaintResult> {
413
546
  readonly target = "canvas-2d";
@@ -425,6 +558,13 @@ declare class ModuleTransformerConicGradientToCanvas implements IGradientTransfo
425
558
  private _clamp01;
426
559
  }
427
560
  //#endregion
561
+ //#region src/gradient-transformer/modules/canvas/ModuleTransformerMeshGradientToCanvas.d.ts
562
+ declare class ModuleTransformerMeshGradientToCanvas implements IGradientTransformerModule<ICanvasPaintResult> {
563
+ readonly target = "canvas-2d";
564
+ readonly gradientType = "mesh-gradient";
565
+ to(input: GradientLike): ICanvasPaintResult;
566
+ }
567
+ //#endregion
428
568
  //#region src/gradient-transformer/modules/webgl/types.d.ts
429
569
  interface IWebGLPaintResult {
430
570
  draw(canvas: HTMLCanvasElement, width: number, height: number): void;
@@ -451,6 +591,20 @@ declare class ModuleTransformerRadialGradientToCanvasWebGL implements IGradientT
451
591
  to(input: GradientBase<any>): IWebGLPaintResult;
452
592
  }
453
593
  //#endregion
594
+ //#region src/gradient-transformer/modules/webgl/ModuleTransformerDiamondGradientToWebgl.d.ts
595
+ declare class ModuleTransformerDiamondGradientToCanvasWebGL implements IGradientTransformerModule<IWebGLPaintResult> {
596
+ readonly target = "canvas-webgl";
597
+ readonly gradientType = "diamond-gradient";
598
+ to(input: GradientBase<any>): IWebGLPaintResult;
599
+ }
600
+ //#endregion
601
+ //#region src/gradient-transformer/modules/webgl/ModuleTransformerMeshGradientToWebgl.d.ts
602
+ declare class ModuleTransformerMeshGradientToCanvasWebGL implements IGradientTransformerModule<IWebGLPaintResult> {
603
+ readonly target = "canvas-webgl";
604
+ readonly gradientType = "mesh-gradient";
605
+ to(input: GradientLike): IWebGLPaintResult;
606
+ }
607
+ //#endregion
454
608
  //#region src/gradient-transformer/GradientTransformer.d.ts
455
609
  declare class GradientTransformer {
456
610
  private static readonly _modules;
@@ -458,10 +612,10 @@ declare class GradientTransformer {
458
612
  static add(module: IGradientTransformerModule): void;
459
613
  static get(target: string, gradientType: string): IGradientTransformerModule | null;
460
614
  static remove(target: string, gradientType: string): boolean;
461
- static to<TOutput = unknown>(target: string, input: string | GradientBase<any>): TOutput;
462
- static from<TOutput = unknown>(target: string, gradientType: string, input: TOutput): GradientBase<any>;
615
+ static to<TOutput = unknown>(target: string, input: string | GradientLike): TOutput;
616
+ static from<TOutput = unknown>(target: string, gradientType: string, input: TOutput): AnyGradient;
463
617
  private static _ensureInitialized;
464
618
  private static _getKey;
465
619
  }
466
620
  //#endregion
467
- export { AbiInputType, AngleUnit, AnyGradient, ConicGradient, ConicGradientConfig, GRADIENT_COLOR_SPACE, GRADIENT_HUE_INTERPOLATIONS, GRADIENT_POLAR_COLOR_SPACES, GradientAbi, GradientAbiInput, GradientAngleUnit, GradientAngleValue, GradientBase, GradientColorHint, GradientColorInterpolation, GradientColorSpace, GradientColorStop, GradientCommonConfig, GradientData, GradientFactory, GradientHueInterpolation, GradientHueInterpolationMethod, GradientInterpolation, GradientLengthPercentage, GradientLengthUnit, GradientLengthValue, GradientNumberValue, GradientPercentValue, GradientPolarColorSpace, GradientPosition, GradientPositionKeywordX, GradientPositionKeywordY, GradientRectangularColorSpace, GradientStop, GradientTransformer, GradientType, ICanvasPaintResult, IGradientBase, IGradientStatic, IGradientTransformerModule, LinearGradient, LinearGradientConfig, ModuleTransformerConicGradientToCanvas, ModuleTransformerConicGradientToCanvasWebGL, ModuleTransformerConicGradientToCss, ModuleTransformerLinearGradientToCanvas, ModuleTransformerLinearGradientToCanvasWebGL, ModuleTransformerLinearGradientToCss, ModuleTransformerRadialGradientToCanvas, ModuleTransformerRadialGradientToCanvasWebGL, ModuleTransformerRadialGradientToCss, PatternTokenKind, RadialGradient, RadialGradientConfig, RadialGradientExtent, RadialGradientShape, RadialGradientSize, angleValueFromString, ceilTo, clamp, degToRad, floorTo, format, fromPercent, gradToRad, isAngle, isAngleUnit, isColorHint, isColorStop, isConfig, isGradient, isGradientColorSpace, isGradientHueInterpolation, isGradientPolarColorSpace, isPatternSyntaxValid, isPatternValid, isValid, matchExpression, normalizeAngleDeg, normalizeAngleRad, parse, parseStringToAbi, radToDeg, roundTo, splitTopLevelByWhitespace, toPercent, tokenizePattern, transformFrom, transformTo, truncTo, turnToRad, validate, validatePattern, validatePatternSemantic, validatePatternStructure, validatePatternSyntax };
621
+ export { AbiInputType, AngleUnit, AnyGradient, ConicGradient, ConicGradientConfig, DiamondGradient, DiamondGradientConfig, GRADIENT_COLOR_SPACE, GRADIENT_HUE_INTERPOLATIONS, GRADIENT_POLAR_COLOR_SPACES, GradientAbi, GradientAbiInput, GradientAngleUnit, GradientAngleValue, GradientBase, GradientColorHint, GradientColorInterpolation, GradientColorSpace, GradientColorStop, GradientCommonConfig, GradientData, GradientFactory, GradientHueInterpolation, GradientHueInterpolationMethod, GradientInterpolation, GradientLengthPercentage, GradientLengthUnit, GradientLengthValue, GradientLike, GradientNumberValue, GradientPercentValue, GradientPolarColorSpace, GradientPosition, GradientPositionKeywordX, GradientPositionKeywordY, GradientRectangularColorSpace, GradientStop, GradientTransformer, GradientType, ICanvasPaintResult, IGradientBase, IGradientStatic, IGradientTransformerModule, LinearGradient, LinearGradientConfig, MeshGradient, MeshGradientConfig, MeshGradientData, MeshGradientHandle, MeshGradientInterpolationMethod, MeshGradientPatch, MeshGradientPatchSide, MeshGradientVertex, ModuleTransformerConicGradientToCanvas, ModuleTransformerConicGradientToCanvasWebGL, ModuleTransformerConicGradientToCss, ModuleTransformerDiamondGradientToCanvas, ModuleTransformerDiamondGradientToCanvasWebGL, ModuleTransformerDiamondGradientToCss, ModuleTransformerLinearGradientToCanvas, ModuleTransformerLinearGradientToCanvasWebGL, ModuleTransformerLinearGradientToCss, ModuleTransformerMeshGradientToCanvas, ModuleTransformerMeshGradientToCanvasWebGL, ModuleTransformerMeshGradientToCss, ModuleTransformerRadialGradientToCanvas, ModuleTransformerRadialGradientToCanvasWebGL, ModuleTransformerRadialGradientToCss, PatternTokenKind, RadialGradient, RadialGradientConfig, RadialGradientExtent, RadialGradientShape, RadialGradientSize, angleValueFromString, ceilTo, clamp, degToRad, floorTo, format, fromPercent, gradToRad, isAngle, isAngleUnit, isColorHint, isColorStop, isConfig, isGradient, isGradientColorSpace, isGradientHueInterpolation, isGradientPolarColorSpace, isPatternSyntaxValid, isPatternValid, isValid, matchExpression, normalizeAngleDeg, normalizeAngleRad, parse, parseStringToAbi, radToDeg, roundTo, splitTopLevelByWhitespace, toPercent, tokenizePattern, transformFrom, transformTo, truncTo, turnToRad, validate, validatePattern, validatePatternSemantic, validatePatternStructure, validatePatternSyntax };