/** * Represents the allowed angle unit types for CSS color functions. * * - `deg` → Degrees (0–360). * - `grad` → Gradians (0–400). * - `rad` → Radians (0–2π). * - `turn` → Turns (0–1). * * @typedef {'deg' | 'grad' | 'rad' | 'turn'} AngleUnit */ export type AngleUnit = 'deg' | 'grad' | 'rad' | 'turn'; export type ColorTypes = 'hex' | 'hexa' | 'rgb' | 'rgba' | 'hsl' | 'hsla' | 'hwb' | 'lab' | 'lch' | 'name' | 'specialName'; /** * Represents the type of a CSS color. * * - `'hex'` → HEX color (`#RGB` / `#RRGGBB`) * - `'hexa'` → HEX with alpha (`#RRGGBBAA`) * - `'rgb'` → RGB color (`rgb(r, g, b)`) * - `'rgba'` → RGB with alpha (`rgba(r, g, b, a)`) * - `'hsl'` → HSL color (`hsl(h, s%, l%)`) * - `'hsla'` → HSL with alpha (`hsla(h, s%, l%, a)`) * - `'hwb'` → HWB color (`hwb(hue, whiteness%, blackness%)`) * - `'lab'` → CIELAB color (`lab(L a b)`) * - `'lch'` → LCH color (`lch(L C H)`) * - `'name'` → Standard HTML color name (e.g., `red`, `blue`) * - `'specialName'` → CSS special keywords (`transparent`, `currentColor`) * * @typedef {'hex'|'hexa'|'rgb'|'rgba'|'hsl'|'hsla'|'hwb'|'lab'|'lch'|'name'|'specialName'} ColorTypes */ /** * Utility class for validating and parsing CSS color values. * * Supports multiple CSS color syntaxes: * - **Hexadecimal**: `#RGB`, `#RRGGBB`, `#RRGGBBAA` * - **RGB/RGBA**: `rgb(r, g, b)`, `rgba(r, g, b, a)` * - **HSL/HSLA**: `hsl(h, s%, l%)`, `hsla(h, s%, l%, a)` * - **HWB**: `hwb(hue whiteness% blackness%)` * - **CIELAB**: `lab(L a b)` * - **LCH**: `lch(L C H)` * - **Named colors**: standard HTML color names (e.g., `red`, `blue`, `rebeccapurple`) * - **Special keywords**: `transparent`, `currentColor` * * Features: * - Provides validation (`isHex`, `isRgb`, `isHsl`, etc.) for each format. * - Provides parsing methods (`parseRgb`, `parseHsl`, etc.) returning numeric components. * - Allows extending and managing HTML color names and special keywords dynamically. * * Example: * ```js * const validator = new TinyColorValidator("rgb(255, 0, 0)"); * console.log(validator.isRgb()); // true * console.log(validator.parseRgb()); // [255, 0, 0] * ``` * * @class * @template {string} TinyColorValidatorT */ declare class TinyColorValidator { #private; /** * Returns all HTML color names as an array. * @returns {string[]} */ static getNames(): string[]; /** * Adds a new HTML color name. * @param {string} name * @returns {boolean} True if added, false if it already existed. */ static addName(name: string): boolean; /** * Removes an HTML color name. * @param {string} name * @returns {boolean} True if removed, false if not found. */ static removeName(name: string): boolean; /** * Checks if an HTML color name exists. * @param {string} name * @returns {boolean} */ static hasName(name: string): boolean; /** * Returns all special color names as an array. * @returns {string[]} */ static getSpecialNames(): string[]; /** * Adds a new special color name. * @param {string} name * @returns {boolean} True if added, false if it already existed. */ static addSpecialName(name: string): boolean; /** * Removes a special color name. * @param {string} name * @returns {boolean} True if removed, false if not found. */ static removeSpecialName(name: string): boolean; /** * Checks if a special color name exists. * @param {string} name * @returns {boolean} */ static hasSpecialName(name: string): boolean; /** * Gets the current code. * @returns {string} The stored code. */ get code(): string; /** * Gets the current code. * @returns {ColorTypes|null} The stored code type. */ get type(): ColorTypes | null; /** * Creates a new instance of Example. * @param {TinyColorValidatorT} code - The code to be stored. */ constructor(code: TinyColorValidatorT); /** * Validates if a string is a valid HEX color (#RGB, #RRGGBB). * @param {string} input - The input string to validate. * @returns {boolean} True if the input is a valid HEX color. * @throws {TypeError} If input is not a string. */ static isHex(input: string): boolean; /** * Validates if a string is a valid HEX color (#RGB, #RRGGBB). * @returns {boolean} True if the input is a valid HEX color. * @throws {TypeError} If input is not a string. */ isHex(): boolean; /** * Validates if a string is a valid HEX color (#RRGGBBAA). * @param {string} input - The input string to validate. * @returns {boolean} True if the input is a valid HEXA color. * @throws {TypeError} If input is not a string. */ static isHexa(input: string): boolean; /** * Validates if a string is a valid HEX color (#RRGGBBAA). * @returns {boolean} True if the input is a valid HEXA color. * @throws {TypeError} If input is not a string. */ isHexa(): boolean; /** * Validates if a string is a valid RGB color. * @param {string} input - The input string to validate. * @returns {boolean} True if the input is a valid RGB color. * @throws {TypeError} If input is not a string. */ static isRgb(input: string): boolean; /** * Validates if a string is a valid RGB color. * @returns {boolean} True if the input is a valid RGB color. * @throws {TypeError} If input is not a string. */ isRgb(): boolean; /** * Validates if a string is a valid RGBA color. * @param {string} input - The input string to validate. * @returns {boolean} True if the input is a valid RGBA color. * @throws {TypeError} If input is not a string. */ static isRgba(input: string): boolean; /** * Validates if a string is a valid RGBA color. * @returns {boolean} True if the input is a valid RGBA color. * @throws {TypeError} If input is not a string. */ isRgba(): boolean; /** * Validates if a string is a valid HSL color. * @param {string} input - The input string to validate. * @returns {boolean} True if the input is a valid HSL color. * @throws {TypeError} If input is not a string. */ static isHsl(input: string): boolean; /** * Validates if a string is a valid HSL color. * @returns {boolean} True if the input is a valid HSL color. * @throws {TypeError} If input is not a string. */ isHsl(): boolean; /** * Validates if a string is a valid HSLA color. * @param {string} input - The input string to validate. * @returns {boolean} True if the input is a valid HSLA color. * @throws {TypeError} If input is not a string. */ static isHsla(input: string): boolean; /** * Validates if a string is a valid HSLA color. * @returns {boolean} True if the input is a valid HSLA color. * @throws {TypeError} If input is not a string. */ isHsla(): boolean; /** * Validates if a string is a valid HWB color. * @param {string} input - The input string to validate. * @returns {boolean} True if the input is a valid HWB color. * @throws {TypeError} If input is not a string. */ static isHwb(input: string): boolean; /** * Validates if a string is a valid HWB color. * @returns {boolean} True if the input is a valid HWB color. * @throws {TypeError} If input is not a string. */ isHwb(): boolean; /** * Validates if a string is a valid CIELAB color. * @param {string} input - The input string to validate. * @returns {boolean} True if the input is a valid Lab color. * @throws {TypeError} If input is not a string. */ static isLab(input: string): boolean; /** * Validates if a string is a valid CIELAB color. * @returns {boolean} True if the input is a valid Lab color. * @throws {TypeError} If input is not a string. */ isLab(): boolean; /** * Validates if a string is a valid LCH color. * @param {string} input - The input string to validate. * @returns {boolean} True if the input is a valid LCH color. * @throws {TypeError} If input is not a string. */ static isLch(input: string): boolean; /** * Validates if a string is a valid LCH color. * @returns {boolean} True if the input is a valid LCH color. * @throws {TypeError} If input is not a string. */ isLch(): boolean; /** * Validates if a string matches a standard HTML color name. * @param {string} input - The input string to validate. * @returns {boolean} True if the input is a valid HTML color name. * @throws {TypeError} If input is not a string. */ static isName(input: string): boolean; /** * Validates if a string matches a standard HTML color name. * @returns {boolean} True if the input is a valid HTML color name. * @throws {TypeError} If input is not a string. */ isName(): boolean; /** * Validates if a string matches a special CSS color keyword. * @param {string} input - The input string to validate. * @returns {boolean} True if the input is a special color keyword. * @throws {TypeError} If input is not a string. */ static isSpecialName(input: string): boolean; /** * Validates if a string matches a special CSS color keyword. * @returns {boolean} True if the input is a special color keyword. * @throws {TypeError} If input is not a string. */ isSpecialName(): boolean; /** * Validates if a string is any valid CSS color (HEX, RGB, HSL, HWB, Lab, LCH, name, or special name). * @param {string} input - The input string to validate. * @returns {ColorTypes|null} if the input is a valid CSS color. * @throws {TypeError} If input is not a string. */ static isColor(input: string): ColorTypes | null; /** * Automatically parses the stored code based on its detected type. * @returns {any[]|string|null} Parsed color components according to type, or null if invalid. */ parse(): any[] | string | null; /** * Parses a HEX color string (#RGB or #RRGGBB). * Returns the regex match array with captured groups or null if invalid. * @param {string} input - The input string to parse. * @returns {string|null} Regex match result with captured groups, or null if not valid. * @throws {TypeError} If input is not a string. */ static parseHex(input: string): string | null; /** * Parses a HEX color string (#RGB or #RRGGBB). * Returns the regex match array with captured groups or null if invalid. * @returns {string|null} Regex match result with captured groups, or null if not valid. * @throws {TypeError} If input is not a string. */ parseHex(): string | null; /** * Parses a HEXA color string (#RRGGBBAA). * Returns the regex match array with captured groups or null if invalid. * @param {string} input - The input string to parse. * @returns {string|null} Regex match result with captured groups, or null if not valid. * @throws {TypeError} If input is not a string. */ static parseHexa(input: string): string | null; /** * Parses a HEXA color string (#RRGGBBAA). * Returns the regex match array with captured groups or null if invalid. * @returns {string|null} Regex match result with captured groups, or null if not valid. * @throws {TypeError} If input is not a string. */ parseHexa(): string | null; /** * Parses an RGB color string (rgb(r, g, b)). * Returns the regex match array with captured groups for r, g, and b or null if invalid. * @param {string} input - The input string to parse. * @returns {[number, number, number]|null} Regex match result with groups [r, g, b], or null if not valid. * @throws {TypeError} If input is not a string. */ static parseRgb(input: string): [number, number, number] | null; /** * Parses an RGB color string (rgb(r, g, b)). * Returns the regex match array with captured groups for r, g, and b or null if invalid. * @returns {[number, number, number]|null} Regex match result with groups [r, g, b], or null if not valid. * @throws {TypeError} If input is not a string. */ parseRgb(): [number, number, number] | null; /** * Parses an RGBA color string (rgba(r, g, b, a)). * Returns the regex match array with captured groups for r, g, b, and a or null if invalid. * @param {string} input - The input string to parse. * @returns {[number, number, number, number]|null} Regex match result with groups [r, g, b, a], or null if not valid. * @throws {TypeError} If input is not a string. */ static parseRgba(input: string): [number, number, number, number] | null; /** * Parses an RGBA color string (rgba(r, g, b, a)). * Returns the regex match array with captured groups for r, g, b, and a or null if invalid. * @returns {[number, number, number, number]|null} Regex match result with groups [r, g, b, a], or null if not valid. * @throws {TypeError} If input is not a string. */ parseRgba(): [number, number, number, number] | null; /** * Parses an HSL color string (hsl(h, s%, l%)). * Returns the regex match array with captured groups for h, s, and l or null if invalid. * @param {string} input - The input string to parse. * @returns {[number, number, number]|null} Regex match result with groups [h, s, l], or null if not valid. * @throws {TypeError} If input is not a string. */ static parseHsl(input: string): [number, number, number] | null; /** * Parses an HSL color string (hsl(h, s%, l%)). * Returns the regex match array with captured groups for h, s, and l or null if invalid. * @returns {[number, number, number]|null} Regex match result with groups [h, s, l], or null if not valid. * @throws {TypeError} If input is not a string. */ parseHsl(): [number, number, number] | null; /** * Parses an HSLA color string (hsla(h, s%, l%, a)). * Returns the regex match array with captured groups for h, s, l, and a or null if invalid. * @param {string} input - The input string to parse. * @returns {[number, number, number, number]|null} Regex match result with groups [h, s, l, a], or null if not valid. * @throws {TypeError} If input is not a string. */ static parseHsla(input: string): [number, number, number, number] | null; /** * Parses an HSLA color string (hsla(h, s%, l%, a)). * Returns the regex match array with captured groups for h, s, l, and a or null if invalid. * @returns {[number, number, number, number]|null} Regex match result with groups [h, s, l, a], or null if not valid. * @throws {TypeError} If input is not a string. */ parseHsla(): [number, number, number, number] | null; /** * Parses an HWB color string (hwb(hue, whiteness%, blackness%[, alpha])). * Returns the regex match array with captured groups or null if invalid. * @param {string} input - The input string to parse. * @returns {[number, AngleUnit|null, number, number]|null} Regex match result with captured groups, or null if not valid. * @throws {TypeError} If input is not a string. */ static parseHwb(input: string): [number, AngleUnit | null, number, number] | null; /** * Parses an HWB color string (hwb(hue, whiteness%, blackness%[, alpha])). * Returns the regex match array with captured groups or null if invalid. * @returns {[number, AngleUnit|null, number, number]|null} Regex match result with captured groups, or null if not valid. * @throws {TypeError} If input is not a string. */ parseHwb(): [number, AngleUnit | null, number, number] | null; /** * Parses a CIELAB color string (lab(L a b[/alpha])). * Returns the regex match array with captured groups or null if invalid. * @param {string} input - The input string to parse. * @returns {[number, number, number]|null} Regex match result with captured groups, or null if not valid. * @throws {TypeError} If input is not a string. */ static parseLab(input: string): [number, number, number] | null; /** * Parses a CIELAB color string (lab(L a b[/alpha])). * Returns the regex match array with captured groups or null if invalid. * @returns {[number, number, number]|null} Regex match result with captured groups, or null if not valid. * @throws {TypeError} If input is not a string. */ parseLab(): [number, number, number] | null; /** * Parses an LCH color string (lch(L C H[/alpha])). * Returns the regex match array with captured groups or null if invalid. * @param {string} input - The input string to parse. * @returns {[number, number, number, AngleUnit|null]|null} Regex match result with captured groups, or null if not valid. * @throws {TypeError} If input is not a string. */ static parseLch(input: string): [number, number, number, AngleUnit | null] | null; /** * Parses an LCH color string (lch(L C H[/alpha])). * Returns the regex match array with captured groups or null if invalid. * @returns {[number, number, number, AngleUnit|null]|null} Regex match result with captured groups, or null if not valid. * @throws {TypeError} If input is not a string. */ parseLch(): [number, number, number, AngleUnit | null] | null; } export default TinyColorValidator; //# sourceMappingURL=TinyColorValidator.d.mts.map