nhb-toolbox 4.24.1 → 4.24.2

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/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@ All notable changes to the package will be documented here.
6
6
 
7
7
  ---
8
8
 
9
+ ## [4.24.2] - 2025-10-31
10
+
11
+ - **Fixed** *return type* when no `'colorType'` option is passed in `generateRandomColor`. **Improved** color related *types*.
12
+
9
13
  ## [4.24.1] - 2025-10-30
10
14
 
11
15
  - **Added** aliases for `generateRandomHSLColor`. **Updated** tsdoc for some color utilities.
@@ -100,7 +100,7 @@ export declare class Color {
100
100
  */
101
101
  constructor(color: CSSColor);
102
102
  /** - Iterates over the color representations (Hex, RGB, HSL). */
103
- [Symbol.iterator](): Generator<Hex8 | HSL | Hex6 | RGB | RGBA | HSLA, void, unknown>;
103
+ [Symbol.iterator](): Generator<Hex8 | `hsl(${number},${number}%,${number}%)` | `hsl(${number},${number}%, ${number}%)` | `hsl(${number}, ${number}%,${number}%)` | `hsl(${number}, ${number}%, ${number}%)` | Hex6 | `rgb(${number},${number},${number})` | `rgb(${number},${number}, ${number})` | `rgb(${number}, ${number},${number})` | `rgb(${number}, ${number}, ${number})` | `rgba(${number},${number},${number},${number})` | `rgba(${number},${number},${number}, ${number})` | `rgba(${number},${number}, ${number},${number})` | `rgba(${number},${number}, ${number}, ${number})` | `rgba(${number}, ${number},${number},${number})` | `rgba(${number}, ${number},${number}, ${number})` | `rgba(${number}, ${number}, ${number},${number})` | `rgba(${number}, ${number}, ${number}, ${number})` | `hsla(${number},${number}%,${number}%,${number})` | `hsla(${number},${number}%,${number}%, ${number})` | `hsla(${number},${number}%, ${number}%,${number})` | `hsla(${number},${number}%, ${number}%, ${number})` | `hsla(${number}, ${number}%,${number}%,${number})` | `hsla(${number}, ${number}%,${number}%, ${number})` | `hsla(${number}, ${number}%, ${number}%,${number})` | `hsla(${number}, ${number}%, ${number}%, ${number})`, void, unknown>;
104
104
  /**
105
105
  * @instance Applies or modifies the opacity of a color. Mutate the original instance.
106
106
  * - For solid colors (Hex6/RGB/HSL): Adds an alpha channel with the specified opacity.
@@ -15,6 +15,8 @@ export type Hex = `#${string}`;
15
15
  * * Format: `#3C6945`
16
16
  */
17
17
  export type Hex6 = Branded<`#${string}`, 'Hex6'>;
18
+ /** Optional space */
19
+ export type $Space = '' | ' ';
18
20
  /**
19
21
  * * Represents an RGB color string.
20
22
  * * Format: `rgb(R, G, B)`
@@ -23,7 +25,7 @@ export type Hex6 = Branded<`#${string}`, 'Hex6'>;
23
25
  * - G (Green): 0-255
24
26
  * - B (Blue): 0-255
25
27
  */
26
- export type RGB = `rgb(${number}, ${number}, ${number})` | `rgb(${number},${number},${number})`;
28
+ export type RGB = `rgb(${number},${$Space}${number},${$Space}${number})`;
27
29
  /**
28
30
  * * Represents an HSL color string.
29
31
  * * Format: `hsl(H, S%, L%)`
@@ -32,7 +34,7 @@ export type RGB = `rgb(${number}, ${number}, ${number})` | `rgb(${number},${numb
32
34
  * - S (Saturation): 0-100%
33
35
  * - L (Lightness): 0-100%
34
36
  */
35
- export type HSL = `hsl(${number}, ${number}%, ${number}%)` | `hsl(${number},${number}%,${number}%)`;
37
+ export type HSL = `hsl(${number},${$Space}${number}%,${$Space}${number}%)`;
36
38
  /**
37
39
  * * Represents a hexadecimal color code with optional alpha channel.
38
40
  * * Format: `#3C6945FF`
@@ -42,12 +44,12 @@ export type Hex8 = Branded<`#${string}`, 'Hex8'>;
42
44
  * * Represents an RGBA color string, now includes optional alpha (opacity).
43
45
  * * Format: `rgba(R, G, B, A)`
44
46
  */
45
- export type RGBA = `rgba(${number}, ${number}, ${number}, ${number})` | `rgba(${number},${number},${number},${number})`;
47
+ export type RGBA = `rgba(${number},${$Space}${number},${$Space}${number},${$Space}${number})`;
46
48
  /**
47
49
  * * Represents an HSLA color string with optional alpha channel.
48
50
  * * Format: `hsla(H, S%, L%, A)`
49
51
  */
50
- export type HSLA = `hsla(${number}, ${number}%, ${number}%, ${number})` | `hsla(${number},${number}%,${number}%,${number})`;
52
+ export type HSLA = `hsla(${number},${$Space}${number}%,${$Space}${number}%,${$Space}${number})`;
51
53
  /** Represents an object with `hex` (`hex6`) and `rgb` color */
52
54
  export type RandomHexRGB = {
53
55
  /** Represents a hexadecimal color code. */
@@ -58,14 +60,14 @@ export type RandomHexRGB = {
58
60
  /** Basic color type: `hex`, `rgb` or `hsl`. */
59
61
  export type $ColorType = 'hex' | 'rgb' | 'hsl';
60
62
  /** Options for random color generation. */
61
- export interface RandomColorOptions<Color extends $ColorType | undefined> {
63
+ export interface RandomColorOptions<C extends $ColorType | undefined> {
62
64
  /** The type of expected return type of color: `hex`, `rgb` or `hsl`. Default is `'hex'`. */
63
- colorType?: Color;
65
+ colorType?: C;
64
66
  /** The maximum number of recent colors to store in memory. Default is `16`. */
65
67
  maxColors?: number;
66
68
  }
67
- /** Infers the return color type (`Hex6`, `RGB`, or `HSL`) based on the provided color type. */
68
- export type RandomColor<Color extends $ColorType | undefined = undefined> = Color extends 'hsl' ? HSL : Color extends 'rgb' ? RGB : Hex6;
69
+ /** Infers random color type (`Hex6`, `RGB`, or `HSL`) based on the provided color type `C`. */
70
+ export type RandomColor<C extends $ColorType | undefined = undefined> = C extends undefined | 'hex' ? Hex6 : C extends 'hsl' ? HSL : C extends 'rgb' ? RGB : Hex6;
69
71
  /** * Union type representing a color in Hex6, RGB, or HSL format. */
70
72
  export type ColorTypeSolid = Hex6 | RGB | HSL;
71
73
  /** * Union type representing a color in Hex8, RGBA, or HSLA format. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nhb-toolbox",
3
- "version": "4.24.1",
3
+ "version": "4.24.2",
4
4
  "description": "A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",