@burdenoff/microfe-timecampus 2026.703.6 → 2026.707.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 (66) hide show
  1. package/dist/generated/wspace-operations.js +1023 -1514
  2. package/dist/generated/wspace-operations.js.map +1 -1
  3. package/dist/generated/wspace-types.js +12 -18
  4. package/dist/generated/wspace-types.js.map +1 -1
  5. package/dist/index.js +4 -4
  6. package/dist/timecampus/TimeCampusRoot.js +130 -198
  7. package/dist/timecampus/TimeCampusRoot.js.map +1 -1
  8. package/dist/timecampus/TimeCampusRoutes.js +96 -164
  9. package/dist/timecampus/TimeCampusRoutes.js.map +1 -1
  10. package/dist/timecampus/components/index.js +2 -2
  11. package/dist/timecampus/pages/application-usage/ApplicationUsagePage.js +7 -7
  12. package/dist/timecampus/pages/client-portal/ClientPortalPage.js +6 -6
  13. package/dist/timecampus/pages/expense-tracking/ExpenseTrackingPage.js +8 -8
  14. package/dist/timecampus/pages/geofencing/GeofencingPage.js +6 -6
  15. package/dist/timecampus/pages/lifetime/FiniteLifePage.js +91 -91
  16. package/dist/timecampus/pages/lifetime/FiniteLifePage.js.map +1 -1
  17. package/dist/timecampus/pages/lifetime/LifeBalancePage.js +18 -18
  18. package/dist/timecampus/pages/lifetime/LifeTimelinePage.js +7 -7
  19. package/dist/timecampus/pages/lifetime/ValuesGoalsPage.js +1 -1
  20. package/dist/timecampus/pages/location-tracking/LocationTrackingPage.js +6 -6
  21. package/dist/timecampus/pages/projects/ProjectDetailPage.js +7 -7
  22. package/dist/timecampus/pages/resource-planning/ResourcePlanningPage.js +212 -212
  23. package/dist/timecampus/pages/resource-planning/ResourcePlanningPage.js.map +1 -1
  24. package/dist/timecampus/pages/team/TeamMembersPage.js +4 -4
  25. package/dist/timecampus/pages/time/TimeTrackingPage.js +143 -143
  26. package/dist/timecampus/pages/time/TimeTrackingPage.js.map +1 -1
  27. package/dist/timecampus/pages/time-approval/TimeApprovalPage.js +1 -1
  28. package/dist/timecampus/pages/timeline/TimelinePage.js +1 -1
  29. package/dist/timecampus/pages/timeline/TimelinePage.js.map +1 -1
  30. package/dist/timecampus/pages/work-patterns/WorkPatternsPage.js +87 -93
  31. package/dist/timecampus/pages/work-patterns/WorkPatternsPage.js.map +1 -1
  32. package/package.json +1 -1
  33. package/dist/timecampus/pages/applets/AppletStorePage.js +0 -167
  34. package/dist/timecampus/pages/applets/AppletStorePage.js.map +0 -1
  35. package/dist/timecampus/pages/applets/InstalledAppletsPage.js +0 -162
  36. package/dist/timecampus/pages/applets/InstalledAppletsPage.js.map +0 -1
  37. package/dist/timecampus/pages/application-usage/ApplicationUsageSettingsPage.js +0 -133
  38. package/dist/timecampus/pages/application-usage/ApplicationUsageSettingsPage.js.map +0 -1
  39. package/dist/timecampus/pages/channels/ChannelsPage.js +0 -418
  40. package/dist/timecampus/pages/channels/ChannelsPage.js.map +0 -1
  41. package/dist/timecampus/pages/email-tracking/EmailSettingsPage.js +0 -142
  42. package/dist/timecampus/pages/email-tracking/EmailSettingsPage.js.map +0 -1
  43. package/dist/timecampus/pages/focus-score/FocusScoreSettingsPage.js +0 -119
  44. package/dist/timecampus/pages/focus-score/FocusScoreSettingsPage.js.map +0 -1
  45. package/dist/timecampus/pages/geofencing/GeofencingSettingsPage.js +0 -110
  46. package/dist/timecampus/pages/geofencing/GeofencingSettingsPage.js.map +0 -1
  47. package/dist/timecampus/pages/industry-solutions/IndustrySolutionsPage.js +0 -83
  48. package/dist/timecampus/pages/industry-solutions/IndustrySolutionsPage.js.map +0 -1
  49. package/dist/timecampus/pages/location-tracking/LocationPrivacySettingsPage.js +0 -198
  50. package/dist/timecampus/pages/location-tracking/LocationPrivacySettingsPage.js.map +0 -1
  51. package/dist/timecampus/pages/team-activity/TeamActivitySettingsPage.js +0 -124
  52. package/dist/timecampus/pages/team-activity/TeamActivitySettingsPage.js.map +0 -1
  53. package/dist/timecampus/pages/templates/TemplateApplicationPage.js +0 -88
  54. package/dist/timecampus/pages/templates/TemplateApplicationPage.js.map +0 -1
  55. package/dist/timecampus/pages/templates/TemplateDetailPage.js +0 -135
  56. package/dist/timecampus/pages/templates/TemplateDetailPage.js.map +0 -1
  57. package/dist/timecampus/pages/templates/TemplatesPage.js +0 -191
  58. package/dist/timecampus/pages/templates/TemplatesPage.js.map +0 -1
  59. package/dist/timecampus/pages/widgets/WidgetDetailPage.js +0 -196
  60. package/dist/timecampus/pages/widgets/WidgetDetailPage.js.map +0 -1
  61. package/dist/timecampus/pages/widgets/WidgetsPage.js +0 -297
  62. package/dist/timecampus/pages/widgets/WidgetsPage.js.map +0 -1
  63. package/dist/timecampus/pages/work-patterns/WorkPatternsSettingsPage.js +0 -133
  64. package/dist/timecampus/pages/work-patterns/WorkPatternsSettingsPage.js.map +0 -1
  65. package/dist/timecampus/pages/workflows/WorkflowsPage.js +0 -311
  66. package/dist/timecampus/pages/workflows/WorkflowsPage.js.map +0 -1
@@ -2,66 +2,124 @@ import { TimeCampusProvider as e } from "./providers/TimeCampusProvider.js";
2
2
  import { TimeCampusRoutes as t } from "./TimeCampusRoutes.js";
3
3
  import { ErrorBoundary as n } from "./components/ErrorBoundary.js";
4
4
  import { useEffect as r } from "react";
5
- import { Activity as i, Brain as a, Building2 as o, CalendarDays as s, CalendarRange as c, CheckCircle as l, Clock as u, Factory as d, FolderOpen as f, GitBranch as p, Heart as m, LayoutDashboard as h, LayoutGrid as g, Mail as _, MapPin as v, Monitor as y, Puzzle as b, Radio as x, Receipt as S, Sparkles as C, Timer as w, TrendingUp as T, Users as E } from "lucide-react";
6
- import { jsx as D } from "react/jsx-runtime";
7
- import { FeatureFlagProvider as O } from "@burdenoff/fe-libs/shared/feature-flags";
5
+ import { Activity as i, Brain as a, Building2 as o, CalendarDays as s, CalendarRange as c, CheckCircle as l, Clock as u, FolderOpen as d, Heart as f, LayoutDashboard as p, Mail as m, MapPin as h, Monitor as g, Receipt as _, Timer as v, TrendingUp as y, Users as b } from "lucide-react";
6
+ import { jsx as x } from "react/jsx-runtime";
7
+ import { FeatureFlagProvider as S } from "@burdenoff/fe-libs/shared/feature-flags";
8
8
  //#region src/timecampus/TimeCampusRoot.tsx
9
- var k = (k) => {
10
- let { registerNavItems: A, registerFooterItems: j, basePath: M = "/" } = k, N = (e, t) => (e.endsWith("/") ? e.slice(0, -1) : e) + (t.startsWith("/") ? t : `/${t}`);
9
+ var C = (C) => {
10
+ let { registerNavItems: w, registerFooterItems: T, basePath: E = "/" } = C, D = (e, t) => (e.endsWith("/") ? e.slice(0, -1) : e) + (t.startsWith("/") ? t : `/${t}`);
11
11
  return r(() => {
12
- if (A) return A([
12
+ if (w) return w([
13
13
  {
14
14
  id: "timecampus-dashboard",
15
15
  label: "Dashboard",
16
- path: N(M, ""),
17
- icon: /* @__PURE__ */ D(h, { size: 20 }),
16
+ path: D(E, ""),
17
+ icon: /* @__PURE__ */ x(p, { size: 20 }),
18
18
  order: 1,
19
19
  group: "main",
20
20
  children: [
21
21
  {
22
22
  id: "timecampus-dashboard-overview",
23
23
  label: "Overview",
24
- path: N(M, ""),
24
+ path: D(E, ""),
25
25
  order: 1
26
26
  },
27
27
  {
28
28
  id: "timecampus-dashboard-analytics",
29
29
  label: "Analytics",
30
- path: N(M, "analytics"),
30
+ path: D(E, "analytics"),
31
31
  order: 2
32
32
  },
33
33
  {
34
34
  id: "timecampus-dashboard-reports",
35
35
  label: "Reports",
36
- path: N(M, "reports"),
36
+ path: D(E, "reports"),
37
37
  order: 3
38
38
  }
39
39
  ]
40
40
  },
41
+ {
42
+ id: "timecampus-life",
43
+ label: "Life",
44
+ path: D(E, "life-timeline"),
45
+ icon: /* @__PURE__ */ x(f, { size: 20 }),
46
+ order: 23,
47
+ group: "main",
48
+ children: [
49
+ {
50
+ id: "timecampus-life-timeline",
51
+ label: "Life Timeline",
52
+ path: D(E, "life-timeline"),
53
+ order: 1
54
+ },
55
+ {
56
+ id: "timecampus-life-balance",
57
+ label: "Life Balance",
58
+ path: D(E, "life-balance"),
59
+ order: 2
60
+ },
61
+ {
62
+ id: "timecampus-finite-life",
63
+ label: "Life in Weeks",
64
+ path: D(E, "finite-life"),
65
+ order: 3
66
+ },
67
+ {
68
+ id: "timecampus-time-well-spent",
69
+ label: "Time Well Spent",
70
+ path: D(E, "time-well-spent"),
71
+ order: 4
72
+ },
73
+ {
74
+ id: "timecampus-dead-time-radar",
75
+ label: "Dead-Time Radar",
76
+ path: D(E, "dead-time-radar"),
77
+ order: 5
78
+ },
79
+ {
80
+ id: "timecampus-values-goals",
81
+ label: "Values & Goals",
82
+ path: D(E, "values-goals"),
83
+ order: 6
84
+ },
85
+ {
86
+ id: "timecampus-recommendations",
87
+ label: "Recommendations",
88
+ path: D(E, "recommendations"),
89
+ order: 7
90
+ },
91
+ {
92
+ id: "timecampus-personal-corporate",
93
+ label: "Personal & Corporate",
94
+ path: D(E, "personal-corporate"),
95
+ order: 8
96
+ }
97
+ ]
98
+ },
41
99
  {
42
100
  id: "timecampus-time",
43
101
  label: "Time Tracking",
44
- path: N(M, "time"),
45
- icon: /* @__PURE__ */ D(u, { size: 20 }),
102
+ path: D(E, "time"),
103
+ icon: /* @__PURE__ */ x(u, { size: 20 }),
46
104
  order: 2,
47
105
  group: "main",
48
106
  children: [
49
107
  {
50
108
  id: "timecampus-time-tracking",
51
109
  label: "Time Tracking",
52
- path: N(M, "time"),
110
+ path: D(E, "time"),
53
111
  order: 1
54
112
  },
55
113
  {
56
114
  id: "timecampus-time-timer",
57
115
  label: "Timer",
58
- path: N(M, "time/timer"),
116
+ path: D(E, "time/timer"),
59
117
  order: 2
60
118
  },
61
119
  {
62
120
  id: "timecampus-time-entries",
63
121
  label: "Time Entries",
64
- path: N(M, "time/entries"),
122
+ path: D(E, "time/entries"),
65
123
  order: 3
66
124
  }
67
125
  ]
@@ -69,35 +127,35 @@ var k = (k) => {
69
127
  {
70
128
  id: "timecampus-projects",
71
129
  label: "Projects",
72
- path: N(M, "projects"),
73
- icon: /* @__PURE__ */ D(f, { size: 20 }),
130
+ path: D(E, "projects"),
131
+ icon: /* @__PURE__ */ x(d, { size: 20 }),
74
132
  order: 3,
75
133
  group: "main"
76
134
  },
77
135
  {
78
136
  id: "timecampus-pomodoro",
79
137
  label: "Pomodoro",
80
- path: N(M, "pomodoro"),
81
- icon: /* @__PURE__ */ D(w, { size: 20 }),
138
+ path: D(E, "pomodoro"),
139
+ icon: /* @__PURE__ */ x(v, { size: 20 }),
82
140
  order: 4,
83
141
  group: "main",
84
142
  children: [
85
143
  {
86
144
  id: "timecampus-pomodoro-timer",
87
145
  label: "Timer",
88
- path: N(M, "pomodoro"),
146
+ path: D(E, "pomodoro"),
89
147
  order: 1
90
148
  },
91
149
  {
92
150
  id: "timecampus-pomodoro-analytics",
93
151
  label: "Analytics",
94
- path: N(M, "pomodoro/analytics"),
152
+ path: D(E, "pomodoro/analytics"),
95
153
  order: 2
96
154
  },
97
155
  {
98
156
  id: "timecampus-pomodoro-settings",
99
157
  label: "Settings",
100
- path: N(M, "pomodoro/settings"),
158
+ path: D(E, "pomodoro/settings"),
101
159
  order: 3
102
160
  }
103
161
  ]
@@ -105,27 +163,27 @@ var k = (k) => {
105
163
  {
106
164
  id: "timecampus-team",
107
165
  label: "Team",
108
- path: N(M, "team"),
109
- icon: /* @__PURE__ */ D(E, { size: 20 }),
166
+ path: D(E, "team"),
167
+ icon: /* @__PURE__ */ x(b, { size: 20 }),
110
168
  order: 5,
111
169
  group: "main",
112
170
  children: [
113
171
  {
114
172
  id: "timecampus-team-overview",
115
173
  label: "Overview",
116
- path: N(M, "team"),
174
+ path: D(E, "team"),
117
175
  order: 1
118
176
  },
119
177
  {
120
178
  id: "timecampus-team-members",
121
179
  label: "Members",
122
- path: N(M, "team/members"),
180
+ path: D(E, "team/members"),
123
181
  order: 2
124
182
  },
125
183
  {
126
184
  id: "timecampus-team-analytics",
127
185
  label: "Analytics",
128
- path: N(M, "team/analytics"),
186
+ path: D(E, "team/analytics"),
129
187
  order: 3
130
188
  }
131
189
  ]
@@ -133,270 +191,144 @@ var k = (k) => {
133
191
  {
134
192
  id: "timecampus-resource-planning",
135
193
  label: "Resource Planning",
136
- path: N(M, "resource-planning"),
137
- icon: /* @__PURE__ */ D(c, { size: 20 }),
194
+ path: D(E, "resource-planning"),
195
+ icon: /* @__PURE__ */ x(c, { size: 20 }),
138
196
  order: 6,
139
197
  group: "management"
140
198
  },
141
199
  {
142
200
  id: "timecampus-time-approval",
143
201
  label: "Time Approval",
144
- path: N(M, "time-approval"),
145
- icon: /* @__PURE__ */ D(l, { size: 20 }),
202
+ path: D(E, "time-approval"),
203
+ icon: /* @__PURE__ */ x(l, { size: 20 }),
146
204
  order: 7,
147
205
  group: "management"
148
206
  },
149
207
  {
150
208
  id: "timecampus-team-activity",
151
209
  label: "Team Activity",
152
- path: N(M, "team-activity"),
153
- icon: /* @__PURE__ */ D(i, { size: 20 }),
210
+ path: D(E, "team-activity"),
211
+ icon: /* @__PURE__ */ x(i, { size: 20 }),
154
212
  order: 8,
155
213
  group: "insights"
156
214
  },
157
215
  {
158
216
  id: "timecampus-work-patterns",
159
217
  label: "Work Patterns",
160
- path: N(M, "work-patterns"),
161
- icon: /* @__PURE__ */ D(T, { size: 20 }),
218
+ path: D(E, "work-patterns"),
219
+ icon: /* @__PURE__ */ x(y, { size: 20 }),
162
220
  order: 9,
163
221
  group: "insights"
164
222
  },
165
223
  {
166
224
  id: "timecampus-focus-score",
167
225
  label: "Focus Score",
168
- path: N(M, "focus-score"),
169
- icon: /* @__PURE__ */ D(a, { size: 20 }),
226
+ path: D(E, "focus-score"),
227
+ icon: /* @__PURE__ */ x(a, { size: 20 }),
170
228
  order: 10,
171
229
  group: "insights"
172
230
  },
173
231
  {
174
232
  id: "timecampus-app-usage",
175
233
  label: "App Usage",
176
- path: N(M, "application-usage"),
177
- icon: /* @__PURE__ */ D(y, { size: 20 }),
234
+ path: D(E, "application-usage"),
235
+ icon: /* @__PURE__ */ x(g, { size: 20 }),
178
236
  order: 11,
179
237
  group: "insights"
180
238
  },
181
239
  {
182
240
  id: "timecampus-email-tracking",
183
241
  label: "Email Tracking",
184
- path: N(M, "email-tracking"),
185
- icon: /* @__PURE__ */ D(_, { size: 20 }),
242
+ path: D(E, "email-tracking"),
243
+ icon: /* @__PURE__ */ x(m, { size: 20 }),
186
244
  order: 12,
187
245
  group: "tracking",
188
- children: [
189
- {
190
- id: "timecampus-email-all",
191
- label: "All Emails",
192
- path: N(M, "email-tracking"),
193
- order: 1
194
- },
195
- {
196
- id: "timecampus-email-analytics",
197
- label: "Analytics",
198
- path: N(M, "email-tracking/analytics"),
199
- order: 2
200
- },
201
- {
202
- id: "timecampus-email-settings",
203
- label: "Settings",
204
- path: N(M, "email-tracking/settings"),
205
- order: 3
206
- }
207
- ]
246
+ children: [{
247
+ id: "timecampus-email-all",
248
+ label: "All Emails",
249
+ path: D(E, "email-tracking"),
250
+ order: 1
251
+ }, {
252
+ id: "timecampus-email-analytics",
253
+ label: "Analytics",
254
+ path: D(E, "email-tracking/analytics"),
255
+ order: 2
256
+ }]
208
257
  },
209
258
  {
210
259
  id: "timecampus-meetings",
211
260
  label: "Meetings",
212
- path: N(M, "meetings"),
213
- icon: /* @__PURE__ */ D(s, { size: 20 }),
261
+ path: D(E, "meetings"),
262
+ icon: /* @__PURE__ */ x(s, { size: 20 }),
214
263
  order: 13,
215
264
  group: "tracking",
216
265
  children: [{
217
266
  id: "timecampus-meetings-all",
218
267
  label: "All Meetings",
219
- path: N(M, "meetings"),
268
+ path: D(E, "meetings"),
220
269
  order: 1
221
270
  }, {
222
271
  id: "timecampus-meetings-analytics",
223
272
  label: "Analytics",
224
- path: N(M, "meetings/analytics"),
273
+ path: D(E, "meetings/analytics"),
225
274
  order: 2
226
275
  }]
227
276
  },
228
277
  {
229
278
  id: "timecampus-location",
230
279
  label: "Location Tracking",
231
- path: N(M, "location-tracking"),
232
- icon: /* @__PURE__ */ D(v, { size: 20 }),
280
+ path: D(E, "location-tracking"),
281
+ icon: /* @__PURE__ */ x(h, { size: 20 }),
233
282
  order: 14,
234
283
  group: "tracking",
235
284
  children: [{
236
285
  id: "timecampus-location-all",
237
286
  label: "Locations",
238
- path: N(M, "location-tracking"),
287
+ path: D(E, "location-tracking"),
239
288
  order: 1
240
289
  }, {
241
290
  id: "timecampus-location-geofencing",
242
291
  label: "Geofencing",
243
- path: N(M, "geofencing"),
292
+ path: D(E, "geofencing"),
244
293
  order: 2
245
294
  }]
246
295
  },
247
296
  {
248
297
  id: "timecampus-expense-tracking",
249
298
  label: "Expense Tracking",
250
- path: N(M, "expense-tracking"),
251
- icon: /* @__PURE__ */ D(S, { size: 20 }),
299
+ path: D(E, "expense-tracking"),
300
+ icon: /* @__PURE__ */ x(_, { size: 20 }),
252
301
  order: 15,
253
302
  group: "business"
254
303
  },
255
304
  {
256
305
  id: "timecampus-client-portal",
257
306
  label: "Client Portal",
258
- path: N(M, "client-portal"),
259
- icon: /* @__PURE__ */ D(o, { size: 20 }),
307
+ path: D(E, "client-portal"),
308
+ icon: /* @__PURE__ */ x(o, { size: 20 }),
260
309
  order: 16,
261
310
  group: "business"
262
- },
263
- {
264
- id: "timecampus-channels",
265
- label: "Channels",
266
- path: N(M, "channels"),
267
- icon: /* @__PURE__ */ D(x, { size: 20 }),
268
- order: 17,
269
- group: "platform"
270
- },
271
- {
272
- id: "timecampus-widgets",
273
- label: "Widgets",
274
- path: N(M, "widgets"),
275
- icon: /* @__PURE__ */ D(g, { size: 20 }),
276
- order: 18,
277
- group: "platform"
278
- },
279
- {
280
- id: "timecampus-workflows",
281
- label: "Workflows",
282
- path: N(M, "workflows"),
283
- icon: /* @__PURE__ */ D(p, { size: 20 }),
284
- order: 19,
285
- group: "platform"
286
- },
287
- {
288
- id: "timecampus-applets",
289
- label: "Applets",
290
- path: N(M, "applets"),
291
- icon: /* @__PURE__ */ D(b, { size: 20 }),
292
- order: 20,
293
- group: "platform",
294
- children: [{
295
- id: "timecampus-applets-installed",
296
- label: "Installed",
297
- path: N(M, "applets"),
298
- order: 1
299
- }, {
300
- id: "timecampus-applets-store",
301
- label: "Store",
302
- path: N(M, "applets/store"),
303
- order: 2
304
- }]
305
- },
306
- {
307
- id: "timecampus-templates",
308
- label: "Templates",
309
- path: N(M, "templates"),
310
- icon: /* @__PURE__ */ D(C, { size: 20 }),
311
- order: 21,
312
- group: "platform"
313
- },
314
- {
315
- id: "timecampus-industry-solutions",
316
- label: "Industry Solutions",
317
- path: N(M, "industry-solutions"),
318
- icon: /* @__PURE__ */ D(d, { size: 20 }),
319
- order: 22,
320
- group: "platform"
321
- },
322
- {
323
- id: "timecampus-life",
324
- label: "Life",
325
- path: N(M, "life-timeline"),
326
- icon: /* @__PURE__ */ D(m, { size: 20 }),
327
- order: 5,
328
- group: "main",
329
- children: [
330
- {
331
- id: "timecampus-life-timeline",
332
- label: "Life Timeline",
333
- path: N(M, "life-timeline"),
334
- order: 1
335
- },
336
- {
337
- id: "timecampus-life-balance",
338
- label: "Life Balance",
339
- path: N(M, "life-balance"),
340
- order: 2
341
- },
342
- {
343
- id: "timecampus-finite-life",
344
- label: "Life in Weeks",
345
- path: N(M, "finite-life"),
346
- order: 3
347
- },
348
- {
349
- id: "timecampus-time-well-spent",
350
- label: "Time Well Spent",
351
- path: N(M, "time-well-spent"),
352
- order: 4
353
- },
354
- {
355
- id: "timecampus-dead-time-radar",
356
- label: "Dead-Time Radar",
357
- path: N(M, "dead-time-radar"),
358
- order: 5
359
- },
360
- {
361
- id: "timecampus-values-goals",
362
- label: "Values & Goals",
363
- path: N(M, "values-goals"),
364
- order: 6
365
- },
366
- {
367
- id: "timecampus-recommendations",
368
- label: "Recommendations",
369
- path: N(M, "recommendations"),
370
- order: 7
371
- },
372
- {
373
- id: "timecampus-personal-corporate",
374
- label: "Personal & Corporate",
375
- path: N(M, "personal-corporate"),
376
- order: 8
377
- }
378
- ]
379
311
  }
380
312
  ]);
381
- }, [A, M]), r(() => {
382
- if (j) return j([{
313
+ }, [w, E]), r(() => {
314
+ if (T) return T([{
383
315
  id: "timecampus-status",
384
316
  label: "TimeCampus Ready",
385
317
  type: "status",
386
318
  order: 10,
387
319
  section: "left"
388
320
  }]);
389
- }, [j]), /* @__PURE__ */ D(O, {
321
+ }, [T]), /* @__PURE__ */ x(S, {
390
322
  workspaceId: null,
391
323
  gateway: "global",
392
324
  defaultEnabled: !0,
393
- children: /* @__PURE__ */ D(e, {
394
- ...k,
395
- children: /* @__PURE__ */ D(n, { children: /* @__PURE__ */ D(t, {}) })
325
+ children: /* @__PURE__ */ x(e, {
326
+ ...C,
327
+ children: /* @__PURE__ */ x(n, { children: /* @__PURE__ */ x(t, {}) })
396
328
  })
397
329
  });
398
330
  };
399
331
  //#endregion
400
- export { k as TimeCampusRoot };
332
+ export { C as TimeCampusRoot };
401
333
 
402
334
  //# sourceMappingURL=TimeCampusRoot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimeCampusRoot.js","names":[],"sources":["../../src/timecampus/TimeCampusRoot.tsx"],"sourcesContent":["/**\n * TimeCampus Root Component\n * @module timecampus\n */\n\nimport type { FC } from \"react\";\nimport { useEffect } from \"react\";\nimport {\n LayoutDashboard,\n Clock,\n FolderOpen,\n Timer,\n Users,\n CalendarRange,\n CheckCircle,\n Activity,\n TrendingUp,\n Brain,\n Monitor,\n Mail,\n CalendarDays,\n MapPin,\n Receipt,\n Building2,\n Radio,\n LayoutGrid,\n GitBranch,\n Puzzle,\n Sparkles,\n Factory,\n Heart,\n} from \"lucide-react\";\nimport { TimeCampusProvider } from \"./providers/TimeCampusProvider\";\nimport { FeatureFlagProvider } from \"@burdenoff/fe-libs/shared/feature-flags\";\nimport { TimeCampusRoutes } from \"./TimeCampusRoutes\";\nimport { ErrorBoundary } from \"./components/ErrorBoundary\";\nimport type { TimeCampusRootProps, NavItem } from \"./types\";\n\nexport const TimeCampusRoot: FC<TimeCampusRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = \"/\" } = props;\n\n // Helper to join paths correctly\n const joinPath = (base: string, path: string): string => {\n const cleanBase = base.endsWith(\"/\") ? base.slice(0, -1) : base;\n const cleanPath = path.startsWith(\"/\") ? path : `/${path}`;\n return cleanBase + cleanPath;\n };\n\n // Register navigation items with shell on mount\n useEffect(() => {\n if (!registerNavItems) return;\n\n const navItems: NavItem[] = [\n // 1. Dashboard\n {\n id: \"timecampus-dashboard\",\n label: \"Dashboard\",\n path: joinPath(basePath, \"\"),\n icon: <LayoutDashboard size={20} />,\n order: 1,\n group: \"main\",\n children: [\n {\n id: \"timecampus-dashboard-overview\",\n label: \"Overview\",\n path: joinPath(basePath, \"\"),\n order: 1,\n },\n {\n id: \"timecampus-dashboard-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"analytics\"),\n order: 2,\n },\n {\n id: \"timecampus-dashboard-reports\",\n label: \"Reports\",\n path: joinPath(basePath, \"reports\"),\n order: 3,\n },\n ],\n },\n\n // 2. Time Tracking\n {\n id: \"timecampus-time\",\n label: \"Time Tracking\",\n path: joinPath(basePath, \"time\"),\n icon: <Clock size={20} />,\n order: 2,\n group: \"main\",\n children: [\n {\n id: \"timecampus-time-tracking\",\n label: \"Time Tracking\",\n path: joinPath(basePath, \"time\"),\n order: 1,\n },\n {\n id: \"timecampus-time-timer\",\n label: \"Timer\",\n path: joinPath(basePath, \"time/timer\"),\n order: 2,\n },\n {\n id: \"timecampus-time-entries\",\n label: \"Time Entries\",\n path: joinPath(basePath, \"time/entries\"),\n order: 3,\n },\n ],\n },\n\n // 3. Projects\n {\n id: \"timecampus-projects\",\n label: \"Projects\",\n path: joinPath(basePath, \"projects\"),\n icon: <FolderOpen size={20} />,\n order: 3,\n group: \"main\",\n },\n\n // 4. Pomodoro\n {\n id: \"timecampus-pomodoro\",\n label: \"Pomodoro\",\n path: joinPath(basePath, \"pomodoro\"),\n icon: <Timer size={20} />,\n order: 4,\n group: \"main\",\n children: [\n {\n id: \"timecampus-pomodoro-timer\",\n label: \"Timer\",\n path: joinPath(basePath, \"pomodoro\"),\n order: 1,\n },\n {\n id: \"timecampus-pomodoro-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"pomodoro/analytics\"),\n order: 2,\n },\n {\n id: \"timecampus-pomodoro-settings\",\n label: \"Settings\",\n path: joinPath(basePath, \"pomodoro/settings\"),\n order: 3,\n },\n ],\n },\n\n // 5. Team\n {\n id: \"timecampus-team\",\n label: \"Team\",\n path: joinPath(basePath, \"team\"),\n icon: <Users size={20} />,\n order: 5,\n group: \"main\",\n children: [\n {\n id: \"timecampus-team-overview\",\n label: \"Overview\",\n path: joinPath(basePath, \"team\"),\n order: 1,\n },\n {\n id: \"timecampus-team-members\",\n label: \"Members\",\n path: joinPath(basePath, \"team/members\"),\n order: 2,\n },\n {\n id: \"timecampus-team-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"team/analytics\"),\n order: 3,\n },\n ],\n },\n\n // 6. Resource Planning\n {\n id: \"timecampus-resource-planning\",\n label: \"Resource Planning\",\n path: joinPath(basePath, \"resource-planning\"),\n icon: <CalendarRange size={20} />,\n order: 6,\n group: \"management\",\n },\n\n // 7. Time Approval\n {\n id: \"timecampus-time-approval\",\n label: \"Time Approval\",\n path: joinPath(basePath, \"time-approval\"),\n icon: <CheckCircle size={20} />,\n order: 7,\n group: \"management\",\n },\n\n // 8. Team Activity\n {\n id: \"timecampus-team-activity\",\n label: \"Team Activity\",\n path: joinPath(basePath, \"team-activity\"),\n icon: <Activity size={20} />,\n order: 8,\n group: \"insights\",\n },\n\n // 9. Work Patterns\n {\n id: \"timecampus-work-patterns\",\n label: \"Work Patterns\",\n path: joinPath(basePath, \"work-patterns\"),\n icon: <TrendingUp size={20} />,\n order: 9,\n group: \"insights\",\n },\n\n // 10. Focus Score\n {\n id: \"timecampus-focus-score\",\n label: \"Focus Score\",\n path: joinPath(basePath, \"focus-score\"),\n icon: <Brain size={20} />,\n order: 10,\n group: \"insights\",\n },\n\n // 11. App Usage\n {\n id: \"timecampus-app-usage\",\n label: \"App Usage\",\n path: joinPath(basePath, \"application-usage\"),\n icon: <Monitor size={20} />,\n order: 11,\n group: \"insights\",\n },\n\n // 12. Email Tracking\n {\n id: \"timecampus-email-tracking\",\n label: \"Email Tracking\",\n path: joinPath(basePath, \"email-tracking\"),\n icon: <Mail size={20} />,\n order: 12,\n group: \"tracking\",\n children: [\n {\n id: \"timecampus-email-all\",\n label: \"All Emails\",\n path: joinPath(basePath, \"email-tracking\"),\n order: 1,\n },\n {\n id: \"timecampus-email-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"email-tracking/analytics\"),\n order: 2,\n },\n {\n id: \"timecampus-email-settings\",\n label: \"Settings\",\n path: joinPath(basePath, \"email-tracking/settings\"),\n order: 3,\n },\n ],\n },\n\n // 13. Meetings\n {\n id: \"timecampus-meetings\",\n label: \"Meetings\",\n path: joinPath(basePath, \"meetings\"),\n icon: <CalendarDays size={20} />,\n order: 13,\n group: \"tracking\",\n children: [\n {\n id: \"timecampus-meetings-all\",\n label: \"All Meetings\",\n path: joinPath(basePath, \"meetings\"),\n order: 1,\n },\n {\n id: \"timecampus-meetings-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"meetings/analytics\"),\n order: 2,\n },\n ],\n },\n\n // 14. Location Tracking\n {\n id: \"timecampus-location\",\n label: \"Location Tracking\",\n path: joinPath(basePath, \"location-tracking\"),\n icon: <MapPin size={20} />,\n order: 14,\n group: \"tracking\",\n children: [\n {\n id: \"timecampus-location-all\",\n label: \"Locations\",\n path: joinPath(basePath, \"location-tracking\"),\n order: 1,\n },\n {\n id: \"timecampus-location-geofencing\",\n label: \"Geofencing\",\n path: joinPath(basePath, \"geofencing\"),\n order: 2,\n },\n ],\n },\n\n // 15. Expense Tracking\n {\n id: \"timecampus-expense-tracking\",\n label: \"Expense Tracking\",\n path: joinPath(basePath, \"expense-tracking\"),\n icon: <Receipt size={20} />,\n order: 15,\n group: \"business\",\n },\n\n // 16. Client Portal\n {\n id: \"timecampus-client-portal\",\n label: \"Client Portal\",\n path: joinPath(basePath, \"client-portal\"),\n icon: <Building2 size={20} />,\n order: 16,\n group: \"business\",\n },\n\n // 17. Channels\n {\n id: \"timecampus-channels\",\n label: \"Channels\",\n path: joinPath(basePath, \"channels\"),\n icon: <Radio size={20} />,\n order: 17,\n group: \"platform\",\n },\n\n // 18. Widgets\n {\n id: \"timecampus-widgets\",\n label: \"Widgets\",\n path: joinPath(basePath, \"widgets\"),\n icon: <LayoutGrid size={20} />,\n order: 18,\n group: \"platform\",\n },\n\n // 19. Workflows\n {\n id: \"timecampus-workflows\",\n label: \"Workflows\",\n path: joinPath(basePath, \"workflows\"),\n icon: <GitBranch size={20} />,\n order: 19,\n group: \"platform\",\n },\n\n // 20. Applets\n {\n id: \"timecampus-applets\",\n label: \"Applets\",\n path: joinPath(basePath, \"applets\"),\n icon: <Puzzle size={20} />,\n order: 20,\n group: \"platform\",\n children: [\n {\n id: \"timecampus-applets-installed\",\n label: \"Installed\",\n path: joinPath(basePath, \"applets\"),\n order: 1,\n },\n {\n id: \"timecampus-applets-store\",\n label: \"Store\",\n path: joinPath(basePath, \"applets/store\"),\n order: 2,\n },\n ],\n },\n\n // 21. Templates\n {\n id: \"timecampus-templates\",\n label: \"Templates\",\n path: joinPath(basePath, \"templates\"),\n icon: <Sparkles size={20} />,\n order: 21,\n group: \"platform\",\n },\n\n // 22. Industry Solutions\n {\n id: \"timecampus-industry-solutions\",\n label: \"Industry Solutions\",\n path: joinPath(basePath, \"industry-solutions\"),\n icon: <Factory size={20} />,\n order: 22,\n group: \"platform\",\n },\n\n // Life — the whole of your time (work + personal)\n {\n id: \"timecampus-life\",\n label: \"Life\",\n path: joinPath(basePath, \"life-timeline\"),\n icon: <Heart size={20} />,\n order: 5,\n group: \"main\",\n children: [\n {\n id: \"timecampus-life-timeline\",\n label: \"Life Timeline\",\n path: joinPath(basePath, \"life-timeline\"),\n order: 1,\n },\n {\n id: \"timecampus-life-balance\",\n label: \"Life Balance\",\n path: joinPath(basePath, \"life-balance\"),\n order: 2,\n },\n {\n id: \"timecampus-finite-life\",\n label: \"Life in Weeks\",\n path: joinPath(basePath, \"finite-life\"),\n order: 3,\n },\n {\n id: \"timecampus-time-well-spent\",\n label: \"Time Well Spent\",\n path: joinPath(basePath, \"time-well-spent\"),\n order: 4,\n },\n {\n id: \"timecampus-dead-time-radar\",\n label: \"Dead-Time Radar\",\n path: joinPath(basePath, \"dead-time-radar\"),\n order: 5,\n },\n {\n id: \"timecampus-values-goals\",\n label: \"Values & Goals\",\n path: joinPath(basePath, \"values-goals\"),\n order: 6,\n },\n {\n id: \"timecampus-recommendations\",\n label: \"Recommendations\",\n path: joinPath(basePath, \"recommendations\"),\n order: 7,\n },\n {\n id: \"timecampus-personal-corporate\",\n label: \"Personal & Corporate\",\n path: joinPath(basePath, \"personal-corporate\"),\n order: 8,\n },\n ],\n },\n ];\n\n const cleanup = registerNavItems(navItems);\n return cleanup;\n }, [registerNavItems, basePath]);\n\n // Register footer items\n useEffect(() => {\n if (!registerFooterItems) return;\n\n const footerItems = [\n {\n id: \"timecampus-status\",\n label: \"TimeCampus Ready\",\n type: \"status\" as const,\n order: 10,\n section: \"left\" as const,\n },\n ];\n\n const cleanup = registerFooterItems(footerItems);\n return cleanup;\n }, [registerFooterItems]);\n\n return (\n <FeatureFlagProvider\n workspaceId={null}\n gateway=\"global\"\n defaultEnabled={true}\n >\n <TimeCampusProvider {...props}>\n <ErrorBoundary>\n <TimeCampusRoutes />\n </ErrorBoundary>\n </TimeCampusProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":";;;;;;;;AAsCA,IAAa,KAA2C,MAAU;CAChE,IAAM,EAAE,qBAAkB,wBAAqB,cAAW,QAAQ,GAG5D,KAAY,GAAc,OACZ,EAAK,SAAS,IAAI,GAAG,EAAK,MAAM,GAAG,GAAG,GAAG,MACzC,EAAK,WAAW,IAAI,GAAG,IAAO,IAAI;AAsctD,QAjcA,QAAgB;AACT,QA2aL,QADgB,EAxaY;GAE1B;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,GAAG;IAC5B,MAAM,kBAAC,GAAD,EAAiB,MAAM,IAAM,CAAA;IACnC,OAAO;IACP,OAAO;IACP,UAAU;KACR;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,GAAG;MAC5B,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,YAAY;MACrC,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,UAAU;MACnC,OAAO;MACR;KACF;IACF;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,OAAO;IAChC,MAAM,kBAAC,GAAD,EAAO,MAAM,IAAM,CAAA;IACzB,OAAO;IACP,OAAO;IACP,UAAU;KACR;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,OAAO;MAChC,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,aAAa;MACtC,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,eAAe;MACxC,OAAO;MACR;KACF;IACF;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,WAAW;IACpC,MAAM,kBAAC,GAAD,EAAY,MAAM,IAAM,CAAA;IAC9B,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,WAAW;IACpC,MAAM,kBAAC,GAAD,EAAO,MAAM,IAAM,CAAA;IACzB,OAAO;IACP,OAAO;IACP,UAAU;KACR;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,WAAW;MACpC,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,qBAAqB;MAC9C,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,oBAAoB;MAC7C,OAAO;MACR;KACF;IACF;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,OAAO;IAChC,MAAM,kBAAC,GAAD,EAAO,MAAM,IAAM,CAAA;IACzB,OAAO;IACP,OAAO;IACP,UAAU;KACR;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,OAAO;MAChC,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,eAAe;MACxC,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,iBAAiB;MAC1C,OAAO;MACR;KACF;IACF;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,oBAAoB;IAC7C,MAAM,kBAAC,GAAD,EAAe,MAAM,IAAM,CAAA;IACjC,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,gBAAgB;IACzC,MAAM,kBAAC,GAAD,EAAa,MAAM,IAAM,CAAA;IAC/B,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,gBAAgB;IACzC,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;IAC5B,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,gBAAgB;IACzC,MAAM,kBAAC,GAAD,EAAY,MAAM,IAAM,CAAA;IAC9B,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,cAAc;IACvC,MAAM,kBAAC,GAAD,EAAO,MAAM,IAAM,CAAA;IACzB,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,oBAAoB;IAC7C,MAAM,kBAAC,GAAD,EAAS,MAAM,IAAM,CAAA;IAC3B,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,iBAAiB;IAC1C,MAAM,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;IACxB,OAAO;IACP,OAAO;IACP,UAAU;KACR;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,iBAAiB;MAC1C,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,2BAA2B;MACpD,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,0BAA0B;MACnD,OAAO;MACR;KACF;IACF;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,WAAW;IACpC,MAAM,kBAAC,GAAD,EAAc,MAAM,IAAM,CAAA;IAChC,OAAO;IACP,OAAO;IACP,UAAU,CACR;KACE,IAAI;KACJ,OAAO;KACP,MAAM,EAAS,GAAU,WAAW;KACpC,OAAO;KACR,EACD;KACE,IAAI;KACJ,OAAO;KACP,MAAM,EAAS,GAAU,qBAAqB;KAC9C,OAAO;KACR,CACF;IACF;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,oBAAoB;IAC7C,MAAM,kBAAC,GAAD,EAAQ,MAAM,IAAM,CAAA;IAC1B,OAAO;IACP,OAAO;IACP,UAAU,CACR;KACE,IAAI;KACJ,OAAO;KACP,MAAM,EAAS,GAAU,oBAAoB;KAC7C,OAAO;KACR,EACD;KACE,IAAI;KACJ,OAAO;KACP,MAAM,EAAS,GAAU,aAAa;KACtC,OAAO;KACR,CACF;IACF;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,mBAAmB;IAC5C,MAAM,kBAAC,GAAD,EAAS,MAAM,IAAM,CAAA;IAC3B,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,gBAAgB;IACzC,MAAM,kBAAC,GAAD,EAAW,MAAM,IAAM,CAAA;IAC7B,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,WAAW;IACpC,MAAM,kBAAC,GAAD,EAAO,MAAM,IAAM,CAAA;IACzB,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,UAAU;IACnC,MAAM,kBAAC,GAAD,EAAY,MAAM,IAAM,CAAA;IAC9B,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,YAAY;IACrC,MAAM,kBAAC,GAAD,EAAW,MAAM,IAAM,CAAA;IAC7B,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,UAAU;IACnC,MAAM,kBAAC,GAAD,EAAQ,MAAM,IAAM,CAAA;IAC1B,OAAO;IACP,OAAO;IACP,UAAU,CACR;KACE,IAAI;KACJ,OAAO;KACP,MAAM,EAAS,GAAU,UAAU;KACnC,OAAO;KACR,EACD;KACE,IAAI;KACJ,OAAO;KACP,MAAM,EAAS,GAAU,gBAAgB;KACzC,OAAO;KACR,CACF;IACF;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,YAAY;IACrC,MAAM,kBAAC,GAAD,EAAU,MAAM,IAAM,CAAA;IAC5B,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,qBAAqB;IAC9C,MAAM,kBAAC,GAAD,EAAS,MAAM,IAAM,CAAA;IAC3B,OAAO;IACP,OAAO;IACR;GAGD;IACE,IAAI;IACJ,OAAO;IACP,MAAM,EAAS,GAAU,gBAAgB;IACzC,MAAM,kBAAC,GAAD,EAAO,MAAM,IAAM,CAAA;IACzB,OAAO;IACP,OAAO;IACP,UAAU;KACR;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,gBAAgB;MACzC,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,eAAe;MACxC,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,cAAc;MACvC,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,kBAAkB;MAC3C,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,kBAAkB;MAC3C,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,eAAe;MACxC,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,kBAAkB;MAC3C,OAAO;MACR;KACD;MACE,IAAI;MACJ,OAAO;MACP,MAAM,EAAS,GAAU,qBAAqB;MAC9C,OAAO;MACR;KACF;IACF;GACF,CAEyC;IAEzC,CAAC,GAAkB,EAAS,CAAC,EAGhC,QAAgB;AACT,QAaL,QADgB,EAVI,CAClB;GACE,IAAI;GACJ,OAAO;GACP,MAAM;GACN,OAAO;GACP,SAAS;GACV,CACF,CAE+C;IAE/C,CAAC,EAAoB,CAAC,EAGvB,kBAAC,GAAD;EACE,aAAa;EACb,SAAQ;EACR,gBAAgB;YAEhB,kBAAC,GAAD;GAAoB,GAAI;aACtB,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAoB,CAAA,EACN,CAAA;GACG,CAAA;EACD,CAAA"}
1
+ {"version":3,"file":"TimeCampusRoot.js","names":[],"sources":["../../src/timecampus/TimeCampusRoot.tsx"],"sourcesContent":["/**\n * TimeCampus Root Component\n * @module timecampus\n */\n\nimport type { FC } from \"react\";\nimport { useEffect } from \"react\";\nimport {\n LayoutDashboard,\n Clock,\n FolderOpen,\n Timer,\n Users,\n CalendarRange,\n CheckCircle,\n Activity,\n TrendingUp,\n Brain,\n Monitor,\n Mail,\n CalendarDays,\n MapPin,\n Receipt,\n Building2,\n Heart,\n} from \"lucide-react\";\nimport { TimeCampusProvider } from \"./providers/TimeCampusProvider\";\nimport { FeatureFlagProvider } from \"@burdenoff/fe-libs/shared/feature-flags\";\nimport { TimeCampusRoutes } from \"./TimeCampusRoutes\";\nimport { ErrorBoundary } from \"./components/ErrorBoundary\";\nimport type { TimeCampusRootProps, NavItem } from \"./types\";\n\nexport const TimeCampusRoot: FC<TimeCampusRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = \"/\" } = props;\n\n // Helper to join paths correctly\n const joinPath = (base: string, path: string): string => {\n const cleanBase = base.endsWith(\"/\") ? base.slice(0, -1) : base;\n const cleanPath = path.startsWith(\"/\") ? path : `/${path}`;\n return cleanBase + cleanPath;\n };\n\n // Register navigation items with shell on mount\n useEffect(() => {\n if (!registerNavItems) return;\n\n const navItems: NavItem[] = [\n // 1. Dashboard\n {\n id: \"timecampus-dashboard\",\n label: \"Dashboard\",\n path: joinPath(basePath, \"\"),\n icon: <LayoutDashboard size={20} />,\n order: 1,\n group: \"main\",\n children: [\n {\n id: \"timecampus-dashboard-overview\",\n label: \"Overview\",\n path: joinPath(basePath, \"\"),\n order: 1,\n },\n {\n id: \"timecampus-dashboard-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"analytics\"),\n order: 2,\n },\n {\n id: \"timecampus-dashboard-reports\",\n label: \"Reports\",\n path: joinPath(basePath, \"reports\"),\n order: 3,\n },\n ],\n },\n\n // Life — the whole of your time (work + personal). Unique order (23) — the\n // shell keys nav items by order within a group, so it must not collide.\n {\n id: \"timecampus-life\",\n label: \"Life\",\n path: joinPath(basePath, \"life-timeline\"),\n icon: <Heart size={20} />,\n order: 23,\n group: \"main\",\n children: [\n {\n id: \"timecampus-life-timeline\",\n label: \"Life Timeline\",\n path: joinPath(basePath, \"life-timeline\"),\n order: 1,\n },\n {\n id: \"timecampus-life-balance\",\n label: \"Life Balance\",\n path: joinPath(basePath, \"life-balance\"),\n order: 2,\n },\n {\n id: \"timecampus-finite-life\",\n label: \"Life in Weeks\",\n path: joinPath(basePath, \"finite-life\"),\n order: 3,\n },\n {\n id: \"timecampus-time-well-spent\",\n label: \"Time Well Spent\",\n path: joinPath(basePath, \"time-well-spent\"),\n order: 4,\n },\n {\n id: \"timecampus-dead-time-radar\",\n label: \"Dead-Time Radar\",\n path: joinPath(basePath, \"dead-time-radar\"),\n order: 5,\n },\n {\n id: \"timecampus-values-goals\",\n label: \"Values & Goals\",\n path: joinPath(basePath, \"values-goals\"),\n order: 6,\n },\n {\n id: \"timecampus-recommendations\",\n label: \"Recommendations\",\n path: joinPath(basePath, \"recommendations\"),\n order: 7,\n },\n {\n id: \"timecampus-personal-corporate\",\n label: \"Personal & Corporate\",\n path: joinPath(basePath, \"personal-corporate\"),\n order: 8,\n },\n ],\n },\n\n // 2. Time Tracking\n {\n id: \"timecampus-time\",\n label: \"Time Tracking\",\n path: joinPath(basePath, \"time\"),\n icon: <Clock size={20} />,\n order: 2,\n group: \"main\",\n children: [\n {\n id: \"timecampus-time-tracking\",\n label: \"Time Tracking\",\n path: joinPath(basePath, \"time\"),\n order: 1,\n },\n {\n id: \"timecampus-time-timer\",\n label: \"Timer\",\n path: joinPath(basePath, \"time/timer\"),\n order: 2,\n },\n {\n id: \"timecampus-time-entries\",\n label: \"Time Entries\",\n path: joinPath(basePath, \"time/entries\"),\n order: 3,\n },\n ],\n },\n\n // 3. Projects\n {\n id: \"timecampus-projects\",\n label: \"Projects\",\n path: joinPath(basePath, \"projects\"),\n icon: <FolderOpen size={20} />,\n order: 3,\n group: \"main\",\n },\n\n // 4. Pomodoro\n {\n id: \"timecampus-pomodoro\",\n label: \"Pomodoro\",\n path: joinPath(basePath, \"pomodoro\"),\n icon: <Timer size={20} />,\n order: 4,\n group: \"main\",\n children: [\n {\n id: \"timecampus-pomodoro-timer\",\n label: \"Timer\",\n path: joinPath(basePath, \"pomodoro\"),\n order: 1,\n },\n {\n id: \"timecampus-pomodoro-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"pomodoro/analytics\"),\n order: 2,\n },\n {\n id: \"timecampus-pomodoro-settings\",\n label: \"Settings\",\n path: joinPath(basePath, \"pomodoro/settings\"),\n order: 3,\n },\n ],\n },\n\n // 5. Team\n {\n id: \"timecampus-team\",\n label: \"Team\",\n path: joinPath(basePath, \"team\"),\n icon: <Users size={20} />,\n order: 5,\n group: \"main\",\n children: [\n {\n id: \"timecampus-team-overview\",\n label: \"Overview\",\n path: joinPath(basePath, \"team\"),\n order: 1,\n },\n {\n id: \"timecampus-team-members\",\n label: \"Members\",\n path: joinPath(basePath, \"team/members\"),\n order: 2,\n },\n {\n id: \"timecampus-team-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"team/analytics\"),\n order: 3,\n },\n ],\n },\n\n // 6. Resource Planning\n {\n id: \"timecampus-resource-planning\",\n label: \"Resource Planning\",\n path: joinPath(basePath, \"resource-planning\"),\n icon: <CalendarRange size={20} />,\n order: 6,\n group: \"management\",\n },\n\n // 7. Time Approval\n {\n id: \"timecampus-time-approval\",\n label: \"Time Approval\",\n path: joinPath(basePath, \"time-approval\"),\n icon: <CheckCircle size={20} />,\n order: 7,\n group: \"management\",\n },\n\n // 8. Team Activity\n {\n id: \"timecampus-team-activity\",\n label: \"Team Activity\",\n path: joinPath(basePath, \"team-activity\"),\n icon: <Activity size={20} />,\n order: 8,\n group: \"insights\",\n },\n\n // 9. Work Patterns\n {\n id: \"timecampus-work-patterns\",\n label: \"Work Patterns\",\n path: joinPath(basePath, \"work-patterns\"),\n icon: <TrendingUp size={20} />,\n order: 9,\n group: \"insights\",\n },\n\n // 10. Focus Score\n {\n id: \"timecampus-focus-score\",\n label: \"Focus Score\",\n path: joinPath(basePath, \"focus-score\"),\n icon: <Brain size={20} />,\n order: 10,\n group: \"insights\",\n },\n\n // 11. App Usage\n {\n id: \"timecampus-app-usage\",\n label: \"App Usage\",\n path: joinPath(basePath, \"application-usage\"),\n icon: <Monitor size={20} />,\n order: 11,\n group: \"insights\",\n },\n\n // 12. Email Tracking\n {\n id: \"timecampus-email-tracking\",\n label: \"Email Tracking\",\n path: joinPath(basePath, \"email-tracking\"),\n icon: <Mail size={20} />,\n order: 12,\n group: \"tracking\",\n children: [\n {\n id: \"timecampus-email-all\",\n label: \"All Emails\",\n path: joinPath(basePath, \"email-tracking\"),\n order: 1,\n },\n {\n id: \"timecampus-email-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"email-tracking/analytics\"),\n order: 2,\n },\n ],\n },\n\n // 13. Meetings\n {\n id: \"timecampus-meetings\",\n label: \"Meetings\",\n path: joinPath(basePath, \"meetings\"),\n icon: <CalendarDays size={20} />,\n order: 13,\n group: \"tracking\",\n children: [\n {\n id: \"timecampus-meetings-all\",\n label: \"All Meetings\",\n path: joinPath(basePath, \"meetings\"),\n order: 1,\n },\n {\n id: \"timecampus-meetings-analytics\",\n label: \"Analytics\",\n path: joinPath(basePath, \"meetings/analytics\"),\n order: 2,\n },\n ],\n },\n\n // 14. Location Tracking\n {\n id: \"timecampus-location\",\n label: \"Location Tracking\",\n path: joinPath(basePath, \"location-tracking\"),\n icon: <MapPin size={20} />,\n order: 14,\n group: \"tracking\",\n children: [\n {\n id: \"timecampus-location-all\",\n label: \"Locations\",\n path: joinPath(basePath, \"location-tracking\"),\n order: 1,\n },\n {\n id: \"timecampus-location-geofencing\",\n label: \"Geofencing\",\n path: joinPath(basePath, \"geofencing\"),\n order: 2,\n },\n ],\n },\n\n // 15. Expense Tracking\n {\n id: \"timecampus-expense-tracking\",\n label: \"Expense Tracking\",\n path: joinPath(basePath, \"expense-tracking\"),\n icon: <Receipt size={20} />,\n order: 15,\n group: \"business\",\n },\n\n // 16. Client Portal\n {\n id: \"timecampus-client-portal\",\n label: \"Client Portal\",\n path: joinPath(basePath, \"client-portal\"),\n icon: <Building2 size={20} />,\n order: 16,\n group: \"business\",\n },\n\n ];\n\n const cleanup = registerNavItems(navItems);\n return cleanup;\n }, [registerNavItems, basePath]);\n\n // Register footer items\n useEffect(() => {\n if (!registerFooterItems) return;\n\n const footerItems = [\n {\n id: \"timecampus-status\",\n label: \"TimeCampus Ready\",\n type: \"status\" as const,\n order: 10,\n section: \"left\" as const,\n },\n ];\n\n const cleanup = registerFooterItems(footerItems);\n return cleanup;\n }, [registerFooterItems]);\n\n return (\n <FeatureFlagProvider\n workspaceId={null}\n gateway=\"global\"\n defaultEnabled={true}\n >\n <TimeCampusProvider {...props}>\n <ErrorBoundary>\n <TimeCampusRoutes />\n </ErrorBoundary>\n </TimeCampusProvider>\n </FeatureFlagProvider>\n );\n};\n"],"mappings":"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"}