UNPKG

@wordpress/components

Version:
71 lines (55 loc) 1.85 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.ExternalLink = ExternalLink; exports.default = void 0; var _element = require("@wordpress/element"); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classnames = _interopRequireDefault(require("classnames")); var _lodash = require("lodash"); var _i18n = require("@wordpress/i18n"); var _icons = require("@wordpress/icons"); var _visuallyHidden = _interopRequireDefault(require("../visually-hidden")); var _externalLinkStyles = require("./styles/external-link-styles"); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ function ExternalLink({ href, children, className, rel = '', ...additionalProps }, ref) { rel = (0, _lodash.uniq)((0, _lodash.compact)([...rel.split(' '), 'external', 'noreferrer', 'noopener'])).join(' '); const classes = (0, _classnames.default)('components-external-link', className); return ( /* eslint-disable react/jsx-no-target-blank */ (0, _element.createElement)("a", (0, _extends2.default)({}, additionalProps, { className: classes, href: href, target: "_blank", rel: rel, ref: ref }), children, (0, _element.createElement)(_visuallyHidden.default, { as: "span" }, /* translators: accessibility text */ (0, _i18n.__)('(opens in a new tab)')), (0, _element.createElement)(_externalLinkStyles.StyledIcon, { icon: _icons.external, className: "components-external-link__icon" })) /* eslint-enable react/jsx-no-target-blank */ ); } var _default = (0, _element.forwardRef)(ExternalLink); exports.default = _default; //# sourceMappingURL=index.js.map