gradiente 2.2.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,15 +313,26 @@ 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
- type ConicGradientConfig = GradientCommonConfig & {
332
+ type ConicGradientConfig = {
315
333
  from: GradientAngleValue;
316
334
  position: GradientPosition;
335
+ interpolation?: GradientInterpolation;
317
336
  };
318
337
  declare class ConicGradient extends GradientBase<ConicGradientConfig> {
319
338
  readonly type = "conic-gradient";
@@ -326,13 +345,104 @@ declare class ConicGradient extends GradientBase<ConicGradientConfig> {
326
345
  private _serializeConfig;
327
346
  private _serializePosition;
328
347
  private _formatLengthPercentage;
348
+ private _serializeInterpolation;
349
+ private _isDefaultFrom;
350
+ private _isDefaultPosition;
329
351
  private static _parseConfig;
330
352
  private static _parseLengthPercentage;
331
353
  private static _parseAngle;
332
354
  }
333
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
334
444
  //#region src/gradients/GradientFactory.d.ts
335
- interface IGradientStatic<TGradient extends GradientBase = GradientBase> {
445
+ interface IGradientStatic<TGradient extends GradientLike = GradientLike> {
336
446
  fromAbi(abi: GradientAbi): TGradient;
337
447
  fromString(input: string): TGradient;
338
448
  }
@@ -342,23 +452,24 @@ declare class GradientFactory {
342
452
  static add(type: string, value: IGradientStatic): void;
343
453
  static get(functionName: string): IGradientStatic | null;
344
454
  static remove(functionName: string): boolean;
345
- static create(input: string | GradientAbi): IGradientBase<any>;
455
+ static create(input: string | GradientAbi): AnyGradient;
346
456
  static isValid(input: string): boolean;
347
457
  private static _ensureInitialized;
458
+ private static _getFunctionName;
348
459
  }
349
- type AnyGradient = LinearGradient | RadialGradient | ConicGradient;
460
+ type AnyGradient = LinearGradient | RadialGradient | DiamondGradient | ConicGradient | MeshGradient;
350
461
  declare function parse(input: string): AnyGradient;
351
462
  declare function isGradient(input: string): boolean;
352
463
  declare function format(input: string | AnyGradient): string;
353
- declare function transformTo(target: string, input: string | GradientBase<any>): unknown;
354
- 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;
355
466
  //#endregion
356
467
  //#region src/gradient-transformer/modules/types.d.ts
357
468
  interface IGradientTransformerModule<TOutput = unknown> {
358
469
  readonly target: string;
359
470
  readonly gradientType: string;
360
- to(input: GradientBase<any>): TOutput;
361
- from?(input: TOutput): GradientBase<any>;
471
+ to(input: GradientLike): TOutput;
472
+ from?(input: TOutput): GradientLike;
362
473
  }
363
474
  interface ICanvasPaintResult {
364
475
  draw(ctx: CanvasRenderingContext2D, width: number, height: number): void;
@@ -378,6 +489,13 @@ declare class ModuleTransformerRadialGradientToCss implements IGradientTransform
378
489
  to(input: GradientBase<any>): string;
379
490
  }
380
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
381
499
  //#region src/gradient-transformer/modules/css/ModuleTransformerConicGradientToCss.d.ts
382
500
  declare class ModuleTransformerConicGradientToCss implements IGradientTransformerModule<string> {
383
501
  readonly target = "css";
@@ -385,6 +503,13 @@ declare class ModuleTransformerConicGradientToCss implements IGradientTransforme
385
503
  to(input: GradientBase<any>): string;
386
504
  }
387
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
388
513
  //#region src/gradient-transformer/modules/canvas/ModuleTransformerLinearGradientToCanvas.d.ts
389
514
  declare class ModuleTransformerLinearGradientToCanvas implements IGradientTransformerModule<ICanvasPaintResult> {
390
515
  readonly target = "canvas-2d";
@@ -404,6 +529,18 @@ declare class ModuleTransformerRadialGradientToCanvas implements IGradientTransf
404
529
  private _resolve;
405
530
  }
406
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
407
544
  //#region src/gradient-transformer/modules/canvas/ModuleTransformerConicGradientToCanvas.d.ts
408
545
  declare class ModuleTransformerConicGradientToCanvas implements IGradientTransformerModule<ICanvasPaintResult> {
409
546
  readonly target = "canvas-2d";
@@ -421,6 +558,13 @@ declare class ModuleTransformerConicGradientToCanvas implements IGradientTransfo
421
558
  private _clamp01;
422
559
  }
423
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
424
568
  //#region src/gradient-transformer/modules/webgl/types.d.ts
425
569
  interface IWebGLPaintResult {
426
570
  draw(canvas: HTMLCanvasElement, width: number, height: number): void;
@@ -433,6 +577,13 @@ declare class ModuleTransformerLinearGradientToCanvasWebGL implements IGradientT
433
577
  to(input: GradientBase<any>): IWebGLPaintResult;
434
578
  }
435
579
  //#endregion
580
+ //#region src/gradient-transformer/modules/webgl/ModuleTransformerConicGradientToWebgl.d.ts
581
+ declare class ModuleTransformerConicGradientToCanvasWebGL implements IGradientTransformerModule<IWebGLPaintResult> {
582
+ readonly target = "canvas-webgl";
583
+ readonly gradientType = "conic-gradient";
584
+ to(input: GradientBase<any>): IWebGLPaintResult;
585
+ }
586
+ //#endregion
436
587
  //#region src/gradient-transformer/modules/webgl/ModuleTransformerRadialGradientToWebgl.d.ts
437
588
  declare class ModuleTransformerRadialGradientToCanvasWebGL implements IGradientTransformerModule<IWebGLPaintResult> {
438
589
  readonly target = "canvas-webgl";
@@ -440,6 +591,20 @@ declare class ModuleTransformerRadialGradientToCanvasWebGL implements IGradientT
440
591
  to(input: GradientBase<any>): IWebGLPaintResult;
441
592
  }
442
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
443
608
  //#region src/gradient-transformer/GradientTransformer.d.ts
444
609
  declare class GradientTransformer {
445
610
  private static readonly _modules;
@@ -447,10 +612,10 @@ declare class GradientTransformer {
447
612
  static add(module: IGradientTransformerModule): void;
448
613
  static get(target: string, gradientType: string): IGradientTransformerModule | null;
449
614
  static remove(target: string, gradientType: string): boolean;
450
- static to<TOutput = unknown>(target: string, input: string | GradientBase<any>): TOutput;
451
- 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;
452
617
  private static _ensureInitialized;
453
618
  private static _getKey;
454
619
  }
455
620
  //#endregion
456
- 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, 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 };