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,138 +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.PinInput = void 0;
37
- const React = __importStar(require("react"));
38
- const utils_1 = require("../../lib/utils");
39
- const field_1 = require("../ui/field");
40
- const SIZE_CLASS = {
41
- sm: "h-9 w-9 text-sm",
42
- md: "h-11 w-11 text-base",
43
- lg: "h-12 w-12 text-lg",
44
- };
45
- function normalize(raw, type) {
46
- if (type === "number")
47
- return raw.replace(/[^0-9]/g, "");
48
- return raw.replace(/[^A-Za-z0-9]/g, "");
49
- }
50
- exports.PinInput = React.forwardRef((props, ref) => {
51
- const { id, label, helperText, error, errorMessage, isRequired, length = 6, type = "number", value, defaultValue, onChange, onComplete, autoFocus, mask = false, size = "md", name, isDisabled, className, } = props;
52
- const isControlled = value !== undefined;
53
- const [internalValue, setInternalValue] = React.useState((defaultValue !== null && defaultValue !== void 0 ? defaultValue : "").slice(0, length));
54
- const current = (isControlled ? value : internalValue).slice(0, length);
55
- const inputRefs = React.useRef([]);
56
- const setValue = (next) => {
57
- const normalized = normalize(next, type).slice(0, length);
58
- if (!isControlled)
59
- setInternalValue(normalized);
60
- onChange === null || onChange === void 0 ? void 0 : onChange(normalized);
61
- if (normalized.length === length)
62
- onComplete === null || onComplete === void 0 ? void 0 : onComplete(normalized);
63
- };
64
- const focusIndex = (index) => {
65
- const target = inputRefs.current[index];
66
- if (target) {
67
- target.focus();
68
- target.select();
69
- }
70
- };
71
- const handleInput = (index, event) => {
72
- const raw = event.target.value;
73
- if (raw.length > 1) {
74
- const cleaned = normalize(raw, type).slice(0, length);
75
- setValue(cleaned.padEnd(0, ""));
76
- focusIndex(Math.min(cleaned.length, length - 1));
77
- return;
78
- }
79
- const char = normalize(raw, type).slice(-1);
80
- const chars = current.split("");
81
- chars[index] = char;
82
- const joined = chars.join("").replace(/\s+$/, "");
83
- setValue(joined);
84
- if (char && index < length - 1)
85
- focusIndex(index + 1);
86
- };
87
- const handleKeyDown = (index, event) => {
88
- if (event.key === "Backspace") {
89
- if (current[index]) {
90
- const chars = current.split("");
91
- chars[index] = "";
92
- setValue(chars.join(""));
93
- }
94
- else if (index > 0) {
95
- focusIndex(index - 1);
96
- const chars = current.split("");
97
- chars[index - 1] = "";
98
- setValue(chars.join(""));
99
- }
100
- event.preventDefault();
101
- return;
102
- }
103
- if (event.key === "ArrowLeft" && index > 0) {
104
- event.preventDefault();
105
- focusIndex(index - 1);
106
- return;
107
- }
108
- if (event.key === "ArrowRight" && index < length - 1) {
109
- event.preventDefault();
110
- focusIndex(index + 1);
111
- return;
112
- }
113
- };
114
- const handlePaste = (event) => {
115
- const pasted = event.clipboardData.getData("text");
116
- if (!pasted)
117
- return;
118
- event.preventDefault();
119
- const cleaned = normalize(pasted, type).slice(0, length);
120
- setValue(cleaned);
121
- focusIndex(Math.min(cleaned.length, length - 1));
122
- };
123
- const boxes = (React.createElement("div", { ref: ref, role: "group", "aria-label": typeof label === "string" ? label : "Pin input", className: (0, utils_1.cn)("flex items-center gap-2", className) },
124
- Array.from({ length }).map((_, index) => {
125
- var _a;
126
- const char = (_a = current[index]) !== null && _a !== void 0 ? _a : "";
127
- return (React.createElement("input", { key: index, ref: (node) => {
128
- inputRefs.current[index] = node;
129
- }, type: mask ? "password" : "text", inputMode: type === "number" ? "numeric" : "text", autoComplete: index === 0 ? "one-time-code" : "off", autoFocus: autoFocus && index === 0, disabled: isDisabled, maxLength: 1, value: char, onChange: (event) => handleInput(index, event), onKeyDown: (event) => handleKeyDown(index, event), onPaste: handlePaste, onFocus: (event) => event.target.select(), "aria-label": `Digit ${index + 1} of ${length}`, "aria-invalid": error || undefined, className: (0, utils_1.cn)("shrink-0 rounded-md border border-input bg-background text-center font-medium tabular-nums shadow-sm transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1", "disabled:cursor-not-allowed disabled:opacity-50", error &&
130
- "border-destructive focus-visible:ring-destructive", SIZE_CLASS[size]) }));
131
- }),
132
- name && (React.createElement("input", { type: "hidden", name: name, value: current }))));
133
- if (label || helperText || errorMessage) {
134
- return (React.createElement(field_1.Field, { id: id, label: label, helperText: helperText, error: error, errorMessage: errorMessage, isRequired: isRequired }, boxes));
135
- }
136
- return boxes;
137
- });
138
- exports.PinInput.displayName = "PinInput";
@@ -1,18 +0,0 @@
1
- import * as React from "react";
2
- export type ProfilePhotoSize = "sm" | "md" | "lg" | "xl";
3
- export interface ProfilePhotoViewerProps {
4
- src?: string;
5
- name?: string;
6
- initials?: string;
7
- size?: ProfilePhotoSize;
8
- /** When true, hover overlay shows a camera icon; click opens file picker. */
9
- editable?: boolean;
10
- onPhotoChange?: (file: File) => void;
11
- /** Accept attribute for the hidden file input. */
12
- accept?: string;
13
- className?: string;
14
- }
15
- export declare function ProfilePhotoViewer({ src, name, initials, size, editable, onPhotoChange, accept, className, }: ProfilePhotoViewerProps): React.ReactElement;
16
- export declare namespace ProfilePhotoViewer {
17
- var displayName: string;
18
- }
@@ -1,91 +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.ProfilePhotoViewer = ProfilePhotoViewer;
37
- const React = __importStar(require("react"));
38
- const lucide_react_1 = require("lucide-react");
39
- const utils_1 = require("../../lib/utils");
40
- const avatar_1 = require("../ui/avatar");
41
- const dialog_1 = require("../ui/dialog");
42
- const SIZE_PX = {
43
- sm: 32,
44
- md: 48,
45
- lg: 80,
46
- xl: 128,
47
- };
48
- function ProfilePhotoViewer({ src, name, initials, size = "lg", editable = false, onPhotoChange, accept = "image/*", className, }) {
49
- const [viewerOpen, setViewerOpen] = React.useState(false);
50
- const fileInputRef = React.useRef(null);
51
- const resolvedInitials = initials !== null && initials !== void 0 ? initials : (name
52
- ? name
53
- .split(/\s+/)
54
- .map((part) => part[0])
55
- .filter(Boolean)
56
- .slice(0, 2)
57
- .join("")
58
- .toUpperCase()
59
- : "?");
60
- const px = SIZE_PX[size];
61
- const handleEditClick = (event) => {
62
- var _a;
63
- event.stopPropagation();
64
- (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
65
- };
66
- const handleFile = (event) => {
67
- var _a;
68
- const file = (_a = event.target.files) === null || _a === void 0 ? void 0 : _a[0];
69
- if (file)
70
- onPhotoChange === null || onPhotoChange === void 0 ? void 0 : onPhotoChange(file);
71
- event.target.value = "";
72
- };
73
- return (React.createElement(React.Fragment, null,
74
- React.createElement("div", { className: (0, utils_1.cn)("relative inline-flex shrink-0", className), style: { width: px, height: px } },
75
- React.createElement("button", { type: "button", onClick: () => src && setViewerOpen(true), "aria-label": src
76
- ? `View photo of ${name !== null && name !== void 0 ? name : "user"}`
77
- : `${name !== null && name !== void 0 ? name : "User"} profile photo`, className: (0, utils_1.cn)("h-full w-full rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background", !src && "cursor-default"), disabled: !src },
78
- React.createElement(avatar_1.Avatar, { size: size === "sm" ? "sm" : size === "md" ? "md" : "lg", className: "h-full w-full" },
79
- src && React.createElement(avatar_1.AvatarImage, { src: src, alt: name !== null && name !== void 0 ? name : "Profile" }),
80
- React.createElement(avatar_1.AvatarFallback, null, resolvedInitials))),
81
- editable && (React.createElement("button", { type: "button", onClick: handleEditClick, "aria-label": "Change profile photo", className: (0, utils_1.cn)("absolute inset-0 grid place-items-center rounded-full bg-foreground/60 text-background opacity-0 transition-opacity", "hover:opacity-100 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background") },
82
- React.createElement(lucide_react_1.Camera, { "aria-hidden": "true", className: (0, utils_1.cn)(size === "sm" ? "h-3.5 w-3.5" : "h-5 w-5") }))),
83
- editable && (React.createElement("input", { ref: fileInputRef, type: "file", accept: accept, className: "sr-only", onChange: handleFile }))),
84
- React.createElement(dialog_1.Dialog, { open: viewerOpen, onOpenChange: setViewerOpen },
85
- React.createElement(dialog_1.DialogContent, { size: "lg" },
86
- React.createElement(dialog_1.DialogHeader, null,
87
- React.createElement(dialog_1.DialogTitle, null, name !== null && name !== void 0 ? name : "Profile photo")),
88
- src && (React.createElement("div", { className: "flex items-center justify-center" },
89
- React.createElement("img", { src: src, alt: name !== null && name !== void 0 ? name : "Profile", className: "max-h-[60vh] w-auto rounded-md object-contain" })))))));
90
- }
91
- ProfilePhotoViewer.displayName = "ProfilePhotoViewer";
@@ -1,41 +0,0 @@
1
- import * as React from "react";
2
- export interface SelectOption {
3
- value: string;
4
- label: string;
5
- description?: string;
6
- icon?: React.ReactNode;
7
- disabled?: boolean;
8
- group?: string;
9
- }
10
- export type SelectSize = "sm" | "md" | "lg";
11
- export interface SelectProps {
12
- options: SelectOption[];
13
- value?: string | string[];
14
- defaultValue?: string | string[];
15
- onChange?: (value: string | string[]) => void;
16
- multiple?: boolean;
17
- searchable?: boolean;
18
- clearable?: boolean;
19
- creatable?: boolean;
20
- onCreateOption?: (inputValue: string) => void;
21
- placeholder?: string;
22
- label?: React.ReactNode;
23
- helperText?: React.ReactNode;
24
- error?: boolean;
25
- errorMessage?: React.ReactNode;
26
- isInformation?: boolean;
27
- informationMessage?: React.ReactNode;
28
- isRequired?: boolean;
29
- isDisabled?: boolean;
30
- isLoading?: boolean;
31
- size?: SelectSize;
32
- width?: string;
33
- maxDisplayed?: number;
34
- onSearch?: (query: string) => void;
35
- emptyMessage?: React.ReactNode;
36
- loadingMessage?: React.ReactNode;
37
- id?: string;
38
- name?: string;
39
- className?: string;
40
- }
41
- export declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLButtonElement>>;
@@ -1,284 +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.Select = void 0;
48
- const React = __importStar(require("react"));
49
- const lucide_react_1 = require("lucide-react");
50
- const cmdk_1 = require("cmdk");
51
- const utils_1 = require("../../lib/utils");
52
- const badge_1 = require("../ui/badge");
53
- const field_1 = require("../ui/field");
54
- const popover_1 = require("../ui/popover");
55
- const select_1 = require("../ui/select");
56
- const skeleton_1 = require("../ui/skeleton");
57
- const spinner_1 = require("../ui/spinner");
58
- const form_field_1 = require("../ui/form-field");
59
- const TRIGGER_SIZE = {
60
- sm: "min-h-8 text-xs px-2.5",
61
- md: "min-h-9 text-sm px-3",
62
- lg: "min-h-10 text-base px-3.5",
63
- };
64
- exports.Select = React.forwardRef((props, ref) => {
65
- const { id, label, helperText, error, errorMessage, isInformation, informationMessage, isRequired, width, className } = props, controlProps = __rest(props, ["id", "label", "helperText", "error", "errorMessage", "isInformation", "informationMessage", "isRequired", "width", "className"]);
66
- return (React.createElement(field_1.Field, { id: id, label: label, isRequired: isRequired, isInformation: isInformation, informationMessage: informationMessage, helperText: helperText, error: error, errorMessage: errorMessage, width: width },
67
- React.createElement(SelectControl, Object.assign({ ref: ref, error: error, className: className }, controlProps))));
68
- });
69
- exports.Select.displayName = "Select";
70
- const SelectControl = React.forwardRef((props, ref) => {
71
- const { options, value, defaultValue, onChange, multiple = false, searchable = false, clearable = false, creatable = false, onCreateOption, placeholder = "Select…", isDisabled = false, isLoading = false, size = "md", maxDisplayed = 3, onSearch, emptyMessage = "No options found", loadingMessage = "Loading…", name, error, className, } = props;
72
- if (!multiple && !searchable) {
73
- return (React.createElement(SimpleRadixSelect, { ref: ref, options: options, value: value, defaultValue: defaultValue, onChange: (v) => onChange === null || onChange === void 0 ? void 0 : onChange(v), placeholder: placeholder, isDisabled: isDisabled || isLoading, size: size, name: name, error: error, className: className, loadingMessage: loadingMessage, isLoading: isLoading }));
74
- }
75
- return (React.createElement(ComboSelect, { ref: ref, options: options, value: value, defaultValue: defaultValue, onChange: onChange, multiple: multiple, clearable: clearable, creatable: creatable, onCreateOption: onCreateOption, placeholder: placeholder, isDisabled: isDisabled, isLoading: isLoading, size: size, maxDisplayed: maxDisplayed, onSearch: onSearch, emptyMessage: emptyMessage, loadingMessage: loadingMessage, error: error, className: className, name: name }));
76
- });
77
- SelectControl.displayName = "SelectControl";
78
- const SimpleRadixSelect = React.forwardRef(({ options, value, defaultValue, onChange, placeholder, isDisabled, size, name, error, className, loadingMessage, isLoading, }, ref) => {
79
- const field = (0, form_field_1.useFormField)();
80
- const grouped = useGroupedOptions(options);
81
- return (React.createElement(select_1.Select, { value: value, defaultValue: defaultValue, onValueChange: onChange, disabled: isDisabled, name: name },
82
- React.createElement(select_1.SelectTrigger, { ref: ref, id: field.id || undefined, size: size, "aria-invalid": error || field.hasError || undefined, className: (0, utils_1.cn)(error &&
83
- "border-destructive bg-destructive/5 focus:ring-destructive", className) },
84
- React.createElement(select_1.SelectValue, { placeholder: placeholder }),
85
- isLoading && (React.createElement(spinner_1.Spinner, { size: "sm", className: "ml-2", label: String(loadingMessage) }))),
86
- React.createElement(select_1.SelectContent, null, grouped.map((group) => {
87
- var _a;
88
- return (React.createElement(select_1.SelectGroup, { key: (_a = group.label) !== null && _a !== void 0 ? _a : "__root" },
89
- group.label && (React.createElement(select_1.SelectLabel, null, group.label)),
90
- group.options.map((option) => (React.createElement(select_1.SelectItem, { key: option.value, value: option.value, disabled: option.disabled },
91
- React.createElement("span", { className: "flex items-center gap-2" },
92
- option.icon,
93
- React.createElement("span", { className: "flex flex-col" },
94
- React.createElement("span", null, option.label),
95
- option.description && (React.createElement("span", { className: "text-xs text-muted-foreground" }, option.description)))))))));
96
- }))));
97
- });
98
- SimpleRadixSelect.displayName = "SimpleRadixSelect";
99
- const ComboSelect = React.forwardRef(({ options, value, defaultValue, onChange, multiple, clearable, creatable, onCreateOption, placeholder, isDisabled, isLoading, size, maxDisplayed, onSearch, emptyMessage, loadingMessage, error, className, name, }, ref) => {
100
- var _a;
101
- const field = (0, form_field_1.useFormField)();
102
- const isControlled = value !== undefined;
103
- const [internalValue, setInternalValue] = React.useState(() => {
104
- if (defaultValue !== undefined)
105
- return defaultValue;
106
- return multiple ? [] : "";
107
- });
108
- const currentValue = isControlled ? value : internalValue;
109
- const [open, setOpen] = React.useState(false);
110
- const [query, setQuery] = React.useState("");
111
- const debouncedQuery = useDebouncedValue(query, 150);
112
- React.useEffect(() => {
113
- if (onSearch)
114
- onSearch(query);
115
- }, [query, onSearch]);
116
- const filtered = React.useMemo(() => {
117
- if (onSearch)
118
- return options;
119
- if (!debouncedQuery.trim())
120
- return options;
121
- const q = debouncedQuery.toLowerCase();
122
- return options.filter((o) => {
123
- var _a;
124
- return o.label.toLowerCase().includes(q) ||
125
- o.value.toLowerCase().includes(q) ||
126
- ((_a = o.description) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(q));
127
- });
128
- }, [options, debouncedQuery, onSearch]);
129
- const grouped = useGroupedOptions(filtered);
130
- const setValue = (next) => {
131
- if (!isControlled)
132
- setInternalValue(next);
133
- onChange === null || onChange === void 0 ? void 0 : onChange(next);
134
- };
135
- const selectedValues = React.useMemo(() => {
136
- if (multiple)
137
- return new Set(Array.isArray(currentValue) ? currentValue : []);
138
- return new Set(typeof currentValue === "string" && currentValue ? [currentValue] : []);
139
- }, [currentValue, multiple]);
140
- const selectedOptions = React.useMemo(() => {
141
- return options.filter((o) => selectedValues.has(o.value));
142
- }, [options, selectedValues]);
143
- const handleSelect = (optionValue) => {
144
- if (multiple) {
145
- const arr = Array.isArray(currentValue) ? currentValue : [];
146
- const next = arr.includes(optionValue)
147
- ? arr.filter((v) => v !== optionValue)
148
- : [...arr, optionValue];
149
- setValue(next);
150
- }
151
- else {
152
- setValue(optionValue);
153
- setOpen(false);
154
- }
155
- setQuery("");
156
- };
157
- const removeValue = (optionValue) => {
158
- if (multiple) {
159
- const arr = Array.isArray(currentValue) ? currentValue : [];
160
- setValue(arr.filter((v) => v !== optionValue));
161
- }
162
- else {
163
- setValue("");
164
- }
165
- };
166
- const clearAll = (event) => {
167
- event.stopPropagation();
168
- setValue(multiple ? [] : "");
169
- };
170
- const hasValue = multiple
171
- ? Array.isArray(currentValue) && currentValue.length > 0
172
- : !!currentValue;
173
- const showCreate = creatable &&
174
- query.trim() !== "" &&
175
- !filtered.some((o) => o.label.toLowerCase() === query.trim().toLowerCase());
176
- return (React.createElement(React.Fragment, null,
177
- React.createElement(popover_1.Popover, { open: open, onOpenChange: setOpen },
178
- React.createElement(popover_1.PopoverTrigger, { asChild: true },
179
- React.createElement("button", { ref: ref, type: "button", id: field.id || undefined, role: "combobox", "aria-expanded": open, "aria-haspopup": "listbox", "aria-autocomplete": "list", "aria-invalid": error || field.hasError || undefined, disabled: isDisabled || isLoading, className: (0, utils_1.cn)("group flex w-full items-center justify-between gap-2 rounded-md border border-input bg-background text-foreground shadow-sm transition-colors", "focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-1 focus:ring-offset-background", "disabled:cursor-not-allowed disabled:opacity-50", "data-[state=open]:ring-2 data-[state=open]:ring-ring", TRIGGER_SIZE[size], error &&
180
- "border-destructive bg-destructive/5 focus:ring-destructive", className) },
181
- React.createElement(SelectedChips, { multiple: multiple, selectedOptions: selectedOptions, maxDisplayed: maxDisplayed, placeholder: placeholder, removeValue: removeValue, isDisabled: isDisabled }),
182
- React.createElement("span", { className: "ml-auto flex items-center gap-1 text-muted-foreground" },
183
- isLoading && React.createElement(spinner_1.Spinner, { size: "sm" }),
184
- clearable && hasValue && !isDisabled && (React.createElement("button", { type: "button", "aria-label": "Clear selection", onClick: clearAll, className: "rounded-sm hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" },
185
- React.createElement(lucide_react_1.X, { className: "h-4 w-4" }))),
186
- React.createElement(lucide_react_1.ChevronDown, { className: "h-4 w-4 opacity-60 transition-transform group-data-[state=open]:rotate-180" })))),
187
- React.createElement(popover_1.PopoverContent, { align: "start", className: "w-[var(--radix-popover-trigger-width)] p-0" },
188
- React.createElement(cmdk_1.Command, { shouldFilter: false, className: "flex max-h-72 flex-col overflow-hidden" },
189
- React.createElement("div", { className: "flex shrink-0 items-center gap-2 border-b border-border px-2" },
190
- React.createElement(lucide_react_1.Search, { "aria-hidden": "true", className: "h-4 w-4 shrink-0 text-muted-foreground" }),
191
- React.createElement(cmdk_1.CommandInput, { autoFocus: true, value: query, onValueChange: setQuery, placeholder: "Search\u2026", className: "flex-1 bg-transparent py-2 text-sm outline-none placeholder:text-muted-foreground" })),
192
- React.createElement(cmdk_1.CommandList, { className: "max-h-[16rem] flex-1 overflow-y-auto py-1" }, isLoading ? (React.createElement("div", { className: "space-y-1.5 px-2 py-2" },
193
- React.createElement(skeleton_1.Skeleton, { variant: "text", className: "w-full" }),
194
- React.createElement(skeleton_1.Skeleton, { variant: "text", className: "w-3/4" }),
195
- React.createElement(skeleton_1.Skeleton, { variant: "text", className: "w-1/2" }))) : grouped.length === 0 && !showCreate ? (React.createElement(cmdk_1.CommandEmpty, { className: "px-3 py-4 text-center text-sm text-muted-foreground" }, emptyMessage)) : (React.createElement(React.Fragment, null,
196
- grouped.map((group, idx) => {
197
- var _a;
198
- return (React.createElement(React.Fragment, { key: (_a = group.label) !== null && _a !== void 0 ? _a : "__root" },
199
- idx > 0 && (React.createElement(cmdk_1.CommandSeparator, { className: "my-1 h-px bg-border" })),
200
- React.createElement(cmdk_1.CommandGroup, { heading: group.label, className: (0, utils_1.cn)("px-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5", "[&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-semibold [&_[cmdk-group-heading]]:text-muted-foreground") }, group.options.map((option) => (React.createElement(ComboItem, { key: option.value, option: option, selected: selectedValues.has(option.value), onSelect: () => handleSelect(option.value) }))))));
201
- }),
202
- showCreate && (React.createElement(React.Fragment, null,
203
- React.createElement(cmdk_1.CommandSeparator, { className: "my-1 h-px bg-border" }),
204
- React.createElement(cmdk_1.CommandItem, { value: `__create__${query}`, onSelect: () => {
205
- const newValue = query.trim();
206
- onCreateOption === null || onCreateOption === void 0 ? void 0 : onCreateOption(newValue);
207
- handleSelect(newValue);
208
- }, className: "mx-1 flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm text-foreground aria-selected:bg-accent aria-selected:text-accent-foreground" },
209
- React.createElement("span", { className: "text-muted-foreground" }, "Create"),
210
- React.createElement("span", { className: "font-medium" },
211
- "\u201C",
212
- query,
213
- "\u201D")))))))))),
214
- name && (React.createElement("input", { type: "hidden", name: name, value: multiple
215
- ? JSON.stringify(currentValue !== null && currentValue !== void 0 ? currentValue : [])
216
- : (_a = currentValue) !== null && _a !== void 0 ? _a : "" }))));
217
- });
218
- ComboSelect.displayName = "ComboSelect";
219
- function ComboItem({ option, selected, onSelect }) {
220
- return (React.createElement(cmdk_1.CommandItem, { value: `${option.label} ${option.value}`, disabled: option.disabled, onSelect: onSelect, className: (0, utils_1.cn)("relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm", "aria-selected:bg-accent aria-selected:text-accent-foreground", "data-[disabled]:pointer-events-none data-[disabled]:opacity-50") },
221
- option.icon,
222
- React.createElement("span", { className: "flex flex-col" },
223
- React.createElement("span", null, option.label),
224
- option.description && (React.createElement("span", { className: "text-xs text-muted-foreground" }, option.description))),
225
- selected && (React.createElement(lucide_react_1.Check, { "aria-hidden": "true", className: "ml-auto h-4 w-4 shrink-0 text-primary" }))));
226
- }
227
- function SelectedChips({ multiple, selectedOptions, maxDisplayed, placeholder, removeValue, isDisabled, }) {
228
- if (selectedOptions.length === 0) {
229
- return (React.createElement("span", { className: "truncate text-muted-foreground" }, placeholder));
230
- }
231
- if (!multiple) {
232
- const [first] = selectedOptions;
233
- return (React.createElement("span", { className: "flex items-center gap-2 truncate text-foreground" },
234
- first.icon,
235
- React.createElement("span", { className: "truncate" }, first.label)));
236
- }
237
- const visible = selectedOptions.slice(0, maxDisplayed);
238
- const overflow = selectedOptions.length - visible.length;
239
- return (React.createElement("div", { className: "flex max-h-[5.5rem] flex-1 flex-wrap items-center gap-1 overflow-y-auto py-1" },
240
- visible.map((option) => (React.createElement(badge_1.Badge, { key: option.value, variant: "secondary", size: "sm", className: "gap-1 pr-1" },
241
- option.label,
242
- !isDisabled && (React.createElement("button", { type: "button", "aria-label": `Remove ${option.label}`, onClick: (event) => {
243
- event.stopPropagation();
244
- removeValue(option.value);
245
- }, className: "rounded-sm hover:bg-foreground/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" },
246
- React.createElement(lucide_react_1.X, { className: "h-3 w-3" })))))),
247
- overflow > 0 && (React.createElement(badge_1.Badge, { variant: "outline", size: "sm" },
248
- "+",
249
- overflow,
250
- " more"))));
251
- }
252
- function useGroupedOptions(options) {
253
- return React.useMemo(() => {
254
- var _a;
255
- const hasGroups = options.some((o) => !!o.group);
256
- if (!hasGroups)
257
- return [{ label: undefined, options }];
258
- const map = new Map();
259
- for (const option of options) {
260
- const key = option.group;
261
- const list = (_a = map.get(key)) !== null && _a !== void 0 ? _a : [];
262
- list.push(option);
263
- map.set(key, list);
264
- }
265
- const groups = [];
266
- const ungrouped = map.get(undefined);
267
- if (ungrouped)
268
- groups.push({ label: undefined, options: ungrouped });
269
- for (const [key, opts] of map.entries()) {
270
- if (key === undefined)
271
- continue;
272
- groups.push({ label: key, options: opts });
273
- }
274
- return groups;
275
- }, [options]);
276
- }
277
- function useDebouncedValue(value, delay) {
278
- const [debounced, setDebounced] = React.useState(value);
279
- React.useEffect(() => {
280
- const timer = setTimeout(() => setDebounced(value), delay);
281
- return () => clearTimeout(timer);
282
- }, [value, delay]);
283
- return debounced;
284
- }
@@ -1,41 +0,0 @@
1
- import * as React from "react";
2
- import { type LucideIcon } from "lucide-react";
3
- type BadgeVariant = "default" | "destructive" | "success" | "warning";
4
- export interface SidebarMenuItem {
5
- id: string | number;
6
- title: string;
7
- icon?: LucideIcon;
8
- url?: string;
9
- badge?: {
10
- count?: number;
11
- label?: string;
12
- variant?: BadgeVariant;
13
- };
14
- children?: SidebarMenuItem[];
15
- disabled?: boolean;
16
- }
17
- export interface SidebarOtherApp {
18
- id: string | number;
19
- name: string;
20
- url?: string;
21
- icon?: LucideIcon;
22
- iconUrl?: string;
23
- }
24
- export interface SidebarProps {
25
- menus: SidebarMenuItem[];
26
- activeItem?: string | number;
27
- onItemClick?: (item: SidebarMenuItem) => void;
28
- logo?: string;
29
- companyName?: string;
30
- collapsed?: boolean;
31
- onCollapsedChange?: (collapsed: boolean) => void;
32
- defaultCollapsed?: boolean;
33
- mobileOpen?: boolean;
34
- onMobileOpenChange?: (open: boolean) => void;
35
- otherApps?: SidebarOtherApp[];
36
- footer?: React.ReactNode;
37
- isLoading?: boolean;
38
- className?: string;
39
- }
40
- export declare function Sidebar({ menus, activeItem, onItemClick, logo, companyName, collapsed: collapsedProp, onCollapsedChange, defaultCollapsed, mobileOpen, onMobileOpenChange, otherApps, footer, isLoading, className, }: SidebarProps): React.ReactElement;
41
- export {};