@primer/react
Version:
An implementation of GitHub's Primer Design System using React
205 lines (204 loc) • 5.09 kB
JavaScript
import CounterLabel from "../../CounterLabel/CounterLabel.js";
import UnderlineTabbedInterface_module_css_default from "./UnderlineTabbedInterface.module.css.js";
import { c } from "react-compiler-runtime";
import { clsx } from "clsx";
import { jsx, jsxs } from "react/jsx-runtime";
import React, { forwardRef } from "react";
import { isElement } from "react-is";
//#region src/internal/components/UnderlineTabbedInterface.tsx
function getTextContent(children) {
if (typeof children === "string" || typeof children === "number") return String(children);
if (Array.isArray(children)) return children.map(getTextContent).join("");
return "";
}
const UnderlineWrapper = /*#__PURE__*/ forwardRef((props, ref) => {
const $ = c(13);
let children;
let className;
let rest;
let t0;
if ($[0] !== props) {
({children, className, as: t0, ...rest} = props);
$[0] = props;
$[1] = children;
$[2] = className;
$[3] = rest;
$[4] = t0;
} else {
children = $[1];
className = $[2];
rest = $[3];
t0 = $[4];
}
const Component = t0 === void 0 ? "div" : t0;
let t1;
if ($[5] !== className) {
t1 = clsx(UnderlineTabbedInterface_module_css_default.UnderlineWrapper, className);
$[5] = className;
$[6] = t1;
} else t1 = $[6];
const t2 = ref;
let t3;
if ($[7] !== Component || $[8] !== children || $[9] !== rest || $[10] !== t1 || $[11] !== t2) {
t3 = /*#__PURE__*/ jsx(Component, {
className: t1,
ref: t2,
...rest,
children
});
$[7] = Component;
$[8] = children;
$[9] = rest;
$[10] = t1;
$[11] = t2;
$[12] = t3;
} else t3 = $[12];
return t3;
});
const UnderlineItemList = /*#__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(className, UnderlineTabbedInterface_module_css_default.UnderlineItemList);
$[4] = className;
$[5] = t1;
} else t1 = $[5];
let t2;
if ($[6] !== children || $[7] !== forwardedRef || $[8] !== rest || $[9] !== t1) {
t2 = /*#__PURE__*/ jsx("ul", {
className: t1,
ref: forwardedRef,
...rest,
children
});
$[6] = children;
$[7] = forwardedRef;
$[8] = rest;
$[9] = t1;
$[10] = t2;
} else t2 = $[10];
return t2;
});
const LoadingCounter = () => {
const $ = c(1);
let t0;
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
t0 = /*#__PURE__*/ jsx("span", { className: UnderlineTabbedInterface_module_css_default.LoadingCounter });
$[0] = t0;
} else t0 = $[0];
return t0;
};
const UnderlineItem = /*#__PURE__*/ React.forwardRef((props, ref) => {
const $ = c(28);
let Icon;
let children;
let className;
let counter;
let loadingCounters;
let rest;
let t0;
if ($[0] !== props) {
({as: t0, children, counter, icon: Icon, loadingCounters, className, ...rest} = props);
$[0] = props;
$[1] = Icon;
$[2] = children;
$[3] = className;
$[4] = counter;
$[5] = loadingCounters;
$[6] = rest;
$[7] = t0;
} else {
Icon = $[1];
children = $[2];
className = $[3];
counter = $[4];
loadingCounters = $[5];
rest = $[6];
t0 = $[7];
}
const Component = t0 === void 0 ? "a" : t0;
let t1;
if ($[8] !== children) {
t1 = getTextContent(children);
$[8] = children;
$[9] = t1;
} else t1 = $[9];
const textContent = t1;
let t2;
if ($[10] !== className) {
t2 = clsx(UnderlineTabbedInterface_module_css_default.UnderlineItem, className);
$[10] = className;
$[11] = t2;
} else t2 = $[11];
let t3;
if ($[12] !== Icon) {
t3 = Icon && /*#__PURE__*/ jsx("span", {
"data-component": "icon",
children: isElement(Icon) ? Icon : /*#__PURE__*/ jsx(Icon, {})
});
$[12] = Icon;
$[13] = t3;
} else t3 = $[13];
let t4;
if ($[14] !== children || $[15] !== textContent) {
t4 = children && /*#__PURE__*/ jsx("span", {
"data-component": "text",
"data-content": textContent || void 0,
children
});
$[14] = children;
$[15] = textContent;
$[16] = t4;
} else t4 = $[16];
let t5;
if ($[17] !== counter || $[18] !== loadingCounters) {
t5 = counter !== void 0 ? loadingCounters ? /*#__PURE__*/ jsx("span", {
"data-component": "counter",
children: /*#__PURE__*/ jsx(LoadingCounter, {})
}) : /*#__PURE__*/ jsx("span", {
"data-component": "counter",
children: /*#__PURE__*/ jsx(CounterLabel, { children: counter })
}) : null;
$[17] = counter;
$[18] = loadingCounters;
$[19] = t5;
} else t5 = $[19];
let t6;
if ($[20] !== Component || $[21] !== ref || $[22] !== rest || $[23] !== t2 || $[24] !== t3 || $[25] !== t4 || $[26] !== t5) {
t6 = /*#__PURE__*/ jsxs(Component, {
...rest,
ref,
className: t2,
children: [
t3,
t4,
t5
]
});
$[20] = Component;
$[21] = ref;
$[22] = rest;
$[23] = t2;
$[24] = t3;
$[25] = t4;
$[26] = t5;
$[27] = t6;
} else t6 = $[27];
return t6;
});
//#endregion
export { LoadingCounter, UnderlineItem, UnderlineItemList, UnderlineWrapper };