cisse-vue-ui 0.8.4 → 0.10.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 (147) hide show
  1. package/README.md +666 -4
  2. package/dist/{CheckboxGroup.vue_vue_type_script_setup_true_lang-B190Yija.js → CheckboxGroup.vue_vue_type_script_setup_true_lang-ZP02bMgY.js} +2 -2
  3. package/dist/{CheckboxGroup.vue_vue_type_script_setup_true_lang-B190Yija.js.map → CheckboxGroup.vue_vue_type_script_setup_true_lang-ZP02bMgY.js.map} +1 -1
  4. package/dist/{ConfirmDialog.vue_vue_type_script_setup_true_lang-DWs2V7xX.js → ConfirmDialog.vue_vue_type_script_setup_true_lang-C5KHLMvx.js} +37 -184
  5. package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-C5KHLMvx.js.map +1 -0
  6. package/dist/{ConfirmDialog.vue_vue_type_script_setup_true_lang-BGUoa5fT.cjs → ConfirmDialog.vue_vue_type_script_setup_true_lang-CLfy0-Wb.cjs} +33 -180
  7. package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-CLfy0-Wb.cjs.map +1 -0
  8. package/dist/{FilterTabs.vue_vue_type_script_setup_true_lang-BmJHgkBs.js → FilterTabs.vue_vue_type_script_setup_true_lang-CJnvcF8Z.js} +1568 -384
  9. package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-CJnvcF8Z.js.map +1 -0
  10. package/dist/{FilterTabs.vue_vue_type_script_setup_true_lang-DYxh-wFx.cjs → FilterTabs.vue_vue_type_script_setup_true_lang-l8lJzwoY.cjs} +1564 -380
  11. package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-l8lJzwoY.cjs.map +1 -0
  12. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-BHopJ9RG.js +298 -0
  13. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-BHopJ9RG.js.map +1 -0
  14. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-Bo3HqgX0.cjs +297 -0
  15. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-Bo3HqgX0.cjs.map +1 -0
  16. package/dist/components/core/Breadcrumb.stories.d.ts +5 -0
  17. package/dist/components/core/CardWrapper.stories.d.ts +32 -0
  18. package/dist/components/core/CardWrapper.vue.d.ts +129 -0
  19. package/dist/components/core/CollapsibleCard.vue.d.ts +1 -1
  20. package/dist/components/core/DataTable.stories.d.ts +38 -0
  21. package/dist/components/core/Dropdown.vue.d.ts +1 -1
  22. package/dist/components/core/Popover.vue.d.ts +2 -2
  23. package/dist/components/core/StatItem.stories.d.ts +25 -0
  24. package/dist/components/core/StatItem.test.d.ts +1 -0
  25. package/dist/components/core/StatItem.vue.d.ts +81 -0
  26. package/dist/components/core/Stats.stories.d.ts +24 -0
  27. package/dist/components/core/Stats.test.d.ts +1 -0
  28. package/dist/components/core/Stats.vue.d.ts +41 -0
  29. package/dist/components/core/Tooltip.stories.d.ts +3 -0
  30. package/dist/components/core/index.cjs +41 -22
  31. package/dist/components/core/index.cjs.map +1 -1
  32. package/dist/components/core/index.d.ts +10 -4
  33. package/dist/components/core/index.js +41 -22
  34. package/dist/components/core/table/DataTable.test.d.ts +1 -0
  35. package/dist/components/core/{TableComponent.vue.d.ts → table/DataTable.vue.d.ts} +60 -7
  36. package/dist/components/core/table/Table.stories.d.ts +27 -0
  37. package/dist/components/core/table/atoms/Caption.test.d.ts +1 -0
  38. package/dist/components/core/table/atoms/Caption.vue.d.ts +26 -0
  39. package/dist/components/core/table/atoms/Col.test.d.ts +1 -0
  40. package/dist/components/core/table/atoms/Col.vue.d.ts +8 -0
  41. package/dist/components/core/table/atoms/Colgroup.test.d.ts +1 -0
  42. package/dist/components/core/table/atoms/Colgroup.vue.d.ts +17 -0
  43. package/dist/components/core/table/atoms/Table.test.d.ts +1 -0
  44. package/dist/components/core/table/atoms/Table.vue.d.ts +46 -0
  45. package/dist/components/core/table/atoms/Tbody.test.d.ts +1 -0
  46. package/dist/components/core/table/atoms/Tbody.vue.d.ts +17 -0
  47. package/dist/components/core/table/atoms/Td.test.d.ts +1 -0
  48. package/dist/components/core/table/atoms/Td.vue.d.ts +43 -0
  49. package/dist/components/core/table/atoms/Tfoot.test.d.ts +1 -0
  50. package/dist/components/core/table/atoms/Tfoot.vue.d.ts +17 -0
  51. package/dist/components/core/table/atoms/Th.test.d.ts +1 -0
  52. package/dist/components/core/table/atoms/Th.vue.d.ts +64 -0
  53. package/dist/components/core/table/atoms/Thead.test.d.ts +1 -0
  54. package/dist/components/core/table/atoms/Thead.vue.d.ts +17 -0
  55. package/dist/components/core/table/atoms/Tr.test.d.ts +1 -0
  56. package/dist/components/core/table/atoms/Tr.vue.d.ts +35 -0
  57. package/dist/components/core/table/atoms/index.d.ts +10 -0
  58. package/dist/components/core/table/index.d.ts +3 -0
  59. package/dist/components/core/table/molecules/ExpandableRow.test.d.ts +1 -0
  60. package/dist/components/core/table/molecules/ExpandableRow.vue.d.ts +47 -0
  61. package/dist/components/core/table/molecules/TableFooter.test.d.ts +1 -0
  62. package/dist/components/core/table/molecules/TableFooter.vue.d.ts +21 -0
  63. package/dist/components/core/table/molecules/TableHeader.test.d.ts +1 -0
  64. package/dist/components/core/table/molecules/TableHeader.vue.d.ts +49 -0
  65. package/dist/components/core/table/molecules/TableRow.test.d.ts +1 -0
  66. package/dist/components/core/table/molecules/TableRow.vue.d.ts +59 -0
  67. package/dist/components/core/table/molecules/index.d.ts +4 -0
  68. package/dist/components/feedback/Progress.vue.d.ts +1 -1
  69. package/dist/components/feedback/TableSkeleton.vue.d.ts +1 -1
  70. package/dist/components/feedback/index.cjs +14 -14
  71. package/dist/components/feedback/index.js +14 -14
  72. package/dist/components/form/Combobox.vue.d.ts +1 -1
  73. package/dist/components/form/DatePicker.vue.d.ts +1 -1
  74. package/dist/components/form/FormSection.vue.d.ts +1 -1
  75. package/dist/components/form/IconPicker.stories.d.ts +19 -0
  76. package/dist/components/form/IconPicker.test.d.ts +1 -0
  77. package/dist/components/form/InputWrapper.stories.d.ts +0 -5
  78. package/dist/components/form/Rating.vue.d.ts +1 -1
  79. package/dist/components/form/SearchInput.vue.d.ts +1 -1
  80. package/dist/components/form/index.js +2 -2
  81. package/dist/components/index.cjs +55 -36
  82. package/dist/components/index.cjs.map +1 -1
  83. package/dist/components/index.js +67 -48
  84. package/dist/composables/index.cjs +15 -8
  85. package/dist/composables/index.cjs.map +1 -1
  86. package/dist/composables/index.d.ts +7 -0
  87. package/dist/composables/index.js +12 -5
  88. package/dist/composables/useColumnResize.d.ts +38 -0
  89. package/dist/composables/useColumnResize.test.d.ts +1 -0
  90. package/dist/composables/useColumnVisibility.d.ts +44 -0
  91. package/dist/composables/useColumnVisibility.test.d.ts +1 -0
  92. package/dist/composables/useEditableCell.d.ts +51 -0
  93. package/dist/composables/useEditableCell.test.d.ts +1 -0
  94. package/dist/composables/usePagination.d.ts +44 -0
  95. package/dist/composables/usePagination.test.d.ts +1 -0
  96. package/dist/composables/usePinnedRows.d.ts +41 -0
  97. package/dist/composables/usePinnedRows.test.d.ts +1 -0
  98. package/dist/composables/useTableKeyboardNavigation.d.ts +52 -0
  99. package/dist/composables/useTableKeyboardNavigation.test.d.ts +1 -0
  100. package/dist/composables/useVirtualScroll.d.ts +32 -0
  101. package/dist/composables/useVirtualScroll.test.d.ts +1 -0
  102. package/dist/{index-SNefWfX0.js → index-BaWpldIJ.js} +3 -3
  103. package/dist/{index-SNefWfX0.js.map → index-BaWpldIJ.js.map} +1 -1
  104. package/dist/{index-LFQFhClN.cjs → index-CYXOfUOG.cjs} +56 -37
  105. package/dist/{index-LFQFhClN.cjs.map → index-CYXOfUOG.cjs.map} +1 -1
  106. package/dist/index-C_N7WRnM.js +116 -0
  107. package/dist/index-C_N7WRnM.js.map +1 -0
  108. package/dist/index.cjs +71 -45
  109. package/dist/index.cjs.map +1 -1
  110. package/dist/index.js +81 -55
  111. package/dist/style.css +1 -1
  112. package/dist/types/components.d.ts +1 -1
  113. package/dist/types/property.d.ts +8 -0
  114. package/dist/usePagination-BGwbICFC.js +135 -0
  115. package/dist/usePagination-BGwbICFC.js.map +1 -0
  116. package/dist/usePagination-gvvh1zqA.cjs +134 -0
  117. package/dist/usePagination-gvvh1zqA.cjs.map +1 -0
  118. package/dist/useVirtualScroll-BivP86fA.cjs +869 -0
  119. package/dist/useVirtualScroll-BivP86fA.cjs.map +1 -0
  120. package/dist/useVirtualScroll-YeZru2Eo.js +870 -0
  121. package/dist/useVirtualScroll-YeZru2Eo.js.map +1 -0
  122. package/package.json +1 -1
  123. package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-BGUoa5fT.cjs.map +0 -1
  124. package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-DWs2V7xX.js.map +0 -1
  125. package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-BmJHgkBs.js.map +0 -1
  126. package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-DYxh-wFx.cjs.map +0 -1
  127. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-BwtEbaiT.js +0 -150
  128. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-BwtEbaiT.js.map +0 -1
  129. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-DtwwmfWr.cjs +0 -149
  130. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-DtwwmfWr.cjs.map +0 -1
  131. package/dist/components/core/StatsCard.stories.d.ts +0 -15
  132. package/dist/components/core/StatsCard.vue.d.ts +0 -44
  133. package/dist/components/core/StatsGrid.stories.d.ts +0 -12
  134. package/dist/components/core/StatsGrid.vue.d.ts +0 -16
  135. package/dist/components/core/TableComponent.stories.d.ts +0 -16
  136. package/dist/index-CyL_6V7D.js +0 -97
  137. package/dist/index-CyL_6V7D.js.map +0 -1
  138. package/dist/useDarkMode-Cl5QWTlC.js +0 -53
  139. package/dist/useDarkMode-Cl5QWTlC.js.map +0 -1
  140. package/dist/useDarkMode-DLZcJEUQ.cjs +0 -52
  141. package/dist/useDarkMode-DLZcJEUQ.cjs.map +0 -1
  142. package/dist/useToast-Bk60GArg.cjs +0 -176
  143. package/dist/useToast-Bk60GArg.cjs.map +0 -1
  144. package/dist/useToast-ina5g3mj.js +0 -177
  145. package/dist/useToast-ina5g3mj.js.map +0 -1
  146. /package/dist/components/core/{StatsCard.test.d.ts → AccordionItem.test.d.ts} +0 -0
  147. /package/dist/components/core/{StatsGrid.test.d.ts → CardWrapper.test.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -7,3 +7,10 @@ export { useToast, type ToastOptions } from './useToast';
7
7
  export { useId, generateId, resetIdCounter, type UseIdOptions, type UseIdReturn } from './useId';
8
8
  export { useFocusTrap, type UseFocusTrapOptions, type UseFocusTrapReturn } from './useFocusTrap';
9
9
  export { useInputStyles, type InputSize, type UseInputStylesOptions, type UseInputStylesReturn } from './useInputStyles';
10
+ export { useTableKeyboardNavigation, type UseTableKeyboardNavigationOptions, type UseTableKeyboardNavigationReturn, } from './useTableKeyboardNavigation';
11
+ export { useColumnVisibility, type UseColumnVisibilityOptions, type UseColumnVisibilityReturn, type Column, } from './useColumnVisibility';
12
+ export { usePagination, type UsePaginationOptions, type UsePaginationReturn, } from './usePagination';
13
+ export { useColumnResize, type ColumnWidth, type UseColumnResizeOptions, type UseColumnResizeReturn, } from './useColumnResize';
14
+ export { usePinnedRows, type PinPosition, type PinnedItem, type UsePinnedRowsOptions, type UsePinnedRowsReturn, } from './usePinnedRows';
15
+ export { useEditableCell, type CellType, type CellEditEvent, type EditingCell, type UseEditableCellOptions, type UseEditableCellReturn, } from './useEditableCell';
16
+ export { useVirtualScroll, type UseVirtualScrollOptions, type UseVirtualScrollReturn, } from './useVirtualScroll';
@@ -1,14 +1,17 @@
1
- import { a, b, c, u, d } from "../useToast-ina5g3mj.js";
2
- import { u as u2 } from "../useDarkMode-Cl5QWTlC.js";
1
+ import { g, f, i, a, b, c, u, h, e, d, j } from "../useVirtualScroll-YeZru2Eo.js";
2
+ import { u as u2, a as a2 } from "../usePagination-BGwbICFC.js";
3
3
  import { u as u3 } from "../useDropdown-XITCE_SM.js";
4
- import { g, r, u as u4 } from "../useId-xeHj7rkg.js";
4
+ import { g as g2, r, u as u4 } from "../useId-xeHj7rkg.js";
5
5
  import { u as u5 } from "../useFocusTrap-AnlJsihM.js";
6
6
  import { u as u6 } from "../useInputStyles-BFTJdXHL.js";
7
7
  export {
8
- g as generateId,
8
+ g2 as generateId,
9
9
  r as resetIdCounter,
10
+ g as useColumnResize,
11
+ f as useColumnVisibility,
10
12
  u2 as useDarkMode,
11
13
  u3 as useDropdown,
14
+ i as useEditableCell,
12
15
  a as useExportCSV,
13
16
  u5 as useFocusTrap,
14
17
  u4 as useId,
@@ -16,6 +19,10 @@ export {
16
19
  b as useModal,
17
20
  c as useModals,
18
21
  u as useNotifications,
19
- d as useToast
22
+ a2 as usePagination,
23
+ h as usePinnedRows,
24
+ e as useTableKeyboardNavigation,
25
+ d as useToast,
26
+ j as useVirtualScroll
20
27
  };
21
28
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,38 @@
1
+ import { Ref, ComputedRef } from 'vue';
2
+ export interface ColumnWidth {
3
+ name: string;
4
+ width: number;
5
+ minWidth?: number;
6
+ maxWidth?: number;
7
+ }
8
+ export interface UseColumnResizeOptions {
9
+ /** Initial column widths */
10
+ columns: ColumnWidth[] | Ref<ColumnWidth[]>;
11
+ /** Default minimum width for columns without explicit minWidth */
12
+ defaultMinWidth?: number;
13
+ /** Default maximum width for columns without explicit maxWidth */
14
+ defaultMaxWidth?: number;
15
+ /** LocalStorage key for persistence (optional) */
16
+ storageKey?: string;
17
+ /** Enable persistence to localStorage */
18
+ persist?: boolean;
19
+ }
20
+ export interface UseColumnResizeReturn {
21
+ /** Current column widths */
22
+ columnWidths: ComputedRef<Record<string, number>>;
23
+ /** Get width for a specific column */
24
+ getWidth: (name: string) => number;
25
+ /** Set width for a specific column */
26
+ setWidth: (name: string, width: number) => void;
27
+ /** Start resizing a column */
28
+ startResize: (name: string, event: MouseEvent | TouchEvent) => void;
29
+ /** Check if a column is currently being resized */
30
+ isResizing: ComputedRef<boolean>;
31
+ /** The column currently being resized */
32
+ resizingColumn: Ref<string | null>;
33
+ /** Reset all widths to initial values */
34
+ reset: () => void;
35
+ /** Reset a specific column width */
36
+ resetColumn: (name: string) => void;
37
+ }
38
+ export declare function useColumnResize(options: UseColumnResizeOptions): UseColumnResizeReturn;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,44 @@
1
+ import { Ref, ComputedRef } from 'vue';
2
+ export interface Column {
3
+ name: string;
4
+ label?: string;
5
+ hidden?: boolean;
6
+ [key: string]: unknown;
7
+ }
8
+ export interface UseColumnVisibilityOptions<T extends Column> {
9
+ /** Initial columns configuration */
10
+ columns: T[] | Ref<T[]>;
11
+ /** Initial hidden column names */
12
+ initialHidden?: string[];
13
+ /** Persist visibility to localStorage */
14
+ persist?: boolean;
15
+ /** Storage key for persistence */
16
+ storageKey?: string;
17
+ /** Minimum visible columns required */
18
+ minVisible?: number;
19
+ }
20
+ export interface UseColumnVisibilityReturn<T extends Column> {
21
+ /** All columns with current visibility state */
22
+ columns: ComputedRef<T[]>;
23
+ /** Only visible columns */
24
+ visibleColumns: ComputedRef<T[]>;
25
+ /** Set of hidden column names */
26
+ hiddenColumns: Ref<Set<string>>;
27
+ /** Check if a column is visible */
28
+ isVisible: (columnName: string) => boolean;
29
+ /** Show a column */
30
+ show: (columnName: string) => void;
31
+ /** Hide a column */
32
+ hide: (columnName: string) => void;
33
+ /** Toggle a column's visibility */
34
+ toggle: (columnName: string) => void;
35
+ /** Show all columns */
36
+ showAll: () => void;
37
+ /** Hide all columns (respects minVisible) */
38
+ hideAll: () => void;
39
+ /** Reset to initial state */
40
+ reset: () => void;
41
+ /** Set multiple columns visibility at once */
42
+ setVisibility: (visibility: Record<string, boolean>) => void;
43
+ }
44
+ export declare function useColumnVisibility<T extends Column>(options: UseColumnVisibilityOptions<T>): UseColumnVisibilityReturn<T>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,51 @@
1
+ import { Ref, ComputedRef } from 'vue';
2
+ export type CellType = 'text' | 'number' | 'date' | 'boolean' | 'select';
3
+ export interface CellEditEvent<T = unknown> {
4
+ /** Row item being edited */
5
+ item: T;
6
+ /** Column/field name */
7
+ field: string;
8
+ /** Original value before edit */
9
+ originalValue: unknown;
10
+ /** New value after edit */
11
+ newValue: unknown;
12
+ }
13
+ export interface EditingCell {
14
+ /** Row key */
15
+ rowKey: string;
16
+ /** Column/field name */
17
+ field: string;
18
+ }
19
+ export interface UseEditableCellOptions<T = unknown> {
20
+ /** Key field for row identification */
21
+ keyField?: string;
22
+ /** Callback when edit is confirmed */
23
+ onSave?: (event: CellEditEvent<T>) => void | Promise<void>;
24
+ /** Callback when edit is cancelled */
25
+ onCancel?: (event: Omit<CellEditEvent<T>, 'newValue'>) => void;
26
+ /** Validate value before saving (return error message or null) */
27
+ validate?: (event: CellEditEvent<T>) => string | null;
28
+ }
29
+ export interface UseEditableCellReturn<T> {
30
+ /** Currently editing cell (null if none) */
31
+ editingCell: Ref<EditingCell | null>;
32
+ /** Current edit value */
33
+ editValue: Ref<unknown>;
34
+ /** Validation error message */
35
+ error: Ref<string | null>;
36
+ /** Whether currently saving */
37
+ saving: Ref<boolean>;
38
+ /** Check if a specific cell is being edited */
39
+ isEditing: (rowKey: string, field: string) => boolean;
40
+ /** Start editing a cell */
41
+ startEdit: (item: T, field: string, currentValue: unknown) => void;
42
+ /** Confirm the edit and save */
43
+ confirmEdit: () => Promise<void>;
44
+ /** Cancel the edit */
45
+ cancelEdit: () => void;
46
+ /** Update the edit value */
47
+ updateValue: (value: unknown) => void;
48
+ /** Get item being edited */
49
+ editingItem: ComputedRef<T | null>;
50
+ }
51
+ export declare function useEditableCell<T>(options?: UseEditableCellOptions<T>): UseEditableCellReturn<T>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,44 @@
1
+ import { Ref, ComputedRef } from 'vue';
2
+ export interface UsePaginationOptions<T> {
3
+ /** The full array of items to paginate */
4
+ items: T[] | Ref<T[]>;
5
+ /** Initial page size */
6
+ pageSize?: number;
7
+ /** Initial page (1-indexed) */
8
+ initialPage?: number;
9
+ }
10
+ export interface UsePaginationReturn<T> {
11
+ /** Current page number (1-indexed) */
12
+ currentPage: Ref<number>;
13
+ /** Current page size */
14
+ pageSize: Ref<number>;
15
+ /** Total number of pages */
16
+ totalPages: ComputedRef<number>;
17
+ /** Total number of items */
18
+ totalItems: ComputedRef<number>;
19
+ /** Items for the current page */
20
+ paginatedItems: ComputedRef<T[]>;
21
+ /** Index of the first item on current page (0-indexed) */
22
+ startIndex: ComputedRef<number>;
23
+ /** Index of the last item on current page (0-indexed) */
24
+ endIndex: ComputedRef<number>;
25
+ /** Whether there is a previous page */
26
+ hasPrevious: ComputedRef<boolean>;
27
+ /** Whether there is a next page */
28
+ hasNext: ComputedRef<boolean>;
29
+ /** Go to a specific page */
30
+ goToPage: (page: number) => void;
31
+ /** Go to the next page */
32
+ nextPage: () => void;
33
+ /** Go to the previous page */
34
+ previousPage: () => void;
35
+ /** Go to the first page */
36
+ firstPage: () => void;
37
+ /** Go to the last page */
38
+ lastPage: () => void;
39
+ /** Set page size (resets to page 1) */
40
+ setPageSize: (size: number) => void;
41
+ /** Reset to initial state */
42
+ reset: () => void;
43
+ }
44
+ export declare function usePagination<T>(options: UsePaginationOptions<T>): UsePaginationReturn<T>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,41 @@
1
+ import { ComputedRef } from 'vue';
2
+ export type PinPosition = 'top' | 'bottom';
3
+ export interface PinnedItem<T = unknown> {
4
+ item: T;
5
+ position: PinPosition;
6
+ }
7
+ export interface UsePinnedRowsOptions<T> {
8
+ /** Key field for unique identification */
9
+ keyField?: string;
10
+ /** Initially pinned items */
11
+ initialPinned?: PinnedItem<T>[];
12
+ /** Maximum number of pinned rows at top */
13
+ maxPinnedTop?: number;
14
+ /** Maximum number of pinned rows at bottom */
15
+ maxPinnedBottom?: number;
16
+ }
17
+ export interface UsePinnedRowsReturn<T> {
18
+ /** Items pinned to the top */
19
+ pinnedTop: ComputedRef<T[]>;
20
+ /** Items pinned to the bottom */
21
+ pinnedBottom: ComputedRef<T[]>;
22
+ /** All pinned item keys */
23
+ pinnedKeys: ComputedRef<Set<string>>;
24
+ /** Check if an item is pinned */
25
+ isPinned: (item: T) => boolean;
26
+ /** Get pin position for an item (null if not pinned) */
27
+ getPinPosition: (item: T) => PinPosition | null;
28
+ /** Pin an item to a position */
29
+ pin: (item: T, position: PinPosition) => void;
30
+ /** Unpin an item */
31
+ unpin: (item: T) => void;
32
+ /** Toggle pin state */
33
+ togglePin: (item: T, position?: PinPosition) => void;
34
+ /** Move a pinned item to a different position */
35
+ movePin: (item: T, newPosition: PinPosition) => void;
36
+ /** Clear all pinned rows */
37
+ clearAll: () => void;
38
+ /** Clear pinned rows at a specific position */
39
+ clear: (position: PinPosition) => void;
40
+ }
41
+ export declare function usePinnedRows<T>(options?: UsePinnedRowsOptions<T>): UsePinnedRowsReturn<T>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,52 @@
1
+ import { Ref } from 'vue';
2
+ export interface UseTableKeyboardNavigationOptions {
3
+ /** The table element ref */
4
+ tableRef: Ref<HTMLElement | null>;
5
+ /** Number of rows in the table */
6
+ rowCount: Ref<number> | number;
7
+ /** Number of columns in the table */
8
+ colCount: Ref<number> | number;
9
+ /** Enable cell-level navigation (default: false, uses row-level) */
10
+ cellNavigation?: boolean;
11
+ /** Callback when a row is activated (Enter/Space) */
12
+ onRowActivate?: (rowIndex: number) => void;
13
+ /** Callback when a cell is activated (Enter/Space) */
14
+ onCellActivate?: (rowIndex: number, colIndex: number) => void;
15
+ /** Callback when focus changes */
16
+ onFocusChange?: (rowIndex: number, colIndex: number) => void;
17
+ /** Skip header row in navigation */
18
+ skipHeader?: boolean;
19
+ /** Enable wrap-around navigation */
20
+ wrap?: boolean;
21
+ }
22
+ export interface UseTableKeyboardNavigationReturn {
23
+ /** Currently focused row index */
24
+ focusedRow: Ref<number>;
25
+ /** Currently focused column index (for cell navigation) */
26
+ focusedCol: Ref<number>;
27
+ /** Whether keyboard navigation is active */
28
+ isActive: Ref<boolean>;
29
+ /** Set focus to a specific row */
30
+ setFocusedRow: (index: number) => void;
31
+ /** Set focus to a specific cell */
32
+ setFocusedCell: (row: number, col: number) => void;
33
+ /** Start keyboard navigation */
34
+ activate: () => void;
35
+ /** Stop keyboard navigation */
36
+ deactivate: () => void;
37
+ /** Get props to apply to a row for navigation */
38
+ getRowProps: (rowIndex: number) => {
39
+ tabIndex: number;
40
+ 'aria-selected'?: boolean;
41
+ onFocus: () => void;
42
+ };
43
+ /** Get props to apply to a cell for navigation */
44
+ getCellProps: (rowIndex: number, colIndex: number) => {
45
+ tabIndex: number;
46
+ 'aria-selected'?: boolean;
47
+ onFocus: () => void;
48
+ };
49
+ /** Handle keyboard events (attach to table) */
50
+ handleKeyDown: (event: KeyboardEvent) => void;
51
+ }
52
+ export declare function useTableKeyboardNavigation(options: UseTableKeyboardNavigationOptions): UseTableKeyboardNavigationReturn;
@@ -0,0 +1,32 @@
1
+ import { Ref, ComputedRef } from 'vue';
2
+ export interface UseVirtualScrollOptions<T> {
3
+ /** Array of items to virtualize */
4
+ items: T[] | Ref<T[]>;
5
+ /** Height of each row in pixels */
6
+ rowHeight: number;
7
+ /** Visible container height in pixels */
8
+ containerHeight: number;
9
+ /** Number of rows to render outside visible area (buffer) */
10
+ overscan?: number;
11
+ }
12
+ export interface UseVirtualScrollReturn<T> {
13
+ /** Items to actually render */
14
+ visibleItems: ComputedRef<T[]>;
15
+ /** Total height of all items (for scroll container) */
16
+ totalHeight: ComputedRef<number>;
17
+ /** Top offset for the visible items container */
18
+ offsetY: ComputedRef<number>;
19
+ /** Start index of visible items */
20
+ startIndex: ComputedRef<number>;
21
+ /** End index of visible items */
22
+ endIndex: ComputedRef<number>;
23
+ /** Scroll position */
24
+ scrollTop: Ref<number>;
25
+ /** Handle scroll event */
26
+ onScroll: (event: Event) => void;
27
+ /** Scroll to a specific index */
28
+ scrollToIndex: (index: number) => void;
29
+ /** Container ref to attach to scrollable element */
30
+ containerRef: Ref<HTMLElement | null>;
31
+ }
32
+ export declare function useVirtualScroll<T>(options: UseVirtualScrollOptions<T>): UseVirtualScrollReturn<T>;
@@ -0,0 +1 @@
1
+ export {};
@@ -395,8 +395,8 @@ function useBreakpoints(breakpoints, options = {}) {
395
395
  }
396
396
  export {
397
397
  _sfc_main as _,
398
- useDebounceFn as a,
398
+ useBreakpoints as a,
399
399
  onClickOutside as o,
400
- useBreakpoints as u
400
+ useDebounceFn as u
401
401
  };
402
- //# sourceMappingURL=index-SNefWfX0.js.map
402
+ //# sourceMappingURL=index-BaWpldIJ.js.map