@asdp/ferryui 0.1.22-dev.8653 → 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
@@ -353,11 +353,17 @@ var CarouselWithCustomNav = ({
353
353
  var DEFAULT_LABELS3 = {
354
354
  id: {
355
355
  defaultImageAlt: "Gambar Promo",
356
- defaultButtonText: "Lihat Detail"
356
+ defaultButtonText: "Lihat Detail",
357
+ promoAriaLabel: "Promo {index} dari {total}",
358
+ promoAriaLabelSingle: "Promo {index}",
359
+ loadingContent: "Memuat konten"
357
360
  },
358
361
  en: {
359
362
  defaultImageAlt: "Promo Image",
360
- defaultButtonText: "View Details"
363
+ defaultButtonText: "View Details",
364
+ promoAriaLabel: "Promo {index} of {total}",
365
+ promoAriaLabelSingle: "Promo {index}",
366
+ loadingContent: "Loading content"
361
367
  }
362
368
  };
363
369
  var useStyles3 = makeStyles({
@@ -464,7 +470,10 @@ var CardPromo = ({
464
470
  const mergedLabels = { ...DEFAULT_LABELS3[language], ...labels };
465
471
  const displayImageAlt = imageAlt || mergedLabels.defaultImageAlt;
466
472
  const displayButtonText = buttonText || mergedLabels.defaultButtonText;
467
- 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
+ );
468
477
  if (isLoading) {
469
478
  return /* @__PURE__ */ jsx(
470
479
  CarouselCard,
@@ -472,7 +481,7 @@ var CardPromo = ({
472
481
  autoSize: true,
473
482
  className: mergeClasses(classes.actionCard, className),
474
483
  style: { cursor: "default" },
475
- children: /* @__PURE__ */ jsxs(Skeleton, { "aria-label": "Loading content", children: [
484
+ children: /* @__PURE__ */ jsxs(Skeleton, { "aria-label": mergedLabels.loadingContent, children: [
476
485
  /* @__PURE__ */ jsx("div", { className: mergeClasses(classes.imageContainer, imageClassName), children: /* @__PURE__ */ jsx(
477
486
  SkeletonItem,
478
487
  {
@@ -800,7 +809,8 @@ var DEFAULT_LABELS5 = {
800
809
  facilitiesLabel: "Fasilitas",
801
810
  selectTicketButton: "Pilih Tiket",
802
811
  timezoneLabel: "WIB",
803
- currencySymbol: "IDR"
812
+ currencySymbol: "IDR",
813
+ logoAlt: "Logo ASDP"
804
814
  },
805
815
  en: {
806
816
  availableSeatsLabel: "Available",
@@ -811,7 +821,8 @@ var DEFAULT_LABELS5 = {
811
821
  facilitiesLabel: "Facilities",
812
822
  selectTicketButton: "Select Ticket",
813
823
  timezoneLabel: "WIB",
814
- currencySymbol: "IDR"
824
+ currencySymbol: "IDR",
825
+ logoAlt: "ASDP Logo"
815
826
  }
816
827
  };
817
828
  var useStyles5 = makeStyles({
@@ -1111,7 +1122,7 @@ var CardTicket = ({
1111
1122
  {
1112
1123
  src: "/assets/logo/asdp-default.svg",
1113
1124
  className: styles.asdpLogo,
1114
- alt: "asdp",
1125
+ alt: mergedLabels.logoAlt,
1115
1126
  height: 56,
1116
1127
  width: 82
1117
1128
  }
@@ -1554,7 +1565,8 @@ var DEFAULT_LABELS6 = {
1554
1565
  hotelLabel: "Hotel",
1555
1566
  hotelDescription: "Layanan pemesanan hotel",
1556
1567
  otherLabel: "Lainnya",
1557
- otherDescription: "Layanan lainnya"
1568
+ otherDescription: "Layanan lainnya",
1569
+ serviceAriaLabel: "Layanan"
1558
1570
  },
1559
1571
  en: {
1560
1572
  ferryLabel: "Ferry",
@@ -1566,7 +1578,8 @@ var DEFAULT_LABELS6 = {
1566
1578
  hotelLabel: "Hotel",
1567
1579
  hotelDescription: "Hotel Booking Service",
1568
1580
  otherLabel: "Other",
1569
- otherDescription: "Other Services"
1581
+ otherDescription: "Other Services",
1582
+ serviceAriaLabel: "Service"
1570
1583
  }
1571
1584
  };
1572
1585
  var ALIAS_MENU_ITEMS = {
@@ -1709,6 +1722,7 @@ var CardServiceMenu = ({
1709
1722
  {
1710
1723
  className: getMenuItemClass(item.id),
1711
1724
  onClick: () => onServiceClick?.(item.id),
1725
+ "aria-label": `${mergedLabels.serviceAriaLabel} ${label}`,
1712
1726
  children: [
1713
1727
  /* @__PURE__ */ jsx("img", { src: item.logo, alt: label, className: styles.logo }),
1714
1728
  /* @__PURE__ */ jsxs("div", { className: styles.textContent, children: [
@@ -1764,54 +1778,62 @@ var DatePickerInput = forwardRef(
1764
1778
  }
1765
1779
  onClick?.(e);
1766
1780
  };
1767
- return /* @__PURE__ */ jsxs(Popover, { open: isOpen, onOpenChange: (_, data) => setIsOpen(data.open), trapFocus: true, children: [
1768
- /* @__PURE__ */ jsx(PopoverTrigger, { disableButtonEnhancement: true, children: /* @__PURE__ */ jsx(
1769
- Input,
1770
- {
1771
- ...restProps,
1772
- value: formatDate(field.value),
1773
- readOnly: true,
1774
- placeholder: placeholder || "Pilih tanggal",
1775
- disabled,
1776
- appearance,
1777
- size,
1778
- contentBefore,
1779
- onClick: handleInputClick,
1780
- style: {
1781
- cursor: disabled ? "not-allowed" : "pointer",
1782
- ...style
1783
- },
1784
- contentAfter: /* @__PURE__ */ jsx(
1785
- "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,
1786
1790
  {
1787
- onClick: (e) => {
1788
- e.stopPropagation();
1789
- if (!disabled) {
1790
- setIsOpen(!isOpen);
1791
- }
1792
- },
1791
+ ...restProps,
1792
+ value: formatDate(field.value),
1793
+ readOnly: true,
1794
+ placeholder,
1795
+ disabled,
1796
+ appearance,
1797
+ size,
1798
+ contentBefore,
1799
+ onClick: handleInputClick,
1793
1800
  style: {
1794
1801
  cursor: disabled ? "not-allowed" : "pointer",
1795
- display: "flex",
1796
- alignItems: "center"
1802
+ ...style
1797
1803
  },
1798
- 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
+ )
1799
1821
  }
1800
- )
1801
- }
1802
- ) }),
1803
- /* @__PURE__ */ jsx(PopoverSurface, { tabIndex: -1, style: { maxWidth: "530px" }, children: /* @__PURE__ */ jsx(
1804
- Calendar,
1805
- {
1806
- value: dateValue,
1807
- onSelectDate,
1808
- showGoToToday: true,
1809
- highlightSelectedMonth: true,
1810
- showMonthPickerAsOverlay: false,
1811
- maxDate: max ? new Date(max) : void 0
1812
- }
1813
- ) })
1814
- ] });
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
+ );
1815
1837
  }
1816
1838
  );
1817
1839
  DatePickerInput.displayName = "DatePickerInput";
@@ -1825,7 +1847,14 @@ var DEFAULT_LABELS7 = {
1825
1847
  phonePlaceholder: "Nomor HP",
1826
1848
  identityPlaceholder: "Email, KTP, SIM, Passport, atau Nomor Telepon",
1827
1849
  identityPhonePlaceholder: "Nomor telepon",
1828
- 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"
1829
1858
  },
1830
1859
  en: {
1831
1860
  emailOrPhonePlaceholder: "Email or Phone Number",
@@ -1833,7 +1862,14 @@ var DEFAULT_LABELS7 = {
1833
1862
  phonePlaceholder: "Phone Number",
1834
1863
  identityPlaceholder: "Email, ID Card, Driving License, Passport, or Phone Number",
1835
1864
  identityPhonePlaceholder: "Phone Number",
1836
- 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"
1837
1873
  }
1838
1874
  };
1839
1875
  var PhoneInput = PhoneInputComponent.default || PhoneInputComponent;
@@ -2516,7 +2552,7 @@ var InputDynamic = ({
2516
2552
  const cleanedValue = cleanPhoneValue(value || "");
2517
2553
  field.onChange(cleanedValue);
2518
2554
  },
2519
- placeholder: placeholder || "Nomor telepon",
2555
+ placeholder: placeholder || mergedLabels.phoneDefaultPlaceholder,
2520
2556
  disabled,
2521
2557
  enableSearch: true,
2522
2558
  disableSearchIcon: true
@@ -2557,7 +2593,7 @@ var InputDynamic = ({
2557
2593
  DatePickerInput_default,
2558
2594
  {
2559
2595
  field,
2560
- placeholder,
2596
+ placeholder: placeholder || mergedLabels.datePickerPlaceholder,
2561
2597
  disabled,
2562
2598
  appearance: error ? "outline" : appearance,
2563
2599
  size,
@@ -2652,7 +2688,7 @@ var InputDynamic = ({
2652
2688
  {
2653
2689
  appearance: "transparent",
2654
2690
  icon: showPassword ? /* @__PURE__ */ jsx(Icon, { icon: "fluent:eye-off-24-filled" }) : /* @__PURE__ */ jsx(Icon, { icon: "fluent:eye-24-filled" }),
2655
- "aria-label": showPassword ? "Hide password" : "Show password",
2691
+ "aria-label": showPassword ? mergedLabels.hidePasswordAriaLabel : mergedLabels.showPasswordAriaLabel,
2656
2692
  onClick: () => setShowPassword(!showPassword),
2657
2693
  tabIndex: -1,
2658
2694
  type: "button"
@@ -2817,7 +2853,7 @@ var InputDynamic = ({
2817
2853
  const getValidationRules = () => {
2818
2854
  const rules = {};
2819
2855
  if (required) {
2820
- rules.required = validationRules?.required || "Field ini wajib diisi";
2856
+ rules.required = validationRules?.required || mergedLabels.requiredFieldError;
2821
2857
  }
2822
2858
  if (validationRules?.minLength) {
2823
2859
  rules.minLength = validationRules.minLength;
@@ -2840,13 +2876,13 @@ var InputDynamic = ({
2840
2876
  if (type === "email") {
2841
2877
  rules.pattern = {
2842
2878
  value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,
2843
- message: "Email tidak valid"
2879
+ message: mergedLabels.invalidEmailError
2844
2880
  };
2845
2881
  }
2846
2882
  if (type === "emailOrPhone") {
2847
2883
  rules.validate = (value) => {
2848
2884
  if (required && !value) {
2849
- return "Email atau nomor HP wajib diisi";
2885
+ return mergedLabels.emailOrPhoneRequiredError;
2850
2886
  }
2851
2887
  const stringValue = typeof value === "string" ? value : "";
2852
2888
  if (!stringValue) return true;
@@ -3202,7 +3238,13 @@ var DEFAULT_LABELS8 = {
3202
3238
  errorOriginRequired: "Pelabuhan asal wajib diisi",
3203
3239
  errorDestinationRequired: "Pelabuhan tujuan wajib diisi",
3204
3240
  errorDepartureDateRequired: "Tanggal Berangkat wajib diisi",
3205
- errorReturnDateRequired: "Tanggal Pulang 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"
3206
3248
  },
3207
3249
  en: {
3208
3250
  fromLabel: "From",
@@ -3224,7 +3266,13 @@ var DEFAULT_LABELS8 = {
3224
3266
  errorOriginRequired: "Origin port is required",
3225
3267
  errorDestinationRequired: "Destination port is required",
3226
3268
  errorDepartureDateRequired: "Departure date is required",
3227
- errorReturnDateRequired: "Return 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"
3228
3276
  }
3229
3277
  };
3230
3278
  var useStyles8 = makeStyles({
@@ -3529,6 +3577,7 @@ var CardTicketSearch = ({
3529
3577
  appearance: "secondary",
3530
3578
  size: "large",
3531
3579
  disabled: switchDisabled,
3580
+ "aria-label": labels.switchAriaLabel,
3532
3581
  icon: /* @__PURE__ */ jsx(
3533
3582
  "div",
3534
3583
  {
@@ -3537,7 +3586,7 @@ var CardTicketSearch = ({
3537
3586
  "img",
3538
3587
  {
3539
3588
  src: "/assets/images/icons/switch.svg",
3540
- alt: "Switch",
3589
+ alt: labels.switchAriaLabel,
3541
3590
  width: 26,
3542
3591
  height: 26
3543
3592
  }
@@ -3857,7 +3906,8 @@ var DEFAULT_LABELS9 = {
3857
3906
  serviceClass: "Kelas Layanan",
3858
3907
  typeOfService: "Jenis Layanan",
3859
3908
  totalPassengers: "Jumlah Penumpang",
3860
- changeSearchButton: "Ganti Pencarian"
3909
+ changeSearchButton: "Ganti Pencarian",
3910
+ swapAriaLabel: "Tukar asal dan tujuan"
3861
3911
  },
3862
3912
  en: {
3863
3913
  originHarbor: "Departure Port",
@@ -3866,7 +3916,8 @@ var DEFAULT_LABELS9 = {
3866
3916
  serviceClass: "Service Class",
3867
3917
  typeOfService: "Service Type",
3868
3918
  totalPassengers: "Total Passengers",
3869
- changeSearchButton: "Change Search"
3919
+ changeSearchButton: "Change Search",
3920
+ swapAriaLabel: "Swap origin and destination"
3870
3921
  }
3871
3922
  };
3872
3923
  var useStyles9 = makeStyles({
@@ -4046,7 +4097,8 @@ var CardTicketSearchSummary = ({
4046
4097
  disabled: true,
4047
4098
  appearance: "secondary",
4048
4099
  size: "medium",
4049
- 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
4050
4102
  }
4051
4103
  ) })
4052
4104
  }
@@ -4283,7 +4335,8 @@ var DEFAULT_LABELS10 = {
4283
4335
  clearAllButton: "Hapus Semua",
4284
4336
  allHarborsHeader: "Semua Pelabuhan",
4285
4337
  loadingData: "Memuat data...",
4286
- harborNotFound: "Pelabuhan tidak ditemukan"
4338
+ harborNotFound: "Pelabuhan tidak ditemukan",
4339
+ closeAriaLabel: "Tutup"
4287
4340
  },
4288
4341
  en: {
4289
4342
  title: "Select Harbor",
@@ -4292,7 +4345,8 @@ var DEFAULT_LABELS10 = {
4292
4345
  clearAllButton: "Clear All",
4293
4346
  allHarborsHeader: "All Harbors",
4294
4347
  loadingData: "Loading data...",
4295
- harborNotFound: "Harbor not found"
4348
+ harborNotFound: "Harbor not found",
4349
+ closeAriaLabel: "Close"
4296
4350
  }
4297
4351
  };
4298
4352
  var useStyles10 = makeStyles({
@@ -4454,7 +4508,7 @@ var ModalSearchHarbor = ({
4454
4508
  Button,
4455
4509
  {
4456
4510
  appearance: "subtle",
4457
- "aria-label": "close",
4511
+ "aria-label": mergedLabels.closeAriaLabel,
4458
4512
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-24-regular" }),
4459
4513
  onClick: handleClose,
4460
4514
  className: styles.closeButton
@@ -4579,12 +4633,14 @@ var DEFAULT_LABELS11 = {
4579
4633
  id: {
4580
4634
  title: "Pilih Tanggal",
4581
4635
  oneWay: "Sekali Jalan",
4582
- roundTrip: "Pulang Pergi"
4636
+ roundTrip: "Pulang Pergi",
4637
+ closeAriaLabel: "Tutup"
4583
4638
  },
4584
4639
  en: {
4585
4640
  title: "Select Date",
4586
4641
  oneWay: "One Way",
4587
- roundTrip: "Round Trip"
4642
+ roundTrip: "Round Trip",
4643
+ closeAriaLabel: "Close"
4588
4644
  }
4589
4645
  };
4590
4646
  var useStyles11 = makeStyles({
@@ -4872,7 +4928,7 @@ var ModalSelectDate = ({
4872
4928
  Button,
4873
4929
  {
4874
4930
  appearance: "subtle",
4875
- "aria-label": "close",
4931
+ "aria-label": mergedLabels.closeAriaLabel,
4876
4932
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-24-regular" }),
4877
4933
  onClick: handleClose,
4878
4934
  className: styles.closeButton
@@ -4937,14 +4993,16 @@ var DEFAULT_LABELS12 = {
4937
4993
  loading: "Memuat...",
4938
4994
  error: "Gagal memuat layanan",
4939
4995
  selectAll: "Pilih Semua",
4940
- saveButton: "Simpan"
4996
+ saveButton: "Simpan",
4997
+ closeAriaLabel: "Tutup"
4941
4998
  },
4942
4999
  en: {
4943
5000
  title: "Select Service Class",
4944
5001
  loading: "Loading...",
4945
5002
  error: "Error loading services",
4946
5003
  selectAll: "Select All",
4947
- saveButton: "Save"
5004
+ saveButton: "Save",
5005
+ closeAriaLabel: "Close"
4948
5006
  }
4949
5007
  };
4950
5008
  var useStyles12 = makeStyles({
@@ -5079,7 +5137,7 @@ var ModalService = ({
5079
5137
  Button,
5080
5138
  {
5081
5139
  appearance: "subtle",
5082
- "aria-label": "close",
5140
+ "aria-label": mergedLabels.closeAriaLabel,
5083
5141
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-24-regular" }),
5084
5142
  onClick: handleClose,
5085
5143
  className: styles.closeButton
@@ -5147,7 +5205,8 @@ var DEFAULT_LABELS13 = {
5147
5205
  saveButton: "Simpan",
5148
5206
  economy: "Ekonomi",
5149
5207
  business: "Bisnis",
5150
- executive: "Eksekutif"
5208
+ executive: "Eksekutif",
5209
+ closeAriaLabel: "Tutup"
5151
5210
  },
5152
5211
  en: {
5153
5212
  title: "Select Total Passengers",
@@ -5156,7 +5215,8 @@ var DEFAULT_LABELS13 = {
5156
5215
  saveButton: "Save",
5157
5216
  economy: "Economy",
5158
5217
  business: "Business",
5159
- executive: "Executive"
5218
+ executive: "Executive",
5219
+ closeAriaLabel: "Close"
5160
5220
  }
5161
5221
  };
5162
5222
  var DEFAULT_SERVICE_CLASSES = [
@@ -5397,7 +5457,7 @@ var ModalTotalPassengers = ({
5397
5457
  Button,
5398
5458
  {
5399
5459
  appearance: "subtle",
5400
- "aria-label": "close",
5460
+ "aria-label": mergedLabels.closeAriaLabel,
5401
5461
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-12-regular" }),
5402
5462
  onClick: onClose
5403
5463
  }
@@ -5516,13 +5576,15 @@ var DEFAULT_LABELS14 = {
5516
5576
  title: "Pilih Tipe Layanan",
5517
5577
  cancelButton: "Batal",
5518
5578
  saveButton: "Simpan",
5519
- vehiclesAlt: "kendaraan"
5579
+ vehiclesAlt: "kendaraan",
5580
+ closeAriaLabel: "Tutup"
5520
5581
  },
5521
5582
  en: {
5522
5583
  title: "Select Service Type",
5523
5584
  cancelButton: "Cancel",
5524
5585
  saveButton: "Save",
5525
- vehiclesAlt: "vehicles"
5586
+ vehiclesAlt: "vehicles",
5587
+ closeAriaLabel: "Close"
5526
5588
  }
5527
5589
  };
5528
5590
  var DEFAULT_VEHICLE_ICONS = {
@@ -5700,7 +5762,7 @@ var ModalTypeOfService = ({
5700
5762
  Button,
5701
5763
  {
5702
5764
  appearance: "subtle",
5703
- "aria-label": "close",
5765
+ "aria-label": mergedLabels.closeAriaLabel,
5704
5766
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-24-regular" }),
5705
5767
  onClick: onClose,
5706
5768
  className: styles.closeButton
@@ -5843,7 +5905,8 @@ var DEFAULT_LABELS15 = {
5843
5905
  highestPrice: "Harga Tertinggi",
5844
5906
  lowestPrice: "Harga Terendah",
5845
5907
  earliestDeparture: "Keberangkatan Paling Awal",
5846
- latestDeparture: "Keberangkatan Paling Akhir"
5908
+ latestDeparture: "Keberangkatan Paling Akhir",
5909
+ resetSortAriaLabel: "Hapus pengurutan"
5847
5910
  },
5848
5911
  en: {
5849
5912
  filterButtonText: "Filter",
@@ -5853,7 +5916,8 @@ var DEFAULT_LABELS15 = {
5853
5916
  highestPrice: "Highest Price",
5854
5917
  lowestPrice: "Lowest Price",
5855
5918
  earliestDeparture: "Earliest Departure",
5856
- latestDeparture: "Latest Departure"
5919
+ latestDeparture: "Latest Departure",
5920
+ resetSortAriaLabel: "Clear sort"
5857
5921
  }
5858
5922
  };
5859
5923
  var getSortOptions = (labels) => [
@@ -5998,6 +6062,7 @@ var SortMenu = ({
5998
6062
  type: "button",
5999
6063
  shape: "circular",
6000
6064
  className: styles.button,
6065
+ "aria-label": labels.resetSortAriaLabel,
6001
6066
  children: currentSortLabel
6002
6067
  }
6003
6068
  ),
@@ -6040,7 +6105,8 @@ var DEFAULT_LABELS16 = {
6040
6105
  resetButton: "Reset",
6041
6106
  applyButton: "Terapkan",
6042
6107
  hourUnit: "jam",
6043
- currencySymbol: "IDR"
6108
+ currencySymbol: "IDR",
6109
+ closeAriaLabel: "Tutup"
6044
6110
  },
6045
6111
  en: {
6046
6112
  title: "Filter by",
@@ -6057,7 +6123,8 @@ var DEFAULT_LABELS16 = {
6057
6123
  resetButton: "Reset",
6058
6124
  applyButton: "Apply",
6059
6125
  hourUnit: "hours",
6060
- currencySymbol: "IDR"
6126
+ currencySymbol: "IDR",
6127
+ closeAriaLabel: "Close"
6061
6128
  }
6062
6129
  };
6063
6130
  var DEFAULT_SERVICE_TYPES = [
@@ -6336,7 +6403,7 @@ var ModalFilterTicket = ({
6336
6403
  Button,
6337
6404
  {
6338
6405
  appearance: "subtle",
6339
- "aria-label": "close",
6406
+ "aria-label": mergedLabels.closeAriaLabel,
6340
6407
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-24-regular" }),
6341
6408
  className: styles.closeButton,
6342
6409
  onClick: () => onOpenChange(false)
@@ -6683,7 +6750,8 @@ var DEFAULT_LABELS18 = {
6683
6750
  typeOfServicePlaceholder: "Pilih Jenis penumpang",
6684
6751
  passengerLabel: "Penumpang",
6685
6752
  passengerPlaceholder: "Pilih Penumpang",
6686
- searchButton: "Cari Tiket"
6753
+ searchButton: "Cari Tiket",
6754
+ closeAriaLabel: "Tutup"
6687
6755
  },
6688
6756
  en: {
6689
6757
  title: "Search Other Schedules",
@@ -6706,7 +6774,8 @@ var DEFAULT_LABELS18 = {
6706
6774
  typeOfServicePlaceholder: "Select Type of Passenger",
6707
6775
  passengerLabel: "Passenger",
6708
6776
  passengerPlaceholder: "Select Passenger",
6709
- searchButton: "Search Ticket"
6777
+ searchButton: "Search Ticket",
6778
+ closeAriaLabel: "Close"
6710
6779
  }
6711
6780
  };
6712
6781
  var DEFAULT_FORM_VALUES = {
@@ -6876,7 +6945,7 @@ var ModalSearchTicket = ({
6876
6945
  Button,
6877
6946
  {
6878
6947
  appearance: "subtle",
6879
- "aria-label": "close",
6948
+ "aria-label": mergedLabels.closeAriaLabel,
6880
6949
  className: styles.closeButton,
6881
6950
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:dismiss-24-regular" }),
6882
6951
  onClick: onClose
@@ -7523,14 +7592,28 @@ var DEFAULT_LABELS21 = {
7523
7592
  sameAsOrderer: "Sama Dengan Pemesan",
7524
7593
  searchPlaceholder: "Cari Penumpang",
7525
7594
  addPassengerButton: "Tambah Penumpang",
7526
- 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
+ }
7527
7603
  },
7528
7604
  en: {
7529
7605
  title: "Passenger Details",
7530
7606
  sameAsOrderer: "Same as Orderer",
7531
7607
  searchPlaceholder: "Search Passenger",
7532
7608
  addPassengerButton: "Add Passenger",
7533
- 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
+ }
7534
7617
  }
7535
7618
  };
7536
7619
  var useStyles21 = makeStyles({
@@ -7657,20 +7740,31 @@ var ModalListPassenger = ({
7657
7740
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(Subtitle2, { children: [
7658
7741
  passenger.name,
7659
7742
  " (",
7660
- 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
+ })(),
7661
7755
  ")"
7662
7756
  ] }) }),
7663
7757
  /* @__PURE__ */ jsx(
7664
- Icon,
7758
+ Button,
7665
7759
  {
7666
- icon: "fluent:chevron-right-24-regular",
7760
+ appearance: "transparent",
7761
+ icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:chevron-right-24-regular" }),
7667
7762
  onClick: (e) => {
7668
7763
  e.preventDefault();
7669
7764
  e.stopPropagation();
7670
7765
  onEditPassenger(passenger);
7671
7766
  },
7672
- width: 20,
7673
- height: 20
7767
+ "aria-label": mergedLabels.editPassengerAriaLabel
7674
7768
  }
7675
7769
  )
7676
7770
  ]
@@ -8371,7 +8465,10 @@ var DEFAULT_LABELS25 = {
8371
8465
  unit: "Unit"
8372
8466
  },
8373
8467
  pricePlaceholder: "Rp. 0",
8374
- currencySymbol: "Rp."
8468
+ currencySymbol: "Rp.",
8469
+ deleteOwnerAriaLabel: "Hapus pemilik",
8470
+ decrementQuantityAriaLabel: "Kurangi jumlah",
8471
+ incrementQuantityAriaLabel: "Tambah jumlah"
8375
8472
  },
8376
8473
  en: {
8377
8474
  title: "Owner & Cargo Information",
@@ -8421,7 +8518,10 @@ var DEFAULT_LABELS25 = {
8421
8518
  unit: "Unit"
8422
8519
  },
8423
8520
  pricePlaceholder: "Rp. 0",
8424
- currencySymbol: "Rp."
8521
+ currencySymbol: "Rp.",
8522
+ deleteOwnerAriaLabel: "Delete owner",
8523
+ decrementQuantityAriaLabel: "Decrease quantity",
8524
+ incrementQuantityAriaLabel: "Increase quantity"
8425
8525
  }
8426
8526
  };
8427
8527
  var useStyles25 = makeStyles({
@@ -8538,6 +8638,7 @@ var CardVehicleOwnerForm = ({
8538
8638
  {
8539
8639
  appearance: "transparent",
8540
8640
  icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:delete-24-regular" }),
8641
+ "aria-label": mergedLabels.deleteOwnerAriaLabel,
8541
8642
  onClick: (e) => {
8542
8643
  e.stopPropagation();
8543
8644
  onDeleteOwner(owner.id);
@@ -9004,6 +9105,7 @@ var CardVehicleOwnerForm = ({
9004
9105
  }
9005
9106
  }
9006
9107
  ),
9108
+ "aria-label": mergedLabels.decrementQuantityAriaLabel,
9007
9109
  size: "small",
9008
9110
  onClick: () => {
9009
9111
  const currentVal = getValues(
@@ -9068,6 +9170,7 @@ var CardVehicleOwnerForm = ({
9068
9170
  }
9069
9171
  }
9070
9172
  ),
9173
+ "aria-label": mergedLabels.incrementQuantityAriaLabel,
9071
9174
  size: "small",
9072
9175
  onClick: () => {
9073
9176
  const currentVal = getValues(
@@ -10076,11 +10179,15 @@ var CardAddon = ({
10076
10179
  var DEFAULT_LABELS29 = {
10077
10180
  id: {
10078
10181
  addButton: "Tambah",
10079
- currencySymbol: "Rp"
10182
+ currencySymbol: "Rp",
10183
+ decrementAriaLabel: "Kurangi jumlah",
10184
+ incrementAriaLabel: "Tambah jumlah"
10080
10185
  },
10081
10186
  en: {
10082
10187
  addButton: "Add",
10083
- currencySymbol: "Rp"
10188
+ currencySymbol: "Rp",
10189
+ decrementAriaLabel: "Decrease quantity",
10190
+ incrementAriaLabel: "Increase quantity"
10084
10191
  }
10085
10192
  };
10086
10193
  var useStyles29 = makeStyles({
@@ -10284,16 +10391,18 @@ var CardMealCatalog = ({
10284
10391
  {
10285
10392
  size: "small",
10286
10393
  shape: "circular",
10394
+ "aria-label": mergedLabels.decrementAriaLabel,
10287
10395
  icon: /* @__PURE__ */ jsx(SubtractRegular, {}),
10288
10396
  onClick: () => onUpdateQuantity(item.id, -1)
10289
10397
  }
10290
10398
  ),
10291
- /* @__PURE__ */ jsx(Body1, { children: item.quantity }),
10399
+ /* @__PURE__ */ jsx(Body1, { "aria-live": "polite", children: item.quantity }),
10292
10400
  /* @__PURE__ */ jsx(
10293
10401
  Button,
10294
10402
  {
10295
10403
  size: "small",
10296
10404
  shape: "circular",
10405
+ "aria-label": mergedLabels.incrementAriaLabel,
10297
10406
  icon: /* @__PURE__ */ jsx(AddRegular, {}),
10298
10407
  onClick: () => onUpdateQuantity(item.id, 1)
10299
10408
  }
@@ -10317,8 +10426,12 @@ var CardMealCatalog = ({
10317
10426
 
10318
10427
  // src/components/CardReview/CardReview.constants.ts
10319
10428
  var DEFAULT_LABELS30 = {
10320
- id: {},
10321
- en: {}
10429
+ id: {
10430
+ defaultTitle: "Tinjauan"
10431
+ },
10432
+ en: {
10433
+ defaultTitle: "Review"
10434
+ }
10322
10435
  };
10323
10436
  var useStyles30 = makeStyles({
10324
10437
  card: {
@@ -10372,10 +10485,10 @@ var CardReview = ({
10372
10485
  headerAction
10373
10486
  }) => {
10374
10487
  const styles = useStyles30();
10375
- ({ ...DEFAULT_LABELS30[language], ...labels });
10488
+ const mergedLabels = { ...DEFAULT_LABELS30[language], ...labels };
10376
10489
  return /* @__PURE__ */ jsxs(Card, { className: `${styles.card} ${className || ""}`, children: [
10377
10490
  /* @__PURE__ */ jsxs("div", { className: styles.headerContainer, children: [
10378
- /* @__PURE__ */ jsx(Subtitle1, { className: styles.headerTitle, children: title }),
10491
+ /* @__PURE__ */ jsx(Subtitle1, { className: styles.headerTitle, children: title || mergedLabels.defaultTitle }),
10379
10492
  /* @__PURE__ */ jsx("div", { className: styles.headerLine }),
10380
10493
  headerAction && /* @__PURE__ */ jsx("div", { children: headerAction })
10381
10494
  ] }),
@@ -10787,8 +10900,12 @@ var CardPriceDetails = ({
10787
10900
 
10788
10901
  // src/components/CardPaymentMethodList/CardPaymentMethodList.constants.ts
10789
10902
  var DEFAULT_LABELS33 = {
10790
- id: {},
10791
- en: {}
10903
+ id: {
10904
+ selectAriaLabel: "Pilih metode pembayaran"
10905
+ },
10906
+ en: {
10907
+ selectAriaLabel: "Select payment method"
10908
+ }
10792
10909
  };
10793
10910
  var useStyles34 = makeStyles({
10794
10911
  container: {
@@ -10851,7 +10968,7 @@ var CardPaymentMethodList = ({
10851
10968
  onSelect
10852
10969
  }) => {
10853
10970
  const styles = useStyles34();
10854
- ({ ...DEFAULT_LABELS33[language], ...labels });
10971
+ const mergedLabels = { ...DEFAULT_LABELS33[language], ...labels };
10855
10972
  return /* @__PURE__ */ jsx("div", { className: styles.card, children: /* @__PURE__ */ jsx("div", { className: `${styles.container}`, children: methods.map((category, index) => /* @__PURE__ */ jsxs("div", { children: [
10856
10973
  index > 0 && /* @__PURE__ */ jsx("div", { className: styles.dividerContainer, children: /* @__PURE__ */ jsx(Divider, {}) }),
10857
10974
  /* @__PURE__ */ jsx(Accordion, { multiple: true, collapsible: true, children: /* @__PURE__ */ jsxs(AccordionItem, { value: category.value, children: [
@@ -10887,7 +11004,8 @@ var CardPaymentMethodList = ({
10887
11004
  onChange: () => onSelect(option.value),
10888
11005
  value: option.value,
10889
11006
  name: "payment-method",
10890
- disabled: option.disabled
11007
+ disabled: option.disabled,
11008
+ "aria-label": `${mergedLabels.selectAriaLabel} ${option.label}`
10891
11009
  }
10892
11010
  )
10893
11011
  ]
@@ -11138,7 +11256,8 @@ var DEFAULT_LABELS36 = {
11138
11256
  viewTicketButton: "Lihat E-Tiket",
11139
11257
  defaultStatus: "Sudah Dibayar",
11140
11258
  defaultTitle: "Pembayaran berhasil",
11141
- defaultDescription: "Tiket Anda aktif dan siap digunakan."
11259
+ defaultDescription: "Tiket Anda aktif dan siap digunakan.",
11260
+ illustrationAlt: "Ilustrasi E-Tiket"
11142
11261
  },
11143
11262
  en: {
11144
11263
  detailTitle: "Booking Details",
@@ -11151,7 +11270,8 @@ var DEFAULT_LABELS36 = {
11151
11270
  viewTicketButton: "View E-Ticket",
11152
11271
  defaultStatus: "Paid",
11153
11272
  defaultTitle: "Payment successful",
11154
- defaultDescription: "Your ticket is active and ready to use."
11273
+ defaultDescription: "Your ticket is active and ready to use.",
11274
+ illustrationAlt: "E-Ticket Illustration"
11155
11275
  }
11156
11276
  };
11157
11277
  var useStyles37 = makeStyles({
@@ -11235,7 +11355,7 @@ var CardStatusOrder = ({
11235
11355
  "img",
11236
11356
  {
11237
11357
  src: illustrationUrl,
11238
- alt: "E-Ticket",
11358
+ alt: mergedLabels.illustrationAlt,
11239
11359
  width: 406,
11240
11360
  height: 266
11241
11361
  }
@@ -11332,7 +11452,8 @@ var DEFAULT_LABELS37 = {
11332
11452
  ppnNote: "*PPN 11% dikenakan untuk biaya layanan dan biaya admin",
11333
11453
  grandTotalLabel: "Total Pembayaran",
11334
11454
  currencyPrefix: "Rp.",
11335
- currencyCode: "IDR."
11455
+ currencyCode: "IDR.",
11456
+ closeAriaLabel: "Tutup"
11336
11457
  },
11337
11458
  en: {
11338
11459
  title: "Price Details",
@@ -11343,7 +11464,8 @@ var DEFAULT_LABELS37 = {
11343
11464
  ppnNote: "*VAT 11% is charged for service fees and admin fees",
11344
11465
  grandTotalLabel: "Total Payment",
11345
11466
  currencyPrefix: "Rp.",
11346
- currencyCode: "IDR."
11467
+ currencyCode: "IDR.",
11468
+ closeAriaLabel: "Close"
11347
11469
  }
11348
11470
  };
11349
11471
  var useStyles38 = makeStyles({
@@ -11490,7 +11612,7 @@ var ModalPriceDetail = ({
11490
11612
  Button,
11491
11613
  {
11492
11614
  appearance: "subtle",
11493
- "aria-label": "close",
11615
+ "aria-label": mergedLabels.closeAriaLabel,
11494
11616
  icon: /* @__PURE__ */ jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx(
11495
11617
  "path",
11496
11618
  {