@hitachivantara/uikit-react-icons
Version:
NEXT Design System icons packaged as a set of React components.
49 lines (48 loc) • 1.33 kB
JavaScript
//#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 };