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

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.mjs CHANGED
@@ -190,6 +190,20 @@ var MODAL_PRESETS = {
190
190
  PURCHASE_PERIOD_EXPIRED: getModalPreset("PURCHASE_PERIOD_EXPIRED", "id"),
191
191
  TRANSACTION_LIMIT: getModalPreset("TRANSACTION_LIMIT", "id")
192
192
  };
193
+
194
+ // src/components/CarouselWithCustomNav/CarouselWithCustomNav.constants.ts
195
+ var DEFAULT_LABELS2 = {
196
+ id: {
197
+ carouselAriaLabel: "Carousel",
198
+ slideAriaLabel: "Slide {index}",
199
+ announcementTemplate: "Carousel slide {index} dari {total}"
200
+ },
201
+ en: {
202
+ carouselAriaLabel: "Carousel",
203
+ slideAriaLabel: "Slide {index}",
204
+ announcementTemplate: "Carousel slide {index} of {total}"
205
+ }
206
+ };
193
207
  var useStyles2 = makeStyles({
194
208
  carousel: {},
195
209
  customCarouselNav: {
@@ -247,32 +261,49 @@ var useStyles2 = makeStyles({
247
261
  }
248
262
  }
249
263
  });
250
- var defaultAnnouncement = (index, totalSlides) => {
251
- return `Carousel slide ${index + 1} of ${totalSlides}`;
252
- };
253
264
  var CarouselWithCustomNav = ({
265
+ language = "id",
266
+ labels: customLabels,
254
267
  children,
255
268
  circular = true,
256
269
  draggable = true,
257
270
  align = "start",
258
271
  whitespace = false,
259
- announcement = defaultAnnouncement,
272
+ announcement: customAnnouncement,
260
273
  activeIndex: controlledIndex,
261
274
  onActiveIndexChange,
262
- ariaLabel = "Carousel",
275
+ ariaLabel: deprecatedAriaLabel,
263
276
  darkNavBackground = true,
264
277
  className,
265
278
  cardFocus = false
266
279
  }) => {
267
280
  const styles = useStyles2();
268
281
  const [internalIndex, setInternalIndex] = useState(0);
282
+ const labels = React5.useMemo(
283
+ () => ({
284
+ ...DEFAULT_LABELS2[language],
285
+ ...customLabels,
286
+ ...deprecatedAriaLabel && { carouselAriaLabel: deprecatedAriaLabel }
287
+ }),
288
+ [language, customLabels, deprecatedAriaLabel]
289
+ );
269
290
  const activeIndex = controlledIndex !== void 0 ? controlledIndex : internalIndex;
270
- const handleIndexChange = useCallback((index) => {
271
- if (controlledIndex === void 0) {
272
- setInternalIndex(index);
273
- }
274
- onActiveIndexChange?.(index);
275
- }, [controlledIndex, onActiveIndexChange]);
291
+ const handleIndexChange = useCallback(
292
+ (index) => {
293
+ if (controlledIndex === void 0) {
294
+ setInternalIndex(index);
295
+ }
296
+ onActiveIndexChange?.(index);
297
+ },
298
+ [controlledIndex, onActiveIndexChange]
299
+ );
300
+ const defaultAnnouncement = useCallback(
301
+ (index, totalSlides) => {
302
+ return labels.announcementTemplate.replace("{index}", (index + 1).toString()).replace("{total}", totalSlides.toString());
303
+ },
304
+ [labels.announcementTemplate]
305
+ );
306
+ const announcement = customAnnouncement || defaultAnnouncement;
276
307
  return /* @__PURE__ */ jsxs(
277
308
  Carousel,
278
309
  {
@@ -289,7 +320,7 @@ var CarouselWithCustomNav = ({
289
320
  CarouselSlider,
290
321
  {
291
322
  cardFocus,
292
- "aria-label": ariaLabel,
323
+ "aria-label": labels.carouselAriaLabel,
293
324
  children
294
325
  }
295
326
  ) }),
@@ -302,7 +333,15 @@ var CarouselWithCustomNav = ({
302
333
  },
303
334
  appearance: "brand",
304
335
  className: styles.carouselNavButton,
305
- children: (index) => /* @__PURE__ */ jsx(CarouselNavButton, { "aria-label": `Slide ${index + 1}` })
336
+ children: (index) => /* @__PURE__ */ jsx(
337
+ CarouselNavButton,
338
+ {
339
+ "aria-label": labels.slideAriaLabel.replace(
340
+ "{index}",
341
+ (index + 1).toString()
342
+ )
343
+ }
344
+ )
306
345
  }
307
346
  )
308
347
  ]
@@ -311,7 +350,7 @@ var CarouselWithCustomNav = ({
311
350
  };
312
351
 
313
352
  // src/components/CardPromo/CardPromo.constants.ts
314
- var DEFAULT_LABELS2 = {
353
+ var DEFAULT_LABELS3 = {
315
354
  id: {
316
355
  defaultImageAlt: "Gambar Promo",
317
356
  defaultButtonText: "Lihat Detail"
@@ -422,7 +461,7 @@ var CardPromo = ({
422
461
  labels
423
462
  }) => {
424
463
  const classes = useStyles3();
425
- const mergedLabels = { ...DEFAULT_LABELS2[language], ...labels };
464
+ const mergedLabels = { ...DEFAULT_LABELS3[language], ...labels };
426
465
  const displayImageAlt = imageAlt || mergedLabels.defaultImageAlt;
427
466
  const displayButtonText = buttonText || mergedLabels.defaultButtonText;
428
467
  const ariaLabel = totalCards ? `Card ${index + 1} of ${totalCards}` : `Promo card ${index + 1}`;
@@ -523,7 +562,7 @@ var CardPromo = ({
523
562
  };
524
563
 
525
564
  // src/components/CardBanner/CardBanner.constants.ts
526
- var DEFAULT_LABELS3 = {
565
+ var DEFAULT_LABELS4 = {
527
566
  id: {
528
567
  bannerAriaLabel: "Banner {index} dari {total}",
529
568
  bannerAriaLabelSingle: "Banner {index}",
@@ -568,7 +607,7 @@ var CardBanner = ({
568
607
  }) => {
569
608
  const classes = useStyles4();
570
609
  const mergedLabels = {
571
- ...DEFAULT_LABELS3[language],
610
+ ...DEFAULT_LABELS4[language],
572
611
  ...labels
573
612
  };
574
613
  const ariaLabel = totalBanners ? mergedLabels.bannerAriaLabel.replace("{index}", (index + 1).toString()).replace("{total}", totalBanners.toString()) : mergedLabels.bannerAriaLabelSingle.replace(
@@ -751,7 +790,7 @@ var extendedTokens = {
751
790
  colorBrandForegroundLinkSelected: customBrand[110]});
752
791
 
753
792
  // src/components/CardTicket/CardTicket.constants.ts
754
- var DEFAULT_LABELS4 = {
793
+ var DEFAULT_LABELS5 = {
755
794
  id: {
756
795
  availableSeatsLabel: "Tersedia",
757
796
  estimationPrefix: "Estimasi",
@@ -760,7 +799,8 @@ var DEFAULT_LABELS4 = {
760
799
  totalPriceLabel: "Total harga",
761
800
  facilitiesLabel: "Fasilitas",
762
801
  selectTicketButton: "Pilih Tiket",
763
- timezoneLabel: "WIB"
802
+ timezoneLabel: "WIB",
803
+ currencySymbol: "IDR"
764
804
  },
765
805
  en: {
766
806
  availableSeatsLabel: "Available",
@@ -770,7 +810,8 @@ var DEFAULT_LABELS4 = {
770
810
  totalPriceLabel: "Total price",
771
811
  facilitiesLabel: "Facilities",
772
812
  selectTicketButton: "Select Ticket",
773
- timezoneLabel: "WIB"
813
+ timezoneLabel: "WIB",
814
+ currencySymbol: "IDR"
774
815
  }
775
816
  };
776
817
  var useStyles5 = makeStyles({
@@ -993,7 +1034,7 @@ var CardTicket = ({
993
1034
  }) => {
994
1035
  const styles = useStyles5();
995
1036
  const { width } = useWindowSize();
996
- const mergedLabels = { ...DEFAULT_LABELS4[language], ...labels };
1037
+ const mergedLabels = { ...DEFAULT_LABELS5[language], ...labels };
997
1038
  const getCircularVerticalConfig = () => {
998
1039
  if (width <= 1600) return { count: 6, spacing: 60, top: 10 };
999
1040
  return { count: 5, spacing: 60, top: 18 };
@@ -1275,8 +1316,11 @@ var CardTicket = ({
1275
1316
  justifyContent: "end"
1276
1317
  },
1277
1318
  children: [
1278
- "IDR\xA0",
1279
- totalPrice.toLocaleString("id-ID")
1319
+ mergedLabels.currencySymbol,
1320
+ "\xA0",
1321
+ totalPrice.toLocaleString(
1322
+ language === "id" ? "id-ID" : "en-US"
1323
+ )
1280
1324
  ]
1281
1325
  }
1282
1326
  )
@@ -1499,7 +1543,7 @@ var BackgroundTicketCardVertical = (props) => /* @__PURE__ */ jsxs(
1499
1543
  var BackgroundTicketCardVertical_default = BackgroundTicketCardVertical;
1500
1544
 
1501
1545
  // src/components/CardServiceMenu/CardServiceMenu.constants.ts
1502
- var DEFAULT_LABELS5 = {
1546
+ var DEFAULT_LABELS6 = {
1503
1547
  id: {
1504
1548
  ferryLabel: "Ferry",
1505
1549
  ferryDescription: "Layanan penyeberangan ferry ASDP",
@@ -1648,7 +1692,7 @@ var CardServiceMenu = ({
1648
1692
  labels
1649
1693
  }) => {
1650
1694
  const styles = useStyles6();
1651
- const mergedLabels = { ...DEFAULT_LABELS5[language], ...labels };
1695
+ const mergedLabels = { ...DEFAULT_LABELS6[language], ...labels };
1652
1696
  const getMenuItemClass = (serviceId) => {
1653
1697
  const isActive = activeServiceId === serviceId;
1654
1698
  return mergeClasses(styles.menuItem, isActive && styles.menuItemActive);
@@ -1774,7 +1818,7 @@ DatePickerInput.displayName = "DatePickerInput";
1774
1818
  var DatePickerInput_default = DatePickerInput;
1775
1819
 
1776
1820
  // src/components/InputDynamic/InputDynamic.constants.ts
1777
- var DEFAULT_LABELS6 = {
1821
+ var DEFAULT_LABELS7 = {
1778
1822
  id: {
1779
1823
  emailOrPhonePlaceholder: "Email atau Nomor HP",
1780
1824
  emailPlaceholder: "Email",
@@ -2039,7 +2083,7 @@ var InputDynamic = ({
2039
2083
  labels
2040
2084
  }) => {
2041
2085
  const styles = useStyles7();
2042
- const mergedLabels = { ...DEFAULT_LABELS6[language], ...labels };
2086
+ const mergedLabels = { ...DEFAULT_LABELS7[language], ...labels };
2043
2087
  const [showPassword, setShowPassword] = useState(false);
2044
2088
  const [isPhoneMode, setIsPhoneMode] = useState(false);
2045
2089
  const [emailOrPhoneType, setEmailOrPhoneType] = useState("none");
@@ -3137,7 +3181,7 @@ var DEFAULT_COUNTRY_CODES = [
3137
3181
  ];
3138
3182
 
3139
3183
  // src/components/CardTicketSearch/CardTicketSearch.constants.ts
3140
- var DEFAULT_LABELS7 = {
3184
+ var DEFAULT_LABELS8 = {
3141
3185
  id: {
3142
3186
  fromLabel: "Dari",
3143
3187
  toLabel: "Ke",
@@ -3154,7 +3198,11 @@ var DEFAULT_LABELS7 = {
3154
3198
  placeholderReturnDate: "Pilih Tanggal Kepulangan",
3155
3199
  placeholderTypeClass: "Pilih Kelas Layanan",
3156
3200
  placeholderTypeService: "Pilih Jenis Layanan",
3157
- placeholderPassenger: "Pilih Jumlah Penumpang"
3201
+ placeholderPassenger: "Pilih Jumlah Penumpang",
3202
+ errorOriginRequired: "Pelabuhan asal wajib diisi",
3203
+ errorDestinationRequired: "Pelabuhan tujuan wajib diisi",
3204
+ errorDepartureDateRequired: "Tanggal Berangkat wajib diisi",
3205
+ errorReturnDateRequired: "Tanggal Pulang wajib diisi"
3158
3206
  },
3159
3207
  en: {
3160
3208
  fromLabel: "From",
@@ -3172,7 +3220,11 @@ var DEFAULT_LABELS7 = {
3172
3220
  placeholderReturnDate: "Select Return Date",
3173
3221
  placeholderTypeClass: "Select Service Class",
3174
3222
  placeholderTypeService: "Select Service Type",
3175
- placeholderPassenger: "Select Number of Passengers"
3223
+ placeholderPassenger: "Select Number of Passengers",
3224
+ errorOriginRequired: "Origin port is required",
3225
+ errorDestinationRequired: "Destination port is required",
3226
+ errorDepartureDateRequired: "Departure date is required",
3227
+ errorReturnDateRequired: "Return date is required"
3176
3228
  }
3177
3229
  };
3178
3230
  var useStyles8 = makeStyles({
@@ -3313,7 +3365,7 @@ var CardTicketSearch = ({
3313
3365
  }) => {
3314
3366
  const styles = useStyles8();
3315
3367
  const labels = React5.useMemo(
3316
- () => ({ ...DEFAULT_LABELS7[language], ...customLabels }),
3368
+ () => ({ ...DEFAULT_LABELS8[language], ...customLabels }),
3317
3369
  [language, customLabels]
3318
3370
  );
3319
3371
  const { control, setValue, getValues, handleSubmit } = useForm({
@@ -3342,7 +3394,17 @@ var CardTicketSearch = ({
3342
3394
  setValue("serviceClass", serviceClass);
3343
3395
  setValue("typeOfService", typeOfService);
3344
3396
  setValue("passenger", passenger);
3345
- }, [from, to, startDate, endDate, roundTrip, serviceClass, typeOfService, passenger, setValue]);
3397
+ }, [
3398
+ from,
3399
+ to,
3400
+ startDate,
3401
+ endDate,
3402
+ roundTrip,
3403
+ serviceClass,
3404
+ typeOfService,
3405
+ passenger,
3406
+ setValue
3407
+ ]);
3346
3408
  React5.useEffect(() => {
3347
3409
  if (onRoundTripChange) {
3348
3410
  onRoundTripChange(roundTripValue);
@@ -3419,114 +3481,150 @@ var CardTicketSearch = ({
3419
3481
  children: /* @__PURE__ */ jsx("form", { onSubmit: handleSubmit(handleFormSubmit), children: /* @__PURE__ */ jsxs(Row, { style: { width: "100%" }, className: styles.formInnerRow, children: [
3420
3482
  /* @__PURE__ */ jsx(Col, { xs: 12, sm: 12, lg: 12, xl: 6, xxl: 6, xxxl: 6, children: /* @__PURE__ */ jsxs(Row, { style: { gap: "16px" }, className: styles.formFieldRow, children: [
3421
3483
  /* @__PURE__ */ jsx(Col, { xs: 12, sm: 12, lg: 12, xl: 12, xxl: 12, xxxl: 12, children: /* @__PURE__ */ jsx("div", { className: styles.formField, children: /* @__PURE__ */ jsxs(Row, { children: [
3422
- /* @__PURE__ */ jsxs(Col, { xs: 12, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12, xxxl: 12, children: [
3423
- /* @__PURE__ */ jsx(
3424
- InputDynamic_default,
3425
- {
3426
- name: "from",
3427
- label: labels.fromLabel,
3428
- control,
3429
- type: "text",
3430
- contentBefore: /* @__PURE__ */ jsx(
3431
- Icon$1,
3484
+ /* @__PURE__ */ jsxs(
3485
+ Col,
3486
+ {
3487
+ xs: 12,
3488
+ sm: 12,
3489
+ md: 12,
3490
+ lg: 12,
3491
+ xl: 12,
3492
+ xxl: 12,
3493
+ xxxl: 12,
3494
+ children: [
3495
+ /* @__PURE__ */ jsx(
3496
+ InputDynamic_default,
3432
3497
  {
3433
- icon: "fluent:vehicle-ship-16-filled",
3434
- color: tokens.colorBrandBackground
3498
+ name: "from",
3499
+ label: labels.fromLabel,
3500
+ control,
3501
+ type: "text",
3502
+ contentBefore: /* @__PURE__ */ jsx(
3503
+ Icon$1,
3504
+ {
3505
+ icon: "fluent:vehicle-ship-16-filled",
3506
+ color: tokens.colorBrandBackground
3507
+ }
3508
+ ),
3509
+ appearance: "filled-lighter",
3510
+ size: "medium",
3511
+ placeholder: labels.placeholderPort,
3512
+ onClick: onFromClick,
3513
+ onChange: handleFromChange,
3514
+ validationRules: {
3515
+ required: labels.errorOriginRequired
3516
+ },
3517
+ required: true
3435
3518
  }
3436
3519
  ),
3437
- appearance: "filled-lighter",
3438
- size: "medium",
3439
- placeholder: labels.placeholderPort,
3440
- onClick: onFromClick,
3441
- onChange: handleFromChange,
3442
- validationRules: {
3443
- required: "Pelabuhan asal wajib diisi"
3444
- },
3445
- required: true
3446
- }
3447
- ),
3448
- /* @__PURE__ */ jsxs("div", { className: styles.deviderButton, children: [
3449
- /* @__PURE__ */ jsx(Divider, {}),
3450
- " ",
3451
- /* @__PURE__ */ jsx(
3452
- Button,
3453
- {
3454
- onClick: onSwitchClick,
3455
- className: styles.buttonSwitch,
3456
- shape: "circular",
3457
- appearance: "secondary",
3458
- size: "large",
3459
- disabled: switchDisabled,
3460
- icon: /* @__PURE__ */ jsx(
3461
- "div",
3520
+ /* @__PURE__ */ jsxs("div", { className: styles.deviderButton, children: [
3521
+ /* @__PURE__ */ jsx(Divider, {}),
3522
+ " ",
3523
+ /* @__PURE__ */ jsx(
3524
+ Button,
3462
3525
  {
3463
- className: `${styles.switchIcon} ${isRotating ? styles.switchIconRotate : ""}`,
3464
- children: /* @__PURE__ */ jsx(
3465
- "img",
3526
+ onClick: onSwitchClick,
3527
+ className: styles.buttonSwitch,
3528
+ shape: "circular",
3529
+ appearance: "secondary",
3530
+ size: "large",
3531
+ disabled: switchDisabled,
3532
+ icon: /* @__PURE__ */ jsx(
3533
+ "div",
3466
3534
  {
3467
- src: "/assets/images/icons/switch.svg",
3468
- alt: "Switch",
3469
- width: 26,
3470
- height: 26
3535
+ className: `${styles.switchIcon} ${isRotating ? styles.switchIconRotate : ""}`,
3536
+ children: /* @__PURE__ */ jsx(
3537
+ "img",
3538
+ {
3539
+ src: "/assets/images/icons/switch.svg",
3540
+ alt: "Switch",
3541
+ width: 26,
3542
+ height: 26
3543
+ }
3544
+ )
3471
3545
  }
3472
3546
  )
3473
3547
  }
3474
3548
  )
3475
- }
3476
- )
3477
- ] })
3478
- ] }),
3479
- /* @__PURE__ */ jsx(Col, { xs: 12, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12, xxxl: 12, children: /* @__PURE__ */ jsx(
3480
- InputDynamic_default,
3549
+ ] })
3550
+ ]
3551
+ }
3552
+ ),
3553
+ /* @__PURE__ */ jsx(
3554
+ Col,
3481
3555
  {
3482
- name: "to",
3483
- label: labels.toLabel,
3484
- control,
3485
- type: "text",
3486
- contentBefore: /* @__PURE__ */ jsx(
3487
- Icon$1,
3556
+ xs: 12,
3557
+ sm: 12,
3558
+ md: 12,
3559
+ lg: 12,
3560
+ xl: 12,
3561
+ xxl: 12,
3562
+ xxxl: 12,
3563
+ children: /* @__PURE__ */ jsx(
3564
+ InputDynamic_default,
3488
3565
  {
3489
- icon: "fluent:location-24-filled",
3490
- color: tokens.colorBrandBackground
3566
+ name: "to",
3567
+ label: labels.toLabel,
3568
+ control,
3569
+ type: "text",
3570
+ contentBefore: /* @__PURE__ */ jsx(
3571
+ Icon$1,
3572
+ {
3573
+ icon: "fluent:location-24-filled",
3574
+ color: tokens.colorBrandBackground
3575
+ }
3576
+ ),
3577
+ disabled: toDisabled,
3578
+ appearance: "filled-lighter",
3579
+ size: "medium",
3580
+ placeholder: labels.placeholderDestinationPort,
3581
+ onClick: onToClick,
3582
+ validationRules: {
3583
+ required: labels.errorDestinationRequired
3584
+ },
3585
+ required: true
3491
3586
  }
3492
- ),
3493
- disabled: toDisabled,
3494
- appearance: "filled-lighter",
3495
- size: "medium",
3496
- placeholder: labels.placeholderDestinationPort,
3497
- onClick: onToClick,
3498
- validationRules: {
3499
- required: "Pelabuhan tujuan wajib diisi"
3500
- },
3501
- required: true
3587
+ )
3502
3588
  }
3503
- ) })
3589
+ )
3504
3590
  ] }) }) }),
3505
3591
  /* @__PURE__ */ jsx(Col, { xs: 12, sm: 12, lg: 12, xl: 12, xxl: 12, xxxl: 12, children: /* @__PURE__ */ jsx("div", { className: styles.formField, children: /* @__PURE__ */ jsxs(Row, { style: { height: "100%" }, children: [
3506
- /* @__PURE__ */ jsx(Col, { xs: 7, sm: 7, md: 7, lg: 7, xl: 7, xxl: 7, xxxl: 7, children: /* @__PURE__ */ jsx("div", { style: { position: "relative", zIndex: 2 }, children: /* @__PURE__ */ jsx(
3507
- InputDynamic_default,
3592
+ /* @__PURE__ */ jsx(
3593
+ Col,
3508
3594
  {
3509
- name: "startDate",
3510
- label: labels.departureDateLabel,
3511
- control,
3512
- type: "text",
3513
- contentBefore: /* @__PURE__ */ jsx(
3514
- Icon$1,
3595
+ xs: 7,
3596
+ sm: 7,
3597
+ md: 7,
3598
+ lg: 7,
3599
+ xl: 7,
3600
+ xxl: 7,
3601
+ xxxl: 7,
3602
+ children: /* @__PURE__ */ jsx("div", { style: { position: "relative", zIndex: 2 }, children: /* @__PURE__ */ jsx(
3603
+ InputDynamic_default,
3515
3604
  {
3516
- icon: "fluent:calendar-24-filled",
3517
- color: tokens.colorBrandBackground
3605
+ name: "startDate",
3606
+ label: labels.departureDateLabel,
3607
+ control,
3608
+ type: "text",
3609
+ contentBefore: /* @__PURE__ */ jsx(
3610
+ Icon$1,
3611
+ {
3612
+ icon: "fluent:calendar-24-filled",
3613
+ color: tokens.colorBrandBackground
3614
+ }
3615
+ ),
3616
+ appearance: "filled-lighter",
3617
+ size: "medium",
3618
+ placeholder: labels.placeholderDepartureDate,
3619
+ onClick: onStartDateClick,
3620
+ required: true,
3621
+ validationRules: {
3622
+ required: labels.errorDepartureDateRequired
3623
+ }
3518
3624
  }
3519
- ),
3520
- appearance: "filled-lighter",
3521
- size: "medium",
3522
- placeholder: labels.placeholderDepartureDate,
3523
- onClick: onStartDateClick,
3524
- required: true,
3525
- validationRules: {
3526
- required: "Tanggal Berangkat wajib diisi"
3527
- }
3625
+ ) })
3528
3626
  }
3529
- ) }) }),
3627
+ ),
3530
3628
  showRoundTrip && /* @__PURE__ */ jsx(
3531
3629
  Col,
3532
3630
  {
@@ -3551,32 +3649,44 @@ var CardTicketSearch = ({
3551
3649
  )
3552
3650
  }
3553
3651
  ),
3554
- roundTripValue && /* @__PURE__ */ jsx(Col, { xs: 12, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12, xxxl: 12, children: /* @__PURE__ */ jsx(
3555
- InputDynamic_default,
3652
+ roundTripValue && /* @__PURE__ */ jsx(
3653
+ Col,
3556
3654
  {
3557
- name: "endDate",
3558
- label: labels.returnDateLabel,
3559
- control,
3560
- type: "text",
3561
- contentBefore: /* @__PURE__ */ jsx(
3562
- Icon$1,
3655
+ xs: 12,
3656
+ sm: 12,
3657
+ md: 12,
3658
+ lg: 12,
3659
+ xl: 12,
3660
+ xxl: 12,
3661
+ xxxl: 12,
3662
+ children: /* @__PURE__ */ jsx(
3663
+ InputDynamic_default,
3563
3664
  {
3564
- icon: "fluent:calendar-24-filled",
3565
- color: tokens.colorBrandBackground
3665
+ name: "endDate",
3666
+ label: labels.returnDateLabel,
3667
+ control,
3668
+ type: "text",
3669
+ contentBefore: /* @__PURE__ */ jsx(
3670
+ Icon$1,
3671
+ {
3672
+ icon: "fluent:calendar-24-filled",
3673
+ color: tokens.colorBrandBackground
3674
+ }
3675
+ ),
3676
+ appearance: "filled-lighter",
3677
+ size: "medium",
3678
+ placeholder: labels.placeholderReturnDate,
3679
+ onClick: onEndDateClick,
3680
+ disabled: endDateDisabled,
3681
+ style: { borderColor: "transparent" },
3682
+ required: roundTripValue,
3683
+ validationRules: {
3684
+ required: labels.errorReturnDateRequired
3685
+ }
3566
3686
  }
3567
- ),
3568
- appearance: "filled-lighter",
3569
- size: "medium",
3570
- placeholder: labels.placeholderReturnDate,
3571
- onClick: onEndDateClick,
3572
- disabled: endDateDisabled,
3573
- style: { borderColor: "transparent" },
3574
- required: roundTripValue,
3575
- validationRules: {
3576
- required: "Tanggal Pulang wajib diisi"
3577
- }
3687
+ )
3578
3688
  }
3579
- ) })
3689
+ )
3580
3690
  ] }) }) })
3581
3691
  ] }) }),
3582
3692
  /* @__PURE__ */ jsx(Visible, { xl: true, xxl: true, xxxl: true, children: /* @__PURE__ */ jsx(
@@ -3588,7 +3698,11 @@ var CardTicketSearch = ({
3588
3698
  xl: 1,
3589
3699
  xxl: 1,
3590
3700
  xxxl: 1,
3591
- style: { display: "flex", alignItems: "center", justifyContent: "center" },
3701
+ style: {
3702
+ display: "flex",
3703
+ alignItems: "center",
3704
+ justifyContent: "center"
3705
+ },
3592
3706
  children: /* @__PURE__ */ jsx(Divider, { vertical: true, style: { height: "100%" } })
3593
3707
  }
3594
3708
  ) }),
@@ -3608,71 +3722,107 @@ var CardTicketSearch = ({
3608
3722
  className: styles.serviceCol,
3609
3723
  children: /* @__PURE__ */ jsxs(Row, { style: { height: "100%", gap: "16px" }, children: [
3610
3724
  /* @__PURE__ */ jsx(Col, { xs: 12, sm: 12, lg: 12, xl: 12, xxl: 12, xxxl: 12, children: /* @__PURE__ */ jsx("div", { className: styles.formField, children: /* @__PURE__ */ jsxs(Row, { style: { height: "100%", gap: "16px" }, children: [
3611
- /* @__PURE__ */ jsx(Col, { xs: 12, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12, xxxl: 12, children: /* @__PURE__ */ jsx(
3612
- InputDynamic_default,
3725
+ /* @__PURE__ */ jsx(
3726
+ Col,
3613
3727
  {
3614
- name: "serviceClass",
3615
- label: labels.serviceClassLabel,
3616
- control,
3617
- type: "text",
3618
- contentBefore: /* @__PURE__ */ jsx(
3619
- Icon$1,
3728
+ xs: 12,
3729
+ sm: 12,
3730
+ md: 12,
3731
+ lg: 12,
3732
+ xl: 12,
3733
+ xxl: 12,
3734
+ xxxl: 12,
3735
+ children: /* @__PURE__ */ jsx(
3736
+ InputDynamic_default,
3620
3737
  {
3621
- icon: "fluent:ribbon-star-24-filled",
3622
- color: tokens.colorBrandBackground
3738
+ name: "serviceClass",
3739
+ label: labels.serviceClassLabel,
3740
+ control,
3741
+ type: "text",
3742
+ contentBefore: /* @__PURE__ */ jsx(
3743
+ Icon$1,
3744
+ {
3745
+ icon: "fluent:ribbon-star-24-filled",
3746
+ color: tokens.colorBrandBackground
3747
+ }
3748
+ ),
3749
+ appearance: "filled-lighter",
3750
+ size: "medium",
3751
+ placeholder: labels.placeholderTypeClass,
3752
+ onClick: onServiceClassClick,
3753
+ required: true,
3754
+ disabled: serviceClassDisabled
3623
3755
  }
3624
- ),
3625
- appearance: "filled-lighter",
3626
- size: "medium",
3627
- placeholder: labels.placeholderTypeClass,
3628
- onClick: onServiceClassClick,
3629
- required: true,
3630
- disabled: serviceClassDisabled
3756
+ )
3631
3757
  }
3632
- ) }),
3633
- /* @__PURE__ */ jsx(Col, { xs: 12, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12, xxxl: 12, children: /* @__PURE__ */ jsx(
3634
- InputDynamic_default,
3758
+ ),
3759
+ /* @__PURE__ */ jsx(
3760
+ Col,
3635
3761
  {
3636
- name: "typeOfService",
3637
- label: labels.typeOfServiceLabel,
3638
- control,
3639
- type: "text",
3640
- contentBefore: /* @__PURE__ */ jsx(
3641
- Icon$1,
3762
+ xs: 12,
3763
+ sm: 12,
3764
+ md: 12,
3765
+ lg: 12,
3766
+ xl: 12,
3767
+ xxl: 12,
3768
+ xxxl: 12,
3769
+ children: /* @__PURE__ */ jsx(
3770
+ InputDynamic_default,
3642
3771
  {
3643
- icon: "fluent:apps-list-24-filled",
3644
- color: tokens.colorBrandBackground
3772
+ name: "typeOfService",
3773
+ label: labels.typeOfServiceLabel,
3774
+ control,
3775
+ type: "text",
3776
+ contentBefore: /* @__PURE__ */ jsx(
3777
+ Icon$1,
3778
+ {
3779
+ icon: "fluent:apps-list-24-filled",
3780
+ color: tokens.colorBrandBackground
3781
+ }
3782
+ ),
3783
+ appearance: "filled-lighter",
3784
+ size: "medium",
3785
+ placeholder: labels.placeholderTypeService,
3786
+ onClick: onTypeOfServiceClick,
3787
+ required: true,
3788
+ disabled: typeOfServiceDisabled
3645
3789
  }
3646
- ),
3647
- appearance: "filled-lighter",
3648
- size: "medium",
3649
- placeholder: labels.placeholderTypeService,
3650
- onClick: onTypeOfServiceClick,
3651
- required: true,
3652
- disabled: typeOfServiceDisabled
3790
+ )
3653
3791
  }
3654
- ) }),
3655
- showPassengerField && /* @__PURE__ */ jsx(Col, { xs: 12, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12, xxxl: 12, children: /* @__PURE__ */ jsx(
3656
- InputDynamic_default,
3792
+ ),
3793
+ showPassengerField && /* @__PURE__ */ jsx(
3794
+ Col,
3657
3795
  {
3658
- required: true,
3659
- name: "passenger",
3660
- label: labels.passengerLabel,
3661
- control,
3662
- type: "text",
3663
- contentBefore: /* @__PURE__ */ jsx(
3664
- Icon$1,
3796
+ xs: 12,
3797
+ sm: 12,
3798
+ md: 12,
3799
+ lg: 12,
3800
+ xl: 12,
3801
+ xxl: 12,
3802
+ xxxl: 12,
3803
+ children: /* @__PURE__ */ jsx(
3804
+ InputDynamic_default,
3665
3805
  {
3666
- icon: "fluent:people-24-filled",
3667
- color: tokens.colorBrandBackground
3806
+ required: true,
3807
+ name: "passenger",
3808
+ label: labels.passengerLabel,
3809
+ control,
3810
+ type: "text",
3811
+ contentBefore: /* @__PURE__ */ jsx(
3812
+ Icon$1,
3813
+ {
3814
+ icon: "fluent:people-24-filled",
3815
+ color: tokens.colorBrandBackground
3816
+ }
3817
+ ),
3818
+ appearance: "filled-lighter",
3819
+ size: "medium",
3820
+ placeholder: labels.placeholderPassenger,
3821
+ onClick: onPassengerClick
3668
3822
  }
3669
- ),
3670
- appearance: "filled-lighter",
3671
- size: "medium",
3672
- placeholder: labels.placeholderPassenger,
3673
- onClick: onPassengerClick
3823
+ )
3674
3824
  }
3675
- ) })
3825
+ )
3676
3826
  ] }) }) }),
3677
3827
  /* @__PURE__ */ jsx(Col, { xs: 12, sm: 12, lg: 12, xl: 12, xxl: 12, xxxl: 12, children: /* @__PURE__ */ jsx(
3678
3828
  Button,
@@ -3699,7 +3849,7 @@ var CardTicketSearch = ({
3699
3849
  };
3700
3850
 
3701
3851
  // src/components/CardTicketSearchSummary/CardTicketSearchSummary.constants.ts
3702
- var DEFAULT_LABELS8 = {
3852
+ var DEFAULT_LABELS9 = {
3703
3853
  id: {
3704
3854
  originHarbor: "Pelabuhan Keberangkatan",
3705
3855
  destinationHarbor: "Pelabuhan Tujuan",
@@ -3800,7 +3950,7 @@ var CardTicketSearchSummary = ({
3800
3950
  children
3801
3951
  }) => {
3802
3952
  const styles = useStyles9();
3803
- const mergedLabels = { ...DEFAULT_LABELS8[language], ...labels };
3953
+ const mergedLabels = { ...DEFAULT_LABELS9[language], ...labels };
3804
3954
  const { width } = useWindowSize();
3805
3955
  const getCircularConfig = () => {
3806
3956
  if (width <= parseInt(extendedTokens.breakpointXs))
@@ -4125,7 +4275,7 @@ var CardTicketSearchSummary = ({
4125
4275
  };
4126
4276
 
4127
4277
  // src/components/ModalSearchHarbor/ModalSearchHarbor.constants.ts
4128
- var DEFAULT_LABELS9 = {
4278
+ var DEFAULT_LABELS10 = {
4129
4279
  id: {
4130
4280
  title: "Pilih Pelabuhan",
4131
4281
  searchPlaceholder: "Cari Pelabuhan...",
@@ -4277,7 +4427,7 @@ var ModalSearchHarbor = ({
4277
4427
  onClearLastSearched
4278
4428
  }) => {
4279
4429
  const styles = useStyles10();
4280
- const mergedLabels = { ...DEFAULT_LABELS9[language], ...labels };
4430
+ const mergedLabels = { ...DEFAULT_LABELS10[language], ...labels };
4281
4431
  const handleSelect = (harbor) => {
4282
4432
  onAddLastSearched(harbor);
4283
4433
  onSelectHarbor(harbor);
@@ -4425,7 +4575,7 @@ var ModalSearchHarbor = ({
4425
4575
  };
4426
4576
 
4427
4577
  // src/components/ModalSelectDate/ModalSelectDate.constants.ts
4428
- var DEFAULT_LABELS10 = {
4578
+ var DEFAULT_LABELS11 = {
4429
4579
  id: {
4430
4580
  title: "Pilih Tanggal",
4431
4581
  oneWay: "Sekali Jalan",
@@ -4558,7 +4708,7 @@ var ModalSelectDate = ({
4558
4708
  showRoundtrip = true
4559
4709
  }) => {
4560
4710
  const styles = useStyles11();
4561
- const mergedLabels = { ...DEFAULT_LABELS10[language], ...labels };
4711
+ const mergedLabels = { ...DEFAULT_LABELS11[language], ...labels };
4562
4712
  useEffect(() => {
4563
4713
  moment.locale(language === "id" ? "id" : "en");
4564
4714
  }, [language]);
@@ -4781,7 +4931,7 @@ var ModalSelectDate = ({
4781
4931
  };
4782
4932
 
4783
4933
  // src/components/ModalService/ModalService.constants.ts
4784
- var DEFAULT_LABELS11 = {
4934
+ var DEFAULT_LABELS12 = {
4785
4935
  id: {
4786
4936
  title: "Pilih Kelas Layanan",
4787
4937
  loading: "Memuat...",
@@ -4883,7 +5033,7 @@ var ModalService = ({
4883
5033
  isError = false
4884
5034
  }) => {
4885
5035
  const styles = useStyles12();
4886
- const mergedLabels = { ...DEFAULT_LABELS11[language], ...labels };
5036
+ const mergedLabels = { ...DEFAULT_LABELS12[language], ...labels };
4887
5037
  const displayTitle = title || mergedLabels.title;
4888
5038
  const [selectedServices, setSelectedServices] = useState(selectedServiceIds);
4889
5039
  useEffect(() => {
@@ -4989,7 +5139,7 @@ var ModalService = ({
4989
5139
  };
4990
5140
 
4991
5141
  // src/components/ModalTotalPassengers/ModalTotalPassengers.constants.ts
4992
- var DEFAULT_LABELS12 = {
5142
+ var DEFAULT_LABELS13 = {
4993
5143
  id: {
4994
5144
  title: "Pilih Jumlah Penumpang",
4995
5145
  infoMessage: "Anda dapat menambahkan hingga {maxPassengers} penumpang pada golongan kendaraan ini.",
@@ -5096,7 +5246,7 @@ var ModalTotalPassengers = ({
5096
5246
  infoMessage
5097
5247
  }) => {
5098
5248
  const styles = useStyles13();
5099
- const mergedLabels = { ...DEFAULT_LABELS12[language], ...labels };
5249
+ const mergedLabels = { ...DEFAULT_LABELS13[language], ...labels };
5100
5250
  const [passengers, setPassengers] = useState([]);
5101
5251
  const [openItems, setOpenItems] = useState([]);
5102
5252
  const defaultInfoMessage = mergedLabels.infoMessage.replace(
@@ -5361,7 +5511,7 @@ var ModalTotalPassengers = ({
5361
5511
  };
5362
5512
 
5363
5513
  // src/components/ModalTypeOfService/ModalTypeOfService.constants.ts
5364
- var DEFAULT_LABELS13 = {
5514
+ var DEFAULT_LABELS14 = {
5365
5515
  id: {
5366
5516
  title: "Pilih Tipe Layanan",
5367
5517
  cancelButton: "Batal",
@@ -5442,7 +5592,7 @@ var ModalTypeOfService = ({
5442
5592
  renderImage
5443
5593
  }) => {
5444
5594
  const styles = useStyles14();
5445
- const mergedLabels = { ...DEFAULT_LABELS13[language], ...labels };
5595
+ const mergedLabels = { ...DEFAULT_LABELS14[language], ...labels };
5446
5596
  const [selectedServiceTitle, setSelectedServiceTitle] = useState(
5447
5597
  selectedService?.title || ""
5448
5598
  );
@@ -5684,6 +5834,35 @@ var ModalTypeOfService = ({
5684
5834
  };
5685
5835
 
5686
5836
  // src/components/SortMenu/SortMenu.constants.ts
5837
+ var DEFAULT_LABELS15 = {
5838
+ id: {
5839
+ filterButtonText: "Filter",
5840
+ sortButtonText: "Urutkan Berdasarkan",
5841
+ clearFiltersText: "{count} Filter Dipilih",
5842
+ recommendation: "Rekomendasi",
5843
+ highestPrice: "Harga Tertinggi",
5844
+ lowestPrice: "Harga Terendah",
5845
+ earliestDeparture: "Keberangkatan Paling Awal",
5846
+ latestDeparture: "Keberangkatan Paling Akhir"
5847
+ },
5848
+ en: {
5849
+ filterButtonText: "Filter",
5850
+ sortButtonText: "Sort By",
5851
+ clearFiltersText: "{count} Filters Selected",
5852
+ recommendation: "Recommendation",
5853
+ highestPrice: "Highest Price",
5854
+ lowestPrice: "Lowest Price",
5855
+ earliestDeparture: "Earliest Departure",
5856
+ latestDeparture: "Latest Departure"
5857
+ }
5858
+ };
5859
+ var getSortOptions = (labels) => [
5860
+ { value: "rekomendasi", label: labels.recommendation },
5861
+ { value: "harga-tertinggi", label: labels.highestPrice },
5862
+ { value: "harga-terendah", label: labels.lowestPrice },
5863
+ { value: "keberangkatan-paling-awal", label: labels.earliestDeparture },
5864
+ { value: "keberangkatan-paling-akhir", label: labels.latestDeparture }
5865
+ ];
5687
5866
  var DEFAULT_SORT_OPTIONS = [
5688
5867
  { value: "rekomendasi", label: "Rekomendasi" },
5689
5868
  { value: "harga-tertinggi", label: "Harga Tertinggi" },
@@ -5719,17 +5898,50 @@ var useStyles15 = makeStyles({
5719
5898
  }
5720
5899
  });
5721
5900
  var SortMenu = ({
5901
+ language = "id",
5902
+ labels: customLabels,
5722
5903
  value,
5723
5904
  onChange,
5724
5905
  totalActiveFilters = 0,
5725
5906
  onFilterClick,
5726
5907
  onClearFilters,
5727
- sortOptions = DEFAULT_SORT_OPTIONS,
5728
- filterButtonText = "Filter",
5729
- sortButtonText = "Urutkan Berdasarkan",
5730
- clearFiltersText = "{count} Filter Dipilih"
5908
+ sortOptions: customSortOptions,
5909
+ filterButtonText: deprecatedFilterButtonText,
5910
+ sortButtonText: deprecatedSortButtonText,
5911
+ clearFiltersText: deprecatedClearFiltersText
5731
5912
  }) => {
5732
5913
  const styles = useStyles15();
5914
+ const labels = React5.useMemo(
5915
+ () => ({
5916
+ ...DEFAULT_LABELS15[language],
5917
+ ...customLabels,
5918
+ // Fallback to deprecated props if provided
5919
+ ...deprecatedFilterButtonText && {
5920
+ filterButtonText: deprecatedFilterButtonText
5921
+ },
5922
+ ...deprecatedSortButtonText && {
5923
+ sortButtonText: deprecatedSortButtonText
5924
+ },
5925
+ ...deprecatedClearFiltersText && {
5926
+ clearFiltersText: deprecatedClearFiltersText
5927
+ }
5928
+ }),
5929
+ [
5930
+ language,
5931
+ customLabels,
5932
+ deprecatedFilterButtonText,
5933
+ deprecatedSortButtonText,
5934
+ deprecatedClearFiltersText
5935
+ ]
5936
+ );
5937
+ const sortOptions = React5.useMemo(
5938
+ () => customSortOptions || getSortOptions(labels),
5939
+ [customSortOptions, labels]
5940
+ );
5941
+ const currentSortLabel = React5.useMemo(
5942
+ () => sortOptions.find((opt) => opt.value === value)?.label || labels.recommendation,
5943
+ [sortOptions, value, labels.recommendation]
5944
+ );
5733
5945
  const handleReset = () => {
5734
5946
  onChange("rekomendasi");
5735
5947
  };
@@ -5744,7 +5956,7 @@ var SortMenu = ({
5744
5956
  shape: "circular",
5745
5957
  className: styles.button,
5746
5958
  onClick: onFilterClick,
5747
- children: filterButtonText
5959
+ children: labels.filterButtonText
5748
5960
  }
5749
5961
  ),
5750
5962
  /* @__PURE__ */ jsxs(Menu, { children: [
@@ -5756,10 +5968,24 @@ var SortMenu = ({
5756
5968
  type: "button",
5757
5969
  shape: "circular",
5758
5970
  className: styles.button,
5759
- children: sortButtonText
5971
+ children: labels.sortButtonText
5760
5972
  }
5761
5973
  ) }),
5762
- /* @__PURE__ */ jsx(MenuPopover, { children: /* @__PURE__ */ jsx(MenuList, { children: /* @__PURE__ */ jsx(RadioGroup, { value, onChange: (_, data) => onChange(data.value), children: sortOptions.map((option) => /* @__PURE__ */ jsx(Radio, { value: option.value, label: option.label }, option.value)) }) }) })
5974
+ /* @__PURE__ */ jsx(MenuPopover, { children: /* @__PURE__ */ jsx(MenuList, { children: /* @__PURE__ */ jsx(
5975
+ RadioGroup,
5976
+ {
5977
+ value,
5978
+ onChange: (_, data) => onChange(data.value),
5979
+ children: sortOptions.map((option) => /* @__PURE__ */ jsx(
5980
+ Radio,
5981
+ {
5982
+ value: option.value,
5983
+ label: option.label
5984
+ },
5985
+ option.value
5986
+ ))
5987
+ }
5988
+ ) }) })
5763
5989
  ] }),
5764
5990
  /* @__PURE__ */ jsx(Divider, { vertical: true, className: styles.divider }),
5765
5991
  /* @__PURE__ */ jsx(
@@ -5772,7 +5998,7 @@ var SortMenu = ({
5772
5998
  type: "button",
5773
5999
  shape: "circular",
5774
6000
  className: styles.button,
5775
- children: getSortLabel(value)
6001
+ children: currentSortLabel
5776
6002
  }
5777
6003
  ),
5778
6004
  totalActiveFilters > 0 && onClearFilters && /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -5787,7 +6013,10 @@ var SortMenu = ({
5787
6013
  onClick: onClearFilters,
5788
6014
  shape: "circular",
5789
6015
  className: styles.button,
5790
- children: clearFiltersText.replace("{count}", totalActiveFilters.toString())
6016
+ children: labels.clearFiltersText.replace(
6017
+ "{count}",
6018
+ totalActiveFilters.toString()
6019
+ )
5791
6020
  }
5792
6021
  )
5793
6022
  ] })
@@ -5795,7 +6024,7 @@ var SortMenu = ({
5795
6024
  };
5796
6025
 
5797
6026
  // src/components/ModalFilterTicket/ModalFilterTicket.constants.ts
5798
- var DEFAULT_LABELS14 = {
6027
+ var DEFAULT_LABELS16 = {
5799
6028
  id: {
5800
6029
  title: "Filter dengan",
5801
6030
  serviceTypeLabel: "Jenis Layanan",
@@ -5809,7 +6038,9 @@ var DEFAULT_LABELS14 = {
5809
6038
  durationLabel: "Durasi perjalanan",
5810
6039
  durationRangeText: (min, max) => `Perjalanan ${min} - ${max} jam`,
5811
6040
  resetButton: "Reset",
5812
- applyButton: "Terapkan"
6041
+ applyButton: "Terapkan",
6042
+ hourUnit: "jam",
6043
+ currencySymbol: "IDR"
5813
6044
  },
5814
6045
  en: {
5815
6046
  title: "Filter by",
@@ -5824,7 +6055,9 @@ var DEFAULT_LABELS14 = {
5824
6055
  durationLabel: "Travel duration",
5825
6056
  durationRangeText: (min, max) => `${min} - ${max} hours trip`,
5826
6057
  resetButton: "Reset",
5827
- applyButton: "Apply"
6058
+ applyButton: "Apply",
6059
+ hourUnit: "hours",
6060
+ currencySymbol: "IDR"
5828
6061
  }
5829
6062
  };
5830
6063
  var DEFAULT_SERVICE_TYPES = [
@@ -5960,7 +6193,7 @@ var ModalFilterTicket = ({
5960
6193
  maxDuration = DEFAULT_DURATION_RANGE.max
5961
6194
  }) => {
5962
6195
  const styles = useStyles16();
5963
- const mergedLabels = { ...DEFAULT_LABELS14[language], ...labels };
6196
+ const mergedLabels = { ...DEFAULT_LABELS16[language], ...labels };
5964
6197
  const [rangeReady, setRangeReady] = useState(false);
5965
6198
  useEffect(() => {
5966
6199
  if (open) {
@@ -5995,7 +6228,9 @@ var ModalFilterTicket = ({
5995
6228
  }
5996
6229
  };
5997
6230
  const formatPrice = (price) => {
5998
- return new Intl.NumberFormat("id-ID").format(price);
6231
+ return new Intl.NumberFormat(language === "id" ? "id-ID" : "en-US").format(
6232
+ price
6233
+ );
5999
6234
  };
6000
6235
  const renderPriceTrack = useCallback(
6001
6236
  ({ props, children }) => {
@@ -6239,11 +6474,13 @@ var ModalFilterTicket = ({
6239
6474
  /* @__PURE__ */ jsxs("div", { className: styles.sliderValues, children: [
6240
6475
  /* @__PURE__ */ jsxs("span", { children: [
6241
6476
  minDuration,
6242
- " jam"
6477
+ " ",
6478
+ mergedLabels.hourUnit
6243
6479
  ] }),
6244
6480
  /* @__PURE__ */ jsxs("span", { children: [
6245
6481
  maxDuration,
6246
- " jam"
6482
+ " ",
6483
+ mergedLabels.hourUnit
6247
6484
  ] })
6248
6485
  ] })
6249
6486
  ] })
@@ -6266,10 +6503,17 @@ var ModalFilterTicket = ({
6266
6503
  };
6267
6504
 
6268
6505
  // src/components/DateFilter/DateFilter.constants.ts
6269
- var DEFAULT_LABELS15 = {
6270
- prevButtonAriaLabel: "Previous dates",
6271
- nextButtonAriaLabel: "Next dates",
6272
- calendarButtonAriaLabel: "Open calendar"
6506
+ var DEFAULT_LABELS17 = {
6507
+ id: {
6508
+ prevButtonAriaLabel: "Tanggal sebelumnya",
6509
+ nextButtonAriaLabel: "Tanggal berikutnya",
6510
+ calendarButtonAriaLabel: "Buka kalender"
6511
+ },
6512
+ en: {
6513
+ prevButtonAriaLabel: "Previous dates",
6514
+ nextButtonAriaLabel: "Next dates",
6515
+ calendarButtonAriaLabel: "Open calendar"
6516
+ }
6273
6517
  };
6274
6518
  var DEFAULT_SCROLL_AMOUNT = 150;
6275
6519
  var useStyles17 = makeStyles({
@@ -6351,11 +6595,15 @@ var DateFilter = ({
6351
6595
  showNavigation = true,
6352
6596
  showCalendarButton = true,
6353
6597
  scrollAmount = DEFAULT_SCROLL_AMOUNT,
6598
+ language = "id",
6354
6599
  labels
6355
6600
  }) => {
6356
6601
  const styles = useStyles17();
6357
6602
  const scrollRef = useRef(null);
6358
- const mergedLabels = { ...DEFAULT_LABELS15, ...labels };
6603
+ const mergedLabels = {
6604
+ ...DEFAULT_LABELS17[language],
6605
+ ...labels
6606
+ };
6359
6607
  const handlePrev = () => {
6360
6608
  scrollRef.current?.scrollBy({ left: -scrollAmount, behavior: "smooth" });
6361
6609
  };
@@ -6413,7 +6661,7 @@ var DateFilter = ({
6413
6661
  };
6414
6662
 
6415
6663
  // src/components/ModalSearchTicket/ModalSearchTicket.constants.ts
6416
- var DEFAULT_LABELS16 = {
6664
+ var DEFAULT_LABELS18 = {
6417
6665
  id: {
6418
6666
  title: "Cari Jadwal Lainnya",
6419
6667
  fromLabel: "Dari",
@@ -6574,7 +6822,7 @@ var ModalSearchTicket = ({
6574
6822
  ...props
6575
6823
  }) => {
6576
6824
  const styles = useStyles18();
6577
- const mergedLabels = { ...DEFAULT_LABELS16[language], ...labels };
6825
+ const mergedLabels = { ...DEFAULT_LABELS18[language], ...labels };
6578
6826
  const { control, setValue, handleSubmit, watch } = useForm({
6579
6827
  defaultValues: {
6580
6828
  ...DEFAULT_FORM_VALUES,
@@ -7011,7 +7259,7 @@ var ModalSearchTicket = ({
7011
7259
  };
7012
7260
 
7013
7261
  // src/components/Stepper/Stepper.constants.ts
7014
- var DEFAULT_LABELS17 = {
7262
+ var DEFAULT_LABELS19 = {
7015
7263
  id: {
7016
7264
  stepperBackgroundAlt: "Latar Belakang Stepper",
7017
7265
  ferryIconAlt: "Ikon Kapal"
@@ -7147,7 +7395,7 @@ var Stepper = ({
7147
7395
  labels
7148
7396
  }) => {
7149
7397
  const styles = useStyles19();
7150
- const mergedLabels = { ...DEFAULT_LABELS17[language], ...labels };
7398
+ const mergedLabels = { ...DEFAULT_LABELS19[language], ...labels };
7151
7399
  const currentStepIndex = useMemo(() => {
7152
7400
  if (typeof currentStep === "number") {
7153
7401
  return steps.findIndex((step) => step.number === currentStep);
@@ -7203,7 +7451,7 @@ var Stepper = ({
7203
7451
  };
7204
7452
 
7205
7453
  // src/components/CardOrdererInfo/CardOrdererInfo.constants.ts
7206
- var DEFAULT_LABELS18 = {
7454
+ var DEFAULT_LABELS20 = {
7207
7455
  id: {
7208
7456
  title: "Informasi Pemesan",
7209
7457
  ordererName: "Nama Pemesan",
@@ -7248,7 +7496,7 @@ var CardOrdererInfo = ({
7248
7496
  className
7249
7497
  }) => {
7250
7498
  const styles = useStyles20();
7251
- const mergedLabels = { ...DEFAULT_LABELS18[language], ...labels };
7499
+ const mergedLabels = { ...DEFAULT_LABELS20[language], ...labels };
7252
7500
  return /* @__PURE__ */ jsxs(Card, { className: className || styles.card, children: [
7253
7501
  /* @__PURE__ */ jsx(Title3, { children: mergedLabels.title }),
7254
7502
  /* @__PURE__ */ jsxs("div", { className: styles.container, children: [
@@ -7269,7 +7517,7 @@ var CardOrdererInfo = ({
7269
7517
  };
7270
7518
 
7271
7519
  // src/components/ModalListPassenger/ModalListPassenger.constants.ts
7272
- var DEFAULT_LABELS19 = {
7520
+ var DEFAULT_LABELS21 = {
7273
7521
  id: {
7274
7522
  title: "Detail Penumpang",
7275
7523
  sameAsOrderer: "Sama Dengan Pemesan",
@@ -7341,7 +7589,7 @@ var ModalListPassenger = ({
7341
7589
  onSameAsOrdererChange
7342
7590
  }) => {
7343
7591
  const styles = useStyles21();
7344
- const mergedLabels = { ...DEFAULT_LABELS19[language], ...labels };
7592
+ const mergedLabels = { ...DEFAULT_LABELS21[language], ...labels };
7345
7593
  const displayTitle = title || mergedLabels.title;
7346
7594
  const handleClose = () => {
7347
7595
  onClose();
@@ -7458,7 +7706,7 @@ var ModalListPassenger = ({
7458
7706
  };
7459
7707
 
7460
7708
  // src/components/ModalPassengerForm/ModalPassengerForm.constants.ts
7461
- var DEFAULT_LABELS20 = {
7709
+ var DEFAULT_LABELS22 = {
7462
7710
  id: {
7463
7711
  title: "Detail Penumpang",
7464
7712
  titleLabel: "Title",
@@ -7559,9 +7807,9 @@ var ModalPassengerForm = ({
7559
7807
  ticketClassOptions
7560
7808
  }) => {
7561
7809
  const styles = useStyles22();
7562
- const mergedLabels = { ...DEFAULT_LABELS20[language], ...labels };
7810
+ const mergedLabels = { ...DEFAULT_LABELS22[language], ...labels };
7563
7811
  const mergedErrors = {
7564
- ...DEFAULT_LABELS20[language].errors,
7812
+ ...DEFAULT_LABELS22[language].errors,
7565
7813
  ...labels?.errors
7566
7814
  };
7567
7815
  const displayTitle = title || mergedLabels.title;
@@ -7761,7 +8009,7 @@ var ModalPassengerForm = ({
7761
8009
  };
7762
8010
 
7763
8011
  // src/components/CardPassengerList/CardPassengerList.constants.ts
7764
- var DEFAULT_LABELS21 = {
8012
+ var DEFAULT_LABELS23 = {
7765
8013
  id: {
7766
8014
  defaultTitle: "Data Penumpang",
7767
8015
  passengerPrefix: "Penumpang"
@@ -7883,7 +8131,7 @@ var CardPassengerList = ({
7883
8131
  className
7884
8132
  }) => {
7885
8133
  const styles = useStyles23();
7886
- const mergedLabels = { ...DEFAULT_LABELS21[language], ...labels };
8134
+ const mergedLabels = { ...DEFAULT_LABELS23[language], ...labels };
7887
8135
  const displayTitle = title || mergedLabels.defaultTitle;
7888
8136
  return /* @__PURE__ */ jsxs(Card, { className: className || styles.card, children: [
7889
8137
  /* @__PURE__ */ jsxs("div", { className: styles.headerContainer, children: [
@@ -7956,7 +8204,7 @@ var CardPassengerList = ({
7956
8204
  };
7957
8205
 
7958
8206
  // src/components/CardVehicleDetail/CardVehicleDetail.constants.ts
7959
- var DEFAULT_LABELS22 = {
8207
+ var DEFAULT_LABELS24 = {
7960
8208
  id: {
7961
8209
  title: "Detail Kendaraan",
7962
8210
  vehicleNumberLabel: "Nomor Kendaraan",
@@ -8014,7 +8262,7 @@ var CardVehicleDetail = ({
8014
8262
  labels
8015
8263
  }) => {
8016
8264
  const styles = useStyles24();
8017
- const mergedLabels = { ...DEFAULT_LABELS22[language], ...labels };
8265
+ const mergedLabels = { ...DEFAULT_LABELS24[language], ...labels };
8018
8266
  return /* @__PURE__ */ jsxs(Card, { className: styles.card, children: [
8019
8267
  /* @__PURE__ */ jsxs(
8020
8268
  "div",
@@ -8074,7 +8322,7 @@ var CardVehicleDetail = ({
8074
8322
  };
8075
8323
 
8076
8324
  // src/components/CardVehicleOwnerForm/CardVehicleOwnerForm.constants.ts
8077
- var DEFAULT_LABELS23 = {
8325
+ var DEFAULT_LABELS25 = {
8078
8326
  id: {
8079
8327
  title: "Informasi Pemilik & Muatan",
8080
8328
  addOwnerButton: "Tambah Pemilik",
@@ -8100,6 +8348,7 @@ var DEFAULT_LABELS23 = {
8100
8348
  cargoReceiverCompanyPlaceholder: "Pilih Nama Perusahaan Penerima Barang",
8101
8349
  cargoReceiverIndividualPlaceholder: "Masukkan Nama Penerima Barang",
8102
8350
  totalWeightLabel: "Berat Muatan dan Kendaraan (Ton)",
8351
+ commentLabel: "Komentar",
8103
8352
  cargoListTitle: "Daftar Muatan",
8104
8353
  cargoItemTitle: "Muatan {index}",
8105
8354
  commodityLabel: "Data Komoditas",
@@ -8120,7 +8369,9 @@ var DEFAULT_LABELS23 = {
8120
8369
  kg: "Kg",
8121
8370
  ton: "Ton",
8122
8371
  unit: "Unit"
8123
- }
8372
+ },
8373
+ pricePlaceholder: "Rp. 0",
8374
+ currencySymbol: "Rp."
8124
8375
  },
8125
8376
  en: {
8126
8377
  title: "Owner & Cargo Information",
@@ -8147,6 +8398,7 @@ var DEFAULT_LABELS23 = {
8147
8398
  cargoReceiverCompanyPlaceholder: "Select Cargo Receiver Company",
8148
8399
  cargoReceiverIndividualPlaceholder: "Enter Cargo Receiver Name",
8149
8400
  totalWeightLabel: "Cargo & Vehicle Weight (Ton)",
8401
+ commentLabel: "Comment",
8150
8402
  cargoListTitle: "Cargo List",
8151
8403
  cargoItemTitle: "Cargo {index}",
8152
8404
  commodityLabel: "Commodity Data",
@@ -8167,7 +8419,9 @@ var DEFAULT_LABELS23 = {
8167
8419
  kg: "Kg",
8168
8420
  ton: "Ton",
8169
8421
  unit: "Unit"
8170
- }
8422
+ },
8423
+ pricePlaceholder: "Rp. 0",
8424
+ currencySymbol: "Rp."
8171
8425
  }
8172
8426
  };
8173
8427
  var useStyles25 = makeStyles({
@@ -8230,7 +8484,7 @@ var CardVehicleOwnerForm = ({
8230
8484
  labels
8231
8485
  }) => {
8232
8486
  const styles = useStyles25();
8233
- const mergedLabels = { ...DEFAULT_LABELS23[language], ...labels };
8487
+ const mergedLabels = { ...DEFAULT_LABELS25[language], ...labels };
8234
8488
  return /* @__PURE__ */ jsxs(Card, { className: styles.card, children: [
8235
8489
  /* @__PURE__ */ jsxs("div", { className: styles.header, children: [
8236
8490
  /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", flex: 1 }, children: [
@@ -8877,7 +9131,7 @@ var CardVehicleOwnerForm = ({
8877
9131
  {
8878
9132
  control,
8879
9133
  name: `owners.${index}.price`,
8880
- placeholder: "Rp. 0",
9134
+ placeholder: mergedLabels.pricePlaceholder,
8881
9135
  disabled: true,
8882
9136
  size: "large",
8883
9137
  type: "text"
@@ -9005,7 +9259,7 @@ var CardVehicleOwnerForm = ({
9005
9259
  };
9006
9260
 
9007
9261
  // src/components/CardBookingTicket/CardBookingTicket.constants.ts
9008
- var DEFAULT_LABELS24 = {
9262
+ var DEFAULT_LABELS26 = {
9009
9263
  id: {
9010
9264
  bookingDetails: "Booking Details",
9011
9265
  routeTitle: "Rute Perjalanan",
@@ -9015,7 +9269,8 @@ var DEFAULT_LABELS24 = {
9015
9269
  previousButton: "Sebelumnya",
9016
9270
  viewBookingButton: "Lihat Pemesanan",
9017
9271
  changePaymentButton: "Ubah Metode Pembayaran",
9018
- timezoneLabel: "WIB"
9272
+ timezoneLabel: "WIB",
9273
+ currencySymbol: "IDR"
9019
9274
  },
9020
9275
  en: {
9021
9276
  bookingDetails: "Booking Details",
@@ -9026,7 +9281,8 @@ var DEFAULT_LABELS24 = {
9026
9281
  previousButton: "Previous",
9027
9282
  viewBookingButton: "View Booking",
9028
9283
  changePaymentButton: "Change Payment Method",
9029
- timezoneLabel: "WIB"
9284
+ timezoneLabel: "WIB",
9285
+ currencySymbol: "IDR"
9030
9286
  }
9031
9287
  };
9032
9288
  var useStyles26 = makeStyles({
@@ -9162,7 +9418,7 @@ var CardBookingTicket = ({
9162
9418
  className
9163
9419
  }) => {
9164
9420
  const styles = useStyles26();
9165
- const mergedLabels = { ...DEFAULT_LABELS24[language], ...labels };
9421
+ const mergedLabels = { ...DEFAULT_LABELS26[language], ...labels };
9166
9422
  return /* @__PURE__ */ jsx("div", { className: `${styles.container} ${className || ""}`, children: /* @__PURE__ */ jsxs("div", { className: styles.bookingDetail, children: [
9167
9423
  /* @__PURE__ */ jsxs(Card, { className: styles.bookingDetailTop, children: [
9168
9424
  /* @__PURE__ */ jsx(Subtitle1, { children: mergedLabels.bookingDetails }),
@@ -9228,7 +9484,8 @@ var CardBookingTicket = ({
9228
9484
  /* @__PURE__ */ jsxs("div", { className: styles.totalPrice, children: [
9229
9485
  /* @__PURE__ */ jsx(Subtitle1, { children: mergedLabels.totalPriceLabel }),
9230
9486
  /* @__PURE__ */ jsxs(Title3, { className: styles.priceText, children: [
9231
- "IDR ",
9487
+ mergedLabels.currencySymbol,
9488
+ " ",
9232
9489
  totalPrice
9233
9490
  ] }),
9234
9491
  /* @__PURE__ */ jsx(
@@ -9299,7 +9556,7 @@ var CardBookingTicket = ({
9299
9556
  };
9300
9557
 
9301
9558
  // src/components/CardFAQ/CardFAQ.constants.ts
9302
- var DEFAULT_LABELS25 = {
9559
+ var DEFAULT_LABELS27 = {
9303
9560
  id: {
9304
9561
  title: "Pertanyaan yang sering diajukan"
9305
9562
  },
@@ -9378,7 +9635,7 @@ var CardFAQ = ({
9378
9635
  className
9379
9636
  }) => {
9380
9637
  const styles = useStyles27();
9381
- const mergedLabels = { ...DEFAULT_LABELS25[language], ...labels };
9638
+ const mergedLabels = { ...DEFAULT_LABELS27[language], ...labels };
9382
9639
  const faqItems = items || DEFAULT_FAQ_ITEMS[language];
9383
9640
  return /* @__PURE__ */ jsxs(Card, { className: styles.faqCard, children: [
9384
9641
  /* @__PURE__ */ jsx(Subtitle1, { children: mergedLabels.title }),
@@ -9415,18 +9672,20 @@ var CardFAQ = ({
9415
9672
  };
9416
9673
 
9417
9674
  // src/components/CardAddon/CardAddon.constants.ts
9418
- var DEFAULT_LABELS26 = {
9675
+ var DEFAULT_LABELS28 = {
9419
9676
  id: {
9420
9677
  viewDetail: "Lihat detail",
9421
9678
  totalPrice: "Total Harga",
9422
9679
  passengerInsurance: "Asuransi Penumpang",
9423
- removeOrder: "Hapus Pesanan"
9680
+ removeOrder: "Hapus Pesanan",
9681
+ currencySymbol: "Rp"
9424
9682
  },
9425
9683
  en: {
9426
9684
  viewDetail: "View Details",
9427
9685
  totalPrice: "Total Price",
9428
9686
  passengerInsurance: "Passenger Insurance",
9429
- removeOrder: "Remove Order"
9687
+ removeOrder: "Remove Order",
9688
+ currencySymbol: "Rp"
9430
9689
  }
9431
9690
  };
9432
9691
  var useStyles28 = makeStyles({
@@ -9603,7 +9862,7 @@ var CardAddon = ({
9603
9862
  className
9604
9863
  }) => {
9605
9864
  const styles = useStyles28();
9606
- const mergedLabels = { ...DEFAULT_LABELS26[language], ...labels };
9865
+ const mergedLabels = { ...DEFAULT_LABELS28[language], ...labels };
9607
9866
  return /* @__PURE__ */ jsx(Card, { className: `${styles.card} ${className || ""}`, children: /* @__PURE__ */ jsxs("div", { className: styles.gapRow, children: [
9608
9867
  /* @__PURE__ */ jsxs("div", { className: styles.titleDivider, children: [
9609
9868
  /* @__PURE__ */ jsx(Title3, { className: styles.textTitle, children: title }),
@@ -9635,8 +9894,11 @@ var CardAddon = ({
9635
9894
  footerData.priceLabel,
9636
9895
  " ",
9637
9896
  /* @__PURE__ */ jsxs(Caption1Stronger, { children: [
9638
- "Rp",
9639
- footerData.price.toLocaleString("id-ID"),
9897
+ mergedLabels.currencySymbol,
9898
+ " ",
9899
+ footerData.price.toLocaleString(
9900
+ language === "id" ? "id-ID" : "en-US"
9901
+ ),
9640
9902
  footerData.priceUnit
9641
9903
  ] })
9642
9904
  ] }) }),
@@ -9681,15 +9943,21 @@ var CardAddon = ({
9681
9943
  ")"
9682
9944
  ] }),
9683
9945
  /* @__PURE__ */ jsxs(Body1, { children: [
9684
- "Rp",
9685
- item.totalPrice.toLocaleString("id-ID")
9946
+ mergedLabels.currencySymbol,
9947
+ " ",
9948
+ item.totalPrice.toLocaleString(
9949
+ language === "id" ? "id-ID" : "en-US"
9950
+ )
9686
9951
  ] })
9687
9952
  ] }, idx)),
9688
9953
  /* @__PURE__ */ jsxs("div", { className: styles.breakdownRow, children: [
9689
9954
  /* @__PURE__ */ jsx(Subtitle2, { children: mergedLabels.totalPrice }),
9690
9955
  /* @__PURE__ */ jsxs(Subtitle2, { children: [
9691
- "Rp",
9692
- assuranceData.totalPrice.toLocaleString("id-ID")
9956
+ mergedLabels.currencySymbol,
9957
+ " ",
9958
+ assuranceData.totalPrice.toLocaleString(
9959
+ language === "id" ? "id-ID" : "en-US"
9960
+ )
9693
9961
  ] })
9694
9962
  ] })
9695
9963
  ] })
@@ -9709,13 +9977,20 @@ var CardAddon = ({
9709
9977
  /* @__PURE__ */ jsx(Body1Strong, { children: item.name }),
9710
9978
  /* @__PURE__ */ jsx(Caption1, { className: styles.mealDescription, children: item.description }),
9711
9979
  /* @__PURE__ */ jsxs(Body1Strong, { className: styles.mealPriceInfo, children: [
9712
- "Rp",
9713
- item.price.toLocaleString("id-ID"),
9714
- " x ",
9980
+ mergedLabels.currencySymbol,
9981
+ " ",
9982
+ item.price.toLocaleString(
9983
+ language === "id" ? "id-ID" : "en-US"
9984
+ ),
9985
+ " ",
9986
+ "x ",
9715
9987
  item.quantity,
9988
+ " = ",
9989
+ mergedLabels.currencySymbol,
9716
9990
  " ",
9717
- "= Rp",
9718
- (item.price * item.quantity).toLocaleString("id-ID")
9991
+ (item.price * item.quantity).toLocaleString(
9992
+ language === "id" ? "id-ID" : "en-US"
9993
+ )
9719
9994
  ] })
9720
9995
  ] }),
9721
9996
  /* @__PURE__ */ jsxs("div", { className: styles.mealActions, children: [
@@ -9770,8 +10045,11 @@ var CardAddon = ({
9770
10045
  /* @__PURE__ */ jsxs("div", { className: styles.totalContainer, children: [
9771
10046
  /* @__PURE__ */ jsx(Subtitle2, { children: footerData.priceLabel }),
9772
10047
  /* @__PURE__ */ jsxs(Subtitle1, { style: { fontSize: tokens.fontSizeBase600 }, children: [
9773
- "Rp. ",
9774
- footerData.price.toLocaleString("id-ID")
10048
+ mergedLabels.currencySymbol,
10049
+ " ",
10050
+ footerData.price.toLocaleString(
10051
+ language === "id" ? "id-ID" : "en-US"
10052
+ )
9775
10053
  ] })
9776
10054
  ] }),
9777
10055
  /* @__PURE__ */ jsx("div", { style: { width: "100%" }, children: /* @__PURE__ */ jsx(
@@ -9795,12 +10073,14 @@ var CardAddon = ({
9795
10073
  };
9796
10074
 
9797
10075
  // src/components/CardMealCatalog/CardMealCatalog.constants.ts
9798
- var DEFAULT_LABELS27 = {
10076
+ var DEFAULT_LABELS29 = {
9799
10077
  id: {
9800
- addButton: "Tambah"
10078
+ addButton: "Tambah",
10079
+ currencySymbol: "Rp"
9801
10080
  },
9802
10081
  en: {
9803
- addButton: "Add"
10082
+ addButton: "Add",
10083
+ currencySymbol: "Rp"
9804
10084
  }
9805
10085
  };
9806
10086
  var useStyles29 = makeStyles({
@@ -9943,7 +10223,7 @@ var CardMealCatalog = ({
9943
10223
  className
9944
10224
  }) => {
9945
10225
  const styles = useStyles29();
9946
- const mergedLabels = { ...DEFAULT_LABELS27[language], ...labels };
10226
+ const mergedLabels = { ...DEFAULT_LABELS29[language], ...labels };
9947
10227
  return /* @__PURE__ */ jsxs("div", { className: `${styles.container} ${className || ""}`, children: [
9948
10228
  /* @__PURE__ */ jsxs("div", { className: styles.banner, children: [
9949
10229
  /* @__PURE__ */ jsx("div", { className: styles.bannerOverlay }),
@@ -9992,8 +10272,11 @@ var CardMealCatalog = ({
9992
10272
  ] }),
9993
10273
  /* @__PURE__ */ jsxs("div", { className: styles.productFooter, children: [
9994
10274
  /* @__PURE__ */ jsxs(Body1, { className: styles.price, children: [
9995
- "Rp",
9996
- item.price.toLocaleString("id-ID")
10275
+ mergedLabels.currencySymbol,
10276
+ " ",
10277
+ item.price.toLocaleString(
10278
+ language === "id" ? "id-ID" : "en-US"
10279
+ )
9997
10280
  ] }),
9998
10281
  item.quantity > 0 ? /* @__PURE__ */ jsxs("div", { className: styles.quantitySelector, children: [
9999
10282
  /* @__PURE__ */ jsx(
@@ -10033,7 +10316,7 @@ var CardMealCatalog = ({
10033
10316
  };
10034
10317
 
10035
10318
  // src/components/CardReview/CardReview.constants.ts
10036
- var DEFAULT_LABELS28 = {
10319
+ var DEFAULT_LABELS30 = {
10037
10320
  id: {},
10038
10321
  en: {}
10039
10322
  };
@@ -10089,7 +10372,7 @@ var CardReview = ({
10089
10372
  headerAction
10090
10373
  }) => {
10091
10374
  const styles = useStyles30();
10092
- ({ ...DEFAULT_LABELS28[language], ...labels });
10375
+ ({ ...DEFAULT_LABELS30[language], ...labels });
10093
10376
  return /* @__PURE__ */ jsxs(Card, { className: `${styles.card} ${className || ""}`, children: [
10094
10377
  /* @__PURE__ */ jsxs("div", { className: styles.headerContainer, children: [
10095
10378
  /* @__PURE__ */ jsx(Subtitle1, { className: styles.headerTitle, children: title }),
@@ -10136,7 +10419,7 @@ var CardReview = ({
10136
10419
  };
10137
10420
 
10138
10421
  // src/components/CardReviewPassenger/CardReviewPassenger.constants.ts
10139
- var DEFAULT_LABELS29 = {
10422
+ var DEFAULT_LABELS31 = {
10140
10423
  id: {
10141
10424
  title: "Penumpang",
10142
10425
  idNumber: "Nomor ID"
@@ -10245,7 +10528,7 @@ var CardReviewPassenger = ({
10245
10528
  className
10246
10529
  }) => {
10247
10530
  const styles = useStyles31();
10248
- const mergedLabels = { ...DEFAULT_LABELS29[language], ...labels };
10531
+ const mergedLabels = { ...DEFAULT_LABELS31[language], ...labels };
10249
10532
  const displayTitle = title || mergedLabels.title;
10250
10533
  return /* @__PURE__ */ jsxs(Card, { className: `${styles.card} ${className || ""}`, children: [
10251
10534
  /* @__PURE__ */ jsxs("div", { className: styles.headerContainer, children: [
@@ -10288,7 +10571,7 @@ var CardReviewPassenger = ({
10288
10571
  };
10289
10572
 
10290
10573
  // src/components/CardPriceDetails/CardPriceDetails.constants.ts
10291
- var DEFAULT_LABELS30 = {
10574
+ var DEFAULT_LABELS32 = {
10292
10575
  id: {
10293
10576
  defaultTitle: "Rincian Harga",
10294
10577
  totalPayment: "Total Pembayaran",
@@ -10300,7 +10583,7 @@ var DEFAULT_LABELS30 = {
10300
10583
  "Tiket akan hangus (expired) apabila Anda belum Masuk Pelabuhan (Check-In) hingga melewati batas waktu jadwal Masuk Pelabuhan yang Anda pilih."
10301
10584
  ],
10302
10585
  agreementInfo: "Dengan menekan tombol \u201CLanjutkan Pembayaran\u201D, maka saya telah membaca dan menyetujui :",
10303
- agreementLinkFerizy: "Syarat & Ketentuan",
10586
+ agreementLinkFerizy: "Syarat & Ketentuan Ferizy",
10304
10587
  agreementCovidInfo: "Ketentuan persyaratan menyeberang sesuai dengan\xA0",
10305
10588
  agreementCovidLink: "Surat Edaran Satgas Covid-19 Nomor 23 Tahun 2022.",
10306
10589
  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.",
@@ -10350,10 +10633,7 @@ var PriceDetailsTerms = ({
10350
10633
  const linkColor = tokens.colorBrandBackground;
10351
10634
  const bookingTerms = labels.bookingTerms;
10352
10635
  const agreementTerms = [
10353
- /* @__PURE__ */ jsxs(Fragment, { children: [
10354
- /* @__PURE__ */ jsx(Link, { href: "/terms-and-conditions", style: { color: linkColor }, children: labels.agreementLinkFerizy }),
10355
- "\xA0Ferizy."
10356
- ] }),
10636
+ /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(Link, { href: "/terms-and-conditions", style: { color: linkColor }, children: labels.agreementLinkFerizy }) }),
10357
10637
  /* @__PURE__ */ jsxs(Fragment, { children: [
10358
10638
  labels.agreementCovidInfo,
10359
10639
  /* @__PURE__ */ jsx(Link, { href: "/surat-edaran-satgas-covid-19", style: { color: linkColor }, children: labels.agreementCovidLink })
@@ -10447,7 +10727,7 @@ var CardPriceDetails = ({
10447
10727
  labels
10448
10728
  }) => {
10449
10729
  const styles = useStyles33();
10450
- const mergedLabels = { ...DEFAULT_LABELS30[language], ...labels };
10730
+ const mergedLabels = { ...DEFAULT_LABELS32[language], ...labels };
10451
10731
  const displayTitle = title || mergedLabels.defaultTitle;
10452
10732
  const getVariantClass = (variant) => {
10453
10733
  switch (variant) {
@@ -10467,10 +10747,10 @@ var CardPriceDetails = ({
10467
10747
  isTaxLike ? /* @__PURE__ */ jsx(Body1Strong, { className: variantClass, children: item.name }) : /* @__PURE__ */ jsx(Caption1, { className: mergeClasses(styles.label, variantClass), children: item.name }),
10468
10748
  isTaxLike ? /* @__PURE__ */ jsxs(Body1Strong, { className: mergeClasses(styles.value, variantClass), children: [
10469
10749
  mergedLabels.currencyPrefix,
10470
- item.price.toLocaleString("id-ID")
10750
+ item.price.toLocaleString(language === "id" ? "id-ID" : "en-US")
10471
10751
  ] }) : /* @__PURE__ */ jsxs(Body1, { className: mergeClasses(styles.value, variantClass), children: [
10472
10752
  item.isRedeem ? "-" : mergedLabels.currencyPrefix,
10473
- item.price.toLocaleString("id-ID")
10753
+ item.price.toLocaleString(language === "id" ? "id-ID" : "en-US")
10474
10754
  ] })
10475
10755
  ] }),
10476
10756
  item.description && /* @__PURE__ */ jsx(Caption1, { className: styles.description, children: item.description })
@@ -10496,7 +10776,7 @@ var CardPriceDetails = ({
10496
10776
  /* @__PURE__ */ jsx(Subtitle1, { className: styles.totalLabel, children: mergedLabels.totalPayment }),
10497
10777
  /* @__PURE__ */ jsxs(Subtitle1, { className: styles.totalValue, children: [
10498
10778
  mergedLabels.currencyPrefix,
10499
- total.toLocaleString("id-ID")
10779
+ total.toLocaleString(language === "id" ? "id-ID" : "en-US")
10500
10780
  ] })
10501
10781
  ] }),
10502
10782
  /* @__PURE__ */ jsx(Divider, {}),
@@ -10506,7 +10786,7 @@ var CardPriceDetails = ({
10506
10786
  };
10507
10787
 
10508
10788
  // src/components/CardPaymentMethodList/CardPaymentMethodList.constants.ts
10509
- var DEFAULT_LABELS31 = {
10789
+ var DEFAULT_LABELS33 = {
10510
10790
  id: {},
10511
10791
  en: {}
10512
10792
  };
@@ -10571,7 +10851,7 @@ var CardPaymentMethodList = ({
10571
10851
  onSelect
10572
10852
  }) => {
10573
10853
  const styles = useStyles34();
10574
- ({ ...DEFAULT_LABELS31[language], ...labels });
10854
+ ({ ...DEFAULT_LABELS33[language], ...labels });
10575
10855
  return /* @__PURE__ */ jsx("div", { className: styles.card, children: /* @__PURE__ */ jsx("div", { className: `${styles.container}`, children: methods.map((category, index) => /* @__PURE__ */ jsxs("div", { children: [
10576
10856
  index > 0 && /* @__PURE__ */ jsx("div", { className: styles.dividerContainer, children: /* @__PURE__ */ jsx(Divider, {}) }),
10577
10857
  /* @__PURE__ */ jsx(Accordion, { multiple: true, collapsible: true, children: /* @__PURE__ */ jsxs(AccordionItem, { value: category.value, children: [
@@ -10606,7 +10886,8 @@ var CardPaymentMethodList = ({
10606
10886
  checked: selectedValue === option.value,
10607
10887
  onChange: () => onSelect(option.value),
10608
10888
  value: option.value,
10609
- name: "payment-method"
10889
+ name: "payment-method",
10890
+ disabled: option.disabled
10610
10891
  }
10611
10892
  )
10612
10893
  ]
@@ -10618,7 +10899,7 @@ var CardPaymentMethodList = ({
10618
10899
  };
10619
10900
 
10620
10901
  // src/components/CardPaymentGuide/CardPaymentGuide.constants.ts
10621
- var DEFAULT_LABELS32 = {
10902
+ var DEFAULT_LABELS34 = {
10622
10903
  id: {
10623
10904
  title: "Cara Pembayaran"
10624
10905
  },
@@ -10664,7 +10945,7 @@ var CardPaymentGuide = ({
10664
10945
  className
10665
10946
  }) => {
10666
10947
  const styles = useStyles35();
10667
- const mergedLabels = { ...DEFAULT_LABELS32[language], ...labels };
10948
+ const mergedLabels = { ...DEFAULT_LABELS34[language], ...labels };
10668
10949
  const displayTitle = title || mergedLabels.title;
10669
10950
  return /* @__PURE__ */ jsxs("div", { className: `${styles.container} ${className || ""}`, children: [
10670
10951
  title && /* @__PURE__ */ jsx("div", { className: styles.titleContainer, children: /* @__PURE__ */ jsx(Subtitle1, { className: styles.title, children: displayTitle }) }),
@@ -10683,20 +10964,22 @@ var CardPaymentGuide = ({
10683
10964
  };
10684
10965
 
10685
10966
  // src/components/CardPaymentInfo/CardPaymentInfo.constants.ts
10686
- var DEFAULT_LABELS33 = {
10967
+ var DEFAULT_LABELS35 = {
10687
10968
  id: {
10688
10969
  expiryPrefix: "Kode virtual akun berlaku sampai",
10689
10970
  copyCodeButton: "Salin Kode",
10690
10971
  totalPayment: "Total Pembayaran",
10691
10972
  checkStatusInfo: "Klik tombol dibawah ini jika sudah melakukan pembayaran",
10692
- checkStatusButton: "Cek Status Pembayaran"
10973
+ checkStatusButton: "Cek Status Pembayaran",
10974
+ currencySymbol: "Rp."
10693
10975
  },
10694
10976
  en: {
10695
10977
  expiryPrefix: "Virtual account code valid until",
10696
10978
  copyCodeButton: "Copy Code",
10697
10979
  totalPayment: "Total Payment",
10698
10980
  checkStatusInfo: "Click the button below if you have made the payment",
10699
- checkStatusButton: "Check Payment Status"
10981
+ checkStatusButton: "Check Payment Status",
10982
+ currencySymbol: "Rp."
10700
10983
  }
10701
10984
  };
10702
10985
  var useStyles36 = makeStyles({
@@ -10782,7 +11065,7 @@ var CardPaymentInfo = ({
10782
11065
  onCheckStatus
10783
11066
  }) => {
10784
11067
  const styles = useStyles36();
10785
- const mergedLabels = { ...DEFAULT_LABELS33[language], ...labels };
11068
+ const mergedLabels = { ...DEFAULT_LABELS35[language], ...labels };
10786
11069
  return /* @__PURE__ */ jsx("div", { className: styles.card, children: /* @__PURE__ */ jsxs("div", { className: styles.container, children: [
10787
11070
  /* @__PURE__ */ jsxs("div", { className: styles.headerRow, children: [
10788
11071
  /* @__PURE__ */ jsx(Subtitle1, { children: mergedLabels.expiryPrefix }),
@@ -10817,7 +11100,7 @@ var CardPaymentInfo = ({
10817
11100
  Input,
10818
11101
  {
10819
11102
  disabled: true,
10820
- value: `Rp. ${totalAmount.toLocaleString("id-ID")}`,
11103
+ value: `${mergedLabels.currencySymbol} ${totalAmount.toLocaleString(language === "id" ? "id-ID" : "en-US")}`,
10821
11104
  className: styles.input
10822
11105
  }
10823
11106
  )
@@ -10843,7 +11126,7 @@ var CardPaymentInfo = ({
10843
11126
  };
10844
11127
 
10845
11128
  // src/components/CardStatusOrder/CardStatusOrder.constants.ts
10846
- var DEFAULT_LABELS34 = {
11129
+ var DEFAULT_LABELS36 = {
10847
11130
  id: {
10848
11131
  detailTitle: "Detail Pemesanan",
10849
11132
  statusLabel: "Status",
@@ -10942,7 +11225,7 @@ var CardStatusOrder = ({
10942
11225
  className
10943
11226
  }) => {
10944
11227
  const styles = useStyles37();
10945
- const mergedLabels = { ...DEFAULT_LABELS34[language], ...labels };
11228
+ const mergedLabels = { ...DEFAULT_LABELS36[language], ...labels };
10946
11229
  const displayStatus = statusLabel || mergedLabels.defaultStatus;
10947
11230
  const displayTitle = title || mergedLabels.defaultTitle;
10948
11231
  const displayDescription = description || mergedLabels.defaultDescription;
@@ -11039,7 +11322,7 @@ var CardStatusOrder = ({
11039
11322
  };
11040
11323
 
11041
11324
  // src/components/ModalPriceDetail/ModalPriceDetail.constants.ts
11042
- var DEFAULT_LABELS35 = {
11325
+ var DEFAULT_LABELS37 = {
11043
11326
  id: {
11044
11327
  title: "Rincian Harga",
11045
11328
  addonHeader: "Add On",
@@ -11191,7 +11474,7 @@ var ModalPriceDetail = ({
11191
11474
  ...props
11192
11475
  }) => {
11193
11476
  const styles = useStyles38();
11194
- const mergedLabels = { ...DEFAULT_LABELS35[language], ...labels };
11477
+ const mergedLabels = { ...DEFAULT_LABELS37[language], ...labels };
11195
11478
  return /* @__PURE__ */ jsx(
11196
11479
  Dialog,
11197
11480
  {
@@ -11241,7 +11524,9 @@ var ModalPriceDetail = ({
11241
11524
  /* @__PURE__ */ jsxs("span", { className: styles.priceValue, children: [
11242
11525
  mergedLabels.currencyPrefix,
11243
11526
  " ",
11244
- item.price.toLocaleString("id-ID")
11527
+ item.price.toLocaleString(
11528
+ language === "id" ? "id-ID" : "en-US"
11529
+ )
11245
11530
  ] })
11246
11531
  ] }),
11247
11532
  item.list && item.list.map((subItem) => /* @__PURE__ */ jsxs(
@@ -11253,7 +11538,9 @@ var ModalPriceDetail = ({
11253
11538
  /* @__PURE__ */ jsxs("span", { style: { float: "right" }, children: [
11254
11539
  mergedLabels.currencyCode,
11255
11540
  " ",
11256
- item.price.toLocaleString("id-ID")
11541
+ item.price.toLocaleString(
11542
+ language === "id" ? "id-ID" : "en-US"
11543
+ )
11257
11544
  ] })
11258
11545
  ]
11259
11546
  },
@@ -11267,7 +11554,9 @@ var ModalPriceDetail = ({
11267
11554
  /* @__PURE__ */ jsxs("span", { className: styles.priceValue, children: [
11268
11555
  mergedLabels.currencyCode,
11269
11556
  " ",
11270
- item.price.toLocaleString("id-ID")
11557
+ item.price.toLocaleString(
11558
+ language === "id" ? "id-ID" : "en-US"
11559
+ )
11271
11560
  ] })
11272
11561
  ] }, item.key))
11273
11562
  ] }),
@@ -11276,14 +11565,18 @@ var ModalPriceDetail = ({
11276
11565
  /* @__PURE__ */ jsx("span", { className: styles.totalLabel, children: mergedLabels.subTotalLabel }),
11277
11566
  /* @__PURE__ */ jsxs("span", { className: styles.totalValue, children: [
11278
11567
  mergedLabels.currencyCode,
11279
- subTotal.toLocaleString("id-ID")
11568
+ subTotal.toLocaleString(
11569
+ language === "id" ? "id-ID" : "en-US"
11570
+ )
11280
11571
  ] })
11281
11572
  ] }),
11282
11573
  /* @__PURE__ */ jsxs("div", { className: styles.row, children: [
11283
11574
  /* @__PURE__ */ jsx("span", { className: styles.totalTagihanLabel, children: mergedLabels.totalTagihanLabel }),
11284
11575
  /* @__PURE__ */ jsxs("span", { className: styles.totalTagihanValue, children: [
11285
11576
  mergedLabels.currencyCode,
11286
- subTotal.toLocaleString("id-ID")
11577
+ subTotal.toLocaleString(
11578
+ language === "id" ? "id-ID" : "en-US"
11579
+ )
11287
11580
  ] })
11288
11581
  ] }),
11289
11582
  /* @__PURE__ */ jsxs("div", { style: { marginTop: tokens.spacingVerticalL }, children: [
@@ -11291,7 +11584,9 @@ var ModalPriceDetail = ({
11291
11584
  /* @__PURE__ */ jsx("span", { className: styles.ppnLabel, children: mergedLabels.ppnLabel }),
11292
11585
  /* @__PURE__ */ jsxs("span", { className: styles.ppnValue, children: [
11293
11586
  mergedLabels.currencyCode,
11294
- taxAmount.toLocaleString("id-ID")
11587
+ taxAmount.toLocaleString(
11588
+ language === "id" ? "id-ID" : "en-US"
11589
+ )
11295
11590
  ] })
11296
11591
  ] }),
11297
11592
  /* @__PURE__ */ jsx("div", { className: styles.ppnNote, children: mergedLabels.ppnNote })
@@ -11305,7 +11600,9 @@ var ModalPriceDetail = ({
11305
11600
  /* @__PURE__ */ jsx("span", { className: styles.grandTotalLabel, children: mergedLabels.grandTotalLabel }),
11306
11601
  /* @__PURE__ */ jsxs("span", { className: styles.grandTotalValue, children: [
11307
11602
  mergedLabels.currencyPrefix,
11308
- grandTotal.toLocaleString("id-ID")
11603
+ grandTotal.toLocaleString(
11604
+ language === "id" ? "id-ID" : "en-US"
11605
+ )
11309
11606
  ] })
11310
11607
  ]
11311
11608
  }
@@ -11317,7 +11614,7 @@ var ModalPriceDetail = ({
11317
11614
  };
11318
11615
 
11319
11616
  // src/components/CardProfileMenu/CardProfileMenu.constants.ts
11320
- var DEFAULT_LABELS36 = {
11617
+ var DEFAULT_LABELS38 = {
11321
11618
  id: {},
11322
11619
  en: {}
11323
11620
  };
@@ -11380,7 +11677,7 @@ var CardProfileMenu = ({
11380
11677
  onTabSelect
11381
11678
  }) => {
11382
11679
  const styles = useStyles39();
11383
- ({ ...DEFAULT_LABELS36[language], ...labels });
11680
+ ({ ...DEFAULT_LABELS38[language], ...labels });
11384
11681
  const handleTabSelect = (_, data) => {
11385
11682
  onTabSelect(data.value);
11386
11683
  };
@@ -11409,6 +11706,6 @@ var CardProfileMenu = ({
11409
11706
  ) });
11410
11707
  };
11411
11708
 
11412
- export { BackgroundTicketCard_default as BackgroundTicketCard, BackgroundTicketCardVertical_default as BackgroundTicketCardVertical, CardAddon, CardBanner, CardBookingTicket, CardFAQ, CardMealCatalog, CardOrdererInfo, CardPassengerList, CardPaymentGuide, CardPaymentInfo, CardPaymentMethodList, CardPriceDetails, CardProfileMenu, CardPromo, CardReview, CardReviewPassenger, CardServiceMenu, CardStatusOrder, CardTicket, CardTicketSearch, DEFAULT_LABELS7 as CardTicketSearchDefaultLabels, CardTicketSearchSummary, DEFAULT_LABELS8 as CardTicketSearchSummaryDefaultLabels, CardVehicleDetail, CardVehicleOwnerForm, CarouselWithCustomNav, DEFAULT_COUNTRY_CODES, DEFAULT_DURATION_RANGE, DEFAULT_PRICE_RANGE, DEFAULT_SCROLL_AMOUNT, DEFAULT_SERVICE_CLASSES, DEFAULT_SERVICE_TYPES, DEFAULT_SORT_OPTIONS, DEFAULT_TIME_SLOTS, DEFAULT_VEHICLE_ICONS, DateFilter, DEFAULT_LABELS15 as DateFilterDefaultLabels, InputDynamic_default as InputDynamic, MODAL_PRESETS, ModalFilterTicket, DEFAULT_LABELS14 as ModalFilterTicketDefaultLabels, ModalIllustration, ModalListPassenger, ModalPassengerForm, ModalPriceDetail, ModalSearchHarbor, ModalSearchTicket, ModalSelectDate, ModalService, ModalTotalPassengers, ModalTypeOfService, SortMenu, Stepper, getBadgeConfig, getModalPreset, getSortLabel };
11709
+ export { BackgroundTicketCard_default as BackgroundTicketCard, BackgroundTicketCardVertical_default as BackgroundTicketCardVertical, CardAddon, CardBanner, CardBookingTicket, CardFAQ, CardMealCatalog, CardOrdererInfo, CardPassengerList, CardPaymentGuide, CardPaymentInfo, CardPaymentMethodList, CardPriceDetails, CardProfileMenu, CardPromo, CardReview, CardReviewPassenger, CardServiceMenu, CardStatusOrder, CardTicket, CardTicketSearch, DEFAULT_LABELS8 as CardTicketSearchDefaultLabels, CardTicketSearchSummary, DEFAULT_LABELS9 as CardTicketSearchSummaryDefaultLabels, CardVehicleDetail, CardVehicleOwnerForm, CarouselWithCustomNav, DEFAULT_COUNTRY_CODES, DEFAULT_DURATION_RANGE, DEFAULT_PRICE_RANGE, DEFAULT_SCROLL_AMOUNT, DEFAULT_SERVICE_CLASSES, DEFAULT_SERVICE_TYPES, DEFAULT_SORT_OPTIONS, DEFAULT_TIME_SLOTS, DEFAULT_VEHICLE_ICONS, DateFilter, DEFAULT_LABELS17 as DateFilterDefaultLabels, InputDynamic_default as InputDynamic, MODAL_PRESETS, ModalFilterTicket, DEFAULT_LABELS16 as ModalFilterTicketDefaultLabels, ModalIllustration, ModalListPassenger, ModalPassengerForm, ModalPriceDetail, ModalSearchHarbor, ModalSearchTicket, ModalSelectDate, ModalService, ModalTotalPassengers, ModalTypeOfService, SortMenu, Stepper, getBadgeConfig, getModalPreset, getSortLabel };
11413
11710
  //# sourceMappingURL=index.mjs.map
11414
11711
  //# sourceMappingURL=index.mjs.map