"use client"; import { ColorPicker as SpectrumColorPicker, parseColor, Color, ColorArea, ColorThumb, ColorSlider, Input, ColorField, SliderTrack, ColorSwatch, } from "react-aria-components"; import { pickers } from "../ThemeSetter"; import { Separator } from "components/Layout"; import { onMouseDown } from "src/utils/iosInputMouseDown"; export let thumbStyle = "w-4 h-4 rounded-full border-2 border-white shadow-[0_0_0_1px_#8C8C8C,inset_0_0_0_1px_#8C8C8C]"; export const ColorPicker = (props: { label?: string; helpText?: string; value: Color | undefined; alpha?: boolean; image?: boolean; setValue: (c: Color) => void; openPicker: pickers; thisPicker: pickers; setOpenPicker: (thisPicker: pickers) => void; closePicker: () => void; disabled?: boolean; children?: React.ReactNode; }) => { return (
{props.value === undefined ? (
default
) : props.disabled ? (
hidden
) : ( { e.currentTarget.setSelectionRange( 1, e.currentTarget.value.length, ); }} onKeyDown={(e) => { if (e.key === "Enter") { e.currentTarget.blur(); } else return; }} onBlur={(e) => { props.setValue(parseColor(e.currentTarget.value)); }} className="w-[72px] bg-transparent outline-hidden disabled:text-tertiary" /> )} {props.alpha && !props.disabled && ( <> { e.currentTarget.setSelectionRange( 0, e.currentTarget.value.length - 1, ); }} onKeyDown={(e) => { if (e.key === "Enter") { e.currentTarget.blur(); } else return; }} className="w-[72px] bg-transparent outline-hidden " /> )}
{props.openPicker === props.thisPicker && (
{ <> {props.helpText && (
{props.helpText}
)} {props.alpha && ( )} {props.children} }
)}
); };