react-kd-grid 5.0.2 → 5.0.4

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.
Files changed (82) hide show
  1. package/dist/components/SearchToolbar.d.ts +6 -2
  2. package/dist/components/toolbar/BulkActionPopover.d.ts +17 -0
  3. package/dist/components/toolbar/ColumnVisibilityPopover.d.ts +35 -0
  4. package/dist/components/toolbar/ExportPopover.d.ts +18 -0
  5. package/dist/components/toolbar/FilterPopover.d.ts +29 -0
  6. package/dist/components/toolbar/SettingsPopover.d.ts +17 -0
  7. package/dist/components/ui/Button.d.ts +11 -0
  8. package/dist/components/ui/Checkbox.d.ts +9 -0
  9. package/dist/components/ui/CustomSelect.d.ts +14 -0
  10. package/dist/components/ui/Popover.d.ts +17 -0
  11. package/dist/components/ui/TextField.d.ts +12 -0
  12. package/dist/constants/toolbar.d.ts +17 -0
  13. package/dist/core/GridBodyContainer.d.ts +83 -0
  14. package/dist/core/GridFooterContainer.d.ts +23 -0
  15. package/dist/core/GridToolbarContainer.d.ts +48 -0
  16. package/dist/grid/components/Filters/BooleanFilter.d.ts +7 -0
  17. package/dist/grid/components/Filters/DateFilter.d.ts +9 -0
  18. package/dist/grid/components/Filters/FilterContent.d.ts +9 -0
  19. package/dist/grid/components/Filters/FilterPopup.d.ts +2 -0
  20. package/dist/grid/components/Filters/MultiselectFilter.d.ts +10 -0
  21. package/dist/grid/components/Filters/NumberFilter.d.ts +9 -0
  22. package/dist/grid/components/Filters/TextFilter.d.ts +8 -0
  23. package/dist/grid/components/Filters/index.d.ts +6 -0
  24. package/dist/grid/components/Popovers/BulkActionPopover.d.ts +17 -0
  25. package/dist/grid/components/Popovers/ColumnVisibilityPopover.d.ts +35 -0
  26. package/dist/grid/components/Popovers/ExportPopover.d.ts +18 -0
  27. package/dist/grid/components/Popovers/FilterPopover.d.ts +29 -0
  28. package/dist/grid/components/Popovers/SettingsPopover.d.ts +17 -0
  29. package/dist/grid/components/Shared/CellEditor.d.ts +23 -0
  30. package/dist/grid/components/Shared/ColumnFilterSelector.d.ts +18 -0
  31. package/dist/grid/components/Shared/FooterAggregate.d.ts +16 -0
  32. package/dist/grid/components/Shared/GridHeader.d.ts +39 -0
  33. package/dist/grid/components/Shared/GridRows.d.ts +53 -0
  34. package/dist/grid/components/Shared/GroupBar.d.ts +12 -0
  35. package/dist/grid/components/Shared/GroupHeader.d.ts +29 -0
  36. package/dist/grid/components/Shared/LicenseError.d.ts +9 -0
  37. package/dist/grid/components/Shared/NoDataMessage.d.ts +11 -0
  38. package/dist/grid/components/Shared/PaginationControls.d.ts +18 -0
  39. package/dist/grid/components/Shared/RowContextMenu.d.ts +18 -0
  40. package/dist/grid/components/Toolbar/Toolbar.d.ts +70 -0
  41. package/dist/grid/constants/index.d.ts +1 -0
  42. package/dist/grid/constants/toolbar.d.ts +17 -0
  43. package/dist/grid/core/DataGrid.d.ts +3 -0
  44. package/dist/grid/core/GridBodyContainer.d.ts +83 -0
  45. package/dist/grid/core/GridFooterContainer.d.ts +23 -0
  46. package/dist/grid/core/GridToolbarContainer.d.ts +48 -0
  47. package/dist/grid/hooks/toolbar/useColumnDnD.d.ts +28 -0
  48. package/dist/grid/hooks/toolbar/useToolbarMenus.d.ts +29 -0
  49. package/dist/grid/hooks/useAdvancedFiltering.d.ts +18 -0
  50. package/dist/grid/hooks/useCellSelection.d.ts +67 -0
  51. package/dist/grid/hooks/useColumnState.d.ts +52 -0
  52. package/dist/grid/hooks/useDataWorker.d.ts +11 -0
  53. package/dist/grid/hooks/useEditingCell.d.ts +49 -0
  54. package/dist/grid/hooks/useExport.d.ts +14 -0
  55. package/dist/grid/hooks/useGridDataMaps.d.ts +17 -0
  56. package/dist/grid/hooks/useGridMethods.d.ts +20 -0
  57. package/dist/grid/hooks/useGrouping.d.ts +28 -0
  58. package/dist/grid/hooks/useHorizontalVirtualization.d.ts +18 -0
  59. package/dist/grid/hooks/useInfiniteScroll.d.ts +31 -0
  60. package/dist/grid/hooks/useLoadingBar.d.ts +21 -0
  61. package/dist/grid/hooks/usePagination.d.ts +28 -0
  62. package/dist/grid/hooks/useScrollSync.d.ts +29 -0
  63. package/dist/grid/hooks/useSelection.d.ts +13 -0
  64. package/dist/grid/hooks/useVirtualization.d.ts +17 -0
  65. package/dist/grid/types.d.ts +570 -0
  66. package/dist/grid/utils/dateUtils.d.ts +16 -0
  67. package/dist/grid/utils/highlightText.d.ts +15 -0
  68. package/dist/grid/utils/license.d.ts +3 -0
  69. package/dist/hooks/toolbar/useColumnDnD.d.ts +28 -0
  70. package/dist/hooks/toolbar/useToolbarMenus.d.ts +29 -0
  71. package/dist/hooks/useColumnState.d.ts +8 -1
  72. package/dist/hooks/useGridDataMaps.d.ts +17 -0
  73. package/dist/hooks/useGridMethods.d.ts +20 -0
  74. package/dist/hooks/useHorizontalVirtualization.d.ts +18 -0
  75. package/dist/icons/index.d.ts +1 -0
  76. package/dist/index.d.ts +21 -12
  77. package/dist/index.esm.js +1 -1
  78. package/dist/index.js +1 -1
  79. package/dist/styles.css +1 -0
  80. package/dist/types.d.ts +0 -22
  81. package/dist/utils/theme.d.ts +7 -0
  82. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { ReactNode, ChangeEvent } from "react";
2
- import type { Density, BulkActionOption, SavedFilter, ExportFormat } from "../types";
1
+ import { ChangeEvent, ReactNode } from "react";
2
+ import type { BulkActionOption, Density, ExportFormat, SavedFilter } from "../types";
3
3
  interface ColumnVisibility {
4
4
  [columnKey: string]: boolean;
5
5
  }
@@ -59,6 +59,10 @@ interface SearchToolbarProps {
59
59
  customLeftContent?: ReactNode;
60
60
  customRightContent?: ReactNode;
61
61
  }
62
+ /**
63
+ * Optimized SearchToolbar using React.memo to prevent unnecessary re-renders
64
+ * as users type in the global search or modify filters.
65
+ */
62
66
  export declare const SearchToolbar: import("react").MemoExoticComponent<{
63
67
  ({ globalFilter, filteredDataLength, totalDataLength, selectedRowsCount, selectedRows, showExport, showColumnToggle, showBulkActions, columns, columnVisibility, columnFilters, bulkActions, exportOptions, onGlobalFilterChange, onClearFilters, onColumnVisibilityChange, onColumnFilter, onResetColumns, columnOrder, onColumnOrderChange, pinnedColumns, onScrollToColumn, density, onDensityChange, showDensityControl, customLeftContent, customRightContent, }: SearchToolbarProps): import("react/jsx-runtime").JSX.Element;
64
68
  displayName: string;
@@ -0,0 +1,17 @@
1
+ import { BulkActionOption } from "../../types";
2
+ interface BulkActionPopoverProps {
3
+ isOpen: boolean;
4
+ anchorEl: HTMLElement | null;
5
+ onClose: () => void;
6
+ bulkActions: BulkActionOption[];
7
+ selectedRowsCount: number;
8
+ onBulkAction: (action: BulkActionOption) => void;
9
+ }
10
+ /**
11
+ * BulkActionPopover
12
+ *
13
+ * Displays a menu of actions that can be globally applied to all currently selected grid rows.
14
+ * Features customizable icons and labels per action.
15
+ */
16
+ export declare const BulkActionPopover: ({ isOpen, anchorEl, onClose, bulkActions, selectedRowsCount, onBulkAction, }: BulkActionPopoverProps) => import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -0,0 +1,35 @@
1
+ import React from "react";
2
+ interface ColumnDefinition {
3
+ key: string;
4
+ header: string;
5
+ }
6
+ interface ColumnVisibilityPopoverProps {
7
+ isOpen: boolean;
8
+ anchorEl: HTMLElement | null;
9
+ onClose: () => void;
10
+ filteredColumns: ColumnDefinition[];
11
+ columnVisibility: Record<string, boolean>;
12
+ onColumnToggle: (columnKey: string) => void;
13
+ columnSearch: string;
14
+ onColumnSearchChange: (value: string) => void;
15
+ onResetColumns: () => void;
16
+ onScrollToColumn?: (columnKey: string) => void;
17
+ onColumnVisibilityChange?: (columnKey: string, visible: boolean) => void;
18
+ draggingKey: string | null;
19
+ dragOver: {
20
+ key: string;
21
+ position: "before" | "after";
22
+ } | null;
23
+ handleDragStart: (columnKey: string, e: React.DragEvent) => void;
24
+ handleDragOver: (targetKey: string, e: React.DragEvent) => void;
25
+ handleDrop: (targetKey: string) => void;
26
+ handleDragEnd: () => void;
27
+ }
28
+ /**
29
+ * ColumnVisibilityPopover
30
+ *
31
+ * Provides the UI for toggling column visibility and reordering columns via drag-and-drop.
32
+ * Includes column search and reset functionality.
33
+ */
34
+ export declare const ColumnVisibilityPopover: ({ isOpen, anchorEl, onClose, filteredColumns, columnVisibility, onColumnToggle, columnSearch, onColumnSearchChange, onResetColumns, onScrollToColumn, onColumnVisibilityChange, draggingKey, dragOver, handleDragStart, handleDragOver, handleDrop, handleDragEnd, }: ColumnVisibilityPopoverProps) => import("react/jsx-runtime").JSX.Element;
35
+ export {};
@@ -0,0 +1,18 @@
1
+ import { ExportFormat } from "../../types";
2
+ interface ExportPopoverProps {
3
+ isOpen: boolean;
4
+ anchorEl: HTMLElement | null;
5
+ onClose: () => void;
6
+ exportFormats: ExportFormat[];
7
+ filteredDataLength: number;
8
+ selectedRowsCount: number;
9
+ onExport: (format: ExportFormat, exportSelected: boolean) => void;
10
+ }
11
+ /**
12
+ * ExportPopover
13
+ *
14
+ * Provides the UI for exporting grid data in various formats (CSV, JSON, Excel).
15
+ * Allows exporting either all filtered data or only the currently selected rows.
16
+ */
17
+ export declare const ExportPopover: ({ isOpen, anchorEl, onClose, exportFormats, filteredDataLength, selectedRowsCount, onExport, }: ExportPopoverProps) => import("react/jsx-runtime").JSX.Element;
18
+ export {};
@@ -0,0 +1,29 @@
1
+ interface ColumnDefinition {
2
+ key: string;
3
+ header: string;
4
+ visible?: boolean;
5
+ filterOptions?: Array<{
6
+ label: string;
7
+ value: string | number;
8
+ }>;
9
+ filterType?: "text" | "select" | "multiselect";
10
+ filterable?: any;
11
+ }
12
+ interface FilterPopoverProps {
13
+ isOpen: boolean;
14
+ anchorEl: HTMLElement | null;
15
+ onClose: () => void;
16
+ onClearFilters?: () => void;
17
+ columns: ColumnDefinition[];
18
+ columnFilters: Record<string, any>;
19
+ onColumnFilter?: (columnKey: string, filter: any) => void;
20
+ hasFilterableColumns: boolean;
21
+ }
22
+ /**
23
+ * FilterPopover
24
+ *
25
+ * Provides the UI for managing column-specific filters.
26
+ * Includes a search/select interface for each filterable column and a clear all action.
27
+ */
28
+ export declare const FilterPopover: ({ isOpen, anchorEl, onClose, onClearFilters, columns, columnFilters, onColumnFilter, hasFilterableColumns, }: FilterPopoverProps) => import("react/jsx-runtime").JSX.Element;
29
+ export {};
@@ -0,0 +1,17 @@
1
+ import { Density } from "../../types";
2
+ interface SettingsPopoverProps {
3
+ isOpen: boolean;
4
+ anchorEl: HTMLElement | null;
5
+ onClose: () => void;
6
+ density: Density;
7
+ onDensityChange?: (density: Density) => void;
8
+ showDensityControl?: boolean;
9
+ }
10
+ /**
11
+ * SettingsPopover
12
+ *
13
+ * Provides a menu for general grid configurations.
14
+ * Currently supports Row Density selection and is easily extensible for future settings.
15
+ */
16
+ export declare const SettingsPopover: ({ isOpen, anchorEl, onClose, density, onDensityChange, showDensityControl, }: SettingsPopoverProps) => import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -0,0 +1,11 @@
1
+ import { ButtonHTMLAttributes } from "react";
2
+ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3
+ variant?: "primary" | "secondary" | "outline" | "ghost" | "danger";
4
+ size?: "sm" | "md" | "lg";
5
+ isLoading?: boolean;
6
+ }
7
+ /**
8
+ * Enterprise-grade Button component with built-in loading states and variant styling.
9
+ */
10
+ export declare const Button: ({ children, variant, size, isLoading, className, disabled, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,9 @@
1
+ import { InputHTMLAttributes } from "react";
2
+ interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "type"> {
3
+ label?: string;
4
+ }
5
+ /**
6
+ * Enterprise-grade Checkbox component for consistent styling.
7
+ */
8
+ export declare const Checkbox: ({ label, className, id, ...props }: CheckboxProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,14 @@
1
+ interface Option {
2
+ label: string;
3
+ value: string;
4
+ }
5
+ interface CustomSelectProps {
6
+ options: Option[];
7
+ value?: string;
8
+ placeholder?: string;
9
+ onChange: (value: string) => void;
10
+ searchable?: boolean;
11
+ className?: string;
12
+ }
13
+ export declare const CustomSelect: ({ options, value, placeholder, onChange, searchable, className, }: CustomSelectProps) => import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import { type Placement } from "@floating-ui/react";
3
+ interface PopoverProps {
4
+ open: boolean;
5
+ anchorEl: HTMLElement | null;
6
+ onClose: () => void;
7
+ placement?: Placement;
8
+ offset?: number;
9
+ sameWidth?: boolean;
10
+ maxHeight?: number | string;
11
+ zIndex?: number;
12
+ className?: string;
13
+ children: React.ReactNode;
14
+ shouldIgnoreClose?: (target: Node) => boolean;
15
+ }
16
+ export declare const Popover: React.FC<PopoverProps>;
17
+ export default Popover;
@@ -0,0 +1,12 @@
1
+ import React, { InputHTMLAttributes } from "react";
2
+ interface TextFieldProps extends InputHTMLAttributes<HTMLInputElement> {
3
+ label?: string;
4
+ error?: string;
5
+ helperText?: string;
6
+ icon?: React.ReactNode;
7
+ }
8
+ /**
9
+ * Enterprise-grade TextField component with support for labels, errors, and icons.
10
+ */
11
+ export declare const TextField: ({ label, error, helperText, icon, className, id, ...props }: TextFieldProps) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,17 @@
1
+ import { ExportFormat, Density } from "../types";
2
+ /**
3
+ * Mappings for Export formats to their respective icons.
4
+ */
5
+ export declare const getExportIcon: (format: ExportFormat) => import("react/jsx-runtime").JSX.Element;
6
+ /**
7
+ * Mappings for Bulk Action IDs to their respective icons.
8
+ */
9
+ export declare const getBulkActionIcon: (action: string) => import("react/jsx-runtime").JSX.Element;
10
+ /**
11
+ * Human-readable labels for export formats.
12
+ */
13
+ export declare const getFormatLabel: (format: ExportFormat) => "CSV" | "JSON" | "Excel";
14
+ /**
15
+ * Default density options for the grid.
16
+ */
17
+ export declare const DENSITY_OPTIONS: Density[];
@@ -0,0 +1,83 @@
1
+ import React, { RefObject } from "react";
2
+ import type { GridColumn, GridRow, SortConfig, ColumnFilterValue } from "../types";
3
+ interface GridBodyContainerProps {
4
+ scrollRef: RefObject<HTMLDivElement>;
5
+ flatRows: any[];
6
+ columnsWithWidths: any[];
7
+ visibleColumns: any[];
8
+ totalWidth: number;
9
+ selectable: boolean;
10
+ dataToDisplay: any[];
11
+ pinnedAll: any[];
12
+ effectivePinnedColumns: Set<string>;
13
+ hvPadLeftMemo: number;
14
+ hvPadRightMemo: number;
15
+ resolvedHeaderHeight: number;
16
+ sortConfig: SortConfig;
17
+ columnFilters: Record<string, ColumnFilterValue | null>;
18
+ selectedRows: Set<string | number>;
19
+ data: any[];
20
+ handleSort: (key: string) => void;
21
+ setColumnFilter: (key: string, filter: ColumnFilterValue | null) => void;
22
+ handleSelectAll: (checked: boolean) => void;
23
+ handleColumnResize: (columnKey: string, width: number) => void;
24
+ handleColumnPin: (columnKey: string, pinned: boolean) => void;
25
+ addGroupKey: (key: string) => void;
26
+ removeGroupKey: (key: string) => void;
27
+ handleGroupBy: (columnKey: string) => void;
28
+ autosizeColumn: (columnKey: string) => void;
29
+ autosizeAllColumns: () => void;
30
+ resetColumns: () => void;
31
+ columnOrder: string[];
32
+ setColumnOrder: React.Dispatch<React.SetStateAction<string[]>>;
33
+ pagination: any;
34
+ minResizeWidth?: number;
35
+ effectiveVirtualized: boolean;
36
+ virtualizedRange: {
37
+ offsetY: number;
38
+ startIndex: number;
39
+ endIndex: number;
40
+ };
41
+ resolvedRowHeight: number;
42
+ visibleData: any[];
43
+ isRowSelectable?: (row: GridRow) => boolean;
44
+ handleRowSelect: (rowId: string | number, isSelected: boolean) => void;
45
+ rowStyle?: any;
46
+ globalFilter: string;
47
+ onContextMenu?: any;
48
+ onRowDoubleClick?: any;
49
+ onRowClick?: any;
50
+ onCellClick?: any;
51
+ onCellContextMenu?: any;
52
+ isCellFocused: (rowId: string | number, columnKey: string) => boolean;
53
+ isCellSelected: (rowId: string | number, columnKey: string) => boolean;
54
+ handleCellMouseDown: any;
55
+ handleCellMouseEnter: any;
56
+ contextMenuItems?: any;
57
+ getRowId?: any;
58
+ isEditing: (rowId: string | number, columnKey: string) => boolean;
59
+ startEdit: any;
60
+ commitEdit: any;
61
+ cancelEdit: any;
62
+ editingCell: any;
63
+ safeGetRowId: (r: any) => string | number;
64
+ toggleGroupExpansion: (groupKey: string) => void;
65
+ containerWidth: number;
66
+ groupConfig: any;
67
+ columns: GridColumn[];
68
+ renderGroupActions?: any;
69
+ groupFooterVariant: "chips" | "columns";
70
+ isValidLicense: boolean;
71
+ infiniteScroll: any;
72
+ sentinelRef: RefObject<HTMLDivElement>;
73
+ loading: boolean;
74
+ showLoader: boolean;
75
+ finishingLoader: boolean;
76
+ loaderTop: number;
77
+ noDataMessage?: string;
78
+ noDataRenderer?: any;
79
+ handleScroll: (e: React.UIEvent<HTMLDivElement>) => void;
80
+ cellSelectionEnabled: boolean;
81
+ }
82
+ export declare const GridBodyContainer: React.FC<GridBodyContainerProps>;
83
+ export {};
@@ -0,0 +1,23 @@
1
+ import React, { RefObject } from "react";
2
+ interface GridFooterContainerProps {
3
+ hasFooterAggregate: boolean;
4
+ footerScrollRef: RefObject<HTMLDivElement>;
5
+ forwardWheelToBody: (e: React.WheelEvent) => void;
6
+ totalWidth: number;
7
+ selectable: boolean;
8
+ resolvedRowHeight: number;
9
+ columnsWithWidths: any[];
10
+ flatRows: any[];
11
+ effectivePinnedColumns: Set<string>;
12
+ infiniteScroll: any;
13
+ paginationConfig: any;
14
+ isServerLoading: boolean;
15
+ selectedRowsCount: number;
16
+ data: any[];
17
+ filteredData: any[];
18
+ pagination: any;
19
+ handlePageChange: (page: number) => void;
20
+ handlePageSizeChange: (pageSize: number) => void;
21
+ }
22
+ export declare const GridFooterContainer: React.FC<GridFooterContainerProps>;
23
+ export {};
@@ -0,0 +1,48 @@
1
+ import React, { ChangeEvent } from "react";
2
+ import type { GridColumn, ColumnFilterValue, Density } from "../types";
3
+ interface GridToolbarContainerProps {
4
+ showToolbar: boolean;
5
+ filterable: boolean;
6
+ globalFilter: string;
7
+ filteredDataLength: number;
8
+ totalDataLength: number;
9
+ paginationMode?: "client" | "server";
10
+ selectedRowsCount: number;
11
+ showExport: boolean;
12
+ columns: GridColumn[];
13
+ columnFilters: Record<string, ColumnFilterValue | null>;
14
+ columnVisibility: Record<string, boolean>;
15
+ onResetColumns: () => void;
16
+ exportOptions: {
17
+ enabled: boolean;
18
+ formats: any[];
19
+ filename: string;
20
+ onExport: (format: any, exportSelected: boolean) => void;
21
+ };
22
+ toolbarLeft?: React.ReactNode;
23
+ toolbarRight?: React.ReactNode;
24
+ onGlobalFilterChange: (e: ChangeEvent<HTMLInputElement>) => void;
25
+ onClearFilters: () => void;
26
+ onColumnFilter: (columnKey: string, filter: ColumnFilterValue | null) => void;
27
+ onColumnVisibilityChange: (columnKey: string, visible: boolean) => void;
28
+ columnOrder: string[];
29
+ onColumnOrderChange: (order: string[]) => void;
30
+ pinnedColumns: Set<string>;
31
+ onScrollToColumn: (columnKey: string) => void;
32
+ density: Density;
33
+ onDensityChange: (density: Density) => void;
34
+ showDensityControl: boolean;
35
+ groupable: boolean;
36
+ groupBarVisibility: "auto" | "visible" | "hidden";
37
+ groupConfig: {
38
+ columnKeys: string[];
39
+ expanded: Set<string>;
40
+ };
41
+ removeGroupKey: (key: string) => void;
42
+ setGroupKeys: (keys: string[]) => void;
43
+ addGroupKey: (key: string) => void;
44
+ collapseAllGroups: () => void;
45
+ expandAllGroups: () => void;
46
+ }
47
+ export declare const GridToolbarContainer: React.FC<GridToolbarContainerProps>;
48
+ export {};
@@ -0,0 +1,7 @@
1
+ import { ColumnFilterValue } from "../../types";
2
+ interface BooleanFilterProps {
3
+ value: ColumnFilterValue | null;
4
+ onChange: (value: ColumnFilterValue | null) => void;
5
+ }
6
+ export declare const BooleanFilter: ({ value, onChange }: BooleanFilterProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,9 @@
1
+ import { ColumnFilterValue } from "../../types";
2
+ interface DateFilterProps {
3
+ value: ColumnFilterValue | null;
4
+ onChange: (value: ColumnFilterValue | null) => void;
5
+ min?: number;
6
+ max?: number;
7
+ }
8
+ export declare const DateFilter: ({ value, onChange, min, max }: DateFilterProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,9 @@
1
+ import { ColumnFilterValue, GridColumn, GridRow } from "../../types";
2
+ interface FilterContentProps {
3
+ column: GridColumn;
4
+ data: GridRow[];
5
+ value: ColumnFilterValue | null;
6
+ onChange: (val: ColumnFilterValue | null) => void;
7
+ }
8
+ export declare const FilterContent: ({ column, data, value, onChange }: FilterContentProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,2 @@
1
+ import { FilterPopupProps } from "../../types";
2
+ export declare const FilterPopup: ({ column, data, currentFilter, onApplyFilter, onClose, position, autoApply, }: FilterPopupProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { ColumnFilterValue, FilterOption, GridRow } from "../../types";
2
+ interface MultiselectFilterProps {
3
+ value: ColumnFilterValue | null;
4
+ onChange: (value: ColumnFilterValue | null) => void;
5
+ options?: FilterOption[];
6
+ data: GridRow[];
7
+ columnKey: string;
8
+ }
9
+ export declare const MultiselectFilter: ({ value, onChange, options, data, columnKey, }: MultiselectFilterProps) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,9 @@
1
+ import { ColumnFilterValue } from "../../types";
2
+ interface NumberFilterProps {
3
+ value: ColumnFilterValue | null;
4
+ onChange: (value: ColumnFilterValue | null) => void;
5
+ min?: number;
6
+ max?: number;
7
+ }
8
+ export declare const NumberFilter: ({ value, onChange, min, max, }: NumberFilterProps) => import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,8 @@
1
+ import { ColumnFilterValue } from "../../types";
2
+ interface TextFilterProps {
3
+ value: ColumnFilterValue | null;
4
+ onChange: (value: ColumnFilterValue | null) => void;
5
+ placeholder?: string;
6
+ }
7
+ export declare const TextFilter: ({ value, onChange, placeholder, }: TextFilterProps) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,6 @@
1
+ export { TextFilter } from './TextFilter';
2
+ export { NumberFilter } from './NumberFilter';
3
+ export { DateFilter } from './DateFilter';
4
+ export { MultiselectFilter } from './MultiselectFilter';
5
+ export { BooleanFilter } from './BooleanFilter';
6
+ export { FilterPopup } from './FilterPopup';
@@ -0,0 +1,17 @@
1
+ import { BulkActionOption } from "../../types";
2
+ interface BulkActionPopoverProps {
3
+ isOpen: boolean;
4
+ anchorEl: HTMLElement | null;
5
+ onClose: () => void;
6
+ bulkActions: BulkActionOption[];
7
+ selectedRowsCount: number;
8
+ onBulkAction: (action: BulkActionOption) => void;
9
+ }
10
+ /**
11
+ * BulkActionPopover
12
+ *
13
+ * Displays a menu of actions that can be globally applied to all currently selected grid rows.
14
+ * Features customizable icons and labels per action.
15
+ */
16
+ export declare const BulkActionPopover: ({ isOpen, anchorEl, onClose, bulkActions, selectedRowsCount, onBulkAction, }: BulkActionPopoverProps) => import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -0,0 +1,35 @@
1
+ import React from "react";
2
+ interface ColumnDefinition {
3
+ key: string;
4
+ header: string;
5
+ }
6
+ interface ColumnVisibilityPopoverProps {
7
+ isOpen: boolean;
8
+ anchorEl: HTMLElement | null;
9
+ onClose: () => void;
10
+ filteredColumns: ColumnDefinition[];
11
+ columnVisibility: Record<string, boolean>;
12
+ onColumnToggle: (columnKey: string) => void;
13
+ columnSearch: string;
14
+ onColumnSearchChange: (value: string) => void;
15
+ onResetColumns: () => void;
16
+ onScrollToColumn?: (columnKey: string) => void;
17
+ onColumnVisibilityChange?: (columnKey: string, visible: boolean) => void;
18
+ draggingKey: string | null;
19
+ dragOver: {
20
+ key: string;
21
+ position: "before" | "after";
22
+ } | null;
23
+ handleDragStart: (columnKey: string, e: React.DragEvent) => void;
24
+ handleDragOver: (targetKey: string, e: React.DragEvent) => void;
25
+ handleDrop: (targetKey: string) => void;
26
+ handleDragEnd: () => void;
27
+ }
28
+ /**
29
+ * ColumnVisibilityPopover
30
+ *
31
+ * Provides the UI for toggling column visibility and reordering columns via drag-and-drop.
32
+ * Includes column search and reset functionality.
33
+ */
34
+ export declare const ColumnVisibilityPopover: ({ isOpen, anchorEl, onClose, filteredColumns, columnVisibility, onColumnToggle, columnSearch, onColumnSearchChange, onResetColumns, onScrollToColumn, onColumnVisibilityChange, draggingKey, dragOver, handleDragStart, handleDragOver, handleDrop, handleDragEnd, }: ColumnVisibilityPopoverProps) => import("react/jsx-runtime").JSX.Element;
35
+ export {};
@@ -0,0 +1,18 @@
1
+ import { ExportFormat } from "../../types";
2
+ interface ExportPopoverProps {
3
+ isOpen: boolean;
4
+ anchorEl: HTMLElement | null;
5
+ onClose: () => void;
6
+ exportFormats: ExportFormat[];
7
+ filteredDataLength: number;
8
+ selectedRowsCount: number;
9
+ onExport: (format: ExportFormat, exportSelected: boolean) => void;
10
+ }
11
+ /**
12
+ * ExportPopover
13
+ *
14
+ * Provides the UI for exporting grid data in various formats (CSV, JSON, Excel).
15
+ * Allows exporting either all filtered data or only the currently selected rows.
16
+ */
17
+ export declare const ExportPopover: ({ isOpen, anchorEl, onClose, exportFormats, filteredDataLength, selectedRowsCount, onExport, }: ExportPopoverProps) => import("react/jsx-runtime").JSX.Element;
18
+ export {};
@@ -0,0 +1,29 @@
1
+ interface ColumnDefinition {
2
+ key: string;
3
+ header: string;
4
+ visible?: boolean;
5
+ filterOptions?: Array<{
6
+ label: string;
7
+ value: string | number;
8
+ }>;
9
+ filterType?: "text" | "select" | "multiselect";
10
+ filterable?: any;
11
+ }
12
+ interface FilterPopoverProps {
13
+ isOpen: boolean;
14
+ anchorEl: HTMLElement | null;
15
+ onClose: () => void;
16
+ onClearFilters?: () => void;
17
+ columns: ColumnDefinition[];
18
+ columnFilters: Record<string, any>;
19
+ onColumnFilter?: (columnKey: string, filter: any) => void;
20
+ hasFilterableColumns: boolean;
21
+ }
22
+ /**
23
+ * FilterPopover
24
+ *
25
+ * Provides the UI for managing column-specific filters.
26
+ * Includes a search/select interface for each filterable column and a clear all action.
27
+ */
28
+ export declare const FilterPopover: ({ isOpen, anchorEl, onClose, onClearFilters, columns, columnFilters, onColumnFilter, hasFilterableColumns, }: FilterPopoverProps) => import("react/jsx-runtime").JSX.Element;
29
+ export {};
@@ -0,0 +1,17 @@
1
+ import { Density } from "../../types";
2
+ interface SettingsPopoverProps {
3
+ isOpen: boolean;
4
+ anchorEl: HTMLElement | null;
5
+ onClose: () => void;
6
+ density: Density;
7
+ onDensityChange?: (density: Density) => void;
8
+ showDensityControl?: boolean;
9
+ }
10
+ /**
11
+ * SettingsPopover
12
+ *
13
+ * Provides a menu for general grid configurations.
14
+ * Currently supports Row Density selection and is easily extensible for future settings.
15
+ */
16
+ export declare const SettingsPopover: ({ isOpen, anchorEl, onClose, density, onDensityChange, showDensityControl, }: SettingsPopoverProps) => import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -0,0 +1,23 @@
1
+ /**
2
+ * CellEditor
3
+ *
4
+ * Renders the appropriate input control for an inline cell edit session.
5
+ * Lifecycle:
6
+ * • mounts → auto-focuses, selects all existing text
7
+ * • Enter / Tab → commit (Tab also moves focus to next cell conceptually)
8
+ * • Escape → cancel
9
+ * • blur → commit (unless blur was caused by Escape)
10
+ *
11
+ * Props are intentionally minimal — the parent hook owns the "editing cell"
12
+ * identity; this component only owns the *draft value* and input DOM state.
13
+ */
14
+ import type { GridColumn, GridRow } from "../../types";
15
+ interface CellEditorProps {
16
+ column: GridColumn;
17
+ row: GridRow;
18
+ initialValue: any;
19
+ onCommit: (newValue: any) => void;
20
+ onCancel: () => void;
21
+ }
22
+ export declare const CellEditor: ({ column, row, initialValue, onCommit, onCancel, }: CellEditorProps) => import("react/jsx-runtime").JSX.Element;
23
+ export {};
@@ -0,0 +1,18 @@
1
+ interface ColumnFilterSelectorProps {
2
+ columns: Array<{
3
+ key: string;
4
+ header: string;
5
+ filterable?: {
6
+ type?: string;
7
+ options?: Array<{
8
+ label: string;
9
+ value: string | number;
10
+ }>;
11
+ placeholder?: string;
12
+ };
13
+ }>;
14
+ columnFilters: Record<string, any>;
15
+ onColumnFilter?: (columnKey: string, filter: any) => void;
16
+ }
17
+ export declare const ColumnFilterSelector: ({ columns, columnFilters, onColumnFilter, }: ColumnFilterSelectorProps) => import("react/jsx-runtime").JSX.Element;
18
+ export {};
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ import { GridColumn, GridRow } from "../../types";
3
+ interface FooterAggregateProps {
4
+ columns: (GridColumn & {
5
+ width: number;
6
+ })[];
7
+ data: GridRow[];
8
+ selectable: boolean;
9
+ /** Resolved row height so footer matches density */
10
+ rowHeight: number;
11
+ /** Pinned columns (same semantics as grid body) */
12
+ pinnedColumns?: Set<string>;
13
+ getRowId?: (row: GridRow) => string | number;
14
+ }
15
+ export declare const FooterAggregate: React.NamedExoticComponent<FooterAggregateProps>;
16
+ export {};