pixelize-design-library 2.3.1-beta.1 → 2.3.1-beta.2

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 (303) hide show
  1. package/package.json +1 -1
  2. package/dist/App.d.ts +0 -4
  3. package/dist/App.js +0 -131
  4. package/dist/Components/Table/CompactSelect.d.ts +0 -15
  5. package/dist/Components/Table/CompactSelect.js +0 -69
  6. package/dist/Components/Table/Components/ActiveFilters.d.ts +0 -9
  7. package/dist/Components/Table/Components/ActiveFilters.js +0 -132
  8. package/dist/Components/Table/Components/TableFilters.d.ts +0 -7
  9. package/dist/Components/Table/Components/TableFilters.js +0 -89
  10. package/dist/Components/Table/Components/useDebounce.d.ts +0 -2
  11. package/dist/Components/Table/Components/useDebounce.js +0 -28
  12. package/dist/Components/Table/Components/useTable.d.ts +0 -47
  13. package/dist/Components/Table/Components/useTable.js +0 -219
  14. package/dist/Components/Table/LeftFilterPane.d.ts +0 -36
  15. package/dist/Components/Table/LeftFilterPane.js +0 -273
  16. package/dist/Components/Table/SelectOperationControls.d.ts +0 -8
  17. package/dist/Components/Table/SelectOperationControls.js +0 -15
  18. package/dist/Components/Table/TableSettings/ManageColumns.d.ts +0 -12
  19. package/dist/Components/Table/TableSettings/ManageColumns.js +0 -166
  20. package/dist/Components/Table/TableSettings/ManageColumns.test.d.ts +0 -1
  21. package/dist/Components/Table/TableSettings/ManageColumns.test.js +0 -146
  22. package/dist/Components/Table/TableSettings/TableFilters.d.ts +0 -10
  23. package/dist/Components/Table/TableSettings/TableFilters.js +0 -69
  24. package/dist/Components/Table/TableSettings/TableFilters.test.d.ts +0 -1
  25. package/dist/Components/Table/TableSettings/TableFilters.test.js +0 -109
  26. package/dist/Components/Table/TableSettings/TableSettings.d.ts +0 -8
  27. package/dist/Components/Table/TableSettings/TableSettings.js +0 -141
  28. package/dist/Components/Table/TableToDo.d.ts +0 -2
  29. package/dist/Components/Table/TableToDo.js +0 -291
  30. package/dist/Components/Table/TextOperationControls.d.ts +0 -12
  31. package/dist/Components/Table/TextOperationControls.js +0 -29
  32. package/dist/Layout.d.ts +0 -3
  33. package/dist/Layout.js +0 -292
  34. package/dist/Pages/TInput.d.ts +0 -3
  35. package/dist/Pages/TInput.js +0 -56
  36. package/dist/Pages/accordion.d.ts +0 -3
  37. package/dist/Pages/accordion.js +0 -42
  38. package/dist/Pages/alertdialog.d.ts +0 -3
  39. package/dist/Pages/alertdialog.js +0 -54
  40. package/dist/Pages/button.d.ts +0 -3
  41. package/dist/Pages/button.js +0 -46
  42. package/dist/Pages/card.d.ts +0 -3
  43. package/dist/Pages/card.js +0 -117
  44. package/dist/Pages/chart.d.ts +0 -4
  45. package/dist/Pages/chart.js +0 -40
  46. package/dist/Pages/checkbox.d.ts +0 -3
  47. package/dist/Pages/checkbox.js +0 -12
  48. package/dist/Pages/contactForm.d.ts +0 -3
  49. package/dist/Pages/contactForm.js +0 -16
  50. package/dist/Pages/datePick.d.ts +0 -3
  51. package/dist/Pages/datePick.js +0 -88
  52. package/dist/Pages/drawer.d.ts +0 -3
  53. package/dist/Pages/drawer.js +0 -58
  54. package/dist/Pages/dropdown.d.ts +0 -3
  55. package/dist/Pages/dropdown.js +0 -24
  56. package/dist/Pages/editor.d.ts +0 -3
  57. package/dist/Pages/editor.js +0 -14
  58. package/dist/Pages/feedback.d.ts +0 -2
  59. package/dist/Pages/feedback.js +0 -15
  60. package/dist/Pages/fileUpload.d.ts +0 -2
  61. package/dist/Pages/fileUpload.js +0 -82
  62. package/dist/Pages/input.d.ts +0 -3
  63. package/dist/Pages/input.js +0 -92
  64. package/dist/Pages/kanbanboard.d.ts +0 -3
  65. package/dist/Pages/kanbanboard.js +0 -224
  66. package/dist/Pages/modal.d.ts +0 -3
  67. package/dist/Pages/modal.js +0 -65
  68. package/dist/Pages/multiSelect.d.ts +0 -3
  69. package/dist/Pages/multiSelect.js +0 -55
  70. package/dist/Pages/noteArea.d.ts +0 -3
  71. package/dist/Pages/noteArea.js +0 -59
  72. package/dist/Pages/notification.d.ts +0 -3
  73. package/dist/Pages/notification.js +0 -25
  74. package/dist/Pages/numberInput.d.ts +0 -3
  75. package/dist/Pages/numberInput.js +0 -49
  76. package/dist/Pages/photoViewer.d.ts +0 -3
  77. package/dist/Pages/photoViewer.js +0 -12
  78. package/dist/Pages/pinInputs.d.ts +0 -3
  79. package/dist/Pages/pinInputs.js +0 -12
  80. package/dist/Pages/productCaard.d.ts +0 -3
  81. package/dist/Pages/productCaard.js +0 -311
  82. package/dist/Pages/productDetailCard.d.ts +0 -3
  83. package/dist/Pages/productDetailCard.js +0 -78
  84. package/dist/Pages/productFilter.d.ts +0 -3
  85. package/dist/Pages/productFilter.js +0 -202
  86. package/dist/Pages/progressbar.d.ts +0 -3
  87. package/dist/Pages/progressbar.js +0 -12
  88. package/dist/Pages/radioButton.d.ts +0 -3
  89. package/dist/Pages/radioButton.js +0 -54
  90. package/dist/Pages/search.d.ts +0 -3
  91. package/dist/Pages/search.js +0 -54
  92. package/dist/Pages/searchSelect.d.ts +0 -3
  93. package/dist/Pages/searchSelect.js +0 -133
  94. package/dist/Pages/select.d.ts +0 -3
  95. package/dist/Pages/select.js +0 -53
  96. package/dist/Pages/selectSearch.d.ts +0 -3
  97. package/dist/Pages/selectSearch.js +0 -103
  98. package/dist/Pages/skeleton.d.ts +0 -3
  99. package/dist/Pages/skeleton.js +0 -22
  100. package/dist/Pages/switch.d.ts +0 -3
  101. package/dist/Pages/switch.js +0 -50
  102. package/dist/Pages/table.d.ts +0 -3
  103. package/dist/Pages/table.js +0 -174
  104. package/dist/Pages/textArea.d.ts +0 -3
  105. package/dist/Pages/textArea.js +0 -15
  106. package/dist/Pages/timeline.d.ts +0 -3
  107. package/dist/Pages/timeline.js +0 -74
  108. package/dist/Pages/tooltip.d.ts +0 -3
  109. package/dist/Pages/tooltip.js +0 -12
  110. package/dist/Pages/toster.d.ts +0 -3
  111. package/dist/Pages/toster.js +0 -68
  112. package/dist/Pages/verifyEmail.d.ts +0 -3
  113. package/dist/Pages/verifyEmail.js +0 -18
  114. package/dist/Theme/Dark/palette.d.ts +0 -370
  115. package/dist/Theme/Dark/palette.js +0 -372
  116. package/dist/bootstrap.d.ts +0 -1
  117. package/dist/bootstrap.js +0 -14
  118. package/dist/components-v2/AlertDialog/AlertDialog.d.ts +0 -23
  119. package/dist/components-v2/AlertDialog/AlertDialog.js +0 -98
  120. package/dist/components-v2/Breadcrumbs/Breadcrumbs.d.ts +0 -14
  121. package/dist/components-v2/Breadcrumbs/Breadcrumbs.js +0 -66
  122. package/dist/components-v2/Charts/AreaChart.d.ts +0 -23
  123. package/dist/components-v2/Charts/AreaChart.js +0 -63
  124. package/dist/components-v2/Charts/BarChart.d.ts +0 -25
  125. package/dist/components-v2/Charts/BarChart.js +0 -57
  126. package/dist/components-v2/Charts/LineChart.d.ts +0 -23
  127. package/dist/components-v2/Charts/LineChart.js +0 -55
  128. package/dist/components-v2/Charts/PieChart.d.ts +0 -15
  129. package/dist/components-v2/Charts/PieChart.js +0 -54
  130. package/dist/components-v2/Charts/PolarChart.d.ts +0 -14
  131. package/dist/components-v2/Charts/PolarChart.js +0 -54
  132. package/dist/components-v2/Charts/chartOptions.d.ts +0 -7
  133. package/dist/components-v2/Charts/chartOptions.js +0 -41
  134. package/dist/components-v2/Charts/useChartTheme.d.ts +0 -22
  135. package/dist/components-v2/Charts/useChartTheme.js +0 -106
  136. package/dist/components-v2/ContactForm/ContactForm.d.ts +0 -25
  137. package/dist/components-v2/ContactForm/ContactForm.js +0 -116
  138. package/dist/components-v2/DatePicker/Calendar.d.ts +0 -19
  139. package/dist/components-v2/DatePicker/Calendar.js +0 -212
  140. package/dist/components-v2/DatePicker/DatePicker.d.ts +0 -46
  141. package/dist/components-v2/DatePicker/DatePicker.js +0 -189
  142. package/dist/components-v2/DatePicker/TimePicker.d.ts +0 -12
  143. package/dist/components-v2/DatePicker/TimePicker.js +0 -105
  144. package/dist/components-v2/DatePicker/utils.d.ts +0 -31
  145. package/dist/components-v2/DatePicker/utils.js +0 -109
  146. package/dist/components-v2/Drawer/Drawer.d.ts +0 -27
  147. package/dist/components-v2/Drawer/Drawer.js +0 -132
  148. package/dist/components-v2/FeedbackForm/FeedbackForm.d.ts +0 -26
  149. package/dist/components-v2/FeedbackForm/FeedbackForm.js +0 -112
  150. package/dist/components-v2/FileUploader/FileUploader.d.ts +0 -28
  151. package/dist/components-v2/FileUploader/FileUploader.js +0 -127
  152. package/dist/components-v2/Input/TextInput.d.ts +0 -41
  153. package/dist/components-v2/Input/TextInput.js +0 -169
  154. package/dist/components-v2/KanbanBoard/KanbanBoard.d.ts +0 -39
  155. package/dist/components-v2/KanbanBoard/KanbanBoard.js +0 -101
  156. package/dist/components-v2/Layout/AppLayout.d.ts +0 -22
  157. package/dist/components-v2/Layout/AppLayout.js +0 -53
  158. package/dist/components-v2/Loading/Loading.d.ts +0 -19
  159. package/dist/components-v2/Loading/Loading.js +0 -55
  160. package/dist/components-v2/Modal/Modal.d.ts +0 -30
  161. package/dist/components-v2/Modal/Modal.js +0 -82
  162. package/dist/components-v2/NavigationBar/NavigationBar.d.ts +0 -47
  163. package/dist/components-v2/NavigationBar/NavigationBar.js +0 -148
  164. package/dist/components-v2/Notification/Notification.d.ts +0 -22
  165. package/dist/components-v2/Notification/Notification.js +0 -113
  166. package/dist/components-v2/NumberInput/NumberInput.d.ts +0 -37
  167. package/dist/components-v2/NumberInput/NumberInput.js +0 -210
  168. package/dist/components-v2/PinInput/PinInput.d.ts +0 -26
  169. package/dist/components-v2/PinInput/PinInput.js +0 -138
  170. package/dist/components-v2/ProfilePhotoViewer/ProfilePhotoViewer.d.ts +0 -18
  171. package/dist/components-v2/ProfilePhotoViewer/ProfilePhotoViewer.js +0 -91
  172. package/dist/components-v2/Select/Select.d.ts +0 -41
  173. package/dist/components-v2/Select/Select.js +0 -284
  174. package/dist/components-v2/Sidebar/Sidebar.d.ts +0 -41
  175. package/dist/components-v2/Sidebar/Sidebar.js +0 -182
  176. package/dist/components-v2/Slider/Slider.d.ts +0 -18
  177. package/dist/components-v2/Slider/Slider.js +0 -101
  178. package/dist/components-v2/Table/Table.d.ts +0 -7
  179. package/dist/components-v2/Table/Table.js +0 -172
  180. package/dist/components-v2/Table/TableProps.d.ts +0 -139
  181. package/dist/components-v2/Table/TableProps.js +0 -9
  182. package/dist/components-v2/Table/components/ActiveFilters.d.ts +0 -10
  183. package/dist/components-v2/Table/components/ActiveFilters.js +0 -70
  184. package/dist/components-v2/Table/components/BulkActionBar.d.ts +0 -11
  185. package/dist/components-v2/Table/components/BulkActionBar.js +0 -92
  186. package/dist/components-v2/Table/components/ColumnResizeHandle.d.ts +0 -7
  187. package/dist/components-v2/Table/components/ColumnResizeHandle.js +0 -41
  188. package/dist/components-v2/Table/components/Pagination.d.ts +0 -11
  189. package/dist/components-v2/Table/components/Pagination.js +0 -92
  190. package/dist/components-v2/Table/components/TableBody.d.ts +0 -23
  191. package/dist/components-v2/Table/components/TableBody.js +0 -69
  192. package/dist/components-v2/Table/components/TableCell.d.ts +0 -14
  193. package/dist/components-v2/Table/components/TableCell.js +0 -63
  194. package/dist/components-v2/Table/components/TableEmptyState.d.ts +0 -12
  195. package/dist/components-v2/Table/components/TableEmptyState.js +0 -55
  196. package/dist/components-v2/Table/components/TableErrorState.d.ts +0 -6
  197. package/dist/components-v2/Table/components/TableErrorState.js +0 -52
  198. package/dist/components-v2/Table/components/TableHeader.d.ts +0 -21
  199. package/dist/components-v2/Table/components/TableHeader.js +0 -94
  200. package/dist/components-v2/Table/components/TableRow.d.ts +0 -20
  201. package/dist/components-v2/Table/components/TableRow.js +0 -64
  202. package/dist/components-v2/Table/components/TableSearch.d.ts +0 -8
  203. package/dist/components-v2/Table/components/TableSearch.js +0 -47
  204. package/dist/components-v2/Table/filters/FilterChips.d.ts +0 -6
  205. package/dist/components-v2/Table/filters/FilterChips.js +0 -9
  206. package/dist/components-v2/Table/filters/LeftFilterPane.d.ts +0 -17
  207. package/dist/components-v2/Table/filters/LeftFilterPane.js +0 -105
  208. package/dist/components-v2/Table/filters/TableFilters.d.ts +0 -12
  209. package/dist/components-v2/Table/filters/TableFilters.js +0 -127
  210. package/dist/components-v2/Table/hooks/useColumnResize.d.ts +0 -15
  211. package/dist/components-v2/Table/hooks/useColumnResize.js +0 -104
  212. package/dist/components-v2/Table/hooks/useTable.d.ts +0 -58
  213. package/dist/components-v2/Table/hooks/useTable.js +0 -254
  214. package/dist/components-v2/Table/hooks/useTableKeyboard.d.ts +0 -25
  215. package/dist/components-v2/Table/hooks/useTableKeyboard.js +0 -112
  216. package/dist/components-v2/Table/hooks/useVirtualScroll.d.ts +0 -29
  217. package/dist/components-v2/Table/hooks/useVirtualScroll.js +0 -83
  218. package/dist/components-v2/Table/settings/ManageColumns.d.ts +0 -12
  219. package/dist/components-v2/Table/settings/ManageColumns.js +0 -59
  220. package/dist/components-v2/Table/settings/TableSettings.d.ts +0 -12
  221. package/dist/components-v2/Table/settings/TableSettings.js +0 -57
  222. package/dist/components-v2/Table/utils/filterUtils.d.ts +0 -7
  223. package/dist/components-v2/Table/utils/filterUtils.js +0 -149
  224. package/dist/components-v2/Table/utils/sortUtils.d.ts +0 -6
  225. package/dist/components-v2/Table/utils/sortUtils.js +0 -65
  226. package/dist/components-v2/Tag/Tag.d.ts +0 -15
  227. package/dist/components-v2/Tag/Tag.js +0 -87
  228. package/dist/components-v2/Timeline/Timeline.d.ts +0 -18
  229. package/dist/components-v2/Timeline/Timeline.js +0 -76
  230. package/dist/components-v2/Toaster/Toaster.d.ts +0 -61
  231. package/dist/components-v2/Toaster/Toaster.js +0 -63
  232. package/dist/components-v2/Toggle/Toggle.d.ts +0 -28
  233. package/dist/components-v2/Toggle/Toggle.js +0 -90
  234. package/dist/components-v2/ui/accordion.d.ts +0 -12
  235. package/dist/components-v2/ui/accordion.js +0 -104
  236. package/dist/components-v2/ui/alert.d.ts +0 -18
  237. package/dist/components-v2/ui/alert.js +0 -99
  238. package/dist/components-v2/ui/avatar.d.ts +0 -12
  239. package/dist/components-v2/ui/avatar.js +0 -80
  240. package/dist/components-v2/ui/badge.d.ts +0 -10
  241. package/dist/components-v2/ui/badge.js +0 -76
  242. package/dist/components-v2/ui/button.d.ts +0 -18
  243. package/dist/components-v2/ui/button.js +0 -97
  244. package/dist/components-v2/ui/checkbox.d.ts +0 -15
  245. package/dist/components-v2/ui/checkbox.js +0 -86
  246. package/dist/components-v2/ui/dialog.d.ts +0 -30
  247. package/dist/components-v2/ui/dialog.js +0 -115
  248. package/dist/components-v2/ui/dropdown-menu.d.ts +0 -26
  249. package/dist/components-v2/ui/dropdown-menu.js +0 -121
  250. package/dist/components-v2/ui/field.d.ts +0 -32
  251. package/dist/components-v2/ui/field.js +0 -62
  252. package/dist/components-v2/ui/form-field.d.ts +0 -25
  253. package/dist/components-v2/ui/form-field.js +0 -96
  254. package/dist/components-v2/ui/input.d.ts +0 -9
  255. package/dist/components-v2/ui/input.js +0 -73
  256. package/dist/components-v2/ui/label.d.ts +0 -10
  257. package/dist/components-v2/ui/label.js +0 -70
  258. package/dist/components-v2/ui/popover.d.ts +0 -9
  259. package/dist/components-v2/ui/popover.js +0 -60
  260. package/dist/components-v2/ui/progress.d.ts +0 -12
  261. package/dist/components-v2/ui/progress.js +0 -75
  262. package/dist/components-v2/ui/radio-group.d.ts +0 -17
  263. package/dist/components-v2/ui/radio-group.js +0 -91
  264. package/dist/components-v2/ui/select.d.ts +0 -24
  265. package/dist/components-v2/ui/select.js +0 -122
  266. package/dist/components-v2/ui/separator.d.ts +0 -5
  267. package/dist/components-v2/ui/separator.js +0 -55
  268. package/dist/components-v2/ui/skeleton.d.ts +0 -9
  269. package/dist/components-v2/ui/skeleton.js +0 -68
  270. package/dist/components-v2/ui/spinner.d.ts +0 -16
  271. package/dist/components-v2/ui/spinner.js +0 -64
  272. package/dist/components-v2/ui/switch.d.ts +0 -10
  273. package/dist/components-v2/ui/switch.js +0 -81
  274. package/dist/components-v2/ui/tabs.d.ts +0 -13
  275. package/dist/components-v2/ui/tabs.js +0 -95
  276. package/dist/components-v2/ui/textarea.d.ts +0 -10
  277. package/dist/components-v2/ui/textarea.js +0 -96
  278. package/dist/components-v2/ui/tooltip.d.ts +0 -17
  279. package/dist/components-v2/ui/tooltip.js +0 -75
  280. package/dist/lib/utils.d.ts +0 -2
  281. package/dist/lib/utils.js +0 -8
  282. package/dist/theme-v2/ThemeProvider.d.ts +0 -19
  283. package/dist/theme-v2/ThemeProvider.js +0 -149
  284. package/dist/theme-v2/dark.css +0 -47
  285. package/dist/theme-v2/tokens.css +0 -72
  286. /package/dist/Components/Table/{Components → components}/HeaderActions.d.ts +0 -0
  287. /package/dist/Components/Table/{Components → components}/HeaderActions.js +0 -0
  288. /package/dist/Components/Table/{Components → components}/Pagination.d.ts +0 -0
  289. /package/dist/Components/Table/{Components → components}/Pagination.js +0 -0
  290. /package/dist/Components/Table/{Components → components}/TableActions.d.ts +0 -0
  291. /package/dist/Components/Table/{Components → components}/TableActions.js +0 -0
  292. /package/dist/Components/Table/{Components → components}/TableBody.d.ts +0 -0
  293. /package/dist/Components/Table/{Components → components}/TableBody.js +0 -0
  294. /package/dist/Components/Table/{Components → components}/TableBody.virtualize.test.d.ts +0 -0
  295. /package/dist/Components/Table/{Components → components}/TableBody.virtualize.test.js +0 -0
  296. /package/dist/Components/Table/{Components → components}/TableGroupRow.d.ts +0 -0
  297. /package/dist/Components/Table/{Components → components}/TableGroupRow.js +0 -0
  298. /package/dist/Components/Table/{Components → components}/TableHeader.d.ts +0 -0
  299. /package/dist/Components/Table/{Components → components}/TableHeader.js +0 -0
  300. /package/dist/Components/Table/{Components → components}/TableLoading.d.ts +0 -0
  301. /package/dist/Components/Table/{Components → components}/TableLoading.js +0 -0
  302. /package/dist/Components/Table/{Components → components}/TableSearch.d.ts +0 -0
  303. /package/dist/Components/Table/{Components → components}/TableSearch.js +0 -0
@@ -1,182 +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.Sidebar = Sidebar;
37
- const React = __importStar(require("react"));
38
- const framer_motion_1 = require("framer-motion");
39
- const lucide_react_1 = require("lucide-react");
40
- const utils_1 = require("../../lib/utils");
41
- const badge_1 = require("../ui/badge");
42
- const popover_1 = require("../ui/popover");
43
- const skeleton_1 = require("../ui/skeleton");
44
- const EXPANDED_WIDTH = 240;
45
- const COLLAPSED_WIDTH = 64;
46
- function Sidebar({ menus, activeItem, onItemClick, logo, companyName, collapsed: collapsedProp, onCollapsedChange, defaultCollapsed = false, mobileOpen = false, onMobileOpenChange, otherApps, footer, isLoading = false, className, }) {
47
- const isCollapsedControlled = collapsedProp !== undefined;
48
- const [internalCollapsed, setInternalCollapsed] = React.useState(defaultCollapsed);
49
- const collapsed = isCollapsedControlled ? collapsedProp : internalCollapsed;
50
- const toggleCollapsed = () => {
51
- const next = !collapsed;
52
- if (!isCollapsedControlled)
53
- setInternalCollapsed(next);
54
- onCollapsedChange === null || onCollapsedChange === void 0 ? void 0 : onCollapsedChange(next);
55
- };
56
- return (React.createElement(React.Fragment, null,
57
- React.createElement(framer_motion_1.motion.aside, { "aria-label": "Main navigation", animate: { width: collapsed ? COLLAPSED_WIDTH : EXPANDED_WIDTH }, initial: false, transition: { duration: 0.2, ease: "easeInOut" }, className: (0, utils_1.cn)("sticky top-0 hidden h-screen shrink-0 flex-col border-r border-border bg-card text-card-foreground md:flex", className) },
58
- React.createElement(SidebarBody, { menus: menus, activeItem: activeItem, onItemClick: onItemClick, logo: logo, companyName: companyName, collapsed: collapsed, onToggleCollapsed: toggleCollapsed, otherApps: otherApps, footer: footer, isLoading: isLoading })),
59
- React.createElement(framer_motion_1.AnimatePresence, null, mobileOpen && (React.createElement(React.Fragment, null,
60
- React.createElement(framer_motion_1.motion.div, { key: "sidebar-backdrop", initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.15 }, onClick: () => onMobileOpenChange === null || onMobileOpenChange === void 0 ? void 0 : onMobileOpenChange(false), className: "fixed inset-0 z-40 bg-foreground/40 backdrop-blur-sm md:hidden", "aria-hidden": "true" }),
61
- React.createElement(framer_motion_1.motion.aside, { key: "sidebar-drawer", initial: { x: "-100%" }, animate: { x: 0 }, exit: { x: "-100%" }, transition: { duration: 0.2, ease: "easeInOut" }, className: (0, utils_1.cn)("fixed inset-y-0 left-0 z-50 flex w-60 flex-col border-r border-border bg-card text-card-foreground md:hidden", className), "aria-label": "Main navigation" },
62
- React.createElement(SidebarBody, { menus: menus, activeItem: activeItem, onItemClick: (item) => {
63
- onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item);
64
- onMobileOpenChange === null || onMobileOpenChange === void 0 ? void 0 : onMobileOpenChange(false);
65
- }, logo: logo, companyName: companyName, collapsed: false, onToggleCollapsed: () => onMobileOpenChange === null || onMobileOpenChange === void 0 ? void 0 : onMobileOpenChange(false), otherApps: otherApps, footer: footer, isLoading: isLoading, isMobileDrawer: true })))))));
66
- }
67
- function SidebarBody({ menus, activeItem, onItemClick, logo, companyName, collapsed, onToggleCollapsed, otherApps, footer, isLoading, isMobileDrawer = false, }) {
68
- var _a, _b;
69
- return (React.createElement("nav", { className: "flex h-full min-h-0 flex-col", "aria-label": "Sidebar" },
70
- React.createElement("div", { className: (0, utils_1.cn)("flex h-14 shrink-0 items-center gap-2 border-b border-border px-3", collapsed && "justify-center px-2") },
71
- logo ? (React.createElement("img", { src: logo, alt: "", className: "h-7 w-7 shrink-0 rounded-md object-contain" })) : (React.createElement("div", { className: "grid h-7 w-7 shrink-0 place-items-center rounded-md bg-primary text-xs font-semibold text-primary-foreground" }, (_b = (_a = companyName === null || companyName === void 0 ? void 0 : companyName[0]) === null || _a === void 0 ? void 0 : _a.toUpperCase()) !== null && _b !== void 0 ? _b : "P")),
72
- !collapsed && companyName && (React.createElement("span", { className: "truncate text-sm font-semibold text-foreground" }, companyName))),
73
- React.createElement("ul", { className: "flex-1 overflow-y-auto px-2 py-3", role: "list" }, isLoading
74
- ? Array.from({ length: 5 }).map((_, index) => (React.createElement("li", { key: `skeleton-${index}`, className: "mb-1" },
75
- React.createElement("div", { className: (0, utils_1.cn)("flex items-center gap-2 px-2 py-1.5", collapsed && "justify-center") },
76
- React.createElement(skeleton_1.Skeleton, { variant: "rectangle", className: "h-5 w-5 rounded" }),
77
- !collapsed && (React.createElement(skeleton_1.Skeleton, { variant: "text", className: "h-3 w-24" }))))))
78
- : menus.map((item) => (React.createElement(SidebarMenuRow, { key: item.id, item: item, activeItem: activeItem, collapsed: collapsed, onItemClick: onItemClick })))),
79
- otherApps && otherApps.length > 0 && (React.createElement("div", { className: "shrink-0 border-t border-border px-2 py-2" }, collapsed ? (React.createElement(popover_1.Popover, null,
80
- React.createElement(popover_1.PopoverTrigger, { asChild: true },
81
- React.createElement("button", { type: "button", "aria-label": "Other apps", className: "flex h-9 w-full items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" },
82
- React.createElement(lucide_react_1.Grid3x3, { "aria-hidden": "true", className: "h-4 w-4" }))),
83
- React.createElement(popover_1.PopoverContent, { side: "right", align: "end", className: "w-56 p-1" },
84
- React.createElement(OtherAppsList, { apps: otherApps })))) : (React.createElement(React.Fragment, null,
85
- React.createElement("p", { className: "px-2 pb-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground" }, "Other apps"),
86
- React.createElement(OtherAppsList, { apps: otherApps }))))),
87
- footer && (React.createElement("div", { className: "shrink-0 border-t border-border px-2 py-2" }, footer)),
88
- React.createElement("div", { className: "shrink-0 border-t border-border px-2 py-2" },
89
- React.createElement("button", { type: "button", onClick: onToggleCollapsed, "aria-label": isMobileDrawer
90
- ? "Close sidebar"
91
- : collapsed
92
- ? "Expand sidebar"
93
- : "Collapse sidebar", "aria-expanded": !collapsed, className: "flex h-8 w-full items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" },
94
- React.createElement(lucide_react_1.ChevronLeft, { "aria-hidden": "true", className: (0, utils_1.cn)("h-4 w-4 transition-transform motion-safe:duration-200", collapsed && "rotate-180") })))));
95
- }
96
- function SidebarMenuRow({ item, activeItem, collapsed, onItemClick, nested = false, }) {
97
- var _a;
98
- const hasChildren = !!item.children && item.children.length > 0;
99
- const isActive = activeItem === item.id;
100
- const childActive = hasChildren &&
101
- item.children.some((child) => child.id === activeItem);
102
- const [expanded, setExpanded] = React.useState(childActive);
103
- React.useEffect(() => {
104
- if (childActive)
105
- setExpanded(true);
106
- }, [childActive]);
107
- const [hoverOpen, setHoverOpen] = React.useState(false);
108
- const closeTimer = React.useRef(null);
109
- const scheduleClose = () => {
110
- if (closeTimer.current)
111
- window.clearTimeout(closeTimer.current);
112
- closeTimer.current = window.setTimeout(() => setHoverOpen(false), 120);
113
- };
114
- const cancelClose = () => {
115
- if (closeTimer.current)
116
- window.clearTimeout(closeTimer.current);
117
- setHoverOpen(true);
118
- };
119
- const handleClick = (event) => {
120
- if (item.disabled)
121
- return;
122
- event.preventDefault();
123
- if (hasChildren && !collapsed) {
124
- setExpanded((prev) => !prev);
125
- return;
126
- }
127
- onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item);
128
- };
129
- const IconComponent = item.icon;
130
- const trigger = (React.createElement("button", { type: "button", disabled: item.disabled, "aria-current": isActive ? "page" : undefined, "aria-disabled": item.disabled || undefined, "aria-haspopup": hasChildren ? "menu" : undefined, "aria-expanded": hasChildren ? expanded || hoverOpen : undefined, "aria-label": collapsed ? item.title : undefined, onClick: handleClick, onMouseEnter: collapsed && hasChildren ? cancelClose : undefined, onMouseLeave: collapsed && hasChildren ? scheduleClose : undefined, className: (0, utils_1.cn)("group relative flex w-full items-center gap-2.5 rounded-md px-2 py-1.5 text-sm transition-colors", "text-muted-foreground hover:bg-accent hover:text-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "disabled:cursor-not-allowed disabled:opacity-50", isActive && "bg-primary/10 text-primary hover:bg-primary/15", collapsed && "justify-center px-2", nested && "py-1 text-xs") },
131
- isActive && (React.createElement("span", { "aria-hidden": "true", className: "absolute left-0 top-1/2 h-5 w-0.5 -translate-y-1/2 rounded-r bg-primary" })),
132
- IconComponent ? (React.createElement(IconComponent, { "aria-hidden": "true", className: (0, utils_1.cn)("h-4 w-4 shrink-0", isActive && "text-primary") })) : (React.createElement("span", { "aria-hidden": "true", className: "h-4 w-4 shrink-0 rounded-sm bg-muted" })),
133
- !collapsed && (React.createElement(React.Fragment, null,
134
- React.createElement("span", { className: "flex-1 truncate text-left" }, item.title),
135
- item.badge && (React.createElement(badge_1.Badge, { variant: badgeVariant(item.badge.variant), size: "sm", className: "px-1.5 py-0 text-[10px]" }, (_a = item.badge.label) !== null && _a !== void 0 ? _a : item.badge.count)),
136
- hasChildren && (React.createElement(lucide_react_1.ChevronDown, { "aria-hidden": "true", className: (0, utils_1.cn)("h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform motion-safe:duration-200", expanded && "rotate-180") })))),
137
- collapsed && item.badge && (React.createElement("span", { "aria-hidden": "true", className: (0, utils_1.cn)("absolute right-1 top-1 h-1.5 w-1.5 rounded-full", badgeDot(item.badge.variant)) }))));
138
- if (collapsed && hasChildren) {
139
- return (React.createElement("li", null,
140
- React.createElement(popover_1.Popover, { open: hoverOpen, onOpenChange: setHoverOpen },
141
- React.createElement(popover_1.PopoverTrigger, { asChild: true }, trigger),
142
- React.createElement(popover_1.PopoverContent, { side: "right", align: "start", sideOffset: 8, onMouseEnter: cancelClose, onMouseLeave: scheduleClose, className: "w-56 p-1" },
143
- React.createElement("div", { className: "px-2 py-1 text-xs font-semibold text-muted-foreground" }, item.title),
144
- React.createElement("ul", { role: "list" }, item.children.map((child) => (React.createElement(SidebarMenuRow, { key: child.id, item: child, activeItem: activeItem, collapsed: false, onItemClick: (value) => {
145
- setHoverOpen(false);
146
- onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(value);
147
- }, nested: true }))))))));
148
- }
149
- return (React.createElement("li", null,
150
- trigger,
151
- hasChildren && !collapsed && (React.createElement(framer_motion_1.AnimatePresence, { initial: false }, expanded && (React.createElement(framer_motion_1.motion.ul, { key: "submenu", initial: { height: 0, opacity: 0 }, animate: { height: "auto", opacity: 1 }, exit: { height: 0, opacity: 0 }, transition: { duration: 0.18, ease: "easeInOut" }, className: "ml-5 mt-0.5 overflow-hidden border-l border-border pl-2", role: "list" }, item.children.map((child) => (React.createElement(SidebarMenuRow, { key: child.id, item: child, activeItem: activeItem, collapsed: false, onItemClick: onItemClick, nested: true })))))))));
152
- }
153
- function OtherAppsList({ apps }) {
154
- return (React.createElement("ul", { role: "list" }, apps.map((app) => (React.createElement("li", { key: app.id },
155
- React.createElement("a", { href: app.url, className: "flex items-center gap-2 rounded-md px-2 py-1.5 text-sm text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" },
156
- app.iconUrl ? (React.createElement("img", { src: app.iconUrl, alt: "", className: "h-4 w-4 rounded-sm object-contain" })) : app.icon ? (React.createElement(app.icon, { "aria-hidden": "true", className: "h-4 w-4" })) : (React.createElement(lucide_react_1.Grid3x3, { "aria-hidden": "true", className: "h-4 w-4" })),
157
- React.createElement("span", { className: "truncate" }, app.name)))))));
158
- }
159
- function badgeVariant(variant) {
160
- switch (variant) {
161
- case "destructive":
162
- return "destructive";
163
- case "success":
164
- return "success";
165
- case "warning":
166
- return "warning";
167
- default:
168
- return "default";
169
- }
170
- }
171
- function badgeDot(variant) {
172
- switch (variant) {
173
- case "destructive":
174
- return "bg-destructive";
175
- case "success":
176
- return "bg-success";
177
- case "warning":
178
- return "bg-warning";
179
- default:
180
- return "bg-primary";
181
- }
182
- }
@@ -1,18 +0,0 @@
1
- import * as React from "react";
2
- import * as SliderPrimitive from "@radix-ui/react-slider";
3
- export interface SliderMark {
4
- value: number;
5
- label?: React.ReactNode;
6
- }
7
- export interface SliderProps extends Omit<React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>, "value" | "defaultValue" | "onValueChange"> {
8
- /** Single value or pair for range mode. */
9
- value?: number | number[];
10
- defaultValue?: number | number[];
11
- onValueChange?: (value: number | number[]) => void;
12
- /** Show tooltip with current value on the thumb. */
13
- showTooltip?: boolean;
14
- /** Marks rendered along the track. */
15
- marks?: SliderMark[];
16
- formatValue?: (value: number) => string;
17
- }
18
- export declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLSpanElement>>;
@@ -1,101 +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
- var __rest = (this && this.__rest) || function (s, e) {
36
- var t = {};
37
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
38
- t[p] = s[p];
39
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
40
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
41
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
42
- t[p[i]] = s[p[i]];
43
- }
44
- return t;
45
- };
46
- Object.defineProperty(exports, "__esModule", { value: true });
47
- exports.Slider = void 0;
48
- const React = __importStar(require("react"));
49
- const SliderPrimitive = __importStar(require("@radix-ui/react-slider"));
50
- const utils_1 = require("../../lib/utils");
51
- const tooltip_1 = require("../ui/tooltip");
52
- exports.Slider = React.forwardRef((_a, ref) => {
53
- var { className, value, defaultValue, onValueChange, showTooltip = false, marks, formatValue = String, min = 0, max = 100, step = 1 } = _a, rest = __rest(_a, ["className", "value", "defaultValue", "onValueChange", "showTooltip", "marks", "formatValue", "min", "max", "step"]);
54
- const isRange = Array.isArray(value)
55
- ? value.length > 1
56
- : Array.isArray(defaultValue)
57
- ? defaultValue.length > 1
58
- : false;
59
- const internalValue = React.useMemo(() => {
60
- var _a;
61
- const source = (_a = value !== null && value !== void 0 ? value : defaultValue) !== null && _a !== void 0 ? _a : (isRange ? [min, max] : [min]);
62
- return Array.isArray(source) ? source : [source];
63
- }, [value, defaultValue, isRange, min, max]);
64
- const [trackedValue, setTrackedValue] = React.useState(internalValue);
65
- const displayValue = value !== undefined
66
- ? Array.isArray(value)
67
- ? value
68
- : [value]
69
- : trackedValue;
70
- return (React.createElement("div", { className: (0, utils_1.cn)("w-full select-none", className) },
71
- React.createElement(SliderPrimitive.Root, Object.assign({ ref: ref, value: displayValue, defaultValue: defaultValue !== undefined
72
- ? Array.isArray(defaultValue)
73
- ? defaultValue
74
- : [defaultValue]
75
- : undefined, onValueChange: (next) => {
76
- setTrackedValue(next);
77
- onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(isRange ? next : next[0]);
78
- }, min: min, max: max, step: step, className: "relative flex h-5 w-full touch-none items-center" }, rest),
79
- React.createElement(SliderPrimitive.Track, { className: "relative h-1 w-full grow overflow-hidden rounded-full bg-muted" },
80
- React.createElement(SliderPrimitive.Range, { className: "absolute h-full bg-primary" })),
81
- displayValue.map((thumbValue, index) => {
82
- const thumb = (React.createElement(SliderPrimitive.Thumb, { key: index, "aria-label": isRange
83
- ? index === 0
84
- ? "Minimum value"
85
- : "Maximum value"
86
- : "Value", className: (0, utils_1.cn)("block h-4 w-4 rounded-full border-2 border-primary bg-background shadow-sm transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background", "disabled:pointer-events-none disabled:opacity-50") }));
87
- if (!showTooltip)
88
- return thumb;
89
- return (React.createElement(tooltip_1.Tooltip, { key: index, open: true },
90
- React.createElement(tooltip_1.TooltipTrigger, { asChild: true }, thumb),
91
- React.createElement(tooltip_1.TooltipContent, { side: "top", sideOffset: 6 }, formatValue(thumbValue))));
92
- })),
93
- marks && marks.length > 0 && (React.createElement("div", { "aria-hidden": "true", className: "relative mt-1.5 h-4 text-[10px] text-muted-foreground" }, marks.map((mark) => {
94
- var _a;
95
- const ratio = (mark.value - min) / (max - min);
96
- return (React.createElement("span", { key: mark.value, style: {
97
- left: `${Math.min(Math.max(ratio, 0), 1) * 100}%`,
98
- }, className: "absolute -translate-x-1/2" }, (_a = mark.label) !== null && _a !== void 0 ? _a : mark.value));
99
- })))));
100
- });
101
- exports.Slider.displayName = "Slider";
@@ -1,7 +0,0 @@
1
- import * as React from "react";
2
- import { type ColumnDef, type TableProps } from "./TableProps";
3
- export declare function Table<T>(props: TableProps<T>): React.ReactElement;
4
- export declare namespace Table {
5
- var displayName: string;
6
- }
7
- export type { ColumnDef, TableProps };
@@ -1,172 +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.Table = Table;
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 dropdown_menu_1 = require("../ui/dropdown-menu");
42
- const ActiveFilters_1 = require("./components/ActiveFilters");
43
- const BulkActionBar_1 = require("./components/BulkActionBar");
44
- const Pagination_1 = require("./components/Pagination");
45
- const TableBody_1 = require("./components/TableBody");
46
- const TableEmptyState_1 = require("./components/TableEmptyState");
47
- const TableErrorState_1 = require("./components/TableErrorState");
48
- const TableHeader_1 = require("./components/TableHeader");
49
- const TableSearch_1 = require("./components/TableSearch");
50
- const LeftFilterPane_1 = require("./filters/LeftFilterPane");
51
- const TableFilters_1 = require("./filters/TableFilters");
52
- const useColumnResize_1 = require("./hooks/useColumnResize");
53
- const useTable_1 = require("./hooks/useTable");
54
- const useTableKeyboard_1 = require("./hooks/useTableKeyboard");
55
- const useVirtualScroll_1 = require("./hooks/useVirtualScroll");
56
- const ManageColumns_1 = require("./settings/ManageColumns");
57
- const TableSettings_1 = require("./settings/TableSettings");
58
- const TableProps_1 = require("./TableProps");
59
- const sortUtils_1 = require("./utils/sortUtils");
60
- const DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100];
61
- function Table(props) {
62
- const { data, columns, rowKey, selectable = false, selectedRows, onSelectionChange, selectionMode = "multi", onRowClick, rowClassName, sortable = true, defaultSort, onSortChange, filterable = true, defaultFilters, onFilterChange, searchable = true, searchPlaceholder, onSearchChange, isServerSearch = false, pagination = true, paginationMode = "client", defaultPageSize = 50, pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS, totalCount, onPageChange, isLoading = false, loadingRowCount = 5, error = null, onRetry, emptyState, emptyTitle, emptyDescription, emptyAction, density: densityProp = "default", maxHeight, virtualScroll, rowHeight, virtualScrollThreshold = 500, defaultHiddenColumns = [], showColumnToggle = true, columnResizable = true, stickyHeader = true, noBorders = false, bulkActions = [], filterSidebar, filterMode = "inline", preferences, headerActions, exportOptions, className, style, } = props;
63
- const tableState = (0, useTable_1.useTable)({
64
- data,
65
- columns,
66
- rowKey,
67
- selectable,
68
- selectionMode,
69
- selectedRows,
70
- onSelectionChange,
71
- sortable,
72
- defaultSort,
73
- onSortChange,
74
- filterable,
75
- defaultFilters,
76
- onFilterChange,
77
- searchable,
78
- onSearchChange,
79
- isServerSearch,
80
- pagination,
81
- paginationMode,
82
- defaultPageSize,
83
- totalCount,
84
- onPageChange,
85
- defaultHiddenColumns,
86
- density: densityProp,
87
- preferences,
88
- });
89
- const { pageData, processed, pageCount, visibleColumns, columnVisibility, setColumnHidden, columnWidths, setColumnWidth, density, setDensity, sort, setSort, filters, setFilters, searchQuery, setSearchQuery, selection, toggleRow, toggleAll, clearSelection, isAllSelected, isSomeSelected, pageIndex, pageSize, setPage, setPageSize, } = tableState;
90
- const resize = (0, useColumnResize_1.useColumnResize)({
91
- columns,
92
- columnWidths,
93
- setColumnWidth,
94
- enabled: columnResizable,
95
- });
96
- const scrollRef = React.useRef(null);
97
- const resolvedRowHeight = rowHeight !== null && rowHeight !== void 0 ? rowHeight : TableProps_1.ROW_HEIGHT[density];
98
- const virtual = (0, useVirtualScroll_1.useVirtualScroll)({
99
- rowCount: pageData.length,
100
- rowHeight: resolvedRowHeight,
101
- enabled: virtualScroll,
102
- threshold: virtualScrollThreshold,
103
- scrollContainerRef: scrollRef,
104
- });
105
- const keyboardEnabled = selectable || !!onRowClick;
106
- const keyboard = (0, useTableKeyboard_1.useTableKeyboard)({
107
- rowCount: pageData.length,
108
- columnCount: visibleColumns.length,
109
- hasSelectionColumn: selectable,
110
- onActivateRow: (rowIndex) => {
111
- const row = pageData[rowIndex];
112
- if (row && onRowClick) {
113
- onRowClick(row, {});
114
- }
115
- },
116
- onToggleRow: (rowIndex) => {
117
- const row = pageData[rowIndex];
118
- if (row)
119
- toggleRow((0, sortUtils_1.resolveRowKey)(row, rowKey));
120
- },
121
- onClearSelection: clearSelection,
122
- });
123
- const selectedKeys = React.useMemo(() => new Set(selection), [selection]);
124
- const selectedRowData = React.useMemo(() => data.filter((row) => selectedKeys.has((0, sortUtils_1.resolveRowKey)(row, rowKey))), [data, selectedKeys, rowKey]);
125
- const hasActiveFilters = filters.length > 0 || searchQuery.length > 0;
126
- const showSidebar = (filterSidebar === null || filterSidebar === void 0 ? void 0 : filterSidebar.enabled) && filterMode === "sidebar";
127
- const handleRemoveFilter = (filter) => {
128
- setFilters((prev) => prev.filter((f) => f !== filter));
129
- };
130
- const clearAllFilters = () => {
131
- setFilters([]);
132
- if (searchQuery)
133
- setSearchQuery("");
134
- };
135
- const totalRows = paginationMode === "server" ? totalCount !== null && totalCount !== void 0 ? totalCount : 0 : processed.length;
136
- const hasError = error !== null && error !== undefined;
137
- const isEmpty = !isLoading && !hasError && pageData.length === 0;
138
- return (React.createElement("div", { className: (0, utils_1.cn)("flex flex-col overflow-hidden rounded-md border border-border bg-card text-card-foreground", className), style: Object.assign({ "--row-height": `${resolvedRowHeight}px` }, style) },
139
- React.createElement("div", { className: "flex flex-wrap items-center justify-between gap-2 border-b border-border bg-card px-3 py-2" },
140
- React.createElement("div", { className: "flex flex-1 items-center gap-2" }, searchable && (React.createElement(TableSearch_1.TableSearch, { value: searchQuery, onChange: setSearchQuery, placeholder: searchPlaceholder }))),
141
- React.createElement("div", { className: "flex flex-wrap items-center gap-2" },
142
- filterable && filterMode === "inline" && (React.createElement(TableFilters_1.TableFilters, { columns: columns, filters: filters, onApply: (next) => setFilters(next) })),
143
- showColumnToggle && (React.createElement(ManageColumns_1.ManageColumns, { columns: columns, columnVisibility: columnVisibility, onChange: setColumnHidden })),
144
- React.createElement(TableSettings_1.TableSettings, { density: density, onDensityChange: setDensity }),
145
- exportOptions && exportOptions.length > 0 && (React.createElement(dropdown_menu_1.DropdownMenu, null,
146
- React.createElement(dropdown_menu_1.DropdownMenuTrigger, { asChild: true },
147
- React.createElement(button_1.Button, { size: "sm", variant: "outline", leftIcon: React.createElement(lucide_react_1.Download, null) }, "Export")),
148
- React.createElement(dropdown_menu_1.DropdownMenuContent, { align: "end" }, exportOptions.map((option) => (React.createElement(dropdown_menu_1.DropdownMenuItem, { key: option.label, onClick: () => option.onExport(processed, selectedRowData) },
149
- option.icon,
150
- option.label)))))),
151
- headerActions)),
152
- React.createElement(ActiveFilters_1.ActiveFilters, { filters: filters, columns: columns, onRemove: handleRemoveFilter, onClearAll: () => setFilters([]) }),
153
- React.createElement(BulkActionBar_1.BulkActionBar, { selectedCount: selection.length, selectedKeys: selection, selectedRows: selectedRowData, actions: bulkActions, onClear: clearSelection }),
154
- React.createElement("div", { className: "flex flex-1 overflow-hidden" },
155
- showSidebar && filterSidebar && filterSidebar.position !== "right" && (React.createElement(LeftFilterPane_1.LeftFilterPane, { filters: filterSidebar.filters, onApply: filterSidebar.onApply, isLoading: filterSidebar.isLoading })),
156
- React.createElement("div", { ref: scrollRef, role: keyboardEnabled ? "grid" : undefined, "aria-busy": isLoading || undefined, "aria-rowcount": pageData.length || undefined, "aria-colcount": visibleColumns.length + (selectable ? 1 : 0) || undefined, tabIndex: keyboardEnabled ? 0 : undefined, onKeyDown: keyboardEnabled ? keyboard.handleKeyDown : undefined, style: {
157
- maxHeight: typeof maxHeight === "number"
158
- ? `${maxHeight}px`
159
- : maxHeight,
160
- }, className: (0, utils_1.cn)("relative flex-1 overflow-auto", keyboardEnabled &&
161
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset") }, hasError ? (React.createElement(TableErrorState_1.TableErrorState, { error: error, onRetry: onRetry })) : isEmpty ? (emptyState !== null && emptyState !== void 0 ? emptyState : (React.createElement(TableEmptyState_1.TableEmptyState, { title: emptyTitle, description: emptyDescription, hasActiveFilters: hasActiveFilters, onClearFilters: hasActiveFilters ? clearAllFilters : undefined, action: emptyAction }))) : (React.createElement("table", { className: (0, utils_1.cn)("w-full border-collapse text-left", noBorders && "[&_td]:border-0"), style: { tableLayout: "fixed" } },
162
- React.createElement(TableHeader_1.TableHeader, { columns: visibleColumns, columnWidths: columnWidths, sortable: sortable, sort: sort, onSortChange: setSort, selectable: selectable, selectionMode: selectionMode, isAllSelected: isAllSelected, isSomeSelected: isSomeSelected, onToggleAll: toggleAll, resizable: columnResizable, resizingColumnId: resize.resizingColumnId, onResizePointerDown: resize.handlePointerDown, sticky: stickyHeader, focusedColIndex: keyboard.active.row === -1
163
- ? keyboard.active.col
164
- : -1, onCellClick: (colIndex) => keyboard.setActive({ row: -1, col: colIndex }) }),
165
- React.createElement(TableBody_1.TableBody, { data: pageData, columns: visibleColumns, rowKey: rowKey, columnWidths: columnWidths, selectable: selectable, selectedKeys: selectedKeys, onToggleSelect: (key) => toggleRow(key), onRowClick: onRowClick, rowClassName: rowClassName, striped: true, noBorders: noBorders, focusedRowIndex: keyboard.active.row, focusedColIndex: keyboard.active.col, onCellClick: (rowIndex, colIndex) => keyboard.setActive({
166
- row: rowIndex,
167
- col: colIndex,
168
- }), isLoading: isLoading, loadingRowCount: loadingRowCount, virtual: virtual })))),
169
- showSidebar && filterSidebar && filterSidebar.position === "right" && (React.createElement(LeftFilterPane_1.LeftFilterPane, { filters: filterSidebar.filters, onApply: filterSidebar.onApply, isLoading: filterSidebar.isLoading, position: "right" }))),
170
- pagination && !hasError && (React.createElement(Pagination_1.Pagination, { pageIndex: pageIndex, pageCount: pageCount, pageSize: pageSize, pageSizeOptions: pageSizeOptions, totalRows: totalRows, onPageChange: (page) => setPage(page), onPageSizeChange: (size) => setPageSize(size) }))));
171
- }
172
- Table.displayName = "Table";
@@ -1,139 +0,0 @@
1
- import type * as React from "react";
2
- export type SortDirection = "asc" | "desc" | null;
3
- export type FilterOperator = "equals" | "not_equals" | "contains" | "not_contains" | "starts_with" | "ends_with" | "greater_than" | "less_than" | "between" | "is_empty" | "is_not_empty" | "in" | "not_in";
4
- export type ColumnType = "text" | "number" | "date" | "boolean" | "select" | "custom";
5
- export type Density = "compact" | "default" | "comfortable";
6
- export interface ColumnDef<T = unknown> {
7
- id: string;
8
- header: string;
9
- accessorKey?: keyof T;
10
- accessorFn?: (row: T) => unknown;
11
- cell?: (value: unknown, row: T) => React.ReactNode;
12
- type?: ColumnType;
13
- sortable?: boolean;
14
- filterable?: boolean;
15
- filterOptions?: {
16
- label: string;
17
- value: unknown;
18
- }[];
19
- width?: number;
20
- minWidth?: number;
21
- maxWidth?: number;
22
- sticky?: "left" | "right";
23
- hidden?: boolean;
24
- enableHiding?: boolean;
25
- enableResizing?: boolean;
26
- align?: "left" | "center" | "right";
27
- meta?: Record<string, unknown>;
28
- }
29
- export interface ActiveFilter {
30
- columnId: string;
31
- operator: FilterOperator;
32
- /** A single value or [from, to] for `between` / array for `in`/`not_in`. */
33
- value: unknown;
34
- }
35
- export interface SortState {
36
- id: string;
37
- direction: SortDirection;
38
- }
39
- export type RowKey<T> = keyof T | ((row: T) => string | number);
40
- export interface FilterSidebarConfig {
41
- id: string;
42
- label: string;
43
- type: "select" | "multi-select" | "date-range" | "number-range" | "text";
44
- options?: {
45
- label: string;
46
- value: unknown;
47
- }[];
48
- }
49
- export interface BulkAction<T = unknown> {
50
- label: string;
51
- icon?: React.ReactNode;
52
- onClick: (selectedKeys: (string | number)[], selectedRows: T[]) => void;
53
- variant?: "default" | "destructive";
54
- /** When true, shows a confirmation dialog before invoking onClick. */
55
- confirm?: boolean | {
56
- title: string;
57
- description?: string;
58
- };
59
- }
60
- export interface ExportOption<T = unknown> {
61
- label: string;
62
- icon?: React.ReactNode;
63
- onExport: (data: T[], selectedRows: T[]) => void;
64
- }
65
- export interface TablePreferences {
66
- storageKey: string;
67
- }
68
- export interface PersistedTableState {
69
- columnVisibility?: Record<string, boolean>;
70
- columnOrder?: string[];
71
- columnWidths?: Record<string, number>;
72
- density?: Density;
73
- pageSize?: number;
74
- }
75
- export interface TableProps<T = unknown> {
76
- data: T[];
77
- columns: ColumnDef<T>[];
78
- rowKey: RowKey<T>;
79
- selectable?: boolean;
80
- selectedRows?: (string | number)[];
81
- onSelectionChange?: (selectedKeys: (string | number)[]) => void;
82
- selectionMode?: "single" | "multi";
83
- onRowClick?: (row: T, event: React.MouseEvent) => void;
84
- rowClassName?: (row: T) => string | undefined;
85
- sortable?: boolean;
86
- defaultSort?: SortState;
87
- onSortChange?: (sort: SortState | null) => void;
88
- filterable?: boolean;
89
- defaultFilters?: ActiveFilter[];
90
- onFilterChange?: (filters: ActiveFilter[]) => void;
91
- searchable?: boolean;
92
- searchPlaceholder?: string;
93
- onSearchChange?: (query: string) => void;
94
- isServerSearch?: boolean;
95
- pagination?: boolean;
96
- paginationMode?: "client" | "server";
97
- defaultPageSize?: number;
98
- pageSizeOptions?: number[];
99
- totalCount?: number;
100
- onPageChange?: (page: number, pageSize: number) => void;
101
- isLoading?: boolean;
102
- loadingRowCount?: number;
103
- error?: Error | string | null;
104
- onRetry?: () => void;
105
- emptyState?: React.ReactNode;
106
- emptyTitle?: string;
107
- emptyDescription?: string;
108
- emptyAction?: {
109
- label: string;
110
- onClick: () => void;
111
- };
112
- density?: Density;
113
- maxHeight?: number | string;
114
- virtualScroll?: boolean;
115
- /** Defaults to 44 (default density). */
116
- rowHeight?: number;
117
- /** Threshold for auto-enabling virtual scroll. Default 500. */
118
- virtualScrollThreshold?: number;
119
- defaultHiddenColumns?: string[];
120
- showColumnToggle?: boolean;
121
- columnResizable?: boolean;
122
- stickyHeader?: boolean;
123
- noBorders?: boolean;
124
- bulkActions?: BulkAction<T>[];
125
- filterSidebar?: {
126
- enabled: boolean;
127
- position?: "left" | "right";
128
- filters: FilterSidebarConfig[];
129
- onApply: (filters: Record<string, unknown>) => void;
130
- isLoading?: boolean;
131
- };
132
- filterMode?: "inline" | "sidebar" | "modal";
133
- preferences?: TablePreferences;
134
- headerActions?: React.ReactNode;
135
- exportOptions?: ExportOption<T>[];
136
- className?: string;
137
- style?: React.CSSProperties;
138
- }
139
- export declare const ROW_HEIGHT: Record<Density, number>;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ROW_HEIGHT = void 0;
4
- /* Density → row-height in px */
5
- exports.ROW_HEIGHT = {
6
- compact: 32,
7
- default: 44,
8
- comfortable: 56,
9
- };