@primer/react
Version:
An implementation of GitHub's Primer Design System using React
98 lines (97 loc) • 2.83 kB
JavaScript
import Link from "./Link/Link.js";
import SideNav_module_css_default from "./SideNav.module.css.js";
import { c } from "react-compiler-runtime";
import { clsx } from "clsx";
import { jsx } from "react/jsx-runtime";
//#region src/SideNav.tsx
function SideNav(t0) {
const $ = c(10);
const { as: t1, variant: t2, className, bordered, children, "aria-label": ariaLabel } = t0;
const Component = t1 === void 0 ? "nav" : t1;
const variantClassName = (t2 === void 0 ? "normal" : t2) === "lightweight" ? "lightweight" : "normal";
const t3 = SideNav_module_css_default[`SideNavVariant--${variantClassName}`];
const t4 = `variant-${variantClassName}`;
let t5;
if ($[0] !== bordered || $[1] !== className || $[2] !== t3 || $[3] !== t4) {
t5 = clsx(SideNav_module_css_default.SideNav, t3, "sidenav", t4, className, { [SideNav_module_css_default.SideNavBordered]: bordered });
$[0] = bordered;
$[1] = className;
$[2] = t3;
$[3] = t4;
$[4] = t5;
} else t5 = $[4];
const newClassName = t5;
let t6;
if ($[5] !== Component || $[6] !== ariaLabel || $[7] !== children || $[8] !== newClassName) {
t6 = /*#__PURE__*/ jsx(Component, {
className: newClassName,
"aria-label": ariaLabel,
"data-component": "SideNav",
children
});
$[5] = Component;
$[6] = ariaLabel;
$[7] = children;
$[8] = newClassName;
$[9] = t6;
} else t6 = $[9];
return t6;
}
const SideNavLink = (t0) => {
const $ = c(15);
let children;
let className;
let rest;
let selected;
let to;
let variant;
if ($[0] !== t0) {
({selected, to, variant, className, children, ...rest} = t0);
$[0] = t0;
$[1] = children;
$[2] = className;
$[3] = rest;
$[4] = selected;
$[5] = to;
$[6] = variant;
} else {
children = $[1];
className = $[2];
rest = $[3];
selected = $[4];
to = $[5];
variant = $[6];
}
const isReactRouter = typeof to === "string";
const t1 = variant === "full";
let t2;
if ($[7] !== className || $[8] !== t1) {
t2 = clsx(SideNav_module_css_default.SideNavLink, className, { [SideNav_module_css_default.SideNavLinkFull]: t1 });
$[7] = className;
$[8] = t1;
$[9] = t2;
} else t2 = $[9];
const newClassName = t2;
const t3 = isReactRouter || selected ? "page" : void 0;
let t4;
if ($[10] !== children || $[11] !== newClassName || $[12] !== rest || $[13] !== t3) {
t4 = /*#__PURE__*/ jsx(Link, {
"aria-current": t3,
className: newClassName,
...rest,
"data-component": "SideNav.Link",
children
});
$[10] = children;
$[11] = newClassName;
$[12] = rest;
$[13] = t3;
$[14] = t4;
} else t4 = $[14];
return t4;
};
SideNavLink.displayName = "SideNav.Link";
/** @deprecated Use [NavList](https://primer.style/react/NavList) instead */
var SideNav_default = Object.assign(SideNav, { Link: SideNavLink });
//#endregion
export { SideNav_default as default };