@asdp/ferryui 0.1.22-dev.8631 → 0.1.22-dev.8641

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.mts CHANGED
@@ -3,6 +3,13 @@ import { CarouselAnnouncerFunction, DialogProps } from '@fluentui/react-componen
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { FieldValues, Path, Control, UseFormWatch, UseFormSetValue, UseFormGetValues } from 'react-hook-form';
5
5
 
6
+ type Language = 'id' | 'en';
7
+
8
+ interface ModalIllustrationLabels {
9
+ defaultImageAlt: string;
10
+ defaultTitle: string;
11
+ defaultButtonText: string;
12
+ }
6
13
  interface ModalIllustrationButton {
7
14
  /**
8
15
  * Button text
@@ -69,58 +76,96 @@ interface ModalIllustrationProps {
69
76
  * If provided, buttons will be displayed side by side
70
77
  */
71
78
  secondaryButton?: ModalIllustrationButton;
79
+ /**
80
+ * Language for labels
81
+ * @default 'id'
82
+ */
83
+ language?: Language;
84
+ /**
85
+ * Custom labels override
86
+ */
87
+ labels?: Partial<ModalIllustrationLabels>;
72
88
  }
89
+
73
90
  declare const ModalIllustration: React$1.FC<ModalIllustrationProps>;
74
91
 
75
- /**
76
- * Preset configurations for common modal use cases
77
- */
78
- declare const MODAL_PRESETS: {
79
- /**
80
- * Modal for radius/location restriction
81
- */
92
+ declare const PRESET_CONTENT: {
82
93
  readonly RADIUS: {
83
- readonly title: "Anda berada di luar area pemesanan";
84
- readonly message: "Pemesanan tiket tidak dapat dilakukan dari lokasi Anda saat ini. Fitur pembatasan wilayah sedang aktif untuk mencegah pemesanan tidak sah.";
85
- readonly imageSrc: "/assets/images/illustrations/radius.svg";
86
- readonly imageAlt: "Radius Limitation Illustration";
94
+ readonly id: {
95
+ readonly title: "Anda berada di luar area pemesanan";
96
+ readonly message: "Pemesanan tiket tidak dapat dilakukan dari lokasi Anda saat ini. Fitur pembatasan wilayah sedang aktif untuk mencegah pemesanan tidak sah.";
97
+ readonly imageSrc: "/assets/images/illustrations/radius.svg";
98
+ readonly imageAlt: "Radius Limitation Illustration";
99
+ };
100
+ readonly en: {
101
+ readonly title: "You are outside the booking area";
102
+ readonly message: "Ticket booking cannot be done from your current location. Location restriction feature is active to prevent unauthorized booking.";
103
+ readonly imageSrc: "/assets/images/illustrations/radius.svg";
104
+ readonly imageAlt: "Radius Limitation Illustration";
105
+ };
87
106
  };
88
- /**
89
- * Modal for expired session
90
- */
91
107
  readonly SESSION_EXPIRED: {
92
- readonly title: "Sesi anda telah berakhir";
93
- readonly message: "Waktu sesi Anda telah habis untuk alasan keamanan. Silakan klik tombol dibawah untuk masuk kembali.";
94
- readonly imageSrc: "/assets/images/illustrations/sessionexp.svg";
95
- readonly imageAlt: "Session Expired Illustration";
108
+ readonly id: {
109
+ readonly title: "Sesi anda telah berakhir";
110
+ readonly message: "Waktu sesi Anda telah habis untuk alasan keamanan. Silakan klik tombol dibawah untuk masuk kembali.";
111
+ readonly imageSrc: "/assets/images/illustrations/sessionexp.svg";
112
+ readonly imageAlt: "Session Expired Illustration";
113
+ };
114
+ readonly en: {
115
+ readonly title: "Your session has expired";
116
+ readonly message: "Your session time has run out for security reasons. Please click the button below to sign in again.";
117
+ readonly imageSrc: "/assets/images/illustrations/sessionexp.svg";
118
+ readonly imageAlt: "Session Expired Illustration";
119
+ };
96
120
  };
97
- /**
98
- * Modal for purchase period expired
99
- */
100
121
  readonly PURCHASE_PERIOD_EXPIRED: {
101
- readonly title: "Waktu pembelian telah berakhir";
102
- readonly message: "Pemesanan tiket ditutup 1 jam sebelum jadwal keberangkatan. Silakan pilih jadwal keberangkatan lain yang masih tersedia.";
103
- readonly imageSrc: "/assets/images/illustrations/pay.svg";
104
- readonly imageAlt: "Purchase Period Expired Illustration";
122
+ readonly id: {
123
+ readonly title: "Waktu pembelian telah berakhir";
124
+ readonly message: "Pemesanan tiket ditutup 1 jam sebelum jadwal keberangkatan. Silakan pilih jadwal keberangkatan lain yang masih tersedia.";
125
+ readonly imageSrc: "/assets/images/illustrations/pay.svg";
126
+ readonly imageAlt: "Purchase Period Expired Illustration";
127
+ };
128
+ readonly en: {
129
+ readonly title: "Purchase period has expired";
130
+ readonly message: "Ticket booking closes 1 hour before departure schedule. Please choose another available departure schedule.";
131
+ readonly imageSrc: "/assets/images/illustrations/pay.svg";
132
+ readonly imageAlt: "Purchase Period Expired Illustration";
133
+ };
105
134
  };
106
- /**
107
- * Modal for transaction limit reached
108
- */
109
135
  readonly TRANSACTION_LIMIT: {
110
- readonly title: "Anda mencapai batas transaksi tertunda";
111
- readonly message: "Anda telah mencapai batas transaksi tertunda. Pemesanan dapat dilakukan kembali setelah transaksi sebelumnya diselesaikan.";
112
- readonly imageSrc: "/assets/images/illustrations/mobile-pay.svg";
113
- readonly imageAlt: "Transaction Limit Illustration";
136
+ readonly id: {
137
+ readonly title: "Anda mencapai batas transaksi tertunda";
138
+ readonly message: "Anda telah mencapai batas transaksi tertunda. Pemesanan dapat dilakukan kembali setelah transaksi sebelumnya diselesaikan.";
139
+ readonly imageSrc: "/assets/images/illustrations/mobile-pay.svg";
140
+ readonly imageAlt: "Transaction Limit Illustration";
141
+ };
142
+ readonly en: {
143
+ readonly title: "Pending transaction limit reached";
144
+ readonly message: "You have reached the pending transaction limit. Booking can be done again after the previous transaction is completed.";
145
+ readonly imageSrc: "/assets/images/illustrations/mobile-pay.svg";
146
+ readonly imageAlt: "Transaction Limit Illustration";
147
+ };
114
148
  };
115
149
  };
150
+
116
151
  /**
117
152
  * Type for preset keys
118
153
  */
119
- type ModalPresetKey = keyof typeof MODAL_PRESETS;
154
+ type ModalPresetKey = keyof typeof PRESET_CONTENT;
120
155
  /**
121
156
  * Helper function to get preset configuration
122
157
  */
123
- declare const getModalPreset: (presetKey: ModalPresetKey) => Partial<ModalIllustrationProps>;
158
+ declare const getModalPreset: (presetKey: ModalPresetKey, language?: Language) => Partial<ModalIllustrationProps>;
159
+ /**
160
+ * @deprecated Use getModalPreset instead
161
+ * Preset configurations for common modal use cases (defaults to ID)
162
+ */
163
+ declare const MODAL_PRESETS: {
164
+ readonly RADIUS: Partial<ModalIllustrationProps>;
165
+ readonly SESSION_EXPIRED: Partial<ModalIllustrationProps>;
166
+ readonly PURCHASE_PERIOD_EXPIRED: Partial<ModalIllustrationProps>;
167
+ readonly TRANSACTION_LIMIT: Partial<ModalIllustrationProps>;
168
+ };
124
169
 
125
170
  interface CarouselWithCustomNavProps {
126
171
  /**
@@ -181,7 +226,16 @@ interface CarouselWithCustomNavProps {
181
226
  }
182
227
  declare const CarouselWithCustomNav: React$1.FC<CarouselWithCustomNavProps>;
183
228
 
229
+ interface CardPromoLabels {
230
+ defaultImageAlt: string;
231
+ defaultButtonText: string;
232
+ }
184
233
  interface CardPromoProps {
234
+ /**
235
+ * Language for labels (Indonesian or English)
236
+ * @default 'id'
237
+ */
238
+ language?: Language;
185
239
  /**
186
240
  * Image URL for the promo
187
241
  */
@@ -239,9 +293,20 @@ interface CardPromoProps {
239
293
  * Image Only
240
294
  */
241
295
  imageOnly?: boolean;
296
+ /**
297
+ * Custom labels override (optional)
298
+ * If not provided, default labels based on language will be used
299
+ */
300
+ labels?: Partial<CardPromoLabels>;
242
301
  }
302
+
243
303
  declare const CardPromo: React$1.FC<CardPromoProps>;
244
304
 
305
+ interface CardBannerLabels {
306
+ bannerAriaLabel: string;
307
+ bannerAriaLabelSingle: string;
308
+ loadingBanner: string;
309
+ }
245
310
  interface CardBannerProps {
246
311
  /**
247
312
  * Banner image URL
@@ -267,10 +332,39 @@ interface CardBannerProps {
267
332
  * Loading state
268
333
  */
269
334
  isLoading?: boolean;
335
+ /**
336
+ * Language for accessibility labels
337
+ * @default 'id'
338
+ */
339
+ language?: 'id' | 'en';
340
+ /**
341
+ * Custom labels override
342
+ */
343
+ labels?: Partial<CardBannerLabels>;
270
344
  }
345
+
271
346
  declare const CardBanner: React$1.FC<CardBannerProps>;
272
347
 
348
+ interface CardTicketLabels {
349
+ availableSeatsLabel: string;
350
+ estimationPrefix: string;
351
+ priceDetailsButton: string;
352
+ policyButton: string;
353
+ totalPriceLabel: string;
354
+ facilitiesLabel: string;
355
+ selectTicketButton: string;
356
+ timezoneLabel: string;
357
+ }
273
358
  interface CardTicketProps {
359
+ /**
360
+ * Language for labels
361
+ * @default 'id'
362
+ */
363
+ language?: Language;
364
+ /**
365
+ * Custom labels override
366
+ */
367
+ labels?: Partial<CardTicketLabels>;
274
368
  /**
275
369
  * Ticket ID
276
370
  */
@@ -363,81 +457,19 @@ declare const BackgroundTicketCard: (props: React$1.SVGProps<SVGSVGElement>) =>
363
457
  */
364
458
  declare const BackgroundTicketCardVertical: (props: React$1.SVGProps<SVGSVGElement>) => react_jsx_runtime.JSX.Element;
365
459
 
366
- type Language = 'id' | 'en';
367
-
368
- declare const SERVICE_MENU_ITEMS: {
369
- readonly ferry: {
370
- readonly id: "ferry";
371
- readonly logo: "/assets/images/icons/ferry.svg";
372
- readonly labels: {
373
- readonly id: {
374
- readonly label: "Ferry";
375
- readonly description: "Layanan penyeberangan ferry ASDP";
376
- };
377
- readonly en: {
378
- readonly label: "Ferry";
379
- readonly description: "ASDP Ferry Crossing Service";
380
- };
381
- };
382
- };
383
- readonly ifcs: {
384
- readonly id: "ifcs";
385
- readonly logo: "/assets/logo/asdp-default.svg";
386
- readonly labels: {
387
- readonly id: {
388
- readonly label: "IFCS";
389
- readonly description: "Integrated Ferry Control System";
390
- };
391
- readonly en: {
392
- readonly label: "IFCS";
393
- readonly description: "Integrated Ferry Control System";
394
- };
395
- };
396
- };
397
- readonly skpt: {
398
- readonly id: "skpt";
399
- readonly logo: "/assets/logo/asdp-default.svg";
400
- readonly labels: {
401
- readonly id: {
402
- readonly label: "SKPT";
403
- readonly description: "Sistem Karcis Penumpang Terpadu";
404
- };
405
- readonly en: {
406
- readonly label: "SKPT";
407
- readonly description: "Integrated Passenger Ticketing System";
408
- };
409
- };
410
- };
411
- readonly hotel: {
412
- readonly id: "hotel";
413
- readonly logo: "/assets/images/icons/hotel.svg";
414
- readonly labels: {
415
- readonly id: {
416
- readonly label: "Hotel";
417
- readonly description: "Layanan pemesanan hotel";
418
- };
419
- readonly en: {
420
- readonly label: "Hotel";
421
- readonly description: "Hotel Booking Service";
422
- };
423
- };
424
- };
425
- readonly other: {
426
- readonly id: "other";
427
- readonly logo: "/assets/images/icons/other.svg";
428
- readonly labels: {
429
- readonly id: {
430
- readonly label: "Lainnya";
431
- readonly description: "Layanan lainnya";
432
- };
433
- readonly en: {
434
- readonly label: "Other";
435
- readonly description: "Other Services";
436
- };
437
- };
438
- };
439
- };
440
- type ServiceId = keyof typeof SERVICE_MENU_ITEMS;
460
+ type ServiceId = 'ferry' | 'ifcs' | 'skpt' | 'hotel' | 'other';
461
+ interface CardServiceMenuLabels {
462
+ ferryLabel: string;
463
+ ferryDescription: string;
464
+ ifcsLabel: string;
465
+ ifcsDescription: string;
466
+ skptLabel: string;
467
+ skptDescription: string;
468
+ hotelLabel: string;
469
+ hotelDescription: string;
470
+ otherLabel: string;
471
+ otherDescription: string;
472
+ }
441
473
  interface CardServiceMenuProps {
442
474
  /**
443
475
  * Currently active service ID
@@ -462,7 +494,12 @@ interface CardServiceMenuProps {
462
494
  * Custom className for the card
463
495
  */
464
496
  className?: string;
497
+ /**
498
+ * Custom labels override
499
+ */
500
+ labels?: Partial<CardServiceMenuLabels>;
465
501
  }
502
+
466
503
  declare const CardServiceMenu: React$1.FC<CardServiceMenuProps>;
467
504
 
468
505
  interface ServiceMenuItem {
@@ -581,7 +618,21 @@ interface SearchSummaryField {
581
618
  */
582
619
  icon?: string;
583
620
  }
621
+ interface CardTicketSearchSummaryLabels {
622
+ originHarbor: string;
623
+ destinationHarbor: string;
624
+ departureDate: string;
625
+ serviceClass: string;
626
+ typeOfService: string;
627
+ totalPassengers: string;
628
+ changeSearchButton: string;
629
+ }
584
630
  interface CardTicketSearchSummaryProps {
631
+ /**
632
+ * Language for labels (Indonesian or English)
633
+ * @default 'id'
634
+ */
635
+ language?: Language;
585
636
  /**
586
637
  * Origin harbor name
587
638
  */
@@ -611,17 +662,10 @@ interface CardTicketSearchSummaryProps {
611
662
  */
612
663
  onChangeSearch: () => void;
613
664
  /**
614
- * Custom field labels
665
+ * Custom field labels override (optional)
666
+ * If not provided, default labels based on language will be used
615
667
  */
616
- labels?: {
617
- originHarbor?: string;
618
- destinationHarbor?: string;
619
- departureDate?: string;
620
- serviceClass?: string;
621
- typeOfService?: string;
622
- totalPassengers?: string;
623
- changeSearchButton?: string;
624
- };
668
+ labels?: Partial<CardTicketSearchSummaryLabels>;
625
669
  /**
626
670
  * Show swap button between origin and destination
627
671
  * @default false
@@ -635,15 +679,7 @@ interface CardTicketSearchSummaryProps {
635
679
 
636
680
  declare const CardTicketSearchSummary: React$1.FC<CardTicketSearchSummaryProps>;
637
681
 
638
- declare const DEFAULT_LABELS$2: {
639
- originHarbor: string;
640
- destinationHarbor: string;
641
- departureDate: string;
642
- serviceClass: string;
643
- typeOfService: string;
644
- totalPassengers: string;
645
- changeSearchButton: string;
646
- };
682
+ declare const DEFAULT_LABELS$2: Record<Language, CardTicketSearchSummaryLabels>;
647
683
 
648
684
  type InputType = 'checkbox' | 'date' | 'datetime-local' | 'email' | 'file' | 'identity' | 'emailOrPhone' | 'number' | 'otp' | 'passport' | 'password' | 'phone' | 'radio' | 'radiobutton' | 'select' | 'switch' | 'tel' | 'text' | 'textarea' | 'time' | 'url';
649
685
  interface SelectOption {
@@ -722,6 +758,23 @@ interface InputDynamicProps<T extends FieldValues = FieldValues> {
722
758
  onInput?: (e: React.FormEvent<HTMLInputElement>) => void;
723
759
  contentAfter?: React.ReactNode;
724
760
  onChange?: (value: any) => void;
761
+ /**
762
+ * Language for labels
763
+ * @default 'id'
764
+ */
765
+ language?: 'id' | 'en';
766
+ /**
767
+ * Custom labels override
768
+ */
769
+ labels?: Partial<InputDynamicLabels>;
770
+ }
771
+ interface InputDynamicLabels {
772
+ emailOrPhonePlaceholder: string;
773
+ emailPlaceholder: string;
774
+ phonePlaceholder: string;
775
+ identityPlaceholder: string;
776
+ identityPhonePlaceholder: string;
777
+ identityIdPlaceholder: string;
725
778
  }
726
779
 
727
780
  declare const InputDynamic: React$1.FC<InputDynamicProps>;
@@ -741,10 +794,31 @@ interface HarborItem {
741
794
  */
742
795
  name: string;
743
796
  }
797
+ /**
798
+ * Labels for ModalSearchHarbor component
799
+ */
800
+ interface ModalSearchHarborLabels {
801
+ title: string;
802
+ searchPlaceholder: string;
803
+ lastSearchedHeader: string;
804
+ clearAllButton: string;
805
+ allHarborsHeader: string;
806
+ loadingData: string;
807
+ harborNotFound: string;
808
+ }
744
809
  /**
745
810
  * Props for ModalSearchHarbor component
746
811
  */
747
812
  interface ModalSearchHarborProps {
813
+ /**
814
+ * Language for labels
815
+ * @default 'id'
816
+ */
817
+ language?: Language;
818
+ /**
819
+ * Custom labels override
820
+ */
821
+ labels?: Partial<ModalSearchHarborLabels>;
748
822
  /**
749
823
  * Whether the modal is open
750
824
  */
@@ -755,7 +829,6 @@ interface ModalSearchHarborProps {
755
829
  onClose: () => void;
756
830
  /**
757
831
  * Modal title
758
- * @default "Pilih Pelabuhan"
759
832
  */
760
833
  title?: string;
761
834
  /**
@@ -809,6 +882,7 @@ interface ModalSearchHarborProps {
809
882
  */
810
883
  onClearLastSearched: () => void;
811
884
  }
885
+
812
886
  /**
813
887
  * ModalSearchHarbor - A reusable modal component for searching and selecting harbors
814
888
  *
@@ -843,10 +917,27 @@ declare const ModalSearchHarbor: React$1.FC<ModalSearchHarborProps>;
843
917
  * Tab type for trip selection
844
918
  */
845
919
  type TabType = 'one-way' | 'round-trip';
920
+ /**
921
+ * Labels for ModalSelectDate component
922
+ */
923
+ interface ModalSelectDateLabels {
924
+ title: string;
925
+ oneWay: string;
926
+ roundTrip: string;
927
+ }
846
928
  /**
847
929
  * Props for ModalSelectDate component
848
930
  */
849
931
  interface ModalSelectDateProps {
932
+ /**
933
+ * Language for labels
934
+ * @default 'id'
935
+ */
936
+ language?: Language;
937
+ /**
938
+ * Custom labels override
939
+ */
940
+ labels?: Partial<ModalSelectDateLabels>;
850
941
  /**
851
942
  * Whether the modal is open
852
943
  */
@@ -857,7 +948,6 @@ interface ModalSelectDateProps {
857
948
  onClose: () => void;
858
949
  /**
859
950
  * Modal title
860
- * @default "Pilih Tanggal"
861
951
  */
862
952
  title?: string;
863
953
  /**
@@ -910,6 +1000,7 @@ interface ModalSelectDateProps {
910
1000
  */
911
1001
  showRoundtrip?: boolean;
912
1002
  }
1003
+
913
1004
  /**
914
1005
  * ModalSelectDate - A reusable modal component for selecting dates
915
1006
  *
@@ -956,6 +1047,13 @@ interface ServiceItem {
956
1047
  */
957
1048
  serviceDescription: string;
958
1049
  }
1050
+ interface ModalServiceLabels {
1051
+ title: string;
1052
+ loading: string;
1053
+ error: string;
1054
+ selectAll: string;
1055
+ saveButton: string;
1056
+ }
959
1057
  /**
960
1058
  * Props for ModalService component
961
1059
  */
@@ -996,7 +1094,17 @@ interface ModalServiceProps {
996
1094
  * @default false
997
1095
  */
998
1096
  isError?: boolean;
1097
+ /**
1098
+ * Language for labels
1099
+ * @default 'id'
1100
+ */
1101
+ language?: Language;
1102
+ /**
1103
+ * Custom labels override
1104
+ */
1105
+ labels?: Partial<ModalServiceLabels>;
999
1106
  }
1107
+
1000
1108
  /**
1001
1109
  * ModalService - A reusable modal component for selecting service classes
1002
1110
  *
@@ -1034,6 +1142,7 @@ interface ServiceClass {
1034
1142
  name: string;
1035
1143
  key: string;
1036
1144
  serviceName: PassengerServiceCode;
1145
+ labelKey: keyof ModalTotalPassengersLabels;
1037
1146
  }
1038
1147
  /**
1039
1148
  * Default service classes available
@@ -1041,6 +1150,18 @@ interface ServiceClass {
1041
1150
  declare const DEFAULT_SERVICE_CLASSES: ServiceClass[];
1042
1151
 
1043
1152
  type PassengerTypeCode = "ADULT" | "CHILD" | "INFANT" | "ELDERLY";
1153
+ /**
1154
+ * Labels for ModalTotalPassengers component
1155
+ */
1156
+ interface ModalTotalPassengersLabels {
1157
+ title: string;
1158
+ infoMessage: string;
1159
+ loading: string;
1160
+ saveButton: string;
1161
+ economy: string;
1162
+ business: string;
1163
+ executive: string;
1164
+ }
1044
1165
  /**
1045
1166
  * Passenger object structure
1046
1167
  */
@@ -1093,6 +1214,15 @@ interface SelectedPassengerItem {
1093
1214
  * Props for ModalTotalPassengers component
1094
1215
  */
1095
1216
  interface ModalTotalPassengersProps {
1217
+ /**
1218
+ * Language for labels
1219
+ * @default 'id'
1220
+ */
1221
+ language?: Language;
1222
+ /**
1223
+ * Custom labels override
1224
+ */
1225
+ labels?: Partial<ModalTotalPassengersLabels>;
1096
1226
  /**
1097
1227
  * Whether the modal is open
1098
1228
  */
@@ -1103,7 +1233,6 @@ interface ModalTotalPassengersProps {
1103
1233
  onClose: () => void;
1104
1234
  /**
1105
1235
  * Modal title
1106
- * @default "Pilih Jumlah Penumpang"
1107
1236
  */
1108
1237
  title?: string;
1109
1238
  /**
@@ -1111,9 +1240,9 @@ interface ModalTotalPassengersProps {
1111
1240
  */
1112
1241
  passengerTypes: PassengerType[];
1113
1242
  /**
1114
- * Array of service classes
1115
- * @default DEFAULT_SERVICE_CLASSES
1116
- */
1243
+ * Array of service classes
1244
+ * @default DEFAULT_SERVICE_CLASSES
1245
+ */
1117
1246
  serviceClasses?: ServiceClass[];
1118
1247
  /**
1119
1248
  * Currently selected passengers
@@ -1135,10 +1264,10 @@ interface ModalTotalPassengersProps {
1135
1264
  maxPassengers?: number;
1136
1265
  /**
1137
1266
  * Message to display in the info bar
1138
- * @default "Anda dapat menambahkan hingga {maxPassengers} penumpang pada golongan kendaraan ini."
1139
1267
  */
1140
1268
  infoMessage?: string;
1141
1269
  }
1270
+
1142
1271
  /**
1143
1272
  * ModalTotalPassengers - A reusable modal component for selecting passenger counts
1144
1273
  *
@@ -1177,10 +1306,28 @@ interface TypeOfService {
1177
1306
  child: TypeOfService[];
1178
1307
  typeOfPassanger: string;
1179
1308
  }
1309
+ /**
1310
+ * Labels for ModalTypeOfService component
1311
+ */
1312
+ interface ModalTypeOfServiceLabels {
1313
+ title: string;
1314
+ cancelButton: string;
1315
+ saveButton: string;
1316
+ vehiclesAlt: string;
1317
+ }
1180
1318
  /**
1181
1319
  * Props for ModalTypeOfService component
1182
1320
  */
1183
1321
  interface ModalTypeOfServiceProps {
1322
+ /**
1323
+ * Language for labels
1324
+ * @default 'id'
1325
+ */
1326
+ language?: Language;
1327
+ /**
1328
+ * Custom labels override
1329
+ */
1330
+ labels?: Partial<ModalTypeOfServiceLabels>;
1184
1331
  /**
1185
1332
  * Whether the modal is open
1186
1333
  */
@@ -1191,7 +1338,6 @@ interface ModalTypeOfServiceProps {
1191
1338
  onClose: () => void;
1192
1339
  /**
1193
1340
  * Modal title
1194
- * @default "Pilih Tipe Layanan"
1195
1341
  */
1196
1342
  title?: string;
1197
1343
  /**
@@ -1217,6 +1363,7 @@ interface ModalTypeOfServiceProps {
1217
1363
  height: number;
1218
1364
  }) => ReactNode;
1219
1365
  }
1366
+
1220
1367
  /**
1221
1368
  * ModalTypeOfService - A reusable modal component for selecting service types
1222
1369
  *
@@ -1322,6 +1469,11 @@ declare const DEFAULT_SORT_OPTIONS: {
1322
1469
  declare const getSortLabel: (value: string) => string;
1323
1470
 
1324
1471
  interface ModalFilterTicketProps {
1472
+ /**
1473
+ * Language for labels (Indonesian or English)
1474
+ * @default 'id'
1475
+ */
1476
+ language?: Language;
1325
1477
  /**
1326
1478
  * Whether the modal is open
1327
1479
  */
@@ -1432,7 +1584,7 @@ interface ModalFilterTicketLabels {
1432
1584
 
1433
1585
  declare const ModalFilterTicket: React$1.FC<ModalFilterTicketProps>;
1434
1586
 
1435
- declare const DEFAULT_LABELS$1: ModalFilterTicketLabels;
1587
+ declare const DEFAULT_LABELS$1: Record<Language, ModalFilterTicketLabels>;
1436
1588
  declare const DEFAULT_SERVICE_TYPES: {
1437
1589
  value: string;
1438
1590
  label: string;
@@ -1512,6 +1664,32 @@ declare const DateFilter: React$1.FC<DateFilterProps>;
1512
1664
  declare const DEFAULT_LABELS: DateFilterLabels;
1513
1665
  declare const DEFAULT_SCROLL_AMOUNT = 150;
1514
1666
 
1667
+ /**
1668
+ * Labels for ModalSearchTicket component
1669
+ */
1670
+ interface ModalSearchTicketLabels {
1671
+ title: string;
1672
+ fromLabel: string;
1673
+ fromPlaceholder: string;
1674
+ fromRequired: string;
1675
+ toLabel: string;
1676
+ toPlaceholder: string;
1677
+ toRequired: string;
1678
+ departureDateLabel: string;
1679
+ departureDatePlaceholder: string;
1680
+ departureDateRequired: string;
1681
+ roundTripLabel: string;
1682
+ returnDateLabel: string;
1683
+ returnDatePlaceholder: string;
1684
+ returnDateRequired: string;
1685
+ serviceClassLabel: string;
1686
+ serviceClassPlaceholder: string;
1687
+ typeOfServiceLabel: string;
1688
+ typeOfServicePlaceholder: string;
1689
+ passengerLabel: string;
1690
+ passengerPlaceholder: string;
1691
+ searchButton: string;
1692
+ }
1515
1693
  /**
1516
1694
  * Form data structure for search ticket modal
1517
1695
  */
@@ -1554,6 +1732,15 @@ interface SearchTicketFormData {
1554
1732
  * Props for ModalSearchTicket component
1555
1733
  */
1556
1734
  interface ModalSearchTicketProps extends Partial<DialogProps> {
1735
+ /**
1736
+ * Language for labels
1737
+ * @default 'id'
1738
+ */
1739
+ language?: Language;
1740
+ /**
1741
+ * Custom labels override
1742
+ */
1743
+ labels?: Partial<ModalSearchTicketLabels>;
1557
1744
  /**
1558
1745
  * Whether the modal is open
1559
1746
  */
@@ -1711,21 +1898,78 @@ interface StepperProps {
1711
1898
  * Additional CSS class name
1712
1899
  */
1713
1900
  className?: string;
1901
+ /**
1902
+ * Custom colors for stepper elements
1903
+ */
1904
+ colors?: {
1905
+ active?: string;
1906
+ completed?: string;
1907
+ inactive?: string;
1908
+ activeBackground?: string;
1909
+ completedBackground?: string;
1910
+ inactiveBackground?: string;
1911
+ label?: string;
1912
+ connectorDefault?: string;
1913
+ connectorCompleted?: string;
1914
+ connectorActive?: string;
1915
+ };
1916
+ /**
1917
+ * Custom dimensions for stepper elements
1918
+ */
1919
+ dimensions?: {
1920
+ height?: string;
1921
+ mobileHeight?: string;
1922
+ circleSize?: string;
1923
+ mobileCircleSize?: string;
1924
+ ferryIconWidth?: string;
1925
+ ferryIconHeight?: string;
1926
+ mobileFerryIconWidth?: string;
1927
+ mobileFerryIconHeight?: string;
1928
+ };
1929
+ /**
1930
+ * Language for labels
1931
+ * @default 'id'
1932
+ */
1933
+ language?: 'id' | 'en';
1934
+ /**
1935
+ * Custom labels override
1936
+ */
1937
+ labels?: Partial<StepperLabels>;
1938
+ }
1939
+ interface StepperLabels {
1940
+ stepperBackgroundAlt: string;
1941
+ ferryIconAlt: string;
1714
1942
  }
1715
1943
  type StepStatus = 'completed' | 'active' | 'inactive';
1716
1944
 
1717
1945
  declare const Stepper: React$1.FC<StepperProps>;
1718
1946
 
1719
- interface OrdererInfo {
1947
+ interface Orderer {
1720
1948
  name?: string;
1721
1949
  phoneNumber?: string;
1722
1950
  email?: string;
1723
1951
  }
1952
+ interface CardOrdererInfoLabels {
1953
+ title: string;
1954
+ ordererName: string;
1955
+ phoneNumber: string;
1956
+ email: string;
1957
+ }
1724
1958
  interface CardOrdererInfoProps {
1725
1959
  /**
1726
- * Orderer information to display
1960
+ * Language for labels (Indonesian or English)
1961
+ * @default 'id'
1962
+ */
1963
+ language?: Language;
1964
+ /**
1965
+ * Orderer information
1727
1966
  */
1728
- orderer?: OrdererInfo;
1967
+ orderer?: Orderer;
1968
+ /**
1969
+ * Custom labels override (optional)
1970
+ * If not provided, default labels based on language will be used
1971
+ */
1972
+ labels?: Partial<CardOrdererInfoLabels>;
1729
1973
  /**
1730
1974
  * Additional CSS class name
1731
1975
  */
@@ -1734,6 +1978,13 @@ interface CardOrdererInfoProps {
1734
1978
 
1735
1979
  declare const CardOrdererInfo: React$1.FC<CardOrdererInfoProps>;
1736
1980
 
1981
+ interface ModalListPassengerLabels {
1982
+ title: string;
1983
+ sameAsOrderer: string;
1984
+ searchPlaceholder: string;
1985
+ addPassengerButton: string;
1986
+ cancelButton: string;
1987
+ }
1737
1988
  interface PassengerItem {
1738
1989
  /**
1739
1990
  * Unique identifier for the passenger
@@ -1798,6 +2049,15 @@ interface ModalListPassengerProps {
1798
2049
  * Callback when "Sama Dengan Pemesan" switch changes
1799
2050
  */
1800
2051
  onSameAsOrdererChange: (checked: boolean) => void;
2052
+ /**
2053
+ * Language for labels
2054
+ * @default 'id'
2055
+ */
2056
+ language?: Language;
2057
+ /**
2058
+ * Custom labels override
2059
+ */
2060
+ labels?: Partial<ModalListPassengerLabels>;
1801
2061
  }
1802
2062
 
1803
2063
  /**
@@ -1827,6 +2087,39 @@ interface ModalListPassengerProps {
1827
2087
  */
1828
2088
  declare const ModalListPassenger: React$1.FC<ModalListPassengerProps>;
1829
2089
 
2090
+ interface ModalPassengerFormLabels {
2091
+ title: string;
2092
+ titleLabel: string;
2093
+ titlePlaceholder: string;
2094
+ nameLabel: string;
2095
+ namePlaceholder: string;
2096
+ idTypeLabel: string;
2097
+ idTypePlaceholder: string;
2098
+ idNumberLabel: string;
2099
+ idNumberPlaceholder: string;
2100
+ ageLabel: string;
2101
+ agePlaceholder: string;
2102
+ dateLabel: string;
2103
+ datePlaceholder: string;
2104
+ cityLabel: string;
2105
+ cityPlaceholder: string;
2106
+ ticketClassLabel: string;
2107
+ saveButton: string;
2108
+ cancelButton: string;
2109
+ errors: {
2110
+ requiredTitle: string;
2111
+ requiredName: string;
2112
+ minLengthName: string;
2113
+ requiredIdType: string;
2114
+ requiredIdNumber: string;
2115
+ minLengthIdNumber: string;
2116
+ requiredAge: string;
2117
+ minAge: string;
2118
+ maxAge: string;
2119
+ requiredDate: string;
2120
+ requiredCity: string;
2121
+ };
2122
+ }
1830
2123
  interface PassengerFormData {
1831
2124
  /**
1832
2125
  * Passenger title (Tuan, Nyonya, Nona)
@@ -1916,6 +2209,15 @@ interface ModalPassengerFormProps {
1916
2209
  * Options for ticket class radio field
1917
2210
  */
1918
2211
  ticketClassOptions: RadioOption[];
2212
+ /**
2213
+ * Language for labels
2214
+ * @default 'id'
2215
+ */
2216
+ language?: Language;
2217
+ /**
2218
+ * Custom labels override
2219
+ */
2220
+ labels?: Partial<ModalPassengerFormLabels>;
1919
2221
  }
1920
2222
 
1921
2223
  /**
@@ -1961,7 +2263,16 @@ interface PassengerListItem {
1961
2263
  */
1962
2264
  serviceName?: string;
1963
2265
  }
2266
+ interface CardPassengerListLabels {
2267
+ defaultTitle: string;
2268
+ passengerPrefix: string;
2269
+ }
1964
2270
  interface CardPassengerListProps {
2271
+ /**
2272
+ * Language for labels (Indonesian or English)
2273
+ * @default 'id'
2274
+ */
2275
+ language?: Language;
1965
2276
  /**
1966
2277
  * Card title
1967
2278
  * @default "Data Penumpang"
@@ -1975,6 +2286,11 @@ interface CardPassengerListProps {
1975
2286
  * Callback when a passenger is clicked
1976
2287
  */
1977
2288
  onPassengerClick: (passenger: PassengerListItem) => void;
2289
+ /**
2290
+ * Custom labels override (optional)
2291
+ * If not provided, default labels based on language will be used
2292
+ */
2293
+ labels?: Partial<CardPassengerListLabels>;
1978
2294
  /**
1979
2295
  * Additional CSS class name
1980
2296
  */
@@ -2001,6 +2317,14 @@ interface CardPassengerListProps {
2001
2317
  */
2002
2318
  declare const CardPassengerList: React$1.FC<CardPassengerListProps>;
2003
2319
 
2320
+ interface CardVehicleDetailLabels {
2321
+ title: string;
2322
+ vehicleNumberLabel: string;
2323
+ vehicleNumberPlaceholder: string;
2324
+ hasLoadLabel: string;
2325
+ yesLabel: string;
2326
+ noLabel: string;
2327
+ }
2004
2328
  interface CardVehicleDetailProps {
2005
2329
  /**
2006
2330
  * Title of the vehicle service type
@@ -2029,9 +2353,18 @@ interface CardVehicleDetailProps {
2029
2353
  */
2030
2354
  hasLoad?: 'true' | 'false';
2031
2355
  /**
2032
- * Callback when "Has Load" option changes
2356
+ * Has Load Change Handler
2033
2357
  */
2034
2358
  onHasLoadChange?: (value: 'true' | 'false') => void;
2359
+ /**
2360
+ * Language for labels
2361
+ * @default 'id'
2362
+ */
2363
+ language?: Language;
2364
+ /**
2365
+ * Custom labels override
2366
+ */
2367
+ labels?: Partial<CardVehicleDetailLabels>;
2035
2368
  }
2036
2369
 
2037
2370
  declare const CardVehicleDetail: React$1.FC<CardVehicleDetailProps>;
@@ -2115,17 +2448,95 @@ interface CardVehicleOwnerFormProps {
2115
2448
  * Options for company select inputs
2116
2449
  */
2117
2450
  companyOptions?: SelectOption[];
2451
+ /**
2452
+ * Options for city select inputs
2118
2453
  /**
2119
2454
  * Options for city select inputs
2120
2455
  * @default [] */
2121
2456
  cityOptions?: SelectOption[];
2457
+ /**
2458
+ * Language for labels
2459
+ * @default 'id'
2460
+ */
2461
+ language?: 'id' | 'en';
2462
+ /**
2463
+ * Custom labels override
2464
+ */
2465
+ labels?: Partial<CardVehicleOwnerFormLabels>;
2466
+ }
2467
+ interface CardVehicleOwnerFormLabels {
2468
+ title: string;
2469
+ addOwnerButton: string;
2470
+ ownerInfoTitle: string;
2471
+ senderNameLabel: string;
2472
+ senderTypeCompany: string;
2473
+ senderTypeIndividual: string;
2474
+ selectCompanyPlaceholder: string;
2475
+ inputSenderNamePlaceholder: string;
2476
+ estimatedWeightLabel: string;
2477
+ inputNumberPlaceholder: string;
2478
+ originCityLabel: string;
2479
+ destinationCityLabel: string;
2480
+ selectPlaceholder: string;
2481
+ cargoOwnerTitle: string;
2482
+ cargoOwnerCompanyPlaceholder: string;
2483
+ cargoOwnerIndividualPlaceholder: string;
2484
+ otherCompanyHelperText: string;
2485
+ logisticsCompanyTitle: string;
2486
+ logisticsCompanyPlaceholder: string;
2487
+ logisticsIndividualPlaceholder: string;
2488
+ cargoReceiverTitle: string;
2489
+ cargoReceiverCompanyPlaceholder: string;
2490
+ cargoReceiverIndividualPlaceholder: string;
2491
+ totalWeightLabel: string;
2492
+ cargoListTitle: string;
2493
+ cargoItemTitle: string;
2494
+ commodityLabel: string;
2495
+ commodityHelperTextPrefix: string;
2496
+ hereLinkText: string;
2497
+ cargoTypeLabel: string;
2498
+ cargoTypeHelperText: string;
2499
+ cargoQuantityLabel: string;
2500
+ priceLabel: string;
2501
+ industryTypeLabel: string;
2502
+ industryTypeHelperText: string;
2503
+ cargoCategoryLabel: string;
2504
+ cargoCategoryHelperTextPrefix: string;
2505
+ deleteCargoButton: string;
2506
+ addCargoButton: string;
2507
+ cargoTypeOptions: {
2508
+ karung: string;
2509
+ kg: string;
2510
+ ton: string;
2511
+ unit: string;
2512
+ };
2122
2513
  }
2123
2514
 
2124
2515
  declare const CardVehicleOwnerForm: React$1.FC<CardVehicleOwnerFormProps>;
2125
2516
 
2126
2517
  type ReservationStep = 'manifest' | 'addon' | 'meals' | 'review' | 'payment' | 'eticket' | string;
2127
2518
  type PaymentStep = 'method' | 'pay' | string;
2519
+ interface CardBookingTicketLabels {
2520
+ bookingDetails: string;
2521
+ routeTitle: string;
2522
+ estimationPrefix: string;
2523
+ totalPriceLabel: string;
2524
+ nextButton: string;
2525
+ previousButton: string;
2526
+ viewBookingButton: string;
2527
+ changePaymentButton: string;
2528
+ timezoneLabel: string;
2529
+ }
2128
2530
  interface CardBookingTicketProps {
2531
+ /**
2532
+ * Language for labels
2533
+ * @default 'id'
2534
+ */
2535
+ language?: Language;
2536
+ /**
2537
+ * Custom labels override
2538
+ */
2539
+ labels?: Partial<CardBookingTicketLabels>;
2129
2540
  /**
2130
2541
  * Ship Name (e.g. KMP PORTLINK)
2131
2542
  */
@@ -2198,7 +2609,29 @@ interface CardBookingTicketProps {
2198
2609
 
2199
2610
  declare const CardBookingTicket: React$1.FC<CardBookingTicketProps>;
2200
2611
 
2612
+ interface FAQItem {
2613
+ value: string;
2614
+ question: string;
2615
+ answer: string;
2616
+ }
2617
+ interface CardFAQLabels {
2618
+ title: string;
2619
+ }
2201
2620
  interface CardFAQProps {
2621
+ /**
2622
+ * Language for labels
2623
+ * @default 'id'
2624
+ */
2625
+ language?: Language;
2626
+ /**
2627
+ * Custom labels override
2628
+ */
2629
+ labels?: Partial<CardFAQLabels>;
2630
+ /**
2631
+ * List of FAQ items
2632
+ * If not provided, default items will be shown
2633
+ */
2634
+ items?: FAQItem[];
2202
2635
  /**
2203
2636
  * Optional class name for the container
2204
2637
  */
@@ -2238,7 +2671,22 @@ interface MealData {
2238
2671
  onUpdateQuantity: (id: number, delta: number) => void;
2239
2672
  onDelete: (id: number) => void;
2240
2673
  }
2674
+ interface CardAddonLabels {
2675
+ viewDetail: string;
2676
+ totalPrice: string;
2677
+ passengerInsurance: string;
2678
+ removeOrder: string;
2679
+ }
2241
2680
  interface CardAddonProps {
2681
+ /**
2682
+ * Language for labels
2683
+ * @default 'id'
2684
+ */
2685
+ language?: Language;
2686
+ /**
2687
+ * Custom labels override
2688
+ */
2689
+ labels?: Partial<CardAddonLabels>;
2242
2690
  /**
2243
2691
  * Main title of the card header
2244
2692
  */
@@ -2287,6 +2735,9 @@ interface CardAddonProps {
2287
2735
 
2288
2736
  declare const CardAddon: React$1.FC<CardAddonProps>;
2289
2737
 
2738
+ interface CardMealCatalogLabels {
2739
+ addButton: string;
2740
+ }
2290
2741
  interface MealItem {
2291
2742
  id: number;
2292
2743
  name: string;
@@ -2301,6 +2752,15 @@ interface MealCategory {
2301
2752
  list: MealItem[];
2302
2753
  }
2303
2754
  interface CardMealCatalogProps {
2755
+ /**
2756
+ * Language for labels
2757
+ * @default 'id'
2758
+ */
2759
+ language?: Language;
2760
+ /**
2761
+ * Custom labels override
2762
+ */
2763
+ labels?: Partial<CardMealCatalogLabels>;
2304
2764
  /**
2305
2765
  * Configuration for the top banner
2306
2766
  */
@@ -2349,7 +2809,18 @@ interface ReviewItem {
2349
2809
  */
2350
2810
  valueClassName?: string;
2351
2811
  }
2812
+ interface CardReviewLabels {
2813
+ }
2352
2814
  interface CardReviewProps {
2815
+ /**
2816
+ * Language for labels
2817
+ * @default 'id'
2818
+ */
2819
+ language?: Language;
2820
+ /**
2821
+ * Custom labels override
2822
+ */
2823
+ labels?: Partial<CardReviewLabels>;
2353
2824
  /**
2354
2825
  * Title of the section (e.g. "Detail Pemesan")
2355
2826
  */
@@ -2383,7 +2854,20 @@ interface ReviewPassengerItem {
2383
2854
  ticketClass: string;
2384
2855
  serviceClass?: string;
2385
2856
  }
2857
+ interface CardReviewPassengerLabels {
2858
+ title: string;
2859
+ idNumber: string;
2860
+ }
2386
2861
  interface CardReviewPassengerProps {
2862
+ /**
2863
+ * Language for labels
2864
+ * @default 'id'
2865
+ */
2866
+ language?: Language;
2867
+ /**
2868
+ * Custom labels override
2869
+ */
2870
+ labels?: Partial<CardReviewPassengerLabels>;
2387
2871
  /**
2388
2872
  * Title of the card section, defaults to "Penumpang"
2389
2873
  */
@@ -2421,7 +2905,23 @@ interface PriceSection {
2421
2905
  title?: string;
2422
2906
  detail: PriceItem[];
2423
2907
  }
2908
+ interface CardPriceDetailsLabels {
2909
+ defaultTitle: string;
2910
+ totalPayment: string;
2911
+ bookingTerms: string[];
2912
+ agreementInfo: string;
2913
+ agreementLinkFerizy: string;
2914
+ agreementCovidInfo: string;
2915
+ agreementCovidLink: string;
2916
+ agreementFinal: string;
2917
+ currencyPrefix: string;
2918
+ }
2424
2919
  interface CardPriceDetailsProps {
2920
+ /**
2921
+ * Language for labels (Indonesian or English)
2922
+ * @default 'id'
2923
+ */
2924
+ language?: Language;
2425
2925
  /**
2426
2926
  * Title of the card, defaults to "Rincian Harga"
2427
2927
  */
@@ -2434,6 +2934,11 @@ interface CardPriceDetailsProps {
2434
2934
  * Total payment details
2435
2935
  */
2436
2936
  total: number;
2937
+ /**
2938
+ * Custom labels override (optional)
2939
+ * If not provided, default labels based on language will be used
2940
+ */
2941
+ labels?: Partial<CardPriceDetailsLabels>;
2437
2942
  }
2438
2943
 
2439
2944
  declare const CardPriceDetails: React$1.FC<CardPriceDetailsProps>;
@@ -2448,7 +2953,18 @@ interface PaymentMethodCategory {
2448
2953
  value: string;
2449
2954
  options: PaymentOption[];
2450
2955
  }
2956
+ interface CardPaymentMethodListLabels {
2957
+ }
2451
2958
  interface CardPaymentMethodListProps {
2959
+ /**
2960
+ * Language for labels
2961
+ * @default 'id'
2962
+ */
2963
+ language?: Language;
2964
+ /**
2965
+ * Custom labels override
2966
+ */
2967
+ labels?: Partial<CardPaymentMethodListLabels>;
2452
2968
  methods: PaymentMethodCategory[];
2453
2969
  selectedValue?: string;
2454
2970
  onSelect: (value: string) => void;
@@ -2461,7 +2977,19 @@ interface PaymentGuideStep {
2461
2977
  value: string;
2462
2978
  steps: string[];
2463
2979
  }
2980
+ interface CardPaymentGuideLabels {
2981
+ title: string;
2982
+ }
2464
2983
  interface CardPaymentGuideProps {
2984
+ /**
2985
+ * Language for labels
2986
+ * @default 'id'
2987
+ */
2988
+ language?: Language;
2989
+ /**
2990
+ * Custom labels override
2991
+ */
2992
+ labels?: Partial<CardPaymentGuideLabels>;
2465
2993
  title?: string;
2466
2994
  guides: PaymentGuideStep[];
2467
2995
  className?: string;
@@ -2473,7 +3001,23 @@ interface BankInfo {
2473
3001
  name: string;
2474
3002
  icon: string;
2475
3003
  }
3004
+ interface CardPaymentInfoLabels {
3005
+ expiryPrefix: string;
3006
+ copyCodeButton: string;
3007
+ totalPayment: string;
3008
+ checkStatusInfo: string;
3009
+ checkStatusButton: string;
3010
+ }
2476
3011
  interface CardPaymentInfoProps {
3012
+ /**
3013
+ * Language for labels
3014
+ * @default 'id'
3015
+ */
3016
+ language?: Language;
3017
+ /**
3018
+ * Custom labels override
3019
+ */
3020
+ labels?: Partial<CardPaymentInfoLabels>;
2477
3021
  expiryDate: string;
2478
3022
  bank: BankInfo;
2479
3023
  virtualAccount: string;
@@ -2485,7 +3029,29 @@ interface CardPaymentInfoProps {
2485
3029
 
2486
3030
  declare const CardPaymentInfo: React$1.FC<CardPaymentInfoProps>;
2487
3031
 
3032
+ interface CardStatusOrderLabels {
3033
+ detailTitle: string;
3034
+ statusLabel: string;
3035
+ bookingCodeLabel: string;
3036
+ scheduleLabel: string;
3037
+ routeLabel: string;
3038
+ userTypeLabel: string;
3039
+ serviceLabel: string;
3040
+ viewTicketButton: string;
3041
+ defaultStatus: string;
3042
+ defaultTitle: string;
3043
+ defaultDescription: string;
3044
+ }
2488
3045
  interface CardStatusOrderProps {
3046
+ /**
3047
+ * Language for labels
3048
+ * @default 'id'
3049
+ */
3050
+ language?: Language;
3051
+ /**
3052
+ * Custom labels override
3053
+ */
3054
+ labels?: Partial<CardStatusOrderLabels>;
2489
3055
  bookingCode: string;
2490
3056
  departureDate: string;
2491
3057
  departureTime: string;
@@ -2511,6 +3077,17 @@ interface CardStatusOrderProps {
2511
3077
 
2512
3078
  declare const CardStatusOrder: React$1.FC<CardStatusOrderProps>;
2513
3079
 
3080
+ interface ModalPriceDetailLabels {
3081
+ title: string;
3082
+ addonHeader: string;
3083
+ subTotalLabel: string;
3084
+ totalTagihanLabel: string;
3085
+ ppnLabel: string;
3086
+ ppnNote: string;
3087
+ grandTotalLabel: string;
3088
+ currencyPrefix: string;
3089
+ currencyCode: string;
3090
+ }
2514
3091
  interface PriceDetailItem {
2515
3092
  key: string;
2516
3093
  label: string | React.ReactNode;
@@ -2526,6 +3103,15 @@ interface ModalPriceDetailProps {
2526
3103
  subTotal: number;
2527
3104
  taxAmount: number;
2528
3105
  grandTotal: number;
3106
+ /**
3107
+ * Language for labels
3108
+ * @default 'id'
3109
+ */
3110
+ language?: Language;
3111
+ /**
3112
+ * Custom labels override
3113
+ */
3114
+ labels?: Partial<ModalPriceDetailLabels>;
2529
3115
  }
2530
3116
 
2531
3117
  declare const ModalPriceDetail: React$1.FC<ModalPriceDetailProps>;
@@ -2551,7 +3137,18 @@ interface ProfileMenuSection {
2551
3137
  sectionLabel: string;
2552
3138
  tabs: ProfileMenuTab[];
2553
3139
  }
3140
+ interface CardProfileMenuLabels {
3141
+ }
2554
3142
  interface CardProfileMenuProps {
3143
+ /**
3144
+ * Language for labels (Indonesian or English)
3145
+ * @default 'id'
3146
+ */
3147
+ language?: Language;
3148
+ /**
3149
+ * Custom labels override (optional)
3150
+ */
3151
+ labels?: Partial<CardProfileMenuLabels>;
2555
3152
  /**
2556
3153
  * List of menu sections with tabs
2557
3154
  */
@@ -2568,4 +3165,4 @@ interface CardProfileMenuProps {
2568
3165
 
2569
3166
  declare const CardProfileMenu: React$1.FC<CardProfileMenuProps>;
2570
3167
 
2571
- export { BackgroundTicketCard, BackgroundTicketCardVertical, type BadgeConfig, CardAddon, type CardAddonProps, CardBanner, type CardBannerProps, CardBookingTicket, type CardBookingTicketProps, CardFAQ, type CardFAQProps, CardMealCatalog, type CardMealCatalogProps, CardOrdererInfo, type CardOrdererInfoProps, CardPassengerList, type CardPassengerListProps, CardPaymentGuide, type CardPaymentGuideProps, CardPaymentInfo, type CardPaymentInfoProps, CardPaymentMethodList, type CardPaymentMethodListProps, CardPriceDetails, type CardPriceDetailsProps, CardProfileMenu, type CardProfileMenuProps, CardPromo, type CardPromoProps, CardReview, CardReviewPassenger, type CardReviewPassengerProps, type CardReviewProps, CardServiceMenu, type CardServiceMenuProps, CardStatusOrder, type CardStatusOrderProps, CardTicket, type CardTicketProps, CardTicketSearch, DEFAULT_LABELS$3 as CardTicketSearchDefaultLabels, type CardTicketSearchFormData, type CardTicketSearchLabels, type CardTicketSearchProps, type ServiceMenuItem as CardTicketSearchServiceMenuItem, CardTicketSearchSummary, DEFAULT_LABELS$2 as CardTicketSearchSummaryDefaultLabels, type CardTicketSearchSummaryProps, CardVehicleDetail, type CardVehicleDetailProps, CardVehicleOwnerForm, type CardVehicleOwnerFormProps, type CargoItem, CarouselWithCustomNav, type CarouselWithCustomNavProps, type CountryCode, DEFAULT_COUNTRY_CODES, DEFAULT_DURATION_RANGE, DEFAULT_PRICE_RANGE, DEFAULT_SCROLL_AMOUNT, DEFAULT_SERVICE_CLASSES, DEFAULT_SERVICE_TYPES, DEFAULT_SORT_OPTIONS, DEFAULT_TIME_SLOTS, DEFAULT_VEHICLE_ICONS, DateFilter, DEFAULT_LABELS as DateFilterDefaultLabels, type DateFilterLabels, type DateFilterProps, type DateItem, type FilterCount, type HarborItem, InputDynamic, type InputDynamicProps, type InputType, MODAL_PRESETS, type MealCategory, type MealItem, ModalFilterTicket, DEFAULT_LABELS$1 as ModalFilterTicketDefaultLabels, type ModalFilterTicketLabels, type ModalFilterTicketProps, ModalIllustration, type ModalIllustrationButton, type ModalIllustrationProps, ModalListPassenger, type PassengerItem as ModalListPassengerItem, type ModalListPassengerProps, ModalPassengerForm, type ModalPassengerFormProps, type ModalPresetKey, ModalPriceDetail, type ModalPriceDetailProps, ModalSearchHarbor, type ModalSearchHarborProps, ModalSearchTicket, type ModalSearchTicketProps, ModalSelectDate, type ModalSelectDateProps, ModalService, type ModalServiceProps, ModalTotalPassengers, type ModalTotalPassengersProps, ModalTypeOfService, type ModalTypeOfServiceProps, type OrdererInfo, type Passenger, type PassengerFormData, type PassengerListItem, type PassengerService, type PassengerServiceCode, type PassengerType, type PaymentGuideStep, type PaymentMethodCategory, type PaymentStep, type PriceDetailItem, type ProfileMenuSection, type ProfileMenuTab, type RadioOption, type ReservationStep, type ReviewPassengerItem, type SearchSummaryField, type SearchTicketFormData, type SelectOption, type SelectedPassengerItem, type ServiceClass, type ServiceId, type ServiceItem, SortMenu, type SortMenuProps, type SortOption, type StepStatus, Stepper, type StepperProps, type StepperStep, type TabType, type TypeOfService, type VehicleOwner, getBadgeConfig, getModalPreset, getSortLabel };
3168
+ export { BackgroundTicketCard, BackgroundTicketCardVertical, type BadgeConfig, CardAddon, type CardAddonProps, CardBanner, type CardBannerProps, CardBookingTicket, type CardBookingTicketProps, CardFAQ, type CardFAQProps, CardMealCatalog, type CardMealCatalogProps, CardOrdererInfo, type CardOrdererInfoProps, CardPassengerList, type CardPassengerListProps, CardPaymentGuide, type CardPaymentGuideProps, CardPaymentInfo, type CardPaymentInfoProps, CardPaymentMethodList, type CardPaymentMethodListProps, CardPriceDetails, type CardPriceDetailsProps, CardProfileMenu, type CardProfileMenuLabels, type CardProfileMenuProps, CardPromo, type CardPromoProps, CardReview, CardReviewPassenger, type CardReviewPassengerProps, type CardReviewProps, CardServiceMenu, type CardServiceMenuProps, CardStatusOrder, type CardStatusOrderProps, CardTicket, type CardTicketProps, CardTicketSearch, DEFAULT_LABELS$3 as CardTicketSearchDefaultLabels, type CardTicketSearchFormData, type CardTicketSearchLabels, type CardTicketSearchProps, type ServiceMenuItem as CardTicketSearchServiceMenuItem, CardTicketSearchSummary, DEFAULT_LABELS$2 as CardTicketSearchSummaryDefaultLabels, type CardTicketSearchSummaryProps, CardVehicleDetail, type CardVehicleDetailProps, CardVehicleOwnerForm, type CardVehicleOwnerFormProps, type CargoItem, CarouselWithCustomNav, type CarouselWithCustomNavProps, type CountryCode, DEFAULT_COUNTRY_CODES, DEFAULT_DURATION_RANGE, DEFAULT_PRICE_RANGE, DEFAULT_SCROLL_AMOUNT, DEFAULT_SERVICE_CLASSES, DEFAULT_SERVICE_TYPES, DEFAULT_SORT_OPTIONS, DEFAULT_TIME_SLOTS, DEFAULT_VEHICLE_ICONS, DateFilter, DEFAULT_LABELS as DateFilterDefaultLabels, type DateFilterLabels, type DateFilterProps, type DateItem, type FilterCount, type HarborItem, InputDynamic, type InputDynamicProps, type InputType, MODAL_PRESETS, type MealCategory, type MealItem, ModalFilterTicket, DEFAULT_LABELS$1 as ModalFilterTicketDefaultLabels, type ModalFilterTicketLabels, type ModalFilterTicketProps, ModalIllustration, type ModalIllustrationButton, type ModalIllustrationProps, ModalListPassenger, type PassengerItem as ModalListPassengerItem, type ModalListPassengerProps, ModalPassengerForm, type ModalPassengerFormProps, type ModalPresetKey, ModalPriceDetail, type ModalPriceDetailProps, ModalSearchHarbor, type ModalSearchHarborProps, ModalSearchTicket, type ModalSearchTicketProps, ModalSelectDate, type ModalSelectDateProps, ModalService, type ModalServiceProps, ModalTotalPassengers, type ModalTotalPassengersProps, ModalTypeOfService, type ModalTypeOfServiceProps, type Passenger, type PassengerFormData, type PassengerListItem, type PassengerService, type PassengerServiceCode, type PassengerType, type PaymentGuideStep, type PaymentMethodCategory, type PaymentStep, type PriceDetailItem, type ProfileMenuSection, type ProfileMenuTab, type RadioOption, type ReservationStep, type ReviewPassengerItem, type SearchSummaryField, type SearchTicketFormData, type SelectOption, type SelectedPassengerItem, type ServiceClass, type ServiceId, type ServiceItem, SortMenu, type SortMenuProps, type SortOption, type StepStatus, Stepper, type StepperProps, type StepperStep, type TabType, type TypeOfService, type VehicleOwner, getBadgeConfig, getModalPreset, getSortLabel };