next-data-kit 9.1.0 → 9.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +65 -0
  2. package/dist/client/components/data-kit-table.d.ts.map +1 -1
  3. package/dist/client/hooks/useDataKit.d.ts.map +1 -1
  4. package/dist/client.cjs +2957 -0
  5. package/dist/client.cjs.map +1 -0
  6. package/dist/client.d.cts +60 -0
  7. package/dist/client.d.ts +1 -0
  8. package/dist/client.d.ts.map +1 -1
  9. package/dist/client.js +2913 -7
  10. package/dist/client.js.map +1 -1
  11. package/dist/index-CzDzNX62.d.cts +558 -0
  12. package/dist/index-CzDzNX62.d.ts +558 -0
  13. package/dist/index.cjs +1367 -114
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.cts +5 -533
  16. package/dist/index.d.ts +5 -533
  17. package/dist/index.js +1367 -114
  18. package/dist/index.js.map +1 -1
  19. package/dist/styles.css +1 -1
  20. package/dist/types/client/component.d.ts +12 -0
  21. package/dist/types/client/component.d.ts.map +1 -1
  22. package/dist/types/client/hook.d.ts +12 -0
  23. package/dist/types/client/hook.d.ts.map +1 -1
  24. package/dist/types/index.d.cts +24 -0
  25. package/dist/types/index.js +2 -6
  26. package/dist/types/index.js.map +1 -1
  27. package/package.json +2 -2
  28. package/dist/client/components/data-kit-infinity.js +0 -86
  29. package/dist/client/components/data-kit-infinity.js.map +0 -1
  30. package/dist/client/components/data-kit-table.js +0 -188
  31. package/dist/client/components/data-kit-table.js.map +0 -1
  32. package/dist/client/components/data-kit.js +0 -79
  33. package/dist/client/components/data-kit.js.map +0 -1
  34. package/dist/client/components/index.js +0 -4
  35. package/dist/client/components/index.js.map +0 -1
  36. package/dist/client/components/ui/button.js +0 -36
  37. package/dist/client/components/ui/button.js.map +0 -1
  38. package/dist/client/components/ui/checkbox.js +0 -10
  39. package/dist/client/components/ui/checkbox.js.map +0 -1
  40. package/dist/client/components/ui/dropdown-menu.js +0 -52
  41. package/dist/client/components/ui/dropdown-menu.js.map +0 -1
  42. package/dist/client/components/ui/index.js +0 -8
  43. package/dist/client/components/ui/index.js.map +0 -1
  44. package/dist/client/components/ui/pagination.js +0 -31
  45. package/dist/client/components/ui/pagination.js.map +0 -1
  46. package/dist/client/components/ui/popover.js +0 -18
  47. package/dist/client/components/ui/popover.js.map +0 -1
  48. package/dist/client/components/ui/select.js +0 -39
  49. package/dist/client/components/ui/select.js.map +0 -1
  50. package/dist/client/components/ui/table.js +0 -29
  51. package/dist/client/components/ui/table.js.map +0 -1
  52. package/dist/client/context/index.js +0 -28
  53. package/dist/client/context/index.js.map +0 -1
  54. package/dist/client/hooks/index.js +0 -7
  55. package/dist/client/hooks/index.js.map +0 -1
  56. package/dist/client/hooks/useDataKit.js +0 -261
  57. package/dist/client/hooks/useDataKit.js.map +0 -1
  58. package/dist/client/hooks/usePagination.js +0 -51
  59. package/dist/client/hooks/usePagination.js.map +0 -1
  60. package/dist/client/hooks/useSelection.js +0 -93
  61. package/dist/client/hooks/useSelection.js.map +0 -1
  62. package/dist/client/index.js +0 -15
  63. package/dist/client/index.js.map +0 -1
  64. package/dist/client/utils/cn.js +0 -22
  65. package/dist/client/utils/cn.js.map +0 -1
  66. package/dist/client/utils/index.js +0 -133
  67. package/dist/client/utils/index.js.map +0 -1
  68. package/dist/server/utils.js +0 -117
  69. package/dist/server/utils.js.map +0 -1
  70. package/dist/types/client/component.js +0 -7
  71. package/dist/types/client/component.js.map +0 -1
  72. package/dist/types/client/hook.js +0 -7
  73. package/dist/types/client/hook.js.map +0 -1
  74. package/dist/types/client/selectable.js +0 -7
  75. package/dist/types/client/selectable.js.map +0 -1
  76. package/dist/types/next-data-kit.js +0 -7
  77. package/dist/types/next-data-kit.js.map +0 -1
  78. package/dist/types/server/action.js +0 -7
  79. package/dist/types/server/action.js.map +0 -1
  80. package/dist/types/server/database/mongo.js +0 -7
  81. package/dist/types/server/database/mongo.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,158 +1,8 @@
1
+ import { T as TDataKitInput, a as TMongoFilterQuery, b as TFilterCustomConfigWithFilter, c as TSortOptions, d as TDataKitAdapter, e as TDataKitResult, f as TMongoModel, g as TPaginationInfo } from './index-CzDzNX62.js';
2
+ export { n as DataKit, m as DataKitContext, D as DataKitProvider, I as TDataKitActions, U as TDataKitBulkAction, K as TDataKitColumn, R as TDataKitComponentColumn, z as TDataKitContextValue, V as TDataKitController, S as TDataKitFilterItem, X as TDataKitMemoryMode, Y as TDataKitRef, W as TDataKitSelectableItem, H as TDataKitState, Q as TExtractDataKitItemType, F as TFilterConfig, G as TFilterCustomConfig, B as TMongoFilterOperators, C as TMongoRootFilterOperators, P as TSelectable, M as TSelectionActions, O as TSelectionMode, L as TSelectionState, E as TSortEntry, A as TSortOrder, x as TUseDataKitOptions, J as TUseDataKitReturn, y as TUsePaginationReturn, N as TUseSelectionReturn, k as createDataKitContext, s as debounce, r as formatNumber, o as getColumnValue, q as getNextSortValue, p as getSortValue, w as keyToSortEntries, v as sortEntriesToKey, t as throttle, u as useDataKit, l as useDataKitContext, j as usePagination, h as useSelection, i as useSelectionWithTotal } from './index-CzDzNX62.js';
1
3
  import { Model } from 'mongoose';
2
- import * as React$1 from 'react';
3
- import React__default, { ReactNode } from 'react';
4
- import * as react_jsx_runtime from 'react/jsx-runtime';
5
-
6
- /**
7
- * next-data-kit - Database Types (Mongo)
8
- *
9
- * MongoDB-specific types for filters and queries.
10
- */
11
- /**
12
- * Sort order for database queries
13
- */
14
- type TSortOrder = 1 | -1 | 'asc' | 'desc' | 'ascending' | 'descending';
15
- /**
16
- * Filter operators for individual fields (Mongo subset)
17
- */
18
- type TMongoFilterOperators<T> = {
19
- $eq?: T;
20
- $ne?: T;
21
- $gt?: T;
22
- $gte?: T;
23
- $lt?: T;
24
- $lte?: T;
25
- $in?: T[];
26
- $nin?: T[];
27
- $exists?: boolean;
28
- $regex?: string | RegExp;
29
- $options?: string;
30
- };
31
- /**
32
- * Mongo root operators.
33
- */
34
- type TMongoRootFilterOperators<T> = {
35
- $and?: TMongoFilterQuery<T>[];
36
- $or?: TMongoFilterQuery<T>[];
37
- $nor?: TMongoFilterQuery<T>[];
38
- };
39
- /**
40
- * Mongo filter query type.
41
- */
42
- type TMongoFilterQuery<T> = {
43
- [P in keyof T]?: T[P] | TMongoFilterOperators<T[P]>;
44
- } & TMongoRootFilterOperators<T>;
45
- /**
46
- * Minimal Mongoose Model interface for the adapter.
47
- */
48
- type TMongoModel<T = unknown> = {
49
- countDocuments(filter?: TMongoFilterQuery<T>): Promise<number>;
50
- find(filter?: TMongoFilterQuery<T>, projection?: unknown, options?: unknown): TMongoQuery<T>;
51
- };
52
- /**
53
- * Mongoose Query interface.
54
- */
55
- type TMongoQuery<T> = {
56
- sort(sort: Record<string, TSortOrder>): TMongoQuery<T>;
57
- limit(limit: number): TMongoQuery<T>;
58
- skip(skip: number): TMongoQuery<T>;
59
- then<TResult1 = T[], TResult2 = never>(onfulfilled?: ((value: T[]) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
60
- };
61
-
62
- /**
63
- * next-data-kit - React Data Kit Types
64
- *
65
- * Core types for the next-data-kit server action and components.
66
- */
67
-
68
- /**
69
- * Sort options type that references keys from the item type
70
- */
71
- type TSortOptions<T> = {
72
- [K in keyof T]?: TSortOrder;
73
- };
74
- /**
75
- * Sort entry for array-based sorting
76
- */
77
- type TSortEntry = {
78
- path: string;
79
- value: 1 | -1;
80
- };
81
- /**
82
- * Filter configuration item
83
- */
84
- type TFilterConfiguration = {
85
- type: 'REGEX' | 'EXACT';
86
- field?: string;
87
- };
88
- /**
89
- * Filter configuration for automatic filtering
90
- */
91
- type TFilterConfig = {
92
- [key: string]: TFilterConfiguration;
93
- };
94
- /**
95
- * Custom filter configuration
96
- * Allows defining custom filter functions for specific filter keys
97
- */
98
- type TFilterCustomConfig<T = unknown> = {
99
- [id: string]: (data: unknown) => TMongoFilterQuery<T>;
100
- };
101
- /**
102
- * Variant of TFilterCustomConfig that allows customizing the returned filter shape.
103
- * Useful for Mongo (operator-based) vs. other ORMs (where clauses) in the future.
104
- */
105
- type TFilterCustomConfigWithFilter<TDoc = unknown, TFilter = TMongoFilterQuery<TDoc>> = {
106
- [id: string]: (data: unknown) => TFilter;
107
- };
108
- /**
109
- * React Data Kit server action input
110
- */
111
- type TDataKitInput<T = unknown> = {
112
- action?: 'FETCH';
113
- page?: number;
114
- limit?: number;
115
- sort?: TSortOptions<T>;
116
- sorts?: TSortEntry[];
117
- query?: Record<string, string | number | boolean>;
118
- filter?: Record<string, string | number | boolean | null>;
119
- filterConfig?: TFilterConfig;
120
- filterCustom?: TFilterCustomConfig<T>;
121
- };
122
- /**
123
- * React Data Kit server action result
124
- */
125
- type TDataKitResult<R> = {
126
- type: 'ITEMS';
127
- items: R[];
128
- documentTotal: number;
129
- };
130
- /**
131
- * Pagination info for client-side use
132
- */
133
- type TPaginationInfo = {
134
- currentPage: number;
135
- totalPages: number;
136
- totalItems: number;
137
- itemsPerPage: number;
138
- hasNextPage: boolean;
139
- hasPrevPage: boolean;
140
- };
141
- /**
142
- * React Data Kit Adapter Interface
143
- * Defines the contract for a database adapter.
144
- */
145
- type TDataKitAdapter<T> = (params: Readonly<{
146
- filter: Record<string, unknown>;
147
- sorts: TSortEntry[];
148
- limit: number;
149
- page: number;
150
- skip: number;
151
- input: TDataKitInput<T>;
152
- }>) => Promise<{
153
- items: T[];
154
- total: number;
155
- }>;
4
+ import 'react';
5
+ import 'react/jsx-runtime';
156
6
 
157
7
  /**
158
8
  * next-data-kit - Server Action Types
@@ -196,268 +46,6 @@ type TAdapterOptions<TDoc, R> = TBaseOptions<TDoc, R> & {
196
46
  defaultSort?: never;
197
47
  };
198
48
 
199
- /**
200
- * next-data-kit - Hook Types
201
- *
202
- * Types for the next-data-kit hooks and state management.
203
- */
204
-
205
- /**
206
- * React Data Kit controller state
207
- */
208
- type TDataKitState<T = unknown> = {
209
- page: number;
210
- limit: number;
211
- sorts: TSortEntry[];
212
- filter: Record<string, unknown>;
213
- filterConfig?: TFilterConfig;
214
- query?: Record<string, unknown>;
215
- isLoading: boolean;
216
- error: Error | null;
217
- items: T[];
218
- total: number;
219
- };
220
- /**
221
- * React Data Kit controller actions
222
- */
223
- type TDataKitActions<T = unknown, R = unknown> = {
224
- setPage: (page: number) => void;
225
- setLimit: (limit: number) => void;
226
- setSort: (path: string, value: 1 | -1 | null, append?: boolean) => void;
227
- setSorts: (sorts: TSortEntry[]) => void;
228
- setFilter: (key: string, value: unknown) => void;
229
- setFilters: (filters: Record<string, unknown>) => void;
230
- clearFilters: () => void;
231
- setQuery: (key: string, value: unknown) => void;
232
- refresh: () => Promise<void>;
233
- reset: () => void;
234
- getInput: () => TDataKitInput<T>;
235
- setItems: (items: R[]) => void;
236
- setItemAt: (index: number, item: R) => void;
237
- deleteItemAt: (index: number) => void;
238
- itemPush: (item: R, position?: 0 | 1) => void;
239
- deleteBulk: (items: R[]) => void;
240
- };
241
- /**
242
- * Combined next-data-kit controller return type
243
- */
244
- type TUseDataKitReturn<T = unknown, R = unknown> = {
245
- page: number;
246
- limit: number;
247
- sorts: TSortEntry[];
248
- filter: Record<string, unknown>;
249
- filterConfig?: TFilterConfig;
250
- query?: Record<string, unknown>;
251
- items: R[];
252
- total: number;
253
- state: {
254
- isLoading: boolean;
255
- error: Error | null;
256
- hasNextPage: boolean;
257
- };
258
- actions: TDataKitActions<T, R>;
259
- };
260
- /**
261
- * Options for the useDataKit hook
262
- */
263
- type TUseDataKitOptions<T = unknown, R = unknown> = {
264
- initial?: {
265
- page?: number;
266
- limit?: number;
267
- sorts?: TSortEntry[];
268
- filter?: Record<string, unknown>;
269
- query?: Record<string, unknown>;
270
- };
271
- memory?: 'memory' | 'search-params';
272
- filters?: {
273
- id: string;
274
- configuration?: TFilterConfiguration;
275
- }[];
276
- action: (input: TDataKitInput<T>) => Promise<TDataKitResult<R>>;
277
- onSuccess?: (result: TDataKitResult<R>) => void;
278
- onError?: (error: Error) => void;
279
- autoFetch?: boolean;
280
- debounce?: number;
281
- };
282
- /**
283
- * Column definition for next-data-kit (headless)
284
- */
285
- type TDataKitColumn<T = unknown> = {
286
- id: string;
287
- header: string;
288
- accessor: keyof T | ((item: T) => unknown);
289
- sortable?: boolean;
290
- sortPath?: string;
291
- filterable?: boolean;
292
- filterKey?: string;
293
- width?: string | number;
294
- minWidth?: string | number;
295
- maxWidth?: string | number;
296
- align?: 'left' | 'center' | 'right';
297
- cell?: (value: unknown, item: T, index: number) => React.ReactNode;
298
- headerCell?: (column: TDataKitColumn<T>) => React.ReactNode;
299
- hidden?: boolean;
300
- sticky?: 'left' | 'right';
301
- };
302
-
303
- /**
304
- * next-data-kit - Selectable Types
305
- *
306
- * Types for selectable/multi-select functionality in tables.
307
- */
308
- /**
309
- * Selection state for a table
310
- */
311
- type TSelectionState<T = string> = {
312
- selectedIds: Set<T>;
313
- isAllSelected: boolean;
314
- isIndeterminate: boolean;
315
- };
316
- /**
317
- * Selection actions for a table
318
- */
319
- type TSelectionActions<T = string> = {
320
- select: (id: T) => void;
321
- deselect: (id: T) => void;
322
- toggle: (id: T) => void;
323
- selectAll: (ids: T[]) => void;
324
- deselectAll: () => void;
325
- toggleAll: (ids: T[]) => void;
326
- isSelected: (id: T) => boolean;
327
- getSelectedArray: () => T[];
328
- };
329
- /**
330
- * Combined selection hook return type
331
- */
332
- type TUseSelectionReturn<T = string> = TSelectionState<T> & TSelectionActions<T>;
333
- /**
334
- * Selection mode for tables
335
- */
336
- type TSelectionMode = 'single' | 'multiple' | 'none';
337
- /**
338
- * Selectable item type
339
- */
340
- type TSelectable = {
341
- id: string;
342
- selected?: boolean;
343
- disabled?: boolean;
344
- };
345
-
346
- /**
347
- * next-data-kit - Component Types
348
- *
349
- * Types for the React Data Kit component and related UI elements.
350
- */
351
-
352
- /**
353
- * Extract the item type from a TDataKitResult
354
- */
355
- type TExtractDataKitItemFromResult<R> = R extends TDataKitResult<infer I> ? I : R extends {
356
- items: (infer I)[];
357
- } ? I : R extends [true, infer Ok] ? (Ok extends {
358
- items: (infer I)[];
359
- } ? I : never) : never;
360
- /**
361
- * Extract the item type from an action function's return type
362
- */
363
- type TExtractDataKitItemType<T> = T extends (input: TDataKitInput<unknown>) => infer R ? TExtractDataKitItemFromResult<Awaited<R>> : never;
364
- /**
365
- * Column definition for React Data Kit component
366
- */
367
- type TDataKitComponentColumn<TItem, TRowState = unknown> = {
368
- head: React.ReactNode;
369
- body: (props: Readonly<{
370
- item: TItem;
371
- index: number;
372
- state: TRowState;
373
- setState: React.Dispatch<React.SetStateAction<TRowState>>;
374
- setItem: (item: TItem) => void;
375
- deleteItem: () => void;
376
- }>) => React.ReactNode;
377
- sortable?: {
378
- path: string;
379
- default: 1 | -1 | 0;
380
- };
381
- };
382
- /**
383
- * Base filter item properties
384
- */
385
- type TDataKitFilterItemBase = {
386
- id: string;
387
- label: string;
388
- placeholder?: string;
389
- configuration?: TFilterConfiguration;
390
- };
391
- /**
392
- * Text filter item
393
- */
394
- type TDataKitFilterItemText = TDataKitFilterItemBase & {
395
- type: 'TEXT';
396
- defaultValue?: string;
397
- };
398
- /**
399
- * Select filter item - dataset is required
400
- */
401
- type TDataKitFilterItemSelect = TDataKitFilterItemBase & {
402
- type: 'SELECT';
403
- dataset: {
404
- id: string;
405
- name: string;
406
- label: string;
407
- }[];
408
- defaultValue?: string;
409
- };
410
- /**
411
- * Boolean filter item
412
- */
413
- type TDataKitFilterItemBoolean = TDataKitFilterItemBase & {
414
- type: 'BOOLEAN';
415
- defaultValue?: boolean;
416
- };
417
- /**
418
- * Filter item configuration - discriminated union for type safety
419
- */
420
- type TDataKitFilterItem = TDataKitFilterItemText | TDataKitFilterItemSelect | TDataKitFilterItemBoolean;
421
- /**
422
- * Bulk action definition for selectable tables
423
- */
424
- type TDataKitBulkAction<TItem> = {
425
- type: 'SEPARATOR';
426
- } | {
427
- type?: 'MENU';
428
- name: string;
429
- icon?: React.ReactNode;
430
- function: (selectedItems: TItem[]) => Promise<[boolean, {
431
- deselectAll?: boolean;
432
- updatedItems?: TItem[];
433
- } | string]>;
434
- };
435
- /**
436
- * Controller ref for external DataKitTable manipulation
437
- */
438
- type TDataKitController<TItem> = {
439
- itemPush: (item: TItem, position?: 0 | 1) => void;
440
- refetchData: () => void;
441
- deleteBulk: (items: TItem[]) => void;
442
- getSelectedItems: () => TItem[];
443
- clearSelection: () => void;
444
- };
445
- /**
446
- * Item with ID for selection purposes
447
- */
448
- type TDataKitSelectableItem = {
449
- id: string | number;
450
- };
451
- /**
452
- * Memory persistence mode
453
- */
454
- type TDataKitMemoryMode = 'memory' | 'search-params';
455
- /**
456
- * DataKit Component Ref Type
457
- * Exposes the internal state and actions of the DataKit component.
458
- */
459
- type TDataKitRef<T = unknown, R = unknown> = TUseDataKitReturn<T, R>;
460
-
461
49
  /**
462
50
  * next-data-kit - Server Action
463
51
  *
@@ -525,120 +113,4 @@ declare const createSearchFilter: <T>(fields: (keyof T | string)[]) => ((value:
525
113
  */
526
114
  declare const calculatePagination: (page: number, limit: number, total: number) => TPaginationInfo;
527
115
 
528
- /**
529
- * next-data-kit - useDataKit Hook
530
- *
531
- * React hook for managing next-data-kit state and actions.
532
- */
533
-
534
- declare const useDataKit: <T = unknown, R = unknown>(props: Readonly<TUseDataKitOptions<T, R>>) => TUseDataKitReturn<T, R>;
535
-
536
- /**
537
- * next-data-kit - useSelection Hook
538
- *
539
- * React hook for managing table row selection.
540
- */
541
-
542
- declare const useSelection: <T = string>(initialSelected?: T[]) => TUseSelectionReturn<T>;
543
- declare const useSelectionWithTotal: <T = string>(totalItems: T[], initialSelected?: T[]) => Omit<TUseSelectionReturn<T>, "toggleAll"> & {
544
- isAllSelected: boolean;
545
- isIndeterminate: boolean;
546
- toggleAll: () => void;
547
- };
548
-
549
- /**
550
- * next-data-kit - usePagination Hook
551
- *
552
- * React hook for calculating pagination state.
553
- */
554
-
555
- type TUsePaginationReturn = TPaginationInfo & {
556
- pages: (number | 'ellipsis')[];
557
- firstPage: number;
558
- lastPage: number;
559
- };
560
- declare const usePagination: (props: Readonly<{
561
- page: number;
562
- limit: number;
563
- total: number;
564
- siblingCount?: number;
565
- }>) => TUsePaginationReturn;
566
-
567
- type TDataKitContextValue<T = unknown, R = unknown> = TUseDataKitReturn<T, R>;
568
- declare const createDataKitContext: <T = unknown, R = unknown>() => {
569
- DataKitProvider: (props: Readonly<{
570
- value: TDataKitContextValue<T, R>;
571
- children: ReactNode;
572
- }>) => react_jsx_runtime.JSX.Element;
573
- useDataKitContext: () => TDataKitContextValue<T, R>;
574
- Context: React$1.Context<TDataKitContextValue<T, R> | null>;
575
- };
576
- declare const DefaultDataKitProvider: (props: Readonly<{
577
- value: TDataKitContextValue<unknown, unknown>;
578
- children: ReactNode;
579
- }>) => react_jsx_runtime.JSX.Element;
580
- declare const useDefaultDataKitContext: () => TDataKitContextValue<unknown, unknown>;
581
- declare const DefaultDataKitContext: React$1.Context<TDataKitContextValue<unknown, unknown> | null>;
582
-
583
- declare const DataKit: <TAction extends (input: TDataKitInput<unknown>) => Promise<TDataKitResult<TDataKitSelectableItem>>>(props: Readonly<{
584
- action: TAction;
585
- query?: Record<string, unknown>;
586
- filters?: TDataKitFilterItem[];
587
- limit?: {
588
- default: number;
589
- };
590
- defaultSort?: {
591
- path: string;
592
- value: 1 | -1;
593
- }[];
594
- className?: string;
595
- autoFetch?: boolean;
596
- debounce?: number;
597
- refetchInterval?: number;
598
- memory?: TDataKitMemoryMode;
599
- manual?: boolean;
600
- pagination?: "SIMPLE" | "NUMBER";
601
- children: (dataKit: TUseDataKitReturn<unknown, TExtractDataKitItemType<TAction>>) => React__default.ReactNode;
602
- ref?: React__default.Ref<TDataKitRef<unknown, TExtractDataKitItemType<TAction>>>;
603
- }>) => React__default.ReactElement;
604
-
605
- /**
606
- * next-data-kit - Utility Functions
607
- *
608
- * Helper utilities for client-side operations.
609
- */
610
-
611
- /**
612
- * Get the value from an item using a column accessor
613
- */
614
- declare const getColumnValue: <T>(item: T, column: TDataKitColumn<T>) => unknown;
615
- /**
616
- * Get the sort value for a column
617
- */
618
- declare const getSortValue: (sorts: TSortEntry[], path: string) => 1 | -1 | null;
619
- /**
620
- * Get the next sort value in the cycle: null -> 1 -> -1 -> null
621
- */
622
- declare const getNextSortValue: (current: 1 | -1 | null) => 1 | -1 | null;
623
- /**
624
- * Format a number with commas
625
- */
626
- declare const formatNumber: (num: number) => string;
627
- /**
628
- * Debounce a function
629
- */
630
- declare const debounce: <T extends (...args: unknown[]) => unknown>(fn: T, delay: number) => ((...args: Parameters<T>) => void);
631
- /**
632
- * Throttle a function
633
- */
634
- declare const throttle: <T extends (...args: unknown[]) => unknown>(fn: T, limit: number) => ((...args: Parameters<T>) => void);
635
- /**
636
- * Create a stable object key from sort entries
637
- */
638
- declare const sortEntriesToKey: (sorts: TSortEntry[]) => string;
639
- /**
640
- * Parse a sort key back to sort entries
641
- */
642
- declare const keyToSortEntries: (key: string) => TSortEntry[];
643
-
644
- export { DataKit, DefaultDataKitContext as DataKitContext, DefaultDataKitProvider as DataKitProvider, type TAdapterOptions, type TBaseOptions, type TDataKitActions, type TDataKitAdapter, type TDataKitBulkAction, type TDataKitColumn, type TDataKitComponentColumn, type TDataKitContextValue, type TDataKitController, type TDataKitFilterItem, type TDataKitInput, type TDataKitMemoryMode, type TDataKitRef, type TDataKitResult, type TDataKitSelectableItem, type TDataKitState, type TExtractDataKitItemType, type TExtractDocType, type TFilterConfig, type TFilterCustomConfig, type TFilterCustomConfigWithFilter, type TMongoFilterOperators, type TMongoFilterQuery, type TMongoModel, type TMongoRootFilterOperators, type TMongooseOptions, type TPaginationInfo, type TSelectable, type TSelectionActions, type TSelectionMode, type TSelectionState, type TSortEntry, type TSortOptions, type TSortOrder, type TUseDataKitOptions, type TUseDataKitReturn, type TUsePaginationReturn, type TUseSelectionReturn, adapterMemory, calculatePagination, createDataKitContext, createSearchFilter, dataKitServerAction, debounce, escapeRegex, formatNumber, getColumnValue, getNextSortValue, getSortValue, keyToSortEntries, mongooseAdapter, sortEntriesToKey, throttle, useDataKit, useDefaultDataKitContext as useDataKitContext, usePagination, useSelection, useSelectionWithTotal };
116
+ export { type TAdapterOptions, type TBaseOptions, TDataKitAdapter, TDataKitInput, TDataKitResult, type TExtractDocType, TFilterCustomConfigWithFilter, TMongoFilterQuery, TMongoModel, type TMongooseOptions, TPaginationInfo, TSortOptions, adapterMemory, calculatePagination, createSearchFilter, dataKitServerAction, escapeRegex, mongooseAdapter };