@asdp/ferryui 0.1.22-dev.8649 → 0.1.22-dev.8661

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,14 +350,20 @@ 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
- defaultButtonText: "Lihat Detail"
356
+ defaultButtonText: "Lihat Detail",
357
+ promoAriaLabel: "Promo {index} dari {total}",
358
+ promoAriaLabelSingle: "Promo {index}",
359
+ loadingContent: "Memuat konten"
318
360
  },
319
361
  en: {
320
362
  defaultImageAlt: "Promo Image",
321
- defaultButtonText: "View Details"
363
+ defaultButtonText: "View Details",
364
+ promoAriaLabel: "Promo {index} of {total}",
365
+ promoAriaLabelSingle: "Promo {index}",
366
+ loadingContent: "Loading content"
322
367
  }
323
368
  };
324
369
  var useStyles3 = makeStyles({
@@ -422,10 +467,13 @@ var CardPromo = ({
422
467
  labels
423
468
  }) => {
424
469
  const classes = useStyles3();
425
- const mergedLabels = { ...DEFAULT_LABELS2[language], ...labels };
470
+ const mergedLabels = { ...DEFAULT_LABELS3[language], ...labels };
426
471
  const displayImageAlt = imageAlt || mergedLabels.defaultImageAlt;
427
472
  const displayButtonText = buttonText || mergedLabels.defaultButtonText;
428
- const ariaLabel = totalCards ? `Card ${index + 1} of ${totalCards}` : `Promo card ${index + 1}`;
473
+ const ariaLabel = totalCards ? mergedLabels.promoAriaLabel.replace("{index}", (index + 1).toString()).replace("{total}", totalCards.toString()) : mergedLabels.promoAriaLabelSingle.replace(
474
+ "{index}",
475
+ (index + 1).toString()
476
+ );
429
477
  if (isLoading) {
430
478
  return /* @__PURE__ */ jsx(
431
479
  CarouselCard,
@@ -433,7 +481,7 @@ var CardPromo = ({
433
481
  autoSize: true,
434
482
  className: mergeClasses(classes.actionCard, className),
435
483
  style: { cursor: "default" },
436
- children: /* @__PURE__ */ jsxs(Skeleton, { "aria-label": "Loading content", children: [
484
+ children: /* @__PURE__ */ jsxs(Skeleton, { "aria-label": mergedLabels.loadingContent, children: [
437
485
  /* @__PURE__ */ jsx("div", { className: mergeClasses(classes.imageContainer, imageClassName), children: /* @__PURE__ */ jsx(
438
486
  SkeletonItem,
439
487
  {
@@ -523,7 +571,7 @@ var CardPromo = ({
523
571
  };
524
572
 
525
573
  // src/components/CardBanner/CardBanner.constants.ts
526
- var DEFAULT_LABELS3 = {
574
+ var DEFAULT_LABELS4 = {
527
575
  id: {
528
576
  bannerAriaLabel: "Banner {index} dari {total}",
529
577
  bannerAriaLabelSingle: "Banner {index}",
@@ -568,7 +616,7 @@ var CardBanner = ({
568
616
  }) => {
569
617
  const classes = useStyles4();
570
618
  const mergedLabels = {
571
- ...DEFAULT_LABELS3[language],
619
+ ...DEFAULT_LABELS4[language],
572
620
  ...labels
573
621
  };
574
622
  const ariaLabel = totalBanners ? mergedLabels.bannerAriaLabel.replace("{index}", (index + 1).toString()).replace("{total}", totalBanners.toString()) : mergedLabels.bannerAriaLabelSingle.replace(
@@ -751,7 +799,7 @@ var extendedTokens = {
751
799
  colorBrandForegroundLinkSelected: customBrand[110]});
752
800
 
753
801
  // src/components/CardTicket/CardTicket.constants.ts
754
- var DEFAULT_LABELS4 = {
802
+ var DEFAULT_LABELS5 = {
755
803
  id: {
756
804
  availableSeatsLabel: "Tersedia",
757
805
  estimationPrefix: "Estimasi",
@@ -760,7 +808,9 @@ var DEFAULT_LABELS4 = {
760
808
  totalPriceLabel: "Total harga",
761
809
  facilitiesLabel: "Fasilitas",
762
810
  selectTicketButton: "Pilih Tiket",
763
- timezoneLabel: "WIB"
811
+ timezoneLabel: "WIB",
812
+ currencySymbol: "IDR",
813
+ logoAlt: "Logo ASDP"
764
814
  },
765
815
  en: {
766
816
  availableSeatsLabel: "Available",
@@ -770,7 +820,9 @@ var DEFAULT_LABELS4 = {
770
820
  totalPriceLabel: "Total price",
771
821
  facilitiesLabel: "Facilities",
772
822
  selectTicketButton: "Select Ticket",
773
- timezoneLabel: "WIB"
823
+ timezoneLabel: "WIB",
824
+ currencySymbol: "IDR",
825
+ logoAlt: "ASDP Logo"
774
826
  }
775
827
  };
776
828
  var useStyles5 = makeStyles({
@@ -993,7 +1045,7 @@ var CardTicket = ({
993
1045
  }) => {
994
1046
  const styles = useStyles5();
995
1047
  const { width } = useWindowSize();
996
- const mergedLabels = { ...DEFAULT_LABELS4[language], ...labels };
1048
+ const mergedLabels = { ...DEFAULT_LABELS5[language], ...labels };
997
1049
  const getCircularVerticalConfig = () => {
998
1050
  if (width <= 1600) return { count: 6, spacing: 60, top: 10 };
999
1051
  return { count: 5, spacing: 60, top: 18 };
@@ -1070,7 +1122,7 @@ var CardTicket = ({
1070
1122
  {
1071
1123
  src: "/assets/logo/asdp-default.svg",
1072
1124
  className: styles.asdpLogo,
1073
- alt: "asdp",
1125
+ alt: mergedLabels.logoAlt,
1074
1126
  height: 56,
1075
1127
  width: 82
1076
1128
  }
@@ -1275,8 +1327,11 @@ var CardTicket = ({
1275
1327
  justifyContent: "end"
1276
1328
  },
1277
1329
  children: [
1278
- "IDR\xA0",
1279
- totalPrice.toLocaleString("id-ID")
1330
+ mergedLabels.currencySymbol,
1331
+ "\xA0",
1332
+ totalPrice.toLocaleString(
1333
+ language === "id" ? "id-ID" : "en-US"
1334
+ )
1280
1335
  ]
1281
1336
  }
1282
1337
  )
@@ -1499,7 +1554,7 @@ var BackgroundTicketCardVertical = (props) => /* @__PURE__ */ jsxs(
1499
1554
  var BackgroundTicketCardVertical_default = BackgroundTicketCardVertical;
1500
1555
 
1501
1556
  // src/components/CardServiceMenu/CardServiceMenu.constants.ts
1502
- var DEFAULT_LABELS5 = {
1557
+ var DEFAULT_LABELS6 = {
1503
1558
  id: {
1504
1559
  ferryLabel: "Ferry",
1505
1560
  ferryDescription: "Layanan penyeberangan ferry ASDP",
@@ -1510,7 +1565,8 @@ var DEFAULT_LABELS5 = {
1510
1565
  hotelLabel: "Hotel",
1511
1566
  hotelDescription: "Layanan pemesanan hotel",
1512
1567
  otherLabel: "Lainnya",
1513
- otherDescription: "Layanan lainnya"
1568
+ otherDescription: "Layanan lainnya",
1569
+ serviceAriaLabel: "Layanan"
1514
1570
  },
1515
1571
  en: {
1516
1572
  ferryLabel: "Ferry",
@@ -1522,7 +1578,8 @@ var DEFAULT_LABELS5 = {
1522
1578
  hotelLabel: "Hotel",
1523
1579
  hotelDescription: "Hotel Booking Service",
1524
1580
  otherLabel: "Other",
1525
- otherDescription: "Other Services"
1581
+ otherDescription: "Other Services",
1582
+ serviceAriaLabel: "Service"
1526
1583
  }
1527
1584
  };
1528
1585
  var ALIAS_MENU_ITEMS = {
@@ -1648,7 +1705,7 @@ var CardServiceMenu = ({
1648
1705
  labels
1649
1706
  }) => {
1650
1707
  const styles = useStyles6();
1651
- const mergedLabels = { ...DEFAULT_LABELS5[language], ...labels };
1708
+ const mergedLabels = { ...DEFAULT_LABELS6[language], ...labels };
1652
1709
  const getMenuItemClass = (serviceId) => {
1653
1710
  const isActive = activeServiceId === serviceId;
1654
1711
  return mergeClasses(styles.menuItem, isActive && styles.menuItemActive);
@@ -1665,6 +1722,7 @@ var CardServiceMenu = ({
1665
1722
  {
1666
1723
  className: getMenuItemClass(item.id),
1667
1724
  onClick: () => onServiceClick?.(item.id),
1725
+ "aria-label": `${mergedLabels.serviceAriaLabel} ${label}`,
1668
1726
  children: [
1669
1727
  /* @__PURE__ */ jsx("img", { src: item.logo, alt: label, className: styles.logo }),
1670
1728
  /* @__PURE__ */ jsxs("div", { className: styles.textContent, children: [
@@ -1720,68 +1778,83 @@ var DatePickerInput = forwardRef(
1720
1778
  }
1721
1779
  onClick?.(e);
1722
1780
  };
1723
- return /* @__PURE__ */ jsxs(Popover, { open: isOpen, onOpenChange: (_, data) => setIsOpen(data.open), trapFocus: true, children: [
1724
- /* @__PURE__ */ jsx(PopoverTrigger, { disableButtonEnhancement: true, children: /* @__PURE__ */ jsx(
1725
- Input,
1726
- {
1727
- ...restProps,
1728
- value: formatDate(field.value),
1729
- readOnly: true,
1730
- placeholder: placeholder || "Pilih tanggal",
1731
- disabled,
1732
- appearance,
1733
- size,
1734
- contentBefore,
1735
- onClick: handleInputClick,
1736
- style: {
1737
- cursor: disabled ? "not-allowed" : "pointer",
1738
- ...style
1739
- },
1740
- contentAfter: /* @__PURE__ */ jsx(
1741
- "div",
1781
+ return /* @__PURE__ */ jsxs(
1782
+ Popover,
1783
+ {
1784
+ open: isOpen,
1785
+ onOpenChange: (_, data) => setIsOpen(data.open),
1786
+ trapFocus: true,
1787
+ children: [
1788
+ /* @__PURE__ */ jsx(PopoverTrigger, { disableButtonEnhancement: true, children: /* @__PURE__ */ jsx(
1789
+ Input,
1742
1790
  {
1743
- onClick: (e) => {
1744
- e.stopPropagation();
1745
- if (!disabled) {
1746
- setIsOpen(!isOpen);
1747
- }
1748
- },
1791
+ ...restProps,
1792
+ value: formatDate(field.value),
1793
+ readOnly: true,
1794
+ placeholder,
1795
+ disabled,
1796
+ appearance,
1797
+ size,
1798
+ contentBefore,
1799
+ onClick: handleInputClick,
1749
1800
  style: {
1750
1801
  cursor: disabled ? "not-allowed" : "pointer",
1751
- display: "flex",
1752
- alignItems: "center"
1802
+ ...style
1753
1803
  },
1754
- children: /* @__PURE__ */ jsx(Icon, { icon: "fluent:calendar-24-regular" })
1804
+ contentAfter: /* @__PURE__ */ jsx(
1805
+ "div",
1806
+ {
1807
+ onClick: (e) => {
1808
+ e.stopPropagation();
1809
+ if (!disabled) {
1810
+ setIsOpen(!isOpen);
1811
+ }
1812
+ },
1813
+ style: {
1814
+ cursor: disabled ? "not-allowed" : "pointer",
1815
+ display: "flex",
1816
+ alignItems: "center"
1817
+ },
1818
+ children: /* @__PURE__ */ jsx(Icon, { icon: "fluent:calendar-24-regular" })
1819
+ }
1820
+ )
1755
1821
  }
1756
- )
1757
- }
1758
- ) }),
1759
- /* @__PURE__ */ jsx(PopoverSurface, { tabIndex: -1, style: { maxWidth: "530px" }, children: /* @__PURE__ */ jsx(
1760
- Calendar,
1761
- {
1762
- value: dateValue,
1763
- onSelectDate,
1764
- showGoToToday: true,
1765
- highlightSelectedMonth: true,
1766
- showMonthPickerAsOverlay: false,
1767
- maxDate: max ? new Date(max) : void 0
1768
- }
1769
- ) })
1770
- ] });
1822
+ ) }),
1823
+ /* @__PURE__ */ jsx(PopoverSurface, { tabIndex: -1, style: { maxWidth: "530px" }, children: /* @__PURE__ */ jsx(
1824
+ Calendar,
1825
+ {
1826
+ value: dateValue,
1827
+ onSelectDate,
1828
+ showGoToToday: true,
1829
+ highlightSelectedMonth: true,
1830
+ showMonthPickerAsOverlay: false,
1831
+ maxDate: max ? new Date(max) : void 0
1832
+ }
1833
+ ) })
1834
+ ]
1835
+ }
1836
+ );
1771
1837
  }
1772
1838
  );
1773
1839
  DatePickerInput.displayName = "DatePickerInput";
1774
1840
  var DatePickerInput_default = DatePickerInput;
1775
1841
 
1776
1842
  // src/components/InputDynamic/InputDynamic.constants.ts
1777
- var DEFAULT_LABELS6 = {
1843
+ var DEFAULT_LABELS7 = {
1778
1844
  id: {
1779
1845
  emailOrPhonePlaceholder: "Email atau Nomor HP",
1780
1846
  emailPlaceholder: "Email",
1781
1847
  phonePlaceholder: "Nomor HP",
1782
1848
  identityPlaceholder: "Email, KTP, SIM, Passport, atau Nomor Telepon",
1783
1849
  identityPhonePlaceholder: "Nomor telepon",
1784
- identityIdPlaceholder: "KTP, SIM, atau Passport"
1850
+ identityIdPlaceholder: "KTP, SIM, atau Passport",
1851
+ showPasswordAriaLabel: "Tampilkan kata sandi",
1852
+ hidePasswordAriaLabel: "Sembunyikan kata sandi",
1853
+ datePickerPlaceholder: "Pilih tanggal",
1854
+ phoneDefaultPlaceholder: "Nomor telepon",
1855
+ requiredFieldError: "Field ini wajib diisi",
1856
+ invalidEmailError: "Email tidak valid",
1857
+ emailOrPhoneRequiredError: "Email atau nomor HP wajib diisi"
1785
1858
  },
1786
1859
  en: {
1787
1860
  emailOrPhonePlaceholder: "Email or Phone Number",
@@ -1789,7 +1862,14 @@ var DEFAULT_LABELS6 = {
1789
1862
  phonePlaceholder: "Phone Number",
1790
1863
  identityPlaceholder: "Email, ID Card, Driving License, Passport, or Phone Number",
1791
1864
  identityPhonePlaceholder: "Phone Number",
1792
- identityIdPlaceholder: "ID Card, Driving License, or Passport"
1865
+ identityIdPlaceholder: "ID Card, Driving License, or Passport",
1866
+ showPasswordAriaLabel: "Show password",
1867
+ hidePasswordAriaLabel: "Hide password",
1868
+ datePickerPlaceholder: "Select date",
1869
+ phoneDefaultPlaceholder: "Phone number",
1870
+ requiredFieldError: "This field is required",
1871
+ invalidEmailError: "Invalid email",
1872
+ emailOrPhoneRequiredError: "Email or phone number is required"
1793
1873
  }
1794
1874
  };
1795
1875
  var PhoneInput = PhoneInputComponent.default || PhoneInputComponent;
@@ -2039,7 +2119,7 @@ var InputDynamic = ({
2039
2119
  labels
2040
2120
  }) => {
2041
2121
  const styles = useStyles7();
2042
- const mergedLabels = { ...DEFAULT_LABELS6[language], ...labels };
2122
+ const mergedLabels = { ...DEFAULT_LABELS7[language], ...labels };
2043
2123
  const [showPassword, setShowPassword] = useState(false);
2044
2124
  const [isPhoneMode, setIsPhoneMode] = useState(false);
2045
2125
  const [emailOrPhoneType, setEmailOrPhoneType] = useState("none");
@@ -2472,7 +2552,7 @@ var InputDynamic = ({
2472
2552
  const cleanedValue = cleanPhoneValue(value || "");
2473
2553
  field.onChange(cleanedValue);
2474
2554
  },
2475
- placeholder: placeholder || "Nomor telepon",
2555
+ placeholder: placeholder || mergedLabels.phoneDefaultPlaceholder,
2476
2556
  disabled,
2477
2557
  enableSearch: true,
2478
2558
  disableSearchIcon: true
@@ -2513,7 +2593,7 @@ var InputDynamic = ({
2513
2593
  DatePickerInput_default,
2514
2594
  {
2515
2595
  field,
2516
- placeholder,
2596
+ placeholder: placeholder || mergedLabels.datePickerPlaceholder,
2517
2597
  disabled,
2518
2598
  appearance: error ? "outline" : appearance,
2519
2599
  size,
@@ -2608,7 +2688,7 @@ var InputDynamic = ({
2608
2688
  {
2609
2689
  appearance: "transparent",
2610
2690
  icon: showPassword ? /* @__PURE__ */ jsx(Icon, { icon: "fluent:eye-off-24-filled" }) : /* @__PURE__ */ jsx(Icon, { icon: "fluent:eye-24-filled" }),
2611
- "aria-label": showPassword ? "Hide password" : "Show password",
2691
+ "aria-label": showPassword ? mergedLabels.hidePasswordAriaLabel : mergedLabels.showPasswordAriaLabel,
2612
2692
  onClick: () => setShowPassword(!showPassword),
2613
2693
  tabIndex: -1,
2614
2694
  type: "button"
@@ -2773,7 +2853,7 @@ var InputDynamic = ({
2773
2853
  const getValidationRules = () => {
2774
2854
  const rules = {};
2775
2855
  if (required) {
2776
- rules.required = validationRules?.required || "Field ini wajib diisi";
2856
+ rules.required = validationRules?.required || mergedLabels.requiredFieldError;
2777
2857
  }
2778
2858
  if (validationRules?.minLength) {
2779
2859
  rules.minLength = validationRules.minLength;
@@ -2796,13 +2876,13 @@ var InputDynamic = ({
2796
2876
  if (type === "email") {
2797
2877
  rules.pattern = {
2798
2878
  value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,
2799
- message: "Email tidak valid"
2879
+ message: mergedLabels.invalidEmailError
2800
2880
  };
2801
2881
  }
2802
2882
  if (type === "emailOrPhone") {
2803
2883
  rules.validate = (value) => {
2804
2884
  if (required && !value) {
2805
- return "Email atau nomor HP wajib diisi";
2885
+ return mergedLabels.emailOrPhoneRequiredError;
2806
2886
  }
2807
2887
  const stringValue = typeof value === "string" ? value : "";
2808
2888
  if (!stringValue) return true;
@@ -3137,7 +3217,7 @@ var DEFAULT_COUNTRY_CODES = [
3137
3217
  ];
3138
3218
 
3139
3219
  // src/components/CardTicketSearch/CardTicketSearch.constants.ts
3140
- var DEFAULT_LABELS7 = {
3220
+ var DEFAULT_LABELS8 = {
3141
3221
  id: {
3142
3222
  fromLabel: "Dari",
3143
3223
  toLabel: "Ke",
@@ -3154,7 +3234,17 @@ var DEFAULT_LABELS7 = {
3154
3234
  placeholderReturnDate: "Pilih Tanggal Kepulangan",
3155
3235
  placeholderTypeClass: "Pilih Kelas Layanan",
3156
3236
  placeholderTypeService: "Pilih Jenis Layanan",
3157
- placeholderPassenger: "Pilih Jumlah Penumpang"
3237
+ placeholderPassenger: "Pilih Jumlah Penumpang",
3238
+ errorOriginRequired: "Pelabuhan asal wajib diisi",
3239
+ errorDestinationRequired: "Pelabuhan tujuan wajib diisi",
3240
+ errorDepartureDateRequired: "Tanggal Berangkat wajib diisi",
3241
+ errorReturnDateRequired: "Tanggal Pulang wajib diisi",
3242
+ switchAriaLabel: "Tukar asal dan tujuan",
3243
+ ferryDescription: "Layanan Penyeberangan Ferry ASDP",
3244
+ ifcsDescription: "Sistem Kontrol Ferry Terintegrasi",
3245
+ skptDescription: "Sistem Tiket Penumpang Terintegrasi",
3246
+ hotelDescription: "Layanan Pemesanan Hotel",
3247
+ otherDescription: "Layanan Lainnya"
3158
3248
  },
3159
3249
  en: {
3160
3250
  fromLabel: "From",
@@ -3172,7 +3262,17 @@ var DEFAULT_LABELS7 = {
3172
3262
  placeholderReturnDate: "Select Return Date",
3173
3263
  placeholderTypeClass: "Select Service Class",
3174
3264
  placeholderTypeService: "Select Service Type",
3175
- placeholderPassenger: "Select Number of Passengers"
3265
+ placeholderPassenger: "Select Number of Passengers",
3266
+ errorOriginRequired: "Origin port is required",
3267
+ errorDestinationRequired: "Destination port is required",
3268
+ errorDepartureDateRequired: "Departure date is required",
3269
+ errorReturnDateRequired: "Return date is required",
3270
+ switchAriaLabel: "Swap origin and destination",
3271
+ ferryDescription: "ASDP Ferry Crossing Service",
3272
+ ifcsDescription: "Integrated Ferry Control System",
3273
+ skptDescription: "Integrated Passenger Ticketing System",
3274
+ hotelDescription: "Hotel Booking Service",
3275
+ otherDescription: "Other Services"
3176
3276
  }
3177
3277
  };
3178
3278
  var useStyles8 = makeStyles({
@@ -3313,7 +3413,7 @@ var CardTicketSearch = ({
3313
3413
  }) => {
3314
3414
  const styles = useStyles8();
3315
3415
  const labels = React5.useMemo(
3316
- () => ({ ...DEFAULT_LABELS7[language], ...customLabels }),
3416
+ () => ({ ...DEFAULT_LABELS8[language], ...customLabels }),
3317
3417
  [language, customLabels]
3318
3418
  );
3319
3419
  const { control, setValue, getValues, handleSubmit } = useForm({
@@ -3342,7 +3442,17 @@ var CardTicketSearch = ({
3342
3442
  setValue("serviceClass", serviceClass);
3343
3443
  setValue("typeOfService", typeOfService);
3344
3444
  setValue("passenger", passenger);
3345
- }, [from, to, startDate, endDate, roundTrip, serviceClass, typeOfService, passenger, setValue]);
3445
+ }, [
3446
+ from,
3447
+ to,
3448
+ startDate,
3449
+ endDate,
3450
+ roundTrip,
3451
+ serviceClass,
3452
+ typeOfService,
3453
+ passenger,
3454
+ setValue
3455
+ ]);
3346
3456
  React5.useEffect(() => {
3347
3457
  if (onRoundTripChange) {
3348
3458
  onRoundTripChange(roundTripValue);
@@ -3419,114 +3529,151 @@ var CardTicketSearch = ({
3419
3529
  children: /* @__PURE__ */ jsx("form", { onSubmit: handleSubmit(handleFormSubmit), children: /* @__PURE__ */ jsxs(Row, { style: { width: "100%" }, className: styles.formInnerRow, children: [
3420
3530
  /* @__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
3531
  /* @__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,
3532
+ /* @__PURE__ */ jsxs(
3533
+ Col,
3534
+ {
3535
+ xs: 12,
3536
+ sm: 12,
3537
+ md: 12,
3538
+ lg: 12,
3539
+ xl: 12,
3540
+ xxl: 12,
3541
+ xxxl: 12,
3542
+ children: [
3543
+ /* @__PURE__ */ jsx(
3544
+ InputDynamic_default,
3432
3545
  {
3433
- icon: "fluent:vehicle-ship-16-filled",
3434
- color: tokens.colorBrandBackground
3546
+ name: "from",
3547
+ label: labels.fromLabel,
3548
+ control,
3549
+ type: "text",
3550
+ contentBefore: /* @__PURE__ */ jsx(
3551
+ Icon$1,
3552
+ {
3553
+ icon: "fluent:vehicle-ship-16-filled",
3554
+ color: tokens.colorBrandBackground
3555
+ }
3556
+ ),
3557
+ appearance: "filled-lighter",
3558
+ size: "medium",
3559
+ placeholder: labels.placeholderPort,
3560
+ onClick: onFromClick,
3561
+ onChange: handleFromChange,
3562
+ validationRules: {
3563
+ required: labels.errorOriginRequired
3564
+ },
3565
+ required: true
3435
3566
  }
3436
3567
  ),
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",
3568
+ /* @__PURE__ */ jsxs("div", { className: styles.deviderButton, children: [
3569
+ /* @__PURE__ */ jsx(Divider, {}),
3570
+ " ",
3571
+ /* @__PURE__ */ jsx(
3572
+ Button,
3462
3573
  {
3463
- className: `${styles.switchIcon} ${isRotating ? styles.switchIconRotate : ""}`,
3464
- children: /* @__PURE__ */ jsx(
3465
- "img",
3574
+ onClick: onSwitchClick,
3575
+ className: styles.buttonSwitch,
3576
+ shape: "circular",
3577
+ appearance: "secondary",
3578
+ size: "large",
3579
+ disabled: switchDisabled,
3580
+ "aria-label": labels.switchAriaLabel,
3581
+ icon: /* @__PURE__ */ jsx(
3582
+ "div",
3466
3583
  {
3467
- src: "/assets/images/icons/switch.svg",
3468
- alt: "Switch",
3469
- width: 26,
3470
- height: 26
3584
+ className: `${styles.switchIcon} ${isRotating ? styles.switchIconRotate : ""}`,
3585
+ children: /* @__PURE__ */ jsx(
3586
+ "img",
3587
+ {
3588
+ src: "/assets/images/icons/switch.svg",
3589
+ alt: labels.switchAriaLabel,
3590
+ width: 26,
3591
+ height: 26
3592
+ }
3593
+ )
3471
3594
  }
3472
3595
  )
3473
3596
  }
3474
3597
  )
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,
3598
+ ] })
3599
+ ]
3600
+ }
3601
+ ),
3602
+ /* @__PURE__ */ jsx(
3603
+ Col,
3481
3604
  {
3482
- name: "to",
3483
- label: labels.toLabel,
3484
- control,
3485
- type: "text",
3486
- contentBefore: /* @__PURE__ */ jsx(
3487
- Icon$1,
3605
+ xs: 12,
3606
+ sm: 12,
3607
+ md: 12,
3608
+ lg: 12,
3609
+ xl: 12,
3610
+ xxl: 12,
3611
+ xxxl: 12,
3612
+ children: /* @__PURE__ */ jsx(
3613
+ InputDynamic_default,
3488
3614
  {
3489
- icon: "fluent:location-24-filled",
3490
- color: tokens.colorBrandBackground
3615
+ name: "to",
3616
+ label: labels.toLabel,
3617
+ control,
3618
+ type: "text",
3619
+ contentBefore: /* @__PURE__ */ jsx(
3620
+ Icon$1,
3621
+ {
3622
+ icon: "fluent:location-24-filled",
3623
+ color: tokens.colorBrandBackground
3624
+ }
3625
+ ),
3626
+ disabled: toDisabled,
3627
+ appearance: "filled-lighter",
3628
+ size: "medium",
3629
+ placeholder: labels.placeholderDestinationPort,
3630
+ onClick: onToClick,
3631
+ validationRules: {
3632
+ required: labels.errorDestinationRequired
3633
+ },
3634
+ required: true
3491
3635
  }
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
3636
+ )
3502
3637
  }
3503
- ) })
3638
+ )
3504
3639
  ] }) }) }),
3505
3640
  /* @__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,
3641
+ /* @__PURE__ */ jsx(
3642
+ Col,
3508
3643
  {
3509
- name: "startDate",
3510
- label: labels.departureDateLabel,
3511
- control,
3512
- type: "text",
3513
- contentBefore: /* @__PURE__ */ jsx(
3514
- Icon$1,
3644
+ xs: 7,
3645
+ sm: 7,
3646
+ md: 7,
3647
+ lg: 7,
3648
+ xl: 7,
3649
+ xxl: 7,
3650
+ xxxl: 7,
3651
+ children: /* @__PURE__ */ jsx("div", { style: { position: "relative", zIndex: 2 }, children: /* @__PURE__ */ jsx(
3652
+ InputDynamic_default,
3515
3653
  {
3516
- icon: "fluent:calendar-24-filled",
3517
- color: tokens.colorBrandBackground
3654
+ name: "startDate",
3655
+ label: labels.departureDateLabel,
3656
+ control,
3657
+ type: "text",
3658
+ contentBefore: /* @__PURE__ */ jsx(
3659
+ Icon$1,
3660
+ {
3661
+ icon: "fluent:calendar-24-filled",
3662
+ color: tokens.colorBrandBackground
3663
+ }
3664
+ ),
3665
+ appearance: "filled-lighter",
3666
+ size: "medium",
3667
+ placeholder: labels.placeholderDepartureDate,
3668
+ onClick: onStartDateClick,
3669
+ required: true,
3670
+ validationRules: {
3671
+ required: labels.errorDepartureDateRequired
3672
+ }
3518
3673
  }
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
- }
3674
+ ) })
3528
3675
  }
3529
- ) }) }),
3676
+ ),
3530
3677
  showRoundTrip && /* @__PURE__ */ jsx(
3531
3678
  Col,
3532
3679
  {
@@ -3551,32 +3698,44 @@ var CardTicketSearch = ({
3551
3698
  )
3552
3699
  }
3553
3700
  ),
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,
3701
+ roundTripValue && /* @__PURE__ */ jsx(
3702
+ Col,
3556
3703
  {
3557
- name: "endDate",
3558
- label: labels.returnDateLabel,
3559
- control,
3560
- type: "text",
3561
- contentBefore: /* @__PURE__ */ jsx(
3562
- Icon$1,
3704
+ xs: 12,
3705
+ sm: 12,
3706
+ md: 12,
3707
+ lg: 12,
3708
+ xl: 12,
3709
+ xxl: 12,
3710
+ xxxl: 12,
3711
+ children: /* @__PURE__ */ jsx(
3712
+ InputDynamic_default,
3563
3713
  {
3564
- icon: "fluent:calendar-24-filled",
3565
- color: tokens.colorBrandBackground
3714
+ name: "endDate",
3715
+ label: labels.returnDateLabel,
3716
+ control,
3717
+ type: "text",
3718
+ contentBefore: /* @__PURE__ */ jsx(
3719
+ Icon$1,
3720
+ {
3721
+ icon: "fluent:calendar-24-filled",
3722
+ color: tokens.colorBrandBackground
3723
+ }
3724
+ ),
3725
+ appearance: "filled-lighter",
3726
+ size: "medium",
3727
+ placeholder: labels.placeholderReturnDate,
3728
+ onClick: onEndDateClick,
3729
+ disabled: endDateDisabled,
3730
+ style: { borderColor: "transparent" },
3731
+ required: roundTripValue,
3732
+ validationRules: {
3733
+ required: labels.errorReturnDateRequired
3734
+ }
3566
3735
  }
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
- }
3736
+ )
3578
3737
  }
3579
- ) })
3738
+ )
3580
3739
  ] }) }) })
3581
3740
  ] }) }),
3582
3741
  /* @__PURE__ */ jsx(Visible, { xl: true, xxl: true, xxxl: true, children: /* @__PURE__ */ jsx(
@@ -3588,7 +3747,11 @@ var CardTicketSearch = ({
3588
3747
  xl: 1,
3589
3748
  xxl: 1,
3590
3749
  xxxl: 1,
3591
- style: { display: "flex", alignItems: "center", justifyContent: "center" },
3750
+ style: {
3751
+ display: "flex",
3752
+ alignItems: "center",
3753
+ justifyContent: "center"
3754
+ },
3592
3755
  children: /* @__PURE__ */ jsx(Divider, { vertical: true, style: { height: "100%" } })
3593
3756
  }
3594
3757
  ) }),
@@ -3608,71 +3771,107 @@ var CardTicketSearch = ({
3608
3771
  className: styles.serviceCol,
3609
3772
  children: /* @__PURE__ */ jsxs(Row, { style: { height: "100%", gap: "16px" }, children: [
3610
3773
  /* @__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,
3774
+ /* @__PURE__ */ jsx(
3775
+ Col,
3613
3776
  {
3614
- name: "serviceClass",
3615
- label: labels.serviceClassLabel,
3616
- control,
3617
- type: "text",
3618
- contentBefore: /* @__PURE__ */ jsx(
3619
- Icon$1,
3777
+ xs: 12,
3778
+ sm: 12,
3779
+ md: 12,
3780
+ lg: 12,
3781
+ xl: 12,
3782
+ xxl: 12,
3783
+ xxxl: 12,
3784
+ children: /* @__PURE__ */ jsx(
3785
+ InputDynamic_default,
3620
3786
  {
3621
- icon: "fluent:ribbon-star-24-filled",
3622
- color: tokens.colorBrandBackground
3787
+ name: "serviceClass",
3788
+ label: labels.serviceClassLabel,
3789
+ control,
3790
+ type: "text",
3791
+ contentBefore: /* @__PURE__ */ jsx(
3792
+ Icon$1,
3793
+ {
3794
+ icon: "fluent:ribbon-star-24-filled",
3795
+ color: tokens.colorBrandBackground
3796
+ }
3797
+ ),
3798
+ appearance: "filled-lighter",
3799
+ size: "medium",
3800
+ placeholder: labels.placeholderTypeClass,
3801
+ onClick: onServiceClassClick,
3802
+ required: true,
3803
+ disabled: serviceClassDisabled
3623
3804
  }
3624
- ),
3625
- appearance: "filled-lighter",
3626
- size: "medium",
3627
- placeholder: labels.placeholderTypeClass,
3628
- onClick: onServiceClassClick,
3629
- required: true,
3630
- disabled: serviceClassDisabled
3805
+ )
3631
3806
  }
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,
3807
+ ),
3808
+ /* @__PURE__ */ jsx(
3809
+ Col,
3635
3810
  {
3636
- name: "typeOfService",
3637
- label: labels.typeOfServiceLabel,
3638
- control,
3639
- type: "text",
3640
- contentBefore: /* @__PURE__ */ jsx(
3641
- Icon$1,
3811
+ xs: 12,
3812
+ sm: 12,
3813
+ md: 12,
3814
+ lg: 12,
3815
+ xl: 12,
3816
+ xxl: 12,
3817
+ xxxl: 12,
3818
+ children: /* @__PURE__ */ jsx(
3819
+ InputDynamic_default,
3642
3820
  {
3643
- icon: "fluent:apps-list-24-filled",
3644
- color: tokens.colorBrandBackground
3821
+ name: "typeOfService",
3822
+ label: labels.typeOfServiceLabel,
3823
+ control,
3824
+ type: "text",
3825
+ contentBefore: /* @__PURE__ */ jsx(
3826
+ Icon$1,
3827
+ {
3828
+ icon: "fluent:apps-list-24-filled",
3829
+ color: tokens.colorBrandBackground
3830
+ }
3831
+ ),
3832
+ appearance: "filled-lighter",
3833
+ size: "medium",
3834
+ placeholder: labels.placeholderTypeService,
3835
+ onClick: onTypeOfServiceClick,
3836
+ required: true,
3837
+ disabled: typeOfServiceDisabled
3645
3838
  }
3646
- ),
3647
- appearance: "filled-lighter",
3648
- size: "medium",
3649
- placeholder: labels.placeholderTypeService,
3650
- onClick: onTypeOfServiceClick,
3651
- required: true,
3652
- disabled: typeOfServiceDisabled
3839
+ )
3653
3840
  }
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,
3841
+ ),
3842
+ showPassengerField && /* @__PURE__ */ jsx(
3843
+ Col,
3657
3844
  {
3658
- required: true,
3659
- name: "passenger",
3660
- label: labels.passengerLabel,
3661
- control,
3662
- type: "text",
3663
- contentBefore: /* @__PURE__ */ jsx(
3664
- Icon$1,
3845
+ xs: 12,
3846
+ sm: 12,
3847
+ md: 12,
3848
+ lg: 12,
3849
+ xl: 12,
3850
+ xxl: 12,
3851
+ xxxl: 12,
3852
+ children: /* @__PURE__ */ jsx(
3853
+ InputDynamic_default,
3665
3854
  {
3666
- icon: "fluent:people-24-filled",
3667
- color: tokens.colorBrandBackground
3855
+ required: true,
3856
+ name: "passenger",
3857
+ label: labels.passengerLabel,
3858
+ control,
3859
+ type: "text",
3860
+ contentBefore: /* @__PURE__ */ jsx(
3861
+ Icon$1,
3862
+ {
3863
+ icon: "fluent:people-24-filled",
3864
+ color: tokens.colorBrandBackground
3865
+ }
3866
+ ),
3867
+ appearance: "filled-lighter",
3868
+ size: "medium",
3869
+ placeholder: labels.placeholderPassenger,
3870
+ onClick: onPassengerClick
3668
3871
  }
3669
- ),
3670
- appearance: "filled-lighter",
3671
- size: "medium",
3672
- placeholder: labels.placeholderPassenger,
3673
- onClick: onPassengerClick
3872
+ )
3674
3873
  }
3675
- ) })
3874
+ )
3676
3875
  ] }) }) }),
3677
3876
  /* @__PURE__ */ jsx(Col, { xs: 12, sm: 12, lg: 12, xl: 12, xxl: 12, xxxl: 12, children: /* @__PURE__ */ jsx(
3678
3877
  Button,
@@ -3699,7 +3898,7 @@ var CardTicketSearch = ({
3699
3898
  };
3700
3899
 
3701
3900
  // src/components/CardTicketSearchSummary/CardTicketSearchSummary.constants.ts
3702
- var DEFAULT_LABELS8 = {
3901
+ var DEFAULT_LABELS9 = {
3703
3902
  id: {
3704
3903
  originHarbor: "Pelabuhan Keberangkatan",
3705
3904
  destinationHarbor: "Pelabuhan Tujuan",
@@ -3707,7 +3906,8 @@ var DEFAULT_LABELS8 = {
3707
3906
  serviceClass: "Kelas Layanan",
3708
3907
  typeOfService: "Jenis Layanan",
3709
3908
  totalPassengers: "Jumlah Penumpang",
3710
- changeSearchButton: "Ganti Pencarian"
3909
+ changeSearchButton: "Ganti Pencarian",
3910
+ swapAriaLabel: "Tukar asal dan tujuan"
3711
3911
  },
3712
3912
  en: {
3713
3913
  originHarbor: "Departure Port",
@@ -3716,7 +3916,8 @@ var DEFAULT_LABELS8 = {
3716
3916
  serviceClass: "Service Class",
3717
3917
  typeOfService: "Service Type",
3718
3918
  totalPassengers: "Total Passengers",
3719
- changeSearchButton: "Change Search"
3919
+ changeSearchButton: "Change Search",
3920
+ swapAriaLabel: "Swap origin and destination"
3720
3921
  }
3721
3922
  };
3722
3923
  var useStyles9 = makeStyles({
@@ -3800,7 +4001,7 @@ var CardTicketSearchSummary = ({
3800
4001
  children
3801
4002
  }) => {
3802
4003
  const styles = useStyles9();
3803
- const mergedLabels = { ...DEFAULT_LABELS8[language], ...labels };
4004
+ const mergedLabels = { ...DEFAULT_LABELS9[language], ...labels };
3804
4005
  const { width } = useWindowSize();
3805
4006
  const getCircularConfig = () => {
3806
4007
  if (width <= parseInt(extendedTokens.breakpointXs))
@@ -3896,7 +4097,8 @@ var CardTicketSearchSummary = ({
3896
4097
  disabled: true,
3897
4098
  appearance: "secondary",
3898
4099
  size: "medium",
3899
- icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:arrow-swap-24-filled" })
4100
+ icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:arrow-swap-24-filled" }),
4101
+ "aria-label": mergedLabels.swapAriaLabel
3900
4102
  }
3901
4103
  ) })
3902
4104
  }
@@ -4125,7 +4327,7 @@ var CardTicketSearchSummary = ({
4125
4327
  };
4126
4328
 
4127
4329
  // src/components/ModalSearchHarbor/ModalSearchHarbor.constants.ts
4128
- var DEFAULT_LABELS9 = {
4330
+ var DEFAULT_LABELS10 = {
4129
4331
  id: {
4130
4332
  title: "Pilih Pelabuhan",
4131
4333
  searchPlaceholder: "Cari Pelabuhan...",
@@ -4133,7 +4335,8 @@ var DEFAULT_LABELS9 = {
4133
4335
  clearAllButton: "Hapus Semua",
4134
4336
  allHarborsHeader: "Semua Pelabuhan",
4135
4337
  loadingData: "Memuat data...",
4136
- harborNotFound: "Pelabuhan tidak ditemukan"
4338
+ harborNotFound: "Pelabuhan tidak ditemukan",
4339
+ closeAriaLabel: "Tutup"
4137
4340
  },
4138
4341
  en: {
4139
4342
  title: "Select Harbor",
@@ -4142,7 +4345,8 @@ var DEFAULT_LABELS9 = {
4142
4345
  clearAllButton: "Clear All",
4143
4346
  allHarborsHeader: "All Harbors",
4144
4347
  loadingData: "Loading data...",
4145
- harborNotFound: "Harbor not found"
4348
+ harborNotFound: "Harbor not found",
4349
+ closeAriaLabel: "Close"
4146
4350
  }
4147
4351
  };
4148
4352
  var useStyles10 = makeStyles({
@@ -4277,7 +4481,7 @@ var ModalSearchHarbor = ({
4277
4481
  onClearLastSearched
4278
4482
  }) => {
4279
4483
  const styles = useStyles10();
4280
- const mergedLabels = { ...DEFAULT_LABELS9[language], ...labels };
4484
+ const mergedLabels = { ...DEFAULT_LABELS10[language], ...labels };
4281
4485
  const handleSelect = (harbor) => {
4282
4486
  onAddLastSearched(harbor);
4283
4487
  onSelectHarbor(harbor);
@@ -4304,7 +4508,7 @@ var ModalSearchHarbor = ({
4304
4508
  Button,
4305
4509
  {
4306
4510
  appearance: "subtle",
4307
- "aria-label": "close",
4511
+ "aria-label": mergedLabels.closeAriaLabel,
4308
4512
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-24-regular" }),
4309
4513
  onClick: handleClose,
4310
4514
  className: styles.closeButton
@@ -4425,16 +4629,18 @@ var ModalSearchHarbor = ({
4425
4629
  };
4426
4630
 
4427
4631
  // src/components/ModalSelectDate/ModalSelectDate.constants.ts
4428
- var DEFAULT_LABELS10 = {
4632
+ var DEFAULT_LABELS11 = {
4429
4633
  id: {
4430
4634
  title: "Pilih Tanggal",
4431
4635
  oneWay: "Sekali Jalan",
4432
- roundTrip: "Pulang Pergi"
4636
+ roundTrip: "Pulang Pergi",
4637
+ closeAriaLabel: "Tutup"
4433
4638
  },
4434
4639
  en: {
4435
4640
  title: "Select Date",
4436
4641
  oneWay: "One Way",
4437
- roundTrip: "Round Trip"
4642
+ roundTrip: "Round Trip",
4643
+ closeAriaLabel: "Close"
4438
4644
  }
4439
4645
  };
4440
4646
  var useStyles11 = makeStyles({
@@ -4558,7 +4764,7 @@ var ModalSelectDate = ({
4558
4764
  showRoundtrip = true
4559
4765
  }) => {
4560
4766
  const styles = useStyles11();
4561
- const mergedLabels = { ...DEFAULT_LABELS10[language], ...labels };
4767
+ const mergedLabels = { ...DEFAULT_LABELS11[language], ...labels };
4562
4768
  useEffect(() => {
4563
4769
  moment.locale(language === "id" ? "id" : "en");
4564
4770
  }, [language]);
@@ -4722,7 +4928,7 @@ var ModalSelectDate = ({
4722
4928
  Button,
4723
4929
  {
4724
4930
  appearance: "subtle",
4725
- "aria-label": "close",
4931
+ "aria-label": mergedLabels.closeAriaLabel,
4726
4932
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-24-regular" }),
4727
4933
  onClick: handleClose,
4728
4934
  className: styles.closeButton
@@ -4781,20 +4987,22 @@ var ModalSelectDate = ({
4781
4987
  };
4782
4988
 
4783
4989
  // src/components/ModalService/ModalService.constants.ts
4784
- var DEFAULT_LABELS11 = {
4990
+ var DEFAULT_LABELS12 = {
4785
4991
  id: {
4786
4992
  title: "Pilih Kelas Layanan",
4787
4993
  loading: "Memuat...",
4788
4994
  error: "Gagal memuat layanan",
4789
4995
  selectAll: "Pilih Semua",
4790
- saveButton: "Simpan"
4996
+ saveButton: "Simpan",
4997
+ closeAriaLabel: "Tutup"
4791
4998
  },
4792
4999
  en: {
4793
5000
  title: "Select Service Class",
4794
5001
  loading: "Loading...",
4795
5002
  error: "Error loading services",
4796
5003
  selectAll: "Select All",
4797
- saveButton: "Save"
5004
+ saveButton: "Save",
5005
+ closeAriaLabel: "Close"
4798
5006
  }
4799
5007
  };
4800
5008
  var useStyles12 = makeStyles({
@@ -4883,7 +5091,7 @@ var ModalService = ({
4883
5091
  isError = false
4884
5092
  }) => {
4885
5093
  const styles = useStyles12();
4886
- const mergedLabels = { ...DEFAULT_LABELS11[language], ...labels };
5094
+ const mergedLabels = { ...DEFAULT_LABELS12[language], ...labels };
4887
5095
  const displayTitle = title || mergedLabels.title;
4888
5096
  const [selectedServices, setSelectedServices] = useState(selectedServiceIds);
4889
5097
  useEffect(() => {
@@ -4929,7 +5137,7 @@ var ModalService = ({
4929
5137
  Button,
4930
5138
  {
4931
5139
  appearance: "subtle",
4932
- "aria-label": "close",
5140
+ "aria-label": mergedLabels.closeAriaLabel,
4933
5141
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-24-regular" }),
4934
5142
  onClick: handleClose,
4935
5143
  className: styles.closeButton
@@ -4989,7 +5197,7 @@ var ModalService = ({
4989
5197
  };
4990
5198
 
4991
5199
  // src/components/ModalTotalPassengers/ModalTotalPassengers.constants.ts
4992
- var DEFAULT_LABELS12 = {
5200
+ var DEFAULT_LABELS13 = {
4993
5201
  id: {
4994
5202
  title: "Pilih Jumlah Penumpang",
4995
5203
  infoMessage: "Anda dapat menambahkan hingga {maxPassengers} penumpang pada golongan kendaraan ini.",
@@ -4997,7 +5205,8 @@ var DEFAULT_LABELS12 = {
4997
5205
  saveButton: "Simpan",
4998
5206
  economy: "Ekonomi",
4999
5207
  business: "Bisnis",
5000
- executive: "Eksekutif"
5208
+ executive: "Eksekutif",
5209
+ closeAriaLabel: "Tutup"
5001
5210
  },
5002
5211
  en: {
5003
5212
  title: "Select Total Passengers",
@@ -5006,7 +5215,8 @@ var DEFAULT_LABELS12 = {
5006
5215
  saveButton: "Save",
5007
5216
  economy: "Economy",
5008
5217
  business: "Business",
5009
- executive: "Executive"
5218
+ executive: "Executive",
5219
+ closeAriaLabel: "Close"
5010
5220
  }
5011
5221
  };
5012
5222
  var DEFAULT_SERVICE_CLASSES = [
@@ -5096,7 +5306,7 @@ var ModalTotalPassengers = ({
5096
5306
  infoMessage
5097
5307
  }) => {
5098
5308
  const styles = useStyles13();
5099
- const mergedLabels = { ...DEFAULT_LABELS12[language], ...labels };
5309
+ const mergedLabels = { ...DEFAULT_LABELS13[language], ...labels };
5100
5310
  const [passengers, setPassengers] = useState([]);
5101
5311
  const [openItems, setOpenItems] = useState([]);
5102
5312
  const defaultInfoMessage = mergedLabels.infoMessage.replace(
@@ -5247,7 +5457,7 @@ var ModalTotalPassengers = ({
5247
5457
  Button,
5248
5458
  {
5249
5459
  appearance: "subtle",
5250
- "aria-label": "close",
5460
+ "aria-label": mergedLabels.closeAriaLabel,
5251
5461
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-12-regular" }),
5252
5462
  onClick: onClose
5253
5463
  }
@@ -5361,18 +5571,20 @@ var ModalTotalPassengers = ({
5361
5571
  };
5362
5572
 
5363
5573
  // src/components/ModalTypeOfService/ModalTypeOfService.constants.ts
5364
- var DEFAULT_LABELS13 = {
5574
+ var DEFAULT_LABELS14 = {
5365
5575
  id: {
5366
5576
  title: "Pilih Tipe Layanan",
5367
5577
  cancelButton: "Batal",
5368
5578
  saveButton: "Simpan",
5369
- vehiclesAlt: "kendaraan"
5579
+ vehiclesAlt: "kendaraan",
5580
+ closeAriaLabel: "Tutup"
5370
5581
  },
5371
5582
  en: {
5372
5583
  title: "Select Service Type",
5373
5584
  cancelButton: "Cancel",
5374
5585
  saveButton: "Save",
5375
- vehiclesAlt: "vehicles"
5586
+ vehiclesAlt: "vehicles",
5587
+ closeAriaLabel: "Close"
5376
5588
  }
5377
5589
  };
5378
5590
  var DEFAULT_VEHICLE_ICONS = {
@@ -5442,7 +5654,7 @@ var ModalTypeOfService = ({
5442
5654
  renderImage
5443
5655
  }) => {
5444
5656
  const styles = useStyles14();
5445
- const mergedLabels = { ...DEFAULT_LABELS13[language], ...labels };
5657
+ const mergedLabels = { ...DEFAULT_LABELS14[language], ...labels };
5446
5658
  const [selectedServiceTitle, setSelectedServiceTitle] = useState(
5447
5659
  selectedService?.title || ""
5448
5660
  );
@@ -5550,7 +5762,7 @@ var ModalTypeOfService = ({
5550
5762
  Button,
5551
5763
  {
5552
5764
  appearance: "subtle",
5553
- "aria-label": "close",
5765
+ "aria-label": mergedLabels.closeAriaLabel,
5554
5766
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-24-regular" }),
5555
5767
  onClick: onClose,
5556
5768
  className: styles.closeButton
@@ -5684,6 +5896,37 @@ var ModalTypeOfService = ({
5684
5896
  };
5685
5897
 
5686
5898
  // src/components/SortMenu/SortMenu.constants.ts
5899
+ var DEFAULT_LABELS15 = {
5900
+ id: {
5901
+ filterButtonText: "Filter",
5902
+ sortButtonText: "Urutkan Berdasarkan",
5903
+ clearFiltersText: "{count} Filter Dipilih",
5904
+ recommendation: "Rekomendasi",
5905
+ highestPrice: "Harga Tertinggi",
5906
+ lowestPrice: "Harga Terendah",
5907
+ earliestDeparture: "Keberangkatan Paling Awal",
5908
+ latestDeparture: "Keberangkatan Paling Akhir",
5909
+ resetSortAriaLabel: "Hapus pengurutan"
5910
+ },
5911
+ en: {
5912
+ filterButtonText: "Filter",
5913
+ sortButtonText: "Sort By",
5914
+ clearFiltersText: "{count} Filters Selected",
5915
+ recommendation: "Recommendation",
5916
+ highestPrice: "Highest Price",
5917
+ lowestPrice: "Lowest Price",
5918
+ earliestDeparture: "Earliest Departure",
5919
+ latestDeparture: "Latest Departure",
5920
+ resetSortAriaLabel: "Clear sort"
5921
+ }
5922
+ };
5923
+ var getSortOptions = (labels) => [
5924
+ { value: "rekomendasi", label: labels.recommendation },
5925
+ { value: "harga-tertinggi", label: labels.highestPrice },
5926
+ { value: "harga-terendah", label: labels.lowestPrice },
5927
+ { value: "keberangkatan-paling-awal", label: labels.earliestDeparture },
5928
+ { value: "keberangkatan-paling-akhir", label: labels.latestDeparture }
5929
+ ];
5687
5930
  var DEFAULT_SORT_OPTIONS = [
5688
5931
  { value: "rekomendasi", label: "Rekomendasi" },
5689
5932
  { value: "harga-tertinggi", label: "Harga Tertinggi" },
@@ -5719,17 +5962,50 @@ var useStyles15 = makeStyles({
5719
5962
  }
5720
5963
  });
5721
5964
  var SortMenu = ({
5965
+ language = "id",
5966
+ labels: customLabels,
5722
5967
  value,
5723
5968
  onChange,
5724
5969
  totalActiveFilters = 0,
5725
5970
  onFilterClick,
5726
5971
  onClearFilters,
5727
- sortOptions = DEFAULT_SORT_OPTIONS,
5728
- filterButtonText = "Filter",
5729
- sortButtonText = "Urutkan Berdasarkan",
5730
- clearFiltersText = "{count} Filter Dipilih"
5972
+ sortOptions: customSortOptions,
5973
+ filterButtonText: deprecatedFilterButtonText,
5974
+ sortButtonText: deprecatedSortButtonText,
5975
+ clearFiltersText: deprecatedClearFiltersText
5731
5976
  }) => {
5732
5977
  const styles = useStyles15();
5978
+ const labels = React5.useMemo(
5979
+ () => ({
5980
+ ...DEFAULT_LABELS15[language],
5981
+ ...customLabels,
5982
+ // Fallback to deprecated props if provided
5983
+ ...deprecatedFilterButtonText && {
5984
+ filterButtonText: deprecatedFilterButtonText
5985
+ },
5986
+ ...deprecatedSortButtonText && {
5987
+ sortButtonText: deprecatedSortButtonText
5988
+ },
5989
+ ...deprecatedClearFiltersText && {
5990
+ clearFiltersText: deprecatedClearFiltersText
5991
+ }
5992
+ }),
5993
+ [
5994
+ language,
5995
+ customLabels,
5996
+ deprecatedFilterButtonText,
5997
+ deprecatedSortButtonText,
5998
+ deprecatedClearFiltersText
5999
+ ]
6000
+ );
6001
+ const sortOptions = React5.useMemo(
6002
+ () => customSortOptions || getSortOptions(labels),
6003
+ [customSortOptions, labels]
6004
+ );
6005
+ const currentSortLabel = React5.useMemo(
6006
+ () => sortOptions.find((opt) => opt.value === value)?.label || labels.recommendation,
6007
+ [sortOptions, value, labels.recommendation]
6008
+ );
5733
6009
  const handleReset = () => {
5734
6010
  onChange("rekomendasi");
5735
6011
  };
@@ -5744,7 +6020,7 @@ var SortMenu = ({
5744
6020
  shape: "circular",
5745
6021
  className: styles.button,
5746
6022
  onClick: onFilterClick,
5747
- children: filterButtonText
6023
+ children: labels.filterButtonText
5748
6024
  }
5749
6025
  ),
5750
6026
  /* @__PURE__ */ jsxs(Menu, { children: [
@@ -5756,10 +6032,24 @@ var SortMenu = ({
5756
6032
  type: "button",
5757
6033
  shape: "circular",
5758
6034
  className: styles.button,
5759
- children: sortButtonText
6035
+ children: labels.sortButtonText
5760
6036
  }
5761
6037
  ) }),
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)) }) }) })
6038
+ /* @__PURE__ */ jsx(MenuPopover, { children: /* @__PURE__ */ jsx(MenuList, { children: /* @__PURE__ */ jsx(
6039
+ RadioGroup,
6040
+ {
6041
+ value,
6042
+ onChange: (_, data) => onChange(data.value),
6043
+ children: sortOptions.map((option) => /* @__PURE__ */ jsx(
6044
+ Radio,
6045
+ {
6046
+ value: option.value,
6047
+ label: option.label
6048
+ },
6049
+ option.value
6050
+ ))
6051
+ }
6052
+ ) }) })
5763
6053
  ] }),
5764
6054
  /* @__PURE__ */ jsx(Divider, { vertical: true, className: styles.divider }),
5765
6055
  /* @__PURE__ */ jsx(
@@ -5772,7 +6062,8 @@ var SortMenu = ({
5772
6062
  type: "button",
5773
6063
  shape: "circular",
5774
6064
  className: styles.button,
5775
- children: getSortLabel(value)
6065
+ "aria-label": labels.resetSortAriaLabel,
6066
+ children: currentSortLabel
5776
6067
  }
5777
6068
  ),
5778
6069
  totalActiveFilters > 0 && onClearFilters && /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -5787,7 +6078,10 @@ var SortMenu = ({
5787
6078
  onClick: onClearFilters,
5788
6079
  shape: "circular",
5789
6080
  className: styles.button,
5790
- children: clearFiltersText.replace("{count}", totalActiveFilters.toString())
6081
+ children: labels.clearFiltersText.replace(
6082
+ "{count}",
6083
+ totalActiveFilters.toString()
6084
+ )
5791
6085
  }
5792
6086
  )
5793
6087
  ] })
@@ -5795,7 +6089,7 @@ var SortMenu = ({
5795
6089
  };
5796
6090
 
5797
6091
  // src/components/ModalFilterTicket/ModalFilterTicket.constants.ts
5798
- var DEFAULT_LABELS14 = {
6092
+ var DEFAULT_LABELS16 = {
5799
6093
  id: {
5800
6094
  title: "Filter dengan",
5801
6095
  serviceTypeLabel: "Jenis Layanan",
@@ -5809,7 +6103,10 @@ var DEFAULT_LABELS14 = {
5809
6103
  durationLabel: "Durasi perjalanan",
5810
6104
  durationRangeText: (min, max) => `Perjalanan ${min} - ${max} jam`,
5811
6105
  resetButton: "Reset",
5812
- applyButton: "Terapkan"
6106
+ applyButton: "Terapkan",
6107
+ hourUnit: "jam",
6108
+ currencySymbol: "IDR",
6109
+ closeAriaLabel: "Tutup"
5813
6110
  },
5814
6111
  en: {
5815
6112
  title: "Filter by",
@@ -5824,7 +6121,10 @@ var DEFAULT_LABELS14 = {
5824
6121
  durationLabel: "Travel duration",
5825
6122
  durationRangeText: (min, max) => `${min} - ${max} hours trip`,
5826
6123
  resetButton: "Reset",
5827
- applyButton: "Apply"
6124
+ applyButton: "Apply",
6125
+ hourUnit: "hours",
6126
+ currencySymbol: "IDR",
6127
+ closeAriaLabel: "Close"
5828
6128
  }
5829
6129
  };
5830
6130
  var DEFAULT_SERVICE_TYPES = [
@@ -5960,7 +6260,7 @@ var ModalFilterTicket = ({
5960
6260
  maxDuration = DEFAULT_DURATION_RANGE.max
5961
6261
  }) => {
5962
6262
  const styles = useStyles16();
5963
- const mergedLabels = { ...DEFAULT_LABELS14[language], ...labels };
6263
+ const mergedLabels = { ...DEFAULT_LABELS16[language], ...labels };
5964
6264
  const [rangeReady, setRangeReady] = useState(false);
5965
6265
  useEffect(() => {
5966
6266
  if (open) {
@@ -5995,7 +6295,9 @@ var ModalFilterTicket = ({
5995
6295
  }
5996
6296
  };
5997
6297
  const formatPrice = (price) => {
5998
- return new Intl.NumberFormat("id-ID").format(price);
6298
+ return new Intl.NumberFormat(language === "id" ? "id-ID" : "en-US").format(
6299
+ price
6300
+ );
5999
6301
  };
6000
6302
  const renderPriceTrack = useCallback(
6001
6303
  ({ props, children }) => {
@@ -6101,7 +6403,7 @@ var ModalFilterTicket = ({
6101
6403
  Button,
6102
6404
  {
6103
6405
  appearance: "subtle",
6104
- "aria-label": "close",
6406
+ "aria-label": mergedLabels.closeAriaLabel,
6105
6407
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-24-regular" }),
6106
6408
  className: styles.closeButton,
6107
6409
  onClick: () => onOpenChange(false)
@@ -6239,11 +6541,13 @@ var ModalFilterTicket = ({
6239
6541
  /* @__PURE__ */ jsxs("div", { className: styles.sliderValues, children: [
6240
6542
  /* @__PURE__ */ jsxs("span", { children: [
6241
6543
  minDuration,
6242
- " jam"
6544
+ " ",
6545
+ mergedLabels.hourUnit
6243
6546
  ] }),
6244
6547
  /* @__PURE__ */ jsxs("span", { children: [
6245
6548
  maxDuration,
6246
- " jam"
6549
+ " ",
6550
+ mergedLabels.hourUnit
6247
6551
  ] })
6248
6552
  ] })
6249
6553
  ] })
@@ -6266,10 +6570,17 @@ var ModalFilterTicket = ({
6266
6570
  };
6267
6571
 
6268
6572
  // src/components/DateFilter/DateFilter.constants.ts
6269
- var DEFAULT_LABELS15 = {
6270
- prevButtonAriaLabel: "Previous dates",
6271
- nextButtonAriaLabel: "Next dates",
6272
- calendarButtonAriaLabel: "Open calendar"
6573
+ var DEFAULT_LABELS17 = {
6574
+ id: {
6575
+ prevButtonAriaLabel: "Tanggal sebelumnya",
6576
+ nextButtonAriaLabel: "Tanggal berikutnya",
6577
+ calendarButtonAriaLabel: "Buka kalender"
6578
+ },
6579
+ en: {
6580
+ prevButtonAriaLabel: "Previous dates",
6581
+ nextButtonAriaLabel: "Next dates",
6582
+ calendarButtonAriaLabel: "Open calendar"
6583
+ }
6273
6584
  };
6274
6585
  var DEFAULT_SCROLL_AMOUNT = 150;
6275
6586
  var useStyles17 = makeStyles({
@@ -6351,11 +6662,15 @@ var DateFilter = ({
6351
6662
  showNavigation = true,
6352
6663
  showCalendarButton = true,
6353
6664
  scrollAmount = DEFAULT_SCROLL_AMOUNT,
6665
+ language = "id",
6354
6666
  labels
6355
6667
  }) => {
6356
6668
  const styles = useStyles17();
6357
6669
  const scrollRef = useRef(null);
6358
- const mergedLabels = { ...DEFAULT_LABELS15, ...labels };
6670
+ const mergedLabels = {
6671
+ ...DEFAULT_LABELS17[language],
6672
+ ...labels
6673
+ };
6359
6674
  const handlePrev = () => {
6360
6675
  scrollRef.current?.scrollBy({ left: -scrollAmount, behavior: "smooth" });
6361
6676
  };
@@ -6413,7 +6728,7 @@ var DateFilter = ({
6413
6728
  };
6414
6729
 
6415
6730
  // src/components/ModalSearchTicket/ModalSearchTicket.constants.ts
6416
- var DEFAULT_LABELS16 = {
6731
+ var DEFAULT_LABELS18 = {
6417
6732
  id: {
6418
6733
  title: "Cari Jadwal Lainnya",
6419
6734
  fromLabel: "Dari",
@@ -6435,7 +6750,8 @@ var DEFAULT_LABELS16 = {
6435
6750
  typeOfServicePlaceholder: "Pilih Jenis penumpang",
6436
6751
  passengerLabel: "Penumpang",
6437
6752
  passengerPlaceholder: "Pilih Penumpang",
6438
- searchButton: "Cari Tiket"
6753
+ searchButton: "Cari Tiket",
6754
+ closeAriaLabel: "Tutup"
6439
6755
  },
6440
6756
  en: {
6441
6757
  title: "Search Other Schedules",
@@ -6458,7 +6774,8 @@ var DEFAULT_LABELS16 = {
6458
6774
  typeOfServicePlaceholder: "Select Type of Passenger",
6459
6775
  passengerLabel: "Passenger",
6460
6776
  passengerPlaceholder: "Select Passenger",
6461
- searchButton: "Search Ticket"
6777
+ searchButton: "Search Ticket",
6778
+ closeAriaLabel: "Close"
6462
6779
  }
6463
6780
  };
6464
6781
  var DEFAULT_FORM_VALUES = {
@@ -6574,7 +6891,7 @@ var ModalSearchTicket = ({
6574
6891
  ...props
6575
6892
  }) => {
6576
6893
  const styles = useStyles18();
6577
- const mergedLabels = { ...DEFAULT_LABELS16[language], ...labels };
6894
+ const mergedLabels = { ...DEFAULT_LABELS18[language], ...labels };
6578
6895
  const { control, setValue, handleSubmit, watch } = useForm({
6579
6896
  defaultValues: {
6580
6897
  ...DEFAULT_FORM_VALUES,
@@ -6628,7 +6945,7 @@ var ModalSearchTicket = ({
6628
6945
  Button,
6629
6946
  {
6630
6947
  appearance: "subtle",
6631
- "aria-label": "close",
6948
+ "aria-label": mergedLabels.closeAriaLabel,
6632
6949
  className: styles.closeButton,
6633
6950
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-24-regular" }),
6634
6951
  onClick: onClose
@@ -7011,7 +7328,7 @@ var ModalSearchTicket = ({
7011
7328
  };
7012
7329
 
7013
7330
  // src/components/Stepper/Stepper.constants.ts
7014
- var DEFAULT_LABELS17 = {
7331
+ var DEFAULT_LABELS19 = {
7015
7332
  id: {
7016
7333
  stepperBackgroundAlt: "Latar Belakang Stepper",
7017
7334
  ferryIconAlt: "Ikon Kapal"
@@ -7147,7 +7464,7 @@ var Stepper = ({
7147
7464
  labels
7148
7465
  }) => {
7149
7466
  const styles = useStyles19();
7150
- const mergedLabels = { ...DEFAULT_LABELS17[language], ...labels };
7467
+ const mergedLabels = { ...DEFAULT_LABELS19[language], ...labels };
7151
7468
  const currentStepIndex = useMemo(() => {
7152
7469
  if (typeof currentStep === "number") {
7153
7470
  return steps.findIndex((step) => step.number === currentStep);
@@ -7203,7 +7520,7 @@ var Stepper = ({
7203
7520
  };
7204
7521
 
7205
7522
  // src/components/CardOrdererInfo/CardOrdererInfo.constants.ts
7206
- var DEFAULT_LABELS18 = {
7523
+ var DEFAULT_LABELS20 = {
7207
7524
  id: {
7208
7525
  title: "Informasi Pemesan",
7209
7526
  ordererName: "Nama Pemesan",
@@ -7248,7 +7565,7 @@ var CardOrdererInfo = ({
7248
7565
  className
7249
7566
  }) => {
7250
7567
  const styles = useStyles20();
7251
- const mergedLabels = { ...DEFAULT_LABELS18[language], ...labels };
7568
+ const mergedLabels = { ...DEFAULT_LABELS20[language], ...labels };
7252
7569
  return /* @__PURE__ */ jsxs(Card, { className: className || styles.card, children: [
7253
7570
  /* @__PURE__ */ jsx(Title3, { children: mergedLabels.title }),
7254
7571
  /* @__PURE__ */ jsxs("div", { className: styles.container, children: [
@@ -7269,20 +7586,34 @@ var CardOrdererInfo = ({
7269
7586
  };
7270
7587
 
7271
7588
  // src/components/ModalListPassenger/ModalListPassenger.constants.ts
7272
- var DEFAULT_LABELS19 = {
7589
+ var DEFAULT_LABELS21 = {
7273
7590
  id: {
7274
7591
  title: "Detail Penumpang",
7275
7592
  sameAsOrderer: "Sama Dengan Pemesan",
7276
7593
  searchPlaceholder: "Cari Penumpang",
7277
7594
  addPassengerButton: "Tambah Penumpang",
7278
- cancelButton: "Batal"
7595
+ cancelButton: "Batal",
7596
+ editPassengerAriaLabel: "Edit data penumpang",
7597
+ categories: {
7598
+ adult: "Dewasa",
7599
+ child: "Anak",
7600
+ infant: "Bayi",
7601
+ elderly: "Lansia"
7602
+ }
7279
7603
  },
7280
7604
  en: {
7281
7605
  title: "Passenger Details",
7282
7606
  sameAsOrderer: "Same as Orderer",
7283
7607
  searchPlaceholder: "Search Passenger",
7284
7608
  addPassengerButton: "Add Passenger",
7285
- cancelButton: "Cancel"
7609
+ cancelButton: "Cancel",
7610
+ editPassengerAriaLabel: "Edit passenger data",
7611
+ categories: {
7612
+ adult: "Adult",
7613
+ child: "Child",
7614
+ infant: "Infant",
7615
+ elderly: "Elderly"
7616
+ }
7286
7617
  }
7287
7618
  };
7288
7619
  var useStyles21 = makeStyles({
@@ -7341,7 +7672,7 @@ var ModalListPassenger = ({
7341
7672
  onSameAsOrdererChange
7342
7673
  }) => {
7343
7674
  const styles = useStyles21();
7344
- const mergedLabels = { ...DEFAULT_LABELS19[language], ...labels };
7675
+ const mergedLabels = { ...DEFAULT_LABELS21[language], ...labels };
7345
7676
  const displayTitle = title || mergedLabels.title;
7346
7677
  const handleClose = () => {
7347
7678
  onClose();
@@ -7409,20 +7740,31 @@ var ModalListPassenger = ({
7409
7740
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(Subtitle2, { children: [
7410
7741
  passenger.name,
7411
7742
  " (",
7412
- passenger.category,
7743
+ (() => {
7744
+ const cat = passenger.category?.toUpperCase();
7745
+ if (cat === "ADULT")
7746
+ return mergedLabels.categories.adult;
7747
+ if (cat === "CHILD")
7748
+ return mergedLabels.categories.child;
7749
+ if (cat === "INFANT")
7750
+ return mergedLabels.categories.infant;
7751
+ if (cat === "ELDERLY")
7752
+ return mergedLabels.categories.elderly;
7753
+ return passenger.category;
7754
+ })(),
7413
7755
  ")"
7414
7756
  ] }) }),
7415
7757
  /* @__PURE__ */ jsx(
7416
- Icon,
7758
+ Button,
7417
7759
  {
7418
- icon: "fluent:chevron-right-24-regular",
7760
+ appearance: "transparent",
7761
+ icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:chevron-right-24-regular" }),
7419
7762
  onClick: (e) => {
7420
7763
  e.preventDefault();
7421
7764
  e.stopPropagation();
7422
7765
  onEditPassenger(passenger);
7423
7766
  },
7424
- width: 20,
7425
- height: 20
7767
+ "aria-label": mergedLabels.editPassengerAriaLabel
7426
7768
  }
7427
7769
  )
7428
7770
  ]
@@ -7458,7 +7800,7 @@ var ModalListPassenger = ({
7458
7800
  };
7459
7801
 
7460
7802
  // src/components/ModalPassengerForm/ModalPassengerForm.constants.ts
7461
- var DEFAULT_LABELS20 = {
7803
+ var DEFAULT_LABELS22 = {
7462
7804
  id: {
7463
7805
  title: "Detail Penumpang",
7464
7806
  titleLabel: "Title",
@@ -7559,9 +7901,9 @@ var ModalPassengerForm = ({
7559
7901
  ticketClassOptions
7560
7902
  }) => {
7561
7903
  const styles = useStyles22();
7562
- const mergedLabels = { ...DEFAULT_LABELS20[language], ...labels };
7904
+ const mergedLabels = { ...DEFAULT_LABELS22[language], ...labels };
7563
7905
  const mergedErrors = {
7564
- ...DEFAULT_LABELS20[language].errors,
7906
+ ...DEFAULT_LABELS22[language].errors,
7565
7907
  ...labels?.errors
7566
7908
  };
7567
7909
  const displayTitle = title || mergedLabels.title;
@@ -7761,7 +8103,7 @@ var ModalPassengerForm = ({
7761
8103
  };
7762
8104
 
7763
8105
  // src/components/CardPassengerList/CardPassengerList.constants.ts
7764
- var DEFAULT_LABELS21 = {
8106
+ var DEFAULT_LABELS23 = {
7765
8107
  id: {
7766
8108
  defaultTitle: "Data Penumpang",
7767
8109
  passengerPrefix: "Penumpang"
@@ -7883,7 +8225,7 @@ var CardPassengerList = ({
7883
8225
  className
7884
8226
  }) => {
7885
8227
  const styles = useStyles23();
7886
- const mergedLabels = { ...DEFAULT_LABELS21[language], ...labels };
8228
+ const mergedLabels = { ...DEFAULT_LABELS23[language], ...labels };
7887
8229
  const displayTitle = title || mergedLabels.defaultTitle;
7888
8230
  return /* @__PURE__ */ jsxs(Card, { className: className || styles.card, children: [
7889
8231
  /* @__PURE__ */ jsxs("div", { className: styles.headerContainer, children: [
@@ -7956,7 +8298,7 @@ var CardPassengerList = ({
7956
8298
  };
7957
8299
 
7958
8300
  // src/components/CardVehicleDetail/CardVehicleDetail.constants.ts
7959
- var DEFAULT_LABELS22 = {
8301
+ var DEFAULT_LABELS24 = {
7960
8302
  id: {
7961
8303
  title: "Detail Kendaraan",
7962
8304
  vehicleNumberLabel: "Nomor Kendaraan",
@@ -8014,7 +8356,7 @@ var CardVehicleDetail = ({
8014
8356
  labels
8015
8357
  }) => {
8016
8358
  const styles = useStyles24();
8017
- const mergedLabels = { ...DEFAULT_LABELS22[language], ...labels };
8359
+ const mergedLabels = { ...DEFAULT_LABELS24[language], ...labels };
8018
8360
  return /* @__PURE__ */ jsxs(Card, { className: styles.card, children: [
8019
8361
  /* @__PURE__ */ jsxs(
8020
8362
  "div",
@@ -8074,7 +8416,7 @@ var CardVehicleDetail = ({
8074
8416
  };
8075
8417
 
8076
8418
  // src/components/CardVehicleOwnerForm/CardVehicleOwnerForm.constants.ts
8077
- var DEFAULT_LABELS23 = {
8419
+ var DEFAULT_LABELS25 = {
8078
8420
  id: {
8079
8421
  title: "Informasi Pemilik & Muatan",
8080
8422
  addOwnerButton: "Tambah Pemilik",
@@ -8100,6 +8442,7 @@ var DEFAULT_LABELS23 = {
8100
8442
  cargoReceiverCompanyPlaceholder: "Pilih Nama Perusahaan Penerima Barang",
8101
8443
  cargoReceiverIndividualPlaceholder: "Masukkan Nama Penerima Barang",
8102
8444
  totalWeightLabel: "Berat Muatan dan Kendaraan (Ton)",
8445
+ commentLabel: "Komentar",
8103
8446
  cargoListTitle: "Daftar Muatan",
8104
8447
  cargoItemTitle: "Muatan {index}",
8105
8448
  commodityLabel: "Data Komoditas",
@@ -8120,7 +8463,12 @@ var DEFAULT_LABELS23 = {
8120
8463
  kg: "Kg",
8121
8464
  ton: "Ton",
8122
8465
  unit: "Unit"
8123
- }
8466
+ },
8467
+ pricePlaceholder: "Rp. 0",
8468
+ currencySymbol: "Rp.",
8469
+ deleteOwnerAriaLabel: "Hapus pemilik",
8470
+ decrementQuantityAriaLabel: "Kurangi jumlah",
8471
+ incrementQuantityAriaLabel: "Tambah jumlah"
8124
8472
  },
8125
8473
  en: {
8126
8474
  title: "Owner & Cargo Information",
@@ -8147,6 +8495,7 @@ var DEFAULT_LABELS23 = {
8147
8495
  cargoReceiverCompanyPlaceholder: "Select Cargo Receiver Company",
8148
8496
  cargoReceiverIndividualPlaceholder: "Enter Cargo Receiver Name",
8149
8497
  totalWeightLabel: "Cargo & Vehicle Weight (Ton)",
8498
+ commentLabel: "Comment",
8150
8499
  cargoListTitle: "Cargo List",
8151
8500
  cargoItemTitle: "Cargo {index}",
8152
8501
  commodityLabel: "Commodity Data",
@@ -8167,7 +8516,12 @@ var DEFAULT_LABELS23 = {
8167
8516
  kg: "Kg",
8168
8517
  ton: "Ton",
8169
8518
  unit: "Unit"
8170
- }
8519
+ },
8520
+ pricePlaceholder: "Rp. 0",
8521
+ currencySymbol: "Rp.",
8522
+ deleteOwnerAriaLabel: "Delete owner",
8523
+ decrementQuantityAriaLabel: "Decrease quantity",
8524
+ incrementQuantityAriaLabel: "Increase quantity"
8171
8525
  }
8172
8526
  };
8173
8527
  var useStyles25 = makeStyles({
@@ -8230,7 +8584,7 @@ var CardVehicleOwnerForm = ({
8230
8584
  labels
8231
8585
  }) => {
8232
8586
  const styles = useStyles25();
8233
- const mergedLabels = { ...DEFAULT_LABELS23[language], ...labels };
8587
+ const mergedLabels = { ...DEFAULT_LABELS25[language], ...labels };
8234
8588
  return /* @__PURE__ */ jsxs(Card, { className: styles.card, children: [
8235
8589
  /* @__PURE__ */ jsxs("div", { className: styles.header, children: [
8236
8590
  /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", flex: 1 }, children: [
@@ -8284,6 +8638,7 @@ var CardVehicleOwnerForm = ({
8284
8638
  {
8285
8639
  appearance: "transparent",
8286
8640
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:delete-24-regular" }),
8641
+ "aria-label": mergedLabels.deleteOwnerAriaLabel,
8287
8642
  onClick: (e) => {
8288
8643
  e.stopPropagation();
8289
8644
  onDeleteOwner(owner.id);
@@ -8750,6 +9105,7 @@ var CardVehicleOwnerForm = ({
8750
9105
  }
8751
9106
  }
8752
9107
  ),
9108
+ "aria-label": mergedLabels.decrementQuantityAriaLabel,
8753
9109
  size: "small",
8754
9110
  onClick: () => {
8755
9111
  const currentVal = getValues(
@@ -8814,6 +9170,7 @@ var CardVehicleOwnerForm = ({
8814
9170
  }
8815
9171
  }
8816
9172
  ),
9173
+ "aria-label": mergedLabels.incrementQuantityAriaLabel,
8817
9174
  size: "small",
8818
9175
  onClick: () => {
8819
9176
  const currentVal = getValues(
@@ -8877,7 +9234,7 @@ var CardVehicleOwnerForm = ({
8877
9234
  {
8878
9235
  control,
8879
9236
  name: `owners.${index}.price`,
8880
- placeholder: "Rp. 0",
9237
+ placeholder: mergedLabels.pricePlaceholder,
8881
9238
  disabled: true,
8882
9239
  size: "large",
8883
9240
  type: "text"
@@ -9005,7 +9362,7 @@ var CardVehicleOwnerForm = ({
9005
9362
  };
9006
9363
 
9007
9364
  // src/components/CardBookingTicket/CardBookingTicket.constants.ts
9008
- var DEFAULT_LABELS24 = {
9365
+ var DEFAULT_LABELS26 = {
9009
9366
  id: {
9010
9367
  bookingDetails: "Booking Details",
9011
9368
  routeTitle: "Rute Perjalanan",
@@ -9015,7 +9372,8 @@ var DEFAULT_LABELS24 = {
9015
9372
  previousButton: "Sebelumnya",
9016
9373
  viewBookingButton: "Lihat Pemesanan",
9017
9374
  changePaymentButton: "Ubah Metode Pembayaran",
9018
- timezoneLabel: "WIB"
9375
+ timezoneLabel: "WIB",
9376
+ currencySymbol: "IDR"
9019
9377
  },
9020
9378
  en: {
9021
9379
  bookingDetails: "Booking Details",
@@ -9026,7 +9384,8 @@ var DEFAULT_LABELS24 = {
9026
9384
  previousButton: "Previous",
9027
9385
  viewBookingButton: "View Booking",
9028
9386
  changePaymentButton: "Change Payment Method",
9029
- timezoneLabel: "WIB"
9387
+ timezoneLabel: "WIB",
9388
+ currencySymbol: "IDR"
9030
9389
  }
9031
9390
  };
9032
9391
  var useStyles26 = makeStyles({
@@ -9162,7 +9521,7 @@ var CardBookingTicket = ({
9162
9521
  className
9163
9522
  }) => {
9164
9523
  const styles = useStyles26();
9165
- const mergedLabels = { ...DEFAULT_LABELS24[language], ...labels };
9524
+ const mergedLabels = { ...DEFAULT_LABELS26[language], ...labels };
9166
9525
  return /* @__PURE__ */ jsx("div", { className: `${styles.container} ${className || ""}`, children: /* @__PURE__ */ jsxs("div", { className: styles.bookingDetail, children: [
9167
9526
  /* @__PURE__ */ jsxs(Card, { className: styles.bookingDetailTop, children: [
9168
9527
  /* @__PURE__ */ jsx(Subtitle1, { children: mergedLabels.bookingDetails }),
@@ -9228,7 +9587,8 @@ var CardBookingTicket = ({
9228
9587
  /* @__PURE__ */ jsxs("div", { className: styles.totalPrice, children: [
9229
9588
  /* @__PURE__ */ jsx(Subtitle1, { children: mergedLabels.totalPriceLabel }),
9230
9589
  /* @__PURE__ */ jsxs(Title3, { className: styles.priceText, children: [
9231
- "IDR ",
9590
+ mergedLabels.currencySymbol,
9591
+ " ",
9232
9592
  totalPrice
9233
9593
  ] }),
9234
9594
  /* @__PURE__ */ jsx(
@@ -9299,7 +9659,7 @@ var CardBookingTicket = ({
9299
9659
  };
9300
9660
 
9301
9661
  // src/components/CardFAQ/CardFAQ.constants.ts
9302
- var DEFAULT_LABELS25 = {
9662
+ var DEFAULT_LABELS27 = {
9303
9663
  id: {
9304
9664
  title: "Pertanyaan yang sering diajukan"
9305
9665
  },
@@ -9378,7 +9738,7 @@ var CardFAQ = ({
9378
9738
  className
9379
9739
  }) => {
9380
9740
  const styles = useStyles27();
9381
- const mergedLabels = { ...DEFAULT_LABELS25[language], ...labels };
9741
+ const mergedLabels = { ...DEFAULT_LABELS27[language], ...labels };
9382
9742
  const faqItems = items || DEFAULT_FAQ_ITEMS[language];
9383
9743
  return /* @__PURE__ */ jsxs(Card, { className: styles.faqCard, children: [
9384
9744
  /* @__PURE__ */ jsx(Subtitle1, { children: mergedLabels.title }),
@@ -9415,18 +9775,20 @@ var CardFAQ = ({
9415
9775
  };
9416
9776
 
9417
9777
  // src/components/CardAddon/CardAddon.constants.ts
9418
- var DEFAULT_LABELS26 = {
9778
+ var DEFAULT_LABELS28 = {
9419
9779
  id: {
9420
9780
  viewDetail: "Lihat detail",
9421
9781
  totalPrice: "Total Harga",
9422
9782
  passengerInsurance: "Asuransi Penumpang",
9423
- removeOrder: "Hapus Pesanan"
9783
+ removeOrder: "Hapus Pesanan",
9784
+ currencySymbol: "Rp"
9424
9785
  },
9425
9786
  en: {
9426
9787
  viewDetail: "View Details",
9427
9788
  totalPrice: "Total Price",
9428
9789
  passengerInsurance: "Passenger Insurance",
9429
- removeOrder: "Remove Order"
9790
+ removeOrder: "Remove Order",
9791
+ currencySymbol: "Rp"
9430
9792
  }
9431
9793
  };
9432
9794
  var useStyles28 = makeStyles({
@@ -9603,7 +9965,7 @@ var CardAddon = ({
9603
9965
  className
9604
9966
  }) => {
9605
9967
  const styles = useStyles28();
9606
- const mergedLabels = { ...DEFAULT_LABELS26[language], ...labels };
9968
+ const mergedLabels = { ...DEFAULT_LABELS28[language], ...labels };
9607
9969
  return /* @__PURE__ */ jsx(Card, { className: `${styles.card} ${className || ""}`, children: /* @__PURE__ */ jsxs("div", { className: styles.gapRow, children: [
9608
9970
  /* @__PURE__ */ jsxs("div", { className: styles.titleDivider, children: [
9609
9971
  /* @__PURE__ */ jsx(Title3, { className: styles.textTitle, children: title }),
@@ -9635,8 +9997,11 @@ var CardAddon = ({
9635
9997
  footerData.priceLabel,
9636
9998
  " ",
9637
9999
  /* @__PURE__ */ jsxs(Caption1Stronger, { children: [
9638
- "Rp",
9639
- footerData.price.toLocaleString("id-ID"),
10000
+ mergedLabels.currencySymbol,
10001
+ " ",
10002
+ footerData.price.toLocaleString(
10003
+ language === "id" ? "id-ID" : "en-US"
10004
+ ),
9640
10005
  footerData.priceUnit
9641
10006
  ] })
9642
10007
  ] }) }),
@@ -9681,15 +10046,21 @@ var CardAddon = ({
9681
10046
  ")"
9682
10047
  ] }),
9683
10048
  /* @__PURE__ */ jsxs(Body1, { children: [
9684
- "Rp",
9685
- item.totalPrice.toLocaleString("id-ID")
10049
+ mergedLabels.currencySymbol,
10050
+ " ",
10051
+ item.totalPrice.toLocaleString(
10052
+ language === "id" ? "id-ID" : "en-US"
10053
+ )
9686
10054
  ] })
9687
10055
  ] }, idx)),
9688
10056
  /* @__PURE__ */ jsxs("div", { className: styles.breakdownRow, children: [
9689
10057
  /* @__PURE__ */ jsx(Subtitle2, { children: mergedLabels.totalPrice }),
9690
10058
  /* @__PURE__ */ jsxs(Subtitle2, { children: [
9691
- "Rp",
9692
- assuranceData.totalPrice.toLocaleString("id-ID")
10059
+ mergedLabels.currencySymbol,
10060
+ " ",
10061
+ assuranceData.totalPrice.toLocaleString(
10062
+ language === "id" ? "id-ID" : "en-US"
10063
+ )
9693
10064
  ] })
9694
10065
  ] })
9695
10066
  ] })
@@ -9709,13 +10080,20 @@ var CardAddon = ({
9709
10080
  /* @__PURE__ */ jsx(Body1Strong, { children: item.name }),
9710
10081
  /* @__PURE__ */ jsx(Caption1, { className: styles.mealDescription, children: item.description }),
9711
10082
  /* @__PURE__ */ jsxs(Body1Strong, { className: styles.mealPriceInfo, children: [
9712
- "Rp",
9713
- item.price.toLocaleString("id-ID"),
9714
- " x ",
10083
+ mergedLabels.currencySymbol,
10084
+ " ",
10085
+ item.price.toLocaleString(
10086
+ language === "id" ? "id-ID" : "en-US"
10087
+ ),
10088
+ " ",
10089
+ "x ",
9715
10090
  item.quantity,
10091
+ " = ",
10092
+ mergedLabels.currencySymbol,
9716
10093
  " ",
9717
- "= Rp",
9718
- (item.price * item.quantity).toLocaleString("id-ID")
10094
+ (item.price * item.quantity).toLocaleString(
10095
+ language === "id" ? "id-ID" : "en-US"
10096
+ )
9719
10097
  ] })
9720
10098
  ] }),
9721
10099
  /* @__PURE__ */ jsxs("div", { className: styles.mealActions, children: [
@@ -9770,8 +10148,11 @@ var CardAddon = ({
9770
10148
  /* @__PURE__ */ jsxs("div", { className: styles.totalContainer, children: [
9771
10149
  /* @__PURE__ */ jsx(Subtitle2, { children: footerData.priceLabel }),
9772
10150
  /* @__PURE__ */ jsxs(Subtitle1, { style: { fontSize: tokens.fontSizeBase600 }, children: [
9773
- "Rp. ",
9774
- footerData.price.toLocaleString("id-ID")
10151
+ mergedLabels.currencySymbol,
10152
+ " ",
10153
+ footerData.price.toLocaleString(
10154
+ language === "id" ? "id-ID" : "en-US"
10155
+ )
9775
10156
  ] })
9776
10157
  ] }),
9777
10158
  /* @__PURE__ */ jsx("div", { style: { width: "100%" }, children: /* @__PURE__ */ jsx(
@@ -9795,12 +10176,18 @@ var CardAddon = ({
9795
10176
  };
9796
10177
 
9797
10178
  // src/components/CardMealCatalog/CardMealCatalog.constants.ts
9798
- var DEFAULT_LABELS27 = {
10179
+ var DEFAULT_LABELS29 = {
9799
10180
  id: {
9800
- addButton: "Tambah"
10181
+ addButton: "Tambah",
10182
+ currencySymbol: "Rp",
10183
+ decrementAriaLabel: "Kurangi jumlah",
10184
+ incrementAriaLabel: "Tambah jumlah"
9801
10185
  },
9802
10186
  en: {
9803
- addButton: "Add"
10187
+ addButton: "Add",
10188
+ currencySymbol: "Rp",
10189
+ decrementAriaLabel: "Decrease quantity",
10190
+ incrementAriaLabel: "Increase quantity"
9804
10191
  }
9805
10192
  };
9806
10193
  var useStyles29 = makeStyles({
@@ -9943,7 +10330,7 @@ var CardMealCatalog = ({
9943
10330
  className
9944
10331
  }) => {
9945
10332
  const styles = useStyles29();
9946
- const mergedLabels = { ...DEFAULT_LABELS27[language], ...labels };
10333
+ const mergedLabels = { ...DEFAULT_LABELS29[language], ...labels };
9947
10334
  return /* @__PURE__ */ jsxs("div", { className: `${styles.container} ${className || ""}`, children: [
9948
10335
  /* @__PURE__ */ jsxs("div", { className: styles.banner, children: [
9949
10336
  /* @__PURE__ */ jsx("div", { className: styles.bannerOverlay }),
@@ -9992,8 +10379,11 @@ var CardMealCatalog = ({
9992
10379
  ] }),
9993
10380
  /* @__PURE__ */ jsxs("div", { className: styles.productFooter, children: [
9994
10381
  /* @__PURE__ */ jsxs(Body1, { className: styles.price, children: [
9995
- "Rp",
9996
- item.price.toLocaleString("id-ID")
10382
+ mergedLabels.currencySymbol,
10383
+ " ",
10384
+ item.price.toLocaleString(
10385
+ language === "id" ? "id-ID" : "en-US"
10386
+ )
9997
10387
  ] }),
9998
10388
  item.quantity > 0 ? /* @__PURE__ */ jsxs("div", { className: styles.quantitySelector, children: [
9999
10389
  /* @__PURE__ */ jsx(
@@ -10001,16 +10391,18 @@ var CardMealCatalog = ({
10001
10391
  {
10002
10392
  size: "small",
10003
10393
  shape: "circular",
10394
+ "aria-label": mergedLabels.decrementAriaLabel,
10004
10395
  icon: /* @__PURE__ */ jsx(SubtractRegular, {}),
10005
10396
  onClick: () => onUpdateQuantity(item.id, -1)
10006
10397
  }
10007
10398
  ),
10008
- /* @__PURE__ */ jsx(Body1, { children: item.quantity }),
10399
+ /* @__PURE__ */ jsx(Body1, { "aria-live": "polite", children: item.quantity }),
10009
10400
  /* @__PURE__ */ jsx(
10010
10401
  Button,
10011
10402
  {
10012
10403
  size: "small",
10013
10404
  shape: "circular",
10405
+ "aria-label": mergedLabels.incrementAriaLabel,
10014
10406
  icon: /* @__PURE__ */ jsx(AddRegular, {}),
10015
10407
  onClick: () => onUpdateQuantity(item.id, 1)
10016
10408
  }
@@ -10033,9 +10425,13 @@ var CardMealCatalog = ({
10033
10425
  };
10034
10426
 
10035
10427
  // src/components/CardReview/CardReview.constants.ts
10036
- var DEFAULT_LABELS28 = {
10037
- id: {},
10038
- en: {}
10428
+ var DEFAULT_LABELS30 = {
10429
+ id: {
10430
+ defaultTitle: "Tinjauan"
10431
+ },
10432
+ en: {
10433
+ defaultTitle: "Review"
10434
+ }
10039
10435
  };
10040
10436
  var useStyles30 = makeStyles({
10041
10437
  card: {
@@ -10089,10 +10485,10 @@ var CardReview = ({
10089
10485
  headerAction
10090
10486
  }) => {
10091
10487
  const styles = useStyles30();
10092
- ({ ...DEFAULT_LABELS28[language], ...labels });
10488
+ const mergedLabels = { ...DEFAULT_LABELS30[language], ...labels };
10093
10489
  return /* @__PURE__ */ jsxs(Card, { className: `${styles.card} ${className || ""}`, children: [
10094
10490
  /* @__PURE__ */ jsxs("div", { className: styles.headerContainer, children: [
10095
- /* @__PURE__ */ jsx(Subtitle1, { className: styles.headerTitle, children: title }),
10491
+ /* @__PURE__ */ jsx(Subtitle1, { className: styles.headerTitle, children: title || mergedLabels.defaultTitle }),
10096
10492
  /* @__PURE__ */ jsx("div", { className: styles.headerLine }),
10097
10493
  headerAction && /* @__PURE__ */ jsx("div", { children: headerAction })
10098
10494
  ] }),
@@ -10136,7 +10532,7 @@ var CardReview = ({
10136
10532
  };
10137
10533
 
10138
10534
  // src/components/CardReviewPassenger/CardReviewPassenger.constants.ts
10139
- var DEFAULT_LABELS29 = {
10535
+ var DEFAULT_LABELS31 = {
10140
10536
  id: {
10141
10537
  title: "Penumpang",
10142
10538
  idNumber: "Nomor ID"
@@ -10245,7 +10641,7 @@ var CardReviewPassenger = ({
10245
10641
  className
10246
10642
  }) => {
10247
10643
  const styles = useStyles31();
10248
- const mergedLabels = { ...DEFAULT_LABELS29[language], ...labels };
10644
+ const mergedLabels = { ...DEFAULT_LABELS31[language], ...labels };
10249
10645
  const displayTitle = title || mergedLabels.title;
10250
10646
  return /* @__PURE__ */ jsxs(Card, { className: `${styles.card} ${className || ""}`, children: [
10251
10647
  /* @__PURE__ */ jsxs("div", { className: styles.headerContainer, children: [
@@ -10288,7 +10684,7 @@ var CardReviewPassenger = ({
10288
10684
  };
10289
10685
 
10290
10686
  // src/components/CardPriceDetails/CardPriceDetails.constants.ts
10291
- var DEFAULT_LABELS30 = {
10687
+ var DEFAULT_LABELS32 = {
10292
10688
  id: {
10293
10689
  defaultTitle: "Rincian Harga",
10294
10690
  totalPayment: "Total Pembayaran",
@@ -10300,7 +10696,7 @@ var DEFAULT_LABELS30 = {
10300
10696
  "Tiket akan hangus (expired) apabila Anda belum Masuk Pelabuhan (Check-In) hingga melewati batas waktu jadwal Masuk Pelabuhan yang Anda pilih."
10301
10697
  ],
10302
10698
  agreementInfo: "Dengan menekan tombol \u201CLanjutkan Pembayaran\u201D, maka saya telah membaca dan menyetujui :",
10303
- agreementLinkFerizy: "Syarat & Ketentuan",
10699
+ agreementLinkFerizy: "Syarat & Ketentuan Ferizy",
10304
10700
  agreementCovidInfo: "Ketentuan persyaratan menyeberang sesuai dengan\xA0",
10305
10701
  agreementCovidLink: "Surat Edaran Satgas Covid-19 Nomor 23 Tahun 2022.",
10306
10702
  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 +10746,7 @@ var PriceDetailsTerms = ({
10350
10746
  const linkColor = tokens.colorBrandBackground;
10351
10747
  const bookingTerms = labels.bookingTerms;
10352
10748
  const agreementTerms = [
10353
- /* @__PURE__ */ jsxs(Fragment, { children: [
10354
- /* @__PURE__ */ jsx(Link, { href: "/terms-and-conditions", style: { color: linkColor }, children: labels.agreementLinkFerizy }),
10355
- "\xA0Ferizy."
10356
- ] }),
10749
+ /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(Link, { href: "/terms-and-conditions", style: { color: linkColor }, children: labels.agreementLinkFerizy }) }),
10357
10750
  /* @__PURE__ */ jsxs(Fragment, { children: [
10358
10751
  labels.agreementCovidInfo,
10359
10752
  /* @__PURE__ */ jsx(Link, { href: "/surat-edaran-satgas-covid-19", style: { color: linkColor }, children: labels.agreementCovidLink })
@@ -10447,7 +10840,7 @@ var CardPriceDetails = ({
10447
10840
  labels
10448
10841
  }) => {
10449
10842
  const styles = useStyles33();
10450
- const mergedLabels = { ...DEFAULT_LABELS30[language], ...labels };
10843
+ const mergedLabels = { ...DEFAULT_LABELS32[language], ...labels };
10451
10844
  const displayTitle = title || mergedLabels.defaultTitle;
10452
10845
  const getVariantClass = (variant) => {
10453
10846
  switch (variant) {
@@ -10467,10 +10860,10 @@ var CardPriceDetails = ({
10467
10860
  isTaxLike ? /* @__PURE__ */ jsx(Body1Strong, { className: variantClass, children: item.name }) : /* @__PURE__ */ jsx(Caption1, { className: mergeClasses(styles.label, variantClass), children: item.name }),
10468
10861
  isTaxLike ? /* @__PURE__ */ jsxs(Body1Strong, { className: mergeClasses(styles.value, variantClass), children: [
10469
10862
  mergedLabels.currencyPrefix,
10470
- item.price.toLocaleString("id-ID")
10863
+ item.price.toLocaleString(language === "id" ? "id-ID" : "en-US")
10471
10864
  ] }) : /* @__PURE__ */ jsxs(Body1, { className: mergeClasses(styles.value, variantClass), children: [
10472
10865
  item.isRedeem ? "-" : mergedLabels.currencyPrefix,
10473
- item.price.toLocaleString("id-ID")
10866
+ item.price.toLocaleString(language === "id" ? "id-ID" : "en-US")
10474
10867
  ] })
10475
10868
  ] }),
10476
10869
  item.description && /* @__PURE__ */ jsx(Caption1, { className: styles.description, children: item.description })
@@ -10496,7 +10889,7 @@ var CardPriceDetails = ({
10496
10889
  /* @__PURE__ */ jsx(Subtitle1, { className: styles.totalLabel, children: mergedLabels.totalPayment }),
10497
10890
  /* @__PURE__ */ jsxs(Subtitle1, { className: styles.totalValue, children: [
10498
10891
  mergedLabels.currencyPrefix,
10499
- total.toLocaleString("id-ID")
10892
+ total.toLocaleString(language === "id" ? "id-ID" : "en-US")
10500
10893
  ] })
10501
10894
  ] }),
10502
10895
  /* @__PURE__ */ jsx(Divider, {}),
@@ -10506,9 +10899,13 @@ var CardPriceDetails = ({
10506
10899
  };
10507
10900
 
10508
10901
  // src/components/CardPaymentMethodList/CardPaymentMethodList.constants.ts
10509
- var DEFAULT_LABELS31 = {
10510
- id: {},
10511
- en: {}
10902
+ var DEFAULT_LABELS33 = {
10903
+ id: {
10904
+ selectAriaLabel: "Pilih metode pembayaran"
10905
+ },
10906
+ en: {
10907
+ selectAriaLabel: "Select payment method"
10908
+ }
10512
10909
  };
10513
10910
  var useStyles34 = makeStyles({
10514
10911
  container: {
@@ -10571,7 +10968,7 @@ var CardPaymentMethodList = ({
10571
10968
  onSelect
10572
10969
  }) => {
10573
10970
  const styles = useStyles34();
10574
- ({ ...DEFAULT_LABELS31[language], ...labels });
10971
+ const mergedLabels = { ...DEFAULT_LABELS33[language], ...labels };
10575
10972
  return /* @__PURE__ */ jsx("div", { className: styles.card, children: /* @__PURE__ */ jsx("div", { className: `${styles.container}`, children: methods.map((category, index) => /* @__PURE__ */ jsxs("div", { children: [
10576
10973
  index > 0 && /* @__PURE__ */ jsx("div", { className: styles.dividerContainer, children: /* @__PURE__ */ jsx(Divider, {}) }),
10577
10974
  /* @__PURE__ */ jsx(Accordion, { multiple: true, collapsible: true, children: /* @__PURE__ */ jsxs(AccordionItem, { value: category.value, children: [
@@ -10607,7 +11004,8 @@ var CardPaymentMethodList = ({
10607
11004
  onChange: () => onSelect(option.value),
10608
11005
  value: option.value,
10609
11006
  name: "payment-method",
10610
- disabled: option.disabled
11007
+ disabled: option.disabled,
11008
+ "aria-label": `${mergedLabels.selectAriaLabel} ${option.label}`
10611
11009
  }
10612
11010
  )
10613
11011
  ]
@@ -10619,7 +11017,7 @@ var CardPaymentMethodList = ({
10619
11017
  };
10620
11018
 
10621
11019
  // src/components/CardPaymentGuide/CardPaymentGuide.constants.ts
10622
- var DEFAULT_LABELS32 = {
11020
+ var DEFAULT_LABELS34 = {
10623
11021
  id: {
10624
11022
  title: "Cara Pembayaran"
10625
11023
  },
@@ -10665,7 +11063,7 @@ var CardPaymentGuide = ({
10665
11063
  className
10666
11064
  }) => {
10667
11065
  const styles = useStyles35();
10668
- const mergedLabels = { ...DEFAULT_LABELS32[language], ...labels };
11066
+ const mergedLabels = { ...DEFAULT_LABELS34[language], ...labels };
10669
11067
  const displayTitle = title || mergedLabels.title;
10670
11068
  return /* @__PURE__ */ jsxs("div", { className: `${styles.container} ${className || ""}`, children: [
10671
11069
  title && /* @__PURE__ */ jsx("div", { className: styles.titleContainer, children: /* @__PURE__ */ jsx(Subtitle1, { className: styles.title, children: displayTitle }) }),
@@ -10684,20 +11082,22 @@ var CardPaymentGuide = ({
10684
11082
  };
10685
11083
 
10686
11084
  // src/components/CardPaymentInfo/CardPaymentInfo.constants.ts
10687
- var DEFAULT_LABELS33 = {
11085
+ var DEFAULT_LABELS35 = {
10688
11086
  id: {
10689
11087
  expiryPrefix: "Kode virtual akun berlaku sampai",
10690
11088
  copyCodeButton: "Salin Kode",
10691
11089
  totalPayment: "Total Pembayaran",
10692
11090
  checkStatusInfo: "Klik tombol dibawah ini jika sudah melakukan pembayaran",
10693
- checkStatusButton: "Cek Status Pembayaran"
11091
+ checkStatusButton: "Cek Status Pembayaran",
11092
+ currencySymbol: "Rp."
10694
11093
  },
10695
11094
  en: {
10696
11095
  expiryPrefix: "Virtual account code valid until",
10697
11096
  copyCodeButton: "Copy Code",
10698
11097
  totalPayment: "Total Payment",
10699
11098
  checkStatusInfo: "Click the button below if you have made the payment",
10700
- checkStatusButton: "Check Payment Status"
11099
+ checkStatusButton: "Check Payment Status",
11100
+ currencySymbol: "Rp."
10701
11101
  }
10702
11102
  };
10703
11103
  var useStyles36 = makeStyles({
@@ -10783,7 +11183,7 @@ var CardPaymentInfo = ({
10783
11183
  onCheckStatus
10784
11184
  }) => {
10785
11185
  const styles = useStyles36();
10786
- const mergedLabels = { ...DEFAULT_LABELS33[language], ...labels };
11186
+ const mergedLabels = { ...DEFAULT_LABELS35[language], ...labels };
10787
11187
  return /* @__PURE__ */ jsx("div", { className: styles.card, children: /* @__PURE__ */ jsxs("div", { className: styles.container, children: [
10788
11188
  /* @__PURE__ */ jsxs("div", { className: styles.headerRow, children: [
10789
11189
  /* @__PURE__ */ jsx(Subtitle1, { children: mergedLabels.expiryPrefix }),
@@ -10818,7 +11218,7 @@ var CardPaymentInfo = ({
10818
11218
  Input,
10819
11219
  {
10820
11220
  disabled: true,
10821
- value: `Rp. ${totalAmount.toLocaleString("id-ID")}`,
11221
+ value: `${mergedLabels.currencySymbol} ${totalAmount.toLocaleString(language === "id" ? "id-ID" : "en-US")}`,
10822
11222
  className: styles.input
10823
11223
  }
10824
11224
  )
@@ -10844,7 +11244,7 @@ var CardPaymentInfo = ({
10844
11244
  };
10845
11245
 
10846
11246
  // src/components/CardStatusOrder/CardStatusOrder.constants.ts
10847
- var DEFAULT_LABELS34 = {
11247
+ var DEFAULT_LABELS36 = {
10848
11248
  id: {
10849
11249
  detailTitle: "Detail Pemesanan",
10850
11250
  statusLabel: "Status",
@@ -10856,7 +11256,8 @@ var DEFAULT_LABELS34 = {
10856
11256
  viewTicketButton: "Lihat E-Tiket",
10857
11257
  defaultStatus: "Sudah Dibayar",
10858
11258
  defaultTitle: "Pembayaran berhasil",
10859
- defaultDescription: "Tiket Anda aktif dan siap digunakan."
11259
+ defaultDescription: "Tiket Anda aktif dan siap digunakan.",
11260
+ illustrationAlt: "Ilustrasi E-Tiket"
10860
11261
  },
10861
11262
  en: {
10862
11263
  detailTitle: "Booking Details",
@@ -10869,7 +11270,8 @@ var DEFAULT_LABELS34 = {
10869
11270
  viewTicketButton: "View E-Ticket",
10870
11271
  defaultStatus: "Paid",
10871
11272
  defaultTitle: "Payment successful",
10872
- defaultDescription: "Your ticket is active and ready to use."
11273
+ defaultDescription: "Your ticket is active and ready to use.",
11274
+ illustrationAlt: "E-Ticket Illustration"
10873
11275
  }
10874
11276
  };
10875
11277
  var useStyles37 = makeStyles({
@@ -10943,7 +11345,7 @@ var CardStatusOrder = ({
10943
11345
  className
10944
11346
  }) => {
10945
11347
  const styles = useStyles37();
10946
- const mergedLabels = { ...DEFAULT_LABELS34[language], ...labels };
11348
+ const mergedLabels = { ...DEFAULT_LABELS36[language], ...labels };
10947
11349
  const displayStatus = statusLabel || mergedLabels.defaultStatus;
10948
11350
  const displayTitle = title || mergedLabels.defaultTitle;
10949
11351
  const displayDescription = description || mergedLabels.defaultDescription;
@@ -10953,7 +11355,7 @@ var CardStatusOrder = ({
10953
11355
  "img",
10954
11356
  {
10955
11357
  src: illustrationUrl,
10956
- alt: "E-Ticket",
11358
+ alt: mergedLabels.illustrationAlt,
10957
11359
  width: 406,
10958
11360
  height: 266
10959
11361
  }
@@ -11040,7 +11442,7 @@ var CardStatusOrder = ({
11040
11442
  };
11041
11443
 
11042
11444
  // src/components/ModalPriceDetail/ModalPriceDetail.constants.ts
11043
- var DEFAULT_LABELS35 = {
11445
+ var DEFAULT_LABELS37 = {
11044
11446
  id: {
11045
11447
  title: "Rincian Harga",
11046
11448
  addonHeader: "Add On",
@@ -11050,7 +11452,8 @@ var DEFAULT_LABELS35 = {
11050
11452
  ppnNote: "*PPN 11% dikenakan untuk biaya layanan dan biaya admin",
11051
11453
  grandTotalLabel: "Total Pembayaran",
11052
11454
  currencyPrefix: "Rp.",
11053
- currencyCode: "IDR."
11455
+ currencyCode: "IDR.",
11456
+ closeAriaLabel: "Tutup"
11054
11457
  },
11055
11458
  en: {
11056
11459
  title: "Price Details",
@@ -11061,7 +11464,8 @@ var DEFAULT_LABELS35 = {
11061
11464
  ppnNote: "*VAT 11% is charged for service fees and admin fees",
11062
11465
  grandTotalLabel: "Total Payment",
11063
11466
  currencyPrefix: "Rp.",
11064
- currencyCode: "IDR."
11467
+ currencyCode: "IDR.",
11468
+ closeAriaLabel: "Close"
11065
11469
  }
11066
11470
  };
11067
11471
  var useStyles38 = makeStyles({
@@ -11192,7 +11596,7 @@ var ModalPriceDetail = ({
11192
11596
  ...props
11193
11597
  }) => {
11194
11598
  const styles = useStyles38();
11195
- const mergedLabels = { ...DEFAULT_LABELS35[language], ...labels };
11599
+ const mergedLabels = { ...DEFAULT_LABELS37[language], ...labels };
11196
11600
  return /* @__PURE__ */ jsx(
11197
11601
  Dialog,
11198
11602
  {
@@ -11208,7 +11612,7 @@ var ModalPriceDetail = ({
11208
11612
  Button,
11209
11613
  {
11210
11614
  appearance: "subtle",
11211
- "aria-label": "close",
11615
+ "aria-label": mergedLabels.closeAriaLabel,
11212
11616
  icon: /* @__PURE__ */ jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx(
11213
11617
  "path",
11214
11618
  {
@@ -11242,7 +11646,9 @@ var ModalPriceDetail = ({
11242
11646
  /* @__PURE__ */ jsxs("span", { className: styles.priceValue, children: [
11243
11647
  mergedLabels.currencyPrefix,
11244
11648
  " ",
11245
- item.price.toLocaleString("id-ID")
11649
+ item.price.toLocaleString(
11650
+ language === "id" ? "id-ID" : "en-US"
11651
+ )
11246
11652
  ] })
11247
11653
  ] }),
11248
11654
  item.list && item.list.map((subItem) => /* @__PURE__ */ jsxs(
@@ -11254,7 +11660,9 @@ var ModalPriceDetail = ({
11254
11660
  /* @__PURE__ */ jsxs("span", { style: { float: "right" }, children: [
11255
11661
  mergedLabels.currencyCode,
11256
11662
  " ",
11257
- item.price.toLocaleString("id-ID")
11663
+ item.price.toLocaleString(
11664
+ language === "id" ? "id-ID" : "en-US"
11665
+ )
11258
11666
  ] })
11259
11667
  ]
11260
11668
  },
@@ -11268,7 +11676,9 @@ var ModalPriceDetail = ({
11268
11676
  /* @__PURE__ */ jsxs("span", { className: styles.priceValue, children: [
11269
11677
  mergedLabels.currencyCode,
11270
11678
  " ",
11271
- item.price.toLocaleString("id-ID")
11679
+ item.price.toLocaleString(
11680
+ language === "id" ? "id-ID" : "en-US"
11681
+ )
11272
11682
  ] })
11273
11683
  ] }, item.key))
11274
11684
  ] }),
@@ -11277,14 +11687,18 @@ var ModalPriceDetail = ({
11277
11687
  /* @__PURE__ */ jsx("span", { className: styles.totalLabel, children: mergedLabels.subTotalLabel }),
11278
11688
  /* @__PURE__ */ jsxs("span", { className: styles.totalValue, children: [
11279
11689
  mergedLabels.currencyCode,
11280
- subTotal.toLocaleString("id-ID")
11690
+ subTotal.toLocaleString(
11691
+ language === "id" ? "id-ID" : "en-US"
11692
+ )
11281
11693
  ] })
11282
11694
  ] }),
11283
11695
  /* @__PURE__ */ jsxs("div", { className: styles.row, children: [
11284
11696
  /* @__PURE__ */ jsx("span", { className: styles.totalTagihanLabel, children: mergedLabels.totalTagihanLabel }),
11285
11697
  /* @__PURE__ */ jsxs("span", { className: styles.totalTagihanValue, children: [
11286
11698
  mergedLabels.currencyCode,
11287
- subTotal.toLocaleString("id-ID")
11699
+ subTotal.toLocaleString(
11700
+ language === "id" ? "id-ID" : "en-US"
11701
+ )
11288
11702
  ] })
11289
11703
  ] }),
11290
11704
  /* @__PURE__ */ jsxs("div", { style: { marginTop: tokens.spacingVerticalL }, children: [
@@ -11292,7 +11706,9 @@ var ModalPriceDetail = ({
11292
11706
  /* @__PURE__ */ jsx("span", { className: styles.ppnLabel, children: mergedLabels.ppnLabel }),
11293
11707
  /* @__PURE__ */ jsxs("span", { className: styles.ppnValue, children: [
11294
11708
  mergedLabels.currencyCode,
11295
- taxAmount.toLocaleString("id-ID")
11709
+ taxAmount.toLocaleString(
11710
+ language === "id" ? "id-ID" : "en-US"
11711
+ )
11296
11712
  ] })
11297
11713
  ] }),
11298
11714
  /* @__PURE__ */ jsx("div", { className: styles.ppnNote, children: mergedLabels.ppnNote })
@@ -11306,7 +11722,9 @@ var ModalPriceDetail = ({
11306
11722
  /* @__PURE__ */ jsx("span", { className: styles.grandTotalLabel, children: mergedLabels.grandTotalLabel }),
11307
11723
  /* @__PURE__ */ jsxs("span", { className: styles.grandTotalValue, children: [
11308
11724
  mergedLabels.currencyPrefix,
11309
- grandTotal.toLocaleString("id-ID")
11725
+ grandTotal.toLocaleString(
11726
+ language === "id" ? "id-ID" : "en-US"
11727
+ )
11310
11728
  ] })
11311
11729
  ]
11312
11730
  }
@@ -11318,7 +11736,7 @@ var ModalPriceDetail = ({
11318
11736
  };
11319
11737
 
11320
11738
  // src/components/CardProfileMenu/CardProfileMenu.constants.ts
11321
- var DEFAULT_LABELS36 = {
11739
+ var DEFAULT_LABELS38 = {
11322
11740
  id: {},
11323
11741
  en: {}
11324
11742
  };
@@ -11381,7 +11799,7 @@ var CardProfileMenu = ({
11381
11799
  onTabSelect
11382
11800
  }) => {
11383
11801
  const styles = useStyles39();
11384
- ({ ...DEFAULT_LABELS36[language], ...labels });
11802
+ ({ ...DEFAULT_LABELS38[language], ...labels });
11385
11803
  const handleTabSelect = (_, data) => {
11386
11804
  onTabSelect(data.value);
11387
11805
  };
@@ -11410,6 +11828,6 @@ var CardProfileMenu = ({
11410
11828
  ) });
11411
11829
  };
11412
11830
 
11413
- 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 };
11831
+ 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 };
11414
11832
  //# sourceMappingURL=index.mjs.map
11415
11833
  //# sourceMappingURL=index.mjs.map