UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

500 lines (497 loc) • 10.7 kB
import { c } from 'react-compiler-runtime'; import { clsx } from 'clsx'; import React, { forwardRef } from 'react'; import classes from './Card.module.css.js'; import { jsx, jsxs, Fragment } from 'react/jsx-runtime'; const CardImpl = /*#__PURE__*/forwardRef(function Card(t0, ref) { const $ = c(53); let children; let className; let rest; let t1; let t2; if ($[0] !== t0) { ({ children, className, padding: t1, borderRadius: t2, ...rest } = t0); $[0] = t0; $[1] = children; $[2] = className; $[3] = rest; $[4] = t1; $[5] = t2; } else { children = $[1]; className = $[2]; rest = $[3]; t1 = $[4]; t2 = $[5]; } const padding = t1 === undefined ? "normal" : t1; const borderRadius = t2 === undefined ? "large" : t2; let description; let heading; let menu; let metadata; let t3; let t4; let t5; let t6; let t7; let t8; let t9; if ($[6] !== borderRadius || $[7] !== children || $[8] !== className || $[9] !== padding || $[10] !== ref || $[11] !== rest) { t9 = Symbol.for("react.early_return_sentinel"); bb0: { let icon = null; let image = null; heading = null; description = null; metadata = null; menu = null; const childArray = React.Children.toArray(children); for (const child of childArray) { if (! /*#__PURE__*/React.isValidElement(child)) { continue; } if (child.type === CardIcon) { icon = child; } else { if (child.type === CardImage) { image = child; } else { if (child.type === CardHeading) { heading = child; } else { if (child.type === CardDescription) { description = child; } else { if (child.type === CardMetadata) { metadata = child; } else { if (child.type === CardMenu) { menu = child; } } } } } } } const hasSlotChildren = icon || image || heading || description || metadata || menu; if (!hasSlotChildren) { let t10; if ($[23] !== className) { t10 = clsx(classes.Card, className); $[23] = className; $[24] = t10; } else { t10 = $[24]; } let t11; if ($[25] !== borderRadius || $[26] !== children || $[27] !== padding || $[28] !== ref || $[29] !== rest || $[30] !== t10) { t11 = /*#__PURE__*/jsx("div", { ref: ref, className: t10, "data-padding": padding, "data-border-radius": borderRadius, ...rest, children: children }); $[25] = borderRadius; $[26] = children; $[27] = padding; $[28] = ref; $[29] = rest; $[30] = t10; $[31] = t11; } else { t11 = $[31]; } t9 = t11; break bb0; } t3 = ref; if ($[32] !== className) { t4 = clsx(classes.Card, className); $[32] = className; $[33] = t4; } else { t4 = $[33]; } t5 = padding; t6 = borderRadius; t7 = rest; t8 = (image || icon) && /*#__PURE__*/jsx("div", { className: clsx(classes.CardHeader, image && classes.CardHeaderEdgeToEdge), children: image || icon }); } $[6] = borderRadius; $[7] = children; $[8] = className; $[9] = padding; $[10] = ref; $[11] = rest; $[12] = description; $[13] = heading; $[14] = menu; $[15] = metadata; $[16] = t3; $[17] = t4; $[18] = t5; $[19] = t6; $[20] = t7; $[21] = t8; $[22] = t9; } else { description = $[12]; heading = $[13]; menu = $[14]; metadata = $[15]; t3 = $[16]; t4 = $[17]; t5 = $[18]; t6 = $[19]; t7 = $[20]; t8 = $[21]; t9 = $[22]; } if (t9 !== Symbol.for("react.early_return_sentinel")) { return t9; } let t10; if ($[34] !== description || $[35] !== heading) { t10 = /*#__PURE__*/jsxs("div", { className: classes.CardContent, children: [heading, description] }); $[34] = description; $[35] = heading; $[36] = t10; } else { t10 = $[36]; } let t11; if ($[37] !== metadata) { t11 = metadata ? /*#__PURE__*/jsx("div", { className: classes.CardMetadataContainer, children: metadata }) : null; $[37] = metadata; $[38] = t11; } else { t11 = $[38]; } let t12; if ($[39] !== t10 || $[40] !== t11) { t12 = /*#__PURE__*/jsxs("div", { className: classes.CardBody, children: [t10, t11] }); $[39] = t10; $[40] = t11; $[41] = t12; } else { t12 = $[41]; } let t13; if ($[42] !== menu) { t13 = menu ? /*#__PURE__*/jsx("div", { className: classes.CardMenu, children: menu }) : null; $[42] = menu; $[43] = t13; } else { t13 = $[43]; } let t14; if ($[44] !== t12 || $[45] !== t13 || $[46] !== t3 || $[47] !== t4 || $[48] !== t5 || $[49] !== t6 || $[50] !== t7 || $[51] !== t8) { t14 = /*#__PURE__*/jsxs("div", { ref: t3, className: t4, "data-padding": t5, "data-border-radius": t6, ...t7, children: [t8, t12, t13] }); $[44] = t12; $[45] = t13; $[46] = t3; $[47] = t4; $[48] = t5; $[49] = t6; $[50] = t7; $[51] = t8; $[52] = t14; } else { t14 = $[52]; } return t14; }); const CardIcon = t0 => { const $ = c(10); const { icon: IconComponent, "aria-label": ariaLabel, className } = t0; let t1; if ($[0] !== className) { t1 = clsx(classes.CardIcon, className); $[0] = className; $[1] = t1; } else { t1 = $[1]; } const t2 = ariaLabel ? "img" : undefined; const t3 = !ariaLabel; let t4; if ($[2] !== IconComponent) { t4 = /*#__PURE__*/jsx(IconComponent, {}); $[2] = IconComponent; $[3] = t4; } else { t4 = $[3]; } let t5; if ($[4] !== ariaLabel || $[5] !== t1 || $[6] !== t2 || $[7] !== t3 || $[8] !== t4) { t5 = /*#__PURE__*/jsx("span", { className: t1, role: t2, "aria-label": ariaLabel, "aria-hidden": t3, children: t4 }); $[4] = ariaLabel; $[5] = t1; $[6] = t2; $[7] = t3; $[8] = t4; $[9] = t5; } else { t5 = $[9]; } return t5; }; CardIcon.displayName = 'Card.Icon'; const CardImage = t0 => { const $ = c(12); let className; let rest; let src; let t1; if ($[0] !== t0) { ({ src, alt: t1, className, ...rest } = t0); $[0] = t0; $[1] = className; $[2] = rest; $[3] = src; $[4] = t1; } else { className = $[1]; rest = $[2]; src = $[3]; t1 = $[4]; } const alt = t1 === undefined ? "" : t1; let t2; if ($[5] !== className) { t2 = clsx(classes.CardImage, className); $[5] = className; $[6] = t2; } else { t2 = $[6]; } let t3; if ($[7] !== alt || $[8] !== rest || $[9] !== src || $[10] !== t2) { t3 = /*#__PURE__*/jsx("img", { src: src, alt: alt, className: t2, ...rest }); $[7] = alt; $[8] = rest; $[9] = src; $[10] = t2; $[11] = t3; } else { t3 = $[11]; } return t3; }; CardImage.displayName = 'Card.Image'; const CardHeading = /*#__PURE__*/forwardRef(function CardHeading(t0, ref) { const $ = c(13); let children; let className; let rest; let t1; if ($[0] !== t0) { ({ as: t1, children, className, ...rest } = t0); $[0] = t0; $[1] = children; $[2] = className; $[3] = rest; $[4] = t1; } else { children = $[1]; className = $[2]; rest = $[3]; t1 = $[4]; } const Component = t1 === undefined ? "h3" : t1; let t2; if ($[5] !== className) { t2 = clsx(classes.CardHeading, className); $[5] = className; $[6] = t2; } else { t2 = $[6]; } let t3; if ($[7] !== Component || $[8] !== children || $[9] !== ref || $[10] !== rest || $[11] !== t2) { t3 = /*#__PURE__*/jsx(Component, { ref: ref, className: t2, ...rest, children: children }); $[7] = Component; $[8] = children; $[9] = ref; $[10] = rest; $[11] = t2; $[12] = t3; } else { t3 = $[12]; } return t3; }); const CardDescription = /*#__PURE__*/forwardRef(function CardDescription(t0, ref) { 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.CardDescription, className); $[4] = className; $[5] = t1; } else { t1 = $[5]; } let t2; if ($[6] !== children || $[7] !== ref || $[8] !== rest || $[9] !== t1) { t2 = /*#__PURE__*/jsx("p", { ref: ref, className: t1, ...rest, children: children }); $[6] = children; $[7] = ref; $[8] = rest; $[9] = t1; $[10] = t2; } else { t2 = $[10]; } return t2; }); const CardMenu = t0 => { const $ = c(2); const { children } = t0; let t1; if ($[0] !== children) { t1 = /*#__PURE__*/jsx(Fragment, { children: children }); $[0] = children; $[1] = t1; } else { t1 = $[1]; } return t1; }; CardMenu.displayName = 'Card.Menu'; const CardMetadata = /*#__PURE__*/forwardRef(function CardMetadata(t0, ref) { 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.CardMetadataItem, className); $[4] = className; $[5] = t1; } else { t1 = $[5]; } let t2; if ($[6] !== children || $[7] !== ref || $[8] !== rest || $[9] !== t1) { t2 = /*#__PURE__*/jsx("div", { ref: ref, className: t1, ...rest, children: children }); $[6] = children; $[7] = ref; $[8] = rest; $[9] = t1; $[10] = t2; } else { t2 = $[10]; } return t2; }); export { CardDescription, CardHeading, CardIcon, CardImage, CardImpl, CardMenu, CardMetadata };