@optifye/dashboard-core 6.12.15 → 6.12.17

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.
package/dist/index.mjs CHANGED
@@ -16819,6 +16819,7 @@ function useHlsStream(videoRef, { src, shouldPlay, onFatalError, hlsConfig }) {
16819
16819
  return url.includes(proxyBaseUrl);
16820
16820
  }
16821
16821
  };
16822
+ const isSnapshotStreamUrl = (url) => url.includes("/api/automation/snapshot/stream/");
16822
16823
  const getR2CameraUuid = (url) => {
16823
16824
  try {
16824
16825
  const parsed = new URL(url);
@@ -17407,11 +17408,16 @@ function useHlsStream(videoRef, { src, shouldPlay, onFatalError, hlsConfig }) {
17407
17408
  return;
17408
17409
  }
17409
17410
  if (Hls.isSupported() && !isNativeHlsRef.current) {
17411
+ const usesSnapshotStream = isSnapshotStreamUrl(resolvedHlsSrc);
17410
17412
  const mergedConfig = {
17411
17413
  ...HLS_CONFIG,
17412
17414
  ...hlsConfig,
17415
+ enableWorker: usesSnapshotStream ? false : hlsConfig?.enableWorker ?? HLS_CONFIG.enableWorker,
17413
17416
  xhrSetup: (xhr, url) => {
17414
17417
  const usesProxy = isProxyUrl(url);
17418
+ if (isSnapshotStreamUrl(url)) {
17419
+ xhr.withCredentials = true;
17420
+ }
17415
17421
  if (isR2WorkerUrl(url, r2WorkerDomain) || usesProxy) {
17416
17422
  if (isManifestUrl(url)) {
17417
17423
  xhr.open("GET", buildCacheBustedUrl(url), true);
@@ -17425,7 +17431,11 @@ function useHlsStream(videoRef, { src, shouldPlay, onFatalError, hlsConfig }) {
17425
17431
  const isR2Url = isR2WorkerUrl(context.url, r2WorkerDomain);
17426
17432
  const isManifestRequest = isManifestUrl(context.url);
17427
17433
  const usesProxy = isProxyUrl(context.url);
17434
+ const isSnapshotStream = isSnapshotStreamUrl(context.url);
17428
17435
  let requestUrl = context.url;
17436
+ if (isSnapshotStream) {
17437
+ initParams.credentials = "include";
17438
+ }
17429
17439
  if (isR2Url || usesProxy) {
17430
17440
  if (authToken) {
17431
17441
  initParams.headers = {
@@ -37565,6 +37575,7 @@ var VideoCard = React144__default.memo(({
37565
37575
  displayMinuteBucket,
37566
37576
  displayName,
37567
37577
  lastSeenLabel,
37578
+ hasRecentHealthSignal: hasRecentHealthSignal2 = false,
37568
37579
  onMouseEnter,
37569
37580
  onMouseLeave
37570
37581
  }) => {
@@ -37579,7 +37590,7 @@ var VideoCard = React144__default.memo(({
37579
37590
  useRAF,
37580
37591
  onFatalError: onFatalError ?? (() => throttledReloadDashboard())
37581
37592
  });
37582
- const showOffline = Boolean(isStreamStale);
37593
+ const showOffline = Boolean(isStreamStale && !hasRecentHealthSignal2);
37583
37594
  const lastSeenText = lastSeenLabel || "Unknown";
37584
37595
  const workspaceDisplayName = displayName || workspace.displayName || workspace.workspace_name;
37585
37596
  const videoGridMetricValue = getVideoGridMetricValue(workspace, effectiveLegend);
@@ -37719,6 +37730,9 @@ var VideoCard = React144__default.memo(({
37719
37730
  if (prevProps.lastSeenLabel !== nextProps.lastSeenLabel) {
37720
37731
  return false;
37721
37732
  }
37733
+ if (prevProps.hasRecentHealthSignal !== nextProps.hasRecentHealthSignal) {
37734
+ return false;
37735
+ }
37722
37736
  if (prevProps.legend !== nextProps.legend) {
37723
37737
  return false;
37724
37738
  }
@@ -37741,10 +37755,17 @@ var DEFAULT_HLS_URL = "https://192.168.5.9:8443/cam1.m3u8";
37741
37755
  var DEBUG_DASHBOARD_LOGS2 = process.env.NEXT_PUBLIC_DEBUG_DASHBOARD === "true";
37742
37756
  var MOBILE_SCROLL_THRESHOLD = 15;
37743
37757
  var MOBILE_BREAKPOINT_PX = 640;
37758
+ var RECENT_HEALTH_SIGNAL_MS = 3 * 60 * 1e3;
37744
37759
  var logDebug2 = (...args) => {
37745
37760
  if (!DEBUG_DASHBOARD_LOGS2) return;
37746
37761
  console.log(...args);
37747
37762
  };
37763
+ var hasRecentHealthSignal = (lastHeartbeat) => {
37764
+ if (!lastHeartbeat) return false;
37765
+ const heartbeatMs = new Date(lastHeartbeat).getTime();
37766
+ if (!Number.isFinite(heartbeatMs)) return false;
37767
+ return Date.now() - heartbeatMs <= RECENT_HEALTH_SIGNAL_MS;
37768
+ };
37748
37769
  var VideoGridView = React144__default.memo(({
37749
37770
  workspaces,
37750
37771
  selectedLine,
@@ -38056,7 +38077,8 @@ var VideoGridView = React144__default.memo(({
38056
38077
  const isVisible = visibleWorkspaces.has(workspaceId);
38057
38078
  const workspaceCropping = getWorkspaceCropping(workspaceId, workspace.workspace_name);
38058
38079
  const workspaceStream = videoStreamsByWorkspaceId?.[workspaceId];
38059
- const lastSeenLabel = workspace.workspace_uuid ? lastSeenByWorkspaceId[workspace.workspace_uuid]?.timeSinceLastUpdate : void 0;
38080
+ const workspaceHealth = workspace.workspace_uuid ? lastSeenByWorkspaceId[workspace.workspace_uuid] : void 0;
38081
+ const lastSeenLabel = workspaceHealth?.timeSinceLastUpdate;
38060
38082
  const r2Url = workspaceStream?.hls_url;
38061
38083
  const fallbackUrl = getWorkspaceHlsUrl(workspace.workspace_name, workspace.line_id);
38062
38084
  const hasR2Stream = Boolean(r2Url);
@@ -38075,7 +38097,8 @@ var VideoGridView = React144__default.memo(({
38075
38097
  hlsUrl,
38076
38098
  isR2Stream,
38077
38099
  shouldPlay,
38078
- lastSeenLabel
38100
+ lastSeenLabel,
38101
+ hasRecentHealthSignal: hasRecentHealthSignal(workspaceHealth?.lastHeartbeat)
38079
38102
  };
38080
38103
  });
38081
38104
  }, [
@@ -38122,6 +38145,7 @@ var VideoGridView = React144__default.memo(({
38122
38145
  canvasFps: effectiveCanvasFps,
38123
38146
  displayName: resolveWorkspaceDisplayName(card.workspace),
38124
38147
  lastSeenLabel: card.lastSeenLabel,
38148
+ hasRecentHealthSignal: card.hasRecentHealthSignal,
38125
38149
  useRAF: effectiveUseRAF,
38126
38150
  displayMinuteBucket,
38127
38151
  compact: !selectedLine,
@@ -85818,5 +85842,245 @@ var streamProxyConfig = {
85818
85842
  responseLimit: false
85819
85843
  }
85820
85844
  };
85845
+ var MOBILE_SCROLL_THRESHOLD2 = 15;
85846
+ var MOBILE_BREAKPOINT_PX2 = 640;
85847
+ var sortWorkspaces = (left, right) => {
85848
+ if (left.line_id !== right.line_id) {
85849
+ return left.line_id.localeCompare(right.line_id);
85850
+ }
85851
+ const leftMatch = left.workspace_name.match(/WS(\d+)/);
85852
+ const rightMatch = right.workspace_name.match(/WS(\d+)/);
85853
+ if (leftMatch && rightMatch) {
85854
+ return parseInt(leftMatch[1], 10) - parseInt(rightMatch[1], 10);
85855
+ }
85856
+ return left.workspace_name.localeCompare(right.workspace_name, void 0, { numeric: true });
85857
+ };
85858
+ var RecentFlowSnapshotGrid = ({
85859
+ workspaces,
85860
+ videoStreamsByWorkspaceId,
85861
+ legend,
85862
+ className = ""
85863
+ }) => {
85864
+ const containerRef = useRef(null);
85865
+ const readinessRef = useRef(null);
85866
+ const [gridCols, setGridCols] = useState(4);
85867
+ const [gridRows, setGridRows] = useState(1);
85868
+ const [isMobileScrollableGrid, setIsMobileScrollableGrid] = useState(false);
85869
+ const sortedWorkspaces = useMemo(
85870
+ () => [...workspaces || []].sort(sortWorkspaces),
85871
+ [workspaces]
85872
+ );
85873
+ const effectiveLegend = legend || DEFAULT_EFFICIENCY_LEGEND;
85874
+ const displayMinuteBucket = Math.floor(Date.now() / 6e4);
85875
+ const expectedVideoCount = useMemo(
85876
+ () => sortedWorkspaces.filter((workspace) => {
85877
+ const workspaceId = workspace.workspace_uuid || workspace.workspace_name;
85878
+ return Boolean(workspaceId && videoStreamsByWorkspaceId[workspaceId]?.hls_url);
85879
+ }).length,
85880
+ [sortedWorkspaces, videoStreamsByWorkspaceId]
85881
+ );
85882
+ const publishSnapshotReadiness = useCallback((readyVideoCount) => {
85883
+ const status = {
85884
+ expectedVideoCount,
85885
+ readyVideoCount,
85886
+ status: expectedVideoCount === 0 ? "no_videos" : readyVideoCount >= expectedVideoCount ? "ready" : "loading",
85887
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString()
85888
+ };
85889
+ const isReady = expectedVideoCount > 0 && status.status === "ready";
85890
+ if (typeof window !== "undefined") {
85891
+ window.__OPTIFYE_SNAPSHOT_READY__ = isReady;
85892
+ window.__OPTIFYE_SNAPSHOT_VIDEO_STATUS__ = status;
85893
+ }
85894
+ const marker = readinessRef.current;
85895
+ if (marker) {
85896
+ marker.dataset.ready = isReady ? "true" : "false";
85897
+ marker.dataset.status = status.status;
85898
+ marker.dataset.expectedVideoCount = String(status.expectedVideoCount);
85899
+ marker.dataset.readyVideoCount = String(status.readyVideoCount);
85900
+ marker.dataset.updatedAt = status.updatedAt;
85901
+ }
85902
+ }, [expectedVideoCount]);
85903
+ const calculateOptimalGrid = useCallback(() => {
85904
+ if (!containerRef.current) return;
85905
+ const containerPadding = 16;
85906
+ const rawContainerWidth = containerRef.current.clientWidth;
85907
+ const containerWidth = rawContainerWidth - containerPadding;
85908
+ const containerHeight = containerRef.current.clientHeight - containerPadding;
85909
+ const count = sortedWorkspaces.length;
85910
+ if (count === 0) {
85911
+ setGridCols(1);
85912
+ setGridRows(1);
85913
+ setIsMobileScrollableGrid(false);
85914
+ return;
85915
+ }
85916
+ const shouldUseMobileScroll = rawContainerWidth < MOBILE_BREAKPOINT_PX2 && count >= MOBILE_SCROLL_THRESHOLD2;
85917
+ const optimalLayouts = {
85918
+ 1: 1,
85919
+ 2: 2,
85920
+ 3: 3,
85921
+ 4: 2,
85922
+ 5: 3,
85923
+ 6: 3,
85924
+ 7: 4,
85925
+ 8: 4,
85926
+ 9: 3,
85927
+ 10: 5,
85928
+ 11: 4,
85929
+ 12: 4,
85930
+ 13: 5,
85931
+ 14: 5,
85932
+ 15: 5,
85933
+ 16: 4,
85934
+ 17: 6,
85935
+ 18: 6,
85936
+ 19: 5,
85937
+ 20: 5,
85938
+ 21: 7,
85939
+ 22: 6,
85940
+ 23: 6,
85941
+ 24: 6
85942
+ };
85943
+ let bestCols = optimalLayouts[count] || Math.ceil(Math.sqrt(count));
85944
+ const containerAspectRatio = containerWidth / containerHeight;
85945
+ const targetAspectRatio = 16 / 9;
85946
+ const gap = 8;
85947
+ if (containerAspectRatio > targetAspectRatio * 1.5 && count > 6) {
85948
+ bestCols = Math.min(bestCols + 1, Math.ceil(count / 2));
85949
+ }
85950
+ const minCellWidth = 100;
85951
+ const availableWidth = containerWidth - gap * (bestCols - 1);
85952
+ const cellWidth = availableWidth / bestCols;
85953
+ if (cellWidth < minCellWidth && bestCols > 1) {
85954
+ bestCols = Math.max(1, Math.floor((containerWidth + gap) / (minCellWidth + gap)));
85955
+ }
85956
+ setGridCols(bestCols);
85957
+ setGridRows(Math.ceil(count / bestCols));
85958
+ setIsMobileScrollableGrid(shouldUseMobileScroll);
85959
+ }, [sortedWorkspaces.length]);
85960
+ useEffect(() => {
85961
+ calculateOptimalGrid();
85962
+ window.addEventListener("resize", calculateOptimalGrid);
85963
+ return () => window.removeEventListener("resize", calculateOptimalGrid);
85964
+ }, [calculateOptimalGrid]);
85965
+ useEffect(() => {
85966
+ const attachedVideos = /* @__PURE__ */ new Set();
85967
+ const videoEvents = ["loadeddata", "canplay", "playing", "timeupdate", "error", "stalled"];
85968
+ const hasDecodedFrame = (video) => video.readyState >= HTMLMediaElement.HAVE_CURRENT_DATA && video.videoWidth > 0 && video.videoHeight > 0;
85969
+ const updateReadiness = () => {
85970
+ const videos = Array.from(containerRef.current?.querySelectorAll("video") ?? []);
85971
+ const readyVideoCount = videos.filter(hasDecodedFrame).length;
85972
+ publishSnapshotReadiness(Math.min(readyVideoCount, expectedVideoCount));
85973
+ for (const video of videos) {
85974
+ if (attachedVideos.has(video)) continue;
85975
+ attachedVideos.add(video);
85976
+ for (const eventName of videoEvents) {
85977
+ video.addEventListener(eventName, updateReadiness);
85978
+ }
85979
+ }
85980
+ };
85981
+ publishSnapshotReadiness(0);
85982
+ updateReadiness();
85983
+ const intervalId = window.setInterval(updateReadiness, 250);
85984
+ return () => {
85985
+ window.clearInterval(intervalId);
85986
+ for (const video of attachedVideos) {
85987
+ for (const eventName of videoEvents) {
85988
+ video.removeEventListener(eventName, updateReadiness);
85989
+ }
85990
+ }
85991
+ if (typeof window !== "undefined") {
85992
+ window.__OPTIFYE_SNAPSHOT_READY__ = false;
85993
+ window.__OPTIFYE_SNAPSHOT_VIDEO_STATUS__ = void 0;
85994
+ }
85995
+ };
85996
+ }, [expectedVideoCount, publishSnapshotReadiness]);
85997
+ if (!sortedWorkspaces.length) {
85998
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
85999
+ /* @__PURE__ */ jsx(
86000
+ "div",
86001
+ {
86002
+ ref: readinessRef,
86003
+ "data-testid": "snapshot-video-readiness",
86004
+ "data-ready": "false",
86005
+ "data-status": "no_videos",
86006
+ "data-expected-video-count": "0",
86007
+ "data-ready-video-count": "0",
86008
+ hidden: true
86009
+ }
86010
+ ),
86011
+ /* @__PURE__ */ jsx("div", { className: "flex min-h-[320px] items-center justify-center rounded-md border border-dashed border-slate-300 bg-slate-50 text-sm font-medium text-slate-500", children: "No workstation snapshot available" })
86012
+ ] });
86013
+ }
86014
+ return /* @__PURE__ */ jsxs(
86015
+ "div",
86016
+ {
86017
+ "aria-label": "Recent-flow workstation snapshot",
86018
+ className: `relative h-full min-h-0 w-full overflow-hidden bg-slate-50/30 ${className}`,
86019
+ children: [
86020
+ /* @__PURE__ */ jsx(
86021
+ "div",
86022
+ {
86023
+ ref: readinessRef,
86024
+ "data-testid": "snapshot-video-readiness",
86025
+ "data-ready": "false",
86026
+ "data-status": expectedVideoCount === 0 ? "no_videos" : "loading",
86027
+ "data-expected-video-count": expectedVideoCount,
86028
+ "data-ready-video-count": "0",
86029
+ hidden: true
86030
+ }
86031
+ ),
86032
+ /* @__PURE__ */ jsx(
86033
+ "div",
86034
+ {
86035
+ ref: containerRef,
86036
+ "data-testid": "video-grid-scroll-container",
86037
+ "data-mobile-scrollable": isMobileScrollableGrid ? "true" : "false",
86038
+ className: `absolute inset-0 w-full overflow-x-hidden px-1 py-1 sm:px-2 sm:py-2 ${isMobileScrollableGrid ? "overflow-y-auto" : "overflow-hidden"}`,
86039
+ children: /* @__PURE__ */ jsx(
86040
+ "div",
86041
+ {
86042
+ "data-testid": "video-grid-layout",
86043
+ className: `grid min-w-0 w-full gap-1.5 sm:gap-2 ${isMobileScrollableGrid ? "content-start" : "h-full"}`,
86044
+ style: {
86045
+ gridTemplateColumns: `repeat(${gridCols}, minmax(0, 1fr))`,
86046
+ gridTemplateRows: isMobileScrollableGrid ? void 0 : `repeat(${gridRows}, 1fr)`,
86047
+ gridAutoFlow: "row"
86048
+ },
86049
+ children: sortedWorkspaces.map((workspace) => {
86050
+ const workspaceId = workspace.workspace_uuid || workspace.workspace_name;
86051
+ const stream = workspaceId ? videoStreamsByWorkspaceId[workspaceId] : null;
86052
+ const hlsUrl = stream?.hls_url || "";
86053
+ return /* @__PURE__ */ jsx(
86054
+ "div",
86055
+ {
86056
+ "data-workspace-id": workspaceId,
86057
+ className: isMobileScrollableGrid ? "workspace-card relative min-w-0 w-full aspect-video min-h-[92px]" : "workspace-card relative min-w-0 w-full h-full",
86058
+ children: /* @__PURE__ */ jsx("div", { className: "absolute inset-0", children: /* @__PURE__ */ jsx(
86059
+ VideoCard,
86060
+ {
86061
+ workspace,
86062
+ hlsUrl,
86063
+ shouldPlay: Boolean(hlsUrl),
86064
+ legend: effectiveLegend,
86065
+ cropping: stream?.crop || void 0,
86066
+ canvasFps: 10,
86067
+ useRAF: false,
86068
+ displayMinuteBucket,
86069
+ displayName: workspace.displayName || workspace.workspace_name,
86070
+ compact: true
86071
+ }
86072
+ ) })
86073
+ },
86074
+ `${workspace.line_id}-${workspaceId}`
86075
+ );
86076
+ })
86077
+ }
86078
+ )
86079
+ }
86080
+ )
86081
+ ]
86082
+ }
86083
+ );
86084
+ };
85821
86085
 
85822
- export { ACTION_FAMILIES, ACTION_NAMES, AIAgentView_default as AIAgentView, AcceptInvite, AcceptInviteView_default as AcceptInviteView, AdvancedFilterDialog, AdvancedFilterPanel, AudioService, AuthCallback, AuthCallbackView_default as AuthCallbackView, AuthProvider, AuthService, AuthenticatedBottleneckClipsView, AuthenticatedFactoryView, AuthenticatedHelpView, AuthenticatedHomeView, AuthenticatedShiftsView, AuthenticatedTargetsView, AuthenticatedTicketsView, AuthenticatedWorkspaceHealthView, AvatarUpload, AxelNotificationPopup, AxelOrb, BackButton, BackButtonMinimal, BarChart, BaseHistoryCalendar, BottleneckClipsModal, BottleneckClipsView_default as BottleneckClipsView, BottlenecksContent, BreakNotificationPopup, CachePrefetchStatus, Card2 as Card, CardContent2 as CardContent, CardDescription2 as CardDescription, CardFooter2 as CardFooter, CardHeader2 as CardHeader, CardTitle2 as CardTitle, ChangeRoleDialog, ClipFilterProvider, ClipsCostView_default as ClipsCostView, CompactWorkspaceHealthCard, ConfirmRemoveUserDialog, CongratulationsOverlay, CroppedHlsVideoPlayer, CroppedVideoPlayer, CycleTimeChart, CycleTimeOverTimeChart, DEFAULT_ANALYTICS_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_CONFIG, DEFAULT_DATABASE_CONFIG, DEFAULT_DATE_TIME_CONFIG, DEFAULT_ENDPOINTS_CONFIG, DEFAULT_ENTITY_CONFIG, DEFAULT_HOME_VIEW_CONFIG, DEFAULT_MAP_VIEW_CONFIG, DEFAULT_SHIFT_CONFIG, DEFAULT_SHIFT_DATA, DEFAULT_THEME_CONFIG, DEFAULT_VIDEO_CONFIG, DEFAULT_WORKSPACE_CONFIG, DEFAULT_WORKSPACE_POSITIONS, DashboardHeader, DashboardLayout, DashboardOverridesProvider, DashboardProvider, DateDisplay_default as DateDisplay, DateTimeDisplay, DebugAuth, DebugAuthView_default as DebugAuthView, DetailedHealthStatus, DiagnosisVideoModal, EFFICIENCY_ON_TRACK_THRESHOLD, EmptyStateMessage, EncouragementOverlay, FactoryAssignmentDropdown, FactoryView_default as FactoryView, FileManagerFilters, FilterDialogTrigger, FirstTimeLoginDebug, FirstTimeLoginHandler, FittingTitle, GaugeChart, GridComponentsPlaceholder, HamburgerButton, Header, HealthDateShiftSelector, HealthStatusGrid, HealthStatusIndicator, HelpView_default as HelpView, HlsVideoPlayer, HomeView_default as HomeView, HourlyOutputChart2 as HourlyOutputChart, HourlyUptimeChart, ISTTimer_default as ISTTimer, IdleTimeVlmConfigProvider, ImprovementCenterView_default as ImprovementCenterView, InlineEditableText, InteractiveOnboardingTour, InvitationService, InvitationsTable, InviteUserDialog, KPICard, KPIDetailView_default as KPIDetailView, KPIGrid, KPIHeader, KPISection, KPIsOverviewView_default as KPIsOverviewView, LINE_1_UUID, LINE_2_UUID, LargeOutputProgressChart, LeaderboardDetailView_default as LeaderboardDetailView, Legend5 as Legend, LineAssignmentDropdown, LineChart, LineHistoryCalendar, LineMonthlyHistory, LineMonthlyPdfGenerator, LinePdfExportButton, LinePdfGenerator, LineWhatsAppShareButton, LinesService, LiveTimer, LoadingInline, LoadingOverlay_default as LoadingOverlay, LoadingPage_default as LoadingPage, LoadingSkeleton, LoadingState, LoginPage, LoginView_default as LoginView, Logo, MainLayout, MapGridView, MetricCard_default as MetricCard, MinimalOnboardingPopup, MobileMenuProvider, NewClipsNotification, NoWorkspaceData, OnboardingDemo, OnboardingTour, OptifyeAgentClient, OptifyeLogoLoader_default as OptifyeLogoLoader, OutputProgressChart, PageHeader, PieChart4 as PieChart, PlantHeadView_default as PlantHeadView, PlayPauseIndicator, PrefetchConfigurationError, PrefetchError, PrefetchEvents, PrefetchStatus, PrefetchTimeoutError, ProfileView_default as ProfileView, ROOT_DASHBOARD_EVENT_NAMES, RegistryProvider, RoleBadge, S3ClipsSupabaseService as S3ClipsService, S3Service, SENTRY_HANDLED_EVENT_SESSION_LIMIT, SENTRY_HANDLED_EVENT_WINDOW_MS, SENTRY_QUOTA_STORAGE_KEY, SKUManagementView, SOPComplianceChart, SSEChatClient, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SessionTracker, SessionTrackingContext, SessionTrackingProvider, SettingsPopup, ShiftDisplay_default as ShiftDisplay, ShiftsView_default as ShiftsView, SideNavBar, SignupWithInvitation, SilentErrorBoundary, SimpleOnboardingPopup, SingleVideoStream_default as SingleVideoStream, Skeleton, SubscriptionManager, SubscriptionManagerProvider, SupabaseProvider, SupervisorDropdown_default as SupervisorDropdown, SupervisorManagementView_default as SupervisorManagementView, SupervisorService, TargetWorkspaceGrid, TargetsView_default as TargetsView, TeamManagementView_default as TeamManagementView, ThreadSidebar, TicketHistory_default as TicketHistory, TicketHistoryService, TicketsView_default as TicketsView, TimeDisplay_default as TimeDisplay, TimePickerDropdown, Timer_default as Timer, TimezoneProvider, TimezoneService, UptimeDonutChart, UptimeLineChart, UptimeMetricCards, UserAvatar, UserManagementService, UserManagementTable, UserService, UserUsageDetailModal, UserUsageStats, VideoCard, VideoGridView, VideoPlayer, VideoPreloader, WORKSPACE_POSITIONS, WhatsAppShareButton, WorkspaceCard, WorkspaceCycleTimeMetricCards, WorkspaceDetailView_default as WorkspaceDetailView, WorkspaceDisplayNameExample, WorkspaceGrid, WorkspaceGridItem, WorkspaceHealthCard, WorkspaceHealthView_default as WorkspaceHealthView, WorkspaceHistoryCalendar, WorkspaceMetricCards, WorkspaceMetricCardsImpl, WorkspaceMonthlyDataFetcher, WorkspaceMonthlyHistory, WorkspaceMonthlyPdfGenerator, WorkspacePdfExportButton, WorkspacePdfGenerator, WorkspaceWhatsAppShareButton, actionService, addSentryBreadcrumb, aggregateKPIsFromLineMetricsRows, alertsService, apiUtils, areAllLinesOnSameShift, authCoreService, authOTPService, authRateLimitService, awardsService, buildDateKey, buildKPIsFromLineMetricsRow, buildKpiLineHierarchy, buildLineSkuBreakdown, buildShiftGroupsKey, canRoleAccessDashboardPath, canRoleAccessTeamManagement, canRoleAssignFactories, canRoleAssignLines, canRoleChangeRole, canRoleInviteRole, canRoleManageCompany, canRoleManageTargets, canRoleManageUsers, canRoleRemoveUser, canRoleViewClipsCost, canRoleViewUsageStats, captureHandledFrontendException, captureSentryException, captureSentryMessage, checkRateLimit2 as checkRateLimit, clearAllRateLimits2 as clearAllRateLimits, clearRateLimit2 as clearRateLimit, clearS3VideoCache, clearS3VideoFromCache, clearSentryContext, clearWorkspaceDisplayNamesCache, cn, combineLineMetricsRows, countRealSkus, createDefaultKPIs, createInvitationService, createLinesService, createSessionTracker, createStorageService, createStreamProxyHandler, createSupabaseClient, createSupervisorService, createThrottledReload, createUserManagementService, createUserService, dashboardService, deleteThread, fetchIdleTimeReasons, fetchLineDummySkuId, fetchLineSkuCatalog, filterDataByDateKeyRange, filterRealSkuBreakdown, forceRefreshWorkspaceDisplayNames, formatAwardMonth, formatDateInZone, formatDateKeyForDisplay, formatDateTimeInZone, formatDuration2 as formatDuration, formatISTDate, formatIdleTime, formatRangeLabel, formatReasonLabel, formatRelativeTime, formatTimeInZone, fromUrlFriendlyName, getActionDisplayName, getActiveShift, getAllLineDisplayNames, getAllThreadMessages, getAllWorkspaceDisplayNamesAsync, getAllWorkspaceDisplayNamesSnapshot, getAnonClient, getAssignableRoles, getAssignmentColumnLabel, getAvailableShiftIds, getAwardBadgeType, getAwardDescription, getAwardTitle, getBrowserName, getCameraNumber, getCompanyMetricsTableName, getConfigurableShortWorkspaceDisplayName, getConfigurableWorkspaceDisplayName, getConfiguredLineIds, getCoreSessionRecordingProperties, getCoreSessionReplayUrl, getCurrentShift, getCurrentShiftForLine, getCurrentTimeInZone, getCurrentWeekFullRange, getCurrentWeekToDateRange, getDashboardHeaderTimeInZone, getDateKeyFromDate, getDateKeyFromValue, getDayDateKey, getDaysDifferenceInZone, getDefaultCameraStreamUrl, getDefaultLineId, getDefaultTabForWorkspace, getInitials, getLineDisplayName, getManufacturingInsights, getMetricsTablePrefix, getMonthKeyBounds, getMonthWeekRanges, getMonthlyTrendComparisonLabel, getNextUpdateInterval, getOperationalDate, getRoleAssignmentKind, getRoleDescription, getRoleLabel, getRoleMetadata, getRoleNavPaths, getS3SignedUrl, getS3VideoSrc, getShiftData, getShiftNameById, getShiftWorkDurationSeconds, getShortShiftName, getShortWorkspaceDisplayName, getShortWorkspaceDisplayNameAsync, getStoredWorkspaceMappings, getSubscriptionManager, getThreadMessages, getUniformShiftGroup, getUserThreads, getUserThreadsPaginated, getVisibleRolesForCurrentUser, getWorkspaceDisplayName, getWorkspaceDisplayNameAsync, getWorkspaceDisplayNamesMap, getWorkspaceFromUrl, getWorkspaceNavigationParams, groupLinesByShift, hasAnyShiftData, identifyCoreUser, initializeCoreMixpanel, isEfficiencyOnTrack, isFactoryScopedRole, isFullMonthRange, isIgnorableFrontendError, isLegacyConfiguration, isLoopbackHostname, isPrefetchError, isRealSku, isRecentFlowVideoGridMetricMode, isSafari, isSupervisorRole, isTransitionPeriod, isUrlPermanentlyFailed, isValidFactoryViewConfiguration, isValidLineInfoPayload, isValidPrefetchParams, isValidPrefetchStatus, isValidWorkspaceDetailedMetricsPayload, isValidWorkspaceMetricsPayload, isWipGatedVideoGridMetricMode, isWorkspaceDisplayNamesLoaded, isWorkspaceDisplayNamesLoading, lineLeaderboardService, linesService, mergeWithDefaultConfig, migrateLegacyConfiguration, normalizeActionFamily, normalizeDateKeyRange, normalizeDateKeyRangeUnbounded, normalizeRoleLevel, normalizeVideoGridMetricMode, optifyeAgentClient, parseDateKeyToDate, parseS3Uri, pickPreferredLineMetricsRow, preInitializeWorkspaceDisplayNames, preloadS3Video, preloadS3VideoUrl, preloadS3VideosUrl, preloadVideoUrl, preloadVideosUrl, qualityService, realtimeService, refreshWorkspaceDisplayNames, resetCoreMixpanel, resetFailedUrl, resetSentryQuotaForTests, resetSubscriptionManager, resolveDefaultSkuId, resolveLiveSkuId, s3VideoPreloader, selectPreferredLineMetricsRow, setSentryUserContext, setSentryWorkspaceContext, shouldEnableLocalDevTestLogin, shuffleArray, simulateApiDelay, skuService, startCoreSessionRecording, stopCoreSessionRecording, storeWorkspaceMapping, streamProxyConfig, subscribeWorkspaceDisplayNames, throttledReloadDashboard, toUrlFriendlyName, trackCoreEvent, trackCorePageView, transformToChartData, updateThreadTitle, upsertWorkspaceDisplayNameInCache, useAccessControl, useActiveBreaks, useActiveLineId, useAllWorkspaceMetrics, useAnalyticsConfig, useAppTimezone, useAudioService, useAuth, useAuthConfig, useAxelNotifications, useCanSaveTargets, useClipFilter, useClipTypes, useClipTypesWithCounts, useClipsInit, useCompanyClipsCost, useCompanyFastSlowClipFiltersEnabled, useCompanyHasVlmEnabledLine, useCompanyUsersUsage, useComponentOverride, useCustomConfig, useDashboardConfig, useDashboardMetrics, useDatabaseConfig, useDateFormatter, useDateTimeConfig, useDynamicShiftConfig, useEndpointsConfig, useEntityConfig, useFactoryOverviewMetrics, useFeatureFlags, useFormatNumber, useHasLineAccess, useHideMobileHeader, useHistoricWorkspaceMetrics, useHlsStream, useHlsStreamWithCropping, useHookOverride, useHourEndTimer, useHourlyTargetAchievements, useHourlyTargetMisses, useIdleTimeClipClassifications, useIdleTimeReasons, useIdleTimeVlmConfig, useKpiTrends, useLeaderboardMetrics, useLineDetailedMetrics, useLineKPIs, useLineMetrics, useLineShiftConfig, useLineSupervisor, useLineWorkspaceMetrics, useLines, useMessages, useMetrics, useMobileMenu, useMonthlyTrend, useMultiLineShiftConfigs, useNavigation, useOperationalShiftKey, useOptionalSupabase, useOverrides, usePageOverride, usePrefetchClipCounts, useRealtimeLineMetrics, useRegistry, useSKUs, useSessionKeepAlive, useSessionTracking, useSessionTrackingContext, useShiftConfig, useShiftGroups, useShifts, useSubscriptionManager, useSubscriptionManagerSafe, useSupabase, useSupabaseClient, useSupervisorsByLineIds, useTargets, useTeamManagementPermissions, useTheme, useThemeConfig, useThreads, useTicketHistory, useTimezoneContext, useUserLineAccess, useUserUsage, useVideoConfig, useWorkspaceConfig, useWorkspaceDetailedMetrics, useWorkspaceDisplayName, useWorkspaceDisplayNames, useWorkspaceDisplayNamesMap, useWorkspaceHealthById, useWorkspaceHealthLastSeen, useWorkspaceHealthStatus, useWorkspaceMetrics, useWorkspaceNavigation, useWorkspaceOperators, useWorkspaceUptimeTimeline, useWorkspaceVideoStreams, userService, videoPrefetchManager, videoPreloader, weeklyTopPerformerService, whatsappService, withAccessControl, withAuth, withRegistry, withTimezone, workspaceHealthService, workspaceService };
86086
+ export { ACTION_FAMILIES, ACTION_NAMES, AIAgentView_default as AIAgentView, AcceptInvite, AcceptInviteView_default as AcceptInviteView, AdvancedFilterDialog, AdvancedFilterPanel, AudioService, AuthCallback, AuthCallbackView_default as AuthCallbackView, AuthProvider, AuthService, AuthenticatedBottleneckClipsView, AuthenticatedFactoryView, AuthenticatedHelpView, AuthenticatedHomeView, AuthenticatedShiftsView, AuthenticatedTargetsView, AuthenticatedTicketsView, AuthenticatedWorkspaceHealthView, AvatarUpload, AxelNotificationPopup, AxelOrb, BackButton, BackButtonMinimal, BarChart, BaseHistoryCalendar, BottleneckClipsModal, BottleneckClipsView_default as BottleneckClipsView, BottlenecksContent, BreakNotificationPopup, CachePrefetchStatus, Card2 as Card, CardContent2 as CardContent, CardDescription2 as CardDescription, CardFooter2 as CardFooter, CardHeader2 as CardHeader, CardTitle2 as CardTitle, ChangeRoleDialog, ClipFilterProvider, ClipsCostView_default as ClipsCostView, CompactWorkspaceHealthCard, ConfirmRemoveUserDialog, CongratulationsOverlay, CroppedHlsVideoPlayer, CroppedVideoPlayer, CycleTimeChart, CycleTimeOverTimeChart, DEFAULT_ANALYTICS_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_CONFIG, DEFAULT_DATABASE_CONFIG, DEFAULT_DATE_TIME_CONFIG, DEFAULT_ENDPOINTS_CONFIG, DEFAULT_ENTITY_CONFIG, DEFAULT_HOME_VIEW_CONFIG, DEFAULT_MAP_VIEW_CONFIG, DEFAULT_SHIFT_CONFIG, DEFAULT_SHIFT_DATA, DEFAULT_THEME_CONFIG, DEFAULT_VIDEO_CONFIG, DEFAULT_WORKSPACE_CONFIG, DEFAULT_WORKSPACE_POSITIONS, DashboardHeader, DashboardLayout, DashboardOverridesProvider, DashboardProvider, DateDisplay_default as DateDisplay, DateTimeDisplay, DebugAuth, DebugAuthView_default as DebugAuthView, DetailedHealthStatus, DiagnosisVideoModal, EFFICIENCY_ON_TRACK_THRESHOLD, EmptyStateMessage, EncouragementOverlay, FactoryAssignmentDropdown, FactoryView_default as FactoryView, FileManagerFilters, FilterDialogTrigger, FirstTimeLoginDebug, FirstTimeLoginHandler, FittingTitle, GaugeChart, GridComponentsPlaceholder, HamburgerButton, Header, HealthDateShiftSelector, HealthStatusGrid, HealthStatusIndicator, HelpView_default as HelpView, HlsVideoPlayer, HomeView_default as HomeView, HourlyOutputChart2 as HourlyOutputChart, HourlyUptimeChart, ISTTimer_default as ISTTimer, IdleTimeVlmConfigProvider, ImprovementCenterView_default as ImprovementCenterView, InlineEditableText, InteractiveOnboardingTour, InvitationService, InvitationsTable, InviteUserDialog, KPICard, KPIDetailView_default as KPIDetailView, KPIGrid, KPIHeader, KPISection, KPIsOverviewView_default as KPIsOverviewView, LINE_1_UUID, LINE_2_UUID, LargeOutputProgressChart, LeaderboardDetailView_default as LeaderboardDetailView, Legend5 as Legend, LineAssignmentDropdown, LineChart, LineHistoryCalendar, LineMonthlyHistory, LineMonthlyPdfGenerator, LinePdfExportButton, LinePdfGenerator, LineWhatsAppShareButton, LinesService, LiveTimer, LoadingInline, LoadingOverlay_default as LoadingOverlay, LoadingPage_default as LoadingPage, LoadingSkeleton, LoadingState, LoginPage, LoginView_default as LoginView, Logo, MainLayout, MapGridView, MetricCard_default as MetricCard, MinimalOnboardingPopup, MobileMenuProvider, NewClipsNotification, NoWorkspaceData, OnboardingDemo, OnboardingTour, OptifyeAgentClient, OptifyeLogoLoader_default as OptifyeLogoLoader, OutputProgressChart, PageHeader, PieChart4 as PieChart, PlantHeadView_default as PlantHeadView, PlayPauseIndicator, PrefetchConfigurationError, PrefetchError, PrefetchEvents, PrefetchStatus, PrefetchTimeoutError, ProfileView_default as ProfileView, ROOT_DASHBOARD_EVENT_NAMES, RecentFlowSnapshotGrid, RegistryProvider, RoleBadge, S3ClipsSupabaseService as S3ClipsService, S3Service, SENTRY_HANDLED_EVENT_SESSION_LIMIT, SENTRY_HANDLED_EVENT_WINDOW_MS, SENTRY_QUOTA_STORAGE_KEY, SKUManagementView, SOPComplianceChart, SSEChatClient, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SessionTracker, SessionTrackingContext, SessionTrackingProvider, SettingsPopup, ShiftDisplay_default as ShiftDisplay, ShiftsView_default as ShiftsView, SideNavBar, SignupWithInvitation, SilentErrorBoundary, SimpleOnboardingPopup, SingleVideoStream_default as SingleVideoStream, Skeleton, SubscriptionManager, SubscriptionManagerProvider, SupabaseProvider, SupervisorDropdown_default as SupervisorDropdown, SupervisorManagementView_default as SupervisorManagementView, SupervisorService, TargetWorkspaceGrid, TargetsView_default as TargetsView, TeamManagementView_default as TeamManagementView, ThreadSidebar, TicketHistory_default as TicketHistory, TicketHistoryService, TicketsView_default as TicketsView, TimeDisplay_default as TimeDisplay, TimePickerDropdown, Timer_default as Timer, TimezoneProvider, TimezoneService, UptimeDonutChart, UptimeLineChart, UptimeMetricCards, UserAvatar, UserManagementService, UserManagementTable, UserService, UserUsageDetailModal, UserUsageStats, VideoCard, VideoGridView, VideoPlayer, VideoPreloader, WORKSPACE_POSITIONS, WhatsAppShareButton, WorkspaceCard, WorkspaceCycleTimeMetricCards, WorkspaceDetailView_default as WorkspaceDetailView, WorkspaceDisplayNameExample, WorkspaceGrid, WorkspaceGridItem, WorkspaceHealthCard, WorkspaceHealthView_default as WorkspaceHealthView, WorkspaceHistoryCalendar, WorkspaceMetricCards, WorkspaceMetricCardsImpl, WorkspaceMonthlyDataFetcher, WorkspaceMonthlyHistory, WorkspaceMonthlyPdfGenerator, WorkspacePdfExportButton, WorkspacePdfGenerator, WorkspaceWhatsAppShareButton, actionService, addSentryBreadcrumb, aggregateKPIsFromLineMetricsRows, alertsService, apiUtils, areAllLinesOnSameShift, authCoreService, authOTPService, authRateLimitService, awardsService, buildDateKey, buildKPIsFromLineMetricsRow, buildKpiLineHierarchy, buildLineSkuBreakdown, buildShiftGroupsKey, canRoleAccessDashboardPath, canRoleAccessTeamManagement, canRoleAssignFactories, canRoleAssignLines, canRoleChangeRole, canRoleInviteRole, canRoleManageCompany, canRoleManageTargets, canRoleManageUsers, canRoleRemoveUser, canRoleViewClipsCost, canRoleViewUsageStats, captureHandledFrontendException, captureSentryException, captureSentryMessage, checkRateLimit2 as checkRateLimit, clearAllRateLimits2 as clearAllRateLimits, clearRateLimit2 as clearRateLimit, clearS3VideoCache, clearS3VideoFromCache, clearSentryContext, clearWorkspaceDisplayNamesCache, cn, combineLineMetricsRows, countRealSkus, createDefaultKPIs, createInvitationService, createLinesService, createSessionTracker, createStorageService, createStreamProxyHandler, createSupabaseClient, createSupervisorService, createThrottledReload, createUserManagementService, createUserService, dashboardService, deleteThread, fetchIdleTimeReasons, fetchLineDummySkuId, fetchLineSkuCatalog, filterDataByDateKeyRange, filterRealSkuBreakdown, forceRefreshWorkspaceDisplayNames, formatAwardMonth, formatDateInZone, formatDateKeyForDisplay, formatDateTimeInZone, formatDuration2 as formatDuration, formatISTDate, formatIdleTime, formatRangeLabel, formatReasonLabel, formatRelativeTime, formatTimeInZone, fromUrlFriendlyName, getActionDisplayName, getActiveShift, getAllLineDisplayNames, getAllThreadMessages, getAllWorkspaceDisplayNamesAsync, getAllWorkspaceDisplayNamesSnapshot, getAnonClient, getAssignableRoles, getAssignmentColumnLabel, getAvailableShiftIds, getAwardBadgeType, getAwardDescription, getAwardTitle, getBrowserName, getCameraNumber, getCompanyMetricsTableName, getConfigurableShortWorkspaceDisplayName, getConfigurableWorkspaceDisplayName, getConfiguredLineIds, getCoreSessionRecordingProperties, getCoreSessionReplayUrl, getCurrentShift, getCurrentShiftForLine, getCurrentTimeInZone, getCurrentWeekFullRange, getCurrentWeekToDateRange, getDashboardHeaderTimeInZone, getDateKeyFromDate, getDateKeyFromValue, getDayDateKey, getDaysDifferenceInZone, getDefaultCameraStreamUrl, getDefaultLineId, getDefaultTabForWorkspace, getInitials, getLineDisplayName, getManufacturingInsights, getMetricsTablePrefix, getMonthKeyBounds, getMonthWeekRanges, getMonthlyTrendComparisonLabel, getNextUpdateInterval, getOperationalDate, getRoleAssignmentKind, getRoleDescription, getRoleLabel, getRoleMetadata, getRoleNavPaths, getS3SignedUrl, getS3VideoSrc, getShiftData, getShiftNameById, getShiftWorkDurationSeconds, getShortShiftName, getShortWorkspaceDisplayName, getShortWorkspaceDisplayNameAsync, getStoredWorkspaceMappings, getSubscriptionManager, getThreadMessages, getUniformShiftGroup, getUserThreads, getUserThreadsPaginated, getVisibleRolesForCurrentUser, getWorkspaceDisplayName, getWorkspaceDisplayNameAsync, getWorkspaceDisplayNamesMap, getWorkspaceFromUrl, getWorkspaceNavigationParams, groupLinesByShift, hasAnyShiftData, identifyCoreUser, initializeCoreMixpanel, isEfficiencyOnTrack, isFactoryScopedRole, isFullMonthRange, isIgnorableFrontendError, isLegacyConfiguration, isLoopbackHostname, isPrefetchError, isRealSku, isRecentFlowVideoGridMetricMode, isSafari, isSupervisorRole, isTransitionPeriod, isUrlPermanentlyFailed, isValidFactoryViewConfiguration, isValidLineInfoPayload, isValidPrefetchParams, isValidPrefetchStatus, isValidWorkspaceDetailedMetricsPayload, isValidWorkspaceMetricsPayload, isWipGatedVideoGridMetricMode, isWorkspaceDisplayNamesLoaded, isWorkspaceDisplayNamesLoading, lineLeaderboardService, linesService, mergeWithDefaultConfig, migrateLegacyConfiguration, normalizeActionFamily, normalizeDateKeyRange, normalizeDateKeyRangeUnbounded, normalizeRoleLevel, normalizeVideoGridMetricMode, optifyeAgentClient, parseDateKeyToDate, parseS3Uri, pickPreferredLineMetricsRow, preInitializeWorkspaceDisplayNames, preloadS3Video, preloadS3VideoUrl, preloadS3VideosUrl, preloadVideoUrl, preloadVideosUrl, qualityService, realtimeService, refreshWorkspaceDisplayNames, resetCoreMixpanel, resetFailedUrl, resetSentryQuotaForTests, resetSubscriptionManager, resolveDefaultSkuId, resolveLiveSkuId, s3VideoPreloader, selectPreferredLineMetricsRow, setSentryUserContext, setSentryWorkspaceContext, shouldEnableLocalDevTestLogin, shuffleArray, simulateApiDelay, skuService, startCoreSessionRecording, stopCoreSessionRecording, storeWorkspaceMapping, streamProxyConfig, subscribeWorkspaceDisplayNames, throttledReloadDashboard, toUrlFriendlyName, trackCoreEvent, trackCorePageView, transformToChartData, updateThreadTitle, upsertWorkspaceDisplayNameInCache, useAccessControl, useActiveBreaks, useActiveLineId, useAllWorkspaceMetrics, useAnalyticsConfig, useAppTimezone, useAudioService, useAuth, useAuthConfig, useAxelNotifications, useCanSaveTargets, useClipFilter, useClipTypes, useClipTypesWithCounts, useClipsInit, useCompanyClipsCost, useCompanyFastSlowClipFiltersEnabled, useCompanyHasVlmEnabledLine, useCompanyUsersUsage, useComponentOverride, useCustomConfig, useDashboardConfig, useDashboardMetrics, useDatabaseConfig, useDateFormatter, useDateTimeConfig, useDynamicShiftConfig, useEndpointsConfig, useEntityConfig, useFactoryOverviewMetrics, useFeatureFlags, useFormatNumber, useHasLineAccess, useHideMobileHeader, useHistoricWorkspaceMetrics, useHlsStream, useHlsStreamWithCropping, useHookOverride, useHourEndTimer, useHourlyTargetAchievements, useHourlyTargetMisses, useIdleTimeClipClassifications, useIdleTimeReasons, useIdleTimeVlmConfig, useKpiTrends, useLeaderboardMetrics, useLineDetailedMetrics, useLineKPIs, useLineMetrics, useLineShiftConfig, useLineSupervisor, useLineWorkspaceMetrics, useLines, useMessages, useMetrics, useMobileMenu, useMonthlyTrend, useMultiLineShiftConfigs, useNavigation, useOperationalShiftKey, useOptionalSupabase, useOverrides, usePageOverride, usePrefetchClipCounts, useRealtimeLineMetrics, useRegistry, useSKUs, useSessionKeepAlive, useSessionTracking, useSessionTrackingContext, useShiftConfig, useShiftGroups, useShifts, useSubscriptionManager, useSubscriptionManagerSafe, useSupabase, useSupabaseClient, useSupervisorsByLineIds, useTargets, useTeamManagementPermissions, useTheme, useThemeConfig, useThreads, useTicketHistory, useTimezoneContext, useUserLineAccess, useUserUsage, useVideoConfig, useWorkspaceConfig, useWorkspaceDetailedMetrics, useWorkspaceDisplayName, useWorkspaceDisplayNames, useWorkspaceDisplayNamesMap, useWorkspaceHealthById, useWorkspaceHealthLastSeen, useWorkspaceHealthStatus, useWorkspaceMetrics, useWorkspaceNavigation, useWorkspaceOperators, useWorkspaceUptimeTimeline, useWorkspaceVideoStreams, userService, videoPrefetchManager, videoPreloader, weeklyTopPerformerService, whatsappService, withAccessControl, withAuth, withRegistry, withTimezone, workspaceHealthService, workspaceService };
package/package.json CHANGED
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "name": "@optifye/dashboard-core",
3
- "version": "6.12.15",
3
+ "version": "6.12.17",
4
4
  "description": "Reusable UI & logic for Optifye dashboard",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
7
7
  "types": "dist/index.d.ts",
8
8
  "files": [
9
9
  "dist",
10
- "global.css"
10
+ "global.css",
11
+ "automation.d.ts",
12
+ "automation.js"
11
13
  ],
12
14
  "sideEffects": [
13
15
  "global.css"
@@ -20,6 +22,13 @@
20
22
  "require": "./dist/index.js",
21
23
  "default": "./dist/index.js"
22
24
  },
25
+ "./automation": {
26
+ "types": "./dist/automation.d.ts",
27
+ "node": "./dist/automation.js",
28
+ "import": "./dist/automation.js",
29
+ "require": "./dist/automation.js",
30
+ "default": "./dist/automation.js"
31
+ },
23
32
  "./global.css": "./global.css"
24
33
  },
25
34
  "author": "",