ezux 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +56 -0
  3. package/dist/EzEventModal-DtpvYwGr.js +684 -0
  4. package/dist/EzGroupingPanel-CFwKUrF_.js +59 -0
  5. package/dist/EzTableEditDialog-BIk_mNpI.js +60 -0
  6. package/dist/components/EzKanban/EzKanban.types.d.ts +789 -0
  7. package/dist/components/EzKanban/components/CardEditorModal.d.ts +23 -0
  8. package/dist/components/EzKanban/components/EzKanbanErrorFallback.d.ts +1 -0
  9. package/dist/components/EzKanban/components/FilterPopover.d.ts +10 -0
  10. package/dist/components/EzKanban/components/KanbanBoard.d.ts +62 -0
  11. package/dist/components/EzKanban/components/KanbanCard.d.ts +38 -0
  12. package/dist/components/EzKanban/components/KanbanColumn.d.ts +55 -0
  13. package/dist/components/EzKanban/components/KanbanSwimlane.d.ts +46 -0
  14. package/dist/components/EzKanban/components/KanbanToolbar.d.ts +41 -0
  15. package/dist/components/EzKanban/exports.d.ts +4 -0
  16. package/dist/components/EzKanban/hooks/useKanbanCards.d.ts +36 -0
  17. package/dist/components/EzKanban/hooks/useKanbanColumns.d.ts +27 -0
  18. package/dist/components/EzKanban/hooks/useKanbanDragDrop.d.ts +31 -0
  19. package/dist/components/EzKanban/hooks/useKanbanFilters.d.ts +23 -0
  20. package/dist/components/EzKanban/hooks/useKanbanState.d.ts +79 -0
  21. package/dist/components/EzKanban/hooks/useKanbanSwimlanes.d.ts +27 -0
  22. package/dist/components/EzKanban/hooks/useKanbanVirtualization.d.ts +16 -0
  23. package/dist/components/EzKanban/index.d.ts +45 -0
  24. package/dist/components/EzKanban/services/KanbanService.d.ts +30 -0
  25. package/dist/components/EzKanban/state/kanban.store.d.ts +33 -0
  26. package/dist/components/EzKanban/useEzKanban.d.ts +162 -0
  27. package/dist/components/EzKanban/views/KanbanTimelineView.d.ts +15 -0
  28. package/dist/components/EzLayout/Authentication/AuthSlider.d.ts +13 -0
  29. package/dist/components/EzLayout/Authentication/InputPassword.d.ts +7 -0
  30. package/dist/components/EzLayout/Authentication/SignInForm.d.ts +21 -0
  31. package/dist/components/EzLayout/Authentication/SignUpForm.d.ts +20 -0
  32. package/dist/components/EzLayout/EzHeader.d.ts +33 -0
  33. package/dist/components/EzLayout/EzLanguageSwitcher.d.ts +4 -0
  34. package/dist/components/EzLayout/EzLayout.types.d.ts +223 -0
  35. package/dist/components/EzLayout/EzSidebar.d.ts +14 -0
  36. package/dist/components/EzLayout/EzThemeColorChanger.d.ts +9 -0
  37. package/dist/components/EzLayout/EzThemeSwitcher.d.ts +8 -0
  38. package/dist/components/EzLayout/EzUserProfile.d.ts +23 -0
  39. package/dist/components/EzLayout/components/MainContent.d.ts +13 -0
  40. package/dist/components/EzLayout/hooks/useLayoutImperative.d.ts +17 -0
  41. package/dist/components/EzLayout/hooks/useLayoutState.d.ts +25 -0
  42. package/dist/components/EzLayout/index.d.ts +19 -0
  43. package/dist/components/EzLayout/useEzLayout.d.ts +26 -0
  44. package/dist/components/EzScheduler/EzScheduler.types.d.ts +1658 -0
  45. package/dist/components/EzScheduler/EzSchedulerToolbar.d.ts +117 -0
  46. package/dist/components/EzScheduler/components/EzEventModal.d.ts +17 -0
  47. package/dist/components/EzScheduler/components/EzOverlapAlert.d.ts +12 -0
  48. package/dist/components/EzScheduler/components/EzQuickInfoPopup.d.ts +22 -0
  49. package/dist/components/EzScheduler/components/EzResourceSidebar.d.ts +33 -0
  50. package/dist/components/EzScheduler/components/EzSchedulerContent.d.ts +123 -0
  51. package/dist/components/EzScheduler/components/EzSchedulerQuickAdd.d.ts +17 -0
  52. package/dist/components/EzScheduler/components/RecurrenceEditor.d.ts +7 -0
  53. package/dist/components/EzScheduler/components/SchedulerLoadingSpinner.d.ts +2 -0
  54. package/dist/components/EzScheduler/components/dnd/DraggableEvent.d.ts +21 -0
  55. package/dist/components/EzScheduler/components/dnd/DroppableSlot.d.ts +19 -0
  56. package/dist/components/EzScheduler/hooks/useRecurrence.d.ts +2 -0
  57. package/dist/components/EzScheduler/hooks/useSchedulerEventHandlers.d.ts +11 -0
  58. package/dist/components/EzScheduler/hooks/useSchedulerEvents.d.ts +26 -0
  59. package/dist/components/EzScheduler/hooks/useSchedulerImperative.d.ts +15 -0
  60. package/dist/components/EzScheduler/hooks/useSchedulerNavigation.d.ts +9 -0
  61. package/dist/components/EzScheduler/hooks/useSchedulerResources.d.ts +10 -0
  62. package/dist/components/EzScheduler/hooks/useSchedulerState.d.ts +14 -0
  63. package/dist/components/EzScheduler/hooks/useSchedulerVirtualization.d.ts +9 -0
  64. package/dist/components/EzScheduler/index.d.ts +41 -0
  65. package/dist/components/EzScheduler/models/EventSettings.d.ts +11 -0
  66. package/dist/components/EzScheduler/models/View.d.ts +49 -0
  67. package/dist/components/EzScheduler/models/index.d.ts +2 -0
  68. package/dist/components/EzScheduler/services/AttendeeService.d.ts +15 -0
  69. package/dist/components/EzScheduler/services/AuditService.d.ts +15 -0
  70. package/dist/components/EzScheduler/services/CollisionDetectionService.d.ts +19 -0
  71. package/dist/components/EzScheduler/services/DragAndDropService.d.ts +16 -0
  72. package/dist/components/EzScheduler/services/HistoryService.d.ts +31 -0
  73. package/dist/components/EzScheduler/services/ICalendarImportService.d.ts +16 -0
  74. package/dist/components/EzScheduler/services/PrintService.d.ts +7 -0
  75. package/dist/components/EzScheduler/services/RecurrenceEngine.d.ts +7 -0
  76. package/dist/components/EzScheduler/services/ReminderService.d.ts +17 -0
  77. package/dist/components/EzScheduler/services/SchedulerService.d.ts +69 -0
  78. package/dist/components/EzScheduler/services/SearchService.d.ts +11 -0
  79. package/dist/components/EzScheduler/services/SecurityService.d.ts +25 -0
  80. package/dist/components/EzScheduler/services/TimezoneService.d.ts +20 -0
  81. package/dist/components/EzScheduler/services/VirtualScrollingService.d.ts +34 -0
  82. package/dist/components/EzScheduler/state/scheduler.store.d.ts +27 -0
  83. package/dist/components/EzScheduler/templates/CellTemplate.d.ts +42 -0
  84. package/dist/components/EzScheduler/templates/EditorTemplate.d.ts +32 -0
  85. package/dist/components/EzScheduler/templates/HeaderTemplate.d.ts +36 -0
  86. package/dist/components/EzScheduler/tests/phase1_rendering.spec.d.ts +1 -0
  87. package/dist/components/EzScheduler/tests/phase2_events.spec.d.ts +1 -0
  88. package/dist/components/EzScheduler/tests/phase3_templates.spec.d.ts +1 -0
  89. package/dist/components/EzScheduler/tests/phase4_export.spec.d.ts +1 -0
  90. package/dist/components/EzScheduler/tests/phase5_advanced.spec.d.ts +1 -0
  91. package/dist/components/EzScheduler/tests/phase6_security.spec.d.ts +1 -0
  92. package/dist/components/EzScheduler/tests/phase7_regression.spec.d.ts +1 -0
  93. package/dist/components/EzScheduler/useEzScheduler.d.ts +152 -0
  94. package/dist/components/EzScheduler/utils/createDragConstraint.d.ts +7 -0
  95. package/dist/components/EzScheduler/utils/getWeekNumber.d.ts +8 -0
  96. package/dist/components/EzScheduler/utils/sanitizeHtml.d.ts +17 -0
  97. package/dist/components/EzScheduler/views/AgendaView.d.ts +33 -0
  98. package/dist/components/EzScheduler/views/DayWeekView.d.ts +182 -0
  99. package/dist/components/EzScheduler/views/MonthView.d.ts +65 -0
  100. package/dist/components/EzScheduler/views/TimelineView.d.ts +121 -0
  101. package/dist/components/EzSignature/EzSignature.d.ts +42 -0
  102. package/dist/components/EzSignature/EzSignature.test.d.ts +1 -0
  103. package/dist/components/EzSignature/EzSignature.types.d.ts +132 -0
  104. package/dist/components/EzSignature/index.d.ts +2 -0
  105. package/dist/components/EzTable/EzColumnMenu.d.ts +7 -0
  106. package/dist/components/EzTable/EzDateFilterTree.d.ts +7 -0
  107. package/dist/components/EzTable/EzExcelFilter.d.ts +6 -0
  108. package/dist/components/EzTable/EzFilterBuilder.d.ts +12 -0
  109. package/dist/components/EzTable/EzGroupingPanel.d.ts +9 -0
  110. package/dist/components/EzTable/EzHeaderContextMenu.d.ts +8 -0
  111. package/dist/components/EzTable/EzPagination.d.ts +19 -0
  112. package/dist/components/EzTable/EzTable.types.d.ts +1481 -0
  113. package/dist/components/EzTable/EzTableEditDialog.d.ts +15 -0
  114. package/dist/components/EzTable/EzTableFooter.d.ts +10 -0
  115. package/dist/components/EzTable/EzTableOverlays.d.ts +11 -0
  116. package/dist/components/EzTable/EzTableStatusBar.d.ts +6 -0
  117. package/dist/components/EzTable/EzTableToolbar.d.ts +58 -0
  118. package/dist/components/EzTable/SmartCell.d.ts +7 -0
  119. package/dist/components/EzTable/__tests__/EzTableDX.test.d.ts +0 -0
  120. package/dist/components/EzTable/__tests__/EzTableEnterprise.test.d.ts +1 -0
  121. package/dist/components/EzTable/__tests__/useEzTable.test.d.ts +1 -0
  122. package/dist/components/EzTable/components/AdvancedColumnFilter.d.ts +16 -0
  123. package/dist/components/EzTable/components/BooleanFilterSection.d.ts +7 -0
  124. package/dist/components/EzTable/components/DraggableHeader.d.ts +10 -0
  125. package/dist/components/EzTable/components/EzTableBodySection.d.ts +70 -0
  126. package/dist/components/EzTable/components/EzTableCell.d.ts +46 -0
  127. package/dist/components/EzTable/components/EzTableHeaderSection.d.ts +22 -0
  128. package/dist/components/EzTable/components/EzTablePaginationSection.d.ts +31 -0
  129. package/dist/components/EzTable/components/EzTableRow.d.ts +56 -0
  130. package/dist/components/EzTable/components/FilterActionButtons.d.ts +16 -0
  131. package/dist/components/EzTable/components/FilterRuleSelect.d.ts +26 -0
  132. package/dist/components/EzTable/components/SelectAllCheckbox.d.ts +21 -0
  133. package/dist/components/EzTable/components/SelectFilterSection.d.ts +18 -0
  134. package/dist/components/EzTable/components/VirtualizedFilterList.d.ts +21 -0
  135. package/dist/components/EzTable/constants/filterOptions.d.ts +47 -0
  136. package/dist/components/EzTable/context/EzTableContext.d.ts +10 -0
  137. package/dist/components/EzTable/context/TableConfigContext.d.ts +13 -0
  138. package/dist/components/EzTable/context/TableStore.d.ts +17 -0
  139. package/dist/components/EzTable/filterUtils.d.ts +5 -0
  140. package/dist/components/EzTable/hooks/useAutoFit.d.ts +4 -0
  141. package/dist/components/EzTable/hooks/useCellEventHandlers.d.ts +16 -0
  142. package/dist/components/EzTable/hooks/useColumnSizeVars.d.ts +6 -0
  143. package/dist/components/EzTable/hooks/useContainerResize.d.ts +11 -0
  144. package/dist/components/EzTable/hooks/useDialogStateInitialization.d.ts +8 -0
  145. package/dist/components/EzTable/hooks/useFilterSelection.d.ts +12 -0
  146. package/dist/components/EzTable/hooks/useTableFiltering.d.ts +23 -0
  147. package/dist/components/EzTable/hooks/useTableHistory.d.ts +87 -0
  148. package/dist/components/EzTable/hooks/useTableImperative.d.ts +42 -0
  149. package/dist/components/EzTable/hooks/useTableSelection.d.ts +32 -0
  150. package/dist/components/EzTable/hooks/useTableState.d.ts +31 -0
  151. package/dist/components/EzTable/hooks/useTableVirtualization.d.ts +33 -0
  152. package/dist/components/EzTable/index.d.ts +50 -0
  153. package/dist/components/EzTable/renderers/index.d.ts +6 -0
  154. package/dist/components/EzTable/services/TableService.d.ts +26 -0
  155. package/dist/components/EzTable/useEzTable.d.ts +17 -0
  156. package/dist/components/EzTable/utils/TextMeasurer.d.ts +1 -0
  157. package/dist/components/EzTable/utils/TruncatedTooltip.d.ts +7 -0
  158. package/dist/components/EzTable/utils/columnTypeDetector.d.ts +5 -0
  159. package/dist/components/EzTable/utils/filterTypeGuards.d.ts +3 -0
  160. package/dist/components/EzTable/utils/index.d.ts +1 -0
  161. package/dist/components/EzTreeView/EzTreeView.types.d.ts +395 -0
  162. package/dist/components/EzTreeView/EzTreeViewItem.d.ts +77 -0
  163. package/dist/components/EzTreeView/EzVirtualTree.d.ts +72 -0
  164. package/dist/components/EzTreeView/components/EzTreeViewLoadingSpinner.d.ts +2 -0
  165. package/dist/components/EzTreeView/hooks/useTreeDragDrop.d.ts +31 -0
  166. package/dist/components/EzTreeView/hooks/useTreeExpansion.d.ts +21 -0
  167. package/dist/components/EzTreeView/hooks/useTreeImperative.d.ts +28 -0
  168. package/dist/components/EzTreeView/hooks/useTreeSelection.d.ts +31 -0
  169. package/dist/components/EzTreeView/hooks/useTreeState.d.ts +21 -0
  170. package/dist/components/EzTreeView/hooks/useTreeVirtualization.d.ts +18 -0
  171. package/dist/components/EzTreeView/index.d.ts +40 -0
  172. package/dist/components/EzTreeView/services/TreeService.d.ts +11 -0
  173. package/dist/components/EzTreeView/useEzTreeView.d.ts +62 -0
  174. package/dist/components/EzTreeView/utils/treeUtils.d.ts +17 -0
  175. package/dist/components/shared/components/EzErrorBoundary.d.ts +18 -0
  176. package/dist/components/shared/components/EzLayoutErrorFallback.d.ts +2 -0
  177. package/dist/components/shared/components/EzLoadingSpinner.d.ts +8 -0
  178. package/dist/components/shared/components/EzSchedulerErrorFallback.d.ts +2 -0
  179. package/dist/components/shared/components/EzTableErrorFallback.d.ts +2 -0
  180. package/dist/components/shared/components/EzTreeViewErrorFallback.d.ts +2 -0
  181. package/dist/components/ui/avatar.d.ts +5 -0
  182. package/dist/components/ui/badge.d.ts +9 -0
  183. package/dist/components/ui/breadcrumb.d.ts +19 -0
  184. package/dist/components/ui/button.d.ts +12 -0
  185. package/dist/components/ui/calendar.d.ts +15 -0
  186. package/dist/components/ui/card.d.ts +8 -0
  187. package/dist/components/ui/checkbox.d.ts +7 -0
  188. package/dist/components/ui/command.d.ts +78 -0
  189. package/dist/components/ui/context-menu.d.ts +27 -0
  190. package/dist/components/ui/date-time-picker.d.ts +13 -0
  191. package/dist/components/ui/dropdown-menu.d.ts +27 -0
  192. package/dist/components/ui/index.d.ts +26 -0
  193. package/dist/components/ui/input.d.ts +5 -0
  194. package/dist/components/ui/label.d.ts +5 -0
  195. package/dist/components/ui/modal.d.ts +9 -0
  196. package/dist/components/ui/password-input.d.ts +5 -0
  197. package/dist/components/ui/popover.d.ts +4 -0
  198. package/dist/components/ui/progress.d.ts +7 -0
  199. package/dist/components/ui/radio-group.d.ts +5 -0
  200. package/dist/components/ui/scroll-area.d.ts +5 -0
  201. package/dist/components/ui/select.d.ts +24 -0
  202. package/dist/components/ui/skeleton.d.ts +2 -0
  203. package/dist/components/ui/switch.d.ts +4 -0
  204. package/dist/components/ui/table.d.ts +10 -0
  205. package/dist/components/ui/tabs.d.ts +14 -0
  206. package/dist/components/ui/textarea.d.ts +5 -0
  207. package/dist/components/ui/tooltip.d.ts +7 -0
  208. package/dist/ezux.es.js +149 -0
  209. package/dist/ezux.umd.js +68 -0
  210. package/dist/index-DBwoXp4n.js +30656 -0
  211. package/dist/index.d.ts +70 -0
  212. package/dist/lib/perfect-freehand.d.ts +221 -0
  213. package/dist/lib/utils.d.ts +2 -0
  214. package/dist/shared/components/AnimatedText.d.ts +44 -0
  215. package/dist/shared/components/BaseCell.d.ts +14 -0
  216. package/dist/shared/components/BooleanRenderer.d.ts +34 -0
  217. package/dist/shared/components/ChartRenderer.d.ts +19 -0
  218. package/dist/shared/components/DeleteConfirmationModal.d.ts +11 -0
  219. package/dist/shared/components/EzContextMenu.d.ts +12 -0
  220. package/dist/shared/components/EzNotificationDropdown.d.ts +1 -0
  221. package/dist/shared/components/HighlightText.d.ts +4 -0
  222. package/dist/shared/components/Modal.d.ts +13 -0
  223. package/dist/shared/components/NotificationPanel.d.ts +2 -0
  224. package/dist/shared/components/PrimitiveRenderer.d.ts +39 -0
  225. package/dist/shared/components/SearchableSelect.d.ts +13 -0
  226. package/dist/shared/components/SelectRenderer.d.ts +33 -0
  227. package/dist/shared/components/StatusBadge.d.ts +12 -0
  228. package/dist/shared/components/TooltipWrapper.d.ts +12 -0
  229. package/dist/shared/components/index.d.ts +9 -0
  230. package/dist/shared/hooks/index.d.ts +56 -0
  231. package/dist/shared/hooks/useBaseComponent.d.ts +60 -0
  232. package/dist/shared/hooks/useComponentImperativeAPI.d.ts +11 -0
  233. package/dist/shared/hooks/useComponentState.d.ts +39 -0
  234. package/dist/shared/hooks/useCurrentTime.d.ts +6 -0
  235. package/dist/shared/hooks/useDataChangeEvents.d.ts +53 -0
  236. package/dist/shared/hooks/useDebounce.d.ts +10 -0
  237. package/dist/shared/hooks/useDeleteConfirmation.d.ts +9 -0
  238. package/dist/shared/hooks/useDialogState.d.ts +21 -0
  239. package/dist/shared/hooks/useDndHandlers.d.ts +17 -0
  240. package/dist/shared/hooks/useEditing.d.ts +107 -0
  241. package/dist/shared/hooks/useEventHandlers.d.ts +61 -0
  242. package/dist/shared/hooks/useEzTheme.d.ts +22 -0
  243. package/dist/shared/hooks/useFieldValidation.d.ts +24 -0
  244. package/dist/shared/hooks/useHistory.d.ts +13 -0
  245. package/dist/shared/hooks/useI18n.d.ts +9 -0
  246. package/dist/shared/hooks/useImperativeAPI.d.ts +8 -0
  247. package/dist/shared/hooks/useInitCoreServices.d.ts +5 -0
  248. package/dist/shared/hooks/useKeyboardNavigation.d.ts +36 -0
  249. package/dist/shared/hooks/useKeyboardShortcuts.d.ts +14 -0
  250. package/dist/shared/hooks/useLifecycleEvents.d.ts +22 -0
  251. package/dist/shared/hooks/useLoadingState.d.ts +17 -0
  252. package/dist/shared/hooks/useMediaQuery.d.ts +6 -0
  253. package/dist/shared/hooks/useNotificationService.d.ts +8 -0
  254. package/dist/shared/hooks/usePerformanceMonitor.d.ts +15 -0
  255. package/dist/shared/hooks/useRowSelectionEvents.d.ts +44 -0
  256. package/dist/shared/hooks/useSelection.d.ts +73 -0
  257. package/dist/shared/hooks/useService.d.ts +12 -0
  258. package/dist/shared/hooks/useServiceState.d.ts +12 -0
  259. package/dist/shared/hooks/useStateChangeEvents.d.ts +61 -0
  260. package/dist/shared/hooks/useTheme.d.ts +13 -0
  261. package/dist/shared/hooks/useVirtualization.d.ts +85 -0
  262. package/dist/shared/services/BaseService.d.ts +56 -0
  263. package/dist/shared/services/ContextMenuService.d.ts +58 -0
  264. package/dist/shared/services/ExportService.d.ts +35 -0
  265. package/dist/shared/services/FocusManagerService.d.ts +33 -0
  266. package/dist/shared/services/HierarchyService.d.ts +43 -0
  267. package/dist/shared/services/I18nService.d.ts +65 -0
  268. package/dist/shared/services/LayoutService.d.ts +80 -0
  269. package/dist/shared/services/NotificationService.d.ts +44 -0
  270. package/dist/shared/services/PersistenceService.d.ts +69 -0
  271. package/dist/shared/services/ServiceRegistry.d.ts +51 -0
  272. package/dist/shared/services/ThemeService.d.ts +49 -0
  273. package/dist/shared/services/VirtualizationService.d.ts +51 -0
  274. package/dist/shared/state/store.d.ts +10 -0
  275. package/dist/shared/themes.d.ts +25 -0
  276. package/dist/shared/types/BaseProps.d.ts +18 -0
  277. package/dist/shared/types/common.d.ts +292 -0
  278. package/dist/shared/types/commonTypes.d.ts +101 -0
  279. package/dist/shared/types/index.d.ts +2 -0
  280. package/dist/shared/utils/canvasUtils.d.ts +16 -0
  281. package/dist/shared/utils/commonUtils.d.ts +28 -0
  282. package/dist/shared/utils/csvUtils.d.ts +7 -0
  283. package/dist/shared/utils/dateUtils.d.ts +5 -0
  284. package/dist/shared/utils/dndUtils.d.ts +16 -0
  285. package/dist/shared/utils/ezStyleUtils.d.ts +64 -0
  286. package/dist/shared/utils/formatUtils.d.ts +20 -0
  287. package/dist/shared/utils/imperativeApiUtils.d.ts +36 -0
  288. package/dist/shared/utils/index.d.ts +11 -0
  289. package/dist/shared/utils/renderUtils.d.ts +6 -0
  290. package/dist/shared/utils/serviceUtils.d.ts +10 -0
  291. package/dist/shared/utils/styleUtils.d.ts +66 -0
  292. package/dist/shared/utils/validationUtils.d.ts +16 -0
  293. package/package.json +101 -0
@@ -0,0 +1,60 @@
1
+ import { ServiceRegistry } from '../services/ServiceRegistry';
2
+ import { ComponentEventCallbacks } from '../types/common';
3
+ /**
4
+ * Common properties for all core components.
5
+ * @group Properties
6
+ */
7
+ export interface BaseComponentProps extends ComponentEventCallbacks {
8
+ /**
9
+ * The shared service registry instance.
10
+ * @group Services
11
+ */
12
+ serviceRegistry?: ServiceRegistry;
13
+ [key: string]: any;
14
+ }
15
+ export type BaseComponentConfig = BaseComponentProps;
16
+ /**
17
+ * Base internal state for core components.
18
+ * @group State
19
+ */
20
+ export interface BaseComponentState {
21
+ /** Whether the component is processing an async action. @group State */
22
+ isLoading: boolean;
23
+ /** Current error state. @group State */
24
+ error: Error | null;
25
+ /** Whether the component has mounted on the client. @group State */
26
+ isHydrated: boolean;
27
+ }
28
+ /**
29
+ * Foundation API shared by all core components.
30
+ * @group Methods
31
+ */
32
+ export interface BaseComponentAPI {
33
+ /** Shows the global component spinner. @group Methods */
34
+ showSpinner: () => void;
35
+ /** Hides the global component spinner. @group Methods */
36
+ hideSpinner: () => void;
37
+ }
38
+ /**
39
+ * A foundational hook that provides shared infrastructure for all core components.
40
+ *
41
+ * Handles service registry resolution, basic lifecycle events, and common loading/error state.
42
+ *
43
+ * @param props The component's props.
44
+ * @group Hooks
45
+ */
46
+ export declare const useBaseComponent: (props: BaseComponentProps) => {
47
+ /** The resolved service registry for this component. @group Services */
48
+ serviceRegistry: ServiceRegistry;
49
+ /** Current base state (loading, error, hydrated). @group State */
50
+ state: BaseComponentState;
51
+ /** Functional setter for loading state. @group Methods */
52
+ setIsLoading: (isLoading: boolean) => void;
53
+ /** Functional setter for error state. @group Methods */
54
+ setError: (error: Error | null) => void;
55
+ /** Base API (spinner controls). @group Methods */
56
+ api: {
57
+ showSpinner: () => void;
58
+ hideSpinner: () => void;
59
+ };
60
+ };
@@ -0,0 +1,11 @@
1
+ import { Ref } from 'react';
2
+ export interface ImperativeAPIOptions {
3
+ validateField?: (data: any) => boolean;
4
+ validateEditForm?: () => boolean;
5
+ [key: string]: any;
6
+ }
7
+ /**
8
+ * Generic imperative API hook for all EzUX components
9
+ * Standardizes imperative API pattern across components
10
+ */
11
+ export declare const useComponentImperativeAPI: <T extends Record<string, any>>(ref: Ref<T> | undefined, api: T, options?: ImperativeAPIOptions) => void;
@@ -0,0 +1,39 @@
1
+ import { IService } from '../services/ServiceRegistry';
2
+ /**
3
+ * Configuration for the useComponentState hook.
4
+ * @group Properties
5
+ */
6
+ export interface StateConfig<T> {
7
+ /** Initial state value. @group Data */
8
+ initialState: T;
9
+ /** Optional service for state synchronization. @group Services */
10
+ service?: IService;
11
+ /** LocalStorage key for state persistence. @group Properties */
12
+ persistenceKey?: string;
13
+ /** Delay in milliseconds for state update debouncing. @group Properties */
14
+ debounceMs?: number;
15
+ /** Callback triggered when state changes. @group Events */
16
+ onChange?: (state: T) => void;
17
+ }
18
+ /**
19
+ * A robust state management hook with support for debouncing, persistence, and service integration.
20
+ *
21
+ * @param config Configuration for the state management.
22
+ * @group Hooks
23
+ */
24
+ export declare function useComponentState<T>(config: StateConfig<T>): {
25
+ /** The current state object. @group State */
26
+ state: T;
27
+ /** Updates the state (with optional debouncing). @group Methods */
28
+ setState: (updater: T | ((prev: T) => T)) => void;
29
+ /** Updates the state immediately, bypassing debouncing. @group Methods */
30
+ setImmediateState: (newState: T) => void;
31
+ /** Whether a state-related async operation is in progress. @group State */
32
+ loading: boolean;
33
+ /** Functional setter for loading state. @group Methods */
34
+ setLoading: import('react').Dispatch<import('react').SetStateAction<boolean>>;
35
+ /** Current error state. @group State */
36
+ error: Error | null;
37
+ /** Functional setter for error state. @group Methods */
38
+ setError: import('react').Dispatch<import('react').SetStateAction<Error | null>>;
39
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Shared hook for centralized timekeeping.
3
+ * Updates every minute and provides a stable Date object.
4
+ * Useful for "Current Time" indicators in calendars/schedulers.
5
+ */
6
+ export declare function useCurrentTime(refreshInterval?: number): Date;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Data change event callbacks shared across components.
3
+ */
4
+ export interface DataChangeCallbacks<TData = any> {
5
+ onDataChangeStart?: (args: {
6
+ action: 'add' | 'edit' | 'delete';
7
+ data: TData | TData[];
8
+ }) => void;
9
+ onDataChangeComplete?: (args: {
10
+ action: 'add' | 'edit' | 'delete';
11
+ data: TData | TData[];
12
+ }) => void;
13
+ onDataChangeCancel?: (args: {
14
+ action: 'add' | 'edit' | 'delete';
15
+ row?: any;
16
+ }) => void;
17
+ onDataChangeRequest?: (args: {
18
+ action: 'add' | 'edit' | 'delete';
19
+ data: TData;
20
+ }) => void;
21
+ onRowAddStart?: (args: {
22
+ data: Partial<TData>;
23
+ }) => void;
24
+ onRowEditStart?: (args: {
25
+ row: any;
26
+ data: TData;
27
+ }) => void;
28
+ }
29
+ /**
30
+ * Shared hook for data change lifecycle events.
31
+ * Used by EzTable, EzScheduler, EzTreeView to emit consistent data mutation events.
32
+ *
33
+ * @example
34
+ * const { emitDataChangeStart, emitDataChangeComplete, withDataChange } = useDataChangeEvents(props);
35
+ *
36
+ * // Wrap a mutation
37
+ * withDataChange('add', newRecord, () => {
38
+ * addRecordToState(newRecord);
39
+ * });
40
+ */
41
+ export declare const useDataChangeEvents: <TData = any>(callbacks: DataChangeCallbacks<TData>) => {
42
+ emitDataChangeStart: (action: "add" | "edit" | "delete", data: TData | TData[]) => void;
43
+ emitDataChangeComplete: (action: "add" | "edit" | "delete", data: TData | TData[]) => void;
44
+ emitDataChangeCancel: (action: "add" | "edit" | "delete", row?: any) => void;
45
+ emitDataChangeRequest: (action: "add" | "edit" | "delete", data: TData) => void;
46
+ emitRowAddStart: (data: Partial<TData>) => void;
47
+ emitRowEditStart: (row: any, data: TData) => void;
48
+ withDataChange: <R>(action: "add" | "edit" | "delete", data: TData | TData[], mutation: () => R) => R;
49
+ pendingAction: {
50
+ action: "add" | "edit" | "delete";
51
+ data: TData | TData[];
52
+ } | null;
53
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Hook for debouncing a value
3
+ * Useful for search inputs and expensive operations
4
+ */
5
+ export declare function useDebounce<T>(value: T, delay?: number): T;
6
+ /**
7
+ * Hook for throttling a callback function
8
+ * Useful for scroll, resize, and zoom events
9
+ */
10
+ export declare function useThrottle<T extends (...args: any[]) => any>(callback: T, delay?: number): T;
@@ -0,0 +1,9 @@
1
+ export declare const useDeleteConfirmation: () => {
2
+ isOpen: boolean;
3
+ idToDelete: string | null;
4
+ title: string;
5
+ message: string;
6
+ requestDelete: (id: string, customTitle?: string, customMessage?: string) => void;
7
+ close: () => void;
8
+ setIsOpen: import('react').Dispatch<import('react').SetStateAction<boolean>>;
9
+ };
@@ -0,0 +1,21 @@
1
+ export type DialogMode = 'create' | 'edit' | 'view';
2
+ export interface DialogStateHelperConfig<T> {
3
+ initialMode?: DialogMode;
4
+ initialData?: T;
5
+ defaultData?: T;
6
+ }
7
+ /**
8
+ * Shared hook for managing dialog/modal state.
9
+ * Simplifies handling of open/close state, data passing, and operation modes.
10
+ */
11
+ export declare function useDialogState<T = any>(config?: DialogStateHelperConfig<T>): {
12
+ isOpen: boolean;
13
+ mode: DialogMode;
14
+ data: T;
15
+ meta: any;
16
+ open: (mode: DialogMode, data?: T, meta?: any) => void;
17
+ close: () => void;
18
+ toggle: () => void;
19
+ setData: import('react').Dispatch<import('react').SetStateAction<T>>;
20
+ setMode: import('react').Dispatch<import('react').SetStateAction<DialogMode>>;
21
+ };
@@ -0,0 +1,17 @@
1
+ import { CollisionDetection, DragEndEvent } from '@dnd-kit/core';
2
+ interface UseDndHandlersOptions {
3
+ onDragEnd: (event: DragEndEvent) => void;
4
+ collisionDetection?: CollisionDetection;
5
+ distance?: number;
6
+ }
7
+ /**
8
+ * A shared hook to consolidate dnd-kit sensor setup and handlers.
9
+ *
10
+ * @param options DnD options including onDragEnd, collisionDetection, and distance constraint.
11
+ */
12
+ export declare const useDndHandlers: (options: UseDndHandlersOptions) => {
13
+ sensors: import('@dnd-kit/core').SensorDescriptor<import('@dnd-kit/core').SensorOptions>[];
14
+ onDragEnd: (event: DragEndEvent) => void;
15
+ collisionDetection: CollisionDetection | undefined;
16
+ };
17
+ export {};
@@ -0,0 +1,107 @@
1
+ import { EditMode, ValidationResult } from '../types/common';
2
+ /**
3
+ * Configuration for the useEditing hook.
4
+ * @group Properties
5
+ */
6
+ export interface EditConfig<TData = any> {
7
+ /** Edit interaction mode (inline, dialog, or batch). @group Properties */
8
+ mode?: EditMode;
9
+ /** Whether adding new records is allowed. @group Properties */
10
+ allowAdding?: boolean;
11
+ /** Whether editing existing records is allowed. @group Properties */
12
+ allowEditing?: boolean;
13
+ /** Whether deleting records is allowed. @group Properties */
14
+ allowDeleting?: boolean;
15
+ /** Whether to prompt for confirmation before deletion. @group Properties */
16
+ showDeleteConfirm?: boolean;
17
+ /** Callback to validate an entire row before saving. @group Events */
18
+ validateRow?: (data: TData) => ValidationResult;
19
+ /** Callback to validate a single field value. @group Events */
20
+ validateField?: (fieldName: string, value: any, data: TData) => boolean | string;
21
+ /** Callback triggered when a row enters edit mode. @group Events */
22
+ onRowEdit?: (data: TData, index: number) => void;
23
+ /** Callback triggered when a new row is being added. @group Events */
24
+ onRowAdd?: (data: TData) => void;
25
+ /** Callback triggered when a row is deleted. @group Events */
26
+ onRowDelete?: (id: string | number) => void;
27
+ /** Callback triggered when changes to a row are saved. @group Events */
28
+ onRowSave?: (data: TData, index: number) => void;
29
+ /** Callback triggered when editing of a row is cancelled. @group Events */
30
+ onRowCancel?: (index: number) => void;
31
+ }
32
+ /**
33
+ * Internal editing state.
34
+ * @group State
35
+ */
36
+ export interface EditState<TData = any> {
37
+ /** Map of row indices to their current pending edits. @group State */
38
+ editingRows: Map<number, TData>;
39
+ /** Current state for a row being added (null if none). @group State */
40
+ addingRow: TData | null;
41
+ /** Set of IDs currently marked for deletion. @group State */
42
+ deletingIds: Set<string | number>;
43
+ /** Map of row indices to their current validation errors. @group State */
44
+ validationErrors: Map<number, Record<string, string>>;
45
+ }
46
+ /**
47
+ * Public API for editing management.
48
+ * @group Methods
49
+ */
50
+ export interface EditAPI<TData = any> {
51
+ /** Starts editing a specific row. @group Methods */
52
+ startEditing: (index: number, data: TData) => void;
53
+ /** Stops editing a specific row without saving. @group Methods */
54
+ stopEditing: (index: number) => void;
55
+ /** Checks if a row is currently in edit mode. @group Methods */
56
+ isEditing: (index: number) => boolean;
57
+ /** Returns the current pending data for an edited row. @group Methods */
58
+ getEditingData: (index: number) => TData | undefined;
59
+ /** Updates the pending data for an edited row. @group Methods */
60
+ updateEditingData: (index: number, data: Partial<TData>) => void;
61
+ /** Starts the process of adding a new row. @group Methods */
62
+ startAdding: (initialData?: Partial<TData>) => void;
63
+ /** Stops the add process without saving. @group Methods */
64
+ stopAdding: () => void;
65
+ /** Checks if a return is currently in add mode. @group Methods */
66
+ isAdding: () => boolean;
67
+ /** Returns the current data for the row being added. @group Methods */
68
+ getAddingData: () => TData | null;
69
+ /** Updates the data for the row being added. @group Methods */
70
+ updateAddingData: (data: Partial<TData>) => void;
71
+ /** Saves changes to a specific row. @group Methods */
72
+ saveRow: (index: number) => Promise<boolean>;
73
+ /** Saves the row currently being added. @group Methods */
74
+ saveNewRow: () => Promise<boolean>;
75
+ /** Cancels editing and reverts changes for a row. @group Methods */
76
+ cancelEdit: (index: number) => void;
77
+ /** Cancels the add process. @group Methods */
78
+ cancelAdd: () => void;
79
+ /** Marks a row for deletion or triggers immediate delete. @group Methods */
80
+ deleteRow: (id: string | number) => void;
81
+ /** Checks if a specific ID is marked for deletion. @group State */
82
+ isDeleting: (id: string | number) => boolean;
83
+ /** Validates a specific row and returns results. @group Methods */
84
+ validateRow: (index: number) => ValidationResult;
85
+ /** Validates a specific field within a row. @group Methods */
86
+ validateField: (index: number, fieldName: string, value: any) => boolean | string;
87
+ /** Returns current validation errors for a row. @group Methods */
88
+ getValidationErrors: (index: number) => Record<string, string> | undefined;
89
+ /** Checks if there are any pending edits or additions. @group Methods */
90
+ hasChanges: () => boolean;
91
+ /** Returns all rows that have pending changes. @group Methods */
92
+ getChangedRows: () => Map<number, TData>;
93
+ /** Saves all pending changes across all edited rows. @group Methods */
94
+ saveAllChanges: () => Promise<boolean>;
95
+ /** Discards all pending edits and additions. @group Methods */
96
+ cancelAllChanges: () => void;
97
+ }
98
+ /**
99
+ * Shared hook for implementing robust editing features in components.
100
+ *
101
+ * Manages complex state transitions for inline, batch, and dialog-based editing,
102
+ * including validation logic, pending changes tracking, and transactional saving.
103
+ *
104
+ * @param config Configuration for editing behavior and callbacks.
105
+ * @group Hooks
106
+ */
107
+ export declare const useEditing: <TData extends Record<string, any> = any>(config?: EditConfig<TData>) => EditAPI<TData>;
@@ -0,0 +1,61 @@
1
+ import { DragEndEvent, DragStartEvent, DragOverEvent } from '@dnd-kit/core';
2
+ /**
3
+ * Configuration for component event handlers.
4
+ * @group Properties
5
+ */
6
+ export interface EventHandlerConfig {
7
+ /** Triggered when a drag operation starts. @group Events */
8
+ onDragStart?: (event: DragStartEvent) => void;
9
+ /** Triggered while an item is being dragged over. @group Events */
10
+ onDragOver?: (event: DragOverEvent) => void;
11
+ /** Triggered when a drag operation completes. @group Events */
12
+ onDragEnd?: (event: DragEndEvent) => void;
13
+ /** Triggered on key press. @group Events */
14
+ onKeyPress?: (event: React.KeyboardEvent) => void;
15
+ /** Triggered on key down. @group Events */
16
+ onKeyDown?: (event: React.KeyboardEvent) => void;
17
+ /** Triggered on key up. @group Events */
18
+ onKeyUp?: (event: React.KeyboardEvent) => void;
19
+ /** Triggered on mouse click. @group Events */
20
+ onClick?: (event: React.MouseEvent) => void;
21
+ /** Triggered on mouse double-click. @group Events */
22
+ onDoubleClick?: (event: React.MouseEvent) => void;
23
+ /** Triggered when focus state changes. @group Events */
24
+ onFocusChange?: (focused: boolean) => void;
25
+ /** Triggered on pointer down (touch/mouse). @group Events */
26
+ onPointerDown?: (event: React.PointerEvent) => void;
27
+ /** Triggered on pointer move (touch/mouse). @group Events */
28
+ onPointerMove?: (event: React.PointerEvent) => void;
29
+ /** Triggered on pointer up (touch/mouse). @group Events */
30
+ onPointerUp?: (event: React.PointerEvent) => void;
31
+ /** Triggered when pointer leaves element. @group Events */
32
+ onPointerLeave?: (event: React.PointerEvent) => void;
33
+ /** Triggered when pointer enters element. @group Events */
34
+ onPointerEnter?: (event: React.PointerEvent) => void;
35
+ }
36
+ /**
37
+ * An enhanced hook that standardizes event processing across all EzUX components.
38
+ *
39
+ * Provides pre-bound, memoized handlers for DND, keyboard, mouse, and pointer events,
40
+ * ensuring consistent behavior and high performance.
41
+ *
42
+ * @param config Configuration of desired event callbacks.
43
+ * @group Hooks
44
+ */
45
+ export declare function useEventHandlers(config: EventHandlerConfig): {
46
+ handleDragStart: (event: DragStartEvent) => void;
47
+ handleDragOver: (event: DragOverEvent) => void;
48
+ handleDragEnd: (event: DragEndEvent) => void;
49
+ handleKeyPress: (event: React.KeyboardEvent) => void;
50
+ handleKeyDown: (event: React.KeyboardEvent) => void;
51
+ handleKeyUp: (event: React.KeyboardEvent) => void;
52
+ handleClick: (event: React.MouseEvent) => void;
53
+ handleDoubleClick: (event: React.MouseEvent) => void;
54
+ handlePointerDown: (event: React.PointerEvent) => void;
55
+ handlePointerMove: (event: React.PointerEvent) => void;
56
+ handlePointerUp: (event: React.PointerEvent) => void;
57
+ handlePointerLeave: (event: React.PointerEvent) => void;
58
+ handlePointerEnter: (event: React.PointerEvent) => void;
59
+ handleFocus: () => void;
60
+ handleBlur: () => void;
61
+ };
@@ -0,0 +1,22 @@
1
+ import { ThemeMode, ThemeColor } from '../services/ThemeService';
2
+ /**
3
+ * Hook for accessing and controlling the library's theme state.
4
+ *
5
+ * Provides current theme mode (light/dark/system), primary colors, and UI radius settings.
6
+ * Automatically synchronizes with the global `ThemeService`.
7
+ *
8
+ * @group Hooks
9
+ */
10
+ export declare const useEzTheme: () => {
11
+ /** Sets the theme mode (light, dark, or system). @group Methods */
12
+ setMode: (mode: ThemeMode) => void;
13
+ /** Toggles between light and dark modes. @group Methods */
14
+ toggleMode: () => void;
15
+ /** Updates the primary theme color. @group Methods */
16
+ setThemeColor: (color: ThemeColor) => void;
17
+ /** Updates the global border radius setting. @group Methods */
18
+ setRadius: (radius: number) => void;
19
+ mode: ThemeMode;
20
+ themeColor: ThemeColor;
21
+ radius: number;
22
+ };
@@ -0,0 +1,24 @@
1
+ export interface ValidationResult {
2
+ isValid: boolean;
3
+ error?: string;
4
+ }
5
+ export interface ValidationParams<T = any> {
6
+ fieldName: string;
7
+ value: any;
8
+ data: T;
9
+ }
10
+ export interface FieldValidationProps<T = any> {
11
+ validateField?: (params: ValidationParams<T>) => boolean | string;
12
+ editSettings?: {
13
+ requiredFields?: string[];
14
+ validationRules?: Record<string, (value: any, data: T) => boolean | string>;
15
+ };
16
+ }
17
+ /**
18
+ * Shared hook for field validation logic.
19
+ * Consolidates validation patterns and reduces duplication.
20
+ */
21
+ export declare const useFieldValidation: <T = any>(props: FieldValidationProps<T>) => {
22
+ validate: (fieldName: string, value: any, data: T) => ValidationResult;
23
+ validateForm: (data: T, fieldsToValidate: string[]) => Record<string, ValidationResult>;
24
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Hook for managing Undo/Redo state history
3
+ */
4
+ export declare const useHistory: <T>(initialPresent: T, limit?: number) => {
5
+ state: T;
6
+ undo: () => void;
7
+ redo: () => void;
8
+ pushState: (newPresent: T) => void;
9
+ clear: (newInitialState?: T) => void;
10
+ canUndo: boolean;
11
+ canRedo: boolean;
12
+ historyCount: number;
13
+ };
@@ -0,0 +1,9 @@
1
+ import { I18nService } from '../services/I18nService';
2
+ /**
3
+ * Hook for accessing the internationalization service.
4
+ *
5
+ * Provides access to the `I18nService` for translation, localization, and language management.
6
+ *
7
+ * @group Hooks
8
+ */
9
+ export declare const useI18n: () => I18nService;
@@ -0,0 +1,8 @@
1
+ import { Ref } from 'react';
2
+ /**
3
+ * A shared hook to consolidate the imperative API pattern using useImperativeHandle.
4
+ *
5
+ * @param ref The ref object from the forwardRef or parent component.
6
+ * @param api An object containing the methods and properties to expose.
7
+ */
8
+ export declare const useImperativeAPI: <T extends Record<string, any>>(ref: Ref<T> | undefined, api: T) => void;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Hook to ensure core services are registered in the global service registry.
3
+ * This is crucial for isolated environments like Storybook or unit tests.
4
+ */
5
+ export declare const useInitCoreServices: () => void;
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Configuration for the useKeyboardNavigation hook.
3
+ * @group Properties
4
+ */
5
+ interface KeyboardNavigationOptions {
6
+ /** Total number of items in the navigable list. @group Data */
7
+ totalItems: number;
8
+ /** Number of columns for grid navigation (use 1 for simple lists). @default 1 @group Properties */
9
+ columns?: number;
10
+ /** Callback triggered when focus moves to a new index. @group Events */
11
+ onSelect?: (index: number) => void;
12
+ /** Callback triggered when the Enter key is pressed on a focused item. @group Events */
13
+ onAction?: (index: number) => void;
14
+ /** Callback triggered when the Escape key is pressed. @group Events */
15
+ onCancel?: () => void;
16
+ /** Whether navigation should wrap around at boundaries. @default true @group Properties */
17
+ wrap?: boolean;
18
+ /** Whether keyboard listening is currently active. @default true @group Properties */
19
+ enabled?: boolean;
20
+ }
21
+ /**
22
+ * Hook for managing keyboard focus and selection in lists and grids.
23
+ *
24
+ * Implements standard directional arrow key navigation, Enter for action,
25
+ * and Escape for cancellation/unfocus.
26
+ *
27
+ * @param options Keyboard navigation behavior configuration.
28
+ * @group Hooks
29
+ */
30
+ export declare const useKeyboardNavigation: ({ totalItems, columns, onSelect, onAction, onCancel, wrap, enabled }: KeyboardNavigationOptions) => {
31
+ /** The current focused index (-1 if none). @group State */
32
+ selectedIndex: number;
33
+ /** Manually sets the focused index. @group Methods */
34
+ setSelectedIndex: import('react').Dispatch<import('react').SetStateAction<number>>;
35
+ };
36
+ export {};
@@ -0,0 +1,14 @@
1
+ export interface KeyboardShortcutConfig {
2
+ key: string;
3
+ ctrl?: boolean;
4
+ meta?: boolean;
5
+ shift?: boolean;
6
+ alt?: boolean;
7
+ handler: (event: KeyboardEvent) => void;
8
+ preventDefault?: boolean;
9
+ }
10
+ /**
11
+ * Hook for registering keyboard shortcuts
12
+ * Automatically handles Ctrl (Windows/Linux) and Cmd (Mac) modifiers
13
+ */
14
+ export declare const useKeyboardShortcuts: (shortcuts: KeyboardShortcutConfig[]) => void;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Lifecycle event callbacks that can be shared across components.
3
+ * Used by EzTable, EzScheduler, EzTreeView for render lifecycle.
4
+ */
5
+ export interface LifecycleCallbacks {
6
+ /** Called before the component paints (synchronous with layout) */
7
+ onRenderStart?: () => void;
8
+ /** Called after the component has painted (asynchronous) */
9
+ onRenderComplete?: () => void;
10
+ }
11
+ /**
12
+ * Shared hook to handle render lifecycle events.
13
+ * - onRenderStart fires in useLayoutEffect (before browser paint)
14
+ * - onRenderComplete fires in useEffect (after browser paint)
15
+ *
16
+ * @example
17
+ * useLifecycleEvents({
18
+ * onRenderStart: () => console.log('Rendering...'),
19
+ * onRenderComplete: () => console.log('Rendered!')
20
+ * });
21
+ */
22
+ export declare const useLifecycleEvents: (callbacks: LifecycleCallbacks) => void;
@@ -0,0 +1,17 @@
1
+ interface UseLoadingStateOptions {
2
+ initialState?: boolean;
3
+ onError?: (error: any) => void;
4
+ }
5
+ /**
6
+ * Shared hook for managing loading states and lifecycle.
7
+ */
8
+ export declare function useLoadingState(options?: UseLoadingStateOptions): {
9
+ isLoading: boolean;
10
+ error: Error | null;
11
+ startLoading: () => void;
12
+ stopLoading: () => void;
13
+ setIsLoading: import('react').Dispatch<import('react').SetStateAction<boolean>>;
14
+ setError: import('react').Dispatch<import('react').SetStateAction<Error | null>>;
15
+ wrapPromise: <T>(promise: Promise<T>) => Promise<T | undefined>;
16
+ };
17
+ export {};
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Custom hook to monitor media query status.
3
+ * @param query CSS media query string (e.g., '(max-width: 768px)')
4
+ * @returns boolean indicating if the media query matches
5
+ */
6
+ export declare function useMediaQuery(query: string): boolean;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Internal hook to ensure the `NotificationService` is registered and initialized.
3
+ *
4
+ * Typically used by components that provide user feedback via snackbars or alerts.
5
+ *
6
+ * @group Hooks
7
+ */
8
+ export declare const useNotificationService: () => void;
@@ -0,0 +1,15 @@
1
+ export interface PerformanceMetrics {
2
+ renderCount: number;
3
+ lastRenderTime: number;
4
+ averageRenderTime: number;
5
+ memoryUsage?: number;
6
+ }
7
+ /**
8
+ * Hook for monitoring component performance
9
+ * Tracks render count, render time, and memory usage
10
+ */
11
+ export declare const usePerformanceMonitor: (componentName: string) => PerformanceMetrics;
12
+ /**
13
+ * Hook for tracking expensive computations
14
+ */
15
+ export declare const useComputationTime: (label: string) => void;