UNPKG

@hitachivantara/uikit-react-icons

Version:

NEXT Design System icons packaged as a set of React components.

49 lines (48 loc) 1.33 kB
//#region src/utils.ts var selectors = ["Checkbox", "RadioButton"]; var largerIcons = [ "Level0Good", "Level1", "Level2Average", "Level3Bad", "Level4", "Level5", "Canceled", "Running", "Pending" ]; /** Whether the component is a selector with special coloring */ var isSelector = (iconName) => selectors.some((el) => iconName.startsWith(el)); var isSort = (iconName) => iconName.startsWith("Sort"); /** Semantic icons have a larger size by default */ var isSemantic = (iconName) => largerIcons.includes(iconName); var isXS = (iconName) => iconName.endsWith("XS"); var getCustomSize = (size, iconName) => isSemantic(iconName) ? size + 8 : size; /** sizes for the <svg> icon */ var getSvgSize = (size) => { switch (size) { case "xs": case "XS": return 12; case "sm": case "S": case void 0: return 16; case "md": case "M": return 32; case "lg": case "L": return 96; case "xl": return 112; default: return size; } }; var getSizeStyles = (iconName, size = isXS(iconName) ? "XS" : "S") => { const baseSize = getSvgSize(size); const fontSize = getCustomSize(baseSize, iconName); if (fontSize === 16) return; return { fontSize, /** icon container size. @private */ "--icsize": `${baseSize + 2 * (baseSize === 12 ? 10 : 8)}px` }; }; //#endregion export { getSizeStyles, isSelector, isSort };