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.
- package/NOTICE.md +32 -4
- package/README.md +240 -91
- package/dist/conversions/hex.d.ts +1 -1
- package/dist/conversions/hex.d.ts.map +1 -1
- package/dist/conversions/hex.js +2 -2
- package/dist/conversions/hex.js.map +1 -1
- package/dist/conversions/hsl.d.ts +1 -1
- package/dist/conversions/hsl.d.ts.map +1 -1
- package/dist/conversions/hsl.js +2 -2
- package/dist/conversions/hsl.js.map +1 -1
- package/dist/conversions/hsv.d.ts +1 -1
- package/dist/conversions/hsv.d.ts.map +1 -1
- package/dist/conversions/hsv.js +2 -2
- package/dist/conversions/hsv.js.map +1 -1
- package/dist/conversions/index.d.ts +5 -5
- package/dist/conversions/index.d.ts.map +1 -1
- package/dist/conversions/index.js +5 -5
- package/dist/conversions/index.js.map +1 -1
- package/dist/conversions/pantone.d.ts +9 -7
- package/dist/conversions/pantone.d.ts.map +1 -1
- package/dist/conversions/pantone.js +11 -10
- package/dist/conversions/pantone.js.map +1 -1
- package/dist/conversions/rgb.d.ts +1 -1
- package/dist/conversions/rgb.d.ts.map +1 -1
- package/dist/conversions/rgb.js +1 -1
- package/dist/conversions/rgb.js.map +1 -1
- package/dist/convert.d.ts +45 -5
- package/dist/convert.d.ts.map +1 -1
- package/dist/convert.js +68 -17
- package/dist/convert.js.map +1 -1
- package/dist/detectFormat.d.ts +1 -1
- package/dist/detectFormat.d.ts.map +1 -1
- package/dist/detectFormat.js +2 -6
- package/dist/detectFormat.js.map +1 -1
- package/dist/identify.d.ts +13 -16
- package/dist/identify.d.ts.map +1 -1
- package/dist/identify.js +12 -12
- package/dist/identify.js.map +1 -1
- package/dist/index.d.ts +14 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -13
- package/dist/index.js.map +1 -1
- package/dist/indexing.d.ts +30 -24
- package/dist/indexing.d.ts.map +1 -1
- package/dist/indexing.js +49 -22
- package/dist/indexing.js.map +1 -1
- package/dist/math/clamp.d.ts.map +1 -1
- package/dist/math/clamp.js.map +1 -1
- package/dist/math/colorSpace.d.ts +1 -1
- package/dist/math/colorSpace.d.ts.map +1 -1
- package/dist/math/colorSpace.js.map +1 -1
- package/dist/math/deltaE.d.ts.map +1 -1
- package/dist/math/deltaE.js.map +1 -1
- package/dist/math/euclideanDistance.d.ts +1 -1
- package/dist/math/euclideanDistance.d.ts.map +1 -1
- package/dist/math/euclideanDistance.js.map +1 -1
- package/dist/math/hueSector.d.ts.map +1 -1
- package/dist/math/hueSector.js.map +1 -1
- package/dist/palettes/index.d.ts +4 -0
- package/dist/palettes/index.d.ts.map +1 -0
- package/dist/palettes/index.js +4 -0
- package/dist/palettes/index.js.map +1 -0
- package/dist/palettes/normalize.d.ts +17 -0
- package/dist/palettes/normalize.d.ts.map +1 -0
- package/dist/palettes/normalize.js +19 -0
- package/dist/palettes/normalize.js.map +1 -0
- package/dist/palettes/pantone.d.ts +1834 -0
- package/dist/palettes/pantone.d.ts.map +1 -0
- package/dist/palettes/pantone.js +925 -0
- package/dist/palettes/pantone.js.map +1 -0
- package/dist/palettes/web.d.ts +320 -0
- package/dist/palettes/web.d.ts.map +1 -0
- package/dist/{colorspaces → palettes}/web.js +18 -3
- package/dist/palettes/web.js.map +1 -0
- package/dist/palettes/x11.d.ts +1346 -0
- package/dist/palettes/x11.d.ts.map +1 -0
- package/dist/palettes/x11.js +686 -0
- package/dist/palettes/x11.js.map +1 -0
- package/dist/resolve.d.ts +9 -7
- package/dist/resolve.d.ts.map +1 -1
- package/dist/resolve.js +18 -17
- package/dist/resolve.js.map +1 -1
- package/dist/types.d.ts +10 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -1
- package/dist/types.js.map +1 -1
- package/package.json +32 -18
- package/dist/colorspaces/index.d.ts +0 -4
- package/dist/colorspaces/index.d.ts.map +0 -1
- package/dist/colorspaces/index.js +0 -4
- package/dist/colorspaces/index.js.map +0 -1
- package/dist/colorspaces/pantone.d.ts +0 -919
- package/dist/colorspaces/pantone.d.ts.map +0 -1
- package/dist/colorspaces/pantone.js +0 -918
- package/dist/colorspaces/pantone.js.map +0 -1
- package/dist/colorspaces/registry.d.ts +0 -26
- package/dist/colorspaces/registry.d.ts.map +0 -1
- package/dist/colorspaces/registry.js +0 -36
- package/dist/colorspaces/registry.js.map +0 -1
- package/dist/colorspaces/web.d.ts +0 -156
- package/dist/colorspaces/web.d.ts.map +0 -1
- package/dist/colorspaces/web.js.map +0 -1
- package/dist/colorspaces/x11.d.ts +0 -667
- package/dist/colorspaces/x11.d.ts.map +0 -1
- package/dist/colorspaces/x11.js +0 -666
- package/dist/colorspaces/x11.js.map +0 -1
package/dist/math/deltaE.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deltaE.js","sourceRoot":"","sources":["../../src/math/deltaE.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deltaE.js","sourceRoot":"","sources":["../../src/math/deltaE.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,CAAM,EAAE,CAAM;IAC5C,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAM,EAAE,CAAM;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,CAAM,EAAE,CAAM;IACrC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACxC,8DAA8D;IAC9D,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAElC,MAAM,EAAE,GAAG,KAAK,CAAC;IACjB,MAAM,EAAE,GAAG,KAAK,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC,CAAC;IACb,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;IAEvB,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;IACtB,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAEtC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,6EAA6E;AAE7E,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AAC1B,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;AAE1B,SAAS,MAAM,CAAC,CAAS,EAAE,CAAS;IAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAC9C,CAAC;AAED;;;;;;;;GAQG;AACH,4EAA4E;AAC5E,MAAM,QAAQ,GAAG,UAAU,CAAC;AAE5B,wEAAwE;AACxE,yCAAyC;AACzC,SAAS,IAAI,CAAC,CAAS;IACrB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC;IAC/D,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhB,mEAAmE;IACnE,qEAAqE;IACrE,2DAA2D;IAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzB,+CAA+C;IAC/C,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAEzB,yBAAyB;IACzB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAE5B,eAAe;IACf,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;IACpB,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAEtB,IAAI,GAAW,CAAC;IAChB,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;QACpB,GAAG,GAAG,CAAC,CAAC;IACV,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACtB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG;YAAE,GAAG,GAAG,GAAG,CAAC;aAC/B,IAAI,GAAG,GAAG,GAAG;YAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;;YAC/B,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjE,SAAS;IACT,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9B,IAAI,KAAa,CAAC;IAClB,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;QACpB,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;IACpB,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QACtC,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;SAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;QAC3B,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,wBAAwB;IACxB,MAAM,OAAO,GAAG,KAAK,GAAG,GAAG,CAAC;IAC5B,MAAM,CAAC,GACL,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC;QACnC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC;QACtC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IAEzC,4CAA4C;IAC5C,MAAM,aAAa,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,aAAa,CAAC,CAAC;IACvE,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;IAEjC,8DAA8D;IAC9D,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;IACvD,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IAE5C,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAE9B,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,CAAM,EAAE,CAAM;IAC5C,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAM,EAAE,CAAM;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["/**\n * Color-difference metrics. Inputs are `Lab` triples (L, a, b). The\n * CIELAB family (ΔE*76 / ΔE*94 / ΔE*00) takes coordinates from\n * `rgbaToLab`; ΔE*ok takes coordinates from `rgbaToOklab`. Both spaces\n * share the `Lab` tuple shape but are not interchangeable — see\n * `deltaEokSquared` below.\n *\n * Within the CIELAB family, the metrics differ in how each region of\n * Lab space is weighted:\n * ΔE*76 — simple Euclidean in Lab (CIE 1976). Fast, decent.\n * ΔE*94 — adds chroma/hue weighting (CIE 1994). Better saturation handling.\n * ΔE00 — also adjusts L/C/h + rotation correction in blue-purple region\n * (CIE 2000, aka CIEDE2000). Current industry standard.\n *\n * References:\n * CIE 15:2004 (Colorimetry), CIE TC1-29 (ΔE2000).\n * G. Sharma, W. Wu, E.N. Dalal, \"The CIEDE2000 Color-Difference Formula\"\n * (Color Research & Application, 2005) — canonical test vectors.\n */\n\nexport type Lab = readonly [l: number, a: number, b: number];\n\n/**\n * ΔE*ab (CIE 1976). Simple Euclidean distance in Lab.\n * Returns the *square* for speed — identify loops only need argmin, and\n * sqrt is monotonic. Use `deltaE76` if you need the actual distance.\n */\nexport function deltaE76Squared(p: Lab, q: Lab): number {\n const dl = p[0] - q[0];\n const da = p[1] - q[1];\n const db = p[2] - q[2];\n return dl * dl + da * da + db * db;\n}\n\nexport function deltaE76(p: Lab, q: Lab): number {\n return Math.sqrt(deltaE76Squared(p, q));\n}\n\n/**\n * ΔE*94 (CIE 1994). Weights the chroma and hue contributions relative to\n * Lab Euclidean distance — fixes the \"saturated colors feel too far apart\"\n * problem of ΔE*76. Uses graphic-arts constants (kL=1, K1=0.045, K2=0.015).\n *\n * Not symmetric in the strict sense (reference vs sample), but we treat\n * both inputs as graphic-arts samples — the formula reduces to a\n * symmetric form below.\n */\nexport function deltaE94(p: Lab, q: Lab): number {\n const [l1, a1, b1] = p;\n const [l2, a2, b2] = q;\n const dL = l1 - l2;\n const c1 = Math.hypot(a1, b1);\n const c2 = Math.hypot(a2, b2);\n const dC = c1 - c2;\n const da = a1 - a2;\n const db = b1 - b2;\n const dH2 = da * da + db * db - dC * dC;\n // dH² can go slightly negative due to floating-point — clamp.\n const dH2Safe = dH2 < 0 ? 0 : dH2;\n\n const K1 = 0.045;\n const K2 = 0.015;\n const sL = 1;\n const sC = 1 + K1 * c1;\n const sH = 1 + K2 * c1;\n\n const termL = dL / sL;\n const termC = dC / sC;\n const termH = Math.sqrt(dH2Safe) / sH;\n\n return Math.sqrt(termL * termL + termC * termC + termH * termH);\n}\n\n// ---- ΔE00 helpers --------------------------------------------------------\n\nconst DEG = Math.PI / 180;\nconst RAD = 180 / Math.PI;\n\nfunction hueDeg(b: number, a: number): number {\n if (b === 0 && a === 0) return 0;\n return (Math.atan2(b, a) * RAD + 360) % 360;\n}\n\n/**\n * ΔE*00 (CIE 2000 / CIEDE2000). Current industry-standard perceptual\n * color-difference formula. Fixes the saturated-blue failure of ΔE76/94\n * with a rotation term in the blue-purple region (h ≈ 275°).\n *\n * kL / kC / kH are parametric factors (default 1/1/1 = graphic arts).\n * Reference: G. Sharma, W. Wu, E.N. Dalal, \"The CIEDE2000 Color-Difference\n * Formula\" (Color Research & Application, 2005).\n */\n// Precomputed constant: 25^7 = 6,103,515,625. Appears twice in the formula.\nconst POW_25_7 = 6103515625;\n\n// Inline pow(x, 7) — Math.pow with non-integer exponent is slower in V8\n// than three multiplies. x² → x⁴ → x⁶·x.\nfunction pow7(x: number): number {\n const x2 = x * x;\n const x4 = x2 * x2;\n return x4 * x2 * x;\n}\n\nexport function deltaE2000(p: Lab, q: Lab, kL = 1, kC = 1, kH = 1): number {\n const l1 = p[0];\n const a1 = p[1];\n const b1 = p[2];\n const l2 = q[0];\n const a2 = q[1];\n const b2 = q[2];\n\n // Chromas and mean chroma. Lab values stay within ±150 so overflow\n // protection in Math.hypot is unnecessary — plain sqrt(a²+b²) is ~3×\n // faster in V8 and more than precise enough for our range.\n const c1 = Math.sqrt(a1 * a1 + b1 * b1);\n const c2 = Math.sqrt(a2 * a2 + b2 * b2);\n const cBar = (c1 + c2) / 2;\n const cBar7 = pow7(cBar);\n\n // G-factor boost for a* in low-chroma regions.\n const g = 0.5 * (1 - Math.sqrt(cBar7 / (cBar7 + POW_25_7)));\n const a1p = (1 + g) * a1;\n const a2p = (1 + g) * a2;\n\n // Primed chroma and hue.\n const c1p = Math.sqrt(a1p * a1p + b1 * b1);\n const c2p = Math.sqrt(a2p * a2p + b2 * b2);\n const h1p = hueDeg(b1, a1p);\n const h2p = hueDeg(b2, a2p);\n\n // Differences.\n const dLp = l2 - l1;\n const dCp = c2p - c1p;\n\n let dhp: number;\n if (c1p * c2p === 0) {\n dhp = 0;\n } else {\n const raw = h2p - h1p;\n if (Math.abs(raw) <= 180) dhp = raw;\n else if (raw > 180) dhp = raw - 360;\n else dhp = raw + 360;\n }\n const dHp = 2 * Math.sqrt(c1p * c2p) * Math.sin((dhp * DEG) / 2);\n\n // Means.\n const lBarP = (l1 + l2) / 2;\n const cBarP = (c1p + c2p) / 2;\n\n let hBarP: number;\n if (c1p * c2p === 0) {\n hBarP = h1p + h2p;\n } else if (Math.abs(h1p - h2p) <= 180) {\n hBarP = (h1p + h2p) / 2;\n } else if (h1p + h2p < 360) {\n hBarP = (h1p + h2p + 360) / 2;\n } else {\n hBarP = (h1p + h2p - 360) / 2;\n }\n\n // Weighting function T.\n const hBarRad = hBarP * DEG;\n const t =\n 1 -\n 0.17 * Math.cos(hBarRad - 30 * DEG) +\n 0.24 * Math.cos(2 * hBarRad) +\n 0.32 * Math.cos(3 * hBarRad + 6 * DEG) -\n 0.2 * Math.cos(4 * hBarRad - 63 * DEG);\n\n // Lightness, chroma, hue weighting factors.\n const lBarMinus50Sq = (lBarP - 50) ** 2;\n const sL = 1 + (0.015 * lBarMinus50Sq) / Math.sqrt(20 + lBarMinus50Sq);\n const sC = 1 + 0.045 * cBarP;\n const sH = 1 + 0.015 * cBarP * t;\n\n // Rotation term — the blue-purple correction that ΔE94 lacks.\n const hShift = (hBarP - 275) / 25;\n const dTheta = 30 * Math.exp(-(hShift * hShift));\n const cBarP7 = pow7(cBarP);\n const rC = 2 * Math.sqrt(cBarP7 / (cBarP7 + POW_25_7));\n const rT = -Math.sin(2 * dTheta * DEG) * rC;\n\n const termL = dLp / (kL * sL);\n const termC = dCp / (kC * sC);\n const termH = dHp / (kH * sH);\n\n return Math.sqrt(termL * termL + termC * termC + termH * termH + rT * termC * termH);\n}\n\n/**\n * Squared Euclidean distance in OKLAB space (Björn Ottosson, 2020).\n * OKLAB is perceptually uniform by construction — plain Euclidean IS the\n * perceptual distance, no weighting needed. Returns the square for\n * argmin speed; `deltaEok` returns the actual distance.\n *\n * Often gives more visually-accurate nearest-matches than CIEDE2000 in\n * the saturated blue/purple region.\n *\n * NOTE: the body is byte-identical to `deltaE76Squared` — both compute\n * `dl² + da² + db²`. The semantic difference is entirely in *which* space\n * the caller passes coordinates from: CIELAB (for ΔE*76) vs OKLAB (for this).\n * Kept separate so callers and tests can't cross-wire the indexes.\n */\nexport function deltaEokSquared(p: Lab, q: Lab): number {\n const dl = p[0] - q[0];\n const da = p[1] - q[1];\n const db = p[2] - q[2];\n return dl * dl + da * da + db * db;\n}\n\nexport function deltaEok(p: Lab, q: Lab): number {\n return Math.sqrt(deltaEokSquared(p, q));\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"euclideanDistance.d.ts","sourceRoot":"","sources":["../../src/math/euclideanDistance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"euclideanDistance.d.ts","sourceRoot":"","sources":["../../src/math/euclideanDistance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAK3D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAE1D","sourcesContent":["import type { Rgba } from '../types.js';\n\n/**\n * Squared Euclidean distance between two colors in RGB space.\n * Alpha channel is ignored. Faster than `euclideanDistance` — use this\n * when you only need to compare or minimize (sqrt is monotonic, so\n * argmin(d) === argmin(d²)).\n */\nexport function squaredDistanceRgb(a: Rgba, b: Rgba): number {\n const dr = a.r - b.r;\n const dg = a.g - b.g;\n const db = a.b - b.b;\n return dr * dr + dg * dg + db * db;\n}\n\n/**\n * Euclidean distance between two colors in RGB space.\n * Alpha channel is ignored (matches classic `detect-color` behavior).\n * Not perceptually accurate — use deltaE (CIE Lab) for color matching\n * where perceptual uniformity matters.\n */\nexport function euclideanDistance(a: Rgba, b: Rgba): number {\n return Math.sqrt(squaredDistanceRgb(a, b));\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"euclideanDistance.js","sourceRoot":"","sources":["../../src/math/euclideanDistance.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAO,EAAE,CAAO;IACjD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAO,EAAE,CAAO;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|
|
1
|
+
{"version":3,"file":"euclideanDistance.js","sourceRoot":"","sources":["../../src/math/euclideanDistance.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAO,EAAE,CAAO;IACjD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAO,EAAE,CAAO;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC","sourcesContent":["import type { Rgba } from '../types.js';\n\n/**\n * Squared Euclidean distance between two colors in RGB space.\n * Alpha channel is ignored. Faster than `euclideanDistance` — use this\n * when you only need to compare or minimize (sqrt is monotonic, so\n * argmin(d) === argmin(d²)).\n */\nexport function squaredDistanceRgb(a: Rgba, b: Rgba): number {\n const dr = a.r - b.r;\n const dg = a.g - b.g;\n const db = a.b - b.b;\n return dr * dr + dg * dg + db * db;\n}\n\n/**\n * Euclidean distance between two colors in RGB space.\n * Alpha channel is ignored (matches classic `detect-color` behavior).\n * Not perceptually accurate — use deltaE (CIE Lab) for color matching\n * where perceptual uniformity matters.\n */\nexport function euclideanDistance(a: Rgba, b: Rgba): number {\n return Math.sqrt(squaredDistanceRgb(a, b));\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hueSector.d.ts","sourceRoot":"","sources":["../../src/math/hueSector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAO1B"}
|
|
1
|
+
{"version":3,"file":"hueSector.d.ts","sourceRoot":"","sources":["../../src/math/hueSector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAO1B","sourcesContent":["/**\n * Map a normalized hue sector value (range [0, 6)) plus chroma and its\n * secondary into the primary-color tuple `[r', g', b']` used by the\n * standard HSL→RGB and HSV→RGB algorithms. Each component is in [0, chroma].\n *\n * Shared by `hslToRgba` and `hsvToRgba`: same six-sector table, different\n * formulas for chroma and the offset. The caller adds the offset and\n * scales by 255.\n *\n * hueSector = h / 60 (h wrapped to [0, 360))\n * chroma = HSL: (1 − |2l − 1|)·s ; HSV: v·s\n * secondary = chroma · (1 − |hueSector mod 2 − 1|)\n */\nexport function hueSectorToPrime(\n hueSector: number,\n chroma: number,\n secondary: number,\n): [number, number, number] {\n if (hueSector < 1) return [chroma, secondary, 0];\n if (hueSector < 2) return [secondary, chroma, 0];\n if (hueSector < 3) return [0, chroma, secondary];\n if (hueSector < 4) return [0, secondary, chroma];\n if (hueSector < 5) return [secondary, 0, chroma];\n return [chroma, 0, secondary];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hueSector.js","sourceRoot":"","sources":["../../src/math/hueSector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,MAAc,EACd,SAAiB;IAEjB,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AAChC,CAAC"}
|
|
1
|
+
{"version":3,"file":"hueSector.js","sourceRoot":"","sources":["../../src/math/hueSector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,MAAc,EACd,SAAiB;IAEjB,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACjD,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;AAChC,CAAC","sourcesContent":["/**\n * Map a normalized hue sector value (range [0, 6)) plus chroma and its\n * secondary into the primary-color tuple `[r', g', b']` used by the\n * standard HSL→RGB and HSV→RGB algorithms. Each component is in [0, chroma].\n *\n * Shared by `hslToRgba` and `hsvToRgba`: same six-sector table, different\n * formulas for chroma and the offset. The caller adds the offset and\n * scales by 255.\n *\n * hueSector = h / 60 (h wrapped to [0, 360))\n * chroma = HSL: (1 − |2l − 1|)·s ; HSV: v·s\n * secondary = chroma · (1 − |hueSector mod 2 − 1|)\n */\nexport function hueSectorToPrime(\n hueSector: number,\n chroma: number,\n secondary: number,\n): [number, number, number] {\n if (hueSector < 1) return [chroma, secondary, 0];\n if (hueSector < 2) return [secondary, chroma, 0];\n if (hueSector < 3) return [0, chroma, secondary];\n if (hueSector < 4) return [0, secondary, chroma];\n if (hueSector < 5) return [secondary, 0, chroma];\n return [chroma, 0, secondary];\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/palettes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,KAAK,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,KAAK,YAAY,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC","sourcesContent":["export { type PantoneColorName, pantone } from './pantone.js';\nexport { type WebColorName, web } from './web.js';\nexport { type X11ColorName, x11 } from './x11.js';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/palettes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAqB,GAAG,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAqB,GAAG,EAAE,MAAM,UAAU,CAAC","sourcesContent":["export { type PantoneColorName, pantone } from './pantone.js';\nexport { type WebColorName, web } from './web.js';\nexport { type X11ColorName, x11 } from './x11.js';\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { NormalizeFn } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Name normalizers used by palettes.
|
|
4
|
+
*
|
|
5
|
+
* Tree-shake note: this module has zero imports beyond a type. Palette
|
|
6
|
+
* modules (`web`, `x11`, `pantone`, or user BYO palettes) can reference
|
|
7
|
+
* these without dragging in the full `indexing.ts` graph, which pulls
|
|
8
|
+
* math modules needed only when `identify` / `resolve` actually runs.
|
|
9
|
+
*/
|
|
10
|
+
/** Lowercase + strip non-alphanumeric. Works for web, x11, and most BYO. */
|
|
11
|
+
export declare const standardNormalize: NormalizeFn;
|
|
12
|
+
/**
|
|
13
|
+
* Pantone: also strip a leading "Pantone" or "PMS" prefix so that
|
|
14
|
+
* "185 C", "185c", "Pantone 185 C", "PMS185C" all map to "185c".
|
|
15
|
+
*/
|
|
16
|
+
export declare const pantoneNormalize: NormalizeFn;
|
|
17
|
+
//# sourceMappingURL=normalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/palettes/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;GAOG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,EAAE,WAA8D,CAAC;AAE/F;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAID,CAAC","sourcesContent":["import type { NormalizeFn } from '../types.js';\n\n/**\n * Name normalizers used by palettes.\n *\n * Tree-shake note: this module has zero imports beyond a type. Palette\n * modules (`web`, `x11`, `pantone`, or user BYO palettes) can reference\n * these without dragging in the full `indexing.ts` graph, which pulls\n * math modules needed only when `identify` / `resolve` actually runs.\n */\n\n/** Lowercase + strip non-alphanumeric. Works for web, x11, and most BYO. */\nexport const standardNormalize: NormalizeFn = (s) => s.toLowerCase().replace(/[^a-z0-9]/g, '');\n\n/**\n * Pantone: also strip a leading \"Pantone\" or \"PMS\" prefix so that\n * \"185 C\", \"185c\", \"Pantone 185 C\", \"PMS185C\" all map to \"185c\".\n */\nexport const pantoneNormalize: NormalizeFn = (s) =>\n s\n .toLowerCase()\n .replace(/^(pantone|pms)\\s*/, '')\n .replace(/[^a-z0-9]/g, '');\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Name normalizers used by palettes.
|
|
3
|
+
*
|
|
4
|
+
* Tree-shake note: this module has zero imports beyond a type. Palette
|
|
5
|
+
* modules (`web`, `x11`, `pantone`, or user BYO palettes) can reference
|
|
6
|
+
* these without dragging in the full `indexing.ts` graph, which pulls
|
|
7
|
+
* math modules needed only when `identify` / `resolve` actually runs.
|
|
8
|
+
*/
|
|
9
|
+
/** Lowercase + strip non-alphanumeric. Works for web, x11, and most BYO. */
|
|
10
|
+
export const standardNormalize = (s) => s.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
11
|
+
/**
|
|
12
|
+
* Pantone: also strip a leading "Pantone" or "PMS" prefix so that
|
|
13
|
+
* "185 C", "185c", "Pantone 185 C", "PMS185C" all map to "185c".
|
|
14
|
+
*/
|
|
15
|
+
export const pantoneNormalize = (s) => s
|
|
16
|
+
.toLowerCase()
|
|
17
|
+
.replace(/^(pantone|pms)\s*/, '')
|
|
18
|
+
.replace(/[^a-z0-9]/g, '');
|
|
19
|
+
//# sourceMappingURL=normalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/palettes/normalize.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAE/F;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAgB,CAAC,CAAC,EAAE,EAAE,CACjD,CAAC;KACE,WAAW,EAAE;KACb,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;KAChC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC","sourcesContent":["import type { NormalizeFn } from '../types.js';\n\n/**\n * Name normalizers used by palettes.\n *\n * Tree-shake note: this module has zero imports beyond a type. Palette\n * modules (`web`, `x11`, `pantone`, or user BYO palettes) can reference\n * these without dragging in the full `indexing.ts` graph, which pulls\n * math modules needed only when `identify` / `resolve` actually runs.\n */\n\n/** Lowercase + strip non-alphanumeric. Works for web, x11, and most BYO. */\nexport const standardNormalize: NormalizeFn = (s) => s.toLowerCase().replace(/[^a-z0-9]/g, '');\n\n/**\n * Pantone: also strip a leading \"Pantone\" or \"PMS\" prefix so that\n * \"185 C\", \"185c\", \"Pantone 185 C\", \"PMS185C\" all map to \"185c\".\n */\nexport const pantoneNormalize: NormalizeFn = (s) =>\n s\n .toLowerCase()\n .replace(/^(pantone|pms)\\s*/, '')\n .replace(/[^a-z0-9]/g, '');\n"]}
|