pixelize-design-library 2.2.193 → 2.2.195

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 (213) hide show
  1. package/dist/Components/Table/Components/HeaderActions.js +22 -12
  2. package/dist/Components/Table/Table.js +4 -4
  3. package/dist/Components/Table/TableProps.d.ts +8 -3
  4. package/dist/Components/ToolTip/ToolTip.js +2 -2
  5. package/package.json +1 -1
  6. package/.claude/settings.local.json +0 -15
  7. package/coverage/clover.xml +0 -638
  8. package/coverage/coverage-final.json +0 -20
  9. package/coverage/lcov-report/Table/CompactSelect.tsx.html +0 -379
  10. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +0 -514
  11. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +0 -373
  12. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +0 -574
  13. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +0 -574
  14. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +0 -1027
  15. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +0 -397
  16. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +0 -1060
  17. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +0 -361
  18. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +0 -337
  19. package/coverage/lcov-report/Table/Components/index.html +0 -266
  20. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +0 -178
  21. package/coverage/lcov-report/Table/Components/useTable.ts.html +0 -778
  22. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +0 -1810
  23. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +0 -178
  24. package/coverage/lcov-report/Table/Table.tsx.html +0 -1567
  25. package/coverage/lcov-report/Table/TableProps.tsx.html +0 -658
  26. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +0 -619
  27. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +0 -229
  28. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +0 -532
  29. package/coverage/lcov-report/Table/TableSettings/index.html +0 -146
  30. package/coverage/lcov-report/Table/TableToDo.tsx.html +0 -973
  31. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +0 -271
  32. package/coverage/lcov-report/Table/filterTypes.ts.html +0 -97
  33. package/coverage/lcov-report/Table/index.html +0 -176
  34. package/coverage/lcov-report/base.css +0 -224
  35. package/coverage/lcov-report/block-navigation.js +0 -87
  36. package/coverage/lcov-report/favicon.png +0 -0
  37. package/coverage/lcov-report/index.html +0 -146
  38. package/coverage/lcov-report/prettify.css +0 -1
  39. package/coverage/lcov-report/prettify.js +0 -2
  40. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  41. package/coverage/lcov-report/sorter.js +0 -210
  42. package/coverage/lcov.info +0 -1836
  43. package/dist/Assets/defaultLogo.tsx +0 -31
  44. package/dist/Theme/Dark/palette.d.ts +0 -370
  45. package/dist/Theme/Dark/palette.js +0 -372
  46. package/dist/components-v2/AlertDialog/AlertDialog.d.ts +0 -23
  47. package/dist/components-v2/AlertDialog/AlertDialog.js +0 -98
  48. package/dist/components-v2/Breadcrumbs/Breadcrumbs.d.ts +0 -14
  49. package/dist/components-v2/Breadcrumbs/Breadcrumbs.js +0 -66
  50. package/dist/components-v2/Charts/AreaChart.d.ts +0 -23
  51. package/dist/components-v2/Charts/AreaChart.js +0 -63
  52. package/dist/components-v2/Charts/BarChart.d.ts +0 -25
  53. package/dist/components-v2/Charts/BarChart.js +0 -57
  54. package/dist/components-v2/Charts/LineChart.d.ts +0 -23
  55. package/dist/components-v2/Charts/LineChart.js +0 -55
  56. package/dist/components-v2/Charts/PieChart.d.ts +0 -15
  57. package/dist/components-v2/Charts/PieChart.js +0 -54
  58. package/dist/components-v2/Charts/PolarChart.d.ts +0 -14
  59. package/dist/components-v2/Charts/PolarChart.js +0 -54
  60. package/dist/components-v2/Charts/chartOptions.d.ts +0 -7
  61. package/dist/components-v2/Charts/chartOptions.js +0 -41
  62. package/dist/components-v2/Charts/useChartTheme.d.ts +0 -22
  63. package/dist/components-v2/Charts/useChartTheme.js +0 -106
  64. package/dist/components-v2/ContactForm/ContactForm.d.ts +0 -25
  65. package/dist/components-v2/ContactForm/ContactForm.js +0 -116
  66. package/dist/components-v2/DatePicker/Calendar.d.ts +0 -19
  67. package/dist/components-v2/DatePicker/Calendar.js +0 -212
  68. package/dist/components-v2/DatePicker/DatePicker.d.ts +0 -46
  69. package/dist/components-v2/DatePicker/DatePicker.js +0 -189
  70. package/dist/components-v2/DatePicker/TimePicker.d.ts +0 -12
  71. package/dist/components-v2/DatePicker/TimePicker.js +0 -105
  72. package/dist/components-v2/DatePicker/utils.d.ts +0 -31
  73. package/dist/components-v2/DatePicker/utils.js +0 -109
  74. package/dist/components-v2/Drawer/Drawer.d.ts +0 -27
  75. package/dist/components-v2/Drawer/Drawer.js +0 -132
  76. package/dist/components-v2/FeedbackForm/FeedbackForm.d.ts +0 -26
  77. package/dist/components-v2/FeedbackForm/FeedbackForm.js +0 -112
  78. package/dist/components-v2/FileUploader/FileUploader.d.ts +0 -28
  79. package/dist/components-v2/FileUploader/FileUploader.js +0 -127
  80. package/dist/components-v2/Input/TextInput.d.ts +0 -41
  81. package/dist/components-v2/Input/TextInput.js +0 -169
  82. package/dist/components-v2/KanbanBoard/KanbanBoard.d.ts +0 -39
  83. package/dist/components-v2/KanbanBoard/KanbanBoard.js +0 -101
  84. package/dist/components-v2/Layout/AppLayout.d.ts +0 -22
  85. package/dist/components-v2/Layout/AppLayout.js +0 -53
  86. package/dist/components-v2/Loading/Loading.d.ts +0 -19
  87. package/dist/components-v2/Loading/Loading.js +0 -55
  88. package/dist/components-v2/Modal/Modal.d.ts +0 -30
  89. package/dist/components-v2/Modal/Modal.js +0 -82
  90. package/dist/components-v2/NavigationBar/NavigationBar.d.ts +0 -47
  91. package/dist/components-v2/NavigationBar/NavigationBar.js +0 -148
  92. package/dist/components-v2/Notification/Notification.d.ts +0 -22
  93. package/dist/components-v2/Notification/Notification.js +0 -113
  94. package/dist/components-v2/NumberInput/NumberInput.d.ts +0 -37
  95. package/dist/components-v2/NumberInput/NumberInput.js +0 -210
  96. package/dist/components-v2/PinInput/PinInput.d.ts +0 -26
  97. package/dist/components-v2/PinInput/PinInput.js +0 -138
  98. package/dist/components-v2/ProfilePhotoViewer/ProfilePhotoViewer.d.ts +0 -18
  99. package/dist/components-v2/ProfilePhotoViewer/ProfilePhotoViewer.js +0 -91
  100. package/dist/components-v2/Select/Select.d.ts +0 -41
  101. package/dist/components-v2/Select/Select.js +0 -284
  102. package/dist/components-v2/Sidebar/Sidebar.d.ts +0 -41
  103. package/dist/components-v2/Sidebar/Sidebar.js +0 -182
  104. package/dist/components-v2/Slider/Slider.d.ts +0 -18
  105. package/dist/components-v2/Slider/Slider.js +0 -101
  106. package/dist/components-v2/Table/Table.d.ts +0 -7
  107. package/dist/components-v2/Table/Table.js +0 -172
  108. package/dist/components-v2/Table/TableProps.d.ts +0 -139
  109. package/dist/components-v2/Table/TableProps.js +0 -9
  110. package/dist/components-v2/Table/components/ActiveFilters.d.ts +0 -10
  111. package/dist/components-v2/Table/components/ActiveFilters.js +0 -70
  112. package/dist/components-v2/Table/components/BulkActionBar.d.ts +0 -11
  113. package/dist/components-v2/Table/components/BulkActionBar.js +0 -92
  114. package/dist/components-v2/Table/components/ColumnResizeHandle.d.ts +0 -7
  115. package/dist/components-v2/Table/components/ColumnResizeHandle.js +0 -41
  116. package/dist/components-v2/Table/components/Pagination.d.ts +0 -11
  117. package/dist/components-v2/Table/components/Pagination.js +0 -92
  118. package/dist/components-v2/Table/components/TableBody.d.ts +0 -23
  119. package/dist/components-v2/Table/components/TableBody.js +0 -69
  120. package/dist/components-v2/Table/components/TableCell.d.ts +0 -14
  121. package/dist/components-v2/Table/components/TableCell.js +0 -63
  122. package/dist/components-v2/Table/components/TableEmptyState.d.ts +0 -12
  123. package/dist/components-v2/Table/components/TableEmptyState.js +0 -55
  124. package/dist/components-v2/Table/components/TableErrorState.d.ts +0 -6
  125. package/dist/components-v2/Table/components/TableErrorState.js +0 -52
  126. package/dist/components-v2/Table/components/TableHeader.d.ts +0 -21
  127. package/dist/components-v2/Table/components/TableHeader.js +0 -94
  128. package/dist/components-v2/Table/components/TableRow.d.ts +0 -20
  129. package/dist/components-v2/Table/components/TableRow.js +0 -64
  130. package/dist/components-v2/Table/components/TableSearch.d.ts +0 -8
  131. package/dist/components-v2/Table/components/TableSearch.js +0 -47
  132. package/dist/components-v2/Table/filters/FilterChips.d.ts +0 -6
  133. package/dist/components-v2/Table/filters/FilterChips.js +0 -9
  134. package/dist/components-v2/Table/filters/LeftFilterPane.d.ts +0 -17
  135. package/dist/components-v2/Table/filters/LeftFilterPane.js +0 -105
  136. package/dist/components-v2/Table/filters/TableFilters.d.ts +0 -12
  137. package/dist/components-v2/Table/filters/TableFilters.js +0 -127
  138. package/dist/components-v2/Table/hooks/useColumnResize.d.ts +0 -15
  139. package/dist/components-v2/Table/hooks/useColumnResize.js +0 -104
  140. package/dist/components-v2/Table/hooks/useTable.d.ts +0 -58
  141. package/dist/components-v2/Table/hooks/useTable.js +0 -254
  142. package/dist/components-v2/Table/hooks/useTableKeyboard.d.ts +0 -25
  143. package/dist/components-v2/Table/hooks/useTableKeyboard.js +0 -112
  144. package/dist/components-v2/Table/hooks/useVirtualScroll.d.ts +0 -29
  145. package/dist/components-v2/Table/hooks/useVirtualScroll.js +0 -83
  146. package/dist/components-v2/Table/settings/ManageColumns.d.ts +0 -12
  147. package/dist/components-v2/Table/settings/ManageColumns.js +0 -59
  148. package/dist/components-v2/Table/settings/TableSettings.d.ts +0 -12
  149. package/dist/components-v2/Table/settings/TableSettings.js +0 -57
  150. package/dist/components-v2/Table/utils/filterUtils.d.ts +0 -7
  151. package/dist/components-v2/Table/utils/filterUtils.js +0 -149
  152. package/dist/components-v2/Table/utils/sortUtils.d.ts +0 -6
  153. package/dist/components-v2/Table/utils/sortUtils.js +0 -65
  154. package/dist/components-v2/Tag/Tag.d.ts +0 -15
  155. package/dist/components-v2/Tag/Tag.js +0 -87
  156. package/dist/components-v2/Timeline/Timeline.d.ts +0 -18
  157. package/dist/components-v2/Timeline/Timeline.js +0 -76
  158. package/dist/components-v2/Toaster/Toaster.d.ts +0 -61
  159. package/dist/components-v2/Toaster/Toaster.js +0 -63
  160. package/dist/components-v2/Toggle/Toggle.d.ts +0 -28
  161. package/dist/components-v2/Toggle/Toggle.js +0 -90
  162. package/dist/components-v2/ui/accordion.d.ts +0 -12
  163. package/dist/components-v2/ui/accordion.js +0 -104
  164. package/dist/components-v2/ui/alert.d.ts +0 -18
  165. package/dist/components-v2/ui/alert.js +0 -99
  166. package/dist/components-v2/ui/avatar.d.ts +0 -12
  167. package/dist/components-v2/ui/avatar.js +0 -80
  168. package/dist/components-v2/ui/badge.d.ts +0 -10
  169. package/dist/components-v2/ui/badge.js +0 -76
  170. package/dist/components-v2/ui/button.d.ts +0 -18
  171. package/dist/components-v2/ui/button.js +0 -97
  172. package/dist/components-v2/ui/checkbox.d.ts +0 -15
  173. package/dist/components-v2/ui/checkbox.js +0 -86
  174. package/dist/components-v2/ui/dialog.d.ts +0 -30
  175. package/dist/components-v2/ui/dialog.js +0 -115
  176. package/dist/components-v2/ui/dropdown-menu.d.ts +0 -26
  177. package/dist/components-v2/ui/dropdown-menu.js +0 -121
  178. package/dist/components-v2/ui/field.d.ts +0 -32
  179. package/dist/components-v2/ui/field.js +0 -62
  180. package/dist/components-v2/ui/form-field.d.ts +0 -25
  181. package/dist/components-v2/ui/form-field.js +0 -96
  182. package/dist/components-v2/ui/input.d.ts +0 -9
  183. package/dist/components-v2/ui/input.js +0 -73
  184. package/dist/components-v2/ui/label.d.ts +0 -10
  185. package/dist/components-v2/ui/label.js +0 -70
  186. package/dist/components-v2/ui/popover.d.ts +0 -9
  187. package/dist/components-v2/ui/popover.js +0 -60
  188. package/dist/components-v2/ui/progress.d.ts +0 -12
  189. package/dist/components-v2/ui/progress.js +0 -75
  190. package/dist/components-v2/ui/radio-group.d.ts +0 -17
  191. package/dist/components-v2/ui/radio-group.js +0 -91
  192. package/dist/components-v2/ui/select.d.ts +0 -24
  193. package/dist/components-v2/ui/select.js +0 -122
  194. package/dist/components-v2/ui/separator.d.ts +0 -5
  195. package/dist/components-v2/ui/separator.js +0 -55
  196. package/dist/components-v2/ui/skeleton.d.ts +0 -9
  197. package/dist/components-v2/ui/skeleton.js +0 -68
  198. package/dist/components-v2/ui/spinner.d.ts +0 -16
  199. package/dist/components-v2/ui/spinner.js +0 -64
  200. package/dist/components-v2/ui/switch.d.ts +0 -10
  201. package/dist/components-v2/ui/switch.js +0 -81
  202. package/dist/components-v2/ui/tabs.d.ts +0 -13
  203. package/dist/components-v2/ui/tabs.js +0 -95
  204. package/dist/components-v2/ui/textarea.d.ts +0 -10
  205. package/dist/components-v2/ui/textarea.js +0 -96
  206. package/dist/components-v2/ui/tooltip.d.ts +0 -17
  207. package/dist/components-v2/ui/tooltip.js +0 -75
  208. package/dist/lib/utils.d.ts +0 -2
  209. package/dist/lib/utils.js +0 -8
  210. package/dist/theme-v2/ThemeProvider.d.ts +0 -19
  211. package/dist/theme-v2/ThemeProvider.js +0 -149
  212. package/dist/theme-v2/dark.css +0 -47
  213. package/dist/theme-v2/tokens.css +0 -72
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.TableErrorState = TableErrorState;
37
- const React = __importStar(require("react"));
38
- const lucide_react_1 = require("lucide-react");
39
- const button_1 = require("../../ui/button");
40
- function TableErrorState({ error, onRetry, }) {
41
- const message = typeof error === "string" ? error : error.message || "Something went wrong";
42
- const details = typeof error === "object" && error.stack ? error.stack : null;
43
- return (React.createElement("div", { role: "alert", className: "flex flex-col items-center justify-center gap-3 px-6 py-12 text-center" },
44
- React.createElement(lucide_react_1.AlertTriangle, { "aria-hidden": "true", className: "h-10 w-10 text-destructive" }),
45
- React.createElement("div", { className: "space-y-1" },
46
- React.createElement("p", { className: "text-sm font-medium text-foreground" }, "Couldn't load this table"),
47
- React.createElement("p", { className: "text-sm text-muted-foreground" }, message)),
48
- onRetry && (React.createElement(button_1.Button, { variant: "outline", size: "sm", leftIcon: React.createElement(lucide_react_1.RefreshCw, null), onClick: onRetry }, "Try again")),
49
- details && (React.createElement("details", { className: "mt-2 max-w-md text-left" },
50
- React.createElement("summary", { className: "cursor-pointer text-xs text-muted-foreground hover:text-foreground" }, "Technical details"),
51
- React.createElement("pre", { className: "mt-2 max-h-32 overflow-auto rounded-md bg-muted p-2 text-[11px] leading-snug text-muted-foreground" }, details)))));
52
- }
@@ -1,21 +0,0 @@
1
- import * as React from "react";
2
- import type { ColumnDef, SortState } from "../TableProps";
3
- export interface TableHeaderProps<T> {
4
- columns: ColumnDef<T>[];
5
- columnWidths: Record<string, number>;
6
- sortable: boolean;
7
- sort: SortState | null;
8
- onSortChange: (next: SortState | null) => void;
9
- selectable: boolean;
10
- selectionMode: "single" | "multi";
11
- isAllSelected: boolean;
12
- isSomeSelected: boolean;
13
- onToggleAll: () => void;
14
- resizable: boolean;
15
- resizingColumnId: string | null;
16
- onResizePointerDown: (columnId: string, event: React.PointerEvent<HTMLDivElement>) => void;
17
- sticky: boolean;
18
- focusedColIndex: number;
19
- onCellClick: (colIndex: number) => void;
20
- }
21
- export declare function TableHeader<T>({ columns, columnWidths, sortable, sort, onSortChange, selectable, selectionMode, isAllSelected, isSomeSelected, onToggleAll, resizable, resizingColumnId, onResizePointerDown, sticky, focusedColIndex, onCellClick, }: TableHeaderProps<T>): React.ReactElement;
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.TableHeader = TableHeader;
37
- const React = __importStar(require("react"));
38
- const lucide_react_1 = require("lucide-react");
39
- const utils_1 = require("../../../lib/utils");
40
- const checkbox_1 = require("../../ui/checkbox");
41
- const sortUtils_1 = require("../utils/sortUtils");
42
- const ColumnResizeHandle_1 = require("./ColumnResizeHandle");
43
- function TableHeader({ columns, columnWidths, sortable, sort, onSortChange, selectable, selectionMode, isAllSelected, isSomeSelected, onToggleAll, resizable, resizingColumnId, onResizePointerDown, sticky, focusedColIndex, onCellClick, }) {
44
- const handleSort = (column) => {
45
- if (!sortable || column.sortable === false)
46
- return;
47
- const currentDirection = (sort === null || sort === void 0 ? void 0 : sort.id) === column.id ? sort.direction : null;
48
- const next = (0, sortUtils_1.nextSortDirection)(currentDirection);
49
- onSortChange(next === null ? null : { id: column.id, direction: next });
50
- };
51
- return (React.createElement("thead", { className: (0, utils_1.cn)("bg-muted/50", sticky && "sticky top-0 z-20") },
52
- React.createElement("tr", null,
53
- selectable && (React.createElement("th", { scope: "col", className: "h-[var(--row-height)] w-10 border-b border-border px-2 align-middle" }, selectionMode === "multi" && (React.createElement(checkbox_1.Checkbox, { size: "sm", checked: isAllSelected
54
- ? true
55
- : isSomeSelected
56
- ? "indeterminate"
57
- : false, onCheckedChange: onToggleAll, "aria-label": isAllSelected ? "Deselect all" : "Select all" })))),
58
- columns.map((column, colIndex) => {
59
- var _a;
60
- const adjustedColIndex = selectable ? colIndex + 1 : colIndex;
61
- const isSorted = (sort === null || sort === void 0 ? void 0 : sort.id) === column.id;
62
- const direction = isSorted ? sort === null || sort === void 0 ? void 0 : sort.direction : null;
63
- const sortableCol = sortable && column.sortable !== false;
64
- const width = (_a = columnWidths[column.id]) !== null && _a !== void 0 ? _a : column.width;
65
- const isSticky = !!column.sticky;
66
- return (React.createElement("th", { key: column.id, scope: "col", "data-column-id": column.id, "aria-sort": isSorted && direction
67
- ? direction === "asc"
68
- ? "ascending"
69
- : "descending"
70
- : sortableCol
71
- ? "none"
72
- : undefined, tabIndex: focusedColIndex === adjustedColIndex ? 0 : -1, onClick: () => {
73
- onCellClick(adjustedColIndex);
74
- handleSort(column);
75
- }, style: Object.assign({ width, minWidth: width, maxWidth: width }, (isSticky
76
- ? {
77
- position: "sticky",
78
- [column.sticky === "left" ? "left" : "right"]: 0,
79
- zIndex: 21,
80
- }
81
- : {})), className: (0, utils_1.cn)("relative h-[var(--row-height)] select-none border-b border-border px-3 align-middle text-left text-xs font-medium uppercase tracking-wider text-muted-foreground", sortableCol &&
82
- "cursor-pointer hover:text-foreground", isSticky && "bg-muted/80", column.align === "center" && "text-center", column.align === "right" && "text-right") },
83
- React.createElement("span", { className: "flex items-center gap-1.5" },
84
- React.createElement("span", { className: "truncate" }, column.header),
85
- sortableCol && (React.createElement(SortIcon, { sorted: isSorted, direction: direction !== null && direction !== void 0 ? direction : null }))),
86
- resizable && column.enableResizing !== false && (React.createElement(ColumnResizeHandle_1.ColumnResizeHandle, { columnId: column.id, isResizing: resizingColumnId === column.id, onPointerDown: onResizePointerDown }))));
87
- }))));
88
- }
89
- function SortIcon({ sorted, direction, }) {
90
- if (!sorted || direction === null) {
91
- return (React.createElement(lucide_react_1.ChevronsUpDown, { "aria-hidden": "true", className: "h-3.5 w-3.5 opacity-50" }));
92
- }
93
- return direction === "asc" ? (React.createElement(lucide_react_1.ArrowUp, { "aria-hidden": "true", className: "h-3.5 w-3.5 text-primary" })) : (React.createElement(lucide_react_1.ArrowDown, { "aria-hidden": "true", className: "h-3.5 w-3.5 text-primary" }));
94
- }
@@ -1,20 +0,0 @@
1
- import * as React from "react";
2
- import type { ColumnDef } from "../TableProps";
3
- export interface TableRowProps<T> {
4
- row: T;
5
- rowKey: string | number;
6
- rowIndex: number;
7
- columns: ColumnDef<T>[];
8
- columnWidths: Record<string, number>;
9
- selectable: boolean;
10
- selected: boolean;
11
- onToggleSelect: (key: string | number, event: React.MouseEvent) => void;
12
- onRowClick?: (row: T, event: React.MouseEvent) => void;
13
- rowClassName?: (row: T) => string | undefined;
14
- /** Index of the currently keyboard-focused column (or -1). */
15
- focusedColIndex: number;
16
- onCellClick: (colIndex: number) => void;
17
- striped: boolean;
18
- noBorders: boolean;
19
- }
20
- export declare const TableRow: <T>(props: TableRowProps<T>) => React.ReactElement;
@@ -1,64 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.TableRow = void 0;
37
- const React = __importStar(require("react"));
38
- const utils_1 = require("../../../lib/utils");
39
- const checkbox_1 = require("../../ui/checkbox");
40
- const sortUtils_1 = require("../utils/sortUtils");
41
- const TableCell_1 = require("./TableCell");
42
- function TableRowImpl({ row, rowKey, rowIndex, columns, columnWidths, selectable, selected, onToggleSelect, onRowClick, rowClassName, focusedColIndex, onCellClick, striped, noBorders, }) {
43
- const clickableRow = !!onRowClick;
44
- const rowClasses = rowClassName === null || rowClassName === void 0 ? void 0 : rowClassName(row);
45
- return (React.createElement("tr", { "data-row-key": rowKey, "aria-selected": selectable ? selected : undefined, onClick: (event) => onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(row, event), className: (0, utils_1.cn)("group transition-colors", striped && rowIndex % 2 === 1 && "bg-muted/30", selected && "!bg-primary/10 outline outline-2 -outline-offset-2 outline-primary/40", clickableRow && "cursor-pointer", "hover:bg-accent/50", noBorders && "[&>td]:border-b-0", rowClasses) },
46
- selectable && (React.createElement("td", { className: "h-[var(--row-height)] w-10 border-b border-border px-2 align-middle", onClick: (event) => event.stopPropagation(), tabIndex: focusedColIndex === 0 ? 0 : -1, role: "gridcell" },
47
- React.createElement(checkbox_1.Checkbox, { size: "sm", checked: selected, onCheckedChange: () => {
48
- const fakeEvent = {
49
- shiftKey: false,
50
- };
51
- onToggleSelect(rowKey, fakeEvent);
52
- }, "aria-label": `Select row ${rowIndex + 1}` }))),
53
- columns.map((column, colIndex) => {
54
- var _a;
55
- const adjustedColIndex = selectable ? colIndex + 1 : colIndex;
56
- const value = (0, sortUtils_1.getRowValue)(row, column);
57
- return (React.createElement(TableCell_1.TableCell, { key: column.id, column: column, value: value, row: row, width: (_a = columnWidths[column.id]) !== null && _a !== void 0 ? _a : column.width, isFocused: focusedColIndex === adjustedColIndex, onClick: (event) => {
58
- event.stopPropagation();
59
- onCellClick(adjustedColIndex);
60
- onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(row, event);
61
- } }));
62
- })));
63
- }
64
- exports.TableRow = React.memo(TableRowImpl);
@@ -1,8 +0,0 @@
1
- import * as React from "react";
2
- export interface TableSearchProps {
3
- value: string;
4
- onChange: (value: string) => void;
5
- placeholder?: string;
6
- className?: string;
7
- }
8
- export declare function TableSearch({ value, onChange, placeholder, className, }: TableSearchProps): React.ReactElement;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.TableSearch = TableSearch;
37
- const React = __importStar(require("react"));
38
- const lucide_react_1 = require("lucide-react");
39
- const utils_1 = require("../../../lib/utils");
40
- const input_1 = require("../../ui/input");
41
- function TableSearch({ value, onChange, placeholder = "Search…", className, }) {
42
- return (React.createElement("div", { className: (0, utils_1.cn)("relative w-full max-w-xs", className) },
43
- React.createElement(lucide_react_1.Search, { "aria-hidden": "true", className: "pointer-events-none absolute left-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
44
- React.createElement(input_1.Input, { type: "search", value: value, onChange: (event) => onChange(event.target.value), placeholder: placeholder, className: "pl-8 pr-8", "aria-label": "Search table" }),
45
- value && (React.createElement("button", { type: "button", "aria-label": "Clear search", onClick: () => onChange(""), className: "absolute right-2 top-1/2 -translate-y-1/2 rounded-sm text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" },
46
- React.createElement(lucide_react_1.X, { className: "h-3.5 w-3.5" })))));
47
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * FilterChips is the same UI as ActiveFilters — re-exported here so consumers
3
- * can import either location without surprises.
4
- */
5
- export { ActiveFilters as FilterChips } from "../components/ActiveFilters";
6
- export type { ActiveFiltersProps as FilterChipsProps } from "../components/ActiveFilters";
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FilterChips = void 0;
4
- /**
5
- * FilterChips is the same UI as ActiveFilters — re-exported here so consumers
6
- * can import either location without surprises.
7
- */
8
- var ActiveFilters_1 = require("../components/ActiveFilters");
9
- Object.defineProperty(exports, "FilterChips", { enumerable: true, get: function () { return ActiveFilters_1.ActiveFilters; } });
@@ -1,17 +0,0 @@
1
- import * as React from "react";
2
- import type { FilterSidebarConfig } from "../TableProps";
3
- export interface LeftFilterPaneProps {
4
- filters: FilterSidebarConfig[];
5
- initialValues?: Record<string, unknown>;
6
- onApply: (values: Record<string, unknown>) => void;
7
- onClose?: () => void;
8
- position?: "left" | "right";
9
- isLoading?: boolean;
10
- className?: string;
11
- }
12
- /**
13
- * Sidebar variant of the filter UI — renders inline alongside the table when
14
- * `filterMode === 'sidebar'`. Maintains its own draft state and only fires
15
- * `onApply` on the explicit Apply button.
16
- */
17
- export declare function LeftFilterPane({ filters, initialValues, onApply, onClose, position, isLoading, className, }: LeftFilterPaneProps): React.ReactElement;
@@ -1,105 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.LeftFilterPane = LeftFilterPane;
37
- const React = __importStar(require("react"));
38
- const lucide_react_1 = require("lucide-react");
39
- const utils_1 = require("../../../lib/utils");
40
- const button_1 = require("../../ui/button");
41
- const input_1 = require("../../ui/input");
42
- const label_1 = require("../../ui/label");
43
- const Select_1 = require("../../Select/Select");
44
- const spinner_1 = require("../../ui/spinner");
45
- /**
46
- * Sidebar variant of the filter UI — renders inline alongside the table when
47
- * `filterMode === 'sidebar'`. Maintains its own draft state and only fires
48
- * `onApply` on the explicit Apply button.
49
- */
50
- function LeftFilterPane({ filters, initialValues, onApply, onClose, position = "left", isLoading, className, }) {
51
- const [draft, setDraft] = React.useState(initialValues !== null && initialValues !== void 0 ? initialValues : {});
52
- React.useEffect(() => {
53
- if (initialValues)
54
- setDraft(initialValues);
55
- }, [initialValues]);
56
- const update = (id, value) => setDraft((prev) => (Object.assign(Object.assign({}, prev), { [id]: value })));
57
- return (React.createElement("aside", { "aria-label": "Filters", className: (0, utils_1.cn)("flex w-72 shrink-0 flex-col border-border bg-card text-card-foreground", position === "left" ? "border-r" : "border-l", className) },
58
- React.createElement("header", { className: "flex items-center justify-between gap-2 border-b border-border px-3 py-2" },
59
- React.createElement("span", { className: "inline-flex items-center gap-2 text-sm font-medium" },
60
- React.createElement(lucide_react_1.Filter, { "aria-hidden": "true", className: "h-4 w-4" }),
61
- "Filters"),
62
- onClose && (React.createElement("button", { type: "button", "aria-label": "Close filters", onClick: onClose, className: "rounded-md p-1 text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" },
63
- React.createElement(lucide_react_1.X, { className: "h-4 w-4" })))),
64
- React.createElement("div", { className: "flex-1 space-y-4 overflow-y-auto px-3 py-3" },
65
- filters.map((config) => (React.createElement(FilterField, { key: config.id, config: config, value: draft[config.id], onChange: (v) => update(config.id, v) }))),
66
- filters.length === 0 && (React.createElement("p", { className: "text-xs text-muted-foreground" }, "No filters configured."))),
67
- React.createElement("footer", { className: "flex items-center justify-end gap-2 border-t border-border px-3 py-2" },
68
- React.createElement(button_1.Button, { variant: "ghost", size: "sm", onClick: () => {
69
- setDraft({});
70
- onApply({});
71
- } }, "Reset"),
72
- React.createElement(button_1.Button, { size: "sm", onClick: () => onApply(draft), isLoading: isLoading, leftIcon: isLoading ? React.createElement(spinner_1.Spinner, { size: "sm" }) : undefined }, "Apply"))));
73
- }
74
- function FilterField({ config, value, onChange, }) {
75
- var _a, _b, _c, _d, _e;
76
- const opts = ((_a = config.options) !== null && _a !== void 0 ? _a : []).map((option) => ({
77
- value: String(option.value),
78
- label: option.label,
79
- }));
80
- if (config.type === "select") {
81
- return (React.createElement(Select_1.Select, { label: config.label, options: opts, value: typeof value === "string" ? value : "", onChange: (v) => onChange(v), clearable: true, searchable: opts.length > 6 }));
82
- }
83
- if (config.type === "multi-select") {
84
- return (React.createElement(Select_1.Select, { label: config.label, options: opts, multiple: true, value: Array.isArray(value) ? value : [], onChange: (v) => onChange(v), clearable: true, searchable: opts.length > 6 }));
85
- }
86
- if (config.type === "number-range") {
87
- const v = Array.isArray(value) ? value : ["", ""];
88
- return (React.createElement("div", { className: "space-y-1.5" },
89
- React.createElement(label_1.Label, null, config.label),
90
- React.createElement("div", { className: "flex items-center gap-2" },
91
- React.createElement(input_1.Input, { size: "sm", inputMode: "decimal", placeholder: "Min", value: (_b = v[0]) !== null && _b !== void 0 ? _b : "", onChange: (event) => { var _a; return onChange([event.target.value, (_a = v[1]) !== null && _a !== void 0 ? _a : ""]); } }),
92
- React.createElement(input_1.Input, { size: "sm", inputMode: "decimal", placeholder: "Max", value: (_c = v[1]) !== null && _c !== void 0 ? _c : "", onChange: (event) => { var _a; return onChange([(_a = v[0]) !== null && _a !== void 0 ? _a : "", event.target.value]); } }))));
93
- }
94
- if (config.type === "date-range") {
95
- const v = Array.isArray(value) ? value : ["", ""];
96
- return (React.createElement("div", { className: "space-y-1.5" },
97
- React.createElement(label_1.Label, null, config.label),
98
- React.createElement("div", { className: "flex items-center gap-2" },
99
- React.createElement(input_1.Input, { size: "sm", type: "date", value: (_d = v[0]) !== null && _d !== void 0 ? _d : "", onChange: (event) => { var _a; return onChange([event.target.value, (_a = v[1]) !== null && _a !== void 0 ? _a : ""]); } }),
100
- React.createElement(input_1.Input, { size: "sm", type: "date", value: (_e = v[1]) !== null && _e !== void 0 ? _e : "", onChange: (event) => { var _a; return onChange([(_a = v[0]) !== null && _a !== void 0 ? _a : "", event.target.value]); } }))));
101
- }
102
- return (React.createElement("div", { className: "space-y-1.5" },
103
- React.createElement(label_1.Label, null, config.label),
104
- React.createElement(input_1.Input, { size: "sm", value: typeof value === "string" ? value : "", onChange: (event) => onChange(event.target.value), placeholder: `Filter by ${config.label.toLowerCase()}` })));
105
- }
@@ -1,12 +0,0 @@
1
- import * as React from "react";
2
- import type { ActiveFilter, ColumnDef } from "../TableProps";
3
- export interface TableFiltersProps<T> {
4
- columns: ColumnDef<T>[];
5
- filters: ActiveFilter[];
6
- onApply: (next: ActiveFilter[]) => void;
7
- }
8
- /**
9
- * Inline column-level filter builder. Opens from a "Filters" button in the
10
- * toolbar and lets the user add per-column filter rules.
11
- */
12
- export declare function TableFilters<T>({ columns, filters, onApply, }: TableFiltersProps<T>): React.ReactElement;
@@ -1,127 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.TableFilters = TableFilters;
37
- const React = __importStar(require("react"));
38
- const lucide_react_1 = require("lucide-react");
39
- const utils_1 = require("../../../lib/utils");
40
- const button_1 = require("../../ui/button");
41
- const input_1 = require("../../ui/input");
42
- const popover_1 = require("../../ui/popover");
43
- const select_1 = require("../../ui/select");
44
- const filterUtils_1 = require("../utils/filterUtils");
45
- /**
46
- * Inline column-level filter builder. Opens from a "Filters" button in the
47
- * toolbar and lets the user add per-column filter rules.
48
- */
49
- function TableFilters({ columns, filters, onApply, }) {
50
- const [open, setOpen] = React.useState(false);
51
- const [draft, setDraft] = React.useState(filters);
52
- React.useEffect(() => {
53
- if (open)
54
- setDraft(filters);
55
- }, [open, filters]);
56
- const filterableColumns = columns.filter((c) => c.filterable !== false);
57
- const addFilter = () => {
58
- const first = filterableColumns[0];
59
- if (!first)
60
- return;
61
- const op = (0, filterUtils_1.defaultOperatorFor)(first.type);
62
- setDraft((prev) => [
63
- ...prev,
64
- { columnId: first.id, operator: op, value: "" },
65
- ]);
66
- };
67
- const updateAt = (index, patch) => {
68
- setDraft((prev) => prev.map((row, i) => (i === index ? Object.assign(Object.assign({}, row), patch) : row)));
69
- };
70
- const removeAt = (index) => {
71
- setDraft((prev) => prev.filter((_, i) => i !== index));
72
- };
73
- const handleApply = () => {
74
- onApply(draft);
75
- setOpen(false);
76
- };
77
- return (React.createElement(popover_1.Popover, { open: open, onOpenChange: setOpen },
78
- React.createElement(popover_1.PopoverTrigger, { asChild: true },
79
- React.createElement(button_1.Button, { variant: "outline", size: "sm", leftIcon: React.createElement(lucide_react_1.Filter, null), "aria-label": "Filters" },
80
- "Filters",
81
- filters.length > 0 && (React.createElement("span", { className: "ml-1 rounded-full bg-primary px-1.5 text-[10px] font-semibold text-primary-foreground" }, filters.length)))),
82
- React.createElement(popover_1.PopoverContent, { align: "end", className: "w-[min(420px,90vw)] p-0" },
83
- React.createElement("div", { className: "border-b border-border px-3 py-2 text-sm font-medium" }, "Filter rules"),
84
- React.createElement("div", { className: "max-h-[60vh] space-y-2 overflow-y-auto px-3 py-3" },
85
- draft.length === 0 && (React.createElement("p", { className: "text-xs text-muted-foreground" }, "No filters yet. Add one to narrow the results.")),
86
- draft.map((row, index) => {
87
- var _a, _b;
88
- const column = columns.find((c) => c.id === row.columnId);
89
- const type = (_a = column === null || column === void 0 ? void 0 : column.type) !== null && _a !== void 0 ? _a : "text";
90
- const operators = (_b = filterUtils_1.FILTER_OPERATORS_BY_TYPE[type]) !== null && _b !== void 0 ? _b : [];
91
- const needsValue = (0, filterUtils_1.operatorNeedsValue)(row.operator);
92
- return (React.createElement("div", { key: `${row.columnId}-${index}`, className: "flex flex-wrap items-center gap-2" },
93
- React.createElement(select_1.SelectRoot, { value: row.columnId, onValueChange: (value) => {
94
- var _a;
95
- const nextColumn = (_a = columns.find((c) => c.id === value)) !== null && _a !== void 0 ? _a : column;
96
- updateAt(index, {
97
- columnId: value,
98
- operator: (0, filterUtils_1.defaultOperatorFor)(nextColumn === null || nextColumn === void 0 ? void 0 : nextColumn.type),
99
- value: "",
100
- });
101
- } },
102
- React.createElement(select_1.SelectTrigger, { size: "sm", className: "w-32 text-xs" },
103
- React.createElement(select_1.SelectValue, null)),
104
- React.createElement(select_1.SelectContent, null, filterableColumns.map((c) => (React.createElement(select_1.SelectItem, { key: c.id, value: c.id }, c.header))))),
105
- React.createElement(select_1.SelectRoot, { value: row.operator, onValueChange: (value) => updateAt(index, {
106
- operator: value,
107
- }) },
108
- React.createElement(select_1.SelectTrigger, { size: "sm", className: "w-32 text-xs" },
109
- React.createElement(select_1.SelectValue, null)),
110
- React.createElement(select_1.SelectContent, null, operators.map((op) => (React.createElement(select_1.SelectItem, { key: op, value: op }, filterUtils_1.OPERATOR_LABELS[op]))))),
111
- needsValue && (React.createElement(input_1.Input, { size: "sm", className: "flex-1 min-w-[120px] text-xs", placeholder: "Value", value: typeof row.value === "string" ||
112
- typeof row.value === "number"
113
- ? String(row.value)
114
- : "", onChange: (event) => updateAt(index, { value: event.target.value }) })),
115
- React.createElement("button", { type: "button", "aria-label": "Remove filter", onClick: () => removeAt(index), className: (0, utils_1.cn)("rounded-md p-1 text-muted-foreground transition-colors", "hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring") },
116
- React.createElement(lucide_react_1.X, { className: "h-3.5 w-3.5" }))));
117
- })),
118
- React.createElement("div", { className: "flex items-center justify-between gap-2 border-t border-border px-3 py-2" },
119
- React.createElement(button_1.Button, { variant: "ghost", size: "sm", onClick: addFilter, disabled: filterableColumns.length === 0 }, "+ Add filter"),
120
- React.createElement("div", { className: "flex gap-2" },
121
- React.createElement(button_1.Button, { variant: "outline", size: "sm", onClick: () => {
122
- setDraft([]);
123
- onApply([]);
124
- setOpen(false);
125
- } }, "Clear"),
126
- React.createElement(button_1.Button, { size: "sm", onClick: handleApply }, "Apply"))))));
127
- }
@@ -1,15 +0,0 @@
1
- import * as React from "react";
2
- import type { ColumnDef } from "../TableProps";
3
- export interface UseColumnResizeOptions<T> {
4
- columns: ColumnDef<T>[];
5
- columnWidths: Record<string, number>;
6
- setColumnWidth: (id: string, width: number) => void;
7
- enabled: boolean;
8
- }
9
- export interface ColumnResizeAPI {
10
- handlePointerDown: (columnId: string, event: React.PointerEvent<HTMLDivElement>) => void;
11
- isResizing: boolean;
12
- resizingColumnId: string | null;
13
- getWidth: (columnId: string) => number | undefined;
14
- }
15
- export declare function useColumnResize<T>({ columns, columnWidths, setColumnWidth, enabled, }: UseColumnResizeOptions<T>): ColumnResizeAPI;