@atlaskit/icon
Version:
An icon is a symbol representing a command, device, directory, or common action.
46 lines (44 loc) • 1.8 kB
JavaScript
/**
* @jsxRuntime classic
* @jsx jsx
*/
import { memo } from 'react';
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
import { css, jsx } from '@emotion/react';
import { getBackground } from './utils';
import { commonSVGStyles, sizeStyleMap } from './styles';
// eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
var svgStyles = css(commonSVGStyles);
/**
* __SVG__
*
* An icon is used as a visual representation of common actions and commands to provide context.
*
* - [Examples](https://atlaskit.atlassian.com/packages/design-system/icon)
* - [Code](https://atlaskit.atlassian.com/packages/design-system/icon/docs/custom-svgs)
*/
var SVG = /*#__PURE__*/memo(function SVG(_ref) {
var _ref$size = _ref.size,
size = _ref$size === void 0 ? 'medium' : _ref$size,
label = _ref.label,
_ref$primaryColor = _ref.primaryColor,
primaryColor = _ref$primaryColor === void 0 ? 'currentColor' : _ref$primaryColor,
secondaryColor = _ref.secondaryColor,
testId = _ref.testId,
children = _ref.children;
return jsx("svg", {
viewBox: "0 0 24 24",
style: {
color: primaryColor,
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
fill: secondaryColor || getBackground()
}
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
,
css: [svgStyles, sizeStyleMap[size]],
"data-testid": testId,
"aria-label": label || undefined,
role: label ? 'img' : 'presentation'
}, children);
});
export default SVG;