@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 1.54 kB
Source Map (JSON)
{"version":3,"file":"color.mjs","names":[],"sources":["../../../src/base-ui/ColorPicker/color.ts"],"sourcesContent":["import chroma from 'chroma-js';\n\nexport interface Hsva {\n a: number;\n h: number;\n s: number;\n v: number;\n}\n\nexport const parseColor = (value: string | undefined, fallbackHue = 0): Hsva => {\n if (!value || !chroma.valid(value)) return { a: 1, h: fallbackHue, s: 0, v: 0 };\n const color = chroma(value);\n const [h, s, v] = color.hsv();\n return { a: color.alpha(), h: Number.isNaN(h) ? fallbackHue : h, s, v };\n};\n\nexport const formatColor = ({ a, h, s, v }: Hsva, alpha: boolean): string =>\n chroma\n .hsv(h, s, v)\n .alpha(alpha ? a : 1)\n .hex(alpha ? 'rgba' : 'rgb');\n\nexport const normalizeHexInput = (input: string): string | null => {\n const raw = input.trim().replace(/^#/, '');\n if (!/^([\\da-f]{3}|[\\da-f]{6}|[\\da-f]{8})$/i.test(raw)) return null;\n return `#${raw.toLowerCase()}`;\n};\n"],"mappings":";;AASA,MAAa,cAAc,OAA2B,cAAc,MAAY;CAC9E,IAAI,CAAC,SAAS,CAAC,OAAO,MAAM,KAAK,GAAG,OAAO;EAAE,GAAG;EAAG,GAAG;EAAa,GAAG;EAAG,GAAG;CAAE;CAC9E,MAAM,QAAQ,OAAO,KAAK;CAC1B,MAAM,CAAC,GAAG,GAAG,KAAK,MAAM,IAAI;CAC5B,OAAO;EAAE,GAAG,MAAM,MAAM;EAAG,GAAG,OAAO,MAAM,CAAC,IAAI,cAAc;EAAG;EAAG;CAAE;AACxE;AAEA,MAAa,eAAe,EAAE,GAAG,GAAG,GAAG,KAAW,UAChD,OACG,IAAI,GAAG,GAAG,CAAC,CAAC,CACZ,MAAM,QAAQ,IAAI,CAAC,CAAC,CACpB,IAAI,QAAQ,SAAS,KAAK;AAE/B,MAAa,qBAAqB,UAAiC;CACjE,MAAM,MAAM,MAAM,KAAK,CAAC,CAAC,QAAQ,MAAM,EAAE;CACzC,IAAI,CAAC,wCAAwC,KAAK,GAAG,GAAG,OAAO;CAC/D,OAAO,IAAI,IAAI,YAAY;AAC7B"}