nhb-toolbox 4.24.0 → 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,14 @@ 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
+
13
+ ## [4.24.1] - 2025-10-30
14
+
15
+ - **Added** aliases for `generateRandomHSLColor`. **Updated** tsdoc for some color utilities.
16
+
9
17
  ## [4.24.0] - 2025-10-30
10
18
 
11
19
  - **Added** new color utility `generateRandomColor` with alias `getRandomColor` and **deprecated** `generateRandomColorInHexRGB`.
package/dist/cjs/index.js CHANGED
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.convertToDecimal = exports.calculateLCM = exports.calculateLCD = exports.calculateHCF = exports.calculateGCD = exports.calculateFactorial = exports.calculateAverage = exports.verbalizer = exports.Verbalizer = exports.pluralizer = exports.Pluralizer = exports.VolumeConverter = exports.TimeConverter = exports.TemperatureConverter = exports.MassConverter = exports.LengthConverter = exports.DataConverter = exports.converter = exports.Converter = exports.AreaConverter = exports.wordCount = exports.parseNumbersFromText = exports.levenshteinDistance = exports.getLevenshteinDistance = exports.extractNumbersFromString = exports.extractNumbers = exports.countWordsInString = exports.countWords = exports.slugifyString = exports.reverseString = exports.replaceAllInString = exports.normalizeString = exports.maskString = exports.formatWithPlural = exports.formatUnitWithPlural = exports.formatNumberWithPluralUnit = exports.extractURLs = exports.extractEmails = exports.convertStringCase = exports.isSnakeCase = exports.isPascalCase = exports.isPalindrome = exports.isKebabCase = exports.isEmojiOnly = exports.isCamelCase = exports.generateAnagrams = exports.truncateString = exports.trimString = exports.generateRandomID = exports.capitalizeString = void 0;
4
4
  exports.convertRomanToNumeric = exports.convertRomanToInteger = exports.convertRomanToArabic = exports.convertNumberToWordsOrdinal = exports.convertNumberToWords = exports.cardinalWordsToOrdinal = exports.arabicToRoman = exports.isPerfectSquare = exports.isPartOfFibonacciSeries = exports.isPartOfFibonacci = exports.isOddNumber = exports.isOdd = exports.isNumberInvalid = exports.isMultiple = exports.isInvalidNumber = exports.isFibonacci = exports.isEvenNumber = exports.isEven = exports.areNumbersInvalid = exports.areInvalidNumbers = exports.getNthFibonacci = exports.getMemoizedFibonacciSeries = exports.getMemoizedFibonacci = exports.getFibonacciSeriesMemo = exports.getFibonacciSeries = exports.getFibonacciNumbers = exports.getFibonacci = exports.generateFibonacci = exports.fibonacciGenerator = exports.calculatePercentage = exports.UnitConverter = exports.Unit = exports.Currency = exports.sumOfNumbers = exports.sumNumbers = exports.sumDigits = exports.roundToDecimal = exports.roundNumber = exports.reverseNumber = exports.getSumOfNumbers = exports.getRandomNumber = exports.getRandomInt = exports.getFactors = exports.getFactorial = exports.getDivisors = exports.getAverageOfNumbers = exports.getAverage = exports.factorsOf = exports.factorial = exports.convertToFixed = void 0;
5
- exports.convertRgbaToHex8 = exports.convertHslToRgb = exports.convertHslToHex = exports.convertHslaToRgba = exports.convertHslaToHex8 = exports.convertHexToRgb = exports.convertHexToHsl = exports.convertHex8ToRgba = exports.convertHex8ToHsla = exports.convertColorCode = exports.getRandomColor = exports.generateRandomHSLColor = exports.generateRandomColorInHexRGB = exports.generateRandomColor = exports.getColorForInitial = exports.getNumbersInRange = exports.roundToNearestInterval = exports.roundToNearest = exports.roundNumberToNearestInterval = exports.numberToOrdinal = exports.normalizeNumber = exports.getRandomFloat = exports.getRandomDecimal = exports.getOrdinalNumber = exports.getOrdinal = exports.formatCurrency = exports.convertToOrdinal = exports.convertNumberToOrdinal = exports.convertNumberToCurrency = exports.clampNumber = exports.cardinalToOrdinal = exports.isPrimeNumber = exports.isPrime = exports.getPrimeNumbers = exports.findPrimeNumbers = exports.wordToNumber = exports.wordsToNumber = exports.toRomanNumeral = exports.toRoman = exports.romanToNumeric = exports.romanToInteger = exports.romanToArabic = exports.numericToRoman = exports.numberToWordsOrdinal = exports.numberToWords = exports.numberToRoman = exports.integerToRoman = exports.convertWordToNumber = exports.convertWordsToNumber = exports.convertToRomanNumerals = void 0;
6
- exports.isValidEmptyArray = exports.isInvalidOrEmptyArray = exports.getLastArrayElement = exports.flattenArray = exports.filterArrayOfObjects = exports.minutesToUTCOffset = exports.getTotalMinutesFromUTC = exports.getTotalMinutesFromTime = exports.getTotalMinutes = exports.getTimeStringFromUTC = exports.getTimeFromMinutes = exports.getMinutesFromUTC = exports.getHourMinutesFromMinutes = exports.getCurrentTime = exports.getCurrentDateTime = exports.formatUTCOffset = exports.extractTotalMinutesFromTime = exports.extractTimeStringFromUTC = exports.extractTimeFromUTC = exports.extractMinutesFromUTC = exports.extractHourMinute = exports.convertMinutesToUTCOffset = exports.convertMinutesToTime = exports.convertMinutesToHourMinutes = exports.chronusts = exports.chronusjs = exports.chronus = exports.chronosts = exports.chronosjs = exports.chronos = exports.INTERNALS = exports.Chronus = exports.Chronos = exports.isValidUTCOffSet = exports.isValidUTC = exports.isValidTimeString = exports.isValidTime = exports.isLeapYear = exports.isDateLike = exports.greet = exports.getGreeting = exports.generateGreeting = exports.extractSolidColorValues = exports.extractAlphaColorValues = exports.Colour = exports.Color = exports.convertRgbToRgba = exports.convertRgbToHsl = exports.convertRgbToHex = exports.convertRgbaToHsla = void 0;
7
- exports.extractNewFields = exports.extractObjectKeysDeep = exports.extractObjectKeys = exports.extractKeysDeep = exports.extractKeys = exports.countObjectFields = exports.cloneObject = exports.isValidFormData = exports.isOriginFileObj = exports.isFileUpload = exports.isFileOrBlob = exports.isFileList = exports.isFileArray = exports.isCustomFileArray = exports.isCustomFile = exports.serializeForm = exports.parseFormData = exports.createFormData = exports.createControlledFormData = exports.convertIntoFormData = exports.naturalSortForString = exports.naturalSort = exports.compareSorter = exports.compareNaturally = exports.splitArrayByProperty = exports.splitArray = exports.rotateArray = exports.removeDuplicatesFromArray = exports.removeDuplicates = exports.moveArrayElement = exports.groupArrayByProperty = exports.getMissingElements = exports.getDuplicatesFromArray = exports.getDuplicates = exports.findMissingElements = exports.extractMissingElements = exports.extractDuplicatesFromArray = exports.extractDuplicates = exports.createOptionsArray = exports.sortAnArray = exports.Finder = exports.totalDeltaByField = exports.sumFieldDifference = exports.sumByField = exports.groupAndSumByField = exports.groupAndAvgByField = exports.groupAndAverageByField = exports.avgByField = exports.averageByField = exports.shuffleArray = void 0;
8
- exports.getInstanceMethodsCount = exports.getInstanceMethodNames = exports.getClassDetails = exports.deepParsePrimitives = exports.debounceAction = exports.countStaticMethods = exports.countInstanceMethods = exports.convertArrayToString = exports.saveToSessionStorage = exports.saveToLocalStorage = exports.removeFromSessionStorage = exports.removeFromLocalStorage = exports.getFromSessionStorage = exports.getFromLocalStorage = exports.toggleFullScreen = exports.smoothScrollTo = exports.copyToClipboard = exports.updateQueryParam = exports.queryStringToObject = exports.parseQueryStringLiteral = exports.parseQueryString = exports.literalQueryStringToObject = exports.getQueryStringAsObject = exports.getQueryParams = exports.generateQueryParams = exports.formatQueryParams = exports.createQueryParams = exports.removeObjectFields = exports.removeFields = exports.remapObjectFields = exports.remapFields = exports.pickObjectFieldsByCondition = exports.pickObjectFields = exports.pickFieldsByCondition = exports.pickFields = exports.omitObjectFields = exports.omitFields = exports.deleteObjectFields = exports.deleteFields = exports.convertObjectValues = exports.sanitizeData = exports.parseStringifiedObjectValues = exports.parseObjectValues = exports.parseJsonToObject = exports.mergeObjects = exports.mergeAndFlattenObjects = exports.flattenObjectKeyValue = exports.flattenObjectDotNotation = exports.extractUpdatedFields = exports.extractUpdatedAndNewFields = void 0;
9
- exports.isValidObject = exports.isValidMap = exports.isValidJSON = exports.isValidArray = exports.isSet = exports.isReturningPromise = exports.isRegularExpression = exports.isRegExp = exports.isPromise = exports.isObjectWithKeys = exports.isObjectEmpty = exports.isObject = exports.isNotEmptyObject = exports.isMethodDescriptor = exports.isMethod = exports.isMap = exports.isJSONObject = exports.isJSON = exports.isFunction = exports.isError = exports.isEmptyObjectGuard = exports.isEmptyObject = exports.isDate = exports.isArrayWithLength = exports.isArrayOfType = exports.isArray = exports.doesReturnPromise = exports.isUndefined = exports.isTruthy = exports.isSymbol = exports.isString = exports.isPrimitive = exports.isPositiveInteger = exports.isNumber = exports.isNull = exports.isNormalPrimitive = exports.isNonEmptyString = exports.isInteger = exports.isFalsy = exports.isBoolean = exports.isBigInt = exports.Paginator = exports.throttleAction = exports.parsePrimitivesDeep = exports.parseJsonDeep = exports.parseJSON = exports.joinArrayElements = exports.isDeepEqual = exports.getStaticMethodsCount = exports.getStaticMethodNames = void 0;
10
- exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = exports.isBase64 = exports.httpStatus = exports.HttpStatus = exports.isValidSet = void 0;
5
+ exports.convertHslToHex = exports.convertHslaToRgba = exports.convertHslaToHex8 = exports.convertHexToRgb = exports.convertHexToHsl = exports.convertHex8ToRgba = exports.convertHex8ToHsla = exports.convertColorCode = exports.getRandomHSL = exports.getRandomColor = exports.generateRandomHSLColor = exports.generateRandomHSL = exports.generateRandomColorInHexRGB = exports.generateRandomColor = exports.getColorForInitial = exports.getNumbersInRange = exports.roundToNearestInterval = exports.roundToNearest = exports.roundNumberToNearestInterval = exports.numberToOrdinal = exports.normalizeNumber = exports.getRandomFloat = exports.getRandomDecimal = exports.getOrdinalNumber = exports.getOrdinal = exports.formatCurrency = exports.convertToOrdinal = exports.convertNumberToOrdinal = exports.convertNumberToCurrency = exports.clampNumber = exports.cardinalToOrdinal = exports.isPrimeNumber = exports.isPrime = exports.getPrimeNumbers = exports.findPrimeNumbers = exports.wordToNumber = exports.wordsToNumber = exports.toRomanNumeral = exports.toRoman = exports.romanToNumeric = exports.romanToInteger = exports.romanToArabic = exports.numericToRoman = exports.numberToWordsOrdinal = exports.numberToWords = exports.numberToRoman = exports.integerToRoman = exports.convertWordToNumber = exports.convertWordsToNumber = exports.convertToRomanNumerals = void 0;
6
+ exports.getLastArrayElement = exports.flattenArray = exports.filterArrayOfObjects = exports.minutesToUTCOffset = exports.getTotalMinutesFromUTC = exports.getTotalMinutesFromTime = exports.getTotalMinutes = exports.getTimeStringFromUTC = exports.getTimeFromMinutes = exports.getMinutesFromUTC = exports.getHourMinutesFromMinutes = exports.getCurrentTime = exports.getCurrentDateTime = exports.formatUTCOffset = exports.extractTotalMinutesFromTime = exports.extractTimeStringFromUTC = exports.extractTimeFromUTC = exports.extractMinutesFromUTC = exports.extractHourMinute = exports.convertMinutesToUTCOffset = exports.convertMinutesToTime = exports.convertMinutesToHourMinutes = exports.chronusts = exports.chronusjs = exports.chronus = exports.chronosts = exports.chronosjs = exports.chronos = exports.INTERNALS = exports.Chronus = exports.Chronos = exports.isValidUTCOffSet = exports.isValidUTC = exports.isValidTimeString = exports.isValidTime = exports.isLeapYear = exports.isDateLike = exports.greet = exports.getGreeting = exports.generateGreeting = exports.extractSolidColorValues = exports.extractAlphaColorValues = exports.Colour = exports.Color = exports.convertRgbToRgba = exports.convertRgbToHsl = exports.convertRgbToHex = exports.convertRgbaToHsla = exports.convertRgbaToHex8 = exports.convertHslToRgb = void 0;
7
+ exports.extractObjectKeys = exports.extractKeysDeep = exports.extractKeys = exports.countObjectFields = exports.cloneObject = exports.isValidFormData = exports.isOriginFileObj = exports.isFileUpload = exports.isFileOrBlob = exports.isFileList = exports.isFileArray = exports.isCustomFileArray = exports.isCustomFile = exports.serializeForm = exports.parseFormData = exports.createFormData = exports.createControlledFormData = exports.convertIntoFormData = exports.naturalSortForString = exports.naturalSort = exports.compareSorter = exports.compareNaturally = exports.splitArrayByProperty = exports.splitArray = exports.rotateArray = exports.removeDuplicatesFromArray = exports.removeDuplicates = exports.moveArrayElement = exports.groupArrayByProperty = exports.getMissingElements = exports.getDuplicatesFromArray = exports.getDuplicates = exports.findMissingElements = exports.extractMissingElements = exports.extractDuplicatesFromArray = exports.extractDuplicates = exports.createOptionsArray = exports.sortAnArray = exports.Finder = exports.totalDeltaByField = exports.sumFieldDifference = exports.sumByField = exports.groupAndSumByField = exports.groupAndAvgByField = exports.groupAndAverageByField = exports.avgByField = exports.averageByField = exports.shuffleArray = exports.isValidEmptyArray = exports.isInvalidOrEmptyArray = void 0;
8
+ exports.getClassDetails = exports.deepParsePrimitives = exports.debounceAction = exports.countStaticMethods = exports.countInstanceMethods = exports.convertArrayToString = exports.saveToSessionStorage = exports.saveToLocalStorage = exports.removeFromSessionStorage = exports.removeFromLocalStorage = exports.getFromSessionStorage = exports.getFromLocalStorage = exports.toggleFullScreen = exports.smoothScrollTo = exports.copyToClipboard = exports.updateQueryParam = exports.queryStringToObject = exports.parseQueryStringLiteral = exports.parseQueryString = exports.literalQueryStringToObject = exports.getQueryStringAsObject = exports.getQueryParams = exports.generateQueryParams = exports.formatQueryParams = exports.createQueryParams = exports.removeObjectFields = exports.removeFields = exports.remapObjectFields = exports.remapFields = exports.pickObjectFieldsByCondition = exports.pickObjectFields = exports.pickFieldsByCondition = exports.pickFields = exports.omitObjectFields = exports.omitFields = exports.deleteObjectFields = exports.deleteFields = exports.convertObjectValues = exports.sanitizeData = exports.parseStringifiedObjectValues = exports.parseObjectValues = exports.parseJsonToObject = exports.mergeObjects = exports.mergeAndFlattenObjects = exports.flattenObjectKeyValue = exports.flattenObjectDotNotation = exports.extractUpdatedFields = exports.extractUpdatedAndNewFields = exports.extractNewFields = exports.extractObjectKeysDeep = void 0;
9
+ exports.isValidJSON = exports.isValidArray = exports.isSet = exports.isReturningPromise = exports.isRegularExpression = exports.isRegExp = exports.isPromise = exports.isObjectWithKeys = exports.isObjectEmpty = exports.isObject = exports.isNotEmptyObject = exports.isMethodDescriptor = exports.isMethod = exports.isMap = exports.isJSONObject = exports.isJSON = exports.isFunction = exports.isError = exports.isEmptyObjectGuard = exports.isEmptyObject = exports.isDate = exports.isArrayWithLength = exports.isArrayOfType = exports.isArray = exports.doesReturnPromise = exports.isUndefined = exports.isTruthy = exports.isSymbol = exports.isString = exports.isPrimitive = exports.isPositiveInteger = exports.isNumber = exports.isNull = exports.isNormalPrimitive = exports.isNonEmptyString = exports.isInteger = exports.isFalsy = exports.isBoolean = exports.isBigInt = exports.Paginator = exports.throttleAction = exports.parsePrimitivesDeep = exports.parseJsonDeep = exports.parseJSON = exports.joinArrayElements = exports.isDeepEqual = exports.getStaticMethodsCount = exports.getStaticMethodNames = exports.getInstanceMethodsCount = exports.getInstanceMethodNames = void 0;
10
+ exports.isValidURL = exports.isValidEmail = exports.isUUID = exports.isURL = exports.isPhoneNumber = exports.isNumericString = exports.isNodeEnvironment = exports.isNodeENV = exports.isNode = exports.isIPAddress = exports.isExpectedNodeENV = exports.isEnvironment = exports.isEmailArray = exports.isEmail = exports.isDateString = exports.isBrowser = exports.isBase64 = exports.httpStatus = exports.HttpStatus = exports.isValidSet = exports.isValidObject = exports.isValidMap = void 0;
11
11
  var basics_1 = require("./string/basics");
12
12
  Object.defineProperty(exports, "capitalizeString", { enumerable: true, get: function () { return basics_1.capitalizeString; } });
13
13
  Object.defineProperty(exports, "generateRandomID", { enumerable: true, get: function () { return basics_1.generateRandomID; } });
@@ -167,8 +167,10 @@ Object.defineProperty(exports, "getColorForInitial", { enumerable: true, get: fu
167
167
  var random_1 = require("./colors/random");
168
168
  Object.defineProperty(exports, "generateRandomColor", { enumerable: true, get: function () { return random_1.generateRandomColor; } });
169
169
  Object.defineProperty(exports, "generateRandomColorInHexRGB", { enumerable: true, get: function () { return random_1.generateRandomColorInHexRGB; } });
170
+ Object.defineProperty(exports, "generateRandomHSL", { enumerable: true, get: function () { return random_1.generateRandomHSLColor; } });
170
171
  Object.defineProperty(exports, "generateRandomHSLColor", { enumerable: true, get: function () { return random_1.generateRandomHSLColor; } });
171
172
  Object.defineProperty(exports, "getRandomColor", { enumerable: true, get: function () { return random_1.generateRandomColor; } });
173
+ Object.defineProperty(exports, "getRandomHSL", { enumerable: true, get: function () { return random_1.generateRandomHSLColor; } });
172
174
  var convert_3 = require("./colors/convert");
173
175
  Object.defineProperty(exports, "convertColorCode", { enumerable: true, get: function () { return convert_3.convertColorCode; } });
174
176
  Object.defineProperty(exports, "convertHex8ToHsla", { enumerable: true, get: function () { return convert_3.convertHex8ToHsla; } });
@@ -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.
@@ -7,7 +7,7 @@ import type { $ColorType, HSL, RandomColor, RandomColorOptions, RandomHexRGB } f
7
7
  */
8
8
  export declare const generateRandomHSLColor: (maxColors?: number) => HSL;
9
9
  /**
10
- * @deprecated For better performance and flexible use cases, please consider using {@link generateRandomColor}.
10
+ * @deprecated For optimized performance and more flexibility, please consider using {@link generateRandomColor}.
11
11
  *
12
12
  * * Utility to generate a unique random color in `Hex6` and `RGB` format.
13
13
  *
@@ -16,7 +16,7 @@ export declare const generateRandomHSLColor: (maxColors?: number) => HSL;
16
16
  */
17
17
  export declare const generateRandomColorInHexRGB: (maxColors?: number) => RandomHexRGB;
18
18
  /**
19
- * * Generates a random color in one of three formats: `Hex6`, `RGB`, or `HSL`.
19
+ * * Generates a random unique color in one of three formats: `Hex6`, `RGB`, or `HSL`.
20
20
  *
21
21
  * @remarks
22
22
  * - If no `options` or `colorType` option is provided, the function defaults to returning a color in `Hex6` format.
@@ -28,18 +28,16 @@ export declare const generateRandomColorInHexRGB: (maxColors?: number) => Random
28
28
  * By default, this value is `16`. Increasing it allows more unique color variations before repeating.
29
29
  *
30
30
  * @param options - Configuration options for random color generation, including `colorType` and `maxColors`.
31
- * @returns A random color in the specified format (`Hex6`, `RGB`, or `HSL`).
31
+ * @returns A random unique color in the specified format (`Hex6`, `RGB`, or `HSL`).
32
32
  *
33
33
  * @example
34
- * ```ts
35
34
  * const hex = generateRandomColor();
36
- * // inferred: Hex6
35
+ * // hex value with inferred type: Hex6
37
36
  *
38
37
  * const rgb = generateRandomColor({ colorType: 'rgb' });
39
- * // inferred: RGB
38
+ * // rgb value with inferred type: RGB
40
39
  *
41
40
  * const hsl = generateRandomColor({ colorType: 'hsl', maxColors: 32 });
42
- * // inferred: HSL, with a larger unique color memory pool
43
- * ```
41
+ * // hsl value with inferred type: HSL, with a larger unique color memory pool
44
42
  */
45
43
  export declare function generateRandomColor<C extends $ColorType | undefined = undefined>(options?: RandomColorOptions<C>): RandomColor<C>;
@@ -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. */
@@ -33,7 +33,7 @@ export { findPrimeNumbers, findPrimeNumbers as getPrimeNumbers, isPrime, isPrime
33
33
  export { getOrdinal as cardinalToOrdinal, clampNumber, formatCurrency as convertNumberToCurrency, getOrdinal as convertNumberToOrdinal, getOrdinal as convertToOrdinal, formatCurrency, getOrdinal, getOrdinal as getOrdinalNumber, getRandomFloat as getRandomDecimal, getRandomFloat, normalizeNumber, getOrdinal as numberToOrdinal, roundToNearest as roundNumberToNearestInterval, roundToNearest, roundToNearest as roundToNearestInterval, } from './number/utilities';
34
34
  export { getNumbersInRange } from './number/range';
35
35
  export { getColorForInitial } from './colors/initials';
36
- export { generateRandomColor, generateRandomColorInHexRGB, generateRandomHSLColor, generateRandomColor as getRandomColor, } from './colors/random';
36
+ export { generateRandomColor, generateRandomColorInHexRGB, generateRandomHSLColor as generateRandomHSL, generateRandomHSLColor, generateRandomColor as getRandomColor, generateRandomHSLColor as getRandomHSL, } from './colors/random';
37
37
  export { convertColorCode, convertHex8ToHsla, convertHex8ToRgba, convertHexToHsl, convertHexToRgb, convertHslaToHex8, convertHslaToRgba, convertHslToHex, convertHslToRgb, convertRgbaToHex8, convertRgbaToHsla, convertRgbToHex, convertRgbToHsl, convertRgbToRgba, } from './colors/convert';
38
38
  export { Color, Color as Colour } from './colors/Color';
39
39
  export { extractAlphaColorValues, extractSolidColorValues } from './colors/utils';
package/dist/esm/index.js CHANGED
@@ -18,7 +18,7 @@ export { findPrimeNumbers, findPrimeNumbers as getPrimeNumbers, isPrime, isPrime
18
18
  export { getOrdinal as cardinalToOrdinal, clampNumber, formatCurrency as convertNumberToCurrency, getOrdinal as convertNumberToOrdinal, getOrdinal as convertToOrdinal, formatCurrency, getOrdinal, getOrdinal as getOrdinalNumber, getRandomFloat as getRandomDecimal, getRandomFloat, normalizeNumber, getOrdinal as numberToOrdinal, roundToNearest as roundNumberToNearestInterval, roundToNearest, roundToNearest as roundToNearestInterval, } from './number/utilities.js';
19
19
  export { getNumbersInRange } from './number/range.js';
20
20
  export { getColorForInitial } from './colors/initials.js';
21
- export { generateRandomColor, generateRandomColorInHexRGB, generateRandomHSLColor, generateRandomColor as getRandomColor, } from './colors/random.js';
21
+ export { generateRandomColor, generateRandomColorInHexRGB, generateRandomHSLColor as generateRandomHSL, generateRandomHSLColor, generateRandomColor as getRandomColor, generateRandomHSLColor as getRandomHSL, } from './colors/random.js';
22
22
  export { convertColorCode, convertHex8ToHsla, convertHex8ToRgba, convertHexToHsl, convertHexToRgb, convertHslaToHex8, convertHslaToRgba, convertHslToHex, convertHslToRgb, convertRgbaToHex8, convertRgbaToHsla, convertRgbToHex, convertRgbToHsl, convertRgbToRgba, } from './colors/convert.js';
23
23
  export { Color, Color as Colour } from './colors/Color.js';
24
24
  export { extractAlphaColorValues, extractSolidColorValues } from './colors/utils.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nhb-toolbox",
3
- "version": "4.24.0",
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",