@optifye/dashboard-core 6.11.7 → 6.11.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.css CHANGED
@@ -565,9 +565,6 @@ body {
565
565
  .right-1\/2 {
566
566
  right: 50%;
567
567
  }
568
- .right-16 {
569
- right: 4rem;
570
- }
571
568
  .right-2 {
572
569
  right: 0.5rem;
573
570
  }
@@ -1110,18 +1107,12 @@ body {
1110
1107
  .h-\[calc\(100\%-3rem\)\] {
1111
1108
  height: calc(100% - 3rem);
1112
1109
  }
1113
- .h-\[calc\(100\%-8rem\)\] {
1114
- height: calc(100% - 8rem);
1115
- }
1116
1110
  .h-\[calc\(100vh-100px\)\] {
1117
1111
  height: calc(100vh - 100px);
1118
1112
  }
1119
1113
  .h-\[calc\(100vh-10rem\)\] {
1120
1114
  height: calc(100vh - 10rem);
1121
1115
  }
1122
- .h-\[calc\(100vh-12rem\)\] {
1123
- height: calc(100vh - 12rem);
1124
- }
1125
1116
  .h-\[calc\(100vh-64px\)\] {
1126
1117
  height: calc(100vh - 64px);
1127
1118
  }
@@ -1230,6 +1221,9 @@ body {
1230
1221
  .min-h-\[300px\] {
1231
1222
  min-height: 300px;
1232
1223
  }
1224
+ .min-h-\[320px\] {
1225
+ min-height: 320px;
1226
+ }
1233
1227
  .min-h-\[400px\] {
1234
1228
  min-height: 400px;
1235
1229
  }
@@ -1245,6 +1239,9 @@ body {
1245
1239
  .min-h-\[80px\] {
1246
1240
  min-height: 80px;
1247
1241
  }
1242
+ .min-h-\[calc\(100dvh-12rem\)\] {
1243
+ min-height: calc(100dvh - 12rem);
1244
+ }
1248
1245
  .min-h-\[calc\(100vh-100px\)\] {
1249
1246
  min-height: calc(100vh - 100px);
1250
1247
  }
@@ -1380,15 +1377,9 @@ body {
1380
1377
  .w-\[22vw\] {
1381
1378
  width: 22vw;
1382
1379
  }
1383
- .w-\[240px\] {
1384
- width: 240px;
1385
- }
1386
1380
  .w-\[27vw\] {
1387
1381
  width: 27vw;
1388
1382
  }
1389
- .w-\[280px\] {
1390
- width: 280px;
1391
- }
1392
1383
  .w-\[340px\] {
1393
1384
  width: 340px;
1394
1385
  }
@@ -1404,6 +1395,12 @@ body {
1404
1395
  .w-\[520px\] {
1405
1396
  width: 520px;
1406
1397
  }
1398
+ .w-\[min\(88vw\,240px\)\] {
1399
+ width: min(88vw, 240px);
1400
+ }
1401
+ .w-\[min\(92vw\,280px\)\] {
1402
+ width: min(92vw, 280px);
1403
+ }
1407
1404
  .w-auto {
1408
1405
  width: auto;
1409
1406
  }
@@ -6152,6 +6149,9 @@ input[type=range]:active::-moz-range-thumb {
6152
6149
  .sm\:right-0 {
6153
6150
  right: 0px;
6154
6151
  }
6152
+ .sm\:right-16 {
6153
+ right: 4rem;
6154
+ }
6155
6155
  .sm\:right-3 {
6156
6156
  right: 0.75rem;
6157
6157
  }
@@ -6309,6 +6309,9 @@ input[type=range]:active::-moz-range-thumb {
6309
6309
  .sm\:min-h-\[300px\] {
6310
6310
  min-height: 300px;
6311
6311
  }
6312
+ .sm\:min-h-\[320px\] {
6313
+ min-height: 320px;
6314
+ }
6312
6315
  .sm\:w-12 {
6313
6316
  width: 3rem;
6314
6317
  }
@@ -7025,6 +7028,9 @@ input[type=range]:active::-moz-range-thumb {
7025
7028
  .lg\:hidden {
7026
7029
  display: none;
7027
7030
  }
7031
+ .lg\:aspect-auto {
7032
+ aspect-ratio: auto;
7033
+ }
7028
7034
  .lg\:h-14 {
7029
7035
  height: 3.5rem;
7030
7036
  }
@@ -7046,6 +7052,9 @@ input[type=range]:active::-moz-range-thumb {
7046
7052
  .lg\:h-\[220px\] {
7047
7053
  height: 220px;
7048
7054
  }
7055
+ .lg\:h-\[calc\(100dvh-12rem\)\] {
7056
+ height: calc(100dvh - 12rem);
7057
+ }
7049
7058
  .lg\:h-\[calc\(100vh-12rem\)\] {
7050
7059
  height: calc(100vh - 12rem);
7051
7060
  }
@@ -7100,6 +7109,9 @@ input[type=range]:active::-moz-range-thumb {
7100
7109
  .lg\:flex-\[3\] {
7101
7110
  flex: 3;
7102
7111
  }
7112
+ .lg\:flex-shrink-0 {
7113
+ flex-shrink: 0;
7114
+ }
7103
7115
  .lg\:grid-cols-1 {
7104
7116
  grid-template-columns: repeat(1, minmax(0, 1fr));
7105
7117
  }
package/dist/index.d.mts CHANGED
@@ -1305,6 +1305,7 @@ interface BottleneckVideoData {
1305
1305
  description: string;
1306
1306
  type: VideoType;
1307
1307
  originalUri: string;
1308
+ capture_fps?: number;
1308
1309
  cycle_time_seconds?: number;
1309
1310
  creation_timestamp?: string;
1310
1311
  percentile?: number;
@@ -1339,6 +1340,10 @@ interface VideoMetadata {
1339
1340
  camera_id?: string;
1340
1341
  workspace_id?: string;
1341
1342
  cycle_time?: number;
1343
+ playlist?: {
1344
+ fps?: number | string;
1345
+ [key: string]: any;
1346
+ };
1342
1347
  sop_name?: string;
1343
1348
  violation_start_frame?: number;
1344
1349
  violation_end_frame?: number;
package/dist/index.d.ts CHANGED
@@ -1305,6 +1305,7 @@ interface BottleneckVideoData {
1305
1305
  description: string;
1306
1306
  type: VideoType;
1307
1307
  originalUri: string;
1308
+ capture_fps?: number;
1308
1309
  cycle_time_seconds?: number;
1309
1310
  creation_timestamp?: string;
1310
1311
  percentile?: number;
@@ -1339,6 +1340,10 @@ interface VideoMetadata {
1339
1340
  camera_id?: string;
1340
1341
  workspace_id?: string;
1341
1342
  cycle_time?: number;
1343
+ playlist?: {
1344
+ fps?: number | string;
1345
+ [key: string]: any;
1346
+ };
1342
1347
  sop_name?: string;
1343
1348
  violation_start_frame?: number;
1344
1349
  violation_end_frame?: number;
package/dist/index.js CHANGED
@@ -7438,6 +7438,16 @@ var getClipCycleTimeFrames = (metadata) => {
7438
7438
  }
7439
7439
  return parseFiniteNumber(metadata?.request?.metadata?.cycle_time);
7440
7440
  };
7441
+ var getClipCaptureFps = (clip) => {
7442
+ return parseFiniteNumber(clip?.capture_fps) ?? parseFiniteNumber(clip?.metadata?.playlist?.fps) ?? 20;
7443
+ };
7444
+ var getClipCycleTimeSeconds = (clip) => {
7445
+ const cycleTimeFrames = getClipCycleTimeFrames(clip?.metadata);
7446
+ if (cycleTimeFrames === void 0) {
7447
+ return void 0;
7448
+ }
7449
+ return cycleTimeFrames / getClipCaptureFps(clip);
7450
+ };
7441
7451
  var getSupabaseClient = () => {
7442
7452
  const existing = _getSupabaseInstanceOptional();
7443
7453
  if (existing) {
@@ -7950,10 +7960,10 @@ var S3ClipsSupabaseService = class {
7950
7960
  const transformedClips = (response.clips || []).map((clip) => {
7951
7961
  const clipId = clip.id ?? clip.clip_id;
7952
7962
  const clipType = clip.type ?? clip.clip_type_name;
7953
- const cycleTimeSeconds = parseFiniteNumber(clip.cycle_time_seconds) ?? (() => {
7954
- const cycleTimeFrames = getClipCycleTimeFrames(clip.metadata);
7955
- return cycleTimeFrames !== void 0 ? cycleTimeFrames / (clip.metadata?.playlist?.fps || 20) : void 0;
7956
- })();
7963
+ const cycleTimeSeconds = parseFiniteNumber(clip.cycle_time_seconds) ?? getClipCycleTimeSeconds({
7964
+ capture_fps: clip.capture_fps,
7965
+ metadata: clip.metadata
7966
+ });
7957
7967
  return {
7958
7968
  id: clipId,
7959
7969
  src: clip.src ?? clip.playlist,
@@ -39503,7 +39513,7 @@ var FileManagerFilters = ({
39503
39513
  ] }) })
39504
39514
  ] }, node.id);
39505
39515
  };
39506
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `relative bg-white rounded-2xl shadow-lg border border-gray-100 h-full hover:shadow-xl transition-all duration-300 ease-out backdrop-blur-sm ${className}`, children: [
39516
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `relative flex h-full min-h-[320px] flex-col bg-white rounded-2xl shadow-lg border border-gray-100 hover:shadow-xl transition-all duration-300 ease-out backdrop-blur-sm ${className}`, children: [
39507
39517
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4 border-b border-gray-50 bg-gradient-to-br from-slate-50/80 via-white to-blue-50/30", children: [
39508
39518
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
39509
39519
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center", children: [
@@ -39585,7 +39595,7 @@ var FileManagerFilters = ({
39585
39595
  /* @__PURE__ */ jsxRuntime.jsxs(
39586
39596
  "div",
39587
39597
  {
39588
- className: "absolute top-14 right-16 z-50 bg-white rounded-xl shadow-xl border border-slate-200 w-[240px] animate-in slide-in-from-top-2 duration-200",
39598
+ className: "absolute top-14 right-2 z-50 bg-white rounded-xl shadow-xl border border-slate-200 w-[min(88vw,240px)] sm:right-16 animate-in slide-in-from-top-2 duration-200",
39589
39599
  onClick: (e) => e.stopPropagation(),
39590
39600
  children: [
39591
39601
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-3 flex items-center justify-between border-b border-slate-200", children: [
@@ -39642,7 +39652,7 @@ var FileManagerFilters = ({
39642
39652
  /* @__PURE__ */ jsxRuntime.jsxs(
39643
39653
  "div",
39644
39654
  {
39645
- className: "absolute top-14 right-4 z-50 bg-white rounded-xl shadow-xl border border-slate-200 w-[280px] animate-in slide-in-from-top-2 duration-200",
39655
+ className: "absolute top-14 right-2 z-50 bg-white rounded-xl shadow-xl border border-slate-200 w-[min(92vw,280px)] sm:right-4 animate-in slide-in-from-top-2 duration-200",
39646
39656
  onClick: (e) => e.stopPropagation(),
39647
39657
  children: [
39648
39658
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-3 flex items-center justify-between border-b border-slate-200", children: [
@@ -39759,7 +39769,7 @@ var FileManagerFilters = ({
39759
39769
  }
39760
39770
  )
39761
39771
  ] }),
39762
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-3 h-[calc(100%-8rem)] overflow-y-auto scrollbar-thin", children: [
39772
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-3 flex-1 min-h-0 overflow-y-auto scrollbar-thin", children: [
39763
39773
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: filterTree.map((node) => renderNode(node)) }),
39764
39774
  filterTree.length === 0 && isTimeFilterActive && (startTime || endTime) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center py-12", children: [
39765
39775
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-slate-300 mb-4", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Clock, { className: "h-12 w-12 mx-auto" }) }),
@@ -41870,17 +41880,17 @@ var BottlenecksContent = ({
41870
41880
  }
41871
41881
  }, [workspaceTargetCycleTime]);
41872
41882
  if (!dashboardConfig?.s3Config) {
41873
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-grow p-4 flex flex-col items-center justify-center h-[calc(100vh-12rem)] text-center", children: [
41883
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-grow p-4 flex flex-col items-center justify-center min-h-[calc(100dvh-12rem)] text-center", children: [
41874
41884
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XCircle, { className: "w-12 h-12 text-red-400 mb-3" }),
41875
41885
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-red-700 mb-1", children: "S3 Configuration Missing" }),
41876
41886
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-gray-600 max-w-md", children: "S3 configuration is required to load video clips. Please check your dashboard configuration." })
41877
41887
  ] });
41878
41888
  }
41879
41889
  if (clipTypesLoading && allVideos.length === 0 && Object.keys(mergedCounts).length === 0) {
41880
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-grow p-4 flex items-center justify-center h-[calc(100vh-12rem)]", children: /* @__PURE__ */ jsxRuntime.jsx(OptifyeLogoLoader_default, { size: "lg", message: "Loading clips..." }) });
41890
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-grow p-4 flex items-center justify-center min-h-[calc(100dvh-12rem)]", children: /* @__PURE__ */ jsxRuntime.jsx(OptifyeLogoLoader_default, { size: "lg", message: "Loading clips..." }) });
41881
41891
  }
41882
41892
  if (error && error.type === "fatal" && !hasInitialLoad || clipTypesError) {
41883
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-grow p-4 flex flex-col items-center justify-center h-[calc(100vh-12rem)] text-center", children: [
41893
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-grow p-4 flex flex-col items-center justify-center min-h-[calc(100dvh-12rem)] text-center", children: [
41884
41894
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XCircle, { className: "w-12 h-12 text-red-400 mb-3" }),
41885
41895
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold text-red-700 mb-1", children: "Error Loading Clips" }),
41886
41896
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-gray-600 max-w-md", children: error?.message || clipTypesError })
@@ -41895,7 +41905,7 @@ var BottlenecksContent = ({
41895
41905
  clipTypesError,
41896
41906
  mergedCounts
41897
41907
  });
41898
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-grow p-1.5 sm:p-2 lg:p-4 h-[calc(100vh-12rem)] relative", children: [
41908
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-grow p-1.5 sm:p-2 lg:p-4 min-h-[calc(100dvh-12rem)] lg:h-[calc(100dvh-12rem)] relative", children: [
41899
41909
  hasNewClips && newClipsNotification && /* @__PURE__ */ jsxRuntime.jsx(
41900
41910
  NewClipsNotification,
41901
41911
  {
@@ -41904,8 +41914,8 @@ var BottlenecksContent = ({
41904
41914
  onDismiss: clearNotification
41905
41915
  }
41906
41916
  ),
41907
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col lg:flex-row gap-4 h-full", children: [
41908
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 min-w-0 lg:flex-[3]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-white rounded-lg shadow-sm overflow-hidden h-full", children: filteredVideos.length > 0 && currentVideo && !isFullscreen ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 h-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-full group", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative w-full h-full overflow-hidden rounded-md shadow-inner bg-gray-900", children: [
41917
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 lg:flex-row lg:h-full", children: [
41918
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 w-full lg:flex-[3] lg:h-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-white rounded-lg shadow-sm overflow-hidden lg:h-full", children: filteredVideos.length > 0 && currentVideo && !isFullscreen ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 lg:h-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative group lg:h-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative w-full aspect-video lg:aspect-auto lg:h-full overflow-hidden rounded-md shadow-inner bg-gray-900", children: [
41909
41919
  /* @__PURE__ */ jsxRuntime.jsx(
41910
41920
  "div",
41911
41921
  {
@@ -42055,23 +42065,23 @@ var BottlenecksContent = ({
42055
42065
  )
42056
42066
  ] }) }) }) : (
42057
42067
  /* Priority 5: Show "no clips found" only if we have counts and there are truly no clips for workspace */
42058
- hasInitialLoad && Object.keys(mergedCounts).length > 0 && Object.values(mergedCounts).every((count) => count === 0) ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center p-8", children: [
42068
+ hasInitialLoad && Object.keys(mergedCounts).length > 0 && Object.values(mergedCounts).every((count) => count === 0) ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center min-h-[220px] sm:min-h-[320px] lg:h-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center p-8", children: [
42059
42069
  /* @__PURE__ */ jsxRuntime.jsx("svg", { className: "w-16 h-16 text-gray-300 mx-auto mb-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z" }) }),
42060
42070
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-medium text-gray-700 mb-2", children: "No Clips Found" }),
42061
42071
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-gray-500", children: "There were no video clips found for this workspace today." })
42062
42072
  ] }) }) : (
42063
42073
  /* Priority 6: Show "no matching clips" only if we have data loaded and specifically no clips for this filter */
42064
- hasInitialLoad && (mergedCounts[activeFilter] || 0) === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center p-8", children: [
42074
+ hasInitialLoad && (mergedCounts[activeFilter] || 0) === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center min-h-[220px] sm:min-h-[320px] lg:h-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center p-8", children: [
42065
42075
  /* @__PURE__ */ jsxRuntime.jsx("svg", { className: "w-16 h-16 text-gray-300 mx-auto mb-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z" }) }),
42066
42076
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-medium text-gray-700 mb-2", children: "No Matching Clips" }),
42067
42077
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-gray-500", children: "There are no clips matching the selected filter." })
42068
42078
  ] }) }) : (
42069
42079
  /* Priority 7: Default loading state for any other case */
42070
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 h-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full h-full overflow-hidden rounded-md shadow-inner bg-gray-900 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(OptifyeLogoLoader_default, { size: "md", message: "Loading..." }) }) }) })
42080
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 lg:h-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative lg:h-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative w-full min-h-[220px] sm:min-h-[320px] lg:min-h-0 lg:h-full overflow-hidden rounded-md shadow-inner bg-gray-900 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(OptifyeLogoLoader_default, { size: "md", message: "Loading..." }) }) }) })
42071
42081
  )
42072
42082
  )
42073
42083
  ) }) }),
42074
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 lg:flex-[1] lg:min-w-[280px] lg:max-w-[320px]", children: triageMode ? (
42084
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full lg:flex-shrink-0 lg:flex-[1] lg:min-w-[280px] lg:max-w-[320px] lg:h-full", children: triageMode ? (
42075
42085
  /* Triage Mode - Direct tile view for cycle completions and idle time */
42076
42086
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white rounded-lg shadow-sm h-full overflow-hidden flex flex-col", children: [
42077
42087
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-4 py-3 border-b border-gray-100", children: [
@@ -74713,7 +74723,8 @@ var OperationsOverviewHeader = React141__namespace.default.memo(({
74713
74723
  mobileMenuContext ? /* @__PURE__ */ jsxRuntime.jsx(
74714
74724
  HamburgerButton,
74715
74725
  {
74716
- onClick: mobileMenuContext.onMobileMenuOpen,
74726
+ onClick: mobileMenuContext.onMobileMenuOpen || (() => {
74727
+ }),
74717
74728
  className: "flex-shrink-0 -ml-1"
74718
74729
  }
74719
74730
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-8 flex-shrink-0" }),
@@ -75175,7 +75186,7 @@ var IdleBreakdownCard = React141__namespace.default.memo(({
75175
75186
  }, [idle.scope.idle_time_vlm_enabled_line_count, scopedLineCount, showInitialSkeleton]);
75176
75187
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white rounded-xl shadow-sm border border-slate-100 flex flex-col overflow-hidden text-left", children: [
75177
75188
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-5 py-4 flex-none flex justify-between items-center border-b border-slate-50/50 relative", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-lg font-semibold text-gray-700", children: "Idle Time Breakdown" }) }),
75178
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 min-h-0 p-4 pt-2 relative", children: showInitialSkeleton ? /* @__PURE__ */ jsxRuntime.jsx(OverviewIdleBreakdownSkeleton, {}) : showIdleModuleNotEnabledState ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full flex items-center justify-center rounded-xl border border-dashed border-slate-200 bg-slate-50/80 px-6 text-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
75189
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 min-h-[250px] p-4 pt-2 relative", children: showInitialSkeleton ? /* @__PURE__ */ jsxRuntime.jsx(OverviewIdleBreakdownSkeleton, {}) : showIdleModuleNotEnabledState ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full flex items-center justify-center rounded-xl border border-dashed border-slate-200 bg-slate-50/80 px-6 text-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
75179
75190
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold text-slate-700", children: "Module not enabled" }),
75180
75191
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-slate-500", children: "Enable idle-time classification on at least one line to view this breakdown." })
75181
75192
  ] }) }) : /* @__PURE__ */ jsxRuntime.jsx(
@@ -75249,7 +75260,7 @@ var EfficiencyTrendCard = React141__namespace.default.memo(({
75249
75260
  }, []);
75250
75261
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "bg-white rounded-xl shadow-[0_2px_10px_-3px_rgba(6,81,237,0.1)] border border-slate-100 flex flex-col overflow-hidden text-left", children: [
75251
75262
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-6 py-5 flex-none flex justify-between items-center border-b border-slate-50/50", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-lg font-semibold text-gray-700", children: "Efficiency Trend" }) }),
75252
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 min-h-0 w-full p-4 pt-4 relative", children: showInitialSkeleton ? /* @__PURE__ */ jsxRuntime.jsx(OverviewChartSkeleton, {}) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 pb-2 pr-4 pl-1", children: /* @__PURE__ */ jsxRuntime.jsx(
75263
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 min-h-[250px] w-full p-4 pt-4 relative", children: showInitialSkeleton ? /* @__PURE__ */ jsxRuntime.jsx(OverviewChartSkeleton, {}) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 pb-2 pr-4 pl-1", children: /* @__PURE__ */ jsxRuntime.jsx(
75253
75264
  LineChart,
75254
75265
  {
75255
75266
  data: trendData,
package/dist/index.mjs CHANGED
@@ -7409,6 +7409,16 @@ var getClipCycleTimeFrames = (metadata) => {
7409
7409
  }
7410
7410
  return parseFiniteNumber(metadata?.request?.metadata?.cycle_time);
7411
7411
  };
7412
+ var getClipCaptureFps = (clip) => {
7413
+ return parseFiniteNumber(clip?.capture_fps) ?? parseFiniteNumber(clip?.metadata?.playlist?.fps) ?? 20;
7414
+ };
7415
+ var getClipCycleTimeSeconds = (clip) => {
7416
+ const cycleTimeFrames = getClipCycleTimeFrames(clip?.metadata);
7417
+ if (cycleTimeFrames === void 0) {
7418
+ return void 0;
7419
+ }
7420
+ return cycleTimeFrames / getClipCaptureFps(clip);
7421
+ };
7412
7422
  var getSupabaseClient = () => {
7413
7423
  const existing = _getSupabaseInstanceOptional();
7414
7424
  if (existing) {
@@ -7921,10 +7931,10 @@ var S3ClipsSupabaseService = class {
7921
7931
  const transformedClips = (response.clips || []).map((clip) => {
7922
7932
  const clipId = clip.id ?? clip.clip_id;
7923
7933
  const clipType = clip.type ?? clip.clip_type_name;
7924
- const cycleTimeSeconds = parseFiniteNumber(clip.cycle_time_seconds) ?? (() => {
7925
- const cycleTimeFrames = getClipCycleTimeFrames(clip.metadata);
7926
- return cycleTimeFrames !== void 0 ? cycleTimeFrames / (clip.metadata?.playlist?.fps || 20) : void 0;
7927
- })();
7934
+ const cycleTimeSeconds = parseFiniteNumber(clip.cycle_time_seconds) ?? getClipCycleTimeSeconds({
7935
+ capture_fps: clip.capture_fps,
7936
+ metadata: clip.metadata
7937
+ });
7928
7938
  return {
7929
7939
  id: clipId,
7930
7940
  src: clip.src ?? clip.playlist,
@@ -39474,7 +39484,7 @@ var FileManagerFilters = ({
39474
39484
  ] }) })
39475
39485
  ] }, node.id);
39476
39486
  };
39477
- return /* @__PURE__ */ jsxs("div", { className: `relative bg-white rounded-2xl shadow-lg border border-gray-100 h-full hover:shadow-xl transition-all duration-300 ease-out backdrop-blur-sm ${className}`, children: [
39487
+ return /* @__PURE__ */ jsxs("div", { className: `relative flex h-full min-h-[320px] flex-col bg-white rounded-2xl shadow-lg border border-gray-100 hover:shadow-xl transition-all duration-300 ease-out backdrop-blur-sm ${className}`, children: [
39478
39488
  /* @__PURE__ */ jsxs("div", { className: "p-4 border-b border-gray-50 bg-gradient-to-br from-slate-50/80 via-white to-blue-50/30", children: [
39479
39489
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
39480
39490
  /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
@@ -39556,7 +39566,7 @@ var FileManagerFilters = ({
39556
39566
  /* @__PURE__ */ jsxs(
39557
39567
  "div",
39558
39568
  {
39559
- className: "absolute top-14 right-16 z-50 bg-white rounded-xl shadow-xl border border-slate-200 w-[240px] animate-in slide-in-from-top-2 duration-200",
39569
+ className: "absolute top-14 right-2 z-50 bg-white rounded-xl shadow-xl border border-slate-200 w-[min(88vw,240px)] sm:right-16 animate-in slide-in-from-top-2 duration-200",
39560
39570
  onClick: (e) => e.stopPropagation(),
39561
39571
  children: [
39562
39572
  /* @__PURE__ */ jsxs("div", { className: "px-4 py-3 flex items-center justify-between border-b border-slate-200", children: [
@@ -39613,7 +39623,7 @@ var FileManagerFilters = ({
39613
39623
  /* @__PURE__ */ jsxs(
39614
39624
  "div",
39615
39625
  {
39616
- className: "absolute top-14 right-4 z-50 bg-white rounded-xl shadow-xl border border-slate-200 w-[280px] animate-in slide-in-from-top-2 duration-200",
39626
+ className: "absolute top-14 right-2 z-50 bg-white rounded-xl shadow-xl border border-slate-200 w-[min(92vw,280px)] sm:right-4 animate-in slide-in-from-top-2 duration-200",
39617
39627
  onClick: (e) => e.stopPropagation(),
39618
39628
  children: [
39619
39629
  /* @__PURE__ */ jsxs("div", { className: "px-4 py-3 flex items-center justify-between border-b border-slate-200", children: [
@@ -39730,7 +39740,7 @@ var FileManagerFilters = ({
39730
39740
  }
39731
39741
  )
39732
39742
  ] }),
39733
- /* @__PURE__ */ jsxs("div", { className: "px-4 py-3 h-[calc(100%-8rem)] overflow-y-auto scrollbar-thin", children: [
39743
+ /* @__PURE__ */ jsxs("div", { className: "px-4 py-3 flex-1 min-h-0 overflow-y-auto scrollbar-thin", children: [
39734
39744
  /* @__PURE__ */ jsx("div", { className: "space-y-2", children: filterTree.map((node) => renderNode(node)) }),
39735
39745
  filterTree.length === 0 && isTimeFilterActive && (startTime || endTime) && /* @__PURE__ */ jsxs("div", { className: "text-center py-12", children: [
39736
39746
  /* @__PURE__ */ jsx("div", { className: "text-slate-300 mb-4", children: /* @__PURE__ */ jsx(Clock, { className: "h-12 w-12 mx-auto" }) }),
@@ -41841,17 +41851,17 @@ var BottlenecksContent = ({
41841
41851
  }
41842
41852
  }, [workspaceTargetCycleTime]);
41843
41853
  if (!dashboardConfig?.s3Config) {
41844
- return /* @__PURE__ */ jsxs("div", { className: "flex-grow p-4 flex flex-col items-center justify-center h-[calc(100vh-12rem)] text-center", children: [
41854
+ return /* @__PURE__ */ jsxs("div", { className: "flex-grow p-4 flex flex-col items-center justify-center min-h-[calc(100dvh-12rem)] text-center", children: [
41845
41855
  /* @__PURE__ */ jsx(XCircle, { className: "w-12 h-12 text-red-400 mb-3" }),
41846
41856
  /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold text-red-700 mb-1", children: "S3 Configuration Missing" }),
41847
41857
  /* @__PURE__ */ jsx("p", { className: "text-gray-600 max-w-md", children: "S3 configuration is required to load video clips. Please check your dashboard configuration." })
41848
41858
  ] });
41849
41859
  }
41850
41860
  if (clipTypesLoading && allVideos.length === 0 && Object.keys(mergedCounts).length === 0) {
41851
- return /* @__PURE__ */ jsx("div", { className: "flex-grow p-4 flex items-center justify-center h-[calc(100vh-12rem)]", children: /* @__PURE__ */ jsx(OptifyeLogoLoader_default, { size: "lg", message: "Loading clips..." }) });
41861
+ return /* @__PURE__ */ jsx("div", { className: "flex-grow p-4 flex items-center justify-center min-h-[calc(100dvh-12rem)]", children: /* @__PURE__ */ jsx(OptifyeLogoLoader_default, { size: "lg", message: "Loading clips..." }) });
41852
41862
  }
41853
41863
  if (error && error.type === "fatal" && !hasInitialLoad || clipTypesError) {
41854
- return /* @__PURE__ */ jsxs("div", { className: "flex-grow p-4 flex flex-col items-center justify-center h-[calc(100vh-12rem)] text-center", children: [
41864
+ return /* @__PURE__ */ jsxs("div", { className: "flex-grow p-4 flex flex-col items-center justify-center min-h-[calc(100dvh-12rem)] text-center", children: [
41855
41865
  /* @__PURE__ */ jsx(XCircle, { className: "w-12 h-12 text-red-400 mb-3" }),
41856
41866
  /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold text-red-700 mb-1", children: "Error Loading Clips" }),
41857
41867
  /* @__PURE__ */ jsx("p", { className: "text-gray-600 max-w-md", children: error?.message || clipTypesError })
@@ -41866,7 +41876,7 @@ var BottlenecksContent = ({
41866
41876
  clipTypesError,
41867
41877
  mergedCounts
41868
41878
  });
41869
- return /* @__PURE__ */ jsxs("div", { className: "flex-grow p-1.5 sm:p-2 lg:p-4 h-[calc(100vh-12rem)] relative", children: [
41879
+ return /* @__PURE__ */ jsxs("div", { className: "flex-grow p-1.5 sm:p-2 lg:p-4 min-h-[calc(100dvh-12rem)] lg:h-[calc(100dvh-12rem)] relative", children: [
41870
41880
  hasNewClips && newClipsNotification && /* @__PURE__ */ jsx(
41871
41881
  NewClipsNotification,
41872
41882
  {
@@ -41875,8 +41885,8 @@ var BottlenecksContent = ({
41875
41885
  onDismiss: clearNotification
41876
41886
  }
41877
41887
  ),
41878
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col lg:flex-row gap-4 h-full", children: [
41879
- /* @__PURE__ */ jsx("div", { className: "flex-1 min-w-0 lg:flex-[3]", children: /* @__PURE__ */ jsx("div", { className: "bg-white rounded-lg shadow-sm overflow-hidden h-full", children: filteredVideos.length > 0 && currentVideo && !isFullscreen ? /* @__PURE__ */ jsx("div", { className: "p-4 h-full", children: /* @__PURE__ */ jsx("div", { className: "relative h-full group", children: /* @__PURE__ */ jsxs("div", { className: "relative w-full h-full overflow-hidden rounded-md shadow-inner bg-gray-900", children: [
41888
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 lg:flex-row lg:h-full", children: [
41889
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 w-full lg:flex-[3] lg:h-full", children: /* @__PURE__ */ jsx("div", { className: "bg-white rounded-lg shadow-sm overflow-hidden lg:h-full", children: filteredVideos.length > 0 && currentVideo && !isFullscreen ? /* @__PURE__ */ jsx("div", { className: "p-4 lg:h-full", children: /* @__PURE__ */ jsx("div", { className: "relative group lg:h-full", children: /* @__PURE__ */ jsxs("div", { className: "relative w-full aspect-video lg:aspect-auto lg:h-full overflow-hidden rounded-md shadow-inner bg-gray-900", children: [
41880
41890
  /* @__PURE__ */ jsx(
41881
41891
  "div",
41882
41892
  {
@@ -42026,23 +42036,23 @@ var BottlenecksContent = ({
42026
42036
  )
42027
42037
  ] }) }) }) : (
42028
42038
  /* Priority 5: Show "no clips found" only if we have counts and there are truly no clips for workspace */
42029
- hasInitialLoad && Object.keys(mergedCounts).length > 0 && Object.values(mergedCounts).every((count) => count === 0) ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsxs("div", { className: "text-center p-8", children: [
42039
+ hasInitialLoad && Object.keys(mergedCounts).length > 0 && Object.values(mergedCounts).every((count) => count === 0) ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center min-h-[220px] sm:min-h-[320px] lg:h-full", children: /* @__PURE__ */ jsxs("div", { className: "text-center p-8", children: [
42030
42040
  /* @__PURE__ */ jsx("svg", { className: "w-16 h-16 text-gray-300 mx-auto mb-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z" }) }),
42031
42041
  /* @__PURE__ */ jsx("h3", { className: "text-xl font-medium text-gray-700 mb-2", children: "No Clips Found" }),
42032
42042
  /* @__PURE__ */ jsx("p", { className: "text-gray-500", children: "There were no video clips found for this workspace today." })
42033
42043
  ] }) }) : (
42034
42044
  /* Priority 6: Show "no matching clips" only if we have data loaded and specifically no clips for this filter */
42035
- hasInitialLoad && (mergedCounts[activeFilter] || 0) === 0 ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-full", children: /* @__PURE__ */ jsxs("div", { className: "text-center p-8", children: [
42045
+ hasInitialLoad && (mergedCounts[activeFilter] || 0) === 0 ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center min-h-[220px] sm:min-h-[320px] lg:h-full", children: /* @__PURE__ */ jsxs("div", { className: "text-center p-8", children: [
42036
42046
  /* @__PURE__ */ jsx("svg", { className: "w-16 h-16 text-gray-300 mx-auto mb-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z" }) }),
42037
42047
  /* @__PURE__ */ jsx("h3", { className: "text-xl font-medium text-gray-700 mb-2", children: "No Matching Clips" }),
42038
42048
  /* @__PURE__ */ jsx("p", { className: "text-gray-500", children: "There are no clips matching the selected filter." })
42039
42049
  ] }) }) : (
42040
42050
  /* Priority 7: Default loading state for any other case */
42041
- /* @__PURE__ */ jsx("div", { className: "p-4 h-full", children: /* @__PURE__ */ jsx("div", { className: "relative h-full", children: /* @__PURE__ */ jsx("div", { className: "relative w-full h-full overflow-hidden rounded-md shadow-inner bg-gray-900 flex items-center justify-center", children: /* @__PURE__ */ jsx(OptifyeLogoLoader_default, { size: "md", message: "Loading..." }) }) }) })
42051
+ /* @__PURE__ */ jsx("div", { className: "p-4 lg:h-full", children: /* @__PURE__ */ jsx("div", { className: "relative lg:h-full", children: /* @__PURE__ */ jsx("div", { className: "relative w-full min-h-[220px] sm:min-h-[320px] lg:min-h-0 lg:h-full overflow-hidden rounded-md shadow-inner bg-gray-900 flex items-center justify-center", children: /* @__PURE__ */ jsx(OptifyeLogoLoader_default, { size: "md", message: "Loading..." }) }) }) })
42042
42052
  )
42043
42053
  )
42044
42054
  ) }) }),
42045
- /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 lg:flex-[1] lg:min-w-[280px] lg:max-w-[320px]", children: triageMode ? (
42055
+ /* @__PURE__ */ jsx("div", { className: "w-full lg:flex-shrink-0 lg:flex-[1] lg:min-w-[280px] lg:max-w-[320px] lg:h-full", children: triageMode ? (
42046
42056
  /* Triage Mode - Direct tile view for cycle completions and idle time */
42047
42057
  /* @__PURE__ */ jsxs("div", { className: "bg-white rounded-lg shadow-sm h-full overflow-hidden flex flex-col", children: [
42048
42058
  /* @__PURE__ */ jsxs("div", { className: "px-4 py-3 border-b border-gray-100", children: [
@@ -74684,7 +74694,8 @@ var OperationsOverviewHeader = React141__default.memo(({
74684
74694
  mobileMenuContext ? /* @__PURE__ */ jsx(
74685
74695
  HamburgerButton,
74686
74696
  {
74687
- onClick: mobileMenuContext.onMobileMenuOpen,
74697
+ onClick: mobileMenuContext.onMobileMenuOpen || (() => {
74698
+ }),
74688
74699
  className: "flex-shrink-0 -ml-1"
74689
74700
  }
74690
74701
  ) : /* @__PURE__ */ jsx("div", { className: "w-8 flex-shrink-0" }),
@@ -75146,7 +75157,7 @@ var IdleBreakdownCard = React141__default.memo(({
75146
75157
  }, [idle.scope.idle_time_vlm_enabled_line_count, scopedLineCount, showInitialSkeleton]);
75147
75158
  return /* @__PURE__ */ jsxs("div", { className: "bg-white rounded-xl shadow-sm border border-slate-100 flex flex-col overflow-hidden text-left", children: [
75148
75159
  /* @__PURE__ */ jsx("div", { className: "px-5 py-4 flex-none flex justify-between items-center border-b border-slate-50/50 relative", children: /* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold text-gray-700", children: "Idle Time Breakdown" }) }),
75149
- /* @__PURE__ */ jsx("div", { className: "flex-1 min-h-0 p-4 pt-2 relative", children: showInitialSkeleton ? /* @__PURE__ */ jsx(OverviewIdleBreakdownSkeleton, {}) : showIdleModuleNotEnabledState ? /* @__PURE__ */ jsx("div", { className: "h-full flex items-center justify-center rounded-xl border border-dashed border-slate-200 bg-slate-50/80 px-6 text-center", children: /* @__PURE__ */ jsxs("div", { children: [
75160
+ /* @__PURE__ */ jsx("div", { className: "flex-1 min-h-[250px] p-4 pt-2 relative", children: showInitialSkeleton ? /* @__PURE__ */ jsx(OverviewIdleBreakdownSkeleton, {}) : showIdleModuleNotEnabledState ? /* @__PURE__ */ jsx("div", { className: "h-full flex items-center justify-center rounded-xl border border-dashed border-slate-200 bg-slate-50/80 px-6 text-center", children: /* @__PURE__ */ jsxs("div", { children: [
75150
75161
  /* @__PURE__ */ jsx("p", { className: "text-sm font-semibold text-slate-700", children: "Module not enabled" }),
75151
75162
  /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-slate-500", children: "Enable idle-time classification on at least one line to view this breakdown." })
75152
75163
  ] }) }) : /* @__PURE__ */ jsx(
@@ -75220,7 +75231,7 @@ var EfficiencyTrendCard = React141__default.memo(({
75220
75231
  }, []);
75221
75232
  return /* @__PURE__ */ jsxs("div", { className: "bg-white rounded-xl shadow-[0_2px_10px_-3px_rgba(6,81,237,0.1)] border border-slate-100 flex flex-col overflow-hidden text-left", children: [
75222
75233
  /* @__PURE__ */ jsx("div", { className: "px-6 py-5 flex-none flex justify-between items-center border-b border-slate-50/50", children: /* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold text-gray-700", children: "Efficiency Trend" }) }),
75223
- /* @__PURE__ */ jsx("div", { className: "flex-1 min-h-0 w-full p-4 pt-4 relative", children: showInitialSkeleton ? /* @__PURE__ */ jsx(OverviewChartSkeleton, {}) : /* @__PURE__ */ jsx("div", { className: "absolute inset-0 pb-2 pr-4 pl-1", children: /* @__PURE__ */ jsx(
75234
+ /* @__PURE__ */ jsx("div", { className: "flex-1 min-h-[250px] w-full p-4 pt-4 relative", children: showInitialSkeleton ? /* @__PURE__ */ jsx(OverviewChartSkeleton, {}) : /* @__PURE__ */ jsx("div", { className: "absolute inset-0 pb-2 pr-4 pl-1", children: /* @__PURE__ */ jsx(
75224
75235
  LineChart,
75225
75236
  {
75226
75237
  data: trendData,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optifye/dashboard-core",
3
- "version": "6.11.7",
3
+ "version": "6.11.8",
4
4
  "description": "Reusable UI & logic for Optifye dashboard",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",