@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.cjs +3976 -540
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +975 -10
- package/dist/index.d.ts +975 -10
- package/dist/index.js +3943 -541
- package/dist/index.js.map +1 -1
- package/dist/styles/generated/variables.css +1 -0
- package/package.json +1 -1
package/dist/index.d.cts
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
|
|
968
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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 };
|