@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
53 lines (52 loc) • 1.5 kB
JavaScript
"use client";
import { useContext } from 'react';
import Context from "../../shared/Context.js";
import { extendPropsWithContext } from "../../shared/component-helper.js";
import { prerenderIcon, prepareIcon } from "../icon/Icon.js";
import { useSpacing } from "../space/SpacingUtils.js";
import * as primaryIcons from "../../icons/dnb/primary_icons.js";
import * as primaryIconsMedium from "../../icons/dnb/primary_icons_medium.js";
import withComponentMarkers from "../../shared/helpers/withComponentMarkers.js";
import { jsx as _jsx } from "react/jsx-runtime";
export * from "../icon/Icon.js";
const icons = {
...primaryIcons,
...primaryIconsMedium
};
export default function IconPrimary(localProps) {
const context = useContext(Context);
const props = extendPropsWithContext(localProps, {}, {
skeleton: context?.skeleton
}, context.Icon, context.IconPrimary);
const {
icon,
size,
wrapperParams,
iconParams,
alt
} = prepareIcon(props, context);
const spacingProps = useSpacing(props, {
className: wrapperParams.className,
style: wrapperParams.style
});
const IconContainer = prerenderIcon({
icon,
size,
alt,
listOfIcons: icons
});
if (!IconContainer) {
return null;
}
return _jsx("span", {
...wrapperParams,
...spacingProps,
children: _jsx(IconContainer, {
...iconParams
})
});
}
withComponentMarkers(IconPrimary, {
_supportsSpacingProps: true
});
//# sourceMappingURL=IconPrimary.js.map