@l3mpire/ui 3.5.0 → 3.5.1
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/index.js +39 -28
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +39 -28
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/styles/globals.css +0 -15
package/dist/index.mjs
CHANGED
|
@@ -7172,6 +7172,18 @@ function ColumnFilterPopover({
|
|
|
7172
7172
|
) })
|
|
7173
7173
|
] });
|
|
7174
7174
|
}
|
|
7175
|
+
function pinnedStickyStyle(pinned, offset, zIndex) {
|
|
7176
|
+
if (pinned === "left") return { position: "sticky", left: offset, zIndex };
|
|
7177
|
+
if (pinned === "right") return { position: "sticky", right: offset, zIndex };
|
|
7178
|
+
return {};
|
|
7179
|
+
}
|
|
7180
|
+
function pinnedDividerClass(pinned) {
|
|
7181
|
+
if (pinned === "left")
|
|
7182
|
+
return "shadow-[1px_0_0_0_var(--core-border-main-primary)]";
|
|
7183
|
+
if (pinned === "right")
|
|
7184
|
+
return "shadow-[-1px_0_0_0_var(--core-border-main-primary)]";
|
|
7185
|
+
return "";
|
|
7186
|
+
}
|
|
7175
7187
|
function DraggableHeaderCell({
|
|
7176
7188
|
header,
|
|
7177
7189
|
enableSorting,
|
|
@@ -7199,6 +7211,7 @@ function DraggableHeaderCell({
|
|
|
7199
7211
|
disabled: !canDrag
|
|
7200
7212
|
});
|
|
7201
7213
|
const pinned = header.column.getIsPinned();
|
|
7214
|
+
const pinOffset = pinned === "left" ? header.column.getStart("left") : pinned === "right" ? header.column.getAfter("right") : void 0;
|
|
7202
7215
|
const style = {
|
|
7203
7216
|
width: enableColumnResizing ? header.getSize() : void 0,
|
|
7204
7217
|
minWidth: enableColumnResizing ? header.column.columnDef.minSize : void 0,
|
|
@@ -7209,18 +7222,7 @@ function DraggableHeaderCell({
|
|
|
7209
7222
|
// Pinning sticky positioning — must override the default `relative` we
|
|
7210
7223
|
// also use for the resize handle. The resize handle is still absolutely
|
|
7211
7224
|
// positioned because it references `right: 0` relative to the cell.
|
|
7212
|
-
...pinned
|
|
7213
|
-
position: "sticky",
|
|
7214
|
-
left: header.column.getStart("left"),
|
|
7215
|
-
zIndex: isDragging ? 5 : 3
|
|
7216
|
-
} : pinned === "right" ? {
|
|
7217
|
-
position: "sticky",
|
|
7218
|
-
right: header.column.getAfter("right"),
|
|
7219
|
-
zIndex: isDragging ? 5 : 3
|
|
7220
|
-
} : {
|
|
7221
|
-
position: "relative",
|
|
7222
|
-
zIndex: isDragging ? 1 : void 0
|
|
7223
|
-
}
|
|
7225
|
+
...pinned ? pinnedStickyStyle(pinned, pinOffset, isDragging ? 5 : 3) : { position: "relative", zIndex: isDragging ? 1 : void 0 }
|
|
7224
7226
|
};
|
|
7225
7227
|
return /* @__PURE__ */ jsxs48(
|
|
7226
7228
|
TableHead,
|
|
@@ -7234,8 +7236,7 @@ function DraggableHeaderCell({
|
|
|
7234
7236
|
// Pinned columns keep their bg so the scrolling content can pass
|
|
7235
7237
|
// under them. The default `bg-table-head-bg-default` is already on
|
|
7236
7238
|
// <th> so we only need to add a divider on the boundary.
|
|
7237
|
-
pinned
|
|
7238
|
-
pinned === "right" && "shadow-[-1px_0_0_0_var(--core-border-main-primary)]"
|
|
7239
|
+
pinnedDividerClass(pinned)
|
|
7239
7240
|
),
|
|
7240
7241
|
onClick: canSort ? header.column.getToggleSortingHandler() : void 0,
|
|
7241
7242
|
onMouseEnter: () => setIsHovered(true),
|
|
@@ -7464,15 +7465,22 @@ function DataTableInner({
|
|
|
7464
7465
|
}).filter(Boolean),
|
|
7465
7466
|
[columns]
|
|
7466
7467
|
);
|
|
7468
|
+
const lastSyncedColumnIdsRef = React54.useRef(null);
|
|
7467
7469
|
React54.useEffect(() => {
|
|
7468
7470
|
if (!enableColumnDrag) return;
|
|
7471
|
+
const signature = allColumnIds.join(" ");
|
|
7472
|
+
if (signature === lastSyncedColumnIdsRef.current) return;
|
|
7473
|
+
lastSyncedColumnIdsRef.current = signature;
|
|
7469
7474
|
if (columnOrder.length === 0) {
|
|
7470
7475
|
setColumnOrder(allColumnIds);
|
|
7471
7476
|
return;
|
|
7472
7477
|
}
|
|
7473
|
-
const
|
|
7474
|
-
|
|
7475
|
-
|
|
7478
|
+
const pruned = columnOrder.filter((id) => allColumnIds.includes(id));
|
|
7479
|
+
const missing = allColumnIds.filter((id) => !pruned.includes(id));
|
|
7480
|
+
const next = [...pruned, ...missing];
|
|
7481
|
+
const changed = next.length !== columnOrder.length || next.some((id, i) => id !== columnOrder[i]);
|
|
7482
|
+
if (changed) {
|
|
7483
|
+
setColumnOrder(next);
|
|
7476
7484
|
}
|
|
7477
7485
|
}, [enableColumnDrag, columnOrder, allColumnIds, setColumnOrder]);
|
|
7478
7486
|
const table = useReactTable({
|
|
@@ -7589,6 +7597,16 @@ function DataTableInner({
|
|
|
7589
7597
|
return vars;
|
|
7590
7598
|
}, [enableColumnResizing, table.getState().columnSizing]);
|
|
7591
7599
|
const totalSize = enableColumnResizing ? table.getTotalSize() : void 0;
|
|
7600
|
+
const pinnedOffsets = React54.useMemo(() => {
|
|
7601
|
+
const map = /* @__PURE__ */ new Map();
|
|
7602
|
+
for (const col of table.getVisibleLeafColumns()) {
|
|
7603
|
+
const p = col.getIsPinned();
|
|
7604
|
+
if (p === "left") map.set(col.id, { side: "left", offset: col.getStart("left") });
|
|
7605
|
+
else if (p === "right")
|
|
7606
|
+
map.set(col.id, { side: "right", offset: col.getAfter("right") });
|
|
7607
|
+
}
|
|
7608
|
+
return map;
|
|
7609
|
+
}, [table, table.getState().columnPinning, table.getState().columnSizing]);
|
|
7592
7610
|
const tableContent = /* @__PURE__ */ jsxs48("div", { className: cn("w-full", className), style: columnSizeVars, children: [
|
|
7593
7611
|
/* @__PURE__ */ jsxs48(
|
|
7594
7612
|
Table,
|
|
@@ -7664,17 +7682,10 @@ function DataTableInner({
|
|
|
7664
7682
|
"data-state": row.getIsSelected() ? "selected" : void 0,
|
|
7665
7683
|
children: row.getVisibleCells().map((cell) => {
|
|
7666
7684
|
const cellPinned = cell.column.getIsPinned();
|
|
7685
|
+
const pin = cellPinned ? pinnedOffsets.get(cell.column.id) : void 0;
|
|
7667
7686
|
const cellStyle = {
|
|
7668
7687
|
...enableColumnResizing ? { width: `var(--col-${cell.column.id}-size)` } : {},
|
|
7669
|
-
...cellPinned
|
|
7670
|
-
position: "sticky",
|
|
7671
|
-
left: cell.column.getStart("left"),
|
|
7672
|
-
zIndex: 2
|
|
7673
|
-
} : cellPinned === "right" ? {
|
|
7674
|
-
position: "sticky",
|
|
7675
|
-
right: cell.column.getAfter("right"),
|
|
7676
|
-
zIndex: 2
|
|
7677
|
-
} : {}
|
|
7688
|
+
...pinnedStickyStyle(cellPinned, pin?.offset, 2)
|
|
7678
7689
|
};
|
|
7679
7690
|
return /* @__PURE__ */ jsx54(
|
|
7680
7691
|
TableCell,
|
|
@@ -7685,8 +7696,8 @@ function DataTableInner({
|
|
|
7685
7696
|
enableColumnResizing && "truncate",
|
|
7686
7697
|
// Pinned cells need an opaque background so scrolled
|
|
7687
7698
|
// content does not show through.
|
|
7688
|
-
cellPinned
|
|
7689
|
-
cellPinned
|
|
7699
|
+
cellPinned && "bg-table-row-bg-default group-hover/row:bg-table-row-bg-hover data-[state=selected]:bg-table-row-bg-selected",
|
|
7700
|
+
pinnedDividerClass(cellPinned)
|
|
7690
7701
|
),
|
|
7691
7702
|
children: flexRender(
|
|
7692
7703
|
cell.column.columnDef.cell,
|