UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

285 lines (282 loc) • 6.6 kB
import { c } from 'react-compiler-runtime'; import { forwardRef } from 'react'; import TokenBase, { isTokenInteractive, defaultTokenSize } from './TokenBase.js'; import RemoveTokenButton from './_RemoveTokenButton.js'; import TokenTextContainer from './_TokenTextContainer.js'; import VisuallyHidden from '../_VisuallyHidden.js'; import classes from './Token.module.css.js'; import { clsx } from 'clsx'; import { jsxs, jsx } from 'react/jsx-runtime'; const tokenBorderWidthPx = 1; const LeadingVisualContainer = t0 => { const $ = c(7); const { children, size } = t0; let t1; if ($[0] !== size) { t1 = size && ["large", "xlarge"].includes(size); $[0] = size; $[1] = t1; } else { t1 = $[1]; } let t2; if ($[2] !== t1) { t2 = clsx(classes.LeadingVisualContainer, { [classes.LargeLeadingVisual]: t1 }); $[2] = t1; $[3] = t2; } else { t2 = $[3]; } let t3; if ($[4] !== children || $[5] !== t2) { t3 = /*#__PURE__*/jsx("div", { className: t2, children: children }); $[4] = children; $[5] = t2; $[6] = t3; } else { t3 = $[6]; } return t3; }; const Token = /*#__PURE__*/forwardRef((props, forwardedRef) => { const $ = c(66); let LeadingVisual; let as; let className; let hideRemoveButton; let href; let id; let onClick; let onRemove; let rest; let style; let t0; let text; if ($[0] !== props) { ({ as, onRemove, id, leadingVisual: LeadingVisual, text, size: t0, hideRemoveButton, href, onClick, className, style, ...rest } = props); $[0] = props; $[1] = LeadingVisual; $[2] = as; $[3] = className; $[4] = hideRemoveButton; $[5] = href; $[6] = id; $[7] = onClick; $[8] = onRemove; $[9] = rest; $[10] = style; $[11] = t0; $[12] = text; } else { LeadingVisual = $[1]; as = $[2]; className = $[3]; hideRemoveButton = $[4]; href = $[5]; id = $[6]; onClick = $[7]; onRemove = $[8]; rest = $[9]; style = $[10]; t0 = $[11]; text = $[12]; } const size = t0 === undefined ? defaultTokenSize : t0; let t1; if ($[13] !== hideRemoveButton || $[14] !== onRemove || $[15] !== props) { t1 = isTokenInteractive(props) && Boolean(onRemove) && !hideRemoveButton; $[13] = hideRemoveButton; $[14] = onRemove; $[15] = props; $[16] = t1; } else { t1 = $[16]; } const hasMultipleActionTargets = t1; let t2; if ($[17] !== onRemove) { t2 = e => { e.stopPropagation(); onRemove && onRemove(); }; $[17] = onRemove; $[18] = t2; } else { t2 = $[18]; } const onRemoveClick = t2; let t3; if ($[19] !== as || $[20] !== href || $[21] !== onClick) { t3 = { as, href, onClick }; $[19] = as; $[20] = href; $[21] = onClick; $[22] = t3; } else { t3 = $[22]; } const interactiveTokenProps = t3; let t4; if ($[23] !== id) { var _id; t4 = (_id = id) === null || _id === void 0 ? void 0 : _id.toString(); $[23] = id; $[24] = t4; } else { t4 = $[24]; } let t5; if ($[25] !== className) { t5 = clsx(className, classes.Token); $[25] = className; $[26] = t5; } else { t5 = $[26]; } const t6 = !(hideRemoveButton || !onRemove); let t7; if ($[27] !== hasMultipleActionTargets || $[28] !== interactiveTokenProps) { t7 = !hasMultipleActionTargets ? interactiveTokenProps : {}; $[27] = hasMultipleActionTargets; $[28] = interactiveTokenProps; $[29] = t7; } else { t7 = $[29]; } let t8; if ($[30] !== style) { t8 = { borderWidth: `${tokenBorderWidthPx}px`, ...style }; $[30] = style; $[31] = t8; } else { t8 = $[31]; } let t9; if ($[32] !== LeadingVisual || $[33] !== size) { t9 = LeadingVisual ? /*#__PURE__*/jsx(LeadingVisualContainer, { size: size, children: /*#__PURE__*/jsx(LeadingVisual, {}) }) : null; $[32] = LeadingVisual; $[33] = size; $[34] = t9; } else { t9 = $[34]; } let t10; if ($[35] !== hasMultipleActionTargets || $[36] !== interactiveTokenProps) { t10 = hasMultipleActionTargets ? interactiveTokenProps : {}; $[35] = hasMultipleActionTargets; $[36] = interactiveTokenProps; $[37] = t10; } else { t10 = $[37]; } let t11; if ($[38] !== onRemove) { t11 = onRemove && /*#__PURE__*/jsx(VisuallyHidden, { children: " (press backspace or delete to remove)" }); $[38] = onRemove; $[39] = t11; } else { t11 = $[39]; } let t12; if ($[40] !== t10 || $[41] !== t11 || $[42] !== text) { t12 = /*#__PURE__*/jsxs(TokenTextContainer, { ...t10, children: [text, t11] }); $[40] = t10; $[41] = t11; $[42] = text; $[43] = t12; } else { t12 = $[43]; } let t13; if ($[44] !== hasMultipleActionTargets || $[45] !== hideRemoveButton || $[46] !== onRemove || $[47] !== onRemoveClick || $[48] !== props || $[49] !== size) { t13 = !hideRemoveButton && onRemove ? /*#__PURE__*/jsx(RemoveTokenButton, { borderOffset: tokenBorderWidthPx, onClick: onRemoveClick, size: size, isParentInteractive: isTokenInteractive(props), "aria-hidden": hasMultipleActionTargets ? "true" : "false" }) : null; $[44] = hasMultipleActionTargets; $[45] = hideRemoveButton; $[46] = onRemove; $[47] = onRemoveClick; $[48] = props; $[49] = size; $[50] = t13; } else { t13 = $[50]; } let t14; if ($[51] !== forwardedRef || $[52] !== onRemove || $[53] !== props.isSelected || $[54] !== rest || $[55] !== size || $[56] !== t12 || $[57] !== t13 || $[58] !== t4 || $[59] !== t5 || $[60] !== t6 || $[61] !== t7 || $[62] !== t8 || $[63] !== t9 || $[64] !== text) { t14 = /*#__PURE__*/jsxs(TokenBase, { onRemove: onRemove, id: t4, className: t5, text: text, size: size, "data-is-selected": props.isSelected, "data-is-remove-btn": t6, ...t7, ...rest, ref: forwardedRef, style: t8, children: [t9, t12, t13] }); $[51] = forwardedRef; $[52] = onRemove; $[53] = props.isSelected; $[54] = rest; $[55] = size; $[56] = t12; $[57] = t13; $[58] = t4; $[59] = t5; $[60] = t6; $[61] = t7; $[62] = t8; $[63] = t9; $[64] = text; $[65] = t14; } else { t14 = $[65]; } return t14; }); Token.displayName = 'Token'; export { Token as default };