@zag-js/color-utils 0.53.0 → 0.55.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/color-format-gradient.ts","../src/area-gradient.ts","../src/color.ts","../src/hsb-color.ts","../src/hsl-color.ts","../src/rgb-color.ts","../src/native-color.ts","../src/parse-color.ts"],"sourcesContent":["export const generateRGB_R = (orientation: [string, string], dir: boolean, zValue: number) => {\n const maskImage = `linear-gradient(to ${orientation[Number(!dir)]}, transparent, #000)`\n const result = {\n areaStyles: {\n backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(${zValue},0,0),rgb(${zValue},255,0))`,\n },\n areaGradientStyles: {\n backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(${zValue},0,255),rgb(${zValue},255,255))`,\n WebkitMaskImage: maskImage,\n maskImage,\n },\n }\n return result\n}\n\nexport const generateRGB_G = (orientation: [string, string], dir: boolean, zValue: number) => {\n const maskImage = `linear-gradient(to ${orientation[Number(!dir)]}, transparent, #000)`\n const result = {\n areaStyles: {\n backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(0,${zValue},0),rgb(255,${zValue},0))`,\n },\n areaGradientStyles: {\n backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(0,${zValue},255),rgb(255,${zValue},255))`,\n WebkitMaskImage: maskImage,\n maskImage,\n },\n }\n return result\n}\n\nexport const generateRGB_B = (orientation: [string, string], dir: boolean, zValue: number) => {\n const maskImage = `linear-gradient(to ${orientation[Number(!dir)]}, transparent, #000)`\n const result = {\n areaStyles: {\n backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(0,0,${zValue}),rgb(255,0,${zValue}))`,\n },\n areaGradientStyles: {\n backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(0,255,${zValue}),rgb(255,255,${zValue}))`,\n WebkitMaskImage: maskImage,\n maskImage,\n },\n }\n return result\n}\n\nexport const generateHSL_H = (orientation: [string, string], dir: boolean, zValue: number) => {\n const result = {\n areaStyles: {},\n areaGradientStyles: {\n background: [\n `linear-gradient(to ${\n orientation[Number(dir)]\n }, hsla(0,0%,0%,1) 0%, hsla(0,0%,0%,0) 50%, hsla(0,0%,100%,0) 50%, hsla(0,0%,100%,1) 100%)`,\n `linear-gradient(to ${orientation[Number(!dir)]},hsl(0,0%,50%),hsla(0,0%,50%,0))`,\n `hsl(${zValue}, 100%, 50%)`,\n ].join(\",\"),\n },\n }\n return result\n}\n\nexport const generateHSL_S = (orientation: [string, string], dir: boolean, alphaValue: number) => {\n const result = {\n areaStyles: {},\n areaGradientStyles: {\n background: [\n `linear-gradient(to ${\n orientation[Number(!dir)]\n }, hsla(0,0%,0%,${alphaValue}) 0%, hsla(0,0%,0%,0) 50%, hsla(0,0%,100%,0) 50%, hsla(0,0%,100%,${alphaValue}) 100%)`,\n `linear-gradient(to ${\n orientation[Number(dir)]\n },hsla(0,100%,50%,${alphaValue}),hsla(60,100%,50%,${alphaValue}),hsla(120,100%,50%,${alphaValue}),hsla(180,100%,50%,${alphaValue}),hsla(240,100%,50%,${alphaValue}),hsla(300,100%,50%,${alphaValue}),hsla(359,100%,50%,${alphaValue}))`,\n \"hsl(0, 0%, 50%)\",\n ].join(\",\"),\n },\n }\n return result\n}\n\nexport const generateHSL_L = (orientation: [string, string], dir: boolean, zValue: number) => {\n const result = {\n areaStyles: {},\n areaGradientStyles: {\n backgroundImage: [\n `linear-gradient(to ${orientation[Number(!dir)]},hsl(0,0%,${zValue}%),hsla(0,0%,${zValue}%,0))`,\n `linear-gradient(to ${\n orientation[Number(dir)]\n },hsl(0,100%,${zValue}%),hsl(60,100%,${zValue}%),hsl(120,100%,${zValue}%),hsl(180,100%,${zValue}%),hsl(240,100%,${zValue}%),hsl(300,100%,${zValue}%),hsl(360,100%,${zValue}%))`,\n ].join(\",\"),\n },\n }\n return result\n}\n\nexport const generateHSB_H = (orientation: [string, string], dir: boolean, zValue: number) => {\n const result = {\n areaStyles: {},\n areaGradientStyles: {\n background: [\n `linear-gradient(to ${orientation[Number(dir)]},hsl(0,0%,0%),hsla(0,0%,0%,0))`,\n `linear-gradient(to ${orientation[Number(!dir)]},hsl(0,0%,100%),hsla(0,0%,100%,0))`,\n `hsl(${zValue}, 100%, 50%)`,\n ].join(\",\"),\n },\n }\n return result\n}\n\nexport const generateHSB_S = (orientation: [string, string], dir: boolean, alphaValue: number) => {\n const result = {\n areaStyles: {},\n areaGradientStyles: {\n background: [\n `linear-gradient(to ${orientation[Number(!dir)]},hsla(0,0%,0%,${alphaValue}),hsla(0,0%,0%,0))`,\n `linear-gradient(to ${\n orientation[Number(dir)]\n },hsla(0,100%,50%,${alphaValue}),hsla(60,100%,50%,${alphaValue}),hsla(120,100%,50%,${alphaValue}),hsla(180,100%,50%,${alphaValue}),hsla(240,100%,50%,${alphaValue}),hsla(300,100%,50%,${alphaValue}),hsla(359,100%,50%,${alphaValue}))`,\n `linear-gradient(to ${orientation[Number(!dir)]},hsl(0,0%,0%),hsl(0,0%,100%))`,\n ].join(\",\"),\n },\n }\n return result\n}\n\nexport const generateHSB_B = (orientation: [string, string], dir: boolean, alphaValue: number) => {\n const result = {\n areaStyles: {},\n areaGradientStyles: {\n background: [\n `linear-gradient(to ${orientation[Number(!dir)]},hsla(0,0%,100%,${alphaValue}),hsla(0,0%,100%,0))`,\n `linear-gradient(to ${\n orientation[Number(dir)]\n },hsla(0,100%,50%,${alphaValue}),hsla(60,100%,50%,${alphaValue}),hsla(120,100%,50%,${alphaValue}),hsla(180,100%,50%,${alphaValue}),hsla(240,100%,50%,${alphaValue}),hsla(300,100%,50%,${alphaValue}),hsla(359,100%,50%,${alphaValue}))`,\n \"#000\",\n ].join(\",\"),\n },\n }\n return result\n}\n","import type { Color } from \"./color\"\nimport {\n generateRGB_R,\n generateRGB_G,\n generateRGB_B,\n generateHSL_H,\n generateHSB_H,\n generateHSL_S,\n generateHSB_S,\n generateHSB_B,\n generateHSL_L,\n} from \"./color-format-gradient\"\nimport type { ColorChannel } from \"./types\"\n\ninterface GradientOptions {\n xChannel: ColorChannel\n yChannel: ColorChannel\n dir?: \"rtl\" | \"ltr\"\n}\n\ninterface GradientStyles {\n areaStyles: Record<string, string>\n areaGradientStyles: Record<string, string>\n}\n\nexport function getColorAreaGradient(color: Color, options: GradientOptions): GradientStyles {\n const { xChannel, yChannel, dir: dirProp = \"ltr\" } = options\n\n const { zChannel } = color.getColorAxes({ xChannel, yChannel })\n const zValue = color.getChannelValue(zChannel)\n\n const { minValue: zMin, maxValue: zMax } = color.getChannelRange(zChannel)\n const orientation: [string, string] = [\"top\", dirProp === \"rtl\" ? \"left\" : \"right\"]\n\n let dir = false\n\n let background = { areaStyles: {}, areaGradientStyles: {} }\n\n let alphaValue = (zValue - zMin) / (zMax - zMin)\n let isHSL = color.getFormat() === \"hsla\"\n\n switch (zChannel) {\n case \"red\": {\n dir = xChannel === \"green\"\n background = generateRGB_R(orientation, dir, zValue)\n break\n }\n\n case \"green\": {\n dir = xChannel === \"red\"\n background = generateRGB_G(orientation, dir, zValue)\n break\n }\n\n case \"blue\": {\n dir = xChannel === \"red\"\n background = generateRGB_B(orientation, dir, zValue)\n break\n }\n\n case \"hue\": {\n dir = xChannel !== \"saturation\"\n if (isHSL) {\n background = generateHSL_H(orientation, dir, zValue)\n } else {\n background = generateHSB_H(orientation, dir, zValue)\n }\n break\n }\n\n case \"saturation\": {\n dir = xChannel === \"hue\"\n if (isHSL) {\n background = generateHSL_S(orientation, dir, alphaValue)\n } else {\n background = generateHSB_S(orientation, dir, alphaValue)\n }\n break\n }\n\n case \"brightness\": {\n dir = xChannel === \"hue\"\n background = generateHSB_B(orientation, dir, alphaValue)\n break\n }\n\n case \"lightness\": {\n dir = xChannel === \"hue\"\n background = generateHSL_L(orientation, dir, zValue)\n break\n }\n }\n\n return background\n}\n","import { clampValue, getPercentValue, getValuePercent, snapValueToStep } from \"@zag-js/numeric-range\"\nimport type {\n Color2DAxes,\n ColorAxes,\n ColorChannel,\n ColorChannelRange,\n ColorFormat,\n ColorStringFormat,\n ColorType,\n} from \"./types\"\n\nconst isEqualObject = (a: Record<string, number>, b: Record<string, number>): boolean => {\n if (Object.keys(a).length !== Object.keys(b).length) return false\n for (let key in a) if (a[key] !== b[key]) return false\n return true\n}\n\nexport abstract class Color implements ColorType {\n abstract toFormat(format: ColorFormat): ColorType\n abstract toJSON(): Record<string, number>\n abstract toString(format: ColorStringFormat): string\n abstract clone(): ColorType\n abstract getChannelRange(channel: ColorChannel): ColorChannelRange\n abstract getFormat(): ColorFormat\n abstract getChannels(): [ColorChannel, ColorChannel, ColorChannel]\n\n toHexInt(): number {\n return this.toFormat(\"rgba\").toHexInt()\n }\n\n getChannelValue(channel: ColorChannel): number {\n if (channel in this) return this[channel]\n throw new Error(\"Unsupported color channel: \" + channel)\n }\n\n getChannelValuePercent(channel: ColorChannel, valueToCheck?: number): number {\n const value = valueToCheck ?? this.getChannelValue(channel)\n const { minValue, maxValue } = this.getChannelRange(channel)\n return getValuePercent(value, minValue, maxValue)\n }\n\n getChannelPercentValue(channel: ColorChannel, percentToCheck: number): number {\n const { minValue, maxValue, step } = this.getChannelRange(channel)\n const percentValue = getPercentValue(percentToCheck, minValue, maxValue, step)\n return snapValueToStep(percentValue, minValue, maxValue, step)\n }\n\n withChannelValue(channel: ColorChannel, value: number): ColorType {\n const { minValue, maxValue } = this.getChannelRange(channel)\n if (channel in this) {\n let clone = this.clone()\n clone[channel] = clampValue(value, minValue, maxValue)\n return clone\n }\n\n throw new Error(\"Unsupported color channel: \" + channel)\n }\n\n getColorAxes(xyChannels: Color2DAxes): ColorAxes {\n let { xChannel, yChannel } = xyChannels\n let xCh = xChannel || this.getChannels().find((c) => c !== yChannel)\n let yCh = yChannel || this.getChannels().find((c) => c !== xCh)\n let zCh = this.getChannels().find((c) => c !== xCh && c !== yCh)\n return { xChannel: xCh!, yChannel: yCh!, zChannel: zCh! }\n }\n\n incrementChannel(channel: ColorChannel, stepSize: number): ColorType {\n const { minValue, maxValue, step } = this.getChannelRange(channel)\n const value = snapValueToStep(\n clampValue(this.getChannelValue(channel) + stepSize, minValue, maxValue),\n minValue,\n maxValue,\n step,\n )\n return this.withChannelValue(channel, value)\n }\n\n decrementChannel(channel: ColorChannel, stepSize: number): ColorType {\n return this.incrementChannel(channel, -stepSize)\n }\n\n isEqual(color: ColorType): boolean {\n const isSame = isEqualObject(this.toJSON(), color.toJSON())\n return isSame && this.getChannelValue(\"alpha\") === color.getChannelValue(\"alpha\")\n }\n}\n","import { clampValue, mod, toFixedNumber } from \"@zag-js/numeric-range\"\nimport { Color } from \"./color\"\nimport { HSLColor } from \"./hsl-color\"\nimport { RGBColor } from \"./rgb-color\"\nimport type { ColorChannel, ColorChannelRange, ColorFormat, ColorStringFormat, ColorType } from \"./types\"\n\nconst HSB_REGEX =\n /hsb\\(([-+]?\\d+(?:.\\d+)?\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d+(?:.\\d+)?%)\\)|hsba\\(([-+]?\\d+(?:.\\d+)?\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d(.\\d+)?)\\)/\n\nexport class HSBColor extends Color {\n constructor(\n private hue: number,\n private saturation: number,\n private brightness: number,\n private alpha: number,\n ) {\n super()\n }\n\n static parse(value: string): HSBColor | void {\n let m: RegExpMatchArray | null\n if ((m = value.match(HSB_REGEX))) {\n const [h, s, b, a] = (m[1] ?? m[2]).split(\",\").map((n) => Number(n.trim().replace(\"%\", \"\")))\n return new HSBColor(mod(h, 360), clampValue(s, 0, 100), clampValue(b, 0, 100), clampValue(a ?? 1, 0, 1))\n }\n }\n\n toString(format: ColorStringFormat) {\n switch (format) {\n case \"css\":\n return this.toHSL().toString(\"css\")\n case \"hex\":\n return this.toRGB().toString(\"hex\")\n case \"hexa\":\n return this.toRGB().toString(\"hexa\")\n case \"hsb\":\n return `hsb(${this.hue}, ${toFixedNumber(this.saturation, 2)}%, ${toFixedNumber(this.brightness, 2)}%)`\n case \"hsba\":\n return `hsba(${this.hue}, ${toFixedNumber(this.saturation, 2)}%, ${toFixedNumber(this.brightness, 2)}%, ${\n this.alpha\n })`\n case \"hsl\":\n return this.toHSL().toString(\"hsl\")\n case \"rgb\":\n return this.toRGB().toString(\"rgb\")\n default:\n return this.toFormat(format).toString(format)\n }\n }\n\n toFormat(format: ColorFormat): ColorType {\n switch (format) {\n case \"hsba\":\n return this\n case \"hsla\":\n return this.toHSL()\n case \"rgba\":\n return this.toRGB()\n default:\n throw new Error(\"Unsupported color conversion: hsb -> \" + format)\n }\n }\n\n /**\n * Converts a HSB color to HSL.\n * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_HSL.\n * @returns An HSLColor object.\n */\n private toHSL(): ColorType {\n let saturation = this.saturation / 100\n let brightness = this.brightness / 100\n let lightness = brightness * (1 - saturation / 2)\n saturation = lightness === 0 || lightness === 1 ? 0 : (brightness - lightness) / Math.min(lightness, 1 - lightness)\n\n return new HSLColor(\n toFixedNumber(this.hue, 2),\n toFixedNumber(saturation * 100, 2),\n toFixedNumber(lightness * 100, 2),\n toFixedNumber(this.alpha, 2),\n )\n }\n\n /**\n * Converts a HSV color value to RGB.\n * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_RGB_alternative.\n * @returns An RGBColor object.\n */\n private toRGB(): ColorType {\n let hue = this.hue\n let saturation = this.saturation / 100\n let brightness = this.brightness / 100\n\n let fn = (n: number, k = (n + hue / 60) % 6) =>\n brightness - saturation * brightness * Math.max(Math.min(k, 4 - k, 1), 0)\n\n return new RGBColor(\n Math.round(fn(5) * 255),\n Math.round(fn(3) * 255),\n Math.round(fn(1) * 255),\n toFixedNumber(this.alpha, 2),\n )\n }\n\n clone(): ColorType {\n return new HSBColor(this.hue, this.saturation, this.brightness, this.alpha)\n }\n\n getChannelRange(channel: ColorChannel): ColorChannelRange {\n switch (channel) {\n case \"hue\":\n return { minValue: 0, maxValue: 360, step: 1, pageSize: 15 }\n case \"saturation\":\n case \"brightness\":\n return { minValue: 0, maxValue: 100, step: 1, pageSize: 10 }\n case \"alpha\":\n return { minValue: 0, maxValue: 1, step: 0.01, pageSize: 0.1 }\n default:\n throw new Error(\"Unknown color channel: \" + channel)\n }\n }\n\n toJSON(): Record<\"h\" | \"s\" | \"b\" | \"a\", number> {\n return { h: this.hue, s: this.saturation, b: this.brightness, a: this.alpha }\n }\n\n getFormat(): ColorFormat {\n return \"hsba\"\n }\n\n private static colorChannels: [ColorChannel, ColorChannel, ColorChannel] = [\"hue\", \"saturation\", \"brightness\"]\n\n getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n return HSBColor.colorChannels\n }\n}\n","import { clampValue, mod, toFixedNumber } from \"@zag-js/numeric-range\"\nimport { Color } from \"./color\"\nimport { HSBColor } from \"./hsb-color\"\nimport { RGBColor } from \"./rgb-color\"\nimport type { ColorChannel, ColorChannelRange, ColorFormat, ColorStringFormat, ColorType } from \"./types\"\n\nexport const HSL_REGEX =\n /hsl\\(([-+]?\\d+(?:.\\d+)?\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d+(?:.\\d+)?%)\\)|hsla\\(([-+]?\\d+(?:.\\d+)?\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d(.\\d+)?)\\)/\n\nexport class HSLColor extends Color {\n constructor(\n private hue: number,\n private saturation: number,\n private lightness: number,\n private alpha: number,\n ) {\n super()\n }\n\n static parse(value: string): HSLColor | void {\n let m: RegExpMatchArray | null\n if ((m = value.match(HSL_REGEX))) {\n const [h, s, l, a] = (m[1] ?? m[2]).split(\",\").map((n) => Number(n.trim().replace(\"%\", \"\")))\n return new HSLColor(mod(h, 360), clampValue(s, 0, 100), clampValue(l, 0, 100), clampValue(a ?? 1, 0, 1))\n }\n }\n\n toString(format: ColorStringFormat) {\n switch (format) {\n case \"hex\":\n return this.toRGB().toString(\"hex\")\n case \"hexa\":\n return this.toRGB().toString(\"hexa\")\n case \"hsl\":\n return `hsl(${this.hue}, ${toFixedNumber(this.saturation, 2)}%, ${toFixedNumber(this.lightness, 2)}%)`\n case \"css\":\n case \"hsla\":\n return `hsla(${this.hue}, ${toFixedNumber(this.saturation, 2)}%, ${toFixedNumber(this.lightness, 2)}%, ${\n this.alpha\n })`\n case \"hsb\":\n return this.toHSB().toString(\"hsb\")\n case \"rgb\":\n return this.toRGB().toString(\"rgb\")\n default:\n return this.toFormat(format).toString(format)\n }\n }\n\n toFormat(format: ColorFormat): ColorType {\n switch (format) {\n case \"hsla\":\n return this\n case \"hsba\":\n return this.toHSB()\n case \"rgba\":\n return this.toRGB()\n default:\n throw new Error(\"Unsupported color conversion: hsl -> \" + format)\n }\n }\n\n /**\n * Converts a HSL color to HSB.\n * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSL_to_HSV.\n * @returns An HSBColor object.\n */\n private toHSB(): ColorType {\n let saturation = this.saturation / 100\n let lightness = this.lightness / 100\n let brightness = lightness + saturation * Math.min(lightness, 1 - lightness)\n saturation = brightness === 0 ? 0 : 2 * (1 - lightness / brightness)\n return new HSBColor(\n toFixedNumber(this.hue, 2),\n toFixedNumber(saturation * 100, 2),\n toFixedNumber(brightness * 100, 2),\n toFixedNumber(this.alpha, 2),\n )\n }\n\n /**\n * Converts a HSL color to RGB.\n * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSL_to_RGB_alternative.\n * @returns An RGBColor object.\n */\n private toRGB(): ColorType {\n let hue = this.hue\n let saturation = this.saturation / 100\n let lightness = this.lightness / 100\n let a = saturation * Math.min(lightness, 1 - lightness)\n let fn = (n: number, k = (n + hue / 30) % 12) => lightness - a * Math.max(Math.min(k - 3, 9 - k, 1), -1)\n return new RGBColor(\n Math.round(fn(0) * 255),\n Math.round(fn(8) * 255),\n Math.round(fn(4) * 255),\n toFixedNumber(this.alpha, 2),\n )\n }\n\n clone(): ColorType {\n return new HSLColor(this.hue, this.saturation, this.lightness, this.alpha)\n }\n\n getChannelRange(channel: ColorChannel): ColorChannelRange {\n switch (channel) {\n case \"hue\":\n return { minValue: 0, maxValue: 360, step: 1, pageSize: 15 }\n case \"saturation\":\n case \"lightness\":\n return { minValue: 0, maxValue: 100, step: 1, pageSize: 10 }\n case \"alpha\":\n return { minValue: 0, maxValue: 1, step: 0.01, pageSize: 0.1 }\n default:\n throw new Error(\"Unknown color channel: \" + channel)\n }\n }\n\n toJSON(): Record<\"h\" | \"s\" | \"l\" | \"a\", number> {\n return { h: this.hue, s: this.saturation, l: this.lightness, a: this.alpha }\n }\n\n getFormat(): ColorFormat {\n return \"hsla\"\n }\n\n private static colorChannels: [ColorChannel, ColorChannel, ColorChannel] = [\"hue\", \"saturation\", \"lightness\"]\n\n getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n return HSLColor.colorChannels\n }\n}\n","import { clampValue, toFixedNumber } from \"@zag-js/numeric-range\"\nimport { Color } from \"./color\"\nimport { HSBColor } from \"./hsb-color\"\nimport { HSLColor } from \"./hsl-color\"\nimport type { ColorChannel, ColorChannelRange, ColorFormat, ColorStringFormat, ColorType } from \"./types\"\n\nexport class RGBColor extends Color {\n constructor(\n private red: number,\n private green: number,\n private blue: number,\n private alpha: number,\n ) {\n super()\n }\n\n static parse(value: string) {\n let colors: (number | undefined)[] = []\n\n // matching #rgb, #rgba, #rrggbb, #rrggbbaa\n if (/^#[\\da-f]+$/i.test(value) && [4, 5, 7, 9].includes(value.length)) {\n const values = (value.length < 6 ? value.replace(/[^#]/gi, \"$&$&\") : value).slice(1).split(\"\")\n while (values.length > 0) {\n colors.push(parseInt(values.splice(0, 2).join(\"\"), 16))\n }\n colors[3] = colors[3] !== undefined ? colors[3] / 255 : undefined\n }\n\n // matching rgb(rrr, ggg, bbb), rgba(rrr, ggg, bbb, 0.a)\n const match = value.match(/^rgba?\\((.*)\\)$/)\n\n if (match?.[1]) {\n colors = match[1]\n .split(\",\")\n .map((value) => Number(value.trim()))\n .map((num, i) => clampValue(num, 0, i < 3 ? 255 : 1))\n }\n\n //@ts-expect-error\n return colors.length < 3 ? undefined : new RGBColor(colors[0], colors[1], colors[2], colors[3] ?? 1)\n }\n\n toString(format: ColorStringFormat) {\n switch (format) {\n case \"hex\":\n return (\n \"#\" +\n (\n this.red.toString(16).padStart(2, \"0\") +\n this.green.toString(16).padStart(2, \"0\") +\n this.blue.toString(16).padStart(2, \"0\")\n ).toUpperCase()\n )\n case \"hexa\":\n return (\n \"#\" +\n (\n this.red.toString(16).padStart(2, \"0\") +\n this.green.toString(16).padStart(2, \"0\") +\n this.blue.toString(16).padStart(2, \"0\") +\n Math.round(this.alpha * 255)\n .toString(16)\n .padStart(2, \"0\")\n ).toUpperCase()\n )\n case \"rgb\":\n return `rgb(${this.red}, ${this.green}, ${this.blue})`\n case \"css\":\n case \"rgba\":\n return `rgba(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`\n case \"hsl\":\n return this.toHSL().toString(\"hsl\")\n case \"hsb\":\n return this.toHSB().toString(\"hsb\")\n default:\n return this.toFormat(format).toString(format)\n }\n }\n\n toFormat(format: ColorFormat): ColorType {\n switch (format) {\n case \"rgba\":\n return this\n case \"hsba\":\n return this.toHSB()\n case \"hsla\":\n return this.toHSL()\n default:\n throw new Error(\"Unsupported color conversion: rgb -> \" + format)\n }\n }\n\n toHexInt(): number {\n return (this.red << 16) | (this.green << 8) | this.blue\n }\n\n /**\n * Converts an RGB color value to HSB.\n * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#From_RGB.\n * @returns An HSBColor object.\n */\n private toHSB(): ColorType {\n const red = this.red / 255\n const green = this.green / 255\n const blue = this.blue / 255\n const min = Math.min(red, green, blue)\n const brightness = Math.max(red, green, blue)\n const chroma = brightness - min\n const saturation = brightness === 0 ? 0 : chroma / brightness\n let hue = 0 // achromatic\n\n if (chroma !== 0) {\n switch (brightness) {\n case red:\n hue = (green - blue) / chroma + (green < blue ? 6 : 0)\n break\n case green:\n hue = (blue - red) / chroma + 2\n break\n case blue:\n hue = (red - green) / chroma + 4\n break\n }\n\n hue /= 6\n }\n\n return new HSBColor(\n toFixedNumber(hue * 360, 2),\n toFixedNumber(saturation * 100, 2),\n toFixedNumber(brightness * 100, 2),\n toFixedNumber(this.alpha, 2),\n )\n }\n\n /**\n * Converts an RGB color value to HSL.\n * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#From_RGB.\n * @returns An HSLColor object.\n */\n private toHSL(): ColorType {\n const red = this.red / 255\n const green = this.green / 255\n const blue = this.blue / 255\n const min = Math.min(red, green, blue)\n const max = Math.max(red, green, blue)\n const lightness = (max + min) / 2\n const chroma = max - min\n\n let hue = -1\n let saturation = -1\n\n if (chroma === 0) {\n hue = saturation = 0 // achromatic\n } else {\n saturation = chroma / (lightness < 0.5 ? max + min : 2 - max - min)\n\n switch (max) {\n case red:\n hue = (green - blue) / chroma + (green < blue ? 6 : 0)\n break\n case green:\n hue = (blue - red) / chroma + 2\n break\n case blue:\n hue = (red - green) / chroma + 4\n break\n }\n\n hue /= 6\n }\n\n return new HSLColor(\n toFixedNumber(hue * 360, 2),\n toFixedNumber(saturation * 100, 2),\n toFixedNumber(lightness * 100, 2),\n toFixedNumber(this.alpha, 2),\n )\n }\n\n clone(): ColorType {\n return new RGBColor(this.red, this.green, this.blue, this.alpha)\n }\n\n getChannelRange(channel: ColorChannel): ColorChannelRange {\n switch (channel) {\n case \"red\":\n case \"green\":\n case \"blue\":\n return { minValue: 0x0, maxValue: 0xff, step: 0x1, pageSize: 0x11 }\n case \"alpha\":\n return { minValue: 0, maxValue: 1, step: 0.01, pageSize: 0.1 }\n default:\n throw new Error(\"Unknown color channel: \" + channel)\n }\n }\n\n toJSON(): Record<\"r\" | \"g\" | \"b\" | \"a\", number> {\n return { r: this.red, g: this.green, b: this.blue, a: this.alpha }\n }\n\n getFormat(): ColorFormat {\n return \"rgba\"\n }\n\n private static colorChannels: [ColorChannel, ColorChannel, ColorChannel] = [\"red\", \"green\", \"blue\"]\n\n getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n return RGBColor.colorChannels\n }\n}\n","const nativeColors /* @__PURE__ */ =\n \"aliceblue:f0f8ff,antiquewhite:faebd7,aqua:00ffff,aquamarine:7fffd4,azure:f0ffff,beige:f5f5dc,bisque:ffe4c4,black:000000,blanchedalmond:ffebcd,blue:0000ff,blueviolet:8a2be2,brown:a52a2a,burlywood:deb887,cadetblue:5f9ea0,chartreuse:7fff00,chocolate:d2691e,coral:ff7f50,cornflowerblue:6495ed,cornsilk:fff8dc,crimson:dc143c,cyan:00ffff,darkblue:00008b,darkcyan:008b8b,darkgoldenrod:b8860b,darkgray:a9a9a9,darkgreen:006400,darkkhaki:bdb76b,darkmagenta:8b008b,darkolivegreen:556b2f,darkorange:ff8c00,darkorchid:9932cc,darkred:8b0000,darksalmon:e9967a,darkseagreen:8fbc8f,darkslateblue:483d8b,darkslategray:2f4f4f,darkturquoise:00ced1,darkviolet:9400d3,deeppink:ff1493,deepskyblue:00bfff,dimgray:696969,dodgerblue:1e90ff,firebrick:b22222,floralwhite:fffaf0,forestgreen:228b22,fuchsia:ff00ff,gainsboro:dcdcdc,ghostwhite:f8f8ff,gold:ffd700,goldenrod:daa520,gray:808080,green:008000,greenyellow:adff2f,honeydew:f0fff0,hotpink:ff69b4,indianred:cd5c5c,indigo:4b0082,ivory:fffff0,khaki:f0e68c,lavender:e6e6fa,lavenderblush:fff0f5,lawngreen:7cfc00,lemonchiffon:fffacd,lightblue:add8e6,lightcoral:f08080,lightcyan:e0ffff,lightgoldenrodyellow:fafad2,lightgrey:d3d3d3,lightgreen:90ee90,lightpink:ffb6c1,lightsalmon:ffa07a,lightseagreen:20b2aa,lightskyblue:87cefa,lightslategray:778899,lightsteelblue:b0c4de,lightyellow:ffffe0,lime:00ff00,limegreen:32cd32,linen:faf0e6,magenta:ff00ff,maroon:800000,mediumaquamarine:66cdaa,mediumblue:0000cd,mediumorchid:ba55d3,mediumpurple:9370d8,mediumseagreen:3cb371,mediumslateblue:7b68ee,mediumspringgreen:00fa9a,mediumturquoise:48d1cc,mediumvioletred:c71585,midnightblue:191970,mintcream:f5fffa,mistyrose:ffe4e1,moccasin:ffe4b5,navajowhite:ffdead,navy:000080,oldlace:fdf5e6,olive:808000,olivedrab:6b8e23,orange:ffa500,orangered:ff4500,orchid:da70d6,palegoldenrod:eee8aa,palegreen:98fb98,paleturquoise:afeeee,palevioletred:d87093,papayawhip:ffefd5,peachpuff:ffdab9,peru:cd853f,pink:ffc0cb,plum:dda0dd,powderblue:b0e0e6,purple:800080,red:ff0000,rosybrown:bc8f8f,royalblue:4169e1,saddlebrown:8b4513,salmon:fa8072,sandybrown:f4a460,seagreen:2e8b57,seashell:fff5ee,sienna:a0522d,silver:c0c0c0,skyblue:87ceeb,slateblue:6a5acd,slategray:708090,snow:fffafa,springgreen:00ff7f,steelblue:4682b4,tan:d2b48c,teal:008080,thistle:d8bfd8,tomato:ff6347,turquoise:40e0d0,violet:ee82ee,wheat:f5deb3,white:ffffff,whitesmoke:f5f5f5,yellow:ffff00,yellowgreen:9acd32\"\n\nconst makeMap = (str: string) => {\n const map = new Map<string, string>()\n const list = str.split(\",\")\n for (let i = 0; i < list.length; i++) {\n const [key, val] = list[i].split(\":\")\n map.set(key, `#${val}`)\n }\n return map\n}\n\nexport const nativeColorMap /* @__PURE__ */ = makeMap(nativeColors)\n","import { HSBColor } from \"./hsb-color\"\nimport { HSLColor } from \"./hsl-color\"\nimport { nativeColorMap } from \"./native-color\"\nimport { RGBColor } from \"./rgb-color\"\nimport type { ColorType } from \"./types\"\n\nexport const parseColor = (value: string): ColorType => {\n if (nativeColorMap.has(value)) {\n return parseColor(nativeColorMap.get(value)!)\n }\n\n const result = RGBColor.parse(value) || HSBColor.parse(value) || HSLColor.parse(value)\n\n if (!result) {\n const error = new Error(\"Invalid color value: \" + value)\n Error.captureStackTrace?.(error, parseColor)\n throw error\n }\n\n return result\n}\n\nexport const normalizeColor = (v: string | ColorType) => {\n return typeof v === \"string\" ? parseColor(v) : v\n}\n"],"mappings":"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","names":["clampValue","mod","toFixedNumber","clampValue","toFixedNumber","clampValue","value","clampValue","clampValue","toFixedNumber","mod","clampValue","toFixedNumber"]}
1
+ {"version":3,"sources":["../src/color-format-gradient.ts","../src/area-gradient.ts","../src/color.ts","../src/hsb-color.ts","../src/hsl-color.ts","../src/rgb-color.ts","../src/native-color.ts","../src/parse-color.ts"],"sourcesContent":["export const generateRGB_R = (orientation: [string, string], dir: boolean, zValue: number) => {\n const maskImage = `linear-gradient(to ${orientation[Number(!dir)]}, transparent, #000)`\n const result = {\n areaStyles: {\n backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(${zValue},0,0),rgb(${zValue},255,0))`,\n },\n areaGradientStyles: {\n backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(${zValue},0,255),rgb(${zValue},255,255))`,\n WebkitMaskImage: maskImage,\n maskImage,\n },\n }\n return result\n}\n\nexport const generateRGB_G = (orientation: [string, string], dir: boolean, zValue: number) => {\n const maskImage = `linear-gradient(to ${orientation[Number(!dir)]}, transparent, #000)`\n const result = {\n areaStyles: {\n backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(0,${zValue},0),rgb(255,${zValue},0))`,\n },\n areaGradientStyles: {\n backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(0,${zValue},255),rgb(255,${zValue},255))`,\n WebkitMaskImage: maskImage,\n maskImage,\n },\n }\n return result\n}\n\nexport const generateRGB_B = (orientation: [string, string], dir: boolean, zValue: number) => {\n const maskImage = `linear-gradient(to ${orientation[Number(!dir)]}, transparent, #000)`\n const result = {\n areaStyles: {\n backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(0,0,${zValue}),rgb(255,0,${zValue}))`,\n },\n areaGradientStyles: {\n backgroundImage: `linear-gradient(to ${orientation[Number(dir)]},rgb(0,255,${zValue}),rgb(255,255,${zValue}))`,\n WebkitMaskImage: maskImage,\n maskImage,\n },\n }\n return result\n}\n\nexport const generateHSL_H = (orientation: [string, string], dir: boolean, zValue: number) => {\n const result = {\n areaStyles: {},\n areaGradientStyles: {\n background: [\n `linear-gradient(to ${\n orientation[Number(dir)]\n }, hsla(0,0%,0%,1) 0%, hsla(0,0%,0%,0) 50%, hsla(0,0%,100%,0) 50%, hsla(0,0%,100%,1) 100%)`,\n `linear-gradient(to ${orientation[Number(!dir)]},hsl(0,0%,50%),hsla(0,0%,50%,0))`,\n `hsl(${zValue}, 100%, 50%)`,\n ].join(\",\"),\n },\n }\n return result\n}\n\nexport const generateHSL_S = (orientation: [string, string], dir: boolean, alphaValue: number) => {\n const result = {\n areaStyles: {},\n areaGradientStyles: {\n background: [\n `linear-gradient(to ${\n orientation[Number(!dir)]\n }, hsla(0,0%,0%,${alphaValue}) 0%, hsla(0,0%,0%,0) 50%, hsla(0,0%,100%,0) 50%, hsla(0,0%,100%,${alphaValue}) 100%)`,\n `linear-gradient(to ${\n orientation[Number(dir)]\n },hsla(0,100%,50%,${alphaValue}),hsla(60,100%,50%,${alphaValue}),hsla(120,100%,50%,${alphaValue}),hsla(180,100%,50%,${alphaValue}),hsla(240,100%,50%,${alphaValue}),hsla(300,100%,50%,${alphaValue}),hsla(359,100%,50%,${alphaValue}))`,\n \"hsl(0, 0%, 50%)\",\n ].join(\",\"),\n },\n }\n return result\n}\n\nexport const generateHSL_L = (orientation: [string, string], dir: boolean, zValue: number) => {\n const result = {\n areaStyles: {},\n areaGradientStyles: {\n backgroundImage: [\n `linear-gradient(to ${orientation[Number(!dir)]},hsl(0,0%,${zValue}%),hsla(0,0%,${zValue}%,0))`,\n `linear-gradient(to ${\n orientation[Number(dir)]\n },hsl(0,100%,${zValue}%),hsl(60,100%,${zValue}%),hsl(120,100%,${zValue}%),hsl(180,100%,${zValue}%),hsl(240,100%,${zValue}%),hsl(300,100%,${zValue}%),hsl(360,100%,${zValue}%))`,\n ].join(\",\"),\n },\n }\n return result\n}\n\nexport const generateHSB_H = (orientation: [string, string], dir: boolean, zValue: number) => {\n const result = {\n areaStyles: {},\n areaGradientStyles: {\n background: [\n `linear-gradient(to ${orientation[Number(dir)]},hsl(0,0%,0%),hsla(0,0%,0%,0))`,\n `linear-gradient(to ${orientation[Number(!dir)]},hsl(0,0%,100%),hsla(0,0%,100%,0))`,\n `hsl(${zValue}, 100%, 50%)`,\n ].join(\",\"),\n },\n }\n return result\n}\n\nexport const generateHSB_S = (orientation: [string, string], dir: boolean, alphaValue: number) => {\n const result = {\n areaStyles: {},\n areaGradientStyles: {\n background: [\n `linear-gradient(to ${orientation[Number(!dir)]},hsla(0,0%,0%,${alphaValue}),hsla(0,0%,0%,0))`,\n `linear-gradient(to ${\n orientation[Number(dir)]\n },hsla(0,100%,50%,${alphaValue}),hsla(60,100%,50%,${alphaValue}),hsla(120,100%,50%,${alphaValue}),hsla(180,100%,50%,${alphaValue}),hsla(240,100%,50%,${alphaValue}),hsla(300,100%,50%,${alphaValue}),hsla(359,100%,50%,${alphaValue}))`,\n `linear-gradient(to ${orientation[Number(!dir)]},hsl(0,0%,0%),hsl(0,0%,100%))`,\n ].join(\",\"),\n },\n }\n return result\n}\n\nexport const generateHSB_B = (orientation: [string, string], dir: boolean, alphaValue: number) => {\n const result = {\n areaStyles: {},\n areaGradientStyles: {\n background: [\n `linear-gradient(to ${orientation[Number(!dir)]},hsla(0,0%,100%,${alphaValue}),hsla(0,0%,100%,0))`,\n `linear-gradient(to ${\n orientation[Number(dir)]\n },hsla(0,100%,50%,${alphaValue}),hsla(60,100%,50%,${alphaValue}),hsla(120,100%,50%,${alphaValue}),hsla(180,100%,50%,${alphaValue}),hsla(240,100%,50%,${alphaValue}),hsla(300,100%,50%,${alphaValue}),hsla(359,100%,50%,${alphaValue}))`,\n \"#000\",\n ].join(\",\"),\n },\n }\n return result\n}\n","import type { Color } from \"./color\"\nimport {\n generateRGB_R,\n generateRGB_G,\n generateRGB_B,\n generateHSL_H,\n generateHSB_H,\n generateHSL_S,\n generateHSB_S,\n generateHSB_B,\n generateHSL_L,\n} from \"./color-format-gradient\"\nimport type { ColorChannel } from \"./types\"\n\ninterface GradientOptions {\n xChannel: ColorChannel\n yChannel: ColorChannel\n dir?: \"rtl\" | \"ltr\"\n}\n\ninterface GradientStyles {\n areaStyles: Record<string, string>\n areaGradientStyles: Record<string, string>\n}\n\nexport function getColorAreaGradient(color: Color, options: GradientOptions): GradientStyles {\n const { xChannel, yChannel, dir: dirProp = \"ltr\" } = options\n\n const { zChannel } = color.getColorAxes({ xChannel, yChannel })\n const zValue = color.getChannelValue(zChannel)\n\n const { minValue: zMin, maxValue: zMax } = color.getChannelRange(zChannel)\n const orientation: [string, string] = [\"top\", dirProp === \"rtl\" ? \"left\" : \"right\"]\n\n let dir = false\n\n let background = { areaStyles: {}, areaGradientStyles: {} }\n\n let alphaValue = (zValue - zMin) / (zMax - zMin)\n let isHSL = color.getFormat() === \"hsla\"\n\n switch (zChannel) {\n case \"red\": {\n dir = xChannel === \"green\"\n background = generateRGB_R(orientation, dir, zValue)\n break\n }\n\n case \"green\": {\n dir = xChannel === \"red\"\n background = generateRGB_G(orientation, dir, zValue)\n break\n }\n\n case \"blue\": {\n dir = xChannel === \"red\"\n background = generateRGB_B(orientation, dir, zValue)\n break\n }\n\n case \"hue\": {\n dir = xChannel !== \"saturation\"\n if (isHSL) {\n background = generateHSL_H(orientation, dir, zValue)\n } else {\n background = generateHSB_H(orientation, dir, zValue)\n }\n break\n }\n\n case \"saturation\": {\n dir = xChannel === \"hue\"\n if (isHSL) {\n background = generateHSL_S(orientation, dir, alphaValue)\n } else {\n background = generateHSB_S(orientation, dir, alphaValue)\n }\n break\n }\n\n case \"brightness\": {\n dir = xChannel === \"hue\"\n background = generateHSB_B(orientation, dir, alphaValue)\n break\n }\n\n case \"lightness\": {\n dir = xChannel === \"hue\"\n background = generateHSL_L(orientation, dir, zValue)\n break\n }\n }\n\n return background\n}\n","import { clampValue, getPercentValue, getValuePercent, snapValueToStep } from \"@zag-js/numeric-range\"\nimport type {\n Color2DAxes,\n ColorAxes,\n ColorChannel,\n ColorChannelRange,\n ColorFormat,\n ColorStringFormat,\n ColorType,\n} from \"./types\"\n\nconst isEqualObject = (a: Record<string, number>, b: Record<string, number>): boolean => {\n if (Object.keys(a).length !== Object.keys(b).length) return false\n for (let key in a) if (a[key] !== b[key]) return false\n return true\n}\n\nexport abstract class Color implements ColorType {\n abstract toFormat(format: ColorFormat): ColorType\n abstract toJSON(): Record<string, number>\n abstract toString(format: ColorStringFormat): string\n abstract clone(): ColorType\n abstract getChannelRange(channel: ColorChannel): ColorChannelRange\n abstract getFormat(): ColorFormat\n abstract getChannels(): [ColorChannel, ColorChannel, ColorChannel]\n\n toHexInt(): number {\n return this.toFormat(\"rgba\").toHexInt()\n }\n\n getChannelValue(channel: ColorChannel): number {\n if (channel in this) return this[channel]\n throw new Error(\"Unsupported color channel: \" + channel)\n }\n\n getChannelValuePercent(channel: ColorChannel, valueToCheck?: number): number {\n const value = valueToCheck ?? this.getChannelValue(channel)\n const { minValue, maxValue } = this.getChannelRange(channel)\n return getValuePercent(value, minValue, maxValue)\n }\n\n getChannelPercentValue(channel: ColorChannel, percentToCheck: number): number {\n const { minValue, maxValue, step } = this.getChannelRange(channel)\n const percentValue = getPercentValue(percentToCheck, minValue, maxValue, step)\n return snapValueToStep(percentValue, minValue, maxValue, step)\n }\n\n withChannelValue(channel: ColorChannel, value: number): ColorType {\n const { minValue, maxValue } = this.getChannelRange(channel)\n if (channel in this) {\n let clone = this.clone()\n clone[channel] = clampValue(value, minValue, maxValue)\n return clone\n }\n\n throw new Error(\"Unsupported color channel: \" + channel)\n }\n\n getColorAxes(xyChannels: Color2DAxes): ColorAxes {\n let { xChannel, yChannel } = xyChannels\n let xCh = xChannel || this.getChannels().find((c) => c !== yChannel)\n let yCh = yChannel || this.getChannels().find((c) => c !== xCh)\n let zCh = this.getChannels().find((c) => c !== xCh && c !== yCh)\n return { xChannel: xCh!, yChannel: yCh!, zChannel: zCh! }\n }\n\n incrementChannel(channel: ColorChannel, stepSize: number): ColorType {\n const { minValue, maxValue, step } = this.getChannelRange(channel)\n const value = snapValueToStep(\n clampValue(this.getChannelValue(channel) + stepSize, minValue, maxValue),\n minValue,\n maxValue,\n step,\n )\n return this.withChannelValue(channel, value)\n }\n\n decrementChannel(channel: ColorChannel, stepSize: number): ColorType {\n return this.incrementChannel(channel, -stepSize)\n }\n\n isEqual(color: ColorType): boolean {\n const isSame = isEqualObject(this.toJSON(), color.toJSON())\n return isSame && this.getChannelValue(\"alpha\") === color.getChannelValue(\"alpha\")\n }\n}\n","import { clampValue, mod, toFixedNumber } from \"@zag-js/numeric-range\"\nimport { Color } from \"./color\"\nimport { HSLColor } from \"./hsl-color\"\nimport { RGBColor } from \"./rgb-color\"\nimport type { ColorChannel, ColorChannelRange, ColorFormat, ColorStringFormat, ColorType } from \"./types\"\n\nconst HSB_REGEX =\n /hsb\\(([-+]?\\d+(?:.\\d+)?\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d+(?:.\\d+)?%)\\)|hsba\\(([-+]?\\d+(?:.\\d+)?\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d(.\\d+)?)\\)/\n\nexport class HSBColor extends Color {\n constructor(\n private hue: number,\n private saturation: number,\n private brightness: number,\n private alpha: number,\n ) {\n super()\n }\n\n static parse(value: string): HSBColor | void {\n let m: RegExpMatchArray | null\n if ((m = value.match(HSB_REGEX))) {\n const [h, s, b, a] = (m[1] ?? m[2]).split(\",\").map((n) => Number(n.trim().replace(\"%\", \"\")))\n return new HSBColor(mod(h, 360), clampValue(s, 0, 100), clampValue(b, 0, 100), clampValue(a ?? 1, 0, 1))\n }\n }\n\n toString(format: ColorStringFormat) {\n switch (format) {\n case \"css\":\n return this.toHSL().toString(\"css\")\n case \"hex\":\n return this.toRGB().toString(\"hex\")\n case \"hexa\":\n return this.toRGB().toString(\"hexa\")\n case \"hsb\":\n return `hsb(${this.hue}, ${toFixedNumber(this.saturation, 2)}%, ${toFixedNumber(this.brightness, 2)}%)`\n case \"hsba\":\n return `hsba(${this.hue}, ${toFixedNumber(this.saturation, 2)}%, ${toFixedNumber(this.brightness, 2)}%, ${\n this.alpha\n })`\n case \"hsl\":\n return this.toHSL().toString(\"hsl\")\n case \"rgb\":\n return this.toRGB().toString(\"rgb\")\n default:\n return this.toFormat(format).toString(format)\n }\n }\n\n toFormat(format: ColorFormat): ColorType {\n switch (format) {\n case \"hsba\":\n return this\n case \"hsla\":\n return this.toHSL()\n case \"rgba\":\n return this.toRGB()\n default:\n throw new Error(\"Unsupported color conversion: hsb -> \" + format)\n }\n }\n\n /**\n * Converts a HSB color to HSL.\n * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_HSL.\n * @returns An HSLColor object.\n */\n private toHSL(): ColorType {\n let saturation = this.saturation / 100\n let brightness = this.brightness / 100\n let lightness = brightness * (1 - saturation / 2)\n saturation = lightness === 0 || lightness === 1 ? 0 : (brightness - lightness) / Math.min(lightness, 1 - lightness)\n\n return new HSLColor(\n toFixedNumber(this.hue, 2),\n toFixedNumber(saturation * 100, 2),\n toFixedNumber(lightness * 100, 2),\n toFixedNumber(this.alpha, 2),\n )\n }\n\n /**\n * Converts a HSV color value to RGB.\n * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSV_to_RGB_alternative.\n * @returns An RGBColor object.\n */\n private toRGB(): ColorType {\n let hue = this.hue\n let saturation = this.saturation / 100\n let brightness = this.brightness / 100\n\n let fn = (n: number, k = (n + hue / 60) % 6) =>\n brightness - saturation * brightness * Math.max(Math.min(k, 4 - k, 1), 0)\n\n return new RGBColor(\n Math.round(fn(5) * 255),\n Math.round(fn(3) * 255),\n Math.round(fn(1) * 255),\n toFixedNumber(this.alpha, 2),\n )\n }\n\n clone(): ColorType {\n return new HSBColor(this.hue, this.saturation, this.brightness, this.alpha)\n }\n\n getChannelRange(channel: ColorChannel): ColorChannelRange {\n switch (channel) {\n case \"hue\":\n return { minValue: 0, maxValue: 360, step: 1, pageSize: 15 }\n case \"saturation\":\n case \"brightness\":\n return { minValue: 0, maxValue: 100, step: 1, pageSize: 10 }\n case \"alpha\":\n return { minValue: 0, maxValue: 1, step: 0.01, pageSize: 0.1 }\n default:\n throw new Error(\"Unknown color channel: \" + channel)\n }\n }\n\n toJSON(): Record<\"h\" | \"s\" | \"b\" | \"a\", number> {\n return { h: this.hue, s: this.saturation, b: this.brightness, a: this.alpha }\n }\n\n getFormat(): ColorFormat {\n return \"hsba\"\n }\n\n private static colorChannels: [ColorChannel, ColorChannel, ColorChannel] = [\"hue\", \"saturation\", \"brightness\"]\n\n getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n return HSBColor.colorChannels\n }\n}\n","import { clampValue, mod, toFixedNumber } from \"@zag-js/numeric-range\"\nimport { Color } from \"./color\"\nimport { HSBColor } from \"./hsb-color\"\nimport { RGBColor } from \"./rgb-color\"\nimport type { ColorChannel, ColorChannelRange, ColorFormat, ColorStringFormat, ColorType } from \"./types\"\n\nexport const HSL_REGEX =\n /hsl\\(([-+]?\\d+(?:.\\d+)?\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d+(?:.\\d+)?%)\\)|hsla\\(([-+]?\\d+(?:.\\d+)?\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d+(?:.\\d+)?%\\s*,\\s*[-+]?\\d(.\\d+)?)\\)/\n\nexport class HSLColor extends Color {\n constructor(\n private hue: number,\n private saturation: number,\n private lightness: number,\n private alpha: number,\n ) {\n super()\n }\n\n static parse(value: string): HSLColor | void {\n let m: RegExpMatchArray | null\n if ((m = value.match(HSL_REGEX))) {\n const [h, s, l, a] = (m[1] ?? m[2]).split(\",\").map((n) => Number(n.trim().replace(\"%\", \"\")))\n return new HSLColor(mod(h, 360), clampValue(s, 0, 100), clampValue(l, 0, 100), clampValue(a ?? 1, 0, 1))\n }\n }\n\n toString(format: ColorStringFormat) {\n switch (format) {\n case \"hex\":\n return this.toRGB().toString(\"hex\")\n case \"hexa\":\n return this.toRGB().toString(\"hexa\")\n case \"hsl\":\n return `hsl(${this.hue}, ${toFixedNumber(this.saturation, 2)}%, ${toFixedNumber(this.lightness, 2)}%)`\n case \"css\":\n case \"hsla\":\n return `hsla(${this.hue}, ${toFixedNumber(this.saturation, 2)}%, ${toFixedNumber(this.lightness, 2)}%, ${\n this.alpha\n })`\n case \"hsb\":\n return this.toHSB().toString(\"hsb\")\n case \"rgb\":\n return this.toRGB().toString(\"rgb\")\n default:\n return this.toFormat(format).toString(format)\n }\n }\n\n toFormat(format: ColorFormat): ColorType {\n switch (format) {\n case \"hsla\":\n return this\n case \"hsba\":\n return this.toHSB()\n case \"rgba\":\n return this.toRGB()\n default:\n throw new Error(\"Unsupported color conversion: hsl -> \" + format)\n }\n }\n\n /**\n * Converts a HSL color to HSB.\n * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSL_to_HSV.\n * @returns An HSBColor object.\n */\n private toHSB(): ColorType {\n let saturation = this.saturation / 100\n let lightness = this.lightness / 100\n let brightness = lightness + saturation * Math.min(lightness, 1 - lightness)\n saturation = brightness === 0 ? 0 : 2 * (1 - lightness / brightness)\n return new HSBColor(\n toFixedNumber(this.hue, 2),\n toFixedNumber(saturation * 100, 2),\n toFixedNumber(brightness * 100, 2),\n toFixedNumber(this.alpha, 2),\n )\n }\n\n /**\n * Converts a HSL color to RGB.\n * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSL_to_RGB_alternative.\n * @returns An RGBColor object.\n */\n private toRGB(): ColorType {\n let hue = this.hue\n let saturation = this.saturation / 100\n let lightness = this.lightness / 100\n let a = saturation * Math.min(lightness, 1 - lightness)\n let fn = (n: number, k = (n + hue / 30) % 12) => lightness - a * Math.max(Math.min(k - 3, 9 - k, 1), -1)\n return new RGBColor(\n Math.round(fn(0) * 255),\n Math.round(fn(8) * 255),\n Math.round(fn(4) * 255),\n toFixedNumber(this.alpha, 2),\n )\n }\n\n clone(): ColorType {\n return new HSLColor(this.hue, this.saturation, this.lightness, this.alpha)\n }\n\n getChannelRange(channel: ColorChannel): ColorChannelRange {\n switch (channel) {\n case \"hue\":\n return { minValue: 0, maxValue: 360, step: 1, pageSize: 15 }\n case \"saturation\":\n case \"lightness\":\n return { minValue: 0, maxValue: 100, step: 1, pageSize: 10 }\n case \"alpha\":\n return { minValue: 0, maxValue: 1, step: 0.01, pageSize: 0.1 }\n default:\n throw new Error(\"Unknown color channel: \" + channel)\n }\n }\n\n toJSON(): Record<\"h\" | \"s\" | \"l\" | \"a\", number> {\n return { h: this.hue, s: this.saturation, l: this.lightness, a: this.alpha }\n }\n\n getFormat(): ColorFormat {\n return \"hsla\"\n }\n\n private static colorChannels: [ColorChannel, ColorChannel, ColorChannel] = [\"hue\", \"saturation\", \"lightness\"]\n\n getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n return HSLColor.colorChannels\n }\n}\n","import { clampValue, toFixedNumber } from \"@zag-js/numeric-range\"\nimport { Color } from \"./color\"\nimport { HSBColor } from \"./hsb-color\"\nimport { HSLColor } from \"./hsl-color\"\nimport type { ColorChannel, ColorChannelRange, ColorFormat, ColorStringFormat, ColorType } from \"./types\"\n\nexport class RGBColor extends Color {\n constructor(\n private red: number,\n private green: number,\n private blue: number,\n private alpha: number,\n ) {\n super()\n }\n\n static parse(value: string) {\n let colors: (number | undefined)[] = []\n\n // matching #rgb, #rgba, #rrggbb, #rrggbbaa\n if (/^#[\\da-f]+$/i.test(value) && [4, 5, 7, 9].includes(value.length)) {\n const values = (value.length < 6 ? value.replace(/[^#]/gi, \"$&$&\") : value).slice(1).split(\"\")\n while (values.length > 0) {\n colors.push(parseInt(values.splice(0, 2).join(\"\"), 16))\n }\n colors[3] = colors[3] !== undefined ? colors[3] / 255 : undefined\n }\n\n // matching rgb(rrr, ggg, bbb), rgba(rrr, ggg, bbb, 0.a)\n const match = value.match(/^rgba?\\((.*)\\)$/)\n\n if (match?.[1]) {\n colors = match[1]\n .split(\",\")\n .map((value) => Number(value.trim()))\n .map((num, i) => clampValue(num, 0, i < 3 ? 255 : 1))\n }\n\n //@ts-expect-error\n return colors.length < 3 ? undefined : new RGBColor(colors[0], colors[1], colors[2], colors[3] ?? 1)\n }\n\n toString(format: ColorStringFormat) {\n switch (format) {\n case \"hex\":\n return (\n \"#\" +\n (\n this.red.toString(16).padStart(2, \"0\") +\n this.green.toString(16).padStart(2, \"0\") +\n this.blue.toString(16).padStart(2, \"0\")\n ).toUpperCase()\n )\n case \"hexa\":\n return (\n \"#\" +\n (\n this.red.toString(16).padStart(2, \"0\") +\n this.green.toString(16).padStart(2, \"0\") +\n this.blue.toString(16).padStart(2, \"0\") +\n Math.round(this.alpha * 255)\n .toString(16)\n .padStart(2, \"0\")\n ).toUpperCase()\n )\n case \"rgb\":\n return `rgb(${this.red}, ${this.green}, ${this.blue})`\n case \"css\":\n case \"rgba\":\n return `rgba(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`\n case \"hsl\":\n return this.toHSL().toString(\"hsl\")\n case \"hsb\":\n return this.toHSB().toString(\"hsb\")\n default:\n return this.toFormat(format).toString(format)\n }\n }\n\n toFormat(format: ColorFormat): ColorType {\n switch (format) {\n case \"rgba\":\n return this\n case \"hsba\":\n return this.toHSB()\n case \"hsla\":\n return this.toHSL()\n default:\n throw new Error(\"Unsupported color conversion: rgb -> \" + format)\n }\n }\n\n toHexInt(): number {\n return (this.red << 16) | (this.green << 8) | this.blue\n }\n\n /**\n * Converts an RGB color value to HSB.\n * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#From_RGB.\n * @returns An HSBColor object.\n */\n private toHSB(): ColorType {\n const red = this.red / 255\n const green = this.green / 255\n const blue = this.blue / 255\n const min = Math.min(red, green, blue)\n const brightness = Math.max(red, green, blue)\n const chroma = brightness - min\n const saturation = brightness === 0 ? 0 : chroma / brightness\n let hue = 0 // achromatic\n\n if (chroma !== 0) {\n switch (brightness) {\n case red:\n hue = (green - blue) / chroma + (green < blue ? 6 : 0)\n break\n case green:\n hue = (blue - red) / chroma + 2\n break\n case blue:\n hue = (red - green) / chroma + 4\n break\n }\n\n hue /= 6\n }\n\n return new HSBColor(\n toFixedNumber(hue * 360, 2),\n toFixedNumber(saturation * 100, 2),\n toFixedNumber(brightness * 100, 2),\n toFixedNumber(this.alpha, 2),\n )\n }\n\n /**\n * Converts an RGB color value to HSL.\n * Conversion formula adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#From_RGB.\n * @returns An HSLColor object.\n */\n private toHSL(): ColorType {\n const red = this.red / 255\n const green = this.green / 255\n const blue = this.blue / 255\n const min = Math.min(red, green, blue)\n const max = Math.max(red, green, blue)\n const lightness = (max + min) / 2\n const chroma = max - min\n\n let hue = -1\n let saturation = -1\n\n if (chroma === 0) {\n hue = saturation = 0 // achromatic\n } else {\n saturation = chroma / (lightness < 0.5 ? max + min : 2 - max - min)\n\n switch (max) {\n case red:\n hue = (green - blue) / chroma + (green < blue ? 6 : 0)\n break\n case green:\n hue = (blue - red) / chroma + 2\n break\n case blue:\n hue = (red - green) / chroma + 4\n break\n }\n\n hue /= 6\n }\n\n return new HSLColor(\n toFixedNumber(hue * 360, 2),\n toFixedNumber(saturation * 100, 2),\n toFixedNumber(lightness * 100, 2),\n toFixedNumber(this.alpha, 2),\n )\n }\n\n clone(): ColorType {\n return new RGBColor(this.red, this.green, this.blue, this.alpha)\n }\n\n getChannelRange(channel: ColorChannel): ColorChannelRange {\n switch (channel) {\n case \"red\":\n case \"green\":\n case \"blue\":\n return { minValue: 0x0, maxValue: 0xff, step: 0x1, pageSize: 0x11 }\n case \"alpha\":\n return { minValue: 0, maxValue: 1, step: 0.01, pageSize: 0.1 }\n default:\n throw new Error(\"Unknown color channel: \" + channel)\n }\n }\n\n toJSON(): Record<\"r\" | \"g\" | \"b\" | \"a\", number> {\n return { r: this.red, g: this.green, b: this.blue, a: this.alpha }\n }\n\n getFormat(): ColorFormat {\n return \"rgba\"\n }\n\n private static colorChannels: [ColorChannel, ColorChannel, ColorChannel] = [\"red\", \"green\", \"blue\"]\n\n getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n return RGBColor.colorChannels\n }\n}\n","const nativeColors /* @__PURE__ */ =\n \"aliceblue:f0f8ff,antiquewhite:faebd7,aqua:00ffff,aquamarine:7fffd4,azure:f0ffff,beige:f5f5dc,bisque:ffe4c4,black:000000,blanchedalmond:ffebcd,blue:0000ff,blueviolet:8a2be2,brown:a52a2a,burlywood:deb887,cadetblue:5f9ea0,chartreuse:7fff00,chocolate:d2691e,coral:ff7f50,cornflowerblue:6495ed,cornsilk:fff8dc,crimson:dc143c,cyan:00ffff,darkblue:00008b,darkcyan:008b8b,darkgoldenrod:b8860b,darkgray:a9a9a9,darkgreen:006400,darkkhaki:bdb76b,darkmagenta:8b008b,darkolivegreen:556b2f,darkorange:ff8c00,darkorchid:9932cc,darkred:8b0000,darksalmon:e9967a,darkseagreen:8fbc8f,darkslateblue:483d8b,darkslategray:2f4f4f,darkturquoise:00ced1,darkviolet:9400d3,deeppink:ff1493,deepskyblue:00bfff,dimgray:696969,dodgerblue:1e90ff,firebrick:b22222,floralwhite:fffaf0,forestgreen:228b22,fuchsia:ff00ff,gainsboro:dcdcdc,ghostwhite:f8f8ff,gold:ffd700,goldenrod:daa520,gray:808080,green:008000,greenyellow:adff2f,honeydew:f0fff0,hotpink:ff69b4,indianred:cd5c5c,indigo:4b0082,ivory:fffff0,khaki:f0e68c,lavender:e6e6fa,lavenderblush:fff0f5,lawngreen:7cfc00,lemonchiffon:fffacd,lightblue:add8e6,lightcoral:f08080,lightcyan:e0ffff,lightgoldenrodyellow:fafad2,lightgrey:d3d3d3,lightgreen:90ee90,lightpink:ffb6c1,lightsalmon:ffa07a,lightseagreen:20b2aa,lightskyblue:87cefa,lightslategray:778899,lightsteelblue:b0c4de,lightyellow:ffffe0,lime:00ff00,limegreen:32cd32,linen:faf0e6,magenta:ff00ff,maroon:800000,mediumaquamarine:66cdaa,mediumblue:0000cd,mediumorchid:ba55d3,mediumpurple:9370d8,mediumseagreen:3cb371,mediumslateblue:7b68ee,mediumspringgreen:00fa9a,mediumturquoise:48d1cc,mediumvioletred:c71585,midnightblue:191970,mintcream:f5fffa,mistyrose:ffe4e1,moccasin:ffe4b5,navajowhite:ffdead,navy:000080,oldlace:fdf5e6,olive:808000,olivedrab:6b8e23,orange:ffa500,orangered:ff4500,orchid:da70d6,palegoldenrod:eee8aa,palegreen:98fb98,paleturquoise:afeeee,palevioletred:d87093,papayawhip:ffefd5,peachpuff:ffdab9,peru:cd853f,pink:ffc0cb,plum:dda0dd,powderblue:b0e0e6,purple:800080,red:ff0000,rosybrown:bc8f8f,royalblue:4169e1,saddlebrown:8b4513,salmon:fa8072,sandybrown:f4a460,seagreen:2e8b57,seashell:fff5ee,sienna:a0522d,silver:c0c0c0,skyblue:87ceeb,slateblue:6a5acd,slategray:708090,snow:fffafa,springgreen:00ff7f,steelblue:4682b4,tan:d2b48c,teal:008080,thistle:d8bfd8,tomato:ff6347,turquoise:40e0d0,violet:ee82ee,wheat:f5deb3,white:ffffff,whitesmoke:f5f5f5,yellow:ffff00,yellowgreen:9acd32\"\n\nconst makeMap = (str: string) => {\n const map = new Map<string, string>()\n const list = str.split(\",\")\n for (let i = 0; i < list.length; i++) {\n const [key, val] = list[i].split(\":\")\n map.set(key, `#${val}`)\n }\n return map\n}\n\nexport const nativeColorMap /* @__PURE__ */ = makeMap(nativeColors)\n","import { HSBColor } from \"./hsb-color\"\nimport { HSLColor } from \"./hsl-color\"\nimport { nativeColorMap } from \"./native-color\"\nimport { RGBColor } from \"./rgb-color\"\nimport type { ColorType } from \"./types\"\n\nexport const parseColor = (value: string): ColorType => {\n if (nativeColorMap.has(value)) {\n return parseColor(nativeColorMap.get(value)!)\n }\n\n const result = RGBColor.parse(value) || HSBColor.parse(value) || HSLColor.parse(value)\n\n if (!result) {\n const error = new Error(\"Invalid color value: \" + value)\n Error.captureStackTrace?.(error, parseColor)\n throw error\n }\n\n return result\n}\n\nexport const normalizeColor = (v: string | ColorType) => {\n return typeof v === \"string\" ? parseColor(v) : v\n}\n"],"mappings":"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","names":["clampValue","mod","toFixedNumber","clampValue","toFixedNumber","clampValue","value","clampValue","clampValue","toFixedNumber","mod","clampValue","toFixedNumber"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zag-js/color-utils",
3
- "version": "0.53.0",
3
+ "version": "0.55.0",
4
4
  "description": "Color utilities for zag.js",
5
5
  "keywords": [
6
6
  "js",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "clean-package": "../../../clean-package.config.json",
27
27
  "dependencies": {
28
- "@zag-js/numeric-range": "0.53.0"
28
+ "@zag-js/numeric-range": "0.55.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "clean-package": "2.2.0"