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

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 (312) hide show
  1. package/.claude/settings.local.json +3 -1
  2. package/dist/Components/Accordion/Accordion.js +26 -5
  3. package/dist/Components/NavigationBar/NavigationBar.js +4 -4
  4. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.d.ts +1 -1
  5. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewer.js +42 -24
  6. package/dist/Components/ProfilePhotoViewer/ProfilePhotoViewerProps.d.ts +2 -0
  7. package/dist/Components/Table/{Components → components}/TableHeader.js +5 -9
  8. package/dist/Components/Timeline/Timeline.d.ts +1 -1
  9. package/dist/Components/Timeline/Timeline.js +145 -78
  10. package/dist/Components/Toaster/Toaster.js +40 -20
  11. package/package.json +1 -1
  12. package/dist/App.d.ts +0 -4
  13. package/dist/App.js +0 -131
  14. package/dist/Components/Table/CompactSelect.d.ts +0 -15
  15. package/dist/Components/Table/CompactSelect.js +0 -69
  16. package/dist/Components/Table/Components/ActiveFilters.d.ts +0 -9
  17. package/dist/Components/Table/Components/ActiveFilters.js +0 -132
  18. package/dist/Components/Table/Components/TableFilters.d.ts +0 -7
  19. package/dist/Components/Table/Components/TableFilters.js +0 -89
  20. package/dist/Components/Table/Components/useDebounce.d.ts +0 -2
  21. package/dist/Components/Table/Components/useDebounce.js +0 -28
  22. package/dist/Components/Table/Components/useTable.d.ts +0 -47
  23. package/dist/Components/Table/Components/useTable.js +0 -219
  24. package/dist/Components/Table/LeftFilterPane.d.ts +0 -36
  25. package/dist/Components/Table/LeftFilterPane.js +0 -273
  26. package/dist/Components/Table/SelectOperationControls.d.ts +0 -8
  27. package/dist/Components/Table/SelectOperationControls.js +0 -15
  28. package/dist/Components/Table/TableSettings/ManageColumns.d.ts +0 -12
  29. package/dist/Components/Table/TableSettings/ManageColumns.js +0 -166
  30. package/dist/Components/Table/TableSettings/ManageColumns.test.d.ts +0 -1
  31. package/dist/Components/Table/TableSettings/ManageColumns.test.js +0 -146
  32. package/dist/Components/Table/TableSettings/TableFilters.d.ts +0 -10
  33. package/dist/Components/Table/TableSettings/TableFilters.js +0 -69
  34. package/dist/Components/Table/TableSettings/TableFilters.test.d.ts +0 -1
  35. package/dist/Components/Table/TableSettings/TableFilters.test.js +0 -109
  36. package/dist/Components/Table/TableSettings/TableSettings.d.ts +0 -8
  37. package/dist/Components/Table/TableSettings/TableSettings.js +0 -141
  38. package/dist/Components/Table/TableToDo.d.ts +0 -2
  39. package/dist/Components/Table/TableToDo.js +0 -291
  40. package/dist/Components/Table/TextOperationControls.d.ts +0 -12
  41. package/dist/Components/Table/TextOperationControls.js +0 -29
  42. package/dist/Layout.d.ts +0 -3
  43. package/dist/Layout.js +0 -292
  44. package/dist/Pages/TInput.d.ts +0 -3
  45. package/dist/Pages/TInput.js +0 -56
  46. package/dist/Pages/accordion.d.ts +0 -3
  47. package/dist/Pages/accordion.js +0 -42
  48. package/dist/Pages/alertdialog.d.ts +0 -3
  49. package/dist/Pages/alertdialog.js +0 -54
  50. package/dist/Pages/button.d.ts +0 -3
  51. package/dist/Pages/button.js +0 -46
  52. package/dist/Pages/card.d.ts +0 -3
  53. package/dist/Pages/card.js +0 -117
  54. package/dist/Pages/chart.d.ts +0 -4
  55. package/dist/Pages/chart.js +0 -40
  56. package/dist/Pages/checkbox.d.ts +0 -3
  57. package/dist/Pages/checkbox.js +0 -12
  58. package/dist/Pages/contactForm.d.ts +0 -3
  59. package/dist/Pages/contactForm.js +0 -16
  60. package/dist/Pages/datePick.d.ts +0 -3
  61. package/dist/Pages/datePick.js +0 -88
  62. package/dist/Pages/drawer.d.ts +0 -3
  63. package/dist/Pages/drawer.js +0 -58
  64. package/dist/Pages/dropdown.d.ts +0 -3
  65. package/dist/Pages/dropdown.js +0 -24
  66. package/dist/Pages/editor.d.ts +0 -3
  67. package/dist/Pages/editor.js +0 -14
  68. package/dist/Pages/feedback.d.ts +0 -2
  69. package/dist/Pages/feedback.js +0 -15
  70. package/dist/Pages/fileUpload.d.ts +0 -2
  71. package/dist/Pages/fileUpload.js +0 -82
  72. package/dist/Pages/input.d.ts +0 -3
  73. package/dist/Pages/input.js +0 -92
  74. package/dist/Pages/kanbanboard.d.ts +0 -3
  75. package/dist/Pages/kanbanboard.js +0 -224
  76. package/dist/Pages/modal.d.ts +0 -3
  77. package/dist/Pages/modal.js +0 -65
  78. package/dist/Pages/multiSelect.d.ts +0 -3
  79. package/dist/Pages/multiSelect.js +0 -55
  80. package/dist/Pages/noteArea.d.ts +0 -3
  81. package/dist/Pages/noteArea.js +0 -59
  82. package/dist/Pages/notification.d.ts +0 -3
  83. package/dist/Pages/notification.js +0 -25
  84. package/dist/Pages/numberInput.d.ts +0 -3
  85. package/dist/Pages/numberInput.js +0 -49
  86. package/dist/Pages/photoViewer.d.ts +0 -3
  87. package/dist/Pages/photoViewer.js +0 -12
  88. package/dist/Pages/pinInputs.d.ts +0 -3
  89. package/dist/Pages/pinInputs.js +0 -12
  90. package/dist/Pages/productCaard.d.ts +0 -3
  91. package/dist/Pages/productCaard.js +0 -311
  92. package/dist/Pages/productDetailCard.d.ts +0 -3
  93. package/dist/Pages/productDetailCard.js +0 -78
  94. package/dist/Pages/productFilter.d.ts +0 -3
  95. package/dist/Pages/productFilter.js +0 -202
  96. package/dist/Pages/progressbar.d.ts +0 -3
  97. package/dist/Pages/progressbar.js +0 -12
  98. package/dist/Pages/radioButton.d.ts +0 -3
  99. package/dist/Pages/radioButton.js +0 -54
  100. package/dist/Pages/search.d.ts +0 -3
  101. package/dist/Pages/search.js +0 -54
  102. package/dist/Pages/searchSelect.d.ts +0 -3
  103. package/dist/Pages/searchSelect.js +0 -133
  104. package/dist/Pages/select.d.ts +0 -3
  105. package/dist/Pages/select.js +0 -53
  106. package/dist/Pages/selectSearch.d.ts +0 -3
  107. package/dist/Pages/selectSearch.js +0 -103
  108. package/dist/Pages/skeleton.d.ts +0 -3
  109. package/dist/Pages/skeleton.js +0 -22
  110. package/dist/Pages/switch.d.ts +0 -3
  111. package/dist/Pages/switch.js +0 -50
  112. package/dist/Pages/table.d.ts +0 -3
  113. package/dist/Pages/table.js +0 -174
  114. package/dist/Pages/textArea.d.ts +0 -3
  115. package/dist/Pages/textArea.js +0 -15
  116. package/dist/Pages/timeline.d.ts +0 -3
  117. package/dist/Pages/timeline.js +0 -74
  118. package/dist/Pages/tooltip.d.ts +0 -3
  119. package/dist/Pages/tooltip.js +0 -12
  120. package/dist/Pages/toster.d.ts +0 -3
  121. package/dist/Pages/toster.js +0 -68
  122. package/dist/Pages/verifyEmail.d.ts +0 -3
  123. package/dist/Pages/verifyEmail.js +0 -18
  124. package/dist/Theme/Dark/palette.d.ts +0 -370
  125. package/dist/Theme/Dark/palette.js +0 -372
  126. package/dist/bootstrap.d.ts +0 -1
  127. package/dist/bootstrap.js +0 -14
  128. package/dist/components-v2/AlertDialog/AlertDialog.d.ts +0 -23
  129. package/dist/components-v2/AlertDialog/AlertDialog.js +0 -98
  130. package/dist/components-v2/Breadcrumbs/Breadcrumbs.d.ts +0 -14
  131. package/dist/components-v2/Breadcrumbs/Breadcrumbs.js +0 -66
  132. package/dist/components-v2/Charts/AreaChart.d.ts +0 -23
  133. package/dist/components-v2/Charts/AreaChart.js +0 -63
  134. package/dist/components-v2/Charts/BarChart.d.ts +0 -25
  135. package/dist/components-v2/Charts/BarChart.js +0 -57
  136. package/dist/components-v2/Charts/LineChart.d.ts +0 -23
  137. package/dist/components-v2/Charts/LineChart.js +0 -55
  138. package/dist/components-v2/Charts/PieChart.d.ts +0 -15
  139. package/dist/components-v2/Charts/PieChart.js +0 -54
  140. package/dist/components-v2/Charts/PolarChart.d.ts +0 -14
  141. package/dist/components-v2/Charts/PolarChart.js +0 -54
  142. package/dist/components-v2/Charts/chartOptions.d.ts +0 -7
  143. package/dist/components-v2/Charts/chartOptions.js +0 -41
  144. package/dist/components-v2/Charts/useChartTheme.d.ts +0 -22
  145. package/dist/components-v2/Charts/useChartTheme.js +0 -106
  146. package/dist/components-v2/ContactForm/ContactForm.d.ts +0 -25
  147. package/dist/components-v2/ContactForm/ContactForm.js +0 -116
  148. package/dist/components-v2/DatePicker/Calendar.d.ts +0 -19
  149. package/dist/components-v2/DatePicker/Calendar.js +0 -212
  150. package/dist/components-v2/DatePicker/DatePicker.d.ts +0 -46
  151. package/dist/components-v2/DatePicker/DatePicker.js +0 -189
  152. package/dist/components-v2/DatePicker/TimePicker.d.ts +0 -12
  153. package/dist/components-v2/DatePicker/TimePicker.js +0 -105
  154. package/dist/components-v2/DatePicker/utils.d.ts +0 -31
  155. package/dist/components-v2/DatePicker/utils.js +0 -109
  156. package/dist/components-v2/Drawer/Drawer.d.ts +0 -27
  157. package/dist/components-v2/Drawer/Drawer.js +0 -132
  158. package/dist/components-v2/FeedbackForm/FeedbackForm.d.ts +0 -26
  159. package/dist/components-v2/FeedbackForm/FeedbackForm.js +0 -112
  160. package/dist/components-v2/FileUploader/FileUploader.d.ts +0 -28
  161. package/dist/components-v2/FileUploader/FileUploader.js +0 -127
  162. package/dist/components-v2/Input/TextInput.d.ts +0 -41
  163. package/dist/components-v2/Input/TextInput.js +0 -169
  164. package/dist/components-v2/KanbanBoard/KanbanBoard.d.ts +0 -39
  165. package/dist/components-v2/KanbanBoard/KanbanBoard.js +0 -101
  166. package/dist/components-v2/Layout/AppLayout.d.ts +0 -22
  167. package/dist/components-v2/Layout/AppLayout.js +0 -53
  168. package/dist/components-v2/Loading/Loading.d.ts +0 -19
  169. package/dist/components-v2/Loading/Loading.js +0 -55
  170. package/dist/components-v2/Modal/Modal.d.ts +0 -30
  171. package/dist/components-v2/Modal/Modal.js +0 -82
  172. package/dist/components-v2/NavigationBar/NavigationBar.d.ts +0 -47
  173. package/dist/components-v2/NavigationBar/NavigationBar.js +0 -148
  174. package/dist/components-v2/Notification/Notification.d.ts +0 -22
  175. package/dist/components-v2/Notification/Notification.js +0 -113
  176. package/dist/components-v2/NumberInput/NumberInput.d.ts +0 -37
  177. package/dist/components-v2/NumberInput/NumberInput.js +0 -210
  178. package/dist/components-v2/PinInput/PinInput.d.ts +0 -26
  179. package/dist/components-v2/PinInput/PinInput.js +0 -138
  180. package/dist/components-v2/ProfilePhotoViewer/ProfilePhotoViewer.d.ts +0 -18
  181. package/dist/components-v2/ProfilePhotoViewer/ProfilePhotoViewer.js +0 -91
  182. package/dist/components-v2/Select/Select.d.ts +0 -41
  183. package/dist/components-v2/Select/Select.js +0 -284
  184. package/dist/components-v2/Sidebar/Sidebar.d.ts +0 -41
  185. package/dist/components-v2/Sidebar/Sidebar.js +0 -182
  186. package/dist/components-v2/Slider/Slider.d.ts +0 -18
  187. package/dist/components-v2/Slider/Slider.js +0 -101
  188. package/dist/components-v2/Table/Table.d.ts +0 -7
  189. package/dist/components-v2/Table/Table.js +0 -172
  190. package/dist/components-v2/Table/TableProps.d.ts +0 -139
  191. package/dist/components-v2/Table/TableProps.js +0 -9
  192. package/dist/components-v2/Table/components/ActiveFilters.d.ts +0 -10
  193. package/dist/components-v2/Table/components/ActiveFilters.js +0 -70
  194. package/dist/components-v2/Table/components/BulkActionBar.d.ts +0 -11
  195. package/dist/components-v2/Table/components/BulkActionBar.js +0 -92
  196. package/dist/components-v2/Table/components/ColumnResizeHandle.d.ts +0 -7
  197. package/dist/components-v2/Table/components/ColumnResizeHandle.js +0 -41
  198. package/dist/components-v2/Table/components/Pagination.d.ts +0 -11
  199. package/dist/components-v2/Table/components/Pagination.js +0 -92
  200. package/dist/components-v2/Table/components/TableBody.d.ts +0 -23
  201. package/dist/components-v2/Table/components/TableBody.js +0 -69
  202. package/dist/components-v2/Table/components/TableCell.d.ts +0 -14
  203. package/dist/components-v2/Table/components/TableCell.js +0 -63
  204. package/dist/components-v2/Table/components/TableEmptyState.d.ts +0 -12
  205. package/dist/components-v2/Table/components/TableEmptyState.js +0 -55
  206. package/dist/components-v2/Table/components/TableErrorState.d.ts +0 -6
  207. package/dist/components-v2/Table/components/TableErrorState.js +0 -52
  208. package/dist/components-v2/Table/components/TableHeader.d.ts +0 -21
  209. package/dist/components-v2/Table/components/TableHeader.js +0 -94
  210. package/dist/components-v2/Table/components/TableRow.d.ts +0 -20
  211. package/dist/components-v2/Table/components/TableRow.js +0 -64
  212. package/dist/components-v2/Table/components/TableSearch.d.ts +0 -8
  213. package/dist/components-v2/Table/components/TableSearch.js +0 -47
  214. package/dist/components-v2/Table/filters/FilterChips.d.ts +0 -6
  215. package/dist/components-v2/Table/filters/FilterChips.js +0 -9
  216. package/dist/components-v2/Table/filters/LeftFilterPane.d.ts +0 -17
  217. package/dist/components-v2/Table/filters/LeftFilterPane.js +0 -105
  218. package/dist/components-v2/Table/filters/TableFilters.d.ts +0 -12
  219. package/dist/components-v2/Table/filters/TableFilters.js +0 -127
  220. package/dist/components-v2/Table/hooks/useColumnResize.d.ts +0 -15
  221. package/dist/components-v2/Table/hooks/useColumnResize.js +0 -104
  222. package/dist/components-v2/Table/hooks/useTable.d.ts +0 -58
  223. package/dist/components-v2/Table/hooks/useTable.js +0 -254
  224. package/dist/components-v2/Table/hooks/useTableKeyboard.d.ts +0 -25
  225. package/dist/components-v2/Table/hooks/useTableKeyboard.js +0 -112
  226. package/dist/components-v2/Table/hooks/useVirtualScroll.d.ts +0 -29
  227. package/dist/components-v2/Table/hooks/useVirtualScroll.js +0 -83
  228. package/dist/components-v2/Table/settings/ManageColumns.d.ts +0 -12
  229. package/dist/components-v2/Table/settings/ManageColumns.js +0 -59
  230. package/dist/components-v2/Table/settings/TableSettings.d.ts +0 -12
  231. package/dist/components-v2/Table/settings/TableSettings.js +0 -57
  232. package/dist/components-v2/Table/utils/filterUtils.d.ts +0 -7
  233. package/dist/components-v2/Table/utils/filterUtils.js +0 -149
  234. package/dist/components-v2/Table/utils/sortUtils.d.ts +0 -6
  235. package/dist/components-v2/Table/utils/sortUtils.js +0 -65
  236. package/dist/components-v2/Tag/Tag.d.ts +0 -15
  237. package/dist/components-v2/Tag/Tag.js +0 -87
  238. package/dist/components-v2/Timeline/Timeline.d.ts +0 -18
  239. package/dist/components-v2/Timeline/Timeline.js +0 -76
  240. package/dist/components-v2/Toaster/Toaster.d.ts +0 -61
  241. package/dist/components-v2/Toaster/Toaster.js +0 -63
  242. package/dist/components-v2/Toggle/Toggle.d.ts +0 -28
  243. package/dist/components-v2/Toggle/Toggle.js +0 -90
  244. package/dist/components-v2/ui/accordion.d.ts +0 -12
  245. package/dist/components-v2/ui/accordion.js +0 -104
  246. package/dist/components-v2/ui/alert.d.ts +0 -18
  247. package/dist/components-v2/ui/alert.js +0 -99
  248. package/dist/components-v2/ui/avatar.d.ts +0 -12
  249. package/dist/components-v2/ui/avatar.js +0 -80
  250. package/dist/components-v2/ui/badge.d.ts +0 -10
  251. package/dist/components-v2/ui/badge.js +0 -76
  252. package/dist/components-v2/ui/button.d.ts +0 -18
  253. package/dist/components-v2/ui/button.js +0 -97
  254. package/dist/components-v2/ui/checkbox.d.ts +0 -15
  255. package/dist/components-v2/ui/checkbox.js +0 -86
  256. package/dist/components-v2/ui/dialog.d.ts +0 -30
  257. package/dist/components-v2/ui/dialog.js +0 -115
  258. package/dist/components-v2/ui/dropdown-menu.d.ts +0 -26
  259. package/dist/components-v2/ui/dropdown-menu.js +0 -121
  260. package/dist/components-v2/ui/field.d.ts +0 -32
  261. package/dist/components-v2/ui/field.js +0 -62
  262. package/dist/components-v2/ui/form-field.d.ts +0 -25
  263. package/dist/components-v2/ui/form-field.js +0 -96
  264. package/dist/components-v2/ui/input.d.ts +0 -9
  265. package/dist/components-v2/ui/input.js +0 -73
  266. package/dist/components-v2/ui/label.d.ts +0 -10
  267. package/dist/components-v2/ui/label.js +0 -70
  268. package/dist/components-v2/ui/popover.d.ts +0 -9
  269. package/dist/components-v2/ui/popover.js +0 -60
  270. package/dist/components-v2/ui/progress.d.ts +0 -12
  271. package/dist/components-v2/ui/progress.js +0 -75
  272. package/dist/components-v2/ui/radio-group.d.ts +0 -17
  273. package/dist/components-v2/ui/radio-group.js +0 -91
  274. package/dist/components-v2/ui/select.d.ts +0 -24
  275. package/dist/components-v2/ui/select.js +0 -122
  276. package/dist/components-v2/ui/separator.d.ts +0 -5
  277. package/dist/components-v2/ui/separator.js +0 -55
  278. package/dist/components-v2/ui/skeleton.d.ts +0 -9
  279. package/dist/components-v2/ui/skeleton.js +0 -68
  280. package/dist/components-v2/ui/spinner.d.ts +0 -16
  281. package/dist/components-v2/ui/spinner.js +0 -64
  282. package/dist/components-v2/ui/switch.d.ts +0 -10
  283. package/dist/components-v2/ui/switch.js +0 -81
  284. package/dist/components-v2/ui/tabs.d.ts +0 -13
  285. package/dist/components-v2/ui/tabs.js +0 -95
  286. package/dist/components-v2/ui/textarea.d.ts +0 -10
  287. package/dist/components-v2/ui/textarea.js +0 -96
  288. package/dist/components-v2/ui/tooltip.d.ts +0 -17
  289. package/dist/components-v2/ui/tooltip.js +0 -75
  290. package/dist/lib/utils.d.ts +0 -2
  291. package/dist/lib/utils.js +0 -8
  292. package/dist/theme-v2/ThemeProvider.d.ts +0 -19
  293. package/dist/theme-v2/ThemeProvider.js +0 -149
  294. package/dist/theme-v2/dark.css +0 -47
  295. package/dist/theme-v2/tokens.css +0 -72
  296. /package/dist/Components/Table/{Components → components}/HeaderActions.d.ts +0 -0
  297. /package/dist/Components/Table/{Components → components}/HeaderActions.js +0 -0
  298. /package/dist/Components/Table/{Components → components}/Pagination.d.ts +0 -0
  299. /package/dist/Components/Table/{Components → components}/Pagination.js +0 -0
  300. /package/dist/Components/Table/{Components → components}/TableActions.d.ts +0 -0
  301. /package/dist/Components/Table/{Components → components}/TableActions.js +0 -0
  302. /package/dist/Components/Table/{Components → components}/TableBody.d.ts +0 -0
  303. /package/dist/Components/Table/{Components → components}/TableBody.js +0 -0
  304. /package/dist/Components/Table/{Components → components}/TableBody.virtualize.test.d.ts +0 -0
  305. /package/dist/Components/Table/{Components → components}/TableBody.virtualize.test.js +0 -0
  306. /package/dist/Components/Table/{Components → components}/TableGroupRow.d.ts +0 -0
  307. /package/dist/Components/Table/{Components → components}/TableGroupRow.js +0 -0
  308. /package/dist/Components/Table/{Components → components}/TableHeader.d.ts +0 -0
  309. /package/dist/Components/Table/{Components → components}/TableLoading.d.ts +0 -0
  310. /package/dist/Components/Table/{Components → components}/TableLoading.js +0 -0
  311. /package/dist/Components/Table/{Components → components}/TableSearch.d.ts +0 -0
  312. /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>>;