export const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); export const rgbaToHex = (rgba: string) => { if (!rgba.includes("rgba")) return "#121212"; const [r, g, b, a] = rgba ?.replace("rgba(", "") ?.replace(")", "") ?.split(",") .map((v) => Number(v)); return `#${((1 << 24) + (r << 16) + (g << 8) + b)?.toString(16)?.slice(1)}`; }; export const hexToRgba = (hex: string, alpha: number) => { const r = parseInt(hex.slice(1, 3), 16); const g = parseInt(hex.slice(3, 5), 16); const b = parseInt(hex.slice(5, 7), 16); return `rgba(${r}, ${g}, ${b}, ${alpha})`; }; export const hexToDecimal = (hex: string) => { return parseInt(hex, 16); }; export const linearGradientToArrayOfHex = (gradient: string) => { const colours = gradient .replace("linear-gradient(", "") .replace(")", "") .split(",") .map((v) => v.trim()); return colours.map((c) => rgbaToHex(c)); }; export const arrayOfHexsToLinearGradient = ( colours: string[], angle: number ) => { return `linear-gradient(${angle}deg, ${colours.join(", ")})`; };