@asdp/ferryui 0.1.22-dev.9337 → 0.1.22-dev.9360

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
@@ -1,4 +1,4 @@
1
- import { makeStyles, tokens, createLightTheme, createDarkTheme, shorthands, Popover, PopoverTrigger, Input, PopoverSurface, Field, Caption1Strong, Caption2, Button, Body1, Body1Strong, Caption1, Dialog, DialogSurface, DialogBody, DialogTitle, DialogTrigger, DialogContent, Carousel, CarouselButton, CarouselViewport, mergeClasses, CarouselSlider, CarouselNav, CarouselNavButton, CarouselCard, Skeleton, SkeletonItem, Subtitle2, Card, Tooltip, Badge, Title2, Divider, Title3, Label, Text, Checkbox, MessageBar, MessageBarBody, Accordion, AccordionItem, AccordionHeader, AccordionPanel, RadioGroup, Radio, Menu, MenuTrigger, MenuPopover, MenuList, DialogActions, Caption2Strong, Subtitle1, Body1Stronger, Caption1Stronger, Display, Image, Title1, TabList, Tab, Body2, typographyStyles, Switch, Textarea, Link } from '@fluentui/react-components';
1
+ import { makeStyles, tokens, createLightTheme, createDarkTheme, shorthands, Popover, PopoverTrigger, Input, PopoverSurface, Field, Caption1Strong, Caption2, Button, Body1, Body1Strong, Caption1, Dialog, DialogSurface, DialogBody, DialogTitle, DialogTrigger, DialogContent, Carousel, CarouselButton, CarouselViewport, mergeClasses, CarouselSlider, CarouselNav, CarouselNavButton, CarouselCard, Skeleton, SkeletonItem, Subtitle2, Card, Tooltip, Badge, Title2, Divider, Title3, Label, Text, Subtitle1, Checkbox, MessageBar, MessageBarBody, Accordion, AccordionItem, AccordionHeader, AccordionPanel, RadioGroup, Radio, Menu, MenuTrigger, MenuPopover, MenuList, DialogActions, Caption2Strong, Body1Stronger, Caption1Stronger, Display, Image, Title1, TabList, Tab, Body2, typographyStyles, Switch, Textarea, Link } from '@fluentui/react-components';
2
2
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
3
3
  import React, { forwardRef, useState, useRef, useEffect, useCallback, useMemo, Fragment as Fragment$1 } from 'react';
4
4
  import { ArrowDownloadRegular, Dismiss24Regular, DismissRegular, SubtractRegular, AddRegular, DeleteRegular, InfoRegular, SearchRegular } from '@fluentui/react-icons';
@@ -4387,13 +4387,16 @@ var useStyles9 = makeStyles({
4387
4387
  display: "flex",
4388
4388
  justifyContent: "center",
4389
4389
  position: "absolute",
4390
- left: "18px",
4390
+ // left: "1px",
4391
4391
  bottom: "-16px",
4392
- width: "90%"
4392
+ width: "100%"
4393
4393
  },
4394
4394
  buttonSwitch: {
4395
4395
  background: tokens.colorNeutralBackground1,
4396
- boxShadow: `0 1px 2px 0 ${tokens.colorNeutralShadowKey}, 0 0 2px 0 ${tokens.colorNeutralShadowAmbient}`
4396
+ boxShadow: `0 1px 2px 0 ${tokens.colorNeutralShadowKey}, 0 0 2px 0 ${tokens.colorNeutralShadowAmbient}`,
4397
+ position: "absolute",
4398
+ right: "1rem",
4399
+ bottom: "-20px"
4397
4400
  },
4398
4401
  switchIcon: {
4399
4402
  display: "inline-flex",
@@ -4424,11 +4427,15 @@ var useStyles9 = makeStyles({
4424
4427
  }
4425
4428
  },
4426
4429
  formContainerCol: {
4430
+ paddingTop: "1rem !important",
4431
+ paddingBottom: "1rem !important",
4427
4432
  [`@media (max-width: ${extendedTokens.breakpointXl})`]: {
4428
4433
  paddingLeft: "20px !important",
4429
4434
  paddingRight: "20px !important",
4430
4435
  marginBottom: "1rem",
4431
- marginTop: "8rem"
4436
+ marginTop: "8rem",
4437
+ paddingTop: "0px !mportant",
4438
+ paddingBottom: "0px !mportant"
4432
4439
  }
4433
4440
  },
4434
4441
  serviceCol: {
@@ -4606,7 +4613,7 @@ var CardTicketSearch = ({
4606
4613
  className: styles.formContainerCol,
4607
4614
  children: /* @__PURE__ */ jsx("form", { onSubmit: handleSubmit(handleFormSubmit), children: /* @__PURE__ */ jsxs(Row, { style: { width: "100%" }, className: styles.formInnerRow, children: [
4608
4615
  /* @__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: [
4609
- /* @__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: [
4616
+ /* @__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: [
4610
4617
  /* @__PURE__ */ jsxs(
4611
4618
  Col,
4612
4619
  {
@@ -4617,6 +4624,9 @@ var CardTicketSearch = ({
4617
4624
  xl: 12,
4618
4625
  xxl: 12,
4619
4626
  xxxl: 12,
4627
+ style: {
4628
+ borderBottom: `1px solid ${tokens.colorNeutralStroke1}`
4629
+ },
4620
4630
  children: [
4621
4631
  /* @__PURE__ */ jsx(
4622
4632
  InputDynamic_default,
@@ -4643,37 +4653,33 @@ var CardTicketSearch = ({
4643
4653
  required: true
4644
4654
  }
4645
4655
  ),
4646
- /* @__PURE__ */ jsxs("div", { className: styles.deviderButton, children: [
4647
- /* @__PURE__ */ jsx(Divider, {}),
4648
- " ",
4649
- /* @__PURE__ */ jsx(
4650
- Button,
4651
- {
4652
- onClick: onSwitchClick,
4653
- className: styles.buttonSwitch,
4654
- shape: "circular",
4655
- appearance: "secondary",
4656
- size: "large",
4657
- disabled: switchDisabled,
4658
- "aria-label": labels.switchAriaLabel,
4659
- icon: /* @__PURE__ */ jsx(
4660
- "div",
4661
- {
4662
- className: `${styles.switchIcon} ${isRotating ? styles.switchIconRotate : ""}`,
4663
- children: /* @__PURE__ */ jsx(
4664
- "img",
4665
- {
4666
- src: "/assets/images/icons/switch.svg",
4667
- alt: labels.switchAriaLabel,
4668
- width: 26,
4669
- height: 26
4670
- }
4671
- )
4672
- }
4673
- )
4674
- }
4675
- )
4676
- ] })
4656
+ /* @__PURE__ */ jsx(
4657
+ Button,
4658
+ {
4659
+ onClick: onSwitchClick,
4660
+ className: styles.buttonSwitch,
4661
+ shape: "circular",
4662
+ appearance: "secondary",
4663
+ size: "large",
4664
+ disabled: switchDisabled,
4665
+ "aria-label": labels.switchAriaLabel,
4666
+ icon: /* @__PURE__ */ jsx(
4667
+ "div",
4668
+ {
4669
+ className: `${styles.switchIcon} ${isRotating ? styles.switchIconRotate : ""}`,
4670
+ children: /* @__PURE__ */ jsx(
4671
+ "img",
4672
+ {
4673
+ src: "/assets/images/icons/switch.svg",
4674
+ alt: labels.switchAriaLabel,
4675
+ width: 26,
4676
+ height: 26
4677
+ }
4678
+ )
4679
+ }
4680
+ )
4681
+ }
4682
+ )
4677
4683
  ]
4678
4684
  }
4679
4685
  ),
@@ -4848,6 +4854,40 @@ var CardTicketSearch = ({
4848
4854
  },
4849
4855
  className: styles.serviceCol,
4850
4856
  children: /* @__PURE__ */ jsxs(Row, { style: { height: "100%", gap: "16px" }, children: [
4857
+ /* @__PURE__ */ jsx(Col, { xs: 12, sm: 12, lg: 12, xl: 12, xxl: 12, xxxl: 12, children: /* @__PURE__ */ jsx("div", { className: styles.formField, children: /* @__PURE__ */ jsx(Row, { style: { height: "100%", gap: "16px" }, children: /* @__PURE__ */ jsx(
4858
+ Col,
4859
+ {
4860
+ xs: 12,
4861
+ sm: 12,
4862
+ md: 12,
4863
+ lg: 12,
4864
+ xl: 12,
4865
+ xxl: 12,
4866
+ xxxl: 12,
4867
+ children: /* @__PURE__ */ jsx(
4868
+ InputDynamic_default,
4869
+ {
4870
+ name: "serviceClass",
4871
+ label: labels.serviceClassLabel,
4872
+ control,
4873
+ type: "text",
4874
+ contentBefore: /* @__PURE__ */ jsx(
4875
+ Icon,
4876
+ {
4877
+ icon: "fluent:ribbon-star-24-filled",
4878
+ color: tokens.colorBrandBackground
4879
+ }
4880
+ ),
4881
+ appearance: "filled-lighter",
4882
+ size: "large",
4883
+ placeholder: labels.placeholderTypeClass,
4884
+ onClick: onServiceClassClick,
4885
+ required: true,
4886
+ disabled: serviceClassDisabled
4887
+ }
4888
+ )
4889
+ }
4890
+ ) }) }) }),
4851
4891
  /* @__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: [
4852
4892
  /* @__PURE__ */ jsx(
4853
4893
  Col,
@@ -4859,40 +4899,9 @@ var CardTicketSearch = ({
4859
4899
  xl: 12,
4860
4900
  xxl: 12,
4861
4901
  xxxl: 12,
4862
- children: /* @__PURE__ */ jsx(
4863
- InputDynamic_default,
4864
- {
4865
- name: "serviceClass",
4866
- label: labels.serviceClassLabel,
4867
- control,
4868
- type: "text",
4869
- contentBefore: /* @__PURE__ */ jsx(
4870
- Icon,
4871
- {
4872
- icon: "fluent:ribbon-star-24-filled",
4873
- color: tokens.colorBrandBackground
4874
- }
4875
- ),
4876
- appearance: "filled-lighter",
4877
- size: "large",
4878
- placeholder: labels.placeholderTypeClass,
4879
- onClick: onServiceClassClick,
4880
- required: true,
4881
- disabled: serviceClassDisabled
4882
- }
4883
- )
4884
- }
4885
- ),
4886
- /* @__PURE__ */ jsx(
4887
- Col,
4888
- {
4889
- xs: 12,
4890
- sm: 12,
4891
- md: 12,
4892
- lg: 12,
4893
- xl: 12,
4894
- xxl: 12,
4895
- xxxl: 12,
4902
+ style: {
4903
+ borderBottom: showPassengerField ? `1px solid ${tokens.colorNeutralStroke1}` : "none"
4904
+ },
4896
4905
  children: /* @__PURE__ */ jsx(
4897
4906
  InputDynamic_default,
4898
4907
  {
@@ -4918,7 +4927,7 @@ var CardTicketSearch = ({
4918
4927
  )
4919
4928
  }
4920
4929
  ),
4921
- showPassengerField && /* @__PURE__ */ jsx(
4930
+ showPassengerField && /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
4922
4931
  Col,
4923
4932
  {
4924
4933
  xs: 12,
@@ -4950,7 +4959,7 @@ var CardTicketSearch = ({
4950
4959
  }
4951
4960
  )
4952
4961
  }
4953
- )
4962
+ ) })
4954
4963
  ] }) }) }),
4955
4964
  /* @__PURE__ */ jsx(Col, { xs: 12, sm: 12, lg: 12, xl: 12, xxl: 12, xxxl: 12, children: /* @__PURE__ */ jsx(
4956
4965
  Button,
@@ -5397,7 +5406,9 @@ var DEFAULT_LABELS10 = {
5397
5406
  harborNotFound: "Pelabuhan tidak ditemukan",
5398
5407
  closeAriaLabel: "Tutup",
5399
5408
  popularHarborHeader: "Pelabuhan Populer",
5400
- favoriteHeader: "Favorit"
5409
+ favoriteHeader: "Favorit",
5410
+ emptyContent: "Pelabuhan",
5411
+ travelPlanHeader: "Rencana Perjalanan"
5401
5412
  },
5402
5413
  en: {
5403
5414
  title: "Select Harbor",
@@ -5409,10 +5420,113 @@ var DEFAULT_LABELS10 = {
5409
5420
  harborNotFound: "Harbor not found",
5410
5421
  closeAriaLabel: "Close",
5411
5422
  popularHarborHeader: "Popular Harbor",
5412
- favoriteHeader: "Favorite"
5423
+ favoriteHeader: "Favorite",
5424
+ emptyContent: "Harbor",
5425
+ travelPlanHeader: "Travel Plan"
5426
+ }
5427
+ };
5428
+
5429
+ // src/components/EmptyContent/EmptyContent.constants.ts
5430
+ var DEFAULT_LABELS11 = {
5431
+ id: {
5432
+ defaultImageAlt: "Tidak ada konten",
5433
+ defaultTitle: "Data {konten} belum bisa dimuat",
5434
+ defaultMessage: "Silahkan coba muat ulang halaman ini atau cek kembali beberapa saat lagi.",
5435
+ defaultButtonText: "Muat Ulang"
5436
+ },
5437
+ en: {
5438
+ defaultImageAlt: "No content available",
5439
+ defaultTitle: "Data {content} could not be loaded",
5440
+ defaultMessage: "Please try reloading this page or check back in a few moments.",
5441
+ defaultButtonText: "Reload"
5413
5442
  }
5414
5443
  };
5444
+ var getFormattedDefaultTitle = (template, content) => {
5445
+ if (content) {
5446
+ return template.replace(/\{(konten|content)\}/g, content);
5447
+ }
5448
+ return template.replace(/\s*\{(konten|content)\}\s*/g, " ").trim();
5449
+ };
5415
5450
  var useStyles11 = makeStyles({
5451
+ root: {
5452
+ display: "flex",
5453
+ flexDirection: "column",
5454
+ alignItems: "center",
5455
+ justifyContent: "center",
5456
+ gap: tokens.spacingVerticalL,
5457
+ textAlign: "center",
5458
+ paddingTop: tokens.spacingVerticalXXL,
5459
+ paddingBottom: tokens.spacingVerticalXXL,
5460
+ paddingLeft: tokens.spacingHorizontalXL,
5461
+ paddingRight: tokens.spacingHorizontalXL,
5462
+ width: "100%"
5463
+ },
5464
+ image: {
5465
+ maxWidth: "100%",
5466
+ height: "auto"
5467
+ },
5468
+ textContainer: {
5469
+ display: "flex",
5470
+ flexDirection: "column",
5471
+ alignItems: "center",
5472
+ gap: tokens.spacingVerticalS,
5473
+ maxWidth: "400px"
5474
+ },
5475
+ title: {
5476
+ fontWeight: "600"
5477
+ },
5478
+ message: {
5479
+ color: tokens.colorNeutralForeground3,
5480
+ textAlign: "center"
5481
+ }
5482
+ });
5483
+ var EmptyContent = ({
5484
+ title,
5485
+ content,
5486
+ message,
5487
+ imageSrc = "/assets/images/illustrations/no-content.svg",
5488
+ imageAlt,
5489
+ imageWidth = 240,
5490
+ imageHeight = 180,
5491
+ actionButton,
5492
+ language = "id",
5493
+ labels,
5494
+ className
5495
+ }) => {
5496
+ const styles = useStyles11();
5497
+ const mergedLabels = { ...DEFAULT_LABELS11[language], ...labels };
5498
+ const displayTitle = title ?? getFormattedDefaultTitle(mergedLabels.defaultTitle, content);
5499
+ const displayMessage = message ?? mergedLabels.defaultMessage;
5500
+ const displayImageAlt = imageAlt ?? mergedLabels.defaultImageAlt;
5501
+ return /* @__PURE__ */ jsxs("div", { className: mergeClasses(styles.root, className), children: [
5502
+ /* @__PURE__ */ jsx(
5503
+ "img",
5504
+ {
5505
+ src: imageSrc,
5506
+ alt: displayImageAlt,
5507
+ width: imageWidth,
5508
+ height: imageHeight,
5509
+ className: styles.image
5510
+ }
5511
+ ),
5512
+ /* @__PURE__ */ jsxs("div", { className: styles.textContainer, children: [
5513
+ /* @__PURE__ */ jsx(Subtitle1, { className: styles.title, children: displayTitle }),
5514
+ typeof displayMessage === "string" ? /* @__PURE__ */ jsx(Body1, { className: styles.message, children: displayMessage }) : displayMessage
5515
+ ] }),
5516
+ actionButton && /* @__PURE__ */ jsx(
5517
+ Button,
5518
+ {
5519
+ type: "button",
5520
+ appearance: actionButton.appearance || "primary",
5521
+ onClick: actionButton.onClick,
5522
+ shape: "circular",
5523
+ style: { width: "100%" },
5524
+ children: actionButton.text
5525
+ }
5526
+ )
5527
+ ] });
5528
+ };
5529
+ var useStyles12 = makeStyles({
5416
5530
  dialogTitle: {
5417
5531
  display: "flex",
5418
5532
  justifyContent: "space-between",
@@ -5550,7 +5664,7 @@ var HarborListItem = ({
5550
5664
  showDivider,
5551
5665
  containerClassName
5552
5666
  }) => {
5553
- const styles = useStyles11();
5667
+ const styles = useStyles12();
5554
5668
  return /* @__PURE__ */ jsxs(Fragment, { children: [
5555
5669
  /* @__PURE__ */ jsxs("div", { className: containerClassName, children: [
5556
5670
  /* @__PURE__ */ jsxs("div", { className: styles.listContent, onClick: () => onSelect(harbor), children: [
@@ -5573,6 +5687,57 @@ var HarborListItem = ({
5573
5687
  showDivider && /* @__PURE__ */ jsx(Divider, {})
5574
5688
  ] });
5575
5689
  };
5690
+ var HarborListSkeleton = ({
5691
+ count = 5,
5692
+ showFavoriteIcon = false
5693
+ }) => {
5694
+ const styles = useStyles12();
5695
+ return /* @__PURE__ */ jsx("div", { className: styles.harborList, children: Array.from({ length: count }).map((_, index) => /* @__PURE__ */ jsxs("div", { className: styles.harborItem, children: [
5696
+ /* @__PURE__ */ jsxs(
5697
+ Skeleton,
5698
+ {
5699
+ style: {
5700
+ display: "flex",
5701
+ alignItems: "center",
5702
+ gap: "0.5rem",
5703
+ width: "70%"
5704
+ },
5705
+ children: [
5706
+ /* @__PURE__ */ jsx(
5707
+ SkeletonItem,
5708
+ {
5709
+ style: {
5710
+ width: "24px",
5711
+ height: "24px",
5712
+ borderRadius: "4px"
5713
+ }
5714
+ }
5715
+ ),
5716
+ /* @__PURE__ */ jsx(
5717
+ SkeletonItem,
5718
+ {
5719
+ style: {
5720
+ width: "100%",
5721
+ height: "20px",
5722
+ borderRadius: "4px"
5723
+ }
5724
+ }
5725
+ )
5726
+ ]
5727
+ }
5728
+ ),
5729
+ showFavoriteIcon && /* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(
5730
+ SkeletonItem,
5731
+ {
5732
+ style: {
5733
+ width: "24px",
5734
+ height: "24px",
5735
+ borderRadius: "4px"
5736
+ }
5737
+ }
5738
+ ) })
5739
+ ] }, index)) });
5740
+ };
5576
5741
  var ModalSearchHarbor = ({
5577
5742
  language = "id",
5578
5743
  labels,
@@ -5583,7 +5748,8 @@ var ModalSearchHarbor = ({
5583
5748
  harbors,
5584
5749
  favoriteHarbors,
5585
5750
  lastSearchedHarbors,
5586
- isLoading = false,
5751
+ isLoadingPort = false,
5752
+ isLoadingTravelPlan = false,
5587
5753
  searchQuery,
5588
5754
  onSearchChange,
5589
5755
  onSelectHarbor,
@@ -5592,11 +5758,18 @@ var ModalSearchHarbor = ({
5592
5758
  onRemoveLastSearched,
5593
5759
  onClearLastSearched,
5594
5760
  onClearFavorite,
5761
+ reloadButtonPort,
5762
+ reloadButtonTravelPlan,
5763
+ reloadButtonAll,
5595
5764
  popularHarbors,
5596
- showButtonFavorite = true
5765
+ showButtonFavorite = true,
5766
+ emptyImageSrc = "",
5767
+ isErrorTravelPlan = false,
5768
+ isErrorPort = false
5597
5769
  }) => {
5598
- const styles = useStyles11();
5770
+ const styles = useStyles12();
5599
5771
  const mergedLabels = { ...DEFAULT_LABELS10[language], ...labels };
5772
+ const isError = isErrorTravelPlan && isErrorPort;
5600
5773
  const handleSelect = (harbor) => {
5601
5774
  onAddLastSearched(harbor);
5602
5775
  onSelectHarbor(harbor);
@@ -5632,7 +5805,15 @@ var ModalSearchHarbor = ({
5632
5805
  children: title || mergedLabels.title
5633
5806
  }
5634
5807
  ),
5635
- /* @__PURE__ */ jsxs(DialogContent, { className: styles.content, children: [
5808
+ /* @__PURE__ */ jsx(DialogContent, { className: styles.content, children: isError ? /* @__PURE__ */ jsx(
5809
+ EmptyContent,
5810
+ {
5811
+ content: mergedLabels.emptyContent,
5812
+ language,
5813
+ actionButton: reloadButtonAll,
5814
+ imageSrc: emptyImageSrc
5815
+ }
5816
+ ) : /* @__PURE__ */ jsxs(Fragment, { children: [
5636
5817
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
5637
5818
  Input,
5638
5819
  {
@@ -5651,177 +5832,154 @@ var ModalSearchHarbor = ({
5651
5832
  }
5652
5833
  ) }),
5653
5834
  /* @__PURE__ */ jsxs("div", { className: styles.resultList, children: [
5654
- favoriteHarbors.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
5655
- /* @__PURE__ */ jsxs("div", { className: styles.headerRow, children: [
5656
- /* @__PURE__ */ jsx(Body1Strong, { children: mergedLabels.favoriteHeader }),
5657
- /* @__PURE__ */ jsx(
5658
- Caption1,
5835
+ isErrorTravelPlan ? /* @__PURE__ */ jsx(Fragment, {}) : isLoadingTravelPlan ? /* @__PURE__ */ jsx(HarborListSkeleton, { count: 3, showFavoriteIcon: false }) : /* @__PURE__ */ jsxs(Fragment, { children: [
5836
+ favoriteHarbors.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
5837
+ /* @__PURE__ */ jsxs("div", { className: styles.headerRow, children: [
5838
+ /* @__PURE__ */ jsx(Body1Strong, { children: mergedLabels.favoriteHeader }),
5839
+ /* @__PURE__ */ jsx(
5840
+ Caption1,
5841
+ {
5842
+ className: mergeClasses(
5843
+ styles.dangerText,
5844
+ styles.cursorPointer
5845
+ ),
5846
+ onClick: onClearFavorite,
5847
+ children: mergedLabels.clearAllButton
5848
+ }
5849
+ )
5850
+ ] }),
5851
+ favoriteHarbors.length > 0 && /* @__PURE__ */ jsx("div", { className: styles.buttonContainer, children: favoriteHarbors.map((harbor) => /* @__PURE__ */ jsxs(
5852
+ Button,
5659
5853
  {
5660
- className: mergeClasses(
5661
- styles.dangerText,
5662
- styles.cursorPointer
5854
+ onClick: () => handleSelect(harbor),
5855
+ size: "medium",
5856
+ appearance: "subtle",
5857
+ iconPosition: "before",
5858
+ className: styles.circularButton,
5859
+ icon: /* @__PURE__ */ jsx(
5860
+ Icon,
5861
+ {
5862
+ icon: "fluent:vehicle-ship-20-regular",
5863
+ fontSize: 20,
5864
+ color: tokens.colorBrandBackground
5865
+ }
5663
5866
  ),
5664
- onClick: onClearFavorite,
5665
- children: mergedLabels.clearAllButton
5666
- }
5667
- )
5867
+ children: [
5868
+ /* @__PURE__ */ jsxs("div", { className: styles.buttonContent, children: [
5869
+ /* @__PURE__ */ jsx(Body1, { children: harbor.portName }),
5870
+ /* @__PURE__ */ jsx(Caption1, { children: harbor.branchName })
5871
+ ] }),
5872
+ /* @__PURE__ */ jsx(
5873
+ Icon,
5874
+ {
5875
+ icon: "fluent:star-24-filled",
5876
+ fontSize: 20,
5877
+ color: tokens.colorBrandBackground,
5878
+ style: { marginLeft: 5 }
5879
+ }
5880
+ )
5881
+ ]
5882
+ },
5883
+ harbor.portId
5884
+ )) })
5668
5885
  ] }),
5669
- favoriteHarbors.length > 0 && /* @__PURE__ */ jsx("div", { className: styles.buttonContainer, children: favoriteHarbors.map((harbor) => /* @__PURE__ */ jsxs(
5670
- Button,
5671
- {
5672
- onClick: () => handleSelect(harbor),
5673
- size: "medium",
5674
- appearance: "subtle",
5675
- iconPosition: "before",
5676
- className: styles.circularButton,
5677
- icon: /* @__PURE__ */ jsx(
5678
- Icon,
5886
+ lastSearchedHarbors.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
5887
+ /* @__PURE__ */ jsxs("div", { className: styles.headerRow, children: [
5888
+ /* @__PURE__ */ jsx(Body1Strong, { children: mergedLabels.lastSearchedHeader }),
5889
+ /* @__PURE__ */ jsx(
5890
+ Caption1,
5679
5891
  {
5680
- icon: "fluent:vehicle-ship-20-regular",
5681
- fontSize: 20,
5682
- color: tokens.colorBrandBackground
5892
+ className: mergeClasses(
5893
+ styles.dangerText,
5894
+ styles.cursorPointer
5895
+ ),
5896
+ onClick: onClearLastSearched,
5897
+ children: mergedLabels.clearAllButton
5683
5898
  }
5684
- ),
5685
- children: [
5686
- /* @__PURE__ */ jsxs("div", { className: styles.buttonContent, children: [
5687
- /* @__PURE__ */ jsx(Body1, { children: harbor.portName }),
5688
- /* @__PURE__ */ jsx(Caption1, { children: harbor.branchName })
5689
- ] }),
5690
- /* @__PURE__ */ jsx(
5899
+ )
5900
+ ] }),
5901
+ /* @__PURE__ */ jsx("div", { children: lastSearchedHarbors.map((harbor) => /* @__PURE__ */ jsx(
5902
+ HarborListItem,
5903
+ {
5904
+ harbor,
5905
+ onSelect: handleSelect,
5906
+ containerClassName: styles.historyItem,
5907
+ trailingIcon: /* @__PURE__ */ jsx(
5691
5908
  Icon,
5692
5909
  {
5693
- icon: "fluent:star-24-filled",
5910
+ onClick: () => onRemoveLastSearched(harbor),
5911
+ icon: "fluent:dismiss-24-regular",
5694
5912
  fontSize: 20,
5695
- color: tokens.colorBrandBackground,
5696
- style: { marginLeft: 5 }
5913
+ className: styles.cursorPointer
5697
5914
  }
5698
- )
5699
- ]
5700
- },
5701
- harbor.portId
5702
- )) })
5703
- ] }),
5704
- lastSearchedHarbors.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
5705
- /* @__PURE__ */ jsxs("div", { className: styles.headerRow, children: [
5706
- /* @__PURE__ */ jsx(Body1Strong, { children: mergedLabels.lastSearchedHeader }),
5707
- /* @__PURE__ */ jsx(
5708
- Caption1,
5709
- {
5710
- className: mergeClasses(
5711
- styles.dangerText,
5712
- styles.cursorPointer
5713
5915
  ),
5714
- onClick: onClearLastSearched,
5715
- children: mergedLabels.clearAllButton
5716
- }
5717
- )
5916
+ showDivider: true
5917
+ },
5918
+ harbor.portId
5919
+ )) })
5718
5920
  ] }),
5719
- /* @__PURE__ */ jsx("div", { children: lastSearchedHarbors.map((harbor) => /* @__PURE__ */ jsx(
5921
+ popularHarbors.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
5922
+ /* @__PURE__ */ jsx("div", { className: styles.headerRow, children: /* @__PURE__ */ jsx(Body1Strong, { children: mergedLabels.popularHarborHeader }) }),
5923
+ /* @__PURE__ */ jsx("div", { children: popularHarbors.map((harbor) => /* @__PURE__ */ jsx(
5924
+ HarborListItem,
5925
+ {
5926
+ harbor,
5927
+ onSelect: handleSelect,
5928
+ containerClassName: styles.historyItem,
5929
+ showDivider: true
5930
+ },
5931
+ harbor.portId
5932
+ )) })
5933
+ ] })
5934
+ ] }),
5935
+ isErrorPort ? /* @__PURE__ */ jsxs(Fragment, { children: [
5936
+ /* @__PURE__ */ jsx(Body1Strong, { className: styles.sectionTitle, children: mergedLabels.allHarborsHeader }),
5937
+ /* @__PURE__ */ jsx(
5938
+ EmptyContent,
5939
+ {
5940
+ content: mergedLabels.emptyContent,
5941
+ language,
5942
+ actionButton: reloadButtonPort,
5943
+ imageSrc: emptyImageSrc
5944
+ }
5945
+ )
5946
+ ] }) : isLoadingPort ? /* @__PURE__ */ jsx(
5947
+ HarborListSkeleton,
5948
+ {
5949
+ count: 5,
5950
+ showFavoriteIcon: showButtonFavorite
5951
+ }
5952
+ ) : /* @__PURE__ */ jsxs(Fragment, { children: [
5953
+ /* @__PURE__ */ jsx(Body1Strong, { className: styles.sectionTitle, children: mergedLabels.allHarborsHeader }),
5954
+ /* @__PURE__ */ jsx("div", { className: styles.harborList, children: harbors.length > 0 ? harbors.map((harbor, index) => /* @__PURE__ */ jsx(
5720
5955
  HarborListItem,
5721
5956
  {
5722
5957
  harbor,
5723
5958
  onSelect: handleSelect,
5724
- containerClassName: styles.historyItem,
5725
- trailingIcon: /* @__PURE__ */ jsx(
5959
+ containerClassName: styles.harborItem,
5960
+ trailingIcon: showButtonFavorite && /* @__PURE__ */ jsx(
5726
5961
  Icon,
5727
5962
  {
5728
- onClick: () => onRemoveLastSearched(harbor),
5729
- icon: "fluent:dismiss-24-regular",
5730
- fontSize: 20,
5731
- className: styles.cursorPointer
5963
+ icon: harbor.isFavorite ? "fluent:star-24-filled" : "fluent:star-24-regular",
5964
+ color: tokens.colorBrandBackground,
5965
+ className: styles.cursorPointer,
5966
+ onClick: () => onToggleFavorite(harbor)
5732
5967
  }
5733
5968
  ),
5734
- showDivider: true
5735
- },
5736
- harbor.portId
5737
- )) })
5738
- ] }),
5739
- popularHarbors.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
5740
- /* @__PURE__ */ jsx("div", { className: styles.headerRow, children: /* @__PURE__ */ jsx(Body1Strong, { children: mergedLabels.popularHarborHeader }) }),
5741
- /* @__PURE__ */ jsx("div", { children: popularHarbors.map((harbor) => /* @__PURE__ */ jsx(
5742
- HarborListItem,
5743
- {
5744
- harbor,
5745
- onSelect: handleSelect,
5746
- containerClassName: styles.historyItem,
5747
- showDivider: true
5969
+ showDivider: index !== harbors.length - 1
5748
5970
  },
5749
- harbor.portId
5750
- )) })
5751
- ] }),
5752
- /* @__PURE__ */ jsx(Body1Strong, { className: styles.sectionTitle, children: mergedLabels.allHarborsHeader }),
5753
- /* @__PURE__ */ jsx("div", { className: styles.harborList, children: isLoading ? /* @__PURE__ */ jsx(Fragment, { children: [1, 2, 3, 4, 5].map((item) => /* @__PURE__ */ jsxs("div", { className: styles.harborItem, children: [
5754
- /* @__PURE__ */ jsxs(
5755
- Skeleton,
5756
- {
5757
- style: {
5758
- display: "flex",
5759
- alignItems: "center",
5760
- gap: "0.5rem",
5761
- width: "70%"
5762
- },
5763
- children: [
5764
- /* @__PURE__ */ jsx(
5765
- SkeletonItem,
5766
- {
5767
- style: {
5768
- width: "24px",
5769
- height: "24px",
5770
- borderRadius: "4px"
5771
- }
5772
- }
5773
- ),
5774
- /* @__PURE__ */ jsx(
5775
- SkeletonItem,
5776
- {
5777
- style: {
5778
- width: "100%",
5779
- height: "20px",
5780
- borderRadius: "4px"
5781
- }
5782
- }
5783
- )
5784
- ]
5785
- }
5786
- ),
5787
- showButtonFavorite && /* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(
5788
- SkeletonItem,
5789
- {
5790
- style: {
5791
- width: "24px",
5792
- height: "24px",
5793
- borderRadius: "4px"
5794
- }
5795
- }
5796
- ) })
5797
- ] }, item)) }) : harbors.length > 0 ? harbors.map((harbor, index) => /* @__PURE__ */ jsx(
5798
- HarborListItem,
5799
- {
5800
- harbor,
5801
- onSelect: handleSelect,
5802
- containerClassName: styles.harborItem,
5803
- trailingIcon: showButtonFavorite && /* @__PURE__ */ jsx(
5804
- Icon,
5805
- {
5806
- icon: harbor.isFavorite ? "fluent:star-24-filled" : "fluent:star-24-regular",
5807
- color: tokens.colorBrandBackground,
5808
- className: styles.cursorPointer,
5809
- onClick: () => onToggleFavorite(harbor)
5810
- }
5811
- ),
5812
- showDivider: index !== harbors.length - 1
5813
- },
5814
- harbor.portId || index
5815
- )) : /* @__PURE__ */ jsx("div", { className: styles.emptyState, children: mergedLabels.harborNotFound }) })
5971
+ harbor.portId || index
5972
+ )) : /* @__PURE__ */ jsx("div", { className: styles.emptyState, children: mergedLabels.harborNotFound }) })
5973
+ ] })
5816
5974
  ] })
5817
- ] })
5975
+ ] }) })
5818
5976
  ] }) })
5819
5977
  }
5820
5978
  );
5821
5979
  };
5822
5980
 
5823
5981
  // src/components/ModalSelectDate/ModalSelectDate.constants.ts
5824
- var DEFAULT_LABELS11 = {
5982
+ var DEFAULT_LABELS12 = {
5825
5983
  id: {
5826
5984
  title: "Pilih Tanggal",
5827
5985
  oneWay: "Sekali Jalan",
@@ -5835,7 +5993,7 @@ var DEFAULT_LABELS11 = {
5835
5993
  closeAriaLabel: "Close"
5836
5994
  }
5837
5995
  };
5838
- var useStyles12 = makeStyles({
5996
+ var useStyles13 = makeStyles({
5839
5997
  dialogSurface: {
5840
5998
  maxWidth: "600px",
5841
5999
  width: "100%"
@@ -5955,8 +6113,8 @@ var ModalSelectDate = ({
5955
6113
  dateFormat = "DD MMMM YYYY",
5956
6114
  showRoundtrip = true
5957
6115
  }) => {
5958
- const styles = useStyles12();
5959
- const mergedLabels = { ...DEFAULT_LABELS11[language], ...labels };
6116
+ const styles = useStyles13();
6117
+ const mergedLabels = { ...DEFAULT_LABELS12[language], ...labels };
5960
6118
  useEffect(() => {
5961
6119
  moment.locale(language === "id" ? "id" : "en");
5962
6120
  }, [language]);
@@ -6179,14 +6337,15 @@ var ModalSelectDate = ({
6179
6337
  };
6180
6338
 
6181
6339
  // src/components/ModalService/ModalService.constants.ts
6182
- var DEFAULT_LABELS12 = {
6340
+ var DEFAULT_LABELS13 = {
6183
6341
  id: {
6184
6342
  title: "Pilih Kelas Layanan",
6185
6343
  loading: "Memuat...",
6186
6344
  error: "Gagal memuat layanan",
6187
6345
  selectAll: "Pilih Semua",
6188
6346
  saveButton: "Simpan",
6189
- closeAriaLabel: "Tutup"
6347
+ closeAriaLabel: "Tutup",
6348
+ emptyContent: "Kelas Layanan"
6190
6349
  },
6191
6350
  en: {
6192
6351
  title: "Select Service Class",
@@ -6194,10 +6353,11 @@ var DEFAULT_LABELS12 = {
6194
6353
  error: "Error loading services",
6195
6354
  selectAll: "Select All",
6196
6355
  saveButton: "Save",
6197
- closeAriaLabel: "Close"
6356
+ closeAriaLabel: "Close",
6357
+ emptyContent: "Service Class"
6198
6358
  }
6199
6359
  };
6200
- var useStyles13 = makeStyles({
6360
+ var useStyles14 = makeStyles({
6201
6361
  dialogSurface: {
6202
6362
  maxWidth: "600px",
6203
6363
  width: "100%"
@@ -6270,6 +6430,66 @@ var useStyles13 = makeStyles({
6270
6430
  borderRadius: tokens.borderRadiusCircular
6271
6431
  }
6272
6432
  });
6433
+ var ServiceListSkeleton = ({
6434
+ count = 3
6435
+ }) => {
6436
+ const styles = useStyles14();
6437
+ return /* @__PURE__ */ jsx("div", { className: styles.serviceList, children: Array.from({ length: count }).map((_, index) => /* @__PURE__ */ jsxs("div", { className: styles.serviceItem, children: [
6438
+ /* @__PURE__ */ jsx("div", { className: styles.serviceContent, children: /* @__PURE__ */ jsxs(
6439
+ Skeleton,
6440
+ {
6441
+ style: {
6442
+ display: "flex",
6443
+ flexDirection: "column",
6444
+ gap: "4px",
6445
+ width: "80%"
6446
+ },
6447
+ children: [
6448
+ /* @__PURE__ */ jsx(
6449
+ SkeletonItem,
6450
+ {
6451
+ style: {
6452
+ width: "120px",
6453
+ height: "20px",
6454
+ borderRadius: "4px"
6455
+ }
6456
+ }
6457
+ ),
6458
+ /* @__PURE__ */ jsx(
6459
+ SkeletonItem,
6460
+ {
6461
+ style: {
6462
+ width: "80px",
6463
+ height: "16px",
6464
+ borderRadius: "4px"
6465
+ }
6466
+ }
6467
+ ),
6468
+ /* @__PURE__ */ jsx(
6469
+ SkeletonItem,
6470
+ {
6471
+ style: {
6472
+ width: "100%",
6473
+ height: "16px",
6474
+ borderRadius: "4px"
6475
+ }
6476
+ }
6477
+ )
6478
+ ]
6479
+ }
6480
+ ) }),
6481
+ /* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(
6482
+ SkeletonItem,
6483
+ {
6484
+ style: {
6485
+ width: "20px",
6486
+ height: "20px",
6487
+ borderRadius: "4px"
6488
+ }
6489
+ }
6490
+ ) })
6491
+ ] }, index)) });
6492
+ };
6273
6493
  var ModalService = ({
6274
6494
  language = "id",
6275
6495
  labels,
@@ -6280,10 +6500,12 @@ var ModalService = ({
6280
6500
  selectedServiceIds,
6281
6501
  onSave,
6282
6502
  isLoading = false,
6283
- isError = false
6503
+ isError = false,
6504
+ reloadButton,
6505
+ emptyImageSrc = ""
6284
6506
  }) => {
6285
- const styles = useStyles13();
6286
- const mergedLabels = { ...DEFAULT_LABELS12[language], ...labels };
6507
+ const styles = useStyles14();
6508
+ const mergedLabels = { ...DEFAULT_LABELS13[language], ...labels };
6287
6509
  const displayTitle = title || mergedLabels.title;
6288
6510
  const [selectedServices, setSelectedServices] = useState(selectedServiceIds);
6289
6511
  useEffect(() => {
@@ -6338,7 +6560,15 @@ var ModalService = ({
6338
6560
  children: displayTitle
6339
6561
  }
6340
6562
  ),
6341
- /* @__PURE__ */ jsx(DialogContent, { className: styles.content, children: isLoading ? /* @__PURE__ */ jsx(Body1, { children: mergedLabels.loading }) : isError ? /* @__PURE__ */ jsx(Body1, { children: mergedLabels.error }) : /* @__PURE__ */ jsxs(Fragment, { children: [
6563
+ /* @__PURE__ */ jsx(DialogContent, { className: styles.content, children: isLoading ? /* @__PURE__ */ jsx(ServiceListSkeleton, {}) : isError ? /* @__PURE__ */ jsx(
6564
+ EmptyContent,
6565
+ {
6566
+ content: mergedLabels.emptyContent,
6567
+ language,
6568
+ actionButton: reloadButton,
6569
+ imageSrc: emptyImageSrc
6570
+ }
6571
+ ) : /* @__PURE__ */ jsxs(Fragment, { children: [
6342
6572
  /* @__PURE__ */ jsxs("div", { className: styles.serviceList, children: [
6343
6573
  /* @__PURE__ */ jsxs("div", { className: styles.headerRow, children: [
6344
6574
  /* @__PURE__ */ jsx(Body1, { children: mergedLabels.selectAll }),
@@ -6388,23 +6618,25 @@ var ModalService = ({
6388
6618
  };
6389
6619
 
6390
6620
  // src/components/ModalTotalPassengers/ModalTotalPassengers.constants.ts
6391
- var DEFAULT_LABELS13 = {
6621
+ var DEFAULT_LABELS14 = {
6392
6622
  id: {
6393
6623
  title: "Pilih Jumlah Penumpang",
6394
6624
  infoMessage: "Anda dapat menambahkan hingga {maxPassengers} penumpang pada golongan kendaraan ini.",
6395
6625
  loading: "Memuat...",
6396
6626
  saveButton: "Simpan",
6397
- closeAriaLabel: "Tutup"
6627
+ closeAriaLabel: "Tutup",
6628
+ emptyContent: "Kelas Penumpang"
6398
6629
  },
6399
6630
  en: {
6400
6631
  title: "Select Total Passengers",
6401
6632
  infoMessage: "You can add up to {maxPassengers} passengers in this vehicle category.",
6402
6633
  loading: "Loading...",
6403
6634
  saveButton: "Save",
6404
- closeAriaLabel: "Close"
6635
+ closeAriaLabel: "Close",
6636
+ emptyContent: "Passengers Class"
6405
6637
  }
6406
6638
  };
6407
- var useStyles14 = makeStyles({
6639
+ var useStyles15 = makeStyles({
6408
6640
  dialogSurface: {
6409
6641
  maxWidth: "600px",
6410
6642
  width: "100%"
@@ -6471,6 +6703,62 @@ var useStyles14 = makeStyles({
6471
6703
  margin: 0
6472
6704
  }
6473
6705
  });
6706
+ var TotalPassengersListSkeleton = ({
6707
+ count = 3
6708
+ }) => {
6709
+ const styles = useStyles15();
6710
+ return /* @__PURE__ */ jsx(
6711
+ "div",
6712
+ {
6713
+ style: {
6714
+ display: "flex",
6715
+ flexDirection: "column",
6716
+ marginTop: tokens.spacingHorizontalM
6717
+ },
6718
+ children: Array.from({ length: count }).map((_, index) => /* @__PURE__ */ jsx(
6719
+ "div",
6720
+ {
6721
+ className: styles.accordionItem,
6722
+ style: { padding: "8px 0" },
6723
+ children: /* @__PURE__ */ jsxs("div", { className: styles.accordionHeader, style: { padding: "0 12px" }, children: [
6724
+ /* @__PURE__ */ jsx(
6725
+ "div",
6726
+ {
6727
+ style: { display: "flex", alignItems: "center", width: "100%" },
6728
+ children: /* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(
6729
+ SkeletonItem,
6730
+ {
6731
+ style: {
6732
+ width: "120px",
6733
+ height: "18px"
6734
+ }
6735
+ }
6736
+ ) })
6737
+ }
6738
+ ),
6739
+ /* @__PURE__ */ jsx("div", { style: { height: "4px" } }),
6740
+ /* @__PURE__ */ jsx(
6741
+ "div",
6742
+ {
6743
+ style: { display: "flex", alignItems: "center", width: "100%" },
6744
+ children: /* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(
6745
+ SkeletonItem,
6746
+ {
6747
+ style: {
6748
+ width: "48px",
6749
+ height: "14px"
6750
+ }
6751
+ }
6752
+ ) })
6753
+ }
6754
+ )
6755
+ ] })
6756
+ },
6757
+ index
6758
+ ))
6759
+ }
6760
+ );
6761
+ };
6474
6762
  var ModalTotalPassengers = ({
6475
6763
  language = "id",
6476
6764
  labels,
@@ -6481,11 +6769,14 @@ var ModalTotalPassengers = ({
6481
6769
  selectedPassengers,
6482
6770
  onSave,
6483
6771
  isLoading = false,
6772
+ isError = false,
6773
+ reloadButton,
6774
+ emptyImageSrc,
6484
6775
  maxPassengers = 10,
6485
6776
  infoMessage
6486
6777
  }) => {
6487
- const styles = useStyles14();
6488
- const mergedLabels = { ...DEFAULT_LABELS13[language], ...labels };
6778
+ const styles = useStyles15();
6779
+ const mergedLabels = { ...DEFAULT_LABELS14[language], ...labels };
6489
6780
  const [passengers, setPassengers] = useState([]);
6490
6781
  const [openItems, setOpenItems] = useState([]);
6491
6782
  const defaultInfoMessage = mergedLabels.infoMessage.replace(
@@ -6542,11 +6833,16 @@ var ModalTotalPassengers = ({
6542
6833
  (p) => p.passengerAgeCode === passengerAgeCode
6543
6834
  );
6544
6835
  if (!passenger) return 0;
6545
- const cls = passenger.classes.find(
6546
- (c) => c.classCode === classCode
6547
- );
6836
+ const cls = passenger.classes.find((c) => c.classCode === classCode);
6548
6837
  return cls?.count ?? 0;
6549
6838
  };
6839
+ const getTotalCountForType = (passengerAgeCode) => {
6840
+ const passenger = passengers.find(
6841
+ (p) => p.passengerAgeCode === passengerAgeCode
6842
+ );
6843
+ if (!passenger) return 0;
6844
+ return passenger.classes.reduce((sum, cls) => sum + (cls.count ?? 0), 0);
6845
+ };
6550
6846
  const getTotalForType = (passengerAgeCode) => {
6551
6847
  const passenger = passengers.find(
6552
6848
  (p) => p.passengerAgeCode === passengerAgeCode
@@ -6601,10 +6897,7 @@ var ModalTotalPassengers = ({
6601
6897
  classes: passenger.classes.map((cls) => {
6602
6898
  if (cls.classCode === classCode && (cls.count ?? 0) > 0) {
6603
6899
  const newCount = (cls.count ?? 0) - 1;
6604
- const newPassengers = (cls.passengers || []).slice(
6605
- 0,
6606
- newCount
6607
- );
6900
+ const newPassengers = (cls.passengers || []).slice(0, newCount);
6608
6901
  return {
6609
6902
  ...cls,
6610
6903
  count: newCount,
@@ -6642,131 +6935,134 @@ var ModalTotalPassengers = ({
6642
6935
  children: title || mergedLabels.title
6643
6936
  }
6644
6937
  ),
6645
- /* @__PURE__ */ jsxs(DialogContent, { children: [
6938
+ /* @__PURE__ */ jsx(DialogContent, { children: isLoading ? /* @__PURE__ */ jsx(TotalPassengersListSkeleton, {}) : isError ? /* @__PURE__ */ jsx(
6939
+ EmptyContent,
6940
+ {
6941
+ content: mergedLabels.emptyContent,
6942
+ language,
6943
+ actionButton: reloadButton,
6944
+ imageSrc: emptyImageSrc
6945
+ }
6946
+ ) : /* @__PURE__ */ jsxs(Fragment, { children: [
6646
6947
  /* @__PURE__ */ jsx(MessageBar, { shape: "rounded", children: /* @__PURE__ */ jsx(MessageBarBody, { children: infoMessage || defaultInfoMessage }) }),
6647
- isLoading ? /* @__PURE__ */ jsx(Body1, { children: mergedLabels.loading }) : /* @__PURE__ */ jsxs(Fragment, { children: [
6648
- /* @__PURE__ */ jsx(
6649
- Accordion,
6650
- {
6651
- collapsible: true,
6652
- multiple: true,
6653
- openItems,
6654
- onToggle: (_, data) => setOpenItems(data.openItems),
6655
- className: styles.passengerSection,
6656
- children: passengerTypes.map((passengerType) => {
6657
- const classes = passengerType.classes || [];
6658
- return /* @__PURE__ */ jsxs(
6659
- AccordionItem,
6660
- {
6661
- value: String(passengerType.id),
6662
- className: styles.accordionItem,
6663
- children: [
6664
- /* @__PURE__ */ jsxs(
6665
- AccordionHeader,
6666
- {
6667
- className: styles.accordionHeader,
6668
- expandIconPosition: "end",
6669
- children: [
6670
- passengerType.passengerAgeName,
6671
- " (",
6672
- getTotalForType(passengerType.passengerAgeCode),
6673
- ")"
6674
- ]
6675
- }
6676
- ),
6677
- /* @__PURE__ */ jsx(AccordionPanel, { className: styles.accordionPanel, children: /* @__PURE__ */ jsx("div", { className: styles.nestedSection, children: classes.map((cls) => /* @__PURE__ */ jsxs(
6678
- "div",
6679
- {
6680
- className: styles.nestedRow,
6681
- children: [
6682
- /* @__PURE__ */ jsx(Body1, { children: (cls?.className || "")?.toUpperCase() }),
6683
- /* @__PURE__ */ jsxs("div", { className: styles.passengerCount, children: [
6684
- /* @__PURE__ */ jsx(
6685
- Button,
6686
- {
6687
- appearance: "outline",
6688
- className: styles.counterButton,
6689
- size: "small",
6690
- icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:subtract-12-regular" }),
6691
- onClick: (e) => {
6692
- e.stopPropagation();
6693
- handleDecrement(
6694
- passengerType.passengerAgeCode,
6695
- cls.classCode
6696
- );
6697
- },
6698
- disabled: getServiceCount(
6699
- passengerType.passengerAgeCode,
6700
- cls.classCode
6701
- ) === 0
6702
- }
6703
- ),
6704
- /* @__PURE__ */ jsx(Body1, { className: styles.countText, children: getServiceCount(
6948
+ /* @__PURE__ */ jsx(
6949
+ Accordion,
6950
+ {
6951
+ collapsible: true,
6952
+ multiple: true,
6953
+ openItems,
6954
+ onToggle: (_, data) => setOpenItems(data.openItems),
6955
+ className: styles.passengerSection,
6956
+ children: passengerTypes.map((passengerType) => {
6957
+ const classes = passengerType.classes || [];
6958
+ return /* @__PURE__ */ jsxs(
6959
+ AccordionItem,
6960
+ {
6961
+ value: String(passengerType.id),
6962
+ className: styles.accordionItem,
6963
+ children: [
6964
+ /* @__PURE__ */ jsxs(
6965
+ AccordionHeader,
6966
+ {
6967
+ className: styles.accordionHeader,
6968
+ expandIconPosition: "end",
6969
+ children: [
6970
+ passengerType.passengerAgeName,
6971
+ " (",
6972
+ getTotalForType(passengerType.passengerAgeCode),
6973
+ ")"
6974
+ ]
6975
+ }
6976
+ ),
6977
+ /* @__PURE__ */ jsx(AccordionPanel, { className: styles.accordionPanel, children: /* @__PURE__ */ jsx("div", { className: styles.nestedSection, children: classes.map((cls) => /* @__PURE__ */ jsxs("div", { className: styles.nestedRow, children: [
6978
+ /* @__PURE__ */ jsx(Body1, { children: (cls?.className || "")?.toUpperCase() }),
6979
+ /* @__PURE__ */ jsxs("div", { className: styles.passengerCount, children: [
6980
+ /* @__PURE__ */ jsx(
6981
+ Button,
6982
+ {
6983
+ appearance: "outline",
6984
+ className: styles.counterButton,
6985
+ size: "small",
6986
+ icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:subtract-12-regular" }),
6987
+ onClick: (e) => {
6988
+ e.stopPropagation();
6989
+ handleDecrement(
6705
6990
  passengerType.passengerAgeCode,
6706
6991
  cls.classCode
6707
- ) }),
6708
- /* @__PURE__ */ jsx(
6709
- Button,
6710
- {
6711
- appearance: "outline",
6712
- className: styles.counterButton,
6713
- size: "small",
6714
- icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:add-12-regular" }),
6715
- disabled: getServiceCount(
6716
- passengerType.passengerAgeCode,
6717
- cls.classCode
6718
- ) >= cls.maxCapacity || totalPassengerCount >= maxPassengers,
6719
- onClick: (e) => {
6720
- e.stopPropagation();
6721
- handleIncrement(
6722
- passengerType.passengerAgeCode,
6723
- cls.classCode
6724
- );
6725
- }
6726
- }
6727
- )
6728
- ] })
6729
- ]
6730
- },
6731
- cls.id
6732
- )) }) })
6733
- ]
6734
- },
6735
- passengerType.id
6736
- );
6737
- })
6738
- }
6739
- ),
6740
- /* @__PURE__ */ jsx(
6741
- Button,
6742
- {
6743
- appearance: "primary",
6744
- size: "medium",
6745
- className: styles.submitButton,
6746
- onClick: handleSave,
6747
- children: mergedLabels.saveButton
6748
- }
6749
- )
6750
- ] })
6751
- ] })
6992
+ );
6993
+ },
6994
+ disabled: getServiceCount(
6995
+ passengerType.passengerAgeCode,
6996
+ cls.classCode
6997
+ ) === 0 || getTotalCountForType(
6998
+ passengerType.passengerAgeCode
6999
+ ) <= passengerType.minCapacity
7000
+ }
7001
+ ),
7002
+ /* @__PURE__ */ jsx(Body1, { className: styles.countText, children: getServiceCount(
7003
+ passengerType.passengerAgeCode,
7004
+ cls.classCode
7005
+ ) }),
7006
+ /* @__PURE__ */ jsx(
7007
+ Button,
7008
+ {
7009
+ appearance: "outline",
7010
+ className: styles.counterButton,
7011
+ size: "small",
7012
+ icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:add-12-regular" }),
7013
+ disabled: getServiceCount(
7014
+ passengerType.passengerAgeCode,
7015
+ cls.classCode
7016
+ ) >= cls.maxCapacity || totalPassengerCount >= maxPassengers,
7017
+ onClick: (e) => {
7018
+ e.stopPropagation();
7019
+ handleIncrement(
7020
+ passengerType.passengerAgeCode,
7021
+ cls.classCode
7022
+ );
7023
+ }
7024
+ }
7025
+ )
7026
+ ] })
7027
+ ] }, cls.id)) }) })
7028
+ ]
7029
+ },
7030
+ passengerType.id
7031
+ );
7032
+ })
7033
+ }
7034
+ ),
7035
+ /* @__PURE__ */ jsx(
7036
+ Button,
7037
+ {
7038
+ appearance: "primary",
7039
+ size: "medium",
7040
+ className: styles.submitButton,
7041
+ onClick: handleSave,
7042
+ children: mergedLabels.saveButton
7043
+ }
7044
+ )
7045
+ ] }) })
6752
7046
  ] }) }) });
6753
7047
  };
6754
7048
 
6755
7049
  // src/components/ModalTypeOfService/ModalTypeOfService.constants.ts
6756
- var DEFAULT_LABELS14 = {
7050
+ var DEFAULT_LABELS15 = {
6757
7051
  id: {
6758
- title: "Pilih Tipe Layanan",
7052
+ title: "Pilih Jenis Layanan",
6759
7053
  cancelButton: "Batal",
6760
7054
  saveButton: "Simpan",
6761
7055
  vehiclesAlt: "kendaraan",
6762
- closeAriaLabel: "Tutup"
7056
+ closeAriaLabel: "Tutup",
7057
+ emptyContent: "Jenis Layanan"
6763
7058
  },
6764
7059
  en: {
6765
7060
  title: "Select Service Type",
6766
7061
  cancelButton: "Cancel",
6767
7062
  saveButton: "Save",
6768
7063
  vehiclesAlt: "vehicles",
6769
- closeAriaLabel: "Close"
7064
+ closeAriaLabel: "Close",
7065
+ emptyContent: "Service Type"
6770
7066
  }
6771
7067
  };
6772
7068
  var DEFAULT_VEHICLE_ICONS = {
@@ -6781,49 +7077,132 @@ var DEFAULT_VEHICLE_ICONS = {
6781
7077
  bigTruck: "/assets/images/icons/big-truck.webp",
6782
7078
  looseLoad: "/assets/images/icons/loose-load.webp"
6783
7079
  };
6784
- var useStyles15 = makeStyles({
6785
- dialogSurface: {
6786
- maxWidth: "600px",
6787
- width: "100%"
6788
- },
6789
- closeButton: {
6790
- minWidth: "32px",
6791
- minHeight: "32px"
6792
- },
6793
- passengerSection: {
6794
- marginTop: tokens.spacingHorizontalM,
6795
- display: "flex",
6796
- flexDirection: "column"
6797
- },
6798
- accordionItem: {
6799
- borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,
6800
- width: "100%"
6801
- },
6802
- accordionHeader: {
6803
- fontSize: tokens.fontSizeBase300,
6804
- fontWeight: tokens.fontWeightBold,
6805
- display: "flex",
6806
- alignItems: "center",
6807
- justifyContent: "space-between",
6808
- width: "100%"
6809
- },
6810
- accordionTitleAndInfo: {
6811
- display: "flex",
6812
- flexDirection: "column",
6813
- gap: "2px",
6814
- marginLeft: tokens.spacingHorizontalM,
6815
- flex: 1
6816
- },
6817
- accordionBody: {
6818
- marginLeft: "100px"
6819
- },
6820
- footer: {
6821
- marginTop: tokens.spacingVerticalL,
6822
- display: "flex",
6823
- gap: tokens.spacingHorizontalM,
6824
- justifyContent: "flex-end"
6825
- }
6826
- });
7080
+ var useStyles16 = makeStyles({
7081
+ dialogSurface: {
7082
+ maxWidth: "600px",
7083
+ width: "100%"
7084
+ },
7085
+ closeButton: {
7086
+ minWidth: "32px",
7087
+ minHeight: "32px"
7088
+ },
7089
+ passengerSection: {
7090
+ marginTop: tokens.spacingHorizontalM,
7091
+ display: "flex",
7092
+ flexDirection: "column"
7093
+ },
7094
+ accordionItem: {
7095
+ borderBottom: `1px solid ${tokens.colorNeutralStroke2}`,
7096
+ width: "100%"
7097
+ },
7098
+ accordionHeader: {
7099
+ fontSize: tokens.fontSizeBase300,
7100
+ fontWeight: tokens.fontWeightBold,
7101
+ display: "flex",
7102
+ alignItems: "center",
7103
+ justifyContent: "space-between",
7104
+ width: "100%"
7105
+ },
7106
+ accordionTitleAndInfo: {
7107
+ display: "flex",
7108
+ flexDirection: "column",
7109
+ gap: "2px",
7110
+ marginLeft: tokens.spacingHorizontalM,
7111
+ flex: 1
7112
+ },
7113
+ accordionBody: {
7114
+ marginLeft: "100px"
7115
+ },
7116
+ footer: {
7117
+ marginTop: tokens.spacingVerticalL,
7118
+ display: "flex",
7119
+ gap: tokens.spacingHorizontalM,
7120
+ justifyContent: "flex-end"
7121
+ }
7122
+ });
7123
+ var TypeOfServiceListSkeleton = ({ count = 3 }) => {
7124
+ const styles = useStyles16();
7125
+ return /* @__PURE__ */ jsx(
7126
+ "div",
7127
+ {
7128
+ style: {
7129
+ display: "flex",
7130
+ flexDirection: "column",
7131
+ marginTop: tokens.spacingHorizontalM
7132
+ },
7133
+ children: Array.from({ length: count }).map((_, index) => /* @__PURE__ */ jsx(
7134
+ "div",
7135
+ {
7136
+ className: styles.accordionItem,
7137
+ style: { padding: "8px 0" },
7138
+ children: /* @__PURE__ */ jsxs("div", { className: styles.accordionHeader, children: [
7139
+ /* @__PURE__ */ jsxs(
7140
+ "div",
7141
+ {
7142
+ style: { display: "flex", alignItems: "center", width: "100%" },
7143
+ children: [
7144
+ /* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(
7145
+ SkeletonItem,
7146
+ {
7147
+ style: {
7148
+ width: "74px",
7149
+ height: "74px",
7150
+ borderRadius: "8px"
7151
+ }
7152
+ }
7153
+ ) }),
7154
+ /* @__PURE__ */ jsx("div", { className: styles.accordionTitleAndInfo, style: { flex: 1 }, children: /* @__PURE__ */ jsxs(
7155
+ Skeleton,
7156
+ {
7157
+ style: {
7158
+ display: "flex",
7159
+ flexDirection: "column",
7160
+ gap: "4px"
7161
+ },
7162
+ children: [
7163
+ /* @__PURE__ */ jsx(
7164
+ SkeletonItem,
7165
+ {
7166
+ style: {
7167
+ width: "120px",
7168
+ height: "20px",
7169
+ borderRadius: "4px"
7170
+ }
7171
+ }
7172
+ ),
7173
+ /* @__PURE__ */ jsx(
7174
+ SkeletonItem,
7175
+ {
7176
+ style: {
7177
+ width: "150px",
7178
+ height: "16px",
7179
+ borderRadius: "4px"
7180
+ }
7181
+ }
7182
+ )
7183
+ ]
7184
+ }
7185
+ ) })
7186
+ ]
7187
+ }
7188
+ ),
7189
+ /* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(
7190
+ SkeletonItem,
7191
+ {
7192
+ style: {
7193
+ width: "16px",
7194
+ height: "16px",
7195
+ borderRadius: "50%"
7196
+ }
7197
+ }
7198
+ ) })
7199
+ ] })
7200
+ },
7201
+ index
7202
+ ))
7203
+ }
7204
+ );
7205
+ };
6827
7206
  var ModalTypeOfService = ({
6828
7207
  language = "id",
6829
7208
  labels,
@@ -6833,10 +7212,14 @@ var ModalTypeOfService = ({
6833
7212
  serviceTypes,
6834
7213
  selectedService,
6835
7214
  onSave,
6836
- renderImage
7215
+ renderImage,
7216
+ isLoading = false,
7217
+ isError = false,
7218
+ reloadButton,
7219
+ emptyImageSrc = ""
6837
7220
  }) => {
6838
- const styles = useStyles15();
6839
- const mergedLabels = { ...DEFAULT_LABELS14[language], ...labels };
7221
+ const styles = useStyles16();
7222
+ const mergedLabels = { ...DEFAULT_LABELS15[language], ...labels };
6840
7223
  const [selectedServiceId, setSelectedServiceId] = useState(
6841
7224
  selectedService?.id || 0
6842
7225
  );
@@ -6949,7 +7332,15 @@ var ModalTypeOfService = ({
6949
7332
  children: title || mergedLabels.title
6950
7333
  }
6951
7334
  ),
6952
- /* @__PURE__ */ jsxs(DialogContent, { children: [
7335
+ /* @__PURE__ */ jsx(DialogContent, { children: isLoading ? /* @__PURE__ */ jsx(TypeOfServiceListSkeleton, {}) : isError ? /* @__PURE__ */ jsx(
7336
+ EmptyContent,
7337
+ {
7338
+ content: mergedLabels.emptyContent,
7339
+ language,
7340
+ actionButton: reloadButton,
7341
+ imageSrc: emptyImageSrc
7342
+ }
7343
+ ) : /* @__PURE__ */ jsxs(Fragment, { children: [
6953
7344
  /* @__PURE__ */ jsx(
6954
7345
  Accordion,
6955
7346
  {
@@ -6996,7 +7387,9 @@ var ModalTypeOfService = ({
6996
7387
  styles.accordionHeader,
6997
7388
  styles.accordionItem
6998
7389
  ),
6999
- style: { padding: tokens.spacingHorizontalXS },
7390
+ style: {
7391
+ padding: tokens.spacingHorizontalXS
7392
+ },
7000
7393
  children: [
7001
7394
  /* @__PURE__ */ jsx("div", { children: imageRenderer({
7002
7395
  src: childItem.image,
@@ -7004,10 +7397,16 @@ var ModalTypeOfService = ({
7004
7397
  width: 48,
7005
7398
  height: 48
7006
7399
  }) }),
7007
- /* @__PURE__ */ jsxs("div", { className: styles.accordionTitleAndInfo, children: [
7008
- /* @__PURE__ */ jsx(Body1, { children: childItem.title }),
7009
- /* @__PURE__ */ jsx(Caption1, { children: childItem.info })
7010
- ] }),
7400
+ /* @__PURE__ */ jsxs(
7401
+ "div",
7402
+ {
7403
+ className: styles.accordionTitleAndInfo,
7404
+ children: [
7405
+ /* @__PURE__ */ jsx(Body1, { children: childItem.title }),
7406
+ /* @__PURE__ */ jsx(Caption1, { children: childItem.info })
7407
+ ]
7408
+ }
7409
+ ),
7011
7410
  /* @__PURE__ */ jsx(Radio, { value: String(childItem.id) })
7012
7411
  ]
7013
7412
  },
@@ -7057,7 +7456,15 @@ var ModalTypeOfService = ({
7057
7456
  }
7058
7457
  ),
7059
7458
  /* @__PURE__ */ jsxs("div", { className: styles.footer, children: [
7060
- /* @__PURE__ */ jsx(Button, { appearance: "secondary", shape: "circular", onClick: onClose, children: mergedLabels.cancelButton }),
7459
+ /* @__PURE__ */ jsx(
7460
+ Button,
7461
+ {
7462
+ appearance: "secondary",
7463
+ shape: "circular",
7464
+ onClick: onClose,
7465
+ children: mergedLabels.cancelButton
7466
+ }
7467
+ ),
7061
7468
  /* @__PURE__ */ jsx(
7062
7469
  Button,
7063
7470
  {
@@ -7069,12 +7476,12 @@ var ModalTypeOfService = ({
7069
7476
  }
7070
7477
  )
7071
7478
  ] })
7072
- ] })
7479
+ ] }) })
7073
7480
  ] }) }) });
7074
7481
  };
7075
7482
 
7076
7483
  // src/components/SortMenu/SortMenu.constants.ts
7077
- var DEFAULT_LABELS15 = {
7484
+ var DEFAULT_LABELS16 = {
7078
7485
  id: {
7079
7486
  filterButtonText: "Filter",
7080
7487
  sortButtonText: "Urutkan Berdasarkan",
@@ -7116,7 +7523,7 @@ var getSortLabel = (value) => {
7116
7523
  const option = DEFAULT_SORT_OPTIONS.find((opt) => opt.value === value);
7117
7524
  return option?.label || "Rekomendasi";
7118
7525
  };
7119
- var useStyles16 = makeStyles({
7526
+ var useStyles17 = makeStyles({
7120
7527
  container: {
7121
7528
  display: "flex",
7122
7529
  width: "100%",
@@ -7152,10 +7559,10 @@ var SortMenu = ({
7152
7559
  sortButtonText: deprecatedSortButtonText,
7153
7560
  clearFiltersText: deprecatedClearFiltersText
7154
7561
  }) => {
7155
- const styles = useStyles16();
7562
+ const styles = useStyles17();
7156
7563
  const labels = React.useMemo(
7157
7564
  () => ({
7158
- ...DEFAULT_LABELS15[language],
7565
+ ...DEFAULT_LABELS16[language],
7159
7566
  ...customLabels,
7160
7567
  // Fallback to deprecated props if provided
7161
7568
  ...deprecatedFilterButtonText && {
@@ -7267,7 +7674,7 @@ var SortMenu = ({
7267
7674
  };
7268
7675
 
7269
7676
  // src/components/ModalFilterTicket/ModalFilterTicket.constants.ts
7270
- var DEFAULT_LABELS16 = {
7677
+ var DEFAULT_LABELS17 = {
7271
7678
  id: {
7272
7679
  title: "Filter dengan",
7273
7680
  serviceTypeLabel: "Jenis Layanan",
@@ -7328,7 +7735,7 @@ var DEFAULT_DURATION_RANGE = {
7328
7735
  min: 0,
7329
7736
  max: 8
7330
7737
  };
7331
- var useStyles17 = makeStyles({
7738
+ var useStyles18 = makeStyles({
7332
7739
  dialogSurface: {
7333
7740
  maxWidth: "600px",
7334
7741
  width: "100%"
@@ -7438,8 +7845,8 @@ var ModalFilterTicket = ({
7438
7845
  minDuration = DEFAULT_DURATION_RANGE.min,
7439
7846
  maxDuration = DEFAULT_DURATION_RANGE.max
7440
7847
  }) => {
7441
- const styles = useStyles17();
7442
- const mergedLabels = { ...DEFAULT_LABELS16[language], ...labels };
7848
+ const styles = useStyles18();
7849
+ const mergedLabels = { ...DEFAULT_LABELS17[language], ...labels };
7443
7850
  const [rangeReady, setRangeReady] = useState(false);
7444
7851
  useEffect(() => {
7445
7852
  if (open) {
@@ -7749,7 +8156,7 @@ var ModalFilterTicket = ({
7749
8156
  };
7750
8157
 
7751
8158
  // src/components/DateFilter/DateFilter.constants.ts
7752
- var DEFAULT_LABELS17 = {
8159
+ var DEFAULT_LABELS18 = {
7753
8160
  id: {
7754
8161
  prevButtonAriaLabel: "Tanggal sebelumnya",
7755
8162
  nextButtonAriaLabel: "Tanggal berikutnya",
@@ -7762,7 +8169,7 @@ var DEFAULT_LABELS17 = {
7762
8169
  }
7763
8170
  };
7764
8171
  var DEFAULT_SCROLL_AMOUNT = 150;
7765
- var useStyles18 = makeStyles({
8172
+ var useStyles19 = makeStyles({
7766
8173
  container: {
7767
8174
  display: "flex",
7768
8175
  alignItems: "stretch",
@@ -7845,10 +8252,10 @@ var DateFilter = ({
7845
8252
  labels,
7846
8253
  isLoading = false
7847
8254
  }) => {
7848
- const styles = useStyles18();
8255
+ const styles = useStyles19();
7849
8256
  const scrollRef = useRef(null);
7850
8257
  const mergedLabels = {
7851
- ...DEFAULT_LABELS17[language],
8258
+ ...DEFAULT_LABELS18[language],
7852
8259
  ...labels
7853
8260
  };
7854
8261
  const handlePrev = () => {
@@ -7911,7 +8318,7 @@ var DateFilter = ({
7911
8318
  };
7912
8319
 
7913
8320
  // src/components/ModalSearchTicket/ModalSearchTicket.constants.ts
7914
- var DEFAULT_LABELS18 = {
8321
+ var DEFAULT_LABELS19 = {
7915
8322
  id: {
7916
8323
  title: "Cari Jadwal Lainnya",
7917
8324
  fromLabel: "Dari",
@@ -7971,7 +8378,7 @@ var DEFAULT_FORM_VALUES = {
7971
8378
  typeOfService: "",
7972
8379
  passenger: ""
7973
8380
  };
7974
- var useStyles19 = makeStyles({
8381
+ var useStyles20 = makeStyles({
7975
8382
  dialogSurface: {
7976
8383
  maxWidth: "900px",
7977
8384
  width: "100%"
@@ -8073,8 +8480,8 @@ var ModalSearchTicket = ({
8073
8480
  showRoundTrip = true,
8074
8481
  ...props
8075
8482
  }) => {
8076
- const styles = useStyles19();
8077
- const mergedLabels = { ...DEFAULT_LABELS18[language], ...labels };
8483
+ const styles = useStyles20();
8484
+ const mergedLabels = { ...DEFAULT_LABELS19[language], ...labels };
8078
8485
  const { control, setValue, handleSubmit, watch } = useForm({
8079
8486
  defaultValues: {
8080
8487
  ...DEFAULT_FORM_VALUES,
@@ -8511,7 +8918,7 @@ var ModalSearchTicket = ({
8511
8918
  };
8512
8919
 
8513
8920
  // src/components/Stepper/Stepper.constants.ts
8514
- var DEFAULT_LABELS19 = {
8921
+ var DEFAULT_LABELS20 = {
8515
8922
  id: {
8516
8923
  stepperBackgroundAlt: "Latar Belakang Stepper",
8517
8924
  ferryIconAlt: "Ikon Kapal"
@@ -8521,7 +8928,7 @@ var DEFAULT_LABELS19 = {
8521
8928
  ferryIconAlt: "Ferry Icon"
8522
8929
  }
8523
8930
  };
8524
- var useStyles20 = makeStyles({
8931
+ var useStyles21 = makeStyles({
8525
8932
  stepperWrapper: {
8526
8933
  position: "relative",
8527
8934
  width: "100%",
@@ -8646,8 +9053,8 @@ var Stepper = ({
8646
9053
  language = "id",
8647
9054
  labels
8648
9055
  }) => {
8649
- const styles = useStyles20();
8650
- const mergedLabels = { ...DEFAULT_LABELS19[language], ...labels };
9056
+ const styles = useStyles21();
9057
+ const mergedLabels = { ...DEFAULT_LABELS20[language], ...labels };
8651
9058
  const currentStepIndex = useMemo(() => {
8652
9059
  if (typeof currentStep === "number") {
8653
9060
  return steps.findIndex((step) => step.number === currentStep);
@@ -8703,7 +9110,7 @@ var Stepper = ({
8703
9110
  };
8704
9111
 
8705
9112
  // src/components/CardOrdererInfo/CardOrdererInfo.constants.ts
8706
- var DEFAULT_LABELS20 = {
9113
+ var DEFAULT_LABELS21 = {
8707
9114
  id: {
8708
9115
  title: "Informasi Pemesan",
8709
9116
  ordererName: "Nama Pemesan",
@@ -8717,7 +9124,7 @@ var DEFAULT_LABELS20 = {
8717
9124
  email: "Email"
8718
9125
  }
8719
9126
  };
8720
- var useStyles21 = makeStyles({
9127
+ var useStyles22 = makeStyles({
8721
9128
  card: {
8722
9129
  padding: "1.5rem",
8723
9130
  borderRadius: tokens.borderRadiusXLarge,
@@ -8747,8 +9154,8 @@ var CardOrdererInfo = ({
8747
9154
  labels,
8748
9155
  className
8749
9156
  }) => {
8750
- const styles = useStyles21();
8751
- const mergedLabels = { ...DEFAULT_LABELS20[language], ...labels };
9157
+ const styles = useStyles22();
9158
+ const mergedLabels = { ...DEFAULT_LABELS21[language], ...labels };
8752
9159
  return /* @__PURE__ */ jsxs(Card, { className: className || styles.card, children: [
8753
9160
  /* @__PURE__ */ jsx(Title3, { children: mergedLabels.title }),
8754
9161
  /* @__PURE__ */ jsxs("div", { className: styles.container, children: [
@@ -8769,7 +9176,7 @@ var CardOrdererInfo = ({
8769
9176
  };
8770
9177
 
8771
9178
  // src/components/ModalListPassenger/ModalListPassenger.constants.ts
8772
- var DEFAULT_LABELS21 = {
9179
+ var DEFAULT_LABELS22 = {
8773
9180
  id: {
8774
9181
  title: "Detail Penumpang",
8775
9182
  // sameAsOrderer: 'Sama Dengan Pemesan',
@@ -8799,7 +9206,7 @@ var DEFAULT_LABELS21 = {
8799
9206
  }
8800
9207
  }
8801
9208
  };
8802
- var useStyles22 = makeStyles({
9209
+ var useStyles23 = makeStyles({
8803
9210
  dialogSurface: {
8804
9211
  maxWidth: "600px",
8805
9212
  width: "100%",
@@ -8854,8 +9261,8 @@ var ModalListPassenger = ({
8854
9261
  // sameAsOrderer,
8855
9262
  // onSameAsOrdererChange,
8856
9263
  }) => {
8857
- const styles = useStyles22();
8858
- const mergedLabels = { ...DEFAULT_LABELS21[language], ...labels };
9264
+ const styles = useStyles23();
9265
+ const mergedLabels = { ...DEFAULT_LABELS22[language], ...labels };
8859
9266
  const displayTitle = title || mergedLabels.title;
8860
9267
  const handleClose = () => {
8861
9268
  onClose();
@@ -8986,7 +9393,7 @@ var ModalListPassenger = ({
8986
9393
  };
8987
9394
 
8988
9395
  // src/components/ModalPassengerForm/ModalPassengerForm.constants.ts
8989
- var DEFAULT_LABELS22 = {
9396
+ var DEFAULT_LABELS23 = {
8990
9397
  id: {
8991
9398
  title: "Detail Penumpang",
8992
9399
  titleLabel: "Title",
@@ -9137,7 +9544,7 @@ var calculateAge = (birthDate) => {
9137
9544
  }
9138
9545
  return { years: Math.max(0, years), months: Math.max(0, months) };
9139
9546
  };
9140
- var useStyles23 = makeStyles({
9547
+ var useStyles24 = makeStyles({
9141
9548
  dialogSurface: {
9142
9549
  maxWidth: "600px",
9143
9550
  width: "100%",
@@ -9317,10 +9724,10 @@ var ModalPassengerForm = ({
9317
9724
  ticketClassOptions,
9318
9725
  onScanComplete
9319
9726
  }) => {
9320
- const styles = useStyles23();
9321
- const mergedLabels = { ...DEFAULT_LABELS22[language], ...labels };
9727
+ const styles = useStyles24();
9728
+ const mergedLabels = { ...DEFAULT_LABELS23[language], ...labels };
9322
9729
  const mergedErrors = {
9323
- ...DEFAULT_LABELS22[language].errors,
9730
+ ...DEFAULT_LABELS23[language].errors,
9324
9731
  ...labels?.errors
9325
9732
  };
9326
9733
  const displayTitle = title || mergedLabels.title;
@@ -10052,7 +10459,7 @@ var ModalPassengerForm = ({
10052
10459
  };
10053
10460
 
10054
10461
  // src/components/CardPassengerList/CardPassengerList.constants.ts
10055
- var DEFAULT_LABELS23 = {
10462
+ var DEFAULT_LABELS24 = {
10056
10463
  id: {
10057
10464
  defaultTitle: "Data Penumpang",
10058
10465
  passengerPrefix: "Penumpang"
@@ -10095,7 +10502,7 @@ var getBadgeConfig = (ticketClass) => {
10095
10502
  };
10096
10503
  }
10097
10504
  };
10098
- var useStyles24 = makeStyles({
10505
+ var useStyles25 = makeStyles({
10099
10506
  card: {
10100
10507
  padding: "1.5rem",
10101
10508
  borderRadius: tokens.borderRadiusXLarge,
@@ -10178,8 +10585,8 @@ var CardPassengerList = ({
10178
10585
  labels,
10179
10586
  className
10180
10587
  }) => {
10181
- const styles = useStyles24();
10182
- const mergedLabels = { ...DEFAULT_LABELS23[language], ...labels };
10588
+ const styles = useStyles25();
10589
+ const mergedLabels = { ...DEFAULT_LABELS24[language], ...labels };
10183
10590
  const displayTitle = title || mergedLabels.defaultTitle;
10184
10591
  return /* @__PURE__ */ jsxs(Card, { className: className || styles.card, children: [
10185
10592
  /* @__PURE__ */ jsxs("div", { className: styles.headerContainer, children: [
@@ -10252,7 +10659,7 @@ var CardPassengerList = ({
10252
10659
  };
10253
10660
 
10254
10661
  // src/components/CardVehicleDetail/CardVehicleDetail.constants.ts
10255
- var DEFAULT_LABELS24 = {
10662
+ var DEFAULT_LABELS25 = {
10256
10663
  id: {
10257
10664
  title: "Detail Kendaraan",
10258
10665
  vehicleNumberLabel: "Nomor Kendaraan",
@@ -10270,7 +10677,7 @@ var DEFAULT_LABELS24 = {
10270
10677
  noLabel: "No"
10271
10678
  }
10272
10679
  };
10273
- var useStyles25 = makeStyles({
10680
+ var useStyles26 = makeStyles({
10274
10681
  card: {
10275
10682
  padding: "1.5rem",
10276
10683
  borderRadius: tokens.borderRadiusXLarge,
@@ -10310,8 +10717,8 @@ var CardVehicleDetail = ({
10310
10717
  language = "id",
10311
10718
  labels
10312
10719
  }) => {
10313
- const styles = useStyles25();
10314
- const mergedLabels = { ...DEFAULT_LABELS24[language], ...labels };
10720
+ const styles = useStyles26();
10721
+ const mergedLabels = { ...DEFAULT_LABELS25[language], ...labels };
10315
10722
  return /* @__PURE__ */ jsxs(Card, { className: styles.card, children: [
10316
10723
  /* @__PURE__ */ jsxs(
10317
10724
  "div",
@@ -10373,7 +10780,7 @@ var CardVehicleDetail = ({
10373
10780
  };
10374
10781
 
10375
10782
  // src/components/CardVehicleOwnerForm/CardVehicleOwnerForm.constants.ts
10376
- var DEFAULT_LABELS25 = {
10783
+ var DEFAULT_LABELS26 = {
10377
10784
  id: {
10378
10785
  title: "Informasi Pemilik & Muatan",
10379
10786
  addOwnerButton: "Tambah Pemilik",
@@ -10481,7 +10888,7 @@ var DEFAULT_LABELS25 = {
10481
10888
  incrementQuantityAriaLabel: "Increase quantity"
10482
10889
  }
10483
10890
  };
10484
- var useStyles26 = makeStyles({
10891
+ var useStyles27 = makeStyles({
10485
10892
  card: {
10486
10893
  padding: "1.5rem",
10487
10894
  borderRadius: tokens.borderRadiusXLarge,
@@ -10549,8 +10956,8 @@ var CardVehicleOwnerForm = ({
10549
10956
  language = "id",
10550
10957
  labels
10551
10958
  }) => {
10552
- const styles = useStyles26();
10553
- const mergedLabels = { ...DEFAULT_LABELS25[language], ...labels };
10959
+ const styles = useStyles27();
10960
+ const mergedLabels = { ...DEFAULT_LABELS26[language], ...labels };
10554
10961
  return /* @__PURE__ */ jsxs(Card, { className: styles.card, children: [
10555
10962
  /* @__PURE__ */ jsxs("div", { className: styles.header, children: [
10556
10963
  /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", flex: 1 }, children: [
@@ -11338,7 +11745,7 @@ var CardVehicleOwnerForm = ({
11338
11745
  };
11339
11746
 
11340
11747
  // src/components/CardBookingTicket/CardBookingTicket.constants.ts
11341
- var DEFAULT_LABELS26 = {
11748
+ var DEFAULT_LABELS27 = {
11342
11749
  id: {
11343
11750
  bookingDetails: "Booking Details",
11344
11751
  routeTitle: "Rute Perjalanan",
@@ -11374,7 +11781,7 @@ var DEFAULT_LABELS26 = {
11374
11781
  cancelDialogDismiss: "Cancel"
11375
11782
  }
11376
11783
  };
11377
- var useStyles27 = makeStyles({
11784
+ var useStyles28 = makeStyles({
11378
11785
  container: {
11379
11786
  display: "flex",
11380
11787
  flexDirection: "column",
@@ -11538,8 +11945,8 @@ var CardBookingTicket = ({
11538
11945
  onPrevious,
11539
11946
  className
11540
11947
  }) => {
11541
- const styles = useStyles27();
11542
- const mergedLabels = { ...DEFAULT_LABELS26[language], ...labels };
11948
+ const styles = useStyles28();
11949
+ const mergedLabels = { ...DEFAULT_LABELS27[language], ...labels };
11543
11950
  const [cancelDialogOpen, setCancelDialogOpen] = useState(false);
11544
11951
  return /* @__PURE__ */ jsx("div", { className: `${styles.container} ${className || ""}`, children: /* @__PURE__ */ jsxs("div", { className: styles.bookingDetail, children: [
11545
11952
  /* @__PURE__ */ jsxs(Card, { className: styles.bookingDetailTop, children: [
@@ -11741,7 +12148,7 @@ var CardBookingTicket = ({
11741
12148
  };
11742
12149
 
11743
12150
  // src/components/CardFAQ/CardFAQ.constants.ts
11744
- var DEFAULT_LABELS27 = {
12151
+ var DEFAULT_LABELS28 = {
11745
12152
  id: {
11746
12153
  title: "Pertanyaan yang sering diajukan"
11747
12154
  },
@@ -11795,7 +12202,7 @@ var DEFAULT_FAQ_ITEMS = {
11795
12202
  }
11796
12203
  ]
11797
12204
  };
11798
- var useStyles28 = makeStyles({
12205
+ var useStyles29 = makeStyles({
11799
12206
  faqSection: {
11800
12207
  // marginTop: '2rem', // Let parent control spacing if needed, or keep consistent
11801
12208
  },
@@ -11819,8 +12226,8 @@ var CardFAQ = ({
11819
12226
  items,
11820
12227
  className
11821
12228
  }) => {
11822
- const styles = useStyles28();
11823
- const mergedLabels = { ...DEFAULT_LABELS27[language], ...labels };
12229
+ const styles = useStyles29();
12230
+ const mergedLabels = { ...DEFAULT_LABELS28[language], ...labels };
11824
12231
  const faqItems = items || DEFAULT_FAQ_ITEMS[language];
11825
12232
  return /* @__PURE__ */ jsxs(Card, { className: styles.faqCard, children: [
11826
12233
  /* @__PURE__ */ jsx(Subtitle1, { children: mergedLabels.title }),
@@ -11857,7 +12264,7 @@ var CardFAQ = ({
11857
12264
  };
11858
12265
 
11859
12266
  // src/components/CardAddon/CardAddon.constants.ts
11860
- var DEFAULT_LABELS28 = {
12267
+ var DEFAULT_LABELS29 = {
11861
12268
  id: {
11862
12269
  viewDetail: "Lihat detail",
11863
12270
  totalPrice: "Total Harga",
@@ -11873,7 +12280,7 @@ var DEFAULT_LABELS28 = {
11873
12280
  currencySymbol: "Rp"
11874
12281
  }
11875
12282
  };
11876
- var useStyles29 = makeStyles({
12283
+ var useStyles30 = makeStyles({
11877
12284
  card: {
11878
12285
  backgroundColor: tokens.colorNeutralBackground1,
11879
12286
  boxShadow: tokens.shadow4,
@@ -12046,8 +12453,8 @@ var CardAddon = ({
12046
12453
  children,
12047
12454
  className
12048
12455
  }) => {
12049
- const styles = useStyles29();
12050
- const mergedLabels = { ...DEFAULT_LABELS28[language], ...labels };
12456
+ const styles = useStyles30();
12457
+ const mergedLabels = { ...DEFAULT_LABELS29[language], ...labels };
12051
12458
  return /* @__PURE__ */ jsx(Card, { className: `${styles.card} ${className || ""}`, children: /* @__PURE__ */ jsxs("div", { className: styles.gapRow, children: [
12052
12459
  /* @__PURE__ */ jsxs("div", { className: styles.titleDivider, children: [
12053
12460
  /* @__PURE__ */ jsx(Title3, { className: styles.textTitle, children: title }),
@@ -12258,7 +12665,7 @@ var CardAddon = ({
12258
12665
  };
12259
12666
 
12260
12667
  // src/components/CardMealCatalog/CardMealCatalog.constants.ts
12261
- var DEFAULT_LABELS29 = {
12668
+ var DEFAULT_LABELS30 = {
12262
12669
  id: {
12263
12670
  addButton: "Tambah",
12264
12671
  currencySymbol: "Rp",
@@ -12274,7 +12681,7 @@ var DEFAULT_LABELS29 = {
12274
12681
  searchPlaceholder: "Search for food or drinks you want"
12275
12682
  }
12276
12683
  };
12277
- var useStyles30 = makeStyles({
12684
+ var useStyles31 = makeStyles({
12278
12685
  container: {
12279
12686
  display: "flex",
12280
12687
  flexDirection: "column",
@@ -12418,8 +12825,8 @@ var CardMealCatalog = ({
12418
12825
  searchValue,
12419
12826
  onSearchChange
12420
12827
  }) => {
12421
- const styles = useStyles30();
12422
- const mergedLabels = { ...DEFAULT_LABELS29[language], ...labels };
12828
+ const styles = useStyles31();
12829
+ const mergedLabels = { ...DEFAULT_LABELS30[language], ...labels };
12423
12830
  return /* @__PURE__ */ jsxs("div", { className: `${styles.container} ${className || ""}`, children: [
12424
12831
  /* @__PURE__ */ jsxs("div", { className: styles.banner, children: [
12425
12832
  /* @__PURE__ */ jsx("div", { className: styles.bannerOverlay }),
@@ -12524,7 +12931,7 @@ var CardMealCatalog = ({
12524
12931
  };
12525
12932
 
12526
12933
  // src/components/CardReview/CardReview.constants.ts
12527
- var DEFAULT_LABELS30 = {
12934
+ var DEFAULT_LABELS31 = {
12528
12935
  id: {
12529
12936
  defaultTitle: "Tinjauan"
12530
12937
  },
@@ -12532,7 +12939,7 @@ var DEFAULT_LABELS30 = {
12532
12939
  defaultTitle: "Review"
12533
12940
  }
12534
12941
  };
12535
- var useStyles31 = makeStyles({
12942
+ var useStyles32 = makeStyles({
12536
12943
  card: {
12537
12944
  padding: "1.5rem",
12538
12945
  borderRadius: tokens.borderRadiusXLarge,
@@ -12583,8 +12990,8 @@ var CardReview = ({
12583
12990
  className,
12584
12991
  headerAction
12585
12992
  }) => {
12586
- const styles = useStyles31();
12587
- const mergedLabels = { ...DEFAULT_LABELS30[language], ...labels };
12993
+ const styles = useStyles32();
12994
+ const mergedLabels = { ...DEFAULT_LABELS31[language], ...labels };
12588
12995
  return /* @__PURE__ */ jsxs(Card, { className: `${styles.card} ${className || ""}`, children: [
12589
12996
  /* @__PURE__ */ jsxs("div", { className: styles.headerContainer, children: [
12590
12997
  /* @__PURE__ */ jsx(Subtitle1, { className: styles.headerTitle, children: title || mergedLabels.defaultTitle }),
@@ -12631,7 +13038,7 @@ var CardReview = ({
12631
13038
  };
12632
13039
 
12633
13040
  // src/components/CardReviewPassenger/CardReviewPassenger.constants.ts
12634
- var DEFAULT_LABELS31 = {
13041
+ var DEFAULT_LABELS32 = {
12635
13042
  id: {
12636
13043
  title: "Penumpang",
12637
13044
  idNumber: "Nomor ID"
@@ -12641,7 +13048,7 @@ var DEFAULT_LABELS31 = {
12641
13048
  idNumber: "ID Number"
12642
13049
  }
12643
13050
  };
12644
- var useStyles32 = makeStyles({
13051
+ var useStyles33 = makeStyles({
12645
13052
  card: {
12646
13053
  padding: "1.5rem",
12647
13054
  borderRadius: tokens.borderRadiusXLarge,
@@ -12739,8 +13146,8 @@ var CardReviewPassenger = ({
12739
13146
  passengers,
12740
13147
  className
12741
13148
  }) => {
12742
- const styles = useStyles32();
12743
- const mergedLabels = { ...DEFAULT_LABELS31[language], ...labels };
13149
+ const styles = useStyles33();
13150
+ const mergedLabels = { ...DEFAULT_LABELS32[language], ...labels };
12744
13151
  const displayTitle = title || mergedLabels.title;
12745
13152
  return /* @__PURE__ */ jsxs(Card, { className: `${styles.card} ${className || ""}`, children: [
12746
13153
  /* @__PURE__ */ jsxs("div", { className: styles.headerContainer, children: [
@@ -12783,7 +13190,7 @@ var CardReviewPassenger = ({
12783
13190
  };
12784
13191
 
12785
13192
  // src/components/CardPriceDetails/CardPriceDetails.constants.ts
12786
- var DEFAULT_LABELS32 = {
13193
+ var DEFAULT_LABELS33 = {
12787
13194
  id: {
12788
13195
  defaultTitle: "Rincian Harga",
12789
13196
  totalPayment: "Total Pembayaran",
@@ -12819,7 +13226,7 @@ var DEFAULT_LABELS32 = {
12819
13226
  currencyPrefix: "Rp. "
12820
13227
  }
12821
13228
  };
12822
- var useStyles33 = makeStyles({
13229
+ var useStyles34 = makeStyles({
12823
13230
  list: {
12824
13231
  margin: 0,
12825
13232
  padding: 0,
@@ -12841,7 +13248,7 @@ var PriceDetailsTerms = ({
12841
13248
  language = "id",
12842
13249
  labels
12843
13250
  }) => {
12844
- const styles = useStyles33();
13251
+ const styles = useStyles34();
12845
13252
  const linkColor = tokens.colorBrandBackground;
12846
13253
  const bookingTerms = labels.bookingTerms;
12847
13254
  const agreementTerms = [
@@ -12861,7 +13268,7 @@ var PriceDetailsTerms = ({
12861
13268
  ] })
12862
13269
  ] });
12863
13270
  };
12864
- var useStyles34 = makeStyles({
13271
+ var useStyles35 = makeStyles({
12865
13272
  card: {
12866
13273
  padding: "1.5rem",
12867
13274
  borderRadius: tokens.borderRadiusXLarge,
@@ -12938,8 +13345,8 @@ var CardPriceDetails = ({
12938
13345
  total,
12939
13346
  labels
12940
13347
  }) => {
12941
- const styles = useStyles34();
12942
- const mergedLabels = { ...DEFAULT_LABELS32[language], ...labels };
13348
+ const styles = useStyles35();
13349
+ const mergedLabels = { ...DEFAULT_LABELS33[language], ...labels };
12943
13350
  const displayTitle = title || mergedLabels.defaultTitle;
12944
13351
  const getVariantClass = (variant) => {
12945
13352
  switch (variant) {
@@ -12998,7 +13405,7 @@ var CardPriceDetails = ({
12998
13405
  };
12999
13406
 
13000
13407
  // src/components/CardPaymentMethodList/CardPaymentMethodList.constants.ts
13001
- var DEFAULT_LABELS33 = {
13408
+ var DEFAULT_LABELS34 = {
13002
13409
  id: {
13003
13410
  selectAriaLabel: "Pilih metode pembayaran"
13004
13411
  },
@@ -13006,7 +13413,7 @@ var DEFAULT_LABELS33 = {
13006
13413
  selectAriaLabel: "Select payment method"
13007
13414
  }
13008
13415
  };
13009
- var useStyles35 = makeStyles({
13416
+ var useStyles36 = makeStyles({
13010
13417
  container: {
13011
13418
  display: "flex",
13012
13419
  flexDirection: "column",
@@ -13066,8 +13473,8 @@ var CardPaymentMethodList = ({
13066
13473
  selectedValue,
13067
13474
  onSelect
13068
13475
  }) => {
13069
- const styles = useStyles35();
13070
- const mergedLabels = { ...DEFAULT_LABELS33[language], ...labels };
13476
+ const styles = useStyles36();
13477
+ const mergedLabels = { ...DEFAULT_LABELS34[language], ...labels };
13071
13478
  return /* @__PURE__ */ jsx("div", { className: styles.card, children: /* @__PURE__ */ jsx("div", { className: `${styles.container}`, children: methods.map((category, index) => /* @__PURE__ */ jsxs("div", { children: [
13072
13479
  index > 0 && /* @__PURE__ */ jsx("div", { className: styles.dividerContainer, children: /* @__PURE__ */ jsx(Divider, {}) }),
13073
13480
  /* @__PURE__ */ jsx(Accordion, { multiple: true, collapsible: true, children: /* @__PURE__ */ jsxs(AccordionItem, { value: category.value, children: [
@@ -13116,7 +13523,7 @@ var CardPaymentMethodList = ({
13116
13523
  };
13117
13524
 
13118
13525
  // src/components/CardPaymentGuide/CardPaymentGuide.constants.ts
13119
- var DEFAULT_LABELS34 = {
13526
+ var DEFAULT_LABELS35 = {
13120
13527
  id: {
13121
13528
  title: "Cara Pembayaran"
13122
13529
  },
@@ -13124,7 +13531,7 @@ var DEFAULT_LABELS34 = {
13124
13531
  title: "Payment Method"
13125
13532
  }
13126
13533
  };
13127
- var useStyles36 = makeStyles({
13534
+ var useStyles37 = makeStyles({
13128
13535
  container: {
13129
13536
  display: "flex",
13130
13537
  flexDirection: "column",
@@ -13161,8 +13568,8 @@ var CardPaymentGuide = ({
13161
13568
  guides,
13162
13569
  className
13163
13570
  }) => {
13164
- const styles = useStyles36();
13165
- const mergedLabels = { ...DEFAULT_LABELS34[language], ...labels };
13571
+ const styles = useStyles37();
13572
+ const mergedLabels = { ...DEFAULT_LABELS35[language], ...labels };
13166
13573
  const displayTitle = title || mergedLabels.title;
13167
13574
  return /* @__PURE__ */ jsxs("div", { className: `${styles.container} ${className || ""}`, children: [
13168
13575
  title && /* @__PURE__ */ jsx("div", { className: styles.titleContainer, children: /* @__PURE__ */ jsx(Subtitle1, { className: styles.title, children: displayTitle }) }),
@@ -13181,7 +13588,7 @@ var CardPaymentGuide = ({
13181
13588
  };
13182
13589
 
13183
13590
  // src/components/CardPaymentInfo/CardPaymentInfo.constants.ts
13184
- var DEFAULT_LABELS35 = {
13591
+ var DEFAULT_LABELS36 = {
13185
13592
  id: {
13186
13593
  expiryPrefix: "Kode virtual akun berlaku sampai",
13187
13594
  copyCodeButton: "Salin Kode",
@@ -13199,7 +13606,7 @@ var DEFAULT_LABELS35 = {
13199
13606
  currencySymbol: "Rp."
13200
13607
  }
13201
13608
  };
13202
- var useStyles37 = makeStyles({
13609
+ var useStyles38 = makeStyles({
13203
13610
  container: {
13204
13611
  display: "flex",
13205
13612
  flexDirection: "column",
@@ -13281,8 +13688,8 @@ var CardPaymentInfo = ({
13281
13688
  onCopyVA,
13282
13689
  onCheckStatus
13283
13690
  }) => {
13284
- const styles = useStyles37();
13285
- const mergedLabels = { ...DEFAULT_LABELS35[language], ...labels };
13691
+ const styles = useStyles38();
13692
+ const mergedLabels = { ...DEFAULT_LABELS36[language], ...labels };
13286
13693
  return /* @__PURE__ */ jsx("div", { className: styles.card, children: /* @__PURE__ */ jsxs("div", { className: styles.container, children: [
13287
13694
  /* @__PURE__ */ jsxs("div", { className: styles.headerRow, children: [
13288
13695
  /* @__PURE__ */ jsx(Subtitle1, { children: mergedLabels.expiryPrefix }),
@@ -13340,7 +13747,7 @@ var CardPaymentInfo = ({
13340
13747
  };
13341
13748
 
13342
13749
  // src/components/CardStatusOrder/CardStatusOrder.constants.ts
13343
- var DEFAULT_LABELS36 = {
13750
+ var DEFAULT_LABELS37 = {
13344
13751
  id: {
13345
13752
  detailTitle: "Detail Pemesanan",
13346
13753
  statusLabel: "Status",
@@ -13370,7 +13777,7 @@ var DEFAULT_LABELS36 = {
13370
13777
  illustrationAlt: "E-Ticket Illustration"
13371
13778
  }
13372
13779
  };
13373
- var useStyles38 = makeStyles({
13780
+ var useStyles39 = makeStyles({
13374
13781
  activeCard: {
13375
13782
  width: "100%",
13376
13783
  // padding: tokens.spacingHorizontalNone, // default
@@ -13440,8 +13847,8 @@ var CardStatusOrder = ({
13440
13847
  onClickViewTicket,
13441
13848
  className
13442
13849
  }) => {
13443
- const styles = useStyles38();
13444
- const mergedLabels = { ...DEFAULT_LABELS36[language], ...labels };
13850
+ const styles = useStyles39();
13851
+ const mergedLabels = { ...DEFAULT_LABELS37[language], ...labels };
13445
13852
  const displayStatus = statusLabel || mergedLabels.defaultStatus;
13446
13853
  const displayTitle = title || mergedLabels.defaultTitle;
13447
13854
  const displayDescription = description || mergedLabels.defaultDescription;
@@ -13538,7 +13945,7 @@ var CardStatusOrder = ({
13538
13945
  };
13539
13946
 
13540
13947
  // src/components/ModalPriceDetail/ModalPriceDetail.constants.ts
13541
- var DEFAULT_LABELS37 = {
13948
+ var DEFAULT_LABELS38 = {
13542
13949
  id: {
13543
13950
  title: "Rincian Harga",
13544
13951
  addonHeader: "Add On",
@@ -13564,7 +13971,7 @@ var DEFAULT_LABELS37 = {
13564
13971
  closeAriaLabel: "Close"
13565
13972
  }
13566
13973
  };
13567
- var useStyles39 = makeStyles({
13974
+ var useStyles40 = makeStyles({
13568
13975
  surface: {
13569
13976
  width: "680px",
13570
13977
  maxWidth: "90vw",
@@ -13691,8 +14098,8 @@ var ModalPriceDetail = ({
13691
14098
  grandTotal,
13692
14099
  ...props
13693
14100
  }) => {
13694
- const styles = useStyles39();
13695
- const mergedLabels = { ...DEFAULT_LABELS37[language], ...labels };
14101
+ const styles = useStyles40();
14102
+ const mergedLabels = { ...DEFAULT_LABELS38[language], ...labels };
13696
14103
  return /* @__PURE__ */ jsx(
13697
14104
  Dialog,
13698
14105
  {
@@ -13834,7 +14241,7 @@ var ModalPriceDetail = ({
13834
14241
  // src/components/FileUpload/FileUpload.constants.ts
13835
14242
  var ACCEPTED_FILES = ".pdf,.jpg,.jpeg,.png";
13836
14243
  var MAX_FILE_SIZE_MB = 10;
13837
- var DEFAULT_LABELS38 = {
14244
+ var DEFAULT_LABELS39 = {
13838
14245
  id: {
13839
14246
  placeholder: "Ketuk untuk pilih file",
13840
14247
  maxSizeWarning: "Maksimal {maxSize}MB per file dalam format PDF, JPG, JPEG, PNG.",
@@ -13852,7 +14259,7 @@ var DEFAULT_LABELS38 = {
13852
14259
  downloadTemplateDocument: "Download Template Document"
13853
14260
  }
13854
14261
  };
13855
- var useStyles40 = makeStyles({
14262
+ var useStyles41 = makeStyles({
13856
14263
  surface: {
13857
14264
  maxWidth: "90vw",
13858
14265
  maxHeight: "90vh",
@@ -13879,7 +14286,7 @@ var ModalPreviewImage = ({
13879
14286
  imageUrl,
13880
14287
  alt = "Preview"
13881
14288
  }) => {
13882
- const styles = useStyles40();
14289
+ const styles = useStyles41();
13883
14290
  return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: (_, data) => onOpenChange(data.open), children: /* @__PURE__ */ jsx(DialogSurface, { className: styles.surface, children: /* @__PURE__ */ jsxs(DialogBody, { children: [
13884
14291
  /* @__PURE__ */ jsx(
13885
14292
  DialogTitle,
@@ -13992,7 +14399,7 @@ var FileUpload = React.forwardRef(
13992
14399
  pdfIcon,
13993
14400
  downloadTemplateDocument = false
13994
14401
  }, ref) => {
13995
- const mergedLabels = { ...DEFAULT_LABELS38[language], ...customLabels };
14402
+ const mergedLabels = { ...DEFAULT_LABELS39[language], ...customLabels };
13996
14403
  const styles = uploadStyles();
13997
14404
  const fileInputRef = useRef(null);
13998
14405
  const [, setIsDragOver] = useState(false);
@@ -14430,11 +14837,11 @@ function hexToRgba(hex, alpha = 1) {
14430
14837
  }
14431
14838
 
14432
14839
  // src/components/CardProfileMenu/CardProfileMenu.constants.ts
14433
- var DEFAULT_LABELS39 = {
14840
+ var DEFAULT_LABELS40 = {
14434
14841
  id: {},
14435
14842
  en: {}
14436
14843
  };
14437
- var useStyles41 = makeStyles({
14844
+ var useStyles42 = makeStyles({
14438
14845
  container: {
14439
14846
  display: "flex",
14440
14847
  flexDirection: "column",
@@ -14494,8 +14901,8 @@ var CardProfileMenu = ({
14494
14901
  selectedValue,
14495
14902
  onTabSelect
14496
14903
  }) => {
14497
- const styles = useStyles41();
14498
- ({ ...DEFAULT_LABELS39[language], ...labels });
14904
+ const styles = useStyles42();
14905
+ ({ ...DEFAULT_LABELS40[language], ...labels });
14499
14906
  const handleTabSelect = (_, data) => {
14500
14907
  onTabSelect(data.value);
14501
14908
  };
@@ -14524,6 +14931,6 @@ var CardProfileMenu = ({
14524
14931
  ) });
14525
14932
  };
14526
14933
 
14527
- export { API_CONFIG, API_ENDPOINTS, API_ERROR_MESSAGES, BackgroundTicketCard_default as BackgroundTicketCard, BackgroundTicketCardVertical_default as BackgroundTicketCardVertical, COUNTRIES, 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_DURATION_RANGE, DEFAULT_PRICE_RANGE, DEFAULT_SCROLL_AMOUNT, DEFAULT_SERVICE_TYPES, DEFAULT_SORT_OPTIONS, DEFAULT_TIME_SLOTS, DEFAULT_VEHICLE_ICONS, DateFilter, DEFAULT_LABELS17 as DateFilterDefaultLabels, FileUpload_default as FileUpload, GENDER, HTTP_STATUS, IDENTITY_TYPE, InputDynamic_default as InputDynamic, LOAD_TYPE, MODAL_PRESETS, MY_TICKET_STATUS, MY_TICKET_TAB, ModalFilterTicket, DEFAULT_LABELS16 as ModalFilterTicketDefaultLabels, ModalIllustration, ModalListMenuService, ModalListPassenger, ModalPassengerForm, ModalPreviewImage, ModalPriceDetail, ModalSearchHarbor, ModalSearchTicket, ModalSelectDate, ModalService, ModalTotalPassengers, ModalTypeOfService, PASSENGER_TYPE, SortMenu, Stepper, calculateAge, getBadgeConfig, getModalPreset, getSortLabel, hexToRgba };
14934
+ export { API_CONFIG, API_ENDPOINTS, API_ERROR_MESSAGES, BackgroundTicketCard_default as BackgroundTicketCard, BackgroundTicketCardVertical_default as BackgroundTicketCardVertical, COUNTRIES, 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_DURATION_RANGE, DEFAULT_PRICE_RANGE, DEFAULT_SCROLL_AMOUNT, DEFAULT_SERVICE_TYPES, DEFAULT_SORT_OPTIONS, DEFAULT_TIME_SLOTS, DEFAULT_VEHICLE_ICONS, DateFilter, DEFAULT_LABELS18 as DateFilterDefaultLabels, EmptyContent, DEFAULT_LABELS11 as EmptyContentDefaultLabels, FileUpload_default as FileUpload, GENDER, HTTP_STATUS, IDENTITY_TYPE, InputDynamic_default as InputDynamic, LOAD_TYPE, MODAL_PRESETS, MY_TICKET_STATUS, MY_TICKET_TAB, ModalFilterTicket, DEFAULT_LABELS17 as ModalFilterTicketDefaultLabels, ModalIllustration, ModalListMenuService, ModalListPassenger, ModalPassengerForm, ModalPreviewImage, ModalPriceDetail, ModalSearchHarbor, ModalSearchTicket, ModalSelectDate, ModalService, ModalTotalPassengers, ModalTypeOfService, PASSENGER_TYPE, SortMenu, Stepper, calculateAge, getBadgeConfig, getModalPreset, getSortLabel, hexToRgba };
14528
14935
  //# sourceMappingURL=index.mjs.map
14529
14936
  //# sourceMappingURL=index.mjs.map