@asdp/ferryui 0.1.22-dev.9339 → 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';
@@ -5406,7 +5406,9 @@ var DEFAULT_LABELS10 = {
5406
5406
  harborNotFound: "Pelabuhan tidak ditemukan",
5407
5407
  closeAriaLabel: "Tutup",
5408
5408
  popularHarborHeader: "Pelabuhan Populer",
5409
- favoriteHeader: "Favorit"
5409
+ favoriteHeader: "Favorit",
5410
+ emptyContent: "Pelabuhan",
5411
+ travelPlanHeader: "Rencana Perjalanan"
5410
5412
  },
5411
5413
  en: {
5412
5414
  title: "Select Harbor",
@@ -5418,10 +5420,113 @@ var DEFAULT_LABELS10 = {
5418
5420
  harborNotFound: "Harbor not found",
5419
5421
  closeAriaLabel: "Close",
5420
5422
  popularHarborHeader: "Popular Harbor",
5421
- favoriteHeader: "Favorite"
5423
+ favoriteHeader: "Favorite",
5424
+ emptyContent: "Harbor",
5425
+ travelPlanHeader: "Travel Plan"
5422
5426
  }
5423
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"
5442
+ }
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
+ };
5424
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({
5425
5530
  dialogTitle: {
5426
5531
  display: "flex",
5427
5532
  justifyContent: "space-between",
@@ -5559,7 +5664,7 @@ var HarborListItem = ({
5559
5664
  showDivider,
5560
5665
  containerClassName
5561
5666
  }) => {
5562
- const styles = useStyles11();
5667
+ const styles = useStyles12();
5563
5668
  return /* @__PURE__ */ jsxs(Fragment, { children: [
5564
5669
  /* @__PURE__ */ jsxs("div", { className: containerClassName, children: [
5565
5670
  /* @__PURE__ */ jsxs("div", { className: styles.listContent, onClick: () => onSelect(harbor), children: [
@@ -5582,6 +5687,57 @@ var HarborListItem = ({
5582
5687
  showDivider && /* @__PURE__ */ jsx(Divider, {})
5583
5688
  ] });
5584
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
+ };
5585
5741
  var ModalSearchHarbor = ({
5586
5742
  language = "id",
5587
5743
  labels,
@@ -5592,7 +5748,8 @@ var ModalSearchHarbor = ({
5592
5748
  harbors,
5593
5749
  favoriteHarbors,
5594
5750
  lastSearchedHarbors,
5595
- isLoading = false,
5751
+ isLoadingPort = false,
5752
+ isLoadingTravelPlan = false,
5596
5753
  searchQuery,
5597
5754
  onSearchChange,
5598
5755
  onSelectHarbor,
@@ -5601,11 +5758,18 @@ var ModalSearchHarbor = ({
5601
5758
  onRemoveLastSearched,
5602
5759
  onClearLastSearched,
5603
5760
  onClearFavorite,
5761
+ reloadButtonPort,
5762
+ reloadButtonTravelPlan,
5763
+ reloadButtonAll,
5604
5764
  popularHarbors,
5605
- showButtonFavorite = true
5765
+ showButtonFavorite = true,
5766
+ emptyImageSrc = "",
5767
+ isErrorTravelPlan = false,
5768
+ isErrorPort = false
5606
5769
  }) => {
5607
- const styles = useStyles11();
5770
+ const styles = useStyles12();
5608
5771
  const mergedLabels = { ...DEFAULT_LABELS10[language], ...labels };
5772
+ const isError = isErrorTravelPlan && isErrorPort;
5609
5773
  const handleSelect = (harbor) => {
5610
5774
  onAddLastSearched(harbor);
5611
5775
  onSelectHarbor(harbor);
@@ -5641,7 +5805,15 @@ var ModalSearchHarbor = ({
5641
5805
  children: title || mergedLabels.title
5642
5806
  }
5643
5807
  ),
5644
- /* @__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: [
5645
5817
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
5646
5818
  Input,
5647
5819
  {
@@ -5660,177 +5832,154 @@ var ModalSearchHarbor = ({
5660
5832
  }
5661
5833
  ) }),
5662
5834
  /* @__PURE__ */ jsxs("div", { className: styles.resultList, children: [
5663
- favoriteHarbors.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
5664
- /* @__PURE__ */ jsxs("div", { className: styles.headerRow, children: [
5665
- /* @__PURE__ */ jsx(Body1Strong, { children: mergedLabels.favoriteHeader }),
5666
- /* @__PURE__ */ jsx(
5667
- 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,
5668
5853
  {
5669
- className: mergeClasses(
5670
- styles.dangerText,
5671
- 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
+ }
5672
5866
  ),
5673
- onClick: onClearFavorite,
5674
- children: mergedLabels.clearAllButton
5675
- }
5676
- )
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
+ )) })
5677
5885
  ] }),
5678
- favoriteHarbors.length > 0 && /* @__PURE__ */ jsx("div", { className: styles.buttonContainer, children: favoriteHarbors.map((harbor) => /* @__PURE__ */ jsxs(
5679
- Button,
5680
- {
5681
- onClick: () => handleSelect(harbor),
5682
- size: "medium",
5683
- appearance: "subtle",
5684
- iconPosition: "before",
5685
- className: styles.circularButton,
5686
- icon: /* @__PURE__ */ jsx(
5687
- 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,
5688
5891
  {
5689
- icon: "fluent:vehicle-ship-20-regular",
5690
- fontSize: 20,
5691
- color: tokens.colorBrandBackground
5892
+ className: mergeClasses(
5893
+ styles.dangerText,
5894
+ styles.cursorPointer
5895
+ ),
5896
+ onClick: onClearLastSearched,
5897
+ children: mergedLabels.clearAllButton
5692
5898
  }
5693
- ),
5694
- children: [
5695
- /* @__PURE__ */ jsxs("div", { className: styles.buttonContent, children: [
5696
- /* @__PURE__ */ jsx(Body1, { children: harbor.portName }),
5697
- /* @__PURE__ */ jsx(Caption1, { children: harbor.branchName })
5698
- ] }),
5699
- /* @__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(
5700
5908
  Icon,
5701
5909
  {
5702
- icon: "fluent:star-24-filled",
5910
+ onClick: () => onRemoveLastSearched(harbor),
5911
+ icon: "fluent:dismiss-24-regular",
5703
5912
  fontSize: 20,
5704
- color: tokens.colorBrandBackground,
5705
- style: { marginLeft: 5 }
5913
+ className: styles.cursorPointer
5706
5914
  }
5707
- )
5708
- ]
5709
- },
5710
- harbor.portId
5711
- )) })
5712
- ] }),
5713
- lastSearchedHarbors.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
5714
- /* @__PURE__ */ jsxs("div", { className: styles.headerRow, children: [
5715
- /* @__PURE__ */ jsx(Body1Strong, { children: mergedLabels.lastSearchedHeader }),
5716
- /* @__PURE__ */ jsx(
5717
- Caption1,
5718
- {
5719
- className: mergeClasses(
5720
- styles.dangerText,
5721
- styles.cursorPointer
5722
5915
  ),
5723
- onClick: onClearLastSearched,
5724
- children: mergedLabels.clearAllButton
5725
- }
5726
- )
5916
+ showDivider: true
5917
+ },
5918
+ harbor.portId
5919
+ )) })
5727
5920
  ] }),
5728
- /* @__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(
5729
5955
  HarborListItem,
5730
5956
  {
5731
5957
  harbor,
5732
5958
  onSelect: handleSelect,
5733
- containerClassName: styles.historyItem,
5734
- trailingIcon: /* @__PURE__ */ jsx(
5959
+ containerClassName: styles.harborItem,
5960
+ trailingIcon: showButtonFavorite && /* @__PURE__ */ jsx(
5735
5961
  Icon,
5736
5962
  {
5737
- onClick: () => onRemoveLastSearched(harbor),
5738
- icon: "fluent:dismiss-24-regular",
5739
- fontSize: 20,
5740
- 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)
5741
5967
  }
5742
5968
  ),
5743
- showDivider: true
5744
- },
5745
- harbor.portId
5746
- )) })
5747
- ] }),
5748
- popularHarbors.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
5749
- /* @__PURE__ */ jsx("div", { className: styles.headerRow, children: /* @__PURE__ */ jsx(Body1Strong, { children: mergedLabels.popularHarborHeader }) }),
5750
- /* @__PURE__ */ jsx("div", { children: popularHarbors.map((harbor) => /* @__PURE__ */ jsx(
5751
- HarborListItem,
5752
- {
5753
- harbor,
5754
- onSelect: handleSelect,
5755
- containerClassName: styles.historyItem,
5756
- showDivider: true
5969
+ showDivider: index !== harbors.length - 1
5757
5970
  },
5758
- harbor.portId
5759
- )) })
5760
- ] }),
5761
- /* @__PURE__ */ jsx(Body1Strong, { className: styles.sectionTitle, children: mergedLabels.allHarborsHeader }),
5762
- /* @__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: [
5763
- /* @__PURE__ */ jsxs(
5764
- Skeleton,
5765
- {
5766
- style: {
5767
- display: "flex",
5768
- alignItems: "center",
5769
- gap: "0.5rem",
5770
- width: "70%"
5771
- },
5772
- children: [
5773
- /* @__PURE__ */ jsx(
5774
- SkeletonItem,
5775
- {
5776
- style: {
5777
- width: "24px",
5778
- height: "24px",
5779
- borderRadius: "4px"
5780
- }
5781
- }
5782
- ),
5783
- /* @__PURE__ */ jsx(
5784
- SkeletonItem,
5785
- {
5786
- style: {
5787
- width: "100%",
5788
- height: "20px",
5789
- borderRadius: "4px"
5790
- }
5791
- }
5792
- )
5793
- ]
5794
- }
5795
- ),
5796
- showButtonFavorite && /* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(
5797
- SkeletonItem,
5798
- {
5799
- style: {
5800
- width: "24px",
5801
- height: "24px",
5802
- borderRadius: "4px"
5803
- }
5804
- }
5805
- ) })
5806
- ] }, item)) }) : harbors.length > 0 ? harbors.map((harbor, index) => /* @__PURE__ */ jsx(
5807
- HarborListItem,
5808
- {
5809
- harbor,
5810
- onSelect: handleSelect,
5811
- containerClassName: styles.harborItem,
5812
- trailingIcon: showButtonFavorite && /* @__PURE__ */ jsx(
5813
- Icon,
5814
- {
5815
- icon: harbor.isFavorite ? "fluent:star-24-filled" : "fluent:star-24-regular",
5816
- color: tokens.colorBrandBackground,
5817
- className: styles.cursorPointer,
5818
- onClick: () => onToggleFavorite(harbor)
5819
- }
5820
- ),
5821
- showDivider: index !== harbors.length - 1
5822
- },
5823
- harbor.portId || index
5824
- )) : /* @__PURE__ */ jsx("div", { className: styles.emptyState, children: mergedLabels.harborNotFound }) })
5971
+ harbor.portId || index
5972
+ )) : /* @__PURE__ */ jsx("div", { className: styles.emptyState, children: mergedLabels.harborNotFound }) })
5973
+ ] })
5825
5974
  ] })
5826
- ] })
5975
+ ] }) })
5827
5976
  ] }) })
5828
5977
  }
5829
5978
  );
5830
5979
  };
5831
5980
 
5832
5981
  // src/components/ModalSelectDate/ModalSelectDate.constants.ts
5833
- var DEFAULT_LABELS11 = {
5982
+ var DEFAULT_LABELS12 = {
5834
5983
  id: {
5835
5984
  title: "Pilih Tanggal",
5836
5985
  oneWay: "Sekali Jalan",
@@ -5844,7 +5993,7 @@ var DEFAULT_LABELS11 = {
5844
5993
  closeAriaLabel: "Close"
5845
5994
  }
5846
5995
  };
5847
- var useStyles12 = makeStyles({
5996
+ var useStyles13 = makeStyles({
5848
5997
  dialogSurface: {
5849
5998
  maxWidth: "600px",
5850
5999
  width: "100%"
@@ -5964,8 +6113,8 @@ var ModalSelectDate = ({
5964
6113
  dateFormat = "DD MMMM YYYY",
5965
6114
  showRoundtrip = true
5966
6115
  }) => {
5967
- const styles = useStyles12();
5968
- const mergedLabels = { ...DEFAULT_LABELS11[language], ...labels };
6116
+ const styles = useStyles13();
6117
+ const mergedLabels = { ...DEFAULT_LABELS12[language], ...labels };
5969
6118
  useEffect(() => {
5970
6119
  moment.locale(language === "id" ? "id" : "en");
5971
6120
  }, [language]);
@@ -6188,14 +6337,15 @@ var ModalSelectDate = ({
6188
6337
  };
6189
6338
 
6190
6339
  // src/components/ModalService/ModalService.constants.ts
6191
- var DEFAULT_LABELS12 = {
6340
+ var DEFAULT_LABELS13 = {
6192
6341
  id: {
6193
6342
  title: "Pilih Kelas Layanan",
6194
6343
  loading: "Memuat...",
6195
6344
  error: "Gagal memuat layanan",
6196
6345
  selectAll: "Pilih Semua",
6197
6346
  saveButton: "Simpan",
6198
- closeAriaLabel: "Tutup"
6347
+ closeAriaLabel: "Tutup",
6348
+ emptyContent: "Kelas Layanan"
6199
6349
  },
6200
6350
  en: {
6201
6351
  title: "Select Service Class",
@@ -6203,10 +6353,11 @@ var DEFAULT_LABELS12 = {
6203
6353
  error: "Error loading services",
6204
6354
  selectAll: "Select All",
6205
6355
  saveButton: "Save",
6206
- closeAriaLabel: "Close"
6356
+ closeAriaLabel: "Close",
6357
+ emptyContent: "Service Class"
6207
6358
  }
6208
6359
  };
6209
- var useStyles13 = makeStyles({
6360
+ var useStyles14 = makeStyles({
6210
6361
  dialogSurface: {
6211
6362
  maxWidth: "600px",
6212
6363
  width: "100%"
@@ -6279,6 +6430,66 @@ var useStyles13 = makeStyles({
6279
6430
  borderRadius: tokens.borderRadiusCircular
6280
6431
  }
6281
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
+ };
6282
6493
  var ModalService = ({
6283
6494
  language = "id",
6284
6495
  labels,
@@ -6289,10 +6500,12 @@ var ModalService = ({
6289
6500
  selectedServiceIds,
6290
6501
  onSave,
6291
6502
  isLoading = false,
6292
- isError = false
6503
+ isError = false,
6504
+ reloadButton,
6505
+ emptyImageSrc = ""
6293
6506
  }) => {
6294
- const styles = useStyles13();
6295
- const mergedLabels = { ...DEFAULT_LABELS12[language], ...labels };
6507
+ const styles = useStyles14();
6508
+ const mergedLabels = { ...DEFAULT_LABELS13[language], ...labels };
6296
6509
  const displayTitle = title || mergedLabels.title;
6297
6510
  const [selectedServices, setSelectedServices] = useState(selectedServiceIds);
6298
6511
  useEffect(() => {
@@ -6347,7 +6560,15 @@ var ModalService = ({
6347
6560
  children: displayTitle
6348
6561
  }
6349
6562
  ),
6350
- /* @__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: [
6351
6572
  /* @__PURE__ */ jsxs("div", { className: styles.serviceList, children: [
6352
6573
  /* @__PURE__ */ jsxs("div", { className: styles.headerRow, children: [
6353
6574
  /* @__PURE__ */ jsx(Body1, { children: mergedLabels.selectAll }),
@@ -6397,23 +6618,25 @@ var ModalService = ({
6397
6618
  };
6398
6619
 
6399
6620
  // src/components/ModalTotalPassengers/ModalTotalPassengers.constants.ts
6400
- var DEFAULT_LABELS13 = {
6621
+ var DEFAULT_LABELS14 = {
6401
6622
  id: {
6402
6623
  title: "Pilih Jumlah Penumpang",
6403
6624
  infoMessage: "Anda dapat menambahkan hingga {maxPassengers} penumpang pada golongan kendaraan ini.",
6404
6625
  loading: "Memuat...",
6405
6626
  saveButton: "Simpan",
6406
- closeAriaLabel: "Tutup"
6627
+ closeAriaLabel: "Tutup",
6628
+ emptyContent: "Kelas Penumpang"
6407
6629
  },
6408
6630
  en: {
6409
6631
  title: "Select Total Passengers",
6410
6632
  infoMessage: "You can add up to {maxPassengers} passengers in this vehicle category.",
6411
6633
  loading: "Loading...",
6412
6634
  saveButton: "Save",
6413
- closeAriaLabel: "Close"
6635
+ closeAriaLabel: "Close",
6636
+ emptyContent: "Passengers Class"
6414
6637
  }
6415
6638
  };
6416
- var useStyles14 = makeStyles({
6639
+ var useStyles15 = makeStyles({
6417
6640
  dialogSurface: {
6418
6641
  maxWidth: "600px",
6419
6642
  width: "100%"
@@ -6480,6 +6703,62 @@ var useStyles14 = makeStyles({
6480
6703
  margin: 0
6481
6704
  }
6482
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
+ };
6483
6762
  var ModalTotalPassengers = ({
6484
6763
  language = "id",
6485
6764
  labels,
@@ -6490,11 +6769,14 @@ var ModalTotalPassengers = ({
6490
6769
  selectedPassengers,
6491
6770
  onSave,
6492
6771
  isLoading = false,
6772
+ isError = false,
6773
+ reloadButton,
6774
+ emptyImageSrc,
6493
6775
  maxPassengers = 10,
6494
6776
  infoMessage
6495
6777
  }) => {
6496
- const styles = useStyles14();
6497
- const mergedLabels = { ...DEFAULT_LABELS13[language], ...labels };
6778
+ const styles = useStyles15();
6779
+ const mergedLabels = { ...DEFAULT_LABELS14[language], ...labels };
6498
6780
  const [passengers, setPassengers] = useState([]);
6499
6781
  const [openItems, setOpenItems] = useState([]);
6500
6782
  const defaultInfoMessage = mergedLabels.infoMessage.replace(
@@ -6551,11 +6833,16 @@ var ModalTotalPassengers = ({
6551
6833
  (p) => p.passengerAgeCode === passengerAgeCode
6552
6834
  );
6553
6835
  if (!passenger) return 0;
6554
- const cls = passenger.classes.find(
6555
- (c) => c.classCode === classCode
6556
- );
6836
+ const cls = passenger.classes.find((c) => c.classCode === classCode);
6557
6837
  return cls?.count ?? 0;
6558
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
+ };
6559
6846
  const getTotalForType = (passengerAgeCode) => {
6560
6847
  const passenger = passengers.find(
6561
6848
  (p) => p.passengerAgeCode === passengerAgeCode
@@ -6610,10 +6897,7 @@ var ModalTotalPassengers = ({
6610
6897
  classes: passenger.classes.map((cls) => {
6611
6898
  if (cls.classCode === classCode && (cls.count ?? 0) > 0) {
6612
6899
  const newCount = (cls.count ?? 0) - 1;
6613
- const newPassengers = (cls.passengers || []).slice(
6614
- 0,
6615
- newCount
6616
- );
6900
+ const newPassengers = (cls.passengers || []).slice(0, newCount);
6617
6901
  return {
6618
6902
  ...cls,
6619
6903
  count: newCount,
@@ -6651,131 +6935,134 @@ var ModalTotalPassengers = ({
6651
6935
  children: title || mergedLabels.title
6652
6936
  }
6653
6937
  ),
6654
- /* @__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: [
6655
6947
  /* @__PURE__ */ jsx(MessageBar, { shape: "rounded", children: /* @__PURE__ */ jsx(MessageBarBody, { children: infoMessage || defaultInfoMessage }) }),
6656
- isLoading ? /* @__PURE__ */ jsx(Body1, { children: mergedLabels.loading }) : /* @__PURE__ */ jsxs(Fragment, { children: [
6657
- /* @__PURE__ */ jsx(
6658
- Accordion,
6659
- {
6660
- collapsible: true,
6661
- multiple: true,
6662
- openItems,
6663
- onToggle: (_, data) => setOpenItems(data.openItems),
6664
- className: styles.passengerSection,
6665
- children: passengerTypes.map((passengerType) => {
6666
- const classes = passengerType.classes || [];
6667
- return /* @__PURE__ */ jsxs(
6668
- AccordionItem,
6669
- {
6670
- value: String(passengerType.id),
6671
- className: styles.accordionItem,
6672
- children: [
6673
- /* @__PURE__ */ jsxs(
6674
- AccordionHeader,
6675
- {
6676
- className: styles.accordionHeader,
6677
- expandIconPosition: "end",
6678
- children: [
6679
- passengerType.passengerAgeName,
6680
- " (",
6681
- getTotalForType(passengerType.passengerAgeCode),
6682
- ")"
6683
- ]
6684
- }
6685
- ),
6686
- /* @__PURE__ */ jsx(AccordionPanel, { className: styles.accordionPanel, children: /* @__PURE__ */ jsx("div", { className: styles.nestedSection, children: classes.map((cls) => /* @__PURE__ */ jsxs(
6687
- "div",
6688
- {
6689
- className: styles.nestedRow,
6690
- children: [
6691
- /* @__PURE__ */ jsx(Body1, { children: (cls?.className || "")?.toUpperCase() }),
6692
- /* @__PURE__ */ jsxs("div", { className: styles.passengerCount, children: [
6693
- /* @__PURE__ */ jsx(
6694
- Button,
6695
- {
6696
- appearance: "outline",
6697
- className: styles.counterButton,
6698
- size: "small",
6699
- icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:subtract-12-regular" }),
6700
- onClick: (e) => {
6701
- e.stopPropagation();
6702
- handleDecrement(
6703
- passengerType.passengerAgeCode,
6704
- cls.classCode
6705
- );
6706
- },
6707
- disabled: getServiceCount(
6708
- passengerType.passengerAgeCode,
6709
- cls.classCode
6710
- ) === 0
6711
- }
6712
- ),
6713
- /* @__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(
6714
6990
  passengerType.passengerAgeCode,
6715
6991
  cls.classCode
6716
- ) }),
6717
- /* @__PURE__ */ jsx(
6718
- Button,
6719
- {
6720
- appearance: "outline",
6721
- className: styles.counterButton,
6722
- size: "small",
6723
- icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:add-12-regular" }),
6724
- disabled: getServiceCount(
6725
- passengerType.passengerAgeCode,
6726
- cls.classCode
6727
- ) >= cls.maxCapacity || totalPassengerCount >= maxPassengers,
6728
- onClick: (e) => {
6729
- e.stopPropagation();
6730
- handleIncrement(
6731
- passengerType.passengerAgeCode,
6732
- cls.classCode
6733
- );
6734
- }
6735
- }
6736
- )
6737
- ] })
6738
- ]
6739
- },
6740
- cls.id
6741
- )) }) })
6742
- ]
6743
- },
6744
- passengerType.id
6745
- );
6746
- })
6747
- }
6748
- ),
6749
- /* @__PURE__ */ jsx(
6750
- Button,
6751
- {
6752
- appearance: "primary",
6753
- size: "medium",
6754
- className: styles.submitButton,
6755
- onClick: handleSave,
6756
- children: mergedLabels.saveButton
6757
- }
6758
- )
6759
- ] })
6760
- ] })
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
+ ] }) })
6761
7046
  ] }) }) });
6762
7047
  };
6763
7048
 
6764
7049
  // src/components/ModalTypeOfService/ModalTypeOfService.constants.ts
6765
- var DEFAULT_LABELS14 = {
7050
+ var DEFAULT_LABELS15 = {
6766
7051
  id: {
6767
- title: "Pilih Tipe Layanan",
7052
+ title: "Pilih Jenis Layanan",
6768
7053
  cancelButton: "Batal",
6769
7054
  saveButton: "Simpan",
6770
7055
  vehiclesAlt: "kendaraan",
6771
- closeAriaLabel: "Tutup"
7056
+ closeAriaLabel: "Tutup",
7057
+ emptyContent: "Jenis Layanan"
6772
7058
  },
6773
7059
  en: {
6774
7060
  title: "Select Service Type",
6775
7061
  cancelButton: "Cancel",
6776
7062
  saveButton: "Save",
6777
7063
  vehiclesAlt: "vehicles",
6778
- closeAriaLabel: "Close"
7064
+ closeAriaLabel: "Close",
7065
+ emptyContent: "Service Type"
6779
7066
  }
6780
7067
  };
6781
7068
  var DEFAULT_VEHICLE_ICONS = {
@@ -6790,7 +7077,7 @@ var DEFAULT_VEHICLE_ICONS = {
6790
7077
  bigTruck: "/assets/images/icons/big-truck.webp",
6791
7078
  looseLoad: "/assets/images/icons/loose-load.webp"
6792
7079
  };
6793
- var useStyles15 = makeStyles({
7080
+ var useStyles16 = makeStyles({
6794
7081
  dialogSurface: {
6795
7082
  maxWidth: "600px",
6796
7083
  width: "100%"
@@ -6833,6 +7120,89 @@ var useStyles15 = makeStyles({
6833
7120
  justifyContent: "flex-end"
6834
7121
  }
6835
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
+ };
6836
7206
  var ModalTypeOfService = ({
6837
7207
  language = "id",
6838
7208
  labels,
@@ -6842,10 +7212,14 @@ var ModalTypeOfService = ({
6842
7212
  serviceTypes,
6843
7213
  selectedService,
6844
7214
  onSave,
6845
- renderImage
7215
+ renderImage,
7216
+ isLoading = false,
7217
+ isError = false,
7218
+ reloadButton,
7219
+ emptyImageSrc = ""
6846
7220
  }) => {
6847
- const styles = useStyles15();
6848
- const mergedLabels = { ...DEFAULT_LABELS14[language], ...labels };
7221
+ const styles = useStyles16();
7222
+ const mergedLabels = { ...DEFAULT_LABELS15[language], ...labels };
6849
7223
  const [selectedServiceId, setSelectedServiceId] = useState(
6850
7224
  selectedService?.id || 0
6851
7225
  );
@@ -6958,7 +7332,15 @@ var ModalTypeOfService = ({
6958
7332
  children: title || mergedLabels.title
6959
7333
  }
6960
7334
  ),
6961
- /* @__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: [
6962
7344
  /* @__PURE__ */ jsx(
6963
7345
  Accordion,
6964
7346
  {
@@ -7005,7 +7387,9 @@ var ModalTypeOfService = ({
7005
7387
  styles.accordionHeader,
7006
7388
  styles.accordionItem
7007
7389
  ),
7008
- style: { padding: tokens.spacingHorizontalXS },
7390
+ style: {
7391
+ padding: tokens.spacingHorizontalXS
7392
+ },
7009
7393
  children: [
7010
7394
  /* @__PURE__ */ jsx("div", { children: imageRenderer({
7011
7395
  src: childItem.image,
@@ -7013,10 +7397,16 @@ var ModalTypeOfService = ({
7013
7397
  width: 48,
7014
7398
  height: 48
7015
7399
  }) }),
7016
- /* @__PURE__ */ jsxs("div", { className: styles.accordionTitleAndInfo, children: [
7017
- /* @__PURE__ */ jsx(Body1, { children: childItem.title }),
7018
- /* @__PURE__ */ jsx(Caption1, { children: childItem.info })
7019
- ] }),
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
+ ),
7020
7410
  /* @__PURE__ */ jsx(Radio, { value: String(childItem.id) })
7021
7411
  ]
7022
7412
  },
@@ -7066,7 +7456,15 @@ var ModalTypeOfService = ({
7066
7456
  }
7067
7457
  ),
7068
7458
  /* @__PURE__ */ jsxs("div", { className: styles.footer, children: [
7069
- /* @__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
+ ),
7070
7468
  /* @__PURE__ */ jsx(
7071
7469
  Button,
7072
7470
  {
@@ -7078,12 +7476,12 @@ var ModalTypeOfService = ({
7078
7476
  }
7079
7477
  )
7080
7478
  ] })
7081
- ] })
7479
+ ] }) })
7082
7480
  ] }) }) });
7083
7481
  };
7084
7482
 
7085
7483
  // src/components/SortMenu/SortMenu.constants.ts
7086
- var DEFAULT_LABELS15 = {
7484
+ var DEFAULT_LABELS16 = {
7087
7485
  id: {
7088
7486
  filterButtonText: "Filter",
7089
7487
  sortButtonText: "Urutkan Berdasarkan",
@@ -7125,7 +7523,7 @@ var getSortLabel = (value) => {
7125
7523
  const option = DEFAULT_SORT_OPTIONS.find((opt) => opt.value === value);
7126
7524
  return option?.label || "Rekomendasi";
7127
7525
  };
7128
- var useStyles16 = makeStyles({
7526
+ var useStyles17 = makeStyles({
7129
7527
  container: {
7130
7528
  display: "flex",
7131
7529
  width: "100%",
@@ -7161,10 +7559,10 @@ var SortMenu = ({
7161
7559
  sortButtonText: deprecatedSortButtonText,
7162
7560
  clearFiltersText: deprecatedClearFiltersText
7163
7561
  }) => {
7164
- const styles = useStyles16();
7562
+ const styles = useStyles17();
7165
7563
  const labels = React.useMemo(
7166
7564
  () => ({
7167
- ...DEFAULT_LABELS15[language],
7565
+ ...DEFAULT_LABELS16[language],
7168
7566
  ...customLabels,
7169
7567
  // Fallback to deprecated props if provided
7170
7568
  ...deprecatedFilterButtonText && {
@@ -7276,7 +7674,7 @@ var SortMenu = ({
7276
7674
  };
7277
7675
 
7278
7676
  // src/components/ModalFilterTicket/ModalFilterTicket.constants.ts
7279
- var DEFAULT_LABELS16 = {
7677
+ var DEFAULT_LABELS17 = {
7280
7678
  id: {
7281
7679
  title: "Filter dengan",
7282
7680
  serviceTypeLabel: "Jenis Layanan",
@@ -7337,7 +7735,7 @@ var DEFAULT_DURATION_RANGE = {
7337
7735
  min: 0,
7338
7736
  max: 8
7339
7737
  };
7340
- var useStyles17 = makeStyles({
7738
+ var useStyles18 = makeStyles({
7341
7739
  dialogSurface: {
7342
7740
  maxWidth: "600px",
7343
7741
  width: "100%"
@@ -7447,8 +7845,8 @@ var ModalFilterTicket = ({
7447
7845
  minDuration = DEFAULT_DURATION_RANGE.min,
7448
7846
  maxDuration = DEFAULT_DURATION_RANGE.max
7449
7847
  }) => {
7450
- const styles = useStyles17();
7451
- const mergedLabels = { ...DEFAULT_LABELS16[language], ...labels };
7848
+ const styles = useStyles18();
7849
+ const mergedLabels = { ...DEFAULT_LABELS17[language], ...labels };
7452
7850
  const [rangeReady, setRangeReady] = useState(false);
7453
7851
  useEffect(() => {
7454
7852
  if (open) {
@@ -7758,7 +8156,7 @@ var ModalFilterTicket = ({
7758
8156
  };
7759
8157
 
7760
8158
  // src/components/DateFilter/DateFilter.constants.ts
7761
- var DEFAULT_LABELS17 = {
8159
+ var DEFAULT_LABELS18 = {
7762
8160
  id: {
7763
8161
  prevButtonAriaLabel: "Tanggal sebelumnya",
7764
8162
  nextButtonAriaLabel: "Tanggal berikutnya",
@@ -7771,7 +8169,7 @@ var DEFAULT_LABELS17 = {
7771
8169
  }
7772
8170
  };
7773
8171
  var DEFAULT_SCROLL_AMOUNT = 150;
7774
- var useStyles18 = makeStyles({
8172
+ var useStyles19 = makeStyles({
7775
8173
  container: {
7776
8174
  display: "flex",
7777
8175
  alignItems: "stretch",
@@ -7854,10 +8252,10 @@ var DateFilter = ({
7854
8252
  labels,
7855
8253
  isLoading = false
7856
8254
  }) => {
7857
- const styles = useStyles18();
8255
+ const styles = useStyles19();
7858
8256
  const scrollRef = useRef(null);
7859
8257
  const mergedLabels = {
7860
- ...DEFAULT_LABELS17[language],
8258
+ ...DEFAULT_LABELS18[language],
7861
8259
  ...labels
7862
8260
  };
7863
8261
  const handlePrev = () => {
@@ -7920,7 +8318,7 @@ var DateFilter = ({
7920
8318
  };
7921
8319
 
7922
8320
  // src/components/ModalSearchTicket/ModalSearchTicket.constants.ts
7923
- var DEFAULT_LABELS18 = {
8321
+ var DEFAULT_LABELS19 = {
7924
8322
  id: {
7925
8323
  title: "Cari Jadwal Lainnya",
7926
8324
  fromLabel: "Dari",
@@ -7980,7 +8378,7 @@ var DEFAULT_FORM_VALUES = {
7980
8378
  typeOfService: "",
7981
8379
  passenger: ""
7982
8380
  };
7983
- var useStyles19 = makeStyles({
8381
+ var useStyles20 = makeStyles({
7984
8382
  dialogSurface: {
7985
8383
  maxWidth: "900px",
7986
8384
  width: "100%"
@@ -8082,8 +8480,8 @@ var ModalSearchTicket = ({
8082
8480
  showRoundTrip = true,
8083
8481
  ...props
8084
8482
  }) => {
8085
- const styles = useStyles19();
8086
- const mergedLabels = { ...DEFAULT_LABELS18[language], ...labels };
8483
+ const styles = useStyles20();
8484
+ const mergedLabels = { ...DEFAULT_LABELS19[language], ...labels };
8087
8485
  const { control, setValue, handleSubmit, watch } = useForm({
8088
8486
  defaultValues: {
8089
8487
  ...DEFAULT_FORM_VALUES,
@@ -8520,7 +8918,7 @@ var ModalSearchTicket = ({
8520
8918
  };
8521
8919
 
8522
8920
  // src/components/Stepper/Stepper.constants.ts
8523
- var DEFAULT_LABELS19 = {
8921
+ var DEFAULT_LABELS20 = {
8524
8922
  id: {
8525
8923
  stepperBackgroundAlt: "Latar Belakang Stepper",
8526
8924
  ferryIconAlt: "Ikon Kapal"
@@ -8530,7 +8928,7 @@ var DEFAULT_LABELS19 = {
8530
8928
  ferryIconAlt: "Ferry Icon"
8531
8929
  }
8532
8930
  };
8533
- var useStyles20 = makeStyles({
8931
+ var useStyles21 = makeStyles({
8534
8932
  stepperWrapper: {
8535
8933
  position: "relative",
8536
8934
  width: "100%",
@@ -8655,8 +9053,8 @@ var Stepper = ({
8655
9053
  language = "id",
8656
9054
  labels
8657
9055
  }) => {
8658
- const styles = useStyles20();
8659
- const mergedLabels = { ...DEFAULT_LABELS19[language], ...labels };
9056
+ const styles = useStyles21();
9057
+ const mergedLabels = { ...DEFAULT_LABELS20[language], ...labels };
8660
9058
  const currentStepIndex = useMemo(() => {
8661
9059
  if (typeof currentStep === "number") {
8662
9060
  return steps.findIndex((step) => step.number === currentStep);
@@ -8712,7 +9110,7 @@ var Stepper = ({
8712
9110
  };
8713
9111
 
8714
9112
  // src/components/CardOrdererInfo/CardOrdererInfo.constants.ts
8715
- var DEFAULT_LABELS20 = {
9113
+ var DEFAULT_LABELS21 = {
8716
9114
  id: {
8717
9115
  title: "Informasi Pemesan",
8718
9116
  ordererName: "Nama Pemesan",
@@ -8726,7 +9124,7 @@ var DEFAULT_LABELS20 = {
8726
9124
  email: "Email"
8727
9125
  }
8728
9126
  };
8729
- var useStyles21 = makeStyles({
9127
+ var useStyles22 = makeStyles({
8730
9128
  card: {
8731
9129
  padding: "1.5rem",
8732
9130
  borderRadius: tokens.borderRadiusXLarge,
@@ -8756,8 +9154,8 @@ var CardOrdererInfo = ({
8756
9154
  labels,
8757
9155
  className
8758
9156
  }) => {
8759
- const styles = useStyles21();
8760
- const mergedLabels = { ...DEFAULT_LABELS20[language], ...labels };
9157
+ const styles = useStyles22();
9158
+ const mergedLabels = { ...DEFAULT_LABELS21[language], ...labels };
8761
9159
  return /* @__PURE__ */ jsxs(Card, { className: className || styles.card, children: [
8762
9160
  /* @__PURE__ */ jsx(Title3, { children: mergedLabels.title }),
8763
9161
  /* @__PURE__ */ jsxs("div", { className: styles.container, children: [
@@ -8778,7 +9176,7 @@ var CardOrdererInfo = ({
8778
9176
  };
8779
9177
 
8780
9178
  // src/components/ModalListPassenger/ModalListPassenger.constants.ts
8781
- var DEFAULT_LABELS21 = {
9179
+ var DEFAULT_LABELS22 = {
8782
9180
  id: {
8783
9181
  title: "Detail Penumpang",
8784
9182
  // sameAsOrderer: 'Sama Dengan Pemesan',
@@ -8808,7 +9206,7 @@ var DEFAULT_LABELS21 = {
8808
9206
  }
8809
9207
  }
8810
9208
  };
8811
- var useStyles22 = makeStyles({
9209
+ var useStyles23 = makeStyles({
8812
9210
  dialogSurface: {
8813
9211
  maxWidth: "600px",
8814
9212
  width: "100%",
@@ -8863,8 +9261,8 @@ var ModalListPassenger = ({
8863
9261
  // sameAsOrderer,
8864
9262
  // onSameAsOrdererChange,
8865
9263
  }) => {
8866
- const styles = useStyles22();
8867
- const mergedLabels = { ...DEFAULT_LABELS21[language], ...labels };
9264
+ const styles = useStyles23();
9265
+ const mergedLabels = { ...DEFAULT_LABELS22[language], ...labels };
8868
9266
  const displayTitle = title || mergedLabels.title;
8869
9267
  const handleClose = () => {
8870
9268
  onClose();
@@ -8995,7 +9393,7 @@ var ModalListPassenger = ({
8995
9393
  };
8996
9394
 
8997
9395
  // src/components/ModalPassengerForm/ModalPassengerForm.constants.ts
8998
- var DEFAULT_LABELS22 = {
9396
+ var DEFAULT_LABELS23 = {
8999
9397
  id: {
9000
9398
  title: "Detail Penumpang",
9001
9399
  titleLabel: "Title",
@@ -9146,7 +9544,7 @@ var calculateAge = (birthDate) => {
9146
9544
  }
9147
9545
  return { years: Math.max(0, years), months: Math.max(0, months) };
9148
9546
  };
9149
- var useStyles23 = makeStyles({
9547
+ var useStyles24 = makeStyles({
9150
9548
  dialogSurface: {
9151
9549
  maxWidth: "600px",
9152
9550
  width: "100%",
@@ -9326,10 +9724,10 @@ var ModalPassengerForm = ({
9326
9724
  ticketClassOptions,
9327
9725
  onScanComplete
9328
9726
  }) => {
9329
- const styles = useStyles23();
9330
- const mergedLabels = { ...DEFAULT_LABELS22[language], ...labels };
9727
+ const styles = useStyles24();
9728
+ const mergedLabels = { ...DEFAULT_LABELS23[language], ...labels };
9331
9729
  const mergedErrors = {
9332
- ...DEFAULT_LABELS22[language].errors,
9730
+ ...DEFAULT_LABELS23[language].errors,
9333
9731
  ...labels?.errors
9334
9732
  };
9335
9733
  const displayTitle = title || mergedLabels.title;
@@ -10061,7 +10459,7 @@ var ModalPassengerForm = ({
10061
10459
  };
10062
10460
 
10063
10461
  // src/components/CardPassengerList/CardPassengerList.constants.ts
10064
- var DEFAULT_LABELS23 = {
10462
+ var DEFAULT_LABELS24 = {
10065
10463
  id: {
10066
10464
  defaultTitle: "Data Penumpang",
10067
10465
  passengerPrefix: "Penumpang"
@@ -10104,7 +10502,7 @@ var getBadgeConfig = (ticketClass) => {
10104
10502
  };
10105
10503
  }
10106
10504
  };
10107
- var useStyles24 = makeStyles({
10505
+ var useStyles25 = makeStyles({
10108
10506
  card: {
10109
10507
  padding: "1.5rem",
10110
10508
  borderRadius: tokens.borderRadiusXLarge,
@@ -10187,8 +10585,8 @@ var CardPassengerList = ({
10187
10585
  labels,
10188
10586
  className
10189
10587
  }) => {
10190
- const styles = useStyles24();
10191
- const mergedLabels = { ...DEFAULT_LABELS23[language], ...labels };
10588
+ const styles = useStyles25();
10589
+ const mergedLabels = { ...DEFAULT_LABELS24[language], ...labels };
10192
10590
  const displayTitle = title || mergedLabels.defaultTitle;
10193
10591
  return /* @__PURE__ */ jsxs(Card, { className: className || styles.card, children: [
10194
10592
  /* @__PURE__ */ jsxs("div", { className: styles.headerContainer, children: [
@@ -10261,7 +10659,7 @@ var CardPassengerList = ({
10261
10659
  };
10262
10660
 
10263
10661
  // src/components/CardVehicleDetail/CardVehicleDetail.constants.ts
10264
- var DEFAULT_LABELS24 = {
10662
+ var DEFAULT_LABELS25 = {
10265
10663
  id: {
10266
10664
  title: "Detail Kendaraan",
10267
10665
  vehicleNumberLabel: "Nomor Kendaraan",
@@ -10279,7 +10677,7 @@ var DEFAULT_LABELS24 = {
10279
10677
  noLabel: "No"
10280
10678
  }
10281
10679
  };
10282
- var useStyles25 = makeStyles({
10680
+ var useStyles26 = makeStyles({
10283
10681
  card: {
10284
10682
  padding: "1.5rem",
10285
10683
  borderRadius: tokens.borderRadiusXLarge,
@@ -10319,8 +10717,8 @@ var CardVehicleDetail = ({
10319
10717
  language = "id",
10320
10718
  labels
10321
10719
  }) => {
10322
- const styles = useStyles25();
10323
- const mergedLabels = { ...DEFAULT_LABELS24[language], ...labels };
10720
+ const styles = useStyles26();
10721
+ const mergedLabels = { ...DEFAULT_LABELS25[language], ...labels };
10324
10722
  return /* @__PURE__ */ jsxs(Card, { className: styles.card, children: [
10325
10723
  /* @__PURE__ */ jsxs(
10326
10724
  "div",
@@ -10382,7 +10780,7 @@ var CardVehicleDetail = ({
10382
10780
  };
10383
10781
 
10384
10782
  // src/components/CardVehicleOwnerForm/CardVehicleOwnerForm.constants.ts
10385
- var DEFAULT_LABELS25 = {
10783
+ var DEFAULT_LABELS26 = {
10386
10784
  id: {
10387
10785
  title: "Informasi Pemilik & Muatan",
10388
10786
  addOwnerButton: "Tambah Pemilik",
@@ -10490,7 +10888,7 @@ var DEFAULT_LABELS25 = {
10490
10888
  incrementQuantityAriaLabel: "Increase quantity"
10491
10889
  }
10492
10890
  };
10493
- var useStyles26 = makeStyles({
10891
+ var useStyles27 = makeStyles({
10494
10892
  card: {
10495
10893
  padding: "1.5rem",
10496
10894
  borderRadius: tokens.borderRadiusXLarge,
@@ -10558,8 +10956,8 @@ var CardVehicleOwnerForm = ({
10558
10956
  language = "id",
10559
10957
  labels
10560
10958
  }) => {
10561
- const styles = useStyles26();
10562
- const mergedLabels = { ...DEFAULT_LABELS25[language], ...labels };
10959
+ const styles = useStyles27();
10960
+ const mergedLabels = { ...DEFAULT_LABELS26[language], ...labels };
10563
10961
  return /* @__PURE__ */ jsxs(Card, { className: styles.card, children: [
10564
10962
  /* @__PURE__ */ jsxs("div", { className: styles.header, children: [
10565
10963
  /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", flex: 1 }, children: [
@@ -11347,7 +11745,7 @@ var CardVehicleOwnerForm = ({
11347
11745
  };
11348
11746
 
11349
11747
  // src/components/CardBookingTicket/CardBookingTicket.constants.ts
11350
- var DEFAULT_LABELS26 = {
11748
+ var DEFAULT_LABELS27 = {
11351
11749
  id: {
11352
11750
  bookingDetails: "Booking Details",
11353
11751
  routeTitle: "Rute Perjalanan",
@@ -11383,7 +11781,7 @@ var DEFAULT_LABELS26 = {
11383
11781
  cancelDialogDismiss: "Cancel"
11384
11782
  }
11385
11783
  };
11386
- var useStyles27 = makeStyles({
11784
+ var useStyles28 = makeStyles({
11387
11785
  container: {
11388
11786
  display: "flex",
11389
11787
  flexDirection: "column",
@@ -11547,8 +11945,8 @@ var CardBookingTicket = ({
11547
11945
  onPrevious,
11548
11946
  className
11549
11947
  }) => {
11550
- const styles = useStyles27();
11551
- const mergedLabels = { ...DEFAULT_LABELS26[language], ...labels };
11948
+ const styles = useStyles28();
11949
+ const mergedLabels = { ...DEFAULT_LABELS27[language], ...labels };
11552
11950
  const [cancelDialogOpen, setCancelDialogOpen] = useState(false);
11553
11951
  return /* @__PURE__ */ jsx("div", { className: `${styles.container} ${className || ""}`, children: /* @__PURE__ */ jsxs("div", { className: styles.bookingDetail, children: [
11554
11952
  /* @__PURE__ */ jsxs(Card, { className: styles.bookingDetailTop, children: [
@@ -11750,7 +12148,7 @@ var CardBookingTicket = ({
11750
12148
  };
11751
12149
 
11752
12150
  // src/components/CardFAQ/CardFAQ.constants.ts
11753
- var DEFAULT_LABELS27 = {
12151
+ var DEFAULT_LABELS28 = {
11754
12152
  id: {
11755
12153
  title: "Pertanyaan yang sering diajukan"
11756
12154
  },
@@ -11804,7 +12202,7 @@ var DEFAULT_FAQ_ITEMS = {
11804
12202
  }
11805
12203
  ]
11806
12204
  };
11807
- var useStyles28 = makeStyles({
12205
+ var useStyles29 = makeStyles({
11808
12206
  faqSection: {
11809
12207
  // marginTop: '2rem', // Let parent control spacing if needed, or keep consistent
11810
12208
  },
@@ -11828,8 +12226,8 @@ var CardFAQ = ({
11828
12226
  items,
11829
12227
  className
11830
12228
  }) => {
11831
- const styles = useStyles28();
11832
- const mergedLabels = { ...DEFAULT_LABELS27[language], ...labels };
12229
+ const styles = useStyles29();
12230
+ const mergedLabels = { ...DEFAULT_LABELS28[language], ...labels };
11833
12231
  const faqItems = items || DEFAULT_FAQ_ITEMS[language];
11834
12232
  return /* @__PURE__ */ jsxs(Card, { className: styles.faqCard, children: [
11835
12233
  /* @__PURE__ */ jsx(Subtitle1, { children: mergedLabels.title }),
@@ -11866,7 +12264,7 @@ var CardFAQ = ({
11866
12264
  };
11867
12265
 
11868
12266
  // src/components/CardAddon/CardAddon.constants.ts
11869
- var DEFAULT_LABELS28 = {
12267
+ var DEFAULT_LABELS29 = {
11870
12268
  id: {
11871
12269
  viewDetail: "Lihat detail",
11872
12270
  totalPrice: "Total Harga",
@@ -11882,7 +12280,7 @@ var DEFAULT_LABELS28 = {
11882
12280
  currencySymbol: "Rp"
11883
12281
  }
11884
12282
  };
11885
- var useStyles29 = makeStyles({
12283
+ var useStyles30 = makeStyles({
11886
12284
  card: {
11887
12285
  backgroundColor: tokens.colorNeutralBackground1,
11888
12286
  boxShadow: tokens.shadow4,
@@ -12055,8 +12453,8 @@ var CardAddon = ({
12055
12453
  children,
12056
12454
  className
12057
12455
  }) => {
12058
- const styles = useStyles29();
12059
- const mergedLabels = { ...DEFAULT_LABELS28[language], ...labels };
12456
+ const styles = useStyles30();
12457
+ const mergedLabels = { ...DEFAULT_LABELS29[language], ...labels };
12060
12458
  return /* @__PURE__ */ jsx(Card, { className: `${styles.card} ${className || ""}`, children: /* @__PURE__ */ jsxs("div", { className: styles.gapRow, children: [
12061
12459
  /* @__PURE__ */ jsxs("div", { className: styles.titleDivider, children: [
12062
12460
  /* @__PURE__ */ jsx(Title3, { className: styles.textTitle, children: title }),
@@ -12267,7 +12665,7 @@ var CardAddon = ({
12267
12665
  };
12268
12666
 
12269
12667
  // src/components/CardMealCatalog/CardMealCatalog.constants.ts
12270
- var DEFAULT_LABELS29 = {
12668
+ var DEFAULT_LABELS30 = {
12271
12669
  id: {
12272
12670
  addButton: "Tambah",
12273
12671
  currencySymbol: "Rp",
@@ -12283,7 +12681,7 @@ var DEFAULT_LABELS29 = {
12283
12681
  searchPlaceholder: "Search for food or drinks you want"
12284
12682
  }
12285
12683
  };
12286
- var useStyles30 = makeStyles({
12684
+ var useStyles31 = makeStyles({
12287
12685
  container: {
12288
12686
  display: "flex",
12289
12687
  flexDirection: "column",
@@ -12427,8 +12825,8 @@ var CardMealCatalog = ({
12427
12825
  searchValue,
12428
12826
  onSearchChange
12429
12827
  }) => {
12430
- const styles = useStyles30();
12431
- const mergedLabels = { ...DEFAULT_LABELS29[language], ...labels };
12828
+ const styles = useStyles31();
12829
+ const mergedLabels = { ...DEFAULT_LABELS30[language], ...labels };
12432
12830
  return /* @__PURE__ */ jsxs("div", { className: `${styles.container} ${className || ""}`, children: [
12433
12831
  /* @__PURE__ */ jsxs("div", { className: styles.banner, children: [
12434
12832
  /* @__PURE__ */ jsx("div", { className: styles.bannerOverlay }),
@@ -12533,7 +12931,7 @@ var CardMealCatalog = ({
12533
12931
  };
12534
12932
 
12535
12933
  // src/components/CardReview/CardReview.constants.ts
12536
- var DEFAULT_LABELS30 = {
12934
+ var DEFAULT_LABELS31 = {
12537
12935
  id: {
12538
12936
  defaultTitle: "Tinjauan"
12539
12937
  },
@@ -12541,7 +12939,7 @@ var DEFAULT_LABELS30 = {
12541
12939
  defaultTitle: "Review"
12542
12940
  }
12543
12941
  };
12544
- var useStyles31 = makeStyles({
12942
+ var useStyles32 = makeStyles({
12545
12943
  card: {
12546
12944
  padding: "1.5rem",
12547
12945
  borderRadius: tokens.borderRadiusXLarge,
@@ -12592,8 +12990,8 @@ var CardReview = ({
12592
12990
  className,
12593
12991
  headerAction
12594
12992
  }) => {
12595
- const styles = useStyles31();
12596
- const mergedLabels = { ...DEFAULT_LABELS30[language], ...labels };
12993
+ const styles = useStyles32();
12994
+ const mergedLabels = { ...DEFAULT_LABELS31[language], ...labels };
12597
12995
  return /* @__PURE__ */ jsxs(Card, { className: `${styles.card} ${className || ""}`, children: [
12598
12996
  /* @__PURE__ */ jsxs("div", { className: styles.headerContainer, children: [
12599
12997
  /* @__PURE__ */ jsx(Subtitle1, { className: styles.headerTitle, children: title || mergedLabels.defaultTitle }),
@@ -12640,7 +13038,7 @@ var CardReview = ({
12640
13038
  };
12641
13039
 
12642
13040
  // src/components/CardReviewPassenger/CardReviewPassenger.constants.ts
12643
- var DEFAULT_LABELS31 = {
13041
+ var DEFAULT_LABELS32 = {
12644
13042
  id: {
12645
13043
  title: "Penumpang",
12646
13044
  idNumber: "Nomor ID"
@@ -12650,7 +13048,7 @@ var DEFAULT_LABELS31 = {
12650
13048
  idNumber: "ID Number"
12651
13049
  }
12652
13050
  };
12653
- var useStyles32 = makeStyles({
13051
+ var useStyles33 = makeStyles({
12654
13052
  card: {
12655
13053
  padding: "1.5rem",
12656
13054
  borderRadius: tokens.borderRadiusXLarge,
@@ -12748,8 +13146,8 @@ var CardReviewPassenger = ({
12748
13146
  passengers,
12749
13147
  className
12750
13148
  }) => {
12751
- const styles = useStyles32();
12752
- const mergedLabels = { ...DEFAULT_LABELS31[language], ...labels };
13149
+ const styles = useStyles33();
13150
+ const mergedLabels = { ...DEFAULT_LABELS32[language], ...labels };
12753
13151
  const displayTitle = title || mergedLabels.title;
12754
13152
  return /* @__PURE__ */ jsxs(Card, { className: `${styles.card} ${className || ""}`, children: [
12755
13153
  /* @__PURE__ */ jsxs("div", { className: styles.headerContainer, children: [
@@ -12792,7 +13190,7 @@ var CardReviewPassenger = ({
12792
13190
  };
12793
13191
 
12794
13192
  // src/components/CardPriceDetails/CardPriceDetails.constants.ts
12795
- var DEFAULT_LABELS32 = {
13193
+ var DEFAULT_LABELS33 = {
12796
13194
  id: {
12797
13195
  defaultTitle: "Rincian Harga",
12798
13196
  totalPayment: "Total Pembayaran",
@@ -12828,7 +13226,7 @@ var DEFAULT_LABELS32 = {
12828
13226
  currencyPrefix: "Rp. "
12829
13227
  }
12830
13228
  };
12831
- var useStyles33 = makeStyles({
13229
+ var useStyles34 = makeStyles({
12832
13230
  list: {
12833
13231
  margin: 0,
12834
13232
  padding: 0,
@@ -12850,7 +13248,7 @@ var PriceDetailsTerms = ({
12850
13248
  language = "id",
12851
13249
  labels
12852
13250
  }) => {
12853
- const styles = useStyles33();
13251
+ const styles = useStyles34();
12854
13252
  const linkColor = tokens.colorBrandBackground;
12855
13253
  const bookingTerms = labels.bookingTerms;
12856
13254
  const agreementTerms = [
@@ -12870,7 +13268,7 @@ var PriceDetailsTerms = ({
12870
13268
  ] })
12871
13269
  ] });
12872
13270
  };
12873
- var useStyles34 = makeStyles({
13271
+ var useStyles35 = makeStyles({
12874
13272
  card: {
12875
13273
  padding: "1.5rem",
12876
13274
  borderRadius: tokens.borderRadiusXLarge,
@@ -12947,8 +13345,8 @@ var CardPriceDetails = ({
12947
13345
  total,
12948
13346
  labels
12949
13347
  }) => {
12950
- const styles = useStyles34();
12951
- const mergedLabels = { ...DEFAULT_LABELS32[language], ...labels };
13348
+ const styles = useStyles35();
13349
+ const mergedLabels = { ...DEFAULT_LABELS33[language], ...labels };
12952
13350
  const displayTitle = title || mergedLabels.defaultTitle;
12953
13351
  const getVariantClass = (variant) => {
12954
13352
  switch (variant) {
@@ -13007,7 +13405,7 @@ var CardPriceDetails = ({
13007
13405
  };
13008
13406
 
13009
13407
  // src/components/CardPaymentMethodList/CardPaymentMethodList.constants.ts
13010
- var DEFAULT_LABELS33 = {
13408
+ var DEFAULT_LABELS34 = {
13011
13409
  id: {
13012
13410
  selectAriaLabel: "Pilih metode pembayaran"
13013
13411
  },
@@ -13015,7 +13413,7 @@ var DEFAULT_LABELS33 = {
13015
13413
  selectAriaLabel: "Select payment method"
13016
13414
  }
13017
13415
  };
13018
- var useStyles35 = makeStyles({
13416
+ var useStyles36 = makeStyles({
13019
13417
  container: {
13020
13418
  display: "flex",
13021
13419
  flexDirection: "column",
@@ -13075,8 +13473,8 @@ var CardPaymentMethodList = ({
13075
13473
  selectedValue,
13076
13474
  onSelect
13077
13475
  }) => {
13078
- const styles = useStyles35();
13079
- const mergedLabels = { ...DEFAULT_LABELS33[language], ...labels };
13476
+ const styles = useStyles36();
13477
+ const mergedLabels = { ...DEFAULT_LABELS34[language], ...labels };
13080
13478
  return /* @__PURE__ */ jsx("div", { className: styles.card, children: /* @__PURE__ */ jsx("div", { className: `${styles.container}`, children: methods.map((category, index) => /* @__PURE__ */ jsxs("div", { children: [
13081
13479
  index > 0 && /* @__PURE__ */ jsx("div", { className: styles.dividerContainer, children: /* @__PURE__ */ jsx(Divider, {}) }),
13082
13480
  /* @__PURE__ */ jsx(Accordion, { multiple: true, collapsible: true, children: /* @__PURE__ */ jsxs(AccordionItem, { value: category.value, children: [
@@ -13125,7 +13523,7 @@ var CardPaymentMethodList = ({
13125
13523
  };
13126
13524
 
13127
13525
  // src/components/CardPaymentGuide/CardPaymentGuide.constants.ts
13128
- var DEFAULT_LABELS34 = {
13526
+ var DEFAULT_LABELS35 = {
13129
13527
  id: {
13130
13528
  title: "Cara Pembayaran"
13131
13529
  },
@@ -13133,7 +13531,7 @@ var DEFAULT_LABELS34 = {
13133
13531
  title: "Payment Method"
13134
13532
  }
13135
13533
  };
13136
- var useStyles36 = makeStyles({
13534
+ var useStyles37 = makeStyles({
13137
13535
  container: {
13138
13536
  display: "flex",
13139
13537
  flexDirection: "column",
@@ -13170,8 +13568,8 @@ var CardPaymentGuide = ({
13170
13568
  guides,
13171
13569
  className
13172
13570
  }) => {
13173
- const styles = useStyles36();
13174
- const mergedLabels = { ...DEFAULT_LABELS34[language], ...labels };
13571
+ const styles = useStyles37();
13572
+ const mergedLabels = { ...DEFAULT_LABELS35[language], ...labels };
13175
13573
  const displayTitle = title || mergedLabels.title;
13176
13574
  return /* @__PURE__ */ jsxs("div", { className: `${styles.container} ${className || ""}`, children: [
13177
13575
  title && /* @__PURE__ */ jsx("div", { className: styles.titleContainer, children: /* @__PURE__ */ jsx(Subtitle1, { className: styles.title, children: displayTitle }) }),
@@ -13190,7 +13588,7 @@ var CardPaymentGuide = ({
13190
13588
  };
13191
13589
 
13192
13590
  // src/components/CardPaymentInfo/CardPaymentInfo.constants.ts
13193
- var DEFAULT_LABELS35 = {
13591
+ var DEFAULT_LABELS36 = {
13194
13592
  id: {
13195
13593
  expiryPrefix: "Kode virtual akun berlaku sampai",
13196
13594
  copyCodeButton: "Salin Kode",
@@ -13208,7 +13606,7 @@ var DEFAULT_LABELS35 = {
13208
13606
  currencySymbol: "Rp."
13209
13607
  }
13210
13608
  };
13211
- var useStyles37 = makeStyles({
13609
+ var useStyles38 = makeStyles({
13212
13610
  container: {
13213
13611
  display: "flex",
13214
13612
  flexDirection: "column",
@@ -13290,8 +13688,8 @@ var CardPaymentInfo = ({
13290
13688
  onCopyVA,
13291
13689
  onCheckStatus
13292
13690
  }) => {
13293
- const styles = useStyles37();
13294
- const mergedLabels = { ...DEFAULT_LABELS35[language], ...labels };
13691
+ const styles = useStyles38();
13692
+ const mergedLabels = { ...DEFAULT_LABELS36[language], ...labels };
13295
13693
  return /* @__PURE__ */ jsx("div", { className: styles.card, children: /* @__PURE__ */ jsxs("div", { className: styles.container, children: [
13296
13694
  /* @__PURE__ */ jsxs("div", { className: styles.headerRow, children: [
13297
13695
  /* @__PURE__ */ jsx(Subtitle1, { children: mergedLabels.expiryPrefix }),
@@ -13349,7 +13747,7 @@ var CardPaymentInfo = ({
13349
13747
  };
13350
13748
 
13351
13749
  // src/components/CardStatusOrder/CardStatusOrder.constants.ts
13352
- var DEFAULT_LABELS36 = {
13750
+ var DEFAULT_LABELS37 = {
13353
13751
  id: {
13354
13752
  detailTitle: "Detail Pemesanan",
13355
13753
  statusLabel: "Status",
@@ -13379,7 +13777,7 @@ var DEFAULT_LABELS36 = {
13379
13777
  illustrationAlt: "E-Ticket Illustration"
13380
13778
  }
13381
13779
  };
13382
- var useStyles38 = makeStyles({
13780
+ var useStyles39 = makeStyles({
13383
13781
  activeCard: {
13384
13782
  width: "100%",
13385
13783
  // padding: tokens.spacingHorizontalNone, // default
@@ -13449,8 +13847,8 @@ var CardStatusOrder = ({
13449
13847
  onClickViewTicket,
13450
13848
  className
13451
13849
  }) => {
13452
- const styles = useStyles38();
13453
- const mergedLabels = { ...DEFAULT_LABELS36[language], ...labels };
13850
+ const styles = useStyles39();
13851
+ const mergedLabels = { ...DEFAULT_LABELS37[language], ...labels };
13454
13852
  const displayStatus = statusLabel || mergedLabels.defaultStatus;
13455
13853
  const displayTitle = title || mergedLabels.defaultTitle;
13456
13854
  const displayDescription = description || mergedLabels.defaultDescription;
@@ -13547,7 +13945,7 @@ var CardStatusOrder = ({
13547
13945
  };
13548
13946
 
13549
13947
  // src/components/ModalPriceDetail/ModalPriceDetail.constants.ts
13550
- var DEFAULT_LABELS37 = {
13948
+ var DEFAULT_LABELS38 = {
13551
13949
  id: {
13552
13950
  title: "Rincian Harga",
13553
13951
  addonHeader: "Add On",
@@ -13573,7 +13971,7 @@ var DEFAULT_LABELS37 = {
13573
13971
  closeAriaLabel: "Close"
13574
13972
  }
13575
13973
  };
13576
- var useStyles39 = makeStyles({
13974
+ var useStyles40 = makeStyles({
13577
13975
  surface: {
13578
13976
  width: "680px",
13579
13977
  maxWidth: "90vw",
@@ -13700,8 +14098,8 @@ var ModalPriceDetail = ({
13700
14098
  grandTotal,
13701
14099
  ...props
13702
14100
  }) => {
13703
- const styles = useStyles39();
13704
- const mergedLabels = { ...DEFAULT_LABELS37[language], ...labels };
14101
+ const styles = useStyles40();
14102
+ const mergedLabels = { ...DEFAULT_LABELS38[language], ...labels };
13705
14103
  return /* @__PURE__ */ jsx(
13706
14104
  Dialog,
13707
14105
  {
@@ -13843,7 +14241,7 @@ var ModalPriceDetail = ({
13843
14241
  // src/components/FileUpload/FileUpload.constants.ts
13844
14242
  var ACCEPTED_FILES = ".pdf,.jpg,.jpeg,.png";
13845
14243
  var MAX_FILE_SIZE_MB = 10;
13846
- var DEFAULT_LABELS38 = {
14244
+ var DEFAULT_LABELS39 = {
13847
14245
  id: {
13848
14246
  placeholder: "Ketuk untuk pilih file",
13849
14247
  maxSizeWarning: "Maksimal {maxSize}MB per file dalam format PDF, JPG, JPEG, PNG.",
@@ -13861,7 +14259,7 @@ var DEFAULT_LABELS38 = {
13861
14259
  downloadTemplateDocument: "Download Template Document"
13862
14260
  }
13863
14261
  };
13864
- var useStyles40 = makeStyles({
14262
+ var useStyles41 = makeStyles({
13865
14263
  surface: {
13866
14264
  maxWidth: "90vw",
13867
14265
  maxHeight: "90vh",
@@ -13888,7 +14286,7 @@ var ModalPreviewImage = ({
13888
14286
  imageUrl,
13889
14287
  alt = "Preview"
13890
14288
  }) => {
13891
- const styles = useStyles40();
14289
+ const styles = useStyles41();
13892
14290
  return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: (_, data) => onOpenChange(data.open), children: /* @__PURE__ */ jsx(DialogSurface, { className: styles.surface, children: /* @__PURE__ */ jsxs(DialogBody, { children: [
13893
14291
  /* @__PURE__ */ jsx(
13894
14292
  DialogTitle,
@@ -14001,7 +14399,7 @@ var FileUpload = React.forwardRef(
14001
14399
  pdfIcon,
14002
14400
  downloadTemplateDocument = false
14003
14401
  }, ref) => {
14004
- const mergedLabels = { ...DEFAULT_LABELS38[language], ...customLabels };
14402
+ const mergedLabels = { ...DEFAULT_LABELS39[language], ...customLabels };
14005
14403
  const styles = uploadStyles();
14006
14404
  const fileInputRef = useRef(null);
14007
14405
  const [, setIsDragOver] = useState(false);
@@ -14439,11 +14837,11 @@ function hexToRgba(hex, alpha = 1) {
14439
14837
  }
14440
14838
 
14441
14839
  // src/components/CardProfileMenu/CardProfileMenu.constants.ts
14442
- var DEFAULT_LABELS39 = {
14840
+ var DEFAULT_LABELS40 = {
14443
14841
  id: {},
14444
14842
  en: {}
14445
14843
  };
14446
- var useStyles41 = makeStyles({
14844
+ var useStyles42 = makeStyles({
14447
14845
  container: {
14448
14846
  display: "flex",
14449
14847
  flexDirection: "column",
@@ -14503,8 +14901,8 @@ var CardProfileMenu = ({
14503
14901
  selectedValue,
14504
14902
  onTabSelect
14505
14903
  }) => {
14506
- const styles = useStyles41();
14507
- ({ ...DEFAULT_LABELS39[language], ...labels });
14904
+ const styles = useStyles42();
14905
+ ({ ...DEFAULT_LABELS40[language], ...labels });
14508
14906
  const handleTabSelect = (_, data) => {
14509
14907
  onTabSelect(data.value);
14510
14908
  };
@@ -14533,107 +14931,6 @@ var CardProfileMenu = ({
14533
14931
  ) });
14534
14932
  };
14535
14933
 
14536
- // src/components/NoContent/NoContent.constants.ts
14537
- var DEFAULT_LABELS40 = {
14538
- id: {
14539
- defaultImageAlt: "Tidak ada konten",
14540
- defaultTitle: "Data {konten} belum bisa dimuat",
14541
- defaultMessage: "Silahkan coba muat ulang halaman ini atau cek kembali beberapa saat lagi.",
14542
- defaultButtonText: "Muat Ulang"
14543
- },
14544
- en: {
14545
- defaultImageAlt: "No content available",
14546
- defaultTitle: "Data {content} could not be loaded",
14547
- defaultMessage: "Please try reloading this page or check back in a few moments.",
14548
- defaultButtonText: "Reload"
14549
- }
14550
- };
14551
- var getFormattedDefaultTitle = (template, content) => {
14552
- if (content) {
14553
- return template.replace(/\{(konten|content)\}/g, content);
14554
- }
14555
- return template.replace(/\s*\{(konten|content)\}\s*/g, " ").trim();
14556
- };
14557
- var useStyles42 = makeStyles({
14558
- root: {
14559
- display: "flex",
14560
- flexDirection: "column",
14561
- alignItems: "center",
14562
- justifyContent: "center",
14563
- gap: tokens.spacingVerticalL,
14564
- textAlign: "center",
14565
- paddingTop: tokens.spacingVerticalXXL,
14566
- paddingBottom: tokens.spacingVerticalXXL,
14567
- paddingLeft: tokens.spacingHorizontalXL,
14568
- paddingRight: tokens.spacingHorizontalXL,
14569
- width: "100%"
14570
- },
14571
- image: {
14572
- maxWidth: "100%",
14573
- height: "auto"
14574
- },
14575
- textContainer: {
14576
- display: "flex",
14577
- flexDirection: "column",
14578
- alignItems: "center",
14579
- gap: tokens.spacingVerticalS,
14580
- maxWidth: "400px"
14581
- },
14582
- title: {
14583
- fontWeight: "600"
14584
- },
14585
- message: {
14586
- color: tokens.colorNeutralForeground3,
14587
- textAlign: "center"
14588
- }
14589
- });
14590
- var NoContent = ({
14591
- title,
14592
- content,
14593
- message,
14594
- imageSrc = "/assets/images/illustrations/no-content.svg",
14595
- imageAlt,
14596
- imageWidth = 240,
14597
- imageHeight = 180,
14598
- actionButton,
14599
- language = "id",
14600
- labels,
14601
- className
14602
- }) => {
14603
- const styles = useStyles42();
14604
- const mergedLabels = { ...DEFAULT_LABELS40[language], ...labels };
14605
- const displayTitle = title ?? getFormattedDefaultTitle(mergedLabels.defaultTitle, content);
14606
- const displayMessage = message ?? mergedLabels.defaultMessage;
14607
- const displayImageAlt = imageAlt ?? mergedLabels.defaultImageAlt;
14608
- return /* @__PURE__ */ jsxs("div", { className: mergeClasses(styles.root, className), children: [
14609
- /* @__PURE__ */ jsx(
14610
- "img",
14611
- {
14612
- src: imageSrc,
14613
- alt: displayImageAlt,
14614
- width: imageWidth,
14615
- height: imageHeight,
14616
- className: styles.image
14617
- }
14618
- ),
14619
- /* @__PURE__ */ jsxs("div", { className: styles.textContainer, children: [
14620
- /* @__PURE__ */ jsx(Subtitle1, { className: styles.title, children: displayTitle }),
14621
- typeof displayMessage === "string" ? /* @__PURE__ */ jsx(Body1, { className: styles.message, children: displayMessage }) : displayMessage
14622
- ] }),
14623
- actionButton && /* @__PURE__ */ jsx(
14624
- Button,
14625
- {
14626
- type: "button",
14627
- appearance: actionButton.appearance || "primary",
14628
- onClick: actionButton.onClick,
14629
- shape: "circular",
14630
- style: { width: "100%" },
14631
- children: actionButton.text
14632
- }
14633
- )
14634
- ] });
14635
- };
14636
-
14637
- 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, NoContent, DEFAULT_LABELS40 as NoContentDefaultLabels, 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 };
14638
14935
  //# sourceMappingURL=index.mjs.map
14639
14936
  //# sourceMappingURL=index.mjs.map