| 3 | |
| 4 | // based on https://github.com/lukeed/clsx and https://github.com/jorgebucaran/classcat |
| 5 | export function interpolate( |
| 6 | strings: TemplateStringsArray | Class, |
| 7 | interpolations: Class[], |
| 8 | ): string { |
| 9 | return Array.isArray(strings) && Array.isArray((strings as unknown as TemplateStringsArray).raw) |
| 10 | ? interleave(strings as unknown as TemplateStringsArray, interpolations, (value) => |
| 11 | toString(value).trim(), |
| 12 | ) |
| 13 | : interpolations |
| 14 | .filter(Boolean) |
| 15 | .reduce( |
| 16 | (result: string, value) => result + toString(value), |
| 17 | strings ? toString(strings as Class) : '', |
| 18 | ) |
| 19 | } |
| 20 | |
| 21 | function toString(value: Class): string { |
| 22 | let result = '' |