@optifye/dashboard-core 6.5.12 → 6.6.2

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
@@ -389,6 +389,8 @@ interface AuthUser {
389
389
  email?: string;
390
390
  role?: string;
391
391
  role_level?: 'owner' | 'plant_head' | 'supervisor' | 'optifye';
392
+ company_id?: string;
393
+ first_login_completed?: boolean;
392
394
  }
393
395
 
394
396
  /**
@@ -1126,6 +1128,66 @@ interface SKUListProps {
1126
1128
  isLoading?: boolean;
1127
1129
  }
1128
1130
 
1131
+ /**
1132
+ * Supervisor-related type definitions for the dashboard
1133
+ */
1134
+ interface Supervisor {
1135
+ /** Unique identifier for the supervisor */
1136
+ id: string;
1137
+ /** Full name of the supervisor */
1138
+ name: string;
1139
+ /** Email address of the supervisor */
1140
+ email?: string;
1141
+ /** Phone number of the supervisor */
1142
+ phone?: string;
1143
+ /** Whether the supervisor is currently active */
1144
+ isActive: boolean;
1145
+ /** Date when the supervisor was created */
1146
+ createdAt?: string;
1147
+ /** Date when the supervisor was last updated */
1148
+ updatedAt?: string;
1149
+ }
1150
+ interface Line$1 {
1151
+ /** Unique identifier for the line */
1152
+ id: string;
1153
+ /** Name of the line */
1154
+ name: string;
1155
+ /** Company ID that owns this line */
1156
+ companyId: string;
1157
+ /** Currently assigned supervisor ID */
1158
+ supervisorId?: string;
1159
+ /** Location of the line */
1160
+ location?: string;
1161
+ /** Whether the line is currently active */
1162
+ isActive: boolean;
1163
+ /** Date when the line was created */
1164
+ createdAt?: string;
1165
+ /** Date when the line was last updated */
1166
+ updatedAt?: string;
1167
+ /** Factory ID that the line belongs to */
1168
+ factoryId?: string;
1169
+ }
1170
+ interface SupervisorAssignment {
1171
+ /** Line ID */
1172
+ lineId: string;
1173
+ /** Line name for display */
1174
+ lineName: string;
1175
+ /** Currently assigned supervisor */
1176
+ currentSupervisor?: Supervisor;
1177
+ /** Available supervisors for assignment */
1178
+ availableSupervisors: Supervisor[];
1179
+ }
1180
+ interface SupervisorManagementData {
1181
+ /** List of line-supervisor assignments */
1182
+ assignments: SupervisorAssignment[];
1183
+ /** All available supervisors */
1184
+ allSupervisors: Supervisor[];
1185
+ /** Loading state */
1186
+ loading: boolean;
1187
+ /** Error state */
1188
+ error?: string;
1189
+ }
1190
+
1129
1191
  /**
1130
1192
  * S3 Clips Service - Secure Version
1131
1193
  * Uses API routes instead of direct S3 access
@@ -1139,7 +1201,7 @@ interface SKUListProps {
1139
1201
  * 3. Ensure API routes are deployed
1140
1202
  */
1141
1203
 
1142
- interface VideoIndexEntry {
1204
+ interface VideoIndexEntry$1 {
1143
1205
  uri: string;
1144
1206
  category: string;
1145
1207
  timestamp: string;
@@ -1148,9 +1210,9 @@ interface VideoIndexEntry {
1148
1210
  date: string;
1149
1211
  shiftId: string;
1150
1212
  }
1151
- interface VideoIndex {
1152
- byCategory: Map<string, VideoIndexEntry[]>;
1153
- allVideos: VideoIndexEntry[];
1213
+ interface VideoIndex$1 {
1214
+ byCategory: Map<string, VideoIndexEntry$1[]>;
1215
+ allVideos: VideoIndexEntry$1[];
1154
1216
  counts: Record<string, number>;
1155
1217
  workspaceId: string;
1156
1218
  date: string;
@@ -1158,15 +1220,15 @@ interface VideoIndex {
1158
1220
  lastUpdated: Date;
1159
1221
  _debugId?: string;
1160
1222
  }
1161
- interface ClipCountsWithIndex {
1223
+ interface ClipCountsWithIndex$2 {
1162
1224
  counts: Record<string, number>;
1163
- videoIndex: VideoIndex;
1225
+ videoIndex: VideoIndex$1;
1164
1226
  }
1165
1227
  /**
1166
1228
  * S3 Clips Service - Secure Implementation
1167
1229
  * All S3 operations go through secure API routes
1168
1230
  */
1169
- declare class S3ClipsService {
1231
+ declare class S3ClipsService$1 {
1170
1232
  private apiClient;
1171
1233
  private config;
1172
1234
  private readonly defaultLimitPerCategory;
@@ -1207,12 +1269,12 @@ declare class S3ClipsService {
1207
1269
  * Get clip counts
1208
1270
  */
1209
1271
  getClipCounts(workspaceId: string, date: string, shiftId: string | number): Promise<Record<string, number>>;
1210
- getClipCounts(workspaceId: string, date: string, shiftId: string | number, buildIndex: true): Promise<ClipCountsWithIndex>;
1272
+ getClipCounts(workspaceId: string, date: string, shiftId: string | number, buildIndex: true): Promise<ClipCountsWithIndex$2>;
1211
1273
  /**
1212
1274
  * Get clip counts with cache-first strategy
1213
1275
  */
1214
1276
  getClipCountsCacheFirst(workspaceId: string, date: string, shiftId: string | number): Promise<Record<string, number>>;
1215
- getClipCountsCacheFirst(workspaceId: string, date: string, shiftId: string | number, buildIndex: true): Promise<ClipCountsWithIndex>;
1277
+ getClipCountsCacheFirst(workspaceId: string, date: string, shiftId: string | number, buildIndex: true): Promise<ClipCountsWithIndex$2>;
1216
1278
  /**
1217
1279
  * Get first clip for category
1218
1280
  */
@@ -1220,7 +1282,7 @@ declare class S3ClipsService {
1220
1282
  /**
1221
1283
  * Get video from index (for compatibility)
1222
1284
  */
1223
- getVideoFromIndex(videoIndex: VideoIndex, category: string, index: number, includeCycleTime?: boolean, includeMetadata?: boolean): Promise<BottleneckVideoData | null>;
1285
+ getVideoFromIndex(videoIndex: VideoIndex$1, category: string, index: number, includeCycleTime?: boolean, includeMetadata?: boolean): Promise<BottleneckVideoData | null>;
1224
1286
  /**
1225
1287
  * Get clip by index
1226
1288
  */
@@ -1253,6 +1315,17 @@ declare class S3ClipsService {
1253
1315
  * Create empty video index for compatibility
1254
1316
  */
1255
1317
  private createEmptyVideoIndex;
1318
+ /**
1319
+ * Get clip by ID
1320
+ */
1321
+ getClipById(clipId: string, sopCategories?: SOPCategory[]): Promise<BottleneckVideoData | null>;
1322
+ /**
1323
+ * Get neighboring clips
1324
+ */
1325
+ getNeighboringClips(workspaceId: string, date: string, shiftId: string | number, category: string, currentClipId: string, sopCategories?: SOPCategory[]): Promise<{
1326
+ previous: BottleneckVideoData | null;
1327
+ next: BottleneckVideoData | null;
1328
+ }>;
1256
1329
  /**
1257
1330
  * Cleanup
1258
1331
  */
@@ -1316,7 +1389,7 @@ interface PrefetchRequest {
1316
1389
  /**
1317
1390
  * Promise for the prefetch operation
1318
1391
  */
1319
- promise: Promise<ClipCountsWithIndex | null>;
1392
+ promise: Promise<ClipCountsWithIndex$2 | null>;
1320
1393
  /**
1321
1394
  * Current status of the request
1322
1395
  */
@@ -1324,7 +1397,7 @@ interface PrefetchRequest {
1324
1397
  /**
1325
1398
  * Cached data (null until available)
1326
1399
  */
1327
- data: ClipCountsWithIndex | null;
1400
+ data: ClipCountsWithIndex$2 | null;
1328
1401
  /**
1329
1402
  * Any error that occurred
1330
1403
  */
@@ -1338,9 +1411,9 @@ interface PrefetchRequest {
1338
1411
  */
1339
1412
  subscribers: Set<string>;
1340
1413
  }
1341
- type StatusChangeCallback$1 = (key: string, status: PrefetchStatus$1, data?: ClipCountsWithIndex | null, error?: Error | null) => void;
1342
- type RenderReadyCallback$1 = (key: string, data: ClipCountsWithIndex) => void;
1343
- type FullyIndexedCallback$1 = (key: string, data: ClipCountsWithIndex) => void;
1414
+ type StatusChangeCallback$1 = (key: string, status: PrefetchStatus$1, data?: ClipCountsWithIndex$2 | null, error?: Error | null) => void;
1415
+ type RenderReadyCallback$1 = (key: string, data: ClipCountsWithIndex$2) => void;
1416
+ type FullyIndexedCallback$1 = (key: string, data: ClipCountsWithIndex$2) => void;
1344
1417
  type ErrorCallback$1 = (key: string, error: Error) => void;
1345
1418
  interface PrefetchSubscriptionCallbacks {
1346
1419
  /**
@@ -1368,7 +1441,7 @@ interface PrefetchStatusResult {
1368
1441
  /**
1369
1442
  * Available data (null until render-ready)
1370
1443
  */
1371
- data: ClipCountsWithIndex | null;
1444
+ data: ClipCountsWithIndex$2 | null;
1372
1445
  /**
1373
1446
  * Any error that occurred
1374
1447
  */
@@ -1448,7 +1521,7 @@ interface UsePrefetchClipCountsResult$1 {
1448
1521
  /**
1449
1522
  * Clip counts data (available when render ready or fully indexed)
1450
1523
  */
1451
- data: ClipCountsWithIndex | null;
1524
+ data: ClipCountsWithIndex$2 | null;
1452
1525
  /**
1453
1526
  * Any error that occurred during prefetching
1454
1527
  */
@@ -1468,7 +1541,7 @@ interface UsePrefetchClipCountsResult$1 {
1468
1541
  /**
1469
1542
  * Manual trigger function for re-prefetching
1470
1543
  */
1471
- prefetchClipCounts: () => Promise<ClipCountsWithIndex | null>;
1544
+ prefetchClipCounts: () => Promise<ClipCountsWithIndex$2 | null>;
1472
1545
  /**
1473
1546
  * Cache key used for this request
1474
1547
  */
@@ -1566,7 +1639,7 @@ interface PrefetchResult {
1566
1639
  /**
1567
1640
  * The prefetched data
1568
1641
  */
1569
- data: ClipCountsWithIndex | null;
1642
+ data: ClipCountsWithIndex$2 | null;
1570
1643
  /**
1571
1644
  * Whether this came from cache
1572
1645
  */
@@ -1603,10 +1676,10 @@ type PrefetchKey = string;
1603
1676
  type SubscriberId = string;
1604
1677
  type CleanupFunction = () => void;
1605
1678
  interface IPrefetchManager {
1606
- prefetch(params: PrefetchParams$1, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex | null>;
1679
+ prefetch(params: PrefetchParams$1, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex$2 | null>;
1607
1680
  getStatus(params: PrefetchParams$1): PrefetchStatusResult;
1608
1681
  isDataAvailable(params: PrefetchParams$1): boolean;
1609
- getCachedData(params: PrefetchParams$1): ClipCountsWithIndex | null;
1682
+ getCachedData(params: PrefetchParams$1): ClipCountsWithIndex$2 | null;
1610
1683
  subscribe(params: PrefetchParams$1, subscriberId: string, callbacks: PrefetchSubscriptionCallbacks): CleanupFunction;
1611
1684
  cancel(params: PrefetchParams$1, subscriberId?: string): void;
1612
1685
  clear(): void;
@@ -1722,6 +1795,10 @@ interface AuthContextType {
1722
1795
  loading: boolean;
1723
1796
  error: Error | null;
1724
1797
  signOut: () => Promise<void>;
1798
+ markFirstLoginCompleted: () => Promise<boolean>;
1799
+ showOnboarding: boolean;
1800
+ setShowOnboarding: (show: boolean) => void;
1801
+ completeOnboarding: () => Promise<void>;
1725
1802
  }
1726
1803
  declare const useAuth: () => AuthContextType;
1727
1804
  declare const AuthProvider: React__default.FC<{
@@ -2405,7 +2482,7 @@ declare const useTargets: (options?: UseTargetsOptions) => {
2405
2482
  * @property {string} [createdAt] - Timestamp of creation.
2406
2483
  * @property {string} [updatedAt] - Timestamp of last update.
2407
2484
  */
2408
- interface ShiftData$2 {
2485
+ interface ShiftData$3 {
2409
2486
  id: string | number;
2410
2487
  name: string;
2411
2488
  startTime: string;
@@ -2436,7 +2513,7 @@ interface ShiftData$2 {
2436
2513
  * // Render shifts information
2437
2514
  */
2438
2515
  declare const useShifts: () => {
2439
- shifts: ShiftData$2[];
2516
+ shifts: ShiftData$3[];
2440
2517
  isLoading: boolean;
2441
2518
  error: MetricsError | null;
2442
2519
  refetch: () => Promise<void>;
@@ -2794,7 +2871,7 @@ declare const useSKUs: (companyId: string) => UseSKUsReturn;
2794
2871
 
2795
2872
  /**
2796
2873
  * Hook to check if the current user can save targets
2797
- * Only users with 'owner' role can save targets
2874
+ * TEMPORARILY DISABLED: All users can save targets
2798
2875
  */
2799
2876
  declare const useCanSaveTargets: () => boolean;
2800
2877
 
@@ -2854,19 +2931,170 @@ interface UseTicketHistoryReturn {
2854
2931
  declare function useTicketHistory(companyId?: string): UseTicketHistoryReturn;
2855
2932
 
2856
2933
  /**
2857
- * Video Prefetch Manager
2934
+ * S3 Clips Service - Supabase Version
2935
+ * Uses Supabase database instead of S3 listing for clip management
2858
2936
  *
2859
- * Centralized singleton for managing video clip prefetching across the application.
2860
- * Prevents duplicate API requests and provides event-driven status updates.
2937
+ * This is a drop-in replacement for s3-clips-secure.ts that uses
2938
+ * the new Supabase-based API endpoints.
2861
2939
  *
2862
- * Features:
2863
- * - Singleton pattern with Promise caching
2864
- * - Two-phase loading: RENDER_READY → FULLY_INDEXED
2865
- * - Event-driven architecture for real-time status updates
2866
- * - Thread-safe state management
2867
- * - Automatic cleanup and error handling
2940
+ * Benefits:
2941
+ * - Faster loading (direct DB queries vs S3 listing)
2942
+ * - Richer metadata immediately available
2943
+ * - Better filtering and sorting capabilities
2944
+ * - Lower AWS costs
2868
2945
  */
2869
2946
 
2947
+ interface VideoIndexEntry {
2948
+ uri: string;
2949
+ category: string;
2950
+ timestamp: string;
2951
+ videoId: string;
2952
+ workspaceId: string;
2953
+ date: string;
2954
+ shiftId: string;
2955
+ }
2956
+ interface VideoIndex {
2957
+ byCategory: Map<string, VideoIndexEntry[]>;
2958
+ allVideos: VideoIndexEntry[];
2959
+ counts: Record<string, number>;
2960
+ workspaceId: string;
2961
+ date: string;
2962
+ shiftId: string;
2963
+ lastUpdated: Date;
2964
+ _debugId?: string;
2965
+ }
2966
+ interface ClipCountsWithIndex$1 {
2967
+ counts: Record<string, number>;
2968
+ videoIndex: VideoIndex;
2969
+ }
2970
+ interface ClipType {
2971
+ id: string;
2972
+ type: string;
2973
+ label: string;
2974
+ color: string;
2975
+ description?: string;
2976
+ subtitle?: string;
2977
+ icon?: string;
2978
+ sort_order?: number;
2979
+ severity_levels?: string[];
2980
+ count?: number;
2981
+ metadata?: {
2982
+ label?: string;
2983
+ color?: string;
2984
+ description?: string;
2985
+ icon?: string;
2986
+ sort_order?: number;
2987
+ severity_levels?: string[];
2988
+ };
2989
+ }
2990
+ /**
2991
+ * S3 Clips Service - Supabase Implementation
2992
+ * All clip operations go through Supabase database
2993
+ */
2994
+ declare class S3ClipsSupabaseService {
2995
+ private config;
2996
+ private requestCache;
2997
+ private readonly defaultLimitPerCategory;
2998
+ private readonly maxLimitPerCategory;
2999
+ private readonly concurrencyLimit;
3000
+ private readonly maxInitialFetch;
3001
+ private isIndexBuilding;
3002
+ private isPrefetching;
3003
+ private currentMetadataFetches;
3004
+ private readonly MAX_CONCURRENT_METADATA;
3005
+ constructor(config: DashboardConfig);
3006
+ /**
3007
+ * Fetch with authentication and error handling
3008
+ */
3009
+ private fetchWithAuth;
3010
+ /**
3011
+ * Deduplicate requests to prevent multiple API calls
3012
+ */
3013
+ private deduplicate;
3014
+ /**
3015
+ * Lists clips using Supabase API
3016
+ */
3017
+ listS3Clips(params: S3ListObjectsParams): Promise<string[]>;
3018
+ /**
3019
+ * Get metadata cycle time
3020
+ */
3021
+ getMetadataCycleTime(clipId: string): Promise<number | null>;
3022
+ /**
3023
+ * Control prefetch mode
3024
+ */
3025
+ setPrefetchMode(enabled: boolean): void;
3026
+ /**
3027
+ * Get full metadata
3028
+ */
3029
+ getFullMetadata(clipId: string): Promise<VideoMetadata | null>;
3030
+ /**
3031
+ * Get clip counts with optional video index
3032
+ */
3033
+ getClipCountsCacheFirst(workspaceId: string, date: string, shiftId: string | number, buildIndex?: boolean): Promise<ClipCountsWithIndex$1 | Record<string, number>>;
3034
+ /**
3035
+ * Get clip counts (simplified version)
3036
+ */
3037
+ getClipCounts(workspaceId: string, date: string, shiftId: string | number): Promise<Record<string, number>>;
3038
+ /**
3039
+ * Get clip by ID - stable navigation method
3040
+ * This ensures navigation works even when new clips are added
3041
+ */
3042
+ getClipById(clipId: string, sopCategories?: SOPCategory[]): Promise<BottleneckVideoData | null>;
3043
+ /**
3044
+ * Get neighboring clips for navigation
3045
+ * Returns previous and next clips based on timestamp
3046
+ */
3047
+ getNeighboringClips(workspaceId: string, date: string, shiftId: string | number, category: string, currentClipId: string, sopCategories?: SOPCategory[]): Promise<{
3048
+ previous: BottleneckVideoData | null;
3049
+ next: BottleneckVideoData | null;
3050
+ }>;
3051
+ /**
3052
+ * Get clip by index
3053
+ * @deprecated Use getClipById for stable navigation
3054
+ */
3055
+ getClipByIndex(workspaceId: string, date: string, shiftId: string | number, category: string, index: number): Promise<BottleneckVideoData | null>;
3056
+ /**
3057
+ * Get first clip for all categories
3058
+ */
3059
+ getFirstClipsForAllCategories(workspaceId: string, date: string, shiftId: string | number): Promise<Record<string, BottleneckVideoData | null>>;
3060
+ /**
3061
+ * Get first clip for a specific category
3062
+ */
3063
+ getFirstClipForCategory(workspaceId: string, date: string, shiftId: string | number, category: string): Promise<BottleneckVideoData | null>;
3064
+ /**
3065
+ * Batch fetch videos (alias for batchFetchClips for compatibility)
3066
+ */
3067
+ batchFetchVideos(workspaceId: string, date: string, shiftId: string | number, requests: Array<{
3068
+ category: string;
3069
+ index: number;
3070
+ }>): Promise<Array<BottleneckVideoData | null>>;
3071
+ /**
3072
+ * Batch fetch clips
3073
+ */
3074
+ batchFetchClips(workspaceId: string, date: string, shiftId: string | number, requests: Array<{
3075
+ category: string;
3076
+ index: number;
3077
+ }>): Promise<Array<BottleneckVideoData | null>>;
3078
+ /**
3079
+ * Get all clip types from Supabase
3080
+ */
3081
+ getClipTypes(): Promise<ClipType[]>;
3082
+ /**
3083
+ * Ensure videos are loaded for navigation
3084
+ */
3085
+ ensureVideosLoaded(workspaceId: string, date: string, shiftId: string | number, category: string, currentIndex: number): Promise<void>;
3086
+ }
3087
+
3088
+ /**
3089
+ * Video Prefetch Manager - DISABLED
3090
+ *
3091
+ * This service has been disabled as part of removing all client-side caching and preloading.
3092
+ * All methods now return empty/null values to prevent any caching or prefetching.
3093
+ *
3094
+ * The file is kept for compatibility but all functionality is disabled.
3095
+ */
3096
+
3097
+ declare const S3ClipsService: typeof S3ClipsService$1 | typeof S3ClipsSupabaseService;
2870
3098
  declare enum PrefetchStatus {
2871
3099
  IDLE = "idle",
2872
3100
  PENDING = "pending",
@@ -2879,73 +3107,47 @@ interface PrefetchParams {
2879
3107
  date: string;
2880
3108
  shift: string;
2881
3109
  }
2882
- type StatusChangeCallback = (key: string, status: PrefetchStatus, data?: ClipCountsWithIndex | null, error?: Error | null) => void;
2883
- type RenderReadyCallback = (key: string, data: ClipCountsWithIndex) => void;
2884
- type FullyIndexedCallback = (key: string, data: ClipCountsWithIndex) => void;
3110
+ type StatusChangeCallback = (key: string, status: PrefetchStatus, data?: ClipCountsWithIndex$2 | null, error?: Error | null) => void;
3111
+ type RenderReadyCallback = (key: string, data: ClipCountsWithIndex$2) => void;
3112
+ type FullyIndexedCallback = (key: string, data: ClipCountsWithIndex$2) => void;
2885
3113
  type ErrorCallback = (key: string, error: Error) => void;
2886
3114
  /**
2887
- * Centralized Video Prefetch Manager
3115
+ * DISABLED Video Prefetch Manager
2888
3116
  *
2889
- * Manages video clip prefetching with Promise caching and event-driven updates.
2890
- * Prevents duplicate requests and provides granular loading states.
3117
+ * All methods return null/empty values - no caching or prefetching occurs
2891
3118
  */
2892
3119
  declare class VideoPrefetchManager extends EventEmitter {
2893
- private requests;
2894
3120
  private s3Services;
2895
- private cleanupInterval;
2896
- private readonly REQUEST_TTL;
2897
- private readonly CLEANUP_INTERVAL;
2898
- private readonly MAX_CONCURRENT_REQUESTS;
2899
3121
  constructor();
2900
3122
  /**
2901
- * Generate cache key for request parameters
2902
- */
2903
- private generateKey;
2904
- /**
2905
- * Get or create S3 service instance for dashboard config
2906
- * Public method to allow sharing the same S3Service instance across components
2907
- */
2908
- getS3Service(dashboardConfig: DashboardConfig): S3ClipsService;
2909
- /**
2910
- * Emit status change event with error handling
2911
- */
2912
- private safeEmit;
2913
- /**
2914
- * Update request status and emit events
2915
- */
2916
- private updateRequestStatus;
2917
- /**
2918
- * Perform the actual prefetch operation with timeout protection
3123
+ * Get or create S3 service instance
3124
+ * Still functional to provide S3 service instances
2919
3125
  */
2920
- private executePrefetch;
3126
+ getS3Service(dashboardConfig: DashboardConfig): InstanceType<typeof S3ClipsService>;
2921
3127
  /**
2922
- * Perform the actual prefetch work
3128
+ * DISABLED - Returns null immediately
2923
3129
  */
2924
- private performPrefetchWork;
3130
+ prefetch(params: PrefetchParams, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex$2 | null>;
2925
3131
  /**
2926
- * Start prefetch operation for given parameters
2927
- */
2928
- prefetch(params: PrefetchParams, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex | null>;
2929
- /**
2930
- * Get current status of a prefetch request
3132
+ * DISABLED - Returns idle status
2931
3133
  */
2932
3134
  getStatus(params: PrefetchParams): {
2933
3135
  status: PrefetchStatus;
2934
- data: ClipCountsWithIndex | null;
3136
+ data: ClipCountsWithIndex$2 | null;
2935
3137
  error: Error | null;
2936
3138
  isRenderReady: boolean;
2937
3139
  isFullyIndexed: boolean;
2938
3140
  };
2939
3141
  /**
2940
- * Check if data is available (either render-ready or fully indexed)
3142
+ * DISABLED - Always returns false
2941
3143
  */
2942
3144
  isDataAvailable(params: PrefetchParams): boolean;
2943
3145
  /**
2944
- * Get cached data if available
3146
+ * DISABLED - Always returns null
2945
3147
  */
2946
- getCachedData(params: PrefetchParams): ClipCountsWithIndex | null;
3148
+ getCachedData(params: PrefetchParams): ClipCountsWithIndex$2 | null;
2947
3149
  /**
2948
- * Subscribe to status changes for specific request
3150
+ * DISABLED - Returns empty cleanup function
2949
3151
  */
2950
3152
  subscribe(params: PrefetchParams, subscriberId: string, callbacks: {
2951
3153
  onStatusChange?: StatusChangeCallback;
@@ -2954,15 +3156,15 @@ declare class VideoPrefetchManager extends EventEmitter {
2954
3156
  onError?: ErrorCallback;
2955
3157
  }): () => void;
2956
3158
  /**
2957
- * Cancel a prefetch request
3159
+ * DISABLED - Does nothing
2958
3160
  */
2959
3161
  cancel(params: PrefetchParams, subscriberId?: string): void;
2960
3162
  /**
2961
- * Clear all requests (useful for testing or reset)
3163
+ * DISABLED - Does nothing
2962
3164
  */
2963
3165
  clear(): void;
2964
3166
  /**
2965
- * Get statistics about current requests
3167
+ * DISABLED - Returns empty stats
2966
3168
  */
2967
3169
  getStats(): {
2968
3170
  totalRequests: number;
@@ -2971,90 +3173,44 @@ declare class VideoPrefetchManager extends EventEmitter {
2971
3173
  totalSubscribers: number;
2972
3174
  };
2973
3175
  /**
2974
- * Start cleanup task to remove old requests
2975
- */
2976
- private startCleanup;
2977
- /**
2978
- * Stop cleanup task
3176
+ * DISABLED - Does nothing
2979
3177
  */
2980
3178
  destroy(): void;
2981
3179
  }
2982
3180
  declare const videoPrefetchManager: VideoPrefetchManager;
2983
3181
 
2984
3182
  /**
2985
- * usePrefetchClipCounts Hook
3183
+ * usePrefetchClipCounts Hook - DISABLED
2986
3184
  *
2987
- * Prefetches clip counts for video clips when workspace detail page loads.
2988
- * This hook is designed to start fetching data before the user clicks on the clips tab,
2989
- * enabling 70-90% faster rendering when they do access the clips.
3185
+ * This hook has been disabled as part of removing all client-side caching and preloading.
3186
+ * All functionality returns empty/null values to prevent any prefetching.
2990
3187
  *
2991
- * Enhanced with videoPrefetchManager integration for deduplication and event-driven updates.
3188
+ * The file is kept for compatibility but all functionality is disabled.
2992
3189
  */
2993
3190
 
3191
+ declare const USE_SUPABASE_CLIPS = true;
3192
+
3193
+ type ClipCountsWithIndex = typeof USE_SUPABASE_CLIPS extends true ? ClipCountsWithIndex$1 : ClipCountsWithIndex$2;
2994
3194
  interface UsePrefetchClipCountsOptions {
2995
- /**
2996
- * Workspace ID to prefetch counts for
2997
- */
2998
3195
  workspaceId: string;
2999
- /**
3000
- * Optional date string (YYYY-MM-DD). If not provided, uses operational date
3001
- */
3002
3196
  date?: string;
3003
- /**
3004
- * Optional shift ID (0 = day, 1 = night). If not provided, uses current shift
3005
- */
3006
3197
  shift?: number | string;
3007
- /**
3008
- * Whether to enable prefetching. Defaults to true
3009
- */
3010
3198
  enabled?: boolean;
3011
- /**
3012
- * Whether to build full video index. Defaults to false for cost efficiency.
3013
- * Set to true only if you need the complete video index.
3014
- */
3015
3199
  buildIndex?: boolean;
3016
- /**
3017
- * Subscriber ID for tracking. Auto-generated if not provided
3018
- */
3019
3200
  subscriberId?: string;
3020
3201
  }
3021
3202
  interface UsePrefetchClipCountsResult {
3022
- /**
3023
- * Current prefetch status
3024
- */
3025
3203
  status: PrefetchStatus;
3026
- /**
3027
- * Clip counts data (available when render ready or fully indexed)
3028
- */
3029
3204
  data: ClipCountsWithIndex | null;
3030
- /**
3031
- * Any error that occurred during prefetching
3032
- */
3033
3205
  error: Error | null;
3034
- /**
3035
- * Whether data is ready for rendering (counts available)
3036
- */
3037
3206
  isRenderReady: boolean;
3038
- /**
3039
- * Whether full video index is available
3040
- */
3041
3207
  isFullyIndexed: boolean;
3042
- /**
3043
- * Whether the prefetch is currently in progress
3044
- */
3045
3208
  isLoading: boolean;
3046
- /**
3047
- * Manual trigger function for re-prefetching
3048
- */
3049
3209
  prefetchClipCounts: () => Promise<ClipCountsWithIndex | null>;
3050
- /**
3051
- * Cache key used for this request
3052
- */
3053
3210
  cacheKey: string;
3054
3211
  }
3055
3212
  /**
3056
- * Hook to prefetch clip counts and build video index for faster clips tab loading
3057
- * Enhanced with videoPrefetchManager integration
3213
+ * DISABLED Hook - Returns empty/null values
3058
3214
  */
3059
3215
  declare const usePrefetchClipCounts: ({ workspaceId, date, shift, enabled, buildIndex, subscriberId }: UsePrefetchClipCountsOptions) => UsePrefetchClipCountsResult;
3060
3216
 
@@ -3117,6 +3273,30 @@ interface UseHourEndTimerProps {
3117
3273
  */
3118
3274
  declare const useHourEndTimer: ({ onHourEnd, enabled }: UseHourEndTimerProps) => void;
3119
3275
 
3276
+ /**
3277
+ * useClipTypes Hook
3278
+ * Fetches and manages clip types from Supabase
3279
+ * Provides the single source of truth for available clip categories
3280
+ */
3281
+
3282
+ interface UseClipTypesResult {
3283
+ clipTypes: ClipType[];
3284
+ isLoading: boolean;
3285
+ error: string | null;
3286
+ refresh: () => Promise<void>;
3287
+ }
3288
+ /**
3289
+ * Hook to fetch and manage clip types from Supabase
3290
+ * Uses the shared S3ClipsService instance for consistency
3291
+ */
3292
+ declare function useClipTypes(): UseClipTypesResult;
3293
+ /**
3294
+ * Hook to get clip types with counts for a specific workspace/date/shift
3295
+ */
3296
+ declare function useClipTypesWithCounts(workspaceId: string, date: string, shiftId: string | number): UseClipTypesResult & {
3297
+ counts: Record<string, number>;
3298
+ };
3299
+
3120
3300
  /**
3121
3301
  * Interface for navigation method used across packages
3122
3302
  * Abstracts navigation implementation details from components
@@ -3344,6 +3524,22 @@ interface UseFormatNumberResult {
3344
3524
  */
3345
3525
  declare const useFormatNumber: () => UseFormatNumberResult;
3346
3526
 
3527
+ type UserRole = 'owner' | 'plant_head' | 'supervisor';
3528
+ interface AccessControlReturn {
3529
+ userRole: UserRole | null;
3530
+ hasAccess: (path: string) => boolean;
3531
+ accessiblePages: string[];
3532
+ isPageVisible: (path: string) => boolean;
3533
+ canAccessPage: (path: string) => boolean;
3534
+ }
3535
+ /**
3536
+ * Hook to manage role-based access control
3537
+ * TEMPORARILY DISABLED: All users have access to all pages
3538
+ *
3539
+ * @returns {AccessControlReturn} Access control utilities and state
3540
+ */
3541
+ declare function useAccessControl(): AccessControlReturn;
3542
+
3347
3543
  declare const actionService: {
3348
3544
  getActionsByName(actionNames: string[], companyIdInput?: string): Promise<Action[]>;
3349
3545
  };
@@ -3744,6 +3940,166 @@ declare class AudioServiceClass {
3744
3940
  declare const AudioService: AudioServiceClass;
3745
3941
  declare const useAudioService: () => AudioServiceClass;
3746
3942
 
3943
+ /**
3944
+ * Line data formatted for the UI
3945
+ */
3946
+ interface Line {
3947
+ id: string;
3948
+ name: string;
3949
+ companyId: string;
3950
+ isActive: boolean;
3951
+ createdAt?: string;
3952
+ factoryId?: string;
3953
+ }
3954
+ /**
3955
+ * Service for managing lines data
3956
+ */
3957
+ declare class LinesService {
3958
+ private supabase;
3959
+ constructor(supabase: SupabaseClient$1);
3960
+ /**
3961
+ * Fetch all active lines for a given company
3962
+ * @param companyId - The company ID to fetch lines for
3963
+ * @returns Promise<Line[]> - Array of lines for the company
3964
+ */
3965
+ getLinesByCompanyId(companyId: string): Promise<Line[]>;
3966
+ /**
3967
+ * Fetch all active lines (for all companies)
3968
+ * @returns Promise<Line[]> - Array of all active lines
3969
+ */
3970
+ getAllLines(): Promise<Line[]>;
3971
+ /**
3972
+ * Fetch a single line by ID
3973
+ * @param lineId - The line ID to fetch
3974
+ * @returns Promise<Line | null> - The line data or null if not found
3975
+ */
3976
+ getLineById(lineId: string): Promise<Line | null>;
3977
+ }
3978
+ /**
3979
+ * Create a lines service instance
3980
+ * @param supabase - Supabase client instance
3981
+ * @returns LinesService instance
3982
+ */
3983
+ declare const createLinesService: (supabase: SupabaseClient$1) => LinesService;
3984
+ /**
3985
+ * Default export for convenience
3986
+ */
3987
+ declare const linesService: {
3988
+ create: (supabase: SupabaseClient$1) => LinesService;
3989
+ };
3990
+
3991
+ /**
3992
+ * Service for managing supervisor assignments with real lines data and real user data
3993
+ */
3994
+ declare class SupervisorService {
3995
+ private supabase;
3996
+ private linesService;
3997
+ private userService;
3998
+ constructor(supabase: SupabaseClient$1);
3999
+ /**
4000
+ * Get supervisor management data for a specific company
4001
+ * Uses real lines data and real user data from the database
4002
+ * @param companyId - The company ID to fetch data for
4003
+ * @returns Promise<SupervisorManagementData>
4004
+ */
4005
+ getSupervisorManagementData(companyId: string): Promise<SupervisorManagementData>;
4006
+ /**
4007
+ * Get all supervisors for a specific company (real data from database)
4008
+ * @param companyId - The company ID to fetch supervisors for
4009
+ * @returns Promise<Supervisor[]>
4010
+ */
4011
+ getAllSupervisors(companyId: string): Promise<Supervisor[]>;
4012
+ /**
4013
+ * Get active supervisors only for a specific company
4014
+ * @param companyId - The company ID to fetch active supervisors for
4015
+ * @returns Promise<Supervisor[]>
4016
+ */
4017
+ getActiveSupervisors(companyId: string): Promise<Supervisor[]>;
4018
+ /**
4019
+ * Assign a supervisor to a line
4020
+ * This is a mock implementation - in production, this would update the database
4021
+ * @param lineId - The line ID
4022
+ * @param supervisorId - The supervisor ID to assign
4023
+ * @returns Promise<boolean> - Success status
4024
+ */
4025
+ assignSupervisorToLine(lineId: string, supervisorId?: string): Promise<boolean>;
4026
+ /**
4027
+ * Helper method to simulate supervisor assignments
4028
+ * In production, this would be fetched from the database
4029
+ * @param lineId - The line ID
4030
+ * @param supervisors - Available supervisors
4031
+ * @returns Supervisor or undefined
4032
+ */
4033
+ private getRandomSupervisorForLine;
4034
+ }
4035
+ /**
4036
+ * Create a supervisor service instance
4037
+ * @param supabase - Supabase client instance
4038
+ * @returns SupervisorService instance
4039
+ */
4040
+ declare const createSupervisorService: (supabase: SupabaseClient$1) => SupervisorService;
4041
+ /**
4042
+ * Simulate API delay for realistic loading states
4043
+ */
4044
+ declare const simulateApiDelay: (ms?: number) => Promise<void>;
4045
+
4046
+ /**
4047
+ * User data formatted for the UI (compatible with Supervisor interface)
4048
+ */
4049
+ interface CompanyUser {
4050
+ id: string;
4051
+ name: string;
4052
+ email: string;
4053
+ isActive: boolean;
4054
+ createdAt?: string;
4055
+ updatedAt?: string;
4056
+ }
4057
+ /**
4058
+ * Service for managing user data from the database
4059
+ */
4060
+ declare class UserService {
4061
+ private supabase;
4062
+ constructor(supabase: SupabaseClient$1);
4063
+ /**
4064
+ * Fetch all users mapped to a specific company
4065
+ * @param companyId - The company ID to fetch users for
4066
+ * @returns Promise<CompanyUser[]> - Array of users in the company
4067
+ */
4068
+ getUsersByCompanyId(companyId: string): Promise<CompanyUser[]>;
4069
+ /**
4070
+ * Fallback method to fetch users by company ID using basic queries
4071
+ * Gets real user emails from the database
4072
+ * @param companyId - The company ID to fetch users for
4073
+ * @returns Promise<CompanyUser[]> - Array of users in the company
4074
+ */
4075
+ private getUsersByCompanyIdFallback;
4076
+ /**
4077
+ * Check if a user is mapped to a specific company
4078
+ * @param userId - The user ID to check
4079
+ * @param companyId - The company ID to check against
4080
+ * @returns Promise<boolean> - Whether the user is mapped to the company
4081
+ */
4082
+ isUserInCompany(userId: string, companyId: string): Promise<boolean>;
4083
+ /**
4084
+ * Get user details by user ID (if they exist in auth.users)
4085
+ * @param userId - The user ID to fetch
4086
+ * @returns Promise<CompanyUser | null> - The user data or null if not found
4087
+ */
4088
+ getUserById(userId: string): Promise<CompanyUser | null>;
4089
+ }
4090
+ /**
4091
+ * Create a user service instance
4092
+ * @param supabase - Supabase client instance
4093
+ * @returns UserService instance
4094
+ */
4095
+ declare const createUserService: (supabase: SupabaseClient$1) => UserService;
4096
+ /**
4097
+ * Default export for convenience
4098
+ */
4099
+ declare const userService: {
4100
+ create: (supabase: SupabaseClient$1) => UserService;
4101
+ };
4102
+
3747
4103
  /**
3748
4104
  * Helper object for making authenticated API requests using Supabase auth token.
3749
4105
  * Assumes endpoints are relative to the apiBaseUrl configured in DashboardConfig.
@@ -4013,32 +4369,17 @@ declare const getDefaultTabForWorkspace: (workspaceId?: string, displayName?: st
4013
4369
  declare const getWorkspaceNavigationParams: (workspaceId: string, displayName: string, lineId?: string) => string;
4014
4370
 
4015
4371
  /**
4016
- * VideoPreloader – lightweight, URL-only video pre-loading helper.
4372
+ * VideoPreloader – DISABLED
4017
4373
  *
4018
- * It keeps a Set-based cache of already processed URLs, runs a FIFO queue with a
4019
- * maximum concurrency of two, and supports both regular file sources (e.g.
4020
- * .mp4) as well as HLS playlists (.m3u8). For the latter it dynamically imports
4021
- * `hls.js`, buffers a single fragment, and tears everything down afterwards.
4374
+ * This video preloader has been disabled as part of removing all client-side caching and preloading.
4375
+ * All methods now do nothing to prevent any preloading.
4022
4376
  *
4023
- * No S3 / presigned-URL logic should live here keep this file focused on pure
4024
- * URL pre-loading.
4377
+ * The file is kept for compatibility but all functionality is disabled.
4025
4378
  */
4026
4379
  declare class VideoPreloader {
4027
- /** URLs that have finished (or at least attempted) pre-loading. */
4028
- private readonly cache;
4029
- /** FIFO queue of pending URLs. */
4030
- private queue;
4031
- /** Currently running pre-load operations. */
4032
- private active;
4033
4380
  preloadVideo: (url: string | null | undefined) => void;
4034
4381
  preloadVideos: (urls: (string | null | undefined)[]) => void;
4035
4382
  clear: () => void;
4036
- private processQueue;
4037
- private preloadUrlInternal;
4038
- private canPlayHlsNatively;
4039
- private bufferNative;
4040
- private handleHls;
4041
- private bufferHls;
4042
4383
  }
4043
4384
  declare const videoPreloader: VideoPreloader;
4044
4385
  declare const preloadVideoUrl: (url: string | null | undefined) => void;
@@ -4199,6 +4540,29 @@ declare const withAuth: <P extends object>(WrappedComponent: React$1.ComponentTy
4199
4540
  requireAuth?: boolean;
4200
4541
  }) => React$1.NamedExoticComponent<P>;
4201
4542
 
4543
+ interface WithAccessControlOptions {
4544
+ /**
4545
+ * The path to check for access. If not provided, uses the current pathname
4546
+ */
4547
+ requiredPath?: string;
4548
+ /**
4549
+ * Where to redirect if access is denied. Defaults to home page
4550
+ */
4551
+ redirectTo?: string;
4552
+ /**
4553
+ * Custom component to render when access is denied
4554
+ */
4555
+ UnauthorizedComponent?: React__default.ComponentType;
4556
+ }
4557
+ /**
4558
+ * Higher-order component that wraps a component with access control
4559
+ * TEMPORARILY DISABLED: All users have access to all pages
4560
+ */
4561
+ declare function withAccessControl<P extends object>(WrappedComponent: React__default.ComponentType<P>, options?: WithAccessControlOptions): {
4562
+ (props: P): react_jsx_runtime.JSX.Element;
4563
+ displayName: string;
4564
+ };
4565
+
4202
4566
  interface LoginPageProps {
4203
4567
  onRateLimitCheck?: (email: string) => Promise<{
4204
4568
  allowed: boolean;
@@ -4575,19 +4939,19 @@ interface LinePdfExportButtonProps {
4575
4939
  }
4576
4940
  declare const LinePdfExportButton: React__default.FC<LinePdfExportButtonProps>;
4577
4941
 
4578
- interface ShiftData$1 {
4942
+ interface ShiftData$2 {
4579
4943
  avg_efficiency: number;
4580
4944
  underperforming_workspaces: number;
4581
4945
  total_workspaces: number;
4582
4946
  hasData?: boolean;
4583
4947
  }
4584
- interface DayData$3 {
4948
+ interface DayData$4 {
4585
4949
  date: Date | string;
4586
- dayShift: ShiftData$1;
4587
- nightShift: ShiftData$1;
4950
+ dayShift: ShiftData$2;
4951
+ nightShift: ShiftData$2;
4588
4952
  }
4589
4953
  interface LineHistoryCalendarProps {
4590
- data: DayData$3[];
4954
+ data: DayData$4[];
4591
4955
  month: number;
4592
4956
  year: number;
4593
4957
  lineId: string;
@@ -4653,7 +5017,7 @@ interface WorkspacePerformance {
4653
5017
  efficiency?: number;
4654
5018
  }[];
4655
5019
  }
4656
- interface DayData$2 {
5020
+ interface DayData$3 {
4657
5021
  date: Date;
4658
5022
  dayShift: PerformanceData;
4659
5023
  nightShift: PerformanceData;
@@ -4661,7 +5025,7 @@ interface DayData$2 {
4661
5025
  interface LineMonthlyPdfGeneratorProps {
4662
5026
  lineId: string;
4663
5027
  lineName: string;
4664
- monthlyData: DayData$2[];
5028
+ monthlyData: DayData$3[];
4665
5029
  underperformingWorkspaces: {
4666
5030
  dayShift: WorkspacePerformance[];
4667
5031
  nightShift: WorkspacePerformance[];
@@ -4822,6 +5186,35 @@ interface WorkspaceCardProps {
4822
5186
  }
4823
5187
  declare const WorkspaceCard: React__default.FC<WorkspaceCardProps>;
4824
5188
 
5189
+ interface ShiftData$1 {
5190
+ efficiency: number;
5191
+ output: number;
5192
+ cycleTime: number;
5193
+ pph: number;
5194
+ pphThreshold: number;
5195
+ idealOutput: number;
5196
+ rank: number;
5197
+ idleTime: number;
5198
+ hasData?: boolean;
5199
+ }
5200
+ interface DayData$2 {
5201
+ date: Date;
5202
+ dayShift: ShiftData$1;
5203
+ nightShift: ShiftData$1;
5204
+ }
5205
+ interface WorkspaceHistoryCalendarProps {
5206
+ data: DayData$2[];
5207
+ onDateSelect: (date: string) => void;
5208
+ month: number;
5209
+ year: number;
5210
+ workspaceId: string;
5211
+ selectedShift?: 'day' | 'night';
5212
+ onMonthNavigate?: (newMonth: number, newYear: number) => void;
5213
+ onShiftChange?: (shift: 'day' | 'night') => void;
5214
+ className?: string;
5215
+ }
5216
+ declare const WorkspaceHistoryCalendar: React__default.FC<WorkspaceHistoryCalendarProps>;
5217
+
4825
5218
  interface ShiftData {
4826
5219
  efficiency: number;
4827
5220
  output: number;
@@ -4838,18 +5231,19 @@ interface DayData$1 {
4838
5231
  dayShift: ShiftData;
4839
5232
  nightShift: ShiftData;
4840
5233
  }
4841
- interface WorkspaceHistoryCalendarProps {
5234
+ interface WorkspaceMonthlyHistoryProps {
4842
5235
  data: DayData$1[];
4843
- onDateSelect: (date: string) => void;
4844
5236
  month: number;
4845
5237
  year: number;
4846
5238
  workspaceId: string;
4847
5239
  selectedShift?: 'day' | 'night';
5240
+ onDateSelect: (date: string, shift: 'day' | 'night') => void;
4848
5241
  onMonthNavigate?: (newMonth: number, newYear: number) => void;
4849
5242
  onShiftChange?: (shift: 'day' | 'night') => void;
5243
+ monthlyDataLoading?: boolean;
4850
5244
  className?: string;
4851
5245
  }
4852
- declare const WorkspaceHistoryCalendar: React__default.FC<WorkspaceHistoryCalendarProps>;
5246
+ declare const WorkspaceMonthlyHistory: React__default.FC<WorkspaceMonthlyHistoryProps>;
4853
5247
 
4854
5248
  interface WorkspaceWhatsAppShareProps {
4855
5249
  workspace: WorkspaceDetailedMetrics;
@@ -5486,6 +5880,24 @@ interface VideoPlayerProps {
5486
5880
  */
5487
5881
  declare const VideoPlayer: React__default.ForwardRefExoticComponent<VideoPlayerProps & React__default.RefAttributes<VideoPlayerRef>>;
5488
5882
 
5883
+ interface CropConfig {
5884
+ x: number;
5885
+ y: number;
5886
+ width: number;
5887
+ height: number;
5888
+ }
5889
+ interface CroppedVideoPlayerProps extends VideoPlayerProps {
5890
+ /** Crop configuration */
5891
+ crop?: CropConfig | null;
5892
+ /** Whether to show debug info */
5893
+ debug?: boolean;
5894
+ }
5895
+ /**
5896
+ * Video player with canvas-based cropping capability
5897
+ * Crops video based on percentage coordinates and maintains aspect ratio
5898
+ */
5899
+ declare const CroppedVideoPlayer: React__default.ForwardRefExoticComponent<CroppedVideoPlayerProps & React__default.RefAttributes<VideoPlayerRef>>;
5900
+
5489
5901
  interface BackButtonProps {
5490
5902
  /**
5491
5903
  * Click handler for the back button
@@ -5544,6 +5956,20 @@ interface InlineEditableTextProps {
5544
5956
  }
5545
5957
  declare const InlineEditableText: React__default.FC<InlineEditableTextProps>;
5546
5958
 
5959
+ /**
5960
+ * NewClipsNotification Component
5961
+ * Displays a notification when new clips are available
5962
+ * Following S-tier design principles: subtle, non-disruptive, user-controlled
5963
+ */
5964
+
5965
+ interface NewClipsNotificationProps {
5966
+ count: number;
5967
+ onRefresh: () => void;
5968
+ onDismiss: () => void;
5969
+ className?: string;
5970
+ }
5971
+ declare const NewClipsNotification: React__default.FC<NewClipsNotificationProps>;
5972
+
5547
5973
  interface LoadingStateProps {
5548
5974
  message?: string;
5549
5975
  subMessage?: string;
@@ -5643,6 +6069,88 @@ declare const getDefaultCameraStreamUrl: (workspaceName: string, baseUrl: string
5643
6069
  */
5644
6070
  declare const SingleVideoStream: React__default.FC<SingleVideoStreamProps>;
5645
6071
 
6072
+ interface SupervisorDropdownProps {
6073
+ /** Currently selected supervisor */
6074
+ selectedSupervisor?: Supervisor;
6075
+ /** Available supervisors to choose from */
6076
+ availableSupervisors: Supervisor[];
6077
+ /** Callback when supervisor is selected */
6078
+ onSelect: (supervisor: Supervisor | null) => void;
6079
+ /** Additional className for styling */
6080
+ className?: string;
6081
+ /** Whether the dropdown is disabled */
6082
+ disabled?: boolean;
6083
+ /** Placeholder text when no supervisor is selected */
6084
+ placeholder?: string;
6085
+ }
6086
+ declare const SupervisorDropdown: React__default.FC<SupervisorDropdownProps>;
6087
+
6088
+ interface FirstTimeLoginHandlerProps {
6089
+ children: React__default.ReactNode;
6090
+ onboardingComponent?: React__default.ComponentType<{
6091
+ onComplete: () => void | Promise<void>;
6092
+ isCompleting?: boolean;
6093
+ }>;
6094
+ enableAutoDetection?: boolean;
6095
+ }
6096
+ /**
6097
+ * Component that handles first-time login detection and onboarding flow
6098
+ * Automatically shows onboarding popup for first-time users
6099
+ *
6100
+ * Usage:
6101
+ * ```tsx
6102
+ * // With custom onboarding component
6103
+ * <FirstTimeLoginHandler onboardingComponent={CustomOnboarding}>
6104
+ * <YourMainApp />
6105
+ * </FirstTimeLoginHandler>
6106
+ *
6107
+ * // With default onboarding popup
6108
+ * <FirstTimeLoginHandler>
6109
+ * <YourMainApp />
6110
+ * </FirstTimeLoginHandler>
6111
+ * ```
6112
+ */
6113
+ declare const FirstTimeLoginHandler: React__default.FC<FirstTimeLoginHandlerProps>;
6114
+ /**
6115
+ * Simple debug component to show first-time login status
6116
+ * Useful for development and testing
6117
+ */
6118
+ declare const FirstTimeLoginDebug: React__default.FC;
6119
+
6120
+ interface SimpleOnboardingPopupProps {
6121
+ onComplete: () => void | Promise<void>;
6122
+ isCompleting?: boolean;
6123
+ }
6124
+ /**
6125
+ * Simple onboarding popup component for first-time users
6126
+ * Shows a welcome message and brief introduction to the dashboard
6127
+ */
6128
+ declare const SimpleOnboardingPopup: React__default.FC<SimpleOnboardingPopupProps>;
6129
+ /**
6130
+ * Minimal onboarding popup - just a simple welcome message
6131
+ */
6132
+ declare const MinimalOnboardingPopup: React__default.FC<SimpleOnboardingPopupProps>;
6133
+
6134
+ interface OnboardingTourProps {
6135
+ isOpen: boolean;
6136
+ onComplete: () => void;
6137
+ onSkip: () => void;
6138
+ }
6139
+ declare const OnboardingTour: React__default.FC<OnboardingTourProps>;
6140
+
6141
+ interface InteractiveOnboardingTourProps {
6142
+ isOpen: boolean;
6143
+ onComplete: () => void;
6144
+ onSkip: () => void;
6145
+ }
6146
+ declare const InteractiveOnboardingTour: React__default.FC<InteractiveOnboardingTourProps>;
6147
+
6148
+ /**
6149
+ * Demo component to manually trigger the onboarding tour
6150
+ * This is useful for development and testing purposes
6151
+ */
6152
+ declare const OnboardingDemo: React__default.FC;
6153
+
5646
6154
  /**
5647
6155
  * AI Agent Chat View
5648
6156
  *
@@ -5978,6 +6486,16 @@ declare const _default: React__default.NamedExoticComponent<WorkspaceHealthViewP
5978
6486
 
5979
6487
  declare const AuthenticatedWorkspaceHealthView: React__default.FC<WorkspaceHealthViewProps>;
5980
6488
 
6489
+ interface SupervisorManagementViewProps {
6490
+ /** Function to handle navigation */
6491
+ onNavigate?: (path: string) => void;
6492
+ /** Function to handle back navigation */
6493
+ onBack?: () => void;
6494
+ /** Additional className for styling */
6495
+ className?: string;
6496
+ }
6497
+ declare const SupervisorManagementView: React__default.FC<SupervisorManagementViewProps>;
6498
+
5981
6499
  type CoreComponents = {
5982
6500
  Card: any;
5983
6501
  CardHeader: any;
@@ -6195,4 +6713,4 @@ interface ThreadSidebarProps {
6195
6713
  }
6196
6714
  declare const ThreadSidebar: React__default.FC<ThreadSidebarProps>;
6197
6715
 
6198
- export { ACTION_NAMES, AIAgentView, type Action, type ActionName, type ActionService, type ActionThreshold, type ActiveBreak, type AnalyticsConfig, AudioService, AuthCallback, type AuthCallbackProps, AuthCallbackView, type AuthCallbackViewProps, type AuthConfig, AuthProvider, type AuthUser, AuthenticatedFactoryView, AuthenticatedHelpView, AuthenticatedHomeView, AuthenticatedShiftsView, AuthenticatedTargetsView, AuthenticatedWorkspaceHealthView, BackButton, BackButtonMinimal, BarChart, type BarChartDataItem, type BarChartProps, type BarProps, BaseHistoryCalendar, type BaseHistoryCalendarProps, type BaseLineMetric, type BasePerformanceMetric, type BottleneckFilterType, type BottleneckVideo, type BottleneckVideoData, BottlenecksContent, type BottlenecksContentProps, type BreadcrumbItem, type Break, BreakNotificationPopup, type BreakNotificationPopupProps, type BreakRowProps, type CacheEntryWithPrefetch, CachePrefetchStatus, type CachePrefetchStatusCallback, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type ChatMessage, type ChatThread, type CleanupFunction, type ClipCounts, type ClipCountsWithIndex, CompactWorkspaceHealthCard, type ComponentOverride, CongratulationsOverlay, type CongratulationsOverlayProps, 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_VIDEO_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 DateTimeDisplayProps, type DayHistoryData, type DaySummaryData, DebugAuth, DebugAuthView, DetailedHealthStatus, EmptyStateMessage, type EmptyStateMessageProps, EncouragementOverlay, type EndpointsConfig, type EntityConfig, type ErrorCallback$1 as ErrorCallback, type ExtendedCacheMetrics, type FactoryOverviewData, FactoryView, type FactoryViewProps, type FormatNumberOptions, type FullyIndexedCallback$1 as FullyIndexedCallback, GaugeChart, type GaugeChartProps, GridComponentsPlaceholder, HamburgerButton, type HamburgerButtonProps, Header, type HeaderProps, type HealthAlertConfig, type HealthAlertHistory, type HealthFilterOptions, type HealthMetrics, type HealthStatus, HealthStatusGrid, HealthStatusIndicator, type HealthSummary, HelpView, type HelpViewProps, type HistoryCalendarProps, HomeView, type HookOverride, type HourlyAchievement, HourlyOutputChart, type HourlyOutputChartProps, type HourlyPerformance, type IPrefetchManager, type ISTDateProps, ISTTimer, type ISTTimerProps, InlineEditableText, KPICard, type KPICardProps, KPIDetailViewWithDisplayNames as KPIDetailView, type KPIDetailViewProps, KPIGrid, type KPIGridProps, KPIHeader, type KPIHeaderProps, KPISection, type KPITrend, KPIsOverviewView, type KPIsOverviewViewProps, LINE_1_UUID, LINE_2_UUID, LargeOutputProgressChart, type LargeOutputProgressChartProps, LeaderboardDetailViewWithDisplayNames as LeaderboardDetailView, type LeaderboardDetailViewProps, type LeaderboardEntry, 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, LoadingInline, LoadingInline as LoadingInlineProps, LoadingOverlay, LoadingPage, LoadingSkeleton, LoadingSkeleton as LoadingSkeletonProps, LoadingState, LoadingState as LoadingStateProps, LoginPage, type LoginPageProps, LoginView, type LoginViewProps, MainLayout, type MainLayoutProps, type Metric, MetricCard, type MetricCardProps$1 as MetricCardProps, type MetricsError, type NavItem, type NavItemTrackingEvent, type NavigationMethod, NoWorkspaceData, type OperatorData, type OperatorInfo, OptifyeAgentClient, type OptifyeAgentContext, type OptifyeAgentRequest, type OptifyeAgentResponse, OptifyeLogoLoader, OutputProgressChart, type OutputProgressChartProps, type OverridesMap, type OverviewLineMetric, type OverviewWorkspaceMetric, PageHeader, type PageHeaderProps, type PageOverride, PieChart, type PieChartProps, type PoorPerformingWorkspace, PrefetchConfigurationError, PrefetchError, PrefetchEvents, type PrefetchKey, type PrefetchManagerConfig, type PrefetchManagerStats, type PrefetchOptions, type PrefetchParams$1 as PrefetchParams, type PrefetchRequest, type PrefetchResult, PrefetchStatus$1 as PrefetchStatus, type PrefetchStatusResult, type PrefetchSubscriptionCallbacks, PrefetchTimeoutError, type ProfileMenuItem, ProfileView, type QualityMetric, type QualityOverview, type QualityService, type RateLimitOptions, type RateLimitResult, type RealtimeService, RegistryProvider, type RenderReadyCallback$1 as RenderReadyCallback, type RoutePath, type S3ClipsAPIParams, S3ClipsService, type S3Config, type S3ListObjectsParams, S3Service, type S3ServiceConfig, type SKU, type SKUConfig, type SKUCreateInput, type SKUListProps, SKUManagementView, type SKUModalProps, type SKUSelectorProps, type SKUUpdateInput, type SOPCategory, SOPComplianceChart, type SOPComplianceChartProps, SSEChatClient, type SSEEvent, 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 StatusChangeCallback$1 as StatusChangeCallback, type StreamProxyConfig, type SubscriberId, SubscriptionManager, SubscriptionManagerProvider, type SupabaseClient, SupabaseProvider, type Target, TargetWorkspaceGrid, type TargetWorkspaceGridProps, TargetsViewWithDisplayNames as TargetsView, type TargetsViewProps, type ThemeColorValue, type ThemeConfig, ThreadSidebar, TicketHistory, TicketHistoryService, TimeDisplay, TimePickerDropdown, type TrackingEventProperties, type TrendDirection, type UnderperformingWorkspace, type UnderperformingWorkspaces, type UptimeDetails, type UseActiveBreaksResult, type UseDashboardMetricsProps, type UseFactoryOverviewOptions, type UseFormatNumberResult, type UseMessagesResult, type UsePrefetchClipCountsOptions$1 as UsePrefetchClipCountsOptions, type UsePrefetchClipCountsResult$1 as UsePrefetchClipCountsResult, type UseRealtimeLineMetricsProps, type UseTargetsOptions, type UseThreadsResult, type UseTicketHistoryReturn, type UseWorkspaceOperatorsOptions, type UserProfileConfig, VideoCard, type VideoConfig, type VideoCroppingConfig, type VideoCroppingRect, VideoGridView, type VideoIndex, type VideoIndexEntry, type VideoMetadata, VideoPlayer, type VideoPlayerEventData, type VideoPlayerProps, type VideoPlayerRef, VideoPreloader, type VideoSeverity, type VideoSummary, type VideoType, WORKSPACE_POSITIONS, type WhatsAppSendResult, WhatsAppShareButton, type WhatsAppShareButtonProps, type WhatsappService, type Workspace, type WorkspaceActionUpdate, WorkspaceCard, type WorkspaceCardProps, type WorkspaceConfig, WrappedComponent as WorkspaceDetailView, type WorkspaceDetailedMetrics, WorkspaceDisplayNameExample, WorkspaceGrid, WorkspaceGridItem, type WorkspaceGridItemProps, type WorkspaceHealth, WorkspaceHealthCard, type WorkspaceHealthInfo, _default as WorkspaceHealthView, type WorkspaceHealthWithStatus, WorkspaceHistoryCalendar, WorkspaceMetricCards, WorkspaceMetricCardsImpl, 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, authRateLimitService, checkRateLimit, clearAllRateLimits, clearRateLimit, clearS3VideoCache, clearS3VideoFromCache, clearWorkspaceDisplayNamesCache, cn, createStreamProxyHandler, createSupabaseClient, createThrottledReload, dashboardService, deleteThread, forceRefreshWorkspaceDisplayNames, formatDateInZone, formatDateTimeInZone, formatISTDate, formatIdleTime, formatTimeInZone, fromUrlFriendlyName, getAllLineDisplayNames, getAllThreadMessages, getAllWorkspaceDisplayNamesAsync, getAnonClient, getCameraNumber, getCompanyMetricsTableName, getConfigurableShortWorkspaceDisplayName, getConfigurableWorkspaceDisplayName, getConfiguredLineIds, getCoreSessionRecordingProperties, getCoreSessionReplayUrl, getCurrentShift, getCurrentTimeInZone, getDashboardHeaderTimeInZone, getDaysDifferenceInZone, getDefaultCameraStreamUrl, getDefaultLineId, getDefaultTabForWorkspace, getLineDisplayName, getManufacturingInsights, getMetricsTablePrefix, getOperationalDate, getS3SignedUrl, getS3VideoSrc, getShortWorkspaceDisplayName, getShortWorkspaceDisplayNameAsync, getStoredWorkspaceMappings, getSubscriptionManager, getThreadMessages, getUserThreads, getUserThreadsPaginated, getWorkspaceDisplayName, getWorkspaceDisplayNameAsync, getWorkspaceDisplayNamesMap, getWorkspaceFromUrl, getWorkspaceNavigationParams, identifyCoreUser, initializeCoreMixpanel, isLegacyConfiguration, isPrefetchError, isTransitionPeriod, isUrlPermanentlyFailed, isValidFactoryViewConfiguration, isValidLineInfoPayload, isValidPrefetchParams, isValidPrefetchStatus, isValidWorkspaceDetailedMetricsPayload, isValidWorkspaceMetricsPayload, isWorkspaceDisplayNamesLoaded, isWorkspaceDisplayNamesLoading, mergeWithDefaultConfig, migrateLegacyConfiguration, optifyeAgentClient, parseS3Uri, preInitializeWorkspaceDisplayNames, preloadS3Video, preloadS3VideoUrl, preloadS3VideosUrl, preloadVideoUrl, preloadVideosUrl, qualityService, realtimeService, refreshWorkspaceDisplayNames, resetCoreMixpanel, resetFailedUrl, resetSubscriptionManager, s3VideoPreloader, shuffleArray, skuService, startCoreSessionRecording, stopCoreSessionRecording, storeWorkspaceMapping, streamProxyConfig, throttledReloadDashboard, toUrlFriendlyName, trackCoreEvent, trackCorePageView, updateThreadTitle, useActiveBreaks, useAllWorkspaceMetrics, useAnalyticsConfig, useAudioService, useAuth, useAuthConfig, useCanSaveTargets, useComponentOverride, useCustomConfig, useDashboardConfig, useDashboardMetrics, useDatabaseConfig, useDateFormatter, useDateTimeConfig, useEndpointsConfig, useEntityConfig, useFactoryOverviewMetrics, useFeatureFlags, useFormatNumber, useHistoricWorkspaceMetrics, useHlsStream, useHlsStreamWithCropping, useHookOverride, useHourEndTimer, useHourlyTargetAchievements, useHourlyTargetMisses, useLeaderboardMetrics, useLineDetailedMetrics, useLineKPIs, useLineMetrics, useLineWorkspaceMetrics, useMessages, useMetrics, useNavigation, useOverrides, usePageOverride, usePrefetchClipCounts, useRealtimeLineMetrics, useRegistry, useSKUs, useShiftConfig, useShifts, useSubscriptionManager, useSubscriptionManagerSafe, useSupabase, useSupabaseClient, useTargets, useTheme, useThemeConfig, useThreads, useTicketHistory, useVideoConfig, useWorkspaceConfig, useWorkspaceDetailedMetrics, useWorkspaceDisplayName, useWorkspaceDisplayNames, useWorkspaceDisplayNamesMap, useWorkspaceHealth, useWorkspaceHealthById, useWorkspaceMetrics, useWorkspaceNavigation, useWorkspaceOperators, videoPrefetchManager, videoPreloader, whatsappService, withAuth, withRegistry, workspaceHealthService, workspaceService };
6716
+ export { ACTION_NAMES, AIAgentView, type AccessControlReturn, type Action, type ActionName, type ActionService, type ActionThreshold, type ActiveBreak, type AnalyticsConfig, AudioService, AuthCallback, type AuthCallbackProps, AuthCallbackView, type AuthCallbackViewProps, type AuthConfig, AuthProvider, type AuthUser, AuthenticatedFactoryView, AuthenticatedHelpView, AuthenticatedHomeView, AuthenticatedShiftsView, AuthenticatedTargetsView, AuthenticatedWorkspaceHealthView, BackButton, BackButtonMinimal, BarChart, type BarChartDataItem, type BarChartProps, type BarProps, BaseHistoryCalendar, type BaseHistoryCalendarProps, type BaseLineMetric, type BasePerformanceMetric, type BottleneckFilterType, type BottleneckVideo, type BottleneckVideoData, BottlenecksContent, type BottlenecksContentProps, type BreadcrumbItem, type Break, BreakNotificationPopup, type BreakNotificationPopupProps, type BreakRowProps, type CacheEntryWithPrefetch, CachePrefetchStatus, type CachePrefetchStatusCallback, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type ChatMessage, type ChatThread, type CleanupFunction, type ClipCounts, type ClipCountsWithIndex$2 as ClipCountsWithIndex, CompactWorkspaceHealthCard, type CompanyUser, type ComponentOverride, CongratulationsOverlay, type CongratulationsOverlayProps, type CoreComponents, type CropConfig, CroppedVideoPlayer, type CroppedVideoPlayerProps, 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_VIDEO_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 DateTimeDisplayProps, type DayHistoryData, type DaySummaryData, DebugAuth, DebugAuthView, DetailedHealthStatus, EmptyStateMessage, type EmptyStateMessageProps, EncouragementOverlay, type EndpointsConfig, type EntityConfig, type ErrorCallback$1 as ErrorCallback, type ExtendedCacheMetrics, type FactoryOverviewData, FactoryView, type FactoryViewProps, FirstTimeLoginDebug, FirstTimeLoginHandler, type FormatNumberOptions, type FullyIndexedCallback$1 as FullyIndexedCallback, GaugeChart, type GaugeChartProps, GridComponentsPlaceholder, HamburgerButton, type HamburgerButtonProps, Header, type HeaderProps, type HealthAlertConfig, type HealthAlertHistory, type HealthFilterOptions, type HealthMetrics, type HealthStatus, HealthStatusGrid, HealthStatusIndicator, type HealthSummary, HelpView, type HelpViewProps, type HistoryCalendarProps, HomeView, type HookOverride, type HourlyAchievement, HourlyOutputChart, type HourlyOutputChartProps, type HourlyPerformance, type IPrefetchManager, type ISTDateProps, ISTTimer, type ISTTimerProps, InlineEditableText, InteractiveOnboardingTour, KPICard, type KPICardProps, KPIDetailViewWithDisplayNames as KPIDetailView, type KPIDetailViewProps, KPIGrid, type KPIGridProps, KPIHeader, type KPIHeaderProps, KPISection, type KPITrend, KPIsOverviewView, type KPIsOverviewViewProps, LINE_1_UUID, LINE_2_UUID, LargeOutputProgressChart, type LargeOutputProgressChartProps, LeaderboardDetailViewWithDisplayNames as LeaderboardDetailView, type LeaderboardDetailViewProps, type LeaderboardEntry, Legend, type Line$1 as Line, 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, LinesService, LiveTimer, LoadingInline, LoadingInline as LoadingInlineProps, LoadingOverlay, LoadingPage, LoadingSkeleton, LoadingSkeleton as LoadingSkeletonProps, LoadingState, LoadingState as LoadingStateProps, LoginPage, type LoginPageProps, LoginView, type LoginViewProps, MainLayout, type MainLayoutProps, type Metric, MetricCard, type MetricCardProps$1 as MetricCardProps, type MetricsError, MinimalOnboardingPopup, type NavItem, type NavItemTrackingEvent, type NavigationMethod, NewClipsNotification, type NewClipsNotificationProps, NoWorkspaceData, OnboardingDemo, OnboardingTour, type OperatorData, type OperatorInfo, OptifyeAgentClient, type OptifyeAgentContext, type OptifyeAgentRequest, type OptifyeAgentResponse, OptifyeLogoLoader, OutputProgressChart, type OutputProgressChartProps, type OverridesMap, type OverviewLineMetric, type OverviewWorkspaceMetric, PageHeader, type PageHeaderProps, type PageOverride, PieChart, type PieChartProps, type PoorPerformingWorkspace, PrefetchConfigurationError, PrefetchError, PrefetchEvents, type PrefetchKey, type PrefetchManagerConfig, type PrefetchManagerStats, type PrefetchOptions, type PrefetchParams$1 as PrefetchParams, type PrefetchRequest, type PrefetchResult, PrefetchStatus$1 as PrefetchStatus, type PrefetchStatusResult, type PrefetchSubscriptionCallbacks, PrefetchTimeoutError, type ProfileMenuItem, ProfileView, type QualityMetric, type QualityOverview, type QualityService, type RateLimitOptions, type RateLimitResult, type RealtimeService, RegistryProvider, type RenderReadyCallback$1 as RenderReadyCallback, type RoutePath, type S3ClipsAPIParams, S3ClipsService$1 as S3ClipsService, type S3Config, type S3ListObjectsParams, S3Service, type S3ServiceConfig, type SKU, type SKUConfig, type SKUCreateInput, type SKUListProps, SKUManagementView, type SKUModalProps, type SKUSelectorProps, type SKUUpdateInput, type SOPCategory, SOPComplianceChart, type SOPComplianceChartProps, SSEChatClient, type SSEEvent, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, type ShiftConfig, type ShiftConfiguration, type ShiftConfigurationRecord, type ShiftData$3 as ShiftData, ShiftDisplay, type ShiftHistoryData, type ShiftHoursMap, type ShiftPanelProps, type ShiftSummaryData, type ShiftTime, ShiftsView, type ShiftsViewProps, SideNavBar, type SideNavBarProps, type SimpleLine, SimpleOnboardingPopup, SingleVideoStream, type SingleVideoStreamProps, Skeleton, type StatusChangeCallback$1 as StatusChangeCallback, type StreamProxyConfig, type SubscriberId, SubscriptionManager, SubscriptionManagerProvider, type SupabaseClient, SupabaseProvider, type Supervisor, type SupervisorAssignment, SupervisorDropdown, type SupervisorDropdownProps, type SupervisorManagementData, SupervisorManagementView, type SupervisorManagementViewProps, SupervisorService, type Target, TargetWorkspaceGrid, type TargetWorkspaceGridProps, TargetsViewWithDisplayNames as TargetsView, type TargetsViewProps, type ThemeColorValue, type ThemeConfig, ThreadSidebar, TicketHistory, TicketHistoryService, TimeDisplay, TimePickerDropdown, type TrackingEventProperties, type TrendDirection, type UnderperformingWorkspace, type UnderperformingWorkspaces, type UptimeDetails, type UseActiveBreaksResult, type UseClipTypesResult, type UseDashboardMetricsProps, type UseFactoryOverviewOptions, type UseFormatNumberResult, type UseMessagesResult, type UsePrefetchClipCountsOptions$1 as UsePrefetchClipCountsOptions, type UsePrefetchClipCountsResult$1 as UsePrefetchClipCountsResult, type UseRealtimeLineMetricsProps, type UseTargetsOptions, type UseThreadsResult, type UseTicketHistoryReturn, type UseWorkspaceOperatorsOptions, type UserProfileConfig, type UserRole, UserService, VideoCard, type VideoConfig, type VideoCroppingConfig, type VideoCroppingRect, VideoGridView, type VideoIndex$1 as VideoIndex, type VideoIndexEntry$1 as VideoIndexEntry, type VideoMetadata, VideoPlayer, type VideoPlayerEventData, type VideoPlayerProps, type VideoPlayerRef, VideoPreloader, type VideoSeverity, type VideoSummary, type VideoType, WORKSPACE_POSITIONS, type WhatsAppSendResult, WhatsAppShareButton, type WhatsAppShareButtonProps, type WhatsappService, type Workspace, type WorkspaceActionUpdate, WorkspaceCard, type WorkspaceCardProps, type WorkspaceConfig, WrappedComponent as WorkspaceDetailView, type WorkspaceDetailedMetrics, WorkspaceDisplayNameExample, WorkspaceGrid, WorkspaceGridItem, type WorkspaceGridItemProps, type WorkspaceHealth, WorkspaceHealthCard, type WorkspaceHealthInfo, _default as WorkspaceHealthView, type WorkspaceHealthWithStatus, WorkspaceHistoryCalendar, WorkspaceMetricCards, WorkspaceMetricCardsImpl, type WorkspaceMetricCardsProps, type WorkspaceMetrics, WorkspaceMonthlyDataFetcher, type WorkspaceMonthlyDataFetcherProps, WorkspaceMonthlyHistory, 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, authRateLimitService, checkRateLimit, clearAllRateLimits, clearRateLimit, clearS3VideoCache, clearS3VideoFromCache, clearWorkspaceDisplayNamesCache, cn, createLinesService, createStreamProxyHandler, createSupabaseClient, createSupervisorService, createThrottledReload, createUserService, dashboardService, deleteThread, forceRefreshWorkspaceDisplayNames, formatDateInZone, formatDateTimeInZone, formatISTDate, formatIdleTime, formatTimeInZone, fromUrlFriendlyName, getAllLineDisplayNames, getAllThreadMessages, getAllWorkspaceDisplayNamesAsync, getAnonClient, getCameraNumber, getCompanyMetricsTableName, getConfigurableShortWorkspaceDisplayName, getConfigurableWorkspaceDisplayName, getConfiguredLineIds, getCoreSessionRecordingProperties, getCoreSessionReplayUrl, getCurrentShift, getCurrentTimeInZone, getDashboardHeaderTimeInZone, getDaysDifferenceInZone, getDefaultCameraStreamUrl, getDefaultLineId, getDefaultTabForWorkspace, getLineDisplayName, getManufacturingInsights, getMetricsTablePrefix, getOperationalDate, getS3SignedUrl, getS3VideoSrc, getShortWorkspaceDisplayName, getShortWorkspaceDisplayNameAsync, getStoredWorkspaceMappings, getSubscriptionManager, getThreadMessages, getUserThreads, getUserThreadsPaginated, getWorkspaceDisplayName, getWorkspaceDisplayNameAsync, getWorkspaceDisplayNamesMap, getWorkspaceFromUrl, getWorkspaceNavigationParams, identifyCoreUser, initializeCoreMixpanel, isLegacyConfiguration, isPrefetchError, isTransitionPeriod, isUrlPermanentlyFailed, isValidFactoryViewConfiguration, isValidLineInfoPayload, isValidPrefetchParams, isValidPrefetchStatus, isValidWorkspaceDetailedMetricsPayload, isValidWorkspaceMetricsPayload, isWorkspaceDisplayNamesLoaded, isWorkspaceDisplayNamesLoading, linesService, mergeWithDefaultConfig, migrateLegacyConfiguration, optifyeAgentClient, parseS3Uri, preInitializeWorkspaceDisplayNames, preloadS3Video, preloadS3VideoUrl, preloadS3VideosUrl, preloadVideoUrl, preloadVideosUrl, qualityService, realtimeService, refreshWorkspaceDisplayNames, resetCoreMixpanel, resetFailedUrl, resetSubscriptionManager, s3VideoPreloader, shuffleArray, simulateApiDelay, skuService, startCoreSessionRecording, stopCoreSessionRecording, storeWorkspaceMapping, streamProxyConfig, throttledReloadDashboard, toUrlFriendlyName, trackCoreEvent, trackCorePageView, updateThreadTitle, useAccessControl, useActiveBreaks, useAllWorkspaceMetrics, useAnalyticsConfig, useAudioService, useAuth, useAuthConfig, useCanSaveTargets, useClipTypes, useClipTypesWithCounts, useComponentOverride, useCustomConfig, useDashboardConfig, useDashboardMetrics, useDatabaseConfig, useDateFormatter, useDateTimeConfig, useEndpointsConfig, useEntityConfig, useFactoryOverviewMetrics, useFeatureFlags, useFormatNumber, useHistoricWorkspaceMetrics, useHlsStream, useHlsStreamWithCropping, useHookOverride, useHourEndTimer, useHourlyTargetAchievements, useHourlyTargetMisses, useLeaderboardMetrics, useLineDetailedMetrics, useLineKPIs, useLineMetrics, useLineWorkspaceMetrics, useMessages, useMetrics, useNavigation, useOverrides, usePageOverride, usePrefetchClipCounts, useRealtimeLineMetrics, useRegistry, useSKUs, useShiftConfig, useShifts, useSubscriptionManager, useSubscriptionManagerSafe, useSupabase, useSupabaseClient, useTargets, useTheme, useThemeConfig, useThreads, useTicketHistory, useVideoConfig, useWorkspaceConfig, useWorkspaceDetailedMetrics, useWorkspaceDisplayName, useWorkspaceDisplayNames, useWorkspaceDisplayNamesMap, useWorkspaceHealth, useWorkspaceHealthById, useWorkspaceMetrics, useWorkspaceNavigation, useWorkspaceOperators, userService, videoPrefetchManager, videoPreloader, whatsappService, withAccessControl, withAuth, withRegistry, workspaceHealthService, workspaceService };