UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

744 lines (724 loc) • 17.7 kB
'use strict'; var reactCompilerRuntime = require('react-compiler-runtime'); var octiconsReact = require('@primer/octicons-react'); var clsx = require('clsx'); var React = require('react'); var _VisuallyHidden = require('../_VisuallyHidden.js'); var sorting = require('./sorting.js'); var useTable = require('./useTable.js'); var ButtonReset = require('../internal/components/ButtonReset.js'); var Table_module = require('./Table.module.css.js'); var BoxWithFallback = require('../internal/components/BoxWithFallback.js'); var jsxRuntime = require('react/jsx-runtime'); var ScrollableRegion = require('../ScrollableRegion/ScrollableRegion.js'); var SkeletonText = require('../SkeletonText/SkeletonText.js'); var Text = require('../Text/Text.js'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var React__default = /*#__PURE__*/_interopDefault(React); const Table = /*#__PURE__*/React__default.default.forwardRef(function Table(t0, ref) { const $ = reactCompilerRuntime.c(21); let className; let gridTemplateColumns; let labelledby; let rest; let t1; if ($[0] !== t0) { ({ "aria-labelledby": labelledby, cellPadding: t1, className, gridTemplateColumns, ...rest } = t0); $[0] = t0; $[1] = className; $[2] = gridTemplateColumns; $[3] = labelledby; $[4] = rest; $[5] = t1; } else { className = $[1]; gridTemplateColumns = $[2]; labelledby = $[3]; rest = $[4]; t1 = $[5]; } const cellPadding = t1 === undefined ? "normal" : t1; let t2; if ($[6] === Symbol.for("react.memo_cache_sentinel")) { t2 = clsx.clsx("TableOverflowWrapper", Table_module.TableOverflowWrapper); $[6] = t2; } else { t2 = $[6]; } let t3; if ($[7] !== className) { t3 = clsx.clsx(className, "Table", Table_module.Table); $[7] = className; $[8] = t3; } else { t3 = $[8]; } let t4; if ($[9] !== gridTemplateColumns) { t4 = { "--grid-template-columns": gridTemplateColumns }; $[9] = gridTemplateColumns; $[10] = t4; } else { t4 = $[10]; } const t5 = t4; let t6; if ($[11] !== cellPadding || $[12] !== labelledby || $[13] !== ref || $[14] !== rest || $[15] !== t3 || $[16] !== t5) { t6 = /*#__PURE__*/jsxRuntime.jsx("table", { ...rest, "aria-labelledby": labelledby, "data-cell-padding": cellPadding, className: t3, role: "table", ref: ref, style: t5 }); $[11] = cellPadding; $[12] = labelledby; $[13] = ref; $[14] = rest; $[15] = t3; $[16] = t5; $[17] = t6; } else { t6 = $[17]; } let t7; if ($[18] !== labelledby || $[19] !== t6) { t7 = /*#__PURE__*/jsxRuntime.jsx(ScrollableRegion.ScrollableRegion, { "aria-labelledby": labelledby, className: t2, children: t6 }); $[18] = labelledby; $[19] = t6; $[20] = t7; } else { t7 = $[20]; } return t7; }); // ---------------------------------------------------------------------------- // TableHead // ---------------------------------------------------------------------------- function TableHead(t0) { const $ = reactCompilerRuntime.c(3); const { children } = t0; let t1; if ($[0] === Symbol.for("react.memo_cache_sentinel")) { t1 = clsx.clsx("TableHead", Table_module.TableHead); $[0] = t1; } else { t1 = $[0]; } let t2; if ($[1] !== children) { t2 = /*#__PURE__*/jsxRuntime.jsx("thead", { className: t1, role: "rowgroup", children: children }); $[1] = children; $[2] = t2; } else { t2 = $[2]; } return t2; } // ---------------------------------------------------------------------------- // TableBody // ---------------------------------------------------------------------------- function TableBody(t0) { const $ = reactCompilerRuntime.c(3); const { children } = t0; let t1; if ($[0] === Symbol.for("react.memo_cache_sentinel")) { t1 = clsx.clsx("TableBody", Table_module.TableBody); $[0] = t1; } else { t1 = $[0]; } let t2; if ($[1] !== children) { t2 = /*#__PURE__*/jsxRuntime.jsx("tbody", { className: t1, role: "rowgroup", children: children }); $[1] = children; $[2] = t2; } else { t2 = $[2]; } return t2; } // ---------------------------------------------------------------------------- // TableHeader // ---------------------------------------------------------------------------- function TableHeader(t0) { const $ = reactCompilerRuntime.c(9); let align; let children; let rest; if ($[0] !== t0) { ({ align, children, ...rest } = t0); $[0] = t0; $[1] = align; $[2] = children; $[3] = rest; } else { align = $[1]; children = $[2]; rest = $[3]; } let t1; if ($[4] === Symbol.for("react.memo_cache_sentinel")) { t1 = clsx.clsx("TableHeader", Table_module.TableHeader); $[4] = t1; } else { t1 = $[4]; } let t2; if ($[5] !== align || $[6] !== children || $[7] !== rest) { t2 = /*#__PURE__*/jsxRuntime.jsx("th", { ...rest, className: t1, role: "columnheader", scope: "col", "data-cell-align": align, children: children }); $[5] = align; $[6] = children; $[7] = rest; $[8] = t2; } else { t2 = $[8]; } return t2; } function TableSortHeader(t0) { const $ = reactCompilerRuntime.c(23); let align; let children; let direction; let onToggleSort; let rest; if ($[0] !== t0) { ({ align, children, direction, onToggleSort, ...rest } = t0); $[0] = t0; $[1] = align; $[2] = children; $[3] = direction; $[4] = onToggleSort; $[5] = rest; } else { align = $[1]; children = $[2]; direction = $[3]; onToggleSort = $[4]; rest = $[5]; } const ariaSort = direction === "DESC" ? "descending" : direction === "ASC" ? "ascending" : undefined; let t1; if ($[6] === Symbol.for("react.memo_cache_sentinel")) { t1 = clsx.clsx("TableSortButton", Table_module.TableSortButton); $[6] = t1; } else { t1 = $[6]; } let t2; if ($[7] !== onToggleSort) { t2 = () => { onToggleSort(); }; $[7] = onToggleSort; $[8] = t2; } else { t2 = $[8]; } let t3; if ($[9] !== direction) { t3 = direction === sorting.SortDirection.NONE || direction === sorting.SortDirection.ASC ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [/*#__PURE__*/jsxRuntime.jsx(octiconsReact.SortAscIcon, { className: clsx.clsx("TableSortIcon", "TableSortIcon--ascending", Table_module.TableSortIcon, Table_module["TableSortIcon--ascending"]) }), direction === sorting.SortDirection.NONE ? /*#__PURE__*/jsxRuntime.jsx(_VisuallyHidden, { children: "sort ascending" }) : null] }) : null; $[9] = direction; $[10] = t3; } else { t3 = $[10]; } let t4; if ($[11] !== direction) { t4 = direction === sorting.SortDirection.DESC ? /*#__PURE__*/jsxRuntime.jsx(octiconsReact.SortDescIcon, { className: clsx.clsx("TableSortIcon", "TableSortIcon--descending", Table_module.TableSortIcon, Table_module["TableSortIcon--descending"]) }) : null; $[11] = direction; $[12] = t4; } else { t4 = $[12]; } let t5; if ($[13] !== children || $[14] !== t2 || $[15] !== t3 || $[16] !== t4) { t5 = /*#__PURE__*/jsxRuntime.jsxs(ButtonReset.Button, { type: "button", className: t1, onClick: t2, children: [children, t3, t4] }); $[13] = children; $[14] = t2; $[15] = t3; $[16] = t4; $[17] = t5; } else { t5 = $[17]; } let t6; if ($[18] !== align || $[19] !== ariaSort || $[20] !== rest || $[21] !== t5) { t6 = /*#__PURE__*/jsxRuntime.jsx(TableHeader, { ...rest, "aria-sort": ariaSort, align: align, children: t5 }); $[18] = align; $[19] = ariaSort; $[20] = rest; $[21] = t5; $[22] = t6; } else { t6 = $[22]; } return t6; } // ---------------------------------------------------------------------------- // TableRow // ---------------------------------------------------------------------------- function TableRow(t0) { const $ = reactCompilerRuntime.c(7); let children; let rest; if ($[0] !== t0) { ({ children, ...rest } = t0); $[0] = t0; $[1] = children; $[2] = rest; } else { children = $[1]; rest = $[2]; } let t1; if ($[3] === Symbol.for("react.memo_cache_sentinel")) { t1 = clsx.clsx("TableRow", Table_module.TableRow); $[3] = t1; } else { t1 = $[3]; } let t2; if ($[4] !== children || $[5] !== rest) { t2 = /*#__PURE__*/jsxRuntime.jsx("tr", { ...rest, className: t1, role: "row", children: children }); $[4] = children; $[5] = rest; $[6] = t2; } else { t2 = $[6]; } return t2; } // ---------------------------------------------------------------------------- // TableCell // ---------------------------------------------------------------------------- function TableCell(t0) { const $ = reactCompilerRuntime.c(16); let align; let children; let className; let rest; let scope; if ($[0] !== t0) { ({ align, className, children, scope, ...rest } = t0); $[0] = t0; $[1] = align; $[2] = children; $[3] = className; $[4] = rest; $[5] = scope; } else { align = $[1]; children = $[2]; className = $[3]; rest = $[4]; scope = $[5]; } const BaseComponent = scope ? "th" : "td"; const role = scope ? "rowheader" : "cell"; let t1; if ($[6] !== className) { t1 = clsx.clsx("TableCell", className, Table_module.TableCell); $[6] = className; $[7] = t1; } else { t1 = $[7]; } let t2; if ($[8] !== BaseComponent || $[9] !== align || $[10] !== children || $[11] !== rest || $[12] !== role || $[13] !== scope || $[14] !== t1) { t2 = /*#__PURE__*/jsxRuntime.jsx(BaseComponent, { ...rest, className: t1, scope: scope, role: role, "data-cell-align": align, children: children }); $[8] = BaseComponent; $[9] = align; $[10] = children; $[11] = rest; $[12] = role; $[13] = scope; $[14] = t1; $[15] = t2; } else { t2 = $[15]; } return t2; } function TableCellPlaceholder(t0) { const $ = reactCompilerRuntime.c(2); const { children } = t0; let t1; if ($[0] !== children) { t1 = /*#__PURE__*/jsxRuntime.jsx(Text, { color: "fg.subtle", children: children }); $[0] = children; $[1] = t1; } else { t1 = $[1]; } return t1; } // ---------------------------------------------------------------------------- // TableContainer // ---------------------------------------------------------------------------- function TableContainer(t0) { const $ = reactCompilerRuntime.c(10); 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.clsx(className, Table_module.TableContainer); $[4] = className; $[5] = t1; } else { t1 = $[5]; } let t2; if ($[6] !== children || $[7] !== rest || $[8] !== t1) { t2 = /*#__PURE__*/jsxRuntime.jsx(BoxWithFallback.BoxWithFallback, { ...rest, className: t1, children: children }); $[6] = children; $[7] = rest; $[8] = t1; $[9] = t2; } else { t2 = $[9]; } return t2; } const TableTitle = /*#__PURE__*/React__default.default.forwardRef(function TableTitle(t0, ref) { const $ = reactCompilerRuntime.c(6); const { as: t1, children, id } = t0; const Component = t1 === undefined ? "h2" : t1; const BaseComponent = Component; let t2; if ($[0] === Symbol.for("react.memo_cache_sentinel")) { t2 = clsx.clsx("TableTitle", Table_module.TableTitle); $[0] = t2; } else { t2 = $[0]; } let t3; if ($[1] !== BaseComponent || $[2] !== children || $[3] !== id || $[4] !== ref) { t3 = /*#__PURE__*/jsxRuntime.jsx(BaseComponent, { className: t2, id: id, ref: ref, children: children }); $[1] = BaseComponent; $[2] = children; $[3] = id; $[4] = ref; $[5] = t3; } else { t3 = $[5]; } return t3; }); function TableSubtitle(t0) { const $ = reactCompilerRuntime.c(5); const { as: t1, children, id } = t0; const BaseComponent = t1 === undefined ? "div" : t1; let t2; if ($[0] === Symbol.for("react.memo_cache_sentinel")) { t2 = clsx.clsx("TableSubtitle", Table_module.TableSubtitle); $[0] = t2; } else { t2 = $[0]; } let t3; if ($[1] !== BaseComponent || $[2] !== children || $[3] !== id) { t3 = /*#__PURE__*/jsxRuntime.jsx(BaseComponent, { className: t2, id: id, children: children }); $[1] = BaseComponent; $[2] = children; $[3] = id; $[4] = t3; } else { t3 = $[4]; } return t3; } function TableDivider() { const $ = reactCompilerRuntime.c(1); let t0; if ($[0] === Symbol.for("react.memo_cache_sentinel")) { t0 = /*#__PURE__*/jsxRuntime.jsx("div", { className: clsx.clsx("TableDivider", Table_module.TableDivider), role: "presentation" }); $[0] = t0; } else { t0 = $[0]; } return t0; } function TableActions(t0) { const $ = reactCompilerRuntime.c(3); const { children } = t0; let t1; if ($[0] === Symbol.for("react.memo_cache_sentinel")) { t1 = clsx.clsx("TableActions", Table_module.TableActions); $[0] = t1; } else { t1 = $[0]; } let t2; if ($[1] !== children) { t2 = /*#__PURE__*/jsxRuntime.jsx("div", { className: t1, children: children }); $[1] = children; $[2] = t2; } else { t2 = $[2]; } return t2; } // ---------------------------------------------------------------------------- // TableSkeleton // ---------------------------------------------------------------------------- function TableSkeleton(t0) { const $ = reactCompilerRuntime.c(20); let cellPadding; let columns; let rest; let t1; if ($[0] !== t0) { ({ cellPadding, columns, rows: t1, ...rest } = t0); $[0] = t0; $[1] = cellPadding; $[2] = columns; $[3] = rest; $[4] = t1; } else { cellPadding = $[1]; columns = $[2]; rest = $[3]; t1 = $[4]; } const rows = t1 === undefined ? 10 : t1; const { gridTemplateColumns } = useTable.useTableLayout(columns); let t2; if ($[5] !== columns) { t2 = Array.isArray(columns) ? columns.map(_temp) : null; $[5] = columns; $[6] = t2; } else { t2 = $[6]; } let t3; if ($[7] !== t2) { t3 = /*#__PURE__*/jsxRuntime.jsx(TableHead, { children: /*#__PURE__*/jsxRuntime.jsx(TableRow, { children: t2 }) }); $[7] = t2; $[8] = t3; } else { t3 = $[8]; } let t4; if ($[9] !== columns.length) { t4 = Array.from({ length: columns.length }); $[9] = columns.length; $[10] = t4; } else { t4 = $[10]; } let t5; if ($[11] !== rows || $[12] !== t4) { t5 = /*#__PURE__*/jsxRuntime.jsx(TableBody, { children: /*#__PURE__*/jsxRuntime.jsx(TableRow, { children: t4.map((_, i_0) => /*#__PURE__*/jsxRuntime.jsxs(TableCell, { className: clsx.clsx("TableCellSkeleton", Table_module.TableCellSkeleton), children: [/*#__PURE__*/jsxRuntime.jsx(_VisuallyHidden, { children: "Loading" }), /*#__PURE__*/jsxRuntime.jsx("div", { className: clsx.clsx("TableCellSkeletonItems", Table_module.TableCellSkeletonItems), children: Array.from({ length: rows }).map(_temp2) })] }, i_0)) }) }); $[11] = rows; $[12] = t4; $[13] = t5; } else { t5 = $[13]; } let t6; if ($[14] !== cellPadding || $[15] !== gridTemplateColumns || $[16] !== rest || $[17] !== t3 || $[18] !== t5) { t6 = /*#__PURE__*/jsxRuntime.jsxs(Table, { ...rest, cellPadding: cellPadding, gridTemplateColumns: gridTemplateColumns, children: [t3, t5] }); $[14] = cellPadding; $[15] = gridTemplateColumns; $[16] = rest; $[17] = t3; $[18] = t5; $[19] = t6; } else { t6 = $[19]; } return t6; } function _temp2(__0, i_1) { return /*#__PURE__*/jsxRuntime.jsx("div", { className: clsx.clsx("TableCellSkeletonItem", Table_module.TableCellSkeletonItem), children: /*#__PURE__*/jsxRuntime.jsx(SkeletonText.SkeletonText, {}) }, i_1); } _temp2.displayName = "_temp2"; function _temp(column, i) { return /*#__PURE__*/jsxRuntime.jsx(TableHeader, { children: typeof column.header === "string" ? column.header : column.header() }, i); } _temp.displayName = "_temp"; exports.Table = Table; exports.TableActions = TableActions; exports.TableBody = TableBody; exports.TableCell = TableCell; exports.TableCellPlaceholder = TableCellPlaceholder; exports.TableContainer = TableContainer; exports.TableDivider = TableDivider; exports.TableHead = TableHead; exports.TableHeader = TableHeader; exports.TableRow = TableRow; exports.TableSkeleton = TableSkeleton; exports.TableSortHeader = TableSortHeader; exports.TableSubtitle = TableSubtitle; exports.TableTitle = TableTitle;