gridular 2.1.0 → 3.0.0

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 (38) hide show
  1. package/README.md +88 -107
  2. package/dist/DataGrid.d.ts +3 -0
  3. package/dist/Pagination.d.ts +12 -0
  4. package/dist/__tests__/DataGrid.test.d.ts +1 -0
  5. package/dist/__tests__/setup.d.ts +0 -0
  6. package/dist/__tests__/utils.d.ts +17 -0
  7. package/dist/components/ColumnManager.d.ts +13 -0
  8. package/dist/components/GroupManager.d.ts +11 -0
  9. package/dist/components/Skeleton.d.ts +7 -0
  10. package/dist/gridular.css +1 -0
  11. package/dist/hooks/useDataGrouping.d.ts +14 -0
  12. package/dist/hooks/useGridPersistence.d.ts +12 -0
  13. package/dist/hooks/useSelectCell.d.ts +10 -0
  14. package/dist/index.d.ts +11 -797
  15. package/dist/lib/utils.d.ts +21 -0
  16. package/dist/logo.svg +26 -0
  17. package/dist/stories/customization/CustomRendering.stories.d.ts +8 -0
  18. package/dist/stories/customization/Themes.stories.d.ts +8 -0
  19. package/dist/stories/examples/BasicExample.stories.d.ts +9 -0
  20. package/dist/stories/examples/ComprehensiveDemo.stories.d.ts +6 -0
  21. package/dist/stories/examples/Pagination.stories.d.ts +6 -0
  22. package/dist/stories/examples/ServerPagination.stories.d.ts +8 -0
  23. package/dist/stories/examples/Sorting.stories.d.ts +7 -0
  24. package/dist/stories/features/CellSelection.stories.d.ts +6 -0
  25. package/dist/stories/features/ColumnFiltering.stories.d.ts +25 -0
  26. package/dist/stories/features/ColumnManagement.stories.d.ts +9 -0
  27. package/dist/stories/features/ColumnMenu.stories.d.ts +33 -0
  28. package/dist/stories/features/ContextMenu.stories.d.ts +15 -0
  29. package/dist/stories/features/ExpandableRows.stories.d.ts +7 -0
  30. package/dist/stories/features/Grouping.stories.d.ts +8 -0
  31. package/dist/stories/features/RowSelection.stories.d.ts +9 -0
  32. package/dist/types.d.ts +278 -0
  33. package/dist/virtualized-grid.js +8915 -0
  34. package/package.json +71 -80
  35. package/LICENSE +0 -21
  36. package/dist/index.d.mts +0 -797
  37. package/dist/index.js +0 -2866
  38. package/dist/index.mjs +0 -2766
package/dist/index.d.mts DELETED
@@ -1,797 +0,0 @@
1
- import * as React$1 from 'react';
2
- import React__default, { ReactNode } from 'react';
3
- import { ClassValue } from 'clsx';
4
- import * as tss_react from 'tss-react';
5
- import { CSSObject } from 'tss-react';
6
- import * as class_variance_authority_types from 'class-variance-authority/types';
7
- import { VariantProps } from 'class-variance-authority';
8
- import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
9
- import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
10
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
11
- import * as PopoverPrimitive from '@radix-ui/react-popover';
12
- import * as SelectPrimitive from '@radix-ui/react-select';
13
-
14
- interface CellPosition {
15
- rowId: string;
16
- columnId: string;
17
- }
18
-
19
- type SortDirection = "asc" | "desc" | null;
20
- interface ColumnDef<T> {
21
- id: string;
22
- header: string;
23
- width?: number;
24
- enableSorting?: boolean;
25
- enableFiltering?: boolean;
26
- enableResize?: boolean;
27
- filterFn?: (row: T, columnId: string, filterValue: string) => boolean;
28
- sortFn?: (a: T, b: T, columnId: string) => number;
29
- headerClassName?: string;
30
- cellClassName?: string;
31
- filterMenuPosition?: {
32
- top: number;
33
- left: number;
34
- };
35
- renderCell?: (row: T) => React.ReactNode;
36
- cell?: (row: T) => React.ReactNode;
37
- index?: number;
38
- groupFormatter?: (value: any) => string;
39
- enableGrouping?: boolean;
40
- }
41
- type FilterValue = string | null;
42
- interface ColumnResizeState {
43
- [key: string]: number;
44
- }
45
- type RowSelectionState = Record<string, boolean>;
46
- interface ThemeProviderContextType {
47
- container: string;
48
- header: string;
49
- headerCell: string;
50
- row: string;
51
- cell: string;
52
- pagination: string;
53
- filterMenu: string;
54
- filterMenuContent: string;
55
- filterMenuHeader: string;
56
- filterMenuInput: string;
57
- filterMenuClearButton: string;
58
- filterMenuApplyButton: string;
59
- columnResizeHandle: string;
60
- columnResizeHandleActive: string;
61
- sortIcon: string;
62
- sortIconActive: string;
63
- [key: string]: string;
64
- }
65
- interface DataGridRenderProps<T> {
66
- renderCell: ((row: T, column: ColumnDef<T>) => ReactNode) | undefined;
67
- renderGroupRow: ((props: any) => ReactNode) | undefined;
68
- filterState: Record<string, string>;
69
- sortState?: SortState | null;
70
- selectedRows: Record<string, boolean>;
71
- data: T[];
72
- visibleColumns: string[];
73
- pageIndex: number;
74
- pageCount: number;
75
- pageSize: number;
76
- isLoading: boolean;
77
- }
78
- interface DataGridClasses {
79
- footer(arg0: string, footer: any): unknown;
80
- toolbarTop(arg0: string, toolbarTop: any): unknown;
81
- selectedCell: string | undefined;
82
- paginationButton: string | undefined;
83
- paginationButtons: string | undefined;
84
- pageInfo: string | undefined;
85
- pageSize: string | undefined;
86
- container?: string;
87
- header?: string;
88
- headerCell?: string;
89
- row?: string;
90
- cell?: string;
91
- selectedRow?: string;
92
- pagination?: string;
93
- emptyState?: string;
94
- loadingState?: string;
95
- columnManager?: string;
96
- }
97
- interface SortState {
98
- column: string;
99
- direction: "asc" | "desc";
100
- }
101
- interface GroupingState {
102
- groupByColumns: string[];
103
- expandedGroups: Record<string, boolean>;
104
- }
105
- interface GridPreferences$1 {
106
- columnWidths: Record<string, number>;
107
- columnOrder: string[];
108
- hiddenColumns: string[];
109
- groupByColumns: string[];
110
- expandedGroups: Record<string, boolean>;
111
- }
112
- interface DataGridProps$1<T> {
113
- columns: ColumnDef<T>[];
114
- data: T[];
115
- sortState?: SortState | null;
116
- onSortChange?: (sortState: SortState | null) => void;
117
- filterState?: Record<string, string>;
118
- onFilterChange?: (filterState: Record<string, string>) => void;
119
- selectedRows?: Record<string, boolean>;
120
- onRowSelectionChange?: (selectedRows: Record<string, boolean>) => void;
121
- pageIndex: number;
122
- pageCount: number;
123
- pageSize: number;
124
- onPageChange?: (page: number) => void;
125
- onPageSizeChange?: (size: number) => void;
126
- onRowClick?: (row: T) => void;
127
- enableCellSelection?: boolean;
128
- onCellSelect?: (rowId: string, columnId: string) => void;
129
- selectedCell?: CellPosition | null;
130
- selectedCellClassName?: string;
131
- expandedRows?: Record<string, boolean>;
132
- onExpandedRowsChange?: (expandedRows: Record<string, boolean>) => void;
133
- renderExpandedRow?: (row: T) => React.ReactNode;
134
- expandIcon?: React.ReactNode;
135
- collapseIcon?: React.ReactNode;
136
- getRowId?: (row: T) => string;
137
- enableFiltering?: boolean;
138
- enableSorting?: boolean;
139
- enableColumnResize?: boolean;
140
- enableRowSelection?: boolean;
141
- enablePagination?: boolean;
142
- enableExpandableRows?: boolean;
143
- hideGroupControls?: boolean;
144
- hideColumnManager?: boolean;
145
- pageSizeOptions?: number[];
146
- emptyMessage?: string;
147
- loadingMessage?: string;
148
- isLoading?: boolean;
149
- gridId?: string;
150
- totalRows: number;
151
- classes?: {
152
- selectedCell?: string;
153
- container?: string;
154
- columnManager?: string;
155
- header?: string;
156
- row?: string;
157
- cell?: string;
158
- selectedRow?: string;
159
- pagination?: string;
160
- emptyState?: string;
161
- loadingState?: string;
162
- toolbar?: string;
163
- loadingContainer?: string;
164
- emptyContainer?: string;
165
- errorContainer?: string;
166
- };
167
- className?: string;
168
- renderCell?: (props: {
169
- value: any;
170
- row: T;
171
- column: ColumnDef<T>;
172
- }) => React.ReactNode;
173
- renderHeader?: (props: {
174
- column: ColumnDef<T>;
175
- sortDirection?: SortDirection;
176
- }) => React.ReactNode;
177
- renderSortIcon?: (props: {
178
- isSorted: boolean;
179
- sortDirection?: SortDirection;
180
- }) => React.ReactNode;
181
- renderFilterIcon?: (props: {
182
- isFiltered: boolean;
183
- }) => React.ReactNode;
184
- sortIconVariant?: "arrows" | "chevrons";
185
- children?: (props: DataGridRenderProps<T>) => React.ReactNode;
186
- filterMenu?: React.ReactNode;
187
- groupingState?: GroupingState;
188
- onGroupingChange?: (groupingState: GroupingState) => void;
189
- enableGrouping?: boolean;
190
- defaultGroupTemplate?: string;
191
- renderGroupRow?: (props: GroupRowRenderProps) => React.ReactNode;
192
- groupExpandIcon?: React.ReactNode;
193
- groupCollapseIcon?: React.ReactNode;
194
- preventRowSelection?: boolean;
195
- contextMenuContent?: (row: T, column: ColumnDef<T>) => React.ReactNode;
196
- }
197
- interface FilterMenuCustomization {
198
- classes?: {
199
- container?: string;
200
- header?: string;
201
- activeIndicator?: string;
202
- currentFilter?: string;
203
- input?: string;
204
- buttonContainer?: string;
205
- clearButton?: string;
206
- applyButton?: string;
207
- };
208
- renderHeader?: (column: ColumnDef<any>, isActive: boolean) => ReactNode;
209
- renderCurrentFilter?: (filterValue: string) => ReactNode;
210
- renderInput?: (props: {
211
- value: string;
212
- onChange: (value: string) => void;
213
- onKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;
214
- isActive: boolean;
215
- }) => ReactNode;
216
- renderButtons?: (props: {
217
- onClear: () => void;
218
- onApply: () => void;
219
- isActive: boolean;
220
- }) => ReactNode;
221
- renderCustomContent?: (props: {
222
- column: ColumnDef<any>;
223
- filterValue: string;
224
- setFilterValue: (value: string) => void;
225
- onApply: () => void;
226
- onClear: () => void;
227
- isActive: boolean;
228
- }) => ReactNode;
229
- }
230
- interface GroupRowRenderProps {
231
- groupKey: string;
232
- columnId: string;
233
- value: any;
234
- depth: number;
235
- isExpanded: boolean;
236
- onToggleExpand: () => void;
237
- count: number;
238
- }
239
-
240
- interface PaginationProps {
241
- pageIndex: number;
242
- pageCount: number;
243
- pageSize: number;
244
- totalRows: number;
245
- setPageIndex: (index: number) => void;
246
- setPageSize: (size: number) => void;
247
- pageSizeOptions: number[];
248
- processedDataLength: number;
249
- className?: string;
250
- showFirstLastButtons?: boolean;
251
- showPageSizeSelector?: boolean;
252
- showPageInfo?: boolean;
253
- renderPageSizeSelector?: (props: {
254
- pageSize: number;
255
- options: number[];
256
- onChange: (size: number) => void;
257
- }) => React__default.ReactNode;
258
- renderPageInfo?: (props: {
259
- start: number;
260
- end: number;
261
- total: number;
262
- }) => React__default.ReactNode;
263
- renderFirstPageButton?: (props: {
264
- onClick: () => void;
265
- disabled: boolean;
266
- }) => React__default.ReactNode;
267
- renderPrevPageButton?: (props: {
268
- onClick: () => void;
269
- disabled: boolean;
270
- }) => React__default.ReactNode;
271
- renderNextPageButton?: (props: {
272
- onClick: () => void;
273
- disabled: boolean;
274
- }) => React__default.ReactNode;
275
- renderLastPageButton?: (props: {
276
- onClick: () => void;
277
- disabled: boolean;
278
- }) => React__default.ReactNode;
279
- pageSizeClassName?: string;
280
- pageInfoClassName?: string;
281
- buttonsClassName?: string;
282
- buttonClassName?: string;
283
- }
284
- declare const Pagination: ({ pageIndex, pageCount, pageSize, totalRows, setPageIndex, setPageSize, pageSizeOptions, processedDataLength, className, showFirstLastButtons, showPageSizeSelector, showPageInfo, renderPageSizeSelector, renderPageInfo, renderFirstPageButton, renderPrevPageButton, renderNextPageButton, renderLastPageButton, pageSizeClassName, pageInfoClassName, buttonsClassName, buttonClassName, }: PaginationProps) => React__default.JSX.Element;
285
-
286
- interface ColumnManagerProps<T> {
287
- columns: ColumnDef<T>[];
288
- visibleColumns: string[];
289
- toggleColumnVisibility: (columnId: string, visible: boolean) => void;
290
- resetGridPreferences: () => void;
291
- renderTrigger?: (props: {
292
- onClick: () => void;
293
- }) => React__default.ReactNode;
294
- renderResetButton?: (props: {
295
- onClick: () => void;
296
- }) => React__default.ReactNode;
297
- renderColumnItem?: (props: {
298
- column: ColumnDef<T>;
299
- isVisible: boolean;
300
- onToggle: (checked: boolean) => void;
301
- }) => React__default.ReactNode;
302
- align?: "start" | "center" | "end";
303
- showResetButton?: boolean;
304
- className?: string;
305
- triggerClassName?: string;
306
- contentClassName?: string;
307
- itemClassName?: string;
308
- resetClassName?: string;
309
- }
310
- declare function ColumnManager<T>({ columns, visibleColumns, toggleColumnVisibility, resetGridPreferences, renderTrigger, renderResetButton, renderColumnItem, align, showResetButton, className, triggerClassName, contentClassName, itemClassName, resetClassName, }: ColumnManagerProps<T>): React__default.JSX.Element;
311
-
312
- interface GroupManagerProps<T> {
313
- columns: ColumnDef<T>[];
314
- groupByColumns: string[];
315
- updateGroupByColumns: (groupByColumns: string[]) => void;
316
- removeGroupByColumn: (columnId: string) => void;
317
- clearGrouping: () => void;
318
- className?: string;
319
- triggerClassName?: string;
320
- contentClassName?: string;
321
- itemClassName?: string;
322
- activeGroupsClassName?: string;
323
- renderTrigger?: (props: {
324
- onClick: () => void;
325
- }) => React__default.ReactNode;
326
- renderActiveGroup?: (props: {
327
- column: ColumnDef<T>;
328
- onRemove: () => void;
329
- }) => React__default.ReactNode;
330
- align?: "start" | "center" | "end";
331
- }
332
- declare function GroupManager<T>({ columns, groupByColumns, updateGroupByColumns, removeGroupByColumn, clearGrouping, className, triggerClassName, contentClassName, itemClassName, activeGroupsClassName, renderTrigger, renderActiveGroup, align, }: GroupManagerProps<T>): React__default.JSX.Element;
333
-
334
- interface DataGridProps<T> extends DataGridProps$1<T> {
335
- columnManagerProps?: Partial<Omit<React__default.ComponentProps<typeof ColumnManager<T>>, "columns" | "visibleColumns" | "toggleColumnVisibility" | "resetGridPreferences">>;
336
- paginationProps?: Partial<Omit<React__default.ComponentProps<typeof Pagination>, "pageIndex" | "pageCount" | "pageSize" | "setPageIndex" | "setPageSize" | "pageSizeOptions" | "processedDataLength" | "totalRows">>;
337
- groupManagerProps?: Partial<Omit<React__default.ComponentProps<typeof GroupManager<T>>, "columns" | "groupByColumns" | "updateGroupByColumns" | "removeGroupByColumn" | "clearGrouping">>;
338
- groupRowProps?: {
339
- className?: string;
340
- rowClassName?: string;
341
- cellClassName?: string;
342
- contentClassName?: string;
343
- labelClassName?: string;
344
- iconClassName?: string;
345
- countClassName?: string;
346
- indentSize?: number;
347
- style?: React__default.CSSProperties;
348
- rowStyle?: React__default.CSSProperties;
349
- cellStyle?: React__default.CSSProperties;
350
- contentStyle?: React__default.CSSProperties;
351
- };
352
- }
353
- declare function DataGrid<T>({ columns, data, sortState, onSortChange, filterState, onFilterChange, selectedRows, onRowSelectionChange, pageIndex, pageCount, pageSize, onPageChange, onPageSizeChange, onRowClick, enableSorting, enableFiltering, enableColumnResize, enableRowSelection, enablePagination, enableGrouping, enableExpandableRows, hideGroupControls, hideColumnManager, pageSizeOptions, emptyMessage, loadingMessage, isLoading, gridId, classes, className, renderCell, renderHeader, renderSortIcon, renderFilterIcon, renderGroupRow, sortIconVariant, columnManagerProps, paginationProps, groupManagerProps, groupRowProps, groupingState, onGroupingChange, groupExpandIcon, groupCollapseIcon, totalRows, filterMenu, selectedCell: propSelectedCell, enableCellSelection, onCellSelect, preventRowSelection, contextMenuContent, expandedRows, onExpandedRowsChange, renderExpandedRow, expandIcon, collapseIcon, getRowId, }: DataGridProps<T>): React__default.JSX.Element;
354
-
355
- interface FilterMenuClasses {
356
- container?: string;
357
- header?: string;
358
- activeIndicator?: string;
359
- currentFilter?: string;
360
- input?: string;
361
- buttonContainer?: string;
362
- clearButton?: string;
363
- applyButton?: string;
364
- }
365
- interface FilterMenuRenderProps {
366
- renderHeader?: (column: ColumnDef<any>, isActive: boolean) => ReactNode;
367
- renderCurrentFilter?: (filterValue: string) => ReactNode;
368
- renderInput?: (props: {
369
- value: string;
370
- onChange: (value: string) => void;
371
- onKeyDown: (e: React__default.KeyboardEvent<HTMLInputElement>) => void;
372
- isActive: boolean;
373
- }) => ReactNode;
374
- renderButtons?: (props: {
375
- onClear: () => void;
376
- onApply: () => void;
377
- isActive: boolean;
378
- }) => ReactNode;
379
- renderCustomContent?: (props: {
380
- column: ColumnDef<any>;
381
- filterValue: string;
382
- setFilterValue: (value: string) => void;
383
- onApply: () => void;
384
- onClear: () => void;
385
- isActive: boolean;
386
- }) => ReactNode;
387
- }
388
- interface FilterMenuProps extends FilterMenuRenderProps {
389
- column: ColumnDef<any>;
390
- filterValue: string;
391
- setFilterValue: (value: string) => void;
392
- onApplyFilter: (value: string) => void;
393
- onClearFilter: () => void;
394
- isOpen: boolean;
395
- onOpenChange: (open: boolean) => void;
396
- trigger: React__default.ReactNode;
397
- isActive?: boolean;
398
- classes?: FilterMenuClasses;
399
- totalColumns?: number;
400
- }
401
- declare const FilterMenu: ({ column, filterValue, setFilterValue, onApplyFilter, onClearFilter, isOpen, onOpenChange, trigger, isActive, classes, renderHeader, renderCurrentFilter, renderInput, renderButtons, renderCustomContent, totalColumns, }: FilterMenuProps) => React__default.JSX.Element;
402
-
403
- interface TableBodyProps<T> {
404
- paginatedData: any[];
405
- columns: ColumnDef<T>[];
406
- selectedRows: Record<string, boolean>;
407
- enableRowSelection: boolean;
408
- onRowSelect: (rowId: string) => void;
409
- onRowClick?: (row: T) => void;
410
- rowClassName?: string;
411
- cellClassName?: string;
412
- columnWidths: Record<string, number>;
413
- theme: any;
414
- selectedRowClassName?: string;
415
- renderCell?: (row: T, column: ColumnDef<T>) => React__default.ReactNode;
416
- enableGrouping?: boolean;
417
- groupingState?: {
418
- groupByColumns: string[];
419
- expandedGroups: Record<string, boolean>;
420
- };
421
- toggleGroupExpanded?: (groupKey: string) => void;
422
- renderGroupRow?: (props: any) => React__default.ReactNode;
423
- groupExpandIcon?: React__default.ReactNode;
424
- groupCollapseIcon?: React__default.ReactNode;
425
- groupRowProps?: Record<string, any>;
426
- selectedCell?: CellPosition | null;
427
- onCellSelect?: (rowId: string, columnId: string) => void;
428
- selectedCellClassName?: string;
429
- preventRowSelection?: boolean;
430
- contextMenuContent?: (row: T, column: ColumnDef<T>) => React__default.ReactNode;
431
- enableExpandableRows?: boolean;
432
- expandedRows?: Record<string, boolean>;
433
- onToggleRowExpand?: (rowId: string) => void;
434
- renderExpandedRow?: (row: T) => React__default.ReactNode;
435
- expandIcon?: React__default.ReactNode;
436
- collapseIcon?: React__default.ReactNode;
437
- getRowId?: (row: T, index: number) => string;
438
- }
439
- declare const TableBody: <T>({ paginatedData, columns, selectedRows, enableRowSelection, onRowSelect, onRowClick, rowClassName, cellClassName, columnWidths, theme, selectedRowClassName, enableGrouping, groupingState, toggleGroupExpanded, renderGroupRow, groupExpandIcon, groupCollapseIcon, groupRowProps, selectedCell, onCellSelect, selectedCellClassName, preventRowSelection, contextMenuContent, enableExpandableRows, expandedRows, onToggleRowExpand, renderExpandedRow, expandIcon, collapseIcon, getRowId, }: TableBodyProps<T>) => React__default.JSX.Element;
440
-
441
- interface TableCellProps<T> {
442
- column: ColumnDef<T>;
443
- row: T;
444
- cellClassName?: string;
445
- isSelected?: boolean;
446
- onSelect?: (selected: boolean) => void;
447
- selectedCellClassName?: string;
448
- preventRowSelection?: boolean;
449
- rowId?: string;
450
- contextMenuContent?: (row: T, column: ColumnDef<T>) => React__default.ReactNode;
451
- enableExpandableRows?: boolean;
452
- isExpanded?: boolean;
453
- onToggleExpand?: () => void;
454
- expandIcon?: React__default.ReactNode;
455
- collapseIcon?: React__default.ReactNode;
456
- }
457
- declare const TableCell: <T>({ column, row, cellClassName, isSelected, onSelect, contextMenuContent, selectedCellClassName, preventRowSelection, enableExpandableRows, isExpanded, onToggleExpand, expandIcon, collapseIcon, }: TableCellProps<T>) => React__default.JSX.Element;
458
-
459
- interface TableHeaderProps<T> {
460
- columns: ColumnDef<T>[];
461
- sortState: {
462
- column: string;
463
- direction: "asc" | "desc";
464
- } | null;
465
- onSortChange: (columnId: string) => void;
466
- enableSorting: boolean;
467
- filterState: Record<string, string>;
468
- filterMenuOpen: string | null;
469
- onFilterMenuToggle: (columnId: string | null) => void;
470
- columnWidths: Record<string, number>;
471
- onColumnResize: (columnId: string, width: number) => void;
472
- headerClassName?: string;
473
- filterValueRefs: React__default.MutableRefObject<Record<string, string>>;
474
- onApplyFilter: (value: string) => void;
475
- onClearFilter: () => void;
476
- onColumnReorder: (draggedId: string, targetId: string) => void;
477
- renderHeader?: (column: ColumnDef<T>, sortDirection: SortDirection) => ReactNode;
478
- renderSortIcon?: (column: ColumnDef<T>, sortDirection: SortDirection) => ReactNode;
479
- renderFilterIcon?: (column: ColumnDef<T>, isActive: boolean) => ReactNode;
480
- sortIconVariant?: "arrows" | "chevrons" | "none";
481
- filterMenu?: FilterMenuCustomization;
482
- filterMenuRef: React__default.RefObject<HTMLDivElement | null>;
483
- }
484
- declare function TableHeader<T>({ columns, sortState, onSortChange, enableSorting, filterState, filterMenuOpen, onFilterMenuToggle, columnWidths, onColumnResize, headerClassName, filterValueRefs, onApplyFilter, onClearFilter, onColumnReorder, renderHeader, renderSortIcon, renderFilterIcon, sortIconVariant, filterMenu, filterMenuRef, }: TableHeaderProps<T>): React__default.JSX.Element;
485
-
486
- interface TableRowProps<T> {
487
- row: T;
488
- columns: ColumnDef<T>[];
489
- rowId: string;
490
- isSelected: boolean;
491
- onRowSelect?: () => void;
492
- onRowClick?: (row: T) => void;
493
- selectedRowClassName?: string;
494
- rowClassName?: string;
495
- cellClassName?: string;
496
- columnWidths: Record<string, number>;
497
- selectedCell?: CellPosition | null;
498
- onCellSelect?: (rowId: string, columnId: string) => void;
499
- selectedCellClassName?: string;
500
- preventRowSelection?: boolean;
501
- contextMenuContent?: (row: T, column: ColumnDef<T>) => React__default.ReactNode;
502
- enableExpandableRows?: boolean;
503
- isExpanded?: boolean;
504
- onToggleExpand?: () => void;
505
- expandIcon?: React__default.ReactNode;
506
- collapseIcon?: React__default.ReactNode;
507
- }
508
- declare function TableRow<T>({ row, columns, rowId, isSelected, onRowSelect, onRowClick, selectedRowClassName, rowClassName, cellClassName, columnWidths, selectedCell, onCellSelect, selectedCellClassName, preventRowSelection, contextMenuContent, enableExpandableRows, isExpanded, onToggleExpand, expandIcon, collapseIcon, }: TableRowProps<T>): React__default.JSX.Element;
509
-
510
- interface ExpandableRowProps<T> {
511
- row: T;
512
- rowId: string;
513
- columns: any[];
514
- isExpanded: boolean;
515
- onToggleExpand: () => void;
516
- renderExpandedContent: (row: T) => React__default.ReactNode;
517
- expandIcon?: React__default.ReactNode;
518
- collapseIcon?: React__default.ReactNode;
519
- expandButtonClassName?: string;
520
- }
521
- declare function ExpandableRow<T>({ row, rowId, columns, isExpanded, onToggleExpand, renderExpandedContent, expandIcon, collapseIcon, expandButtonClassName, }: ExpandableRowProps<T>): React__default.JSX.Element | null;
522
-
523
- declare const useColumnResize: (enableColumnResize: boolean) => {
524
- columnResizeState: {};
525
- isResizing: boolean;
526
- handleColumnResizeStart: (columnId: string, startWidth: number, e: MouseEvent) => void;
527
- };
528
-
529
- interface GridPreferences {
530
- columnWidths: Record<string, number>;
531
- columnOrder: string[];
532
- hiddenColumns: string[];
533
- groupByColumns: string[];
534
- expandedGroups: Record<string, boolean>;
535
- }
536
- declare function useGridPersistence(gridId: string, columns: {
537
- id: string;
538
- }[], defaultColumnWidth?: number): {
539
- preferences: GridPreferences;
540
- updateColumnWidth: (columnId: string, width: number) => void;
541
- updateColumnOrder: (newOrder: string[]) => void;
542
- toggleColumnVisibility: (columnId: string, visible: boolean) => void;
543
- updateGroupByColumns: (groupByColumns: string[]) => void;
544
- toggleGroupExpanded: (groupKey: string, expanded: boolean) => void;
545
- resetPreferences: () => void;
546
- };
547
-
548
- declare function cn(...inputs: ClassValue[]): string;
549
- /**
550
- * Merges TSS-React styles with Tailwind classes
551
- *
552
- * @param tssStyles - TSS-React style object
553
- * @param tailwindClasses - Tailwind class string or array of strings
554
- * @returns A style object for React components
555
- */
556
- declare function mergeStyles<T extends object = {}>(tssStyles: CSSObject | undefined, tailwindClasses: string | string[]): {
557
- className: string;
558
- [key: string]: any;
559
- };
560
-
561
- type ThemeProviderContext = Record<string, string>;
562
- declare const lightTheme: TssTheme;
563
- declare const darkTheme: TssTheme;
564
- interface TssTheme {
565
- colors?: {
566
- primary?: string;
567
- secondary?: string;
568
- background?: string;
569
- foreground?: string;
570
- muted?: string;
571
- mutedForeground?: string;
572
- border?: string;
573
- [key: string]: string | undefined;
574
- };
575
- spacing?: number | SpacingFunction;
576
- [key: string]: any;
577
- }
578
- type SpacingFunction = {
579
- (value: number): string;
580
- (topBottom: number, rightLeft: number): string;
581
- (top: number, rightLeft: number, bottom: number): string;
582
- (top: number, right: number, bottom: number, left: number): string;
583
- baseSpacing: number;
584
- [key: string]: any;
585
- };
586
- interface CompleteTssTheme {
587
- colors: {
588
- primary: string;
589
- secondary: string;
590
- background: string;
591
- foreground: string;
592
- muted: string;
593
- mutedForeground: string;
594
- border: string;
595
- [key: string]: string;
596
- };
597
- spacing: SpacingFunction;
598
- [key: string]: any;
599
- }
600
- interface UnifiedTheme {
601
- classes: ThemeProviderContext;
602
- colors: CompleteTssTheme["colors"];
603
- spacing: SpacingFunction;
604
- [key: string]: any;
605
- }
606
- interface ThemeContext {
607
- theme: UnifiedTheme;
608
- setTailwindTheme: (theme: Partial<ThemeProviderContext>) => void;
609
- setTssTheme: (theme: TssTheme) => void;
610
- resetTheme: () => void;
611
- toggleThemeMode: () => void;
612
- }
613
- interface ThemeProviderProps {
614
- children: React__default.ReactNode;
615
- initialTailwindTheme?: Partial<ThemeProviderContext>;
616
- initialTssTheme?: TssTheme;
617
- darkMode?: boolean;
618
- }
619
- declare const ThemeProvider: ({ children, initialTailwindTheme, initialTssTheme, darkMode, }: ThemeProviderProps) => React__default.JSX.Element;
620
- declare const useTheme: () => ThemeContext;
621
- declare const useTailwindTheme: () => ThemeProviderContext;
622
- declare const useTssTheme: () => {
623
- colors: {
624
- [key: string]: string;
625
- primary: string;
626
- secondary: string;
627
- background: string;
628
- foreground: string;
629
- muted: string;
630
- mutedForeground: string;
631
- border: string;
632
- };
633
- spacing: SpacingFunction;
634
- };
635
- declare const makeStyles: <Params = void, RuleNameSubsetReferencableInNestedSelectors extends string = never>(params?: {
636
- name?: string | Record<string, unknown> | undefined;
637
- uniqId?: string | undefined;
638
- } | undefined) => <RuleName extends string>(cssObjectByRuleNameOrGetCssObjectByRuleName: Record<RuleName, tss_react.CSSObject> | ((theme: {
639
- colors: {
640
- [key: string]: string;
641
- primary: string;
642
- secondary: string;
643
- background: string;
644
- foreground: string;
645
- muted: string;
646
- mutedForeground: string;
647
- border: string;
648
- };
649
- spacing: SpacingFunction;
650
- }, params: Params, classes: Record<RuleNameSubsetReferencableInNestedSelectors, string>) => Record<RuleNameSubsetReferencableInNestedSelectors | RuleName, tss_react.CSSObject>)) => (params: Params, muiStyleOverridesParams?: {
651
- props: Record<string, unknown>;
652
- ownerState?: Record<string, unknown>;
653
- } | undefined) => {
654
- classes: Record<RuleName, string>;
655
- theme: {
656
- colors: {
657
- [key: string]: string;
658
- primary: string;
659
- secondary: string;
660
- background: string;
661
- foreground: string;
662
- muted: string;
663
- mutedForeground: string;
664
- border: string;
665
- };
666
- spacing: SpacingFunction;
667
- };
668
- css: tss_react.Css;
669
- cx: tss_react.Cx;
670
- };
671
- declare const useTssStyles: () => {
672
- theme: {
673
- colors: {
674
- [key: string]: string;
675
- primary: string;
676
- secondary: string;
677
- background: string;
678
- foreground: string;
679
- muted: string;
680
- mutedForeground: string;
681
- border: string;
682
- };
683
- spacing: SpacingFunction;
684
- };
685
- css: tss_react.Css;
686
- cx: tss_react.Cx;
687
- };
688
- /**
689
- * Hook for creating styles with TSS.
690
- * USAGE:
691
- * const { styles, cx } = useStyles((theme) => ({
692
- * container: { borderLeft: `4px solid ${theme.colors?.primary}` },
693
- * }));
694
- *
695
- * return <div className={cx("tailwind-class", styles.container)}>...</div>;
696
- */
697
- declare const useStyles: <T extends Record<string, any>>(stylesFn: (theme: ReturnType<typeof useTssTheme>) => T) => {
698
- styles: Record<string, string>;
699
- cx: tss_react.Cx;
700
- };
701
-
702
- interface ThemeSwitcherProps {
703
- className?: string;
704
- }
705
- declare const ThemeSwitcher: React__default.FC<ThemeSwitcherProps>;
706
-
707
- interface ThemeWrapperProps {
708
- children: React__default.ReactNode;
709
- customTheme?: Record<string, any>;
710
- }
711
- declare const ThemeWrapper: React__default.FC<ThemeWrapperProps>;
712
-
713
- declare const badgeVariants: (props?: ({
714
- variant?: "outline" | "secondary" | "default" | "destructive" | null | undefined;
715
- } & class_variance_authority_types.ClassProp) | undefined) => string;
716
- declare function Badge({ className, variant, asChild, ...props }: React$1.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
717
- asChild?: boolean;
718
- }): React$1.JSX.Element;
719
-
720
- declare const buttonVariants: (props?: ({
721
- variant?: "outline" | "secondary" | "link" | "default" | "destructive" | "ghost" | null | undefined;
722
- size?: "default" | "icon" | "sm" | "lg" | null | undefined;
723
- } & class_variance_authority_types.ClassProp) | undefined) => string;
724
- interface ButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
725
- asChild?: boolean;
726
- }
727
- declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
728
-
729
- declare const Checkbox: React$1.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
730
-
731
- declare const Input: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
732
-
733
- declare function ContextMenu({ ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.Root>): React$1.JSX.Element;
734
- declare function ContextMenuTrigger({ ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.Trigger>): React$1.JSX.Element;
735
- declare function ContextMenuGroup({ ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.Group>): React$1.JSX.Element;
736
- declare function ContextMenuPortal({ ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.Portal>): React$1.JSX.Element;
737
- declare function ContextMenuSub({ ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.Sub>): React$1.JSX.Element;
738
- declare function ContextMenuRadioGroup({ ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>): React$1.JSX.Element;
739
- declare function ContextMenuSubTrigger({ className, inset, children, ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {
740
- inset?: boolean;
741
- }): React$1.JSX.Element;
742
- declare function ContextMenuSubContent({ className, ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.SubContent>): React$1.JSX.Element;
743
- declare function ContextMenuContent({ className, ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.Content>): React$1.JSX.Element;
744
- declare function ContextMenuItem({ className, inset, variant, ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.Item> & {
745
- inset?: boolean;
746
- variant?: "default" | "destructive";
747
- }): React$1.JSX.Element;
748
- declare function ContextMenuCheckboxItem({ className, children, checked, ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>): React$1.JSX.Element;
749
- declare function ContextMenuRadioItem({ className, children, ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.RadioItem>): React$1.JSX.Element;
750
- declare function ContextMenuLabel({ className, inset, ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.Label> & {
751
- inset?: boolean;
752
- }): React$1.JSX.Element;
753
- declare function ContextMenuSeparator({ className, ...props }: React$1.ComponentProps<typeof ContextMenuPrimitive.Separator>): React$1.JSX.Element;
754
- declare function ContextMenuShortcut({ className, ...props }: React$1.ComponentProps<"span">): React$1.JSX.Element;
755
-
756
- declare const DropdownMenu: React$1.FC<DropdownMenuPrimitive.DropdownMenuProps>;
757
- declare const DropdownMenuTrigger: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
758
- declare const DropdownMenuGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React$1.RefAttributes<HTMLDivElement>>;
759
- declare const DropdownMenuPortal: React$1.FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
760
- declare const DropdownMenuSub: React$1.FC<DropdownMenuPrimitive.DropdownMenuSubProps>;
761
- declare const DropdownMenuRadioGroup: React$1.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React$1.RefAttributes<HTMLDivElement>>;
762
- declare const DropdownMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubTriggerProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
763
- inset?: boolean;
764
- } & React$1.RefAttributes<HTMLDivElement>>;
765
- declare const DropdownMenuSubContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
766
- declare const DropdownMenuContent: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
767
- declare const DropdownMenuItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
768
- inset?: boolean;
769
- } & React$1.RefAttributes<HTMLDivElement>>;
770
- declare const DropdownMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
771
- declare const DropdownMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
772
- declare const DropdownMenuLabel: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
773
- inset?: boolean;
774
- } & React$1.RefAttributes<HTMLDivElement>>;
775
- declare const DropdownMenuSeparator: React$1.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
776
- declare const DropdownMenuShortcut: {
777
- ({ className, ...props }: React$1.HTMLAttributes<HTMLSpanElement>): React$1.JSX.Element;
778
- displayName: string;
779
- };
780
-
781
- declare const Popover: React$1.FC<PopoverPrimitive.PopoverProps>;
782
- declare const PopoverTrigger: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
783
- declare const PopoverAnchor: React$1.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React$1.RefAttributes<HTMLDivElement>>;
784
- declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
785
-
786
- declare const Select: React$1.FC<SelectPrimitive.SelectProps>;
787
- declare const SelectGroup: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React$1.RefAttributes<HTMLDivElement>>;
788
- declare const SelectValue: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React$1.RefAttributes<HTMLSpanElement>>;
789
- declare const SelectTrigger: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
790
- declare const SelectScrollUpButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
791
- declare const SelectScrollDownButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
792
- declare const SelectContent: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
793
- declare const SelectLabel: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
794
- declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
795
- declare const SelectSeparator: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
796
-
797
- export { Badge, Button, type ButtonProps, Checkbox, type ColumnDef, type ColumnResizeState, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DataGrid, type DataGridClasses, type DataGridProps$1 as DataGridProps, type DataGridRenderProps, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ExpandableRow, FilterMenu, type FilterMenuCustomization, type FilterValue, type GridPreferences$1 as GridPreferences, type GroupRowRenderProps, type GroupingState, Input, Pagination, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type RowSelectionState, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, type SortDirection, type SortState, type SpacingFunction, TableBody, TableCell, TableHeader, TableRow, type ThemeContext, ThemeProvider, type ThemeProviderContext, type ThemeProviderContextType, ThemeSwitcher, ThemeWrapper, type TssTheme, type UnifiedTheme, badgeVariants, buttonVariants, cn, darkTheme, lightTheme, makeStyles, mergeStyles, useColumnResize, useGridPersistence, useStyles, useTailwindTheme, useTheme, useTssStyles, useTssTheme };