@datum-cloud/datum-ui 1.7.1 → 2.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.
- package/dist/components/features/data-table/columns/selection-column.d.ts +5 -4
- package/dist/components/features/data-table/components/bulk-actions.d.ts +2 -1
- package/dist/components/features/data-table/components/column-header.d.ts +2 -1
- package/dist/components/features/data-table/components/inline-content.d.ts +2 -1
- package/dist/components/features/data-table/components/row-actions.d.ts +2 -1
- package/dist/components/features/data-table/core/client-provider.d.ts +3 -2
- package/dist/components/features/data-table/core/data-table-context.d.ts +46 -6
- package/dist/components/features/data-table/core/features.d.ts +59 -0
- package/dist/components/features/data-table/core/filter-engine.d.ts +4 -3
- package/dist/components/features/data-table/core/server-provider.d.ts +3 -2
- package/dist/components/features/data-table/core/store.d.ts +2 -1
- package/dist/components/features/data-table/hooks/use-data-table-client.d.ts +86 -7
- package/dist/components/features/data-table/hooks/use-data-table-server.d.ts +86 -7
- package/dist/components/features/data-table/hooks/use-selectors.d.ts +7 -6
- package/dist/components/features/data-table/index.d.ts +2 -0
- package/dist/components/features/data-table/types.d.ts +30 -29
- package/dist/components/features/grouped-table/grouped-table.d.ts +2 -1
- package/dist/components/features/grouped-table/lib/bucket-rows.d.ts +3 -2
- package/dist/components/features/grouped-table/lib/compose-columns.d.ts +4 -3
- package/dist/components/features/grouped-table/lib/sort-rows.d.ts +3 -2
- package/dist/components/features/grouped-table/types.d.ts +7 -6
- package/dist/components/features/grouped-table/use-grouped-expansion.d.ts +2 -1
- package/dist/data-table/index.mjs +2 -2
- package/dist/{data-table-mByk373T.mjs → data-table-DjGvAdO_.mjs} +40 -8
- package/dist/grouped-table/index.mjs +1 -1
- package/dist/{grouped-table-b2jDEPR6.mjs → grouped-table-D4J3ioHb.mjs} +5 -6
- package/dist/index.mjs +3 -3
- package/package.json +23 -23
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { ColumnDef } from '@tanstack/react-table';
|
|
1
|
+
import type { ColumnDef, RowData } from '@tanstack/react-table';
|
|
2
|
+
import type { DataTableFeatures } from '../core/features';
|
|
2
3
|
import type { SelectionColumnOptions } from '../types';
|
|
3
|
-
export declare function createSelectionColumn<TData>(options?: SelectionColumnOptions<TData>): ColumnDef<TData>;
|
|
4
|
-
export declare function hasSelectionColumn<TData>(columns: ColumnDef<TData, any>[]): boolean;
|
|
5
|
-
export declare function withSelectionColumn<TData>(columns: ColumnDef<TData, any>[], options?: SelectionColumnOptions<TData>): ColumnDef<TData, any>[];
|
|
4
|
+
export declare function createSelectionColumn<TData extends RowData>(options?: SelectionColumnOptions<TData>): ColumnDef<DataTableFeatures, TData>;
|
|
5
|
+
export declare function hasSelectionColumn<TData extends RowData>(columns: ColumnDef<DataTableFeatures, TData, any>[]): boolean;
|
|
6
|
+
export declare function withSelectionColumn<TData extends RowData>(columns: ColumnDef<DataTableFeatures, TData, any>[], options?: SelectionColumnOptions<TData>): ColumnDef<DataTableFeatures, TData, any>[];
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import type { RowData } from '@tanstack/react-table';
|
|
1
2
|
import type { BulkActionsProps } from '../types';
|
|
2
|
-
export declare function DataTableBulkActions<TData>({ children, className, }: BulkActionsProps<TData>): import("react").JSX.Element | null;
|
|
3
|
+
export declare function DataTableBulkActions<TData extends RowData>({ children, className, }: BulkActionsProps<TData>): import("react").JSX.Element | null;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import type { RowData } from '@tanstack/react-table';
|
|
1
2
|
import type { ColumnHeaderProps } from '../types';
|
|
2
|
-
export declare function DataTableColumnHeader<TData, TValue>({ column, title, className, }: ColumnHeaderProps<TData, TValue>): import("react").JSX.Element;
|
|
3
|
+
export declare function DataTableColumnHeader<TData extends RowData, TValue>({ column, title, className, }: ColumnHeaderProps<TData, TValue>): import("react").JSX.Element;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import type { RowData } from '@tanstack/react-table';
|
|
1
2
|
import type { InlineContentProps } from '../types';
|
|
2
|
-
export declare function DataTableInlineContent<TData>({ position, rowId, open, onClose, className, children, }: InlineContentProps<TData>): null;
|
|
3
|
+
export declare function DataTableInlineContent<TData extends RowData>({ position, rowId, open, onClose, className, children, }: InlineContentProps<TData>): null;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import type { RowData } from '@tanstack/react-table';
|
|
1
2
|
import type { RowActionsProps } from '../types';
|
|
2
|
-
export declare function DataTableRowActions<TData>({ row, actions, isLoading, className, responsive, sheetTitle, }: RowActionsProps<TData>): import("react").JSX.Element | null;
|
|
3
|
+
export declare function DataTableRowActions<TData extends RowData>({ row, actions, isLoading, className, responsive, sheetTitle, }: RowActionsProps<TData>): import("react").JSX.Element | null;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import type { RowData } from '@tanstack/react-table';
|
|
1
2
|
import type { ReactNode } from 'react';
|
|
2
3
|
import type { UseDataTableClientOptions } from '../types';
|
|
3
|
-
export type DataTableClientProviderProps<TData> = UseDataTableClientOptions<TData> & {
|
|
4
|
+
export type DataTableClientProviderProps<TData extends RowData> = UseDataTableClientOptions<TData> & {
|
|
4
5
|
readonly loading?: boolean;
|
|
5
6
|
readonly className?: string;
|
|
6
7
|
readonly children: ReactNode;
|
|
7
8
|
};
|
|
8
|
-
export declare function ClientProvider<TData>(props: DataTableClientProviderProps<TData>): import("react").JSX.Element;
|
|
9
|
+
export declare function ClientProvider<TData extends RowData>(props: DataTableClientProviderProps<TData>): import("react").JSX.Element;
|
|
@@ -1,7 +1,47 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ReactTable, RowData } from '@tanstack/react-table';
|
|
2
2
|
import type { DataTableContextValue, DataTableStore } from '../types';
|
|
3
|
+
import type { DataTableFeatures } from './features';
|
|
3
4
|
export declare const DataTableStoreContext: import("react").Context<DataTableStore<any> | null>;
|
|
4
|
-
export declare const TableInstanceContext: import("react").Context<
|
|
5
|
+
export declare const TableInstanceContext: import("react").Context<ReactTable<{
|
|
6
|
+
columnFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
7
|
+
columnSizingFeature: import("@tanstack/react-table").TableFeature;
|
|
8
|
+
columnVisibilityFeature: import("@tanstack/react-table").TableFeature;
|
|
9
|
+
globalFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
10
|
+
rowPaginationFeature: import("@tanstack/react-table").TableFeature;
|
|
11
|
+
rowSelectionFeature: import("@tanstack/react-table").TableFeature;
|
|
12
|
+
rowSortingFeature: import("@tanstack/react-table").TableFeature;
|
|
13
|
+
filteredRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
14
|
+
paginatedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
15
|
+
sortedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
16
|
+
filterFns: {
|
|
17
|
+
arrIncludes: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
18
|
+
arrIncludesAll: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
19
|
+
arrHas: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
20
|
+
arrIncludesSome: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
21
|
+
between: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
22
|
+
betweenInclusive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
23
|
+
empty: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
24
|
+
endsWith: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
25
|
+
equals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
26
|
+
equalsString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
27
|
+
equalsStringSensitive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
28
|
+
inDateRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
29
|
+
inNumberRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
30
|
+
includesString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
31
|
+
includesStringSensitive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
32
|
+
notEmpty: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
33
|
+
startsWith: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
34
|
+
weakEquals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
35
|
+
};
|
|
36
|
+
sortFns: {
|
|
37
|
+
alphanumeric: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
38
|
+
alphanumericCaseSensitive: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
39
|
+
basic: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
40
|
+
datetime: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
41
|
+
text: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
42
|
+
textCaseSensitive: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
43
|
+
};
|
|
44
|
+
}, any> | null>;
|
|
5
45
|
/**
|
|
6
46
|
* Monotonic counter that increments on every store mutation.
|
|
7
47
|
* Table-dependent hooks consume this context to force re-renders
|
|
@@ -18,15 +58,15 @@ export declare const DataTableRenderKeyContext: import("react").Context<number>;
|
|
|
18
58
|
export declare function useRenderKey(): number;
|
|
19
59
|
export declare const DataTableContext: import("react").Context<DataTableContextValue<any> | null>;
|
|
20
60
|
/** @deprecated Use selector hooks from hooks/use-selectors instead */
|
|
21
|
-
export declare function useDataTableContext<TData>(): DataTableContextValue<TData>;
|
|
22
|
-
export declare function useDataTableStore<TData>(): DataTableStore<TData>;
|
|
61
|
+
export declare function useDataTableContext<TData extends RowData>(): DataTableContextValue<TData>;
|
|
62
|
+
export declare function useDataTableStore<TData extends RowData>(): DataTableStore<TData>;
|
|
23
63
|
/**
|
|
24
64
|
* @deprecated Use `useTableInstanceOrNull` instead — this throws during the
|
|
25
65
|
* SSR/hydration window when the table instance is not yet mounted.
|
|
26
66
|
*/
|
|
27
|
-
export declare function useTableInstance<TData>():
|
|
67
|
+
export declare function useTableInstance<TData extends RowData>(): ReactTable<DataTableFeatures, TData>;
|
|
28
68
|
/**
|
|
29
69
|
* Returns the table instance or null if not yet available.
|
|
30
70
|
* Used by hooks that need to handle the null-table window during SSR.
|
|
31
71
|
*/
|
|
32
|
-
export declare function useTableInstanceOrNull<TData>():
|
|
72
|
+
export declare function useTableInstanceOrNull<TData extends RowData>(): ReactTable<DataTableFeatures, TData> | null;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The single TanStack Table v9 feature set used by every table in this package.
|
|
3
|
+
*
|
|
4
|
+
* v9 made features opt-in and threaded a `TFeatures` generic through every
|
|
5
|
+
* public type (`ColumnDef<TFeatures, TData, TValue>`, `Row<TFeatures, TData>`,
|
|
6
|
+
* ...). Leaving that generic open would push the parameter into every exported
|
|
7
|
+
* type in this library and force consumers to thread it through their own code.
|
|
8
|
+
*
|
|
9
|
+
* Declaring one concrete feature set and referencing `DataTableFeatures`
|
|
10
|
+
* internally keeps our public types parameterised on `TData` alone, which is
|
|
11
|
+
* what they were in v8.
|
|
12
|
+
*
|
|
13
|
+
* `data-table` needs sorting, pagination and row selection; `grouped-table`
|
|
14
|
+
* additionally needs global filtering for its search box. Both need column
|
|
15
|
+
* sizing (`columnDef.size` drives the shared grid template) and column
|
|
16
|
+
* visibility (`enableHiding` on the injected selection column). The set is the
|
|
17
|
+
* union rather than `stockFeatures` so unused features stay out of the bundle.
|
|
18
|
+
*/
|
|
19
|
+
export declare const dataTableFeatures: {
|
|
20
|
+
columnFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
21
|
+
columnSizingFeature: import("@tanstack/react-table").TableFeature;
|
|
22
|
+
columnVisibilityFeature: import("@tanstack/react-table").TableFeature;
|
|
23
|
+
globalFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
24
|
+
rowPaginationFeature: import("@tanstack/react-table").TableFeature;
|
|
25
|
+
rowSelectionFeature: import("@tanstack/react-table").TableFeature;
|
|
26
|
+
rowSortingFeature: import("@tanstack/react-table").TableFeature;
|
|
27
|
+
filteredRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
28
|
+
paginatedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
29
|
+
sortedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
30
|
+
filterFns: {
|
|
31
|
+
arrIncludes: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
32
|
+
arrIncludesAll: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
33
|
+
arrHas: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
34
|
+
arrIncludesSome: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
35
|
+
between: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
36
|
+
betweenInclusive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
37
|
+
empty: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
38
|
+
endsWith: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
39
|
+
equals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
40
|
+
equalsString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
41
|
+
equalsStringSensitive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
42
|
+
inDateRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
43
|
+
inNumberRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
44
|
+
includesString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
45
|
+
includesStringSensitive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
46
|
+
notEmpty: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
47
|
+
startsWith: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
48
|
+
weakEquals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
49
|
+
};
|
|
50
|
+
sortFns: {
|
|
51
|
+
alphanumeric: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
52
|
+
alphanumericCaseSensitive: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
53
|
+
basic: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
54
|
+
datetime: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
55
|
+
text: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
56
|
+
textCaseSensitive: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export type DataTableFeatures = typeof dataTableFeatures;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { RowData } from '@tanstack/react-table';
|
|
1
2
|
import type { FilterFn, FilterStrategy } from '../types';
|
|
2
3
|
/**
|
|
3
4
|
* Resolve a dot-path on an object (e.g. "status.registrationApproval").
|
|
@@ -12,11 +13,11 @@ interface FilterStrategies {
|
|
|
12
13
|
[key: string]: FilterFn;
|
|
13
14
|
}
|
|
14
15
|
export declare const FILTER_STRATEGIES: FilterStrategies;
|
|
15
|
-
export interface SearchConfig<TData> {
|
|
16
|
+
export interface SearchConfig<TData extends RowData> {
|
|
16
17
|
searchFn?: (row: TData, query: string) => boolean;
|
|
17
18
|
searchableColumns?: string[];
|
|
18
19
|
}
|
|
19
20
|
/** True when a row matches a free-text query (custom fn → columns → all values). */
|
|
20
|
-
export declare function rowMatchesSearch<TData>(row: TData, search: string, config: SearchConfig<TData>): boolean;
|
|
21
|
-
export declare function applyFilters<TData>(data: TData[], filters: Record<string, unknown>, search: string, registeredFilters: Map<string, FilterStrategy>, customFilterFns: Record<string, FilterFn>, searchConfig: SearchConfig<TData>): TData[];
|
|
21
|
+
export declare function rowMatchesSearch<TData extends RowData>(row: TData, search: string, config: SearchConfig<TData>): boolean;
|
|
22
|
+
export declare function applyFilters<TData extends RowData>(data: TData[], filters: Record<string, unknown>, search: string, registeredFilters: Map<string, FilterStrategy>, customFilterFns: Record<string, FilterFn>, searchConfig: SearchConfig<TData>): TData[];
|
|
22
23
|
export {};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import type { RowData } from '@tanstack/react-table';
|
|
1
2
|
import type { ReactNode } from 'react';
|
|
2
3
|
import type { UseDataTableServerOptions } from '../types';
|
|
3
|
-
export type DataTableServerProviderProps<TResponse, TData> = UseDataTableServerOptions<TResponse, TData> & {
|
|
4
|
+
export type DataTableServerProviderProps<TResponse, TData extends RowData> = UseDataTableServerOptions<TResponse, TData> & {
|
|
4
5
|
readonly className?: string;
|
|
5
6
|
readonly children: ReactNode;
|
|
6
7
|
};
|
|
7
|
-
export declare function ServerProvider<TResponse, TData>(props: DataTableServerProviderProps<TResponse, TData>): import("react").JSX.Element;
|
|
8
|
+
export declare function ServerProvider<TResponse, TData extends RowData>(props: DataTableServerProviderProps<TResponse, TData>): import("react").JSX.Element;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import type { RowData } from '@tanstack/react-table';
|
|
1
2
|
import type { CreateStoreOptions, DataTableStore } from '../types';
|
|
2
|
-
export declare function createDataTableStore<TData>(options: CreateStoreOptions<TData>): DataTableStore<TData>;
|
|
3
|
+
export declare function createDataTableStore<TData extends RowData>(options: CreateStoreOptions<TData>): DataTableStore<TData>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { ColumnDef } from '@tanstack/react-table';
|
|
1
|
+
import type { ColumnDef, RowData } from '@tanstack/react-table';
|
|
2
|
+
import type { DataTableFeatures } from '../core/features';
|
|
2
3
|
import type { DataTableStore, SelectionColumnOptions, StateAdapter, UseDataTableClientOptions } from '../types';
|
|
3
4
|
export type { UseDataTableClientOptions };
|
|
4
|
-
export interface UseClientTableOptions<TData> {
|
|
5
|
-
readonly columns: ColumnDef<TData, unknown>[];
|
|
5
|
+
export interface UseClientTableOptions<TData extends RowData> {
|
|
6
|
+
readonly columns: ColumnDef<DataTableFeatures, TData, unknown>[];
|
|
6
7
|
readonly getRowId?: (row: TData) => string;
|
|
7
8
|
readonly enableRowSelection?: boolean | SelectionColumnOptions<TData>;
|
|
8
9
|
readonly stateAdapter?: StateAdapter;
|
|
@@ -11,10 +12,88 @@ export interface UseClientTableOptions<TData> {
|
|
|
11
12
|
* Creates a TanStack Table instance from an existing store.
|
|
12
13
|
* Does NOT create the store or sync data — the caller is responsible for that.
|
|
13
14
|
*/
|
|
14
|
-
export declare function useClientTable<TData>(store: DataTableStore<TData>, options: UseClientTableOptions<TData>): {
|
|
15
|
-
table: import("@tanstack/react-table").
|
|
15
|
+
export declare function useClientTable<TData extends RowData>(store: DataTableStore<TData>, options: UseClientTableOptions<TData>): {
|
|
16
|
+
table: import("@tanstack/react-table").ReactTable<{
|
|
17
|
+
columnFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
18
|
+
columnSizingFeature: import("@tanstack/react-table").TableFeature;
|
|
19
|
+
columnVisibilityFeature: import("@tanstack/react-table").TableFeature;
|
|
20
|
+
globalFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
21
|
+
rowPaginationFeature: import("@tanstack/react-table").TableFeature;
|
|
22
|
+
rowSelectionFeature: import("@tanstack/react-table").TableFeature;
|
|
23
|
+
rowSortingFeature: import("@tanstack/react-table").TableFeature;
|
|
24
|
+
filteredRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
25
|
+
paginatedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
26
|
+
sortedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
27
|
+
filterFns: {
|
|
28
|
+
arrIncludes: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
29
|
+
arrIncludesAll: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
30
|
+
arrHas: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
31
|
+
arrIncludesSome: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
32
|
+
between: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
33
|
+
betweenInclusive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
34
|
+
empty: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
35
|
+
endsWith: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
36
|
+
equals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
37
|
+
equalsString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
38
|
+
equalsStringSensitive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
39
|
+
inDateRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
40
|
+
inNumberRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
41
|
+
includesString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
42
|
+
includesStringSensitive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
43
|
+
notEmpty: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
44
|
+
startsWith: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
45
|
+
weakEquals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
46
|
+
};
|
|
47
|
+
sortFns: {
|
|
48
|
+
alphanumeric: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
49
|
+
alphanumericCaseSensitive: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
50
|
+
basic: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
51
|
+
datetime: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
52
|
+
text: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
53
|
+
textCaseSensitive: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
54
|
+
};
|
|
55
|
+
}, TData, import("@tanstack/react-table").TableState_ColumnFiltering & import("@tanstack/react-table").TableState_ColumnSizing & import("@tanstack/react-table").TableState_ColumnVisibility & import("@tanstack/react-table").TableState_GlobalFiltering & import("@tanstack/react-table").TableState_RowPagination & import("@tanstack/react-table").TableState_RowSelection & import("@tanstack/react-table").TableState_RowSorting>;
|
|
16
56
|
};
|
|
17
|
-
export declare function useDataTableClient<TData>(options: UseDataTableClientOptions<TData>): {
|
|
57
|
+
export declare function useDataTableClient<TData extends RowData>(options: UseDataTableClientOptions<TData>): {
|
|
18
58
|
store: DataTableStore<TData>;
|
|
19
|
-
table: import("@tanstack/react-table").
|
|
59
|
+
table: import("@tanstack/react-table").ReactTable<{
|
|
60
|
+
columnFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
61
|
+
columnSizingFeature: import("@tanstack/react-table").TableFeature;
|
|
62
|
+
columnVisibilityFeature: import("@tanstack/react-table").TableFeature;
|
|
63
|
+
globalFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
64
|
+
rowPaginationFeature: import("@tanstack/react-table").TableFeature;
|
|
65
|
+
rowSelectionFeature: import("@tanstack/react-table").TableFeature;
|
|
66
|
+
rowSortingFeature: import("@tanstack/react-table").TableFeature;
|
|
67
|
+
filteredRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
68
|
+
paginatedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
69
|
+
sortedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
70
|
+
filterFns: {
|
|
71
|
+
arrIncludes: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
72
|
+
arrIncludesAll: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
73
|
+
arrHas: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
74
|
+
arrIncludesSome: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
75
|
+
between: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
76
|
+
betweenInclusive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
77
|
+
empty: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
78
|
+
endsWith: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
79
|
+
equals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
80
|
+
equalsString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
81
|
+
equalsStringSensitive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
82
|
+
inDateRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
83
|
+
inNumberRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
84
|
+
includesString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
85
|
+
includesStringSensitive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
86
|
+
notEmpty: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
87
|
+
startsWith: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
88
|
+
weakEquals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
89
|
+
};
|
|
90
|
+
sortFns: {
|
|
91
|
+
alphanumeric: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
92
|
+
alphanumericCaseSensitive: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
93
|
+
basic: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
94
|
+
datetime: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
95
|
+
text: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
96
|
+
textCaseSensitive: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
97
|
+
};
|
|
98
|
+
}, TData, import("@tanstack/react-table").TableState_ColumnFiltering & import("@tanstack/react-table").TableState_ColumnSizing & import("@tanstack/react-table").TableState_ColumnVisibility & import("@tanstack/react-table").TableState_GlobalFiltering & import("@tanstack/react-table").TableState_RowPagination & import("@tanstack/react-table").TableState_RowSelection & import("@tanstack/react-table").TableState_RowSorting>;
|
|
20
99
|
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { ColumnDef } from '@tanstack/react-table';
|
|
1
|
+
import type { ColumnDef, RowData } from '@tanstack/react-table';
|
|
2
|
+
import type { DataTableFeatures } from '../core/features';
|
|
2
3
|
import type { DataTableStore, SelectionColumnOptions, ServerFetchArgs, ServerTransformResult, StateAdapter, UseDataTableServerOptions } from '../types';
|
|
3
4
|
export type { UseDataTableServerOptions };
|
|
4
|
-
export interface UseServerTableOptions<TResponse, TData> {
|
|
5
|
-
readonly columns: ColumnDef<TData, unknown>[];
|
|
5
|
+
export interface UseServerTableOptions<TResponse, TData extends RowData> {
|
|
6
|
+
readonly columns: ColumnDef<DataTableFeatures, TData, unknown>[];
|
|
6
7
|
readonly fetchFn: (args: ServerFetchArgs) => Promise<TResponse>;
|
|
7
8
|
readonly transform: (response: TResponse) => ServerTransformResult<TData>;
|
|
8
9
|
readonly limit?: number;
|
|
@@ -15,10 +16,88 @@ export interface UseServerTableOptions<TResponse, TData> {
|
|
|
15
16
|
* Handles fetch-on-query-change, cursor pagination, and state adapter sync.
|
|
16
17
|
* Does NOT create the store — the caller is responsible for that.
|
|
17
18
|
*/
|
|
18
|
-
export declare function useServerTable<TResponse, TData>(store: DataTableStore<TData>, options: UseServerTableOptions<TResponse, TData>): {
|
|
19
|
-
table: import("@tanstack/react-table").
|
|
19
|
+
export declare function useServerTable<TResponse, TData extends RowData>(store: DataTableStore<TData>, options: UseServerTableOptions<TResponse, TData>): {
|
|
20
|
+
table: import("@tanstack/react-table").ReactTable<{
|
|
21
|
+
columnFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
22
|
+
columnSizingFeature: import("@tanstack/react-table").TableFeature;
|
|
23
|
+
columnVisibilityFeature: import("@tanstack/react-table").TableFeature;
|
|
24
|
+
globalFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
25
|
+
rowPaginationFeature: import("@tanstack/react-table").TableFeature;
|
|
26
|
+
rowSelectionFeature: import("@tanstack/react-table").TableFeature;
|
|
27
|
+
rowSortingFeature: import("@tanstack/react-table").TableFeature;
|
|
28
|
+
filteredRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
29
|
+
paginatedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
30
|
+
sortedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
31
|
+
filterFns: {
|
|
32
|
+
arrIncludes: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
33
|
+
arrIncludesAll: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
34
|
+
arrHas: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
35
|
+
arrIncludesSome: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
36
|
+
between: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
37
|
+
betweenInclusive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
38
|
+
empty: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
39
|
+
endsWith: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
40
|
+
equals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
41
|
+
equalsString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
42
|
+
equalsStringSensitive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
43
|
+
inDateRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
44
|
+
inNumberRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
45
|
+
includesString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
46
|
+
includesStringSensitive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
47
|
+
notEmpty: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
48
|
+
startsWith: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
49
|
+
weakEquals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
50
|
+
};
|
|
51
|
+
sortFns: {
|
|
52
|
+
alphanumeric: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
53
|
+
alphanumericCaseSensitive: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
54
|
+
basic: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
55
|
+
datetime: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
56
|
+
text: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
57
|
+
textCaseSensitive: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
58
|
+
};
|
|
59
|
+
}, TData, import("@tanstack/react-table").TableState_ColumnFiltering & import("@tanstack/react-table").TableState_ColumnSizing & import("@tanstack/react-table").TableState_ColumnVisibility & import("@tanstack/react-table").TableState_GlobalFiltering & import("@tanstack/react-table").TableState_RowPagination & import("@tanstack/react-table").TableState_RowSelection & import("@tanstack/react-table").TableState_RowSorting>;
|
|
20
60
|
};
|
|
21
|
-
export declare function useDataTableServer<TResponse, TData>(options: UseDataTableServerOptions<TResponse, TData>): {
|
|
61
|
+
export declare function useDataTableServer<TResponse, TData extends RowData>(options: UseDataTableServerOptions<TResponse, TData>): {
|
|
22
62
|
store: DataTableStore<TData>;
|
|
23
|
-
table: import("@tanstack/react-table").
|
|
63
|
+
table: import("@tanstack/react-table").ReactTable<{
|
|
64
|
+
columnFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
65
|
+
columnSizingFeature: import("@tanstack/react-table").TableFeature;
|
|
66
|
+
columnVisibilityFeature: import("@tanstack/react-table").TableFeature;
|
|
67
|
+
globalFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
68
|
+
rowPaginationFeature: import("@tanstack/react-table").TableFeature;
|
|
69
|
+
rowSelectionFeature: import("@tanstack/react-table").TableFeature;
|
|
70
|
+
rowSortingFeature: import("@tanstack/react-table").TableFeature;
|
|
71
|
+
filteredRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
72
|
+
paginatedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
73
|
+
sortedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
|
|
74
|
+
filterFns: {
|
|
75
|
+
arrIncludes: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
76
|
+
arrIncludesAll: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
77
|
+
arrHas: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
78
|
+
arrIncludesSome: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
79
|
+
between: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
80
|
+
betweenInclusive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
81
|
+
empty: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
82
|
+
endsWith: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
83
|
+
equals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
84
|
+
equalsString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
85
|
+
equalsStringSensitive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
86
|
+
inDateRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
87
|
+
inNumberRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
88
|
+
includesString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
89
|
+
includesStringSensitive: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
90
|
+
notEmpty: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
91
|
+
startsWith: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
92
|
+
weakEquals: import("@tanstack/react-table").CreatedFilterFn<any, any>;
|
|
93
|
+
};
|
|
94
|
+
sortFns: {
|
|
95
|
+
alphanumeric: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
96
|
+
alphanumericCaseSensitive: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
97
|
+
basic: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
98
|
+
datetime: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
99
|
+
text: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
100
|
+
textCaseSensitive: import("@tanstack/react-table").CreatedSortFn<any, any>;
|
|
101
|
+
};
|
|
102
|
+
}, TData, import("@tanstack/react-table").TableState_ColumnFiltering & import("@tanstack/react-table").TableState_ColumnSizing & import("@tanstack/react-table").TableState_ColumnVisibility & import("@tanstack/react-table").TableState_GlobalFiltering & import("@tanstack/react-table").TableState_RowPagination & import("@tanstack/react-table").TableState_RowSelection & import("@tanstack/react-table").TableState_RowSorting>;
|
|
24
103
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { HeaderGroup, Row } from '@tanstack/react-table';
|
|
1
|
+
import type { HeaderGroup, Row, RowData } from '@tanstack/react-table';
|
|
2
|
+
import type { DataTableFeatures } from '../core/features';
|
|
2
3
|
import type { InlineContentEntry } from '../types';
|
|
3
4
|
export declare function useDataTableFilters(): {
|
|
4
5
|
filters: import("..").FilterValue;
|
|
@@ -17,7 +18,7 @@ export declare function useDataTableSorting(): {
|
|
|
17
18
|
sorting: import("@tanstack/react-table").SortingState;
|
|
18
19
|
setSorting: (sorting: import("@tanstack/react-table").SortingState) => void;
|
|
19
20
|
};
|
|
20
|
-
export declare function useDataTableSelection<TData>(): {
|
|
21
|
+
export declare function useDataTableSelection<TData extends RowData>(): {
|
|
21
22
|
rowSelection: import("@tanstack/react-table").RowSelectionState;
|
|
22
23
|
setRowSelection: (selection: import("@tanstack/react-table").RowSelectionState) => void;
|
|
23
24
|
selectedRows: TData[];
|
|
@@ -35,9 +36,9 @@ export declare function useDataTablePagination(): {
|
|
|
35
36
|
setPageSize: (size: number) => void;
|
|
36
37
|
totalRows: number;
|
|
37
38
|
};
|
|
38
|
-
export declare function useDataTableRows<TData>(): {
|
|
39
|
-
rows: Row<TData>[];
|
|
40
|
-
headerGroups: HeaderGroup<TData>[];
|
|
39
|
+
export declare function useDataTableRows<TData extends RowData>(): {
|
|
40
|
+
rows: Row<DataTableFeatures, TData>[];
|
|
41
|
+
headerGroups: HeaderGroup<DataTableFeatures, TData>[];
|
|
41
42
|
totalColumns: number;
|
|
42
43
|
};
|
|
43
44
|
export declare function useDataTableLoading(): {
|
|
@@ -45,7 +46,7 @@ export declare function useDataTableLoading(): {
|
|
|
45
46
|
error: Error | null;
|
|
46
47
|
columnCount: number;
|
|
47
48
|
};
|
|
48
|
-
export declare function useDataTableInlineContents<TData>(): {
|
|
49
|
+
export declare function useDataTableInlineContents<TData extends RowData>(): {
|
|
49
50
|
inlineContents: readonly InlineContentEntry<TData>[];
|
|
50
51
|
registerInlineContent: (entry: InlineContentEntry<TData>) => void;
|
|
51
52
|
unregisterInlineContent: (id: string) => void;
|
|
@@ -4,6 +4,8 @@ export { createSelectionColumn } from './columns/selection-column';
|
|
|
4
4
|
export { DataTableColumnHeader } from './components/column-header';
|
|
5
5
|
export { DataTableRowActions } from './components/row-actions';
|
|
6
6
|
export { DEFAULT_DEBOUNCE_MS, DEFAULT_LOADING_ROWS, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZES, } from './constants';
|
|
7
|
+
export { dataTableFeatures } from './core/features';
|
|
8
|
+
export type { DataTableFeatures } from './core/features';
|
|
7
9
|
export { resolvePath, rowMatchesSearch } from './core/filter-engine';
|
|
8
10
|
export type { SearchConfig } from './core/filter-engine';
|
|
9
11
|
export { createDataTableStore } from './core/store';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { Cell, Column, ColumnDef, Row, RowSelectionState, SortingState, Table } from '@tanstack/react-table';
|
|
1
|
+
import type { Cell, Column, ColumnDef, ReactTable, Row, RowData, RowSelectionState, SortingState, Table } from '@tanstack/react-table';
|
|
2
2
|
import type { ReactNode } from 'react';
|
|
3
3
|
import type { ActionItem } from '../more-actions';
|
|
4
|
+
import type { DataTableFeatures } from './core/features';
|
|
4
5
|
export type { ActionItem } from '../more-actions';
|
|
5
6
|
export interface FilterOption {
|
|
6
7
|
readonly label: string;
|
|
@@ -71,16 +72,16 @@ export interface ServerFetchArgs {
|
|
|
71
72
|
readonly filters: FilterValue;
|
|
72
73
|
readonly search: string;
|
|
73
74
|
}
|
|
74
|
-
export interface ServerTransformResult<TData> {
|
|
75
|
+
export interface ServerTransformResult<TData extends RowData> {
|
|
75
76
|
readonly data: TData[];
|
|
76
77
|
readonly cursor?: string;
|
|
77
78
|
readonly hasNextPage: boolean;
|
|
78
79
|
}
|
|
79
|
-
export interface InlineContentRenderParams<TData> {
|
|
80
|
+
export interface InlineContentRenderParams<TData extends RowData> {
|
|
80
81
|
readonly onClose: () => void;
|
|
81
82
|
readonly rowData: TData | null;
|
|
82
83
|
}
|
|
83
|
-
export interface InlineContentEntry<TData> {
|
|
84
|
+
export interface InlineContentEntry<TData extends RowData> {
|
|
84
85
|
readonly id: string;
|
|
85
86
|
readonly position: 'top' | 'row';
|
|
86
87
|
readonly rowId?: string;
|
|
@@ -89,7 +90,7 @@ export interface InlineContentEntry<TData> {
|
|
|
89
90
|
readonly className?: string;
|
|
90
91
|
readonly render: (params: InlineContentRenderParams<TData>) => ReactNode;
|
|
91
92
|
}
|
|
92
|
-
export interface InlineContentProps<TData> {
|
|
93
|
+
export interface InlineContentProps<TData extends RowData> {
|
|
93
94
|
readonly position: 'top' | 'row';
|
|
94
95
|
readonly rowId?: string;
|
|
95
96
|
readonly open: boolean;
|
|
@@ -97,22 +98,22 @@ export interface InlineContentProps<TData> {
|
|
|
97
98
|
readonly className?: string;
|
|
98
99
|
readonly children: (params: InlineContentRenderParams<TData>) => ReactNode;
|
|
99
100
|
}
|
|
100
|
-
export interface SelectionColumnOptions<TData =
|
|
101
|
+
export interface SelectionColumnOptions<TData extends RowData = Record<string, any>> {
|
|
101
102
|
/** CSS class for cell checkboxes */
|
|
102
103
|
readonly className?: string;
|
|
103
104
|
/** CSS class for header checkbox */
|
|
104
105
|
readonly headerClassName?: string;
|
|
105
106
|
/** Custom header render (replaces default "select all" checkbox) */
|
|
106
107
|
readonly renderHeader?: (props: {
|
|
107
|
-
table: Table<TData>;
|
|
108
|
+
table: Table<DataTableFeatures, TData>;
|
|
108
109
|
}) => ReactNode;
|
|
109
110
|
/** Custom cell render (replaces default row checkbox) */
|
|
110
111
|
readonly renderCell?: (props: {
|
|
111
|
-
row: Row<TData>;
|
|
112
|
+
row: Row<DataTableFeatures, TData>;
|
|
112
113
|
}) => ReactNode;
|
|
113
114
|
}
|
|
114
|
-
export interface DataTableContextValue<TData> {
|
|
115
|
-
readonly table:
|
|
115
|
+
export interface DataTableContextValue<TData extends RowData> {
|
|
116
|
+
readonly table: ReactTable<DataTableFeatures, TData>;
|
|
116
117
|
readonly mode: 'client' | 'server';
|
|
117
118
|
readonly sorting: SortingState;
|
|
118
119
|
readonly filters: FilterValue;
|
|
@@ -131,9 +132,9 @@ export interface DataTableContextValue<TData> {
|
|
|
131
132
|
readonly registerInlineContent: (entry: InlineContentEntry<TData>) => void;
|
|
132
133
|
readonly unregisterInlineContent: (id: string) => void;
|
|
133
134
|
}
|
|
134
|
-
export interface UseDataTableClientOptions<TData> {
|
|
135
|
+
export interface UseDataTableClientOptions<TData extends RowData> {
|
|
135
136
|
readonly data: TData[];
|
|
136
|
-
readonly columns: ColumnDef<TData, unknown>[];
|
|
137
|
+
readonly columns: ColumnDef<DataTableFeatures, TData, unknown>[];
|
|
137
138
|
readonly pageSize?: number;
|
|
138
139
|
readonly getRowId?: (row: TData) => string;
|
|
139
140
|
readonly enableRowSelection?: boolean | SelectionColumnOptions<TData>;
|
|
@@ -144,8 +145,8 @@ export interface UseDataTableClientOptions<TData> {
|
|
|
144
145
|
readonly filterFns?: FilterFnMap;
|
|
145
146
|
readonly stateAdapter?: StateAdapter;
|
|
146
147
|
}
|
|
147
|
-
export interface UseDataTableServerOptions<TResponse, TData> {
|
|
148
|
-
readonly columns: ColumnDef<TData, unknown>[];
|
|
148
|
+
export interface UseDataTableServerOptions<TResponse, TData extends RowData> {
|
|
149
|
+
readonly columns: ColumnDef<DataTableFeatures, TData, unknown>[];
|
|
149
150
|
readonly fetchFn: (args: ServerFetchArgs) => Promise<TResponse>;
|
|
150
151
|
readonly transform: (response: TResponse) => ServerTransformResult<TData>;
|
|
151
152
|
readonly limit?: number;
|
|
@@ -155,9 +156,9 @@ export interface UseDataTableServerOptions<TResponse, TData> {
|
|
|
155
156
|
readonly defaultFilters?: FilterValue;
|
|
156
157
|
readonly stateAdapter?: StateAdapter;
|
|
157
158
|
}
|
|
158
|
-
interface DataTableBaseProps<TData> {
|
|
159
|
+
interface DataTableBaseProps<TData extends RowData> {
|
|
159
160
|
readonly data: TData[];
|
|
160
|
-
readonly columns: ColumnDef<TData, unknown>[];
|
|
161
|
+
readonly columns: ColumnDef<DataTableFeatures, TData, unknown>[];
|
|
161
162
|
readonly sorting: SortingState;
|
|
162
163
|
readonly setSorting: (sorting: SortingState) => void;
|
|
163
164
|
readonly filters: FilterValue;
|
|
@@ -174,12 +175,12 @@ interface DataTableBaseProps<TData> {
|
|
|
174
175
|
readonly className?: string;
|
|
175
176
|
readonly children: ReactNode;
|
|
176
177
|
}
|
|
177
|
-
export interface DataTableClientProps<TData> extends DataTableBaseProps<TData> {
|
|
178
|
+
export interface DataTableClientProps<TData extends RowData> extends DataTableBaseProps<TData> {
|
|
178
179
|
readonly pagination: ClientPaginationState;
|
|
179
180
|
readonly searchableColumns?: string[];
|
|
180
181
|
readonly searchFn?: (row: TData, search: string) => boolean;
|
|
181
182
|
}
|
|
182
|
-
export interface DataTableServerProps<TData> extends DataTableBaseProps<TData> {
|
|
183
|
+
export interface DataTableServerProps<TData extends RowData> extends DataTableBaseProps<TData> {
|
|
183
184
|
readonly isLoading: boolean;
|
|
184
185
|
readonly pagination: ServerPaginationState;
|
|
185
186
|
}
|
|
@@ -224,24 +225,24 @@ export interface FilterCheckboxProps {
|
|
|
224
225
|
readonly sheetTitle?: string;
|
|
225
226
|
readonly modal?: boolean;
|
|
226
227
|
}
|
|
227
|
-
export interface ColumnHeaderProps<TData, TValue> {
|
|
228
|
-
readonly column: Column<TData, TValue>;
|
|
228
|
+
export interface ColumnHeaderProps<TData extends RowData, TValue> {
|
|
229
|
+
readonly column: Column<DataTableFeatures, TData, TValue>;
|
|
229
230
|
readonly title: string;
|
|
230
231
|
readonly className?: string;
|
|
231
232
|
}
|
|
232
|
-
export interface RowActionsProps<TData> {
|
|
233
|
-
readonly row: Row<TData>;
|
|
233
|
+
export interface RowActionsProps<TData extends RowData> {
|
|
234
|
+
readonly row: Row<DataTableFeatures, TData>;
|
|
234
235
|
readonly actions: readonly ActionItem<TData>[];
|
|
235
236
|
readonly isLoading?: boolean;
|
|
236
237
|
readonly className?: string;
|
|
237
238
|
readonly responsive?: boolean;
|
|
238
239
|
readonly sheetTitle?: string;
|
|
239
240
|
}
|
|
240
|
-
export interface BulkActionsProps<TData> {
|
|
241
|
+
export interface BulkActionsProps<TData extends RowData> {
|
|
241
242
|
readonly children: (selectedRows: TData[]) => ReactNode;
|
|
242
243
|
readonly className?: string;
|
|
243
244
|
}
|
|
244
|
-
export interface ContentProps<TData =
|
|
245
|
+
export interface ContentProps<TData extends RowData = Record<string, any>> {
|
|
245
246
|
readonly emptyMessage?: ReactNode;
|
|
246
247
|
readonly className?: string;
|
|
247
248
|
readonly tableClassName?: string;
|
|
@@ -249,8 +250,8 @@ export interface ContentProps<TData = unknown> {
|
|
|
249
250
|
readonly headerRowClassName?: string;
|
|
250
251
|
readonly headerCellClassName?: string;
|
|
251
252
|
readonly bodyClassName?: string;
|
|
252
|
-
readonly rowClassName?: string | ((row: Row<TData>) => string);
|
|
253
|
-
readonly cellClassName?: string | ((cell: Cell<TData, unknown>) => string);
|
|
253
|
+
readonly rowClassName?: string | ((row: Row<DataTableFeatures, TData>) => string);
|
|
254
|
+
readonly cellClassName?: string | ((cell: Cell<DataTableFeatures, TData, unknown>) => string);
|
|
254
255
|
}
|
|
255
256
|
export interface PaginationProps {
|
|
256
257
|
readonly pageSizes?: readonly number[];
|
|
@@ -282,7 +283,7 @@ export interface LoadingProps {
|
|
|
282
283
|
readonly className?: string;
|
|
283
284
|
}
|
|
284
285
|
export type FilterStrategy = 'checkbox' | 'select' | 'date-gte' | 'date-lte' | FilterFn;
|
|
285
|
-
export interface DataTableStoreState<TData> {
|
|
286
|
+
export interface DataTableStoreState<TData extends RowData> {
|
|
286
287
|
readonly data: TData[];
|
|
287
288
|
readonly filteredData: TData[];
|
|
288
289
|
readonly sorting: SortingState;
|
|
@@ -299,7 +300,7 @@ export interface DataTableStoreState<TData> {
|
|
|
299
300
|
/** Monotonic counter incremented on every state change. Used by table-dependent selectors to detect updates. */
|
|
300
301
|
readonly _version: number;
|
|
301
302
|
}
|
|
302
|
-
export interface DataTableStore<TData> {
|
|
303
|
+
export interface DataTableStore<TData extends RowData> {
|
|
303
304
|
readonly getSnapshot: () => DataTableStoreState<TData>;
|
|
304
305
|
readonly subscribe: (listener: () => void) => () => void;
|
|
305
306
|
readonly setData: (data: TData[]) => void;
|
|
@@ -321,7 +322,7 @@ export interface DataTableStore<TData> {
|
|
|
321
322
|
readonly registerInlineContent: (entry: InlineContentEntry<TData>) => void;
|
|
322
323
|
readonly unregisterInlineContent: (id: string) => void;
|
|
323
324
|
}
|
|
324
|
-
export interface CreateStoreOptions<TData> {
|
|
325
|
+
export interface CreateStoreOptions<TData extends RowData> {
|
|
325
326
|
readonly data: TData[];
|
|
326
327
|
readonly mode: 'client' | 'server';
|
|
327
328
|
readonly defaultSort?: SortingState;
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import type { RowData } from '@tanstack/react-table';
|
|
1
2
|
import type { GroupedTableProps } from './types';
|
|
2
|
-
export declare function GroupedTable<TData>(props: GroupedTableProps<TData>): import("react").JSX.Element;
|
|
3
|
+
export declare function GroupedTable<TData extends RowData>(props: GroupedTableProps<TData>): import("react").JSX.Element;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { Row } from '@tanstack/react-table';
|
|
1
|
+
import type { Row, RowData } from '@tanstack/react-table';
|
|
2
|
+
import type { DataTableFeatures } from '../../data-table/core/features';
|
|
2
3
|
interface GroupLike {
|
|
3
4
|
id: string;
|
|
4
5
|
rows: unknown[];
|
|
@@ -9,5 +10,5 @@ interface GroupLike {
|
|
|
9
10
|
* positions to learn which row id belongs to which group, so bucketing is correct
|
|
10
11
|
* regardless of a custom getRowId.
|
|
11
12
|
*/
|
|
12
|
-
export declare function bucketRows<TData>(groups: GroupLike[], coreRows: Row<TData>[], filteredRows: Row<TData>[]): Map<string, Row<TData>[]>;
|
|
13
|
+
export declare function bucketRows<TData extends RowData>(groups: GroupLike[], coreRows: Row<DataTableFeatures, TData>[], filteredRows: Row<DataTableFeatures, TData>[]): Map<string, Row<DataTableFeatures, TData>[]>;
|
|
13
14
|
export {};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type { ColumnDef } from '@tanstack/react-table';
|
|
1
|
+
import type { ColumnDef, RowData } from '@tanstack/react-table';
|
|
2
2
|
import type { SelectionColumnOptions } from '../../data-table';
|
|
3
|
+
import type { DataTableFeatures } from '../../data-table/core/features';
|
|
3
4
|
import type { ActionItem } from '../../more-actions';
|
|
4
|
-
export interface ComposeOptions<TData> {
|
|
5
|
+
export interface ComposeOptions<TData extends RowData> {
|
|
5
6
|
enableRowSelection?: boolean | SelectionColumnOptions<TData>;
|
|
6
7
|
enableSorting?: boolean;
|
|
7
8
|
rowActions?: (row: TData) => ActionItem<TData>[];
|
|
8
9
|
rowActionsSheetTitle?: string;
|
|
9
10
|
}
|
|
10
|
-
export declare function composeColumns<TData>(columns: ColumnDef<TData, unknown>[], options: ComposeOptions<TData>): ColumnDef<TData, unknown>[];
|
|
11
|
+
export declare function composeColumns<TData extends RowData>(columns: ColumnDef<DataTableFeatures, TData, unknown>[], options: ComposeOptions<TData>): ColumnDef<DataTableFeatures, TData, unknown>[];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { Row, SortingState } from '@tanstack/react-table';
|
|
1
|
+
import type { Row, RowData, SortingState } from '@tanstack/react-table';
|
|
2
|
+
import type { DataTableFeatures } from '../../data-table/core/features';
|
|
2
3
|
/**
|
|
3
4
|
* Sort a single group's rows by the active sort (first entry; v1 is single-sort).
|
|
4
5
|
* Returns the same reference when there is no sort, so React can skip re-renders.
|
|
5
6
|
*/
|
|
6
|
-
export declare function sortRows<TData>(rows: Row<TData>[], sorting: SortingState): Row<TData>[];
|
|
7
|
+
export declare function sortRows<TData extends RowData>(rows: Row<DataTableFeatures, TData>[], sorting: SortingState): Row<DataTableFeatures, TData>[];
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { Cell, ColumnDef, Row, RowSelectionState, SortingState } from '@tanstack/react-table';
|
|
1
|
+
import type { Cell, ColumnDef, Row, RowData, RowSelectionState, SortingState } from '@tanstack/react-table';
|
|
2
2
|
import type { ReactNode } from 'react';
|
|
3
3
|
import type { SelectionColumnOptions } from '../data-table';
|
|
4
|
+
import type { DataTableFeatures } from '../data-table/core/features';
|
|
4
5
|
import type { ActionItem } from '../more-actions';
|
|
5
6
|
export type DefaultExpanded = 'all' | 'none' | string[];
|
|
6
|
-
export interface GroupedTableGroup<TData> {
|
|
7
|
+
export interface GroupedTableGroup<TData extends RowData> {
|
|
7
8
|
/** Stable key used for expand state. */
|
|
8
9
|
id: string;
|
|
9
10
|
/** Group header label. */
|
|
@@ -14,9 +15,9 @@ export interface GroupedTableGroup<TData> {
|
|
|
14
15
|
/** Per-group override of the table-level default. */
|
|
15
16
|
defaultOpen?: boolean;
|
|
16
17
|
}
|
|
17
|
-
export interface GroupedTableProps<TData> {
|
|
18
|
+
export interface GroupedTableProps<TData extends RowData> {
|
|
18
19
|
/** TanStack column defs. `size` (px) drives the shared grid template; unsized columns flex. */
|
|
19
|
-
columns: ColumnDef<TData, unknown>[];
|
|
20
|
+
columns: ColumnDef<DataTableFeatures, TData, unknown>[];
|
|
20
21
|
groups: GroupedTableGroup<TData>[];
|
|
21
22
|
/** Uncontrolled initial state. Default `'all'`. A string[] opens exactly those ids. */
|
|
22
23
|
defaultExpanded?: DefaultExpanded;
|
|
@@ -67,7 +68,7 @@ export interface GroupedTableProps<TData> {
|
|
|
67
68
|
/** Each group's `<tbody>`. */
|
|
68
69
|
bodyClassName?: string;
|
|
69
70
|
/** Each data `<tr>`; receives the row for per-row styling. */
|
|
70
|
-
rowClassName?: string | ((row: Row<TData>) => string);
|
|
71
|
+
rowClassName?: string | ((row: Row<DataTableFeatures, TData>) => string);
|
|
71
72
|
/** Each data `<td>`; receives the cell for per-cell styling. */
|
|
72
|
-
cellClassName?: string | ((cell: Cell<TData, unknown>) => string);
|
|
73
|
+
cellClassName?: string | ((cell: Cell<DataTableFeatures, TData, unknown>) => string);
|
|
73
74
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { RowData } from '@tanstack/react-table';
|
|
1
2
|
import type { DefaultExpanded, GroupedTableGroup } from './types';
|
|
2
|
-
export declare function useGroupedExpansion<TData>(groups: GroupedTableGroup<TData>[], opts: {
|
|
3
|
+
export declare function useGroupedExpansion<TData extends RowData>(groups: GroupedTableGroup<TData>[], opts: {
|
|
3
4
|
defaultExpanded?: DefaultExpanded;
|
|
4
5
|
expanded?: string[];
|
|
5
6
|
onExpandedChange?: (ids: string[]) => void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as
|
|
2
|
-
export { DEFAULT_DEBOUNCE_MS, DEFAULT_LOADING_ROWS, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZES, DataTable, DataTableColumnHeader, DataTableRowActions, createDataTableStore, createSelectionColumn, resolvePath, rowMatchesSearch, useDataTableFilters, useDataTableInlineContents, useDataTableLoading, useDataTablePagination, useDataTableRows, useDataTableSearch, useDataTableSelection, useDataTableSorting, useNuqsAdapter };
|
|
1
|
+
import { _ as useNuqsAdapter, a as useDataTablePagination, b as DEFAULT_PAGE_SIZE, c as useDataTableSelection, d as resolvePath, f as rowMatchesSearch, g as createSelectionColumn, h as DataTableColumnHeader, i as useDataTableLoading, l as useDataTableSorting, m as DataTableRowActions, n as useDataTableFilters, o as useDataTableRows, p as dataTableFeatures, r as useDataTableInlineContents, s as useDataTableSearch, t as DataTable, u as createDataTableStore, v as DEFAULT_DEBOUNCE_MS, x as DEFAULT_PAGE_SIZES, y as DEFAULT_LOADING_ROWS } from "../data-table-DjGvAdO_.mjs";
|
|
2
|
+
export { DEFAULT_DEBOUNCE_MS, DEFAULT_LOADING_ROWS, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZES, DataTable, DataTableColumnHeader, DataTableRowActions, createDataTableStore, createSelectionColumn, dataTableFeatures, resolvePath, rowMatchesSearch, useDataTableFilters, useDataTableInlineContents, useDataTableLoading, useDataTablePagination, useDataTableRows, useDataTableSearch, useDataTableSelection, useDataTableSorting, useNuqsAdapter };
|
|
@@ -16,7 +16,7 @@ import { ArrowDown, ArrowUp, ArrowUpDown, ChevronLeft, ChevronRight, MoreHorizon
|
|
|
16
16
|
import { createContext, memo, use, useCallback, useContext, useEffect, useId, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
17
17
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
18
18
|
import { parseAsInteger, parseAsString, useQueryStates } from "nuqs";
|
|
19
|
-
import { flexRender,
|
|
19
|
+
import { columnFilteringFeature, columnSizingFeature, columnVisibilityFeature, createFilteredRowModel, createPaginatedRowModel, createSortedRowModel, filterFns, flexRender, globalFilteringFeature, rowPaginationFeature, rowSelectionFeature, rowSortingFeature, sortFns, tableFeatures, useTable } from "@tanstack/react-table";
|
|
20
20
|
//#region src/components/features/data-table/constants.ts
|
|
21
21
|
const DEFAULT_PAGE_SIZE = 20;
|
|
22
22
|
const DEFAULT_PAGE_SIZES = [
|
|
@@ -206,6 +206,40 @@ function DataTableRowActions({ row, actions, isLoading = false, className, respo
|
|
|
206
206
|
});
|
|
207
207
|
}
|
|
208
208
|
//#endregion
|
|
209
|
+
//#region src/components/features/data-table/core/features.ts
|
|
210
|
+
/**
|
|
211
|
+
* The single TanStack Table v9 feature set used by every table in this package.
|
|
212
|
+
*
|
|
213
|
+
* v9 made features opt-in and threaded a `TFeatures` generic through every
|
|
214
|
+
* public type (`ColumnDef<TFeatures, TData, TValue>`, `Row<TFeatures, TData>`,
|
|
215
|
+
* ...). Leaving that generic open would push the parameter into every exported
|
|
216
|
+
* type in this library and force consumers to thread it through their own code.
|
|
217
|
+
*
|
|
218
|
+
* Declaring one concrete feature set and referencing `DataTableFeatures`
|
|
219
|
+
* internally keeps our public types parameterised on `TData` alone, which is
|
|
220
|
+
* what they were in v8.
|
|
221
|
+
*
|
|
222
|
+
* `data-table` needs sorting, pagination and row selection; `grouped-table`
|
|
223
|
+
* additionally needs global filtering for its search box. Both need column
|
|
224
|
+
* sizing (`columnDef.size` drives the shared grid template) and column
|
|
225
|
+
* visibility (`enableHiding` on the injected selection column). The set is the
|
|
226
|
+
* union rather than `stockFeatures` so unused features stay out of the bundle.
|
|
227
|
+
*/
|
|
228
|
+
const dataTableFeatures = tableFeatures({
|
|
229
|
+
columnFilteringFeature,
|
|
230
|
+
columnSizingFeature,
|
|
231
|
+
columnVisibilityFeature,
|
|
232
|
+
globalFilteringFeature,
|
|
233
|
+
rowPaginationFeature,
|
|
234
|
+
rowSelectionFeature,
|
|
235
|
+
rowSortingFeature,
|
|
236
|
+
filteredRowModel: createFilteredRowModel(),
|
|
237
|
+
paginatedRowModel: createPaginatedRowModel(),
|
|
238
|
+
sortedRowModel: createSortedRowModel(),
|
|
239
|
+
filterFns,
|
|
240
|
+
sortFns
|
|
241
|
+
});
|
|
242
|
+
//#endregion
|
|
209
243
|
//#region src/components/features/data-table/core/filter-engine.ts
|
|
210
244
|
/**
|
|
211
245
|
* Resolve a dot-path on an object (e.g. "status.registrationApproval").
|
|
@@ -1107,7 +1141,8 @@ function useClientTable(store, options) {
|
|
|
1107
1141
|
const { columns, getRowId, enableRowSelection = false, stateAdapter } = options;
|
|
1108
1142
|
const resolvedColumns = useMemo(() => enableRowSelection ? withSelectionColumn(columns, typeof enableRowSelection === "object" ? enableRowSelection : {}) : columns, [columns, enableRowSelection]);
|
|
1109
1143
|
const { filteredData, sorting, rowSelection, pageIndex, pageSize: storePageSize, filters, search } = useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);
|
|
1110
|
-
const table =
|
|
1144
|
+
const table = useTable({
|
|
1145
|
+
features: dataTableFeatures,
|
|
1111
1146
|
data: filteredData,
|
|
1112
1147
|
columns: resolvedColumns,
|
|
1113
1148
|
state: {
|
|
@@ -1133,9 +1168,6 @@ function useClientTable(store, options) {
|
|
|
1133
1168
|
}) : updater;
|
|
1134
1169
|
store.setPagination(next.pageIndex, next.pageSize);
|
|
1135
1170
|
},
|
|
1136
|
-
getCoreRowModel: getCoreRowModel(),
|
|
1137
|
-
getSortedRowModel: getSortedRowModel(),
|
|
1138
|
-
getPaginationRowModel: getPaginationRowModel(),
|
|
1139
1171
|
getRowId,
|
|
1140
1172
|
enableRowSelection: !!enableRowSelection
|
|
1141
1173
|
});
|
|
@@ -1345,7 +1377,8 @@ function useServerTable(store, options) {
|
|
|
1345
1377
|
store
|
|
1346
1378
|
]);
|
|
1347
1379
|
const resolvedColumns = useMemo(() => enableRowSelection ? withSelectionColumn(columns, typeof enableRowSelection === "object" ? enableRowSelection : {}) : columns, [columns, enableRowSelection]);
|
|
1348
|
-
const table =
|
|
1380
|
+
const table = useTable({
|
|
1381
|
+
features: dataTableFeatures,
|
|
1349
1382
|
data: store.getSnapshot().data,
|
|
1350
1383
|
columns: resolvedColumns,
|
|
1351
1384
|
state: {
|
|
@@ -1360,7 +1393,6 @@ function useServerTable(store, options) {
|
|
|
1360
1393
|
manualSorting: true,
|
|
1361
1394
|
manualFiltering: true,
|
|
1362
1395
|
pageCount: hasNextPageRef.current ? pageIndex + 2 : pageIndex + 1,
|
|
1363
|
-
getCoreRowModel: getCoreRowModel(),
|
|
1364
1396
|
getRowId,
|
|
1365
1397
|
enableRowSelection: !!enableRowSelection,
|
|
1366
1398
|
onSortingChange: (updater) => {
|
|
@@ -1579,4 +1611,4 @@ const DataTable = {
|
|
|
1579
1611
|
DatePickerFilter
|
|
1580
1612
|
};
|
|
1581
1613
|
//#endregion
|
|
1582
|
-
export {
|
|
1614
|
+
export { useNuqsAdapter as _, useDataTablePagination as a, DEFAULT_PAGE_SIZE as b, useDataTableSelection as c, resolvePath as d, rowMatchesSearch as f, createSelectionColumn as g, DataTableColumnHeader as h, useDataTableLoading as i, useDataTableSorting as l, DataTableRowActions as m, useDataTableFilters as n, useDataTableRows as o, dataTableFeatures as p, useDataTableInlineContents as r, useDataTableSearch as s, DataTable as t, createDataTableStore as u, DEFAULT_DEBOUNCE_MS as v, DEFAULT_PAGE_SIZES as x, DEFAULT_LOADING_ROWS as y };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as GroupedTable } from "../grouped-table-
|
|
1
|
+
import { t as GroupedTable } from "../grouped-table-D4J3ioHb.mjs";
|
|
2
2
|
export { GroupedTable };
|
|
@@ -5,12 +5,12 @@ import { t as useControllableState } from "./use-controllable-state-Dna7u3r9.mjs
|
|
|
5
5
|
import { t as Input } from "./input-j4tbmYYz.mjs";
|
|
6
6
|
import { Skeleton } from "./skeleton/index.mjs";
|
|
7
7
|
import { TableBody, TableCell, TableHead, TableHeader, TableRow } from "./table/index.mjs";
|
|
8
|
-
import { f as rowMatchesSearch,
|
|
8
|
+
import { f as rowMatchesSearch, g as createSelectionColumn, h as DataTableColumnHeader, m as DataTableRowActions, p as dataTableFeatures } from "./data-table-DjGvAdO_.mjs";
|
|
9
9
|
import { n as useDebouncedSearchInput } from "./use-debounced-search-input-yu_F0QBt.mjs";
|
|
10
10
|
import { ChevronRight } from "lucide-react";
|
|
11
11
|
import { useCallback, useMemo, useState } from "react";
|
|
12
12
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
-
import { flexRender,
|
|
13
|
+
import { flexRender, useTable } from "@tanstack/react-table";
|
|
14
14
|
//#region src/components/features/grouped-table/components/grouped-skeleton.tsx
|
|
15
15
|
function GroupedSkeleton({ columns = 4, groups = 2, rowsPerGroup = 3 }) {
|
|
16
16
|
return /* @__PURE__ */ jsx("div", {
|
|
@@ -216,7 +216,8 @@ function GroupedTable(props) {
|
|
|
216
216
|
]);
|
|
217
217
|
const minWidth = useMemo(() => trackMinWidth(resolvedColumns), [resolvedColumns]);
|
|
218
218
|
const flatData = useMemo(() => groups.flatMap((g) => g.rows), [groups]);
|
|
219
|
-
const table =
|
|
219
|
+
const table = useTable({
|
|
220
|
+
features: dataTableFeatures,
|
|
220
221
|
data: flatData,
|
|
221
222
|
columns: resolvedColumns,
|
|
222
223
|
state: {
|
|
@@ -234,9 +235,7 @@ function GroupedTable(props) {
|
|
|
234
235
|
searchFn,
|
|
235
236
|
searchableColumns
|
|
236
237
|
}),
|
|
237
|
-
getRowId
|
|
238
|
-
getCoreRowModel: getCoreRowModel(),
|
|
239
|
-
getFilteredRowModel: getFilteredRowModel()
|
|
238
|
+
getRowId
|
|
240
239
|
});
|
|
241
240
|
const headerGroups = table.getHeaderGroups();
|
|
242
241
|
const coreRows = table.getCoreRowModel().rows;
|
package/dist/index.mjs
CHANGED
|
@@ -53,7 +53,7 @@ import { i as ClientOnly, n as useTheme, r as ThemeScript, t as ThemeProvider }
|
|
|
53
53
|
import { a as formatJson, c as isValidYaml, d as CodeEditor, i as CodeEditorTabs, l as jsonToYaml, n as jsonSchema, o as formatYaml, r as yamlSchema, s as isValidJson, t as createCodeEditorSchema, u as yamlToJson } from "./types-agDpVXBG.mjs";
|
|
54
54
|
import { t as toast } from "./toast-BUPlDkN3.mjs";
|
|
55
55
|
import { n as Toaster, t as useToast } from "./use-toast-Bpq0yJIT.mjs";
|
|
56
|
-
import { _ as
|
|
56
|
+
import { _ as useNuqsAdapter, a as useDataTablePagination, b as DEFAULT_PAGE_SIZE, c as useDataTableSelection, d as resolvePath, f as rowMatchesSearch, g as createSelectionColumn, h as DataTableColumnHeader, i as useDataTableLoading, l as useDataTableSorting, m as DataTableRowActions, n as useDataTableFilters, o as useDataTableRows, p as dataTableFeatures, r as useDataTableInlineContents, s as useDataTableSearch, t as DataTable, u as createDataTableStore, v as DEFAULT_DEBOUNCE_MS, x as DEFAULT_PAGE_SIZES, y as DEFAULT_LOADING_ROWS } from "./data-table-DjGvAdO_.mjs";
|
|
57
57
|
import { t as ActionRow } from "./action-row-DTvs91_3.mjs";
|
|
58
58
|
import { n as useDebouncedSearchInput, t as DEFAULT_SEARCH_DEBOUNCE_MS } from "./use-debounced-search-input-yu_F0QBt.mjs";
|
|
59
59
|
import { t as MultiSelect } from "./multi-select-PHaMEbY-.mjs";
|
|
@@ -68,7 +68,7 @@ import { InputWithAddons } from "./input-with-addons/index.mjs";
|
|
|
68
68
|
import { t as TimePicker } from "./time-picker-B_fN5vhO.mjs";
|
|
69
69
|
import { t as Transfer } from "./transfer-CEq9AhL7.mjs";
|
|
70
70
|
import { a as getResponsiveValue, c as GRID_COLUMNS, d as RESPONSIVE_MAP, i as getGutter, l as GRID_PREFIX, n as Row, o as registerMediaQuery, r as RowContext, s as GRID_BREAKPOINTS, t as Col, u as RESPONSIVE_ARRAY } from "./col-BYGWTB4j.mjs";
|
|
71
|
-
import { t as GroupedTable } from "./grouped-table-
|
|
71
|
+
import { t as GroupedTable } from "./grouped-table-D4J3ioHb.mjs";
|
|
72
72
|
import { t as InputNumber } from "./input-number-TXmW-X9o.mjs";
|
|
73
73
|
import { a as logoStyles, i as LogoFlat, n as LogoStacked, r as LogoIcon, t as LogoText } from "./logo-text-Dpm5O6Kg.mjs";
|
|
74
74
|
import { t as Logo } from "./logo-C3FxD7jb.mjs";
|
|
@@ -82,4 +82,4 @@ import { _ as RedisTaskStorage, a as TaskPanelItem, b as createProjectMetadata,
|
|
|
82
82
|
import { _ as getShortTimezoneDisplay, a as TimeRangePicker, b as utcToLocalInputString, c as getPresetByKey, d as TimezoneSelector, f as QuickRangesPanel, g as getDefaultTimezoneOptions, h as formatUtcForDisplay, i as formatTimeRangeDisplay, l as getPresetByShortcut, m as createTimezoneOption, n as formatDateForInput, o as DEFAULT_PRESETS, p as CustomRangePanel, r as formatSingleTimeDisplay, s as getDefaultPreset, t as toApiTimeRange, u as getPresetRange, v as localInputStringToUtc, x as zonedDateToUtcString, y as utcStringToZonedDate } from "./to-api-format-43Boq7OR.mjs";
|
|
83
83
|
import { t as useDebounce } from "./hooks-CwZ6hyI1.mjs";
|
|
84
84
|
import { n as toUTCTimestampStartOfDay, t as toUTCTimestampEndOfDay } from "./utils-CA4QEIJ8.mjs";
|
|
85
|
-
export { CustomRangePanel as AbsoluteRangePanel, CustomRangePanel, ActionRow, Alert, AlertDescription, AlertTitle, AppNavigation, Autocomplete, Autosearch, Avatar, AvatarFallback, AvatarImage, AvatarStack, Badge, Blockquote, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDatePicker, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, ClientOnly, CloseIcon, Code, CodeEditor, CodeEditorTabs, Col, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DEFAULT_DEBOUNCE_MS, DEFAULT_LOADING_ROWS, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZES, DEFAULT_PRESETS, DEFAULT_SEARCH_DEBOUNCE_MS, DataTable, DataTableColumnHeader, DataTableRowActions, DateTimePicker, Dialog, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneContent, DropzoneEmptyState, EmptyContent, FileInputButton, Form, FormAdapterProvider, FormAutocomplete, FormAutosearch, FormButton, FormCheckbox, FormCombobox, FormCopyBox, FormCustom, FormDatePicker, FormDateTimePicker, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormSubmit, FormSwitch, FormTextarea, FormTimePicker, FormTransfer, FormWhen, GRID_BREAKPOINTS, GRID_COLUMNS, GRID_PREFIX, GroupedTable, HoverCard, HoverCardContent, HoverCardTrigger, Icon, InSheetContext, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputNumber, InputWithAddons, Label, Link, LinkButton, List, ListItem, LoaderOverlay, LocalTaskStorage, Logo, LogoFlat, LogoIcon, LogoStacked, LogoText, Map, MapCircle, MapCircleMarker, MapControlContainer, MapDrawCircle, MapDrawControl, MapDrawDelete, MapDrawEdit, MapDrawMarker, MapDrawPolygon, MapDrawPolyline, MapDrawRectangle, MapDrawUndo, MapFeatureGroup, MapFullscreenControl, MapLayerGroup, MapLayers, MapLayersControl, MapLocateControl, MapMarker, MapMarkerClusterGroup, MapPolygon, MapPolyline, MapPopup, MapRectangle, MapSearchControl, MapTileLayer, MapTooltip, MapZoomControl, MobileSheet, MoreActions, MultiSelect, NavMenu, NavMenuItem, PageTitle, Paragraph, PlaceAutocomplete, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, QuickRangesPanel, RESPONSIVE_ARRAY, RESPONSIVE_MAP, RadioGroup, RadioGroupItem, RedisTaskStorage, ResponsiveDropdown, ResponsivePopover, ResponsiveSheetTrigger, RichTextContent, RichTextEditor, Row, RowContext, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, SpinnerIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsLinkTrigger, TabsList, TabsTrigger, TagsInput, TaskPanel, TaskPanelActions, TaskPanelCounter, TaskPanelHeader, TaskPanelItem, TaskQueue, TaskQueueDropdown, TaskQueueProvider, TaskQueueTrigger, TaskSummaryDialog, Text, Textarea, ThemeProvider, ThemeScript, TimePicker, TimeRangePicker, TimezoneSelector, Title, Toaster, Tooltip, Transfer, VisuallyHidden, avatarStackVariants, badgeVariants, buttonGroupVariants, buttonVariants, cn, configureProgress, createCodeEditorSchema, createDataTableStore, createOrgMetadata, createProjectMetadata, createSelectionColumn, createTimezoneOption, createUserMetadata, defaultAutosearchValue, defineStepper, detectStorage, findItemByHref, formatDateForInput, formatJson, formatSingleTimeDisplay, formatTimeRangeDisplay, formatTimezoneLabel, formatUtcForDisplay, formatYaml, getBrowserTimezone, getContextLabel, getDefaultPreset, getDefaultTimezoneOptions, getGutter, getPresetByKey, getPresetByShortcut, getPresetRange, getResponsiveValue, getShortTimezoneDisplay, getTimezoneOffset, hasActiveDescendant, isNavItemActive, isValidJson, isValidYaml, jsonSchema, jsonToYaml, localInputStringToUtc, logoStyles, matchesCurrentScope, normalizePath, paragraphVariants, registerMediaQuery, resolvePath, rowMatchesSearch, startProgress, stopProgress, textVariants, titleVariants, toApiTimeRange, toUTCTimestampEndOfDay, toUTCTimestampStartOfDay, toast, useAdapter, useBreakpoint, useControllableState, useCopyToClipboard, useCurrentScope, useDataTableFilters, useDataTableInlineContents, useDataTableLoading, useDataTablePagination, useDataTableRows, useDataTableSearch, useDataTableSelection, useDataTableSorting, useDebounce, useDebouncedSearchInput, useField, useFieldContext, useFormContext, useFormState, useInSheet, useLeaflet, useNuqsAdapter, useRichTextEditor, useSidebar, useTaskQueue, useTasksWithLabels, useTheme, useToast, useWatch, useWatchAll, utcStringToZonedDate, utcToLocalInputString, yamlSchema, yamlToJson, zonedDateToUtcString };
|
|
85
|
+
export { CustomRangePanel as AbsoluteRangePanel, CustomRangePanel, ActionRow, Alert, AlertDescription, AlertTitle, AppNavigation, Autocomplete, Autosearch, Avatar, AvatarFallback, AvatarImage, AvatarStack, Badge, Blockquote, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDatePicker, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, ClientOnly, CloseIcon, Code, CodeEditor, CodeEditorTabs, Col, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DEFAULT_DEBOUNCE_MS, DEFAULT_LOADING_ROWS, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZES, DEFAULT_PRESETS, DEFAULT_SEARCH_DEBOUNCE_MS, DataTable, DataTableColumnHeader, DataTableRowActions, DateTimePicker, Dialog, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneContent, DropzoneEmptyState, EmptyContent, FileInputButton, Form, FormAdapterProvider, FormAutocomplete, FormAutosearch, FormButton, FormCheckbox, FormCombobox, FormCopyBox, FormCustom, FormDatePicker, FormDateTimePicker, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormSubmit, FormSwitch, FormTextarea, FormTimePicker, FormTransfer, FormWhen, GRID_BREAKPOINTS, GRID_COLUMNS, GRID_PREFIX, GroupedTable, HoverCard, HoverCardContent, HoverCardTrigger, Icon, InSheetContext, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputNumber, InputWithAddons, Label, Link, LinkButton, List, ListItem, LoaderOverlay, LocalTaskStorage, Logo, LogoFlat, LogoIcon, LogoStacked, LogoText, Map, MapCircle, MapCircleMarker, MapControlContainer, MapDrawCircle, MapDrawControl, MapDrawDelete, MapDrawEdit, MapDrawMarker, MapDrawPolygon, MapDrawPolyline, MapDrawRectangle, MapDrawUndo, MapFeatureGroup, MapFullscreenControl, MapLayerGroup, MapLayers, MapLayersControl, MapLocateControl, MapMarker, MapMarkerClusterGroup, MapPolygon, MapPolyline, MapPopup, MapRectangle, MapSearchControl, MapTileLayer, MapTooltip, MapZoomControl, MobileSheet, MoreActions, MultiSelect, NavMenu, NavMenuItem, PageTitle, Paragraph, PlaceAutocomplete, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, QuickRangesPanel, RESPONSIVE_ARRAY, RESPONSIVE_MAP, RadioGroup, RadioGroupItem, RedisTaskStorage, ResponsiveDropdown, ResponsivePopover, ResponsiveSheetTrigger, RichTextContent, RichTextEditor, Row, RowContext, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, SpinnerIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsLinkTrigger, TabsList, TabsTrigger, TagsInput, TaskPanel, TaskPanelActions, TaskPanelCounter, TaskPanelHeader, TaskPanelItem, TaskQueue, TaskQueueDropdown, TaskQueueProvider, TaskQueueTrigger, TaskSummaryDialog, Text, Textarea, ThemeProvider, ThemeScript, TimePicker, TimeRangePicker, TimezoneSelector, Title, Toaster, Tooltip, Transfer, VisuallyHidden, avatarStackVariants, badgeVariants, buttonGroupVariants, buttonVariants, cn, configureProgress, createCodeEditorSchema, createDataTableStore, createOrgMetadata, createProjectMetadata, createSelectionColumn, createTimezoneOption, createUserMetadata, dataTableFeatures, defaultAutosearchValue, defineStepper, detectStorage, findItemByHref, formatDateForInput, formatJson, formatSingleTimeDisplay, formatTimeRangeDisplay, formatTimezoneLabel, formatUtcForDisplay, formatYaml, getBrowserTimezone, getContextLabel, getDefaultPreset, getDefaultTimezoneOptions, getGutter, getPresetByKey, getPresetByShortcut, getPresetRange, getResponsiveValue, getShortTimezoneDisplay, getTimezoneOffset, hasActiveDescendant, isNavItemActive, isValidJson, isValidYaml, jsonSchema, jsonToYaml, localInputStringToUtc, logoStyles, matchesCurrentScope, normalizePath, paragraphVariants, registerMediaQuery, resolvePath, rowMatchesSearch, startProgress, stopProgress, textVariants, titleVariants, toApiTimeRange, toUTCTimestampEndOfDay, toUTCTimestampStartOfDay, toast, useAdapter, useBreakpoint, useControllableState, useCopyToClipboard, useCurrentScope, useDataTableFilters, useDataTableInlineContents, useDataTableLoading, useDataTablePagination, useDataTableRows, useDataTableSearch, useDataTableSelection, useDataTableSorting, useDebounce, useDebouncedSearchInput, useField, useFieldContext, useFormContext, useFormState, useInSheet, useLeaflet, useNuqsAdapter, useRichTextEditor, useSidebar, useTaskQueue, useTasksWithLabels, useTheme, useToast, useWatch, useWatchAll, utcStringToZonedDate, utcToLocalInputString, yamlSchema, yamlToJson, zonedDateToUtcString };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datum-cloud/datum-ui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "2.0.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"url": "https://github.com/datum-cloud/datum-ui"
|
|
@@ -418,7 +418,7 @@
|
|
|
418
418
|
"@monaco-editor/react": ">=4.7.0 <5",
|
|
419
419
|
"@stepperize/react": ">=7 <8",
|
|
420
420
|
"@streamdown/code": ">=1 <2",
|
|
421
|
-
"@tanstack/react-table": ">=
|
|
421
|
+
"@tanstack/react-table": ">=9 <10",
|
|
422
422
|
"@tanstack/react-virtual": ">=3.14.3 <4",
|
|
423
423
|
"@tiptap/extension-character-count": ">=3.27.1 <4",
|
|
424
424
|
"@tiptap/extension-link": ">=3.27.1 <4",
|
|
@@ -436,7 +436,7 @@
|
|
|
436
436
|
"leaflet.markercluster": ">=1.5.3 <2",
|
|
437
437
|
"lucide-react": ">=1 <2",
|
|
438
438
|
"monaco-editor": ">=0.44.0 <1",
|
|
439
|
-
"motion": ">=
|
|
439
|
+
"motion": ">=13 <14",
|
|
440
440
|
"nprogress": ">=0.2 <1",
|
|
441
441
|
"nuqs": ">=2 <3",
|
|
442
442
|
"react": ">=19.2.7 <20",
|
|
@@ -591,30 +591,30 @@
|
|
|
591
591
|
"class-variance-authority": "^0.7.1",
|
|
592
592
|
"clsx": "^2.1.1",
|
|
593
593
|
"cmdk": "^1.1.1",
|
|
594
|
-
"isomorphic-dompurify": "^3.
|
|
594
|
+
"isomorphic-dompurify": "^3.22.0",
|
|
595
595
|
"tailwind-merge": "^3.6.0",
|
|
596
596
|
"tw-animate-css": "^1.4.0"
|
|
597
597
|
},
|
|
598
598
|
"devDependencies": {
|
|
599
|
-
"@conform-to/react": "^1.
|
|
600
|
-
"@conform-to/zod": "^1.
|
|
599
|
+
"@conform-to/react": "^1.21.0",
|
|
600
|
+
"@conform-to/zod": "^1.21.0",
|
|
601
601
|
"@dnd-kit/core": "^6.3.1",
|
|
602
602
|
"@dnd-kit/sortable": "^10.0.0",
|
|
603
603
|
"@hookform/resolvers": "^5.7.1",
|
|
604
604
|
"@monaco-editor/react": "^4.7.0",
|
|
605
605
|
"@stepperize/react": "^7.0.0",
|
|
606
606
|
"@streamdown/code": "^1.1.1",
|
|
607
|
-
"@tanstack/react-table": "^
|
|
607
|
+
"@tanstack/react-table": "^9.1.2",
|
|
608
608
|
"@tanstack/react-virtual": "^3.14.9",
|
|
609
|
-
"@testing-library/jest-dom": "^7.0.
|
|
609
|
+
"@testing-library/jest-dom": "^7.0.1",
|
|
610
610
|
"@testing-library/react": "^16.3.2",
|
|
611
611
|
"@testing-library/user-event": "^14.6.1",
|
|
612
|
-
"@tiptap/extension-character-count": "^3.
|
|
613
|
-
"@tiptap/extension-link": "^3.
|
|
614
|
-
"@tiptap/extension-placeholder": "^3.
|
|
615
|
-
"@tiptap/extension-underline": "^3.
|
|
616
|
-
"@tiptap/react": "^3.
|
|
617
|
-
"@tiptap/starter-kit": "^3.
|
|
612
|
+
"@tiptap/extension-character-count": "^3.30.1",
|
|
613
|
+
"@tiptap/extension-link": "^3.30.1",
|
|
614
|
+
"@tiptap/extension-placeholder": "^3.30.1",
|
|
615
|
+
"@tiptap/extension-underline": "^3.30.1",
|
|
616
|
+
"@tiptap/react": "^3.30.1",
|
|
617
|
+
"@tiptap/starter-kit": "^3.30.1",
|
|
618
618
|
"@types/leaflet": "^1.9.22",
|
|
619
619
|
"@types/leaflet-draw": "^1.0.13",
|
|
620
620
|
"@types/leaflet.fullscreen": "^5.2.0",
|
|
@@ -623,31 +623,31 @@
|
|
|
623
623
|
"@types/react": "^19.2.18",
|
|
624
624
|
"@types/react-dom": "^19.2.4",
|
|
625
625
|
"@vitest/coverage-v8": "^4.1.10",
|
|
626
|
-
"ai": "^7.0.
|
|
626
|
+
"ai": "^7.0.66",
|
|
627
627
|
"date-fns": "^4.4.0",
|
|
628
628
|
"date-fns-tz": "^3.2.0",
|
|
629
|
-
"eslint": "^10.8.
|
|
630
|
-
"js-yaml": "^5.
|
|
629
|
+
"eslint": "^10.8.1",
|
|
630
|
+
"js-yaml": "^5.3.0",
|
|
631
631
|
"jsdom": "^30.0.1",
|
|
632
632
|
"leaflet": "^1.9.4",
|
|
633
633
|
"leaflet-draw": "^1.0.4",
|
|
634
634
|
"leaflet.fullscreen": "^5.3.3",
|
|
635
635
|
"leaflet.markercluster": "^1.5.3",
|
|
636
|
-
"lucide-react": "^1.
|
|
636
|
+
"lucide-react": "^1.31.0",
|
|
637
637
|
"monaco-editor": "^0.56.0",
|
|
638
|
-
"motion": "^
|
|
638
|
+
"motion": "^13.1.0",
|
|
639
639
|
"nprogress": "^0.2.0",
|
|
640
|
-
"nuqs": "^2.9.
|
|
640
|
+
"nuqs": "^2.9.6",
|
|
641
641
|
"react": "^19.2.8",
|
|
642
642
|
"react-day-picker": "^10.0.1",
|
|
643
643
|
"react-dom": "^19.2.8",
|
|
644
|
-
"react-dropzone": "^20.
|
|
645
|
-
"react-hook-form": "^7.
|
|
644
|
+
"react-dropzone": "^20.1.0",
|
|
645
|
+
"react-hook-form": "^7.85.0",
|
|
646
646
|
"react-leaflet": "^5.0.0",
|
|
647
647
|
"react-leaflet-markercluster": "5.0.0-rc.0",
|
|
648
648
|
"react-number-format": "^5.4.5",
|
|
649
649
|
"recharts": "^3.10.1",
|
|
650
|
-
"sonner": "^2.0.
|
|
650
|
+
"sonner": "^2.0.8",
|
|
651
651
|
"streamdown": "^2.5.0",
|
|
652
652
|
"tailwindcss": "^4.3.3",
|
|
653
653
|
"tsdown": "^0.22.14",
|