gradiente 2.3.0 → 2.5.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,27 +452,37 @@ 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;
369
476
  }
477
+ interface ISvgGradientResult {
478
+ id: string;
479
+ href: string;
480
+ url: string;
481
+ type: "linearGradient" | "radialGradient" | "pattern";
482
+ gradient: string;
483
+ defs: string;
484
+ svg: string;
485
+ }
370
486
  //#endregion
371
487
  //#region src/gradient-transformer/modules/css/ModuleTransformerLinearGradientToCss.d.ts
372
488
  declare class ModuleTransformerLinearGradientToCss implements IGradientTransformerModule<string> {
@@ -382,6 +498,13 @@ declare class ModuleTransformerRadialGradientToCss implements IGradientTransform
382
498
  to(input: GradientBase<any>): string;
383
499
  }
384
500
  //#endregion
501
+ //#region src/gradient-transformer/modules/css/ModuleTransformerDiamondGradientToCss.d.ts
502
+ declare class ModuleTransformerDiamondGradientToCss implements IGradientTransformerModule<string> {
503
+ readonly target = "css";
504
+ readonly gradientType = "diamond-gradient";
505
+ to(input: GradientBase<any>): string;
506
+ }
507
+ //#endregion
385
508
  //#region src/gradient-transformer/modules/css/ModuleTransformerConicGradientToCss.d.ts
386
509
  declare class ModuleTransformerConicGradientToCss implements IGradientTransformerModule<string> {
387
510
  readonly target = "css";
@@ -389,6 +512,13 @@ declare class ModuleTransformerConicGradientToCss implements IGradientTransforme
389
512
  to(input: GradientBase<any>): string;
390
513
  }
391
514
  //#endregion
515
+ //#region src/gradient-transformer/modules/css/ModuleTransformerMeshGradientToCss.d.ts
516
+ declare class ModuleTransformerMeshGradientToCss implements IGradientTransformerModule<string> {
517
+ readonly target = "css";
518
+ readonly gradientType = "mesh-gradient";
519
+ to(input: GradientLike): string;
520
+ }
521
+ //#endregion
392
522
  //#region src/gradient-transformer/modules/canvas/ModuleTransformerLinearGradientToCanvas.d.ts
393
523
  declare class ModuleTransformerLinearGradientToCanvas implements IGradientTransformerModule<ICanvasPaintResult> {
394
524
  readonly target = "canvas-2d";
@@ -408,6 +538,18 @@ declare class ModuleTransformerRadialGradientToCanvas implements IGradientTransf
408
538
  private _resolve;
409
539
  }
410
540
  //#endregion
541
+ //#region src/gradient-transformer/modules/canvas/ModuleTransformerDiamondGradientToCanvas.d.ts
542
+ declare class ModuleTransformerDiamondGradientToCanvas implements IGradientTransformerModule<ICanvasPaintResult> {
543
+ readonly target = "canvas-2d";
544
+ readonly gradientType = "diamond-gradient";
545
+ to(input: GradientBase<any>): ICanvasPaintResult;
546
+ private _resolveCenter;
547
+ private _resolveKeywordX;
548
+ private _resolveKeywordY;
549
+ private _resolveDiamondRadii;
550
+ private _resolve;
551
+ }
552
+ //#endregion
411
553
  //#region src/gradient-transformer/modules/canvas/ModuleTransformerConicGradientToCanvas.d.ts
412
554
  declare class ModuleTransformerConicGradientToCanvas implements IGradientTransformerModule<ICanvasPaintResult> {
413
555
  readonly target = "canvas-2d";
@@ -425,6 +567,13 @@ declare class ModuleTransformerConicGradientToCanvas implements IGradientTransfo
425
567
  private _clamp01;
426
568
  }
427
569
  //#endregion
570
+ //#region src/gradient-transformer/modules/canvas/ModuleTransformerMeshGradientToCanvas.d.ts
571
+ declare class ModuleTransformerMeshGradientToCanvas implements IGradientTransformerModule<ICanvasPaintResult> {
572
+ readonly target = "canvas-2d";
573
+ readonly gradientType = "mesh-gradient";
574
+ to(input: GradientLike): ICanvasPaintResult;
575
+ }
576
+ //#endregion
428
577
  //#region src/gradient-transformer/modules/webgl/types.d.ts
429
578
  interface IWebGLPaintResult {
430
579
  draw(canvas: HTMLCanvasElement, width: number, height: number): void;
@@ -451,6 +600,55 @@ declare class ModuleTransformerRadialGradientToCanvasWebGL implements IGradientT
451
600
  to(input: GradientBase<any>): IWebGLPaintResult;
452
601
  }
453
602
  //#endregion
603
+ //#region src/gradient-transformer/modules/webgl/ModuleTransformerDiamondGradientToWebgl.d.ts
604
+ declare class ModuleTransformerDiamondGradientToCanvasWebGL implements IGradientTransformerModule<IWebGLPaintResult> {
605
+ readonly target = "canvas-webgl";
606
+ readonly gradientType = "diamond-gradient";
607
+ to(input: GradientBase<any>): IWebGLPaintResult;
608
+ }
609
+ //#endregion
610
+ //#region src/gradient-transformer/modules/webgl/ModuleTransformerMeshGradientToWebgl.d.ts
611
+ declare class ModuleTransformerMeshGradientToCanvasWebGL implements IGradientTransformerModule<IWebGLPaintResult> {
612
+ readonly target = "canvas-webgl";
613
+ readonly gradientType = "mesh-gradient";
614
+ to(input: GradientLike): IWebGLPaintResult;
615
+ }
616
+ //#endregion
617
+ //#region src/gradient-transformer/modules/svg/ModuleTransformerLinearGradientToSvg.d.ts
618
+ declare class ModuleTransformerLinearGradientToSvg implements IGradientTransformerModule<ISvgGradientResult> {
619
+ readonly target = "svg";
620
+ readonly gradientType = "linear-gradient";
621
+ to(input: GradientLike): ISvgGradientResult;
622
+ }
623
+ //#endregion
624
+ //#region src/gradient-transformer/modules/svg/ModuleTransformerRadialGradientToSvg.d.ts
625
+ declare class ModuleTransformerRadialGradientToSvg implements IGradientTransformerModule<ISvgGradientResult> {
626
+ readonly target = "svg";
627
+ readonly gradientType = "radial-gradient";
628
+ to(input: GradientLike): ISvgGradientResult;
629
+ }
630
+ //#endregion
631
+ //#region src/gradient-transformer/modules/svg/ModuleTransformerConicGradientToSvg.d.ts
632
+ declare class ModuleTransformerConicGradientToSvg implements IGradientTransformerModule<ISvgGradientResult> {
633
+ readonly target = "svg";
634
+ readonly gradientType = "conic-gradient";
635
+ to(input: GradientLike): ISvgGradientResult;
636
+ }
637
+ //#endregion
638
+ //#region src/gradient-transformer/modules/svg/ModuleTransformerDiamondGradientToSvg.d.ts
639
+ declare class ModuleTransformerDiamondGradientToSvg implements IGradientTransformerModule<ISvgGradientResult> {
640
+ readonly target = "svg";
641
+ readonly gradientType = "diamond-gradient";
642
+ to(input: GradientLike): ISvgGradientResult;
643
+ }
644
+ //#endregion
645
+ //#region src/gradient-transformer/modules/svg/ModuleTransformerMeshGradientToSvg.d.ts
646
+ declare class ModuleTransformerMeshGradientToSvg implements IGradientTransformerModule<ISvgGradientResult> {
647
+ readonly target = "svg";
648
+ readonly gradientType = "mesh-gradient";
649
+ to(input: GradientLike): ISvgGradientResult;
650
+ }
651
+ //#endregion
454
652
  //#region src/gradient-transformer/GradientTransformer.d.ts
455
653
  declare class GradientTransformer {
456
654
  private static readonly _modules;
@@ -458,10 +656,10 @@ declare class GradientTransformer {
458
656
  static add(module: IGradientTransformerModule): void;
459
657
  static get(target: string, gradientType: string): IGradientTransformerModule | null;
460
658
  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>;
659
+ static to<TOutput = unknown>(target: string, input: string | GradientLike): TOutput;
660
+ static from<TOutput = unknown>(target: string, gradientType: string, input: TOutput): AnyGradient;
463
661
  private static _ensureInitialized;
464
662
  private static _getKey;
465
663
  }
466
664
  //#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 };
665
+ 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, ISvgGradientResult, LinearGradient, LinearGradientConfig, MeshGradient, MeshGradientConfig, MeshGradientData, MeshGradientHandle, MeshGradientInterpolationMethod, MeshGradientPatch, MeshGradientPatchSide, MeshGradientVertex, ModuleTransformerConicGradientToCanvas, ModuleTransformerConicGradientToCanvasWebGL, ModuleTransformerConicGradientToCss, ModuleTransformerConicGradientToSvg, ModuleTransformerDiamondGradientToCanvas, ModuleTransformerDiamondGradientToCanvasWebGL, ModuleTransformerDiamondGradientToCss, ModuleTransformerDiamondGradientToSvg, ModuleTransformerLinearGradientToCanvas, ModuleTransformerLinearGradientToCanvasWebGL, ModuleTransformerLinearGradientToCss, ModuleTransformerLinearGradientToSvg, ModuleTransformerMeshGradientToCanvas, ModuleTransformerMeshGradientToCanvasWebGL, ModuleTransformerMeshGradientToCss, ModuleTransformerMeshGradientToSvg, ModuleTransformerRadialGradientToCanvas, ModuleTransformerRadialGradientToCanvasWebGL, ModuleTransformerRadialGradientToCss, ModuleTransformerRadialGradientToSvg, 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 };