@primer/react
Version:
An implementation of GitHub's Primer Design System using React
110 lines (107 loc) • 2.92 kB
JavaScript
import { c } from 'react-compiler-runtime';
import React, { forwardRef } from 'react';
import { ListContext } from './shared.js';
import VisuallyHidden from '../_VisuallyHidden.js';
import { ActionListContainerContext } from './ActionListContainerContext.js';
import { invariant } from '../utils/invariant.js';
import { clsx } from 'clsx';
import classes from './Heading.module.css.js';
import { jsx } from 'react/jsx-runtime';
import { useMergedRefs } from '../hooks/useMergedRefs.js';
import Heading$1 from '../Heading/Heading.js';
const Heading = /*#__PURE__*/forwardRef((t0, forwardedRef) => {
var _props$id;
const $ = c(21);
let as;
let children;
let className;
let props;
let size;
let t1;
if ($[0] !== t0) {
({
as,
size,
children,
visuallyHidden: t1,
className,
...props
} = t0);
$[0] = t0;
$[1] = as;
$[2] = children;
$[3] = className;
$[4] = props;
$[5] = size;
$[6] = t1;
} else {
as = $[1];
children = $[2];
className = $[3];
props = $[4];
size = $[5];
t1 = $[6];
}
const visuallyHidden = t1 === undefined ? false : t1;
const innerRef = React.useRef(null);
const mergedRef = useMergedRefs(forwardedRef, innerRef);
const {
headingId,
variant: listVariant
} = React.useContext(ListContext);
const {
container
} = React.useContext(ActionListContainerContext);
!(container !== "ActionMenu") ? process.env.NODE_ENV !== "production" ? invariant(false, "ActionList.Heading shouldn't be used within an ActionMenu container. Menus are labelled by the menu button's name.") : invariant(false) : void 0;
const t2 = !visuallyHidden;
const t3 = (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : headingId;
let t4;
if ($[7] !== className) {
t4 = clsx(className, classes.ActionListHeader);
$[7] = className;
$[8] = t4;
} else {
t4 = $[8];
}
let t5;
if ($[9] !== as || $[10] !== children || $[11] !== listVariant || $[12] !== mergedRef || $[13] !== props || $[14] !== size || $[15] !== t3 || $[16] !== t4) {
t5 = /*#__PURE__*/jsx(Heading$1, {
as: as,
variant: size,
ref: mergedRef,
id: t3,
className: t4,
"data-component": "ActionList.Heading",
"data-list-variant": listVariant,
...props,
children: children
});
$[9] = as;
$[10] = children;
$[11] = listVariant;
$[12] = mergedRef;
$[13] = props;
$[14] = size;
$[15] = t3;
$[16] = t4;
$[17] = t5;
} else {
t5 = $[17];
}
let t6;
if ($[18] !== t2 || $[19] !== t5) {
t6 = /*#__PURE__*/jsx(VisuallyHidden, {
isVisible: t2,
children: t5
});
$[18] = t2;
$[19] = t5;
$[20] = t6;
} else {
t6 = $[20];
}
return t6;
});
Heading.displayName = 'ActionList.Heading';
Heading.__SLOT__ = Symbol('ActionList.Heading');
export { Heading };