@optifye/dashboard-core 3.0.0 → 3.0.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.
package/dist/index.d.mts CHANGED
@@ -2,13 +2,13 @@ import * as _supabase_supabase_js from '@supabase/supabase-js';
2
2
  import { SupabaseClient as SupabaseClient$1, Session, User, AuthError } from '@supabase/supabase-js';
3
3
  import { LucideProps, Share2, Download } from 'lucide-react';
4
4
  import * as React$1 from 'react';
5
- import React__default, { ReactNode } from 'react';
5
+ import React__default, { ReactNode, HTMLAttributes } from 'react';
6
6
  import * as querystring from 'querystring';
7
- import { ClassValue } from 'clsx';
8
7
  import * as react_jsx_runtime from 'react/jsx-runtime';
9
8
  import * as SelectPrimitive from '@radix-ui/react-select';
10
9
  import { Modifiers } from 'react-day-picker';
11
10
  import html2canvas from 'html2canvas';
11
+ import { ClassValue } from 'clsx';
12
12
 
13
13
  interface LineInfo {
14
14
  line_id: string;
@@ -84,6 +84,7 @@ interface WorkspaceDetailedMetrics {
84
84
  total_workspaces: number;
85
85
  ideal_output_until_now: number;
86
86
  output_difference: number;
87
+ idle_time?: number;
87
88
  compliance_efficiency?: number;
88
89
  sop_check?: Record<string, number>;
89
90
  }
@@ -153,6 +154,7 @@ interface DashboardConfig {
153
154
  workspaceConfig?: WorkspaceConfig;
154
155
  endpoints?: EndpointsConfig;
155
156
  edgeFunctionBaseUrl?: string;
157
+ s3Config?: S3Config;
156
158
  /** Feature flags or other arbitrary app-specific config */
157
159
  featureFlags?: Record<string, boolean>;
158
160
  /** Generic object to allow any other custom config values needed by the app or overrides */
@@ -214,6 +216,16 @@ interface DateTimeConfig {
214
216
  timeFormatOptions?: Intl.DateTimeFormatOptions;
215
217
  dateTimeFormatOptions?: Intl.DateTimeFormatOptions;
216
218
  }
219
+ interface S3Config {
220
+ bucketName: string;
221
+ region?: string;
222
+ cloudFrontDomain: string;
223
+ credentials?: {
224
+ accessKeyId: string;
225
+ secretAccessKey: string;
226
+ };
227
+ signedUrlExpiresIn?: number;
228
+ }
217
229
 
218
230
  interface BasePerformanceMetric {
219
231
  id: string;
@@ -872,6 +884,44 @@ interface FactoryViewProps {
872
884
  productIds?: Record<string, string>;
873
885
  }
874
886
 
887
+ interface BottleneckVideoData {
888
+ id: string;
889
+ src: string;
890
+ timestamp: string;
891
+ severity: 'low' | 'medium' | 'high';
892
+ description: string;
893
+ type: 'bottleneck' | 'low_value' | 'best_cycle_time' | 'worst_cycle_time' | 'missing_quality_check';
894
+ originalUri: string;
895
+ cycle_time_seconds?: number;
896
+ }
897
+ interface VideoSummary {
898
+ counts: Record<string, number>;
899
+ samples: Record<string, BottleneckVideoData | null>;
900
+ }
901
+ interface S3ClipsAPIParams {
902
+ workspaceId: string;
903
+ date?: string;
904
+ shift?: string;
905
+ category?: string;
906
+ limit?: number;
907
+ mode?: 'summary' | 'full';
908
+ includeCycleTime?: boolean;
909
+ }
910
+ interface S3ListObjectsParams {
911
+ workspaceId: string;
912
+ date: string;
913
+ shiftId: number;
914
+ maxKeys?: number;
915
+ }
916
+ interface VideoMetadata {
917
+ original_task_metadata?: {
918
+ cycle_time?: number;
919
+ };
920
+ [key: string]: any;
921
+ }
922
+ type VideoType = 'bottleneck' | 'low_value' | 'best_cycle_time' | 'worst_cycle_time' | 'missing_quality_check';
923
+ type VideoSeverity = 'low' | 'medium' | 'high';
924
+
875
925
  declare const DEFAULT_DATABASE_CONFIG: DatabaseConfig;
876
926
  declare const DEFAULT_ENTITY_CONFIG: EntityConfig;
877
927
  declare const DEFAULT_SHIFT_CONFIG: ShiftConfig;
@@ -1706,6 +1756,90 @@ declare const useFactoryOverviewMetrics: (options?: UseFactoryOverviewOptions) =
1706
1756
  refetch: () => Promise<void>;
1707
1757
  };
1708
1758
 
1759
+ /**
1760
+ * @typedef UseWorkspaceDisplayNamesReturn
1761
+ * @description Return type of the `useWorkspaceDisplayNames` hook.
1762
+ * @property {Record<string, string>} displayNames - Map of workspace_id -> display_name
1763
+ * @property {boolean} loading - Whether the hook is currently fetching data
1764
+ * @property {Error | null} error - Any error that occurred during fetching
1765
+ * @property {() => void} refetch - Function to manually refetch data
1766
+ */
1767
+ interface UseWorkspaceDisplayNamesReturn {
1768
+ displayNames: Record<string, string>;
1769
+ loading: boolean;
1770
+ error: Error | null;
1771
+ refetch: () => void;
1772
+ }
1773
+ /**
1774
+ * @hook useWorkspaceDisplayNames
1775
+ * @summary Hook for fetching and managing workspace display names from Supabase
1776
+ * @description This hook provides workspace display names from the Supabase database with proper
1777
+ * loading states, error handling, and caching. It automatically fetches workspace display names
1778
+ * on mount and provides utility methods for accessing individual workspace names.
1779
+ *
1780
+ * @param {string} [companyId] - Optional company ID to filter workspaces
1781
+ * @param {string} [lineId] - Optional line ID to filter workspaces
1782
+ * @returns {UseWorkspaceDisplayNamesReturn} An object containing display names, loading state, error, and utility functions
1783
+ *
1784
+ * @example
1785
+ * const { displayNames, loading, error, getDisplayName } = useWorkspaceDisplayNames();
1786
+ *
1787
+ * if (loading) return <div>Loading...</div>;
1788
+ * if (error) return <div>Error: {error.message}</div>;
1789
+ *
1790
+ * const workspaceName = getDisplayName('WS01'); // Returns display name or fallback
1791
+ */
1792
+ declare const useWorkspaceDisplayNames: (companyId?: string, lineId?: string) => UseWorkspaceDisplayNamesReturn;
1793
+ /**
1794
+ * @hook useWorkspaceDisplayName
1795
+ * @summary Hook for fetching a single workspace display name
1796
+ * @description This hook fetches a single workspace display name from Supabase with proper
1797
+ * loading state and error handling. It's useful when you only need one workspace name.
1798
+ *
1799
+ * @param {string} workspaceId - The workspace ID to fetch the display name for
1800
+ * @param {string} [companyId] - Optional company ID to filter workspaces
1801
+ * @param {string} [lineId] - Optional line ID to filter workspaces
1802
+ * @returns {object} An object containing displayName, loading state, error, and refetch function
1803
+ *
1804
+ * @example
1805
+ * const { displayName, loading, error } = useWorkspaceDisplayName('WS01');
1806
+ *
1807
+ * if (loading) return <span>Loading...</span>;
1808
+ * return <span>{displayName}</span>;
1809
+ */
1810
+ declare const useWorkspaceDisplayName: (workspaceId: string, companyId?: string, lineId?: string) => {
1811
+ displayName: string;
1812
+ loading: boolean;
1813
+ error: Error | null;
1814
+ refetch: () => Promise<void>;
1815
+ };
1816
+ /**
1817
+ * @hook useWorkspaceDisplayNamesMap
1818
+ * @summary Hook for fetching multiple workspace display names as a map
1819
+ * @description This hook fetches display names for multiple workspaces and returns them
1820
+ * as a Record<string, string> for easy lookup. Useful when you need names for a specific set of workspaces.
1821
+ *
1822
+ * @param {string[]} workspaceIds - Array of workspace IDs to fetch display names for
1823
+ * @param {string} [companyId] - Optional company ID to filter workspaces
1824
+ * @param {string} [lineId] - Optional line ID to filter workspaces
1825
+ * @returns {object} An object containing displayNamesMap, loading state, error, and refetch function
1826
+ *
1827
+ * @example
1828
+ * const { displayNamesMap, loading } = useWorkspaceDisplayNamesMap(['WS01', 'WS02', 'WS03']);
1829
+ *
1830
+ * if (!loading) {
1831
+ * workspaceIds.forEach(id => {
1832
+ * console.log(`${id}: ${displayNamesMap[id]}`);
1833
+ * });
1834
+ * }
1835
+ */
1836
+ declare const useWorkspaceDisplayNamesMap: (workspaceIds: string[], companyId?: string, lineId?: string) => {
1837
+ displayNames: Record<string, string>;
1838
+ loading: boolean;
1839
+ error: Error | null;
1840
+ refetch: () => Promise<void>;
1841
+ };
1842
+
1709
1843
  /**
1710
1844
  * Interface for navigation method used across packages
1711
1845
  * Abstracts navigation implementation details from components
@@ -1767,6 +1901,7 @@ interface LineNavigationParams {
1767
1901
  * @property {() => void} goToShifts - Navigates to the '/shifts' page.
1768
1902
  * @property {() => void} goToLeaderboard - Navigates to the '/leaderboard' page.
1769
1903
  * @property {() => void} goToFactoryView - Navigates to the '/factory-view' page.
1904
+ * @property {() => void} goToProfile - Navigates to the '/profile' page.
1770
1905
  * @property {(path: string, options?: NavigationOptions) => Promise<void>} navigate - Navigates to an arbitrary path with retry logic and optional tracking.
1771
1906
  */
1772
1907
  /**
@@ -1803,6 +1938,7 @@ declare function useNavigation(customNavigate?: NavigationMethod): {
1803
1938
  goToShifts: () => void;
1804
1939
  goToLeaderboard: () => void;
1805
1940
  goToFactoryView: () => void;
1941
+ goToProfile: () => void;
1806
1942
  navigate: NavigationMethod;
1807
1943
  };
1808
1944
 
@@ -1906,6 +2042,25 @@ interface UseFormatNumberResult {
1906
2042
  */
1907
2043
  declare const useFormatNumber: () => UseFormatNumberResult;
1908
2044
 
2045
+ interface UseHlsStreamOptions {
2046
+ src: string;
2047
+ shouldPlay: boolean;
2048
+ onFatalError?: () => void;
2049
+ }
2050
+ /**
2051
+ * Enterprise-grade HLS streaming hook with auto-recovery
2052
+ *
2053
+ * Recovery timing configuration:
2054
+ * - Buffer underrun (waiting): 10 seconds grace period
2055
+ * - Stall detection: checks every 7 seconds, 8 seconds grace period
2056
+ * - Soft restart escalation: after 5 failed attempts
2057
+ * - Total time before recovery: 10-15 seconds typically
2058
+ */
2059
+ declare function useHlsStream(videoRef: React.RefObject<HTMLVideoElement | null>, { src, shouldPlay, onFatalError }: UseHlsStreamOptions): {
2060
+ restartKey: number;
2061
+ isNativeHls: boolean;
2062
+ };
2063
+
1909
2064
  declare const actionService: {
1910
2065
  getActionsByName(actionNames: string[], companyIdInput?: string): Promise<Action[]>;
1911
2066
  };
@@ -1957,7 +2112,27 @@ declare const qualityService: {
1957
2112
  type QualityService = typeof qualityService;
1958
2113
 
1959
2114
  declare const workspaceService: {
2115
+ _workspaceDisplayNamesCache: Map<string, string>;
2116
+ _cacheTimestamp: number;
2117
+ _cacheExpiryMs: number;
1960
2118
  getWorkspaces(lineId: string): Promise<Workspace[]>;
2119
+ /**
2120
+ * Fetches workspace display names from the database
2121
+ * Returns a map of workspace_id -> display_name
2122
+ */
2123
+ getWorkspaceDisplayNames(companyId?: string, lineId?: string): Promise<Map<string, string>>;
2124
+ /**
2125
+ * Gets cached workspace display names (with cache expiry)
2126
+ */
2127
+ getCachedWorkspaceDisplayNames(companyId?: string, lineId?: string): Promise<Map<string, string>>;
2128
+ /**
2129
+ * Gets a single workspace display name by workspace_id
2130
+ */
2131
+ getWorkspaceDisplayName(workspaceId: string, companyId?: string, lineId?: string): Promise<string>;
2132
+ /**
2133
+ * Clears the workspace display names cache
2134
+ */
2135
+ clearWorkspaceDisplayNamesCache(): void;
1961
2136
  updateWorkspaceAction(updates: WorkspaceActionUpdate[]): Promise<void>;
1962
2137
  updateActionThresholds(thresholds: ActionThreshold[]): Promise<void>;
1963
2138
  getActionThresholds(lineId: string, date: string, shiftId?: number): Promise<ActionThreshold[]>;
@@ -1990,6 +2165,27 @@ declare const authCoreService: {
1990
2165
  fetchCoreUserProfile(supabase: SupabaseClient$1, user: User, profileTable: string, roleColumn?: string): Promise<Partial<AuthUser>>;
1991
2166
  };
1992
2167
 
2168
+ declare const authOTPService: {
2169
+ /**
2170
+ * Send OTP to user's email
2171
+ */
2172
+ sendOTP(supabase: SupabaseClient$1, email: string): Promise<{
2173
+ error: AuthError | null;
2174
+ }>;
2175
+ /**
2176
+ * Verify OTP and sign in user
2177
+ */
2178
+ verifyOTP(supabase: SupabaseClient$1, email: string, token: string): Promise<{
2179
+ error: AuthError | null;
2180
+ }>;
2181
+ /**
2182
+ * Resend OTP
2183
+ */
2184
+ resendOTP(supabase: SupabaseClient$1, email: string): Promise<{
2185
+ error: AuthError | null;
2186
+ }>;
2187
+ };
2188
+
1993
2189
  /**
1994
2190
  * Initializes Mixpanel with the provided token.
1995
2191
  * Should be called once from the application setup (e.g., within DashboardProvider)
@@ -2258,9 +2454,47 @@ declare const storeWorkspaceMapping: (mapping: WorkspaceUrlMapping) => void;
2258
2454
  declare const getWorkspaceFromUrl: (urlName: string) => WorkspaceUrlMapping | null;
2259
2455
  declare const getStoredWorkspaceMappings: () => Record<string, WorkspaceUrlMapping>;
2260
2456
 
2261
- declare const workspaceDisplayNames: Record<string, string>;
2262
- declare const getWorkspaceDisplayName: (workspaceId: string) => string;
2263
- declare const getShortWorkspaceDisplayName: (workspaceId: string) => string;
2457
+ /**
2458
+ * Gets workspace display name synchronously
2459
+ * If not initialized, triggers lazy initialization and returns workspace ID
2460
+ */
2461
+ declare const getWorkspaceDisplayName: (workspaceId: string, lineId?: string) => string;
2462
+ /**
2463
+ * Short version of workspace display name (synchronous version for backward compatibility)
2464
+ */
2465
+ declare const getShortWorkspaceDisplayName: (workspaceId: string, lineId?: string) => string;
2466
+ /**
2467
+ * Async version that ensures data is loaded from Supabase
2468
+ */
2469
+ declare const getWorkspaceDisplayNameAsync: (workspaceId: string, companyId?: string, lineId?: string) => Promise<string>;
2470
+ /**
2471
+ * Gets all workspace display names
2472
+ */
2473
+ declare const getAllWorkspaceDisplayNamesAsync: (companyId?: string, lineId?: string) => Promise<Record<string, string>>;
2474
+ /**
2475
+ * Gets workspace display names for specific workspace IDs
2476
+ */
2477
+ declare const getWorkspaceDisplayNamesMap: (workspaceIds: string[], companyId?: string, lineId?: string) => Promise<Map<string, string>>;
2478
+ /**
2479
+ * Short version of workspace display name (for space-constrained UI)
2480
+ */
2481
+ declare const getShortWorkspaceDisplayNameAsync: (workspaceId: string, companyId?: string, lineId?: string) => Promise<string>;
2482
+ /**
2483
+ * Returns true if workspace display names have been loaded from Supabase
2484
+ */
2485
+ declare const isWorkspaceDisplayNamesLoaded: () => boolean;
2486
+ /**
2487
+ * Returns true if workspace display names are currently being loaded
2488
+ */
2489
+ declare const isWorkspaceDisplayNamesLoading: () => boolean;
2490
+ /**
2491
+ * Manually refresh workspace display names from Supabase
2492
+ */
2493
+ declare const refreshWorkspaceDisplayNames: (companyId?: string) => Promise<void>;
2494
+ /**
2495
+ * Clear all workspace display names cache
2496
+ */
2497
+ declare const clearWorkspaceDisplayNamesCache: () => void;
2264
2498
 
2265
2499
  /**
2266
2500
  * Centralized workspace preferences manager
@@ -2307,6 +2541,110 @@ declare const videoPreloader: VideoPreloader;
2307
2541
  declare const preloadVideoUrl: (url: string | null | undefined) => void;
2308
2542
  declare const preloadVideosUrl: (urls: (string | null | undefined)[]) => void;
2309
2543
 
2544
+ /**
2545
+ * S3 Video preloader utility for caching and efficiently loading videos from S3 with CloudFront integration
2546
+ */
2547
+
2548
+ declare class S3VideoPreloader {
2549
+ private readonly cache;
2550
+ private readonly queue;
2551
+ private active;
2552
+ private config?;
2553
+ constructor(config?: DashboardConfig);
2554
+ setConfig(config: DashboardConfig): void;
2555
+ preloadVideo: (url: string) => void;
2556
+ preloadVideos: (urls: string[]) => void;
2557
+ clear: () => void;
2558
+ private processQueue;
2559
+ }
2560
+ declare const s3VideoPreloader: S3VideoPreloader;
2561
+ /**
2562
+ * Fetches the URL for an S3 URI using CloudFront
2563
+ * @param s3Uri - The S3 URI in format s3://bucket-name/key
2564
+ * @param config - Dashboard configuration with S3 settings
2565
+ * @returns A Promise resolving to the CloudFront URL
2566
+ */
2567
+ declare const getS3SignedUrl: (s3Uri: string, config: DashboardConfig) => Promise<string>;
2568
+ /**
2569
+ * Preloads a video from CloudFront and caches it
2570
+ * @param s3Uri - The S3 URI in format s3://bucket-name/key
2571
+ * @param config - Dashboard configuration with S3 settings
2572
+ * @returns A Promise resolving to the blob URL for the cached video
2573
+ */
2574
+ declare const preloadS3Video: (s3Uri: string, config: DashboardConfig) => Promise<string>;
2575
+ /**
2576
+ * Gets a video source URL - either from cache or by loading from CloudFront
2577
+ * @param s3Uri - The S3 URI in format s3://bucket-name/key
2578
+ * @param config - Dashboard configuration with S3 settings
2579
+ * @param useCache - Whether to use the cache (default: true)
2580
+ * @returns A Promise resolving to the video source URL
2581
+ */
2582
+ declare const getS3VideoSrc: (s3Uri: string, config: DashboardConfig, useCache?: boolean) => Promise<string>;
2583
+ /**
2584
+ * Clears a specific video from cache
2585
+ * @param s3Uri - The S3 URI to clear from cache
2586
+ */
2587
+ declare const clearS3VideoFromCache: (s3Uri: string) => void;
2588
+ /**
2589
+ * Clears all videos from cache
2590
+ */
2591
+ declare const clearS3VideoCache: () => void;
2592
+ declare const preloadS3VideoUrl: (url: string) => void;
2593
+ declare const preloadS3VideosUrl: (urls: string[]) => void;
2594
+
2595
+ /**
2596
+ * Throttled dashboard reload utility
2597
+ * Ensures max 1 reload per interval to prevent reload storms
2598
+ */
2599
+ declare const createThrottledReload: (interval?: number) => () => void;
2600
+ declare const throttledReloadDashboard: () => void;
2601
+
2602
+ /**
2603
+ * Format idle time from seconds to a human-readable format
2604
+ * @param idleTimeInSeconds - Idle time in seconds
2605
+ * @returns Formatted string (e.g., "1h 30m 45s", "30m 45s", "45s")
2606
+ */
2607
+ declare const formatIdleTime: (idleTimeInSeconds: number | null | undefined) => string;
2608
+
2609
+ interface OptifyeAgentContext {
2610
+ timeframe?: string;
2611
+ focus?: string;
2612
+ [key: string]: any;
2613
+ }
2614
+ interface OptifyeAgentRequest {
2615
+ prompt: string;
2616
+ line_id: string;
2617
+ shift_id: number;
2618
+ company_id: string;
2619
+ context?: OptifyeAgentContext;
2620
+ }
2621
+ interface OptifyeAgentResponse {
2622
+ success: boolean;
2623
+ analysis?: string;
2624
+ timestamp?: string;
2625
+ error?: string;
2626
+ }
2627
+ /**
2628
+ * Client for integrating with Optifye Agent API
2629
+ */
2630
+ declare class OptifyeAgentClient {
2631
+ private apiUrl;
2632
+ constructor(apiUrl?: string);
2633
+ /**
2634
+ * Call Optifye Agent for manufacturing analysis
2635
+ */
2636
+ getManufacturingInsights(userQuestion: string, lineId: string, shiftId: number, companyId: string, context?: OptifyeAgentContext): Promise<OptifyeAgentResponse>;
2637
+ /**
2638
+ * Check if Optifye Agent API is healthy
2639
+ */
2640
+ checkHealth(): Promise<boolean>;
2641
+ }
2642
+ declare const optifyeAgentClient: OptifyeAgentClient;
2643
+ /**
2644
+ * Simple function to get manufacturing insights with better error handling
2645
+ */
2646
+ declare function getManufacturingInsights(userQuestion: string, lineId: string, shiftId: number, companyId: string, context?: OptifyeAgentContext): Promise<OptifyeAgentResponse>;
2647
+
2310
2648
  declare const createSupabaseClient: (url: string, key: string) => _supabase_supabase_js.SupabaseClient<any, "public", any>;
2311
2649
  declare const getAnonClient: () => _supabase_supabase_js.SupabaseClient<any, "public", any>;
2312
2650
 
@@ -2322,20 +2660,20 @@ declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivE
2322
2660
  declare const Select: React$1.FC<SelectPrimitive.SelectProps>;
2323
2661
  declare const SelectGroup: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React$1.RefAttributes<HTMLDivElement>>;
2324
2662
  declare const SelectValue: React$1.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React$1.RefAttributes<HTMLSpanElement>>;
2325
- declare const SelectTrigger: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
2326
- declare const SelectScrollUpButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2327
- declare const SelectScrollDownButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2328
- declare const SelectContent: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2329
- declare const SelectLabel: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2330
- declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2331
- declare const SelectSeparator: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
2332
-
2333
- declare const Card: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
2334
- declare const CardHeader: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
2335
- declare const CardTitle: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLHeadingElement> & React$1.RefAttributes<HTMLParagraphElement>>;
2336
- declare const CardDescription: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLParagraphElement> & React$1.RefAttributes<HTMLParagraphElement>>;
2337
- declare const CardContent: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
2338
- declare const CardFooter: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
2663
+ declare const SelectTrigger: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<never>>;
2664
+ declare const SelectScrollUpButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollUpButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<never>>;
2665
+ declare const SelectScrollDownButton: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectScrollDownButtonProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<never>>;
2666
+ declare const SelectContent: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<never>>;
2667
+ declare const SelectLabel: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<never>>;
2668
+ declare const SelectItem: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<never>>;
2669
+ declare const SelectSeparator: React$1.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<never>>;
2670
+
2671
+ declare const Card: (props: HTMLAttributes<HTMLDivElement>) => react_jsx_runtime.JSX.Element;
2672
+ declare const CardHeader: (props: HTMLAttributes<HTMLDivElement>) => react_jsx_runtime.JSX.Element;
2673
+ declare const CardTitle: (props: HTMLAttributes<HTMLHeadingElement>) => react_jsx_runtime.JSX.Element;
2674
+ declare const CardDescription: (props: HTMLAttributes<HTMLParagraphElement>) => react_jsx_runtime.JSX.Element;
2675
+ declare const CardContent: (props: HTMLAttributes<HTMLDivElement>) => react_jsx_runtime.JSX.Element;
2676
+ declare const CardFooter: (props: HTMLAttributes<HTMLDivElement>) => react_jsx_runtime.JSX.Element;
2339
2677
 
2340
2678
  interface LoadingOverlayProps {
2341
2679
  isVisible: boolean;
@@ -2379,10 +2717,10 @@ interface DateTimeDisplayProps {
2379
2717
  declare const DateTimeDisplay: React__default.FC<DateTimeDisplayProps>;
2380
2718
 
2381
2719
  declare const IconMap: {
2382
- readonly info: React__default.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React__default.RefAttributes<SVGSVGElement>>;
2383
- readonly warning: React__default.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React__default.RefAttributes<SVGSVGElement>>;
2384
- readonly success: React__default.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React__default.RefAttributes<SVGSVGElement>>;
2385
- readonly search: React__default.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React__default.RefAttributes<SVGSVGElement>>;
2720
+ readonly info: React$1.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
2721
+ readonly warning: React$1.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
2722
+ readonly success: React$1.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
2723
+ readonly search: React$1.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
2386
2724
  };
2387
2725
  type IconKey = keyof typeof IconMap;
2388
2726
  interface EmptyStateMessageProps {
@@ -2479,7 +2817,7 @@ interface BarChartProps {
2479
2817
  xAxisLabel?: string;
2480
2818
  yAxisLabel?: string;
2481
2819
  yAxisUnit?: string;
2482
- tooltipFormatter?: (value: any, name: any, props: any) => React__default.ReactNode;
2820
+ tooltipFormatter?: (value: any, name: any, props: any) => any;
2483
2821
  legendPayload?: any[];
2484
2822
  layout?: 'horizontal' | 'vertical';
2485
2823
  className?: string;
@@ -2522,7 +2860,7 @@ interface LineChartProps {
2522
2860
  yAxisLabel?: string;
2523
2861
  yAxisUnit?: string;
2524
2862
  yAxisDomain?: [number | string, number | string];
2525
- tooltipFormatter?: (value: any, name: any, props: any) => React__default.ReactNode;
2863
+ tooltipFormatter?: (value: any, name: any, props: any) => any;
2526
2864
  legendPayload?: any[];
2527
2865
  className?: string;
2528
2866
  showGrid?: boolean;
@@ -2576,7 +2914,8 @@ interface HourlyOutputChartProps {
2576
2914
  shiftStart: string;
2577
2915
  className?: string;
2578
2916
  }
2579
- declare const HourlyOutputChart: React__default.FC<HourlyOutputChartProps>;
2917
+
2918
+ declare const HourlyOutputChart: (props: HourlyOutputChartProps) => react_jsx_runtime.JSX.Element;
2580
2919
 
2581
2920
  interface SOPComplianceChartProps {
2582
2921
  data?: number[];
@@ -2621,13 +2960,13 @@ interface ShiftData$1 {
2621
2960
  underperforming_workspaces: number;
2622
2961
  total_workspaces: number;
2623
2962
  }
2624
- interface DayData$1 {
2963
+ interface DayData$3 {
2625
2964
  date: Date | string;
2626
2965
  dayShift: ShiftData$1;
2627
2966
  nightShift: ShiftData$1;
2628
2967
  }
2629
2968
  interface LineHistoryCalendarProps {
2630
- data: DayData$1[];
2969
+ data: DayData$3[];
2631
2970
  month: number;
2632
2971
  year: number;
2633
2972
  lineId: string;
@@ -2637,13 +2976,13 @@ interface LineHistoryCalendarProps {
2637
2976
  }
2638
2977
  declare const LineHistoryCalendar: React__default.FC<LineHistoryCalendarProps>;
2639
2978
 
2640
- interface PerformanceData {
2979
+ interface PerformanceData$1 {
2641
2980
  avg_efficiency: number;
2642
2981
  underperforming_workspaces: number;
2643
2982
  total_workspaces: number;
2644
2983
  compliance_percentage?: number;
2645
2984
  }
2646
- interface WorkspacePerformance {
2985
+ interface WorkspacePerformance$1 {
2647
2986
  workspace_name: string;
2648
2987
  workspace_uuid: string;
2649
2988
  avg_efficiency?: number;
@@ -2658,14 +2997,16 @@ interface LineMonthlyHistoryProps {
2658
2997
  year: number;
2659
2998
  monthlyData: {
2660
2999
  date: Date;
2661
- dayShift: PerformanceData;
2662
- nightShift: PerformanceData;
3000
+ dayShift: PerformanceData$1;
3001
+ nightShift: PerformanceData$1;
2663
3002
  }[];
2664
3003
  underperformingWorkspaces: {
2665
- dayShift: WorkspacePerformance[];
2666
- nightShift: WorkspacePerformance[];
3004
+ dayShift: WorkspacePerformance$1[];
3005
+ nightShift: WorkspacePerformance$1[];
2667
3006
  };
2668
3007
  lineId: string;
3008
+ selectedShift?: 'day' | 'night';
3009
+ onShiftChange?: (shift: 'day' | 'night') => void;
2669
3010
  onWorkspaceSelect?: (workspaceId: string, navigationParams?: Partial<WorkspaceNavigationParams> & {
2670
3011
  returnTo?: string;
2671
3012
  }) => void;
@@ -2675,6 +3016,42 @@ interface LineMonthlyHistoryProps {
2675
3016
  }
2676
3017
  declare const LineMonthlyHistory: React__default.FC<LineMonthlyHistoryProps>;
2677
3018
 
3019
+ interface PerformanceData {
3020
+ avg_efficiency: number;
3021
+ underperforming_workspaces: number;
3022
+ total_workspaces: number;
3023
+ compliance_percentage?: number;
3024
+ }
3025
+ interface WorkspacePerformance {
3026
+ workspace_name: string;
3027
+ workspace_uuid: string;
3028
+ avg_efficiency?: number;
3029
+ last_5_days: {
3030
+ date: string;
3031
+ performance_score: 0 | 1 | 2;
3032
+ efficiency?: number;
3033
+ }[];
3034
+ }
3035
+ interface DayData$2 {
3036
+ date: Date;
3037
+ dayShift: PerformanceData;
3038
+ nightShift: PerformanceData;
3039
+ }
3040
+ interface LineMonthlyPdfGeneratorProps {
3041
+ lineId: string;
3042
+ lineName: string;
3043
+ monthlyData: DayData$2[];
3044
+ underperformingWorkspaces: {
3045
+ dayShift: WorkspacePerformance[];
3046
+ nightShift: WorkspacePerformance[];
3047
+ };
3048
+ selectedMonth: number;
3049
+ selectedYear: number;
3050
+ selectedShift: 'day' | 'night';
3051
+ className?: string;
3052
+ }
3053
+ declare const LineMonthlyPdfGenerator: React__default.FC<LineMonthlyPdfGeneratorProps>;
3054
+
2678
3055
  interface LineWhatsAppShareProps {
2679
3056
  lineInfo: LineInfo;
2680
3057
  className?: string;
@@ -2831,13 +3208,13 @@ interface ShiftData {
2831
3208
  idealOutput: number;
2832
3209
  rank: number;
2833
3210
  }
2834
- interface DayData {
3211
+ interface DayData$1 {
2835
3212
  date: Date;
2836
3213
  dayShift: ShiftData;
2837
3214
  nightShift: ShiftData;
2838
3215
  }
2839
3216
  interface WorkspaceHistoryCalendarProps {
2840
- data: DayData[];
3217
+ data: DayData$1[];
2841
3218
  onDateSelect: (date: string) => void;
2842
3219
  month: number;
2843
3220
  year: number;
@@ -2861,6 +3238,38 @@ interface WorkspacePdfGeneratorProps {
2861
3238
  }
2862
3239
  declare const WorkspacePdfGenerator: React__default.FC<WorkspacePdfGeneratorProps>;
2863
3240
 
3241
+ interface DayData {
3242
+ date: Date;
3243
+ dayShift: {
3244
+ efficiency: number;
3245
+ output: number;
3246
+ cycleTime: number;
3247
+ pph: number;
3248
+ pphThreshold: number;
3249
+ idealOutput: number;
3250
+ rank: number;
3251
+ };
3252
+ nightShift: {
3253
+ efficiency: number;
3254
+ output: number;
3255
+ cycleTime: number;
3256
+ pph: number;
3257
+ pphThreshold: number;
3258
+ idealOutput: number;
3259
+ rank: number;
3260
+ };
3261
+ }
3262
+ interface WorkspaceMonthlyPdfGeneratorProps {
3263
+ workspaceId: string;
3264
+ workspaceName: string;
3265
+ monthlyData: DayData[];
3266
+ selectedMonth: number;
3267
+ selectedYear: number;
3268
+ selectedShift: 'day' | 'night';
3269
+ className?: string;
3270
+ }
3271
+ declare const WorkspaceMonthlyPdfGenerator: React__default.FC<WorkspaceMonthlyPdfGeneratorProps>;
3272
+
2864
3273
  interface WorkspaceMetricCardsProps {
2865
3274
  workspace: WorkspaceDetailedMetrics;
2866
3275
  className?: string;
@@ -2876,7 +3285,6 @@ declare const LiveTimer: React__default.FC;
2876
3285
  /**
2877
3286
  * Types for BottlenecksContent component
2878
3287
  */
2879
-
2880
3288
  /**
2881
3289
  * Props for the BottlenecksContent component
2882
3290
  */
@@ -2893,25 +3301,17 @@ interface BottlenecksContentProps {
2893
3301
  * Optional date to fetch clips for (defaults to current date)
2894
3302
  */
2895
3303
  date?: string;
2896
- /**
2897
- * Optional S3 service configuration
2898
- */
2899
- s3Config?: S3ServiceConfig;
2900
3304
  /**
2901
3305
  * Optional className for styling
2902
3306
  */
2903
3307
  className?: string;
2904
- /**
2905
- * Optional custom fetch function for clips
2906
- */
2907
- customFetchClips?: (workspaceId: string, date?: string) => Promise<BottleneckVideo[]>;
2908
3308
  }
2909
3309
  /**
2910
- * Filter type for bottleneck clips
3310
+ * Filter type for bottleneck clips - expanded for new video types
2911
3311
  */
2912
- type BottleneckFilterType = 'all' | 'high' | 'medium' | 'low' | 'low_value';
3312
+ type BottleneckFilterType = 'all' | 'high' | 'medium' | 'low' | 'low_value' | 'sop_deviations' | 'best_cycle_time' | 'worst_cycle_time' | 'long_cycle_time';
2913
3313
  /**
2914
- * Clip counts for each type/severity
3314
+ * Clip counts for each type/severity - updated for new video types
2915
3315
  */
2916
3316
  interface ClipCounts {
2917
3317
  bottlenecks: number;
@@ -2919,14 +3319,17 @@ interface ClipCounts {
2919
3319
  highSeverity: number;
2920
3320
  mediumSeverity: number;
2921
3321
  lowSeverity: number;
3322
+ sopDeviations: number;
3323
+ bestCycleTimes: number;
3324
+ worstCycleTimes: number;
2922
3325
  total: number;
2923
3326
  }
2924
3327
 
2925
3328
  /**
2926
3329
  * BottlenecksContent Component
2927
3330
  *
2928
- * Displays video clips of bottlenecks and low-value activities for a workspace.
2929
- * This component directly uses S3 to fetch and display videos without requiring an API endpoint.
3331
+ * Displays HLS video clips of bottlenecks and low-value activities for a workspace.
3332
+ * Uses the S3ClipsService to fetch and display clips with CloudFront delivery.
2930
3333
  */
2931
3334
  declare const BottlenecksContent: React__default.FC<BottlenecksContentProps>;
2932
3335
 
@@ -3001,27 +3404,24 @@ interface VideoGridViewProps {
3001
3404
  videoSources?: {
3002
3405
  defaultHlsUrl?: string;
3003
3406
  workspaceHlsUrls?: Record<string, string>;
3004
- mp4VideoMapping?: Record<string, string>;
3005
- };
3006
- streamConfig?: {
3007
- maxConcurrentInitializations?: number;
3008
- staggerDelay?: number;
3009
- initialPlayDelay?: number;
3010
- maxPlayRetries?: number;
3011
- maxFatalErrorRetries?: number;
3012
- errorRetryBaseDelay?: number;
3013
- maxErrorRetryDelay?: number;
3014
- streamHealthCheckInterval?: number;
3015
- debugCropRegions?: boolean;
3016
3407
  };
3017
- hlsConfig?: Partial<Record<string, any>>;
3018
3408
  }
3019
3409
  /**
3020
- * VideoGridView component for displaying a grid of workspace video streams
3021
- * with efficiency metrics and controls.
3410
+ * VideoGridView component - Simplified version using enterprise-grade HLS streaming
3022
3411
  */
3023
3412
  declare const VideoGridView: React__default.FC<VideoGridViewProps>;
3024
3413
 
3414
+ interface VideoCardProps {
3415
+ workspace: WorkspaceMetrics;
3416
+ hlsUrl: string;
3417
+ shouldPlay: boolean;
3418
+ onClick?: () => void;
3419
+ onFatalError?: () => void;
3420
+ isVeryLowEfficiency?: boolean;
3421
+ className?: string;
3422
+ }
3423
+ declare const VideoCard: React__default.FC<VideoCardProps>;
3424
+
3025
3425
  declare const GridComponentsPlaceholder: {};
3026
3426
 
3027
3427
  interface KPIGridProps {
@@ -3211,7 +3611,10 @@ interface HeaderProps {
3211
3611
  }
3212
3612
  declare const Header: React__default.FC<HeaderProps>;
3213
3613
 
3214
- declare const withAuth: <P extends object>(WrappedComponent: React$1.ComponentType<P>) => (props: P) => react_jsx_runtime.JSX.Element;
3614
+ declare const withAuth: <P extends object>(WrappedComponent: React$1.ComponentType<P>, options?: {
3615
+ redirectTo?: string;
3616
+ requireAuth?: boolean;
3617
+ }) => (props: P) => react_jsx_runtime.JSX.Element | null;
3215
3618
 
3216
3619
  declare const DEFAULT_HLS_CONFIG: {
3217
3620
  maxBufferLength: number;
@@ -3304,6 +3707,27 @@ interface WorkspaceMonthlyDataFetcherProps {
3304
3707
  */
3305
3708
  declare const WorkspaceMonthlyDataFetcher: React__default.FC<WorkspaceMonthlyDataFetcherProps>;
3306
3709
 
3710
+ type CoreComponents = {
3711
+ Card: any;
3712
+ CardHeader: any;
3713
+ CardTitle: any;
3714
+ CardDescription: any;
3715
+ CardContent: any;
3716
+ CardFooter: any;
3717
+ Button: any;
3718
+ HourlyOutputChart: any;
3719
+ };
3720
+ declare const useRegistry: () => CoreComponents;
3721
+ interface RegistryProviderProps {
3722
+ children: ReactNode;
3723
+ components?: Partial<CoreComponents>;
3724
+ }
3725
+ declare function RegistryProvider({ children, components }: RegistryProviderProps): react_jsx_runtime.JSX.Element;
3726
+ declare function withRegistry<P extends object>(Component: React__default.ComponentType<P>): {
3727
+ (props: P): react_jsx_runtime.JSX.Element;
3728
+ displayName: string;
3729
+ };
3730
+
3307
3731
  interface HomeViewProps {
3308
3732
  /**
3309
3733
  * UUID of the default line to display
@@ -3341,13 +3765,13 @@ interface HomeViewProps {
3341
3765
  * HomeView component - Main dashboard landing page showing factory overview with workspace grid
3342
3766
  */
3343
3767
  declare function HomeView({ defaultLineId, factoryViewId, line1Uuid, line2Uuid, lineNames, videoSources, factoryName }: HomeViewProps): React__default.ReactNode;
3344
- declare const AuthenticatedHomeView: (props: HomeViewProps) => react_jsx_runtime.JSX.Element;
3768
+ declare const AuthenticatedHomeView: (props: HomeViewProps) => react_jsx_runtime.JSX.Element | null;
3345
3769
 
3346
3770
  /**
3347
3771
  * FactoryView Component - Displays factory-level overview with metrics for each production line
3348
3772
  */
3349
3773
  declare const FactoryView: React__default.FC<FactoryViewProps>;
3350
- declare const AuthenticatedFactoryView: (props: FactoryViewProps) => react_jsx_runtime.JSX.Element;
3774
+ declare const AuthenticatedFactoryView: (props: FactoryViewProps) => react_jsx_runtime.JSX.Element | null;
3351
3775
 
3352
3776
  /**
3353
3777
  * LeaderboardIndexView component for displaying a list of lines that can be selected for the leaderboard
@@ -3387,7 +3811,7 @@ interface TargetsViewProps {
3387
3811
  */
3388
3812
  declare const TargetsView: React__default.FC<TargetsViewProps>;
3389
3813
 
3390
- declare const AuthenticatedTargetsView: (props: TargetsViewProps) => react_jsx_runtime.JSX.Element;
3814
+ declare const AuthenticatedTargetsView: (props: TargetsViewProps) => react_jsx_runtime.JSX.Element | null;
3391
3815
 
3392
3816
  /**
3393
3817
  * ShiftsView component for managing day and night shift configurations
@@ -3524,6 +3948,10 @@ interface WorkspaceDetailViewProps {
3524
3948
  */
3525
3949
  renderHeaderActions?: (workspace: any) => ReactNode;
3526
3950
  }
3527
- declare const WrappedComponent: (props: WorkspaceDetailViewProps) => react_jsx_runtime.JSX.Element;
3951
+ declare const WrappedComponent: (props: WorkspaceDetailViewProps) => react_jsx_runtime.JSX.Element | null;
3952
+
3953
+ declare const AIAgentView: React__default.FC;
3954
+
3955
+ declare const ProfileView: React__default.FC;
3528
3956
 
3529
- export { ACTION_NAMES, type Action, type ActionName, type ActionService, type ActionThreshold, type AnalyticsConfig, type AuthConfig, AuthProvider, type AuthUser, AuthenticatedFactoryView, AuthenticatedHomeView, AuthenticatedTargetsView, BarChart, type BarChartDataItem, type BarChartProps, type BarProps, BaseHistoryCalendar, type BaseLineMetric, type BasePerformanceMetric, type BottleneckFilterType, type BottleneckVideo, BottlenecksContent, type BottlenecksContentProps, type BreadcrumbItem, type Break, type BreakRowProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type ClipCounts, type ComponentOverride, type CurrentShiftResult, CycleTimeChart, type CycleTimeChartProps, CycleTimeOverTimeChart, type CycleTimeOverTimeChartProps, DEFAULT_ANALYTICS_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_CONFIG, DEFAULT_DATABASE_CONFIG, DEFAULT_DATE_TIME_CONFIG, DEFAULT_ENDPOINTS_CONFIG, DEFAULT_ENTITY_CONFIG, DEFAULT_SHIFT_CONFIG, DEFAULT_THEME_CONFIG, DEFAULT_WORKSPACE_CONFIG, DEFAULT_WORKSPACE_POSITIONS, type DashboardConfig, DashboardHeader, type DashboardKPIs, DashboardLayout, type DashboardLayoutProps, DashboardOverridesProvider, DashboardProvider, type DashboardService, type DatabaseConfig, DateDisplay, type DateTimeConfig, DateTimeDisplay, type DayHistoryData, type DaySummaryData, EmptyStateMessage, type EndpointsConfig, type EntityConfig, type FactoryOverviewData, FactoryView, type FactoryViewProps, type FormatNumberOptions, GridComponentsPlaceholder, Header, type HeaderProps, type HistoryCalendarProps, HomeView, type HomeViewProps, type HookOverride, HourlyOutputChart, type HourlyOutputChartProps, type HourlyPerformance, type ISTDateProps, ISTTimer, type ISTTimerProps, KPICard, type KPICardProps, KPIDetailView, KPIGrid, type KPIGridProps, KPIHeader, type KPIHeaderProps, KPISection, type KPITrend, LINE_1_UUID, LargeOutputProgressChart, type LargeOutputProgressChartProps, LeaderboardDetailView, type LeaderboardDetailViewProps, type LeaderboardEntry, LeaderboardIndexView, type LeaderboardIndexViewProps, type LeaderboardLineOption, Legend, LineChart, type LineChartDataItem, type LineChartProps, type LineDetails, type LineDisplayData, LineHistoryCalendar, type LineHistoryCalendarProps, type LineInfo, type LineMetrics, LineMonthlyHistory, type LineMonthlyHistoryProps, type LineMonthlyMetric, type LineNavigationParams, LinePdfExportButton, type LinePdfExportButtonProps, LinePdfGenerator, type LinePdfGeneratorProps, type LineProps, type LineShiftConfig, type LineSnapshot, type LineThreshold, LineWhatsAppShareButton, type LineWhatsAppShareProps, LiveTimer, LoadingOverlay, LoadingPage, LoadingSpinner, MainLayout, type MainLayoutProps, type Metric, MetricCard, type MetricsError, type NavItem, type NavItemTrackingEvent, NoWorkspaceData, type OperatorData, type OperatorInfo, OutputProgressChart, type OutputProgressChartProps, type OverridesMap, type OverviewLineMetric, type OverviewWorkspaceMetric, PageHeader, type PageHeaderProps, type PageOverride, type PoorPerformingWorkspace, type ProfileMenuItem, type QualityMetric, type QualityOverview, type QualityService, type RealtimeService, type RoutePath, S3Service, type S3ServiceConfig, SOPComplianceChart, type SOPComplianceChartProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, type ShiftConfig, type ShiftConfiguration, type ShiftConfigurationRecord, type ShiftData$2 as ShiftData, ShiftDisplay, type ShiftHistoryData, type ShiftHoursMap, type ShiftPanelProps, type ShiftSummaryData, type ShiftTime, ShiftsView, type ShiftsViewProps, SideNavBar, type SideNavBarProps, type SimpleLine, SingleVideoStream, type SingleVideoStreamProps, Skeleton, type SupabaseClient, SupabaseProvider, type Target, TargetWorkspaceGrid, type TargetWorkspaceGridProps, TargetsView, type ThemeColorValue, type ThemeConfig, TimeDisplay, type TrackingEventProperties, type UnderperformingWorkspace, type UnderperformingWorkspaces, type UseDashboardMetricsProps, type UseFactoryOverviewOptions, type UseFormatNumberResult, type UseRealtimeLineMetricsProps, type UseTargetsOptions, type UseWorkspaceOperatorsOptions, type UserProfileConfig, VideoGridView, VideoPreloader, WORKSPACE_POSITIONS, type WhatsAppSendResult, WhatsAppShareButton, type WhatsappService, type Workspace, type WorkspaceActionUpdate, WorkspaceCard, type WorkspaceCardProps, type WorkspaceConfig, WrappedComponent as WorkspaceDetailView, type WorkspaceDetailedMetrics, WorkspaceGrid, WorkspaceGridItem, type WorkspaceGridItemProps, WorkspaceHistoryCalendar, WorkspaceMetricCards, type WorkspaceMetricCardsProps, type WorkspaceMetrics, WorkspaceMonthlyDataFetcher, type WorkspaceMonthlyDataFetcherProps, type WorkspaceMonthlyMetric, type WorkspaceNavigationParams, WorkspacePdfExportButton, type WorkspacePdfExportButtonProps, WorkspacePdfGenerator, type WorkspacePdfGeneratorProps, type WorkspacePosition, type WorkspaceQualityData, type WorkspaceUrlMapping, WorkspaceWhatsAppShareButton, type WorkspaceWhatsAppShareProps, actionService, apiUtils, authCoreService, cn, createSupabaseClient, dashboardService, formatDateInZone, formatDateTimeInZone, formatISTDate, formatTimeInZone, fromUrlFriendlyName, getAnonClient, getCameraNumber, getCompanyMetricsTableName, getConfigurableShortWorkspaceDisplayName, getConfigurableWorkspaceDisplayName, getCurrentShift, getCurrentTimeInZone, getDashboardHeaderTimeInZone, getDaysDifferenceInZone, getDefaultCameraStreamUrl, getDefaultTabForWorkspace, getMetricsTablePrefix, getOperationalDate, getShortWorkspaceDisplayName, getStoredWorkspaceMappings, getWorkspaceDisplayName, getWorkspaceFromUrl, getWorkspaceNavigationParams, identifyCoreUser, initializeCoreMixpanel, isTransitionPeriod, isValidLineInfoPayload, isValidWorkspaceDetailedMetricsPayload, isValidWorkspaceMetricsPayload, mergeWithDefaultConfig, preloadVideoUrl, preloadVideosUrl, qualityService, realtimeService, resetCoreMixpanel, storeWorkspaceMapping, toUrlFriendlyName, trackCoreEvent, trackCorePageView, useAnalyticsConfig, useAuth, useAuthConfig, useComponentOverride, useCustomConfig, useDashboardConfig, useDashboardMetrics, useDatabaseConfig, useDateFormatter, useDateTimeConfig, useEndpointsConfig, useEntityConfig, useFactoryOverviewMetrics, useFeatureFlags, useFormatNumber, useHistoricWorkspaceMetrics, useHookOverride, useLeaderboardMetrics, useLineDetailedMetrics, useLineKPIs, useLineMetrics, useLineWorkspaceMetrics, useMetrics, useNavigation, useOverrides, usePageOverride, useRealtimeLineMetrics, useShiftConfig, useShifts, useSupabase, useTargets, useTheme, useThemeConfig, useWorkspaceConfig, useWorkspaceDetailedMetrics, useWorkspaceMetrics, useWorkspaceNavigation, useWorkspaceOperators, videoPreloader, whatsappService, withAuth, workspaceDisplayNames, workspaceService };
3957
+ export { ACTION_NAMES, AIAgentView, type Action, type ActionName, type ActionService, type ActionThreshold, type AnalyticsConfig, type AuthConfig, AuthProvider, type AuthUser, AuthenticatedFactoryView, AuthenticatedHomeView, AuthenticatedTargetsView, BarChart, type BarChartDataItem, type BarChartProps, type BarProps, BaseHistoryCalendar, type BaseLineMetric, type BasePerformanceMetric, type BottleneckFilterType, type BottleneckVideo, type BottleneckVideoData, BottlenecksContent, type BottlenecksContentProps, type BreadcrumbItem, type Break, type BreakRowProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type ClipCounts, type ComponentOverride, type CoreComponents, type CurrentShiftResult, CycleTimeChart, type CycleTimeChartProps, CycleTimeOverTimeChart, type CycleTimeOverTimeChartProps, DEFAULT_ANALYTICS_CONFIG, DEFAULT_AUTH_CONFIG, DEFAULT_CONFIG, DEFAULT_DATABASE_CONFIG, DEFAULT_DATE_TIME_CONFIG, DEFAULT_ENDPOINTS_CONFIG, DEFAULT_ENTITY_CONFIG, DEFAULT_SHIFT_CONFIG, DEFAULT_THEME_CONFIG, DEFAULT_WORKSPACE_CONFIG, DEFAULT_WORKSPACE_POSITIONS, type DashboardConfig, DashboardHeader, type DashboardKPIs, DashboardLayout, type DashboardLayoutProps, DashboardOverridesProvider, DashboardProvider, type DashboardService, type DatabaseConfig, DateDisplay, type DateTimeConfig, DateTimeDisplay, type DayHistoryData, type DaySummaryData, EmptyStateMessage, type EndpointsConfig, type EntityConfig, type FactoryOverviewData, FactoryView, type FactoryViewProps, type FormatNumberOptions, GridComponentsPlaceholder, Header, type HeaderProps, type HistoryCalendarProps, HomeView, type HomeViewProps, type HookOverride, HourlyOutputChart, type HourlyOutputChartProps, type HourlyPerformance, type ISTDateProps, ISTTimer, type ISTTimerProps, KPICard, type KPICardProps, KPIDetailView, KPIGrid, type KPIGridProps, KPIHeader, type KPIHeaderProps, KPISection, type KPITrend, LINE_1_UUID, LargeOutputProgressChart, type LargeOutputProgressChartProps, LeaderboardDetailView, type LeaderboardDetailViewProps, type LeaderboardEntry, LeaderboardIndexView, type LeaderboardIndexViewProps, type LeaderboardLineOption, Legend, LineChart, type LineChartDataItem, type LineChartProps, type LineDetails, type LineDisplayData, LineHistoryCalendar, type LineHistoryCalendarProps, type LineInfo, type LineMetrics, LineMonthlyHistory, type LineMonthlyHistoryProps, type LineMonthlyMetric, LineMonthlyPdfGenerator, type LineMonthlyPdfGeneratorProps, type LineNavigationParams, LinePdfExportButton, type LinePdfExportButtonProps, LinePdfGenerator, type LinePdfGeneratorProps, type LineProps, type LineShiftConfig, type LineSnapshot, type LineThreshold, LineWhatsAppShareButton, type LineWhatsAppShareProps, LiveTimer, LoadingOverlay, LoadingPage, LoadingSpinner, MainLayout, type MainLayoutProps, type Metric, MetricCard, type MetricsError, type NavItem, type NavItemTrackingEvent, NoWorkspaceData, type OperatorData, type OperatorInfo, OptifyeAgentClient, type OptifyeAgentContext, type OptifyeAgentRequest, type OptifyeAgentResponse, OutputProgressChart, type OutputProgressChartProps, type OverridesMap, type OverviewLineMetric, type OverviewWorkspaceMetric, PageHeader, type PageHeaderProps, type PageOverride, type PoorPerformingWorkspace, type ProfileMenuItem, ProfileView, type QualityMetric, type QualityOverview, type QualityService, type RealtimeService, RegistryProvider, type RoutePath, type S3ClipsAPIParams, type S3Config, type S3ListObjectsParams, S3Service, type S3ServiceConfig, SOPComplianceChart, type SOPComplianceChartProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, type ShiftConfig, type ShiftConfiguration, type ShiftConfigurationRecord, type ShiftData$2 as ShiftData, ShiftDisplay, type ShiftHistoryData, type ShiftHoursMap, type ShiftPanelProps, type ShiftSummaryData, type ShiftTime, ShiftsView, type ShiftsViewProps, SideNavBar, type SideNavBarProps, type SimpleLine, SingleVideoStream, type SingleVideoStreamProps, Skeleton, type SupabaseClient, SupabaseProvider, type Target, TargetWorkspaceGrid, type TargetWorkspaceGridProps, TargetsView, type ThemeColorValue, type ThemeConfig, TimeDisplay, type TrackingEventProperties, type UnderperformingWorkspace, type UnderperformingWorkspaces, type UseDashboardMetricsProps, type UseFactoryOverviewOptions, type UseFormatNumberResult, type UseRealtimeLineMetricsProps, type UseTargetsOptions, type UseWorkspaceOperatorsOptions, type UserProfileConfig, VideoCard, VideoGridView, type VideoMetadata, VideoPreloader, type VideoSeverity, type VideoSummary, type VideoType, WORKSPACE_POSITIONS, type WhatsAppSendResult, WhatsAppShareButton, type WhatsappService, type Workspace, type WorkspaceActionUpdate, WorkspaceCard, type WorkspaceCardProps, type WorkspaceConfig, WrappedComponent as WorkspaceDetailView, type WorkspaceDetailedMetrics, WorkspaceGrid, WorkspaceGridItem, type WorkspaceGridItemProps, WorkspaceHistoryCalendar, WorkspaceMetricCards, type WorkspaceMetricCardsProps, type WorkspaceMetrics, WorkspaceMonthlyDataFetcher, type WorkspaceMonthlyDataFetcherProps, type WorkspaceMonthlyMetric, WorkspaceMonthlyPdfGenerator, type WorkspaceMonthlyPdfGeneratorProps, type WorkspaceNavigationParams, WorkspacePdfExportButton, type WorkspacePdfExportButtonProps, WorkspacePdfGenerator, type WorkspacePdfGeneratorProps, type WorkspacePosition, type WorkspaceQualityData, type WorkspaceUrlMapping, WorkspaceWhatsAppShareButton, type WorkspaceWhatsAppShareProps, actionService, apiUtils, authCoreService, authOTPService, clearS3VideoCache, clearS3VideoFromCache, clearWorkspaceDisplayNamesCache, cn, createSupabaseClient, createThrottledReload, dashboardService, formatDateInZone, formatDateTimeInZone, formatISTDate, formatIdleTime, formatTimeInZone, fromUrlFriendlyName, getAllWorkspaceDisplayNamesAsync, getAnonClient, getCameraNumber, getCompanyMetricsTableName, getConfigurableShortWorkspaceDisplayName, getConfigurableWorkspaceDisplayName, getCurrentShift, getCurrentTimeInZone, getDashboardHeaderTimeInZone, getDaysDifferenceInZone, getDefaultCameraStreamUrl, getDefaultTabForWorkspace, getManufacturingInsights, getMetricsTablePrefix, getOperationalDate, getS3SignedUrl, getS3VideoSrc, getShortWorkspaceDisplayName, getShortWorkspaceDisplayNameAsync, getStoredWorkspaceMappings, getWorkspaceDisplayName, getWorkspaceDisplayNameAsync, getWorkspaceDisplayNamesMap, getWorkspaceFromUrl, getWorkspaceNavigationParams, identifyCoreUser, initializeCoreMixpanel, isTransitionPeriod, isValidLineInfoPayload, isValidWorkspaceDetailedMetricsPayload, isValidWorkspaceMetricsPayload, isWorkspaceDisplayNamesLoaded, isWorkspaceDisplayNamesLoading, mergeWithDefaultConfig, optifyeAgentClient, preloadS3Video, preloadS3VideoUrl, preloadS3VideosUrl, preloadVideoUrl, preloadVideosUrl, qualityService, realtimeService, refreshWorkspaceDisplayNames, resetCoreMixpanel, s3VideoPreloader, storeWorkspaceMapping, throttledReloadDashboard, toUrlFriendlyName, trackCoreEvent, trackCorePageView, useAnalyticsConfig, useAuth, useAuthConfig, useComponentOverride, useCustomConfig, useDashboardConfig, useDashboardMetrics, useDatabaseConfig, useDateFormatter, useDateTimeConfig, useEndpointsConfig, useEntityConfig, useFactoryOverviewMetrics, useFeatureFlags, useFormatNumber, useHistoricWorkspaceMetrics, useHlsStream, useHookOverride, useLeaderboardMetrics, useLineDetailedMetrics, useLineKPIs, useLineMetrics, useLineWorkspaceMetrics, useMetrics, useNavigation, useOverrides, usePageOverride, useRealtimeLineMetrics, useRegistry, useShiftConfig, useShifts, useSupabase, useTargets, useTheme, useThemeConfig, useWorkspaceConfig, useWorkspaceDetailedMetrics, useWorkspaceDisplayName, useWorkspaceDisplayNames, useWorkspaceDisplayNamesMap, useWorkspaceMetrics, useWorkspaceNavigation, useWorkspaceOperators, videoPreloader, whatsappService, withAuth, withRegistry, workspaceService };