@pablo2410/shared-ui 0.8.0 → 0.9.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.
@@ -1,3 +1,6 @@
1
+ import {
2
+ readActiveEnterpriseCookie
3
+ } from "./chunk-4ATPOBMZ.js";
1
4
  import {
2
5
  Avatar,
3
6
  AvatarFallback,
@@ -130,27 +133,85 @@ function HealthFooter({
130
133
  );
131
134
  }
132
135
 
133
- // src/layout/DashboardLayout.tsx
136
+ // src/layout/EnterpriseDebugLabel.tsx
137
+ import { useEffect as useEffect2, useState as useState2 } from "react";
134
138
  import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
139
+ function EnterpriseDebugLabel({
140
+ selectionEnterpriseId,
141
+ cookieEnterpriseName,
142
+ className
143
+ }) {
144
+ const [cookieId, setCookieId] = useState2(null);
145
+ useEffect2(() => {
146
+ const read = () => setCookieId(readActiveEnterpriseCookie());
147
+ read();
148
+ window.addEventListener("focus", read);
149
+ document.addEventListener("visibilitychange", read);
150
+ return () => {
151
+ window.removeEventListener("focus", read);
152
+ document.removeEventListener("visibilitychange", read);
153
+ };
154
+ }, []);
155
+ const cookieNum = cookieId !== null && cookieId !== "" ? Number(cookieId) : null;
156
+ const hasSelection = selectionEnterpriseId !== void 0 && selectionEnterpriseId !== null;
157
+ const mismatch = hasSelection && cookieNum !== null && cookieNum !== selectionEnterpriseId;
158
+ const noActive = cookieNum === null;
159
+ return /* @__PURE__ */ jsxs2(
160
+ "div",
161
+ {
162
+ className: cn(
163
+ "flex items-center gap-1.5 px-2 py-1 rounded-md border font-mono text-[10px] leading-none whitespace-nowrap",
164
+ mismatch ? "bg-[#EF4444]/15 border-[#EF4444]/40 text-[#FCA5A5]" : noActive ? "bg-[#F59E0B]/15 border-[#F59E0B]/40 text-[#FCD34D]" : "bg-[#10B981]/10 border-[#10B981]/30 text-[#6EE7B7]",
165
+ className
166
+ ),
167
+ title: "TEMP DIAGNOSTIC: enterprise the loaded data is scoped to (cookie) vs. the UI hierarchy selection. Remove once subdomain data issue is fixed.",
168
+ children: [
169
+ /* @__PURE__ */ jsx2("span", { "aria-hidden": true, children: "\u{1F50D}" }),
170
+ noActive ? /* @__PURE__ */ jsx2("span", { children: "no active enterprise (cookie unset)" }) : /* @__PURE__ */ jsxs2(Fragment, { children: [
171
+ /* @__PURE__ */ jsxs2("span", { children: [
172
+ "data ENT #",
173
+ cookieNum,
174
+ cookieEnterpriseName ? ` \xB7 ${cookieEnterpriseName}` : ""
175
+ ] }),
176
+ hasSelection && /* @__PURE__ */ jsxs2("span", { children: [
177
+ mismatch ? " \u26A0 \u2260 sel #" : " \xB7 sel #",
178
+ selectionEnterpriseId
179
+ ] })
180
+ ] })
181
+ ]
182
+ }
183
+ );
184
+ }
185
+
186
+ // src/layout/DashboardLayout.tsx
187
+ import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
135
188
  var DEFAULT_SERVICE_HUB_URL = "https://portal.oplytics.digital/app";
136
189
  var DEFAULT_USER_SETTINGS_URL = "https://portal.oplytics.digital/account";
137
190
  function UserMenu({
138
191
  user,
139
192
  onLogout,
140
- userSettingsUrl = DEFAULT_USER_SETTINGS_URL
193
+ userSettingsUrl = DEFAULT_USER_SETTINGS_URL,
194
+ enterprise
141
195
  }) {
142
196
  const initials = (user.name || "U").split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2);
143
- return /* @__PURE__ */ jsxs2(DropdownMenu, { children: [
144
- /* @__PURE__ */ jsx2(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs2("button", { className: "flex items-center gap-2 rounded-md px-2 py-1 hover:bg-[#1E2738] transition-colors outline-none focus-visible:ring-1 focus-visible:ring-[#8C34E9]", children: [
145
- /* @__PURE__ */ jsx2(Avatar, { className: "h-7 w-7 border border-[#2A2A3E]", children: /* @__PURE__ */ jsx2(AvatarFallback, { className: "text-[10px] font-medium bg-[#8C34E9]/20 text-[#C084FC]", children: initials }) }),
146
- /* @__PURE__ */ jsx2("span", { className: "hidden md:block text-xs text-[#E2E8F0] truncate max-w-[100px]", children: user.name || "User" })
197
+ return /* @__PURE__ */ jsxs3(DropdownMenu, { children: [
198
+ /* @__PURE__ */ jsx3(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs3("button", { className: "flex items-center gap-2 rounded-md px-2 py-1 hover:bg-[#1E2738] transition-colors outline-none focus-visible:ring-1 focus-visible:ring-[#8C34E9]", children: [
199
+ /* @__PURE__ */ jsx3(Avatar, { className: "h-7 w-7 border border-[#2A2A3E]", children: /* @__PURE__ */ jsx3(AvatarFallback, { className: "text-[10px] font-medium bg-[#8C34E9]/20 text-[#C084FC]", children: initials }) }),
200
+ /* @__PURE__ */ jsx3("span", { className: "hidden md:block text-xs text-[#E2E8F0] truncate max-w-[100px]", children: user.name || "User" })
147
201
  ] }) }),
148
- /* @__PURE__ */ jsxs2(DropdownMenuContent, { align: "end", className: "w-48 bg-[#0D1220] border-[#1E2738]", children: [
149
- /* @__PURE__ */ jsxs2("div", { className: "px-3 py-2 border-b border-[#1E2738]", children: [
150
- /* @__PURE__ */ jsx2("p", { className: "text-xs font-medium text-[#E2E8F0] truncate", children: user.name }),
151
- /* @__PURE__ */ jsx2("p", { className: "text-[10px] text-[#596475] truncate", children: user.role })
202
+ /* @__PURE__ */ jsxs3(DropdownMenuContent, { align: "end", className: "w-48 bg-[#0D1220] border-[#1E2738]", children: [
203
+ /* @__PURE__ */ jsxs3("div", { className: "px-3 py-2 border-b border-[#1E2738]", children: [
204
+ /* @__PURE__ */ jsx3("p", { className: "text-xs font-medium text-[#E2E8F0] truncate", children: user.name }),
205
+ /* @__PURE__ */ jsx3("p", { className: "text-[10px] text-[#596475] truncate", children: user.role })
152
206
  ] }),
153
- /* @__PURE__ */ jsxs2(
207
+ /* @__PURE__ */ jsx3("div", { className: "px-2 py-2 border-b border-[#1E2738]", children: /* @__PURE__ */ jsx3(
208
+ EnterpriseDebugLabel,
209
+ {
210
+ selectionEnterpriseId: enterprise?.id ?? null,
211
+ cookieEnterpriseName: enterprise?.name ?? null
212
+ }
213
+ ) }),
214
+ /* @__PURE__ */ jsxs3(
154
215
  DropdownMenuItem,
155
216
  {
156
217
  onClick: () => {
@@ -158,19 +219,19 @@ function UserMenu({
158
219
  },
159
220
  className: "text-xs text-[#E2E8F0] hover:bg-[#1E2738] cursor-pointer focus:bg-[#1E2738]",
160
221
  children: [
161
- /* @__PURE__ */ jsx2(Settings, { className: "h-3.5 w-3.5 mr-2 text-[#8890A0]" }),
222
+ /* @__PURE__ */ jsx3(Settings, { className: "h-3.5 w-3.5 mr-2 text-[#8890A0]" }),
162
223
  "User Settings"
163
224
  ]
164
225
  }
165
226
  ),
166
- /* @__PURE__ */ jsx2(DropdownMenuSeparator, { className: "bg-[#1E2738]" }),
167
- /* @__PURE__ */ jsxs2(
227
+ /* @__PURE__ */ jsx3(DropdownMenuSeparator, { className: "bg-[#1E2738]" }),
228
+ /* @__PURE__ */ jsxs3(
168
229
  DropdownMenuItem,
169
230
  {
170
231
  onClick: () => onLogout?.(),
171
232
  className: "text-xs text-[#EF4444] hover:bg-[#EF4444]/10 cursor-pointer focus:bg-[#EF4444]/10 focus:text-[#EF4444]",
172
233
  children: [
173
- /* @__PURE__ */ jsx2(LogOut, { className: "h-3.5 w-3.5 mr-2" }),
234
+ /* @__PURE__ */ jsx3(LogOut, { className: "h-3.5 w-3.5 mr-2" }),
174
235
  "Sign Out"
175
236
  ]
176
237
  }
@@ -180,9 +241,9 @@ function UserMenu({
180
241
  }
181
242
  function EnterpriseBadge({ enterprise }) {
182
243
  if (!enterprise) return null;
183
- return /* @__PURE__ */ jsxs2("div", { className: "hidden lg:flex items-center gap-1.5 px-2 py-1 rounded-md bg-[#8C34E9]/10 border border-[#8C34E9]/20", children: [
184
- /* @__PURE__ */ jsx2("div", { className: "h-4 w-4 rounded-sm bg-[#8C34E9]/30 flex items-center justify-center", children: /* @__PURE__ */ jsx2("span", { className: "text-[8px] font-bold text-[#C084FC]", children: enterprise.name.charAt(0).toUpperCase() }) }),
185
- /* @__PURE__ */ jsx2("span", { className: "text-[10px] font-medium text-[#C084FC] truncate max-w-[80px]", children: enterprise.code || enterprise.name })
244
+ return /* @__PURE__ */ jsxs3("div", { className: "hidden lg:flex items-center gap-1.5 px-2 py-1 rounded-md bg-[#8C34E9]/10 border border-[#8C34E9]/20", children: [
245
+ /* @__PURE__ */ jsx3("div", { className: "h-4 w-4 rounded-sm bg-[#8C34E9]/30 flex items-center justify-center", children: /* @__PURE__ */ jsx3("span", { className: "text-[8px] font-bold text-[#C084FC]", children: enterprise.name.charAt(0).toUpperCase() }) }),
246
+ /* @__PURE__ */ jsx3("span", { className: "text-[10px] font-medium text-[#C084FC] truncate max-w-[80px]", children: enterprise.code || enterprise.name })
186
247
  ] });
187
248
  }
188
249
  function NavSection({
@@ -193,12 +254,12 @@ function NavSection({
193
254
  onNavigate
194
255
  }) {
195
256
  const label = section.title ?? section.label;
196
- return /* @__PURE__ */ jsxs2(Fragment, { children: [
197
- label && /* @__PURE__ */ jsx2("div", { className: cn("px-4 py-2", marginTop && "mt-2"), children: !isCollapsed && /* @__PURE__ */ jsx2("span", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wider", children: label }) }),
198
- /* @__PURE__ */ jsx2(SidebarMenu, { className: "px-2 py-1", children: section.items.map((item) => {
257
+ return /* @__PURE__ */ jsxs3(Fragment2, { children: [
258
+ label && /* @__PURE__ */ jsx3("div", { className: cn("px-4 py-2", marginTop && "mt-2"), children: !isCollapsed && /* @__PURE__ */ jsx3("span", { className: "text-xs font-medium text-muted-foreground uppercase tracking-wider", children: label }) }),
259
+ /* @__PURE__ */ jsx3(SidebarMenu, { className: "px-2 py-1", children: section.items.map((item) => {
199
260
  const active = resolveActive(item.path);
200
261
  const Icon = item.icon;
201
- return /* @__PURE__ */ jsx2(SidebarMenuItem, { children: /* @__PURE__ */ jsxs2(
262
+ return /* @__PURE__ */ jsx3(SidebarMenuItem, { children: /* @__PURE__ */ jsxs3(
202
263
  SidebarMenuButton,
203
264
  {
204
265
  isActive: active,
@@ -206,8 +267,8 @@ function NavSection({
206
267
  tooltip: item.label,
207
268
  className: "h-10 transition-all font-normal",
208
269
  children: [
209
- Icon && /* @__PURE__ */ jsx2(Icon, { className: cn("h-4 w-4", active && "text-primary") }),
210
- /* @__PURE__ */ jsx2("span", { children: item.label })
270
+ Icon && /* @__PURE__ */ jsx3(Icon, { className: cn("h-4 w-4", active && "text-primary") }),
271
+ /* @__PURE__ */ jsx3("span", { children: item.label })
211
272
  ]
212
273
  }
213
274
  ) }, item.path);
@@ -239,25 +300,25 @@ function DashboardShell({
239
300
  const isCollapsed = state === "collapsed";
240
301
  const navigate = onNavigate;
241
302
  const resolveActive = (path) => isActive ? isActive(path, activePath) : isMenuItemActive(path, activePath);
242
- return /* @__PURE__ */ jsxs2(Fragment, { children: [
243
- /* @__PURE__ */ jsxs2(Sidebar, { collapsible: "icon", className: "border-r-0", children: [
244
- /* @__PURE__ */ jsx2(SidebarHeader, { className: "h-16 justify-center", children: /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-3 px-2 transition-all w-full", children: [
245
- /* @__PURE__ */ jsx2(
303
+ return /* @__PURE__ */ jsxs3(Fragment2, { children: [
304
+ /* @__PURE__ */ jsxs3(Sidebar, { collapsible: "icon", className: "border-r-0", children: [
305
+ /* @__PURE__ */ jsx3(SidebarHeader, { className: "h-16 justify-center", children: /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-3 px-2 transition-all w-full", children: [
306
+ /* @__PURE__ */ jsx3(
246
307
  "button",
247
308
  {
248
309
  onClick: toggleSidebar,
249
310
  className: "h-8 w-8 flex items-center justify-center hover:bg-accent rounded-lg transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring shrink-0",
250
311
  "aria-label": "Toggle navigation",
251
- children: /* @__PURE__ */ jsx2(PanelLeft, { className: "h-4 w-4 text-muted-foreground" })
312
+ children: /* @__PURE__ */ jsx3(PanelLeft, { className: "h-4 w-4 text-muted-foreground" })
252
313
  }
253
314
  ),
254
- !isCollapsed ? /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2 min-w-0", children: [
255
- serviceIcon && /* @__PURE__ */ jsx2("span", { className: "text-[#8C34E9] shrink-0", children: serviceIcon }),
256
- /* @__PURE__ */ jsx2("span", { className: "font-semibold tracking-tight truncate", children: serviceName })
315
+ !isCollapsed ? /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2 min-w-0", children: [
316
+ serviceIcon && /* @__PURE__ */ jsx3("span", { className: "text-[#8C34E9] shrink-0", children: serviceIcon }),
317
+ /* @__PURE__ */ jsx3("span", { className: "font-semibold tracking-tight truncate", children: serviceName })
257
318
  ] }) : null
258
319
  ] }) }),
259
- /* @__PURE__ */ jsxs2(SidebarContent, { className: "gap-0", children: [
260
- serviceHubUrl && /* @__PURE__ */ jsx2(SidebarMenu, { className: "px-2 pt-2 pb-1", children: /* @__PURE__ */ jsx2(SidebarMenuItem, { children: /* @__PURE__ */ jsxs2(
320
+ /* @__PURE__ */ jsxs3(SidebarContent, { className: "gap-0", children: [
321
+ serviceHubUrl && /* @__PURE__ */ jsx3(SidebarMenu, { className: "px-2 pt-2 pb-1", children: /* @__PURE__ */ jsx3(SidebarMenuItem, { children: /* @__PURE__ */ jsxs3(
261
322
  SidebarMenuButton,
262
323
  {
263
324
  onClick: () => {
@@ -266,12 +327,12 @@ function DashboardShell({
266
327
  tooltip: "Back to Service Hub",
267
328
  className: "h-10 transition-all font-normal text-muted-foreground hover:text-foreground",
268
329
  children: [
269
- /* @__PURE__ */ jsx2(ArrowLeft, { className: "h-4 w-4" }),
270
- /* @__PURE__ */ jsx2("span", { children: "Service Hub" })
330
+ /* @__PURE__ */ jsx3(ArrowLeft, { className: "h-4 w-4" }),
331
+ /* @__PURE__ */ jsx3("span", { children: "Service Hub" })
271
332
  ]
272
333
  }
273
334
  ) }) }),
274
- menuSections.map((section, i) => /* @__PURE__ */ jsx2(
335
+ menuSections.map((section, i) => /* @__PURE__ */ jsx3(
275
336
  NavSection,
276
337
  {
277
338
  section,
@@ -281,7 +342,7 @@ function DashboardShell({
281
342
  },
282
343
  section.title ?? section.label ?? `section-${i}`
283
344
  )),
284
- isAdmin && adminSections?.map((section, i) => /* @__PURE__ */ jsx2(
345
+ isAdmin && adminSections?.map((section, i) => /* @__PURE__ */ jsx3(
285
346
  NavSection,
286
347
  {
287
348
  section,
@@ -293,21 +354,21 @@ function DashboardShell({
293
354
  section.title ?? section.label ?? `admin-${i}`
294
355
  ))
295
356
  ] }),
296
- settingsPath && /* @__PURE__ */ jsx2(SidebarFooter, { className: "p-2", children: /* @__PURE__ */ jsx2(SidebarMenu, { children: /* @__PURE__ */ jsx2(SidebarMenuItem, { children: /* @__PURE__ */ jsxs2(
357
+ settingsPath && /* @__PURE__ */ jsx3(SidebarFooter, { className: "p-2", children: /* @__PURE__ */ jsx3(SidebarMenu, { children: /* @__PURE__ */ jsx3(SidebarMenuItem, { children: /* @__PURE__ */ jsxs3(
297
358
  SidebarMenuButton,
298
359
  {
299
360
  onClick: () => navigate(settingsPath),
300
361
  tooltip: "Settings",
301
362
  className: "h-10 transition-all font-normal text-muted-foreground hover:text-foreground",
302
363
  children: [
303
- /* @__PURE__ */ jsx2(Settings, { className: "h-4 w-4" }),
304
- /* @__PURE__ */ jsx2("span", { children: "Settings" })
364
+ /* @__PURE__ */ jsx3(Settings, { className: "h-4 w-4" }),
365
+ /* @__PURE__ */ jsx3("span", { children: "Settings" })
305
366
  ]
306
367
  }
307
368
  ) }) }) })
308
369
  ] }),
309
- /* @__PURE__ */ jsxs2(SidebarInset, { children: [
310
- /* @__PURE__ */ jsxs2(
370
+ /* @__PURE__ */ jsxs3(SidebarInset, { children: [
371
+ /* @__PURE__ */ jsxs3(
311
372
  "header",
312
373
  {
313
374
  className: cn(
@@ -317,35 +378,43 @@ function DashboardShell({
317
378
  "sticky top-0 z-40"
318
379
  ),
319
380
  children: [
320
- /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: [
321
- /* @__PURE__ */ jsx2(SidebarTrigger, { className: "h-9 w-9 rounded-lg bg-background shrink-0 md:hidden" }),
322
- serviceIcon && /* @__PURE__ */ jsx2("span", { className: "text-[#8C34E9] shrink-0 hidden sm:block", children: serviceIcon }),
323
- hierarchyNavigator && /* @__PURE__ */ jsx2("div", { className: "min-w-0 overflow-x-auto scrollbar-none", children: hierarchyNavigator })
381
+ /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: [
382
+ /* @__PURE__ */ jsx3(SidebarTrigger, { className: "h-9 w-9 rounded-lg bg-background shrink-0 md:hidden" }),
383
+ serviceIcon && /* @__PURE__ */ jsx3("span", { className: "text-[#8C34E9] shrink-0 hidden sm:block", children: serviceIcon }),
384
+ hierarchyNavigator && /* @__PURE__ */ jsx3("div", { className: "min-w-0 overflow-x-auto scrollbar-none", children: hierarchyNavigator })
324
385
  ] }),
325
- /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-2 shrink-0", children: [
386
+ /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2 shrink-0", children: [
326
387
  reportingToolbar,
327
- /* @__PURE__ */ jsx2(EnterpriseBadge, { enterprise }),
328
- /* @__PURE__ */ jsx2("div", { className: "w-px h-6 bg-[#1E2738] hidden md:block" }),
329
- user && /* @__PURE__ */ jsx2(UserMenu, { user, onLogout, userSettingsUrl })
388
+ /* @__PURE__ */ jsx3(EnterpriseBadge, { enterprise }),
389
+ /* @__PURE__ */ jsx3("div", { className: "w-px h-6 bg-[#1E2738] hidden md:block" }),
390
+ user && /* @__PURE__ */ jsx3(
391
+ UserMenu,
392
+ {
393
+ user,
394
+ onLogout,
395
+ userSettingsUrl,
396
+ enterprise
397
+ }
398
+ )
330
399
  ] })
331
400
  ]
332
401
  }
333
402
  ),
334
- /* @__PURE__ */ jsx2("main", { className: "flex-1 p-4 md:p-6 pb-14", children })
403
+ /* @__PURE__ */ jsx3("main", { className: "flex-1 p-4 md:p-6 pb-14", children })
335
404
  ] }),
336
405
  footer,
337
- showHealthFooter && user?.role === "platform_admin" && /* @__PURE__ */ jsx2(HealthFooter, { user, enterprise })
406
+ showHealthFooter && user?.role === "platform_admin" && /* @__PURE__ */ jsx3(HealthFooter, { user, enterprise })
338
407
  ] });
339
408
  }
340
409
  function DashboardLayout(props) {
341
410
  const isMobile = useIsMobile();
342
- return /* @__PURE__ */ jsx2(SidebarProvider, { defaultOpen: props.defaultOpen ?? !isMobile, children: /* @__PURE__ */ jsx2(DashboardShell, { ...props }) });
411
+ return /* @__PURE__ */ jsx3(SidebarProvider, { defaultOpen: props.defaultOpen ?? !isMobile, children: /* @__PURE__ */ jsx3(DashboardShell, { ...props }) });
343
412
  }
344
413
 
345
414
  // src/layout/DashboardLayoutSkeleton.tsx
346
- import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
415
+ import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
347
416
  function Skeleton({ className }) {
348
- return /* @__PURE__ */ jsx3(
417
+ return /* @__PURE__ */ jsx4(
349
418
  "div",
350
419
  {
351
420
  className: cn(
@@ -356,47 +425,47 @@ function Skeleton({ className }) {
356
425
  );
357
426
  }
358
427
  function DashboardLayoutSkeleton({ className }) {
359
- return /* @__PURE__ */ jsxs3("div", { className: cn("flex min-h-screen bg-[#0A0E1A]", className), children: [
360
- /* @__PURE__ */ jsxs3("div", { className: "w-[260px] border-r border-[#1E2738] bg-[#0D1220] p-4 space-y-6", children: [
361
- /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-3 px-2", children: [
362
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-8 w-8 rounded-md" }),
363
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-4 w-24" })
428
+ return /* @__PURE__ */ jsxs4("div", { className: cn("flex min-h-screen bg-[#0A0E1A]", className), children: [
429
+ /* @__PURE__ */ jsxs4("div", { className: "w-[260px] border-r border-[#1E2738] bg-[#0D1220] p-4 space-y-6", children: [
430
+ /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3 px-2", children: [
431
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-8 w-8 rounded-md" }),
432
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-4 w-24" })
364
433
  ] }),
365
- /* @__PURE__ */ jsxs3("div", { className: "space-y-2 px-2", children: [
366
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-9 w-full rounded-lg" }),
367
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-9 w-full rounded-lg" }),
368
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-9 w-full rounded-lg" }),
369
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-9 w-full rounded-lg" })
434
+ /* @__PURE__ */ jsxs4("div", { className: "space-y-2 px-2", children: [
435
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-9 w-full rounded-lg" }),
436
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-9 w-full rounded-lg" }),
437
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-9 w-full rounded-lg" }),
438
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-9 w-full rounded-lg" })
370
439
  ] }),
371
- /* @__PURE__ */ jsxs3("div", { className: "px-2", children: [
372
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-3 w-16 mb-3" }),
373
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-9 w-full rounded-lg" }),
374
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-9 w-full rounded-lg mt-2" })
440
+ /* @__PURE__ */ jsxs4("div", { className: "px-2", children: [
441
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-3 w-16 mb-3" }),
442
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-9 w-full rounded-lg" }),
443
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-9 w-full rounded-lg mt-2" })
375
444
  ] }),
376
- /* @__PURE__ */ jsx3("div", { className: "absolute bottom-4 left-4 right-4", children: /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-3 px-1", children: [
377
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-8 w-8 rounded-full" }),
378
- /* @__PURE__ */ jsxs3("div", { className: "flex-1 space-y-2", children: [
379
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-3 w-20" }),
380
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-2 w-32" })
445
+ /* @__PURE__ */ jsx4("div", { className: "absolute bottom-4 left-4 right-4", children: /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3 px-1", children: [
446
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-8 w-8 rounded-full" }),
447
+ /* @__PURE__ */ jsxs4("div", { className: "flex-1 space-y-2", children: [
448
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-3 w-20" }),
449
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-2 w-32" })
381
450
  ] })
382
451
  ] }) })
383
452
  ] }),
384
- /* @__PURE__ */ jsxs3("div", { className: "flex-1 p-6 space-y-4", children: [
385
- /* @__PURE__ */ jsxs3("div", { className: "flex items-center justify-between", children: [
386
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-8 w-48 rounded-lg" }),
387
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-9 w-24 rounded-lg" })
453
+ /* @__PURE__ */ jsxs4("div", { className: "flex-1 p-6 space-y-4", children: [
454
+ /* @__PURE__ */ jsxs4("div", { className: "flex items-center justify-between", children: [
455
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-8 w-48 rounded-lg" }),
456
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-9 w-24 rounded-lg" })
388
457
  ] }),
389
- /* @__PURE__ */ jsxs3("div", { className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4", children: [
390
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-24 rounded-xl" }),
391
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-24 rounded-xl" }),
392
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-24 rounded-xl" }),
393
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-24 rounded-xl" })
458
+ /* @__PURE__ */ jsxs4("div", { className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4", children: [
459
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-24 rounded-xl" }),
460
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-24 rounded-xl" }),
461
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-24 rounded-xl" }),
462
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-24 rounded-xl" })
394
463
  ] }),
395
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-64 rounded-xl" }),
396
- /* @__PURE__ */ jsxs3("div", { className: "space-y-2", children: [
397
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-10 w-full rounded-lg" }),
398
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-10 w-full rounded-lg" }),
399
- /* @__PURE__ */ jsx3(Skeleton, { className: "h-10 w-full rounded-lg" })
464
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-64 rounded-xl" }),
465
+ /* @__PURE__ */ jsxs4("div", { className: "space-y-2", children: [
466
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-10 w-full rounded-lg" }),
467
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-10 w-full rounded-lg" }),
468
+ /* @__PURE__ */ jsx4(Skeleton, { className: "h-10 w-full rounded-lg" })
400
469
  ] })
401
470
  ] })
402
471
  ] });
@@ -404,7 +473,7 @@ function DashboardLayoutSkeleton({ className }) {
404
473
 
405
474
  // src/layout/SharedPageHeader.tsx
406
475
  import { ChevronLeft } from "lucide-react";
407
- import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
476
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
408
477
  function SharedPageHeader({
409
478
  title,
410
479
  subtitle,
@@ -417,7 +486,7 @@ function SharedPageHeader({
417
486
  className,
418
487
  children
419
488
  }) {
420
- return /* @__PURE__ */ jsxs4(
489
+ return /* @__PURE__ */ jsxs5(
421
490
  "div",
422
491
  {
423
492
  className: cn(
@@ -427,10 +496,10 @@ function SharedPageHeader({
427
496
  className
428
497
  ),
429
498
  children: [
430
- breadcrumbs && /* @__PURE__ */ jsx4("div", { className: cn("mb-2", compact && "mb-1"), children: breadcrumbs }),
431
- /* @__PURE__ */ jsxs4("div", { className: "flex items-center justify-between gap-4", children: [
432
- /* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3 min-w-0", children: [
433
- onBack && /* @__PURE__ */ jsx4(
499
+ breadcrumbs && /* @__PURE__ */ jsx5("div", { className: cn("mb-2", compact && "mb-1"), children: breadcrumbs }),
500
+ /* @__PURE__ */ jsxs5("div", { className: "flex items-center justify-between gap-4", children: [
501
+ /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-3 min-w-0", children: [
502
+ onBack && /* @__PURE__ */ jsx5(
434
503
  "button",
435
504
  {
436
505
  onClick: onBack,
@@ -441,12 +510,12 @@ function SharedPageHeader({
441
510
  "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#8C34E9]"
442
511
  ),
443
512
  "aria-label": "Go back",
444
- children: /* @__PURE__ */ jsx4(ChevronLeft, { className: compact ? "h-4 w-4" : "h-5 w-5" })
513
+ children: /* @__PURE__ */ jsx5(ChevronLeft, { className: compact ? "h-4 w-4" : "h-5 w-5" })
445
514
  }
446
515
  ),
447
- icon && /* @__PURE__ */ jsx4("div", { className: "shrink-0 text-[#8C34E9]", children: icon }),
448
- /* @__PURE__ */ jsxs4("div", { className: "min-w-0", children: [
449
- /* @__PURE__ */ jsx4(
516
+ icon && /* @__PURE__ */ jsx5("div", { className: "shrink-0 text-[#8C34E9]", children: icon }),
517
+ /* @__PURE__ */ jsxs5("div", { className: "min-w-0", children: [
518
+ /* @__PURE__ */ jsx5(
450
519
  "h1",
451
520
  {
452
521
  className: cn(
@@ -457,7 +526,7 @@ function SharedPageHeader({
457
526
  children: title
458
527
  }
459
528
  ),
460
- subtitle && /* @__PURE__ */ jsx4(
529
+ subtitle && /* @__PURE__ */ jsx5(
461
530
  "p",
462
531
  {
463
532
  className: cn(
@@ -470,16 +539,16 @@ function SharedPageHeader({
470
539
  )
471
540
  ] })
472
541
  ] }),
473
- actions && /* @__PURE__ */ jsx4("div", { className: "shrink-0 flex items-center gap-2", children: actions })
542
+ actions && /* @__PURE__ */ jsx5("div", { className: "shrink-0 flex items-center gap-2", children: actions })
474
543
  ] }),
475
- children && /* @__PURE__ */ jsx4("div", { className: cn("mt-3", compact && "mt-2"), children })
544
+ children && /* @__PURE__ */ jsx5("div", { className: cn("mt-3", compact && "mt-2"), children })
476
545
  ]
477
546
  }
478
547
  );
479
548
  }
480
549
 
481
550
  // src/layout/SharedFooter.tsx
482
- import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
551
+ import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
483
552
  var FOOTER_SERVICES = [
484
553
  { name: "SQDCP", slug: "sqdcp", localRoute: "/services/sqdcp", externalUrl: "https://sqdcp.oplytics.digital" },
485
554
  { name: "OEE Manager", slug: "oee-manager", localRoute: "/services/oee-manager", externalUrl: "https://oee.oplytics.digital" },
@@ -501,7 +570,7 @@ function SharedFooter({
501
570
  year
502
571
  }) {
503
572
  const currentYear = year ?? (/* @__PURE__ */ new Date()).getFullYear();
504
- return /* @__PURE__ */ jsx5(
573
+ return /* @__PURE__ */ jsx6(
505
574
  "footer",
506
575
  {
507
576
  className: cn(
@@ -510,25 +579,25 @@ function SharedFooter({
510
579
  "font-[Space_Grotesk,sans-serif]",
511
580
  className
512
581
  ),
513
- children: /* @__PURE__ */ jsxs5("div", { className: "max-w-7xl mx-auto px-6 py-10", children: [
514
- /* @__PURE__ */ jsxs5("div", { className: "grid grid-cols-1 md:grid-cols-4 gap-8 mb-8", children: [
515
- /* @__PURE__ */ jsxs5("div", { className: "md:col-span-1", children: [
516
- /* @__PURE__ */ jsxs5("div", { className: "flex items-center gap-2 mb-3", children: [
517
- /* @__PURE__ */ jsx5(
582
+ children: /* @__PURE__ */ jsxs6("div", { className: "max-w-7xl mx-auto px-6 py-10", children: [
583
+ /* @__PURE__ */ jsxs6("div", { className: "grid grid-cols-1 md:grid-cols-4 gap-8 mb-8", children: [
584
+ /* @__PURE__ */ jsxs6("div", { className: "md:col-span-1", children: [
585
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2 mb-3", children: [
586
+ /* @__PURE__ */ jsx6(
518
587
  "div",
519
588
  {
520
589
  className: "w-7 h-7 rounded-full flex items-center justify-center",
521
590
  style: { background: "#8C34E9" },
522
- children: /* @__PURE__ */ jsx5("span", { className: "text-white font-bold text-xs", children: "O" })
591
+ children: /* @__PURE__ */ jsx6("span", { className: "text-white font-bold text-xs", children: "O" })
523
592
  }
524
593
  ),
525
- /* @__PURE__ */ jsx5("span", { className: "text-[#E2E8F0] font-semibold text-sm font-[Montserrat,sans-serif]", children: "Oplytics.digital" })
594
+ /* @__PURE__ */ jsx6("span", { className: "text-[#E2E8F0] font-semibold text-sm font-[Montserrat,sans-serif]", children: "Oplytics.digital" })
526
595
  ] }),
527
- /* @__PURE__ */ jsx5("p", { className: "text-xs text-[#596475] leading-relaxed", children: "Operational intelligence platform for manufacturing excellence." })
596
+ /* @__PURE__ */ jsx6("p", { className: "text-xs text-[#596475] leading-relaxed", children: "Operational intelligence platform for manufacturing excellence." })
528
597
  ] }),
529
- /* @__PURE__ */ jsxs5("div", { children: [
530
- /* @__PURE__ */ jsx5("h4", { className: "text-[#E2E8F0] font-medium text-xs uppercase tracking-wider mb-3 font-[Montserrat,sans-serif]", children: "Services" }),
531
- /* @__PURE__ */ jsx5("ul", { className: "space-y-2", children: services.map((service) => /* @__PURE__ */ jsx5("li", { children: /* @__PURE__ */ jsx5(
598
+ /* @__PURE__ */ jsxs6("div", { children: [
599
+ /* @__PURE__ */ jsx6("h4", { className: "text-[#E2E8F0] font-medium text-xs uppercase tracking-wider mb-3 font-[Montserrat,sans-serif]", children: "Services" }),
600
+ /* @__PURE__ */ jsx6("ul", { className: "space-y-2", children: services.map((service) => /* @__PURE__ */ jsx6("li", { children: /* @__PURE__ */ jsx6(
532
601
  "a",
533
602
  {
534
603
  href: useExternalUrls && service.externalUrl ? service.externalUrl : service.localRoute,
@@ -538,10 +607,10 @@ function SharedFooter({
538
607
  }
539
608
  ) }, service.slug)) })
540
609
  ] }),
541
- /* @__PURE__ */ jsxs5("div", { children: [
542
- /* @__PURE__ */ jsx5("h4", { className: "text-[#E2E8F0] font-medium text-xs uppercase tracking-wider mb-3 font-[Montserrat,sans-serif]", children: "Company" }),
543
- /* @__PURE__ */ jsxs5("ul", { className: "space-y-2", children: [
544
- showPricing && /* @__PURE__ */ jsx5("li", { children: /* @__PURE__ */ jsx5(
610
+ /* @__PURE__ */ jsxs6("div", { children: [
611
+ /* @__PURE__ */ jsx6("h4", { className: "text-[#E2E8F0] font-medium text-xs uppercase tracking-wider mb-3 font-[Montserrat,sans-serif]", children: "Company" }),
612
+ /* @__PURE__ */ jsxs6("ul", { className: "space-y-2", children: [
613
+ showPricing && /* @__PURE__ */ jsx6("li", { children: /* @__PURE__ */ jsx6(
545
614
  "a",
546
615
  {
547
616
  href: "/pricing",
@@ -550,7 +619,7 @@ function SharedFooter({
550
619
  children: "Pricing"
551
620
  }
552
621
  ) }),
553
- /* @__PURE__ */ jsx5("li", { children: /* @__PURE__ */ jsx5(
622
+ /* @__PURE__ */ jsx6("li", { children: /* @__PURE__ */ jsx6(
554
623
  "a",
555
624
  {
556
625
  href: "/about",
@@ -558,7 +627,7 @@ function SharedFooter({
558
627
  children: "About"
559
628
  }
560
629
  ) }),
561
- /* @__PURE__ */ jsx5("li", { children: /* @__PURE__ */ jsx5(
630
+ /* @__PURE__ */ jsx6("li", { children: /* @__PURE__ */ jsx6(
562
631
  "a",
563
632
  {
564
633
  href: "/contact",
@@ -568,10 +637,10 @@ function SharedFooter({
568
637
  ) })
569
638
  ] })
570
639
  ] }),
571
- /* @__PURE__ */ jsxs5("div", { children: [
572
- /* @__PURE__ */ jsx5("h4", { className: "text-[#E2E8F0] font-medium text-xs uppercase tracking-wider mb-3 font-[Montserrat,sans-serif]", children: "Legal" }),
573
- /* @__PURE__ */ jsxs5("ul", { className: "space-y-2", children: [
574
- /* @__PURE__ */ jsx5("li", { children: /* @__PURE__ */ jsx5(
640
+ /* @__PURE__ */ jsxs6("div", { children: [
641
+ /* @__PURE__ */ jsx6("h4", { className: "text-[#E2E8F0] font-medium text-xs uppercase tracking-wider mb-3 font-[Montserrat,sans-serif]", children: "Legal" }),
642
+ /* @__PURE__ */ jsxs6("ul", { className: "space-y-2", children: [
643
+ /* @__PURE__ */ jsx6("li", { children: /* @__PURE__ */ jsx6(
575
644
  "a",
576
645
  {
577
646
  href: "/privacy",
@@ -579,7 +648,7 @@ function SharedFooter({
579
648
  children: "Privacy Policy"
580
649
  }
581
650
  ) }),
582
- /* @__PURE__ */ jsx5("li", { children: /* @__PURE__ */ jsx5(
651
+ /* @__PURE__ */ jsx6("li", { children: /* @__PURE__ */ jsx6(
583
652
  "a",
584
653
  {
585
654
  href: "/terms",
@@ -588,7 +657,7 @@ function SharedFooter({
588
657
  }
589
658
  ) })
590
659
  ] }),
591
- showSignIn && /* @__PURE__ */ jsx5("div", { className: "mt-4", children: /* @__PURE__ */ jsx5(
660
+ showSignIn && /* @__PURE__ */ jsx6("div", { className: "mt-4", children: /* @__PURE__ */ jsx6(
592
661
  "a",
593
662
  {
594
663
  href: "/login",
@@ -600,14 +669,14 @@ function SharedFooter({
600
669
  ] })
601
670
  ] }),
602
671
  children,
603
- /* @__PURE__ */ jsxs5("div", { className: "pt-6 border-t border-[#1E2738] flex flex-col sm:flex-row items-center justify-between gap-3", children: [
604
- /* @__PURE__ */ jsxs5("p", { className: "text-xs text-[#596475]", children: [
672
+ /* @__PURE__ */ jsxs6("div", { className: "pt-6 border-t border-[#1E2738] flex flex-col sm:flex-row items-center justify-between gap-3", children: [
673
+ /* @__PURE__ */ jsxs6("p", { className: "text-xs text-[#596475]", children: [
605
674
  "\xA9 ",
606
675
  currentYear,
607
676
  " Oplytics.digital. All rights reserved."
608
677
  ] }),
609
- /* @__PURE__ */ jsx5("p", { className: "text-xs text-[#3E4A5C]", children: "Built for manufacturing excellence" }),
610
- typeof __APP_VERSION__ !== "undefined" && /* @__PURE__ */ jsxs5("p", { className: "text-xs text-[#3E4A5C]", children: [
678
+ /* @__PURE__ */ jsx6("p", { className: "text-xs text-[#3E4A5C]", children: "Built for manufacturing excellence" }),
679
+ typeof __APP_VERSION__ !== "undefined" && /* @__PURE__ */ jsxs6("p", { className: "text-xs text-[#3E4A5C]", children: [
611
680
  "Platform v",
612
681
  __APP_VERSION__
613
682
  ] })
@@ -618,7 +687,7 @@ function SharedFooter({
618
687
  }
619
688
 
620
689
  // src/layout/ServiceFooter.tsx
621
- import { Fragment as Fragment2, jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
690
+ import { Fragment as Fragment3, jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
622
691
  var ENV_LABELS = {
623
692
  production: { label: "prod", color: "#10b981" },
624
693
  staging: { label: "stg", color: "#f59e0b" },
@@ -637,7 +706,7 @@ function ServiceFooter({
637
706
  const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
638
707
  const env = environment ? ENV_LABELS[environment] : null;
639
708
  const version = buildVersion ?? (typeof __APP_VERSION__ !== "undefined" ? __APP_VERSION__ : void 0);
640
- return /* @__PURE__ */ jsxs6(
709
+ return /* @__PURE__ */ jsxs7(
641
710
  "footer",
642
711
  {
643
712
  className: cn(
@@ -648,60 +717,60 @@ function ServiceFooter({
648
717
  className
649
718
  ),
650
719
  children: [
651
- /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2 min-w-0", children: [
652
- /* @__PURE__ */ jsx6(
720
+ /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-2 min-w-0", children: [
721
+ /* @__PURE__ */ jsx7(
653
722
  "div",
654
723
  {
655
724
  className: "w-5 h-5 rounded-full flex items-center justify-center shrink-0",
656
725
  style: { background: "#8C34E9" },
657
- children: /* @__PURE__ */ jsx6("span", { className: "text-white font-bold", style: { fontSize: 9 }, children: "O" })
726
+ children: /* @__PURE__ */ jsx7("span", { className: "text-white font-bold", style: { fontSize: 9 }, children: "O" })
658
727
  }
659
728
  ),
660
- /* @__PURE__ */ jsx6("span", { className: "text-[10px] text-[#596475] whitespace-nowrap hidden sm:inline", children: "Operational Excellence. One Digital Platform." })
729
+ /* @__PURE__ */ jsx7("span", { className: "text-[10px] text-[#596475] whitespace-nowrap hidden sm:inline", children: "Operational Excellence. One Digital Platform." })
661
730
  ] }),
662
- showHealthMonitor && /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-1.5 text-[10px] text-[#3E4A5C] min-w-0 overflow-hidden", children: [
663
- enterpriseName && /* @__PURE__ */ jsxs6(Fragment2, { children: [
664
- /* @__PURE__ */ jsxs6("span", { className: "whitespace-nowrap", children: [
665
- /* @__PURE__ */ jsx6("span", { className: "text-[#596475]", children: enterpriseName }),
666
- enterpriseId != null && /* @__PURE__ */ jsxs6("span", { className: "text-[#3E4A5C]", children: [
731
+ showHealthMonitor && /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-1.5 text-[10px] text-[#3E4A5C] min-w-0 overflow-hidden", children: [
732
+ enterpriseName && /* @__PURE__ */ jsxs7(Fragment3, { children: [
733
+ /* @__PURE__ */ jsxs7("span", { className: "whitespace-nowrap", children: [
734
+ /* @__PURE__ */ jsx7("span", { className: "text-[#596475]", children: enterpriseName }),
735
+ enterpriseId != null && /* @__PURE__ */ jsxs7("span", { className: "text-[#3E4A5C]", children: [
667
736
  " (",
668
737
  enterpriseId,
669
738
  ")"
670
739
  ] })
671
740
  ] }),
672
- /* @__PURE__ */ jsx6(Separator, {})
741
+ /* @__PURE__ */ jsx7(Separator, {})
673
742
  ] }),
674
- userEmail && /* @__PURE__ */ jsxs6(Fragment2, { children: [
675
- /* @__PURE__ */ jsx6("span", { className: "whitespace-nowrap text-[#596475]", children: userEmail }),
676
- userRole && /* @__PURE__ */ jsxs6("span", { className: "text-[#3E4A5C]", children: [
743
+ userEmail && /* @__PURE__ */ jsxs7(Fragment3, { children: [
744
+ /* @__PURE__ */ jsx7("span", { className: "whitespace-nowrap text-[#596475]", children: userEmail }),
745
+ userRole && /* @__PURE__ */ jsxs7("span", { className: "text-[#3E4A5C]", children: [
677
746
  " (",
678
747
  userRole,
679
748
  ")"
680
749
  ] }),
681
- /* @__PURE__ */ jsx6(Separator, {})
750
+ /* @__PURE__ */ jsx7(Separator, {})
682
751
  ] }),
683
- env && /* @__PURE__ */ jsxs6(Fragment2, { children: [
684
- /* @__PURE__ */ jsxs6("span", { className: "whitespace-nowrap", children: [
752
+ env && /* @__PURE__ */ jsxs7(Fragment3, { children: [
753
+ /* @__PURE__ */ jsxs7("span", { className: "whitespace-nowrap", children: [
685
754
  "ENV:",
686
755
  " ",
687
- /* @__PURE__ */ jsx6("span", { style: { color: env.color }, className: "font-semibold", children: env.label })
756
+ /* @__PURE__ */ jsx7("span", { style: { color: env.color }, className: "font-semibold", children: env.label })
688
757
  ] }),
689
- /* @__PURE__ */ jsx6(Separator, {})
758
+ /* @__PURE__ */ jsx7(Separator, {})
690
759
  ] }),
691
- version && /* @__PURE__ */ jsxs6("span", { className: "whitespace-nowrap text-[#3E4A5C] font-mono", children: [
760
+ version && /* @__PURE__ */ jsxs7("span", { className: "whitespace-nowrap text-[#3E4A5C] font-mono", children: [
692
761
  "v.",
693
762
  version
694
763
  ] })
695
764
  ] }),
696
- /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-2 text-[10px] text-[#3E4A5C] whitespace-nowrap shrink-0", children: [
697
- /* @__PURE__ */ jsxs6("span", { children: [
765
+ /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-2 text-[10px] text-[#3E4A5C] whitespace-nowrap shrink-0", children: [
766
+ /* @__PURE__ */ jsxs7("span", { children: [
698
767
  "\xA9 ",
699
768
  currentYear,
700
769
  " Oplytics.digital"
701
770
  ] }),
702
- !showHealthMonitor && version && /* @__PURE__ */ jsxs6(Fragment2, { children: [
703
- /* @__PURE__ */ jsx6(Separator, {}),
704
- /* @__PURE__ */ jsxs6("span", { className: "font-mono", children: [
771
+ !showHealthMonitor && version && /* @__PURE__ */ jsxs7(Fragment3, { children: [
772
+ /* @__PURE__ */ jsx7(Separator, {}),
773
+ /* @__PURE__ */ jsxs7("span", { className: "font-mono", children: [
705
774
  "v.",
706
775
  version
707
776
  ] })
@@ -712,7 +781,7 @@ function ServiceFooter({
712
781
  );
713
782
  }
714
783
  function Separator() {
715
- return /* @__PURE__ */ jsx6("span", { className: "text-[#1E2738] select-none", "aria-hidden": true, children: "|" });
784
+ return /* @__PURE__ */ jsx7("span", { className: "text-[#1E2738] select-none", "aria-hidden": true, children: "|" });
716
785
  }
717
786
 
718
787
  // src/layout/createServiceLayout.tsx
@@ -881,6 +950,7 @@ export {
881
950
  isMenuItemActive,
882
951
  useSidebarResize,
883
952
  HealthFooter,
953
+ EnterpriseDebugLabel,
884
954
  DashboardLayout,
885
955
  DashboardLayoutSkeleton,
886
956
  SharedPageHeader,
@@ -895,4 +965,4 @@ export {
895
965
  policyDeploymentConfig,
896
966
  SERVICE_CONFIGS
897
967
  };
898
- //# sourceMappingURL=chunk-GU3OMCTY.js.map
968
+ //# sourceMappingURL=chunk-64IHOOPN.js.map