nishant-design-system
Version:
Sense UI components library
85 lines (84 loc) • 4.04 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Link = exports.LINK_AS = exports.ANCHOR_TARGET = exports.ANCHOR_REL = void 0;
var React = _interopRequireWildcard(require("react"));
var _typography = require("../../types/typography");
var _classify = _interopRequireDefault(require("../../utils/classify"));
var _typographyModule = _interopRequireDefault(require("../../styles/typography.module.css"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
const LINK_AS = Object.freeze({
bodyLarge: 'bodyLarge',
bodyMedium: 'bodyMedium',
bodySmall: 'bodySmall',
buttonTextExtraSmall: 'buttonTextExtraSmall',
buttonTextMedium: 'buttonTextMedium',
buttonTextSmall: 'buttonTextSmall',
formInputMedium: 'formInputMedium',
formInputSmall: 'formInputSmall',
formLabelMedium: 'formLabelMedium',
formLabelSmall: 'formLabelSmall',
jumboMedium: 'jumboMedium',
subTitleExtraSmall: 'subTitleExtraSmall',
subTitleLarge: 'subTitleLarge',
subTitleMedium: 'subTitleMedium',
subTitleSmall: 'subTitleSmall',
titleMedium: 'titleMedium'
});
exports.LINK_AS = LINK_AS;
const ANCHOR_REL = Object.freeze({
alternate: 'alternate',
author: 'author',
bookmark: 'bookmark',
external: 'external',
help: 'help',
license: 'license',
next: 'next',
nofollow: 'nofollow',
noopener: 'noopener',
noreferrer: 'noreferrer',
search: 'search',
tag: 'tag'
});
exports.ANCHOR_REL = ANCHOR_REL;
const ANCHOR_TARGET = Object.freeze({
_blank: '_blank',
_self: '_self',
_parent: '_parent',
_top: '_top',
framename: 'framename'
});
exports.ANCHOR_TARGET = ANCHOR_TARGET;
const Link = /*#__PURE__*/React.forwardRef((_ref, ref) => {
let {
color = _typography.TEXT_COLORS.clickable,
children,
className,
as = 'buttonTextExtraSmall',
underline = true,
tabIndex = 0,
disabled,
...props
} = _ref;
const linkRef = React.useRef(null);
React.useImperativeHandle(ref, () => linkRef.current);
React.useEffect(() => {
if (disabled) {
linkRef.current?.blur();
}
}, [disabled]);
return /*#__PURE__*/React.createElement("a", _extends({}, props, {
tabIndex: disabled ? -1 : tabIndex,
ref: linkRef,
"data-testid": "Link",
className: (0, _classify.default)(_typographyModule.default.link, _typographyModule.default[as], _typographyModule.default[color], {
[_typographyModule.default.underline]: underline,
[_typographyModule.default.disabled]: disabled
}, className)
}), children);
});
exports.Link = Link;