{"version":3,"file":"SpectrumPalette.cjs","sources":["../../../../src/components/ColorPicker/SpectrumPalette.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport { useMemo, useState } from 'react';\nimport { RgbaStringColorPicker } from 'react-colorful';\nimport { useThrottleFn } from 'react-use';\nimport tinycolor from 'tinycolor2';\n\nimport { GrafanaTheme2, colorManipulator } from '@grafana/data';\n\nimport { useStyles2, useTheme2 } from '../../themes/ThemeContext';\n\nimport ColorInput from './ColorInput';\n\nexport interface SpectrumPaletteProps {\n  color: string;\n  onChange: (color: string) => void;\n}\n\nconst SpectrumPalette = ({ color, onChange }: SpectrumPaletteProps) => {\n  const [currentColor, setColor] = useState(color);\n\n  useThrottleFn(\n    (c) => {\n      onChange(colorManipulator.asHexString(theme.visualization.getColorByName(c)));\n    },\n    500,\n    [currentColor]\n  );\n\n  const theme = useTheme2();\n  const styles = useStyles2(getStyles);\n\n  const rgbaString = useMemo(() => {\n    return currentColor.startsWith('rgba')\n      ? currentColor\n      : tinycolor(theme.visualization.getColorByName(color)).toRgbString();\n  }, [currentColor, theme, color]);\n\n  return (\n    <div className={styles.wrapper}>\n      <RgbaStringColorPicker className={styles.root} color={rgbaString} onChange={setColor} />\n      <ColorInput color={rgbaString} onChange={setColor} className={styles.colorInput} />\n    </div>\n  );\n};\n\nexport const getStyles = (theme: GrafanaTheme2) => ({\n  wrapper: css({\n    flexGrow: 1,\n  }),\n  root: css({\n    '&.react-colorful': {\n      width: 'auto',\n    },\n\n    '.react-colorful': {\n      '&__saturation': {\n        borderRadius: `${theme.shape.radius.default} ${theme.shape.radius.default} 0 0`,\n      },\n      '&__alpha': {\n        borderRadius: `0 0 ${theme.shape.radius.default} ${theme.shape.radius.default}`,\n      },\n      '&__alpha, &__hue': {\n        height: theme.spacing(2),\n        position: 'relative',\n      },\n      '&__pointer': {\n        height: theme.spacing(2),\n        width: theme.spacing(2),\n      },\n    },\n  }),\n  colorInput: css({\n    marginTop: theme.spacing(2),\n  }),\n});\n\nexport default SpectrumPalette;\n"],"names":["useState","useThrottleFn","colorManipulator","useTheme2","useStyles2","useMemo","tinycolor","jsxs","jsx","RgbaStringColorPicker","css"],"mappings":";;;;;;;;;;;;;;;;;;;AAiBA,MAAM,eAAA,GAAkB,CAAC,EAAE,KAAA,EAAO,UAAS,KAA4B;AACrE,EAAA,MAAM,CAAC,YAAA,EAAc,QAAQ,CAAA,GAAIA,eAAS,KAAK,CAAA;AAE/C,EAAAC,sBAAA;AAAA,IACE,CAAC,CAAA,KAAM;AACL,MAAA,QAAA,CAASC,sBAAiB,WAAA,CAAY,KAAA,CAAM,cAAc,cAAA,CAAe,CAAC,CAAC,CAAC,CAAA;AAAA,IAC9E,CAAA;AAAA,IACA,GAAA;AAAA,IACA,CAAC,YAAY;AAAA,GACf;AAEA,EAAA,MAAM,QAAQC,sBAAA,EAAU;AACxB,EAAA,MAAM,MAAA,GAASC,wBAAW,SAAS,CAAA;AAEnC,EAAA,MAAM,UAAA,GAAaC,cAAQ,MAAM;AAC/B,IAAA,OAAO,YAAA,CAAa,UAAA,CAAW,MAAM,CAAA,GACjC,YAAA,GACAC,0BAAA,CAAU,KAAA,CAAM,aAAA,CAAc,cAAA,CAAe,KAAK,CAAC,CAAA,CAAE,WAAA,EAAY;AAAA,EACvE,CAAA,EAAG,CAAC,YAAA,EAAc,KAAA,EAAO,KAAK,CAAC,CAAA;AAE/B,EAAA,uBACEC,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,OAAA,EACrB,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,uCAAsB,SAAA,EAAW,MAAA,CAAO,MAAM,KAAA,EAAO,UAAA,EAAY,UAAU,QAAA,EAAU,CAAA;AAAA,oBACtFD,cAAA,CAAC,cAAW,KAAA,EAAO,UAAA,EAAY,UAAU,QAAA,EAAU,SAAA,EAAW,OAAO,UAAA,EAAY;AAAA,GAAA,EACnF,CAAA;AAEJ;AAEO,MAAM,SAAA,GAAY,CAAC,KAAA,MAA0B;AAAA,EAClD,SAASE,OAAA,CAAI;AAAA,IACX,QAAA,EAAU;AAAA,GACX,CAAA;AAAA,EACD,MAAMA,OAAA,CAAI;AAAA,IACR,kBAAA,EAAoB;AAAA,MAClB,KAAA,EAAO;AAAA,KACT;AAAA,IAEA,iBAAA,EAAmB;AAAA,MACjB,eAAA,EAAiB;AAAA,QACf,YAAA,EAAc,CAAA,EAAG,KAAA,CAAM,KAAA,CAAM,MAAA,CAAO,OAAO,CAAA,CAAA,EAAI,KAAA,CAAM,KAAA,CAAM,MAAA,CAAO,OAAO,CAAA,IAAA;AAAA,OAC3E;AAAA,MACA,UAAA,EAAY;AAAA,QACV,YAAA,EAAc,CAAA,IAAA,EAAO,KAAA,CAAM,KAAA,CAAM,MAAA,CAAO,OAAO,CAAA,CAAA,EAAI,KAAA,CAAM,KAAA,CAAM,MAAA,CAAO,OAAO,CAAA;AAAA,OAC/E;AAAA,MACA,kBAAA,EAAoB;AAAA,QAClB,MAAA,EAAQ,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,QACvB,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,YAAA,EAAc;AAAA,QACZ,MAAA,EAAQ,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,QACvB,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA;AACxB;AACF,GACD,CAAA;AAAA,EACD,YAAYA,OAAA,CAAI;AAAA,IACd,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA,GAC3B;AACH,CAAA;;;;;"}