@primer/react
Version:
An implementation of GitHub's Primer Design System using React
100 lines (99 loc) • 2.4 kB
JavaScript
import TokenBase_module_css_default from "./TokenBase.module.css.js";
import { defaultTokenSize } from "./constants.js";
import { isTokenInteractive } from "./utils.js";
import { c } from "react-compiler-runtime";
import { clsx } from "clsx";
import { jsx } from "react/jsx-runtime";
import React from "react";
//#region src/Token/TokenBase.tsx
const TokenBase = /*#__PURE__*/ React.forwardRef((t0, forwardedRef) => {
const $ = c(25);
let Component;
let T0;
let id;
let rest;
let size;
let t1;
let t2;
let t3;
if ($[0] !== t0) {
const { onRemove, onKeyDown, id: t4, className, size: t5, isSelected: _isSelected, as: t6, ...t7 } = t0;
id = t4;
rest = t7;
size = t5 === void 0 ? defaultTokenSize : t5;
Component = t6 === void 0 ? "span" : t6;
T0 = Component;
if ($[9] !== onKeyDown || $[10] !== onRemove) {
t1 = (event) => {
onKeyDown && onKeyDown(event);
if ((event.key === "Backspace" || event.key === "Delete") && onRemove) onRemove();
};
$[9] = onKeyDown;
$[10] = onRemove;
$[11] = t1;
} else t1 = $[11];
if ($[12] !== className) {
t2 = clsx(TokenBase_module_css_default.TokenBase, className);
$[12] = className;
$[13] = t2;
} else t2 = $[13];
t3 = isTokenInteractive({
as: Component,
onClick: rest.onClick,
onFocus: rest.onFocus,
tabIndex: rest.tabIndex,
disabled: rest.disabled
});
$[0] = t0;
$[1] = Component;
$[2] = T0;
$[3] = id;
$[4] = rest;
$[5] = size;
$[6] = t1;
$[7] = t2;
$[8] = t3;
} else {
Component = $[1];
T0 = $[2];
id = $[3];
rest = $[4];
size = $[5];
t1 = $[6];
t2 = $[7];
t3 = $[8];
}
let t4;
if ($[14] !== id) {
var _id;
t4 = (_id = id) === null || _id === void 0 ? void 0 : _id.toString();
$[14] = id;
$[15] = t4;
} else t4 = $[15];
const t5 = Component === "button" ? rest : Component === "a" ? rest : rest;
const t6 = forwardedRef;
let t7;
if ($[16] !== T0 || $[17] !== size || $[18] !== t1 || $[19] !== t2 || $[20] !== t3 || $[21] !== t4 || $[22] !== t5 || $[23] !== t6) {
t7 = /*#__PURE__*/ jsx(T0, {
onKeyDown: t1,
className: t2,
"data-cursor-is-interactive": t3,
"data-size": size,
id: t4,
...t5,
ref: t6
});
$[16] = T0;
$[17] = size;
$[18] = t1;
$[19] = t2;
$[20] = t3;
$[21] = t4;
$[22] = t5;
$[23] = t6;
$[24] = t7;
} else t7 = $[24];
return t7;
});
//#endregion
export { TokenBase as default };