@burdenoff/microfe-timecampus 2026.703.7 → 2026.710.1

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 (1077) hide show
  1. package/dist/config/assistantUsecases.d.ts +18 -0
  2. package/dist/config/assistantUsecases.d.ts.map +1 -0
  3. package/dist/generated/global-operations.d.ts +2 -0
  4. package/dist/generated/global-operations.d.ts.map +1 -0
  5. package/dist/generated/global-types.d.ts +23527 -0
  6. package/dist/generated/global-types.d.ts.map +1 -0
  7. package/dist/generated/wspace-operations.d.ts +9762 -0
  8. package/dist/generated/wspace-operations.d.ts.map +1 -0
  9. package/dist/generated/wspace-operations.js +1023 -1514
  10. package/dist/generated/wspace-operations.js.map +1 -1
  11. package/dist/generated/wspace-types.d.ts +58551 -0
  12. package/dist/generated/wspace-types.d.ts.map +1 -0
  13. package/dist/generated/wspace-types.js +12 -18
  14. package/dist/generated/wspace-types.js.map +1 -1
  15. package/dist/index.d.ts +6 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +4 -4
  18. package/dist/services/assistantApi.d.ts +49 -0
  19. package/dist/services/assistantApi.d.ts.map +1 -0
  20. package/dist/services/createSandboxAssistantTransport.d.ts +19 -0
  21. package/dist/services/createSandboxAssistantTransport.d.ts.map +1 -0
  22. package/dist/timecampus/TimeCampusRoot.d.ts +5 -0
  23. package/dist/timecampus/TimeCampusRoot.d.ts.map +1 -0
  24. package/dist/timecampus/TimeCampusRoot.js +82 -150
  25. package/dist/timecampus/TimeCampusRoot.js.map +1 -1
  26. package/dist/timecampus/TimeCampusRoutes.d.ts +7 -0
  27. package/dist/timecampus/TimeCampusRoutes.d.ts.map +1 -0
  28. package/dist/timecampus/TimeCampusRoutes.js +96 -164
  29. package/dist/timecampus/TimeCampusRoutes.js.map +1 -1
  30. package/dist/timecampus/components/ChartCard.d.ts +19 -0
  31. package/dist/timecampus/components/ChartCard.d.ts.map +1 -0
  32. package/dist/timecampus/components/DataTable.d.ts +26 -0
  33. package/dist/timecampus/components/DataTable.d.ts.map +1 -0
  34. package/dist/timecampus/components/EmptyState.d.ts +18 -0
  35. package/dist/timecampus/components/EmptyState.d.ts.map +1 -0
  36. package/dist/timecampus/components/ErrorBoundary.d.ts +19 -0
  37. package/dist/timecampus/components/ErrorBoundary.d.ts.map +1 -0
  38. package/dist/timecampus/components/FilterBar.d.ts +26 -0
  39. package/dist/timecampus/components/FilterBar.d.ts.map +1 -0
  40. package/dist/timecampus/components/LoadingSkeleton.d.ts +10 -0
  41. package/dist/timecampus/components/LoadingSkeleton.d.ts.map +1 -0
  42. package/dist/timecampus/components/Modal.d.ts +14 -0
  43. package/dist/timecampus/components/Modal.d.ts.map +1 -0
  44. package/dist/timecampus/components/PageLayout.d.ts +21 -0
  45. package/dist/timecampus/components/PageLayout.d.ts.map +1 -0
  46. package/dist/timecampus/components/StatCard.d.ts +19 -0
  47. package/dist/timecampus/components/StatCard.d.ts.map +1 -0
  48. package/dist/timecampus/components/StatusBadge.d.ts +16 -0
  49. package/dist/timecampus/components/StatusBadge.d.ts.map +1 -0
  50. package/dist/timecampus/components/Toast.d.ts +28 -0
  51. package/dist/timecampus/components/Toast.d.ts.map +1 -0
  52. package/dist/timecampus/components/charts/BalanceWheel.d.ts +30 -0
  53. package/dist/timecampus/components/charts/BalanceWheel.d.ts.map +1 -0
  54. package/dist/timecampus/components/charts/BarsChart.d.ts +39 -0
  55. package/dist/timecampus/components/charts/BarsChart.d.ts.map +1 -0
  56. package/dist/timecampus/components/charts/ChartParts.d.ts +86 -0
  57. package/dist/timecampus/components/charts/ChartParts.d.ts.map +1 -0
  58. package/dist/timecampus/components/charts/DonutChart.d.ts +34 -0
  59. package/dist/timecampus/components/charts/DonutChart.d.ts.map +1 -0
  60. package/dist/timecampus/components/charts/Heatmap.d.ts +47 -0
  61. package/dist/timecampus/components/charts/Heatmap.d.ts.map +1 -0
  62. package/dist/timecampus/components/charts/ProgressMeter.d.ts +40 -0
  63. package/dist/timecampus/components/charts/ProgressMeter.d.ts.map +1 -0
  64. package/dist/timecampus/components/charts/RadialGauge.d.ts +44 -0
  65. package/dist/timecampus/components/charts/RadialGauge.d.ts.map +1 -0
  66. package/dist/timecampus/components/charts/Sparkline.d.ts +25 -0
  67. package/dist/timecampus/components/charts/Sparkline.d.ts.map +1 -0
  68. package/dist/timecampus/components/charts/TrendChart.d.ts +37 -0
  69. package/dist/timecampus/components/charts/TrendChart.d.ts.map +1 -0
  70. package/dist/timecampus/components/charts/WeeksGrid.d.ts +26 -0
  71. package/dist/timecampus/components/charts/WeeksGrid.d.ts.map +1 -0
  72. package/dist/timecampus/components/charts/chartTheme.d.ts +95 -0
  73. package/dist/timecampus/components/charts/chartTheme.d.ts.map +1 -0
  74. package/dist/timecampus/components/charts/index.d.ts +76 -0
  75. package/dist/timecampus/components/charts/index.d.ts.map +1 -0
  76. package/dist/timecampus/components/index.d.ts +15 -0
  77. package/dist/timecampus/components/index.d.ts.map +1 -0
  78. package/dist/timecampus/components/index.js +2 -2
  79. package/dist/timecampus/hooks/index.d.ts +7 -0
  80. package/dist/timecampus/hooks/index.d.ts.map +1 -0
  81. package/dist/timecampus/hooks/useToast.d.ts +17 -0
  82. package/dist/timecampus/hooks/useToast.d.ts.map +1 -0
  83. package/dist/timecampus/index.d.ts +10 -0
  84. package/dist/timecampus/index.d.ts.map +1 -0
  85. package/dist/timecampus/pages/HomePage.d.ts +4 -0
  86. package/dist/timecampus/pages/HomePage.d.ts.map +1 -0
  87. package/dist/timecampus/pages/application-usage/ApplicationUsagePage.d.ts +2 -0
  88. package/dist/timecampus/pages/application-usage/ApplicationUsagePage.d.ts.map +1 -0
  89. package/dist/timecampus/pages/application-usage/ApplicationUsagePage.js +7 -7
  90. package/dist/timecampus/pages/client-portal/ClientPortalPage.d.ts +2 -0
  91. package/dist/timecampus/pages/client-portal/ClientPortalPage.d.ts.map +1 -0
  92. package/dist/timecampus/pages/client-portal/ClientPortalPage.js +6 -6
  93. package/dist/timecampus/pages/dashboard/AnalyticsPage.d.ts +2 -0
  94. package/dist/timecampus/pages/dashboard/AnalyticsPage.d.ts.map +1 -0
  95. package/dist/timecampus/pages/dashboard/ReportsPage.d.ts +2 -0
  96. package/dist/timecampus/pages/dashboard/ReportsPage.d.ts.map +1 -0
  97. package/dist/timecampus/pages/email-tracking/EmailAnalyticsPage.d.ts +2 -0
  98. package/dist/timecampus/pages/email-tracking/EmailAnalyticsPage.d.ts.map +1 -0
  99. package/dist/timecampus/pages/email-tracking/EmailTrackingPage.d.ts +2 -0
  100. package/dist/timecampus/pages/email-tracking/EmailTrackingPage.d.ts.map +1 -0
  101. package/dist/timecampus/pages/expense-tracking/ExpenseTrackingPage.d.ts +2 -0
  102. package/dist/timecampus/pages/expense-tracking/ExpenseTrackingPage.d.ts.map +1 -0
  103. package/dist/timecampus/pages/expense-tracking/ExpenseTrackingPage.js +8 -8
  104. package/dist/timecampus/pages/focus-score/FocusScorePage.d.ts +2 -0
  105. package/dist/timecampus/pages/focus-score/FocusScorePage.d.ts.map +1 -0
  106. package/dist/timecampus/pages/geofencing/GeofencingPage.d.ts +2 -0
  107. package/dist/timecampus/pages/geofencing/GeofencingPage.d.ts.map +1 -0
  108. package/dist/timecampus/pages/geofencing/GeofencingPage.js +6 -6
  109. package/dist/timecampus/pages/lifetime/DeadTimeRadarPage.d.ts +2 -0
  110. package/dist/timecampus/pages/lifetime/DeadTimeRadarPage.d.ts.map +1 -0
  111. package/dist/timecampus/pages/lifetime/FiniteLifePage.d.ts +14 -0
  112. package/dist/timecampus/pages/lifetime/FiniteLifePage.d.ts.map +1 -0
  113. package/dist/timecampus/pages/lifetime/FiniteLifePage.js +91 -91
  114. package/dist/timecampus/pages/lifetime/FiniteLifePage.js.map +1 -1
  115. package/dist/timecampus/pages/lifetime/LifeBalancePage.d.ts +2 -0
  116. package/dist/timecampus/pages/lifetime/LifeBalancePage.d.ts.map +1 -0
  117. package/dist/timecampus/pages/lifetime/LifeBalancePage.js +18 -18
  118. package/dist/timecampus/pages/lifetime/LifeTimelinePage.d.ts +2 -0
  119. package/dist/timecampus/pages/lifetime/LifeTimelinePage.d.ts.map +1 -0
  120. package/dist/timecampus/pages/lifetime/LifeTimelinePage.js +7 -7
  121. package/dist/timecampus/pages/lifetime/PersonalCorporatePage.d.ts +2 -0
  122. package/dist/timecampus/pages/lifetime/PersonalCorporatePage.d.ts.map +1 -0
  123. package/dist/timecampus/pages/lifetime/RecommendationsPage.d.ts +2 -0
  124. package/dist/timecampus/pages/lifetime/RecommendationsPage.d.ts.map +1 -0
  125. package/dist/timecampus/pages/lifetime/TimeWellSpentPage.d.ts +2 -0
  126. package/dist/timecampus/pages/lifetime/TimeWellSpentPage.d.ts.map +1 -0
  127. package/dist/timecampus/pages/lifetime/ValuesGoalsPage.d.ts +2 -0
  128. package/dist/timecampus/pages/lifetime/ValuesGoalsPage.d.ts.map +1 -0
  129. package/dist/timecampus/pages/lifetime/ValuesGoalsPage.js +1 -1
  130. package/dist/timecampus/pages/lifetime/domains.d.ts +23 -0
  131. package/dist/timecampus/pages/lifetime/domains.d.ts.map +1 -0
  132. package/dist/timecampus/pages/location-tracking/LocationTrackingPage.d.ts +2 -0
  133. package/dist/timecampus/pages/location-tracking/LocationTrackingPage.d.ts.map +1 -0
  134. package/dist/timecampus/pages/location-tracking/LocationTrackingPage.js +6 -6
  135. package/dist/timecampus/pages/meetings/ActionItemFormModal.d.ts +16 -0
  136. package/dist/timecampus/pages/meetings/ActionItemFormModal.d.ts.map +1 -0
  137. package/dist/timecampus/pages/meetings/MeetingAnalyticsPage.d.ts +2 -0
  138. package/dist/timecampus/pages/meetings/MeetingAnalyticsPage.d.ts.map +1 -0
  139. package/dist/timecampus/pages/meetings/MeetingCreatePage.d.ts +2 -0
  140. package/dist/timecampus/pages/meetings/MeetingCreatePage.d.ts.map +1 -0
  141. package/dist/timecampus/pages/meetings/MeetingDetailPage.d.ts +2 -0
  142. package/dist/timecampus/pages/meetings/MeetingDetailPage.d.ts.map +1 -0
  143. package/dist/timecampus/pages/meetings/MeetingFormModal.d.ts +28 -0
  144. package/dist/timecampus/pages/meetings/MeetingFormModal.d.ts.map +1 -0
  145. package/dist/timecampus/pages/meetings/MeetingsPage.d.ts +2 -0
  146. package/dist/timecampus/pages/meetings/MeetingsPage.d.ts.map +1 -0
  147. package/dist/timecampus/pages/meetings/ParticipantFormModal.d.ts +14 -0
  148. package/dist/timecampus/pages/meetings/ParticipantFormModal.d.ts.map +1 -0
  149. package/dist/timecampus/pages/pomodoro/PomodoroAnalyticsPage.d.ts +2 -0
  150. package/dist/timecampus/pages/pomodoro/PomodoroAnalyticsPage.d.ts.map +1 -0
  151. package/dist/timecampus/pages/pomodoro/PomodoroPage.d.ts +2 -0
  152. package/dist/timecampus/pages/pomodoro/PomodoroPage.d.ts.map +1 -0
  153. package/dist/timecampus/pages/pomodoro/PomodoroSettingsPage.d.ts +2 -0
  154. package/dist/timecampus/pages/pomodoro/PomodoroSettingsPage.d.ts.map +1 -0
  155. package/dist/timecampus/pages/projects/ProjectCreatePage.d.ts +2 -0
  156. package/dist/timecampus/pages/projects/ProjectCreatePage.d.ts.map +1 -0
  157. package/dist/timecampus/pages/projects/ProjectDetailPage.d.ts +2 -0
  158. package/dist/timecampus/pages/projects/ProjectDetailPage.d.ts.map +1 -0
  159. package/dist/timecampus/pages/projects/ProjectDetailPage.js +7 -7
  160. package/dist/timecampus/pages/projects/ProjectsPage.d.ts +2 -0
  161. package/dist/timecampus/pages/projects/ProjectsPage.d.ts.map +1 -0
  162. package/dist/timecampus/pages/projects/TasksPage.d.ts +2 -0
  163. package/dist/timecampus/pages/projects/TasksPage.d.ts.map +1 -0
  164. package/dist/timecampus/pages/resource-planning/ResourcePlanningPage.d.ts +2 -0
  165. package/dist/timecampus/pages/resource-planning/ResourcePlanningPage.d.ts.map +1 -0
  166. package/dist/timecampus/pages/resource-planning/ResourcePlanningPage.js +212 -212
  167. package/dist/timecampus/pages/resource-planning/ResourcePlanningPage.js.map +1 -1
  168. package/dist/timecampus/pages/team/TeamAnalyticsPage.d.ts +2 -0
  169. package/dist/timecampus/pages/team/TeamAnalyticsPage.d.ts.map +1 -0
  170. package/dist/timecampus/pages/team/TeamMembersPage.d.ts +2 -0
  171. package/dist/timecampus/pages/team/TeamMembersPage.d.ts.map +1 -0
  172. package/dist/timecampus/pages/team/TeamMembersPage.js +4 -4
  173. package/dist/timecampus/pages/team/TeamPage.d.ts +2 -0
  174. package/dist/timecampus/pages/team/TeamPage.d.ts.map +1 -0
  175. package/dist/timecampus/pages/team-activity/TeamActivityPage.d.ts +2 -0
  176. package/dist/timecampus/pages/team-activity/TeamActivityPage.d.ts.map +1 -0
  177. package/dist/timecampus/pages/time/TimeEntriesPage.d.ts +2 -0
  178. package/dist/timecampus/pages/time/TimeEntriesPage.d.ts.map +1 -0
  179. package/dist/timecampus/pages/time/TimeTrackingPage.d.ts +2 -0
  180. package/dist/timecampus/pages/time/TimeTrackingPage.d.ts.map +1 -0
  181. package/dist/timecampus/pages/time/TimeTrackingPage.js +143 -143
  182. package/dist/timecampus/pages/time/TimeTrackingPage.js.map +1 -1
  183. package/dist/timecampus/pages/time/TimerPage.d.ts +2 -0
  184. package/dist/timecampus/pages/time/TimerPage.d.ts.map +1 -0
  185. package/dist/timecampus/pages/time-approval/TimeApprovalPage.d.ts +2 -0
  186. package/dist/timecampus/pages/time-approval/TimeApprovalPage.d.ts.map +1 -0
  187. package/dist/timecampus/pages/time-approval/TimeApprovalPage.js +1 -1
  188. package/dist/timecampus/pages/timeline/TimelinePage.d.ts +2 -0
  189. package/dist/timecampus/pages/timeline/TimelinePage.d.ts.map +1 -0
  190. package/dist/timecampus/pages/timeline/TimelinePage.js +1 -1
  191. package/dist/timecampus/pages/timeline/TimelinePage.js.map +1 -1
  192. package/dist/timecampus/pages/work-patterns/WorkPatternsPage.d.ts +2 -0
  193. package/dist/timecampus/pages/work-patterns/WorkPatternsPage.d.ts.map +1 -0
  194. package/dist/timecampus/pages/work-patterns/WorkPatternsPage.js +87 -93
  195. package/dist/timecampus/pages/work-patterns/WorkPatternsPage.js.map +1 -1
  196. package/dist/timecampus/providers/TimeCampusProvider.d.ts +29 -0
  197. package/dist/timecampus/providers/TimeCampusProvider.d.ts.map +1 -0
  198. package/dist/timecampus/store/timecampusStore.d.ts +98 -0
  199. package/dist/timecampus/store/timecampusStore.d.ts.map +1 -0
  200. package/dist/timecampus/types/index.d.ts +615 -0
  201. package/dist/timecampus/types/index.d.ts.map +1 -0
  202. package/dist/timecampus/utils/helpers.d.ts +19 -0
  203. package/dist/timecampus/utils/helpers.d.ts.map +1 -0
  204. package/dist/timecampus/utils/index.d.ts +2 -0
  205. package/dist/timecampus/utils/index.d.ts.map +1 -0
  206. package/dist/types/assistant.d.ts +57 -0
  207. package/dist/types/assistant.d.ts.map +1 -0
  208. package/dist/utils/pageContext.d.ts +25 -0
  209. package/dist/utils/pageContext.d.ts.map +1 -0
  210. package/package.json +5 -1
  211. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +0 -24
  212. package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +0 -1
  213. package/dist/node_modules/@apollo/client/errors/utils.js +0 -16
  214. package/dist/node_modules/@apollo/client/errors/utils.js.map +0 -1
  215. package/dist/node_modules/clsx/dist/clsx.js +0 -18
  216. package/dist/node_modules/clsx/dist/clsx.js.map +0 -1
  217. package/dist/node_modules/d3-array/src/ascending.js +0 -8
  218. package/dist/node_modules/d3-array/src/ascending.js.map +0 -1
  219. package/dist/node_modules/d3-array/src/bisect.js +0 -10
  220. package/dist/node_modules/d3-array/src/bisect.js.map +0 -1
  221. package/dist/node_modules/d3-array/src/bisector.js +0 -43
  222. package/dist/node_modules/d3-array/src/bisector.js.map +0 -1
  223. package/dist/node_modules/d3-array/src/descending.js +0 -8
  224. package/dist/node_modules/d3-array/src/descending.js.map +0 -1
  225. package/dist/node_modules/d3-array/src/max.js +0 -14
  226. package/dist/node_modules/d3-array/src/max.js.map +0 -1
  227. package/dist/node_modules/d3-array/src/min.js +0 -14
  228. package/dist/node_modules/d3-array/src/min.js.map +0 -1
  229. package/dist/node_modules/d3-array/src/number.js +0 -15
  230. package/dist/node_modules/d3-array/src/number.js.map +0 -1
  231. package/dist/node_modules/d3-array/src/quantile.js +0 -25
  232. package/dist/node_modules/d3-array/src/quantile.js.map +0 -1
  233. package/dist/node_modules/d3-array/src/quickselect.js +0 -26
  234. package/dist/node_modules/d3-array/src/quickselect.js.map +0 -1
  235. package/dist/node_modules/d3-array/src/range.js +0 -10
  236. package/dist/node_modules/d3-array/src/range.js.map +0 -1
  237. package/dist/node_modules/d3-array/src/sort.js +0 -17
  238. package/dist/node_modules/d3-array/src/sort.js.map +0 -1
  239. package/dist/node_modules/d3-array/src/ticks.js +0 -34
  240. package/dist/node_modules/d3-array/src/ticks.js.map +0 -1
  241. package/dist/node_modules/d3-color/src/color.js +0 -291
  242. package/dist/node_modules/d3-color/src/color.js.map +0 -1
  243. package/dist/node_modules/d3-color/src/define.js +0 -13
  244. package/dist/node_modules/d3-color/src/define.js.map +0 -1
  245. package/dist/node_modules/d3-format/src/defaultLocale.js +0 -15
  246. package/dist/node_modules/d3-format/src/defaultLocale.js.map +0 -1
  247. package/dist/node_modules/d3-format/src/exponent.js +0 -9
  248. package/dist/node_modules/d3-format/src/exponent.js.map +0 -1
  249. package/dist/node_modules/d3-format/src/formatDecimal.js +0 -13
  250. package/dist/node_modules/d3-format/src/formatDecimal.js.map +0 -1
  251. package/dist/node_modules/d3-format/src/formatGroup.js +0 -11
  252. package/dist/node_modules/d3-format/src/formatGroup.js.map +0 -1
  253. package/dist/node_modules/d3-format/src/formatNumerals.js +0 -12
  254. package/dist/node_modules/d3-format/src/formatNumerals.js.map +0 -1
  255. package/dist/node_modules/d3-format/src/formatPrefixAuto.js +0 -13
  256. package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +0 -1
  257. package/dist/node_modules/d3-format/src/formatRounded.js +0 -12
  258. package/dist/node_modules/d3-format/src/formatRounded.js.map +0 -1
  259. package/dist/node_modules/d3-format/src/formatSpecifier.js +0 -29
  260. package/dist/node_modules/d3-format/src/formatSpecifier.js.map +0 -1
  261. package/dist/node_modules/d3-format/src/formatTrim.js +0 -20
  262. package/dist/node_modules/d3-format/src/formatTrim.js.map +0 -1
  263. package/dist/node_modules/d3-format/src/formatTypes.js +0 -23
  264. package/dist/node_modules/d3-format/src/formatTypes.js.map +0 -1
  265. package/dist/node_modules/d3-format/src/identity.js +0 -8
  266. package/dist/node_modules/d3-format/src/identity.js.map +0 -1
  267. package/dist/node_modules/d3-format/src/locale.js +0 -86
  268. package/dist/node_modules/d3-format/src/locale.js.map +0 -1
  269. package/dist/node_modules/d3-format/src/precisionFixed.js +0 -9
  270. package/dist/node_modules/d3-format/src/precisionFixed.js.map +0 -1
  271. package/dist/node_modules/d3-format/src/precisionPrefix.js +0 -9
  272. package/dist/node_modules/d3-format/src/precisionPrefix.js.map +0 -1
  273. package/dist/node_modules/d3-format/src/precisionRound.js +0 -9
  274. package/dist/node_modules/d3-format/src/precisionRound.js.map +0 -1
  275. package/dist/node_modules/d3-interpolate/src/array.js +0 -15
  276. package/dist/node_modules/d3-interpolate/src/array.js.map +0 -1
  277. package/dist/node_modules/d3-interpolate/src/basis.js +0 -16
  278. package/dist/node_modules/d3-interpolate/src/basis.js.map +0 -1
  279. package/dist/node_modules/d3-interpolate/src/basisClosed.js +0 -13
  280. package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +0 -1
  281. package/dist/node_modules/d3-interpolate/src/color.js +0 -25
  282. package/dist/node_modules/d3-interpolate/src/color.js.map +0 -1
  283. package/dist/node_modules/d3-interpolate/src/constant.js +0 -6
  284. package/dist/node_modules/d3-interpolate/src/constant.js.map +0 -1
  285. package/dist/node_modules/d3-interpolate/src/date.js +0 -11
  286. package/dist/node_modules/d3-interpolate/src/date.js.map +0 -1
  287. package/dist/node_modules/d3-interpolate/src/number.js +0 -10
  288. package/dist/node_modules/d3-interpolate/src/number.js.map +0 -1
  289. package/dist/node_modules/d3-interpolate/src/numberArray.js +0 -16
  290. package/dist/node_modules/d3-interpolate/src/numberArray.js.map +0 -1
  291. package/dist/node_modules/d3-interpolate/src/object.js +0 -14
  292. package/dist/node_modules/d3-interpolate/src/object.js.map +0 -1
  293. package/dist/node_modules/d3-interpolate/src/piecewise.js +0 -14
  294. package/dist/node_modules/d3-interpolate/src/piecewise.js.map +0 -1
  295. package/dist/node_modules/d3-interpolate/src/rgb.js +0 -19
  296. package/dist/node_modules/d3-interpolate/src/rgb.js.map +0 -1
  297. package/dist/node_modules/d3-interpolate/src/round.js +0 -10
  298. package/dist/node_modules/d3-interpolate/src/round.js.map +0 -1
  299. package/dist/node_modules/d3-interpolate/src/string.js +0 -28
  300. package/dist/node_modules/d3-interpolate/src/string.js.map +0 -1
  301. package/dist/node_modules/d3-interpolate/src/value.js +0 -18
  302. package/dist/node_modules/d3-interpolate/src/value.js.map +0 -1
  303. package/dist/node_modules/d3-path/src/path.js +0 -65
  304. package/dist/node_modules/d3-path/src/path.js.map +0 -1
  305. package/dist/node_modules/d3-scale/src/band.js +0 -52
  306. package/dist/node_modules/d3-scale/src/band.js.map +0 -1
  307. package/dist/node_modules/d3-scale/src/constant.js +0 -10
  308. package/dist/node_modules/d3-scale/src/constant.js.map +0 -1
  309. package/dist/node_modules/d3-scale/src/continuous.js +0 -73
  310. package/dist/node_modules/d3-scale/src/continuous.js.map +0 -1
  311. package/dist/node_modules/d3-scale/src/diverging.js +0 -82
  312. package/dist/node_modules/d3-scale/src/diverging.js.map +0 -1
  313. package/dist/node_modules/d3-scale/src/identity.js +0 -20
  314. package/dist/node_modules/d3-scale/src/identity.js.map +0 -1
  315. package/dist/node_modules/d3-scale/src/init.js +0 -29
  316. package/dist/node_modules/d3-scale/src/init.js.map +0 -1
  317. package/dist/node_modules/d3-scale/src/linear.js +0 -36
  318. package/dist/node_modules/d3-scale/src/linear.js.map +0 -1
  319. package/dist/node_modules/d3-scale/src/log.js +0 -77
  320. package/dist/node_modules/d3-scale/src/log.js.map +0 -1
  321. package/dist/node_modules/d3-scale/src/nice.js +0 -10
  322. package/dist/node_modules/d3-scale/src/nice.js.map +0 -1
  323. package/dist/node_modules/d3-scale/src/number.js +0 -8
  324. package/dist/node_modules/d3-scale/src/number.js.map +0 -1
  325. package/dist/node_modules/d3-scale/src/ordinal.js +0 -31
  326. package/dist/node_modules/d3-scale/src/ordinal.js.map +0 -1
  327. package/dist/node_modules/d3-scale/src/pow.js +0 -37
  328. package/dist/node_modules/d3-scale/src/pow.js.map +0 -1
  329. package/dist/node_modules/d3-scale/src/quantile.js +0 -37
  330. package/dist/node_modules/d3-scale/src/quantile.js.map +0 -1
  331. package/dist/node_modules/d3-scale/src/quantize.js +0 -33
  332. package/dist/node_modules/d3-scale/src/quantize.js.map +0 -1
  333. package/dist/node_modules/d3-scale/src/radial.js +0 -39
  334. package/dist/node_modules/d3-scale/src/radial.js.map +0 -1
  335. package/dist/node_modules/d3-scale/src/sequential.js +0 -67
  336. package/dist/node_modules/d3-scale/src/sequential.js.map +0 -1
  337. package/dist/node_modules/d3-scale/src/sequentialQuantile.js +0 -30
  338. package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +0 -1
  339. package/dist/node_modules/d3-scale/src/symlog.js +0 -30
  340. package/dist/node_modules/d3-scale/src/symlog.js.map +0 -1
  341. package/dist/node_modules/d3-scale/src/threshold.js +0 -25
  342. package/dist/node_modules/d3-scale/src/threshold.js.map +0 -1
  343. package/dist/node_modules/d3-scale/src/tickFormat.js +0 -31
  344. package/dist/node_modules/d3-scale/src/tickFormat.js.map +0 -1
  345. package/dist/node_modules/d3-scale/src/time.js +0 -47
  346. package/dist/node_modules/d3-scale/src/time.js.map +0 -1
  347. package/dist/node_modules/d3-scale/src/utcTime.js +0 -19
  348. package/dist/node_modules/d3-scale/src/utcTime.js.map +0 -1
  349. package/dist/node_modules/d3-shape/src/area.js +0 -55
  350. package/dist/node_modules/d3-shape/src/area.js.map +0 -1
  351. package/dist/node_modules/d3-shape/src/array.js +0 -8
  352. package/dist/node_modules/d3-shape/src/array.js.map +0 -1
  353. package/dist/node_modules/d3-shape/src/constant.js +0 -10
  354. package/dist/node_modules/d3-shape/src/constant.js.map +0 -1
  355. package/dist/node_modules/d3-shape/src/curve/basis.js +0 -49
  356. package/dist/node_modules/d3-shape/src/curve/basis.js.map +0 -1
  357. package/dist/node_modules/d3-shape/src/curve/basisClosed.js +0 -50
  358. package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +0 -1
  359. package/dist/node_modules/d3-shape/src/curve/basisOpen.js +0 -46
  360. package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +0 -1
  361. package/dist/node_modules/d3-shape/src/curve/bump.js +0 -40
  362. package/dist/node_modules/d3-shape/src/curve/bump.js.map +0 -1
  363. package/dist/node_modules/d3-shape/src/curve/linear.js +0 -36
  364. package/dist/node_modules/d3-shape/src/curve/linear.js.map +0 -1
  365. package/dist/node_modules/d3-shape/src/curve/linearClosed.js +0 -25
  366. package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +0 -1
  367. package/dist/node_modules/d3-shape/src/curve/monotone.js +0 -94
  368. package/dist/node_modules/d3-shape/src/curve/monotone.js.map +0 -1
  369. package/dist/node_modules/d3-shape/src/curve/natural.js +0 -39
  370. package/dist/node_modules/d3-shape/src/curve/natural.js.map +0 -1
  371. package/dist/node_modules/d3-shape/src/curve/step.js +0 -47
  372. package/dist/node_modules/d3-shape/src/curve/step.js.map +0 -1
  373. package/dist/node_modules/d3-shape/src/line.js +0 -30
  374. package/dist/node_modules/d3-shape/src/line.js.map +0 -1
  375. package/dist/node_modules/d3-shape/src/math.js +0 -8
  376. package/dist/node_modules/d3-shape/src/math.js.map +0 -1
  377. package/dist/node_modules/d3-shape/src/noop.js +0 -6
  378. package/dist/node_modules/d3-shape/src/noop.js.map +0 -1
  379. package/dist/node_modules/d3-shape/src/offset/expand.js +0 -15
  380. package/dist/node_modules/d3-shape/src/offset/expand.js.map +0 -1
  381. package/dist/node_modules/d3-shape/src/offset/none.js +0 -8
  382. package/dist/node_modules/d3-shape/src/offset/none.js.map +0 -1
  383. package/dist/node_modules/d3-shape/src/offset/silhouette.js +0 -15
  384. package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +0 -1
  385. package/dist/node_modules/d3-shape/src/offset/wiggle.js +0 -21
  386. package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +0 -1
  387. package/dist/node_modules/d3-shape/src/order/none.js +0 -9
  388. package/dist/node_modules/d3-shape/src/order/none.js.map +0 -1
  389. package/dist/node_modules/d3-shape/src/path.js +0 -19
  390. package/dist/node_modules/d3-shape/src/path.js.map +0 -1
  391. package/dist/node_modules/d3-shape/src/point.js +0 -11
  392. package/dist/node_modules/d3-shape/src/point.js.map +0 -1
  393. package/dist/node_modules/d3-shape/src/stack.js +0 -34
  394. package/dist/node_modules/d3-shape/src/stack.js.map +0 -1
  395. package/dist/node_modules/d3-shape/src/symbol/circle.js +0 -10
  396. package/dist/node_modules/d3-shape/src/symbol/circle.js.map +0 -1
  397. package/dist/node_modules/d3-shape/src/symbol/cross.js +0 -10
  398. package/dist/node_modules/d3-shape/src/symbol/cross.js.map +0 -1
  399. package/dist/node_modules/d3-shape/src/symbol/diamond.js +0 -10
  400. package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +0 -1
  401. package/dist/node_modules/d3-shape/src/symbol/square.js +0 -10
  402. package/dist/node_modules/d3-shape/src/symbol/square.js.map +0 -1
  403. package/dist/node_modules/d3-shape/src/symbol/star.js +0 -15
  404. package/dist/node_modules/d3-shape/src/symbol/star.js.map +0 -1
  405. package/dist/node_modules/d3-shape/src/symbol/triangle.js +0 -10
  406. package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +0 -1
  407. package/dist/node_modules/d3-shape/src/symbol/wye.js +0 -10
  408. package/dist/node_modules/d3-shape/src/symbol/wye.js.map +0 -1
  409. package/dist/node_modules/d3-shape/src/symbol.js +0 -23
  410. package/dist/node_modules/d3-shape/src/symbol.js.map +0 -1
  411. package/dist/node_modules/d3-time/src/day.js +0 -21
  412. package/dist/node_modules/d3-time/src/day.js.map +0 -1
  413. package/dist/node_modules/d3-time/src/duration.js +0 -6
  414. package/dist/node_modules/d3-time/src/duration.js.map +0 -1
  415. package/dist/node_modules/d3-time/src/hour.js +0 -19
  416. package/dist/node_modules/d3-time/src/hour.js.map +0 -1
  417. package/dist/node_modules/d3-time/src/interval.js +0 -28
  418. package/dist/node_modules/d3-time/src/interval.js.map +0 -1
  419. package/dist/node_modules/d3-time/src/millisecond.js +0 -14
  420. package/dist/node_modules/d3-time/src/millisecond.js.map +0 -1
  421. package/dist/node_modules/d3-time/src/minute.js +0 -19
  422. package/dist/node_modules/d3-time/src/minute.js.map +0 -1
  423. package/dist/node_modules/d3-time/src/month.js +0 -18
  424. package/dist/node_modules/d3-time/src/month.js.map +0 -1
  425. package/dist/node_modules/d3-time/src/second.js +0 -13
  426. package/dist/node_modules/d3-time/src/second.js.map +0 -1
  427. package/dist/node_modules/d3-time/src/ticks.js +0 -125
  428. package/dist/node_modules/d3-time/src/ticks.js.map +0 -1
  429. package/dist/node_modules/d3-time/src/week.js +0 -25
  430. package/dist/node_modules/d3-time/src/week.js.map +0 -1
  431. package/dist/node_modules/d3-time/src/year.js +0 -26
  432. package/dist/node_modules/d3-time/src/year.js.map +0 -1
  433. package/dist/node_modules/d3-time-format/src/defaultLocale.js +0 -62
  434. package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +0 -1
  435. package/dist/node_modules/d3-time-format/src/locale.js +0 -490
  436. package/dist/node_modules/d3-time-format/src/locale.js.map +0 -1
  437. package/dist/node_modules/decimal.js-light/decimal.js +0 -378
  438. package/dist/node_modules/decimal.js-light/decimal.js.map +0 -1
  439. package/dist/node_modules/eventemitter3/index.js +0 -95
  440. package/dist/node_modules/eventemitter3/index.js.map +0 -1
  441. package/dist/node_modules/fast-equals/dist/es/index.js +0 -267
  442. package/dist/node_modules/fast-equals/dist/es/index.js.map +0 -1
  443. package/dist/node_modules/internmap/src/index.js +0 -40
  444. package/dist/node_modules/internmap/src/index.js.map +0 -1
  445. package/dist/node_modules/lodash/_DataView.js +0 -12
  446. package/dist/node_modules/lodash/_DataView.js.map +0 -1
  447. package/dist/node_modules/lodash/_Hash.js +0 -23
  448. package/dist/node_modules/lodash/_Hash.js.map +0 -1
  449. package/dist/node_modules/lodash/_ListCache.js +0 -23
  450. package/dist/node_modules/lodash/_ListCache.js.map +0 -1
  451. package/dist/node_modules/lodash/_Map.js +0 -12
  452. package/dist/node_modules/lodash/_Map.js.map +0 -1
  453. package/dist/node_modules/lodash/_MapCache.js +0 -23
  454. package/dist/node_modules/lodash/_MapCache.js.map +0 -1
  455. package/dist/node_modules/lodash/_Promise.js +0 -12
  456. package/dist/node_modules/lodash/_Promise.js.map +0 -1
  457. package/dist/node_modules/lodash/_Set.js +0 -12
  458. package/dist/node_modules/lodash/_Set.js.map +0 -1
  459. package/dist/node_modules/lodash/_SetCache.js +0 -18
  460. package/dist/node_modules/lodash/_SetCache.js.map +0 -1
  461. package/dist/node_modules/lodash/_Stack.js +0 -20
  462. package/dist/node_modules/lodash/_Stack.js.map +0 -1
  463. package/dist/node_modules/lodash/_Symbol.js +0 -11
  464. package/dist/node_modules/lodash/_Symbol.js.map +0 -1
  465. package/dist/node_modules/lodash/_Uint8Array.js +0 -11
  466. package/dist/node_modules/lodash/_Uint8Array.js.map +0 -1
  467. package/dist/node_modules/lodash/_WeakMap.js +0 -12
  468. package/dist/node_modules/lodash/_WeakMap.js.map +0 -1
  469. package/dist/node_modules/lodash/_apply.js +0 -19
  470. package/dist/node_modules/lodash/_apply.js.map +0 -1
  471. package/dist/node_modules/lodash/_arrayEvery.js +0 -14
  472. package/dist/node_modules/lodash/_arrayEvery.js.map +0 -1
  473. package/dist/node_modules/lodash/_arrayFilter.js +0 -17
  474. package/dist/node_modules/lodash/_arrayFilter.js.map +0 -1
  475. package/dist/node_modules/lodash/_arrayIncludes.js +0 -15
  476. package/dist/node_modules/lodash/_arrayIncludes.js.map +0 -1
  477. package/dist/node_modules/lodash/_arrayIncludesWith.js +0 -14
  478. package/dist/node_modules/lodash/_arrayIncludesWith.js.map +0 -1
  479. package/dist/node_modules/lodash/_arrayLikeKeys.js +0 -22
  480. package/dist/node_modules/lodash/_arrayLikeKeys.js.map +0 -1
  481. package/dist/node_modules/lodash/_arrayMap.js +0 -14
  482. package/dist/node_modules/lodash/_arrayMap.js.map +0 -1
  483. package/dist/node_modules/lodash/_arrayPush.js +0 -14
  484. package/dist/node_modules/lodash/_arrayPush.js.map +0 -1
  485. package/dist/node_modules/lodash/_arraySome.js +0 -14
  486. package/dist/node_modules/lodash/_arraySome.js.map +0 -1
  487. package/dist/node_modules/lodash/_asciiToArray.js +0 -13
  488. package/dist/node_modules/lodash/_asciiToArray.js.map +0 -1
  489. package/dist/node_modules/lodash/_assocIndexOf.js +0 -16
  490. package/dist/node_modules/lodash/_assocIndexOf.js.map +0 -1
  491. package/dist/node_modules/lodash/_baseAssignValue.js +0 -20
  492. package/dist/node_modules/lodash/_baseAssignValue.js.map +0 -1
  493. package/dist/node_modules/lodash/_baseEach.js +0 -13
  494. package/dist/node_modules/lodash/_baseEach.js.map +0 -1
  495. package/dist/node_modules/lodash/_baseEvery.js +0 -18
  496. package/dist/node_modules/lodash/_baseEvery.js.map +0 -1
  497. package/dist/node_modules/lodash/_baseExtremum.js +0 -19
  498. package/dist/node_modules/lodash/_baseExtremum.js.map +0 -1
  499. package/dist/node_modules/lodash/_baseFindIndex.js +0 -14
  500. package/dist/node_modules/lodash/_baseFindIndex.js.map +0 -1
  501. package/dist/node_modules/lodash/_baseFlatten.js +0 -21
  502. package/dist/node_modules/lodash/_baseFlatten.js.map +0 -1
  503. package/dist/node_modules/lodash/_baseFor.js +0 -11
  504. package/dist/node_modules/lodash/_baseFor.js.map +0 -1
  505. package/dist/node_modules/lodash/_baseForOwn.js +0 -16
  506. package/dist/node_modules/lodash/_baseForOwn.js.map +0 -1
  507. package/dist/node_modules/lodash/_baseGet.js +0 -18
  508. package/dist/node_modules/lodash/_baseGet.js.map +0 -1
  509. package/dist/node_modules/lodash/_baseGetAllKeys.js +0 -17
  510. package/dist/node_modules/lodash/_baseGetAllKeys.js.map +0 -1
  511. package/dist/node_modules/lodash/_baseGetTag.js +0 -17
  512. package/dist/node_modules/lodash/_baseGetTag.js.map +0 -1
  513. package/dist/node_modules/lodash/_baseGt.js +0 -13
  514. package/dist/node_modules/lodash/_baseGt.js.map +0 -1
  515. package/dist/node_modules/lodash/_baseHasIn.js +0 -13
  516. package/dist/node_modules/lodash/_baseHasIn.js.map +0 -1
  517. package/dist/node_modules/lodash/_baseIndexOf.js +0 -17
  518. package/dist/node_modules/lodash/_baseIndexOf.js.map +0 -1
  519. package/dist/node_modules/lodash/_baseIsArguments.js +0 -16
  520. package/dist/node_modules/lodash/_baseIsArguments.js.map +0 -1
  521. package/dist/node_modules/lodash/_baseIsEqual.js +0 -16
  522. package/dist/node_modules/lodash/_baseIsEqual.js.map +0 -1
  523. package/dist/node_modules/lodash/_baseIsEqualDeep.js +0 -37
  524. package/dist/node_modules/lodash/_baseIsEqualDeep.js.map +0 -1
  525. package/dist/node_modules/lodash/_baseIsMatch.js +0 -33
  526. package/dist/node_modules/lodash/_baseIsMatch.js.map +0 -1
  527. package/dist/node_modules/lodash/_baseIsNaN.js +0 -13
  528. package/dist/node_modules/lodash/_baseIsNaN.js.map +0 -1
  529. package/dist/node_modules/lodash/_baseIsNative.js +0 -18
  530. package/dist/node_modules/lodash/_baseIsNative.js.map +0 -1
  531. package/dist/node_modules/lodash/_baseIsTypedArray.js +0 -18
  532. package/dist/node_modules/lodash/_baseIsTypedArray.js.map +0 -1
  533. package/dist/node_modules/lodash/_baseIteratee.js +0 -19
  534. package/dist/node_modules/lodash/_baseIteratee.js.map +0 -1
  535. package/dist/node_modules/lodash/_baseKeys.js +0 -19
  536. package/dist/node_modules/lodash/_baseKeys.js.map +0 -1
  537. package/dist/node_modules/lodash/_baseLt.js +0 -13
  538. package/dist/node_modules/lodash/_baseLt.js.map +0 -1
  539. package/dist/node_modules/lodash/_baseMap.js +0 -19
  540. package/dist/node_modules/lodash/_baseMap.js.map +0 -1
  541. package/dist/node_modules/lodash/_baseMatches.js +0 -20
  542. package/dist/node_modules/lodash/_baseMatches.js.map +0 -1
  543. package/dist/node_modules/lodash/_baseMatchesProperty.js +0 -24
  544. package/dist/node_modules/lodash/_baseMatchesProperty.js.map +0 -1
  545. package/dist/node_modules/lodash/_baseOrderBy.js +0 -39
  546. package/dist/node_modules/lodash/_baseOrderBy.js.map +0 -1
  547. package/dist/node_modules/lodash/_baseProperty.js +0 -15
  548. package/dist/node_modules/lodash/_baseProperty.js.map +0 -1
  549. package/dist/node_modules/lodash/_basePropertyDeep.js +0 -17
  550. package/dist/node_modules/lodash/_basePropertyDeep.js.map +0 -1
  551. package/dist/node_modules/lodash/_baseRange.js +0 -15
  552. package/dist/node_modules/lodash/_baseRange.js.map +0 -1
  553. package/dist/node_modules/lodash/_baseRest.js +0 -17
  554. package/dist/node_modules/lodash/_baseRest.js.map +0 -1
  555. package/dist/node_modules/lodash/_baseSetToString.js +0 -21
  556. package/dist/node_modules/lodash/_baseSetToString.js.map +0 -1
  557. package/dist/node_modules/lodash/_baseSlice.js +0 -16
  558. package/dist/node_modules/lodash/_baseSlice.js.map +0 -1
  559. package/dist/node_modules/lodash/_baseSome.js +0 -18
  560. package/dist/node_modules/lodash/_baseSome.js.map +0 -1
  561. package/dist/node_modules/lodash/_baseSortBy.js +0 -15
  562. package/dist/node_modules/lodash/_baseSortBy.js.map +0 -1
  563. package/dist/node_modules/lodash/_baseTimes.js +0 -14
  564. package/dist/node_modules/lodash/_baseTimes.js.map +0 -1
  565. package/dist/node_modules/lodash/_baseToString.js +0 -22
  566. package/dist/node_modules/lodash/_baseToString.js.map +0 -1
  567. package/dist/node_modules/lodash/_baseTrim.js +0 -15
  568. package/dist/node_modules/lodash/_baseTrim.js.map +0 -1
  569. package/dist/node_modules/lodash/_baseUnary.js +0 -15
  570. package/dist/node_modules/lodash/_baseUnary.js.map +0 -1
  571. package/dist/node_modules/lodash/_baseUniq.js +0 -34
  572. package/dist/node_modules/lodash/_baseUniq.js.map +0 -1
  573. package/dist/node_modules/lodash/_cacheHas.js +0 -13
  574. package/dist/node_modules/lodash/_cacheHas.js.map +0 -1
  575. package/dist/node_modules/lodash/_castPath.js +0 -18
  576. package/dist/node_modules/lodash/_castPath.js.map +0 -1
  577. package/dist/node_modules/lodash/_castSlice.js +0 -16
  578. package/dist/node_modules/lodash/_castSlice.js.map +0 -1
  579. package/dist/node_modules/lodash/_compareAscending.js +0 -20
  580. package/dist/node_modules/lodash/_compareAscending.js.map +0 -1
  581. package/dist/node_modules/lodash/_compareMultiple.js +0 -19
  582. package/dist/node_modules/lodash/_compareMultiple.js.map +0 -1
  583. package/dist/node_modules/lodash/_coreJsData.js +0 -11
  584. package/dist/node_modules/lodash/_coreJsData.js.map +0 -1
  585. package/dist/node_modules/lodash/_createBaseEach.js +0 -20
  586. package/dist/node_modules/lodash/_createBaseEach.js.map +0 -1
  587. package/dist/node_modules/lodash/_createBaseFor.js +0 -19
  588. package/dist/node_modules/lodash/_createBaseFor.js.map +0 -1
  589. package/dist/node_modules/lodash/_createCaseFirst.js +0 -22
  590. package/dist/node_modules/lodash/_createCaseFirst.js.map +0 -1
  591. package/dist/node_modules/lodash/_createFind.js +0 -27
  592. package/dist/node_modules/lodash/_createFind.js.map +0 -1
  593. package/dist/node_modules/lodash/_createRange.js +0 -19
  594. package/dist/node_modules/lodash/_createRange.js.map +0 -1
  595. package/dist/node_modules/lodash/_createSet.js +0 -16
  596. package/dist/node_modules/lodash/_createSet.js.map +0 -1
  597. package/dist/node_modules/lodash/_defineProperty.js +0 -17
  598. package/dist/node_modules/lodash/_defineProperty.js.map +0 -1
  599. package/dist/node_modules/lodash/_equalArrays.js +0 -42
  600. package/dist/node_modules/lodash/_equalArrays.js.map +0 -1
  601. package/dist/node_modules/lodash/_equalByTag.js +0 -42
  602. package/dist/node_modules/lodash/_equalByTag.js.map +0 -1
  603. package/dist/node_modules/lodash/_equalObjects.js +0 -39
  604. package/dist/node_modules/lodash/_equalObjects.js.map +0 -1
  605. package/dist/node_modules/lodash/_freeGlobal.js +0 -10
  606. package/dist/node_modules/lodash/_freeGlobal.js.map +0 -1
  607. package/dist/node_modules/lodash/_getAllKeys.js +0 -17
  608. package/dist/node_modules/lodash/_getAllKeys.js.map +0 -1
  609. package/dist/node_modules/lodash/_getMapData.js +0 -16
  610. package/dist/node_modules/lodash/_getMapData.js.map +0 -1
  611. package/dist/node_modules/lodash/_getMatchData.js +0 -24
  612. package/dist/node_modules/lodash/_getMatchData.js.map +0 -1
  613. package/dist/node_modules/lodash/_getNative.js +0 -17
  614. package/dist/node_modules/lodash/_getNative.js.map +0 -1
  615. package/dist/node_modules/lodash/_getPrototype.js +0 -11
  616. package/dist/node_modules/lodash/_getPrototype.js.map +0 -1
  617. package/dist/node_modules/lodash/_getRawTag.js +0 -21
  618. package/dist/node_modules/lodash/_getRawTag.js.map +0 -1
  619. package/dist/node_modules/lodash/_getSymbols.js +0 -17
  620. package/dist/node_modules/lodash/_getSymbols.js.map +0 -1
  621. package/dist/node_modules/lodash/_getTag.js +0 -28
  622. package/dist/node_modules/lodash/_getTag.js.map +0 -1
  623. package/dist/node_modules/lodash/_getValue.js +0 -13
  624. package/dist/node_modules/lodash/_getValue.js.map +0 -1
  625. package/dist/node_modules/lodash/_hasPath.js +0 -26
  626. package/dist/node_modules/lodash/_hasPath.js.map +0 -1
  627. package/dist/node_modules/lodash/_hasUnicode.js +0 -14
  628. package/dist/node_modules/lodash/_hasUnicode.js.map +0 -1
  629. package/dist/node_modules/lodash/_hashClear.js +0 -15
  630. package/dist/node_modules/lodash/_hashClear.js.map +0 -1
  631. package/dist/node_modules/lodash/_hashDelete.js +0 -14
  632. package/dist/node_modules/lodash/_hashDelete.js.map +0 -1
  633. package/dist/node_modules/lodash/_hashGet.js +0 -20
  634. package/dist/node_modules/lodash/_hashGet.js.map +0 -1
  635. package/dist/node_modules/lodash/_hashHas.js +0 -16
  636. package/dist/node_modules/lodash/_hashHas.js.map +0 -1
  637. package/dist/node_modules/lodash/_hashSet.js +0 -16
  638. package/dist/node_modules/lodash/_hashSet.js.map +0 -1
  639. package/dist/node_modules/lodash/_isFlattenable.js +0 -17
  640. package/dist/node_modules/lodash/_isFlattenable.js.map +0 -1
  641. package/dist/node_modules/lodash/_isIndex.js +0 -15
  642. package/dist/node_modules/lodash/_isIndex.js.map +0 -1
  643. package/dist/node_modules/lodash/_isIterateeCall.js +0 -20
  644. package/dist/node_modules/lodash/_isIterateeCall.js.map +0 -1
  645. package/dist/node_modules/lodash/_isKey.js +0 -18
  646. package/dist/node_modules/lodash/_isKey.js.map +0 -1
  647. package/dist/node_modules/lodash/_isKeyable.js +0 -14
  648. package/dist/node_modules/lodash/_isKeyable.js.map +0 -1
  649. package/dist/node_modules/lodash/_isMasked.js +0 -18
  650. package/dist/node_modules/lodash/_isMasked.js.map +0 -1
  651. package/dist/node_modules/lodash/_isPrototype.js +0 -15
  652. package/dist/node_modules/lodash/_isPrototype.js.map +0 -1
  653. package/dist/node_modules/lodash/_isStrictComparable.js +0 -15
  654. package/dist/node_modules/lodash/_isStrictComparable.js.map +0 -1
  655. package/dist/node_modules/lodash/_listCacheClear.js +0 -13
  656. package/dist/node_modules/lodash/_listCacheClear.js.map +0 -1
  657. package/dist/node_modules/lodash/_listCacheDelete.js +0 -16
  658. package/dist/node_modules/lodash/_listCacheDelete.js.map +0 -1
  659. package/dist/node_modules/lodash/_listCacheGet.js +0 -16
  660. package/dist/node_modules/lodash/_listCacheGet.js.map +0 -1
  661. package/dist/node_modules/lodash/_listCacheHas.js +0 -15
  662. package/dist/node_modules/lodash/_listCacheHas.js.map +0 -1
  663. package/dist/node_modules/lodash/_listCacheSet.js +0 -16
  664. package/dist/node_modules/lodash/_listCacheSet.js.map +0 -1
  665. package/dist/node_modules/lodash/_mapCacheClear.js +0 -21
  666. package/dist/node_modules/lodash/_mapCacheClear.js.map +0 -1
  667. package/dist/node_modules/lodash/_mapCacheDelete.js +0 -16
  668. package/dist/node_modules/lodash/_mapCacheDelete.js.map +0 -1
  669. package/dist/node_modules/lodash/_mapCacheGet.js +0 -15
  670. package/dist/node_modules/lodash/_mapCacheGet.js.map +0 -1
  671. package/dist/node_modules/lodash/_mapCacheHas.js +0 -15
  672. package/dist/node_modules/lodash/_mapCacheHas.js.map +0 -1
  673. package/dist/node_modules/lodash/_mapCacheSet.js +0 -16
  674. package/dist/node_modules/lodash/_mapCacheSet.js.map +0 -1
  675. package/dist/node_modules/lodash/_mapToArray.js +0 -16
  676. package/dist/node_modules/lodash/_mapToArray.js.map +0 -1
  677. package/dist/node_modules/lodash/_matchesStrictComparable.js +0 -15
  678. package/dist/node_modules/lodash/_matchesStrictComparable.js.map +0 -1
  679. package/dist/node_modules/lodash/_memoizeCapped.js +0 -18
  680. package/dist/node_modules/lodash/_memoizeCapped.js.map +0 -1
  681. package/dist/node_modules/lodash/_nativeCreate.js +0 -11
  682. package/dist/node_modules/lodash/_nativeCreate.js.map +0 -1
  683. package/dist/node_modules/lodash/_nativeKeys.js +0 -11
  684. package/dist/node_modules/lodash/_nativeKeys.js.map +0 -1
  685. package/dist/node_modules/lodash/_nodeUtil.js +0 -16
  686. package/dist/node_modules/lodash/_nodeUtil.js.map +0 -1
  687. package/dist/node_modules/lodash/_objectToString.js +0 -14
  688. package/dist/node_modules/lodash/_objectToString.js.map +0 -1
  689. package/dist/node_modules/lodash/_overArg.js +0 -15
  690. package/dist/node_modules/lodash/_overArg.js.map +0 -1
  691. package/dist/node_modules/lodash/_overRest.js +0 -20
  692. package/dist/node_modules/lodash/_overRest.js.map +0 -1
  693. package/dist/node_modules/lodash/_root.js +0 -12
  694. package/dist/node_modules/lodash/_root.js.map +0 -1
  695. package/dist/node_modules/lodash/_setCacheAdd.js +0 -14
  696. package/dist/node_modules/lodash/_setCacheAdd.js.map +0 -1
  697. package/dist/node_modules/lodash/_setCacheHas.js +0 -13
  698. package/dist/node_modules/lodash/_setCacheHas.js.map +0 -1
  699. package/dist/node_modules/lodash/_setToArray.js +0 -16
  700. package/dist/node_modules/lodash/_setToArray.js.map +0 -1
  701. package/dist/node_modules/lodash/_setToString.js +0 -13
  702. package/dist/node_modules/lodash/_setToString.js.map +0 -1
  703. package/dist/node_modules/lodash/_shortOut.js +0 -21
  704. package/dist/node_modules/lodash/_shortOut.js.map +0 -1
  705. package/dist/node_modules/lodash/_stackClear.js +0 -15
  706. package/dist/node_modules/lodash/_stackClear.js.map +0 -1
  707. package/dist/node_modules/lodash/_stackDelete.js +0 -14
  708. package/dist/node_modules/lodash/_stackDelete.js.map +0 -1
  709. package/dist/node_modules/lodash/_stackGet.js +0 -13
  710. package/dist/node_modules/lodash/_stackGet.js.map +0 -1
  711. package/dist/node_modules/lodash/_stackHas.js +0 -13
  712. package/dist/node_modules/lodash/_stackHas.js.map +0 -1
  713. package/dist/node_modules/lodash/_stackSet.js +0 -23
  714. package/dist/node_modules/lodash/_stackSet.js.map +0 -1
  715. package/dist/node_modules/lodash/_strictIndexOf.js +0 -14
  716. package/dist/node_modules/lodash/_strictIndexOf.js.map +0 -1
  717. package/dist/node_modules/lodash/_stringToArray.js +0 -17
  718. package/dist/node_modules/lodash/_stringToArray.js.map +0 -1
  719. package/dist/node_modules/lodash/_stringToPath.js +0 -17
  720. package/dist/node_modules/lodash/_stringToPath.js.map +0 -1
  721. package/dist/node_modules/lodash/_toKey.js +0 -17
  722. package/dist/node_modules/lodash/_toKey.js.map +0 -1
  723. package/dist/node_modules/lodash/_toSource.js +0 -22
  724. package/dist/node_modules/lodash/_toSource.js.map +0 -1
  725. package/dist/node_modules/lodash/_trimmedEndIndex.js +0 -15
  726. package/dist/node_modules/lodash/_trimmedEndIndex.js.map +0 -1
  727. package/dist/node_modules/lodash/_unicodeToArray.js +0 -24
  728. package/dist/node_modules/lodash/_unicodeToArray.js.map +0 -1
  729. package/dist/node_modules/lodash/constant.js +0 -15
  730. package/dist/node_modules/lodash/constant.js.map +0 -1
  731. package/dist/node_modules/lodash/debounce.js +0 -57
  732. package/dist/node_modules/lodash/debounce.js.map +0 -1
  733. package/dist/node_modules/lodash/eq.js +0 -13
  734. package/dist/node_modules/lodash/eq.js.map +0 -1
  735. package/dist/node_modules/lodash/every.js +0 -20
  736. package/dist/node_modules/lodash/every.js.map +0 -1
  737. package/dist/node_modules/lodash/find.js +0 -12
  738. package/dist/node_modules/lodash/find.js.map +0 -1
  739. package/dist/node_modules/lodash/findIndex.js +0 -20
  740. package/dist/node_modules/lodash/findIndex.js.map +0 -1
  741. package/dist/node_modules/lodash/first.js +0 -11
  742. package/dist/node_modules/lodash/first.js.map +0 -1
  743. package/dist/node_modules/lodash/flatMap.js +0 -16
  744. package/dist/node_modules/lodash/flatMap.js.map +0 -1
  745. package/dist/node_modules/lodash/get.js +0 -16
  746. package/dist/node_modules/lodash/get.js.map +0 -1
  747. package/dist/node_modules/lodash/hasIn.js +0 -16
  748. package/dist/node_modules/lodash/hasIn.js.map +0 -1
  749. package/dist/node_modules/lodash/head.js +0 -13
  750. package/dist/node_modules/lodash/head.js.map +0 -1
  751. package/dist/node_modules/lodash/identity.js +0 -13
  752. package/dist/node_modules/lodash/identity.js.map +0 -1
  753. package/dist/node_modules/lodash/isArguments.js +0 -17
  754. package/dist/node_modules/lodash/isArguments.js.map +0 -1
  755. package/dist/node_modules/lodash/isArray.js +0 -10
  756. package/dist/node_modules/lodash/isArray.js.map +0 -1
  757. package/dist/node_modules/lodash/isArrayLike.js +0 -16
  758. package/dist/node_modules/lodash/isArrayLike.js.map +0 -1
  759. package/dist/node_modules/lodash/isBoolean.js +0 -16
  760. package/dist/node_modules/lodash/isBoolean.js.map +0 -1
  761. package/dist/node_modules/lodash/isBuffer.js +0 -13
  762. package/dist/node_modules/lodash/isBuffer.js.map +0 -1
  763. package/dist/node_modules/lodash/isEqual.js +0 -15
  764. package/dist/node_modules/lodash/isEqual.js.map +0 -1
  765. package/dist/node_modules/lodash/isFunction.js +0 -18
  766. package/dist/node_modules/lodash/isFunction.js.map +0 -1
  767. package/dist/node_modules/lodash/isLength.js +0 -14
  768. package/dist/node_modules/lodash/isLength.js.map +0 -1
  769. package/dist/node_modules/lodash/isNaN.js +0 -15
  770. package/dist/node_modules/lodash/isNaN.js.map +0 -1
  771. package/dist/node_modules/lodash/isNil.js +0 -13
  772. package/dist/node_modules/lodash/isNil.js.map +0 -1
  773. package/dist/node_modules/lodash/isNumber.js +0 -16
  774. package/dist/node_modules/lodash/isNumber.js.map +0 -1
  775. package/dist/node_modules/lodash/isObject.js +0 -14
  776. package/dist/node_modules/lodash/isObject.js.map +0 -1
  777. package/dist/node_modules/lodash/isObjectLike.js +0 -13
  778. package/dist/node_modules/lodash/isObjectLike.js.map +0 -1
  779. package/dist/node_modules/lodash/isPlainObject.js +0 -21
  780. package/dist/node_modules/lodash/isPlainObject.js.map +0 -1
  781. package/dist/node_modules/lodash/isString.js +0 -17
  782. package/dist/node_modules/lodash/isString.js.map +0 -1
  783. package/dist/node_modules/lodash/isSymbol.js +0 -16
  784. package/dist/node_modules/lodash/isSymbol.js.map +0 -1
  785. package/dist/node_modules/lodash/isTypedArray.js +0 -14
  786. package/dist/node_modules/lodash/isTypedArray.js.map +0 -1
  787. package/dist/node_modules/lodash/keys.js +0 -17
  788. package/dist/node_modules/lodash/keys.js.map +0 -1
  789. package/dist/node_modules/lodash/last.js +0 -14
  790. package/dist/node_modules/lodash/last.js.map +0 -1
  791. package/dist/node_modules/lodash/map.js +0 -18
  792. package/dist/node_modules/lodash/map.js.map +0 -1
  793. package/dist/node_modules/lodash/mapValues.js +0 -20
  794. package/dist/node_modules/lodash/mapValues.js.map +0 -1
  795. package/dist/node_modules/lodash/max.js +0 -17
  796. package/dist/node_modules/lodash/max.js.map +0 -1
  797. package/dist/node_modules/lodash/maxBy.js +0 -17
  798. package/dist/node_modules/lodash/maxBy.js.map +0 -1
  799. package/dist/node_modules/lodash/memoize.js +0 -22
  800. package/dist/node_modules/lodash/memoize.js.map +0 -1
  801. package/dist/node_modules/lodash/min.js +0 -17
  802. package/dist/node_modules/lodash/min.js.map +0 -1
  803. package/dist/node_modules/lodash/minBy.js +0 -17
  804. package/dist/node_modules/lodash/minBy.js.map +0 -1
  805. package/dist/node_modules/lodash/noop.js +0 -11
  806. package/dist/node_modules/lodash/noop.js.map +0 -1
  807. package/dist/node_modules/lodash/now.js +0 -14
  808. package/dist/node_modules/lodash/now.js.map +0 -1
  809. package/dist/node_modules/lodash/property.js +0 -18
  810. package/dist/node_modules/lodash/property.js.map +0 -1
  811. package/dist/node_modules/lodash/range.js +0 -11
  812. package/dist/node_modules/lodash/range.js.map +0 -1
  813. package/dist/node_modules/lodash/some.js +0 -20
  814. package/dist/node_modules/lodash/some.js.map +0 -1
  815. package/dist/node_modules/lodash/sortBy.js +0 -19
  816. package/dist/node_modules/lodash/sortBy.js.map +0 -1
  817. package/dist/node_modules/lodash/stubArray.js +0 -13
  818. package/dist/node_modules/lodash/stubArray.js.map +0 -1
  819. package/dist/node_modules/lodash/stubFalse.js +0 -13
  820. package/dist/node_modules/lodash/stubFalse.js.map +0 -1
  821. package/dist/node_modules/lodash/throttle.js +0 -22
  822. package/dist/node_modules/lodash/throttle.js.map +0 -1
  823. package/dist/node_modules/lodash/toFinite.js +0 -15
  824. package/dist/node_modules/lodash/toFinite.js.map +0 -1
  825. package/dist/node_modules/lodash/toInteger.js +0 -16
  826. package/dist/node_modules/lodash/toInteger.js.map +0 -1
  827. package/dist/node_modules/lodash/toNumber.js +0 -26
  828. package/dist/node_modules/lodash/toNumber.js.map +0 -1
  829. package/dist/node_modules/lodash/toString.js +0 -15
  830. package/dist/node_modules/lodash/toString.js.map +0 -1
  831. package/dist/node_modules/lodash/uniqBy.js +0 -16
  832. package/dist/node_modules/lodash/uniqBy.js.map +0 -1
  833. package/dist/node_modules/lodash/upperFirst.js +0 -11
  834. package/dist/node_modules/lodash/upperFirst.js.map +0 -1
  835. package/dist/node_modules/object-assign/index.js +0 -41
  836. package/dist/node_modules/object-assign/index.js.map +0 -1
  837. package/dist/node_modules/prop-types/checkPropTypes.js +0 -46
  838. package/dist/node_modules/prop-types/checkPropTypes.js.map +0 -1
  839. package/dist/node_modules/prop-types/factoryWithThrowingShims.js +0 -49
  840. package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +0 -1
  841. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +0 -272
  842. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +0 -1
  843. package/dist/node_modules/prop-types/index.js +0 -16
  844. package/dist/node_modules/prop-types/index.js.map +0 -1
  845. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +0 -10
  846. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +0 -1
  847. package/dist/node_modules/prop-types/lib/has.js +0 -10
  848. package/dist/node_modules/prop-types/lib/has.js.map +0 -1
  849. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +0 -84
  850. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +0 -1
  851. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +0 -64
  852. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +0 -1
  853. package/dist/node_modules/prop-types/node_modules/react-is/index.js +0 -12
  854. package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +0 -1
  855. package/dist/node_modules/react-is/cjs/react-is.development.js +0 -87
  856. package/dist/node_modules/react-is/cjs/react-is.development.js.map +0 -1
  857. package/dist/node_modules/react-is/cjs/react-is.production.min.js +0 -65
  858. package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +0 -1
  859. package/dist/node_modules/react-is/index.js +0 -12
  860. package/dist/node_modules/react-is/index.js.map +0 -1
  861. package/dist/node_modules/react-smooth/es6/Animate.js +0 -374
  862. package/dist/node_modules/react-smooth/es6/Animate.js.map +0 -1
  863. package/dist/node_modules/react-smooth/es6/AnimateManager.js +0 -73
  864. package/dist/node_modules/react-smooth/es6/AnimateManager.js.map +0 -1
  865. package/dist/node_modules/react-smooth/es6/configUpdate.js +0 -173
  866. package/dist/node_modules/react-smooth/es6/configUpdate.js.map +0 -1
  867. package/dist/node_modules/react-smooth/es6/easing.js +0 -152
  868. package/dist/node_modules/react-smooth/es6/easing.js.map +0 -1
  869. package/dist/node_modules/react-smooth/es6/index.js +0 -9
  870. package/dist/node_modules/react-smooth/es6/index.js.map +0 -1
  871. package/dist/node_modules/react-smooth/es6/setRafTimeout.js +0 -14
  872. package/dist/node_modules/react-smooth/es6/setRafTimeout.js.map +0 -1
  873. package/dist/node_modules/react-smooth/es6/util.js +0 -92
  874. package/dist/node_modules/react-smooth/es6/util.js.map +0 -1
  875. package/dist/node_modules/recharts/es6/cartesian/Area.js +0 -435
  876. package/dist/node_modules/recharts/es6/cartesian/Area.js.map +0 -1
  877. package/dist/node_modules/recharts/es6/cartesian/Bar.js +0 -387
  878. package/dist/node_modules/recharts/es6/cartesian/Bar.js.map +0 -1
  879. package/dist/node_modules/recharts/es6/cartesian/Brush.js +0 -499
  880. package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +0 -1
  881. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +0 -338
  882. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +0 -1
  883. package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js +0 -305
  884. package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js.map +0 -1
  885. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +0 -243
  886. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +0 -1
  887. package/dist/node_modules/recharts/es6/cartesian/Line.js +0 -473
  888. package/dist/node_modules/recharts/es6/cartesian/Line.js.map +0 -1
  889. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +0 -173
  890. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +0 -1
  891. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +0 -178
  892. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +0 -1
  893. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +0 -254
  894. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +0 -1
  895. package/dist/node_modules/recharts/es6/cartesian/XAxis.js +0 -144
  896. package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +0 -1
  897. package/dist/node_modules/recharts/es6/cartesian/YAxis.js +0 -143
  898. package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +0 -1
  899. package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js +0 -18
  900. package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +0 -1
  901. package/dist/node_modules/recharts/es6/cartesian/getTicks.js +0 -121
  902. package/dist/node_modules/recharts/es6/cartesian/getTicks.js.map +0 -1
  903. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +0 -101
  904. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js.map +0 -1
  905. package/dist/node_modules/recharts/es6/chart/AreaChart.js +0 -22
  906. package/dist/node_modules/recharts/es6/chart/AreaChart.js.map +0 -1
  907. package/dist/node_modules/recharts/es6/chart/BarChart.js +0 -24
  908. package/dist/node_modules/recharts/es6/chart/BarChart.js.map +0 -1
  909. package/dist/node_modules/recharts/es6/chart/LineChart.js +0 -22
  910. package/dist/node_modules/recharts/es6/chart/LineChart.js.map +0 -1
  911. package/dist/node_modules/recharts/es6/chart/PieChart.js +0 -34
  912. package/dist/node_modules/recharts/es6/chart/PieChart.js.map +0 -1
  913. package/dist/node_modules/recharts/es6/chart/RadarChart.js +0 -31
  914. package/dist/node_modules/recharts/es6/chart/RadarChart.js.map +0 -1
  915. package/dist/node_modules/recharts/es6/chart/RadialBarChart.js +0 -34
  916. package/dist/node_modules/recharts/es6/chart/RadialBarChart.js.map +0 -1
  917. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +0 -1245
  918. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +0 -1
  919. package/dist/node_modules/recharts/es6/component/Cell.js +0 -9
  920. package/dist/node_modules/recharts/es6/component/Cell.js.map +0 -1
  921. package/dist/node_modules/recharts/es6/component/Cursor.js +0 -93
  922. package/dist/node_modules/recharts/es6/component/Cursor.js.map +0 -1
  923. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +0 -237
  924. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js.map +0 -1
  925. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +0 -171
  926. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +0 -1
  927. package/dist/node_modules/recharts/es6/component/Label.js +0 -353
  928. package/dist/node_modules/recharts/es6/component/Label.js.map +0 -1
  929. package/dist/node_modules/recharts/es6/component/LabelList.js +0 -166
  930. package/dist/node_modules/recharts/es6/component/LabelList.js.map +0 -1
  931. package/dist/node_modules/recharts/es6/component/Legend.js +0 -234
  932. package/dist/node_modules/recharts/es6/component/Legend.js.map +0 -1
  933. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +0 -187
  934. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +0 -1
  935. package/dist/node_modules/recharts/es6/component/Text.js +0 -225
  936. package/dist/node_modules/recharts/es6/component/Text.js.map +0 -1
  937. package/dist/node_modules/recharts/es6/component/Tooltip.js +0 -182
  938. package/dist/node_modules/recharts/es6/component/Tooltip.js.map +0 -1
  939. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +0 -198
  940. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +0 -1
  941. package/dist/node_modules/recharts/es6/container/Layer.js +0 -40
  942. package/dist/node_modules/recharts/es6/container/Layer.js.map +0 -1
  943. package/dist/node_modules/recharts/es6/container/Surface.js +0 -60
  944. package/dist/node_modules/recharts/es6/container/Surface.js.map +0 -1
  945. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +0 -57
  946. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js.map +0 -1
  947. package/dist/node_modules/recharts/es6/polar/Pie.js +0 -435
  948. package/dist/node_modules/recharts/es6/polar/Pie.js.map +0 -1
  949. package/dist/node_modules/recharts/es6/polar/PolarAngleAxis.js +0 -215
  950. package/dist/node_modules/recharts/es6/polar/PolarAngleAxis.js.map +0 -1
  951. package/dist/node_modules/recharts/es6/polar/PolarGrid.js +0 -162
  952. package/dist/node_modules/recharts/es6/polar/PolarGrid.js.map +0 -1
  953. package/dist/node_modules/recharts/es6/polar/PolarRadiusAxis.js +0 -268
  954. package/dist/node_modules/recharts/es6/polar/PolarRadiusAxis.js.map +0 -1
  955. package/dist/node_modules/recharts/es6/polar/Radar.js +0 -317
  956. package/dist/node_modules/recharts/es6/polar/Radar.js.map +0 -1
  957. package/dist/node_modules/recharts/es6/polar/RadialBar.js +0 -342
  958. package/dist/node_modules/recharts/es6/polar/RadialBar.js.map +0 -1
  959. package/dist/node_modules/recharts/es6/shape/Cross.js +0 -112
  960. package/dist/node_modules/recharts/es6/shape/Cross.js.map +0 -1
  961. package/dist/node_modules/recharts/es6/shape/Curve.js +0 -136
  962. package/dist/node_modules/recharts/es6/shape/Curve.js.map +0 -1
  963. package/dist/node_modules/recharts/es6/shape/Dot.js +0 -27
  964. package/dist/node_modules/recharts/es6/shape/Dot.js.map +0 -1
  965. package/dist/node_modules/recharts/es6/shape/Polygon.js +0 -112
  966. package/dist/node_modules/recharts/es6/shape/Polygon.js.map +0 -1
  967. package/dist/node_modules/recharts/es6/shape/Rectangle.js +0 -205
  968. package/dist/node_modules/recharts/es6/shape/Rectangle.js.map +0 -1
  969. package/dist/node_modules/recharts/es6/shape/Sector.js +0 -192
  970. package/dist/node_modules/recharts/es6/shape/Sector.js.map +0 -1
  971. package/dist/node_modules/recharts/es6/shape/Symbols.js +0 -143
  972. package/dist/node_modules/recharts/es6/shape/Symbols.js.map +0 -1
  973. package/dist/node_modules/recharts/es6/shape/Trapezoid.js +0 -175
  974. package/dist/node_modules/recharts/es6/shape/Trapezoid.js.map +0 -1
  975. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +0 -181
  976. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +0 -1
  977. package/dist/node_modules/recharts/es6/util/BarUtils.js +0 -112
  978. package/dist/node_modules/recharts/es6/util/BarUtils.js.map +0 -1
  979. package/dist/node_modules/recharts/es6/util/CartesianUtils.js +0 -234
  980. package/dist/node_modules/recharts/es6/util/CartesianUtils.js.map +0 -1
  981. package/dist/node_modules/recharts/es6/util/ChartUtils.js +0 -562
  982. package/dist/node_modules/recharts/es6/util/ChartUtils.js.map +0 -1
  983. package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js +0 -70
  984. package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js.map +0 -1
  985. package/dist/node_modules/recharts/es6/util/DOMUtils.js +0 -108
  986. package/dist/node_modules/recharts/es6/util/DOMUtils.js.map +0 -1
  987. package/dist/node_modules/recharts/es6/util/DataUtils.js +0 -57
  988. package/dist/node_modules/recharts/es6/util/DataUtils.js.map +0 -1
  989. package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js +0 -58
  990. package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +0 -1
  991. package/dist/node_modules/recharts/es6/util/Events.js +0 -7
  992. package/dist/node_modules/recharts/es6/util/Events.js.map +0 -1
  993. package/dist/node_modules/recharts/es6/util/Global.js +0 -21
  994. package/dist/node_modules/recharts/es6/util/Global.js.map +0 -1
  995. package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js +0 -9
  996. package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js.map +0 -1
  997. package/dist/node_modules/recharts/es6/util/LogUtils.js +0 -15
  998. package/dist/node_modules/recharts/es6/util/LogUtils.js.map +0 -1
  999. package/dist/node_modules/recharts/es6/util/PolarUtils.js +0 -198
  1000. package/dist/node_modules/recharts/es6/util/PolarUtils.js.map +0 -1
  1001. package/dist/node_modules/recharts/es6/util/RadialBarUtils.js +0 -83
  1002. package/dist/node_modules/recharts/es6/util/RadialBarUtils.js.map +0 -1
  1003. package/dist/node_modules/recharts/es6/util/ReactUtils.js +0 -137
  1004. package/dist/node_modules/recharts/es6/util/ReactUtils.js.map +0 -1
  1005. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +0 -181
  1006. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +0 -1
  1007. package/dist/node_modules/recharts/es6/util/ShallowEqual.js +0 -10
  1008. package/dist/node_modules/recharts/es6/util/ShallowEqual.js.map +0 -1
  1009. package/dist/node_modules/recharts/es6/util/TickUtils.js +0 -31
  1010. package/dist/node_modules/recharts/es6/util/TickUtils.js.map +0 -1
  1011. package/dist/node_modules/recharts/es6/util/calculateViewBox.js +0 -25
  1012. package/dist/node_modules/recharts/es6/util/calculateViewBox.js.map +0 -1
  1013. package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js +0 -23
  1014. package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +0 -1
  1015. package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js +0 -16
  1016. package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +0 -1
  1017. package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js +0 -17
  1018. package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +0 -1
  1019. package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js +0 -12
  1020. package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +0 -1
  1021. package/dist/node_modules/recharts/es6/util/getLegendProps.js +0 -88
  1022. package/dist/node_modules/recharts/es6/util/getLegendProps.js.map +0 -1
  1023. package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js +0 -13
  1024. package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +0 -1
  1025. package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js +0 -12
  1026. package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +0 -1
  1027. package/dist/node_modules/recharts/es6/util/tooltip/translate.js +0 -87
  1028. package/dist/node_modules/recharts/es6/util/tooltip/translate.js.map +0 -1
  1029. package/dist/node_modules/recharts/es6/util/types.js +0 -43
  1030. package/dist/node_modules/recharts/es6/util/types.js.map +0 -1
  1031. package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js +0 -132
  1032. package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js.map +0 -1
  1033. package/dist/node_modules/recharts-scale/es6/index.js +0 -1
  1034. package/dist/node_modules/recharts-scale/es6/util/arithmetic.js +0 -32
  1035. package/dist/node_modules/recharts-scale/es6/util/arithmetic.js.map +0 -1
  1036. package/dist/node_modules/recharts-scale/es6/util/utils.js +0 -79
  1037. package/dist/node_modules/recharts-scale/es6/util/utils.js.map +0 -1
  1038. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -1716
  1039. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
  1040. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +0 -13
  1041. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +0 -1
  1042. package/dist/node_modules/victory-vendor/es/d3-scale.js +0 -53
  1043. package/dist/node_modules/victory-vendor/es/d3-scale.js.map +0 -1
  1044. package/dist/timecampus/pages/applets/AppletStorePage.js +0 -167
  1045. package/dist/timecampus/pages/applets/AppletStorePage.js.map +0 -1
  1046. package/dist/timecampus/pages/applets/InstalledAppletsPage.js +0 -162
  1047. package/dist/timecampus/pages/applets/InstalledAppletsPage.js.map +0 -1
  1048. package/dist/timecampus/pages/application-usage/ApplicationUsageSettingsPage.js +0 -133
  1049. package/dist/timecampus/pages/application-usage/ApplicationUsageSettingsPage.js.map +0 -1
  1050. package/dist/timecampus/pages/channels/ChannelsPage.js +0 -418
  1051. package/dist/timecampus/pages/channels/ChannelsPage.js.map +0 -1
  1052. package/dist/timecampus/pages/email-tracking/EmailSettingsPage.js +0 -142
  1053. package/dist/timecampus/pages/email-tracking/EmailSettingsPage.js.map +0 -1
  1054. package/dist/timecampus/pages/focus-score/FocusScoreSettingsPage.js +0 -119
  1055. package/dist/timecampus/pages/focus-score/FocusScoreSettingsPage.js.map +0 -1
  1056. package/dist/timecampus/pages/geofencing/GeofencingSettingsPage.js +0 -110
  1057. package/dist/timecampus/pages/geofencing/GeofencingSettingsPage.js.map +0 -1
  1058. package/dist/timecampus/pages/industry-solutions/IndustrySolutionsPage.js +0 -83
  1059. package/dist/timecampus/pages/industry-solutions/IndustrySolutionsPage.js.map +0 -1
  1060. package/dist/timecampus/pages/location-tracking/LocationPrivacySettingsPage.js +0 -198
  1061. package/dist/timecampus/pages/location-tracking/LocationPrivacySettingsPage.js.map +0 -1
  1062. package/dist/timecampus/pages/team-activity/TeamActivitySettingsPage.js +0 -124
  1063. package/dist/timecampus/pages/team-activity/TeamActivitySettingsPage.js.map +0 -1
  1064. package/dist/timecampus/pages/templates/TemplateApplicationPage.js +0 -88
  1065. package/dist/timecampus/pages/templates/TemplateApplicationPage.js.map +0 -1
  1066. package/dist/timecampus/pages/templates/TemplateDetailPage.js +0 -135
  1067. package/dist/timecampus/pages/templates/TemplateDetailPage.js.map +0 -1
  1068. package/dist/timecampus/pages/templates/TemplatesPage.js +0 -191
  1069. package/dist/timecampus/pages/templates/TemplatesPage.js.map +0 -1
  1070. package/dist/timecampus/pages/widgets/WidgetDetailPage.js +0 -196
  1071. package/dist/timecampus/pages/widgets/WidgetDetailPage.js.map +0 -1
  1072. package/dist/timecampus/pages/widgets/WidgetsPage.js +0 -297
  1073. package/dist/timecampus/pages/widgets/WidgetsPage.js.map +0 -1
  1074. package/dist/timecampus/pages/work-patterns/WorkPatternsSettingsPage.js +0 -133
  1075. package/dist/timecampus/pages/work-patterns/WorkPatternsSettingsPage.js.map +0 -1
  1076. package/dist/timecampus/pages/workflows/WorkflowsPage.js +0 -311
  1077. package/dist/timecampus/pages/workflows/WorkflowsPage.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TimeTrackingPage.js","names":[],"sources":["../../../../src/timecampus/pages/time/TimeTrackingPage.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { Clock, Play, Pause, Square } from \"lucide-react\";\nimport { GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout } from \"../../components/PageLayout\";\nimport { Modal } from \"../../components/Modal\";\nimport { StatCard } from \"../../components/StatCard\";\nimport { EmptyState } from \"../../components/EmptyState\";\nimport { LoadingSkeleton } from \"../../components/LoadingSkeleton\";\nimport {\n ChartCard,\n DonutChart,\n BarsChart,\n StatusBadge,\n} from \"../../components\";\nimport { useTimeCampusNavigate } from \"../../providers/TimeCampusProvider\";\nimport {\n formatHours,\n formatTimerDuration,\n getInitials,\n} from \"../../utils/helpers\";\nimport { useTimeCampusStore } from \"../../store/timecampusStore\";\nimport {\n useGetTimeEntryStatsQuery,\n useListTimeEntriesQuery,\n useListRunningTimersQuery,\n useStartTimerMutation,\n useStopTimerMutation,\n useListProjectsQuery,\n ListRunningTimersDocument,\n ListTimeEntriesDocument,\n GetTimeEntryStatsDocument,\n type TimeEntryFieldsFragment,\n type ListProjectsQuery,\n} from \"@/generated/wspace-operations\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\n\ntype ProjectOption = ListProjectsQuery[\"projects\"][\"items\"][number];\n\nexport function TimeTrackingPage() {\n const { t: translate } = useI18n();\n const t = (key: string, fallback: string): string => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n const { activeTimer, tickTimer, syncTimerFromServer } = useTimeCampusStore();\n const navigate = useTimeCampusNavigate();\n\n const [startOpen, setStartOpen] = useState(false);\n const [description, setDescription] = useState(\"\");\n const [projectId, setProjectId] = useState(\"\");\n const [billable, setBillable] = useState(false);\n\n const { data: statsData, loading: statsLoading } =\n useGetTimeEntryStatsQuery();\n const { data: entriesData, loading: entriesLoading } =\n useListTimeEntriesQuery({\n variables: { limit: 10 },\n });\n const {\n data: runningData,\n loading: runningLoading,\n refetch: refetchRunning,\n } = useListRunningTimersQuery({ fetchPolicy: \"cache-and-network\" });\n const { data: projectsData } = useListProjectsQuery({\n variables: { limit: 50 },\n });\n const projects: ProjectOption[] = projectsData?.projects?.items ?? [];\n\n const serverTimer = runningData?.runningTimers?.[0] ?? null;\n\n const refetchAll = [\n { query: ListRunningTimersDocument },\n { query: ListTimeEntriesDocument, variables: { limit: 10 } },\n { query: GetTimeEntryStatsDocument },\n ];\n\n const [startTimerMutation, { loading: starting, error: startError }] =\n useStartTimerMutation({ refetchQueries: refetchAll });\n const [stopTimerMutation, { loading: stopping }] = useStopTimerMutation({\n refetchQueries: refetchAll,\n });\n\n // Backend is authoritative for \"is a timer running\" — mirror into the store.\n useEffect(() => {\n if (serverTimer) {\n syncTimerFromServer({\n timeEntryId: serverTimer.timeEntry.id,\n elapsedSeconds: serverTimer.elapsedSeconds,\n projectId: serverTimer.timeEntry.projectId ?? undefined,\n taskId: serverTimer.timeEntry.taskId ?? undefined,\n description: serverTimer.timeEntry.description ?? undefined,\n });\n } else if (!runningLoading) {\n syncTimerFromServer(null);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [serverTimer?.timeEntry.id, serverTimer?.elapsedSeconds, runningLoading]);\n\n // Live seconds ticker for the display.\n useEffect(() => {\n if (!activeTimer?.isRunning) return;\n const interval = setInterval(() => tickTimer(), 1000);\n return () => clearInterval(interval);\n }, [activeTimer?.isRunning, tickTimer]);\n\n const isRunning = Boolean(serverTimer);\n\n const handleStart = async () => {\n await startTimerMutation({\n variables: {\n input: {\n description: description.trim() || undefined,\n projectId: projectId || undefined,\n billable,\n source: \"timecampus\",\n },\n },\n });\n setStartOpen(false);\n setDescription(\"\");\n setProjectId(\"\");\n setBillable(false);\n await refetchRunning();\n };\n\n const handleStop = async () => {\n if (!serverTimer) return;\n await stopTimerMutation({ variables: { id: serverTimer.timeEntry.id } });\n await refetchRunning();\n };\n\n const stats = statsData?.timeEntryStats;\n const todayEntries = entriesData?.timeEntries?.items ?? [];\n\n const noProjectLabel = t(\n \"timecampus.timeTracking.entries.noProject\",\n \"No Project\",\n );\n\n // Real aggregates for the charts — derived only from data already fetched.\n const billableHours = stats?.billableHours ?? 0;\n const totalHours = stats?.totalHours ?? 0;\n const nonBillableHours = Math.max(0, totalHours - billableHours);\n const billablePct =\n totalHours > 0 ? Math.round((billableHours / totalHours) * 100) : 0;\n\n const billableSlices = [\n {\n name: t(\"timecampus.timeTracking.charts.billable\", \"Billable\"),\n value: Number(billableHours.toFixed(2)),\n },\n {\n name: t(\"timecampus.timeTracking.charts.nonBillable\", \"Non-billable\"),\n value: Number(nonBillableHours.toFixed(2)),\n },\n ];\n\n const projectHours = new Map<string, number>();\n for (const entry of todayEntries) {\n const name = entry.project?.name ?? noProjectLabel;\n projectHours.set(\n name,\n (projectHours.get(name) ?? 0) + (entry.duration ?? 0) / 3600,\n );\n }\n const hoursByProject = Array.from(projectHours, ([name, hours]) => ({\n name,\n hours: Number(hours.toFixed(2)),\n }))\n .filter((row) => row.hours > 0)\n .sort((a, b) => b.hours - a.hours)\n .slice(0, 6);\n\n if (statsLoading) {\n return (\n <PageLayout\n title={t(\"timecampus.timeTracking.title\", \"Time Tracking\")}\n description={t(\n \"timecampus.timeTracking.description\",\n \"Track and manage your work hours\",\n )}\n >\n <LoadingSkeleton variant=\"card\" count={4} />\n </PageLayout>\n );\n }\n\n return (\n <PageLayout\n title={t(\"timecampus.timeTracking.title\", \"Time Tracking\")}\n description={t(\n \"timecampus.timeTracking.description\",\n \"Track and manage your work hours\",\n )}\n purpose={t(\n \"timecampus.timeTracking.purpose\",\n \"Start a timer the moment you begin work and your hours are captured automatically — review today's totals, see what's billable, and stop guessing where your day went.\",\n )}\n actions={\n <button\n onClick={() => (isRunning ? handleStop() : setStartOpen(true))}\n disabled={starting || stopping}\n className={`inline-flex items-center gap-2 rounded-md px-4 py-2 text-sm font-medium disabled:opacity-50 ${isRunning ? \"bg-action-danger-bg text-action-primary-text hover:bg-action-danger-bg/90\" : \"bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg/90\"}`}\n >\n {isRunning ? (\n <>\n <Square className=\"h-4 w-4\" />\n {t(\"timecampus.timeTracking.actions.stop\", \"Stop\")} (\n {formatTimerDuration(activeTimer?.seconds ?? 0)})\n </>\n ) : (\n <>\n <Play className=\"h-4 w-4\" />\n {t(\"timecampus.timeTracking.actions.startTimer\", \"Start Timer\")}\n </>\n )}\n </button>\n }\n >\n <GlassCard treatment=\"glass\" glow className=\"p-6 sm:p-8\">\n <div className=\"flex flex-col gap-6 lg:flex-row lg:items-center lg:justify-between\">\n <div className=\"min-w-0\">\n <div className=\"flex items-center gap-2 text-xs font-medium uppercase tracking-wide text-text-secondary\">\n <span\n className={`h-2 w-2 rounded-full ${isRunning ? \"bg-status-success-text motion-safe:animate-vc-glow-pulse\" : \"bg-muted-foreground\"}`}\n />\n {isRunning\n ? t(\"timecampus.timeTracking.hero.running\", \"Timer running\")\n : t(\"timecampus.timeTracking.hero.idle\", \"Timer idle\")}\n </div>\n <p className=\"mt-3 font-mono text-5xl font-bold tabular-nums text-text-primary sm:text-6xl\">\n {formatTimerDuration(activeTimer?.seconds ?? 0)}\n </p>\n <div className=\"mt-3 flex flex-wrap items-center gap-2 text-sm text-text-secondary\">\n <span className=\"min-w-0 truncate\">\n {activeTimer?.description ||\n (isRunning\n ? t(\n \"timecampus.timeTracking.entries.noDescription\",\n \"No description\",\n )\n : t(\n \"timecampus.timeTracking.hero.prompt\",\n \"Start a timer to begin tracking\",\n ))}\n </span>\n {serverTimer?.timeEntry.project?.name && (\n <StatusBadge\n label={serverTimer.timeEntry.project.name}\n variant=\"default\"\n />\n )}\n </div>\n </div>\n <div className=\"flex shrink-0 items-center gap-3\">\n {isRunning ? (\n <button\n onClick={handleStop}\n disabled={stopping}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-danger-bg px-6 py-3 text-sm font-medium text-action-primary-text hover:bg-action-danger-bg/90 disabled:opacity-50\"\n >\n <Square className=\"h-4 w-4\" />\n {stopping\n ? t(\"timecampus.timeTracking.hero.stopping\", \"Stopping...\")\n : t(\"timecampus.timeTracking.actions.stop\", \"Stop\")}\n </button>\n ) : (\n <button\n onClick={() => setStartOpen(true)}\n disabled={starting}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-6 py-3 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-50\"\n >\n <Play className=\"h-4 w-4\" />\n {t(\"timecampus.timeTracking.actions.startTimer\", \"Start Timer\")}\n </button>\n )}\n </div>\n </div>\n </GlassCard>\n\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n <StatCard\n featured\n title={t(\"timecampus.timeTracking.stats.today\", \"Today\")}\n value={formatHours(totalHours)}\n icon={<Clock className=\"h-5 w-5\" />}\n description={`${billablePct}% ${t(\"timecampus.timeTracking.stats.billableSuffix\", \"billable\")}`}\n />\n <StatCard\n title={t(\"timecampus.timeTracking.stats.billable\", \"Billable\")}\n value={formatHours(stats?.billableHours ?? 0)}\n icon={<Clock className=\"h-5 w-5\" />}\n description={`${stats?.totalEntries ?? 0} ${t(\"timecampus.timeTracking.stats.entries\", \"entries\")}`}\n />\n <StatCard\n title={t(\n \"timecampus.timeTracking.stats.activeTimers\",\n \"Active Timers\",\n )}\n value={stats?.activeTimers ?? 0}\n icon={<Clock className=\"h-5 w-5\" />}\n description={t(\n \"timecampus.timeTracking.stats.currentlyRunning\",\n \"Currently running\",\n )}\n />\n <StatCard\n title={t(\"timecampus.timeTracking.stats.activeTimer\", \"Active Timer\")}\n value={\n activeTimer\n ? formatTimerDuration(activeTimer.seconds)\n : t(\"timecampus.timeTracking.stats.stopped\", \"Stopped\")\n }\n icon={\n activeTimer ? (\n <Pause className=\"h-5 w-5\" />\n ) : (\n <Play className=\"h-5 w-5\" />\n )\n }\n />\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 lg:grid-cols-2\">\n <ChartCard\n title={t(\n \"timecampus.timeTracking.charts.billableTitle\",\n \"Billable mix\",\n )}\n description={t(\n \"timecampus.timeTracking.charts.billableDesc\",\n \"Billable vs non-billable hours\",\n )}\n >\n <DonutChart\n data={billableSlices}\n centerValue={`${billablePct}%`}\n centerLabel={t(\n \"timecampus.timeTracking.charts.billableCenter\",\n \"billable\",\n )}\n valueFormat={(value) => formatHours(value)}\n emptyLabel={t(\n \"timecampus.timeTracking.charts.noHours\",\n \"No hours tracked yet\",\n )}\n height={240}\n />\n </ChartCard>\n <ChartCard\n title={t(\n \"timecampus.timeTracking.charts.projectTitle\",\n \"Hours by project\",\n )}\n description={t(\n \"timecampus.timeTracking.charts.projectDesc\",\n \"Where your recent tracked time went\",\n )}\n >\n <BarsChart\n data={hoursByProject}\n xKey=\"name\"\n series={[\n {\n key: \"hours\",\n label: t(\"timecampus.timeTracking.charts.hours\", \"Hours\"),\n },\n ]}\n orientation=\"horizontal\"\n valueFormat={(value) => formatHours(value)}\n categoryWidth={110}\n emptyLabel={t(\n \"timecampus.timeTracking.charts.noProjectHours\",\n \"No project time yet\",\n )}\n height={240}\n />\n </ChartCard>\n </div>\n\n <GlassCard treatment=\"glass\" className=\"p-6\">\n <div className=\"mb-4 flex items-center justify-between\">\n <h3 className=\"text-sm font-semibold text-text-primary\">\n {t(\"timecampus.timeTracking.entries.title\", \"Today's Entries\")}\n </h3>\n <button\n onClick={() => navigate(\"/time/entries\")}\n className=\"text-sm font-medium text-primary hover:underline\"\n >\n {t(\"timecampus.timeTracking.entries.viewAll\", \"View all\")}\n </button>\n </div>\n {entriesLoading ? (\n <LoadingSkeleton variant=\"list\" count={4} />\n ) : todayEntries.length === 0 ? (\n <EmptyState\n illustration=\"empty-data\"\n title={t(\n \"timecampus.timeTracking.entries.empty.title\",\n \"No time entries yet\",\n )}\n description={t(\n \"timecampus.timeTracking.entries.empty\",\n \"No time entries yet. Start a timer to begin tracking.\",\n )}\n action={\n <button\n onClick={() => setStartOpen(true)}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-action-primary-bg px-3 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Play className=\"h-4 w-4\" />\n {t(\"timecampus.timeTracking.actions.startTimer\", \"Start Timer\")}\n </button>\n }\n />\n ) : (\n <div className=\"flex flex-col gap-2\">\n {todayEntries.map((entry: TimeEntryFieldsFragment) => (\n <div\n key={entry.id}\n className=\"flex items-center gap-3 rounded-lg border border-border-subtle bg-bg-surface p-3 transition-colors hover:bg-bg-sunken/50\"\n >\n <span className=\"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-action-primary-bg/10 text-xs font-semibold text-primary\">\n {getInitials(entry.project?.name ?? noProjectLabel)}\n </span>\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <p className=\"min-w-0 truncate text-sm font-medium text-text-primary\">\n {entry.project?.name ?? noProjectLabel}\n </p>\n {entry.billable && (\n <StatusBadge\n label={t(\n \"timecampus.timeTracking.charts.billable\",\n \"Billable\",\n )}\n variant=\"success\"\n className=\"shrink-0\"\n />\n )}\n </div>\n <p className=\"truncate text-xs text-text-secondary\">\n {entry.task?.title ??\n entry.description ??\n t(\n \"timecampus.timeTracking.entries.noDescription\",\n \"No description\",\n )}\n </p>\n </div>\n <div className=\"flex shrink-0 flex-col items-end gap-1\">\n <p className=\"font-mono text-sm font-medium text-text-primary\">\n {formatHours((entry.duration ?? 0) / 3600)}\n </p>\n <StatusBadge\n status={entry.isRunning ? \"running\" : \"completed\"}\n dot={entry.isRunning}\n label={\n entry.isRunning\n ? t(\n \"timecampus.timeTracking.entries.status.running\",\n \"running\",\n )\n : t(\n \"timecampus.timeTracking.entries.status.completed\",\n \"completed\",\n )\n }\n />\n </div>\n </div>\n ))}\n </div>\n )}\n </GlassCard>\n\n {/* Start timer modal */}\n <Modal\n open={startOpen}\n onClose={() => setStartOpen(false)}\n title={t(\"timecampus.timeTracking.startModal.title\", \"Start a timer\")}\n description={t(\n \"timecampus.timeTracking.startModal.description\",\n \"Track the task you're working on right now.\",\n )}\n footer={\n <>\n <button\n onClick={() => setStartOpen(false)}\n className=\"rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken/50\"\n >\n {t(\"timecampus.common.cancel\", \"Cancel\")}\n </button>\n <button\n onClick={handleStart}\n disabled={starting}\n className=\"rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-50\"\n >\n {starting\n ? t(\n \"timecampus.timeTracking.startModal.starting\",\n \"Starting...\",\n )\n : t(\n \"timecampus.timeTracking.actions.startTimer\",\n \"Start Timer\",\n )}\n </button>\n </>\n }\n >\n {startError && (\n <div className=\"mb-4 rounded-lg border border-status-error-bg/40 bg-status-error-bg p-3 text-sm text-status-error-text\">\n {t(\n \"timecampus.timeTracking.startModal.error\",\n \"Failed to start the timer. Please try again.\",\n )}\n </div>\n )}\n <div className=\"space-y-4\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary\">\n {t(\n \"timecampus.timeTracking.startModal.descriptionLabel\",\n \"What are you working on?\",\n )}\n </label>\n <input\n type=\"text\"\n placeholder={t(\n \"timecampus.timeTracking.startModal.descriptionPlaceholder\",\n \"Description\",\n )}\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n className=\"mt-1 w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary\"\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary\">\n {t(\"timecampus.timeTracking.startModal.projectLabel\", \"Project\")}\n </label>\n <select\n value={projectId}\n onChange={(e) => setProjectId(e.target.value)}\n className=\"mt-1 w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary\"\n >\n <option value=\"\">\n {t(\"timecampus.timeTracking.entries.noProject\", \"No Project\")}\n </option>\n {projects.map((project) => (\n <option key={project.id} value={project.id}>\n {project.name}\n </option>\n ))}\n </select>\n </div>\n <label className=\"flex items-center gap-2 text-sm text-text-primary\">\n <input\n type=\"checkbox\"\n checked={billable}\n onChange={(e) => setBillable(e.target.checked)}\n className=\"h-4 w-4 rounded border-border-subtle\"\n />\n {t(\"timecampus.timeTracking.startModal.billable\", \"Billable\")}\n </label>\n </div>\n </Modal>\n </PageLayout>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TimeTrackingPage.js","names":[],"sources":["../../../../src/timecampus/pages/time/TimeTrackingPage.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { Clock, Play, Pause, Square } from \"lucide-react\";\nimport { GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout } from \"../../components/PageLayout\";\nimport { Modal } from \"../../components/Modal\";\nimport { StatCard } from \"../../components/StatCard\";\nimport { EmptyState } from \"../../components/EmptyState\";\nimport { LoadingSkeleton } from \"../../components/LoadingSkeleton\";\nimport {\n ChartCard,\n DonutChart,\n BarsChart,\n StatusBadge,\n} from \"../../components\";\nimport { useTimeCampusNavigate } from \"../../providers/TimeCampusProvider\";\nimport {\n formatHours,\n formatTimerDuration,\n getInitials,\n} from \"../../utils/helpers\";\nimport { useTimeCampusStore } from \"../../store/timecampusStore\";\nimport {\n useGetTimeEntryStatsQuery,\n useListTimeEntriesQuery,\n useListRunningTimersQuery,\n useStartTimerMutation,\n useStopTimerMutation,\n useListProjectsQuery,\n ListRunningTimersDocument,\n ListTimeEntriesDocument,\n GetTimeEntryStatsDocument,\n type TimeEntryFieldsFragment,\n type ListProjectsQuery,\n} from \"@/generated/wspace-operations\";\nimport { useI18n } from \"@burdenoff/fe-libs/shared/providers/shell/I18nProvider\";\n\ntype ProjectOption = ListProjectsQuery[\"projects\"][\"items\"][number];\n\nexport function TimeTrackingPage() {\n const { t: translate } = useI18n();\n const t = (key: string, fallback: string): string => {\n const value = translate(key);\n return value === key ? fallback : value;\n };\n const { activeTimer, tickTimer, syncTimerFromServer } = useTimeCampusStore();\n const navigate = useTimeCampusNavigate();\n\n const [startOpen, setStartOpen] = useState(false);\n const [description, setDescription] = useState(\"\");\n const [projectId, setProjectId] = useState(\"\");\n const [billable, setBillable] = useState(false);\n\n const { data: statsData, loading: statsLoading } =\n useGetTimeEntryStatsQuery();\n const { data: entriesData, loading: entriesLoading } =\n useListTimeEntriesQuery({\n variables: { limit: 10 },\n });\n const {\n data: runningData,\n loading: runningLoading,\n refetch: refetchRunning,\n } = useListRunningTimersQuery({ fetchPolicy: \"cache-and-network\" });\n const { data: projectsData } = useListProjectsQuery({\n variables: { limit: 50 },\n });\n const projects: ProjectOption[] = projectsData?.projects?.items ?? [];\n\n const serverTimer = runningData?.runningTimers?.[0] ?? null;\n\n const refetchAll = [\n { query: ListRunningTimersDocument },\n { query: ListTimeEntriesDocument, variables: { limit: 10 } },\n { query: GetTimeEntryStatsDocument },\n ];\n\n const [startTimerMutation, { loading: starting, error: startError }] =\n useStartTimerMutation({ refetchQueries: refetchAll });\n const [stopTimerMutation, { loading: stopping }] = useStopTimerMutation({\n refetchQueries: refetchAll,\n });\n\n // Backend is authoritative for \"is a timer running\" — mirror into the store.\n useEffect(() => {\n if (serverTimer) {\n syncTimerFromServer({\n timeEntryId: serverTimer.timeEntry.id,\n elapsedSeconds: serverTimer.elapsedSeconds,\n projectId: serverTimer.timeEntry.projectId ?? undefined,\n taskId: serverTimer.timeEntry.taskId ?? undefined,\n description: serverTimer.timeEntry.description ?? undefined,\n });\n } else if (!runningLoading) {\n syncTimerFromServer(null);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [serverTimer?.timeEntry.id, serverTimer?.elapsedSeconds, runningLoading]);\n\n // Live seconds ticker for the display.\n useEffect(() => {\n if (!activeTimer?.isRunning) return;\n const interval = setInterval(() => tickTimer(), 1000);\n return () => clearInterval(interval);\n }, [activeTimer?.isRunning, tickTimer]);\n\n const isRunning = Boolean(serverTimer);\n\n const handleStart = async () => {\n await startTimerMutation({\n variables: {\n input: {\n description: description.trim() || undefined,\n projectId: projectId || undefined,\n billable,\n source: \"timecampus\",\n },\n },\n });\n setStartOpen(false);\n setDescription(\"\");\n setProjectId(\"\");\n setBillable(false);\n await refetchRunning();\n };\n\n const handleStop = async () => {\n if (!serverTimer) return;\n await stopTimerMutation({ variables: { id: serverTimer.timeEntry.id } });\n await refetchRunning();\n };\n\n const stats = statsData?.timeEntryStats;\n const todayEntries = entriesData?.timeEntries?.items ?? [];\n\n const noProjectLabel = t(\n \"timecampus.timeTracking.entries.noProject\",\n \"No Project\",\n );\n\n // Real aggregates for the charts — derived only from data already fetched.\n const billableHours = stats?.billableHours ?? 0;\n const totalHours = stats?.totalHours ?? 0;\n const nonBillableHours = Math.max(0, totalHours - billableHours);\n const billablePct =\n totalHours > 0 ? Math.round((billableHours / totalHours) * 100) : 0;\n\n const billableSlices = [\n {\n name: t(\"timecampus.timeTracking.charts.billable\", \"Billable\"),\n value: Number(billableHours.toFixed(2)),\n },\n {\n name: t(\"timecampus.timeTracking.charts.nonBillable\", \"Non-billable\"),\n value: Number(nonBillableHours.toFixed(2)),\n },\n ];\n\n const projectHours = new Map<string, number>();\n for (const entry of todayEntries) {\n const name = entry.project?.name ?? noProjectLabel;\n projectHours.set(\n name,\n (projectHours.get(name) ?? 0) + (entry.duration ?? 0) / 3600,\n );\n }\n const hoursByProject = Array.from(projectHours, ([name, hours]) => ({\n name,\n hours: Number(hours.toFixed(2)),\n }))\n .filter((row) => row.hours > 0)\n .sort((a, b) => b.hours - a.hours)\n .slice(0, 6);\n\n if (statsLoading) {\n return (\n <PageLayout\n title={t(\"timecampus.timeTracking.title\", \"Time Tracking\")}\n description={t(\n \"timecampus.timeTracking.description\",\n \"Track and manage your work hours\",\n )}\n >\n <LoadingSkeleton variant=\"card\" count={4} />\n </PageLayout>\n );\n }\n\n return (\n <PageLayout\n title={t(\"timecampus.timeTracking.title\", \"Time Tracking\")}\n description={t(\n \"timecampus.timeTracking.description\",\n \"Track and manage your work hours\",\n )}\n purpose={t(\n \"timecampus.timeTracking.purpose\",\n \"Start a timer the moment you begin work and your hours are captured automatically — review today's totals, see what's billable, and stop guessing where your day went.\",\n )}\n actions={\n <button\n onClick={() => (isRunning ? handleStop() : setStartOpen(true))}\n disabled={starting || stopping}\n className={`inline-flex items-center gap-2 rounded-md px-4 py-2 text-sm font-medium disabled:opacity-50 ${isRunning ? \"bg-action-danger-bg text-action-primary-text hover:bg-action-danger-bg/90\" : \"bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg/90\"}`}\n >\n {isRunning ? (\n <>\n <Square className=\"h-4 w-4\" />\n {t(\"timecampus.timeTracking.actions.stop\", \"Stop\")} (\n {formatTimerDuration(activeTimer?.seconds ?? 0)})\n </>\n ) : (\n <>\n <Play className=\"h-4 w-4\" />\n {t(\"timecampus.timeTracking.actions.startTimer\", \"Start Timer\")}\n </>\n )}\n </button>\n }\n >\n <GlassCard treatment=\"glass\" glow className=\"p-6 sm:p-8\">\n <div className=\"flex flex-col gap-6 lg:flex-row lg:items-center lg:justify-between\">\n <div className=\"min-w-0\">\n <div className=\"flex items-center gap-2 text-xs font-medium uppercase tracking-wide text-text-secondary\">\n <span\n className={`h-2 w-2 rounded-full ${isRunning ? \"bg-status-success-text motion-safe:animate-vc-glow-pulse\" : \"bg-muted-foreground\"}`}\n />\n {isRunning\n ? t(\"timecampus.timeTracking.hero.running\", \"Timer running\")\n : t(\"timecampus.timeTracking.hero.idle\", \"Timer idle\")}\n </div>\n <p className=\"mt-3 font-mono text-5xl font-bold tabular-nums text-text-primary sm:text-6xl\">\n {formatTimerDuration(activeTimer?.seconds ?? 0)}\n </p>\n <div className=\"mt-3 flex flex-wrap items-center gap-2 text-sm text-text-secondary\">\n <span className=\"min-w-0 truncate\">\n {activeTimer?.description ||\n (isRunning\n ? t(\n \"timecampus.timeTracking.entries.noDescription\",\n \"No description\",\n )\n : t(\n \"timecampus.timeTracking.hero.prompt\",\n \"Start a timer to begin tracking\",\n ))}\n </span>\n {serverTimer?.timeEntry.project?.name && (\n <StatusBadge\n label={serverTimer.timeEntry.project.name}\n variant=\"default\"\n />\n )}\n </div>\n </div>\n <div className=\"flex shrink-0 items-center gap-3\">\n {isRunning ? (\n <button\n onClick={handleStop}\n disabled={stopping}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-danger-bg px-6 py-3 text-sm font-medium text-action-primary-text hover:bg-action-danger-bg/90 disabled:opacity-50\"\n >\n <Square className=\"h-4 w-4\" />\n {stopping\n ? t(\"timecampus.timeTracking.hero.stopping\", \"Stopping...\")\n : t(\"timecampus.timeTracking.actions.stop\", \"Stop\")}\n </button>\n ) : (\n <button\n onClick={() => setStartOpen(true)}\n disabled={starting}\n className=\"inline-flex items-center gap-2 rounded-md bg-action-primary-bg px-6 py-3 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-50\"\n >\n <Play className=\"h-4 w-4\" />\n {t(\"timecampus.timeTracking.actions.startTimer\", \"Start Timer\")}\n </button>\n )}\n </div>\n </div>\n </GlassCard>\n\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n <StatCard\n featured\n title={t(\"timecampus.timeTracking.stats.today\", \"Today\")}\n value={formatHours(totalHours)}\n icon={<Clock className=\"h-5 w-5\" />}\n description={`${billablePct}% ${t(\"timecampus.timeTracking.stats.billableSuffix\", \"billable\")}`}\n />\n <StatCard\n title={t(\"timecampus.timeTracking.stats.billable\", \"Billable\")}\n value={formatHours(stats?.billableHours ?? 0)}\n icon={<Clock className=\"h-5 w-5\" />}\n description={`${stats?.totalEntries ?? 0} ${t(\"timecampus.timeTracking.stats.entries\", \"entries\")}`}\n />\n <StatCard\n title={t(\n \"timecampus.timeTracking.stats.activeTimers\",\n \"Active Timers\",\n )}\n value={stats?.activeTimers ?? 0}\n icon={<Clock className=\"h-5 w-5\" />}\n description={t(\n \"timecampus.timeTracking.stats.currentlyRunning\",\n \"Currently running\",\n )}\n />\n <StatCard\n title={t(\"timecampus.timeTracking.stats.activeTimer\", \"Active Timer\")}\n value={\n activeTimer\n ? formatTimerDuration(activeTimer.seconds)\n : t(\"timecampus.timeTracking.stats.stopped\", \"Stopped\")\n }\n icon={\n activeTimer ? (\n <Pause className=\"h-5 w-5\" />\n ) : (\n <Play className=\"h-5 w-5\" />\n )\n }\n />\n </div>\n\n <div className=\"grid grid-cols-1 gap-4 lg:grid-cols-2\">\n <ChartCard\n title={t(\n \"timecampus.timeTracking.charts.billableTitle\",\n \"Billable mix\",\n )}\n description={t(\n \"timecampus.timeTracking.charts.billableDesc\",\n \"Billable vs non-billable hours\",\n )}\n >\n <DonutChart\n data={billableSlices}\n centerValue={`${billablePct}%`}\n centerLabel={t(\n \"timecampus.timeTracking.charts.billableCenter\",\n \"billable\",\n )}\n valueFormat={(value) => formatHours(value)}\n emptyLabel={t(\n \"timecampus.timeTracking.charts.noHours\",\n \"No hours tracked yet\",\n )}\n height={240}\n />\n </ChartCard>\n <ChartCard\n title={t(\n \"timecampus.timeTracking.charts.projectTitle\",\n \"Hours by project\",\n )}\n description={t(\n \"timecampus.timeTracking.charts.projectDesc\",\n \"Where your recent tracked time went\",\n )}\n >\n <BarsChart\n data={hoursByProject}\n xKey=\"name\"\n series={[\n {\n key: \"hours\",\n label: t(\"timecampus.timeTracking.charts.hours\", \"Hours\"),\n },\n ]}\n orientation=\"horizontal\"\n valueFormat={(value) => formatHours(value)}\n categoryWidth={110}\n emptyLabel={t(\n \"timecampus.timeTracking.charts.noProjectHours\",\n \"No project time yet\",\n )}\n height={240}\n />\n </ChartCard>\n </div>\n\n <GlassCard treatment=\"glass\" className=\"p-6\">\n <div className=\"mb-4 flex items-center justify-between\">\n <h3 className=\"text-sm font-semibold text-text-primary\">\n {t(\"timecampus.timeTracking.entries.title\", \"Today's Entries\")}\n </h3>\n <button\n onClick={() => navigate(\"/time/entries\")}\n className=\"text-sm font-medium text-primary hover:underline\"\n >\n {t(\"timecampus.timeTracking.entries.viewAll\", \"View all\")}\n </button>\n </div>\n {entriesLoading ? (\n <LoadingSkeleton variant=\"list\" count={4} />\n ) : todayEntries.length === 0 ? (\n <EmptyState\n illustration=\"empty-data\"\n title={t(\n \"timecampus.timeTracking.entries.empty.title\",\n \"No time entries yet\",\n )}\n description={t(\n \"timecampus.timeTracking.entries.empty\",\n \"No time entries yet. Start a timer to begin tracking.\",\n )}\n action={\n <button\n onClick={() => setStartOpen(true)}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-action-primary-bg px-3 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90\"\n >\n <Play className=\"h-4 w-4\" />\n {t(\"timecampus.timeTracking.actions.startTimer\", \"Start Timer\")}\n </button>\n }\n />\n ) : (\n <div className=\"flex flex-col gap-2\">\n {todayEntries.map((entry: TimeEntryFieldsFragment) => (\n <div\n key={entry.id}\n className=\"flex items-center gap-3 rounded-lg border border-border-subtle bg-bg-surface p-3 transition-colors hover:bg-bg-sunken/50\"\n >\n <span className=\"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-action-primary-bg/10 text-xs font-semibold text-primary\">\n {getInitials(entry.project?.name ?? noProjectLabel)}\n </span>\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <p className=\"min-w-0 truncate text-sm font-medium text-text-primary\">\n {entry.project?.name ?? noProjectLabel}\n </p>\n {entry.billable && (\n <StatusBadge\n label={t(\n \"timecampus.timeTracking.charts.billable\",\n \"Billable\",\n )}\n variant=\"success\"\n className=\"shrink-0\"\n />\n )}\n </div>\n <p className=\"truncate text-xs text-text-secondary\">\n {entry.task?.title ??\n entry.description ??\n t(\n \"timecampus.timeTracking.entries.noDescription\",\n \"No description\",\n )}\n </p>\n </div>\n <div className=\"flex shrink-0 flex-col items-end gap-1\">\n <p className=\"font-mono text-sm font-medium text-text-primary\">\n {formatHours((entry.duration ?? 0) / 3600)}\n </p>\n <StatusBadge\n status={entry.isRunning ? \"running\" : \"completed\"}\n dot={entry.isRunning}\n label={\n entry.isRunning\n ? t(\n \"timecampus.timeTracking.entries.status.running\",\n \"running\",\n )\n : t(\n \"timecampus.timeTracking.entries.status.completed\",\n \"completed\",\n )\n }\n />\n </div>\n </div>\n ))}\n </div>\n )}\n </GlassCard>\n\n {/* Start timer modal */}\n <Modal\n open={startOpen}\n onClose={() => setStartOpen(false)}\n title={t(\"timecampus.timeTracking.startModal.title\", \"Start a timer\")}\n description={t(\n \"timecampus.timeTracking.startModal.description\",\n \"Track the task you're working on right now.\",\n )}\n footer={\n <>\n <button\n onClick={() => setStartOpen(false)}\n className=\"rounded-md border border-border-subtle px-4 py-2 text-sm font-medium text-text-primary hover:bg-bg-sunken/50\"\n >\n {t(\"timecampus.common.cancel\", \"Cancel\")}\n </button>\n <button\n onClick={handleStart}\n disabled={starting}\n className=\"rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg/90 disabled:opacity-50\"\n >\n {starting\n ? t(\n \"timecampus.timeTracking.startModal.starting\",\n \"Starting...\",\n )\n : t(\n \"timecampus.timeTracking.actions.startTimer\",\n \"Start Timer\",\n )}\n </button>\n </>\n }\n >\n {startError && (\n <div className=\"mb-4 rounded-lg border border-status-error-bg/40 bg-status-error-bg p-3 text-sm text-status-error-text\">\n {t(\n \"timecampus.timeTracking.startModal.error\",\n \"Failed to start the timer. Please try again.\",\n )}\n </div>\n )}\n <div className=\"space-y-4\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary\">\n {t(\n \"timecampus.timeTracking.startModal.descriptionLabel\",\n \"What are you working on?\",\n )}\n </label>\n <input\n type=\"text\"\n placeholder={t(\n \"timecampus.timeTracking.startModal.descriptionPlaceholder\",\n \"Description\",\n )}\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n className=\"mt-1 w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-secondary\"\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary\">\n {t(\"timecampus.timeTracking.startModal.projectLabel\", \"Project\")}\n </label>\n <select\n value={projectId}\n onChange={(e) => setProjectId(e.target.value)}\n className=\"mt-1 w-full rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary\"\n >\n <option value=\"\">\n {t(\"timecampus.timeTracking.entries.noProject\", \"No Project\")}\n </option>\n {projects.map((project) => (\n <option key={project.id} value={project.id}>\n {project.name}\n </option>\n ))}\n </select>\n </div>\n <label className=\"flex items-center gap-2 text-sm text-text-primary\">\n <input\n type=\"checkbox\"\n checked={billable}\n onChange={(e) => setBillable(e.target.checked)}\n className=\"h-4 w-4 rounded border-border-subtle\"\n />\n {t(\"timecampus.timeTracking.startModal.billable\", \"Billable\")}\n </label>\n </div>\n </Modal>\n </PageLayout>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsCA,SAAgB,IAAmB;CACjC,IAAM,EAAE,GAAG,MAAc,GAAS,EAC5B,KAAK,GAAa,MAA6B;EACnD,IAAM,IAAQ,EAAU,EAAI;AAC5B,SAAO,MAAU,IAAM,IAAW;IAE9B,EAAE,gBAAa,cAAW,2BAAwB,IAAoB,EACtE,IAAW,GAAuB,EAElC,CAAC,GAAW,KAAgB,EAAS,GAAM,EAC3C,CAAC,GAAa,KAAkB,EAAS,GAAG,EAC5C,CAAC,GAAW,KAAgB,EAAS,GAAG,EACxC,CAAC,GAAU,KAAe,EAAS,GAAM,EAEzC,EAAE,MAAM,GAAW,SAAS,MAChC,IAA2B,EACvB,EAAE,MAAM,GAAa,SAAS,MAClC,GAAwB,EACtB,WAAW,EAAE,OAAO,IAAI,EACzB,CAAC,EACE,EACJ,MAAM,GACN,SAAS,GACT,SAAS,MACP,GAA0B,EAAE,aAAa,qBAAqB,CAAC,EAC7D,EAAE,MAAM,OAAiB,GAAqB,EAClD,WAAW,EAAE,OAAO,IAAI,EACzB,CAAC,EACI,KAA4B,IAAc,UAAU,SAAS,EAAE,EAE/D,IAAc,GAAa,gBAAgB,MAAM,MAEjD,IAAa;EACjB,EAAE,OAAO,IAA2B;EACpC;GAAE,OAAO;GAAyB,WAAW,EAAE,OAAO,IAAI;GAAE;EAC5D,EAAE,OAAO,IAA2B;EACrC,EAEK,CAAC,IAAoB,EAAE,SAAS,GAAU,OAAO,QACrD,GAAsB,EAAE,gBAAgB,GAAY,CAAC,EACjD,CAAC,IAAmB,EAAE,SAAS,OAAc,GAAqB,EACtE,gBAAgB,GACjB,CAAC;AAmBF,CAhBA,QAAgB;AACd,EAAI,IACF,EAAoB;GAClB,aAAa,EAAY,UAAU;GACnC,gBAAgB,EAAY;GAC5B,WAAW,EAAY,UAAU,aAAa,KAAA;GAC9C,QAAQ,EAAY,UAAU,UAAU,KAAA;GACxC,aAAa,EAAY,UAAU,eAAe,KAAA;GACnD,CAAC,GACQ,KACV,EAAoB,KAAK;IAG1B;EAAC,GAAa,UAAU;EAAI,GAAa;EAAgB;EAAe,CAAC,EAG5E,QAAgB;AACd,MAAI,CAAC,GAAa,UAAW;EAC7B,IAAM,IAAW,kBAAkB,GAAW,EAAE,IAAK;AACrD,eAAa,cAAc,EAAS;IACnC,CAAC,GAAa,WAAW,EAAU,CAAC;CAEvC,IAAM,IAAY,EAAQ,GAEpB,KAAc,YAAY;AAe9B,EAdA,MAAM,GAAmB,EACvB,WAAW,EACT,OAAO;GACL,aAAa,EAAY,MAAM,IAAI,KAAA;GACnC,WAAW,KAAa,KAAA;GACxB;GACA,QAAQ;GACT,EACF,EACF,CAAC,EACF,EAAa,GAAM,EACnB,EAAe,GAAG,EAClB,EAAa,GAAG,EAChB,EAAY,GAAM,EAClB,MAAM,GAAgB;IAGlB,IAAa,YAAY;AACxB,QACL,MAAM,GAAkB,EAAE,WAAW,EAAE,IAAI,EAAY,UAAU,IAAI,EAAE,CAAC,EACxE,MAAM,GAAgB;IAGlB,IAAQ,GAAW,gBACnB,IAAe,GAAa,aAAa,SAAS,EAAE,EAEpD,IAAiB,EACrB,6CACA,aACD,EAGK,IAAgB,GAAO,iBAAiB,GACxC,IAAa,GAAO,cAAc,GAClC,KAAmB,KAAK,IAAI,GAAG,IAAa,EAAc,EAC1D,IACJ,IAAa,IAAI,KAAK,MAAO,IAAgB,IAAc,IAAI,GAAG,GAE9D,KAAiB,CACrB;EACE,MAAM,EAAE,2CAA2C,WAAW;EAC9D,OAAO,OAAO,EAAc,QAAQ,EAAE,CAAC;EACxC,EACD;EACE,MAAM,EAAE,8CAA8C,eAAe;EACrE,OAAO,OAAO,GAAiB,QAAQ,EAAE,CAAC;EAC3C,CACF,EAEK,oBAAe,IAAI,KAAqB;AAC9C,MAAK,IAAM,KAAS,GAAc;EAChC,IAAM,IAAO,EAAM,SAAS,QAAQ;AACpC,IAAa,IACX,IACC,EAAa,IAAI,EAAK,IAAI,MAAM,EAAM,YAAY,KAAK,KACzD;;CAEH,IAAM,KAAiB,MAAM,KAAK,IAAe,CAAC,GAAM,QAAY;EAClE;EACA,OAAO,OAAO,EAAM,QAAQ,EAAE,CAAC;EAChC,EAAE,CACA,QAAQ,MAAQ,EAAI,QAAQ,EAAE,CAC9B,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,CACjC,MAAM,GAAG,EAAE;AAgBd,QAdI,IAEA,kBAAC,GAAD;EACE,OAAO,EAAE,iCAAiC,gBAAgB;EAC1D,aAAa,EACX,uCACA,mCACD;YAED,kBAAC,GAAD;GAAiB,SAAQ;GAAO,OAAO;GAAK,CAAA;EACjC,CAAA,GAKf,kBAAC,GAAD;EACE,OAAO,EAAE,iCAAiC,gBAAgB;EAC1D,aAAa,EACX,uCACA,mCACD;EACD,SAAS,EACP,mCACA,yKACD;EACD,SACE,kBAAC,UAAD;GACE,eAAgB,IAAY,GAAY,GAAG,EAAa,GAAK;GAC7D,UAAU,KAAY;GACtB,WAAW,+FAA+F,IAAY,8EAA8E;aAEnM,IACC,kBAAA,GAAA,EAAA,UAAA;IACE,kBAAC,GAAD,EAAQ,WAAU,WAAY,CAAA;IAC7B,EAAE,wCAAwC,OAAO;IAAC;IAClD,EAAoB,GAAa,WAAW,EAAE;IAAC;IAC/C,EAAA,CAAA,GAEH,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD,EAAM,WAAU,WAAY,CAAA,EAC3B,EAAE,8CAA8C,cAAc,CAC9D,EAAA,CAAA;GAEE,CAAA;YA5Bb;GA+BE,kBAAC,GAAD;IAAW,WAAU;IAAQ,MAAA;IAAK,WAAU;cAC1C,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,QAAD,EACE,WAAW,wBAAwB,IAAY,6DAA6D,yBAC5G,CAAA,EACD,IACG,EAAE,wCAAwC,gBAAgB,GAC1D,EAAE,qCAAqC,aAAa,CACpD;;OACN,kBAAC,KAAD;QAAG,WAAU;kBACV,EAAoB,GAAa,WAAW,EAAE;QAC7C,CAAA;OACJ,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,QAAD;SAAM,WAAU;mBACb,GAAa,gBACX,IACG,EACE,iDACA,iBACD,GACD,EACE,uCACA,kCACD;SACF,CAAA,EACN,GAAa,UAAU,SAAS,QAC/B,kBAAC,GAAD;SACE,OAAO,EAAY,UAAU,QAAQ;SACrC,SAAQ;SACR,CAAA,CAEA;;OACF;SACN,kBAAC,OAAD;MAAK,WAAU;gBACZ,IACC,kBAAC,UAAD;OACE,SAAS;OACT,UAAU;OACV,WAAU;iBAHZ,CAKE,kBAAC,GAAD,EAAQ,WAAU,WAAY,CAAA,EAC7B,IACG,EAAE,yCAAyC,cAAc,GACzD,EAAE,wCAAwC,OAAO,CAC9C;WAET,kBAAC,UAAD;OACE,eAAe,EAAa,GAAK;OACjC,UAAU;OACV,WAAU;iBAHZ,CAKE,kBAAC,GAAD,EAAM,WAAU,WAAY,CAAA,EAC3B,EAAE,8CAA8C,cAAc,CACxD;;MAEP,CAAA,CACF;;IACI,CAAA;GAEZ,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD;MACE,UAAA;MACA,OAAO,EAAE,uCAAuC,QAAQ;MACxD,OAAO,EAAY,EAAW;MAC9B,MAAM,kBAAC,GAAD,EAAO,WAAU,WAAY,CAAA;MACnC,aAAa,GAAG,EAAY,IAAI,EAAE,gDAAgD,WAAW;MAC7F,CAAA;KACF,kBAAC,GAAD;MACE,OAAO,EAAE,0CAA0C,WAAW;MAC9D,OAAO,EAAY,GAAO,iBAAiB,EAAE;MAC7C,MAAM,kBAAC,GAAD,EAAO,WAAU,WAAY,CAAA;MACnC,aAAa,GAAG,GAAO,gBAAgB,EAAE,GAAG,EAAE,yCAAyC,UAAU;MACjG,CAAA;KACF,kBAAC,GAAD;MACE,OAAO,EACL,8CACA,gBACD;MACD,OAAO,GAAO,gBAAgB;MAC9B,MAAM,kBAAC,GAAD,EAAO,WAAU,WAAY,CAAA;MACnC,aAAa,EACX,kDACA,oBACD;MACD,CAAA;KACF,kBAAC,GAAD;MACE,OAAO,EAAE,6CAA6C,eAAe;MACrE,OACE,IACI,EAAoB,EAAY,QAAQ,GACxC,EAAE,yCAAyC,UAAU;MAE3D,MAEI,EADF,IACG,IAEA,GAFD,EAAO,WAAU,WAAY,CAED;MAGhC,CAAA;KACE;;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD;KACE,OAAO,EACL,gDACA,eACD;KACD,aAAa,EACX,+CACA,iCACD;eAED,kBAAC,IAAD;MACE,MAAM;MACN,aAAa,GAAG,EAAY;MAC5B,aAAa,EACX,iDACA,WACD;MACD,cAAc,MAAU,EAAY,EAAM;MAC1C,YAAY,EACV,0CACA,uBACD;MACD,QAAQ;MACR,CAAA;KACQ,CAAA,EACZ,kBAAC,GAAD;KACE,OAAO,EACL,+CACA,mBACD;KACD,aAAa,EACX,8CACA,sCACD;eAED,kBAAC,IAAD;MACE,MAAM;MACN,MAAK;MACL,QAAQ,CACN;OACE,KAAK;OACL,OAAO,EAAE,wCAAwC,QAAQ;OAC1D,CACF;MACD,aAAY;MACZ,cAAc,MAAU,EAAY,EAAM;MAC1C,eAAe;MACf,YAAY,EACV,iDACA,sBACD;MACD,QAAQ;MACR,CAAA;KACQ,CAAA,CACR;;GAEN,kBAAC,GAAD;IAAW,WAAU;IAAQ,WAAU;cAAvC,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,MAAD;MAAI,WAAU;gBACX,EAAE,yCAAyC,kBAAkB;MAC3D,CAAA,EACL,kBAAC,UAAD;MACE,eAAe,EAAS,gBAAgB;MACxC,WAAU;gBAET,EAAE,2CAA2C,WAAW;MAClD,CAAA,CACL;QACL,IACC,kBAAC,GAAD;KAAiB,SAAQ;KAAO,OAAO;KAAK,CAAA,GAC1C,EAAa,WAAW,IAC1B,kBAAC,GAAD;KACE,cAAa;KACb,OAAO,EACL,+CACA,sBACD;KACD,aAAa,EACX,yCACA,wDACD;KACD,QACE,kBAAC,UAAD;MACE,eAAe,EAAa,GAAK;MACjC,WAAU;gBAFZ,CAIE,kBAAC,GAAD,EAAM,WAAU,WAAY,CAAA,EAC3B,EAAE,8CAA8C,cAAc,CACxD;;KAEX,CAAA,GAEF,kBAAC,OAAD;KAAK,WAAU;eACZ,EAAa,KAAK,MACjB,kBAAC,OAAD;MAEE,WAAU;gBAFZ;OAIE,kBAAC,QAAD;QAAM,WAAU;kBACb,GAAY,EAAM,SAAS,QAAQ,EAAe;QAC9C,CAAA;OACP,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,kBAAC,KAAD;UAAG,WAAU;oBACV,EAAM,SAAS,QAAQ;UACtB,CAAA,EACH,EAAM,YACL,kBAAC,GAAD;UACE,OAAO,EACL,2CACA,WACD;UACD,SAAQ;UACR,WAAU;UACV,CAAA,CAEA;YACN,kBAAC,KAAD;SAAG,WAAU;mBACV,EAAM,MAAM,SACX,EAAM,eACN,EACE,iDACA,iBACD;SACD,CAAA,CACA;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,KAAD;SAAG,WAAU;mBACV,GAAa,EAAM,YAAY,KAAK,KAAK;SACxC,CAAA,EACJ,kBAAC,GAAD;SACE,QAAQ,EAAM,YAAY,YAAY;SACtC,KAAK,EAAM;SACX,OACE,EAAM,YACF,EACE,kDACA,UACD,GACD,EACE,oDACA,YACD;SAEP,CAAA,CACE;;OACF;QAnDC,EAAM,GAmDP,CACN;KACE,CAAA,CAEE;;GAGZ,kBAAC,IAAD;IACE,MAAM;IACN,eAAe,EAAa,GAAM;IAClC,OAAO,EAAE,4CAA4C,gBAAgB;IACrE,aAAa,EACX,kDACA,8CACD;IACD,QACE,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,UAAD;KACE,eAAe,EAAa,GAAM;KAClC,WAAU;eAET,EAAE,4BAA4B,SAAS;KACjC,CAAA,EACT,kBAAC,UAAD;KACE,SAAS;KACT,UAAU;KACV,WAAU;eAET,IACG,EACE,+CACA,cACD,GACD,EACE,8CACA,cACD;KACE,CAAA,CACR,EAAA,CAAA;cA/BP,CAkCG,MACC,kBAAC,OAAD;KAAK,WAAU;eACZ,EACC,4CACA,+CACD;KACG,CAAA,EAER,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;OAAO,WAAU;iBACd,EACC,uDACA,2BACD;OACK,CAAA,EACR,kBAAC,SAAD;OACE,MAAK;OACL,aAAa,EACX,6DACA,cACD;OACD,OAAO;OACP,WAAW,MAAM,EAAe,EAAE,OAAO,MAAM;OAC/C,WAAU;OACV,CAAA,CACE,EAAA,CAAA;MACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,SAAD;OAAO,WAAU;iBACd,EAAE,mDAAmD,UAAU;OAC1D,CAAA,EACR,kBAAC,UAAD;OACE,OAAO;OACP,WAAW,MAAM,EAAa,EAAE,OAAO,MAAM;OAC7C,WAAU;iBAHZ,CAKE,kBAAC,UAAD;QAAQ,OAAM;kBACX,EAAE,6CAA6C,aAAa;QACtD,CAAA,EACR,GAAS,KAAK,MACb,kBAAC,UAAD;QAAyB,OAAO,EAAQ;kBACrC,EAAQ;QACF,EAFI,EAAQ,GAEZ,CACT,CACK;SACL,EAAA,CAAA;MACN,kBAAC,SAAD;OAAO,WAAU;iBAAjB,CACE,kBAAC,SAAD;QACE,MAAK;QACL,SAAS;QACT,WAAW,MAAM,EAAY,EAAE,OAAO,QAAQ;QAC9C,WAAU;QACV,CAAA,EACD,EAAE,+CAA+C,WAAW,CACvD;;MACJ;OACA;;GACG"}
@@ -0,0 +1,2 @@
1
+ export declare function TimerPage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=TimerPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimerPage.d.ts","sourceRoot":"","sources":["../../../../src/timecampus/pages/time/TimerPage.tsx"],"names":[],"mappings":"AA2BA,wBAAgB,SAAS,gCA4UxB"}
@@ -0,0 +1,2 @@
1
+ export declare function TimeApprovalPage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=TimeApprovalPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeApprovalPage.d.ts","sourceRoot":"","sources":["../../../../src/timecampus/pages/time-approval/TimeApprovalPage.tsx"],"names":[],"mappings":"AAuDA,wBAAgB,gBAAgB,gCAyiB/B"}
@@ -5,9 +5,9 @@ import { useApproveRequestMutation as a, useGetApprovalStatsQuery as o, useListA
5
5
  import { PageLayout as c } from "../../components/PageLayout.js";
6
6
  import { StatusBadge as l } from "../../components/StatusBadge.js";
7
7
  import { EmptyState as ie } from "../../components/EmptyState.js";
8
+ import { Modal as u } from "../../components/Modal.js";
8
9
  import { ChartCard as ae } from "../../components/ChartCard.js";
9
10
  import { ToastContainer as oe, useToast as se } from "../../components/Toast.js";
10
- import { Modal as u } from "../../components/Modal.js";
11
11
  import { DonutChart as ce } from "../../components/charts/DonutChart.js";
12
12
  import { ProgressMeter as le } from "../../components/charts/ProgressMeter.js";
13
13
  import "../../components/index.js";
@@ -0,0 +1,2 @@
1
+ export declare function TimelinePage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=TimelinePage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimelinePage.d.ts","sourceRoot":"","sources":["../../../../src/timecampus/pages/timeline/TimelinePage.tsx"],"names":[],"mappings":"AA0FA,wBAAgB,YAAY,gCA+N3B"}
@@ -178,7 +178,7 @@ function D() {
178
178
  F.length === 0 ? /* @__PURE__ */ y(c, {
179
179
  illustration: "empty-generic",
180
180
  title: "No activity captured for this day",
181
- description: "As you track time, hold meetings, run focus sessions, and connect capture channels, your day assembles here automatically — categorized and in order."
181
+ description: "As you track time, hold meetings, run focus sessions, and connect shared integrations, your day assembles here automatically — categorized and in order."
182
182
  }) : /* @__PURE__ */ y(x, {
183
183
  treatment: "glass",
184
184
  glow: !0,
@@ -1 +1 @@
1
- {"version":3,"file":"TimelinePage.js","names":[],"sources":["../../../../src/timecampus/pages/timeline/TimelinePage.tsx"],"sourcesContent":["import { useMemo, useState } from \"react\";\nimport {\n Activity,\n Brain,\n Calendar,\n Coffee,\n Github,\n MessageSquare,\n Users,\n Zap,\n} from \"lucide-react\";\nimport { GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout } from \"../../components/PageLayout\";\nimport { StatCard } from \"../../components/StatCard\";\nimport { EmptyState } from \"../../components/EmptyState\";\nimport { LoadingSkeleton } from \"../../components/LoadingSkeleton\";\nimport { formatDuration, formatTime } from \"../../utils/helpers\";\nimport { useTimeCampus } from \"../../providers/TimeCampusProvider\";\nimport {\n useGetTimeCampusTimelineQuery,\n useRecategorizeTimeCampusCaptureEventMutation,\n type TimelineSegmentFieldsFragment,\n} from \"@/generated/wspace-operations\";\n\ntype Category = \"MEETING\" | \"DEEP_WORK\" | \"COMMUNICATION\" | \"BREAK\" | \"OTHER\";\n\nconst CATEGORY_META: Record<\n Category,\n { label: string; icon: typeof Brain; dot: string; chip: string }\n> = {\n DEEP_WORK: {\n label: \"Deep work\",\n icon: Brain,\n dot: \"bg-status-success-bg\",\n chip: \"bg-status-success-bg text-status-success-text\",\n },\n MEETING: {\n label: \"Meeting\",\n icon: Users,\n dot: \"bg-status-info-bg\",\n chip: \"bg-status-info-bg text-status-info-text\",\n },\n COMMUNICATION: {\n label: \"Communication\",\n icon: MessageSquare,\n dot: \"bg-status-warning-bg\",\n chip: \"bg-status-warning-bg text-status-warning-text\",\n },\n BREAK: {\n label: \"Break\",\n icon: Coffee,\n dot: \"bg-bg-sunken\",\n chip: \"bg-bg-sunken text-text-secondary\",\n },\n OTHER: {\n label: \"Other\",\n icon: Activity,\n dot: \"bg-bg-sunken\",\n chip: \"bg-bg-sunken text-text-secondary\",\n },\n};\n\nconst SOURCE_ICON: Record<string, typeof Brain> = {\n TIME_ENTRY: Zap,\n MEETING: Users,\n POMODORO: Brain,\n EMAIL: MessageSquare,\n CAPTURE: Github,\n};\n\nconst CATEGORY_ORDER: Category[] = [\n \"DEEP_WORK\",\n \"MEETING\",\n \"COMMUNICATION\",\n \"BREAK\",\n \"OTHER\",\n];\n\nfunction toLocalDateInput(date: Date): string {\n const offset = date.getTimezoneOffset();\n const local = new Date(date.getTime() - offset * 60 * 1000);\n return local.toISOString().slice(0, 10);\n}\n\nfunction dayBounds(dateStr: string): { from: string; to: string } {\n const start = new Date(`${dateStr}T00:00:00`);\n const end = new Date(`${dateStr}T23:59:59.999`);\n return { from: start.toISOString(), to: end.toISOString() };\n}\n\nexport function TimelinePage() {\n const { workspaceId = \"\" } = useTimeCampus();\n const [dateStr, setDateStr] = useState(() => toLocalDateInput(new Date()));\n\n const { from, to } = useMemo(() => dayBounds(dateStr), [dateStr]);\n\n const { data, loading, error, refetch } = useGetTimeCampusTimelineQuery({\n variables: { from, to },\n skip: !workspaceId,\n fetchPolicy: \"cache-and-network\",\n });\n\n const [recategorize, { loading: recategorizing }] =\n useRecategorizeTimeCampusCaptureEventMutation();\n\n const timeline = data?.timeCampusTimeline;\n const segments = timeline?.segments ?? [];\n const summary = timeline?.summary;\n\n const totalsByCategory = useMemo(() => {\n const map = new Map<\n string,\n { totalSeconds: number; segmentCount: number }\n >();\n for (const t of summary?.byCategory ?? []) {\n map.set(t.category, {\n totalSeconds: t.totalSeconds,\n segmentCount: t.segmentCount,\n });\n }\n return map;\n }, [summary]);\n\n const handleRecategorize = async (\n segment: TimelineSegmentFieldsFragment,\n category: Category,\n ) => {\n if (!segment.isRecategorizable || segment.category === category) return;\n await recategorize({\n variables: { id: segment.sourceId, category },\n });\n await refetch();\n };\n\n const focusPct =\n summary && summary.focusRatio != null\n ? Math.round(summary.focusRatio * 100)\n : 0;\n\n return (\n <PageLayout\n title=\"Timeline\"\n description=\"Your day, assembled automatically\"\n purpose=\"See where your time actually went — meetings, deep work, communication and breaks stitched into one honest, chronological view from everything TimeCampus captures, so you can spot the patterns worth changing.\"\n actions={\n <label className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <Calendar className=\"h-4 w-4\" />\n <input\n type=\"date\"\n value={dateStr}\n max={toLocalDateInput(new Date())}\n onChange={(e) => setDateStr(e.target.value)}\n className=\"rounded-md border border-border-seam bg-bg-surface px-3 py-1.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-action-primary-bg/40\"\n />\n </label>\n }\n >\n {loading && !timeline ? (\n <div className=\"space-y-6\">\n <LoadingSkeleton variant=\"card\" count={4} />\n <LoadingSkeleton variant=\"list\" count={6} />\n </div>\n ) : error ? (\n <div className=\"rounded-lg border border-status-error-bg/40 bg-status-error-bg p-4 text-sm text-status-error-text\">\n Failed to load your timeline. Please try again later.\n </div>\n ) : (\n <div className=\"space-y-6\">\n {/* Summary */}\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n <StatCard\n featured\n title=\"Tracked time\"\n value={formatDuration(summary?.totalTrackedSeconds ?? 0)}\n icon={<Activity className=\"h-5 w-5\" />}\n description=\"Total activity across the day\"\n />\n <StatCard\n title=\"Focus ratio\"\n value={`${focusPct}%`}\n icon={<Brain className=\"h-5 w-5\" />}\n description=\"Share of time in deep work\"\n />\n <StatCard\n title=\"Context switches\"\n value={summary?.contextSwitches ?? 0}\n icon={<Zap className=\"h-5 w-5\" />}\n description=\"Category changes through the day\"\n />\n <StatCard\n title=\"Longest focus block\"\n value={formatDuration(summary?.longestFocusBlockSeconds ?? 0)}\n icon={<Brain className=\"h-5 w-5\" />}\n description=\"Your deepest uninterrupted stretch\"\n />\n </div>\n\n {/* Category breakdown */}\n {segments.length > 0 && (\n <GlassCard treatment=\"glass\" className=\"p-4 sm:p-6\">\n <h2 className=\"mb-4 text-sm font-semibold text-text-primary\">\n Where the time went\n </h2>\n <div className=\"flex flex-wrap gap-4\">\n {CATEGORY_ORDER.filter((c) => totalsByCategory.has(c)).map(\n (category) => {\n const meta = CATEGORY_META[category];\n const total = totalsByCategory.get(category)!;\n return (\n <div\n key={category}\n className=\"flex items-center gap-2 rounded-lg border border-border-seam bg-bg-surface px-3 py-2\"\n >\n <span\n className={`inline-block h-2.5 w-2.5 rounded-full ${meta.dot}`}\n aria-hidden\n />\n <span className=\"text-sm font-medium text-text-primary\">\n {meta.label}\n </span>\n <span className=\"text-sm tabular-nums text-text-secondary\">\n {formatDuration(total.totalSeconds)}\n </span>\n </div>\n );\n },\n )}\n </div>\n </GlassCard>\n )}\n\n {/* Chronological timeline */}\n {segments.length === 0 ? (\n <EmptyState\n illustration=\"empty-generic\"\n title=\"No activity captured for this day\"\n description=\"As you track time, hold meetings, run focus sessions, and connect capture channels, your day assembles here automatically — categorized and in order.\"\n />\n ) : (\n <GlassCard treatment=\"glass\" glow className=\"overflow-hidden\">\n <ol className=\"divide-y divide-border-seam\">\n {segments.map((segment: TimelineSegmentFieldsFragment) => {\n const category = (segment.category as Category) ?? \"OTHER\";\n const meta = CATEGORY_META[category] ?? CATEGORY_META.OTHER;\n const SourceIcon = SOURCE_ICON[segment.source] ?? Activity;\n return (\n <li\n key={segment.id}\n className=\"flex items-start gap-3 p-4 transition-colors hover:bg-bg-sunken/50\"\n >\n <div className=\"flex w-16 shrink-0 flex-col items-end pt-0.5 text-xs tabular-nums text-text-secondary\">\n <span>{formatTime(segment.startTime)}</span>\n <span className=\"text-text-tertiary\">\n {formatDuration(segment.durationSeconds)}\n </span>\n </div>\n <div\n className={`mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg ${meta.chip}`}\n >\n <SourceIcon className=\"h-4 w-4\" />\n </div>\n <div className=\"min-w-0 flex-1\">\n <p className=\"truncate text-sm font-medium text-text-primary\">\n {segment.title || meta.label}\n </p>\n <div className=\"mt-1 flex flex-wrap items-center gap-2\">\n <span\n className={`inline-flex rounded-full px-2 py-0.5 text-xs font-medium ${meta.chip}`}\n >\n {meta.label}\n </span>\n {segment.app && (\n <span className=\"text-xs text-text-secondary\">\n {segment.app}\n </span>\n )}\n {segment.isRecategorizable && (\n <span className=\"text-xs text-text-tertiary\">\n via capture\n </span>\n )}\n </div>\n </div>\n {segment.isRecategorizable && (\n <select\n aria-label=\"Recategorize activity\"\n disabled={recategorizing}\n value={category}\n onChange={(e) =>\n handleRecategorize(\n segment,\n e.target.value as Category,\n )\n }\n className=\"shrink-0 rounded-md border border-border-seam bg-bg-surface px-2 py-1 text-xs text-text-secondary focus:outline-none focus:ring-2 focus:ring-action-primary-bg/40\"\n >\n {CATEGORY_ORDER.map((c) => (\n <option key={c} value={c}>\n {CATEGORY_META[c].label}\n </option>\n ))}\n </select>\n )}\n </li>\n );\n })}\n </ol>\n </GlassCard>\n )}\n </div>\n )}\n </PageLayout>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TimelinePage.js","names":[],"sources":["../../../../src/timecampus/pages/timeline/TimelinePage.tsx"],"sourcesContent":["import { useMemo, useState } from \"react\";\nimport {\n Activity,\n Brain,\n Calendar,\n Coffee,\n Github,\n MessageSquare,\n Users,\n Zap,\n} from \"lucide-react\";\nimport { GlassCard } from \"@burdenoff/fe-libs/ui\";\nimport { PageLayout } from \"../../components/PageLayout\";\nimport { StatCard } from \"../../components/StatCard\";\nimport { EmptyState } from \"../../components/EmptyState\";\nimport { LoadingSkeleton } from \"../../components/LoadingSkeleton\";\nimport { formatDuration, formatTime } from \"../../utils/helpers\";\nimport { useTimeCampus } from \"../../providers/TimeCampusProvider\";\nimport {\n useGetTimeCampusTimelineQuery,\n useRecategorizeTimeCampusCaptureEventMutation,\n type TimelineSegmentFieldsFragment,\n} from \"@/generated/wspace-operations\";\n\ntype Category = \"MEETING\" | \"DEEP_WORK\" | \"COMMUNICATION\" | \"BREAK\" | \"OTHER\";\n\nconst CATEGORY_META: Record<\n Category,\n { label: string; icon: typeof Brain; dot: string; chip: string }\n> = {\n DEEP_WORK: {\n label: \"Deep work\",\n icon: Brain,\n dot: \"bg-status-success-bg\",\n chip: \"bg-status-success-bg text-status-success-text\",\n },\n MEETING: {\n label: \"Meeting\",\n icon: Users,\n dot: \"bg-status-info-bg\",\n chip: \"bg-status-info-bg text-status-info-text\",\n },\n COMMUNICATION: {\n label: \"Communication\",\n icon: MessageSquare,\n dot: \"bg-status-warning-bg\",\n chip: \"bg-status-warning-bg text-status-warning-text\",\n },\n BREAK: {\n label: \"Break\",\n icon: Coffee,\n dot: \"bg-bg-sunken\",\n chip: \"bg-bg-sunken text-text-secondary\",\n },\n OTHER: {\n label: \"Other\",\n icon: Activity,\n dot: \"bg-bg-sunken\",\n chip: \"bg-bg-sunken text-text-secondary\",\n },\n};\n\nconst SOURCE_ICON: Record<string, typeof Brain> = {\n TIME_ENTRY: Zap,\n MEETING: Users,\n POMODORO: Brain,\n EMAIL: MessageSquare,\n CAPTURE: Github,\n};\n\nconst CATEGORY_ORDER: Category[] = [\n \"DEEP_WORK\",\n \"MEETING\",\n \"COMMUNICATION\",\n \"BREAK\",\n \"OTHER\",\n];\n\nfunction toLocalDateInput(date: Date): string {\n const offset = date.getTimezoneOffset();\n const local = new Date(date.getTime() - offset * 60 * 1000);\n return local.toISOString().slice(0, 10);\n}\n\nfunction dayBounds(dateStr: string): { from: string; to: string } {\n const start = new Date(`${dateStr}T00:00:00`);\n const end = new Date(`${dateStr}T23:59:59.999`);\n return { from: start.toISOString(), to: end.toISOString() };\n}\n\nexport function TimelinePage() {\n const { workspaceId = \"\" } = useTimeCampus();\n const [dateStr, setDateStr] = useState(() => toLocalDateInput(new Date()));\n\n const { from, to } = useMemo(() => dayBounds(dateStr), [dateStr]);\n\n const { data, loading, error, refetch } = useGetTimeCampusTimelineQuery({\n variables: { from, to },\n skip: !workspaceId,\n fetchPolicy: \"cache-and-network\",\n });\n\n const [recategorize, { loading: recategorizing }] =\n useRecategorizeTimeCampusCaptureEventMutation();\n\n const timeline = data?.timeCampusTimeline;\n const segments = timeline?.segments ?? [];\n const summary = timeline?.summary;\n\n const totalsByCategory = useMemo(() => {\n const map = new Map<\n string,\n { totalSeconds: number; segmentCount: number }\n >();\n for (const t of summary?.byCategory ?? []) {\n map.set(t.category, {\n totalSeconds: t.totalSeconds,\n segmentCount: t.segmentCount,\n });\n }\n return map;\n }, [summary]);\n\n const handleRecategorize = async (\n segment: TimelineSegmentFieldsFragment,\n category: Category,\n ) => {\n if (!segment.isRecategorizable || segment.category === category) return;\n await recategorize({\n variables: { id: segment.sourceId, category },\n });\n await refetch();\n };\n\n const focusPct =\n summary && summary.focusRatio != null\n ? Math.round(summary.focusRatio * 100)\n : 0;\n\n return (\n <PageLayout\n title=\"Timeline\"\n description=\"Your day, assembled automatically\"\n purpose=\"See where your time actually went — meetings, deep work, communication and breaks stitched into one honest, chronological view from everything TimeCampus captures, so you can spot the patterns worth changing.\"\n actions={\n <label className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <Calendar className=\"h-4 w-4\" />\n <input\n type=\"date\"\n value={dateStr}\n max={toLocalDateInput(new Date())}\n onChange={(e) => setDateStr(e.target.value)}\n className=\"rounded-md border border-border-seam bg-bg-surface px-3 py-1.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-action-primary-bg/40\"\n />\n </label>\n }\n >\n {loading && !timeline ? (\n <div className=\"space-y-6\">\n <LoadingSkeleton variant=\"card\" count={4} />\n <LoadingSkeleton variant=\"list\" count={6} />\n </div>\n ) : error ? (\n <div className=\"rounded-lg border border-status-error-bg/40 bg-status-error-bg p-4 text-sm text-status-error-text\">\n Failed to load your timeline. Please try again later.\n </div>\n ) : (\n <div className=\"space-y-6\">\n {/* Summary */}\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n <StatCard\n featured\n title=\"Tracked time\"\n value={formatDuration(summary?.totalTrackedSeconds ?? 0)}\n icon={<Activity className=\"h-5 w-5\" />}\n description=\"Total activity across the day\"\n />\n <StatCard\n title=\"Focus ratio\"\n value={`${focusPct}%`}\n icon={<Brain className=\"h-5 w-5\" />}\n description=\"Share of time in deep work\"\n />\n <StatCard\n title=\"Context switches\"\n value={summary?.contextSwitches ?? 0}\n icon={<Zap className=\"h-5 w-5\" />}\n description=\"Category changes through the day\"\n />\n <StatCard\n title=\"Longest focus block\"\n value={formatDuration(summary?.longestFocusBlockSeconds ?? 0)}\n icon={<Brain className=\"h-5 w-5\" />}\n description=\"Your deepest uninterrupted stretch\"\n />\n </div>\n\n {/* Category breakdown */}\n {segments.length > 0 && (\n <GlassCard treatment=\"glass\" className=\"p-4 sm:p-6\">\n <h2 className=\"mb-4 text-sm font-semibold text-text-primary\">\n Where the time went\n </h2>\n <div className=\"flex flex-wrap gap-4\">\n {CATEGORY_ORDER.filter((c) => totalsByCategory.has(c)).map(\n (category) => {\n const meta = CATEGORY_META[category];\n const total = totalsByCategory.get(category)!;\n return (\n <div\n key={category}\n className=\"flex items-center gap-2 rounded-lg border border-border-seam bg-bg-surface px-3 py-2\"\n >\n <span\n className={`inline-block h-2.5 w-2.5 rounded-full ${meta.dot}`}\n aria-hidden\n />\n <span className=\"text-sm font-medium text-text-primary\">\n {meta.label}\n </span>\n <span className=\"text-sm tabular-nums text-text-secondary\">\n {formatDuration(total.totalSeconds)}\n </span>\n </div>\n );\n },\n )}\n </div>\n </GlassCard>\n )}\n\n {/* Chronological timeline */}\n {segments.length === 0 ? (\n <EmptyState\n illustration=\"empty-generic\"\n title=\"No activity captured for this day\"\n description=\"As you track time, hold meetings, run focus sessions, and connect shared integrations, your day assembles here automatically — categorized and in order.\"\n />\n ) : (\n <GlassCard treatment=\"glass\" glow className=\"overflow-hidden\">\n <ol className=\"divide-y divide-border-seam\">\n {segments.map((segment: TimelineSegmentFieldsFragment) => {\n const category = (segment.category as Category) ?? \"OTHER\";\n const meta = CATEGORY_META[category] ?? CATEGORY_META.OTHER;\n const SourceIcon = SOURCE_ICON[segment.source] ?? Activity;\n return (\n <li\n key={segment.id}\n className=\"flex items-start gap-3 p-4 transition-colors hover:bg-bg-sunken/50\"\n >\n <div className=\"flex w-16 shrink-0 flex-col items-end pt-0.5 text-xs tabular-nums text-text-secondary\">\n <span>{formatTime(segment.startTime)}</span>\n <span className=\"text-text-tertiary\">\n {formatDuration(segment.durationSeconds)}\n </span>\n </div>\n <div\n className={`mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg ${meta.chip}`}\n >\n <SourceIcon className=\"h-4 w-4\" />\n </div>\n <div className=\"min-w-0 flex-1\">\n <p className=\"truncate text-sm font-medium text-text-primary\">\n {segment.title || meta.label}\n </p>\n <div className=\"mt-1 flex flex-wrap items-center gap-2\">\n <span\n className={`inline-flex rounded-full px-2 py-0.5 text-xs font-medium ${meta.chip}`}\n >\n {meta.label}\n </span>\n {segment.app && (\n <span className=\"text-xs text-text-secondary\">\n {segment.app}\n </span>\n )}\n {segment.isRecategorizable && (\n <span className=\"text-xs text-text-tertiary\">\n via capture\n </span>\n )}\n </div>\n </div>\n {segment.isRecategorizable && (\n <select\n aria-label=\"Recategorize activity\"\n disabled={recategorizing}\n value={category}\n onChange={(e) =>\n handleRecategorize(\n segment,\n e.target.value as Category,\n )\n }\n className=\"shrink-0 rounded-md border border-border-seam bg-bg-surface px-2 py-1 text-xs text-text-secondary focus:outline-none focus:ring-2 focus:ring-action-primary-bg/40\"\n >\n {CATEGORY_ORDER.map((c) => (\n <option key={c} value={c}>\n {CATEGORY_META[c].label}\n </option>\n ))}\n </select>\n )}\n </li>\n );\n })}\n </ol>\n </GlassCard>\n )}\n </div>\n )}\n </PageLayout>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function WorkPatternsPage(): import("react").JSX.Element;
2
+ //# sourceMappingURL=WorkPatternsPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkPatternsPage.d.ts","sourceRoot":"","sources":["../../../../src/timecampus/pages/work-patterns/WorkPatternsPage.tsx"],"names":[],"mappings":"AAkGA,wBAAgB,gBAAgB,gCA+U/B"}