superjs-core 0.3.8 → 0.4.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
@@ -16,3 +16,4 @@ export { KNOWN_CVES, KNOWN_MAPPINGS } from './dep-exray/known-mappings.js';
16
16
  export { isEmail, isNIK, isNPWP, isPhone, isURL } from './validation/index.js';
17
17
  export { ErrorCode, MultiError, TypedError, collectErrors, createError, isTypedError } from './error/index.js';
18
18
  export { L as LogLevel, a as Logger, T as Transport, c as consoleTransport, b as createBufferedTransport, d as createConsoleTransport, e as createFileTransport, f as createJsonTransport, l as logger } from './index-BgG21uJC.js';
19
+ export { contrastRatio, darken, hexToRgb, lighten, meetsWCAG, rgbToHex } from './color/index.js';
package/dist/index.js CHANGED
@@ -2285,6 +2285,64 @@ function createBufferedTransport(transport, options) {
2285
2285
  }
2286
2286
  };
2287
2287
  }
2288
+
2289
+ // src/color/index.ts
2290
+ function hexToRgb(hex) {
2291
+ let h = hex.replace("#", "");
2292
+ if (h.length === 3) h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];
2293
+ if (h.length !== 6) return null;
2294
+ const num = Number.parseInt(h, 16);
2295
+ if (isNaN(num)) return null;
2296
+ return {
2297
+ r: num >> 16 & 255,
2298
+ g: num >> 8 & 255,
2299
+ b: num & 255
2300
+ };
2301
+ }
2302
+ function rgbToHex(r, g, b) {
2303
+ const toHex = (n) => Math.max(0, Math.min(255, Math.round(n))).toString(16).padStart(2, "0");
2304
+ return "#" + toHex(r) + toHex(g) + toHex(b);
2305
+ }
2306
+ function lighten(hex, percent) {
2307
+ const rgb = hexToRgb(hex);
2308
+ if (!rgb) return hex;
2309
+ const factor = percent / 100;
2310
+ return rgbToHex(
2311
+ rgb.r + (255 - rgb.r) * factor,
2312
+ rgb.g + (255 - rgb.g) * factor,
2313
+ rgb.b + (255 - rgb.b) * factor
2314
+ );
2315
+ }
2316
+ function darken(hex, percent) {
2317
+ const rgb = hexToRgb(hex);
2318
+ if (!rgb) return hex;
2319
+ const factor = percent / 100;
2320
+ return rgbToHex(
2321
+ rgb.r * (1 - factor),
2322
+ rgb.g * (1 - factor),
2323
+ rgb.b * (1 - factor)
2324
+ );
2325
+ }
2326
+ function contrastRatio(hex1, hex2) {
2327
+ const lum1 = relativeLuminance(hex1);
2328
+ const lum2 = relativeLuminance(hex2);
2329
+ const lighter = Math.max(lum1, lum2);
2330
+ const darker = Math.min(lum1, lum2);
2331
+ return Number(((lighter + 0.05) / (darker + 0.05)).toFixed(2));
2332
+ }
2333
+ function relativeLuminance(hex) {
2334
+ const rgb = hexToRgb(hex);
2335
+ if (!rgb) return 0;
2336
+ const vals = [rgb.r / 255, rgb.g / 255, rgb.b / 255].map((c) => {
2337
+ return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);
2338
+ });
2339
+ return 0.2126 * vals[0] + 0.7152 * vals[1] + 0.0722 * vals[2];
2340
+ }
2341
+ function meetsWCAG(hex1, hex2, level) {
2342
+ const ratio = contrastRatio(hex1, hex2);
2343
+ const threshold = level === "AAA" ? 7 : 4.5;
2344
+ return ratio >= threshold;
2345
+ }
2288
2346
  export {
2289
2347
  DivisionByZeroError,
2290
2348
  InvalidDateError,
@@ -2318,12 +2376,14 @@ export {
2318
2376
  collectErrors,
2319
2377
  consoleTransport,
2320
2378
  constantTimeEqual,
2379
+ contrastRatio,
2321
2380
  countOccurrences,
2322
2381
  createBufferedTransport,
2323
2382
  createConsoleTransport,
2324
2383
  createError,
2325
2384
  createFileTransport,
2326
2385
  createJsonTransport,
2386
+ darken,
2327
2387
  dateDiff,
2328
2388
  debounce,
2329
2389
  deepClone,
@@ -2351,6 +2411,7 @@ export {
2351
2411
  getType2 as getType,
2352
2412
  groupBy,
2353
2413
  hash,
2414
+ hexToRgb,
2354
2415
  identity,
2355
2416
  inRange,
2356
2417
  isAbsolute,
@@ -2385,7 +2446,9 @@ export {
2385
2446
  kebabCase,
2386
2447
  keyBy,
2387
2448
  last,
2449
+ lighten,
2388
2450
  logger,
2451
+ meetsWCAG,
2389
2452
  memoize,
2390
2453
  mul,
2391
2454
  nanoid,
@@ -2413,6 +2476,7 @@ export {
2413
2476
  retry,
2414
2477
  retryAsync,
2415
2478
  reverse,
2479
+ rgbToHex,
2416
2480
  round,
2417
2481
  safeJsonParse,
2418
2482
  sample,