@epilot/volt-ui 1.1.18 → 1.1.21
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/alert-dialog/alert-dialog.d.ts +1 -1
- package/dist/components/data-table/data-table-body.d.ts +25 -0
- package/dist/components/data-table/data-table-column-header.d.ts +18 -0
- package/dist/components/data-table/data-table-column-visibility.d.ts +22 -0
- package/dist/components/data-table/data-table-content.d.ts +18 -0
- package/dist/components/data-table/data-table-context.d.ts +64 -0
- package/dist/components/data-table/data-table-error.d.ts +24 -0
- package/dist/components/data-table/data-table-footer.d.ts +11 -0
- package/dist/components/data-table/data-table-header.d.ts +19 -0
- package/dist/components/data-table/data-table-loading.d.ts +16 -0
- package/dist/components/data-table/data-table-pagination.d.ts +20 -0
- package/dist/components/data-table/data-table-pinning-utils.d.ts +17 -0
- package/dist/components/data-table/data-table-resize-handle.d.ts +16 -0
- package/dist/components/data-table/data-table-row.d.ts +19 -0
- package/dist/components/data-table/data-table-toolbar.d.ts +11 -0
- package/dist/components/data-table/data-table.d.ts +93 -0
- package/dist/components/data-table/get-selected-row-data.d.ts +18 -0
- package/dist/components/data-table/hooks/index.d.ts +2 -0
- package/dist/components/data-table/hooks/use-data-table-virtualizer.d.ts +1 -0
- package/dist/components/data-table/hooks/use-data-table.d.ts +2 -0
- package/dist/components/table/table-pagination.d.ts +48 -0
- package/dist/components/table/table.d.ts +5 -1
- package/dist/hooks/use-client-pagination.d.ts +55 -0
- package/dist/index.cjs.js +48 -64
- package/dist/index.d.ts +39 -0
- package/dist/index.es.js +9792 -8867
- package/dist/lib/pagination.d.ts +71 -0
- package/dist/style.css +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pagination utility functions for calculating pagination metadata.
|
|
3
|
+
*/
|
|
4
|
+
export type PaginationParams = {
|
|
5
|
+
page: number;
|
|
6
|
+
pageSize: number;
|
|
7
|
+
totalItems: number;
|
|
8
|
+
};
|
|
9
|
+
export type PaginationMeta = {
|
|
10
|
+
/** Total number of pages */
|
|
11
|
+
totalPages: number;
|
|
12
|
+
/** First item index on current page (1-indexed for display) */
|
|
13
|
+
start: number;
|
|
14
|
+
/** Last item index on current page (1-indexed for display) */
|
|
15
|
+
end: number;
|
|
16
|
+
/** Whether there is a next page */
|
|
17
|
+
hasNextPage: boolean;
|
|
18
|
+
/** Whether there is a previous page */
|
|
19
|
+
hasPreviousPage: boolean;
|
|
20
|
+
/** Whether current page is the first page */
|
|
21
|
+
isFirstPage: boolean;
|
|
22
|
+
/** Whether current page is the last page */
|
|
23
|
+
isLastPage: boolean;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Calculate pagination metadata from current state.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* const meta = calculatePagination({ page: 1, pageSize: 10, totalItems: 25 })
|
|
31
|
+
* // Returns: { totalPages: 3, start: 1, end: 10, hasNextPage: true, ... }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function calculatePagination(params: PaginationParams): PaginationMeta;
|
|
35
|
+
/**
|
|
36
|
+
* Clamp a page number to valid bounds.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```tsx
|
|
40
|
+
* clampPage(5, 3) // Returns 3 (clamped to max)
|
|
41
|
+
* clampPage(0, 3) // Returns 1 (clamped to min)
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare function clampPage(page: number, totalPages: number): number;
|
|
45
|
+
/** Represents a page number or an ellipsis marker in pagination */
|
|
46
|
+
export type PageItem = {
|
|
47
|
+
type: "page";
|
|
48
|
+
page: number;
|
|
49
|
+
} | {
|
|
50
|
+
type: "ellipsis";
|
|
51
|
+
targetPage: number;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Generate page numbers with ellipsis for pagination UI.
|
|
55
|
+
*
|
|
56
|
+
* Pattern rules:
|
|
57
|
+
* - Fixed slot count: always shows TOTAL_SLOTS items (default: 7)
|
|
58
|
+
* - Right ellipsis when not near end: [pages..., ..., lastPage]
|
|
59
|
+
* - Near end: expanded window with no ellipsis
|
|
60
|
+
* - Ellipsis is clickable and jumps to midpoint
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```tsx
|
|
64
|
+
* getPageNumbers(1, 10) // [1, 2, 3, 4, 5, ellipsis→7, 10] (7 items)
|
|
65
|
+
* getPageNumbers(5, 10) // [3, 4, 5, 6, 7, ellipsis→8, 10] (7 items)
|
|
66
|
+
* getPageNumbers(7, 10) // [4, 5, 6, 7, 8, 9, 10] (7 items - expanded)
|
|
67
|
+
* getPageNumbers(10, 10) // [4, 5, 6, 7, 8, 9, 10] (7 items - expanded)
|
|
68
|
+
* getPageNumbers(2, 5) // [1, 2, 3, 4, 5] (5 items - small table)
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function getPageNumbers(currentPage: number, totalPages: number, siblingCount?: number): PageItem[];
|