@bigbinary/neeto-atoms 1.0.25 → 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.
@@ -10,6 +10,7 @@ var primitives_Spinner = require('./primitives/Spinner.js');
10
10
  var createLucideIcon = require('./createLucideIcon-D0tRgV6l.js');
11
11
  var primitives_Button = require('./primitives/Button.js');
12
12
  var primitives_Pagination = require('./primitives/Pagination.js');
13
+ var Button = require('./Button-Bt_AElge.js');
13
14
  var primitives_DropdownMenu = require('./primitives/DropdownMenu.js');
14
15
  var ellipsis = require('./ellipsis-4aubOI2n.js');
15
16
  var check = require('./check-BQgcDXys.js');
@@ -3324,7 +3325,7 @@ const useTablePagination = ({ totalCount = 0, pageSize = DEFAULT_PAGE_SIZE, curr
3324
3325
 
3325
3326
  const SelectionCheckbox = ({ checked, onCheckedChange, ariaLabel, }) => {
3326
3327
  const { t } = reactI18next.useTranslation();
3327
- return (jsxRuntime.jsx("div", { className: "flex items-center justify-center", children: jsxRuntime.jsx(primitives_Checkbox.Checkbox, { checked: checked, onCheckedChange: onCheckedChange, "aria-label": ariaLabel ?? t("neetoatoms.dataTable.selectRow", "Select row") }) }));
3328
+ return (jsxRuntime.jsx("div", { className: "flex w-full items-center justify-center", children: jsxRuntime.jsx(primitives_Checkbox.Checkbox, { checked: checked, onCheckedChange: onCheckedChange, "aria-label": ariaLabel ?? t("neetoatoms.dataTable.selectRow", "Select row") }) }));
3328
3329
  };
3329
3330
 
3330
3331
  const useTableSelection = ({ enableRowSelection, selectedRowKeys, onRowSelect, data, getRowId, }) => {
@@ -3374,7 +3375,7 @@ const useTableSelection = ({ enableRowSelection, selectedRowKeys, onRowSelect, d
3374
3375
  onCheckedChange: value => row.toggleSelected(!!value),
3375
3376
  ariaLabel: "Select row",
3376
3377
  }),
3377
- size: 40,
3378
+ size: 56,
3378
3379
  enableSorting: false,
3379
3380
  enableResizing: false,
3380
3381
  };
@@ -3555,11 +3556,11 @@ const ResizeHandle = ({ header }) => {
3555
3556
  : "bg-border opacity-0 group-hover/head:opacity-100") }));
3556
3557
  };
3557
3558
 
3558
- const BulkSelectCallout = ({ bulkSelectAllRowsProps, isAllPageRowsSelected, isBulkAllSelected, }) => {
3559
- if (!isAllPageRowsSelected)
3559
+ const BulkSelectCallout = ({ bulkSelectAllRowsProps, isAllPageRowsSelected, isBulkAllSelected, onBulkSelectAll, onClearBulkSelection, }) => {
3560
+ if (!isAllPageRowsSelected && !isBulkAllSelected)
3560
3561
  return null;
3561
- const { selectAllRowMessage, selectAllRowButtonLabel, setBulkSelectedAllRows, allRowsSelectedMessage, clearSelectionButtonLabel, } = bulkSelectAllRowsProps;
3562
- return (jsxRuntime.jsx("div", { className: "mb-2 flex items-center justify-center gap-1 rounded-lg bg-primary/10 px-4 py-1.5 text-sm text-primary", children: isBulkAllSelected ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("span", { children: allRowsSelectedMessage ?? selectAllRowMessage }), clearSelectionButtonLabel && (jsxRuntime.jsx(primitives_Button.Button, { variant: "link", onClick: () => setBulkSelectedAllRows(false), children: clearSelectionButtonLabel }))] })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("span", { children: selectAllRowMessage }), jsxRuntime.jsx(primitives_Button.Button, { variant: "link", onClick: () => setBulkSelectedAllRows(true), children: selectAllRowButtonLabel })] })) }));
3562
+ const { selectAllRowMessage, selectAllRowButtonLabel, allRowsSelectedMessage, clearSelectionButtonLabel, } = bulkSelectAllRowsProps;
3563
+ return (jsxRuntime.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 ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("span", { children: allRowsSelectedMessage ?? selectAllRowMessage }), jsxRuntime.jsx(primitives_Button.Button, { variant: "link", onClick: onClearBulkSelection, children: clearSelectionButtonLabel ?? "Clear selection" })] })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("span", { children: selectAllRowMessage }), jsxRuntime.jsx(primitives_Button.Button, { variant: "link", onClick: onBulkSelectAll, children: selectAllRowButtonLabel })] })) }));
3563
3564
  };
3564
3565
 
3565
3566
  const DataTablePagination = ({ currentPage, pageCount, onPageChange, }) => {
@@ -3601,13 +3602,13 @@ const HeaderCellMenu = ({ column, enableAddColumn, enableColumnFreeze, isColumnP
3601
3602
  moreActions.length > 0;
3602
3603
  if (!hasAnyAction)
3603
3604
  return null;
3604
- return (jsxRuntime.jsx("div", { onClick: e => e.stopPropagation(), children: jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenu, { children: [jsxRuntime.jsx(primitives_DropdownMenu.DropdownMenuTrigger, { asChild: true, children: jsxRuntime.jsx(primitives_Button.Button, { variant: "ghost", size: "icon", className: "ml-1 size-7 shrink-0 text-muted-foreground data-[state=open]:bg-muted", "data-testid": "column-menu-button", children: jsxRuntime.jsx(ellipsis.Ellipsis, { className: "size-4" }) }) }), jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuContent, { align: "start", className: "w-48", children: [isSortable && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "ascending-column-menu-button", onClick: () => onSort?.(column.id, false), children: [jsxRuntime.jsx(ArrowUp, { className: "mr-2 size-4" }), "Ascending", currentSort === "asc" && (jsxRuntime.jsx(check.Check, { className: "ml-auto size-4 text-primary" }))] }), jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "descending-column-menu-button", onClick: () => onSort?.(column.id, true), children: [jsxRuntime.jsx(ArrowDown, { className: "mr-2 size-4" }), "Descending", currentSort === "desc" && (jsxRuntime.jsx(check.Check, { className: "ml-auto size-4 text-primary" }))] })] })), enableAddColumn && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "insert-right-column-menu-button", onClick: () => onAddColumn?.(columnIndex + 1), children: [jsxRuntime.jsx(Plus, { className: "mr-2 size-4" }), "Insert column right"] }), jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "insert-left-column-menu-button", onClick: () => onAddColumn?.(columnIndex), children: [jsxRuntime.jsx(Plus, { className: "mr-2 size-4" }), "Insert column left"] })] })), isHidable && onHideColumn && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "hide-column-menu-button", onClick: () => onHideColumn(column.id), children: [jsxRuntime.jsx(EyeOff, { className: "mr-2 size-4" }), "Hide column"] }) })), isDeletable && onDeleteColumn && (jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "delete-column-menu-button", onClick: () => onDeleteColumn(column.id), children: [jsxRuntime.jsx(Trash2, { className: "mr-2 size-4" }), "Delete column"] })), enableColumnFreeze && onTogglePin && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "freeze-unfreeze-column-menu-button", onClick: () => onTogglePin(column.id), children: [jsxRuntime.jsx(Pin, { className: "mr-2 size-4" }), isColumnPinned ? "Unfreeze column" : "Freeze column"] }) })), onMoveColumn && (canMoveLeft || canMoveRight) && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [canMoveLeft && (jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "move-column-left-menu-button", onClick: () => onMoveColumn(column.id, -1), children: [jsxRuntime.jsx(MoveLeft, { className: "mr-2 size-4" }), "Move column left"] })), canMoveRight && (jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "move-column-right-menu-button", onClick: () => onMoveColumn(column.id, 1), children: [jsxRuntime.jsx(MoveRight, { className: "mr-2 size-4" }), "Move column right"] }))] })), moreActions.length > 0 && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: moreActions.map(action => {
3605
+ return (jsxRuntime.jsx("div", { onClick: e => e.stopPropagation(), children: jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenu, { children: [jsxRuntime.jsx(primitives_DropdownMenu.DropdownMenuTrigger, { asChild: true, children: jsxRuntime.jsx(Button.Button, { variant: "ghost", size: "icon", icon: ellipsis.Ellipsis, "data-testid": "column-menu-button" }) }), jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuContent, { align: "start", className: "w-48", children: [isSortable && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "ascending-column-menu-button", onClick: () => onSort?.(column.id, false), children: [jsxRuntime.jsx(ArrowUp, { className: "mr-2 size-4" }), "Ascending", currentSort === "asc" && (jsxRuntime.jsx(check.Check, { className: "ml-auto size-4 text-primary" }))] }), jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "descending-column-menu-button", onClick: () => onSort?.(column.id, true), children: [jsxRuntime.jsx(ArrowDown, { className: "mr-2 size-4" }), "Descending", currentSort === "desc" && (jsxRuntime.jsx(check.Check, { className: "ml-auto size-4 text-primary" }))] })] })), enableAddColumn && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "insert-right-column-menu-button", onClick: () => onAddColumn?.(columnIndex + 1), children: [jsxRuntime.jsx(Plus, { className: "mr-2 size-4" }), "Insert column right"] }), jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "insert-left-column-menu-button", onClick: () => onAddColumn?.(columnIndex), children: [jsxRuntime.jsx(Plus, { className: "mr-2 size-4" }), "Insert column left"] })] })), isHidable && onHideColumn && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "hide-column-menu-button", onClick: () => onHideColumn(column.id), children: [jsxRuntime.jsx(EyeOff, { className: "mr-2 size-4" }), "Hide column"] }) })), isDeletable && onDeleteColumn && (jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "delete-column-menu-button", onClick: () => onDeleteColumn(column.id), children: [jsxRuntime.jsx(Trash2, { className: "mr-2 size-4" }), "Delete column"] })), enableColumnFreeze && onTogglePin && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "freeze-unfreeze-column-menu-button", onClick: () => onTogglePin(column.id), children: [jsxRuntime.jsx(Pin, { className: "mr-2 size-4" }), isColumnPinned ? "Unfreeze column" : "Freeze column"] }) })), onMoveColumn && (canMoveLeft || canMoveRight) && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [canMoveLeft && (jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "move-column-left-menu-button", onClick: () => onMoveColumn(column.id, -1), children: [jsxRuntime.jsx(MoveLeft, { className: "mr-2 size-4" }), "Move column left"] })), canMoveRight && (jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": "move-column-right-menu-button", onClick: () => onMoveColumn(column.id, 1), children: [jsxRuntime.jsx(MoveRight, { className: "mr-2 size-4" }), "Move column right"] }))] })), moreActions.length > 0 && (jsxRuntime.jsx(jsxRuntime.Fragment, { children: moreActions.map(action => {
3605
3606
  const ActionIcon = action.icon;
3606
3607
  return (jsxRuntime.jsxs(primitives_DropdownMenu.DropdownMenuItem, { "data-testid": `${action.type}-column-menu-button`, onClick: () => onMoreActionClick?.(action.type, column.id), children: [ActionIcon && jsxRuntime.jsx(ActionIcon, { className: "mr-2 size-4" }), action.label] }, action.type));
3607
3608
  }) }))] })] }) }));
3608
3609
  };
3609
3610
 
3610
- const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp, onSortingChange: onSortingChangeProp, enableSorting = true, enableURLSort = true, totalCount, pageSize = DEFAULT_PAGE_SIZE, currentPage: currentPageProp, onPageChange: onPageChangeProp, enableURLPagination = true, enableRowSelection: enableRowSelectionProp, selectedRowKeys, onRowSelect, bulkSelectAllRowsProps, enableColumnResize = true, enableColumnFreeze = true, columnPinning: columnPinningProp, onColumnPinningChange: onColumnPinningChangeProp, localStorageKeyPrefix, columnVisibility: columnVisibilityProp, onColumnVisibilityChange: onColumnVisibilityChangeProp, onColumnHide: onColumnHideProp, enableColumnReorder = false, columnOrder: columnOrderProp, onColumnOrderChange: onColumnOrderChangeProp, enableAddColumn = false, onColumnAdd, onColumnDelete, onColumnUpdate, onMoreActionClick, enableHeaderMenu, loading = false, bordered = true, className, emptyMessage, onRowClick, allowRowClick = true, }) => {
3611
+ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp, onSortingChange: onSortingChangeProp, enableSorting = false, enableURLSort = true, totalCount, pageSize = DEFAULT_PAGE_SIZE, currentPage: currentPageProp, onPageChange: onPageChangeProp, enableURLPagination = true, enableRowSelection: enableRowSelectionProp, selectedRowKeys, onRowSelect, bulkSelectAllRowsProps, enableColumnResize = true, enableColumnFreeze = true, columnPinning: columnPinningProp, onColumnPinningChange: onColumnPinningChangeProp, localStorageKeyPrefix, columnVisibility: columnVisibilityProp, onColumnVisibilityChange: onColumnVisibilityChangeProp, onColumnHide: onColumnHideProp, enableColumnReorder = false, columnOrder: columnOrderProp, onColumnOrderChange: onColumnOrderChangeProp, enableAddColumn = false, onColumnAdd, onColumnDelete, onColumnUpdate, onMoreActionClick, enableHeaderMenu, loading = false, bordered = true, className, emptyMessage, onRowClick, allowRowClick = true, }) => {
3611
3612
  const getRowId = React.useMemo(() => getRowIdProp ??
3612
3613
  ((row) => row.id), [getRowIdProp]);
3613
3614
  const { sorting, onSortingChange } = useTableSort({
@@ -3622,13 +3623,21 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
3622
3623
  onPageChange: onPageChangeProp,
3623
3624
  enableURLPagination,
3624
3625
  });
3625
- const { rowSelection, onRowSelectionChange, selectionColumn, enableRowSelection, } = useTableSelection({
3626
+ const { rowSelection, onRowSelectionChange: originalOnRowSelectionChange, selectionColumn, enableRowSelection, } = useTableSelection({
3626
3627
  enableRowSelection: enableRowSelectionProp,
3627
3628
  selectedRowKeys,
3628
3629
  onRowSelect,
3629
3630
  data,
3630
3631
  getRowId,
3631
3632
  });
3633
+ // Wrap selection change to detect manual deselection while in bulk mode
3634
+ const onRowSelectionChange = React.useCallback((updaterOrValue) => {
3635
+ if (bulkSelectedRef.current && !isAutoSelectingRef.current) {
3636
+ setBulkSelectedAllRowsInternal(false);
3637
+ bulkSelectAllRowsProps?.setBulkSelectedAllRows(false);
3638
+ }
3639
+ originalOnRowSelectionChange(updaterOrValue);
3640
+ }, [originalOnRowSelectionChange, bulkSelectAllRowsProps]);
3632
3641
  const { columnPinning, onColumnPinningChange, toggleColumnPin, isColumnPinned, } = useColumnPinning({
3633
3642
  enabled: enableColumnFreeze,
3634
3643
  columnPinning: columnPinningProp,
@@ -3701,7 +3710,63 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
3701
3710
  onColumnVisibilityChange,
3702
3711
  onColumnOrderChange,
3703
3712
  });
3704
- const isBulkAllSelected = !!bulkSelectAllRowsProps && table.getIsAllPageRowsSelected();
3713
+ const [bulkSelectedAllRows, setBulkSelectedAllRowsInternal] = React.useState(false);
3714
+ const isAutoSelectingRef = React.useRef(false);
3715
+ const bulkSelectedRef = React.useRef(false);
3716
+ bulkSelectedRef.current = bulkSelectedAllRows;
3717
+ // Auto-select all page rows when in bulk mode (handles page navigation)
3718
+ React.useEffect(() => {
3719
+ if (bulkSelectedAllRows) {
3720
+ isAutoSelectingRef.current = true;
3721
+ table.toggleAllPageRowsSelected(true);
3722
+ // Reset flag after React processes the state update
3723
+ requestAnimationFrame(() => {
3724
+ isAutoSelectingRef.current = false;
3725
+ });
3726
+ }
3727
+ }, [bulkSelectedAllRows, data]);
3728
+ const isAllPageRowsSelected = table.getIsAllPageRowsSelected();
3729
+ const showSelectAllCallout = !!bulkSelectAllRowsProps &&
3730
+ isAllPageRowsSelected &&
3731
+ pageCount > 1 &&
3732
+ !bulkSelectedAllRows;
3733
+ const showAllSelectedCallout = !!bulkSelectAllRowsProps && bulkSelectedAllRows;
3734
+ const handleBulkSelectAll = () => {
3735
+ setBulkSelectedAllRowsInternal(true);
3736
+ bulkSelectAllRowsProps?.setBulkSelectedAllRows(true);
3737
+ };
3738
+ const handleClearBulkSelection = () => {
3739
+ setBulkSelectedAllRowsInternal(false);
3740
+ bulkSelectAllRowsProps?.setBulkSelectedAllRows(false);
3741
+ table.toggleAllPageRowsSelected(false);
3742
+ onRowSelect?.([], []);
3743
+ };
3744
+ const scrollContainerRef = React.useRef(null);
3745
+ const [scrollState, setScrollState] = React.useState({
3746
+ scrolledStart: false,
3747
+ scrolledEnd: false,
3748
+ });
3749
+ React.useEffect(() => {
3750
+ const el = scrollContainerRef.current;
3751
+ if (!el)
3752
+ return;
3753
+ const update = () => {
3754
+ const { scrollLeft, scrollWidth, clientWidth } = el;
3755
+ const maxScroll = scrollWidth - clientWidth;
3756
+ setScrollState({
3757
+ scrolledStart: scrollLeft > 0,
3758
+ scrolledEnd: scrollLeft < maxScroll - 1,
3759
+ });
3760
+ };
3761
+ update();
3762
+ el.addEventListener("scroll", update, { passive: true });
3763
+ const resizeObserver = new ResizeObserver(update);
3764
+ resizeObserver.observe(el);
3765
+ return () => {
3766
+ el.removeEventListener("scroll", update);
3767
+ resizeObserver.disconnect();
3768
+ };
3769
+ }, []);
3705
3770
  const handleSort = (columnId, desc) => {
3706
3771
  const isSameSort = sorting.length > 0 &&
3707
3772
  sorting[0].id === columnId &&
@@ -3713,8 +3778,7 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
3713
3778
  onSortingChange([{ id: columnId, desc }]);
3714
3779
  }
3715
3780
  };
3716
- return (jsxRuntime.jsxs("div", { className: utils.cn("relative flex min-h-0 w-full flex-col", className), children: [loading && jsxRuntime.jsx(LoadingOverlay, {}), bulkSelectAllRowsProps &&
3717
- (data.length !== totalCount || isBulkAllSelected) && (jsxRuntime.jsx(BulkSelectCallout, { bulkSelectAllRowsProps: bulkSelectAllRowsProps, isAllPageRowsSelected: table.getIsAllPageRowsSelected(), isBulkAllSelected: isBulkAllSelected })), jsxRuntime.jsx("div", { className: utils.cn("min-h-0 flex-1 overflow-auto", bordered && "rounded-lg border"), children: jsxRuntime.jsxs(primitives_Table.Table, { children: [jsxRuntime.jsx(primitives_Table.TableHeader, { className: "sticky top-0 z-20 bg-muted", children: table.getHeaderGroups().map(headerGroup => {
3781
+ return (jsxRuntime.jsxs("div", { className: utils.cn("relative flex min-h-0 w-full flex-col", className), children: [loading && jsxRuntime.jsx(LoadingOverlay, {}), (showSelectAllCallout || showAllSelectedCallout) && (jsxRuntime.jsx(BulkSelectCallout, { bulkSelectAllRowsProps: bulkSelectAllRowsProps, isAllPageRowsSelected: isAllPageRowsSelected, isBulkAllSelected: bulkSelectedAllRows, onBulkSelectAll: handleBulkSelectAll, onClearBulkSelection: handleClearBulkSelection })), jsxRuntime.jsx("div", { ref: scrollContainerRef, "data-scrolled-start": scrollState.scrolledStart || undefined, "data-scrolled-end": scrollState.scrolledEnd || undefined, className: utils.cn("group/scroll min-h-0 flex-1 overflow-auto", bordered && "rounded-lg border"), children: jsxRuntime.jsxs(primitives_Table.Table, { children: [jsxRuntime.jsx(primitives_Table.TableHeader, { className: "sticky top-0 z-20 bg-muted", children: table.getHeaderGroups().map(headerGroup => {
3718
3782
  const dataHeaders = headerGroup.headers.filter(h => h.column.id !== "_selection");
3719
3783
  const totalDataSize = dataHeaders.reduce((sum, h) => sum + h.getSize(), 0);
3720
3784
  return (jsxRuntime.jsx(primitives_Table.TableRow, { className: "hover:bg-muted", children: headerGroup.headers.map((header, headerIndex) => {
@@ -3722,7 +3786,9 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
3722
3786
  const isSelectionCol = header.column.id === "_selection";
3723
3787
  const columnIndexInData = dataHeaders.findIndex(h => h.id === header.id);
3724
3788
  return (jsxRuntime.jsxs(primitives_Table.TableHead, { className: utils.cn("group/head relative", header.column.getCanSort() &&
3725
- "cursor-pointer select-none", isPinned && "sticky z-10 bg-muted"), style: {
3789
+ "cursor-pointer select-none", isSelectionCol && "!pe-2", isPinned && "sticky z-10 bg-muted", isPinned === "left" &&
3790
+ "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" &&
3791
+ "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: {
3726
3792
  width: selectionColumn && isSelectionCol
3727
3793
  ? 0
3728
3794
  : selectionColumn
@@ -3747,13 +3813,15 @@ const DataTable = ({ columns, data, getRowId: getRowIdProp, sorting: sortingProp
3747
3813
  ? (colId, dir) => moveColumn(colId, dir)
3748
3814
  : undefined, onMoreActionClick: onMoreActionClick }))] })), enableColumnResize && jsxRuntime.jsx(ResizeHandle, { header: header })] }, header.id));
3749
3815
  }) }, headerGroup.id));
3750
- }) }), jsxRuntime.jsx(primitives_Table.TableBody, { className: loading ? "opacity-50" : undefined, children: table.getRowModel().rows.length > 0 ? (table.getRowModel().rows.map(row => (jsxRuntime.jsx(primitives_Table.TableRow, { "data-state": row.getIsSelected() ? "selected" : undefined, className: utils.cn("group", allowRowClick && onRowClick && "cursor-pointer"), onClick: allowRowClick && onRowClick
3816
+ }) }), jsxRuntime.jsx(primitives_Table.TableBody, { className: loading ? "opacity-50" : undefined, children: table.getRowModel().rows.length > 0 ? (table.getRowModel().rows.map(row => (jsxRuntime.jsx(primitives_Table.TableRow, { "data-state": row.getIsSelected() ? "selected" : undefined, className: utils.cn("group data-[state=selected]:bg-info", allowRowClick && onRowClick && "cursor-pointer"), onClick: allowRowClick && onRowClick
3751
3817
  ? event => onRowClick(event, row.original, row.index)
3752
3818
  : undefined, children: row.getVisibleCells().map(cell => {
3753
3819
  const isPinned = cell.column.getIsPinned();
3754
3820
  const isSelCell = cell.column.id === "_selection";
3755
- return (jsxRuntime.jsx(primitives_Table.TableCell, { className: utils.cn(isPinned &&
3756
- "sticky z-10 bg-background group-data-[state=selected]:bg-muted"), style: {
3821
+ return (jsxRuntime.jsx(primitives_Table.TableCell, { className: utils.cn(isSelCell && "!pe-2", isPinned &&
3822
+ "sticky z-10 bg-background group-data-[state=selected]:bg-info", isPinned === "left" &&
3823
+ "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" &&
3824
+ "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: {
3757
3825
  width: selectionColumn && isSelCell
3758
3826
  ? 0
3759
3827
  : cell.column.getSize(),
@@ -3781,4 +3849,4 @@ exports.useColumnVisibility = useColumnVisibility;
3781
3849
  exports.useTablePagination = useTablePagination;
3782
3850
  exports.useTableSelection = useTableSelection;
3783
3851
  exports.useTableSort = useTableSort;
3784
- //# sourceMappingURL=DataTable-Cw0ly-hT.js.map
3852
+ //# sourceMappingURL=DataTable-DhWDzUWw.js.map