@primer/react
Version:
An implementation of GitHub's Primer Design System using React
217 lines (214 loc) • 4.8 kB
JavaScript
import { c } from 'react-compiler-runtime';
import { forwardRef } from 'react';
import { isElement } from 'react-is';
import classes from './UnderlineTabbedInterface.module.css.js';
import { clsx } from 'clsx';
import { BoxWithFallback } from './BoxWithFallback.js';
import { jsx, jsxs } from 'react/jsx-runtime';
import CounterLabel from '../../CounterLabel/CounterLabel.js';
const GAP = 8;
const UnderlineWrapper = /*#__PURE__*/forwardRef((t0, forwardedRef) => {
const $ = c(11);
let children;
let className;
let rest;
if ($[0] !== t0) {
({
children,
className,
...rest
} = t0);
$[0] = t0;
$[1] = children;
$[2] = className;
$[3] = rest;
} else {
children = $[1];
className = $[2];
rest = $[3];
}
let t1;
if ($[4] !== className) {
t1 = clsx(classes.UnderlineWrapper, className);
$[4] = className;
$[5] = t1;
} else {
t1 = $[5];
}
let t2;
if ($[6] !== children || $[7] !== forwardedRef || $[8] !== rest || $[9] !== t1) {
t2 = /*#__PURE__*/jsx(BoxWithFallback, {
className: t1,
ref: forwardedRef,
...rest,
children: children
});
$[6] = children;
$[7] = forwardedRef;
$[8] = rest;
$[9] = t1;
$[10] = t2;
} else {
t2 = $[10];
}
return t2;
});
const UnderlineItemList = /*#__PURE__*/forwardRef((t0, forwardedRef) => {
const $ = c(7);
let children;
let rest;
if ($[0] !== t0) {
({
children,
...rest
} = t0);
$[0] = t0;
$[1] = children;
$[2] = rest;
} else {
children = $[1];
rest = $[2];
}
let t1;
if ($[3] !== children || $[4] !== forwardedRef || $[5] !== rest) {
t1 = /*#__PURE__*/jsx("ul", {
className: classes.UnderlineItemList,
ref: forwardedRef,
...rest,
children: children
});
$[3] = children;
$[4] = forwardedRef;
$[5] = rest;
$[6] = t1;
} else {
t1 = $[6];
}
return t1;
});
const LoadingCounter = () => {
const $ = c(1);
let t0;
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
t0 = /*#__PURE__*/jsx("span", {
className: classes.LoadingCounter
});
$[0] = t0;
} else {
t0 = $[0];
}
return t0;
};
const UnderlineItem = /*#__PURE__*/forwardRef((t0, forwardedRef) => {
const $ = c(27);
let Icon;
let children;
let className;
let counter;
let iconsVisible;
let loadingCounters;
let rest;
let t1;
if ($[0] !== t0) {
({
as: t1,
children,
counter,
icon: Icon,
iconsVisible,
loadingCounters,
className,
...rest
} = t0);
$[0] = t0;
$[1] = Icon;
$[2] = children;
$[3] = className;
$[4] = counter;
$[5] = iconsVisible;
$[6] = loadingCounters;
$[7] = rest;
$[8] = t1;
} else {
Icon = $[1];
children = $[2];
className = $[3];
counter = $[4];
iconsVisible = $[5];
loadingCounters = $[6];
rest = $[7];
t1 = $[8];
}
const as = t1 === undefined ? "a" : t1;
let t2;
if ($[9] !== className) {
t2 = clsx(classes.UnderlineItem, className);
$[9] = className;
$[10] = t2;
} else {
t2 = $[10];
}
let t3;
if ($[11] !== Icon || $[12] !== iconsVisible) {
t3 = iconsVisible && Icon && /*#__PURE__*/jsx("span", {
"data-component": "icon",
children: isElement(Icon) ? Icon : /*#__PURE__*/jsx(Icon, {})
});
$[11] = Icon;
$[12] = iconsVisible;
$[13] = t3;
} else {
t3 = $[13];
}
let t4;
if ($[14] !== children) {
t4 = children && /*#__PURE__*/jsx("span", {
"data-component": "text",
"data-content": children,
children: children
});
$[14] = children;
$[15] = t4;
} else {
t4 = $[15];
}
let t5;
if ($[16] !== counter || $[17] !== loadingCounters) {
t5 = counter !== undefined ? loadingCounters ? /*#__PURE__*/jsx("span", {
"data-component": "counter",
children: /*#__PURE__*/jsx(LoadingCounter, {})
}) : /*#__PURE__*/jsx("span", {
"data-component": "counter",
children: /*#__PURE__*/jsx(CounterLabel, {
children: counter
})
}) : null;
$[16] = counter;
$[17] = loadingCounters;
$[18] = t5;
} else {
t5 = $[18];
}
let t6;
if ($[19] !== as || $[20] !== forwardedRef || $[21] !== rest || $[22] !== t2 || $[23] !== t3 || $[24] !== t4 || $[25] !== t5) {
t6 = /*#__PURE__*/jsxs(BoxWithFallback, {
ref: forwardedRef,
as: as,
className: t2,
...rest,
children: [t3, t4, t5]
});
$[19] = as;
$[20] = forwardedRef;
$[21] = rest;
$[22] = t2;
$[23] = t3;
$[24] = t4;
$[25] = t5;
$[26] = t6;
} else {
t6 = $[26];
}
return t6;
});
export { GAP, LoadingCounter, UnderlineItem, UnderlineItemList, UnderlineWrapper };