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

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 (324) hide show
  1. package/.claude/settings.local.json +21 -1
  2. package/dist/Components/Accordion/Accordion.js +26 -5
  3. package/dist/Components/KanbanBoard/AccountCard.js +17 -14
  4. package/dist/Components/KanbanBoard/KanbanBoard.js +93 -78
  5. package/dist/Components/NavigationBar/NavigationBar.js +4 -4
  6. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.d.ts +1 -1
  7. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +42 -24
  8. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewerProps.d.ts +2 -0
  9. package/dist/Components/SearchSelect/SearchSelect.js +53 -21
  10. package/dist/Components/Table/Table.d.ts +1 -1
  11. package/dist/Components/Table/Table.js +143 -28
  12. package/dist/Components/Table/TableProps.d.ts +9 -1
  13. package/dist/Components/Table/{Components → components}/TableActions.d.ts +2 -2
  14. package/dist/Components/Table/{Components → components}/TableActions.js +5 -4
  15. package/dist/Components/Table/{Components → components}/TableBody.js +84 -18
  16. package/dist/Components/Table/{Components → components}/TableHeader.js +5 -9
  17. package/dist/Components/Table/hooks/useTable.d.ts +1 -1
  18. package/dist/Components/Table/hooks/useTable.js +8 -7
  19. package/dist/Components/Table/settings/TableSettings.d.ts +3 -2
  20. package/dist/Components/Table/settings/TableSettings.js +30 -6
  21. package/dist/Components/Timeline/Timeline.d.ts +1 -1
  22. package/dist/Components/Timeline/Timeline.js +145 -78
  23. package/dist/Components/Toaster/Toaster.js +40 -20
  24. package/dist/Utils/table.d.ts +6 -1
  25. package/dist/Utils/table.js +47 -27
  26. package/package.json +1 -1
  27. package/dist/App.d.ts +0 -4
  28. package/dist/App.js +0 -131
  29. package/dist/Components/Table/CompactSelect.d.ts +0 -15
  30. package/dist/Components/Table/CompactSelect.js +0 -69
  31. package/dist/Components/Table/Components/ActiveFilters.d.ts +0 -9
  32. package/dist/Components/Table/Components/ActiveFilters.js +0 -132
  33. package/dist/Components/Table/Components/TableFilters.d.ts +0 -7
  34. package/dist/Components/Table/Components/TableFilters.js +0 -89
  35. package/dist/Components/Table/Components/useDebounce.d.ts +0 -2
  36. package/dist/Components/Table/Components/useDebounce.js +0 -28
  37. package/dist/Components/Table/Components/useTable.d.ts +0 -47
  38. package/dist/Components/Table/Components/useTable.js +0 -219
  39. package/dist/Components/Table/LeftFilterPane.d.ts +0 -36
  40. package/dist/Components/Table/LeftFilterPane.js +0 -273
  41. package/dist/Components/Table/SelectOperationControls.d.ts +0 -8
  42. package/dist/Components/Table/SelectOperationControls.js +0 -15
  43. package/dist/Components/Table/TableSettings/ManageColumns.d.ts +0 -12
  44. package/dist/Components/Table/TableSettings/ManageColumns.js +0 -166
  45. package/dist/Components/Table/TableSettings/ManageColumns.test.d.ts +0 -1
  46. package/dist/Components/Table/TableSettings/ManageColumns.test.js +0 -146
  47. package/dist/Components/Table/TableSettings/TableFilters.d.ts +0 -10
  48. package/dist/Components/Table/TableSettings/TableFilters.js +0 -69
  49. package/dist/Components/Table/TableSettings/TableFilters.test.d.ts +0 -1
  50. package/dist/Components/Table/TableSettings/TableFilters.test.js +0 -109
  51. package/dist/Components/Table/TableSettings/TableSettings.d.ts +0 -8
  52. package/dist/Components/Table/TableSettings/TableSettings.js +0 -141
  53. package/dist/Components/Table/TableToDo.d.ts +0 -2
  54. package/dist/Components/Table/TableToDo.js +0 -291
  55. package/dist/Components/Table/TextOperationControls.d.ts +0 -12
  56. package/dist/Components/Table/TextOperationControls.js +0 -29
  57. package/dist/Layout.d.ts +0 -3
  58. package/dist/Layout.js +0 -292
  59. package/dist/Pages/TInput.d.ts +0 -3
  60. package/dist/Pages/TInput.js +0 -56
  61. package/dist/Pages/accordion.d.ts +0 -3
  62. package/dist/Pages/accordion.js +0 -42
  63. package/dist/Pages/alertdialog.d.ts +0 -3
  64. package/dist/Pages/alertdialog.js +0 -54
  65. package/dist/Pages/button.d.ts +0 -3
  66. package/dist/Pages/button.js +0 -46
  67. package/dist/Pages/card.d.ts +0 -3
  68. package/dist/Pages/card.js +0 -117
  69. package/dist/Pages/chart.d.ts +0 -4
  70. package/dist/Pages/chart.js +0 -40
  71. package/dist/Pages/checkbox.d.ts +0 -3
  72. package/dist/Pages/checkbox.js +0 -12
  73. package/dist/Pages/contactForm.d.ts +0 -3
  74. package/dist/Pages/contactForm.js +0 -16
  75. package/dist/Pages/datePick.d.ts +0 -3
  76. package/dist/Pages/datePick.js +0 -88
  77. package/dist/Pages/drawer.d.ts +0 -3
  78. package/dist/Pages/drawer.js +0 -58
  79. package/dist/Pages/dropdown.d.ts +0 -3
  80. package/dist/Pages/dropdown.js +0 -24
  81. package/dist/Pages/editor.d.ts +0 -3
  82. package/dist/Pages/editor.js +0 -14
  83. package/dist/Pages/feedback.d.ts +0 -2
  84. package/dist/Pages/feedback.js +0 -15
  85. package/dist/Pages/fileUpload.d.ts +0 -2
  86. package/dist/Pages/fileUpload.js +0 -82
  87. package/dist/Pages/input.d.ts +0 -3
  88. package/dist/Pages/input.js +0 -92
  89. package/dist/Pages/kanbanboard.d.ts +0 -3
  90. package/dist/Pages/kanbanboard.js +0 -224
  91. package/dist/Pages/modal.d.ts +0 -3
  92. package/dist/Pages/modal.js +0 -65
  93. package/dist/Pages/multiSelect.d.ts +0 -3
  94. package/dist/Pages/multiSelect.js +0 -55
  95. package/dist/Pages/noteArea.d.ts +0 -3
  96. package/dist/Pages/noteArea.js +0 -59
  97. package/dist/Pages/notification.d.ts +0 -3
  98. package/dist/Pages/notification.js +0 -25
  99. package/dist/Pages/numberInput.d.ts +0 -3
  100. package/dist/Pages/numberInput.js +0 -49
  101. package/dist/Pages/photoViewer.d.ts +0 -3
  102. package/dist/Pages/photoViewer.js +0 -12
  103. package/dist/Pages/pinInputs.d.ts +0 -3
  104. package/dist/Pages/pinInputs.js +0 -12
  105. package/dist/Pages/productCaard.d.ts +0 -3
  106. package/dist/Pages/productCaard.js +0 -311
  107. package/dist/Pages/productDetailCard.d.ts +0 -3
  108. package/dist/Pages/productDetailCard.js +0 -78
  109. package/dist/Pages/productFilter.d.ts +0 -3
  110. package/dist/Pages/productFilter.js +0 -202
  111. package/dist/Pages/progressbar.d.ts +0 -3
  112. package/dist/Pages/progressbar.js +0 -12
  113. package/dist/Pages/radioButton.d.ts +0 -3
  114. package/dist/Pages/radioButton.js +0 -54
  115. package/dist/Pages/search.d.ts +0 -3
  116. package/dist/Pages/search.js +0 -54
  117. package/dist/Pages/searchSelect.d.ts +0 -3
  118. package/dist/Pages/searchSelect.js +0 -133
  119. package/dist/Pages/select.d.ts +0 -3
  120. package/dist/Pages/select.js +0 -53
  121. package/dist/Pages/selectSearch.d.ts +0 -3
  122. package/dist/Pages/selectSearch.js +0 -103
  123. package/dist/Pages/skeleton.d.ts +0 -3
  124. package/dist/Pages/skeleton.js +0 -22
  125. package/dist/Pages/switch.d.ts +0 -3
  126. package/dist/Pages/switch.js +0 -50
  127. package/dist/Pages/table.d.ts +0 -3
  128. package/dist/Pages/table.js +0 -174
  129. package/dist/Pages/textArea.d.ts +0 -3
  130. package/dist/Pages/textArea.js +0 -15
  131. package/dist/Pages/timeline.d.ts +0 -3
  132. package/dist/Pages/timeline.js +0 -74
  133. package/dist/Pages/tooltip.d.ts +0 -3
  134. package/dist/Pages/tooltip.js +0 -12
  135. package/dist/Pages/toster.d.ts +0 -3
  136. package/dist/Pages/toster.js +0 -68
  137. package/dist/Pages/verifyEmail.d.ts +0 -3
  138. package/dist/Pages/verifyEmail.js +0 -18
  139. package/dist/Theme/Dark/palette.d.ts +0 -370
  140. package/dist/Theme/Dark/palette.js +0 -372
  141. package/dist/bootstrap.d.ts +0 -1
  142. package/dist/bootstrap.js +0 -14
  143. package/dist/components-v2/AlertDialog/AlertDialog.d.ts +0 -23
  144. package/dist/components-v2/AlertDialog/AlertDialog.js +0 -98
  145. package/dist/components-v2/Breadcrumbs/Breadcrumbs.d.ts +0 -14
  146. package/dist/components-v2/Breadcrumbs/Breadcrumbs.js +0 -66
  147. package/dist/components-v2/Charts/AreaChart.d.ts +0 -23
  148. package/dist/components-v2/Charts/AreaChart.js +0 -63
  149. package/dist/components-v2/Charts/BarChart.d.ts +0 -25
  150. package/dist/components-v2/Charts/BarChart.js +0 -57
  151. package/dist/components-v2/Charts/LineChart.d.ts +0 -23
  152. package/dist/components-v2/Charts/LineChart.js +0 -55
  153. package/dist/components-v2/Charts/PieChart.d.ts +0 -15
  154. package/dist/components-v2/Charts/PieChart.js +0 -54
  155. package/dist/components-v2/Charts/PolarChart.d.ts +0 -14
  156. package/dist/components-v2/Charts/PolarChart.js +0 -54
  157. package/dist/components-v2/Charts/chartOptions.d.ts +0 -7
  158. package/dist/components-v2/Charts/chartOptions.js +0 -41
  159. package/dist/components-v2/Charts/useChartTheme.d.ts +0 -22
  160. package/dist/components-v2/Charts/useChartTheme.js +0 -106
  161. package/dist/components-v2/ContactForm/ContactForm.d.ts +0 -25
  162. package/dist/components-v2/ContactForm/ContactForm.js +0 -116
  163. package/dist/components-v2/DatePicker/Calendar.d.ts +0 -19
  164. package/dist/components-v2/DatePicker/Calendar.js +0 -212
  165. package/dist/components-v2/DatePicker/DatePicker.d.ts +0 -46
  166. package/dist/components-v2/DatePicker/DatePicker.js +0 -189
  167. package/dist/components-v2/DatePicker/TimePicker.d.ts +0 -12
  168. package/dist/components-v2/DatePicker/TimePicker.js +0 -105
  169. package/dist/components-v2/DatePicker/utils.d.ts +0 -31
  170. package/dist/components-v2/DatePicker/utils.js +0 -109
  171. package/dist/components-v2/Drawer/Drawer.d.ts +0 -27
  172. package/dist/components-v2/Drawer/Drawer.js +0 -132
  173. package/dist/components-v2/FeedbackForm/FeedbackForm.d.ts +0 -26
  174. package/dist/components-v2/FeedbackForm/FeedbackForm.js +0 -112
  175. package/dist/components-v2/FileUploader/FileUploader.d.ts +0 -28
  176. package/dist/components-v2/FileUploader/FileUploader.js +0 -127
  177. package/dist/components-v2/Input/TextInput.d.ts +0 -41
  178. package/dist/components-v2/Input/TextInput.js +0 -169
  179. package/dist/components-v2/KanbanBoard/KanbanBoard.d.ts +0 -39
  180. package/dist/components-v2/KanbanBoard/KanbanBoard.js +0 -101
  181. package/dist/components-v2/Layout/AppLayout.d.ts +0 -22
  182. package/dist/components-v2/Layout/AppLayout.js +0 -53
  183. package/dist/components-v2/Loading/Loading.d.ts +0 -19
  184. package/dist/components-v2/Loading/Loading.js +0 -55
  185. package/dist/components-v2/Modal/Modal.d.ts +0 -30
  186. package/dist/components-v2/Modal/Modal.js +0 -82
  187. package/dist/components-v2/NavigationBar/NavigationBar.d.ts +0 -47
  188. package/dist/components-v2/NavigationBar/NavigationBar.js +0 -148
  189. package/dist/components-v2/Notification/Notification.d.ts +0 -22
  190. package/dist/components-v2/Notification/Notification.js +0 -113
  191. package/dist/components-v2/NumberInput/NumberInput.d.ts +0 -37
  192. package/dist/components-v2/NumberInput/NumberInput.js +0 -210
  193. package/dist/components-v2/PinInput/PinInput.d.ts +0 -26
  194. package/dist/components-v2/PinInput/PinInput.js +0 -138
  195. package/dist/components-v2/ProfilePhotoViewer/ProfilePhotoViewer.d.ts +0 -18
  196. package/dist/components-v2/ProfilePhotoViewer/ProfilePhotoViewer.js +0 -91
  197. package/dist/components-v2/Select/Select.d.ts +0 -41
  198. package/dist/components-v2/Select/Select.js +0 -284
  199. package/dist/components-v2/Sidebar/Sidebar.d.ts +0 -41
  200. package/dist/components-v2/Sidebar/Sidebar.js +0 -182
  201. package/dist/components-v2/Slider/Slider.d.ts +0 -18
  202. package/dist/components-v2/Slider/Slider.js +0 -101
  203. package/dist/components-v2/Table/Table.d.ts +0 -7
  204. package/dist/components-v2/Table/Table.js +0 -172
  205. package/dist/components-v2/Table/TableProps.d.ts +0 -139
  206. package/dist/components-v2/Table/TableProps.js +0 -9
  207. package/dist/components-v2/Table/components/ActiveFilters.d.ts +0 -10
  208. package/dist/components-v2/Table/components/ActiveFilters.js +0 -70
  209. package/dist/components-v2/Table/components/BulkActionBar.d.ts +0 -11
  210. package/dist/components-v2/Table/components/BulkActionBar.js +0 -92
  211. package/dist/components-v2/Table/components/ColumnResizeHandle.d.ts +0 -7
  212. package/dist/components-v2/Table/components/ColumnResizeHandle.js +0 -41
  213. package/dist/components-v2/Table/components/Pagination.d.ts +0 -11
  214. package/dist/components-v2/Table/components/Pagination.js +0 -92
  215. package/dist/components-v2/Table/components/TableBody.d.ts +0 -23
  216. package/dist/components-v2/Table/components/TableBody.js +0 -69
  217. package/dist/components-v2/Table/components/TableCell.d.ts +0 -14
  218. package/dist/components-v2/Table/components/TableCell.js +0 -63
  219. package/dist/components-v2/Table/components/TableEmptyState.d.ts +0 -12
  220. package/dist/components-v2/Table/components/TableEmptyState.js +0 -55
  221. package/dist/components-v2/Table/components/TableErrorState.d.ts +0 -6
  222. package/dist/components-v2/Table/components/TableErrorState.js +0 -52
  223. package/dist/components-v2/Table/components/TableHeader.d.ts +0 -21
  224. package/dist/components-v2/Table/components/TableHeader.js +0 -94
  225. package/dist/components-v2/Table/components/TableRow.d.ts +0 -20
  226. package/dist/components-v2/Table/components/TableRow.js +0 -64
  227. package/dist/components-v2/Table/components/TableSearch.d.ts +0 -8
  228. package/dist/components-v2/Table/components/TableSearch.js +0 -47
  229. package/dist/components-v2/Table/filters/FilterChips.d.ts +0 -6
  230. package/dist/components-v2/Table/filters/FilterChips.js +0 -9
  231. package/dist/components-v2/Table/filters/LeftFilterPane.d.ts +0 -17
  232. package/dist/components-v2/Table/filters/LeftFilterPane.js +0 -105
  233. package/dist/components-v2/Table/filters/TableFilters.d.ts +0 -12
  234. package/dist/components-v2/Table/filters/TableFilters.js +0 -127
  235. package/dist/components-v2/Table/hooks/useColumnResize.d.ts +0 -15
  236. package/dist/components-v2/Table/hooks/useColumnResize.js +0 -104
  237. package/dist/components-v2/Table/hooks/useTable.d.ts +0 -58
  238. package/dist/components-v2/Table/hooks/useTable.js +0 -254
  239. package/dist/components-v2/Table/hooks/useTableKeyboard.d.ts +0 -25
  240. package/dist/components-v2/Table/hooks/useTableKeyboard.js +0 -112
  241. package/dist/components-v2/Table/hooks/useVirtualScroll.d.ts +0 -29
  242. package/dist/components-v2/Table/hooks/useVirtualScroll.js +0 -83
  243. package/dist/components-v2/Table/settings/ManageColumns.d.ts +0 -12
  244. package/dist/components-v2/Table/settings/ManageColumns.js +0 -59
  245. package/dist/components-v2/Table/settings/TableSettings.d.ts +0 -12
  246. package/dist/components-v2/Table/settings/TableSettings.js +0 -57
  247. package/dist/components-v2/Table/utils/filterUtils.d.ts +0 -7
  248. package/dist/components-v2/Table/utils/filterUtils.js +0 -149
  249. package/dist/components-v2/Table/utils/sortUtils.d.ts +0 -6
  250. package/dist/components-v2/Table/utils/sortUtils.js +0 -65
  251. package/dist/components-v2/Tag/Tag.d.ts +0 -15
  252. package/dist/components-v2/Tag/Tag.js +0 -87
  253. package/dist/components-v2/Timeline/Timeline.d.ts +0 -18
  254. package/dist/components-v2/Timeline/Timeline.js +0 -76
  255. package/dist/components-v2/Toaster/Toaster.d.ts +0 -61
  256. package/dist/components-v2/Toaster/Toaster.js +0 -63
  257. package/dist/components-v2/Toggle/Toggle.d.ts +0 -28
  258. package/dist/components-v2/Toggle/Toggle.js +0 -90
  259. package/dist/components-v2/ui/accordion.d.ts +0 -12
  260. package/dist/components-v2/ui/accordion.js +0 -104
  261. package/dist/components-v2/ui/alert.d.ts +0 -18
  262. package/dist/components-v2/ui/alert.js +0 -99
  263. package/dist/components-v2/ui/avatar.d.ts +0 -12
  264. package/dist/components-v2/ui/avatar.js +0 -80
  265. package/dist/components-v2/ui/badge.d.ts +0 -10
  266. package/dist/components-v2/ui/badge.js +0 -76
  267. package/dist/components-v2/ui/button.d.ts +0 -18
  268. package/dist/components-v2/ui/button.js +0 -97
  269. package/dist/components-v2/ui/checkbox.d.ts +0 -15
  270. package/dist/components-v2/ui/checkbox.js +0 -86
  271. package/dist/components-v2/ui/dialog.d.ts +0 -30
  272. package/dist/components-v2/ui/dialog.js +0 -115
  273. package/dist/components-v2/ui/dropdown-menu.d.ts +0 -26
  274. package/dist/components-v2/ui/dropdown-menu.js +0 -121
  275. package/dist/components-v2/ui/field.d.ts +0 -32
  276. package/dist/components-v2/ui/field.js +0 -62
  277. package/dist/components-v2/ui/form-field.d.ts +0 -25
  278. package/dist/components-v2/ui/form-field.js +0 -96
  279. package/dist/components-v2/ui/input.d.ts +0 -9
  280. package/dist/components-v2/ui/input.js +0 -73
  281. package/dist/components-v2/ui/label.d.ts +0 -10
  282. package/dist/components-v2/ui/label.js +0 -70
  283. package/dist/components-v2/ui/popover.d.ts +0 -9
  284. package/dist/components-v2/ui/popover.js +0 -60
  285. package/dist/components-v2/ui/progress.d.ts +0 -12
  286. package/dist/components-v2/ui/progress.js +0 -75
  287. package/dist/components-v2/ui/radio-group.d.ts +0 -17
  288. package/dist/components-v2/ui/radio-group.js +0 -91
  289. package/dist/components-v2/ui/select.d.ts +0 -24
  290. package/dist/components-v2/ui/select.js +0 -122
  291. package/dist/components-v2/ui/separator.d.ts +0 -5
  292. package/dist/components-v2/ui/separator.js +0 -55
  293. package/dist/components-v2/ui/skeleton.d.ts +0 -9
  294. package/dist/components-v2/ui/skeleton.js +0 -68
  295. package/dist/components-v2/ui/spinner.d.ts +0 -16
  296. package/dist/components-v2/ui/spinner.js +0 -64
  297. package/dist/components-v2/ui/switch.d.ts +0 -10
  298. package/dist/components-v2/ui/switch.js +0 -81
  299. package/dist/components-v2/ui/tabs.d.ts +0 -13
  300. package/dist/components-v2/ui/tabs.js +0 -95
  301. package/dist/components-v2/ui/textarea.d.ts +0 -10
  302. package/dist/components-v2/ui/textarea.js +0 -96
  303. package/dist/components-v2/ui/tooltip.d.ts +0 -17
  304. package/dist/components-v2/ui/tooltip.js +0 -75
  305. package/dist/lib/utils.d.ts +0 -2
  306. package/dist/lib/utils.js +0 -8
  307. package/dist/theme-v2/ThemeProvider.d.ts +0 -19
  308. package/dist/theme-v2/ThemeProvider.js +0 -149
  309. package/dist/theme-v2/dark.css +0 -47
  310. package/dist/theme-v2/tokens.css +0 -72
  311. /package/dist/Components/Table/{Components → components}/HeaderActions.d.ts +0 -0
  312. /package/dist/Components/Table/{Components → components}/HeaderActions.js +0 -0
  313. /package/dist/Components/Table/{Components → components}/Pagination.d.ts +0 -0
  314. /package/dist/Components/Table/{Components → components}/Pagination.js +0 -0
  315. /package/dist/Components/Table/{Components → components}/TableBody.d.ts +0 -0
  316. /package/dist/Components/Table/{Components → components}/TableBody.virtualize.test.d.ts +0 -0
  317. /package/dist/Components/Table/{Components → components}/TableBody.virtualize.test.js +0 -0
  318. /package/dist/Components/Table/{Components → components}/TableGroupRow.d.ts +0 -0
  319. /package/dist/Components/Table/{Components → components}/TableGroupRow.js +0 -0
  320. /package/dist/Components/Table/{Components → components}/TableHeader.d.ts +0 -0
  321. /package/dist/Components/Table/{Components → components}/TableLoading.d.ts +0 -0
  322. /package/dist/Components/Table/{Components → components}/TableLoading.js +0 -0
  323. /package/dist/Components/Table/{Components → components}/TableSearch.d.ts +0 -0
  324. /package/dist/Components/Table/{Components → components}/TableSearch.js +0 -0
@@ -1,148 +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.NavigationBar = NavigationBar;
37
- const React = __importStar(require("react"));
38
- const lucide_react_1 = require("lucide-react");
39
- const utils_1 = require("../../lib/utils");
40
- const ThemeProvider_1 = require("../../theme-v2/ThemeProvider");
41
- const avatar_1 = require("../ui/avatar");
42
- const button_1 = require("../ui/button");
43
- const dialog_1 = require("../ui/dialog");
44
- const dropdown_menu_1 = require("../ui/dropdown-menu");
45
- const input_1 = require("../ui/input");
46
- const Breadcrumbs_1 = require("../Breadcrumbs/Breadcrumbs");
47
- function NavigationBar({ logo, appName, onSidebarToggle, sidebarOpen, breadcrumb, pageTitle, backAction, actions, user, userMenuItems = [], onLogout, logoutLabel = "Sign out", notificationCount, notificationIcon, onNotificationClick, globalSearch, showThemeSwitcher = false, className, }) {
48
- var _a, _b, _c;
49
- const [searchOpen, setSearchOpen] = React.useState(false);
50
- const [searchQuery, setSearchQuery] = React.useState("");
51
- const submitSearch = (event) => {
52
- var _a;
53
- event === null || event === void 0 ? void 0 : event.preventDefault();
54
- (_a = globalSearch === null || globalSearch === void 0 ? void 0 : globalSearch.onSearch) === null || _a === void 0 ? void 0 : _a.call(globalSearch, searchQuery);
55
- };
56
- const NotificationIcon = notificationIcon !== null && notificationIcon !== void 0 ? notificationIcon : lucide_react_1.Bell;
57
- const showNotification = onNotificationClick !== undefined ||
58
- typeof notificationCount === "number";
59
- return (React.createElement("header", { role: "banner", className: (0, utils_1.cn)("sticky top-0 z-40 flex h-14 shrink-0 items-center gap-2 border-b border-border bg-background px-3", className) },
60
- onSidebarToggle && (React.createElement("button", { type: "button", "aria-label": sidebarOpen ? "Close sidebar" : "Open sidebar", "aria-expanded": sidebarOpen, onClick: onSidebarToggle, className: "inline-flex h-9 w-9 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 md:hidden" },
61
- React.createElement(lucide_react_1.Menu, { "aria-hidden": "true", className: "h-5 w-5" }))),
62
- (logo || appName) && (React.createElement("div", { className: "flex items-center gap-2 md:hidden" },
63
- logo ? (React.createElement("img", { src: logo, alt: "", className: "h-6 w-6 rounded-sm object-contain" })) : null,
64
- appName && (React.createElement("span", { className: "text-sm font-semibold text-foreground" }, appName)))),
65
- backAction && (React.createElement("button", { type: "button", onClick: backAction.onClick, "aria-label": (_a = backAction.label) !== null && _a !== void 0 ? _a : "Go back", className: "inline-flex items-center gap-1 rounded-md px-2 py-1 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" },
66
- React.createElement(lucide_react_1.ChevronLeft, { "aria-hidden": "true", className: "h-4 w-4" }),
67
- backAction.label && (React.createElement("span", { className: "hidden sm:inline" }, backAction.label)))),
68
- React.createElement("div", { className: "min-w-0 flex-1" }, breadcrumb && breadcrumb.length > 0 ? (React.createElement(Breadcrumbs_1.Breadcrumbs, { items: breadcrumb, maxItems: 4 })) : pageTitle ? (React.createElement("h1", { className: "truncate text-sm font-semibold text-foreground" }, pageTitle)) : null),
69
- React.createElement("nav", { "aria-label": "Global", className: "flex items-center gap-1" },
70
- globalSearch && (React.createElement("button", { type: "button", onClick: () => setSearchOpen(true), "aria-label": "Open search", className: "hidden h-9 items-center gap-2 rounded-md border border-input bg-background px-2.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 sm:inline-flex" },
71
- React.createElement(lucide_react_1.Search, { "aria-hidden": "true", className: "h-4 w-4" }),
72
- React.createElement("span", { className: "hidden md:inline" }, (_b = globalSearch.placeholder) !== null && _b !== void 0 ? _b : "Search…"),
73
- globalSearch.shortcut && (React.createElement("kbd", { className: "ml-1 rounded border border-border bg-muted px-1 text-[10px] font-medium text-muted-foreground" }, globalSearch.shortcut)))),
74
- globalSearch && (React.createElement("button", { type: "button", onClick: () => setSearchOpen(true), "aria-label": "Open search", className: "inline-flex h-9 w-9 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 sm:hidden" },
75
- React.createElement(lucide_react_1.Search, { "aria-hidden": "true", className: "h-5 w-5" }))),
76
- actions,
77
- showThemeSwitcher && React.createElement(ThemeSwitcher, null),
78
- showNotification && (React.createElement("button", { type: "button", onClick: onNotificationClick, "aria-label": typeof notificationCount === "number" && notificationCount > 0
79
- ? `Notifications (${notificationCount} unread)`
80
- : "Notifications", className: "relative inline-flex h-9 w-9 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" },
81
- React.createElement(NotificationIcon, { "aria-hidden": "true", className: "h-5 w-5" }),
82
- typeof notificationCount === "number" && notificationCount > 0 && (React.createElement("span", { "aria-hidden": "true", className: "absolute right-1 top-1 inline-flex min-w-[16px] items-center justify-center rounded-full bg-destructive px-1 text-[10px] font-semibold leading-none text-destructive-foreground" }, notificationCount > 99 ? "99+" : notificationCount)))),
83
- user && (React.createElement(UserMenu, { user: user, items: userMenuItems, onLogout: onLogout, logoutLabel: logoutLabel }))),
84
- globalSearch && (React.createElement(dialog_1.Dialog, { open: searchOpen, onOpenChange: setSearchOpen },
85
- React.createElement(dialog_1.DialogContent, { size: "lg", className: "top-[25%] gap-3" },
86
- React.createElement(dialog_1.DialogHeader, null,
87
- React.createElement(dialog_1.DialogTitle, null, "Search")),
88
- React.createElement("form", { onSubmit: submitSearch, className: "flex gap-2" },
89
- React.createElement(input_1.Input, { autoFocus: true, value: searchQuery, onChange: (event) => setSearchQuery(event.target.value), placeholder: (_c = globalSearch.placeholder) !== null && _c !== void 0 ? _c : "Search…", size: "lg" }),
90
- React.createElement(button_1.Button, { type: "submit", size: "lg" }, "Go")))))));
91
- }
92
- function UserMenu({ user, items, onLogout, logoutLabel, }) {
93
- var _a;
94
- const initials = (_a = user.initials) !== null && _a !== void 0 ? _a : user.name
95
- .split(/\s+/)
96
- .map((part) => part[0])
97
- .filter(Boolean)
98
- .slice(0, 2)
99
- .join("")
100
- .toUpperCase();
101
- return (React.createElement(dropdown_menu_1.DropdownMenu, null,
102
- React.createElement(dropdown_menu_1.DropdownMenuTrigger, { asChild: true },
103
- React.createElement("button", { type: "button", "aria-label": `Account menu for ${user.name}`, className: "ml-1 rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background" },
104
- React.createElement(avatar_1.Avatar, { size: "sm" },
105
- user.avatarUrl && (React.createElement(avatar_1.AvatarImage, { src: user.avatarUrl, alt: user.name })),
106
- React.createElement(avatar_1.AvatarFallback, null, initials || "?")))),
107
- React.createElement(dropdown_menu_1.DropdownMenuContent, { align: "end", className: "w-56" },
108
- React.createElement("div", { className: "px-2 py-1.5" },
109
- React.createElement("p", { className: "truncate text-sm font-medium text-foreground" }, user.name),
110
- user.email && (React.createElement("p", { className: "truncate text-xs text-muted-foreground" }, user.email))),
111
- items.length > 0 && React.createElement(dropdown_menu_1.DropdownMenuSeparator, null),
112
- items.map((item, index) => (React.createElement(React.Fragment, { key: `${item.label}-${index}` },
113
- item.separator && React.createElement(dropdown_menu_1.DropdownMenuSeparator, null),
114
- item.href ? (React.createElement(dropdown_menu_1.DropdownMenuItem, { asChild: true },
115
- React.createElement("a", { href: item.href, className: (0, utils_1.cn)(item.variant === "destructive" &&
116
- "text-destructive focus:text-destructive") },
117
- item.icon,
118
- item.label))) : (React.createElement(dropdown_menu_1.DropdownMenuItem, { onClick: item.onClick, className: (0, utils_1.cn)(item.variant === "destructive" &&
119
- "text-destructive focus:text-destructive") },
120
- item.icon,
121
- item.label))))),
122
- onLogout && (React.createElement(React.Fragment, null,
123
- React.createElement(dropdown_menu_1.DropdownMenuSeparator, null),
124
- React.createElement(dropdown_menu_1.DropdownMenuItem, { onClick: onLogout, className: "text-destructive focus:text-destructive" },
125
- React.createElement(lucide_react_1.LogOut, { "aria-hidden": "true", className: "h-4 w-4" }),
126
- logoutLabel))))));
127
- }
128
- function ThemeSwitcher() {
129
- const { mode, setMode } = (0, ThemeProvider_1.useTheme)();
130
- const Icon = mode === "dark" ? lucide_react_1.Moon : mode === "light" ? lucide_react_1.Sun : lucide_react_1.Monitor;
131
- return (React.createElement(dropdown_menu_1.DropdownMenu, null,
132
- React.createElement(dropdown_menu_1.DropdownMenuTrigger, { asChild: true },
133
- React.createElement("button", { type: "button", "aria-label": "Change theme", className: "inline-flex h-9 w-9 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" },
134
- React.createElement(Icon, { "aria-hidden": "true", className: "h-5 w-5" }))),
135
- React.createElement(dropdown_menu_1.DropdownMenuContent, { align: "end", className: "w-40" },
136
- React.createElement(dropdown_menu_1.DropdownMenuLabel, null, "Theme"),
137
- React.createElement(dropdown_menu_1.DropdownMenuSeparator, null),
138
- React.createElement(dropdown_menu_1.DropdownMenuRadioGroup, { value: mode, onValueChange: (value) => setMode(value) },
139
- React.createElement(dropdown_menu_1.DropdownMenuRadioItem, { value: "light" },
140
- React.createElement(lucide_react_1.Sun, { "aria-hidden": "true", className: "h-4 w-4" }),
141
- "Light"),
142
- React.createElement(dropdown_menu_1.DropdownMenuRadioItem, { value: "dark" },
143
- React.createElement(lucide_react_1.Moon, { "aria-hidden": "true", className: "h-4 w-4" }),
144
- "Dark"),
145
- React.createElement(dropdown_menu_1.DropdownMenuRadioItem, { value: "system" },
146
- React.createElement(lucide_react_1.Monitor, { "aria-hidden": "true", className: "h-4 w-4" }),
147
- "System")))));
148
- }
@@ -1,22 +0,0 @@
1
- import * as React from "react";
2
- export type NotificationType = "info" | "success" | "warning" | "error";
3
- export interface NotificationProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
4
- title: React.ReactNode;
5
- description?: React.ReactNode;
6
- /** Absolute timestamp, ISO string, or pre-formatted string. */
7
- timestamp?: Date | string;
8
- /** When false, the item is rendered with the "unread" indicator. */
9
- read?: boolean;
10
- onRead?: () => void;
11
- onDismiss?: () => void;
12
- type?: NotificationType;
13
- /** Inline avatar (URL or initials). */
14
- avatar?: {
15
- src?: string;
16
- initials?: string;
17
- alt?: string;
18
- };
19
- /** Action row below the description. */
20
- actions?: React.ReactNode;
21
- }
22
- export declare const Notification: React.ForwardRefExoticComponent<NotificationProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,113 +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.Notification = void 0;
48
- const React = __importStar(require("react"));
49
- const lucide_react_1 = require("lucide-react");
50
- const utils_1 = require("../../lib/utils");
51
- const avatar_1 = require("../ui/avatar");
52
- const TYPE_STYLES = {
53
- info: {
54
- border: "border-l-primary",
55
- bg: "bg-primary/5",
56
- icon: React.createElement(lucide_react_1.Info, { "aria-hidden": "true", className: "h-4 w-4 text-primary" }),
57
- },
58
- success: {
59
- border: "border-l-success",
60
- bg: "bg-success/5",
61
- icon: React.createElement(lucide_react_1.CheckCircle2, { "aria-hidden": "true", className: "h-4 w-4 text-success" }),
62
- },
63
- warning: {
64
- border: "border-l-warning",
65
- bg: "bg-warning/5",
66
- icon: React.createElement(lucide_react_1.AlertTriangle, { "aria-hidden": "true", className: "h-4 w-4 text-warning" }),
67
- },
68
- error: {
69
- border: "border-l-destructive",
70
- bg: "bg-destructive/5",
71
- icon: React.createElement(lucide_react_1.AlertCircle, { "aria-hidden": "true", className: "h-4 w-4 text-destructive" }),
72
- },
73
- };
74
- function formatTimestamp(value) {
75
- const date = value instanceof Date ? value : new Date(value);
76
- if (Number.isNaN(date.getTime()))
77
- return String(value);
78
- return date.toLocaleString(undefined, {
79
- month: "short",
80
- day: "numeric",
81
- hour: "numeric",
82
- minute: "2-digit",
83
- });
84
- }
85
- exports.Notification = React.forwardRef((_a, ref) => {
86
- var _b, _c;
87
- var { className, title, description, timestamp, read = false, onRead, onDismiss, type = "info", avatar, actions, onClick } = _a, rest = __rest(_a, ["className", "title", "description", "timestamp", "read", "onRead", "onDismiss", "type", "avatar", "actions", "onClick"]);
88
- const styles = TYPE_STYLES[type];
89
- const handleClick = (event) => {
90
- if (!read)
91
- onRead === null || onRead === void 0 ? void 0 : onRead();
92
- onClick === null || onClick === void 0 ? void 0 : onClick(event);
93
- };
94
- return (React.createElement("div", Object.assign({ ref: ref, role: "article", "aria-live": !read ? "polite" : undefined, onClick: handleClick, className: (0, utils_1.cn)("relative flex gap-3 border-l-2 p-3 transition-colors", "hover:bg-accent/40", read ? "border-l-transparent" : (0, utils_1.cn)(styles.border, styles.bg), onClick && "cursor-pointer", className) }, rest),
95
- avatar ? (React.createElement(avatar_1.Avatar, { size: "sm" },
96
- avatar.src && (React.createElement(avatar_1.AvatarImage, { src: avatar.src, alt: (_b = avatar.alt) !== null && _b !== void 0 ? _b : "" })),
97
- React.createElement(avatar_1.AvatarFallback, null, (_c = avatar.initials) !== null && _c !== void 0 ? _c : "?"))) : (React.createElement("span", { className: "mt-0.5 inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-card" }, styles.icon)),
98
- React.createElement("div", { className: "min-w-0 flex-1" },
99
- React.createElement("div", { className: "flex items-start justify-between gap-2" },
100
- React.createElement("p", { className: (0, utils_1.cn)("text-sm", read
101
- ? "font-medium text-muted-foreground"
102
- : "font-semibold text-foreground") }, title),
103
- timestamp && (React.createElement("time", { className: "shrink-0 text-[11px] text-muted-foreground" }, formatTimestamp(timestamp)))),
104
- description && (React.createElement("p", { className: "mt-0.5 text-sm text-muted-foreground" }, description)),
105
- actions && React.createElement("div", { className: "mt-2 flex gap-2" }, actions)),
106
- !read && (React.createElement("span", { "aria-label": "Unread", className: "absolute right-3 top-3 h-2 w-2 rounded-full bg-primary" })),
107
- onDismiss && (React.createElement("button", { type: "button", "aria-label": "Dismiss notification", onClick: (event) => {
108
- event.stopPropagation();
109
- onDismiss();
110
- }, className: "absolute bottom-2 right-2 rounded-sm text-muted-foreground opacity-0 transition-opacity hover:text-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring group-hover:opacity-100" },
111
- React.createElement(lucide_react_1.X, { "aria-hidden": "true", className: "h-3.5 w-3.5" })))));
112
- });
113
- exports.Notification.displayName = "Notification";
@@ -1,37 +0,0 @@
1
- import * as React from "react";
2
- export type NumberInputSize = "sm" | "md" | "lg";
3
- export interface NumberInputProps {
4
- id?: string;
5
- name?: string;
6
- label?: React.ReactNode;
7
- placeholder?: string;
8
- value?: number | null;
9
- defaultValue?: number | null;
10
- onChange?: (value: number | null) => void;
11
- onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
12
- onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
13
- min?: number;
14
- max?: number;
15
- step?: number;
16
- /** Decimal places — applied on clamp/blur. */
17
- precision?: number;
18
- /** Custom display formatter (e.g. currency). Called when input isn't focused. */
19
- format?: (value: number) => string;
20
- /** Inverse of format. Receives the raw input string. Return NaN to reject. */
21
- parse?: (raw: string) => number;
22
- helperText?: React.ReactNode;
23
- error?: boolean;
24
- errorMessage?: React.ReactNode;
25
- isInformation?: boolean;
26
- informationMessage?: React.ReactNode;
27
- isDisabled?: boolean;
28
- isReadOnly?: boolean;
29
- isRequired?: boolean;
30
- size?: NumberInputSize;
31
- width?: string;
32
- className?: string;
33
- autoFocus?: boolean;
34
- /** Hide the +/- stepper buttons. */
35
- hideSteppers?: boolean;
36
- }
37
- export declare const NumberInput: React.ForwardRefExoticComponent<NumberInputProps & React.RefAttributes<HTMLInputElement>>;
@@ -1,210 +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.NumberInput = void 0;
37
- const React = __importStar(require("react"));
38
- const lucide_react_1 = require("lucide-react");
39
- const utils_1 = require("../../lib/utils");
40
- const field_1 = require("../ui/field");
41
- const input_1 = require("../ui/input");
42
- const form_field_1 = require("../ui/form-field");
43
- const STEPPER_SIZE = {
44
- sm: "w-5",
45
- md: "w-6",
46
- lg: "w-7",
47
- };
48
- const STEPPER_ICON = {
49
- sm: "h-2.5 w-2.5",
50
- md: "h-3 w-3",
51
- lg: "h-3.5 w-3.5",
52
- };
53
- function clamp(value, min, max) {
54
- if (typeof min === "number" && value < min)
55
- return min;
56
- if (typeof max === "number" && value > max)
57
- return max;
58
- return value;
59
- }
60
- function roundTo(value, precision) {
61
- const factor = 10 ** precision;
62
- return Math.round(value * factor) / factor;
63
- }
64
- function defaultParse(raw) {
65
- if (raw.trim() === "")
66
- return NaN;
67
- const cleaned = raw.replace(/[^\d.\-+eE]/g, "");
68
- return parseFloat(cleaned);
69
- }
70
- function defaultFormat(value, precision) {
71
- if (Number.isNaN(value))
72
- return "";
73
- if (typeof precision === "number")
74
- return value.toFixed(precision);
75
- return String(value);
76
- }
77
- exports.NumberInput = React.forwardRef((props, ref) => {
78
- const { id, label, placeholder, value, defaultValue, onChange, onBlur, onFocus, min, max, step = 1, precision, format, parse = defaultParse, helperText, error = false, errorMessage, isInformation, informationMessage, isDisabled, isReadOnly, isRequired, size = "md", width, className, autoFocus, hideSteppers = false, name, } = props;
79
- return (React.createElement(field_1.Field, { id: id, label: label, isRequired: isRequired, isInformation: isInformation, informationMessage: informationMessage, helperText: helperText, error: error, errorMessage: errorMessage, width: width },
80
- React.createElement(NumberInputControl, { ref: ref, name: name, placeholder: placeholder, value: value, defaultValue: defaultValue, onChange: onChange, onBlur: onBlur, onFocus: onFocus, min: min, max: max, step: step, precision: precision, format: format, parse: parse, isDisabled: isDisabled, isReadOnly: isReadOnly, error: error, size: size, className: className, autoFocus: autoFocus, hideSteppers: hideSteppers })));
81
- });
82
- exports.NumberInput.displayName = "NumberInput";
83
- const NumberInputControl = React.forwardRef(({ placeholder, value, defaultValue, onChange, onBlur, onFocus, min, max, step = 1, precision, format, parse = defaultParse, isDisabled, isReadOnly, error = false, size = "md", className, autoFocus, hideSteppers = false, name, }, ref) => {
84
- const field = (0, form_field_1.useFormField)();
85
- const [draft, setDraft] = React.useState(() => {
86
- const initial = typeof value === "number"
87
- ? value
88
- : typeof defaultValue === "number"
89
- ? defaultValue
90
- : null;
91
- return initial === null ? "" : (format
92
- ? format(initial)
93
- : defaultFormat(initial, precision));
94
- });
95
- const [focused, setFocused] = React.useState(false);
96
- React.useEffect(() => {
97
- if (focused)
98
- return;
99
- if (value === undefined)
100
- return;
101
- setDraft(value === null
102
- ? ""
103
- : format
104
- ? format(value)
105
- : defaultFormat(value, precision));
106
- }, [value, focused, format, precision]);
107
- const innerRef = React.useRef(null);
108
- const setRefs = React.useCallback((node) => {
109
- innerRef.current = node;
110
- if (typeof ref === "function")
111
- ref(node);
112
- else if (ref)
113
- ref.current =
114
- node;
115
- }, [ref]);
116
- const commit = (next) => {
117
- const formatted = next === null
118
- ? ""
119
- : format
120
- ? format(next)
121
- : defaultFormat(next, precision);
122
- setDraft(formatted);
123
- onChange === null || onChange === void 0 ? void 0 : onChange(next);
124
- };
125
- const adjustBy = (delta) => {
126
- if (isDisabled || isReadOnly)
127
- return;
128
- const parsed = parse(draft);
129
- const base = Number.isNaN(parsed) ? min !== null && min !== void 0 ? min : 0 : parsed;
130
- let next = base + delta * step;
131
- if (typeof precision === "number")
132
- next = roundTo(next, precision);
133
- next = clamp(next, min, max);
134
- commit(next);
135
- };
136
- const handleChange = (event) => {
137
- setDraft(event.target.value);
138
- const parsed = parse(event.target.value);
139
- if (Number.isNaN(parsed)) {
140
- if (event.target.value === "")
141
- onChange === null || onChange === void 0 ? void 0 : onChange(null);
142
- }
143
- else {
144
- onChange === null || onChange === void 0 ? void 0 : onChange(parsed);
145
- }
146
- };
147
- const handleBlur = (event) => {
148
- setFocused(false);
149
- const parsed = parse(draft);
150
- if (Number.isNaN(parsed)) {
151
- if (draft.trim() === "")
152
- commit(null);
153
- else
154
- commit(value !== null && value !== void 0 ? value : null);
155
- }
156
- else {
157
- let next = parsed;
158
- if (typeof precision === "number")
159
- next = roundTo(next, precision);
160
- next = clamp(next, min, max);
161
- commit(next);
162
- }
163
- onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
164
- };
165
- const handleFocus = (event) => {
166
- setFocused(true);
167
- const parsed = parse(draft);
168
- if (!Number.isNaN(parsed)) {
169
- setDraft(defaultFormat(parsed, precision));
170
- }
171
- onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
172
- };
173
- const handleKeyDown = (event) => {
174
- if (event.key === "ArrowUp") {
175
- event.preventDefault();
176
- adjustBy(event.shiftKey ? 10 : 1);
177
- }
178
- else if (event.key === "ArrowDown") {
179
- event.preventDefault();
180
- adjustBy(event.shiftKey ? -10 : -1);
181
- }
182
- };
183
- const atMin = typeof min === "number" && parseSafe(draft) <= min;
184
- const atMax = typeof max === "number" && parseSafe(draft) >= max;
185
- return (React.createElement("div", { className: (0, utils_1.cn)("relative", className) },
186
- React.createElement(input_1.Input, { ref: setRefs, name: name, type: "text", inputMode: "decimal", placeholder: placeholder, value: draft, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, onKeyDown: handleKeyDown, disabled: isDisabled, readOnly: isReadOnly, autoFocus: autoFocus, size: size, "aria-invalid": error || field.hasError || undefined, role: "spinbutton", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": typeof value === "number" ? value : undefined, className: (0, utils_1.cn)(!hideSteppers && stepperPadding(size), "tabular-nums", error &&
187
- "border-destructive bg-destructive/5 focus-visible:ring-destructive") }),
188
- !hideSteppers && (React.createElement("div", { className: (0, utils_1.cn)("pointer-events-none absolute inset-y-0 right-0 flex flex-col border-l border-input", STEPPER_SIZE[size]), "aria-hidden": "true" },
189
- React.createElement(StepperButton, { label: "Increment", disabled: isDisabled || isReadOnly || atMax, onClick: () => adjustBy(1), size: size, position: "top" },
190
- React.createElement(lucide_react_1.ChevronUp, { className: STEPPER_ICON[size] })),
191
- React.createElement(StepperButton, { label: "Decrement", disabled: isDisabled || isReadOnly || atMin, onClick: () => adjustBy(-1), size: size, position: "bottom" },
192
- React.createElement(lucide_react_1.ChevronDown, { className: STEPPER_ICON[size] }))))));
193
- });
194
- NumberInputControl.displayName = "NumberInputControl";
195
- function parseSafe(raw) {
196
- const n = parseFloat(raw);
197
- return Number.isNaN(n) ? -Infinity : n;
198
- }
199
- function stepperPadding(size) {
200
- if (size === "sm")
201
- return "pr-7";
202
- if (size === "lg")
203
- return "pr-9";
204
- return "pr-8";
205
- }
206
- function StepperButton({ label, disabled, onClick, size, position, children, }) {
207
- return (React.createElement("button", { type: "button", tabIndex: -1, "aria-label": label, disabled: disabled, onMouseDown: (event) => {
208
- event.preventDefault();
209
- }, onClick: onClick, className: (0, utils_1.cn)("pointer-events-auto flex flex-1 items-center justify-center text-muted-foreground transition-colors", "hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50", position === "top" ? "rounded-tr-md" : "rounded-br-md", size === "sm" ? "min-h-0" : "min-h-0") }, children));
210
- }
@@ -1,26 +0,0 @@
1
- import * as React from "react";
2
- export type PinInputSize = "sm" | "md" | "lg";
3
- export type PinInputType = "number" | "alphanumeric";
4
- export interface PinInputProps {
5
- length?: number;
6
- type?: PinInputType;
7
- value?: string;
8
- defaultValue?: string;
9
- onChange?: (value: string) => void;
10
- /** Fires when all boxes are filled. */
11
- onComplete?: (value: string) => void;
12
- autoFocus?: boolean;
13
- /** Replace the visible character with • (e.g. for OTP secrets). */
14
- mask?: boolean;
15
- label?: React.ReactNode;
16
- helperText?: React.ReactNode;
17
- error?: boolean;
18
- errorMessage?: React.ReactNode;
19
- isRequired?: boolean;
20
- size?: PinInputSize;
21
- name?: string;
22
- isDisabled?: boolean;
23
- className?: string;
24
- id?: string;
25
- }
26
- export declare const PinInput: React.ForwardRefExoticComponent<PinInputProps & React.RefAttributes<HTMLDivElement>>;