@optifye/dashboard-core 6.12.46 → 6.12.47
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/{automation-ZIumB5W9.d.mts → automation-B472r1h3.d.mts} +1 -0
- package/dist/{automation-ZIumB5W9.d.ts → automation-B472r1h3.d.ts} +1 -0
- package/dist/automation.d.mts +1 -1
- package/dist/automation.d.ts +1 -1
- package/dist/automation.js +19 -1
- package/dist/automation.mjs +19 -1
- package/dist/index.css +18 -0
- package/dist/index.d.mts +11 -2
- package/dist/index.d.ts +11 -2
- package/dist/index.js +525 -47
- package/dist/index.mjs +526 -48
- package/package.json +1 -1
|
@@ -202,6 +202,7 @@ interface WorkspaceMetrics {
|
|
|
202
202
|
avg_recent_flow?: number | null;
|
|
203
203
|
recent_flow_mode?: 'computed' | 'hold' | 'unavailable';
|
|
204
204
|
recent_flow_percent?: number | null;
|
|
205
|
+
recent_flow_hourly?: Record<string, unknown> | null;
|
|
205
206
|
recent_flow_actual_rate_pph?: number | null;
|
|
206
207
|
recent_flow_healthy_rate_pph?: number | null;
|
|
207
208
|
recent_flow_window_minutes?: number | null;
|
|
@@ -202,6 +202,7 @@ interface WorkspaceMetrics {
|
|
|
202
202
|
avg_recent_flow?: number | null;
|
|
203
203
|
recent_flow_mode?: 'computed' | 'hold' | 'unavailable';
|
|
204
204
|
recent_flow_percent?: number | null;
|
|
205
|
+
recent_flow_hourly?: Record<string, unknown> | null;
|
|
205
206
|
recent_flow_actual_rate_pph?: number | null;
|
|
206
207
|
recent_flow_healthy_rate_pph?: number | null;
|
|
207
208
|
recent_flow_window_minutes?: number | null;
|
package/dist/automation.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { B as RecentFlowSnapshotGrid, R as RecentFlowSnapshotGridProps, W as WorkspaceMetrics, e as WorkspaceVideoStream } from './automation-
|
|
1
|
+
export { B as RecentFlowSnapshotGrid, R as RecentFlowSnapshotGridProps, W as WorkspaceMetrics, e as WorkspaceVideoStream } from './automation-B472r1h3.mjs';
|
|
2
2
|
import 'react';
|
package/dist/automation.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { B as RecentFlowSnapshotGrid, R as RecentFlowSnapshotGridProps, W as WorkspaceMetrics, e as WorkspaceVideoStream } from './automation-
|
|
1
|
+
export { B as RecentFlowSnapshotGrid, R as RecentFlowSnapshotGridProps, W as WorkspaceMetrics, e as WorkspaceVideoStream } from './automation-B472r1h3.js';
|
|
2
2
|
import 'react';
|
package/dist/automation.js
CHANGED
|
@@ -2054,6 +2054,7 @@ var VideoCard = React__default.default.memo(({
|
|
|
2054
2054
|
displayMinuteBucket,
|
|
2055
2055
|
displayName,
|
|
2056
2056
|
isBlueBest = false,
|
|
2057
|
+
isWorstPerformance = false,
|
|
2057
2058
|
lastSeenLabel,
|
|
2058
2059
|
hasRecentHealthSignal = false,
|
|
2059
2060
|
onMouseEnter,
|
|
@@ -2092,6 +2093,8 @@ var VideoCard = React__default.default.memo(({
|
|
|
2092
2093
|
const efficiencyOverlayClass = videoGridColorState === "green" ? "bg-[#00D654]/25" : videoGridColorState === "blue" ? "bg-[#0EA5E9]/30" : videoGridColorState === "yellow" ? "bg-[#FFD700]/30" : videoGridColorState === "red" ? "bg-[#FF2D0A]/30" : "bg-transparent";
|
|
2093
2094
|
const efficiencyBarClass = videoGridColorState === "green" ? "bg-[#00AB45]" : videoGridColorState === "blue" ? "bg-[#0EA5E9]" : videoGridColorState === "yellow" ? "bg-[#FFB020]" : videoGridColorState === "red" ? "bg-[#E34329]" : "bg-gray-500/70";
|
|
2094
2095
|
const efficiencyStatus = videoGridColorState === "green" ? "High" : videoGridColorState === "blue" ? "Best" : videoGridColorState === "yellow" ? "Medium" : videoGridColorState === "red" ? "Low" : "Neutral";
|
|
2096
|
+
const worstMarkerClassName = compact ? "left-1.5 top-1.5 gap-1.5 px-2 py-1 text-[11px]" : "left-2 top-2 gap-2 px-3 py-1.5 text-xs";
|
|
2097
|
+
const statusBadgesPositionClass = isWorstPerformance ? compact ? "top-8 left-1.5 gap-1" : "top-10 left-2 gap-1.5" : compact ? "top-1.5 left-1.5 gap-1" : "top-2 left-2 gap-1.5";
|
|
2095
2098
|
const trendInfo = workspace.trend !== void 0 ? getTrendArrowAndColor(workspace.trend) : null;
|
|
2096
2099
|
const handleClick = React.useCallback(() => {
|
|
2097
2100
|
trackCoreEvent("Workspace Card Clicked", {
|
|
@@ -2110,6 +2113,7 @@ var VideoCard = React__default.default.memo(({
|
|
|
2110
2113
|
{
|
|
2111
2114
|
className: `workspace-card relative bg-gray-950 rounded-md overflow-hidden cursor-pointer shadow-[0_1px_3px_rgba(15,23,42,0.16),0_0_0_1px_rgba(255,255,255,0.06)] transition-[box-shadow] duration-200 hover:shadow-[0_10px_24px_rgba(15,23,42,0.28),0_0_0_1px_rgba(255,255,255,0.10)] active:shadow-[0_1px_3px_rgba(15,23,42,0.16),0_0_0_1px_rgba(255,255,255,0.06)] touch-manipulation ${className}`,
|
|
2112
2115
|
style: { width: "100%", height: "100%" },
|
|
2116
|
+
"data-worst-performance-highlight": isWorstPerformance ? "true" : void 0,
|
|
2113
2117
|
onClick: handleClick,
|
|
2114
2118
|
onMouseEnter,
|
|
2115
2119
|
onMouseLeave,
|
|
@@ -2171,7 +2175,7 @@ var VideoCard = React__default.default.memo(({
|
|
|
2171
2175
|
"div",
|
|
2172
2176
|
{
|
|
2173
2177
|
"data-testid": "video-card-status-badges",
|
|
2174
|
-
className: `absolute ${
|
|
2178
|
+
className: `absolute ${statusBadgesPositionClass} z-30 flex items-center`,
|
|
2175
2179
|
children: statusBadges.map((badge, index) => {
|
|
2176
2180
|
const presentation = getIdleReasonPresentation({
|
|
2177
2181
|
label: badge.label,
|
|
@@ -2222,6 +2226,17 @@ var VideoCard = React__default.default.memo(({
|
|
|
2222
2226
|
})
|
|
2223
2227
|
}
|
|
2224
2228
|
),
|
|
2229
|
+
isWorstPerformance && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2230
|
+
"div",
|
|
2231
|
+
{
|
|
2232
|
+
"data-testid": "video-card-worst-performance-marker",
|
|
2233
|
+
className: `pointer-events-none absolute z-[65] inline-flex items-center rounded-md bg-[#1A0B09]/95 border border-[#E34329]/60 font-semibold tracking-wide text-white shadow-xl ${worstMarkerClassName}`,
|
|
2234
|
+
children: [
|
|
2235
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangle, { className: `${compact ? "h-3.5 w-3.5" : "h-4 w-4"} text-[#E34329]`, "aria-hidden": "true" }),
|
|
2236
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Overall Underperformer" })
|
|
2237
|
+
]
|
|
2238
|
+
}
|
|
2239
|
+
),
|
|
2225
2240
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `absolute bottom-0 left-0 right-0 ${compact ? "h-0.5" : "h-1"} bg-black/50 z-30`, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2226
2241
|
"div",
|
|
2227
2242
|
{
|
|
@@ -2270,6 +2285,9 @@ var VideoCard = React__default.default.memo(({
|
|
|
2270
2285
|
if (prevProps.isBlueBest !== nextProps.isBlueBest) {
|
|
2271
2286
|
return false;
|
|
2272
2287
|
}
|
|
2288
|
+
if (prevProps.isWorstPerformance !== nextProps.isWorstPerformance) {
|
|
2289
|
+
return false;
|
|
2290
|
+
}
|
|
2273
2291
|
if (prevProps.lastSeenLabel !== nextProps.lastSeenLabel) {
|
|
2274
2292
|
return false;
|
|
2275
2293
|
}
|
package/dist/automation.mjs
CHANGED
|
@@ -2047,6 +2047,7 @@ var VideoCard = React.memo(({
|
|
|
2047
2047
|
displayMinuteBucket,
|
|
2048
2048
|
displayName,
|
|
2049
2049
|
isBlueBest = false,
|
|
2050
|
+
isWorstPerformance = false,
|
|
2050
2051
|
lastSeenLabel,
|
|
2051
2052
|
hasRecentHealthSignal = false,
|
|
2052
2053
|
onMouseEnter,
|
|
@@ -2085,6 +2086,8 @@ var VideoCard = React.memo(({
|
|
|
2085
2086
|
const efficiencyOverlayClass = videoGridColorState === "green" ? "bg-[#00D654]/25" : videoGridColorState === "blue" ? "bg-[#0EA5E9]/30" : videoGridColorState === "yellow" ? "bg-[#FFD700]/30" : videoGridColorState === "red" ? "bg-[#FF2D0A]/30" : "bg-transparent";
|
|
2086
2087
|
const efficiencyBarClass = videoGridColorState === "green" ? "bg-[#00AB45]" : videoGridColorState === "blue" ? "bg-[#0EA5E9]" : videoGridColorState === "yellow" ? "bg-[#FFB020]" : videoGridColorState === "red" ? "bg-[#E34329]" : "bg-gray-500/70";
|
|
2087
2088
|
const efficiencyStatus = videoGridColorState === "green" ? "High" : videoGridColorState === "blue" ? "Best" : videoGridColorState === "yellow" ? "Medium" : videoGridColorState === "red" ? "Low" : "Neutral";
|
|
2089
|
+
const worstMarkerClassName = compact ? "left-1.5 top-1.5 gap-1.5 px-2 py-1 text-[11px]" : "left-2 top-2 gap-2 px-3 py-1.5 text-xs";
|
|
2090
|
+
const statusBadgesPositionClass = isWorstPerformance ? compact ? "top-8 left-1.5 gap-1" : "top-10 left-2 gap-1.5" : compact ? "top-1.5 left-1.5 gap-1" : "top-2 left-2 gap-1.5";
|
|
2088
2091
|
const trendInfo = workspace.trend !== void 0 ? getTrendArrowAndColor(workspace.trend) : null;
|
|
2089
2092
|
const handleClick = useCallback(() => {
|
|
2090
2093
|
trackCoreEvent("Workspace Card Clicked", {
|
|
@@ -2103,6 +2106,7 @@ var VideoCard = React.memo(({
|
|
|
2103
2106
|
{
|
|
2104
2107
|
className: `workspace-card relative bg-gray-950 rounded-md overflow-hidden cursor-pointer shadow-[0_1px_3px_rgba(15,23,42,0.16),0_0_0_1px_rgba(255,255,255,0.06)] transition-[box-shadow] duration-200 hover:shadow-[0_10px_24px_rgba(15,23,42,0.28),0_0_0_1px_rgba(255,255,255,0.10)] active:shadow-[0_1px_3px_rgba(15,23,42,0.16),0_0_0_1px_rgba(255,255,255,0.06)] touch-manipulation ${className}`,
|
|
2105
2108
|
style: { width: "100%", height: "100%" },
|
|
2109
|
+
"data-worst-performance-highlight": isWorstPerformance ? "true" : void 0,
|
|
2106
2110
|
onClick: handleClick,
|
|
2107
2111
|
onMouseEnter,
|
|
2108
2112
|
onMouseLeave,
|
|
@@ -2164,7 +2168,7 @@ var VideoCard = React.memo(({
|
|
|
2164
2168
|
"div",
|
|
2165
2169
|
{
|
|
2166
2170
|
"data-testid": "video-card-status-badges",
|
|
2167
|
-
className: `absolute ${
|
|
2171
|
+
className: `absolute ${statusBadgesPositionClass} z-30 flex items-center`,
|
|
2168
2172
|
children: statusBadges.map((badge, index) => {
|
|
2169
2173
|
const presentation = getIdleReasonPresentation({
|
|
2170
2174
|
label: badge.label,
|
|
@@ -2215,6 +2219,17 @@ var VideoCard = React.memo(({
|
|
|
2215
2219
|
})
|
|
2216
2220
|
}
|
|
2217
2221
|
),
|
|
2222
|
+
isWorstPerformance && /* @__PURE__ */ jsxs(
|
|
2223
|
+
"div",
|
|
2224
|
+
{
|
|
2225
|
+
"data-testid": "video-card-worst-performance-marker",
|
|
2226
|
+
className: `pointer-events-none absolute z-[65] inline-flex items-center rounded-md bg-[#1A0B09]/95 border border-[#E34329]/60 font-semibold tracking-wide text-white shadow-xl ${worstMarkerClassName}`,
|
|
2227
|
+
children: [
|
|
2228
|
+
/* @__PURE__ */ jsx(AlertTriangle, { className: `${compact ? "h-3.5 w-3.5" : "h-4 w-4"} text-[#E34329]`, "aria-hidden": "true" }),
|
|
2229
|
+
/* @__PURE__ */ jsx("span", { children: "Overall Underperformer" })
|
|
2230
|
+
]
|
|
2231
|
+
}
|
|
2232
|
+
),
|
|
2218
2233
|
/* @__PURE__ */ jsx("div", { className: `absolute bottom-0 left-0 right-0 ${compact ? "h-0.5" : "h-1"} bg-black/50 z-30`, children: /* @__PURE__ */ jsx(
|
|
2219
2234
|
"div",
|
|
2220
2235
|
{
|
|
@@ -2263,6 +2278,9 @@ var VideoCard = React.memo(({
|
|
|
2263
2278
|
if (prevProps.isBlueBest !== nextProps.isBlueBest) {
|
|
2264
2279
|
return false;
|
|
2265
2280
|
}
|
|
2281
|
+
if (prevProps.isWorstPerformance !== nextProps.isWorstPerformance) {
|
|
2282
|
+
return false;
|
|
2283
|
+
}
|
|
2266
2284
|
if (prevProps.lastSeenLabel !== nextProps.lastSeenLabel) {
|
|
2267
2285
|
return false;
|
|
2268
2286
|
}
|
package/dist/index.css
CHANGED
|
@@ -604,6 +604,9 @@ body {
|
|
|
604
604
|
.top-1\/4 {
|
|
605
605
|
top: 25%;
|
|
606
606
|
}
|
|
607
|
+
.top-10 {
|
|
608
|
+
top: 2.5rem;
|
|
609
|
+
}
|
|
607
610
|
.top-14 {
|
|
608
611
|
top: 3.5rem;
|
|
609
612
|
}
|
|
@@ -673,6 +676,9 @@ body {
|
|
|
673
676
|
.z-\[60\] {
|
|
674
677
|
z-index: 60;
|
|
675
678
|
}
|
|
679
|
+
.z-\[65\] {
|
|
680
|
+
z-index: 65;
|
|
681
|
+
}
|
|
676
682
|
.z-\[70\] {
|
|
677
683
|
z-index: 70;
|
|
678
684
|
}
|
|
@@ -1262,6 +1268,9 @@ body {
|
|
|
1262
1268
|
.min-h-\[220px\] {
|
|
1263
1269
|
min-height: 220px;
|
|
1264
1270
|
}
|
|
1271
|
+
.min-h-\[240px\] {
|
|
1272
|
+
min-height: 240px;
|
|
1273
|
+
}
|
|
1265
1274
|
.min-h-\[250px\] {
|
|
1266
1275
|
min-height: 250px;
|
|
1267
1276
|
}
|
|
@@ -2390,6 +2399,9 @@ body {
|
|
|
2390
2399
|
--tw-border-opacity: 1;
|
|
2391
2400
|
border-color: rgb(227 67 41 / var(--tw-border-opacity, 1));
|
|
2392
2401
|
}
|
|
2402
|
+
.border-\[\#E34329\]\/60 {
|
|
2403
|
+
border-color: rgb(227 67 41 / 0.6);
|
|
2404
|
+
}
|
|
2393
2405
|
.border-amber-100 {
|
|
2394
2406
|
--tw-border-opacity: 1;
|
|
2395
2407
|
border-color: rgb(254 243 199 / var(--tw-border-opacity, 1));
|
|
@@ -2766,6 +2778,9 @@ body {
|
|
|
2766
2778
|
.bg-\[\#0EA5E9\]\/30 {
|
|
2767
2779
|
background-color: rgb(14 165 233 / 0.3);
|
|
2768
2780
|
}
|
|
2781
|
+
.bg-\[\#1A0B09\]\/95 {
|
|
2782
|
+
background-color: rgb(26 11 9 / 0.95);
|
|
2783
|
+
}
|
|
2769
2784
|
.bg-\[\#E34329\] {
|
|
2770
2785
|
--tw-bg-opacity: 1;
|
|
2771
2786
|
background-color: rgb(227 67 41 / var(--tw-bg-opacity, 1));
|
|
@@ -2937,6 +2952,9 @@ body {
|
|
|
2937
2952
|
.bg-emerald-50\/50 {
|
|
2938
2953
|
background-color: rgb(236 253 245 / 0.5);
|
|
2939
2954
|
}
|
|
2955
|
+
.bg-emerald-50\/70 {
|
|
2956
|
+
background-color: rgb(236 253 245 / 0.7);
|
|
2957
|
+
}
|
|
2940
2958
|
.bg-emerald-50\/80 {
|
|
2941
2959
|
background-color: rgb(236 253 245 / 0.8);
|
|
2942
2960
|
}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as LineSignal, V as VideoGridMetricMode, W as WorkspaceMetrics, a as LineInfo, b as WorkspaceDetailedMetrics, S as SkuBreakdownItem, c as SkuSegmentItem, d as LineSkuBreakdownItem, E as EfficiencyLegendUpdate, D as DashboardKPIs, P as PoorPerformingWorkspace, e as WorkspaceVideoStream, K as KpiTrend, M as MonthlyTrendSummary, f as Workspace, g as WorkspaceCameraIpInfo, h as WorkspaceActionUpdate, A as ActionThreshold, i as ShiftConfiguration, j as KpiSignal, k as LineIssueResolutionSummary } from './automation-
|
|
2
|
-
export { s as CountDelta, C as CurrentWorkspaceSKU, t as DurationDelta, p as KpiSignalMode, o as KpiSignalSource, l as LineDetailedMetrics, n as LineSignalSource, v as LineThreshold, r as PercentageDelta, B as RecentFlowSnapshotGrid, R as RecentFlowSnapshotGridProps, w as ShiftConfigurationRecord, q as ValueDelta, m as VideoGridStatusBadge, u as WorkspaceCropRect, y as isRecentFlowVideoGridMetricMode, z as isWipGatedVideoGridMetricMode, x as normalizeVideoGridMetricMode } from './automation-
|
|
1
|
+
import { L as LineSignal, V as VideoGridMetricMode, W as WorkspaceMetrics, a as LineInfo, b as WorkspaceDetailedMetrics, S as SkuBreakdownItem, c as SkuSegmentItem, d as LineSkuBreakdownItem, E as EfficiencyLegendUpdate, D as DashboardKPIs, P as PoorPerformingWorkspace, e as WorkspaceVideoStream, K as KpiTrend, M as MonthlyTrendSummary, f as Workspace, g as WorkspaceCameraIpInfo, h as WorkspaceActionUpdate, A as ActionThreshold, i as ShiftConfiguration, j as KpiSignal, k as LineIssueResolutionSummary } from './automation-B472r1h3.mjs';
|
|
2
|
+
export { s as CountDelta, C as CurrentWorkspaceSKU, t as DurationDelta, p as KpiSignalMode, o as KpiSignalSource, l as LineDetailedMetrics, n as LineSignalSource, v as LineThreshold, r as PercentageDelta, B as RecentFlowSnapshotGrid, R as RecentFlowSnapshotGridProps, w as ShiftConfigurationRecord, q as ValueDelta, m as VideoGridStatusBadge, u as WorkspaceCropRect, y as isRecentFlowVideoGridMetricMode, z as isWipGatedVideoGridMetricMode, x as normalizeVideoGridMetricMode } from './automation-B472r1h3.mjs';
|
|
3
3
|
import * as _supabase_supabase_js from '@supabase/supabase-js';
|
|
4
4
|
import { SupabaseClient as SupabaseClient$1, Session, User, AuthError } from '@supabase/supabase-js';
|
|
5
5
|
import { LucideProps, Share2, Download } from 'lucide-react';
|
|
@@ -8933,13 +8933,17 @@ declare const BottlenecksContent: React__default.FC<BottlenecksContentProps>;
|
|
|
8933
8933
|
declare const DEFAULT_WORKSPACE_POSITIONS: WorkspacePosition[];
|
|
8934
8934
|
declare const WORKSPACE_POSITIONS: WorkspacePosition[];
|
|
8935
8935
|
|
|
8936
|
+
type HomeDisplayMode = 'all' | 'red_only' | 'slideshow' | 'worst_workstations';
|
|
8937
|
+
|
|
8936
8938
|
interface WorkspaceGridProps {
|
|
8937
8939
|
workspaces: WorkspaceMetrics[];
|
|
8938
8940
|
blueComparisonWorkspaces?: WorkspaceMetrics[];
|
|
8941
|
+
worstPerformanceWorkspaceIds?: string[];
|
|
8939
8942
|
isPdfMode?: boolean;
|
|
8940
8943
|
customWorkspacePositions?: typeof DEFAULT_WORKSPACE_POSITIONS;
|
|
8941
8944
|
lineNames?: Record<string, string>;
|
|
8942
8945
|
lineOrder?: string[];
|
|
8946
|
+
activeSlideshowLineId?: string | null;
|
|
8943
8947
|
factoryView?: string;
|
|
8944
8948
|
line2Uuid?: string;
|
|
8945
8949
|
className?: string;
|
|
@@ -8956,6 +8960,7 @@ interface WorkspaceGridProps {
|
|
|
8956
8960
|
onWorkspaceHover?: (workspaceId: string) => void;
|
|
8957
8961
|
onWorkspaceHoverEnd?: (workspaceId: string) => void;
|
|
8958
8962
|
toolbarRightContent?: React__default.ReactNode;
|
|
8963
|
+
displayMode?: HomeDisplayMode;
|
|
8959
8964
|
}
|
|
8960
8965
|
declare const WorkspaceGrid: React__default.FC<WorkspaceGridProps>;
|
|
8961
8966
|
|
|
@@ -9012,9 +9017,11 @@ declare const TargetWorkspaceGrid: React__default.FC<TargetWorkspaceGridProps>;
|
|
|
9012
9017
|
interface VideoGridViewProps {
|
|
9013
9018
|
workspaces: WorkspaceMetrics[];
|
|
9014
9019
|
blueComparisonWorkspaces?: WorkspaceMetrics[];
|
|
9020
|
+
worstPerformanceWorkspaceIds?: string[];
|
|
9015
9021
|
selectedLine?: number;
|
|
9016
9022
|
lineNames?: Record<string, string>;
|
|
9017
9023
|
lineOrder?: string[];
|
|
9024
|
+
activeSlideshowLineId?: string | null;
|
|
9018
9025
|
className?: string;
|
|
9019
9026
|
legend?: EfficiencyLegendUpdate;
|
|
9020
9027
|
videoSources?: {
|
|
@@ -9024,6 +9031,7 @@ interface VideoGridViewProps {
|
|
|
9024
9031
|
videoStreamsByWorkspaceId?: Record<string, WorkspaceVideoStream>;
|
|
9025
9032
|
videoStreamsLoading?: boolean;
|
|
9026
9033
|
displayNames?: Record<string, string>;
|
|
9034
|
+
displayMode?: HomeDisplayMode;
|
|
9027
9035
|
onWorkspaceHover?: (workspaceId: string) => void;
|
|
9028
9036
|
onWorkspaceHoverEnd?: (workspaceId: string) => void;
|
|
9029
9037
|
}
|
|
@@ -9061,6 +9069,7 @@ interface VideoCardProps {
|
|
|
9061
9069
|
displayMinuteBucket?: number;
|
|
9062
9070
|
displayName?: string;
|
|
9063
9071
|
isBlueBest?: boolean;
|
|
9072
|
+
isWorstPerformance?: boolean;
|
|
9064
9073
|
lastSeenLabel?: string;
|
|
9065
9074
|
hasRecentHealthSignal?: boolean;
|
|
9066
9075
|
onMouseEnter?: () => void;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { L as LineSignal, V as VideoGridMetricMode, W as WorkspaceMetrics, a as LineInfo, b as WorkspaceDetailedMetrics, S as SkuBreakdownItem, c as SkuSegmentItem, d as LineSkuBreakdownItem, E as EfficiencyLegendUpdate, D as DashboardKPIs, P as PoorPerformingWorkspace, e as WorkspaceVideoStream, K as KpiTrend, M as MonthlyTrendSummary, f as Workspace, g as WorkspaceCameraIpInfo, h as WorkspaceActionUpdate, A as ActionThreshold, i as ShiftConfiguration, j as KpiSignal, k as LineIssueResolutionSummary } from './automation-
|
|
2
|
-
export { s as CountDelta, C as CurrentWorkspaceSKU, t as DurationDelta, p as KpiSignalMode, o as KpiSignalSource, l as LineDetailedMetrics, n as LineSignalSource, v as LineThreshold, r as PercentageDelta, B as RecentFlowSnapshotGrid, R as RecentFlowSnapshotGridProps, w as ShiftConfigurationRecord, q as ValueDelta, m as VideoGridStatusBadge, u as WorkspaceCropRect, y as isRecentFlowVideoGridMetricMode, z as isWipGatedVideoGridMetricMode, x as normalizeVideoGridMetricMode } from './automation-
|
|
1
|
+
import { L as LineSignal, V as VideoGridMetricMode, W as WorkspaceMetrics, a as LineInfo, b as WorkspaceDetailedMetrics, S as SkuBreakdownItem, c as SkuSegmentItem, d as LineSkuBreakdownItem, E as EfficiencyLegendUpdate, D as DashboardKPIs, P as PoorPerformingWorkspace, e as WorkspaceVideoStream, K as KpiTrend, M as MonthlyTrendSummary, f as Workspace, g as WorkspaceCameraIpInfo, h as WorkspaceActionUpdate, A as ActionThreshold, i as ShiftConfiguration, j as KpiSignal, k as LineIssueResolutionSummary } from './automation-B472r1h3.js';
|
|
2
|
+
export { s as CountDelta, C as CurrentWorkspaceSKU, t as DurationDelta, p as KpiSignalMode, o as KpiSignalSource, l as LineDetailedMetrics, n as LineSignalSource, v as LineThreshold, r as PercentageDelta, B as RecentFlowSnapshotGrid, R as RecentFlowSnapshotGridProps, w as ShiftConfigurationRecord, q as ValueDelta, m as VideoGridStatusBadge, u as WorkspaceCropRect, y as isRecentFlowVideoGridMetricMode, z as isWipGatedVideoGridMetricMode, x as normalizeVideoGridMetricMode } from './automation-B472r1h3.js';
|
|
3
3
|
import * as _supabase_supabase_js from '@supabase/supabase-js';
|
|
4
4
|
import { SupabaseClient as SupabaseClient$1, Session, User, AuthError } from '@supabase/supabase-js';
|
|
5
5
|
import { LucideProps, Share2, Download } from 'lucide-react';
|
|
@@ -8933,13 +8933,17 @@ declare const BottlenecksContent: React__default.FC<BottlenecksContentProps>;
|
|
|
8933
8933
|
declare const DEFAULT_WORKSPACE_POSITIONS: WorkspacePosition[];
|
|
8934
8934
|
declare const WORKSPACE_POSITIONS: WorkspacePosition[];
|
|
8935
8935
|
|
|
8936
|
+
type HomeDisplayMode = 'all' | 'red_only' | 'slideshow' | 'worst_workstations';
|
|
8937
|
+
|
|
8936
8938
|
interface WorkspaceGridProps {
|
|
8937
8939
|
workspaces: WorkspaceMetrics[];
|
|
8938
8940
|
blueComparisonWorkspaces?: WorkspaceMetrics[];
|
|
8941
|
+
worstPerformanceWorkspaceIds?: string[];
|
|
8939
8942
|
isPdfMode?: boolean;
|
|
8940
8943
|
customWorkspacePositions?: typeof DEFAULT_WORKSPACE_POSITIONS;
|
|
8941
8944
|
lineNames?: Record<string, string>;
|
|
8942
8945
|
lineOrder?: string[];
|
|
8946
|
+
activeSlideshowLineId?: string | null;
|
|
8943
8947
|
factoryView?: string;
|
|
8944
8948
|
line2Uuid?: string;
|
|
8945
8949
|
className?: string;
|
|
@@ -8956,6 +8960,7 @@ interface WorkspaceGridProps {
|
|
|
8956
8960
|
onWorkspaceHover?: (workspaceId: string) => void;
|
|
8957
8961
|
onWorkspaceHoverEnd?: (workspaceId: string) => void;
|
|
8958
8962
|
toolbarRightContent?: React__default.ReactNode;
|
|
8963
|
+
displayMode?: HomeDisplayMode;
|
|
8959
8964
|
}
|
|
8960
8965
|
declare const WorkspaceGrid: React__default.FC<WorkspaceGridProps>;
|
|
8961
8966
|
|
|
@@ -9012,9 +9017,11 @@ declare const TargetWorkspaceGrid: React__default.FC<TargetWorkspaceGridProps>;
|
|
|
9012
9017
|
interface VideoGridViewProps {
|
|
9013
9018
|
workspaces: WorkspaceMetrics[];
|
|
9014
9019
|
blueComparisonWorkspaces?: WorkspaceMetrics[];
|
|
9020
|
+
worstPerformanceWorkspaceIds?: string[];
|
|
9015
9021
|
selectedLine?: number;
|
|
9016
9022
|
lineNames?: Record<string, string>;
|
|
9017
9023
|
lineOrder?: string[];
|
|
9024
|
+
activeSlideshowLineId?: string | null;
|
|
9018
9025
|
className?: string;
|
|
9019
9026
|
legend?: EfficiencyLegendUpdate;
|
|
9020
9027
|
videoSources?: {
|
|
@@ -9024,6 +9031,7 @@ interface VideoGridViewProps {
|
|
|
9024
9031
|
videoStreamsByWorkspaceId?: Record<string, WorkspaceVideoStream>;
|
|
9025
9032
|
videoStreamsLoading?: boolean;
|
|
9026
9033
|
displayNames?: Record<string, string>;
|
|
9034
|
+
displayMode?: HomeDisplayMode;
|
|
9027
9035
|
onWorkspaceHover?: (workspaceId: string) => void;
|
|
9028
9036
|
onWorkspaceHoverEnd?: (workspaceId: string) => void;
|
|
9029
9037
|
}
|
|
@@ -9061,6 +9069,7 @@ interface VideoCardProps {
|
|
|
9061
9069
|
displayMinuteBucket?: number;
|
|
9062
9070
|
displayName?: string;
|
|
9063
9071
|
isBlueBest?: boolean;
|
|
9072
|
+
isWorstPerformance?: boolean;
|
|
9064
9073
|
lastSeenLabel?: string;
|
|
9065
9074
|
hasRecentHealthSignal?: boolean;
|
|
9066
9075
|
onMouseEnter?: () => void;
|