This commit is contained in:
DCCONSTRUCTIONS
2026-04-18 18:39:25 +03:00
commit 3ba092b60c
4944 changed files with 497564 additions and 0 deletions
@@ -0,0 +1,36 @@
/**
* Copyright (c) 2023-present Plane Software, Inc. and contributors
* SPDX-License-Identifier: AGPL-3.0-only
* See the LICENSE file for details.
*/
import type { IconName } from "./registry";
import { ICON_REGISTRY } from "./registry";
/**
* Get the icon component by name
* @param name - The icon name from the registry
* @returns The icon component or default icon if not found
*/
export const getIconComponent = (name: IconName) => ICON_REGISTRY[name] || ICON_REGISTRY.default;
/**
* Check if the icon name exists in the registry
* @param name - The icon name to check
* @returns True if the icon exists in the registry
*/
export const isValidIconName = (name: string): name is IconName => name in ICON_REGISTRY;
/**
* Get all available icon names
* @returns Array of all icon names in the registry
*/
export const getIconNames = (): IconName[] => Object.keys(ICON_REGISTRY) as IconName[];
/**
* Get icons by category
* @param category - The category prefix (e.g., 'workspace', 'project')
* @returns Array of icon names matching the category
*/
export const getIconsByCategory = (category: string): IconName[] =>
getIconNames().filter((name) => name.startsWith(`${category}.`));