chromonym 1.4.0 → 2.0.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 (106) hide show
  1. package/NOTICE.md +32 -4
  2. package/README.md +240 -91
  3. package/dist/conversions/hex.d.ts +1 -1
  4. package/dist/conversions/hex.d.ts.map +1 -1
  5. package/dist/conversions/hex.js +2 -2
  6. package/dist/conversions/hex.js.map +1 -1
  7. package/dist/conversions/hsl.d.ts +1 -1
  8. package/dist/conversions/hsl.d.ts.map +1 -1
  9. package/dist/conversions/hsl.js +2 -2
  10. package/dist/conversions/hsl.js.map +1 -1
  11. package/dist/conversions/hsv.d.ts +1 -1
  12. package/dist/conversions/hsv.d.ts.map +1 -1
  13. package/dist/conversions/hsv.js +2 -2
  14. package/dist/conversions/hsv.js.map +1 -1
  15. package/dist/conversions/index.d.ts +5 -5
  16. package/dist/conversions/index.d.ts.map +1 -1
  17. package/dist/conversions/index.js +5 -5
  18. package/dist/conversions/index.js.map +1 -1
  19. package/dist/conversions/pantone.d.ts +9 -7
  20. package/dist/conversions/pantone.d.ts.map +1 -1
  21. package/dist/conversions/pantone.js +11 -10
  22. package/dist/conversions/pantone.js.map +1 -1
  23. package/dist/conversions/rgb.d.ts +1 -1
  24. package/dist/conversions/rgb.d.ts.map +1 -1
  25. package/dist/conversions/rgb.js +1 -1
  26. package/dist/conversions/rgb.js.map +1 -1
  27. package/dist/convert.d.ts +45 -5
  28. package/dist/convert.d.ts.map +1 -1
  29. package/dist/convert.js +68 -17
  30. package/dist/convert.js.map +1 -1
  31. package/dist/detectFormat.d.ts +1 -1
  32. package/dist/detectFormat.d.ts.map +1 -1
  33. package/dist/detectFormat.js +2 -6
  34. package/dist/detectFormat.js.map +1 -1
  35. package/dist/identify.d.ts +13 -16
  36. package/dist/identify.d.ts.map +1 -1
  37. package/dist/identify.js +12 -12
  38. package/dist/identify.js.map +1 -1
  39. package/dist/index.d.ts +14 -14
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +13 -13
  42. package/dist/index.js.map +1 -1
  43. package/dist/indexing.d.ts +30 -24
  44. package/dist/indexing.d.ts.map +1 -1
  45. package/dist/indexing.js +49 -22
  46. package/dist/indexing.js.map +1 -1
  47. package/dist/math/clamp.d.ts.map +1 -1
  48. package/dist/math/clamp.js.map +1 -1
  49. package/dist/math/colorSpace.d.ts +1 -1
  50. package/dist/math/colorSpace.d.ts.map +1 -1
  51. package/dist/math/colorSpace.js.map +1 -1
  52. package/dist/math/deltaE.d.ts.map +1 -1
  53. package/dist/math/deltaE.js.map +1 -1
  54. package/dist/math/euclideanDistance.d.ts +1 -1
  55. package/dist/math/euclideanDistance.d.ts.map +1 -1
  56. package/dist/math/euclideanDistance.js.map +1 -1
  57. package/dist/math/hueSector.d.ts.map +1 -1
  58. package/dist/math/hueSector.js.map +1 -1
  59. package/dist/palettes/index.d.ts +4 -0
  60. package/dist/palettes/index.d.ts.map +1 -0
  61. package/dist/palettes/index.js +4 -0
  62. package/dist/palettes/index.js.map +1 -0
  63. package/dist/palettes/normalize.d.ts +17 -0
  64. package/dist/palettes/normalize.d.ts.map +1 -0
  65. package/dist/palettes/normalize.js +19 -0
  66. package/dist/palettes/normalize.js.map +1 -0
  67. package/dist/palettes/pantone.d.ts +1834 -0
  68. package/dist/palettes/pantone.d.ts.map +1 -0
  69. package/dist/palettes/pantone.js +925 -0
  70. package/dist/palettes/pantone.js.map +1 -0
  71. package/dist/palettes/web.d.ts +320 -0
  72. package/dist/palettes/web.d.ts.map +1 -0
  73. package/dist/{colorspaces → palettes}/web.js +18 -3
  74. package/dist/palettes/web.js.map +1 -0
  75. package/dist/palettes/x11.d.ts +1346 -0
  76. package/dist/palettes/x11.d.ts.map +1 -0
  77. package/dist/palettes/x11.js +686 -0
  78. package/dist/palettes/x11.js.map +1 -0
  79. package/dist/resolve.d.ts +9 -7
  80. package/dist/resolve.d.ts.map +1 -1
  81. package/dist/resolve.js +18 -17
  82. package/dist/resolve.js.map +1 -1
  83. package/dist/types.d.ts +10 -6
  84. package/dist/types.d.ts.map +1 -1
  85. package/dist/types.js +2 -1
  86. package/dist/types.js.map +1 -1
  87. package/package.json +32 -18
  88. package/dist/colorspaces/index.d.ts +0 -4
  89. package/dist/colorspaces/index.d.ts.map +0 -1
  90. package/dist/colorspaces/index.js +0 -4
  91. package/dist/colorspaces/index.js.map +0 -1
  92. package/dist/colorspaces/pantone.d.ts +0 -919
  93. package/dist/colorspaces/pantone.d.ts.map +0 -1
  94. package/dist/colorspaces/pantone.js +0 -918
  95. package/dist/colorspaces/pantone.js.map +0 -1
  96. package/dist/colorspaces/registry.d.ts +0 -26
  97. package/dist/colorspaces/registry.d.ts.map +0 -1
  98. package/dist/colorspaces/registry.js +0 -36
  99. package/dist/colorspaces/registry.js.map +0 -1
  100. package/dist/colorspaces/web.d.ts +0 -156
  101. package/dist/colorspaces/web.d.ts.map +0 -1
  102. package/dist/colorspaces/web.js.map +0 -1
  103. package/dist/colorspaces/x11.d.ts +0 -667
  104. package/dist/colorspaces/x11.d.ts.map +0 -1
  105. package/dist/colorspaces/x11.js +0 -666
  106. package/dist/colorspaces/x11.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x11.js","sourceRoot":"","sources":["../../src/palettes/x11.ts"],"names":[],"mappings":"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,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,cAAc,EAAE,SAAS;IACzB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACp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","sourcesContent":["import type { Palette } from '../types.js';\nimport { standardNormalize } from './normalize.js';\n\n/**\n * X11 / X.Org named colors (from rgb.txt, public domain). 658 entries.\n * Generated by scripts/generate-x11.ts — do not edit by hand.\n * Keys are display-ready (spaced, lowercase); lookups still accept any\n * casing / punctuation since standardNormalize strips non-alphanumerics.\n */\nconst x11Colors = {\n 'alice blue': '#f0f8ff',\n 'antique white': '#faebd7',\n 'antique white 1': '#ffefdb',\n 'antique white 2': '#eedfcc',\n 'antique white 3': '#cdc0b0',\n 'antique white 4': '#8b8378',\n aquamarine: '#7fffd4',\n 'aquamarine 1': '#7fffd4',\n 'aquamarine 2': '#76eec6',\n 'aquamarine 3': '#66cdaa',\n 'aquamarine 4': '#458b74',\n azure: '#f0ffff',\n 'azure 1': '#f0ffff',\n 'azure 2': '#e0eeee',\n 'azure 3': '#c1cdcd',\n 'azure 4': '#838b8b',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n 'bisque 1': '#ffe4c4',\n 'bisque 2': '#eed5b7',\n 'bisque 3': '#cdb79e',\n 'bisque 4': '#8b7d6b',\n black: '#000000',\n 'blanched almond': '#ffebcd',\n blue: '#0000ff',\n 'blue 1': '#0000ff',\n 'blue 2': '#0000ee',\n 'blue 3': '#0000cd',\n 'blue 4': '#00008b',\n 'blue violet': '#8a2be2',\n brown: '#a52a2a',\n 'brown 1': '#ff4040',\n 'brown 2': '#ee3b3b',\n 'brown 3': '#cd3333',\n 'brown 4': '#8b2323',\n burlywood: '#deb887',\n 'burlywood 1': '#ffd39b',\n 'burlywood 2': '#eec591',\n 'burlywood 3': '#cdaa7d',\n 'burlywood 4': '#8b7355',\n 'cadet blue': '#5f9ea0',\n 'cadet blue 1': '#98f5ff',\n 'cadet blue 2': '#8ee5ee',\n 'cadet blue 3': '#7ac5cd',\n 'cadet blue 4': '#53868b',\n chartreuse: '#7fff00',\n 'chartreuse 1': '#7fff00',\n 'chartreuse 2': '#76ee00',\n 'chartreuse 3': '#66cd00',\n 'chartreuse 4': '#458b00',\n chocolate: '#d2691e',\n 'chocolate 1': '#ff7f24',\n 'chocolate 2': '#ee7621',\n 'chocolate 3': '#cd661d',\n 'chocolate 4': '#8b4513',\n coral: '#ff7f50',\n 'coral 1': '#ff7256',\n 'coral 2': '#ee6a50',\n 'coral 3': '#cd5b45',\n 'coral 4': '#8b3e2f',\n 'cornflower blue': '#6495ed',\n cornsilk: '#fff8dc',\n 'cornsilk 1': '#fff8dc',\n 'cornsilk 2': '#eee8cd',\n 'cornsilk 3': '#cdc8b1',\n 'cornsilk 4': '#8b8878',\n cyan: '#00ffff',\n 'cyan 1': '#00ffff',\n 'cyan 2': '#00eeee',\n 'cyan 3': '#00cdcd',\n 'cyan 4': '#008b8b',\n 'dark blue': '#00008b',\n 'dark cyan': '#008b8b',\n 'dark goldenrod': '#b8860b',\n 'dark goldenrod 1': '#ffb90f',\n 'dark goldenrod 2': '#eead0e',\n 'dark goldenrod 3': '#cd950c',\n 'dark goldenrod 4': '#8b6508',\n 'dark gray': '#a9a9a9',\n 'dark green': '#006400',\n 'dark grey': '#a9a9a9',\n 'dark khaki': '#bdb76b',\n 'dark magenta': '#8b008b',\n 'dark olive green': '#556b2f',\n 'dark olive green 1': '#caff70',\n 'dark olive green 2': '#bcee68',\n 'dark olive green 3': '#a2cd5a',\n 'dark olive green 4': '#6e8b3d',\n 'dark orange': '#ff8c00',\n 'dark orange 1': '#ff7f00',\n 'dark orange 2': '#ee7600',\n 'dark orange 3': '#cd6600',\n 'dark orange 4': '#8b4500',\n 'dark orchid': '#9932cc',\n 'dark orchid 1': '#bf3eff',\n 'dark orchid 2': '#b23aee',\n 'dark orchid 3': '#9a32cd',\n 'dark orchid 4': '#68228b',\n 'dark red': '#8b0000',\n 'dark salmon': '#e9967a',\n 'dark sea green': '#8fbc8f',\n 'dark sea green 1': '#c1ffc1',\n 'dark sea green 2': '#b4eeb4',\n 'dark sea green 3': '#9bcd9b',\n 'dark sea green 4': '#698b69',\n 'dark slate blue': '#483d8b',\n 'dark slate gray': '#2f4f4f',\n 'dark slate gray 1': '#97ffff',\n 'dark slate gray 2': '#8deeee',\n 'dark slate gray 3': '#79cdcd',\n 'dark slate gray 4': '#528b8b',\n 'dark slate grey': '#2f4f4f',\n 'dark turquoise': '#00ced1',\n 'dark violet': '#9400d3',\n 'debian red': '#d70751',\n 'deep pink': '#ff1493',\n 'deep pink 1': '#ff1493',\n 'deep pink 2': '#ee1289',\n 'deep pink 3': '#cd1076',\n 'deep pink 4': '#8b0a50',\n 'deep sky blue': '#00bfff',\n 'deep sky blue 1': '#00bfff',\n 'deep sky blue 2': '#00b2ee',\n 'deep sky blue 3': '#009acd',\n 'deep sky blue 4': '#00688b',\n 'dim gray': '#696969',\n 'dim grey': '#696969',\n 'dodger blue': '#1e90ff',\n 'dodger blue 1': '#1e90ff',\n 'dodger blue 2': '#1c86ee',\n 'dodger blue 3': '#1874cd',\n 'dodger blue 4': '#104e8b',\n firebrick: '#b22222',\n 'firebrick 1': '#ff3030',\n 'firebrick 2': '#ee2c2c',\n 'firebrick 3': '#cd2626',\n 'firebrick 4': '#8b1a1a',\n 'floral white': '#fffaf0',\n 'forest green': '#228b22',\n gainsboro: '#dcdcdc',\n 'ghost white': '#f8f8ff',\n gold: '#ffd700',\n 'gold 1': '#ffd700',\n 'gold 2': '#eec900',\n 'gold 3': '#cdad00',\n 'gold 4': '#8b7500',\n goldenrod: '#daa520',\n 'goldenrod 1': '#ffc125',\n 'goldenrod 2': '#eeb422',\n 'goldenrod 3': '#cd9b1d',\n 'goldenrod 4': '#8b6914',\n gray: '#bebebe',\n 'gray 0': '#000000',\n 'gray 1': '#030303',\n 'gray 10': '#1a1a1a',\n 'gray 100': '#ffffff',\n 'gray 11': '#1c1c1c',\n 'gray 12': '#1f1f1f',\n 'gray 13': '#212121',\n 'gray 14': '#242424',\n 'gray 15': '#262626',\n 'gray 16': '#292929',\n 'gray 17': '#2b2b2b',\n 'gray 18': '#2e2e2e',\n 'gray 19': '#303030',\n 'gray 2': '#050505',\n 'gray 20': '#333333',\n 'gray 21': '#363636',\n 'gray 22': '#383838',\n 'gray 23': '#3b3b3b',\n 'gray 24': '#3d3d3d',\n 'gray 25': '#404040',\n 'gray 26': '#424242',\n 'gray 27': '#454545',\n 'gray 28': '#474747',\n 'gray 29': '#4a4a4a',\n 'gray 3': '#080808',\n 'gray 30': '#4d4d4d',\n 'gray 31': '#4f4f4f',\n 'gray 32': '#525252',\n 'gray 33': '#545454',\n 'gray 34': '#575757',\n 'gray 35': '#595959',\n 'gray 36': '#5c5c5c',\n 'gray 37': '#5e5e5e',\n 'gray 38': '#616161',\n 'gray 39': '#636363',\n 'gray 4': '#0a0a0a',\n 'gray 40': '#666666',\n 'gray 41': '#696969',\n 'gray 42': '#6b6b6b',\n 'gray 43': '#6e6e6e',\n 'gray 44': '#707070',\n 'gray 45': '#737373',\n 'gray 46': '#757575',\n 'gray 47': '#787878',\n 'gray 48': '#7a7a7a',\n 'gray 49': '#7d7d7d',\n 'gray 5': '#0d0d0d',\n 'gray 50': '#7f7f7f',\n 'gray 51': '#828282',\n 'gray 52': '#858585',\n 'gray 53': '#878787',\n 'gray 54': '#8a8a8a',\n 'gray 55': '#8c8c8c',\n 'gray 56': '#8f8f8f',\n 'gray 57': '#919191',\n 'gray 58': '#949494',\n 'gray 59': '#969696',\n 'gray 6': '#0f0f0f',\n 'gray 60': '#999999',\n 'gray 61': '#9c9c9c',\n 'gray 62': '#9e9e9e',\n 'gray 63': '#a1a1a1',\n 'gray 64': '#a3a3a3',\n 'gray 65': '#a6a6a6',\n 'gray 66': '#a8a8a8',\n 'gray 67': '#ababab',\n 'gray 68': '#adadad',\n 'gray 69': '#b0b0b0',\n 'gray 7': '#121212',\n 'gray 70': '#b3b3b3',\n 'gray 71': '#b5b5b5',\n 'gray 72': '#b8b8b8',\n 'gray 73': '#bababa',\n 'gray 74': '#bdbdbd',\n 'gray 75': '#bfbfbf',\n 'gray 76': '#c2c2c2',\n 'gray 77': '#c4c4c4',\n 'gray 78': '#c7c7c7',\n 'gray 79': '#c9c9c9',\n 'gray 8': '#141414',\n 'gray 80': '#cccccc',\n 'gray 81': '#cfcfcf',\n 'gray 82': '#d1d1d1',\n 'gray 83': '#d4d4d4',\n 'gray 84': '#d6d6d6',\n 'gray 85': '#d9d9d9',\n 'gray 86': '#dbdbdb',\n 'gray 87': '#dedede',\n 'gray 88': '#e0e0e0',\n 'gray 89': '#e3e3e3',\n 'gray 9': '#171717',\n 'gray 90': '#e5e5e5',\n 'gray 91': '#e8e8e8',\n 'gray 92': '#ebebeb',\n 'gray 93': '#ededed',\n 'gray 94': '#f0f0f0',\n 'gray 95': '#f2f2f2',\n 'gray 96': '#f5f5f5',\n 'gray 97': '#f7f7f7',\n 'gray 98': '#fafafa',\n 'gray 99': '#fcfcfc',\n green: '#00ff00',\n 'green 1': '#00ff00',\n 'green 2': '#00ee00',\n 'green 3': '#00cd00',\n 'green 4': '#008b00',\n 'green yellow': '#adff2f',\n grey: '#bebebe',\n 'grey 0': '#000000',\n 'grey 1': '#030303',\n 'grey 10': '#1a1a1a',\n 'grey 100': '#ffffff',\n 'grey 11': '#1c1c1c',\n 'grey 12': '#1f1f1f',\n 'grey 13': '#212121',\n 'grey 14': '#242424',\n 'grey 15': '#262626',\n 'grey 16': '#292929',\n 'grey 17': '#2b2b2b',\n 'grey 18': '#2e2e2e',\n 'grey 19': '#303030',\n 'grey 2': '#050505',\n 'grey 20': '#333333',\n 'grey 21': '#363636',\n 'grey 22': '#383838',\n 'grey 23': '#3b3b3b',\n 'grey 24': '#3d3d3d',\n 'grey 25': '#404040',\n 'grey 26': '#424242',\n 'grey 27': '#454545',\n 'grey 28': '#474747',\n 'grey 29': '#4a4a4a',\n 'grey 3': '#080808',\n 'grey 30': '#4d4d4d',\n 'grey 31': '#4f4f4f',\n 'grey 32': '#525252',\n 'grey 33': '#545454',\n 'grey 34': '#575757',\n 'grey 35': '#595959',\n 'grey 36': '#5c5c5c',\n 'grey 37': '#5e5e5e',\n 'grey 38': '#616161',\n 'grey 39': '#636363',\n 'grey 4': '#0a0a0a',\n 'grey 40': '#666666',\n 'grey 41': '#696969',\n 'grey 42': '#6b6b6b',\n 'grey 43': '#6e6e6e',\n 'grey 44': '#707070',\n 'grey 45': '#737373',\n 'grey 46': '#757575',\n 'grey 47': '#787878',\n 'grey 48': '#7a7a7a',\n 'grey 49': '#7d7d7d',\n 'grey 5': '#0d0d0d',\n 'grey 50': '#7f7f7f',\n 'grey 51': '#828282',\n 'grey 52': '#858585',\n 'grey 53': '#878787',\n 'grey 54': '#8a8a8a',\n 'grey 55': '#8c8c8c',\n 'grey 56': '#8f8f8f',\n 'grey 57': '#919191',\n 'grey 58': '#949494',\n 'grey 59': '#969696',\n 'grey 6': '#0f0f0f',\n 'grey 60': '#999999',\n 'grey 61': '#9c9c9c',\n 'grey 62': '#9e9e9e',\n 'grey 63': '#a1a1a1',\n 'grey 64': '#a3a3a3',\n 'grey 65': '#a6a6a6',\n 'grey 66': '#a8a8a8',\n 'grey 67': '#ababab',\n 'grey 68': '#adadad',\n 'grey 69': '#b0b0b0',\n 'grey 7': '#121212',\n 'grey 70': '#b3b3b3',\n 'grey 71': '#b5b5b5',\n 'grey 72': '#b8b8b8',\n 'grey 73': '#bababa',\n 'grey 74': '#bdbdbd',\n 'grey 75': '#bfbfbf',\n 'grey 76': '#c2c2c2',\n 'grey 77': '#c4c4c4',\n 'grey 78': '#c7c7c7',\n 'grey 79': '#c9c9c9',\n 'grey 8': '#141414',\n 'grey 80': '#cccccc',\n 'grey 81': '#cfcfcf',\n 'grey 82': '#d1d1d1',\n 'grey 83': '#d4d4d4',\n 'grey 84': '#d6d6d6',\n 'grey 85': '#d9d9d9',\n 'grey 86': '#dbdbdb',\n 'grey 87': '#dedede',\n 'grey 88': '#e0e0e0',\n 'grey 89': '#e3e3e3',\n 'grey 9': '#171717',\n 'grey 90': '#e5e5e5',\n 'grey 91': '#e8e8e8',\n 'grey 92': '#ebebeb',\n 'grey 93': '#ededed',\n 'grey 94': '#f0f0f0',\n 'grey 95': '#f2f2f2',\n 'grey 96': '#f5f5f5',\n 'grey 97': '#f7f7f7',\n 'grey 98': '#fafafa',\n 'grey 99': '#fcfcfc',\n honeydew: '#f0fff0',\n 'honeydew 1': '#f0fff0',\n 'honeydew 2': '#e0eee0',\n 'honeydew 3': '#c1cdc1',\n 'honeydew 4': '#838b83',\n 'hot pink': '#ff69b4',\n 'hot pink 1': '#ff6eb4',\n 'hot pink 2': '#ee6aa7',\n 'hot pink 3': '#cd6090',\n 'hot pink 4': '#8b3a62',\n 'indian red': '#cd5c5c',\n 'indian red 1': '#ff6a6a',\n 'indian red 2': '#ee6363',\n 'indian red 3': '#cd5555',\n 'indian red 4': '#8b3a3a',\n ivory: '#fffff0',\n 'ivory 1': '#fffff0',\n 'ivory 2': '#eeeee0',\n 'ivory 3': '#cdcdc1',\n 'ivory 4': '#8b8b83',\n khaki: '#f0e68c',\n 'khaki 1': '#fff68f',\n 'khaki 2': '#eee685',\n 'khaki 3': '#cdc673',\n 'khaki 4': '#8b864e',\n lavender: '#e6e6fa',\n 'lavender blush': '#fff0f5',\n 'lavender blush 1': '#fff0f5',\n 'lavender blush 2': '#eee0e5',\n 'lavender blush 3': '#cdc1c5',\n 'lavender blush 4': '#8b8386',\n 'lawn green': '#7cfc00',\n 'lemon chiffon': '#fffacd',\n 'lemon chiffon 1': '#fffacd',\n 'lemon chiffon 2': '#eee9bf',\n 'lemon chiffon 3': '#cdc9a5',\n 'lemon chiffon 4': '#8b8970',\n 'light blue': '#add8e6',\n 'light blue 1': '#bfefff',\n 'light blue 2': '#b2dfee',\n 'light blue 3': '#9ac0cd',\n 'light blue 4': '#68838b',\n 'light coral': '#f08080',\n 'light cyan': '#e0ffff',\n 'light cyan 1': '#e0ffff',\n 'light cyan 2': '#d1eeee',\n 'light cyan 3': '#b4cdcd',\n 'light cyan 4': '#7a8b8b',\n 'light goldenrod': '#eedd82',\n 'light goldenrod 1': '#ffec8b',\n 'light goldenrod 2': '#eedc82',\n 'light goldenrod 3': '#cdbe70',\n 'light goldenrod 4': '#8b814c',\n 'light goldenrod yellow': '#fafad2',\n 'light gray': '#d3d3d3',\n 'light green': '#90ee90',\n 'light grey': '#d3d3d3',\n 'light pink': '#ffb6c1',\n 'light pink 1': '#ffaeb9',\n 'light pink 2': '#eea2ad',\n 'light pink 3': '#cd8c95',\n 'light pink 4': '#8b5f65',\n 'light salmon': '#ffa07a',\n 'light salmon 1': '#ffa07a',\n 'light salmon 2': '#ee9572',\n 'light salmon 3': '#cd8162',\n 'light salmon 4': '#8b5742',\n 'light sea green': '#20b2aa',\n 'light sky blue': '#87cefa',\n 'light sky blue 1': '#b0e2ff',\n 'light sky blue 2': '#a4d3ee',\n 'light sky blue 3': '#8db6cd',\n 'light sky blue 4': '#607b8b',\n 'light slate blue': '#8470ff',\n 'light slate gray': '#778899',\n 'light slate grey': '#778899',\n 'light steel blue': '#b0c4de',\n 'light steel blue 1': '#cae1ff',\n 'light steel blue 2': '#bcd2ee',\n 'light steel blue 3': '#a2b5cd',\n 'light steel blue 4': '#6e7b8b',\n 'light yellow': '#ffffe0',\n 'light yellow 1': '#ffffe0',\n 'light yellow 2': '#eeeed1',\n 'light yellow 3': '#cdcdb4',\n 'light yellow 4': '#8b8b7a',\n 'lime green': '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n 'magenta 1': '#ff00ff',\n 'magenta 2': '#ee00ee',\n 'magenta 3': '#cd00cd',\n 'magenta 4': '#8b008b',\n maroon: '#b03060',\n 'maroon 1': '#ff34b3',\n 'maroon 2': '#ee30a7',\n 'maroon 3': '#cd2990',\n 'maroon 4': '#8b1c62',\n 'medium aquamarine': '#66cdaa',\n 'medium blue': '#0000cd',\n 'medium orchid': '#ba55d3',\n 'medium orchid 1': '#e066ff',\n 'medium orchid 2': '#d15fee',\n 'medium orchid 3': '#b452cd',\n 'medium orchid 4': '#7a378b',\n 'medium purple': '#9370db',\n 'medium purple 1': '#ab82ff',\n 'medium purple 2': '#9f79ee',\n 'medium purple 3': '#8968cd',\n 'medium purple 4': '#5d478b',\n 'medium sea green': '#3cb371',\n 'medium slate blue': '#7b68ee',\n 'medium spring green': '#00fa9a',\n 'medium turquoise': '#48d1cc',\n 'medium violet red': '#c71585',\n 'midnight blue': '#191970',\n 'mint cream': '#f5fffa',\n 'misty rose': '#ffe4e1',\n 'misty rose 1': '#ffe4e1',\n 'misty rose 2': '#eed5d2',\n 'misty rose 3': '#cdb7b5',\n 'misty rose 4': '#8b7d7b',\n moccasin: '#ffe4b5',\n 'navajo white': '#ffdead',\n 'navajo white 1': '#ffdead',\n 'navajo white 2': '#eecfa1',\n 'navajo white 3': '#cdb38b',\n 'navajo white 4': '#8b795e',\n navy: '#000080',\n 'navy blue': '#000080',\n 'old lace': '#fdf5e6',\n 'olive drab': '#6b8e23',\n 'olive drab 1': '#c0ff3e',\n 'olive drab 2': '#b3ee3a',\n 'olive drab 3': '#9acd32',\n 'olive drab 4': '#698b22',\n orange: '#ffa500',\n 'orange 1': '#ffa500',\n 'orange 2': '#ee9a00',\n 'orange 3': '#cd8500',\n 'orange 4': '#8b5a00',\n 'orange red': '#ff4500',\n 'orange red 1': '#ff4500',\n 'orange red 2': '#ee4000',\n 'orange red 3': '#cd3700',\n 'orange red 4': '#8b2500',\n orchid: '#da70d6',\n 'orchid 1': '#ff83fa',\n 'orchid 2': '#ee7ae9',\n 'orchid 3': '#cd69c9',\n 'orchid 4': '#8b4789',\n 'pale goldenrod': '#eee8aa',\n 'pale green': '#98fb98',\n 'pale green 1': '#9aff9a',\n 'pale green 2': '#90ee90',\n 'pale green 3': '#7ccd7c',\n 'pale green 4': '#548b54',\n 'pale turquoise': '#afeeee',\n 'pale turquoise 1': '#bbffff',\n 'pale turquoise 2': '#aeeeee',\n 'pale turquoise 3': '#96cdcd',\n 'pale turquoise 4': '#668b8b',\n 'pale violet red': '#db7093',\n 'pale violet red 1': '#ff82ab',\n 'pale violet red 2': '#ee799f',\n 'pale violet red 3': '#cd6889',\n 'pale violet red 4': '#8b475d',\n 'papaya whip': '#ffefd5',\n 'peach puff': '#ffdab9',\n 'peach puff 1': '#ffdab9',\n 'peach puff 2': '#eecbad',\n 'peach puff 3': '#cdaf95',\n 'peach puff 4': '#8b7765',\n peru: '#cd853f',\n pink: '#ffc0cb',\n 'pink 1': '#ffb5c5',\n 'pink 2': '#eea9b8',\n 'pink 3': '#cd919e',\n 'pink 4': '#8b636c',\n plum: '#dda0dd',\n 'plum 1': '#ffbbff',\n 'plum 2': '#eeaeee',\n 'plum 3': '#cd96cd',\n 'plum 4': '#8b668b',\n 'powder blue': '#b0e0e6',\n purple: '#a020f0',\n 'purple 1': '#9b30ff',\n 'purple 2': '#912cee',\n 'purple 3': '#7d26cd',\n 'purple 4': '#551a8b',\n red: '#ff0000',\n 'red 1': '#ff0000',\n 'red 2': '#ee0000',\n 'red 3': '#cd0000',\n 'red 4': '#8b0000',\n 'rosy brown': '#bc8f8f',\n 'rosy brown 1': '#ffc1c1',\n 'rosy brown 2': '#eeb4b4',\n 'rosy brown 3': '#cd9b9b',\n 'rosy brown 4': '#8b6969',\n 'royal blue': '#4169e1',\n 'royal blue 1': '#4876ff',\n 'royal blue 2': '#436eee',\n 'royal blue 3': '#3a5fcd',\n 'royal blue 4': '#27408b',\n 'saddle brown': '#8b4513',\n salmon: '#fa8072',\n 'salmon 1': '#ff8c69',\n 'salmon 2': '#ee8262',\n 'salmon 3': '#cd7054',\n 'salmon 4': '#8b4c39',\n 'sandy brown': '#f4a460',\n 'sea green': '#2e8b57',\n 'sea green 1': '#54ff9f',\n 'sea green 2': '#4eee94',\n 'sea green 3': '#43cd80',\n 'sea green 4': '#2e8b57',\n seashell: '#fff5ee',\n 'seashell 1': '#fff5ee',\n 'seashell 2': '#eee5de',\n 'seashell 3': '#cdc5bf',\n 'seashell 4': '#8b8682',\n sienna: '#a0522d',\n 'sienna 1': '#ff8247',\n 'sienna 2': '#ee7942',\n 'sienna 3': '#cd6839',\n 'sienna 4': '#8b4726',\n 'sky blue': '#87ceeb',\n 'sky blue 1': '#87ceff',\n 'sky blue 2': '#7ec0ee',\n 'sky blue 3': '#6ca6cd',\n 'sky blue 4': '#4a708b',\n 'slate blue': '#6a5acd',\n 'slate blue 1': '#836fff',\n 'slate blue 2': '#7a67ee',\n 'slate blue 3': '#6959cd',\n 'slate blue 4': '#473c8b',\n 'slate gray': '#708090',\n 'slate gray 1': '#c6e2ff',\n 'slate gray 2': '#b9d3ee',\n 'slate gray 3': '#9fb6cd',\n 'slate gray 4': '#6c7b8b',\n 'slate grey': '#708090',\n snow: '#fffafa',\n 'snow 1': '#fffafa',\n 'snow 2': '#eee9e9',\n 'snow 3': '#cdc9c9',\n 'snow 4': '#8b8989',\n 'spring green': '#00ff7f',\n 'spring green 1': '#00ff7f',\n 'spring green 2': '#00ee76',\n 'spring green 3': '#00cd66',\n 'spring green 4': '#008b45',\n 'steel blue': '#4682b4',\n 'steel blue 1': '#63b8ff',\n 'steel blue 2': '#5cacee',\n 'steel blue 3': '#4f94cd',\n 'steel blue 4': '#36648b',\n tan: '#d2b48c',\n 'tan 1': '#ffa54f',\n 'tan 2': '#ee9a49',\n 'tan 3': '#cd853f',\n 'tan 4': '#8b5a2b',\n thistle: '#d8bfd8',\n 'thistle 1': '#ffe1ff',\n 'thistle 2': '#eed2ee',\n 'thistle 3': '#cdb5cd',\n 'thistle 4': '#8b7b8b',\n tomato: '#ff6347',\n 'tomato 1': '#ff6347',\n 'tomato 2': '#ee5c42',\n 'tomato 3': '#cd4f39',\n 'tomato 4': '#8b3626',\n turquoise: '#40e0d0',\n 'turquoise 1': '#00f5ff',\n 'turquoise 2': '#00e5ee',\n 'turquoise 3': '#00c5cd',\n 'turquoise 4': '#00868b',\n violet: '#ee82ee',\n 'violet red': '#d02090',\n 'violet red 1': '#ff3e96',\n 'violet red 2': '#ee3a8c',\n 'violet red 3': '#cd3278',\n 'violet red 4': '#8b2252',\n wheat: '#f5deb3',\n 'wheat 1': '#ffe7ba',\n 'wheat 2': '#eed8ae',\n 'wheat 3': '#cdba96',\n 'wheat 4': '#8b7e66',\n white: '#ffffff',\n 'white smoke': '#f5f5f5',\n yellow: '#ffff00',\n 'yellow 1': '#ffff00',\n 'yellow 2': '#eeee00',\n 'yellow 3': '#cdcd00',\n 'yellow 4': '#8b8b00',\n 'yellow green': '#9acd32',\n} as const;\n\nexport type X11ColorName = keyof typeof x11Colors;\n\n/**\n * Default metric note: x11 has 658 entries including dense numbered ramps\n * (gray 0-100, dark slate gray 1-4, etc). ΔE76 is chosen for speed — at\n * ~5 µs per identify vs ~90 µs for ΔE2000 — which matters for interactive\n * UIs that scrub many colors per second.\n *\n * The tradeoff: ΔE76's known weakness in saturated blue/purple can pick a\n * perceptually-suboptimal neighbor for colors in that region. For those\n * inputs, override per-call with a perceptually-uniform metric:\n * identify(hex, { palette: x11, metric: 'deltaEok' }) // ~5 µs\n * identify(hex, { palette: x11, metric: 'deltaE2000' }) // ~90 µs\n */\nexport const x11 = {\n name: 'x11',\n colors: x11Colors,\n normalize: standardNormalize,\n defaultMetric: 'deltaE76',\n} as const satisfies Palette<X11ColorName>;\n"]}
package/dist/resolve.d.ts CHANGED
@@ -1,14 +1,16 @@
1
- import type { ColorFormat, ColorspaceName, ColorValue } from './types';
1
+ import type { ColorFormat, ColorValue, Palette } from './types.js';
2
2
  /**
3
- * Resolve a human-readable name to a color. Normalizes the input
4
- * (lowercases, strips non-alphanumeric characters, and for the pantone
5
- * colorspace also strips a leading "Pantone" or "PMS" prefix) before
6
- * looking it up in the chosen colorspace. Returns `null` if unknown.
3
+ * Resolve a human-readable name to a color. Normalizes the input using the
4
+ * palette's own `normalize` function before looking it up. Returns `null`
5
+ * if unknown.
7
6
  *
8
- * Defaults: colorspace = 'web', format = 'HEX'.
7
+ * Defaults: palette = `web`, format = 'HEX'.
8
+ *
9
+ * BYO palettes: pass any object matching `Palette<Name>` — no registration
10
+ * needed; the palette's normalizer handles lookup.
9
11
  */
10
12
  export declare function resolve(name: string, opts?: {
11
- colorspace?: ColorspaceName;
13
+ palette?: Palette;
12
14
  format?: ColorFormat;
13
15
  }): ColorValue | null;
14
16
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAY,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7E;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACrD,UAAU,GAAG,IAAI,CASnB","sourcesContent":["import { hexToRgba } from './conversions/hex.js';\nimport { fromRgba } from './convert.js';\nimport { getNameIndex } from './indexing.js';\nimport { web } from './palettes/web.js';\nimport type { ColorFormat, ColorValue, HexColor, Palette } from './types.js';\n\n/**\n * Resolve a human-readable name to a color. Normalizes the input using the\n * palette's own `normalize` function before looking it up. Returns `null`\n * if unknown.\n *\n * Defaults: palette = `web`, format = 'HEX'.\n *\n * BYO palettes: pass any object matching `Palette<Name>` — no registration\n * needed; the palette's normalizer handles lookup.\n */\nexport function resolve(\n name: string,\n opts: { palette?: Palette; format?: ColorFormat } = {},\n): ColorValue | null {\n const palette = opts.palette ?? web;\n const format = opts.format ?? 'HEX';\n const canonical = getNameIndex(palette).get(palette.normalize(name));\n if (canonical === undefined) return null;\n const hex = (palette.colors as Record<string, HexColor>)[canonical];\n if (hex === undefined) return null;\n // Skip detectFormat — we already know this is HEX (read from palette data).\n return fromRgba(hexToRgba(hex), format);\n}\n"]}
package/dist/resolve.js CHANGED
@@ -1,26 +1,27 @@
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';
1
+ import { hexToRgba } from './conversions/hex.js';
2
+ import { fromRgba } from './convert.js';
3
+ import { getNameIndex } from './indexing.js';
4
+ import { web } from './palettes/web.js';
5
5
  /**
6
- * Resolve a human-readable name to a color. Normalizes the input
7
- * (lowercases, strips non-alphanumeric characters, and for the pantone
8
- * colorspace also strips a leading "Pantone" or "PMS" prefix) before
9
- * looking it up in the chosen colorspace. Returns `null` if unknown.
6
+ * Resolve a human-readable name to a color. Normalizes the input using the
7
+ * palette's own `normalize` function before looking it up. Returns `null`
8
+ * if unknown.
10
9
  *
11
- * Defaults: colorspace = 'web', format = 'HEX'.
10
+ * Defaults: palette = `web`, format = 'HEX'.
11
+ *
12
+ * BYO palettes: pass any object matching `Palette<Name>` — no registration
13
+ * needed; the palette's normalizer handles lookup.
12
14
  */
13
15
  export function resolve(name, opts = {}) {
14
- const { colorspace = 'web', format = 'HEX' } = opts;
15
- if (!COLORSPACE_NAMES.has(colorspace))
16
- return null;
17
- const space = COLORSPACES[colorspace];
18
- const normalize = NORMALIZERS[colorspace];
19
- const canonical = getNameIndex(space, normalize).get(normalize(name));
16
+ const palette = opts.palette ?? web;
17
+ const format = opts.format ?? 'HEX';
18
+ const canonical = getNameIndex(palette).get(palette.normalize(name));
20
19
  if (canonical === undefined)
21
20
  return null;
22
- const hex = space[canonical];
23
- // Skip detectFormat — we already know this is HEX (read from colorspace data).
21
+ const hex = palette.colors[canonical];
22
+ if (hex === undefined)
23
+ return null;
24
+ // Skip detectFormat — we already know this is HEX (read from palette data).
24
25
  return fromRgba(hexToRgba(hex), format);
25
26
  }
26
27
  //# sourceMappingURL=resolve.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGxC;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CACrB,IAAY,EACZ,IAAI,GAAgD,EAAE;IAEtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IACpC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,GAAG,GAAI,OAAO,CAAC,MAAmC,CAAC,SAAS,CAAC,CAAC;IACpE,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,4EAA4E;IAC5E,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["import { hexToRgba } from './conversions/hex.js';\nimport { fromRgba } from './convert.js';\nimport { getNameIndex } from './indexing.js';\nimport { web } from './palettes/web.js';\nimport type { ColorFormat, ColorValue, HexColor, Palette } from './types.js';\n\n/**\n * Resolve a human-readable name to a color. Normalizes the input using the\n * palette's own `normalize` function before looking it up. Returns `null`\n * if unknown.\n *\n * Defaults: palette = `web`, format = 'HEX'.\n *\n * BYO palettes: pass any object matching `Palette<Name>` — no registration\n * needed; the palette's normalizer handles lookup.\n */\nexport function resolve(\n name: string,\n opts: { palette?: Palette; format?: ColorFormat } = {},\n): ColorValue | null {\n const palette = opts.palette ?? web;\n const format = opts.format ?? 'HEX';\n const canonical = getNameIndex(palette).get(palette.normalize(name));\n if (canonical === undefined) return null;\n const hex = (palette.colors as Record<string, HexColor>)[canonical];\n if (hex === undefined) return null;\n // Skip detectFormat — we already know this is HEX (read from palette data).\n return fromRgba(hexToRgba(hex), format);\n}\n"]}
package/dist/types.d.ts CHANGED
@@ -30,14 +30,18 @@ export type HsvObject = {
30
30
  v: number;
31
31
  };
32
32
  export type HsvInput = HsvString | HsvObject;
33
- export type PantoneCode = string;
34
- export type ColorInput = HexColor | RgbInput | RgbaInput | HslInput | HsvInput | PantoneCode;
35
- declare const FORMAT_VALUES: readonly ['HEX', 'RGB', 'RGBA', 'HSL', 'HSV', 'PANTONE'];
33
+ export type ColorInput = HexColor | RgbInput | RgbaInput | HslInput | HsvInput;
34
+ declare const FORMAT_VALUES: readonly ['HEX', 'RGB', 'RGBA', 'HSL', 'HSV'];
36
35
  export type ColorFormat = (typeof FORMAT_VALUES)[number];
37
36
  export declare const COLOR_FORMATS: ReadonlySet<ColorFormat>;
38
- export type ColorValue = HexColor | RgbString | Rgba | HslString | HsvString | PantoneCode;
39
- export type Colorspace = Record<string, HexColor>;
40
- export type ColorspaceName = 'web' | 'x11' | 'pantone';
37
+ export type ColorValue = HexColor | RgbString | Rgba | HslString | HsvString;
38
+ export type NormalizeFn = (name: string) => string;
39
+ export type Palette<Name extends string = string> = {
40
+ readonly name: string;
41
+ readonly colors: Readonly<Record<Name, HexColor>>;
42
+ readonly normalize: NormalizeFn;
43
+ readonly defaultMetric: DistanceMetric;
44
+ };
41
45
  export type DistanceMetric = 'euclidean-srgb' | 'euclidean-linear' | 'deltaE76' | 'deltaE94' | 'deltaE2000' | 'deltaEok';
42
46
  export {};
43
47
  //# 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;AAWvD,MAAM,MAAM,cAAc,GACtB,gBAAgB,GAChB,kBAAkB,GAClB,UAAU,GACV,UAAU,GACV,YAAY,GACZ,UAAU,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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","sourcesContent":["// --- Hex ---\nexport type HexColor = `#${string}`;\n\n// --- RGB (no alpha) ---\nexport type RgbString =\n | `rgb(${number},${number},${number})`\n | `rgb(${number}, ${number}, ${number})`;\nexport type RgbTuple = readonly [r: number, g: number, b: number];\nexport type RgbObject = { r: number; g: number; b: number };\nexport type RgbInput = RgbString | RgbTuple | RgbObject;\n\n// --- RGBA (canonical internal representation) ---\nexport type RgbaString =\n | `rgba(${number},${number},${number},${number})`\n | `rgba(${number}, ${number}, ${number}, ${number})`;\nexport type RgbaTuple = readonly [r: number, g: number, b: number, a: number];\nexport type Rgba = { r: number; g: number; b: number; a: number };\nexport type RgbaInput = RgbaString | RgbaTuple | Rgba;\n\n// --- HSL ---\nexport type HslString = `hsl(${number}, ${number}%, ${number}%)`;\nexport type HslObject = { h: number; s: number; l: number };\nexport type HslInput = HslString | HslObject;\n\n// --- HSV ---\nexport type HsvString = `hsv(${number}, ${number}%, ${number}%)`;\nexport type HsvObject = { h: number; s: number; v: number };\nexport type HsvInput = HsvString | HsvObject;\n\n// --- Unified input: anything the core `convert` / `identify` path accepts. ---\n// Pantone strings are deliberately NOT in this union — they require the\n// `pantone` palette data to parse. Callers who want to feed a Pantone code\n// import `pantoneToRgba` from `chromonym/conversions/pantone` (or the\n// subpath) and pass the resulting `Rgba` here. Keeps `identify` / `convert`\n// palette-free so they tree-shake down to structural math.\nexport type ColorInput = HexColor | RgbInput | RgbaInput | HslInput | HsvInput;\n\n// --- Format keys (SCREAMING_CAPS — these are lookup keys for converter dispatch) ---\n// PANTONE intentionally omitted — see ColorInput comment.\nconst FORMAT_VALUES = ['HEX', 'RGB', 'RGBA', 'HSL', 'HSV'] as const;\nexport type ColorFormat = (typeof FORMAT_VALUES)[number];\nexport const COLOR_FORMATS: ReadonlySet<ColorFormat> = new Set(FORMAT_VALUES);\n\n// --- A returned color value (union of canonical output shapes, one per ColorFormat) ---\nexport type ColorValue = HexColor | RgbString | Rgba | HslString | HsvString;\n\n// --- Name normalization function shape (used by palettes). ---\n// A NormalizeFn takes a user-supplied name (\"Pantone 185 C\") and returns\n// its canonical lookup key (\"185c\"). Paired with each Palette.\nexport type NormalizeFn = (name: string) => string;\n\n// --- Palette: a named color lookup with its indexing rules. ---\n// Generic over the key type so BYO palettes can carry narrow literal\n// unions for full type inference through identify/resolve.\nexport type Palette<Name extends string = string> = {\n readonly name: string;\n readonly colors: Readonly<Record<Name, HexColor>>;\n readonly normalize: NormalizeFn;\n readonly defaultMetric: DistanceMetric;\n};\n\n// --- Distance metric for nearest-name lookup (used by `identify`). ---\n// Choose based on palette density and accuracy needs:\n// 'euclidean-srgb' — fastest; fine for well-separated palettes (web, x11)\n// 'euclidean-linear' — undoes sRGB gamma first; closer to physical light mixing\n// 'deltaE76' — Euclidean in CIELAB; simple perceptual metric (CIE 1976)\n// 'deltaE94' — chroma/hue weighted; fixes saturation overweighting\n// 'deltaE2000' — industry standard; fixes blue/purple region\n// 'deltaEok' — Euclidean in OKLAB (Ottosson 2020); most modern;\n// perceptually uniform by construction, cheaper than ΔE2000\nexport type DistanceMetric =\n | 'euclidean-srgb'\n | 'euclidean-linear'\n | 'deltaE76'\n | 'deltaE94'\n | 'deltaE2000'\n | 'deltaEok';\n"]}
package/dist/types.js CHANGED
@@ -1,4 +1,5 @@
1
1
  // --- Format keys (SCREAMING_CAPS — these are lookup keys for converter dispatch) ---
2
- const FORMAT_VALUES = ['HEX', 'RGB', 'RGBA', 'HSL', 'HSV', 'PANTONE'];
2
+ // PANTONE intentionally omitted — see ColorInput comment.
3
+ const FORMAT_VALUES = ['HEX', 'RGB', 'RGBA', 'HSL', 'HSV'];
3
4
  export const COLOR_FORMATS = new Set(FORMAT_VALUES);
4
5
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAoCA,sFAAsF;AACtF,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAU,CAAC;AAE/E,MAAM,CAAC,MAAM,aAAa,GAA6B,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAqCA,sFAAsF;AACtF,0DAA0D;AAC1D,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAEpE,MAAM,CAAC,MAAM,aAAa,GAA6B,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC","sourcesContent":["// --- Hex ---\nexport type HexColor = `#${string}`;\n\n// --- RGB (no alpha) ---\nexport type RgbString =\n | `rgb(${number},${number},${number})`\n | `rgb(${number}, ${number}, ${number})`;\nexport type RgbTuple = readonly [r: number, g: number, b: number];\nexport type RgbObject = { r: number; g: number; b: number };\nexport type RgbInput = RgbString | RgbTuple | RgbObject;\n\n// --- RGBA (canonical internal representation) ---\nexport type RgbaString =\n | `rgba(${number},${number},${number},${number})`\n | `rgba(${number}, ${number}, ${number}, ${number})`;\nexport type RgbaTuple = readonly [r: number, g: number, b: number, a: number];\nexport type Rgba = { r: number; g: number; b: number; a: number };\nexport type RgbaInput = RgbaString | RgbaTuple | Rgba;\n\n// --- HSL ---\nexport type HslString = `hsl(${number}, ${number}%, ${number}%)`;\nexport type HslObject = { h: number; s: number; l: number };\nexport type HslInput = HslString | HslObject;\n\n// --- HSV ---\nexport type HsvString = `hsv(${number}, ${number}%, ${number}%)`;\nexport type HsvObject = { h: number; s: number; v: number };\nexport type HsvInput = HsvString | HsvObject;\n\n// --- Unified input: anything the core `convert` / `identify` path accepts. ---\n// Pantone strings are deliberately NOT in this union — they require the\n// `pantone` palette data to parse. Callers who want to feed a Pantone code\n// import `pantoneToRgba` from `chromonym/conversions/pantone` (or the\n// subpath) and pass the resulting `Rgba` here. Keeps `identify` / `convert`\n// palette-free so they tree-shake down to structural math.\nexport type ColorInput = HexColor | RgbInput | RgbaInput | HslInput | HsvInput;\n\n// --- Format keys (SCREAMING_CAPS — these are lookup keys for converter dispatch) ---\n// PANTONE intentionally omitted — see ColorInput comment.\nconst FORMAT_VALUES = ['HEX', 'RGB', 'RGBA', 'HSL', 'HSV'] as const;\nexport type ColorFormat = (typeof FORMAT_VALUES)[number];\nexport const COLOR_FORMATS: ReadonlySet<ColorFormat> = new Set(FORMAT_VALUES);\n\n// --- A returned color value (union of canonical output shapes, one per ColorFormat) ---\nexport type ColorValue = HexColor | RgbString | Rgba | HslString | HsvString;\n\n// --- Name normalization function shape (used by palettes). ---\n// A NormalizeFn takes a user-supplied name (\"Pantone 185 C\") and returns\n// its canonical lookup key (\"185c\"). Paired with each Palette.\nexport type NormalizeFn = (name: string) => string;\n\n// --- Palette: a named color lookup with its indexing rules. ---\n// Generic over the key type so BYO palettes can carry narrow literal\n// unions for full type inference through identify/resolve.\nexport type Palette<Name extends string = string> = {\n readonly name: string;\n readonly colors: Readonly<Record<Name, HexColor>>;\n readonly normalize: NormalizeFn;\n readonly defaultMetric: DistanceMetric;\n};\n\n// --- Distance metric for nearest-name lookup (used by `identify`). ---\n// Choose based on palette density and accuracy needs:\n// 'euclidean-srgb' — fastest; fine for well-separated palettes (web, x11)\n// 'euclidean-linear' — undoes sRGB gamma first; closer to physical light mixing\n// 'deltaE76' — Euclidean in CIELAB; simple perceptual metric (CIE 1976)\n// 'deltaE94' — chroma/hue weighted; fixes saturation overweighting\n// 'deltaE2000' — industry standard; fixes blue/purple region\n// 'deltaEok' — Euclidean in OKLAB (Ottosson 2020); most modern;\n// perceptually uniform by construction, cheaper than ΔE2000\nexport type DistanceMetric =\n | 'euclidean-srgb'\n | 'euclidean-linear'\n | 'deltaE76'\n | 'deltaE94'\n | 'deltaE2000'\n | 'deltaEok';\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "chromonym",
3
- "version": "1.4.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).",
3
+ "version": "2.0.0",
4
+ "description": "One color-naming API for any palette. Identify, resolve, and convert colors across your own palette or the built-in CSS, X11, and Pantone sets — fully typed, tree-shakeable, perceptual distance metrics (CIEDE2000).",
5
5
  "keywords": [
6
6
  "color",
7
7
  "color-name",
@@ -46,51 +46,63 @@
46
46
  "exports": {
47
47
  ".": {
48
48
  "types": "./dist/index.d.ts",
49
- "import": "./dist/index.js"
49
+ "import": "./dist/index.js",
50
+ "default": "./dist/index.js"
50
51
  },
51
52
  "./web": {
52
- "types": "./dist/colorspaces/web.d.ts",
53
- "import": "./dist/colorspaces/web.js"
53
+ "types": "./dist/palettes/web.d.ts",
54
+ "import": "./dist/palettes/web.js",
55
+ "default": "./dist/palettes/web.js"
54
56
  },
55
57
  "./x11": {
56
- "types": "./dist/colorspaces/x11.d.ts",
57
- "import": "./dist/colorspaces/x11.js"
58
+ "types": "./dist/palettes/x11.d.ts",
59
+ "import": "./dist/palettes/x11.js",
60
+ "default": "./dist/palettes/x11.js"
58
61
  },
59
62
  "./pantone": {
60
- "types": "./dist/colorspaces/pantone.d.ts",
61
- "import": "./dist/colorspaces/pantone.js"
63
+ "types": "./dist/palettes/pantone.d.ts",
64
+ "import": "./dist/palettes/pantone.js",
65
+ "default": "./dist/palettes/pantone.js"
62
66
  },
63
67
  "./conversions/hex": {
64
68
  "types": "./dist/conversions/hex.d.ts",
65
- "import": "./dist/conversions/hex.js"
69
+ "import": "./dist/conversions/hex.js",
70
+ "default": "./dist/conversions/hex.js"
66
71
  },
67
72
  "./conversions/rgb": {
68
73
  "types": "./dist/conversions/rgb.d.ts",
69
- "import": "./dist/conversions/rgb.js"
74
+ "import": "./dist/conversions/rgb.js",
75
+ "default": "./dist/conversions/rgb.js"
70
76
  },
71
77
  "./conversions/hsl": {
72
78
  "types": "./dist/conversions/hsl.d.ts",
73
- "import": "./dist/conversions/hsl.js"
79
+ "import": "./dist/conversions/hsl.js",
80
+ "default": "./dist/conversions/hsl.js"
74
81
  },
75
82
  "./conversions/hsv": {
76
83
  "types": "./dist/conversions/hsv.d.ts",
77
- "import": "./dist/conversions/hsv.js"
84
+ "import": "./dist/conversions/hsv.js",
85
+ "default": "./dist/conversions/hsv.js"
78
86
  },
79
87
  "./conversions/pantone": {
80
88
  "types": "./dist/conversions/pantone.d.ts",
81
- "import": "./dist/conversions/pantone.js"
89
+ "import": "./dist/conversions/pantone.js",
90
+ "default": "./dist/conversions/pantone.js"
82
91
  },
83
92
  "./math/deltaE": {
84
93
  "types": "./dist/math/deltaE.d.ts",
85
- "import": "./dist/math/deltaE.js"
94
+ "import": "./dist/math/deltaE.js",
95
+ "default": "./dist/math/deltaE.js"
86
96
  },
87
97
  "./math/colorSpace": {
88
98
  "types": "./dist/math/colorSpace.d.ts",
89
- "import": "./dist/math/colorSpace.js"
99
+ "import": "./dist/math/colorSpace.js",
100
+ "default": "./dist/math/colorSpace.js"
90
101
  },
91
102
  "./types": {
92
103
  "types": "./dist/types.d.ts",
93
- "import": "./dist/types.js"
104
+ "import": "./dist/types.js",
105
+ "default": "./dist/types.js"
94
106
  },
95
107
  "./package.json": "./package.json"
96
108
  },
@@ -101,12 +113,14 @@
101
113
  "NOTICE.md"
102
114
  ],
103
115
  "scripts": {
104
- "build": "tsgo",
116
+ "clean": "rm -rf dist",
117
+ "build": "bun run clean && tsgo",
105
118
  "typecheck": "tsgo --noEmit",
106
119
  "lint": "biome check",
107
120
  "lint:fix": "biome check --write",
108
121
  "format": "biome format --write .",
109
122
  "test": "bun test",
123
+ "demo": "bun run build && cd demo && bun run dev",
110
124
  "prepublishOnly": "bun run build"
111
125
  },
112
126
  "devDependencies": {
@@ -1,4 +0,0 @@
1
- export { type PantoneColorName, pantone } from './pantone';
2
- export { type WebColorName, web } from './web';
3
- export { type X11ColorName, x11 } from './x11';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/colorspaces/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,KAAK,YAAY,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,KAAK,YAAY,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC"}
@@ -1,4 +0,0 @@
1
- export { pantone } from './pantone';
2
- export { web } from './web';
3
- export { x11 } from './x11';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/colorspaces/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAqB,GAAG,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAqB,GAAG,EAAE,MAAM,OAAO,CAAC"}