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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/package.json +1 -1
  2. package/dist/App.d.ts +0 -4
  3. package/dist/App.js +0 -131
  4. package/dist/Components/Table/CompactSelect.d.ts +0 -15
  5. package/dist/Components/Table/CompactSelect.js +0 -69
  6. package/dist/Components/Table/Components/ActiveFilters.d.ts +0 -9
  7. package/dist/Components/Table/Components/ActiveFilters.js +0 -132
  8. package/dist/Components/Table/Components/TableFilters.d.ts +0 -7
  9. package/dist/Components/Table/Components/TableFilters.js +0 -89
  10. package/dist/Components/Table/Components/useDebounce.d.ts +0 -2
  11. package/dist/Components/Table/Components/useDebounce.js +0 -28
  12. package/dist/Components/Table/Components/useTable.d.ts +0 -47
  13. package/dist/Components/Table/Components/useTable.js +0 -219
  14. package/dist/Components/Table/LeftFilterPane.d.ts +0 -36
  15. package/dist/Components/Table/LeftFilterPane.js +0 -273
  16. package/dist/Components/Table/SelectOperationControls.d.ts +0 -8
  17. package/dist/Components/Table/SelectOperationControls.js +0 -15
  18. package/dist/Components/Table/TableSettings/ManageColumns.d.ts +0 -12
  19. package/dist/Components/Table/TableSettings/ManageColumns.js +0 -166
  20. package/dist/Components/Table/TableSettings/ManageColumns.test.d.ts +0 -1
  21. package/dist/Components/Table/TableSettings/ManageColumns.test.js +0 -146
  22. package/dist/Components/Table/TableSettings/TableFilters.d.ts +0 -10
  23. package/dist/Components/Table/TableSettings/TableFilters.js +0 -69
  24. package/dist/Components/Table/TableSettings/TableFilters.test.d.ts +0 -1
  25. package/dist/Components/Table/TableSettings/TableFilters.test.js +0 -109
  26. package/dist/Components/Table/TableSettings/TableSettings.d.ts +0 -8
  27. package/dist/Components/Table/TableSettings/TableSettings.js +0 -141
  28. package/dist/Components/Table/TableToDo.d.ts +0 -2
  29. package/dist/Components/Table/TableToDo.js +0 -291
  30. package/dist/Components/Table/TextOperationControls.d.ts +0 -12
  31. package/dist/Components/Table/TextOperationControls.js +0 -29
  32. package/dist/Layout.d.ts +0 -3
  33. package/dist/Layout.js +0 -292
  34. package/dist/Pages/TInput.d.ts +0 -3
  35. package/dist/Pages/TInput.js +0 -56
  36. package/dist/Pages/accordion.d.ts +0 -3
  37. package/dist/Pages/accordion.js +0 -42
  38. package/dist/Pages/alertdialog.d.ts +0 -3
  39. package/dist/Pages/alertdialog.js +0 -54
  40. package/dist/Pages/button.d.ts +0 -3
  41. package/dist/Pages/button.js +0 -46
  42. package/dist/Pages/card.d.ts +0 -3
  43. package/dist/Pages/card.js +0 -117
  44. package/dist/Pages/chart.d.ts +0 -4
  45. package/dist/Pages/chart.js +0 -40
  46. package/dist/Pages/checkbox.d.ts +0 -3
  47. package/dist/Pages/checkbox.js +0 -12
  48. package/dist/Pages/contactForm.d.ts +0 -3
  49. package/dist/Pages/contactForm.js +0 -16
  50. package/dist/Pages/datePick.d.ts +0 -3
  51. package/dist/Pages/datePick.js +0 -88
  52. package/dist/Pages/drawer.d.ts +0 -3
  53. package/dist/Pages/drawer.js +0 -58
  54. package/dist/Pages/dropdown.d.ts +0 -3
  55. package/dist/Pages/dropdown.js +0 -24
  56. package/dist/Pages/editor.d.ts +0 -3
  57. package/dist/Pages/editor.js +0 -14
  58. package/dist/Pages/feedback.d.ts +0 -2
  59. package/dist/Pages/feedback.js +0 -15
  60. package/dist/Pages/fileUpload.d.ts +0 -2
  61. package/dist/Pages/fileUpload.js +0 -82
  62. package/dist/Pages/input.d.ts +0 -3
  63. package/dist/Pages/input.js +0 -92
  64. package/dist/Pages/kanbanboard.d.ts +0 -3
  65. package/dist/Pages/kanbanboard.js +0 -224
  66. package/dist/Pages/modal.d.ts +0 -3
  67. package/dist/Pages/modal.js +0 -65
  68. package/dist/Pages/multiSelect.d.ts +0 -3
  69. package/dist/Pages/multiSelect.js +0 -55
  70. package/dist/Pages/noteArea.d.ts +0 -3
  71. package/dist/Pages/noteArea.js +0 -59
  72. package/dist/Pages/notification.d.ts +0 -3
  73. package/dist/Pages/notification.js +0 -25
  74. package/dist/Pages/numberInput.d.ts +0 -3
  75. package/dist/Pages/numberInput.js +0 -49
  76. package/dist/Pages/photoViewer.d.ts +0 -3
  77. package/dist/Pages/photoViewer.js +0 -12
  78. package/dist/Pages/pinInputs.d.ts +0 -3
  79. package/dist/Pages/pinInputs.js +0 -12
  80. package/dist/Pages/productCaard.d.ts +0 -3
  81. package/dist/Pages/productCaard.js +0 -311
  82. package/dist/Pages/productDetailCard.d.ts +0 -3
  83. package/dist/Pages/productDetailCard.js +0 -78
  84. package/dist/Pages/productFilter.d.ts +0 -3
  85. package/dist/Pages/productFilter.js +0 -202
  86. package/dist/Pages/progressbar.d.ts +0 -3
  87. package/dist/Pages/progressbar.js +0 -12
  88. package/dist/Pages/radioButton.d.ts +0 -3
  89. package/dist/Pages/radioButton.js +0 -54
  90. package/dist/Pages/search.d.ts +0 -3
  91. package/dist/Pages/search.js +0 -54
  92. package/dist/Pages/searchSelect.d.ts +0 -3
  93. package/dist/Pages/searchSelect.js +0 -133
  94. package/dist/Pages/select.d.ts +0 -3
  95. package/dist/Pages/select.js +0 -53
  96. package/dist/Pages/selectSearch.d.ts +0 -3
  97. package/dist/Pages/selectSearch.js +0 -103
  98. package/dist/Pages/skeleton.d.ts +0 -3
  99. package/dist/Pages/skeleton.js +0 -22
  100. package/dist/Pages/switch.d.ts +0 -3
  101. package/dist/Pages/switch.js +0 -50
  102. package/dist/Pages/table.d.ts +0 -3
  103. package/dist/Pages/table.js +0 -174
  104. package/dist/Pages/textArea.d.ts +0 -3
  105. package/dist/Pages/textArea.js +0 -15
  106. package/dist/Pages/timeline.d.ts +0 -3
  107. package/dist/Pages/timeline.js +0 -74
  108. package/dist/Pages/tooltip.d.ts +0 -3
  109. package/dist/Pages/tooltip.js +0 -12
  110. package/dist/Pages/toster.d.ts +0 -3
  111. package/dist/Pages/toster.js +0 -68
  112. package/dist/Pages/verifyEmail.d.ts +0 -3
  113. package/dist/Pages/verifyEmail.js +0 -18
  114. package/dist/Theme/Dark/palette.d.ts +0 -370
  115. package/dist/Theme/Dark/palette.js +0 -372
  116. package/dist/bootstrap.d.ts +0 -1
  117. package/dist/bootstrap.js +0 -14
  118. package/dist/components-v2/AlertDialog/AlertDialog.d.ts +0 -23
  119. package/dist/components-v2/AlertDialog/AlertDialog.js +0 -98
  120. package/dist/components-v2/Breadcrumbs/Breadcrumbs.d.ts +0 -14
  121. package/dist/components-v2/Breadcrumbs/Breadcrumbs.js +0 -66
  122. package/dist/components-v2/Charts/AreaChart.d.ts +0 -23
  123. package/dist/components-v2/Charts/AreaChart.js +0 -63
  124. package/dist/components-v2/Charts/BarChart.d.ts +0 -25
  125. package/dist/components-v2/Charts/BarChart.js +0 -57
  126. package/dist/components-v2/Charts/LineChart.d.ts +0 -23
  127. package/dist/components-v2/Charts/LineChart.js +0 -55
  128. package/dist/components-v2/Charts/PieChart.d.ts +0 -15
  129. package/dist/components-v2/Charts/PieChart.js +0 -54
  130. package/dist/components-v2/Charts/PolarChart.d.ts +0 -14
  131. package/dist/components-v2/Charts/PolarChart.js +0 -54
  132. package/dist/components-v2/Charts/chartOptions.d.ts +0 -7
  133. package/dist/components-v2/Charts/chartOptions.js +0 -41
  134. package/dist/components-v2/Charts/useChartTheme.d.ts +0 -22
  135. package/dist/components-v2/Charts/useChartTheme.js +0 -106
  136. package/dist/components-v2/ContactForm/ContactForm.d.ts +0 -25
  137. package/dist/components-v2/ContactForm/ContactForm.js +0 -116
  138. package/dist/components-v2/DatePicker/Calendar.d.ts +0 -19
  139. package/dist/components-v2/DatePicker/Calendar.js +0 -212
  140. package/dist/components-v2/DatePicker/DatePicker.d.ts +0 -46
  141. package/dist/components-v2/DatePicker/DatePicker.js +0 -189
  142. package/dist/components-v2/DatePicker/TimePicker.d.ts +0 -12
  143. package/dist/components-v2/DatePicker/TimePicker.js +0 -105
  144. package/dist/components-v2/DatePicker/utils.d.ts +0 -31
  145. package/dist/components-v2/DatePicker/utils.js +0 -109
  146. package/dist/components-v2/Drawer/Drawer.d.ts +0 -27
  147. package/dist/components-v2/Drawer/Drawer.js +0 -132
  148. package/dist/components-v2/FeedbackForm/FeedbackForm.d.ts +0 -26
  149. package/dist/components-v2/FeedbackForm/FeedbackForm.js +0 -112
  150. package/dist/components-v2/FileUploader/FileUploader.d.ts +0 -28
  151. package/dist/components-v2/FileUploader/FileUploader.js +0 -127
  152. package/dist/components-v2/Input/TextInput.d.ts +0 -41
  153. package/dist/components-v2/Input/TextInput.js +0 -169
  154. package/dist/components-v2/KanbanBoard/KanbanBoard.d.ts +0 -39
  155. package/dist/components-v2/KanbanBoard/KanbanBoard.js +0 -101
  156. package/dist/components-v2/Layout/AppLayout.d.ts +0 -22
  157. package/dist/components-v2/Layout/AppLayout.js +0 -53
  158. package/dist/components-v2/Loading/Loading.d.ts +0 -19
  159. package/dist/components-v2/Loading/Loading.js +0 -55
  160. package/dist/components-v2/Modal/Modal.d.ts +0 -30
  161. package/dist/components-v2/Modal/Modal.js +0 -82
  162. package/dist/components-v2/NavigationBar/NavigationBar.d.ts +0 -47
  163. package/dist/components-v2/NavigationBar/NavigationBar.js +0 -148
  164. package/dist/components-v2/Notification/Notification.d.ts +0 -22
  165. package/dist/components-v2/Notification/Notification.js +0 -113
  166. package/dist/components-v2/NumberInput/NumberInput.d.ts +0 -37
  167. package/dist/components-v2/NumberInput/NumberInput.js +0 -210
  168. package/dist/components-v2/PinInput/PinInput.d.ts +0 -26
  169. package/dist/components-v2/PinInput/PinInput.js +0 -138
  170. package/dist/components-v2/ProfilePhotoViewer/ProfilePhotoViewer.d.ts +0 -18
  171. package/dist/components-v2/ProfilePhotoViewer/ProfilePhotoViewer.js +0 -91
  172. package/dist/components-v2/Select/Select.d.ts +0 -41
  173. package/dist/components-v2/Select/Select.js +0 -284
  174. package/dist/components-v2/Sidebar/Sidebar.d.ts +0 -41
  175. package/dist/components-v2/Sidebar/Sidebar.js +0 -182
  176. package/dist/components-v2/Slider/Slider.d.ts +0 -18
  177. package/dist/components-v2/Slider/Slider.js +0 -101
  178. package/dist/components-v2/Table/Table.d.ts +0 -7
  179. package/dist/components-v2/Table/Table.js +0 -172
  180. package/dist/components-v2/Table/TableProps.d.ts +0 -139
  181. package/dist/components-v2/Table/TableProps.js +0 -9
  182. package/dist/components-v2/Table/components/ActiveFilters.d.ts +0 -10
  183. package/dist/components-v2/Table/components/ActiveFilters.js +0 -70
  184. package/dist/components-v2/Table/components/BulkActionBar.d.ts +0 -11
  185. package/dist/components-v2/Table/components/BulkActionBar.js +0 -92
  186. package/dist/components-v2/Table/components/ColumnResizeHandle.d.ts +0 -7
  187. package/dist/components-v2/Table/components/ColumnResizeHandle.js +0 -41
  188. package/dist/components-v2/Table/components/Pagination.d.ts +0 -11
  189. package/dist/components-v2/Table/components/Pagination.js +0 -92
  190. package/dist/components-v2/Table/components/TableBody.d.ts +0 -23
  191. package/dist/components-v2/Table/components/TableBody.js +0 -69
  192. package/dist/components-v2/Table/components/TableCell.d.ts +0 -14
  193. package/dist/components-v2/Table/components/TableCell.js +0 -63
  194. package/dist/components-v2/Table/components/TableEmptyState.d.ts +0 -12
  195. package/dist/components-v2/Table/components/TableEmptyState.js +0 -55
  196. package/dist/components-v2/Table/components/TableErrorState.d.ts +0 -6
  197. package/dist/components-v2/Table/components/TableErrorState.js +0 -52
  198. package/dist/components-v2/Table/components/TableHeader.d.ts +0 -21
  199. package/dist/components-v2/Table/components/TableHeader.js +0 -94
  200. package/dist/components-v2/Table/components/TableRow.d.ts +0 -20
  201. package/dist/components-v2/Table/components/TableRow.js +0 -64
  202. package/dist/components-v2/Table/components/TableSearch.d.ts +0 -8
  203. package/dist/components-v2/Table/components/TableSearch.js +0 -47
  204. package/dist/components-v2/Table/filters/FilterChips.d.ts +0 -6
  205. package/dist/components-v2/Table/filters/FilterChips.js +0 -9
  206. package/dist/components-v2/Table/filters/LeftFilterPane.d.ts +0 -17
  207. package/dist/components-v2/Table/filters/LeftFilterPane.js +0 -105
  208. package/dist/components-v2/Table/filters/TableFilters.d.ts +0 -12
  209. package/dist/components-v2/Table/filters/TableFilters.js +0 -127
  210. package/dist/components-v2/Table/hooks/useColumnResize.d.ts +0 -15
  211. package/dist/components-v2/Table/hooks/useColumnResize.js +0 -104
  212. package/dist/components-v2/Table/hooks/useTable.d.ts +0 -58
  213. package/dist/components-v2/Table/hooks/useTable.js +0 -254
  214. package/dist/components-v2/Table/hooks/useTableKeyboard.d.ts +0 -25
  215. package/dist/components-v2/Table/hooks/useTableKeyboard.js +0 -112
  216. package/dist/components-v2/Table/hooks/useVirtualScroll.d.ts +0 -29
  217. package/dist/components-v2/Table/hooks/useVirtualScroll.js +0 -83
  218. package/dist/components-v2/Table/settings/ManageColumns.d.ts +0 -12
  219. package/dist/components-v2/Table/settings/ManageColumns.js +0 -59
  220. package/dist/components-v2/Table/settings/TableSettings.d.ts +0 -12
  221. package/dist/components-v2/Table/settings/TableSettings.js +0 -57
  222. package/dist/components-v2/Table/utils/filterUtils.d.ts +0 -7
  223. package/dist/components-v2/Table/utils/filterUtils.js +0 -149
  224. package/dist/components-v2/Table/utils/sortUtils.d.ts +0 -6
  225. package/dist/components-v2/Table/utils/sortUtils.js +0 -65
  226. package/dist/components-v2/Tag/Tag.d.ts +0 -15
  227. package/dist/components-v2/Tag/Tag.js +0 -87
  228. package/dist/components-v2/Timeline/Timeline.d.ts +0 -18
  229. package/dist/components-v2/Timeline/Timeline.js +0 -76
  230. package/dist/components-v2/Toaster/Toaster.d.ts +0 -61
  231. package/dist/components-v2/Toaster/Toaster.js +0 -63
  232. package/dist/components-v2/Toggle/Toggle.d.ts +0 -28
  233. package/dist/components-v2/Toggle/Toggle.js +0 -90
  234. package/dist/components-v2/ui/accordion.d.ts +0 -12
  235. package/dist/components-v2/ui/accordion.js +0 -104
  236. package/dist/components-v2/ui/alert.d.ts +0 -18
  237. package/dist/components-v2/ui/alert.js +0 -99
  238. package/dist/components-v2/ui/avatar.d.ts +0 -12
  239. package/dist/components-v2/ui/avatar.js +0 -80
  240. package/dist/components-v2/ui/badge.d.ts +0 -10
  241. package/dist/components-v2/ui/badge.js +0 -76
  242. package/dist/components-v2/ui/button.d.ts +0 -18
  243. package/dist/components-v2/ui/button.js +0 -97
  244. package/dist/components-v2/ui/checkbox.d.ts +0 -15
  245. package/dist/components-v2/ui/checkbox.js +0 -86
  246. package/dist/components-v2/ui/dialog.d.ts +0 -30
  247. package/dist/components-v2/ui/dialog.js +0 -115
  248. package/dist/components-v2/ui/dropdown-menu.d.ts +0 -26
  249. package/dist/components-v2/ui/dropdown-menu.js +0 -121
  250. package/dist/components-v2/ui/field.d.ts +0 -32
  251. package/dist/components-v2/ui/field.js +0 -62
  252. package/dist/components-v2/ui/form-field.d.ts +0 -25
  253. package/dist/components-v2/ui/form-field.js +0 -96
  254. package/dist/components-v2/ui/input.d.ts +0 -9
  255. package/dist/components-v2/ui/input.js +0 -73
  256. package/dist/components-v2/ui/label.d.ts +0 -10
  257. package/dist/components-v2/ui/label.js +0 -70
  258. package/dist/components-v2/ui/popover.d.ts +0 -9
  259. package/dist/components-v2/ui/popover.js +0 -60
  260. package/dist/components-v2/ui/progress.d.ts +0 -12
  261. package/dist/components-v2/ui/progress.js +0 -75
  262. package/dist/components-v2/ui/radio-group.d.ts +0 -17
  263. package/dist/components-v2/ui/radio-group.js +0 -91
  264. package/dist/components-v2/ui/select.d.ts +0 -24
  265. package/dist/components-v2/ui/select.js +0 -122
  266. package/dist/components-v2/ui/separator.d.ts +0 -5
  267. package/dist/components-v2/ui/separator.js +0 -55
  268. package/dist/components-v2/ui/skeleton.d.ts +0 -9
  269. package/dist/components-v2/ui/skeleton.js +0 -68
  270. package/dist/components-v2/ui/spinner.d.ts +0 -16
  271. package/dist/components-v2/ui/spinner.js +0 -64
  272. package/dist/components-v2/ui/switch.d.ts +0 -10
  273. package/dist/components-v2/ui/switch.js +0 -81
  274. package/dist/components-v2/ui/tabs.d.ts +0 -13
  275. package/dist/components-v2/ui/tabs.js +0 -95
  276. package/dist/components-v2/ui/textarea.d.ts +0 -10
  277. package/dist/components-v2/ui/textarea.js +0 -96
  278. package/dist/components-v2/ui/tooltip.d.ts +0 -17
  279. package/dist/components-v2/ui/tooltip.js +0 -75
  280. package/dist/lib/utils.d.ts +0 -2
  281. package/dist/lib/utils.js +0 -8
  282. package/dist/theme-v2/ThemeProvider.d.ts +0 -19
  283. package/dist/theme-v2/ThemeProvider.js +0 -149
  284. package/dist/theme-v2/dark.css +0 -47
  285. package/dist/theme-v2/tokens.css +0 -72
  286. /package/dist/Components/Table/{Components → components}/HeaderActions.d.ts +0 -0
  287. /package/dist/Components/Table/{Components → components}/HeaderActions.js +0 -0
  288. /package/dist/Components/Table/{Components → components}/Pagination.d.ts +0 -0
  289. /package/dist/Components/Table/{Components → components}/Pagination.js +0 -0
  290. /package/dist/Components/Table/{Components → components}/TableActions.d.ts +0 -0
  291. /package/dist/Components/Table/{Components → components}/TableActions.js +0 -0
  292. /package/dist/Components/Table/{Components → components}/TableBody.d.ts +0 -0
  293. /package/dist/Components/Table/{Components → components}/TableBody.js +0 -0
  294. /package/dist/Components/Table/{Components → components}/TableBody.virtualize.test.d.ts +0 -0
  295. /package/dist/Components/Table/{Components → components}/TableBody.virtualize.test.js +0 -0
  296. /package/dist/Components/Table/{Components → components}/TableGroupRow.d.ts +0 -0
  297. /package/dist/Components/Table/{Components → components}/TableGroupRow.js +0 -0
  298. /package/dist/Components/Table/{Components → components}/TableHeader.d.ts +0 -0
  299. /package/dist/Components/Table/{Components → components}/TableHeader.js +0 -0
  300. /package/dist/Components/Table/{Components → components}/TableLoading.d.ts +0 -0
  301. /package/dist/Components/Table/{Components → components}/TableLoading.js +0 -0
  302. /package/dist/Components/Table/{Components → components}/TableSearch.d.ts +0 -0
  303. /package/dist/Components/Table/{Components → components}/TableSearch.js +0 -0
@@ -1,212 +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.Calendar = 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 utils_2 = require("./utils");
41
- exports.Calendar = React.forwardRef(({ viewDate, onViewDateChange, selected, rangeStart, rangeEnd, onSelectDate, mode, constraints = {}, weekStartsOn = 0, locale, compact = false, }, ref) => {
42
- const [pane, setPane] = React.useState("days");
43
- const [focusDate, setFocusDate] = React.useState((0, utils_2.startOfDay)(viewDate));
44
- const gridRef = React.useRef(null);
45
- React.useEffect(() => {
46
- if (focusDate.getMonth() !== viewDate.getMonth() ||
47
- focusDate.getFullYear() !== viewDate.getFullYear()) {
48
- setFocusDate((0, utils_2.startOfDay)(viewDate));
49
- }
50
- }, [viewDate, focusDate]);
51
- const moveFocus = (next) => {
52
- if (next.getMonth() !== viewDate.getMonth() ||
53
- next.getFullYear() !== viewDate.getFullYear()) {
54
- onViewDateChange(next);
55
- }
56
- setFocusDate((0, utils_2.startOfDay)(next));
57
- requestAnimationFrame(() => {
58
- var _a;
59
- const node = (_a = gridRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-date="${next.toDateString()}"]`);
60
- node === null || node === void 0 ? void 0 : node.focus();
61
- });
62
- };
63
- const cells = React.useMemo(() => (0, utils_2.buildMonthGrid)(viewDate, weekStartsOn), [viewDate, weekStartsOn]);
64
- const weekdayLabels = React.useMemo(() => (0, utils_2.getWeekdayHeaders)(weekStartsOn, locale), [weekStartsOn, locale]);
65
- const monthLabel = (0, utils_2.formatDate)(viewDate, "MMMM");
66
- const yearLabel = (0, utils_2.formatDate)(viewDate, "yyyy");
67
- const handleDayKeyDown = (event, cellDate) => {
68
- const handled = (next) => {
69
- event.preventDefault();
70
- moveFocus(next);
71
- };
72
- switch (event.key) {
73
- case "ArrowLeft":
74
- return handled((0, utils_2.addDays)(cellDate, -1));
75
- case "ArrowRight":
76
- return handled((0, utils_2.addDays)(cellDate, 1));
77
- case "ArrowUp":
78
- return handled((0, utils_2.addDays)(cellDate, -7));
79
- case "ArrowDown":
80
- return handled((0, utils_2.addDays)(cellDate, 7));
81
- case "Home":
82
- return handled((0, utils_2.addDays)(cellDate, -cellDate.getDay()));
83
- case "End":
84
- return handled((0, utils_2.addDays)(cellDate, 6 - cellDate.getDay()));
85
- case "PageUp":
86
- return handled((0, utils_2.addMonths)(cellDate, event.shiftKey ? -12 : -1));
87
- case "PageDown":
88
- return handled((0, utils_2.addMonths)(cellDate, event.shiftKey ? 12 : 1));
89
- case "Enter":
90
- case " ":
91
- event.preventDefault();
92
- if (!(0, utils_2.isDateDisabled)(cellDate, constraints))
93
- onSelectDate(cellDate);
94
- return;
95
- default:
96
- return;
97
- }
98
- };
99
- return (React.createElement("div", { ref: ref, className: (0, utils_1.cn)("select-none", compact ? "p-2" : "p-3"), role: "application", "aria-label": "Calendar" },
100
- React.createElement(CalendarHeader, { pane: pane, setPane: setPane, viewDate: viewDate, onViewDateChange: onViewDateChange, monthLabel: monthLabel, yearLabel: yearLabel, constraints: constraints }),
101
- pane === "days" && (React.createElement("div", { ref: gridRef, role: "grid", "aria-label": `${monthLabel} ${yearLabel}`, className: "mt-2" },
102
- React.createElement("div", { className: "grid grid-cols-7 gap-0 text-center text-[11px] font-medium text-muted-foreground" }, weekdayLabels.map((label) => (React.createElement("span", { key: label, className: "py-1" }, label)))),
103
- React.createElement("div", { role: "rowgroup", className: "grid grid-cols-7 gap-0.5" }, cells.map((cell) => {
104
- const disabled = (0, utils_2.isDateDisabled)(cell.date, constraints);
105
- const isSelected = mode === "single"
106
- ? selected && (0, utils_2.isSameDay)(cell.date, selected)
107
- : !!((rangeStart && (0, utils_2.isSameDay)(cell.date, rangeStart)) ||
108
- (rangeEnd && (0, utils_2.isSameDay)(cell.date, rangeEnd)));
109
- const inRange = mode === "range" &&
110
- rangeStart &&
111
- rangeEnd &&
112
- (0, utils_2.isAfter)(cell.date, rangeStart) &&
113
- (0, utils_2.isBefore)(cell.date, rangeEnd);
114
- const isFocused = (0, utils_2.isSameDay)(cell.date, focusDate);
115
- return (React.createElement(DayCell, { key: cell.date.toISOString(), date: cell.date, inCurrentMonth: cell.inCurrentMonth, isToday: cell.isToday, isSelected: !!isSelected, inRange: !!inRange, disabled: disabled, focusable: isFocused, onSelect: () => {
116
- if (!disabled)
117
- onSelectDate(cell.date);
118
- setFocusDate((0, utils_2.startOfDay)(cell.date));
119
- }, onKeyDown: (event) => handleDayKeyDown(event, cell.date) }));
120
- })))),
121
- pane === "months" && (React.createElement(MonthPane, { viewDate: viewDate, constraints: constraints, onSelect: (monthIndex) => {
122
- const next = new Date(viewDate);
123
- next.setMonth(monthIndex);
124
- onViewDateChange(next);
125
- setPane("days");
126
- } })),
127
- pane === "years" && (React.createElement(YearPane, { viewDate: viewDate, constraints: constraints, onSelect: (year) => {
128
- const next = new Date(viewDate);
129
- next.setFullYear(year);
130
- onViewDateChange(next);
131
- setPane("months");
132
- } }))));
133
- });
134
- exports.Calendar.displayName = "Calendar";
135
- function CalendarHeader({ pane, setPane, viewDate, onViewDateChange, monthLabel, yearLabel, constraints, }) {
136
- const goPrev = () => {
137
- if (pane === "days") {
138
- onViewDateChange((0, utils_2.addMonths)(viewDate, -1));
139
- }
140
- else if (pane === "months") {
141
- onViewDateChange((0, utils_2.addYears)(viewDate, -1));
142
- }
143
- else {
144
- onViewDateChange((0, utils_2.addYears)(viewDate, -12));
145
- }
146
- };
147
- const goNext = () => {
148
- if (pane === "days") {
149
- onViewDateChange((0, utils_2.addMonths)(viewDate, 1));
150
- }
151
- else if (pane === "months") {
152
- onViewDateChange((0, utils_2.addYears)(viewDate, 1));
153
- }
154
- else {
155
- onViewDateChange((0, utils_2.addYears)(viewDate, 12));
156
- }
157
- };
158
- const prevDisabled = constraints.minDate
159
- ? !(0, utils_2.isAfter)((0, utils_2.startOfMonth)(viewDate), constraints.minDate)
160
- : false;
161
- const nextDisabled = constraints.maxDate
162
- ? !(0, utils_2.isBefore)((0, utils_2.endOfMonth)(viewDate), constraints.maxDate)
163
- : false;
164
- return (React.createElement("div", { className: "flex items-center justify-between gap-2" },
165
- React.createElement("button", { type: "button", "aria-label": pane === "days" ? "Previous month" : pane === "months" ? "Previous year" : "Previous 12 years", onClick: goPrev, disabled: prevDisabled, className: "inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-40" },
166
- React.createElement(lucide_react_1.ChevronLeft, { className: "h-4 w-4" })),
167
- React.createElement("h2", { role: "heading", "aria-level": 2, className: "flex flex-1 items-center justify-center gap-1 text-sm font-medium text-foreground" },
168
- React.createElement("button", { type: "button", className: "rounded px-1.5 py-0.5 hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", onClick: () => setPane(pane === "months" ? "days" : "months"), "aria-label": "Pick month" }, monthLabel),
169
- React.createElement("button", { type: "button", className: "rounded px-1.5 py-0.5 hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", onClick: () => setPane(pane === "years" ? "days" : "years"), "aria-label": "Pick year" }, yearLabel)),
170
- React.createElement("button", { type: "button", "aria-label": pane === "days" ? "Next month" : pane === "months" ? "Next year" : "Next 12 years", onClick: goNext, disabled: nextDisabled, className: "inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-40" },
171
- React.createElement(lucide_react_1.ChevronRight, { className: "h-4 w-4" }))));
172
- }
173
- function DayCell({ date, inCurrentMonth, isToday, isSelected, inRange, disabled, focusable, onSelect, onKeyDown, }) {
174
- return (React.createElement("div", { role: "gridcell" },
175
- React.createElement("button", { type: "button", role: "button", tabIndex: focusable ? 0 : -1, "aria-label": (0, utils_2.formatDate)(date, "EEEE, MMMM d, yyyy"), "aria-selected": isSelected || undefined, "aria-disabled": disabled || undefined, disabled: disabled, onClick: onSelect, onKeyDown: onKeyDown, "data-date": date.toDateString(), className: (0, utils_1.cn)("relative inline-flex h-8 w-8 items-center justify-center rounded-md text-sm", "transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "hover:bg-accent hover:text-accent-foreground", !inCurrentMonth && "text-muted-foreground/60", inRange && "bg-primary/15 rounded-none", isSelected &&
176
- "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground", isToday &&
177
- !isSelected &&
178
- "ring-1 ring-inset ring-primary/40", disabled && "cursor-not-allowed opacity-40 hover:bg-transparent") }, date.getDate())));
179
- }
180
- function MonthPane({ viewDate, constraints, onSelect }) {
181
- const monthNames = React.useMemo(() => {
182
- const result = [];
183
- for (let i = 0; i < 12; i++) {
184
- const d = new Date(viewDate.getFullYear(), i, 1);
185
- result.push((0, utils_2.formatDate)(d, "MMM"));
186
- }
187
- return result;
188
- }, [viewDate]);
189
- return (React.createElement("div", { className: "mt-2 grid grid-cols-3 gap-1" }, monthNames.map((name, index) => {
190
- const monthStart = new Date(viewDate.getFullYear(), index, 1);
191
- const monthEnd = (0, utils_2.endOfMonth)(monthStart);
192
- const disabled = (constraints.minDate && (0, utils_2.isBefore)(monthEnd, constraints.minDate)) ||
193
- (constraints.maxDate && (0, utils_2.isAfter)(monthStart, constraints.maxDate)) ||
194
- false;
195
- const isCurrent = index === viewDate.getMonth();
196
- return (React.createElement("button", { key: name, type: "button", disabled: disabled, onClick: () => onSelect(index), className: (0, utils_1.cn)("rounded-md px-2 py-2 text-sm transition-colors", "hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", isCurrent && "bg-primary text-primary-foreground hover:bg-primary", disabled && "cursor-not-allowed opacity-40 hover:bg-transparent") }, name));
197
- })));
198
- }
199
- function YearPane({ viewDate, constraints, onSelect }) {
200
- const currentYear = viewDate.getFullYear();
201
- const startYear = Math.floor(currentYear / 12) * 12;
202
- const years = Array.from({ length: 12 }, (_, i) => startYear + i);
203
- return (React.createElement("div", { className: "mt-2 grid grid-cols-3 gap-1" }, years.map((year) => {
204
- const yearStart = new Date(year, 0, 1);
205
- const yearEnd = new Date(year, 11, 31);
206
- const disabled = (constraints.minDate && (0, utils_2.isBefore)(yearEnd, constraints.minDate)) ||
207
- (constraints.maxDate && (0, utils_2.isAfter)(yearStart, constraints.maxDate)) ||
208
- false;
209
- const isCurrent = year === currentYear;
210
- return (React.createElement("button", { key: year, type: "button", disabled: disabled, onClick: () => onSelect(year), className: (0, utils_1.cn)("rounded-md px-2 py-2 text-sm transition-colors", "hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", isCurrent && "bg-primary text-primary-foreground hover:bg-primary", disabled && "cursor-not-allowed opacity-40 hover:bg-transparent") }, year));
211
- })));
212
- }
@@ -1,46 +0,0 @@
1
- import * as React from "react";
2
- import { type DateConstraints, type DateRange, type DayOfWeek, formatDate, isDateDisabled } from "./utils";
3
- export type DatePickerSize = "sm" | "md" | "lg";
4
- export type DatePickerType = "date" | "time" | "datetime";
5
- export interface DatePickerProps {
6
- value?: Date | null;
7
- defaultValue?: Date | null;
8
- onChange?: (date: Date | null) => void;
9
- mode?: "single" | "range";
10
- rangeValue?: DateRange;
11
- onRangeChange?: (range: DateRange) => void;
12
- label?: React.ReactNode;
13
- placeholder?: string;
14
- format?: string;
15
- helperText?: React.ReactNode;
16
- error?: boolean;
17
- errorMessage?: React.ReactNode;
18
- isInformation?: boolean;
19
- informationMessage?: React.ReactNode;
20
- isRequired?: boolean;
21
- type?: DatePickerType;
22
- minDate?: Date;
23
- maxDate?: Date;
24
- disabledDates?: Date[];
25
- disabledDaysOfWeek?: DayOfWeek[];
26
- isDisabled?: boolean;
27
- isReadOnly?: boolean;
28
- size?: DatePickerSize;
29
- width?: string;
30
- /** 0 = Sunday … 6 = Saturday. Defaults to 0. */
31
- weekStartsOn?: DayOfWeek;
32
- /** Locale for weekday header labels (Intl.DateTimeFormat locale). */
33
- locale?: Intl.LocalesArgument;
34
- /** 12 or 24 hour clock for the time picker. */
35
- hourFormat?: 12 | 24;
36
- /** Minute step for the time picker. */
37
- minuteStep?: number;
38
- id?: string;
39
- name?: string;
40
- className?: string;
41
- /** Show ✕ clear button inside the trigger when a value is set. */
42
- clearable?: boolean;
43
- }
44
- export declare const DatePicker: React.ForwardRefExoticComponent<DatePickerProps & React.RefAttributes<HTMLButtonElement>>;
45
- export type { DateRange, DateConstraints, DayOfWeek };
46
- export { isDateDisabled, formatDate };
@@ -1,189 +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.formatDate = exports.isDateDisabled = exports.DatePicker = 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 field_1 = require("../ui/field");
52
- const form_field_1 = require("../ui/form-field");
53
- const popover_1 = require("../ui/popover");
54
- const Calendar_1 = require("./Calendar");
55
- const TimePicker_1 = require("./TimePicker");
56
- const utils_2 = require("./utils");
57
- Object.defineProperty(exports, "formatDate", { enumerable: true, get: function () { return utils_2.formatDate; } });
58
- Object.defineProperty(exports, "isDateDisabled", { enumerable: true, get: function () { return utils_2.isDateDisabled; } });
59
- const TRIGGER_SIZE = {
60
- sm: "h-8 text-xs px-2.5",
61
- md: "h-9 text-sm px-3",
62
- lg: "h-10 text-base px-3.5",
63
- };
64
- exports.DatePicker = React.forwardRef((props, ref) => {
65
- const { id, label, helperText, error, errorMessage, isInformation, informationMessage, isRequired, width, className } = props, controlProps = __rest(props, ["id", "label", "helperText", "error", "errorMessage", "isInformation", "informationMessage", "isRequired", "width", "className"]);
66
- return (React.createElement(field_1.Field, { id: id, label: label, isRequired: isRequired, isInformation: isInformation, informationMessage: informationMessage, helperText: helperText, error: error, errorMessage: errorMessage, width: width },
67
- React.createElement(DatePickerControl, Object.assign({ ref: ref, error: error, className: className }, controlProps))));
68
- });
69
- exports.DatePicker.displayName = "DatePicker";
70
- const DatePickerControl = React.forwardRef((props, ref) => {
71
- var _a, _b, _c, _d, _e;
72
- const { value, defaultValue, onChange, mode = "single", rangeValue, onRangeChange, type, placeholder = "Select date…", format, minDate, maxDate, disabledDates, disabledDaysOfWeek, isDisabled = false, isReadOnly = false, size = "md", weekStartsOn = 0, locale, hourFormat = 24, minuteStep = 1, error, className, clearable = true, name, } = props;
73
- const inferredFormat = format !== null && format !== void 0 ? format : (type === "time"
74
- ? utils_2.DEFAULT_TIME_FORMAT
75
- : type === "datetime"
76
- ? utils_2.DEFAULT_DATETIME_FORMAT
77
- : utils_2.DEFAULT_DATE_FORMAT);
78
- const effectiveType = type !== null && type !== void 0 ? type : (0, utils_2.inferTypeFromFormat)(inferredFormat);
79
- const field = (0, form_field_1.useFormField)();
80
- const [open, setOpen] = React.useState(false);
81
- const isRange = mode === "range";
82
- const isControlledSingle = !isRange && value !== undefined;
83
- const [internalValue, setInternalValue] = React.useState(defaultValue !== null && defaultValue !== void 0 ? defaultValue : null);
84
- const singleValue = isControlledSingle ? value : internalValue;
85
- const isControlledRange = isRange && rangeValue !== undefined;
86
- const [internalRange, setInternalRange] = React.useState({
87
- start: null,
88
- end: null,
89
- });
90
- const range = isControlledRange ? rangeValue : internalRange;
91
- const [viewDate, setViewDate] = React.useState(() => {
92
- var _a;
93
- if (isRange)
94
- return (_a = range.start) !== null && _a !== void 0 ? _a : new Date();
95
- return singleValue !== null && singleValue !== void 0 ? singleValue : new Date();
96
- });
97
- const constraints = {
98
- minDate,
99
- maxDate,
100
- disabledDates,
101
- disabledDaysOfWeek,
102
- };
103
- const commitSingle = (next) => {
104
- if (!isControlledSingle)
105
- setInternalValue(next);
106
- onChange === null || onChange === void 0 ? void 0 : onChange(next);
107
- };
108
- const commitRange = (next) => {
109
- if (!isControlledRange)
110
- setInternalRange(next);
111
- onRangeChange === null || onRangeChange === void 0 ? void 0 : onRangeChange(next);
112
- };
113
- const handleSelectDate = (date) => {
114
- if (isReadOnly)
115
- return;
116
- if (isRange) {
117
- if (!range.start || (range.start && range.end)) {
118
- commitRange({ start: (0, utils_2.startOfDay)(date), end: null });
119
- }
120
- else if (date < range.start) {
121
- commitRange({ start: (0, utils_2.startOfDay)(date), end: range.start });
122
- }
123
- else {
124
- commitRange({ start: range.start, end: (0, utils_2.startOfDay)(date) });
125
- if (effectiveType === "date")
126
- setOpen(false);
127
- }
128
- }
129
- else {
130
- const next = new Date(date);
131
- if (effectiveType !== "date" && singleValue) {
132
- next.setHours(singleValue.getHours(), singleValue.getMinutes(), 0, 0);
133
- }
134
- commitSingle(next);
135
- if (effectiveType === "date")
136
- setOpen(false);
137
- }
138
- };
139
- const handleTimeChange = (next) => {
140
- if (isRange)
141
- return;
142
- commitSingle(next);
143
- };
144
- const handleClear = (event) => {
145
- event.stopPropagation();
146
- if (isRange) {
147
- commitRange({ start: null, end: null });
148
- }
149
- else {
150
- commitSingle(null);
151
- }
152
- };
153
- const displayValue = (() => {
154
- if (isRange) {
155
- if (!range.start && !range.end)
156
- return "";
157
- const startText = range.start ? (0, utils_2.formatDate)(range.start, inferredFormat) : "…";
158
- const endText = range.end ? (0, utils_2.formatDate)(range.end, inferredFormat) : "…";
159
- return `${startText} – ${endText}`;
160
- }
161
- return singleValue ? (0, utils_2.formatDate)(singleValue, inferredFormat) : "";
162
- })();
163
- const hasValue = isRange
164
- ? !!(range.start || range.end)
165
- : !!singleValue;
166
- const onlyTime = effectiveType === "time";
167
- return (React.createElement(React.Fragment, null,
168
- React.createElement(popover_1.Popover, { open: open, onOpenChange: isReadOnly || isDisabled ? undefined : setOpen },
169
- React.createElement(popover_1.PopoverTrigger, { asChild: true },
170
- React.createElement("button", { ref: ref, type: "button", id: field.id || undefined, disabled: isDisabled, "aria-haspopup": "dialog", "aria-expanded": open, "aria-invalid": error || field.hasError || undefined, "aria-readonly": isReadOnly || undefined, className: (0, utils_1.cn)("flex w-full items-center justify-between gap-2 rounded-md border border-input bg-background text-foreground shadow-sm transition-colors", "focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-1 focus:ring-offset-background", "disabled:cursor-not-allowed disabled:opacity-50", "data-[state=open]:ring-2 data-[state=open]:ring-ring", TRIGGER_SIZE[size], error &&
171
- "border-destructive bg-destructive/5 focus:ring-destructive", isReadOnly && "cursor-default bg-muted", className) },
172
- React.createElement("span", { className: (0, utils_1.cn)("truncate text-left", !displayValue && "text-muted-foreground") }, displayValue || placeholder),
173
- React.createElement("span", { className: "flex items-center gap-1 text-muted-foreground" },
174
- clearable && hasValue && !isDisabled && !isReadOnly && (React.createElement("button", { type: "button", "aria-label": "Clear date", onClick: handleClear, className: "rounded-sm hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" },
175
- React.createElement(lucide_react_1.X, { className: "h-4 w-4" }))),
176
- React.createElement(lucide_react_1.Calendar, { className: "h-4 w-4 opacity-70" })))),
177
- React.createElement(popover_1.PopoverContent, { align: "start", className: "w-auto p-0", onOpenAutoFocus: (event) => {
178
- event.preventDefault();
179
- } },
180
- !onlyTime && (React.createElement(Calendar_1.Calendar, { viewDate: viewDate, onViewDateChange: setViewDate, selected: isRange ? null : singleValue, rangeStart: isRange ? range.start : null, rangeEnd: isRange ? range.end : null, onSelectDate: handleSelectDate, mode: isRange ? "range" : "single", constraints: constraints, weekStartsOn: weekStartsOn, locale: locale, compact: true })),
181
- (effectiveType === "datetime" || onlyTime) && !isRange && (React.createElement(TimePicker_1.TimePicker, { value: singleValue, onChange: handleTimeChange, hourFormat: hourFormat, minuteStep: minuteStep, referenceDate: viewDate })))),
182
- name && (React.createElement("input", { type: "hidden", name: name, value: isRange
183
- ? JSON.stringify({
184
- start: (_b = (_a = range.start) === null || _a === void 0 ? void 0 : _a.toISOString()) !== null && _b !== void 0 ? _b : null,
185
- end: (_d = (_c = range.end) === null || _c === void 0 ? void 0 : _c.toISOString()) !== null && _d !== void 0 ? _d : null,
186
- })
187
- : (_e = singleValue === null || singleValue === void 0 ? void 0 : singleValue.toISOString()) !== null && _e !== void 0 ? _e : "" }))));
188
- });
189
- DatePickerControl.displayName = "DatePickerControl";
@@ -1,12 +0,0 @@
1
- import * as React from "react";
2
- export interface TimePickerProps {
3
- value: Date | null;
4
- onChange: (date: Date) => void;
5
- /** 12 = 12-hour with AM/PM, 24 = 24-hour. */
6
- hourFormat?: 12 | 24;
7
- /** Step in minutes for the minute column. */
8
- minuteStep?: number;
9
- /** Base date when value is null — used to compose a Date with the chosen time. */
10
- referenceDate?: Date;
11
- }
12
- export declare function TimePicker({ value, onChange, hourFormat, minuteStep, referenceDate, }: TimePickerProps): React.ReactElement;
@@ -1,105 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.TimePicker = TimePicker;
37
- const React = __importStar(require("react"));
38
- const utils_1 = require("../../lib/utils");
39
- function TimePicker({ value, onChange, hourFormat = 24, minuteStep = 1, referenceDate, }) {
40
- var _a;
41
- const base = (_a = value !== null && value !== void 0 ? value : referenceDate) !== null && _a !== void 0 ? _a : new Date();
42
- const currentHour24 = base.getHours();
43
- const currentMinute = base.getMinutes();
44
- const isPM = currentHour24 >= 12;
45
- const hour12 = currentHour24 % 12 === 0 ? 12 : currentHour24 % 12;
46
- const setHour = (nextHour24) => {
47
- const next = new Date(base);
48
- next.setHours(nextHour24, currentMinute, 0, 0);
49
- onChange(next);
50
- };
51
- const setMinute = (m) => {
52
- const next = new Date(base);
53
- next.setMinutes(m, 0, 0);
54
- onChange(next);
55
- };
56
- const togglePeriod = (period) => {
57
- const wantsPM = period === "PM";
58
- if (wantsPM === isPM)
59
- return;
60
- const nextHour = wantsPM ? currentHour24 + 12 : currentHour24 - 12;
61
- setHour(((nextHour % 24) + 24) % 24);
62
- };
63
- const hours = hourFormat === 24
64
- ? Array.from({ length: 24 }, (_, i) => i)
65
- : Array.from({ length: 12 }, (_, i) => i + 1);
66
- const minutes = [];
67
- for (let m = 0; m < 60; m += minuteStep)
68
- minutes.push(m);
69
- return (React.createElement("div", { role: "group", "aria-label": "Time picker", className: "flex items-stretch justify-center gap-1 border-t border-border p-2" },
70
- React.createElement(ScrollColumn, { label: "Hour", items: hours, isSelected: (value) => hourFormat === 24 ? value === currentHour24 : value === hour12, onSelect: (value) => {
71
- if (hourFormat === 24) {
72
- setHour(value);
73
- }
74
- else {
75
- const normalized = value === 12 ? 0 : value;
76
- setHour(isPM ? normalized + 12 : normalized);
77
- }
78
- }, render: (v) => String(v).padStart(2, "0") }),
79
- React.createElement("span", { className: "self-center text-sm text-muted-foreground" }, ":"),
80
- React.createElement(ScrollColumn, { label: "Minute", items: minutes, isSelected: (value) => value === currentMinute, onSelect: setMinute, render: (v) => String(v).padStart(2, "0") }),
81
- hourFormat === 12 && (React.createElement("div", { role: "group", "aria-label": "Period", className: "ml-2 flex flex-col gap-1" },
82
- React.createElement(PeriodButton, { active: !isPM, onClick: () => togglePeriod("AM") }, "AM"),
83
- React.createElement(PeriodButton, { active: isPM, onClick: () => togglePeriod("PM") }, "PM")))));
84
- }
85
- function ScrollColumn({ label, items, isSelected, onSelect, render, }) {
86
- const ref = React.useRef(null);
87
- React.useEffect(() => {
88
- const node = ref.current;
89
- if (!node)
90
- return;
91
- const selected = node.querySelector('[data-selected="true"]');
92
- if (selected) {
93
- node.scrollTop =
94
- selected.offsetTop - node.clientHeight / 2 + selected.clientHeight / 2;
95
- }
96
- }, [items]);
97
- return (React.createElement("div", { ref: ref, role: "listbox", "aria-label": label, className: "flex h-32 w-12 flex-col gap-0.5 overflow-y-auto rounded-md border border-border bg-background p-1" }, items.map((item, index) => {
98
- const selected = isSelected(item);
99
- return (React.createElement("button", { key: index, type: "button", role: "option", "aria-selected": selected, "data-selected": selected, onClick: () => onSelect(item), className: (0, utils_1.cn)("rounded px-2 py-1 text-center text-sm transition-colors", "hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", selected &&
100
- "bg-primary text-primary-foreground hover:bg-primary") }, render(item)));
101
- })));
102
- }
103
- function PeriodButton({ active, onClick, children, }) {
104
- return (React.createElement("button", { type: "button", "aria-pressed": active, onClick: onClick, className: (0, utils_1.cn)("flex-1 rounded-md border border-border px-2 py-1 text-xs font-medium transition-colors", "hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", active && "bg-primary text-primary-foreground border-primary") }, children));
105
- }
@@ -1,31 +0,0 @@
1
- import { addDays, addMonths, addYears, endOfMonth, isAfter, isBefore, isSameDay, isSameMonth, startOfDay, startOfMonth } from "date-fns";
2
- export type DayOfWeek = 0 | 1 | 2 | 3 | 4 | 5 | 6;
3
- export interface DateRange {
4
- start: Date | null;
5
- end: Date | null;
6
- }
7
- export declare const DEFAULT_DATE_FORMAT = "dd/MM/yyyy";
8
- export declare const DEFAULT_DATETIME_FORMAT = "dd/MM/yyyy HH:mm";
9
- export declare const DEFAULT_TIME_FORMAT = "HH:mm";
10
- export declare function formatDate(date: Date | null | undefined, pattern: string): string;
11
- export declare function tryParseDate(text: string, pattern: string, referenceDate?: Date): Date | null;
12
- export interface CalendarCell {
13
- date: Date;
14
- inCurrentMonth: boolean;
15
- isToday: boolean;
16
- }
17
- /**
18
- * Returns the 6×7 grid for a given month, filled with leading/trailing days
19
- * from the adjacent months so the grid is always rectangular.
20
- */
21
- export declare function buildMonthGrid(referenceDate: Date, weekStartsOn: DayOfWeek): CalendarCell[];
22
- export declare function getWeekdayHeaders(weekStartsOn: DayOfWeek, locale?: Intl.LocalesArgument): string[];
23
- export interface DateConstraints {
24
- minDate?: Date;
25
- maxDate?: Date;
26
- disabledDates?: Date[];
27
- disabledDaysOfWeek?: DayOfWeek[];
28
- }
29
- export declare function isDateDisabled(date: Date, constraints: DateConstraints): boolean;
30
- export declare function inferTypeFromFormat(pattern: string): "date" | "time" | "datetime";
31
- export { addDays, addMonths, addYears, isAfter, isBefore, isSameDay, isSameMonth, startOfDay, startOfMonth, endOfMonth, };