chromonym 1.1.0 → 1.2.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.
Files changed (73) hide show
  1. package/NOTICE.md +39 -0
  2. package/README.md +78 -3
  3. package/dist/colorspaces/registry.d.ts +26 -0
  4. package/dist/colorspaces/registry.d.ts.map +1 -0
  5. package/dist/colorspaces/registry.js +36 -0
  6. package/dist/colorspaces/registry.js.map +1 -0
  7. package/dist/conversions/hex.d.ts.map +1 -1
  8. package/dist/conversions/hex.js +6 -5
  9. package/dist/conversions/hex.js.map +1 -1
  10. package/dist/conversions/hsl.d.ts.map +1 -1
  11. package/dist/conversions/hsl.js +34 -52
  12. package/dist/conversions/hsl.js.map +1 -1
  13. package/dist/conversions/hsv.d.ts.map +1 -1
  14. package/dist/conversions/hsv.js +30 -48
  15. package/dist/conversions/hsv.js.map +1 -1
  16. package/dist/conversions/pantone.d.ts +5 -2
  17. package/dist/conversions/pantone.d.ts.map +1 -1
  18. package/dist/conversions/pantone.js +8 -44
  19. package/dist/conversions/pantone.js.map +1 -1
  20. package/dist/conversions/rgb.d.ts +4 -2
  21. package/dist/conversions/rgb.d.ts.map +1 -1
  22. package/dist/conversions/rgb.js +28 -17
  23. package/dist/conversions/rgb.js.map +1 -1
  24. package/dist/convert.d.ts +12 -1
  25. package/dist/convert.d.ts.map +1 -1
  26. package/dist/convert.js +24 -6
  27. package/dist/convert.js.map +1 -1
  28. package/dist/detectFormat.d.ts +8 -0
  29. package/dist/detectFormat.d.ts.map +1 -1
  30. package/dist/detectFormat.js +17 -5
  31. package/dist/detectFormat.js.map +1 -1
  32. package/dist/identify.d.ts +13 -5
  33. package/dist/identify.d.ts.map +1 -1
  34. package/dist/identify.js +20 -35
  35. package/dist/identify.js.map +1 -1
  36. package/dist/index.d.ts +2 -2
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +2 -2
  39. package/dist/index.js.map +1 -1
  40. package/dist/indexing.d.ts +44 -0
  41. package/dist/indexing.d.ts.map +1 -0
  42. package/dist/indexing.js +140 -0
  43. package/dist/indexing.js.map +1 -0
  44. package/dist/math/clamp.d.ts +11 -0
  45. package/dist/math/clamp.d.ts.map +1 -0
  46. package/dist/math/clamp.js +18 -0
  47. package/dist/math/clamp.js.map +1 -0
  48. package/dist/math/colorSpace.d.ts +39 -0
  49. package/dist/math/colorSpace.d.ts.map +1 -0
  50. package/dist/math/colorSpace.js +85 -0
  51. package/dist/math/colorSpace.js.map +1 -0
  52. package/dist/math/deltaE.d.ts +47 -0
  53. package/dist/math/deltaE.d.ts.map +1 -0
  54. package/dist/math/deltaE.js +185 -0
  55. package/dist/math/deltaE.js.map +1 -0
  56. package/dist/math/euclideanDistance.d.ts +7 -0
  57. package/dist/math/euclideanDistance.d.ts.map +1 -1
  58. package/dist/math/euclideanDistance.js +13 -4
  59. package/dist/math/euclideanDistance.js.map +1 -1
  60. package/dist/math/hueSector.d.ts +15 -0
  61. package/dist/math/hueSector.d.ts.map +1 -0
  62. package/dist/math/hueSector.js +27 -0
  63. package/dist/math/hueSector.js.map +1 -0
  64. package/dist/resolve.d.ts.map +1 -1
  65. package/dist/resolve.js +11 -34
  66. package/dist/resolve.js.map +1 -1
  67. package/dist/types.d.ts +1 -0
  68. package/dist/types.d.ts.map +1 -1
  69. package/package.json +68 -5
  70. package/dist/math/index.d.ts +0 -2
  71. package/dist/math/index.d.ts.map +0 -1
  72. package/dist/math/index.js +0 -4
  73. package/dist/math/index.js.map +0 -1
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Map a normalized hue sector value (range [0, 6)) plus chroma and its
3
+ * secondary into the primary-color tuple `[r', g', b']` used by the
4
+ * standard HSL→RGB and HSV→RGB algorithms. Each component is in [0, chroma].
5
+ *
6
+ * Shared by `hslToRgba` and `hsvToRgba`: same six-sector table, different
7
+ * formulas for chroma and the offset. The caller adds the offset and
8
+ * scales by 255.
9
+ *
10
+ * hueSector = h / 60 (h wrapped to [0, 360))
11
+ * chroma = HSL: (1 − |2l − 1|)·s ; HSV: v·s
12
+ * secondary = chroma · (1 − |hueSector mod 2 − 1|)
13
+ */
14
+ export function hueSectorToPrime(hueSector, chroma, secondary) {
15
+ if (hueSector < 1)
16
+ return [chroma, secondary, 0];
17
+ if (hueSector < 2)
18
+ return [secondary, chroma, 0];
19
+ if (hueSector < 3)
20
+ return [0, chroma, secondary];
21
+ if (hueSector < 4)
22
+ return [0, secondary, chroma];
23
+ if (hueSector < 5)
24
+ return [secondary, 0, chroma];
25
+ return [chroma, 0, secondary];
26
+ }
27
+ //# sourceMappingURL=hueSector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hueSector.js","sourceRoot":"","sources":["../../src/math/hueSector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,MAAc,EACd,SAAiB;IAEjB,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AAChC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAc,cAAc,EAAE,UAAU,EAAY,MAAM,SAAS,CAAC;AAiC7F;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAC/D,UAAU,GAAG,IAAI,CAQnB"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAY,MAAM,SAAS,CAAC;AAEjF;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GAC/D,UAAU,GAAG,IAAI,CAUnB"}
package/dist/resolve.js CHANGED
@@ -1,33 +1,7 @@
1
- import { pantone } from './colorspaces/pantone';
2
- import { web } from './colorspaces/web';
3
- import { x11 } from './colorspaces/x11';
4
- import { convert } from './convert';
5
- const COLORSPACES = { web, x11, pantone };
6
- function normalize(s) {
7
- return s.toLowerCase().replace(/[^a-z0-9]/g, '');
8
- }
9
- // Pantone-specific: also strip leading "Pantone" / "PMS" prefix so that
10
- // "Pantone 185 C" and "PMS 185C" both resolve to "185C".
11
- function normalizeForPantone(s) {
12
- return s
13
- .toLowerCase()
14
- .replace(/^(pantone|pms)\s*/, '')
15
- .replace(/[^a-z0-9]/g, '');
16
- }
17
- const indexes = new Map();
18
- function getIndex(colorspace) {
19
- let idx = indexes.get(colorspace);
20
- if (idx === undefined) {
21
- idx = new Map();
22
- const space = COLORSPACES[colorspace];
23
- const normFn = colorspace === 'pantone' ? normalizeForPantone : normalize;
24
- for (const key of Object.keys(space)) {
25
- idx.set(normFn(key), key);
26
- }
27
- indexes.set(colorspace, idx);
28
- }
29
- return idx;
30
- }
1
+ import { COLORSPACE_NAMES, COLORSPACES, NORMALIZERS } from './colorspaces/registry';
2
+ import { hexToRgba } from './conversions/hex';
3
+ import { fromRgba } from './convert';
4
+ import { getNameIndex } from './indexing';
31
5
  /**
32
6
  * Resolve a human-readable name to a color. Normalizes the input
33
7
  * (lowercases, strips non-alphanumeric characters, and for the pantone
@@ -38,12 +12,15 @@ function getIndex(colorspace) {
38
12
  */
39
13
  export function resolve(name, opts = {}) {
40
14
  const { colorspace = 'web', format = 'HEX' } = opts;
41
- const normFn = colorspace === 'pantone' ? normalizeForPantone : normalize;
42
- const canonical = getIndex(colorspace).get(normFn(name));
43
- if (canonical === undefined)
15
+ if (!COLORSPACE_NAMES.has(colorspace))
44
16
  return null;
45
17
  const space = COLORSPACES[colorspace];
18
+ const normalize = NORMALIZERS[colorspace];
19
+ const canonical = getNameIndex(space, normalize).get(normalize(name));
20
+ if (canonical === undefined)
21
+ return null;
46
22
  const hex = space[canonical];
47
- return convert(hex, { format });
23
+ // Skip detectFormat — we already know this is HEX (read from colorspace data).
24
+ return fromRgba(hexToRgba(hex), format);
48
25
  }
49
26
  //# sourceMappingURL=resolve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,WAAW,GAAuC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAE9E,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,wEAAwE;AACxE,yDAAyD;AACzD,SAAS,mBAAmB,CAAC,CAAS;IACpC,OAAO,CAAC;SACL,WAAW,EAAE;SACb,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuC,CAAC;AAE/D,SAAS,QAAQ,CAAC,UAA0B;IAC1C,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CACrB,IAAY,EACZ,IAAI,GAA0D,EAAE;IAEhE,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IACpD,MAAM,MAAM,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAa,CAAC;IACzC,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CACrB,IAAY,EACZ,IAAI,GAA0D,EAAE;IAEhE,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IACpD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAa,CAAC;IACzC,+EAA+E;IAC/E,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC"}
package/dist/types.d.ts CHANGED
@@ -38,5 +38,6 @@ export declare const COLOR_FORMATS: ReadonlySet<ColorFormat>;
38
38
  export type ColorValue = HexColor | RgbString | Rgba | HslString | HsvString | PantoneCode;
39
39
  export type Colorspace = Record<string, HexColor>;
40
40
  export type ColorspaceName = 'web' | 'x11' | 'pantone';
41
+ export type DistanceMetric = 'euclidean-srgb' | 'euclidean-linear' | 'deltaE76' | 'deltaE94' | 'deltaE2000' | 'deltaEok';
41
42
  export {};
42
43
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;AAGpC,MAAM,MAAM,SAAS,GACjB,OAAO,MAAM,IAAI,MAAM,IAAI,MAAM,GAAG,GACpC,OAAO,MAAM,KAAK,MAAM,KAAK,MAAM,GAAG,CAAC;AAC3C,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAGxD,MAAM,MAAM,UAAU,GAClB,QAAQ,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,GAAG,GAC/C,QAAQ,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,GAAG,CAAC;AACvD,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9E,MAAM,MAAM,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;AAGtD,MAAM,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,MAAM,MAAM,MAAM,IAAI,CAAC;AACjE,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAG7C,MAAM,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,MAAM,MAAM,MAAM,IAAI,CAAC;AACjE,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAI7C,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAGjC,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAG7F,QAAA,MAAM,aAAa,YAAI,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAU,CAAC;AAC/E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,WAAW,CAA0B,CAAC;AAG9E,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;AAG3F,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAClD,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC;AAGpC,MAAM,MAAM,SAAS,GACjB,OAAO,MAAM,IAAI,MAAM,IAAI,MAAM,GAAG,GACpC,OAAO,MAAM,KAAK,MAAM,KAAK,MAAM,GAAG,CAAC;AAC3C,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAGxD,MAAM,MAAM,UAAU,GAClB,QAAQ,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,GAAG,GAC/C,QAAQ,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,GAAG,CAAC;AACvD,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9E,MAAM,MAAM,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAClE,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;AAGtD,MAAM,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,MAAM,MAAM,MAAM,IAAI,CAAC;AACjE,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAG7C,MAAM,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,MAAM,MAAM,MAAM,IAAI,CAAC;AACjE,MAAM,MAAM,SAAS,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAI7C,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAGjC,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAG7F,QAAA,MAAM,aAAa,YAAI,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAU,CAAC;AAC/E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,WAAW,CAA0B,CAAC;AAG9E,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;AAG3F,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAClD,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AAWvD,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,kBAAkB,GAClB,UAAU,GACV,UAAU,GACV,YAAY,GACZ,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,30 @@
1
1
  {
2
2
  "name": "chromonym",
3
- "version": "1.1.0",
4
- "description": "Color naming tool — resolve RGB or Hex color input to a human-readable name.",
3
+ "version": "1.2.0",
4
+ "description": "Tree-shakeable color-naming primitive for TypeScript. Identify, resolve, and convert colors across CSS, X11, and Pantone colorspaces — with perceptual distance metrics (CIEDE2000).",
5
5
  "keywords": [
6
6
  "color",
7
- "naming",
8
- "rgb",
7
+ "color-name",
8
+ "color-naming",
9
+ "color-identify",
10
+ "color-resolve",
11
+ "color-convert",
12
+ "nearest-color",
13
+ "css-colors",
14
+ "x11-colors",
15
+ "pantone",
16
+ "deltaE",
17
+ "ciede2000",
18
+ "lab",
19
+ "oklab",
20
+ "perceptual",
21
+ "typescript",
22
+ "tree-shakeable",
23
+ "tree-shaking",
9
24
  "hex",
25
+ "rgb",
26
+ "hsl",
27
+ "hsv",
10
28
  "palette",
11
29
  "chromonym"
12
30
  ],
@@ -29,12 +47,57 @@
29
47
  ".": {
30
48
  "types": "./dist/index.d.ts",
31
49
  "import": "./dist/index.js"
50
+ },
51
+ "./web": {
52
+ "types": "./dist/colorspaces/web.d.ts",
53
+ "import": "./dist/colorspaces/web.js"
54
+ },
55
+ "./x11": {
56
+ "types": "./dist/colorspaces/x11.d.ts",
57
+ "import": "./dist/colorspaces/x11.js"
58
+ },
59
+ "./pantone": {
60
+ "types": "./dist/colorspaces/pantone.d.ts",
61
+ "import": "./dist/colorspaces/pantone.js"
62
+ },
63
+ "./conversions/hex": {
64
+ "types": "./dist/conversions/hex.d.ts",
65
+ "import": "./dist/conversions/hex.js"
66
+ },
67
+ "./conversions/rgb": {
68
+ "types": "./dist/conversions/rgb.d.ts",
69
+ "import": "./dist/conversions/rgb.js"
70
+ },
71
+ "./conversions/hsl": {
72
+ "types": "./dist/conversions/hsl.d.ts",
73
+ "import": "./dist/conversions/hsl.js"
74
+ },
75
+ "./conversions/hsv": {
76
+ "types": "./dist/conversions/hsv.d.ts",
77
+ "import": "./dist/conversions/hsv.js"
78
+ },
79
+ "./conversions/pantone": {
80
+ "types": "./dist/conversions/pantone.d.ts",
81
+ "import": "./dist/conversions/pantone.js"
82
+ },
83
+ "./math/deltaE": {
84
+ "types": "./dist/math/deltaE.d.ts",
85
+ "import": "./dist/math/deltaE.js"
86
+ },
87
+ "./math/colorSpace": {
88
+ "types": "./dist/math/colorSpace.d.ts",
89
+ "import": "./dist/math/colorSpace.js"
90
+ },
91
+ "./types": {
92
+ "types": "./dist/types.d.ts",
93
+ "import": "./dist/types.js"
32
94
  }
33
95
  },
34
96
  "files": [
35
97
  "dist",
36
98
  "README.md",
37
- "LICENSE"
99
+ "LICENSE",
100
+ "NOTICE.md"
38
101
  ],
39
102
  "scripts": {
40
103
  "build": "tsgo",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/math/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC"}
@@ -1,4 +0,0 @@
1
- // Math barrel — populated with explicit named re-exports as
2
- // distance/color-math files (euclideanDistance.ts, etc.) land.
3
- export {};
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/math/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,+DAA+D;AAC/D,OAAO,EAAE,CAAC"}