@fluentui/react-icons
Version:
Fluent System Icons are a collection of familiar, friendly, and modern icons from Microsoft.
98 lines (97 loc) • 4.28 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createFluentFontIcon = void 0;
const tslib_1 = require("tslib");
const React = tslib_1.__importStar(require("react"));
const react_1 = require("@griffel/react");
const useIconState_1 = require("../useIconState");
const FluentSystemIcons_Filled_ttf_1 = tslib_1.__importDefault(require("./FluentSystemIcons-Filled.ttf"));
const FluentSystemIcons_Filled_woff_1 = tslib_1.__importDefault(require("./FluentSystemIcons-Filled.woff"));
const FluentSystemIcons_Filled_woff2_1 = tslib_1.__importDefault(require("./FluentSystemIcons-Filled.woff2"));
const FluentSystemIcons_Regular_ttf_1 = tslib_1.__importDefault(require("./FluentSystemIcons-Regular.ttf"));
const FluentSystemIcons_Regular_woff_1 = tslib_1.__importDefault(require("./FluentSystemIcons-Regular.woff"));
const FluentSystemIcons_Regular_woff2_1 = tslib_1.__importDefault(require("./FluentSystemIcons-Regular.woff2"));
const FluentSystemIcons_Resizable_ttf_1 = tslib_1.__importDefault(require("./FluentSystemIcons-Resizable.ttf"));
const FluentSystemIcons_Resizable_woff_1 = tslib_1.__importDefault(require("./FluentSystemIcons-Resizable.woff"));
const FluentSystemIcons_Resizable_woff2_1 = tslib_1.__importDefault(require("./FluentSystemIcons-Resizable.woff2"));
const FONT_FAMILY_MAP = {
[0 /* Filled */]: 'FluentSystemIconsFilled',
[1 /* Regular */]: 'FluentSystemIconsRegular',
[2 /* Resizable */]: 'FluentSystemIcons'
};
const useStaticStyles = react_1.makeStaticStyles(`
@font-face {
font-family: ${FONT_FAMILY_MAP[0 /* Filled */]};
font-display: "block";
src: url(${JSON.stringify(FluentSystemIcons_Filled_woff2_1.default)}) format("woff2"),
url(${JSON.stringify(FluentSystemIcons_Filled_woff_1.default)}) format("woff"),
url(${JSON.stringify(FluentSystemIcons_Filled_ttf_1.default)}) format("truetype");
}
@font-face {
font-family: ${FONT_FAMILY_MAP[1 /* Regular */]};
font-display: "block";
src: url(${JSON.stringify(FluentSystemIcons_Regular_woff2_1.default)}) format("woff2"),
url(${JSON.stringify(FluentSystemIcons_Regular_woff_1.default)}) format("woff"),
url(${JSON.stringify(FluentSystemIcons_Regular_ttf_1.default)}) format("truetype");
}
@font-face {
font-family: ${FONT_FAMILY_MAP[2 /* Resizable */]};
font-display: "block";
src: url(${JSON.stringify(FluentSystemIcons_Resizable_woff2_1.default)}) format("woff2"),
url(${JSON.stringify(FluentSystemIcons_Resizable_woff_1.default)}) format("woff"),
url(${JSON.stringify(FluentSystemIcons_Resizable_ttf_1.default)}) format("truetype");
}
`);
const useRootStyles = react_1.__styles({
"0": {
"Bahqtrf": "f9dzkbp"
},
"1": {
"Bahqtrf": "f1krtbx5"
},
"2": {
"Bahqtrf": "f1sxfq9t"
},
"root": {
"mc9l5x": "f14t3ns0",
"B80ckks": "fmd4ok8",
"Bg96gwp": "fne0op0",
"ycbfsm": "fg4l7m0"
}
}, {
"d": [".f9dzkbp{font-family:FluentSystemIconsFilled;}", ".f1krtbx5{font-family:FluentSystemIconsRegular;}", ".f1sxfq9t{font-family:FluentSystemIcons;}", ".f14t3ns0{display:inline-block;}", ".fmd4ok8{font-style:normal;}", ".fne0op0{line-height:1em;}"],
"t": ["@media (forced-colors: active){.fg4l7m0{forced-color-adjust:auto;}}"]
});
function createFluentFontIcon(displayName, codepoint, font, fontSize, options) {
const Component = props => {
useStaticStyles();
const styles = useRootStyles();
const className = react_1.mergeClasses(styles.root, styles[font], props.className);
const state = useIconState_1.useIconState({
...props,
className
}, {
flipInRtl: options === null || options === void 0 ? void 0 : options.flipInRtl
});
// We want to keep the same API surface as the SVG icons, so translate `primaryFill` to `color`
if (props.primaryFill && props.primaryFill.toLowerCase() !== 'currentcolor') {
state.style = {
...state.style,
color: props.primaryFill
};
}
if (fontSize) {
state.style = {
...state.style,
fontSize
};
}
return React.createElement("i", Object.assign({}, state), codepoint);
};
Component.displayName = displayName;
Component.codepoint = codepoint;
return Component;
}
exports.createFluentFontIcon = createFluentFontIcon;