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,5 @@
1
+ const e=require("./EzProvider-L2qQMq-v.cjs"),t=require("./button-BBMwzUtG.cjs"),n=require("./input-CYlvlbF7.cjs"),r=require("./select-sVieKbLu.cjs"),i=require("./card-CPlRZxbq.cjs"),a=require("./DeleteConfirmationModal-CukNDgtX.cjs");let o=require("react");o=e.y(o,1);let s=require("lucide-react"),c=require("react/jsx-runtime"),l=require("@xyflow/react");var u=o.default.memo(({data:t,selected:n})=>{let{label:r,description:i}=t;return(0,c.jsxs)(`div`,{className:e._(`group relative flex flex-col items-center gap-1 px-6 py-3 rounded-full`,`border-2 transition-all duration-200`,`bg-emerald-500/10 border-emerald-500/40 text-emerald-500`,`shadow-[0_0_20px_rgba(16,185,129,0.08)]`,n&&`ring-4 ring-emerald-500/20 scale-105 border-emerald-500 shadow-[0_0_30px_rgba(16,185,129,0.2)]`),role:`group`,"aria-label":`Start node: ${r||`Start`}`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(s.Play,{size:14,className:`fill-emerald-500`}),(0,c.jsx)(`span`,{className:`text-[11px] font-black uppercase tracking-[0.2em]`,children:r||`START`})]}),i&&(0,c.jsx)(`span`,{className:`text-[8px] opacity-50 uppercase tracking-tight`,children:i}),(0,c.jsx)(l.Handle,{type:`source`,position:l.Position.Bottom,className:`!w-4 !h-4 !bg-emerald-500 !border-[3px] !border-background !-bottom-2 shadow-lg shadow-emerald-500/30`,"aria-label":`Output connection`})]})});u.displayName=`StartNode`;var d=o.default.memo(({data:t,selected:n})=>{let{label:r,description:i}=t;return(0,c.jsxs)(`div`,{className:e._(`group relative flex items-center gap-3 px-6 py-3 rounded-full`,`border-2 transition-all duration-200`,`bg-rose-500/10 border-rose-500/30 text-rose-400`,`shadow-xl`,n&&`ring-4 ring-rose-500/20 scale-105 border-rose-500/60`),role:`group`,"aria-label":`End node: ${r||`End`}`,children:[(0,c.jsx)(l.Handle,{type:`target`,position:l.Position.Top,className:`!w-4 !h-4 !bg-rose-500 !border-[3px] !border-background`,"aria-label":`Input connection`}),(0,c.jsx)(s.Square,{size:10,className:`fill-rose-500 text-rose-500`}),(0,c.jsxs)(`div`,{className:`flex flex-col`,children:[(0,c.jsx)(`span`,{className:`text-[11px] font-black uppercase tracking-[0.2em]`,children:r||`END`}),i&&(0,c.jsx)(`span`,{className:`text-[8px] opacity-40 uppercase tracking-tight`,children:i})]})]})});d.displayName=`EndNode`;var f=o.default.memo(({data:t,selected:n})=>{let{label:r}=t,[i,a]=o.default.useState(!1);return(0,c.jsxs)(`div`,{className:`relative w-full h-full group`,onPointerDownCapture:e=>{let t=e.target.closest(`.react-flow__resize-control`);if(t){let e=t.getAttribute(`data-handlepos`)?.includes(`-`);a(!!e)}},role:`group`,"aria-label":`Decision node: ${r||`Decision`}`,children:[(0,c.jsx)(l.NodeResizer,{color:`oklch(var(--primary))`,isVisible:n,minWidth:100,minHeight:100,keepAspectRatio:i,handleClassName:e._(`!w-3 !h-3 !bg-white !border-2 transition-all hover:!scale-125 !z-[70] shadow-sm`,`data-[handlepos^='top-']:!rounded-sm data-[handlepos^='bottom-']:!rounded-sm !border-indigo-600`,`data-[handlepos='top']:!rounded-full data-[handlepos='bottom']:!rounded-full data-[handlepos='left']:!rounded-full data-[handlepos='right']:!rounded-full !border-slate-400`),lineClassName:`!border-indigo-500/30`}),(0,c.jsx)(l.Handle,{type:`target`,position:l.Position.Top,className:`!w-4 !h-4 !bg-amber-500 !border-2 !border-background !z-50`,style:{top:-8},"aria-label":`Input connection`}),(0,c.jsx)(l.Handle,{type:`source`,position:l.Position.Right,id:`yes`,className:`!w-4 !h-4 !bg-emerald-500 !border-2 !border-background !z-50`,style:{right:-8,top:`50%`},"aria-label":`Yes path`}),(0,c.jsx)(l.Handle,{type:`source`,position:l.Position.Bottom,id:`no`,className:`!w-4 !h-4 !bg-rose-500 !border-2 !border-background !z-50`,style:{bottom:-8},"aria-label":`No path`}),(0,c.jsx)(`div`,{className:e._(`absolute inset-0 transition-all duration-200`,`border-2 border-amber-500/40 bg-amber-500/10 backdrop-blur-xl`,n&&`border-amber-500 bg-amber-500/20 shadow-[0_0_30px_rgba(245,158,11,0.3)]`),style:{clipPath:`polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)`}}),(0,c.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center z-10 pointer-events-none px-6`,children:[(0,c.jsx)(`span`,{className:`text-[8px] uppercase font-black tracking-widest text-amber-500/80 mb-0.5`,children:`Decision`}),(0,c.jsx)(`span`,{className:`text-[11px] font-bold leading-tight text-foreground text-center max-w-[70px] truncate`,children:r})]}),(0,c.jsx)(`div`,{className:`absolute -right-8 top-1/2 -translate-y-1/2 text-[9px] font-black text-emerald-400 pointer-events-none tracking-widest select-none z-20`,children:`YES`}),(0,c.jsx)(`div`,{className:`absolute -bottom-5 left-1/2 -translate-x-1/2 text-[9px] font-black text-rose-400 pointer-events-none tracking-widest select-none z-20`,children:`NO`})]})});f.displayName=`DecisionNode`;var p=o.default.memo(({data:t,selected:n})=>{let{label:r,description:a,maxIterations:u}=t,[d,f]=o.default.useState(!1);return(0,c.jsxs)(`div`,{className:`w-full h-full relative group`,onPointerDownCapture:e=>{let t=e.target.closest(`.react-flow__resize-control`);if(t){let e=t.getAttribute(`data-handlepos`)?.includes(`-`);f(!!e)}},children:[(0,c.jsx)(l.NodeResizer,{color:`oklch(var(--primary))`,isVisible:n,minWidth:160,minHeight:80,keepAspectRatio:d,handleClassName:e._(`!w-3 !h-3 !bg-white !border-2 transition-all hover:!scale-125 !z-[70] shadow-sm`,`data-[handlepos^='top-']:!rounded-sm data-[handlepos^='bottom-']:!rounded-sm !border-indigo-600`,`data-[handlepos='top']:!rounded-full data-[handlepos='bottom']:!rounded-full data-[handlepos='left']:!rounded-full data-[handlepos='right']:!rounded-full !border-slate-400`),lineClassName:`!border-indigo-500/30`}),(0,c.jsxs)(i.t,{className:e._(`w-full h-full rounded-2xl transition-all duration-200 overflow-hidden`,`border-2 border-orange-500/30 bg-orange-500/5 backdrop-blur-xl`,n&&`ring-2 ring-orange-500/40 border-orange-500 shadow-lg`),role:`group`,"aria-label":`Loop node: ${r||`Loop`}`,children:[(0,c.jsx)(l.Handle,{type:`target`,position:l.Position.Top,className:`!w-3.5 !h-3.5 !bg-orange-500 !border-[3px] !border-background !z-50`,"aria-label":`Input connection`}),(0,c.jsxs)(i.a,{className:`p-4 space-y-1`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(`div`,{className:`flex items-center justify-center w-8 h-8 rounded-lg bg-orange-500/15`,children:(0,c.jsx)(s.Repeat,{size:16,className:`text-orange-500`})}),(0,c.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,c.jsx)(`div`,{className:`text-[9px] uppercase font-bold tracking-widest text-orange-500/70`,children:`Loop`}),(0,c.jsx)(i.o,{className:`text-sm font-semibold truncate`,children:r})]})]}),a&&(0,c.jsx)(i.r,{className:`text-xs line-clamp-2`,children:a}),u&&(0,c.jsxs)(`div`,{className:`text-[10px] text-orange-400/80 font-medium`,children:[`Max: `,u,` iterations`]})]}),(0,c.jsx)(l.Handle,{type:`source`,position:l.Position.Bottom,className:`!w-3.5 !h-3.5 !bg-orange-500 !border-[3px] !border-background !z-50`,"aria-label":`Output connection`}),(0,c.jsx)(l.Handle,{type:`source`,position:l.Position.Left,id:`loop-back`,className:`!w-3 !h-3 !bg-orange-400/70 !border-2 !border-background !z-50`,"aria-label":`Loop back connection`})]})]})});p.displayName=`LoopNode`;var m=o.default.memo(({data:t,selected:n})=>{let{label:r,description:a,actionType:u}=t,[d,f]=o.default.useState(!1);return(0,c.jsxs)(`div`,{className:`w-full h-full relative group`,onPointerDownCapture:e=>{let t=e.target.closest(`.react-flow__resize-control`);if(t){let e=t.getAttribute(`data-handlepos`)?.includes(`-`);f(!!e)}},children:[(0,c.jsx)(l.NodeResizer,{color:`oklch(var(--primary))`,isVisible:n,minWidth:160,minHeight:80,keepAspectRatio:d,handleClassName:e._(`!w-3 !h-3 !bg-white !border-2 transition-all hover:!scale-125 !z-[70] shadow-sm`,`data-[handlepos^='top-']:!rounded-sm data-[handlepos^='bottom-']:!rounded-sm !border-indigo-600`,`data-[handlepos='top']:!rounded-full data-[handlepos='bottom']:!rounded-full data-[handlepos='left']:!rounded-full data-[handlepos='right']:!rounded-full !border-slate-400`),lineClassName:`!border-indigo-500/30`}),(0,c.jsxs)(i.t,{className:e._(`w-full h-full rounded-2xl transition-all duration-200 overflow-hidden`,`border-2 border-blue-500/30 bg-blue-500/5 backdrop-blur-xl`,n&&`ring-2 ring-blue-500/40 border-blue-500 shadow-lg`),role:`group`,"aria-label":`Action node: ${r||`Action`}`,children:[(0,c.jsx)(l.Handle,{type:`target`,position:l.Position.Top,className:`!w-3.5 !h-3.5 !bg-blue-500 !border-[3px] !border-background !z-50`,"aria-label":`Input connection`}),(0,c.jsxs)(i.a,{className:`p-4 space-y-1`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(`div`,{className:`flex items-center justify-center w-8 h-8 rounded-lg bg-blue-500/15`,children:(0,c.jsx)(s.Zap,{size:16,className:`text-blue-500`})}),(0,c.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,c.jsx)(`div`,{className:`text-[9px] uppercase font-bold tracking-widest text-blue-500/70`,children:`Action`}),(0,c.jsx)(i.o,{className:`text-sm font-semibold truncate`,children:r})]})]}),a&&(0,c.jsx)(i.r,{className:`text-xs line-clamp-2`,children:a}),u&&(0,c.jsx)(`div`,{className:`text-[10px] text-blue-400/80 font-medium mt-1`,children:u})]}),(0,c.jsx)(l.Handle,{type:`source`,position:l.Position.Bottom,className:`!w-3.5 !h-3.5 !bg-blue-500 !border-[3px] !border-background !z-50`,"aria-label":`Output connection`})]})]})});m.displayName=`ActionNode`;var h=o.default.memo(({data:t,selected:n})=>{let{label:r,description:a,method:u,url:d}=t,[f,p]=o.default.useState(!1);return(0,c.jsxs)(`div`,{className:`w-full h-full relative group`,onPointerDownCapture:e=>{let t=e.target.closest(`.react-flow__resize-control`);if(t){let e=t.getAttribute(`data-handlepos`)?.includes(`-`);p(!!e)}},children:[(0,c.jsx)(l.NodeResizer,{color:`oklch(var(--primary))`,isVisible:n,minWidth:200,minHeight:100,keepAspectRatio:f,handleClassName:e._(`!w-3 !h-3 !bg-white !border-2 transition-all hover:!scale-125 !z-[70] shadow-sm`,`data-[handlepos^='top-']:!rounded-sm data-[handlepos^='bottom-']:!rounded-sm !border-indigo-600`,`data-[handlepos='top']:!rounded-full data-[handlepos='bottom']:!rounded-full data-[handlepos='left']:!rounded-full data-[handlepos='right']:!rounded-full !border-slate-400`),lineClassName:`!border-indigo-500/30`}),(0,c.jsxs)(i.t,{className:e._(`w-full h-full rounded-2xl transition-all duration-200 overflow-hidden`,`border-2 border-indigo-500/30 bg-indigo-500/5 backdrop-blur-xl`,n&&`ring-2 ring-indigo-500/40 border-indigo-500 shadow-lg`),role:`group`,"aria-label":`Request node: ${r||`HTTP Request`}`,children:[(0,c.jsx)(l.Handle,{type:`target`,position:l.Position.Top,className:`!w-3.5 !h-3.5 !bg-indigo-500 !border-[3px] !border-background !z-50`,"aria-label":`Input connection`}),(0,c.jsxs)(i.a,{className:`p-4 space-y-1`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(`div`,{className:`flex items-center justify-center w-8 h-8 rounded-lg bg-indigo-500/15`,children:(0,c.jsx)(s.Cloud,{size:16,className:`text-indigo-500`})}),(0,c.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,c.jsx)(`div`,{className:`text-[9px] uppercase font-bold tracking-widest text-indigo-500/70`,children:`HTTP Request`}),(0,c.jsx)(i.o,{className:`text-sm font-semibold truncate`,children:r})]})]}),a&&(0,c.jsx)(i.r,{className:`text-xs line-clamp-2`,children:a}),(u||d)&&(0,c.jsxs)(`div`,{className:`flex items-center gap-2 mt-1`,children:[u&&(0,c.jsx)(`span`,{className:`text-[9px] font-black uppercase tracking-wider px-2 py-0.5 rounded-full bg-indigo-500/20 text-indigo-400`,children:u}),d&&(0,c.jsx)(`span`,{className:`text-[10px] text-muted-foreground truncate max-w-[120px]`,children:d})]})]}),(0,c.jsx)(l.Handle,{type:`source`,position:l.Position.Bottom,className:`!w-3.5 !h-3.5 !bg-indigo-500 !border-[3px] !border-background !z-50`,"aria-label":`Output connection`})]})]})});h.displayName=`RequestNode`;var g=o.default.memo(({data:t,selected:n})=>{let{label:r,description:a,duration:u,unit:d}=t,f=()=>u?`${u} ${d||`minutes`}`:null,[p,m]=o.default.useState(!1);return(0,c.jsxs)(`div`,{className:`w-full h-full relative group`,onPointerDownCapture:e=>{let t=e.target.closest(`.react-flow__resize-control`);if(t){let e=t.getAttribute(`data-handlepos`)?.includes(`-`);m(!!e)}},children:[(0,c.jsx)(l.NodeResizer,{color:`oklch(var(--primary))`,isVisible:n,minWidth:160,minHeight:80,keepAspectRatio:p,handleClassName:e._(`!w-3 !h-3 !bg-white !border-2 transition-all hover:!scale-125 !z-[70] shadow-sm`,`data-[handlepos^='top-']:!rounded-sm data-[handlepos^='bottom-']:!rounded-sm !border-indigo-600`,`data-[handlepos='top']:!rounded-full data-[handlepos='bottom']:!rounded-full data-[handlepos='left']:!rounded-full data-[handlepos='right']:!rounded-full !border-slate-400`),lineClassName:`!border-indigo-500/30`}),(0,c.jsxs)(i.t,{className:e._(`w-full h-full rounded-2xl transition-all duration-200 overflow-hidden`,`border-2 border-gray-400/30 bg-gray-500/5 backdrop-blur-xl`,n&&`ring-2 ring-gray-400/40 border-gray-400 shadow-lg`),role:`group`,"aria-label":`Delay node: ${r||`Delay`}`,children:[(0,c.jsx)(l.Handle,{type:`target`,position:l.Position.Top,className:`!w-3.5 !h-3.5 !bg-gray-400 !border-[3px] !border-background !z-50`,"aria-label":`Input connection`}),(0,c.jsxs)(i.a,{className:`p-4 space-y-1`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(`div`,{className:`flex items-center justify-center w-8 h-8 rounded-lg bg-gray-500/15`,children:(0,c.jsx)(s.Clock,{size:16,className:`text-gray-400`})}),(0,c.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,c.jsx)(`div`,{className:`text-[9px] uppercase font-bold tracking-widest text-gray-400/70`,children:`Delay`}),(0,c.jsx)(i.o,{className:`text-sm font-semibold truncate`,children:r})]})]}),a&&(0,c.jsx)(i.r,{className:`text-xs line-clamp-2`,children:a}),f()&&(0,c.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[10px] text-gray-400/80 font-medium mt-1`,children:[(0,c.jsx)(s.Clock,{size:10}),f()]})]}),(0,c.jsx)(l.Handle,{type:`source`,position:l.Position.Bottom,className:`!w-3.5 !h-3.5 !bg-gray-400 !border-[3px] !border-background !z-50`,"aria-label":`Output connection`})]})]})});g.displayName=`DelayNode`;var _=o.default.memo(({data:t,selected:n})=>{let{label:r,description:a,approverRole:u,slaHours:d}=t,[f,p]=o.default.useState(!1);return(0,c.jsxs)(`div`,{className:`w-full h-full relative group`,onPointerDownCapture:e=>{let t=e.target.closest(`.react-flow__resize-control`);if(t){let e=t.getAttribute(`data-handlepos`)?.includes(`-`);p(!!e)}},children:[(0,c.jsx)(l.NodeResizer,{color:`oklch(var(--primary))`,isVisible:n,minWidth:200,minHeight:100,keepAspectRatio:f,handleClassName:e._(`!w-3 !h-3 !bg-white !border-2 transition-all hover:!scale-125 !z-[70] shadow-sm`,`data-[handlepos^='top-']:!rounded-sm data-[handlepos^='bottom-']:!rounded-sm !border-indigo-600`,`data-[handlepos='top']:!rounded-full data-[handlepos='bottom']:!rounded-full data-[handlepos='left']:!rounded-full data-[handlepos='right']:!rounded-full !border-slate-400`),lineClassName:`!border-indigo-500/30`}),(0,c.jsxs)(i.t,{className:e._(`w-full h-full rounded-2xl transition-all duration-200 overflow-hidden`,`border-2 border-purple-500/30 bg-purple-500/5 backdrop-blur-xl`,n&&`ring-2 ring-purple-500/40 border-purple-500 shadow-lg`),role:`group`,"aria-label":`Approval node: ${r||`Approval`}`,children:[(0,c.jsx)(l.Handle,{type:`target`,position:l.Position.Top,className:`!w-3.5 !h-3.5 !bg-purple-500 !border-[3px] !border-background !z-50`,"aria-label":`Input connection`}),(0,c.jsxs)(i.a,{className:`p-4 space-y-1`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(`div`,{className:`flex items-center justify-center w-8 h-8 rounded-lg bg-purple-500/15`,children:(0,c.jsx)(s.User,{size:16,className:`text-purple-500`})}),(0,c.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,c.jsx)(`div`,{className:`text-[9px] uppercase font-bold tracking-widest text-purple-500/70`,children:`Approval`}),(0,c.jsx)(i.o,{className:`text-sm font-semibold truncate`,children:r})]})]}),a&&(0,c.jsx)(i.r,{className:`text-xs line-clamp-2`,children:a}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-1 mt-1`,children:[u&&(0,c.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[10px] text-purple-400/80 font-medium`,children:[(0,c.jsx)(s.User,{size:10}),` `,u]}),d&&(0,c.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[10px] text-purple-400/60 font-medium`,children:[(0,c.jsx)(s.Clock,{size:10}),` `,d,`h SLA`]})]})]}),(0,c.jsx)(l.Handle,{type:`source`,position:l.Position.Bottom,id:`approved`,className:`!w-3.5 !h-3.5 !bg-emerald-500 !border-[3px] !border-background !z-50`,"aria-label":`Approved path`}),(0,c.jsx)(l.Handle,{type:`source`,position:l.Position.Right,id:`rejected`,className:`!w-3 !h-3 !bg-rose-500 !border-2 !border-background !z-50`,"aria-label":`Rejected path`})]})]})});_.displayName=`ApprovalNode`;var v=o.default.memo(({data:t,selected:n})=>{let{label:r,description:i}=t,[a,u]=o.default.useState(!1);return(0,c.jsxs)(`div`,{className:e._(`w-full h-full rounded-2xl transition-all duration-200 relative group`,`border-2 border-dashed border-muted-foreground/20 bg-muted/5 backdrop-blur-sm`,`p-4`,n&&`ring-2 ring-primary/30 border-primary/40 bg-muted/10`),onPointerDownCapture:e=>{let t=e.target.closest(`.react-flow__resize-control`);if(t){let e=t.getAttribute(`data-handlepos`)?.includes(`-`);u(!!e)}},role:`group`,"aria-label":`Group node: ${r||`Group`}`,children:[(0,c.jsx)(l.NodeResizer,{color:`oklch(var(--primary))`,isVisible:n,minWidth:200,minHeight:150,keepAspectRatio:a,handleClassName:e._(`!w-3 !h-3 !bg-white !border-2 transition-all hover:!scale-125 !z-[70] shadow-sm`,`data-[handlepos^='top-']:!rounded-sm data-[handlepos^='bottom-']:!rounded-sm !border-indigo-600`,`data-[handlepos='top']:!rounded-full data-[handlepos='bottom']:!rounded-full data-[handlepos='left']:!rounded-full data-[handlepos='right']:!rounded-full !border-slate-400`),lineClassName:`!border-indigo-500/30`}),(0,c.jsxs)(`div`,{className:`flex items-center gap-2 mb-4 pb-2 border-b border-dashed border-muted-foreground/10`,children:[(0,c.jsx)(s.Box,{size:14,className:`text-muted-foreground/60`}),(0,c.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-widest text-muted-foreground/60`,children:r||`Sub-process`})]}),i&&(0,c.jsx)(`p`,{className:`text-[10px] text-muted-foreground/40 mb-4`,children:i}),(0,c.jsx)(l.Handle,{type:`target`,position:l.Position.Top,className:`!w-3 !h-3 !bg-muted-foreground/40 !border-2 !border-background`,"aria-label":`Input connection`}),(0,c.jsx)(l.Handle,{type:`source`,position:l.Position.Bottom,className:`!w-3 !h-3 !bg-muted-foreground/40 !border-2 !border-background`,"aria-label":`Output connection`})]})});v.displayName=`GroupNode`;var y=({sourceX:e,sourceY:n,targetX:r,targetY:i,sourcePosition:a,targetPosition:o,style:u={},markerEnd:d,selected:f,label:p,data:m,id:h,onDelete:g})=>{let[_,v,y]=(0,l.getSmoothStepPath)({sourceX:e,sourceY:n,sourcePosition:a,targetX:r,targetY:i,targetPosition:o,borderRadius:16});return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(l.BaseEdge,{path:_,markerEnd:d,style:{...u,strokeWidth:f?3:2,stroke:f?`oklch(var(--primary))`:`oklch(var(--foreground))`,transition:`stroke-width 0.2s ease, stroke 0.2s ease`}}),(p||m?.label)&&(0,c.jsx)(l.EdgeLabelRenderer,{children:(0,c.jsx)(`div`,{style:{position:`absolute`,transform:`translate(-50%, -50%) translate(${v}px,${y}px)`,pointerEvents:`all`},className:`nodrag nopan`,children:(0,c.jsx)(`div`,{className:`px-3 py-1 rounded-full bg-background/80 backdrop-blur-md border border-border text-[10px] font-bold uppercase tracking-widest text-primary shadow-lg`,children:p||m?.label})})}),f&&(0,c.jsx)(l.EdgeLabelRenderer,{children:(0,c.jsx)(`div`,{style:{position:`absolute`,transform:`translate(-50%, -50%) translate(${v}px,${y+22}px)`,pointerEvents:`all`},className:`nodrag nopan`,children:(0,c.jsx)(t.t,{variant:`destructive`,size:`icon`,className:`w-5 h-5 rounded-full shadow-md`,"aria-label":`Delete edge`,onClick:()=>g?.(h),children:(0,c.jsx)(s.X,{className:`w-3 h-3`})})})})]})};y.displayName=`EzFlowEdge`;var b=({fromX:e,fromY:t,toX:n,toY:r,fromPosition:i,toPosition:a,fromHandle:o})=>{let[s]=(0,l.getSmoothStepPath)({sourceX:e,sourceY:t,sourcePosition:i,targetX:n,targetY:r,targetPosition:a,borderRadius:16}),u=o?.id===`yes`||o?.id===`approved`,d=o?.id===`no`||o?.id===`rejected`,f=o?.id===`loop-back`,p=u?`oklch(0.627 0.154 160.06)`:d?`oklch(0.577 0.245 27.325)`:f?`oklch(0.7 0.15 45)`:`oklch(var(--primary))`,m=u?`YES?`:d?`NO?`:f?`LOOP`:`CONNECT`;return(0,c.jsxs)(`g`,{children:[(0,c.jsx)(`path`,{fill:`none`,stroke:p,strokeWidth:2,d:s,style:{strokeDasharray:`6,4`}}),(0,c.jsx)(`circle`,{cx:n,cy:r,fill:`oklch(var(--background))`,r:4,stroke:p,strokeWidth:1.5}),(0,c.jsx)(`foreignObject`,{x:n+10,y:r-12,width:80,height:30,className:`pointer-events-none`,children:(0,c.jsx)(`div`,{className:`flex items-center`,children:(0,c.jsx)(`div`,{className:`px-2 py-0.5 rounded-full bg-background/80 backdrop-blur-md border border-border text-[8px] font-black uppercase tracking-tighter shadow-xl whitespace-nowrap`,style:{color:p},children:m})})})]})};b.displayName=`EzConnectionLine`;var x=e=>(0,c.jsx)(l.Background,{...e,color:`oklch(var(--border))`,variant:`dots`,gap:24,size:1,className:`opacity-40`});x.displayName=`EzFlowBackground`;var S=e=>(0,c.jsx)(l.Controls,{...e,className:`!bg-card/80 !backdrop-blur-md !border !border-border !shadow-2xl !rounded-2xl !p-1 !flex !flex-row !gap-1 !m-4 !overflow-hidden`,showInteractive:!1,"aria-label":`Canvas zoom and fit controls`});S.displayName=`EzFlowControls`;var C={startNode:u,endNode:d,decisionNode:f,loopNode:p,actionNode:m,requestNode:h,delayNode:g,approvalNode:_,groupNode:v},w=o.default.forwardRef(({nodes:t,edges:n,onNodesChange:r,onEdgesChange:i,onConnect:a,onDrop:s,onDragOver:u,onNodeClick:d,onNodeDoubleClick:f,onEdgeClick:p,onEdgeDelete:m,onPaneClick:h,nodeTypes:g=C,edgeTypes:_,isValidConnection:v,snapToGrid:w=!0,snapGrid:T=[15,15],showGrid:E=!0,fitView:ee=!1,readOnly:D=!1,className:O,style:k,...A},j)=>{let M=o.default.useMemo(()=>_??{ezEdge:e=>(0,c.jsx)(y,{...e,onDelete:m})},[_,m]),N=o.default.useCallback(e=>{if(v)return v(e);if(!e.source||!e.target||e.source===e.target)return!1;let r=new Map(t.map(e=>[e.id,e])),i=new Set,a=[{id:e.target,path:[e.target]}];for(;a.length>0;){let t=a.shift();if(!(!t||i.has(t.id))){i.add(t.id);for(let i of n)if(i.source===t.id){if(i.target===e.source)return[...t.path,i.target].some(e=>r.get(e)?.type===`loopNode`);a.push({id:i.target,path:[...t.path,i.target]})}}}return!0},[n,v,t]);return(0,c.jsx)(`div`,{ref:j,className:e._(`w-full h-full min-h-0 relative`,O),style:k,...A,children:(0,c.jsxs)(l.ReactFlow,{nodes:t,edges:n,onNodesChange:D?void 0:r,onEdgesChange:D?void 0:i,onConnect:D?void 0:a,onDrop:D?void 0:s,onDragOver:D?void 0:u,onNodeClick:d,onNodeDoubleClick:f,onEdgeClick:p,onPaneClick:h,nodeTypes:g,edgeTypes:M,connectionLineComponent:b,isValidConnection:N,fitView:ee,defaultViewport:{x:0,y:0,zoom:1},panOnScroll:!0,zoomOnScroll:!1,snapToGrid:w,snapGrid:T,nodesDraggable:!D,nodesConnectable:!D,elementsSelectable:!D,defaultEdgeOptions:{type:`ezEdge`,animated:!0,selectable:!0},proOptions:{hideAttribution:!0},children:[E&&(0,c.jsx)(x,{gap:T[0],size:1.5}),(0,c.jsx)(S,{"aria-label":`Canvas controls`})]})})});w.displayName=`EzFlowCanvas`;var T=({category:e,isExpanded:t,onToggle:n,onNodeActivate:r})=>{let i=(e,t)=>{e.dataTransfer.setData(`application/reactflow`,t),e.dataTransfer.setData(`text/plain`,t),e.dataTransfer.effectAllowed=`move`};return(0,c.jsxs)(`div`,{className:`mb-2`,children:[(0,c.jsxs)(`button`,{className:`w-full flex items-center gap-2 px-3 py-2 rounded-xl text-[10px] font-black uppercase tracking-widest text-muted-foreground/60 hover:bg-muted/30 transition-colors`,onClick:n,"aria-expanded":t,"aria-label":`Toggle ${e.categoryKey} section`,children:[t?(0,c.jsx)(s.ChevronDown,{size:12}):(0,c.jsx)(s.ChevronRight,{size:12}),e.categoryKey]}),t&&(0,c.jsx)(`div`,{className:`flex flex-col gap-1.5 mt-1 px-1`,children:e.items.map(e=>(0,c.jsxs)(`div`,{className:`group relative flex items-center gap-3 p-3 rounded-xl bg-background/30 border border-transparent hover:border-primary/30 hover:bg-primary/5 transition-all cursor-grab active:cursor-grabbing`,onDragStart:t=>i(t,e.type),onDoubleClick:()=>r?.(e),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),r?.(e))},draggable:!0,role:`button`,tabIndex:0,"aria-label":`Drag ${e.labelKey} node`,"data-ezflow-node-type":e.type,children:[(0,c.jsx)(`div`,{className:`absolute left-1 top-1/2 -translate-y-1/2 opacity-0 group-hover:opacity-30 transition-opacity`,children:(0,c.jsx)(s.GripVertical,{size:12})}),(0,c.jsx)(`div`,{className:`flex items-center justify-center w-8 h-8 rounded-lg bg-primary/10 text-primary group-hover:scale-110 transition-transform ml-2`,children:e.icon}),(0,c.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[(0,c.jsx)(`span`,{className:`text-xs font-bold leading-none mb-0.5 truncate`,children:e.labelKey}),e.descriptionKey&&(0,c.jsx)(`span`,{className:`text-[10px] text-muted-foreground leading-tight line-clamp-1`,children:e.descriptionKey})]})]},e.type))})]})},E=({categories:n,title:r=`Node Library`,className:i,collapsed:a=!1,onCollapsedChange:l,onNodeActivate:u})=>{let[d,f]=o.default.useState(new Set(n.map(e=>e.category))),p=e=>{f(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return a?(0,c.jsxs)(`aside`,{className:e._(`p-2 border-r border-border bg-card/30 backdrop-blur-md flex flex-col items-center`,i),"aria-label":`Node Library (collapsed)`,children:[(0,c.jsx)(t.t,{variant:`ghost`,size:`icon`,className:`rounded-xl mb-2`,onClick:()=>l?.(!1),"aria-label":`Expand node library`,children:(0,c.jsx)(s.PanelLeft,{size:16})}),n.flatMap(e=>e.items.map(e=>(0,c.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-xl hover:bg-primary/10 cursor-grab active:cursor-grabbing transition-colors mb-1`,onDragStart:t=>{t.dataTransfer.setData(`application/reactflow`,e.type),t.dataTransfer.setData(`text/plain`,e.type),t.dataTransfer.effectAllowed=`move`},onDoubleClick:()=>u?.(e),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),u?.(e))},draggable:!0,title:e.labelKey,role:`button`,tabIndex:0,"aria-label":`Drag ${e.labelKey} node`,"data-ezflow-node-type":e.type,children:e.icon},e.type)))]}):(0,c.jsxs)(`aside`,{className:e._(`w-72 p-4 border-r border-border bg-card/30 backdrop-blur-md flex flex-col gap-2 overflow-y-auto`,i),"aria-label":`Node Library`,children:[(0,c.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,c.jsx)(`div`,{className:`text-[10px] uppercase font-black tracking-widest text-primary/60 px-1`,children:r}),l&&(0,c.jsx)(t.t,{variant:`ghost`,size:`icon`,className:`rounded-xl w-7 h-7`,onClick:()=>l(!0),"aria-label":`Collapse node library`,children:(0,c.jsx)(s.PanelLeftClose,{size:14})})]}),n.map(e=>(0,c.jsx)(T,{category:e,isExpanded:d.has(e.category),onToggle:()=>p(e.category),onNodeActivate:u},e.category))]})};E.displayName=`EzFlowToolbox`;var ee={draft:{className:`bg-amber-500/15 text-amber-500 border-amber-500/30`,label:`Draft`},live:{className:`bg-emerald-500/15 text-emerald-500 border-emerald-500/30`,label:`Live`},archived:{className:`bg-gray-500/15 text-gray-400 border-gray-500/30`,label:`Archived`}},D=({title:n,description:r,status:i=`draft`,isDirty:a=!1,onTitleChange:l,onDescriptionChange:u,onSave:d,onPublish:f,onCancel:p,showGrid:m=!0,onShowGridChange:h,snapToGrid:g=!0,onSnapToGridChange:_,className:v})=>{let[y,b]=o.default.useState(!1),[x,S]=o.default.useState(!1),[C,w]=o.default.useState(n),[T,E]=o.default.useState(r||``),D=o.default.useRef(null),O=o.default.useRef(null);o.default.useEffect(()=>{w(n)},[n]),o.default.useEffect(()=>{E(r||``)},[r]);let k=()=>{b(!1),C!==n&&l?.(C)},A=()=>{S(!1),T!==r&&u?.(T)},j=()=>{a&&!window.confirm(`You have unsaved changes. Discard and exit?`)||p?.()},M=ee[i];return(0,c.jsxs)(`header`,{className:e._(`h-16 border-b border-border flex items-center justify-between px-6 bg-card/50 backdrop-blur-xl shrink-0`,v),role:`banner`,"aria-label":`Workflow designer header`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-4 min-w-0`,children:[(0,c.jsx)(t.t,{variant:`ghost`,size:`icon`,className:`rounded-xl shrink-0`,onClick:j,"aria-label":`Go back`,children:(0,c.jsx)(s.ChevronLeft,{size:18})}),(0,c.jsx)(`div`,{className:`h-6 w-px bg-border shrink-0`}),(0,c.jsxs)(`div`,{className:`flex flex-col min-w-0`,children:[y?(0,c.jsx)(`input`,{ref:D,value:C,onChange:e=>w(e.target.value),onBlur:k,onKeyDown:e=>{e.key===`Enter`&&k(),e.key===`Escape`&&(w(n),b(!1))},className:`text-base font-bold bg-transparent border-none outline-none ring-0 p-0 text-foreground w-full`,autoFocus:!0,"aria-label":`Workflow title`}):(0,c.jsxs)(`button`,{className:`text-base font-bold text-left hover:text-primary transition-colors cursor-text truncate`,onClick:()=>{b(!0),setTimeout(()=>D.current?.focus(),0)},"aria-label":`Workflow title: ${C}. Click to edit`,children:[C||`Untitled Workflow`,a&&(0,c.jsx)(`span`,{className:`ml-2 text-[9px] text-muted-foreground/50 font-normal`,children:`(unsaved)`})]}),x?(0,c.jsx)(`input`,{ref:O,value:T,onChange:e=>E(e.target.value),onBlur:A,onKeyDown:e=>{e.key===`Enter`&&A(),e.key===`Escape`&&(E(r||``),S(!1))},className:`text-[10px] uppercase tracking-widest text-muted-foreground bg-transparent border-none outline-none ring-0 p-0 w-full`,autoFocus:!0,"aria-label":`Workflow description`}):(0,c.jsx)(`button`,{className:`text-[10px] uppercase tracking-widest text-muted-foreground/50 text-left hover:text-muted-foreground transition-colors cursor-text truncate`,onClick:()=>{S(!0),setTimeout(()=>O.current?.focus(),0)},"aria-label":`Description: ${T||`Click to add description`}`,children:T||`Click to add description`})]}),(0,c.jsx)(`div`,{className:e._(`shrink-0 px-3 py-1 rounded-full border text-[10px] font-bold uppercase tracking-widest`,M.className),role:`status`,"aria-label":`Status: ${M.label}`,children:M.label})]}),(0,c.jsxs)(`div`,{className:`flex items-center gap-6 shrink-0`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-4 bg-background/40 px-4 py-1.5 rounded-2xl border border-border/10`,children:[(0,c.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer group`,children:[(0,c.jsx)(`input`,{type:`checkbox`,checked:m,onChange:e=>h?.(e.target.checked),className:`w-4 h-4 rounded border-border text-primary focus:ring-primary/20 transition-all cursor-pointer`}),(0,c.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider font-bold text-muted-foreground group-hover:text-foreground transition-colors`,children:`Grid`})]}),(0,c.jsx)(`div`,{className:`w-px h-4 bg-border/20`}),(0,c.jsxs)(`label`,{className:`flex items-center gap-2 cursor-pointer group`,children:[(0,c.jsx)(`input`,{type:`checkbox`,checked:g,onChange:e=>_?.(e.target.checked),className:`w-4 h-4 rounded border-border text-primary focus:ring-primary/20 transition-all cursor-pointer`}),(0,c.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider font-bold text-muted-foreground group-hover:text-foreground transition-colors`,children:`Snap`})]})]}),(0,c.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,c.jsxs)(t.t,{variant:`ghost`,className:`rounded-xl h-9 px-4 text-xs gap-2`,onClick:j,"aria-label":`Cancel changes`,children:[(0,c.jsx)(s.X,{size:14}),`Cancel`]}),(0,c.jsxs)(t.t,{className:`rounded-xl h-9 px-6 bg-primary text-primary-foreground gap-2 shadow-lg shadow-primary/20 text-xs font-bold`,onClick:d,"aria-label":`Save workflow`,children:[(0,c.jsx)(s.Save,{size:14}),`Save`]}),f&&(0,c.jsxs)(t.t,{variant:`secondary`,className:`rounded-xl h-9 px-4 text-xs gap-2 font-bold`,onClick:f,"aria-label":`Publish workflow`,children:[(0,c.jsx)(s.Rocket,{size:14}),`Publish`]})]})]})]})};D.displayName=`EzFlowHeader`;var O={nodes:[],edges:[],viewport:{x:0,y:0,zoom:1},metadata:{title:`Untitled Workflow`,status:`draft`,version:1}},k={startNode:{label:`Start`,triggerType:`manual`},endNode:{label:`End`,outcome:`success`},decisionNode:{label:`Decision`,branches:[]},loopNode:{label:`Loop`,iteratorSource:``,maxIterations:10},actionNode:{label:`Action`,actionType:``,config:{}},requestNode:{label:`API Request`,method:`GET`,url:``},delayNode:{label:`Delay`,duration:1,unit:`hours`},approvalNode:{label:`Approval`,approverRole:``},groupNode:{label:`Group`,collapsed:!1}},A={startNode:{type:`startNode`,label:`Start`,description:`Workflow entry point`,category:`flow_control`,icon:(0,c.jsx)(s.Play,{size:16}),component:u,defaultData:k.startNode},endNode:{type:`endNode`,label:`End`,description:`Workflow completion`,category:`flow_control`,icon:(0,c.jsx)(s.CheckCircle2,{size:16}),component:d,defaultData:k.endNode},decisionNode:{type:`decisionNode`,label:`Decision`,description:`Branch by condition`,category:`logic`,icon:(0,c.jsx)(s.Diamond,{size:16}),component:f,defaultData:k.decisionNode,requiredDataKeys:[`branches`]},loopNode:{type:`loopNode`,label:`Loop`,description:`Repeat a path`,category:`flow_control`,icon:(0,c.jsx)(s.GitBranch,{size:16}),component:p,defaultData:k.loopNode,requiredDataKeys:[`iteratorSource`]},actionNode:{type:`actionNode`,label:`Action`,description:`Run an action`,category:`execution`,icon:(0,c.jsx)(s.Circle,{size:16}),component:m,defaultData:k.actionNode,requiredDataKeys:[`actionType`]},requestNode:{type:`requestNode`,label:`API Request`,description:`Call an HTTP endpoint`,category:`execution`,icon:(0,c.jsx)(s.Send,{size:16}),component:h,defaultData:k.requestNode,requiredDataKeys:[`url`]},delayNode:{type:`delayNode`,label:`Delay`,description:`Pause execution`,category:`logic`,icon:(0,c.jsx)(s.Clock,{size:16}),component:g,defaultData:k.delayNode,requiredDataKeys:[`duration`]},approvalNode:{type:`approvalNode`,label:`Approval`,description:`Wait for a person`,category:`human`,icon:(0,c.jsx)(s.Hand,{size:16}),component:_,defaultData:k.approvalNode,requiredDataKeys:[`approverRole`]},groupNode:{type:`groupNode`,label:`Group`,description:`Organize nodes`,category:`structural`,icon:(0,c.jsx)(s.SquareStack,{size:16}),component:v,defaultData:k.groupNode}},j=[`flow_control`,`logic`,`execution`,`human`,`structural`],M={flow_control:`Flow`,logic:`Logic`,execution:`Work`,human:`Human`,structural:`Structure`},N=e=>({...e,nodes:e.nodes.map(e=>({...e,data:{...e.data}})),edges:e.edges.map(e=>({...e,data:e.data?{...e.data}:e.data})),metadata:e.metadata?{...e.metadata}:void 0,viewport:e.viewport?{...e.viewport}:void 0}),te=e=>e==null||e===``||Array.isArray(e)&&e.length===0,P=(e,t)=>t.filter(t=>t.source===e).map(e=>e.target),ne=(e=A)=>{let t=new Map;return Object.values(e).forEach(e=>{let n=t.get(e.category)??{categoryKey:M[e.category]??e.category,category:e.category,items:[]};n.items.push({type:e.type,labelKey:e.label,descriptionKey:e.description,category:e.category,icon:e.icon??(0,c.jsx)(s.Circle,{size:16}),defaultData:e.defaultData}),t.set(e.category,n)}),Array.from(t.values()).sort((e,t)=>j.indexOf(e.category)-j.indexOf(t.category))},F=(e,t=A)=>{let n=[],r=e.nodes.filter(e=>e.type===`startNode`),i=e.nodes.filter(e=>e.type===`endNode`),a=new Set(i.map(e=>e.id)),o=new Map(e.nodes.map(e=>[e.id,e])),s=new Map,c=new Map;e.edges.forEach(e=>{s.set(e.target,(s.get(e.target)??0)+1),c.set(e.source,(c.get(e.source)??0)+1)}),r.length===0&&n.push({code:`missing_start`,severity:`error`,message:`Workflow requires a start node.`}),i.length===0&&n.push({code:`missing_end`,severity:`error`,message:`Workflow requires an end node.`}),e.nodes.forEach(r=>{r.type!==`startNode`&&r.type!==`groupNode`&&(s.get(r.id)??0)===0&&n.push({code:`orphan_node`,severity:`error`,message:`Node has no incoming path.`,nodeId:r.id});let i=t[String(r.type??``)];if(i?.requiredDataKeys?.forEach(e=>{te(r.data?.[e])&&n.push({code:`missing_required_config`,severity:`error`,message:`${i.label} requires ${e}.`,nodeId:r.id,field:e})}),r.data?.label||n.push({code:`missing_required_config`,severity:`error`,message:`Node label is required.`,nodeId:r.id,field:`label`}),r.type===`decisionNode`){let e=Array.isArray(r.data?.branches)?r.data.branches:[];(e.length<2||(c.get(r.id)??0)<e.length)&&n.push({code:`missing_decision_branch`,severity:`error`,message:`Decision nodes require branch coverage for each outcome.`,nodeId:r.id,field:`branches`})}n.push(...i?.validate?.(r,e)??[])}),e.nodes.forEach(t=>{if(t.type===`endNode`||t.type===`groupNode`)return;let r=new Set,i=[t.id],o=!1;for(;i.length>0;){let t=i.shift();if(!(!t||r.has(t))){if(r.add(t),a.has(t)){o=!0;break}i.push(...P(t,e.edges))}}o||n.push({code:`missing_end_path`,severity:`error`,message:`Node has no path to an end node.`,nodeId:t.id})});let l=new Set,u=new Set,d=(t,r)=>{if(l.has(t)){r.slice(r.indexOf(t)).some(e=>o.get(e)?.type===`loopNode`)||n.push({code:`invalid_cycle`,severity:`error`,message:`Workflow cycles require a loop node.`,nodeId:t});return}u.has(t)||(l.add(t),P(t,e.edges).forEach(e=>d(e,[...r,e])),l.delete(t),u.add(t))};return e.nodes.forEach(e=>d(e.id,[e.id])),{valid:!n.some(e=>e.severity===`error`),issues:n}},re=F,I=e=>e==null?``:String(e),ie=e=>e.split(`
2
+ `).map(e=>e.trim()).filter(Boolean).reduce((e,t)=>{let[n,...r]=t.split(`:`);return n&&r.length>0&&(e[n.trim()]=r.join(`:`).trim()),e},{}),ae=e=>e&&typeof e==`object`?Object.entries(e).map(([e,t])=>`${e}: ${t}`).join(`
3
+ `):``,oe=({node:l,registry:u,issues:d,readOnly:f,onChange:p,onDelete:m,onClose:h,className:g})=>{let[_,v]=o.default.useState(!1);if(!l)return(0,c.jsxs)(`aside`,{className:e._(`w-80 border-l border-border bg-card/35 p-4`,g),"aria-label":`Workflow inspector`,children:[(0,c.jsx)(`div`,{className:`text-xs font-bold uppercase tracking-wide text-muted-foreground`,children:`Inspector`}),(0,c.jsx)(`div`,{className:`mt-6 rounded-lg border border-dashed border-border p-4 text-sm text-muted-foreground`,children:`Select a node to edit its configuration.`})]});let y=u[String(l.type??``)],b=l.data,x=y?.editor,S=(t,n,r)=>(0,c.jsxs)(`label`,{className:`grid gap-1.5`,children:[(0,c.jsx)(`span`,{className:e._(`text-[11px] font-semibold uppercase tracking-wide text-muted-foreground`,(r?d.some(e=>e.field===r):!1)&&`text-destructive`),children:t}),n]}),C=e=>p(e);return(0,c.jsxs)(`aside`,{className:e._(`w-80 border-l border-border bg-card/35 p-4 overflow-y-auto`,g),"aria-label":`Workflow inspector`,children:[(0,c.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,c.jsxs)(`div`,{className:`min-w-0`,children:[(0,c.jsx)(`div`,{className:`text-xs font-bold uppercase tracking-wide text-muted-foreground`,children:`Inspector`}),(0,c.jsx)(`div`,{className:`truncate text-sm font-semibold`,children:y?.label??l.type??`Node`})]}),(0,c.jsx)(t.t,{variant:`ghost`,size:`icon`,onClick:h,"aria-label":`Close inspector`,children:(0,c.jsx)(s.X,{size:16})})]}),(0,c.jsxs)(`div`,{className:`mt-4 grid gap-4`,children:[S(`Label`,(0,c.jsx)(n.t,{value:I(b.label),onChange:e=>C({label:e.target.value}),disabled:f}),`label`),S(`Description`,(0,c.jsx)(i.s,{value:I(b.description),onChange:e=>C({description:e.target.value}),disabled:f})),(()=>{if(x)return(0,c.jsx)(x,{node:l,data:b,onChange:C,readOnly:f,issues:d});switch(l.type){case`startNode`:return S(`Trigger`,(0,c.jsxs)(r.t,{value:I(`triggerType`in b?b.triggerType:`manual`),onValueChange:f?void 0:e=>C({triggerType:e}),children:[(0,c.jsx)(r.i,{children:(0,c.jsx)(r.a,{})}),(0,c.jsxs)(r.n,{children:[(0,c.jsx)(r.r,{value:`manual`,children:`Manual`}),(0,c.jsx)(r.r,{value:`scheduled`,children:`Scheduled`}),(0,c.jsx)(r.r,{value:`webhook`,children:`Webhook`})]})]}));case`endNode`:return S(`Outcome`,(0,c.jsxs)(r.t,{value:I(`outcome`in b?b.outcome:`success`),onValueChange:f?void 0:e=>C({outcome:e}),children:[(0,c.jsx)(r.i,{children:(0,c.jsx)(r.a,{})}),(0,c.jsxs)(r.n,{children:[(0,c.jsx)(r.r,{value:`success`,children:`Success`}),(0,c.jsx)(r.r,{value:`failure`,children:`Failure`}),(0,c.jsx)(r.r,{value:`cancelled`,children:`Cancelled`})]})]}));case`decisionNode`:return(0,c.jsxs)(c.Fragment,{children:[S(`Condition`,(0,c.jsx)(i.s,{value:I(`condition`in b?b.condition:``),onChange:e=>C({condition:e.target.value}),disabled:f})),S(`Branches`,(0,c.jsx)(i.s,{value:(`branches`in b&&Array.isArray(b.branches)?b.branches:[]).map(e=>e.label).join(`
4
+ `),onChange:e=>C({branches:e.target.value.split(`
5
+ `).filter(Boolean).map((e,t)=>({id:`branch-${t+1}`,label:e}))}),disabled:f}),`branches`)]});case`loopNode`:return(0,c.jsxs)(c.Fragment,{children:[S(`Iterator source`,(0,c.jsx)(n.t,{value:I(`iteratorSource`in b?b.iteratorSource:``),onChange:e=>C({iteratorSource:e.target.value}),disabled:f}),`iteratorSource`),S(`Max iterations`,(0,c.jsx)(n.t,{type:`number`,min:1,value:I(`maxIterations`in b?b.maxIterations:10),onChange:e=>C({maxIterations:Number(e.target.value)}),disabled:f}))]});case`actionNode`:return S(`Action type`,(0,c.jsx)(n.t,{value:I(`actionType`in b?b.actionType:``),onChange:e=>C({actionType:e.target.value}),disabled:f}),`actionType`);case`requestNode`:return(0,c.jsxs)(c.Fragment,{children:[S(`Method`,(0,c.jsxs)(r.t,{value:I(`method`in b?b.method:`GET`),onValueChange:f?void 0:e=>C({method:e}),children:[(0,c.jsx)(r.i,{children:(0,c.jsx)(r.a,{})}),(0,c.jsxs)(r.n,{children:[(0,c.jsx)(r.r,{value:`GET`,children:`GET`}),(0,c.jsx)(r.r,{value:`POST`,children:`POST`}),(0,c.jsx)(r.r,{value:`PUT`,children:`PUT`}),(0,c.jsx)(r.r,{value:`PATCH`,children:`PATCH`}),(0,c.jsx)(r.r,{value:`DELETE`,children:`DELETE`})]})]})),S(`URL`,(0,c.jsx)(n.t,{value:I(`url`in b?b.url:``),onChange:e=>C({url:e.target.value}),disabled:f}),`url`),S(`Headers`,(0,c.jsx)(i.s,{value:ae(`headers`in b?b.headers:void 0),onChange:e=>C({headers:ie(e.target.value)}),disabled:f}))]});case`delayNode`:return(0,c.jsxs)(c.Fragment,{children:[S(`Duration`,(0,c.jsx)(n.t,{type:`number`,min:1,value:I(`duration`in b?b.duration:1),onChange:e=>C({duration:Number(e.target.value)}),disabled:f}),`duration`),S(`Unit`,(0,c.jsxs)(r.t,{value:I(`unit`in b?b.unit:`hours`),onValueChange:f?void 0:e=>C({unit:e}),children:[(0,c.jsx)(r.i,{children:(0,c.jsx)(r.a,{})}),(0,c.jsxs)(r.n,{children:[(0,c.jsx)(r.r,{value:`seconds`,children:`Seconds`}),(0,c.jsx)(r.r,{value:`minutes`,children:`Minutes`}),(0,c.jsx)(r.r,{value:`hours`,children:`Hours`}),(0,c.jsx)(r.r,{value:`days`,children:`Days`})]})]}))]});case`approvalNode`:return(0,c.jsxs)(c.Fragment,{children:[S(`Approver role`,(0,c.jsx)(n.t,{value:I(`approverRole`in b?b.approverRole:``),onChange:e=>C({approverRole:e.target.value}),disabled:f}),`approverRole`),S(`Escalation role`,(0,c.jsx)(n.t,{value:I(`escalationRole`in b?b.escalationRole:``),onChange:e=>C({escalationRole:e.target.value}),disabled:f})),S(`SLA hours`,(0,c.jsx)(n.t,{type:`number`,min:1,value:I(`slaHours`in b?b.slaHours:``),onChange:e=>C({slaHours:Number(e.target.value)}),disabled:f}))]});default:return S(`Description`,(0,c.jsx)(i.s,{value:I(b.description),onChange:e=>C({description:e.target.value}),disabled:f}))}})()]}),d.length>0&&(0,c.jsx)(`div`,{className:`mt-4 grid gap-2 rounded-lg border border-destructive/30 bg-destructive/5 p-3`,children:d.map((e,t)=>(0,c.jsxs)(`div`,{className:`flex gap-2 text-xs text-destructive`,children:[(0,c.jsx)(s.AlertCircle,{size:14,className:`mt-0.5 shrink-0`}),(0,c.jsx)(`span`,{children:e.message})]},`${e.code}-${t}`))}),!f&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(t.t,{variant:`destructive`,className:`mt-4 w-full gap-2`,onClick:()=>v(!0),children:[(0,c.jsx)(s.Trash2,{size:14}),`Delete node`]}),(0,c.jsx)(a.t,{isOpen:_,onClose:()=>v(!1),onConfirm:()=>{m(),v(!1)},title:`Delete Node`,message:`Are you sure you want to delete this node?`,description:`This action cannot be undone.`})]})]})},se=o.default.forwardRef((n,r)=>{let{workflow:i,defaultWorkflow:a=O,workflowId:u,service:d,nodeRegistry:f,onWorkflowChange:p,onNodeAdd:m,onNodeUpdate:h,onNodeDelete:g,onConnectionCreate:_,onValidationChange:v,onSave:y,onPublish:b,onError:x,title:S,description:C,status:T,toolboxTitle:ee=`Node Library`,showHeader:k=!0,showToolbox:j=!0,showInspector:M=!0,showValidationPanel:te=!0,showActionBar:P=!0,autoValidate:re=!0,readOnly:I=!1,showGrid:ie=!0,snapToGrid:ae=!0,fitView:se=!0,exportFileName:L=`workflow.json`,className:ce,classNames:R,...z}=n,B=o.default.useMemo(()=>({...A,...f}),[f]),le=o.default.useMemo(()=>{let e={};return Object.values(B).forEach(t=>{t.component&&(e[t.type]=t.component)}),e},[B]),ue=o.default.useMemo(()=>ne(B),[B]),V=i!==void 0,[de,fe]=o.default.useState(()=>N(a)),[pe,me]=o.default.useState(ie),[he,ge]=o.default.useState(ae),[_e,ve]=o.default.useState(!1),[ye,H]=o.default.useState(null),[U,W]=o.default.useState(()=>F(i??de,B)),[be,xe]=o.default.useState(!1),[Se,Ce]=o.default.useState(!1),[we,Te]=o.default.useState(!1),[Ee,De]=o.default.useState(void 0),[Oe,G]=o.default.useState(null),ke=o.default.useRef(null),K=o.default.useRef(i??de),q=o.default.useRef([]),J=o.default.useRef([]),{fitView:Ae,screenToFlowPosition:je}=(0,l.useReactFlow)(),Y=i??de;o.default.useEffect(()=>{K.current=Y},[Y]),o.default.useEffect(()=>me(ie),[ie]),o.default.useEffect(()=>ge(ae),[ae]);let X=o.default.useCallback((e=K.current)=>F(e,B),[B]),Z=o.default.useCallback((e,t=!0)=>{let n=N({...e,metadata:{...e.metadata,updatedAt:new Date().toISOString()}});if(t&&(q.current=[...q.current,N(K.current)],J.current=[]),K.current=n,V||fe(n),p?.(n),re){let e=X(n);W(e),v?.(e)}},[re,V,v,p,X]),Q=o.default.useCallback(e=>{let t=B[String(e.type)],n={id:e.id??`${e.type}-${Date.now()}`,type:e.type,position:e.position??{x:120,y:120},data:{...t?.defaultData??{label:e.type},...e.data??{}}},r={...K.current,nodes:[...K.current.nodes,n]};Z(r),m?.({node:n,workflow:N(r)})},[Z,B,m]),Me=o.default.useCallback((e,t)=>{let n,r=K.current.nodes.map(r=>r.id===e?(n={...r,data:{...r.data,...t}},n):r);if(!n)return;let i={...K.current,nodes:r};Z(i),h?.({node:n,workflow:N(i)})},[Z,h]),Ne=o.default.useCallback(e=>{let t=K.current.nodes.find(t=>t.id===e);if(!t)return;let n={...K.current,nodes:K.current.nodes.filter(t=>t.id!==e),edges:K.current.edges.filter(t=>t.source!==e&&t.target!==e)};H(t=>t===e?null:t),Z(n),g?.({node:t,workflow:N(n)})},[Z,g]),Pe=o.default.useCallback((e,t)=>{let n={id:`${e}-${t}-${Date.now()}`,source:e,target:t,type:`ezEdge`,animated:!0},r={...K.current,edges:(0,l.addEdge)(n,K.current.edges)};Z(r),_?.({edge:n,sourceId:e,targetId:t,workflow:N(r)})},[Z,_]);o.default.useEffect(()=>{if(!d||!u||V)return;let e=!0;return xe(!0),G(null),d.loadWorkflow(u).then(t=>{e&&Z(t,!1)}).catch(t=>{e&&(G(t.message),x?.(t,`load`))}).finally(()=>{e&&xe(!1)}),()=>{e=!1}},[V,Z,x,d,u]),o.default.useEffect(()=>{let e=X(Y);W(e),v?.(e)},[Y,v,X]),o.default.useImperativeHandle(r,()=>({getWorkflow:()=>N(K.current),setWorkflow:e=>Z(e),validate:()=>X(),addNode:Q,updateNode:Me,deleteNode:Ne,connect:Pe,undo:()=>{let e=q.current[q.current.length-1];e&&(q.current=q.current.slice(0,-1),J.current=[N(K.current),...J.current],Z(e,!1))},redo:()=>{let e=J.current[0];e&&(J.current=J.current.slice(1),q.current=[...q.current,N(K.current)],Z(e,!1))},canUndo:()=>q.current.length>0,canRedo:()=>J.current.length>0,fitView:()=>Ae(),exportJson:()=>JSON.stringify(K.current,null,2),importJson:e=>{try{Z(JSON.parse(e)),G(null)}catch(e){let t=e instanceof Error?e:Error(`Invalid workflow JSON.`);G(t.message),x?.(t,`import`)}}}),[Q,Pe,Ne,Z,Ae,x,Me,X]);let Fe=o.default.useCallback(e=>{let t=(0,l.applyNodeChanges)(e,K.current.nodes);Z({...K.current,nodes:t})},[Z]),Ie=o.default.useCallback(e=>{Z({...K.current,edges:(0,l.applyEdgeChanges)(e,K.current.edges)})},[Z]),Le=o.default.useCallback(e=>{Z({...K.current,edges:K.current.edges.filter(t=>t.id!==e)})},[Z]),Re=o.default.useCallback(e=>{e.source&&e.target&&Pe(e.source,e.target)},[Pe]),ze=o.default.useCallback(e=>{e.preventDefault();let t=e.dataTransfer.getData(`application/reactflow`)||e.dataTransfer.getData(`text/plain`);t&&Q({type:t,position:je({x:e.clientX,y:e.clientY})})},[Q,je]),Be=o.default.useCallback(async()=>{let e=N(K.current),t=X(e);if(W(t),v?.(t),t.valid){Ce(!0),G(null);try{d&&u&&await d.saveWorkflow(u,e),await y?.(e),De(new Date().toISOString())}catch(e){let t=e instanceof Error?e:Error(`Failed to save workflow.`);G(t.message),x?.(t,`save`)}finally{Ce(!1)}}},[x,y,v,d,X,u]),Ve=o.default.useCallback(async()=>{let e=N({...K.current,metadata:{...K.current.metadata,status:`live`,publishedAt:new Date().toISOString()}}),t=X(e);if(W(t),v?.(t),t.valid){Te(!0),G(null);try{d&&u&&await d.publishWorkflow(u,e),await b?.(e),Z(e,!1)}catch(e){let t=e instanceof Error?e:Error(`Failed to publish workflow.`);G(t.message),x?.(t,`publish`)}finally{Te(!1)}}},[Z,x,b,v,d,X,u]),He=o.default.useCallback(()=>{try{let e=X();W(e),v?.(e),G(null)}catch(e){let t=e instanceof Error?e:Error(`Failed to validate workflow.`);G(t.message),x?.(t,`validate`)}},[x,v,X]),Ue=o.default.useCallback(e=>{let t=e.target.files?.[0];t&&t.text().then(t=>{try{Z(JSON.parse(t)),G(null)}catch(e){let t=e instanceof Error?e:Error(`Invalid workflow JSON.`);G(t.message),x?.(t,`import`)}finally{e.target.value=``}})},[Z,x]),We=o.default.useCallback(()=>{let e=new Blob([JSON.stringify(K.current,null,2)],{type:`application/json`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=L,n.click(),URL.revokeObjectURL(t)},[L]),Ge=S??Y.metadata?.title??`Untitled Workflow`,Ke=C??Y.metadata?.description,$=ye?Y.nodes.find(e=>e.id===ye):void 0,qe=ye?U.issues.filter(e=>e.nodeId===ye):[],Je=U.issues.filter(e=>e.severity===`error`).length,Ye=U.issues.filter(e=>e.severity===`warning`).length,Xe=q.current.length>0,Ze=J.current.length>0;return(0,c.jsxs)(`div`,{className:e._(`ez-workflow flex h-full min-h-[560px] flex-col overflow-hidden bg-background`,R?.root,ce),...z,children:[(0,c.jsx)(`input`,{ref:ke,type:`file`,accept:`application/json,.json`,className:`hidden`,onChange:Ue}),k&&(0,c.jsx)(D,{title:Ge,description:Ke,status:T??Y.metadata?.status,isDirty:q.current.length>0,onTitleChange:e=>Z({...K.current,metadata:{...K.current.metadata,title:e}}),onDescriptionChange:e=>Z({...K.current,metadata:{...K.current.metadata,description:e}}),onSave:Be,onPublish:Ve,showGrid:pe,onShowGridChange:me,snapToGrid:he,onSnapToGridChange:ge,className:R?.header}),(0,c.jsxs)(`div`,{className:e._(`flex min-h-0 flex-1`,R?.body),children:[j&&(0,c.jsx)(E,{categories:ue,title:ee,collapsed:_e,onCollapsedChange:ve,onNodeActivate:e=>Q({type:e.type}),className:R?.toolbox}),(0,c.jsx)(w,{nodes:Y.nodes,edges:Y.edges,onNodesChange:Fe,onEdgesChange:Ie,onConnect:Re,onDrop:ze,onDragOver:e=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`},onNodeClick:(e,t)=>H(t.id),onNodeDoubleClick:(e,t)=>H(t.id),onEdgeDelete:Le,onPaneClick:()=>H(null),nodeTypes:le,showGrid:pe,snapToGrid:he,fitView:se,readOnly:I,className:e._(`flex-1`,R?.canvas)}),M&&(0,c.jsx)(oe,{node:$,registry:B,issues:qe,readOnly:I,onChange:e=>$&&Me($.id,e),onDelete:()=>$&&Ne($.id),onClose:()=>H(null),className:R?.inspector})]}),(P||te)&&(0,c.jsxs)(`footer`,{className:e._(`flex min-h-14 items-center justify-between gap-3 border-t border-border bg-card/50 px-4 py-2`,R?.actionBar),"aria-label":`Workflow actions`,children:[(0,c.jsx)(`div`,{className:`flex min-w-0 items-center gap-2`,children:P&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(t.t,{variant:`outline`,size:`sm`,className:`gap-2`,disabled:!Xe||I,onClick:()=>{let e=q.current[q.current.length-1];e&&(q.current=q.current.slice(0,-1),J.current=[N(K.current),...J.current],Z(e,!1))},children:[(0,c.jsx)(s.Undo2,{size:14}),`Undo`]}),(0,c.jsxs)(t.t,{variant:`outline`,size:`sm`,className:`gap-2`,disabled:!Ze||I,onClick:()=>{let e=J.current[0];e&&(J.current=J.current.slice(1),q.current=[...q.current,N(K.current)],Z(e,!1))},children:[(0,c.jsx)(s.Redo2,{size:14}),`Redo`]}),(0,c.jsxs)(t.t,{variant:`outline`,size:`sm`,className:`gap-2`,onClick:He,children:[(0,c.jsx)(s.Wand2,{size:14}),`Validate`]}),(0,c.jsxs)(t.t,{variant:`outline`,size:`sm`,className:`gap-2`,onClick:()=>ke.current?.click(),disabled:I,children:[(0,c.jsx)(s.Upload,{size:14}),`Import`]}),(0,c.jsxs)(t.t,{variant:`outline`,size:`sm`,className:`gap-2`,onClick:We,children:[(0,c.jsx)(s.Download,{size:14}),`Export`]})]})}),te&&(0,c.jsxs)(`div`,{className:e._(`flex min-w-0 items-center gap-3 text-xs`,R?.validationPanel),children:[be||Se||we?(0,c.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-muted-foreground`,children:[(0,c.jsx)(s.RefreshCw,{size:14,className:`animate-spin`}),be?`Loading`:we?`Publishing`:`Saving`]}):U.valid?(0,c.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-emerald-600`,children:[(0,c.jsx)(s.CheckCircle2,{size:14}),`Valid`]}):(0,c.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-destructive`,children:[(0,c.jsx)(s.AlertCircle,{size:14}),Je,` error`,Je===1?``:`s`,Ye>0?`, ${Ye} warning${Ye===1?``:`s`}`:``]}),Ee&&(0,c.jsxs)(`span`,{className:`hidden text-muted-foreground md:inline`,children:[`Saved `,new Date(Ee).toLocaleTimeString()]}),Oe&&(0,c.jsx)(`span`,{className:`max-w-[320px] truncate text-destructive`,children:Oe}),U.issues.slice(0,2).map((e,t)=>(0,c.jsx)(`button`,{type:`button`,className:`hidden max-w-[260px] truncate rounded border border-border px-2 py-1 text-left text-muted-foreground hover:bg-muted lg:block`,"aria-label":`Go to validation issue: ${e.message}`,onClick:()=>e.nodeId&&H(e.nodeId),children:e.message},`${e.code}-${e.nodeId??t}`))]})]})]})});se.displayName=`EzWorkflowInner`;var L=o.default.forwardRef((e,t)=>(0,c.jsx)(l.ReactFlowProvider,{children:(0,c.jsx)(se,{...e,ref:t})}));L.displayName=`EzWorkflow`;var ce=o.default.forwardRef((e,t)=>(0,c.jsx)(L,{...e,ref:t}));ce.displayName=`EzFlow`;var R=async e=>({"content-type":`application/json`,...(typeof e==`function`?await e():e)??{}}),z=async(e,t)=>{if(e.ok)return;let n=await e.text().catch(()=>``);throw Error(n||`Workflow ${t} failed with ${e.status}.`)},B=class{baseUrl;fetcher;headers;constructor(e){this.baseUrl=e.baseUrl.replace(/\/$/,``),this.fetcher=e.fetcher??fetch,this.headers=e.headers}async loadWorkflow(e){let t=await this.fetcher(`${this.baseUrl}/workflows/${encodeURIComponent(e)}`);return await z(t,`load`),t.json()}async saveWorkflow(e,t){await z(await this.fetcher(`${this.baseUrl}/workflows/${encodeURIComponent(e)}`,{method:`PUT`,headers:await R(this.headers),body:JSON.stringify(t)}),`save`)}async publishWorkflow(e,t){await z(await this.fetcher(`${this.baseUrl}/workflows/${encodeURIComponent(e)}/publish`,{method:`POST`,headers:await R(this.headers),body:JSON.stringify(t)}),`publish`)}async validateWorkflow(e){let t=await this.fetcher(`${this.baseUrl}/workflows/validate`,{method:`POST`,headers:await R(this.headers),body:JSON.stringify(e)});return await z(t,`validate`),t.json()}},le=class{service;lastStableWorkflow;constructor(e){this.service=e}getRollbackWorkflow(){return this.lastStableWorkflow}async loadWorkflow(e){let t=await this.service.loadWorkflow(e);return this.lastStableWorkflow=t,t}async saveWorkflow(e,t){let n=this.lastStableWorkflow;this.lastStableWorkflow=t;try{await this.service.saveWorkflow(e,t)}catch(e){throw this.lastStableWorkflow=n,e}}async publishWorkflow(e,t){let n=this.lastStableWorkflow;this.lastStableWorkflow=t;try{await this.service.publishWorkflow(e,t)}catch(e){throw this.lastStableWorkflow=n,e}}validateWorkflow(e){return this.service.validateWorkflow(e)}},ue=(e={})=>{let t=new Map(Object.entries(e));return{workflows:t,async loadWorkflow(e){let n=t.get(e);if(!n)throw Error(`Workflow ${e} was not found.`);return n},async saveWorkflow(e,n){t.set(e,n)},async publishWorkflow(e,n){t.set(e,{...n,metadata:{...n.metadata,status:`live`,publishedAt:n.metadata?.publishedAt??new Date().toISOString()}})},async validateWorkflow(e){return F(e)}}},V=e=>{let t=Math.max(2,Math.floor(e)),n=Array.from({length:t},(e,n)=>n===0?{id:`node-0`,type:`startNode`,position:{x:0,y:0},data:{label:`Start`}}:n===t-1?{id:`node-${n}`,type:`endNode`,position:{x:n*180,y:0},data:{label:`End`}}:{id:`node-${n}`,type:`actionNode`,position:{x:n*180,y:n%5*120},data:{label:`Action ${n}`,actionType:`noop`}});return{nodes:n,edges:n.slice(0,-1).map((e,t)=>({id:`${e.id}-${n[t+1].id}`,source:e.id,target:n[t+1].id,type:`ezEdge`})),metadata:{title:`${t} node performance workflow`,status:`draft`,version:1}}},de=e=>{let t=V(e),n=typeof performance<`u`?()=>performance.now():()=>Date.now(),r=n(),i=F(t);return{nodeCount:t.nodes.length,edgeCount:t.edges.length,validateMs:n()-r,valid:i.valid,issueCount:i.issues.length}},fe={nodes:[{id:`start`,type:`startNode`,position:{x:0,y:120},data:{label:`Request submitted`,triggerType:`manual`}},{id:`approval`,type:`approvalNode`,position:{x:280,y:120},data:{label:`Manager approval`,approverRole:`manager`,slaHours:24}},{id:`decision`,type:`decisionNode`,position:{x:560,y:120},data:{label:`Approved?`,branches:[{id:`yes`,label:`Approved`},{id:`no`,label:`Rejected`}]}},{id:`end-success`,type:`endNode`,position:{x:840,y:40},data:{label:`Approved`,outcome:`success`}},{id:`end-failure`,type:`endNode`,position:{x:840,y:200},data:{label:`Rejected`,outcome:`failure`}}],edges:[{id:`start-approval`,source:`start`,target:`approval`,type:`ezEdge`},{id:`approval-decision`,source:`approval`,target:`decision`,type:`ezEdge`},{id:`decision-success`,source:`decision`,target:`end-success`,type:`ezEdge`},{id:`decision-failure`,source:`decision`,target:`end-failure`,type:`ezEdge`}],metadata:{title:`Approval workflow`,description:`Human approval with positive and negative outcomes.`,status:`draft`,version:1}},pe={nodes:[{id:`start`,type:`startNode`,position:{x:0,y:100},data:{label:`Webhook received`,triggerType:`webhook`}},{id:`request`,type:`requestNode`,position:{x:280,y:100},data:{label:`Create ticket`,method:`POST`,url:`https://api.example.com/tickets`}},{id:`end`,type:`endNode`,position:{x:560,y:100},data:{label:`Ticket created`,outcome:`success`}}],edges:[{id:`start-request`,source:`start`,target:`request`,type:`ezEdge`},{id:`request-end`,source:`request`,target:`end`,type:`ezEdge`}],metadata:{title:`API request workflow`,description:`Webhook to HTTP request.`,status:`draft`,version:1}},me={nodes:[{id:`start`,type:`startNode`,position:{x:0,y:100},data:{label:`Nightly schedule`,triggerType:`scheduled`}},{id:`delay`,type:`delayNode`,position:{x:280,y:100},data:{label:`Wait for upstream data`,duration:30,unit:`minutes`}},{id:`action`,type:`actionNode`,position:{x:560,y:100},data:{label:`Run reconciliation`,actionType:`reconcile`}},{id:`end`,type:`endNode`,position:{x:840,y:100},data:{label:`Completed`,outcome:`success`}}],edges:[{id:`start-delay`,source:`start`,target:`delay`,type:`ezEdge`},{id:`delay-action`,source:`delay`,target:`action`,type:`ezEdge`},{id:`action-end`,source:`action`,target:`end`,type:`ezEdge`}],metadata:{title:`Scheduled workflow`,description:`Scheduled job with delayed execution.`,status:`draft`,version:1}},he={nodes:[{id:`start`,type:`startNode`,position:{x:0,y:100},data:{label:`Case opened`,triggerType:`manual`}},{id:`review`,type:`approvalNode`,position:{x:280,y:100},data:{label:`Specialist review`,approverRole:`specialist`,escalationRole:`team-lead`,slaHours:8}},{id:`action`,type:`actionNode`,position:{x:560,y:100},data:{label:`Apply decision`,actionType:`apply-review-outcome`}},{id:`end`,type:`endNode`,position:{x:840,y:100},data:{label:`Case closed`,outcome:`success`}}],edges:[{id:`start-review`,source:`start`,target:`review`,type:`ezEdge`},{id:`review-action`,source:`review`,target:`action`,type:`ezEdge`},{id:`action-end`,source:`action`,target:`end`,type:`ezEdge`}],metadata:{title:`Human review workflow`,description:`Human review followed by an automated action.`,status:`draft`,version:1}};Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return S}});
@@ -0,0 +1,107 @@
1
+ import { _ as e } from "./EzProvider-AlmsYIDk.js";
2
+ import "react";
3
+ import { ChevronRight as t, GripVertical as n, Layers as r, X as i } from "lucide-react";
4
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
+ import { DndContext as s, KeyboardSensor as c, PointerSensor as l, closestCenter as u, useDroppable as d, useSensor as f, useSensors as p } from "@dnd-kit/core";
6
+ import { CSS as m } from "@dnd-kit/utilities";
7
+ import { SortableContext as h, arrayMove as g, horizontalListSortingStrategy as _, sortableKeyboardCoordinates as v, useSortable as y, verticalListSortingStrategy as b } from "@dnd-kit/sortable";
8
+ //#region src/components/shared/components/EzSortableList.tsx
9
+ function x({ items: e, onReorder: t, renderItem: n, getId: r, strategy: i = b, className: o }) {
10
+ let d = p(f(l, { activationConstraint: { distance: 8 } }), f(c, { coordinateGetter: v }));
11
+ function m(n) {
12
+ let { active: i, over: a } = n;
13
+ a && i.id !== a.id && t(g(e, e.findIndex((e) => r(e) === i.id), e.findIndex((e) => r(e) === a.id)));
14
+ }
15
+ return /* @__PURE__ */ a(s, {
16
+ sensors: d,
17
+ collisionDetection: u,
18
+ onDragEnd: m,
19
+ children: /* @__PURE__ */ a(h, {
20
+ items: e.map(r),
21
+ strategy: i,
22
+ children: /* @__PURE__ */ a("div", {
23
+ className: o,
24
+ children: e.map((e, t) => n(e, t))
25
+ })
26
+ })
27
+ });
28
+ }
29
+ //#endregion
30
+ //#region src/components/EzTable/EzGroupingPanel.tsx
31
+ var S = ({ id: r, label: s, onRemove: c, showSeparator: l }) => {
32
+ let { attributes: u, listeners: d, setNodeRef: f, transform: p, transition: h, isDragging: g } = y({ id: r });
33
+ return /* @__PURE__ */ o("div", {
34
+ ref: f,
35
+ style: {
36
+ transform: m.Transform.toString(p),
37
+ transition: h,
38
+ zIndex: g ? 50 : void 0
39
+ },
40
+ className: "flex items-center",
41
+ children: [l && /* @__PURE__ */ a("div", {
42
+ className: "flex items-center text-muted-foreground mr-2",
43
+ children: /* @__PURE__ */ a(t, { className: "w-4 h-4" })
44
+ }), /* @__PURE__ */ o("div", {
45
+ className: e("flex items-center gap-1.5 px-2 py-1 bg-card border border-border rounded-md shadow-sm transition-all duration-200", g ? "opacity-50 scale-105 border-primary shadow-lg" : "hover:border-primary/50"),
46
+ children: [
47
+ /* @__PURE__ */ a("div", {
48
+ ...u,
49
+ ...d,
50
+ className: "cursor-grab active:cursor-grabbing text-muted-foreground/50 hover:text-primary transition-colors",
51
+ children: /* @__PURE__ */ a(n, { className: "w-3.5 h-3.5" })
52
+ }),
53
+ /* @__PURE__ */ a("span", {
54
+ className: "text-sm font-medium text-foreground",
55
+ children: s
56
+ }),
57
+ /* @__PURE__ */ a("button", {
58
+ onClick: (e) => {
59
+ e.stopPropagation(), c();
60
+ },
61
+ className: "p-0.5 hover:bg-muted rounded transition-colors",
62
+ children: /* @__PURE__ */ a(i, { className: "w-3 h-3 text-muted-foreground hover:text-destructive" })
63
+ })
64
+ ]
65
+ })]
66
+ });
67
+ }, C = ({ grouping: t, onGroupingChange: n, columns: i }) => {
68
+ let { setNodeRef: s, isOver: c } = d({ id: "grouping-panel" }), l = (e) => i.find((t) => t.id === e)?.columnDef.header || e;
69
+ return /* @__PURE__ */ o("div", {
70
+ ref: s,
71
+ className: e("flex items-center gap-2 p-2 min-h-[40px] border rounded-md transition-all duration-200", "bg-muted/40 border-dashed border-border", c && "bg-highlight border-selection ring-1 ring-selection"),
72
+ children: [/* @__PURE__ */ o("div", {
73
+ className: "flex items-center gap-2 text-muted-foreground mr-2",
74
+ children: [/* @__PURE__ */ a(r, { className: "w-4 h-4" }), /* @__PURE__ */ a("span", {
75
+ className: "text-[10px] font-black uppercase tracking-wider",
76
+ children: "Group By"
77
+ })]
78
+ }), /* @__PURE__ */ o("div", {
79
+ className: "flex flex-wrap gap-2",
80
+ children: [
81
+ t.length === 0 && !c && /* @__PURE__ */ a("span", {
82
+ className: "text-sm text-muted-foreground/70 italic",
83
+ children: "Drag columns here to group"
84
+ }),
85
+ /* @__PURE__ */ a(x, {
86
+ items: t,
87
+ onReorder: n,
88
+ getId: (e) => e,
89
+ strategy: _,
90
+ className: "flex flex-wrap gap-y-2",
91
+ renderItem: (e, r) => /* @__PURE__ */ a(S, {
92
+ id: e,
93
+ label: l(e),
94
+ onRemove: () => n(t.filter((t) => t !== e)),
95
+ showSeparator: r > 0
96
+ }, e)
97
+ }),
98
+ c && /* @__PURE__ */ a("div", {
99
+ className: "px-2 py-1 border border-selection border-dashed bg-highlight/50 rounded-md text-sm text-selection animate-pulse",
100
+ children: "Drop to Group"
101
+ })
102
+ ]
103
+ })]
104
+ });
105
+ };
106
+ //#endregion
107
+ export { C as EzGroupingPanel };
@@ -0,0 +1 @@
1
+ const e=require("./EzProvider-L2qQMq-v.cjs");let t=require("react");t=e.y(t,1);let n=require("lucide-react"),r=require("react/jsx-runtime"),i=require("@dnd-kit/core"),a=require("@dnd-kit/utilities"),o=require("@dnd-kit/sortable");function s({items:e,onReorder:t,renderItem:n,getId:a,strategy:s=o.verticalListSortingStrategy,className:c}){let l=(0,i.useSensors)((0,i.useSensor)(i.PointerSensor,{activationConstraint:{distance:8}}),(0,i.useSensor)(i.KeyboardSensor,{coordinateGetter:o.sortableKeyboardCoordinates}));function u(n){let{active:r,over:i}=n;i&&r.id!==i.id&&t((0,o.arrayMove)(e,e.findIndex(e=>a(e)===r.id),e.findIndex(e=>a(e)===i.id)))}return(0,r.jsx)(i.DndContext,{sensors:l,collisionDetection:i.closestCenter,onDragEnd:u,children:(0,r.jsx)(o.SortableContext,{items:e.map(a),strategy:s,children:(0,r.jsx)(`div`,{className:c,children:e.map((e,t)=>n(e,t))})})})}var c=({id:t,label:i,onRemove:s,showSeparator:c})=>{let{attributes:l,listeners:u,setNodeRef:d,transform:f,transition:p,isDragging:m}=(0,o.useSortable)({id:t});return(0,r.jsxs)(`div`,{ref:d,style:{transform:a.CSS.Transform.toString(f),transition:p,zIndex:m?50:void 0},className:`flex items-center`,children:[c&&(0,r.jsx)(`div`,{className:`flex items-center text-muted-foreground mr-2`,children:(0,r.jsx)(n.ChevronRight,{className:`w-4 h-4`})}),(0,r.jsxs)(`div`,{className:e._(`flex items-center gap-1.5 px-2 py-1 bg-card border border-border rounded-md shadow-sm transition-all duration-200`,m?`opacity-50 scale-105 border-primary shadow-lg`:`hover:border-primary/50`),children:[(0,r.jsx)(`div`,{...l,...u,className:`cursor-grab active:cursor-grabbing text-muted-foreground/50 hover:text-primary transition-colors`,children:(0,r.jsx)(n.GripVertical,{className:`w-3.5 h-3.5`})}),(0,r.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:i}),(0,r.jsx)(`button`,{onClick:e=>{e.stopPropagation(),s()},className:`p-0.5 hover:bg-muted rounded transition-colors`,children:(0,r.jsx)(n.X,{className:`w-3 h-3 text-muted-foreground hover:text-destructive`})})]})]})},l=({grouping:t,onGroupingChange:a,columns:l})=>{let{setNodeRef:u,isOver:d}=(0,i.useDroppable)({id:`grouping-panel`}),f=e=>l.find(t=>t.id===e)?.columnDef.header||e;return(0,r.jsxs)(`div`,{ref:u,className:e._(`flex items-center gap-2 p-2 min-h-[40px] border rounded-md transition-all duration-200`,`bg-muted/40 border-dashed border-border`,d&&`bg-highlight border-selection ring-1 ring-selection`),children:[(0,r.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground mr-2`,children:[(0,r.jsx)(n.Layers,{className:`w-4 h-4`}),(0,r.jsx)(`span`,{className:`text-[10px] font-black uppercase tracking-wider`,children:`Group By`})]}),(0,r.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[t.length===0&&!d&&(0,r.jsx)(`span`,{className:`text-sm text-muted-foreground/70 italic`,children:`Drag columns here to group`}),(0,r.jsx)(s,{items:t,onReorder:a,getId:e=>e,strategy:o.horizontalListSortingStrategy,className:`flex flex-wrap gap-y-2`,renderItem:(e,n)=>(0,r.jsx)(c,{id:e,label:f(e),onRemove:()=>a(t.filter(t=>t!==e)),showSeparator:n>0},e)}),d&&(0,r.jsx)(`div`,{className:`px-2 py-1 border border-selection border-dashed bg-highlight/50 rounded-md text-sm text-selection animate-pulse`,children:`Drop to Group`})]})]})};exports.EzGroupingPanel=l;