@optifye/dashboard-core 6.6.6 → 6.6.8

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.ts CHANGED
@@ -3,9 +3,9 @@ import { SupabaseClient as SupabaseClient$1, Session, User, AuthError } from '@s
3
3
  import { LucideProps, Share2, Download } from 'lucide-react';
4
4
  import * as React$1 from 'react';
5
5
  import React__default, { ReactNode, HTMLAttributes } from 'react';
6
+ import * as react_jsx_runtime from 'react/jsx-runtime';
6
7
  import { EventEmitter } from 'events';
7
8
  import * as querystring from 'querystring';
8
- import * as react_jsx_runtime from 'react/jsx-runtime';
9
9
  import { Modifiers } from 'react-day-picker';
10
10
  import html2canvas from 'html2canvas';
11
11
  import * as SelectPrimitive from '@radix-ui/react-select';
@@ -1200,19 +1200,20 @@ interface SupervisorManagementData {
1200
1200
  }
1201
1201
 
1202
1202
  /**
1203
- * S3 Clips Service - Secure Version
1204
- * Uses API routes instead of direct S3 access
1203
+ * S3 Clips Service - Supabase Version
1204
+ * Uses Supabase database instead of S3 listing for clip management
1205
1205
  *
1206
- * This is a drop-in replacement for s3-clips.ts that uses
1207
- * the secure API client instead of AWS SDK.
1206
+ * This is a drop-in replacement for s3-clips-secure.ts that uses
1207
+ * the new Supabase-based API endpoints.
1208
1208
  *
1209
- * To use this:
1210
- * 1. Replace imports of './s3-clips' with './s3-clips-secure'
1211
- * 2. Remove AWS credentials from environment variables
1212
- * 3. Ensure API routes are deployed
1209
+ * Benefits:
1210
+ * - Faster loading (direct DB queries vs S3 listing)
1211
+ * - Richer metadata immediately available
1212
+ * - Better filtering and sorting capabilities
1213
+ * - Lower AWS costs
1213
1214
  */
1214
1215
 
1215
- interface VideoIndexEntry$1 {
1216
+ interface VideoIndexEntry {
1216
1217
  uri: string;
1217
1218
  category: string;
1218
1219
  timestamp: string;
@@ -1221,9 +1222,9 @@ interface VideoIndexEntry$1 {
1221
1222
  date: string;
1222
1223
  shiftId: string;
1223
1224
  }
1224
- interface VideoIndex$1 {
1225
- byCategory: Map<string, VideoIndexEntry$1[]>;
1226
- allVideos: VideoIndexEntry$1[];
1225
+ interface VideoIndex {
1226
+ byCategory: Map<string, VideoIndexEntry[]>;
1227
+ allVideos: VideoIndexEntry[];
1227
1228
  counts: Record<string, number>;
1228
1229
  workspaceId: string;
1229
1230
  date: string;
@@ -1231,17 +1232,37 @@ interface VideoIndex$1 {
1231
1232
  lastUpdated: Date;
1232
1233
  _debugId?: string;
1233
1234
  }
1234
- interface ClipCountsWithIndex$2 {
1235
+ interface ClipCountsWithIndex {
1235
1236
  counts: Record<string, number>;
1236
- videoIndex: VideoIndex$1;
1237
+ videoIndex: VideoIndex;
1238
+ }
1239
+ interface ClipType {
1240
+ id: string;
1241
+ type: string;
1242
+ label: string;
1243
+ color: string;
1244
+ description?: string;
1245
+ subtitle?: string;
1246
+ icon?: string;
1247
+ sort_order?: number;
1248
+ severity_levels?: string[];
1249
+ count?: number;
1250
+ metadata?: {
1251
+ label?: string;
1252
+ color?: string;
1253
+ description?: string;
1254
+ icon?: string;
1255
+ sort_order?: number;
1256
+ severity_levels?: string[];
1257
+ };
1237
1258
  }
1238
1259
  /**
1239
- * S3 Clips Service - Secure Implementation
1240
- * All S3 operations go through secure API routes
1260
+ * S3 Clips Service - Supabase Implementation
1261
+ * All clip operations go through Supabase database
1241
1262
  */
1242
- declare class S3ClipsService$1 {
1243
- private apiClient;
1263
+ declare class S3ClipsSupabaseService {
1244
1264
  private config;
1265
+ private requestCache;
1245
1266
  private readonly defaultLimitPerCategory;
1246
1267
  private readonly maxLimitPerCategory;
1247
1268
  private readonly concurrencyLimit;
@@ -1252,13 +1273,21 @@ declare class S3ClipsService$1 {
1252
1273
  private readonly MAX_CONCURRENT_METADATA;
1253
1274
  constructor(config: DashboardConfig);
1254
1275
  /**
1255
- * Lists S3 clips using API
1276
+ * Fetch with authentication and error handling
1277
+ */
1278
+ private fetchWithAuth;
1279
+ /**
1280
+ * Deduplicate requests to prevent multiple API calls
1281
+ */
1282
+ private deduplicate;
1283
+ /**
1284
+ * Lists clips using Supabase API
1256
1285
  */
1257
1286
  listS3Clips(params: S3ListObjectsParams): Promise<string[]>;
1258
1287
  /**
1259
1288
  * Get metadata cycle time
1260
1289
  */
1261
- getMetadataCycleTime(playlistUri: string): Promise<number | null>;
1290
+ getMetadataCycleTime(clipId: string): Promise<number | null>;
1262
1291
  /**
1263
1292
  * Control prefetch mode
1264
1293
  */
@@ -1266,90 +1295,90 @@ declare class S3ClipsService$1 {
1266
1295
  /**
1267
1296
  * Get full metadata
1268
1297
  */
1269
- getFullMetadata(playlistUri: string): Promise<VideoMetadata | null>;
1270
- /**
1271
- * Convert S3 URI to CloudFront URL
1272
- * URLs from API are already signed
1273
- */
1274
- s3UriToCloudfront(s3Uri: string): string;
1298
+ getFullMetadata(clipId: string): Promise<VideoMetadata | null>;
1275
1299
  /**
1276
- * Get SOP categories for workspace
1300
+ * Get clip counts with optional video index
1277
1301
  */
1278
- private getSOPCategories;
1302
+ getClipCountsCacheFirst(workspaceId: string, date: string, shiftId: string | number, buildIndex?: boolean): Promise<ClipCountsWithIndex | Record<string, number>>;
1279
1303
  /**
1280
- * Get clip counts
1304
+ * Get clip counts (simplified version)
1281
1305
  */
1282
1306
  getClipCounts(workspaceId: string, date: string, shiftId: string | number): Promise<Record<string, number>>;
1283
- getClipCounts(workspaceId: string, date: string, shiftId: string | number, buildIndex: true): Promise<ClipCountsWithIndex$2>;
1284
1307
  /**
1285
- * Get clip counts with cache-first strategy
1308
+ * Get clip by ID - stable navigation method
1309
+ * This ensures navigation works even when new clips are added
1286
1310
  */
1287
- getClipCountsCacheFirst(workspaceId: string, date: string, shiftId: string | number): Promise<Record<string, number>>;
1288
- getClipCountsCacheFirst(workspaceId: string, date: string, shiftId: string | number, buildIndex: true): Promise<ClipCountsWithIndex$2>;
1311
+ getClipById(clipId: string, sopCategories?: SOPCategory$1[]): Promise<BottleneckVideoData | null>;
1289
1312
  /**
1290
- * Get first clip for category
1313
+ * Map percentile category to actual implementation
1291
1314
  */
1292
- getFirstClipForCategory(workspaceId: string, date: string, shiftId: string | number, category: string): Promise<BottleneckVideoData | null>;
1315
+ private mapPercentileCategoryToType;
1293
1316
  /**
1294
- * Get video from index (for compatibility)
1317
+ * Get neighboring clips for navigation
1318
+ * Returns previous and next clips based on timestamp
1319
+ * Handles both regular and percentile categories
1295
1320
  */
1296
- getVideoFromIndex(videoIndex: VideoIndex$1, category: string, index: number, includeCycleTime?: boolean, includeMetadata?: boolean): Promise<BottleneckVideoData | null>;
1321
+ getNeighboringClips(workspaceId: string, date: string, shiftId: string | number, category: string, currentClipId: string, sopCategories?: SOPCategory$1[]): Promise<{
1322
+ previous: BottleneckVideoData | null;
1323
+ next: BottleneckVideoData | null;
1324
+ }>;
1297
1325
  /**
1298
1326
  * Get clip by index
1327
+ * @deprecated Use getClipById for stable navigation
1299
1328
  */
1300
- getClipByIndex(workspaceId: string, date: string, shiftId: string | number, category: string, index: number, includeCycleTime?: boolean, includeMetadata?: boolean): Promise<BottleneckVideoData | null>;
1329
+ getClipByIndex(workspaceId: string, date: string, shiftId: string | number, category: string, index: number): Promise<BottleneckVideoData | null>;
1301
1330
  /**
1302
- * Process full video (for compatibility)
1331
+ * Get first clip for all categories
1303
1332
  */
1304
- processFullVideo(uri: string, index: number, workspaceId: string, date: string, shiftId: string | number, includeCycleTime: boolean, includeMetadata?: boolean): Promise<BottleneckVideoData | null>;
1333
+ getFirstClipsForAllCategories(workspaceId: string, date: string, shiftId: string | number): Promise<Record<string, BottleneckVideoData | null>>;
1305
1334
  /**
1306
- * Fetch clips (main method for compatibility)
1335
+ * Get first clip for a specific category
1307
1336
  */
1308
- fetchClips(params: S3ClipsAPIParams): Promise<BottleneckVideoData[] | VideoSummary>;
1337
+ getFirstClipForCategory(workspaceId: string, date: string, shiftId: string | number, category: string): Promise<BottleneckVideoData | null>;
1309
1338
  /**
1310
- * Batch fetch multiple videos in parallel
1339
+ * Batch fetch videos (alias for batchFetchClips for compatibility)
1311
1340
  */
1312
1341
  batchFetchVideos(workspaceId: string, date: string, shiftId: string | number, requests: Array<{
1313
1342
  category: string;
1314
1343
  index: number;
1315
- includeMetadata?: boolean;
1316
- }>): Promise<BottleneckVideoData[]>;
1344
+ }>): Promise<Array<BottleneckVideoData | null>>;
1317
1345
  /**
1318
- * Get videos page using pagination API
1346
+ * Batch fetch clips
1319
1347
  */
1320
- getVideosPage(workspaceId: string, date: string, shiftId: string | number, category: string, pageSize?: number, startAfter?: string): Promise<{
1321
- videos: BottleneckVideoData[];
1322
- nextToken?: string;
1323
- hasMore: boolean;
1324
- }>;
1348
+ batchFetchClips(workspaceId: string, date: string, shiftId: string | number, requests: Array<{
1349
+ category: string;
1350
+ index: number;
1351
+ }>): Promise<Array<BottleneckVideoData | null>>;
1325
1352
  /**
1326
- * Create empty video index for compatibility
1353
+ * Get all clip types from Supabase
1327
1354
  */
1328
- private createEmptyVideoIndex;
1355
+ getClipTypes(): Promise<ClipType[]>;
1329
1356
  /**
1330
- * Get clip by ID
1357
+ * Ensure videos are loaded for navigation
1331
1358
  */
1332
- getClipById(clipId: string, sopCategories?: SOPCategory$1[]): Promise<BottleneckVideoData | null>;
1359
+ ensureVideosLoaded(workspaceId: string, date: string, shiftId: string | number, category: string, currentIndex: number): Promise<void>;
1333
1360
  /**
1334
- * Get neighboring clips
1361
+ * Get percentile-based clips (fast cycles, slow cycles, idle times)
1335
1362
  */
1336
- getNeighboringClips(workspaceId: string, date: string, shiftId: string | number, category: string, currentClipId: string, sopCategories?: SOPCategory$1[]): Promise<{
1337
- previous: BottleneckVideoData | null;
1338
- next: BottleneckVideoData | null;
1363
+ getPercentileClips(workspaceId: string, date: string, shiftId: string | number, type: 'fast-cycles' | 'slow-cycles' | 'idle-times', percentile?: number, limit?: number): Promise<{
1364
+ clips: BottleneckVideoData[];
1365
+ total: number;
1366
+ hasMore: boolean;
1339
1367
  }>;
1340
1368
  /**
1341
- * Cleanup
1369
+ * Get workspace statistics
1342
1370
  */
1343
- dispose(): void;
1371
+ getWorkspaceStats(workspaceId: string, startDate?: string, endDate?: string): Promise<any>;
1344
1372
  /**
1345
- * Get statistics
1373
+ * Helper to get severity from clip type
1374
+ * Updated for new materialized view structure (only cycle_completion in 'cycle' category)
1346
1375
  */
1347
- getStats(): {
1348
- requestCache: {
1349
- pendingCount: number;
1350
- maxSize: number;
1351
- };
1352
- };
1376
+ private getSeverityFromClipType;
1377
+ /**
1378
+ * Helper to get description from clip type
1379
+ * Updated for new materialized view structure
1380
+ */
1381
+ private getDescriptionFromClipType;
1353
1382
  }
1354
1383
 
1355
1384
  /**
@@ -1400,7 +1429,7 @@ interface PrefetchRequest {
1400
1429
  /**
1401
1430
  * Promise for the prefetch operation
1402
1431
  */
1403
- promise: Promise<ClipCountsWithIndex$2 | null>;
1432
+ promise: Promise<ClipCountsWithIndex | null>;
1404
1433
  /**
1405
1434
  * Current status of the request
1406
1435
  */
@@ -1408,7 +1437,7 @@ interface PrefetchRequest {
1408
1437
  /**
1409
1438
  * Cached data (null until available)
1410
1439
  */
1411
- data: ClipCountsWithIndex$2 | null;
1440
+ data: ClipCountsWithIndex | null;
1412
1441
  /**
1413
1442
  * Any error that occurred
1414
1443
  */
@@ -1422,9 +1451,9 @@ interface PrefetchRequest {
1422
1451
  */
1423
1452
  subscribers: Set<string>;
1424
1453
  }
1425
- type StatusChangeCallback$1 = (key: string, status: PrefetchStatus$1, data?: ClipCountsWithIndex$2 | null, error?: Error | null) => void;
1426
- type RenderReadyCallback$1 = (key: string, data: ClipCountsWithIndex$2) => void;
1427
- type FullyIndexedCallback$1 = (key: string, data: ClipCountsWithIndex$2) => void;
1454
+ type StatusChangeCallback$1 = (key: string, status: PrefetchStatus$1, data?: ClipCountsWithIndex | null, error?: Error | null) => void;
1455
+ type RenderReadyCallback$1 = (key: string, data: ClipCountsWithIndex) => void;
1456
+ type FullyIndexedCallback$1 = (key: string, data: ClipCountsWithIndex) => void;
1428
1457
  type ErrorCallback$1 = (key: string, error: Error) => void;
1429
1458
  interface PrefetchSubscriptionCallbacks {
1430
1459
  /**
@@ -1452,7 +1481,7 @@ interface PrefetchStatusResult {
1452
1481
  /**
1453
1482
  * Available data (null until render-ready)
1454
1483
  */
1455
- data: ClipCountsWithIndex$2 | null;
1484
+ data: ClipCountsWithIndex | null;
1456
1485
  /**
1457
1486
  * Any error that occurred
1458
1487
  */
@@ -1532,7 +1561,7 @@ interface UsePrefetchClipCountsResult$1 {
1532
1561
  /**
1533
1562
  * Clip counts data (available when render ready or fully indexed)
1534
1563
  */
1535
- data: ClipCountsWithIndex$2 | null;
1564
+ data: ClipCountsWithIndex | null;
1536
1565
  /**
1537
1566
  * Any error that occurred during prefetching
1538
1567
  */
@@ -1552,7 +1581,7 @@ interface UsePrefetchClipCountsResult$1 {
1552
1581
  /**
1553
1582
  * Manual trigger function for re-prefetching
1554
1583
  */
1555
- prefetchClipCounts: () => Promise<ClipCountsWithIndex$2 | null>;
1584
+ prefetchClipCounts: () => Promise<ClipCountsWithIndex | null>;
1556
1585
  /**
1557
1586
  * Cache key used for this request
1558
1587
  */
@@ -1650,7 +1679,7 @@ interface PrefetchResult {
1650
1679
  /**
1651
1680
  * The prefetched data
1652
1681
  */
1653
- data: ClipCountsWithIndex$2 | null;
1682
+ data: ClipCountsWithIndex | null;
1654
1683
  /**
1655
1684
  * Whether this came from cache
1656
1685
  */
@@ -1687,10 +1716,10 @@ type PrefetchKey = string;
1687
1716
  type SubscriberId = string;
1688
1717
  type CleanupFunction = () => void;
1689
1718
  interface IPrefetchManager {
1690
- prefetch(params: PrefetchParams$1, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex$2 | null>;
1719
+ prefetch(params: PrefetchParams$1, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex | null>;
1691
1720
  getStatus(params: PrefetchParams$1): PrefetchStatusResult;
1692
1721
  isDataAvailable(params: PrefetchParams$1): boolean;
1693
- getCachedData(params: PrefetchParams$1): ClipCountsWithIndex$2 | null;
1722
+ getCachedData(params: PrefetchParams$1): ClipCountsWithIndex | null;
1694
1723
  subscribe(params: PrefetchParams$1, subscriberId: string, callbacks: PrefetchSubscriptionCallbacks): CleanupFunction;
1695
1724
  cancel(params: PrefetchParams$1, subscriberId?: string): void;
1696
1725
  clear(): void;
@@ -1984,6 +2013,45 @@ declare const ClipFilterProvider: React__default.FC<{
1984
2013
  }>;
1985
2014
  declare const useClipFilter: () => ClipFilterContextValue;
1986
2015
 
2016
+ interface TimezoneContextValue {
2017
+ timezone: string;
2018
+ isLoading: boolean;
2019
+ error: Error | null;
2020
+ refetch: () => Promise<void>;
2021
+ }
2022
+ interface TimezoneProviderProps {
2023
+ children: ReactNode;
2024
+ workspaceId?: string;
2025
+ lineId?: string;
2026
+ companyId?: string;
2027
+ fallbackTimezone?: string;
2028
+ }
2029
+ /**
2030
+ * TimezoneProvider
2031
+ * Fetches timezone from database on mount and provides it to all child components
2032
+ * This ensures consistent timezone usage across the entire application
2033
+ */
2034
+ declare function TimezoneProvider({ children, workspaceId: propWorkspaceId, lineId: propLineId, companyId: propCompanyId, fallbackTimezone }: TimezoneProviderProps): react_jsx_runtime.JSX.Element;
2035
+ /**
2036
+ * useTimezoneContext
2037
+ * Hook to access timezone from context
2038
+ * Throws error if used outside of TimezoneProvider
2039
+ */
2040
+ declare function useTimezoneContext(): TimezoneContextValue;
2041
+ /**
2042
+ * useAppTimezone
2043
+ * Convenience hook that returns just the timezone string
2044
+ * Use this in components that need the timezone value
2045
+ */
2046
+ declare function useAppTimezone(): string;
2047
+ /**
2048
+ * withTimezone
2049
+ * HOC to inject timezone into components
2050
+ */
2051
+ declare function withTimezone<P extends {
2052
+ timezone?: string;
2053
+ }>(Component: React__default.ComponentType<P>): React__default.ComponentType<Omit<P, 'timezone'>>;
2054
+
1987
2055
  /**
1988
2056
  * @hook useWorkspaceMetrics
1989
2057
  * @summary Fetches and subscribes to overview metrics for a specific workspace.
@@ -2985,188 +3053,6 @@ interface UseTicketHistoryReturn {
2985
3053
  }
2986
3054
  declare function useTicketHistory(companyId?: string): UseTicketHistoryReturn;
2987
3055
 
2988
- /**
2989
- * S3 Clips Service - Supabase Version
2990
- * Uses Supabase database instead of S3 listing for clip management
2991
- *
2992
- * This is a drop-in replacement for s3-clips-secure.ts that uses
2993
- * the new Supabase-based API endpoints.
2994
- *
2995
- * Benefits:
2996
- * - Faster loading (direct DB queries vs S3 listing)
2997
- * - Richer metadata immediately available
2998
- * - Better filtering and sorting capabilities
2999
- * - Lower AWS costs
3000
- */
3001
-
3002
- interface VideoIndexEntry {
3003
- uri: string;
3004
- category: string;
3005
- timestamp: string;
3006
- videoId: string;
3007
- workspaceId: string;
3008
- date: string;
3009
- shiftId: string;
3010
- }
3011
- interface VideoIndex {
3012
- byCategory: Map<string, VideoIndexEntry[]>;
3013
- allVideos: VideoIndexEntry[];
3014
- counts: Record<string, number>;
3015
- workspaceId: string;
3016
- date: string;
3017
- shiftId: string;
3018
- lastUpdated: Date;
3019
- _debugId?: string;
3020
- }
3021
- interface ClipCountsWithIndex$1 {
3022
- counts: Record<string, number>;
3023
- videoIndex: VideoIndex;
3024
- }
3025
- interface ClipType {
3026
- id: string;
3027
- type: string;
3028
- label: string;
3029
- color: string;
3030
- description?: string;
3031
- subtitle?: string;
3032
- icon?: string;
3033
- sort_order?: number;
3034
- severity_levels?: string[];
3035
- count?: number;
3036
- metadata?: {
3037
- label?: string;
3038
- color?: string;
3039
- description?: string;
3040
- icon?: string;
3041
- sort_order?: number;
3042
- severity_levels?: string[];
3043
- };
3044
- }
3045
- /**
3046
- * S3 Clips Service - Supabase Implementation
3047
- * All clip operations go through Supabase database
3048
- */
3049
- declare class S3ClipsSupabaseService {
3050
- private config;
3051
- private requestCache;
3052
- private readonly defaultLimitPerCategory;
3053
- private readonly maxLimitPerCategory;
3054
- private readonly concurrencyLimit;
3055
- private readonly maxInitialFetch;
3056
- private isIndexBuilding;
3057
- private isPrefetching;
3058
- private currentMetadataFetches;
3059
- private readonly MAX_CONCURRENT_METADATA;
3060
- constructor(config: DashboardConfig);
3061
- /**
3062
- * Fetch with authentication and error handling
3063
- */
3064
- private fetchWithAuth;
3065
- /**
3066
- * Deduplicate requests to prevent multiple API calls
3067
- */
3068
- private deduplicate;
3069
- /**
3070
- * Lists clips using Supabase API
3071
- */
3072
- listS3Clips(params: S3ListObjectsParams): Promise<string[]>;
3073
- /**
3074
- * Get metadata cycle time
3075
- */
3076
- getMetadataCycleTime(clipId: string): Promise<number | null>;
3077
- /**
3078
- * Control prefetch mode
3079
- */
3080
- setPrefetchMode(enabled: boolean): void;
3081
- /**
3082
- * Get full metadata
3083
- */
3084
- getFullMetadata(clipId: string): Promise<VideoMetadata | null>;
3085
- /**
3086
- * Get clip counts with optional video index
3087
- */
3088
- getClipCountsCacheFirst(workspaceId: string, date: string, shiftId: string | number, buildIndex?: boolean): Promise<ClipCountsWithIndex$1 | Record<string, number>>;
3089
- /**
3090
- * Get clip counts (simplified version)
3091
- */
3092
- getClipCounts(workspaceId: string, date: string, shiftId: string | number): Promise<Record<string, number>>;
3093
- /**
3094
- * Get clip by ID - stable navigation method
3095
- * This ensures navigation works even when new clips are added
3096
- */
3097
- getClipById(clipId: string, sopCategories?: SOPCategory$1[]): Promise<BottleneckVideoData | null>;
3098
- /**
3099
- * Map percentile category to actual implementation
3100
- */
3101
- private mapPercentileCategoryToType;
3102
- /**
3103
- * Get neighboring clips for navigation
3104
- * Returns previous and next clips based on timestamp
3105
- * Handles both regular and percentile categories
3106
- */
3107
- getNeighboringClips(workspaceId: string, date: string, shiftId: string | number, category: string, currentClipId: string, sopCategories?: SOPCategory$1[]): Promise<{
3108
- previous: BottleneckVideoData | null;
3109
- next: BottleneckVideoData | null;
3110
- }>;
3111
- /**
3112
- * Get clip by index
3113
- * @deprecated Use getClipById for stable navigation
3114
- */
3115
- getClipByIndex(workspaceId: string, date: string, shiftId: string | number, category: string, index: number): Promise<BottleneckVideoData | null>;
3116
- /**
3117
- * Get first clip for all categories
3118
- */
3119
- getFirstClipsForAllCategories(workspaceId: string, date: string, shiftId: string | number): Promise<Record<string, BottleneckVideoData | null>>;
3120
- /**
3121
- * Get first clip for a specific category
3122
- */
3123
- getFirstClipForCategory(workspaceId: string, date: string, shiftId: string | number, category: string): Promise<BottleneckVideoData | null>;
3124
- /**
3125
- * Batch fetch videos (alias for batchFetchClips for compatibility)
3126
- */
3127
- batchFetchVideos(workspaceId: string, date: string, shiftId: string | number, requests: Array<{
3128
- category: string;
3129
- index: number;
3130
- }>): Promise<Array<BottleneckVideoData | null>>;
3131
- /**
3132
- * Batch fetch clips
3133
- */
3134
- batchFetchClips(workspaceId: string, date: string, shiftId: string | number, requests: Array<{
3135
- category: string;
3136
- index: number;
3137
- }>): Promise<Array<BottleneckVideoData | null>>;
3138
- /**
3139
- * Get all clip types from Supabase
3140
- */
3141
- getClipTypes(): Promise<ClipType[]>;
3142
- /**
3143
- * Ensure videos are loaded for navigation
3144
- */
3145
- ensureVideosLoaded(workspaceId: string, date: string, shiftId: string | number, category: string, currentIndex: number): Promise<void>;
3146
- /**
3147
- * Get percentile-based clips (fast cycles, slow cycles, idle times)
3148
- */
3149
- getPercentileClips(workspaceId: string, date: string, shiftId: string | number, type: 'fast-cycles' | 'slow-cycles' | 'idle-times', percentile?: number, limit?: number): Promise<{
3150
- clips: BottleneckVideoData[];
3151
- total: number;
3152
- hasMore: boolean;
3153
- }>;
3154
- /**
3155
- * Get workspace statistics
3156
- */
3157
- getWorkspaceStats(workspaceId: string, startDate?: string, endDate?: string): Promise<any>;
3158
- /**
3159
- * Helper to get severity from clip type
3160
- * Updated for new materialized view structure (only cycle_completion in 'cycle' category)
3161
- */
3162
- private getSeverityFromClipType;
3163
- /**
3164
- * Helper to get description from clip type
3165
- * Updated for new materialized view structure
3166
- */
3167
- private getDescriptionFromClipType;
3168
- }
3169
-
3170
3056
  /**
3171
3057
  * Video Prefetch Manager - DISABLED
3172
3058
  *
@@ -3176,7 +3062,6 @@ declare class S3ClipsSupabaseService {
3176
3062
  * The file is kept for compatibility but all functionality is disabled.
3177
3063
  */
3178
3064
 
3179
- declare const S3ClipsService: typeof S3ClipsService$1 | typeof S3ClipsSupabaseService;
3180
3065
  declare enum PrefetchStatus {
3181
3066
  IDLE = "idle",
3182
3067
  PENDING = "pending",
@@ -3189,9 +3074,9 @@ interface PrefetchParams {
3189
3074
  date: string;
3190
3075
  shift: string;
3191
3076
  }
3192
- type StatusChangeCallback = (key: string, status: PrefetchStatus, data?: ClipCountsWithIndex$2 | null, error?: Error | null) => void;
3193
- type RenderReadyCallback = (key: string, data: ClipCountsWithIndex$2) => void;
3194
- type FullyIndexedCallback = (key: string, data: ClipCountsWithIndex$2) => void;
3077
+ type StatusChangeCallback = (key: string, status: PrefetchStatus, data?: ClipCountsWithIndex | null, error?: Error | null) => void;
3078
+ type RenderReadyCallback = (key: string, data: ClipCountsWithIndex) => void;
3079
+ type FullyIndexedCallback = (key: string, data: ClipCountsWithIndex) => void;
3195
3080
  type ErrorCallback = (key: string, error: Error) => void;
3196
3081
  /**
3197
3082
  * DISABLED Video Prefetch Manager
@@ -3205,17 +3090,17 @@ declare class VideoPrefetchManager extends EventEmitter {
3205
3090
  * Get or create S3 service instance
3206
3091
  * Still functional to provide S3 service instances
3207
3092
  */
3208
- getS3Service(dashboardConfig: DashboardConfig): InstanceType<typeof S3ClipsService>;
3093
+ getS3Service(dashboardConfig: DashboardConfig): InstanceType<typeof S3ClipsSupabaseService>;
3209
3094
  /**
3210
3095
  * DISABLED - Returns null immediately
3211
3096
  */
3212
- prefetch(params: PrefetchParams, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex$2 | null>;
3097
+ prefetch(params: PrefetchParams, dashboardConfig: DashboardConfig, subscriberId?: string, buildIndex?: boolean): Promise<ClipCountsWithIndex | null>;
3213
3098
  /**
3214
3099
  * DISABLED - Returns idle status
3215
3100
  */
3216
3101
  getStatus(params: PrefetchParams): {
3217
3102
  status: PrefetchStatus;
3218
- data: ClipCountsWithIndex$2 | null;
3103
+ data: ClipCountsWithIndex | null;
3219
3104
  error: Error | null;
3220
3105
  isRenderReady: boolean;
3221
3106
  isFullyIndexed: boolean;
@@ -3227,7 +3112,7 @@ declare class VideoPrefetchManager extends EventEmitter {
3227
3112
  /**
3228
3113
  * DISABLED - Always returns null
3229
3114
  */
3230
- getCachedData(params: PrefetchParams): ClipCountsWithIndex$2 | null;
3115
+ getCachedData(params: PrefetchParams): ClipCountsWithIndex | null;
3231
3116
  /**
3232
3117
  * DISABLED - Returns empty cleanup function
3233
3118
  */
@@ -3270,9 +3155,6 @@ declare const videoPrefetchManager: VideoPrefetchManager;
3270
3155
  * The file is kept for compatibility but all functionality is disabled.
3271
3156
  */
3272
3157
 
3273
- declare const USE_SUPABASE_CLIPS = true;
3274
-
3275
- type ClipCountsWithIndex = typeof USE_SUPABASE_CLIPS extends true ? ClipCountsWithIndex$1 : ClipCountsWithIndex$2;
3276
3158
  interface UsePrefetchClipCountsOptions {
3277
3159
  workspaceId: string;
3278
3160
  date?: string;
@@ -4182,6 +4064,39 @@ declare const userService: {
4182
4064
  create: (supabase: SupabaseClient$1) => UserService;
4183
4065
  };
4184
4066
 
4067
+ declare class TimezoneService {
4068
+ private static instance;
4069
+ private timezoneCache;
4070
+ private supabaseUrl;
4071
+ private supabaseAnonKey;
4072
+ private constructor();
4073
+ static getInstance(): TimezoneService;
4074
+ /**
4075
+ * Fetch timezone for a specific line from Supabase
4076
+ */
4077
+ getTimezoneForLine(lineId: string, defaultTimezone?: string): Promise<string>;
4078
+ /**
4079
+ * Fetch timezone for a company's factory
4080
+ */
4081
+ getTimezoneForCompany(companyId: string, defaultTimezone?: string): Promise<string>;
4082
+ /**
4083
+ * Fetch timezone for a workspace
4084
+ */
4085
+ getTimezoneForWorkspace(workspaceId: string, defaultTimezone?: string): Promise<string>;
4086
+ /**
4087
+ * Batch fetch timezones for multiple lines
4088
+ */
4089
+ getTimezonesForLines(lineIds: string[], defaultTimezone?: string): Promise<Map<string, string>>;
4090
+ /**
4091
+ * Clear timezone cache
4092
+ */
4093
+ clearCache(): void;
4094
+ /**
4095
+ * Clear specific entry from cache
4096
+ */
4097
+ clearCacheEntry(key: string): void;
4098
+ }
4099
+
4185
4100
  /**
4186
4101
  * Helper object for making authenticated API requests using Supabase auth token.
4187
4102
  * Assumes endpoints are relative to the apiBaseUrl configured in DashboardConfig.
@@ -4235,7 +4150,8 @@ declare const mergeWithDefaultConfig: (userConfig: Partial<DashboardConfig>) =>
4235
4150
  * @param shiftStartTime - The start time of the day shift (e.g., "06:00") from config, used to determine the day boundary.
4236
4151
  * @returns The operational date formatted as "yyyy-MM-dd".
4237
4152
  */
4238
- declare const getOperationalDate: (timezone?: string, date?: Date, shiftStartTime?: string) => string;
4153
+ declare const getOperationalDate: (timezone: string, // Required - no default!
4154
+ date?: Date, shiftStartTime?: string) => string;
4239
4155
  /**
4240
4156
  * @function formatTimeInZone
4241
4157
  * @summary Formats a time string in a specified timezone using date-fns.
@@ -4967,6 +4883,12 @@ declare const ShiftDisplay: React__default.FC<ShiftDisplayProps>;
4967
4883
  */
4968
4884
  declare const ISTTimer: React__default.FC;
4969
4885
 
4886
+ /**
4887
+ * Timer composes TimeDisplay from within @optifye/dashboard-core.
4888
+ * Uses timezone fetched from database via TimezoneContext.
4889
+ */
4890
+ declare const Timer: React__default.FC;
4891
+
4970
4892
  interface TicketHistoryProps {
4971
4893
  companyId: string;
4972
4894
  }
@@ -5379,7 +5301,7 @@ declare const WorkspaceMetricCardsImpl: React__default.FC<WorkspaceMetricCardsPr
5379
5301
  declare const WorkspaceMetricCards: React__default.FC<WorkspaceMetricCardsProps>;
5380
5302
 
5381
5303
  /**
5382
- * LiveTimer component that displays the current time in IST format
5304
+ * LiveTimer component that displays the current time in database timezone
5383
5305
  * This is used in the workspace detail view to show real-time updates
5384
5306
  */
5385
5307
  declare const LiveTimer: React__default.FC;
@@ -5767,7 +5689,7 @@ interface FileManagerFiltersProps {
5767
5689
  counts?: Record<string, number>;
5768
5690
  onFilterChange: (filterId: string) => void;
5769
5691
  onVideoSelect: (videoIndex: number) => void;
5770
- onClipSelect?: (categoryId: string, clipId: string) => void;
5692
+ onClipSelect?: (categoryId: string, clipId: string, position?: number) => void;
5771
5693
  workspaceId?: string;
5772
5694
  date?: string;
5773
5695
  shift?: string | number;
@@ -5995,16 +5917,22 @@ interface VideoPlayerProps {
5995
5917
  className?: string;
5996
5918
  /** Video player options */
5997
5919
  options?: any;
5920
+ /** Whether loading is controlled externally (disables internal loading indicator) */
5921
+ externalLoadingControl?: boolean;
5922
+ /** Callback for loading state changes */
5923
+ onLoadingChange?: (isLoading: boolean) => void;
5998
5924
  /** Event callbacks */
5999
5925
  onReady?: (player: Player) => void;
6000
5926
  onPlay?: (player: Player) => void;
6001
5927
  onPause?: (player: Player) => void;
5928
+ onPlaying?: (player: Player) => void;
6002
5929
  onTimeUpdate?: (player: Player, currentTime: number) => void;
6003
5930
  onDurationChange?: (player: Player, duration: number) => void;
6004
5931
  onEnded?: (player: Player) => void;
6005
5932
  onError?: (player: Player, error: any) => void;
6006
5933
  onLoadStart?: (player: Player) => void;
6007
5934
  onLoadedMetadata?: (player: Player) => void;
5935
+ onLoadedData?: (player: Player) => void;
6008
5936
  onSeeking?: (player: Player) => void;
6009
5937
  onSeeked?: (player: Player) => void;
6010
5938
  }
@@ -6727,7 +6655,7 @@ declare class S3Service {
6727
6655
  /**
6728
6656
  * List S3 clips for a specific workspace and date
6729
6657
  */
6730
- listS3Clips(workspaceId: string, date?: string): Promise<string[]>;
6658
+ listS3Clips(workspaceId: string, date: string): Promise<string[]>;
6731
6659
  /**
6732
6660
  * Generate mock S3 URIs for simulated mode
6733
6661
  */
@@ -6747,7 +6675,7 @@ declare class S3Service {
6747
6675
  /**
6748
6676
  * Get all clips for a workspace on a specific date
6749
6677
  */
6750
- getWorkspaceClips(workspaceId: string, date?: string): Promise<BottleneckVideo[]>;
6678
+ getWorkspaceClips(workspaceId: string, date: string): Promise<BottleneckVideo[]>;
6751
6679
  }
6752
6680
 
6753
6681
  interface OptifyeAgentContext {
@@ -6853,4 +6781,4 @@ interface ThreadSidebarProps {
6853
6781
  }
6854
6782
  declare const ThreadSidebar: React__default.FC<ThreadSidebarProps>;
6855
6783
 
6856
- export { ACTION_NAMES, AIAgentView, type AccessControlReturn, type Action, type ActionName, type ActionService, type ActionThreshold, type ActiveBreak, AdvancedFilterDialog, AdvancedFilterPanel, 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, ClipFilterProvider, type ClipFilterState, type ClipsConfig, 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, FileManagerFilters, FileManagerFilters as FileManagerFiltersProps, FilterDialogTrigger, 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$1 as 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, type SupervisorConfig, 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, useClipFilter, 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 };
6784
+ export { ACTION_NAMES, AIAgentView, type AccessControlReturn, type Action, type ActionName, type ActionService, type ActionThreshold, type ActiveBreak, AdvancedFilterDialog, AdvancedFilterPanel, 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, ClipFilterProvider, type ClipFilterState, type ClipsConfig, 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, FileManagerFilters, FileManagerFilters as FileManagerFiltersProps, FilterDialogTrigger, 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, S3ClipsSupabaseService 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$1 as 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, type SupervisorConfig, 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, Timer, TimezoneProvider, TimezoneService, 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, 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, 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, useAppTimezone, useAudioService, useAuth, useAuthConfig, useCanSaveTargets, useClipFilter, 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, useTimezoneContext, useVideoConfig, useWorkspaceConfig, useWorkspaceDetailedMetrics, useWorkspaceDisplayName, useWorkspaceDisplayNames, useWorkspaceDisplayNamesMap, useWorkspaceHealth, useWorkspaceHealthById, useWorkspaceMetrics, useWorkspaceNavigation, useWorkspaceOperators, userService, videoPrefetchManager, videoPreloader, whatsappService, withAccessControl, withAuth, withRegistry, withTimezone, workspaceHealthService, workspaceService };