@hitachivantara/uikit-react-icons
Version:
NEXT Design System icons packaged as a set of React components.
57 lines (56 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const selectors = ["Checkbox", "RadioButton"];
const largerIcons = [
"Level0Good",
"Level1",
"Level2Average",
"Level3Bad",
"Level4",
"Level5",
"Canceled",
"Running",
"Pending"
];
const isSelector = (iconName) => selectors.some((el) => iconName.startsWith(el));
const isSort = (iconName) => iconName.startsWith("Sort");
const isSemantic = (iconName) => largerIcons.includes(iconName);
const isXS = (iconName) => iconName.endsWith("XS");
const getCustomSize = (size, iconName) => isSemantic(iconName) ? size + 8 : size;
const 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;
}
};
const getSizeStyles = (iconName, size = isXS(iconName) ? "XS" : "S") => {
const baseSize = getSvgSize(size);
const fontSize = getCustomSize(baseSize, iconName);
if (fontSize === 16) return;
const containerSize = baseSize + 2 * (baseSize === 12 ? 10 : 8);
return {
fontSize,
/** icon container size. @private */
"--icsize": `${containerSize}px`
};
};
exports.getSizeStyles = getSizeStyles;
exports.isSelector = isSelector;
exports.isSemantic = isSemantic;
exports.isSort = isSort;
exports.isXS = isXS;