@lakuna/color 1.1.2 → 1.2.1

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 (379) hide show
  1. package/LICENSE +1 -1
  2. package/dist/{utility → convert}/adobeToXyz.d.ts +1 -1
  3. package/dist/convert/adobeToXyz.d.ts.map +1 -0
  4. package/dist/{utility → convert}/adobeToXyz.js +5 -3
  5. package/dist/convert/adobeToXyz.js.map +1 -0
  6. package/dist/{utility → convert}/cmyToCmyk.d.ts +1 -1
  7. package/dist/convert/cmyToCmyk.d.ts.map +1 -0
  8. package/dist/{utility → convert}/cmyToCmyk.js +0 -3
  9. package/dist/convert/cmyToCmyk.js.map +1 -0
  10. package/dist/{utility → convert}/cmyToRgb.d.ts +1 -1
  11. package/dist/convert/cmyToRgb.d.ts.map +1 -0
  12. package/dist/convert/cmyToRgb.js.map +1 -0
  13. package/dist/{utility → convert}/cmykToCmy.d.ts +1 -1
  14. package/dist/convert/cmykToCmy.d.ts.map +1 -0
  15. package/dist/{utility → convert}/cmykToCmy.js +0 -1
  16. package/dist/convert/cmykToCmy.js.map +1 -0
  17. package/dist/{utility → convert}/hexToRgb.d.ts +1 -1
  18. package/dist/convert/hexToRgb.d.ts.map +1 -0
  19. package/dist/{utility → convert}/hexToRgb.js.map +1 -1
  20. package/dist/{utility → convert}/hslToRgb.d.ts +1 -1
  21. package/dist/convert/hslToRgb.d.ts.map +1 -0
  22. package/dist/{utility → convert}/hslToRgb.js +5 -6
  23. package/dist/convert/hslToRgb.js.map +1 -0
  24. package/dist/{utility → convert}/hsvToRgb.d.ts +1 -1
  25. package/dist/convert/hsvToRgb.d.ts.map +1 -0
  26. package/dist/{utility → convert}/hsvToRgb.js +0 -2
  27. package/dist/convert/hsvToRgb.js.map +1 -0
  28. package/dist/{utility → convert}/hunterToXyz.d.ts +1 -1
  29. package/dist/convert/hunterToXyz.d.ts.map +1 -0
  30. package/dist/{utility → convert}/hunterToXyz.js +6 -7
  31. package/dist/convert/hunterToXyz.js.map +1 -0
  32. package/dist/convert/labToLch.d.ts +19 -0
  33. package/dist/convert/labToLch.d.ts.map +1 -0
  34. package/dist/convert/labToLch.js +12 -0
  35. package/dist/convert/labToLch.js.map +1 -0
  36. package/dist/{utility → convert}/labToXyz.d.ts +1 -1
  37. package/dist/convert/labToXyz.d.ts.map +1 -0
  38. package/dist/{utility → convert}/labToXyz.js +8 -5
  39. package/dist/convert/labToXyz.js.map +1 -0
  40. package/dist/convert/lchToLab.d.ts +19 -0
  41. package/dist/convert/lchToLab.d.ts.map +1 -0
  42. package/dist/convert/lchToLab.js +7 -0
  43. package/dist/convert/lchToLab.js.map +1 -0
  44. package/dist/{utility → convert}/luvToXyz.d.ts +1 -1
  45. package/dist/convert/luvToXyz.d.ts.map +1 -0
  46. package/dist/{utility → convert}/luvToXyz.js +4 -6
  47. package/dist/convert/luvToXyz.js.map +1 -0
  48. package/dist/{utility → convert}/rgbToCmy.d.ts +1 -1
  49. package/dist/convert/rgbToCmy.d.ts.map +1 -0
  50. package/dist/convert/rgbToCmy.js.map +1 -0
  51. package/dist/{utility → convert}/rgbToHex.d.ts +1 -1
  52. package/dist/{utility → convert}/rgbToHex.d.ts.map +1 -1
  53. package/dist/{utility → convert}/rgbToHex.js +3 -1
  54. package/dist/convert/rgbToHex.js.map +1 -0
  55. package/dist/convert/rgbToHsi.d.ts +10 -0
  56. package/dist/convert/rgbToHsi.d.ts.map +1 -0
  57. package/dist/convert/rgbToHsi.js +36 -0
  58. package/dist/convert/rgbToHsi.js.map +1 -0
  59. package/dist/{utility → convert}/rgbToHsl.d.ts +1 -1
  60. package/dist/convert/rgbToHsl.d.ts.map +1 -0
  61. package/dist/convert/rgbToHsl.js +37 -0
  62. package/dist/convert/rgbToHsl.js.map +1 -0
  63. package/dist/{utility → convert}/rgbToHsv.d.ts +1 -1
  64. package/dist/convert/rgbToHsv.d.ts.map +1 -0
  65. package/dist/{utility → convert}/rgbToHsv.js +11 -11
  66. package/dist/convert/rgbToHsv.js.map +1 -0
  67. package/dist/{utility → convert}/rgbToXyz.d.ts +1 -1
  68. package/dist/convert/rgbToXyz.d.ts.map +1 -0
  69. package/dist/{utility → convert}/rgbToXyz.js +9 -3
  70. package/dist/convert/rgbToXyz.js.map +1 -0
  71. package/dist/{utility → convert}/xyzToAdobe.d.ts +1 -1
  72. package/dist/convert/xyzToAdobe.d.ts.map +1 -0
  73. package/dist/{utility → convert}/xyzToAdobe.js +5 -3
  74. package/dist/convert/xyzToAdobe.js.map +1 -0
  75. package/dist/{utility → convert}/xyzToHunter.d.ts +2 -2
  76. package/dist/convert/xyzToHunter.d.ts.map +1 -0
  77. package/dist/{utility → convert}/xyzToHunter.js +7 -8
  78. package/dist/convert/xyzToHunter.js.map +1 -0
  79. package/dist/{utility → convert}/xyzToLab.d.ts +1 -1
  80. package/dist/convert/xyzToLab.d.ts.map +1 -0
  81. package/dist/{utility → convert}/xyzToLab.js +9 -5
  82. package/dist/convert/xyzToLab.js.map +1 -0
  83. package/dist/{utility → convert}/xyzToLuv.d.ts +1 -1
  84. package/dist/convert/xyzToLuv.d.ts.map +1 -0
  85. package/dist/{utility → convert}/xyzToLuv.js +5 -7
  86. package/dist/convert/xyzToLuv.js.map +1 -0
  87. package/dist/{utility → convert}/xyzToRgb.d.ts +1 -1
  88. package/dist/convert/xyzToRgb.d.ts.map +1 -0
  89. package/dist/{utility → convert}/xyzToRgb.js +8 -3
  90. package/dist/convert/xyzToRgb.js.map +1 -0
  91. package/dist/{utility → convert}/xyzToYxy.d.ts +1 -1
  92. package/dist/convert/xyzToYxy.d.ts.map +1 -0
  93. package/dist/{utility → convert}/xyzToYxy.js +0 -3
  94. package/dist/convert/xyzToYxy.js.map +1 -0
  95. package/dist/{utility → convert}/yxyToXyz.d.ts +1 -1
  96. package/dist/convert/yxyToXyz.d.ts.map +1 -0
  97. package/dist/{utility → convert}/yxyToXyz.js +0 -3
  98. package/dist/convert/yxyToXyz.js.map +1 -0
  99. package/dist/{utility → delta}/deltaC.d.ts +2 -2
  100. package/dist/delta/deltaC.d.ts.map +1 -0
  101. package/dist/{utility → delta}/deltaC.js.map +1 -1
  102. package/dist/{utility → delta}/deltaCmc.d.ts +2 -2
  103. package/dist/delta/deltaCmc.d.ts.map +1 -0
  104. package/dist/{utility → delta}/deltaCmc.js +5 -8
  105. package/dist/delta/deltaCmc.js.map +1 -0
  106. package/dist/{utility → delta}/deltaE00.d.ts +2 -2
  107. package/dist/delta/deltaE00.d.ts.map +1 -0
  108. package/dist/{utility → delta}/deltaE00.js +13 -17
  109. package/dist/delta/deltaE00.js.map +1 -0
  110. package/dist/{utility → delta}/deltaE76.d.ts +2 -2
  111. package/dist/delta/deltaE76.d.ts.map +1 -0
  112. package/dist/{utility → delta}/deltaE76.js.map +1 -1
  113. package/dist/{utility → delta}/deltaE94.d.ts +2 -2
  114. package/dist/delta/deltaE94.d.ts.map +1 -0
  115. package/dist/{utility → delta}/deltaE94.js +0 -6
  116. package/dist/delta/deltaE94.js.map +1 -0
  117. package/dist/{utility → delta}/deltaH.d.ts +2 -2
  118. package/dist/delta/deltaH.d.ts.map +1 -0
  119. package/dist/{utility → delta}/deltaH.js +0 -4
  120. package/dist/delta/deltaH.js.map +1 -0
  121. package/dist/index.d.ts +41 -31
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +41 -30
  124. package/dist/index.js.map +1 -1
  125. package/dist/names/bang.d.ts +2 -2
  126. package/dist/names/bang.d.ts.map +1 -1
  127. package/dist/names/bang.js +471 -471
  128. package/dist/names/bang.js.map +1 -1
  129. package/dist/names/cne.d.ts +1 -1
  130. package/dist/names/cne.d.ts.map +1 -1
  131. package/dist/names/cne.js +843 -843
  132. package/dist/names/cne.js.map +1 -1
  133. package/dist/names/crayola.d.ts +1 -1
  134. package/dist/names/crayola.d.ts.map +1 -1
  135. package/dist/names/crayola.js +110 -110
  136. package/dist/names/crayola.js.map +1 -1
  137. package/dist/names/getName.d.ts +2 -2
  138. package/dist/names/getName.d.ts.map +1 -1
  139. package/dist/names/getName.js +3 -3
  140. package/dist/names/getName.js.map +1 -1
  141. package/dist/names/hollasch.d.ts +1 -1
  142. package/dist/names/hollasch.d.ts.map +1 -1
  143. package/dist/names/hollasch.js +179 -179
  144. package/dist/names/hollasch.js.map +1 -1
  145. package/dist/names/nbs.d.ts +1 -1
  146. package/dist/names/nbs.d.ts.map +1 -1
  147. package/dist/names/nbs.js +266 -266
  148. package/dist/names/nbs.js.map +1 -1
  149. package/dist/names/ntc.d.ts +1 -1
  150. package/dist/names/ntc.d.ts.map +1 -1
  151. package/dist/names/ntc.js +1519 -1519
  152. package/dist/names/ntc.js.map +1 -1
  153. package/dist/names/resene.d.ts +1 -1
  154. package/dist/names/resene.d.ts.map +1 -1
  155. package/dist/names/resene.js +1331 -1331
  156. package/dist/names/resene.js.map +1 -1
  157. package/dist/names/tcapi.d.ts +1 -1
  158. package/dist/names/tcapi.d.ts.map +1 -1
  159. package/dist/names/tcapi.js +1840 -1840
  160. package/dist/names/tcapi.js.map +1 -1
  161. package/dist/names/x11.d.ts +1 -1
  162. package/dist/names/x11.d.ts.map +1 -1
  163. package/dist/names/x11.js +445 -445
  164. package/dist/names/x11.js.map +1 -1
  165. package/dist/names/xkcd.d.ts +1 -1
  166. package/dist/names/xkcd.d.ts.map +1 -1
  167. package/dist/names/xkcd.js +897 -897
  168. package/dist/names/xkcd.js.map +1 -1
  169. package/dist/palette/analogous.d.ts +28 -0
  170. package/dist/palette/analogous.d.ts.map +1 -0
  171. package/dist/palette/analogous.js +15 -0
  172. package/dist/palette/analogous.js.map +1 -0
  173. package/dist/palette/analogousLch.d.ts +19 -0
  174. package/dist/palette/analogousLch.d.ts.map +1 -0
  175. package/dist/palette/analogousLch.js +15 -0
  176. package/dist/palette/analogousLch.js.map +1 -0
  177. package/dist/palette/complement.d.ts +28 -0
  178. package/dist/palette/complement.d.ts.map +1 -0
  179. package/dist/palette/complement.js +15 -0
  180. package/dist/palette/complement.js.map +1 -0
  181. package/dist/palette/complementLch.d.ts +19 -0
  182. package/dist/palette/complementLch.d.ts.map +1 -0
  183. package/dist/palette/complementLch.js +15 -0
  184. package/dist/palette/complementLch.js.map +1 -0
  185. package/dist/palette/splitComplement.d.ts +28 -0
  186. package/dist/palette/splitComplement.d.ts.map +1 -0
  187. package/dist/palette/splitComplement.js +15 -0
  188. package/dist/palette/splitComplement.js.map +1 -0
  189. package/dist/palette/splitComplementLch.d.ts +19 -0
  190. package/dist/palette/splitComplementLch.d.ts.map +1 -0
  191. package/dist/palette/splitComplementLch.js +15 -0
  192. package/dist/palette/splitComplementLch.js.map +1 -0
  193. package/dist/types/Adobe.d.ts.map +1 -1
  194. package/dist/types/Cmy.d.ts.map +1 -1
  195. package/dist/types/Cmyk.d.ts.map +1 -1
  196. package/dist/types/Hsi.d.ts +15 -0
  197. package/dist/types/Hsi.d.ts.map +1 -0
  198. package/dist/types/Hsi.js +2 -0
  199. package/dist/types/Hsi.js.map +1 -0
  200. package/dist/types/Hsl.d.ts +1 -1
  201. package/dist/types/Hsl.d.ts.map +1 -1
  202. package/dist/types/Hsv.d.ts +1 -1
  203. package/dist/types/Hsv.d.ts.map +1 -1
  204. package/dist/types/Hunter.d.ts.map +1 -1
  205. package/dist/types/Lab.d.ts +2 -2
  206. package/dist/types/Lab.d.ts.map +1 -1
  207. package/dist/types/Lchab.d.ts +15 -0
  208. package/dist/types/Lchab.d.ts.map +1 -0
  209. package/dist/types/Lchab.js +2 -0
  210. package/dist/types/Lchab.js.map +1 -0
  211. package/dist/types/Lchuv.d.ts +15 -0
  212. package/dist/types/Lchuv.d.ts.map +1 -0
  213. package/dist/types/Lchuv.js +2 -0
  214. package/dist/types/Lchuv.js.map +1 -0
  215. package/dist/types/Luv.d.ts +1 -1
  216. package/dist/types/Luv.d.ts.map +1 -1
  217. package/dist/types/Rgb.d.ts.map +1 -1
  218. package/dist/types/Xyz.d.ts.map +1 -1
  219. package/dist/types/Yxy.d.ts.map +1 -1
  220. package/dist/utility/StandardIlluminant.d.ts.map +1 -1
  221. package/dist/utility/StandardIlluminant.js.map +1 -1
  222. package/dist/utility/contrast.d.ts +1 -1
  223. package/dist/utility/contrast.d.ts.map +1 -1
  224. package/dist/utility/contrast.js.map +1 -1
  225. package/dist/utility/getReference.d.ts +2 -2
  226. package/dist/utility/getReference.d.ts.map +1 -1
  227. package/dist/utility/getReference.js +39 -39
  228. package/dist/utility/getReference.js.map +1 -1
  229. package/dist/utility/isWebSafe.d.ts +10 -0
  230. package/dist/utility/isWebSafe.d.ts.map +1 -0
  231. package/dist/utility/isWebSafe.js +11 -0
  232. package/dist/utility/isWebSafe.js.map +1 -0
  233. package/dist/utility/relativeLuminance.d.ts +1 -1
  234. package/dist/utility/relativeLuminance.d.ts.map +1 -1
  235. package/dist/utility/relativeLuminance.js.map +1 -1
  236. package/package.json +34 -36
  237. package/src/{utility → convert}/adobeToXyz.ts +10 -4
  238. package/src/{utility → convert}/cmyToCmyk.ts +5 -4
  239. package/src/{utility → convert}/cmyToRgb.ts +3 -1
  240. package/src/{utility → convert}/cmykToCmy.ts +3 -2
  241. package/src/{utility → convert}/hexToRgb.ts +1 -1
  242. package/src/{utility → convert}/hslToRgb.ts +11 -7
  243. package/src/{utility → convert}/hsvToRgb.ts +4 -3
  244. package/src/{utility → convert}/hunterToXyz.ts +13 -10
  245. package/src/convert/labToLch.ts +40 -0
  246. package/src/{utility → convert}/labToXyz.ts +13 -8
  247. package/src/convert/lchToLab.ts +34 -0
  248. package/src/{utility → convert}/luvToXyz.ts +11 -9
  249. package/src/{utility → convert}/rgbToCmy.ts +3 -1
  250. package/src/{utility → convert}/rgbToHex.ts +6 -2
  251. package/src/convert/rgbToHsi.ts +45 -0
  252. package/src/convert/rgbToHsl.ts +46 -0
  253. package/src/{utility → convert}/rgbToHsv.ts +16 -13
  254. package/src/{utility → convert}/rgbToXyz.ts +13 -4
  255. package/src/convert/xyzToAdobe.ts +25 -0
  256. package/src/{utility → convert}/xyzToHunter.ts +14 -11
  257. package/src/{utility → convert}/xyzToLab.ts +14 -8
  258. package/src/{utility → convert}/xyzToLuv.ts +13 -11
  259. package/src/{utility → convert}/xyzToRgb.ts +12 -4
  260. package/src/{utility → convert}/xyzToYxy.ts +5 -4
  261. package/src/{utility → convert}/yxyToXyz.ts +5 -4
  262. package/src/{utility → delta}/deltaC.ts +12 -5
  263. package/src/{utility → delta}/deltaCmc.ts +14 -12
  264. package/src/{utility → delta}/deltaE00.ts +23 -20
  265. package/src/{utility → delta}/deltaE76.ts +12 -5
  266. package/src/{utility → delta}/deltaE94.ts +9 -10
  267. package/src/{utility → delta}/deltaH.ts +15 -9
  268. package/src/index.ts +47 -31
  269. package/src/names/bang.ts +476 -472
  270. package/src/names/cne.ts +848 -844
  271. package/src/names/crayola.ts +115 -111
  272. package/src/names/getName.ts +7 -6
  273. package/src/names/hollasch.ts +184 -180
  274. package/src/names/nbs.ts +271 -267
  275. package/src/names/ntc.ts +1524 -1520
  276. package/src/names/resene.ts +1336 -1332
  277. package/src/names/tcapi.ts +1845 -1841
  278. package/src/names/x11.ts +450 -446
  279. package/src/names/xkcd.ts +902 -898
  280. package/src/palette/analogous.ts +61 -0
  281. package/src/palette/analogousLch.ts +49 -0
  282. package/src/palette/complement.ts +65 -0
  283. package/src/palette/complementLch.ts +50 -0
  284. package/src/palette/splitComplement.ts +61 -0
  285. package/src/palette/splitComplementLch.ts +48 -0
  286. package/src/types/Adobe.ts +3 -0
  287. package/src/types/Cmy.ts +3 -0
  288. package/src/types/Cmyk.ts +4 -0
  289. package/src/types/Hsi.ts +20 -0
  290. package/src/types/Hsl.ts +4 -1
  291. package/src/types/Hsv.ts +4 -1
  292. package/src/types/Hunter.ts +3 -0
  293. package/src/types/Lab.ts +5 -2
  294. package/src/types/Lchab.ts +20 -0
  295. package/src/types/Lchuv.ts +20 -0
  296. package/src/types/Luv.ts +4 -1
  297. package/src/types/Rgb.ts +3 -0
  298. package/src/types/Xyz.ts +3 -0
  299. package/src/types/Yxy.ts +3 -0
  300. package/src/utility/StandardIlluminant.ts +40 -40
  301. package/src/utility/contrast.ts +5 -1
  302. package/src/utility/getReference.ts +42 -41
  303. package/src/utility/isWebSafe.ts +14 -0
  304. package/src/utility/relativeLuminance.ts +2 -2
  305. package/dist/types/Lch.d.ts +0 -16
  306. package/dist/types/Lch.d.ts.map +0 -1
  307. package/dist/types/Lch.js +0 -2
  308. package/dist/types/Lch.js.map +0 -1
  309. package/dist/utility/adobeToXyz.d.ts.map +0 -1
  310. package/dist/utility/adobeToXyz.js.map +0 -1
  311. package/dist/utility/cmyToCmyk.d.ts.map +0 -1
  312. package/dist/utility/cmyToCmyk.js.map +0 -1
  313. package/dist/utility/cmyToRgb.d.ts.map +0 -1
  314. package/dist/utility/cmyToRgb.js.map +0 -1
  315. package/dist/utility/cmykToCmy.d.ts.map +0 -1
  316. package/dist/utility/cmykToCmy.js.map +0 -1
  317. package/dist/utility/deltaC.d.ts.map +0 -1
  318. package/dist/utility/deltaCmc.d.ts.map +0 -1
  319. package/dist/utility/deltaCmc.js.map +0 -1
  320. package/dist/utility/deltaE00.d.ts.map +0 -1
  321. package/dist/utility/deltaE00.js.map +0 -1
  322. package/dist/utility/deltaE76.d.ts.map +0 -1
  323. package/dist/utility/deltaE94.d.ts.map +0 -1
  324. package/dist/utility/deltaE94.js.map +0 -1
  325. package/dist/utility/deltaH.d.ts.map +0 -1
  326. package/dist/utility/deltaH.js.map +0 -1
  327. package/dist/utility/hexToRgb.d.ts.map +0 -1
  328. package/dist/utility/hslToRgb.d.ts.map +0 -1
  329. package/dist/utility/hslToRgb.js.map +0 -1
  330. package/dist/utility/hsvToRgb.d.ts.map +0 -1
  331. package/dist/utility/hsvToRgb.js.map +0 -1
  332. package/dist/utility/hunterToXyz.d.ts.map +0 -1
  333. package/dist/utility/hunterToXyz.js.map +0 -1
  334. package/dist/utility/labToLch.d.ts +0 -11
  335. package/dist/utility/labToLch.d.ts.map +0 -1
  336. package/dist/utility/labToLch.js +0 -19
  337. package/dist/utility/labToLch.js.map +0 -1
  338. package/dist/utility/labToXyz.d.ts.map +0 -1
  339. package/dist/utility/labToXyz.js.map +0 -1
  340. package/dist/utility/lchToLab.d.ts +0 -11
  341. package/dist/utility/lchToLab.d.ts.map +0 -1
  342. package/dist/utility/lchToLab.js +0 -14
  343. package/dist/utility/lchToLab.js.map +0 -1
  344. package/dist/utility/luvToXyz.d.ts.map +0 -1
  345. package/dist/utility/luvToXyz.js.map +0 -1
  346. package/dist/utility/rgbToCmy.d.ts.map +0 -1
  347. package/dist/utility/rgbToCmy.js.map +0 -1
  348. package/dist/utility/rgbToHex.js.map +0 -1
  349. package/dist/utility/rgbToHsl.d.ts.map +0 -1
  350. package/dist/utility/rgbToHsl.js +0 -31
  351. package/dist/utility/rgbToHsl.js.map +0 -1
  352. package/dist/utility/rgbToHsv.d.ts.map +0 -1
  353. package/dist/utility/rgbToHsv.js.map +0 -1
  354. package/dist/utility/rgbToXyz.d.ts.map +0 -1
  355. package/dist/utility/rgbToXyz.js.map +0 -1
  356. package/dist/utility/xyzToAdobe.d.ts.map +0 -1
  357. package/dist/utility/xyzToAdobe.js.map +0 -1
  358. package/dist/utility/xyzToHunter.d.ts.map +0 -1
  359. package/dist/utility/xyzToHunter.js.map +0 -1
  360. package/dist/utility/xyzToLab.d.ts.map +0 -1
  361. package/dist/utility/xyzToLab.js.map +0 -1
  362. package/dist/utility/xyzToLuv.d.ts.map +0 -1
  363. package/dist/utility/xyzToLuv.js.map +0 -1
  364. package/dist/utility/xyzToRgb.d.ts.map +0 -1
  365. package/dist/utility/xyzToRgb.js.map +0 -1
  366. package/dist/utility/xyzToYxy.d.ts.map +0 -1
  367. package/dist/utility/xyzToYxy.js.map +0 -1
  368. package/dist/utility/yxyToXyz.d.ts.map +0 -1
  369. package/dist/utility/yxyToXyz.js.map +0 -1
  370. package/src/types/Lch.ts +0 -18
  371. package/src/utility/labToLch.ts +0 -24
  372. package/src/utility/lchToLab.ts +0 -18
  373. package/src/utility/rgbToHsl.ts +0 -38
  374. package/src/utility/xyzToAdobe.ts +0 -20
  375. /package/dist/{utility → convert}/cmyToRgb.js +0 -0
  376. /package/dist/{utility → convert}/hexToRgb.js +0 -0
  377. /package/dist/{utility → convert}/rgbToCmy.js +0 -0
  378. /package/dist/{utility → delta}/deltaC.js +0 -0
  379. /package/dist/{utility → delta}/deltaE76.js +0 -0
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Travis Martin
3
+ Copyright (c) 2026 Travis Martin
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -6,5 +6,5 @@ import type Xyz from "../types/Xyz.js";
6
6
  * @returns A CIEXYZ color.
7
7
  * @public
8
8
  */
9
- export default function adobeToXyz(color: Adobe): Xyz;
9
+ export default function adobeToXyz(color: Readonly<Adobe>): [number, number, number] & Xyz;
10
10
  //# sourceMappingURL=adobeToXyz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adobeToXyz.d.ts","sourceRoot":"","sources":["../../src/convert/adobeToXyz.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAMvC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CACjC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GACpB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAUhC"}
@@ -1,3 +1,5 @@
1
+ const gamma = 0x233 / 0x100; // https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf
2
+ const f = 100 / 0xff ** gamma; // `(x / 0xff) ** gamma * 100)` is equivalent to `x ** gamma * f`.
1
3
  /**
2
4
  * Convert the given Adobe RGB color to a CIEXYZ color. Based on the EasyRGB pseudo-code.
3
5
  * @param color - The Adobe RGB color.
@@ -5,9 +7,9 @@
5
7
  * @public
6
8
  */
7
9
  export default function adobeToXyz(color) {
8
- const i0 = color[0] ** 2.19921875 * 0.00050991; // `(x / 0xff) ** 2.19921875 * 100`
9
- const i1 = color[1] ** 2.19921875 * 0.00050991; // `(x / 0xff) ** 2.19921875 * 100`
10
- const i2 = color[2] ** 2.19921875 * 0.00050991; // `(x / 0xff) ** 2.19921875 * 100`
10
+ const i0 = color[0] ** gamma * f;
11
+ const i1 = color[1] ** gamma * f;
12
+ const i2 = color[2] ** gamma * f;
11
13
  return [
12
14
  i0 * 0.57667 + i1 * 0.18555 + i2 * 0.18819,
13
15
  i0 * 0.29738 + i1 * 0.62735 + i2 * 0.07527,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adobeToXyz.js","sourceRoot":"","sources":["../../src/convert/adobeToXyz.ts"],"names":[],"mappings":"AAGA,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,0DAA0D;AAEvF,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,kEAAkE;AAEjG;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CACjC,KAAsB;IAEtB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEjC,OAAO;QACN,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,OAAO;QAC1C,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,OAAO;QAC1C,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,MAAM;KACzC,CAAC;AACH,CAAC"}
@@ -6,5 +6,5 @@ import type Cmyk from "../types/Cmyk.js";
6
6
  * @returns A CMYK color.
7
7
  * @public
8
8
  */
9
- export default function cmyToCmyk(color: Cmy): Cmyk;
9
+ export default function cmyToCmyk(color: Readonly<Cmy>): [number, number, number, number] & Cmyk;
10
10
  //# sourceMappingURL=cmyToCmyk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmyToCmyk.d.ts","sourceRoot":"","sources":["../../src/convert/cmyToCmyk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAChC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,GAClB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAYzC"}
@@ -5,11 +5,8 @@
5
5
  * @public
6
6
  */
7
7
  export default function cmyToCmyk(color) {
8
- // eslint-disable-next-line prefer-destructuring
9
8
  const c = color[0];
10
- // eslint-disable-next-line prefer-destructuring
11
9
  const m = color[1];
12
- // eslint-disable-next-line prefer-destructuring
13
10
  const y = color[2];
14
11
  const k = Math.min(c, m, y, 1);
15
12
  return k === 1 ?
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmyToCmyk.js","sourceRoot":"","sources":["../../src/convert/cmyToCmyk.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAChC,KAAoB;IAEpB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACb,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC"}
@@ -6,5 +6,5 @@ import type Rgb from "../types/Rgb.js";
6
6
  * @returns An sRGB color.
7
7
  * @public
8
8
  */
9
- export default function cmyToRgb(color: Cmy): Rgb;
9
+ export default function cmyToRgb(color: Readonly<Cmy>): [number, number, number] & Rgb;
10
10
  //# sourceMappingURL=cmyToRgb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmyToRgb.d.ts","sourceRoot":"","sources":["../../src/convert/cmyToRgb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,GAClB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAEhC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmyToRgb.js","sourceRoot":"","sources":["../../src/convert/cmyToRgb.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAoB;IAEpB,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9E,CAAC"}
@@ -6,5 +6,5 @@ import type Cmyk from "../types/Cmyk.js";
6
6
  * @returns A CMY color.
7
7
  * @public
8
8
  */
9
- export default function cmykToCmy(color: Cmyk): Cmy;
9
+ export default function cmykToCmy(color: Readonly<Cmyk>): [number, number, number] & Cmy;
10
10
  //# sourceMappingURL=cmykToCmy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmykToCmy.d.ts","sourceRoot":"","sources":["../../src/convert/cmykToCmy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAChC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,GACnB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAQhC"}
@@ -5,7 +5,6 @@
5
5
  * @public
6
6
  */
7
7
  export default function cmykToCmy(color) {
8
- // eslint-disable-next-line prefer-destructuring
9
8
  const k = color[3];
10
9
  return [
11
10
  color[0] * (1 - k) + k,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmykToCmy.js","sourceRoot":"","sources":["../../src/convert/cmykToCmy.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAChC,KAAqB;IAErB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,OAAO;QACN,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;QACtB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;QACtB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;KACtB,CAAC;AACH,CAAC"}
@@ -5,5 +5,5 @@ import type Rgb from "../types/Rgb.js";
5
5
  * @returns An sRGB color.
6
6
  * @public
7
7
  */
8
- export default function hexToRgb(hex: number): Rgb;
8
+ export default function hexToRgb(hex: number): [number, number, number] & Rgb;
9
9
  //# sourceMappingURL=hexToRgb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hexToRgb.d.ts","sourceRoot":"","sources":["../../src/convert/hexToRgb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAE5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"hexToRgb.js","sourceRoot":"","sources":["../../src/utility/hexToRgb.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAW;IAC3C,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"hexToRgb.js","sourceRoot":"","sources":["../../src/convert/hexToRgb.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAW;IAC3C,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;AAC5D,CAAC"}
@@ -6,5 +6,5 @@ import type Rgb from "../types/Rgb.js";
6
6
  * @returns An sRGB color.
7
7
  * @public
8
8
  */
9
- export default function hslToRgb(color: Hsl): Rgb;
9
+ export default function hslToRgb(color: Readonly<Hsl>): [number, number, number] & Rgb;
10
10
  //# sourceMappingURL=hslToRgb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hslToRgb.d.ts","sourceRoot":"","sources":["../../src/convert/hslToRgb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AA4BvC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,GAClB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAqBhC"}
@@ -1,3 +1,5 @@
1
+ const c0 = 2 / 3;
2
+ const c1 = 1 / 3;
1
3
  /**
2
4
  * Converts the given hue data to RGB data.
3
5
  * @param v0 - The first piecewise value.
@@ -14,7 +16,7 @@ const hueToRgb = (v0, v1, h) => {
14
16
  const i2 = v1 - v0;
15
17
  return (i1 < 1 ? v0 + i2 * i1
16
18
  : 2 * i0 < 1 ? v1
17
- : 3 * i0 < 2 ? v0 + i2 * (2 / 3 - i0) * 6
19
+ : 3 * i0 < 2 ? v0 + i2 * (c0 - i0) * 6
18
20
  : v0);
19
21
  };
20
22
  /**
@@ -24,11 +26,8 @@ const hueToRgb = (v0, v1, h) => {
24
26
  * @public
25
27
  */
26
28
  export default function hslToRgb(color) {
27
- // eslint-disable-next-line prefer-destructuring
28
29
  const h = color[0];
29
- // eslint-disable-next-line prefer-destructuring
30
30
  const s = color[1];
31
- // eslint-disable-next-line prefer-destructuring
32
31
  const l = color[2];
33
32
  const i0 = l * 0xff;
34
33
  if (s === 0) {
@@ -37,9 +36,9 @@ export default function hslToRgb(color) {
37
36
  const i1 = l < 0.5 ? l * (1 + s) : l + s - s * l;
38
37
  const i2 = 2 * l - i1;
39
38
  return [
40
- 0xff * hueToRgb(i2, i1, h + 1 / 3),
39
+ 0xff * hueToRgb(i2, i1, h + c1),
41
40
  0xff * hueToRgb(i2, i1, h),
42
- 0xff * hueToRgb(i2, i1, h - 1 / 3)
41
+ 0xff * hueToRgb(i2, i1, h - c1)
43
42
  ];
44
43
  }
45
44
  //# sourceMappingURL=hslToRgb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hslToRgb.js","sourceRoot":"","sources":["../../src/convert/hslToRgb.ts"],"names":[],"mappings":"AAGA,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAEjB;;;;;;;GAOG;AACH,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAU,EAAE,CAAS,EAAU,EAAE;IAC9D,MAAM,EAAE,GACP,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACb,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YACf,CAAC,CAAC,CAAC,CAAC;IACL,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,OAAO,CACN,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;QACrB,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YACjB,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;gBACtC,CAAC,CAAC,EAAE,CACJ,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAoB;IAEpB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAEpB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAEtB,OAAO;QACN,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;KAC/B,CAAC;AACH,CAAC"}
@@ -6,5 +6,5 @@ import type Rgb from "../types/Rgb.js";
6
6
  * @returns An sRGB color.
7
7
  * @public
8
8
  */
9
- export default function hsvToRgb(color: Hsv): Rgb;
9
+ export default function hsvToRgb(color: Readonly<Hsv>): [number, number, number] & Rgb;
10
10
  //# sourceMappingURL=hsvToRgb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hsvToRgb.d.ts","sourceRoot":"","sources":["../../src/convert/hsvToRgb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,GAClB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAqChC"}
@@ -5,9 +5,7 @@
5
5
  * @public
6
6
  */
7
7
  export default function hsvToRgb(color) {
8
- // eslint-disable-next-line prefer-destructuring
9
8
  const s = color[1];
10
- // eslint-disable-next-line prefer-destructuring
11
9
  const v = color[2];
12
10
  const i0 = v * 0xff;
13
11
  if (s === 0) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hsvToRgb.js","sourceRoot":"","sources":["../../src/convert/hsvToRgb.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAoB;IAEpB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAEpB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACzC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IAE9B,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACd,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACd,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACd,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;IAEnC,OAAO,CACN,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QACvB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CACd,CAAC;AACH,CAAC"}
@@ -7,5 +7,5 @@ import type Xyz from "../types/Xyz.js";
7
7
  * @returns A CIEXYZ color.
8
8
  * @public
9
9
  */
10
- export default function hunterToXyz(color: Hunter, ref?: Xyz): Xyz;
10
+ export default function hunterToXyz(color: Readonly<Hunter>, ref?: Readonly<Xyz>): [number, number, number] & Xyz;
11
11
  //# sourceMappingURL=hunterToXyz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hunterToXyz.d.ts","sourceRoot":"","sources":["../../src/convert/hunterToXyz.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAQvC;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAClC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,GAAG,GAAE,QAAQ,CAAC,GAAG,CAA0C,GACzD,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAgBhC"}
@@ -1,5 +1,7 @@
1
- import StandardIlluminant from "./StandardIlluminant.js";
2
- import getReference from "./getReference.js";
1
+ import getReference from "../utility/getReference.js";
2
+ import StandardIlluminant from "../utility/StandardIlluminant.js";
3
+ const c0 = 175 / 198.04;
4
+ const c1 = 70 / 218.11;
3
5
  /**
4
6
  * Convert the given Hunter Lab color to a CIEXYZ color. Based on the EasyRGB pseudo-code.
5
7
  * @param color - The Hunter Lab color.
@@ -8,19 +10,16 @@ import getReference from "./getReference.js";
8
10
  * @public
9
11
  */
10
12
  export default function hunterToXyz(color, ref = getReference(StandardIlluminant.D65_2)) {
11
- // eslint-disable-next-line prefer-destructuring
12
13
  const rx = ref[0];
13
- // eslint-disable-next-line prefer-destructuring
14
14
  const ry = ref[1];
15
- // eslint-disable-next-line prefer-destructuring
16
15
  const rz = ref[2];
17
16
  const y = (color[0] / ry) ** 2 * 100;
18
17
  const i0 = y / ry;
19
18
  const i1 = Math.sqrt(i0);
20
19
  return [
21
- ((color[1] / (0.88365987 * (ry + rx))) * i1 + i0) * rx, // `175 / 198.04`
20
+ ((color[1] / (c0 * (ry + rx))) * i1 + i0) * rx,
22
21
  y,
23
- -((color[2] / (0.32093898 * (ry + rz))) * i1 - i0) * rz // `70 / 218.11`
22
+ -((color[2] / (c1 * (ry + rz))) * i1 - i0) * rz
24
23
  ];
25
24
  }
26
25
  //# sourceMappingURL=hunterToXyz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hunterToXyz.js","sourceRoot":"","sources":["../../src/convert/hunterToXyz.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,kBAAkB,MAAM,kCAAkC,CAAC;AAElE,MAAM,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC;AACxB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;AAEvB;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAClC,KAAuB,EACvB,MAAqB,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC;IAE3D,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAElB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAElB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAElB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEzB,OAAO;QACN,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE;QAC9C,CAAC;QACD,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE;KAC/C,CAAC;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type Lab from "../types/Lab.js";
2
+ import type Lchab from "../types/Lchab.js";
3
+ import type Lchuv from "../types/Lchuv.js";
4
+ import type Luv from "../types/Luv.js";
5
+ /**
6
+ * Convert the given CIELAB color to a CIELCh(ab) color. Based on the EasyRGB pseudo-code.
7
+ * @param color - The CIELAB color.
8
+ * @returns A CIELCh color.
9
+ * @public
10
+ */
11
+ export default function labToLch(color: Readonly<Lab>): [number, number, number] & Lchab;
12
+ /**
13
+ * Convert the given CIELUV color to a CIELCh(uv) color. Based on the EasyRGB pseudo-code.
14
+ * @param color - The CIELUV color.
15
+ * @returns A CIELCh color.
16
+ * @public
17
+ */
18
+ export default function labToLch(color: Readonly<Luv>): [number, number, number] & Lchuv;
19
+ //# sourceMappingURL=labToLch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labToLch.d.ts","sourceRoot":"","sources":["../../src/convert/labToLch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAIvC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,GAClB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;AACpC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,GAClB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC"}
@@ -0,0 +1,12 @@
1
+ const c0 = 180 / Math.PI;
2
+ export default function labToLch(color) {
3
+ const a = color[1];
4
+ const b = color[2];
5
+ const i0 = Math.atan2(b, a);
6
+ return [
7
+ color[0],
8
+ Math.hypot(a, b),
9
+ i0 > 0 ? i0 * c0 : 360 - Math.abs(i0) * c0
10
+ ];
11
+ }
12
+ //# sourceMappingURL=labToLch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labToLch.js","sourceRoot":"","sources":["../../src/convert/labToLch.ts"],"names":[],"mappings":"AAKA,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAoBzB,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAA0B;IAE1B,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,OAAO;QACN,KAAK,CAAC,CAAC,CAAC;QACR,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE;KAC1C,CAAC;AACH,CAAC"}
@@ -7,5 +7,5 @@ import type Xyz from "../types/Xyz.js";
7
7
  * @returns A CIEXYZ color.
8
8
  * @public
9
9
  */
10
- export default function labToXyz(color: Lab, ref?: Xyz): Xyz;
10
+ export default function labToXyz(color: Readonly<Lab>, ref?: Readonly<Xyz>): [number, number, number] & Xyz;
11
11
  //# sourceMappingURL=labToXyz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labToXyz.d.ts","sourceRoot":"","sources":["../../src/convert/labToXyz.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AASvC;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EACpB,GAAG,GAAE,QAAQ,CAAC,GAAG,CAA0C,GACzD,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAahC"}
@@ -1,5 +1,8 @@
1
- import StandardIlluminant from "./StandardIlluminant.js";
2
- import getReference from "./getReference.js";
1
+ import getReference from "../utility/getReference.js";
2
+ import StandardIlluminant from "../utility/StandardIlluminant.js";
3
+ const c0 = 0.008856;
4
+ const c1 = 16 / 116;
5
+ const c2 = 7.787;
3
6
  /**
4
7
  * Convert the given CIELAB color to a CIEXYZ color. Based on the EasyRGB pseudo-code.
5
8
  * @param color - The CIELAB color.
@@ -15,9 +18,9 @@ export default function labToXyz(color, ref = getReference(StandardIlluminant.D6
15
18
  const i4 = i0 - color[2] / 200;
16
19
  const i5 = i4 ** 3;
17
20
  return [
18
- (i3 > 0.008856 ? i3 : (i2 - 0.13793103) / 7.787) * ref[0], // `16 / 116`
19
- (i1 > 0.008856 ? i1 : (i0 - 0.13793103) / 7.787) * ref[1], // `16 / 116`
20
- (i5 > 0.008856 ? i5 : (i4 - 0.13793103) / 7.787) * ref[2] // `16 / 116`
21
+ (i3 > c0 ? i3 : (i2 - c1) / c2) * ref[0],
22
+ (i1 > c0 ? i1 : (i0 - c1) / c2) * ref[1],
23
+ (i5 > c0 ? i5 : (i4 - c1) / c2) * ref[2]
21
24
  ];
22
25
  }
23
26
  //# sourceMappingURL=labToXyz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labToXyz.js","sourceRoot":"","sources":["../../src/convert/labToXyz.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,kBAAkB,MAAM,kCAAkC,CAAC;AAElE,MAAM,EAAE,GAAG,QAAQ,CAAC;AACpB,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;AACpB,MAAM,EAAE,GAAG,KAAK,CAAC;AAEjB;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAoB,EACpB,MAAqB,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC;IAE3D,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;IACjC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;IAC/B,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC/B,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAEnB,OAAO;QACN,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACxC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACxC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;KACxC,CAAC;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type Lab from "../types/Lab.js";
2
+ import type Lchab from "../types/Lchab.js";
3
+ import type Lchuv from "../types/Lchuv.js";
4
+ import type Luv from "../types/Luv.js";
5
+ /**
6
+ * Convert the given CIELCh(ab) color to a CIELAB color. Based on the EasyRGB pseudo-code.
7
+ * @param color - The CIELCh color.
8
+ * @returns A CIELAB color.
9
+ * @public
10
+ */
11
+ export default function lchToLab(color: Readonly<Lchab>): [number, number, number] & Lab;
12
+ /**
13
+ * Convert the given CIELCh(uv) color to a CIELUV color. Based on the EasyRGB pseudo-code.
14
+ * @param color - The CIELCh color.
15
+ * @returns A CIELUV color.
16
+ * @public
17
+ */
18
+ export default function lchToLab(color: Readonly<Lchuv>): [number, number, number] & Luv;
19
+ //# sourceMappingURL=lchToLab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lchToLab.d.ts","sourceRoot":"","sources":["../../src/convert/lchToLab.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAIvC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GACpB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC;AAClC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GACpB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC"}
@@ -0,0 +1,7 @@
1
+ const c0 = Math.PI / 180;
2
+ export default function lchToLab(color) {
3
+ const c = color[1];
4
+ const h = color[2];
5
+ return [color[0], Math.cos(h * c0) * c, Math.sin(h * c0) * c];
6
+ }
7
+ //# sourceMappingURL=lchToLab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lchToLab.js","sourceRoot":"","sources":["../../src/convert/lchToLab.ts"],"names":[],"mappings":"AAKA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AAoBzB,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAA8B;IAE9B,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -7,5 +7,5 @@ import type Xyz from "../types/Xyz.js";
7
7
  * @returns A CIEXYZ color.
8
8
  * @public
9
9
  */
10
- export default function luvToXyz(color: Luv, ref?: Xyz): Xyz;
10
+ export default function luvToXyz(color: Readonly<Luv>, ref?: Readonly<Xyz>): [number, number, number] & Xyz;
11
11
  //# sourceMappingURL=luvToXyz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"luvToXyz.d.ts","sourceRoot":"","sources":["../../src/convert/luvToXyz.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAOvC;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EACpB,GAAG,GAAE,QAAQ,CAAC,GAAG,CAA0C,GACzD,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAkBhC"}
@@ -1,5 +1,6 @@
1
- import StandardIlluminant from "./StandardIlluminant.js";
2
- import getReference from "./getReference.js";
1
+ import getReference from "../utility/getReference.js";
2
+ import StandardIlluminant from "../utility/StandardIlluminant.js";
3
+ const c0 = 16 / 116;
3
4
  /**
4
5
  * Convert the given CIELUV color to a CIEXYZ color. Based on the EasyRGB pseudo-code.
5
6
  * @param color - The CIELUV color.
@@ -8,11 +9,8 @@ import getReference from "./getReference.js";
8
9
  * @public
9
10
  */
10
11
  export default function luvToXyz(color, ref = getReference(StandardIlluminant.D65_2)) {
11
- // eslint-disable-next-line prefer-destructuring
12
12
  const l = color[0];
13
- // eslint-disable-next-line prefer-destructuring
14
13
  const rx = ref[0];
15
- // eslint-disable-next-line prefer-destructuring
16
14
  const ry = ref[1];
17
15
  const i0 = (l + 16) / 116;
18
16
  const i1 = i0 ** 3;
@@ -20,7 +18,7 @@ export default function luvToXyz(color, ref = getReference(StandardIlluminant.D6
20
18
  const i3 = rx + 15 * ry + 3 * ref[2];
21
19
  const i4 = color[1] / i2 + (4 * rx) / i3;
22
20
  const i5 = color[2] / i2 + (9 * ry) / i3;
23
- const y = (i1 > 0.008856 ? i1 : (i0 - 0.13793103) / 7.787) * 100; // `16 / 166`
21
+ const y = (i1 > 0.008856 ? i1 : (i0 - c0) / 7.787) * 100; // `16 / 166`
24
22
  const i6 = 9 * y;
25
23
  const x = -(i6 * i4) / ((i4 - 4) * i5 - i4 * i5);
26
24
  return [x, y, (i6 - 15 * i5 * y - i5 * x) / (3 * i5)];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"luvToXyz.js","sourceRoot":"","sources":["../../src/convert/luvToXyz.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,kBAAkB,MAAM,kCAAkC,CAAC;AAElE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;AAEpB;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAoB,EACpB,MAAqB,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC;IAE3D,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAElB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAElB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;IAC1B,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,aAAa;IACvE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAEjD,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC"}
@@ -6,5 +6,5 @@ import type Rgb from "../types/Rgb.js";
6
6
  * @returns A CMY color.
7
7
  * @public
8
8
  */
9
- export default function rgbToCmy(color: Rgb): Cmy;
9
+ export default function rgbToCmy(color: Readonly<Rgb>): [number, number, number] & Cmy;
10
10
  //# sourceMappingURL=rgbToCmy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbToCmy.d.ts","sourceRoot":"","sources":["../../src/convert/rgbToCmy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,GAClB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAEhC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbToCmy.js","sourceRoot":"","sources":["../../src/convert/rgbToCmy.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAoB;IAEpB,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACxE,CAAC"}
@@ -5,5 +5,5 @@ import type Rgb from "../types/Rgb.js";
5
5
  * @returns The numerical hexadecimal representation of the color.
6
6
  * @public
7
7
  */
8
- export default function rgbToHex(rgb: Rgb): number;
8
+ export default function rgbToHex(rgb: Readonly<Rgb>): number;
9
9
  //# sourceMappingURL=rgbToHex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rgbToHex.d.ts","sourceRoot":"","sources":["../../src/utility/rgbToHex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAEjD"}
1
+ {"version":3,"file":"rgbToHex.d.ts","sourceRoot":"","sources":["../../src/convert/rgbToHex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAM3D"}
@@ -5,6 +5,8 @@
5
5
  * @public
6
6
  */
7
7
  export default function rgbToHex(rgb) {
8
- return rgb[0] * 0x10000 + rgb[1] * 0x100 + rgb[2];
8
+ return (Math.round(rgb[0] * 0x10000) +
9
+ Math.round(rgb[1] * 0x100) +
10
+ Math.round(rgb[2]));
9
11
  }
10
12
  //# sourceMappingURL=rgbToHex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbToHex.js","sourceRoot":"","sources":["../../src/convert/rgbToHex.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAkB;IAClD,OAAO,CACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type Hsi from "../types/Hsi.js";
2
+ import type Rgb from "../types/Rgb.js";
3
+ /**
4
+ * Convert the given sRGB color to an HSI color.
5
+ * @param color - The sRGB color.
6
+ * @returns An HSI color.
7
+ * @public
8
+ */
9
+ export default function rgbToHsi(color: Readonly<Rgb>): [number, number, number] & Hsi;
10
+ //# sourceMappingURL=rgbToHsi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbToHsi.d.ts","sourceRoot":"","sources":["../../src/convert/rgbToHsi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAKvC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,GAClB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CA8BhC"}
@@ -0,0 +1,36 @@
1
+ const c0 = 1 / 3;
2
+ const c1 = 2 / 3;
3
+ /**
4
+ * Convert the given sRGB color to an HSI color.
5
+ * @param color - The sRGB color.
6
+ * @returns An HSI color.
7
+ * @public
8
+ */
9
+ export default function rgbToHsi(color) {
10
+ const i0 = color[0] / 0xff;
11
+ const i1 = color[1] / 0xff;
12
+ const i2 = color[2] / 0xff;
13
+ const i = (i0 + i1 + i2) / 3;
14
+ const v = Math.max(i0, i1, i2);
15
+ const m = Math.min(i0, i1, i2);
16
+ const c = v - m;
17
+ if (c === 0) {
18
+ return [0, 0, i];
19
+ }
20
+ const i4 = c / 2;
21
+ const i5 = ((v - i0) / 6 + i4) / c;
22
+ const i6 = ((v - i1) / 6 + i4) / c;
23
+ const i7 = ((v - i2) / 6 + i4) / c;
24
+ const i8 = i0 === v ? i7 - i6
25
+ : i1 === v ? c0 + i5 - i7
26
+ : i2 === v ? c1 + i6 - i5
27
+ : 0;
28
+ return [
29
+ i8 < 0 ? i8 + 1
30
+ : i8 > 1 ? i8 - 1
31
+ : i8,
32
+ i === 0 ? 0 : 1 - m / i,
33
+ i
34
+ ];
35
+ }
36
+ //# sourceMappingURL=rgbToHsi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbToHsi.js","sourceRoot":"","sources":["../../src/convert/rgbToHsi.ts"],"names":[],"mappings":"AAGA,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAEjB;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAoB;IAEpB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEhB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,EAAE,GACP,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;QAClB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;YACzB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;gBACzB,CAAC,CAAC,CAAC,CAAC;IAEL,OAAO;QACN,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;YACf,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;gBACjB,CAAC,CAAC,EAAE;QACJ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACvB,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -6,5 +6,5 @@ import type Rgb from "../types/Rgb.js";
6
6
  * @returns An HSL color.
7
7
  * @public
8
8
  */
9
- export default function rgbToHsl(color: Rgb): Hsl;
9
+ export default function rgbToHsl(color: Readonly<Rgb>): [number, number, number] & Hsl;
10
10
  //# sourceMappingURL=rgbToHsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbToHsl.d.ts","sourceRoot":"","sources":["../../src/convert/rgbToHsl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAKvC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,GAClB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CA+BhC"}
@@ -0,0 +1,37 @@
1
+ const c0 = 1 / 3;
2
+ const c1 = 2 / 3;
3
+ /**
4
+ * Convert the given sRGB color to an HSL color. Based on the EasyRGB pseudo-code.
5
+ * @param color - The sRGB color.
6
+ * @returns An HSL color.
7
+ * @public
8
+ */
9
+ export default function rgbToHsl(color) {
10
+ const i0 = color[0] / 0xff;
11
+ const i1 = color[1] / 0xff;
12
+ const i2 = color[2] / 0xff;
13
+ const i3 = Math.min(i0, i1, i2);
14
+ const i4 = Math.max(i0, i1, i2);
15
+ const i5 = i4 + i3;
16
+ const l = i5 / 2;
17
+ const i6 = i4 - i3;
18
+ if (i6 === 0) {
19
+ return [0, 0, l];
20
+ }
21
+ const i7 = i6 / 2;
22
+ const i8 = ((i4 - i0) / 6 + i7) / i6;
23
+ const i9 = ((i4 - i1) / 6 + i7) / i6;
24
+ const i10 = ((i4 - i2) / 6 + i7) / i6;
25
+ const i11 = i0 === i4 ? i10 - i9
26
+ : i1 === i4 ? c0 + i8 - i10
27
+ : i2 === i4 ? c1 + i9 - i8
28
+ : 0;
29
+ return [
30
+ i11 < 0 ? i11 + 1
31
+ : i11 > 1 ? i11 - 1
32
+ : i11,
33
+ l < 0.5 ? i6 / i5 : i6 / (2 - i4 - i3),
34
+ l
35
+ ];
36
+ }
37
+ //# sourceMappingURL=rgbToHsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbToHsl.js","sourceRoot":"","sources":["../../src/convert/rgbToHsl.ts"],"names":[],"mappings":"AAGA,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAEjB;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC/B,KAAoB;IAEpB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAEnB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACd,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,GAAG,GACR,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;QACpB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG;YAC3B,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;gBAC1B,CAAC,CAAC,CAAC,CAAC;IAEL,OAAO;QACN,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACjB,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBACnB,CAAC,CAAC,GAAG;QACL,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QACtC,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -6,5 +6,5 @@ import type Rgb from "../types/Rgb.js";
6
6
  * @returns An HSV color.
7
7
  * @public
8
8
  */
9
- export default function rgbToHsv(color: Rgb): Hsv;
9
+ export default function rgbToHsv(color: Readonly<Rgb>): [number, number, number] & Hsv;
10
10
  //# sourceMappingURL=rgbToHsv.d.ts.map