@j3m-quantum/ui 1.6.1 → 1.8.0

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
@@ -389,6 +389,37 @@ declare function AlertDialogCancel({ className, ...props }: React$1.ComponentPro
389
389
 
390
390
  declare function Progress({ className, value, ...props }: React$1.ComponentProps<typeof ProgressPrimitive.Root>): react_jsx_runtime.JSX.Element;
391
391
 
392
+ interface CircularProgressProps extends React$1.HTMLAttributes<HTMLDivElement> {
393
+ /** Progress value (0-100) */
394
+ value: number;
395
+ /** Size of the circle in pixels */
396
+ size?: number;
397
+ /** Stroke width in pixels */
398
+ strokeWidth?: number;
399
+ /** Color variant for the progress arc */
400
+ variant?: "default" | "success" | "warning" | "destructive";
401
+ /** Whether to show the completed checkmark when value >= 100 */
402
+ showCheckmark?: boolean;
403
+ /** Content to display in the center (overrides default) */
404
+ children?: React$1.ReactNode;
405
+ }
406
+ /**
407
+ * Circular progress indicator component.
408
+ *
409
+ * Styled to match Quantum chart components:
410
+ * - Uses chart color tokens
411
+ * - Muted background track
412
+ * - Clean typography for center content
413
+ *
414
+ * @example
415
+ * ```tsx
416
+ * <CircularProgress value={75} size={80}>
417
+ * <span className="text-lg font-bold">75%</span>
418
+ * </CircularProgress>
419
+ * ```
420
+ */
421
+ declare function CircularProgress({ className, value, size, strokeWidth, variant, showCheckmark, children, ...props }: CircularProgressProps): react_jsx_runtime.JSX.Element;
422
+
392
423
  declare function TooltipProvider({ delayDuration, ...props }: React$1.ComponentProps<typeof TooltipPrimitive.Provider>): react_jsx_runtime.JSX.Element;
393
424
  declare function Tooltip({ ...props }: React$1.ComponentProps<typeof TooltipPrimitive.Root>): react_jsx_runtime.JSX.Element;
394
425
  declare function TooltipTrigger({ ...props }: React$1.ComponentProps<typeof TooltipPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
@@ -807,6 +838,48 @@ interface Week {
807
838
  * Unit type for production measurement
808
839
  */
809
840
  type ProductionUnit = "quantity" | "kvm" | "ton" | "kg" | "m" | "pcs";
841
+ /**
842
+ * Location type for a planning comment
843
+ */
844
+ type PlanningCommentLocationType = "production" | "delivery";
845
+ /**
846
+ * Location metadata for deep-linking to where a comment was created
847
+ */
848
+ interface PlanningCommentLocation {
849
+ /** Type of location (production or delivery) */
850
+ type: PlanningCommentLocationType;
851
+ /** Week key (YYYY-WXX format) */
852
+ weekKey: string;
853
+ /** Supplier ID */
854
+ supplierId: string;
855
+ /** Supplier name for display */
856
+ supplierName?: string;
857
+ /** Delivery ID (if type is "delivery") */
858
+ deliveryId?: string;
859
+ /** Delivery label for display (if type is "delivery") */
860
+ deliveryLabel?: string;
861
+ }
862
+ /**
863
+ * A comment attached to production or delivery
864
+ */
865
+ interface PlanningComment {
866
+ /** Unique identifier */
867
+ id: string;
868
+ /** Author name */
869
+ author: string;
870
+ /** Comment text */
871
+ text: string;
872
+ /** Timestamp */
873
+ createdAt: Date;
874
+ /** Whether the comment has been read */
875
+ isRead?: boolean;
876
+ /** Location metadata for deep-linking */
877
+ location?: PlanningCommentLocation;
878
+ }
879
+ /**
880
+ * Get display label for a comment location
881
+ */
882
+ declare function getCommentLocationLabel(location: PlanningCommentLocation): string;
810
883
  /**
811
884
  * Production data for a week
812
885
  */
@@ -821,7 +894,13 @@ interface ProductionData {
821
894
  status: DeliveryStatus;
822
895
  /** Progress percentage (0-100) - can be calculated from produced/target */
823
896
  progress?: number;
897
+ /** Comments about production */
898
+ comments?: PlanningComment[];
824
899
  }
900
+ /**
901
+ * Shipment status for a delivery element
902
+ */
903
+ type ElementShipmentStatus = "sent" | "not-sent" | "moved" | "addon" | "planned";
825
904
  /**
826
905
  * An element within a delivery
827
906
  */
@@ -830,13 +909,44 @@ interface DeliveryElement {
830
909
  id: string;
831
910
  /** Element name/description */
832
911
  name: string;
833
- /** Whether this element is produced */
912
+ /** Whether this element is produced / shipped (legacy, use shipmentStatus instead) */
834
913
  isProduced: boolean;
914
+ /** Shipment status for this element */
915
+ shipmentStatus?: ElementShipmentStatus;
916
+ /** If moved/reassigned, reference to the actual delivery it was sent on */
917
+ actualDeliveryId?: string;
918
+ /** If moved/reassigned, label of the actual delivery */
919
+ actualDeliveryLabel?: string;
920
+ /** If addon, reference to the original planned delivery */
921
+ originalDeliveryId?: string;
922
+ /** If addon, label of the original planned delivery */
923
+ originalDeliveryLabel?: string;
924
+ /** Prefix code (e.g., "VP", "YV") */
925
+ prefix?: string;
926
+ /** Element type (e.g., "Wall panel", "Column") */
927
+ type?: string;
928
+ /** Weight in kg or tons */
929
+ weight?: number;
930
+ /** Weight unit */
931
+ weightUnit?: "kg" | "ton";
932
+ /** Size in square meters */
933
+ sizeSqm?: number;
934
+ /** Delivery identifier this element belongs to */
935
+ deliveryId?: string;
835
936
  /** Quantity */
836
937
  quantity?: number;
837
938
  /** Unit */
838
939
  unit?: ProductionUnit;
839
940
  }
941
+ /**
942
+ * Get derived shipment status for an element
943
+ * Uses iPad flow data as source of truth if available
944
+ */
945
+ declare function getElementShipmentStatus(element: DeliveryElement, currentDeliveryId: string): ElementShipmentStatus;
946
+ /**
947
+ * Get label for element shipment status (non-critical tone)
948
+ */
949
+ declare function getShipmentStatusLabel(status: ElementShipmentStatus): string;
840
950
  /**
841
951
  * Represents a delivery within a week cell
842
952
  */
@@ -857,6 +967,10 @@ interface Delivery {
857
967
  elementsAtRisk?: number;
858
968
  /** Total elements count */
859
969
  totalElements?: number;
970
+ /** Delivery progress (0-100) */
971
+ progress?: number;
972
+ /** Comments about this delivery */
973
+ comments?: PlanningComment[];
860
974
  }
861
975
  /**
862
976
  * Data for a single week cell in the planning matrix
@@ -901,6 +1015,10 @@ interface Supplier {
901
1015
  /**
902
1016
  * Configuration options for the planning table
903
1017
  */
1018
+ /**
1019
+ * User role for role-based access control
1020
+ */
1021
+ type PlanningUserRole = "supplier" | "j3m";
904
1022
  interface PlanningTableConfig {
905
1023
  /** Number of weeks to display */
906
1024
  weekCount?: number;
@@ -922,6 +1040,16 @@ interface PlanningTableConfig {
922
1040
  maxHeight?: string;
923
1041
  /** Callback when a cell is clicked */
924
1042
  onCellClick?: (supplier: Supplier, week: Week, data: WeekCellData) => void;
1043
+ /** Comments for all weeks (weekKey -> comments[]) - shown in X-axis header */
1044
+ weekComments?: Record<string, PlanningComment[]>;
1045
+ /** Callback when a new comment is added via week header */
1046
+ onAddWeekComment?: (weekKey: string, text: string, location: PlanningCommentLocation) => void;
1047
+ /** Callback when a comment is clicked (for navigation to location) */
1048
+ onCommentClick?: (comment: PlanningComment) => void;
1049
+ /** User role for filtering supplier/prefix options in comments */
1050
+ userRole?: PlanningUserRole;
1051
+ /** Current supplier ID (required when userRole is "supplier") - limits comment options to this supplier only */
1052
+ currentSupplierId?: string;
925
1053
  }
926
1054
  /**
927
1055
  * Props for the PlanningTable component
@@ -964,8 +1092,12 @@ interface SupplierCellProps extends React$1.HTMLAttributes<HTMLDivElement> {
964
1092
  supplier: Supplier;
965
1093
  }
966
1094
  /**
967
- * Cell component for displaying supplier information in the first column.
968
- * Shows supplier name with badge for checkpoint type.
1095
+ * Cell component for displaying supplier information in the Y-axis legend.
1096
+ *
1097
+ * Styling matches Calibration Table's RowHeaderCell:
1098
+ * - White background (Y-axis cells)
1099
+ * - Quantum spacing tokens (8px horizontal, 12px top)
1100
+ * - Same typography scale and badge styling
969
1101
  */
970
1102
  declare function SupplierCell({ className, supplier, ...props }: SupplierCellProps): react_jsx_runtime.JSX.Element;
971
1103
 
@@ -983,19 +1115,87 @@ interface WeekCellProps extends React$1.HTMLAttributes<HTMLDivElement> {
983
1115
  }
984
1116
  /**
985
1117
  * Cell component for displaying week data in the planning matrix.
986
- * Shows production progress and delivery status.
1118
+ *
1119
+ * Styling matches Calibration Table:
1120
+ * - Edge-to-edge status fills (no inset card look)
1121
+ * - Quantum spacing tokens (8px horizontal, 12px top)
1122
+ * - Left stroke for status indication
1123
+ *
1124
+ * Note: Comments are shown in X-axis header only (not per-cell)
987
1125
  */
988
1126
  declare function WeekCell({ className, data, week, supplier, isCurrentWeek, onCellClick, ...props }: WeekCellProps): react_jsx_runtime.JSX.Element;
989
1127
 
1128
+ /** Location option for the comment form */
1129
+ interface CommentLocationOption {
1130
+ id: string;
1131
+ label: string;
1132
+ type: PlanningCommentLocationType;
1133
+ supplierId: string;
1134
+ supplierName: string;
1135
+ deliveryId?: string;
1136
+ deliveryLabel?: string;
1137
+ }
1138
+ interface PlanningWeekCommentPopoverProps {
1139
+ /** Existing comments for this week */
1140
+ comments: PlanningComment[];
1141
+ /** Week label for display */
1142
+ weekLabel: string;
1143
+ /** Week key (YYYY-WXX format) */
1144
+ weekKey: string;
1145
+ /** Available location options (suppliers + their deliveries) */
1146
+ locationOptions: CommentLocationOption[];
1147
+ /** Callback when a new comment is added */
1148
+ onAddComment?: (text: string, location: PlanningCommentLocation) => void;
1149
+ /** Callback when a comment is clicked (for navigation) */
1150
+ onCommentClick?: (comment: PlanningComment) => void;
1151
+ /** Whether the popover is open */
1152
+ open?: boolean;
1153
+ /** Callback when open state changes */
1154
+ onOpenChange?: (open: boolean) => void;
1155
+ }
1156
+ /**
1157
+ * Popover for viewing and adding comments for a specific week in Planning Table X-axis.
1158
+ *
1159
+ * Features:
1160
+ * - Comments list with location Badge tags (clickable for navigation)
1161
+ * - "Add comment" Button that reveals input form with smooth animation
1162
+ * - Location selection (production or delivery) when adding
1163
+ * - Click-to-navigate to exact location where comment was created
1164
+ */
1165
+ declare function PlanningWeekCommentPopover({ comments, weekLabel, weekKey, locationOptions, onAddComment, onCommentClick, open, onOpenChange, }: PlanningWeekCommentPopoverProps): react_jsx_runtime.JSX.Element;
1166
+
1167
+ /**
1168
+ * Helper function to generate location options from suppliers and their deliveries
1169
+ */
1170
+ declare function generateLocationOptions(suppliers: Supplier[], weekKey: string): CommentLocationOption[];
1171
+
990
1172
  interface WeekHeaderProps extends React$1.HTMLAttributes<HTMLDivElement> {
991
1173
  /** Week information */
992
1174
  week: Week;
1175
+ /** Week key (YYYY-WXX format) */
1176
+ weekKey?: string;
1177
+ /** Comments for this week */
1178
+ comments?: PlanningComment[];
1179
+ /** Whether to show the comment button */
1180
+ showCommentButton?: boolean;
1181
+ /** Available location options for comment form */
1182
+ locationOptions?: CommentLocationOption[];
1183
+ /** Callback when a new comment is added */
1184
+ onAddComment?: (text: string, location: PlanningCommentLocation) => void;
1185
+ /** Callback when a comment is clicked (for navigation) */
1186
+ onCommentClick?: (comment: PlanningComment) => void;
993
1187
  }
994
1188
  /**
995
1189
  * Header component for week columns in the planning table.
996
1190
  * Shows week number and date range with pulsating current week indicator.
1191
+ *
1192
+ * Styling matches Calibration table:
1193
+ * - Semibold week label with tracking-tight
1194
+ * - Current week: primary color text + pulsating dot (no full header tint)
1195
+ * - Date range: smaller, lower contrast, thinner weight (metadata)
1196
+ * - Comment popover in X-axis header (matching Calibration pattern)
997
1197
  */
998
- declare function WeekHeader({ className, week, ...props }: WeekHeaderProps): react_jsx_runtime.JSX.Element;
1198
+ declare function WeekHeader({ className, week, weekKey, comments, showCommentButton, locationOptions, onAddComment, onCommentClick, ...props }: WeekHeaderProps): react_jsx_runtime.JSX.Element;
999
1199
 
1000
1200
  interface PlanningTableToolbarProps extends React$1.HTMLAttributes<HTMLDivElement> {
1001
1201
  table: Table$1<Supplier>;
@@ -1019,12 +1219,19 @@ interface WeekDetailDialogProps {
1019
1219
  data: WeekCellData | null;
1020
1220
  /** Callback when progress is updated */
1021
1221
  onProgressUpdate?: (supplierId: string, weekKey: string, newProgress: number, newProduced?: number) => void;
1222
+ /** Callback when a production comment is added */
1223
+ onAddProductionComment?: (supplierId: string, weekKey: string, text: string) => void;
1224
+ /** Callback when a delivery comment is added */
1225
+ onAddDeliveryComment?: (supplierId: string, weekKey: string, deliveryId: string, text: string) => void;
1022
1226
  }
1023
1227
  /**
1024
1228
  * Dialog component for displaying detailed week information.
1025
- * Shows production progress and individual deliveries.
1229
+ * Uses stack navigation pattern for delivery drilldown.
1230
+ *
1231
+ * View A: Main (Production + Deliveries list)
1232
+ * View B: Delivery Details (Quantum DataTable, read-only)
1026
1233
  */
1027
- declare function WeekDetailDialog({ open, onOpenChange, supplier, week, data, onProgressUpdate, }: WeekDetailDialogProps): react_jsx_runtime.JSX.Element | null;
1234
+ declare function WeekDetailDialog({ open, onOpenChange, supplier, week, data, onProgressUpdate, onAddProductionComment, onAddDeliveryComment, }: WeekDetailDialogProps): react_jsx_runtime.JSX.Element | null;
1028
1235
 
1029
1236
  /**
1030
1237
  * Generate the supplier column definition
@@ -1033,11 +1240,769 @@ declare function getSupplierColumn(): ColumnDef<Supplier>;
1033
1240
  /**
1034
1241
  * Generate column definitions for week columns
1035
1242
  */
1036
- declare function generateWeekColumns(weeks: Week[], config?: PlanningTableConfig): ColumnDef<Supplier>[];
1243
+ declare function generateWeekColumns(weeks: Week[], config?: PlanningTableConfig, suppliers?: Supplier[]): ColumnDef<Supplier>[];
1037
1244
  /**
1038
1245
  * Generate all column definitions for the planning table
1039
1246
  */
1040
- declare function generateColumns(weeks: Week[], config?: PlanningTableConfig): ColumnDef<Supplier>[];
1247
+ declare function generateColumns(weeks: Week[], config?: PlanningTableConfig, suppliers?: Supplier[]): ColumnDef<Supplier>[];
1248
+
1249
+ /**
1250
+ * Calibration Table Types
1251
+ *
1252
+ * Type definitions for the weekly production calibration table.
1253
+ * Suppliers enter weekly production amounts to meet accumulated requirements.
1254
+ */
1255
+
1256
+ /**
1257
+ * Unit type for production measurement
1258
+ */
1259
+ type CalibrationUnit = "ton" | "pcs" | "m2" | "kg" | "m";
1260
+ /**
1261
+ * Format unit for display
1262
+ */
1263
+ declare function formatCalibrationUnit(unit: CalibrationUnit): string;
1264
+ /**
1265
+ * Status of a calibration cell based on accumulated constraint
1266
+ */
1267
+ type CalibrationStatus = "pending" | "valid" | "shortfall";
1268
+ /**
1269
+ * Data for a single week cell in the calibration matrix
1270
+ */
1271
+ interface CalibrationCellData {
1272
+ /** Planned/required amount for this week */
1273
+ planned: number;
1274
+ /** Supplier-entered production amount */
1275
+ entered: number | null;
1276
+ /** Accumulated planned up to this week (calculated) */
1277
+ accumulatedPlanned: number;
1278
+ /** Accumulated entered up to this week (calculated) */
1279
+ accumulatedEntered: number;
1280
+ /** Net difference (accumulatedEntered - accumulatedPlanned) */
1281
+ net: number;
1282
+ /** Cell status based on constraint */
1283
+ status: CalibrationStatus;
1284
+ /** Whether this cell is editable */
1285
+ isEditable: boolean;
1286
+ }
1287
+ /**
1288
+ * A comment attached to a specific week and prefix/row
1289
+ */
1290
+ interface CalibrationComment {
1291
+ /** Unique identifier */
1292
+ id: string;
1293
+ /** Week key (YYYY-WXX format) */
1294
+ weekKey: string;
1295
+ /** Prefix/row ID the comment is tagged to */
1296
+ prefixId: string;
1297
+ /** Prefix/row name for display (e.g., "Columns", "Wall panels") */
1298
+ prefixName: string;
1299
+ /** Author name */
1300
+ author: string;
1301
+ /** Comment text */
1302
+ text: string;
1303
+ /** Timestamp */
1304
+ createdAt: Date;
1305
+ /** Whether the comment has been read */
1306
+ isRead?: boolean;
1307
+ }
1308
+ /**
1309
+ * Badge type for checkpoint categorization
1310
+ */
1311
+ type CheckpointBadgeType = "Painted" | "Welded" | "Glazed" | "Cured" | "Assembled" | "Delivered" | "Tested" | "Sealed" | string;
1312
+ /**
1313
+ * A prefix/element row in the calibration table (Supplier view)
1314
+ */
1315
+ interface CalibrationPrefix {
1316
+ /** Unique identifier */
1317
+ id: string;
1318
+ /** Prefix name (e.g., "Trusses") */
1319
+ name: string;
1320
+ /** Prefix type code (e.g., "TF") */
1321
+ typeCode: string;
1322
+ /** Checkpoint badge type */
1323
+ checkpoint: CheckpointBadgeType;
1324
+ /** Unit of measurement */
1325
+ unit: CalibrationUnit;
1326
+ /** Total required quantity (sum of all planned) */
1327
+ totalRequired: number;
1328
+ /** Total booked/committed quantity */
1329
+ totalBooked: number;
1330
+ /** Week data indexed by "YYYY-WXX" format */
1331
+ weeks: Record<string, CalibrationCellData>;
1332
+ /** Comments for this prefix */
1333
+ comments?: CalibrationComment[];
1334
+ }
1335
+ /**
1336
+ * Calibration status for a supplier submission
1337
+ */
1338
+ type SubmissionStatus = "draft" | "submitted" | "approved" | "rejected";
1339
+ /**
1340
+ * A supplier row in the J3M overview table
1341
+ */
1342
+ interface CalibrationSupplier {
1343
+ /** Unique identifier */
1344
+ id: string;
1345
+ /** Supplier company name */
1346
+ name: string;
1347
+ /** Submission status */
1348
+ status: SubmissionStatus;
1349
+ /** Last updated timestamp */
1350
+ lastUpdated?: Date;
1351
+ /** Submitted by user name */
1352
+ submittedBy?: string;
1353
+ /** Prefixes/elements this supplier is responsible for */
1354
+ prefixes: CalibrationPrefix[];
1355
+ /** Overall calibration progress (0-100) */
1356
+ progress: number;
1357
+ /** Number of shortfalls across all prefixes */
1358
+ shortfallCount: number;
1359
+ /** Total comments count */
1360
+ commentsCount: number;
1361
+ }
1362
+ /**
1363
+ * Mode for the calibration table
1364
+ */
1365
+ type CalibrationMode = "supplier" | "j3m";
1366
+ /**
1367
+ * Configuration options for the calibration table
1368
+ */
1369
+ interface CalibrationTableConfig {
1370
+ /** Mode: supplier (editing) or j3m (overview) */
1371
+ mode: CalibrationMode;
1372
+ /** Number of weeks to display */
1373
+ weekCount?: number;
1374
+ /** Start date for the week range (defaults to earliest planned week) */
1375
+ startDate?: Date;
1376
+ /** Whether to allow adding earlier weeks */
1377
+ allowTimelineExtension?: boolean;
1378
+ /** Maximum weeks that can be added earlier */
1379
+ maxEarlierWeeks?: number;
1380
+ /** Whether to show the toolbar/filters */
1381
+ showToolbar?: boolean;
1382
+ /** Whether to show pagination */
1383
+ showPagination?: boolean;
1384
+ /** Rows per page options */
1385
+ pageSizeOptions?: number[];
1386
+ /** Default page size */
1387
+ defaultPageSize?: number;
1388
+ /** Whether row header column is sticky */
1389
+ stickyRowHeader?: boolean;
1390
+ /** Maximum height of the table */
1391
+ maxHeight?: string;
1392
+ /** Callback when a cell value changes */
1393
+ onCellChange?: (prefixId: string, weekKey: string, value: number | null) => void;
1394
+ /** Callback when calibration is submitted */
1395
+ onSubmit?: () => void;
1396
+ /** Callback when a comment is added */
1397
+ onAddComment?: (prefixId: string, weekKey: string, text: string) => void;
1398
+ /** Callback when a week is added earlier */
1399
+ onAddEarlierWeek?: () => void;
1400
+ }
1401
+ /**
1402
+ * Props for CalibrationTable (Supplier mode)
1403
+ */
1404
+ interface CalibrationTableProps {
1405
+ /** Prefixes to display (for supplier mode) */
1406
+ prefixes: CalibrationPrefix[];
1407
+ /** Supplier information */
1408
+ supplierName?: string;
1409
+ /** Submission status */
1410
+ status?: SubmissionStatus;
1411
+ /** Configuration options */
1412
+ config?: Omit<CalibrationTableConfig, "mode">;
1413
+ /** Additional class names */
1414
+ className?: string;
1415
+ }
1416
+ /**
1417
+ * Props for CalibrationOverview (J3M mode)
1418
+ */
1419
+ interface CalibrationOverviewProps {
1420
+ /** Suppliers to display */
1421
+ suppliers: CalibrationSupplier[];
1422
+ /** Configuration options */
1423
+ config?: Omit<CalibrationTableConfig, "mode">;
1424
+ /** Additional class names */
1425
+ className?: string;
1426
+ }
1427
+ /**
1428
+ * Calculate calibration cell data with accumulated constraints
1429
+ */
1430
+ declare function calculateCalibrationCells(weeks: {
1431
+ weekKey: string;
1432
+ planned: number;
1433
+ entered: number | null;
1434
+ }[]): Record<string, CalibrationCellData>;
1435
+ /**
1436
+ * Check if calibration can be submitted (all cells valid, no shortfalls)
1437
+ */
1438
+ declare function canSubmitCalibration(prefixes: CalibrationPrefix[]): {
1439
+ canSubmit: boolean;
1440
+ shortfallCount: number;
1441
+ pendingCount: number;
1442
+ message: string;
1443
+ };
1444
+
1445
+ /**
1446
+ * CalibrationTable - Weekly production calibration matrix
1447
+ *
1448
+ * Suppliers use this to enter weekly production amounts to meet
1449
+ * accumulated requirements. Shows validation state (grey/green/red)
1450
+ * based on accumulated constraint logic.
1451
+ */
1452
+ declare function CalibrationTable({ className, prefixes, supplierName, status, config, }: CalibrationTableProps): react_jsx_runtime.JSX.Element;
1453
+
1454
+ interface CalibrationWeekCellProps extends React$1.HTMLAttributes<HTMLDivElement> {
1455
+ /** Cell data */
1456
+ data: CalibrationCellData;
1457
+ /** Unit of measurement */
1458
+ unit: CalibrationUnit;
1459
+ /** Callback when value changes */
1460
+ onValueChange?: (value: number | null) => void;
1461
+ /** Whether the cell is in a focused/active state */
1462
+ isFocused?: boolean;
1463
+ /** Whether this cell is forced red due to prior deficit in the row */
1464
+ forcedRed?: boolean;
1465
+ /** Whether this is an empty cell (no planned work) */
1466
+ isEmpty?: boolean;
1467
+ /** Callback when "+" button is clicked to add amount */
1468
+ onAddClick?: () => void;
1469
+ }
1470
+ /**
1471
+ * A single week cell in the calibration table.
1472
+ * Shows accumulated status, planned value, and editable input.
1473
+ *
1474
+ * Status styling rules:
1475
+ * - White (empty): no planned work AND not behind (not forcedRed)
1476
+ * - Valid (green): meets accumulated requirement
1477
+ * - Shortfall (red): accumulated < planned accumulated
1478
+ * - ForcedRed: behind as of this week due to prior deficit
1479
+ */
1480
+ declare function CalibrationWeekCell({ className, data, unit, onValueChange, isFocused, forcedRed, isEmpty, onAddClick, ...props }: CalibrationWeekCellProps): react_jsx_runtime.JSX.Element;
1481
+
1482
+ /** Option for the row/type select dropdown */
1483
+ interface PrefixOption {
1484
+ id: string;
1485
+ name: string;
1486
+ }
1487
+ interface CommentPopoverProps {
1488
+ /** Existing comments for this week (may include comments from multiple prefixes) */
1489
+ comments: CalibrationComment[];
1490
+ /** Week label for display */
1491
+ weekLabel: string;
1492
+ /** Available prefixes/rows for selection */
1493
+ availablePrefixes: PrefixOption[];
1494
+ /** Callback when a new comment is added */
1495
+ onAddComment?: (text: string, prefixId: string, prefixName: string) => void;
1496
+ /** Whether the popover is open */
1497
+ open?: boolean;
1498
+ /** Callback when open state changes */
1499
+ onOpenChange?: (open: boolean) => void;
1500
+ }
1501
+ /**
1502
+ * Popover for viewing and adding comments for a specific week.
1503
+ *
1504
+ * Features:
1505
+ * - Comments list with row/type Badge tags
1506
+ * - "Add comment" Button that reveals input form with smooth animation
1507
+ * - Select dropdown for choosing which row/type the comment applies to
1508
+ */
1509
+ declare function CommentPopover({ comments, weekLabel, availablePrefixes, onAddComment, open, onOpenChange, }: CommentPopoverProps): react_jsx_runtime.JSX.Element;
1510
+
1511
+ interface CalibrationWeekHeaderProps extends React$1.HTMLAttributes<HTMLDivElement> {
1512
+ /** Week information */
1513
+ week: Week;
1514
+ /** Comments for this week */
1515
+ comments?: CalibrationComment[];
1516
+ /** Whether to show the comment button */
1517
+ showCommentButton?: boolean;
1518
+ /** Available prefixes/rows for the comment select dropdown */
1519
+ availablePrefixes?: PrefixOption[];
1520
+ /** Callback when a new comment is added (includes prefix info) */
1521
+ onAddComment?: (text: string, prefixId: string, prefixName: string) => void;
1522
+ }
1523
+ /**
1524
+ * Header component for week columns in the calibration table.
1525
+ * Shows week number (W01, W02...), date range, and comment popover.
1526
+ *
1527
+ * Comment button states:
1528
+ * - No comments: Plain comment icon
1529
+ * - Has comments: Comment icon with notification dot (primary orange)
1530
+ */
1531
+ declare function CalibrationWeekHeader({ className, week, comments, showCommentButton, availablePrefixes, onAddComment, ...props }: CalibrationWeekHeaderProps): react_jsx_runtime.JSX.Element;
1532
+
1533
+ interface RowHeaderCellProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "prefix"> {
1534
+ /** Prefix/row data */
1535
+ data: CalibrationPrefix;
1536
+ /** Whether to show the progress bar */
1537
+ showProgress?: boolean;
1538
+ }
1539
+ /**
1540
+ * Row header cell for the calibration table.
1541
+ * Shows prefix name, type code, checkpoint badge with flag, and progress bar.
1542
+ *
1543
+ * Based on Figma design:
1544
+ * - "Trusses" (prefix name, bold)
1545
+ * - "TF" (type code, muted)
1546
+ * - "Paint" badge with flag icon (checkpoint)
1547
+ * - Progress bar aligned to title text width
1548
+ */
1549
+ declare function RowHeaderCell({ className, data, showProgress, ...props }: RowHeaderCellProps): react_jsx_runtime.JSX.Element;
1550
+
1551
+ interface NetBadgeProps extends React$1.HTMLAttributes<HTMLDivElement> {
1552
+ /** Net value (accumulated entered - accumulated planned) */
1553
+ net: number;
1554
+ /** Cell status */
1555
+ status: CalibrationStatus;
1556
+ /** Whether to show compact version (icon only when valid) */
1557
+ compact?: boolean;
1558
+ }
1559
+ /**
1560
+ * Badge showing accumulated net status.
1561
+ * - Grey: Pending (not finalized)
1562
+ * - Green: Valid (net >= 0)
1563
+ * - Red: Shortfall (net < 0)
1564
+ */
1565
+ declare function NetBadge({ className, net, status, compact, ...props }: NetBadgeProps): react_jsx_runtime.JSX.Element;
1566
+
1567
+ interface CommentButtonProps extends React$1.ButtonHTMLAttributes<HTMLButtonElement> {
1568
+ /** Number of existing comments */
1569
+ commentCount?: number;
1570
+ /** Size variant */
1571
+ size?: "sm" | "default";
1572
+ }
1573
+ /**
1574
+ * Comment button with icon states:
1575
+ * - No comments: Plain comment icon
1576
+ * - Has comments: Comment icon with notification dot (primary orange)
1577
+ */
1578
+ declare function CommentButton({ className, commentCount, size, ...props }: CommentButtonProps): react_jsx_runtime.JSX.Element;
1579
+
1580
+ interface CommentDialogProps {
1581
+ /** Available prefixes/rows to comment on */
1582
+ prefixes: CalibrationPrefix[];
1583
+ /** Available weeks */
1584
+ weeks: Week[];
1585
+ /** Callback when a comment is added */
1586
+ onAddComment?: (prefixId: string, weekKey: string, text: string) => void;
1587
+ /** Trigger button variant */
1588
+ triggerVariant?: "default" | "outline" | "ghost";
1589
+ /** Whether the dialog is open */
1590
+ open?: boolean;
1591
+ /** Callback when open state changes */
1592
+ onOpenChange?: (open: boolean) => void;
1593
+ }
1594
+ /**
1595
+ * Dialog for adding a comment from the top toolbar.
1596
+ *
1597
+ * Allows user to:
1598
+ * - Select which prefix/row the comment refers to
1599
+ * - Select which week (optional, defaults to current context)
1600
+ * - Enter comment text
1601
+ */
1602
+ declare function CommentDialog({ prefixes, weeks, onAddComment, triggerVariant, open, onOpenChange, }: CommentDialogProps): react_jsx_runtime.JSX.Element;
1603
+
1604
+ interface SubmitCalibrationBarProps extends React$1.HTMLAttributes<HTMLDivElement> {
1605
+ /** Current submission status */
1606
+ status: SubmissionStatus;
1607
+ /** Last saved date */
1608
+ lastSaved?: Date;
1609
+ /** Whether calibration can be submitted */
1610
+ canSubmit: boolean;
1611
+ /** Number of shortfalls */
1612
+ shortfallCount: number;
1613
+ /** Number of pending (unfilled) cells */
1614
+ pendingCount: number;
1615
+ /** Helper message explaining current state */
1616
+ message: string;
1617
+ /** Callback when submit button is clicked */
1618
+ onSubmit?: () => void;
1619
+ /** Callback when save draft is clicked */
1620
+ onSaveDraft?: () => void;
1621
+ }
1622
+ /**
1623
+ * Sticky footer bar for calibration table.
1624
+ * Shows status badge, last saved date, and submit/save buttons.
1625
+ *
1626
+ * Based on Figma design:
1627
+ * - DRAFT badge (blue dot + text)
1628
+ * - Date display with calendar icon
1629
+ * - "Submit calibration" button (orange/primary)
1630
+ */
1631
+ declare function SubmitCalibrationBar({ className, status, lastSaved, canSubmit, shortfallCount, pendingCount, message, onSubmit, onSaveDraft, ...props }: SubmitCalibrationBarProps): react_jsx_runtime.JSX.Element;
1632
+
1633
+ /**
1634
+ * Types for the Supplier Weekly Loading (iPad) block
1635
+ *
1636
+ * A touch-first weekly view for suppliers to view deliveries
1637
+ * and add pre-unloading comments.
1638
+ */
1639
+ /**
1640
+ * User role for role-based access control
1641
+ */
1642
+ type LoadingUserRole = "supplier" | "j3m";
1643
+ /**
1644
+ * Delivery status for loading
1645
+ */
1646
+ type LoadingDeliveryStatus = "planned" | "in_progress" | "loaded" | "shipped" | "delivered" | "cancelled";
1647
+ /**
1648
+ * Element shipment status for loading (neutral tone, non-critical)
1649
+ */
1650
+ type LoadingElementStatus = "loaded" | "missing" | "moved" | "addon";
1651
+ /**
1652
+ * Get label for element shipment status (neutral tone)
1653
+ */
1654
+ declare function getLoadingElementStatusLabel(status: LoadingElementStatus): string;
1655
+ /**
1656
+ * Get status label for delivery
1657
+ */
1658
+ declare function getLoadingDeliveryStatusLabel(status: LoadingDeliveryStatus): string;
1659
+ /**
1660
+ * Visual state for delivery cards (3-state model)
1661
+ * - sent: Greyed out with checkmark (shipped/delivered)
1662
+ * - ready: Highlighted as ready to unload
1663
+ * - normal: Default neutral state
1664
+ */
1665
+ type DeliveryVisualState = "sent" | "ready" | "normal";
1666
+ /**
1667
+ * Determine the visual state for a delivery card
1668
+ */
1669
+ declare function getDeliveryVisualState(delivery: LoadingDelivery): DeliveryVisualState;
1670
+ /**
1671
+ * An element to be loaded/unloaded
1672
+ */
1673
+ interface LoadingElement {
1674
+ /** Unique identifier */
1675
+ id: string;
1676
+ /** Prefix code (e.g., "VP", "YV") */
1677
+ prefix: string;
1678
+ /** Element type (e.g., "Wall panel", "Column") */
1679
+ type: string;
1680
+ /** Weight in kg or tons */
1681
+ weight?: number;
1682
+ /** Weight unit */
1683
+ weightUnit?: "kg" | "ton";
1684
+ /** Size in square meters */
1685
+ sizeSqm?: number;
1686
+ /** Delivery reference (the delivery this element belongs to) */
1687
+ deliveryId: string;
1688
+ /** Shipment status */
1689
+ status: LoadingElementStatus;
1690
+ /** If moved, reference to actual delivery */
1691
+ actualDeliveryId?: string;
1692
+ /** If moved, label of actual delivery */
1693
+ actualDeliveryLabel?: string;
1694
+ /** If addon, reference to original delivery */
1695
+ originalDeliveryId?: string;
1696
+ /** If addon, label of original delivery */
1697
+ originalDeliveryLabel?: string;
1698
+ }
1699
+ /**
1700
+ * Comment context for pre-unloading notes
1701
+ */
1702
+ type CommentContext = "pre_unloading" | "general";
1703
+ /**
1704
+ * A comment attached to a delivery (pre-unloading)
1705
+ */
1706
+ interface LoadingComment {
1707
+ /** Unique identifier */
1708
+ id: string;
1709
+ /** Author name */
1710
+ author: string;
1711
+ /** Comment text */
1712
+ text: string;
1713
+ /** Timestamp */
1714
+ createdAt: Date;
1715
+ /** Context type */
1716
+ context: CommentContext;
1717
+ /** Week ID (YYYY-WXX format) */
1718
+ weekId: string;
1719
+ /** Delivery ID */
1720
+ deliveryId: string;
1721
+ /** Supplier ID */
1722
+ supplierId?: string;
1723
+ /** Supplier name for display */
1724
+ supplierName?: string;
1725
+ /** Prefix ID (optional) */
1726
+ prefixId?: string;
1727
+ /** Prefix name for display */
1728
+ prefixName?: string;
1729
+ }
1730
+ /**
1731
+ * A delivery to be loaded
1732
+ */
1733
+ interface LoadingDelivery {
1734
+ /** Unique identifier */
1735
+ id: string;
1736
+ /** Display label (e.g., "Delivery #1") */
1737
+ label: string;
1738
+ /** Delivery date */
1739
+ date: Date;
1740
+ /** Supplier ID */
1741
+ supplierId: string;
1742
+ /** Supplier name */
1743
+ supplierName: string;
1744
+ /** Prefix scope (if available) */
1745
+ prefixScope?: string;
1746
+ /** Delivery status */
1747
+ status: LoadingDeliveryStatus;
1748
+ /** Destination */
1749
+ destination?: string;
1750
+ /** Elements to load */
1751
+ elements: LoadingElement[];
1752
+ /** Pre-unloading comments */
1753
+ comments: LoadingComment[];
1754
+ /** Number loaded (if loading has started) */
1755
+ loadedCount?: number;
1756
+ /** Total elements count */
1757
+ totalCount?: number;
1758
+ /** Number of elements produced (for "Produced: X / Y" display) */
1759
+ producedCount?: number;
1760
+ /** Total weight in tons produced */
1761
+ producedTons?: number;
1762
+ /** Total weight in tons planned */
1763
+ totalTons?: number;
1764
+ /** Whether all elements are produced and ready to load */
1765
+ isReadyToUnload?: boolean;
1766
+ /** Whether there's a production delay risk (shows red styling) */
1767
+ hasProductionRisk?: boolean;
1768
+ /** Risk reason if hasProductionRisk is true */
1769
+ riskReason?: string;
1770
+ }
1771
+ /**
1772
+ * A supplier with deliveries
1773
+ */
1774
+ interface LoadingSupplier {
1775
+ /** Unique identifier */
1776
+ id: string;
1777
+ /** Supplier name */
1778
+ name: string;
1779
+ /** Prefixes this supplier handles */
1780
+ prefixes?: string[];
1781
+ }
1782
+ /**
1783
+ * A prefix/delivery type for the Y-axis legend (like Calibration table)
1784
+ */
1785
+ interface LoadingPrefix {
1786
+ /** Unique identifier (prefix code) */
1787
+ id: string;
1788
+ /** Display name (e.g., "Wall Panels") */
1789
+ name: string;
1790
+ /** Short type code (e.g., "VP") */
1791
+ typeCode: string;
1792
+ /** Supplier this prefix belongs to */
1793
+ supplierId: string;
1794
+ /** Supplier name */
1795
+ supplierName: string;
1796
+ /** Total deliveries for this prefix in the week */
1797
+ totalDeliveries: number;
1798
+ /** Sent/completed deliveries */
1799
+ sentDeliveries: number;
1800
+ /** Whether any delivery in this prefix has a risk */
1801
+ hasRisk?: boolean;
1802
+ }
1803
+ /**
1804
+ * Week data for the loading view
1805
+ */
1806
+ interface LoadingWeek {
1807
+ /** Week key (YYYY-WXX format) */
1808
+ weekKey: string;
1809
+ /** Week label (e.g., "W02") */
1810
+ label: string;
1811
+ /** Start date (Monday) */
1812
+ startDate: Date;
1813
+ /** End date (Friday) */
1814
+ endDate: Date;
1815
+ /** Date range string (e.g., "Jan 6 - Jan 10") */
1816
+ dateRange: string;
1817
+ /** Whether this is the current week */
1818
+ isCurrentWeek: boolean;
1819
+ }
1820
+ /**
1821
+ * Props for the SupplierWeeklyLoading component
1822
+ */
1823
+ interface SupplierWeeklyLoadingProps {
1824
+ /** Current week data */
1825
+ week: LoadingWeek;
1826
+ /** Deliveries for the week (grouped by day) */
1827
+ deliveries: LoadingDelivery[];
1828
+ /** Available suppliers (for comment selector) */
1829
+ suppliers: LoadingSupplier[];
1830
+ /** User role for access control */
1831
+ userRole?: LoadingUserRole;
1832
+ /** Current supplier ID (required when userRole is "supplier") */
1833
+ currentSupplierId?: string;
1834
+ /** Callback when a delivery card is tapped */
1835
+ onDeliveryClick?: (delivery: LoadingDelivery) => void;
1836
+ /** Callback when navigating back from detail */
1837
+ onBack?: () => void;
1838
+ /** Callback when a comment is added */
1839
+ onAddComment?: (comment: Omit<LoadingComment, "id" | "createdAt">) => void;
1840
+ /** Callback when confirming a load */
1841
+ onConfirmLoad?: (deliveryId: string) => void;
1842
+ /** Additional class names */
1843
+ className?: string;
1844
+ }
1845
+ /**
1846
+ * Props for the DeliveryDetailPage component
1847
+ */
1848
+ interface DeliveryDetailPageProps {
1849
+ /** Delivery data */
1850
+ delivery: LoadingDelivery;
1851
+ /** Week data */
1852
+ week: LoadingWeek;
1853
+ /** Available suppliers for comment selector */
1854
+ suppliers: LoadingSupplier[];
1855
+ /** User role */
1856
+ userRole?: LoadingUserRole;
1857
+ /** Current supplier ID */
1858
+ currentSupplierId?: string;
1859
+ /** Callback to navigate back */
1860
+ onBack: () => void;
1861
+ /** Callback when a comment is added */
1862
+ onAddComment?: (comment: Omit<LoadingComment, "id" | "createdAt">) => void;
1863
+ /** Callback when confirming a load */
1864
+ onConfirmLoad?: (deliveryId: string) => void;
1865
+ }
1866
+ /**
1867
+ * Helper: Get ISO week number from a date
1868
+ */
1869
+ declare function getLoadingISOWeek(date: Date): number;
1870
+ /**
1871
+ * Helper: Get week key from a date (YYYY-WXX format)
1872
+ */
1873
+ declare function getLoadingWeekKey(date: Date): string;
1874
+ /**
1875
+ * Helper: Generate week data from a date
1876
+ */
1877
+ declare function generateLoadingWeek(date: Date): LoadingWeek;
1878
+ /**
1879
+ * Helper: Group deliveries by day of week (Mon-Fri)
1880
+ */
1881
+ declare function groupDeliveriesByDay(deliveries: LoadingDelivery[]): Map<number, LoadingDelivery[]>;
1882
+ /**
1883
+ * Helper: Get day label
1884
+ */
1885
+ declare function getDayLabel(dayOfWeek: number): string;
1886
+ /**
1887
+ * Helper: Get short day label
1888
+ */
1889
+ declare function getShortDayLabel(dayOfWeek: number): string;
1890
+ /**
1891
+ * Helper: Extract unique prefixes from deliveries
1892
+ */
1893
+ declare function extractPrefixes(deliveries: LoadingDelivery[]): LoadingPrefix[];
1894
+ /**
1895
+ * Helper: Group deliveries by prefix AND day (for grid view)
1896
+ * Returns Map<prefixId, Map<dayOfWeek, LoadingDelivery[]>>
1897
+ */
1898
+ declare function groupDeliveriesByPrefixAndDay(deliveries: LoadingDelivery[]): Map<string, Map<number, LoadingDelivery[]>>;
1899
+
1900
+ /**
1901
+ * SupplierWeeklyLoading - Weekly loading view matching Big Calendar patterns
1902
+ *
1903
+ * Features:
1904
+ * - Clean weekly grid (Mon-Fri) with compact delivery badges
1905
+ * - Sheet-based drilldown for delivery details
1906
+ * - Responsive layout (desktop centered, mobile full-width)
1907
+ * - Role-based supplier/prefix filtering
1908
+ *
1909
+ * Layout matches Big Calendar:
1910
+ * - Bordered card container
1911
+ * - Internal header with week navigation
1912
+ * - Scrollable content area
1913
+ * - Sheet overlay for details (not page replacement)
1914
+ */
1915
+ declare function SupplierWeeklyLoading({ week, deliveries, suppliers, userRole, currentSupplierId, onDeliveryClick, onBack, onAddComment, onConfirmLoad, onWeekChange, showNavigation, bordered, className, }: SupplierWeeklyLoadingProps & {
1916
+ onWeekChange?: (direction: "prev" | "next") => void;
1917
+ showNavigation?: boolean;
1918
+ bordered?: boolean;
1919
+ }): react_jsx_runtime.JSX.Element;
1920
+
1921
+ interface DeliveryCardProps {
1922
+ /** Delivery data */
1923
+ delivery: LoadingDelivery;
1924
+ /** Callback when card is tapped */
1925
+ onTap?: () => void;
1926
+ /** Additional class names */
1927
+ className?: string;
1928
+ }
1929
+ /**
1930
+ * DeliveryCard - Touch-first card for displaying a delivery.
1931
+ *
1932
+ * Matches Calibration table visual language:
1933
+ * - Full-width (no max-width)
1934
+ * - 90° corners (j3m.radius.none = rounded-none)
1935
+ * - Left stroke only for status (j3m.stroke.m = border-l-2)
1936
+ * - 56px min-height for iPad tap targets
1937
+ *
1938
+ * Visual States (left stroke):
1939
+ * - Sent: Green stroke (subtle) + greyed content + checkmark
1940
+ * - Ready: Green stroke + "Ready" badge
1941
+ * - Risk: Red stroke (same as Calibration)
1942
+ * - Normal: Transparent stroke (border on hover)
1943
+ */
1944
+ declare function DeliveryCard({ delivery, onTap, className, }: DeliveryCardProps): react_jsx_runtime.JSX.Element;
1945
+
1946
+ interface DeliveryBadgeProps {
1947
+ /** Delivery data */
1948
+ delivery: LoadingDelivery;
1949
+ /** Callback when badge is clicked */
1950
+ onClick?: () => void;
1951
+ /** Additional class names */
1952
+ className?: string;
1953
+ }
1954
+ /**
1955
+ * DeliveryBadge - Touch-first card for weekly grid view
1956
+ *
1957
+ * Card title = prefixes carried (e.g., "TF · WP · CF")
1958
+ * Factory icon + progress bar for production readiness
1959
+ *
1960
+ * Spacing using Quantum tokens:
1961
+ * - Card height: h-[80px]
1962
+ * - Padding: px-6 py-4 (j3m.spacing.l / j3m.spacing.m)
1963
+ * - Row gap: gap-3 (j3m.spacing.s = 12px) - breathing room between title and progress
1964
+ * - Intra-row gap: gap-2 (j3m.spacing.xs = 8px) - tighter within rows
1965
+ */
1966
+ declare function DeliveryBadge({ delivery, onClick, className, }: DeliveryBadgeProps): react_jsx_runtime.JSX.Element;
1967
+
1968
+ /**
1969
+ * DeliveryDetailPage - Touch-first detail page for a delivery
1970
+ *
1971
+ * Shows:
1972
+ * - Delivery summary with visual state (sent/ready/normal)
1973
+ * - Production progress with risk indicators
1974
+ * - Elements table (view-only)
1975
+ * - Pre-unloading notes (Dialog for adding - no "Applies to" selector)
1976
+ * - Actions (Confirm load)
1977
+ */
1978
+ declare function DeliveryDetailPage({ delivery, week, suppliers, userRole, currentSupplierId, onBack, onAddComment, onConfirmLoad, }: DeliveryDetailPageProps): react_jsx_runtime.JSX.Element;
1979
+
1980
+ interface WeeklyLoadingViewProps {
1981
+ /** Week data */
1982
+ week: LoadingWeek;
1983
+ /** Deliveries for the week */
1984
+ deliveries: LoadingDelivery[];
1985
+ /** Callback when a delivery is clicked */
1986
+ onDeliveryClick?: (delivery: LoadingDelivery) => void;
1987
+ /** Callback for week navigation (optional) */
1988
+ onWeekChange?: (direction: "prev" | "next") => void;
1989
+ /** Callback when day comment button is clicked */
1990
+ onDayCommentClick?: (dayOfWeek: number, date: Date) => void;
1991
+ /** Show week navigation controls */
1992
+ showNavigation?: boolean;
1993
+ /** Additional class names */
1994
+ className?: string;
1995
+ }
1996
+ /**
1997
+ * WeeklyLoadingView - Clean weekly view with day columns
1998
+ *
1999
+ * Layout using Quantum spacing tokens:
2000
+ * - Columns = Mon-Fri (no vertical dividers)
2001
+ * - Day headers include comment button (top-right)
2002
+ * - Each column contains stacked delivery cards with gap-3 (j3m.spacing.s = 12px)
2003
+ * - Content-sized grid
2004
+ */
2005
+ declare function WeeklyLoadingView({ week, deliveries, onDeliveryClick, onWeekChange, onDayCommentClick, showNavigation, className, }: WeeklyLoadingViewProps): react_jsx_runtime.JSX.Element;
1041
2006
 
1042
2007
  /**
1043
2008
  * Event Calendar Types
@@ -1611,4 +2576,4 @@ interface BigCalendarProps extends Omit<EventCalendarProviderProps, "children">
1611
2576
  }
1612
2577
  declare function BigCalendar({ className, compact, bordered, showHeader, showAddButton, showSettings, enableDragDrop, weekStartsOn, maxEventsPerDay, config, ...providerProps }: BigCalendarProps): react_jsx_runtime.JSX.Element;
1613
2578
 
1614
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AgendaView, type AgendaViewProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, BADGE_VARIANT_LABELS, Badge, BigCalendar, type BigCalendarProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, Calendar, CalendarContext, CalendarDayButton, CalendarHeader, CalendarHeaderCompact, type CalendarHeaderCompactProps, type CalendarHeaderProps, CalendarSettingsButton, type CalendarSettingsButtonProps, CalendarSettingsContent, type CalendarSettingsContentProps, CalendarSettingsDialog, type CalendarSettingsDialogProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChangeBadgeVariantInput, ChangeVisibleHoursInput, ChangeWorkingHoursInput, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DEFAULT_VISIBLE_HOURS, DEFAULT_WORKING_HOURS, DataTableColumnHeader, type DataTableColumnHeaderProps, DataTablePagination, type DataTablePaginationProps, DataTableViewOptions, type DataTableViewOptionsProps, DateBadge, type DateBadgeProps, DayView, type DayViewProps, type Delivery, type DeliveryElement, DeliveryIndicator, type DeliveryIndicatorProps, DeliveryIndicators, type DeliveryIndicatorsProps, type DeliveryStatus, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DragContext, DragProvider, type DragProviderProps, DraggableEvent, type DraggableEventProps, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, DroppableZone, type DroppableZoneProps, EVENT_COLORS, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, EventBadge, type EventBadgeProps, EventCalendarProvider, type EventCalendarProviderProps, EventDialog, type EventDialogProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, type ICalendarActions, type ICalendarCell, type ICalendarConfig, type ICalendarContext, type ICalendarHeaderProps, type ICalendarState, type IDayCellProps, type IDragContext, type IEvent, type IEventBadgeProps, type IEventDialogProps, type IEventPosition, type ITimeSlotProps, type IUser, type IViewProps, type IWorkingHours, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MonthView, type MonthViewProps, MoreEvents, type MoreEventsProps, NativeSelect, NativeSelectOptGroup, NativeSelectOption, type NavItem, NavMain, type NavProject, NavProjects, NavSecondary, NavUser, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PlanningTable, type PlanningTableConfig, type PlanningTableProps, PlanningTableToolbar, type PlanningTableToolbarProps, PlayerCanvas, PlayerCanvasActionButton, PlayerCanvasControls, PlayerCanvasDivider, PlayerCanvasInfo, PlayerCanvasLabel, PlayerCanvasPlayButton, PlayerCanvasProgress, PlayerCanvasSkipButton, PlayerCanvasTitle, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type ProductionData, type ProductionUnit, Progress, QuickAddEvent, type QuickAddEventProps, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, SearchForm, SearchTrigger, type SearchTriggerProps, Section, SectionContent, SectionDescription, SectionFooter, SectionHeader, type SectionProps, SectionTitle, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SiteHeader, Skeleton, Slider, Spinner, type Supplier, type SupplierBadgeType, SupplierCell, type SupplierCellProps, Switch, type TBadgeVariant, type TCalendarView, type TEventColor, type TVisibleHours, type TWorkingHours, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemeSwitch, type ThemeSwitchProps, TimeIndicator, type TimeIndicatorProps, Toaster, Toggle, ToggleGroup, ToggleGroupItem, ToolBarCanvas, ToolBarCanvasButton, ToolBarCanvasDivider, ToolBarCanvasGroup, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type UseDroppableOptions, type UserAvatarItem, UserAvatarsDropdown, type UserAvatarsDropdownProps, VIEW_LABELS, type Week, WeekCell, type WeekCellData, type WeekCellProps, WeekDetailDialog, type WeekDetailDialogProps, WeekHeader, type WeekHeaderProps, WeekView, type WeekViewProps, YearView, type YearViewProps, badgeVariants, buttonGroupVariants, buttonVariants, calculateDropDates, calculateMonthEventPositions, cardVariants, createDefaultEvent, deliveryIndicatorVariants, formatDateRange, formatProductionUnit, formatTime, generateColumns, generateEventId, generateWeekColumns, generateWeeks, getCalendarCells, getCurrentEvents, getDayHours, getEventBlockStyle, getEventDuration, getEventDurationMinutes, getEventsCount, getEventsForDate, getEventsInRange, getHeaderLabel, getISOWeek, getMonthCellEvents, getMonthDays, getSupplierColumn, getTimeHeight, getTimePosition, getViewDateRange, getVisibleHours, getWeekDayNames, getWeekDays, getWeekKey, getYearMonths, groupEvents, isMultiDayEvent, isWorkingHour, navigateDate, navigationMenuTriggerStyle, playerCanvasPlayButtonVariants, playerCanvasSkipButtonVariants, rangeText, sectionVariants, snapToInterval, sortEvents, splitEventsByDuration, toggleVariants, toolBarCanvasButtonVariants, useDrag, useDraggable, useDroppable, useEventCalendar, useEventsInRange, useFilteredEvents, useFormField, useIsMobile, useSearchShortcut, useSidebar };
2579
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AgendaView, type AgendaViewProps, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, BADGE_VARIANT_LABELS, Badge, BigCalendar, type BigCalendarProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, Calendar, CalendarContext, CalendarDayButton, CalendarHeader, CalendarHeaderCompact, type CalendarHeaderCompactProps, type CalendarHeaderProps, CalendarSettingsButton, type CalendarSettingsButtonProps, CalendarSettingsContent, type CalendarSettingsContentProps, CalendarSettingsDialog, type CalendarSettingsDialogProps, type CalibrationCellData, type CalibrationComment, type CalibrationMode, type CalibrationOverviewProps, type CalibrationPrefix, type CalibrationStatus, type CalibrationSupplier, CalibrationTable, type CalibrationTableConfig, type CalibrationTableProps, type CalibrationUnit, CalibrationWeekCell, type CalibrationWeekCellProps, CalibrationWeekHeader, type CalibrationWeekHeaderProps, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChangeBadgeVariantInput, ChangeVisibleHoursInput, ChangeWorkingHoursInput, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, type CheckpointBadgeType, CircularProgress, type CircularProgressProps, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, CommentButton, type CommentButtonProps, type CommentContext, CommentDialog, type CommentDialogProps, type CommentLocationOption, CommentPopover, type CommentPopoverProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DEFAULT_VISIBLE_HOURS, DEFAULT_WORKING_HOURS, DataTableColumnHeader, type DataTableColumnHeaderProps, DataTablePagination, type DataTablePaginationProps, DataTableViewOptions, type DataTableViewOptionsProps, DateBadge, type DateBadgeProps, DayView, type DayViewProps, type Delivery, DeliveryBadge, type DeliveryBadgeProps, DeliveryCard, type DeliveryCardProps, DeliveryDetailPage, type DeliveryDetailPageProps, type DeliveryElement, DeliveryIndicator, type DeliveryIndicatorProps, DeliveryIndicators, type DeliveryIndicatorsProps, type DeliveryStatus, type DeliveryVisualState, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DragContext, DragProvider, type DragProviderProps, DraggableEvent, type DraggableEventProps, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, DroppableZone, type DroppableZoneProps, EVENT_COLORS, type ElementShipmentStatus, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, EventBadge, type EventBadgeProps, EventCalendarProvider, type EventCalendarProviderProps, EventDialog, type EventDialogProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, type ICalendarActions, type ICalendarCell, type ICalendarConfig, type ICalendarContext, type ICalendarHeaderProps, type ICalendarState, type IDayCellProps, type IDragContext, type IEvent, type IEventBadgeProps, type IEventDialogProps, type IEventPosition, type ITimeSlotProps, type IUser, type IViewProps, type IWorkingHours, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Label, type LoadingComment, type LoadingDelivery, type LoadingDeliveryStatus, type LoadingElement, type LoadingElementStatus, type LoadingPrefix, type LoadingSupplier, type LoadingUserRole, type LoadingWeek, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MonthView, type MonthViewProps, MoreEvents, type MoreEventsProps, NativeSelect, NativeSelectOptGroup, NativeSelectOption, type NavItem, NavMain, type NavProject, NavProjects, NavSecondary, NavUser, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NetBadge, type NetBadgeProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, type PlanningComment, type PlanningCommentLocation, type PlanningCommentLocationType, PlanningTable, type PlanningTableConfig, type PlanningTableProps, PlanningTableToolbar, type PlanningTableToolbarProps, type PlanningUserRole, PlanningWeekCommentPopover, type PlanningWeekCommentPopoverProps, PlayerCanvas, PlayerCanvasActionButton, PlayerCanvasControls, PlayerCanvasDivider, PlayerCanvasInfo, PlayerCanvasLabel, PlayerCanvasPlayButton, PlayerCanvasProgress, PlayerCanvasSkipButton, PlayerCanvasTitle, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, type PrefixOption, type ProductionData, type ProductionUnit, Progress, QuickAddEvent, type QuickAddEventProps, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, RowHeaderCell, type RowHeaderCellProps, ScrollArea, ScrollBar, SearchForm, SearchTrigger, type SearchTriggerProps, Section, SectionContent, SectionDescription, SectionFooter, SectionHeader, type SectionProps, SectionTitle, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, SiteHeader, Skeleton, Slider, Spinner, type SubmissionStatus, SubmitCalibrationBar, type SubmitCalibrationBarProps, type Supplier, type SupplierBadgeType, SupplierCell, type SupplierCellProps, SupplierWeeklyLoading, type SupplierWeeklyLoadingProps, Switch, type TBadgeVariant, type TCalendarView, type TEventColor, type TVisibleHours, type TWorkingHours, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemeSwitch, type ThemeSwitchProps, TimeIndicator, type TimeIndicatorProps, Toaster, Toggle, ToggleGroup, ToggleGroupItem, ToolBarCanvas, ToolBarCanvasButton, ToolBarCanvasDivider, ToolBarCanvasGroup, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type UseDroppableOptions, type UserAvatarItem, UserAvatarsDropdown, type UserAvatarsDropdownProps, VIEW_LABELS, type Week, WeekCell, type WeekCellData, type WeekCellProps, WeekDetailDialog, type WeekDetailDialogProps, WeekHeader, type WeekHeaderProps, WeekView, type WeekViewProps, WeeklyLoadingView, type WeeklyLoadingViewProps, YearView, type YearViewProps, badgeVariants, buttonGroupVariants, buttonVariants, calculateCalibrationCells, calculateDropDates, calculateMonthEventPositions, canSubmitCalibration, cardVariants, createDefaultEvent, deliveryIndicatorVariants, extractPrefixes, formatCalibrationUnit, formatDateRange, formatProductionUnit, formatTime, generateColumns, generateEventId, generateLoadingWeek, generateLocationOptions, generateWeekColumns, generateWeeks, getCalendarCells, getCommentLocationLabel, getCurrentEvents, getDayHours, getDayLabel, getDeliveryVisualState, getElementShipmentStatus, getEventBlockStyle, getEventDuration, getEventDurationMinutes, getEventsCount, getEventsForDate, getEventsInRange, getHeaderLabel, getISOWeek, getLoadingDeliveryStatusLabel, getLoadingElementStatusLabel, getLoadingISOWeek, getLoadingWeekKey, getMonthCellEvents, getMonthDays, getShipmentStatusLabel, getShortDayLabel, getSupplierColumn, getTimeHeight, getTimePosition, getViewDateRange, getVisibleHours, getWeekDayNames, getWeekDays, getWeekKey, getYearMonths, groupDeliveriesByDay, groupDeliveriesByPrefixAndDay, groupEvents, isMultiDayEvent, isWorkingHour, navigateDate, navigationMenuTriggerStyle, playerCanvasPlayButtonVariants, playerCanvasSkipButtonVariants, rangeText, sectionVariants, snapToInterval, sortEvents, splitEventsByDuration, toggleVariants, toolBarCanvasButtonVariants, useDrag, useDraggable, useDroppable, useEventCalendar, useEventsInRange, useFilteredEvents, useFormField, useIsMobile, useSearchShortcut, useSidebar };