ezux 1.1.13 → 1.1.18

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 (513) hide show
  1. package/README.md +58 -15
  2. package/dist/DeleteConfirmationModal-CukNDgtX.cjs +1 -0
  3. package/dist/DeleteConfirmationModal-p8XGDGIw.js +38 -0
  4. package/dist/EzContextMenu-BCUoEQp5.cjs +1 -0
  5. package/dist/EzContextMenu-srLxujt8.js +287 -0
  6. package/dist/EzErrorBoundary-C7a6VisX.js +74 -0
  7. package/dist/EzErrorBoundary-d_2g-_EK.cjs +1 -0
  8. package/dist/EzEventModal-C079wLjP.js +725 -0
  9. package/dist/EzEventModal-CAA9cAM0.cjs +1 -0
  10. package/dist/EzFlow-C74NbZA9.js +2545 -0
  11. package/dist/EzFlow-CQFeY7DL.cjs +5 -0
  12. package/dist/EzGroupingPanel-BVaAJaVU.js +107 -0
  13. package/dist/EzGroupingPanel-BwWDWEuW.cjs +1 -0
  14. package/dist/EzKanban-BlJWybKe.js +1575 -0
  15. package/dist/EzKanban-DdKODRRv.cjs +2 -0
  16. package/dist/EzLayout-BGnqFtvO.cjs +1 -0
  17. package/dist/EzLayout-CiaPLniV.js +7005 -0
  18. package/dist/EzProvider-AlmsYIDk.js +982 -0
  19. package/dist/EzProvider-L2qQMq-v.cjs +1 -0
  20. package/dist/EzScheduler-C1Jtvvju.js +2700 -0
  21. package/dist/EzScheduler-CkqTngI6.cjs +1 -0
  22. package/dist/EzSchedulerQuickAdd-BIC8xbSn.js +124 -0
  23. package/dist/EzSchedulerQuickAdd-BeNfGdWs.cjs +1 -0
  24. package/dist/EzSchedulerToolbar-BJwTpgas.cjs +1 -0
  25. package/dist/EzSchedulerToolbar-Ba4gbvUg.js +305 -0
  26. package/dist/EzSignature-7UHO5lSP.js +386 -0
  27. package/dist/EzSignature-Df7UZ-IS.cjs +1 -0
  28. package/dist/EzTable-CEXvJR1t.cjs +3 -0
  29. package/dist/EzTable-D2p1IWHc.js +4290 -0
  30. package/dist/EzTableEditDialog-BXnnYSSy.cjs +1 -0
  31. package/dist/EzTableEditDialog-Ccd5XoHm.js +84 -0
  32. package/dist/EzTableFooter-CtexeDAC.cjs +1 -0
  33. package/dist/EzTableFooter-DrLoWelo.js +35 -0
  34. package/dist/EzTableToolbar-BH5z9fSJ.js +160 -0
  35. package/dist/EzTableToolbar-DwuumvWP.cjs +1 -0
  36. package/dist/EzTreeView-D1G0Aomc.js +818 -0
  37. package/dist/EzTreeView-KMGlU4ax.cjs +1 -0
  38. package/dist/HighlightText-BViuwe03.cjs +1 -0
  39. package/dist/HighlightText-DNA2R2uf.js +56 -0
  40. package/dist/KanbanBoard-B7_Z5sh1.js +1697 -0
  41. package/dist/KanbanBoard-CyitudI1.cjs +1 -0
  42. package/dist/Modal-BmX1C448.cjs +1 -0
  43. package/dist/Modal-CrzpKyjK.js +74 -0
  44. package/dist/NotificationPanel-BzpDc10Q.js +54 -0
  45. package/dist/NotificationPanel-CFME00wq.cjs +1 -0
  46. package/dist/TooltipWrapper-BSAmUx9H.js +44 -0
  47. package/dist/TooltipWrapper-DfbFAZ1U.cjs +1 -0
  48. package/dist/advanced.cjs +10 -0
  49. package/dist/advanced.d.ts +44 -0
  50. package/dist/advanced.es.js +400 -0
  51. package/dist/avatar-BSdRHETK.cjs +1 -0
  52. package/dist/avatar-BvCUJ-_r.js +27 -0
  53. package/dist/button-BBMwzUtG.cjs +1 -0
  54. package/dist/button-CYyNwV8S.js +44 -0
  55. package/dist/calendar-DEHX32Cp.cjs +1 -0
  56. package/dist/calendar-DOIPGsyI.js +112 -0
  57. package/dist/card-CPlRZxbq.cjs +1 -0
  58. package/dist/card-ZUNxcdIM.js +60 -0
  59. package/dist/checkbox-BrCh_Iid.cjs +1 -0
  60. package/dist/checkbox-DRkQuB4W.js +21 -0
  61. package/dist/components/EzFlow/EzConnectionLine.d.ts +5 -0
  62. package/dist/components/EzFlow/EzFlow.examples.d.ts +5 -0
  63. package/dist/components/EzFlow/EzFlow.types.d.ts +260 -0
  64. package/dist/components/EzFlow/EzFlowBackground.d.ts +5 -0
  65. package/dist/components/EzFlow/EzFlowCanvas.d.ts +3 -0
  66. package/dist/components/EzFlow/EzFlowControls.d.ts +5 -0
  67. package/dist/components/EzFlow/EzFlowEdge.d.ts +5 -0
  68. package/dist/components/EzFlow/EzFlowHeader.d.ts +6 -0
  69. package/dist/components/EzFlow/EzFlowToolbox.d.ts +6 -0
  70. package/dist/components/EzFlow/EzWorkflow.d.ts +5 -0
  71. package/dist/components/EzFlow/EzWorkflowPerformance.d.ts +3 -0
  72. package/dist/components/EzFlow/EzWorkflowServiceAdapters.d.ts +24 -0
  73. package/dist/components/EzFlow/EzWorkflowValidation.d.ts +95 -0
  74. package/dist/components/EzFlow/index.d.ts +13 -0
  75. package/dist/components/EzFlow/nodes/ActionNode.d.ts +3 -0
  76. package/dist/components/EzFlow/nodes/ApprovalNode.d.ts +3 -0
  77. package/dist/components/EzFlow/nodes/DecisionNode.d.ts +3 -0
  78. package/dist/components/EzFlow/nodes/DelayNode.d.ts +3 -0
  79. package/dist/components/EzFlow/nodes/EndNode.d.ts +3 -0
  80. package/dist/components/EzFlow/nodes/GroupNode.d.ts +3 -0
  81. package/dist/components/EzFlow/nodes/LoopNode.d.ts +3 -0
  82. package/dist/components/EzFlow/nodes/RequestNode.d.ts +3 -0
  83. package/dist/components/EzFlow/nodes/StartNode.d.ts +3 -0
  84. package/dist/components/EzFlow/nodes/index.d.ts +9 -0
  85. package/dist/components/EzKanban/EzKanban.types.d.ts +808 -0
  86. package/dist/components/EzKanban/components/CardEditorModal.d.ts +23 -0
  87. package/dist/components/EzKanban/components/EzKanbanErrorFallback.d.ts +1 -0
  88. package/dist/components/EzKanban/components/FilterPopover.d.ts +10 -0
  89. package/dist/components/EzKanban/components/KanbanBoard.d.ts +59 -0
  90. package/dist/components/EzKanban/components/KanbanCard.d.ts +46 -0
  91. package/dist/components/EzKanban/components/KanbanColumn.d.ts +55 -0
  92. package/dist/components/EzKanban/components/KanbanSwimlane.d.ts +45 -0
  93. package/dist/components/EzKanban/components/KanbanToolbar.d.ts +41 -0
  94. package/dist/components/EzKanban/exports.d.ts +4 -0
  95. package/dist/components/EzKanban/hooks/useKanbanCards.d.ts +36 -0
  96. package/dist/components/EzKanban/hooks/useKanbanColumns.d.ts +27 -0
  97. package/dist/components/EzKanban/hooks/useKanbanDragDrop.d.ts +31 -0
  98. package/dist/components/EzKanban/hooks/useKanbanFilters.d.ts +23 -0
  99. package/dist/components/EzKanban/hooks/useKanbanState.d.ts +79 -0
  100. package/dist/components/EzKanban/hooks/useKanbanSwimlanes.d.ts +27 -0
  101. package/dist/components/EzKanban/hooks/useKanbanVirtualization.d.ts +16 -0
  102. package/dist/components/EzKanban/index.d.ts +51 -0
  103. package/dist/components/EzKanban/services/KanbanService.d.ts +31 -0
  104. package/dist/components/EzKanban/state/kanban.store.d.ts +33 -0
  105. package/dist/components/EzKanban/useEzKanban.d.ts +87 -0
  106. package/dist/components/EzKanban/views/KanbanTimelineView.d.ts +15 -0
  107. package/dist/components/EzLayout/Authentication/AuthSlider.d.ts +13 -0
  108. package/dist/components/EzLayout/Authentication/InputPassword.d.ts +7 -0
  109. package/dist/components/EzLayout/Authentication/SignInForm.d.ts +21 -0
  110. package/dist/components/EzLayout/Authentication/SignUpForm.d.ts +20 -0
  111. package/dist/components/EzLayout/EzHeader.d.ts +48 -0
  112. package/dist/components/EzLayout/EzLanguageSwitcher.d.ts +4 -0
  113. package/dist/components/EzLayout/EzLayout.types.d.ts +261 -0
  114. package/dist/components/EzLayout/EzOrganizationSwitcher.d.ts +14 -0
  115. package/dist/components/EzLayout/EzSidebar.d.ts +24 -0
  116. package/dist/components/EzLayout/EzThemeColorChanger.d.ts +9 -0
  117. package/dist/components/EzLayout/EzThemeSwitcher.d.ts +8 -0
  118. package/dist/components/EzLayout/EzUserProfile.d.ts +27 -0
  119. package/dist/components/EzLayout/components/EzSidebarFooter.d.ts +8 -0
  120. package/dist/components/EzLayout/components/EzSidebarNav.d.ts +10 -0
  121. package/dist/components/EzLayout/components/EzSidebarNavItem.d.ts +11 -0
  122. package/dist/components/EzLayout/components/MainContent.d.ts +13 -0
  123. package/dist/components/EzLayout/hooks/useLayoutImperative.d.ts +17 -0
  124. package/dist/components/EzLayout/hooks/useLayoutState.d.ts +25 -0
  125. package/dist/components/EzLayout/index.d.ts +23 -0
  126. package/dist/components/EzLayout/useEzLayout.d.ts +34 -0
  127. package/dist/components/EzScheduler/EzScheduler.types.d.ts +1252 -0
  128. package/dist/components/EzScheduler/EzSchedulerToolbar.d.ts +117 -0
  129. package/dist/components/EzScheduler/components/EzEventModal.d.ts +23 -0
  130. package/dist/components/EzScheduler/components/EzOverlapAlert.d.ts +12 -0
  131. package/dist/components/EzScheduler/components/EzQuickInfoPopup.d.ts +22 -0
  132. package/dist/components/EzScheduler/components/EzResourceSidebar.d.ts +33 -0
  133. package/dist/components/EzScheduler/components/EzSchedulerContent.d.ts +111 -0
  134. package/dist/components/EzScheduler/components/EzSchedulerQuickAdd.d.ts +17 -0
  135. package/dist/components/EzScheduler/components/RecurrenceEditor.d.ts +7 -0
  136. package/dist/components/EzScheduler/components/SchedulerLoadingSpinner.d.ts +2 -0
  137. package/dist/components/EzScheduler/components/dnd/DraggableEvent.d.ts +24 -0
  138. package/dist/components/EzScheduler/components/dnd/DroppableSlot.d.ts +19 -0
  139. package/dist/components/EzScheduler/hooks/useRecurrence.d.ts +2 -0
  140. package/dist/components/EzScheduler/hooks/useSchedulerEventHandlers.d.ts +15 -0
  141. package/dist/components/EzScheduler/hooks/useSchedulerEvents.d.ts +27 -0
  142. package/dist/components/EzScheduler/hooks/useSchedulerImperative.d.ts +19 -0
  143. package/dist/components/EzScheduler/hooks/useSchedulerNavigation.d.ts +9 -0
  144. package/dist/components/EzScheduler/hooks/useSchedulerResources.d.ts +10 -0
  145. package/dist/components/EzScheduler/hooks/useSchedulerState.d.ts +14 -0
  146. package/dist/components/EzScheduler/hooks/useSchedulerVirtualization.d.ts +9 -0
  147. package/dist/components/EzScheduler/index.d.ts +43 -0
  148. package/dist/components/EzScheduler/models/EventSettings.d.ts +11 -0
  149. package/dist/components/EzScheduler/models/View.d.ts +49 -0
  150. package/dist/components/EzScheduler/models/index.d.ts +2 -0
  151. package/dist/components/EzScheduler/services/AttendeeService.d.ts +15 -0
  152. package/dist/components/EzScheduler/services/AuditService.d.ts +15 -0
  153. package/dist/components/EzScheduler/services/CollisionDetectionService.d.ts +19 -0
  154. package/dist/components/EzScheduler/services/DragAndDropService.d.ts +16 -0
  155. package/dist/components/EzScheduler/services/HistoryService.d.ts +31 -0
  156. package/dist/components/EzScheduler/services/ICalendarImportService.d.ts +16 -0
  157. package/dist/components/EzScheduler/services/PrintService.d.ts +7 -0
  158. package/dist/components/EzScheduler/services/RecurrenceEngine.d.ts +7 -0
  159. package/dist/components/EzScheduler/services/ReminderService.d.ts +17 -0
  160. package/dist/components/EzScheduler/services/SchedulerService.d.ts +71 -0
  161. package/dist/components/EzScheduler/services/SearchService.d.ts +11 -0
  162. package/dist/components/EzScheduler/services/SecurityService.d.ts +25 -0
  163. package/dist/components/EzScheduler/services/TimezoneService.d.ts +20 -0
  164. package/dist/components/EzScheduler/services/VirtualScrollingService.d.ts +34 -0
  165. package/dist/components/EzScheduler/state/scheduler.store.d.ts +27 -0
  166. package/dist/components/EzScheduler/templates/CellTemplate.d.ts +42 -0
  167. package/dist/components/EzScheduler/templates/EditorTemplate.d.ts +32 -0
  168. package/dist/components/EzScheduler/templates/HeaderTemplate.d.ts +36 -0
  169. package/dist/components/EzScheduler/useEzScheduler.d.ts +104 -0
  170. package/dist/components/EzScheduler/utils/createDragConstraint.d.ts +7 -0
  171. package/dist/components/EzScheduler/utils/getWeekNumber.d.ts +8 -0
  172. package/dist/components/EzScheduler/utils/sanitizeHtml.d.ts +18 -0
  173. package/dist/components/EzScheduler/views/AgendaView.d.ts +28 -0
  174. package/dist/components/EzScheduler/views/DayWeekView.d.ts +177 -0
  175. package/dist/components/EzScheduler/views/MonthView.d.ts +60 -0
  176. package/dist/components/EzScheduler/views/TimelineView.d.ts +116 -0
  177. package/dist/components/EzSignature/EzSignature.d.ts +42 -0
  178. package/dist/components/EzSignature/EzSignature.types.d.ts +132 -0
  179. package/dist/components/EzSignature/index.d.ts +2 -0
  180. package/dist/components/EzTable/EzColumnMenu.d.ts +7 -0
  181. package/dist/components/EzTable/EzDateFilterTree.d.ts +7 -0
  182. package/dist/components/EzTable/EzExcelFilter.d.ts +8 -0
  183. package/dist/components/EzTable/EzFilterBuilder.d.ts +12 -0
  184. package/dist/components/EzTable/EzGroupingPanel.d.ts +9 -0
  185. package/dist/components/EzTable/EzHeaderContextMenu.d.ts +8 -0
  186. package/dist/components/EzTable/EzPagination.d.ts +19 -0
  187. package/dist/components/EzTable/EzTable.types.d.ts +1 -0
  188. package/dist/components/EzTable/EzTableEditDialog.d.ts +15 -0
  189. package/dist/components/EzTable/EzTableFooter.d.ts +10 -0
  190. package/dist/components/EzTable/EzTableOverlays.d.ts +11 -0
  191. package/dist/components/EzTable/EzTableStatusBar.d.ts +10 -0
  192. package/dist/components/EzTable/EzTableToolbar.d.ts +60 -0
  193. package/dist/components/EzTable/SmartCell.d.ts +7 -0
  194. package/dist/components/EzTable/components/AdvancedColumnFilter.d.ts +16 -0
  195. package/dist/components/EzTable/components/BooleanFilterSection.d.ts +7 -0
  196. package/dist/components/EzTable/components/EzDraggableHeader.d.ts +10 -0
  197. package/dist/components/EzTable/components/EzHeaderDragPreview.d.ts +7 -0
  198. package/dist/components/EzTable/components/EzTableBodySection.d.ts +72 -0
  199. package/dist/components/EzTable/components/EzTableCell.d.ts +46 -0
  200. package/dist/components/EzTable/components/EzTableHeaderSection.d.ts +23 -0
  201. package/dist/components/EzTable/components/EzTablePaginationSection.d.ts +31 -0
  202. package/dist/components/EzTable/components/EzTableRow.d.ts +58 -0
  203. package/dist/components/EzTable/components/FilterActionButtons.d.ts +16 -0
  204. package/dist/components/EzTable/components/FilterRuleSelect.d.ts +26 -0
  205. package/dist/components/EzTable/components/SelectAllCheckbox.d.ts +21 -0
  206. package/dist/components/EzTable/components/SelectFilterSection.d.ts +18 -0
  207. package/dist/components/EzTable/components/VirtualizedFilterList.d.ts +21 -0
  208. package/dist/components/EzTable/constants/filterOptions.d.ts +47 -0
  209. package/dist/components/EzTable/context/EzTableContext.d.ts +10 -0
  210. package/dist/components/EzTable/context/TableConfigContext.d.ts +13 -0
  211. package/dist/components/EzTable/context/TableStore.d.ts +17 -0
  212. package/dist/components/EzTable/filterUtils.d.ts +5 -0
  213. package/dist/components/EzTable/hooks/useAutoFit.d.ts +4 -0
  214. package/dist/components/EzTable/hooks/useCellEventHandlers.d.ts +16 -0
  215. package/dist/components/EzTable/hooks/useColumnSizeVars.d.ts +6 -0
  216. package/dist/components/EzTable/hooks/useContainerResize.d.ts +11 -0
  217. package/dist/components/EzTable/hooks/useDialogStateInitialization.d.ts +8 -0
  218. package/dist/components/EzTable/hooks/useFilterSelection.d.ts +12 -0
  219. package/dist/components/EzTable/hooks/useTableFiltering.d.ts +23 -0
  220. package/dist/components/EzTable/hooks/useTableHistory.d.ts +87 -0
  221. package/dist/components/EzTable/hooks/useTableImperative.d.ts +42 -0
  222. package/dist/components/EzTable/hooks/useTableSelection.d.ts +32 -0
  223. package/dist/components/EzTable/hooks/useTableState.d.ts +33 -0
  224. package/dist/components/EzTable/hooks/useTableVirtualization.d.ts +35 -0
  225. package/dist/components/EzTable/index.d.ts +54 -0
  226. package/dist/components/EzTable/renderers/index.d.ts +6 -0
  227. package/dist/components/EzTable/services/TableService.d.ts +29 -0
  228. package/dist/components/EzTable/types/EzTableColumn.types.d.ts +146 -0
  229. package/dist/components/EzTable/types/EzTableEdit.types.d.ts +58 -0
  230. package/dist/components/EzTable/types/EzTableFilter.types.d.ts +50 -0
  231. package/dist/components/EzTable/types/EzTableProps.d.ts +750 -0
  232. package/dist/components/EzTable/types/index.d.ts +4 -0
  233. package/dist/components/EzTable/useEzTable.d.ts +17 -0
  234. package/dist/components/EzTable/utils/SizingUtils.d.ts +11 -0
  235. package/dist/components/EzTable/utils/TextMeasurer.d.ts +1 -0
  236. package/dist/components/EzTable/utils/TruncatedTooltip.d.ts +7 -0
  237. package/dist/components/EzTable/utils/columnTypeDetector.d.ts +5 -0
  238. package/dist/components/EzTable/utils/filterTypeGuards.d.ts +3 -0
  239. package/dist/components/EzTable/utils/index.d.ts +1 -0
  240. package/dist/components/EzTreeView/EzTreeView.types.d.ts +364 -0
  241. package/dist/components/EzTreeView/EzTreeViewItem.d.ts +89 -0
  242. package/dist/components/EzTreeView/EzVirtualTree.d.ts +84 -0
  243. package/dist/components/EzTreeView/components/EzTreeViewLoadingSpinner.d.ts +2 -0
  244. package/dist/components/EzTreeView/hooks/useTreeDragDrop.d.ts +31 -0
  245. package/dist/components/EzTreeView/hooks/useTreeExpansion.d.ts +21 -0
  246. package/dist/components/EzTreeView/hooks/useTreeImperative.d.ts +28 -0
  247. package/dist/components/EzTreeView/hooks/useTreeSelection.d.ts +31 -0
  248. package/dist/components/EzTreeView/hooks/useTreeState.d.ts +21 -0
  249. package/dist/components/EzTreeView/hooks/useTreeVirtualization.d.ts +18 -0
  250. package/dist/components/EzTreeView/index.d.ts +40 -0
  251. package/dist/components/EzTreeView/services/TreeService.d.ts +11 -0
  252. package/dist/components/EzTreeView/useEzTreeView.d.ts +50 -0
  253. package/dist/components/EzTreeView/utils/treeUtils.d.ts +17 -0
  254. package/dist/components/shared/components/EzErrorBoundary.d.ts +18 -0
  255. package/dist/components/shared/components/EzLayoutErrorFallback.d.ts +2 -0
  256. package/dist/components/shared/components/EzLoadingSpinner.d.ts +8 -0
  257. package/dist/components/shared/components/EzSchedulerErrorFallback.d.ts +2 -0
  258. package/dist/components/shared/components/EzSortableList.d.ts +12 -0
  259. package/dist/components/shared/components/EzTableErrorFallback.d.ts +2 -0
  260. package/dist/components/shared/components/EzTreeViewErrorFallback.d.ts +2 -0
  261. package/dist/components/ui/avatar.d.ts +10 -0
  262. package/dist/components/ui/badge.d.ts +9 -0
  263. package/dist/components/ui/breadcrumb.d.ts +19 -0
  264. package/dist/components/ui/button.d.ts +13 -0
  265. package/dist/components/ui/calendar.d.ts +15 -0
  266. package/dist/components/ui/card.d.ts +10 -0
  267. package/dist/components/ui/checkbox.d.ts +7 -0
  268. package/dist/components/ui/combobox.d.ts +19 -0
  269. package/dist/components/ui/command.d.ts +78 -0
  270. package/dist/components/ui/context-menu.d.ts +27 -0
  271. package/dist/components/ui/date-time-picker.d.ts +14 -0
  272. package/dist/components/ui/dropdown-menu.d.ts +31 -0
  273. package/dist/components/ui/index.d.ts +27 -0
  274. package/dist/components/ui/input.d.ts +5 -0
  275. package/dist/components/ui/label.d.ts +9 -0
  276. package/dist/components/ui/modal.d.ts +9 -0
  277. package/dist/components/ui/password-input.d.ts +5 -0
  278. package/dist/components/ui/popover.d.ts +10 -0
  279. package/dist/components/ui/progress.d.ts +7 -0
  280. package/dist/components/ui/radio-group.d.ts +5 -0
  281. package/dist/components/ui/resizable.d.ts +8 -0
  282. package/dist/components/ui/scroll-area.d.ts +5 -0
  283. package/dist/components/ui/select.d.ts +26 -0
  284. package/dist/components/ui/skeleton.d.ts +2 -0
  285. package/dist/components/ui/switch.d.ts +6 -0
  286. package/dist/components/ui/table.d.ts +10 -0
  287. package/dist/components/ui/tabs.d.ts +22 -0
  288. package/dist/components/ui/textarea.d.ts +5 -0
  289. package/dist/components/ui/tooltip.d.ts +10 -0
  290. package/dist/date-time-picker-Bs-7XzHD.cjs +1 -0
  291. package/dist/date-time-picker-fUzf4TnU.js +127 -0
  292. package/dist/dropdown-menu-BRP0tyR_.cjs +1 -0
  293. package/dist/dropdown-menu-B_7_K13o.js +78 -0
  294. package/dist/ezux.css +2 -1
  295. package/dist/flow.cjs +1 -0
  296. package/dist/flow.d.ts +2 -0
  297. package/dist/flow.es.js +2 -0
  298. package/dist/index.cjs +3 -12
  299. package/dist/index.d.ts +66 -6404
  300. package/dist/index.es.js +229 -1041
  301. package/dist/input-CYlvlbF7.cjs +1 -0
  302. package/dist/input-Cj3sQK3M.js +14 -0
  303. package/dist/kanban.cjs +1 -1
  304. package/dist/kanban.d.ts +2 -1343
  305. package/dist/kanban.es.js +4 -17
  306. package/dist/label-BGgvoZWD.cjs +1 -0
  307. package/dist/label-DWEV--5W.js +16 -0
  308. package/dist/layout.cjs +1 -1
  309. package/dist/layout.d.ts +2 -690
  310. package/dist/layout.es.js +2 -20
  311. package/dist/lib/perfect-freehand.d.ts +221 -0
  312. package/dist/lib/utils.d.ts +2 -0
  313. package/dist/mock-services.cjs +1 -0
  314. package/dist/mock-services.d.ts +8 -0
  315. package/dist/mock-services.es.js +161 -0
  316. package/dist/popover-D1akYj0W.js +17 -0
  317. package/dist/popover-wZKNvYM5.cjs +1 -0
  318. package/dist/scheduler.cjs +1 -1
  319. package/dist/scheduler.d.ts +2 -1430
  320. package/dist/scheduler.es.js +2 -11
  321. package/dist/scroll-area-BJs87d45.js +35 -0
  322. package/dist/scroll-area-DSkE2KB_.cjs +1 -0
  323. package/dist/select-D4tFaSai.js +43 -0
  324. package/dist/select-sVieKbLu.cjs +1 -0
  325. package/dist/shared/components/AnimatedText.d.ts +44 -0
  326. package/dist/shared/components/BaseCell.d.ts +14 -0
  327. package/dist/shared/components/BooleanRenderer.d.ts +34 -0
  328. package/dist/shared/components/ChartRenderer.d.ts +19 -0
  329. package/dist/shared/components/DeleteConfirmationModal.d.ts +11 -0
  330. package/dist/shared/components/EzContextMenu.d.ts +12 -0
  331. package/dist/shared/components/EzNotificationDropdown.d.ts +2 -0
  332. package/dist/shared/components/HighlightText.d.ts +4 -0
  333. package/dist/shared/components/Modal.d.ts +13 -0
  334. package/dist/shared/components/NotificationPanel.d.ts +2 -0
  335. package/dist/shared/components/PrimitiveRenderer.d.ts +39 -0
  336. package/dist/shared/components/SearchableSelect.d.ts +13 -0
  337. package/dist/shared/components/SelectRenderer.d.ts +33 -0
  338. package/dist/shared/components/StatusBadge.d.ts +21 -0
  339. package/dist/shared/components/TooltipWrapper.d.ts +12 -0
  340. package/dist/shared/components/index.d.ts +9 -0
  341. package/dist/shared/contexts/EzProvider.d.ts +56 -0
  342. package/dist/shared/hooks/index.d.ts +56 -0
  343. package/dist/shared/hooks/useBaseComponent.d.ts +59 -0
  344. package/dist/shared/hooks/useComponentImperativeAPI.d.ts +11 -0
  345. package/dist/shared/hooks/useComponentState.d.ts +39 -0
  346. package/dist/shared/hooks/useCurrentTime.d.ts +6 -0
  347. package/dist/shared/hooks/useDataChangeEvents.d.ts +53 -0
  348. package/dist/shared/hooks/useDebounce.d.ts +10 -0
  349. package/dist/shared/hooks/useDeleteConfirmation.d.ts +9 -0
  350. package/dist/shared/hooks/useDialogState.d.ts +21 -0
  351. package/dist/shared/hooks/useDndHandlers.d.ts +19 -0
  352. package/dist/shared/hooks/useEditing.d.ts +107 -0
  353. package/dist/shared/hooks/useEventHandlers.d.ts +61 -0
  354. package/dist/shared/hooks/useEzTheme.d.ts +22 -0
  355. package/dist/shared/hooks/useFieldValidation.d.ts +24 -0
  356. package/dist/shared/hooks/useHistory.d.ts +13 -0
  357. package/dist/shared/hooks/useI18n.d.ts +8 -0
  358. package/dist/shared/hooks/useImperativeAPI.d.ts +8 -0
  359. package/dist/shared/hooks/useInitCoreServices.d.ts +5 -0
  360. package/dist/shared/hooks/useKeyboardNavigation.d.ts +36 -0
  361. package/dist/shared/hooks/useKeyboardShortcuts.d.ts +14 -0
  362. package/dist/shared/hooks/useLifecycleEvents.d.ts +22 -0
  363. package/dist/shared/hooks/useLoadingState.d.ts +17 -0
  364. package/dist/shared/hooks/useMediaQuery.d.ts +6 -0
  365. package/dist/shared/hooks/useNotificationService.d.ts +8 -0
  366. package/dist/shared/hooks/usePerformanceMonitor.d.ts +22 -0
  367. package/dist/shared/hooks/useRowSelectionEvents.d.ts +44 -0
  368. package/dist/shared/hooks/useSelection.d.ts +73 -0
  369. package/dist/shared/hooks/useService.d.ts +12 -0
  370. package/dist/shared/hooks/useServiceState.d.ts +1 -0
  371. package/dist/shared/hooks/useStateChangeEvents.d.ts +61 -0
  372. package/dist/shared/hooks/useTheme.d.ts +13 -0
  373. package/dist/shared/hooks/useVirtualization.d.ts +85 -0
  374. package/dist/shared/services/BaseService.d.ts +57 -0
  375. package/dist/shared/services/ContextMenuService.d.ts +58 -0
  376. package/dist/shared/services/ExportService.d.ts +35 -0
  377. package/dist/shared/services/FocusManagerService.d.ts +33 -0
  378. package/dist/shared/services/HierarchyService.d.ts +43 -0
  379. package/dist/shared/services/I18nService.d.ts +84 -0
  380. package/dist/shared/services/LayoutService.d.ts +80 -0
  381. package/dist/shared/services/NotificationService.d.ts +44 -0
  382. package/dist/shared/services/PersistenceService.d.ts +69 -0
  383. package/dist/shared/services/ServiceRegistry.d.ts +52 -0
  384. package/dist/shared/services/ThemeService.d.ts +49 -0
  385. package/dist/shared/services/VirtualizationService.d.ts +51 -0
  386. package/dist/shared/state/store.d.ts +10 -0
  387. package/dist/shared/themes.d.ts +25 -0
  388. package/dist/shared/types/BaseProps.d.ts +17 -0
  389. package/dist/shared/types/common.d.ts +373 -0
  390. package/dist/shared/types/index.d.ts +2 -0
  391. package/dist/shared/utils/canvasUtils.d.ts +16 -0
  392. package/dist/shared/utils/commonUtils.d.ts +28 -0
  393. package/dist/shared/utils/csvUtils.d.ts +7 -0
  394. package/dist/shared/utils/dateUtils.d.ts +5 -0
  395. package/dist/shared/utils/dndUtils.d.ts +16 -0
  396. package/dist/shared/utils/formatUtils.d.ts +20 -0
  397. package/dist/shared/utils/imperativeApiUtils.d.ts +36 -0
  398. package/dist/shared/utils/index.d.ts +11 -0
  399. package/dist/shared/utils/renderUtils.d.ts +6 -0
  400. package/dist/shared/utils/serviceUtils.d.ts +10 -0
  401. package/dist/shared/utils/styleUtils.d.ts +121 -0
  402. package/dist/shared/utils/validationUtils.d.ts +16 -0
  403. package/dist/signature.cjs +1 -1
  404. package/dist/signature.d.ts +2 -410
  405. package/dist/signature.es.js +2 -4
  406. package/dist/table.cjs +1 -1
  407. package/dist/table.d.ts +2 -1059
  408. package/dist/table.es.js +2 -17
  409. package/dist/theme-vars.css +143 -135
  410. package/dist/tooltip-B1wC9m05.js +16 -0
  411. package/dist/tooltip-Qmzrg5u5.cjs +1 -0
  412. package/dist/treeview.cjs +1 -1
  413. package/dist/treeview.d.ts +2 -656
  414. package/dist/treeview.es.js +2 -954
  415. package/dist/useComponentState-DiSFLYju.js +57 -0
  416. package/dist/useComponentState-Wcz6pjd6.cjs +1 -0
  417. package/dist/useImperativeAPI-Dbx2hMTb.js +7 -0
  418. package/dist/useImperativeAPI-VrgLwXEO.cjs +1 -0
  419. package/dist/useInitCoreServices-CuBrviDM.js +40 -0
  420. package/dist/useInitCoreServices-DlALVDNx.cjs +1 -0
  421. package/dist/useService-CnCBGG3G.js +10 -0
  422. package/dist/useService-CyF782jv.cjs +1 -0
  423. package/dist/useServiceState-CkrJZm1D.js +21 -0
  424. package/dist/useServiceState-PyYQWxHi.cjs +1 -0
  425. package/package.json +76 -56
  426. package/dist/EzContextMenu-B6HBUjWv.cjs +0 -5
  427. package/dist/EzContextMenu-BSA_B6Pr.js +0 -3500
  428. package/dist/EzErrorBoundary-CEdz_hDo.cjs +0 -41
  429. package/dist/EzErrorBoundary-D4NBadES.js +0 -3727
  430. package/dist/EzEventModal-BUMp_BFi.js +0 -689
  431. package/dist/EzEventModal-xzHfzi0O.cjs +0 -1
  432. package/dist/EzGroupingPanel-BUsIYDRi.js +0 -143
  433. package/dist/EzGroupingPanel-D0HdSomF.cjs +0 -1
  434. package/dist/EzSchedulerQuickAdd-C653LTGh.js +0 -118
  435. package/dist/EzSchedulerQuickAdd-UnOWCpJd.cjs +0 -1
  436. package/dist/EzSchedulerToolbar-C-5OdRY6.cjs +0 -1
  437. package/dist/EzSchedulerToolbar-CO5jjDQg.js +0 -240
  438. package/dist/EzSignature-BaNesxwC.cjs +0 -1
  439. package/dist/EzSignature-D4EYwo9W.js +0 -419
  440. package/dist/EzTableEditDialog-Cd948V1C.js +0 -63
  441. package/dist/EzTableEditDialog-NiOubaMT.cjs +0 -1
  442. package/dist/EzTableFooter-CWjfGCjL.cjs +0 -1
  443. package/dist/EzTableFooter-DveD12RC.js +0 -54
  444. package/dist/EzTableToolbar-Bz8UWv6j.js +0 -246
  445. package/dist/EzTableToolbar-DHE7Bb1R.cjs +0 -1
  446. package/dist/HighlightText-8D6KEyBw.js +0 -68
  447. package/dist/HighlightText-LtZmzCle.cjs +0 -1
  448. package/dist/NotificationPanel-D2Y-_ahk.js +0 -68
  449. package/dist/NotificationPanel-zLxrtTGf.cjs +0 -1
  450. package/dist/TooltipWrapper-BrRTi5EJ.js +0 -2021
  451. package/dist/TooltipWrapper-DWts4bAI.cjs +0 -1
  452. package/dist/avatar-BeK0E4mn.js +0 -41
  453. package/dist/avatar-DZAaTK2f.cjs +0 -1
  454. package/dist/bell-DAz8P0BR.js +0 -14
  455. package/dist/bell-DOX2y38e.cjs +0 -1
  456. package/dist/calendar-BMZ8ddOf.cjs +0 -1
  457. package/dist/calendar-Dy3rVMW2.js +0 -90
  458. package/dist/checkbox-B0lGHUyy.cjs +0 -1
  459. package/dist/checkbox-boJRxICT.js +0 -46
  460. package/dist/chevron-down-C3s8jU6B.js +0 -5
  461. package/dist/chevron-down-DZVL7VHW.cjs +0 -1
  462. package/dist/chevron-left-BFr8XZyF.js +0 -5
  463. package/dist/chevron-left-HWhRo6IH.cjs +0 -1
  464. package/dist/circle-alert-77QqFR-z.cjs +0 -1
  465. package/dist/circle-alert-B2AMDd8N.js +0 -9
  466. package/dist/circle-x-Cv7bfIC_.js +0 -9
  467. package/dist/circle-x-DwVXxhXr.cjs +0 -1
  468. package/dist/date-time-picker-DTxHdPgQ.cjs +0 -1
  469. package/dist/date-time-picker-Dj2eftJI.js +0 -1636
  470. package/dist/download-0ZhO2XaW.cjs +0 -1
  471. package/dist/download-panVHmk6.js +0 -9
  472. package/dist/ellipsis-CuqNthAj.js +0 -9
  473. package/dist/ellipsis-CzlqJf-i.cjs +0 -1
  474. package/dist/grip-vertical-CSyDKBul.js +0 -12
  475. package/dist/grip-vertical-DZNBW1Dn.cjs +0 -1
  476. package/dist/index-B3ipEEhH.cjs +0 -2
  477. package/dist/index-BPPb7bcs.js +0 -3220
  478. package/dist/index-BQKw_Vho.js +0 -9604
  479. package/dist/index-C5STgBSy.js +0 -5203
  480. package/dist/index-C6NfgycP.js +0 -4644
  481. package/dist/index-D4f2ZdrG.cjs +0 -2
  482. package/dist/index-DUY1SqMo.cjs +0 -1
  483. package/dist/index-c1Zg--dt.cjs +0 -7
  484. package/dist/input-BgM_la4k.cjs +0 -1
  485. package/dist/input-jYQ5VKNR.js +0 -21
  486. package/dist/isBefore-C3Y_wbk3.js +0 -15
  487. package/dist/isBefore-Cp1ttk6q.cjs +0 -1
  488. package/dist/label-ClOW9UCt.js +0 -55
  489. package/dist/label-Dx6oDB-X.cjs +0 -1
  490. package/dist/layers-BA4i1fYX.js +0 -27
  491. package/dist/layers-xSPd-hz3.cjs +0 -1
  492. package/dist/popover-BJq1CKmi.cjs +0 -1
  493. package/dist/popover-Cmlb7w3R.js +0 -341
  494. package/dist/scroll-area-9fwpVNxT.js +0 -573
  495. package/dist/scroll-area-CwwZSSA4.cjs +0 -1
  496. package/dist/select-GxA46anr.cjs +0 -1
  497. package/dist/select-mDCun_IR.js +0 -35
  498. package/dist/settings-CvyjK75A.js +0 -31
  499. package/dist/settings-DKPknrt8.cjs +0 -1
  500. package/dist/sortable.esm-CsRPuXyD.cjs +0 -1
  501. package/dist/sortable.esm-CzMCDPet.js +0 -477
  502. package/dist/tooltip-B41iztKT.cjs +0 -1
  503. package/dist/tooltip-BCtrEe0z.js +0 -490
  504. package/dist/useComponentState-C87xXa5d.js +0 -64
  505. package/dist/useComponentState-DDgGbBXv.cjs +0 -1
  506. package/dist/useImperativeAPI-DXmCQvPL.js +0 -7
  507. package/dist/useImperativeAPI-DbZ3owSV.cjs +0 -1
  508. package/dist/useInitCoreServices-CwXv2p4S.cjs +0 -1
  509. package/dist/useInitCoreServices-D1WaWlaI.js +0 -3929
  510. package/dist/useService-8OoezWr8.cjs +0 -1
  511. package/dist/useService-BUi3uAqE.js +0 -10
  512. package/dist/useServiceState-BjpCjUn2.cjs +0 -1
  513. package/dist/useServiceState-VE-viK8b.js +0 -24
@@ -0,0 +1,1575 @@
1
+ import { _ as e, n as t } from "./EzProvider-AlmsYIDk.js";
2
+ import { t as n } from "./button-CYyNwV8S.js";
3
+ import { t as r } from "./input-Cj3sQK3M.js";
4
+ import { t as i } from "./label-DWEV--5W.js";
5
+ import { t as a } from "./EzErrorBoundary-C7a6VisX.js";
6
+ import { t as o } from "./useInitCoreServices-CuBrviDM.js";
7
+ import { t as s } from "./NotificationPanel-BzpDc10Q.js";
8
+ import { i as c } from "./EzScheduler-C1Jtvvju.js";
9
+ import { t as l } from "./useServiceState-CkrJZm1D.js";
10
+ import { n as u, r as d, t as f } from "./popover-D1akYj0W.js";
11
+ import { a as p, i as m, n as h, r as g, t as _ } from "./select-D4tFaSai.js";
12
+ import { t as v } from "./checkbox-DRkQuB4W.js";
13
+ import { c as y } from "./card-ZUNxcdIM.js";
14
+ import { f as b, s as x, t as S } from "./KanbanBoard-B7_Z5sh1.js";
15
+ import { t as C } from "./scroll-area-BJs87d45.js";
16
+ import { t as w } from "./DeleteConfirmationModal-p8XGDGIw.js";
17
+ import { forwardRef as T, useCallback as E, useEffect as D, useImperativeHandle as O, useMemo as k, useRef as A, useState as j } from "react";
18
+ import { AlertTriangle as M, Download as N, Filter as P, Layers as F, Layout as I, Plus as L, Redo2 as R, Search as z, Undo2 as B } from "lucide-react";
19
+ import { Fragment as V, jsx as H, jsxs as U } from "react/jsx-runtime";
20
+ import { Store as W } from "@tanstack/store";
21
+ import { useStore as G } from "@tanstack/react-store";
22
+ import { QueryClient as ee, QueryClientProvider as te, useMutation as K, useQueryClient as q } from "@tanstack/react-query";
23
+ //#region src/components/EzKanban/components/EzKanbanErrorFallback.tsx
24
+ var J = () => /* @__PURE__ */ H("div", {
25
+ className: "flex flex-col items-center justify-center h-full p-8",
26
+ children: /* @__PURE__ */ U("div", {
27
+ className: "flex flex-col items-center gap-4 max-w-md",
28
+ children: [
29
+ /* @__PURE__ */ H("div", {
30
+ className: "flex items-center justify-center w-16 h-16 rounded-full bg-destructive/10",
31
+ children: /* @__PURE__ */ H(M, { className: "w-8 h-8 text-destructive" })
32
+ }),
33
+ /* @__PURE__ */ U("div", {
34
+ className: "flex flex-col items-center gap-2 text-center",
35
+ children: [/* @__PURE__ */ H("h2", {
36
+ className: "text-lg font-semibold",
37
+ children: "Kanban Board Error"
38
+ }), /* @__PURE__ */ H("p", {
39
+ className: "text-sm text-muted-foreground",
40
+ children: "An error occurred while rendering the Kanban board. Please refresh the page or contact support if the issue persists."
41
+ })]
42
+ }),
43
+ /* @__PURE__ */ H(n, {
44
+ onClick: () => window.location.reload(),
45
+ children: "Reload Board"
46
+ })
47
+ ]
48
+ })
49
+ }), Y = (e, t = "standard") => new W({
50
+ board: e,
51
+ selectedCards: [],
52
+ selectedColumnId: null,
53
+ view: t,
54
+ searchQuery: "",
55
+ activeFilters: {},
56
+ history: [e],
57
+ historyIndex: 0
58
+ }), X = (e) => ({
59
+ setBoard: (t) => {
60
+ e.setState((e) => {
61
+ let n = [...e.history.slice(0, e.historyIndex + 1), t];
62
+ return {
63
+ ...e,
64
+ board: t,
65
+ history: n,
66
+ historyIndex: n.length - 1
67
+ };
68
+ });
69
+ },
70
+ addCard: (t) => {
71
+ e.setState((e) => {
72
+ let n = {
73
+ ...e.board,
74
+ cards: [...e.board.cards, t]
75
+ }, r = [...e.history.slice(0, e.historyIndex + 1), n];
76
+ return {
77
+ ...e,
78
+ board: n,
79
+ history: r,
80
+ historyIndex: r.length - 1
81
+ };
82
+ });
83
+ },
84
+ updateCard: (t, n) => {
85
+ e.setState((e) => {
86
+ let r = {
87
+ ...e.board,
88
+ cards: e.board.cards.map((e) => e.id === t ? {
89
+ ...e,
90
+ ...n
91
+ } : e)
92
+ }, i = [...e.history.slice(0, e.historyIndex + 1), r];
93
+ return {
94
+ ...e,
95
+ board: r,
96
+ history: i,
97
+ historyIndex: i.length - 1
98
+ };
99
+ });
100
+ },
101
+ deleteCard: (t) => {
102
+ e.setState((e) => {
103
+ let n = {
104
+ ...e.board,
105
+ cards: e.board.cards.filter((e) => e.id !== t)
106
+ }, r = [...e.history.slice(0, e.historyIndex + 1), n];
107
+ return {
108
+ ...e,
109
+ board: n,
110
+ history: r,
111
+ historyIndex: r.length - 1
112
+ };
113
+ });
114
+ },
115
+ moveCard: (t, n) => {
116
+ e.setState((e) => {
117
+ let r = {
118
+ ...e.board,
119
+ cards: e.board.cards.map((e) => e.id === t ? {
120
+ ...e,
121
+ columnId: n
122
+ } : e)
123
+ }, i = [...e.history.slice(0, e.historyIndex + 1), r];
124
+ return {
125
+ ...e,
126
+ board: r,
127
+ history: i,
128
+ historyIndex: i.length - 1
129
+ };
130
+ });
131
+ },
132
+ addColumn: (t) => {
133
+ e.setState((e) => {
134
+ let n = {
135
+ ...e.board,
136
+ columns: [...e.board.columns, t]
137
+ }, r = [...e.history.slice(0, e.historyIndex + 1), n];
138
+ return {
139
+ ...e,
140
+ board: n,
141
+ history: r,
142
+ historyIndex: r.length - 1
143
+ };
144
+ });
145
+ },
146
+ updateColumn: (t, n) => {
147
+ e.setState((e) => {
148
+ let r = {
149
+ ...e.board,
150
+ columns: e.board.columns.map((e) => e.id === t ? {
151
+ ...e,
152
+ ...n
153
+ } : e)
154
+ }, i = [...e.history.slice(0, e.historyIndex + 1), r];
155
+ return {
156
+ ...e,
157
+ board: r,
158
+ history: i,
159
+ historyIndex: i.length - 1
160
+ };
161
+ });
162
+ },
163
+ deleteColumn: (t) => {
164
+ e.setState((e) => {
165
+ let n = {
166
+ ...e.board,
167
+ columns: e.board.columns.filter((e) => e.id !== t),
168
+ cards: e.board.cards.filter((e) => e.columnId !== t)
169
+ }, r = [...e.history.slice(0, e.historyIndex + 1), n];
170
+ return {
171
+ ...e,
172
+ board: n,
173
+ history: r,
174
+ historyIndex: r.length - 1
175
+ };
176
+ });
177
+ },
178
+ setSelectedCards: (t) => {
179
+ e.setState((e) => ({
180
+ ...e,
181
+ selectedCards: t
182
+ }));
183
+ },
184
+ setSelectedColumnId: (t) => {
185
+ e.setState((e) => ({
186
+ ...e,
187
+ selectedColumnId: t
188
+ }));
189
+ },
190
+ setView: (t) => {
191
+ e.setState((e) => ({
192
+ ...e,
193
+ view: t
194
+ }));
195
+ },
196
+ setSearchQuery: (t) => {
197
+ e.setState((e) => ({
198
+ ...e,
199
+ searchQuery: t
200
+ }));
201
+ },
202
+ setActiveFilters: (t) => {
203
+ e.setState((e) => ({
204
+ ...e,
205
+ activeFilters: t
206
+ }));
207
+ },
208
+ undo: () => {
209
+ e.setState((e) => e.historyIndex > 0 ? {
210
+ ...e,
211
+ board: e.history[e.historyIndex - 1],
212
+ historyIndex: e.historyIndex - 1
213
+ } : e);
214
+ },
215
+ redo: () => {
216
+ e.setState((e) => e.historyIndex < e.history.length - 1 ? {
217
+ ...e,
218
+ board: e.history[e.historyIndex + 1],
219
+ historyIndex: e.historyIndex + 1
220
+ } : e);
221
+ },
222
+ canUndo: () => e.state.historyIndex > 0,
223
+ canRedo: () => e.state.historyIndex < e.state.history.length - 1
224
+ }), Z = {
225
+ id: "default-board",
226
+ name: "Default Board",
227
+ columns: [],
228
+ cards: [],
229
+ settings: {
230
+ allowDragAndDrop: !0,
231
+ allowMultiSelect: !0,
232
+ enableWipLimits: !1,
233
+ defaultView: "standard"
234
+ },
235
+ createdAt: /* @__PURE__ */ new Date(),
236
+ updatedAt: /* @__PURE__ */ new Date()
237
+ }, ne = (e) => {
238
+ let t = e.board || Z, n = t.id, r = k(() => Y(t, e.view), [n, e.view]), i = k(() => X(r), [r]), a = G(r, (e) => e.board), o = G(r, (e) => e.selectedCards), s = G(r, (e) => e.selectedColumnId), c = G(r, (e) => e.view), l = G(r, (e) => e.searchQuery), u = G(r, (e) => e.activeFilters), d = A(e.board ? JSON.stringify(e.board) : ""), f = A(e.view);
239
+ return D(() => {
240
+ if (!e.board) return;
241
+ let t = JSON.stringify(e.board);
242
+ t !== d.current && (d.current = t, i.setBoard(e.board)), e.view && e.view !== f.current && (f.current = e.view, i.setView(e.view));
243
+ }, [
244
+ e.board,
245
+ e.view,
246
+ i
247
+ ]), {
248
+ board: a,
249
+ selectedCards: o,
250
+ selectedColumnId: s,
251
+ view: c,
252
+ searchQuery: l,
253
+ activeFilters: u,
254
+ setBoard: i.setBoard,
255
+ setSelectedCards: i.setSelectedCards,
256
+ setSelectedColumnId: i.setSelectedColumnId,
257
+ setView: i.setView,
258
+ setSearchQuery: i.setSearchQuery,
259
+ setActiveFilters: i.setActiveFilters,
260
+ addCard: i.addCard,
261
+ updateCard: i.updateCard,
262
+ deleteCard: i.deleteCard,
263
+ moveCard: i.moveCard,
264
+ addColumn: i.addColumn,
265
+ updateColumn: i.updateColumn,
266
+ deleteColumn: i.deleteColumn,
267
+ undo: i.undo,
268
+ redo: i.redo,
269
+ canUndo: i.canUndo(),
270
+ canRedo: i.canRedo(),
271
+ store: r,
272
+ actions: i
273
+ };
274
+ }, re = (e, n) => {
275
+ let r = t(), i = q(), a = () => r.get("KanbanService"), o = (e, t, n = 3e3) => {
276
+ let i = r.get("NotificationService");
277
+ i && i.add({
278
+ type: e,
279
+ message: t,
280
+ duration: n
281
+ });
282
+ }, s = (t) => {
283
+ i.setQueryData(["board", n.id], t), e.onBoardChange?.(t);
284
+ }, c = K({
285
+ mutationFn: async (t) => {
286
+ let r = a();
287
+ return r ? await r.createCard(n.id, t) : await e.onCardCreate?.(t), t;
288
+ },
289
+ onMutate: async (e) => {
290
+ await i.cancelQueries({ queryKey: ["board", n.id] });
291
+ let t = i.getQueryData(["board", n.id]);
292
+ return s({
293
+ ...n,
294
+ cards: [...n.cards, e]
295
+ }), { previousBoard: t };
296
+ },
297
+ onError: (e, t, n) => {
298
+ n?.previousBoard && s(n.previousBoard), o("error", "Failed to create card. Please try again.", 5e3);
299
+ },
300
+ onSuccess: (e) => {
301
+ o("success", `Card "${e.title}" created successfully`);
302
+ }
303
+ }), l = E(async (e) => {
304
+ let t = {
305
+ id: `card-${Date.now()}`,
306
+ type: e.type || "standard",
307
+ title: e.title || "New Card",
308
+ description: e.description,
309
+ columnId: e.columnId || n.columns[0]?.id || "",
310
+ position: e.position ?? n.cards.filter((t) => t.columnId === e.columnId).length,
311
+ assignees: e.assignees || [],
312
+ tags: e.tags || [],
313
+ priority: e.priority,
314
+ metadata: e.metadata || {},
315
+ createdBy: "current-user",
316
+ createdAt: /* @__PURE__ */ new Date(),
317
+ updatedBy: "current-user",
318
+ updatedAt: /* @__PURE__ */ new Date(),
319
+ ...e
320
+ };
321
+ return c.mutateAsync(t);
322
+ }, [n, c]), u = K({
323
+ mutationFn: async ({ cardId: t, updates: r }) => {
324
+ let i = a();
325
+ if (i) await i.updateCard(t, r);
326
+ else {
327
+ let i = n.cards.find((e) => e.id === t);
328
+ i && await e.onCardUpdate?.({
329
+ ...i,
330
+ ...r
331
+ }, "edit");
332
+ }
333
+ return {
334
+ cardId: t,
335
+ updates: r
336
+ };
337
+ },
338
+ onMutate: async ({ cardId: e, updates: t }) => {
339
+ await i.cancelQueries({ queryKey: ["board", n.id] });
340
+ let r = i.getQueryData(["board", n.id]), a = n.cards.map((n) => n.id === e ? {
341
+ ...n,
342
+ ...t,
343
+ updatedAt: /* @__PURE__ */ new Date()
344
+ } : n);
345
+ return s({
346
+ ...n,
347
+ cards: a
348
+ }), { previousBoard: r };
349
+ },
350
+ onError: (e, t, n) => {
351
+ n?.previousBoard && s(n.previousBoard), o("error", "Failed to update card", 5e3);
352
+ },
353
+ onSuccess: () => {
354
+ o("success", "Card updated successfully", 2e3);
355
+ }
356
+ }), d = E(async (e, t) => u.mutateAsync({
357
+ cardId: e,
358
+ updates: t
359
+ }), [u]), f = K({
360
+ mutationFn: async (t) => {
361
+ let n = a();
362
+ return n ? await n.deleteCard(t) : await e.onCardDelete?.(t), t;
363
+ },
364
+ onMutate: async (e) => {
365
+ await i.cancelQueries({ queryKey: ["board", n.id] });
366
+ let t = i.getQueryData(["board", n.id]);
367
+ return s({
368
+ ...n,
369
+ cards: n.cards.filter((t) => t.id !== e)
370
+ }), {
371
+ previousBoard: t,
372
+ deletedCardTitle: t?.cards.find((t) => t.id === e)?.title
373
+ };
374
+ },
375
+ onError: (e, t, n) => {
376
+ n?.previousBoard && s(n.previousBoard), o("error", "Failed to delete card", 5e3);
377
+ },
378
+ onSuccess: (e, t, n) => {
379
+ o("success", `Card "${n?.deletedCardTitle || "Card"}" deleted`);
380
+ }
381
+ }), p = E(async (e) => f.mutateAsync(e), [f]), m = K({
382
+ mutationFn: async (t) => {
383
+ let { cardId: r, targetColumnId: i, targetSwimlaneId: o, targetPosition: s } = t, c = a();
384
+ if (c) await c.moveCard(r, i, o, s);
385
+ else {
386
+ let t = n.cards.find((e) => e.id === r);
387
+ t && await e.onCardUpdate?.({
388
+ ...t,
389
+ columnId: i,
390
+ swimlaneId: o
391
+ }, "move");
392
+ }
393
+ },
394
+ onMutate: async ({ cardId: e, targetColumnId: t, targetSwimlaneId: r, targetPosition: a }) => {
395
+ await i.cancelQueries({ queryKey: ["board", n.id] });
396
+ let o = i.getQueryData(["board", n.id]), c = n.cards.find((t) => t.id === e);
397
+ if (!c) return { previousBoard: o };
398
+ let l = n.cards.filter((t) => t.id !== e), u = l.filter((e) => e.columnId === t).sort((e, t) => (e.position ?? 0) - (t.position ?? 0)), d = a === void 0 ? u.length : Math.min(a, u.length), f = [
399
+ ...u.slice(0, d),
400
+ {
401
+ ...c,
402
+ columnId: t,
403
+ swimlaneId: r,
404
+ updatedAt: /* @__PURE__ */ new Date()
405
+ },
406
+ ...u.slice(d)
407
+ ].map((e, t) => ({
408
+ ...e,
409
+ position: t
410
+ })), p = c.columnId, m = l.filter((e) => e.columnId === p).sort((e, t) => (e.position ?? 0) - (t.position ?? 0)).map((e, t) => ({
411
+ ...e,
412
+ position: t
413
+ })), h = [
414
+ ...l.filter((e) => e.columnId !== t && e.columnId !== p),
415
+ ...m,
416
+ ...f
417
+ ];
418
+ return s({
419
+ ...n,
420
+ cards: h
421
+ }), { previousBoard: o };
422
+ },
423
+ onError: (e, t, n) => {
424
+ n?.previousBoard && s(n.previousBoard), o("error", "Failed to move card", 3e3);
425
+ }
426
+ });
427
+ return {
428
+ createCard: l,
429
+ updateCard: d,
430
+ deleteCard: p,
431
+ moveCard: E(async (e, t, n, r) => m.mutateAsync({
432
+ cardId: e,
433
+ targetColumnId: t,
434
+ targetSwimlaneId: n,
435
+ targetPosition: r
436
+ }), [m]),
437
+ duplicateCard: E(async (e) => {
438
+ let t = n.cards.find((t) => t.id === e);
439
+ if (!t) throw Error("Card not found");
440
+ return l({
441
+ ...t,
442
+ id: `card-${Date.now()}`,
443
+ title: `${t.title} (Copy)`,
444
+ position: (t.position ?? 0) + 1,
445
+ createdAt: /* @__PURE__ */ new Date(),
446
+ updatedAt: /* @__PURE__ */ new Date()
447
+ });
448
+ }, [n.cards, l]),
449
+ archiveCard: E(async (e) => d(e, { isArchived: !0 }), [d]),
450
+ restoreCard: E(async (e) => d(e, { isArchived: !1 }), [d])
451
+ };
452
+ }, ie = (e, n) => {
453
+ let r = t(), i = q(), a = () => r.get("KanbanService"), o = (e, t, n = 3e3) => {
454
+ let i = r.get("NotificationService");
455
+ i && i.add({
456
+ type: e,
457
+ message: t,
458
+ duration: n
459
+ });
460
+ }, s = (t) => {
461
+ i.setQueryData(["board", n.id], t), e.onBoardChange?.(t);
462
+ }, c = K({
463
+ mutationFn: async (t) => {
464
+ let r = a();
465
+ return r ? await r.createColumn(n.id, t) : await e.onColumnCreate?.(t), t;
466
+ },
467
+ onMutate: async (e) => {
468
+ await i.cancelQueries({ queryKey: ["board", n.id] });
469
+ let t = i.getQueryData(["board", n.id]);
470
+ return s({
471
+ ...n,
472
+ columns: [...n.columns, e]
473
+ }), { previousBoard: t };
474
+ },
475
+ onError: (e, t, n) => {
476
+ n?.previousBoard && s(n.previousBoard), o("error", "Failed to create column", 5e3);
477
+ },
478
+ onSuccess: (e) => {
479
+ o("success", `Column "${e.name}" added`);
480
+ }
481
+ }), l = E(async (e) => {
482
+ let t = {
483
+ id: `column-${Date.now()}`,
484
+ name: e.name || "New Column",
485
+ color: e.color,
486
+ icon: e.icon,
487
+ wipLimit: e.wipLimit,
488
+ position: e.position ?? n.columns.length,
489
+ isCollapsed: !1,
490
+ ...e
491
+ };
492
+ return c.mutateAsync(t);
493
+ }, [n.columns.length, c]), u = K({
494
+ mutationFn: async ({ columnId: t, updates: r }) => {
495
+ let i = a();
496
+ if (i) await i.updateColumn(t, r);
497
+ else {
498
+ let i = n.columns.find((e) => e.id === t);
499
+ i && await e.onColumnUpdate?.({
500
+ ...i,
501
+ ...r
502
+ });
503
+ }
504
+ return {
505
+ columnId: t,
506
+ updates: r
507
+ };
508
+ },
509
+ onMutate: async ({ columnId: e, updates: t }) => {
510
+ await i.cancelQueries({ queryKey: ["board", n.id] });
511
+ let r = i.getQueryData(["board", n.id]);
512
+ return s({
513
+ ...n,
514
+ columns: n.columns.map((n) => n.id === e ? {
515
+ ...n,
516
+ ...t
517
+ } : n)
518
+ }), { previousBoard: r };
519
+ },
520
+ onError: (e, t, n) => {
521
+ n?.previousBoard && s(n.previousBoard), o("error", "Failed to update column", 5e3);
522
+ }
523
+ }), d = E(async (e, t) => u.mutateAsync({
524
+ columnId: e,
525
+ updates: t
526
+ }), [u]), f = K({
527
+ mutationFn: async (t) => {
528
+ let n = a();
529
+ return n ? await n.deleteColumn(t) : await e.onColumnDelete?.(t), t;
530
+ },
531
+ onMutate: async (e) => {
532
+ await i.cancelQueries({ queryKey: ["board", n.id] });
533
+ let t = i.getQueryData(["board", n.id]), r = t?.columns.find((t) => t.id === e);
534
+ return s({
535
+ ...n,
536
+ columns: n.columns.filter((t) => t.id !== e),
537
+ cards: n.cards.filter((t) => t.columnId !== e)
538
+ }), {
539
+ previousBoard: t,
540
+ deletedColumnName: r?.name
541
+ };
542
+ },
543
+ onError: (e, t, n) => {
544
+ n?.previousBoard && s(n.previousBoard), o("error", "Failed to delete column", 5e3);
545
+ },
546
+ onSuccess: (e, t, n) => {
547
+ o("success", `Column "${n?.deletedColumnName || "Column"}" deleted`);
548
+ }
549
+ }), p = E(async (e) => f.mutateAsync(e), [f]), m = K({
550
+ mutationFn: async (e) => {
551
+ let t = a();
552
+ if (t) {
553
+ let n = e.map((e, n) => t.updateColumn(e, { position: n }));
554
+ await Promise.all(n);
555
+ }
556
+ return e;
557
+ },
558
+ onMutate: async (e) => {
559
+ await i.cancelQueries({ queryKey: ["board", n.id] });
560
+ let t = i.getQueryData(["board", n.id]);
561
+ return s({
562
+ ...n,
563
+ columns: e.map((e, t) => {
564
+ let r = n.columns.find((t) => t.id === e);
565
+ if (!r) throw Error(`Column ${e} not found`);
566
+ return {
567
+ ...r,
568
+ position: t
569
+ };
570
+ })
571
+ }), { previousBoard: t };
572
+ },
573
+ onError: (e, t, n) => {
574
+ n?.previousBoard && s(n.previousBoard), o("error", "Failed to reorder columns", 3e3);
575
+ }
576
+ });
577
+ return {
578
+ createColumn: l,
579
+ updateColumn: d,
580
+ deleteColumn: p,
581
+ reorderColumns: E(async (e) => m.mutateAsync(e), [m]),
582
+ collapseColumn: E((e) => {
583
+ d(e, { isCollapsed: !0 });
584
+ }, [d]),
585
+ expandColumn: E((e) => {
586
+ d(e, { isCollapsed: !1 });
587
+ }, [d])
588
+ };
589
+ }, ae = (e, n) => {
590
+ let r = t(), i = q(), a = () => r.get("KanbanService"), o = (e, t, n = 3e3) => {
591
+ let i = r.get("NotificationService");
592
+ i && i.add({
593
+ type: e,
594
+ message: t,
595
+ duration: n
596
+ });
597
+ }, s = (t) => {
598
+ i.setQueryData(["board", n.id], t), e.onBoardChange?.(t);
599
+ }, c = K({
600
+ mutationFn: async (t) => {
601
+ let r = a();
602
+ return r ? await r.createSwimlane(n.id, t) : await e.onSwimlaneCreate?.(t), t;
603
+ },
604
+ onMutate: async (e) => {
605
+ await i.cancelQueries({ queryKey: ["board", n.id] });
606
+ let t = i.getQueryData(["board", n.id]);
607
+ return s({
608
+ ...n,
609
+ swimlanes: [...n.swimlanes || [], e]
610
+ }), { previousBoard: t };
611
+ },
612
+ onError: (e, t, n) => {
613
+ n?.previousBoard && s(n.previousBoard), o("error", "Failed to create swimlane", 5e3);
614
+ },
615
+ onSuccess: (e) => {
616
+ o("success", `Swimlane "${e.name}" added`);
617
+ }
618
+ }), l = E(async (e) => {
619
+ let t = {
620
+ id: `swimlane-${Date.now()}`,
621
+ name: e.name || "New Swimlane",
622
+ type: e.type || "custom",
623
+ color: e.color,
624
+ position: e.position ?? (n.swimlanes?.length || 0),
625
+ isCollapsed: !1,
626
+ ...e
627
+ };
628
+ return c.mutateAsync(t);
629
+ }, [n.swimlanes, c]), u = K({
630
+ mutationFn: async ({ swimlaneId: t, updates: r }) => {
631
+ let i = a();
632
+ if (i) await i.updateSwimlane(t, r);
633
+ else {
634
+ let i = n.swimlanes?.find((e) => e.id === t);
635
+ i && await e.onSwimlaneUpdate?.({
636
+ ...i,
637
+ ...r
638
+ });
639
+ }
640
+ return {
641
+ swimlaneId: t,
642
+ updates: r
643
+ };
644
+ },
645
+ onMutate: async ({ swimlaneId: e, updates: t }) => {
646
+ await i.cancelQueries({ queryKey: ["board", n.id] });
647
+ let r = i.getQueryData(["board", n.id]);
648
+ return s({
649
+ ...n,
650
+ swimlanes: (n.swimlanes || []).map((n) => n.id === e ? {
651
+ ...n,
652
+ ...t
653
+ } : n)
654
+ }), { previousBoard: r };
655
+ },
656
+ onError: (e, t, n) => {
657
+ n?.previousBoard && s(n.previousBoard), o("error", "Failed to update swimlane", 5e3);
658
+ }
659
+ }), d = E(async (e, t) => u.mutateAsync({
660
+ swimlaneId: e,
661
+ updates: t
662
+ }), [u]), f = K({
663
+ mutationFn: async (t) => {
664
+ let n = a();
665
+ return n ? await n.deleteSwimlane(t) : await e.onSwimlaneDelete?.(t), t;
666
+ },
667
+ onMutate: async (e) => {
668
+ await i.cancelQueries({ queryKey: ["board", n.id] });
669
+ let t = i.getQueryData(["board", n.id]), r = t?.swimlanes?.find((t) => t.id === e);
670
+ return s({
671
+ ...n,
672
+ swimlanes: (n.swimlanes || []).filter((t) => t.id !== e),
673
+ cards: n.cards.map((t) => t.swimlaneId === e ? {
674
+ ...t,
675
+ swimlaneId: void 0
676
+ } : t)
677
+ }), {
678
+ previousBoard: t,
679
+ deletedSwimlaneName: r?.name
680
+ };
681
+ },
682
+ onError: (e, t, n) => {
683
+ n?.previousBoard && s(n.previousBoard), o("error", "Failed to delete swimlane", 5e3);
684
+ },
685
+ onSuccess: (e, t, n) => {
686
+ o("success", `Swimlane "${n?.deletedSwimlaneName || "Swimlane"}" deleted`);
687
+ }
688
+ }), p = E(async (e) => f.mutateAsync(e), [f]), m = K({
689
+ mutationFn: async (e) => {
690
+ let t = a();
691
+ if (t) {
692
+ let n = e.map((e, n) => t.updateSwimlane(e, { position: n }));
693
+ await Promise.all(n);
694
+ }
695
+ return e;
696
+ },
697
+ onMutate: async (e) => {
698
+ await i.cancelQueries({ queryKey: ["board", n.id] });
699
+ let t = i.getQueryData(["board", n.id]);
700
+ return s({
701
+ ...n,
702
+ swimlanes: e.map((e, t) => {
703
+ let r = n.swimlanes?.find((t) => t.id === e);
704
+ return r ? {
705
+ ...r,
706
+ position: t
707
+ } : null;
708
+ }).filter(Boolean)
709
+ }), { previousBoard: t };
710
+ },
711
+ onError: (e, t, n) => {
712
+ n?.previousBoard && s(n.previousBoard), o("error", "Failed to reorder swimlanes", 3e3);
713
+ }
714
+ });
715
+ return {
716
+ createSwimlane: l,
717
+ updateSwimlane: d,
718
+ deleteSwimlane: p,
719
+ reorderSwimlanes: E(async (e) => m.mutateAsync(e), [m]),
720
+ collapseSwimlane: E((t) => {
721
+ d(t, { isCollapsed: !0 }), e.onSwimlaneToggle?.({
722
+ swimlaneId: t,
723
+ isCollapsed: !0
724
+ });
725
+ }, [d, e.onSwimlaneToggle]),
726
+ expandSwimlane: E((t) => {
727
+ d(t, { isCollapsed: !1 }), e.onSwimlaneToggle?.({
728
+ swimlaneId: t,
729
+ isCollapsed: !1
730
+ });
731
+ }, [d, e.onSwimlaneToggle])
732
+ };
733
+ }, oe = (e) => {
734
+ let [t, n] = j(""), [r, i] = j({});
735
+ return {
736
+ filteredCards: k(() => e.cards.filter((e) => {
737
+ if (t) {
738
+ let n = t.toLowerCase();
739
+ if (!(e.title.toLowerCase().includes(n) || e.description?.toLowerCase().includes(n) || e.tags.some((e) => e.name.toLowerCase().includes(n)))) return !1;
740
+ }
741
+ return !(r.tags && r.tags.length > 0 && !e.tags.some((e) => r.tags?.includes(e.id)) || r.assignees && r.assignees.length > 0 && !e.assignees.some((e) => r.assignees?.includes(e.id)) || r.priority && r.priority.length > 0 && e.priority && !r.priority.includes(e.priority) || r.columns && r.columns.length > 0 && !r.columns.includes(e.columnId));
742
+ }), [
743
+ e.cards,
744
+ t,
745
+ r
746
+ ]),
747
+ searchQuery: t,
748
+ setSearchQuery: n,
749
+ activeFilters: r,
750
+ setActiveFilters: i,
751
+ clearFilters: () => {
752
+ n(""), i({});
753
+ }
754
+ };
755
+ }, se = (e, n, r = !1, i) => {
756
+ let a = t(), [o, s] = j(null), [c, l] = j(null), [u, d] = j(null);
757
+ return {
758
+ draggedCard: o,
759
+ dragOverColumn: c,
760
+ dragOverSwimlane: u,
761
+ handleDragStart: E((e) => {
762
+ if (i?.onCardDragStart) {
763
+ let t = {
764
+ card: e,
765
+ columnId: e.columnId,
766
+ cancel: !1
767
+ };
768
+ if (i.onCardDragStart(t), t.cancel) return;
769
+ }
770
+ s(e);
771
+ }, [i?.onCardDragStart]),
772
+ handleDragOver: E((e, t) => {
773
+ o && c !== e && (c && i?.onCardDragLeave && i.onCardDragLeave({
774
+ card: o,
775
+ targetColumnId: c
776
+ }), i?.onCardDragEnter && i.onCardDragEnter({
777
+ card: o,
778
+ targetColumnId: e
779
+ })), l(e), t && d(t);
780
+ }, [
781
+ o,
782
+ i,
783
+ c
784
+ ]),
785
+ handleDragEnd: E(() => {
786
+ o && i?.onCardDragStop && i.onCardDragStop({
787
+ card: o,
788
+ columnId: o.columnId
789
+ }), s(null), l(null), d(null);
790
+ }, [o, i?.onCardDragStop]),
791
+ handleDrop: E((t, c, u) => {
792
+ if (!o) return;
793
+ let f = e.columns.find((e) => e.id === t);
794
+ if (f?.wipLimit && e.cards.filter((e) => e.columnId === t && !e.isArchived).length >= f.wipLimit && (o.columnId !== t || o.swimlaneId !== c)) {
795
+ let e = a.get("NotificationService");
796
+ if (e && e.add({
797
+ type: "warning",
798
+ message: `WIP limit reached for "${f.name}" (${f.wipLimit} cards)`,
799
+ duration: 4e3
800
+ }), r) {
801
+ e?.add({
802
+ type: "error",
803
+ message: `Cannot move card: "${f.name}" is full (Strict WIP)`,
804
+ duration: 4e3
805
+ }), s(null), l(null), d(null);
806
+ return;
807
+ }
808
+ }
809
+ n(o.id, t, c, u), i?.onCardDragStop && i.onCardDragStop({
810
+ card: o,
811
+ columnId: t
812
+ }), s(null), l(null), d(null);
813
+ }, [
814
+ o,
815
+ e,
816
+ n,
817
+ i?.onCardDragStop
818
+ ])
819
+ };
820
+ }, Q = (e, t = {}) => {
821
+ let n = l("I18nService")?.dir || "ltr", r = e.dir === "auto" || !e.dir ? n : e.dir, i = {
822
+ showSpinner: () => {},
823
+ hideSpinner: () => {}
824
+ }, { board: a, setBoard: o, selectedCards: s, setSelectedCards: u, selectedColumnId: d, setSelectedColumnId: f, view: p, setView: m, undo: h, redo: g, canUndo: _, canRedo: v } = ne(e), [y, b] = j(null), { createCard: x, updateCard: S, deleteCard: C, moveCard: w, duplicateCard: T, archiveCard: E, restoreCard: D } = re(e, a), { createColumn: O, updateColumn: A, deleteColumn: M, reorderColumns: N, collapseColumn: P, expandColumn: F } = ie(e, a), { createSwimlane: I, updateSwimlane: L, deleteSwimlane: R, reorderSwimlanes: z, collapseSwimlane: B, expandSwimlane: V } = ae(e, a), { draggedCard: H, dragOverColumn: U, handleDragStart: W, handleDragOver: G, handleDragEnd: ee, handleDrop: te } = se(a, w, e.wipStrict, e), { filteredCards: K, searchQuery: q, setSearchQuery: J, activeFilters: Y, setActiveFilters: X, clearFilters: Z } = oe(a), { selectedIndex: Q, setSelectedIndex: $ } = c({
825
+ totalItems: K.length,
826
+ columns: 1,
827
+ enabled: !e.readOnly,
828
+ onSelect: (e) => {
829
+ let t = K[e];
830
+ t && (b(t.id), (document.getElementById(t.id) || document.querySelector(`[data-card-id="${t.id}"]`))?.scrollIntoView({
831
+ behavior: "smooth",
832
+ block: "nearest"
833
+ }));
834
+ },
835
+ onAction: (e) => {
836
+ let n = K[e];
837
+ n && t.onCardClick && t.onCardClick(n);
838
+ }
839
+ }), ce = k(() => ({
840
+ addCard: x,
841
+ updateCard: S,
842
+ deleteCard: C,
843
+ moveCard: w,
844
+ duplicateCard: T,
845
+ archiveCard: E,
846
+ restoreCard: D,
847
+ getCard: (e) => a.cards.find((t) => t.id === e),
848
+ getCards: () => a.cards,
849
+ getCardsInColumn: (e) => a.cards.filter((t) => t.columnId === e),
850
+ getOrderedCards: (e) => a.cards.filter((t) => t.columnId === e).sort((e, t) => (e.position ?? 0) - (t.position ?? 0)),
851
+ addColumn: O,
852
+ updateColumn: A,
853
+ deleteColumn: M,
854
+ reorderColumns: N,
855
+ collapseColumn: P,
856
+ expandColumn: F,
857
+ getColumn: (e) => a.columns.find((t) => t.id === e),
858
+ getColumns: () => a.columns,
859
+ addSwimlane: I,
860
+ updateSwimlane: L,
861
+ deleteSwimlane: R,
862
+ reorderSwimlanes: z,
863
+ collapseSwimlane: B,
864
+ expandSwimlane: V,
865
+ getSwimlane: (e) => a.swimlanes?.find((t) => t.id === e),
866
+ getSwimlanes: () => a.swimlanes || [],
867
+ selectCard: (e) => u([e]),
868
+ selectCards: u,
869
+ deselectCard: (e) => {
870
+ u(s.filter((t) => t !== e));
871
+ },
872
+ deselectAllCards: () => u([]),
873
+ getSelectedCards: () => a.cards.filter((e) => s.includes(e.id)),
874
+ focusCard: (e) => {
875
+ let t = document.getElementById(e) || document.querySelector(`[data-card-id="${e}"]`);
876
+ t instanceof HTMLElement && (t.focus(), t.scrollIntoView({
877
+ behavior: "smooth",
878
+ block: "center"
879
+ }));
880
+ },
881
+ highlightCard: (e, t = 2e3) => {
882
+ b(e), setTimeout(() => b(null), t);
883
+ },
884
+ setView: m,
885
+ getView: () => p,
886
+ scrollToColumn: (e, t) => {
887
+ (document.getElementById(`column-${e}`) || document.querySelector(`[data-column-id="${e}"]`))?.scrollIntoView(t || {
888
+ behavior: "smooth",
889
+ block: "center",
890
+ inline: "center"
891
+ });
892
+ },
893
+ scrollToCard: (e, t) => {
894
+ (document.getElementById(e) || document.querySelector(`[data-card-id="${e}"]`))?.scrollIntoView(t || {
895
+ behavior: "smooth",
896
+ block: "center"
897
+ });
898
+ },
899
+ setSearchQuery: J,
900
+ getSearchQuery: () => q,
901
+ setActiveFilters: X,
902
+ getActiveFilters: () => Y,
903
+ clearFilters: Z,
904
+ getFilteredCards: () => K,
905
+ getBoard: () => a,
906
+ setBoard: o,
907
+ refresh: async () => {},
908
+ reset: () => o(e.board),
909
+ showSpinner: i.showSpinner,
910
+ hideSpinner: i.hideSpinner,
911
+ forceUpdate: () => {},
912
+ getStatistics: () => ({
913
+ totalCards: a.cards.length,
914
+ totalColumns: a.columns.length
915
+ }),
916
+ validate: () => ({
917
+ isValid: !0,
918
+ errors: []
919
+ }),
920
+ ...t
921
+ }), [
922
+ a,
923
+ x,
924
+ S,
925
+ C,
926
+ w,
927
+ T,
928
+ E,
929
+ D,
930
+ O,
931
+ A,
932
+ M,
933
+ N,
934
+ P,
935
+ F,
936
+ I,
937
+ L,
938
+ R,
939
+ z,
940
+ B,
941
+ V,
942
+ s,
943
+ u,
944
+ d,
945
+ f,
946
+ q,
947
+ J,
948
+ Y,
949
+ X,
950
+ Z,
951
+ K,
952
+ o,
953
+ e.board,
954
+ i,
955
+ t,
956
+ p,
957
+ e.wipStrict,
958
+ e
959
+ ]);
960
+ return k(() => ({
961
+ state: {
962
+ board: a,
963
+ selectedCards: s,
964
+ highlightedCardId: y,
965
+ selectedColumnId: d,
966
+ view: p,
967
+ draggedCard: H,
968
+ dragOverColumn: U,
969
+ filteredCards: K,
970
+ searchQuery: q,
971
+ activeFilters: Y,
972
+ selectedIndex: Q,
973
+ canUndo: _,
974
+ canRedo: v
975
+ },
976
+ actions: {
977
+ setBoard: o,
978
+ setSelectedCards: u,
979
+ setSelectedColumnId: f,
980
+ setView: m,
981
+ createCard: x,
982
+ updateCard: S,
983
+ deleteCard: C,
984
+ moveCard: w,
985
+ duplicateCard: T,
986
+ archiveCard: E,
987
+ restoreCard: D,
988
+ createColumn: O,
989
+ updateColumn: A,
990
+ deleteColumn: M,
991
+ reorderColumns: N,
992
+ collapseColumn: P,
993
+ expandColumn: F,
994
+ createSwimlane: I,
995
+ updateSwimlane: L,
996
+ deleteSwimlane: R,
997
+ reorderSwimlanes: z,
998
+ collapseSwimlane: B,
999
+ expandSwimlane: V,
1000
+ handleDragStart: W,
1001
+ handleDragOver: G,
1002
+ handleDragEnd: ee,
1003
+ handleDrop: te,
1004
+ setSearchQuery: J,
1005
+ setActiveFilters: X,
1006
+ clearFilters: Z,
1007
+ setSelectedIndex: $,
1008
+ undo: h,
1009
+ redo: g
1010
+ },
1011
+ services: { serviceRegistry: null },
1012
+ imperativeAPI: ce,
1013
+ dir: r,
1014
+ baseApi: i
1015
+ }), [
1016
+ i,
1017
+ ce,
1018
+ a,
1019
+ o,
1020
+ s,
1021
+ u,
1022
+ y,
1023
+ d,
1024
+ f,
1025
+ p,
1026
+ m,
1027
+ r,
1028
+ x,
1029
+ S,
1030
+ C,
1031
+ w,
1032
+ T,
1033
+ E,
1034
+ D,
1035
+ O,
1036
+ A,
1037
+ M,
1038
+ N,
1039
+ P,
1040
+ F,
1041
+ I,
1042
+ L,
1043
+ R,
1044
+ z,
1045
+ B,
1046
+ V,
1047
+ H,
1048
+ U,
1049
+ W,
1050
+ G,
1051
+ ee,
1052
+ te,
1053
+ K,
1054
+ q,
1055
+ J,
1056
+ Y,
1057
+ X,
1058
+ Z,
1059
+ null,
1060
+ Q,
1061
+ $,
1062
+ h,
1063
+ g,
1064
+ _,
1065
+ v
1066
+ ]);
1067
+ };
1068
+ //#endregion
1069
+ //#region src/shared/hooks/useDebounce.ts
1070
+ function $(e, t = 300) {
1071
+ let [n, r] = j(e);
1072
+ return D(() => {
1073
+ let n = setTimeout(() => {
1074
+ r(e);
1075
+ }, t);
1076
+ return () => {
1077
+ clearTimeout(n);
1078
+ };
1079
+ }, [e, t]), n;
1080
+ }
1081
+ //#endregion
1082
+ //#region src/components/EzKanban/components/FilterPopover.tsx
1083
+ var ce = ({ board: e, activeFilters: t, onFiltersChange: r, onClearFilters: a }) => {
1084
+ let o = Array.from(new Set(e.cards.flatMap((e) => e.tags).map((e) => JSON.stringify(e)))).map((e) => JSON.parse(e)).filter((e, t, n) => t === n.findIndex((t) => t.id === e.id)), s = Array.from(new Set(e.cards.flatMap((e) => e.assignees).map((e) => JSON.stringify(e)))).map((e) => JSON.parse(e)).filter((e, t, n) => t === n.findIndex((t) => t.id === e.id)), c = [
1085
+ "low",
1086
+ "medium",
1087
+ "high",
1088
+ "critical"
1089
+ ], l = (e) => {
1090
+ let n = t.priority || [], i = n.includes(e) ? n.filter((t) => t !== e) : [...n, e];
1091
+ r({
1092
+ ...t,
1093
+ priority: i.length ? i : void 0
1094
+ });
1095
+ }, p = (e) => {
1096
+ let n = t.tags || [], i = n.includes(e) ? n.filter((t) => t !== e) : [...n, e];
1097
+ r({
1098
+ ...t,
1099
+ tags: i.length ? i : void 0
1100
+ });
1101
+ }, m = (e) => {
1102
+ let n = t.assignees || [], i = n.includes(e) ? n.filter((t) => t !== e) : [...n, e];
1103
+ r({
1104
+ ...t,
1105
+ assignees: i.length ? i : void 0
1106
+ });
1107
+ }, h = (t.priority?.length || 0) + (t.tags?.length || 0) + (t.assignees?.length || 0);
1108
+ return /* @__PURE__ */ U(f, { children: [/* @__PURE__ */ H(d, {
1109
+ asChild: !0,
1110
+ children: /* @__PURE__ */ U(n, {
1111
+ variant: "outline",
1112
+ size: "sm",
1113
+ className: "relative",
1114
+ children: [
1115
+ /* @__PURE__ */ H(P, { className: "h-4 w-4 mr-2" }),
1116
+ "Filters",
1117
+ h > 0 && /* @__PURE__ */ H(b, {
1118
+ variant: "secondary",
1119
+ className: "ml-2 h-5 min-w-[20px] px-1 text-[10px] flex items-center justify-center",
1120
+ children: h
1121
+ })
1122
+ ]
1123
+ })
1124
+ }), /* @__PURE__ */ U(u, {
1125
+ className: "w-80 p-4",
1126
+ align: "start",
1127
+ children: [/* @__PURE__ */ U("div", {
1128
+ className: "flex items-center justify-between mb-4",
1129
+ children: [/* @__PURE__ */ H("h4", {
1130
+ className: "font-medium leading-none",
1131
+ children: "Filters"
1132
+ }), h > 0 && /* @__PURE__ */ H(n, {
1133
+ variant: "ghost",
1134
+ size: "sm",
1135
+ className: "h-auto p-0 text-xs text-muted-foreground",
1136
+ onClick: a,
1137
+ children: "Clear all"
1138
+ })]
1139
+ }), /* @__PURE__ */ H(C, {
1140
+ className: "h-[300px] pr-4",
1141
+ children: /* @__PURE__ */ U("div", {
1142
+ className: "space-y-6",
1143
+ children: [
1144
+ /* @__PURE__ */ U("div", {
1145
+ className: "space-y-3",
1146
+ children: [/* @__PURE__ */ H("h5", {
1147
+ className: "text-sm font-medium text-muted-foreground",
1148
+ children: "Priority"
1149
+ }), /* @__PURE__ */ H("div", {
1150
+ className: "space-y-2",
1151
+ children: c.map((e) => /* @__PURE__ */ U("div", {
1152
+ className: "flex items-center space-x-2",
1153
+ children: [/* @__PURE__ */ H(v, {
1154
+ id: `priority-${e}`,
1155
+ checked: t.priority?.includes(e),
1156
+ onCheckedChange: () => l(e)
1157
+ }), /* @__PURE__ */ H(i, {
1158
+ htmlFor: `priority-${e}`,
1159
+ className: "capitalize text-sm font-normal cursor-pointer",
1160
+ children: e
1161
+ })]
1162
+ }, e))
1163
+ })]
1164
+ }),
1165
+ s.length > 0 && /* @__PURE__ */ U("div", {
1166
+ className: "space-y-3",
1167
+ children: [/* @__PURE__ */ H("h5", {
1168
+ className: "text-sm font-medium text-muted-foreground",
1169
+ children: "Assignees"
1170
+ }), /* @__PURE__ */ H("div", {
1171
+ className: "space-y-2",
1172
+ children: s.map((e) => /* @__PURE__ */ U("div", {
1173
+ className: "flex items-center space-x-2",
1174
+ children: [/* @__PURE__ */ H(v, {
1175
+ id: `assignee-${e.id}`,
1176
+ checked: t.assignees?.includes(e.id),
1177
+ onCheckedChange: () => m(e.id)
1178
+ }), /* @__PURE__ */ U(i, {
1179
+ htmlFor: `assignee-${e.id}`,
1180
+ className: "text-sm font-normal cursor-pointer flex items-center gap-2",
1181
+ children: [e.avatarUrl && /* @__PURE__ */ H("img", {
1182
+ src: e.avatarUrl,
1183
+ alt: "",
1184
+ className: "w-4 h-4 rounded-full"
1185
+ }), e.name]
1186
+ })]
1187
+ }, e.id))
1188
+ })]
1189
+ }),
1190
+ o.length > 0 && /* @__PURE__ */ U("div", {
1191
+ className: "space-y-3",
1192
+ children: [/* @__PURE__ */ H("h5", {
1193
+ className: "text-sm font-medium text-muted-foreground",
1194
+ children: "Tags"
1195
+ }), /* @__PURE__ */ H("div", {
1196
+ className: "space-y-2",
1197
+ children: o.map((e) => /* @__PURE__ */ U("div", {
1198
+ className: "flex items-center space-x-2",
1199
+ children: [/* @__PURE__ */ H(v, {
1200
+ id: `tag-${e.id}`,
1201
+ checked: t.tags?.includes(e.id),
1202
+ onCheckedChange: () => p(e.id)
1203
+ }), /* @__PURE__ */ U(i, {
1204
+ htmlFor: `tag-${e.id}`,
1205
+ className: "text-sm font-normal cursor-pointer flex items-center gap-2",
1206
+ children: [/* @__PURE__ */ H("div", {
1207
+ className: "w-2 h-2 rounded-full",
1208
+ style: { backgroundColor: e.color }
1209
+ }), e.name]
1210
+ })]
1211
+ }, e.id))
1212
+ })]
1213
+ })
1214
+ ]
1215
+ })
1216
+ })]
1217
+ })] });
1218
+ }, le = ({ searchQuery: e, onSearchChange: i, onAddCardClick: a, onAddColumn: o, board: s, className: c, view: l = "standard", onViewChange: u, onUndo: d, onRedo: f, canUndo: v, canRedo: b, activeFilters: x, onFiltersChange: S }) => {
1219
+ let C = t(), [w, T] = j(e), { t: E } = y(), O = $(w, 300);
1220
+ D(() => {
1221
+ i(O);
1222
+ }, [O, i]), D(() => {
1223
+ T(e);
1224
+ }, [e]);
1225
+ let k = () => {
1226
+ a?.();
1227
+ }, A = (e) => {
1228
+ if (s) try {
1229
+ let t = C.get("ExportService");
1230
+ if (e === "csv") {
1231
+ let e = s.cards.map((e) => ({
1232
+ id: e.id,
1233
+ title: e.title,
1234
+ description: e.description || "",
1235
+ column: s.columns.find((t) => t.id === e.columnId)?.name || "",
1236
+ priority: e.priority || "",
1237
+ assignees: e.assignees?.map((e) => e.name).join("; ") || "",
1238
+ tags: e.tags?.map((e) => e.name).join("; ") || "",
1239
+ dueDate: e.dueDate ? new Date(e.dueDate).toISOString().split("T")[0] : "",
1240
+ isArchived: e.isArchived ? "Yes" : "No"
1241
+ }));
1242
+ if (t) t.exportToCSV(e, [
1243
+ {
1244
+ header: "ID",
1245
+ accessorKey: "id"
1246
+ },
1247
+ {
1248
+ header: "Title",
1249
+ accessorKey: "title"
1250
+ },
1251
+ {
1252
+ header: "Description",
1253
+ accessorKey: "description"
1254
+ },
1255
+ {
1256
+ header: "Column",
1257
+ accessorKey: "column"
1258
+ },
1259
+ {
1260
+ header: "Priority",
1261
+ accessorKey: "priority"
1262
+ },
1263
+ {
1264
+ header: "Assignees",
1265
+ accessorKey: "assignees"
1266
+ },
1267
+ {
1268
+ header: "Tags",
1269
+ accessorKey: "tags"
1270
+ },
1271
+ {
1272
+ header: "Due Date",
1273
+ accessorKey: "dueDate"
1274
+ },
1275
+ {
1276
+ header: "Archived",
1277
+ accessorKey: "isArchived"
1278
+ }
1279
+ ], { fileName: `kanban-board-${s.id}` });
1280
+ else {
1281
+ let t = Object.keys(e[0] || {}), n = [t.join(","), ...e.map((e) => t.map((t) => `"${e[t]}"`).join(","))].join("\n"), r = new Blob([n], { type: "text/csv" }), i = URL.createObjectURL(r), a = document.createElement("a");
1282
+ a.href = i, a.download = `kanban-board-${s.id}.csv`, a.click(), URL.revokeObjectURL(i);
1283
+ }
1284
+ } else {
1285
+ let e = JSON.stringify(s, null, 2);
1286
+ if (t && t.download) t.download(e, `kanban-board-${s.id}.json`);
1287
+ else {
1288
+ let t = new Blob([e], { type: "application/json" }), n = URL.createObjectURL(t), r = document.createElement("a");
1289
+ r.href = n, r.download = `kanban-board-${s.id}.json`, r.click(), URL.revokeObjectURL(n);
1290
+ }
1291
+ }
1292
+ let n = C.get("NotificationService");
1293
+ n && n.add({
1294
+ type: "success",
1295
+ message: `Board exported as ${e.toUpperCase()}`,
1296
+ duration: 3e3
1297
+ });
1298
+ } catch (e) {
1299
+ let t = C.get("NotificationService");
1300
+ t && t.add({
1301
+ type: "error",
1302
+ message: `Failed to export board: ${e instanceof Error ? e.message : "Unknown error"}`,
1303
+ duration: 4e3
1304
+ });
1305
+ }
1306
+ };
1307
+ return /* @__PURE__ */ H(V, { children: /* @__PURE__ */ U("div", {
1308
+ className: `flex items-center gap-4 p-4 border-b ${c || ""}`,
1309
+ children: [
1310
+ /* @__PURE__ */ U("div", {
1311
+ className: "flex gap-1 mr-2",
1312
+ children: [/* @__PURE__ */ H(n, {
1313
+ variant: "ghost",
1314
+ size: "icon",
1315
+ onClick: d,
1316
+ disabled: !v,
1317
+ title: "Undo (Ctrl+Z)",
1318
+ children: /* @__PURE__ */ H(B, { className: "h-4 w-4" })
1319
+ }), /* @__PURE__ */ H(n, {
1320
+ variant: "ghost",
1321
+ size: "icon",
1322
+ onClick: f,
1323
+ disabled: !b,
1324
+ title: "Redo (Ctrl+Shift+Z)",
1325
+ children: /* @__PURE__ */ H(R, { className: "h-4 w-4" })
1326
+ })]
1327
+ }),
1328
+ /* @__PURE__ */ U("div", {
1329
+ className: "relative flex-1 max-w-sm",
1330
+ children: [/* @__PURE__ */ H(z, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ H(r, {
1331
+ placeholder: E("search_placeholder"),
1332
+ value: w,
1333
+ onChange: (e) => T(e.target.value),
1334
+ className: "pl-9"
1335
+ })]
1336
+ }),
1337
+ /* @__PURE__ */ H("div", {
1338
+ className: "w-[180px]",
1339
+ children: /* @__PURE__ */ U(_, {
1340
+ value: l,
1341
+ onValueChange: (e) => u?.(e),
1342
+ children: [/* @__PURE__ */ H(m, { children: /* @__PURE__ */ H(p, { placeholder: "Select view" }) }), /* @__PURE__ */ U(h, { children: [
1343
+ /* @__PURE__ */ H(g, {
1344
+ value: "standard",
1345
+ children: /* @__PURE__ */ U("div", {
1346
+ className: "flex items-center",
1347
+ children: [/* @__PURE__ */ H(I, { className: "h-4 w-4 mr-2" }), E("view_standard")]
1348
+ })
1349
+ }),
1350
+ /* @__PURE__ */ H(g, {
1351
+ value: "swimlane",
1352
+ children: /* @__PURE__ */ U("div", {
1353
+ className: "flex items-center",
1354
+ children: [/* @__PURE__ */ H(F, { className: "h-4 w-4 mr-2" }), E("view_swimlane")]
1355
+ })
1356
+ }),
1357
+ /* @__PURE__ */ H(g, {
1358
+ value: "timeline",
1359
+ children: /* @__PURE__ */ U("div", {
1360
+ className: "flex items-center",
1361
+ children: [
1362
+ /* @__PURE__ */ H(I, { className: "h-4 w-4 mr-2" }),
1363
+ " ",
1364
+ E("view_timeline")
1365
+ ]
1366
+ })
1367
+ })
1368
+ ] })]
1369
+ })
1370
+ }),
1371
+ s && /* @__PURE__ */ H(ce, {
1372
+ board: s,
1373
+ activeFilters: x || {},
1374
+ onFiltersChange: (e) => S?.(e),
1375
+ onClearFilters: () => S?.({})
1376
+ }),
1377
+ s && /* @__PURE__ */ U("div", {
1378
+ className: "flex gap-1",
1379
+ children: [/* @__PURE__ */ U(n, {
1380
+ variant: "outline",
1381
+ size: "sm",
1382
+ onClick: () => A("csv"),
1383
+ title: "Export as CSV",
1384
+ children: [/* @__PURE__ */ H(N, { className: "h-4 w-4 mr-2" }), "CSV"]
1385
+ }), /* @__PURE__ */ U(n, {
1386
+ variant: "outline",
1387
+ size: "sm",
1388
+ onClick: () => A("json"),
1389
+ title: "Export as JSON",
1390
+ children: [/* @__PURE__ */ H(N, { className: "h-4 w-4 mr-2" }), "JSON"]
1391
+ })]
1392
+ }),
1393
+ /* @__PURE__ */ U("div", {
1394
+ className: "ml-auto flex gap-2",
1395
+ children: [/* @__PURE__ */ U(n, {
1396
+ variant: "outline",
1397
+ size: "sm",
1398
+ onClick: o,
1399
+ children: [/* @__PURE__ */ H(L, { className: "h-4 w-4 mr-2" }), E("add_column")]
1400
+ }), /* @__PURE__ */ U(n, {
1401
+ size: "sm",
1402
+ onClick: k,
1403
+ children: [/* @__PURE__ */ H(L, { className: "h-4 w-4 mr-2" }), E("add_card")]
1404
+ })]
1405
+ })
1406
+ ]
1407
+ }) });
1408
+ }, ue = new ee(), de = T((e, t) => {
1409
+ let { className: n, readOnly: r, ...i } = e;
1410
+ return o(), /* @__PURE__ */ H(te, {
1411
+ client: ue,
1412
+ children: /* @__PURE__ */ H(a, {
1413
+ fallback: /* @__PURE__ */ H(J, {}),
1414
+ children: /* @__PURE__ */ H(fe, {
1415
+ ref: t,
1416
+ className: n,
1417
+ readOnly: r,
1418
+ ...i
1419
+ })
1420
+ })
1421
+ });
1422
+ });
1423
+ de.displayName = "EzKanban";
1424
+ var fe = T((t, n) => {
1425
+ let { className: r, readOnly: i, onCardClick: a, onCardDoubleClick: o } = t, { state: c, actions: l, dir: u, imperativeAPI: d } = Q(t, n), [f, p] = j(!1), [m, h] = j(void 0), [g, _] = j(!1), [v, y] = j(null);
1426
+ O(n, () => d, [d]);
1427
+ let b = (e) => {
1428
+ h({
1429
+ columnId: e || c.selectedColumnId || c.board.columns[0]?.id,
1430
+ title: "",
1431
+ description: "",
1432
+ priority: "medium"
1433
+ }), p(!0);
1434
+ }, C = async (e) => {
1435
+ e.id ? await l.updateCard(e.id, e) : await l.createCard(e), p(!1);
1436
+ }, T = (e) => {
1437
+ t.confirmOnDelete === !1 ? (l.deleteCard(e), p(!1)) : (y(e), _(!0), p(!1));
1438
+ }, E = async () => {
1439
+ v && (await l.deleteCard(v), _(!1), y(null));
1440
+ }, D = (e) => {
1441
+ i || (h(e), p(!0)), a?.(e);
1442
+ }, k = (e) => {
1443
+ let t = c.board.columns.find((t) => t.id === e);
1444
+ t && (t.isCollapsed ? l.expandColumn(e) : l.collapseColumn(e));
1445
+ }, A = (e) => {
1446
+ let t = c.board.swimlanes?.find((t) => t.id === e);
1447
+ t && (t.isCollapsed ? l.expandSwimlane(e) : l.collapseSwimlane(e));
1448
+ };
1449
+ return /* @__PURE__ */ U("div", {
1450
+ className: e("flex flex-col h-full bg-background", r),
1451
+ dir: u,
1452
+ children: [
1453
+ /* @__PURE__ */ H(s, {}),
1454
+ /* @__PURE__ */ H(s, {}),
1455
+ !i && (t.slots?.toolbar ? /* @__PURE__ */ H(t.slots.toolbar, {
1456
+ searchQuery: c.searchQuery,
1457
+ onSearchChange: l.setSearchQuery,
1458
+ onAddCardClick: () => b(),
1459
+ onAddColumn: () => {
1460
+ l.createColumn({
1461
+ name: "New Column",
1462
+ position: c.board.columns.length
1463
+ }).then((e) => {
1464
+ l.setSelectedColumnId(e.id);
1465
+ });
1466
+ },
1467
+ activeFilters: c.activeFilters,
1468
+ onFiltersChange: l.setActiveFilters,
1469
+ view: c.view,
1470
+ onViewChange: l.setView,
1471
+ onUndo: l.undo,
1472
+ onRedo: l.redo,
1473
+ canUndo: c.canUndo,
1474
+ canRedo: c.canRedo,
1475
+ ...t.slotProps?.toolbar || {}
1476
+ }) : /* @__PURE__ */ H(le, {
1477
+ searchQuery: c.searchQuery,
1478
+ onSearchChange: l.setSearchQuery,
1479
+ onAddCardClick: () => b(),
1480
+ onAddColumn: () => {
1481
+ l.createColumn({
1482
+ name: "New Column",
1483
+ position: c.board.columns.length
1484
+ }).then((e) => {
1485
+ l.setSelectedColumnId(e.id);
1486
+ });
1487
+ },
1488
+ activeFilters: c.activeFilters,
1489
+ onFiltersChange: l.setActiveFilters,
1490
+ view: c.view,
1491
+ onViewChange: l.setView,
1492
+ onUndo: l.undo,
1493
+ onRedo: l.redo,
1494
+ canUndo: c.canUndo,
1495
+ canRedo: c.canRedo
1496
+ })),
1497
+ /* @__PURE__ */ H("div", {
1498
+ className: "flex-1 overflow-hidden h-full",
1499
+ children: t.slots?.board ? /* @__PURE__ */ H(t.slots.board, {
1500
+ board: c.board,
1501
+ onCardClick: D,
1502
+ onCardDoubleClick: o,
1503
+ onCardDragStart: l.handleDragStart,
1504
+ onCardDragEnd: l.handleDragEnd,
1505
+ onCardDrop: l.handleDrop,
1506
+ onAddCard: b,
1507
+ onToggleColumnCollapse: k,
1508
+ onToggleSwimlaneCollapse: A,
1509
+ onDeleteColumn: l.deleteColumn,
1510
+ onUpdateColumn: l.updateColumn,
1511
+ onColumnClick: l.setSelectedColumnId,
1512
+ onCreateCard: C,
1513
+ selectedColumnId: c.selectedColumnId,
1514
+ draggedCardId: c.draggedCard?.id,
1515
+ filteredCards: c.filteredCards,
1516
+ slots: t.slots,
1517
+ slotProps: t.slotProps,
1518
+ view: c.view,
1519
+ dir: u,
1520
+ className: "flex-1 h-full",
1521
+ ...t.slotProps?.board || {}
1522
+ }) : /* @__PURE__ */ H(S, {
1523
+ board: c.board,
1524
+ onCardClick: D,
1525
+ onCardDoubleClick: o,
1526
+ onCardDragStart: l.handleDragStart,
1527
+ onCardDragEnd: l.handleDragEnd,
1528
+ onCardDrop: l.handleDrop,
1529
+ onAddCard: b,
1530
+ onToggleColumnCollapse: k,
1531
+ onToggleSwimlaneCollapse: A,
1532
+ onDeleteColumn: l.deleteColumn,
1533
+ onUpdateColumn: l.updateColumn,
1534
+ onColumnClick: l.setSelectedColumnId,
1535
+ onCreateCard: C,
1536
+ selectedColumnId: c.selectedColumnId,
1537
+ draggedCardId: c.draggedCard?.id,
1538
+ filteredCards: c.filteredCards,
1539
+ slots: t.slots,
1540
+ slotProps: t.slotProps,
1541
+ view: c.view,
1542
+ dir: u,
1543
+ className: "flex-1 h-full"
1544
+ })
1545
+ }),
1546
+ t.slots?.cardEditor ? /* @__PURE__ */ H(t.slots.cardEditor, {
1547
+ isOpen: f,
1548
+ onClose: () => p(!1),
1549
+ onSave: C,
1550
+ onDelete: T,
1551
+ card: m,
1552
+ columns: c.board.columns,
1553
+ ...t.slotProps?.cardEditor || {}
1554
+ }) : /* @__PURE__ */ H(x, {
1555
+ isOpen: f,
1556
+ onClose: () => p(!1),
1557
+ onSave: C,
1558
+ onDelete: T,
1559
+ card: m,
1560
+ columns: c.board.columns
1561
+ }),
1562
+ /* @__PURE__ */ H(w, {
1563
+ isOpen: g,
1564
+ onClose: () => _(!1),
1565
+ onConfirm: E,
1566
+ title: "Confirm Delete",
1567
+ message: "Are you sure you want to delete this card?",
1568
+ description: "This action cannot be undone."
1569
+ })
1570
+ ]
1571
+ });
1572
+ });
1573
+ fe.displayName = "EzKanbanInner";
1574
+ //#endregion
1575
+ export { Q as i, le as n, $ as r, de as t };