{"version":3,"file":"primeng-inputcolor.mjs","sources":["../../src/inputcolor/color-manager.ts","../../src/inputcolor/inputcolor.token.ts","../../src/inputcolor/inputcolor-area.ts","../../src/inputcolor/inputcolor-area-background.ts","../../src/inputcolor/inputcolor-area-handle.ts","../../src/inputcolor/inputcolor-eyedropper.ts","../../src/inputcolor/inputcolor-input.ts","../../src/inputcolor/inputcolor-slider.ts","../../src/inputcolor/inputcolor-slider-handle.ts","../../src/inputcolor/inputcolor-slider-track.ts","../../src/inputcolor/inputcolor-swatch.ts","../../src/inputcolor/inputcolor-swatch-background.ts","../../src/inputcolor/inputcolor-transparency-grid.ts","../../src/inputcolor/style/inputcolorstyle.ts","../../src/inputcolor/inputcolor.ts","../../src/inputcolor/primeng-inputcolor.ts"],"sourcesContent":["export type ColorSpace = 'hsba' | 'hsla' | 'rgba' | 'hexa' | 'oklch';\n\nexport type ColorOutputFormat = ColorSpace | 'hex' | 'rgb' | 'hsl' | 'hsb' | 'oklcha' | 'css';\n\nexport type ColorChannel = 'hue' | 'saturation' | 'brightness' | 'lightness' | 'red' | 'green' | 'blue' | 'alpha' | 'hex' | 'L' | 'C' | 'H' | 'oklchLightness' | 'oklchChroma' | 'oklchHue';\n\nexport type ColorSliderChannel = 'hue' | 'saturation' | 'brightness' | 'lightness' | 'red' | 'green' | 'blue' | 'alpha' | 'L' | 'C' | 'H' | 'oklchLightness' | 'oklchChroma' | 'oklchHue';\n\nexport type ColorInputChannel = ColorChannel | 'css';\n\nexport interface ColorChannelRange {\n    minValue: number;\n    maxValue: number;\n    step: number;\n    pageStep: number;\n}\n\nexport interface Color2DAxes {\n    xChannel: ColorSliderChannel;\n    yChannel: ColorSliderChannel;\n}\n\nexport interface Color3DAxes extends Color2DAxes {\n    zChannel: ColorSliderChannel;\n}\n\nexport interface ColorOutput {\n    toString(format?: ColorOutputFormat): string;\n    toHex(): string;\n    toHexa(): string;\n    toHexInt(): number;\n    toRgbString(): string;\n    toHslString(): string;\n    toHsbString(): string;\n}\n\nexport type ColorInstance = HSBColor | HSLColor | RGBColor | OKLCHColor;\n\nfunction clamp(value: number, min: number, max: number): number {\n    return Math.min(Math.max(value, min), max);\n}\n\nfunction round(value: number, decimals: number = 0): number {\n    const factor = Math.pow(10, decimals);\n    return Math.round(value * factor) / factor;\n}\n\nfunction multiplyMatrices(matrix: number[], vector: number[]): number[] {\n    return [matrix[0] * vector[0] + matrix[1] * vector[1] + matrix[2] * vector[2], matrix[3] * vector[0] + matrix[4] * vector[1] + matrix[5] * vector[2], matrix[6] * vector[0] + matrix[7] * vector[1] + matrix[8] * vector[2]];\n}\n\nfunction mod(n: number, m: number): number {\n    return ((n % m) + m) % m;\n}\n\n/**\n * Snaps a value to the nearest step increment within min/max bounds.\n * @example snap(23.7, 0, 100, 5) => 25\n * @example snap(0.234, 0, 1, 0.01) => 0.23\n */\nexport function snapValue(value: number, min: number, max: number, step: number): number {\n    const clamped = clamp(value, min, max);\n    const offset = clamped - min;\n    const steps = Math.round(offset / step);\n    const snapped = min + steps * step;\n    const precision = (step.toString().split('.')[1] || '').length;\n    return parseFloat(snapped.toFixed(precision));\n}\n\nexport abstract class Color implements ColorOutput {\n    abstract readonly colorSpace: ColorSpace;\n\n    abstract getChannelValue(channel: ColorChannel): number;\n    abstract setChannelValue(channel: ColorChannel, value: number): ColorInstance;\n    abstract toHSB(): HSBColor;\n    abstract toHSL(): HSLColor;\n    abstract toRGB(): RGBColor;\n    abstract toOKLCH(): OKLCHColor;\n    abstract clone(): ColorInstance;\n    abstract toJSON(): Record<string, number>;\n    abstract getFormat(): ColorSpace;\n    abstract getChannels(): [ColorChannel, ColorChannel, ColorChannel];\n    abstract getChannelRange(channel: ColorChannel): ColorChannelRange;\n\n    get alpha(): number {\n        return this.getChannelValue('alpha');\n    }\n\n    getSpaceAxes(xyChannels: Color2DAxes): Color3DAxes {\n        const { xChannel, yChannel } = xyChannels;\n        if (xChannel === yChannel) {\n            throw new Error('xChannel and yChannel cannot be the same');\n        }\n        const zChannel = this.getChannels().find((channel) => channel !== xChannel && channel !== yChannel);\n        if (!zChannel) {\n            throw new Error('zChannel not found');\n        }\n        return { xChannel, yChannel, zChannel: zChannel as ColorSliderChannel };\n    }\n\n    incChannelValue(channel: ColorChannel, step: number): ColorInstance {\n        const range = this.getChannelRange(channel);\n        const currentValue = this.getChannelValue(channel);\n        const newValue = snapValue(clamp(currentValue + step, range.minValue, range.maxValue), range.minValue, range.maxValue, range.step);\n        return this.setChannelValue(channel, newValue);\n    }\n\n    decChannelValue(channel: ColorChannel, step: number): ColorInstance {\n        return this.incChannelValue(channel, -step);\n    }\n\n    toHex(): string {\n        const rgb = this.toRGB();\n        const r = Math.round(rgb.red).toString(16).padStart(2, '0');\n        const g = Math.round(rgb.green).toString(16).padStart(2, '0');\n        const b = Math.round(rgb.blue).toString(16).padStart(2, '0');\n        return `#${r}${g}${b}`;\n    }\n\n    toHexa(): string {\n        const hex = this.toHex();\n        if (this.alpha < 1) {\n            const a = Math.round(this.alpha * 255)\n                .toString(16)\n                .padStart(2, '0');\n            return `${hex}${a}`;\n        }\n        return hex;\n    }\n\n    toHexInt(): number {\n        const rgb = this.toRGB();\n        return (Math.round(rgb.red) << 16) | (Math.round(rgb.green) << 8) | Math.round(rgb.blue);\n    }\n\n    toRgbString(): string {\n        const rgb = this.toRGB();\n        const r = Math.round(rgb.red);\n        const g = Math.round(rgb.green);\n        const b = Math.round(rgb.blue);\n        if (this.alpha < 1) {\n            return `rgba(${r}, ${g}, ${b}, ${round(this.alpha, 2)})`;\n        }\n        return `rgb(${r}, ${g}, ${b})`;\n    }\n\n    toHslString(): string {\n        const hsl = this.toHSL();\n        const h = Math.round(hsl.hue) % 360;\n        const s = Math.round(hsl.saturation);\n        const l = Math.round(hsl.lightness);\n        if (this.alpha < 1) {\n            return `hsla(${h}, ${s}%, ${l}%, ${round(this.alpha, 2)})`;\n        }\n        return `hsl(${h}, ${s}%, ${l}%)`;\n    }\n\n    toHsbString(): string {\n        const hsb = this.toHSB();\n        const h = Math.round(hsb.hue) % 360;\n        const s = Math.round(hsb.saturation);\n        const b = Math.round(hsb.brightness);\n        if (this.alpha < 1) {\n            return `hsba(${h}, ${s}%, ${b}%, ${round(this.alpha, 2)})`;\n        }\n        return `hsb(${h}, ${s}%, ${b}%)`;\n    }\n\n    toString(format?: ColorOutputFormat): string {\n        const f = format || this.colorSpace;\n        switch (f) {\n            case 'hex':\n                return this.toHex();\n            case 'hexa':\n                return this.toHexa();\n            case 'rgb':\n            case 'rgba':\n                return this.toRgbString();\n            case 'hsl':\n            case 'hsla':\n                return this.toHslString();\n            case 'hsb':\n            case 'hsba':\n                return this.toHsbString();\n            case 'oklch':\n                return this.toOKLCH().toString('oklch');\n            case 'oklcha':\n                return this.toOKLCH().toString('oklcha');\n            case 'css':\n                return this.toHex();\n            default:\n                return this.toHex();\n        }\n    }\n\n    toFormat(format: ColorSpace): ColorInstance {\n        switch (format) {\n            case 'hsba':\n                return this.toHSB();\n            case 'hsla':\n                return this.toHSL();\n            case 'rgba':\n                return this.toRGB();\n            case 'hexa':\n                return this.toRGB();\n            case 'oklch':\n                return this.toOKLCH();\n            default:\n                return this.toHSB();\n        }\n    }\n}\n\nexport class HSBColor extends Color {\n    readonly colorSpace: ColorSpace = 'hsba';\n\n    constructor(\n        public hue: number,\n        public saturation: number,\n        public brightness: number,\n        private _alpha: number = 1\n    ) {\n        super();\n        this.hue = hue >= 0 && hue <= 360 ? hue : mod(hue, 360);\n        this.saturation = clamp(saturation, 0, 100);\n        this.brightness = clamp(brightness, 0, 100);\n        this._alpha = clamp(_alpha, 0, 1);\n    }\n\n    getChannelValue(channel: ColorChannel): number {\n        switch (channel) {\n            case 'hue':\n                return this.hue;\n            case 'saturation':\n                return this.saturation;\n            case 'brightness':\n                return this.brightness;\n            case 'alpha':\n                return this._alpha;\n            case 'lightness':\n                return this.toHSL().getChannelValue(channel);\n            case 'L':\n            case 'C':\n            case 'H':\n            case 'oklchLightness':\n            case 'oklchChroma':\n            case 'oklchHue':\n                return this.toOKLCH().getChannelValue(channel);\n            default:\n                return this.toRGB().getChannelValue(channel);\n        }\n    }\n\n    setChannelValue(channel: ColorChannel, value: number): ColorInstance {\n        switch (channel) {\n            case 'hue':\n                return new HSBColor(value, this.saturation, this.brightness, this._alpha);\n            case 'saturation':\n                return new HSBColor(this.hue, value, this.brightness, this._alpha);\n            case 'brightness':\n                return new HSBColor(this.hue, this.saturation, value, this._alpha);\n            case 'alpha':\n                return new HSBColor(this.hue, this.saturation, this.brightness, value);\n            case 'lightness': {\n                const hsl = this.toHSL().setChannelValue(channel, value);\n                return hsl.toHSB();\n            }\n            case 'L':\n            case 'C':\n            case 'H':\n            case 'oklchLightness':\n            case 'oklchChroma':\n            case 'oklchHue': {\n                const oklch = this.toOKLCH().setChannelValue(channel, value);\n                return oklch.toHSB();\n            }\n            default: {\n                const rgb = this.toRGB().setChannelValue(channel, value);\n                return rgb.toHSB();\n            }\n        }\n    }\n\n    toHSB(): HSBColor {\n        return this.clone();\n    }\n\n    toHSL(): HSLColor {\n        const h = this.hue;\n        const s = this.saturation / 100;\n        const b = this.brightness / 100;\n\n        const l = b * (1 - s / 2);\n        const sl = l === 0 || l === 1 ? 0 : ((b - l) / Math.min(l, 1 - l)) * 100;\n\n        return new HSLColor(h, sl, l * 100, this._alpha);\n    }\n\n    toRGB(): RGBColor {\n        const h = this.hue / 360;\n        const s = this.saturation / 100;\n        const b = this.brightness / 100;\n\n        let r: number, g: number, bl: number;\n\n        const i = Math.floor(h * 6);\n        const f = h * 6 - i;\n        const p = b * (1 - s);\n        const q = b * (1 - f * s);\n        const t = b * (1 - (1 - f) * s);\n\n        switch (i % 6) {\n            case 0:\n                r = b;\n                g = t;\n                bl = p;\n                break;\n            case 1:\n                r = q;\n                g = b;\n                bl = p;\n                break;\n            case 2:\n                r = p;\n                g = b;\n                bl = t;\n                break;\n            case 3:\n                r = p;\n                g = q;\n                bl = b;\n                break;\n            case 4:\n                r = t;\n                g = p;\n                bl = b;\n                break;\n            case 5:\n                r = b;\n                g = p;\n                bl = q;\n                break;\n            default:\n                r = 0;\n                g = 0;\n                bl = 0;\n        }\n\n        return new RGBColor(r * 255, g * 255, bl * 255, this._alpha);\n    }\n\n    toOKLCH(): OKLCHColor {\n        return this.toRGB().toOKLCH();\n    }\n\n    clone(): HSBColor {\n        return new HSBColor(this.hue, this.saturation, this.brightness, this._alpha);\n    }\n\n    toJSON(): Record<string, number> {\n        return {\n            hue: this.hue,\n            saturation: this.saturation,\n            brightness: this.brightness,\n            alpha: this._alpha\n        };\n    }\n\n    getFormat(): ColorSpace {\n        return 'hsba';\n    }\n\n    getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n        return ['hue', 'saturation', 'brightness'];\n    }\n\n    getChannelRange(channel: ColorChannel): ColorChannelRange {\n        switch (channel) {\n            case 'hue':\n                return { minValue: 0, maxValue: 360, step: 1, pageStep: 15 };\n            case 'saturation':\n            case 'brightness':\n                return { minValue: 0, maxValue: 100, step: 1, pageStep: 10 };\n            case 'alpha':\n                return { minValue: 0, maxValue: 1, step: 0.01, pageStep: 0.1 };\n            case 'lightness':\n                return this.toHSL().getChannelRange(channel);\n            case 'L':\n            case 'C':\n            case 'H':\n            case 'oklchLightness':\n            case 'oklchChroma':\n            case 'oklchHue':\n                return this.toOKLCH().getChannelRange(channel);\n            case 'red':\n            case 'green':\n            case 'blue':\n                return this.toRGB().getChannelRange(channel);\n            default:\n                throw new Error(`Unknown color channel: ${channel}`);\n        }\n    }\n}\n\nexport class HSLColor extends Color {\n    readonly colorSpace: ColorSpace = 'hsla';\n\n    constructor(\n        public hue: number,\n        public saturation: number,\n        public lightness: number,\n        private _alpha: number = 1\n    ) {\n        super();\n        this.hue = hue >= 0 && hue <= 360 ? hue : mod(hue, 360);\n        this.saturation = clamp(saturation, 0, 100);\n        this.lightness = clamp(lightness, 0, 100);\n        this._alpha = clamp(_alpha, 0, 1);\n    }\n\n    getChannelValue(channel: ColorChannel): number {\n        switch (channel) {\n            case 'hue':\n                return this.hue;\n            case 'saturation':\n                return this.saturation;\n            case 'lightness':\n                return this.lightness;\n            case 'alpha':\n                return this._alpha;\n            case 'brightness':\n                return this.toHSB().getChannelValue(channel);\n            case 'L':\n            case 'C':\n            case 'H':\n            case 'oklchLightness':\n            case 'oklchChroma':\n            case 'oklchHue':\n                return this.toOKLCH().getChannelValue(channel);\n            default:\n                return this.toRGB().getChannelValue(channel);\n        }\n    }\n\n    setChannelValue(channel: ColorChannel, value: number): ColorInstance {\n        switch (channel) {\n            case 'hue':\n                return new HSLColor(value, this.saturation, this.lightness, this._alpha);\n            case 'saturation':\n                return new HSLColor(this.hue, value, this.lightness, this._alpha);\n            case 'lightness':\n                return new HSLColor(this.hue, this.saturation, value, this._alpha);\n            case 'alpha':\n                return new HSLColor(this.hue, this.saturation, this.lightness, value);\n            case 'brightness': {\n                const hsb = this.toHSB().setChannelValue(channel, value);\n                return hsb.toHSL();\n            }\n            case 'L':\n            case 'C':\n            case 'H':\n            case 'oklchLightness':\n            case 'oklchChroma':\n            case 'oklchHue': {\n                const oklch = this.toOKLCH().setChannelValue(channel, value);\n                return oklch.toHSL();\n            }\n            default: {\n                const rgb = this.toRGB().setChannelValue(channel, value);\n                return rgb.toHSL();\n            }\n        }\n    }\n\n    toHSB(): HSBColor {\n        const h = this.hue;\n        const s = this.saturation / 100;\n        const l = this.lightness / 100;\n\n        const b = l + s * Math.min(l, 1 - l);\n        const sb = b === 0 ? 0 : 2 * (1 - l / b);\n\n        return new HSBColor(h, sb * 100, b * 100, this._alpha);\n    }\n\n    toHSL(): HSLColor {\n        return this.clone();\n    }\n\n    toRGB(): RGBColor {\n        const h = this.hue;\n        const s = this.saturation / 100;\n        const l = this.lightness / 100;\n\n        const a = s * Math.min(l, 1 - l);\n        const f = (n: number) => {\n            const k = (n + h / 30) % 12;\n            return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n        };\n\n        return new RGBColor(f(0) * 255, f(8) * 255, f(4) * 255, this._alpha);\n    }\n\n    toOKLCH(): OKLCHColor {\n        return this.toRGB().toOKLCH();\n    }\n\n    clone(): HSLColor {\n        return new HSLColor(this.hue, this.saturation, this.lightness, this._alpha);\n    }\n\n    toJSON(): Record<string, number> {\n        return {\n            hue: this.hue,\n            saturation: this.saturation,\n            lightness: this.lightness,\n            alpha: this._alpha\n        };\n    }\n\n    getFormat(): ColorSpace {\n        return 'hsla';\n    }\n\n    getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n        return ['hue', 'saturation', 'lightness'];\n    }\n\n    getChannelRange(channel: ColorChannel): ColorChannelRange {\n        switch (channel) {\n            case 'hue':\n                return { minValue: 0, maxValue: 360, step: 1, pageStep: 15 };\n            case 'saturation':\n            case 'lightness':\n                return { minValue: 0, maxValue: 100, step: 1, pageStep: 10 };\n            case 'alpha':\n                return { minValue: 0, maxValue: 1, step: 0.01, pageStep: 0.1 };\n            case 'brightness':\n                return this.toHSB().getChannelRange(channel);\n            case 'L':\n            case 'C':\n            case 'H':\n            case 'oklchLightness':\n            case 'oklchChroma':\n            case 'oklchHue':\n                return this.toOKLCH().getChannelRange(channel);\n            case 'red':\n            case 'green':\n            case 'blue':\n                return this.toRGB().getChannelRange(channel);\n            default:\n                throw new Error(`Unknown color channel: ${channel}`);\n        }\n    }\n}\n\nexport class RGBColor extends Color {\n    readonly colorSpace: ColorSpace = 'rgba';\n\n    constructor(\n        public red: number,\n        public green: number,\n        public blue: number,\n        private _alpha: number = 1\n    ) {\n        super();\n        this.red = clamp(red, 0, 255);\n        this.green = clamp(green, 0, 255);\n        this.blue = clamp(blue, 0, 255);\n        this._alpha = clamp(_alpha, 0, 1);\n    }\n\n    getChannelValue(channel: ColorChannel): number {\n        switch (channel) {\n            case 'red':\n                return this.red;\n            case 'green':\n                return this.green;\n            case 'blue':\n                return this.blue;\n            case 'alpha':\n                return this._alpha;\n            case 'hue':\n            case 'saturation':\n            case 'brightness':\n                return this.toHSB().getChannelValue(channel);\n            case 'lightness':\n                return this.toHSL().getChannelValue(channel);\n            case 'L':\n            case 'C':\n            case 'H':\n            case 'oklchLightness':\n            case 'oklchChroma':\n            case 'oklchHue':\n                return this.toOKLCH().getChannelValue(channel);\n            default:\n                return this.toHSB().getChannelValue(channel);\n        }\n    }\n\n    setChannelValue(channel: ColorChannel, value: number): ColorInstance {\n        switch (channel) {\n            case 'red':\n                return new RGBColor(value, this.green, this.blue, this._alpha);\n            case 'green':\n                return new RGBColor(this.red, value, this.blue, this._alpha);\n            case 'blue':\n                return new RGBColor(this.red, this.green, value, this._alpha);\n            case 'alpha':\n                return new RGBColor(this.red, this.green, this.blue, value);\n            case 'hue':\n            case 'saturation':\n            case 'brightness': {\n                const hsb = this.toHSB().setChannelValue(channel, value);\n                return hsb.toRGB();\n            }\n            case 'lightness': {\n                const hsl = this.toHSL().setChannelValue(channel, value);\n                return hsl.toRGB();\n            }\n            case 'L':\n            case 'C':\n            case 'H':\n            case 'oklchLightness':\n            case 'oklchChroma':\n            case 'oklchHue': {\n                const oklch = this.toOKLCH().setChannelValue(channel, value);\n                return oklch.toRGB();\n            }\n            default: {\n                const hsb = this.toHSB().setChannelValue(channel, value);\n                return hsb.toRGB();\n            }\n        }\n    }\n\n    toHSB(): HSBColor {\n        const r = this.red / 255;\n        const g = this.green / 255;\n        const b = this.blue / 255;\n\n        const max = Math.max(r, g, b);\n        const min = Math.min(r, g, b);\n        const d = max - min;\n\n        let h = 0;\n        const s = max === 0 ? 0 : d / max;\n        const v = max;\n\n        if (d !== 0) {\n            switch (max) {\n                case r:\n                    h = ((g - b) / d + (g < b ? 6 : 0)) / 6;\n                    break;\n                case g:\n                    h = ((b - r) / d + 2) / 6;\n                    break;\n                case b:\n                    h = ((r - g) / d + 4) / 6;\n                    break;\n            }\n        }\n\n        return new HSBColor(h * 360, s * 100, v * 100, this._alpha);\n    }\n\n    toHSL(): HSLColor {\n        const r = this.red / 255;\n        const g = this.green / 255;\n        const b = this.blue / 255;\n\n        const max = Math.max(r, g, b);\n        const min = Math.min(r, g, b);\n        const d = max - min;\n        const l = (max + min) / 2;\n\n        let h = 0;\n        let s = 0;\n\n        if (d !== 0) {\n            s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n            switch (max) {\n                case r:\n                    h = ((g - b) / d + (g < b ? 6 : 0)) / 6;\n                    break;\n                case g:\n                    h = ((b - r) / d + 2) / 6;\n                    break;\n                case b:\n                    h = ((r - g) / d + 4) / 6;\n                    break;\n            }\n        }\n\n        return new HSLColor(h * 360, s * 100, l * 100, this._alpha);\n    }\n\n    toRGB(): RGBColor {\n        return this.clone();\n    }\n\n    toOKLCH(): OKLCHColor {\n        const rgb = [this.red / 255, this.green / 255, this.blue / 255];\n        const rgbLinear = rgb.map((c) => (Math.abs(c) <= 0.04045 ? c / 12.92 : (c < 0 ? -1 : 1) * ((Math.abs(c) + 0.055) / 1.055) ** 2.4));\n\n        const xyz = multiplyMatrices([0.41239079926595934, 0.357584339383878, 0.1804807884018343, 0.21263900587151027, 0.715168678767756, 0.07219231536073371, 0.01933081871559182, 0.11919477979462598, 0.9505321522496607], rgbLinear);\n        const LMS = multiplyMatrices([0.819022437996703, 0.3619062600528904, -0.1288737815209879, 0.0329836539323885, 0.9292868615863434, 0.0361446663506424, 0.0481771893596242, 0.2642395317527308, 0.6335478284694309], xyz);\n        const LMSg = LMS.map((val) => Math.cbrt(val));\n\n        const [L, a, b] = multiplyMatrices([0.210454268309314, 0.7936177747023054, -0.0040720430116193, 1.9779985324311684, -2.4285922420485799, 0.450593709617411, 0.0259040424655478, 0.7827717124575296, -0.8086757549230774], LMSg);\n\n        const C = Math.sqrt(a ** 2 + b ** 2);\n        const H = Math.abs(a) < 0.0002 && Math.abs(b) < 0.0002 ? NaN : ((((Math.atan2(b, a) * 180) / Math.PI) % 360) + 360) % 360;\n\n        const outL = Number(Math.min(1, Math.max(0, L)).toFixed(4));\n        const outC = Number(C.toFixed(4));\n        const outH = Number.isNaN(H) ? NaN : Number(H.toFixed(2));\n\n        return new OKLCHColor(outL, outC, outH, Number(this._alpha.toFixed(2)));\n    }\n\n    clone(): RGBColor {\n        return new RGBColor(this.red, this.green, this.blue, this._alpha);\n    }\n\n    toJSON(): Record<string, number> {\n        return {\n            red: this.red,\n            green: this.green,\n            blue: this.blue,\n            alpha: this._alpha\n        };\n    }\n\n    getFormat(): ColorSpace {\n        return 'rgba';\n    }\n\n    getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n        return ['red', 'green', 'blue'];\n    }\n\n    getChannelRange(channel: ColorChannel): ColorChannelRange {\n        switch (channel) {\n            case 'red':\n            case 'green':\n            case 'blue':\n                return { minValue: 0, maxValue: 255, step: 1, pageStep: 17 };\n            case 'alpha':\n                return { minValue: 0, maxValue: 1, step: 0.01, pageStep: 0.1 };\n            case 'hue':\n            case 'saturation':\n            case 'brightness':\n                return this.toHSB().getChannelRange(channel);\n            case 'lightness':\n                return this.toHSL().getChannelRange(channel);\n            case 'L':\n            case 'C':\n            case 'H':\n            case 'oklchLightness':\n            case 'oklchChroma':\n            case 'oklchHue':\n                return this.toOKLCH().getChannelRange(channel);\n            default:\n                throw new Error(`Unknown color channel: ${channel}`);\n        }\n    }\n}\n\nexport class OKLCHColor extends Color {\n    readonly colorSpace: ColorSpace = 'oklch';\n\n    constructor(\n        public L: number,\n        public C: number,\n        public H: number,\n        private _alpha: number = 1\n    ) {\n        super();\n        this.L = clamp(L, 0, 1);\n        this.C = clamp(C, 0, 0.4);\n        this.H = Number.isNaN(H) ? NaN : H >= 0 && H <= 360 ? H : mod(H, 360);\n        this._alpha = clamp(_alpha, 0, 1);\n    }\n\n    getChannelValue(channel: ColorChannel): number {\n        switch (channel) {\n            case 'L':\n            case 'oklchLightness':\n                return this.L;\n            case 'C':\n            case 'oklchChroma':\n                return this.C;\n            case 'H':\n            case 'oklchHue':\n                return this.H;\n            case 'alpha':\n                return this._alpha;\n            default:\n                return this.toRGB().getChannelValue(channel);\n        }\n    }\n\n    setChannelValue(channel: ColorChannel, value: number): ColorInstance {\n        switch (channel) {\n            case 'L':\n            case 'oklchLightness':\n                return new OKLCHColor(value, this.C, this.H, this._alpha);\n            case 'C':\n            case 'oklchChroma':\n                return new OKLCHColor(this.L, value, this.H, this._alpha);\n            case 'H':\n            case 'oklchHue':\n                return new OKLCHColor(this.L, this.C, value, this._alpha);\n            case 'alpha':\n                return new OKLCHColor(this.L, this.C, this.H, value);\n            default: {\n                const rgb = this.toRGB().setChannelValue(channel, value);\n                return rgb.toOKLCH();\n            }\n        }\n    }\n\n    toHSB(): HSBColor {\n        return this.toRGB().toHSB();\n    }\n\n    toHSL(): HSLColor {\n        return this.toRGB().toHSL();\n    }\n\n    toRGB(): RGBColor {\n        const hRad = (this.H * Math.PI) / 180;\n        const a = Number.isNaN(this.H) ? 0 : this.C * Math.cos(hRad);\n        const b = Number.isNaN(this.H) ? 0 : this.C * Math.sin(hRad);\n\n        const l_ = this.L + 0.3963377774 * a + 0.2158037573 * b;\n        const m_ = this.L - 0.1055613458 * a - 0.0638541728 * b;\n        const s_ = this.L - 0.0894841775 * a - 1.291485548 * b;\n\n        const l = l_ * l_ * l_;\n        const m = m_ * m_ * m_;\n        const s = s_ * s_ * s_;\n\n        const lr = 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s;\n        const lg = -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s;\n        const lb = -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s;\n\n        const toSrgb = (c: number) => {\n            if (c <= 0.0031308) return c * 12.92;\n            return 1.055 * Math.pow(c, 1 / 2.4) - 0.055;\n        };\n\n        return new RGBColor(clamp(toSrgb(lr) * 255, 0, 255), clamp(toSrgb(lg) * 255, 0, 255), clamp(toSrgb(lb) * 255, 0, 255), this._alpha);\n    }\n\n    toOKLCH(): OKLCHColor {\n        return this.clone();\n    }\n\n    override toString(format?: ColorOutputFormat): string {\n        const f = format || this.colorSpace;\n        switch (f) {\n            case 'oklch': {\n                const l = Number.isNaN(this.L) ? 0 : Number((this.L * 100).toFixed(2));\n                const c = Number.isNaN(this.C) ? 0 : Number(this.C.toFixed(4));\n                const h = Number.isNaN(this.H) ? 0 : Number(this.H.toFixed(2));\n                return `oklch(${l}% ${c} ${h})`;\n            }\n            case 'oklcha':\n            case 'css': {\n                const l = Number.isNaN(this.L) ? 0 : Number((this.L * 100).toFixed(2));\n                const c = Number.isNaN(this.C) ? 0 : Number(this.C.toFixed(4));\n                const h = Number.isNaN(this.H) ? 0 : Number(this.H.toFixed(2));\n                const a = Number.isNaN(this._alpha) ? 1 : Number(this._alpha.toFixed(2));\n                return `oklch(${l}% ${c} ${h} / ${a})`;\n            }\n            default:\n                return super.toString(f);\n        }\n    }\n\n    clone(): OKLCHColor {\n        return new OKLCHColor(this.L, this.C, this.H, this._alpha);\n    }\n\n    toJSON(): Record<string, number> {\n        return {\n            L: this.L,\n            C: this.C,\n            H: this.H,\n            alpha: this._alpha\n        };\n    }\n\n    getFormat(): ColorSpace {\n        return 'oklch';\n    }\n\n    getChannels(): [ColorChannel, ColorChannel, ColorChannel] {\n        return ['L', 'C', 'H'];\n    }\n\n    getChannelRange(channel: ColorChannel): ColorChannelRange {\n        switch (channel) {\n            case 'L':\n            case 'oklchLightness':\n                return { minValue: 0, maxValue: 1, step: 0.01, pageStep: 0.1 };\n            case 'C':\n            case 'oklchChroma':\n                return { minValue: 0, maxValue: 0.4, step: 0.01, pageStep: 0.05 };\n            case 'H':\n            case 'oklchHue':\n                return { minValue: 0, maxValue: 360, step: 1, pageStep: 15 };\n            case 'alpha':\n                return { minValue: 0, maxValue: 1, step: 0.01, pageStep: 0.1 };\n            case 'hue':\n            case 'saturation':\n            case 'brightness':\n                return this.toHSB().getChannelRange(channel);\n            case 'lightness':\n                return this.toHSL().getChannelRange(channel);\n            case 'red':\n            case 'green':\n            case 'blue':\n                return this.toRGB().getChannelRange(channel);\n            default:\n                throw new Error(`Unknown color channel: ${channel}`);\n        }\n    }\n}\n\nexport function parseColor(value: string | ColorInstance | null | undefined): ColorInstance | null {\n    if (!value) return null;\n\n    if (value instanceof Color) {\n        return value as ColorInstance;\n    }\n\n    if (typeof value !== 'string') return null;\n\n    const str = value.trim();\n\n    const hexMatch = str.match(/^#?([0-9a-f]{3,8})$/i);\n    if (hexMatch) {\n        let hex = hexMatch[1];\n        if (hex.length === 3) {\n            hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n        } else if (hex.length === 4) {\n            hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3];\n        }\n\n        if (hex.length === 6) {\n            const r = parseInt(hex.substring(0, 2), 16);\n            const g = parseInt(hex.substring(2, 4), 16);\n            const b = parseInt(hex.substring(4, 6), 16);\n            return new RGBColor(r, g, b, 1);\n        }\n\n        if (hex.length === 8) {\n            const r = parseInt(hex.substring(0, 2), 16);\n            const g = parseInt(hex.substring(2, 4), 16);\n            const b = parseInt(hex.substring(4, 6), 16);\n            const a = parseInt(hex.substring(6, 8), 16) / 255;\n            return new RGBColor(r, g, b, a);\n        }\n    }\n\n    const rgbMatch = str.match(/^rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*([\\d.]+))?\\s*\\)$/i);\n    if (rgbMatch) {\n        return new RGBColor(parseInt(rgbMatch[1]), parseInt(rgbMatch[2]), parseInt(rgbMatch[3]), rgbMatch[4] !== undefined ? parseFloat(rgbMatch[4]) : 1);\n    }\n\n    const hslMatch = str.match(/^hsla?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)%?\\s*,\\s*([\\d.]+)%?\\s*(?:,\\s*([\\d.]+))?\\s*\\)$/i);\n    if (hslMatch) {\n        return new HSLColor(parseFloat(hslMatch[1]), parseFloat(hslMatch[2]), parseFloat(hslMatch[3]), hslMatch[4] !== undefined ? parseFloat(hslMatch[4]) : 1);\n    }\n\n    const hsbMatch = str.match(/^hsba?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)%?\\s*,\\s*([\\d.]+)%?\\s*(?:,\\s*([\\d.]+))?\\s*\\)$/i);\n    if (hsbMatch) {\n        return new HSBColor(parseFloat(hsbMatch[1]), parseFloat(hsbMatch[2]), parseFloat(hsbMatch[3]), hsbMatch[4] !== undefined ? parseFloat(hsbMatch[4]) : 1);\n    }\n\n    const oklchMatch = str.match(/^oklch\\(\\s*([\\d.]+)(%?)\\s+([\\d.]+)\\s+([\\d.]+)\\s*(?:\\/\\s*([\\d.]+))?\\s*\\)$/i);\n    if (oklchMatch) {\n        const lVal = parseFloat(oklchMatch[1]);\n        const l = oklchMatch[2] === '%' ? lVal / 100 : lVal;\n        return new OKLCHColor(l, parseFloat(oklchMatch[3]), parseFloat(oklchMatch[4]), oklchMatch[5] !== undefined ? parseFloat(oklchMatch[5]) : 1);\n    }\n\n    return null;\n}\n\nexport function getChannelRange(channel: ColorSliderChannel): ColorChannelRange {\n    switch (channel) {\n        case 'hue':\n            return { minValue: 0, maxValue: 360, step: 1, pageStep: 15 };\n        case 'H':\n        case 'oklchHue':\n            return { minValue: 0, maxValue: 360, step: 1, pageStep: 15 };\n        case 'saturation':\n        case 'brightness':\n        case 'lightness':\n            return { minValue: 0, maxValue: 100, step: 1, pageStep: 10 };\n        case 'red':\n        case 'green':\n        case 'blue':\n            return { minValue: 0, maxValue: 255, step: 1, pageStep: 17 };\n        case 'alpha':\n            return { minValue: 0, maxValue: 1, step: 0.01, pageStep: 0.1 };\n        case 'L':\n        case 'oklchLightness':\n            return { minValue: 0, maxValue: 1, step: 0.01, pageStep: 0.1 };\n        case 'C':\n        case 'oklchChroma':\n            return { minValue: 0, maxValue: 0.4, step: 0.01, pageStep: 0.05 };\n        default:\n            return { minValue: 0, maxValue: 100, step: 1, pageStep: 10 };\n    }\n}\n\nexport function getInputChannelRange(channel: ColorInputChannel): ColorChannelRange {\n    if (channel === 'hex') {\n        return { minValue: 0, maxValue: 0xffffff, step: 1, pageStep: 1 };\n    }\n    return getChannelRange(channel as ColorSliderChannel);\n}\n\nexport function getChannelGradient(color: ColorInstance, channel: ColorSliderChannel, orientation: 'horizontal' | 'vertical' = 'horizontal'): string {\n    const range = getChannelRange(channel);\n    const direction = orientation === 'horizontal' ? 'right' : 'top';\n\n    switch (channel) {\n        case 'hue':\n        case 'H':\n        case 'oklchHue':\n            return `linear-gradient(to ${direction}, rgb(255, 0, 0) 0%, rgb(255, 255, 0) 17%, rgb(0, 255, 0) 33%, rgb(0, 255, 255) 50%, rgb(0, 0, 255) 67%, rgb(255, 0, 255) 83%, rgb(255, 0, 0) 100%)`;\n\n        case 'lightness':\n        case 'L':\n        case 'oklchLightness': {\n            const start = color.setChannelValue(channel as ColorChannel, range.minValue).toRgbString();\n            const middle = color.setChannelValue(channel as ColorChannel, (range.maxValue - range.minValue) / 2).toRgbString();\n            const end = color.setChannelValue(channel as ColorChannel, range.maxValue).toRgbString();\n            return `linear-gradient(to ${direction}, ${start}, ${middle}, ${end})`;\n        }\n\n        case 'alpha': {\n            const start = color.setChannelValue('alpha', range.minValue).toRgbString();\n            const end = color.setChannelValue('alpha', range.maxValue).toRgbString();\n            return `linear-gradient(to ${direction}, ${start}, ${end})`;\n        }\n\n        default: {\n            const start = color.setChannelValue(channel as ColorChannel, range.minValue).toRgbString();\n            const end = color.setChannelValue(channel as ColorChannel, range.maxValue).toRgbString();\n            return `linear-gradient(to ${direction}, ${start}, ${end})`;\n        }\n    }\n}\n\nconst channelGenerators: Record<string, (color: ColorInstance) => string> = {\n    hue: (color) => [0, 60, 120, 180, 240, 300, 360].map((h) => color.setChannelValue('hue', h).toRgbString()).join(', '),\n    saturation: (color) => `${color.setChannelValue('saturation', 0).toRgbString()}, transparent`,\n    lightness: () => 'black, transparent, white',\n    brightness: () => 'black, transparent'\n};\n\nexport function getAreaGradient(color: ColorInstance, xChannel: ColorSliderChannel, yChannel: ColorSliderChannel, format: ColorSpace): string {\n    const axes3d = getDefault3DAxes(format);\n    const zChannel = axes3d.zChannel;\n    const zValue = color.getChannelValue(zChannel as ColorChannel);\n\n    const isHSL = format === 'hsla';\n\n    let base: ColorInstance;\n    if (isHSL) {\n        base = (parseColor('hsl(0, 100%, 50%)') as ColorInstance).setChannelValue(zChannel as ColorChannel, zValue);\n    } else {\n        base = (parseColor('hsb(0, 100%, 100%)') as ColorInstance).setChannelValue(zChannel as ColorChannel, zValue);\n    }\n\n    const channels = [xChannel, yChannel];\n    const direction = (c: string) => (c === xChannel ? 'right' : 'top');\n\n    const layers = channels\n        .map((c) => {\n            const gen = channelGenerators[c];\n            if (!gen) return null;\n            return `linear-gradient(to ${direction(c)}, ${gen(base)})`;\n        })\n        .filter(Boolean)\n        .reverse() as string[];\n\n    const isHueZ = zChannel === 'hue' || zChannel === 'H' || zChannel === 'oklchHue';\n    if (isHueZ) {\n        layers.push(base.toRgbString());\n    }\n\n    return layers.join(', ');\n}\n\nexport function getChannelColor(color: ColorInstance, channel: ColorChannel): ColorInstance {\n    switch (channel) {\n        case 'hue':\n            return parseColor(`hsl(${color.getChannelValue('hue')}, 100%, 50%)`)!;\n        case 'red':\n        case 'green':\n        case 'blue':\n        case 'lightness':\n        case 'brightness':\n        case 'saturation':\n            return color.setChannelValue('alpha', 1);\n        case 'alpha':\n            return color;\n        default:\n            return color.setChannelValue('alpha', 1);\n    }\n}\n\nfunction toCssString(color: ColorInstance, format: ColorSpace): string {\n    const a = round(color.alpha, 2);\n    switch (format) {\n        case 'rgba':\n        case 'hexa': {\n            const rgb = color.toRGB();\n            return `rgba(${Math.round(rgb.red)}, ${Math.round(rgb.green)}, ${Math.round(rgb.blue)}, ${a})`;\n        }\n        case 'hsla': {\n            const hsl = color.toHSL();\n            return `hsla(${Math.round(hsl.hue) % 360}, ${hsl.saturation.toFixed(2)}%, ${hsl.lightness.toFixed(2)}%, ${a})`;\n        }\n        case 'hsba': {\n            // CSS doesn't support hsb, convert to hsl\n            const hsl = color.toHSL();\n            return `hsla(${Math.round(hsl.hue) % 360}, ${hsl.saturation.toFixed(2)}%, ${hsl.lightness.toFixed(2)}%, ${a})`;\n        }\n        case 'oklch': {\n            return color.toOKLCH().toString('css');\n        }\n        default:\n            return color.toOKLCH().toString('css');\n    }\n}\n\nexport function getInputChannelValue(color: ColorInstance, channel: ColorInputChannel, format: ColorSpace = 'hsba'): string {\n    if (channel === 'hex') {\n        const alphaRange = getChannelRange('alpha');\n        if (color.alpha < alphaRange.maxValue) {\n            return color.toHexa();\n        }\n        return color.toHex();\n    }\n    if (channel === 'css') {\n        return toCssString(color, format);\n    }\n    const value = color.getChannelValue(channel);\n    if (Number.isNaN(value)) return 'NaN';\n    const range = getChannelRange(channel as ColorSliderChannel);\n    if (channel === 'H' || channel === 'oklchHue') {\n        const rounded = round(value, 2);\n        return rounded.toString();\n    }\n    if (channel === 'hue') {\n        const rounded = Math.round(value);\n        return rounded.toString();\n    }\n    if (range.step >= 1) {\n        return Math.round(value).toString();\n    }\n    return round(value, 4).toString();\n}\n\nexport function getDefault2DAxes(format: ColorSpace): Color2DAxes {\n    switch (format) {\n        case 'hsla':\n            return { xChannel: 'saturation', yChannel: 'lightness' };\n        case 'hsba':\n        case 'rgba':\n        case 'oklch':\n        default:\n            return { xChannel: 'saturation', yChannel: 'brightness' };\n    }\n}\n\nexport function getDefault3DAxes(format: ColorSpace): Color3DAxes {\n    switch (format) {\n        case 'hsla':\n            return { xChannel: 'saturation', yChannel: 'lightness', zChannel: 'hue' };\n        case 'hsba':\n        case 'rgba':\n        case 'oklch':\n        default:\n            return { xChannel: 'saturation', yChannel: 'brightness', zChannel: 'hue' };\n    }\n}\n","import { InjectionToken } from '@angular/core';\nimport type { InputColor } from './inputcolor';\nimport type { InputColorSlider } from './inputcolor-slider';\n\nexport const INPUT_COLOR_INSTANCE = new InjectionToken<InputColor>('INPUT_COLOR_INSTANCE');\nexport const INPUT_COLOR_SLIDER_INSTANCE = new InjectionToken<InputColorSlider>('INPUT_COLOR_SLIDER_INSTANCE');\n","import { ChangeDetectionStrategy, Component, computed, inject, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { ColorChannel, getAreaGradient, getChannelRange, snapValue } from './color-manager';\nimport { INPUT_COLOR_INSTANCE } from './inputcolor.token';\nimport type { InputColorAreaPassThrough } from 'primeng/types/inputcolor';\n\n/**\n * InputColorArea is a helper component for InputColor component.\n * @group Components\n */\n@Component({\n    selector: 'p-inputcolor-area',\n    standalone: true,\n    template: `<ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': '$pc.cx(\"area\")',\n        '[style.--px-area-gradient]': '$areaGradient()',\n        '[style.--px-handle-background]': '$handleBackground()',\n        '[style.--px-handle-position-left]': '$handleLeft()',\n        '[style.--px-handle-position-top]': '$handleTop()',\n        '(pointerdown)': 'onPointerDown($event)'\n    },\n    providers: [{ provide: PARENT_INSTANCE, useExisting: InputColorArea }],\n    hostDirectives: [Bind]\n})\nexport class InputColorArea extends BaseComponent<InputColorAreaPassThrough> implements OnDestroy {\n    componentName = 'InputColorArea';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    $pc = inject(INPUT_COLOR_INSTANCE);\n\n    $xChannel = computed(() => this.$pc.$axes().xChannel);\n    $yChannel = computed(() => this.$pc.$axes().yChannel);\n\n    $areaGradient = computed(() => {\n        const color = this.$pc.$color();\n        const xCh = this.$xChannel();\n        const yCh = this.$yChannel();\n        const format = this.$pc.format();\n        return getAreaGradient(color, xCh, yCh, format);\n    });\n\n    $handleBackground = computed(() => this.$pc.$color().setChannelValue('alpha', 1).toRgbString());\n\n    $handleLeft = computed(() => {\n        const xCh = this.$xChannel();\n        const range = getChannelRange(xCh);\n        const value = this.$pc.$color().getChannelValue(xCh as ColorChannel);\n        const pct = ((value - range.minValue) / (range.maxValue - range.minValue)) * 100;\n        return `${pct}%`;\n    });\n\n    $handleTop = computed(() => {\n        const yCh = this.$yChannel();\n        const range = getChannelRange(yCh);\n        const value = this.$pc.$color().getChannelValue(yCh as ColorChannel);\n        const pct = (1 - (value - range.minValue) / (range.maxValue - range.minValue)) * 100;\n        return `${pct}%`;\n    });\n\n    private dragging = false;\n    private dragOffset = { x: 0, y: 0 };\n    private cleanupDrag: (() => void) | null = null;\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    onPointerDown(event: PointerEvent) {\n        if (this.$pc.$disabled()) return;\n        event.preventDefault();\n        this.dragging = true;\n\n        const el = this.el.nativeElement as HTMLElement;\n        el.setPointerCapture(event.pointerId);\n\n        const handle = (event.target as HTMLElement)?.closest('[data-pc-section=\"areahandle\"], .p-inputcolor-area-handle') as HTMLElement | null;\n        if (handle) {\n            const handleRect = handle.getBoundingClientRect();\n            this.dragOffset = {\n                x: event.clientX - (handleRect.left + handleRect.width / 2),\n                y: event.clientY - (handleRect.top + handleRect.height / 2)\n            };\n        } else {\n            this.dragOffset = { x: 0, y: 0 };\n        }\n\n        this.updateFromPointer(event);\n\n        const onMove = (e: PointerEvent) => {\n            if (!this.dragging) return;\n            e.preventDefault();\n            this.updateFromPointer(e);\n        };\n\n        const cleanup = () => {\n            this.dragging = false;\n            this.cleanupDrag = null;\n            el.removeEventListener('pointermove', onMove);\n            el.removeEventListener('pointerup', onUp);\n            el.removeEventListener('pointercancel', onCancel);\n            el.removeEventListener('lostpointercapture', onLostCapture);\n        };\n\n        this.cleanupDrag = cleanup;\n\n        const onUp = (e: PointerEvent) => {\n            if (!this.dragging) return;\n            this.updateFromPointer(e, true);\n            this.dragOffset = { x: 0, y: 0 };\n            cleanup();\n        };\n\n        const onCancel = () => {\n            cleanup();\n        };\n\n        const onLostCapture = () => {\n            cleanup();\n        };\n\n        el.addEventListener('pointermove', onMove);\n        el.addEventListener('pointerup', onUp);\n        el.addEventListener('pointercancel', onCancel);\n        el.addEventListener('lostpointercapture', onLostCapture);\n    }\n\n    ngOnDestroy() {\n        this.cleanupDrag?.();\n    }\n\n    private updateFromPointer(event: PointerEvent, isEnd: boolean = false) {\n        const el = this.el.nativeElement as HTMLElement;\n        const rect = el.getBoundingClientRect();\n\n        const xPercent = Math.max(0, Math.min(1, (event.clientX - this.dragOffset.x - rect.left) / rect.width));\n        const yPercent = Math.max(0, Math.min(1, (event.clientY - this.dragOffset.y - rect.top) / rect.height));\n\n        const xCh = this.$xChannel();\n        const yCh = this.$yChannel();\n        const xRange = getChannelRange(xCh);\n        const yRange = getChannelRange(yCh);\n\n        const xValue = snapValue(xRange.minValue + xPercent * (xRange.maxValue - xRange.minValue), xRange.minValue, xRange.maxValue, xRange.step);\n        const yValue = snapValue(yRange.maxValue - yPercent * (yRange.maxValue - yRange.minValue), yRange.minValue, yRange.maxValue, yRange.step);\n\n        const nativeColor = this.$pc.toChannelNativeFormat(this.$pc.$color(), xCh as ColorChannel);\n        let color = nativeColor.setChannelValue(xCh as ColorChannel, xValue);\n        color = color.setChannelValue(yCh as ColorChannel, yValue);\n\n        this.$pc.updateColor(color, event, isEnd);\n    }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { INPUT_COLOR_INSTANCE } from './inputcolor.token';\nimport type { InputColorAreaBackgroundPassThrough } from 'primeng/types/inputcolor';\n\n/**\n * InputColorAreaBackground is a helper component for InputColor component.\n * @group Components\n */\n@Component({\n    selector: 'p-inputcolor-area-background',\n    standalone: true,\n    template: `<ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': '$pc.cx(\"areaBackground\")'\n    },\n    providers: [{ provide: PARENT_INSTANCE, useExisting: InputColorAreaBackground }],\n    hostDirectives: [Bind]\n})\nexport class InputColorAreaBackground extends BaseComponent<InputColorAreaBackgroundPassThrough> {\n    componentName = 'InputColorAreaBackground';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    $pc = inject(INPUT_COLOR_INSTANCE);\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { ColorChannel, getChannelRange } from './color-manager';\nimport { INPUT_COLOR_INSTANCE } from './inputcolor.token';\nimport type { InputColorAreaHandlePassThrough } from 'primeng/types/inputcolor';\n\n/**\n * InputColorAreaHandle is a helper component for InputColor component.\n * @group Components\n */\n@Component({\n    selector: 'p-inputcolor-area-handle',\n    standalone: true,\n    template: `<ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': '$pc.cx(\"areaHandle\")',\n        '[attr.role]': \"'slider'\",\n        '[attr.tabindex]': '$tabindex()',\n        '[attr.aria-label]': \"'Color'\",\n        '[attr.aria-roledescription]': \"'2d slider'\",\n        '[attr.aria-disabled]': '$ariaDisabled()',\n        '[attr.aria-valuemin]': '$xMin()',\n        '[attr.aria-valuemax]': '$xMax()',\n        '[attr.aria-valuenow]': '$xValue()',\n        '[attr.aria-valuetext]': '$ariaValueText()',\n        '(keydown)': 'onKeyDown($event)'\n    },\n    providers: [{ provide: PARENT_INSTANCE, useExisting: InputColorAreaHandle }],\n    hostDirectives: [Bind]\n})\nexport class InputColorAreaHandle extends BaseComponent<InputColorAreaHandlePassThrough> {\n    componentName = 'InputColorAreaHandle';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    $pc = inject(INPUT_COLOR_INSTANCE);\n\n    $xChannel = computed(() => this.$pc.$axes().xChannel);\n    $yChannel = computed(() => this.$pc.$axes().yChannel);\n\n    $xRange = computed(() => getChannelRange(this.$xChannel()));\n    $yRange = computed(() => getChannelRange(this.$yChannel()));\n\n    $xValue = computed(() => this.$pc.$color().getChannelValue(this.$xChannel() as ColorChannel));\n    $yValue = computed(() => this.$pc.$color().getChannelValue(this.$yChannel() as ColorChannel));\n\n    $xMin = computed(() => this.$xRange().minValue);\n    $xMax = computed(() => this.$xRange().maxValue);\n\n    $tabindex = computed(() => (this.$pc.$disabled() ? -1 : 0));\n    $ariaDisabled = computed(() => this.$pc.$disabled() || undefined);\n\n    $ariaValueText = computed(() => {\n        const xCh = this.$xChannel();\n        const yCh = this.$yChannel();\n        return `${xCh} ${this.$xValue()}, ${yCh} ${this.$yValue()}`;\n    });\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    onKeyDown(event: KeyboardEvent) {\n        if (this.$pc.$disabled()) return;\n\n        const xCh = this.$xChannel();\n        const yCh = this.$yChannel();\n        const xRange = this.$xRange();\n        const yRange = this.$yRange();\n\n        let xVal = this.$xValue();\n        let yVal = this.$yValue();\n        let handled = false;\n\n        switch (event.key) {\n            case 'ArrowRight':\n                xVal = Math.min(xVal + xRange.step, xRange.maxValue);\n                handled = true;\n                break;\n            case 'ArrowLeft':\n                xVal = Math.max(xVal - xRange.step, xRange.minValue);\n                handled = true;\n                break;\n            case 'ArrowUp':\n                yVal = Math.min(yVal + yRange.step, yRange.maxValue);\n                handled = true;\n                break;\n            case 'ArrowDown':\n                yVal = Math.max(yVal - yRange.step, yRange.minValue);\n                handled = true;\n                break;\n            case 'PageUp':\n                yVal = Math.min(yVal + yRange.pageStep, yRange.maxValue);\n                handled = true;\n                break;\n            case 'PageDown':\n                yVal = Math.max(yVal - yRange.pageStep, yRange.minValue);\n                handled = true;\n                break;\n            case 'Home':\n                xVal = xRange.minValue;\n                handled = true;\n                break;\n            case 'End':\n                xVal = xRange.maxValue;\n                handled = true;\n                break;\n        }\n\n        if (handled) {\n            event.preventDefault();\n            const nativeColor = this.$pc.toChannelNativeFormat(this.$pc.$color(), xCh as ColorChannel);\n            let color = nativeColor.setChannelValue(xCh as ColorChannel, xVal);\n            color = color.setChannelValue(yCh as ColorChannel, yVal);\n            this.$pc.updateColor(color, event, true);\n        }\n    }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { ButtonDirective, ButtonIcon } from 'primeng/button';\nimport { parseColor } from './color-manager';\nimport { INPUT_COLOR_INSTANCE } from './inputcolor.token';\nimport type { InputColorEyeDropperPassThrough } from 'primeng/types/inputcolor';\n\n/**\n * InputColorEyeDropper is a helper component for InputColor component.\n * @group Components\n */\n@Component({\n    selector: 'p-inputcolor-eyedropper',\n    standalone: true,\n    imports: [ButtonDirective, ButtonIcon, NgTemplateOutlet],\n    template: `\n        <ng-template #contentTpl><ng-content /></ng-template>\n        <button\n            pButton\n            type=\"button\"\n            [pButtonPT]=\"ptm('pcButton')\"\n            [text]=\"text()\"\n            [rounded]=\"rounded()\"\n            [outlined]=\"outlined()\"\n            [severity]=\"severity()\"\n            [size]=\"size()\"\n            [disabled]=\"$pc.$disabled()\"\n            (click)=\"onPickColor($event)\"\n            [attr.aria-label]=\"'Pick a color'\"\n        >\n            @if (iconOnly()) {\n                <span pButtonIcon>\n                    <ng-container *ngTemplateOutlet=\"contentTpl\" />\n                </span>\n            } @else {\n                <ng-container *ngTemplateOutlet=\"contentTpl\" />\n            }\n        </button>\n    `,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': '$pc.cx(\"eyeDropper\")'\n    },\n    providers: [{ provide: PARENT_INSTANCE, useExisting: InputColorEyeDropper }],\n    hostDirectives: [Bind]\n})\nexport class InputColorEyeDropper extends BaseComponent<InputColorEyeDropperPassThrough> {\n    componentName = 'InputColorEyeDropper';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    $pc = inject(INPUT_COLOR_INSTANCE);\n\n    /**\n     * Whether to display button as text.\n     * @group Props\n     */\n    text = input<boolean>(false);\n\n    /**\n     * Whether to display a rounded button.\n     * @group Props\n     */\n    rounded = input<boolean>(false);\n\n    /**\n     * Whether to display button as outlined.\n     * @group Props\n     */\n    outlined = input<boolean>(false);\n\n    /**\n     * Whether to display an icon-only button.\n     * @group Props\n     */\n    iconOnly = input<boolean>(false);\n\n    /**\n     * Defines the color severity of the button.\n     * @group Props\n     */\n    severity = input<string | undefined>(undefined);\n\n    /**\n     * Defines the size of the button.\n     * @group Props\n     */\n    size = input<string | undefined>(undefined);\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    async onPickColor(event: MouseEvent) {\n        if (this.$pc.$disabled()) return;\n        if (!isPlatformBrowser(this.platformId)) return;\n\n        try {\n            const eyeDropper = new (window as any).EyeDropper();\n            const result = await eyeDropper.open();\n            if (result?.sRGBHex) {\n                const parsed = parseColor(result.sRGBHex);\n                if (parsed) {\n                    this.$pc.updateColor(parsed, event, true);\n                }\n            }\n        } catch {\n            // User cancelled or API not available\n        }\n    }\n}\n","import { booleanAttribute, computed, Directive, effect, inject, input } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { InputText } from 'primeng/inputtext';\nimport { ColorChannel, ColorInputChannel, ColorSliderChannel, getChannelRange, getInputChannelValue, parseColor } from './color-manager';\nimport { INPUT_COLOR_INSTANCE } from './inputcolor.token';\n\n@Directive({\n    selector: '[pInputColorInput]',\n    standalone: true,\n    host: {\n        '[attr.disabled]': '$disabled() || null',\n        '[attr.data-channel]': 'channel()',\n        '(input)': 'onInput($event)',\n        '(blur)': 'onBlur($event)',\n        '(keydown.enter)': 'onEnter($event)'\n    },\n    providers: [{ provide: PARENT_INSTANCE, useExisting: InputColorInput }],\n    hostDirectives: [\n        {\n            directive: InputText,\n            inputs: ['pSize', 'fluid', 'variant', 'invalid']\n        }\n    ]\n})\nexport class InputColorInput extends BaseComponent {\n    componentName = 'InputColorInput';\n\n    $pc = inject(INPUT_COLOR_INSTANCE);\n\n    /**\n     * The color channel this input controls.\n     * @group Props\n     */\n    channel = input.required<ColorInputChannel>();\n\n    /**\n     * The input type attribute.\n     * @group Props\n     */\n    type = input<string>();\n\n    /**\n     * When present, it specifies that the input should be disabled.\n     * @group Props\n     */\n    disabled = input(false, { transform: booleanAttribute });\n\n    $disabled = computed(() => this.disabled() || this.$pc.$disabled());\n\n    $inputType = computed(() => {\n        const t = this.type();\n        if (t) return t;\n        const ch = this.channel();\n        return ch === 'hex' || ch === 'css' ? 'text' : 'number';\n    });\n\n    $displayValue = computed(() => {\n        const ch = this.channel();\n        const color = this.$pc.$color();\n        const format = this.$pc.format();\n        return getInputChannelValue(color, ch, format);\n    });\n\n    private pendingValue: string | null = null;\n\n    constructor() {\n        super();\n\n        effect(() => {\n            this.el.nativeElement.type = this.$inputType();\n        });\n\n        effect(() => {\n            const el = this.el.nativeElement;\n            const ch = this.channel();\n            if (ch !== 'hex' && ch !== 'css') {\n                const range = getChannelRange(ch as ColorSliderChannel);\n                el.min = String(range.minValue);\n                el.max = String(range.maxValue);\n                el.step = String(range.step);\n            }\n        });\n\n        effect(() => {\n            this.el.nativeElement.value = String(this.$displayValue() ?? '');\n        });\n    }\n\n    onInput(event: Event) {\n        const target = event.target as HTMLInputElement;\n        this.pendingValue = target.value;\n    }\n\n    onBlur(event: FocusEvent) {\n        this.commitValue(event);\n    }\n\n    onEnter(event: KeyboardEvent) {\n        this.commitValue(event);\n    }\n\n    private commitValue(event: Event) {\n        if (this.pendingValue === null) return;\n\n        const ch = this.channel();\n        const value = this.pendingValue;\n        this.pendingValue = null;\n\n        if (ch === 'hex') {\n            const hex = value.startsWith('#') ? value : `#${value}`;\n            const parsed = parseColor(hex);\n            if (parsed) {\n                this.$pc.updateColor(parsed, event, true);\n            }\n        } else if (ch === 'css') {\n            const parsed = parseColor(value);\n            if (parsed) {\n                this.$pc.updateColor(parsed, event, true);\n            }\n        } else {\n            const numValue = parseFloat(value);\n            if (!isNaN(numValue)) {\n                const range = getChannelRange(ch as ColorSliderChannel);\n                const clamped = Math.max(range.minValue, Math.min(range.maxValue, numValue));\n                this.$pc.setChannelValue(ch as ColorChannel, clamped, event, true);\n            }\n        }\n    }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { ColorChannel, ColorSliderChannel, getChannelRange, snapValue } from './color-manager';\nimport { INPUT_COLOR_INSTANCE, INPUT_COLOR_SLIDER_INSTANCE } from './inputcolor.token';\nimport type { InputColorSliderPassThrough } from 'primeng/types/inputcolor';\n\n/**\n * InputColorSlider is a helper component for InputColor component.\n * @group Components\n */\n@Component({\n    selector: 'p-inputcolor-slider',\n    standalone: true,\n    template: `<ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': '$pc.cx(\"slider\")',\n        '[class.p-inputcolor-slider-horizontal]': 'orientation() === \"horizontal\"',\n        '[class.p-inputcolor-slider-vertical]': 'orientation() === \"vertical\"',\n        '[attr.data-orientation]': 'orientation()',\n        '(pointerdown)': 'onPointerDown($event)'\n    },\n    providers: [\n        { provide: INPUT_COLOR_SLIDER_INSTANCE, useExisting: InputColorSlider },\n        { provide: PARENT_INSTANCE, useExisting: InputColorSlider }\n    ],\n    hostDirectives: [Bind]\n})\nexport class InputColorSlider extends BaseComponent<InputColorSliderPassThrough> implements OnDestroy {\n    componentName = 'InputColorSlider';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    $pc = inject(INPUT_COLOR_INSTANCE);\n\n    /**\n     * The color channel this slider controls.\n     * @group Props\n     */\n    channel = input<ColorSliderChannel>('hue');\n\n    /**\n     * Orientation of the slider.\n     * @group Props\n     */\n    orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n    private dragging = false;\n    private cleanupDrag: (() => void) | null = null;\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    onPointerDown(event: PointerEvent) {\n        if (this.$pc.$disabled()) return;\n        event.preventDefault();\n        this.dragging = true;\n\n        const el = this.el.nativeElement as HTMLElement;\n        el.setPointerCapture(event.pointerId);\n\n        this.updateFromPointer(event);\n\n        const onMove = (e: PointerEvent) => {\n            if (!this.dragging) return;\n            e.preventDefault();\n            this.updateFromPointer(e);\n        };\n\n        const cleanup = () => {\n            this.dragging = false;\n            this.cleanupDrag = null;\n            el.removeEventListener('pointermove', onMove);\n            el.removeEventListener('pointerup', onUp);\n            el.removeEventListener('pointercancel', onCancel);\n            el.removeEventListener('lostpointercapture', onLostCapture);\n        };\n\n        this.cleanupDrag = cleanup;\n\n        const onUp = (e: PointerEvent) => {\n            if (!this.dragging) return;\n            this.updateFromPointer(e, true);\n            cleanup();\n        };\n\n        const onCancel = () => {\n            cleanup();\n        };\n\n        const onLostCapture = () => {\n            cleanup();\n        };\n\n        el.addEventListener('pointermove', onMove);\n        el.addEventListener('pointerup', onUp);\n        el.addEventListener('pointercancel', onCancel);\n        el.addEventListener('lostpointercapture', onLostCapture);\n    }\n\n    ngOnDestroy() {\n        this.cleanupDrag?.();\n    }\n\n    private updateFromPointer(event: PointerEvent, isEnd: boolean = false) {\n        const el = this.el.nativeElement as HTMLElement;\n        const rect = el.getBoundingClientRect();\n        const ch = this.channel();\n        const range = getChannelRange(ch);\n\n        let percent: number;\n        if (this.orientation() === 'vertical') {\n            percent = 1 - Math.max(0, Math.min(1, (event.clientY - rect.top) / rect.height));\n        } else {\n            percent = Math.max(0, Math.min(1, (event.clientX - rect.left) / rect.width));\n        }\n\n        const rawValue = range.minValue + percent * (range.maxValue - range.minValue);\n        const value = snapValue(rawValue, range.minValue, range.maxValue, range.step);\n        this.$pc.setChannelValue(ch as ColorChannel, value, event, isEnd);\n    }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { ColorChannel, getChannelColor, getChannelRange } from './color-manager';\nimport { INPUT_COLOR_INSTANCE, INPUT_COLOR_SLIDER_INSTANCE } from './inputcolor.token';\nimport type { InputColorSliderHandlePassThrough } from 'primeng/types/inputcolor';\n\n/**\n * InputColorSliderHandle is a helper component for InputColor component.\n * @group Components\n */\n@Component({\n    selector: 'p-inputcolor-slider-handle',\n    standalone: true,\n    template: `<ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': '$pc.cx(\"sliderHandle\")',\n        '[style.--px-slider-handle-background]': '$handleColor()',\n        '[style.left]': '$left()',\n        '[style.top]': '$top()',\n        '[style.translate]': '$translate()',\n        '[attr.role]': \"'slider'\",\n        '[attr.tabindex]': '$tabindex()',\n        '[attr.aria-label]': '$channel()',\n        '[attr.aria-disabled]': '$ariaDisabled()',\n        '[attr.aria-valuemin]': '$range().minValue',\n        '[attr.aria-valuemax]': '$range().maxValue',\n        '[attr.aria-valuenow]': '$value()',\n        '(keydown)': 'onKeyDown($event)'\n    },\n    providers: [{ provide: PARENT_INSTANCE, useExisting: InputColorSliderHandle }],\n    hostDirectives: [Bind]\n})\nexport class InputColorSliderHandle extends BaseComponent<InputColorSliderHandlePassThrough> {\n    componentName = 'InputColorSliderHandle';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    $pc = inject(INPUT_COLOR_INSTANCE);\n\n    private pcSlider = inject(INPUT_COLOR_SLIDER_INSTANCE);\n\n    $channel = computed(() => this.pcSlider.channel());\n    $isVertical = computed(() => this.pcSlider.orientation() === 'vertical');\n    $range = computed(() => getChannelRange(this.$channel()));\n    $value = computed(() => this.$pc.$color().getChannelValue(this.$channel() as ColorChannel));\n\n    $tabindex = computed(() => (this.$pc.$disabled() ? -1 : 0));\n    $ariaDisabled = computed(() => this.$pc.$disabled() || undefined);\n\n    $handlePosition = computed(() => {\n        const range = this.$range();\n        const value = this.$value();\n        const pct = ((value - range.minValue) / (range.maxValue - range.minValue)) * 100;\n        return `${pct}%`;\n    });\n\n    $handlePositionVertical = computed(() => {\n        const range = this.$range();\n        const value = this.$value();\n        const pct = 100 - ((value - range.minValue) / (range.maxValue - range.minValue)) * 100;\n        return `${pct}%`;\n    });\n\n    $left = computed(() => (this.$isVertical() ? null : this.$handlePosition()));\n    $top = computed(() => (this.$isVertical() ? this.$handlePositionVertical() : null));\n    $translate = computed(() => (this.$isVertical() ? '0 -50%' : '-50% 0'));\n\n    $handleColor = computed(() => getChannelColor(this.$pc.$color(), this.$channel() as ColorChannel).toRgbString());\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    onKeyDown(event: KeyboardEvent) {\n        if (this.$pc.$disabled()) return;\n\n        const ch = this.$channel();\n        const range = this.$range();\n        let value = this.$value();\n        let handled = false;\n\n        switch (event.key) {\n            case 'ArrowRight':\n            case 'ArrowUp':\n                value = Math.min(value + range.step, range.maxValue);\n                handled = true;\n                break;\n            case 'ArrowLeft':\n            case 'ArrowDown':\n                value = Math.max(value - range.step, range.minValue);\n                handled = true;\n                break;\n            case 'PageUp':\n                value = Math.min(value + range.pageStep, range.maxValue);\n                handled = true;\n                break;\n            case 'PageDown':\n                value = Math.max(value - range.pageStep, range.minValue);\n                handled = true;\n                break;\n            case 'Home':\n                value = range.minValue;\n                handled = true;\n                break;\n            case 'End':\n                value = range.maxValue;\n                handled = true;\n                break;\n        }\n\n        if (handled) {\n            event.preventDefault();\n            this.$pc.setChannelValue(ch as ColorChannel, value, event, true);\n        }\n    }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { getChannelGradient } from './color-manager';\nimport { INPUT_COLOR_INSTANCE, INPUT_COLOR_SLIDER_INSTANCE } from './inputcolor.token';\nimport type { InputColorSliderTrackPassThrough } from 'primeng/types/inputcolor';\n\n/**\n * InputColorSliderTrack is a helper component for InputColor component.\n * @group Components\n */\n@Component({\n    selector: 'p-inputcolor-slider-track',\n    standalone: true,\n    template: `<ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': '$pc.cx(\"sliderTrack\")',\n        '[style.--px-slider-background]': '$gradient()'\n    },\n    providers: [{ provide: PARENT_INSTANCE, useExisting: InputColorSliderTrack }],\n    hostDirectives: [Bind]\n})\nexport class InputColorSliderTrack extends BaseComponent<InputColorSliderTrackPassThrough> {\n    componentName = 'InputColorSliderTrack';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    $pc = inject(INPUT_COLOR_INSTANCE);\n\n    private pcSlider = inject(INPUT_COLOR_SLIDER_INSTANCE);\n\n    $gradient = computed(() => {\n        const ch = this.pcSlider.channel();\n        const color = this.$pc.$color();\n        const orientation = this.pcSlider.orientation();\n        return getChannelGradient(color, ch, orientation);\n    });\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { INPUT_COLOR_INSTANCE } from './inputcolor.token';\nimport type { InputColorSwatchPassThrough } from 'primeng/types/inputcolor';\n\n/**\n * InputColorSwatch is a helper component for InputColor component.\n * @group Components\n */\n@Component({\n    selector: 'p-inputcolor-swatch',\n    standalone: true,\n    template: `<ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': '$pc.cx(\"swatch\")'\n    },\n    providers: [{ provide: PARENT_INSTANCE, useExisting: InputColorSwatch }],\n    hostDirectives: [Bind]\n})\nexport class InputColorSwatch extends BaseComponent<InputColorSwatchPassThrough> {\n    componentName = 'InputColorSwatch';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    $pc = inject(INPUT_COLOR_INSTANCE);\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { INPUT_COLOR_INSTANCE } from './inputcolor.token';\nimport type { InputColorSwatchBackgroundPassThrough } from 'primeng/types/inputcolor';\n\n/**\n * InputColorSwatchBackground is a helper component for InputColor component.\n * @group Components\n */\n@Component({\n    selector: 'p-inputcolor-swatch-background',\n    standalone: true,\n    template: `<ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': '$pc.cx(\"swatchBackground\")',\n        '[style.--px-swatch-background]': '$swatchColor()'\n    },\n    providers: [{ provide: PARENT_INSTANCE, useExisting: InputColorSwatchBackground }],\n    hostDirectives: [Bind]\n})\nexport class InputColorSwatchBackground extends BaseComponent<InputColorSwatchBackgroundPassThrough> {\n    componentName = 'InputColorSwatchBackground';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    $pc = inject(INPUT_COLOR_INSTANCE);\n\n    $swatchColor = computed(() => this.$pc.$color().toRgbString());\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { INPUT_COLOR_INSTANCE } from './inputcolor.token';\nimport type { InputColorTransparencyGridPassThrough } from 'primeng/types/inputcolor';\n\n/**\n * InputColorTransparencyGrid is a helper component for InputColor component.\n * @group Components\n */\n@Component({\n    selector: 'p-inputcolor-transparency-grid',\n    standalone: true,\n    template: `<ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[class]': '$pc.cx(\"transparencyGrid\")'\n    },\n    providers: [{ provide: PARENT_INSTANCE, useExisting: InputColorTransparencyGrid }],\n    hostDirectives: [Bind]\n})\nexport class InputColorTransparencyGrid extends BaseComponent<InputColorTransparencyGridPassThrough> {\n    componentName = 'InputColorTransparencyGrid';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    $pc = inject(INPUT_COLOR_INSTANCE);\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/inputcolor';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n    root: 'p-inputcolor p-component',\n    area: 'p-inputcolor-area',\n    areaHandle: ({ instance }) => ['p-inputcolor-area-handle', { 'p-disabled': instance.$disabled() }],\n    areaBackground: 'p-inputcolor-area-background',\n    slider: 'p-inputcolor-slider',\n    sliderHandle: ({ instance }) => ['p-inputcolor-slider-handle', { 'p-disabled': instance.$disabled() }],\n    sliderTrack: 'p-inputcolor-slider-track',\n    transparencyGrid: 'p-inputcolor-transparency-grid',\n    swatch: 'p-inputcolor-swatch',\n    swatchBackground: 'p-inputcolor-swatch-background',\n    eyeDropper: 'p-inputcolor-eyedropper'\n};\n\n@Injectable()\nexport class InputColorStyle extends BaseStyle {\n    name = 'inputcolor';\n\n    style = style;\n\n    classes = classes;\n}\n\n/**\n *\n * InputColor is a composable color picker component.\n *\n * [Live Demo](https://www.primeng.org/inputcolor/)\n *\n * @module inputcolorstyle\n *\n */\nexport enum InputColorClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-inputcolor',\n    /**\n     * Class name of the area element\n     */\n    area = 'p-inputcolor-area',\n    /**\n     * Class name of the area background element\n     */\n    areaBackground = 'p-inputcolor-area-background',\n    /**\n     * Class name of the area handle element\n     */\n    areaHandle = 'p-inputcolor-area-handle',\n    /**\n     * Class name of the slider element\n     */\n    slider = 'p-inputcolor-slider',\n    /**\n     * Class name of the slider track element\n     */\n    sliderTrack = 'p-inputcolor-slider-track',\n    /**\n     * Class name of the slider handle element\n     */\n    sliderHandle = 'p-inputcolor-slider-handle',\n    /**\n     * Class name of the swatch element\n     */\n    swatch = 'p-inputcolor-swatch',\n    /**\n     * Class name of the swatch background element\n     */\n    swatchBackground = 'p-inputcolor-swatch-background',\n    /**\n     * Class name of the transparency grid element\n     */\n    transparencyGrid = 'p-inputcolor-transparency-grid',\n    /**\n     * Class name of the input element\n     */\n    input = 'p-inputcolor-input',\n    /**\n     * Class name of the eye dropper element\n     */\n    eyeDropper = 'p-inputcolor-eyedropper'\n}\n\nexport interface InputColorStyle extends BaseStyle {}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, forwardRef, inject, input, NgModule, output, Provider, signal, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { ColorChannel, ColorInstance, ColorSpace, getDefault2DAxes, HSBColor, HSLColor, OKLCHColor, parseColor, RGBColor } from './color-manager';\nimport { InputColorArea } from './inputcolor-area';\nimport { InputColorAreaBackground } from './inputcolor-area-background';\nimport { InputColorAreaHandle } from './inputcolor-area-handle';\nimport { InputColorEyeDropper } from './inputcolor-eyedropper';\nimport { InputColorInput } from './inputcolor-input';\nimport { InputColorSlider } from './inputcolor-slider';\nimport { InputColorSliderHandle } from './inputcolor-slider-handle';\nimport { InputColorSliderTrack } from './inputcolor-slider-track';\nimport { InputColorSwatch } from './inputcolor-swatch';\nimport { InputColorSwatchBackground } from './inputcolor-swatch-background';\nimport { InputColorTransparencyGrid } from './inputcolor-transparency-grid';\nimport { INPUT_COLOR_INSTANCE } from './inputcolor.token';\nimport { InputColorStyle } from './style/inputcolorstyle';\nimport type { InputColorPassThrough } from 'primeng/types/inputcolor';\n\nexport const INPUT_COLOR_VALUE_ACCESSOR: Provider = {\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => InputColor),\n    multi: true\n};\n\n/**\n * InputColor is a composable color picker component.\n * @group Components\n */\n@Component({\n    selector: 'p-inputcolor, p-input-color',\n    standalone: true,\n    imports: [SharedModule],\n    template: `<ng-content></ng-content>`,\n    providers: [INPUT_COLOR_VALUE_ACCESSOR, InputColorStyle, { provide: INPUT_COLOR_INSTANCE, useExisting: InputColor }, { provide: PARENT_INSTANCE, useExisting: InputColor }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        '[attr.data-pc-name]': \"'inputcolor'\",\n        '[attr.data-pc-section]': \"'root'\",\n        '[class]': \"cx('root')\"\n    },\n    hostDirectives: [Bind]\n})\nexport class InputColor extends BaseComponent<InputColorPassThrough> implements ControlValueAccessor {\n    componentName = 'InputColor';\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    _componentStyle = inject(InputColorStyle);\n\n    /**\n     * Color format/space used internally.\n     * @group Props\n     */\n    format = input<ColorSpace>('hsba');\n\n    /**\n     * When present, it specifies that the component should be disabled.\n     * @group Props\n     */\n    disabled = input(false, { transform: booleanAttribute });\n\n    _disabled = signal<boolean>(false);\n\n    $disabled = computed(() => this.disabled() || this._disabled());\n\n    /**\n     * Callback on value change (during interaction).\n     * @group Emits\n     */\n    onValueChange = output<{ color: ColorInstance; originalEvent?: Event }>();\n\n    /**\n     * Callback when interaction ends (mouseup/touchend/keyup).\n     * @group Emits\n     */\n    onValueChangeEnd = output<{ color: ColorInstance; originalEvent?: Event }>();\n\n    // Internal color state\n    _color = signal<ColorInstance | null>(null);\n\n    // Computed color - resolved from internal state or fallback\n    $color = computed<ColorInstance>(() => {\n        return this._color() || (parseColor('#ff0000') as ColorInstance).toFormat(this.format());\n    });\n\n    // Computed 2D axes based on format\n    $axes = computed(() => getDefault2DAxes(this.format()));\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n    }\n\n    /**\n     * Update color and emit changes\n     */\n    updateColor(color: ColorInstance, event?: Event, isEnd: boolean = false) {\n        this._color.set(color);\n\n        const outputValue = color.toString(this.format());\n        this.onModelChange(outputValue);\n\n        this.onValueChange.emit({ color, originalEvent: event });\n\n        if (isEnd) {\n            this.onValueChangeEnd.emit({ color, originalEvent: event });\n            this.onModelTouched();\n        }\n    }\n\n    /**\n     * Set a specific channel value\n     */\n    setChannelValue(channel: ColorChannel, value: number, event?: Event, isEnd: boolean = false) {\n        const color = this.toChannelNativeFormat(this.$color(), channel);\n        const newColor = color.setChannelValue(channel, value);\n        this.updateColor(newColor, event, isEnd);\n    }\n\n    onModelChange: Function = () => {};\n\n    onModelTouched: Function = () => {};\n\n    registerOnChange(fn: Function) {\n        this.onModelChange = fn;\n    }\n\n    registerOnTouched(fn: Function) {\n        this.onModelTouched = fn;\n    }\n\n    setDisabledState(val: boolean) {\n        this._disabled.set(val);\n    }\n\n    writeValue(value: any) {\n        if (value) {\n            const current = this._color();\n            if (current && current.toString(this.format()) === value) {\n                return;\n            }\n            const parsed = parseColor(value);\n            if (parsed) {\n                this._color.set(parsed.toFormat(this.format()));\n            }\n        } else {\n            this._color.set(null);\n        }\n    }\n\n    toChannelNativeFormat(color: ColorInstance, channel: ColorChannel): ColorInstance {\n        // If the current color natively supports this channel, don't convert\n        if (color instanceof HSBColor && (channel === 'hue' || channel === 'saturation' || channel === 'brightness')) return color;\n        if (color instanceof HSLColor && (channel === 'hue' || channel === 'saturation' || channel === 'lightness')) return color;\n        if (color instanceof RGBColor && (channel === 'red' || channel === 'green' || channel === 'blue')) return color;\n        if (color instanceof OKLCHColor && (channel === 'oklchLightness' || channel === 'oklchChroma' || channel === 'oklchHue' || channel === 'L' || channel === 'C' || channel === 'H')) return color;\n\n        // Otherwise convert to the appropriate format\n        switch (channel) {\n            case 'hue':\n            case 'saturation':\n            case 'brightness':\n                return color.toHSB();\n            case 'lightness':\n                return color.toHSL();\n            case 'red':\n            case 'green':\n            case 'blue':\n                return color.toRGB();\n            case 'oklchLightness':\n            case 'oklchChroma':\n            case 'oklchHue':\n            case 'L':\n            case 'C':\n            case 'H':\n                return color.toOKLCH();\n            case 'alpha':\n            default:\n                return color;\n        }\n    }\n}\n\n@NgModule({\n    imports: [\n        InputColor,\n        InputColorArea,\n        InputColorAreaHandle,\n        InputColorAreaBackground,\n        InputColorSlider,\n        InputColorSliderHandle,\n        InputColorSliderTrack,\n        InputColorSwatch,\n        InputColorSwatchBackground,\n        InputColorTransparencyGrid,\n        InputColorInput,\n        InputColorEyeDropper,\n        SharedModule\n    ],\n    exports: [\n        InputColor,\n        InputColorArea,\n        InputColorAreaHandle,\n        InputColorAreaBackground,\n        InputColorSlider,\n        InputColorSliderHandle,\n        InputColorSliderTrack,\n        InputColorSwatch,\n        InputColorSwatchBackground,\n        InputColorTransparencyGrid,\n        InputColorInput,\n        InputColorEyeDropper,\n        SharedModule\n    ]\n})\nexport class InputColorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1"],"mappings":"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"}