infinity-ui-elements 1.7.5 → 1.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Table/Table.d.ts.map +1 -1
- package/dist/components/Table/Table.stories.d.ts +1 -0
- package/dist/components/Table/Table.stories.d.ts.map +1 -1
- package/dist/components/Table/TableHeader.d.ts +2 -1
- package/dist/components/Table/TableHeader.d.ts.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.esm.js +36 -22
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +36 -22
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2856,32 +2856,39 @@ const tableCellVariants = classVarianceAuthority.cva("text-body-medium-regular b
|
|
|
2856
2856
|
},
|
|
2857
2857
|
});
|
|
2858
2858
|
|
|
2859
|
-
function TableHeader({ headerGroups, enableRowSelection, enableSelectAll, showHeaderBackground, stickyHeader, size, headerClassName, isDetailPanelOpen, visibleHeadersCount, onToggleAllRows, isAllRowsSelected, isSomeRowsSelected, }) {
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2859
|
+
function TableHeader({ headerGroups, enableRowSelection, enableSelectAll, showHeaderBackground, stickyHeader, size, headerClassName, isDetailPanelOpen, visibleHeadersCount, onToggleAllRows, isAllRowsSelected, isSomeRowsSelected, isBodyScrollable = false, }) {
|
|
2860
|
+
const headerHeight = {
|
|
2861
|
+
small: 32,
|
|
2862
|
+
medium: 40,
|
|
2863
|
+
large: 48,
|
|
2864
|
+
}[size] ?? 40;
|
|
2865
|
+
return (jsxRuntime.jsx("thead", { className: cn(showHeaderBackground && "bg-surface-fill-neutral-moderate", stickyHeader && "sticky top-0 z-10"), children: headerGroups.map((headerGroup, groupIndex) => {
|
|
2866
|
+
const stickyTop = stickyHeader ? groupIndex * headerHeight : undefined;
|
|
2867
|
+
return (jsxRuntime.jsxs("tr", { className: cn(isBodyScrollable && "table w-full table-fixed"), children: [enableRowSelection && enableSelectAll && (jsxRuntime.jsx("th", { className: cn(tableHeaderVariants({ size }), showHeaderBackground && "bg-surface-fill-neutral-moderate", stickyHeader && "sticky z-20", "w-10 rounded-tl-xlarge rounded-bl-xlarge", headerClassName), style: { top: stickyTop }, children: jsxRuntime.jsx(Checkbox, { checked: isAllRowsSelected, isIndeterminate: isSomeRowsSelected, onChange: onToggleAllRows, "aria-label": "Select all rows" }) })), headerGroup.headers.map((header, index) => {
|
|
2868
|
+
const shouldHideColumn = isDetailPanelOpen && index >= visibleHeadersCount;
|
|
2869
|
+
const isLastVisibleColumn = isDetailPanelOpen
|
|
2870
|
+
? index === visibleHeadersCount - 1
|
|
2871
|
+
: index === headerGroup.headers.length - 1;
|
|
2872
|
+
return (jsxRuntime.jsx("th", { className: cn(tableHeaderVariants({ size }), showHeaderBackground &&
|
|
2873
|
+
"bg-surface-fill-neutral-moderate border-none", stickyHeader && "sticky z-20", !enableRowSelection && index === 0 && "rounded-tl-xlarge ", isLastVisibleColumn && "rounded-tr-xlarge", header.column.columnDef.meta?.headerClassName, headerClassName, "transition-all duration-300 ease-in-out", shouldHideColumn
|
|
2874
|
+
? "opacity-0 translate-x-8 pointer-events-none"
|
|
2875
|
+
: "opacity-100 translate-x-0"), style: {
|
|
2876
|
+
width: header.getSize(),
|
|
2877
|
+
minWidth: header.column.columnDef.minSize,
|
|
2878
|
+
maxWidth: header.column.columnDef.maxSize,
|
|
2879
|
+
top: stickyTop,
|
|
2880
|
+
}, children: header.isPlaceholder ? null : (jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2", header.column.getCanSort() && "cursor-pointer select-none"), onClick: header.column.getToggleSortingHandler(), children: [reactTable.flexRender(header.column.columnDef.header, header.getContext()), header.column.getCanSort() && (jsxRuntime.jsx("span", { className: "text-surface-ink-neutral-muted", children: {
|
|
2881
|
+
asc: "↑",
|
|
2882
|
+
desc: "↓",
|
|
2883
|
+
}[header.column.getIsSorted()] ?? "↕" }))] })) }, header.id));
|
|
2884
|
+
})] }, headerGroup.id));
|
|
2885
|
+
}) }));
|
|
2879
2886
|
}
|
|
2880
2887
|
|
|
2881
2888
|
function TableBody({ rows, enableRowSelection, size, variant, showRowHover, cellClassName, isDetailPanelOpen, visibleHeadersCount, effectiveSelectedRowId, onRowClick, getRowClassName, handleRowClick, }) {
|
|
2882
2889
|
const [focusedCell, setFocusedCell] = React__namespace.useState(null);
|
|
2883
2890
|
const [hoveredRow, setHoveredRow] = React__namespace.useState(null);
|
|
2884
|
-
return (jsxRuntime.jsx("tbody", { className: "bg-surface-fill-neutral-intense", children: rows.map((row) => {
|
|
2891
|
+
return (jsxRuntime.jsx("tbody", { className: cn("bg-surface-fill-neutral-intense"), children: rows.map((row) => {
|
|
2885
2892
|
const isRowSelected = row.id === effectiveSelectedRowId;
|
|
2886
2893
|
const isRowHovered = hoveredRow === row.id;
|
|
2887
2894
|
const handleClick = () => handleRowClick(row.original, row.id);
|
|
@@ -2963,6 +2970,13 @@ function TableComponent({ className, wrapperClassName, containerClassName, varia
|
|
|
2963
2970
|
? headers.length - hideColumnsOnDetailOpen
|
|
2964
2971
|
: headers.length;
|
|
2965
2972
|
}, [isDetailPanelOpen, headers.length, hideColumnsOnDetailOpen]);
|
|
2973
|
+
const containerStyle = React__namespace.useMemo(() => {
|
|
2974
|
+
if (!maxHeight)
|
|
2975
|
+
return undefined;
|
|
2976
|
+
return {
|
|
2977
|
+
maxHeight: typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight,
|
|
2978
|
+
};
|
|
2979
|
+
}, [maxHeight]);
|
|
2966
2980
|
// ==================== Callbacks ====================
|
|
2967
2981
|
const getRowClassName = React__namespace.useCallback((row) => {
|
|
2968
2982
|
if (typeof rowClassName === "function") {
|
|
@@ -3011,7 +3025,7 @@ function TableComponent({ className, wrapperClassName, containerClassName, varia
|
|
|
3011
3025
|
return renderDefaultEmptyState({ colSpan: table.getAllColumns().length });
|
|
3012
3026
|
};
|
|
3013
3027
|
// ==================== Render ====================
|
|
3014
|
-
return (jsxRuntime.jsx("div", { ref: ref, className: cn("w-full", wrapperClassName), ...props, children: jsxRuntime.jsxs("div", { className: cn("relative overflow-x-hidden", maxHeight && "overflow-y-auto", containerClassName), style:
|
|
3028
|
+
return (jsxRuntime.jsx("div", { ref: ref, className: cn("w-full", wrapperClassName), ...props, children: jsxRuntime.jsxs("div", { className: cn("relative", enableHorizontalScroll ? "overflow-x-auto" : "overflow-x-hidden", maxHeight && "overflow-y-auto", containerClassName), style: containerStyle, children: [jsxRuntime.jsxs("table", { className: cn(tableVariants({ variant, size }), className), children: [jsxRuntime.jsx(TableHeader, { headerGroups: headerGroups, enableRowSelection: enableRowSelection, enableSelectAll: enableSelectAll, showHeaderBackground: showHeaderBackground, stickyHeader: stickyHeader, size: size || "medium", headerClassName: headerClassName, isDetailPanelOpen: isDetailPanelOpen, visibleHeadersCount: visibleHeadersCount, onToggleAllRows: (e) => table.getToggleAllRowsSelectedHandler()(e), isAllRowsSelected: table.getIsAllRowsSelected(), isSomeRowsSelected: table.getIsSomeRowsSelected(), isBodyScrollable: Boolean(maxHeight) }), isLoading ? (jsxRuntime.jsx("tbody", { children: renderLoadingState() })) : !hasData ? (jsxRuntime.jsx("tbody", { children: renderEmptyState() })) : (jsxRuntime.jsx(TableBody, { rows: table.getRowModel().rows, enableRowSelection: enableRowSelection, size: size || "medium", variant: variant || "default", showRowHover: showRowHover, cellClassName: cellClassName, isDetailPanelOpen: isDetailPanelOpen, visibleHeadersCount: visibleHeadersCount, effectiveSelectedRowId: effectiveSelectedRowId, onRowClick: onRowClick, getRowClassName: getRowClassName, handleRowClick: handleRowClickInternal }))] }), detailPanel && (jsxRuntime.jsx(DetailPanel, { isOpen: isDetailPanelOpen, content: detailPanel, data: getSelectedRowData(), onClose: handleDetailPanelClose }))] }) }));
|
|
3015
3029
|
}
|
|
3016
3030
|
// ==================== Export ====================
|
|
3017
3031
|
const Table = React__namespace.forwardRef(TableComponent);
|