UNPKG

@activecollab/components

Version:

ActiveCollab Components

98 lines (97 loc) 3.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _GradientDefs = require("../../GradientDefs"); var _excluded = ["gradient"]; function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; } /** * @component ProjectIcon * @description * * The React Icon component is a visual element that displays an icon to represent a concept, object, or action. * The Icon component is * customizable, allowing for variations in size, color, and style to fit the needs of the application. * * A pencil (from PencilIcon) crossed at 45 degrees with a ruler, drawn as an * outlined rectangle. The ruler sits behind the pencil, with a transparent * break where the two cross. * * @prop {string} [gradient] - Optional CSS linear-gradient string to apply a custom fill. * Format: "linear-gradient(<angle>deg, <color1>, <color2>, ...)" * * @example * return ( * <ProjectIcon gradient="linear-gradient(135deg, #4da2ed, #f72222)" /> * ) * * @example * return ( * <ProjectIcon className="mr-2" /> * ) * * @see * https://system.activecollab.com/?path=/story/foundation-icons-icons--icons * @see * https://design.activecollab.com/docs/foundations/icons */ var ProjectIcon = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) { var gradient = _ref.gradient, props = _objectWithoutProperties(_ref, _excluded); var fillValue = gradient ? "url(#icon-gradient)" : props !== null && props !== void 0 && props.fill ? props.fill : "var(--color-theme-600)"; return /*#__PURE__*/_react.default.createElement("svg", _extends({ xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 24 24", "data-testid": "ProjectIcon", fill: fillValue, focusable: false, ref: ref }, props), /*#__PURE__*/_react.default.createElement(_GradientDefs.GradientDefs, { gradient: gradient }), /*#__PURE__*/_react.default.createElement("mask", { id: "project-icon-ruler-cut", maskUnits: "userSpaceOnUse", x: "0", y: "0", width: "24", height: "24" }, /*#__PURE__*/_react.default.createElement("rect", { x: "0", y: "0", width: "24", height: "24", fill: "white" }), /*#__PURE__*/_react.default.createElement("line", { x1: "-2", y1: "26", x2: "26", y2: "-2", stroke: "black", strokeWidth: "8.5" })), /*#__PURE__*/_react.default.createElement("g", { mask: "url(#project-icon-ruler-cut)" }, /*#__PURE__*/_react.default.createElement("rect", { transform: "rotate(45 12 12)", x: "1.5", y: "9.5", width: "21", height: "5", rx: "1", fill: "none", stroke: fillValue, strokeWidth: "2" })), /*#__PURE__*/_react.default.createElement("path", { fillRule: "evenodd", d: "m14.06 9 .94.94L5.92 19H5v-.92zm3.6-6c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 3.19L3 17.25V21h3.75L17.81 9.94z" })); }); ProjectIcon.displayName = "ProjectIcon"; var _default = exports.default = ProjectIcon; //# sourceMappingURL=Project.js.map