@bigbinary/neeto-atoms 1.0.26 → 1.0.27
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/{DataTable-DYam_kUE.js → DataTable-DbSFUmLd.js} +41 -10
- package/dist/DataTable-DbSFUmLd.js.map +1 -0
- package/dist/cjs/{DataTable-BBxgDBnO.js → DataTable-DhWDzUWw.js} +41 -10
- package/dist/cjs/DataTable-DhWDzUWw.js.map +1 -0
- package/dist/cjs/components/DataTable.js +11 -6
- package/dist/cjs/components/DataTable.js.map +1 -1
- package/dist/cjs/components/index.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/primitives/Table.js +2 -2
- package/dist/cjs/primitives/Table.js.map +1 -1
- package/dist/components/DataTable.js +11 -6
- package/dist/components/DataTable.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/index.js +1 -1
- package/dist/primitives/Table.d.ts +2 -2
- package/dist/primitives/Table.js +2 -2
- package/dist/primitives/Table.js.map +1 -1
- package/package.json +1 -1
- package/dist/DataTable-DYam_kUE.js.map +0 -1
- package/dist/cjs/DataTable-BBxgDBnO.js.map +0 -1
|
@@ -9,6 +9,7 @@ import { Spinner } from './primitives/Spinner.js';
|
|
|
9
9
|
import { c as createLucideIcon } from './createLucideIcon-C8ycilSN.js';
|
|
10
10
|
import { Button } from './primitives/Button.js';
|
|
11
11
|
import { Pagination, PaginationContent, PaginationItem, PaginationPrevious, PaginationEllipsis, PaginationLink, PaginationNext } from './primitives/Pagination.js';
|
|
12
|
+
import { B as Button$1 } from './Button-Q7MPG6ph.js';
|
|
12
13
|
import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from './primitives/DropdownMenu.js';
|
|
13
14
|
import { E as Ellipsis } from './ellipsis-lb8Ws6br.js';
|
|
14
15
|
import { C as Check } from './check-Cpkv29p1.js';
|
|
@@ -3303,7 +3304,7 @@ const useTablePagination = ({ totalCount = 0, pageSize = DEFAULT_PAGE_SIZE, curr
|
|
|
3303
3304
|
|
|
3304
3305
|
const SelectionCheckbox = ({ checked, onCheckedChange, ariaLabel, }) => {
|
|
3305
3306
|
const { t } = useTranslation();
|
|
3306
|
-
return (jsx("div", { className: "flex items-center justify-center", children: jsx(Checkbox, { checked: checked, onCheckedChange: onCheckedChange, "aria-label": ariaLabel ?? t("neetoatoms.dataTable.selectRow", "Select row") }) }));
|
|
3307
|
+
return (jsx("div", { className: "flex w-full items-center justify-center", children: jsx(Checkbox, { checked: checked, onCheckedChange: onCheckedChange, "aria-label": ariaLabel ?? t("neetoatoms.dataTable.selectRow", "Select row") }) }));
|
|
3307
3308
|
};
|
|
3308
3309
|
|
|
3309
3310
|
const useTableSelection = ({ enableRowSelection, selectedRowKeys, onRowSelect, data, getRowId, }) => {
|
|
@@ -3353,7 +3354,7 @@ const useTableSelection = ({ enableRowSelection, selectedRowKeys, onRowSelect, d
|
|
|
3353
3354
|
onCheckedChange: value => row.toggleSelected(!!value),
|
|
3354
3355
|
ariaLabel: "Select row",
|
|
3355
3356
|
}),
|
|
3356
|
-
size:
|
|
3357
|
+
size: 56,
|
|
3357
3358
|
enableSorting: false,
|
|
3358
3359
|
enableResizing: false,
|
|
3359
3360
|
};
|
|
@@ -3538,7 +3539,7 @@ const BulkSelectCallout = ({ bulkSelectAllRowsProps, isAllPageRowsSelected, isBu
|
|
|
3538
3539
|
if (!isAllPageRowsSelected && !isBulkAllSelected)
|
|
3539
3540
|
return null;
|
|
3540
3541
|
const { selectAllRowMessage, selectAllRowButtonLabel, allRowsSelectedMessage, clearSelectionButtonLabel, } = bulkSelectAllRowsProps;
|
|
3541
|
-
return (jsx("div", { className: "mb-2 flex items-center justify-center gap-1 rounded-
|
|
3542
|
+
return (jsx("div", { className: "mb-2 flex items-center justify-center gap-1 rounded-sm bg-primary/10 px-4 py-1.5 text-sm text-primary", children: isBulkAllSelected ? (jsxs(Fragment, { children: [jsx("span", { children: allRowsSelectedMessage ?? selectAllRowMessage }), jsx(Button, { variant: "link", onClick: onClearBulkSelection, children: clearSelectionButtonLabel ?? "Clear selection" })] })) : (jsxs(Fragment, { children: [jsx("span", { children: selectAllRowMessage }), jsx(Button, { variant: "link", onClick: onBulkSelectAll, children: selectAllRowButtonLabel })] })) }));
|
|
3542
3543
|
};
|
|
3543
3544
|
|
|
3544
3545
|
const DataTablePagination = ({ currentPage, pageCount, onPageChange, }) => {
|
|
@@ -3580,7 +3581,7 @@ const HeaderCellMenu = ({ column, enableAddColumn, enableColumnFreeze, isColumnP
|
|
|
3580
3581
|
moreActions.length > 0;
|
|
3581
3582
|
if (!hasAnyAction)
|
|
3582
3583
|
return null;
|
|
3583
|
-
return (jsx("div", { onClick: e => e.stopPropagation(), children: jsxs(DropdownMenu, { children: [jsx(DropdownMenuTrigger, { asChild: true, children: jsx(Button, { variant: "ghost", size: "icon",
|
|
3584
|
+
return (jsx("div", { onClick: e => e.stopPropagation(), children: jsxs(DropdownMenu, { children: [jsx(DropdownMenuTrigger, { asChild: true, children: jsx(Button$1, { variant: "ghost", size: "icon", icon: Ellipsis, "data-testid": "column-menu-button" }) }), jsxs(DropdownMenuContent, { align: "start", className: "w-48", children: [isSortable && (jsxs(Fragment, { children: [jsxs(DropdownMenuItem, { "data-testid": "ascending-column-menu-button", onClick: () => onSort?.(column.id, false), children: [jsx(ArrowUp, { className: "mr-2 size-4" }), "Ascending", currentSort === "asc" && (jsx(Check, { className: "ml-auto size-4 text-primary" }))] }), jsxs(DropdownMenuItem, { "data-testid": "descending-column-menu-button", onClick: () => onSort?.(column.id, true), children: [jsx(ArrowDown, { className: "mr-2 size-4" }), "Descending", currentSort === "desc" && (jsx(Check, { className: "ml-auto size-4 text-primary" }))] })] })), enableAddColumn && (jsxs(Fragment, { children: [jsxs(DropdownMenuItem, { "data-testid": "insert-right-column-menu-button", onClick: () => onAddColumn?.(columnIndex + 1), children: [jsx(Plus, { className: "mr-2 size-4" }), "Insert column right"] }), jsxs(DropdownMenuItem, { "data-testid": "insert-left-column-menu-button", onClick: () => onAddColumn?.(columnIndex), children: [jsx(Plus, { className: "mr-2 size-4" }), "Insert column left"] })] })), isHidable && onHideColumn && (jsx(Fragment, { children: jsxs(DropdownMenuItem, { "data-testid": "hide-column-menu-button", onClick: () => onHideColumn(column.id), children: [jsx(EyeOff, { className: "mr-2 size-4" }), "Hide column"] }) })), isDeletable && onDeleteColumn && (jsxs(DropdownMenuItem, { "data-testid": "delete-column-menu-button", onClick: () => onDeleteColumn(column.id), children: [jsx(Trash2, { className: "mr-2 size-4" }), "Delete column"] })), enableColumnFreeze && onTogglePin && (jsx(Fragment, { children: jsxs(DropdownMenuItem, { "data-testid": "freeze-unfreeze-column-menu-button", onClick: () => onTogglePin(column.id), children: [jsx(Pin, { className: "mr-2 size-4" }), isColumnPinned ? "Unfreeze column" : "Freeze column"] }) })), onMoveColumn && (canMoveLeft || canMoveRight) && (jsxs(Fragment, { children: [canMoveLeft && (jsxs(DropdownMenuItem, { "data-testid": "move-column-left-menu-button", onClick: () => onMoveColumn(column.id, -1), children: [jsx(MoveLeft, { className: "mr-2 size-4" }), "Move column left"] })), canMoveRight && (jsxs(DropdownMenuItem, { "data-testid": "move-column-right-menu-button", onClick: () => onMoveColumn(column.id, 1), children: [jsx(MoveRight, { className: "mr-2 size-4" }), "Move column right"] }))] })), moreActions.length > 0 && (jsx(Fragment, { children: moreActions.map(action => {
|
|
3584
3585
|
const ActionIcon = action.icon;
|
|
3585
3586
|
return (jsxs(DropdownMenuItem, { "data-testid": `${action.type}-column-menu-button`, onClick: () => onMoreActionClick?.(action.type, column.id), children: [ActionIcon && jsx(ActionIcon, { className: "mr-2 size-4" }), action.label] }, action.type));
|
|
3586
3587
|
}) }))] })] }) }));
|
|
@@ -3719,6 +3720,32 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
|
|
|
3719
3720
|
table.toggleAllPageRowsSelected(false);
|
|
3720
3721
|
onRowSelect?.([], []);
|
|
3721
3722
|
};
|
|
3723
|
+
const scrollContainerRef = useRef(null);
|
|
3724
|
+
const [scrollState, setScrollState] = useState({
|
|
3725
|
+
scrolledStart: false,
|
|
3726
|
+
scrolledEnd: false,
|
|
3727
|
+
});
|
|
3728
|
+
useEffect(() => {
|
|
3729
|
+
const el = scrollContainerRef.current;
|
|
3730
|
+
if (!el)
|
|
3731
|
+
return;
|
|
3732
|
+
const update = () => {
|
|
3733
|
+
const { scrollLeft, scrollWidth, clientWidth } = el;
|
|
3734
|
+
const maxScroll = scrollWidth - clientWidth;
|
|
3735
|
+
setScrollState({
|
|
3736
|
+
scrolledStart: scrollLeft > 0,
|
|
3737
|
+
scrolledEnd: scrollLeft < maxScroll - 1,
|
|
3738
|
+
});
|
|
3739
|
+
};
|
|
3740
|
+
update();
|
|
3741
|
+
el.addEventListener("scroll", update, { passive: true });
|
|
3742
|
+
const resizeObserver = new ResizeObserver(update);
|
|
3743
|
+
resizeObserver.observe(el);
|
|
3744
|
+
return () => {
|
|
3745
|
+
el.removeEventListener("scroll", update);
|
|
3746
|
+
resizeObserver.disconnect();
|
|
3747
|
+
};
|
|
3748
|
+
}, []);
|
|
3722
3749
|
const handleSort = (columnId, desc) => {
|
|
3723
3750
|
const isSameSort = sorting.length > 0 &&
|
|
3724
3751
|
sorting[0].id === columnId &&
|
|
@@ -3730,7 +3757,7 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
|
|
|
3730
3757
|
onSortingChange([{ id: columnId, desc }]);
|
|
3731
3758
|
}
|
|
3732
3759
|
};
|
|
3733
|
-
return (jsxs("div", { className: cn("relative flex min-h-0 w-full flex-col", className), children: [loading && jsx(LoadingOverlay, {}), (showSelectAllCallout || showAllSelectedCallout) && (jsx(BulkSelectCallout, { bulkSelectAllRowsProps: bulkSelectAllRowsProps, isAllPageRowsSelected: isAllPageRowsSelected, isBulkAllSelected: bulkSelectedAllRows, onBulkSelectAll: handleBulkSelectAll, onClearBulkSelection: handleClearBulkSelection })), jsx("div", { className: cn("min-h-0 flex-1 overflow-auto", bordered && "rounded-lg border"), children: jsxs(Table, { children: [jsx(TableHeader, { className: "sticky top-0 z-20 bg-muted", children: table.getHeaderGroups().map(headerGroup => {
|
|
3760
|
+
return (jsxs("div", { className: cn("relative flex min-h-0 w-full flex-col", className), children: [loading && jsx(LoadingOverlay, {}), (showSelectAllCallout || showAllSelectedCallout) && (jsx(BulkSelectCallout, { bulkSelectAllRowsProps: bulkSelectAllRowsProps, isAllPageRowsSelected: isAllPageRowsSelected, isBulkAllSelected: bulkSelectedAllRows, onBulkSelectAll: handleBulkSelectAll, onClearBulkSelection: handleClearBulkSelection })), jsx("div", { ref: scrollContainerRef, "data-scrolled-start": scrollState.scrolledStart || undefined, "data-scrolled-end": scrollState.scrolledEnd || undefined, className: cn("group/scroll min-h-0 flex-1 overflow-auto", bordered && "rounded-lg border"), children: jsxs(Table, { children: [jsx(TableHeader, { className: "sticky top-0 z-20 bg-muted", children: table.getHeaderGroups().map(headerGroup => {
|
|
3734
3761
|
const dataHeaders = headerGroup.headers.filter(h => h.column.id !== "_selection");
|
|
3735
3762
|
const totalDataSize = dataHeaders.reduce((sum, h) => sum + h.getSize(), 0);
|
|
3736
3763
|
return (jsx(TableRow, { className: "hover:bg-muted", children: headerGroup.headers.map((header, headerIndex) => {
|
|
@@ -3738,7 +3765,9 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
|
|
|
3738
3765
|
const isSelectionCol = header.column.id === "_selection";
|
|
3739
3766
|
const columnIndexInData = dataHeaders.findIndex(h => h.id === header.id);
|
|
3740
3767
|
return (jsxs(TableHead, { className: cn("group/head relative", header.column.getCanSort() &&
|
|
3741
|
-
"cursor-pointer select-none", isPinned && "sticky z-10 bg-muted"
|
|
3768
|
+
"cursor-pointer select-none", isSelectionCol && "!pe-2", isPinned && "sticky z-10 bg-muted", isPinned === "left" &&
|
|
3769
|
+
"after:pointer-events-none after:absolute after:inset-y-0 after:-right-2 after:w-2 after:bg-gradient-to-r after:from-black/6 after:to-transparent after:opacity-0 after:transition-opacity after:duration-200 after:content-[''] group-data-[scrolled-start]/scroll:after:opacity-100 dark:after:from-white/6", isPinned === "right" &&
|
|
3770
|
+
"before:pointer-events-none before:absolute before:inset-y-0 before:-left-2 before:w-2 before:bg-gradient-to-l before:from-black/6 before:to-transparent before:opacity-0 before:transition-opacity before:duration-200 before:content-[''] group-data-[scrolled-end]/scroll:before:opacity-100 dark:before:from-white/6"), style: {
|
|
3742
3771
|
width: selectionColumn && isSelectionCol
|
|
3743
3772
|
? 0
|
|
3744
3773
|
: selectionColumn
|
|
@@ -3763,13 +3792,15 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
|
|
|
3763
3792
|
? (colId, dir) => moveColumn(colId, dir)
|
|
3764
3793
|
: undefined, onMoreActionClick: onMoreActionClick }))] })), enableColumnResize && jsx(ResizeHandle, { header: header })] }, header.id));
|
|
3765
3794
|
}) }, headerGroup.id));
|
|
3766
|
-
}) }), jsx(TableBody, { className: loading ? "opacity-50" : undefined, children: table.getRowModel().rows.length > 0 ? (table.getRowModel().rows.map(row => (jsx(TableRow, { "data-state": row.getIsSelected() ? "selected" : undefined, className: cn("group", allowRowClick && onRowClick && "cursor-pointer"), onClick: allowRowClick && onRowClick
|
|
3795
|
+
}) }), jsx(TableBody, { className: loading ? "opacity-50" : undefined, children: table.getRowModel().rows.length > 0 ? (table.getRowModel().rows.map(row => (jsx(TableRow, { "data-state": row.getIsSelected() ? "selected" : undefined, className: cn("group data-[state=selected]:bg-info", allowRowClick && onRowClick && "cursor-pointer"), onClick: allowRowClick && onRowClick
|
|
3767
3796
|
? event => onRowClick(event, row.original, row.index)
|
|
3768
3797
|
: undefined, children: row.getVisibleCells().map(cell => {
|
|
3769
3798
|
const isPinned = cell.column.getIsPinned();
|
|
3770
3799
|
const isSelCell = cell.column.id === "_selection";
|
|
3771
|
-
return (jsx(TableCell, { className: cn(isPinned &&
|
|
3772
|
-
"sticky z-10 bg-background group-
|
|
3800
|
+
return (jsx(TableCell, { className: cn(isSelCell && "!pe-2", isPinned &&
|
|
3801
|
+
"sticky z-10 bg-background group-data-[state=selected]:bg-info", isPinned === "left" &&
|
|
3802
|
+
"after:pointer-events-none after:absolute after:inset-y-0 after:-right-2 after:w-2 after:bg-gradient-to-r after:from-black/6 after:to-transparent after:opacity-0 after:transition-opacity after:duration-200 after:content-[''] group-data-[scrolled-start]/scroll:after:opacity-100 dark:after:from-white/6", isPinned === "right" &&
|
|
3803
|
+
"before:pointer-events-none before:absolute before:inset-y-0 before:-left-2 before:w-2 before:bg-gradient-to-l before:from-black/6 before:to-transparent before:opacity-0 before:transition-opacity before:duration-200 before:content-[''] group-data-[scrolled-end]/scroll:before:opacity-100 dark:before:from-white/6"), style: {
|
|
3773
3804
|
width: selectionColumn && isSelCell
|
|
3774
3805
|
? 0
|
|
3775
3806
|
: cell.column.getSize(),
|
|
@@ -3791,4 +3822,4 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
|
|
|
3791
3822
|
};
|
|
3792
3823
|
|
|
3793
3824
|
export { DataTable as D, useColumnPinning as a, useColumnVisibility as b, useTablePagination as c, useTableSelection as d, useTableSort as e, useColumnOrdering as u };
|
|
3794
|
-
//# sourceMappingURL=DataTable-
|
|
3825
|
+
//# sourceMappingURL=DataTable-DbSFUmLd.js.map
|