@asdp/ferryui 0.1.22-dev.9182 → 0.1.22-dev.9197

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.js CHANGED
@@ -162,6 +162,7 @@ var ModalIllustration = ({
162
162
  type: "button",
163
163
  appearance: primaryButton.appearance || "primary",
164
164
  onClick: primaryButton.onClick,
165
+ shape: "circular",
165
166
  children: primaryButton.text
166
167
  }
167
168
  ),
@@ -172,6 +173,7 @@ var ModalIllustration = ({
172
173
  type: "button",
173
174
  appearance: secondaryButton.appearance || "outline",
174
175
  onClick: secondaryButton.onClick,
176
+ shape: "circular",
175
177
  children: secondaryButton.text
176
178
  }
177
179
  )
@@ -1886,7 +1888,8 @@ var DEFAULT_LABELS6 = {
1886
1888
  hotelLabel: "Hotel",
1887
1889
  hotelDescription: "Layanan pemesanan hotel",
1888
1890
  otherLabel: "Lainnya",
1889
- otherDescription: "Layanan lainnya",
1891
+ otherDescription: "Akses fitur tambahan dan pengaturan.",
1892
+ modalTitle: "Daftar Menu",
1890
1893
  serviceAriaLabel: "Layanan"
1891
1894
  },
1892
1895
  en: {
@@ -1898,8 +1901,9 @@ var DEFAULT_LABELS6 = {
1898
1901
  skptDescription: "Integrated Passenger Ticketing System",
1899
1902
  hotelLabel: "Hotel",
1900
1903
  hotelDescription: "Hotel Booking Service",
1901
- otherLabel: "Other",
1902
- otherDescription: "Other Services",
1904
+ otherLabel: "More",
1905
+ otherDescription: "Access additional features and settings.",
1906
+ modalTitle: "Service List",
1903
1907
  serviceAriaLabel: "Service"
1904
1908
  }
1905
1909
  };
@@ -1940,12 +1944,191 @@ var ALIAS_MENU_ITEMS = [
1940
1944
  var BP_TABLET = `max-width: ${extendedTokens.breakpointXl}`;
1941
1945
  var BP_MOBILE = `max-width: ${extendedTokens.breakpointMd}`;
1942
1946
  var useStyles6 = reactComponents.makeStyles({
1947
+ dialogSurface: {
1948
+ maxWidth: "900px",
1949
+ width: "100%"
1950
+ },
1951
+ closeButton: {
1952
+ minWidth: "32px",
1953
+ minHeight: "32px"
1954
+ },
1955
+ content: {
1956
+ paddingTop: "8px",
1957
+ paddingBottom: "16px"
1958
+ },
1959
+ // Horizontal row layout: icon left, text right — same as CardServiceMenu desktop
1960
+ menuItem: {
1961
+ display: "flex",
1962
+ flexDirection: "row",
1963
+ alignItems: "center",
1964
+ justifyContent: "flex-start",
1965
+ padding: "12px 16px",
1966
+ borderRadius: reactComponents.tokens.borderRadiusMedium,
1967
+ cursor: "pointer",
1968
+ textAlign: "left",
1969
+ transition: "background-color 0.2s ease",
1970
+ color: reactComponents.tokens.colorNeutralForeground1,
1971
+ backgroundColor: reactComponents.tokens.colorNeutralBackground1,
1972
+ border: "none",
1973
+ gap: "12px",
1974
+ width: "100%",
1975
+ "&:hover": {
1976
+ backgroundColor: reactComponents.tokens.colorNeutralBackground1Hover
1977
+ },
1978
+ [`@media (${BP_TABLET})`]: {
1979
+ padding: "10px 10px",
1980
+ gap: "8px"
1981
+ },
1982
+ [`@media (${BP_MOBILE})`]: {
1983
+ flexDirection: "column",
1984
+ alignItems: "center",
1985
+ textAlign: "center",
1986
+ padding: "8px 6px",
1987
+ gap: "4px"
1988
+ }
1989
+ },
1990
+ logoWrapper: {
1991
+ display: "flex",
1992
+ alignItems: "center",
1993
+ justifyContent: "center",
1994
+ flexShrink: 0
1995
+ },
1996
+ logo: {
1997
+ height: "32px",
1998
+ width: "32px",
1999
+ flexShrink: 0,
2000
+ objectFit: "contain",
2001
+ [`@media (${BP_TABLET})`]: {
2002
+ height: "28px",
2003
+ width: "28px"
2004
+ },
2005
+ [`@media (${BP_MOBILE})`]: {
2006
+ height: "24px",
2007
+ width: "24px"
2008
+ }
2009
+ },
2010
+ textContent: {
2011
+ display: "flex",
2012
+ flexDirection: "column",
2013
+ gap: "2px",
2014
+ minWidth: 0,
2015
+ width: "100%",
2016
+ [`@media (${BP_MOBILE})`]: {
2017
+ alignItems: "center"
2018
+ }
2019
+ },
2020
+ label: {
2021
+ fontSize: reactComponents.tokens.fontSizeBase300,
2022
+ fontWeight: reactComponents.tokens.fontWeightSemibold,
2023
+ lineHeight: "1.2",
2024
+ whiteSpace: "nowrap",
2025
+ overflow: "hidden",
2026
+ textOverflow: "ellipsis",
2027
+ width: "100%",
2028
+ [`@media (${BP_TABLET})`]: {
2029
+ fontSize: reactComponents.tokens.fontSizeBase200
2030
+ },
2031
+ [`@media (${BP_MOBILE})`]: {
2032
+ fontSize: reactComponents.tokens.fontSizeBase100,
2033
+ textAlign: "center"
2034
+ }
2035
+ },
2036
+ description: {
2037
+ fontSize: reactComponents.tokens.fontSizeBase200,
2038
+ fontWeight: reactComponents.tokens.fontWeightRegular,
2039
+ color: reactComponents.tokens.colorNeutralForeground2,
2040
+ display: "-webkit-box",
2041
+ WebkitLineClamp: 2,
2042
+ WebkitBoxOrient: "vertical",
2043
+ overflow: "hidden",
2044
+ textOverflow: "ellipsis",
2045
+ lineHeight: "1.4",
2046
+ [`@media (${BP_TABLET})`]: {
2047
+ fontSize: reactComponents.tokens.fontSizeBase100,
2048
+ WebkitLineClamp: 1
2049
+ },
2050
+ [`@media (${BP_MOBILE})`]: {
2051
+ display: "none"
2052
+ }
2053
+ }
2054
+ });
2055
+ var ModalListMenuService = ({
2056
+ open = false,
2057
+ onClose = () => {
2058
+ },
2059
+ title = "",
2060
+ menuItems = ALIAS_MENU_ITEMS,
2061
+ onItemClick,
2062
+ showDescriptions = true
2063
+ }) => {
2064
+ const styles = useStyles6();
2065
+ return /* @__PURE__ */ jsxRuntime.jsx(
2066
+ reactComponents.Dialog,
2067
+ {
2068
+ open,
2069
+ onOpenChange: (_, data) => {
2070
+ if (!data.open) {
2071
+ onClose();
2072
+ }
2073
+ },
2074
+ children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.DialogSurface, { className: styles.dialogSurface, children: /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.DialogBody, { children: [
2075
+ /* @__PURE__ */ jsxRuntime.jsx(
2076
+ reactComponents.DialogTitle,
2077
+ {
2078
+ action: /* @__PURE__ */ jsxRuntime.jsx(
2079
+ reactComponents.Button,
2080
+ {
2081
+ appearance: "subtle",
2082
+ "aria-label": "close",
2083
+ icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:dismiss-24-regular" }),
2084
+ onClick: onClose,
2085
+ className: styles.closeButton
2086
+ }
2087
+ ),
2088
+ children: title
2089
+ }
2090
+ ),
2091
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.DialogContent, { className: styles.content, children: /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Row, { gutterWidth: 0, children: menuItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: 6, sm: 6, md: 3, lg: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(
2092
+ reactComponents.Button,
2093
+ {
2094
+ className: styles.menuItem,
2095
+ onClick: () => onItemClick?.(item),
2096
+ "aria-label": item.name,
2097
+ children: [
2098
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.logoWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(
2099
+ "img",
2100
+ {
2101
+ src: item.imageUrl,
2102
+ alt: item.name,
2103
+ className: styles.logo
2104
+ }
2105
+ ) }),
2106
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.textContent, children: [
2107
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles.label, children: item.name }),
2108
+ showDescriptions && /* @__PURE__ */ jsxRuntime.jsx(
2109
+ MenuItemDescription,
2110
+ {
2111
+ description: item.description,
2112
+ className: styles.description
2113
+ }
2114
+ )
2115
+ ] })
2116
+ ]
2117
+ }
2118
+ ) }, item.id)) }) })
2119
+ ] }) })
2120
+ }
2121
+ );
2122
+ };
2123
+ var BP_TABLET2 = `max-width: ${extendedTokens.breakpointXl}`;
2124
+ var BP_MOBILE2 = `max-width: ${extendedTokens.breakpointMd}`;
2125
+ var useStyles7 = reactComponents.makeStyles({
1943
2126
  card: {
1944
2127
  width: "100%",
1945
2128
  boxSizing: "border-box",
1946
2129
  padding: "0px",
1947
2130
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
1948
- [`@media (${BP_MOBILE})`]: {
2131
+ [`@media (${BP_MOBILE2})`]: {
1949
2132
  borderRadius: reactComponents.tokens.borderRadiusLarge
1950
2133
  }
1951
2134
  },
@@ -1955,7 +2138,7 @@ var useStyles6 = reactComponents.makeStyles({
1955
2138
  flexDirection: "column",
1956
2139
  justifyContent: "space-around",
1957
2140
  // Tablet + Mobile: horizontal scroll row
1958
- [`@media (${BP_TABLET})`]: {
2141
+ [`@media (${BP_TABLET2})`]: {
1959
2142
  flexDirection: "row",
1960
2143
  overflowX: "auto",
1961
2144
  overflowY: "visible",
@@ -1965,7 +2148,7 @@ var useStyles6 = reactComponents.makeStyles({
1965
2148
  // Thin scrollbar on tablet, hidden on mobile
1966
2149
  scrollbarWidth: "thin"
1967
2150
  },
1968
- [`@media (${BP_MOBILE})`]: {
2151
+ [`@media (${BP_MOBILE2})`]: {
1969
2152
  scrollbarWidth: "none"
1970
2153
  }
1971
2154
  },
@@ -1989,7 +2172,7 @@ var useStyles6 = reactComponents.makeStyles({
1989
2172
  backgroundColor: reactComponents.tokens.colorNeutralBackground1Hover
1990
2173
  },
1991
2174
  // Tablet: compact column, fixed width, description visible (1 line)
1992
- [`@media (${BP_TABLET})`]: {
2175
+ [`@media (${BP_TABLET2})`]: {
1993
2176
  flexDirection: "column",
1994
2177
  alignItems: "center",
1995
2178
  textAlign: "center",
@@ -2001,7 +2184,7 @@ var useStyles6 = reactComponents.makeStyles({
2001
2184
  scrollSnapAlign: "start"
2002
2185
  },
2003
2186
  // Mobile: even tighter, no description
2004
- [`@media (${BP_MOBILE})`]: {
2187
+ [`@media (${BP_MOBILE2})`]: {
2005
2188
  padding: "8px 6px",
2006
2189
  width: "72px",
2007
2190
  gap: "4px"
@@ -2021,16 +2204,32 @@ var useStyles6 = reactComponents.makeStyles({
2021
2204
  justifyContent: "center",
2022
2205
  flexShrink: 0
2023
2206
  },
2207
+ moreIconOuter: {
2208
+ display: "flex",
2209
+ alignItems: "center",
2210
+ justifyContent: "center",
2211
+ borderRadius: "50%",
2212
+ width: "32px",
2213
+ height: "32px",
2214
+ [`@media (${BP_TABLET2})`]: {
2215
+ width: "28px",
2216
+ height: "28px"
2217
+ },
2218
+ [`@media (${BP_MOBILE2})`]: {
2219
+ width: "24px",
2220
+ height: "24px"
2221
+ }
2222
+ },
2024
2223
  logo: {
2025
2224
  height: "32px",
2026
2225
  width: "32px",
2027
2226
  flexShrink: 0,
2028
2227
  objectFit: "contain",
2029
- [`@media (${BP_TABLET})`]: {
2228
+ [`@media (${BP_TABLET2})`]: {
2030
2229
  height: "28px",
2031
2230
  width: "28px"
2032
2231
  },
2033
- [`@media (${BP_MOBILE})`]: {
2232
+ [`@media (${BP_MOBILE2})`]: {
2034
2233
  height: "24px",
2035
2234
  width: "24px"
2036
2235
  }
@@ -2042,7 +2241,7 @@ var useStyles6 = reactComponents.makeStyles({
2042
2241
  minWidth: 0,
2043
2242
  width: "100%",
2044
2243
  // allow ellipsis to work
2045
- [`@media (${BP_TABLET})`]: {
2244
+ [`@media (${BP_TABLET2})`]: {
2046
2245
  alignItems: "center",
2047
2246
  gap: "2px"
2048
2247
  }
@@ -2051,7 +2250,7 @@ var useStyles6 = reactComponents.makeStyles({
2051
2250
  fontSize: reactComponents.tokens.fontSizeBase300,
2052
2251
  fontWeight: reactComponents.tokens.fontWeightSemibold,
2053
2252
  lineHeight: "1.2",
2054
- [`@media (${BP_TABLET})`]: {
2253
+ [`@media (${BP_TABLET2})`]: {
2055
2254
  fontSize: reactComponents.tokens.fontSizeBase200,
2056
2255
  whiteSpace: "nowrap",
2057
2256
  overflow: "hidden",
@@ -2059,7 +2258,7 @@ var useStyles6 = reactComponents.makeStyles({
2059
2258
  width: "100%",
2060
2259
  textAlign: "center"
2061
2260
  },
2062
- [`@media (${BP_MOBILE})`]: {
2261
+ [`@media (${BP_MOBILE2})`]: {
2063
2262
  fontSize: reactComponents.tokens.fontSizeBase100
2064
2263
  }
2065
2264
  },
@@ -2075,7 +2274,7 @@ var useStyles6 = reactComponents.makeStyles({
2075
2274
  textOverflow: "ellipsis",
2076
2275
  lineHeight: "1.4",
2077
2276
  // Tablet: 1-line clamp, compact
2078
- [`@media (${BP_TABLET})`]: {
2277
+ [`@media (${BP_TABLET2})`]: {
2079
2278
  fontSize: reactComponents.tokens.fontSizeBase100,
2080
2279
  WebkitLineClamp: 1,
2081
2280
  whiteSpace: "nowrap",
@@ -2083,7 +2282,7 @@ var useStyles6 = reactComponents.makeStyles({
2083
2282
  textAlign: "center"
2084
2283
  },
2085
2284
  // Mobile: hide description entirely
2086
- [`@media (${BP_MOBILE})`]: {
2285
+ [`@media (${BP_MOBILE2})`]: {
2087
2286
  display: "none"
2088
2287
  }
2089
2288
  },
@@ -2100,13 +2299,13 @@ var useStyles6 = reactComponents.makeStyles({
2100
2299
  [`@media (min-width: ${extendedTokens.breakpointXl})`]: {
2101
2300
  display: "none"
2102
2301
  },
2103
- [`@media (${BP_MOBILE})`]: {
2302
+ [`@media (${BP_MOBILE2})`]: {
2104
2303
  display: "none"
2105
2304
  }
2106
2305
  },
2107
2306
  dividerHorizontal: {
2108
2307
  // Only visible on desktop (vertical layout)
2109
- [`@media (${BP_TABLET})`]: {
2308
+ [`@media (${BP_TABLET2})`]: {
2110
2309
  display: "none"
2111
2310
  }
2112
2311
  }
@@ -2122,60 +2321,110 @@ var CardServiceMenu = ({
2122
2321
  isLoading = false,
2123
2322
  skeletonCount = 4
2124
2323
  }) => {
2125
- const styles = useStyles6();
2126
- ({ ...DEFAULT_LABELS6[language], ...labels });
2324
+ const styles = useStyles7();
2325
+ const mergedLabels = { ...DEFAULT_LABELS6[language], ...labels };
2326
+ const [isModalOpen, setIsModalOpen] = React.useState(false);
2127
2327
  const getMenuItemClass = (serviceId) => {
2128
- const isActive = activeServiceId === serviceId;
2328
+ const isActive = serviceId !== void 0 && activeServiceId === serviceId;
2129
2329
  return reactComponents.mergeClasses(styles.menuItem, isActive && styles.menuItemActive);
2130
2330
  };
2131
- return /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Card, { className: reactComponents.mergeClasses(styles.card, className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.menuList, children: isLoading ? Array.from({ length: skeletonCount }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsxs(React__default.default.Fragment, { children: [
2132
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: reactComponents.mergeClasses(styles.menuItem, styles.skeletonOverride), children: [
2133
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.logoWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Skeleton, { children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.SkeletonItem, { className: styles.logo, style: { borderRadius: "50%" } }) }) }),
2134
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.textContent, children: [
2135
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Skeleton, { children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.SkeletonItem, { style: { width: "60%", height: "16px" } }) }),
2136
- showDescriptions && /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Skeleton, { className: styles.description, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.SkeletonItem, { style: { width: "90%", height: "12px", marginTop: "4px" } }) })
2137
- ] })
2138
- ] }),
2139
- index < skeletonCount - 1 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2140
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, { className: styles.dividerHorizontal }),
2141
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, { vertical: true, className: styles.dividerVertical })
2142
- ] })
2143
- ] }, `skeleton-${index}`)) : menuItems.map((item, index) => {
2144
- return /* @__PURE__ */ jsxRuntime.jsxs(React__default.default.Fragment, { children: [
2145
- /* @__PURE__ */ jsxRuntime.jsxs(
2331
+ const MAX_ITEMS = 5;
2332
+ const isOverflow = menuItems.length > MAX_ITEMS;
2333
+ const displayItems = isOverflow ? menuItems.slice(0, MAX_ITEMS - 1) : menuItems;
2334
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2335
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Card, { className: reactComponents.mergeClasses(styles.card, className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.menuList, children: [
2336
+ isLoading ? Array.from({ length: skeletonCount }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsxs(React__default.default.Fragment, { children: [
2337
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: reactComponents.mergeClasses(styles.menuItem, styles.skeletonOverride), children: [
2338
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.logoWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Skeleton, { children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.SkeletonItem, { className: styles.logo, style: { borderRadius: "50%" } }) }) }),
2339
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.textContent, children: [
2340
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Skeleton, { children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.SkeletonItem, { style: { width: "60%", height: "16px" } }) }),
2341
+ showDescriptions && /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Skeleton, { className: styles.description, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.SkeletonItem, { style: { width: "90%", height: "12px", marginTop: "4px" } }) })
2342
+ ] })
2343
+ ] }),
2344
+ index < skeletonCount - 1 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2345
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, { className: styles.dividerHorizontal }),
2346
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, { vertical: true, className: styles.dividerVertical })
2347
+ ] })
2348
+ ] }, `skeleton-${index}`)) : displayItems.map((item, index) => {
2349
+ return /* @__PURE__ */ jsxRuntime.jsxs(React__default.default.Fragment, { children: [
2350
+ /* @__PURE__ */ jsxRuntime.jsxs(
2351
+ reactComponents.Button,
2352
+ {
2353
+ className: getMenuItemClass(item.id),
2354
+ onClick: () => onServiceClick?.(item.id),
2355
+ "aria-label": item.name,
2356
+ children: [
2357
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.logoWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(
2358
+ "img",
2359
+ {
2360
+ src: item.imageUrl,
2361
+ alt: item.name,
2362
+ className: styles.logo
2363
+ }
2364
+ ) }),
2365
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.textContent, children: [
2366
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles.label, children: item.name }),
2367
+ showDescriptions && /* @__PURE__ */ jsxRuntime.jsx(
2368
+ MenuItemDescription,
2369
+ {
2370
+ description: item.description,
2371
+ className: styles.description
2372
+ }
2373
+ )
2374
+ ] })
2375
+ ]
2376
+ }
2377
+ ),
2378
+ (index < displayItems.length - 1 || isOverflow) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2379
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, { className: styles.dividerHorizontal }),
2380
+ /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, { vertical: true, className: styles.dividerVertical })
2381
+ ] })
2382
+ ] }, item.id);
2383
+ }),
2384
+ !isLoading && isOverflow && /* @__PURE__ */ jsxRuntime.jsxs(
2146
2385
  reactComponents.Button,
2147
2386
  {
2148
- className: getMenuItemClass(item.id),
2149
- onClick: () => onServiceClick?.(item.id),
2150
- "aria-label": item.name,
2387
+ className: getMenuItemClass(),
2388
+ onClick: () => setIsModalOpen(true),
2389
+ "aria-label": mergedLabels.otherLabel,
2151
2390
  children: [
2152
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.logoWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(
2153
- "img",
2391
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.logoWrapper, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.moreIconOuter, children: /* @__PURE__ */ jsxRuntime.jsx(
2392
+ react.Icon,
2154
2393
  {
2155
- src: item.imageUrl,
2156
- alt: item.name,
2157
- className: styles.logo
2394
+ icon: "fluent:apps-24-regular",
2395
+ fontSize: "32px",
2396
+ color: reactComponents.tokens.colorNeutralForeground1
2158
2397
  }
2159
- ) }),
2398
+ ) }) }),
2160
2399
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.textContent, children: [
2161
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles.label, children: item.name }),
2400
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles.label, children: mergedLabels.otherLabel }),
2162
2401
  showDescriptions && /* @__PURE__ */ jsxRuntime.jsx(
2163
2402
  MenuItemDescription,
2164
2403
  {
2165
- description: item.description,
2404
+ description: mergedLabels.otherDescription,
2166
2405
  className: styles.description
2167
2406
  }
2168
2407
  )
2169
2408
  ] })
2170
2409
  ]
2171
2410
  }
2172
- ),
2173
- index < menuItems.length - 1 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2174
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, { className: styles.dividerHorizontal }),
2175
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, { vertical: true, className: styles.dividerVertical })
2176
- ] })
2177
- ] }, item.id);
2178
- }) }) });
2411
+ )
2412
+ ] }) }),
2413
+ !isLoading && isOverflow && /* @__PURE__ */ jsxRuntime.jsx(
2414
+ ModalListMenuService,
2415
+ {
2416
+ open: isModalOpen,
2417
+ onClose: () => setIsModalOpen(false),
2418
+ title: mergedLabels.modalTitle,
2419
+ menuItems,
2420
+ onItemClick: (item) => {
2421
+ setIsModalOpen(false);
2422
+ onServiceClick?.(item.id);
2423
+ },
2424
+ showDescriptions
2425
+ }
2426
+ )
2427
+ ] });
2179
2428
  };
2180
2429
  var MenuItemDescription = ({ description, className }) => {
2181
2430
  const ref = React.useRef(null);
@@ -2429,7 +2678,7 @@ var COUNTRIES = [
2429
2678
  { value: "PG", label: "Papua New Guinea", flag: "twemoji:flag-papua-new-guinea" }
2430
2679
  ];
2431
2680
  var PhoneInput = PhoneInputComponent__default.default.default || PhoneInputComponent__default.default;
2432
- var useStyles7 = reactComponents.makeStyles({
2681
+ var useStyles8 = reactComponents.makeStyles({
2433
2682
  field: {
2434
2683
  display: "flex",
2435
2684
  flexDirection: "column",
@@ -2767,7 +3016,7 @@ var InputDynamic = ({
2767
3016
  labels,
2768
3017
  menuPlacement
2769
3018
  }) => {
2770
- const styles = useStyles7();
3019
+ const styles = useStyles8();
2771
3020
  const mergedLabels = { ...DEFAULT_LABELS7[language], ...labels };
2772
3021
  const [showPassword, setShowPassword] = React.useState(false);
2773
3022
  const [isPhoneMode, setIsPhoneMode] = React.useState(false);
@@ -3841,7 +4090,7 @@ var DEFAULT_LABELS8 = {
3841
4090
  otherDescription: "Other Services"
3842
4091
  }
3843
4092
  };
3844
- var useStyles8 = reactComponents.makeStyles({
4093
+ var useStyles9 = reactComponents.makeStyles({
3845
4094
  card: {
3846
4095
  position: "relative",
3847
4096
  width: "100%",
@@ -3979,7 +4228,7 @@ var CardTicketSearch = ({
3979
4228
  menuItems,
3980
4229
  isLoadingServiceMenu
3981
4230
  }) => {
3982
- const styles = useStyles8();
4231
+ const styles = useStyles9();
3983
4232
  const labels = React__default.default.useMemo(
3984
4233
  () => ({ ...DEFAULT_LABELS8[language], ...customLabels }),
3985
4234
  [language, customLabels]
@@ -4491,7 +4740,7 @@ var DEFAULT_LABELS9 = {
4491
4740
  swapAriaLabel: "Swap origin and destination"
4492
4741
  }
4493
4742
  };
4494
- var useStyles9 = reactComponents.makeStyles({
4743
+ var useStyles10 = reactComponents.makeStyles({
4495
4744
  cardSearchTicket: {
4496
4745
  borderRadius: "32px",
4497
4746
  // borderBottomLeftRadius: '0',
@@ -4573,7 +4822,7 @@ var CardTicketSearchSummary = ({
4573
4822
  showSwapButton = false,
4574
4823
  children
4575
4824
  }) => {
4576
- const styles = useStyles9();
4825
+ const styles = useStyles10();
4577
4826
  const mergedLabels = { ...DEFAULT_LABELS9[language], ...labels };
4578
4827
  const { width } = useWindowSize();
4579
4828
  const getCircularConfig = () => {
@@ -4902,7 +5151,7 @@ var DEFAULT_LABELS10 = {
4902
5151
  popularHarborHeader: "Popular Harbor"
4903
5152
  }
4904
5153
  };
4905
- var useStyles10 = reactComponents.makeStyles({
5154
+ var useStyles11 = reactComponents.makeStyles({
4906
5155
  dialogTitle: {
4907
5156
  display: "flex",
4908
5157
  justifyContent: "space-between",
@@ -5035,7 +5284,7 @@ var ModalSearchHarbor = ({
5035
5284
  popularHarbors,
5036
5285
  showButtonFavorite = true
5037
5286
  }) => {
5038
- const styles = useStyles10();
5287
+ const styles = useStyles11();
5039
5288
  const mergedLabels = { ...DEFAULT_LABELS10[language], ...labels };
5040
5289
  const handleSelect = (harbor) => {
5041
5290
  onAddLastSearched(harbor);
@@ -5225,7 +5474,7 @@ var DEFAULT_LABELS11 = {
5225
5474
  closeAriaLabel: "Close"
5226
5475
  }
5227
5476
  };
5228
- var useStyles11 = reactComponents.makeStyles({
5477
+ var useStyles12 = reactComponents.makeStyles({
5229
5478
  dialogSurface: {
5230
5479
  maxWidth: "600px",
5231
5480
  width: "100%"
@@ -5345,7 +5594,7 @@ var ModalSelectDate = ({
5345
5594
  dateFormat = "DD MMMM YYYY",
5346
5595
  showRoundtrip = true
5347
5596
  }) => {
5348
- const styles = useStyles11();
5597
+ const styles = useStyles12();
5349
5598
  const mergedLabels = { ...DEFAULT_LABELS11[language], ...labels };
5350
5599
  React.useEffect(() => {
5351
5600
  moment__default.default.locale(language === "id" ? "id" : "en");
@@ -5587,7 +5836,7 @@ var DEFAULT_LABELS12 = {
5587
5836
  closeAriaLabel: "Close"
5588
5837
  }
5589
5838
  };
5590
- var useStyles12 = reactComponents.makeStyles({
5839
+ var useStyles13 = reactComponents.makeStyles({
5591
5840
  dialogSurface: {
5592
5841
  maxWidth: "600px",
5593
5842
  width: "100%"
@@ -5672,7 +5921,7 @@ var ModalService = ({
5672
5921
  isLoading = false,
5673
5922
  isError = false
5674
5923
  }) => {
5675
- const styles = useStyles12();
5924
+ const styles = useStyles13();
5676
5925
  const mergedLabels = { ...DEFAULT_LABELS12[language], ...labels };
5677
5926
  const displayTitle = title || mergedLabels.title;
5678
5927
  const [selectedServices, setSelectedServices] = React.useState(selectedServiceIds);
@@ -5794,7 +6043,7 @@ var DEFAULT_LABELS13 = {
5794
6043
  closeAriaLabel: "Close"
5795
6044
  }
5796
6045
  };
5797
- var useStyles13 = reactComponents.makeStyles({
6046
+ var useStyles14 = reactComponents.makeStyles({
5798
6047
  dialogSurface: {
5799
6048
  maxWidth: "600px",
5800
6049
  width: "100%"
@@ -5874,7 +6123,7 @@ var ModalTotalPassengers = ({
5874
6123
  maxPassengers = 10,
5875
6124
  infoMessage
5876
6125
  }) => {
5877
- const styles = useStyles13();
6126
+ const styles = useStyles14();
5878
6127
  const mergedLabels = { ...DEFAULT_LABELS13[language], ...labels };
5879
6128
  const [passengers, setPassengers] = React.useState([]);
5880
6129
  const [openItems, setOpenItems] = React.useState([]);
@@ -6171,7 +6420,7 @@ var DEFAULT_VEHICLE_ICONS = {
6171
6420
  bigTruck: "/assets/images/icons/big-truck.webp",
6172
6421
  looseLoad: "/assets/images/icons/loose-load.webp"
6173
6422
  };
6174
- var useStyles14 = reactComponents.makeStyles({
6423
+ var useStyles15 = reactComponents.makeStyles({
6175
6424
  dialogSurface: {
6176
6425
  maxWidth: "600px",
6177
6426
  width: "100%"
@@ -6225,7 +6474,7 @@ var ModalTypeOfService = ({
6225
6474
  onSave,
6226
6475
  renderImage
6227
6476
  }) => {
6228
- const styles = useStyles14();
6477
+ const styles = useStyles15();
6229
6478
  const mergedLabels = { ...DEFAULT_LABELS14[language], ...labels };
6230
6479
  const [selectedServiceId, setSelectedServiceId] = React.useState(
6231
6480
  selectedService?.id || 0
@@ -6506,7 +6755,7 @@ var getSortLabel = (value) => {
6506
6755
  const option = DEFAULT_SORT_OPTIONS.find((opt) => opt.value === value);
6507
6756
  return option?.label || "Rekomendasi";
6508
6757
  };
6509
- var useStyles15 = reactComponents.makeStyles({
6758
+ var useStyles16 = reactComponents.makeStyles({
6510
6759
  container: {
6511
6760
  display: "flex",
6512
6761
  width: "100%",
@@ -6542,7 +6791,7 @@ var SortMenu = ({
6542
6791
  sortButtonText: deprecatedSortButtonText,
6543
6792
  clearFiltersText: deprecatedClearFiltersText
6544
6793
  }) => {
6545
- const styles = useStyles15();
6794
+ const styles = useStyles16();
6546
6795
  const labels = React__default.default.useMemo(
6547
6796
  () => ({
6548
6797
  ...DEFAULT_LABELS15[language],
@@ -6718,7 +6967,7 @@ var DEFAULT_DURATION_RANGE = {
6718
6967
  min: 0,
6719
6968
  max: 8
6720
6969
  };
6721
- var useStyles16 = reactComponents.makeStyles({
6970
+ var useStyles17 = reactComponents.makeStyles({
6722
6971
  dialogSurface: {
6723
6972
  maxWidth: "600px",
6724
6973
  width: "100%"
@@ -6828,7 +7077,7 @@ var ModalFilterTicket = ({
6828
7077
  minDuration = DEFAULT_DURATION_RANGE.min,
6829
7078
  maxDuration = DEFAULT_DURATION_RANGE.max
6830
7079
  }) => {
6831
- const styles = useStyles16();
7080
+ const styles = useStyles17();
6832
7081
  const mergedLabels = { ...DEFAULT_LABELS16[language], ...labels };
6833
7082
  const [rangeReady, setRangeReady] = React.useState(false);
6834
7083
  React.useEffect(() => {
@@ -7152,7 +7401,7 @@ var DEFAULT_LABELS17 = {
7152
7401
  }
7153
7402
  };
7154
7403
  var DEFAULT_SCROLL_AMOUNT = 150;
7155
- var useStyles17 = reactComponents.makeStyles({
7404
+ var useStyles18 = reactComponents.makeStyles({
7156
7405
  container: {
7157
7406
  display: "flex",
7158
7407
  alignItems: "stretch",
@@ -7235,7 +7484,7 @@ var DateFilter = ({
7235
7484
  labels,
7236
7485
  isLoading = false
7237
7486
  }) => {
7238
- const styles = useStyles17();
7487
+ const styles = useStyles18();
7239
7488
  const scrollRef = React.useRef(null);
7240
7489
  const mergedLabels = {
7241
7490
  ...DEFAULT_LABELS17[language],
@@ -7361,7 +7610,7 @@ var DEFAULT_FORM_VALUES = {
7361
7610
  typeOfService: "",
7362
7611
  passenger: ""
7363
7612
  };
7364
- var useStyles18 = reactComponents.makeStyles({
7613
+ var useStyles19 = reactComponents.makeStyles({
7365
7614
  dialogSurface: {
7366
7615
  maxWidth: "900px",
7367
7616
  width: "100%"
@@ -7463,7 +7712,7 @@ var ModalSearchTicket = ({
7463
7712
  showRoundTrip = true,
7464
7713
  ...props
7465
7714
  }) => {
7466
- const styles = useStyles18();
7715
+ const styles = useStyles19();
7467
7716
  const mergedLabels = { ...DEFAULT_LABELS18[language], ...labels };
7468
7717
  const { control, setValue, handleSubmit, watch } = reactHookForm.useForm({
7469
7718
  defaultValues: {
@@ -7911,7 +8160,7 @@ var DEFAULT_LABELS19 = {
7911
8160
  ferryIconAlt: "Ferry Icon"
7912
8161
  }
7913
8162
  };
7914
- var useStyles19 = reactComponents.makeStyles({
8163
+ var useStyles20 = reactComponents.makeStyles({
7915
8164
  stepperWrapper: {
7916
8165
  position: "relative",
7917
8166
  width: "100%",
@@ -8036,7 +8285,7 @@ var Stepper = ({
8036
8285
  language = "id",
8037
8286
  labels
8038
8287
  }) => {
8039
- const styles = useStyles19();
8288
+ const styles = useStyles20();
8040
8289
  const mergedLabels = { ...DEFAULT_LABELS19[language], ...labels };
8041
8290
  const currentStepIndex = React.useMemo(() => {
8042
8291
  if (typeof currentStep === "number") {
@@ -8107,7 +8356,7 @@ var DEFAULT_LABELS20 = {
8107
8356
  email: "Email"
8108
8357
  }
8109
8358
  };
8110
- var useStyles20 = reactComponents.makeStyles({
8359
+ var useStyles21 = reactComponents.makeStyles({
8111
8360
  card: {
8112
8361
  padding: "1.5rem",
8113
8362
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -8137,7 +8386,7 @@ var CardOrdererInfo = ({
8137
8386
  labels,
8138
8387
  className
8139
8388
  }) => {
8140
- const styles = useStyles20();
8389
+ const styles = useStyles21();
8141
8390
  const mergedLabels = { ...DEFAULT_LABELS20[language], ...labels };
8142
8391
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: className || styles.card, children: [
8143
8392
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Title3, { children: mergedLabels.title }),
@@ -8189,7 +8438,7 @@ var DEFAULT_LABELS21 = {
8189
8438
  }
8190
8439
  }
8191
8440
  };
8192
- var useStyles21 = reactComponents.makeStyles({
8441
+ var useStyles22 = reactComponents.makeStyles({
8193
8442
  dialogSurface: {
8194
8443
  maxWidth: "600px",
8195
8444
  width: "100%",
@@ -8244,7 +8493,7 @@ var ModalListPassenger = ({
8244
8493
  // sameAsOrderer,
8245
8494
  // onSameAsOrdererChange,
8246
8495
  }) => {
8247
- const styles = useStyles21();
8496
+ const styles = useStyles22();
8248
8497
  const mergedLabels = { ...DEFAULT_LABELS21[language], ...labels };
8249
8498
  const displayTitle = title || mergedLabels.title;
8250
8499
  const handleClose = () => {
@@ -8500,7 +8749,7 @@ var TYPE_OPTIONS = [
8500
8749
  value: "lainnya"
8501
8750
  }
8502
8751
  ];
8503
- var useStyles22 = reactComponents.makeStyles({
8752
+ var useStyles23 = reactComponents.makeStyles({
8504
8753
  dialogSurface: {
8505
8754
  maxWidth: "600px",
8506
8755
  width: "100%",
@@ -8678,7 +8927,7 @@ var ModalPassengerForm = ({
8678
8927
  ticketClassOptions,
8679
8928
  onScanComplete
8680
8929
  }) => {
8681
- const styles = useStyles22();
8930
+ const styles = useStyles23();
8682
8931
  const mergedLabels = { ...DEFAULT_LABELS22[language], ...labels };
8683
8932
  const mergedErrors = {
8684
8933
  ...DEFAULT_LABELS22[language].errors,
@@ -9433,7 +9682,7 @@ var getBadgeConfig = (ticketClass) => {
9433
9682
  };
9434
9683
  }
9435
9684
  };
9436
- var useStyles23 = reactComponents.makeStyles({
9685
+ var useStyles24 = reactComponents.makeStyles({
9437
9686
  card: {
9438
9687
  padding: "1.5rem",
9439
9688
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -9516,7 +9765,7 @@ var CardPassengerList = ({
9516
9765
  labels,
9517
9766
  className
9518
9767
  }) => {
9519
- const styles = useStyles23();
9768
+ const styles = useStyles24();
9520
9769
  const mergedLabels = { ...DEFAULT_LABELS23[language], ...labels };
9521
9770
  const displayTitle = title || mergedLabels.defaultTitle;
9522
9771
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: className || styles.card, children: [
@@ -9608,7 +9857,7 @@ var DEFAULT_LABELS24 = {
9608
9857
  noLabel: "No"
9609
9858
  }
9610
9859
  };
9611
- var useStyles24 = reactComponents.makeStyles({
9860
+ var useStyles25 = reactComponents.makeStyles({
9612
9861
  card: {
9613
9862
  padding: "1.5rem",
9614
9863
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -9648,7 +9897,7 @@ var CardVehicleDetail = ({
9648
9897
  language = "id",
9649
9898
  labels
9650
9899
  }) => {
9651
- const styles = useStyles24();
9900
+ const styles = useStyles25();
9652
9901
  const mergedLabels = { ...DEFAULT_LABELS24[language], ...labels };
9653
9902
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: styles.card, children: [
9654
9903
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -9819,7 +10068,7 @@ var DEFAULT_LABELS25 = {
9819
10068
  incrementQuantityAriaLabel: "Increase quantity"
9820
10069
  }
9821
10070
  };
9822
- var useStyles25 = reactComponents.makeStyles({
10071
+ var useStyles26 = reactComponents.makeStyles({
9823
10072
  card: {
9824
10073
  padding: "1.5rem",
9825
10074
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -9887,7 +10136,7 @@ var CardVehicleOwnerForm = ({
9887
10136
  language = "id",
9888
10137
  labels
9889
10138
  }) => {
9890
- const styles = useStyles25();
10139
+ const styles = useStyles26();
9891
10140
  const mergedLabels = { ...DEFAULT_LABELS25[language], ...labels };
9892
10141
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: styles.card, children: [
9893
10142
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.header, children: [
@@ -10702,7 +10951,7 @@ var DEFAULT_LABELS26 = {
10702
10951
  currencySymbol: "IDR"
10703
10952
  }
10704
10953
  };
10705
- var useStyles26 = reactComponents.makeStyles({
10954
+ var useStyles27 = reactComponents.makeStyles({
10706
10955
  container: {
10707
10956
  display: "flex",
10708
10957
  flexDirection: "column",
@@ -10835,7 +11084,7 @@ var CardBookingTicket = ({
10835
11084
  onPrevious,
10836
11085
  className
10837
11086
  }) => {
10838
- const styles = useStyles26();
11087
+ const styles = useStyles27();
10839
11088
  const mergedLabels = { ...DEFAULT_LABELS26[language], ...labels };
10840
11089
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${styles.container} ${className || ""}`, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.bookingDetail, children: [
10841
11090
  /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: styles.bookingDetailTop, children: [
@@ -11028,7 +11277,7 @@ var DEFAULT_FAQ_ITEMS = {
11028
11277
  }
11029
11278
  ]
11030
11279
  };
11031
- var useStyles27 = reactComponents.makeStyles({
11280
+ var useStyles28 = reactComponents.makeStyles({
11032
11281
  faqSection: {
11033
11282
  // marginTop: '2rem', // Let parent control spacing if needed, or keep consistent
11034
11283
  },
@@ -11052,7 +11301,7 @@ var CardFAQ = ({
11052
11301
  items,
11053
11302
  className
11054
11303
  }) => {
11055
- const styles = useStyles27();
11304
+ const styles = useStyles28();
11056
11305
  const mergedLabels = { ...DEFAULT_LABELS27[language], ...labels };
11057
11306
  const faqItems = items || DEFAULT_FAQ_ITEMS[language];
11058
11307
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: styles.faqCard, children: [
@@ -11106,7 +11355,7 @@ var DEFAULT_LABELS28 = {
11106
11355
  currencySymbol: "Rp"
11107
11356
  }
11108
11357
  };
11109
- var useStyles28 = reactComponents.makeStyles({
11358
+ var useStyles29 = reactComponents.makeStyles({
11110
11359
  card: {
11111
11360
  backgroundColor: reactComponents.tokens.colorNeutralBackground1,
11112
11361
  boxShadow: reactComponents.tokens.shadow4,
@@ -11279,7 +11528,7 @@ var CardAddon = ({
11279
11528
  children,
11280
11529
  className
11281
11530
  }) => {
11282
- const styles = useStyles28();
11531
+ const styles = useStyles29();
11283
11532
  const mergedLabels = { ...DEFAULT_LABELS28[language], ...labels };
11284
11533
  return /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Card, { className: `${styles.card} ${className || ""}`, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.gapRow, children: [
11285
11534
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.titleDivider, children: [
@@ -11507,7 +11756,7 @@ var DEFAULT_LABELS29 = {
11507
11756
  searchPlaceholder: "Search for food or drinks you want"
11508
11757
  }
11509
11758
  };
11510
- var useStyles29 = reactComponents.makeStyles({
11759
+ var useStyles30 = reactComponents.makeStyles({
11511
11760
  container: {
11512
11761
  display: "flex",
11513
11762
  flexDirection: "column",
@@ -11651,7 +11900,7 @@ var CardMealCatalog = ({
11651
11900
  searchValue,
11652
11901
  onSearchChange
11653
11902
  }) => {
11654
- const styles = useStyles29();
11903
+ const styles = useStyles30();
11655
11904
  const mergedLabels = { ...DEFAULT_LABELS29[language], ...labels };
11656
11905
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${styles.container} ${className || ""}`, children: [
11657
11906
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.banner, children: [
@@ -11765,7 +12014,7 @@ var DEFAULT_LABELS30 = {
11765
12014
  defaultTitle: "Review"
11766
12015
  }
11767
12016
  };
11768
- var useStyles30 = reactComponents.makeStyles({
12017
+ var useStyles31 = reactComponents.makeStyles({
11769
12018
  card: {
11770
12019
  padding: "1.5rem",
11771
12020
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -11816,7 +12065,7 @@ var CardReview = ({
11816
12065
  className,
11817
12066
  headerAction
11818
12067
  }) => {
11819
- const styles = useStyles30();
12068
+ const styles = useStyles31();
11820
12069
  const mergedLabels = { ...DEFAULT_LABELS30[language], ...labels };
11821
12070
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: `${styles.card} ${className || ""}`, children: [
11822
12071
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.headerContainer, children: [
@@ -11874,7 +12123,7 @@ var DEFAULT_LABELS31 = {
11874
12123
  idNumber: "ID Number"
11875
12124
  }
11876
12125
  };
11877
- var useStyles31 = reactComponents.makeStyles({
12126
+ var useStyles32 = reactComponents.makeStyles({
11878
12127
  card: {
11879
12128
  padding: "1.5rem",
11880
12129
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -11972,7 +12221,7 @@ var CardReviewPassenger = ({
11972
12221
  passengers,
11973
12222
  className
11974
12223
  }) => {
11975
- const styles = useStyles31();
12224
+ const styles = useStyles32();
11976
12225
  const mergedLabels = { ...DEFAULT_LABELS31[language], ...labels };
11977
12226
  const displayTitle = title || mergedLabels.title;
11978
12227
  return /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.Card, { className: `${styles.card} ${className || ""}`, children: [
@@ -12052,7 +12301,7 @@ var DEFAULT_LABELS32 = {
12052
12301
  currencyPrefix: "Rp. "
12053
12302
  }
12054
12303
  };
12055
- var useStyles32 = reactComponents.makeStyles({
12304
+ var useStyles33 = reactComponents.makeStyles({
12056
12305
  list: {
12057
12306
  margin: 0,
12058
12307
  padding: 0,
@@ -12074,7 +12323,7 @@ var PriceDetailsTerms = ({
12074
12323
  language = "id",
12075
12324
  labels
12076
12325
  }) => {
12077
- const styles = useStyles32();
12326
+ const styles = useStyles33();
12078
12327
  const linkColor = reactComponents.tokens.colorBrandBackground;
12079
12328
  const bookingTerms = labels.bookingTerms;
12080
12329
  const agreementTerms = [
@@ -12094,7 +12343,7 @@ var PriceDetailsTerms = ({
12094
12343
  ] })
12095
12344
  ] });
12096
12345
  };
12097
- var useStyles33 = reactComponents.makeStyles({
12346
+ var useStyles34 = reactComponents.makeStyles({
12098
12347
  card: {
12099
12348
  padding: "1.5rem",
12100
12349
  borderRadius: reactComponents.tokens.borderRadiusXLarge,
@@ -12171,7 +12420,7 @@ var CardPriceDetails = ({
12171
12420
  total,
12172
12421
  labels
12173
12422
  }) => {
12174
- const styles = useStyles33();
12423
+ const styles = useStyles34();
12175
12424
  const mergedLabels = { ...DEFAULT_LABELS32[language], ...labels };
12176
12425
  const displayTitle = title || mergedLabels.defaultTitle;
12177
12426
  const getVariantClass = (variant) => {
@@ -12239,7 +12488,7 @@ var DEFAULT_LABELS33 = {
12239
12488
  selectAriaLabel: "Select payment method"
12240
12489
  }
12241
12490
  };
12242
- var useStyles34 = reactComponents.makeStyles({
12491
+ var useStyles35 = reactComponents.makeStyles({
12243
12492
  container: {
12244
12493
  display: "flex",
12245
12494
  flexDirection: "column",
@@ -12299,7 +12548,7 @@ var CardPaymentMethodList = ({
12299
12548
  selectedValue,
12300
12549
  onSelect
12301
12550
  }) => {
12302
- const styles = useStyles34();
12551
+ const styles = useStyles35();
12303
12552
  const mergedLabels = { ...DEFAULT_LABELS33[language], ...labels };
12304
12553
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.card, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${styles.container}`, children: methods.map((category, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
12305
12554
  index > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.dividerContainer, children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, {}) }),
@@ -12357,7 +12606,7 @@ var DEFAULT_LABELS34 = {
12357
12606
  title: "Payment Method"
12358
12607
  }
12359
12608
  };
12360
- var useStyles35 = reactComponents.makeStyles({
12609
+ var useStyles36 = reactComponents.makeStyles({
12361
12610
  container: {
12362
12611
  display: "flex",
12363
12612
  flexDirection: "column",
@@ -12394,7 +12643,7 @@ var CardPaymentGuide = ({
12394
12643
  guides,
12395
12644
  className
12396
12645
  }) => {
12397
- const styles = useStyles35();
12646
+ const styles = useStyles36();
12398
12647
  const mergedLabels = { ...DEFAULT_LABELS34[language], ...labels };
12399
12648
  const displayTitle = title || mergedLabels.title;
12400
12649
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `${styles.container} ${className || ""}`, children: [
@@ -12432,7 +12681,7 @@ var DEFAULT_LABELS35 = {
12432
12681
  currencySymbol: "Rp."
12433
12682
  }
12434
12683
  };
12435
- var useStyles36 = reactComponents.makeStyles({
12684
+ var useStyles37 = reactComponents.makeStyles({
12436
12685
  container: {
12437
12686
  display: "flex",
12438
12687
  flexDirection: "column",
@@ -12514,7 +12763,7 @@ var CardPaymentInfo = ({
12514
12763
  onCopyVA,
12515
12764
  onCheckStatus
12516
12765
  }) => {
12517
- const styles = useStyles36();
12766
+ const styles = useStyles37();
12518
12767
  const mergedLabels = { ...DEFAULT_LABELS35[language], ...labels };
12519
12768
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.card, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.container, children: [
12520
12769
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.headerRow, children: [
@@ -12603,7 +12852,7 @@ var DEFAULT_LABELS36 = {
12603
12852
  illustrationAlt: "E-Ticket Illustration"
12604
12853
  }
12605
12854
  };
12606
- var useStyles37 = reactComponents.makeStyles({
12855
+ var useStyles38 = reactComponents.makeStyles({
12607
12856
  activeCard: {
12608
12857
  width: "100%",
12609
12858
  // padding: tokens.spacingHorizontalNone, // default
@@ -12673,7 +12922,7 @@ var CardStatusOrder = ({
12673
12922
  onClickViewTicket,
12674
12923
  className
12675
12924
  }) => {
12676
- const styles = useStyles37();
12925
+ const styles = useStyles38();
12677
12926
  const mergedLabels = { ...DEFAULT_LABELS36[language], ...labels };
12678
12927
  const displayStatus = statusLabel || mergedLabels.defaultStatus;
12679
12928
  const displayTitle = title || mergedLabels.defaultTitle;
@@ -12797,7 +13046,7 @@ var DEFAULT_LABELS37 = {
12797
13046
  closeAriaLabel: "Close"
12798
13047
  }
12799
13048
  };
12800
- var useStyles38 = reactComponents.makeStyles({
13049
+ var useStyles39 = reactComponents.makeStyles({
12801
13050
  surface: {
12802
13051
  width: "680px",
12803
13052
  maxWidth: "90vw",
@@ -12924,7 +13173,7 @@ var ModalPriceDetail = ({
12924
13173
  grandTotal,
12925
13174
  ...props
12926
13175
  }) => {
12927
- const styles = useStyles38();
13176
+ const styles = useStyles39();
12928
13177
  const mergedLabels = { ...DEFAULT_LABELS37[language], ...labels };
12929
13178
  return /* @__PURE__ */ jsxRuntime.jsx(
12930
13179
  reactComponents.Dialog,
@@ -13083,7 +13332,7 @@ var DEFAULT_LABELS38 = {
13083
13332
  requiredError: "is required"
13084
13333
  }
13085
13334
  };
13086
- var useStyles39 = reactComponents.makeStyles({
13335
+ var useStyles40 = reactComponents.makeStyles({
13087
13336
  surface: {
13088
13337
  maxWidth: "90vw",
13089
13338
  maxHeight: "90vh",
@@ -13110,7 +13359,7 @@ var ModalPreviewImage = ({
13110
13359
  imageUrl,
13111
13360
  alt = "Preview"
13112
13361
  }) => {
13113
- const styles = useStyles39();
13362
+ const styles = useStyles40();
13114
13363
  return /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Dialog, { open, onOpenChange: (_, data) => onOpenChange(data.open), children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.DialogSurface, { className: styles.surface, children: /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.DialogBody, { children: [
13115
13364
  /* @__PURE__ */ jsxRuntime.jsx(
13116
13365
  reactComponents.DialogTitle,
@@ -13623,7 +13872,7 @@ var DEFAULT_LABELS39 = {
13623
13872
  id: {},
13624
13873
  en: {}
13625
13874
  };
13626
- var useStyles40 = reactComponents.makeStyles({
13875
+ var useStyles41 = reactComponents.makeStyles({
13627
13876
  container: {
13628
13877
  display: "flex",
13629
13878
  flexDirection: "column",
@@ -13683,7 +13932,7 @@ var CardProfileMenu = ({
13683
13932
  selectedValue,
13684
13933
  onTabSelect
13685
13934
  }) => {
13686
- const styles = useStyles40();
13935
+ const styles = useStyles41();
13687
13936
  ({ ...DEFAULT_LABELS39[language], ...labels });
13688
13937
  const handleTabSelect = (_, data) => {
13689
13938
  onTabSelect(data.value);
@@ -13712,185 +13961,6 @@ var CardProfileMenu = ({
13712
13961
  }
13713
13962
  ) });
13714
13963
  };
13715
- var BP_TABLET2 = `max-width: ${extendedTokens.breakpointXl}`;
13716
- var BP_MOBILE2 = `max-width: ${extendedTokens.breakpointMd}`;
13717
- var useStyles41 = reactComponents.makeStyles({
13718
- dialogSurface: {
13719
- maxWidth: "900px",
13720
- width: "100%"
13721
- },
13722
- closeButton: {
13723
- minWidth: "32px",
13724
- minHeight: "32px"
13725
- },
13726
- content: {
13727
- paddingTop: "8px",
13728
- paddingBottom: "16px"
13729
- },
13730
- // Horizontal row layout: icon left, text right — same as CardServiceMenu desktop
13731
- menuItem: {
13732
- display: "flex",
13733
- flexDirection: "row",
13734
- alignItems: "center",
13735
- justifyContent: "flex-start",
13736
- padding: "12px 16px",
13737
- borderRadius: reactComponents.tokens.borderRadiusMedium,
13738
- cursor: "pointer",
13739
- textAlign: "left",
13740
- transition: "background-color 0.2s ease",
13741
- color: reactComponents.tokens.colorNeutralForeground1,
13742
- backgroundColor: reactComponents.tokens.colorNeutralBackground1,
13743
- border: "none",
13744
- gap: "12px",
13745
- width: "100%",
13746
- "&:hover": {
13747
- backgroundColor: reactComponents.tokens.colorNeutralBackground1Hover
13748
- },
13749
- [`@media (${BP_TABLET2})`]: {
13750
- padding: "10px 10px",
13751
- gap: "8px"
13752
- },
13753
- [`@media (${BP_MOBILE2})`]: {
13754
- flexDirection: "column",
13755
- alignItems: "center",
13756
- textAlign: "center",
13757
- padding: "8px 6px",
13758
- gap: "4px"
13759
- }
13760
- },
13761
- logoWrapper: {
13762
- display: "flex",
13763
- alignItems: "center",
13764
- justifyContent: "center",
13765
- flexShrink: 0
13766
- },
13767
- logo: {
13768
- height: "32px",
13769
- width: "32px",
13770
- flexShrink: 0,
13771
- objectFit: "contain",
13772
- [`@media (${BP_TABLET2})`]: {
13773
- height: "28px",
13774
- width: "28px"
13775
- },
13776
- [`@media (${BP_MOBILE2})`]: {
13777
- height: "24px",
13778
- width: "24px"
13779
- }
13780
- },
13781
- textContent: {
13782
- display: "flex",
13783
- flexDirection: "column",
13784
- gap: "2px",
13785
- minWidth: 0,
13786
- width: "100%",
13787
- [`@media (${BP_MOBILE2})`]: {
13788
- alignItems: "center"
13789
- }
13790
- },
13791
- label: {
13792
- fontSize: reactComponents.tokens.fontSizeBase300,
13793
- fontWeight: reactComponents.tokens.fontWeightSemibold,
13794
- lineHeight: "1.2",
13795
- whiteSpace: "nowrap",
13796
- overflow: "hidden",
13797
- textOverflow: "ellipsis",
13798
- width: "100%",
13799
- [`@media (${BP_TABLET2})`]: {
13800
- fontSize: reactComponents.tokens.fontSizeBase200
13801
- },
13802
- [`@media (${BP_MOBILE2})`]: {
13803
- fontSize: reactComponents.tokens.fontSizeBase100,
13804
- textAlign: "center"
13805
- }
13806
- },
13807
- description: {
13808
- fontSize: reactComponents.tokens.fontSizeBase200,
13809
- fontWeight: reactComponents.tokens.fontWeightRegular,
13810
- color: reactComponents.tokens.colorNeutralForeground2,
13811
- display: "-webkit-box",
13812
- WebkitLineClamp: 2,
13813
- WebkitBoxOrient: "vertical",
13814
- overflow: "hidden",
13815
- textOverflow: "ellipsis",
13816
- lineHeight: "1.4",
13817
- [`@media (${BP_TABLET2})`]: {
13818
- fontSize: reactComponents.tokens.fontSizeBase100,
13819
- WebkitLineClamp: 1
13820
- },
13821
- [`@media (${BP_MOBILE2})`]: {
13822
- display: "none"
13823
- }
13824
- }
13825
- });
13826
- var ModalListMenuService = ({
13827
- open = false,
13828
- onClose = () => {
13829
- },
13830
- title = "",
13831
- menuItems = ALIAS_MENU_ITEMS,
13832
- onItemClick,
13833
- showDescriptions = true
13834
- }) => {
13835
- const styles = useStyles41();
13836
- return /* @__PURE__ */ jsxRuntime.jsx(
13837
- reactComponents.Dialog,
13838
- {
13839
- open,
13840
- onOpenChange: (_, data) => {
13841
- if (!data.open) {
13842
- onClose();
13843
- }
13844
- },
13845
- children: /* @__PURE__ */ jsxRuntime.jsx(reactComponents.DialogSurface, { className: styles.dialogSurface, children: /* @__PURE__ */ jsxRuntime.jsxs(reactComponents.DialogBody, { children: [
13846
- /* @__PURE__ */ jsxRuntime.jsx(
13847
- reactComponents.DialogTitle,
13848
- {
13849
- action: /* @__PURE__ */ jsxRuntime.jsx(
13850
- reactComponents.Button,
13851
- {
13852
- appearance: "subtle",
13853
- "aria-label": "close",
13854
- icon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: "fluent:dismiss-24-regular" }),
13855
- onClick: onClose,
13856
- className: styles.closeButton
13857
- }
13858
- ),
13859
- children: title
13860
- }
13861
- ),
13862
- /* @__PURE__ */ jsxRuntime.jsx(reactComponents.DialogContent, { className: styles.content, children: /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Row, { gutterWidth: 0, children: menuItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(reactGridSystem.Col, { xs: 6, sm: 6, md: 3, lg: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(
13863
- reactComponents.Button,
13864
- {
13865
- className: styles.menuItem,
13866
- onClick: () => onItemClick?.(item),
13867
- "aria-label": item.name,
13868
- children: [
13869
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.logoWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(
13870
- "img",
13871
- {
13872
- src: item.imageUrl,
13873
- alt: item.name,
13874
- className: styles.logo
13875
- }
13876
- ) }),
13877
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.textContent, children: [
13878
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles.label, children: item.name }),
13879
- showDescriptions && /* @__PURE__ */ jsxRuntime.jsx(
13880
- MenuItemDescription,
13881
- {
13882
- description: item.description,
13883
- className: styles.description
13884
- }
13885
- )
13886
- ] })
13887
- ]
13888
- }
13889
- ) }, item.id)) }) })
13890
- ] }) })
13891
- }
13892
- );
13893
- };
13894
13964
 
13895
13965
  exports.API_CONFIG = API_CONFIG;
13896
13966
  exports.API_ENDPOINTS = API_ENDPOINTS;