@burdenoff/microfe-timecampus 2026.510.104

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 (282) hide show
  1. package/README.md +12 -0
  2. package/dist/generated/global-operations.d.ts +2 -0
  3. package/dist/generated/global-operations.d.ts.map +1 -0
  4. package/dist/generated/global-types.d.ts +20716 -0
  5. package/dist/generated/global-types.d.ts.map +1 -0
  6. package/dist/generated/wspace-operations.d.ts +8527 -0
  7. package/dist/generated/wspace-operations.d.ts.map +1 -0
  8. package/dist/generated/wspace-operations.js +3913 -0
  9. package/dist/generated/wspace-operations.js.map +1 -0
  10. package/dist/generated/wspace-types.d.ts +53363 -0
  11. package/dist/generated/wspace-types.d.ts.map +1 -0
  12. package/dist/index.d.ts +6 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +6 -0
  15. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +24 -0
  16. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +1 -0
  17. package/dist/node_modules/@apollo/client/errors/utils.js +16 -0
  18. package/dist/node_modules/@apollo/client/errors/utils.js.map +1 -0
  19. package/dist/node_modules/clsx/dist/clsx.js +18 -0
  20. package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
  21. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +1674 -0
  22. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
  23. package/dist/timecampus/TimeCampusRoot.d.ts +5 -0
  24. package/dist/timecampus/TimeCampusRoot.d.ts.map +1 -0
  25. package/dist/timecampus/TimeCampusRoot.js +344 -0
  26. package/dist/timecampus/TimeCampusRoot.js.map +1 -0
  27. package/dist/timecampus/TimeCampusRoutes.d.ts +7 -0
  28. package/dist/timecampus/TimeCampusRoutes.d.ts.map +1 -0
  29. package/dist/timecampus/TimeCampusRoutes.js +227 -0
  30. package/dist/timecampus/TimeCampusRoutes.js.map +1 -0
  31. package/dist/timecampus/components/ChartCard.d.ts +19 -0
  32. package/dist/timecampus/components/ChartCard.d.ts.map +1 -0
  33. package/dist/timecampus/components/DataTable.d.ts +26 -0
  34. package/dist/timecampus/components/DataTable.d.ts.map +1 -0
  35. package/dist/timecampus/components/EmptyState.d.ts +12 -0
  36. package/dist/timecampus/components/EmptyState.d.ts.map +1 -0
  37. package/dist/timecampus/components/ErrorBoundary.d.ts +19 -0
  38. package/dist/timecampus/components/ErrorBoundary.d.ts.map +1 -0
  39. package/dist/timecampus/components/ErrorBoundary.js +52 -0
  40. package/dist/timecampus/components/ErrorBoundary.js.map +1 -0
  41. package/dist/timecampus/components/FilterBar.d.ts +26 -0
  42. package/dist/timecampus/components/FilterBar.d.ts.map +1 -0
  43. package/dist/timecampus/components/LoadingSkeleton.d.ts +10 -0
  44. package/dist/timecampus/components/LoadingSkeleton.d.ts.map +1 -0
  45. package/dist/timecampus/components/LoadingSkeleton.js +76 -0
  46. package/dist/timecampus/components/LoadingSkeleton.js.map +1 -0
  47. package/dist/timecampus/components/Modal.d.ts +14 -0
  48. package/dist/timecampus/components/Modal.d.ts.map +1 -0
  49. package/dist/timecampus/components/PageLayout.d.ts +12 -0
  50. package/dist/timecampus/components/PageLayout.d.ts.map +1 -0
  51. package/dist/timecampus/components/PageLayout.js +23 -0
  52. package/dist/timecampus/components/PageLayout.js.map +1 -0
  53. package/dist/timecampus/components/StatCard.d.ts +17 -0
  54. package/dist/timecampus/components/StatCard.d.ts.map +1 -0
  55. package/dist/timecampus/components/StatCard.js +48 -0
  56. package/dist/timecampus/components/StatCard.js.map +1 -0
  57. package/dist/timecampus/components/StatusBadge.d.ts +16 -0
  58. package/dist/timecampus/components/StatusBadge.d.ts.map +1 -0
  59. package/dist/timecampus/components/Toast.d.ts +28 -0
  60. package/dist/timecampus/components/Toast.d.ts.map +1 -0
  61. package/dist/timecampus/components/index.d.ts +14 -0
  62. package/dist/timecampus/components/index.d.ts.map +1 -0
  63. package/dist/timecampus/hooks/index.d.ts +7 -0
  64. package/dist/timecampus/hooks/index.d.ts.map +1 -0
  65. package/dist/timecampus/hooks/useToast.d.ts +17 -0
  66. package/dist/timecampus/hooks/useToast.d.ts.map +1 -0
  67. package/dist/timecampus/index.d.ts +10 -0
  68. package/dist/timecampus/index.d.ts.map +1 -0
  69. package/dist/timecampus/index.js +4 -0
  70. package/dist/timecampus/pages/HomePage.d.ts +4 -0
  71. package/dist/timecampus/pages/HomePage.d.ts.map +1 -0
  72. package/dist/timecampus/pages/HomePage.js +239 -0
  73. package/dist/timecampus/pages/HomePage.js.map +1 -0
  74. package/dist/timecampus/pages/applets/AppletStorePage.d.ts +2 -0
  75. package/dist/timecampus/pages/applets/AppletStorePage.d.ts.map +1 -0
  76. package/dist/timecampus/pages/applets/AppletStorePage.js +77 -0
  77. package/dist/timecampus/pages/applets/AppletStorePage.js.map +1 -0
  78. package/dist/timecampus/pages/applets/InstalledAppletsPage.d.ts +2 -0
  79. package/dist/timecampus/pages/applets/InstalledAppletsPage.d.ts.map +1 -0
  80. package/dist/timecampus/pages/applets/InstalledAppletsPage.js +83 -0
  81. package/dist/timecampus/pages/applets/InstalledAppletsPage.js.map +1 -0
  82. package/dist/timecampus/pages/application-usage/ApplicationUsagePage.d.ts +2 -0
  83. package/dist/timecampus/pages/application-usage/ApplicationUsagePage.d.ts.map +1 -0
  84. package/dist/timecampus/pages/application-usage/ApplicationUsagePage.js +118 -0
  85. package/dist/timecampus/pages/application-usage/ApplicationUsagePage.js.map +1 -0
  86. package/dist/timecampus/pages/application-usage/ApplicationUsageSettingsPage.d.ts +2 -0
  87. package/dist/timecampus/pages/application-usage/ApplicationUsageSettingsPage.d.ts.map +1 -0
  88. package/dist/timecampus/pages/application-usage/ApplicationUsageSettingsPage.js +129 -0
  89. package/dist/timecampus/pages/application-usage/ApplicationUsageSettingsPage.js.map +1 -0
  90. package/dist/timecampus/pages/channels/ChannelsPage.d.ts +2 -0
  91. package/dist/timecampus/pages/channels/ChannelsPage.d.ts.map +1 -0
  92. package/dist/timecampus/pages/channels/ChannelsPage.js +64 -0
  93. package/dist/timecampus/pages/channels/ChannelsPage.js.map +1 -0
  94. package/dist/timecampus/pages/client-portal/ClientPortalPage.d.ts +2 -0
  95. package/dist/timecampus/pages/client-portal/ClientPortalPage.d.ts.map +1 -0
  96. package/dist/timecampus/pages/client-portal/ClientPortalPage.js +108 -0
  97. package/dist/timecampus/pages/client-portal/ClientPortalPage.js.map +1 -0
  98. package/dist/timecampus/pages/dashboard/AnalyticsPage.d.ts +2 -0
  99. package/dist/timecampus/pages/dashboard/AnalyticsPage.d.ts.map +1 -0
  100. package/dist/timecampus/pages/dashboard/AnalyticsPage.js +91 -0
  101. package/dist/timecampus/pages/dashboard/AnalyticsPage.js.map +1 -0
  102. package/dist/timecampus/pages/dashboard/ReportsPage.d.ts +2 -0
  103. package/dist/timecampus/pages/dashboard/ReportsPage.d.ts.map +1 -0
  104. package/dist/timecampus/pages/dashboard/ReportsPage.js +102 -0
  105. package/dist/timecampus/pages/dashboard/ReportsPage.js.map +1 -0
  106. package/dist/timecampus/pages/email-tracking/EmailAnalyticsPage.d.ts +2 -0
  107. package/dist/timecampus/pages/email-tracking/EmailAnalyticsPage.d.ts.map +1 -0
  108. package/dist/timecampus/pages/email-tracking/EmailAnalyticsPage.js +73 -0
  109. package/dist/timecampus/pages/email-tracking/EmailAnalyticsPage.js.map +1 -0
  110. package/dist/timecampus/pages/email-tracking/EmailSettingsPage.d.ts +2 -0
  111. package/dist/timecampus/pages/email-tracking/EmailSettingsPage.d.ts.map +1 -0
  112. package/dist/timecampus/pages/email-tracking/EmailSettingsPage.js +138 -0
  113. package/dist/timecampus/pages/email-tracking/EmailSettingsPage.js.map +1 -0
  114. package/dist/timecampus/pages/email-tracking/EmailTrackingPage.d.ts +2 -0
  115. package/dist/timecampus/pages/email-tracking/EmailTrackingPage.d.ts.map +1 -0
  116. package/dist/timecampus/pages/email-tracking/EmailTrackingPage.js +71 -0
  117. package/dist/timecampus/pages/email-tracking/EmailTrackingPage.js.map +1 -0
  118. package/dist/timecampus/pages/expense-tracking/ExpenseTrackingPage.d.ts +2 -0
  119. package/dist/timecampus/pages/expense-tracking/ExpenseTrackingPage.d.ts.map +1 -0
  120. package/dist/timecampus/pages/expense-tracking/ExpenseTrackingPage.js +102 -0
  121. package/dist/timecampus/pages/expense-tracking/ExpenseTrackingPage.js.map +1 -0
  122. package/dist/timecampus/pages/focus-score/FocusScorePage.d.ts +2 -0
  123. package/dist/timecampus/pages/focus-score/FocusScorePage.d.ts.map +1 -0
  124. package/dist/timecampus/pages/focus-score/FocusScorePage.js +131 -0
  125. package/dist/timecampus/pages/focus-score/FocusScorePage.js.map +1 -0
  126. package/dist/timecampus/pages/focus-score/FocusScoreSettingsPage.d.ts +2 -0
  127. package/dist/timecampus/pages/focus-score/FocusScoreSettingsPage.d.ts.map +1 -0
  128. package/dist/timecampus/pages/focus-score/FocusScoreSettingsPage.js +115 -0
  129. package/dist/timecampus/pages/focus-score/FocusScoreSettingsPage.js.map +1 -0
  130. package/dist/timecampus/pages/geofencing/GeofencingPage.d.ts +2 -0
  131. package/dist/timecampus/pages/geofencing/GeofencingPage.d.ts.map +1 -0
  132. package/dist/timecampus/pages/geofencing/GeofencingPage.js +70 -0
  133. package/dist/timecampus/pages/geofencing/GeofencingPage.js.map +1 -0
  134. package/dist/timecampus/pages/geofencing/GeofencingSettingsPage.d.ts +2 -0
  135. package/dist/timecampus/pages/geofencing/GeofencingSettingsPage.d.ts.map +1 -0
  136. package/dist/timecampus/pages/geofencing/GeofencingSettingsPage.js +106 -0
  137. package/dist/timecampus/pages/geofencing/GeofencingSettingsPage.js.map +1 -0
  138. package/dist/timecampus/pages/industry-solutions/IndustrySolutionsPage.d.ts +2 -0
  139. package/dist/timecampus/pages/industry-solutions/IndustrySolutionsPage.d.ts.map +1 -0
  140. package/dist/timecampus/pages/industry-solutions/IndustrySolutionsPage.js +77 -0
  141. package/dist/timecampus/pages/industry-solutions/IndustrySolutionsPage.js.map +1 -0
  142. package/dist/timecampus/pages/location-tracking/LocationPrivacySettingsPage.d.ts +2 -0
  143. package/dist/timecampus/pages/location-tracking/LocationPrivacySettingsPage.d.ts.map +1 -0
  144. package/dist/timecampus/pages/location-tracking/LocationPrivacySettingsPage.js +115 -0
  145. package/dist/timecampus/pages/location-tracking/LocationPrivacySettingsPage.js.map +1 -0
  146. package/dist/timecampus/pages/location-tracking/LocationTrackingPage.d.ts +2 -0
  147. package/dist/timecampus/pages/location-tracking/LocationTrackingPage.d.ts.map +1 -0
  148. package/dist/timecampus/pages/location-tracking/LocationTrackingPage.js +97 -0
  149. package/dist/timecampus/pages/location-tracking/LocationTrackingPage.js.map +1 -0
  150. package/dist/timecampus/pages/meetings/MeetingAnalyticsPage.d.ts +2 -0
  151. package/dist/timecampus/pages/meetings/MeetingAnalyticsPage.d.ts.map +1 -0
  152. package/dist/timecampus/pages/meetings/MeetingAnalyticsPage.js +89 -0
  153. package/dist/timecampus/pages/meetings/MeetingAnalyticsPage.js.map +1 -0
  154. package/dist/timecampus/pages/meetings/MeetingCreatePage.d.ts +2 -0
  155. package/dist/timecampus/pages/meetings/MeetingCreatePage.d.ts.map +1 -0
  156. package/dist/timecampus/pages/meetings/MeetingCreatePage.js +101 -0
  157. package/dist/timecampus/pages/meetings/MeetingCreatePage.js.map +1 -0
  158. package/dist/timecampus/pages/meetings/MeetingDetailPage.d.ts +2 -0
  159. package/dist/timecampus/pages/meetings/MeetingDetailPage.d.ts.map +1 -0
  160. package/dist/timecampus/pages/meetings/MeetingDetailPage.js +123 -0
  161. package/dist/timecampus/pages/meetings/MeetingDetailPage.js.map +1 -0
  162. package/dist/timecampus/pages/meetings/MeetingsPage.d.ts +2 -0
  163. package/dist/timecampus/pages/meetings/MeetingsPage.d.ts.map +1 -0
  164. package/dist/timecampus/pages/meetings/MeetingsPage.js +90 -0
  165. package/dist/timecampus/pages/meetings/MeetingsPage.js.map +1 -0
  166. package/dist/timecampus/pages/pomodoro/PomodoroAnalyticsPage.d.ts +2 -0
  167. package/dist/timecampus/pages/pomodoro/PomodoroAnalyticsPage.d.ts.map +1 -0
  168. package/dist/timecampus/pages/pomodoro/PomodoroAnalyticsPage.js +113 -0
  169. package/dist/timecampus/pages/pomodoro/PomodoroAnalyticsPage.js.map +1 -0
  170. package/dist/timecampus/pages/pomodoro/PomodoroPage.d.ts +2 -0
  171. package/dist/timecampus/pages/pomodoro/PomodoroPage.d.ts.map +1 -0
  172. package/dist/timecampus/pages/pomodoro/PomodoroPage.js +160 -0
  173. package/dist/timecampus/pages/pomodoro/PomodoroPage.js.map +1 -0
  174. package/dist/timecampus/pages/pomodoro/PomodoroSettingsPage.d.ts +2 -0
  175. package/dist/timecampus/pages/pomodoro/PomodoroSettingsPage.d.ts.map +1 -0
  176. package/dist/timecampus/pages/pomodoro/PomodoroSettingsPage.js +176 -0
  177. package/dist/timecampus/pages/pomodoro/PomodoroSettingsPage.js.map +1 -0
  178. package/dist/timecampus/pages/projects/ProjectCreatePage.d.ts +2 -0
  179. package/dist/timecampus/pages/projects/ProjectCreatePage.d.ts.map +1 -0
  180. package/dist/timecampus/pages/projects/ProjectCreatePage.js +104 -0
  181. package/dist/timecampus/pages/projects/ProjectCreatePage.js.map +1 -0
  182. package/dist/timecampus/pages/projects/ProjectDetailPage.d.ts +2 -0
  183. package/dist/timecampus/pages/projects/ProjectDetailPage.d.ts.map +1 -0
  184. package/dist/timecampus/pages/projects/ProjectDetailPage.js +91 -0
  185. package/dist/timecampus/pages/projects/ProjectDetailPage.js.map +1 -0
  186. package/dist/timecampus/pages/projects/ProjectsPage.d.ts +2 -0
  187. package/dist/timecampus/pages/projects/ProjectsPage.d.ts.map +1 -0
  188. package/dist/timecampus/pages/projects/ProjectsPage.js +95 -0
  189. package/dist/timecampus/pages/projects/ProjectsPage.js.map +1 -0
  190. package/dist/timecampus/pages/projects/TasksPage.d.ts +2 -0
  191. package/dist/timecampus/pages/projects/TasksPage.d.ts.map +1 -0
  192. package/dist/timecampus/pages/projects/TasksPage.js +73 -0
  193. package/dist/timecampus/pages/projects/TasksPage.js.map +1 -0
  194. package/dist/timecampus/pages/resource-planning/ResourcePlanningPage.d.ts +2 -0
  195. package/dist/timecampus/pages/resource-planning/ResourcePlanningPage.d.ts.map +1 -0
  196. package/dist/timecampus/pages/resource-planning/ResourcePlanningPage.js +129 -0
  197. package/dist/timecampus/pages/resource-planning/ResourcePlanningPage.js.map +1 -0
  198. package/dist/timecampus/pages/team/TeamAnalyticsPage.d.ts +2 -0
  199. package/dist/timecampus/pages/team/TeamAnalyticsPage.d.ts.map +1 -0
  200. package/dist/timecampus/pages/team/TeamAnalyticsPage.js +78 -0
  201. package/dist/timecampus/pages/team/TeamAnalyticsPage.js.map +1 -0
  202. package/dist/timecampus/pages/team/TeamMembersPage.d.ts +2 -0
  203. package/dist/timecampus/pages/team/TeamMembersPage.d.ts.map +1 -0
  204. package/dist/timecampus/pages/team/TeamMembersPage.js +97 -0
  205. package/dist/timecampus/pages/team/TeamMembersPage.js.map +1 -0
  206. package/dist/timecampus/pages/team/TeamPage.d.ts +2 -0
  207. package/dist/timecampus/pages/team/TeamPage.d.ts.map +1 -0
  208. package/dist/timecampus/pages/team/TeamPage.js +82 -0
  209. package/dist/timecampus/pages/team/TeamPage.js.map +1 -0
  210. package/dist/timecampus/pages/team-activity/TeamActivityPage.d.ts +2 -0
  211. package/dist/timecampus/pages/team-activity/TeamActivityPage.d.ts.map +1 -0
  212. package/dist/timecampus/pages/team-activity/TeamActivityPage.js +107 -0
  213. package/dist/timecampus/pages/team-activity/TeamActivityPage.js.map +1 -0
  214. package/dist/timecampus/pages/team-activity/TeamActivitySettingsPage.d.ts +2 -0
  215. package/dist/timecampus/pages/team-activity/TeamActivitySettingsPage.d.ts.map +1 -0
  216. package/dist/timecampus/pages/team-activity/TeamActivitySettingsPage.js +120 -0
  217. package/dist/timecampus/pages/team-activity/TeamActivitySettingsPage.js.map +1 -0
  218. package/dist/timecampus/pages/templates/TemplateApplicationPage.d.ts +2 -0
  219. package/dist/timecampus/pages/templates/TemplateApplicationPage.d.ts.map +1 -0
  220. package/dist/timecampus/pages/templates/TemplateApplicationPage.js +84 -0
  221. package/dist/timecampus/pages/templates/TemplateApplicationPage.js.map +1 -0
  222. package/dist/timecampus/pages/templates/TemplateDetailPage.d.ts +2 -0
  223. package/dist/timecampus/pages/templates/TemplateDetailPage.d.ts.map +1 -0
  224. package/dist/timecampus/pages/templates/TemplateDetailPage.js +98 -0
  225. package/dist/timecampus/pages/templates/TemplateDetailPage.js.map +1 -0
  226. package/dist/timecampus/pages/templates/TemplatesPage.d.ts +2 -0
  227. package/dist/timecampus/pages/templates/TemplatesPage.d.ts.map +1 -0
  228. package/dist/timecampus/pages/templates/TemplatesPage.js +76 -0
  229. package/dist/timecampus/pages/templates/TemplatesPage.js.map +1 -0
  230. package/dist/timecampus/pages/time/TimeEntriesPage.d.ts +2 -0
  231. package/dist/timecampus/pages/time/TimeEntriesPage.d.ts.map +1 -0
  232. package/dist/timecampus/pages/time/TimeEntriesPage.js +117 -0
  233. package/dist/timecampus/pages/time/TimeEntriesPage.js.map +1 -0
  234. package/dist/timecampus/pages/time/TimeTrackingPage.d.ts +2 -0
  235. package/dist/timecampus/pages/time/TimeTrackingPage.d.ts.map +1 -0
  236. package/dist/timecampus/pages/time/TimeTrackingPage.js +112 -0
  237. package/dist/timecampus/pages/time/TimeTrackingPage.js.map +1 -0
  238. package/dist/timecampus/pages/time/TimerPage.d.ts +2 -0
  239. package/dist/timecampus/pages/time/TimerPage.d.ts.map +1 -0
  240. package/dist/timecampus/pages/time/TimerPage.js +80 -0
  241. package/dist/timecampus/pages/time/TimerPage.js.map +1 -0
  242. package/dist/timecampus/pages/time-approval/TimeApprovalPage.d.ts +2 -0
  243. package/dist/timecampus/pages/time-approval/TimeApprovalPage.d.ts.map +1 -0
  244. package/dist/timecampus/pages/time-approval/TimeApprovalPage.js +130 -0
  245. package/dist/timecampus/pages/time-approval/TimeApprovalPage.js.map +1 -0
  246. package/dist/timecampus/pages/widgets/WidgetDetailPage.d.ts +2 -0
  247. package/dist/timecampus/pages/widgets/WidgetDetailPage.d.ts.map +1 -0
  248. package/dist/timecampus/pages/widgets/WidgetDetailPage.js +96 -0
  249. package/dist/timecampus/pages/widgets/WidgetDetailPage.js.map +1 -0
  250. package/dist/timecampus/pages/widgets/WidgetsPage.d.ts +2 -0
  251. package/dist/timecampus/pages/widgets/WidgetsPage.d.ts.map +1 -0
  252. package/dist/timecampus/pages/widgets/WidgetsPage.js +77 -0
  253. package/dist/timecampus/pages/widgets/WidgetsPage.js.map +1 -0
  254. package/dist/timecampus/pages/work-patterns/WorkPatternsPage.d.ts +2 -0
  255. package/dist/timecampus/pages/work-patterns/WorkPatternsPage.d.ts.map +1 -0
  256. package/dist/timecampus/pages/work-patterns/WorkPatternsPage.js +95 -0
  257. package/dist/timecampus/pages/work-patterns/WorkPatternsPage.js.map +1 -0
  258. package/dist/timecampus/pages/work-patterns/WorkPatternsSettingsPage.d.ts +2 -0
  259. package/dist/timecampus/pages/work-patterns/WorkPatternsSettingsPage.d.ts.map +1 -0
  260. package/dist/timecampus/pages/work-patterns/WorkPatternsSettingsPage.js +129 -0
  261. package/dist/timecampus/pages/work-patterns/WorkPatternsSettingsPage.js.map +1 -0
  262. package/dist/timecampus/pages/workflows/WorkflowsPage.d.ts +2 -0
  263. package/dist/timecampus/pages/workflows/WorkflowsPage.d.ts.map +1 -0
  264. package/dist/timecampus/pages/workflows/WorkflowsPage.js +80 -0
  265. package/dist/timecampus/pages/workflows/WorkflowsPage.js.map +1 -0
  266. package/dist/timecampus/providers/TimeCampusProvider.d.ts +29 -0
  267. package/dist/timecampus/providers/TimeCampusProvider.d.ts.map +1 -0
  268. package/dist/timecampus/providers/TimeCampusProvider.js +92 -0
  269. package/dist/timecampus/providers/TimeCampusProvider.js.map +1 -0
  270. package/dist/timecampus/store/timecampusStore.d.ts +71 -0
  271. package/dist/timecampus/store/timecampusStore.d.ts.map +1 -0
  272. package/dist/timecampus/store/timecampusStore.js +33 -0
  273. package/dist/timecampus/store/timecampusStore.js.map +1 -0
  274. package/dist/timecampus/types/index.d.ts +615 -0
  275. package/dist/timecampus/types/index.d.ts.map +1 -0
  276. package/dist/timecampus/utils/helpers.d.ts +19 -0
  277. package/dist/timecampus/utils/helpers.d.ts.map +1 -0
  278. package/dist/timecampus/utils/helpers.js +73 -0
  279. package/dist/timecampus/utils/helpers.js.map +1 -0
  280. package/dist/timecampus/utils/index.d.ts +2 -0
  281. package/dist/timecampus/utils/index.d.ts.map +1 -0
  282. package/package.json +110 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeCampusRoutes.js","names":[],"sources":["../../src/timecampus/TimeCampusRoutes.tsx"],"sourcesContent":["/**\n * TimeCampus Routes\n * All route definitions with lazy loading.\n * @module timecampus\n */\n\nimport { lazy, Suspense } from \"react\";\nimport { Routes, Route, Navigate } from \"react-router-dom\";\nimport { Spinner } from \"@burdenoff/fe-libs/ui\";\n\n// Eagerly load the home page\nimport { HomePage } from \"./pages/HomePage\";\n\n// Loading fallback\nfunction PageLoader() {\n return (\n <div className=\"flex items-center justify-center min-h-[400px]\">\n <Spinner className=\"h-8 w-8\" />\n </div>\n );\n}\n\n// ── Dashboard / Analytics / Reports ─────────────────────────────────────────\nconst AnalyticsPage = lazy(() =>\n import(\"./pages/dashboard/AnalyticsPage\").then((m) => ({\n default: m.AnalyticsPage,\n })),\n);\nconst ReportsPage = lazy(() =>\n import(\"./pages/dashboard/ReportsPage\").then((m) => ({\n default: m.ReportsPage,\n })),\n);\n\n// ── Time Tracking ───────────────────────────────────────────────────────────\nconst TimeTrackingPage = lazy(() =>\n import(\"./pages/time/TimeTrackingPage\").then((m) => ({\n default: m.TimeTrackingPage,\n })),\n);\nconst TimerPage = lazy(() =>\n import(\"./pages/time/TimerPage\").then((m) => ({ default: m.TimerPage })),\n);\nconst TimeEntriesPage = lazy(() =>\n import(\"./pages/time/TimeEntriesPage\").then((m) => ({\n default: m.TimeEntriesPage,\n })),\n);\n\n// ── Projects ────────────────────────────────────────────────────────────────\nconst ProjectsPage = lazy(() =>\n import(\"./pages/projects/ProjectsPage\").then((m) => ({\n default: m.ProjectsPage,\n })),\n);\nconst ProjectCreatePage = lazy(() =>\n import(\"./pages/projects/ProjectCreatePage\").then((m) => ({\n default: m.ProjectCreatePage,\n })),\n);\nconst ProjectDetailPage = lazy(() =>\n import(\"./pages/projects/ProjectDetailPage\").then((m) => ({\n default: m.ProjectDetailPage,\n })),\n);\nconst TasksPage = lazy(() =>\n import(\"./pages/projects/TasksPage\").then((m) => ({ default: m.TasksPage })),\n);\n\n// ── Team ────────────────────────────────────────────────────────────────────\nconst TeamPage = lazy(() =>\n import(\"./pages/team/TeamPage\").then((m) => ({ default: m.TeamPage })),\n);\nconst TeamMembersPage = lazy(() =>\n import(\"./pages/team/TeamMembersPage\").then((m) => ({\n default: m.TeamMembersPage,\n })),\n);\nconst TeamAnalyticsPage = lazy(() =>\n import(\"./pages/team/TeamAnalyticsPage\").then((m) => ({\n default: m.TeamAnalyticsPage,\n })),\n);\n\n// ── Pomodoro ────────────────────────────────────────────────────────────────\nconst PomodoroPage = lazy(() =>\n import(\"./pages/pomodoro/PomodoroPage\").then((m) => ({\n default: m.PomodoroPage,\n })),\n);\nconst PomodoroAnalyticsPage = lazy(() =>\n import(\"./pages/pomodoro/PomodoroAnalyticsPage\").then((m) => ({\n default: m.PomodoroAnalyticsPage,\n })),\n);\nconst PomodoroSettingsPage = lazy(() =>\n import(\"./pages/pomodoro/PomodoroSettingsPage\").then((m) => ({\n default: m.PomodoroSettingsPage,\n })),\n);\n\n// ── Meetings ────────────────────────────────────────────────────────────────\nconst MeetingsPage = lazy(() =>\n import(\"./pages/meetings/MeetingsPage\").then((m) => ({\n default: m.MeetingsPage,\n })),\n);\nconst MeetingCreatePage = lazy(() =>\n import(\"./pages/meetings/MeetingCreatePage\").then((m) => ({\n default: m.MeetingCreatePage,\n })),\n);\nconst MeetingDetailPage = lazy(() =>\n import(\"./pages/meetings/MeetingDetailPage\").then((m) => ({\n default: m.MeetingDetailPage,\n })),\n);\nconst MeetingAnalyticsPage = lazy(() =>\n import(\"./pages/meetings/MeetingAnalyticsPage\").then((m) => ({\n default: m.MeetingAnalyticsPage,\n })),\n);\n\n// ── Email Tracking ──────────────────────────────────────────────────────────\nconst EmailTrackingPage = lazy(() =>\n import(\"./pages/email-tracking/EmailTrackingPage\").then((m) => ({\n default: m.EmailTrackingPage,\n })),\n);\nconst EmailAnalyticsPage = lazy(() =>\n import(\"./pages/email-tracking/EmailAnalyticsPage\").then((m) => ({\n default: m.EmailAnalyticsPage,\n })),\n);\nconst EmailSettingsPage = lazy(() =>\n import(\"./pages/email-tracking/EmailSettingsPage\").then((m) => ({\n default: m.EmailSettingsPage,\n })),\n);\n\n// ── Work Patterns ───────────────────────────────────────────────────────────\nconst WorkPatternsPage = lazy(() =>\n import(\"./pages/work-patterns/WorkPatternsPage\").then((m) => ({\n default: m.WorkPatternsPage,\n })),\n);\nconst WorkPatternsSettingsPage = lazy(() =>\n import(\"./pages/work-patterns/WorkPatternsSettingsPage\").then((m) => ({\n default: m.WorkPatternsSettingsPage,\n })),\n);\n\n// ── Application Usage ───────────────────────────────────────────────────────\nconst ApplicationUsagePage = lazy(() =>\n import(\"./pages/application-usage/ApplicationUsagePage\").then((m) => ({\n default: m.ApplicationUsagePage,\n })),\n);\nconst ApplicationUsageSettingsPage = lazy(() =>\n import(\"./pages/application-usage/ApplicationUsageSettingsPage\").then(\n (m) => ({ default: m.ApplicationUsageSettingsPage }),\n ),\n);\n\n// ── Focus Score ─────────────────────────────────────────────────────────────\nconst FocusScorePage = lazy(() =>\n import(\"./pages/focus-score/FocusScorePage\").then((m) => ({\n default: m.FocusScorePage,\n })),\n);\nconst FocusScoreSettingsPage = lazy(() =>\n import(\"./pages/focus-score/FocusScoreSettingsPage\").then((m) => ({\n default: m.FocusScoreSettingsPage,\n })),\n);\n\n// ── Location Tracking ───────────────────────────────────────────────────────\nconst LocationTrackingPage = lazy(() =>\n import(\"./pages/location-tracking/LocationTrackingPage\").then((m) => ({\n default: m.LocationTrackingPage,\n })),\n);\nconst LocationPrivacySettingsPage = lazy(() =>\n import(\"./pages/location-tracking/LocationPrivacySettingsPage\").then((m) => ({\n default: m.LocationPrivacySettingsPage,\n })),\n);\n\n// ── Geofencing ──────────────────────────────────────────────────────────────\nconst GeofencingPage = lazy(() =>\n import(\"./pages/geofencing/GeofencingPage\").then((m) => ({\n default: m.GeofencingPage,\n })),\n);\nconst GeofencingSettingsPage = lazy(() =>\n import(\"./pages/geofencing/GeofencingSettingsPage\").then((m) => ({\n default: m.GeofencingSettingsPage,\n })),\n);\n\n// ── Team Activity ───────────────────────────────────────────────────────────\nconst TeamActivityPage = lazy(() =>\n import(\"./pages/team-activity/TeamActivityPage\").then((m) => ({\n default: m.TeamActivityPage,\n })),\n);\nconst TeamActivitySettingsPage = lazy(() =>\n import(\"./pages/team-activity/TeamActivitySettingsPage\").then((m) => ({\n default: m.TeamActivitySettingsPage,\n })),\n);\n\n// ── Resource Planning ───────────────────────────────────────────────────────\nconst ResourcePlanningPage = lazy(() =>\n import(\"./pages/resource-planning/ResourcePlanningPage\").then((m) => ({\n default: m.ResourcePlanningPage,\n })),\n);\n\n// ── Time Approval ───────────────────────────────────────────────────────────\nconst TimeApprovalPage = lazy(() =>\n import(\"./pages/time-approval/TimeApprovalPage\").then((m) => ({\n default: m.TimeApprovalPage,\n })),\n);\n\n// ── Expense Tracking ────────────────────────────────────────────────────────\nconst ExpenseTrackingPage = lazy(() =>\n import(\"./pages/expense-tracking/ExpenseTrackingPage\").then((m) => ({\n default: m.ExpenseTrackingPage,\n })),\n);\n\n// ── Client Portal ───────────────────────────────────────────────────────────\nconst ClientPortalPage = lazy(() =>\n import(\"./pages/client-portal/ClientPortalPage\").then((m) => ({\n default: m.ClientPortalPage,\n })),\n);\n\n// ── Channels ────────────────────────────────────────────────────────────────\nconst ChannelsPage = lazy(() =>\n import(\"./pages/channels/ChannelsPage\").then((m) => ({\n default: m.ChannelsPage,\n })),\n);\n\n// ── Widgets ─────────────────────────────────────────────────────────────────\nconst WidgetsPage = lazy(() =>\n import(\"./pages/widgets/WidgetsPage\").then((m) => ({\n default: m.WidgetsPage,\n })),\n);\nconst WidgetDetailPage = lazy(() =>\n import(\"./pages/widgets/WidgetDetailPage\").then((m) => ({\n default: m.WidgetDetailPage,\n })),\n);\n\n// ── Workflows ───────────────────────────────────────────────────────────────\nconst WorkflowsPage = lazy(() =>\n import(\"./pages/workflows/WorkflowsPage\").then((m) => ({\n default: m.WorkflowsPage,\n })),\n);\n\n// ── Applets ─────────────────────────────────────────────────────────────────\nconst InstalledAppletsPage = lazy(() =>\n import(\"./pages/applets/InstalledAppletsPage\").then((m) => ({\n default: m.InstalledAppletsPage,\n })),\n);\nconst AppletStorePage = lazy(() =>\n import(\"./pages/applets/AppletStorePage\").then((m) => ({\n default: m.AppletStorePage,\n })),\n);\n\n// ── Templates ───────────────────────────────────────────────────────────────\nconst TemplatesPage = lazy(() =>\n import(\"./pages/templates/TemplatesPage\").then((m) => ({\n default: m.TemplatesPage,\n })),\n);\nconst TemplateDetailPage = lazy(() =>\n import(\"./pages/templates/TemplateDetailPage\").then((m) => ({\n default: m.TemplateDetailPage,\n })),\n);\nconst TemplateApplicationPage = lazy(() =>\n import(\"./pages/templates/TemplateApplicationPage\").then((m) => ({\n default: m.TemplateApplicationPage,\n })),\n);\n\n// ── Industry Solutions ──────────────────────────────────────────────────────\nconst IndustrySolutionsPage = lazy(() =>\n import(\"./pages/industry-solutions/IndustrySolutionsPage\").then((m) => ({\n default: m.IndustrySolutionsPage,\n })),\n);\n\n// ============================================================================\n// Routes\n// ============================================================================\n\nexport function TimeCampusRoutes() {\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n {/* Dashboard */}\n <Route index element={<HomePage />} />\n <Route path=\"analytics\" element={<AnalyticsPage />} />\n <Route path=\"reports\" element={<ReportsPage />} />\n\n {/* Time Tracking */}\n <Route path=\"time\" element={<TimeTrackingPage />} />\n <Route path=\"time/timer\" element={<TimerPage />} />\n <Route path=\"time/entries\" element={<TimeEntriesPage />} />\n\n {/* Projects */}\n <Route path=\"projects\" element={<ProjectsPage />} />\n <Route path=\"projects/new\" element={<ProjectCreatePage />} />\n <Route path=\"projects/:projectId\" element={<ProjectDetailPage />} />\n <Route path=\"projects/:projectId/tasks\" element={<TasksPage />} />\n\n {/* Team */}\n <Route path=\"team\" element={<TeamPage />} />\n <Route path=\"team/members\" element={<TeamMembersPage />} />\n <Route path=\"team/analytics\" element={<TeamAnalyticsPage />} />\n\n {/* Pomodoro */}\n <Route path=\"pomodoro\" element={<PomodoroPage />} />\n <Route path=\"pomodoro/analytics\" element={<PomodoroAnalyticsPage />} />\n <Route path=\"pomodoro/settings\" element={<PomodoroSettingsPage />} />\n\n {/* Meetings */}\n <Route path=\"meetings\" element={<MeetingsPage />} />\n <Route path=\"meetings/new\" element={<MeetingCreatePage />} />\n <Route path=\"meetings/:id\" element={<MeetingDetailPage />} />\n <Route path=\"meetings/analytics\" element={<MeetingAnalyticsPage />} />\n\n {/* Email Tracking */}\n <Route path=\"email-tracking\" element={<EmailTrackingPage />} />\n <Route\n path=\"email-tracking/analytics\"\n element={<EmailAnalyticsPage />}\n />\n <Route path=\"email-tracking/settings\" element={<EmailSettingsPage />} />\n\n {/* Work Patterns */}\n <Route path=\"work-patterns\" element={<WorkPatternsPage />} />\n <Route\n path=\"work-patterns/settings\"\n element={<WorkPatternsSettingsPage />}\n />\n\n {/* Application Usage */}\n <Route path=\"application-usage\" element={<ApplicationUsagePage />} />\n <Route\n path=\"application-usage/settings\"\n element={<ApplicationUsageSettingsPage />}\n />\n\n {/* Focus Score */}\n <Route path=\"focus-score\" element={<FocusScorePage />} />\n <Route\n path=\"focus-score/settings\"\n element={<FocusScoreSettingsPage />}\n />\n\n {/* Location Tracking */}\n <Route path=\"location-tracking\" element={<LocationTrackingPage />} />\n <Route\n path=\"location-tracking/privacy-settings\"\n element={<LocationPrivacySettingsPage />}\n />\n\n {/* Geofencing */}\n <Route path=\"geofencing\" element={<GeofencingPage />} />\n <Route\n path=\"geofencing/settings\"\n element={<GeofencingSettingsPage />}\n />\n\n {/* Team Activity */}\n <Route path=\"team-activity\" element={<TeamActivityPage />} />\n <Route\n path=\"team-activity/settings\"\n element={<TeamActivitySettingsPage />}\n />\n\n {/* Resource Planning */}\n <Route path=\"resource-planning\" element={<ResourcePlanningPage />} />\n\n {/* Time Approval */}\n <Route path=\"time-approval\" element={<TimeApprovalPage />} />\n\n {/* Expense Tracking */}\n <Route path=\"expense-tracking\" element={<ExpenseTrackingPage />} />\n\n {/* Client Portal */}\n <Route path=\"client-portal\" element={<ClientPortalPage />} />\n\n {/* Channels */}\n <Route path=\"channels\" element={<ChannelsPage />} />\n\n {/* Widgets */}\n <Route path=\"widgets\" element={<WidgetsPage />} />\n <Route path=\"widgets/:id\" element={<WidgetDetailPage />} />\n\n {/* Workflows */}\n <Route path=\"workflows\" element={<WorkflowsPage />} />\n\n {/* Applets */}\n <Route path=\"applets\" element={<InstalledAppletsPage />} />\n <Route path=\"applets/store\" element={<AppletStorePage />} />\n\n {/* Templates */}\n <Route path=\"templates\" element={<TemplatesPage />} />\n <Route path=\"templates/:id\" element={<TemplateDetailPage />} />\n <Route\n path=\"templates/apply/:applicationId\"\n element={<TemplateApplicationPage />}\n />\n\n {/* Industry Solutions */}\n <Route path=\"industry-solutions\" element={<IndustrySolutionsPage />} />\n\n {/* Catch-all: redirect to dashboard */}\n <Route path=\"*\" element={<Navigate to=\"\" replace />} />\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":";;;;;;AAcA,SAAS,IAAa;AACpB,QACE,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD,EAAS,WAAU,WAAY,CAAA;EAC3B,CAAA;;AAKV,IAAM,IAAgB,QACpB,OAAO,sCAAmC,MAAM,OAAO,EACrD,SAAS,EAAE,eACZ,EAAE,CACJ,EACK,IAAc,QAClB,OAAO,oCAAiC,MAAM,OAAO,EACnD,SAAS,EAAE,aACZ,EAAE,CACJ,EAGK,IAAmB,QACvB,OAAO,oCAAiC,MAAM,OAAO,EACnD,SAAS,EAAE,kBACZ,EAAE,CACJ,EACK,IAAY,QAChB,OAAO,6BAA0B,MAAM,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CACzE,EACK,IAAkB,QACtB,OAAO,mCAAgC,MAAM,OAAO,EAClD,SAAS,EAAE,iBACZ,EAAE,CACJ,EAGK,IAAe,QACnB,OAAO,oCAAiC,MAAM,OAAO,EACnD,SAAS,EAAE,cACZ,EAAE,CACJ,EACK,IAAoB,QACxB,OAAO,yCAAsC,MAAM,OAAO,EACxD,SAAS,EAAE,mBACZ,EAAE,CACJ,EACK,IAAoB,QACxB,OAAO,yCAAsC,MAAM,OAAO,EACxD,SAAS,EAAE,mBACZ,EAAE,CACJ,EACK,IAAY,QAChB,OAAO,iCAA8B,MAAM,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAC7E,EAGK,IAAW,QACf,OAAO,4BAAyB,MAAM,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CACvE,EACK,IAAkB,QACtB,OAAO,mCAAgC,MAAM,OAAO,EAClD,SAAS,EAAE,iBACZ,EAAE,CACJ,EACK,IAAoB,QACxB,OAAO,qCAAkC,MAAM,OAAO,EACpD,SAAS,EAAE,mBACZ,EAAE,CACJ,EAGK,IAAe,QACnB,OAAO,oCAAiC,MAAM,OAAO,EACnD,SAAS,EAAE,cACZ,EAAE,CACJ,EACK,IAAwB,QAC5B,OAAO,6CAA0C,MAAM,OAAO,EAC5D,SAAS,EAAE,uBACZ,EAAE,CACJ,EACK,IAAuB,QAC3B,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,sBACZ,EAAE,CACJ,EAGK,IAAe,QACnB,OAAO,oCAAiC,MAAM,OAAO,EACnD,SAAS,EAAE,cACZ,EAAE,CACJ,EACK,IAAoB,QACxB,OAAO,yCAAsC,MAAM,OAAO,EACxD,SAAS,EAAE,mBACZ,EAAE,CACJ,EACK,IAAoB,QACxB,OAAO,yCAAsC,MAAM,OAAO,EACxD,SAAS,EAAE,mBACZ,EAAE,CACJ,EACK,IAAuB,QAC3B,OAAO,4CAAyC,MAAM,OAAO,EAC3D,SAAS,EAAE,sBACZ,EAAE,CACJ,EAGK,KAAoB,QACxB,OAAO,+CAA4C,MAAM,OAAO,EAC9D,SAAS,EAAE,mBACZ,EAAE,CACJ,EACK,IAAqB,QACzB,OAAO,gDAA6C,MAAM,OAAO,EAC/D,SAAS,EAAE,oBACZ,EAAE,CACJ,EACK,IAAoB,QACxB,OAAO,+CAA4C,MAAM,OAAO,EAC9D,SAAS,EAAE,mBACZ,EAAE,CACJ,EAGK,IAAmB,QACvB,OAAO,6CAA0C,MAAM,OAAO,EAC5D,SAAS,EAAE,kBACZ,EAAE,CACJ,EACK,IAA2B,QAC/B,OAAO,qDAAkD,MAAM,OAAO,EACpE,SAAS,EAAE,0BACZ,EAAE,CACJ,EAGK,IAAuB,QAC3B,OAAO,qDAAkD,MAAM,OAAO,EACpE,SAAS,EAAE,sBACZ,EAAE,CACJ,EACK,IAA+B,QACnC,OAAO,6DAA0D,MAC9D,OAAO,EAAE,SAAS,EAAE,8BAA8B,EACpD,CACF,EAGK,IAAiB,QACrB,OAAO,yCAAsC,MAAM,OAAO,EACxD,SAAS,EAAE,gBACZ,EAAE,CACJ,EACK,IAAyB,QAC7B,OAAO,iDAA8C,MAAM,OAAO,EAChE,SAAS,EAAE,wBACZ,EAAE,CACJ,EAGK,IAAuB,QAC3B,OAAO,qDAAkD,MAAM,OAAO,EACpE,SAAS,EAAE,sBACZ,EAAE,CACJ,EACK,IAA8B,QAClC,OAAO,4DAAyD,MAAM,OAAO,EAC3E,SAAS,EAAE,6BACZ,EAAE,CACJ,EAGK,IAAiB,QACrB,OAAO,wCAAqC,MAAM,OAAO,EACvD,SAAS,EAAE,gBACZ,EAAE,CACJ,EACK,IAAyB,QAC7B,OAAO,gDAA6C,MAAM,OAAO,EAC/D,SAAS,EAAE,wBACZ,EAAE,CACJ,EAGK,IAAmB,QACvB,OAAO,6CAA0C,MAAM,OAAO,EAC5D,SAAS,EAAE,kBACZ,EAAE,CACJ,EACK,IAA2B,QAC/B,OAAO,qDAAkD,MAAM,OAAO,EACpE,SAAS,EAAE,0BACZ,EAAE,CACJ,EAGK,IAAuB,QAC3B,OAAO,qDAAkD,MAAM,OAAO,EACpE,SAAS,EAAE,sBACZ,EAAE,CACJ,EAGK,IAAmB,QACvB,OAAO,6CAA0C,MAAM,OAAO,EAC5D,SAAS,EAAE,kBACZ,EAAE,CACJ,EAGK,IAAsB,QAC1B,OAAO,mDAAgD,MAAM,OAAO,EAClE,SAAS,EAAE,qBACZ,EAAE,CACJ,EAGK,IAAmB,QACvB,OAAO,6CAA0C,MAAM,OAAO,EAC5D,SAAS,EAAE,kBACZ,EAAE,CACJ,EAGK,IAAe,QACnB,OAAO,oCAAiC,MAAM,OAAO,EACnD,SAAS,EAAE,cACZ,EAAE,CACJ,EAGK,IAAc,QAClB,OAAO,kCAA+B,MAAM,OAAO,EACjD,SAAS,EAAE,aACZ,EAAE,CACJ,EACK,IAAmB,QACvB,OAAO,uCAAoC,MAAM,OAAO,EACtD,SAAS,EAAE,kBACZ,EAAE,CACJ,EAGK,IAAgB,QACpB,OAAO,sCAAmC,MAAM,OAAO,EACrD,SAAS,EAAE,eACZ,EAAE,CACJ,EAGK,IAAuB,QAC3B,OAAO,2CAAwC,MAAM,OAAO,EAC1D,SAAS,EAAE,sBACZ,EAAE,CACJ,EACK,IAAkB,QACtB,OAAO,sCAAmC,MAAM,OAAO,EACrD,SAAS,EAAE,iBACZ,EAAE,CACJ,EAGK,IAAgB,QACpB,OAAO,sCAAmC,MAAM,OAAO,EACrD,SAAS,EAAE,eACZ,EAAE,CACJ,EACK,KAAqB,QACzB,OAAO,2CAAwC,MAAM,OAAO,EAC1D,SAAS,EAAE,oBACZ,EAAE,CACJ,EACK,KAA0B,QAC9B,OAAO,gDAA6C,MAAM,OAAO,EAC/D,SAAS,EAAE,yBACZ,EAAE,CACJ,EAGK,KAAwB,QAC5B,OAAO,uDAAoD,MAAM,OAAO,EACtE,SAAS,EAAE,uBACZ,EAAE,CACJ;AAMD,SAAgB,KAAmB;AACjC,QACE,kBAAC,GAAD;EAAU,UAAU,kBAAC,GAAD,EAAc,CAAA;YAChC,kBAAC,GAAD,EAAA,UAAA;GAEE,kBAAC,GAAD;IAAO,OAAA;IAAM,SAAS,kBAAC,GAAD,EAAY,CAAA;IAAI,CAAA;GACtC,kBAAC,GAAD;IAAO,MAAK;IAAY,SAAS,kBAAC,GAAD,EAAiB,CAAA;IAAI,CAAA;GACtD,kBAAC,GAAD;IAAO,MAAK;IAAU,SAAS,kBAAC,GAAD,EAAe,CAAA;IAAI,CAAA;GAGlD,kBAAC,GAAD;IAAO,MAAK;IAAO,SAAS,kBAAC,GAAD,EAAoB,CAAA;IAAI,CAAA;GACpD,kBAAC,GAAD;IAAO,MAAK;IAAa,SAAS,kBAAC,GAAD,EAAa,CAAA;IAAI,CAAA;GACnD,kBAAC,GAAD;IAAO,MAAK;IAAe,SAAS,kBAAC,GAAD,EAAmB,CAAA;IAAI,CAAA;GAG3D,kBAAC,GAAD;IAAO,MAAK;IAAW,SAAS,kBAAC,GAAD,EAAgB,CAAA;IAAI,CAAA;GACpD,kBAAC,GAAD;IAAO,MAAK;IAAe,SAAS,kBAAC,GAAD,EAAqB,CAAA;IAAI,CAAA;GAC7D,kBAAC,GAAD;IAAO,MAAK;IAAsB,SAAS,kBAAC,GAAD,EAAqB,CAAA;IAAI,CAAA;GACpE,kBAAC,GAAD;IAAO,MAAK;IAA4B,SAAS,kBAAC,GAAD,EAAa,CAAA;IAAI,CAAA;GAGlE,kBAAC,GAAD;IAAO,MAAK;IAAO,SAAS,kBAAC,GAAD,EAAY,CAAA;IAAI,CAAA;GAC5C,kBAAC,GAAD;IAAO,MAAK;IAAe,SAAS,kBAAC,GAAD,EAAmB,CAAA;IAAI,CAAA;GAC3D,kBAAC,GAAD;IAAO,MAAK;IAAiB,SAAS,kBAAC,GAAD,EAAqB,CAAA;IAAI,CAAA;GAG/D,kBAAC,GAAD;IAAO,MAAK;IAAW,SAAS,kBAAC,GAAD,EAAgB,CAAA;IAAI,CAAA;GACpD,kBAAC,GAAD;IAAO,MAAK;IAAqB,SAAS,kBAAC,GAAD,EAAyB,CAAA;IAAI,CAAA;GACvE,kBAAC,GAAD;IAAO,MAAK;IAAoB,SAAS,kBAAC,GAAD,EAAwB,CAAA;IAAI,CAAA;GAGrE,kBAAC,GAAD;IAAO,MAAK;IAAW,SAAS,kBAAC,GAAD,EAAgB,CAAA;IAAI,CAAA;GACpD,kBAAC,GAAD;IAAO,MAAK;IAAe,SAAS,kBAAC,GAAD,EAAqB,CAAA;IAAI,CAAA;GAC7D,kBAAC,GAAD;IAAO,MAAK;IAAe,SAAS,kBAAC,GAAD,EAAqB,CAAA;IAAI,CAAA;GAC7D,kBAAC,GAAD;IAAO,MAAK;IAAqB,SAAS,kBAAC,GAAD,EAAwB,CAAA;IAAI,CAAA;GAGtE,kBAAC,GAAD;IAAO,MAAK;IAAiB,SAAS,kBAAC,IAAD,EAAqB,CAAA;IAAI,CAAA;GAC/D,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAsB,CAAA;IAC/B,CAAA;GACF,kBAAC,GAAD;IAAO,MAAK;IAA0B,SAAS,kBAAC,GAAD,EAAqB,CAAA;IAAI,CAAA;GAGxE,kBAAC,GAAD;IAAO,MAAK;IAAgB,SAAS,kBAAC,GAAD,EAAoB,CAAA;IAAI,CAAA;GAC7D,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAA4B,CAAA;IACrC,CAAA;GAGF,kBAAC,GAAD;IAAO,MAAK;IAAoB,SAAS,kBAAC,GAAD,EAAwB,CAAA;IAAI,CAAA;GACrE,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAAgC,CAAA;IACzC,CAAA;GAGF,kBAAC,GAAD;IAAO,MAAK;IAAc,SAAS,kBAAC,GAAD,EAAkB,CAAA;IAAI,CAAA;GACzD,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAA0B,CAAA;IACnC,CAAA;GAGF,kBAAC,GAAD;IAAO,MAAK;IAAoB,SAAS,kBAAC,GAAD,EAAwB,CAAA;IAAI,CAAA;GACrE,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAA+B,CAAA;IACxC,CAAA;GAGF,kBAAC,GAAD;IAAO,MAAK;IAAa,SAAS,kBAAC,GAAD,EAAkB,CAAA;IAAI,CAAA;GACxD,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAA0B,CAAA;IACnC,CAAA;GAGF,kBAAC,GAAD;IAAO,MAAK;IAAgB,SAAS,kBAAC,GAAD,EAAoB,CAAA;IAAI,CAAA;GAC7D,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,GAAD,EAA4B,CAAA;IACrC,CAAA;GAGF,kBAAC,GAAD;IAAO,MAAK;IAAoB,SAAS,kBAAC,GAAD,EAAwB,CAAA;IAAI,CAAA;GAGrE,kBAAC,GAAD;IAAO,MAAK;IAAgB,SAAS,kBAAC,GAAD,EAAoB,CAAA;IAAI,CAAA;GAG7D,kBAAC,GAAD;IAAO,MAAK;IAAmB,SAAS,kBAAC,GAAD,EAAuB,CAAA;IAAI,CAAA;GAGnE,kBAAC,GAAD;IAAO,MAAK;IAAgB,SAAS,kBAAC,GAAD,EAAoB,CAAA;IAAI,CAAA;GAG7D,kBAAC,GAAD;IAAO,MAAK;IAAW,SAAS,kBAAC,GAAD,EAAgB,CAAA;IAAI,CAAA;GAGpD,kBAAC,GAAD;IAAO,MAAK;IAAU,SAAS,kBAAC,GAAD,EAAe,CAAA;IAAI,CAAA;GAClD,kBAAC,GAAD;IAAO,MAAK;IAAc,SAAS,kBAAC,GAAD,EAAoB,CAAA;IAAI,CAAA;GAG3D,kBAAC,GAAD;IAAO,MAAK;IAAY,SAAS,kBAAC,GAAD,EAAiB,CAAA;IAAI,CAAA;GAGtD,kBAAC,GAAD;IAAO,MAAK;IAAU,SAAS,kBAAC,GAAD,EAAwB,CAAA;IAAI,CAAA;GAC3D,kBAAC,GAAD;IAAO,MAAK;IAAgB,SAAS,kBAAC,GAAD,EAAmB,CAAA;IAAI,CAAA;GAG5D,kBAAC,GAAD;IAAO,MAAK;IAAY,SAAS,kBAAC,GAAD,EAAiB,CAAA;IAAI,CAAA;GACtD,kBAAC,GAAD;IAAO,MAAK;IAAgB,SAAS,kBAAC,IAAD,EAAsB,CAAA;IAAI,CAAA;GAC/D,kBAAC,GAAD;IACE,MAAK;IACL,SAAS,kBAAC,IAAD,EAA2B,CAAA;IACpC,CAAA;GAGF,kBAAC,GAAD;IAAO,MAAK;IAAqB,SAAS,kBAAC,IAAD,EAAyB,CAAA;IAAI,CAAA;GAGvE,kBAAC,GAAD;IAAO,MAAK;IAAI,SAAS,kBAAC,GAAD;KAAU,IAAG;KAAG,SAAA;KAAU,CAAA;IAAI,CAAA;GAChD,EAAA,CAAA;EACA,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface TimeRangeOption {
4
+ label: string;
5
+ value: string;
6
+ }
7
+ interface ChartCardProps {
8
+ title: string;
9
+ description?: string;
10
+ actions?: ReactNode;
11
+ timeRanges?: TimeRangeOption[];
12
+ defaultTimeRange?: string;
13
+ onTimeRangeChange?: (value: string) => void;
14
+ children: ReactNode;
15
+ className?: string;
16
+ }
17
+ export declare const ChartCard: FC<ChartCardProps>;
18
+ export {};
19
+ //# sourceMappingURL=ChartCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartCard.d.ts","sourceRoot":"","sources":["../../../src/timecampus/components/ChartCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG1D,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA4DxC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ export interface Column<T> {
4
+ key: string;
5
+ header: string;
6
+ render?: (item: T) => ReactNode;
7
+ className?: string;
8
+ sortable?: boolean;
9
+ }
10
+ interface DataTableProps<T> {
11
+ columns: Column<T>[];
12
+ data: T[];
13
+ keyField: string;
14
+ onRowClick?: (item: T) => void;
15
+ emptyMessage?: string;
16
+ emptyIcon?: ReactNode;
17
+ loading?: boolean;
18
+ className?: string;
19
+ pageSize?: number;
20
+ selectable?: boolean;
21
+ selectedKeys?: Set<string>;
22
+ onSelectionChange?: (keys: Set<string>) => void;
23
+ }
24
+ export declare function DataTable<T extends object>({ columns, data, keyField, onRowClick, emptyMessage, emptyIcon, loading, className, pageSize, selectable, selectedKeys, onSelectionChange, }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
25
+ export {};
26
+ //# sourceMappingURL=DataTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../src/timecampus/components/DataTable.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAWvE,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID,UAAU,cAAc,CAAC,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;CACjD;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,EAC1C,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,YAAkC,EAClC,SAAS,EACT,OAAe,EACf,SAAS,EACT,QAAa,EACb,UAAkB,EAClB,YAAY,EACZ,iBAAiB,GAClB,EAAE,cAAc,CAAC,CAAC,CAAC,2CAgRnB"}
@@ -0,0 +1,12 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface EmptyStateProps {
4
+ icon?: ReactNode;
5
+ title: string;
6
+ description?: string;
7
+ action?: ReactNode;
8
+ className?: string;
9
+ }
10
+ export declare const EmptyState: FC<EmptyStateProps>;
11
+ export {};
12
+ //# sourceMappingURL=EmptyState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/timecampus/components/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3C,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA0B1C,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Component, ReactNode, ErrorInfo } from 'react';
2
+
3
+ interface ErrorBoundaryProps {
4
+ children: ReactNode;
5
+ fallback?: ReactNode;
6
+ }
7
+ interface ErrorBoundaryState {
8
+ hasError: boolean;
9
+ error: Error | null;
10
+ }
11
+ export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
12
+ constructor(props: ErrorBoundaryProps);
13
+ static getDerivedStateFromError(error: Error): ErrorBoundaryState;
14
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
15
+ handleReset: () => void;
16
+ render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=ErrorBoundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/timecampus/components/ErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlE,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,qBAAa,aAAc,SAAQ,SAAS,CAC1C,kBAAkB,EAClB,kBAAkB,CACnB;gBACa,KAAK,EAAE,kBAAkB;IAKrC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAIjE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;IAIpD,WAAW,aAET;IAEF,MAAM;CA0BP"}
@@ -0,0 +1,52 @@
1
+ import { Component as e } from "react";
2
+ import { AlertTriangle as t, RefreshCw as n } from "lucide-react";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ //#region src/timecampus/components/ErrorBoundary.tsx
5
+ var a = class extends e {
6
+ constructor(e) {
7
+ super(e), this.state = {
8
+ hasError: !1,
9
+ error: null
10
+ };
11
+ }
12
+ static getDerivedStateFromError(e) {
13
+ return {
14
+ hasError: !0,
15
+ error: e
16
+ };
17
+ }
18
+ componentDidCatch(e, t) {
19
+ console.error("[TimeCampus ErrorBoundary]", e, t);
20
+ }
21
+ handleReset = () => {
22
+ this.setState({
23
+ hasError: !1,
24
+ error: null
25
+ });
26
+ };
27
+ render() {
28
+ return this.state.hasError ? this.props.fallback ? this.props.fallback : /* @__PURE__ */ i("div", {
29
+ className: "flex flex-col items-center justify-center rounded-lg border border-dashed border-red-300 bg-red-50 p-12 text-center dark:border-red-800 dark:bg-red-900/10",
30
+ children: [
31
+ /* @__PURE__ */ r(t, { className: "mb-4 h-12 w-12 text-red-500" }),
32
+ /* @__PURE__ */ r("h3", {
33
+ className: "text-lg font-medium text-foreground",
34
+ children: "Something went wrong"
35
+ }),
36
+ /* @__PURE__ */ r("p", {
37
+ className: "mt-1 max-w-md text-sm text-muted-foreground",
38
+ children: this.state.error?.message ?? "An unexpected error occurred while rendering this section."
39
+ }),
40
+ /* @__PURE__ */ i("button", {
41
+ onClick: this.handleReset,
42
+ className: "mt-4 flex items-center gap-1.5 rounded-md bg-foreground px-4 py-2 text-sm font-medium text-background hover:opacity-90",
43
+ children: [/* @__PURE__ */ r(n, { className: "h-4 w-4" }), " Try Again"]
44
+ })
45
+ ]
46
+ }) : this.props.children;
47
+ }
48
+ };
49
+ //#endregion
50
+ export { a as ErrorBoundary };
51
+
52
+ //# sourceMappingURL=ErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary.js","names":[],"sources":["../../../src/timecampus/components/ErrorBoundary.tsx"],"sourcesContent":["import { Component, type ReactNode, type ErrorInfo } from \"react\";\nimport { AlertTriangle, RefreshCw } from \"lucide-react\";\n\ninterface ErrorBoundaryProps {\n children: ReactNode;\n fallback?: ReactNode;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n}\n\nexport class ErrorBoundary extends Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = { hasError: false, error: null };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { hasError: true, error };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n console.error(\"[TimeCampus ErrorBoundary]\", error, errorInfo);\n }\n\n handleReset = () => {\n this.setState({ hasError: false, error: null });\n };\n\n render() {\n if (this.state.hasError) {\n if (this.props.fallback) return this.props.fallback;\n\n return (\n <div className=\"flex flex-col items-center justify-center rounded-lg border border-dashed border-red-300 bg-red-50 p-12 text-center dark:border-red-800 dark:bg-red-900/10\">\n <AlertTriangle className=\"mb-4 h-12 w-12 text-red-500\" />\n <h3 className=\"text-lg font-medium text-foreground\">\n Something went wrong\n </h3>\n <p className=\"mt-1 max-w-md text-sm text-muted-foreground\">\n {this.state.error?.message ??\n \"An unexpected error occurred while rendering this section.\"}\n </p>\n <button\n onClick={this.handleReset}\n className=\"mt-4 flex items-center gap-1.5 rounded-md bg-foreground px-4 py-2 text-sm font-medium text-background hover:opacity-90\"\n >\n <RefreshCw className=\"h-4 w-4\" /> Try Again\n </button>\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n"],"mappings":";;;;AAaA,IAAa,IAAb,cAAmC,EAGjC;CACA,YAAY,GAA2B;AAErC,EADA,MAAM,EAAM,EACZ,KAAK,QAAQ;GAAE,UAAU;GAAO,OAAO;GAAM;;CAG/C,OAAO,yBAAyB,GAAkC;AAChE,SAAO;GAAE,UAAU;GAAM;GAAO;;CAGlC,kBAAkB,GAAc,GAAsB;AACpD,UAAQ,MAAM,8BAA8B,GAAO,EAAU;;CAG/D,oBAAoB;AAClB,OAAK,SAAS;GAAE,UAAU;GAAO,OAAO;GAAM,CAAC;;CAGjD,SAAS;AAwBP,SAvBI,KAAK,MAAM,WACT,KAAK,MAAM,WAAiB,KAAK,MAAM,WAGzC,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,GAAD,EAAe,WAAU,+BAAgC,CAAA;IACzD,kBAAC,MAAD;KAAI,WAAU;eAAsC;KAE/C,CAAA;IACL,kBAAC,KAAD;KAAG,WAAU;eACV,KAAK,MAAM,OAAO,WACjB;KACA,CAAA;IACJ,kBAAC,UAAD;KACE,SAAS,KAAK;KACd,WAAU;eAFZ,CAIE,kBAAC,GAAD,EAAW,WAAU,WAAY,CAAA,EAAA,aAC1B;;IACL;OAIH,KAAK,MAAM"}
@@ -0,0 +1,26 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface FilterOption {
4
+ label: string;
5
+ value: string;
6
+ }
7
+ interface SelectFilterProps {
8
+ label: string;
9
+ value: string;
10
+ options: FilterOption[];
11
+ onChange: (value: string) => void;
12
+ }
13
+ export declare const SelectFilter: FC<SelectFilterProps>;
14
+ interface FilterBarProps {
15
+ searchValue: string;
16
+ onSearchChange: (value: string) => void;
17
+ searchPlaceholder?: string;
18
+ filters?: ReactNode;
19
+ actions?: ReactNode;
20
+ resultCount?: number;
21
+ resultLabel?: string;
22
+ className?: string;
23
+ }
24
+ export declare const FilterBar: FC<FilterBarProps>;
25
+ export {};
26
+ //# sourceMappingURL=FilterBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterBar.d.ts","sourceRoot":"","sources":["../../../src/timecampus/components/FilterBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK3C,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAoB9C,CAAC;AAEF,UAAU,cAAc;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CA8CxC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { FC } from 'react';
2
+
3
+ interface LoadingSkeletonProps {
4
+ variant?: "card" | "table" | "list" | "detail";
5
+ count?: number;
6
+ className?: string;
7
+ }
8
+ export declare const LoadingSkeleton: FC<LoadingSkeletonProps>;
9
+ export {};
10
+ //# sourceMappingURL=LoadingSkeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingSkeleton.d.ts","sourceRoot":"","sources":["../../../src/timecampus/components/LoadingSkeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAWhC,UAAU,oBAAoB;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CA8FpD,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { cn as e } from "../utils/helpers.js";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
+ //#region src/timecampus/components/LoadingSkeleton.tsx
4
+ var r = ({ className: n }) => /* @__PURE__ */ t("div", { className: e("animate-pulse rounded-md bg-muted", n) }), i = ({ variant: i = "card", count: a = 3, className: o }) => i === "table" ? /* @__PURE__ */ t("div", {
5
+ className: e("space-y-3", o),
6
+ children: /* @__PURE__ */ n("div", {
7
+ className: "overflow-hidden rounded-lg border border-border",
8
+ children: [/* @__PURE__ */ t("div", {
9
+ className: "border-b border-border bg-muted/50 px-4 py-3",
10
+ children: /* @__PURE__ */ t("div", {
11
+ className: "flex gap-4",
12
+ children: Array.from({ length: 5 }).map((e, n) => /* @__PURE__ */ t(r, { className: "h-4 w-20" }, n))
13
+ })
14
+ }), Array.from({ length: a }).map((e, n) => /* @__PURE__ */ t("div", {
15
+ className: "flex gap-4 border-b border-border px-4 py-3 last:border-b-0",
16
+ children: Array.from({ length: 5 }).map((e, n) => /* @__PURE__ */ t(r, { className: "h-4 w-20" }, n))
17
+ }, n))]
18
+ })
19
+ }) : i === "list" ? /* @__PURE__ */ t("div", {
20
+ className: e("space-y-2", o),
21
+ children: Array.from({ length: a }).map((e, i) => /* @__PURE__ */ n("div", {
22
+ className: "flex items-center gap-3 rounded-lg border border-border p-4",
23
+ children: [
24
+ /* @__PURE__ */ t(r, { className: "h-10 w-10 rounded-full" }),
25
+ /* @__PURE__ */ n("div", {
26
+ className: "flex-1 space-y-2",
27
+ children: [/* @__PURE__ */ t(r, { className: "h-4 w-1/3" }), /* @__PURE__ */ t(r, { className: "h-3 w-2/3" })]
28
+ }),
29
+ /* @__PURE__ */ t(r, { className: "h-6 w-16 rounded-full" })
30
+ ]
31
+ }, i))
32
+ }) : i === "detail" ? /* @__PURE__ */ n("div", {
33
+ className: e("space-y-6", o),
34
+ children: [
35
+ /* @__PURE__ */ n("div", {
36
+ className: "space-y-2",
37
+ children: [/* @__PURE__ */ t(r, { className: "h-8 w-1/3" }), /* @__PURE__ */ t(r, { className: "h-4 w-1/2" })]
38
+ }),
39
+ /* @__PURE__ */ t("div", {
40
+ className: "grid gap-4 sm:grid-cols-3",
41
+ children: Array.from({ length: 3 }).map((e, i) => /* @__PURE__ */ n("div", {
42
+ className: "rounded-lg border border-border p-4",
43
+ children: [/* @__PURE__ */ t(r, { className: "h-3 w-20" }), /* @__PURE__ */ t(r, { className: "mt-2 h-7 w-16" })]
44
+ }, i))
45
+ }),
46
+ /* @__PURE__ */ n("div", {
47
+ className: "rounded-lg border border-border p-6",
48
+ children: [/* @__PURE__ */ t(r, { className: "h-5 w-1/4" }), /* @__PURE__ */ n("div", {
49
+ className: "mt-4 space-y-3",
50
+ children: [
51
+ /* @__PURE__ */ t(r, { className: "h-4 w-full" }),
52
+ /* @__PURE__ */ t(r, { className: "h-4 w-5/6" }),
53
+ /* @__PURE__ */ t(r, { className: "h-4 w-4/6" })
54
+ ]
55
+ })]
56
+ })
57
+ ]
58
+ }) : /* @__PURE__ */ t("div", {
59
+ className: e("grid gap-4 sm:grid-cols-2 lg:grid-cols-3", o),
60
+ children: Array.from({ length: a }).map((e, i) => /* @__PURE__ */ n("div", {
61
+ className: "rounded-lg border border-border p-4",
62
+ children: [
63
+ /* @__PURE__ */ t(r, { className: "h-4 w-2/3" }),
64
+ /* @__PURE__ */ t(r, { className: "mt-2 h-3 w-1/2" }),
65
+ /* @__PURE__ */ t(r, { className: "mt-4 h-8 w-24" }),
66
+ /* @__PURE__ */ n("div", {
67
+ className: "mt-3 flex justify-between",
68
+ children: [/* @__PURE__ */ t(r, { className: "h-5 w-16 rounded-full" }), /* @__PURE__ */ t(r, { className: "h-7 w-14 rounded-md" })]
69
+ })
70
+ ]
71
+ }, i))
72
+ });
73
+ //#endregion
74
+ export { i as LoadingSkeleton };
75
+
76
+ //# sourceMappingURL=LoadingSkeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingSkeleton.js","names":[],"sources":["../../../src/timecampus/components/LoadingSkeleton.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport { cn } from \"../utils/helpers\";\n\ninterface SkeletonProps {\n className?: string;\n}\n\nconst Skeleton: FC<SkeletonProps> = ({ className }) => (\n <div className={cn(\"animate-pulse rounded-md bg-muted\", className)} />\n);\n\ninterface LoadingSkeletonProps {\n variant?: \"card\" | \"table\" | \"list\" | \"detail\";\n count?: number;\n className?: string;\n}\n\nexport const LoadingSkeleton: FC<LoadingSkeletonProps> = ({\n variant = \"card\",\n count = 3,\n className,\n}) => {\n if (variant === \"table\") {\n return (\n <div className={cn(\"space-y-3\", className)}>\n <div className=\"overflow-hidden rounded-lg border border-border\">\n <div className=\"border-b border-border bg-muted/50 px-4 py-3\">\n <div className=\"flex gap-4\">\n {Array.from({ length: 5 }).map((_, i) => (\n <Skeleton key={i} className=\"h-4 w-20\" />\n ))}\n </div>\n </div>\n {Array.from({ length: count }).map((_, i) => (\n <div\n key={i}\n className=\"flex gap-4 border-b border-border px-4 py-3 last:border-b-0\"\n >\n {Array.from({ length: 5 }).map((_, j) => (\n <Skeleton key={j} className=\"h-4 w-20\" />\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n }\n\n if (variant === \"list\") {\n return (\n <div className={cn(\"space-y-2\", className)}>\n {Array.from({ length: count }).map((_, i) => (\n <div\n key={i}\n className=\"flex items-center gap-3 rounded-lg border border-border p-4\"\n >\n <Skeleton className=\"h-10 w-10 rounded-full\" />\n <div className=\"flex-1 space-y-2\">\n <Skeleton className=\"h-4 w-1/3\" />\n <Skeleton className=\"h-3 w-2/3\" />\n </div>\n <Skeleton className=\"h-6 w-16 rounded-full\" />\n </div>\n ))}\n </div>\n );\n }\n\n if (variant === \"detail\") {\n return (\n <div className={cn(\"space-y-6\", className)}>\n <div className=\"space-y-2\">\n <Skeleton className=\"h-8 w-1/3\" />\n <Skeleton className=\"h-4 w-1/2\" />\n </div>\n <div className=\"grid gap-4 sm:grid-cols-3\">\n {Array.from({ length: 3 }).map((_, i) => (\n <div key={i} className=\"rounded-lg border border-border p-4\">\n <Skeleton className=\"h-3 w-20\" />\n <Skeleton className=\"mt-2 h-7 w-16\" />\n </div>\n ))}\n </div>\n <div className=\"rounded-lg border border-border p-6\">\n <Skeleton className=\"h-5 w-1/4\" />\n <div className=\"mt-4 space-y-3\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-5/6\" />\n <Skeleton className=\"h-4 w-4/6\" />\n </div>\n </div>\n </div>\n );\n }\n\n // Default: card grid\n return (\n <div className={cn(\"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\", className)}>\n {Array.from({ length: count }).map((_, i) => (\n <div key={i} className=\"rounded-lg border border-border p-4\">\n <Skeleton className=\"h-4 w-2/3\" />\n <Skeleton className=\"mt-2 h-3 w-1/2\" />\n <Skeleton className=\"mt-4 h-8 w-24\" />\n <div className=\"mt-3 flex justify-between\">\n <Skeleton className=\"h-5 w-16 rounded-full\" />\n <Skeleton className=\"h-7 w-14 rounded-md\" />\n </div>\n </div>\n ))}\n </div>\n );\n};\n"],"mappings":";;;AAOA,IAAM,KAA+B,EAAE,mBACrC,kBAAC,OAAD,EAAK,WAAW,EAAG,qCAAqC,EAAU,EAAI,CAAA,EAS3D,KAA6C,EACxD,aAAU,QACV,WAAQ,GACR,mBAEI,MAAY,UAEZ,kBAAC,OAAD;CAAK,WAAW,EAAG,aAAa,EAAU;WACxC,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aACb,kBAAC,OAAD;IAAK,WAAU;cACZ,MAAM,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,MACjC,kBAAC,GAAD,EAAkB,WAAU,YAAa,EAA1B,EAA0B,CACzC;IACE,CAAA;GACF,CAAA,EACL,MAAM,KAAK,EAAE,QAAQ,GAAO,CAAC,CAAC,KAAK,GAAG,MACrC,kBAAC,OAAD;GAEE,WAAU;aAET,MAAM,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,MACjC,kBAAC,GAAD,EAAkB,WAAU,YAAa,EAA1B,EAA0B,CACzC;GACE,EANC,EAMD,CACN,CACE;;CACF,CAAA,GAIN,MAAY,SAEZ,kBAAC,OAAD;CAAK,WAAW,EAAG,aAAa,EAAU;WACvC,MAAM,KAAK,EAAE,QAAQ,GAAO,CAAC,CAAC,KAAK,GAAG,MACrC,kBAAC,OAAD;EAEE,WAAU;YAFZ;GAIE,kBAAC,GAAD,EAAU,WAAU,0BAA2B,CAAA;GAC/C,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD,EAAU,WAAU,aAAc,CAAA,EAClC,kBAAC,GAAD,EAAU,WAAU,aAAc,CAAA,CAC9B;;GACN,kBAAC,GAAD,EAAU,WAAU,yBAA0B,CAAA;GAC1C;IATC,EASD,CACN;CACE,CAAA,GAIN,MAAY,WAEZ,kBAAC,OAAD;CAAK,WAAW,EAAG,aAAa,EAAU;WAA1C;EACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,GAAD,EAAU,WAAU,aAAc,CAAA,EAClC,kBAAC,GAAD,EAAU,WAAU,aAAc,CAAA,CAC9B;;EACN,kBAAC,OAAD;GAAK,WAAU;aACZ,MAAM,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,MACjC,kBAAC,OAAD;IAAa,WAAU;cAAvB,CACE,kBAAC,GAAD,EAAU,WAAU,YAAa,CAAA,EACjC,kBAAC,GAAD,EAAU,WAAU,iBAAkB,CAAA,CAClC;MAHI,EAGJ,CACN;GACE,CAAA;EACN,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,GAAD,EAAU,WAAU,aAAc,CAAA,EAClC,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAU,WAAU,cAAe,CAAA;KACnC,kBAAC,GAAD,EAAU,WAAU,aAAc,CAAA;KAClC,kBAAC,GAAD,EAAU,WAAU,aAAc,CAAA;KAC9B;MACF;;EACF;KAMR,kBAAC,OAAD;CAAK,WAAW,EAAG,4CAA4C,EAAU;WACtE,MAAM,KAAK,EAAE,QAAQ,GAAO,CAAC,CAAC,KAAK,GAAG,MACrC,kBAAC,OAAD;EAAa,WAAU;YAAvB;GACE,kBAAC,GAAD,EAAU,WAAU,aAAc,CAAA;GAClC,kBAAC,GAAD,EAAU,WAAU,kBAAmB,CAAA;GACvC,kBAAC,GAAD,EAAU,WAAU,iBAAkB,CAAA;GACtC,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD,EAAU,WAAU,yBAA0B,CAAA,EAC9C,kBAAC,GAAD,EAAU,WAAU,uBAAwB,CAAA,CACxC;;GACF;IARI,EAQJ,CACN;CACE,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface ModalProps {
4
+ open: boolean;
5
+ onClose: () => void;
6
+ title: string;
7
+ description?: string;
8
+ children: ReactNode;
9
+ size?: "sm" | "md" | "lg" | "xl";
10
+ footer?: ReactNode;
11
+ }
12
+ export declare const Modal: FC<ModalProps>;
13
+ export {};
14
+ //# sourceMappingURL=Modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/timecampus/components/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKnE,UAAU,UAAU;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AASD,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,UAAU,CAiFhC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface PageLayoutProps {
4
+ title: string;
5
+ description?: string;
6
+ actions?: ReactNode;
7
+ children: ReactNode;
8
+ className?: string;
9
+ }
10
+ export declare const PageLayout: FC<PageLayoutProps>;
11
+ export {};
12
+ //# sourceMappingURL=PageLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageLayout.d.ts","sourceRoot":"","sources":["../../../src/timecampus/components/PageLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG3C,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAqB1C,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { cn as e } from "../utils/helpers.js";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
+ //#region src/timecampus/components/PageLayout.tsx
4
+ var r = ({ title: r, description: i, actions: a, children: o, className: s }) => /* @__PURE__ */ n("div", {
5
+ className: e("min-h-full p-4 sm:p-6", s),
6
+ children: [/* @__PURE__ */ n("div", {
7
+ className: "mb-6 flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
8
+ children: [/* @__PURE__ */ n("div", { children: [/* @__PURE__ */ t("h1", {
9
+ className: "text-2xl font-bold text-foreground",
10
+ children: r
11
+ }), i && /* @__PURE__ */ t("p", {
12
+ className: "mt-1 text-sm text-muted-foreground",
13
+ children: i
14
+ })] }), a && /* @__PURE__ */ t("div", {
15
+ className: "flex items-center gap-2",
16
+ children: a
17
+ })]
18
+ }), o]
19
+ });
20
+ //#endregion
21
+ export { r as PageLayout };
22
+
23
+ //# sourceMappingURL=PageLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageLayout.js","names":[],"sources":["../../../src/timecampus/components/PageLayout.tsx"],"sourcesContent":["import type { FC, ReactNode } from \"react\";\nimport { cn } from \"../utils/helpers\";\n\ninterface PageLayoutProps {\n title: string;\n description?: string;\n actions?: ReactNode;\n children: ReactNode;\n className?: string;\n}\n\nexport const PageLayout: FC<PageLayoutProps> = ({\n title,\n description,\n actions,\n children,\n className,\n}) => {\n return (\n <div className={cn(\"min-h-full p-4 sm:p-6\", className)}>\n <div className=\"mb-6 flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <div>\n <h1 className=\"text-2xl font-bold text-foreground\">{title}</h1>\n {description && (\n <p className=\"mt-1 text-sm text-muted-foreground\">{description}</p>\n )}\n </div>\n {actions && <div className=\"flex items-center gap-2\">{actions}</div>}\n </div>\n {children}\n </div>\n );\n};\n"],"mappings":";;;AAWA,IAAa,KAAmC,EAC9C,UACA,gBACA,YACA,aACA,mBAGE,kBAAC,OAAD;CAAK,WAAW,EAAG,yBAAyB,EAAU;WAAtD,CACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;GAAI,WAAU;aAAsC;GAAW,CAAA,EAC9D,KACC,kBAAC,KAAD;GAAG,WAAU;aAAsC;GAAgB,CAAA,CAEjE,EAAA,CAAA,EACL,KAAW,kBAAC,OAAD;GAAK,WAAU;aAA2B;GAAc,CAAA,CAChE;KACL,EACG"}
@@ -0,0 +1,17 @@
1
+ import { FC, ReactNode } from 'react';
2
+
3
+ interface StatCardProps {
4
+ title: string;
5
+ value: string | number;
6
+ icon?: ReactNode;
7
+ trend?: {
8
+ value: number;
9
+ label: string;
10
+ };
11
+ description?: string;
12
+ className?: string;
13
+ iconBgColor?: string;
14
+ }
15
+ export declare const StatCard: FC<StatCardProps>;
16
+ export {};
17
+ //# sourceMappingURL=StatCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatCard.d.ts","sourceRoot":"","sources":["../../../src/timecampus/components/StatCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3C,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CA+DtC,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { cn as e } from "../utils/helpers.js";
2
+ import { ArrowDown as t, ArrowUp as n } from "lucide-react";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
4
+ //#region src/timecampus/components/StatCard.tsx
5
+ var a = ({ title: a, value: o, icon: s, trend: c, description: l, className: u, iconBgColor: d }) => /* @__PURE__ */ r("div", {
6
+ className: e("rounded-xl border border-border bg-card p-4 sm:p-6", u),
7
+ children: /* @__PURE__ */ i("div", {
8
+ className: "flex items-start justify-between",
9
+ children: [/* @__PURE__ */ i("div", {
10
+ className: "flex-1 min-w-0",
11
+ children: [
12
+ /* @__PURE__ */ r("p", {
13
+ className: "text-sm font-medium text-muted-foreground truncate",
14
+ children: a
15
+ }),
16
+ /* @__PURE__ */ r("p", {
17
+ className: "mt-2 text-2xl font-bold text-card-foreground",
18
+ children: o
19
+ }),
20
+ c && /* @__PURE__ */ i("div", {
21
+ className: "mt-2 flex items-center gap-1",
22
+ children: [
23
+ c.value >= 0 ? /* @__PURE__ */ r(n, { className: "h-3 w-3 text-emerald-500" }) : /* @__PURE__ */ r(t, { className: "h-3 w-3 text-red-500" }),
24
+ /* @__PURE__ */ i("span", {
25
+ className: e("text-xs font-medium", c.value >= 0 ? "text-emerald-600 dark:text-emerald-400" : "text-red-600 dark:text-red-400"),
26
+ children: [Math.abs(c.value), "%"]
27
+ }),
28
+ /* @__PURE__ */ r("span", {
29
+ className: "text-xs text-muted-foreground",
30
+ children: c.label
31
+ })
32
+ ]
33
+ }),
34
+ l && /* @__PURE__ */ r("p", {
35
+ className: "mt-1 text-xs text-muted-foreground",
36
+ children: l
37
+ })
38
+ ]
39
+ }), s && /* @__PURE__ */ r("div", {
40
+ className: e("flex h-10 w-10 shrink-0 items-center justify-center rounded-lg", d || "bg-primary/10 text-primary"),
41
+ children: s
42
+ })]
43
+ })
44
+ });
45
+ //#endregion
46
+ export { a as StatCard };
47
+
48
+ //# sourceMappingURL=StatCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatCard.js","names":[],"sources":["../../../src/timecampus/components/StatCard.tsx"],"sourcesContent":["import type { FC, ReactNode } from \"react\";\nimport { cn } from \"../utils/helpers\";\nimport { ArrowUp, ArrowDown } from \"lucide-react\";\n\ninterface StatCardProps {\n title: string;\n value: string | number;\n icon?: ReactNode;\n trend?: { value: number; label: string };\n description?: string;\n className?: string;\n iconBgColor?: string;\n}\n\nexport const StatCard: FC<StatCardProps> = ({\n title,\n value,\n icon,\n trend,\n description,\n className,\n iconBgColor,\n}) => {\n return (\n <div\n className={cn(\n \"rounded-xl border border-border bg-card p-4 sm:p-6\",\n className,\n )}\n >\n <div className=\"flex items-start justify-between\">\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-muted-foreground truncate\">\n {title}\n </p>\n <p className=\"mt-2 text-2xl font-bold text-card-foreground\">\n {value}\n </p>\n {trend && (\n <div className=\"mt-2 flex items-center gap-1\">\n {trend.value >= 0 ? (\n <ArrowUp className=\"h-3 w-3 text-emerald-500\" />\n ) : (\n <ArrowDown className=\"h-3 w-3 text-red-500\" />\n )}\n <span\n className={cn(\n \"text-xs font-medium\",\n trend.value >= 0\n ? \"text-emerald-600 dark:text-emerald-400\"\n : \"text-red-600 dark:text-red-400\",\n )}\n >\n {Math.abs(trend.value)}%\n </span>\n <span className=\"text-xs text-muted-foreground\">\n {trend.label}\n </span>\n </div>\n )}\n {description && (\n <p className=\"mt-1 text-xs text-muted-foreground\">{description}</p>\n )}\n </div>\n {icon && (\n <div\n className={cn(\n \"flex h-10 w-10 shrink-0 items-center justify-center rounded-lg\",\n iconBgColor || \"bg-primary/10 text-primary\",\n )}\n >\n {icon}\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"mappings":";;;;AAcA,IAAa,KAA+B,EAC1C,UACA,UACA,SACA,UACA,gBACA,cACA,qBAGE,kBAAC,OAAD;CACE,WAAW,EACT,sDACA,EACD;WAED,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;aAAf;IACE,kBAAC,KAAD;KAAG,WAAU;eACV;KACC,CAAA;IACJ,kBAAC,KAAD;KAAG,WAAU;eACV;KACC,CAAA;IACH,KACC,kBAAC,OAAD;KAAK,WAAU;eAAf;MACG,EAAM,SAAS,IACd,kBAAC,GAAD,EAAS,WAAU,4BAA6B,CAAA,GAEhD,kBAAC,GAAD,EAAW,WAAU,wBAAyB,CAAA;MAEhD,kBAAC,QAAD;OACE,WAAW,EACT,uBACA,EAAM,SAAS,IACX,2CACA,iCACL;iBANH,CAQG,KAAK,IAAI,EAAM,MAAM,EAAC,IAClB;;MACP,kBAAC,QAAD;OAAM,WAAU;iBACb,EAAM;OACF,CAAA;MACH;;IAEP,KACC,kBAAC,KAAD;KAAG,WAAU;eAAsC;KAAgB,CAAA;IAEjE;MACL,KACC,kBAAC,OAAD;GACE,WAAW,EACT,kEACA,KAAe,6BAChB;aAEA;GACG,CAAA,CAEJ;;CACF,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { FC } from 'react';
2
+
3
+ type BadgeVariant = "success" | "warning" | "error" | "info" | "default" | "muted";
4
+ interface StatusBadgeProps {
5
+ label: string;
6
+ variant?: BadgeVariant;
7
+ /** Auto-detect variant from a status string using getStatusColor */
8
+ status?: string;
9
+ /** Auto-detect variant from a priority string using getPriorityColor */
10
+ priority?: string;
11
+ dot?: boolean;
12
+ className?: string;
13
+ }
14
+ export declare const StatusBadge: FC<StatusBadgeProps>;
15
+ export {};
16
+ //# sourceMappingURL=StatusBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../../src/timecampus/components/StatusBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,KAAK,YAAY,GACb,SAAS,GACT,SAAS,GACT,OAAO,GACP,MAAM,GACN,SAAS,GACT,OAAO,CAAC;AAEZ,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsBD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAiC5C,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { FC } from 'react';
2
+
3
+ export type ToastVariant = "success" | "error" | "warning" | "info";
4
+ export interface ToastData {
5
+ id: string;
6
+ title: string;
7
+ description?: string;
8
+ variant: ToastVariant;
9
+ duration?: number;
10
+ }
11
+ interface ToastProps extends ToastData {
12
+ onDismiss: (id: string) => void;
13
+ }
14
+ export declare const Toast: FC<ToastProps>;
15
+ interface ToastContainerProps {
16
+ toasts: ToastData[];
17
+ onDismiss: (id: string) => void;
18
+ }
19
+ export declare const ToastContainer: FC<ToastContainerProps>;
20
+ /** Hook for managing toast state */
21
+ export declare function useToast(): {
22
+ toasts: ToastData[];
23
+ addToast: (toast: Omit<ToastData, "id">) => string;
24
+ dismissToast: (id: string) => void;
25
+ clearToasts: () => void;
26
+ };
27
+ export {};
28
+ //# sourceMappingURL=Toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/timecampus/components/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAKlE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,UAAW,SAAQ,SAAS;IACpC,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AA4BD,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,UAAU,CAyChC,CAAC;AAEF,UAAU,mBAAmB;IAC3B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAalD,CAAC;AAEF,oCAAoC;AACpC,wBAAgB,QAAQ;;sBAGe,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;uBAMpB,MAAM;;EAS7C"}
@@ -0,0 +1,14 @@
1
+ export { PageLayout } from './PageLayout';
2
+ export { StatCard } from './StatCard';
3
+ export { DataTable } from './DataTable';
4
+ export type { Column } from './DataTable';
5
+ export { StatusBadge } from './StatusBadge';
6
+ export { EmptyState } from './EmptyState';
7
+ export { ChartCard } from './ChartCard';
8
+ export { FilterBar, SelectFilter } from './FilterBar';
9
+ export { Toast, ToastContainer, useToast } from './Toast';
10
+ export type { ToastData, ToastVariant } from './Toast';
11
+ export { ErrorBoundary } from './ErrorBoundary';
12
+ export { LoadingSkeleton } from './LoadingSkeleton';
13
+ export { Modal } from './Modal';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/timecampus/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * TimeCampus Hooks
3
+ * Re-exports domain hooks for the timecampus module.
4
+ * @module timecampus/hooks
5
+ */
6
+ export { useToast } from './useToast';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/timecampus/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,17 @@
1
+ export interface Toast {
2
+ id: string;
3
+ type: "success" | "error" | "warning" | "info";
4
+ title: string;
5
+ message?: string;
6
+ duration?: number;
7
+ }
8
+ export declare function useToast(): {
9
+ toasts: Toast[];
10
+ addToast: (toast: Omit<Toast, "id">) => string;
11
+ removeToast: (id: string) => void;
12
+ success: (title: string, message?: string) => string;
13
+ error: (title: string, message?: string) => string;
14
+ warning: (title: string, message?: string) => string;
15
+ info: (title: string, message?: string) => string;
16
+ };
17
+ //# sourceMappingURL=useToast.d.ts.map