@primer/react
Version:
An implementation of GitHub's Primer Design System using React
112 lines (111 loc) • 2.87 kB
JavaScript
import { useMergedRefs } from "../hooks/useMergedRefs.js";
import { warning } from "../utils/warning.js";
import Details_module_css_default from "./Details.module.css.js";
import { c } from "react-compiler-runtime";
import { clsx } from "clsx";
import { jsx } from "react/jsx-runtime";
import React, { useEffect } from "react";
//#region src/Details/Details.tsx
const Root = /*#__PURE__*/ React.forwardRef((t0, forwardRef) => {
var _dataComponent;
const $ = c(15);
let children;
let className;
let dataComponent;
let rest;
if ($[0] !== t0) {
({className, children, "data-component": dataComponent, ...rest} = t0);
$[0] = t0;
$[1] = children;
$[2] = className;
$[3] = dataComponent;
$[4] = rest;
} else {
children = $[1];
className = $[2];
dataComponent = $[3];
rest = $[4];
}
const detailsRef = React.useRef(null);
const ref = useMergedRefs(forwardRef, detailsRef);
let t1;
let t2;
if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
t1 = () => {
const { current: details } = detailsRef;
if (!details) return;
warning(details.querySelector("summary:not([data-default-summary])") === null, "The <Details> component must have a <summary> child component. You can either use <Details.Summary> or a native <summary> element.");
};
t2 = [];
$[5] = t1;
$[6] = t2;
} else {
t1 = $[5];
t2 = $[6];
}
useEffect(t1, t2);
let t3;
if ($[7] !== className) {
t3 = clsx(className, Details_module_css_default.Details);
$[7] = className;
$[8] = t3;
} else t3 = $[8];
const t4 = (_dataComponent = dataComponent) !== null && _dataComponent !== void 0 ? _dataComponent : "Details";
let t5;
if ($[9] !== children || $[10] !== ref || $[11] !== rest || $[12] !== t3 || $[13] !== t4) {
t5 = /*#__PURE__*/ jsx("details", {
className: t3,
...rest,
ref,
"data-component": t4,
children
});
$[9] = children;
$[10] = ref;
$[11] = rest;
$[12] = t3;
$[13] = t4;
$[14] = t5;
} else t5 = $[14];
return t5;
});
Root.displayName = "Details";
function Summary(t0) {
var _as;
const $ = c(9);
let as;
let children;
let props;
if ($[0] !== t0) {
({as, children, ...props} = t0);
$[0] = t0;
$[1] = as;
$[2] = children;
$[3] = props;
} else {
as = $[1];
children = $[2];
props = $[3];
}
const Component = (_as = as) !== null && _as !== void 0 ? _as : "summary";
const t1 = Component === "summary" ? null : "summary";
let t2;
if ($[4] !== Component || $[5] !== children || $[6] !== props || $[7] !== t1) {
t2 = /*#__PURE__*/ jsx(Component, {
as: t1,
...props,
"data-component": "Details.Summary",
children
});
$[4] = Component;
$[5] = children;
$[6] = props;
$[7] = t1;
$[8] = t2;
} else t2 = $[8];
return t2;
}
Summary.displayName = "Summary";
const Details = Object.assign(Root, { Summary });
//#endregion
export { Summary, Details as default };