ezux 1.0.0

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 (293) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +56 -0
  3. package/dist/EzEventModal-DtpvYwGr.js +684 -0
  4. package/dist/EzGroupingPanel-CFwKUrF_.js +59 -0
  5. package/dist/EzTableEditDialog-BIk_mNpI.js +60 -0
  6. package/dist/components/EzKanban/EzKanban.types.d.ts +789 -0
  7. package/dist/components/EzKanban/components/CardEditorModal.d.ts +23 -0
  8. package/dist/components/EzKanban/components/EzKanbanErrorFallback.d.ts +1 -0
  9. package/dist/components/EzKanban/components/FilterPopover.d.ts +10 -0
  10. package/dist/components/EzKanban/components/KanbanBoard.d.ts +62 -0
  11. package/dist/components/EzKanban/components/KanbanCard.d.ts +38 -0
  12. package/dist/components/EzKanban/components/KanbanColumn.d.ts +55 -0
  13. package/dist/components/EzKanban/components/KanbanSwimlane.d.ts +46 -0
  14. package/dist/components/EzKanban/components/KanbanToolbar.d.ts +41 -0
  15. package/dist/components/EzKanban/exports.d.ts +4 -0
  16. package/dist/components/EzKanban/hooks/useKanbanCards.d.ts +36 -0
  17. package/dist/components/EzKanban/hooks/useKanbanColumns.d.ts +27 -0
  18. package/dist/components/EzKanban/hooks/useKanbanDragDrop.d.ts +31 -0
  19. package/dist/components/EzKanban/hooks/useKanbanFilters.d.ts +23 -0
  20. package/dist/components/EzKanban/hooks/useKanbanState.d.ts +79 -0
  21. package/dist/components/EzKanban/hooks/useKanbanSwimlanes.d.ts +27 -0
  22. package/dist/components/EzKanban/hooks/useKanbanVirtualization.d.ts +16 -0
  23. package/dist/components/EzKanban/index.d.ts +45 -0
  24. package/dist/components/EzKanban/services/KanbanService.d.ts +30 -0
  25. package/dist/components/EzKanban/state/kanban.store.d.ts +33 -0
  26. package/dist/components/EzKanban/useEzKanban.d.ts +162 -0
  27. package/dist/components/EzKanban/views/KanbanTimelineView.d.ts +15 -0
  28. package/dist/components/EzLayout/Authentication/AuthSlider.d.ts +13 -0
  29. package/dist/components/EzLayout/Authentication/InputPassword.d.ts +7 -0
  30. package/dist/components/EzLayout/Authentication/SignInForm.d.ts +21 -0
  31. package/dist/components/EzLayout/Authentication/SignUpForm.d.ts +20 -0
  32. package/dist/components/EzLayout/EzHeader.d.ts +33 -0
  33. package/dist/components/EzLayout/EzLanguageSwitcher.d.ts +4 -0
  34. package/dist/components/EzLayout/EzLayout.types.d.ts +223 -0
  35. package/dist/components/EzLayout/EzSidebar.d.ts +14 -0
  36. package/dist/components/EzLayout/EzThemeColorChanger.d.ts +9 -0
  37. package/dist/components/EzLayout/EzThemeSwitcher.d.ts +8 -0
  38. package/dist/components/EzLayout/EzUserProfile.d.ts +23 -0
  39. package/dist/components/EzLayout/components/MainContent.d.ts +13 -0
  40. package/dist/components/EzLayout/hooks/useLayoutImperative.d.ts +17 -0
  41. package/dist/components/EzLayout/hooks/useLayoutState.d.ts +25 -0
  42. package/dist/components/EzLayout/index.d.ts +19 -0
  43. package/dist/components/EzLayout/useEzLayout.d.ts +26 -0
  44. package/dist/components/EzScheduler/EzScheduler.types.d.ts +1658 -0
  45. package/dist/components/EzScheduler/EzSchedulerToolbar.d.ts +117 -0
  46. package/dist/components/EzScheduler/components/EzEventModal.d.ts +17 -0
  47. package/dist/components/EzScheduler/components/EzOverlapAlert.d.ts +12 -0
  48. package/dist/components/EzScheduler/components/EzQuickInfoPopup.d.ts +22 -0
  49. package/dist/components/EzScheduler/components/EzResourceSidebar.d.ts +33 -0
  50. package/dist/components/EzScheduler/components/EzSchedulerContent.d.ts +123 -0
  51. package/dist/components/EzScheduler/components/EzSchedulerQuickAdd.d.ts +17 -0
  52. package/dist/components/EzScheduler/components/RecurrenceEditor.d.ts +7 -0
  53. package/dist/components/EzScheduler/components/SchedulerLoadingSpinner.d.ts +2 -0
  54. package/dist/components/EzScheduler/components/dnd/DraggableEvent.d.ts +21 -0
  55. package/dist/components/EzScheduler/components/dnd/DroppableSlot.d.ts +19 -0
  56. package/dist/components/EzScheduler/hooks/useRecurrence.d.ts +2 -0
  57. package/dist/components/EzScheduler/hooks/useSchedulerEventHandlers.d.ts +11 -0
  58. package/dist/components/EzScheduler/hooks/useSchedulerEvents.d.ts +26 -0
  59. package/dist/components/EzScheduler/hooks/useSchedulerImperative.d.ts +15 -0
  60. package/dist/components/EzScheduler/hooks/useSchedulerNavigation.d.ts +9 -0
  61. package/dist/components/EzScheduler/hooks/useSchedulerResources.d.ts +10 -0
  62. package/dist/components/EzScheduler/hooks/useSchedulerState.d.ts +14 -0
  63. package/dist/components/EzScheduler/hooks/useSchedulerVirtualization.d.ts +9 -0
  64. package/dist/components/EzScheduler/index.d.ts +41 -0
  65. package/dist/components/EzScheduler/models/EventSettings.d.ts +11 -0
  66. package/dist/components/EzScheduler/models/View.d.ts +49 -0
  67. package/dist/components/EzScheduler/models/index.d.ts +2 -0
  68. package/dist/components/EzScheduler/services/AttendeeService.d.ts +15 -0
  69. package/dist/components/EzScheduler/services/AuditService.d.ts +15 -0
  70. package/dist/components/EzScheduler/services/CollisionDetectionService.d.ts +19 -0
  71. package/dist/components/EzScheduler/services/DragAndDropService.d.ts +16 -0
  72. package/dist/components/EzScheduler/services/HistoryService.d.ts +31 -0
  73. package/dist/components/EzScheduler/services/ICalendarImportService.d.ts +16 -0
  74. package/dist/components/EzScheduler/services/PrintService.d.ts +7 -0
  75. package/dist/components/EzScheduler/services/RecurrenceEngine.d.ts +7 -0
  76. package/dist/components/EzScheduler/services/ReminderService.d.ts +17 -0
  77. package/dist/components/EzScheduler/services/SchedulerService.d.ts +69 -0
  78. package/dist/components/EzScheduler/services/SearchService.d.ts +11 -0
  79. package/dist/components/EzScheduler/services/SecurityService.d.ts +25 -0
  80. package/dist/components/EzScheduler/services/TimezoneService.d.ts +20 -0
  81. package/dist/components/EzScheduler/services/VirtualScrollingService.d.ts +34 -0
  82. package/dist/components/EzScheduler/state/scheduler.store.d.ts +27 -0
  83. package/dist/components/EzScheduler/templates/CellTemplate.d.ts +42 -0
  84. package/dist/components/EzScheduler/templates/EditorTemplate.d.ts +32 -0
  85. package/dist/components/EzScheduler/templates/HeaderTemplate.d.ts +36 -0
  86. package/dist/components/EzScheduler/tests/phase1_rendering.spec.d.ts +1 -0
  87. package/dist/components/EzScheduler/tests/phase2_events.spec.d.ts +1 -0
  88. package/dist/components/EzScheduler/tests/phase3_templates.spec.d.ts +1 -0
  89. package/dist/components/EzScheduler/tests/phase4_export.spec.d.ts +1 -0
  90. package/dist/components/EzScheduler/tests/phase5_advanced.spec.d.ts +1 -0
  91. package/dist/components/EzScheduler/tests/phase6_security.spec.d.ts +1 -0
  92. package/dist/components/EzScheduler/tests/phase7_regression.spec.d.ts +1 -0
  93. package/dist/components/EzScheduler/useEzScheduler.d.ts +152 -0
  94. package/dist/components/EzScheduler/utils/createDragConstraint.d.ts +7 -0
  95. package/dist/components/EzScheduler/utils/getWeekNumber.d.ts +8 -0
  96. package/dist/components/EzScheduler/utils/sanitizeHtml.d.ts +17 -0
  97. package/dist/components/EzScheduler/views/AgendaView.d.ts +33 -0
  98. package/dist/components/EzScheduler/views/DayWeekView.d.ts +182 -0
  99. package/dist/components/EzScheduler/views/MonthView.d.ts +65 -0
  100. package/dist/components/EzScheduler/views/TimelineView.d.ts +121 -0
  101. package/dist/components/EzSignature/EzSignature.d.ts +42 -0
  102. package/dist/components/EzSignature/EzSignature.test.d.ts +1 -0
  103. package/dist/components/EzSignature/EzSignature.types.d.ts +132 -0
  104. package/dist/components/EzSignature/index.d.ts +2 -0
  105. package/dist/components/EzTable/EzColumnMenu.d.ts +7 -0
  106. package/dist/components/EzTable/EzDateFilterTree.d.ts +7 -0
  107. package/dist/components/EzTable/EzExcelFilter.d.ts +6 -0
  108. package/dist/components/EzTable/EzFilterBuilder.d.ts +12 -0
  109. package/dist/components/EzTable/EzGroupingPanel.d.ts +9 -0
  110. package/dist/components/EzTable/EzHeaderContextMenu.d.ts +8 -0
  111. package/dist/components/EzTable/EzPagination.d.ts +19 -0
  112. package/dist/components/EzTable/EzTable.types.d.ts +1481 -0
  113. package/dist/components/EzTable/EzTableEditDialog.d.ts +15 -0
  114. package/dist/components/EzTable/EzTableFooter.d.ts +10 -0
  115. package/dist/components/EzTable/EzTableOverlays.d.ts +11 -0
  116. package/dist/components/EzTable/EzTableStatusBar.d.ts +6 -0
  117. package/dist/components/EzTable/EzTableToolbar.d.ts +58 -0
  118. package/dist/components/EzTable/SmartCell.d.ts +7 -0
  119. package/dist/components/EzTable/__tests__/EzTableDX.test.d.ts +0 -0
  120. package/dist/components/EzTable/__tests__/EzTableEnterprise.test.d.ts +1 -0
  121. package/dist/components/EzTable/__tests__/useEzTable.test.d.ts +1 -0
  122. package/dist/components/EzTable/components/AdvancedColumnFilter.d.ts +16 -0
  123. package/dist/components/EzTable/components/BooleanFilterSection.d.ts +7 -0
  124. package/dist/components/EzTable/components/DraggableHeader.d.ts +10 -0
  125. package/dist/components/EzTable/components/EzTableBodySection.d.ts +70 -0
  126. package/dist/components/EzTable/components/EzTableCell.d.ts +46 -0
  127. package/dist/components/EzTable/components/EzTableHeaderSection.d.ts +22 -0
  128. package/dist/components/EzTable/components/EzTablePaginationSection.d.ts +31 -0
  129. package/dist/components/EzTable/components/EzTableRow.d.ts +56 -0
  130. package/dist/components/EzTable/components/FilterActionButtons.d.ts +16 -0
  131. package/dist/components/EzTable/components/FilterRuleSelect.d.ts +26 -0
  132. package/dist/components/EzTable/components/SelectAllCheckbox.d.ts +21 -0
  133. package/dist/components/EzTable/components/SelectFilterSection.d.ts +18 -0
  134. package/dist/components/EzTable/components/VirtualizedFilterList.d.ts +21 -0
  135. package/dist/components/EzTable/constants/filterOptions.d.ts +47 -0
  136. package/dist/components/EzTable/context/EzTableContext.d.ts +10 -0
  137. package/dist/components/EzTable/context/TableConfigContext.d.ts +13 -0
  138. package/dist/components/EzTable/context/TableStore.d.ts +17 -0
  139. package/dist/components/EzTable/filterUtils.d.ts +5 -0
  140. package/dist/components/EzTable/hooks/useAutoFit.d.ts +4 -0
  141. package/dist/components/EzTable/hooks/useCellEventHandlers.d.ts +16 -0
  142. package/dist/components/EzTable/hooks/useColumnSizeVars.d.ts +6 -0
  143. package/dist/components/EzTable/hooks/useContainerResize.d.ts +11 -0
  144. package/dist/components/EzTable/hooks/useDialogStateInitialization.d.ts +8 -0
  145. package/dist/components/EzTable/hooks/useFilterSelection.d.ts +12 -0
  146. package/dist/components/EzTable/hooks/useTableFiltering.d.ts +23 -0
  147. package/dist/components/EzTable/hooks/useTableHistory.d.ts +87 -0
  148. package/dist/components/EzTable/hooks/useTableImperative.d.ts +42 -0
  149. package/dist/components/EzTable/hooks/useTableSelection.d.ts +32 -0
  150. package/dist/components/EzTable/hooks/useTableState.d.ts +31 -0
  151. package/dist/components/EzTable/hooks/useTableVirtualization.d.ts +33 -0
  152. package/dist/components/EzTable/index.d.ts +50 -0
  153. package/dist/components/EzTable/renderers/index.d.ts +6 -0
  154. package/dist/components/EzTable/services/TableService.d.ts +26 -0
  155. package/dist/components/EzTable/useEzTable.d.ts +17 -0
  156. package/dist/components/EzTable/utils/TextMeasurer.d.ts +1 -0
  157. package/dist/components/EzTable/utils/TruncatedTooltip.d.ts +7 -0
  158. package/dist/components/EzTable/utils/columnTypeDetector.d.ts +5 -0
  159. package/dist/components/EzTable/utils/filterTypeGuards.d.ts +3 -0
  160. package/dist/components/EzTable/utils/index.d.ts +1 -0
  161. package/dist/components/EzTreeView/EzTreeView.types.d.ts +395 -0
  162. package/dist/components/EzTreeView/EzTreeViewItem.d.ts +77 -0
  163. package/dist/components/EzTreeView/EzVirtualTree.d.ts +72 -0
  164. package/dist/components/EzTreeView/components/EzTreeViewLoadingSpinner.d.ts +2 -0
  165. package/dist/components/EzTreeView/hooks/useTreeDragDrop.d.ts +31 -0
  166. package/dist/components/EzTreeView/hooks/useTreeExpansion.d.ts +21 -0
  167. package/dist/components/EzTreeView/hooks/useTreeImperative.d.ts +28 -0
  168. package/dist/components/EzTreeView/hooks/useTreeSelection.d.ts +31 -0
  169. package/dist/components/EzTreeView/hooks/useTreeState.d.ts +21 -0
  170. package/dist/components/EzTreeView/hooks/useTreeVirtualization.d.ts +18 -0
  171. package/dist/components/EzTreeView/index.d.ts +40 -0
  172. package/dist/components/EzTreeView/services/TreeService.d.ts +11 -0
  173. package/dist/components/EzTreeView/useEzTreeView.d.ts +62 -0
  174. package/dist/components/EzTreeView/utils/treeUtils.d.ts +17 -0
  175. package/dist/components/shared/components/EzErrorBoundary.d.ts +18 -0
  176. package/dist/components/shared/components/EzLayoutErrorFallback.d.ts +2 -0
  177. package/dist/components/shared/components/EzLoadingSpinner.d.ts +8 -0
  178. package/dist/components/shared/components/EzSchedulerErrorFallback.d.ts +2 -0
  179. package/dist/components/shared/components/EzTableErrorFallback.d.ts +2 -0
  180. package/dist/components/shared/components/EzTreeViewErrorFallback.d.ts +2 -0
  181. package/dist/components/ui/avatar.d.ts +5 -0
  182. package/dist/components/ui/badge.d.ts +9 -0
  183. package/dist/components/ui/breadcrumb.d.ts +19 -0
  184. package/dist/components/ui/button.d.ts +12 -0
  185. package/dist/components/ui/calendar.d.ts +15 -0
  186. package/dist/components/ui/card.d.ts +8 -0
  187. package/dist/components/ui/checkbox.d.ts +7 -0
  188. package/dist/components/ui/command.d.ts +78 -0
  189. package/dist/components/ui/context-menu.d.ts +27 -0
  190. package/dist/components/ui/date-time-picker.d.ts +13 -0
  191. package/dist/components/ui/dropdown-menu.d.ts +27 -0
  192. package/dist/components/ui/index.d.ts +26 -0
  193. package/dist/components/ui/input.d.ts +5 -0
  194. package/dist/components/ui/label.d.ts +5 -0
  195. package/dist/components/ui/modal.d.ts +9 -0
  196. package/dist/components/ui/password-input.d.ts +5 -0
  197. package/dist/components/ui/popover.d.ts +4 -0
  198. package/dist/components/ui/progress.d.ts +7 -0
  199. package/dist/components/ui/radio-group.d.ts +5 -0
  200. package/dist/components/ui/scroll-area.d.ts +5 -0
  201. package/dist/components/ui/select.d.ts +24 -0
  202. package/dist/components/ui/skeleton.d.ts +2 -0
  203. package/dist/components/ui/switch.d.ts +4 -0
  204. package/dist/components/ui/table.d.ts +10 -0
  205. package/dist/components/ui/tabs.d.ts +14 -0
  206. package/dist/components/ui/textarea.d.ts +5 -0
  207. package/dist/components/ui/tooltip.d.ts +7 -0
  208. package/dist/ezux.es.js +149 -0
  209. package/dist/ezux.umd.js +68 -0
  210. package/dist/index-DBwoXp4n.js +30656 -0
  211. package/dist/index.d.ts +70 -0
  212. package/dist/lib/perfect-freehand.d.ts +221 -0
  213. package/dist/lib/utils.d.ts +2 -0
  214. package/dist/shared/components/AnimatedText.d.ts +44 -0
  215. package/dist/shared/components/BaseCell.d.ts +14 -0
  216. package/dist/shared/components/BooleanRenderer.d.ts +34 -0
  217. package/dist/shared/components/ChartRenderer.d.ts +19 -0
  218. package/dist/shared/components/DeleteConfirmationModal.d.ts +11 -0
  219. package/dist/shared/components/EzContextMenu.d.ts +12 -0
  220. package/dist/shared/components/EzNotificationDropdown.d.ts +1 -0
  221. package/dist/shared/components/HighlightText.d.ts +4 -0
  222. package/dist/shared/components/Modal.d.ts +13 -0
  223. package/dist/shared/components/NotificationPanel.d.ts +2 -0
  224. package/dist/shared/components/PrimitiveRenderer.d.ts +39 -0
  225. package/dist/shared/components/SearchableSelect.d.ts +13 -0
  226. package/dist/shared/components/SelectRenderer.d.ts +33 -0
  227. package/dist/shared/components/StatusBadge.d.ts +12 -0
  228. package/dist/shared/components/TooltipWrapper.d.ts +12 -0
  229. package/dist/shared/components/index.d.ts +9 -0
  230. package/dist/shared/hooks/index.d.ts +56 -0
  231. package/dist/shared/hooks/useBaseComponent.d.ts +60 -0
  232. package/dist/shared/hooks/useComponentImperativeAPI.d.ts +11 -0
  233. package/dist/shared/hooks/useComponentState.d.ts +39 -0
  234. package/dist/shared/hooks/useCurrentTime.d.ts +6 -0
  235. package/dist/shared/hooks/useDataChangeEvents.d.ts +53 -0
  236. package/dist/shared/hooks/useDebounce.d.ts +10 -0
  237. package/dist/shared/hooks/useDeleteConfirmation.d.ts +9 -0
  238. package/dist/shared/hooks/useDialogState.d.ts +21 -0
  239. package/dist/shared/hooks/useDndHandlers.d.ts +17 -0
  240. package/dist/shared/hooks/useEditing.d.ts +107 -0
  241. package/dist/shared/hooks/useEventHandlers.d.ts +61 -0
  242. package/dist/shared/hooks/useEzTheme.d.ts +22 -0
  243. package/dist/shared/hooks/useFieldValidation.d.ts +24 -0
  244. package/dist/shared/hooks/useHistory.d.ts +13 -0
  245. package/dist/shared/hooks/useI18n.d.ts +9 -0
  246. package/dist/shared/hooks/useImperativeAPI.d.ts +8 -0
  247. package/dist/shared/hooks/useInitCoreServices.d.ts +5 -0
  248. package/dist/shared/hooks/useKeyboardNavigation.d.ts +36 -0
  249. package/dist/shared/hooks/useKeyboardShortcuts.d.ts +14 -0
  250. package/dist/shared/hooks/useLifecycleEvents.d.ts +22 -0
  251. package/dist/shared/hooks/useLoadingState.d.ts +17 -0
  252. package/dist/shared/hooks/useMediaQuery.d.ts +6 -0
  253. package/dist/shared/hooks/useNotificationService.d.ts +8 -0
  254. package/dist/shared/hooks/usePerformanceMonitor.d.ts +15 -0
  255. package/dist/shared/hooks/useRowSelectionEvents.d.ts +44 -0
  256. package/dist/shared/hooks/useSelection.d.ts +73 -0
  257. package/dist/shared/hooks/useService.d.ts +12 -0
  258. package/dist/shared/hooks/useServiceState.d.ts +12 -0
  259. package/dist/shared/hooks/useStateChangeEvents.d.ts +61 -0
  260. package/dist/shared/hooks/useTheme.d.ts +13 -0
  261. package/dist/shared/hooks/useVirtualization.d.ts +85 -0
  262. package/dist/shared/services/BaseService.d.ts +56 -0
  263. package/dist/shared/services/ContextMenuService.d.ts +58 -0
  264. package/dist/shared/services/ExportService.d.ts +35 -0
  265. package/dist/shared/services/FocusManagerService.d.ts +33 -0
  266. package/dist/shared/services/HierarchyService.d.ts +43 -0
  267. package/dist/shared/services/I18nService.d.ts +65 -0
  268. package/dist/shared/services/LayoutService.d.ts +80 -0
  269. package/dist/shared/services/NotificationService.d.ts +44 -0
  270. package/dist/shared/services/PersistenceService.d.ts +69 -0
  271. package/dist/shared/services/ServiceRegistry.d.ts +51 -0
  272. package/dist/shared/services/ThemeService.d.ts +49 -0
  273. package/dist/shared/services/VirtualizationService.d.ts +51 -0
  274. package/dist/shared/state/store.d.ts +10 -0
  275. package/dist/shared/themes.d.ts +25 -0
  276. package/dist/shared/types/BaseProps.d.ts +18 -0
  277. package/dist/shared/types/common.d.ts +292 -0
  278. package/dist/shared/types/commonTypes.d.ts +101 -0
  279. package/dist/shared/types/index.d.ts +2 -0
  280. package/dist/shared/utils/canvasUtils.d.ts +16 -0
  281. package/dist/shared/utils/commonUtils.d.ts +28 -0
  282. package/dist/shared/utils/csvUtils.d.ts +7 -0
  283. package/dist/shared/utils/dateUtils.d.ts +5 -0
  284. package/dist/shared/utils/dndUtils.d.ts +16 -0
  285. package/dist/shared/utils/ezStyleUtils.d.ts +64 -0
  286. package/dist/shared/utils/formatUtils.d.ts +20 -0
  287. package/dist/shared/utils/imperativeApiUtils.d.ts +36 -0
  288. package/dist/shared/utils/index.d.ts +11 -0
  289. package/dist/shared/utils/renderUtils.d.ts +6 -0
  290. package/dist/shared/utils/serviceUtils.d.ts +10 -0
  291. package/dist/shared/utils/styleUtils.d.ts +66 -0
  292. package/dist/shared/utils/validationUtils.d.ts +16 -0
  293. package/package.json +101 -0
@@ -0,0 +1,23 @@
1
+ import { default as React } from 'react';
2
+ import { KanbanCard, KanbanColumn } from '../EzKanban.types';
3
+ export interface CardEditorModalProps {
4
+ isOpen: boolean;
5
+ onClose: () => void;
6
+ onSave: (card: Partial<KanbanCard>) => void;
7
+ onDelete?: (cardId: string) => void;
8
+ card?: Partial<KanbanCard>;
9
+ columns?: KanbanColumn[];
10
+ columnId?: string;
11
+ customFields?: {
12
+ id: string;
13
+ name: string;
14
+ type: 'text' | 'number' | 'date' | 'select' | 'checkbox';
15
+ options?: string[];
16
+ }[];
17
+ currentUser?: {
18
+ id: string;
19
+ name: string;
20
+ avatar?: string;
21
+ };
22
+ }
23
+ export declare const CardEditorModal: React.FC<CardEditorModalProps>;
@@ -0,0 +1 @@
1
+ export declare const EzKanbanErrorFallback: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ import { KanbanBoard, FilterConfig } from '../EzKanban.types';
3
+ interface FilterPopoverProps {
4
+ board: KanbanBoard;
5
+ activeFilters: FilterConfig;
6
+ onFiltersChange: (filters: FilterConfig) => void;
7
+ onClearFilters: () => void;
8
+ }
9
+ export declare const FilterPopover: React.FC<FilterPopoverProps>;
10
+ export {};
@@ -0,0 +1,62 @@
1
+ import { default as React } from 'react';
2
+ import { KanbanBoard, KanbanCard } from '../EzKanban.types';
3
+ /**
4
+ * Props for the KanbanBoard component.
5
+ * @group Properties
6
+ */
7
+ export interface KanbanBoardProps {
8
+ /** The board data object. @group Data */
9
+ board: KanbanBoard;
10
+ /** Callback when a card is clicked. @group Events */
11
+ onCardClick?: (card: KanbanCard) => void;
12
+ /** Callback when a card is double-clicked. @group Events */
13
+ onCardDoubleClick?: (card: KanbanCard) => void;
14
+ /** Callback when card drag starts. @group Events */
15
+ onCardDragStart?: (card: KanbanCard) => void;
16
+ /** Callback when card drag ends. @group Events */
17
+ onCardDragEnd?: () => void;
18
+ /** Callback when a card is dropped into a column/swimlane. @group Events */
19
+ onCardDrop?: (columnId: string, swimlaneId?: string) => void;
20
+ /** Callback to add a new card to a specific location. @group Events */
21
+ onAddCard?: (columnId: string, swimlaneId?: string) => void;
22
+ /** Callback to toggle column collapse state. @group Events */
23
+ onToggleColumnCollapse?: (columnId: string) => void;
24
+ /** Callback to toggle swimlane collapse state. @group Events */
25
+ onToggleSwimlaneCollapse?: (swimlaneId: string) => void;
26
+ /** Callback to add a new column. @group Events */
27
+ onAddColumn?: () => void;
28
+ /** Callback to delete a column. @group Events */
29
+ onDeleteColumn?: (columnId: string) => void;
30
+ /** Callback to update column settings. @group Events */
31
+ onUpdateColumn?: (columnId: string, updates: any) => void;
32
+ /** Callback when a column header is clicked. @group Events */
33
+ onColumnClick?: (columnId: string) => void;
34
+ /** Callback to create a new card from a draft. @group Events */
35
+ onCreateCard?: (card: Partial<KanbanCard>) => Promise<void> | void;
36
+ /** ID of the currently selected column. @group State */
37
+ selectedColumnId?: string | null;
38
+ /** ID of the card currently being dragged. @group State */
39
+ draggedCardId?: string | null;
40
+ /** ID of the card currently highlighted. @group State */
41
+ highlightedCardId?: string | null;
42
+ /** Optional list of filtered cards to display instead of all board cards. @group Data */
43
+ filteredCards?: KanbanCard[];
44
+ /** Custom renderers for board elements. @group Extensibility */
45
+ customRenderers?: {
46
+ card?: (card: KanbanCard, defaultContent: React.JSX.Element) => React.JSX.Element;
47
+ cardContent?: (card: KanbanCard) => React.JSX.Element;
48
+ column?: (column: any) => React.JSX.Element;
49
+ };
50
+ /** Custom class name for the board container. @group Appearance */
51
+ className?: string;
52
+ /** Current view mode of the board. @group State */
53
+ /** Current view mode of the board. @group State */
54
+ view?: 'standard' | 'swimlane' | 'timeline' | 'analytics';
55
+ /** Text direction. @group Appearance */
56
+ dir?: 'ltr' | 'rtl' | 'auto';
57
+ }
58
+ /**
59
+ * Renders the main Kanban board surface, supporting standard, swimlane, and timeline views.
60
+ * @group Components
61
+ */
62
+ export declare const KanbanBoardComponent: React.FC<KanbanBoardProps>;
@@ -0,0 +1,38 @@
1
+ import { default as React } from 'react';
2
+ import { KanbanCard as KanbanCardType, CustomFieldDefinition } from '../EzKanban.types';
3
+ /**
4
+ * Props for the KanbanCard component.
5
+ * @group Properties
6
+ */
7
+ export interface KanbanCardProps {
8
+ /** The card data object. @group Data */
9
+ card: KanbanCardType;
10
+ /** Callback when the card is clicked. @group Events */
11
+ onClick?: (card: KanbanCardType) => void;
12
+ /** Callback when the card is double-clicked. @group Events */
13
+ onDoubleClick?: (card: KanbanCardType) => void;
14
+ /** Callback when card drag starts. @group Events */
15
+ onDragStart?: (card: KanbanCardType) => void;
16
+ /** Callback when card drag ends. @group Events */
17
+ onDragEnd?: () => void;
18
+ /** Whether the card is currently being dragged. @group State */
19
+ isDragging?: boolean;
20
+ /** Whether the card is currently highlighted. @group State */
21
+ isHighlighted?: boolean;
22
+ /** Whether to enable tooltips for the card. @group Appearance */
23
+ enableTooltip?: boolean;
24
+ /** Custom template for the card tooltip. @group Extensibility */
25
+ tooltipTemplate?: (data: KanbanCardType) => React.ReactNode;
26
+ /** Custom field definitions for rendering values. @group Data */
27
+ customFields?: CustomFieldDefinition[];
28
+ /** Custom renderers for card elements. @group Extensibility */
29
+ customRenderers?: {
30
+ card?: (card: KanbanCardType, defaultContent: React.JSX.Element) => React.JSX.Element;
31
+ cardContent?: (card: KanbanCardType) => React.JSX.Element;
32
+ };
33
+ /** Custom class name for the card container. @group Appearance */
34
+ className?: string;
35
+ /** Text direction. @group Appearance */
36
+ dir?: 'ltr' | 'rtl' | 'auto';
37
+ }
38
+ export declare const KanbanCard: React.NamedExoticComponent<KanbanCardProps>;
@@ -0,0 +1,55 @@
1
+ import { default as React } from 'react';
2
+ import { KanbanColumn as KanbanColumnType, KanbanCard, CustomFieldDefinition } from '../EzKanban.types';
3
+ /**
4
+ * Props for the KanbanColumn component.
5
+ * @group Properties
6
+ */
7
+ export interface KanbanColumnProps {
8
+ /** The column definition object. @group Data */
9
+ column: KanbanColumnType;
10
+ /** List of cards in this column. @group Data */
11
+ cards: KanbanCard[];
12
+ /** Callback when a card is clicked. @group Events */
13
+ onCardClick?: (card: KanbanCard) => void;
14
+ /** Callback when a card is double-clicked. @group Events */
15
+ onCardDoubleClick?: (card: KanbanCard) => void;
16
+ /** Callback when card drag starts. @group Events */
17
+ onCardDragStart?: (card: KanbanCard) => void;
18
+ /** Callback when card drag ends. @group Events */
19
+ onCardDragEnd?: () => void;
20
+ /** Callback when a card is dropped into this column. @group Events */
21
+ onDrop?: (columnId: string) => void;
22
+ /** Callback to add a new card to this column. @group Events */
23
+ onAddCard?: (columnId: string) => void;
24
+ /** Callback to toggle column collapse state. @group Events */
25
+ onToggleCollapse?: (columnId: string) => void;
26
+ /** Callback to delete this column. @group Events */
27
+ onDeleteColumn?: (columnId: string) => void;
28
+ /** Callback to update column settings. @group Events */
29
+ onUpdateColumn?: (columnId: string, updates: Partial<KanbanColumnType>) => void;
30
+ /** Callback when the column is clicked. @group Events */
31
+ onColumnClick?: (columnId: string) => void;
32
+ /** ID of the currently selected column. @group State */
33
+ selectedColumnId?: string | null;
34
+ /** ID of the card currently being dragged. @group State */
35
+ draggedCardId?: string | null;
36
+ /** ID of the card currently highlighted. @group State */
37
+ highlightedCardId?: string | null;
38
+ /** Custom field definitions for card rendering. @group Data */
39
+ customFields?: CustomFieldDefinition[];
40
+ /** Custom renderers for column elements. @group Extensibility */
41
+ customRenderers?: {
42
+ card?: (card: KanbanCard, defaultContent: React.JSX.Element) => React.JSX.Element;
43
+ cardContent?: (card: KanbanCard) => React.JSX.Element;
44
+ column?: (column: KanbanColumnType) => React.JSX.Element;
45
+ };
46
+ /** Custom class name for the column container. @group Appearance */
47
+ className?: string;
48
+ /** Text direction. @group Appearance */
49
+ dir?: 'ltr' | 'rtl' | 'auto';
50
+ }
51
+ /**
52
+ * Renders a single Kanban column containing a list of cards.
53
+ * @group Components
54
+ */
55
+ export declare const KanbanColumn: React.FC<KanbanColumnProps>;
@@ -0,0 +1,46 @@
1
+ import { default as React } from 'react';
2
+ import { KanbanSwimlane as KanbanSwimlaneType, KanbanColumn, KanbanCard, CustomFieldDefinition } from '../EzKanban.types';
3
+ /**
4
+ * Props for the KanbanSwimlane component.
5
+ * @group Properties
6
+ */
7
+ export interface KanbanSwimlaneProps {
8
+ /** The swimlane definition object. @group Data */
9
+ swimlane: KanbanSwimlaneType;
10
+ /** List of columns to display within the swimlane. @group Data */
11
+ columns: KanbanColumn[];
12
+ /** List of cards belonging to this swimlane. @group Data */
13
+ cards: KanbanCard[];
14
+ /** Callback when a card is clicked. @group Events */
15
+ onCardClick?: (card: KanbanCard) => void;
16
+ /** Callback when a card is double-clicked. @group Events */
17
+ onCardDoubleClick?: (card: KanbanCard) => void;
18
+ /** Callback when card drag starts. @group Events */
19
+ onCardDragStart?: (card: KanbanCard) => void;
20
+ /** Callback when card drag ends. @group Events */
21
+ onCardDragEnd?: () => void;
22
+ /** Callback when a card is dropped into a cell. @group Events */
23
+ onDrop?: (columnId: string, swimlaneId: string) => void;
24
+ /** Callback to toggle swimlane collapse state. @group Events */
25
+ onToggleCollapse?: (swimlaneId: string) => void;
26
+ /** ID of the card currently being dragged. @group State */
27
+ draggedCardId?: string | null;
28
+ /** ID of the card currently highlighted. @group State */
29
+ highlightedCardId?: string | null;
30
+ /** Custom field definitions for card rendering. @group Data */
31
+ customFields?: CustomFieldDefinition[];
32
+ /** Custom renderers for elements within the swimlane. @group Extensibility */
33
+ customRenderers?: {
34
+ card?: (card: KanbanCard, defaultContent: React.JSX.Element) => React.JSX.Element;
35
+ cardContent?: (card: KanbanCard) => React.JSX.Element;
36
+ };
37
+ /** Custom class name for the swimlane container. @group Appearance */
38
+ className?: string;
39
+ /** Text direction. @group Appearance */
40
+ dir?: 'ltr' | 'rtl' | 'auto';
41
+ }
42
+ /**
43
+ * Renders a swimlane grouping, displaying a horizontal row of columns for cards.
44
+ * @group Components
45
+ */
46
+ export declare const KanbanSwimlane: React.FC<KanbanSwimlaneProps>;
@@ -0,0 +1,41 @@
1
+ import { default as React } from 'react';
2
+ import { FilterConfig, KanbanBoard } from '../EzKanban.types';
3
+ /**
4
+ * Props for the KanbanToolbar component.
5
+ * @group Properties
6
+ */
7
+ export interface KanbanToolbarProps {
8
+ /** The current search query string. @group State */
9
+ searchQuery: string;
10
+ /** Callback when the search query changes. @group Events */
11
+ onSearchChange: (query: string) => void;
12
+ /** Callback to open the card creation dialog. @group Events */
13
+ onAddCardClick?: () => void;
14
+ /** Callback to add a new column. @group Events */
15
+ onAddColumn?: () => void;
16
+ /** The current active filter configuration. @group State */
17
+ activeFilters?: FilterConfig;
18
+ /** Callback when filters are modified. @group Events */
19
+ onFiltersChange?: (filters: FilterConfig) => void;
20
+ /** The current board data (for exports). @group Data */
21
+ board?: KanbanBoard;
22
+ /** Custom class name for the toolbar. @group Appearance */
23
+ className?: string;
24
+ /** Current view mode selected in the toolbar. @group State */
25
+ view?: 'standard' | 'swimlane' | 'timeline';
26
+ /** Callback when the view mode is changed. @group Events */
27
+ onViewChange?: (view: 'standard' | 'swimlane' | 'timeline') => void;
28
+ /** Callback to undo the last action. @group Events */
29
+ onUndo?: () => void;
30
+ /** Callback to redo the previously undone action. @group Events */
31
+ onRedo?: () => void;
32
+ /** Whether undo is currently possible. @group State */
33
+ canUndo?: boolean;
34
+ /** Whether redo is currently possible. @group State */
35
+ canRedo?: boolean;
36
+ }
37
+ /**
38
+ * Renders the toolbar for the Kanban board, providing search, filtering, view switching, and history controls.
39
+ * @group Components
40
+ */
41
+ export declare const KanbanToolbar: React.FC<KanbanToolbarProps>;
@@ -0,0 +1,4 @@
1
+ export * from './EzKanban.types';
2
+ export { default as EzKanban } from './index';
3
+ export { useEzKanban } from './useEzKanban';
4
+ export { KanbanService } from './services/KanbanService';
@@ -0,0 +1,36 @@
1
+ import { EzKanbanProps, KanbanBoard, KanbanCard } from '../EzKanban.types';
2
+ /**
3
+ * Hook for managing Kanban card operations with optimistic updates.
4
+ *
5
+ * Supports CRUD, movements across columns, duplication, archiving, and restoration.
6
+ * Integrates with KanbanService or component-level event handlers.
7
+ *
8
+ * @param props Props for the EzKanban component.
9
+ * @param board The current board state.
10
+ * @group Hooks
11
+ */
12
+ export declare const useKanbanCards: (props: EzKanbanProps, board: KanbanBoard) => {
13
+ /** Create a new card. @group Methods */
14
+ createCard: (draft: Partial<KanbanCard>) => Promise<KanbanCard>;
15
+ /** Update an existing card. @group Methods */
16
+ updateCard: (cardId: string, updates: Partial<KanbanCard>) => Promise<{
17
+ cardId: string;
18
+ updates: Partial<KanbanCard>;
19
+ }>;
20
+ /** Delete a card by ID. @group Methods */
21
+ deleteCard: (cardId: string) => Promise<string>;
22
+ /** Move a card to a new column/swimlane. @group Methods */
23
+ moveCard: (cardId: string, targetColumnId: string, targetSwimlaneId?: string, targetPosition?: number) => Promise<void>;
24
+ /** Duplicate an existing card. @group Methods */
25
+ duplicateCard: (cardId: string) => Promise<KanbanCard>;
26
+ /** Archive a card. @group Methods */
27
+ archiveCard: (cardId: string) => Promise<{
28
+ cardId: string;
29
+ updates: Partial<KanbanCard>;
30
+ }>;
31
+ /** Restore an archived card. @group Methods */
32
+ restoreCard: (cardId: string) => Promise<{
33
+ cardId: string;
34
+ updates: Partial<KanbanCard>;
35
+ }>;
36
+ };
@@ -0,0 +1,27 @@
1
+ import { EzKanbanProps, KanbanBoard, KanbanColumn } from '../EzKanban.types';
2
+ /**
3
+ * Hook for managing Kanban column operations with optimistic updates.
4
+ *
5
+ * Supports CRUD, reordering, and collapse/expand functionality.
6
+ *
7
+ * @param props Props for the EzKanban component.
8
+ * @param board The current board state.
9
+ * @group Hooks
10
+ */
11
+ export declare const useKanbanColumns: (props: EzKanbanProps, board: KanbanBoard) => {
12
+ /** Create a new column. @group Methods */
13
+ createColumn: (draft: Partial<KanbanColumn>) => Promise<KanbanColumn>;
14
+ /** Update an existing column. @group Methods */
15
+ updateColumn: (columnId: string, updates: Partial<KanbanColumn>) => Promise<{
16
+ columnId: string;
17
+ updates: Partial<KanbanColumn>;
18
+ }>;
19
+ /** Delete a column by ID. @group Methods */
20
+ deleteColumn: (columnId: string) => Promise<string>;
21
+ /** Reorder columns by providing new ordered IDs. @group Methods */
22
+ reorderColumns: (columnIds: string[]) => Promise<string[]>;
23
+ /** Collapse a column. @group Methods */
24
+ collapseColumn: (columnId: string) => void;
25
+ /** Expand a column. @group Methods */
26
+ expandColumn: (columnId: string) => void;
27
+ };
@@ -0,0 +1,31 @@
1
+ import { KanbanBoard, KanbanCard, EzKanbanProps } from '../EzKanban.types';
2
+ type DragEvents = Pick<EzKanbanProps, 'onCardDragStart' | 'onCardDragStop' | 'onCardDragEnter' | 'onCardDragLeave'>;
3
+ /**
4
+ * Hook for managing Kanban drag-and-drop state and logic.
5
+ *
6
+ * Tracks the dragged card, columns/swimlanes being dragged over,
7
+ * and handles WIP limit checks and event propagation.
8
+ *
9
+ * @param board The current board state.
10
+ * @param onCardMove Callback to commit a card move.
11
+ * @param wipStrict Whether to enforce hard WIP limits.
12
+ * @param events Optional drag-and-drop events from props.
13
+ * @group Hooks
14
+ */
15
+ export declare const useKanbanDragDrop: (board: KanbanBoard, onCardMove: (cardId: string, targetColumnId: string, targetSwimlaneId?: string) => void, wipStrict?: boolean, events?: DragEvents) => {
16
+ /** The card currently being dragged. @group State */
17
+ draggedCard: KanbanCard | null;
18
+ /** ID of the column being dragged over. @group State */
19
+ dragOverColumn: string | null;
20
+ /** ID of the swimlane being dragged over. @group State */
21
+ dragOverSwimlane: string | null;
22
+ /** Handler for drag start. @group Events */
23
+ handleDragStart: (card: KanbanCard) => void;
24
+ /** Handler for drag over. @group Events */
25
+ handleDragOver: (columnId: string, swimlaneId?: string) => void;
26
+ /** Handler for drag end (cancel/finish). @group Events */
27
+ handleDragEnd: () => void;
28
+ /** Handler for drop (commit move). @group Events */
29
+ handleDrop: (targetColumnId: string, targetSwimlaneId?: string) => void;
30
+ };
31
+ export {};
@@ -0,0 +1,23 @@
1
+ import { KanbanBoard, FilterConfig } from '../EzKanban.types';
2
+ /**
3
+ * Hook for managing Kanban board filtering and search logic.
4
+ *
5
+ * Computes the filtered list of cards based on search query and active filter config.
6
+ *
7
+ * @param board The current board state.
8
+ * @group Hooks
9
+ */
10
+ export declare const useKanbanFilters: (board: KanbanBoard) => {
11
+ /** List of cards after applying search and filters. @group State */
12
+ filteredCards: import('../EzKanban.types').KanbanCard[];
13
+ /** Current search query string. @group State */
14
+ searchQuery: string;
15
+ /** Handler to update the search query. @group Methods */
16
+ setSearchQuery: import('react').Dispatch<import('react').SetStateAction<string>>;
17
+ /** Current active filter configuration. @group State */
18
+ activeFilters: FilterConfig;
19
+ /** Handler to update active filters. @group Methods */
20
+ setActiveFilters: import('react').Dispatch<import('react').SetStateAction<FilterConfig>>;
21
+ /** Clear all active filters and search query. @group Methods */
22
+ clearFilters: () => void;
23
+ };
@@ -0,0 +1,79 @@
1
+ import { EzKanbanProps } from '../EzKanban.types';
2
+ /**
3
+ * Hook for managing Kanban board state using a centralized store.
4
+ *
5
+ * Handles board data, selection, view modes, and history (undo/redo).
6
+ *
7
+ * @param props Props for the EzKanban component.
8
+ * @group Hooks
9
+ */
10
+ export declare const useKanbanState: (props: EzKanbanProps) => {
11
+ /** The current board data. @group State */
12
+ board: import('../EzKanban.types').KanbanBoard;
13
+ /** Currently selected card IDs. @group State */
14
+ selectedCards: string[];
15
+ /** ID of the currently selected column. @group State */
16
+ selectedColumnId: string | null;
17
+ /** Current view mode. @group State */
18
+ view: "standard" | "timeline" | "swimlane";
19
+ /** Current search query. @group State */
20
+ searchQuery: string;
21
+ /** Currently active filters. @group State */
22
+ activeFilters: import('../EzKanban.types').FilterConfig;
23
+ /** Replace the board data. @group Methods */
24
+ setBoard: (board: import('../EzKanban.types').KanbanBoard) => void;
25
+ /** Set selected card IDs. @group Methods */
26
+ setSelectedCards: (cardIds: string[]) => void;
27
+ /** Set the selected column ID. @group Methods */
28
+ setSelectedColumnId: (columnId: string | null) => void;
29
+ /** Change the view mode. @group Methods */
30
+ setView: (view: "standard" | "swimlane" | "timeline") => void;
31
+ /** Set the search query. @group Methods */
32
+ setSearchQuery: (query: string) => void;
33
+ /** Set active filters. @group Methods */
34
+ setActiveFilters: (filters: import('../EzKanban.types').FilterConfig) => void;
35
+ /** Add a card. @group Methods */
36
+ addCard: (card: import('../EzKanban.types').KanbanCard) => void;
37
+ /** Update a card. @group Methods */
38
+ updateCard: (cardId: string, updates: Partial<import('../EzKanban.types').KanbanCard>) => void;
39
+ /** Delete a card. @group Methods */
40
+ deleteCard: (cardId: string) => void;
41
+ /** Move a card. @group Methods */
42
+ moveCard: (cardId: string, targetColumnId: string) => void;
43
+ /** Add a column. @group Methods */
44
+ addColumn: (column: import('../EzKanban.types').KanbanColumn) => void;
45
+ /** Update a column. @group Methods */
46
+ updateColumn: (columnId: string, updates: Partial<import('../EzKanban.types').KanbanColumn>) => void;
47
+ /** Delete a column. @group Methods */
48
+ deleteColumn: (columnId: string) => void;
49
+ /** Undo the last action. @group Methods */
50
+ undo: () => void;
51
+ /** Redo the previously undone action. @group Methods */
52
+ redo: () => void;
53
+ /** Whether undo is available. @group State */
54
+ canUndo: boolean;
55
+ /** Whether redo is available. @group State */
56
+ canRedo: boolean;
57
+ /** The underlying store instance. @group Internal */
58
+ store: import('@tanstack/store').Store<import('../state/kanban.store').KanbanState, (cb: import('../state/kanban.store').KanbanState) => import('../state/kanban.store').KanbanState>;
59
+ /** The compiled actions for the store. @group Internal */
60
+ actions: {
61
+ setBoard: (board: import('../EzKanban.types').KanbanBoard) => void;
62
+ addCard: (card: import('../EzKanban.types').KanbanCard) => void;
63
+ updateCard: (cardId: string, updates: Partial<import('../EzKanban.types').KanbanCard>) => void;
64
+ deleteCard: (cardId: string) => void;
65
+ moveCard: (cardId: string, targetColumnId: string) => void;
66
+ addColumn: (column: import('../EzKanban.types').KanbanColumn) => void;
67
+ updateColumn: (columnId: string, updates: Partial<import('../EzKanban.types').KanbanColumn>) => void;
68
+ deleteColumn: (columnId: string) => void;
69
+ setSelectedCards: (cardIds: string[]) => void;
70
+ setSelectedColumnId: (columnId: string | null) => void;
71
+ setView: (view: "standard" | "swimlane" | "timeline") => void;
72
+ setSearchQuery: (query: string) => void;
73
+ setActiveFilters: (filters: import('../EzKanban.types').FilterConfig) => void;
74
+ undo: () => void;
75
+ redo: () => void;
76
+ canUndo: () => boolean;
77
+ canRedo: () => boolean;
78
+ };
79
+ };
@@ -0,0 +1,27 @@
1
+ import { EzKanbanProps, KanbanBoard, KanbanSwimlane } from '../EzKanban.types';
2
+ /**
3
+ * Hook for managing Kanban swimlane operations with optimistic updates.
4
+ *
5
+ * Supports CRUD, reordering, and collapse/expand functionality.
6
+ *
7
+ * @param props Props for the EzKanban component.
8
+ * @param board The current board state.
9
+ * @group Hooks
10
+ */
11
+ export declare const useKanbanSwimlanes: (props: EzKanbanProps, board: KanbanBoard) => {
12
+ /** Create a new swimlane. @group Methods */
13
+ createSwimlane: (draft: Partial<KanbanSwimlane>) => Promise<KanbanSwimlane>;
14
+ /** Update an existing swimlane. @group Methods */
15
+ updateSwimlane: (swimlaneId: string, updates: Partial<KanbanSwimlane>) => Promise<{
16
+ swimlaneId: string;
17
+ updates: Partial<KanbanSwimlane>;
18
+ }>;
19
+ /** Delete a swimlane by ID. @group Methods */
20
+ deleteSwimlane: (swimlaneId: string) => Promise<string>;
21
+ /** Reorder swimlanes by providing new ordered IDs. @group Methods */
22
+ reorderSwimlanes: (swimlaneIds: string[]) => Promise<string[]>;
23
+ /** Collapse a swimlane. @group Methods */
24
+ collapseSwimlane: (swimlaneId: string) => void;
25
+ /** Expand a swimlane. @group Methods */
26
+ expandSwimlane: (swimlaneId: string) => void;
27
+ };
@@ -0,0 +1,16 @@
1
+ import { KanbanCard } from '../EzKanban.types';
2
+ export interface UseKanbanVirtualizationProps {
3
+ cards: KanbanCard[];
4
+ estimateSize?: number;
5
+ overscan?: number;
6
+ }
7
+ /**
8
+ * Hook for virtualizing Kanban cards in a column
9
+ * Enables smooth scrolling with 10,000+ cards
10
+ */
11
+ export declare const useKanbanVirtualization: ({ cards, estimateSize, overscan, }: UseKanbanVirtualizationProps) => {
12
+ parentRef: import('react').RefObject<HTMLDivElement | null>;
13
+ virtualizer: import('@tanstack/virtual-core').Virtualizer<HTMLDivElement, Element>;
14
+ virtualItems: import('@tanstack/virtual-core').VirtualItem[];
15
+ totalSize: number;
16
+ };
@@ -0,0 +1,45 @@
1
+ import { EzKanbanProps, EzKanbanRef, KanbanCard } from './EzKanban.types';
2
+ export * from './components/KanbanSwimlane';
3
+ export * from './views/KanbanTimelineView';
4
+ /**
5
+ * EzKanban is a powerful, flexible board management system designed for
6
+ * agile workflows and task visualization. It features a robust drag-and-drop
7
+ * engine and supports multiple viewing modes.
8
+ *
9
+
10
+ * ### Key Features
11
+ * - **Modular Architecture**: Built on `@dnd-kit` for performant and accessible drag-and-drop.
12
+ * - **Multi-View Engine**: Switch between `standard` (basic columns), `swimlane` (grouped by team/priority), and `timeline` views.
13
+ * - **Dynamic Columns**: Support for collapsible columns, WIP limits, and custom header rendering.
14
+ * - **Enterprise Editing**: Integrated card editor modal with support for custom field extensions.
15
+ * - **Change Tracking**: Built-in undo/redo stack for all board operations.
16
+ * - **Extensibility**: Inversion of Control (IoC) via custom renderers for cards, headers, and editors.
17
+ *
18
+ * ### Minimal Example
19
+ * ```tsx
20
+ * import { EzKanban } from 'ezux';
21
+ *
22
+ * function TaskBoard() {
23
+ * return (
24
+ * <EzKanban
25
+ * board={initialBoardData}
26
+ * onBoardChange={(newBoard) => saveBoard(newBoard)}
27
+ * />
28
+ * );
29
+ * }
30
+ * ```
31
+ *
32
+ * ### Advanced Config: Swimlanes & Timeline
33
+ * ```tsx
34
+ * <EzKanban
35
+ * board={engineeringBoard}
36
+ * view="swimlane"
37
+ * swimlaneSettings={{ collapsible: true }}
38
+ * onCardDoubleClick={(card) => openDetails(card)}
39
+ * />
40
+ * ```
41
+ *
42
+ * @group Core Components
43
+ */
44
+ export declare const EzKanban: import('react').ForwardRefExoticComponent<EzKanbanProps & import('react').RefAttributes<EzKanbanRef<KanbanCard>>>;
45
+ export default EzKanban;
@@ -0,0 +1,30 @@
1
+ import { IKanbanService, KanbanBoard, KanbanCard, KanbanColumn, KanbanSwimlane } from '../EzKanban.types';
2
+ /**
3
+ * Kanban service implementation following the ServiceRegistry pattern.
4
+ * Uses a static mock database to simulate persistence across component lifecycles.
5
+ */
6
+ export declare class KanbanService implements IKanbanService {
7
+ name: string;
8
+ init(): Promise<void>;
9
+ cleanup(): Promise<void>;
10
+ /**
11
+ * Seeds the mock database with initial data.
12
+ * Useful for demos and tests.
13
+ */
14
+ initializeWithData(boards: KanbanBoard[]): void;
15
+ getBoard(boardId: string): Promise<KanbanBoard>;
16
+ createBoard(board: Partial<KanbanBoard>): Promise<KanbanBoard>;
17
+ updateBoard(boardId: string, updates: Partial<KanbanBoard>): Promise<void>;
18
+ deleteBoard(boardId: string): Promise<void>;
19
+ createCard(boardId: string, card: Partial<KanbanCard>): Promise<KanbanCard>;
20
+ updateCard(cardId: string, updates: Partial<KanbanCard>): Promise<void>;
21
+ deleteCard(cardId: string): Promise<void>;
22
+ moveCard(cardId: string, targetColumnId: string, targetSwimlaneId?: string, targetPosition?: number): Promise<void>;
23
+ createColumn(boardId: string, column: Partial<KanbanColumn>): Promise<KanbanColumn>;
24
+ updateColumn(columnId: string, updates: Partial<KanbanColumn>): Promise<void>;
25
+ deleteColumn(columnId: string): Promise<void>;
26
+ createSwimlane(boardId: string, swimlane: Partial<KanbanSwimlane>): Promise<KanbanSwimlane>;
27
+ updateSwimlane(swimlaneId: string, updates: Partial<KanbanSwimlane>): Promise<void>;
28
+ deleteSwimlane(swimlaneId: string): Promise<void>;
29
+ private simulateLatency;
30
+ }
@@ -0,0 +1,33 @@
1
+ import { Store } from '@tanstack/store';
2
+ import { KanbanBoard, KanbanCard, KanbanColumn, FilterConfig } from '../EzKanban.types';
3
+ export interface KanbanState {
4
+ board: KanbanBoard;
5
+ selectedCards: string[];
6
+ selectedColumnId: string | null;
7
+ view: 'standard' | 'swimlane' | 'timeline';
8
+ searchQuery: string;
9
+ activeFilters: FilterConfig;
10
+ history: KanbanBoard[];
11
+ historyIndex: number;
12
+ }
13
+ export declare const createKanbanStore: (initialBoard: KanbanBoard, initialView?: "standard" | "swimlane" | "timeline") => Store<KanbanState, (cb: KanbanState) => KanbanState>;
14
+ export declare const createKanbanActions: (store: Store<KanbanState>) => {
15
+ setBoard: (board: KanbanBoard) => void;
16
+ addCard: (card: KanbanCard) => void;
17
+ updateCard: (cardId: string, updates: Partial<KanbanCard>) => void;
18
+ deleteCard: (cardId: string) => void;
19
+ moveCard: (cardId: string, targetColumnId: string) => void;
20
+ addColumn: (column: KanbanColumn) => void;
21
+ updateColumn: (columnId: string, updates: Partial<KanbanColumn>) => void;
22
+ deleteColumn: (columnId: string) => void;
23
+ setSelectedCards: (cardIds: string[]) => void;
24
+ setSelectedColumnId: (columnId: string | null) => void;
25
+ setView: (view: "standard" | "swimlane" | "timeline") => void;
26
+ setSearchQuery: (query: string) => void;
27
+ setActiveFilters: (filters: FilterConfig) => void;
28
+ undo: () => void;
29
+ redo: () => void;
30
+ canUndo: () => boolean;
31
+ canRedo: () => boolean;
32
+ };
33
+ export type KanbanActions = ReturnType<typeof createKanbanActions>;