buildgrid-ui 1.13.1 → 1.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,13 @@
1
+ import type { DataTableColumn, DataTableFilter, SortState } from '../types/data-table';
2
+ interface ActiveFiltersProps<T> {
3
+ searchTerm: string;
4
+ activeFilters: Record<string, string>;
5
+ sortState: SortState;
6
+ filters: DataTableFilter<T>[];
7
+ columns: DataTableColumn<T>[];
8
+ onClearSearch: () => void;
9
+ onClearFilter: (field: string) => void;
10
+ onClearSort: () => void;
11
+ }
12
+ export declare function ActiveFilters<T>({ searchTerm, activeFilters, sortState, filters, columns, onClearSearch, onClearFilter, onClearSort, }: ActiveFiltersProps<T>): import("react/jsx-runtime").JSX.Element | null;
13
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { DataTableColumn } from '../types/data-table';
2
+ interface ColumnVisibilityDropdownProps<T> {
3
+ columns: DataTableColumn<T>[];
4
+ onToggleVisibility: (key: string, visible: boolean) => void;
5
+ onReset: () => void;
6
+ }
7
+ export declare function ColumnVisibilityDropdown<T>({ columns, onToggleVisibility, onReset, }: ColumnVisibilityDropdownProps<T>): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { DataTableFilter } from '../types/data-table';
2
+ interface FilterDropdownProps<T> {
3
+ filter: DataTableFilter<T>;
4
+ value: string;
5
+ onChange: (value: string) => void;
6
+ }
7
+ export declare function FilterDropdown<T>({ filter, value, onChange }: FilterDropdownProps<T>): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,7 @@
1
+ interface SearchInputProps {
2
+ value: string;
3
+ onChange: (value: string) => void;
4
+ placeholder?: string;
5
+ }
6
+ export declare function SearchInput({ value, onChange, placeholder, }: SearchInputProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,6 @@
1
+ interface SelectionInfoProps {
2
+ selectedCount: number;
3
+ onClearSelection: () => void;
4
+ }
5
+ export declare function SelectionInfo({ selectedCount, onClearSelection }: SelectionInfoProps): import("react/jsx-runtime").JSX.Element | null;
6
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { DataTableColumn, SortState } from '../types/data-table';
2
+ interface TableHeaderProps<T> {
3
+ columns: DataTableColumn<T>[];
4
+ sortState: SortState;
5
+ allRowsSelected: boolean;
6
+ hasData: boolean;
7
+ onSort: (field: string) => void;
8
+ onToggleAllRows: (checked: boolean) => void;
9
+ }
10
+ export declare function TableHeader<T>({ columns, sortState, allRowsSelected, hasData, onSort, onToggleAllRows, }: TableHeaderProps<T>): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { DataTableColumn } from '../types/data-table';
2
+ interface DataTableRowProps<T> {
3
+ row: T;
4
+ index: number;
5
+ columns: DataTableColumn<T>[];
6
+ isSelected: boolean;
7
+ rowId: string;
8
+ onToggleSelection: (id: string, checked: boolean) => void;
9
+ }
10
+ export declare function DataTableRow<T>({ row, index, columns, isSelected, rowId, onToggleSelection, }: DataTableRowProps<T>): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,6 @@
1
+ interface TableSkeletonProps {
2
+ columns: number;
3
+ rows?: number;
4
+ }
5
+ export declare function TableSkeleton({ columns, rows }: TableSkeletonProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import type { DataTableProps, DataTableRef } from './types/data-table';
3
+ export declare const DataTable: <T extends Record<string, any>>(props: DataTableProps<T> & {
4
+ ref?: React.Ref<DataTableRef<T>>;
5
+ }) => React.ReactElement;
6
+ export type { DataTableColumn, DataTableFilter, DataTableProps, DataTableRef, } from './types/data-table';
@@ -0,0 +1,2 @@
1
+ export * from './data-table';
2
+ export * from './types/data-table';
@@ -0,0 +1,73 @@
1
+ import type React from 'react';
2
+ export interface DataTableColumn<T> {
3
+ key: keyof T;
4
+ title: string;
5
+ customRenderer?: (value: any, row: T) => React.ReactNode;
6
+ sortable?: boolean;
7
+ hidden?: boolean;
8
+ }
9
+ export interface FilterOption {
10
+ label: string;
11
+ value: string;
12
+ }
13
+ export interface DataTableFilter<T> {
14
+ field: keyof T;
15
+ label: string;
16
+ options: FilterOption[];
17
+ }
18
+ export interface DataTableToolsProps {
19
+ search?: {
20
+ placeholder?: string;
21
+ hide?: boolean;
22
+ };
23
+ filter?: {
24
+ hide?: boolean;
25
+ };
26
+ sort?: {
27
+ hide?: boolean;
28
+ };
29
+ columnSelector?: {
30
+ hide?: boolean;
31
+ };
32
+ export?: {
33
+ hide?: boolean;
34
+ };
35
+ }
36
+ export interface DataTableProps<T> {
37
+ data: T[];
38
+ columns: DataTableColumn<T>[];
39
+ searchFields: (keyof T)[];
40
+ filters?: DataTableFilter<T>[];
41
+ pageSize?: number;
42
+ className?: string;
43
+ loading?: boolean;
44
+ tools?: DataTableToolsProps;
45
+ }
46
+ export type SortDirection = 'asc' | 'desc' | null;
47
+ export interface SortState {
48
+ field: string | null;
49
+ direction: SortDirection;
50
+ }
51
+ export interface DataTableRef<T> {
52
+ /** Get currently selected items */
53
+ getSelectedItems: () => T[];
54
+ /** Clear all selected items */
55
+ clearSelection: () => void;
56
+ /** Get current selection count */
57
+ getSelectionCount: () => number;
58
+ /** Select specific items by their IDs */
59
+ selectItems: (ids: string[]) => void;
60
+ /** Get current filtered data (respects search and filters) */
61
+ getFilteredData: () => T[];
62
+ /** Reset all filters and search */
63
+ resetFilters: () => void;
64
+ /** Export current data to CSV */
65
+ exportData: (filename?: string) => void;
66
+ /** Go to specific page */
67
+ goToPage: (page: number) => void;
68
+ /** Refresh/re-render the table */
69
+ refresh: () => void;
70
+ }
71
+ export type DataTableComponent = <T extends Record<string, any>>(props: DataTableProps<T> & {
72
+ ref?: React.Ref<DataTableRef<T>>;
73
+ }) => React.ReactElement;
@@ -0,0 +1,2 @@
1
+ import type { DataTableColumn } from '../types/data-table';
2
+ export declare function exportToCSV<T>(data: T[], columns: DataTableColumn<T>[], filename: string): void;
@@ -1,4 +1,5 @@
1
1
  export * from './bento-grid';
2
+ export * from './data-table';
2
3
  export * from './empty-message';
3
4
  export * from './help-carousel';
4
5
  export * from './html-text-editor';
@@ -0,0 +1 @@
1
+ export * from './navigable-list';
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ type Shortcut = {
3
+ key: string;
4
+ ctrl?: boolean;
5
+ alt?: boolean;
6
+ shift?: boolean;
7
+ };
8
+ type RowAction<T> = {
9
+ shortcut: Shortcut;
10
+ callback: (item: T) => void;
11
+ label: React.ReactNode;
12
+ };
13
+ type NavigableListProps<T> = {
14
+ items: T[];
15
+ renderItem: (item: T, isSelected: boolean) => React.ReactNode;
16
+ actions: RowAction<T>[];
17
+ className?: string;
18
+ };
19
+ export declare function NavigableList<T>({ items, renderItem, actions, className, }: NavigableListProps<T>): import("react/jsx-runtime").JSX.Element;
20
+ export {};
@@ -1,9 +1,13 @@
1
1
  interface PaginationControlsProps {
2
- current?: number;
2
+ currentPage: number;
3
3
  totalPages: number;
4
- maxVisiblePages?: number;
5
- mode?: 'full' | 'minimal';
4
+ totalItems: number;
5
+ startIndex: number;
6
+ endIndex: number;
6
7
  onPageChange: (page: number) => void;
8
+ onPreviousPage: () => void;
9
+ onNextPage: () => void;
10
+ showItemsCounter?: boolean;
7
11
  }
8
- export declare function PaginationControls({ totalPages, maxVisiblePages, mode, onPageChange, current, }: PaginationControlsProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare const PaginationControls: (props: PaginationControlsProps) => import("react/jsx-runtime").JSX.Element | null;
9
13
  export {};