@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
28 lines (27 loc) • 773 B
JavaScript
import chroma from "chroma-js";
//#region src/base-ui/ColorPicker/color.ts
const parseColor = (value, fallbackHue = 0) => {
if (!value || !chroma.valid(value)) return {
a: 1,
h: fallbackHue,
s: 0,
v: 0
};
const color = chroma(value);
const [h, s, v] = color.hsv();
return {
a: color.alpha(),
h: Number.isNaN(h) ? fallbackHue : h,
s,
v
};
};
const formatColor = ({ a, h, s, v }, alpha) => chroma.hsv(h, s, v).alpha(alpha ? a : 1).hex(alpha ? "rgba" : "rgb");
const normalizeHexInput = (input) => {
const raw = input.trim().replace(/^#/, "");
if (!/^([\da-f]{3}|[\da-f]{6}|[\da-f]{8})$/i.test(raw)) return null;
return `#${raw.toLowerCase()}`;
};
//#endregion
export { formatColor, normalizeHexInput, parseColor };
//# sourceMappingURL=color.mjs.map