@primer/react
Version:
An implementation of GitHub's Primer Design System using React
300 lines (297 loc) • 6.93 kB
JavaScript
import { c } from 'react-compiler-runtime';
import { forwardRef } from 'react';
import TokenBase, { isTokenInteractive, defaultTokenSize } from './TokenBase.js';
import RemoveTokenButton from './_RemoveTokenButton.js';
import { parseToRgba, parseToHsla } from 'color2k';
import TokenTextContainer from './_TokenTextContainer.js';
import classes from './IssueLabelToken.module.css.js';
import { clsx } from 'clsx';
import { jsx, jsxs } from 'react/jsx-runtime';
const IssueLabelToken = /*#__PURE__*/forwardRef((props, forwardedRef) => {
const $ = c(81);
let as;
let className;
let hideRemoveButton;
let href;
let id;
let isSelected;
let onClick;
let onRemove;
let rest;
let t0;
let t1;
let text;
if ($[0] !== props) {
({
as,
fillColor: t0,
onRemove,
id,
isSelected,
text,
size: t1,
hideRemoveButton,
href,
onClick,
className,
...rest
} = props);
$[0] = props;
$[1] = as;
$[2] = className;
$[3] = hideRemoveButton;
$[4] = href;
$[5] = id;
$[6] = isSelected;
$[7] = onClick;
$[8] = onRemove;
$[9] = rest;
$[10] = t0;
$[11] = t1;
$[12] = text;
} else {
as = $[1];
className = $[2];
hideRemoveButton = $[3];
href = $[4];
id = $[5];
isSelected = $[6];
onClick = $[7];
onRemove = $[8];
rest = $[9];
t0 = $[10];
t1 = $[11];
text = $[12];
}
const fillColor = t0 === undefined ? "#999" : t0;
const size = t1 === undefined ? defaultTokenSize : t1;
let t2;
if ($[13] !== as || $[14] !== href || $[15] !== onClick) {
t2 = {
as,
href,
onClick
};
$[13] = as;
$[14] = href;
$[15] = onClick;
$[16] = t2;
} else {
t2 = $[16];
}
const interactiveTokenProps = t2;
let t3;
if ($[17] !== hideRemoveButton || $[18] !== onRemove || $[19] !== props) {
t3 = isTokenInteractive(props) && Boolean(onRemove) && !hideRemoveButton;
$[17] = hideRemoveButton;
$[18] = onRemove;
$[19] = props;
$[20] = t3;
} else {
t3 = $[20];
}
const hasMultipleActionTargets = t3;
let t4;
if ($[21] !== onRemove) {
t4 = e => {
e.stopPropagation();
onRemove && onRemove();
};
$[21] = onRemove;
$[22] = t4;
} else {
t4 = $[22];
}
const onRemoveClick = t4;
let t5;
if ($[23] !== fillColor) {
t5 = parseToRgba(fillColor);
$[23] = fillColor;
$[24] = t5;
} else {
t5 = $[24];
}
const [r, g, b] = t5;
let l;
let s;
let t10;
let t6;
let t7;
let t8;
let t9;
if ($[25] !== b || $[26] !== fillColor || $[27] !== g || $[28] !== r) {
const [h, t11, t12] = parseToHsla(fillColor);
s = t11;
l = t12;
t8 = String(r);
t9 = String(g);
t10 = String(b);
t6 = String;
t7 = Math.round(h);
$[25] = b;
$[26] = fillColor;
$[27] = g;
$[28] = r;
$[29] = l;
$[30] = s;
$[31] = t10;
$[32] = t6;
$[33] = t7;
$[34] = t8;
$[35] = t9;
} else {
l = $[29];
s = $[30];
t10 = $[31];
t6 = $[32];
t7 = $[33];
t8 = $[34];
t9 = $[35];
}
const t11 = t6(t7);
let t12;
if ($[36] !== s) {
t12 = Math.round(s * 100);
$[36] = s;
$[37] = t12;
} else {
t12 = $[37];
}
const t13 = String(t12);
let t14;
if ($[38] !== l) {
t14 = Math.round(l * 100);
$[38] = l;
$[39] = t14;
} else {
t14 = $[39];
}
const t15 = String(t14);
let t16;
if ($[40] !== t10 || $[41] !== t11 || $[42] !== t13 || $[43] !== t15 || $[44] !== t8 || $[45] !== t9) {
t16 = {
"--label-r": t8,
"--label-g": t9,
"--label-b": t10,
"--label-h": t11,
"--label-s": t13,
"--label-l": t15
};
$[40] = t10;
$[41] = t11;
$[42] = t13;
$[43] = t15;
$[44] = t8;
$[45] = t9;
$[46] = t16;
} else {
t16 = $[46];
}
const customProperties = t16;
let t17;
if ($[47] !== id) {
var _id;
t17 = (_id = id) === null || _id === void 0 ? void 0 : _id.toString();
$[47] = id;
$[48] = t17;
} else {
t17 = $[48];
}
let t18;
if ($[49] !== className) {
t18 = clsx(classes.IssueLabel, className);
$[49] = className;
$[50] = t18;
} else {
t18 = $[50];
}
const t19 = !hideRemoveButton && !!onRemove;
let t20;
if ($[51] !== hasMultipleActionTargets || $[52] !== interactiveTokenProps) {
t20 = !hasMultipleActionTargets ? interactiveTokenProps : {};
$[51] = hasMultipleActionTargets;
$[52] = interactiveTokenProps;
$[53] = t20;
} else {
t20 = $[53];
}
let t21;
if ($[54] !== hasMultipleActionTargets || $[55] !== interactiveTokenProps) {
t21 = hasMultipleActionTargets ? interactiveTokenProps : {};
$[54] = hasMultipleActionTargets;
$[55] = interactiveTokenProps;
$[56] = t21;
} else {
t21 = $[56];
}
let t22;
if ($[57] !== t21 || $[58] !== text) {
t22 = /*#__PURE__*/jsx(TokenTextContainer, {
...t21,
children: text
});
$[57] = t21;
$[58] = text;
$[59] = t22;
} else {
t22 = $[59];
}
let t23;
if ($[60] !== hasMultipleActionTargets || $[61] !== hideRemoveButton || $[62] !== onRemove || $[63] !== onRemoveClick || $[64] !== props || $[65] !== size) {
t23 = !hideRemoveButton && onRemove ? /*#__PURE__*/jsx(RemoveTokenButton, {
borderOffset: 1,
onClick: onRemoveClick,
size: size,
"aria-hidden": hasMultipleActionTargets ? "true" : "false",
isParentInteractive: isTokenInteractive(props),
"data-has-multiple-action-targets": hasMultipleActionTargets,
className: classes.RemoveButton
}) : null;
$[60] = hasMultipleActionTargets;
$[61] = hideRemoveButton;
$[62] = onRemove;
$[63] = onRemoveClick;
$[64] = props;
$[65] = size;
$[66] = t23;
} else {
t23 = $[66];
}
let t24;
if ($[67] !== customProperties || $[68] !== forwardedRef || $[69] !== isSelected || $[70] !== onRemove || $[71] !== rest || $[72] !== size || $[73] !== t17 || $[74] !== t18 || $[75] !== t19 || $[76] !== t20 || $[77] !== t22 || $[78] !== t23 || $[79] !== text) {
t24 = /*#__PURE__*/jsxs(TokenBase, {
onRemove: onRemove,
id: t17,
isSelected: isSelected,
className: t18,
text: text,
size: size,
style: customProperties,
"data-has-remove-button": t19,
"data-selected": isSelected,
...t20,
...rest,
ref: forwardedRef,
children: [t22, t23]
});
$[67] = customProperties;
$[68] = forwardedRef;
$[69] = isSelected;
$[70] = onRemove;
$[71] = rest;
$[72] = size;
$[73] = t17;
$[74] = t18;
$[75] = t19;
$[76] = t20;
$[77] = t22;
$[78] = t23;
$[79] = text;
$[80] = t24;
} else {
t24 = $[80];
}
return t24;
});
IssueLabelToken.displayName = 'IssueLabelToken';
export { IssueLabelToken as default };