UNPKG

stoop

Version:

CSS-in-JS library with type inference, theme creation, and variants support.

103 lines (102 loc) 3.4 kB
/** * String utility functions. * Provides hashing for class name generation, camelCase to kebab-case conversion, * and CSS sanitization utilities for security. */ /** * Generates a hash string from an input string. * * @param str - String to hash * @returns Hashed string */ export declare function hash(str: string): string; /** * Generates a hash string from an object by stringifying it. * * @param obj - Object to hash * @returns Hashed string */ export declare function hashObject(obj: unknown): string; /** * Converts a camelCase string to kebab-case. * * @param str - String to convert * @returns Kebab-case string */ export declare function toKebabCase(str: string): string; /** * Escapes CSS property values to prevent injection attacks. * Escapes quotes, semicolons, and other special characters. * * @param value - Value to escape * @returns Escaped value string */ export declare function escapeCSSValue(value: string | number): string; /** * Validates and sanitizes CSS selectors to prevent injection attacks. * Only allows safe selector characters. Returns empty string for invalid selectors. * * @param selector - Selector to sanitize * @returns Sanitized selector string or empty string if invalid */ export declare function sanitizeCSSSelector(selector: string): string; /** * Validates and sanitizes CSS variable names to prevent injection attacks. * CSS custom properties must start with -- and contain only valid characters. * * @param name - Variable name to sanitize * @returns Sanitized variable name */ export declare function sanitizeCSSVariableName(name: string): string; /** * Escapes CSS variable values to prevent injection attacks. * * @param value - Value to escape * @returns Escaped value string */ export declare function escapeCSSVariableValue(value: string | number): string; /** * Sanitizes prefix for use in CSS selectors and class names. * Only allows alphanumeric characters, hyphens, and underscores. * * @param prefix - Prefix to sanitize * @returns Sanitized prefix string */ export declare function sanitizePrefix(prefix: string): string; /** * Escapes prefix for use in CSS attribute selectors. * * @param prefix - Prefix to escape * @returns Escaped prefix string */ export declare function escapePrefixForSelector(prefix: string): string; /** * Sanitizes media query strings to prevent injection attacks. * Only allows safe characters for media queries. * * @param mediaQuery - Media query string to sanitize * @returns Sanitized media query string or empty string if invalid */ export declare function sanitizeMediaQuery(mediaQuery: string): string; /** * Sanitizes CSS class names to prevent injection attacks. * Only allows valid CSS class name characters. * * @param className - Class name(s) to sanitize * @returns Sanitized class name string */ export declare function sanitizeClassName(className: string): string; /** * Sanitizes CSS property names to prevent injection attacks. * * @param propertyName - Property name to sanitize * @returns Sanitized property name */ export declare function sanitizeCSSPropertyName(propertyName: string): string; /** * Validates keyframe percentage keys (e.g., "0%", "50%", "from", "to"). * * @param key - Keyframe key to validate * @returns True if key is valid */ export declare function validateKeyframeKey(key: string): boolean;