{"version":3,"sources":["jsdelivr-header.js","/npm/react-color-gradient-picker@0.1.2/src/lib/hooks/mouseEvents.js","/npm/react-color-gradient-picker@0.1.2/src/lib/hooks/useMount.js","/npm/react-color-gradient-picker@0.1.2/src/lib/helpers/rgbToHsv.js","/npm/react-color-gradient-picker@0.1.2/src/lib/helpers/getRgbByHue.js","/npm/react-color-gradient-picker@0.1.2/src/lib/helpers/setRgba.js","/npm/react-color-gradient-picker@0.1.2/src/lib/helpers/hsvToRgb.js","/npm/react-color-gradient-picker@0.1.2/src/lib/helpers/changePicker.js","/npm/react-color-gradient-picker@0.1.2/src/lib/helpers/getHue.js","/npm/react-color-gradient-picker@0.1.2/src/lib/helpers/getAlpha.js","/npm/react-color-gradient-picker@0.1.2/src/lib/helpers/rgbToHex.js","/npm/react-color-gradient-picker@0.1.2/src/lib/helpers/hexToRgb.js","/npm/react-color-gradient-picker@0.1.2/src/lib/helpers/updateGradientActivePercent.js","/npm/react-color-gradient-picker@0.1.2/src/lib/helpers/calculateDegree.js","/npm/react-color-gradient-picker@0.1.2/src/lib/helpers/getRightValue.js","/npm/react-color-gradient-picker@0.1.2/src/lib/helpers/generateStyles.js","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Area/Picking/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Area/Preview/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Area/Hue/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Area/Alpha/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Area/GradientPoints/GradientPoint/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Area/GradientPoints/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Area/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/UI/Input/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Preview/Hex/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Preview/RGB/item/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Preview/RGB/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Preview/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Solid/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Gradient/GradientControls/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/Gradient/index.jsx","/npm/react-color-gradient-picker@0.1.2/src/lib/components/ColorPicker/index.jsx"],"names":[],"mappings":"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","file":"/npm/react-color-gradient-picker@0.1.2/dist/index-cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/react-color-gradient-picker@0.1.2/dist/index-cjs.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","export default function useMouseEvents(mouseDownHandler, mouseMoveHandler, mouseUpHandler) {\n    return function mouseEventsHandler(event) {\n        let positions = mouseDownHandler(event);\n\n        function onMouseMove(event) {\n            positions = mouseMoveHandler(event, positions) || positions;\n        }\n\n        window.addEventListener('mousemove', onMouseMove);\n\n        window.addEventListener('mouseup', event => {\n            window.removeEventListener('mousemove', onMouseMove);\n\n            mouseUpHandler && mouseUpHandler(event, positions);\n        }, { once: true });\n    };\n}\n","/* eslint react-hooks/exhaustive-deps: 0 */\n\nimport { useEffect } from 'react';\n\nconst useMount = effect => useEffect(effect, []);\n\nexport default useMount;\n","export default function rgbToHSv({ red, green, blue }) {\n    let rr;\n    let gg;\n    let bb;\n    let h;\n    let s;\n\n    const rabs = red / 255;\n    const gabs = green / 255;\n    const babs = blue / 255;\n    const v = Math.max(rabs, gabs, babs);\n    const diff = v - Math.min(rabs, gabs, babs);\n    const diffc = c => (v - c) / 6 / diff + 1 / 2;\n    if (diff === 0) {\n        h = 0;\n        s = 0;\n    } else {\n        s = diff / v;\n        rr = diffc(rabs);\n        gg = diffc(gabs);\n        bb = diffc(babs);\n\n        if (rabs === v) {\n            h = bb - gg;\n        } else if (gabs === v) {\n            h = (1 / 3) + rr - bb;\n        } else if (babs === v) {\n            h = (2 / 3) + gg - rr;\n        }\n        if (h < 0) {\n            h += 1;\n        } else if (h > 1) {\n            h -= 1;\n        }\n    }\n\n    return {\n        hue: Math.round(h * 360),\n        saturation: Math.round(s * 100),\n        value: Math.round(v * 100),\n    };\n}\n","export default function getRgbByHue(hue) {\n    let C = 1;\n    const H = hue / 60;\n    let X = C * (1 - Math.abs(H % 2 - 1));\n    const m = 0;\n    const precision = 255;\n    let r = 0;\n    let g = 0;\n    let b = 0;\n\n    C = (C + m) * precision | 0;\n    X = (X + m) * precision | 0;\n\n    if (H >= 0 && H < 1) {\n        r = C | 0;\n        g = X | 0;\n        b = m | 0;\n    }\n    if (H >= 1 && H < 2) {\n        r = X | 0;\n        g = C | 0;\n        b = m | 0;\n    }\n    if (H >= 2 && H < 3) {\n        r = m | 0;\n        g = C | 0;\n        b = X | 0;\n    }\n    if (H >= 3 && H < 4) {\n        r = m | 0;\n        g = X | 0;\n        b = C | 0;\n    }\n    if (H >= 4 && H < 5) {\n        r = X | 0;\n        g = m | 0;\n        b = C | 0;\n    }\n    if (H >= 5 && H <= 6) {\n        r = C | 0;\n        g = m | 0;\n        b = X | 0;\n    }\n\n    return {\n        red: r,\n        green: g,\n        blue: b,\n    };\n}\n","function isValidRGBValue(value) {\n    return (typeof (value) === 'number' && Number.isNaN(value) === false && value >= 0 && value <= 255);\n}\n\nexport default function setRGBA(red, green, blue, alpha) {\n    if (isValidRGBValue(red) && isValidRGBValue(green) && isValidRGBValue(blue)) {\n        const color = {\n            red: red | 0,\n            green: green | 0,\n            blue: blue | 0,\n        };\n\n        if (isValidRGBValue(alpha) === true) {\n            color.alpha = alpha | 0;\n        }\n\n        // RGBToHSL(color.r, color.g, color.b);\n\n        return color;\n    }\n}\n","import setRGBA from './setRgba';\n\nexport default function hsvToRgb(hue, saturation, value) {\n    value /= 100;\n    const sat = saturation / 100;\n    let C = sat * value;\n    const H = hue / 60;\n    let X = C * (1 - Math.abs(H % 2 - 1));\n    let m = value - C;\n    const precision = 255;\n\n    C = (C + m) * precision | 0;\n    X = (X + m) * precision | 0;\n    m = m * precision | 0;\n\n    if (H >= 1 && H < 2) {\n        return setRGBA(X, C, m);\n    }\n    if (H >= 2 && H < 3) {\n        return setRGBA(m, C, X);\n    }\n    if (H >= 3 && H < 4) {\n        return setRGBA(m, X, C);\n    }\n    if (H >= 4 && H < 5) {\n        return setRGBA(X, m, C);\n    }\n    if (H >= 5 && H <= 6) {\n        return setRGBA(C, m, X);\n    }\n\n    return setRGBA(C, X, m);\n}\n","import hsvToRgb from './hsvToRgb';\n\nexport default function changePicker(x, y, height, width, hue) {\n    if (x > width) x = width;\n    if (y > height) y = height;\n    if (x < 0) x = 0;\n    if (y < 0) y = 0;\n    const value = 100 - (y * 100 / height) | 0;\n    const saturation = x * 100 / width | 0;\n    return {\n        ...hsvToRgb(hue, saturation, value),\n        saturation,\n        value,\n    };\n}\n","import { hsvToRgb } from './index';\n\nexport default function getHue(offsetX, width, saturation, value) {\n    let hue = ((360 * offsetX) / width) | 0;\n\n    hue = hue < 0 ? 0 : hue > 360 ? 360 : hue;\n\n    return {\n        ...hsvToRgb(hue, saturation, value),\n        hue,\n    };\n}\n","export default function getAlpha(value, width) {\n    value = Number((value / width).toFixed(2));\n\n    return value > 1 ? 1 : value < 0 ? 0 : value;\n}\n","export default function rgbToHex(red, green, blue) {\n    let r16 = red.toString(16);\n    let g16 = green.toString(16);\n    let b16 = blue.toString(16);\n\n    if (red < 16) r16 = `0${r16}`;\n    if (green < 16) g16 = `0${g16}`;\n    if (blue < 16) b16 = `0${b16}`;\n\n    return r16 + g16 + b16;\n}\n","import { rgbToHsv, setRgba } from './index';\n\nconst hexRegexp = /(^#{0,1}[0-9A-F]{6}$)|(^#{0,1}[0-9A-F]{3}$)|(^#{0,1}[0-9A-F]{8}$)/i;\n\nconst regexp = /([0-9A-F])([0-9A-F])([0-9A-F])/i;\n\nexport default function hexToRgb(value) {\n    const valid = hexRegexp.test(value);\n\n    if (valid) {\n        if (value[0] === '#') value = value.slice(1, value.length);\n\n        if (value.length === 3) value = value.replace(regexp, '$1$1$2$2$3$3');\n\n        const red = parseInt(value.substr(0, 2), 16);\n        const green = parseInt(value.substr(2, 2), 16);\n        const blue = parseInt(value.substr(4, 2), 16);\n        const alpha = parseInt(value.substr(6, 2), 16) / 255;\n\n        const color = setRgba(red, green, blue, alpha);\n        const hsv = rgbToHsv({ ...color });\n\n        return {\n            ...color,\n            ...hsv,\n        };\n    }\n\n    return false;\n}\n","export default function updateGradientActivePercent(offsetX, width) {\n    const leftPercent = (offsetX * 100) / width;\n    return leftPercent < 0 ? 0 : leftPercent > 100 ? 100 : leftPercent;\n}\n","export default function calculateDegree(x, y, centerX, centerY) {\n    const radians = Math.atan2(x - centerX, y - centerY);\n    return (radians * (180 / Math.PI) * -1) + 180;\n}\n","export default function getRightValue(newValue, oldValue) {\n    return (!newValue && newValue !== 0) ? oldValue : newValue;\n}\n","export function generateSolidStyle(red, green, blue, alpha) {\n    return `rgba(${red}, ${green}, ${blue}, ${alpha})`;\n}\n\nexport function generateGradientStyle(points, type, degree) {\n    let style = '';\n    const sortedPoints = points.slice();\n\n    sortedPoints.sort((a, b) => a.left - b.left);\n\n    if (type === 'linear') {\n        style = `linear-gradient(${degree}deg,`;\n    } else {\n        style = 'radial-gradient(';\n    }\n\n    sortedPoints.forEach((point, index) => {\n        style += `rgba(${point.red}, ${point.green}, ${point.blue}, ${point.alpha}) ${point.left}%`;\n\n        if (index !== sortedPoints.length - 1) {\n            style += ',';\n        }\n    });\n\n    style += ')';\n    return style;\n}\n","import React, {\n    useEffect, useCallback, useRef, useState,\n} from 'react';\n\nimport { changePicker, getRgbByHue } from 'lib/helpers';\nimport { useMouseEvents } from 'lib/hooks';\n\nfunction Picking({\n    red,\n    green,\n    blue,\n    hue,\n    saturation,\n    value,\n    updateRgb,\n}) {\n    const pickingAreaRef = useRef();\n    const [width, setWidth] = useState(0);\n    const [height, setHeight] = useState(0);\n\n    useEffect(() => {\n        if (pickingAreaRef.current) {\n            setWidth(pickingAreaRef.current.clientWidth);\n            setHeight(pickingAreaRef.current.clientHeight);\n        }\n    }, [pickingAreaRef, setWidth, setHeight]);\n\n    useEffect(() => {\n        const { red, green, blue } = getRgbByHue(hue);\n\n        pickingAreaRef.current.style.backgroundColor = `rgb(${red}, ${green}, ${blue})`;\n    }, [hue]);\n\n    // generate offsetLeft by saturation\n    const offsetLeft = ((saturation * width / 100) | 0) - 6;\n\n    // generate offsetTop by value\n    const offsetTop = (height - (value * height / 100) | 0) - 6;\n\n    const getPointerStyle = {\n        backgroundColor: `rgb(${red}, ${green}, ${blue})`,\n        left: `${offsetLeft}px`,\n        top: `${offsetTop}px`,\n    };\n\n    const mouseDownHandler = useCallback(event => {\n        const elementX = event.currentTarget.getBoundingClientRect().x;\n        const elementY = event.currentTarget.getBoundingClientRect().y;\n        const startX = event.pageX;\n        const startY = event.pageY;\n        const positionX = startX - elementX;\n        const positionY = startY - elementY;\n\n        const color = changePicker(positionX, positionY, height, width, hue);\n\n        updateRgb(color, 'onStartChange');\n        return {\n            startX,\n            startY,\n            positionX,\n            positionY,\n\n        };\n    }, [height, width, hue, updateRgb]);\n\n    const changeObjectPositions = useCallback((event, {\n        startX, startY, positionX, positionY,\n    }) => {\n        const moveX = event.pageX - startX;\n        const moveY = event.pageY - startY;\n        positionX += moveX;\n        positionY += moveY;\n\n        const color = changePicker(positionX, positionY, height, width, hue);\n\n        return {\n            positions: {\n                positionX,\n                positionY,\n                startX: event.pageX,\n                startY: event.pageY,\n            },\n            color,\n        };\n    }, [height, hue, width]);\n\n    const mouseMoveHandler = useCallback((event, {\n        startX, startY, positionX, positionY,\n    }) => {\n        const { positions, color } = changeObjectPositions(event, {\n            startX, startY, positionX, positionY,\n        });\n\n        updateRgb(color, 'onChange');\n\n        return positions;\n    }, [updateRgb, changeObjectPositions]);\n\n    const mouseUpHandler = useCallback((event, {\n        startX, startY, positionX, positionY,\n    }) => {\n        const { positions, color } = changeObjectPositions(event, {\n            startX, startY, positionX, positionY,\n        });\n\n        updateRgb(color, 'onEndChange');\n\n        return positions;\n    }, [updateRgb, changeObjectPositions]);\n\n    const mouseEvents = useMouseEvents(mouseDownHandler, mouseMoveHandler, mouseUpHandler);\n\n    const onMouseDown = event => {\n        mouseEvents(event);\n    };\n\n    return (\n        <div\n            className=\"picking-area\"\n            ref={pickingAreaRef}\n            onMouseDown={onMouseDown}\n        >\n            <div className=\"picking-area-overlay1\">\n                <div className=\"picking-area-overlay2\">\n                    <div className=\"picker-pointer\" style={getPointerStyle} />\n                </div>\n            </div>\n        </div>\n    );\n}\n\nexport default Picking;\n","import React, { useEffect, useState } from 'react';\n\nimport { generateSolidStyle, generateGradientStyle } from 'lib/helpers';\n\nfunction Preview({\n    red,\n    green,\n    blue,\n    alpha,\n    isGradient,\n    points,\n    gradientType,\n    gradientDegree,\n}) {\n    const [style, setStyle] = useState({});\n\n    useEffect(() => {\n        if (isGradient) {\n            const style = generateGradientStyle(points, gradientType, gradientDegree);\n\n            setStyle({ background: style });\n\n            return;\n        }\n\n        const style = generateSolidStyle(red, green, blue, alpha);\n\n        setStyle({ backgroundColor: style });\n    }, [points, gradientDegree, gradientType, isGradient, red, green, blue, alpha]);\n\n    return (\n        <div className=\"preview-area\">\n            <div className=\"preview-box\" style={style} />\n        </div>\n    );\n}\n\nexport default Preview;\n","import React, {\n    useCallback, useEffect, useRef, useState,\n} from 'react';\n\nimport { useMouseEvents } from 'lib/hooks';\nimport { getHue } from 'lib/helpers';\n\nfunction Hue({\n    hue, saturation, value, updateRgb,\n}) {\n    const hueRef = useRef();\n    const [width, setWidth] = useState(0);\n\n    useEffect(() => {\n        if (hueRef.current) {\n            setWidth(hueRef.current.clientWidth);\n        }\n    }, [setWidth]);\n\n    const mouseDownHandler = useCallback(event => {\n        const elementX = event.currentTarget.getBoundingClientRect().x;\n        const startX = event.pageX;\n        const positionX = startX - elementX;\n\n        const color = getHue(positionX, width, saturation, value);\n\n        updateRgb(color, 'onStartChange');\n\n        return {\n            startX,\n            positionX,\n        };\n    }, [width, saturation, value, updateRgb]);\n\n    const changeObjectPositions = useCallback((event, { startX, positionX }) => {\n        const moveX = event.pageX - startX;\n        positionX += moveX;\n\n        // update value and saturation\n        const offsetX = positionX > width ? width : positionX <= 0 ? 0 : positionX;\n        const color = getHue(offsetX, width, saturation, value);\n\n        return {\n            positions: {\n                positionX,\n                startX: event.pageX,\n            },\n            color,\n        };\n    }, [width, saturation, value]);\n\n    const mouseMoveHandler = useCallback((event, { startX, positionX }) => {\n        const { positions, color } = changeObjectPositions(event, { startX, positionX });\n\n        updateRgb(color, 'onChange');\n\n        return positions;\n    }, [changeObjectPositions, updateRgb]);\n\n    const mouseUpHandler = useCallback((event, { startX, positionX }) => {\n        const { positions, color } = changeObjectPositions(event, { startX, positionX });\n\n        updateRgb(color, 'onEndChange');\n\n        return positions;\n    }, [changeObjectPositions, updateRgb]);\n\n    const mouseEvents = useMouseEvents(mouseDownHandler, mouseMoveHandler, mouseUpHandler);\n\n    const onMouseDown = event => {\n        mouseEvents(event);\n    };\n\n    const offsetLeft = ((hue * width / 360) | 0) - 6;\n\n    const pointerStyle = {\n        left: `${offsetLeft}px`,\n    };\n\n    return (\n        <div\n            className=\"hue\"\n            onMouseDown={onMouseDown}\n        >\n            <div className=\"hue-area\" ref={hueRef}>\n                <div\n                    className=\"picker-pointer\"\n                    style={pointerStyle}\n                />\n            </div>\n        </div>\n    );\n}\n\nexport default Hue;\n","import React, {\n    useCallback, useEffect, useRef, useState,\n} from 'react';\n\nimport { useMouseEvents } from 'lib/hooks';\nimport { getAlpha } from 'lib/helpers';\n\nfunction Alpha({\n    red, green, blue, alpha, updateRgb,\n}) {\n    const alphaMaskRef = useRef();\n    const [width, setWidth] = useState(0);\n\n    useEffect(() => {\n        if (alphaMaskRef.current) {\n            setWidth(alphaMaskRef.current.clientWidth);\n        }\n    }, [setWidth]);\n\n    const mouseDownHandler = useCallback(event => {\n        const elementX = event.currentTarget.getBoundingClientRect().x;\n        const startX = event.pageX;\n        const positionX = startX - elementX;\n\n        updateRgb({ alpha: getAlpha(positionX, width) }, 'onStartChange');\n        return {\n            startX,\n            positionX,\n\n        };\n    }, [width, updateRgb]);\n\n    const changeObjectPositions = useCallback((event, { startX, positionX }) => {\n        const moveX = event.pageX - startX;\n        positionX += moveX;\n\n        const alpha = getAlpha(positionX, width);\n\n        return {\n            positions: {\n                positionX,\n                startX: event.pageX,\n            },\n            alpha,\n        };\n    }, [width]);\n\n    const mouseMoveHandler = useCallback((event, { startX, positionX }) => {\n        const { positions, alpha } = changeObjectPositions(event, { startX, positionX });\n\n        updateRgb({ alpha }, 'onChange');\n\n        return positions;\n    }, [changeObjectPositions, updateRgb]);\n\n    const mouseUpHandler = useCallback((event, { startX, positionX }) => {\n        const { positions, alpha } = changeObjectPositions(event, { startX, positionX });\n\n        updateRgb({ alpha }, 'onEndChange');\n\n        return positions;\n    }, [changeObjectPositions, updateRgb]);\n\n    const mouseEvents = useMouseEvents(mouseDownHandler, mouseMoveHandler, mouseUpHandler);\n\n    const onMouseDown = event => {\n        mouseEvents(event);\n    };\n\n    const style = {\n        background: `linear-gradient(to right, rgba(0, 0, 0, 0), rgb(${red}, ${green}, ${blue}))`,\n    };\n\n    const offsetLeft = ((alpha * width) | 0) - 6;\n\n    const pointerStyle = {\n        left: `${offsetLeft}px`,\n    };\n\n    return (\n        <div\n            onMouseDown={onMouseDown}\n            className=\"alpha\"\n        >\n            <div className=\"gradient\" style={style} />\n            <div className=\"alpha-area\">\n                <div className=\"alpha-mask\" ref={alphaMaskRef}>\n                    <div className=\"picker-pointer\" style={pointerStyle} />\n                </div>\n            </div>\n        </div>\n    );\n}\n\nexport default Alpha;\n","import React, { useCallback } from 'react';\n\nimport { updateGradientActivePercent } from 'lib/helpers';\nimport { useMouseEvents } from 'lib/hooks';\n\nfunction GradientPoint({\n    point,\n    activePointIndex,\n    index,\n    width,\n    positions,\n    changeActivePointIndex,\n    updateGradientLeft,\n    removePoint,\n}) {\n    const activeClassName = activePointIndex === index ? ' active' : '';\n\n    const pointStyle = {\n        left: `${(point.left * (width / 100)) - 6}px`,\n    };\n\n    const mouseDownHandler = useCallback(event => {\n        changeActivePointIndex(index);\n\n        const startX = event.pageX;\n        const startY = event.pageY;\n        const offsetX = startX - positions.x;\n\n        updateGradientLeft(point.left, index, 'onStartChange');\n\n        return {\n            startX,\n            startY,\n            offsetX,\n\n        };\n    }, [point.left, index, positions, changeActivePointIndex, updateGradientLeft]);\n\n    const changeObjectPositions = useCallback((event, { startX, offsetX }) => {\n        const moveX = event.pageX - startX;\n        offsetX += moveX;\n        // update point percent\n        const left = updateGradientActivePercent(offsetX, width);\n\n        return {\n            positions: {\n                offsetX,\n                startX: event.pageX,\n            },\n            left,\n        };\n    }, [width]);\n\n    const mouseMoveHandler = useCallback((event, { startX, offsetX }) => {\n        const { positions, left } = changeObjectPositions(event, { startX, offsetX });\n\n        updateGradientLeft(left, index, 'onChange');\n\n        return positions;\n    }, [index, changeObjectPositions, updateGradientLeft]);\n\n    const mouseUpHandler = useCallback((event, { startX, offsetX }) => {\n        const { positions, left } = changeObjectPositions(event, { startX, offsetX });\n\n        updateGradientLeft(left, index, 'onEndChange');\n\n        return positions;\n    }, [index, changeObjectPositions, updateGradientLeft]);\n\n    const mouseEvents = useMouseEvents(mouseDownHandler, mouseMoveHandler, mouseUpHandler);\n\n    const onMouseDown = event => {\n        changeActivePointIndex(index);\n        mouseEvents(event);\n    };\n\n    const pointerClickHandler = event => {\n        event.stopPropagation();\n    };\n\n    return (\n        <div\n            className={`picker-pointer${activeClassName}`}\n            onClick={pointerClickHandler}\n            style={pointStyle}\n            onMouseDown={onMouseDown}\n            onDoubleClick={() => removePoint(index)}\n        >\n            <span className={`child-point${activeClassName}`} />\n        </div>\n    );\n}\n\nexport default GradientPoint;\n","import React, {\n    useEffect, useState, useRef, useCallback,\n} from 'react';\n\nimport { generateGradientStyle, updateGradientActivePercent } from 'lib/helpers';\n\nimport GradientPoint from './GradientPoint';\n\nfunction GradientPoints({\n    points, activePointIndex, changeActivePointIndex, updateGradientLeft, addPoint, removePoint,\n}) {\n    const [pointsStyle, setpointsStyle] = useState({});\n    const [width, setWidth] = useState(0);\n    const [positions, setPositions] = useState({});\n\n    const pointsContainerRef = useRef();\n\n\n    useEffect(() => {\n        if (pointsContainerRef.current) {\n            setWidth(pointsContainerRef.current.clientWidth);\n\n            const pointerPos = pointsContainerRef.current.getBoundingClientRect();\n            setPositions({ x: pointerPos.x, y: pointerPos.y });\n        }\n    }, []);\n    useEffect(() => {\n        const style = generateGradientStyle(points, 'linear', 90);\n\n        setpointsStyle({ background: style });\n    }, [points]);\n\n\n    const pointsContainerClick = useCallback(event => {\n        const left = updateGradientActivePercent(event.pageX - positions.x, width);\n\n        addPoint(left);\n    }, [addPoint, positions.x, width]);\n\n    const pointsContainer = () => (\n        <div\n            className=\"gradient-slider-container\"\n            ref={pointsContainerRef}\n        >\n            {\n                points && points.map((point, index) => (\n                    <GradientPoint\n                        key={index}\n                        activePointIndex={activePointIndex}\n                        index={index}\n                        point={point}\n                        width={width}\n                        positions={positions}\n                        changeActivePointIndex={changeActivePointIndex}\n                        updateGradientLeft={updateGradientLeft}\n                        removePoint={removePoint}\n                    />\n                ))\n            }\n        </div>\n    );\n\n    return (\n        <div\n            className=\"gradient\"\n            style={pointsStyle}\n            onClick={pointsContainerClick}\n        >\n            {pointsContainer()}\n        </div>\n\n\n    );\n}\n\nexport default GradientPoints;\n","import React from 'react';\n\nimport Picking from './Picking';\nimport Preview from './Preview';\nimport Hue from './Hue';\nimport Alpha from './Alpha';\nimport GradientPoints from './GradientPoints';\n\nfunction Area({\n    red,\n    green,\n    blue,\n    alpha,\n    hue,\n    saturation,\n    value,\n    isGradient,\n    type,\n    degree,\n    points,\n    activePointIndex,\n    updateRgb,\n    changeActivePointIndex,\n    updateGradientLeft,\n    addPoint,\n    removePoint,\n}) {\n    return (\n        <div className=\"picker-area\">\n            <Picking\n                red={red}\n                green={green}\n                blue={blue}\n                hue={hue}\n                saturation={saturation}\n                value={value}\n                updateRgb={updateRgb}\n            />\n\n            {\n                isGradient\n                && (\n                    <GradientPoints\n                        type={type}\n                        degree={degree}\n                        points={points}\n                        activePointIndex={activePointIndex}\n                        changeActivePointIndex={changeActivePointIndex}\n                        updateGradientLeft={updateGradientLeft}\n                        addPoint={addPoint}\n                        removePoint={removePoint}\n                    />\n                )\n            }\n\n            <div className=\"preview\">\n                <Preview\n                    red={red}\n                    green={green}\n                    blue={blue}\n                    alpha={alpha}\n                    points={points}\n                    gradientDegree={degree}\n                    gradientType={type}\n                    isGradient={isGradient}\n                />\n\n                <div className=\"color-hue-alpha\">\n                    <Hue\n                        hue={hue}\n                        saturation={saturation}\n                        value={value}\n                        updateRgb={updateRgb}\n                    />\n                    <Alpha\n                        alpha={alpha}\n                        red={red}\n                        green={green}\n                        blue={blue}\n                        updateRgb={updateRgb}\n                    />\n                </div>\n            </div>\n        </div>\n    );\n}\n\nexport default Area;\n","import React from 'react';\nimport './index.scss';\n\nfunction Input({\n    value, label, type = 'text', onChange, onFocus, onBlur, classes,\n}) {\n    return (\n        <div className={`input-field ${classes}`}>\n            <div className=\"input-container\">\n                <input\n                    className={`${type}-input input`}\n                    value={value}\n                    onChange={onChange}\n                    onFocus={onFocus}\n                    onBlur={onBlur}\n                />\n            </div>\n            <div className=\"label\">\n                {label}\n            </div>\n        </div>\n    );\n}\n\nexport { Input };\n","import React, { useState, useEffect, useCallback } from 'react';\n\nimport { rgbToHex, hexToRgb } from 'lib/helpers';\nimport { Input } from 'lib/components/UI';\n\nfunction Hex({\n    red, green, blue, updateRgb,\n}) {\n    const [hexValue, setHexValue] = useState('');\n    const [progress, setProgress] = useState(false);\n\n    useEffect(() => {\n        if (progress) {\n            return;\n        }\n        const hex = rgbToHex(red, green, blue);\n\n        setHexValue(hex);\n    }, [red, green, blue, progress]);\n\n    const changeHex = useCallback(event => {\n        setHexValue(event.target.value);\n        const color = hexToRgb(event.target.value);\n\n        if (color) {\n            updateRgb(color);\n        }\n    }, [setHexValue, updateRgb]);\n\n    return (\n        <Input\n            value={hexValue}\n            label=\"hex\"\n            onChange={changeHex}\n            onFocus={() => setProgress(true)}\n            onBlur={() => setProgress(false)}\n            classes=\"hex\"\n        />\n    );\n}\n\nexport default Hex;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport { Input } from 'lib/components/UI';\n\nexport default function RGBItem({\n    value, type, label, onChange,\n}) {\n    const [inputValue, setInputValue] = useState(value);\n\n    useEffect(() => {\n        if (value !== +inputValue && inputValue !== '') {\n            setInputValue(value);\n        }\n    }, [inputValue, value]);\n\n    const onChangeHandler = useCallback(event => {\n        const value = +event.target.value;\n\n        if (Number.isNaN(value) || value.length > 3 || value < 0 || value > 255) {\n            return;\n        }\n        setInputValue(event.target.value);\n\n        onChange(value);\n    }, [onChange]);\n\n    const onBlur = useCallback(() => {\n        !inputValue && inputValue !== 0 && setInputValue(value);\n    }, [inputValue, setInputValue, value]);\n\n    return (\n        <Input\n            value={inputValue}\n            type={type}\n            label={label}\n            onChange={onChangeHandler}\n            onBlur={onBlur}\n            classes=\"rgb\"\n        />\n    );\n}\n","import React, { useCallback } from 'react';\n\nimport { rgbToHsv } from 'lib/helpers';\n\nimport RGBItem from './item';\n\nfunction RGB({\n    red, green, blue, alpha, updateRgb,\n}) {\n    const changeValue = useCallback((field, value) => {\n        if (field === 'alpha') {\n            updateRgb({ alpha: value / 100 });\n\n            return;\n        }\n\n        const color = rgbToHsv({\n            red, green, blue, [field]: value,\n        });\n\n        updateRgb({ ...color, [field]: value });\n    }, [red, green, blue, updateRgb]);\n\n    return (\n        <>\n            <RGBItem\n                value={red}\n                type=\"number\"\n                label=\"R\"\n                onChange={value => changeValue('red', value)}\n            />\n\n            <RGBItem\n                value={green}\n                type=\"number\"\n                label=\"G\"\n                onChange={value => changeValue('green', value)}\n            />\n\n            <RGBItem\n                value={blue}\n                type=\"number\"\n                label=\"B\"\n                onChange={value => changeValue('blue', value)}\n            />\n\n            <RGBItem\n                value={parseInt(alpha * 100, 10)}\n                type=\"number\"\n                label=\"alpha\"\n                onChange={value => changeValue('alpha', value)}\n            />\n        </>\n    );\n}\n\nexport default RGB;\n","import React from 'react';\n\nimport Hex from './Hex';\nimport RGB from './RGB';\n\nfunction Preview({\n    red, green, blue, alpha, updateRgb,\n}) {\n    return (\n        <div className=\"color-preview-area\">\n            <div className=\"input-group\">\n                <Hex\n                    red={red}\n                    green={green}\n                    blue={blue}\n                    updateRgb={updateRgb}\n                />\n\n                <RGB\n                    red={red}\n                    green={green}\n                    blue={blue}\n                    alpha={alpha}\n                    updateRgb={updateRgb}\n                />\n            </div>\n        </div>\n    );\n}\n\nexport default Preview;\n","import React, { useCallback, useState } from 'react';\n\nimport { useMount } from 'lib/hooks';\nimport { rgbToHsv, getRightValue, generateSolidStyle } from 'lib/helpers';\n\nimport Area from '../Area';\nimport Preview from '../Preview';\n\nfunction Solid({\n    red,\n    green,\n    blue,\n    alpha,\n    onChange,\n    onStartChange,\n    onEndChange,\n}) {\n    const [colorRed, setColorRed] = useState(red);\n    const [colorGreen, setColorGreen] = useState(green);\n    const [colorBlue, setColorBlue] = useState(blue);\n    const [colorAlpha, setColorAlpha] = useState(alpha);\n    const [colorHue, setColorHue] = useState(0);\n    const [colorSaturation, setColorSaturation] = useState(100);\n    const [colorValue, setColorValue] = useState(100);\n\n    const actions = {\n        onChange,\n        onStartChange,\n        onEndChange,\n    };\n\n    useMount(() => {\n        const { hue, saturation, value } = rgbToHsv({ red: colorRed, green: colorGreen, blue: colorBlue });\n\n        setColorHue(hue);\n        setColorSaturation(saturation);\n        setColorValue(value);\n    });\n\n    const updateColor = useCallback(({\n        red, green, blue, alpha, hue, saturation, value,\n    }, actionName = 'onChange') => {\n        red = getRightValue(red, colorRed);\n        green = getRightValue(green, colorGreen);\n        blue = getRightValue(blue, colorBlue);\n        alpha = getRightValue(alpha, colorAlpha);\n        hue = getRightValue(hue, colorHue);\n        saturation = getRightValue(saturation, colorSaturation);\n        value = getRightValue(value, colorValue);\n\n        setColorRed(red);\n        setColorGreen(green);\n        setColorBlue(blue);\n        setColorAlpha(alpha);\n        setColorHue(hue);\n        setColorSaturation(saturation);\n        setColorValue(value);\n\n        const action = actions[actionName];\n\n        action && action({\n            red,\n            green,\n            blue,\n            alpha,\n            hue,\n            saturation,\n            value,\n            style: generateSolidStyle(red, green, blue, alpha),\n        });\n    }, [\n        colorRed, colorGreen, colorBlue, colorAlpha,\n        colorHue, colorSaturation, colorValue,\n        actions,\n    ]);\n\n    return (\n        <>\n            <Area\n                red={colorRed}\n                green={colorGreen}\n                blue={colorBlue}\n                alpha={colorAlpha}\n                hue={colorHue}\n                saturation={colorSaturation}\n                value={colorValue}\n                updateRgb={updateColor}\n            />\n            <Preview\n                red={colorRed}\n                green={colorGreen}\n                blue={colorBlue}\n                alpha={colorAlpha}\n                updateRgb={updateColor}\n            />\n        </>\n    );\n}\n\nSolid.defaultProps = {\n    red: 255,\n    green: 0,\n    blue: 0,\n    alpha: 1,\n};\n\nexport default Solid;\n","import React, { useCallback, useState } from 'react';\n\nimport { calculateDegree } from 'lib/helpers';\nimport { useMouseEvents } from 'lib/hooks';\n\nfunction GradientControls({ type, degree, changeGradientControl }) {\n    const [disableClick, setDisableClick] = useState(false);\n\n    const onClickGradientDegree = useCallback(() => {\n        if (disableClick) {\n            setDisableClick(false);\n            return;\n        }\n\n        let gradientDegree = degree + 45;\n\n        if (gradientDegree >= 360) {\n            gradientDegree = 0;\n        }\n\n        changeGradientControl({ degree: parseInt(gradientDegree, 10) });\n    }, [disableClick, degree, changeGradientControl]);\n\n    const mouseDownHandler = useCallback(event => {\n        const pointer = event.target;\n        const pointerBox = pointer.getBoundingClientRect();\n        const centerY = pointerBox.top + parseInt(8 - window.pageYOffset, 10);\n        const centerX = pointerBox.left + parseInt(8 - window.pageXOffset, 10);\n\n        return {\n            centerY,\n            centerX,\n\n        };\n    }, []);\n\n    const mouseMoveHandler = useCallback((event, { centerX, centerY }) => {\n        setDisableClick(true);\n\n        const newDegree = calculateDegree(event.clientX, event.clientY, centerX, centerY);\n\n        changeGradientControl({ degree: parseInt(newDegree, 10) });\n\n        return { centerX, centerY };\n    }, [changeGradientControl]);\n\n    const mouseUpHandler = event => {\n        const targetClasses = event.target.classList;\n\n        if (targetClasses.contains('gradient-degrees') || targetClasses.contains('icon-rotate')) {\n            return;\n        }\n\n        setDisableClick(false);\n    };\n\n    const mouseEvents = useMouseEvents(mouseDownHandler, mouseMoveHandler, mouseUpHandler);\n\n    const onMouseDown = event => {\n        mouseEvents(event);\n    };\n\n    const degreesStyle = {\n        transform: `rotate(${degree}deg)`,\n    };\n\n    return (\n        <div className=\"gradient-controls\">\n            <div className=\"gradient-type\">\n                <div\n                    className={`gradient-type-item liner-gradient ${type === 'linear' ? 'active' : ''}`}\n                    onClick={() => changeGradientControl({ type: 'linear' })}\n                />\n                <div\n                    className={`gradient-type-item radial-gradient ${type === 'radial' ? 'active' : ''}`}\n                    onClick={() => changeGradientControl({ type: 'radial' })}\n                />\n            </div>\n            {\n                type === 'linear'\n                && (\n                    <div className=\"gradient-degrees-options\">\n                        <div\n                            className=\"gradient-degrees\"\n                            onMouseDown={onMouseDown}\n                            onClick={onClickGradientDegree}\n                        >\n                            <div className=\"gradient-degree-center\" style={degreesStyle}>\n                                <div className=\"gradient-degree-pointer\" />\n                            </div>\n                        </div>\n                        <div className=\"gradient-degree-value\">\n                            <p>\n                                {degree}\n                                &#176;\n                            </p>\n                        </div>\n                    </div>\n                )\n            }\n        </div>\n    );\n}\n\nexport default GradientControls;\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport { useMount } from 'lib/hooks';\nimport { rgbToHsv, getRightValue, generateGradientStyle } from 'lib/helpers';\n\nimport Area from '../Area';\nimport Preview from '../Preview';\nimport GradientControls from './GradientControls';\n\nfunction Gradient({\n    points, type, degree, onChange, onStartChange, onEndChange,\n}) {\n    const [activePointIndex, setActivePointIndex] = useState(0);\n    const [gradientPoints, setGradientPoints] = useState(points);\n    const [activePoint, setActivePoint] = useState(gradientPoints[0]);\n    const [colorRed, setColorRed] = useState(activePoint.red);\n    const [colorGreen, setColorGreen] = useState(activePoint.green);\n    const [colorBlue, setColorBlue] = useState(activePoint.blue);\n    const [colorAlpha, setColorAlpha] = useState(activePoint.alpha);\n    const [colorHue, setColorHue] = useState(0);\n    const [colorSaturation, setColorSaturation] = useState(100);\n    const [colorValue, setColorValue] = useState(100);\n    const [gradientType, setGradientType] = useState(type);\n    const [gradientDegree, setGradientDegree] = useState(degree);\n\n    const actions = {\n        onChange,\n        onStartChange,\n        onEndChange,\n    };\n\n    useMount(() => {\n        const { hue, saturation, value } = rgbToHsv({ red: colorRed, green: colorGreen, blue: colorBlue });\n\n        setColorHue(hue);\n        setColorSaturation(saturation);\n        setColorValue(value);\n    });\n\n    const removePoint = useCallback((index = activePointIndex) => {\n        if (gradientPoints.length <= 2) {\n            return;\n        }\n\n        const localGradientPoints = gradientPoints.slice();\n        localGradientPoints.splice(index, 1);\n\n        setGradientPoints(localGradientPoints);\n\n        if (index > 0) {\n            setActivePointIndex(index - 1);\n        }\n\n        onChange && onChange({\n            points: localGradientPoints,\n            type: gradientType,\n            degree: gradientDegree,\n            style: generateGradientStyle(localGradientPoints, gradientType, gradientDegree),\n        });\n    }, [gradientPoints, activePointIndex, gradientType, gradientDegree, onChange]);\n\n    const keyUpHandler = useCallback(event => {\n        if ((event.keyCode === 46 || event.keyCode === 8)) {\n            removePoint(activePointIndex);\n        }\n    }, [activePointIndex, removePoint]);\n\n    useEffect(() => {\n        document.addEventListener('keyup', keyUpHandler);\n\n        return () => {\n            document.removeEventListener('keyup', keyUpHandler);\n        };\n    });\n\n    const changeGradientControl = useCallback(({ type, degree }, actionName = 'onChange') => {\n        type = getRightValue(type, gradientType);\n        degree = getRightValue(degree, gradientDegree);\n\n        setGradientType(type);\n        setGradientDegree(degree);\n\n        const action = actions[actionName];\n\n        action && action({\n            points: gradientPoints,\n            type,\n            degree,\n            style: generateGradientStyle(gradientPoints, type, degree),\n        });\n    }, [actions, gradientPoints, gradientDegree, gradientType]);\n\n    const changeActivePointIndex = useCallback(index => {\n        setActivePointIndex(index);\n\n        const localGradientPoint = gradientPoints[index];\n        const {\n            red, green, blue, alpha,\n        } = localGradientPoint;\n        setActivePoint(localGradientPoint);\n\n        setColorRed(red);\n        setColorGreen(green);\n        setColorBlue(blue);\n        setColorAlpha(alpha);\n\n        const { hue, saturation, value } = rgbToHsv({ red, green, blue });\n\n        setColorHue(hue);\n        setColorSaturation(saturation);\n        setColorValue(value);\n    }, [gradientPoints]);\n\n    const updateColor = useCallback(({\n        red, green, blue, alpha, hue, saturation, value,\n    }, actionName = 'onChange') => {\n        red = getRightValue(red, colorRed);\n        green = getRightValue(green, colorGreen);\n        blue = getRightValue(blue, colorBlue);\n        alpha = getRightValue(alpha, colorAlpha);\n        hue = getRightValue(hue, colorHue);\n        saturation = getRightValue(saturation, colorSaturation);\n        value = getRightValue(value, colorValue);\n\n        const localGradientPoints = gradientPoints.slice();\n\n        localGradientPoints[activePointIndex] = {\n            ...localGradientPoints[activePointIndex],\n            red,\n            green,\n            blue,\n            alpha,\n        };\n\n        setColorRed(red);\n        setColorGreen(green);\n        setColorBlue(blue);\n        setColorAlpha(alpha);\n        setColorHue(hue);\n        setColorSaturation(saturation);\n        setColorValue(value);\n        setGradientPoints(localGradientPoints);\n\n        const action = actions[actionName];\n\n        action && action({\n            points: localGradientPoints,\n            type: gradientType,\n            degree: gradientDegree,\n            style: generateGradientStyle(localGradientPoints, gradientType, gradientDegree),\n        });\n    }, [\n        colorRed, colorGreen, colorBlue, colorAlpha,\n        colorHue, colorSaturation, colorValue,\n        activePointIndex, gradientPoints, actions, gradientType, gradientDegree,\n    ]);\n\n    const updateGradientLeft = useCallback((left, index, actionName = 'onChange') => {\n        const localGradientPoints = gradientPoints.slice();\n        localGradientPoints[index].left = left;\n\n        setGradientPoints(localGradientPoints);\n\n        const action = actions[actionName];\n\n        action && action({\n            points: localGradientPoints,\n            type: gradientType,\n            degree: gradientDegree,\n            style: generateGradientStyle(localGradientPoints, gradientType, gradientDegree),\n        });\n    }, [actions, gradientPoints, gradientDegree, gradientType]);\n\n    const addPoint = useCallback(left => {\n        const localGradientPoints = gradientPoints.slice();\n\n        localGradientPoints.push({\n            ...localGradientPoints[activePointIndex],\n            left,\n        });\n\n        setGradientPoints(localGradientPoints);\n        setActivePointIndex(localGradientPoints.length - 1);\n\n        onChange && onChange({\n            points: localGradientPoints,\n            type: gradientType,\n            degree: gradientDegree,\n            style: generateGradientStyle(localGradientPoints, gradientType, gradientDegree),\n        });\n    }, [onChange, gradientPoints, activePointIndex, gradientType, gradientDegree]);\n\n    return (\n        <>\n            <GradientControls\n                type={gradientType}\n                degree={gradientDegree}\n                changeGradientControl={changeGradientControl}\n            />\n            <Area\n                red={colorRed}\n                green={colorGreen}\n                blue={colorBlue}\n                alpha={colorAlpha}\n                hue={colorHue}\n                saturation={colorSaturation}\n                value={colorValue}\n                updateRgb={updateColor}\n                isGradient\n                type={gradientType}\n                degree={gradientDegree}\n                points={gradientPoints}\n                activePointIndex={activePointIndex}\n                changeGradientControl={changeGradientControl}\n                changeActivePointIndex={changeActivePointIndex}\n                updateGradientLeft={updateGradientLeft}\n                addPoint={addPoint}\n                removePoint={removePoint}\n            />\n            <Preview\n                red={colorRed}\n                green={colorGreen}\n                blue={colorBlue}\n                alpha={colorAlpha}\n                updateRgb={updateColor}\n            />\n        </>\n    );\n}\n\nexport default Gradient;\n","import React from 'react';\n\nimport Solid from './Solid';\nimport Gradient from './Gradient';\n\nfunction ColorPicker({\n    color,\n    isGradient,\n    gradient,\n    onStartChange,\n    onChange,\n    onEndChange,\n}) {\n    return (\n        <div className=\"ui-color-picker\">\n            {\n                isGradient\n                    ? (\n                        <Gradient\n                            points={gradient.points}\n                            updateColor={onChange}\n                            type={gradient.type}\n                            degree={gradient.degree}\n                            onChange={onChange}\n                            onStartChange={onStartChange}\n                            onEndChange={onEndChange}\n                        />\n                    )\n                    : (\n                        <Solid\n                            red={color.red}\n                            green={color.green}\n                            blue={color.blue}\n                            alpha={color.alpha}\n                            onChange={onChange}\n                            onStartChange={onStartChange}\n                            onEndChange={onEndChange}\n                        />\n                    )\n            }\n        </div>\n    );\n}\n\nColorPicker.defaultProps = {\n    isGradient: false,\n    onChange: () => {},\n    color: {\n        red: 255,\n        green: 0,\n        blue: 0,\n        alpha: 1,\n    },\n    gradient: {\n        points: [\n            {\n                left: 0,\n                red: 0,\n                green: 0,\n                blue: 0,\n                alpha: 1,\n            },\n            {\n                left: 100,\n                red: 255,\n                green: 0,\n                blue: 0,\n                alpha: 1,\n            },\n        ],\n        degree: 0,\n        type: 'linear',\n    },\n};\n\nexport default ColorPicker;\n"]}