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

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.js CHANGED
@@ -261,6 +261,18 @@ var CarouselWithCustomNav = ({
261
261
  }
262
262
  );
263
263
  };
264
+
265
+ // src/components/CardPromo/CardPromo.constants.ts
266
+ var DEFAULT_LABELS = {
267
+ id: {
268
+ defaultImageAlt: "Gambar Promo",
269
+ defaultButtonText: "Lihat Detail"
270
+ },
271
+ en: {
272
+ defaultImageAlt: "Promo Image",
273
+ defaultButtonText: "View Details"
274
+ }
275
+ };
264
276
  var useStyles3 = reactComponents.makeStyles({
265
277
  actionCard: {
266
278
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -344,22 +356,27 @@ var useStyles3 = reactComponents.makeStyles({
344
356
  }
345
357
  });
346
358
  var CardPromo = ({
359
+ language = "id",
347
360
  imageUrl,
348
361
  title,
349
362
  description,
350
- imageAlt = "Promo image",
363
+ imageAlt,
351
364
  index = 0,
352
365
  totalCards,
353
366
  onClick,
354
367
  showButton = false,
355
- buttonText = "Lihat Detail",
368
+ buttonText,
356
369
  className,
357
370
  imageClassName,
358
371
  descriptionClassName,
359
372
  isLoading = false,
360
- imageOnly = false
373
+ imageOnly = false,
374
+ labels
361
375
  }) => {
362
376
  const classes = useStyles3();
377
+ const mergedLabels = { ...DEFAULT_LABELS[language], ...labels };
378
+ const displayImageAlt = imageAlt || mergedLabels.defaultImageAlt;
379
+ const displayButtonText = buttonText || mergedLabels.defaultButtonText;
363
380
  const ariaLabel = totalCards ? `Card ${index + 1} of ${totalCards}` : `Promo card ${index + 1}`;
364
381
  if (isLoading) {
365
382
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -369,7 +386,13 @@ var CardPromo = ({
369
386
  className: reactComponents.mergeClasses(classes.actionCard, className),
370
387
  style: { cursor: "default" },
371
388
  children: /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Skeleton, { "aria-label": "Loading content", children: [
372
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: reactComponents.mergeClasses(classes.imageContainer, imageClassName), children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.SkeletonItem, { shape: "rectangle", style: { width: "100%", height: "100%" } }) }),
389
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: reactComponents.mergeClasses(classes.imageContainer, imageClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
390
+ reactComponents.SkeletonItem,
391
+ {
392
+ shape: "rectangle",
393
+ style: { width: "100%", height: "100%" }
394
+ }
395
+ ) }),
373
396
  !imageOnly && /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Row, { className: classes.infoWrapper, children: /* @__PURE__ */ jsxRuntime.jsxs(reactGridSystem.Col, { className: classes.info, xs: 12, children: [
374
397
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.SkeletonItem, { style: { width: "70%", height: "20px" } }),
375
398
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.SkeletonItem, { style: { width: "90%", height: "16px" } }),
@@ -394,25 +417,57 @@ var CardPromo = ({
394
417
  className: classes.image,
395
418
  src: imageUrl,
396
419
  role: "presentation",
397
- alt: imageAlt
420
+ alt: displayImageAlt
398
421
  }
399
422
  ) }),
400
423
  !imageOnly && /* @__PURE__ */ jsxRuntime.jsxs(reactGridSystem.Row, { className: classes.infoWrapper, children: [
401
- /* @__PURE__ */ jsxRuntime.jsxs(reactGridSystem.Col, { className: classes.info, xs: 12, sm: 12, md: 12, lg: showButton ? 8 : 12, xl: showButton ? 8 : 12, xxl: showButton ? 8 : 12, xxxl: showButton ? 8 : 12, children: [
402
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { className: classes.title, children: title }),
403
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { className: reactComponents.mergeClasses(classes.title, descriptionClassName), children: description })
404
- ] }),
405
- showButton && /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { className: classes.buttonWrapper, xs: 12, sm: 12, md: 12, lg: showButton ? 4 : 0, xl: showButton ? 4 : 0, xxl: showButton ? 4 : 0, xxxl: showButton ? 4 : 0, children: /* @__PURE__ */ jsxRuntime.jsx(
406
- reactComponents.Button,
424
+ /* @__PURE__ */ jsxRuntime.jsxs(
425
+ reactGridSystem.Col,
407
426
  {
408
- appearance: "primary",
409
- size: "small",
410
- onClick,
411
- style: { cursor: onClick ? "pointer" : "default" },
412
- shape: "circular",
413
- children: buttonText
427
+ className: classes.info,
428
+ xs: 12,
429
+ sm: 12,
430
+ md: 12,
431
+ lg: showButton ? 8 : 12,
432
+ xl: showButton ? 8 : 12,
433
+ xxl: showButton ? 8 : 12,
434
+ xxxl: showButton ? 8 : 12,
435
+ children: [
436
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { className: classes.title, children: title }),
437
+ /* @__PURE__ */ jsxRuntime.jsx(
438
+ reactComponents.Body1,
439
+ {
440
+ className: reactComponents.mergeClasses(classes.title, descriptionClassName),
441
+ children: description
442
+ }
443
+ )
444
+ ]
414
445
  }
415
- ) })
446
+ ),
447
+ showButton && /* @__PURE__ */ jsxRuntime.jsx(
448
+ reactGridSystem.Col,
449
+ {
450
+ className: classes.buttonWrapper,
451
+ xs: 12,
452
+ sm: 12,
453
+ md: 12,
454
+ lg: showButton ? 4 : 0,
455
+ xl: showButton ? 4 : 0,
456
+ xxl: showButton ? 4 : 0,
457
+ xxxl: showButton ? 4 : 0,
458
+ children: /* @__PURE__ */ jsxRuntime.jsx(
459
+ reactComponents.Button,
460
+ {
461
+ appearance: "primary",
462
+ size: "small",
463
+ onClick,
464
+ style: { cursor: onClick ? "pointer" : "default" },
465
+ shape: "circular",
466
+ children: displayButtonText
467
+ }
468
+ )
469
+ }
470
+ )
416
471
  ] })
417
472
  ]
418
473
  }
@@ -623,7 +678,31 @@ var extendedTokens = {
623
678
  colorBrandForegroundLinkHover: customBrand[120],
624
679
  colorBrandForegroundLinkPressed: customBrand[130],
625
680
  colorBrandForegroundLinkSelected: customBrand[110]});
626
- var useStyle = reactComponents.makeStyles({
681
+
682
+ // src/components/CardTicket/CardTicket.constants.ts
683
+ var DEFAULT_LABELS2 = {
684
+ id: {
685
+ availableSeatsLabel: "Tersedia",
686
+ estimationPrefix: "Estimasi",
687
+ priceDetailsButton: "Rincian Harga",
688
+ policyButton: "Kebijakan",
689
+ totalPriceLabel: "Total harga",
690
+ facilitiesLabel: "Fasilitas",
691
+ selectTicketButton: "Pilih Tiket",
692
+ timezoneLabel: "WIB"
693
+ },
694
+ en: {
695
+ availableSeatsLabel: "Available",
696
+ estimationPrefix: "Estimation",
697
+ priceDetailsButton: "Price Details",
698
+ policyButton: "Policy",
699
+ totalPriceLabel: "Total price",
700
+ facilitiesLabel: "Facilities",
701
+ selectTicketButton: "Select Ticket",
702
+ timezoneLabel: "WIB"
703
+ }
704
+ };
705
+ var useStyles5 = reactComponents.makeStyles({
627
706
  dividerContainer: {
628
707
  position: "relative",
629
708
  display: "flex",
@@ -819,6 +898,8 @@ var useStyle = reactComponents.makeStyles({
819
898
  }
820
899
  });
821
900
  var CardTicket = ({
901
+ language = "id",
902
+ labels,
822
903
  id,
823
904
  shipName,
824
905
  shipType,
@@ -834,13 +915,14 @@ var CardTicket = ({
834
915
  duration,
835
916
  facilities,
836
917
  totalPrice,
837
- buttonText = "Pilih Tiket",
918
+ buttonText,
838
919
  onPriceDetailClick,
839
920
  onPolicyClick,
840
921
  onSelectTicket
841
922
  }) => {
842
- const styles = useStyle();
923
+ const styles = useStyles5();
843
924
  const { width } = useWindowSize();
925
+ const mergedLabels = { ...DEFAULT_LABELS2[language], ...labels };
844
926
  const getCircularVerticalConfig = () => {
845
927
  if (width <= 1600) return { count: 6, spacing: 60, top: 10 };
846
928
  return { count: 5, spacing: 60, top: 18 };
@@ -952,7 +1034,8 @@ var CardTicket = ({
952
1034
  shape: "rounded",
953
1035
  icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:ticket-diagonal-24-regular" }),
954
1036
  children: [
955
- "Tersedia ",
1037
+ mergedLabels.availableSeatsLabel,
1038
+ " ",
956
1039
  availableSeats
957
1040
  ]
958
1041
  }
@@ -978,16 +1061,18 @@ var CardTicket = ({
978
1061
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.circularLeftMd }),
979
1062
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.circularRightMd })
980
1063
  ] }),
981
- /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Visible, { xl: true, xxl: true, xxxl: true, children: Array.from({ length: circularVerticalConfig.count }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
982
- "div",
983
- {
984
- className: styles.circularLeft,
985
- style: {
986
- top: `${circularVerticalConfig.top + index * circularVerticalConfig.spacing}px`
987
- }
988
- },
989
- index
990
- )) })
1064
+ /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Visible, { xl: true, xxl: true, xxxl: true, children: Array.from({ length: circularVerticalConfig.count }).map(
1065
+ (_, index) => /* @__PURE__ */ jsxRuntime.jsx(
1066
+ "div",
1067
+ {
1068
+ className: styles.circularLeft,
1069
+ style: {
1070
+ top: `${circularVerticalConfig.top + index * circularVerticalConfig.spacing}px`
1071
+ }
1072
+ },
1073
+ index
1074
+ )
1075
+ ) })
991
1076
  ] })
992
1077
  }
993
1078
  ),
@@ -1016,7 +1101,8 @@ var CardTicket = ({
1016
1101
  shape: "rounded",
1017
1102
  icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:ticket-diagonal-24-regular" }),
1018
1103
  children: [
1019
- "Tersedia ",
1104
+ mergedLabels.availableSeatsLabel,
1105
+ " ",
1020
1106
  availableSeats
1021
1107
  ]
1022
1108
  }
@@ -1024,19 +1110,28 @@ var CardTicket = ({
1024
1110
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.ticketInfo, children: [
1025
1111
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.ticketTime, children: [
1026
1112
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { children: departureDay }),
1027
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Title2, { children: departureTime }),
1113
+ /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Title2, { children: [
1114
+ departureTime,
1115
+ " ",
1116
+ mergedLabels.timezoneLabel
1117
+ ] }),
1028
1118
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { children: departureLocation })
1029
1119
  ] }),
1030
1120
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.ticketDuration, children: [
1031
1121
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Caption2, { children: [
1032
- "Estimasi ",
1122
+ mergedLabels.estimationPrefix,
1123
+ " ",
1033
1124
  duration
1034
1125
  ] }),
1035
1126
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.dividerContainer, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, { children: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:vehicle-ship-24-regular", height: 24 }) }) })
1036
1127
  ] }),
1037
1128
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.ticketTime, children: [
1038
1129
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { children: arrivalDay }),
1039
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Title2, { children: arrivalTime }),
1130
+ /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Title2, { children: [
1131
+ arrivalTime,
1132
+ " ",
1133
+ mergedLabels.timezoneLabel
1134
+ ] }),
1040
1135
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { children: arrivalLocation })
1041
1136
  ] })
1042
1137
  ] }) }),
@@ -1054,7 +1149,7 @@ var CardTicket = ({
1054
1149
  icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:money-24-regular" }),
1055
1150
  size: "medium",
1056
1151
  onClick: onPriceDetailClick,
1057
- children: "Rincian Harga"
1152
+ children: mergedLabels.priceDetailsButton
1058
1153
  }
1059
1154
  ),
1060
1155
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1070,7 +1165,7 @@ var CardTicket = ({
1070
1165
  icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:document-bullet-list-24-regular" }),
1071
1166
  size: "medium",
1072
1167
  onClick: onPolicyClick,
1073
- children: "Kebijakan"
1168
+ children: mergedLabels.policyButton
1074
1169
  }
1075
1170
  )
1076
1171
  ] })
@@ -1090,13 +1185,33 @@ var CardTicket = ({
1090
1185
  style: { padding: 0, margin: 0 },
1091
1186
  children: /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: styles.ticketRightCard, children: [
1092
1187
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.priceCard, children: [
1093
- /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "0.25rem" }, children: [
1094
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { children: "Total harga" }),
1095
- /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Title3, { style: { display: "flex", flex: "column", justifyContent: "end" }, children: [
1096
- "IDR\xA0",
1097
- totalPrice.toLocaleString("id-ID")
1098
- ] })
1099
- ] }),
1188
+ /* @__PURE__ */ jsxRuntime.jsxs(
1189
+ "div",
1190
+ {
1191
+ style: {
1192
+ display: "flex",
1193
+ flexDirection: "column",
1194
+ gap: "0.25rem"
1195
+ },
1196
+ children: [
1197
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { children: mergedLabels.totalPriceLabel }),
1198
+ /* @__PURE__ */ jsxRuntime.jsxs(
1199
+ reactComponents.Title3,
1200
+ {
1201
+ style: {
1202
+ display: "flex",
1203
+ flex: "column",
1204
+ justifyContent: "end"
1205
+ },
1206
+ children: [
1207
+ "IDR\xA0",
1208
+ totalPrice.toLocaleString("id-ID")
1209
+ ]
1210
+ }
1211
+ )
1212
+ ]
1213
+ }
1214
+ ),
1100
1215
  /* @__PURE__ */ jsxRuntime.jsx(
1101
1216
  reactComponents.Button,
1102
1217
  {
@@ -1106,27 +1221,29 @@ var CardTicket = ({
1106
1221
  size: "medium",
1107
1222
  shape: "circular",
1108
1223
  icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:ticket-diagonal-24-filled" }),
1109
- children: buttonText
1224
+ children: buttonText || mergedLabels.selectTicketButton
1110
1225
  }
1111
1226
  )
1112
1227
  ] }),
1113
1228
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.facilitiesSection, children: [
1114
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { children: "Fasilitas" }),
1229
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { children: mergedLabels.facilitiesLabel }),
1115
1230
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.facilitiesList, children: facilities.map((facility, idx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.facilityItem, children: [
1116
1231
  /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:checkmark-circle-24-filled" }),
1117
1232
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1Strong, { children: facility })
1118
1233
  ] }, idx)) })
1119
1234
  ] }),
1120
- /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Visible, { xl: true, xxl: true, xxxl: true, children: Array.from({ length: circularVerticalConfig.count }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
1121
- "div",
1122
- {
1123
- className: styles.circularRight,
1124
- style: {
1125
- top: `${circularVerticalConfig.top + index * circularVerticalConfig.spacing}px`
1126
- }
1127
- },
1128
- index
1129
- )) })
1235
+ /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Visible, { xl: true, xxl: true, xxxl: true, children: Array.from({ length: circularVerticalConfig.count }).map(
1236
+ (_, index) => /* @__PURE__ */ jsxRuntime.jsx(
1237
+ "div",
1238
+ {
1239
+ className: styles.circularRight,
1240
+ style: {
1241
+ top: `${circularVerticalConfig.top + index * circularVerticalConfig.spacing}px`
1242
+ }
1243
+ },
1244
+ index
1245
+ )
1246
+ ) })
1130
1247
  ] })
1131
1248
  }
1132
1249
  )
@@ -1309,7 +1426,7 @@ var BackgroundTicketCardVertical = (props) => /* @__PURE__ */ jsxRuntime.jsxs(
1309
1426
  }
1310
1427
  );
1311
1428
  var BackgroundTicketCardVertical_default = BackgroundTicketCardVertical;
1312
- var useStyles5 = reactComponents.makeStyles({
1429
+ var useStyles6 = reactComponents.makeStyles({
1313
1430
  card: {
1314
1431
  width: "100%",
1315
1432
  boxSizing: "border-box",
@@ -1450,7 +1567,7 @@ var CardServiceMenu = ({
1450
1567
  showDescriptions = true,
1451
1568
  className
1452
1569
  }) => {
1453
- const styles = useStyles5();
1570
+ const styles = useStyles6();
1454
1571
  const getMenuItemClass = (serviceId) => {
1455
1572
  const isActive = activeServiceId === serviceId;
1456
1573
  return reactComponents.mergeClasses(
@@ -1582,7 +1699,7 @@ var DatePickerInput = React5.forwardRef(
1582
1699
  DatePickerInput.displayName = "DatePickerInput";
1583
1700
  var DatePickerInput_default = DatePickerInput;
1584
1701
  var PhoneInput = PhoneInputComponent__default.default.default || PhoneInputComponent__default.default;
1585
- var useStyles6 = reactComponents.makeStyles({
1702
+ var useStyles7 = reactComponents.makeStyles({
1586
1703
  field: {
1587
1704
  display: "flex",
1588
1705
  flexDirection: "column",
@@ -1825,7 +1942,7 @@ var InputDynamic = ({
1825
1942
  contentAfter,
1826
1943
  onChange
1827
1944
  }) => {
1828
- const styles = useStyles6();
1945
+ const styles = useStyles7();
1829
1946
  const [showPassword, setShowPassword] = React5.useState(false);
1830
1947
  const [isPhoneMode, setIsPhoneMode] = React5.useState(false);
1831
1948
  const [emailOrPhoneType, setEmailOrPhoneType] = React5.useState("none");
@@ -2895,7 +3012,7 @@ var DEFAULT_COUNTRY_CODES = [
2895
3012
  ];
2896
3013
 
2897
3014
  // src/components/CardTicketSearch/CardTicketSearch.constants.ts
2898
- var DEFAULT_LABELS = {
3015
+ var DEFAULT_LABELS3 = {
2899
3016
  id: {
2900
3017
  fromLabel: "Dari",
2901
3018
  toLabel: "Ke",
@@ -2933,7 +3050,7 @@ var DEFAULT_LABELS = {
2933
3050
  placeholderPassenger: "Select Number of Passengers"
2934
3051
  }
2935
3052
  };
2936
- var useStyles7 = reactComponents.makeStyles({
3053
+ var useStyles8 = reactComponents.makeStyles({
2937
3054
  card: {
2938
3055
  position: "relative",
2939
3056
  width: "100%",
@@ -3069,9 +3186,9 @@ var CardTicketSearch = ({
3069
3186
  showRoundTrip = true,
3070
3187
  onServiceClick
3071
3188
  }) => {
3072
- const styles = useStyles7();
3189
+ const styles = useStyles8();
3073
3190
  const labels = React5__default.default.useMemo(
3074
- () => ({ ...DEFAULT_LABELS[language], ...customLabels }),
3191
+ () => ({ ...DEFAULT_LABELS3[language], ...customLabels }),
3075
3192
  [language, customLabels]
3076
3193
  );
3077
3194
  const { control, setValue, getValues, handleSubmit } = reactHookForm.useForm({
@@ -3457,16 +3574,27 @@ var CardTicketSearch = ({
3457
3574
  };
3458
3575
 
3459
3576
  // src/components/CardTicketSearchSummary/CardTicketSearchSummary.constants.ts
3460
- var DEFAULT_LABELS2 = {
3461
- originHarbor: "Pelabuhan Keberangkatan",
3462
- destinationHarbor: "Pelabuhan Tujuan",
3463
- departureDate: "Tanggal Keberangkatan",
3464
- serviceClass: "Kelas Layanan",
3465
- typeOfService: "Jenis Layanan",
3466
- totalPassengers: "Jumlah Penumpang",
3467
- changeSearchButton: "Ganti Pencarian"
3577
+ var DEFAULT_LABELS4 = {
3578
+ id: {
3579
+ originHarbor: "Pelabuhan Keberangkatan",
3580
+ destinationHarbor: "Pelabuhan Tujuan",
3581
+ departureDate: "Tanggal Keberangkatan",
3582
+ serviceClass: "Kelas Layanan",
3583
+ typeOfService: "Jenis Layanan",
3584
+ totalPassengers: "Jumlah Penumpang",
3585
+ changeSearchButton: "Ganti Pencarian"
3586
+ },
3587
+ en: {
3588
+ originHarbor: "Departure Port",
3589
+ destinationHarbor: "Destination Port",
3590
+ departureDate: "Departure Date",
3591
+ serviceClass: "Service Class",
3592
+ typeOfService: "Service Type",
3593
+ totalPassengers: "Total Passengers",
3594
+ changeSearchButton: "Change Search"
3595
+ }
3468
3596
  };
3469
- var useStyles8 = reactComponents.makeStyles({
3597
+ var useStyles9 = reactComponents.makeStyles({
3470
3598
  cardSearchTicket: {
3471
3599
  borderRadius: "32px",
3472
3600
  // borderBottomLeftRadius: '0',
@@ -3534,6 +3662,7 @@ var useStyles8 = reactComponents.makeStyles({
3534
3662
  }
3535
3663
  });
3536
3664
  var CardTicketSearchSummary = ({
3665
+ language = "id",
3537
3666
  originHarbor,
3538
3667
  destinationHarbor,
3539
3668
  departureDate,
@@ -3545,8 +3674,8 @@ var CardTicketSearchSummary = ({
3545
3674
  showSwapButton = false,
3546
3675
  children
3547
3676
  }) => {
3548
- const styles = useStyles8();
3549
- const mergedLabels = { ...DEFAULT_LABELS2, ...labels };
3677
+ const styles = useStyles9();
3678
+ const mergedLabels = { ...DEFAULT_LABELS4[language], ...labels };
3550
3679
  const { width } = useWindowSize();
3551
3680
  const getCircularConfig = () => {
3552
3681
  if (width <= parseInt(extendedTokens.breakpointXs))
@@ -3591,24 +3720,31 @@ var CardTicketSearchSummary = ({
3591
3720
  xxl: 5,
3592
3721
  xxxl: 5,
3593
3722
  className: styles.paddingResponsive,
3594
- children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Field, { label: mergedLabels.originHarbor, className: styles.field, children: /* @__PURE__ */ jsxRuntime.jsx(
3595
- reactComponents.Input,
3723
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3724
+ reactComponents.Field,
3596
3725
  {
3597
- name: "from",
3598
- disabled: true,
3599
- type: "text",
3600
- contentBefore: /* @__PURE__ */ jsxRuntime.jsx(
3601
- react.Icon,
3726
+ label: mergedLabels.originHarbor,
3727
+ className: styles.field,
3728
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3729
+ reactComponents.Input,
3602
3730
  {
3603
- icon: "fluent:vehicle-ship-16-filled",
3604
- color: reactComponents.tokens.colorNeutralForegroundDisabled
3731
+ name: "from",
3732
+ disabled: true,
3733
+ type: "text",
3734
+ contentBefore: /* @__PURE__ */ jsxRuntime.jsx(
3735
+ react.Icon,
3736
+ {
3737
+ icon: "fluent:vehicle-ship-16-filled",
3738
+ color: reactComponents.tokens.colorNeutralForegroundDisabled
3739
+ }
3740
+ ),
3741
+ value: originHarbor,
3742
+ appearance: "outline",
3743
+ size: "medium"
3605
3744
  }
3606
- ),
3607
- value: originHarbor,
3608
- appearance: "outline",
3609
- size: "medium"
3745
+ )
3610
3746
  }
3611
- ) })
3747
+ )
3612
3748
  }
3613
3749
  ),
3614
3750
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3651,24 +3787,31 @@ var CardTicketSearchSummary = ({
3651
3787
  xxl: 6,
3652
3788
  xxxl: 6,
3653
3789
  className: styles.paddingResponsive,
3654
- children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Field, { label: mergedLabels.destinationHarbor, className: styles.field, children: /* @__PURE__ */ jsxRuntime.jsx(
3655
- reactComponents.Input,
3790
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3791
+ reactComponents.Field,
3656
3792
  {
3657
- name: "to",
3658
- type: "text",
3659
- contentBefore: /* @__PURE__ */ jsxRuntime.jsx(
3660
- react.Icon,
3793
+ label: mergedLabels.destinationHarbor,
3794
+ className: styles.field,
3795
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3796
+ reactComponents.Input,
3661
3797
  {
3662
- icon: "fluent:location-24-filled",
3663
- color: reactComponents.tokens.colorNeutralForegroundDisabled
3798
+ name: "to",
3799
+ type: "text",
3800
+ contentBefore: /* @__PURE__ */ jsxRuntime.jsx(
3801
+ react.Icon,
3802
+ {
3803
+ icon: "fluent:location-24-filled",
3804
+ color: reactComponents.tokens.colorNeutralForegroundDisabled
3805
+ }
3806
+ ),
3807
+ disabled: true,
3808
+ appearance: "outline",
3809
+ size: "medium",
3810
+ value: destinationHarbor
3664
3811
  }
3665
- ),
3666
- disabled: true,
3667
- appearance: "outline",
3668
- size: "medium",
3669
- value: destinationHarbor
3812
+ )
3670
3813
  }
3671
- ) })
3814
+ )
3672
3815
  }
3673
3816
  )
3674
3817
  ] }) })
@@ -3829,7 +3972,10 @@ var CardTicketSearchSummary = ({
3829
3972
  type: "button",
3830
3973
  appearance: "primary",
3831
3974
  size: "medium",
3832
- style: { width: "100%", borderRadius: reactComponents.tokens.borderRadiusCircular },
3975
+ style: {
3976
+ width: "100%",
3977
+ borderRadius: reactComponents.tokens.borderRadiusCircular
3978
+ },
3833
3979
  iconPosition: "before",
3834
3980
  icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:search-24-filled" }),
3835
3981
  onClick: onChangeSearch,
@@ -3852,7 +3998,29 @@ var CardTicketSearchSummary = ({
3852
3998
  ))
3853
3999
  ] });
3854
4000
  };
3855
- var useStyles9 = reactComponents.makeStyles({
4001
+
4002
+ // src/components/ModalSearchHarbor/ModalSearchHarbor.constants.ts
4003
+ var DEFAULT_LABELS5 = {
4004
+ id: {
4005
+ title: "Pilih Pelabuhan",
4006
+ searchPlaceholder: "Cari Pelabuhan...",
4007
+ lastSearchedHeader: "Terakhir dicari",
4008
+ clearAllButton: "Hapus Semua",
4009
+ allHarborsHeader: "Semua Pelabuhan",
4010
+ loadingData: "Memuat data...",
4011
+ harborNotFound: "Pelabuhan tidak ditemukan"
4012
+ },
4013
+ en: {
4014
+ title: "Select Harbor",
4015
+ searchPlaceholder: "Search Harbor...",
4016
+ lastSearchedHeader: "Last searched",
4017
+ clearAllButton: "Clear All",
4018
+ allHarborsHeader: "All Harbors",
4019
+ loadingData: "Loading data...",
4020
+ harborNotFound: "Harbor not found"
4021
+ }
4022
+ };
4023
+ var useStyles10 = reactComponents.makeStyles({
3856
4024
  dialogTitle: {
3857
4025
  display: "flex",
3858
4026
  justifyContent: "space-between",
@@ -3965,9 +4133,11 @@ var useStyles9 = reactComponents.makeStyles({
3965
4133
  }
3966
4134
  });
3967
4135
  var ModalSearchHarbor = ({
4136
+ language = "id",
4137
+ labels,
3968
4138
  open,
3969
4139
  onClose,
3970
- title = "Pilih Pelabuhan",
4140
+ title,
3971
4141
  modalType = "origin",
3972
4142
  harbors,
3973
4143
  favoriteHarbors,
@@ -3981,7 +4151,8 @@ var ModalSearchHarbor = ({
3981
4151
  onRemoveLastSearched,
3982
4152
  onClearLastSearched
3983
4153
  }) => {
3984
- const styles = useStyles9();
4154
+ const styles = useStyles10();
4155
+ const mergedLabels = { ...DEFAULT_LABELS5[language], ...labels };
3985
4156
  const handleSelect = (harbor) => {
3986
4157
  onAddLastSearched(harbor);
3987
4158
  onSelectHarbor(harbor);
@@ -4014,7 +4185,7 @@ var ModalSearchHarbor = ({
4014
4185
  className: styles.closeButton
4015
4186
  }
4016
4187
  ),
4017
- children: title
4188
+ children: title || mergedLabels.title
4018
4189
  }
4019
4190
  ),
4020
4191
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.DialogContent, { className: styles.content, children: [
@@ -4024,8 +4195,14 @@ var ModalSearchHarbor = ({
4024
4195
  className: styles.searchInput,
4025
4196
  value: searchQuery,
4026
4197
  onChange: (e) => onSearchChange(e.target.value),
4027
- placeholder: "Cari Pelabuhan...",
4028
- contentBefore: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:search-24-regular", color: reactComponents.tokens.colorNeutralForeground3 }),
4198
+ placeholder: mergedLabels.searchPlaceholder,
4199
+ contentBefore: /* @__PURE__ */ jsxRuntime.jsx(
4200
+ react.Icon,
4201
+ {
4202
+ icon: "fluent:search-24-regular",
4203
+ color: reactComponents.tokens.colorNeutralForeground3
4204
+ }
4205
+ ),
4029
4206
  size: "large"
4030
4207
  }
4031
4208
  ) }),
@@ -4046,13 +4223,13 @@ var ModalSearchHarbor = ({
4046
4223
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.resultList, children: [
4047
4224
  lastSearchedHarbors.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4048
4225
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.headerRow, children: [
4049
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1Strong, { children: "Terakhir dicari" }),
4226
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1Strong, { children: mergedLabels.lastSearchedHeader }),
4050
4227
  /* @__PURE__ */ jsxRuntime.jsx(
4051
4228
  reactComponents.Caption1,
4052
4229
  {
4053
4230
  className: `${styles.dangerText} ${styles.cursorPointer}`,
4054
4231
  onClick: onClearLastSearched,
4055
- children: "Hapus Semua"
4232
+ children: mergedLabels.clearAllButton
4056
4233
  }
4057
4234
  )
4058
4235
  ] }),
@@ -4063,7 +4240,13 @@ var ModalSearchHarbor = ({
4063
4240
  style: { cursor: "pointer" },
4064
4241
  onClick: () => handleSelect(harbor),
4065
4242
  children: [
4066
- /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:vehicle-ship-24-regular", className: styles.iconMargin }),
4243
+ /* @__PURE__ */ jsxRuntime.jsx(
4244
+ react.Icon,
4245
+ {
4246
+ icon: "fluent:vehicle-ship-24-regular",
4247
+ className: styles.iconMargin
4248
+ }
4249
+ ),
4067
4250
  harbor.name
4068
4251
  ]
4069
4252
  }
@@ -4080,15 +4263,21 @@ var ModalSearchHarbor = ({
4080
4263
  ] }, harbor.id)) }),
4081
4264
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, {})
4082
4265
  ] }),
4083
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1Strong, { className: styles.sectionTitle, children: "Semua Pelabuhan" }),
4084
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.harborList, children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.emptyState, children: "Memuat data..." }) : harbors.length > 0 ? harbors.map((harbor, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.harborItem, children: [
4266
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1Strong, { className: styles.sectionTitle, children: mergedLabels.allHarborsHeader }),
4267
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.harborList, children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.emptyState, children: mergedLabels.loadingData }) : harbors.length > 0 ? harbors.map((harbor, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.harborItem, children: [
4085
4268
  /* @__PURE__ */ jsxRuntime.jsxs(
4086
4269
  "div",
4087
4270
  {
4088
4271
  className: styles.cursorPointer,
4089
4272
  onClick: () => handleSelect(harbor),
4090
4273
  children: [
4091
- /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:vehicle-ship-24-regular", className: styles.iconMargin }),
4274
+ /* @__PURE__ */ jsxRuntime.jsx(
4275
+ react.Icon,
4276
+ {
4277
+ icon: "fluent:vehicle-ship-24-regular",
4278
+ className: styles.iconMargin
4279
+ }
4280
+ ),
4092
4281
  harbor.name
4093
4282
  ]
4094
4283
  }
@@ -4102,14 +4291,28 @@ var ModalSearchHarbor = ({
4102
4291
  onClick: () => onToggleFavorite(harbor)
4103
4292
  }
4104
4293
  )
4105
- ] }, index)) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.emptyState, children: "Pelabuhan tidak ditemukan" }) })
4294
+ ] }, index)) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.emptyState, children: mergedLabels.harborNotFound }) })
4106
4295
  ] })
4107
4296
  ] })
4108
4297
  ] }) })
4109
4298
  }
4110
4299
  );
4111
4300
  };
4112
- var useStyles10 = reactComponents.makeStyles({
4301
+
4302
+ // src/components/ModalSelectDate/ModalSelectDate.constants.ts
4303
+ var DEFAULT_LABELS6 = {
4304
+ id: {
4305
+ title: "Pilih Tanggal",
4306
+ oneWay: "Sekali Jalan",
4307
+ roundTrip: "Pulang Pergi"
4308
+ },
4309
+ en: {
4310
+ title: "Select Date",
4311
+ oneWay: "One Way",
4312
+ roundTrip: "Round Trip"
4313
+ }
4314
+ };
4315
+ var useStyles11 = reactComponents.makeStyles({
4113
4316
  dialogSurface: {
4114
4317
  maxWidth: "600px",
4115
4318
  width: "100%"
@@ -4212,9 +4415,11 @@ var useStyles10 = reactComponents.makeStyles({
4212
4415
  }
4213
4416
  });
4214
4417
  var ModalSelectDate = ({
4418
+ language = "id",
4419
+ labels,
4215
4420
  open,
4216
4421
  onClose,
4217
- title = "Pilih Tanggal",
4422
+ title,
4218
4423
  selectedDepartureDate,
4219
4424
  selectedReturnDate,
4220
4425
  initialTab = "one-way",
@@ -4227,9 +4432,17 @@ var ModalSelectDate = ({
4227
4432
  dateFormat = "DD MMMM YYYY",
4228
4433
  showRoundtrip = true
4229
4434
  }) => {
4230
- const styles = useStyles10();
4231
- const [selectedDate, setSelectedDate] = React5.useState(selectedDepartureDate);
4232
- const [selectedEndDate, setSelectedEndDate] = React5.useState(selectedReturnDate);
4435
+ const styles = useStyles11();
4436
+ const mergedLabels = { ...DEFAULT_LABELS6[language], ...labels };
4437
+ React5.useEffect(() => {
4438
+ moment__default.default.locale(language === "id" ? "id" : "en");
4439
+ }, [language]);
4440
+ const [selectedDate, setSelectedDate] = React5.useState(
4441
+ selectedDepartureDate
4442
+ );
4443
+ const [selectedEndDate, setSelectedEndDate] = React5.useState(
4444
+ selectedReturnDate
4445
+ );
4233
4446
  const [hoveredDate, setHoveredDate] = React5.useState();
4234
4447
  const [activeTab, setActiveTab] = React5.useState(initialTab);
4235
4448
  const previewEndDate = React5.useMemo(() => {
@@ -4390,7 +4603,7 @@ var ModalSelectDate = ({
4390
4603
  className: styles.closeButton
4391
4604
  }
4392
4605
  ),
4393
- children: title
4606
+ children: title || mergedLabels.title
4394
4607
  }
4395
4608
  ),
4396
4609
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.DialogContent, { className: styles.content, children: [
@@ -4401,7 +4614,7 @@ var ModalSelectDate = ({
4401
4614
  disabled: activeTab === "round-trip",
4402
4615
  className: `${styles.tab} ${activeTab === "one-way" ? styles.tabActive : ""}`,
4403
4616
  onClick: () => handleTabChange("one-way"),
4404
- children: "Sekali Jalan"
4617
+ children: mergedLabels.oneWay
4405
4618
  }
4406
4619
  ),
4407
4620
  showRoundtrip && /* @__PURE__ */ jsxRuntime.jsx(
@@ -4410,32 +4623,38 @@ var ModalSelectDate = ({
4410
4623
  className: `${styles.tab} ${activeTab === "round-trip" ? styles.tabActive : ""}`,
4411
4624
  onClick: () => handleTabChange("round-trip"),
4412
4625
  disabled: activeTab === "one-way",
4413
- children: "Pulang Pergi"
4626
+ children: mergedLabels.roundTrip
4414
4627
  }
4415
4628
  )
4416
4629
  ] }),
4417
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.calendarContainer, children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { width: "100%" }, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: activeTab === "round-trip" ? styles.rangeCalendar : "", children: /* @__PURE__ */ jsxRuntime.jsx(
4418
- reactCalendarCompat.Calendar,
4630
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.calendarContainer, children: /* @__PURE__ */ jsxRuntime.jsx("div", { style: { width: "100%" }, children: /* @__PURE__ */ jsxRuntime.jsx(
4631
+ "div",
4419
4632
  {
4420
- minDate,
4421
- maxDate,
4422
- value: selectedDate,
4423
- onSelectDate: handleDateSelect,
4424
- showGoToToday: true,
4425
- highlightSelectedMonth: true,
4426
- showMonthPickerAsOverlay: false,
4427
- allFocusable: true,
4428
- calendarDayProps: {
4429
- customDayCellRef: handleCustomDayCellRef
4430
- }
4633
+ className: activeTab === "round-trip" ? styles.rangeCalendar : "",
4634
+ children: /* @__PURE__ */ jsxRuntime.jsx(
4635
+ reactCalendarCompat.Calendar,
4636
+ {
4637
+ minDate,
4638
+ maxDate,
4639
+ value: selectedDate,
4640
+ onSelectDate: handleDateSelect,
4641
+ showGoToToday: true,
4642
+ highlightSelectedMonth: true,
4643
+ showMonthPickerAsOverlay: false,
4644
+ allFocusable: true,
4645
+ calendarDayProps: {
4646
+ customDayCellRef: handleCustomDayCellRef
4647
+ }
4648
+ }
4649
+ )
4431
4650
  }
4432
- ) }) }) })
4651
+ ) }) })
4433
4652
  ] })
4434
4653
  ] }) })
4435
4654
  }
4436
4655
  );
4437
4656
  };
4438
- var useStyles11 = reactComponents.makeStyles({
4657
+ var useStyles12 = reactComponents.makeStyles({
4439
4658
  dialogSurface: {
4440
4659
  maxWidth: "600px",
4441
4660
  width: "100%"
@@ -4518,7 +4737,7 @@ var ModalService = ({
4518
4737
  isLoading = false,
4519
4738
  isError = false
4520
4739
  }) => {
4521
- const styles = useStyles11();
4740
+ const styles = useStyles12();
4522
4741
  const [selectedServices, setSelectedServices] = React5.useState(selectedServiceIds);
4523
4742
  React5.useEffect(() => {
4524
4743
  if (open) {
@@ -4627,13 +4846,33 @@ var ModalService = ({
4627
4846
  );
4628
4847
  };
4629
4848
 
4630
- // src/components/ModalTotalPassengers/constants.ts
4849
+ // src/components/ModalTotalPassengers/ModalTotalPassengers.constants.ts
4850
+ var DEFAULT_LABELS7 = {
4851
+ id: {
4852
+ title: "Pilih Jumlah Penumpang",
4853
+ infoMessage: "Anda dapat menambahkan hingga {maxPassengers} penumpang pada golongan kendaraan ini.",
4854
+ loading: "Memuat...",
4855
+ saveButton: "Simpan",
4856
+ economy: "Ekonomi",
4857
+ business: "Bisnis",
4858
+ executive: "Eksekutif"
4859
+ },
4860
+ en: {
4861
+ title: "Select Total Passengers",
4862
+ infoMessage: "You can add up to {maxPassengers} passengers in this vehicle category.",
4863
+ loading: "Loading...",
4864
+ saveButton: "Save",
4865
+ economy: "Economy",
4866
+ business: "Business",
4867
+ executive: "Executive"
4868
+ }
4869
+ };
4631
4870
  var DEFAULT_SERVICE_CLASSES = [
4632
- { id: 1, name: "Ekonomi", key: "ekonomi", serviceName: "ECONOMY" },
4633
- { id: 2, name: "Bisnis", key: "bisnis", serviceName: "BUSINESS" },
4634
- { id: 3, name: "Eksekutif", key: "eksekutif", serviceName: "EXECUTIVE" }
4871
+ { id: 1, name: "Ekonomi", key: "ekonomi", serviceName: "ECONOMY", labelKey: "economy" },
4872
+ { id: 2, name: "Bisnis", key: "bisnis", serviceName: "BUSINESS", labelKey: "business" },
4873
+ { id: 3, name: "Eksekutif", key: "eksekutif", serviceName: "EXECUTIVE", labelKey: "executive" }
4635
4874
  ];
4636
- var useStyles12 = reactComponents.makeStyles({
4875
+ var useStyles13 = reactComponents.makeStyles({
4637
4876
  dialogSurface: {
4638
4877
  maxWidth: "600px",
4639
4878
  width: "100%"
@@ -4701,9 +4940,11 @@ var useStyles12 = reactComponents.makeStyles({
4701
4940
  }
4702
4941
  });
4703
4942
  var ModalTotalPassengers = ({
4943
+ language = "id",
4944
+ labels,
4704
4945
  open,
4705
4946
  onClose,
4706
- title = "Pilih Jumlah Penumpang",
4947
+ title,
4707
4948
  passengerTypes,
4708
4949
  serviceClasses = DEFAULT_SERVICE_CLASSES,
4709
4950
  selectedPassengers,
@@ -4712,10 +4953,14 @@ var ModalTotalPassengers = ({
4712
4953
  maxPassengers = 10,
4713
4954
  infoMessage
4714
4955
  }) => {
4715
- const styles = useStyles12();
4956
+ const styles = useStyles13();
4957
+ const mergedLabels = { ...DEFAULT_LABELS7[language], ...labels };
4716
4958
  const [passengers, setPassengers] = React5.useState([]);
4717
4959
  const [openItems, setOpenItems] = React5.useState([]);
4718
- const defaultInfoMessage = `Anda dapat menambahkan hingga ${maxPassengers} penumpang pada golongan kendaraan ini.`;
4960
+ const defaultInfoMessage = mergedLabels.infoMessage.replace(
4961
+ "{maxPassengers}",
4962
+ String(maxPassengers)
4963
+ );
4719
4964
  React5.useEffect(() => {
4720
4965
  if (passengerTypes.length === 0) return;
4721
4966
  const defaultPassengers = passengerTypes.map(
@@ -4785,7 +5030,7 @@ var ModalTotalPassengers = ({
4785
5030
  const serviceClass = serviceClasses.find(
4786
5031
  (sc) => sc.serviceName === service.serviceName
4787
5032
  );
4788
- const serviceName = serviceClass?.name || service.serviceName;
5033
+ const serviceName = serviceClass ? mergedLabels[serviceClass.labelKey] : service.serviceName;
4789
5034
  parts.push(`${service.count} ${serviceName}`);
4790
5035
  }
4791
5036
  });
@@ -4865,12 +5110,12 @@ var ModalTotalPassengers = ({
4865
5110
  onClick: onClose
4866
5111
  }
4867
5112
  ),
4868
- children: title
5113
+ children: title || mergedLabels.title
4869
5114
  }
4870
5115
  ),
4871
5116
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.DialogContent, { children: [
4872
5117
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.MessageBar, { shape: "rounded", children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.MessageBarBody, { children: infoMessage || defaultInfoMessage }) }),
4873
- isLoading ? /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: "Loading..." }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5118
+ isLoading ? /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: mergedLabels.loading }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4874
5119
  /* @__PURE__ */ jsxRuntime.jsx(
4875
5120
  reactComponents.Accordion,
4876
5121
  {
@@ -4904,7 +5149,7 @@ var ModalTotalPassengers = ({
4904
5149
  {
4905
5150
  className: styles.nestedRow,
4906
5151
  children: [
4907
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: service.name }),
5152
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: mergedLabels[service.labelKey] }),
4908
5153
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.passengerCount, children: [
4909
5154
  /* @__PURE__ */ jsxRuntime.jsx(
4910
5155
  reactComponents.Button,
@@ -4965,23 +5210,51 @@ var ModalTotalPassengers = ({
4965
5210
  size: "medium",
4966
5211
  className: styles.submitButton,
4967
5212
  onClick: handleSave,
4968
- children: "Simpan"
5213
+ children: mergedLabels.saveButton
4969
5214
  }
4970
5215
  )
4971
5216
  ] })
4972
5217
  ] })
4973
5218
  ] }) }) });
4974
5219
  };
4975
- var useStyles13 = reactComponents.makeStyles({
4976
- dialogSurface: {
4977
- maxWidth: "600px",
4978
- width: "100%"
4979
- },
4980
- closeButton: {
4981
- minWidth: "32px",
4982
- minHeight: "32px"
5220
+
5221
+ // src/components/ModalTypeOfService/ModalTypeOfService.constants.ts
5222
+ var DEFAULT_LABELS8 = {
5223
+ id: {
5224
+ title: "Pilih Tipe Layanan",
5225
+ cancelButton: "Batal",
5226
+ saveButton: "Simpan",
5227
+ vehiclesAlt: "kendaraan"
4983
5228
  },
4984
- passengerSection: {
5229
+ en: {
5230
+ title: "Select Service Type",
5231
+ cancelButton: "Cancel",
5232
+ saveButton: "Save",
5233
+ vehiclesAlt: "vehicles"
5234
+ }
5235
+ };
5236
+ var DEFAULT_VEHICLE_ICONS = {
5237
+ pedestrian: "/assets/images/icons/pedestrian.webp",
5238
+ roadbike: "/assets/images/icons/roadbike.webp",
5239
+ motorbike1: "/assets/images/icons/motorbike-1.webp",
5240
+ motorbike2: "/assets/images/icons/motorbike-2.svg",
5241
+ smallCar: "/assets/images/icons/small-car.webp",
5242
+ smallBus: "/assets/images/icons/small-bus.webp",
5243
+ bigBus: "/assets/images/icons/big-bus.webp",
5244
+ truck: "/assets/images/icons/truck.webp",
5245
+ bigTruck: "/assets/images/icons/big-truck.webp",
5246
+ looseLoad: "/assets/images/icons/loose-load.webp"
5247
+ };
5248
+ var useStyles14 = reactComponents.makeStyles({
5249
+ dialogSurface: {
5250
+ maxWidth: "600px",
5251
+ width: "100%"
5252
+ },
5253
+ closeButton: {
5254
+ minWidth: "32px",
5255
+ minHeight: "32px"
5256
+ },
5257
+ passengerSection: {
4985
5258
  marginTop: reactComponents.tokens.spacingHorizontalM,
4986
5259
  display: "flex",
4987
5260
  flexDirection: "column"
@@ -5016,15 +5289,18 @@ var useStyles13 = reactComponents.makeStyles({
5016
5289
  }
5017
5290
  });
5018
5291
  var ModalTypeOfService = ({
5292
+ language = "id",
5293
+ labels,
5019
5294
  open,
5020
5295
  onClose,
5021
- title = "Pilih Tipe Layanan",
5296
+ title,
5022
5297
  serviceTypes,
5023
5298
  selectedService,
5024
5299
  onSave,
5025
5300
  renderImage
5026
5301
  }) => {
5027
- const styles = useStyles13();
5302
+ const styles = useStyles14();
5303
+ const mergedLabels = { ...DEFAULT_LABELS8[language], ...labels };
5028
5304
  const [selectedServiceTitle, setSelectedServiceTitle] = React5.useState(
5029
5305
  selectedService?.title || ""
5030
5306
  );
@@ -5042,7 +5318,21 @@ var ModalTypeOfService = ({
5042
5318
  }
5043
5319
  return void 0;
5044
5320
  });
5045
- const defaultRenderImage = ({ src, alt, width, height }) => /* @__PURE__ */ jsxRuntime.jsx("img", { src, alt, width, height, style: { objectFit: "contain" } });
5321
+ const defaultRenderImage = ({
5322
+ src,
5323
+ alt,
5324
+ width,
5325
+ height
5326
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
5327
+ "img",
5328
+ {
5329
+ src,
5330
+ alt,
5331
+ width,
5332
+ height,
5333
+ style: { objectFit: "contain" }
5334
+ }
5335
+ );
5046
5336
  const imageRenderer = renderImage || defaultRenderImage;
5047
5337
  React5.useEffect(() => {
5048
5338
  const newTitle = selectedService?.title || "";
@@ -5085,7 +5375,9 @@ var ModalTypeOfService = ({
5085
5375
  break;
5086
5376
  }
5087
5377
  if (item.child && item.child.length > 0) {
5088
- const childItem = item.child.find((child) => child.title === selectedServiceTitle);
5378
+ const childItem = item.child.find(
5379
+ (child) => child.title === selectedServiceTitle
5380
+ );
5089
5381
  if (childItem) {
5090
5382
  selectedItem = {
5091
5383
  id: childItem.id,
@@ -5108,51 +5400,56 @@ var ModalTypeOfService = ({
5108
5400
  }
5109
5401
  }
5110
5402
  };
5111
- return /* @__PURE__ */ jsxRuntime.jsx(
5112
- reactComponents.Dialog,
5113
- {
5114
- open,
5115
- onOpenChange: (_, data) => !data.open && onClose(),
5116
- children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.DialogSurface, { className: styles.dialogSurface, children: /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.DialogBody, { children: [
5117
- /* @__PURE__ */ jsxRuntime.jsx(
5118
- reactComponents.DialogTitle,
5403
+ return /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Dialog, { open, onOpenChange: (_, data) => !data.open && onClose(), children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.DialogSurface, { className: styles.dialogSurface, children: /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.DialogBody, { children: [
5404
+ /* @__PURE__ */ jsxRuntime.jsx(
5405
+ reactComponents.DialogTitle,
5406
+ {
5407
+ action: /* @__PURE__ */ jsxRuntime.jsx(
5408
+ reactComponents.Button,
5119
5409
  {
5120
- action: /* @__PURE__ */ jsxRuntime.jsx(
5121
- reactComponents.Button,
5122
- {
5123
- appearance: "subtle",
5124
- "aria-label": "close",
5125
- icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:dismiss-24-regular" }),
5126
- onClick: onClose,
5127
- className: styles.closeButton
5128
- }
5129
- ),
5130
- children: title
5410
+ appearance: "subtle",
5411
+ "aria-label": "close",
5412
+ icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:dismiss-24-regular" }),
5413
+ onClick: onClose,
5414
+ className: styles.closeButton
5131
5415
  }
5132
5416
  ),
5133
- /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.DialogContent, { children: [
5134
- /* @__PURE__ */ jsxRuntime.jsx(
5135
- reactComponents.Accordion,
5417
+ children: title || mergedLabels.title
5418
+ }
5419
+ ),
5420
+ /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.DialogContent, { children: [
5421
+ /* @__PURE__ */ jsxRuntime.jsx(
5422
+ reactComponents.Accordion,
5423
+ {
5424
+ collapsible: true,
5425
+ openItems,
5426
+ onToggle: (_, data) => setOpenItems(data.openItems[0]),
5427
+ className: styles.passengerSection,
5428
+ children: /* @__PURE__ */ jsxRuntime.jsx(
5429
+ reactComponents.RadioGroup,
5136
5430
  {
5137
- collapsible: true,
5138
- openItems,
5139
- onToggle: (_, data) => setOpenItems(data.openItems[0]),
5140
- className: styles.passengerSection,
5141
- children: /* @__PURE__ */ jsxRuntime.jsx(
5142
- reactComponents.RadioGroup,
5143
- {
5144
- value: selectedServiceTitle,
5145
- onChange: (_, data) => setSelectedServiceTitle(data.value),
5146
- children: serviceTypes.map((item, index) => {
5147
- if (item.type === "accordion") {
5148
- return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.AccordionItem, { value: item.id, className: styles.accordionItem, children: [
5431
+ value: selectedServiceTitle,
5432
+ onChange: (_, data) => setSelectedServiceTitle(data.value),
5433
+ children: serviceTypes.map((item, index) => {
5434
+ if (item.type === "accordion") {
5435
+ return /* @__PURE__ */ jsxRuntime.jsxs(
5436
+ reactComponents.AccordionItem,
5437
+ {
5438
+ value: item.id,
5439
+ className: styles.accordionItem,
5440
+ children: [
5149
5441
  /* @__PURE__ */ jsxRuntime.jsxs(
5150
5442
  reactComponents.AccordionHeader,
5151
5443
  {
5152
5444
  className: styles.accordionHeader,
5153
5445
  expandIconPosition: "end",
5154
5446
  children: [
5155
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: imageRenderer({ src: item.image, alt: "vehicles", width: 74, height: 74 }) }),
5447
+ /* @__PURE__ */ jsxRuntime.jsx("div", { children: imageRenderer({
5448
+ src: item.image,
5449
+ alt: mergedLabels.vehiclesAlt,
5450
+ width: 74,
5451
+ height: 74
5452
+ }) }),
5156
5453
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.accordionTitleAndInfo, children: [
5157
5454
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: item.title }),
5158
5455
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { children: item.info })
@@ -5184,62 +5481,64 @@ var ModalTypeOfService = ({
5184
5481
  },
5185
5482
  childIndex
5186
5483
  )) })
5187
- ] }, index);
5188
- } else if (item.type === "radio") {
5189
- return /* @__PURE__ */ jsxRuntime.jsxs(
5190
- "div",
5191
- {
5192
- className: reactComponents.mergeClasses(styles.accordionHeader, styles.accordionItem),
5193
- style: { padding: reactComponents.tokens.spacingHorizontalXS },
5194
- children: [
5195
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginLeft: 2 }, children: imageRenderer({ src: item.image, alt: item.title, width: 74, height: 74 }) }),
5196
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.accordionTitleAndInfo, style: { marginLeft: 18 }, children: [
5484
+ ]
5485
+ },
5486
+ index
5487
+ );
5488
+ } else if (item.type === "radio") {
5489
+ return /* @__PURE__ */ jsxRuntime.jsxs(
5490
+ "div",
5491
+ {
5492
+ className: reactComponents.mergeClasses(
5493
+ styles.accordionHeader,
5494
+ styles.accordionItem
5495
+ ),
5496
+ style: { padding: reactComponents.tokens.spacingHorizontalXS },
5497
+ children: [
5498
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginLeft: 2 }, children: imageRenderer({
5499
+ src: item.image,
5500
+ alt: item.title,
5501
+ width: 74,
5502
+ height: 74
5503
+ }) }),
5504
+ /* @__PURE__ */ jsxRuntime.jsxs(
5505
+ "div",
5506
+ {
5507
+ className: styles.accordionTitleAndInfo,
5508
+ style: { marginLeft: 18 },
5509
+ children: [
5197
5510
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: item.title }),
5198
5511
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { children: item.info })
5199
- ] }),
5200
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Radio, { value: item.title })
5201
- ]
5202
- },
5203
- index
5204
- );
5205
- }
5206
- return null;
5207
- })
5512
+ ]
5513
+ }
5514
+ ),
5515
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Radio, { value: item.title })
5516
+ ]
5517
+ },
5518
+ index
5519
+ );
5208
5520
  }
5209
- )
5521
+ return null;
5522
+ })
5210
5523
  }
5211
- ),
5212
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.footer, children: [
5213
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Button, { appearance: "secondary", shape: "circular", onClick: onClose, children: "Batal" }),
5214
- /* @__PURE__ */ jsxRuntime.jsx(
5215
- reactComponents.Button,
5216
- {
5217
- appearance: "primary",
5218
- shape: "circular",
5219
- onClick: handleConfirm,
5220
- disabled: !selectedServiceTitle,
5221
- children: "Simpan"
5222
- }
5223
- )
5224
- ] })
5225
- ] })
5226
- ] }) })
5227
- }
5228
- );
5229
- };
5230
-
5231
- // src/components/ModalTypeOfService/constants.ts
5232
- var DEFAULT_VEHICLE_ICONS = {
5233
- pedestrian: "/assets/images/icons/pedestrian.webp",
5234
- roadbike: "/assets/images/icons/roadbike.webp",
5235
- motorbike1: "/assets/images/icons/motorbike-1.webp",
5236
- motorbike2: "/assets/images/icons/motorbike-2.svg",
5237
- smallCar: "/assets/images/icons/small-car.webp",
5238
- smallBus: "/assets/images/icons/small-bus.webp",
5239
- bigBus: "/assets/images/icons/big-bus.webp",
5240
- truck: "/assets/images/icons/truck.webp",
5241
- bigTruck: "/assets/images/icons/big-truck.webp",
5242
- looseLoad: "/assets/images/icons/loose-load.webp"
5524
+ )
5525
+ }
5526
+ ),
5527
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.footer, children: [
5528
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Button, { appearance: "secondary", shape: "circular", onClick: onClose, children: mergedLabels.cancelButton }),
5529
+ /* @__PURE__ */ jsxRuntime.jsx(
5530
+ reactComponents.Button,
5531
+ {
5532
+ appearance: "primary",
5533
+ shape: "circular",
5534
+ onClick: handleConfirm,
5535
+ disabled: !selectedServiceTitle,
5536
+ children: mergedLabels.saveButton
5537
+ }
5538
+ )
5539
+ ] })
5540
+ ] })
5541
+ ] }) }) });
5243
5542
  };
5244
5543
 
5245
5544
  // src/components/SortMenu/SortMenu.constants.ts
@@ -5254,7 +5553,7 @@ var getSortLabel = (value) => {
5254
5553
  const option = DEFAULT_SORT_OPTIONS.find((opt) => opt.value === value);
5255
5554
  return option?.label || "Rekomendasi";
5256
5555
  };
5257
- var useStyles14 = reactComponents.makeStyles({
5556
+ var useStyles15 = reactComponents.makeStyles({
5258
5557
  container: {
5259
5558
  display: "flex",
5260
5559
  width: "100%",
@@ -5288,7 +5587,7 @@ var SortMenu = ({
5288
5587
  sortButtonText = "Urutkan Berdasarkan",
5289
5588
  clearFiltersText = "{count} Filter Dipilih"
5290
5589
  }) => {
5291
- const styles = useStyles14();
5590
+ const styles = useStyles15();
5292
5591
  const handleReset = () => {
5293
5592
  onChange("rekomendasi");
5294
5593
  };
@@ -5354,20 +5653,37 @@ var SortMenu = ({
5354
5653
  };
5355
5654
 
5356
5655
  // src/components/ModalFilterTicket/ModalFilterTicket.constants.ts
5357
- var DEFAULT_LABELS3 = {
5358
- title: "Filter dengan",
5359
- serviceTypeLabel: "Jenis Layanan",
5360
- departureTimeLabel: "Waktu pergi",
5361
- arrivalTimeLabel: "Waktu tiba",
5362
- priceLabel: "Harga",
5363
- priceRangeText: (min, max) => {
5364
- const formatPrice = (price) => new Intl.NumberFormat("id-ID").format(price);
5365
- return `Mulai dari IDR ${formatPrice(min)} - ${formatPrice(max)}`;
5366
- },
5367
- durationLabel: "Durasi perjalanan",
5368
- durationRangeText: (min, max) => `Perjalanan ${min} - ${max} jam`,
5369
- resetButton: "Reset",
5370
- applyButton: "Terapkan"
5656
+ var DEFAULT_LABELS9 = {
5657
+ id: {
5658
+ title: "Filter dengan",
5659
+ serviceTypeLabel: "Jenis Layanan",
5660
+ departureTimeLabel: "Waktu pergi",
5661
+ arrivalTimeLabel: "Waktu tiba",
5662
+ priceLabel: "Harga",
5663
+ priceRangeText: (min, max) => {
5664
+ const formatPrice = (price) => new Intl.NumberFormat("id-ID").format(price);
5665
+ return `Mulai dari IDR ${formatPrice(min)} - ${formatPrice(max)}`;
5666
+ },
5667
+ durationLabel: "Durasi perjalanan",
5668
+ durationRangeText: (min, max) => `Perjalanan ${min} - ${max} jam`,
5669
+ resetButton: "Reset",
5670
+ applyButton: "Terapkan"
5671
+ },
5672
+ en: {
5673
+ title: "Filter by",
5674
+ serviceTypeLabel: "Service Type",
5675
+ departureTimeLabel: "Departure time",
5676
+ arrivalTimeLabel: "Arrival time",
5677
+ priceLabel: "Price",
5678
+ priceRangeText: (min, max) => {
5679
+ const formatPrice = (price) => new Intl.NumberFormat("en-US").format(price);
5680
+ return `From IDR ${formatPrice(min)} - ${formatPrice(max)}`;
5681
+ },
5682
+ durationLabel: "Travel duration",
5683
+ durationRangeText: (min, max) => `${min} - ${max} hours trip`,
5684
+ resetButton: "Reset",
5685
+ applyButton: "Apply"
5686
+ }
5371
5687
  };
5372
5688
  var DEFAULT_SERVICE_TYPES = [
5373
5689
  { value: "ropax-regular", label: "Ropax Regular" },
@@ -5392,7 +5708,7 @@ var DEFAULT_DURATION_RANGE = {
5392
5708
  min: 0,
5393
5709
  max: 8
5394
5710
  };
5395
- var useStyles15 = reactComponents.makeStyles({
5711
+ var useStyles16 = reactComponents.makeStyles({
5396
5712
  dialogSurface: {
5397
5713
  maxWidth: "600px",
5398
5714
  width: "100%"
@@ -5431,7 +5747,10 @@ var useStyles15 = reactComponents.makeStyles({
5431
5747
  display: "flex",
5432
5748
  flexDirection: "column",
5433
5749
  gap: reactComponents.tokens.spacingVerticalS,
5434
- ...reactComponents.shorthands.padding(reactComponents.tokens.spacingHorizontalNone, reactComponents.tokens.spacingHorizontalSNudge)
5750
+ ...reactComponents.shorthands.padding(
5751
+ reactComponents.tokens.spacingHorizontalNone,
5752
+ reactComponents.tokens.spacingHorizontalSNudge
5753
+ )
5435
5754
  },
5436
5755
  sliderValues: {
5437
5756
  display: "flex",
@@ -5475,6 +5794,7 @@ var useStyles15 = reactComponents.makeStyles({
5475
5794
  }
5476
5795
  });
5477
5796
  var ModalFilterTicket = ({
5797
+ language = "id",
5478
5798
  open,
5479
5799
  onOpenChange,
5480
5800
  selectedServiceTypes,
@@ -5497,8 +5817,8 @@ var ModalFilterTicket = ({
5497
5817
  minDuration = DEFAULT_DURATION_RANGE.min,
5498
5818
  maxDuration = DEFAULT_DURATION_RANGE.max
5499
5819
  }) => {
5500
- const styles = useStyles15();
5501
- const mergedLabels = { ...DEFAULT_LABELS3, ...labels };
5820
+ const styles = useStyles16();
5821
+ const mergedLabels = { ...DEFAULT_LABELS9[language], ...labels };
5502
5822
  const [rangeReady, setRangeReady] = React5.useState(false);
5503
5823
  React5.useEffect(() => {
5504
5824
  if (open) {
@@ -5653,7 +5973,9 @@ var ModalFilterTicket = ({
5653
5973
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.section, children: [
5654
5974
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: mergedLabels.serviceTypeLabel }),
5655
5975
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.buttonGrid, children: serviceTypes.map((service) => {
5656
- const isSelected = selectedServiceTypes.includes(service.value);
5976
+ const isSelected = selectedServiceTypes.includes(
5977
+ service.value
5978
+ );
5657
5979
  return /* @__PURE__ */ jsxRuntime.jsx(
5658
5980
  reactComponents.Button,
5659
5981
  {
@@ -5671,26 +5993,58 @@ var ModalFilterTicket = ({
5671
5993
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, {}),
5672
5994
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.section, children: [
5673
5995
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: mergedLabels.departureTimeLabel }),
5674
- /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Row, { children: timeSlots.map((slot) => /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: 6, sm: 6, md: 6, lg: 3, xl: 3, xxl: 3, xxxl: 3, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.checkboxWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(
5675
- reactComponents.Checkbox,
5996
+ /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Row, { children: timeSlots.map((slot) => /* @__PURE__ */ jsxRuntime.jsx(
5997
+ reactGridSystem.Col,
5676
5998
  {
5677
- label: slot.label,
5678
- checked: departureTime.includes(slot.value),
5679
- onChange: (_, data) => handleDepartureTimeChange(slot.value, data.checked)
5680
- }
5681
- ) }) }, slot.value)) })
5999
+ xs: 6,
6000
+ sm: 6,
6001
+ md: 6,
6002
+ lg: 3,
6003
+ xl: 3,
6004
+ xxl: 3,
6005
+ xxxl: 3,
6006
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.checkboxWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(
6007
+ reactComponents.Checkbox,
6008
+ {
6009
+ label: slot.label,
6010
+ checked: departureTime.includes(slot.value),
6011
+ onChange: (_, data) => handleDepartureTimeChange(
6012
+ slot.value,
6013
+ data.checked
6014
+ )
6015
+ }
6016
+ ) })
6017
+ },
6018
+ slot.value
6019
+ )) })
5682
6020
  ] }),
5683
6021
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, {}),
5684
6022
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.section, children: [
5685
6023
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: mergedLabels.arrivalTimeLabel }),
5686
- /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Row, { children: timeSlots.map((slot) => /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: 6, sm: 6, md: 6, lg: 3, xl: 3, xxl: 3, xxxl: 3, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.checkboxWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(
5687
- reactComponents.Checkbox,
6024
+ /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Row, { children: timeSlots.map((slot) => /* @__PURE__ */ jsxRuntime.jsx(
6025
+ reactGridSystem.Col,
5688
6026
  {
5689
- label: slot.label,
5690
- checked: arrivalTime.includes(slot.value),
5691
- onChange: (_, data) => handleArrivalTimeChange(slot.value, data.checked)
5692
- }
5693
- ) }) }, slot.value)) })
6027
+ xs: 6,
6028
+ sm: 6,
6029
+ md: 6,
6030
+ lg: 3,
6031
+ xl: 3,
6032
+ xxl: 3,
6033
+ xxxl: 3,
6034
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.checkboxWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(
6035
+ reactComponents.Checkbox,
6036
+ {
6037
+ label: slot.label,
6038
+ checked: arrivalTime.includes(slot.value),
6039
+ onChange: (_, data) => handleArrivalTimeChange(
6040
+ slot.value,
6041
+ data.checked
6042
+ )
6043
+ }
6044
+ ) })
6045
+ },
6046
+ slot.value
6047
+ )) })
5694
6048
  ] }),
5695
6049
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, {}),
5696
6050
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.containerRange, children: [
@@ -5721,7 +6075,10 @@ var ModalFilterTicket = ({
5721
6075
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.containerRange, children: [
5722
6076
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.spaceText, children: [
5723
6077
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { children: mergedLabels.durationLabel }),
5724
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: mergedLabels.durationRangeText(durationRange[0], durationRange[1]) })
6078
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: mergedLabels.durationRangeText(
6079
+ durationRange[0],
6080
+ durationRange[1]
6081
+ ) })
5725
6082
  ] }),
5726
6083
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.sliderContainer, children: [
5727
6084
  rangeReady && /* @__PURE__ */ jsxRuntime.jsx(
@@ -5767,13 +6124,13 @@ var ModalFilterTicket = ({
5767
6124
  };
5768
6125
 
5769
6126
  // src/components/DateFilter/DateFilter.constants.ts
5770
- var DEFAULT_LABELS4 = {
6127
+ var DEFAULT_LABELS10 = {
5771
6128
  prevButtonAriaLabel: "Previous dates",
5772
6129
  nextButtonAriaLabel: "Next dates",
5773
6130
  calendarButtonAriaLabel: "Open calendar"
5774
6131
  };
5775
6132
  var DEFAULT_SCROLL_AMOUNT = 150;
5776
- var useStyles16 = reactComponents.makeStyles({
6133
+ var useStyles17 = reactComponents.makeStyles({
5777
6134
  container: {
5778
6135
  display: "flex",
5779
6136
  alignItems: "stretch",
@@ -5854,9 +6211,9 @@ var DateFilter = ({
5854
6211
  scrollAmount = DEFAULT_SCROLL_AMOUNT,
5855
6212
  labels
5856
6213
  }) => {
5857
- const styles = useStyles16();
6214
+ const styles = useStyles17();
5858
6215
  const scrollRef = React5.useRef(null);
5859
- const mergedLabels = { ...DEFAULT_LABELS4, ...labels };
6216
+ const mergedLabels = { ...DEFAULT_LABELS10, ...labels };
5860
6217
  const handlePrev = () => {
5861
6218
  scrollRef.current?.scrollBy({ left: -scrollAmount, behavior: "smooth" });
5862
6219
  };
@@ -5914,6 +6271,54 @@ var DateFilter = ({
5914
6271
  };
5915
6272
 
5916
6273
  // src/components/ModalSearchTicket/ModalSearchTicket.constants.ts
6274
+ var DEFAULT_LABELS11 = {
6275
+ id: {
6276
+ title: "Cari Jadwal Lainnya",
6277
+ fromLabel: "Dari",
6278
+ fromPlaceholder: "Pilih pelabuhan asal",
6279
+ fromRequired: "Pelabuhan asal wajib diisi",
6280
+ toLabel: "Ke",
6281
+ toPlaceholder: "Pilih pelabuhan tujuan",
6282
+ toRequired: "Pelabuhan tujuan wajib diisi",
6283
+ departureDateLabel: "Tanggal Berangkat",
6284
+ departureDatePlaceholder: "Pilih Tanggal Berangkat",
6285
+ departureDateRequired: "Tanggal Berangkat wajib diisi",
6286
+ roundTripLabel: "Pulang Pergi",
6287
+ returnDateLabel: "Tanggal Pulang",
6288
+ returnDatePlaceholder: "Pilih Tanggal Pulang",
6289
+ returnDateRequired: "Tanggal Pulang wajib diisi",
6290
+ serviceClassLabel: "Kelas Layanan",
6291
+ serviceClassPlaceholder: "Pilih Kelas Layanan",
6292
+ typeOfServiceLabel: "Jenis penumpang",
6293
+ typeOfServicePlaceholder: "Pilih Jenis penumpang",
6294
+ passengerLabel: "Penumpang",
6295
+ passengerPlaceholder: "Pilih Penumpang",
6296
+ searchButton: "Cari Tiket"
6297
+ },
6298
+ en: {
6299
+ title: "Search Other Schedules",
6300
+ fromLabel: "From",
6301
+ fromPlaceholder: "Select origin harbor",
6302
+ fromRequired: "Origin harbor is required",
6303
+ toLabel: "To",
6304
+ toPlaceholder: "Select destination harbor",
6305
+ toRequired: "Destination harbor is required",
6306
+ departureDateLabel: "Departure Date",
6307
+ departureDatePlaceholder: "Select Departure Date",
6308
+ departureDateRequired: "Departure date is required",
6309
+ roundTripLabel: "Round Trip",
6310
+ returnDateLabel: "Return Date",
6311
+ returnDatePlaceholder: "Select Return Date",
6312
+ returnDateRequired: "Return date is required",
6313
+ serviceClassLabel: "Service Class",
6314
+ serviceClassPlaceholder: "Select Service Class",
6315
+ typeOfServiceLabel: "Type of Passenger",
6316
+ typeOfServicePlaceholder: "Select Type of Passenger",
6317
+ passengerLabel: "Passenger",
6318
+ passengerPlaceholder: "Select Passenger",
6319
+ searchButton: "Search Ticket"
6320
+ }
6321
+ };
5917
6322
  var DEFAULT_FORM_VALUES = {
5918
6323
  from: "",
5919
6324
  to: "",
@@ -5924,7 +6329,7 @@ var DEFAULT_FORM_VALUES = {
5924
6329
  typeOfService: "",
5925
6330
  passenger: ""
5926
6331
  };
5927
- var useStyles17 = reactComponents.makeStyles({
6332
+ var useStyles18 = reactComponents.makeStyles({
5928
6333
  dialogSurface: {
5929
6334
  maxWidth: "900px",
5930
6335
  width: "100%"
@@ -5997,6 +6402,8 @@ var useStyles17 = reactComponents.makeStyles({
5997
6402
  }
5998
6403
  });
5999
6404
  var ModalSearchTicket = ({
6405
+ language = "id",
6406
+ labels,
6000
6407
  open,
6001
6408
  onClose,
6002
6409
  defaultValues,
@@ -6024,7 +6431,8 @@ var ModalSearchTicket = ({
6024
6431
  showRoundTrip = true,
6025
6432
  ...props
6026
6433
  }) => {
6027
- const styles = useStyles17();
6434
+ const styles = useStyles18();
6435
+ const mergedLabels = { ...DEFAULT_LABELS11[language], ...labels };
6028
6436
  const { control, setValue, handleSubmit, watch } = reactHookForm.useForm({
6029
6437
  defaultValues: {
6030
6438
  ...DEFAULT_FORM_VALUES,
@@ -6084,7 +6492,7 @@ var ModalSearchTicket = ({
6084
6492
  onClick: onClose
6085
6493
  }
6086
6494
  ),
6087
- children: "Cari Jadwal Lainnya"
6495
+ children: mergedLabels.title
6088
6496
  }
6089
6497
  ),
6090
6498
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.DialogContent, { className: styles.content, children: /* @__PURE__ */ jsxRuntime.jsx("form", { onSubmit: handleSubmit(onFormSubmit), children: /* @__PURE__ */ jsxRuntime.jsxs(reactGridSystem.Row, { style: { width: "100%" }, className: styles.formInnerRow, children: [
@@ -6105,7 +6513,7 @@ var ModalSearchTicket = ({
6105
6513
  InputDynamic_default,
6106
6514
  {
6107
6515
  name: "from",
6108
- label: "Dari",
6516
+ label: mergedLabels.fromLabel,
6109
6517
  control,
6110
6518
  type: "text",
6111
6519
  contentBefore: /* @__PURE__ */ jsxRuntime.jsx(
@@ -6117,11 +6525,11 @@ var ModalSearchTicket = ({
6117
6525
  ),
6118
6526
  appearance: "filled-lighter",
6119
6527
  size: "medium",
6120
- placeholder: "Pilih pelabuhan asal",
6528
+ placeholder: mergedLabels.fromPlaceholder,
6121
6529
  onClick: onSelectOrigin,
6122
6530
  onChange: handleFromChange,
6123
6531
  validationRules: {
6124
- required: "Pelabuhan asal wajib diisi"
6532
+ required: mergedLabels.fromRequired
6125
6533
  },
6126
6534
  required: true
6127
6535
  }
@@ -6173,7 +6581,7 @@ var ModalSearchTicket = ({
6173
6581
  InputDynamic_default,
6174
6582
  {
6175
6583
  name: "to",
6176
- label: "Ke",
6584
+ label: mergedLabels.toLabel,
6177
6585
  control,
6178
6586
  type: "text",
6179
6587
  contentBefore: /* @__PURE__ */ jsxRuntime.jsx(
@@ -6186,10 +6594,10 @@ var ModalSearchTicket = ({
6186
6594
  disabled: toDisabled,
6187
6595
  appearance: "filled-lighter",
6188
6596
  size: "medium",
6189
- placeholder: "Pilih pelabuhan tujuan",
6597
+ placeholder: mergedLabels.toPlaceholder,
6190
6598
  onClick: onSelectDestination,
6191
6599
  validationRules: {
6192
- required: "Pelabuhan tujuan wajib diisi"
6600
+ required: mergedLabels.toRequired
6193
6601
  },
6194
6602
  required: true
6195
6603
  }
@@ -6212,7 +6620,7 @@ var ModalSearchTicket = ({
6212
6620
  InputDynamic_default,
6213
6621
  {
6214
6622
  name: "startDate",
6215
- label: "Tanggal Berangkat",
6623
+ label: mergedLabels.departureDateLabel,
6216
6624
  control,
6217
6625
  type: "text",
6218
6626
  contentBefore: /* @__PURE__ */ jsxRuntime.jsx(
@@ -6224,11 +6632,11 @@ var ModalSearchTicket = ({
6224
6632
  ),
6225
6633
  appearance: "filled-lighter",
6226
6634
  size: "medium",
6227
- placeholder: "Pilih Tanggal Berangkat",
6635
+ placeholder: mergedLabels.departureDatePlaceholder,
6228
6636
  onClick: onSelectDepartureDate,
6229
6637
  required: true,
6230
6638
  validationRules: {
6231
- required: "Tanggal Berangkat wajib diisi"
6639
+ required: mergedLabels.departureDateRequired
6232
6640
  }
6233
6641
  }
6234
6642
  ) })
@@ -6249,7 +6657,7 @@ var ModalSearchTicket = ({
6249
6657
  InputDynamic_default,
6250
6658
  {
6251
6659
  name: "roundTrip",
6252
- label: "Pulang Pergi",
6660
+ label: mergedLabels.roundTripLabel,
6253
6661
  control,
6254
6662
  type: "switch",
6255
6663
  disabled: roundTripDisabled,
@@ -6272,7 +6680,7 @@ var ModalSearchTicket = ({
6272
6680
  InputDynamic_default,
6273
6681
  {
6274
6682
  name: "endDate",
6275
- label: "Tanggal Pulang",
6683
+ label: mergedLabels.returnDateLabel,
6276
6684
  control,
6277
6685
  type: "text",
6278
6686
  contentBefore: /* @__PURE__ */ jsxRuntime.jsx(
@@ -6284,13 +6692,13 @@ var ModalSearchTicket = ({
6284
6692
  ),
6285
6693
  appearance: "filled-lighter",
6286
6694
  size: "medium",
6287
- placeholder: "Pilih Tanggal Pulang",
6695
+ placeholder: mergedLabels.returnDatePlaceholder,
6288
6696
  onClick: onSelectReturnDate,
6289
6697
  disabled: endDateDisabled,
6290
6698
  style: { borderColor: "transparent" },
6291
6699
  required: roundTripValue,
6292
6700
  validationRules: {
6293
- required: "Tanggal Pulang wajib diisi"
6701
+ required: mergedLabels.returnDateRequired
6294
6702
  }
6295
6703
  }
6296
6704
  )
@@ -6340,7 +6748,7 @@ var ModalSearchTicket = ({
6340
6748
  InputDynamic_default,
6341
6749
  {
6342
6750
  name: "serviceClass",
6343
- label: "Kelas Layanan",
6751
+ label: mergedLabels.serviceClassLabel,
6344
6752
  control,
6345
6753
  type: "text",
6346
6754
  contentBefore: /* @__PURE__ */ jsxRuntime.jsx(
@@ -6352,7 +6760,7 @@ var ModalSearchTicket = ({
6352
6760
  ),
6353
6761
  appearance: "filled-lighter",
6354
6762
  size: "medium",
6355
- placeholder: "Pilih Kelas Layanan",
6763
+ placeholder: mergedLabels.serviceClassPlaceholder,
6356
6764
  onClick: onSelectServiceClass,
6357
6765
  required: true,
6358
6766
  disabled: serviceClassDisabled
@@ -6374,7 +6782,7 @@ var ModalSearchTicket = ({
6374
6782
  InputDynamic_default,
6375
6783
  {
6376
6784
  name: "typeOfService",
6377
- label: "Jenis penumpang",
6785
+ label: mergedLabels.typeOfServiceLabel,
6378
6786
  control,
6379
6787
  type: "text",
6380
6788
  contentBefore: /* @__PURE__ */ jsxRuntime.jsx(
@@ -6386,7 +6794,7 @@ var ModalSearchTicket = ({
6386
6794
  ),
6387
6795
  appearance: "filled-lighter",
6388
6796
  size: "medium",
6389
- placeholder: "Pilih Jenis penumpang",
6797
+ placeholder: mergedLabels.typeOfServicePlaceholder,
6390
6798
  onClick: onSelectTypeOfService,
6391
6799
  required: true,
6392
6800
  disabled: typeOfServiceDisabled
@@ -6409,7 +6817,7 @@ var ModalSearchTicket = ({
6409
6817
  {
6410
6818
  required: true,
6411
6819
  name: "passenger",
6412
- label: "Penumpang",
6820
+ label: mergedLabels.passengerLabel,
6413
6821
  control,
6414
6822
  type: "text",
6415
6823
  contentBefore: /* @__PURE__ */ jsxRuntime.jsx(
@@ -6421,7 +6829,7 @@ var ModalSearchTicket = ({
6421
6829
  ),
6422
6830
  appearance: "filled-lighter",
6423
6831
  size: "medium",
6424
- placeholder: "Pilih Penumpang",
6832
+ placeholder: mergedLabels.passengerPlaceholder,
6425
6833
  onClick: onSelectPassenger
6426
6834
  }
6427
6835
  )
@@ -6449,7 +6857,7 @@ var ModalSearchTicket = ({
6449
6857
  type: "submit",
6450
6858
  icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:vehicle-ship-20-filled" }),
6451
6859
  disabled: isSubmitDisabled,
6452
- children: "Cari Tiket"
6860
+ children: mergedLabels.searchButton
6453
6861
  }
6454
6862
  )
6455
6863
  }
@@ -6459,7 +6867,7 @@ var ModalSearchTicket = ({
6459
6867
  }
6460
6868
  );
6461
6869
  };
6462
- var useStyles18 = reactComponents.makeStyles({
6870
+ var useStyles19 = reactComponents.makeStyles({
6463
6871
  stepperWrapper: {
6464
6872
  position: "relative",
6465
6873
  width: "100%",
@@ -6582,7 +6990,7 @@ var Stepper = ({
6582
6990
  currentStep,
6583
6991
  className
6584
6992
  }) => {
6585
- const styles = useStyles18();
6993
+ const styles = useStyles19();
6586
6994
  const currentStepIndex = React5.useMemo(() => {
6587
6995
  if (typeof currentStep === "number") {
6588
6996
  return steps.findIndex((step) => step.number === currentStep);
@@ -6635,7 +7043,23 @@ var Stepper = ({
6635
7043
  ] }, step.id)) })
6636
7044
  ] }) });
6637
7045
  };
6638
- var useStyles19 = reactComponents.makeStyles({
7046
+
7047
+ // src/components/CardOrdererInfo/CardOrdererInfo.constants.ts
7048
+ var DEFAULT_LABELS12 = {
7049
+ id: {
7050
+ title: "Informasi Pemesan",
7051
+ ordererName: "Nama Pemesan",
7052
+ phoneNumber: "Nomor Handphone",
7053
+ email: "Email"
7054
+ },
7055
+ en: {
7056
+ title: "Orderer Information",
7057
+ ordererName: "Orderer Name",
7058
+ phoneNumber: "Phone Number",
7059
+ email: "Email"
7060
+ }
7061
+ };
7062
+ var useStyles20 = reactComponents.makeStyles({
6639
7063
  card: {
6640
7064
  padding: "1.5rem",
6641
7065
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -6660,29 +7084,32 @@ var useStyles19 = reactComponents.makeStyles({
6660
7084
  }
6661
7085
  });
6662
7086
  var CardOrdererInfo = ({
7087
+ language = "id",
6663
7088
  orderer,
7089
+ labels,
6664
7090
  className
6665
7091
  }) => {
6666
- const styles = useStyles19();
7092
+ const styles = useStyles20();
7093
+ const mergedLabels = { ...DEFAULT_LABELS12[language], ...labels };
6667
7094
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: className || styles.card, children: [
6668
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Title3, { children: "Informasi Pemesan" }),
7095
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Title3, { children: mergedLabels.title }),
6669
7096
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.container, children: [
6670
7097
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.fieldGroup, children: [
6671
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { className: styles.label, children: "Nama Pemesan" }),
7098
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { className: styles.label, children: mergedLabels.ordererName }),
6672
7099
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { className: styles.value, children: orderer?.name || "-" })
6673
7100
  ] }),
6674
7101
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.fieldGroup, children: [
6675
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { className: styles.label, children: "Nomor Handphone" }),
7102
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { className: styles.label, children: mergedLabels.phoneNumber }),
6676
7103
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { className: styles.value, children: orderer?.phoneNumber || "-" })
6677
7104
  ] }),
6678
7105
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.fieldGroup, children: [
6679
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { className: styles.label, children: "Email" }),
7106
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { className: styles.label, children: mergedLabels.email }),
6680
7107
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { className: styles.value, children: orderer?.email || "-" })
6681
7108
  ] })
6682
7109
  ] })
6683
7110
  ] });
6684
7111
  };
6685
- var useStyles20 = reactComponents.makeStyles({
7112
+ var useStyles21 = reactComponents.makeStyles({
6686
7113
  dialogSurface: {
6687
7114
  maxWidth: "600px",
6688
7115
  width: "100%",
@@ -6735,7 +7162,7 @@ var ModalListPassenger = ({
6735
7162
  sameAsOrderer,
6736
7163
  onSameAsOrdererChange
6737
7164
  }) => {
6738
- const styles = useStyles20();
7165
+ const styles = useStyles21();
6739
7166
  const handleClose = () => {
6740
7167
  onClose();
6741
7168
  onSearchChange("");
@@ -6849,7 +7276,7 @@ var ModalListPassenger = ({
6849
7276
  }
6850
7277
  );
6851
7278
  };
6852
- var useStyles21 = reactComponents.makeStyles({
7279
+ var useStyles22 = reactComponents.makeStyles({
6853
7280
  dialogSurface: {
6854
7281
  maxWidth: "600px",
6855
7282
  width: "100%",
@@ -6879,7 +7306,7 @@ var ModalPassengerForm = ({
6879
7306
  cityOptions,
6880
7307
  ticketClassOptions
6881
7308
  }) => {
6882
- const styles = useStyles21();
7309
+ const styles = useStyles22();
6883
7310
  const { control, handleSubmit, reset } = reactHookForm.useForm({
6884
7311
  defaultValues
6885
7312
  });
@@ -7065,6 +7492,18 @@ var ModalPassengerForm = ({
7065
7492
  }
7066
7493
  );
7067
7494
  };
7495
+
7496
+ // src/components/CardPassengerList/CardPassengerList.constants.ts
7497
+ var DEFAULT_LABELS13 = {
7498
+ id: {
7499
+ defaultTitle: "Data Penumpang",
7500
+ passengerPrefix: "Penumpang"
7501
+ },
7502
+ en: {
7503
+ defaultTitle: "Passenger Data",
7504
+ passengerPrefix: "Passenger"
7505
+ }
7506
+ };
7068
7507
  var getBadgeConfig = (ticketClass) => {
7069
7508
  const normalizedClass = ticketClass?.toUpperCase();
7070
7509
  switch (normalizedClass) {
@@ -7093,7 +7532,7 @@ var getBadgeConfig = (ticketClass) => {
7093
7532
  };
7094
7533
  }
7095
7534
  };
7096
- var useStyles22 = reactComponents.makeStyles({
7535
+ var useStyles23 = reactComponents.makeStyles({
7097
7536
  card: {
7098
7537
  padding: "1.5rem",
7099
7538
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -7169,15 +7608,19 @@ var useStyles22 = reactComponents.makeStyles({
7169
7608
  }
7170
7609
  });
7171
7610
  var CardPassengerList = ({
7172
- title = "Data Penumpang",
7611
+ language = "id",
7612
+ title,
7173
7613
  passengers,
7174
7614
  onPassengerClick,
7615
+ labels,
7175
7616
  className
7176
7617
  }) => {
7177
- const styles = useStyles22();
7618
+ const styles = useStyles23();
7619
+ const mergedLabels = { ...DEFAULT_LABELS13[language], ...labels };
7620
+ const displayTitle = title || mergedLabels.defaultTitle;
7178
7621
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: className || styles.card, children: [
7179
7622
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.headerContainer, children: [
7180
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Title3, { className: styles.headerTitle, children: title }),
7623
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Title3, { className: styles.headerTitle, children: displayTitle }),
7181
7624
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.headerLine })
7182
7625
  ] }),
7183
7626
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.passengerList, children: passengers.map((passenger, index) => {
@@ -7197,32 +7640,46 @@ var CardPassengerList = ({
7197
7640
  },
7198
7641
  children: [
7199
7642
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.passengerInfo, children: /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Subtitle2, { className: styles.passengerText, children: [
7200
- passenger.name || `Penumpang ${index + 1}`,
7201
- " (",
7643
+ passenger.name || `${mergedLabels.passengerPrefix} ${index + 1}`,
7644
+ " ",
7645
+ "(",
7202
7646
  passenger.passengerType,
7203
7647
  ")"
7204
7648
  ] }) }),
7205
- /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "1rem" }, children: [
7206
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.badgeContainer, children: [
7207
- badgeConfig.icon && /* @__PURE__ */ jsxRuntime.jsx(
7208
- "img",
7209
- {
7210
- src: badgeConfig.icon,
7211
- alt: passenger.serviceName,
7212
- className: styles.badgeIcon
7213
- }
7214
- ),
7215
- /* @__PURE__ */ jsxRuntime.jsx(
7216
- "div",
7217
- {
7218
- className: styles.badgeContent,
7219
- style: { backgroundColor: badgeConfig.color },
7220
- children: passenger.serviceName
7221
- }
7222
- )
7223
- ] }),
7224
- /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:chevron-right-24-regular", width: 20, height: 20 })
7225
- ] })
7649
+ /* @__PURE__ */ jsxRuntime.jsxs(
7650
+ "div",
7651
+ {
7652
+ style: { display: "flex", alignItems: "center", gap: "1rem" },
7653
+ children: [
7654
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.badgeContainer, children: [
7655
+ badgeConfig.icon && /* @__PURE__ */ jsxRuntime.jsx(
7656
+ "img",
7657
+ {
7658
+ src: badgeConfig.icon,
7659
+ alt: passenger.serviceName,
7660
+ className: styles.badgeIcon
7661
+ }
7662
+ ),
7663
+ /* @__PURE__ */ jsxRuntime.jsx(
7664
+ "div",
7665
+ {
7666
+ className: styles.badgeContent,
7667
+ style: { backgroundColor: badgeConfig.color },
7668
+ children: passenger.serviceName
7669
+ }
7670
+ )
7671
+ ] }),
7672
+ /* @__PURE__ */ jsxRuntime.jsx(
7673
+ react.Icon,
7674
+ {
7675
+ icon: "fluent:chevron-right-24-regular",
7676
+ width: 20,
7677
+ height: 20
7678
+ }
7679
+ )
7680
+ ]
7681
+ }
7682
+ )
7226
7683
  ]
7227
7684
  },
7228
7685
  passenger.id || `passenger-${index}`
@@ -7230,7 +7687,7 @@ var CardPassengerList = ({
7230
7687
  }) })
7231
7688
  ] });
7232
7689
  };
7233
- var useStyles23 = reactComponents.makeStyles({
7690
+ var useStyles24 = reactComponents.makeStyles({
7234
7691
  card: {
7235
7692
  padding: "1.5rem",
7236
7693
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -7267,7 +7724,7 @@ var CardVehicleDetail = ({
7267
7724
  hasLoad,
7268
7725
  onHasLoadChange
7269
7726
  }) => {
7270
- const styles = useStyles23();
7727
+ const styles = useStyles24();
7271
7728
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: styles.card, children: [
7272
7729
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [
7273
7730
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { className: styles.headerTitle, children: "Detail Kendaraan" }),
@@ -7315,7 +7772,7 @@ var CardVehicleDetail = ({
7315
7772
  ] })
7316
7773
  ] });
7317
7774
  };
7318
- var useStyles24 = reactComponents.makeStyles({
7775
+ var useStyles25 = reactComponents.makeStyles({
7319
7776
  card: {
7320
7777
  padding: "1.5rem",
7321
7778
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -7372,7 +7829,7 @@ var CardVehicleOwnerForm = ({
7372
7829
  companyOptions = [],
7373
7830
  cityOptions = []
7374
7831
  }) => {
7375
- const styles = useStyles24();
7832
+ const styles = useStyles25();
7376
7833
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: styles.card, children: [
7377
7834
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.header, children: [
7378
7835
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", flex: 1 }, children: [
@@ -8016,7 +8473,33 @@ var CardVehicleOwnerForm = ({
8016
8473
  )) })
8017
8474
  ] });
8018
8475
  };
8019
- var useStyles25 = reactComponents.makeStyles({
8476
+
8477
+ // src/components/CardBookingTicket/CardBookingTicket.constants.ts
8478
+ var DEFAULT_LABELS14 = {
8479
+ id: {
8480
+ bookingDetails: "Booking Details",
8481
+ routeTitle: "Rute Perjalanan",
8482
+ estimationPrefix: "Estimasi",
8483
+ totalPriceLabel: "Total Harga",
8484
+ nextButton: "Lanjutkan",
8485
+ previousButton: "Sebelumnya",
8486
+ viewBookingButton: "Lihat Pemesanan",
8487
+ changePaymentButton: "Ubah Metode Pembayaran",
8488
+ timezoneLabel: "WIB"
8489
+ },
8490
+ en: {
8491
+ bookingDetails: "Booking Details",
8492
+ routeTitle: "Travel Route",
8493
+ estimationPrefix: "Estimation",
8494
+ totalPriceLabel: "Total Price",
8495
+ nextButton: "Continue",
8496
+ previousButton: "Previous",
8497
+ viewBookingButton: "View Booking",
8498
+ changePaymentButton: "Change Payment Method",
8499
+ timezoneLabel: "WIB"
8500
+ }
8501
+ };
8502
+ var useStyles26 = reactComponents.makeStyles({
8020
8503
  container: {
8021
8504
  display: "flex",
8022
8505
  flexDirection: "column",
@@ -8128,6 +8611,8 @@ var useStyles25 = reactComponents.makeStyles({
8128
8611
  }
8129
8612
  });
8130
8613
  var CardBookingTicket = ({
8614
+ language = "id",
8615
+ labels,
8131
8616
  shipName = "KMP PORTLINK",
8132
8617
  shipType = "Water Taxi",
8133
8618
  shipTypeColor = "success",
@@ -8146,13 +8631,22 @@ var CardBookingTicket = ({
8146
8631
  onPrevious,
8147
8632
  className
8148
8633
  }) => {
8149
- const styles = useStyles25();
8634
+ const styles = useStyles26();
8635
+ const mergedLabels = { ...DEFAULT_LABELS14[language], ...labels };
8150
8636
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${styles.container} ${className || ""}`, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.bookingDetail, children: [
8151
8637
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: styles.bookingDetailTop, children: [
8152
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { children: "Booking Details" }),
8638
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { children: mergedLabels.bookingDetails }),
8153
8639
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.headerBookingDetail, children: [
8154
8640
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.shipInfo, children: [
8155
- /* @__PURE__ */ jsxRuntime.jsx("img", { src: "/assets/logo/asdp-default.svg", width: 81, height: 54, alt: "asdp" }),
8641
+ /* @__PURE__ */ jsxRuntime.jsx(
8642
+ "img",
8643
+ {
8644
+ src: "/assets/logo/asdp-default.svg",
8645
+ width: 81,
8646
+ height: 54,
8647
+ alt: "asdp"
8648
+ }
8649
+ ),
8156
8650
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: shipName })
8157
8651
  ] }),
8158
8652
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -8168,20 +8662,22 @@ var CardBookingTicket = ({
8168
8662
  }
8169
8663
  )
8170
8664
  ] }),
8171
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1Strong, { children: "Rute Perjalanan" }),
8665
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1Strong, { children: mergedLabels.routeTitle }),
8172
8666
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.ticketInfo, children: [
8173
8667
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.ticketTime, children: [
8174
8668
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption2, { children: departureDay }),
8175
8669
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Body1Stronger, { children: [
8176
8670
  departureTime,
8177
- " WIB"
8671
+ " ",
8672
+ mergedLabels.timezoneLabel
8178
8673
  ] }),
8179
8674
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption2, { children: departureLocation })
8180
8675
  ] }),
8181
8676
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.ticketDuration, children: [
8182
8677
  /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:vehicle-ship-24-regular" }),
8183
8678
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Caption2, { children: [
8184
- "Estimasi ",
8679
+ mergedLabels.estimationPrefix,
8680
+ " ",
8185
8681
  duration
8186
8682
  ] })
8187
8683
  ] }),
@@ -8189,7 +8685,8 @@ var CardBookingTicket = ({
8189
8685
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption2, { children: arrivalDay }),
8190
8686
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Body1Stronger, { children: [
8191
8687
  arrivalTime,
8192
- " WIB"
8688
+ " ",
8689
+ mergedLabels.timezoneLabel
8193
8690
  ] }),
8194
8691
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption2, { children: arrivalLocation })
8195
8692
  ] })
@@ -8199,7 +8696,7 @@ var CardBookingTicket = ({
8199
8696
  ] }),
8200
8697
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: styles.bookingDetailBottom, children: [
8201
8698
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.totalPrice, children: [
8202
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { children: "Total Harga" }),
8699
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { children: mergedLabels.totalPriceLabel }),
8203
8700
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Title3, { className: styles.priceText, children: [
8204
8701
  "IDR ",
8205
8702
  totalPrice
@@ -8224,10 +8721,12 @@ var CardBookingTicket = ({
8224
8721
  style: { width: "100%" },
8225
8722
  icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:chevron-right-20-regular" }),
8226
8723
  iconPosition: "after",
8227
- children: "Lanjutkan"
8724
+ children: mergedLabels.nextButton
8228
8725
  }
8229
8726
  ),
8230
- ["addon", "meals", "review", "payment", "eticket"].includes(reservationStep) && !["pay"].includes(paymentStep) && /* @__PURE__ */ jsxRuntime.jsx(
8727
+ ["addon", "meals", "review", "payment", "eticket"].includes(
8728
+ reservationStep
8729
+ ) && !["pay"].includes(paymentStep) && /* @__PURE__ */ jsxRuntime.jsx(
8231
8730
  reactComponents.Button,
8232
8731
  {
8233
8732
  appearance: "secondary",
@@ -8237,7 +8736,7 @@ var CardBookingTicket = ({
8237
8736
  className: styles.secondaryButton,
8238
8737
  icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:chevron-left-20-regular" }),
8239
8738
  iconPosition: "before",
8240
- children: "Sebelumnya"
8739
+ children: mergedLabels.previousButton
8241
8740
  }
8242
8741
  )
8243
8742
  ] }),
@@ -8250,7 +8749,7 @@ var CardBookingTicket = ({
8250
8749
  size: "large",
8251
8750
  style: { width: "100%" },
8252
8751
  onClick: onNext,
8253
- children: "Lihat Pemesanan"
8752
+ children: mergedLabels.viewBookingButton
8254
8753
  }
8255
8754
  ),
8256
8755
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -8261,14 +8760,24 @@ var CardBookingTicket = ({
8261
8760
  size: "large",
8262
8761
  className: styles.secondaryButton,
8263
8762
  onClick: onPrevious,
8264
- children: "Ubah Metode Pembayaran"
8763
+ children: mergedLabels.changePaymentButton
8265
8764
  }
8266
8765
  )
8267
8766
  ] })
8268
8767
  ] })
8269
8768
  ] }) });
8270
8769
  };
8271
- var useStyles26 = reactComponents.makeStyles({
8770
+
8771
+ // src/components/CardFAQ/CardFAQ.constants.ts
8772
+ var DEFAULT_LABELS15 = {
8773
+ id: {
8774
+ title: "FAQ"
8775
+ },
8776
+ en: {
8777
+ title: "FAQ"
8778
+ }
8779
+ };
8780
+ var useStyles27 = reactComponents.makeStyles({
8272
8781
  faqSection: {
8273
8782
  // marginTop: '2rem', // Let parent control spacing if needed, or keep consistent
8274
8783
  },
@@ -8308,27 +8817,63 @@ var FAQ_ITEMS = [
8308
8817
  answer: "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint maiores debitis, earum animi dolorum unde asperiores accusantium nemo consectetur nulla reiciendis eveniet pariatur autem rerum adipisci sequi officia vero ipsam!"
8309
8818
  }
8310
8819
  ];
8311
- var CardFAQ = ({ className }) => {
8312
- const styles = useStyles26();
8820
+ var CardFAQ = ({
8821
+ language = "id",
8822
+ labels,
8823
+ className
8824
+ }) => {
8825
+ const styles = useStyles27();
8826
+ const mergedLabels = { ...DEFAULT_LABELS15[language], ...labels };
8313
8827
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: styles.faqCard, children: [
8314
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { children: "FAQ" }),
8315
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Accordion, { collapsible: true, children: FAQ_ITEMS.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.AccordionItem, { value: item.value, className: styles.accordionItem, children: [
8316
- /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.AccordionHeader, { className: styles.accordionHeader, expandIconPosition: "end", children: [
8317
- /* @__PURE__ */ jsxRuntime.jsx(
8318
- react.Icon,
8319
- {
8320
- icon: "fluent:question-circle-28-regular",
8321
- style: { marginRight: "5px" }
8322
- }
8323
- ),
8324
- " ",
8325
- item.question
8326
- ] }),
8327
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.AccordionPanel, { children: item.answer })
8328
- ] }, item.value)) })
8828
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { children: mergedLabels.title }),
8829
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Accordion, { collapsible: true, children: FAQ_ITEMS.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
8830
+ reactComponents.AccordionItem,
8831
+ {
8832
+ value: item.value,
8833
+ className: styles.accordionItem,
8834
+ children: [
8835
+ /* @__PURE__ */ jsxRuntime.jsxs(
8836
+ reactComponents.AccordionHeader,
8837
+ {
8838
+ className: styles.accordionHeader,
8839
+ expandIconPosition: "end",
8840
+ children: [
8841
+ /* @__PURE__ */ jsxRuntime.jsx(
8842
+ react.Icon,
8843
+ {
8844
+ icon: "fluent:question-circle-28-regular",
8845
+ style: { marginRight: "5px" }
8846
+ }
8847
+ ),
8848
+ " ",
8849
+ item.question
8850
+ ]
8851
+ }
8852
+ ),
8853
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.AccordionPanel, { children: item.answer })
8854
+ ]
8855
+ },
8856
+ item.value
8857
+ )) })
8329
8858
  ] });
8330
8859
  };
8331
- var useStyles27 = reactComponents.makeStyles({
8860
+
8861
+ // src/components/CardAddon/CardAddon.constants.ts
8862
+ var DEFAULT_LABELS16 = {
8863
+ id: {
8864
+ viewDetail: "Lihat detail",
8865
+ totalPrice: "Total Harga",
8866
+ passengerInsurance: "Asuransi Penumpang",
8867
+ removeOrder: "Hapus Pesanan"
8868
+ },
8869
+ en: {
8870
+ viewDetail: "View Details",
8871
+ totalPrice: "Total Price",
8872
+ passengerInsurance: "Passenger Insurance",
8873
+ removeOrder: "Remove Order"
8874
+ }
8875
+ };
8876
+ var useStyles28 = reactComponents.makeStyles({
8332
8877
  card: {
8333
8878
  backgroundColor: reactComponents.tokens.colorNeutralBackground1,
8334
8879
  boxShadow: reactComponents.tokens.shadow4,
@@ -8393,7 +8938,10 @@ var useStyles27 = reactComponents.makeStyles({
8393
8938
  },
8394
8939
  // Assurance Styles
8395
8940
  badge: {
8396
- ...reactComponents.shorthands.padding(reactComponents.tokens.spacingVerticalNone, reactComponents.tokens.spacingHorizontalL),
8941
+ ...reactComponents.shorthands.padding(
8942
+ reactComponents.tokens.spacingVerticalNone,
8943
+ reactComponents.tokens.spacingHorizontalL
8944
+ ),
8397
8945
  backgroundColor: reactComponents.tokens.colorPaletteBlueBackground2,
8398
8946
  // Approximate for Shared_Dark_blue_Primary if not avail
8399
8947
  color: reactComponents.tokens.colorNeutralForegroundOnBrand,
@@ -8484,6 +9032,8 @@ var useStyles27 = reactComponents.makeStyles({
8484
9032
  }
8485
9033
  });
8486
9034
  var CardAddon = ({
9035
+ language = "id",
9036
+ labels,
8487
9037
  title,
8488
9038
  itemTitle,
8489
9039
  itemSubtitle,
@@ -8496,7 +9046,8 @@ var CardAddon = ({
8496
9046
  children,
8497
9047
  className
8498
9048
  }) => {
8499
- const styles = useStyles27();
9049
+ const styles = useStyles28();
9050
+ const mergedLabels = { ...DEFAULT_LABELS16[language], ...labels };
8500
9051
  return /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Card, { className: `${styles.card} ${className || ""}`, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.gapRow, children: [
8501
9052
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.titleDivider, children: [
8502
9053
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Title3, { className: styles.textTitle, children: title }),
@@ -8544,7 +9095,7 @@ var CardAddon = ({
8544
9095
  onClick: footerData.onActionClick,
8545
9096
  icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:chevron-down-12-regular" }),
8546
9097
  iconPosition: "after",
8547
- children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { className: styles.detailToogle, children: footerData.actionLabel || "Lihat detail" })
9098
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { className: styles.detailToogle, children: footerData.actionLabel || mergedLabels.viewDetail })
8548
9099
  }
8549
9100
  ) })
8550
9101
  ] }) }),
@@ -8560,7 +9111,8 @@ var CardAddon = ({
8560
9111
  style: { backgroundColor: "rgb(30, 57, 141)" },
8561
9112
  children: [
8562
9113
  assuranceData.totalPassenger,
8563
- " Asuransi Penumpang"
9114
+ " ",
9115
+ mergedLabels.passengerInsurance
8564
9116
  ]
8565
9117
  }
8566
9118
  ) }),
@@ -8578,7 +9130,7 @@ var CardAddon = ({
8578
9130
  ] })
8579
9131
  ] }, idx)),
8580
9132
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.breakdownRow, children: [
8581
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { children: "Total Harga" }),
9133
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { children: mergedLabels.totalPrice }),
8582
9134
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Subtitle2, { children: [
8583
9135
  "Rp",
8584
9136
  assuranceData.totalPrice.toLocaleString("id-ID")
@@ -8605,7 +9157,8 @@ var CardAddon = ({
8605
9157
  item.price.toLocaleString("id-ID"),
8606
9158
  " x ",
8607
9159
  item.quantity,
8608
- " = Rp",
9160
+ " ",
9161
+ "= Rp",
8609
9162
  (item.price * item.quantity).toLocaleString("id-ID")
8610
9163
  ] })
8611
9164
  ] }),
@@ -8651,7 +9204,7 @@ var CardAddon = ({
8651
9204
  onClick: () => mealData.onDelete(item.id),
8652
9205
  children: [
8653
9206
  /* @__PURE__ */ jsxRuntime.jsx(reactIcons.DeleteRegular, { fontSize: 18 }),
8654
- "Hapus Pesanan"
9207
+ mergedLabels.removeOrder
8655
9208
  ]
8656
9209
  }
8657
9210
  )
@@ -8684,7 +9237,17 @@ var CardAddon = ({
8684
9237
  ] })
8685
9238
  ] }) });
8686
9239
  };
8687
- var useStyles28 = reactComponents.makeStyles({
9240
+
9241
+ // src/components/CardMealCatalog/CardMealCatalog.constants.ts
9242
+ var DEFAULT_LABELS17 = {
9243
+ id: {
9244
+ addButton: "Tambah"
9245
+ },
9246
+ en: {
9247
+ addButton: "Add"
9248
+ }
9249
+ };
9250
+ var useStyles29 = reactComponents.makeStyles({
8688
9251
  container: {
8689
9252
  display: "flex",
8690
9253
  flexDirection: "column",
@@ -8814,6 +9377,8 @@ var useStyles28 = reactComponents.makeStyles({
8814
9377
  }
8815
9378
  });
8816
9379
  var CardMealCatalog = ({
9380
+ language = "id",
9381
+ labels,
8817
9382
  banner,
8818
9383
  disclaimerText,
8819
9384
  categories,
@@ -8821,7 +9386,8 @@ var CardMealCatalog = ({
8821
9386
  onUpdateQuantity,
8822
9387
  className
8823
9388
  }) => {
8824
- const styles = useStyles28();
9389
+ const styles = useStyles29();
9390
+ const mergedLabels = { ...DEFAULT_LABELS17[language], ...labels };
8825
9391
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${styles.container} ${className || ""}`, children: [
8826
9392
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.banner, children: [
8827
9393
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.bannerOverlay }),
@@ -8844,11 +9410,25 @@ var CardMealCatalog = ({
8844
9410
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { children: disclaimerText })
8845
9411
  ] }),
8846
9412
  categories.map((cat, index) => /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
8847
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Title3, { className: styles.sectionTitle, style: { textTransform: "capitalize" }, children: cat.category }),
9413
+ /* @__PURE__ */ jsxRuntime.jsx(
9414
+ reactComponents.Title3,
9415
+ {
9416
+ className: styles.sectionTitle,
9417
+ style: { textTransform: "capitalize" },
9418
+ children: cat.category
9419
+ }
9420
+ ),
8848
9421
  /* @__PURE__ */ jsxRuntime.jsx("br", {}),
8849
9422
  /* @__PURE__ */ jsxRuntime.jsx("br", {}),
8850
9423
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.grid, children: cat.list.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: styles.productCard, children: [
8851
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Image, { src: item.image, alt: item.name, className: styles.productImage }),
9424
+ /* @__PURE__ */ jsxRuntime.jsx(
9425
+ reactComponents.Image,
9426
+ {
9427
+ src: item.image,
9428
+ alt: item.name,
9429
+ className: styles.productImage
9430
+ }
9431
+ ),
8852
9432
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.productInfo, children: [
8853
9433
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
8854
9434
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { children: item.name }),
@@ -8886,7 +9466,7 @@ var CardMealCatalog = ({
8886
9466
  shape: "rounded",
8887
9467
  className: styles.customAddButton,
8888
9468
  onClick: () => onAdd(item),
8889
- children: "Tambah"
9469
+ children: mergedLabels.addButton
8890
9470
  }
8891
9471
  )
8892
9472
  ] })
@@ -8895,7 +9475,13 @@ var CardMealCatalog = ({
8895
9475
  ] }, index))
8896
9476
  ] });
8897
9477
  };
8898
- var useStyles29 = reactComponents.makeStyles({
9478
+
9479
+ // src/components/CardReview/CardReview.constants.ts
9480
+ var DEFAULT_LABELS18 = {
9481
+ id: {},
9482
+ en: {}
9483
+ };
9484
+ var useStyles30 = reactComponents.makeStyles({
8899
9485
  card: {
8900
9486
  padding: "1.5rem",
8901
9487
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -8938,13 +9524,16 @@ var useStyles29 = reactComponents.makeStyles({
8938
9524
  }
8939
9525
  });
8940
9526
  var CardReview = ({
9527
+ language = "id",
9528
+ labels,
8941
9529
  title,
8942
9530
  items,
8943
9531
  children,
8944
9532
  className,
8945
9533
  headerAction
8946
9534
  }) => {
8947
- const styles = useStyles29();
9535
+ const styles = useStyles30();
9536
+ ({ ...DEFAULT_LABELS18[language], ...labels });
8948
9537
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: `${styles.card} ${className || ""}`, children: [
8949
9538
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.headerContainer, children: [
8950
9539
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { className: styles.headerTitle, children: title }),
@@ -8953,19 +9542,55 @@ var CardReview = ({
8953
9542
  ] }),
8954
9543
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.contentContainer, children: [
8955
9544
  items?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${styles.row} ${item.className || ""}`, children: [
8956
- typeof item.label === "string" ? /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { className: `${styles.defaultLabel} ${item.labelClassName || ""}`, children: item.label }) : (
9545
+ typeof item.label === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
9546
+ reactComponents.Caption1,
9547
+ {
9548
+ className: `${styles.defaultLabel} ${item.labelClassName || ""}`,
9549
+ children: item.label
9550
+ }
9551
+ ) : (
8957
9552
  // Clone element to append className if it's a valid React element
8958
9553
  React5__default.default.isValidElement(item.label) ? React5__default.default.cloneElement(item.label, {
8959
9554
  className: `${styles.defaultLabel} ${item.labelClassName || ""}${item.label.props.className ? " " + item.label.props.className : ""}`
8960
- }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${styles.defaultLabel} ${item.labelClassName || ""}`, children: item.label })
9555
+ }) : /* @__PURE__ */ jsxRuntime.jsx(
9556
+ "div",
9557
+ {
9558
+ className: `${styles.defaultLabel} ${item.labelClassName || ""}`,
9559
+ children: item.label
9560
+ }
9561
+ )
8961
9562
  ),
8962
- typeof item.value === "string" || typeof item.value === "number" ? /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { className: `${styles.defaultValue} ${item.valueClassName || ""}`, children: item.value }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${styles.defaultValue} ${item.valueClassName || ""}`, children: item.value })
9563
+ typeof item.value === "string" || typeof item.value === "number" ? /* @__PURE__ */ jsxRuntime.jsx(
9564
+ reactComponents.Body1,
9565
+ {
9566
+ className: `${styles.defaultValue} ${item.valueClassName || ""}`,
9567
+ children: item.value
9568
+ }
9569
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
9570
+ "div",
9571
+ {
9572
+ className: `${styles.defaultValue} ${item.valueClassName || ""}`,
9573
+ children: item.value
9574
+ }
9575
+ )
8963
9576
  ] }, index)),
8964
9577
  children
8965
9578
  ] })
8966
9579
  ] });
8967
9580
  };
8968
- var useStyles30 = reactComponents.makeStyles({
9581
+
9582
+ // src/components/CardReviewPassenger/CardReviewPassenger.constants.ts
9583
+ var DEFAULT_LABELS19 = {
9584
+ id: {
9585
+ title: "Penumpang",
9586
+ idNumber: "Nomor ID"
9587
+ },
9588
+ en: {
9589
+ title: "Passenger",
9590
+ idNumber: "ID Number"
9591
+ }
9592
+ };
9593
+ var useStyles31 = reactComponents.makeStyles({
8969
9594
  card: {
8970
9595
  padding: "1.5rem",
8971
9596
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -9057,14 +9682,18 @@ var useStyles30 = reactComponents.makeStyles({
9057
9682
  }
9058
9683
  });
9059
9684
  var CardReviewPassenger = ({
9060
- title = "Penumpang",
9685
+ language = "id",
9686
+ labels,
9687
+ title,
9061
9688
  passengers,
9062
9689
  className
9063
9690
  }) => {
9064
- const styles = useStyles30();
9691
+ const styles = useStyles31();
9692
+ const mergedLabels = { ...DEFAULT_LABELS19[language], ...labels };
9693
+ const displayTitle = title || mergedLabels.title;
9065
9694
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: `${styles.card} ${className || ""}`, children: [
9066
9695
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.headerContainer, children: [
9067
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { className: styles.headerTitle, children: title }),
9696
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { className: styles.headerTitle, children: displayTitle }),
9068
9697
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.headerLine })
9069
9698
  ] }),
9070
9699
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.contentContainer, children: passengers.map((passenger, index) => {
@@ -9094,21 +9723,50 @@ var CardReviewPassenger = ({
9094
9723
  ] })
9095
9724
  ] }),
9096
9725
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.fields, children: [
9097
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Field, { label: "Nomor ID", size: "small", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.inputBox, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: passenger.identityNumber }) }) }),
9098
- /* @__PURE__ */ jsxRuntime.jsx(
9099
- reactComponents.Field,
9100
- {
9101
- label: passenger.ageLabel,
9102
- size: "small",
9103
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.inputBox, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: passenger.ageValue }) })
9104
- }
9105
- )
9726
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Field, { label: mergedLabels.idNumber, size: "small", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.inputBox, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: passenger.identityNumber }) }) }),
9727
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Field, { label: passenger.ageLabel, size: "small", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.inputBox, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: passenger.ageValue }) }) })
9106
9728
  ] })
9107
9729
  ] }, passenger.id || index);
9108
9730
  }) })
9109
9731
  ] });
9110
9732
  };
9111
- var useStyles31 = reactComponents.makeStyles({
9733
+
9734
+ // src/components/CardPriceDetails/CardPriceDetails.constants.ts
9735
+ var DEFAULT_LABELS20 = {
9736
+ id: {
9737
+ defaultTitle: "Rincian Harga",
9738
+ totalPayment: "Total Pembayaran",
9739
+ bookingTerms: [
9740
+ "Transaksi booking akan dibatalkan secara otomatis apabila Anda tidak menyelesaikan pembayaran pada periode waktu yang telah ditentukan.",
9741
+ "Setelah pembayaran berhasil, dokumen E-Tiket dapat di unduh melalui E-Mail atau menu \u201CPesanan Saya\u201D di Web Reservation atau Mobile Application Ferizy.",
9742
+ "Dokumen E-Tiket wajib ditunjukan saat melakukan proses Masuk Pelabuhan (Check-In)",
9743
+ "Anda sudah dapat Masuk Pelabuhan (Check-In) mulai dari 2 (dua) jam sebelum jadwal masukpelabuhan yang Anda pilih.",
9744
+ "Tiket akan hangus (expired) apabila Anda belum Masuk Pelabuhan (Check-In) hingga melewati batas waktu jadwal Masuk Pelabuhan yang Anda pilih."
9745
+ ],
9746
+ agreementInfo: "Dengan menekan tombol \u201CLanjutkan Pembayaran\u201D, maka saya telah membaca dan menyetujui :",
9747
+ agreementLinkFerizy: "Syarat & Ketentuan",
9748
+ agreementCovidInfo: "Ketentuan persyaratan menyeberang sesuai dengan\xA0",
9749
+ agreementCovidLink: "Surat Edaran Satgas Covid-19 Nomor 23 Tahun 2022.",
9750
+ agreementFinal: "Bahwa apabila saya didapati tidak memenuhi ketentuan persyaratan menyeberang pada butir 2 (dua) diatas yang mengakibatkan saya terlambat atau tidak dapat melakukan Check-In di pelabuhan tepat waktu, maka saya menerima dan menyetujui untuk diproses sesuai dengan Syarat & Ketentuan Ferizy sebagaimana tersebut pada butir 1 (satu) di atas."
9751
+ },
9752
+ en: {
9753
+ defaultTitle: "Price Details",
9754
+ totalPayment: "Total Payment",
9755
+ bookingTerms: [
9756
+ "Booking transaction will be canceled automatically if you do not complete the payment within the specified time period.",
9757
+ 'Once payment is successful, E-Ticket document can be downloaded via E-Mail or the "My Orders" menu on Ferizy Web Reservation or Mobile Application.',
9758
+ "E-Ticket document must be shown during the Port Entrance (Check-In) process.",
9759
+ "You can enter the Port (Check-In) starting from 2 (two) hours before the port entrance schedule you selected.",
9760
+ "Ticket will expire if you have not entered the Port (Check-In) and have passed the Port entrance schedule time you selected."
9761
+ ],
9762
+ agreementInfo: 'By clicking the "Continue Payment" button, I have read and agree to:',
9763
+ agreementLinkFerizy: "Ferizy Terms & Conditions",
9764
+ agreementCovidInfo: "Crossing requirement provisions in accordance with\xA0",
9765
+ agreementCovidLink: "Covid-19 Task Force Circular Letter Number 23 of 2022.",
9766
+ agreementFinal: "That if I am found not to meet the crossing requirement provisions in point 2 (two) above which results in me being late or unable to Check-In at the port on time, then I accept and agree to be processed in accordance with the Ferizy Terms & Conditions as mentioned in point 1 (one) above."
9767
+ }
9768
+ };
9769
+ var useStyles32 = reactComponents.makeStyles({
9112
9770
  list: {
9113
9771
  margin: 0,
9114
9772
  padding: 0,
@@ -9126,37 +9784,34 @@ var useStyles31 = reactComponents.makeStyles({
9126
9784
  }
9127
9785
  }
9128
9786
  });
9129
- var PriceDetailsTerms = () => {
9130
- const styles = useStyles31();
9787
+ var PriceDetailsTerms = ({
9788
+ language = "id"
9789
+ }) => {
9790
+ const styles = useStyles32();
9131
9791
  const linkColor = reactComponents.tokens.colorBrandBackground;
9132
- const bookingTerms = [
9133
- "Transaksi booking akan dibatalkan secara otomatis apabila Anda tidak menyelesaikan pembayaran pada periode waktu yang telah ditentukan.",
9134
- "Setelah pembyaran berhasil, dikumen E-Tiket dapat di unduh melailui E-Mail atau menu \u201CPesanan Saya\u201D di Web Reservation atau Mobile Application Ferizy.",
9135
- "Dokumen E-Tiket wajib ditunjukan saat melakukan proses Masuk Pelabuhan (Check-In)",
9136
- "Anda sudah dapat Masuk Pelabuhan (Check-In) mulai dari 2 (dua) jam sebelum jadwal masukpelabuhan yang Anda pilih.",
9137
- "Tiket akan hangus (expired) apabila Anda belum Masuk Pelabuhan (Check-In) hingga melewati batas waktu jadwal Masuk Pelabuhan yang Anda pilih."
9138
- ];
9792
+ const labels = DEFAULT_LABELS20[language];
9793
+ const bookingTerms = labels.bookingTerms;
9139
9794
  const agreementTerms = [
9140
9795
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9141
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Link, { href: "/terms-and-conditions", style: { color: linkColor }, children: "Syarat & Ketentuan" }),
9796
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Link, { href: "/terms-and-conditions", style: { color: linkColor }, children: labels.agreementLinkFerizy }),
9142
9797
  "\xA0Ferizy."
9143
9798
  ] }),
9144
9799
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9145
- "Ketentuan persyaratan menyeberang sesuai dengan\xA0",
9146
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Link, { href: "/surat-edaran-satgas-covid-19", style: { color: linkColor }, children: "Surat Edaran Satgas Covid-19 Nomor 23 Tahun 2002." })
9800
+ labels.agreementCovidInfo,
9801
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Link, { href: "/surat-edaran-satgas-covid-19", style: { color: linkColor }, children: labels.agreementCovidLink })
9147
9802
  ] }),
9148
- "Bahwa apabila saya didapati tidak memenuhi ketentuan persyaratan menyeberang pada butir 2 (dua) diatas yang mengakibatkan saya terlambat atau tidaj dapat melakukan Check-In di pelabuhan tepat waktu, maka saya menerima dan menyetujui untuk diproses sesuai dengan Syarat & Ketentuan Ferizy sebagaimana tersebut pada butir 1 (satu) di atas."
9803
+ labels.agreementFinal
9149
9804
  ];
9150
9805
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9151
9806
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: styles.list, children: bookingTerms.map((term, index) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: styles.listItem, children: term }, index)) }) }),
9152
9807
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, {}),
9153
9808
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Body1, { children: [
9154
- "Dengan menekan tombol \u201CLanjutkan Pembayaran\u201D, maka saya telah membaca dan menyetujuii :",
9809
+ labels.agreementInfo,
9155
9810
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: styles.list, children: agreementTerms.map((term, index) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: styles.listItem, children: term }, index)) })
9156
9811
  ] })
9157
9812
  ] });
9158
9813
  };
9159
- var useStyles32 = reactComponents.makeStyles({
9814
+ var useStyles33 = reactComponents.makeStyles({
9160
9815
  card: {
9161
9816
  padding: "1.5rem",
9162
9817
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -9227,11 +9882,15 @@ var useStyles32 = reactComponents.makeStyles({
9227
9882
  }
9228
9883
  });
9229
9884
  var CardPriceDetails = ({
9230
- title = "Rincian Harga",
9885
+ language = "id",
9886
+ title,
9231
9887
  sections,
9232
- total
9888
+ total,
9889
+ labels
9233
9890
  }) => {
9234
- const styles = useStyles32();
9891
+ const styles = useStyles33();
9892
+ const mergedLabels = { ...DEFAULT_LABELS20[language], ...labels };
9893
+ const displayTitle = title || mergedLabels.defaultTitle;
9235
9894
  const getVariantClass = (variant) => {
9236
9895
  switch (variant) {
9237
9896
  case "danger":
@@ -9261,7 +9920,7 @@ var CardPriceDetails = ({
9261
9920
  };
9262
9921
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: styles.card, children: [
9263
9922
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.headerContainer, children: [
9264
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { className: styles.headerTitle, children: title }),
9923
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { className: styles.headerTitle, children: displayTitle }),
9265
9924
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.headerLine })
9266
9925
  ] }),
9267
9926
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.container, children: [
@@ -9276,18 +9935,24 @@ var CardPriceDetails = ({
9276
9935
  }),
9277
9936
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, {}),
9278
9937
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.totalRow, children: [
9279
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { className: styles.totalLabel, children: "Total Pembayaran" }),
9938
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { className: styles.totalLabel, children: mergedLabels.totalPayment }),
9280
9939
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Subtitle1, { className: styles.totalValue, children: [
9281
9940
  "Rp. ",
9282
9941
  total.toLocaleString("id-ID")
9283
9942
  ] })
9284
9943
  ] }),
9285
9944
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, {}),
9286
- /* @__PURE__ */ jsxRuntime.jsx(PriceDetailsTerms, {})
9945
+ /* @__PURE__ */ jsxRuntime.jsx(PriceDetailsTerms, { language })
9287
9946
  ] })
9288
9947
  ] });
9289
9948
  };
9290
- var useStyles33 = reactComponents.makeStyles({
9949
+
9950
+ // src/components/CardPaymentMethodList/CardPaymentMethodList.constants.ts
9951
+ var DEFAULT_LABELS21 = {
9952
+ id: {},
9953
+ en: {}
9954
+ };
9955
+ var useStyles34 = reactComponents.makeStyles({
9291
9956
  container: {
9292
9957
  display: "flex",
9293
9958
  flexDirection: "column",
@@ -9332,17 +9997,23 @@ var useStyles33 = reactComponents.makeStyles({
9332
9997
  card: {
9333
9998
  position: "relative",
9334
9999
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
9335
- ...reactComponents.shorthands.padding(reactComponents.tokens.spacingHorizontalXL, reactComponents.tokens.spacingVerticalXXL),
10000
+ ...reactComponents.shorthands.padding(
10001
+ reactComponents.tokens.spacingHorizontalXL,
10002
+ reactComponents.tokens.spacingVerticalXXL
10003
+ ),
9336
10004
  backgroundColor: reactComponents.tokens.colorNeutralBackground1,
9337
10005
  zIndex: 3
9338
10006
  }
9339
10007
  });
9340
10008
  var CardPaymentMethodList = ({
10009
+ language = "id",
10010
+ labels,
9341
10011
  methods,
9342
10012
  selectedValue,
9343
10013
  onSelect
9344
10014
  }) => {
9345
- const styles = useStyles33();
10015
+ const styles = useStyles34();
10016
+ ({ ...DEFAULT_LABELS21[language], ...labels });
9346
10017
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.card, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${styles.container}`, children: methods.map((category, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
9347
10018
  index > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.dividerContainer, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, {}) }),
9348
10019
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Accordion, { multiple: true, collapsible: true, children: /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.AccordionItem, { value: category.value, children: [
@@ -9387,7 +10058,17 @@ var CardPaymentMethodList = ({
9387
10058
  ] }) })
9388
10059
  ] }, category.value || index)) }) });
9389
10060
  };
9390
- var useStyles34 = reactComponents.makeStyles({
10061
+
10062
+ // src/components/CardPaymentGuide/CardPaymentGuide.constants.ts
10063
+ var DEFAULT_LABELS22 = {
10064
+ id: {
10065
+ title: "Cara Pembayaran"
10066
+ },
10067
+ en: {
10068
+ title: "Payment Method"
10069
+ }
10070
+ };
10071
+ var useStyles35 = reactComponents.makeStyles({
9391
10072
  container: {
9392
10073
  display: "flex",
9393
10074
  flexDirection: "column",
@@ -9418,20 +10099,49 @@ var useStyles34 = reactComponents.makeStyles({
9418
10099
  }
9419
10100
  });
9420
10101
  var CardPaymentGuide = ({
9421
- title = "Cara Pembayaran",
10102
+ language = "id",
10103
+ labels,
10104
+ title,
9422
10105
  guides,
9423
10106
  className
9424
10107
  }) => {
9425
- const styles = useStyles34();
10108
+ const styles = useStyles35();
10109
+ const mergedLabels = { ...DEFAULT_LABELS22[language], ...labels };
10110
+ const displayTitle = title || mergedLabels.title;
9426
10111
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${styles.container} ${className || ""}`, children: [
9427
- title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.titleContainer, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { className: styles.title, children: title }) }),
9428
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Accordion, { collapsible: true, multiple: true, children: guides.map((guide, index) => /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.AccordionItem, { value: guide.value || String(index), children: [
9429
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.AccordionHeader, { expandIconPosition: "end", children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: guide.title }) }),
9430
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.AccordionPanel, { children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: styles.list, children: guide.steps.map((step, stepIndex) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: styles.listItem, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: step }) }, stepIndex)) }) })
9431
- ] }, guide.value || index)) })
10112
+ title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.titleContainer, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { className: styles.title, children: displayTitle }) }),
10113
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Accordion, { collapsible: true, multiple: true, children: guides.map((guide, index) => /* @__PURE__ */ jsxRuntime.jsxs(
10114
+ reactComponents.AccordionItem,
10115
+ {
10116
+ value: guide.value || String(index),
10117
+ children: [
10118
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.AccordionHeader, { expandIconPosition: "end", children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: guide.title }) }),
10119
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.AccordionPanel, { children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: styles.list, children: guide.steps.map((step, stepIndex) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: styles.listItem, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: step }) }, stepIndex)) }) })
10120
+ ]
10121
+ },
10122
+ guide.value || index
10123
+ )) })
9432
10124
  ] });
9433
10125
  };
9434
- var useStyles35 = reactComponents.makeStyles({
10126
+
10127
+ // src/components/CardPaymentInfo/CardPaymentInfo.constants.ts
10128
+ var DEFAULT_LABELS23 = {
10129
+ id: {
10130
+ expiryPrefix: "Kode virtual akun berlaku sampai",
10131
+ copyCodeButton: "Salin Kode",
10132
+ totalPayment: "Total Pembayaran",
10133
+ checkStatusInfo: "Klik tombol dibawah ini jika sudah melakukan pembayaran",
10134
+ checkStatusButton: "Cek Status Pembayaran"
10135
+ },
10136
+ en: {
10137
+ expiryPrefix: "Virtual account code valid until",
10138
+ copyCodeButton: "Copy Code",
10139
+ totalPayment: "Total Payment",
10140
+ checkStatusInfo: "Click the button below if you have made the payment",
10141
+ checkStatusButton: "Check Payment Status"
10142
+ }
10143
+ };
10144
+ var useStyles36 = reactComponents.makeStyles({
9435
10145
  container: {
9436
10146
  display: "flex",
9437
10147
  flexDirection: "column",
@@ -9503,6 +10213,8 @@ var useStyles35 = reactComponents.makeStyles({
9503
10213
  }
9504
10214
  });
9505
10215
  var CardPaymentInfo = ({
10216
+ language = "id",
10217
+ labels,
9506
10218
  expiryDate,
9507
10219
  bank,
9508
10220
  virtualAccount,
@@ -9511,10 +10223,11 @@ var CardPaymentInfo = ({
9511
10223
  onCopyVA,
9512
10224
  onCheckStatus
9513
10225
  }) => {
9514
- const styles = useStyles35();
10226
+ const styles = useStyles36();
10227
+ const mergedLabels = { ...DEFAULT_LABELS23[language], ...labels };
9515
10228
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.card, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.container, children: [
9516
10229
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.headerRow, children: [
9517
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { children: "Kode virtual akun berlaku sampai" }),
10230
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { children: mergedLabels.expiryPrefix }),
9518
10231
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Title2, { className: styles.expiryTitle, children: expiryDate })
9519
10232
  ] }),
9520
10233
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.infoCard, children: [
@@ -9532,7 +10245,7 @@ var CardPaymentInfo = ({
9532
10245
  size: "large",
9533
10246
  shape: "circular",
9534
10247
  onClick: onCopyVA,
9535
- children: "Salin Kode"
10248
+ children: mergedLabels.copyCodeButton
9536
10249
  }
9537
10250
  )
9538
10251
  ] })
@@ -9541,7 +10254,7 @@ var CardPaymentInfo = ({
9541
10254
  reactComponents.Field,
9542
10255
  {
9543
10256
  size: "large",
9544
- label: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { style: { color: reactComponents.tokens.colorNeutralForeground1 }, children: "Total Pembayaran" }),
10257
+ label: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { style: { color: reactComponents.tokens.colorNeutralForeground1 }, children: mergedLabels.totalPayment }),
9545
10258
  children: /* @__PURE__ */ jsxRuntime.jsx(
9546
10259
  reactComponents.Input,
9547
10260
  {
@@ -9554,7 +10267,7 @@ var CardPaymentInfo = ({
9554
10267
  )
9555
10268
  ] }),
9556
10269
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
9557
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginBottom: reactComponents.tokens.spacingVerticalM }, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { style: { color: reactComponents.tokens.colorNeutralForeground2 }, children: "Klik tombol dibawah ini jika sudah melakukan pembayaran" }) }),
10270
+ /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginBottom: reactComponents.tokens.spacingVerticalM }, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { style: { color: reactComponents.tokens.colorNeutralForeground2 }, children: mergedLabels.checkStatusInfo }) }),
9558
10271
  /* @__PURE__ */ jsxRuntime.jsx(
9559
10272
  reactComponents.Button,
9560
10273
  {
@@ -9563,14 +10276,44 @@ var CardPaymentInfo = ({
9563
10276
  shape: "circular",
9564
10277
  className: styles.checkStatusButton,
9565
10278
  onClick: onCheckStatus,
9566
- children: "Cek Status Pembayaran"
10279
+ children: mergedLabels.checkStatusButton
9567
10280
  }
9568
10281
  )
9569
10282
  ] }),
9570
- /* @__PURE__ */ jsxRuntime.jsx(CardPaymentGuide, { guides })
10283
+ /* @__PURE__ */ jsxRuntime.jsx(CardPaymentGuide, { guides, language })
9571
10284
  ] }) });
9572
10285
  };
9573
- var useStyles36 = reactComponents.makeStyles({
10286
+
10287
+ // src/components/CardStatusOrder/CardStatusOrder.constants.ts
10288
+ var DEFAULT_LABELS24 = {
10289
+ id: {
10290
+ detailTitle: "Detail Pemesanan",
10291
+ statusLabel: "Status",
10292
+ bookingCodeLabel: "Kode Booking",
10293
+ scheduleLabel: "Jadwal Masuk Pelabuhan",
10294
+ routeLabel: "Rute",
10295
+ userTypeLabel: "Jenis Pengguna Jasa",
10296
+ serviceLabel: "Layanan",
10297
+ viewTicketButton: "Lihat E-Tiket",
10298
+ defaultStatus: "Sudah Dibayar",
10299
+ defaultTitle: "Pembayaran berhasil",
10300
+ defaultDescription: "Tiket Anda aktif dan siap digunakan."
10301
+ },
10302
+ en: {
10303
+ detailTitle: "Booking Details",
10304
+ statusLabel: "Status",
10305
+ bookingCodeLabel: "Booking Code",
10306
+ scheduleLabel: "Port Entrance Schedule",
10307
+ routeLabel: "Route",
10308
+ userTypeLabel: "User Service Type",
10309
+ serviceLabel: "Service",
10310
+ viewTicketButton: "View E-Ticket",
10311
+ defaultStatus: "Paid",
10312
+ defaultTitle: "Payment successful",
10313
+ defaultDescription: "Your ticket is active and ready to use."
10314
+ }
10315
+ };
10316
+ var useStyles37 = reactComponents.makeStyles({
9574
10317
  activeCard: {
9575
10318
  width: "100%",
9576
10319
  // padding: tokens.spacingHorizontalNone, // default
@@ -9617,6 +10360,8 @@ var useStyles36 = reactComponents.makeStyles({
9617
10360
  }
9618
10361
  });
9619
10362
  var CardStatusOrder = ({
10363
+ language = "id",
10364
+ labels,
9620
10365
  bookingCode,
9621
10366
  departureDate,
9622
10367
  departureTime,
@@ -9629,16 +10374,20 @@ var CardStatusOrder = ({
9629
10374
  serviceType,
9630
10375
  vehicleNumber,
9631
10376
  shipType,
9632
- statusLabel = "Sudah Dibayar",
10377
+ statusLabel,
9633
10378
  statusIcon,
9634
10379
  statusColor = "success",
9635
10380
  illustrationUrl = "/assets/images/illustrations/ticket.svg",
9636
- title = "Pembayaran berhasil",
9637
- description = "Tiket Anda aktif dan siap digunakan.",
10381
+ title,
10382
+ description,
9638
10383
  onClickViewTicket,
9639
10384
  className
9640
10385
  }) => {
9641
- const styles = useStyles36();
10386
+ const styles = useStyles37();
10387
+ const mergedLabels = { ...DEFAULT_LABELS24[language], ...labels };
10388
+ const displayStatus = statusLabel || mergedLabels.defaultStatus;
10389
+ const displayTitle = title || mergedLabels.defaultTitle;
10390
+ const displayDescription = description || mergedLabels.defaultDescription;
9642
10391
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${styles.activeCard} ${className || ""}`, children: /* @__PURE__ */ jsxRuntime.jsxs(reactGridSystem.Row, { nogutter: true, className: styles.colGap, children: [
9643
10392
  /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: "content", children: /* @__PURE__ */ jsxRuntime.jsxs(reactGridSystem.Row, { direction: "column", nogutter: true, children: [
9644
10393
  /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: "content", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -9651,8 +10400,8 @@ var CardStatusOrder = ({
9651
10400
  }
9652
10401
  ) }),
9653
10402
  /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: "content", children: /* @__PURE__ */ jsxRuntime.jsxs(reactGridSystem.Row, { direction: "column", justify: "center", align: "center", nogutter: true, children: [
9654
- /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: "content", children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { children: title }) }),
9655
- /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: "content", children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: description }) })
10403
+ /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: "content", children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle2, { children: displayTitle }) }),
10404
+ /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: "content", children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: displayDescription }) })
9656
10405
  ] }) })
9657
10406
  ] }) }),
9658
10407
  /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.cardInfo, children: /* @__PURE__ */ jsxRuntime.jsxs(
@@ -9665,11 +10414,11 @@ var CardStatusOrder = ({
9665
10414
  className: styles.rowGap,
9666
10415
  children: [
9667
10416
  /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: 12, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.titleDivider, children: [
9668
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { children: "Detail Pemesanan" }),
10417
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Subtitle1, { children: mergedLabels.detailTitle }),
9669
10418
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, { style: { width: 0 } })
9670
10419
  ] }) }),
9671
10420
  /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(reactGridSystem.Row, { justify: "center", align: "center", nogutter: true, children: [
9672
- /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: "Status" }) }),
10421
+ /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Body1, { children: mergedLabels.statusLabel }) }),
9673
10422
  /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: "content", children: /* @__PURE__ */ jsxRuntime.jsx(
9674
10423
  reactComponents.Badge,
9675
10424
  {
@@ -9678,17 +10427,17 @@ var CardStatusOrder = ({
9678
10427
  appearance: "filled",
9679
10428
  shape: "rounded",
9680
10429
  icon: statusIcon || /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:checkmark-circle-20-regular" }),
9681
- children: statusLabel
10430
+ children: displayStatus
9682
10431
  }
9683
10432
  ) })
9684
10433
  ] }) }),
9685
10434
  /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(reactGridSystem.Row, { direction: "column", nogutter: true, className: styles.gapdetail, children: [
9686
10435
  /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: 12, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.itemDetail, children: [
9687
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1Stronger, { children: "Kode Booking" }),
10436
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1Stronger, { children: mergedLabels.bookingCodeLabel }),
9688
10437
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { children: bookingCode })
9689
10438
  ] }) }),
9690
10439
  /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: 12, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.itemDetail, children: [
9691
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1Stronger, { children: "Jadwal Masuk Pelabuhan" }),
10440
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1Stronger, { children: mergedLabels.scheduleLabel }),
9692
10441
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Caption1, { children: [
9693
10442
  departureDate,
9694
10443
  ", ",
@@ -9696,7 +10445,7 @@ var CardStatusOrder = ({
9696
10445
  ] })
9697
10446
  ] }) }),
9698
10447
  /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: 12, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.itemDetail, children: [
9699
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1Stronger, { children: "Rute" }),
10448
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1Stronger, { children: mergedLabels.routeLabel }),
9700
10449
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Caption1, { children: [
9701
10450
  origin,
9702
10451
  " ",
@@ -9706,11 +10455,11 @@ var CardStatusOrder = ({
9706
10455
  ] })
9707
10456
  ] }) }),
9708
10457
  /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: 12, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.itemDetail, children: [
9709
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1Stronger, { children: "Jenis Pengguna Jasa" }),
10458
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1Stronger, { children: mergedLabels.userTypeLabel }),
9710
10459
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { children: vehicleClass })
9711
10460
  ] }) }),
9712
10461
  /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: 12, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.itemDetail, children: [
9713
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1Stronger, { children: "Layanan" }),
10462
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1Stronger, { children: mergedLabels.serviceLabel }),
9714
10463
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Caption1, { children: shipType || serviceType })
9715
10464
  ] }) })
9716
10465
  ] }) }),
@@ -9722,7 +10471,7 @@ var CardStatusOrder = ({
9722
10471
  style: { width: "100%" },
9723
10472
  shape: "circular",
9724
10473
  onClick: onClickViewTicket,
9725
- children: "Lihat E-Tiket"
10474
+ children: mergedLabels.viewTicketButton
9726
10475
  }
9727
10476
  ) })
9728
10477
  ]
@@ -9730,7 +10479,7 @@ var CardStatusOrder = ({
9730
10479
  ) }) })
9731
10480
  ] }) });
9732
10481
  };
9733
- var useStyles37 = reactComponents.makeStyles({
10482
+ var useStyles38 = reactComponents.makeStyles({
9734
10483
  surface: {
9735
10484
  width: "680px",
9736
10485
  maxWidth: "90vw",
@@ -9852,7 +10601,7 @@ var ModalPriceDetail = ({
9852
10601
  grandTotal,
9853
10602
  ...props
9854
10603
  }) => {
9855
- const styles = useStyles37();
10604
+ const styles = useStyles38();
9856
10605
  return /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Dialog, { open: isOpen, onOpenChange: (_, data) => onOpenChange(data.open), ...props, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.DialogSurface, { className: styles.surface, children: /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.DialogBody, { children: [
9857
10606
  /* @__PURE__ */ jsxRuntime.jsx(
9858
10607
  reactComponents.DialogTitle,
@@ -9943,13 +10692,23 @@ var ModalPriceDetail = ({
9943
10692
  ] }) }) })
9944
10693
  ] }) }) });
9945
10694
  };
9946
- var useStyles38 = reactComponents.makeStyles({
10695
+
10696
+ // src/components/CardProfileMenu/CardProfileMenu.constants.ts
10697
+ var DEFAULT_LABELS25 = {
10698
+ id: {},
10699
+ en: {}
10700
+ };
10701
+ var useStyles39 = reactComponents.makeStyles({
9947
10702
  container: {
9948
10703
  display: "flex",
9949
10704
  flexDirection: "column",
9950
10705
  backgroundColor: reactComponents.tokens.colorNeutralBackground1,
9951
10706
  ...reactComponents.shorthands.padding(reactComponents.tokens.spacingVerticalL),
9952
- ...reactComponents.shorthands.border(reactComponents.tokens.strokeWidthThin, "solid", reactComponents.tokens.colorNeutralStroke1),
10707
+ ...reactComponents.shorthands.border(
10708
+ reactComponents.tokens.strokeWidthThin,
10709
+ "solid",
10710
+ reactComponents.tokens.colorNeutralStroke1
10711
+ ),
9953
10712
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
9954
10713
  rowGap: reactComponents.tokens.spacingHorizontalXXL,
9955
10714
  width: "100%"
@@ -9991,11 +10750,14 @@ var useStyles38 = reactComponents.makeStyles({
9991
10750
  }
9992
10751
  });
9993
10752
  var CardProfileMenu = ({
10753
+ language = "id",
10754
+ labels,
9994
10755
  sections,
9995
10756
  selectedValue,
9996
10757
  onTabSelect
9997
10758
  }) => {
9998
- const styles = useStyles38();
10759
+ const styles = useStyles39();
10760
+ ({ ...DEFAULT_LABELS25[language], ...labels });
9999
10761
  const handleTabSelect = (_, data) => {
10000
10762
  onTabSelect(data.value);
10001
10763
  };
@@ -10045,9 +10807,9 @@ exports.CardServiceMenu = CardServiceMenu;
10045
10807
  exports.CardStatusOrder = CardStatusOrder;
10046
10808
  exports.CardTicket = CardTicket;
10047
10809
  exports.CardTicketSearch = CardTicketSearch;
10048
- exports.CardTicketSearchDefaultLabels = DEFAULT_LABELS;
10810
+ exports.CardTicketSearchDefaultLabels = DEFAULT_LABELS3;
10049
10811
  exports.CardTicketSearchSummary = CardTicketSearchSummary;
10050
- exports.CardTicketSearchSummaryDefaultLabels = DEFAULT_LABELS2;
10812
+ exports.CardTicketSearchSummaryDefaultLabels = DEFAULT_LABELS4;
10051
10813
  exports.CardVehicleDetail = CardVehicleDetail;
10052
10814
  exports.CardVehicleOwnerForm = CardVehicleOwnerForm;
10053
10815
  exports.CarouselWithCustomNav = CarouselWithCustomNav;
@@ -10061,11 +10823,11 @@ exports.DEFAULT_SORT_OPTIONS = DEFAULT_SORT_OPTIONS;
10061
10823
  exports.DEFAULT_TIME_SLOTS = DEFAULT_TIME_SLOTS;
10062
10824
  exports.DEFAULT_VEHICLE_ICONS = DEFAULT_VEHICLE_ICONS;
10063
10825
  exports.DateFilter = DateFilter;
10064
- exports.DateFilterDefaultLabels = DEFAULT_LABELS4;
10826
+ exports.DateFilterDefaultLabels = DEFAULT_LABELS10;
10065
10827
  exports.InputDynamic = InputDynamic_default;
10066
10828
  exports.MODAL_PRESETS = MODAL_PRESETS;
10067
10829
  exports.ModalFilterTicket = ModalFilterTicket;
10068
- exports.ModalFilterTicketDefaultLabels = DEFAULT_LABELS3;
10830
+ exports.ModalFilterTicketDefaultLabels = DEFAULT_LABELS9;
10069
10831
  exports.ModalIllustration = ModalIllustration;
10070
10832
  exports.ModalListPassenger = ModalListPassenger;
10071
10833
  exports.ModalPassengerForm = ModalPassengerForm;