mirror of
https://github.com/lucide-icons/lucide.git
synced 2026-11-15 14:08:49 +00:00
* Add aria hidden to lucide package * Add aria-hidden to astro package * Add tests for shared package * Fix test for props * add aria prop to lucide-solid * Add aria-hidden to lucide-vue-next * Add aria-hidden prop to angular package * Fix builds * Add notice about aria-label in docs * Format code * Update packages/svelte/tests/Icon.spec.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update packages/lucide-svelte/tests/Icon.spec.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update packages/shared/src/utils/hasA11yProp.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Adjusted docs * Fix import * update tests * test(shared): fix hasA11yProp unit test * fix(packages/lucide-angular): fix hasA11yProp import path (non-relative import path will not get properly resolved by ng-packagr) * Format code * Adjust aria props to root element * Format code --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Karsa <contact@karsa.org>
18 lines
445 B
TypeScript
18 lines
445 B
TypeScript
/**
|
|
* Merges classes into a single string
|
|
*
|
|
* @param {array} classes
|
|
* @returns {string} A string of classes
|
|
*/
|
|
export const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>
|
|
classes
|
|
.filter((className, index, array) => {
|
|
return (
|
|
Boolean(className) &&
|
|
(className as string).trim() !== '' &&
|
|
array.indexOf(className) === index
|
|
);
|
|
})
|
|
.join(' ')
|
|
.trim();
|