UNPKG

@codegouvfr/react-dsfr

Version:

French State Design System React integration library

66 lines 2.33 kB
var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; import React, { memo } from "react"; import { cx } from "../../tools/cx"; export var PictoProps; (function (PictoProps) { const colors = [ "red-marianne", "green-tilleul-verveine", "green-bourgeon", "green-emeraude", "green-menthe", "green-archipel", "blue-ecume", "blue-cumulus", "purple-glycine", "pink-macaron", "pink-tuile", "yellow-tournesol", "yellow-moutarde", "orange-terre-battue", "brown-cafe-creme", "brown-caramel", "brown-opera", "beige-gris-galet" ]; })(PictoProps || (PictoProps = {})); const getSize = (size) => { switch (size) { case "small": return "1.25em"; case "medium": return "1.5em"; case "large": return "2.5em"; case "inherit": return "inherit"; default: return size; } }; const getColor = (color) => { if (!color) { return undefined; } return `fr-artwork--${color}`; }; export const PictoWrapper = memo((_a) => { var { children, color, fontSize = "medium", className } = _a, props = __rest(_a, ["children", "color", "fontSize", "className"]); return (React.createElement("svg", Object.assign({ width: "1em", height: "1em", fill: "none", viewBox: "0 0 80 80", xmlns: "http://www.w3.org/2000/svg", focusable: "false", "aria-hidden": "true", fontSize: getSize(fontSize), className: cx("fr-artwork", getColor(color), className) }, props), children)); }); export function createPicto(SvgPath, displayName) { const IconComponent = props => (React.createElement(PictoWrapper, Object.assign({}, props), SvgPath)); IconComponent.displayName = displayName; return IconComponent; } //# sourceMappingURL=PictoWrapper.js.map